文章目录
- 1 中断的基本概念
- 2 中断请求的分类
- 3 中断请求标记
- 4 中断判优-实现
- 5 中断处理过程
- 5.1 中断处理过程-中断隐指令
- 5.2 中断处理过程-硬件向量法
- 5.3 中断处理过程-中断服务程序
- 6 单重中断与多重中断
- 6.1 单重中断与多重中断比较
- 7 中断屏蔽技术
- 中断屏蔽字例题
- 8 中断系统小结
1 中断的基本概念
程序中断是指在计算机执行现行程序的过程中,出现某些急需处理的异常情况或特殊请求,CPU暂时中止现行程序,而转去对这些异常情况或特殊请求进行处理,在处理完毕后CPU又自动返回到现行程序的断点处,继续执行原程序。
中断工作流程:
- 中断请求
中断源向CPU发送中断请求信号。- 中断响应
响应中断的条件。
中断判优:多个中断源同时提出请求时通过中断判优逻辑响应一个中断源。- 中断处理
中断隐指令。
中断服务程序。
2 中断请求的分类
回忆操作系统:
CPU如何识别是哪一类中断呢?通过中断请求标记
3 中断请求标记
- 每个中断源向CPU发出中断请求的时间是随机的。
- 为了记录中断事件并区分不同的中断源,中断系统需对每个中断源设置中断请求标记触发器INTR,当其状态为“1”时,表示中断源有请求。
- 这些触发器可组成中断请求标记寄存器,该寄存器可集中在CPU中,也可分散在各个中断源中。
对于外中断,CPU是在统一的时刻即每条指令执行阶段结束前向接口发出中断查询信号,(特殊情况:对于执行时间很长的指令,可在执行过程中设置若干个“查询断点”)以获取l/O的中断请求,也就是说,CPU响应中断的时间是在每条指令执行阶段的结束时刻。
CPU响应中断必须满足以下3个条件:
①中断源有中断请求。
②CPU允许中断即开中断。
③一条指令执行完毕,且没有更紧迫的任务。
当有两个中断源发出中断请求时,CPU要响应哪一个中断请求? 中断判优
4 中断判优-实现
- 中断判优既可以用硬件实现,也可用较件实现:
- 硬件实现是通过硬件排队器实现的,它既可以设置在CPU中,也可以分散在各个中断源中;
- 软件实现是通过查询程序实现的。
- 中断优先级设置:
- 硬件故障中断属于最高级,其次是软件中断;
- 非屏蔽中断优于可屏蔽中断;
- DMA请求优于I/O设备传送的中断请求;
- 高速设备优于低速设备;
- 输入设备优于输出设备;
- 实时设备优于普通设备。
5 中断处理过程
5.1 中断处理过程-中断隐指令
中断隐指令的主要任务:
- 关中断。
在中断服务程序中,为了保护中断现场(即CPU主要寄存器中的内容)期间不被新的中断所打断,必须关中断,从而保证被中断的程序在中断服务程序执行完毕之后能接着正确地执行下去。
- 保存断点。
为了保证在中断服务程序执行完毕后能正确地返回到原来的程序,必须将原来程序的断点(即程序计数器(PC)的内容)保存起来。
可以存入堆栈,也可以存入指定单元。
- 引出中断服务程序。
引出中断服务程序的实质就是取出中断服务程序的入口地址并传送给程序计数器(PC)。
引出方式:软件查询法,硬件向量法
5.2 中断处理过程-硬件向量法
5.3 中断处理过程-中断服务程序
中断服务程序的主要任务:
- 保护现场
一是保存程序断点(PC),已由中断隐指令完成;二是保存通用寄存器和状态寄存器的内容,由中断服务程序完成。
可以使用堆栈,也可以使用特定存储单元。
- 中断服务(设备服务)
主体部分,如通过程序控制需打印的字符代码送入打印机的缓冲存储器中。
- 恢复现场
通过出栈指令或取数指令把之前保存的信息送回寄存器中。
- 中断返回
通过中断返回指令回到原程序断点处。
6 单重中断与多重中断
单重中断:执行中断服务程序时不响应新的中断请求。
多重中断:又称中断嵌套,执行中断服务程序时可响应新的中断请求。
6.1 单重中断与多重中断比较
7 中断屏蔽技术
中断屏蔽技术主要用于多重中断,CPU要具备多重中断的功能,须满足下列条件:
- 在中断服务程序中提前设置开中断指令。
- 优先级别高的中断源有权中断优先级别低的中断源。
每个中断源都有一个屏蔽触发器,1表示屏蔽该中断源的请求,0表示可以正常申请,所有屏蔽触发器组合在一起,便构成一个屏蔽字寄存器,屏蔽字寄存器的内容称为屏蔽字。
屏蔽字设置的规律:
- 一般用‘1’表示屏蔽,0’表示正常申请。
- 每个中断源对应一个屏蔽字(在处理该中断源的中断服务程序时,屏蔽寄存器中的内容为该中断源对应的屏蔽字)。
- 屏蔽字中1’越多,优先级越高。每个屏蔽字中至少有一个1(至少要能屏蔽自身的中断)。
中断屏蔽字例题
设某机有4个中断源A、B、C、D,其硬件排队优先次序为A>B>C>D,现要求将中断处理次序改为D>A>C>B。
1)写出每个中断源对应的屏蔽字。
2)按下图所示的时间轴给出的4个中断源的请求时刻,画出CPU执行程序的轨迹。设每个中断源的中断服务程序时间均为20us。
(1)
1表示屏蔽,在哪一位置填1,则此列对应的中断源可屏蔽
某个中断源至少要屏蔽自己
(2)