< previous page page_469 next page >

Page 469
0469-01.gif
Figure 7.35
A scoreboard. (a) The tag identifies a functional
unit that must read from, or write to, the register.
(b) R/W indicates (if both read and write tags have
entries) which action must occur first.
0469-02.gif
Figure 7.36
Reservation stations contain
instructions pending entry into
functional units.
d87111c01013bcda00bb8640fdff6754.gif
ADD R1, R2, R3
MPY R4, R1, R3
the ADD instruction is issued to the adder on the first cycle, with an ''adder" tag going to the write R1 scoreboard. The MPY instruction is issued on the next cycle to the multiply unit with an "adder" tag for its first source operand. On the cycle before the adder completes its operation, it broadcasts that a result will be produced on the next cycle. This allows both R1 and the multiplier unit to ingate the proper value.
For ordering and output dependencies, the control unit may issue the instruction but not allow the result to broadcast until the proper sequential use of the registers can be assured. Thus, for the instructions:
d87111c01013bcda00bb8640fdff6754.gif
MPY R1, R2, R3
ADD R2, R5, R3
the result of the ADD instruction cannot be broadcast until the multiplier has begun using the R2 value. If the MPY were delayed in beginning execution, the scoreboard for R2 and R3 would contain MPY read tags.
The scoreboard keeps track of all instructions in execution, and it ensures that the three dependency requirements are honored by correctly scheduling instructions into the functional unit. Consider the following sequence (Figure 7.37):
d87111c01013bcda00bb8640fdff6754.gif
DIV.F R3, R1, R2
MPY.F R5, R3, R4
ADD.F R4, R6, R7.

 
< previous page page_469 next page >