Concurrent modification of shared cache line by multiple processors

US10769068B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10769068-B2
Application numberUS-201715809049-A
CountryUS
Kind codeB2
Filing dateNov 10, 2017
Priority dateNov 10, 2017
Publication dateSep 8, 2020
Grant dateSep 8, 2020

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 shared cache line is concurrently modified by multiple processors of a computing environment. The concurrent modification is performed based, at least, on receiving one or more architected instructions (Fetch due to Non-Coherent Store instructions) that permit multiple processors to concurrently update the shared cache line absent obtaining a lock or having exclusive ownership of the data.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer program product for facilitating processing within a computing environment, the computer program product comprising: at least one computer readable storage medium readable by at least one processing circuit and storing instructions for performing a method comprising: obtaining, from a plurality of processors of the computing environment, a plurality of store requests to store to a shared cache line, the plurality of store requests being of a concurrent store type in which non-exclusive access to the shared cache line for storing data by the plurality of processors is being requested; and storing concurrently, based on the plurality of store requests, data to the shared cache line, wherein the plurality of processors concurrently maintain write access to the shared cache line, and wherein the storing concurrently comprises storing the data directly to the shared cache line absent storing the data in one or more private caches of the plurality of processors and absent inspection by the plurality of processors of content within the shared cache line being updated by the data. 2. The computer program product of claim 1 , wherein the method further comprises setting a cache directory state associated with the shared cache line to shared-modifiable indicating multiple store requests by multiple processors are permissible. 3. The computer program product of claim 1 , wherein the data comprises an update to a global shared-modifiable structure maintained in the shared cache line. 4. The computer program product of claim 1 , wherein the storing concurrently the data is performed absent sending a cross-invalidate to the plurality of processors. 5. The computer program product of claim 1 , wherein the method further comprises: obtaining a fetch request requesting access to the shared cache line, the fetch request being different from the concurrent store type; performing serialization for the shared cache line based on the fetch request; and reading the data from the shared cache line, based on completing the serialization. 6. The computer program product of claim 5 , wherein the performing serialization comprises: stopping outstanding stores to the shared cache line; and synchronizing data of the shared cache line. 7. The computer program product of claim 5 , wherein the method further comprises changing ownership state of the shared cache line, based on the fetch request, from shared-modifiable to another state. 8. The computer program product of claim 7 , wherein the other state is exclusive or read-only, based on the fetch request. 9. The computer program product of claim 1 , wherein the obtaining the plurality of store requests comprises receiving a plurality of fetch due to non-coherent store requests from the plurality of processors, the plurality of fetch due to non-coherent store requests being architecturally defined to allow non-blocking modifications to the shared cache line. 10. The computer program product of claim 1 , wherein the storing concurrently the data to the shared cache line comprises updating a shared counter of the shared cache line without knowing a value of the shared counter at a time of the storing. 11. A computer system for facilitating processing within a computing environment, the computer system comprising: a memory; and at least one processor in communication with the memory, wherein the computer system is configured to perform a method, said method comprising: obtaining, from a plurality of processors of the computing environment, a plurality of store requests to store to a shared cache line, the plurality of store requests being of a concurrent store type in which non-exclusive access to the shared cache line for storing data by the plurality of processors is being requested; and storing concurrently, based on the plurality of store requests, data to the shared cache line, wherein the plurality of processors concurrently maintain write access to the shared cache line, and wherein the storing concurrently comprises storing the data directly to the shared cache line absent storing the data in one or more private caches of the plurality of processors and absent inspection by the plurality of processors of content within the shared cache line being updated by the data. 12. The computer system of claim 11 , wherein the method further comprises setting a cache directory state associated with the shared cache line to shared-modifiable indicating multiple store requests by multiple processors are permissible. 13. The computer system of claim 11 , wherein the method further comprises: obtaining a fetch request requesting access to the shared cache line, the fetch request being different from the concurrent store type; performing serialization for the shared cache line based on the fetch request; and reading the data from the shared cache line, based on completing the serialization. 14. The computer system of claim 11 , wherein the obtaining the plurality of store requests comprises receiving a plurality of fetch due to non-coherent store requests from the plurality of processors, the plurality of fetch due to non-coherent store requests being architecturally defined to allow non-blocking modifications to the shared cache line. 15. The computer system of claim 11 , wherein the storing concurrently the data to the shared cache line comprises updating a shared counter of the shared cache line without knowing a value of the shared counter at a time of the storing. 16. A computer-implemented method of facilitating processing within a computing environment, the computer-implemented method comprising: obtaining, from a plurality of processors of the computing environment, a plurality of store requests to store to a shared cache line, the plurality of store requests being of a concurrent store type in which non-exclusive access to the shared cache line for storing data by the plurality of processors is being requested; and storing concurrently, based on the plurality of store requests, data to the shared cache line, wherein the plurality of processors concurrently maintain write access to the shared cache line, and wherein the storing concurrently comprises storing the data directly to the shared cache line absent storing the data in one or more private caches of the plurality of processors and absent inspection by the plurality of processors of content within the shared cache line being updated by the data. 17. The computer-implemented method of claim 16 , further comprising setting a cache directory state associated with the shared cache line to shared-modifiable indicating multiple store requests by multiple processors are permissible. 18. The computer-implemented method of claim 16 , further comprising: obtaining a fetch request requesting access to the shared cache line, the fetch request being different from the concurrent store type; performing serialization for the shared cache line based on the fetch request; and reading the data from the shared cache line, based on completing the serialization. 19. The computer-implemented method of claim 16 , wherein the obtaining the plurality of store requests comprises receiving a plurality of fetch due to non-coherent store requests from the plurality of processors, the plurality of fetch due to non-coherent store requests being architecturally defined to allow non-blocking modifications to the shared cache line. 20. The computer-implemented method of claim 16 , wherein the storing concurrently the data to

Assignees

Inventors

Classifications

  • using directory methods · CPC title

  • Latency reduction · CPC title

  • G06F12/084Primary

    with a shared cache · CPC title

  • with concurrent directory accessing, i.e. handling multiple concurrent coherency transactions · 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 US10769068B2 cover?
A shared cache line is concurrently modified by multiple processors of a computing environment. The concurrent modification is performed based, at least, on receiving one or more architected instructions (Fetch due to Non-Coherent Store instructions) that permit multiple processors to concurrently update the shared cache line absent obtaining a lock or having exclusive ownership of the data.
Who is the assignee on this patent?
IBM
What technology area does this patent fall under?
Primary CPC classification G06F12/0817. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Sep 08 2020 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 3 related publications on this page (citations in our corpus or others sharing the same primary CPC).