第7章 中断和中断程序设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
②中断屏蔽
当产生中断请求后,用程序方式有选择地封锁部分中断, 而允许其余部分中断仍得到响应,称为中断屏蔽。 实现方法:是为每个中断源设置一个中断屏蔽触发器来屏 蔽该设备的中断请求。将该触发器置“1”,则对应的设备中 断被封锁,若将其置“0”,才允许该设备的中断请求得到响 应。由各设备的中断屏蔽触发器组成中断屏蔽寄存器。
重缓急进行排队并给予优先权。 对设备分配优先权时,必须考虑数据的传输率和服务程序的 要求.数据的有效时间短,则该设备的优先权高。
7.1 程序中断输人输出方式 (3) 禁止中断和中断屏蔽 ①禁止中断
产生中断源后,由于某种条件的存在,CPU不能中止现行 程序的执行,称为禁止中断。 在CPU内部设有一个“中断允许”触发器。只有该触发 器为“1”状态时,才允许处理机响应中断;“中断允许”触 发器通过“开中断”或“关中断”指令来置位、复位。进入 中断服务程序后自动“关中断”。
7.1 程序中断输人输出方式
(4) 多重中断处理
多重中断是指在处理某一个中断过程又发生了新的中断 请求,从而中断该服务程序的执行,又转去进行新的中断 处理。这种重叠处理中断的现象又称为中断嵌套。 一般情况下,在处理某级中的某个中断时,与它同级的 或比它低级的新中断请求应不能中断它的处理。而比它优 先级高的新中断请求却能中断它的处理。 当CPU正在执行某中断服务程序期间,若有更高优先级 的中断请求发生, CPU处于开中断状态时,CPU暂停对原中 断服务程序的执行,转去执行新的中断请求的服务程序, 处理完后再返回原中断服务程序的执行。
7.2 8259A可编程中断控制器
8259A中断控制器结构
数据总线缓冲器 读写控制电路 级联缓冲/比较器 中断请求寄存器(IRR) 中断服务寄存器(ISR) 中断屏蔽寄存器(IMR) 优先级判别器(PR) 中断控制逻辑
7.2 8259A可编程中断控制器
1)中断请求寄存器IRR :8位
三片8259A
级联图
8259A工作方式
1.优先权的管理方式
7.2 8259A可编程中断控制器
中断嵌套:指某一较高级的中断打断了另一个较低级中断服务
程序的运行,形成多重中断。
(1)全嵌套方式 在全嵌套方式下,8259A所管理的8级中断优先级固定不变,并
且只允许中断级别高的中断源去打断中断级别低的中断服务。
7.1.5
中断处理
7.1 程序中断输人输出方式
(3)判别中断源,转向中断服务程序。 在多个中断源同时请求中断的情况下,本次实际响应的 只能是优先权最高的那个中断源。并转入相应的中断服务程 序入口。 (4)开中断。 因为接下去就要执行中断服务程序,开中断将允许更 高级中断请求得到响应,实现中断嵌套。 (5)执行中断服务程序。 不同中断源的中断服务程序是不同的,实际有效的中断 处理工作是在此程序段中实现的。 (6)退出中断。 在退出时,又应进入不可中断状态,即关中断,恢复现 场、恢复断点,然后开中断,返回原程序执行。
7.2 8259A可编程中断控制器
4)优先级判别器PR 当输入端IR0-IR7中有多个中断请求信号同时产生时,根 据新进入的中断申请和ISR的内容,决定是否发中断申请信号。 –如果进入的中断申请比 ISR 中记录的中断优先级高, 则通过 8259A 的INT引脚向CPU发出中断请求信号; –如果进入的中断申请比 ISR 中记录的中断优先级低级 或同级,则不向 CPU 发中断请求信号。
在一道程序的运行中,由I/O中断系统切换到另外一道 程序运行。也可以通过分配每道程序一个固定时间片,利用 时钟定时发中断进行程序切换。 实现实时处理 实现应用程序和操作系统的联系 可以在用户程序中安排一条“Trap”指令进入操作系统, 称之为“软中断”。
7.1 程序中断输人输出方式 7.1.2. 中断的基本概念
第 7.2节
7.2 8259A可编程中断控制器
Intel 8259A基本功能
(1)用于管理和控制8086系统的外部中断请求; (2)实现可屏蔽中断的优先级判决;可以实现中断的 完全嵌套。 (3)向CPU提供中断类型号码; (4)可以屏蔽任一指定的中断源; (5)单片8259A芯片支持8级中断,而8259A芯片的级连 最多可以支持64级中断(一共使用9片8259A芯片)。
25
2.中断源的屏蔽方式
(1)普通屏蔽方式
7.2 8259A可编程中断控制器
指利用8259A内部的屏蔽寄存器IMR,它的每一位对应着 一个中断源的中断请求输入,程序设计时,通过设置OCW1 使IMR中的某一位或几位设置为“1”,即屏蔽该中断请求。 (2)特殊屏蔽方式
1. 中断:是由I/O设备或其他非预期的急需处理的事件引 起的,它使CPU暂时中断现在正在执行的程序,而转至另一 服务程序去处理这些事件,处理完后再返回原程序。 2.中断源:引起中断的事件称作中断源. 3.中断服务程序 对某事件的处理实际上就是去执行一段例行程序,该 程序被称为中断处理例行程序或中断服务程序. 4.中断系统:实现中断的硬件及软件称为中断系统。 5.中断优先权 当有多个中断源发出中断请求时,需要通过适当办法 (软件的、硬件的、软硬件结合的)决定CPU究竟首先处理哪 个中断请求。
地址 00000 00001 00002 00003 00004 4n 4n+2
内容 0#偏移量低8位 0#偏移量高8位 0#段基址低8位 0#段基址高8位 1#偏移量低8位 n#偏移量低8位 n#偏移量高8位 n#段基址低8位 n#段基址高8位
0#中断向量
n#中断向量
003FF
中断向量表
7.1 程序中断输人输出方式
(2)特殊全嵌套方式 特殊全嵌套方式与全嵌套方式基本相同,所不同的是,当CPU
处理某一级中断时,如果有同级中断请求,那么CPU也会做出响
应,从而形成了对同一级中断的特殊嵌套。
24
1.优先权的管理方式
7.2 8259A可编程中断控制器
固定优先级方式:指系统中的每一个中断源的优先级别是固定 不变的。并且中断级别高的中断输入能中断 优先级别低的中断。 (3)优先级普通循环方式 适用于系统中具有相同优先权中断设备的情况。当某 一个外部设备受到中断服务后,它的优先级别自动降为最 低,而原来比其低一级的设备自动变为最高级别。 (4)优先级特殊循环方式 指系统初始中断最低优先级由编码确定,而其它优先 级则随之依次确定。即初始化的优先级是由程序控制的, 而不是默认的IR0(最高)~IR7(最低)。
7.1
程序中断输人输出方式
7.1.2. 中断的基本概念
6.中断向量 每种中断都有一个与之对应的中断服务程序。中断向量就 是中断处理子程序的入口地址。 每个中断向量占用4个字节,其中低两个字节为中断向量的 偏移量部分,高两个字节为中断向量的段基址部分。 7.中断类型号 80x86系统共支持256种中断,相应编号为0-255之间唯一 的编号,把这些编号称为中断类型号。 8.中断向量表 按中断类型号从小到大的顺序,将中断向量存放在内存 的最低端。
中断处理过程可分以下几个步骤: (1)关中断 进入不可再次响应中断的状态,由硬件自动实现。因为 接下去要保存断点,保存现场。在保存现场过程中,即使有 更高级的中断源申请中断,CPU也不应该响应;否则,如果 现场保存不完整,在中断服务程序结束之后,也就不能正确 地恢复现场并继续执行现行程序。 (2)保存断点和现场。 为了在中断处理结束后能正确地返回到中断点,在响应 中断时,必须将断点(CS:IP)保存起来。 现场信息一般指的是标志寄存器,中断屏蔽寄存器和CPU 中各寄存器的内容。
中断请求寄存器接受外设来的中断请求(IR0~IR7),每 一位表示一个外部设备的中断请求。 若 IR0-IR7 引脚上有中断申请,则将相应位置1。。 2)中断屏蔽寄存器IMR :8位 决定中断请求寄存器(IRR)中的中断申请是否进入优先 级判决电路。 IMR对应位为0,允许中断申请进入优先级判决电路; IMR对应位为1,则不允许进入,即中断申请被IMR屏蔽。 3)中断服务寄存器ISR:8位 记录CPU正在响应的中断。 ISR中的某位为1,表示CPU正在响应此级中断, ISR中的某位为0,表示CPU没有或已响应完此级中断。
7.1.3.有关中断的产生和响应的概念 (1)中断源
中断源的种类大致分3类: 外中断:来自处理机外部设备的中断; 内中断:处理器硬件故障或程序“出错”引起的中断。 软中断:由指令产生的,这是在程序中预先安排好的。而前 面两种中断则是随机发生的。 (2) 中断的分级与中断优先权
优先权:有多个中断同时发生时,各个中断响应的优先次序。 在设计中断系统时,要把全部中断源按中断性质和处理的轻
5)数据总线缓冲器
8位的双向三态缓冲器,用作8259A与系统总线的接口,传 送命令控制字、状态字和中断向量。
7.2 8259A可编程中断控制器
6)读/写控制逻辑 将决定数据的传送方向。RD为读命令,而WR为写命令。 CS为8259A芯片的选择信号,A0与8259A中被选的寄存器地 址有关。
8259A单元的不同工作方式是通过编程来进行选择的。 CPU送出一系列的初始化控制字和操作控制字来执行选定 的操作。CPU将8259A当作两个I/O端口或两个存储单元来 寻址,由A0端确定这些控制字存入读/写逻辑中哪个控制 字寄存器。
第 章 中断和中断控制
7.1 中断系统 7.1.1 中断的基本概念 7.1.2 中断的类型 7.1.3 中断请求的提出和传送 7.1.4 中断优先级 7.1.5 中断响应 7.1.6 中断处理 7.2 8086的中断系统 7.2.1 外部中断 7.2.2 内部中断 7.2.3 中断向量表 7.2.4 中断过程 7.3 8259A中断控制器 7.3.1 Intel 8259A的编程结构与性能 7.3.2 Intel8259A的工作原理 7.3.3 Intel8259A的工作方式 7.3.4 Intel 8259A的初始化命令 7.3.5 Intel8259A应用 7.3.6 多片Intel8259A组成的主从式 中断系统
7.2 8259A可编程中断控制器
中断级联
每个8259A最多能控制8个外部中断信号,但可将多个 8259A级联以处理多达64个中断请求。它允许有一个主片和 多个(不超过8个)从片,称为主从系统。 主从片的级联是通过以下方式实现的: ①联接主从片的级联总线CAS0,CAS1和CAS2:将所有片 的CAS0、CASl和CAS2各自联接在一起。主片的CAS为输出, 从片的CAS为输入。 ②将从片的中断请求INT连到主片的一个IR端,并在从 单元中记录下这个IR端的序号。
7.1.4.中断处理
↓ 关 中 断 ↓ 保存断点,保存现场 ↓ 判别中断条件 转入中断服务程序 ↓ 开 中 断 ↓ 执行中断服务程序 ↓ 关 中 断 ↓
7.1 程序中断输人输出方式
↓ 恢复现场,恢复断点 ↓ 开 中 断 ↓ 返回断点
中断处理过程
7.1.4.中断处理
1.中断处理过程
7.1 程序中断输人输出方式
7
教学要求
掌握中断和中断系统的基本概念; 掌握8259A中断控制器初始化命令的定义 方法和编程方法; 熟悉关于8259A中断控制器编程定义的有 关概念和方法; 掌握8259A中断控制器级联方法和相关编 程
第 7.1节
7.1
程序中断输人输出方式
7.1.1.中断的作用
CPU与I/O设备并行工作 硬件故障处理 实现人机联系 实现多道程序和分时操作
19
7.2 8259A可编程中断控制器Байду номын сангаас
中断类型码
在8259A中,为每一个外设的中断请求(IR0~IR7) 设置一个中断类型码(8位),当其中一个外设的中断请 求被CPU响应后,8259A送出与该中断所对应的中断类型码, 作为寻找中断服务程序入口的依据。 中断类型码(8位)由两部分组成,其高5位是由计算 机初始化程序设置的,保存在8259A中以后不再改变;低3 位由被响应的中断请求序号提供。 [例如] IR3的中断请求被响应,中断类型码的低3位即为011。 在同一个8259A中,高5位为8个中断请求共用。假设与IR0 对应的中断类型码为40H,那么与IR1~IR7对应的中断类 型码为41H~47H。