中断装置和中断处理程序统称为中断系统。中断系统是计算机的重要组成部分。实时控制、故障自动处理、计算机与
外围设备间的
数据传送往往采用中断系统。中断系统的应用大大提高了计算机效率。
简介
不同的计算机其硬件结构和软件指令是不完全相同的,因此,中断系统也是不相同的。计算机的中断系统能够加强CPU对多任务事件的处理能力。
中断机制是现代计算机系统中的基础设施之一,它在系统中起着通信网络作用,以协调系统对各种外部事件的响应和处理。中断是实现
多道程序设计的必要条件。 中断是CPU对系统发生的某个事件作出的一种反应。 引起中断的事件称为
中断源。中断源向CPU提出处理的请求称为
中断请求。发生中断时被打断程序的暂停点成为断点。CPU暂停现行程序而转为响应
中断请求的过程称为
中断响应。处理中断源的程序称为
中断处理程序。CPU执行有关的中断处理程序称为
中断处理。而返回断点的过程称为中断返回。中断的实现由实行软件和硬件综合完成,硬件部分叫做硬件装置,软件部分称为软件处理程序。
功能
响应和返回
当CPU收到
中断请求后,能根据具体情况决定是否响应中断,如果CPU没有更急、更重要的工作,则在执行完当前指令后响应这一中断请求。CPU
中断响应过程如下:首先,将断点处的PC值(即下一条应执行指令的地址)推入堆栈保留下来,这称为保护断点,由硬件自动执行。然后,将有关的
寄存器内容和标志位状态推入堆栈保留下来,这称为保护现场,由用户自己编程完成。保护断点和现场后即可执行
中断服务程序,执行完毕,CPU由中断服务程序返回主程序,中断返回过程如下:首先恢复原保留寄存器的内容和标志位的状态,这称为
恢复现场,由用户编程完成。然后,再加返回指令RETI,RETI指令的功能是恢复PC值,使CPU返回断点,这称为恢复断点。恢复现场和断点后,CPU将继续执行原主程序,
中断响应过程到此为止。
优先权排队
通常,系统中有多个
中断源,当有多个中断源同时发出
中断请求时,要求计算机能确定哪个中断更紧迫,以便首先响应。为此,计算机给每个中断源规定了优先级别,称为优先权。这样,当多个中断源同时发出中断请求时,优先权高的中断能先被响应,只有优先权高的
中断处理结束后才能响应优先权低的中断。计算机按中断源优先权高低逐次响应的过程称优先权排队,这个过程可通过硬件电路来实现,亦可通过软件查询来实现。
中断嵌套
当CPU响应某一中断时,若有优先权高的
中断源发出
中断请求,则CPU能中断正在进行的
中断服务程序,并保留这个程序的断点(类似于
子程序嵌套),响应高级中断,高级
中断处理结束以后,再继续进行被中断的中断服务程序,这个过程称为中断嵌套。如果发出新的中断请求的中断源的优先权级别与正在处理的中断源同级或更低时,CPU不会响应这个中断请求,直至正在处理的中断服务程序执行完以后才能去处理新的中断请求。
分类
中断源是指能够引起中断的原因。一台
处理机可能有很多中断源,但按其性质和处理方法,大致可分为如下五类。
① 机器故障中断。
② 程序性中断。现行程序本身的异常事件引起的,可分为以下三种:一是程序性错误,例如指令或
操作数的地址边界错,非法操作码和除数为零等;二是产生特殊的运算结果,例如定点溢出;三是程序出现某些预先确定要跟踪的事件,跟踪操作主要用于
程序调试。有些机器把程序性中断称为“异常”,不称为中断。
④ 外中断。来自控制台
中断开关、计时器、时钟或其他设备,这类中断的处理较简单,实时性强。
⑤ 调用管理程序。
用户程序利用专用指令“调用管理程序”发
中断请求,是用户程序和操作系统之间的联系桥梁。
优先权
几个
中断请求可能同时出现,但中断系统只能按一定的次序来响应和处理。可最先被响应的中断具有最高优先权,按优先级别顺序进行处理。优先权高低是由中断部件的中断排队线路确定的。
中断级
当机器设置很多
中断源时,为了简化设计,对中断源分组管理。具有相同中断优先权的中断源构成一个中断级。同一级中断使用同一个中断控制程序起点。
中断屏蔽
对应于各中断级设置相应的屏蔽位。只有屏蔽位为1时,该中断级才能参加
中断优先权排队。中断屏蔽位可由专用指令建立,因而可以灵活地调整中断优先权。有些机器针对某些
中断源也设置屏蔽位,只有屏蔽位为1时,相应的中断源才起作用。
中断处理
大多数中断系统都具有如下几方面的操作,这些操作是按照中断的执行先后次序排列的。①接收
中断请求。②查看本级中断屏蔽位,若该位为1则本级
中断源参加优先权排队。③中断优先权选择。④
处理机执行完一条指令后或者这条指令已无法执行完,则立即中止现行程序。接着,中断部件根据中断级去指定相应的主存单元,并把被中断的指令地址和处理机当前的主要状态信息存放在此单元中。⑤中断部件根据中断级又指定另外的主存单元,从这些单元中取出处理机新的状态信息和该级中断控制程序的起始地址。⑥执行中断控制程序和相应的
中断服务程序。⑦执行完中断服务程序后,利用专用指令使处理机返回被中断的程序或转向其他程序。
程序状态字
程序状态字与向量中段这是两个与
中断响应和处理有密切关系的概念。
程序状态字:每个程序均有自己的程序状态字。现行程序的程序状态字放在
处理机的
程序状态字寄存器中。程序状态字中最主要的内容有指令地址、条件码、地址保护键,
中断屏蔽和中断响应时的
中断源记录等。中断响应和处理操作的第④步和第⑤步就是交换程序状态字操作。
向量中断
向量中断:对应每一级中断都有一个向量,这些向量顺序存放在主存的指定单元中。向量的内容是:相应的
中断服务程序起始地址和
处理机状态字(主要是指令地址)。在
中断响应时,由中断部件提供
中断向量的地址,就可取出该向量。中断响应和处理操作的第⑤步就是取中断向量操作。在采用向量中断的机器中一般不再使用
程序状态字。