System and Method for Performing Memory Management Using Hardware Transactions
First Claim
1. A method, comprising:
- performing by a computer;
beginning execution of an application that comprises one or more accesses to a dynamic-sized data structure, wherein the data structure is accessible by a plurality of threads of the application or by a plurality of applications;
the application designating that an element of the data structure is available to be accessed by the application; and
using a hardware transaction to access the data structure element while confirming that the data structure element is still an element of the data structure.
1 Assignment
0 Petitions
Accused Products
Abstract
The systems and methods described herein may be used to implement a shared dynamic-sized data structure using hardware transactional memory to simplify and/or improve memory management of the data structure. An application (or thread thereof) may indicate (or register) the intended use of an element of the data structure and may initialize the value of the data structure element. Thereafter, another thread or application may use hardware transactions to access the data structure element while confirming that the data structure element is still part of the dynamic data structure and/or that memory allocated to the data structure element has not been freed. Various indicators may be used determine whether memory allocated to the element element can be freed.
-
Citations
20 Claims
-
1. A method, comprising:
performing by a computer; beginning execution of an application that comprises one or more accesses to a dynamic-sized data structure, wherein the data structure is accessible by a plurality of threads of the application or by a plurality of applications; the application designating that an element of the data structure is available to be accessed by the application; and using a hardware transaction to access the data structure element while confirming that the data structure element is still an element of the data structure. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
10. A system comprising:
-
one or more processors; and a memory coupled to the one or more processors and comprising a shared memory space; wherein the memory stores program instructions executable on the one or more processors to implement; beginning execution of an application that comprises one or more accesses to a dynamic-sized data structure, wherein the data structure is accessible by a plurality of threads of the application or by a plurality of applications; the application designating that an element of the data structure is available to be accessed by the application; and using a hardware transaction to access the data structure element while confirming that the data structure element is still an element of the data structure. - View Dependent Claims (11, 12, 13, 14, 15)
-
-
16. A non-transitory, computer readable storage medium storing program instructions that when executed on one or more computers cause the one or more computers to perform:
-
beginning execution of an application that comprises one or more accesses to a dynamic-sized data structure, wherein the data structure is accessible by a plurality of threads of the application or by a plurality of applications; the application designating that an element of the data structure is available to be accessed by the application; and using a hardware transaction to access the data structure element while confirming that the data structure element is still an element of the data structure. - View Dependent Claims (17, 18, 19, 20)
-
Specification