Apparatus and method for a non-power-of-2 size cache in a first level memory device to cache data present in a second level memory device

US9747041B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9747041-B2
Application numberUS-201514757926-A
CountryUS
Kind codeB2
Filing dateDec 23, 2015
Priority dateDec 23, 2015
Publication dateAug 29, 2017
Grant dateAug 29, 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.

Provided are an apparatus and method for a non-power-of-2 size cache in a first level memory device to cache data present in a second level memory device having a 2 n cache size. A request is to a target address having n bits directed to the second level memory device. A determination is made whether a target index, comprising m bits of the n bits of the target address, is within an index set of the first level memory device. A determination is made of a modified target index in the index set of the first level memory device having at least one index bit that differs from a corresponding at least one index bit in the target index. The request is processed with respect to data in a cache line at the modified target index in the first level memory device.

First claim

Opening claim text (preview).

What is claimed: 1. An apparatus, comprising: a first level memory device having a non-power of 2 cache size to cache data present in a second level memory device having a 2 n size larger than the non-power of 2 cache size of the first level memory device; and a cache manager to: receive a request to a target address having n bits directed to the second level memory device; determine whether a target index, comprising m bits of the n bits of the target address, is within an index set of the first level memory device, wherein an index set of 2 m is greater in size than the index set in the first level memory device; determine a modified target index in the index set of the first level memory device having at least one index bit that differs from a corresponding at least one index bit in the target index; and process the request with respect to data in a cache line at the modified target index in the first level memory device. 2. The apparatus of claim 1 , wherein the determining the modified target index comprises toggling the corresponding at least one index bit in the target index to produce the at least one index bit in the modified target index that differs from the corresponding at least one index bit in the target index. 3. The apparatus of claim 1 , wherein 2 m is equal to 2 k divided by a cache line size of cache lines in the first level memory device, where k comprises a lowest integer value such that 2 k is greater than the non-power of 2 cache size. 4. The apparatus of claim 1 , wherein the cache manager is further to: save the corresponding at least one index bit from the target index that differs from the at least one index bit in the modified target index in a tag in the cache line at the modified target index in the first level memory device. 5. The apparatus of claim 4 , wherein the cache manager is further to: in response to determining that the target index is within the index set of the first level memory device, save in the tag the at least one index bit in the target index that would have been changed if the target index was not in the index set of the first level memory device. 6. The apparatus of claim 4 , wherein the tag includes at least one of a most significant non-index bits of the target address and the at least one index bit in the target index that is modified if the target index is not within the index set of the first level memory device. 7. The apparatus of claim 6 , wherein the target address further includes b offset bits to address each of a 2 b data bytes in the cache line, wherein the tag includes (n-m-b) of the most significant non-index bits of the target address and the at least one most significant index bit in the target index that is modified if the target index is not within the index set of the first level memory device, wherein the tag includes the at least one most significant index bit when the target index is within and not within the index set of the first level memory device. 8. The apparatus of claim 4 , wherein the cache manager is further to: form a formed tag for the target address comprising at least one most significant bit from the target index and at least one most significant bit of the target address following the target index; determine whether the formed tag matches the tag in the cache line at the modified target index; fetch data at the target address in the second level memory device to store in the cache line in response to determining that the formed tag not match the tag in the cache line; and process the request in response to the fetching of the data. 9. The apparatus of claim 8 , wherein the cache manager is further to: process the request with respect to the data in the cache line in response to determining that the formed target tag matches the tag in the cache line. 10. The apparatus of claim 1 , wherein the first level memory device comprises a volatile memory device and the second level memory device comprises a byte addressable non-volatile random access memory device. 11. A system, comprising: a processor having a cache manager; a main memory for the processor including a first level memory device and a second level memory device, wherein the first level memory device caches data for the second level memory device, and wherein the first level memory device has a non-power of 2 cache size to cache data present in the second level memory device having a 2 n size larger than the non-power of 2 cache size of the first level memory device; and a cache manager to: receive a request to a target address having n bits directed to the second level memory device; determine whether a target index, comprising m bits of the n bits of the target address, is within an index set of the first level memory device, wherein an index set of 2 m is greater in size than the index set in the first level memory device; determine a modified target index in the index set of the first level memory device having at least one index bit that differs from a corresponding at least one index bit in the target index; and process the request with respect to data in a cache line at the modified target index in the first level memory device. 12. The system of claim 11 , wherein the determining the modified target index comprises toggling the corresponding at least one index bit in the target index to produce the at least one index bit in the modified target index that differs from the corresponding at least one index bit in the target index. 13. The system of claim 11 , wherein the cache manager is further configured to: save the corresponding at least one index bit from the target index that differs from the at least one index bit in the modified target index in a tag in the cache line at the modified target index in the first level memory device. 14. The system of claim 13 , wherein the cache manager is further configured to: in response to determining that the target index is within the index set of the first level memory device, save in the tag the at least one index bit in the target index that would have been changed if the target index was not in the index set of the first level memory device. 15. The system of claim 13 , wherein the tag includes at least one of a most significant non-index bits of the target address and the at least one index bit in the target index that is modified if the target index is not within the index set of the first level memory device. 16. The system of claim 15 , wherein the target address further includes b offset bits to address each of a 2 b data bytes in the cache line, wherein the tag includes (n-m-b) of the most significant non-index bits of the target address and the at least one most significant index bit in the target index that is modified if the target index is not within the index set of the first level memory device, wherein the tag includes the at least one most significant index bit when the target index is within and not within the index set of the first level memory device. 17. The system of claim 13 , wherein the cache manager is further configured to: form a formed tag for the target address comprising at least one most significant bit from the target index and at least one most significant bit of the target address following the target index; determine whether the formed tag matches the tag in the cache line at the modified target index; fetch data at the target address in the second level memory device to store in the cache line in response to determining that the formed tag not match the tag in the cache line; and process the request in re

Assignees

Inventors

Classifications

  • G06F3/0611Primary

    in relation to response time · CPC title

  • Caching of specific data in cache memory · CPC title

  • Hybrid storage device · CPC title

  • Hybrid memory, e.g. using both volatile and non-volatile memory · CPC title

  • Organizing or formatting or addressing of data · 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 US9747041B2 cover?
Provided are an apparatus and method for a non-power-of-2 size cache in a first level memory device to cache data present in a second level memory device having a 2 n cache size. A request is to a target address having n bits directed to the second level memory device. A determination is made whether a target index, comprising m bits of the n bits of the target address, is within an index set …
Who is the assignee on this patent?
Intel Corp
What technology area does this patent fall under?
Primary CPC classification G06F3/0611. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 29 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 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).