微机原理第九章

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

4.4.3 中断操作
1. 8086/8088的中断分类

硬件中断:通过外部的硬件( I/O设备等)产生的,也叫外 部中断。

非屏蔽中断:通过CPU的NMI引脚进入,不受IF的屏蔽。整个系统 中只能有一个非屏蔽中断。 可屏蔽中断:通过CPU的INTR引脚进入,当IF为1时中断才能进入。 整个系统中可以有多个非屏蔽中断。
一般的处理原则: 1、不同优先级同时请求,按优先级别处理。 2、低优先级中断正在处理,出现高优先级请求,转去处理高 优先级请求。
3、高优先级中断正在处理,出现低优先级请求,暂不响应。
4、中断处理时,出现同级别请求,当前中断处理完以后再处 理新的请求。
4.4.3 中断操作
中断嵌套:在CPU的处理外部中断的时候,如果有更高优先 级的中断请求,再转去处理高优先级的中断。这种低级中断 中套着高级中断称为中断嵌套。 断点:CPU在每条指令执行的最后一个时钟周期检测中断请 求,如果响应中断的话,转去执行中断处理程序,程序被中 断的地方称为“断点”。具体地址是响应中断时,主程序中 当前指令下面的一条指令的地址,包括CS和IP的值。断点在
若有非屏蔽中断请求、可屏蔽中断请求(当IF=1时), 则在当前指令执行完毕之后响应。
9.1 可编程中断控制器8259A
可用于管理Intel 8080/8085、8086/8088、80286/80386的 可屏蔽中断。 8259A的基本功能:

一片8259A可以管理8级中断,可扩展至64级 每一级中断都可单独被允许响应或被屏蔽 在中断响应周期,可提供相应的中断向量号

4.4.3 中断操作
4. 可屏蔽中断的响应过程 当CPU在INTR引脚上接收到一个高电平的中断请求信号,
并且当IF=1时,CPU执行完当前指令之后,响应外部中断请求,
往INTA引脚上发两个负脉冲,外设接到第二个负脉冲之后, 立即通过数据线给CPU送中断类型码。
4.4.3 中断操作
CPU中断响应流程:
7. 优先权判别器 PR 识别各个中断请求信号的优先级别,找出最高优先级别的 中断请求,系统优先响应。
9.1.2 8259A芯片的工作方式
8259A工作示意图
9.1.2 8259A芯片的工作方式
8259A有两种中断触发方式: 边沿触发方式 8259A将中断请求输入端出现的 上升沿作为中断请求信号 电平触发方式 中断请求端出现的高电平是有效 的中断请求信号 在第1个INTA结束前,IRi必须 保持高电平
一片8259A可接收8级中断,从IR0~IR7输入,中断超过8 级时,允许多片8259A级联使用,构成主从关系。 非缓冲状态:SP=1:主8259A ; SP=0:从8259A 。 缓冲状态:EN=1:CPU写8259A;EN=0:允许8259A通过缓 冲存储器输出。
9.1.1 8259A芯片内部结构
8259A设计有多种工作方式,可通过编程选择
9.1.1 8259A芯片内部结构
图9-1 8259A内部结构流程图
9.1.1 8259A芯片内部结构
图9-2 8259A芯片引脚信号
9.1.1 8259A芯片内部结构
1. 数据总线缓冲器
双向三态8位缓冲器,构成8259A和CPU之间的数据接口。
2. 读/写控制电路 接收来自CPU的读/写控制命令和片选控制信息。用末尾 地址A0来选择端口,往8259A写控制字,读8259A内部寄存器 的内容。 3. 级联缓冲/比较器
1. 从数据总线读取中断类型 码, 存入内部暂存器。
2. 将标志寄存器压栈。
3. IF和TF清零。避免被其他中 断请求打断,避免单步方式 执行中断处理子程序。 4. 将断点压栈。
5. 根据中断类型码查中断向量 表,根据找到的中断向量载 入CS和IP,转入相应的中断 处理子程序。
4.4.3 中断操作
图4-20 8086/8088中断向量表
4.4.3 中断操作
例:类型号为03H的中断处理子程序放在2345:7890H开始的 内存区域中,而03H中断对应的中断向量存放在0000:000CH 处,所以,0段000CH、000DH、000EH、000FH这4个单元中 的值分别为90H、78H、45H、23H。
9.1.2 8259A芯片的工作方式
1. 完全嵌套方式(默认方式) 8259A的中断优先权顺序固定不变,从高到低依次为IR0、 IR1、IR2、……IR7 中断请求后,8259A对当前请求中断中优先权最高的中断IRi 予以响应,将其向量号送上数据总线,对应ISR的Di位置位, 直到中断结束(ISR的Di位复位) 在ISR的Di位置位期间,禁止再发生同级和低级优先权的中 断,但允许高级优先权中断的嵌套
2、中断请求标志 对应每个外设有一位,用来纪录外设的中断请求状态。 有请求时置1,中断处理完后清0。 在8086中,用8259A来管理外设的中断请求,而在8051 系列的单片机中,该标志在CPU内部。
4.4.3 中断操作
中断屏蔽:选择性的将某些中断源的请求忽略,即不响应该中 断请求。
有些硬件中断源的请求可以根据IF标志决定是否响应,而 有些硬件中断源的请求需要一定被响应。在8086/8088系统中, INTR是可屏蔽中断请求引脚;NMI是不可屏蔽的中断请求引 脚。
4.4.3 中断操作
1956年,美国IBM公司在IBM 7049机上首先使用了中断 处理技术,并开始使用“中断”(interrupt)这一术语。 计算机在程序执行过程中,当出现硬件或软件请求时, 处理器暂时停止正在执行的程序,转去对请求进行处理,处 理完后,回到程序断点位置继续执行。 8086/8088是16位微处理器,中断系统可以处理256种不 同类型的中断。


软件中断:程序中断指令,TF设定,指令运行出错等。
这256种中断对应着类型码0-255。
4.4.3 中断操作
图4-19 8086/8088的中断分类
4.4.3 中断操作
中断标志
1、中断允许标志
在CPU的标志寄存器中的IF标志。表示是否可以响应外 设的中断请求。“1”来表示允许。 在8086/8088系统中可以用CLI和STI指令来设置IF,禁 止或允许来自INTR可屏蔽中断请求引脚的中断申请。
9.1.2 8259A芯片的工作方式
中断优先权管理是中断管理的核心问题,8259A可以采用 优先权级别固定分配和循环设置两种方式。
各中断源的优先级确定之后,一般的处理原则只允许高级 中断打断低级中断,禁止低级打断高级和同级中断相互打断。 中断优先权管理方式:
1. 完全嵌套方式 2. 自动循环方式 3. 中断屏蔽方式
4.4.3 中断操作
5. 中断处理子程序的结构模式 (1) 中断处理子程序的开始必须通过一系列推入堆栈指令来进 一步保护中断时的现场,即保护CPU各寄存器的值。 (2) 设置中断允许标志IF来开放中断,以允许级别较高的中断 请求进入。(STI) (3) 中断处理的具体内容是中断处理子程序的主要部分。 (4) 中断处理子程序的尾部则是一系列弹出堆栈指令,使得各 寄存器恢复进入中断处理时的值。(恢复现场)
9.1.2 8259A芯片的工作方式
2. 自动循环方式

优先级动态排序
某中断请求IRi被处理后,其优先级别自动降为最低,原 来比它低一级的中断上升为最高级
IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0 ISRi 0 7 1 6 0 5 1 4 0 3 0 2
3. 硬件中断 8086/8088为外部设备提供了NMI和INTR引脚来送入中断 请求信号。 NMI:不受IF的影响。中断优先级非常高。一般用来处理重 大故障。
掉电故障:电源系统通过NMI发出非屏蔽中断请求,
CPU马上停止当前任务,立即转到非屏蔽中断处理程序, 保护现场,启动备用电源。 INTR:当IF为1时,执行完当前指令后响应中断请求,IF的 设置和清除可以通过指令和调试工具来完成。
9.1.2 8259A芯片的工作方式
在完全嵌套方式下,可采用以下3种中断结束方式:



普通EOI方式 当任何一级中断服务程序结束时,只给8259A发送一个 EOI命令时,8259A收到后,自动将ISR寄存器中级别最 高的置1位清零。 特殊EOI方式 不但发送EOI,还发送当前结束的中断级别,即指出了 要清除哪个ISR位。 自动EOI方式 自动将ISR寄存器相应位清零,不用发送任何消息,简单。
要求CPU每响应一次中断进入中断服务程序后,应该安排 开中断指令(STI)将IF置1,否则其他高级中断无法进入。 处理完,CPU应向8259A回送结束命令(EOI),将ISR相 应位清零,标志着一级中断处理过程完全结束。
9.1.2 8259A芯片的工作方式
图9-4 8259A中断控制器8级中断嵌套过程
在PC机系统中,通过8259A管理的外设中断源连在CPU的 INTR引脚上。在8259A内部有8位的中断申请寄存器和8位的 中断屏蔽寄存器,可以对应于8个外设的中断申请和中断屏蔽。
4.4.3 中断操作
中断优先级:当系统具有多个中断源时,有可能同时发出请求, 由CPU按照重要性和急迫性(中断优先级别)择优响应。
4.4.3 中断操作
主程序 中断服务程序 有中断请求
断点 继续执行 对外设 进行处理 返回断点
中断请求的发生时间是随机的,因此在执行程序的过程 中中断程序的插入也是随机的。这是子程序和中断处理程序 的重要区别。
4.4.3 中断操作
采用中断技术的原因
1.
当CPU和外设进行数据传送时,必须测试并确认外设处于 准备好的状态才能够进行数据传送。
在早期的计算机中,CPU和外设处于串行工作状态,快速 的CPU和慢速的外设在传递数据的速度上存在很大矛盾, 大大降低了CPU的工作效率。 引入中断技术以后,可以使CPU和外设在大部分时间里并 行工作。
2.
3.
中断最初是为了提高处理器的使用效率和提高计算机的工 作速度而引进的。中断技术可用于:保证外设和CPU同步、实 时处理、故障处理等。
4. 中断请求寄存器 IRR 8位寄存器,保存由外部输入的8条中断请求信号IR0~IR7。 某一个IRi为1表示IRi引脚有中断请求;为0表示无请求。 5. 中断服务寄存器 ISR
8位寄存器,记录正在处理中的中断请求。某一位为1表示 中断正在服务中;为0表示没有被服务。
6. 中断屏蔽寄存器 IMR
8位寄存器,保存对各级中断请求的屏蔽信息。某一位为1 表示相应级中断被屏蔽(禁止);为0表示允许。
9.1.2 8259A芯片的工作方式
在中断响应周期的第2个INTA信号有效期间,8259A应该 将当前被响应的中断的中断类型码n通过数据总线D7~D0传送 给CPU。 一片8259A引入的8
级中断请求的中断类型码
肯定是连续的。中断类型 码由软件定义的D7~D3决
定。当D7~D3=10001时,
8级中断的类型码为 88H~8FH。 图9-3 中断类型码形成
中断前要入栈保护。
4.4.3 中断操作
2. 中断向量 中断向量是中断 处理子程序的入口地 址,每个中断类型对 应一个中断向量。 8086中,把内存第0 段的0000—03FF区 域设置为一个中断向 量表。每个中断向量 占4个存储单元。前 两个单元存放中断子 程序入口地址的偏移 量IP,后两个单元存 放段基址CS,低位 在前,高位在后。
(5) 最后是中断返回指令IRET,中断返回指令的执行会使堆栈 中保存的断点值和标志值分别装入IP,CS和标志寄存器。
中断处理子程序在位置上也必须是固定装配的,而不是 浮动的。装配的起始地址由中断向量表给出。
4.4.3 中断操作
6. 软件中断:利用一条指令来使CPU进入中断处理程序。 不需要执行中断响应总线周期,不需要读取中断类型码, 不受IF影响。若TF=1,则执行单步中断。
4.4.3 中断操作
处理文档 电话铃响 暂停文档 文档中作暂停记号 电话交谈 找出暂停记号位置 继续处理文档 执行主程序(日常事务程序) 中断申请信号有效(中断请求) 暂停执行主程序响应中断 当前PC及寄存器入栈(保护现场) 处理外设要求(中断服务) 寄存器及PC出栈(恢复现场及中断返回) 继续执行主程序
相关文档
最新文档