中断按事件来源分类,可以分为外部中断和内部中断。
中断事件来自于CPU外部的被称为外部中断,来自于CPU内部的则为内部中断。
进一步细分,外部中断还可分为可屏蔽中断(maskable interrupt)和不可屏蔽中断(non-maskable interrupt)两种,而内部中断按事件是否正常来划分可分为软中断和异常两种。
- 外部中断
外部中断的中断事件来源于CPU外部,必然是某个硬件产生的,所以外部中断又被称为硬件中断(hardware interrupt)。
计算机的外部设备,如网卡、声卡、显卡等都能产生中断。
外部设备的中断信号是通过两根信号线通知CPU的,一根是INTR,另一根是NMI。
CPU从INTR收到的中断信号都是不影响系统运行的,CPU可以选择屏蔽(通过设置中断屏蔽寄存器中的IF位),而从NMI中收到的中断信号则是影响系统运行的严重错误,不可屏蔽,因为屏蔽的意义不大,系统已经无法运行。
- 内部中断
内部中断来自于处理器内部,其中软中断是由软件主动发起的中断,常被用于系统调用(system call);
而异常则是指令执行期间CPU内部产生的错误引起的。
异常也和不可屏蔽中断一样不受eflags寄存器的IF位影响,区别在于不可屏蔽中断发生的事件会导致处理器无法运行(如断电、电源故障等),而异常则是影响系统正常运行的中断(如除0、越界访问等)。
© 版权声明
本站文章由不念博客原创,未经允许严禁转载!
THE END