首页 > 解决方案 > MIPS 架构:如果在执行 beq r1,r3,00 之类的操作时 r1 不等于 r3 会发生什么?

问题描述

哪条指令将进入流水线,那些已经获取并在流水线中的指令会产生什么结果?

标签: mips

解决方案


这取决于处理器的实现。

一些处理器会预测该分支将通过而不是被采用。对于您的问题,正确预测的处理器不会受到任何惩罚。

预测机制的复杂性和确定成功/失败预测的时间差异很大。在预测不正确的情况下,可能会丢失一个或多个周期,但这又取决于实施情况,多年来 MIPS 已经有很多这样的情况。

多年来,预测已经从简单的预测(所有分支:预测未采用)改进为使用基于动态历史的预测。在某些演变过程中,在进行动态预测时,实际进行预测的阶段也在管道中向后移动。此外,最终决定实际分支/不决定的管道阶段也在管道中向后移动。这些改进限制了错误预测的数量,以及错误预测所浪费的周期。

提取的指令(因此开始执行)但在错误预测的代码路径上根本没有提交,浪费了一个周期,有些人称之为泡沫。


推荐阅读