基于windlx模拟器的流水线分析实验报告.doc

基于windlx模拟器的流水线分析实验报告.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于windlx模拟器的流水线分析实验报告

基于windlx模拟器的流水线分析 (做实验前请先认真阅读WinDLX教程) 用WinDLX模拟器执行下列三个程序(按照10位学号除3的余数选择): 求阶乘程序fact.s(余数为0) 求最大公约数程序gcm.s(余数为1) 求素数程序prim.s(余数为2) 我的学号为2010011147所以我用的函数是:gcm.s 分别以步进、连续、设置断点的方式运行程序,观察程序在流水线中的执行情况,观察CPU中寄存器和存储器的内容。 步进: 连续: 设置断点: 注意:gcm.s中调用了input.s中的输入子程序。load程序时,要两个程序一起装入(都select后再点击load)。fact.s也是如此。 在报告中: 简单阐述程序的作用和运行原理 作用:用WinDLX模拟器执行求这个程序说明浮点指令的使用。该程序从标准输入读入个整数,,然后将结果。该程序中调用了input.s中的输入子程序,这个子程序用于读入正整数。 2、用WinDLX运行程序structure_d.s,通过模拟: 找出存在结构相关的指令对以及导致结构相关的部件; 记录由结构相关引起的暂停时钟周期数,计算暂停时钟周期数占总执行周期数的百分比; 论述结构相关对CPU性能的影响,讨论解决结构相关的方法。 在报告中: 分析并找出全部结构相关的指令、原因、流水线停顿截图、停顿时钟周期数(循环的只写一轮) Addi r2,r2,0x8;addi r3,r3,0x8;sub r5,r4,r2这三条指令和addd f2,f0,f2存在结构相关,其中addi r2,r2,0x8这条指令停顿2个时钟周期,其余都停顿1个时钟周期。 分析并找出导致结构相关的部件 答:存储数据和指令的存储部件。 记录由结构相关引起的暂停时钟周期数、总执行周期数、计算暂停时钟周期数占总执行周期数的百分比 由结构相关引起的暂停周期数为:30 总执行周期数为:139 暂停周期数占总执行周期数的百分比:21.58% 论述结构相关对CPU性能的影响,讨论解决结构相关的方法 答: 结构相关使相关指令在流水线上停滞,降低了执行效率。 解决方法:在合理的指令调度范围内,尽量避免执行重复的指令。尽量避免同一寄存器的频繁使用,若无法避免,则使用寄存器的换名方法。 在不采用定向技术的情况下(去掉Configuration菜单中Enable Forwarding选项前的勾选符),用WinDLX运行程序data_d.s。记录数据相关引起的暂停时钟周期数以及程序执行的总时钟周期数,计算暂停时钟周期数占总执行周期数的百分比。 在报告中: 分析并写出全部数据相关的指令、原因、流水线停顿截图、停顿时钟周期数(循环的只写一轮) 先读后写r1,停顿2个时钟周期。 先写后读r1,停顿2个时钟周期。 先读后写r5,停顿2个时钟周期。 先写后读r2,停顿2个时钟周期。 先写后读r4,停顿2个时钟周期。 数据相关引起的暂停时钟周期总数、程序执行的总时钟周期数、计算暂停时钟周期数占总执行周期数的百分比 由结构相关引起的暂停周期数为:104 总执行周期数为:202 暂停周期数占总执行周期数的百分比:51.48% 在采用定向技术的情况下(勾选Enable Forwarding),用WinDLX再次运行程序data_d.s。重复上述2中的工作,并计算采用定向技术后性能提高的倍数。 在报告中: 分析并写出此时全部数据相关的指令、原因、流水线停顿截图、暂停时钟周期数(循环的只写一轮 先读后写r1,停顿1个时钟周期。 先读后写r5,停顿1个时钟周期。 先写后读r4,停顿1个时钟周期。 数据相关引起的暂停时钟周期数、程序执行的总时钟周期数、计算采用定向技术后性能提高的倍数 由结构相关引起的暂停周期数为:30 总执行周期数为:128 暂停周期数占总执行周期数的百分比:23.44% 实验总结: (1)通过本次实验,我对winDLX的流水线有了深刻的了解,包括如何计算,查看实验总周期数,暂停周期数等知道了其运行情况,能够根据程序段分析其运行位置及存储情况。 (2)通过实验指导学到 1. WinDLX WinDLX模拟器是一个图形化、交互式的DLX流水线模拟器,能够演示DLX流水线是如何工作的。该模拟器可以装载DLX汇编语言程序(后缀为“.s”的文件),然后单步、设断点或是连续执行该程序。CPU的寄存器、流水线、I/O和存储器都可以用图形表示出来,以形象生动的方式描述DLX流水线的工作过程。模拟器还提供了对流水线操作的统计功能,便于对流水线进行性能分析。 有关WinDLX的详细介绍,见WinDLX教程。 2. 熟悉WinDLX指令

文档评论(0)

wuailuo + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档