资源描述:
《计算机体系结构指令调度实验报告》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、实验六指令调度实验报告1.实验目的:通过本实验,加深对指令调度的理解,了解指令调度技术对CPU性能改进的好处。2.实验內容:(1)通过6^/?/7识/2加7<)/2菜单屮的“Floatingpointstages”选项,把除法单元数没置为3,把加法、乘法、除法的延迟设置为3个时钟周期。(2)用WinDLX模拟器运行调度前的程序sch-before.s。记录程序执行过程中各种相关发生的次数以及程序执行的总吋钟周期数。(3)用WinDLX模拟器运行调度后的程序sch-after.s,记录程序执行过程中各种相关发生的次数以及程序执行的总时钟周期数。(4)根据记录结果,比较调度前和调度后的性能。(
2、5)论述指令调度对于提高CPU性能的意义。3.实验程序:程序sch-before.sExampletoillustrateinstructionscheduling•data.globalONEONE:.word1.text•globalmainmain:Iffl,ONE;lurndivfintoamovecvti2ff7,f1;bystoringinf71innop;floating-pointformatdivffl,f8,f7;moveY=(f8)intofldivff2,f9,f7;moveZ=(f9)intof2实验六指令调度实验报告1.实验目的:通过本实验,加深对指令调度的理解
3、,了解指令调度技术对CPU性能改进的好处。2.实验內容:(1)通过6^/?/7识/2加7<)/2菜单屮的“Floatingpointstages”选项,把除法单元数没置为3,把加法、乘法、除法的延迟设置为3个时钟周期。(2)用WinDLX模拟器运行调度前的程序sch-before.s。记录程序执行过程中各种相关发生的次数以及程序执行的总吋钟周期数。(3)用WinDLX模拟器运行调度后的程序sch-after.s,记录程序执行过程中各种相关发生的次数以及程序执行的总时钟周期数。(4)根据记录结果,比较调度前和调度后的性能。(5)论述指令调度对于提高CPU性能的意义。3.实验程序:程序sch-
4、before.sExampletoillustrateinstructionscheduling•data.globalONEONE:.word1.text•globalmainmain:Iffl,ONE;lurndivfintoamovecvti2ff7,f1;bystoringinf71innop;floating-pointformatdivffl,f8,f7;moveY=(f8)intofldivff2,f9,f7;moveZ=(f9)intof2addff3,fl,f2divff10,f3,f7;movef3intoX=(f10)divff4,f11,f7;moveB=(f11)
5、intof4divff5,f12,f7;moveC=(fl2)intof5multff6,f4,f5divff13,f6,f7:movef6intoA=(fl3)Finish:trap0调度/rS•的程序sch-after.s;Exampletoillustrateinstructionscheduling-reorderedinstructions.data.globalONEONE:.word1.text.globalmainmain:Iff1,ONE;turndivfintoamovecvti2ff7,f1;bystoringinf71innop;floating-pointform
6、atdivff1,f8,f7;moveY=(f8)intofldivff2,f9,f7;moveZ=(f9)intof2divff4,fll,f7:moveB=(fll)intof4divff5,fl2,f7;moveC=(fl2)intof5addff3,fl,f2multff6,f4,f5divfflO,f3,f7;movef3intoX=(f10)divff13,f6,f7;movef6intoA=(f13)Finish:trap04.实验原理由于相关的存在,使得指令中的下一条指令不能在指定的时钟周期执行。流水线冲突会给指令在流水线中的执行带来许多问题,如果不能很好地解决冲突问题,轻
7、则影响流水线的性能,重则导致错误的执行结果。而对于各种冲突,都有可能用指令调度来解决。6.实验步骤1〉设賈除法单元数设賈为3,把加法、乘法、除法的延迟设賈为3个时钟周期:FloatingPointS'E5SCount:AdditionUnits:13MultiplicationUnits:13DivisionUnits:33Delay:NumberofUnitsineachClass:1<=M<=8,Delay(Cloc