问题:我想知道是否所有指令都有一个执行周期( fetch-decode-execute,基本上不完全是),如果它是一个流水线处理器,那么处理器的控制单元如何检查是否有任何中断或异常发生在执行下一条指令之前,因为下一条指令已经在流水线中(例如,在解码阶段)。
解释:也许举一个特定的例子来使我的问题更清楚会有所帮助。假设我们依次有两条机器指令X1和X2。当X1处于获取阶段(假设是第一阶段)时,流水线中没有其他指令。在X1传递到第二级后(因此X2处于流水线的第一级),发生中断。在执行下一条指令( X2 )之前,处理器将在完成当前指令( X1 )后检查是否有任何中断发生。但是当X1时X2已经处于第二阶段已完成。那么,如何或何时检查中断(异步中断)或异常(同步中断)?
如果你们中的任何人能给我一个解释性的答案,我将非常高兴。此外,如果您想了解处理器的架构,您可以使用 x86-64(AMD64)。非常感谢你,提前。