我正在学习Tomasulo的算法,我想我理解它。我无法弄清楚它是如何与轩尼诗和帕特森讨论的MIPS 5阶段管道集成的?如何将分支预测与Tomasulo集成?任何帮助表示赞赏。
答案 0 :(得分:1)
Tomasulo跟踪动态调度指令,这些指令在解码后有多个端口执行不同指令以及指令等待,调度,转发结果的硬件资源。 MIPS 5阶段有序流水线不能在同一周期内发出/发送多条指令,也不会在流水线中出现故障。
当你在管道的前端看到一个分支时,你必须决定从哪里获取下一条指令,从分支目标或从pc ++。分支分辨率需要时间,如果等待3或20个周期,具体取决于处理器,最终会插入很多气泡。分支预测(BP)将帮助您从某个地方开始有信心地获取。
BP和Tomasulo之间的链接可以通过重新排序缓冲区来桥接,寄存器文件能够处理错误预测恢复。还有许多其他的东西,但这是一个开始。一旦你知道你所做的预测是错误的,那就是当你实际计算分支时,你清除RoB和每个可能的缓冲区,管道阶段,中间结果受推测路径上的指令影响直到最后一个提交的指令然后从正确的PC重新启动。
即使在最新的处理器上,分支机构的错误预测成本也很高,而且还有吨的优化来缓解这种情况并使BP更加准确。
希望这有帮助。