Control mechanism for fine-tuned cache to backing-store synchronization

US9639466B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9639466-B2
Application numberUS-201213664387-A
CountryUS
Kind codeB2
Filing dateOct 30, 2012
Priority dateOct 30, 2012
Publication dateMay 2, 2017
Grant dateMay 2, 2017

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.

One embodiment of the present invention sets forth a technique for processing commands received by an intermediary cache from one or more clients. The technique involves receiving a first write command from an arbiter unit, where the first write command specifies a first memory address, determining that a first cache line related to a set of cache lines included in the intermediary cache is associated with the first memory address, causing data associated with the first write command to be written into the first cache line, and marking the first cache line as dirty. The technique further involves determining whether a total number of cache lines marked as dirty in the set of cache lines is less than, equal to, or greater than a first threshold value, and: not transmitting a dirty data notification to the frame buffer logic when the total number is less than the threshold value, or transmitting a dirty data notification to the frame buffer logic when the total number is equal to or greater than the first threshold value.

First claim

Opening claim text (preview).

We claim: 1. A method for processing commands received by an intermediary cache from one or more clients, wherein the intermediary cache is coupled to an external memory via frame buffer logic, the method comprising: receiving a first write command from an arbiter unit, wherein the first write command specifies a first memory address; determining that a first cache line related to a set of cache lines included in the intermediary cache is associated with the first memory address; causing data associated with the first write command to be written into the first cache line; marking the first cache line as dirty; comparing a total number of cache lines marked as dirty in the set of cache lines to a first threshold value, wherein the first threshold value is adjustable from a first value to a second value that is greater than the first value, and, when the first threshold value equals the second value, fewer dirty data notifications are transmitted to the frame buffer logic when data is written to the first cache line multiple times via multiple write commands, relative to when the first threshold value equals the first value; and comparing the total number of cache lines marked as dirty to a second threshold value that is adjustable and is greater than the first threshold value, wherein: if the total number of cache lines marked as dirty is less than the first threshold value, then no dirty data notification is transmitted to the frame buffer logic, if the total number of cache lines marked as dirty is greater than or equal to the first threshold value but less than or equal to the second threshold value, then only a first dirty data notification is transmitted to the frame buffer logic that specifies a least recently used dirty cache line included in the set of cache lines, wherein the frame buffer logic is configured to, in response to receiving the first dirty data notification, assign a prioritization to the first dirty data notification and then schedule the first dirty data notification for processing according to the prioritization, and if the total number of cache lines marked as dirty is greater than the second threshold value, then both the first dirty data notification and a high-priority clean notification are transmitted to the frame buffer logic, wherein the frame buffer logic is configured to, in response to receiving the high-priority clean notification, immediately retrieve dirty data resident in one or more cache lines included in the set of cache lines, wherein each dirty data notification indicates a particular cache line and does not include any dirty data associated with the particular cache line. 2. The method of claim 1 , wherein the frame buffer logic is configured to cause dirty data residing in the least recently used dirty cache line to be written to a corresponding entry in a dynamic random access memory serving as local memory to a graphics processing unit when the frame buffer logic processes the first dirty data notification. 3. The method of claim 1 , wherein the first dirty data notification and the high-priority clean notification are transmitted to the frame buffer logic simultaneously via a single notification. 4. The method of claim 3 , wherein the frame buffer logic is configured to process the high-priority clean notification before the dirty data notification. 5. The method of claim 1 , further comprising comparing the total number of cache lines marked as dirty to a third threshold value that is greater than the second threshold value, wherein: if the total number of cache lines marked as dirty is greater than the second threshold value but less than the third threshold value, then both the first dirty data notification and a high-priority clean notification are transmitted to the frame buffer logic, and if the total number of cache lines marked as dirty is equal to the third threshold value, then the first write command is stalled. 6. The method of claim 1 , wherein the first dirty data notification and the high-priority clean notification are transmitted separately as two different notifications to the frame buffer logic. 7. The method of claim 1 , wherein adjusting the first threshold causes the intermediary cache to operate as a first type of cache included in a plurality of different types of caches. 8. The method of claim 7 , wherein adjusting the first threshold value to a higher value than a current value causes the intermediary cache to operate as a write-back cache. 9. The method of claim 7 , wherein adjusting the first threshold value to a lower value than a current value causes the intermediary cache to operate as a write-through cache. 10. The method of claim 1 , wherein the first threshold is adjustable to a lesser value to allow a phased computation to be performed. 11. A non-transitory computer-readable storage medium storing instructions that, when executed by a processor, cause the processor to process commands received by an intermediary cache from one or more clients, wherein the intermediary cache is coupled to an external memory via frame buffer logic, by performing the steps of: receiving a first write command from an arbiter unit, wherein the first write command specifies a first memory address; determining that a first cache line related to a set of cache lines included in the intermediary cache is associated with the first memory address; causing data associated with the first write command to be written into the first cache line; marking the first cache line as dirty; comparing a total number of cache lines marked as dirty in the set of cache lines to a first threshold value, wherein the first threshold value is adjustable from a first value to a second value that is greater than the first value, and, when the first threshold value equals the second value, fewer dirty data notifications are transmitted to the frame buffer logic when data is written to the first cache line multiple times via multiple write commands, relative to when the first threshold value equals the first value; and comparing the total number of cache lines marked as dirty to a second threshold value that is adjustable and is greater than the first threshold value, wherein: if the total number of cache lines marked as dirty is less than the first threshold value, then no dirty data notification is transmitted to the frame buffer logic, if the total number of cache lines marked as dirty is greater than or equal to the first threshold value but less than or equal to the second threshold value, then only a first dirty data notification is transmitted to the frame buffer logic that specifies a least recently used dirty cache line included in the set of cache lines, wherein the frame buffer logic is configured to, in response to receiving the first dirty data notification, assign a prioritization to the first dirty data notification and then schedule the first dirty data notification for processing according to the prioritization, and if the total number of cache lines marked as dirty is greater than the second threshold value, then both the first dirty data notification and a high-priority clean notification are transmitted to the frame buffer logic, wherein the frame buffer logic is configured to, in response to receiving the high-priority clean notification, immediately retrieve dirty data resident in one or more cache lines included in the set of cache lines, wherein each dirty data notification indicates a particular cache line and does not include any dirty data associated with the particular cache line. 12. The non-transitory computer-readable storage medium of claim 11 , wherein the frame buffer logic is configured to cause di

Assignees

Inventors

Classifications

  • of parts of caches, e.g. directory or tag array · CPC title

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

  • Data transfer between cache memory and other subsystems, e.g. storage devices or host systems · CPC title

  • for peripheral storage systems, e.g. disk cache · CPC title

  • G06F12/084Primary

    with a shared cache · 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 US9639466B2 cover?
One embodiment of the present invention sets forth a technique for processing commands received by an intermediary cache from one or more clients. The technique involves receiving a first write command from an arbiter unit, where the first write command specifies a first memory address, determining that a first cache line related to a set of cache lines included in the intermediary cache is ass…
Who is the assignee on this patent?
Nvidia Corp
What technology area does this patent fall under?
Primary CPC classification G06F12/0804. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue May 02 2017 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).