计算机系统结构Tomasulo算法

发布时间:2023年12月20日

参考资料:计算机体系结构-Tomasulo算法 - 知乎

视频讲解:计算机系统结构4.1 Tomasulo算法_哔哩哔哩_bilibili

算法实现结构

Tomasulo最大的特点就是通过借助重命名的思想消除了假数据冒险,从而提高了机器的乱序性能。?

例题

(1)给出当第一条指令完成并写入结果时,Tomasulo算法所用的各信息表中的内容。

(2)假设各种操作的延迟为: load:1个时钟周期 加法:2个时钟周期 乘法:10个时钟周期 除法:40个时钟周期 给出MUL.D指令准备写结果时各状态表的内容。

第一个时钟周期

题中指令队列只用了load缓冲器,没用到store缓冲器,故没画出来

LD指令,流出,占用第一个Load缓冲器,34+R2地址存放在A字段,目标寄存器是F6,还需要把寄存器状态表F6更改load1,建立起双向链接

寄存器可以提供这个寄存器中的数是立即数还是在等待其他指令的信息

第二个时钟周期 ??????

??????????????????????????????

?Load指令解释如上

?第三个时钟周期

第一个Load指令在本周期执行完,即将在下一个周期写结果

MUL指令流入,进入乘法保留站

此时F2寄存器状态表为Load2,表示没有就绪,F4寄存器状态表为空,表示数已经就绪

保留站中,对于Vj和Qj,应该写入Qj(只有立即数才写入Vj),R(F4)已经就绪,取出来是立即数,应该放入Vj

MUL将写入F0,更新F0寄存器状态

第四个时钟周期

第一条LD指令写完结果后,退出Load1缓冲器,当你占用(退出)保留站或缓冲器时,需要改写寄存器状态表,此时F6从load1改写成M(34+R2)

M(34+R2):表示一个立即数,从34+R2地址取出

此时钟周期的Tomasulo算法所用的各信息表中的内容满足第一问所求

?MUL.D指令准备写结果时各状态表的内容(第十三个时钟周期)

文章来源:https://blog.csdn.net/liangcha_xyy/article/details/135096126
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。