Methods and apparatus to provide transactional memory execution in out-of-order processors are described. In one embodiment, a stored value corresponds to the number of transactional memory access requests that are uncommitted. The stored value may be used to provide nested recovery in case of an error, fault, etc. in accordance with a described embodiment.
Legal claims defining the scope of protection, as filed with the USPTO.
1. An apparatus comprising: a storage unit to store a value corresponding to a number of transactional memory access requests that are uncommitted; and a first logic to update the value stored in the storage unit for an occurrence of a transactional memory access request start and a transactional memory access request commitment, wherein a transactional memory load instruction, corresponding to the transactional memory request, is to be speculatively issued to a portion of a cache based on an indication of a previous transactional memory access to the portion of the cache, wherein the previous transactional memory access is to occur prior to the transactional memory load instruction speculatively accessing the portion of the cache and wherein the transactional memory load instruction is to be reissued, after retirement or commitment, in response to an absence of the previous transactional memory access to the portion of the cache.
2. The apparatus of claim 1 , further comprising a second logic to store data corresponding to a state of one or more components of a processor, at least in part, in response to one of the transactional memory access requests.
3. The apparatus of claim 2 , further comprising a third logic to restore the state of the one or more components of the processor after at least one of one or more operations corresponding to one of the transactional memory access requests fails to commit.
4. The apparatus of claim 2 , further comprising a third logic to cause execution of one or more operations corresponding to at least one of the transactional memory access requests after an indication that the one or more operations are atomically committable.
5. The apparatus of claim 4 , wherein the third logic causes execution of the one or more operations after the value stored in the storage unit indicates that a last one of the transactional memory access requests has been committed.
6. The apparatus of claim 2 , wherein the one or more components of the processor comprises one or more registers.
7. The apparatus of claim 1 , wherein the transactional memory access requests correspond to a same thread.
8. The apparatus of claim 1 , further comprising the cache to store data, wherein the cache comprises one or more bits to indicate an access, corresponding to one of the transactional memory access requests, to a portion of the cache.
9. The apparatus of claim 8 , wherein the portion of the cache is one or more of a cache line or a cache block.
10. The apparatus of claim 8 , wherein one or more entries of the cache that correspond to at least one of the transactional memory access requests are evicted after other entries of the cache.
11. The apparatus of claim 1 , further comprising a second logic to execute at least some of one or more operations corresponding to the transactional memory access requests speculatively.
12. The apparatus of claim 1 , wherein at least some of one or more operations corresponding to the transactional memory access requests are identified as transactional or non transactional.
13. The apparatus of claim 1 , further comprising a second logic to abort at least one of the transactional memory access requests in response to one or more of a conflict with a different operation; an implementation-specific event that forces an abort; or a request for an explicit abort.
14. The apparatus of claim 1 , further comprising a plurality of processor cores, wherein at least one of the plurality of processor cores comprises one or more of the first logic or the storage unit.
15. The apparatus of claim 1 , further comprising a second logic to cause issuance of a load operation speculatively after a previous one of the transactional memory access requests has accessed a same location of a memory corresponding to the load operation.
16. The apparatus of claim 1 , further comprising a second logic to cause execution of non-transactional stores corresponding to the transactional memory access as write-through operations to a memory.
17. The apparatus of claim 1 , wherein the indication of the previous transactional access is to be stored in a location other than the cache and wherein the indication stored in the location other than the cache is to be accessed prior to accessing the cache.
18. A method comprising: updating a stored value corresponding to a number of transactional memory access requests that are uncommitted in response to at least a first instruction corresponding to a transactional memory request; performing one or more operations in response to a second instruction corresponding to the transactional memory request; and speculatively issuing a transactional memory load instruction, corresponding to the transactional memory request, to a portion of a cache based on an indication of a previous transactional memory access to the portion of the cache, wherein the previous transactional memory access is to occur prior to the transactional memory load instruction speculatively accessing the portion of the cache and wherein the transactional memory load instruction is to be reissued, after retirement or commitment, in response to an absence of the previous transactional memory access to the portion of the cache.
19. The method of claim 18 , further comprising updating the stored value in response to the second instruction.
20. The method of claim 18 , further comprising check pointing one or more components of a processor in response to the first instruction.
21. The method of claim 18 , wherein speculatively issuing the load instruction is to be performed based on a bit corresponding to the portion of the cache.
22. The method of claim 18 , further comprising identifying one or more instructions corresponding to the transactional memory request as transactional or non-transactional.
23. The method of claim 22 , wherein identifying the one or more instructions is performed implicitly or explicitly.
24. A system comprising: a memory to store data; a processor comprising: a first logic to fetch a first instruction from the memory corresponding to a start of a transactional memory access and a second instruction from the memory corresponding to an end of the transactional memory access; and a second logic to update a value stored in a storage unit in response to one or more of the first instruction and the second instruction, wherein a transactional memory load instruction, corresponding to the transactional memory request, is to be speculatively issued to a portion of a cache based on an indication of a previous transactional memory access to the portion of the cache, wherein the previous transactional memory access is to occur prior to the transactional memory load instruction speculatively accessing the portion of the cache and wherein the transactional memory load instruction is to be reissued, after retirement or commitment, in response to an absence of the previous transactional memory access to the portion of the cache.
25. The system of claim 24 , further comprising a third logic to cause execution of one or more operations on the memory after an indication that the one or more memory operations are atomically committable.
26. The system of claim 24 , further comprising a third logic to restore a state of one or more components of the processor after at least one of one or more operations corresponding to the transactional memory access fails to commit.
27. The system of claim 24 , wherein the value stored in the storage unit corresponds to a number of transactional memory access requests that are uncommitted.
28. The system of claim 24 , wherein the second logic updates the value stored in the storage unit in response to execution or issuance of the first or second instructions.
29. The system of claim 24 , further comprising the cache to store at least some of the data stored in the memory, wherein the cache comprises one or more bits to indicate an access, corresponding to the transactional memory access, to a portion of the cache.
30. The system of claim 29 , further comprising a third logic to update data stored in the cache in response to one or more operations corresponding to the transactional memory access.
31. The system of claim 24 , further comprising an audio device.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
March 30, 2006
May 15, 2012
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.