您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > 计算机体系结构指令调度实验报告
1实验六指令调度实验报告1.实验目的:通过本实验,加深对指令调度的理解,了解指令调度技术对CPU性能改进的好处。2.实验内容:(1)通过Configuration菜单中的“Floatingpointstages”选项,把除法单元数设置为3,把加法﹑乘法﹑除法的延迟设置为3个时钟周期。(2)用WinDLX模拟器运行调度前的程序sch-before.s。记录程序执行过程中各种相关发生的次数以及程序执行的总时钟周期数。(3)用WinDLX模拟器运行调度后的程序sch-after.s,记录程序执行过程中各种相关发生的次数以及程序执行的总时钟周期数。(4)根据记录结果,比较调度前和调度后的性能。(5)论述指令调度对于提高CPU性能的意义。3.实验程序:程序sch-before.s;-------------------------------------------------------------------;Exampletoillustrateinstructionscheduling;-------------------------------------------------------------------.data.globalONEONE:.word1.text.globalmainmain:lff1,ONE;turndivfintoamovecvti2ff7,f1;bystoringinf71innop;floating-pointformatdivff1,f8,f7;moveY=(f8)intof1divff2,f9,f7;moveZ=(f9)intof2addff3,f1,f22divff10,f3,f7;movef3intoX=(f10)divff4,f11,f7;moveB=(f11)intof4divff5,f12,f7;moveC=(f12)intof5multff6,f4,f5divff13,f6,f7;movef6intoA=(f13)Finish:trap0调度后的程序sch-after.s;-------------------------------------------------------------------;Exampletoillustrateinstructionscheduling-reorderedinstructions;-------------------------------------------------------------------.data.globalONEONE:.word1.text.globalmainmain:lff1,ONE;turndivfintoamovecvti2ff7,f1;bystoringinf71innop;floating-pointformatdivff1,f8,f7;moveY=(f8)intof1divff2,f9,f7;moveZ=(f9)intof2divff4,f11,f7;moveB=(f11)intof4divff5,f12,f7;moveC=(f12)intof5addff3,f1,f2multff6,f4,f5divff10,f3,f7;movef3intoX=(f10)divff13,f6,f7;movef6intoA=(f13)3Finish:trap04.实验原理由于相关的存在,使得指令中的下一条指令不能在指定的时钟周期执行。流水线冲突会给指令在流水线中的执行带来许多问题,如果不能很好地解决冲突问题,轻则影响流水线的性能,重则导致错误的执行结果。而对于各种冲突,都有可能用指令调度来解决。6.实验步骤1设置除法单元数设置为3,把加法﹑乘法﹑除法的延迟设置为3个时钟周期:2运行程序部分截图3未用指令调度技术之前程序执行过程中的相关:44未用指令调度技术之前,运行结果数据统计5采用调度技术后发生的关联:56采用调度技术后,运行结果数据统计:67.实验结论1采用指令调度之前:相关名相关次数所占比例RAWstalls933.33%WAWstalls00Structuralstalls00Controlstalls00Trapstalls725.92%Total1659.26%采用循环调度前程序执行的过程中各种相关发生的次数如上表所示。发生相关的指令组合如实验数据中的截图所示。程序执行总的时钟周期数是27。根据上述数据计算可得:吞吐率=10/27=0.37.2采用指令调度之后:相关名相关次数所占比例RAWstalls314.28%WAWstalls00Structuralstalls00Controlstalls00Trapstalls628.57%Total942.86%采用循环调度后程序执行过程中各种相关发生的次数如上表所示,发生相关的指令组合如实验数据中的截图所示。程序执行总的时钟周期数是21。根据上述数据计算可得:吞吐率=10/21=0.4768.实验总结通过本实验,基本掌握了WinDLX模拟器的操作和使用,熟悉DLX指令集结构及其特点,对于采用指令调度技术减少各种相关、提高流水线速度的方法和技巧有了更深的认识,对于计算机体系结构这门课程的学习和以后的实验还是很有帮助的。做好本实验首先需要掌握WinDLX模拟器的使用。理解课本中的有关指令调度技术的基础知识以及使用汇编语言编程,是做好本实验的关键所在。79.对本实验过程及方法、手段的改进建议:在进行本实验时,用指令调度技术解决流水线中的结构相关与数据相关,没有对是否采用定向技术进行考虑。而定向技术采用与否,会影响指令调度技术以及循环展开技术解决流水线中的结构相关与数据相关。所以,在今后做本实验时,应该考虑是否采用定向技术。
本文标题:计算机体系结构指令调度实验报告
链接地址:https://www.777doc.com/doc-7310902 .html