ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:716.55KB ,
资源ID:30090756      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/30090756.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(实验五 指令调度和延迟分支.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

实验五 指令调度和延迟分支.docx

1、实验五 指令调度和延迟分支实验5 指令调度和延迟分支一.实验目的1加深对指令调度技术的理解。2加深对延迟分支技术的理解。3熟练掌握用指令调度技术解决流水线中的数据冲突的方法。4进一步理解指令调度技术对CPU性能的改良。5进一步理解延迟分支技术对CPU性能的改良。二.实验内容和步骤:(1)、启动MIPSsim。(2)、根据前面的相关知识中关于流水线各段操作的描述,进一步理解流水线窗口中各段的功能,掌握各流水存放器的含义。指令流水线有取指(IF)、译码(ID)、执行(EX)、访存(MEM)、写回存放器堆(WB)5个过程段,共有7条指令连续输入此流水线IF段(取指):取指令,控制器必须具备能自动地从

2、存储器中取出指令的功能ID段译码:指令译码、读存放器EX段执行:执行、访存有效地址字段MEM段访存:存储器访问WB写回存放器堆:结果写回存放器在该窗口中,每一个矩形方块代表一个流水段,它们用不同的颜色填充。在该窗口的左侧是IF到WB段,其右边为浮点部件。浮点部件分有浮点加法部件fadd、浮点乘法部件fmul和浮点除法部件fdiv三种。在菜单“配置“常规配置中修改浮点部件个数,可看到该窗口中对应类型的浮点部件个数会发生相应的变化。(3)、选择“配置-“流水方式选项,使模拟器工作于流水方式下。(4)、用指令调度技术解决流水线中的数据冲突。 1启动MIPSsim。 2加载。 3关闭定向功能。4)执行

3、所载入的程序。通过查看统计数据和时钟周期图,找出并记录程序执行过程中各种冲突发生的次数、发生冲突的指令组合以及程序执行的总时钟周期数。调度前:RAW发生的冲突周期数:2、3、5、6、8、9、11、12、15、16、18、19、21、22、25、26由以上可知:RAW数据冲突发生了16次,其中load停顿6次,自陷停顿1次,停顿周期总数17次执行过程中各种冲突发生次数:16次程序执行的总时钟周期数:33次发生冲突的指令组合:TEQ $r0,$r0ADDIU $r1,$r0,56 LW $r2,0($r1) 与上条写后读冲突;ADD $r4,$r0,$r2 与上条指令写后读冲突;SW $r4,0(

4、$r1 与上条指令写后读冲突;LW $r6,4($r1) ADD $r8,$r6,$r1 与上条指令写后读冲突; MUL $r12,$r10,$r1 ADD $r16,$r12,$r1 与上条指令写后读冲突; ADD $r18,$r16,$r1 与上条指令组件冲突 SW $r18,16($r1) 与上条指令写后读冲突; LW $r20,8($r1) MUL $r22,$r20,$r14与上条指令写后读冲突;5)采用指令调度技术对程序进行指令调度,消除冲突。将调度后的程序存到中。6)载入。7)执行该程序。观察程序在流水线中的执行情况,记录程序执行的总时钟周期数。调度后:执行总时钟周期数为19,其

5、中RAW停顿2次、load停顿0次、自陷停顿1次。停顿总周期占总执行周期的15.78947%。8)根据记录结果,比拟调度前和调度后的性能。论述指令调度对于提高CPU性能的作用。根据记录结果:指令调度后时钟总周期数从33降低到19,指令调度使指令顺序重新组合,可以消除局部的数据冲突,从而通过指令调度技术显著地提高了CPU的使用率,大大减少了指令冲突的次数,提高了CPU的性能。指令调度的优劣直接影响CPU性能的发挥好坏,好的指令调度可以让停顿周期大幅度减少。5、用延迟分支减少分支指令对性能的影响。1启动MIPSsim。2)载入。3)关闭延迟分支功能。单击“配置“延迟槽,使处于关闭状态 即为默认状态

6、4)执行该程序。观察并记录发生分支延迟的时刻。没有采用分支延迟:答:发生分支延迟的时刻为:第18周期。5)记录执行该程序所用的总时钟周期数。执行周期总数为38,其中RAW停顿16次、load停顿4次、控制停顿0次、自陷停顿1次。总停顿周期占总执行周期的50%。6)假设延迟槽有1个,对进行指令调度,然后保存到“delayed-branch.s中。7)载入。 8)翻开延迟分支功能。单击“配置“延迟槽,使该项前有来实现9)执行该程序。观察其时钟周期图。采用分支延迟:10)记录执行该程序所用的总时钟周期数。总时钟周期数为26。其中RAW停顿4次、load停顿2次、自陷停顿1次。总停顿周期占总执行周期的

7、%。11)比照上述两种情况下的时钟周期图。 见上图12)根据记录结果,比拟没采用延迟分支和采用了延迟分支的性能之间的不同。论述延迟分支对于提高CPU性能的作用。答:没采用分支延迟的时候周期总数为38,采用分支后的周期总数为26,可知,在使用延迟槽后,指令在运行到跳转指令时,不会出现延迟等待,那么能够提高CPU的性能。并且在使用延迟后,指令在运行到跳转指令时,不会出现延迟等待,那么能够提高CPU的性能。所以只要分支延迟槽中的指令是够用的,流水线中就没有停顿,这时延迟分支的方法就能很好的减少分支延迟。所以放入延迟槽中的指令是很重要的,对CPU性能的影响是很显著的!分支延迟槽 (Branch del

8、ay slot),简单地说就是位于分支指令后面的一条指令,不管分支发生与否其总是被执行,而且位于分支延迟槽中的指令先于分支指令提交 (commit)。三.实验结果分析实验结论:指令调度让指令顺序重新组织后能消除局部的数据冲突,指令调度的优劣直接影响CPU性能的发挥好坏,好的指令调度可以让停顿周期大幅度减少。只要分支延迟槽中的指令时有用的,流水线中就没有停顿,这是延迟分支的方法就能很好的减少分支延迟,所以放入延迟槽中的指令是很重要的,对CPU性能的影响是显著的。1.了解了什么是指令调度以及指令调度对CPU性能的影响:指令调度:为了减少停顿,对于无法使用定向技术解决的问题,可以通过指令调度让指令顺

9、序重新组织后能消除局部的数据冲突,指令调度的优劣直接影响CPU性能的发挥好坏,好的指令调度可以让指令周期大幅度减少。指令调度对CPU性能的影响:指令调度技术减少了指令冲突的次数,提高了CPU的性能。2.延迟分支:位于分支指令后面的一条指令,不管分支发生与否其总是被执行,而且位于分支延迟槽中的指令先于分支指令提交。只要分支延迟槽中的指令时有用的,流水线中就没有停顿,这是延迟分支的方法就能很好的减少分支延迟,所以放入延迟槽中的指令是很重要的,对CPU性能的影响是显著的。延迟分支对CPU性能的影响: 延迟分支减少分支指令能够稍微提高GPU的性能。3.了解到执行分支指令的结果有两种:一种是分支“成功,

10、PC的值改变为分支转移的目标地址,另一种情况分支“不成功,这是PC的值保持正常递增,指向顺序的下一条指令。四.实验心得通过本次实验锻炼了我的动手操作能力,我对指令调度和延迟分支有了进一步的了解和掌握,我学到了分支延迟调度的方法,并初步掌握了用指令调度技术解决指令流水线中的数据冲突问题的方法。理解了指令调度技术和延迟分支技术对CPU性能的改良。我学习到了指令调度方式以及延迟分支调度方式对CPU性能的影响,就指令调度方式来,说通过使发生冲突的指令改变顺序,或者删除其中一局部指令,或者增加一局部指令,对CPU的性能影响是不一样的,使我对该章的知识有了深入的了解并且能够运用。这对我以后的计算机组成原理的学习打下了坚实的根底,让我不断提高,增长了我的知识。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1