Determining a criterion for movement of data from a primary cache to a secondary cache

US9772948B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9772948-B2
Application numberUS-201213543123-A
CountryUS
Kind codeB2
Filing dateJul 6, 2012
Priority dateJul 6, 2012
Publication dateSep 26, 2017
Grant dateSep 26, 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.

A new segment of data is copied to a volatile, primary cache based on a host data read access request. The primary cache mirrors a first portion of a non-volatile main storage criterion is determined for movement of data from the primary cache to a non-volatile, secondary cache that mirrors a second portion of the main storage. The criterion gives higher priority to segments having addresses not yet selected for reading by the host. In response to the new segment of data being copied to the primary cache, a selected segment of data is copied from the primary cache to the secondary cache in response to the selected segment satisfying the criterion.

First claim

Opening claim text (preview).

What is claimed is: 1. An apparatus comprising: a non-volatile main storage; a volatile, primary cache mirroring a first portion of the main storage; a non-volatile secondary cache mirroring a second portion of the main storage, wherein the secondary cache is used for storing read data only; and a processor configured to: cause a new segment of data to be copied to the primary cache in response to a data read access request from a host; determine a criterion for copying of data from the primary cache to the secondary cache, wherein the criterion gives segments having addresses not yet selected for reading by the host higher priority than segments having addresses selected for reading by the host; and in response to the new segment of data being copied into the primary cache, copy a selected segment of data from the primary cache to the secondary cache in response to the selected segment satisfying the criterion and where the criterion prevents the copying of the selected segment based on the selected segment containing write data. 2. The apparatus of claim 1 , wherein the selected segment is copied from the primary cache to the secondary cache further in response to a high spatial locality of recent host requests. 3. The apparatus of claim 1 , wherein copying the selected segment of data from the primary cache to the secondary cache would cause a cluster of the secondary cache to be evicted, wherein determining the criterion further comprises whether the selected segment has an equal or higher priority than the cluster. 4. The apparatus of claim 1 , wherein the criterion prevents the copying of the selected segment based on whether an address range of the selected segment overlaps with a range of addresses already copied or reserved for copying to the secondary cache. 5. The apparatus of claim 1 , wherein the criterion prevents the copying of the selected segment based on the selected segment not satisfying a minimum size and an address alignment associated with a cache line of the secondary cache. 6. A method comprising: causing a new segment of data to be copied to a volatile, primary cache based on a data read access request from a host, the primary cache mirroring a first portion of a non-volatile main storage; determining a criterion for copying of data from the primary cache to a non-volatile, secondary cache that mirrors a second portion of the main storage and is used for storing read data only, wherein the criterion gives segments having addresses not yet selected for reading by the host higher priority than segments having addresses selected for reading by the host; and in response to the new segment of data being copied to the primary cache, causing a selected segment of data to be copied from the primary cache to the secondary cache in response to the selected segment satisfying the criterion and wherein the criterion prevents the copying of the selected segment in response to the selected segment containing write data. 7. The method of claim 6 , wherein the selected segment is copied from the primary cache to the secondary cache further in response to a high spatial locality of recent host request. 8. The method of claim 6 , wherein copying the selected segment of data from the primary cache to the secondary cache would cause a cluster of the secondary cache to be evicted, wherein determining the criterion further comprises determining whether the selected segment has an equal or higher priority than the cluster. 9. The method of claim 6 , wherein the criterion prevents the copying of the data based on whether an address range of the selected segment overlaps with a range of addresses already copied or reserved for copying to the secondary cache. 10. The method of claim 6 , wherein the criterion prevents the copying of the data based on the selected segment not satisfying a minimum size and an address alignment associated with a cache line of the secondary cache. 11. A method comprising: defining a list that references segments of a primary cache eligible for copying to a secondary cache, the primary and secondary caches respectively mirroring first and second portions of a non-volatile main storage and wherein the secondary cache stores read data only; adding candidate segments from the primary cache to the list in response to logical block address ranges of the candidate segments satisfying an address criterion of the secondary cache wherein the candidate segments are added to the list further based on the candidate segments not including write data; and in response to new data being added to the primary cache, copying at least one of the candidate segments to the secondary cache. 12. The method of claim 11 , wherein the address criterion of the secondary cache comprises a cache line size of the secondary cache, and wherein the candidate segments satisfy the address criterion if a size of the candidate segments is greater than or equal to the cache line size. 13. The method of claim 11 , wherein the address criterion of the secondary cache comprises an allowable starting logical block address of a cache line of the secondary cache, and wherein the candidate segments satisfy the address criterion if a logical block address of the candidate segments satisfies the allowable starting logical block address. 14. The method of claim 11 , wherein the candidate segments are added to the list further based on the candidate segments having not already been copied or reserved for copying to the secondary cache. 15. The method of claim 11 , wherein the candidate segments are added to the list further based on satisfying at least one of the following: the candidate segments include addresses not yet selected for reading by a host; and data of the candidate segments have secondary cache importance metrics greater than or equal to an equivalent metric of a cluster of the secondary cache that would be evicted in response to moving at least one of the candidate segments to the secondary cache. 16. The method of claim 11 , wherein the list is sorted based on a primary cache priority of the candidate segments so that candidate segments having a lower primary cache priority are selected for moving to the secondary cache ahead of candidate segments with a higher primary cache priority.

Assignees

Inventors

Classifications

  • with prefetch · CPC title

  • Mapping of cache memory to specific storage devices or parts thereof · CPC title

  • with multilevel cache hierarchies · 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 US9772948B2 cover?
A new segment of data is copied to a volatile, primary cache based on a host data read access request. The primary cache mirrors a first portion of a non-volatile main storage criterion is determined for movement of data from the primary cache to a non-volatile, secondary cache that mirrors a second portion of the main storage. The criterion gives higher priority to segments having addresses no…
Who is the assignee on this patent?
Sawin James David, Friendshuh Luke W, Jannyavula Venkata Sumanth, and 3 more
What technology area does this patent fall under?
Primary CPC classification G06F12/0873. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Sep 26 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 4 related publications on this page (citations in our corpus or others sharing the same primary CPC).