资源描述:
《计算机系统结构实验-循环展开和指令调度.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、中央民族大学实验报告学生姓名:学号:一、实验室名称:信息工程学院实验室二、实验项目名称:循环展开和指令调度二、实验原理:1、由于相关的存在,使得指令中的下一条指令不能在指定的时钟周期执行。流水线冲突会给指令在流水线中的执行带来许多问题,如果不能很好地解决冲突问题,轻则影响流水线的性能,重则导致错误的执行结果。而对于各种冲突,都有可能用指令调度来解决。2、到目前为止,几乎所有的处理器都利用流水线来使指令重叠并行执行,以达到提高性能的目的。这种指令之间存在的潜在并行性称为指令级并行。增加指令之间的并
2、行性最简单的和最常用的方法,是开发循环的不同迭代之间存在的并行性。在把循环展开后,通过重命名和指令调度来开发更多的并行性,这样就可以充分发挥流水线的作用。四、实验目的:1、加深对循环并行性、指令调度技术、循环展开技术以及寄存器换名技术的理解;2、熟悉用指令调度技术来解决流水线中的数据相关的方法;3、了解循环展开、指令调度等技术对CPU性能的改进。13五、实验内容:1、用指令调度技术解决流水线中的结构相关与数据相关2、用循环展开、寄存器换名以及指令调度提升性能。六、实验器材(设备、元器件)及平台:
3、装有WinDLX模拟器的PC微型机一台,平台即为WinDLX模拟器七、实验步骤及操作:一、用指令调度技术解决流水线中的结构相关与数据相关:(1)用DLX汇编语言编写代码文件,命名为instructions,程序中包括数据相关与结构相关(假设:加法、乘法、除法部件各有两个,延迟时间都是3个时钟周期)。(2)通过Configiguration菜单中的“Flouatingpointstages”选项,把加法、乘法、除法部件的个数设置为2个,把延迟都设置为3个时钟周期。(3)用WinDLX运行程序。记录
4、程序执行过程中各种相关发生的次数、发生相关的指令组合,以及程序执行的总的时钟周期数。(4)采用指令调度技术对程序进行指令调度,消除相关。(5)用WinDLX运行调度后的程序,观察程序在流水线中的执行情况,记录程序执行的总时钟周期数。(6)根据记录结果,比较调度前和调度后的性能。论述指令调度对于提高CPU性能的意义。二、用循环展开、寄存器换名以及指令调度提高性能:(1)用DLX汇编语言编写代码文件,命名为test.s,程序中包含一个循环次数为4的整数倍的简单循环。(2)用WinDLX运行该程序。记
5、录执行过程中各种相关发生的次数以及程序执行的总时钟周期数。(3)将循环展开3次,将4个循环体组成的代码替换原来的循环体,并对程序做相应的修改。然后对新的循环体进行寄存器换名和指令调度。(4)用WinDLX运行修改后的程序,记录执行过程中各种相关发生的次数以及程序执行的总的时钟周期。(5)根据记录结果,比较循环展开、指令调度前后的性能。13八、实验数据及结果分析:、用指令调度技术解决流水线中的结构相关与数据相关:1、instructions文件的代码:.data«globalAA:.word:二,
6、text.glohalnainnaln:Iffl.McvtiEfn.fi蕉fl中的数di^fftf-fT;fl=fB/f7■11vff2.f%£7;f2=f^/f7jddff3,ft,f2;殍fl+f2divfflO,f3,f7,flO=f3/fT■livfflfll.f7:f4=fll/f7di^f电fl2ff7缶H2/fTmu]ifFS,f丸珏,助F好四fL3,箕■』fTFini曲:^rapn¥2、运行程序部分截图3SPipelineInt-StagesfaddEXfmulEXfdivEXI
7、FIDintEXMFIMWB13134、运行结果数据统计■
8、FileWindowExecuteMemoryConfigurationStatisticsTotal'27Cycle[5)execvited.IDexeculedby""IInslrMction(s).2InatructiomfslctirienUyinPipeline.Hardwareconfigi_iratioii:MemDrysiae:227的B^tesfaddE^-Stages:2,requiredCycles:JfnmulE
9、X-Stages:2,lequiredCycles:J:fdivEX-Stages:ZrequiredCycles:3Fotwardihgenabled.Stalls:HAWstalls:9图,33整ofallCycles),thereof.LDstalls:1(11.11^cfRAWstalls]Bianch/Jumpstalls:0(0.00^ofRAV/stalls)Floatirkgpointstalls:8(100.003sofRAWsldlls]WAWstalls:-fnr-ofal