计算机体系结构课后习题原版答案 - 张晨曦著 联系客服

发布时间 : 星期六 文章计算机体系结构课后习题原版答案 - 张晨曦著更新完毕开始阅读767ef5669b6648d7c1c746b4

答:细分瓶颈段与重复设置瓶颈段

3.7 减少流水线分支延迟的静态方法有哪些? 答:(1)预测分支失败:沿失败的分支继续处理指令,就好象什么都没发生似的。当确定分支是失败时,说明预测正确,流水线正常流动;当确定分支是成功时,流水线就把在分支指令之后取出的指令转化为空操作,并按分支目标地址重新取指令执行。

(2)预测分支成功:当流水线ID段检测到分支指令后,一旦计算出了分支目标地址,就开始从该目标地址取指令执行。

(3)延迟分支:主要思想是从逻辑上“延长”分支指令的执行时间。把延迟分支看成是由原来的分支指令和若干个延迟槽构成。不管分支是否成功,都要按顺序执行延迟槽中的指令。

3种方法的共同特点:它们对分支的处理方法在程序的执行过程中始终是不变的。它们要么总是预测分支成功,要么总是预测分支失败。

3.8 简述延迟分支方法中的三种调度策略的优缺点。 调度策略 从前调度 从目标处调度 对调度的要求 分支必须不依赖于被调度的指令 对流水线性能改善的影响 总是可以有效提高流水线性能 如果分支转移失败,必须保证被调度的指令对程分支转移成功时,可以提高流水线性能。序的执行没有影响,可能需要复制被调度指令 但由于复制指令,可能加大程序空间 如果分支转移成功,必须保证被调度的指令对程分支转移失败时,可以提高流水线性能 序的执行没有影响 从失败处调度

3.9列举出下面循环中的所有相关,包括输出相关、反相关、真相关。

for (i=2; i<100; i=i+1) a[i]=b[i]+a[i] ;/* s1 */ c[i+1]=a[i]+d[i] ; /* s2 */ a[i-1]=2*b[i] ; /* s3 */

b[i+1]=2*b[i] ;/* s4 */

解:展开循环两次:

a[i] = b[i] + a[i] ; /* s1 */ c[i+1] = a[i] + d[i] ; /* s2 */ a[i-1] = 2 * b[i] ; /* s3 */ b[i+1] = 2 * b[i] ; /* s4 */ a[i+1] = b[i+1] + a[i+1] ; /* s1’ */ c[i+2] = a[i+1] + d[i+1] ; /* s2 ‘*/ a[i] = 2 * b[i+1] ; /* s3 ‘*/ b[i+2] = 2 * b[i+1] ; /* s4 ‘*/ 输出相关:无 反相关:无 真相关:S1&S2

由于循环引入的相关:S4&S4’(真相关)、S1’&S4(真相关)、S3’&S4(真相关)、S1&S3’(输出相关、反相关)、S2&S3’(反相关)。

3.10 简述三种向量处理方式,它们对向量处理机的结构要求有何不同?

答 (1)横向处理方式:若向量长度为N,则水平处理方式相当于执行N次循环。若使用流水线,在每次循环中可能出现数据相关和功能转换,不适合对向量进行流水处理。 (2)纵向处理方式:将整个向量按相同的运算处理完毕之后,再去执行其他运算。适合对向量进

行流水处理,向量运算指令的源/目向量都放在存储器内,使得流水线运算部件的输入、输出端直接与存储器相联,构成M-M型的运算流水线。 (3)纵横处理方式:把长度为N的向量分为若干组,每组长度为n,组内按纵向方式处理,依次处理各组,组数为「N/n」,适合流水处理。可设长度为n的向量寄存器,使每组向量运算的源/目向量都在向量寄存器中,流水线的运算部件输入、输出端与向量寄存器相联,构成R-R型运算流水线。

3.11 可采用哪些方法来提高向量处理机的性能? 答:可采用多种方法:

(1) 设置多个功能部件,使它们并行工作; (2) 采用链接技术,加快一串向量指令的执行; (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?nTpipeline?185(ns?1)

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

TP?nTpipeline?185(ns?1)

E?400?10850?8?1017?58.82%

3.13有一个流水线由4段组成,其中每当流经第3段时,总要在该段循环一次,然后才

段 4_4 4_3 4_2 4_1 3_2 3_1 2 21432 768 109 4-1 8 57 6 3 4 1 10 9 1 2 3 4 5 6 7 3-1 8 9 10 2 1 1 1 2 3 4 5 6 7 8 9 10 3-2 5 4-2 时间 4-3 850ns 4-4 段。如果每段经过要的时间都是?t,

能流到第4一次所需

问:

(1) 当在流水线的输入端连续地每?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 1TPmax?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

吞吐率提高倍数=

510=1.64

3.14 有一条静态多功能流水线由5段组成,加法用1、3、4、5段,乘法用1、2、5段,

第3段的时间为2△t,其余各段的时间均为△t,而且流水线的输出可以直接返回输入端或 4?B) ,画出其时空图,并计暂存于相应的流水寄存器中。现要在该流水线上计算 ( A i i

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

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