Translation support for a virtual cache

US11775445B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11775445-B2
Application numberUS-202017069290-A
CountryUS
Kind codeB2
Filing dateOct 13, 2020
Priority dateJun 16, 2017
Publication dateOct 3, 2023
Grant dateOct 3, 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.

Disclosed herein is a virtual cache and method in a processor for supporting multiple threads on the same cache line. The processor is configured to support virtual memory and multiple threads. The virtual cache directory includes a plurality of directory entries, each entry is associated with a cache line. Each cache line has a corresponding tag. The tag includes a logical address, an address space identifier, a real address bit indicator, and a per thread validity bit for each thread that accesses the cache line. When a subsequent thread determines that the cache line is valid for that thread the validity bit for that thread is set, while not invalidating any validity bits for other threads.

First claim

Opening claim text (preview).

What is claimed is: 1. A method of operating a primary processor cache for a processor with virtual memory support and multiple threads, wherein a logically indexed and logically tagged cache directory is used, and wherein an entry in the directory contains an absolute memory address in addition to a corresponding logical memory address, each entry includes a valid bit for each thread that accesses each entry, comprising: creating a new entry for the cache line in the primary cache in response to the cache line being in a secondary cache, and not in the primary cache; determining by a second thread that an entry for the cache line is present in the primary cache; in response to determining that the entry for the cache line is present in the primary cache, determining that the cache line is not valid for the second thread; executing a lookup to determine an address for the cache line in the primary cache; determining that the address for the cache line and the entry are the same cache line; in response to determining that the address and the entry are the same, setting the valid bit associated with the second thread to valid, and not invalidating the valid bit associated with other threads in the cache entry that have a valid bit in the cache entry, and not creating an additional cache entry, wherein the valid bit is independent of other valid bits in the cache entry. 2. The method of claim 1 wherein the secondary cache is an L2 cache. 3. The method of claim 1 wherein the secondary cache is an L3 cache. 4. The method of claim 1 wherein creating the new entry overwrites a previous entry in the primary cache. 5. The method of claim 1 wherein creating the new entry copies the cache line from the secondary cache to the primary cache. 6. The method of claim 5 wherein creating sets the valid bit associated with the first thread in the cache line to on. 7. The method of claim 6 wherein creating invalidates the valid bit associated with any other threads in the cache line. 8. The method of claim 1 further comprising: determining that a cache line is not in the primary cache based on a thread shared entry in the directory, and wherein the first thread has a thread private entry in the cache directory. 9. A computer program product having computer executable instructions for operating a processor with virtual memory support and multiple threads wherein a logically indexed and logically tagged cache directory is used, and wherein an entry in the directory contains an absolute memory address in addition to a corresponding logical memory address, each entry includes a valid bit for each thread that accesses each entry, that when executed cause at least one computer to execute a method comprising: creating a new entry for a cache line in the primary cache in response to the cache line being in a secondary cache, and not in the primary cache; determining by a second thread that an entry for the cache line is present in the primary cache; in response to determining that the entry for the cache line is present in the primary cache, determining that the cache line is not valid for the second thread; executing a lookup to determine an address for the cache line in the primary cache; determining that the address for the cache line and the entry are the same cache line; in response to determining that the address and the entry are the same, setting the valid bit associated with the second thread to valid, and not invalidating the valid bit associated with other threads in the cache entry, and not creating an additional cache entry, wherein the valid bit is independent of other valid bits in the cache entry. 10. The computer program product of claim 9 wherein the secondary cache is an L2 cache. 11. The computer program product of claim 9 wherein creating the new entry overwrites a previous entry in the primary cache. 12. The computer program product of claim 9 wherein creating the new entry copies the cache line from the secondary cache to the primary cache. 13. The computer program product of claim 12 wherein creating sets the valid bit associated with the first thread in the cache line to on. 14. The computer program product of claim 13 wherein creating invalidates the valid bit associated with any other threads in the cache line. 15. The computer program product of claim 9 further comprising: determining, by the first thread, that the cache line is not present in the primary cache. 16. The computer program product of claim 15 wherein determining that the cache line is not in the primary cache, determines based on a thread shared entry in the directory, and wherein the first thread has a thread private entry in the cache directory. 17. The computer program product of claim 9 further comprising: determining that the cache line is in the secondary cache.

Assignees

Inventors

Classifications

  • the data cache being concurrently virtually addressed · CPC title

  • with cache invalidating means (G06F12/0815 takes precedence) · CPC title

  • using directory methods · CPC title

  • for multiprocessing or multitasking · CPC title

  • using pseudo-associative means, e.g. set-associative or hashing · 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 US11775445B2 cover?
Disclosed herein is a virtual cache and method in a processor for supporting multiple threads on the same cache line. The processor is configured to support virtual memory and multiple threads. The virtual cache directory includes a plurality of directory entries, each entry is associated with a cache line. Each cache line has a corresponding tag. The tag includes a logical address, an address …
Who is the assignee on this patent?
IBM
What technology area does this patent fall under?
Primary CPC classification G06F12/1063. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Oct 03 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 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).