Computer architecture providing transactional, lock-free execution of lock-based programs
First Claim
Patent Images
1. A processor unit for a shared-memory computer comprising:
- a processor;
a local memory system executing a protocol to share data with at least one other processor unit;
a conflicts resolution circuit executing a hardware program to;
(i) detect a critical section in an executing program and begin speculative execution of the critical section without acquisition of a lock;
(ii) in the event of a conflict with another processor unit executing the critical section and needing to write to data within the critical section, establishing a priority between the processor units to resolve the conflict without acquisition of the lock.
1 Assignment
0 Petitions
Accused Products
Abstract
Hardware resolution of data conflicts in critical sections of programs executed in shared memory computer architectures are resolved using a hardware-based ordering system and without acquisition of the lock variable.
48 Citations
23 Claims
-
1. A processor unit for a shared-memory computer comprising:
-
a processor;
a local memory system executing a protocol to share data with at least one other processor unit;
a conflicts resolution circuit executing a hardware program to;
(i) detect a critical section in an executing program and begin speculative execution of the critical section without acquisition of a lock;
(ii) in the event of a conflict with another processor unit executing the critical section and needing to write to data within the critical section, establishing a priority between the processor units to resolve the conflict without acquisition of the lock. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A processor unit system comprising:
-
a plurality of processor units having;
a processor;
a local memory system executing a protocol to share data with at least one other processor unit;
a globally unique clock;
a conflicts resolution circuit executing a hardware program to;
(i) time stamp requests for data sent by the given processor unit to other processor units with a value of the globally unique clock;
(ii) release owned data requested by a second processor unit making a request with an earlier time stamp than a time stamp of a request to acquire ownership of the data by the processor unit;
(iii) defer release of owned data requested by a second processor unit making a request having a later time stamp than the time stamp of the request to acquire ownership of the data by the processor unit.
-
-
22. A method of operating a set of processor units for a shared-memory computer comprising the steps of:
-
(a) generating on each processor unit a globally unique clock;
(b) time stamping all requests for data sent by the given processor unit to other processor units with a value of the globally unique clock;
(c) releasing owned data requested by a second processor unit making a request with an earlier time stamp than a time stamp of a request to acquire ownership of the data by the processor unit; and
(d) deferring release of owned data requested by a second processor unit making a request having a later time stamp than the time stamp of the request to acquire ownership of the data by the processor unit.
-
-
23. A processor unit for a shared-memory computer comprising:
-
a processor;
a local memory system executing a protocol to share data with at least one other processor unit;
a conflicts resolution circuit executing a hardware program to resolve conflicts between different processor units;
a lock elision circuit executing a hardware program to;
(i) detect the start of execution by the processor of a critical section of a program subject to a lock;
(ii) speculatively execute the critical section without acquiring the lock;
(iii) when a conflict for data of the critical section is detected, refer the conflict to the conflict resolution circuit, where the conflict is indicated by a request by another processor unit for data in the critical section owned by the processor unit; and
(iv) when no conflict for data of the critical section is detected, commit the execution of the critical section.
-
Specification