硬件技术基础第七章中断系统.ppt
《硬件技术基础第七章中断系统.ppt》由会员分享,可在线阅读,更多相关《硬件技术基础第七章中断系统.ppt(89页珍藏版)》请在三一办公上搜索。
1、,中断系统,第七章,教学目的和要求 本章主要介绍中断的基本概念,中断响应过程,8088的中断方式,IBM PC/XT的中断方式,之后又介绍了中断控制器8259,重点掌握中断概念、中断响应过程、8088中断方式。,中断系统,内容提要 中断概述 CPU响应中断的条件和过程 中断优先权及多重中断 8088的中断方式 IBM PC/XT的中断方式 中断控制器8259A,中断系统,中断系统,中 断:指CPU在正常运行程序时,由程序预先安排好的 事件或由内、外部事件引起CPU中断正在运行的 程序,而转到预先安排的事件或内、外部事件服 务的程序中去。中 断 源:引起程序中断的事件。中断返回:中断服务程序执行
2、完,返回原来执行程序的中断 处(称为断点)继续往下执行。中断的优先级:有时中断请求信号(即中断源)可能有好 几个,CPU响应这些中断的先后次序。挂 起:优先级高的中断,CPU首先响应;优先级低的中 断暂不响应。,中断系统,中断的屏蔽:有些中断源产生的中断,可以用编程的方法,使CPU不予理睬。CPU响应中断转去执行中断服务程序前,需要把被中断程序的现场信息保存起来,以便执行完中断服务程序后,接着从被中断程序的断点处继续往下执行,这些现场信息包括程序计数器的内容、CPU的状态信息、执行指令后的结果特征和一些通用寄存器的内容。中断处理的隐操作:有些信息的保存如程序计数器的内容 等由机器硬件预先安排完
3、成。中断向量:有些信息的保存是在中断服务程序中预先安排 的。CPU响应中断,由中断源提供地址信息,,中断系统,引导程序转移并执行中断服务程序,这个地址信 息称为中断向量,它一般是和中断源相对应的。在数据采集或实时控制中,CPU对接口设备的控制或交换信息,查询、中断、DMA方式均可使用,而中断方式以其执行速度快,可实时处理,不占用CPU过多的时间等优点,在接口技术中较多地被采用。,中断概述,中断的必要性 CPU在与外设交换信息时,若用查询的方式,则CPU就要浪费很多时间去等待外设。这样就存在一个快速的CPU与慢速的外设之间的矛盾,这也是计算机在发展过程中遇到的严重问题之一。为解决这个问题,一方面
4、要提高外设的工作速度;另一方面发展了中断的概念。实现了中断,就有以下好处:同步操作:有了中断功能,就可以使CPU和外设同时工作。而且有了中断功能,CPU可命令多个外设同时工作。这样就大大提高了CPU的利用率,也提高了输入、输出的速度。,中断概述,实现实时处理 当计算机用于实时控制时,中断是一个十分重要的功能。现场的各个参数、信息,需要的话可在任何时间发出中断申请,要求CPU处理;CPU就可以马上响应(若中断是开放的话)加以处理。这样及时处理在查询的工作方式下是做不到的。故障处理 计算机在运行过程中,往往会出现事先预料不到的情况,或出现一些故障;如电源突跳,存储出错,运算溢出等等。计算机就可以利
5、用中断系统自行处理,而不必停机或报告工作人员。,中断概述,中断源 引起中断的原因,或能发出中断申请的来源,称为中断源。通常中断源有以下几种:一般的输入、输出设备:如键盘、打印机等。数据通道中断源:如磁盘、磁带等。实时时钟:在控制中,常要遇到时间控制问题等,常用外部时钟电路,当需要定时时,CPU发出命令,令时钟电路开始工作,待规定的时间到了后,时钟电路发出中断申请,由CPU加以处理。,中断概述,故障源:例如电源掉电。需要把正在执行程序的状态PC(或IP)、各个寄存器的内容和标志位的状态保留下来,以便重新供电后能从断点处继续运行等。为调试程序而设置的中断源:一个新的程序编制好以后,必须经过反复调试
6、才能可靠地工作。在程序调试时,为了检查结果,或为了寻找毛病所在,往往要求在程序中设置断点,或进行单步工作(一次只执行一条指令),这些就要由中断系统来实现。,中断概述,中断系统的功能 为了满足上述各种情况下的中断要求,中断系统应具有如下功能:实现中断及返回 能实现优先排队 高级中断低级中断的处理,CPU响应中断的条件和过程,CPU由于引脚的限制,它的中断请求线的数量是有限的。CPU响应中断的条件 设置中断请求触发器 要求每一个中断源有一个中断源请求触发器A。,CPU响应中断的条件和过程,设置中断屏蔽触发器,CPU响应中断的条件和过程,中断是开放的 在CPU内部有一个中断允许触发器。当CPU复位时
7、,中断允许触发器为“0”,即关中断,所以必须要用STI指令来开中断。当中断响应后,CPU就自动关中断,所以必须在中断服务程序中用STI指令来开中断。CPU在现行指令结束后响应中断 CPU在现行指令运行到最后一个机器周期的最后一个T状态时,才采样INTR线。若发现有中断请求,则把内部的中断锁存器置“1”,然后下一个机器周期不进入取指周期,而进入中断周期。,CPU响应中断的条件和过程,CPU响应中断的条件和过程,CPU对中断的响应 当满足上述条件后,CPU就响应中断,转入中断周期,CPU做以下几种事:关中断 8088在CPU响应中断后,发出中断响应信号INTA的同时,内部自动地实现关中断。保留断点
8、 CPU响应中断,封锁IP+1,且把IP和CS推入堆栈保留,以备中断处理完毕后,能返回主程序。,CPU响应中断的条件和过程,保护现场 为了使中断处理程序不影响主程序的运行,故要把断点处有关的各个寄存器的内容和标志位的状态,推入堆栈保护起来。8088是由软件(即在中断服务程序中)把要用到的寄存器的内容用PUSH指令推入堆栈。给出中断入口,转入相应的中断服务程序 8088是由中断源提供的中断矢量形成中断入口地址(即中断服务程序的起始地址)。在中断服务程序完成后,还要做下述两步。,CPU响应中断的条件和过程,恢复现场 把所保存的各个内部寄存器的内容和标志位的状态从堆栈弹出,送回CPU中的原来位置。这
9、个操作在8088中也是由服务程序中用POP指令来完成的。开中断与返回 在中断服务程序的最后,要开中断(以便CPU能响应新的中断请求)和安排一条返回指令,将堆栈内保存的IP和CS值弹出,程序就恢复到主程序中运行。,CPU响应中断的条件和过程,中断优先权及多重中断,中断优先权 实际的系统中,是有多个中断源的,于是,当有多个外中断源同时请求时,CPU就要先响应优先权级别最高的中断申请。另外,当CPU正在处理中断时,也要能响应更高级的中断申请,而屏蔽掉同级或较低级的中断申请。要判别和确定各个中断源的优先权可以用软件和硬件两种方法。用软件确定中断优先权 软件采用查询技术。当CPU响应中断后,就用软件查询
10、以确定是哪些外设申请中断,并判断它们的优先权。,中断优先权及多重中断,中断优先权及多重中断,查询程序有两种实现方式:屏蔽法 IN AL,20H;输入中断请求触发器的状态 TEST AL,80H;检查最高位 JNE PWF;外设A中断服务程序 TEST AL,40H;检查次高位 JNE DISS;外设B中断服务程序 TEST AL,20H JNE MT;外设C中断服务程序,中断优先权及多重中断,移位法 XOR AL,AL IN AL,20H;输入中断请求触发器的状态 RCL AL,1 JC PWF;外设A中断服务程序 RCL AL,1 JC DISS;外设B中断服务程序,中断优先权及多重中断,查
11、询方法的优点是:询问的次序,即是优先权的次序。显然,最先询问的,优先权的级别最高。省硬件。不需要有判断与确定优先权的硬件排队电路。缺点是:由询问转至相应的服务程序的入口时间长,尤其是在中断源较多的情况下。,中断优先权及多重中断,硬件优先权排队电路 中断优先权编码电路用硬件编码器和比较器的优先权排队电路,中断优先权及多重中断,雏菊花环(Daisy Chain)式或称为链式优先权排队电路,中断优先权及多重中断,多级中断的概念 多级中断系统是指计算机系统中有相当多的中断源,根据各中断事件的轻重缓急程度不同而分成若干级别,每一中断级分配给一个优先权。一般说来,优先权高的中断级可以打断优先权低的中断服务
12、程序,以程序嵌套方式进行工作。,中断优先权及多重中断,根据系统的配置不同,多级中断又可分为一维多级中断和二维多级中断,一维多级中断是指每一中断里只有一个中断源,而二维多级中断是指每一级中断里又有多个中断源。图中虚线左边结构为一维多级中断,如果取掉虚线则成为二维多级中断结构。,中断优先权及多重中断,对于多级中断,我们着重说明如下几点:一个系统若有n级中断,在CPU中就有n个中断请求触发器,总称为中断请求寄存器;与之对应的有n级中断屏蔽触发器,总称为中断屏蔽寄存器。与单级中断不同,在多级中断中,中断屏蔽寄存器的内容是一个很重要的程序现场,因此在响应中断时,需要把中断屏蔽寄存器的内容保存起来,并设置
13、新的中断屏蔽状态。一般在某一级中断被响应后,要置“0”(关闭)本级和优先权低于本级的中断屏蔽触发器,置“1”(开放)更高级的中断屏蔽触发器,以此来实现正常的中断嵌套。多级中断中的每一级可以只有一个中断源,也可以有多个中断源。在多级中断之间可以实现中断嵌套,但是同,中断优先权及多重中断,一级内的不同中断源的中断是不能嵌套的,必须是处理完一个中断后再响应和处理同一级内其他中断源。多级中断系统中首先响应哪一级中断和哪个中断源,都是由硬件逻辑实现,而不是用程序实现。另外,在二维中断结构中,独立请求方式与链式查询方式相结合的方法决定首先响应哪个中断源。在多级中断中也使用中断堆栈保存现场信息。使用堆栈保存
14、现场的好处是:控制逻辑简单,保存和恢复现场的过程按先进后出 顺序进行。每一级中断不必单独设置现场保护区,各级中断现 场可按其顺序放在同一栈里。,8088的中断方式,8088有两种类型的中断:由执行某些指令引起的软中断和设备引起的硬中断,这些类型的中断,均有中断类型码相对应。软中断执行下述指令时,将产生或可能产生中断。DIV(除)或IDIV(整除)指令 当执行这些除法指令时,若除数为零或商溢出,则产生中断,称为0型中断。INT指令 当执行中断指令INT n时,则产生n型中断。,8088的中断方式,INT0指令 若在指令序列执行过程中,上条指令执行的结果使溢出标志位O=1,接着若执行的是INTO指
15、令,则引起内部中断,称为4型中断;若溢出标志位O=0,该指令将不起作用。单步执行 当标志位T=1时,每执行一条指令,则引起一次中断,使得指令的执行成为单步执行方式,这种方式常用于程序的调试。单步执行为1型中断。,8088的中断方式,硬中断 8088有两种中断请求线:非屏蔽中断NMI线和可屏蔽中断INTR线,在这两条线上产生中断请求信号而引起的中断称为硬中断。可屏蔽中断 出现在INTR线上的请求信号是电平触发的,它的出现是异步的,在CPU内部由CLK的上升沿来同步。在该线上的中断请求信号(高电平有效)必须保持到当前指令的结束。在这条线上出现的中断请求,CPU是否响应要取决于标志位I的状态,若I=
16、1,则CPU就响应,可以认为此时CPU处于中断状态;若I=0,则CPU就不响应。I位的状态,,8088的中断方式,可以用指令STI使其置位(即开中断);也可用CLI指令使其复位(即关中断)。非屏蔽中断 当NMI线上出现一个由低向高上跳的高电平中断请求信号后(持续时间大于两个时钟周期),不管标志寄存器I位的状态如何,当前指令执行完成后,8088马上转入中断处理。此种类型的中断有三种来源:电源故障,系统板上随机存储器奇偶校验错,8087(协处理器)中断请求和I/O通道检查错。非屏蔽中断的优先权高于可屏蔽中断。,8088的中断方式,中断向量表 8088有一个简单的而又多功能的中断系统。上述的任何一种
17、中断,CPU响应以后,都是要保护现场和保护断点,然后转入各自的中断服务程序。8088在内存的前1K字节(地址00000H003FFH)建立了一个中断向量表,可以容纳256个中断向量(或256个中断类型),每个中断向量占用4个字节。在这4个字节中,包含着这个中断向量(或这个中断类型)的服务程序的入口地址前两个字节为服务程序的IP,后两个字节为服务程序的CS。,8088的中断方式,8088的中断方式,8088中的中断响应和处理过程 8088中各种中断的响应和处理过程是不相同的,但主要区别在于如何获取相应的中断类型码(向量号)。对于硬件(外部)中断,CPU是在当前指令周期的T状态采样中断请求信号,如
18、果有可屏蔽中断请求,且CPU处在开中断状态(I标志为1),则CPU转入两个连续的中断响应周期,在第二个中断周期的T4状态前沿,采样数据线获取由外设输入的类型码;若是采样到非屏蔽中断请求,则CPU不经过上述的两个中断响应周期,而在内部自动产生中断类型码2。对于软件中断,中断类型码也是自动形成的。对于INT n 指令,则类型码即为指令中给定的n。,8088的中断方式,8088在取得了类型码后的处理过程是一样的,其顺序为:将类型码乘4,作为中断向量表的指针;把CPU的标志寄存器入栈,保护各个标志位,此操作类似于PUSH F指令;复制追踪标志T的状态,接着清除I和T标志,屏蔽新的INTR中断和单步中断
19、;保存主程序中的断点,即把主程序断点处的IP和CS值推入堆栈保护,先推入CS值,再入IP值;,8088的中断方式,从中断向量表中取中断服务程序的入口地址、分别送至CS和IP中,先取CS值;按新地址执行中断服务程序。在中断服务程序中,通常要保护CPU内部寄存器的值(保护现场)、开中断(若允许中断嵌套的话)。在中断服务程序执行完后,要恢复现状,最后执行中断返回指令IRET,IRET指令按次序恢复断点处的IP和CS值,恢复标志寄存器(相当于 POP F)。于是程序就恢复到断点处继续执行。,8088的中断方式,IBM PC/XT的中断方式,IBM PC/XT 中断类型 在IBM PC/XT 机中有三种
20、类型的中断:内部中断即软中断 包括被零除、单步执行、溢出和中断指令(包括断点中断)等。非屏蔽中断NMI 在IBM PC/XT中若存储器的读写奇偶校验错,或者是由8087(协处理器)的异常产生的中断都送至8088的NMI输入端要求处理。可屏蔽中断INTR 在IBM PC/XT系统中,可能有多个外部设备中断请求,IBM PC/XT的中断方式,信号,而CPU 8088的可屏蔽中断输入信号只有一个INTR。为此,在IBM PC/XT系统中,采用中断控制器(8259)将外部设备中断请求信号扩充到8个。,IBM PC/XT的中断方式,IBM PC/XT 中系统保留的中断 8088 CPU最多能处理256种
21、不同的中断,其中有5个是8088 CPU保留为CPU专用的;又有相当一部分是由磁盘操作系统DOS保留为系统用的。IBM PC/XT 中保留的中断(所用的PC-DOS的版本号不同会有一些不同)前5个中断类型是8088规定的专用中断。BIOS安排到中断类型号1F。在这些类型中断中,类型号8F就是通过8259的八级硬件中断。5号和101A号是基本外部设备的输入输出驱动程序和BIOS中调用的有关程序。1B和1C由用户设定,1D1F指向三个数据区域。,IBM PC/XT的中断方式,IBM PC/XT的中断方式,中断类型号203F由DOS操作系统使用,用户程序也可以调用其中的2027号中断。,中断控制器8
22、259A,在中断控制过程中,中断源的识别和优先权的确定可以用硬件排队电路等实现,INTEL 8259A可编程中断控制器就是为完成这些任务而设计的一种器件。它不是I/O接口,而是一种中断管理芯片,筒称PIC(Programmable Interrupt Controller)。8259A的主要功能为:具有8级优先权控制,通过芯片级联可扩展至64级优先权控制。每一级中断均可通过编程屏蔽或允许。在中断响应周期可提供相应的中断类型号。有多种工作方式,可通过编程选择。可与CPU直接连接,不需外加硬件电路。,中断控制器8259A,8259A的内部结构 8259A采用NMOS工艺,只需要单一的5V电源,它的
23、内部电路为静态电路,因此不需要时钟输入。,中断控制器8259A,数据总线缓冲器 数据总线缓冲器是三态,双向,8位的缓冲器,D7D0用于和CPU的数据总线连接。中断请求寄存器(IRR)中断请求寄存器用来寄存所有IR输入线输入的中断请求信号,即保存正在请求服务的中断级。优先权电路 优先权电路的主要作用是确定中断请求寄存器IRR中各位的优先等级,并确定能否向CPU申请中断。中断服务寄存器ISR 中断服务寄存器ISR的主要作用是保存当前被CPU,中断控制器8259A,服务的中断级,也就是记录正在被处理的中断请求。中断屏蔽寄存器IMR 中断屏蔽寄存器IMR的主要作用是对各中断源的中断请求信号(IROIR
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 硬件 技术 基础 第七 中断 系统
链接地址:https://www.31ppt.com/p-6230906.html