Read and write sets for ranges of instructions of transactions
First Claim
Patent Images
1. A computer-implemented method of facilitating processing in a computing environment, said computer-implemented method comprising:
- allocating a plurality of ranges of read and write sets assigned to instructions of a particular transaction, wherein a range of read and write sets for the particular transaction corresponds to one or more instructions of the particular transaction and includes multiple read and write sets for the one or more instructions, the multiple read and write sets of the range of read and write sets corresponding to multiple cache lines of a cache of the computing environment and used to track transactional memory accesses based on actual program flow, the transactional memory accesses including read accesses and write accesses of the particular transaction including non-speculative read accesses and write accesses;
determining that there is a mispredicted branch within the particular transaction; and
deallocating a subset of ranges of read and write sets of the plurality of ranges of read and write sets assigned to instructions of the particular transaction, based on determining the mispredicted branch, wherein at least one range of read and write sets assigned to one or more instructions of the particular transaction remains allocated,wherein a cache line of the multiple cache lines comprises a plurality of pairs of read and write sets across multiple ranges of instructions of the particular transaction, and each pair of read and write sets of the plurality of pairs of read and write sets for the cache line is for a different range of instructions of the particular transaction, and wherein each different range of instructions includes instructions between a transaction begin instruction to begin the particular transaction and a branch instruction of the particular transaction or between one branch instruction of the particular transaction and another branch instruction of the particular transaction.
1 Assignment
0 Petitions
Accused Products
Abstract
Transactional memory accesses are tracked using read and write sets based on actual program flow. A read and write set is associated with a range of instructions of a transaction. When execution follows a predicted branch, loads and stores are marked as being of selected read and write sets. Then, when a misprediction is processed, and execution is rewound, speculatively added read and write set indications are removed from the read and write sets.
59 Citations
11 Claims
-
1. A computer-implemented method of facilitating processing in a computing environment, said computer-implemented method comprising:
-
allocating a plurality of ranges of read and write sets assigned to instructions of a particular transaction, wherein a range of read and write sets for the particular transaction corresponds to one or more instructions of the particular transaction and includes multiple read and write sets for the one or more instructions, the multiple read and write sets of the range of read and write sets corresponding to multiple cache lines of a cache of the computing environment and used to track transactional memory accesses based on actual program flow, the transactional memory accesses including read accesses and write accesses of the particular transaction including non-speculative read accesses and write accesses; determining that there is a mispredicted branch within the particular transaction; and deallocating a subset of ranges of read and write sets of the plurality of ranges of read and write sets assigned to instructions of the particular transaction, based on determining the mispredicted branch, wherein at least one range of read and write sets assigned to one or more instructions of the particular transaction remains allocated, wherein a cache line of the multiple cache lines comprises a plurality of pairs of read and write sets across multiple ranges of instructions of the particular transaction, and each pair of read and write sets of the plurality of pairs of read and write sets for the cache line is for a different range of instructions of the particular transaction, and wherein each different range of instructions includes instructions between a transaction begin instruction to begin the particular transaction and a branch instruction of the particular transaction or between one branch instruction of the particular transaction and another branch instruction of the particular transaction. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
Specification