详解中断系统
中断系统是计算机的重要指标之一。可以解决快速CPU与慢速外设之间的矛盾,使之能并行工作。可以及时处理随机参数及故障,提高可靠性。
1. 中断流程
中断请求-中断响应-保护断点-中断服务-中断返回。
2. 中断概念
(1)中断系统:实现中断功能的硬件系统和软件系统
(2)中断源:产生中断的请求源
(3)中断请求:中断源向CPU提出的处理请求。
(4)中断响应:CPU暂时中止自身的事情,转去处理事件的过程
(5)中断服务:对事件的整个处理过程。也称为中断处理
(6)中断返回:中断处理完毕,在返回到原来被中止的地方
3. 中断系统的一般功能
中断系统一般应具有如下功能:
- 实现中断及返回
当某中断源发出中断申请时,若允许响应,CPU必须在现行的指令执行完后,把断点处的PC值压入堆栈保存,称为保护断点。(硬件自动完成)
保护现场——响应中断后,将有关的寄存器内容和状态标志位压入堆栈保存。
恢复现场——执行中断服务程序后,恢复原保留的寄存器的内容和标志位的状态,并执行返回指令“RETI”(用户编程实现)
- 实现优先权排队
当同时有多个中断请求信号,先响应优先级别高的中断请求。
- 实现中断嵌套
中断申请的中断源的优先权级别与正在处理的中断源同级或更低时,CPU暂时不响应这个中断申请,直至正在处理的中断服务程序执行完以后才去处理新的中断申请。
- 实现中断的撤除
在响应中断后,返回主程序之前,中断请求应该撤除,否则,将影响对其它中断申请的响应。
MCS-51中断系统只能对一部分中断申请,在响应后自动撤除,使用中应注意。
4. 调用中断服务程序与调用子程序的区别
相同点:均能中断主程序执行本程序,然后再返回断点地址继续执行主程序。
不同点:
- 事先安排和随机发生
- 软件调用和硬件自动完成
- 中断服务程序入口地址是固定的,子程序调用入口地址是用户自己设定的。
- 中断服务子程序返回指令除具有子程序返回指令所具有的全部功能之外,还有清除中断响应时被置位的中断请求标志位的功能。
- 中断服务子程序是在满足中断申请的条件下,随机发生的;而子程序调用是用户主程序事先安排好的。