< previous page page_475 next page >

Page 475
0475-01.gif
Figure 7.39
Improved control flow.
1. Decoder issues instruction to proper functional unit reservation station with values if available otherwise with register tag.
2. Destination register (specified by instruction) gets functional unit tag. A register tag can be overwritten in dataflow, but not in control flow (see following).
3. Continue issue until a type of reservation station is FULL. Unissued instructions are held PENDING.
4. By the basic sequencing mechanism (dataflow or otherwise), issued instructions observe essential dependencies (at least).
5. But any instruction that depends on an unissued or pending instruction (in any way: essential, ordinary, etc.) must also be held in a pending state.
7.6.6 An Improved Scoreboard
We can summarize the above by describing an improved scoreboard using value-holding reservation stations. Each register has a tag indicating the functional unit upon which it depends for a result. Each functional unit has one or more reservation stations (Figure 7.39). Each reservation station contains information about a pending instruction. If an instruction's source registers have valid data, then the instruction is issued to the functional unit (if it is available). In any event, the functional unit's tag is placed in the destination register. No entry need be made to the reservation station except to note when the functional unit is busy.
Since values are stored in reservation stations, no ordering or output dependency can occur with instructions that were previously issued. Output dependencies (if recognized) are detected by the presence of a tag at the

 
< previous page page_475 next page >