Multiple copy scoping bits for cache memory

US11487672B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-11487672-B1
Application numberUS-202117407228-A
CountryUS
Kind codeB1
Filing dateAug 20, 2021
Priority dateAug 20, 2021
Publication dateNov 1, 2022
Grant dateNov 1, 2022

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.

Aspects of the invention include computer-implemented methods, systems, and computer program products that access a multi-copy scope directory state of a cache memory that indicates a scope of sharing of a cache line in a cache memory system and determine a scope of sharing of the cache line in the cache memory system based on the multi-copy scope directory state, where the multi-copy scope directory state enumerates a plurality of scopes within the cache memory system. The scope of sharing is used to reduce a number of queries to one or more cache memories having a larger scope than a shared scope identified in the scope of sharing. The multi-copy scope directory state of the cache memory is updated based on detecting a change in shared scope of the cache line within the cache memory system.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer-implemented method comprising: accessing a multi-copy scope directory state of a cache memory that indicates a scope of sharing of a cache line in a cache memory system; determining a scope of sharing of the cache line in the cache memory system based on the multi-copy scope directory state, wherein the multi-copy scope directory state enumerates a plurality of scopes within the cache memory system; using the scope of sharing to reduce a number of queries to one or more cache memories having a larger scope than a shared scope identified in the scope of sharing; and updating the multi-copy scope directory state of the cache memory based on detecting a change in shared scope of the cache line within the cache memory system. 2. The computer-implemented method of claim 1 , wherein the scope of sharing having a smaller scope is a subset of the scope of sharing having the larger scope within the cache memory system. 3. The computer-implemented method of claim 2 , wherein the scope of sharing comprises a chip scope as a smallest scope, a module scope, a drawer scope, and a system scope as a largest scope. 4. The computer-implemented method of claim 1 , further comprising: setting a snoop scope to a smallest scope based on determining that a requesting cache has requested a shared copy of the cache line; sending a query to one or more remote cache memories in a current snoop scope that have not already been sent a query; determining whether an intervention master copy of the cache line is found in a remote cache memory of the current snoop scope or encountering the cache line in a forward state; and installing a shared copy of the cache line in the requesting cache and updating a state of a directory entry holding a master copy of the cache line based on the intervention master copy of the cache line being found in a remote cache memory of the current snoop scope or encountering the cache line in the forward state. 5. The computer-implemented method of claim 4 , further comprising: fetching the cache line from the cache memory and updating a requesting cache directory based on one or more copies of the cache line being found in a shared non-master state after not finding the cache line in an initial snoop scope; and updating at least one remote sourcing directory of the cache line. 6. The computer-implemented method of claim 1 , further comprising: determining whether a requesting cache has an intervention master shared copy of the cache line based on the requesting cache requesting an exclusive copy of the cache line; requesting invalidation of the cache line in all cache memories in a smallest snoop scope that contains a directory scope; and updating a requesting cache directory for the cache line in a requesting core to an exclusive state. 7. The computer-implemented method of claim 6 , further comprising: setting a current snoop scope to the smallest snoop scope based on determining that the requesting cache does not have the intervention master shared copy of the cache line; sending a query to one or more remote caches in the current snoop scope that have not already been sent a query; updating a remote cache directory to an invalid state based on a shared, not intervention master copy of the cache line in the current snoop scope; updating the requesting cache directory for the cache line to the exclusive state based on determining that an intervention master copy of the cache line is not found in a remote cache in the current snoop scope and a highest snoop scope has been reached; and setting the current snoop scope to a next larger snoop scope based on determining that the intervention master copy of the cache line is not found in the remote cache in the current snoop scope and the highest snoop scope has not been reached. 8. The computer-implemented method of claim 7 , further comprising: updating the remote cache directory for the cache line to the invalid state, and installing the exclusive copy of the cache line in the exclusive state based on finding the remote cache with the exclusive copy of the cache line in the current snoop scope and determining that the intervention master copy of the cache line is not found in the remote cache in the current snoop scope; and updating the remote cache directory for the cache line to the invalid state, and updating the requesting cache directory for the cache line to the exclusive state based on finding the remote cache with the intervention master shared copy of the cache line in the current snoop scope, and the directory scope in the remote cache is less than or equal to the current snoop scope. 9. The computer-implemented method of claim 8 , further comprising: updating the remote cache directory for the cache line to the invalid state, and sending a query to the remote caches in the smallest snoop scope larger than the directory scope in the remote cache that have not already been sent the query based on the directory scope in the remote cache being larger than the current snoop scope; updating the remote cache directory for the cache line to the invalid state; and updating the requesting cache directory for the cache line to the exclusive state. 10. The computer-implemented method of claim 7 , further comprising: using the intervention master copy of the cache line prior to a full system state being resolved based on detecting that a primary scope does not contain the intervention master copy of the cache line, a secondary scope does contain the intervention master copy of the cache line, and a larger scope broadcast has been initiated. 11. A system comprising: a plurality of processors; a cache memory system; and a cache controller configured to perform operations comprising: accessing a multi-copy scope directory state of a cache memory that indicates a scope of sharing of a cache line in the cache memory system; determining a scope of sharing of the cache line in the cache memory system based on the multi-copy scope directory state, wherein the multi-copy scope directory state enumerates a plurality of scopes within the cache memory system; using the scope of sharing to reduce a number of queries to one or more cache memories having a larger scope than a shared scope identified in the scope of sharing; and updating the multi-copy scope directory state of the cache memory based on detecting a change in shared scope of the cache line within the cache memory system. 12. The system of claim 11 , wherein the scope of sharing having a smaller scope is a subset of the scope of sharing having the larger scope within the cache memory system. 13. The system of claim 12 , wherein the scope of sharing comprises a chip scope as a smallest scope, a module scope, a drawer scope, and a system scope as a largest scope. 14. The system of claim 11 , wherein the cache controller is configured to perform operations comprising: setting a snoop scope to a smallest scope based on determining that a requesting cache has requested a shared copy of the cache line; sending a query to one or more remote cache memories in a current snoop scope that have not already been sent a query; determining whether an intervention master copy of the cache line is found in a remote cache memory of the current snoop scope or encountering the cache line in a forward state; and installing a shared copy of the cache line in the requesting cache and updating a state of a directory entry holding a master copy of the cache line based on the intervention master copy of the cache line being found in a remote cache memory of the current snoop scope or encount

Assignees

Inventors

Classifications

  • Latency reduction · CPC title

  • Copy directories (local copy tags for implementing a bus snooping protocol G06F12/0831) · CPC title

  • Limited pointers directories; State-only directories without pointers · CPC title

  • with a shared cache · CPC title

  • with a network or matrix configuration · 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 US11487672B1 cover?
Aspects of the invention include computer-implemented methods, systems, and computer program products that access a multi-copy scope directory state of a cache memory that indicates a scope of sharing of a cache line in a cache memory system and determine a scope of sharing of the cache line in the cache memory system based on the multi-copy scope directory state, where the multi-copy scope dir…
Who is the assignee on this patent?
IBM
What technology area does this patent fall under?
Primary CPC classification G06F12/0813. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Nov 01 2022 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 6 related publications on this page (citations in our corpus or others sharing the same primary CPC).