Virtual cache synonym detection using alias tags

US11650926B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11650926-B2
Application numberUS-202117370229-A
CountryUS
Kind codeB2
Filing dateJul 8, 2021
Priority dateFeb 5, 2019
Publication dateMay 16, 2023
Grant dateMay 16, 2023

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 system and method of handling data access demands in a processor virtual cache that includes: determining if a virtual cache data access demand missed because of a difference in the context tag of the data access demand and a corresponding entry in the virtual cache with the same virtual address as the data access demand; in response to the virtual cache missing, determining whether the alias tag valid bit is set in the corresponding entry of the virtual cache; in response to the alias tag valid bit not being set, determining whether the virtual cache data access demand is a synonym of the corresponding entry in the virtual cache; and in response to the virtual access demand being a synonym of the corresponding entry in the virtual cache with the same virtual address but a different context tag, updating information in a tagged entry in an alias table.

First claim

Opening claim text (preview).

What is claimed is: 1. A non-transitory data storage medium comprising programming instructions that when executed by a processor cause the processor to: make a data access demand to a virtual cache having a plurality of entries; determine, in response to making a data access demand to the virtual cache, whether the data access demand misses in the virtual cache; determine, in response to the data access demand missing in the virtual cache, if the virtual cache data access demand missed because of a difference in a context tag of the data access demand and a context tag of a corresponding entry in the virtual cache with the same virtual address as the data access demand; determine, in response to the virtual cache missing because of a difference in the context tag of the data access demand and the corresponding entry in the virtual cache, whether an alias tag valid bit is set in the corresponding entry of the virtual cache; determine, in response to the alias tag valid bit not being set for the corresponding entry in the virtual cache with the matching virtual address of the data access demand but a different context tag, whether the virtual cache data access demand hits in physical memory with the translated real address and is a synonym of the corresponding entry in the virtual cache; and update, in response to the virtual access demand being a synonym of the corresponding entry in the virtual cache with the same virtual address but a different context tag, information in a tagged entry in an alias table referenced by the corresponding entry in the virtual cache. 2. The non-transitory data storage medium according to claim 1 , wherein updating information in the tagged entry in the alias table further includes programming instructions that when executed by the processor cause the processor to add to the alias table the virtual address of the virtual cache access demand and the translated real address of the synonym. 3. The non-transitory data storage medium according to claim 2 , further comprising programming instructions that when executed by the processor cause the processor to add a thread identification to the tagged entry in the alias table, wherein the thread identification identifies the thread making the virtual cache access demand. 4. The non-transitory data storage medium according to claim 1 , further comprising programming instructions that when executed by the processor cause the processor to determine, in response to the alias tag valid bit being set for the corresponding entry in the virtual cache with the matching virtual address of the access demand but a different context tag, if the thread making the data access demand to the virtual cache has permission to access the corresponding entry in the virtual cache. 5. The non-transitory data storage medium according to claim 4 , further comprising programming instructions that when executed by the processor cause the processor to check the tagged entry in the alias table referenced by an alias tag bit field in the corresponding entry in the virtual cache to determine if the thread making the data access demand to the virtual cache has permission to access that corresponding entry in the virtual cache. 6. The non-transitory data storage medium according to claim 4 , further comprising programming instructions that when executed by the processor cause the processor to provide, in response to the thread of the data access demand having permission to access the corresponding entry in the virtual cache, the data in that corresponding entry in the virtual cache. 7. The non-transitory data storage medium according to claim 4 , further comprising programming instructions that when executed by the processor cause the processor to: determine, in response to the thread of the access demand not having permission to access the corresponding entry in the virtual cache, whether the virtual cache data access demand hits in physical memory with the translated real address and is a synonym of the corresponding entry in the virtual cache; and update, in response to the virtual access demand being a synonym of the corresponding entry in the virtual cache with the same virtual address but a different context tag, the tagged entry in the alias table to grant permission to the thread of the data access demand. 8. The non-transitory data storage medium according to claim 4 , further comprising programming instructions that when executed by the processor cause the processor to, update, in response to the thread of the access demand not having permission to access the corresponding entry in the virtual cache, the tagged entry in the alias table to grant permission to the thread of the data access demand. 9. The non-transitory data storage medium according to claim 4 , further comprising programming instructions that when executed by the processor cause the processor to: set, in response to the thread of the data access demand not having permission to access the corresponding entry in the virtual cache, the alias tag valid bit in the corresponding entry in the virtual cache if not already set valid, and update the alias tag bit field in the corresponding entry in the virtual cache to reference the tagged entry in the alias table if not already set. 10. The non-transitory data storage medium according to claim 9 , wherein updating the alias tag bit field in the corresponding entry in the virtual cache further comprises programming instructions that when executed by the processor cause the processor to include setting the alias tag bit field in the corresponding entry in the virtual cache to match the tagged entry in the alias table. 11. The non-transitory data storage medium according to claim 1 , further comprising programming instructions that when executed by the processor cause the processor to update, in response to a virtual cache miss because of a synonym in the virtual cache, at least one of the virtual cache entries. 12. The non-transitory data storage medium according to claim 11 , wherein updating one or more entries in the virtual cache because of a synonym comprises programming instructions that when executed by the processor cause the processor to change the context tag of the corresponding entry in the virtual cache. 13. The non-transitory data storage medium according to claim 1 , further comprising programming instructions that when executed by the processor cause the processor to provide, in response to the virtual cache data access demand matching the virtual address and context tag in a virtual cache entry, the data in that matching virtual cache entry. 14. The non-transitory data storage medium according to claim 1 , further comprising programming instructions that when executed by the processor cause the processor to: determine whether there is room for an entry in the alias table, and in response to determining that there is no room in the alias table, evict an entry in the alias table and deactivate the alias tag valid bit field for the corresponding entry in the virtual cache. 15. A computing system comprising: a virtual cache having a plurality of entries having a virtual address and associated data, each entry in virtual cache having a bit field for the virtual address, a context tag, an alias tag valid, and an alias tag; an alias table for tracking the virtual address and translated real address of synonyms; and wherein the virtual cache is configured to: receive a data access demand to the virtual cache, and in response to the virtual cache receiving a data access demand to the virtual cache, the system is configured to: determine whether the d

Assignees

Inventors

Classifications

  • Same page detection · CPC title

  • Virtual address space management · CPC title

  • the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism · CPC title

  • Emulated environment, e.g. virtual machine · CPC title

  • Reliability improvement, data loss prevention, degraded operation etc · 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 US11650926B2 cover?
A system and method of handling data access demands in a processor virtual cache that includes: determining if a virtual cache data access demand missed because of a difference in the context tag of the data access demand and a corresponding entry in the virtual cache with the same virtual address as the data access demand; in response to the virtual cache missing, determining whether the alias…
Who is the assignee on this patent?
IBM
What technology area does this patent fall under?
Primary CPC classification G06F12/0877. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue May 16 2023 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).