History based memory speculation for partitioned cache memories

US2016019149A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2016019149-A1
Application numberUS-201414584755-A
CountryUS
Kind codeA1
Filing dateDec 29, 2014
Priority dateJul 18, 2014
Publication dateJan 21, 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 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.

First claim

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.

Assignees

Inventors

Classifications

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 US2016019149A1 cover?
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 t…
Who is the assignee on this patent?
Oracle Int Corp
What technology area does this patent fall under?
Primary CPC classification G06F12/0811. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Jan 21 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 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).