多重中断的处理及其中断源屏蔽字

一。多重中断也叫中断嵌套(套娃)

1、多重中断的定义

如果CPU在执行某一中断服务程序过程中,又遇到了新的更高级的中断请求,CPU暂停原中断的处理,而转去处理新的中断,待处理完毕后,再返回继续处理原来的中断,这种中断称为多重中断,也称中断嵌套。
在这里插入图片描述

2、多重中断的处理原则

若新的中断的优先级高于原中断的优先级,CPU响应新的中断;否则,CPU不予响应,必须待原中断处理完毕且返回主程序后,再响应新的中断。(这个地方其实可以参考一下计算机操作系统里面对动态的优先级算法)

3、单重中断和多重中断比较

在中断响应部分(中断隐指令),两者基本没用区别
在中断服务阶段,多重中断需要在有新的中断请求时,比较优先级,如果请求者优先级低于正在执行者,则继续执行中断。如果高于,则需要中断当前的中断,这里需要保护现场的同时,需要保存屏蔽字
在这里插入图片描述

二。中断屏蔽字

1. 中断屏蔽技术

中断屏蔽技术主要用于多重中断,CPU要具备多重中断的功能,须满足下列条件

  1. 在中断服务程序中提前设置开中断指令。
  2. 优先级别高的中断源有权中断优先级别低的中断源。

每个中断源都有一个屏蔽触发器,1表示屏蔽该中断源的请求,0表示可以正常申请,所有屏蔽触发器组合在一起,便构成一个屏蔽字寄存器,屏蔽字寄存器的内容称为屏蔽字。

2. 屏蔽字设置的规律

  1. 一般用‘1’表示屏蔽,'0’表示正常申请。
  2. 每个中断源对应一个屏蔽字(在处理该中断源的中断服务程序时,屏蔽寄存器中的内容为该中断源对应的屏蔽字)。
  3. 屏蔽字中1’越多,优先级越高。每个屏蔽字中至少有一个’1’(至少要能屏蔽自身的中断)

3. 多重中断中,中断的屏蔽字(举例)

假设有A,B,C,D四个中断源,其硬件排队优先次序位D>A>C>B

  1. 由于中断源至少要能够屏蔽自身,所以在AA,BB,CC,DD先写1
  2. 根据优先级,相对优先级低于自身写1,反之写0
    在这里插入图片描述

三。动态的引入中断源(中断的执行顺序)

1.例题

	继续前面的例子,假设每个中断的中断服务时间需求均是20ns
	B在5ns时提出请求
	D在10ns时提出请求
	A在35ns时提出请求
	C在60ns时提出请求

时间轴图如下:
在这里插入图片描述

2.说明

执行的顺序过程,类似于操作系统里面的动态的优先级调度算法。
若当前没用程序中断请求时,先到的(当且仅当只有一个同时到达)直接进行中断服务。
根据中断源的优先级来执行,若当前的中断程序优先级低于等待队列中(或刚进入)的中断程序,则当前中断程序进行中断,让出资源给优先级更高的中断程序。

  • 18
    点赞
  • 81
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值