计算机系统结构实验-循环展开和指令调度

计算机系统结构实验-循环展开和指令调度

ID:12984825

大小:1.29 MB

页数:13页

时间:2018-07-20

计算机系统结构实验-循环展开和指令调度_第1页
计算机系统结构实验-循环展开和指令调度_第2页
计算机系统结构实验-循环展开和指令调度_第3页
计算机系统结构实验-循环展开和指令调度_第4页
计算机系统结构实验-循环展开和指令调度_第5页
资源描述:

《计算机系统结构实验-循环展开和指令调度》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、中央民族大学实验报告学生姓名:学号:一、实验室名称:信息工程学院实验室二、实验项目名称:循环展开和指令调度三、实验原理:1、由于相关的存在,使得指令中的下一条指令不能在指定的时钟周期执行。流水线冲突会给指令在流水线中的执行带来许多问题,如果不能很好地解决冲突问题,轻则影响流水线的性能,重则导致错误的执行结果。而对于各种冲突,都有可能用指令调度来解决。2、到目前为止,几乎所有的处理器都利用流水线来使指令重叠并行执行,以达到提高性能的目的。这种指令之间存在的潜在并行性称为指令级并行。增加指令之间的并行性最简单的和最常用的方法,是开发循

2、环的不同迭代之间存在的并行性。在把循环展开后,通过重命名和指令调度来开发更多的并行性,这样就可以充分发挥流水线的作用。四、实验目的:1、加深对循环并行性、指令调度技术、循环展开技术以及寄存器换名技术的理解;2、熟悉用指令调度技术来解决流水线中的数据相关的方法;3、了解循环展开、指令调度等技术对CPU性能的改进。13五、实验内容:1、用指令调度技术解决流水线中的结构相关与数据相关。2、用循环展开、寄存器换名以及指令调度提升性能。六、实验器材(设备、元器件)及平台: 装有WinDLX模拟器的PC微型机一台,平台即为WinDLX模拟器。

3、七、实验步骤及操作:一、用指令调度技术解决流水线中的结构相关与数据相关:(1)用DLX汇编语言编写代码文件,命名为instruction.s,程序中包括数据相关与结构相关(假设:加法、乘法、除法部件各有两个,延迟时间都是3个时钟周期)。(2)通过Configiguration菜单中的“Flouatingpointstages”选项,把加法、乘法、除法部件的个数设置为2个,把延迟都设置为3个时钟周期。(3)用WinDLX运行程序。记录程序执行过程中各种相关发生的次数、发生相关的指令组合,以及程序执行的总的时钟周期数。(4)采用指令调

4、度技术对程序进行指令调度,消除相关。(5)用WinDLX运行调度后的程序,观察程序在流水线中的执行情况,记录程序执行的总时钟周期数。(6)根据记录结果,比较调度前和调度后的性能。论述指令调度对于提高CPU性能的意义。二、用循环展开、寄存器换名以及指令调度提高性能:(1)用DLX汇编语言编写代码文件,命名为test.s,程序中包含一个循环次数为4的整数倍的简单循环。(2)用WinDLX运行该程序。记录执行过程中各种相关发生的次数以及程序执行的总时钟周期数。(3)将循环展开3次,将4个循环体组成的代码替换原来的循环体,并对程序做相应的

5、修改。然后对新的循环体进行寄存器换名和指令调度。(4)用WinDLX运行修改后的程序,记录执行过程中各种相关发生的次数以及程序执行的总的时钟周期。(5)根据记录结果,比较循环展开、指令调度前后的性能。13八、实验数据及结果分析:一、用指令调度技术解决流水线中的结构相关与数据相关:1、instruction.s文件的代码:2、运行程序部分截图133、未用指令调度技术之前程序执行过程中的相关:134、运行结果数据统计135、采用指令调度后的程序代码6、采用调度技术后发生的关联7、运行结果数据统计13二、用循环展开、寄存器换名以及指令调

6、度提高性能:1、test.s文件的源代码如下:132、运行test.s文件,记录运行过程中存在的相关,以及运行总的时钟周期数133、将循环展开3次,将4个循环体组成的代码代替原来的循环体,并对程序做相应的修改。然后对新的循环体进行寄存器换名和指令调度,代码如下:4、记录执行过程中各种相关发生的次数以及程序执行的总时钟周期数:1313九、实验结论:一、用指令调度技术解决流水线中的结构相关与数据相关采用指令调度之前:相关名相关次数所占比例RAWstalls933%WAWstalls00Structuralstalls13.7%Cont

7、rolstalls00Trapstalls725.92%Total17采用循环调度前程序执行的过程中各种相关发生的次数如上表所示。发生相关的指令组合如实验数据中的截图所示。程序执行总的时钟周期数是27。根据上述数据计算可得:吞吐率=10/27=0.37.采用指令调度之后:相关名相关次数所占比例RAWstalls314.28WAWstalls00Structuralstalls14.76Controlstalls00Trapstalls628.57Total10采用循环调度后程序执行过程中各种相关发生的次数如上表所示,发生相关的指令

8、组合如实验数据中的截图所示。程序执行总的时钟周期数是21。根据上述数据计算可得:吞吐率=10/21=0.476结论:程序采用指令调度后程序的执行的总的时钟周期数减少了6次。加速比约为1.3.指令调度技术可以减少程序运行中的相关,能够减少CPU的空闲

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。