WinDLX实验报告.docVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
WinDLX实验报告

WinDLX实验报告 1.实验目的: 1)熟悉计算机流水线基本概念 2)了解DLX基本流水线的各段的功能 了解各种不同指令在流水线中的实际流动情况 对流水线做性能分析 了解影响流水线效率的因素——数据相关、结构相关、控制相关,了解相关的种类 了解解决数据相关的方法 2.实验内容: 1)在仿真器上分别运行单条指令:Load指令、Store指令、分支指令、寄存器ALU指令、立即数ALU指令,记录它们在流水线中的执行情况 仿真器运行一段无相关的程序,记录它的执行情况,计算流水线的加速比、吞吐率与效率。 在仿真器运行一段程序,统计该程序在流水线中出现的各种相关个数,及其引起的流水线暂停周期数 通过在流水线中设置定向路径来消除数据相关,运行程序并统计在流水线中出现的相关个数,及其引起的流水线暂停周期数 通过对程序进行编译优化并结合其他相关解决方法——分支预测与延迟槽,运行程序并统计在流水线中出现的相关个数,及其引起的流水线暂停周期数。 3.实验步骤: 整个实验分三部分来做:  1.熟悉WinDLX的使用用WinDLX模拟器执行求阶乘程序fact.s 。这个程序说明浮点指令的使用。该程序从标准输入读入一个整数,求其阶乘,然后将结果输出。  该程序中调用了input.s中的输入子程序,这个子程序用于读入正整数。 b.采用定向技术,我们得到的结果: 从上面的数据我们可以看定向的作用Statistics 窗口中的各种统计数字:总的周期数(215) 和暂停数 (17 RAW, 25 Control, 12 Trap; 54 Total)控制暂停和 Trap 暂停仍然是同样的值,而RAW暂停从17变成了53,总的模拟周期数增加到236。定向技术带来的加速比:   236 / 215 = 1.098   DLXforwarded比 DLXnot forwarded 快9.8%。 下面是一段不相关的程序,一共6条指令 ADDI R5, R5, 1 SUBI R4, R4, 1 AND R3, R3, R3 XOR R7, R7, R7 ADDI R8, R8, 1 ADDI R9, R9, 1 在WinDLX中执行的结果如下: 如上图所示: 6条指令一共执行了10个周期,而每个指令都需要5个周期来完成。 故可得加速比:5*6/10=3 实际吞吐率: 流水线由5段组成,完成6条指令,m=5,n=6 T=5△t+(6-1) △t=10△t Tp=n/T=3/(5△t),即为实际吞吐率。 效率: E=1/(1+(m-1)/n)=TP*△t=3/5 3)存在相关的程序 a.数据相关 先给出一个存在数据相关的程序: LHI R2, (A16) 0xFFFF ADDUI R2, R2, A 0xFFFF LHI R3, (B16)0xFFFF ADDUI R3, R3, B0xFFFF loop: LW R1, 0 (R2) ADD R1, R1, R3 SW 0(R2), R1 LW R5, 0 (R1) ADDI R5, R5, #10 ADDI R2, R2, #4 SUB R4, R3, R2 BNEZ R4, loop TRAP #0 A: .word 0, 4, 8, 12, 16, 20, 24, 28, 32, 36 B: .word 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 没有采用定向技术时运行该程序:得到 程序执行了202个周期,10个数据相关引起的时钟周期RAW stall为104个。 暂停时钟周期数占总执行周期数的百分比暂停时钟周期数占总执行周期数的百分比ADDI R5, R5, 1 SUBI R4, R4, 1 AND R3, R3, R3 XOR R7, R7, R7 ADDI R8, R8, 1 ADDI R9, R9, 1 MULT R1,R5,R4 MULT R2,R3,R7 执行之后得到的clock cycle programe Statistics: 可见1个结构相关引起了4个stall,占总共20个CYCLE 的20% 为了避免结构相关,可以考虑采用资源重复的方法,比如,在流水线机器中设置相互独立的指令存储器和数据存储器,也可以将CACHE分割成指令CACHE 和数据CACHE。 c.指令调度: 首先,通过Configuration菜单中的“Floating point stages”选项,把除法单元数设置为3,把加法﹑乘法﹑除法的延迟设置为3个时钟周期。.data .global ONE ONE: .word 1 .tex

文档评论(0)

tianma2015 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档