Tomasulo算法小结

发布时间 2023-12-01 22:16:46作者: yuan_f

总结

L.D F6, 24(R2)
L.D F2, 12(R3)
MUL.D F0, F2, F4
SUB.D F8, F6, F2
DIV.D F10, F0, F6
ADD.D F6, F8, F2
以以上的代码为例,当指令MUL.D即将确认时,保留站、load缓冲器以及寄存器状态表中的内容。
(1)保留站的内容

当指令MUL.D即将确认,即F0即将写入值时,第1、2、4、6条指令周期短,都已经执行完毕。Mult1中,“Vj=D2”表示源操作数F2的值,“Vk=R[F4]”表示另一个源操作数F4的值,“Qj=0,Qk=0”表示两个操作数皆处于ready状态。
(2)寄存器状态表的内容

F0是指令MUL.D目的寄存器,保留在Mult1保留站,等待写入;第1、2、4、6条指令已执行完,F2、F6、F8的值已写入,为D2=M[R[R3]+12],D6=D4+D2,D4=D1-D2,对应Qi为0说明其保留站行已清空,没有保留在保留站;F10是指令DIV.D目的寄存器,保留在Mult2保留站,等待写入。