IP Library › Granted Patent US 12,639,221
Granted Patent B2
US 12,639,221 · App. 18/673,804 · Granted May 26, 2026

Optimized tag lookup in a way halting cache

Inventors: Andrew David Tune (Dronfield, GB); Edward Martin McCombs, Jr. (Austin, TX); Sean James Salisbury (Dendron, GB)
Assignee: ARM LIMITED
G06F12/0802
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,639,221
App. No.
18/673,804
Granted
May 26, 2026
Kind
B2
Abstract

A method of performing an address lookup process in a way halting cache includes receiving a tag portion and index bits of an address for a lookup; obtaining a first set of bits from the tag portion for a preamble, wherein a second set of bits from the tag portion form a prologue; performing a first matching operation using the preamble to identify a hit in a row of a memory of the way halting cache, the row being selected by the index bits; and for any identified hit from the first matching operation, performing a second matching operation using the prologue and the index bits to finalize the hit and checking a valid bit when performing the second matching operation.

Claims (28)

1 . A system comprising:

a preamble tag memory comprising a preamble memory control circuit, a preamble memory array a preamble memory wordline driver, a preamble memory input/output circuitry, a preamble memory hit circuitry, and a preamble memory address bit selection circuitry, wherein the preamble memory hit circuitry is coupled to obtain a first set of bits from a tag portion of an address for a lookup in accordance with the preamble memory address bit selection circuitry; and

a prologue tag memory comprising a prologue memory control circuit, a prologue memory array, a prologue memory wordline driver, a prologue memory input/output circuitry, a prologue memory hit circuitry, a valid bit check logic, and a prologue memory address bit selection circuitry, wherein the prologue memory hit circuitry is coupled to obtain a second set of bits from the tag portion of the address for the lookup in accordance with the prologue memory address bit selection circuitry and the valid bit check logic is coupled to receive a valid bit of a stored address, wherein the valid bit for the stored address is stored in the prologue tag memory and checked only during access of the prologue tag memory.

2 . The system of claim 1 , wherein the preamble memory address bit selection circuitry comprises registers structured to store bits of the address, wherein particular registers structured to store bits of the address corresponding to the first set of bits from the tag portion are coupled to the preamble memory hit circuitry.

3 . The system of claim 1 , wherein the preamble memory address bit selection circuitry comprises:

registers structured to store bits of the tag portion of the address; and

XOR hash circuitry coupled to at least a plurality of the registers, wherein output of the XOR hash circuitry is coupled to the preamble memory hit circuitry, the XOR hash circuitry outputting the first set of bits from the tag portion.

4 . The system of claim 1 , wherein the prologue memory address bit selection circuitry comprises registers structured to store bits of the address, wherein particular registers structured to store bits of the address corresponding to the second set of bits from the tag portion are coupled to the prologue memory hit circuitry.

5 . The system of claim 1 , wherein the first set of bits from the tag portion includes a portion of the least significant bits of the tag portion.

6 . The system of claim 1 , wherein the first set of bits from the tag portion contains between 3-7 bits.

7 . The system of claim 1 , wherein the first set of bits from the tag portion comprises a hash of the tag portion of the address.

8 . The system of claim 1 , wherein the first set of bits from the tag portion comprises non-contiguous bits of the tag portion.

9 . The system of claim 1 , wherein the first set of bits from the tag portion comprises a combination of contiguous bits and non-contiguous bits of the tag portion.

10 . The system of claim 1 , wherein the first set of bits from the tag portion comprises contiguous bits of the tag portion.

11 . The system of claim 1 , wherein the preamble tag memory stores preamble bits of tags of a plurality of ways and one or more state bits.

12 . A method of performing an address lookup process in a way halting cache, the method comprising:

receiving a tag portion and index bits of an address for a lookup;

obtaining a first set of bits from the tag portion for a preamble, wherein a second set of bits from the tag portion form a prologue;

performing a first matching operation using the preamble to identify a hit in a row of a memory of the way halting cache, the row being selected by the index bits; and

for any identified hit from the first matching operation, performing a second matching operation using the prologue and the index bits to finalize the hit and checking a valid bit when performing the second matching operation, wherein the valid bit is only checked when finalizing the hit.

13 . The method of claim 12 , wherein obtaining the first set of bits from the tag portion comprises performing a hash operation on the tag portion of the address for lookup.

14 . The method of claim 13 , wherein obtaining the second set of bits from the tag portion comprises selecting the second set of bits from the tag portion of the address, wherein the number of bits of the preamble and the number of bits of the prologue totals to the number of bits of the tag portion of the address.

15 . The method of claim 12 , wherein the preamble contains between 3-7 bits.

16 . The method of claim 12 , wherein the preamble comprises non-contiguous bits of the tag portion.

17 . The method of claim 12 , wherein the preamble comprises a combination of contiguous and non-contiguous bits of the tag portion.

18 . The method of claim 12 , wherein the method is performed in a system comprising:

a preamble tag memory that performs the first matching operation, the preamble tag memory comprising a preamble memory control circuit, a preamble memory array, a preamble memory wordline driver, a preamble memory input/output circuitry, a preamble memory hit circuitry, and a preamble memory address bit selection circuitry, wherein the preamble memory hit circuitry is coupled to obtain the first set of bits from the tag portion in accordance with the preamble memory address bit selection circuitry; and

a prologue tag memory that performs the second matching operation and checks the valid bit, the prologue tag memory comprising a prologue memory control circuit, a prologue memory array, a prologue memory wordline driver, a prologue memory input/output circuitry, a prologue memory hit circuitry, a valid bit check logic, and a prologue memory address bit selection circuitry, wherein the prologue memory hit circuitry is coupled to obtain the second set of bits from the tag portion of the address for the lookup in accordance with the prologue memory address bit selection circuitry and the valid bit check logic is coupled to receive a valid bit of a stored address.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 19, 2025
From: TUNE, ANDREW DAVID; MCCOMBS, EDWARD MARTIN, JR; SALISBURY, SEAN JAMES
To: ARM LIMITED
Reel/Frame 070558/0540 →
Continuity (1)
Related Publication 20250363051A1 · Nov 27, 2025
References Cited (24)
US 4996641A · Talgam · 1991 [cited by examiner]
US 5379402A · Fujihara · 1995 [cited by examiner]
US 5636363A · Bourekas · 1997 [cited by examiner]
US 6334173B1 · Won · 2001 [cited by examiner]
US 11899586B1 · Thucanakkenpalayam Sundararajan · 2024 [cited by examiner]
US 20020188810A1 · Nakamura · 2002 [cited by examiner]
US 20050188249A1 · Hart · 2005 [cited by examiner]
US 20080022064A1 · Kenkare · 2008 [cited by examiner]
US 20150019840A1 · Anderson et al. · 2015 [cited by applicant]
US 20150026413A1 · Meier · 2015 [cited by examiner]
US 20170116906A1 · Tai et al. · 2017 [cited by applicant]
US 20210201974A1 · Asadi et al. · 2021 [cited by applicant]
US 20220091992A1 · Shanbhogue et al. · 2022 [cited by applicant]
US 20220283948A1 · Chofleming et al. · 2022 [cited by applicant]
US 20220405209A1 · ChoFleming et al. · 2022 [cited by applicant]
US 20230195565A1 · Shankar et al. · 2023 [cited by applicant]
CN 106126451A · 2016 [cited by applicant]
A Microsoft dictionary showing a definition for register (Year: 2002). [cited by examiner]
Daniel Moreau et al. “Practical Way Halting by Speculatively Accessing Halt Tags” 2016 Design, Automation & Test in Europe Conference & Exhibition (DATE), Mar. 14, 2016, 7 pages. [cited by applicant]
Faissal M. Sleiman et al. “Embedded Way Prediction for Last-Level Caches” 2012 IEEE 30th International Conference on Computer Design (ICCD), Sep. 3, 2012, 8 pages. [cited by applicant]
Chuanjun Zhang et al. “A Way-Halting Cache for Low-Energy High-Performance Systems” ACM Transactions on Architecture and Code Optimization, Mar. 2005, 21 pages, vol. 2, No. 1. [cited by applicant]
Chuanjun Zhang et al. “A Way-Halting Cache for Low-Energy High-Performance Systems” Proceedings of the 2004 International Symposium on Low Power Electronics and Design, Aug. 11, 2004, 4 pages. [cited by applicant]
International Search Report and Written Opinion issued in International Application No. PCT/GB2025/051140, mailed Jul. 25, 2025, 13 pages. [cited by applicant]
Kim, Moonsoo, et al., “Segmented Tag Cache: A Novel Cache Organization for Reducing Dynamic Read Energy,” IEEE Transactions on Computers, Oct. 1, 2019 (accessible Mar. 29, 2019), pp. 1546-1552, vol. 68, issue 10. [cited by applicant]