Fully associative cache management
US-2021065798-A1 · Mar 4, 2021 · US
US11620231B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11620231-B2 |
| Application number | US-202117407248-A |
| Country | US |
| Kind code | B2 |
| Filing date | Aug 20, 2021 |
| Priority date | Aug 20, 2021 |
| Publication date | Apr 4, 2023 |
| Grant date | Apr 4, 2023 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Aspects of the invention include defining one or more processor units having a plurality of caches, each processor unit comprising a processor having at least one cache, and wherein each of the one or more processor units are coupled together by an interconnect fabric, for each of the plurality of caches, arranging a plurality of cache lines into one or more congruence classes, each congruence class comprises a chronology vector, arranging each cache in the plurality of caches into a cluster of caches based on a plurality of scope domains, determining a first cache line to evict based on the chronology vector, and determining a target cache for installing the first cache line based on a scope of the first cache line and a saturation metric associated with the target cache, wherein the scope of the first cache line is determined based on lateral persistence tag bits.
Opening claim text (preview).
What is claimed is: 1. A computer-implemented method comprising: defining one or more processor units having a plurality of caches, wherein each processor unit comprises a processor having at least one cache from the plurality of caches, and wherein each of the one or more processor units are coupled together by an interconnect fabric; for each of the plurality of caches, arranging a plurality of cache lines into one or more congruence classes, each congruence class in the one or more congruence classes comprises a chronology vector; arranging each cache in the plurality of caches into a cluster of caches based on a plurality of scope domains; determining a first cache line to evict based on the chronology vector for the first cache line; and determining a target cache for installing the first cache line based on a scope of the first cache line and a saturation metric associated with the target cache, wherein the scope of the first cache line is determined based on lateral persistence tag bits. 2. The computer-implemented method of claim 1 , further comprising writing the first cache line to the target cache and incrementing the lateral persistence tag bits for the first cache line. 3. The computer-implemented method of claim 2 , wherein writing the first cache line to the target cache comprises: selecting a second cache line to evict from the target cache; determining a second scope for the second cache line; and determining an eviction location for the second cache line based on the second scope, wherein the eviction location comprises at least one of a lateral cache and a main memory. 4. The computer-implemented method of claim 2 , wherein writing the first cache line to the target cache comprises: determining a cache replacement policy comprising one or more cache install positions; determining a scope for the first cache line for the target cache, wherein the scope determines an originator of a request to install the first cache line, and wherein the originator comprises at least one of a processor local to the target cache and a lateral cache; and determining an install position of the first cache line based on a percentage of cache lines installed by the processor local to the target cache and a percentage of cache lines installed by lateral caches. 5. The computer-implemented method of claim 4 , wherein the one or more cache install positions comprise most recently used (MRU) position, middle least recently used (mid-LRU) position, and least recently used (LRU) position. 6. The computer-implemented method of claim 1 , wherein determining the target cache for installing the first cache line comprises: determining a target cluster of caches based on the scope of the first cache line; and selecting the target cache from the target cluster of caches. 7. The computer-implemented method of claim 6 , wherein determining the target cluster of caches based on the scope of the first cache line and a saturation metric associated with the target cache comprises: determining a scope domain for each cluster of caches; and selecting the target cluster of caches based on a scope domain for the target cluster being higher than the scope of the first cache line. 8. The computer-implemented method of claim 6 , wherein determining the target cluster of caches based on the scope of the first cache line and a saturation metric associated with the target cache comprises: analyzing a combined saturation metric for each cluster of caches, wherein the combined saturation metric comprises the saturation metric combined for each cache in a cluster of caches; and selecting the target cluster of caches based on the combined saturation metric for the target cluster being a lowest combined saturation metric among each cluster of caches. 9. The computer-implemented method of claim 6 , wherein selecting the target cache from the target cluster of caches comprises: analyzing a saturation metric of each cache in the target cluster of caches; selecting the target cache based on the saturation metric for the target cache being a lowest saturation metric among each cache in the target cluster of caches. 10. The computer-implemented method of claim 1 , wherein the saturation metric comprises at least one of a number of installs defined by processor misses and a number of installs in a cache from lateral caches. 11. A computer-implemented method comprising: receiving a request to evict a first cache line from a first cache on a first microprocessor chip in a plurality of microprocessor chips in a processing drawer, the first cache line having a first set of lateral persistence bits tracking a scope for the first cache line; determining the scope of the first cache line; identifying a target cache having a saturation metric, wherein the target cache comprises a higher scope than the scope of the first cache line; and determining an action for the first cache line based on the saturation metric for the target cache and the scope of the first cache line. 12. The computer-implemented method of claim 11 , wherein the action comprises writing the first cache line to the target cache and incrementing the first set of lateral persistence bits. 13. The computer-implemented method of claim 11 , wherein the action comprises rejecting the first cache line for the target cache. 14. A system comprising: one or more processor units having a plurality of caches, wherein each processor unit comprises a processor having at least one cache from the plurality of caches, and wherein each of the one or more processor units are coupled together by an interconnect fabric, and a cache controller configured to perform: for each of the plurality of caches, arranging a plurality of cache lines into one or more congruence classes, each congruence class in the one or more congruence classes comprises a chronology vector; arranging each cache in the plurality of caches into a cluster of caches based on a plurality of scope domains; determining a first cache line to evict based on the chronology vector for the cache line; and determining a target cache for installing the first cache line based on a scope of the first cache line and a saturation metric associated with the target cache, wherein the scope of the first cache line is determined based on lateral persistence tag bits. 15. The system of claim 14 , wherein the cache controller is further configured to perform writing the first cache line to the target cache and incrementing the first lateral persistence bit tags for the first cache line. 16. The system of claim 15 , wherein writing the first cache line to the target cache comprises: selecting a second cache line to evict from the target cache; determining a second scope for the second cache line; and determining an eviction location for the second cache line based on the second scope, wherein the eviction location comprises at least one of a lateral cache and a main memory. 17. The system of claim 15 , wherein writing the first cache line to the target cache comprises: determining a cache replacement policy comprising one or more cache install positions; determining an originator of a request to install the first cache line to the target cache, wherein the originator comprises at least one of a processor local to the target cache and a lateral cache; and determining an install position of the first cache line based on a percentage of cache lines installed by the processor local to the target cache and a percentage of cache lines installed by lateral caches. 18. The
with special data handling, e.g. priority of data or instructions, handling errors or pinning · CPC title
using clearing, invalidating or resetting means · CPC title
with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list · CPC title
Using a specific cache allocation policy other than replacement policy · CPC title
of parts of caches, e.g. directory or tag array · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.