Claims
- 1. An apparatus comprising:
a first schedule window; a second schedule window coupled to the first schedule window, the first schedule window being larger than the second schedule window; a first unit to schedule a first instruction stored in the first schedule window without the first instruction being stored in the second schedule window before being scheduled.
- 2. The apparatus of claim 1 comprising a second unit to schedule a second instruction stored in the second schedule window that is able to schedule instructions faster than the first unit to schedule.
- 3. The apparatus of claim 1 further comprising:
a first execution cluster coupled to the first schedule window; a second execution cluster coupled to the second schedule window.
- 4. The apparatus of claim 3 wherein said first execution cluster comprises execution units to execute latency-tolerant instructions and the second execution cluster comprises execution units to execute latency-critical instructions.
- 5. The apparatus of claim 4 further comprising a register file coupled to the first and second scheduling windows, the register file comprising source data to be read by the latency-tolerant and latency-critical instructions.
- 6. The apparatus of claim 2 comprising a bypass path to provide source operands corresponding to instructions stored in the second scheduling window without reading the source operands from the register file.
- 7. The apparatus of claim 1 further comprising a plurality of first schedule windows and a plurality of second schedule windows coupled in a hierarchical topology so as to facilitate scheduling of instructions of different schedule latency tolerance.
- 8. A system comprising:
a memory unit, the memory unit comprising a latency-tolerant instruction and a latency-intolerant instruction; a processor to fetch the latency-tolerant instruction from the memory unit before fetching the latency-intolerant instruction and to output a result of executing the latency-intolerant instruction before a result of executing the latency-tolerant instruction.
- 9. The system of claim 8 wherein the processor schedules the latency-tolerant and latency-intolerant instructions for execution in an order that is based upon a relative latency tolerance heuristic of the latency-intolerant and latency-tolerant instructions.
- 10. The system of claim 9 wherein the processor comprises a first scheduling window to store the latency-tolerant instruction and the latency-intolerant instruction.
- 11. The system of claim 10 wherein the processor comprises a second scheduling window to store the latency-intolerant instruction, the second scheduling window being smaller than the first scheduling window.
- 12. The system of claim 11 wherein the processor comprises a first execution cluster to execute the latency-tolerant instruction and a second execution cluster to execute the latency-intolerant instruction.
- 13. The system of claim 12 wherein the first scheduling window and the second scheduling window form a scheduling window hierarchy to optimize instruction scheduling latency and scheduling window size.
- 14. The system of claim 8 wherein the relative latency tolerance heuristic determines whether execution of an instruction can be delayed without effecting performance of the system.
- 15. The system of claim 13 wherein the relative latency tolerance heuristic is determined by an amount of time an instruction has remained stored in the first scheduling window.
- 16. The system of claim 15 wherein the processor comprises an execution unit to receive the latency-tolerant instruction from the first scheduling window without the latency-tolerant instruction first being stored in the second scheduling window.
- 17. A method comprising:
fetching a first instruction and a second instruction from a memory; determining the scheduling latency-tolerance of the first and second instructions; executing the first instruction before the second instruction if the first instruction is less tolerant of scheduling latency than the second instruction; executing the second instruction before the first instruction if it is less tolerant of scheduling latency than the first instruction.
- 18. The method of claim 17 further comprising storing the first and second instruction in a larger of two scheduling windows.
- 19. The method of claim 18 further comprising moving at least one of the first and second instructions to a smaller of the two scheduling windows if the at least one of the first and second instructions is intolerant of scheduling latency.
- 20. The method of claim 19 further comprising scheduling instructions stored in the larger of the two scheduling windows with a first scheduler;
scheduling instructions stored in the smaller of the two scheduling windows with a second scheduler, the second scheduler being a faster scheduler than the first scheduler.
- 21. The method of claim 20 further comprising executing instructions scheduled by the first scheduler with a first execution unit;
executing instructions scheduled by the second scheduler with a second execution unit, the second execution unit being faster than the first execution unit.
- 22. The method of claim 21 wherein the first instruction is latency-tolerant and the second instruction is latency-intolerant.
- 23. The method of claim 22 wherein the first instruction receives source data from a register file.
- 24. The method of claim 23 wherein the second instruction receives source data from a data bypass mechanism that provides source data to the second instruction before the data is stored in the register file.
- 25. A machine-readable medium having stored thereon a set of instructions, which when executed by a machine cause the machine to perform a method comprising:
fetching a plurality of instructions; organizing the plurality of instructions according to scheduling latency tolerance of each of the plurality of instructions, the organizing comprising storing latency-tolerant instructions in a first scheduling window and storing latency-intolerant instructions in at least a second scheduling window, the first scheduling window being larger than the at least second scheduling window; scheduling the plurality of instructions for execution according to scheduling latency tolerance of the plurality of instructions, the latency-tolerant instructions being scheduled at a slower rate than the latency-intolerant instructions; executing the plurality of instructions according to schedule latency tolerance of the plurality of instructions, the latency-tolerant instructions being executed at a slower rate than the latency-intolerant instructions.
- 26. The machine-readable medium of claim 25 wherein the latency-tolerant instructions are scheduled without being first stored in the at least second scheduling window.
- 27. The machine-readable medium of claim 25 wherein the latency-tolerant instructions are stored in a first plurality of scheduling windows and the latency-intolerant instructions are stored in a second plurality of scheduling windows, the first plurality of scheduling windows being larger than the second plurality of scheduling windows.
- 28. The machine readable medium of claim 25 wherein the plurality of instructions are executed by a plurality of execution clusters according to a plurality of execution speed of each of the plurality of execution clusters.
- 29. An apparatus comprising:
first means for grouping a plurality of latency-tolerant instructions together; second means for grouping a plurality of latency-intolerant instructions together, the latency-intolerant instructions being fewer in number than the latency-tolerant instructions; first means for scheduling the plurality of latency-tolerant instructions without the plurality of latency-tolerant instructions being first grouped by said second means for grouping; second means for scheduling the plurality of latency-intolerant instructions, the first means for scheduling the plurality of latency-tolerant instructions being a slower means than the second means for scheduling the plurality of latency-tolerant instructions; first means for providing source data to the latency-tolerant instructions; second means for providing source data to the latency-intolerant instructions; first means for executing the latency-tolerant instructions; second means for executing the latency-intolerant instructions, the second means for executing the latency-intolerant instructions being a faster means than the first means for executing the latency-tolerant instructions.
- 30. The apparatus of claim 29 wherein the first means for grouping and the second means for grouping are hierarchical scheduling windows.
Parent Case Info
[0001] The present application is a continuation-in-part of application No. 10/261,578, filed Sep. 30, 2002, and claims priority to the same under 35 U.S.C. § 120.
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
10261578 |
Sep 2002 |
US |
Child |
10354360 |
Jan 2003 |
US |