输入输系统——程序中断方式
中断概念
中断的产生
- 中断源:能够让CPU产生中断的所有指令
- CPU与打印机共同工作原理:
程序中断方式的接口电路
配置中断请求触发器和中断屏蔽触发器
INTR
中断请求触发器
INTR=1 有请求
MASK
中断屏蔽触发器
MASK=1
被屏蔽
D完成触发条件
排队器
软件
硬件:在CPU内部或在接口电路中(链式排队器)
中断向量地址形成部分
入口地址查询:软件产生/硬件向量法(硬件—向量地址—入口地址)
程序中断方式接口电路的基本部分
I/O中断处理过程
CPU相应中断的条件和时间
- 条件
允许中断触发器(EINT=1)
开中断 :EINT=1
关中断 :EINT=0
硬件自动复位 - 时间
当D=1(随机)且MASK=0
CPU每条指令执行阶段的结束前
CPU发中断查询信号(将INTR设位“1”)
I/O中断处理过程(以外部数据到CPU为例)
- CPU执行输入指令(外部数据到CPU)
- 设备地址选择设备(设备选择电路)
- CPU发送控制命令(接口译码)
- 2和3条件同时满足,B = 1,启动设别;D = 0,设别没有准备好
- 设备工作结束,外部设备数据传送到数据缓存寄存器中 B = 0;D = 1
- 屏蔽触发器为0 ,INTR中的D为1,中断查询触发器将INTR设置为1
- 启动排队器
- CPU发送中断相应信号
- 设别编码器发送向量地址
- 数据取走
中断服务程序流程
中断服务程序流程
- 保护现场(中断隐指令)(硬件完成)
保护程序断点(指令地址的值和程序执行状态)
寄存器内容的保护(进栈指令) - 中断服务
对不同的I/O设别具有不同内容的设备服务 - 恢复现场
出栈指令 - 中断返回
中断返回指令
单重中断和多重中断
- 单重中断:不允许中断线程的中断服务程序
- 多重中断:允许级别高的中断源中断现行的中断服务程序