Handling virtual memory address synonyms in a multi-level cache hierarchy structure

US9274959B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9274959-B2
Application numberUS-201414335230-A
CountryUS
Kind codeB2
Filing dateJul 18, 2014
Priority dateJul 24, 2013
Publication dateMar 1, 2016
Grant dateMar 1, 2016

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.

Handling virtual memory address synonyms in a multi-level cache hierarchy structure. The multi-level cache hierarchy structure having a first level, L1 cache, the L1 cache being operatively connected to a second level, L2 cache split into a L2 data cache directory and a L2 instruction cache. The L2 data cache directory including directory entries having information of data currently stored in the L1 cache, the L2 cache being operatively connected to a third level, L3 cache. The first level cache is virtually indexed while the second and third levels are physically indexed. Counter bits are allocated in a directory entry of the L2 data cache directory for storing a counter number. The directory entry corresponds to at least one first L1 cache line. A first search is performed in the L1 cache for a requested virtual memory address, wherein the virtual memory address corresponds to a physical memory address tag at a second L1 cache line.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for handling virtual memory address synonyms in a multi-level cache hierarchy structure, the multi-level cache hierarchy structure comprising a first level, L1 cache, the L1 cache being operatively connected to a second level, L2 cache split into a L2 data cache directory and a L2 instruction cache, wherein the L2 data cache directory comprises directory entries comprising information of data currently stored in the L1 cache, the L2 cache being operatively connected to a third level, L3 cache, the method comprising: allocating counter bits in a directory entry of the L2 data cache directory for storing a counter number, wherein the directory entry corresponds to at least one first L1 cache line, and wherein the first level cache is virtually indexed while the second and third levels are physically indexed; performing a first search in the L1 cache for a requested virtual memory address, wherein the requested virtual memory address corresponds to a physical memory address tag at a second L1 cache line; based on the first search resulting in a cache miss, performing a second search in the L2 cache to locate a synonym index of a synonym L1 cache line corresponding to the requested virtual memory address, wherein the synonym L1 cache line is the at least one first L1 cache line; based on the second search resulting in a cache hit: sending a fetch request to the L3 cache for fetching contents of the synonym L1 cache line from the L3 cache, wherein the counter number is incremented; invalidating the synonym L1 cache line in the directory entry and in a L1 directory entry of the L1 cache corresponding to the synonym L1 cache line; and copying the fetched contents to the second L1 cache line; and based on a determination that the counter number is equal to a predetermined maximum number of synonyms: copying the contents of the synonym L1 cache line to the L2 instruction cache of the L2 cache, wherein a subsequent fetch request is redirected to the L2 instruction cache for fetching the contents of the synonym L1 cache line from the L2 instruction cache and for subsequently executing the invalidating the synonym L1 cache line and copying the fetched contents to the second L1 cache line. 2. The method of claim 1 , wherein the directory entry further comprises least recently used (LRU) bits indicative of a least recently used cache line for data replacement, wherein the copying the fetched contents of the second L1 cache line comprises modifying the LRU bits of the directory entry for indicating the synonym L1 cache line as a replacement cache line. 3. The method of claim 1 , wherein the copying the contents of the synonym L1 cache line comprises modifying LRU bits of the directory entry for indicating a cache line of the L2 instruction cache as a replacement cache line. 4. The method of claim 1 , wherein the copying the fetched contents to the second L1 cache line further comprises: updating the directory entry with a synonym index of the second L1 cache line; and creating a L1 directory entry in the L1 cache corresponding to the second L1 cache line. 5. The method of claim 1 , wherein the synonym index comprises at least one bit, b, of a virtual part of the requested virtual memory address, wherein the maximum number of synonyms is determined based on the synonym index. 6. The method of claim 1 , wherein the counter bits comprise at least two bits. 7. The method of claim 1 , wherein the fetching comprises incrementing the counter number by one. 8. The method of claim 1 , wherein the counter number is set to zero when the synonym L1 cache line is first copied from the L3 cache. 9. A multi-level cache system comprising a first level, L1 cache being operatively connected to a second level, L2 cache split into a L2 data cache directory and a L2 instruction cache, wherein the L2 data cache directory comprises directory entries comprising information of data currently stored in the L1 cache, the L2 cache being operatively connected to a third level, L3 cache, the multi-level cache system comprising: a L1 controller in the L1 cache configured to perform a first search in the L1 cache for a requested virtual memory address, wherein the requested virtual memory address corresponds to a physical memory address tag at a second L1 cache line, wherein the first level cache is virtually indexed while the second and third levels are physically indexed; a L2 controller in the L2 cache configured to: allocate counter bits in a directory entry of the L2 data cache directory for storing a counter number, wherein the directory entry corresponds to at least one first L1 cache line; based on the first search resulting in a cache miss, performing a second search in the L2 cache to locate a synonym index of a synonym L1 cache line corresponding to the requested virtual memory address, wherein the synonym L1 cache line is the at least one first L1 cache line; and based on the second search resulting in a cache hit: sending a fetch request to the L3 cache for fetching contents of the synonym L1 cache line from the L3 cache, wherein the counter number is incremented; invalidating the synonym L1 cache line in the directory entry and in a L1 directory entry of the L1 cache corresponding to the synonym L1 cache line; and copying the fetched contents to the second L1 cache line; and based on a determination that the counter number is equal to a predetermined maximum number of synonyms: copying the contents of the synonym L1 cache line to the L2 instruction cache of the L2 cache, wherein a subsequent fetch request is redirected to the L2 instruction cache for fetching the contents of the synonym L1 cache line from the L2 instruction cache and for subsequently executing the invalidating the synonym L1 cache line and copying the fetched contents to the second L1 cache line. 10. The multi-level cache system of claim 9 , wherein the L2 cache comprises a fetch control register for storing and incrementing the counter number, wherein the fetching comprises loading the incremented counter number of the fetch control register and storing said counter number in the allocated counter bits. 11. The multi-level cache system of claim 9 , wherein the L2 data cache directory comprises at least 2 counter bits. 12. The multi-level cache system of claim 9 , wherein the directory entry further comprises least recently used (LRU) bits indicative of a least recently used cache line for data replacement, wherein the copying the fetched contents of the second L1 cache line comprises modifying the LRU bits of the directory entry for indicating the synonym L1 cache line as a replacement cache line. 13. A computer program product for handling virtual memory address synonyms in a multi-level cache hierarchy structure, the multi-level cache hierarchy structure comprising a first level, L1 cache, the L1 cache being operatively connected to a second level, L2 cache split into a L2 data cache directory and a L2 instruction cache, wherein the L2 data cache directory comprises directory entries comprising information of data currently stored in the L1 cache, the L2 cache being operatively connected to a third level, L3 cache, the computer program product comprising: a non-transitory computer readable storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing a method comprising: allocating counter bits in a directory entry of the L2 data cache directory for storing a counter number, wherein the directory entry corresponds to at least one first L1 cache line, and wherein the first level cache is virtually indexed

Assignees

Inventors

Classifications

  • Partitioned cache, e.g. separate instruction and operand caches · CPC title

  • Latency reduction · CPC title

  • with two or more cache hierarchy levels (with multilevel cache hierarchies G06F12/0811) · CPC title

  • the data cache being concurrently virtually addressed · 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 US9274959B2 cover?
Handling virtual memory address synonyms in a multi-level cache hierarchy structure. The multi-level cache hierarchy structure having a first level, L1 cache, the L1 cache being operatively connected to a second level, L2 cache split into a L2 data cache directory and a L2 instruction cache. The L2 data cache directory including directory entries having information of data currently stored in t…
Who is the assignee on this patent?
Globalfoundries Inc
What technology area does this patent fall under?
Primary CPC classification G06F12/0848. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Mar 01 2016 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).