Read sharing using global conflict indication and semi-transparent reading in a transactional memory space
First Claim
1. A system, comprising:
- one or more processors; and
a memory coupled to the one or more processors and comprising program instructions configured to;
execute a plurality of transactions operating in a transactional memory space within the memory, wherein the transactional memory space comprises a plurality of locations each associated with one of a plurality of ownership records;
wherein the memory further comprises;
a global conflict indication comprising a single value indicating whether a read-write conflict has occurred that affects any of the plurality of locations in the transactional memory space, wherein the global conflict indication is accessible by all of the plurality of transactions operating in the transactional memory space;
means for semi-transparently reading the transactional memory space, wherein to support semi-transparently reading, the memory is configured to indicate in an ownership record associated with one or more locations in the transactional memory that one or more of the plurality of transactions are reading the one or more locations in the transactional memory space without specifically identifying the one or more transactions; and
means for validating transactional reads of the transactional memory space, wherein to validate one or more transactional reads of a given transaction, the means for validating is configured to;
determine whether the value of the global conflict indication indicates that a read-write conflict has occurred in the transactional memory space;
attempt to validate the one or more transactional reads in response to determining that the value of the global conflict indication indicates that a read-write conflict has occurred in the transactional memory; and
allow execution of the given transaction to continue without attempting to validate the one or more transactional reads in response to determining that the value of the global conflict indication indicates that a read-write conflict has not occurred in the transactional memory.
2 Assignments
0 Petitions
Accused Products
Abstract
It has been discovered that globally indicating read-write conflicts and semi-transparent read sharing in a transactional memory space allows for a more expedient validation. Without being aware of particular transactions, a writing transaction can determine that a read-write conflict will occur with some transaction that has read one or more memory locations to be modified by the writing transaction. With semi-transparent reading, reading transactions can validate quickly. If a read-write conflict has not occurred since a reading transaction began (or since the last validation), then the previous reads are valid. Otherwise, the reading transaction investigates each memory location or ownership record to determine if a read-write conflict affected the investigating transaction.
64 Citations
51 Claims
-
1. A system, comprising:
-
one or more processors; and a memory coupled to the one or more processors and comprising program instructions configured to; execute a plurality of transactions operating in a transactional memory space within the memory, wherein the transactional memory space comprises a plurality of locations each associated with one of a plurality of ownership records; wherein the memory further comprises; a global conflict indication comprising a single value indicating whether a read-write conflict has occurred that affects any of the plurality of locations in the transactional memory space, wherein the global conflict indication is accessible by all of the plurality of transactions operating in the transactional memory space; means for semi-transparently reading the transactional memory space, wherein to support semi-transparently reading, the memory is configured to indicate in an ownership record associated with one or more locations in the transactional memory that one or more of the plurality of transactions are reading the one or more locations in the transactional memory space without specifically identifying the one or more transactions; and means for validating transactional reads of the transactional memory space, wherein to validate one or more transactional reads of a given transaction, the means for validating is configured to; determine whether the value of the global conflict indication indicates that a read-write conflict has occurred in the transactional memory space; attempt to validate the one or more transactional reads in response to determining that the value of the global conflict indication indicates that a read-write conflict has occurred in the transactional memory; and allow execution of the given transaction to continue without attempting to validate the one or more transactional reads in response to determining that the value of the global conflict indication indicates that a read-write conflict has not occurred in the transactional memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A method, comprising:
-
indicating whether a read-write conflict occurred in a transactional memory space comprising a plurality of locations each associated with one of a plurality of ownership records by maintaining a global conflict indication accessible by all of a plurality of transactions operating in the transactional memory space, wherein the global conflict indication comprises a single value indicating whether a read-write conflict has occurred that affects any of the plurality of locations in the transactional memory space; and validating transactional reads in accordance with the global conflict indication, wherein said validating comprises; for a given validation operation; one of the plurality of transactions reading the global conflict indication to determine whether a read-write conflict occurred; in response to determining that a read-write conflict has occurred, the transaction determining whether the read-write conflict affected any locations read by the transaction; and in response to determining that the read-write conflict did not affect any locations read by the transaction, allowing the transaction to continue execution. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21)
-
-
22. A method, comprising:
-
a first transaction reading a global conflict indication to determine whether a read-write conflict has occurred in a transactional memory space, wherein the transactional memory space comprises a plurality of locations each associated with one of a plurality of ownership records, and wherein the global conflict indication comprises a single value indicating whether a read-write conflict has occurred that affects any of the plurality of locations in the transactional memory space; in response to determining that a read-write conflict has occurred, determining whether the read-write conflict corresponds to any locations read by the first transaction; and in response to determining that the read-write conflict did not correspond to any locations read by the first transaction, the first transaction continuing execution; wherein the global conflict indication is accessible by all of a plurality of transactions executing in the transactional memory space. - View Dependent Claims (23, 24, 25, 26, 27, 28, 29, 30)
-
-
31. An apparatus, comprising:
-
means for implementing a transactional memory comprising a plurality of storage locations each associated with one of a plurality of ownership records; means for semi-transparently reading the transactional memory, wherein semi-transparently reading allows writing transactions to be aware of reading transactions by providing an indication in an ownership record associated with one or more locations in the transactional memory that one or more transactions are reading the one or more locations in the transactional memory; means for determining a read-write conflict between a writing transaction and one or more reading transactions of which the writing transaction is aware; and means for updating a global conflict indication in response to said determining; wherein the global conflict indication is accessible by all of a plurality of transactions executing in the transactional memory, and wherein the global conflict indication comprises a single value indicating whether a read-write conflict has occurred that affects any of the plurality of locations in the transactional memory. - View Dependent Claims (32, 33, 34)
-
-
35. A computer-readable storage medium comprising:
- a first sequence of program instructions executable to implement;
writing at least one location in a set of one or more locations in a transactional memory space comprising a plurality of locations each associated with one of a plurality of ownership records; accessing one of the plurality of ownership records to determine whether any other transactions have read the set of one or more locations, wherein the ownership record is associated with the set of locations; and in response to said determining, indicating to all of a plurality of transactions operating in a transactional memory space whether a read-write conflict will occur that corresponds to the set of locations, wherein said indicating comprises updating a global conflict indication that is accessible by all of the plurality of transactions and that comprises a single value indicating whether a read-write conflict has occurred that affects any of the plurality of locations in the transactional memory. - View Dependent Claims (36, 37, 38, 39, 40, 41, 42, 43)
- a first sequence of program instructions executable to implement;
-
44. A computer-readable storage medium comprising:
-
a first sequence of program instructions executable to implement semi-transparently reading a set of one or more locations in a transactional memory space comprising a plurality of locations each associated with one of a plurality of ownership records, wherein semi-transparently reading comprises indicating in an ownership record associated with the set of one or more locations that one or more transactions are reading the set of one or more locations without specifically identifying the transactions; a second sequence of program instructions executable to implement validating a transactional read, wherein said validating comprises; determining whether a value of a global conflict indication indicates that a read-write conflict has occurred in the transactional memory space, wherein the global conflict indication comprises a single value indicating whether a read-write conflict has occurred that affects any of the plurality of locations in the transactional memory space, and wherein the global conflict indication is accessible by all of a plurality of transactions operating in the transactional memory space; and in response to determining that the value of the global conflict indication indicates that a read-write conflict has occurred that affects one or more of the plurality of locations in the transactional memory space, attempting to validate the transactional read. - View Dependent Claims (45, 46, 47, 48, 49, 50, 51)
-
Specification