资源描述:
《实验四 指令调度.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验四指令调度一、实验目的通过本实验,加深对指令调度的理解,了解指令调度技术对CPU性能改进的好处。二、实验内容1.通过Configuration菜单中的“Floatingpointstages”选项,把除法单元数设置为3,把加法﹑乘法﹑除法的延迟设置为3个时钟周期。2.用WinDLX模拟器运行调度前的程序sch-before.s。记录程序执行过程中各种相关发生的次数以及程序执行的总时钟周期数。3.用WinDLX模拟器运行调度后的程序sch-after.s,记录程序执行过程中各种相关发生的次数以及程序执行的总时钟周期数。4.根据记录结果,比较调度前和调度后的性能
2、。5.论述指令调度对于提高CPU性能的意义。三、实验环境Win7旗舰版+WinDLXWinDLX流水线描述:DLX执行指令的流水线是一个5段流水线,包括取指段(IF)、译码段(ID)、执行段(EX)、访存段(MEM)和写回段(WB)。其中,执行段分为4个单元,分别是:intEX单元(整数操作),faddEX单元(浮点加减),fmulEX(浮点乘法),fdivEX(浮点除法)。每个单元的个数和延迟时间,可以通过菜单进行设定。四、实验步骤1.通过通过Configuration菜单中的“Floatingpointstages”选项,把除法单元数设置为3,把加法﹑乘法﹑
3、除法的延迟设置为3个时钟周期;图1设置执行单元数量、延迟1.取消定向技术;图2取消定向技术2.装载程序选择File/LoadCodeorData,按如下步骤操作,可将sch_before.s程序装入主存;点击sch_before.sà点击select按钮à点击load按钮3.点击F7,但不运行,观察情况并总结;4.将程序换成sch_after.s,重复步骤3,4,并对两次情况惊醒对比总结。一、截图分析1、指令调度前【分析1】iff1,$DATA(r0)cvti2ff7,f1nop数据相关(写后读)截图的第2条指令中寄存器f1等待前一条指令的计算结果,故延迟了2个
4、周期。【分析2】cvti2ff7,f1nopdivff1,f8,f7divff2,f9,f7数据相关(写后读)截图第3条指令的寄存器f7等待第1条指令的计算结果,故延迟了1个周期。【分析3】divff2,f9,f7addff3,f1,f2数据相关(写后读)截图第2条指令的寄存器f2等待第一条指令的计算结果,且浮点计算执行时间需要3个时钟周期,故总共延迟4个周期。【分析4】addff3,f1,f2divff10,f3,f7数据相关(写后读)截图第2条指令的寄存器f3等待第一条指令的计算结果,且浮点计算执行时间需要3个时钟周期,故总共延迟4个周期。【分析5】divf
5、f5,f12,f7multff6,f4,f5数据相关(写后读)截图第2条指令的寄存器f5等待第一条指令的计算结果,且浮点计算执行时间需要3个时钟周期,故总共延迟4个周期。【分析6】multff6,f4,f5divff13,f6,f7数据相关(写后读)截图第2条指令的寄存器f6等待第一条指令的计算结果,且浮点计算执行时间需要3个时钟周期,故总共延迟4个周期。【小结】程序执行共37个时钟周期,总共发生了6次数据相关(写后读),无其他相关发生。由于数据相关(写后读),延迟了19个周期,占51.35%;因1次trapstalls,延迟了5个周期,占13.51%;无其他延
6、迟。1、指令调度后【分析1】iff1,$DATA(r0)cvti2ff7,f1nop数据相关(写后读)截图的第2条指令中寄存器f1等待前一条指令的计算结果,故延迟了2个周期。【分析2】cvti2ff7,f1nopdivff1,f8,f7divff2,f9,f7数据相关(写后读)截图第3条指令的寄存器f7等待第1条指令的计算结果,故延迟了1个周期。【分析3】divff2,f9,f7divff4,f11,f7divff5,f12,f7addff3,f1,f2数据相关(写后读)截图第4条指令的寄存器f2等待第1条指令的计算结果,故延迟了2个周期。【分析4】divff5
7、,f12,f7addff3,f1,f2multff6,f4,f5数据相关(写后读)截图第3条指令的寄存器f5等待第1条指令的计算结果,故延迟了1个周期。【分析5】addff3,f1,f2multff6,f4,f5divff10,f3,f7数据相关(写后读)截图第3条指令的寄存器f3等待第1条指令的计算结果,故延迟了2个周期。【分析6】multff6,f4,f5divff10,f3,f7divff13,f6,f7数据相关(写后读)截图第3条指令的寄存器f6等待第1条指令的计算结果,故延迟了1个周期。【小结】指令调度后,程序共执行了27个时钟周期,总共发生了6次数据
8、相关(写后读),无其他相