Algorithm 托马苏洛';s算法&x2B;MIPS 5级管道+;分支预测

Algorithm 托马苏洛';s算法&x2B;MIPS 5级管道+;分支预测,algorithm,computer-architecture,Algorithm,Computer Architecture,我正在学习Tomasulo的算法,我想我理解它。我不明白的是,它是如何与轩尼诗和帕特森中讨论的MIPS 5级管道集成的?还有,如何将分支预测与Tomasulo集成?非常感谢您的帮助。Tomasulo's会跟踪指令的动态调度,当解码后您有多个端口来执行不同的指令时,这些指令会被动态调度,同时还有硬件资源用于等待、调度和转发指令结果。MIPS 5阶段顺序管道不能在同一周期内发出/分派多条指令,也不能在管道中出现故障 当您在管道前端看到分支时,您必须决定从何处获取下一条指令,从分支目标还是从pc++。

我正在学习Tomasulo的算法,我想我理解它。我不明白的是,它是如何与轩尼诗和帕特森中讨论的MIPS 5级管道集成的?还有,如何将分支预测与Tomasulo集成?非常感谢您的帮助。

Tomasulo's会跟踪指令的动态调度,当解码后您有多个端口来执行不同的指令时,这些指令会被动态调度,同时还有硬件资源用于等待、调度和转发指令结果。MIPS 5阶段顺序管道不能在同一周期内发出/分派多条指令,也不能在管道中出现故障

当您在管道前端看到分支时,您必须决定从何处获取下一条指令,从分支目标还是从pc++。分支解析需要时间,如果您等待3或20个周期(取决于处理器),最终会插入那么多气泡。分支预测(BP)将帮助您满怀信心地开始从某处获取数据

BP和Tomasulo之间的联系可以通过重新排序缓冲区、能够处理预测失误恢复的寄存器文件来桥接。你还需要很多其他的东西,但这只是一个开始。一旦您知道您所做的预测是错误的,即当您实际计算分支时,您将清除RoB和所有可能的缓冲区、管道阶段、受推测路径上的指令影响的中间结果,直到最后一条提交的指令,然后从正确的PC重新开始提取

即使是在最新的处理器上,分支预测失误的成本也很高,并且有大量的优化来缓解这一问题,并使BPs更加准确


希望这能有所帮助。

这个问题对于stackoverflow来说太宽泛了,但是如果您有足够的计算机架构背景,您可能会发现这个2小时长的视频很有用: