Patent Document ID: 9304769
Application ID: 14271024

Base Claim:
1. A computing device for transactional memory execution, the computing device comprising: a cache memory to hold a cache line with a corresponding hardware transaction tracking field; and a processing element to: encounter, within a transaction, a transactional memory access to the cache line with the corresponding hardware transaction tracking field set to an un-accessed value indicating that the transaction has not previously accessed the cache line during its pendency; generate a transactional event in response to an encounter of the transactional memory access; determine an address from a storage element of the processing element associated with the transactional event; and perform an access barrier operation associated with the address, wherein the transactional memory access includes a transactional read, and wherein the access barrier operation associated with the address is selected from a group consisting of logging of the transactional read, acquisition of a lock for the address, and validation of a previous transactional read.

---

Claim 6:
6. The computing device of claim 1 , wherein to execute the handler code further comprises to: determine if there is a livelock associated with the address; in response to a determination that there is a livelock associated with the address: (i) set a trap mode to an after mode so the store handler code is executed after the transactional write is performed, (ii) se the hardware transaction tracking field to an un-accessed value, and (iii) re-execute the transactional store; determine the execution of the store handler code is in response to re-execution of the transactional store; and in response to a determination that the execution of the store handler code is in response to the re-execution of the transactional store: (i) set the trap mode to a before mode so the store handler code is executed before a subsequent transactional store is performed and (ii) set the hardware transaction tracking field to the accessed value.