< previous page page_478 next page >

Page 478
Table 7.6 Tag id's in a dataflow.
Functional unitTAG id
RegisterR1
(R1R32)R2
Adder reservation stationADD-1
Adder unitADD-0
Multiplier reservation stationMPY-1
Multiplier unitMPY-0
First LD/ST
LD/ST reservation stationLS-1
LD/ST unitLS-0
Second LD/ST
LD/ST reservation stationLS-3
LD/ST unitLS-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:
d87111c01013bcda00bb8640fdff6754.gif
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.

 
< previous page page_478 next page >