Patent ID: 8108654

Claim:
A method of scheduling execution of an instruction in a processor having at least one cascaded delayed execution pipeline unit having four or more execution pipelines that execute instructions in a common issue group in a delayed manner relative to each other, the method comprising: receiving an issue group of instructions; implementing a first prioritization scheme for the issue group of instructions using a class type priority by prioritizing classes of instructions in the order of, from highest to lowest priority: load instructions, floating point instructions, ALU instructions, store instructions, compare instructions, branch instructions, and remaining instructions; determining if at least one load instruction is in the issue group and, if so, scheduling the at least one load instruction in a first available pipeline; determining if at least one floating point instruction is in the issue group and, if so, scheduling the floating point instruction in a next available pipeline following the determination of at least one load instruction; determining if at least one ALU instruction is in the issue group and, if so, scheduling the at least one ALU instruction in a next available pipeline following the determination of at least one floating point instruction; implementing a second prioritization scheme for each class of instructions resulting from the first prioritization scheme, in the priority order of the first prioritization scheme, the second prioritization scheme comprising scheduling multiple instructions of the class in a sequential order; forming target dependencies of all instructions and instruction queues; prioritizing the target dependencies in an upper left most of an instruction queue ensemble; determining a number of pipeline bubbles in undelayed pipelines as from the target dependencies; shifting a pipeline number right until the number of pipeline bubbles becomes less than zero; and executing the issue group of instructions in the cascaded delayed execution pipeline unit.