设一条指令的执行过程分为取指令,分析指令和执行指令3个阶段,每个阶段所需时间分别为ΔT, ΔT, 2ΔT,分别求出下列各种情况下,连续执行N条指令所需的时间。 (1) 顺序执行方式
(2) 只有“取指令”与“执行指令”重叠 (3) “取指令”,“分析指令”与“执行指令”重叠 解:
(1) 4NΔT
(2) (3N+1) ΔT (3) 2(N+1) ΔT
解决流水线瓶颈问题有哪两种常用方法? 解:
(1) 细分瓶颈段
将瓶颈段细分为若干个子瓶颈段 (2) 重复设置瓶颈段
重复设置瓶颈段,使之并行工作,以此错开处理任务
列举下面循环中的所有相关,包括输出相关,反相关,真数据相关。 for(i = 2; i < 100; i=i+1) {
a[i] = b[i] + a[i]; -----(1) c[i+1] = a[i] + d[i]; -----(2) a[i-1] = 2*b[i]; -----(3) b[i+1] = 2*b[i]; -----(4) } 解:
输出相关:第k次循环时(1)与第k+1轮时(3) 反相关:第k次循环时(1)和(2)与第k-1轮时(3)
真数据相关:每次循环(1)与(2),第k次循环(4)与k+1次循环(1),(3),(4)
有一指令流水线如下所示
入1 2 3 4 出
50ns 50ns 100ns 200ns (1) 求连续如入10条指令的情况下,该流水线的实际吞吐率和效率
(2) 该流水线的“瓶颈”在哪一段?请采用两种不同的措施消除此“瓶颈”。对于你所给出
的两种新的流水线连续输入10条指令时,其实际吞吐率和效率各是多少? 解:(1)(m表示流水线级数,n 表示任务数)
(2)瓶颈在 3、4段。
方法一:变成八级流水线(细分)
方法二:变成两级流水线(合并)
方法三:将段 1、2 合并为一段,段 4 细化流水为两段
方法四:重复设置部件,设置 2个部件 3,4个部件 4,和第一种方法结果相同
有一条静态多功能流水线由5段组成,加法用1、3、4、5段,乘法用1、2、5段,第3段时间为2Δt,其余各段时间均为Δt,而且流水线的输出可以直接返回输入端或暂存于相应的流水寄存器中,现要在该流水线上计算急速比和效率。 解:(1).任务划分如下:
F = ( A1 + B1 )·( A2 + B2 )·( A3 + B3 )·( A4 + B4 ) ⑴ ⑵ ⑶
⑷ ?(A?B),画出其时空图,并计算其吞吐率、
iii?14(5)
(7)
时空图如下: 空 间 S5 S4 S2 2 (6)
1 1 3 2 2 4 3 3 4 4 7 7 7 5 6 S3 S1 1 1 1 2 2 3 3 4 4 5 6 5 6 时 间 18 Δt (2) Tk = 18Δt,TP = 7/18Δt,S = 29/18=,E = 29/(18*5)=29/90≈%
一动态多功能流水线由6个功能段组成,如下图(图4):
图4
其中:S1、S4、S5、S6组成乘法流水线,S1、S2、S3、S6组成加法流水线,每个功能段时间均为50ns。假定该流水线的输出结果可以直接返回流水线输入端,而且设置有足够的缓冲寄存器。若按照最快的方式用该流水线计算。 ① 请画出其处理过程的时空图。 ② 计算其实际吞吐率,加速比和效率。 解:(1).任务划分如下:
F = X1·Y1·Z1 + X2·Y2·Z2 + X3·Y3·Z3 + X4·Y4·Z4 + X5·Y5·Z5 ⑴
⑵ ⑶
⑺
⑷
⑸
⑽
⑹
⑻ ⑼ ⑿
⑾ ⒀ ⒁ 时空图如下: 空 间 S6 S5 S3 S2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 5 6 7 8 9 10 S4 1 2 3 4 5 6 7 8 9 10 11 12 13 14 11 12 13 14 S1 1 2 3 4 5 6 7 8 9 10 11 12 13 22 Δt 14 时 间
(2).Tk = 22Δt,TP = 7/11Δt=7/(11*50ns)=,S = 28/11=,E = 14/33=%
、在Cray 1机上,按链接方式执行下面4条向量指令(括号中给出相应功能部件时间),如果向量寄存器和功能部件之间的数据传输需要1拍,试求此链接流水线的流过时间为多少拍?如果向量长度为64,则需要多少拍能得到全部结果。
V0←存储器 (存储器取数:7拍)
V2←V0+V1 (向量加:3拍) V3←V2 解答: 四条指令每前后两条依次存在先写后读相关,故流水线经过时间为(1+7+1) + (1+3+1) + (1+4+1) + (1+2+1) = 24。 如果向量长度为64,则需24 + (64-1) = 87拍能得到全部结果。 、某机有16个向量寄存器,其中V0~V5中分别放有向量A、B、C、D、E、F,向量长度均为8,向量各元素均为浮点数;处理部件采用二个单功能流水线,加法功能部件时间为2拍,乘法功能部件时间为3拍。用类似Cray 1的链接技术,先计算(A+B)*C,在流水线不停流的情况下,接着计算(D+E)*F。 (1) 求此链接流水线的流过时间为多少拍?(设寄存器入,出各需1拍)。 (2) 假设每拍时间为50ns,完成这些计算并把结果存进相应寄存器,此部件的实际的吞吐率是多少MFLOPS? 解答: (1) (A+B)*C 可用以下2条指令完成: V0←A+B V1←V0*C 流水线流过时间为(1+2+1) + (1+3+1) = 9拍 (2) 实际吞吐率为
计算机系统结构作业答案第三章



