微机原理第九章课件

上传人:F****n 文档编号:88149795 上传时间:2019-04-20 格式:PPT 页数:63 大小:2.91MB
返回 下载 相关 举报
微机原理第九章课件_第1页
第1页 / 共63页
微机原理第九章课件_第2页
第2页 / 共63页
微机原理第九章课件_第3页
第3页 / 共63页
微机原理第九章课件_第4页
第4页 / 共63页
微机原理第九章课件_第5页
第5页 / 共63页
点击查看更多>>
资源描述

《微机原理第九章课件》由会员分享,可在线阅读,更多相关《微机原理第九章课件(63页珍藏版)》请在金锄头文库上搜索。

1、4.4.3 中断操作,1956年,美国IBM公司在IBM 7049机上首先使用了中断处理技术,并开始使用“中断”(interrupt)这一术语。 计算机在程序执行过程中,当出现硬件或软件请求时,处理器暂时停止正在执行的程序,转去对请求进行处理,处理完后,回到程序断点位置继续执行。 8086/8088是16位微处理器,中断系统可以处理256种不同类型的中断。,4.4.3 中断操作,4.4.3 中断操作,中断请求的发生时间是随机的,因此在执行程序的过程中中断程序的插入也是随机的。这是子程序和中断处理程序的重要区别。,4.4.3 中断操作,采用中断技术的原因,当CPU和外设进行数据传送时,必须测试并

2、确认外设处于准备好的状态才能够进行数据传送。 在早期的计算机中,CPU和外设处于串行工作状态,快速的CPU和慢速的外设在传递数据的速度上存在很大矛盾,大大降低了CPU的工作效率。 引入中断技术以后,可以使CPU和外设在大部分时间里并行工作。,中断最初是为了提高处理器的使用效率和提高计算机的工作速度而引进的。中断技术可用于:保证外设和CPU同步、实时处理、故障处理等。,4.4.3 中断操作,1. 8086/8088的中断分类 硬件中断:通过外部的硬件( I/O设备等)产生的,也叫外部中断。 非屏蔽中断:通过CPU的NMI引脚进入,不受IF的屏蔽。整个系统中只能有一个非屏蔽中断。 可屏蔽中断:通过

3、CPU的INTR引脚进入,当IF为1时中断才能进入。整个系统中可以有多个非屏蔽中断。 软件中断:程序中断指令,TF设定,指令运行出错等。 这256种中断对应着类型码0-255。,4.4.3 中断操作,图4-19 8086/8088的中断分类,4.4.3 中断操作,中断标志 1、中断允许标志 在CPU的标志寄存器中的IF标志。表示是否可以响应外设的中断请求。“1”来表示允许。 在8086/8088系统中可以用CLI和STI指令来设置IF,禁止或允许来自INTR可屏蔽中断请求引脚的中断申请。 2、中断请求标志 对应每个外设有一位,用来纪录外设的中断请求状态。有请求时置1,中断处理完后清0。 在80

4、86中,用8259A来管理外设的中断请求,而在8051系列的单片机中,该标志在CPU内部。,4.4.3 中断操作,中断屏蔽:选择性的将某些中断源的请求忽略,即不响应该中断请求。 有些硬件中断源的请求可以根据IF标志决定是否响应,而有些硬件中断源的请求需要一定被响应。在8086/8088系统中,INTR是可屏蔽中断请求引脚;NMI是不可屏蔽的中断请求引脚。 在PC机系统中,通过8259A管理的外设中断源连在CPU的INTR引脚上。在8259A内部有8位的中断申请寄存器和8位的中断屏蔽寄存器,可以对应于8个外设的中断申请和中断屏蔽。,4.4.3 中断操作,中断优先级:当系统具有多个中断源时,有可能

5、同时发出请求,由CPU按照重要性和急迫性(中断优先级别)择优响应。 一般的处理原则: 1、不同优先级同时请求,按优先级别处理。 2、低优先级中断正在处理,出现高优先级请求,转去处理高优先级请求。 3、高优先级中断正在处理,出现低优先级请求,暂不响应。 4、中断处理时,出现同级别请求,当前中断处理完以后再处理新的请求。,4.4.3 中断操作,中断嵌套:在CPU的处理外部中断的时候,如果有更高优先级的中断请求,再转去处理高优先级的中断。这种低级中断中套着高级中断称为中断嵌套。 断点:CPU在每条指令执行的最后一个时钟周期检测中断请求,如果响应中断的话,转去执行中断处理程序,程序被中断的地方称为“断

6、点”。具体地址是响应中断时,主程序中当前指令下面的一条指令的地址,包括CS和IP的值。断点在中断前要入栈保护。,4.4.3 中断操作,2. 中断向量 中断向量是中断处理子程序的入口地址,每个中断类型对应一个中断向量。8086中,把内存第0段的000003FF区域设置为一个中断向量表。每个中断向量占4个存储单元。前两个单元存放中断子程序入口地址的偏移量IP,后两个单元存放段基址CS,低位在前,高位在后。,图4-20 8086/8088中断向量表,4.4.3 中断操作,例:类型号为03H的中断处理子程序放在2345:7890H开始的内存区域中,而03H中断对应的中断向量存放在0000:000CH处

7、,所以,0段000CH、000DH、000EH、000FH这4个单元中的值分别为90H、78H、45H、23H。,4.4.3 中断操作,3. 硬件中断 8086/8088为外部设备提供了NMI和INTR引脚来送入中断请求信号。 NMI:不受IF的影响。中断优先级非常高。一般用来处理重大故障。 掉电故障:电源系统通过NMI发出非屏蔽中断请求,CPU马上停止当前任务,立即转到非屏蔽中断处理程序,保护现场,启动备用电源。 INTR:当IF为1时,执行完当前指令后响应中断请求,IF的设置和清除可以通过指令和调试工具来完成。,4.4.3 中断操作,4. 可屏蔽中断的响应过程 当CPU在INTR引脚上接收

8、到一个高电平的中断请求信号,并且当IF=1时,CPU执行完当前指令之后,响应外部中断请求,往INTA引脚上发两个负脉冲,外设接到第二个负脉冲之后,立即通过数据线给CPU送中断类型码。,4.4.3 中断操作,CPU中断响应流程: 1. 从数据总线读取中断类型 码,存入内部暂存器。 2. 将标志寄存器压栈。 3. IF和TF清零。避免被其他中断请求打断,避免单步方式执行中断处理子程序。 4. 将断点压栈。 5. 根据中断类型码查中断向量表,根据找到的中断向量载入CS和IP,转入相应的中断处理子程序。,4.4.3 中断操作,4.4.3 中断操作,5. 中断处理子程序的结构模式 中断处理子程序的开始必

9、须通过一系列推入堆栈指令来进一步保护中断时的现场,即保护CPU各寄存器的值。 (2) 设置中断允许标志IF来开放中断,以允许级别较高的中断请求进入。(STI) (3) 中断处理的具体内容是中断处理子程序的主要部分。 (4) 中断处理子程序的尾部则是一系列弹出堆栈指令,使得各寄存器恢复进入中断处理时的值。(恢复现场) (5) 最后是中断返回指令IRET,中断返回指令的执行会使堆栈中保存的断点值和标志值分别装入IP,CS和标志寄存器。,中断处理子程序在位置上也必须是固定装配的,而不是浮动的。装配的起始地址由中断向量表给出。,4.4.3 中断操作,6. 软件中断:利用一条指令来使CPU进入中断处理程

10、序。 不需要执行中断响应总线周期,不需要读取中断类型码,不受IF影响。若TF=1,则执行单步中断。 若有非屏蔽中断请求、可屏蔽中断请求(当IF=1时),则在当前指令执行完毕之后响应。,9.1 可编程中断控制器8259A,可用于管理Intel 8080/8085、8086/8088、80286/80386的可屏蔽中断。 8259A的基本功能: 一片8259A可以管理8级中断,可扩展至64级 每一级中断都可单独被允许响应或被屏蔽 在中断响应周期,可提供相应的中断向量号 8259A设计有多种工作方式,可通过编程选择,9.1.1 8259A芯片内部结构,图9-1 8259A内部结构流程图,9.1.1

11、8259A芯片内部结构,图9-2 8259A芯片引脚信号,9.1.1 8259A芯片内部结构,1. 数据总线缓冲器 双向三态8位缓冲器,构成8259A和CPU之间的数据接口。 2. 读/写控制电路 接收来自CPU的读/写控制命令和片选控制信息。用末尾地址A0来选择端口,往8259A写控制字,读8259A内部寄存器的内容。 3. 级联缓冲/比较器 一片8259A可接收8级中断,从IR0IR7输入,中断超过8级时,允许多片8259A级联使用,构成主从关系。 非缓冲状态:SP=1:主8259A ; SP=0:从8259A 。 缓冲状态:EN=1:CPU写8259A;EN=0:允许8259A通过缓冲存

12、储器输出。,9.1.1 8259A芯片内部结构,4. 中断请求寄存器 IRR 8位寄存器,保存由外部输入的8条中断请求信号IR0IR7。某一个IRi为1表示IRi引脚有中断请求;为0表示无请求。 5. 中断服务寄存器 ISR 8位寄存器,记录正在处理中的中断请求。某一位为1表示中断正在服务中;为0表示没有被服务。 6. 中断屏蔽寄存器 IMR 8位寄存器,保存对各级中断请求的屏蔽信息。某一位为1表示相应级中断被屏蔽(禁止);为0表示允许。 7. 优先权判别器 PR 识别各个中断请求信号的优先级别,找出最高优先级别的中断请求,系统优先响应。,9.1.2 8259A芯片的工作方式,8259A工作示

13、意图,9.1.2 8259A芯片的工作方式,8259A有两种中断触发方式: 边沿触发方式 8259A将中断请求输入端出现的上升沿作为中断请求信号 电平触发方式 中断请求端出现的高电平是有效的中断请求信号 在第1个INTA结束前,IRi必须保持高电平,9.1.2 8259A芯片的工作方式,图9-3 中断类型码形成,在中断响应周期的第2个INTA信号有效期间,8259A应该将当前被响应的中断的中断类型码n通过数据总线D7D0传送给CPU。,一片8259A引入的8级中断请求的中断类型码肯定是连续的。中断类型码由软件定义的D7D3决定。当D7D3=10001时,8级中断的类型码为88H8FH。,9.1

14、.2 8259A芯片的工作方式,中断优先权管理是中断管理的核心问题,8259A可以采用优先权级别固定分配和循环设置两种方式。 各中断源的优先级确定之后,一般的处理原则只允许高级中断打断低级中断,禁止低级打断高级和同级中断相互打断。 中断优先权管理方式: 1. 完全嵌套方式 2. 自动循环方式 3. 中断屏蔽方式,9.1.2 8259A芯片的工作方式,1. 完全嵌套方式(默认方式) 8259A的中断优先权顺序固定不变,从高到低依次为IR0、IR1、IR2、IR7 中断请求后,8259A对当前请求中断中优先权最高的中断IRi予以响应,将其向量号送上数据总线,对应ISR的Di位置位,直到中断结束(I

15、SR的Di位复位) 在ISR的Di位置位期间,禁止再发生同级和低级优先权的中断,但允许高级优先权中断的嵌套 要求CPU每响应一次中断进入中断服务程序后,应该安排开中断指令(STI)将IF置1,否则其他高级中断无法进入。处理完,CPU应向8259A回送结束命令(EOI),将ISR相应位清零,标志着一级中断处理过程完全结束。,9.1.2 8259A芯片的工作方式,图9-4 8259A中断控制器8级中断嵌套过程,9.1.2 8259A芯片的工作方式,在完全嵌套方式下,可采用以下3种中断结束方式: 普通EOI方式 当任何一级中断服务程序结束时,只给8259A发送一个EOI命令时,8259A收到后,自动

16、将ISR寄存器中级别最高的置1位清零。 特殊EOI方式 不但发送EOI,还发送当前结束的中断级别,即指出了要清除哪个ISR位。 自动EOI方式 自动将ISR寄存器相应位清零,不用发送任何消息,简单。,9.1.2 8259A芯片的工作方式,2. 自动循环方式 优先级动态排序 某中断请求IRi被处理后,其优先级别自动降为最低,原来比它低一级的中断上升为最高级,IR7,IR6,IR5,IR4,IR3,IR2,IR1,IR0,7,6,5,4,3,2,1,0,2,1,0,7,6,5,4,3,最低级,最高级,最高级,最低级,ISR内容,IR7,IR6,IR5,IR4,IR3,IR2,IR1,IR0,IR4的服务结束以前,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,IR4的服务结束以后,ISRi,9.1.2 8259A芯片的工作方式,实现自动循环方式,可采用以下3种EOI循环方式: 普通EOI循环方式 当任何一级中断服务程序结束时,只给8259A发送EOI命令,8259A收到后,自动将ISR寄存器中级别最高的置1位清零,并赋予最低优先级

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号