程序中断

来源:互联网 发布:淘宝可以货到付款不 编辑:程序博客网 时间:2024/05/19 02:30

中断请求触发器(INTR),中断屏蔽触发器(MASK)二者成对出现。
接口中的完成触发器D,为1表示设备准备就绪。
中断源:凡是能够向CPU提出中断请求的各种因素都叫中断源。

因此,有多个中断源,但是,CPU某一时刻只接受一个中断源。那么其他的中断源怎么办?
老办法:排队等候啊。
如何选择中断源?也是老办法,谁优先级高就选谁。正在处理中断呢,能不能被打断?
答案是可以的,优先级的作用也在这里,且是双向的,更高优先级的可以打断,但级别低的不许打断。MASK就是封锁级别低的中断请求的触发器。

CPU在何时查询中断请求?

答案是统一的时间:在每条指令执行阶段的最后时刻,查询所有的设备时候有中断请求。

如何对中断源排序?
有个原则:速度越高的I/O设备,优先级越高,因为若CPU不及时响应高速I/O设备的请求,信息可能会立即损失。

中断向量
CPU响应中断的流程是:暂停现有程序,转去执行该设备的中断服务程序。不同的设备有不同的中断服务程序。
每个服务程序都有一个入口地址,CPU要找到这个入口地址。
中断向量是中断服务程序的入口地址的地址。

向量地址送到PC,查找中断服务程序的入口地址。
因为向量地址中存放的是无条件转移指令。

一次中断处理过程可归纳为中断请求,中断判优,中断响应,中断服务和中断返回。

中断服务程序的流程,主要是四大部分:保护现场,中断服务,恢复现场,中断返回。

保护现场又分为两个部分的保护:
保护程序的断点(PC):由中断隐指令完成(一关,二保,三引)
保护通用寄存器和状态寄存器的内容:由中断服务程序完成

0 0