输入输出系统
5.1 概述
一、输入输出系统的发展概况
- 早期
- 分散连接
- CPU 和 I/O设备串行工作 程序查询方式
- 接口模块和 DMA 阶段
- 总线连接
- CPU 和 I/O设备 并行 工作
- 中断方式
- DMA 方式
- 具有通道结构的阶段
- 具有 I/O 处理机的阶段
二、输入输出系统的组成
1. I/O 软件
(1) I/O 指令
CPU 指令的一部分
(2) 通道指令
通道自身的指令
指出数组的首地址、传送字数、操作命令
2. I/O 硬件
设备 I/O 接口
设备 设备控制器 通道
三、I/O 设备与主机的联系方式
1. I/O 设备编址方式
(1) 统一编址 用取数、存数指令
(2) 不统一(单独)编址 有专门的 I/O 指令
2. 设备选址
用设备选择电路识别是否被选中
3. 传送方式
(1) 串行
(2) 并行
4. 联络方式
(1) 立即响应
(2) 异步工作采用应答信号
(3) 同步工作采用同步时标
5. I/O 设备与主机的连接方式
(1) 辐射式连接
(2) 总线连接
便于增删设备
四、I/O设备与主机信息传送的控制方式
1. 程序查询方式
我们来看下图这部分:
CPU运行速度快IO设备运行速度慢,那么CPU大部分时间都会处于一个踏步等待的状态
2. 程序中断方式
CPU发出启动IO设备的指令,IO设备启动工作自身准备,数据准备,在准备的过程中CPU会去干其他的事情,IO设备尊卑完成后向CPU发出中断信息,CPU接受信息中断程序,然后专门去处理IO设备的请求
此方式CPU 和 I/O 部分的并行工作,没有踏步等待现象和中断现行程序
3. DMA 方式
主存和 I/O 之间有一条直接数据通道
不中断现行程序
周期挪用(周期窃取)
CPU 和 I/O 并行工作
与程序中断方式相比,将CPU与IO设备数据传输接到中释放出来
三种方式的 CPU 工作效率比较
5.2 I/O设备(非重点)
一、概述
外部设备大致分三类
- 人机交互设备 键盘、鼠标、打印机、显示器
- 计算机信息存储设备 磁盘、光盘、磁带
- 机—机通信设备 磁盘、光盘、磁带
二、输入设备
- 键盘
- 按键
- 判断哪个键按下
- 将此键翻译成 ASCII 码 (编码键盘法)
- 鼠标
- 机械式 金属球 电位器
- 光电式 光电转换器
- 触摸屏
三、输出设备
- 显示器
- 字符显示 字符发生器
- 图形显示 主观图像
- 图像显示 客观图像
- 打印机
- 击打式 点阵式(逐字、逐行)
- 非击打式 激光(逐页)喷墨(逐字)
四、其他
- A/D、D/A 模拟/数字(数字/模拟)转换器
- 终端 由键盘和显示器组成 完成显示控制与存储、键盘管理及通信控制
- 汉字处理 汉字输入、汉字存储、汉字输出
五、多媒体技术
5.3 I/O接口
一、概述
为什么要设置接口?
- 实现设备的选择
- 实现数据缓冲达到速度匹配
- 实现数据串 并格式转换
- 实现电平转换
- 传送控制命令
- 反映设备的状态(“忙”、“就绪”、 “中断请求”)
二、接口的功能和组成
1.总线连接方式的 I/O 接口电路
- 设备选择线(单向):参与本次信息交换的设备码,端口号,设备地址
- 数据线(双向):数据的输入与输出
- 命令线(单向):传输命令信号
- 状态线(单向):传输状态信号
2. 接口的功能和组成
功能 | 组成 |
---|---|
选址功能 | 设备选择电路 |
设备选择电路 | 命令寄存器、命令译码器 |
传送数据的功能 | 数据缓冲寄存器 |
反映设备状态的功能 | 设备状态标记 |
3. I/O 接口的基本组成
三、接口类型
-
按数据 传送方式 分类
并行接口
串行接口
-
按功能 选择的灵活性 分类
可编程接口
不可编程接口
-
按 通用性 分类
通用接口
专用接口
-
按数据传送的 控制方式 分类
中断接口
DMA 接口
5.4 程序查询方式
一、程序查询流程
1. 查询流程
单个设备
多个设备
2. 程序流程
其中设置计数值的目的是控制传输数据量
二、程序查询方式的接口电路
以输入为例
当有多个设备的时候要按优先级进行查询
5.5 程序中断方式
一、中断的概念
CPU在执行程序的过程当中,如果发生意外或特殊事件,CPU要中断当前程序的处理,转而去处理特殊事件,中断结束后要返回之前的断点,继续执行之前的程序
二、I/O 中断的产生
CPU与设备是并行的工作的
三、程序中断方式的接口电路
1. 配置中断请求触发器和中断屏蔽触发器
中断屏蔽触发器的作用是当CPU正在处理一项非常重要的事情时不能被中断,此时中断请求就会被屏蔽
2. 排队器
当有多个设备设,要按优先级进行排队,一般速度快的优先级高,因为一般速度快的存储时间相对较短
排队功能的实现常见的由链式排队器
设备 1#、2#、3#、4# 优先级按 降序排列
INTR = 1 有请求
3. 中断向量地址形成部件
确认了选择哪个中断源的中断请求后,下一步就是找到中断服务程序的入口地址
中断号:中断编号
中断向量:中断服务程序的入口地址,包括中断地址,偏移量,状态信号
向量地址:中断向量的地址
入口地址由硬件产生向量地址再由向量地址找到入口地址
4. 程序中断方式接口电路的基本组成
四、I/O 中断处理过程
1. CPU 响应中断的条件和时间
(1) 条件
允许中断触发器 EINT = 1
用 开中断 指令将 EINT 置 “1”
用 关中断 指令将 EINT 置“ 0” 或硬件 自动复位
(2) 时间
当 D = 1(随机)且 MASK = 0 时
在每条指令执行阶段的结束前
CPU 发 中断查询信号(将 INTR 置“1”)
2. I/O 中断处理过程
五、中断服务程序流程
1. 中断服务程序的流程
(1) 保护现场
- 程序断点的保护 中断隐指令完成
- 寄存器内容的保护 进栈指令
(2) 中断服务
对不同的 I/O 设备具有不同内容的设备服务
(3) 恢复现场
出栈指令
(4) 中断返回
中断返回指令
2. 单重中断和多重中断
- 单重中断 不允许中断现行的中断服务程序
- 多重中断 允许级别更高的中断源中断现行的中断服务程序
3. 单重中断和多重中断的服务程序流程
中断周期要做三件事:保护断点、幸存中断服务程序的入口地址、关中断
保护现场由入栈指令完成
恢复现场由出栈指令完成
单重与多重的区别在于多次将开中断任务提前了
宏观 上 CPU 和 I/O 并行 工作
微观 上 CPU 中断现行程序 为 I/O 服务
5.6 DMA 方式
直接访问存储器方式
一、DMA 方式的特点
1. DMA 和程序中断两种方式的数据通路
2. DMA 与主存交换数据的三种方式
(1) 停止 CPU 访问主存(哒咩)
控制简单
CPU 处于不工作状态或保持状态
未充分发挥 CPU 对主存的利用率
(2) 周期挪用(或周期窃取)
DMA 访问主存有三种可能
• CPU 此时不访存:DMA可以访存,CPU继续执行不访存的指令
• CPU 正在访存:DMA等待 CPU访存
• CPU 与 DMA 同时请求访存 同时请求访存,DMA优先
此时 CPU 将总线控制权让给 DMA
(3) DMA 与 CPU 交替访问(哒咩)
不需要 申请建立和归还 总线的使用权
二、DMA 接口的功能和组成
1. DMA 接口功能
(1) 向 CPU 申请 DMA 传送
(2) 处理总线 控制权的转交
(3) 管理 系统总线、控制 数据传送
(4) 确定 数据传送的 首地址和长度 修正 传送过程中的数据 地址 和 长度
(5) DMA 传送结束时,给出操作完成信号
2. DMA 接口组成
地址寄存器AR:CPU要告诉DMA接口传输的数据的位置,故用一个地址寄存器来存储
计数器WC:需要知道传输数据的量的多少,由计数器寄存器存储
每完成一个数据的传输AR和WC都会+1
设备地址寄存器DAR:用于存储外部设备的地址
数据缓冲器BR用于暂存外部设备的数据
输入输出过程需要DMA控制逻辑,控制在给定时刻给出给定的信号外部设备如果要进行DMA传输,外部设备向DMA控制器发出请求信号DREQ,DMA向外部设备发出反馈信息DACK,DMA控制器向CPU发出请求信号HRQ,CPU向DMA控制器发出放会信号HCDA
中断机构用于WC=0时中断DMA
三、DMA 的工作过程
1. DMA 传送过程
预处理、数据传送、后处理
(1)预处理
数据传输前需要的一些处理
- 通知DMA 控制逻辑传送方向(入/出)
- 设备地址DMA 的DAR
- 主存地址DMA 的AR
- 传送字数DMA 的WC
(2)数据传送
数据传送过程以输出为例
- 将BR中的数据传入设备当中,此时BR没数据了
- 设备发出DREQ信号给DMA控制逻辑,相当于设备对DMA控制逻辑说我BR没数据了,你快点开始干活
- DMA控制逻辑通过总线向CPU提出总线和存储器的占用请求HRQ
- CPU在允许的情况下给出应答HLDA,CPU放弃总线和存储器的占用权
- 进行数据传输就要给出主存的地址,通过AR得到
- 由DMA控制器发出DACK通知设备已经可以开始设备传输了
- 主存将数据通过数据线存到BR中,AR和WC的数据+1
- WC判断数据是否传输完,如果WC计数为0WC向中断机构发出溢出信号
- 中断机构向CPU发出中断请求
(5)后处理
校验送入主存的数是否正确
是否继续用 DMA
测试传送过程是否正确,错则转诊断程序
由中断服务程序完成
2. DMA 接口与系统的连接方式(可以类比总线)
(1) 具有公共请求线的 DMA 请求(类比总线判优的链式查询方式)
(2) 独立的 DMA 请求(类比总线判优的独立请求方式)
3. DMA 方式与程序中断方式的比较
中断方式 | DMA 方式 | |
---|---|---|
数据传送 | 程序 | 硬件 |
响应时间 | 指令执行结束 | 存取周期结束 |
处理异常情况 | 能 | 不能 |
中断请求 | 传送数据 | 后处理 |
优先级 | 低 | 高 |
四、DMA 接口的类型
1. 选择型
在 物理上 连接 多个 设备
在 逻辑上 只允许连接 一个 设备
2. 多路型
在 物理上 连接 多个 设备
在 数据准备阶段 允许连接 多个 设备同时工作
但在 数据传输阶段 还时只能有 一个 设备