US5519864A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Method and apparatus for scheduling the dispatch of instructions from a reservation station
Assignee: Intel Corp
•
Filing: 1993-12-27
•
Granted: 1996-05-21
•
Expires: 2013-12-27
Abstract
Abstract Entries in a reservation station are efficiently scanned to find data-ready instructions for dispatch. A pseudo-FIFO scheduling approach is implemented wherein, rather than scanning every entry in the reservation station, the reservation station is segmented into groups of entries with each entry being scanned to determine which has the oldest entry in it. It is from the group of entries having the oldest entry that a ready pointer is cycled to search for data-ready instructions for dispatch to waiting execution units.
Inventors
- 👤 Robert W. Martell
- 👤 Glenn J. Hinton
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-11-02 15:22
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/38; G06F9/3854; G06F9/3856; G06F9/3836; G06F9/3858
Claims Analysis
Total Claims: 28
Claim 1
Independent Claim
160 words
An apparatus for scheduling the dispatch of instructions to a plurality of execution units within a microprocessor comprising: a reservation station memory array for storing data-dependent instructions until the data dependencies are resolved, wherein said data-dependent instructions are converted to data-ready instructions; a plurality of dispatch ports for coupling said reservation station memory array to each of said plurality of execution units, respectively; reservation station scheduling logic for controlling the dispatch of data-ready instructions from said reservation station memory array to said plurality of execution units; and ready bit logic coupled to said reservation station memory array and to said plurality of execution units for providing ready bit signals to said reservation station scheduling logic indicating when stored instructions are data-ready and identifying execution unit availability, wherein said reservation station scheduling logic sequentially scans through said reservation memory array triggering the dispatch of instructions for which said ready bit logic identified as being data-ready and having an available execution unit.
Claim 2
Independent Claim
160 words
An apparatus for scheduling the dispatch of instructions to a plurality of execution units within a microprocessor comprising: a reservation station memory array for storing data-dependent instructions until the data dependencies are resolved, wherein said data-dependent instructions are converted to data-ready instructions; a plurality of dispatch ports for coupling said reservation station memory array to each of said plurality of execution units, respectively; reservation station scheduling logic for controlling the dispatch of data-ready instructions from said reservation station memory array to said plurality of execution units; and ready bit logic coupled to said reservation station memory array and to said plurality of execution units for providing ready bit signals to said reservation station scheduling logic indicating when stored instructions are data-ready and identifying execution unit availability, wherein said reservation station scheduling logic sequentially scans through said reservation memory array triggering the dispatch of instructions for which said ready bit logic identified as being data-ready and having an available execution unit.
Claim 3
Dependent Claim
19 words
The apparatus of claim 1 further comprising means for tracking the age of an instruction in said reservation station.
Claim 4
Dependent Claim
35 words
The apparatus of claim 2 wherein said age tracking means comprises an age field associated and stored with each entry in said reservation station memory array, said age field being incremented upon a predetermined condition.
Claim 5
Dependent Claim
57 words
The apparatus of claim 3 wherein said scheduling logic comprises means for determining which group of N entries in the reservation station memory array contains the entry with the age field having the highest value, said reservation station scheduling logic beginning said sequential scan at the boundary of the group of N entries having the oldest entry.
Claim 6
Dependent Claim
29 words
The apparatus of claim 4 wherein said scheduling logic comprises a plurality of schedulers each, respectively, for scheduling data-ready instruction dispatch through one of said plurality of dispatch ports.
Claim 7
Dependent Claim
25 words
The apparatus of claim 5 wherein said plurality of schedulers are coupled together to provide for dynamic scheduling of data-ready instructions through multiple dispatch ports.
Claim 8
Dependent Claim
15 words
The apparatus of claim 4 wherein said group of N entries comprises four (4) entries.
Claim 9
Dependent Claim
22 words
The apparatus of claim 3 wherein said predetermined condition is the writing of a new entry into said reservation station memory array.
Claim 10
Dependent Claim
22 words
The apparatus of claim 3 wherein said predetermined condition is the writing of a branch instruction into said reservation station memory array.
Claim 11
Dependent Claim
26 words
The apparatus of claim 2 wherein said age tracking means comprises a plurality of counters, each associated with one entry in said reservation station memory array.
Claim 12
Dependent Claim
28 words
The apparatus of claim 2 wherein said age tracking means comprises a plurality of counters, each associated with a group of entries in said reservation station memory array.
Claim 13
Dependent Claim
30 words
The apparatus of claim 2 wherein said age tracking means is an external counter which writes its count value into said array when an entry is written into said array.
Claim 14
Dependent Claim
227 words
A computer system comprising: an input/output (I/O) means for providing a communications interface; a memory means coupled to said I/O means for storing instructions and computer data; data input means coupled to said I/O means for providing data input and data output to interface with a computer user; and microprocessor means coupled to said I/O means for executing instructions and processing computer data, said microprocessor means further comprising an apparatus for scheduling the dispatch of instructions to a plurality of execution units, said scheduling apparatus comprising: a reservation station memory array for storing data-dependent instructions until the data dependencies are resolved, wherein said data-dependent-instructions are converted to data-ready instructions; a plurality of dispatch ports for coupling said reservation station memory array to each of said plurality of execution units, respectively; reservation station scheduling logic for controlling the dispatch of data-ready instructions from said reservation station memory array to said plurality of execution units; and ready bit logic coupled to said reservation station memory array and to said plurality of execution units for providing ready bit signals to said reservation station scheduling logic indicating when stored instructions are data-ready and identifying execution unit availability, wherein said reservation station scheduling logic sequentially scans through said reservation memory array triggering the dispatch of instructions for which said ready bit logic identified as being data-ready and having an available execution unit.
Claim 15
Dependent Claim
227 words
A computer system comprising: an input/output (I/O) means for providing a communications interface; a memory means coupled to said I/O means for storing instructions and computer data; data input means coupled to said I/O means for providing data input and data output to interface with a computer user; and microprocessor means coupled to said I/O means for executing instructions and processing computer data, said microprocessor means further comprising an apparatus for scheduling the dispatch of instructions to a plurality of execution units, said scheduling apparatus comprising: a reservation station memory array for storing data-dependent instructions until the data dependencies are resolved, wherein said data-dependent-instructions are converted to data-ready instructions; a plurality of dispatch ports for coupling said reservation station memory array to each of said plurality of execution units, respectively; reservation station scheduling logic for controlling the dispatch of data-ready instructions from said reservation station memory array to said plurality of execution units; and ready bit logic coupled to said reservation station memory array and to said plurality of execution units for providing ready bit signals to said reservation station scheduling logic indicating when stored instructions are data-ready and identifying execution unit availability, wherein said reservation station scheduling logic sequentially scans through said reservation memory array triggering the dispatch of instructions for which said ready bit logic identified as being data-ready and having an available execution unit.
Claim 16
Dependent Claim
19 words
The apparatus of claim 13 further comprising means for tracking the age of an instruction in said reservation station.
Claim 17
Dependent Claim
35 words
The apparatus of claim 14 wherein said age tracking means comprises an age field associated and stored with each entry in said reservation station memory array, said age field being incremented upon a predetermined condition.
Claim 18
Dependent Claim
22 words
The apparatus of claim 15 wherein said predetermined condition is the writing of a new entry into said reservation station memory array.
Claim 19
Dependent Claim
22 words
The apparatus of claim 15 wherein said predetermined condition is the writing of a branch instruction into said reservation station memory array.
Claim 20
Dependent Claim
57 words
The apparatus of claim 15 wherein said scheduling logic comprises means for determining which group of N entries in the reservation station memory array contains the entry with the age field having the oldest value, said reservation station scheduling logic beginning said sequential scan at the boundary of the group of N entries having the oldest entry.
Claim 21
Dependent Claim
26 words
The apparatus of claim 14 wherein said age tracking means comprises a plurality of counters, each associated with one entry in said reservation station memory array.
Claim 22
Dependent Claim
28 words
The apparatus of claim 14 wherein said age tracking means comprises a plurality of counters, each associated with a group of entries in said reservation station memory array.
Claim 23
Independent Claim
157 words
A method of scheduling the dispatch of resource-ready instructions from a reservation station, said reservation station being coupled to a plurality of functional units for receiving and executing resource-ready instructions, said reservation station comprising a memory array for maintaining a plurality of entries of microprocessor instructions wherein when all data and functional unit dependencies for a given instruction entry are satisfied said instruction is considered resource-ready, said method comprising the steps of: maintaining age information concerning entries in said reservation station memory array for indicating the length of time since a given instruction had been written into said reservation station; finding the oldest entry in said reservation station; sequentially scanning said reservation station memory array to find the first resource-ready instruction following said oldest entry if said oldest entry is not resource ready; dispatching said first resource-ready instruction following said oldest entry to its designated functional unit; and deallocating the reservation station entry for the dispatched instruction.
Claim 24
Independent Claim
157 words
A method of scheduling the dispatch of resource-ready instructions from a reservation station, said reservation station being coupled to a plurality of functional units for receiving and executing resource-ready instructions, said reservation station comprising a memory array for maintaining a plurality of entries of microprocessor instructions wherein when all data and functional unit dependencies for a given instruction entry are satisfied said instruction is considered resource-ready, said method comprising the steps of: maintaining age information concerning entries in said reservation station memory array for indicating the length of time since a given instruction had been written into said reservation station; finding the oldest entry in said reservation station; sequentially scanning said reservation station memory array to find the first resource-ready instruction following said oldest entry if said oldest entry is not resource ready; dispatching said first resource-ready instruction following said oldest entry to its designated functional unit; and deallocating the reservation station entry for the dispatched instruction.
Claim 25
Dependent Claim
58 words
The method of claim 21 where in said finding step comprises the steps of: grouping said reservation station entries into N groups of entries; and broadcasting from each of said N groups the age of the oldest entry in the group, said sequential scanning step then beginning at the beginning of group of entries having the oldest entry.
Claim 26
Dependent Claim
34 words
The method of claim 21 further comprising the step of incrementing the age of all previously written entries in the reservation station when a new entry is written to the reservation station memory array.
Claim 27
Dependent Claim
32 words
The method of claim 21 further comprising the step of incrementing the age of all entries in the reservation station when a branch instruction is written into the reservation station memory array.
Claim 28
Dependent Claim
32 words
The method of claim 21 further comprising the step of setting the age field of an entry in said reservation station to a predetermined value to affect the priority of said entry.
References Cited (Backward Citations)
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 1999-05-21 | 1999-11-20 | 2000-05-21 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2003-05-21 | 2003-11-20 | 2004-05-21 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2007-05-21 | 2007-11-20 | 2008-05-21 | $7700.00 | Window Closed / Lapsed |