计算机系统结构第1-8章部分作业答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章
1.6 某台主频为400MHz 的计算机执行标准测试程序,程序中指令类型、执行数量和平均时钟周期数如下:
求该计算机的有效CPI 、MIPS 和程序执行时间。
解:(1)CPI =(45000×1+75000×2+8000×4+1500×2) / 129500=1.776 (或
259
460
) (2)MIPS 速率=f/ CPI =400/1.776 =225.225MIPS (或
259
5180
MIPS) (3)程序执行时间= (45000×1+75000×2+8000×4+1500×2)/400=575μs
1.9 假设某应用程序中有4类操作,通过改进,各操作获得不同的性能提高。
具体数据
(1)改进后,各类操作的加速比分别是多少?
(2)各类操作单独改进后,程序获得的加速比分别是多少? (3)4类操作均改进后,整个程序的加速比是多少? 解:根据Amdahl 定律Se
Fe
Fe S n +
-=)1(1
可得
4类操作均改进后,整个程序的加速比:
2.16)1(1
≈+-=∑∑i
i
i n S F F S
1.10 第二章
变长编码,哈夫曼编码
第三章
3.12 有一条指令流水线如下所示:
(1)求连续输入10条指令的情况下,该流水线的实际吞吐率和效率。
(2)该流水线的瓶颈在哪一段?请采用两种不同的措施消除此瓶颈。
对于你所给出的两种新的流水线,连续输入10条指令时,其实际吞吐率和效率各是多少? 解:
(1)本题主要考察对各功能段用时不等的线性流水线的性能计算公式的掌握情况。
2200(ns)
2009200)10050(50t n t T max
k
i i =⨯++++=∆-+∆=∑=)1(1
流水 )(ns 220
1
T n
TP 1-==流水
45.45%11
5
4400TP k
t
TP E k
1
i i
≈=⋅
=∆⋅
=∑= 注意:对于公式不能死记硬背,需要充分理解,注意公式的适用条件。
(2)瓶颈在3、4段。
● 变成八级流水线(细分瓶颈段方法)
50ns
50ns
50ns
50ns
50ns
850(ns)
509850t 1)(n t T max
k
1
i i =⨯+⨯=∆-+∆=∑=流水
)(ns 85
1
T n
T P 1-==流水
58.82%17
10
8400TP k
ti
TP E k
1
i ≈=⋅
=∆⋅
=∑= ● 重复设置瓶颈段方法
1
2
Stage
)(ns 85
1
T n
TP 1-==流水
58.82%17
10
8
85010
400E ≈=⨯⨯=
3.13 有一个流水线由4段组成,其中每当流过第三段时,总要在该段循环一次,然后才能流到第4段。
如果每段经过一次所需的时间都是△t ,问:
(1)当在流水线的输入端连续地每△t 时间输入一个任务时,该流水线会发生什么情况? (2)此流水线的最大吞吐率为多少?如果每2△t 输入一个任务,连续处理10个任务时,其实际吞吐率和效率是多少?
(3)当每段时间不变时,如何提高流水线的吞吐率?人连续处理10个任务时,其吞吐率提高多少? 解:
(1)会发生流水线阻塞情况。
(2)当任务流过第三段时要在该段循环一次,相当于要占用第三段2△t 时间,则该流水线可看成是具有瓶颈段的线性流水线,瓶颈段即第三段,所需时间为2△t 。
每2△t 输入一个任务,连续处理
10个任务的时空图如下:
1
234
则:
54.35%
92
50TP E T n
Tp T TP max ≈=∆⋅=∆==∆=∆=452310
2321t t
t t 流水
流水
(3)重复设置部件。
重复的部件可并联在流水线上,也可串联于流水线中。
如下图所示:
t
t
t
t
t
采用并联方式时的时空图如下:
1
2
t
∆14
t
t ∆⋅=∆⋅==75
1410流水
T n
TP 吞吐率提高倍数=
t
t ∆∆2310
75=1.64
3.14 有一条静态多功能流水线由5段组成,加法用1、3、4、5段,乘法用1、2、5段,第3段的时间为2△t ,其余各段的时间均为△t ,而且流水线的输出可以直接返回输入端或暂存于相应的流水线寄存器中。
现在该流水线上计算∏=+4
1
)(i i i
B A
,画出时空图,并计算其吞吐
解:此题容易出的问题是忽略静态流水线的特点,当加法任务流入流水线后紧跟着启动乘法任务。
正确的做法是当所有加法任务完成从流水线流出后再启动乘法任务,同时还应注意到流水线中的第三段所用时间为2△t 。
(1)任务分析
1 2 3 4 5 6 7
1
2
3
4 1 2 3 4
5
6
7 1
2
3
4
5
6
7
18△t (3)计算流水线性能 吞吐率:t
T n Tp ∆=
=
187
加速比:18
29
1854=∆⨯+∆⨯=
=
t 3t 3t 流水
串行T T Sp
效率: 90
2954=∆⨯⨯+∆⨯==
t 1853t 3t 时空区总面积实际占用面积E
3.18 在CRAY-l 机器上,按照链接方式执行下述4条向量指令(括号中给出了相应功能部件
时间),如果向量寄存器和功能部件之间的数据传送需要1拍,试求此链接流水线的通过时间是多少拍?如果向量长度为 64,则需多少拍才能得到全部结果。
V0←存储器 (从存储器中取数:7拍) V2←V0+V1 (向量加:3拍) V3←V2<A3 (按(A3)左移:4拍) V5←V3∧V4 (向量逻辑乘:2拍)
解:通过时间就是每条向量指令的第一个操作数执行完毕需要的时间,也就是各功能流水线由空到满的时间,具体过程如下图所示。
要得到全部结果,在流水线充满之后,向量中后继操作数继续以流水方式执行,直到整组向量执行完毕。
(拍)
=+)=-+((拍))=++)+(++)+(++)+(+=(通过总共通过866323164T T 2312114113117T =
说明:若考虑数据从存储器送访存部件也有1拍延迟,则通过时间应为24拍,完成全部任务所用时间相应为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 的中间结果放在V6中,(A +B )×C 地最后结果放在V7中,D +E 地中间结果放在V8中,(D +E )×F 的最后结果放在V9中。
具体实现参考下图:
通过时间应该为前者((A +B )×C )通过的时间:
T 通过= (1+2+1)+(1+3+1) =9(拍)
(2)在做完(A +B )×C 之后,作(C +D )×E 就不需要通过时间了。
;
F V8V9E;D V8C;V6V7B;A V6*=+=*=+=
1200(ns)T T ==+=(拍))-+(通过24818=1200×10-9 (s )
题目中所问为吞吐率是多少MFLOPS ,显然是让求以MFLOPS 为单位的吞吐率。
MFLOPS 是指每秒完成多少百万次浮点运算,因此要明确所有任务中共多少浮点运算。
显然共有4条浮点向量指令,而每条指令完成8个浮点运算,因此浮点运算总数为32个。
所以: 吞吐率:M FLOPS 26.67T 32TP E ≈⨯⨯=⨯=
-6
9610
10120032
10
第四章
4.4 假设有一条长流水线,仅仅对条件转移指令使用分支目标缓冲。
假设分支预测错误的开
销为4个时钟周期,缓冲不命中的开销为3个时钟周期。
假设:命中率为90%,预测精度为90%,分支频率为15%,没有分支的基本CPI 为1。
(1)求程序执行的CPI 。
(2)相对于采用固定的2个时钟周期延迟的分支处理,哪种方法程序执行速度更快? 解:
(1)程序执行的CPI = CPI 基本+分支延迟
= 1 + 15%×[90%×(1-90%)×4 = (1-90%)×3] = 1.099
(2)采用固定的2个时钟周期延迟时,
程序执行的CPI = CPI 基本+分支延迟 = 1 + 15%×2 =1.3
显然采用分支目标缓冲器时程序执行时间更少,即速度更快。
4.5 假设分支目标缓冲的命中率为90%,程序中无条件转移指令的比例为5%,没有无条件转移指令的程序CPI 值为1。
假设分支目标缓冲中包含分之目标指令,允许无条件转移指令进入分支目标缓冲,则程序的CPI 值为多少?假设无条件分支指令不进入分支目标缓冲时程序执行的CPI 为1.1
解:无条件分支指令的特点是只要执行肯定分支成功。
因此,对于进入分支目标缓冲器的无条件分支指令,分支预测的精度为100%,也就不会带来分支延迟。
而没有进入分支目标缓冲器的无条件分支指令会带来一定分支延迟。
首先要求出一条无条件分支指令的分支延迟是多少,不妨设为x 个时钟周期。
由题知无条件分支指令不进入分支目标缓冲时程序执行的CPI 为1.1,而程序中没有无条件转移指令的CPI 为1,因此有
CPI = CPI 无分支指令+无条件分支延迟 = 1 + 5%x = 1.1 所以 x= 2 因此,允许无条件分支指令进入分支目标缓冲器时, CPI = CPI 无分支指令+ 5%×(1-90%)×2 =1.01
第五章 存储层次
5.1 解释下列术语(不要求写在作业本上,但应作为复习内容)
存储系统 全相联映像 直接映像 组相联映像 写直达法
写回法按写分配法不按写分配法命中时间失效率
强制性失效容量失效冲突失效2:1经验规则相联度
答:(答案略)
5.2简述“Cache-主存”层次与“主存-辅存”层次的区别。
答:
5.3 地址映像方法有哪些?它们各有什么优缺点?
答:
(1)全相联映像。
实现查找的机制复杂,代价高,速度慢。
Cache空间的利用率较高,块冲突概率较低,因而Cache的失效率也低。
(2)直接映像。
实现查找的机制简单,速度快。
Cache空间的利用率较低,块冲突概率较高,因而Cache的失效率也高。
(3)组相联映像。
组相联是直接映像和全相联的一种折中。
5.4 降低cache失效率有哪几种方法?
答:
(1)增加Cache块大小
(2)提高相联度
(3)增加Cache的容量
(4)Victim Cache
(5)伪相联Cache
(6)硬件预取技术
(7)由编译器控制的预取
(8)编译器优化。
5.5 简述减小cache失效开销的几种方法。
答:
(1) 让读失效优先于写。
(2) 写缓冲合并。
(3) 请求字处理技术。
(4) 非阻塞Cache或非锁定Cache技术。
(5) 采用二级Cache。
5.8 组相联Cache的失效率比相同容量直接映像Cache的失效率低。
由此能否得出结论:采用组相联映像一定能带来性能上的提高?为什么?
答:不一定。
因为组相联命中率的提高是以增加命中时间为代价的,组相联需要增加多路选择开关。
5.10 假设对指令Cache 的访问站全部访问的75%;而对数据Cache 的访问占全部访问的25%。
Cache 的命中时间为1个时钟周期,失效开销为50个时钟周期,在混合Cache 中一次load 或store 操作访问Cache 的命中时间都要增加一个时钟周期,32KB 的指令Cache 的失效率为0.39%,32KB 的数据Cache 的失效率为4.82%,64KB 的混合Cache 的失效率为1.35%。
又假设采用写直达策略,且有一个写缓冲器,并且忽略写缓冲器引起的等待。
试问指令Cache 和数据Cache 容量均为32KB 的分离Cache 和64KB 的混合Cache 相比,哪种Cache 的失效率更低?两种情况下平均访存时间各是多少? 解:
(1)分离Cache 的总体失效率:
4975
.1242539.075.=⨯+⨯=⨯+⨯=⨯+⨯=⨯+⨯=
+=
=
%.8%%%F 数据访存失效率数据访存比例指令访存失效率指令访存比例数据访存失效率访存总次数
数据访存次数指令访存失效率访存总次数指令访存次数访存总次数
数据访存失效率数据访存次数指令访存失效率指令访存次数访存总次数
数据访存失效次数指令访存失效次数访存总次数
访存失效总次数分离
而容量为64 KB 的混合Cache 的失效率略低一些,只有1.35%。
(2)平均访存时间分析
平均数据访存时间
数据访存比例平均指令访存时间指令访存比例访存总次数
平均数据访存时间数据访存次数访存总次数平均指令访存时间指令访存次数访存总次数
平均数据访存时间数据访存次数平均指令访存时间指令访存次数访存总次数
数据访存总时间指令访存总时间访存总次数
访存总时间平均访存时间⨯+⨯=⨯+
⨯=⨯+⨯=
+=
=
所以:
平均访存时间分离 =75%×(1+0.39%×50)+25%×(1+4.82%×50) =(75%×1.195)+(25%×3.41) =1.74875
平均访存时间混合 =75%×(1+1.35%×50)+25%×(1+1+1.35%×50) =(75%×1.675)+(25%×2.675) =1.925
因此,尽管分离Cache 的实际失效率比混合Cache 的高,但其平均访存时间反而较低。
5.11 给定以下的假设,试计算直接映像Cache 和2路组相联Cache 的平均访问时间以及CPU 的性能。
由计算结果能得出什么结论?
(1)理想Cache 情况下的CPI 为2.0,时钟周期为2ns ,平均每条指令访存1.2次。
(2)两者Cache 容量均为64KB ,块大小都是32B 。
(3)组相联映像Cache 中的多路选择器使CPU 的时钟周期增加了10%。
(4)这两种Cache 的失效开销都是80ns 。
(5)命中时间为1个时钟周期。
(6)64KB 直接映像Cache 的失效率为1.4%,64KB2路组相联Cache 的失效率为1.0%。
解:
(1) 平均访问时间=命中时间+失效率×失效开销
平均访问时间1-路=2.0+1.4% ×80=3.12ns 平均访问时间2-路=2.0×(1+10%)+1.0% ×80=3.0ns 两路组相联的平均访问时间比较低
(2)CPU 时间 =(CPU 执行周期+存储等待周期)×时钟周期时间
= IC (CPI 执行+总失效次数/指令总数×失效开销) ×时钟周期 = IC ((CPI 执行×时钟周期)+(每条指令的访存次数×失效率×失效开销 ×时钟周期))
所以:
CPU 时间 1路 =IC(2.0×2+1.2×0.014×80)=5.344IC CPU 时间 2路=IC(2.2×2+1.2×0.01×80)=5.36IC
相对性能比:
路
路时间时间1CPU CP 2 5.36/5.344=1.003
直接映象cache 的访问速度比两路组相联cache 要快1.04倍,而两路组相联Cache 的平均性能比直接映象cache 要高1.003倍。
因此这里选择两路组相联。
第七章 互连网络
7.1 解释下列术语(不要求写在作业本上,但应作为复习内容)
线路交换 分组交换 静态网络 动态网络 互连网络 互连函数 网络直径 结点度 网络规模 等分宽度 对称网络
答:答案略
7.3 设E 为交换函数,S 为均匀洗牌函数,B 为蝶式函数,PM2I 为移数函数,函数的自变量是十进制数表示的处理机编号。
现在有32台处理机,其编号为0,1,2,…., 31。
(1)分别计算下列互连函数
E 2(12) S(8) B(9) PM2I +3(28) E 0(S(4)) S(E 0(18))
(2)用E 0和S 构成均匀洗牌交换网(每步只能使用E 0和S 一次),网络直径是多少?从5号处理机发送数据到7号处理机,最短路径要经过几步?请列出经过的处理几号。
(3)采用移数网络构成互连网络,网络直径是多少?结点度是多少?与2号处理机距离最
远的是几号处理机?
解:
(1)共有32台处理机,因此用log 232 = 5比特表示各处理器编号。
E 2(12) 十进制 = E 2(01100) 二进制=(01000)二进制= (8) 十进制
S(8) 十进制 = S (01000)二进制= (10000)二进制= (16) 十进制
B(9) 十进制 = B (01001)二进制= (11000)二进制= (24) 十进制
PM2I +3(28) = (28 +23) mod 32 = 4
E 0(S(4))十进制 = E 0(S (00100))二进制= E 0(01000)= (01001)二进制= (9) 十进制
S(E 0(18)) 十进制 = S (E 0(10010))二进制=S (10011)= (00111)二进制= (7) 十进制
(2)2n 个结点的均匀洗牌交换网的网络直径是2n-1,32个结点的均匀洗牌交换网的网络直径为9。
从5号处理机发送数据到7号处理机,最短路径要经过6步:
00111100111001001001010000010000101S E S E S E 000−→−−→−−→−−→−−→−−→−
(3)网络直径是3,节点度是9,与2号处理机距离最远的是13、15、21、23号处理机。
.
第八章 多处理机
8.1 解释下列术语(不要求写在作业本上,但应作为复习内容)
集中式共享多处理机 分布式共享多处理机 通信延迟 计算/通信比 监听协议 目录协议 写作废协议 写更新协议
答:答案略
8.2 一个具有32个处理器的多处理机,对远程存储器访问时间为2000 ns 。
除了通信以外,假设所有其他访问均命中局部存储器。
当发出一个远程请求时,本处理器挂起。
处理器的时钟周期时间是10ns ,假设指令基本的CPI 为1.0(设所有访存均命中局部存储器)。
对于下述两种情况:
(1)没有远程访问。
(2)有0.5%的指令需要远程访问。
试问前者比后者快多少?
解:
已知远程访问率p=0.5%,远程访问时间t=2000ns ,时钟周期时间T=10ns ,则
远程访问开销C=t/T = 2000ns/10ns = 200 个时钟周期
则有0.5%远程访问的机器的实际CPI 2为:
CPI 2= CPI 1 + p ×C = 1.0 + 0.5%×200 = 2.0
只有局部访问的机器的基本CPI 1 =1.0 ,故
CPI 2/CPI 1 = 2.0/1.0 = 2(倍)
因此,没有远程访问状态下的机器速度是有0.5%远程访问的机器速度的2倍。