《计算机组成原理实验五》由会员分享,可在线阅读,更多相关《计算机组成原理实验五(13页珍藏版)》请在金锄头文库上搜索。
1、计算机组成原理计算机组成原理实验报告实验报告学院(系): 软件学院 专 业: 软件工程 班 级: 13 级 java1 班 学 号: 1315925031 姓 名: 王浩 2015 年 11 月 17 日实验实验 5 指令调度和延迟分支指令调度和延迟分支一一. .实验目的实验目的(1)加深对指令调度技术的理解。 (2)加深对延迟分支技术的理解。 (3)熟练掌握用指令调度技术解决流水线中的数据冲突的方法。 (4)进一步理解指令调度技术对 CPU 性能的改进。 (5)进一步理解延迟分支技术对 CPU 性能的改进。二二. .实验内容和步骤实验内容和步骤: :(1)、启动 MIPSsim。(2)、根据
2、前面的相关知识中关于流水线各段操作的描述,进一步理解流水线窗口中各段的功能,掌握各流水寄存器的含义。(3)、选择“配置”-“流水方式”选项,使模拟器工作于流水方式下。(4)、用指令调度技术解决流水线中的数据冲突。1)启动 MIPSsim。2)加载 schedule.s。3)关闭定向功能。4)执行所载入的程序。通过查看统计数据和时钟周期图,找出并记录程序执行过程中各种冲突发生的次数、发生冲突的指令组合以及程序执行的总时钟周期数。执行总周期数为 33,其中 RAW 停顿 16 次、load 停顿 6 次、自陷停顿 1 次。 停顿总周期占程序执行周期的:51.51515% 发生冲突的指令组合: AD
3、DIU $r1,$r0,A LW $r2,0($r1)与上条写后读冲突; ADD $r4,$r0,$r2 SW $r4,0($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)采用指令调度技术对程序进行指令调度
4、,消除冲突。将调度后的程序存到 after-schedule.s 中。 内容如下: .text main: ADDIU $r1,$r0,A LW $r2,0($r1) MUL $r12,$r10,$r1 ADD $r4,$r0,$r2 SW $r4,0($r1) LW $r6,4($r1) ADD $r8,$r6,$r1 MUL $r24,$r26,$r14 ADD $r16,$r12,$r1 LW $r20,8($r1) ADD $r18,$r16,$r1 SW $r18,16($r1) MUL $r22,$r20,$r14 TEQ $r0,$r0 .data A: .word 4,6,86
5、)载入 after-schedule.s。7)执行该程序。观察程序在流水线中的执行情况,记录程序执行的总时钟周期数。总时钟周期数:278)根据记录结果,比较调度前和调度后的性能。论述指令调度对于提高 CPU 性能的作用。指令调度使得指令之间的相互不利影响降到最低,减少 cpu 空闲时间,从而使 得 cpu 得到最大程度的使用,提高了 cpu 性能。(5) 、用延迟分支减少分支指令对性能的影响。1)启动 MIPSsim。2)载入 branch.s。3)关闭延迟分支功能。4)执行该程序。观察并记录发生分支延迟的时刻。5)记录执行该程序所用的总时钟周期数。15 个时钟周期时,BGTZ $r5,loo
6、p 发生分支延迟;30 个时钟周期时,BGTZ $r5,loop 发生分支延迟总的时钟周期:386)假设延迟槽有 1 个,对 branch.s 进行指令调度,然后保存到“delayed-branch.s”中。 内容如下.text main: ADDI $r2,$r0,1024 ADD $r3,$r0,$r0 ADDI $r4,$r0,8 loop: ADDI $r1,$r1,1 SW $r1,0($r2) ADDI $r3,$r3,4 SUB $r5,$r4,$r3 BGTZ $r5,loop LW $r1,0($r2) ADD $r7,$r0,$r6 TEQ $r0,$r07)载入 dela
7、yed-branch.s。8)打开延迟分支功能。9)执行该程序。观察其时钟周期图。 10)记录执行该程序所用的总时钟周期数。总的时钟周期:3411)对比上述两种情况下的时钟周期图。 关闭延迟分支时钟周期图使用延迟分支时钟周期图12)根据记录结果,比较没采用延迟分支和采用了延迟分支的性能之间的不同。论述延迟分支对于提高 CPU 性能的作用。采用延迟分支可以尽最大可能地减少流水线空等的时间,从而可以使 cpu 的利 用率提高。三三. .实验结果分析实验结果分析指令调度让指令顺序重新组织后能消除部分的数据冲突,指令调度的优劣 直 接影响 CPU 性能的发挥好坏,好的指令调度可以让停顿周期大幅度减少。只要 分支延迟槽中的指令时有用的,流水线中就没有停顿,这是延迟分支的方法就 能很好的减少分支延迟,所以放入延迟槽中的指令是很重要的,对 CPU 性能的 影响是显著的。四四. .实验心得实验心得通过本次实验我学习到了分支延迟调度的方式以及这些调度方法的实现过 程。使我对该章的知识有了深入的了解。