Architecture support of best-effort atomic transactions for multiprocessor systems
First Claim
1. A system for executing transactions, comprising at least one processor for executing at least one transaction, the at least one processor comprising a first processor for executing a first transaction of the at least one transaction, each of the at least one transaction comprising at least one memory access operation;
- a shared memory that can be accessed by the at least one processor; and
a first cache operatively associated with the first processor, wherein the first cache serves as a buffer between the first processor and the shared memory, such that the first cache maintains data accessed by the first transaction throughout the execution of the first transaction;
wherein the first cache comprises a first cache line, the first cache line comprising a first flag and a first color;
wherein, if the first cache line is currently accessed by the first transaction, the first cache sets the first flag to indicate that the first cache line is currently accessed by some transaction;
wherein, if the first cache line is currently accessed by the first transaction, the first cache sets the first color to indicate the first transaction.
1 Assignment
0 Petitions
Accused Products
Abstract
An atomic transaction includes one or more memory access operations that are completed atomically. A Best-Effort Transaction (BET) system makes its best effort to complete each atomic transaction without guaranteeing completion of all atomic transactions. When an atomic transaction is aborted, BET may provide software with appropriate runtime information such as cause of the abortion. With proper coherence layer enhancements, BET can be implemented efficiently for multiprocessor systems, using caches as buffers for data accessed by atomic transactions. Furthermore, with appropriate fairness support, forward progress can be guaranteed for atomic transactions that incur no buffer overflow.
-
Citations
20 Claims
-
1. A system for executing transactions, comprising
at least one processor for executing at least one transaction, the at least one processor comprising a first processor for executing a first transaction of the at least one transaction, each of the at least one transaction comprising at least one memory access operation; -
a shared memory that can be accessed by the at least one processor; and
a first cache operatively associated with the first processor, wherein the first cache serves as a buffer between the first processor and the shared memory, such that the first cache maintains data accessed by the first transaction throughout the execution of the first transaction;
wherein the first cache comprises a first cache line, the first cache line comprising a first flag and a first color;
wherein, if the first cache line is currently accessed by the first transaction, the first cache sets the first flag to indicate that the first cache line is currently accessed by some transaction;
wherein, if the first cache line is currently accessed by the first transaction, the first cache sets the first color to indicate the first transaction. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method of executing a transaction on a system, the transaction comprising at least one memory access operation, the method comprising the steps of:
-
receiving the transaction from software, the software being executed on the system;
executing the transaction on the system, wherein the step of executing the transaction comprises one of;
(1) completing the transaction;
or(2) aborting the transaction, wherein the step of aborting the transaction comprises one of;
(2.1) terminating the transaction, if re-execution of the transaction is certain to cause another abortion;
or(2.2) making best-effort to execute the transaction, if re-execution of the transaction is uncertain to cause another abortion, wherein the step of making best-effort to execute the transaction comprises one of;
(2.2.1) re-executing the transaction, if the system decides to re-execute the transaction;
or(2.2.2) terminating the transaction, if the system decides not to re-execute the transaction. - View Dependent Claims (14, 15, 16, 17, 18, 19)
-
-
20. A system for executing transactions, comprising:
-
a first instruction, the first instruction enabling software to abort a transaction in a program, the transaction comprising at least one memory access operation;
wherein, if the system executes the first instruction throughout the execution of the transaction, the system aborts the execution of the transaction, causing semantic effect of the at least one memory access operation to be cancelled, the semantic effect comprising memory modification performed by the at least one memory access operation.
-
Specification