Reducing energy and increasing speed by an instruction substituting subsequent instructions with specific function instruction
AssigneeArm Limited
InventorJorn Nystad
Life of this patent
Estimating the term…
Abstract
A data processing system is used to evaluate a data processing function by executing a sequence of program instructions including an intermediate value generating instruction and an intermediate value consuming instruction. In dependence upon one or more input operands to the evaluation, an embedded opcode within the intermediate value passed between the intermediate value generating instruction and the intermediate value consuming instruction may be set to have a value indicating that a substitute instruction should be used in place of the intermediate value consuming instruction. The instructions may be floating point instructions, such as a floating point power instruction evaluating the data processing function ab.
Claims17
Apparatus for processing data comprising:
- data processing circuitry configured to execute data processing operations specified by program instructions;
- and
- instruction decoder circuitry configured to decode program instructions to generate control signals for controlling said data processing circuitry to execute said data processing operations specified by said program instructions;
- wherein
- said instruction decoder circuitry and said data processing circuitry are configured to decode and to execute a sequence of program instructions to evaluate a data processing function;
- said sequence of program instructions includes an intermediate value generating instruction, decoding of said intermediate value generating instruction by said instruction decoding circuitry, and execution of said intermediate value generating instruction by said data processing circuitry generating an intermediate value including an intermediate data value and an embedded opcode value;
- said sequence of program instructions includes, after said intermediate value generating instruction, an intermediate value consuming instruction for consuming said intermediate value;
- and
- said instruction decoder circuitry and said data processing circuitry are configured to operate in dependence upon said embedded opcode value to follow one of a first execution path and a second execution path:
- (i) said first execution path comprising completing evaluation of said data processing function using said intermediate value consuming instruction;
- and
- (ii) said second execution path comprising substituting a substitute instruction in place of said intermediate value consuming instruction and executing said substitute instruction to evaluate said data processing function instead of said sequence of program instructions.
Apparatus for processing data comprising:
- data processing means for executing data processing operations specified by program instructions;
- and
- instruction decoder means for decoding program instructions to generate control signals for controlling said data processing means;
- wherein
- said instruction decoder means and said data processing means decode and execute a sequence of program instructions to evaluate a data processing function;
- said sequence of program instructions includes an intermediate value generating instruction, decoding of said intermediate value generating instruction by said instruction decoder means, and execution of said intermediate value generating instruction by said data processing means generating an intermediate value including an intermediate data value and an embedded opcode value;
- said sequence of program instructions includes, after said intermediate value generating instruction, an intermediate value consuming instruction for consuming said intermediate value;
- said instruction decoder means and said data processing means operate in dependence upon said embedded opcode value to follow one of a first execution path and a second execution path:
- (i) said first execution path comprising completing evaluation of said data processing function using said intermediate value consuming instruction;
- and
- (ii) said second execution path comprising substituting a substitute instruction in place of said intermediate value consuming instruction and executing said substitute instruction to evaluate said data processing function instead of said sequence of program instructions.
A method of processing data comprising the steps of:
- decoding and executing a sequence of program instructions to evaluate a data processing function, wherein
- said sequence of program instructions includes an intermediate value generating instruction, decoding and execution of said intermediate value generating instruction generating an intermediate value including an intermediate data value and an embedded opcode value;
- said sequence of program instructions includes, after said intermediate value generating instruction, an intermediate value consuming instruction for consuming said intermediate value;
- said steps of decoding and executing operate in dependence upon said embedded opcode value to follow one of a first execution path and a second execution path:
- (i) said first execution path comprising completing evaluation of said data processing function using said intermediate value consuming instruction;
- and
- (ii) said second execution path comprising substituting a substitute instruction in place of said intermediate value consuming instruction and executing said substitute instruction to evaluate said data processing function instead of said sequence of program instructions.
Dependencies are inferred from the claim text.