(完整word版)计算机体系结构课后习题原版答案_张晨曦著 下载本文

计算机系统结构

(3) 采用循环开采技术,加快循环的处理; (4) 采用多处理机系统,进一步提高性能。

3.12 有一指令流水线如下所示

入 1 2 3 4 出 50ns 50ns 100ns 200ns

(1) 求连续输入10条指令,该流水线的实际吞吐率和效率; (2) 该流水线的“瓶颈”在哪一段?请采取两种不同的措施消除此“瓶颈”。对于你所给

出的两种新的流水线,连续输入10条指令时,其实际吞吐率和效率各是多少?

解:(1)

Tpipeline???ti?(n?1)?tmaxi?1m?(50?50?100?200)?9?200 ?2200(ns)TP?nTpipeline?1220(ns?1)

E?TP???ti?1mim?TP?4005??45.45% 411(2)瓶颈在3、4段。

? 变成八级流水线(细分)

150ns250ns3_150ns3_250ns4_150ns4_450ns出Tpipeline???ti?(n?1)?tmaxi?1m?50?8?9?50?850(ns)TP?nTpipelinem

?185(ns?1)

E?TP???tii?1m?TP?40010??58.82% 817? 重复设置部件

第 6 页 共 17 页

计算机系统结构

TP?nTpipeline?185(ns?1)

E?400?10

850?8?1017?58.82%

段 4_4 4_3 4_2 4_1 3_2 3_1 2 211432 768 109 8 57 6 3 4 1 109 5 时间 2 3 4 5 6 7 8 9 10 1 1 2 3 4 5 6 7 8 9 10 850ns 3.13有一个流水线由4段组成,其中每当流经第3段时,总要在该段循环一次,然后才能流到第4段。如果每段经过

4-1 一次所需要的时间都是?t,问: 4-2 3-1 (1) 当在流2 1 水线的4-3 3-2 输入端连续地4-4 每?t时

间输入任务时,该流水线会发生什么情况? (2) 此流水线的最大吞吐率为多少?如果每2?t输入一个任务,连续处理10个任务

时的实际吞吐率和效率是多少? (3) 当每段时间不变时,如何提高该流水线的吞吐率?仍连续处理10个任务时,其

吞吐率提高多少?

解:(1)会发生流水线阻塞情况。 第1个任务 第2个任务 第3个任务 第4个任务 S1 S2 S1 S3 S2 S1 S3 stall stall S4 S3 S2 S1 S3 stall stall S4 S3 S2 S3 stall S4 S3 S3 S4

(2)

段 4 2 6 7 3 4 5 8 9 10 3 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 2 5 1 2 3 4 6 7 8 9 10 时间 1 1 2 3 4 5 6 7 8 9 10 23 ? t 1第 7 页 共 17 页

计算机系统结构

TPmax?TpipelineTp?n12?t?23?tTpipeline?1023?t

?E?TP?5?t?50?54.35I2

(3)重复设置部件

Δt 3_1 1 2 4 3_2 Δt Δt Δt Δt

段 4 3_2 3_1 2 1 111 24 34 46 56 68 78 8 9 10 1 1 2 3 245 3 56 5 67 5 78 7 89 7 9 9 1010 9 10 23 34 时间 21014 ?t

TP?nTpipeline?1014??t7?t23?t?57??t

5吞吐率提高倍数=

10=1.64

3.14 有一条静态多功能流水线由5段组成,加法用1、3、4、5段,乘法用1、2、5段,第3段的时间为2△t,其余各段的时间均为△t,而且流水线的输出可以直接返回输入端或 4?) ,画出其时空图,并计暂存于相应的流水寄存器中。现要在该流水线上计算 ( A B i i

i?1算其吞吐率、加速比和效率。

? 1 △t 加法 2△t △t △t 2 △t 3 乘法 4 5

第 8 页 共 17 页

计算机系统结构

解:首先,应选择适合于流水线工作的算法。对于本题,应先计算A1+B1、A2+B2、A3+B3和A4+B4;再计算(A1+B1) ×(A2+B2)和(A3+B3) ×(A4+B4);然后求总的结果。

其次,画出完成该计算的时空图,如图所示,图中阴影部分表示该段在工作。

段 5 4 3 2 1 A B C D A×B C×D A×B×C×D A=A1+B1 B=A2+B2 C=A3+B3 D=A4+B4 输0 1 2 3 入4 5 6 7 8 9 A1 A2 A3 A4 B1 B2 B3 B4 10 11 12 13 14 15 16 17 18 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.6118?t该流水线的效率可由阴影区的面积和5个段总时空区的面积的比值求得: 4 ? ? 53 ? 3E??0.3225?18

3.15 动态多功能流水线由6个功能段组成,如下图:

S1 S2 S3 加法 S4 乘法 S5 S6

其中,S1、S4、S5、S6组成乘法流水线,S1、S2、S3、S6组成加法流水线,各个功能段时间均为50ns,假设该流水线的输出结果可以直接返回输入端,而且设置有足够的缓冲寄存器,若以最快的方式用该流水计算:

?xyziii?15i

(1) 画出时空图; (2) 计算实际的吞吐率、加速比和效率。 解:机器一共要做10次乘法,4次加法。

第 9 页 共 17 页

计算机系统结构

3.18 在CRAY-1机器上,按照链接方式执行下述4条向量指令(括号中给出了相应功能部件的执行时间),如果向量寄存器和功能部件之间的数据传送需要1拍,试求此链接流水线的通过时间是多少拍?如果向量长度为64,则需多少拍才能得到全部结果? V0←存储器 (从存储器中取数:7拍) V2←V0+V1 (向量加:3拍)

V3←V2

解:通过时间就是每条向量指令的第一个操作数执行完毕需要的时间,也就是各功能流水线由空到满的时间,具体过程如下图所示。要得到全部结果,在流水线充满之后,向量中后继操作数继续以流水方式执行,直到整组向量执行完毕。

访存存储器V0V1V2V3V4V5向量加左移向量逻辑乘A3

T通过=(7+1)+(1+3+1)+(1+4+1)+(1+2+1)=23(拍)T总共?T通过+(64-1)=23+63=86(拍)

第4章 指令级并行

第 10 页 共 17 页