Claims
- 1. 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.
- 2. The reservation station according to claim 1, wherein the reservation station includes a plurality of stations.
- 3. The reservation station according to claim 2, wherein:
a first subset of the stations comprises two tag comparators, each of the first subset adapted to compare tags of two respective operands of an instruction in the first subset with tags broadcasted on the result tag bus to determine if the two respective operands of the instruction in the first subset are ready or not; a second subset of the stations, wherein each of the second subset comprises a tag comparator adapted to compare a tag of one of two operands of an instruction in the second subset with the tags broadcasted on the result tag bus; a third subset of the stations, each of the third subset comprising zero tag comparators to compare operands of an instruction in the third subset with tags broadcasted on the result tag bus.
- 4. The registration station according to claim 3, wherein:
the first subset of stations comprises two stations; the second subset of stations comprises four stations; and the third subset of stations comprises eight stations.
- 5. The reservation station according to claim 2, wherein each of the plurality of stations has no more than one tag comparator.
- 6. 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.
- 7. The dynamic scheduler pipeline according to claim 6, wherein the stations comprise:
a first subset of stations, each of the first subset having two tag comparators to compare tags of respective operands in a two operand instruction in the first subset with tags broadcasted on the result tag bus; a second subset of stations, each of the second subset comprising one tag comparator that compares one tag of a two operand instruction in the second subset with tags broadcasted on the result tag bus; and a third subset of stations, each of the third subset comprising no tag comparators.
- 8. The dynamic scheduler pipeline according to claim 7, wherein the allocator is adapted to position an instruction having two unavailable operands in the first subset.
- 9. The dynamic scheduler pipeline according to claim 7, wherein the allocator is adapted to position instructions having one unavailable operand in the second subset or first subset.
- 10. The dynamic scheduler pipeline according to claim 7, wherein the allocator is adapted to position instructions having no unavailable operands in the third subset, second subset or first subset.
- 11. The dynamic scheduler pipeline according to claim 6, wherein each of the stations has no more than one tag comparator.
- 12. The dynamic scheduler pipeline according to claim 11, further comprising:
a last tag predictor adapted to predict which of two operands of a two operand instruction is the last available operand; wherein the allocator is adapted to position the two operand instruction in one of the stations such that a tag of the last available operand is compared with tags broadcasted on the result tag bus by the tag comparator; wherein the allocator is adapted to position the two operand instruction in one of the stations such that a tag of the other of the two operands is not compared with tags broadcasted on the result tag bus by the tag comparator.
- 13. The dynamic scheduler pipeline according to claim 12, further comprising:
multiplexers adapted to position the operands in proper order for execution after the tag comparator determines that the last available operand is available.
- 14. 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.
- 15. The method according to claim 14, wherein the instruction is positioned in a station having only one tag comparator.
- 16. The method according to claim 15, further comprising:
receiving a second instruction having two unavailable operands; positioning the instruction in a second station having two tag comparators; determining when the two unavailable operands become available; requesting permission for executing the second instruction when the two unavailable operands become available.
- 17. 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.
- 18. The method according to claim 17, further comprising validating the prediction step after the second unavailable operand becomes available to ensure that the first unavailable operand is available.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims priority based on U.S. Provisional Patent Application No. 60/370,027 filed Apr. 4, 2002, the entirety of which is incorporated herein by reference.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60370027 |
Apr 2002 |
US |