Instruction and logic for adaptive dataset priorities in processor caches

US9405706B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9405706-B2
Application numberUS-201414496255-A
CountryUS
Kind codeB2
Filing dateSep 25, 2014
Priority dateSep 25, 2014
Publication dateAug 2, 2016
Grant dateAug 2, 2016

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 processor includes a front end, a cache, and a cache controller. The front end includes logic to receive an instruction defining a priority dataset. The priority dataset includes ranges of memory addresses each corresponding to a respective priority level. The cache controller includes logic to detect a miss in the cache for a requested cache value, determine a candidate cache victim from the cache, determine a priority of the requested cache value and the candidate cache victim according to the priority dataset, and evict the candidate cache victim based on a determination that the priority of the candidate cache victim is less or equal to the priority of the requested cache value.

First claim

Opening claim text (preview).

What is claimed is: 1. A processor, comprising: a front end including circuitry to receive an instruction defining a priority dataset, the priority dataset including a plurality of ranges of memory addresses, each range corresponding to a respective priority level; a cache; and a cache controller, including circuitry to: detect a miss in the cache for a requested cache value; determine a candidate cache victim from the cache; determine a priority of the requested cache value according to the priority dataset; determine a priority of the candidate cache victim according to the priority dataset; evict the candidate cache victim based on whether the priority of the candidate cache victim is less than or equal to the priority of the requested cache value; maintain a first count of previous evicted cache victims with higher priority than respective previous requested cache values; maintain a second count of previous evicted cache victims with lower or equal priority than respective previous requested cache values; and adjust eviction policies based upon the first count and the second count. 2. The processor of claim 1 , wherein the cache controller further includes circuitry to evict the candidate cache victim further based on an instruction to adjust evaluation of the priority dataset. 3. The processor of claim 1 , wherein the cache controller further includes circuitry to, upon a determination that the priority of the candidate cache victim is higher than the priority of the requested cache value, search for a new candidate cache victim to compare with the requested cache value. 4. The processor of claim 1 , wherein the cache controller further includes circuitry to: upon a determination that the priority of the candidate cache victim is higher than the priority of the requested cache value, search for a new candidate cache victim with a lower or equal priority to the requested cache value; and bound the search for the new candidate cache victim with a threshold, the threshold determined from the priority of the requested cache value. 5. A method comprising, within a processor: receiving an instruction defining a priority dataset, the priority dataset including a plurality of ranges of memory addresses, each range corresponding to a respective priority level; detecting a miss in a cache for a requested cache value; determining a candidate cache victim from the cache; determining a priority of the requested cache value according to the priority dataset; determining a priority of the candidate cache victim according to the priority dataset; determining whether to evict the candidate cache victim based on whether the priority of the candidate cache victim is less than or equal to the priority of the requested cache value; maintaining a first count of previous evicted cache victims with higher priority than respective previous requested cache values; maintaining a second count of previous evicted cache victims with lower or equal priority than respective previous requested cache values; and adjusting eviction policies based upon the first count and the second count. 6. The method of claim 5 , further comprising evicting the candidate cache victim further based on an instruction to adjust evaluation of the priority dataset. 7. The method of claim 5 , further comprising, upon a determination that the priority of the candidate cache victim is higher than the priority of the requested cache value, search for a new candidate cache victim to compare with the requested cache value. 8. The method of claim 5 , further comprising: upon a determination that the priority of the candidate cache victim is higher than the priority of the requested cache value, searching for a new candidate cache victim with a lower or equal priority to the requested cache value; and bonding the search for the new candidate cache victim with a threshold, the Threshold determined from the priority of the requested cache value. 9. A system for executing instructions, including: a front end including circuitry to receive an instruction defining a priority dataset, the priority dataset including a plurality of ranges of memory addresses, each range corresponding to a respective priority level; a cache; and a cache controller, including circuitry to: detect a miss in the cache for a requested cache value; determine a candidate cache victim from the cache; determine a priority of the requested cache value according to the priority dataset; determine a priority of the candidate cache victim according to the priority dataset; evict the candidate cache victim based on whether the priority of the candidate cache victim is less than or equal to the priority of the requested cache value; maintain a first count of previous evicted cache victims with higher priority than respective previous requested cache values; maintain a second count of previous evicted cache victims with lower or equal priority than respective previous requested cache values; and adjust eviction policies based upon the first count and the second count. 10. The system of claim 9 , wherein the cache controller further includes circuitry to evict the candidate cache victim further based on an instruction to adjust evaluation of the priority dataset. 11. The system of claim 9 , wherein the cache controller further includes circuitry to, upon a determination that the priority of the candidate cache victim is higher than the priority of the requested cache value, search for a new candidate cache victim to compare with the requested cache value. 12. The system of claim 9 , wherein the cache controller further includes circuitry to: upon a determination that the priority of the candidate cache victim is higher than the priority of the requested cache value, search for a new candidate cache victim with a lower or equal priority to the requested cache value; and bound the search for the new candidate cache victim with a threshold, the threshold determined from the priority of the requested cache value.

Assignees

Inventors

Classifications

  • G06F12/126Primary

    with special data handling, e.g. priority of data or instructions, handling errors or pinning · CPC title

  • Instruction code · CPC title

  • with dedicated cache, e.g. instruction or stack · CPC title

  • with main memory updating (G06F12/0806 takes precedence) · CPC title

  • with two or more cache hierarchy levels (with multilevel cache hierarchies G06F12/0811) · 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 US9405706B2 cover?
A processor includes a front end, a cache, and a cache controller. The front end includes logic to receive an instruction defining a priority dataset. The priority dataset includes ranges of memory addresses each corresponding to a respective priority level. The cache controller includes logic to detect a miss in the cache for a requested cache value, determine a candidate cache victim from the…
Who is the assignee on this patent?
Intel Corp
What technology area does this patent fall under?
Primary CPC classification G06F12/126. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 02 2016 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 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).