收藏 分销(赏)

计算机标准体系结构第四次实验Tomasulo方法实验.doc

上传人:丰**** 文档编号:3033109 上传时间:2024-06-13 格式:DOC 页数:9 大小:680.04KB
下载 相关 举报
计算机标准体系结构第四次实验Tomasulo方法实验.doc_第1页
第1页 / 共9页
计算机标准体系结构第四次实验Tomasulo方法实验.doc_第2页
第2页 / 共9页
计算机标准体系结构第四次实验Tomasulo方法实验.doc_第3页
第3页 / 共9页
计算机标准体系结构第四次实验Tomasulo方法实验.doc_第4页
第4页 / 共9页
计算机标准体系结构第四次实验Tomasulo方法实验.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

1、Tomasulo办法实验 姓名:王宇航学号:09283020Tomasulo办法实验一、实验目:通过本实验,理解指令流水化过程中乱序执行和寄存器重命名办法。二、实验内容: 1、用dlxView模仿器或Tomasulo算法模仿器执行浮点指令程序段。 2、指出指令乱序执行和寄存器重命名过程。三、实验环境操作系统:Windows 7 旗舰版解决器:Intel(R) Core(TM) i3 双核内存:2.00GB软件:Tomasulo算法模仿器四、实验过程:1、设立Tomasulo算法模仿器参数其中Load部件执行时间不能设立为1,至少为2,故不作修改;加/减法部件执行时间为4个时钟周期,乘法部件执行

2、时间为7个时钟周期,除法部件执行时间为15个时钟周期。2、分析Tomasulo算法模仿器中指令乱序执行过程Tomasulo算法模仿器中默认设立指令下图所示:执行该指令序列,重点观测指令状态写成果一栏,便会发现执行过程中存在乱序执行现象,共有两处乱序执行,分别如下列图所示:图中显示,在第10周期时,位于MULT.D指令之后SUB.D指令通过4个周期已经执行完毕并已经将成果写回寄存器,而MULT.D指令仍在执行中。在第13周期时,MULT.D指令通过7个周期执行完毕,才将成果写回。此外,还可以看到,位于DIV.D指令之后ADD.D指令在第11周期时就已经开始执行,而DIV.D指令直至当前都未开始执

3、行。在第15周期时,ADD.D指令通过4个周期执行完毕,先于DIV.D指令写回成果;而DIV.D指令仍在执行中。在第29周期时,DIV.D指令通过15个周期终于执行完毕,将成果写回寄存器。以上分析证明,在Tomasulo算法中存在乱序执行并且不会影响执行成果对的性。这是由于,Tomasulo算法采用分布保存站,冲突检测和指令执行控制是分布。3、分析Tomasulo算法模仿器中寄存器重命名过程在Tomasulo算法中通过寄存器重命名来消除WAR冲突,这一过程是通过保存站来完毕。当指令流出到保存站时,若其操作数已经就绪,则将该指令中相应寄存器号换为该数据自身;若其操作数尚未计算出来,则将该指令中相

4、应寄存器号重命名为将产生这个操作数保存站标记,从而使得该指令与此寄存器不再关于系,背面指令对此寄存器写入操作也不也许对该指令导致WAR冲突了。(1)将指令中相应寄存器号换为数据自身 执行Tomasulo算法模仿器中默认设立指令序列,容易看出最后一条指令ADD.D和前一条指令DIV.D之间存在一种WAR冲突,即DIV.D指令要读寄存器F8中值,ADD.D要写寄存器F8中值,由于乱序执行,ADD.D指令会先于DIV.D指令完毕;但是执行成果却不会发生错误,是由于Tomasulo算法通过寄存器重命名将这一冲突消除了。可以看到在第5周期时,DIV.D指令流出到保存站中,此时F8中值已经由前面L.D指令

5、得出,为M1,但是模仿器并没有将相应寄存器号RF8写入Vk字段中,而是将其换为了F8中数据自身M1,从而使得该指令与寄存器F8不再关于联,无论背面指令如何改写F8也都不会影响该指令对的执行了。此外,由于前面MULT.D指令尚未得出F2值,故DIV.D指令将寄存器F2重命名为MULT.D指令保存站标记Mult1,写入Qj字段中。如下图所示:在这个周期中,ADD.D指令已经执行完毕,并且已经将寄存器F8中值由M1改写成了M5,但此时DIV.D指令仍在对的执行着,并没有发生任何错误,并且通过15个执行周期可以对的完毕执行过程,第15周期如下图所示:由此阐明了将指令中相应寄存器号换为数据自身这一寄存器

6、重命名办法成功地消除了WAR冲突。(2)将指令中相应寄存器号重命名为将产生该操作数保存站标记对Tomasulo算法模仿器中默认设立指令进行重排,将第一条L.D指令后移两个位置,重排后指令如下图所示:可以看到,在该指令序列中,最后一条指令ADD.D和前一条指令DIV.D之间依然存在一种WAR冲突。执行该指令序列,观测执行过程。可以发当前第5周期时,DIV.D指令流出到保存站中,而此时前面L.D指令尚未得出F8值,但是模仿器并没有将相应寄存器号RF8写入Vk字段中,而是将其换为了L.D指令保存站标记Load2写入了Qk中,从而使得该指令与寄存器F8不再关于联,无论背面指令如何改写F8也都不会影响该

7、指令对的执行了,如下图所示:对寄存器F2解决和前一种状况相似。在第6周期时,保存站Load2完毕计算,得出F8值M2,就会通过CBD将F8值直接传送到DIV.D指令保存站Mult2Vk字段中,如下图所示:在第12周期时,MULT.D指令得出F2值后也会通过CDB将其直接送到DIV.D指令保存站中,DIV.D指令便可以开始执行了。(3)分析WAW冲突消除办法寄存器重命名办法不但可以消除WAR冲突,还可以配合使用对目的寄存器预约办法消除WAW冲突。这一办法思想是,在一条指令流出到保存站时,将成果寄存器Qi字段设立为该指令保存站标记,表达到果寄存器将要接受该指令成果,这样其实相称于提前完毕了写操作。

8、由于指令是按程序顺序流出,当浮现多条指令写同一种成果寄存器时,最后留下预约成果必然是最后一条指令,因而可以消除WAW冲突。为了演示消除WAW冲突过程,改写上述指令最后一条指令,将目的寄存器由F8改为F12,如下图所示:在该指令序列中,DIV.D指令和最后ADD.D指令之间存在WAW冲突,即DIV.D指令要写寄存器F12,ADD.D指令也要写寄存器F12,由于乱序执行,ADD.D指令会先于DIV.D指令完毕,写成果至寄存器F12。若没有任何防范办法,当DIV.D指令完毕后又会写其执行成果至寄存器F12,修改刚才ADD.D指令执行成果,导致成果错误。但Tomasulo算法通过寄存器重命名和对目的寄

9、存器预约办法将这一冲突消除了。执行修改后指令序列,观测执行过程。可以看到,在第5周期时,DIV.D指令流出到保存站中,同步将寄存器F12Qi字段中设为DIV.D指令保存站标记Mult2,完毕预约工作。如下图所示: 在第6周期时,ADD.D指令流出到保存站中,同步将寄存器F12Qi字段中改写为该指令保存站标记Add2,这样就表达寄存器F12最后接受是ADD.D指令执行成果,虽然DIV.D指令在ADD.D指令之后执行完,也无法再改写寄存器F12了,从而保证了F12中成果对的性。如下图所示:为了验证这一办法有效性,可以看一下第16周期和第28周期。在第16周期,ADD.D指令先于DIV.D指令完毕执行过程,将成果写入寄存器F12中,值为M5;在第29周期,DIV.D指令也完毕执行过程,但是再也无法写寄存器F12了,F12中值依然为ADD.D指令执行成果M5,如下图所示: 第16周期 第28周期由此阐明寄存器重命名和对目的寄存器预约办法成功地消除了WAW冲突。五、实验总结: 本次实验重要是借助Tomasulo算法模仿器理解指令流水化过程中乱序执行和寄存器重命名办法。通过在Tomasulo算法模仿器执行存在WAR冲突或者WAW冲突浮点指令程序段,分析其中乱序执行现象和寄存器重命名过程,我理解了Tomasulo算法消除WAR冲突和WAW冲突办法,理解并掌握了寄存器重命名原理及过程。

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
百度文库年卡

猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服