1.中断概念
计算机在执行程序过程中,出现异常情况或者特殊请求时,计算机暂停现行程序,转而执行对于这些异常情况和特殊请求的处理,处理结束后再返回现行程序间断处,继续执行。
当程序执行到K处时,执行中断服务程序1,当中断服务程序执行结束后,继续执行主程序K+1
2.中断源
引起中断的因素,可以分为不可屏蔽中断和可屏蔽中断
人为设置的中断
程序性事故
硬件故障
IO设备
外部事件
3.中断请求标记
中断请求触发器INTR
每个设备都需配置一个中断请求触发器INTR,当INTR=1时,表示该设备向CPU提出中断请求
IO设备提出中断的前提是,该设备数据已经准备好,即工作触发器D=1
中断请求标记寄存器
表明了系统支持的中断类型,每一位对应一个INTR
中断屏蔽触发器MASK
当多个中断源同时请求时,CPU只能响应一个,因此需要屏蔽一部分中断请求,MASK=1表示该设备被屏蔽
4.中断判优逻辑
当某一时刻有多个中断源提出中断请求时,中断系统必须按其优先顺序予以响应,成为中断判优。
硬件排队
链式排队器 中断请求触发器分散在各个接口电路中
当多个中断源向CPU提出中断请求时,CPU需要对于中断源进行优先级排序,按照优先级来响应。
当某一个中断源请求时,会使其低优先级中断源输出INTP为低电平,从而导致屏蔽。
集中CPU内部 各个中断请求触发器集中于CPU内部
软件方式
利用程序查询的方式来控制中断源的优先级
5.中断服务程序入口地址
硬件向量法
中断向量地址形成部件
输入为排队器的输出,输出为中断向量,一个中断源对于一个向量地址,中断向量地址形成部件其实是一个编码器。
排队器输入,输出向量地址,在主存中向量地址为一条跳转指令,跳转到相应的中断服务程序入口地址
将排队器输出输入到中断向量地址形成部件(编码器)中,产生向量地址;向量地址所在的内存单元放置跳转指令指向具体的中断服务程序入口。或者内存单元直接存放中断服务程序的入口地址
软件查询法
6.中断响应
响应中断的条件
允许中断触发器ENIT=1
响应中断的时间
指令执行周期结束时刻由CPU发送查询信号
中断隐指令
进行中断周期,硬件需要完成一系列操作:保护断点 寻找入口地址 硬件关中断 由硬件自动完成 中断隐指令
保护断点:将当前程序计数器保存到主存中,保存到指定位置或者直接入栈
寻找入口地址:将向量地址送入PC或者使用软件查询入口地址送入PC
硬件关中断:当进入中断周期时,INT=1,此时Q产生正跳变,EINT R输入负跳变 导致EINT=0,关中断
7.中断服务程序流程
保护现场 中断服务 恢复现场 中断返回
保护现场
保存程序断点 中断隐指令完成
保存寄存器内容 中断服务程序完成 将寄存器内容保存在主存中或者入栈
中断服务
对于不同的中断源执行具体的中断服务
恢复现场
将主存中或者栈中寄存器内容送入寄存器中,恢复程序之前的状态
中断返回
中断返回指令,返回到原程序执行处
8.单重中断和多重中断
单重中断:中断服务过程中不允许响应其他中断
多重中断:中断服务过程中可以响应更高优先级的中断
利用开中断指令的位置来实现
9.IO中断处理过程
程序中断方式接口电路基本组成
cpu响应中断的条件和时间
CPU允许中断触发器EINT=1,表示CPU此时可以响应中断
CPU在每条指令执行结束前向接口发出中断查询信号 如果此时某个设备MASK=1,D=1,并且没有优先级比其更高的中断源请求中断,则CPU可以响应该设备的中断请求
输入为例,IO中断处理过程
CPU通过IO指令中的地址码来选中某设备
CPU发出启动指令 B=1 D=0
设备启动 准备数据
输入设备将数据送入DBR
输入设备将D=1 B=0表示设备准备就绪
设备准备就绪D=1 设备未被屏蔽MASK=0 指令执行阶段结束CPU发出查询信号
INTR=1 设备向CPU提出中断请求。INTR进入排队器,进行中断判优
若CPU允许中断EINT=1 设备被选中 进入中断响应阶段 由中断响应信号INTA将排队器输出送至编码器形成向量地址
向量地址送至PC
跳转到中断服务程序入口地址 执行中断服务 使用输入指令将DBR数据送入CPU通用寄存器,存入主存相关单元
中断服务程序执行完毕,执行中断返回指令,返回源程序断点处。