Transactional memory with automatic object versioning

التفاصيل البيبلوغرافية
العنوان: Transactional memory with automatic object versioning
Document Number: 20080021934
تاريخ النشر: January 24, 2008
Appl. No: 11/477848
Application Filed: June 29, 2006
مستخلص: Embodiments of a system and method for transactional memory (TM) with automatic object versioning are described. Embodiments described herein include a TM system and method that facilitates the execution of object-oriented application programs in a transactional environment, including automatically versioning objects to enhance efficiency. Embodiments of the TM automatically designate versions of objects using pointers, accurately identifying usable and unusable versions. Object versioning as described herein allows the garbage collector to easily and efficiently determine which objects may be moved, freeing memory space and reducing the number of objects traversed by a transaction before finding a useable version of an object. Other embodiments are described and claimed.
Inventors: Hudson, Richard L. (Florence, MA, US); Adl-tabatabai, Ali-Reza (Santa Clara, CA, US); Saha, Bratin (San Jose, CA, US)
Claim: 1. A transactional memory (TM) method comprising: determining a version of an object; and automatically indicating the version of the object, wherein indicating comprises modifying at least one pointer associated with the object.
Claim: 2. The method of claim 1, wherein the version comprises an old version, a speculative version, and a definitive version.
Claim: 3. The method of claim 2, further comprising indicating a definitive version by modifying one of the at least one pointers to point to the object itself.
Claim: 4. The method of claim 1, further comprising: a transaction T1 seeking to access the object traversing forward pointers associated with the object; and reading a transaction descriptor pointed to by the at least one pointer.
Claim: 5. The method of claim 4, further comprising reading a transaction descriptor pointed to by the at least one pointer to determine: whether the at least one pointer includes a self-referential pointer, indicating that the object is a definitive version of the object; and whether the object is a speculative version of the object.
Claim: 6. The method of claim 5, further comprising, if the object is a speculative version of the object, determining whether the speculative version of the object includes a pointer to a T1 transaction descriptor or a T2 transaction descriptor associated with a transaction T2 that is different from transaction T1.
Claim: 7. The method of claim 6, further comprising: if the speculative version of the object includes a pointer to a T2 transaction descriptor, determining that there is contention; and executing a contention strategy.
Claim: 8. The method of claim 7, further comprising executing a non-blocking contention strategy, the strategy comprising: determining whether transaction T2 is active; if T2 is active, completing T2 in a manner based on a character of T2; and modifying the one of the at least one pointers to the at least one speculative version of the object to reflect a correct version of the object, comprising modifying to indicate the speculative version of the object is currently a definitive version of the object.
Claim: 9. A transactional memory (TM) system, comprising: a virtual machine to execute code contained in class files; and a TM implementation coupled to the virtual machine to facilitate execution of the code in a transactional environment, wherein the TM automatically indicates a version of an object.
Claim: 10. The system of claim 9, wherein the TM implementation further determines whether an object is an old version, a speculative version, or a definitive version, and modifies a pointer to the object to indicate a version of the object.
Claim: 11. The system of claim 9, wherein the TM implementation further: facilitates a transaction seeking to access an object to traverse pointers associates with the object; and reads a transaction descriptor pointed to by one of the pointers, wherein the transaction descriptor indicates whether the version of the object is definitive or speculative.
Claim: 12. The system of claim 9, wherein the TM implementation further: facilitates a transaction seeking to access an object to traverse pointers associates with the object; read a transaction descriptor pointed to by one of the pointers, wherein the reads descriptor indicates whether contention exists; and if contention exists, executes a contention strategy, and modifies the pointer to indicate a current version of the object.
Claim: 13. The system of claim 9, wherein the TM implementation further: facilitates a transaction seeking to access an object to traverse pointers associates with the object; reads a transaction descriptor pointed to by one of the pointers, wherein the transaction descriptor indicates whether the version of the object is definitive or speculative; if the version of the object is definitive, determines whether the transaction includes a read operation or a write operation.
Claim: 14. The system of claim 13, wherein: if the transaction includes a read operation, the TM adds the definitive object to a read set of the transaction; and if the transaction includes a read operation or a write operation, the TM creates a new, speculative version of the object for the transaction to write, and automatically installs a pointer to the speculative version in the definitive version.
Claim: 15. A computer-readable medium having stored thereon instructions which when executed in a system cause the system to perform a method, the method comprising: facilitating execution of object-oriented software application code in a transactional environment, comprising, traversing forwarding pointers associated with an object that a transaction seeks to access; reading a transaction descriptor pointed to by one of the pointers; determining a version of the object, wherein versions comprise an old version, a speculative version, and a definitive version; and indicating the version of the object.
Claim: 16. The medium of claim 15, wherein indicating the version of the object comprises facilitating identification of unusable versions by a garbage collector.
Claim: 17. The medium of claim 15, wherein indicating a version of the object comprises modifying a pointer associated with the object.
Claim: 18. The medium of claim 15, wherein the method further comprises: determining whether a pointer to the transaction descriptor is a self-referential pointer; and determining whether a pointer that is not a self-referential pointer points to a transaction descriptor that is associated with the transaction or with another transaction.
Claim: 19. The medium of claim 18, wherein the method further comprises: determining whether there is contention for the object among transactions; executing a contention strategy; and modifying at least one pointer after execution of the contention strategy.
Claim: 20. The medium of claim 19, wherein the contention strategy comprises a non-blocking contention strategy that comprises taking actions to make it possible for the transaction to proceed.
Current U.S. Class: 707/203
Current International Class: 06
رقم الانضمام: edspap.20080021934
قاعدة البيانات: USPTO Patent Applications