处理器如何检测到发生了异常?

时间:2014-06-13 05:25:36

标签: arm computer-architecture processor

处理器如何检测到发生了异常?检查点在哪里?处理器是否在每个F-D-E周期后进行检查以进行异常检查或类似的事情?如果它是处理器特定的,它是如何发生的? 示例:当我们断言IRQ或FIQ线路时,系统何时会检查该线路?

2 个答案:

答案 0 :(得分:1)

每个处理器在硬件级别都有标志寄存器(也称为状态寄存器)来表示异常。寄存器中的位将是硬连线的,以便通知异常。下一条指令将根据这些寄存器执行。

答案 1 :(得分:1)

实际上没有任何检查点。可以在流水线的任何阶段触发异常信号。举几个例子,在执行阶段将零除,在解码阶段的未知指令等等......每当发生这些异常时,管道被刷新,并且程序计数器(PC)用相应的地址更新矢量表条目。最重要的是,处理器不会定期检查是否存在异常。当发出异常信号时,它会立即处理它。