实验六 指令调度实验报告1.实验目得: 通过本实验,加深对指令调度得理解,了解指令调度技术对 CPU 性能改进得好处。2、 实验内容: (1) 通过 Configuration 菜单中得“Floating point stages”选项,把除法单 元数设置为 3,把加法﹑乘法﹑除法得延迟设置为 3 个时钟周期。 (2) 用 WinDLX 模拟器运行调度前得程序 schbefore、s 。记录程序执行过程中各种相关发生得次数以及程序执行得总时钟周期数。 (3) 用 WinDLX 模拟器运行调度后得程序 schafter、s ,记录程序执行过程中各种相关发生得次数以及程序执行得总时钟周期数。 (4) 根据记录结果,比较调度前与调度后得性能。 (5) 论述指令调度对于提高 CPU 性能得意义。3.实验程序:程序 schbefore、s ;; Example to illustrate instruction scheduling;、data、global ONEONE: 、word 1、text、global mainmain:lf f1,ONE ;turn divf into a movecvti2f f7,f1 ;by storing in f7 1 innop ;floatingpoint formatdivf f1,f8,f7 ;move Y=(f8) into f1divf f2,f9,f7 ;move Z=(f9) into f2addf f3,f1,f2divf f10,f3,f7 ;move f3 into X=(f10)divf f4,f11,f7 ;move B=(f11) into f4divf f5,f12,f7 ;move C=(f12) into f5multf f6,f4,f5divf f13,f6,f7 ;move f6 into A=(f13)Finish: trap 0调度后得程序 schafter、s ;; Example to illustrate instruction scheduling reordered instructions;、data、global ONEONE: 、word 1、text、global mainmain:lf f1,ONE ;turn divf into a movecvti2f f7,f1 ;by storing in f7 1 innop ;floatingpoint formatdivf f1,f8,f7 ;move Y=(f8) into f1divf f2,f9,f7 ;move Z=(f9) into f2divf f4,f11,f7 ;move B=(f11) into f4divf f5,f12,f7 ;move C=(f12) into f5addf f3,f1,f2multf f6,f4,f5divf f10,f3,f7 ;move f3 into X=(f10)divf f13,f6,f7 ;move f6 into A=(f13)Finish: trap 04、 实验原理由于相关得存在,使得指令中得下一条指令不能在指定得时钟周期执行。流水线冲突会给指令在流水线中得执行带来许多问题,假如不能很好地解决冲突问题,轻则影响流水线得性能,重则导致错误得执行结果。而对于各种冲突,都有可能用指令调度来解决。6、 实验步骤1>设置除法单元数设置为 3,把加法﹑乘法﹑除法得延迟设置...