MECHANISM TO SUPPORT FLEXIBLE DECOUPLED TRANSACTIONAL MEMORY
First Claim
1. A method of decoupling the detection of conflicting concurrent accesses to memory from the action taken in response to the detected conflicts, in a shared-memory multiprocessor, the method comprising:
- providing a plurality of processor cores that indicate when certain reads and writes are speculative, wherein reads and writes of each processor core in the plurality of processors cores are monitored for conflicts with the reads and writes of other processor cores in the plurality of processor cores and can be rolled back;
permitting the local caches of the plurality of processor cores to retain copies of speculatively read or written lines despite conflicting reads or writes to those lines by the other process cores in the plurality of processor cores;
andmaintaining for each processor core in the plurality of processor cores a concise, software-visible indication of the other processor cores in plurality whose speculative reads or writes conflict with the speculative reads or writes of a processor core for which the indication is being maintained.
1 Assignment
0 Petitions
Accused Products
Abstract
The present invention employs three decoupled hardware mechanisms: read and write signatures, which summarize per-thread access sets; per-thread conflict summary tables, which identify the threads with which conflicts have occurred; and a lazy versioning mechanism, which maintains the speculative updates in the local cache and employs a thread-private buffer (in virtual memory) only in the rare event of an overflow. The conflict summary tables allow lazy conflict management to occur locally, with no global arbitration (they also support eager management). All three mechanisms are kept software-accessible, to enable virtualization and to support transactions of arbitrary length.
-
Citations
12 Claims
-
1. A method of decoupling the detection of conflicting concurrent accesses to memory from the action taken in response to the detected conflicts, in a shared-memory multiprocessor, the method comprising:
-
providing a plurality of processor cores that indicate when certain reads and writes are speculative, wherein reads and writes of each processor core in the plurality of processors cores are monitored for conflicts with the reads and writes of other processor cores in the plurality of processor cores and can be rolled back; permitting the local caches of the plurality of processor cores to retain copies of speculatively read or written lines despite conflicting reads or writes to those lines by the other process cores in the plurality of processor cores; and maintaining for each processor core in the plurality of processor cores a concise, software-visible indication of the other processor cores in plurality whose speculative reads or writes conflict with the speculative reads or writes of a processor core for which the indication is being maintained. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A system for decoupling the detection of conflicting concurrent accesses to memory from the action taken in response to the detected conflicts, in a shared-memory multiprocessor, the system comprising:
-
a plurality of processor cores that indicate when certain reads and writes are speculative, wherein reads and writes of each processor core in the plurality of processors cores are monitored for conflicts with the reads and writes of other processor cores in the plurality of processor cores and can be rolled back; and local caches of the plurality of processor cores retaining copies of speculatively read or written lines despite conflicting reads or writes to those lines by the other process cores in the plurality of processor cores; wherein for each processor core in the plurality of processor cores there is maintained a concise, software-visible indication of the other processor cores in plurality whose speculative reads or writes conflict with the speculative reads or writes of a processor core for which the indication is being maintained. - View Dependent Claims (8, 9, 10, 11, 12)
-
Specification