|
|
|
| Table 7.6 Tag id's in a dataflow. |
| | Functional unit | TAG id | | Register | R1 | | (R1R32) | R2 | | Adder reservation station | ADD-1 | | Adder unit | ADD-0 | | Multiplier reservation station | MPY-1 | | Multiplier unit | MPY-0 | | First LD/ST | | | LD/ST reservation station | LS-1 | | LD/ST unit | LS-0 | | Second LD/ST | | | LD/ST reservation station | LS-3 | | LD/ST unit | LS-2 |
|
|
|
|
|
|
Study 7.2 Multiple-Issue Dataflow Machine |
|
|
|
|
|
|
|
|
We are given a superscalar machine that can issue four instructions per cycle. The machine uses a dataflow approach to dependency control. A tag is associated with each register, functional unit, and each reservation station for a functional unit. We indicate these tags as, for example, TAG[R1], TAG[ADD-0], TAG[ADD-1] for the R1 tag, the adder tag, and the reservation station for the adder. There are four functional units. Each has a single-level reservation station, and each takes three cycles to complete execution. The tag ids and functional units are shown in Table 7.6. |
|
|
|
|
|
|
|
|
Given the following code: |
|
|
|
 |
|
|
|
|
ADD R1, R2, R3,
ADD R3, R4, R1,
ST ALPHA, R3,
MPY R6, R2, R3
ADD R7, R2, R9
MPY R1, R7, R8
LD R3, BETA
LD R4, GAMMA |
|
|
|
|
|
|
|
|
show the values or the tags in the affected registers, reservation stations, and functional units. |
|
|
|
|
|
|
|
|
1. We show the state of the registers after the first cycle (the first four instructions are compared and issued). V[Ri] indicates the value contained in Ri. |
|
|
|
|
|