《计算机体系结构》第四次实验 Tomasulo方法实验.docx
《《计算机体系结构》第四次实验 Tomasulo方法实验.docx》由会员分享,可在线阅读,更多相关《《计算机体系结构》第四次实验 Tomasulo方法实验.docx(5页珍藏版)》请在三一办公上搜索。
1、计算机体系结构第四次实验 Tomasulo方法实验Tomasulo方法实验 姓名:王宇航 学号:09283020 Tomasulo方法实验 一、实验目的: 通过本实验,理解指令流水化过程中乱序执行和寄存器重命名方法。 二、实验内容: 1、用dlxView模拟器或Tomasulo算法模拟器执行浮点指令程序段。 2、指出指令乱序执行和寄存器重命名过程。 三、实验环境 操作系统:Windows 7 旗舰版 处理器:Intel(R) Core(TM) i3双核 内存:2.00GB 软件:Tomasulo算法模拟器 四、实验过程: 1、设置Tomasulo算法模拟器参数 其中Load部件的执行时间不能设
2、置为1,至少为2,故不作修改;加/减法部件的执行时间为4个时钟周期,乘法部件的执行时间为7个时钟周期,除法部件的执行时间为15个时钟周期。 2、分析Tomasulo算法模拟器中指令乱序执行过程 Tomasulo算法模拟器中默认设置的指令下图所示: 执行该指令序列,重点观察指令状态的写结果一栏,便会发现执行过程中存在乱序执行现象,共有两处乱序执行,分别如下列图所示: 图中显示,在第10周期时,位于MULT.D指令之后的SUB.D指令经过4个周期已经执行完成并已经将结果写回寄存器,而MULT.D指令仍在执行中。 在第13周期时,MULT.D指令经过7个周期执行完毕,才将结果写回。此外,还可以看到,
3、位于DIV.D指令之后的ADD.D指令在第11周期时就已经开始执行,而DIV.D指令直至现在都未开始执行。 在第15周期时,ADD.D指令经过4个周期执行完毕,先于DIV.D指令写回结果;而DIV.D指令仍在执行中。 在第29周期时,DIV.D指令经过15个周期终于执行完毕,将结果写回寄存器。 以上分析证明,在Tomasulo算法中存在乱序执行并且不会影响执行结果的正确性。这是因为,Tomasulo算法采用分布的保留站,冲突检测和指令执行控制是分布的。 3、分析Tomasulo算法模拟器中寄存器重命名过程 在Tomasulo算法中通过寄存器重命名来消除WAR冲突,这一过程是通过保留站来完成的。
4、当指令流出到保留站时,若其操作数已经就绪,则将该指令中相应的寄存器号换为该数据本身;若其操作数还未计算出来,则将该指令中相应的寄存器号重命名为将产生这个操作数的保留站的标识,从而使得该指令与此寄存器不再有关系,后面指令对此寄存器的写入操作也不可能对该指令造成WAR冲突了。 将指令中相应的寄存器号换为数据本身 执行Tomasulo算法模拟器中默认设置的指令序列,容易看出最后一条指令ADD.D和前一条指令DIV.D之间存在一个WAR冲突,即DIV.D指令要读寄存器F8中的值,ADD.D要写寄存器F8中的值,由于乱序执行,ADD.D指令会先于DIV.D指令完成;但是执行结果却不会发生错误,是因为To
5、masulo算法通过寄存器重命名将这一冲突消除了。 可以看到在第5周期时,DIV.D指令流出到保留站中,此时F8中的值已经由前面的L.D指令得出,为M1,但是模拟器并没有将相应的寄存器号RF8写入Vk字段中,而是将其换为了F8中数据本身M1,从而使得该指令与寄存器F8不再有关联,无论后面指令怎样改写F8也都不会影响该指令的正确执行了。 此外,由于前面的MULT.D指令还未得出F2的值,故DIV.D指令将寄存器F2重命名为MULT.D指令的保留站标识Mult1,写入Qj字段中。如下图所示: 在这个周期中,ADD.D指令已经执行完毕,并且已经将寄存器F8中的值由M1改写成了M5,但此时DIV.D指
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机体系结构 计算机体系结构第四次实验 Tomasulo方法实验 第四 实验 Tomasulo 方法
链接地址:https://www.31ppt.com/p-3187182.html