计算机系统结构习题课()-万继光讲解学习.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《计算机系统结构习题课()-万继光讲解学习.ppt》由会员分享,可在线阅读,更多相关《计算机系统结构习题课()-万继光讲解学习.ppt(51页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1 1/101/101计算机系统结构习题课()-万继光习题习题1.10计算机系统有三个部件可以改进,这三个部件的加速比如下:部件加速比130;部件加速比220;部件加速比310;(1)如果部件1和部件2的可改进比例为30,那么当部件3的可改进比例为多少时,系统的加速比才可以达到10?(2)如果三个部件的可改进比例为30、30和20,三个部件同时改进,那么系统中不可加速部分的执行时间在总执行时间中占的比例是多少?习题习题1.10习题习题1.11假设浮点数指令FP指令的比例为30%,其中其中浮点数平方根FPSQR占全部指令的比例为4%,FP操作的CPI为5,FPSQR操作的CPI为20,其他指令的
2、平均CPI为1.25。现有两种改进方案,第一种:把FPSQR操作的CPI减至3第二种:把所有的FP操作的CPI减至3试比较两种方案对系统性能的提高程度。v解法1:v利用原始CPI的唯一性,先使用已知条件求出原始CPI,再求出除去FPSQR指令外其他指令的平均CPI,最后比较改进后的CPI大小。v原始CPI=530%+1.25(1-30%)=2.375v设除FPSQR外其余指令的平均CPI为Xv则2.375=204%+(1-4%)X,解出X=1.640625v方案1:CPI1=34%+1.640625(1-4%)=1.695v方案2:CPI2=330%+1.25(1-30%)=1.775v结论:
3、方案1导致的新CPI更小,性能更好习题习题1.11v解法2:v用Amdahl公式求。记指令总条数=M,时钟周期长度=CYCLE。v原始总时间Told=0.3M5CYCLE+0.7M1.25CYCLEv=M2.375CYCLEvTFP=0.3M5CYCLE=M1.5CYCLE,v所占比例为1.5/2.37563%vTFPSQR=0.04M20CYCLE=M0.8CYCLE,v所占比例为0.8/2.37534%v方案1:Se=20/3,Fe34%,Sn1=1/(1-Fe)+Fe/Se1.4v方案2:Se=5/3,Fe63%,Sn2=1/(1-Fe)+Fe/Se1.3v结论:方案1导致加速比更大,性
4、能更好习题习题2.14(补充)(补充)vMIPS指令集。指令集。v人工模拟以下MIPS程序的单条指令运行方式,在表中用16进制编码记录每一步产生的结果(不得借助模拟软件)。v.datavn:.word3;n和x是偏移地址vx:.double0.5v.textvLDR1,n(R0);R1装入双字3(64位)vL.DF0,x(R0);F0装入双精度浮点数0.5(64位)vDADDIR2,R0,1;R21vMTC1R2,F11;把通用寄存器R2中的低32位传送到浮点寄存器F11的低32位vCVT.D.LF2,F11;把F11中的数据转换成双精度浮点数,送给F2。vloop:MUL.DF2,F2,F0
5、;F2F2*F0vDADDIR1,R1,-1;decrementR1by1vBNEZR1,loop;ifR10continuevHALT;此条不填表v:MIPS浮点数的格式是IEEE754习题习题2.14vIEEE754v为便于软件的移植,浮点数的表示格式应该有统一标准(定义)。1985年IEEE提出了IEEE754标准。v该标准规定基数为2,阶码E用移码表示,尾数M用原码表示,根据原码的规格化方法,最高数字位总是1,该标准将这个1缺省存储,使得尾数表示范围比实际存储的多一位。习题习题2.14v双精度浮点数类型类型数符数符阶码阶码尾数尾数总位数总位数指数偏移指数偏移短实数1位8位23位32位1
6、27长实数1位11位52位64位10230.5的二进制表示:0.1=1.0*(10)-1尾数:(1).0000阶码:-1+1023=0 x3fe 0 x3fe00000000000001的二进制表示:1.0=1.0*(10)0尾数(1).0000阶码:0+1023=0 x3ff 0 x3ff0000000000000习题习题2.14序号结果寄存器结果值(16进制)1R100000000000000032F03fe00000000000003R200000000000000014F1100000000000000015F23ff00000000000006F23fe00000000000007R
7、100000000000000028无无9F23fd000000000000010R1000000000000000111无无12F23fc000000000000013R1000000000000000014无无vn:.word3vx:.double0.5vvLDR1,n(R0)v L.DF0,x(R0)v DADDIR2,R0,1v MTC1R2,F11v CVT.D.LF2,F11vloop:MUL.DF2,F2,F0v DADDIR1,R1,-1v BNEZR1,loopv HALT习题习题3.8(时空图,性能指标)(时空图,性能指标)12345乘法加法tttt2t习题习题3.8如图,
8、在18个t时间中,给出了7个结果,所以TP=7/18t如果不用流水线,一次求积3t,一次求和5t,则T=(4*5+3*3)t=29t,因此S=29t/18t=1.61E=(4*5+3*3)/5*18=0.322考虑改为动态,怎么计算习题习题3.10(单功能非线性流水线调度)(单功能非线性流水线调度)v有一个5段流水线,各段执行时间均为t,其预约表如下 时间时间功能段功能段1234567S1S2S3S4S5(1)画出流水线任务调度的状态转移图。(2)分别求出允许不等时间间隔调度和等时间间隔调度的两种最优调度策略,以及这两种调度策略的流水线最大吞吐率。(3)若连续输入10个任务,求这两种调度策略的
9、流水线实际吞吐率和加速比。习题习题3.1010010110110110011110111155225544习题习题3.10(2)由状态转移图可得不发生段争用冲突的调度策略以及平均延迟时间如下所示。调度策略调度策略平均延迟时间平均延迟时间调度策略调度策略平均延迟时间平均延迟时间(2,2,5)3t(4,5)4.5t(2,5)3.5t(5)5t(4)4tu由上可知,允许不等时间间隔调度的最优调度策略是(2,2,5),流水线最大吞吐率为:1/3t。u等时间间隔的调度的最优调度策略是(4),流水线最大吞吐率为:1/4t。习题习题3.10习题习题3.11(相关,定向,指令调度)(相关,定向,指令调度)v在
10、改进的DLX流水线(按照图3.12)上运行如下代码序列:vLOOP:LWR1,0(R2)vADDIR1,R1,#1vSW0(R2),R1vADDIR2,R2,#4vSUBR4,R3,R2vBNZR4,LOOPv其中,R3的初始值是R2396。假设:在整个代码序列的运行过程中,所有的存储器访问都是命中的,并且在一个时钟周期中对同一个寄存器的读操作和写操作可以通过寄存器“定向”。问:v(1)在没有任何其它定向硬件的支持下,请画出该指令序列执行的流水线时空图。假设采用排空流水线的策略处理分支指令,且所有的存储器访问都可以命中Cache,那么执行上述循环需要多少个时钟周期?v(2)假设该DLX流水线有
11、正常的定向路径,请画出该指令序列执行的流水线时空图。假设采用预测分支失败的策略处理分支指令,且所有的存储器访问都可以命中Cache,那么执行上述循环需要多少个时钟周期?v(3)假设该DLX流水线有正常的定向路径,请对该循环中的指令进行调度。注意可以重新组织指令的顺序,也可以修改指令的操作数,但是不能增加指令的条数。请画出该指令序列执行的流水线时空图,并计算执行上述循环需要的时钟周期数?采用定向技术消除数据相关采用定向技术消除数据相关习题习题3.11(1)需要进行396/4=99次循环,由于每次分支都清空流水线。从上图可以看出每次循环需要17个时钟周期,因此总共需要的时钟周期数为99171168
12、412345678910111213141516171819LOOP:LWR10(R2)IFIDEXMWBADDIR1R1#1IFIDSSEXMWBSW0(R2)R1IFSSIDSSEXMWBADDIR2R2#4SSIFSSIDEXMWBSUBR4R3R2SSIFIDSSEXMWBBNZR4LOOPIFSSIDSS EXM WBIFSSSSIF习题习题3.11(2)需要进行396/4=99次循环,由于每次分支都清空流水线。从上图可以看出每次循环需要10个时钟周期,因此总共需要的时钟周期数为9910+1991123456789101112LOOP:LW R1 0(R2)IFIDEXMWBADDI
13、R1R1#1IFIDSEXMWBSW0(R2)R1IFSIDEXMWBADDIR2R2#4SIFIDEXMWBSUBR4R3R2IFIDEXMWBBNZR4LOOPIFIDEXMWBLW R1 0(R2)IFmissmissIF指令执行重新排序如下:lwr1,0(r2);加法寄存器R1取数(R2)addir2,r2,#4;指针R2指针R2+4addir1,r1,#1;R1R1+1Subr4,r3,r2;R4R3-R2bnezr4,Loop;若R40,循环sw-4(r2),r1;分支延迟槽,存数(R2-4)R1LOOP:LWR1,0(R2)ADDIR1,R1,#1SW0(R2),R1ADDIR2
14、,R2,#4SUBR4,R3,R2BNZR4,LOOPLOOP:LWR1,0(R2)ADDIR2,R2,#4ADDIR1,R1,#1SW0(R2),R1SUBR4,R3,R2BNZR4,LOOPLOOP:LWR1,0(R2)ADDIR2,R2,#4ADDIR1,R1,#1SW-4(R2),R1SUBR4,R3,R2BNZR4,LOOPLOOP:LWR1,0(R2)ADDIR2,R2,#4ADDIR1,R1,#1SUBR4,R3,R2BNZR4,LOOPSW-4(R2),R1习题习题3.11(3)习题习题3.11(3)有正常定向路径。单周期延迟分支。loop:lw r1,0(r2)addi r2
15、,r2,#4addi r1,r1,#1sub r4,r3,r2bnz r4,loopsw r1,-4(r2)第i次迭代(i 0.98)开始周期:1(i 6)总的时钟周期数:(986)10598习题习题5.8(分支预测技术)(分支预测技术)v假设有一条长流水线,仅仅对条件转移指令使用分支目标缓冲。假设分支预测错误的开销为4个时钟周期,缓冲不命中的开销为3个时钟周期。假设命中率为90%,预测精度为90%,分支频率为15%,没有分支的基本CPI为1。v(1)求程序执行的CPI。v(2)相对固定的2个时钟周期延迟的分支处理,哪种更快?v解:v(1)程序执行的CPI=没有分支的基本CPI+分支带来的额外
16、开销v额外开销=15%*(90%命中*10%预测错误*4+10%没命中*3)v=0.099所以程序执行的CPI=1+0.099=1.099。v(2)采用固定的2个时钟周期延迟的分支处理vCPI=1+15%*2=1.3v由(1)(2)知分支目标缓冲方法执行速度快。习题习题5.9(分支预测技术)(分支预测技术)v假定分支目标缓冲的命中率为90%,程序中无条件转移指令为5%,其它指令的CPI为1。假设分支目标缓冲包含分支目标指令,允许无条件转移指令进入分支目标缓冲,则CPI是多少。假定原来的CPI为1.1。v(1)原来不采用分支目标缓冲器BTB情况下v实际CPI=理想CPI+各种停顿拍数v=1+5%
17、L=1.1v解出L=2v(2)现在采用分支目标缓冲器BTB情况下v实际CPI=理想CPI+各种停顿拍数v=1+5%10%2=1.01习题习题5.11(超标量(超标量/超长指令字超长指令字/超流水)超流水)v设指令流水线由取指令,分析指令和执行指令3个部件构成,每个部件t,连续12条指令,分别画出ILP为4的超标量,超长指令字处理机和超流水线的时空图,并分别计算相对标量流水处理机的加速比.v1.标量流水处理机vTk=(k+n-1)t=(3+12-1)t=14tv2.超长指令字处理机v采用指令级并行技术,ILP=4,12个任务组装成3条长指令,每条含4条小指令,n=3。Tk=(k+n-1)t=(3
18、+3-1)t=5t,v加速比S=14t/5t=2.8习题习题5.11v3.超标量处理机vTk=(k+n-1)t=(3+3-1)tv=5tv加速比S=14t/5t=2.8v4.超流水处理机vILP=4,12个任务在4条时钟v依次错开0.25t的流水线上流过,v所以可取k=12,n=12,时钟=t/4。vTk=(k+n-1)t/4=(12+12-1)t/4=5.75t,v加速比S=14t/5.75t=2.435习题习题6.7(GCD测试方法)测试方法)v在使用GCD测试之前,必须先对这段代码进行“规范化”修改下标从1开始,而且每次循环后增加1。vFor(i=1;i=100;i+=2)ai=ai-1
19、;v规范化为:For(k=1;k=50;k+)a2K=a2K-1;v在这个循环中a=2,b=0,c=2,d=-1,v这样GCD(a,c)=2,d-b=-1,v由于前者不能够整除后者;v该循环不存在循环携带的真数据相关。习题习题6.8(循环展开)(循环展开)表表6.16.1本节使用的浮点流水线的延迟本节使用的浮点流水线的延迟产生结果的指令产生结果的指令使用结果的指令使用结果的指令延迟延迟(cycles)浮点计算浮点计算另一个浮点计算另一个浮点计算3浮点计算浮点计算浮点浮点store(S.D)2浮点浮点Load(L.D)浮点计算浮点计算1浮点浮点Load(L.D)浮点浮点store(S.D)0整数
20、运算,分支延迟和load需要一个周期延迟,如果分支的寄存器在前一条指令计算出,也需要一个周期延迟,因为整数计算在第3个周期完成,而分支第2个周期就用到DADDIU R1,R1,#-87(空转空转)8BNE R1,R2,Loop9 习题习题6.8在不进行指令调度的情况下,程序的实际执行情况如下:在不进行指令调度的情况下,程序的实际执行情况如下:指令流出时钟指令流出时钟Loop:L.D F0,0(R1)1L.D F4,0(R2)2(空转空转)3MUI.D F0,F0,F44(空转空转)5(空转空转)6(空转空转)7ADD.D F2,F0,F28DADDIU R1,R1,#-8 9DADDIU R2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机系统 结构 习题 万继光 讲解 学习
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内