解:首先,应选择适合于流水线工作的算法。对于本题,应先计算A1+B1、A2+B2、A3+B3和A4+B4;再计算(A1+B1) ×(A2+B2)和(A3+B3) ×(A4+B4);然后求总的结果。
其次,画出完成该计算的时空图,如图所示,图中阴影部分表示该段在工作。
段
输 入
A1 A2 A3 A4 B1 B2 B3 B4
A×B A C
B D
C×D
时间
由图可见,它在18个△t时间中,给出了7个结果。所以吞吐率为:
7
TP
18 t
如果不用流水线,由于一次求积需3△t,一次求和需5△t,则产生上述7个结果共需(4×5+3×3)△t =29△t。所以加速比为:
2 9 t
S 1.61
18 t
该流水线的效率可由阴影区的面积和5个段总时空区的面积的比值求得: 4 5 3 3
E 0.322
5 18
3.15 动态多功能流水线由6个功能段组成,如下图:
加法
乘法
其中,S1、S4、S5、S6组成乘法流水线,S1、S2、S3、S6组成加法流水线,各个功能段时间均为50ns,假设该流水线的输出结果可以直接返回输入端,而且设置有足够的缓冲寄存器,若以最快的方式用该流水计算:
xyz
ii 1
5
ii
(1) 画出时空图; (2) 计算实际的吞吐率、加速比和效率。 解:机器一共要做10次乘法,4次加法。