Transactional Memory System
First Claim
1. A method of detecting memory access conflicts, the method comprising:
- creating a plurality of mappings in a virtual address space of a physical heap used by a process executed on a processor, each of the mappings having a plurality of memory regions and each memory region having an access permission;
controlling the access permissions of the memory regions in order to detect memory access conflicts.
2 Assignments
0 Petitions
Accused Products
Abstract
A transactional memory system is described for reporting memory access violations which occur when memory accesses made from instructions within a transaction conflict with memory accesses to the same memory location made from a non-transactional instruction. In an embodiment this is achieved by creating two mappings of a physical heap being used by a thread. The thread (which may be part of a multi-threaded process) comprises instructions for both transactional and non-transactional accesses to the physical heap which may execute concurrently as part of that thread. One of the mappings is used for non-transactional memory accesses to the physical heap. The other mapping is used for transactional memory accesses to the physical heap. Access permissions associated with the mappings are controlled to enable attempted memory access violations to be detected and reported.
-
Citations
20 Claims
-
1. A method of detecting memory access conflicts, the method comprising:
-
creating a plurality of mappings in a virtual address space of a physical heap used by a process executed on a processor, each of the mappings having a plurality of memory regions and each memory region having an access permission; controlling the access permissions of the memory regions in order to detect memory access conflicts. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A method of reporting memory access violations, the method comprising:
-
creating a normal heap being a mapping in a virtual address space of a physical heap used by a process executed on a processor, the process comprising at least one thread, that thread comprising instructions for both transactional and non-transactional accesses to the physical heap which may execute concurrently as part of that thread; creating a transactional heap being a mapping in the virtual address space, the transactional heap having a different virtual address range from the normal heap; wherein the process of creating the normal and transactional heaps comprises specifying a plurality of memory regions, each memory region of the normal heap corresponding to a memory region of the physical heap and each memory region of the transactional heap corresponding to a memory region of the physical heap and where each of the memory regions of the normal heap has an access permission; using the normal heap when making non-transactional memory accesses to the physical heap; using the transactional heap when making transactional memory accesses to the physical heap; detecting attempts to concurrently access the same memory region of the physical heap from both the normal and transactional heaps by controlling the access permissions to selectively revoke access to the physical heap by non-transactional memory accesses. - View Dependent Claims (18, 19)
-
-
20. One or more device-readable media with device-executable instructions for performing steps comprising:
-
creating a normal heap being a mapping in a virtual address space of a physical heap used by a process executed on a processor, the process comprising at least one thread, that thread comprising instructions for both transactional and non-transactional accesses to the physical heap which may execute concurrently as part of that thread; creating a transactional heap being a mapping in the virtual address space, the transactional heap having a different virtual address range from the normal heap; wherein the process of creating the normal and transactional heaps comprises specifying a plurality of memory regions, each memory region of the normal heap corresponding to a memory region of the physical heap and each memory region of the transactional heap corresponding to a memory region of the physical heap and where each of the memory region of the normal heap has an access permission; using the normal heap when making non-transactional memory accesses to the physical heap; using the transactional heap when making transactional memory accesses to the physical heap; detecting attempts to concurrently access the same memory region of the physical heap from both the normal and transactional heaps by controlling the access permissions.
-
Specification