Multi-mode set associative cache memory dynamically configurable to selectively allocate into all or a subset of its ways depending on the mode
US-2016357664-A1 · Dec 8, 2016 · US
US2016357680A1 · US · A1
| Field | Value |
|---|---|
| Publication number | US-2016357680-A1 |
| Application number | US-201414890895-A |
| Country | US |
| Kind code | A1 |
| Filing date | Dec 14, 2014 |
| Priority date | Dec 14, 2014 |
| Publication date | Dec 8, 2016 |
| Grant date | — |
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.
A set associative cache memory, comprising: an array of storage elements arranged as M sets by N ways; an allocation unit that allocates the storage elements in response to memory accesses that miss in the cache memory. Each memory access selects a set; for each parcel of a plurality of parcels, a parcel specifier specifies: a subset of ways of the N ways included in the parcel. The subsets of ways of parcels associated with a selected set are mutually exclusive; a replacement scheme associated with the parcel from among a plurality of predetermined replacement schemes. For each memory access, the allocation unit: selects the parcel specifier in response to the memory access; and uses the replacement scheme associated with the parcel to allocate into the subset of ways of the selected set included in the parcel.
Opening claim text (preview).
1 . A set associative cache memory, comprising: an array of storage elements arranged as M sets by N ways; an allocation unit that allocates the storage elements of the array in response to memory accesses that miss in the cache memory, wherein each of the memory accesses selects a set of the M sets; for each parcel of a plurality of parcels, a parcel specifier that specifies: a subset of ways of the N ways that are included in the parcel, wherein the subsets of ways of parcels associated with a selected set are mutually exclusive; and a replacement scheme associated with the parcel from among a plurality of predetermined replacement schemes; and wherein for each memory access of the memory accesses, the allocation unit: selects the parcel specifier of a parcel of the plurality of parcels in response to the memory access; and uses the replacement scheme associated with the parcel to allocate into the subset of ways of the N ways of the selected set that are included in the parcel. 2 . The set associative cache memory of claim 1 , further comprising: wherein each of the memory accesses has an associated memory access type (MAT) of a plurality of predetermined MATs; wherein the parcel specifier further associates one or more of the plurality of predetermined MATs with the parcel; and wherein the allocation unit selects the parcel specifier of a parcel of the plurality of parcels based on the MAT of the memory access. 3 . The set associative cache memory of claim 2 , wherein the MAT associated with the memory access is an input to the replacement scheme used by the allocation unit to allocate into the subset of the N ways of the selected set that are included in the parcel. 4 . The set associative cache memory of claim 1 , further comprising: for each set of the N sets, associated replacement bits; wherein the parcel specifier further specifies a portion of the replacement bits associated with the parcel; and wherein the allocation unit uses the replacement scheme and the portion of the replacement bits associated with the parcel to allocate into the subset of ways of the N ways of the selected set that are included in the parcel. 5 . The set associative cache memory of claim 1 , wherein the plurality of parcels are global to all the sets of the M sets of the array. 6 . The set associative cache memory of claim 1 , wherein each set of the M sets is associated with one of L mutually exclusive set groups; and wherein each of the L mutually exclusive set groups has a corresponding plurality of parcels. 7 . The set associative cache memory of claim 1 , wherein each set of the M sets has a corresponding plurality of parcels. 8 . The set associative cache memory of claim 1 , wherein the replacement scheme associated with at least one parcel of the plurality of parcels is different from the replacement scheme associated with the other of the plurality of parcels. 9 . The set associative cache memory of claim 1 , wherein the parcel specifier of the plurality of parcels are dynamically updatable during operation of the cache memory. 10 . A method for operating a set associative cache memory having an array of storage elements arranged as M sets by N ways and an allocation unit that allocates the storage elements of the array in response to memory accesses that miss in the cache memory, wherein each of the memory accesses selects a set of the M sets, the method comprising: storing, for each parcel of a plurality of parcels, a parcel specifier that specifies: a subset of ways of the N ways that are included in the parcel, wherein the subsets of ways of parcels associated with a selected set are mutually exclusive; and a replacement scheme associated with the parcel from among a plurality of predetermined replacement schemes; and for each memory access of the memory accesses: selecting the parcel specifier of a parcel of the plurality of parcels in response to the memory access; and using the replacement scheme associated with the parcel to allocate into the subset of ways of the N ways of the selected set that are included in the parcel. 11 . The method of claim 10 , further comprising: wherein each of the memory accesses has an associated memory access type (MAT) of a plurality of predetermined MATs; wherein the parcel specifier further associates one or more of the plurality of predetermined MATs with the parcel; and wherein said selecting the parcel specifier comprises selecting the parcel specifier of a parcel of the plurality of parcels based on the MAT of the memory access. 12 . The method of claim 11 , wherein the MAT associated with the memory access is an input to the replacement scheme used by the allocation unit to allocate into the subset of the N ways of the selected set that are included in the parcel. 13 . The method of claim 10 , wherein the cache memory further includes associated replacement bits for each set of the N sets, wherein the parcel specifier further specifies a portion of the replacement bits associated with the parcel, the method further comprising: using the replacement scheme and the portion of the replacement bits associated with the parcel to allocate into the subset of ways of the N ways of the selected set that are included in the parcel. 14 . The method of claim 13 , further comprising: updating the parcel specifier of the plurality of parcels during operation of the cache memory. 15 . The method of claim 14 , further comprising: determining that a program is running on the processor, wherein the parcel specifiers are determined by offline analysis of the program; and said updating the parcel specifier of the plurality of parcels in response to said determining that the program is running on the processor. 16 . A set associative cache memory, comprising: an array of storage elements arranged as M sets by N ways; an allocation unit that allocates the storage elements of the array in response to memory accesses that miss in the cache memory, wherein each of the memory accesses selects a set of the M sets; and wherein the allocation unit uses a first replacement scheme when allocating into a first subset of the N ways of the selected set and a second replacement scheme when allocating into a second subset of the N ways of the selected set; and wherein the first and second replacement schemes are different. 17 . The set associative cache memory of claim 16 , wherein each of the memory accesses has an associated memory access type (MAT) of a plurality of predetermined MATs; and wherein the MAT associated with the memory access is an input to the first replacement scheme used by the allocation unit when allocating into the first subset of the N ways of the selected set. 18 . The set associative cache memory of claim 17 , wherein the plurality of predetermined MATs includes at least three from the following list: a memory access generated by a hardware prefetcher of the processor; a memory access generated by a floating point instruction; a memory access generated by a fused microinstruction; a memory access generated by a media instruction; a memory access generated by an instruction that modifies a memory address; a memory access generated by a software prefetch instruction; a memory access that loads an architectural descriptor; a memory access generated by an instruction that specifies non-temporal data; a memory access generated by an instruction that performs no alignment checks; a memory access generated by a supervisor privilege level ins
using pseudo-associative means, e.g. set-associative or hashing · CPC title
of parts of caches, e.g. directory or tag array · CPC title
with prefetch · CPC title
using replacement algorithms · CPC title
Allocation or management of cache space · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.