外部中断是由中断信号引起的中断,用于处理各种定时操作和其他外围设备的操作。输入/输出中断是由输入/输出设备产生的外部中断。外部中断可进一步分为可禁止中断和不可禁止中断。允许外部中断是指处理机在处理中断或其他进程时,允许回响来自外部中断。
基本介绍
- 中文名:允许外部中断
- 外文名:Allow external interrupts
- 学科:计算机
- 定义:处理机允许回响外部中断
- 有关术语:中断
- 领域:设备管理
中断
在计算机科学中,中断(Interrupt)是指处理器接收到来自硬体或软体的信号,提示发生了某个事件,应该被注意,这种情况就称为中断。
中断是用以提高计算机工作效率、增强计算机功能的一项重要技术。最初引入硬体中断,只是出于性能上的考量。如果计算机系统没有中断,则处理器与外部设备通信时,它必须在向该设备发出指令后进行忙等待(Busy waiting),反覆轮询该设备是否完成了动作并返回结果。这就造成了大量处理器周期被浪费。引入中断以后,当处理器发出设备请求后就可以立即返回以处理其他任务,而当设备完成动作后,传送中断信号给处理器,后者就可以再回过头获取处理结果。这样,在设备进行处理的周期内,处理器可以执行其他一些有意义的工作,而只付出一些很小的切换所引发的时间代价。后来被用于CPU外部与内部紧急事件的处理、机器故障的处理、时间控制等多个方面,并产生通过软体方式进入中断处理(软中断)的概念。中断可分为如下几种:
硬体中断(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)。
外部中断的触发方式
外部中断的触发有两种触发方式:电平触发方式和跳沿触发方式。
电平触发方式
若外部中断定义为电平触发方式,外部中断申请触发器的状态随着CPU在每个机器周期採样到的外部中断输入线的电平变化而变化,这能提高CPU对外部中断请求的回响速度。当外部中断源被设定为电平触发方式时,在中断服务程式返回之前,外部中断请求输入必须无效(即变为高电平),否则CPU返回主程式后会再次回响中断。所以电平触发方式适合于外部中断以低电平输入而且中断服务程式能清除外部中断请求源(即外部中断输入电平又变为高电平)的情况。
跳沿触发方式
外部中断若定义为跳沿触发方式,外部中断申请触发器能锁存外部中断输入线上的负跳变。即便是CPU暂时不能回响,中断申请标誌也不会丢失。在这种方式里,如果相继连续两次採样,一个机器周期採样到外部中断输入为高,下一个机器周期採样为低,则置“1”中断申请触发器,直到CPU回响此中断时才清’0’。这样不会丢失中断,但输入的负脉冲宽度至少保持12个时钟周期(若晶振频率为6MHz,则为21xs),才能被CPU採样到。外部中断的跳沿触发方式适合于以负脉冲形式输入的外部中断请求。
允许外部中断的原因
外部中断是由中断信号引起的中断,用于处理各种定时操作和其他外围设备的操作。外部中断主要是硬体中断。引起允许外部中断原因如下:
中断优先权
在某一时刻有几个中断源同时发出中断请求时,处理器只回响其中优先权最高的中断源。当处理机正在运行某箇中断服务程式期间出现另一个中断源的请求时,如果后者的优先权低于前者,处理机不予理睬,反之,处理机立即回响后者,进入所谓的“嵌套中断”。中断优先权的排序按其性质、重要性以及处理的方便性决定,由硬体的优先权仲裁逻辑或软体的顺序询问程式来实现。
不可禁止中断
不能由程式控制其禁止,处理机一定要立即处理的中断称为非禁止中断或不可禁止中断.非禁止中断主要用于断电、电源故障等必须立即处理的情况.处理机回响中断时。