程序中断方式
中断的作用
- 实现CPU与I/O设备并行工作
- 硬件故障
- 实现人际联系
- 实现多道程序和分时操作
- 提高计算机效率
- 实现实时处理
- 实现应用程序和操作系统
- 多处理机系统
- 通过中断来实现处理机和处理机之间的信息交流和任务切换
中断的分类
- 按中断来源:
- 内中断:发生在主机内部的中断
- 外中断:有主机外部事件引起的中断
- 按中断服务程序入口地址的获取方式
- 向量中断:通过硬件自动形成中断服务程序的入口地址
- 非向量中断:通过中断查询程序确定中断源和中断服务程序的入口地址
- 按中断源位置分类
- 按是否可屏蔽分类
程序中断方式的接口电路
- 中断请求触发器和中断屏蔽触发器
- 中断请求触发器:
- 当中断事件引发中断时,将中断请求触发器
INTR
置1
- 当中断请求触发器为
1
时,向CPU发出中断请求信号 - 每个中断源有一个中断请求触发器,多个请求触发器构成中断请求寄存器,其中的内容被称为中断字或中断码
- 当中断事件引发中断时,将中断请求触发器
- 中断屏蔽触发器:各设备的中断屏蔽触发器组成中断屏蔽寄存器
- 实现方法:为每一个中断源设置一个中断屏蔽触发器MASK,用来屏蔽设备的中断请求
- 置
1
,则对应的设备中断被封锁 - 置
0
,允许该设备的中断请求得到响应
- 置
- 实现方法:为每一个中断源设置一个中断屏蔽触发器MASK,用来屏蔽设备的中断请求
- 中断请求触发器:
- 排队器
- 中断向量形成部件
- 软件产生
- 硬件向量法
I/O中断处理过程
响应中断的条件和时间
- 条件:中断允许触发器
EINT=1
- 时间:每条指令执行阶段的结束时刻
[!note] 响应中断的时间 因为I/O设备准备就绪的时间是随机的,而CPU是在统一的时刻向接口发送中断查询信号,以获取I/O的中断请求。 因此,CPU响应中断的时间一定是在没条指令执行阶段的结束阶段
中断处理过程
1. 由CPU发启动I/O设备命令,将接口中的B
置1
,D
置0
2. 接口启动输入设备开始工作
3. 输入设备将数据送入数据缓冲寄存器
4. 输入设备向接口发出“设备工作结束”信号,将D
置1
,B
置0
,标志设备准备就绪
5. 当设备准备就绪,且未被屏蔽,在指令执行阶段的结束时刻,由CPU发出中断查询信号
6. 设备中断请求触发器INTR
被置1
,标志设备向CPU提出中断请求,同时,INTR
送至排队器,进行中断判优
7. 若CPU允许中断,设备又被排队选中,即进入中断响应阶段,由中断响应信号INTA
将排队器输出送至编码器形成向量地址
8. 向量地址送至PC,作为下一条指令的地址
9. 根据寻找到的无条件跳转指令,开始执行中断服务程序,进入中断服务阶段,通过输入指令将数据缓冲寄存器的输入数据送至CPU的通用寄存器,再存入主存相关单元
10. 中断返回至源程序的断点处
#计组重点 中断服务程序流程
中断服务程序的流程
- 保护现场
- 程序断点的保护:由中断隐指令完成
- 寄存器内容的保护:使用进栈指令完成
- 中断服务:对不同的I/O设备相应不同内容的中断服务
- 恢复现场:使用出栈指令完成
- 中断返回:使用中断返回指令完成
单重中断和多重中断的服务流程
[!note] #计组重点 多重中断 单重中断不允许中断现行的中断服务程序 而多重众多允许级别更高的中断源中断现行的中断服务程序