Run-time code parallelization with monitoring of repetitive instruction sequences during branch mis-prediction
First Claim
Patent Images
1. A method, comprising:
- in a processor that executes instructions of program code, monitoring a repetitive sequence of the instructions that exhibits a constant, recurring register access, and constructing a specification that specifies the recurring register access;
in response to detecting a branch mis-prediction in the monitored instructions, rolling-back the recurring register access specified in the specification so as to compensate for a deviation in the recurring register access caused by the branch mis-prediction; and
parallelizing execution of at least some of the instructions based on the specification having the rolled-back recurring register access.
1 Assignment
0 Petitions
Accused Products
Abstract
A method includes, in a processor that executes instructions of program code, monitoring the instructions in a segment of a repetitive sequence of the instructions so as to construct a specification of register access by the monitored instructions. In response to detecting a branch mis-prediction in the monitored instructions, the specification is corrected so as to compensate for the branch mis-prediction. Execution of the repetitive sequence is parallelized based on the corrected specification.
73 Citations
30 Claims
-
1. A method, comprising:
-
in a processor that executes instructions of program code, monitoring a repetitive sequence of the instructions that exhibits a constant, recurring register access, and constructing a specification that specifies the recurring register access; in response to detecting a branch mis-prediction in the monitored instructions, rolling-back the recurring register access specified in the specification so as to compensate for a deviation in the recurring register access caused by the branch mis-prediction; and parallelizing execution of at least some of the instructions based on the specification having the rolled-back recurring register access. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. A processor, comprising:
-
an execution pipeline, which is configured to execute instructions of program code; and a monitoring unit, which is configured to monitor a repetitive sequence of the instructions that exhibits a constant, recurring register access, to construct a specification that specifies the recurring register access, to roll-back the recurring register access specified in the specification in response to detecting a branch mis-prediction in the monitored instructions so as to compensate for a deviation in the recurring register access caused by the branch mis-prediction, and to parallelize execution of at least some of the instructions based on the specification having the rolled-back recurring register access. - View Dependent Claims (23, 24, 25, 26, 27, 28, 29, 30)
-
Specification