CPU何时会因管道中的中断或异常而中断



给出了管道的CPU,何时何时及

在哪个阶段/异常中处理了哪个阶段,当前管道和/或发生中断/故障的指令会发生什么?

它非常特定于该处理器的设计,我不仅意味着ARM做到这一点,X86可以做到这一点,但随着每个新核心的出现,设计师都会出现可能会改变他们的做法。

一般程序员的假设是,它"完成当前的指令"然后中断,但是如果您查看ARM LDM/STM至少其中一些人说即使他们已经开始,他们都会流产,因此不要使用针对逻辑的这些说明响应阅读或写入(例如,从未自动启动),x86多年来一直说,一旦添加了分支预测,就永远不会这样做,因为分支预测器可以从字面上读取任何内容,以防万一,所以除了返回值之外,不要做出其他反应。

使用管道,您的问题与我分支/跳跃时会发生什么。好吧,也许每个说明类型都有不同,或者也许是通用的,但是显然管道被中断,管道中排队的东西被丢弃了中断的例程被取出/调用,并且编码执行,返回使处理器使处理器返回到返回到最后一个完成后的指令完全执行。它基本上与分支没有区别,您必须完成指令,停止并冲洗管道开始执行在其他地方,RET就像一个分支,您停止并冲洗管道并重新返回其他地方。比简单的分支更接近呼叫/分支链接,但您希望您能得到这个想法。

这里没有魔术,没有什么特别的,请考虑一个功能调用。

至于管道中的确切位置,有数百至数千个不同的管道处理器设计,并且没有理由期望其中任何两个都相同,因此,如果这是问题,那么它太广泛,太宽了,没有一个答案。

相关内容

  • 没有找到相关文章

最新更新