Memory-to-memory copy and compare/exchange instructions to support non-blocking synchronization schemes
First Claim
1. A method of implementing an atomic memory-to-memory copy of data, comprising:
- atomically reading data to a thread from a source location, and atomically writing the data from a thread to a target location, wherein cache coherent operations may occur between the reading and the writing.
1 Assignment
0 Petitions
Accused Products
Abstract
A coherency technique for multiprocessor systems in which threads perform atomic read or atomic write transactions pursuant to memory-to-memory copy instructions or memory-to-memory compare-and-exchange instructions. Although the source reads and target writes are each atomic, the instruction is not required to be atomic from the read through the write operation. Accordingly, once a first thread reads source data pursuant to a read, for example, it may allow other threads to access that data prior to completing its own target write. The data may include a version stamp. After the first thread operates on the data, software may read in the version stamp a second time. If the two version stamps agree, the results of the thread'"'"'s operation may be considered valid for lookup operations. For a compare and exchange operation, a thread may read data from a source location. Subsequently, the thread may read atomically a current copy of a version stamp from a target address, compare it to a version of the same version stamp obtained earlier, and, if the two version stamps agree, write the source data to the target address.
-
Citations
22 Claims
-
1. A method of implementing an atomic memory-to-memory copy of data, comprising:
-
atomically reading data to a thread from a source location, and atomically writing the data from a thread to a target location, wherein cache coherent operations may occur between the reading and the writing. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method of implementing an atomic memory-to-memory copy of data, comprising:
-
atomically reading data from a source location to a thread, and atomically;
acquiring exclusive ownership of a target location, and writing the data to the target location, wherein the atomic reading operation and the atomic acquisition-and-writing operation may be interrupted by cache coherent operations. - View Dependent Claims (8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
-
13. A method of implementing an atomic memory-to-memory compare and exchange operation, comprising:
atomically data from a source location to a thread; and
atomically;
reading a first version stamp from a target location, comparing the first version stamp with a second version stamp stored by the thread, and if the first and the second version stamps agree, writing the M bytes of source data to the target location.
Specification