ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:298.11KB ,
资源ID:22241197      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/22241197.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(计算机系统结构实验循环展开和指令调度Word文档格式.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

计算机系统结构实验循环展开和指令调度Word文档格式.docx

1、而对于各种冲突,都有可能用指令调度来解决。2、到目前为止,几乎所有的处理器都利用流水线来使指令重叠并行执行,以达到提高性能的目的。这种指令之间存在的潜在并行性称为指令级并行。增加指令之间的并行性最简单的和最常用的方法,是开发循环的不同迭代之间存在的并行性。在把循环展开后,通过重命名和指令调度来开发更多的并行性,这样就可以充分发挥流水线的作用。四、实验目的:1、加深对循环并行性、指令调度技术、循环展开技术以及寄存器换名技术的理解;2、熟悉用指令调度技术来解决流水线中的数据相关的方法;3、了解循环展开、指令调度等技术对CPU性能的改进。五、实验内容:1、用指令调度技术解决流水线中的结构相关与数据相

2、关。2、用循环展开、寄存器换名以及指令调度提升性能。六、实验器材(设备、元器件)及平台:装有WinDLX模拟器的PC微型机一台,平台即为WinDLX模拟器。七、实验步骤及操作: 一、用指令调度技术解决流水线中的结构相关与数据相关: (1)用DLX汇编语言编写代码文件,命名为instruction.s,程序中包括数据相关与结构相关(假设:加法、乘法、除法部件各有两个,延迟时间都是3个时钟周期)。 (2)通过Configiguration菜单中的“Flouating point stages”选项,把加法、乘法、除法部件的个数设置为2个,把延迟都设置为3个时钟周期。 (3)用WinDLX运行程序。

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

4、个循环体组成的代码替换原来的循环体,并对程序做相应的修改。然后对新的循环体进行寄存器换名和指令调度。 (4)用WinDLX运行修改后的程序,记录执行过程中各种相关发生的次数以及程序执行的总的时钟周期。 (5)根据记录结果,比较循环展开、指令调度前后的性能。八、实验数据及结果分析: 1、instruction.s文件的代码: 2、运行程序部分截图 3、未用指令调度技术之前程序执行过程中的相关: 4、运行结果数据统计 5、采用指令调度后的程序代码 6、采用调度技术后发生的关联7、运行结果数据统计 二、用循环展开、寄存器换名以及指令调度提高性能: 1、test.s文件的源代码如下: 2、运行test

5、.s文件,记录运行过程中存在的相关,以及运行总的时钟周期数3、将循环展开3次,将4个循环体组成的代码代替原来的循环体,并对程序做相应的修改。然后对新的循环体进行寄存器换名和指令调度,代码如下: 4、记录执行过程中各种相关发生的次数以及程序执行的总时钟周期数:九、实验结论: 一、用指令调度技术解决流水线中的结构相关与数据相关 采用指令调度之前: 相关名相关次数所占比例RAW stalls933%WAW stallsStructural stalls13.7%Control stallsTrap stalls725.92%Total17 采用循环调度前程序执行的过程中各种相关发生的次数如上表所示。

6、发生相关的指令组合如实验数据中的截图所示。程序执行总的时钟周期数是27。根据上述数据计算可得:吞吐率=10/27=0.37. 采用指令调度之后:相关名314284.76628.5710 采用循环调度后程序执行过程中各种相关发生的次数如上表所示,发生相关的指令组合如实验数据中的截图所示。程序执行总的时钟周期数是21。吞吐率=10/21=0.476 结论:程序采用指令调度后程序的执行的总的时钟周期数减少了6次。加速比约为1.3.指令调度技术可以减少程序运行中的相关,能够减少CPU的空闲时间,增加吞吐率,提高CPU的性能。但是指令调度技术不能将所有的相关都消除。 二、用循环展开、寄存器换名以及指令调

7、度提高性能 采用循环展开、调度之前:2631.71%8.54%3.66%36采用循环展开,指令调度以及寄存器换名之前,程序在执行过程中各种相关如上表所示,发生相关的指令组合如实验数据中的截图所示。程序执行的总时钟周期数是82。采用循环展开,寄存器换名以及指令调度之后:24.44%13.33%2.22%6.67%12采用循环展开,寄存器换名以及指令调度之后,程序在执行的过程中各种相关如上表所示,发生相关的指令组合如实验数据中的截图所示。程序执行的总的时钟周期数是45.结论:程序采用循环展开,指令调度以及寄存器换名后程序的执行的总的时钟周期数减少了37次。加速比约为1.82.这说明了采用循环展开、

8、指令调度技术和换名技术可以在很大程度上减少程序运行中的相关,能够减少CPU的空闲时间,增加吞吐率,提高CPU的性能。但是这些技术的结合不能将所有的相关都消除。十、总结及心得体会: 通过本实验,基本掌握了WinDLX模拟器的操作和使用,熟悉DLX指令集结构及其特点,对于采用指令调度技术、循环展开技术及换名技术减少各种相关、提高流水线速度的方法和技巧有了更深的认识,对于计算机体系结构这门课程的学习和以后的实验还是很有帮助的。 做好本实验首先需要掌握WinDLX模拟器的使用。理解课本中的有关指令调度技术、循环展开技术及换名技术的基础知识以及使用汇编语言编程,是做好本实验的关键所在。十一、对本实验过程及方法、手段的改进建议: 在进行本实验时,无论是用指令调度技术解决流水线中的结构相关与数据相关,还是用循环展开、寄存器换名以及指令调度提高性能,都没有对是否采用定向技术进行考虑。而定向技术采用与否,会影响指令调度技术以及循环展开技术解决流水线中的结构相关与数据相关。所以,在今后做本实验时,应该考虑是否采用定向技术。报告评分: 指导教师签字:

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1