# US 2020/0401524 A1 · High-frequency and low-power l1 cache and associated access technique

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2020/0401524 A1
- Document ID: US20200401524A1
- Status: Published application
- Kind: A1
- Application number: 16/547,557
- Filed: 2019-08-21
- Published: 2020-12-24
- Earliest claimed: 2019-06-18
- Assignees: Samsung Electronics Co., Ltd.
- Applicants: Samsung Electronics Co., Ltd.
- Inventors: Karthik SUNDARAM
- Web page: https://patentgrep.com/patent/US20200401524A1

## CPC

- G06F 12/0864: using pseudo-associative means, e.g. set-associative or hashing
- G06F 9/30043: {LOAD or STORE instructions; Clear instruction}
- G06F 9/3824: {Operand accessing}
- G06F 12/0811: with multilevel cache hierarchies
- G06F 12/1027: using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F 12/1063: {the data cache being concurrently virtually addressed}
- G06F 2212/1024: Latency reduction
- G06F 2212/1028: Power efficiency
- G06F 2212/6032: Way prediction in set-associative cache
- G06F 2212/681: Multi-level TLB, e.g. microTLB and main TLB
- Y02D 10/00: Energy efficient computing, e.g. low power processors, power management or thermal management
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- Y02D: CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE

## Abstract

A high-frequency and low-power L1 cache and associated access technique. The method may include inspecting a virtual address of an L1 data cache load instruction, and indexing into a row and a column of a way predictor table using metadata and a virtual address associated with the load instruction. The method may include matching information stored at the row and the column of the way predictor table to a location of a cache line. The method may include predicting the location of the cache line within the L1 data cache based on the information match. A hierarchy of way predictor tables may be used, with higher level way predictor tables refreshing smaller lower level way predictor tables. The way predictor tables may be trained to make better predictions over time. Only selected circuit macros need to be enabled based on the predictions, thereby saving power.

## Claims

### Claim 1

A computer-implemented method for high-frequency and low-power level 1 (L1) cache access, the method comprising:
inspecting a virtual address of an L1 data cache load instruction;
indexing into a row of a way predictor table using metadata and the virtual address associated with the load instruction;
indexing into a column of the way predictor table using the virtual address;
matching information stored at the row and the column of the way predictor table to a location of a cache line; and
predicting the location of the cache line within the L1 data cache based on the information match.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, further comprising:
responsive to the information match, enabling only a circuit macro of the L1 data cache that corresponds to the cache line.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, further comprising:
responsive to the information match, determining whether a tag valid bit associated with the row and the column of the way predictor table is asserted; and
responsive to determining that the tag valid bit is not asserted, firing all ways within a bank of the L1 data cache.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, further comprising:
responsive to the information match, determining whether a tag valid bit associated with the row and the column of the way predictor table is asserted; and
responsive to determining that the tag valid bit is asserted, firing only a particular way within a bank of the L1 data cache.

### Claim 5 (depends on 1)

The computer-implemented method of claim 1, further comprising:
not finding a first index into the row of the way predictor table;
not finding a second index into the column of the way predictor table;
not matching the information stored at the row and the column of the way predictor table to the location of the cache line; and
enabling all circuit macros within a bank of the L1 data cache based on a lack of the information match.

### Claim 6 (depends on 5)

The computer-implemented method of claim 5, further comprising:
simultaneous to not finding the first index and the second index into the way predictor table:
using the virtual address to look up a translation lookaside buffer (TLB);
generating a physical address;
searching cache tags of the L1 data cache;
passing a selected way to the L1 data cache; and
performing a late multiplex of data across enabled circuit macros of the L1 data cache.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1, wherein the way predictor table is a first level 0 (L0) way predictor table, the method further comprising:
priming a second larger level 1 (L1) way predictor table with information learned using hardware prefetches in addition to the load instruction; and
refreshing the first L0 way predictor table using information stored in the L1 way predictor table.

### Claim 8 (depends on 7)

The computer-implemented method of claim 7, further comprising:
learning information about a cache line and at least one neighboring cache line of the cache line; and
simultaneously searching the first L0 way predictor table and the second L1 way predictor using the metadata and the virtual address associated with the load instruction.

### Claim 9 (depends on 8)

The computer-implemented method of claim 8, further comprising:
determining that the simultaneous searching resulted in a miss in the first L0 way predictor table and a hit in the second L1 way predictor table; and
responsive to the determining, storing a location of a cache line in the first L0 way predictor table using metadata stored in the second L1 way predictor table.

### Claim 10 (depends on 9)

The computer-implemented method of claim 9, further comprising:
responsive to the determining, storing a location of at least one neighboring cache line in the first L0 way predictor table using the metadata stored in the second L1 way predictor table.

### Claim 11

A computer-implemented method for high-frequency and low-power level 1 (L1) cache access, the method comprising:
inspecting a virtual address of an L1 data cache load instruction;
searching a way predictor table using the metadata and the virtual address associated with the load instruction; and
simultaneously with the searching, looking up a translation lookaside buffer (TLB) and cache tags of the L1 data cache.

### Claim 12 (depends on 11)

The computer-implemented method of claim 11, further comprising:
attempting a match to a cache line of the L1 data cache using metadata stored in the way predictor table.

### Claim 13 (depends on 12)

The computer-implemented method of claim 12, further comprising:
responsive to succeeding in the match, predicting a location of the cache line using the metadata stored in the way predictor table.

### Claim 14 (depends on 12)

The computer-implemented method of claim 12, wherein the metadata is first metadata, the method further comprising:
responsive to not succeeding in the match, allocating a new entry in the way predictor table; and
generating second metadata to enable a prediction of the location of the cache line.

### Claim 15 (depends on 14)

The computer-implemented method of claim 14, further comprising:
writing the second metadata into the new entry in the way predictor table.

### Claim 16

A computer-implemented method for accelerating predictor training in a level 1 (L1) cache, the method comprising:
priming metadata of a level 1 (L1) way predictor table with information learned using hardware prefetches prior to a load instruction;
detecting a miss in a level 0 (L0) way predictor table and a hit in the L1 way predictor table; and
refreshing the L0 way predictor table using metadata stored in the L1 way predictor table,
wherein refreshing includes learning and storing one or more locations of a group of cache lines using the metadata stored in the L1 way predictor table.

### Claim 17

(canceled)

### Claim 18 (depends on 17)

The computer-implemented method of claim 17, further comprising:
marking a level 0 (L0) way predictor table with one or more indicators that a plurality of cache lines associated with the cache store all “0s”; and
reducing power consumption of the cache by shutting off cache read access for the plurality of cache lines associated with the cache using the L0 way predictor table.
