无条件跳转刷新x86_64上的管道?

时间:2015-04-05 01:33:31

标签: optimization assembly x86 cpu computer-architecture

当程序执行流程达到无条件跳转时,是否会刷新CPU管道? (下一个预取指令是跳转后的下一条指令,还是跳转目标的指令?)分支目标预测缓冲区是否可以在这里工作?

1 个答案:

答案 0 :(得分:1)

在大多数体系结构中,无条件分支与条件分支的处理方式不同......

您的分支预测器将扫描前面的指令,根据先前的访问查找它认为是分支的指令地址,并预测已采用/未采用/目标。

因此,对于没有任何预测问题的无条件分支,它将被预测为与给定目标“一起”,而不会影响管道。如果他们错误预测(和罐头),那么你将需要冲洗管道。