Wake-and-go mechanism with exclusive system bus response
First Claim
1. A method, in a data processing system, for performing a look-ahead operation in a wake-and-go mechanism, the method comprising:
- responsive to detecting instructions indicating that a thread is waiting for data at a target address, issuing, by the wake-and-go mechanism, a look-ahead load command on a system bus to read a data value from the target address;
performing, by the wake-and-go mechanism, a comparison operation to determine whether the data value at the target address indicates that the data for which the thread is waiting is at the target address;
in response to the comparison resulting in a determination that the data for which the thread is waiting is not at the target address, populating a wake-and-go storage array with the target address;
in response to the comparison resulting in a determination that the data for which the thread is waiting is at the target address, issuing, by the wake-and-go mechanism, a load command on the system bus to read the data value from the target address with data exclusivity; and
responsive to the wake-and-go mechanism obtaining the lock for the target address, holding, by the wake-and-go mechanism, the lock for the thread.
2 Assignments
0 Petitions
Accused Products
Abstract
A wake-and-go mechanism is configured to issue a look-ahead load command on a system bus to read a data value from a target address and perform a comparison operation to determine whether the data value at the target address indicates that an event for which a thread is waiting has occurred. In response to the comparison resulting in a determination that the event has not occurred, the wake-and-go engine populates the wake-and-go storage array with the target address. In response to the comparison resulting in a determination that the event has occurred, the wake-and-go engine issues a load command on the system bus to read the data value from the target address with data exclusivity and determines whether the wake-and-go engine obtains a lock for the target address. Responsive to obtaining the lock for the target address, the wake-and-go engine holds the lock for the thread.
175 Citations
20 Claims
-
1. A method, in a data processing system, for performing a look-ahead operation in a wake-and-go mechanism, the method comprising:
-
responsive to detecting instructions indicating that a thread is waiting for data at a target address, issuing, by the wake-and-go mechanism, a look-ahead load command on a system bus to read a data value from the target address; performing, by the wake-and-go mechanism, a comparison operation to determine whether the data value at the target address indicates that the data for which the thread is waiting is at the target address; in response to the comparison resulting in a determination that the data for which the thread is waiting is not at the target address, populating a wake-and-go storage array with the target address; in response to the comparison resulting in a determination that the data for which the thread is waiting is at the target address, issuing, by the wake-and-go mechanism, a load command on the system bus to read the data value from the target address with data exclusivity; and responsive to the wake-and-go mechanism obtaining the lock for the target address, holding, by the wake-and-go mechanism, the lock for the thread. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A data processing system, comprising:
-
a wake-and-go mechanism; and a wake-and-go storage array, wherein the wake-and-go mechanism is configured to; responsive to detecting instructions indicating that a thread is waiting for data at a target address, issue a look-ahead load command on a system bus to read a data value from a target address; perform a comparison operation to determine whether the data value at the target address indicates that the data for which the thread is waiting is at the target address; in response to the comparison resulting in a determination that the data for which the thread is waiting is not at the target address, populate the wake-and-go storage array with the target address; in response to the comparison resulting in a determination that the data for which the thread is waiting is at the target address, issue a load command on the system bus to read the data value from the target address with data exclusivity; and responsive to the wake-and-go mechanism obtaining the lock for the target address, hold the lock for the thread. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A computer program product comprising a computer useable storage medium having a computer readable program stored thereon, wherein the computer readable program, when executed on a computing device, causes the computing device to:
-
issue, by the wake-and-go mechanism, a look-ahead load command on a system bus to read a data value from a target address; perform a comparison operation to determine whether the data value at the target address indicates that the data for which the thread is waiting is at the target address; in response to the comparison resulting in a determination that the data for which the thread is waiting is not at the target address, populate a wake-and-go storage array with the target address; in response to the comparison resulting in a determination that the data for which the thread is waiting is at the target address, issue, by the wake-and-go mechanism, a load command on the system bus to read the data value from the target address with data exclusivity; and responsive to the wake-and-go mechanism obtaining the lock for the target address, hold, by the wake-and-go mechanism, the lock for the thread. - View Dependent Claims (18, 19, 20)
-
Specification