- 1、本文档共26页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
北京邮电大学
实验报告
课程名称:高级计算机系统结构
学号:2015140454 姓名:罗一皓
实验二 指令流水线相关性分析
一.实验类别:
验证试验
二.实验目的:
通过使用WINDLX模拟器,对程序中的三种相关现象进行观察,并对使用专用通路,增加运算部件等技术对性能的影响进行考察,加深对流水线和RISC处理器的特点的理解。
三.实验学时:
4
四.实验人数:
1
五.实验设备环境:
WinDLX模拟器可以装入DLX汇编语言程序,然后单步、设置断点或者连续执行该程序。CPU的寄存器、流水线、I/O和存储器都可以使用图形的方式表示出来。模拟器还提供了对流水线操作的统计功能。该模拟器对理解流水线和RISC处理器的特点很有帮助。
六.实验原理:
指令流水线中主要有结构相关、数据相关、控制相关。相关影响流水线性能。
结构相关:当指令在重叠执行过程中,硬件资源满足不了指令重叠执行的要求,发生资源冲突时,将产生“结构相关”。
数据相关:当一条指令需要用到前面指令的执行结果,而这些指令均在流水线中重叠执行时,就可能引起“数据相关”。
控制相关:由条件指令引起的相关。
七.实验内容和要求:
使用WinDLX模拟器,对求阶乘程序Fact.s做分析
八.实验步骤:
(1) 观察程序中出现的数据/控制/结构相关。指出程序中出现上述现象的指令组合。
数据相关:
在第24个周期时,在Clock Cycle Diagram 中有橙黄色的R-Stall,
点开之后,我们发现有
lbu r3,0x0(r2)要在WB周期写回r3中的数据,而下一条指令 seqi r5,r3,0xa 要在intEX周期中读取r3中的数据。发生了写读相关。所以为了避免冲突,seqi r5,r3,0xa 的intEXcellent指令延迟了一个周期进行。
相关指令组合:
lbu r3,0x0(r2)
seqi r5,r3,0xa
控制相关:
在第4个时钟周期中,第一条命令正在MEM段,在第二条命令在intEXcellent段,第四条命令在IF段。而第三条命令指示为“aborted”。
其原因是:在第二条命令(jal)是无条件分支指令,但只有在第三个时钟周期,jal指令被译码后才知道,这时,下一条命令movi2fp已经取出,但须执行的下一条命令在另一个地址处,因而,movi2fp的执行应被取消,在流水线中留下气泡。此处发生了控制相关。
相关的指令组合:
addi r1,r0,0x1000
jal InputUnsigned
movi2fp f10,r1
sw SaveR2[r0],r2
结构相关:
在这个流水线图中可以发现
点开之后,会发现
addi r2,r2,0x1 该指令在它面前的一条指令add r1,r1,r3 发生了结构相关。由于上一条指令由于数据相关需要停4个周期,在ID段后停滞,不能进入intEX段,故addi r2,r2,0x1 就不能进入ID,译码部分已经被占用。故发生了结构相关。
相关指令:
add r1,r1,r3
addi r2,r2,0x1
(2) 考察增加浮点运算部件对性能的影响。
N=4时,浮点运算部件均为1时:
N=4,浮点运算器都变为2时:
比较个数据,发现没有发生变化。对于该程序,指令组合涉及不到多个浮点器的结构相关。
(3) 考察增加forward部件对性能的影响。
在载入fact.s和input.s之后,不设置任何断点运行。
不采用重新定向技术,我们得到
采用定向技术,我们得到的结果是:
从上面的数据我们可以看出定向的作用:
增加forward部件后的109个时钟周期比增加前的137个少了28个时钟周期。
增加forward部件使得RAW相关变为15个,比增加前的41个减少了26个,RAW相关的比例从总时钟周期的29.93%减为13.76%。
增加forward部件使得控制相关比例增加了,由原来占总时钟周期的8.03%增至10.09%。
总之,使用forward部件后,总的时钟周期减少,数据相关减少,流水线的性能得到一定的改善。
(4) 观察转移指令在转移成功和转移不成功时候的流水线开销。
转移成功的情况:
在一条由4个流水段组成的流水线中,第I-1条指令要等到第I+2条指令进入流水线时才能形成条件码。如果形成的条件码是“转移不成功”的,则猜测正确,流水线的吞吐率和效率没有降低;如果形成的条件码是“转移成功”的,则猜测
文档评论(0)