Technique for reduced-tag dynamic scheduling
AssigneeThe Regents of the University of Michigan
InventorsDaniel J. Ernst, Todd M. Austin
Life of this patent
Estimating the term…
Abstract
The present invention provides a dynamic scheduling scheme that uses reservation stations having at least one station that stores an at least two operand instruction. An allocator portion determines that the instruction, entering the pipeline, has one ready operand and one not-ready operand, and accordingly places it in a station having only one comparator. The one comparator then compares the not-ready operand with tags broadcasted on a result tag bus to determine when the not-ready operand becomes ready. Once ready, execution is requested to the corresponding functional unit.
Claims18
A reservation station comprising:
- at least a first station adapted to maintain an instruction having at least two operands;
- one tag comparator adapted to communicate with a result tag bus and one of the two operands to determine whether the one of the two operands is available or not.
A dynamic scheduler pipeline comprising:
- a reservation station having a plurality of stations for storing instructions;
- an allocator that positions instructions into the stations;
- wherein at least one of the stations has less than two tag comparators for comparing an operand of an at least two operand instruction with tags broadcasted on a result tag bus.
A method for scheduling instructions for execution, comprising:
- receiving an instruction having a first operand and a second operand, wherein the second operand is available and the first operand is unavailable.
- positioning the instruction in a station of a reservation station;
- comparing a tag of the first operand with tags broadcasted on a result tag bus to determine when the first operand is available;
- not comparing a tag of the second operand with the tags broadcasted on the result tag bus;
- and
- requesting permission for execution of the instruction when the first operand is determined to be available.
A method for scheduling an instruction for execution, comprising:
- receiving an instruction having a first unavailable operand and a second unavailable operand;
- predicting that the second unavailable operand will become available after the first unavailable operand;
- positioning the instruction in a station having one tag comparator such that only the second unavailable operand is compared to tags broadcasted on a result tag bus by a tag comparator;
- executing the instruction when the tag comparator determines that the second unavailable operand is available.
Dependencies are inferred from the claim text.