|
|
|
| Table 7.7 Actions in a multiple-issue dataflow. |
| | After Cycle 1 | After Cycle 2 | | Register | R6 has TAG [MPY-1] | Same | | R3 has TAG [ADD-1] | R3 has TAG [LS-3] | | R1 has TAG [ADD-0] | Same | | | R4 has TAG [LS-2] | | Adder RS | TAG [ADD-0], V [R4] | | | Adder unit | V [R2], V [R3] | | | Multiplier RS | V [R2], TAG [ADD-1] | | | 1st LD/ST RS | ADDR [ALPHA], TAG [ADD-1] | | | 2nd LD/ST unit | | ADDR [GAMMA], | | 2nd LD/ST RS | | ADDR [BETA], |
|
 |
|
|
|
|
The following registers now hold tags: |
|
|
|
 |
|
|
|
|
The adder has its operands (V[R2], V[R3]), and the adder reservation station has |
|
|
|
 |
|
|
|
|
TAG[ADD-0], V[R4]. |
|
|
|
 |
|
|
|
|
Note that the adder unit cannot have operand tags, only values. |
|
|
|
 |
|
|
|
|
The first LD/ST reservation station has |
|
|
|
 |
|
|
|
|
ADDR[ALPHA], TAG[ADD-1]. |
|
|
|
 |
|
|
|
|
The multiplier reservation station has |
|
|
|
 |
|
|
|
|
V[R2], TAG[ADD-1]. |
|
|
|
|
|
|
|
|
2. Now we present the state of the register after the second cycle. The next four instructions are compared in Table 7.7. |
|
|
|
 |
|
|
|
|
The following two instructions remain unissued after the second cycle: |
|
|
|
 |
|
|
|
|
ADD R7,R2,R9
MPY R1,R7,R8. |
|
|
|
 |
|
|
|
|
The ADD instruction cannot issue because the add unit and its reservation station are occupied. The MPY instruction cannot issue because it depends on the unissued ADD. |
|
|
|
|
|