【发布时间】:2014-07-03 06:11:07
【问题描述】:
我正在阅读有关分支预测的内容,我想知道分支预测器是否会“推测性地”执行任何类型的指令。特别是,我想知道它是否会与硬件通信。
假设你有这样的东西:
while (true) {
if (condition)
SendPacketOverNetwork()
DoSomethingElse()
}
(在汇编级别,if 之后的第一条指令引发中断,或与硬件通信)。如果分支预测器碰巧“猜错了”,在这种情况下会发生什么?如果这不能发生,为什么?分支预测器将执行什么样的指令?我是否误解了分支预测器的作用?
【问题讨论】: