Transactional memory execution utilizing virtual memory
First Claim
1. An apparatus comprising:
- a processor includinga local transactional cache;
a resource manager, responsive to a transactional memory request, which is to reference an original address and is to be associated with a requesting thread, to determine whether the local transactional cache is capable of accommodating the transactional memory request, wherein the local transactional cache is utilized to perform the transactional memory request in response to the local transactional cache being capable of accommodating the transactional memory request;
a transaction address walker to associate a new address, which is within an address space for the requesting thread, with the original address in an entry to be held in the address space for the requesting thread and to manage overflow of data associated with the transactional memory request from the original address to the new address in response to the local transactional cache not being capable of accommodating the transactional memory request; and
a conflict detection filter (CDF) to indicate the original address has been overflowed in response to the local transactional cache not being capable of accommodating the transactional memory request, wherein the transaction address walker, in response to a subsequent transactional memory request to reference the original address, is not to access the entry to associate the new address with the original address based on the CDF indicating the original address has been overflowed.
2 Assignments
0 Petitions
Accused Products
Abstract
Embodiments of the invention relate to transactional memory execution utilizing virtual memory. A processor includes a local transactional cache and a resource manager. The resource manager responsive to a transactional memory transaction request from a requesting thread determines whether the local transactional cache is capable of accommodating the transactional memory transaction request and, if so, the local transactional caches performs the transactional memory transaction. However, if the local transactional cache is not capable of accommodating the transactional memory transaction request, data for the transactional memory transaction request is overflowed into an application'"'"'s virtual address space associated with the requesting thread.
-
Citations
32 Claims
-
1. An apparatus comprising:
- a processor including
a local transactional cache; a resource manager, responsive to a transactional memory request, which is to reference an original address and is to be associated with a requesting thread, to determine whether the local transactional cache is capable of accommodating the transactional memory request, wherein the local transactional cache is utilized to perform the transactional memory request in response to the local transactional cache being capable of accommodating the transactional memory request; a transaction address walker to associate a new address, which is within an address space for the requesting thread, with the original address in an entry to be held in the address space for the requesting thread and to manage overflow of data associated with the transactional memory request from the original address to the new address in response to the local transactional cache not being capable of accommodating the transactional memory request; and a conflict detection filter (CDF) to indicate the original address has been overflowed in response to the local transactional cache not being capable of accommodating the transactional memory request, wherein the transaction address walker, in response to a subsequent transactional memory request to reference the original address, is not to access the entry to associate the new address with the original address based on the CDF indicating the original address has been overflowed. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
- a processor including
-
9. A method comprising:
-
determining whether a cache resident within a processor is capable of accommodating a transactional memory request from a requesting thread associated with a virtual address space with a resource manager implemented inside the processor, the transactional memory request being associated with an original address; performing the transactional memory request with the local cache in response to the resource manager determining the local cache is capable of accommodating the transactional memory request; in response to the resource manager determining the local cache is not capable of accommodating the transactional memory request; assigning a new address to the transactional memory request within an entry of a transaction address translation table (XATT), the new address and the XATT being within the virtual address space associated with the thread; updating a conflict detection filter CDF to indicate the original address has been overflowed; managing data for the transactional memory request utilizing the new address; and determining a conflict without an access to the table based on the CDF indicating the original address has been overflowed in response to a subsequent access to the original address. - View Dependent Claims (10, 11, 12, 13)
-
-
14. A machine-readable medium of a storage device having tangibly stored thereon instructions, which when executed by a machine, cause the machine to perform the following operations comprising:
-
determining whether a transactional memory store request referencing an original address for store data from a requesting thread associated with a virtual address space is to overflow a local memory within a processor; performing the transactional memory transaction with the local memory in response to determining the transactional memory store request is not to overflow the local memory; in response to determining the transactional memory store request is to overflow the local memory assigning, within a table, a new address associated with the virtual address space to buffer the store data until an end of a transaction including the transactional memory store request, updating a conflict detection filter CDF to indicate the original address has overflowed; and determining a conflict without an access to the table based on the CDF indicating the original address has been overflowed in response to a subsequent access to the original address. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
-
21. A computer system comprising:
-
a system memory to hold a transactional translation table within an application address space; a processor coupled to the system memory, the processor including a local cache; a resource manager to determine whether the local cache is capable of accommodating a transactional memory request from a requesting thread of an associated application, which is to be associated with the application address space, the transactional memory request to reference an original address; and a transactional translation table walker to initiate an update of an entry of the transactional translation table to hold a new address associated with the original address, the new address being within the application address space, wherein the new address is to hold overflow data associated with the transactional memory request; and conflict detection logic to hold references to original addresses that have overflowed the local cache, and wherein a conflict from a subsequent transactional memory request is capable of being detected based on the references to the original addresses held in the conflict detection logic without the transactional translation table walker accessing the transactional translation table held within the system memory. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28)
-
-
29. An apparatus comprising:
- a processor including
a local memory; execution resources to execute a thread that includes a transaction having at least a transactional store operation to reference store data and an original virtual address for the store data, the thread to be associated with a virtual address space; translation logic to translate virtual addresses within the virtual address space to physical addresses of physical memory to be associated with the processor; overflow logic to determine if the transactional store operation, when received, is to overflow the local memory; transaction logic to associate, within a table, a new virtual address, which is within the virtual address space to be associated with the thread, with the original virtual address in response to the overflow logic determining the transactional store operation is to overflow the local memory, wherein the new virtual address, when translated by the translation logic, is to reference a new physical address of the physical memory to hold the store data; and conflict detection logic to track the original physical address in response to the overflow logic determining the transactional store operation is to overflow the local memory, and wherein, in response to a subsequent transactional memory request referencing the address, the transaction logic is capable of determining a conflict based on the original physical address tracked in the conflict detection logic without a lookout to the table. - View Dependent Claims (30, 31, 32)
- a processor including
Specification