Methods and apparatus to implement parallel transactions
First Claim
1. A method comprising:
- for each of multiple processing threads that execute in parallel and that have access to a common set of shared data to produce corresponding transaction outcomes;
i) utilizing a hardware transactional memory implementation to track a status associated with a set of specific shared data utilized by a respective processing thread to produce a respective transaction outcome; and
ii) utilizing a software transactional memory implementation associated with the respective processing thread to maintain a respective set of local modifications to the set of specific shared data.
2 Assignments
0 Petitions
Accused Products
Abstract
Cache logic associated with a respective one of multiple processing threads executing in parallel updates corresponding data fields of a cache to uniquely mark its contents. The marked contents represent a respective read set for a transaction. For example, at an outset of executing a transaction, a respective processing thread chooses a data value to mark contents of the cache used for producing a transaction outcome for the processing thread. Upon each read of shared data from main memory, the cache stores a copy of the data and marks it as being used during execution of the processing thread. If uniquely marked contents of a respective cache line happen to be displaced (e.g., overwritten) during execution of a processing thread, then the transaction is aborted (rather than being committed to main memory) because there is a possibility that another transaction overwrote a shared data value used during the respective transaction.
-
Citations
20 Claims
-
1. A method comprising:
for each of multiple processing threads that execute in parallel and that have access to a common set of shared data to produce corresponding transaction outcomes; i) utilizing a hardware transactional memory implementation to track a status associated with a set of specific shared data utilized by a respective processing thread to produce a respective transaction outcome; and ii) utilizing a software transactional memory implementation associated with the respective processing thread to maintain a respective set of local modifications to the set of specific shared data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
13. A computer system including:
-
multiple processing threads executing in parallel; memory to store shared data that is accessible to each of the multiple processing threads; for each of the multiple processing threads; i) a respective cache and corresponding hardware logic for storing and marking accessed shared data values from memory, the accessed shared data values used by a respective processing thread to produce a respective transaction outcome; and ii) a buffer to store a write-set maintained by the respective processing thread to temporarily store values in a local buffer prior to committing the values to the shared data. - View Dependent Claims (14, 15, 16)
-
-
17. A computer readable medium storing:
-
instructions for a respective processing thread of multiple processing threads executing in parallel to rely on use of a hardware transactional memory implementation to track a status associated with a set of specific shared data utilized by a respective processing thread to produce a respective transaction outcome; and instructions to implement a transactional memory technique associated with the respective processing thread to maintain a respective set of local modifications to the set of specific shared data. - View Dependent Claims (18, 19, 20)
-
Specification