Method and apparatus to use DRAM as a cache for slow byte-addressible memory for efficient cloud applications
US-12174739-B2 · Dec 24, 2024 · US
US2016019149A1 · US · A1
| Field | Value |
|---|---|
| Publication number | US-2016019149-A1 |
| Application number | US-201414584755-A |
| Country | US |
| Kind code | A1 |
| Filing date | Dec 29, 2014 |
| Priority date | Jul 18, 2014 |
| Publication date | Jan 21, 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 cache memory that selectively enables and disables speculative reads from system memory is disclosed. The cache memory may include a plurality of partitions, and a plurality of registers. Each register may be configured to stored data indicative of a source of returned data for previous requests directed to a corresponding partition. Circuitry may be configured to receive a request for data to a given partition. The circuitry may be further configured to read contents of a register corresponding to the given partition, and initiate a speculative read dependent upon the contents of the register.
Opening claim text (preview).
What is claimed is: 1 . An apparatus, comprising: a first memory including a plurality of partitions; at least one register configured to store history data, wherein the history data includes information indicative of a source of returned data for at least one previous read request; and circuitry configured to: receive a read request for data from a first partition of the plurality of partitions; read the history data from the at least one register responsive to a determination that the data is not stored in the first partition of the plurality of partitions; and initiate a speculative read of the data from a second memory dependent upon the history data. 2 . The apparatus of claim 1 , wherein to initiate the speculative read of the data the circuitry is further configured to determine a number of previous read requests whose source of returned data is a given partition of the plurality of partitions. 3 . The apparatus of claim 2 , wherein the circuitry is further configured to initiate the speculative read responsive to a determination that the number of previous read requests whose source of returned data is a given partition of the plurality of partitions is less than a predetermined threshold value. 4 . The apparatus of claim 1 , wherein the history data includes a plurality of portions, and wherein each portion of the plurality of portions corresponds a respective execution thread of a plurality of execution threads. 5 . The apparatus of claim 1 , wherein the circuitry is further configured to update the history data responsive to the determination that the data is not stored in the first partition of the plurality of partitions. 6 . The apparatus of claim 5 , wherein to update the history data, the circuitry is further configured to store a logic value in a location in the at least one register, wherein the logic value is indicative of a source of returned data for the read request. 7 . A method for operating a memory, the method comprising: receiving a read request for data from a first partition of a plurality of partitions of a first memory; reading history data from at least one register responsive to determining that the data is not stored in the first partition of the plurality of partitions, wherein the history data includes information indicative of a source of returned data for at least one previous read request; and initiating a speculative read of the data from a second memory dependent upon the history data. 8 . The method of claim 7 , wherein initiating the speculative read comprises determining a number of previous read requests whose source of returned data is a given partition of the plurality of partitions. 9 . The method of claim 8 , further comprising initiating the speculative read responsive to determining the number of previous read requests whose source of returned data is a given partition of the plurality of partitions is less than a predetermined threshold value. 10 . The method of claim 7 , wherein the history data includes a plurality of portions, and wherein each portion of the plurality of portions corresponds to a respective execution thread of a plurality of execution threads. 11 . The method of claim 7 , further comprising updating the history data responsive to determining that the data is not stored in the first partition of the plurality of partitions. 12 . The method of claim 11 , wherein updating the history data comprises storing a first logic value in a location of the at least one register corresponding to the read request responsive to determining that a source of returned data for the read request is a second partition of the plurality of partitions. 13 . The method of claim 12 , wherein updating the history data comprises storing a second logic value in a location of the register corresponding to the read request responsive to determining that a source of returned data for the read request is the second memory, wherein the second logic value is different than the first logic value. 14 . The method of claim 7 , wherein the second memory comprises system memory. 15 . A system, comprising: a first memory including a plurality of partitions, and at least one register configured to store history data, wherein the history data includes information indicative of a source of returned data for at least one previous read request; a second memory; and a plurality of processors, wherein a given processor of the plurality of processors is configured to send a read request to the first memory for data from a first partition of the plurality of partitions; wherein the first memory is configured to: receive the read request; read the history data responsive to a determination that the data is not stored in the first partition of the plurality of partitions; and initiate a speculative read of the data from the second memory dependent upon the history data. 16 . The system of claim 15 , wherein to initiate the speculative read of the data from the second memory, the first memory is further configured to determine a number of previous read requests whose source of returned data is a given partition of the plurality of partitions. 17 . The system of claim 16 , wherein the first memory is further configured to initiate the speculative read responsive to a determination that the number of previous read requests whose source of returned data is a given memory partition of the plurality of partitions is less than a predetermined threshold value. 18 . The system of claim 15 , wherein the history data includes a plurality of portions, and wherein each portion of the plurality of portions corresponds to a respective execution thread of a plurality of execution threads. 19 . The system of claim 15 , wherein the first memory is further configured to update the history responsive to a determination that the data is not stored in the first partition of the plurality of partitions. 20 . The system of claim 19 , wherein to update the history data, the first memory is further configured to store a logic value in a location in the at least one register, wherein the logic value is indicative of a source of returned data for the read request.
with multilevel cache hierarchies · CPC title
Details relating to cache allocation · CPC title
History based prefetching · CPC title
Latency reduction · CPC title
with prefetch · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.