计算机组成原理之中断方式
首先要了解非门和与非门:
非门:
到达非门前(即A) | 通过非门后(即B) |
---|---|
1 | 0 |
0 | 1 |
与非门:
A | B | Y |
---|---|---|
0 | 0 | 1 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
1. 配置中断请求触发器和中断屏蔽触发器
INTR:中断请求触发器
INTR = 1 时发出中断请求
MASK:中断屏蔽触发器
MASK 的Q端 = 1 时被屏蔽
D:完成触发器(功能:设备发出中断请求信号)
设备发出中断信号且未被屏蔽时:
MASK 的Q非端(即MSK的上方带横线的Q处):当Q端=0时,Q非端=1;当Q端=1时,Q非端=0
D的Q端输出 1 (即设备发出中断请求信号),MASK 的Q端=0(即不屏蔽该中断请求信号)的时候,则 MASK 的Q非端输出 1 ,两条输入到 与非门 的线都为1,则 与非门 输出 0 ,然后传送到与非门上面的 非门 输出 1 ,同时CPU发出中断查询信号,两者传送到 INTR ,INTR 输出 1 (即发出中断请求)
2.排队器(链式排队器)
每一个INTP‘都有一个非门(左)和一个与非门(右)
每一个 INTR 都没有发出中断信号,即每一个 INTR = 0 的时候:
INTR1 : 非门 左边为 0 ,经 非门 后在右边输出1,则向上的线输出 1 ,然后因为 INTR1 = 0 ,则 INTR1非(即上方带横线的INTR1)= 1,这个1和非门输出的1经过 与非门 输出 0 ,并将0传到第2个设备的左边;(此时INTP1‘为1,高电平)
INTR2:非门 左边为0,经 非门 后在右边输出1,则向上的线输出 1 ,然后·因为 INTR2 = 0 ,则 INTR2非 = 1 ,这个1和非门输出的1经过 与非门 输出 0 ,并将0传到第3个设备的左边;(此时INTP2‘为1,高电平)
以此类推。。。。。。
————————————————————————————————
第一个INTR发出中断信号,即 INTR1 = 1 的时候:
INTR1 :非门 左边为0,经 非门 后在右边输出1,则向上的线输出 1 ,然后因为 INTR1 = 1 ,则 INTR1非 = 0 ,这个0和 非门 输出的1经过 与非门 输出 1 ,并将1传到第2个设备的左边;(此时INTP1‘为1,高电平)
INTR2:非门 左边为1,经 非门 后在右边输出0,则向上的线输出 0 ,然后因为 INTR2 = 0 ,则 INTR2非 = 1 ,这个1和 非门 输出的0经过 与非门 输出 1 ,并将1传到第3个设备的左边;(此时INTP2‘为0,低电平)
以此类推。。。。。。
—————————————————————————————————
第一个INTR没有发出中断信号,第二个INTR发出中断信号,即 INTR2 = 1 的时候:
INTR1 :非门 左边为0,经 非门 后在右边输出1,则向上的线输出 1 ,然后因为 INTR1 = 0 ,则 INTR1非 = 1 ,这个1和 非门 输出的1经过 与非门 输出 0 ,并将0传到第2个设备的左边;(此时INTP1‘为1,高电平)
INTR2:非门 左边为0,经 非门 后在右边输出1,则向上的线输出 1 ,然后因为 INTR2 = 1 ,则
INTR2非 = 0 ,这个0和 非门 输出的1经过 与非门 输出 1 ,并将1传到第3个设备的左边;(此时INTP2‘为1,高电平)
INTR3:非门 左边为1,经 非门 后在右边输出0,则向上的线输出 0 ,然后因为 INTR2 = 0 ,则 INTR2非 = 1 ,这个1和 非门 输出的0经过 与非门 输出 1 ,并将1传到第4个设备的左边;(此时INTP3‘为0,低电平)
然后:
(图中黄色线为高电平,紫色线为低电平)
由于 INTR1 = 0 ,INTP1‘ = 1 ,则经过与门(即与非门和非门组成的那部分)变为0,即INTP1 = 0 (低电平),同理,则INTP2 = 1 (高电平)
以此类推。。。。。。
————————————————————————————————
3. 中断向量地址形成部件
排队器输入的如“100……0”的每一位对应刚才排队器形成的每个高低电平,如刚才第二个INTR发出了中断请求即INTP2=1,则其余INTP都=0,则排队器输入为“010……0”
如图:根据生成的向量地址后,可以顺着该地址找到该地址中的内容(内容有两种:中断服务程序的入口地址或者能够跳转到该地址的一个跳转命令),然后根据内容找到对应的入口地址。当向量地址为12H的时候,到12H这个地址找到了一条跳转指令:JMP 200,则跳转到入口地址为200的中断服务程序那里。