Optimizing quiescence in a software transactional memory (stm) system
AssigneeIntel Corporation
InventorsTatiana Shpeisman, Ali-Reza Adl-Tabatabai, Vijay Menon
Life of this patent
Estimating the term…
Abstract
A method and apparatus for optimizing quiescence in a transactional memory system is herein described. Non-ordering transactions, such as read-only transactions, transactions that do not access non-transactional data, and write-buffering hardware transactions, are identified. Quiescence in weak atomicity software transactional memory (STM) systems is optimized through selective application of quiescence. As a result, transactions may be decoupled from dependency on quiescing/waiting on previous non-ordering transaction to increase parallelization and reduce inefficiency based on serialization of transactions.
Claims31
An article of manufacture including program code which, when executed by a machine, causes the machine to perform the operations of:
- determining a first transaction includes an ordering transaction;
- determining a second transaction includes a non-ordering transaction;
- and
- eliding quiescence of a third transaction upon the second transaction in response to determining the second transaction includes a non-ordering transaction.
An article of manufacture including program code which, when executed by a machine, causes the machine to perform the operations of:
- committing a current transaction without quiescence based on a previous transaction in response to the previous transaction including a non-ordering transaction;
- and
- committing the current transaction after quiescence based on the previous transaction in response to the previous transaction including an ordering transaction.
An article of manufacture including program code which, when executed by a machine, causes the machine to perform the operations of:
- determining if a first transaction is a non-ordering transaction;
- eliding addition of the first transaction to a global data structure in response to determining the first transaction is a non-ordering transaction;
- in response to determining the first transaction is not a non-ordering transaction,
- adding the first transaction to the global data structure, and
- removing the first transaction from the global structure in response to a removal event associated with the first transaction;
- and
- committing a second transaction without quiescence based on the first transaction in response to not adding the first transaction to the global data structure.
A method comprising:
- determining a first transaction is an ordering transaction;
- determining a second transaction is a non-ordering transaction;
- quiescing a third transaction until a quiescent removal event associated with the first transaction is detected in response to determining the first transaction is an ordering transaction;
- and
- committing the third transaction without quiescing the third transaction based on the second transaction in response to determining the second transaction is non-ordering.
Dependencies are inferred from the claim text.