资源预览内容
第1页 / 共150页
第2页 / 共150页
第3页 / 共150页
第4页 / 共150页
第5页 / 共150页
第6页 / 共150页
第7页 / 共150页
第8页 / 共150页
第9页 / 共150页
第10页 / 共150页
亲,该文档总共150页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
微型计算机原理 与接口技术,21世纪高等学校计算机规划教材,人民邮电出版社,第6章 中断与DMA传输,6.1 中断原理 6.2 可编程中断控制器8259A 6.3 中断方式输入输出 6.4 DMA控制器8237A,6.1 中断原理,6.1.1 中断的基本概念,(1) 中断 由于某个事件的发生,CPU暂停当前正在执行的程序,转而执行处理该事件的一个程序。 该程序执行完成后,CPU接着执行被暂停的程序。 这个过程称为中断。,(2) 中断源 引发中断的事件称为中断源 内部中断(在CPU内部的中断源): 程序异常(运算溢出等), 陷阱中断(例如,单步运行程序等), 软件中断(执行特殊指令)等。 外部中断(发生在CPU外部的中断): 外部故障(电源故障,存储器读写校验错) 外部事件(定时时间到,外部特殊信号) IO事件(外部设备完成一次IO操作,请求数据传输),(3) 中断类型 用若干位二进制表示的中断源的编号。 (4) 中断断点 由于中断的发生,某个程序被暂停执行。 该程序中即将执行,由于中断没有被执行的那条指令的地址称为中断断点,简称断点。,(5) 中断服务程序 处理中断事件的程序段称为中断服务程序。 如:故障中断服务程序,输入输出中断服务程序。 不同类型的中断需要不同的中断服务程序。 中断服务程序不同于一般的子程序: 子程序由某个程序调用,它的调用是由程序设定的, 它的执行时间是确定的。 中断服务程序由某个事件引发,它的执行一般是随 机的,不确定的。,中断向量 中断服务程序的入口地址 (7) 中断系统 为实现计算机的中断功能而配置的相关硬件、软件的集合称为中断系统。,6.1.2 中断工作方式的特点,(1) 并行处理能力 实现CPU和多个外设同时工作,提高CPU效率。 (2) 实时处理能力 计算机应用于实时控制时,对外部事件及时响应。 (3) 故障处理能力 及时处理故障,不影响其他程序的运行。 (4) 多道程序或多重任务的运行 在操作系统的调度下,运行多道程序或多重任务。,6.1.3 中断管理,1. 对中断全过程的控制 中断源发出中断请求时,CPU能决定是否响应这一中断。 若允许响应这个中断请求,CPU在保护断点后,将控制转移到相应的中断服务程序去 中断处理完,CPU返回到断点处继续执行被中断的程序。,2. 中断源的识别 软件识别: 响应中断后, CPU进入中断处理程序。 在这个程序里,CPU逐个查询各中断源的状态,确 定是哪一个设备申请了中断。 硬件识别: 响应中断后, CPU进入一个“中断响应周期”。 在这个周期里,申请中断的设备向CPU发送它的中断类型。,3 中断的优先权 优先权:有多个中断源同时提出中断请求时,CPU 响应中断的优先次序。 (1)软件查询法 (2)分类申请法 (3)链式优先权排队菊花链法 (4)可编程中断控制器“向量”优先权排队,图6-1,菊花链中断优先级排队电路,4. 中断嵌套 CPU在处理中断过程中,如果出现了级别更高的中断 请求,CPU停止执行低级中断的处理程序而去优先处 理高级中断。 等高级中断处理完毕后,再接着执行低级的未处理完 的程序。 这种中断处理方式称为多重(级)中断或中断嵌套。 CPU在响应中断时已将IF清零,一定要在中断处理程 序中加入开中断指令,才有可能进行中断嵌套。,中断嵌套,6.1.4 中断过程,1中断源请求中断 (1)外部中断源 由外部硬件产生可屏蔽或不可屏蔽中断的请求信号; (2)内部中断源 在程序运行过程中发生了指令异常或其他情况。 (3)中断屏蔽 CPU用程序的方法允许某些中断源发出中断请求,而禁止某些中断源请求中断 在外设的接口内增设一个中断屏蔽触发器 Q=0时,中断请求不能发往INTR; 适当地设定中断屏蔽触发器的状态,可以控制中断 请求信号是否能够送到INTR端,2 中断响应 (1) 响应可屏蔽中断必须同时具备以下条件: CPU处于允许中断状态(IF=1); 没有不可屏蔽中断请求和总线请求; 当前指令执行结束。 (2) 响应不可屏蔽中断必须同时满足以下条件: 没有总线请求; 当前指令执行结束。 (3) 响应内部中断的条件: 当前指令执行结束。,CPU接受中断请求后转入中断响应周期: (1)识别中断源,取得中断源的中断类型; (2)将标志寄存器FLAGS和CS、IP(断点)先后压入 堆栈保存; (3)清除自陷标志位TF和中断允许标志位IF; (4)获得相应的中断服务程序入口地址,转入中断服务 程序。,中断响应周期,图6-3,中断过程,3 中断服务 (1)保护现场: 保护中断服务时要使用的寄存器(压栈); (2)开中断: 中断服务时能响应更高级的中断请求; (3)中断处理:执行输入输出或非常事件的处理; (4)关中断: 恢复现场时不被新的中断打扰; (5)恢复现场: 将堆栈中保存的内容弹出; (6)中断返回 :通过中断返回指令,弹出IP,CS,FLAGS, 程序回到被中断的地址,恢复中断前的状态。,6.1.5 8086 CPU中断系统,1. 8086的中断类型 中断类型:用8位二进制表示,可以有256个不同的中断; 中断请求输入引脚:NMI、INTR; 中断优先级: INT 0(除法溢出)溢出中断(INTO)INT n指令 NMI INTR 单步中断。,图6-4,8086 CPU中断,(1) 可屏蔽中断 IF= 0时,CPU不响应INTR的中断请求; IF= 1时,CPU响应INTR的中断请求。 用STI指令使IF=1,称为开中断; 用CLI指令使IF=0,称为关中断。 系统复位后,或CPU响应了任何一种中断后,都会使 IF=0。 应使用STI指令使IF=1,确保中断开放。 可屏蔽中断源由8259A统一管理,每片8259A可以接 受8个外部设备的中断请求。,(2) 不可屏蔽中断 NMI接收上升沿触发的中断请求信号; 输入脉冲应大于两个时钟周期; CPU对NMI中断请求的响应,不受中断允许 标志位 IF控制; NMI中断类型码固定为2。,(3) 内部中断 除法溢出中断(n=0): 除数为零或商超过寄存器所能表达的范围。 单步中断(n=1) : TF=1,每执行完一条指令产生一次中断。 用于实现单步操作,是强有力的调试手段。 断点中断 (n=3) : INT 3指令产生一个中断类型码为3的断点中断。 INTO指令 (n=4) : OF=1,则INTO指令引起类型码为4的内部中断; OF=0,此指令不起作用,程序顺序执行。 INT n指令,中断向量:中断服务程序的入口地址; 8086的中断向量表从内存00000H开始存放; 每个中断向量占用4个字节; 中断服务程序入口的偏移地址存入两个低地址字节, 入口的段基址存入两个高地址字节; 256个中断向量占用00000H003FFH共1024个字节。,2. 8086的中断向量表,图6-5,8086的中断向量表,AH=35H AL=中断类型 INT 21H 把原有的中断向量送ES:BX AH=25H AL=中断类型 DS:DX=中断向量 INT 21H 把新的中断向量送中断向量表,(1) 不可屏蔽中断NMI 不受CPU内部中断允许标志IF的约束,优先权高于INTR; 中断类型号2;采用边沿触发(上升沿)方式 标志寄存器压入堆栈 清除IF标志和TF标志 保存断点,把断点处的CS和IP内容先后压入堆栈 取出中断服务程序的入口地址,送入IP和CS 进入中断服务程序 用途:主板上RAM奇偶错, I/O通道中的奇偶校验错, 8087协处理器异常中断。,3. 8086对外部中断的响应,(2) 可屏蔽中断INTR 外设的中断请求首先送到8259A,按照中断优先权排队; 电平触发方式,高电平有效。 响应过程: 第一个INTA总线周期,通知外部做好准备; 第二个INTA总线周期,从外部获取中断类型号; 执行总线写周期,把FLAGS压入堆栈,并清除IF,TF; 执行总线写周期,把CS内容压栈; 执行总线写周期,把IP内容压栈; 执行总线读周期,中断服务程序入口偏移地址送入IP; 执行总线读周期,中断服务程序入口段基址送入CS。,6.2 可编程中断控制器8259A,接收8路外部中断请求,通过级联可以扩展至64级; 优先权排队和控制,优先权方式可选; 中断嵌套功能; 向CPU提供中断类型号; 对每一级编程进行屏蔽或开放。,1. 8259A引脚 DB7DB0:双向三态数据总线; IR7IR0: 外设向8259A发出的中断请求信号,输入。 A0: 地址线,输入,用于选择内部端口。 CS#: 片选信号,输入、低电平有效。 RD#: 读信号,输入、低电平有效。 WR#: 写信号,输入、低电平有效。 INTA#: 中断响应信号,输入、低电平有效。 INT: 中断请求信号,输出、高电平有效。 CAS2CAS0:双向的级联线。 SP/EN: 主从设备设定/缓冲器读写控制,双向双功能,6.2.1 8259A引脚及内部结构,图6-6,8259A引脚,图6-7,8259A的内部结构,2. 中断请求寄存器IRR 锁存外部设备送来的IR7IR0中断请求信号; 中断请求线变为高电平时,IRR中与之对应的一位被置1; 寄存器的内容可以被CPU读出。 3. 中断屏蔽寄存器IMR 记录对每一级中断的屏蔽信号; 置1时,对应的外部中断请求线被屏蔽; 设置IMR起到改变中断请求优先级的效果。,4. 中断服务状态寄存器ISR 记录当前正在被服务的所有中断级; CPU响应IRi中断请求,ISR中对应第i位置1; 中断处理结束前,要使用指令清除这一位; 寄存器可以被CPU读出。 5优先权处理器 识别和管理各中断请求信号的优先级别; 多个中断请求信号同时出现时,优先权处理器根据 控制逻辑规定的优先级规则和IMR的内容来判断这 些请求信号的最高优先级。,6控制逻辑 初始化命令字寄存器ICW1ICW4: 在系统初始化时置入,工作过程中保持不变。 操作命令字寄存器OCW1OCW3: 工作过程中根据需要设定。 7 数据总线缓冲器 8位的双向三态缓冲器,是8259A与系统数据总线的接口。,8读/写控制逻辑 接收、执行CPU的读/写命令。 9级联缓冲/比较器 在级联方式的主/从结构中,用来控制8259A的级联。 缓冲器: SP/EN输出低电平时,开启双向缓冲器。 级联比较器: 主8259A:用CAS2CAS0输出被选中从片代码; 从8259A: 接收主器件送来的从片选择代码,1 8259A的工作过程 (1)中断源在IR0IR7上产生中断请求; (2)中断请求被锁存,经IMR“屏蔽”,送优先权电路判优; (3)控制逻辑接收中断请求,向CPU输出INT信号; (4)CPU接受8259A的INT信号,进入连续两个INTA周期。 (5)优先权电路将最高优先权对应ISR中的位置位; (6)第二个INTA周期把中断类型号输出到数据总线; (7)CPU读取中断类型号,转移到相应的中断处理程序。 (8)中断处理结束前,向8259A发送EOI(中断结束)命 令,使ISR相应位复位,本次中断到此结束。,6.2.2 8259A的工作方式,2 8259A的优先权管理 (1)固定优先级 中断源的优先级由它所连接的引脚编号决定; 全嵌套方式 : 中断优先权级别固定,IR0优先权最高,IR7最低。 特殊全嵌套 : 接收同一引脚上的第二次中断请求。 (2)循环优先级 各个中断申请具有大体相同的优先级; 有优先权自动循环方式和优先权特殊循环方式。,3. 中断屏蔽方式 (1)普通屏蔽方式 通过将中断屏蔽字写入IMR实现; 写入某位为“1”,对应的中断请求被屏蔽;为“0”开放。 (2)特殊屏蔽方式 采用特殊屏蔽方式并用屏蔽
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号