c[i+1]=a[i]+d[i] ; /* s2 */ ; /* s3 */ ;/* s4 */ ; /* s1 */ ; /* s2 */ ; /* s3 */ ; /* s4 */ ; /* s1’ */ ; /* s2 ‘*/ ; /* s3 ‘*/
a[i-1]=2*b[i] b[i+1]=2*b[i]
解:展开循环两次:
a[i] = b[i] + a[i] c[i+1] = a[i] + d[i] a[i-1] = 2 * b[i] b[i+1] = 2 * b[i]
a[i+1] = b[i+1] + a[i+1] c[i+2] = a[i+1] + d[i+1] a[i] = 2 * b[i+1]
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) 采用多处理机系统,进一步提高性能。
17
入 1 2 3 4 出 3.12 有一指令流水线如下所示
50ns 50ns 100ns 200ns (1) 求连续输入10条指令,该流水线的实际吞吐率和效率;
(2) 该流水线的“瓶颈”在哪一段?请采取两种不同的措施消除此“瓶颈”。对于你
所给出的两种新的流水线,连续输入10条指令时,其实际吞吐率和效率各是多少? 解:(1) mTpipeline???ti?(n?1)?tmax
i?1 ?(50?50?100?200)?9?200 ?2200(ns)
TP?nTpipeline?1i220(ns?1)E?TP???ti?1mm?TP?4005??45.45A1(3) 瓶颈在3、4段。
? 变成八级流水线(细分)
入
150ns250ns3_150ns3_250ns4_150ns4_450ns出TP?nTpipelinemi?1?185(ns?1)Tpipeline???ti?(n?1)?tmax?50?8?9?50?850(ns)mE?TP???tii?1m?TP?40010??58.82?717
? 重复
置
设
4-1 3-1 1 2 3-2 4-3 4-4 4-2 段 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 E
TP?nTpipeline?185(ns?1)?58.82%?400?10850?8?101717
3.13有一个流水线由4段组成,其中每当流经第3段时,总要在该段循环一次,然后才能流到第4段。如果每段经过一次所需要的时间都是?t,问:
(1) 当在流水线的输入端连续地每?t时间输入任务时,该流水线会发生什么情
况?
(2) 此流水线的最大吞吐率为多少?如果每2?t输入一个任务,连续处理10个
任务时的实际吞吐率和效率是多少? (3) 当每段时间不变时,如何提高该流水线的吞吐率?仍连续处理10个任务时,
其吞吐率提高多少? 解:(1)会发生流水线阻塞情况。 第1个任务 第2个任务 第3个任务 第4个任务 (2)
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 段 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 11
TPmax?Tpipeline2?t?23?tTpipeline?10423?t92?54.35%Tp?n?E?TP?5?t?5017
(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?n?10?5Tpipeline14??t7??t
57?t吞吐率提高倍数= =1.64
17
1023?t