计算机体系结构||指令的调度和延迟分布(3)

实验3 指令的调度和延迟分布

3.1实验目的

(1)加深对指令调度技术的理解。

(2)加深对延迟分支技术的理解。

(3)熟练掌握用指令调度技术来解决流水线中的数据冲突的方法。

(4)进一步理解指令调度技术对CPU性能的改进。

(5)进一步理解延迟分支技术对CPU性能的改进。

3.2实验平台

实验平台采用指令级和流水线操作级模拟器MIPSsim。

3.3实验内容和实验截图

首先要掌握MIPSsim模拟器的使用方法。详见附录。

  1. 启动MIPSsim。

2.根据教材中关于流水线各段操作的描述,进一步理解流水线窗口中各段的功能,掌握各流水寄存器的含义(双击各段,就可以看到各流水寄存器的内容)。

3.选择“配置”→“流水方式”选项,使模拟器工作于流水方式下。

4.用指令调度技术解决流水线中的结构冲突与数据冲突。

1)启动MIPSsim。

2)用MIPSsim的“文件”→“载入程序”选项来加载schedule.asm(在模拟器所在文件夹下的“样例程序”文件夹中)。

  1. 关闭定向功能。这是通过在“配置”菜单中关闭“定向”(使该项前面没有“√”号)来实现的。

  1. 执行所载入的程序。通过查看统计数据和时钟周期图,找出并记录程序执行过程中各种冲突发生的次数、发生冲突的指令组合,以及程序执行的总时钟周期数。

第1对指令组合

LW$r2,0($r1)

ADD$r4,$r0,$r2

 

第2对指令冲突

ADD$r4,$r0,$r2

SW$r4,0($r1)

 

第3对指令冲突

SW$r4,0($r1)

LW$r6,4($r1)

 

第4对指令冲突

ADD$r8,$r6,$r1

MUL$r12,$r10,$r1

 

第5对指令冲突

ADD$r16,$r12,$r1

ADD$r18,$r16,$r1

 

第6对指令冲突

ADD$r18,$r16,$r1

SW$r18,16($r1)

 

第7对指令冲突

SW$r18,16($r1)

LW$r20,8($r1)

 

第8对指令冲突

MUL$r22,$r20,$r14

MUL$r24,$r26,$r14

5)采用指令调度技术对程序进行指令调度,消除冲突。将调度后的程序保持到after-schedule.asm中。

6)载入after-schedule.asm。

7)执行该程序,观察程序在流水线中的执行情况,记录程序执行的总时钟周期数;

8)根据记录结果,比较调度前和调度后的性能。论述指令调度对于提高CPU性能的作用。

通过比较调度前和调度后的性能,可以清晰地看到指令调度对于提高CPU性能的作用。指令调度可以优化指令执行顺序,减少依赖关系带来的性能损失,提高执行单元的利用率,从而显著提升CPU的整体性能。

5.用延迟分支减少分支指令对性能的影响。

1)启动MIPSsim。

  1. 载入branch.asm。

  1. 关闭延迟分支功能。这是通过在“配置”→“延迟槽”选项来实现的。

  1. 执行该程序。观察并记录发生分支延迟的时刻。

分支延迟时刻:6,9,13,21,24,28。

  1. 记录执行该程序所花的总时钟周期数。

  1. 假设延迟槽为一个,对branch.asm进行指令调度,然后保存到“delayed-branch.asm”中。

  1. 载入delayed-branch.asm。

  1. 打开延迟分支功能。

  1. 执行该程序,观察其时钟周期图。

  1. 记录执行该程序所花的总时钟周期数。

  1. 对比上述两种情况下的时钟周期图。

采用延迟分支的时钟周期短 ,性能高;未采用延迟分支的时钟周期长,性能低 。

2.根据记录结果,比较没采用延迟分支和采用了延迟分支的性能。论述延迟分支对于提高CPU性能的作用。

根据记录结果,对比了采用延迟分支和没采用延迟分支的性能。延迟分支有助于提高CPU性能,因为它能够减少由于分支指令引起的流水线停顿。通过延迟分支,CPU能够在等待分支结果的同时继续执行后续指令,从而提高了指令级并行度,减少了性能损失。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值