《高级计算机系统结构2013年复习题.doc》由会员分享,可在线阅读,更多相关《高级计算机系统结构2013年复习题.doc(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、如有侵权,请联系网站删除,仅供学习与交流高级计算机系统结构2013年复习题【精品文档】第 9 页1. 假设有一条长流水线,仅仅对条件转移指令使用分支目标缓冲。假设分支预测错误的开销为4个时钟周期,缓冲不命中的开销为3个时钟周期。假设:命中率为90%,预测精度为90%,分支频率为15%,没有分支的基本CPI为1。求程序执行的CPI。相对于采用固定的2个时钟周期延迟的分支处理,哪种方法程序执行速度更快?参考答案:解:(1)程序执行的CPI = 没有分支的基本CPI(1) + 分支带来的额外开销分支带来的额外开销是指在分支指令中,缓冲命中但预测错误带来的开销与缓冲没有命中带来的开销之和。分支带来的额
2、外开销= 15% * (90%命中10%预测错误4 + 10没命中3)= 0.099所以,程序执行的CPI 1 0.099 = 1.099(2)采用固定的2 个时钟周期延迟的分支处理CPI = 1 + 15%2 = 1.3由(1)(2)可知分支目标缓冲方法执行速度快。2. 计算机系统中有三个部件可以改进,这三个部件的部件加速比为:部件加速比1=30; 部件加速比2=20 部件加速比3=10 如果部件2和部件3的可改进比例均为30%,那么当部件 1的可改进比例为多少时,系统加速比才可以达到10?如果三个部件的可改进比例分别为20%、10%和30%,三个部件同时改进,那么系统中不可加速部分的执行时
3、间在总执行时间中占的比例是多少? 参考答案:解:(1)在多个部件可改进情况下,Amdahl定理的扩展:已知S130,S215,S315,Sn10,F10.3,F20.3,得:得F30.36,即部件3的可改进比例为36%。(2)设系统改进前的执行时间为T,则3个部件改进前的执行时间为:(0.3+0.3+0.2)T = 0.8T,不可改进部分的执行时间为0.2T。已知3个部件改进后的加速比分别为S130,S220,S310,因此3个部件改进后的执行时间为: 改进后整个系统的执行时间为:Tn = 0.045T+0.2T = 0.245T那么系统中不可改进部分的执行时间在总执行时间中占的比例是:3.
4、设指令流水线由取指令、分析指令和执行指令3个部件构成,每个部件经过的时间为t,连续流入12条指令。分别画出标量流水处理机以及ILP均为4的超标量处理机、超长指令字处理机、超流水处理机的时空图,并分别计算它们相对于标量流水处理机的加速比。参考答案:解:标量流水处理机的时空图:执行完12条指令需T114t。超标量流水处理机与超长指令字处理机的时空图:超标量流水处理机中,每一个时钟周期同时启动4条指令。执行完12条指令需T25t,相对于标量流水处理机的加速比为:超长指令字处理机中,每4条指令组成一条长指令,共形成3条长指令。执行完12条指令需T35t,相对于标量流水处理机的加速比为:超流水处理机的时
5、空图:超流水处理机中,每1/4个时钟周期启动一条指令。执行完12条指令需T45.75t,相对于标量流水处理机的加速比为:4. 设一条指令的执行过程分成取指令、分析指令和执行指令三个阶段,每个阶段所需的时间分别为t、t和2t 。分别求出下列各种情况下,连续执行N条指令所需的时间。 只有“取指令”与“执行指令”重叠; “取指令”、“分析指令”与“执行指令”重叠。参考答案: 连续执行N条指令所需的时间为:4t3(N-1)t(3N1)t 连续执行N条指令所需的时间为:4t2(N-1)t(2N2)t5.有一指令流水线如下所示 求连续输入10条指令,该流水线的实际吞吐率和效率; 该流水线的“瓶颈”在哪一段
6、?请采取两种不同的措施消除此“瓶颈”。对于你所给出的两种新的流水线,连续输入10条指令时,其实际吞吐率和效率各是多少? 参考答案:(1)(2)瓶颈在3、4段。n 变成八级流水线(细分)n 重复设置部件123-13-24-14-24-34-46. 动态多功能流水线由6个功能段组成,如下图:其中,S1、S4、S5、S6组成乘法流水线,S1、S2、S3、S6组成加法流水线,各个功能段时间均为50ns,假设该流水线的输出结果可以直接返回输入端,而且设置有足够的缓冲寄存器,若以最快的方式用该流水计算: 画出时空图; 计算实际的吞吐率、加速比和效率。参考答案:7. 某向量处理机有16个向量寄存器,其中V0
7、V5中分别放有向量A、B、C、D、E、F,向量长度均为8,向量各元素均为浮点数;处理部件采用两条单功能流水线,加法功能部件时间为2拍,乘法功能部件时间为3拍。采用类似于CARY-1的链接技术,先计算(A+B)*C,在流水线不停流的情况下,接着计算(D+E)*F。求此链接流水线的通过时间?(设寄存器入、出各需1拍)假如每拍时间为50ns,完成这些计算并把结果存进相应寄存器,此处理部件的实际吞吐率为多少MFLOPS?参考答案:解:(1)在这里假设AB的中间结果放在V6中,(AB)C地最后结果放在V7中,DE地中间结果放在V8中,(DE)F的最后结果放在V9中。具体实现参考下图:通过时间应该为前者(
8、AB)C)通过的时间:T通过= (1+2+1)+(1+3+1) =9(拍)(2)在做完(AB)C之后,作(CD)E就不需要通过时间了。V6AB V7V6C V8DE V9V8F8. 假设分支目标缓冲的命中率为90%,程序中无条件转移指令的比例为5%,没有无条件转移指令的程序CPI值为1。假设分支目标缓冲中包含分支目标指令,允许无条件转移指令进入分支目标缓冲,则程序的CPI值为多少? 参考答案: 解:设每条无条件转移指令的延迟为x,则有:15%x1.1 x2当分支目标缓冲命中时,无条件转移指令的延迟为0。所以 程序的CPI 1 2 5% (1 90%) 1.019. 一台32个处理器的计算机,对
9、远程存储器访问时间为400ns。除了通信以外,假设计算中的访问均命中局部存储器。当发出一个远程请求时,本处理器挂起。处理器时钟时间为1GHz,如果指令基本的IPC为2(设所有访存均命中Cache),求在没有远程访问的状态下与有0.2%的指令需要远程访问的状态下,前者比后者快多少?参考答案:解:没有远程访问时,机器的CPI为 1/基本IPC=1/2=0.5 有0.2%远程访问的机器的实际CPI为 CPI基本CPI远程访问率远程访问开销 0.50.2%远程访问开销 远程访问开销为 :远程访问时间/时钟周期时间400 ns/1 ns400个时钟周期 CPI0.50.2%4001.3 因此在没有远程访
10、问的情况下的计算机速度是有0.2%远程访问的计算机速度的1.3/0.5=2.6倍。10. 简述Tomasulo算法的基本思想。参考答案:答:核心思想是: 记录和检测指令相关,操作数一旦就绪就立即执行,把发生RAW冲突的可能性减小到最少; 通过寄存器换名来消除WAR冲突和WAW冲突。寄存器换名是通过保留站来实现,它保存等待流出和正在流出指令所需要的操作数。基本思想:只要操作数有效,就将其取到保留站,避免指令流出时才到寄存器中取数据,这就使得即将执行的指令从相应的保留站中取得操作数,而不是从寄存器中。指令的执行结果也是直接送到等待数据的其它保留站中去。因而,对于连续的寄存器写,只有最后一个才真正更
11、新寄存器中的内容。一条指令流出时,存放操作数的寄存器名被换成为对应于该寄存器保留站的名称(编号)。11. 假定有一个处理机台数为p的共享存储器多处理机系统。设m为典型处理机每条指令执行时对全局存储器进行访问的平均次数。设t为共享存储器的平均存取时间,x为使用本地存储器的单处理机MIPS速率。再假定在多处理机的每台处理机上执行n条指令。 根据参数m,t,x,n和p,确定多处理机的有效MIPS速率。 假设一台多处理机有p=32台RISC处理机,m=0.4,t=1us,要使多处理机的有效性能达到56MIPS,需要每台处理机的MIPS速率是多少(即x=?)? 假设有p=32台CISC处理机用在上述多处
12、理机系统中,每台处理机的x=2MIPS、m=1.6、t=1us,试问多处理机系统的有效MIPS速率是多少?参考答案: 解:(1)有效MIPS速率=p*x/(1+m*x*t) (2)32*x/(10.4*x*1)=56,得x=5.83 (3)有效MIPS速率=p*x/(1+m*x*t)=32*2/(1+1.6*2*1)=15.2412. 假设对指令Cache的访问占全部访问的75%;而对数据Cache的访问占全部访问的25%。Cache的命中时间为1个时钟周期,失效开销为50 个时钟周期,在混合Cache中一次load或store操作访问Cache的命中时间都要增加一个时钟周期,32KB的指令C
13、ache的失效率为0.15%,32KB的数据Cache的失效率为3.77%,64KB的混合Cache的失效率为0.95%。又假设采用写直达策略,且有一个写缓冲器,并且忽略写缓冲器引起的等待。试问指令Cache和数据Cache容量均为32KB的分离Cache和容量为64KB的混合Cache相比,哪种Cache的失效率更低?两种情况下平均访存时间各是多少?参考答案:解:(1)根据题意,约75%的访存为取指令。因此,分离Cache的总体失效率为:(75%0.15%)(25%3.77%)1.055%; 容量为128KB的混合Cache的失效率略低一些,只有0.95%。 (2)平均访存时间公式可以分为指
14、令访问和数据访问两部分: 平均访存时间指令所占的百分比(读命中时间读失效率失效开销) 数据所占的百分比(数据命中时间数据失效率失效开销) 所以,两种结构的平均访存时间分别为: 分离Cache的平均访存时间75%(10.15%50)25%(13.77%50)(75%1.075)(25%2.885)1.5275 混合Cache的平均访存时间75%(10.95%50)25%(110.95%50)(75%1.475)(25%2.475)1.725因此,尽管分离Cache的实际失效率比混合Cache的高,但其平均访存时间反而较低。分离Cache提供了两个端口,消除了结构相关。13. 给定以下的假设,试计
15、算直接映象Cache和两路组相联Cache的平均访问时间以及CPU的性能。由计算结果能得出什么结论?(1) 理想Cache情况下的CPI为2.0,时钟周期为2ns,平均每条指令访存1.2次;(2) 两者Cache容量均为64KB,块大小都是32字节;(3) 组相联Cache中的多路选择器使CPU的时钟周期增加了10;(4) 这两种Cache的失效开销都是80ns;(5) 命中时间为1个时钟周期;(6) 64KB直接映象Cache的失效率为1.4,64KB两路组相联Cache的失效率为1.0。参考答案:解: 平均访问时间命中时间失效率失效开销平均访问时间1-路=2.0+1.4% *80=3.12
16、ns平均访问时间2-路=2.0*(1+10%)+1.0% *80=3.0ns两路组相联的平均访问时间比较低CPUtime=(CPU执行+存储等待周期)*时钟周期CPU time=IC(CPI执行+总失效次数/指令总数*失效开销) *时钟周期=IC(CPI执行*时钟周期)+(每条指令的访存次数*失效率*失效开销*时钟周期)CPU time 1-way=IC(2.0*2+1.2*0.014*80)5.344ICCPU time 2-way=IC(2.2*2+1.2*0.01*80)5.36IC相对性能比:5.36/5.344=1.003直接映象cache的访问速度比两路组相联cache要快1.04
17、倍,而两路组相联Cache的平均性能比直接映象cache要高1.003倍。因此这里选择两路组相联。14. 假设一台计算机具有以下特性:(1) 95的访存在Cache中命中;(2) 块大小为两个字,且失效时整个块被调入;(3) CPU发出访存请求的速率为109字/s;(4) 25的访存为写访问;(5) 存储器的最大流量为109字/s(包括读和写);(6) 主存每次只能读或写一个字;(7) 在任何时候,Cache中有30的块被修改过;(8) 写失效时,Cache采用按写分配法。现欲给该计算机增添一台外设,为此首先想知道主存的频带已用了多少。试对于以下两种情况计算主存频带的平均使用比例。(1) 写直
18、达Cache;(2) 写回法Cache。参考答案:解:采用按写分配(1)写直达cache访问命中,有两种情况:读命中,不访问主存;写命中,更新cache和主存,访问主存一次。访问失效,有两种情况:读失效,将主存中的块调入cache中,访问主存两次;写失效,将要写的块调入cache,访问主存两次,再将修改的数据写入cache和主存,访问主存一次,共三次。上述分析如下表所示。访问命中访问类型频率访存次数Y读95%*75%=71.3%0Y写95%*25%=23.8%1N读5%*75%=3.8%2N写5%*25%=1.3%3一次访存请求最后真正的平均访存次数=(71.3%*0)+(23.8%*1)+(
19、3.8%*2)+(1.3%*3)0.35已用带宽=0.35109/10 9 =35.0%(2)写回法cache访问命中,有两种情况:读命中,不访问主存;写命中,不访问主存。采用写回法,只有当修改的cache块被换出时,才写入主存;访问失效,有一个块将被换出,这也有两种情况:如果被替换的块没有修改过,将主存中的块调入cache块中,访问主存两次;如果被替换的块修改过,则首先将修改的块写入主存,需要访问主存两次;然后将主存中的块调入cache块中,需要访问主存两次,共四次访问主存。访问命中块为脏频率访存次数YN95%*70%=66.5%0YY95%*30%=28.5%0NN5%*70%=3.5%2
20、NY5%*30%=1.5%4所以:一次访存请求最后真正的平均访存次数=66.5*028.5%*0+3.5%*2+1.5%*4=0.13已用带宽0.1310 9/10 913%15. 降低Cache失效率有哪几种方法?简述其基本思想。参考答案:答:常用的降低Cache失效率的方法有下面几种:(1) 增加Cache块大小。增加块大小利用了程序的空间局部性。(2) 增加Cache的容量。(3) 提高相联度,降低冲突失效。(4) 伪相联Cache,降低冲突失效。当对伪相联Cache进行访问时,首先是按与直接映象相同的方式进行访问。如果命中,则从相应的块中取出所访问的数据,送给CPU,访问结束。如果不命
21、中,就将索引字段的最高位取反,然后按照新索引去寻找“伪相联组”中的对应块。如果这一块的标识匹配,则称发生了“伪命中”。否则,就访问下一级存储器。(5) 硬件预取技术。在处理器提出访问请求前预取指令和数据。(6) 由编译器控制的预取,硬件预取的替代方法,在编译时加入预取的指令,在数据被用到之前发出预取请求。(7) 编译器优化,通过对软件的优化来降低失效率。(8) “牺牲”Cache。在Cache和其下一级存储器的数据通路之间增设一个全相联的小Cache,存放因冲突而被替换出去的那些块。每当发生不命中时,在访问下一级存储器之前,先检查“牺牲”Cache中是否含有所需的块。如果有,就将该块与Cache中某个块做交换,把所需的块从“牺牲”Cache 调入Cache。