Method for executing atomic memory operations when contested
AssigneeSiFive, Inc.
InventorsJohn Ingalls, Wesley Waylon Terpstra, Henry Cook, Leigang Kou
Life of this patent
Estimating the term…
Abstract
Described are methods and a system for atomic memory operations with contended cache lines. A processing system includes at least two cores, each core having a local cache, and a lower level cache in communication with each local cache. One local cache configured to request a cache line to execute an atomic memory operation (AMO) instruction, receive the cache line via the lower level cache, receive a probe downgrade due to other local cache requesting the cache line prior to execution of the AMO, and send the AMO instruction to the lower level cache for remote execution in response to the probe downgrade.
Claims20
A processing system comprising:
- at least two cores, each core having a local cache;
- a lower level cache in communication with each local cache;
- one local cache configured to:
- request a cache line to execute an atomic memory operation (AMO) instruction;
- receive the cache line via the lower level cache;
- receive a probe downgrade due to other local cache requesting the cache line prior to execution of the AMO;
- and
- send the AMO instruction to the lower level cache for remote execution in response to the probe downgrade.
A processing system comprising:
- a core with a local cache;
- a shared cache in communication with the local cache of the core and at least another cache of at least another core;
- the local cache configured to:
- request a cache line to execute an atomic memory operation (AMO) instruction;
- receive a message from the shared cache that the cache line is unavailable;
- and
- send the AMO instruction to the shared cache for remote execution in response to the message.
A method for executing atomic memory operation (AMO) instructions, the method comprising:
- requesting, by a local cache, a cache line for an AMO instruction from a lower level memory structure;
- determining, by the lower level memory structure, availability of a requested cache line;
- receiving, by the local cache from the lower level memory structure, the cache line from the lower level memory structure when available;
- receiving a downgrade probe due to another cache request for the cache line prior to AMO instruction execution;
- sending, by the local cache to the lower level memory structure, the AMO instruction for remote execution in response to the probe downgrade;
- receiving, by the local cache from the lower level memory structure, a contended cache line message from the lower level memory structure when not available;
- and
- sending by the local cache to the lower level memory structure, the AMO instruction to the lower level memory structure for remote execution in response to the contended cache line message.
Dependencies are inferred from the claim text.