Set associative cache memory with heterogeneous replacement policy

US2016357680A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2016357680-A1
Application numberUS-201414890895-A
CountryUS
Kind codeA1
Filing dateDec 14, 2014
Priority dateDec 14, 2014
Publication dateDec 8, 2016
Grant date

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

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.

First claim

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

Assignees

Inventors

Classifications

  • 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

  • G06F12/121Primary

    using replacement algorithms · CPC title

  • Allocation or management of cache space · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US2016357680A1 cover?
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 …
Who is the assignee on this patent?
Via Alliance Semiconductor Co Ltd
What technology area does this patent fall under?
Primary CPC classification G06F12/0864. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Dec 08 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 7 related publications on this page (citations in our corpus or others sharing the same primary CPC).