Achieving both locking fairness and locking performance with spin locks
First Claim
1. A method for implementing a spin lock in a system comprising a plurality of processing nodes, each node comprising at least one processor and a cache memory, the method comprising steps of:
- obtaining exclusivity to the cache memory;
determining whether the spin lock is available;
acquiring the spin lock upon determining that the spin lock is available;
releasing the spin lock once processing is complete; and
instructing cache coherent hardware in the system to mark the cache memory as non-exclusive in order to explicitly yield the exclusivity to the cache memory;
wherein the instructing step is automatically executed after the releasing step.
1 Assignment
0 Petitions
Accused Products
Abstract
A method for implementing a spin lock in a system including a plurality of processing nodes, each node including at least one processor and a cache memory, the method including steps of: acquiring exclusivity to the cache memory; checking the availability of the spin lock; setting the spin lock to logical one if the spin lock is available; setting the spin lock to logical zero once processing is complete; and explicitly yielding the cache memory exclusivity. Yielding the cache memory exclusivity includes instructing the cache coherent hardware to mark the cache memory as non-exclusive. The cache memory is typically called level two cache.
14 Citations
16 Claims
-
1. A method for implementing a spin lock in a system comprising a plurality of processing nodes, each node comprising at least one processor and a cache memory, the method comprising steps of:
-
obtaining exclusivity to the cache memory; determining whether the spin lock is available; acquiring the spin lock upon determining that the spin lock is available; releasing the spin lock once processing is complete; and instructing cache coherent hardware in the system to mark the cache memory as non-exclusive in order to explicitly yield the exclusivity to the cache memory; wherein the instructing step is automatically executed after the releasing step. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. An information processing system comprising:
a distributed shared memory multi-processor architecture comprising; a main memory comprising a spin lock; a plurality of nodes operatively coupled with the main memory, each node comprising; a plurality of processors; and cache memory; cache coherent hardware shared by the plurality of nodes; instructions for explicitly yielding exclusivity to the spin lock, wherein the instructions comprise a directive to whichever one of the plurality of processors is holding the spin lock to instruct the cache coherent hardware to mark the cache memory as non-exclusive once the spin lock is released; and wherein the plurality of processors execute instructions to; obtain exclusivity to the cache memory; determine availability of the spin lock; acquire the spin lock upon determining that it is available; release the spin lock once processing completes; and explicitly yield the exclusivity to the cache memory. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
Specification