向量中断

时间:2011-06-29 07:30:16

标签: assembly interrupt computer-architecture interrupt-handling

向量和非向量中断有什么区别?

我认为所有中断都必须是向量中断...毕竟不是所有中断都有一个向量编号,因此具有特定ISR的向量[中断服务例程]

(ISR地址将在页表中,4 *在产生中断的设备中的向量#;假设32位地址架构)....

谢谢!

4 个答案:

答案 0 :(得分:6)

请参阅here

  • 向量中断:设备告诉CPU需要注意,通过中断识别自身
  • 轮询中断:CPU必须轮询多个设备以查看哪个设备已请求注意

答案 1 :(得分:4)

每当发生中断时,CPU都需要执行一个Handler,它基本上是一个处理中断的子程序。现在CPU如何访问此处理程序取决于中断的类型。

在向量中断的情况下,向量编号指定处理程序的地址,因此CPU跳转到该地址并执行处理程序。

另一方面,非向量中断通常由I / O(慢速)设备引发。在这种情况下,始终存在需要执行的特定处理程序,因此无需为处理程序的地址传递向量

答案 2 :(得分:2)

向量中断的重要特征是设备本身提供了中断向量地址。

对于非向量中断,所有使用相同中断请求例程的设备都将控制权转移到同一位置,并且中断服务例程将必须弄清楚哪些设备实际上正在中断。

通过向量中断,设备会告诉中断机制其向量地址是什么。向量地址对应于OS(或设备驱动程序)已在其中写入适当中断服务例程地址的存储位置。通常,每个设备都有自己的向量地址,因此“哪个设备正在中断”的决定很简单。

该术语有些混乱,因为中断服务程序地址表经常被称为“中断向量表”,但是该术语既用于矢量中断(中断设备标识向量中的插槽),也用于非中断。向量中断(中断请求行对应向量中的插槽)。

答案 3 :(得分:0)

当外部设备中断CPU(中断请求)时,CPU必须执行中断服务程序来处理该中断。如果处理器的内部控制电路产生一个CALL到预定的存储单元,它是中断服务程序的起始地址,则该地址称为向量地址,这种中断称为向量中断。

相关问题