组成原理(七):程序查询及中断方式
学习重点
- 程序查询方式
- 流程
- 接口电路
- 程序中断方式
- 中断概念
- 中断源
- 中断电路
- INTR和MASK
- 排队器
- 向量地址形成部件
- 接口基本电路
- 多重中断
1.程序查询方式
流程
-
查询流程
-
单个设备
-
多个设备
-
-
程序流程
I/O—>CPU—>主存
接口电路
D:工作触发器
B:完成触发器
DBR:数据缓冲寄存器
2.程序中断方式
-
中断概念
-
中断源(中断的产生)
打印机为例
3.中断电路
-
INTR和MASK
- INTR:中断请求触发器(1:有请求)
INTerrupt Request 可屏蔽中断请求信号 - NMI:
Non Maskable Interrupt 不可屏蔽中断请求信号 - MASK:中断屏蔽触发器(1:被屏蔽)
- D:完成触发器(1:完成)
- cpu查询 + 未屏蔽 + 设备工作结束(往DBR存数据)才能发送中断请求
- INTR:中断请求触发器(1:有请求)
-
排队器
-
实现方式:
- 硬件:
集中在CPU内中断系统或分散在接口电路中 - 软件:程序查询
- 硬件:
-
部分电路:
-
完整电路:
- 某设备选择,则之前优先级都有电(可中断),后面优先级的都没电
- 优先级高的设备可中断优先级低的设备的操作
-
-
中断向量地址形成部件:
-
入口地址查询两种方式:
- 程序查询:按照D的值查找
- 硬件向量法:硬件产生向量地址,再由向量地址找到入口地址
-
向量地址形成部件:
-
主存存放入口地址或跳转命令(JMP 跳转命令):
-
-
程序中断方式接口电路:
- 组件:
INTA:中断响应信号
D:工作触发器
B:完成触发器
DBR:数据缓冲寄存器
ENIT:可被中断触发器 - 中断响应且排队器排到才能进行中断服务程序
- 组件:
-
CPU响应中断的条件和时间:
- 条件:
- 允许中断触发器ENIT=1
- 可用开中断指令将ENIT置1,可以中断
- 可用关中断指令将ENIT置0,不可中断
- 时间:
- D=1且MASK=0时,每条指令执行阶段结束前,cpu发送中断查询信号
- 条件:
4.多重中断
-
中断基本流程:
- 保护现场
- 断点保护(中断隐指令)
- 寄存器内容保护(进栈指令)
- 执行中断程序(设备服务程序)
- 恢复现场(出栈指令)
- 中断返回(中断返回指令)
- 保护现场
-
单重中断:
不允许中断现行的中断服务程序 -
多重中断概念:
允许更高级别的中断源中断现行中断服务程序 -
示意图:
-
流程:
开中断:开启中断,可被中断
关中断:关闭中断,不可被中断