【发布时间】:2015-02-12 06:27:20
【问题描述】:
我正在阅读 Nick Blundell 的《从零开始编写操作系统》一书。在其中一章中,解释了我们如何从 16 位模式过渡到 32 位模式。它说在移动到 32 位模式之前,我们应该确保当前在管道(CPU 内的指令管道)内的所有 16 位模式的指令都被执行。为了做到这一点,我们应该做一个远跳,这会导致管道刷新,书上说这是完成当前处于管道不同阶段的所有指令。
但是我对流水线刷新的理解是,由于程序流程的变化,从指令流水线中删除了条件分支之后的所有指令。
我对这些描述感到困惑,有人可以解释一下管道冲洗期间发生的一切。
此外,这本书说,接近跳跃可能不足以进行管道冲洗。这个我也不懂。
【问题讨论】:
标签: assembly x86 microprocessors