Obscuring Memory Access Patterns in Conjunction with Deadlock Detection or Avoidance
First Claim
1. A computer-implemented method comprising:
- loading data into locations of a memory resource and executing one or more monitor instruction for the locations;
reading the data from the memory structure, in a pre-specified order, responsive to determining that the data at one or more of the locations has been accessed by another thread;
wherein said determining further comprises polling of a status bit to determine whether the data at any of the data has been accessed by the other thread.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods, apparatus and systems for memory access obscuration are provided. A first embodiment provides memory access obscuration in conjunction with deadlock avoidance. Such embodiment utilizes processor features including an instruction to enable monitoring of specified cache lines and an instruction that sets a status bit responsive to any foreign access (e.g., write or eviction due to a read) to the specified lines. A second embodiment provides memory access obscuration in conjunction with deadlock detection. Such embodiment utilizes the monitoring feature, as well as handler registration. A user-level handler may be asynchronously invoked responsive to a foreign write to any of the specified lines. Invocation of the handler more frequently than expected indicates that a deadlock may have been encountered. In such case, a deadlock policy may be enforced. Other embodiments are also described and claimed.
65 Citations
31 Claims
-
1. A computer-implemented method comprising:
-
loading data into locations of a memory resource and executing one or more monitor instruction for the locations; reading the data from the memory structure, in a pre-specified order, responsive to determining that the data at one or more of the locations has been accessed by another thread; wherein said determining further comprises polling of a status bit to determine whether the data at any of the data has been accessed by the other thread. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A computer-implemented method, comprising:
-
executing via a first thread one or more instructions to register a handler module to be invoked in response to an access, via a second thread, to one or more specified memory locations; transferring control to the handler module in response to an access, via the second thread, to one or more of the specified memory locations; incrementing a counter; and executing a deadlock policy responsive to the counter exceeding a maximum acceptable value. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. An article comprising:
-
a tangible storage medium having a plurality of machine accessible instructions; wherein, when the instructions are executed by a processor, the instructions provide for; loading data into locations of a memory resource and executing one or more monitor instruction for the locations; reading the data from the memory structure, in a pre-specified order, responsive to determining that the data at one or more of the locations has been accessed by another thread; wherein said determining further comprises polling of a status bit to determine whether the data at any of the data has been accessed by the other thread. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
-
22. An article comprising:
-
a tangible storage medium having a plurality of machine accessible instructions; wherein, when the instructions are executed by a processor, the instructions provide for; executing via a first thread one or more instructions to register a handler module to be invoked in response to an access, via a second thread, to one or more specified memory locations; transferring control to the handler module in response to an access, via the second thread, to one or more of the specified memory locations, incrementing a counter; and executing a deadlock policy responsive to the counter exceeding a maximum acceptable value. - View Dependent Claims (23, 24, 25, 26, 27, 28)
-
-
29. A system, comprising:
-
a memory resource coupled to a first thread unit and a second thread unit; the first thread unit including in its instruction set architecture one or more instructions to monitor specified locations of the memory resource; wherein the instruction set architecture of the first thread unit further includes an instruction to set a status bit responsive to an access, by the second thread unit, to any of the specified locations; and wherein the memory resource is further to store code that includes instructions to read data at all or part of the specified locations, depending on the value of the status bit.
-
-
30. A system, comprising:
-
a memory resource coupled to a first thread unit and a second thread unit; the first thread unit including in its instruction set architecture an instruction to monitor a specified location of the memory resource; wherein the instruction set architecture of the first thread unit further includes an instruction to invoke a handler module responsive to modification of data at said specified location; and wherein the memory resource is further to store code that includes instructions to detect a potential deadlock condition. - View Dependent Claims (31)
-
Specification