Hardware Wake-and-Go Mechanism with Look-Ahead Polling
First Claim
Patent Images
1. A method, in a data processing system, for performing a wake-and-go operation, the method comprising:
- examining an instruction stream of a thread for a programming idiom that causes the thread to wait for an event that modifies a data value at a target address;
in response to detecting the programming idiom in the thread, performing a look-ahead polling operation to determine whether the event has occurred;
in response to the look-ahead polling operation resulting in a determination that the event has not occurred, populating a wake-and-go storage array with the target address;
responsive to detecting the programming idiom during execution of the thread, storing thread state information for the thread and placing the thread in a sleep state; and
in response to occurrence of the event, placing the thread in a non-sleep state.
2 Assignments
0 Petitions
Accused Products
Abstract
A hardware wake-and-go mechanism is provided for a data processing system. The wake-and-go mechanism looks ahead in a thread for programming idioms that indicates that the thread is waiting for an event. The wake-and-go mechanism performs a look-ahead polling operation for each of the programming idioms. If each of the look-ahead polling operations fails, then the wake-and-go mechanism updates a wake-and-go array with a target address associated with the event for each recognized programming idiom.
-
Citations
20 Claims
-
1. A method, in a data processing system, for performing a wake-and-go operation, the method comprising:
-
examining an instruction stream of a thread for a programming idiom that causes the thread to wait for an event that modifies a data value at a target address; in response to detecting the programming idiom in the thread, performing a look-ahead polling operation to determine whether the event has occurred; in response to the look-ahead polling operation resulting in a determination that the event has not occurred, populating a wake-and-go storage array with the target address; responsive to detecting the programming idiom during execution of the thread, storing thread state information for the thread and placing the thread in a sleep state; and in response to occurrence of the event, placing the thread in a non-sleep state. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A data processing system, comprising:
-
a hardware wake-and-go mechanism; and a wake-and-go array, wherein the hardware wake-and-go mechanism is configured to; examine an instruction stream of a thread for a programming idiom that causes the thread to wait for an event that modifies a data value at a target address; in response to detecting the programming idiom in the thread, perform a look-ahead polling operation to determine whether the event has occurred; in response to the look-ahead polling operation resulting in a determination that the event has not occurred, populate the wake-and-go storage array with the target address; responsive to detecting the programming idiom during execution of the thread, store thread state information for the thread and place the thread in a sleep state; and in response to occurrence of the event, place the thread in a non-sleep state. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A computer program product comprising a computer useable medium having a computer readable program, wherein the computer readable program, when executed on a computing device, causes the computing device to:
-
examine an instruction stream of a thread for a programming idiom that causes the thread to wait for an event that modifies a data value at a target address; in response to detecting the programming idiom in the thread, perform a look-ahead polling operation to determine whether the event has occurred; in response to the look-ahead polling operation resulting in a determination that the event has not occurred, populate a wake-and-go storage array with the target address; responsive to detecting the programming idiom during execution of the thread, store thread state information for the thread and place the thread in a sleep state; and in response to occurrence of the event, place the thread in a non-sleep state. - View Dependent Claims (18, 19, 20)
-
Specification