8.3-中断与响应
中断的基本概念
是指CPU正常运行程序时,由于内部或者外部事件(或由程序,输入输出)引起CPU中断正在运行的程序,而转到为中断事件服务的程序中去,服务完毕,再返回原程序的这一过程
中断特征:具有随机性
中断作用
- 实现主机与外设之间的并行工作
- 故障处理:中断系统能使计算机在运行过程中出现故障的时候,调用响应的中断服务程序处理故障
- 实时处理:
中断类型
输入输出时可屏蔽中断
- 内部中断:来自于CPU内部的中断指令请求,分为软件中断和异常
- 外部中断:来自于CPU外部,又分为可屏蔽和不可屏蔽中断
- 不可屏蔽中断INTR:由系统内部硬件引发的中断,优先级高于外部硬件中断,且不受中断允许标志位的影响,所以是不可屏蔽中断
- 可屏蔽中断:是由外设通过中断请求线向处理器申请而产生的中断,处理器可以用指令来屏蔽(禁止)就是不响应中断请求
中断系统的基本功能
- 中断请求保持与清楚
通常由硬件实现,通过触发器,处理完后通过清零信号清除
- 中断源识别
中断号:是系统分给中断源的代号,以便识别和处理。中断号在中断处理过程中起到重要作用
中断号获取:CPU对系统中不同的中断源,获取他们的中断号的方式是不同的。可以通过硬件方式获取比如向量中断,也可以用软件方式获取
中断系统的基本功能-中断控制
- 中断触发方式:是指外设以什么逻辑信号去申请中断,即边沿触发和电平触发
- 中断排队方式:当多个设备同时发出中断请求,会有多个中断源发起请求,而处理器只能处理一个请求,需要进行中断排队,处理器按优先级高的先服务的原则提供服务。
- 按优先级排队:根据任务的轻重缓急,给每个中断源指定CPU响应的优先级,任务紧急的先响应,可以暂缓的后响应。缺点是优先级高的会一直响应,低的一直得不到响应
- 循环轮流排队:部分级别高低,CPU循环轮流响应各个中断源的中断请求。缺点是紧急的中断得不到及时的响应
- 中断嵌套:当CPU处理中断时,出现优先级更高的中断申请过来,为了使紧急优先级更高的得到响应,暂时打断挂起当前正在执行的中断去处理更高级别的中断,处理完成后再处理被打断的中断。中断里面又去执行其他中断就是嵌套。级别相同的中断源不能嵌套,可屏蔽中断可以嵌套,不可屏蔽中断不允许嵌套
- 中断屏蔽:处理器用指令来控制中断屏蔽触发器状态,从而控制是否接收某个特殊外设的中断请求。处理器内部也有一个中断允许触发器,只有当其为1(开中断),CPU才可以响应外部中断
中断系统的基本功能-中断优先级
中断优先级是指CPU响应和处理中断请求的先后次序
为了兼顾中断响应的时效与配置的灵活,通常采用两套机制结合组成中断优先序管理体系
(1)硬件响应优先序:未被屏蔽的几个中断源同时提出申请时CPU选择服务对象的 顺序,由硬件电路实现,用户不能修改
(2)软件服务优先级:在各个中断服务程序开头,用软件设置自己的中断屏蔽字,以此改变实际服务顺序
所以可以通过硬件来实现响应的优先序,通过软件实现服务优先序,两者配合使用
中断系统基本功能-中断的处理过程
- 中断响应周期:当CPU收到外设的中断请求后,如果当前指令已执行完(每条指令执行完成后都会去判断是否有中断请求),且允许中断,CPU进入中断响应周期,发出中断应答信号完成一个中断响应周期,告诉CPU下一个周期要响应中断
- 中断响应阶段:CPU获取中断号,谁提出的中断请求,识别中断源,完成中断申请和中断响应的一个过程,通常由硬件实现,也可以软件
- 中断处理过程:
- 标志位的处理与断电保存:处理器获得外部中断源的中断信号后保存断点返回地址,关闭中断(因为这个时候可能有别的中断过来扰乱现场,程序无法返回),保护现场
- 向中断服务程序转移并执行中断服务程序
- 返回断点:中断服务执行完成后,恢复断点和现场,返回主程序(可以由软硬件完成)
详细的中断处理流程
- 单级中断处理流程
- 多级中断处理流程:就是单中断在开中断后如果有其他中断发生可以嵌套进来