一个完整的中断处理过程应该包括:中断请求、
中断排队或中断判优、中断响应、中断处
理和中断返回等环节,下面分别进行讨论。
1
.中断请求
中断请求是由中断源向
CPU
发出中断请求信号。外部设备发出中断请求信号要具备以
下两个条件:
(
1
)外部设备的工作已经告一段落。例如输入设备只有在启动后,将要输入的数据送
到接口电路的数据寄存器(即准备好要输入的数据)之后,才可以向
CPU
发出中断请求。
(
2
)系统允许该外设发出中断请求。如果系统不允许该外设发出中断请求,可以将这
个外设的请求屏蔽。
当这个外设中断请求被屏蔽,
虽然这个外设准备工作已经完成,
也不能
发出中断请求。
2
.中断排队
中民申请是随机的,有时会出现多个中断源同时提出中断申请。但
CPU
每次只能响应
一断源的请求,
那么究竟先响应哪一个中断源的请求呢?这就必须根据各中断源工作性质的
轻重缓急,
预先安排一个优先级顺序,
当多个中断源同时申请中断时,
即按此优先级顺序进
行排队,等候
CPU
处理。一般是把最紧迫和速度最高的设备排在最优先的位置上。
CPU
首
先响应优先级别最高的中断源。当中断处理完毕,再响应级别低的中断申请。
中断排队可以采用硬件的方法,
也可以采用软件的方法。
前者速度快,
但需要增加硬设
备;后者无需增加硬设备,但速度慢,特别是中断源很多时尤为突出。
软件优用查询技术。当
CPU
响应中断后,就用软件查询以确定是哪些外设申请中断,
并判断它们的优先权。一个典型的软件优先权排队接口电路如
图
6
-
10
所示,图中把
8
个
外设的中断请求触发器组合起来,
作为一具端口,
并赋以设备号。
把各个外设的中断请求信
号相
“
或
”
后,作为
INTR
信号,故其中任一外设有中断请求,都可向
CPU
送出
INTR
信号。
当
CPU
响应中断后,把中断寄存器的状态作为一个外设读入
CPU
,逐位检测它们的状态,
若哪一位为
1
,则该位对应的外设有中断请求,应转到相应的服务程序的入口。其流程如图
6
-
11
所示。