Recording performance metrics to predict future execution of large instruction sequences on either high or low performance execution circuitry
First Claim
1. Apparatus for processing data under control of program instructions, said apparatus comprising:
- first execution circuitry configured to execute program instructions;
second execution circuitry configured to execute said program instructions, said second execution circuitry having a lower energy consumption when executing said program instruction than said first execution circuitry, and said second execution circuitry requiring a longer time to execute said program instructions than said first execution circuitry; and
control circuitry configured to control whether said program instructions are executed by said first execution circuitry or said second execution circuitry, whereinsaid control circuitry comprises prediction circuitry configured;
(i) to predict a predicted identity of a next sequence of program instructions to be executed in dependence upon a most recently executed sequence of program instructions; and
(ii) in dependence upon said predicted identity, to predict a predicted execution target corresponding to whether said next sequence of program instructions should be executed with said first execution circuitry or said second execution circuitry; and
said control circuitry is configured to select either said first execution circuitry or said second execution circuitry to execute said next sequence of program instructions in dependence upon said predicted execution target.
1 Assignment
0 Petitions
Accused Products
Abstract
An apparatus for processing data includes first execution circuitry, such as an out-of-order processor, and second execution circuitry, such as an in-order processor. The first execution circuitry is of higher performance but uses more energy than the second execution circuitry. Control circuitry switches between the first execution circuitry being active and the second execution circuitry being active. The control circuitry includes prediction circuitry which is configured to predict a predicted identity of a next sequence of program instructions to be executed in dependence upon a most recently executed sequence of program instructions and then in dependence upon this predicted identity to predict a predicted execution target corresponding to whether the next sequence of program instructions should be executed by the first execution circuitry or the second execution circuitry.
16 Citations
20 Claims
-
1. Apparatus for processing data under control of program instructions, said apparatus comprising:
-
first execution circuitry configured to execute program instructions; second execution circuitry configured to execute said program instructions, said second execution circuitry having a lower energy consumption when executing said program instruction than said first execution circuitry, and said second execution circuitry requiring a longer time to execute said program instructions than said first execution circuitry; and control circuitry configured to control whether said program instructions are executed by said first execution circuitry or said second execution circuitry, wherein said control circuitry comprises prediction circuitry configured; (i) to predict a predicted identity of a next sequence of program instructions to be executed in dependence upon a most recently executed sequence of program instructions; and (ii) in dependence upon said predicted identity, to predict a predicted execution target corresponding to whether said next sequence of program instructions should be executed with said first execution circuitry or said second execution circuitry; and said control circuitry is configured to select either said first execution circuitry or said second execution circuitry to execute said next sequence of program instructions in dependence upon said predicted execution target. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. Apparatus for processing data under control of program instructions, said apparatus comprising:
-
first execution means for executing program instructions; second execution means for executing said program instructions, said second execution means having a lower energy consumption when executing said program instruction than said first execution means, and said second execution means requiring a longer time to execute said program instructions than said first execution means; and control means for controlling whether said program instructions are executed by said first execution means or said second execution means, wherein said control means comprises prediction means for; (i) predicting a predicted identity of a next sequence of program instructions to be executed in dependence upon a most recently executed sequence of program instructions; and (ii) in dependence upon said predicted identity, predicting a predicted execution target corresponding to whether said next sequence of program instructions should be executed with said first execution means or said second execution means; and said control means selects either said first execution means or said second execution means to execute said next sequence of program instructions in dependence upon said predicted execution target.
-
-
20. A method of processing data under control of program instructions, said method comprising the steps of:
-
executing program instructions with first execution circuitry; executing said program instructions with second execution circuitry, said second execution circuitry having a lower energy consumption when executing said program instruction than said first execution circuitry, and said second execution circuitry requiring a longer time to execute said program instructions than said first execution circuitry; and controlling whether said program instructions are executed by said first execution means or said second execution means, wherein said step of controlling comprises; (i) predicting a predicted identity of a next sequence of program instructions to be executed in dependence upon a most recently executed sequence of program instructions; and (ii) in dependence upon said predicted identity, predicting a predicted execution target corresponding to whether said next sequence of program instructions should be executed with said first execution circuitry or said second execution circuitry; and (iii) selecting either said first execution circuitry or said second execution circuitry to execute said next sequence of program instructions in dependence upon said predicted execution target.
-
Specification