计算机系统结构第二版张晨曦考前资料大题大全看完必过_第1页
计算机系统结构第二版张晨曦考前资料大题大全看完必过_第2页
计算机系统结构第二版张晨曦考前资料大题大全看完必过_第3页
计算机系统结构第二版张晨曦考前资料大题大全看完必过_第4页
计算机系统结构第二版张晨曦考前资料大题大全看完必过_第5页
已阅读5页,还剩20页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、将计算机系统中某一功能的处理速度加快15倍,但该功能的处理时间仅占整个系统运行时间的40%,则采用此方法改进后,能使整个系统的性能提高多少?注意:计算的是系统的加速比。用的是系统改进前的时间/系统改进后的时间。引入两个概念:可改进比例:Fe部件加速比:Se公式是推倒出来的。解:由题意知:Se=15,Fe=40%=0.4根据Amdahl定律可知:Sn=1=1沁1.6(1-Fe)+F(1-0.4)+04Se1.5采用此方法改进后,能使整个系统的性能提高原来的1.6倍假设FP指令的比例为25%,其中,FPSQR占全部指令的比例为2%,FP操作的CPI为4,FPSQR操作的CPI为20,其他指令的平均

2、CPI为1.33。现有两种改进方案,第一种是把PFSQR操作的CPI减至2,第二种是把所有FP操作的CPI减至2,试比较两种方案对系统性能的提高程度。(求得是系统的平均时钟周期CPI)注意几个公式:执行程序所需的时钟周期数:平均时钟周期*指令条数CPU时间二执行程序所需的时钟周期数X时钟周期时间二CPIxICx时钟周期时间这个公式改进任何一个参数都可以提高CPU性能,但是这些参数往往是互相关联的,很难做到能单独的改进某一个参数指标而不影响其他的两个指标。所以用到了CPU时钟周期数。CPU时钟周期数=KcPIXIC)iii=1CPU时间=(CPIXIC)X时钟周期时间iii=1CPI=时钟周期数

3、IC工CPICPI=时钟周期数ICEIC(CPIX)ICiICi=1解:没有改进之前,每条指令的平均时钟周期CPI为:CPI=工(CPIX)=(4X25%)+(1.33x75%)二2iICi=1采用第一种方案:所有FP操作的CPI由CPIfp=4减至CPIfp=2,则整个系统的平均时钟周期为:CPI1=CPI-(CPIfp-CPIfp)x25%=2-(4-2)x25%=1.5采用第二种方案:将FPSQR操作的CPI由20减至2,则整个系统的指令的平均时钟周期数为:CPI2=CPI-(CPIfpsqr-CPIfpsqr)x2%=2-(20-2)x2%=1.64综上:从降低整个系统的指令平均时钟周

4、期程度来看,第二种方案优于第一种方案。课后题:将计算机系统中某一功能的处理速度加快20倍,但该功能的处理时间仅占整个系统运行时间的40%,则采用该方法改进后,能使整个系统的性能提高多少?假设浮点数指令(FP)的比例为30%,其中浮点数平方根的指令(FPSQR)占全部指令的4%,FP操作的CPI为5,FPSQR操作的CPI为,其他指令的平均CPI为1.25。现在有两种改进方案。第一种是把FPSQR操作的CPU减至3。第二种改进方案是把所有FP操作的CPI减至3。试比较两种方案对系统性能的提高。第二章大题流水线的性能指标吞吐率:TP(ThroughPut):是指单位时间内流水线所完成的任务数量或输

5、出结果的数量n任务数nTP=T处理完n个任务所用的时间kAt+(n-l)AtKnl=max=段数X执行一段所用的时间+(任务数-1)xAtAt以上是在各段执行时间都相等的情况下的吞吐率。各段时间不相等时,流水线的最大吞吐量和实际吞吐率都有时间最长的段决定,这个段就成了这个流水线的瓶颈。这是瓶颈段一直处于忙碌状态,而其他各段在许多时间内都是空闲的硬件使用率低i=1TP=max=一fAti+(n-l)max(Atl,At2,)max(皿,心)消除瓶颈段的方法:(1)细分瓶颈段把瓶颈段细分成三个子流水功能段,从而使流水线各段的处理时间都相等。串行执行。(2)重复设置瓶颈段根据前面段的多少设置一样多的

6、瓶颈段,然后达到并行执行的效果,当然也要增加硬件设施。流水线的加速比是指使用顺序处理一批任务所用的时间与流水线使用流水处理方式处理同一批任务所用的时间之比o_T_顺序执行所用的时间_nkAt_nkT流水处理所用的时间(k+n-1)Atk+n-1k流水线的效率即流水线设备的利用率。它是指流水线中设备实际使用时间与整个运行时间的比值每个段的效率:nAtne(k+n-1)Atk+n-1Eel+Eel+e2+e3+.ke1knAtkTn个任务实际占用的时空区面积f=cxd3)最后计算结果g=exf画出时空图At1)由图可知:它在18个的时间中,给出了7个结果,所以吞吐率为:TP=-2_18AtAtAt

7、(2)如果不用流水线,由于一次求和需6,一次求积需4,则产AtAt生上述7个结果共需要(4x6+3x4)=36所以加速比为S=36At=218At3)该流水线的效率可以由阴影区的面积和8个段总时空区的面积的比值求得例3.2有一条动态多功能流水线由5段组成,如图所示。加法用1.3.4.5段,乘法用1.2.5段。且第四段的时间为2t,其余各段时间为t,流水线的输出可以直接返回输入端或者暂存于相应的流水线寄存器中。若在该流水线计算(AxB)一i,试计算其吞吐率、加速比、和效率。解:首先应该选择适合流水线工作的算法。对于本题算法如下:先计算:a=AxB11b=AxB22c=AxB33d=AxB44再计

8、算:e=a+bf=c+d最后计算g=e+f画出时空图如下图所示:(1)由图所示,它在16个t的时间中给出了7个结果,所以吞吐率为:TP=TP=716At(2)如果不使用流水线,由于求一次积需3t,一次求和需5t,则产生上述7个结果共需要(4x3+3X5)t=27t。所以加速比为:27A27At16At沁1.693)该流水线的效率可由阴影区的面积和5个段总时空区的面积的比值求得:4x4x3+3x55x16沁0.338一指令流水线如下所示*1出50ns50ns100ns*1出50ns50ns100ns200ns1)求连续输入10条指令,该流水线的实际吞吐率和效率;2)该流水线的“瓶颈”在哪一段?请

9、采取两种不同的措施消除此“瓶颈”。对于你所给出的两种新的流水线,连续输入10条指令时,其实际吞吐率和效率各是多少?解:(1)T=1EAt+(n-l)Atpipelineimaxi=1=(50+50+100+200)+9x200=2200(ns)TP=%.=%20(ns-1)pipeline区Ati4005E=TP-=TP-0-=q45.45%m411(2)瓶颈在3、4段。变成八级流水线(细分)出4_4出4_4一一1t2一3_1一3_2一4_150ns50ns50ns50ns50ns50ns50ns50ns50ns50ns50nsTT=1EAt+(n-1)Atpipelineimaxi=1=50

10、 x8+9x50=850(ns)tp=tp=ntpipeline=/85(ns-1)艺AtiE=TP-4=TP-400=10q58.82%m817重复设置部件段丄段丄4_44_44_34_24_13_23_121850nsTPTP二nTpipelineE=400Xl850 x8=10175882%3.14有一条静态多功能流水线由5段组成,加法用1、3、4、5段,乘法用1、2、5段,第3段的时间为2At,其余各段的时间均为t,而且流水线的输出可以直接返回输入端或暂存于相应的流水寄存器中。现要在该流水线上计算4,画出其时空图,并计算其吞吐率、加速比和效率。廿(A+B.)iii=1加法tt乘法解:首

11、先,应选择适合于流水线工作的算法。对于本题,应先计算A+B、a2+b2、A3+B3和A4+B4;再计算(A+bjx(a2+b2)和(人3+b3)x(a4+b4);然后求总的结果。其次,画出完成该计算的时空图,如图所示,图中阴影部分表示该段在工作。B1B2B3B4BDCXD由图可见,它在18个眈时间中,给出了7个结果。所以吞吐率为:TP=-18At如果不用流水线,由于一次求积需3眈,一次求和需5眈,则产生上述7个结果共需(4x5+3x3)t=29to所以加速比为:S=29At=1.61该流水线的效率可由阴影区的面积和5个段总时空区的面积的比值求得:3.16在MIPS流水线上运行如下代码序列:LO

12、OP:LWR1,0(R2)DADDIUR1,R1,#1SWR1,0(R2)DADDIUR2,R2,#4DSUBR4,R3,R2BNEZR4,LOOP其中:R3的初值是R2+396。假设:在整个代码序列的运行过程中,所有的存储器访问都是命中的,并且在一个时钟周期中对同一个寄存器的读操作和写操作可以通过寄存器文件“定向。问:(1)在没有任何其它定向(或旁路)硬件的支持下,请画出该指令序列执行的流水线时空图。假设采用排空流水线的策略处理分支指令,且所有的存储器访问都命中Cache,那么执行上述循环需要多少个时钟周期?(2)假设该流水线有正常的定向路径,请画出该指令序列执行的流水线时空图。假设采用预测

13、分支失败的策略处理分支指令,且所有的存储器访问都命中Cache,那么执行上述循环需要多少个时钟周期?(3)假设该流水线有正常的定向路径和一个单周期延迟分支,请对该循环中的指令进行调度,你可以重新组织指令的顺序,也可以修改指令的操作数,但是注意不能增加指令的条数。请画出该指令序列执行的流水线时空图,并计算执行上述循环所需要的时钟周期数。解:寄存器读写可以定向,无其他旁路硬件支持。排空流水线。指令12345678910111213141516171819202122LWIFIDEXMWBDADDIUIFSSIDEXMWBSWIFSSIDEXMWBDADDIUIFIDEXMWBDSUBIFSSIDE

14、XMWBBNEZIFSSIDEXMWBLWIFSSIFIDEXMWB第i次迭代(i=0.98)开始周期:l+(iX17)总的时钟周期数:(98X17)+18=1684有正常定向路径,预测分支失败。指令12345678910111131415LWIFIDEXMWBDADDIUIFIDSEXMWBSWIFSIDEXMWBDADDIUIFIDEXMWBDSUBIFIDEXMWBBNEZIFIDEXMWBLWIFmissmissIFIDEXMWB第i次迭代(i=0.98)开始周期:1+(iX10)总的时钟周期数:(98X10)+11=991有正常定向路径。单周期延迟分支。LOOP:LWR1,0(R2)

15、DADDIUR2,R2,#4DADDIUR1,R1,#1DSUBR4,R3,R2BNEZR4,LOOPSWR1,-4(R2)第i次迭代(i=0.98)开始周期:1+(iX6)总的时钟周期数:(98X6)+10=598指令1234567891011LWIFIDEXMWBDADDIUIFIDEXMWBDADDIUIFIDEXMWBDSUBIFIDEXMWBBNEZIFIDEXMWBSWIFIDEXMWBLWIFIDEXMWB2.13在一台单流水线多操作部件的处理机上执行下面的程序,每条指令的取指令、指令译码需要一个时钟周期,MOVE、ADD和MUL操作分别需要2个、3个和4个时钟周期,每个操作都在

16、第一个时钟周期从通用寄存器中读操作数,在最后一个时钟周期把运算结果写到通用寄存器中。k:MOVER1,R0;R1(RO)k+1:MULR0,R2,R1;RO(R2)X(R1)k+2:ADDR0,R2,R3;RO(R2)+(R3)画出指令执行过程的流水线时空图,并计算完成这3条指令共需要多少个时钟周期?解:由题意可认位该指令流水线由六个功能段取指、译码、取数、运一、运二和存数等组成,则程序指令执行过程的流水线时空图如下图所示。若3条指令顺序流动,共需要9个时钟周期。链接技术:当前一条指令的结果寄存器是后一条指令的源寄存器、且不存在任何其他冲突时:(不存在功能部件冲突、不存在源寄存器冲突、不存在目

17、的寄存器冲突如下:)就可以采用连接技术来提高性能。V3-V1+V2V5-V3xV4向量流水线链接:是指具有先写后读相关的两条指令,在不出现功能部件冲突和其他Vi冲突的情况下,可以把功能部件链接起来进行流水处理,以达到加快执行的目的。由于同步的要求,连接时Gray-1中把向量数据元素送往向量功能部件以及把结果存入向量寄存器都需要一拍时间。从存储器把数据送入访存功能部件也需要一拍时间。例4-1考虑在Cray-1上利用链接技术执行以下4条执行;V0-存储器/访存取向量7拍V2-V0+V1向量加3拍V3-V2A3/A3左移4拍V5-V3AV4/与操作:2拍画出链接示意图,并求该链接流水线的通过时间,如

18、果向量长度为64,则需要多少拍才能得到全部结果。解:对于这4条指令分析可知:它们即不存在部件冲突,也不存在寄存器冲突,相邻两条指令之间都存在先写后读相关,因而可以把访存流水线、向量加流水线、向量移位流水线以及向量逻辑运算流水线连接成一个较长的流水线。该链接流水线的通过时间为:通过时间=1+7+1+1+3+1+1+4+1+1+2=23在向量长度为64的情况下,得到所有结果共需要:23+64=87拍。例4.2若要在Cray-1上进行向量运算:D二Ax(B+C),假设向量长度N=64,向量元素为浮点数,且向量B/C已经存放在V0和V1中。画出链接示意图,并分析非链接执行和链接执行两种情况下的执行时间

19、。解:用以下三条向量完成上述运算。v3-A/访存取得向量AV2=V0+V1/向量B和向量C进行浮点加V4-V2XV3/浮点乘,结果存入V4分析:第1.2条向量既没有Vi冲突,也没有功能部件冲突,可以并行执行。第三条指令与第二条指令之间均存在先写后读相关。而且不存在功能部件冲突,因此可以将第三条与第(1)(2)条指令链接执行。如果全用串行的方式,执行时间为:(1+6+1)+(N-1)+(1+6+1)+(N-1)+(1+7+1)+(N-1)=3N+22(拍)如果前两条指令并行执行,然后再串行执行:(1+6+1)+(N-1)+(1+7+1)+(N-1)=2N+15(拍)(3)如果前两条指令并行执行,

20、并且与第三条指令链接执行:(1+6+1)+(1+7+1)+(N-1)=N+16(拍)课后题4.5:3.18在CRAY-1机器上,按照链接方式执行下述4条向量指令(括号中给出了相应功能部件的执行时间),如果向量寄存器和功能部件之间的数据传送需要1拍,试求此链接流水线的通过时间是多少拍?如果向量长度为64,则需多少拍才能得到全部结果?voe存储器(从存储器中取数:7拍)V2&V0+V1(向量加:3拍)V3eV2A3(按(A3)左移:4拍)V5eV3AV4(向量逻辑乘:2拍)解:通过时间就是每条向量指令的第一个操作数执行完毕需要的时间,也就是各功能流水线由空到满的时间,具体过程如下图所示。要得到全部

21、结果,在流水线充满之后,向量中后继操作数继续以流水方式执行,直到整组向量执行完毕。T通过=1了十D+(1-H3十1)十;1+4+1)十1+2十1)=23(Jtl)戛十二TiS过十(64-1)=23+63=&6(柏)课后题4.6:3在CRAY-1机器上,按照链接方式执行下述5条向量指令(括号中给出了相应功能部件的执行时间),如果向量寄存器和功能部件之间的数据传送需要1拍,试求此链接流水线的通过时间是多少拍?如果向量长度为64,则需多少拍才能得到全部结果?voe存储器(从存储器中取数:7拍)V2&V0+V1(向量加:3拍)V3&V2VA3(按(A3)左移:5拍)V5eV3AV4(向量逻辑乘:2拍)

22、存储器-V练习题:指出下列指令存在什么冲突?请给后消除冲突的方法及消除冲突后的指令代码?1)DIV.DF0,F2,F42)ADD.DF6,F0,F83)S.DF6,0(R1)4)SUB.DF8,F10,F145)MUL.DF6,F10,F8ADD和SUB存在反相关,会引起WAR读后写相关ADD和MUL存在输出相关,会引起WAW写后写相关Tomasulo算法(托马苏洛算法)可以通过使用寄存器重命名来消除。DIV.DF0,F2,F4ADD.DT2,F0,F8;滞后S.DT2,0(R1);滞后SUB.DT1,F10,F14;超前MUL.DF6,F10,T1;超前Cache性能分析:不命中率和平均访问

23、时间都不如CPU时间这个指标好:CPU时间=(CPU执行周期数+存储器停顿周期数)X时钟周期时间存储器停顿的时钟周期数=访存次数X不命中率X不命中开销CPU时间=(ICXCPI+访存次数X不命中率X不命中开销)X时钟周期时间CPU时间=IC(CPI+访存次数x不命中率x不命中开销)x时钟周期时间IC例7.1:假设Cache不命中开销为50个时钟时期,当不考虑存储器停顿时,所有的指令的执行时间都是2.0个时钟周期,访问Cache的不命中率为2%,平均每条指令访存1.33次。试分析Cache对性能的影响。解:直接用公式计算CPU时间=ICX(CPI+每条指令的平均访存次数X不命中率X不命中开销)X

24、时钟周期时间有Cache=ICX(2.0+1.33X2%X50)x时钟周期时间=IC一3.33x时钟周期时间例7.2考虑两种不同组织结构的Cache;直接映像Cache和两路组相连Cache。假设:理想Cache(命中率为100%)情况下CPI为2.0,时钟周期为2ns,平均,平均每条指令访存1.3次两种Cache容量均为64KB,块大小都是32字节。在组相连Cache中,由于多路选择器的存在而使CPU的时钟周期增加到原来的1.10倍,这是因为对Cache的访问总是处于关键路径上,对CPU的时钟周期有直接的影响。这两种结构的不命中开销都是70ns。命中时间为1个时钟周期(2ns),64kb直接

25、映像cache的不命中率为1.4%。相同容量的两路组相连cache的不命中率为1.0%。试问它们对CPU的性能有什么影响?先求平均访存时间,然后再计算CPU性能。对于平均访存时间:=2.98(ns)平均访存时间2路二命中时间+不命中率x不命中开销=2.0+(0.010 x70)=2.90(ns)两路组相连的Cache的平均访存时间比较低。CPU性能为CPU时间=ICX(CPIx时钟周期时间+每条指令的平均访存次数x不命中率x不命中开销x时钟周期时间)用70ns代替“不命中开销x时钟周期时间”,并用CPI=2,时钟周期时间=2,每条指令的平均访存时间=1.3带入的CPU时间1路=ICX2.0 x

26、2+(1.3x0.014x70)=5.17xICCPU时间2路=ICX2.0 x2x1.10+(1.3x0.010 x70)=5.31xIC相对性能比为:TOC o 1-5 h zCPU时间2路5.31XIC5.314亠=101CPU时间1路5.27xIC5.27*和平均访问时间的比较结果相反,直接映像Cache的平均性能稍好一些,这是因为在两路组相连的情况下,虽然不命中次数减少了,但所有指令的时钟周期时间都增加了10%。由于CPU是我们进行评价的标准。而且直接映像Cache更简单,所以本例中直接映像Cache是更好的选择。7.6组相连Cache的不命中率比相同容量直接映像的不命中率低,由此能

27、否得出结论,采用组相连一定能带来性能上的提高?为什么?答:不一定。因为组相连命中率的提高是以增加命中时间为代价的,组相连需要增加多路选择开关。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%。又假设采用写直达策略,且有一个写缓冲器,并且忽略写缓冲器引起

28、的等待。试问指令Cache和数据Cache容量均为32KB的分离Cache和容量为64KB的混合Cache相比,哪种Cache的不命中率更低?两种情况下平均访存时间各是多少?解:(1)根据题意,约75%的访存为取指令。因此,分离Cache的总体不命中率为:75%x0.39%+25%x4.82%=1.49%容量为64KB的混合Cache的失效率略低一些,只有1.35%。(2)平均访存时间公式可以分为指令访问和数据访问两部分:平均访存时间=指令所占的百分比x(读命中时间+读不命中率x不命中开销)+数据所占的百分比x(数据命中时间+数据不命中率x不命中开销)所以,两种结构的平均访存时间分别为:分离C

29、ache的平均访存时间=75%x(1+0.39%x50)+25%x(1+4.82%x50)=1.745混合Cache的平均访存时间=75%x(1+1.35%x50)+25%x(1+1+1.35%x50)=1.925因此,尽管分离Cache的实际不命中率比混合Cache的高,但其平均访存时间反而较低。分离Cache提供了两个端口,消除了结构相关。5.11给定以下的假设,试计算直接映象Cache和两路组相联Cache的平均访问时间以及CPU的性能。由计算结果能得出什么结论?理想Cache情况下的CPI为2.0,时钟周期为2ns,平均每条指令访存1.2次;两者Cache容量均为64KB,块大小都是3

30、2字节;组相联Cache中的多路选择器使CPU的时钟周期增加了10%这两种Cache的不命中开销都是80ns命中时间为1个时钟周期;64KB直接映象Cache的不命中率为1.4%,64KB两路组相联Cache的失效率为1.0%解:平均访问时间=命中时间+不命中率X不命中开销平均访问时间1-路=2.0+1.4%*80=3.12ns平均访问时间2-路=2.0*(1+10%)+1.0%*80=3.0ns两路组相联的平均访问时间比较低CPU时间=ICX(CPIx时钟周期时间+每条指令的平均访存次数x不命中率x不命中开销x时钟周期时间)用80ns代替“不命中开销x时钟周期时间”,并用CPI=2,时钟周期时间=2,每条指令的平均访存时间=1.3带入的CPU时间1路=IC(2.0*2+1.2*0.014*80)=5.344ICCPU时间2路=IC(2.2*2+1.2*0.01*80)=5.36IC相对性能比:CPU时间2路5.31XIC5.36=1003CPU时间1路5.27xIC5.344二路组相连映像的平均访问时间较好,而直接映像的CP

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论