北邮实验二指令流水线相关性分析.docxVIP

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

北京邮电大学计算机学院《计算机系统结构》课程实验2015年4月实验二指令流水线相关性分析实验类别:验证实验实验目的:通过使用WINDLX模拟器,对程序中的三种相关现象进行观察,并对使用专用通路,增加运算部件等技术对性能的影响进行考察,加深对流水线和RISC处理器的特点的理解。实验学时:4实验组人数:1/1实验设备环境:WinDLX模拟器可以装入DLX汇编语言程序,然后单步、设置断点或者连续执行该程序。CPU的寄存器、流水线、I/O和存储器都可以使用图形的方式表示出来。模拟器还提供了对流水线操作的统计功能。该模拟器对理解流水线和RISC处理器的特点很有帮助。实验原理:指令流水线中主要有结构相关、数据相关、控制相关。相关影响流水线性能。  教学要点与学习难点:三种相关及其解决办法实验内容和要求:使用WinDLX模拟器,对求阶乘程序Fact.s做分析实验步骤:(1) 观察程序中出现的数据/控制/结构相关。指出程序中出现上述现象的指令组合。(2)?考察增加浮点运算部件对性能的影响。(3)?考察增加forward部件对性能的影响。(4)?观察转移指令在转移成功和转移不成功时候的流水线开销注意:除(2)以外,浮点加、乘、除部件都只有一个;本问题中所有浮点运算部件的延时都请设定为4个周期。十、实验过程:同实验一、选择File/Load Code or Data,窗口中会列出目录中所有汇编程序。按如下步骤操作,可将这两个文件装入主存。?点击fact.s? 点击select 按钮?点击input.s? 点击select按钮?点击load按钮以下3个相关的观察实验(floating为1,4)数据相关及指令组合:在第27个周期里,Clock Cycle Diagram窗口的时空图和Pipeline窗口中的流图第一次出现了橘黄色的R-Stall。点击Pipeline的橘黄色框,出现的Information about seqi r5,r3,0xa中有图:lbu r3,0x0(r2)要在WB周期写回r3中的数据,而下一条指令seqi r5,r3,0xa 要在intEX周期中读取r3中的数据。发生了写读相关。所以为了避免冲突,seqi r5,r3,0xa的intEX指令延迟了一个周期进行。相关指令组合控制相关及指令组合:在第四时钟周期,第一条命令正处于MEM段,第二条命令处于intEX段,第四条命令处于IF段,而第三条命令处于aborted。原因是:第二条命令jalInputUnsigned是无条件分支指令,但只有在第三个时钟周期,jal指令被译码后才知道。这时,下一条命令movi2fp已经取出,但需执行的下一条命令在另一个地址处,因而,movi2fp的执行应被取消,在流水线中留下气泡。此处发生了控制相关。相关指令组合结构相关及指令组合:在下图中,Clock Cycle Diagram窗口的时空图可发现指令Stall了3个周期。点击右上图Pipeline窗口流水线的亮黄色框,则弹出的Information about addi r2,r2,0x1显示如右图:addi r2, r2, 0x1 该指令与它前面的一天指令 add r1,r1, r3发生了结构相关。由于上一条指令由于数据相关需要停3个周期,在ID段后停滞,不能进入intEX段,故addi r2,r2,0x1 就不能进入ID段,译码部分已经被占用。故发生了结构相关。相关指令组合考察增加浮点运算部件对性能的影响该实验取N=20首先通过,点击Floating?Point?Stage?Configuration来设置浮点运算部件的配置。由于实验手册上面要求Delay=4,所以我们将Delay这一栏改成4,而Count可以任意,为了对比,我们第一次浮点运算部件取全部为1,第二次浮点运算部件取全部为2。把延迟设定为4个周期按F5运行程序输入值为20比较各个数据,发现没有变化。无论怎么增加浮点运算部件,统计结果都一样。由此可见,浮点运算部件的增减对效率无影响。原因在于此程序中浮点计算指令没有重叠,所以并行度没有增加,性能没有提高。考察增加forward部件对性能的影响(floating为2,4)为了对比有无forward部件的性能。需要在configuration菜单中勾选enable?forwarding,以及不勾选来看性能数据的对比。按F5运行程序输入值为20采用重新定向技术不使用重新定向技术结果分析从上面的数据我们可以看出增加forward的作用:增加forward部件后的214个时钟周期比增加前的272个少了58个时钟周期。增加forward部件使得RAW相关变为34个,比增加前的89个减少了55个,RAW相关的比例从总时钟周期的32.72%减为16.00%。增加forward部件使得控制相关比例增加

文档评论(0)

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

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

1亿VIP精品文档

相关文档