简介
CPU正常运行期间,停止当前操作,执行其他特殊操作的行为就叫中断,负责跳转的指令就是中断指令。中断指令一般可以分为可中断指令和禁止中断指令。禁止中断指令是指禁止中断出现或禁止响应中断的指令。例如IBM370系统使用特权指令向送程序状态寄存器程序屏蔽码,这类被禁止出现的中断一旦发生,则此中断被丢弃。
有关术语可中断指令在指令部分完成之后就允许中断的指令。对于大部分指令,完整执行一条指令就是一个操作。只能在两个操作之间允许中断,即中断只能发生在一个操作之后,和其后面那个操作开始之前。可以把执行一条可中断指令看成有若干个单位操作,而在两个单位操作之间允许发生中断。如果与一条可中断指令有关的所有单位操作都执行完成时,则该指令执行完成。如果指令在执行完某些单位操作之后,但不是全部单位操作之后发生中断,则在中断点以前的所有单位操作都已完成,该指令未完成的单位操作等处理完中断后继续执行。
特权指令所谓特权指令,就是在系统态时运行的指令,是关系到系统全局的指令。其对内存空间的访问范围基本不受限制,不仅能访问用户存储空间,也能访问系统存储空间,如启动各种外部设备、设置系统时钟时间、关中断、清主存、修改存储器管理寄存器、执行停机指令、转换执行状态等。特权指令只允许操作系统使用,不允许应用程序使用,否则会引起系统混乱2。
中断源分类导致处理机中断的原因是多方面的,一台处理机有多个中断源。按其性质可分为五类:
①硬件故障中断。包括电源故障、运算器误动作、主存或通道中数据传送出错、处理机其他硬件故障等。
②输入输出中断。如键盘输入时,每按一次键,请求处理机取走已输入的信息;打印机在输出时,每完成一次打印动作,即向处理机请求送出下一个待打印的信息。
③程序性中断。现行程序本身的异常事件引起的,如指令中出现非法操作码,寻址范围超过主存容量,结果溢出以及在程序调试中到达预定跟踪的状态等。
④外中断。来自控制台中断开关、计数器、定时器及其他设备的中断。这类中断实时性强,处理简单3。
⑤调用管理程序。用户程序中利用“调用管理程序”指令(或称“访管”指令)发出中断请求,实现用户程序和操作系统之间的联系。
中断分类硬件中断(Hardware Interrupt)可屏蔽中断(maskable interrupt)。硬件中断的一类,可通过在中断屏蔽寄存器中设定位掩码来关闭。
非可屏蔽中断(non-maskable interrupt,NMI)。硬件中断的一类,无法通过在中断屏蔽寄存器中设定位掩码来关闭。典型例子是时钟中断(一个硬件时钟以恒定频率—如50Hz—发出的中断)。
处理器间中断(interprocessor interrupt)。一种特殊的硬件中断。由处理器发出,被其它处理器接收。仅见于多处理器系统,以便于处理器间通信或同步。
伪中断(spurious interrupt)。一类不希望被产生的硬件中断。发生的原因有很多种,如中断线路上电气信号异常,或是中断请求设备本身有问题。
软件中断(Software Interrupt)软件中断。是一条CPU指令,用以自陷一个中断。由于软中断指令通常要运行一个切换CPU至内核态(Kernel Mode/Ring 0)的子例程,它常被用作实现系统调用(System call)。
处理器通常含有一个内部中断屏蔽位,并允许通过软件来设定。一旦被设定,所有外部中断都将被系统忽略。这个屏蔽位的访问速度显然快于中断控制器上的中断屏蔽寄存器,因此可提供更快速地中断屏蔽控制。
如果一个中断使得机器处于一种确定状态,则称为精确中断(precise interrupt)。精确中断须保证:
程序计数器的值被保存在已知位置。
程序计数器所指向的指令之前的所有指令已被执行完毕。
程序计数器所指向的指令之后的所有指令不可被执行。如果中断信号到来后而转入处理前发生了任何针对寄存器/内存的更改,都必须予以还原。
程序计数器所指向的指令地执行状态已知。
倘无法满足以上条件,此中断被称作非精确中断(imprecise interrupt)。
中断尽管可以提高计算机处理性能,但过于密集的中断请求/响应反而会影响系统性能。这类情形被称作中断风暴(interrupt storm)。
中断系统中断系统由专门的硬件和软件构成。硬件包括中断事件的监测与识别、中断的控制、中断向量地址形成以及中断优先权仲裁等逻辑部件。软件包括中断控制和中断服务程序等。
功能现代计算机中采用中断系统的主要目的是:①提高计算机系统效率。计算机系统中处理机的工作速度远高于外围设备的工作速度。通过中断可以协调它们之间的工作。当外围设备需要与处理机交换信息时,由外围设备向处理机发出中断请求,处理机及时响应并作相应处理。不交换信息时,处理机和外围设备处于各自独立的并行工作状态。②维持系统可靠正常工作。现代计算机中,程序员不能直接干预和操纵机器,必须通过中断系统向操作系统发出请求,由操作系统来实现人为干预。主存储器中往往有多道程序和各自的存储空间。在程序运行过程中,如出现越界访问,有可能引起程序混乱或相互破坏信息。为避免这类事件的发生,由存储管理部件进行监测,一旦发生越界访问,向处理机发出中断请求,处理机立即采取保护措施。③满足实时处理要求。在实时系统中,各种监测和控制装置随机地向处理机发出中断请求,处理机随时响应并进行处理。④提供故障现场处理手段。处理机中设有各种故障检测和错误诊断的部件,一旦发现故障或错误,立即发出中断请求,进行故障现场记录和隔离,为进一步处理提供必要的依据。