P
US8977823B2ActiveUtilityPatentIndex 63

Store buffer for transactional memory

Assignee: IBMPriority: Sep 16, 2012Filed: Sep 16, 2012Granted: Mar 10, 2015
Est. expirySep 16, 2032(~6.2 yrs left)· nominal 20-yr term from priority
Inventors:ALEXANDER KHARY JJACOBI CHRISTIANKOCH GERRITRECKTENWALD MARTINSLEGEL TIMOTHY JTAST HANS-WERNER
G06F 9/3834G06F 9/467
63
PatentIndex Score
2
Cited by
5
References
22
Claims

Abstract

Provided are techniques for handling a store buffer in conjunction with a processor, the store buffer comprising a free list; a merge window; and an evict list; and logic, for, upon receipt of a T_STORE operation, comparing a first address associated with the T_STORE operation with a plurality of addresses associated with previous T_STORE operations, wherein the previous T_STORE operations are part of the same transaction as the T_STORE operation and the entries corresponding to the previous T_STORE operations are stored in the merge window; in response to a match between the first address and a second address, associated with a second T_STORE operation, of the plurality of addresses, merging a first entry corresponding to the first T_STORE operation with a second entry corresponding to the second T_STORE operation; and consolidating results associated with the first T_STORE operation with results associated with the second T_STORE operation.

Claims

exact text as granted — not AI-modified
We claim: 
     
       1. A processor, comprising:
 a store buffer, the store huller comprising:
 a free list; 
 a merge window; and 
 an evict list; and 
 
 logic, for:
 upon receipt of a T_STORE operation, comparing a first address associated with the T_STORE operation with a plurality of addresses associated with previous T_STORE operations, wherein the previous T_STORE operations are part of the same transaction as the T_STORE operation and the entries corresponding to the previous T_STORE operations are stored in the merge window; and 
 in response to a match between the first address and a second address, associated with a second T_STORE operation, of the plurality of addresses, merging a first entry corresponding to the first T_STORE operation with a second entry corresponding to the second T_STORE operation. 
 
 
     
     
       2. The processor of  claim 1 , the logic for merging of the first entry with the second entry comprising logic for:
 consolidating results associated with the first T_STORE operation with results associated with the second T_STORE operation to produce a consolidated result; and 
 storing the consolidated result in the merge window in place of the second entry. 
 
     
     
       3. The processor of  claim 1 , further comprising logic for excluding, upon receipt of a T_BEGIN, each entry of a plurality of entries currently in the merge buffer from the merging associated with subsequent T_STORE operations. 
     
     
       4. The processor of  claim 1 . further comprising logic for preventing the entries associated with the transaction from moving from the merge window prior to receipt of a T_END operation corresponding to the transaction. 
     
     
       5. The processor of  claim 1 , further comprising logic for removing the entries associated with the transaction form the merge window in response to a receipt of a T_ABORT operation. 
     
     
       6. The processor of  claim 1 , further comprising:
 upon receipt of a T_END operation, promoting each entry associated with the transaction from a pending operations to normal operations; and 
 enabling subsequent operations to merge with entries associated with normal operations until receipt of a T_BEGIN operation. 
 
     
     
       7. The processor of  claim 1 , further comprising logic, for:
 receiving a T_END operation; and 
 in response to the T_END operation, changing the state of pending operations in the store buffer to normal. 
 
     
     
       8. The processor of  claim 7 , the store buffer further comprising:
 an evict list pointer; and 
 the processor further comprises logic for moving each entry from the merge window to the evict list by moving the evict list pointer. 
 
     
     
       9. The processor of  claim 1 , wherein the store buffer is a circular buffer. 
     
     
       10. The processor of  claim 1 , wherein the store buffer is a fully associative buffer. 
     
     
       11. A method, comprising:
 receiving a T_STORE operation; 
 comparing a first address associated with the T_STORE operation with a plurality of addresses associated with previous T_STORE operations stored in a merge buffer, wherein the previous T_STORE operations are part of the same transaction as the T_STORE operation; 
 in response to a match between the first address and a second address, associated with a second T_STORE operation, of the plurality of addresses, consolidating results associated with the first T_STORE operation with results associated with the second T_STORE operation to produce a consolidated result; and 
 storing the consolidated result in the merge window in place of the second entry. 
 
     
     
       12. The method of  claim 11 , further comprising excluding each entry of a plurality of entries currently in the merge buffer from the merging associated with subsequent T_STORE operations in response to receiving a T_BEGIN operation. 
     
     
       13. The method of  claim 11 , further comprising preventing the entries associated with the transaction from moving from the merge window prior to receipt of a T_END operation corresponding to the transaction. 
     
     
       14. The method of  claim 11 , further comprising removing the entries associated with the transaction form the merge window in response to a receipt of a T_ABORT operation. 
     
     
       15. the method of  claim 11 , further comprising;
 promoting each entry associated with the transaction from a pending operation to normal operation in response to a receipt of a T_END operation; and 
 enabling subsequent merging of entries associated with normal operations until receipt of a T_BEGIN operation, 
 
     
     
       16. The method of  claim 11 , further comprising, in response to receiving a T_END operation, changing the state of pending operations in the store buffer to normal. 
     
     
       17. A computer programming product, comprising:
 a non-transitory computer-readable storage medium; and 
 logic, stored on the computer-readable storage medium for execution on a processor, for.
 receiving a T_STORE operation; 
 comparing a first address associated with the T_STORE operation. with a plurality of addresses associated with previous T_STORE operations stored in a merge buffer, wherein the previous T_STORE operations are part of the same transaction as the T_STORE operation; 
 in response to a match between the first address and a second address, associated with a second T_STORE operation, of the plurality of addresses, consolidating results associated with the first T_STORE operation with results associated. with the second T_STORE operation to produce a consolidated result.; and 
 storing the consolidated result in the merge window in place of the second entry. 
 
 
     
     
       18. The computer programming product of  claim 17 , the logic further comprising logic for excluding each entry of a plurality of entries currently in the merge buffer from the merging associated with subsequent T_STORE operations in response to receiving a T_BEGIN operation. 
     
     
       19. The computer programming product of  claim 17 , the logic further comprising logic for preventing the entries associated with the transaction from moving from the merge window prior to receipt of a T_END operation corresponding to the transaction. 
     
     
       20. The computer programming product of  claim 17 , the logic further comprising logic for removing the entries associated with the transaction form the merge window in response to a receipt of a T_ABORT operation. 
     
     
       21. The computer programming, product of  claim 17 . the logic further comprising logic for:
 promoting each entry associated with the transaction from a pending operation to normal operation in response to a receipt of a T_END operation; and 
 enabling subsequent merging of entries associated with normal operations until receipt of a T_BEGIN operation. 
 
     
     
       22. The computer programming product of  claim 17 , the logic further comprising logic for changing the state of pending operations in the store buffer to normal in response to receiving a T_END operation.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.