Patent ID: 8521965

Claim:
An apparatus comprising: a decode unit adapted to decode one or more instructions, the one or more instructions including a transaction memory access instruction to reference a data address; a cache memory including (i) a cache data location corresponding to the data address and adapted to hold a data value from the data address and (ii) a cache lock location adapted to hold a transactional lock value to be associated with the cache data location, wherein the cache lock location is indexed within a hash table as a function of a hashed portion of the data address corresponding to the cache data location, and wherein the transaction lock value comprises at least one of (i) a locked value to indicate the data value is owned by a transaction and (ii) a version value to indicate the data value is not owned by a transaction; a hardware field to be associated with the cache data location, wherein the hardware field is adapted to hold an acceleration value; and execution logic, in response to the decode unit decoding the one or more instructions, being adapted to determine if the acceleration value includes an accessed value to indicate the cache data location has been previously accessed during a transaction, wherein the transaction, by default, is to be executed in an aggressive mode and is to be executed in a cautious mode in response to the transaction being aborted a first number of times; update the cache lock location to a locked value and not log a version value to be associated with the data address in a local transaction memory set in response to (i) the acceleration value including an un-accessed value to indicate the cache data location has not been previously accessed during the transaction, and (ii) the transaction being executed in the aggressive mode; update the cache lock location to a locked value and log a version value to be associated with the data address in the local transaction memory set in response to (i) the acceleration value including the un-accessed value to indicate the cache data location has not been previously accessed during the transaction, and (ii) the transaction being executed in the cautious mode; and vector execution of the execution logic so as not to update the cache lock location to the locked value and not log the version value in the local transaction memory set in response to the acceleration value including the accessed value to indicate the cache data location has been previously accessed during the transaction.