计算机系统结构第1-8章部分作业答案第一章1.6 某台主频为400MHz 的计算机执行标准测试程序,程序中指令类型、执行数量和平均时钟周期数如下:求该计算机的有效CPI 、MIPS 和程序执行时间。
解:(1)CPI =(45000×1+75000×2+8000×4+1500×2) / 129500=1.776 (或259460) (2)MIPS 速率=f/ CPI =400/1.776 =225.225MIPS (或2595180MIPS) (3)程序执行时间= (45000×1+75000×2+8000×4+1500×2)/400=575μs1.9 假设某应用程序中有4类操作,通过改进,各操作获得不同的性能提高。
具体数据如下表所示:(1)改进后,各类操作的加速比分别是多少?(2)各类操作单独改进后,程序获得的加速比分别是多少? (3)4类操作均改进后,整个程序的加速比是多少?解:根据Amdahl 定律SeFeFe S n +-=)1(1可得4类操作均改进后,整个程序的加速比:2.16)1(1≈+-=∑∑iii n S F F S1.10 第二章变长编码,哈夫曼编码 第三章3.12 有一条指令流水线如下所示:(1)求连续输入10条指令的情况下,该流水线的实际吞吐率和效率。
(2)该流水线的瓶颈在哪一段?请采用两种不同的措施消除此瓶颈。
对于你所给出的两种新的流水线,连续输入10条指令时,其实际吞吐率和效率各是多少? 解:(1)本题主要考察对各功能段用时不等的线性流水线的性能计算公式的掌握情况。
2200(ns)2009200)10050(50t n t T maxki i =⨯++++=∆-+∆=∑=)1(1流水 )(ns 2201T nTP 1-==流水45.45%1154400TP ktTP E k1i i≈=⋅=∆⋅=∑= 注意:对于公式不能死记硬背,需要充分理解,注意公式的适用条件。
(2)瓶颈在3、4段。
● 变成八级流水线(细分瓶颈段方法)50ns50ns50ns50ns50ns850(ns)509850t 1)(n t T maxk1i i =⨯+⨯=∆-+∆=∑=流水)(ns 851T nT P 1-==流水58.82%17108400TP ktiTP E k1i ≈=⋅=∆⋅=∑= ● 重复设置瓶颈段方法12Stage)(ns 851T nTP 1-==流水58.82%1710885010400E ≈=⨯⨯=3.13 有一个流水线由4段组成,其中每当流过第三段时,总要在该段循环一次,然后才能流到第4段。
如果每段经过一次所需的时间都是△t ,问: (1)当在流水线的输入端连续地每△t 时间输入一个任务时,该流水线会发生什么情况?(2)此流水线的最大吞吐率为多少?如果每2△t 输入一个任务,连续处理10个任务时,其实际吞吐率和效率是多少?(3)当每段时间不变时,如何提高流水线的吞吐率?人连续处理10个任务时,其吞吐率提高多少? 解:(1)会发生流水线阻塞情况。
(2)当任务流过第三段时要在该段循环一次,相当于要占用第三段2△t 时间,则该流水线可看成是具有瓶颈段的线性流水线,瓶颈段即第三段,所需时间为2△t 。
每2△t 输入一个任务,连续处理10个任务的时空图如下:1234则:54.35%9250TP E T nTp T TP max ≈=∆⋅=∆==∆=∆=4523102321t tt t流水流水(3)重复设置部件。
重复的部件可并联在流水线上,也可串联于流水线中。
如下图所示:ttttt采用并联方式时的时空图如下:12t∆14tt ∆⋅=∆⋅==751410流水T nTP 吞吐率提高倍数=tt ∆∆231075=1.643.14 有一条静态多功能流水线由5段组成,加法用1、3、4、5段,乘法用1、2、5段,第3段的时间为2△t ,其余各段的时间均为△t ,而且流水线的输出可以直接返回输入端或暂存于相应的流水线寄存器中。
现在该流水线上计算∏=+41)(i i i B A ,画出时空图,并计算其吞吐率、加速比和效率。
解:此题容易出的问题是忽略静态流水线的特点,当加法任务流入流水线后紧跟着启动乘法任务。
正确的做法是当所有加法任务完成从流水线流出后再启动乘法任务,同时还应注意到流水线中的第三段所用时间为2△t 。
(1)任务分析(2)画时空图 1 2 3 4 5 6 71234 1 2 3 45 67△t △t2△t △t 1 2 3 45△t18△t(3)计算流水线性能 吞吐率:tT n Tp ∆==187加速比:18291854=∆⨯+∆⨯==t 3t 3t 流水串行T T Sp效率: 902954=∆⨯⨯+∆⨯==t 1853t 3t 时空区总面积实际占用面积E3.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 ≈⨯⨯=⨯=-696101012003210第四章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) 让读失效优先于写。