种豆资源网

当前位置:首页 > 经验 / 正文

允许中断

(2021-04-18 06:35:14) 经验
允许中断

允许中断

在计算机科学中,中断(Interrupt)是指处理器接收到来自硬体或软体的信号,提示发生了某个事件,应该被注意,这种情况就称为中断。允许中断是指处理机在处理当前中断或其他进程时,允许回响来自外部中断。

基本介绍

  • 中文名:允许中断
  • 外文名:Allow Interrupt
  • 学科:计算机
  • 定义:允许其他中断请求
  • 有关术语:中断
  • 套用:设备管理

简介

允许中断是指处理机在处理当前中断或进程时,中断禁止暂存器没有设定位掩码来关闭,处理机可以根据中断的性质和优先权来决定是否回响当前中断请求。通常,在接收到来自外围硬体(相对于中央处理器和记忆体)的异步信号,或来自软体的同步信号之后,处理器将会进行相应的硬体/软体处理,发出这样的信号称为进行中断请求(interrupt request,IRQ)
这里中断可以是软体中断和硬体中断。硬体中断导致处理器通过一个运行信息切换(context switch)来保存执行状态(以程式计数器和程式状态字等暂存器信息为主);软体中断则通常作为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)。

允许中断原因

中断优先权

在某一时刻有几个中断源同时发出中断请求时,处理器只回响其中优先权最高的中断源。当处理机正在运行某箇中断服务程式期间出现另一个中断源的请求时,如果后者的优先权低于前者,处理机不予理睬,反之,处理机立即回响后者,进入所谓的“嵌套中断”。中断优先权的排序按其性质、重要性以及处理的方便性决定,由硬体的优先权仲裁逻辑或软体的顺序询问程式来实现。

不可禁止中断

不能由程式控制其禁止,处理机一定要立即处理的中断称为非禁止中断或不可禁止中断。非禁止中断主要用于断电、电源故障等必须立即处理的情况.处理机回响中断时。

中断的种类

状态触发

在依状态触发的中断系统中,一个等待回响的中断会在中断请求线路上以特定的电位标示,如高电位(1)或低电位(0)。当一个设备希望传送中断信号时,它驱动中断请求线路至相应的电位,并在CPU发出强制停止命令或处理所请求的中断事件之前始终保持。
一般而言,处理器在汇流排周期的特定时点回响中断的输出/ 输入。如果在某次採样时刻中断尚未被触发,则在下一次採样前,处理器都不会认为有中断髮生。可以套用这个特性,避免回响在噪音较高的线路上出现的伪中断。
中断设备可被设计成与其他设备共享一条状态触发中断线路。中断线路应该包含一个特定的升/降压电阻,用于在无中断请求时为线路电平复位。中断设备在请求中断时会保持中断线路为有效电平,而没有请求中断时则令该线路置空。只要有一个或以上的设备发出中断信号,线路都会处于有效的电平。
由于可共享线路的便利,一些套用倾向于使用该类中断。当CPU检测到中断线路被断言后,就会逐一检查各共享设备,直至发现请求设备并处理之。当处理完毕后,继续检查中断线路,倘中断线路仍为有效电平则重複之前的步骤。在检查中断设备的顺序上也可做一定规划,比如优先检查那些频繁请求中断的设备,以加快中断处理,改善系统性能。
此类中断模式也有严重问题。只要还有任何设备的中断请求未被处理,线路就会一直保持有效电平状态,而这将导致CPU没有机会去探查其他设备所发生的状态变化。推迟服务低优先权设备也不可行,因为这会防止对高优先权设备的探查。倘若线上路上有一个设备持续传送请求而CPU不知道怎样对其进行服务,则这个设备就会持久并排他地占有中断线路。
早期的PCI(外设互连标準)标準出于上述效率层面的理由规定其周边须使用状态触发中断。

边沿触发

在依边沿触发的中断系统中,中断设备通过向中断线路传送一个脉冲来表示其中断请求。脉冲可以为上升沿或下降沿。在传送完脉冲后设备立即释放中断线路。如果这个脉冲太短,以至于I/O轮询不足以确保知悉其存在,则有必要使用专门的硬体设备来辅助对边沿触发的探查。
中断设备可被设计成与其他设备共享一条边沿触发中断线路。中断线路应该包含一个特定的上拉/下拉电阻,用于在无中断请求时为线路电平复位。设备通过传送一个脉冲作为其中断信号。如果多个设备在近乎相同的时间内传送脉冲,则会线上路上合併成一个信号。为防止中断丢失,CPU必须在一个脉冲之后的下一个边沿(如果脉冲为上升沿则其下一个边沿就是下降沿)立即触发。收到中断请求后CPU立即查询各中断设备以定位中断源。
边沿触发中断不会遭受状态触发中断在共享中断引脚时所遇到的问题。低优先权设备的服务可被任意推迟,而高优先权设备的中断请求仍会被CPU收到。一个即便是频繁发生的伪中断也不会影响正常设备的中断请求。但是,边沿触发中断容易丢失,特别是当中断被有意禁止时。在不引入锁存器的情况下,在禁止时段传送的中断信号不可能被恢复。在早期的计算机系统中因为中断丢失而导致处理不能继续的情况时有发生。现代中断硬体多包含有一个或一组中断状态锁存器,用以暂存一逝而过的中断请求。在对边沿触发中断硬体进行编程时,应检查这些中断状态暂存器以确保请求事件不会丢失。
已经过时的ISA(工业标準架构)标準使用边沿触发中断,但不规定其实现必须能够共享线路。

混合模式

一些系统使用状态触发与边沿触发兼顾的混合中断模式。其硬体不但探测脉冲,也验证中断信号是否保持一段时间。
非可禁止中断多使用混合模式。由于非可禁止中断多与重要的系统异常事件相关,十分有必要确保对其中断信号的捕捉快速而正确。这种两步骤探查方式能够有效减轻错误中断或遗失中断给系统带来的影响。

讯息信号(Message-signalled)

讯息信号式中断并不直接通过对特定物理线路进行断言/传送脉冲来通知一个中断。这类中断设备通过在某种通讯媒介(一般是计算机汇流排)上传送一个有逻辑含义的讯息(一串/排比特码)来实现中断请求。中断讯息可以是通讯汇流排协定中专门为中断预留的类型,也可以是一个现有的类型,如记忆体写操作。
讯息信号式中断在行为上与边沿触发中断类似,因为它们都是传送一个瞬间的信号。中断处理软体的对此类中断的处理方式也类似于边沿触发中断:如果两个讯息相同,则可以合併。讯息信号中断向量(中断处理程式的地址)也可以共享,就如同物理线路可以被共享一般。
由于中断讯息的识别基于特定的比特码序列而不是物理线路上的单个信号,可以有效地通过设定不同的中断比特码来划分和处理不同类型的中断。另外,使用串列或并行汇流排都可以传递中断讯息。
由于无论状态触发还是边沿触发都在使用共享线路时存线上路竞争问题,而物理线路数本身也是稀缺资源,不可能被各中断源分别独占,所以讯息信号中断是一个解决此问题的较好替代方案。讯息信号中断的本质差别在于其中断请求运行在单纯的物理线路之上,具有特定的逻辑含义。这种区别好比计算机网路体系中第一层(物理层)和第二层(链路层)的差别。使用具有逻辑含义的中断请求,可以把诸请求区分开来,形成多条虚通路,而运行于一条物理汇流排之上。PCI Express串列汇流排标準即使用此种中断。
搜索
热门图片
最近更新
随机推荐

Powered By 种豆资源网||