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

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

ID:40003207

大小:721.11 KB

页数:19页

时间:2019-07-17

实验五 指令调度和延迟分支_第1页
实验五 指令调度和延迟分支_第2页
实验五 指令调度和延迟分支_第3页
实验五 指令调度和延迟分支_第4页
实验五 指令调度和延迟分支_第5页
资源描述:

《实验五 指令调度和延迟分支》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

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

2、线IF段(取指):取指令,控制器必须具备能自动地从存储器中取出指令的功能ID段(译码):指令译码、读寄存器EX段(执行):执行、访存有效地址字段MEM段(访存):存储器访问WB(写回寄存器堆):结果写回寄存器在该窗口中,每一个矩形方块代表一个流水段,它们用不同的颜色填充。在该窗口的左侧是IF到WB段,其右边为浮点部件。浮点部件分有浮点加法部件(fadd)、浮点乘法部件(fmul)和浮点除法部件(fdiv)三种。在菜单“配置”à“常规配置”中修改浮点部件个数,可看到该窗口中对应类型的浮点部件个数会发生相应的变化。(3)、选择“配置”->“流水方式”选项,使模拟器

3、工作于流水方式下。(4)、用指令调度技术解决流水线中的数据冲突。1)启动MIPSsim。文案大全实用文档2)加载schedule.s。3)关闭定向功能。文案大全实用文档4)执行所载入的程序。通过查看统计数据和时钟周期图,找出并记录程序执行过程中各种冲突发生的次数、发生冲突的指令组合以及程序执行的总时钟周期数。调度前:RAW发生的冲突周期数:2、3、5、6、8、9、11、12、15、16、18、19、21、22、25、26文案大全实用文档文案大全实用文档由以上可知:RAW数据冲突发生了16次,其中load停顿6次,自陷停顿1次,停顿周期总数17次执行过程中各种冲

4、突发生次数:16次程序执行的总时钟周期数:33次文案大全实用文档发生冲突的指令组合:TEQ$r0,$r0ADDIU$r1,$r0,56LW$r2,0($r1)与上条写后读冲突;ADD$r4,$r0,$r2与上条指令写后读冲突;SW$r4,0($r1)与上条指令写后读冲突;LW$r6,4($r1)ADD$r8,$r6,$r1与上条指令写后读冲突;MUL$r12,$r10,$r1ADD$r16,$r12,$r1与上条指令写后读冲突;ADD$r18,$r16,$r1与上条指令组件冲突SW$r18,16($r1)与上条指令写后读冲突;LW$r20,8($r1)MUL$

5、r22,$r20,$r14与上条指令写后读冲突;5)采用指令调度技术对程序进行指令调度,消除冲突。将调度后的程序存到after-schedule.s中。文案大全实用文档6)载入after-schedule.s。7)文案大全实用文档执行该程序。观察程序在流水线中的执行情况,记录程序执行的总时钟周期数。调度后:执行总时钟周期数为19,其中RAW停顿2次、load停顿0次、自陷停顿1次。停顿总周期占总执行周期的15.78947%。8)根据记录结果,比较调度前和调度后的性能。论述指令调度对于提高CPU性能的作用。根据记录结果:指令调度后时钟总周期数从33降低到19,指

6、令调度使指令顺序重新组合,可以消除部分的数据冲突,从而通过指令调度技术显著地提高了CPU的使用率,大大减少了指令冲突的次数,提高了CPU的性能。指令调度的优劣直接影响CPU性能的发挥好坏,好的指令调度可以让停顿周期大幅度减少。(5)、用延迟分支减少分支指令对性能的影响。文案大全实用文档1)启动MIPSsim。2)载入branch.s。3)关闭延迟分支功能。文案大全实用文档单击“配置”à“延迟槽”,使处于关闭状态即为默认状态2)执行该程序。观察并记录发生分支延迟的时刻。没有采用分支延迟:答:发生分支延迟的时刻为:第18周期。文案大全实用文档文案大全实用文档文案大

7、全实用文档2)记录执行该程序所用的总时钟周期数。执行周期总数为38,其中RAW停顿16次、load停顿4次、控制停顿0次、自陷停顿1次。总停顿周期占总执行周期的50%。3)假设延迟槽有1个,对branch.s进行指令调度,然后保存到“delayed-branch.s”中。文案大全实用文档2)载入delayed-branch.s。3)打开延迟分支功能。单击“配置”à“延迟槽”,使该项前有√来实现4)执行该程序。观察其时钟周期图。文案大全实用文档采用分支延迟:2)记录执行该程序所用的总时钟周期数。总时钟周期数为26。其中RAW停顿4次、load停顿2次、自陷停顿1

8、次。总停顿周期占总执行周期的19.23

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。