向量和非向量中断有什么区别?
我认为所有中断都必须是向量中断...毕竟不是所有中断都有一个向量编号,因此具有特定ISR的向量[中断服务例程]
(ISR地址将在页表中,4 *在产生中断的设备中的向量#;假设32位地址架构)....
谢谢!
答案 0 :(得分:6)
请参阅here:
答案 1 :(得分:4)
每当发生中断时,CPU都需要执行一个Handler,它基本上是一个处理中断的子程序。现在CPU如何访问此处理程序取决于中断的类型。
在向量中断的情况下,向量编号指定处理程序的地址,因此CPU跳转到该地址并执行处理程序。
另一方面,非向量中断通常由I / O(慢速)设备引发。在这种情况下,始终存在需要执行的特定处理程序,因此无需为处理程序的地址传递向量
答案 2 :(得分:2)
向量中断的重要特征是设备本身提供了中断向量地址。
对于非向量中断,所有使用相同中断请求例程的设备都将控制权转移到同一位置,并且中断服务例程将必须弄清楚哪些设备实际上正在中断。
通过向量中断,设备会告诉中断机制其向量地址是什么。向量地址对应于OS(或设备驱动程序)已在其中写入适当中断服务例程地址的存储位置。通常,每个设备都有自己的向量地址,因此“哪个设备正在中断”的决定很简单。
该术语有些混乱,因为中断服务程序地址表经常被称为“中断向量表”,但是该术语既用于矢量中断(中断设备标识向量中的插槽),也用于非中断。向量中断(中断请求行对应向量中的插槽)。
答案 3 :(得分:0)
当外部设备中断CPU(中断请求)时,CPU必须执行中断服务程序来处理该中断。如果处理器的内部控制电路产生一个CALL到预定的存储单元,它是中断服务程序的起始地址,则该地址称为向量地址,这种中断称为向量中断。