Method for optimizing instruction scheduling for a processor having multiple functional resources
First Claim
1. In a computer that compiles or assembles a source code program to produce object code instructions, an improved method of scheduling instructions in a basic instruction block for execution, the method comprising the steps of:
- identifying a leader set of instructions as being those instructions without resource dependencies from other instructions within the basic instruction block;
identifying a read set as those instructions in the leader set that would execute without interlock interruption if issued immediately based upon a simulation of the execution of those instructions in the leader set for all combinations of the available functional units in the target computer; and
issuing the instruction in the ready set with the highest cumulative pendency cost, wherein the cumulative pendency cost represents the cost of not issuing the instruction in terms of how many other instruction depend upon this instruction issuing.
9 Assignments
0 Petitions
Accused Products
Abstract
A method for scheduling instructions for a processor having multiple functional resources wherein the reordering of the instructions is accomplished in response to a simulation of the run-time environment of the target machine. The simulation of the run-time environment of the target machine is performed at compile time after the machine instructions have been generated by a compiler, or after instruction generation by an assembler. The present invention rearranges the machine instructions for a basic block of instructions into an order that will result in the fastest execution based upon the results of the simulation of the interaction of the multiple functional resources in the target machine.
112 Citations
3 Claims
-
1. In a computer that compiles or assembles a source code program to produce object code instructions, an improved method of scheduling instructions in a basic instruction block for execution, the method comprising the steps of:
-
identifying a leader set of instructions as being those instructions without resource dependencies from other instructions within the basic instruction block; identifying a read set as those instructions in the leader set that would execute without interlock interruption if issued immediately based upon a simulation of the execution of those instructions in the leader set for all combinations of the available functional units in the target computer; and issuing the instruction in the ready set with the highest cumulative pendency cost, wherein the cumulative pendency cost represents the cost of not issuing the instruction in terms of how many other instruction depend upon this instruction issuing.
-
-
2. In a computer that compiles or assembles a source code program to produces object code instructions, an improved method of scheduling instructions in a basic instruction block for execution, the method comprising the steps of:
-
identifying a leader set of instructions as being those instructions without resource dependencies from other instructions within the basic instruction block; simulating a completion time for each instruction in the basic block, wherein the completion time for each instruction is based upon immediate issue of the instruction; determining a desired issue time for each instruction in the leader set, wherein the desired issue time is the latest point in time at which the instruction can be issued and still complete by the completion time; identifying a ready set of instructions as being those instructions in the leader set whose desired issue time is immediately or earlier; and issuing the instruction in the ready set with the highest cumulative pendency cost, wherein the cumulative pendency cost represents the cost of not issuing the instruction in terms of how many other instruction depend upon this instruction issuing.
-
-
3. In a computer that compiles or assembles a source code program to produces object code instructions, as part of a method for scheduling a ready set of instructions comprising the steps of:
-
identifying a leader set of instructions as being those instructions without resource dependencies from other instructions within the basic instruction block; predicting instruction completion time for each instruction in the leader set based upon a simulation of the execution of each instruction in the leader set for all combinations of the available functional units in the target computer; determining a desired issue time for each instruction in the leader set, wherein the desired issue time is the latest point in time at which the instruction can be issued and still complete by the predicted completion time; and identifying a ready set of instructions as being those instructions in the leader set whose desired issue time is immediately or earlier.
-
Specification