计算机系统结构作业答案第三章(张晨曦)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.1 -3.3为术语解释等解答题。
3.4 设一条指令的执行过程分为取指令,分析指令和执行指令3个阶段,每个阶段所需时间分别为ΔT, ΔT, 2ΔT,分别求出下列各种情况下,连续执行N条指令所需的时间。
(1) 顺序执行方式
(2) 只有“取指令”与“执行指令”重叠
(3) “取指令”,“分析指令”与“执行指令”重叠
解:
(1) 4NΔT
(2) (3N+1) ΔT
(3) 2(N+1) ΔT
3.6 解决流水线瓶颈问题有哪两种常用方法?
解:
(1) 细分瓶颈段
将瓶颈段细分为若干个子瓶颈段
(2) 重复设置瓶颈段
重复设置瓶颈段,使之并行工作,以此错开处理任务
3.9 列举下面循环中的所有相关,包括输出相关,反相关,真数据相关。
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)
3.12 有一指令流水线如下所示
50ns 50ns 100ns 200ns
(1)求连续如入10条指令的情况下,该流水线的实际吞吐率和效率
(2)该流水线的“瓶颈”在哪一段?请采用两种不同的措施消除此“瓶颈”。对于你所给出
的两种新的流水线连续输入10条指令时,其实际吞吐率和效率各是多少?
解:(1)(m表示流水线级数,n 表示任务数)
(2)瓶颈在 3、4段。
方法一:变成八级流水线(细分)
11.7e8
方法二:变成两级流水线(合并)
方法三:将段 1、2 合并为一段,段 4 细化流水为两段
方法四:重复设置部件,设置 2个部件 3,4个部件 4,和第一种方法结果相同
3.14 有一条静态多功能流水线由5段组成,加法用1、3、4、5段,乘法用1、2、5段,第3段时间为2Δt,其余各段时间均为Δt,而且流水线的输出可以直接返回输入端或暂存于相
应的流水寄存器中,现要在该流水线上计算
4
1()
i i
i
A B =
+
∏,画出其时空图,并计算其吞吐率、
急速比和效率。
解:(1).任务划分如下:
F = ( A1 + B1 )·( A2 + B2)·( A3 + B3)·( A4 + B4)
⑴⑵⑶⑷
(5)(6)
(7)
时空图如下:
空间
S5*******
S41234
S311223344
S2567
S1*******时间
18Δt
(2) Tk = 18Δt,TP = 7/18Δt,S = 29/18=1.611,E = 29/(18*5)=29/90≈32.2%
3.15
一动态多功能流水线由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
⑴⑵⑶⑷⑸
⑹⑺⑻⑼⑽
⑾⑿
⒀
⒁
时空图如下:
空间
S61234567891011121314
S512345678910
S412345678910
S311121314
S211121314
S11234567891011121314时间
22Δt
(2).Tk = 22Δt,TP = 7/11Δt=7/(11*50ns)=12.727e6,S = 28/11=2.555,E = 14/33=42.42% 3.18、在Cray 1机上,按链接方式执行下面4条向量指令(括号中给出相应功能部件时间),如果向量寄存器和功能部件之间的数据传输需要1拍,试求此链接流水线的流过时间为多少拍?如果向量长度为64,则需要多少拍能得到全部结果。
V0←存储器 (存储器取数:7拍)
V2←V0+V1 (向量加:3拍)
V3←V2 V5←V3∧V4 (向量逻辑乘:2拍) 解答: 四条指令每前后两条依次存在先写后读相关,故流水线经过时间为(1+7+1) + (1+3+1) + (1+4+1) + (1+2+1) = 24。 如果向量长度为64,则需24 + (64-1) = 87拍能得到全部结果。 3.19、某机有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) 实际吞吐率为 如有侵权请联系告知删除,感谢你们的配合!