Technologies for managing cache memory in a distributed shared memory compute system

US9983996B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9983996-B2
Application numberUS-201514965487-A
CountryUS
Kind codeB2
Filing dateDec 10, 2015
Priority dateDec 10, 2015
Publication dateMay 29, 2018
Grant dateMay 29, 2018

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.

Technologies for managing cache memory of a processor in a distributed shared memory system includes managing a distance value and an age value associated with each cache line of the cache memory. The distance value is indicative of a distance of a memory resource, relative to the processor, from which data stored in the corresponding chance line originates. The age value is based on the distance value and the number of times for which the corresponding cache line has been considered for eviction since a previous eviction of the corresponding cache line. Initially, the age value is set to the distance value. Additionally, every time a cache line is accessed, the age value associated with the accessed cache line is reset to the corresponding distance value. During a cache eviction operation, the cache line for eviction is selected based on the age value associated with each cache line. The age values of cache lines not selected for eviction are subsequently decremented such that even cache lines associated with remote memory resources will eventually be considered for eviction if not recently accessed.

First claim

Opening claim text (preview).

The invention claimed is: 1. A compute node to manage cache memory, the compute node comprising: a processor; a cache memory associated with the processor, the cache memory having a plurality of cache lines for storing data; and a memory to store metadata associated with one or more cache lines, wherein the metadata comprises an age field and a distance field, the distance field to store a distance value to indicate a distance of a memory resource, relative to the compute node, from which data stored in the corresponding cache line originates, and the age field to store an age value that is based at least in part on (i) the distance value and (ii) the number of times for which a corresponding cache line has been considered for eviction since a previous eviction of the corresponding cache line. 2. The compute node of claim 1 , comprising an eviction module to: determine one or more cache lines of the cache memory of the processor for consideration for eviction based on the age value associated with a cache line; select a cache line for eviction from the one or more cache lines based on an eviction policy; and evict content stored in the selected cache line from the cache memory. 3. The compute node of claim 2 , further comprising a cache agent to: access another cache line of the cache memory; and update the age value associated with the another cache line in response to accessing the another cache line. 4. The compute node of claim 3 , wherein to update the age value comprises to set the age value associated with the another cache line to the distance value associated with the another cache line in response to access of the another cache line. 5. The compute node of claim 2 , wherein to select the cache line for eviction comprises to select a cache line for eviction from the one or more cache lines based on the recency at which the cache line was last accessed. 6. The compute node of claim 2 , wherein the processor is to update the age value associated with one or more cache lines of the cache memory that were not selected for eviction. 7. The compute node of claim 6 , wherein to update the age value associated with one or more cache lines of the cache memory that were not selected for eviction comprises to decrement the age value associated with one or more cache lines of the cache memory that were not selected for eviction. 8. The compute node of claim 1 , further comprising a cache agent to: request data from a memory resource of a distributed shared memory system; receive the requested data, wherein the requested data includes a source identification that identifies the memory resource from which the data originated; determine a distance value associated with the received requested data based on the source identification; and store the received requested data in another cache line of the cache memory, wherein to store the received requested data includes to store the distance value in a distance field of metadata associated with the another cache line. 9. The compute node of claim 1 , wherein the distance value is indicative of a communication latency associated with the memory resource from which data stored in the corresponding cache line originates. 10. The compute node of claim 1 , further comprising one or more of (i) a network interface or (ii) a display communicatively coupled to the processor. 11. A method for managing cache memory of a processor of a compute node of a distributed shared memory system, the method comprising: determining, by the processor, one or more cache lines of the cache memory of the processor for consideration for eviction based on an age value associated with each cache line, wherein the age value is based at least in part on (i) a distance of a memory resource from which data stored in the corresponding cache line originates and (ii) the number of times for which the corresponding cache lines have been considered for eviction since a previous eviction of the corresponding cache lines; selecting, by the processor, a cache line for eviction from the one or more cache lines based on an eviction policy; and evicting, by the processor, the selected cache line from the cache memory. 12. The method of claim 11 , wherein a memory of the compute node includes metadata associated with one or more cache lines of the cache memory, and the metadata comprises an age field in which the age value of the corresponding cache line is located and a distance field in which a distance value associated with the corresponding cache line is located, wherein the distance value is to indicate a distance of a memory resource, relative to the compute node, from which data stored in the corresponding cache line originates. 13. The method of claim 12 , further comprising: accessing, by the processor, another cache line of the cache memory; and updating the age value associated with the another cache line in response to accessing the another cache line. 14. The method of claim 13 , wherein updating the age value comprises setting the age value associated with the another cache line to the distance value associated with the another cache line in response to accessing the another cache line. 15. The method of claim 12 , wherein the distance value is to indicate a communication latency associated with the memory resource from which data stored in the corresponding cache line originates. 16. The method of claim 11 , wherein determining the one or more cache lines based on the age value comprises selecting one or more cache lines of the cache memory having a lowest age value. 17. The method of claim 11 , further comprising decrementing, by the processor, the age value associated with one or more cache lines of the cache memory that was not selected for eviction. 18. The method of claim 11 , further comprising: requesting, by the processor, data from a memory resource of the distributed shared memory system; receiving, by the processor, the requested data, wherein the requested data includes a source identification that identifies with the memory resource from which the data originated; determining, by the processor, a distance value associated with the received requested data based on the source identification, wherein the distance value is indicative of a distance of the memory resource from the processor; and storing, by the processor, received requested data in another cache line of the cache memory, wherein storing received requested data includes storing the distance value in a distance field of metadata associated with the another cache line. 19. One or more machine-readable storage media comprising a plurality of instructions stored thereon that, when executed, cause one or more processors of a compute node to: determine one or more cache lines of a cache memory of the one or more processors for consideration for eviction based on an age value associated with each cache line, wherein the age value is based at least in part on (i) a distance of a memory resource from which data stored in the corresponding cache line originates and (ii) the number of times for which the corresponding cache lines have been considered for eviction since a previous eviction of the corresponding cache lines; select a cache line for eviction from a set of cache lines based on an eviction policy; and evict the selected cache line from the cache memory. 20. The one or more machine-readable storage media of claim 19 , wherein a memory of the compute node includes metadata associated with one or more cac

Assignees

Inventors

Classifications

  • G06F12/128Primary

    adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel · CPC title

  • with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list · CPC title

  • with a shared cache · CPC title

  • In storage network, e.g. network attached cache · CPC title

  • Replacement control · 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 US9983996B2 cover?
Technologies for managing cache memory of a processor in a distributed shared memory system includes managing a distance value and an age value associated with each cache line of the cache memory. The distance value is indicative of a distance of a memory resource, relative to the processor, from which data stored in the corresponding chance line originates. The age value is based on the distan…
Who is the assignee on this patent?
Intel Corp
What technology area does this patent fall under?
Primary CPC classification G06F12/128. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue May 29 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).