A data processing apparatus is provided that includes a plurality of control flow execution circuits to simultaneously execute a first control flow instruction having a first type and a second control flow instruction having a second type from a plurality of instructions. A control flow prediction update circuit updates at most one of: a prediction of the first control flow instruction based on a result of the first control flow instruction, and a prediction of the second control flow instruction based on a result of the second control flow instruction.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A data processing apparatus comprising: a plurality of control flow execution circuits to simultaneously execute a first control flow instruction having a first type and a second control flow instruction having a second type from a plurality of instructions; and a control flow prediction update circuit to update at most one of: a prediction of the first control flow instruction based on a result of the first control flow instruction, and a prediction of the second control flow instruction based on a result of the second control flow instruction.
2. The data processing apparatus according to claim 1 , wherein the plurality of control flow execution circuits comprises a high confidence control flow execution circuit to execute the first control flow instruction; and the first type includes control flow instructions whose prediction has a confidence above a predefined level.
3. The data processing apparatus according to claim 1 , wherein the plurality of control flow execution circuits are adapted to simultaneously execute a third control flow instruction having the first type from the plurality of instructions; and the plurality of control flow execution circuits comprises a further high confidence control flow execution circuit to execute the third control flow instruction.
4. The data processing apparatus according to claim 2 , wherein the first type includes direct control flow instructions.
5. The data processing apparatus according to claim 2 , wherein the first type includes unconditional control flow instructions.
6. The data processing apparatus according to claim 2 , wherein the prediction of the first control flow instruction and the prediction of the second control flow instruction are each represented using a counter; and the predefined level is dependent on the counter.
7. The data processing apparatus according to claim 6 , wherein the counter is a saturated counter; and the predefined level is expressed by the saturated counter having a minimum value or a maximum value.
8. The data processing apparatus according to claim 6 , wherein the counter comprises a plurality of components; and the predefined level is expressed by a sum of the components being at least a predetermined value.
9. The data processing apparatus according to claim 2 , wherein the control flow prediction update circuit is adapted, when the result of the first control flow instruction differs from the prediction of the first control flow instruction and the result of the second control flow instruction differs from the prediction of the second control flow instruction, to update the prediction of an oldest of the first control flow instruction and the second control flow instruction.
10. The data processing apparatus according to claim 2 , wherein the control flow prediction update circuit is adapted, when the result of the first control flow instruction differs from the prediction of the first control flow instruction and the result of the second control flow instruction corresponds with the prediction of the second control flow instruction, to update the prediction of the first control flow instruction.
11. The data processing apparatus according to claim 2 , wherein the control flow prediction update circuit is adapted, when the result of the first control flow instruction corresponds with the prediction of the first control flow instruction and the result of the second control flow instruction differs from the prediction of the second control flow instruction, to update the prediction of the second instruction.
12. The data processing apparatus according to claim 2 , wherein the control flow prediction update circuit is adapted, when the result of the first control flow instruction corresponds with the prediction of the first control flow instruction and the result of the second control flow instruction corresponds with the prediction of the second control flow instruction, to seek to update the prediction of the second control flow instruction.
13. A system comprising: an execution pipeline divided into a plurality of stages, the execution pipeline comprising the data processing apparatus according to claim 1 , wherein a subset of the plurality of instructions are grouped together into a block; a packet corresponding to the block is passed between at least some of the plurality of stages; and the packet comprises a single bit to indicate whether the subset of the plurality of instructions are to be executed by the high confidence control flow execution circuit.
14. A system according to claim 13 , wherein when at least one of the subset of the plurality of instructions is to be executed by one of the control flow execution circuits other than the high confidence control flow execution circuit, the single bit is set to indicate that the subset of the plurality of instructions are to be executed by one of the control flow execution circuits other than the high confidence control flow execution circuit.
15. A method comprising: simultaneously executing a first control flow instruction having a first type and a second control flow instruction having a second type from a plurality of instructions; and updating at most one of: a prediction of the first control flow instruction based on a result of the first control flow instruction, and a prediction of the second control flow instruction based on a result of the second control flow instruction.
16. A data processing apparatus comprising: means for simultaneously executing a first control flow instruction having a first type and a second control flow instruction having a second type from a plurality of instructions; and means for updating at most one of: a prediction of the first control flow instruction based on a result of the first control flow instruction, and a prediction of the second control flow instruction based on a result of the second control flow instruction.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
September 7, 2018
October 27, 2020
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.