微机原理笔记分享 课程链接:www.bilibili.com/video/BV1qv…
微机原理第八章
中断系统
中断的概念
定义
-
计算机在执行正常程序的过程中,由于内部或外部事件发生,需要暂时中止当前程序运行,转到预先安排的中断服务程序,服务程序结束后恢复原来程序运行的这一元整过程。
中断的作用和特点
-
中断是CPU与外设间数据传输方式之一
-
中断提高对外设请求的实时响应性(高速CPU与低速外设的矛盾)
- 查询:CPU需花费大量时间查询等待。当系统中有多个外设时,不具备实时性。
- 中断:外设准备就绪,会主动向CPU发出请求。CPU与外设大部分时间并行工作,效率高。适用于实时控制、处理突发/紧急事件等。
中断的分类
外部中断(硬件)
-
不可屏蔽中断
-
由NMI引入
- 无条件响应,不能由软件禁止
- 中断类型号2(INT 2)
- 主要用于处理系统的意外或故障,如电源掉电、存储器读/写错误、扩展槽中输入/输出通道错误等。
-
-
可屏蔽中断
-
由INTR引入
- 高电平,维持到响应中断
-
可由软件控制:STI/CLI IF=1/0 允许/禁止
-
可屏蔽中断用于CPU与外设进行数据交换,常通过8259A(可编程中断控制器)与CPU连接
-
内部中断(软件)
-
定义
- 不需要硬件支持
- 不受IF标志控制
- 基本都是不可屏蔽中断
-
方法
- 除法错中断 INT 0
- 单步中断 INT 1
- 溢出中断 INT 4
- 断点中断 INT 3
- 其他 INT n
中断处理
问题:当有多个外设同时申请中断时,CPU应如何处理
-
中断优先级
- 当多个中断源同时申请中断时,CPU按优先级由高到低的次序依次响应。
- 高优先级中断可打断低优先级中断过程,实现中断嵌套;反之不然。
-
中断屏蔽
- 通过软件设置(IF=O),使CPU不响应外设的中断请求。
中断处理过程
-
中断查询
- CPU在指令最后一个T状态检测INTR,若有请求且CPU允许、外设未屏蔽,则当前指令执行完后响应中断
-
中断响应
-
CPU向外设发 INTA,外设收到后,向DB送中断类型号n;此后,CPU
- (1)从DB获取n
- (2) FLAGS入栈,清IF, TF
- (3) CS, IP入栈,保护断点
- (4) n*4杏矢量表,取出入口地址并转向中断服务程序
-
-
中断服务
- 保护现场,执行中断服务程序
-
中断返回
- 恢复现场,IP, CS,FLAGS依次出栈,中断返回
-
中断源的识别
-
查询中断法
-
向量中断法
- 存放入口地址的首地址=4*中断类型号
-
中断向量表
-
将每个设备中断入口地址依次排列存放,形成一个入口地址表,即:中断向量表。CPU根据外设提供的类型号从表中查找入口地址并转移。
-
中断矢量(入口地址)的设置方法:
- 利用DOS功能调用设置
- AL ←中断类型号
- DS: DX ←中服入口地址
- AH ←25H
- INT 21H
-
例
-
-
-
含中断程序编写方法
- 设置中断向量
- 设置8259A中断屏蔽位
- STI CPU与外设接口自动完成:
- 外设通过INTR发请求
- 当前指令执行完,CPU发两个INTA→外设
- 外设→n至DB,CPU获取n
- 保护标志与断点:FLAGS,CS,IP入栈并清除IF,TF
- n*4,查向量表,取入口地址
- 转向中断服务程序
-
中断优先级
-
IBM PC响应中断的优先顺序:
- 内部中断→NMI(非屏蔽)→INTR(可屏蔽)→单步中断
-
可屏蔽中断优先级设定方法:
- 软件查询法
- 硬件查询法
- 专用优先级控制器(8259A)
-
软件查询法
-
硬件查询法
-
中断嵌套
-
仅用于可屏蔽中断,优先级决定响应等级
-
-