第7章 中断系统
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中断响应过程与时序
1.硬件中断的响应过程 硬件中断是指由NMI引脚进入的非屏蔽中断或由 INTR引脚进入的可屏蔽中断。下面以可屏蔽中断为 例。 CPU在INTR引脚上接到一个中断请求信号,如果此 时IF=1,CPU 就会在当前指令执行完以后开始响应 外部的中断请求,这时,CPU在INTA引脚连续发两 个负脉冲,外设在接到第二个负脉冲以后,在数据 线上发送中断类型码,接到这个中断类型码后, CPU做如下动作:
8086/8088中断系统
(2)可屏蔽中断 可屏蔽中断INTR 信号连到CPU 的INTR 引脚,它 受CPU 中断允许标志位IF 的控制,即IF=1 时, CPU 才能响应INTR 引脚上的中断请求。当可屏蔽 中断被响应时,CPU需执行7 个总线周期,即: ①执行第一个INTA 总线周期,通知外部中断系统 做好准备; ②执行第二个INTA 总线周期,从外部中断系统获 取中断类型号,并乘以4,形成中断向量地址;
中断优先权
8086/8088中断系统
0X86有一个简单而灵活的中断系统,可处理
256 种不同的中断请求。 中断分为两大类,即外部中断(硬件中断) 和内部中断(软件中断)
8086/8088中断系统
8086/8088中断系统
1.硬件中断 硬件中断即通过外部的硬件产生的中断,如打印机、 键盘等,有时也称为外部中断。硬件中断又可分为 两类:非屏蔽中断和可屏蔽中断。 (1)非屏蔽中断 非屏蔽中断NMI 信号连到CPU 的NMI 引脚,它不 受CPU 中断允许标志位IF 的控制。一旦发生,立 即转至中断类型号为2 的中断处理服务程序。NMI 的优先级高于INTR。当CPU 采样到NMI 有请求时, 在内部将其锁存,并自动提供中断类型号2,然后 按以下顺序处理:
第七章 中断系统
中断的基本概念
中断传送方式:即当CPU
进行主程序操作时, 外设的数据已存入输入端口的数据寄存器; 或端口的数据输出寄存器已空,由外设通过 接口电路向CPU 发出中断请求信号,CPU 在满足一定的条件下,暂停执行当前正在执 行的主程序,转入执行相应能够进行输入/输 出操作的子程序,待输入/输出操作执行完毕 之后CPU 即返回继续执行原来被中断的主程 序
中断源同时提出中断请求时,中断系统能根 据各中断源的性质分清轻重缓急,给出处理 的先后顺序,确保优先级别较高的中断请求 先处理
(3)能实现中断嵌套。若在中断处理过程中又
有新的优先级较高的中断源提出请求,中断 系统要能使CPU 暂停当前中断服务程序的执 行,转去响应和处理优先级较高的中断请求, 处理完后再返回原优先级较低的中断服务程 序中
中断优先权
3.专用硬件方式 采用可编程的中断控制器芯片,如Intel 8259A。 中断控制器使得CPU的INTR和INTA引脚不再与接口直接相 连,而是与中断控制器相连,外设的中断请求信号通过 IR0~IR7 进入中断控制器,经优先级管理逻辑确认为级别 最高的那个请求的类型号后会经过中断类型寄存器在当前中 断服务寄存器的某位上置1,并向CPU 发INTR 请求。CPU 发出INTA 信号后,中断控制器将中断类型码送出。在整个 过程中,优先级较低的中断请求都受到阻塞,直到较高级的 中断服务完毕之后,当前服务寄存器的对应位清0,较低级 的中断请求才有可能被响应
3.中断响应 CPU 收到中断请求后,首先判断能否接受。若能接 受,则响应该中断请求。通常中断响应的操作过程 应包括:保留断点地址、关闭中断允许、转入中断服 务程序。8086 微处理器有两个引脚接收中断请求信 号,一个是非屏蔽中断(NMI),另一个是可屏蔽 中断(INTR)。NMI 引脚一旦接收到请求,CPU 立即予以响应;INTR 引脚接收到的请求,受标志 寄存器的IF 标志位控制,当IF=1,CPU 允许中断; 而当IF=0,CPU禁止中断
中断向量和中断向量表
图7-7 给出了中断 类型码与中断向量 所在位置之间的对 应关系。其中 00H~04H 为专用 中断,05H~3FH 为系统保留中断, 用户一般是不能对 它们定义的(这里 面有一些为固定的 用途。
中断向量和中断向量表
08H~0FH 为硬件中断;10H~1FH 为BIOS 调用; 20H~3FH 为DOS调用,如INT 21H 即为MS-DOS 的系统调用),40~FF 为用户定义的中断。中断 类型号×4 即可计算某个中断类型的中断向量在整 个中断向量表中的位置。如类型号为20H,则中断 向量的存放位置为20H×4=80H,(设中断服务子 程序的入口地址为4030:2010,则在0000: 0080H~0000:0083H 中就应顺序放入10H,20H, 30H,40H。当系统响应20H 号中断时,会自动查 找中断向量表,找出对应的中断向量装入CS,IP, 即转入该中断服务子程序
中断方式下接口电路
数据输入的过程:当外设发STB→数据入锁
存器,中断请求触发器置1→若没有屏蔽则产 生INTR→CPU满足条件(允许中断;指令执 行完)发INTA →(进入中断服务子程序)读 数据,发RD ,和地址→清中断请求触发器, 数据送D0~D7。
中断优先权
中断优先权管理有两层含义:
(2)执行中断服务程序 这是中断处理的核心部分,完成中断源要求完成的 任务。 (3)恢复现场 将中断服务程序执行前保护的信息从堆栈中弹出恢 复到原寄存器。 5.中断返回 执行中断返回指令,返回到原程序断点处继续运行
中断方式下接口电路
中断方式增加中断功能接口电路,用来产生中断请求信号
8086/8088中断系统
①将中断类型号乘以4,得到中断向量地址0008H; ②将标志寄存器内容压入堆栈保护; ③清IF 和TF 标志,屏蔽INTR 中断和单步中断; ④保存断点,即把断点处的IP 和CS 内容压栈; ⑤从中断向量表中取中断服务程序的入口地址,分 别送至CS 和IP; ⑥转入相应中断服务程序并执行; ⑦恢复断点及标志寄存器内容,中断返回。 IBMPC/XT 系统中,NMI 主要用于解决系统主板上 RAM 出现的奇偶错,或I/O 通道中扩展选件板上出 现的奇偶校验错等
中断的基本概念
中断是指CPU
中止正在执行的程序,转去执 行请求CPU 为之服务的内、外部事件的服务 程序,待该服务程序执行完后,又返回到被 中止的程序中继续运行的过程 中断源是指引起CPU中断的事件
中断的基本概念
中断源有:
(1)外部设备的请求,如CRT
终端、键盘、打
印机等; (2)由硬件故障引起的,如电源掉电,硬件损 坏等; (3)实时时钟,如定时器芯片等; (4)由软件引起的,如程序错、运算错、为调 试程序而设置的断点
CPU
响应中断的条件:①接收到中断请求信 号;②若是INTR 类中断,CPU 必须允许响 应;③等现行指令执行完
4.中断处理
中断处理通常是由中断服务程序完成的,一
般按以下模式设计: (1)保护现场 为不使中断服务程序的运行影响主程序的状 态,将中断服务程序中用到的寄存器内容压 入堆栈保护
8086/8088中断系统
③执行一个总线写周期,将标志寄存器内容
压栈,同时使IF 为0,TF 为0;由INTR引脚 引入,它受中断允许标志的影响,也就是说, 只有当IF=1 时,可屏蔽中断才能进入,反之 则不允许进入,可屏蔽中断可有多个,一般 是通过优先级排队,从多个中断源中选出一 个进行处理;
中断处理过程
1.中断请求
中断请求是中断过程的第一步。中断源产生
中断请求的条件,因中断源而异
2.中断判优 两个或两个以上的中断源同时提出中断请求,必须 根据中断源的轻重缓急,给每个中断源确定一个中 断级别,CPU 首先响应优先级别最高的中断源的请 求,处理完毕后,再响应级别较低的中断源的请求。 中断判优的另一作用是决定可否实现中断嵌套。当 CPU 响应某一中断请求并为之服务时,若有一个优 先权更高的中断源发出请求,CPU 应能及时响应; 反之,若有一个优先权较低的中断源发出请求,中 断判优电路应屏蔽这一中断请求,直至原有中断请 求服务完再响应优先权较低的中断请求
一是多个中断源同时提出请求时,应首先响
应优先权高的中断请求; 二是当CPU 正在处理某一级中断请求时,又 有其他的中断请求产生,这时应能响应更高 一级的中断请求,而屏蔽掉同级或较低级的 中断请求。
中断优先权
中断判优逻辑的具体实现方法有以下三种。 1.软件查询法 只需有简单的硬件电路,如将A,B,C 三台设备的 中断请求信号“或”后作为系统INTR,这时,A, B,C 三台设备中只要至少有一台设备提出中断请 求,都可以向CPU发中断请求。进入中断服务子程 序后,再用软件查询的方式分别对不同的设备的服 务,查询程序的设计思想同查询式,查询的前后顺 序就给出了设备的优先级
中断系统功能
(1)能实现中断响应、中断服务及中断返回。
当某一中断源发出中断请求时,CPU能决定 是否响应这一中断请求,若允许响应这个中 断请求,CPU 在保护断点后,将转移到相应 的中断服务程序中,中断处理完,CPU 返回 到原断点处继续执行原程序
(2)能实现中断优先权排队。当有两个或多个
8086/8088中断系统
④执行一个总线写周期,把CS
内容压栈; ⑤执行一个总线写周期,把当前IP 内容压栈; ⑥执行一个总线读周期,从中断向量表中读 取中断服务程序的偏移地址并送IP; ⑥执行一个总线读周期,从中断向量表中读 取中断服务程序的段地址并送CS。
8086/8088中断系统
2.软件中断(内部中断) 内部中断是由于80X86内部执行程序出现异常引起 的程序中断,包括除法错中断、溢出中断、INTn指 令中断、单步中断和断点中断。内部中断响应后不 需要INTA 总线周期,处理过程与NMI过程基本相同。 (1)除法错中断。在执行除法指令时,若除数为0 或 商超过寄存器所能表达的范围,则CPU 立即产生一 个0 型中断。 (2)溢出中断。如果上一条指令使溢出标志位OF 为1, 则执行INTO 指令产生中断,溢出中断的中断类型 号为4。
中断优先权
2.
简 单 硬 件 方 法
Fra Baidu bibliotek
中断优先权
链式中断优先权排队电路,也称菊花链法。
基本原理是将所有的设备连成一条链,靠近 CPU 的设备优先级最高,越远的设备优先级 别越低,则发出中断响应信号时,若级别高 的设备发出了中断请求,在它接到中断响应 信号的同时,封锁其后的较低级设备使得它 们的中断请求不能响应,只有等它的中断服 务结束以后才开放,允许为低级的设备服务
8086/8088中断系统
3.中断类型码
8086/8088
为每个中断源分配了一个中断类 型码,其取值范围为0~255,即可处理256 种中断。其中包括软件中断,系统占用的中 断以及开放给用户使用的中断。
中断向量和中断向量表
中断向量:把各个中断服务子程序的入口称为一个 中断向量; 中断向量表:将这些中断向量按一定的规律排列成 一个表,就是所谓的中断向量表,当中断源发出中 断请求时,即可查找该表,找出其中断向量,就可 转入相应的中断服务子程序。8086/8088中断系统 中的中断向量表是位于0 段的0~3FFFH 的存贮区 内,每个中断向量占四个单元,其中前两个单元存 放中断处理子程序的入口地址的偏移量(IP),低 位在前,高位在后;后两个单元存放中断处理子程 序入口地址的段地址(CS),也是低位在前,高位 在后,整个中断向量表的排列是按中断类型号进行 的
8086/8088中断系统
(3)INTn 指令中断。在执行中断指令INTn 时产生的 一个中断类型号为n 的内部中断。 (4)单步中断。当陷阱标志TF 置“1”时,80X86 处 于单步工作方式。在单步工作时,每执行完一条指 令,CPU 自动产生中断类型号为1 的中断。 (5)断点中断。断点中断是80X86 提供的一种调试程 序的手段。用于设置程序中的断点,中断类型号为 3