内容发布更新时间 : 2024/11/14 12:45:36星期一 下面是文章的全部内容请认真阅读。
迟槽构成。不管分支是否成功,都要按顺序执行延迟槽中的指令。
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 简述三种向量处理方式,它们对向量处理机的结构要
21
求有何不同?
答 (1)横向处理方式:若向量长度为N,则水平处理方式
相当于执行N次循环。若使用流水线,在每次循环中可能出现数据相关和功能转换,不适合对向量进行流水处理。 (2)纵向处理方式:将整个向量按相同的运算处理完毕之后,再去执行其他运算。适合对向量进行流水处理,向量运算指令的源/目向量都放在存储器内,使得流水线运算部件的输入、输出端直接与存储器相联,构成M-M型的运算流水线。 (3)纵横处理方式:把长度为N的向量分为若干组,每组长度为n,组内按纵向方式处理,依次处理各组,组数为「N/n」,适合流水处理。可设长度为n的向量寄存器,使每组向量运算的源/目向量都在向量寄存器中,流水线的运算部件输入、输出端与向量寄存器相联,构成R-R型运算流水线。
3.11 可采用哪些方法来提高向量处理机的性能? 答:可采用多种方法:
(1) 设置多个功能部件,使它们并行工作; (2) 采用链接技术,加快一串向量指令的执行; (3) 采用循环开采技术,加快循环的处理; (4) 采用多处理机系统,进一步提高性能。
3.12 有一指令流水线如下所示
(1) 求连续输入10条指令,该流水线的实际吞吐率和效率;
(2) 该流水线的“瓶颈”在哪一段?请采取两种不同的措施消除此“瓶颈”。对于你所给出的两种新的流水线,连续输入10条指令时,其实际吞吐率和效率各是多少? 解:(1)
22
入 1 2 3 4 出 50ns 50ns 100ns 200ns mTpipeline???ti?(n?1)?tmaxi?1?(50?50?100?200)?9?200
?2200(ns)TP?nT1?1pipeline?220(ns)
m?tiE?TP??i?1400m?TP?4?511?45.45%
(2)瓶颈在3、4段。 ? 变成八级流水线(细分)
è?123_13_24_14_43?50ns50ns50ns50ns50ns50ns
4mpipeline1 2 34T???ti?(n?1)?tmaxi?1?50?8?9?5034?850(ns)4TP?nT1pipeline?85(ns?1)
E?TP??m?tii?1m?TP?400108?17?58.82%
? 重复设置部件
段 4_4 4 8 4_3 3 7 4_2 2 6 10 4_1 1 5 9
3_2 2 4 6 8 10 3_1 1 3 5 7 9 2 1 2 3 4 5 6 7 8 9 10 1 1 2 3 4 5 6 7 8 9 10 时间 850ns 23
TP?nTpipeline?185(ns?1)
?58.82%E?400?10
3.13有一个流水线由4段组成,其中每当流经第3段时,总要在该段循环一次,然后才能流到第4段。如果每段经过一次所需要的时间都是?t,问:
(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 850?8?1017
(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
TPmax?TpipelineTp?n12?t?23?tTpipeline?1023?t
?E?TP?5?t?50?54.35I2
24
(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??t?57??t
7?t23?t吞吐率提高倍数=
510=1.64
3.14 有一条静态多功能流水线由5段组成,加法用1、3、4、5段,乘法用1、2、5段,第3段的时间为2△t,其余各段的时间均为△t,而且流水线的输出可以直接返回输入端或
(A?B。)现要在该流水线上计暂存于相应的流水寄存?器中
算 ,画出其时空图,并计算其吞吐率、加速比
4iii?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);然后求总的结果。
25