资源预览内容
第1页 / 共106页
第2页 / 共106页
第3页 / 共106页
第4页 / 共106页
第5页 / 共106页
第6页 / 共106页
第7页 / 共106页
第8页 / 共106页
第9页 / 共106页
第10页 / 共106页
亲,该文档总共106页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
中断技术中断是计算机中一个重要且实用的技术。采用中断技术主要为解决两个问题: 1.在输入输出过程中,解决快速的CPU与慢速 的外设之间速度不匹配的问题,实现CPU与外设 备并行工作,提高CPU的利用率。2.确保CPU在运行过程中具有实时响应和处理 随机事件的能力。 教学要求理解:1)中断、中断源、中断向量、中断过程;2)8086中断系统结构、中断类型码、中断过 程;3)8259A 的功能、编程及使用方法; 掌握:1)8086中断方式及中断入口地址形成方式;2)8086中断处理过程;3)8259A的初始化方法;第8章 中断8.1 概述 8.2 8086中断系统 8.3 可编程中断控制器8259A8.1 概述8.1.1 中断的基本概念 8.1.2 中断处理过程 8.1.3 中断优先级与中断嵌套CPU在正常执行程序的过 程中,由于某些事件(外部或内 部)发生,引起CPU暂时中止当 前程序的执行,而转去执行一 段特殊程序(称中断服务子程 序),以处理该事件。该事件 处理完后,再返回原被中断的 程序继续执行。一.中断CPU执行程序事件发生中 断 服 务 子 程 序中断响应中断返回继 续 执 行K: DK: 处 理 事 件 8.1.1 中断的基本概念断点正在看书电话铃响接电话继续看书执行程序事件发生事件处理继续执行程序生活场景中的中断计算机中的中断对比8.1.1 中断的基本概念一、中断中断源:能够向CPU发出中断请求的设备或事件。 一般的输入/输出设备,如显示器、打印机、键盘等。 数据通道中断源,如磁盘直接与内存交换数据所要求的中 断。 实时时钟 计算机内部故障引起的中断,如电源掉电、运算结果溢出 、存储出错等。 在程序调试过程中由程序员所设置的中断。如单步中断、 软中断指令INT n等。 8.1.1 中断的基本概念二、中断源8.1.2 中断处理过程中断请求响应中断断点保护识别中断源中断服务现场恢复中断返回(断点恢复)中断过程由硬件和软件共同实现的。现场保护1、中断请求中断源希望CPU对它服务时,就产生一个中断请求 信号,送至CPU的中断请求输入端(INTR、NMI) ,通知CPU,形成对CPU的中断请求。 8086 CPUINTRINTAI/O 接口键盘中断请 求信号示例 键盘中断产生的中断请求NMI中断请求信号应被有效地记录(设置中断请求触发器);一旦CPU对中断源的请求提供了服务(响应中断),中断 请求信号应及时撤销。CPU在每条指令执行的最后一个时钟周期检测 有无中断请求,若CPU接受中断请求,就会中 止当前程序的执行,转向中断服务程序执行。2、响应中断对键盘等外设的中断请求,在满足一定响应 条件(三个条件,P246)下,CPU才可响应其 中断请求。 响应中断CPU响应中断的三个条件:中断请求触发器置“1”中断屏蔽触发器处于“非屏 蔽”状态 CPU内部是中断开放的(中 断允许触发器IF为“1”)IF清0,禁止接受其他的中断请求3、关中断4、保护断点断点地址 标志寄存器内容硬件自 动进行压入 堆栈为使中断服务结束后,CPU能返回被中断程 序的断点处继续执行,需对被中断程序的断 点进行保护。IPL IPH CSL CSH FLAGL FLAGHSP断点 地址标志寄存 器内容CPU 执行程序事件发生中 断 处 理 子 程 序中断响应中断返回继 续 执 行K: DK: 处 理 事 件 断点堆栈5、识别中断源CPU确定是哪一个中断源提出中断请求,找 到相应中断服务程序的入口。 识别中断源的方法:软件查询法向量中断法(8086中断系统采用)对多个中断源进行编码(如8086中断源 编码0255),以此编码作为中断源识别 的标志。6、保护现场现场信息(被中断 程序有关寄存器内容)压入 堆栈在中断服务程序 编程实现(使用 PUSH指令)PUSH AX PUSH BX PUSH CXIPL IPH CSL CSH FLAGL FLAGHSPAXBXCX断点 地址标志寄存 器内容现场 信息7、中断服务 执行中断服务程序(中断 处理的核心)中断源不同,中断服务的内容也不同。 例如,键盘中断服务程序:CPU从键盘接口取得输入的数据(即 按下键所对应字符的ASCII码)8.1.3 中断优先级与中断嵌套一、中断优先级二、中断嵌套一、中断优先级多个中断源同时产生中断请求,而CPU每次只能 响应一个中断源的请求,那么CPU究竟应先响应哪 一个中断请求呢 ? 根据各中断源工作性质的轻、重、缓 、急,安排一个响应各类中断的先后次序(优 先级排队)。CPU先响应优先级高的中断请求 ,而后再响应优先级低的中断请求。目的:保证CPU有序地为各中断源服务。n确定中断优先级的方法n软件查询:如顺序查询n硬件排队:如菊花链电路、中断优 先级控制器PIC (如8259A)例如8086系统各外设产生的中断请 求由8259A进行优先级排队。一、中断优先级二、中断嵌套主程序n中断A服务程序m中断源 A请求中断源B请求中断B服务程序IRET 中断返回m1IRET 中断返回n+1断点断点当CPU响应优 先级较低的中 断服务程序时 ,允许响应比 它优先级高的 中断源的中断 请求。中断优先级:BA8.2 8086中断系统8.2.1 8086中断源类型 8.2.2 中断向量和中断向量表 8.2.3 中断响应流程8.2.1 8086中断源类型中断类型码:8086CPU能处理和支持256种不同的中断。每个中断源都有一个与它相对应 的中断类型码(赋予中断源的编号 编号从0255 ),CPU以中断类型 码来识别不同的中断源。l 外部中断:外部硬件设备引起的中断,又称硬件中断。l 内部中断:CPU执行软中断指令,或在程序运行过程中 出现错误等异常情况而产生的中断,又称异常中断。NMIINTR中断逻辑软件中断 INT n溢出中断除法错中断单步中断不可屏蔽中断中断控 制器 8259A PIC断点中断n40312定时器 键盘 保留 串行通信接口 串行通信接口 硬盘 打印机 软盘 可 屏 蔽 中 断IR0 IR1 IR2 IR3 IR4 IR5IR6 IR7内部中断外部中断8086的中断源可分为两类:一、外部中断8086 CPUNMIINTR不可屏蔽中断请求输入端可屏蔽中断请求输入端8086CPU提供两条引脚INTR、NMI接受中断请求信号从NMI引脚进入的中断不可屏蔽中断 从INTR引脚进入的中断可屏蔽中断INTA中断响应信号输出端一、外部中断l 不可屏蔽中断(NMI中断) 中断类型码 2 上升沿触发申请中断 不受中断允许标志IF的控制与影响(即不可屏蔽 ),一旦NMI引脚出现中断请求,CPU在当前指令执行 完后,必须立即响应。 由计算机内部硬件出错而引发,一般用于处理紧 急事件。PC机中用于内存奇偶校验出错和系统主要故障 (如电源断电等)。8086 CPUNMI一、外部中断l 可屏蔽中断(INTR中断) 外设申请的中断 电平触发 受中断允许标志IF控制IF = 1 (指令STI),开中断,允许响应INTR中断IF = 0 ( 指令CLI ) ,关中断,禁止响应INTR中断 当外设对CPU有服务请求,会向INTR发来一个 高电平信号(见上图),并且中断允许标志IF=1时, CPU会在当前指令执行完后,响应可屏蔽中断。 8086 CPUINTRINTAl 可屏蔽中断(INTR中断)8086CPU只有一个可屏蔽中断请求输入引脚,8086中断系 统设计中断控制器(8259A)管理各种外设提出的中断请求。所有 外设的中断请求信号都可送至8259A的中断请求输入端IRQ0 IRQ7任何一个,8259A选择其中优先级最高的中断请求,送至 CPU的INTR引脚,向CPU申请可屏蔽中断。 可屏蔽中断源的中断类型码由8259A提供。一、外部中断INTRINTA8086 CPUIN TINTA8259AIRQ0 IRQ1 IRQ2IRQ7 可屏蔽 中断请求 输入端8259A可对多个可屏蔽中断 源进行优先级控制,一片 8259A可管理8级可屏蔽中 断。n286以上系统使用两片8259A级联管理15级可屏蔽中断。从 中断0到中断15。比较常见的分配方式:IRQ0 系统定时器IRQ1 键盘IRQ2 可编程中断控制器8259AIRQ3 COM2(串口)IRQ4 COM1(串口)IRQ6 软盘控制器IRQ7 并行口LPT1IRQ8 系统CMOS/实时钟IRQ12 PS/2鼠标IRQ13 数学协处理器IRQ14 第一IDE控制器(硬盘)IRQ15 第二IDE控制器 (CDROM) IRQ5 可用 (如声卡) IRQ9 可用 (如网卡)IRQ10 可用 (如USB)IRQ11 可用 (如SCSI主适配器)PC机 外部中断 分配可以给用户 的新添设备 使用 系统 隐含要想计算机正常工作 ,必须把中断合理分 配给外设,让它们没 有冲突。 Win98以上的操作系 统已支持PNP “即插 即用”技术,它可以 将中断进行自动分配 ,简化用户操作。 不需要外部硬件支持,不受中断标志IF的影响,中断类型 码或包含在指令中,或预先规定。8086/8088内部中断有以下5种:n 除法出错中断n 断点中断n 单步中断n 溢出中断n 软件中断 二、内部中断类型码0,CPU执行除法指令时,除数 为0或商溢出(超出规定范围,寄存器 不能存放)时产生。 除法出错中断类型码4,执行INTO指令,且OF=1 时产生。常放在带符号数加减指令后 ,可对溢出及时告警。溢出中断类型码3,执行指令INT 3时产生。用 于程序调试时设置断点。断点中断利用断点中断的中断处理程序可进 行某些特殊处理,如显示有关寄存 器或存储单元内容。断点中断也是 一种调试程序的方法。类型码1,TF=1时产生(当前指令需执行完) 。用于调试程序,跟踪程序执行过程。单步中断单步中断的中断处理程序可显示CPU执行完当 前指令后,各个寄存器及有关存储单元内容。 利用单步中断可一条一条指令地跟踪程序的流 程,观察后CPU执行指令后,各个寄存器及有 关存储单元内容的变化,从而指出和确定程序 出错的地方和产生错误的原因。单步中断是一 种调试程序的方法,用T命令也可实现。由设置在程序中的INT n指令产生( n 类型码 ,值0-255)。 PC机中,用不同类型码编成标准中断服务子 程序,用户可使用INT n调用。因此软件中断 相当于调用子程序。主要用于实现ROM BIOS中断、DOS中断调 用、用户自定义中断。软中断 内部中断(除法错中断、 溢出中断、 断点中断、 软件中断) NMI中断 INTR中断 单步中断8086中断源优先级顺序优先级 由高 至低对INTR中断,优先级IR7IR6IR5IR4IR3IR2IR1IR076543210最低级最高级对同时产生的中断:首先处理优先级别较 高的中断;若优先级 别相同,则按先来先 服务的原则处理;对非同时产生的中断 :允许低优先级别的中 断处理程序被高优先 级别的中断源所中断 中断嵌套。8.2.2 中断向量和中断向量表一、中断向量二、中断向量表一、中断向量 中断服务程序的入口地址。段地址和偏移地址每个每个中断处理程序中断处理程序都有一个都有一个唯一唯一的的中断向量中断向量。INT_PROC PROCPUSH USH AXIRET INT_PROC ENDP INC_PROCPUSH DX PUSH AX IRET中断服务程序入口地址 按中断类型码从小到大顺序依次存 放各类中断(256种)的中断向量 (中断服务程序入口地址)。 在内存的00000H003FFH地址 范围内
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号