Lock caching for compound atomic operations on shared memory
First Claim
1. In a computer system including a memory shared among a plurality of processing entities, a method of performing compound atomic operations by said processing entities comprising:
- providing a pool of locks for synchronizing access to the memory;
sharing the locks among the plurality of processing entities to minimize lock contention, wherein a lock is selected from the pool to minimize concurrent atomic updates to same or overlapping portions of the shared memory by aliasing memory addresses in accordance with a known upper bound on an amount of the shared memory that is capable of being effected by an atomic operation; and
performing the compound atomic operations using assigned locks.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and method for lock caching for compound atomic operations (i.e. a read or write operation to more than one 4-byte word) on shared memory is provided. In a computer system including a memory shared among a plurality of processing entities, for example, multiple threads, a method of performing compound atomic operations comprises providing a pool of locks for synchronizing access to the memory; assigning the locks among the plurality of entities to minimize lock contention; and performing the compound atomic operations using the assigned locks. Each lock may be assigned in accordance with an address of the shared memory from the processing entity'"'"'s compound atomic operations. Assigning locks may be performed in a manner to minimize concurrent atomic updates to the same or overlapping portions of the shared memory. For example, the addresses of the memory from the compound atomic operations may be aliased in accordance with a known upper bound on the amount of the shared memory that may be affected by any atomic operation.
32 Citations
24 Claims
-
1. In a computer system including a memory shared among a plurality of processing entities, a method of performing compound atomic operations by said processing entities comprising:
-
providing a pool of locks for synchronizing access to the memory; sharing the locks among the plurality of processing entities to minimize lock contention, wherein a lock is selected from the pool to minimize concurrent atomic updates to same or overlapping portions of the shared memory by aliasing memory addresses in accordance with a known upper bound on an amount of the shared memory that is capable of being effected by an atomic operation; and performing the compound atomic operations using assigned locks. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. In a computer system including a memory shared among a plurality of processing entities, a lock sharing system for performing compound atomic operations by said processing entities comprising:
-
a pool of locks for synchronizing access to the memory; and a mechanism for sharing the locks among the plurality of processing entities to minimize lock contention, said processing entities adapted to perform the compound atomic operations using assigned locks, the mechanism adapted to select a lock from the pool to minimize concurrent atomic updates to same or overlapping portions of the shared memory by aliasing memory addresses in accordance with a known upper bound on an amount of the shared memory that is capable of being effected by an atomic operation. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A computer program product having a computer readable medium tangibly embodying computer executable code for generating instructions for a computer system including a memory to be shared among a plurality of processing entities, said computer program product comprising:
-
code to define a pool of locks for synchronizing access to the memory; code to define a mechanism for sharing the locks among the plurality of processing entities to minimize lock contention, wherein a lock is selected from the pool to minimize concurrent atomic updates to same or overlapping portions of the shared memory by aliasing memory addresses in accordance with a known upper bound on an amount of the shared memory that is capable of being effected by an atomic operation; and code to define the plurality of processing entities, said processing entities adapted to perform compound atomic operations using the mechanism. - View Dependent Claims (18, 19, 20)
-
-
21. A computer program product having a computer readable medium tangibly embodying computer executable code for performing compound atomic operations in a computer system including a memory to be shared among a plurality of processing entities, said computer program product comprising:
-
code defining a pool of locks for synchronizing access to the memory; code defining a mechanism for sharing the locks among the plurality of processing entities to minimize lock contention, wherein a lock is selected from the pool to minimize concurrent atomic updates to same or overlapping portions of the shared memory by aliasing memory addresses in accordance with a known upper bound on an amount of the shared memory that is capable of being effected by an atomic operation; and code defining the plurality of processing entities, said processing entities adapted to perform compound atomic operations using the mechanism. - View Dependent Claims (22, 23, 24)
-
Specification