视频讲解:计算机系统结构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算法所用的各信息表中的内容满足第一问所求