Adaptive process for data sharing with selection of lock elision and locking
First Claim
1. A method for predictively determining an execution mode, the method comprising:
- in response to detecting, by a processor having Hardware Lock Elision (HLE) support, a transaction-starting prefix instruction added to a lock acquire instruction, beginning a transaction in lock elision mode, based on a count of mispredictions not exceeding a threshold number of failed transaction executions, otherwise entering non-transactional lock mode based on the count of mispredictions exceeding the threshold number of failed transaction executions;
in response to detecting a transaction-ending prefix instruction added to a lock release instruction, committing the transaction based on the processor not detecting an interference by an other processor, and incrementing a count of successful predictions; and
in response to the processor detecting the interference by the other processor, obtaining a lock, restarting the transaction in non-transactional lock mode, and incrementing the count of mispredictions.
1 Assignment
0 Petitions
Accused Products
Abstract
In a Hardware Lock Elision (HLE) Environment, predictively determining whether a HLE transaction should actually acquire a lock and execute non-transactionally, is provided. Included is, based on encountering an HLE lock-acquire instruction, determining, based on an HLE predictor, whether to elide the lock and proceed as an HLE transaction or to acquire the lock and proceed as a non-transaction; based on the HLE predictor predicting to elide, setting the address of the lock as a read-set of the transaction, and suppressing any write by the lock-acquire instruction to the lock and proceeding in HLE transactional execution mode until an xrelease instruction is encountered wherein the xrelease instruction releases the lock or the HLE transaction encounters a transactional conflict; and based on the HLE predictor predicting not-to-elide, treating the HLE lock-acquire instruction as a non-HLE lock-acquire instruction, and proceeding in non-transactional mode.
70 Citations
3 Claims
-
1. A method for predictively determining an execution mode, the method comprising:
-
in response to detecting, by a processor having Hardware Lock Elision (HLE) support, a transaction-starting prefix instruction added to a lock acquire instruction, beginning a transaction in lock elision mode, based on a count of mispredictions not exceeding a threshold number of failed transaction executions, otherwise entering non-transactional lock mode based on the count of mispredictions exceeding the threshold number of failed transaction executions; in response to detecting a transaction-ending prefix instruction added to a lock release instruction, committing the transaction based on the processor not detecting an interference by an other processor, and incrementing a count of successful predictions; and in response to the processor detecting the interference by the other processor, obtaining a lock, restarting the transaction in non-transactional lock mode, and incrementing the count of mispredictions. - View Dependent Claims (2, 3)
-
Specification