type
status
date
slug
summary
tags
category
icon
password
Property
概述
IO的发展
- 早期:
分散连接,每一个设备有专门的控制电路(增删麻烦)
CPU和IO串行工作:程序查询方式
- 接口模块和DMA阶段 总线连接,CPU和IO并行工作:中断方式和DMA方式
- 具有通道结构的阶段:一个小型的处理器,只用来管理IO
- 具有IO处理机的阶段:甚至当IO不工作,IO处理器可以分担CPU的一部分工作
IO组成
- I/O软件
IO指令:CPU指令的一部分,在CPU中,用来控制IO的指令。分为操作码(表示是IO指令),命令码(具体哪条指令),设备码(IO地址)
通道指令:通道自身的指令,指出数组的首地址、传送字数、操作命令,如IBM/370通道指令为64位
- I/O硬件
IO和主机之间的联系方式
- I/O 设备编址方式
- 统一编址,IO设备地址为内存中的一个,用取数,存数指令就可以完成CPU和IO的交流
- 单独编址,输入输出指令使用了作用的IO指令
- 设备选址
使用设备选择电路识别是否被选中
- 传送方式:串行/并行 也就是说和主机之间是并行还是串行
- 联络方式
- 立即响应
- 异步工作采用应答信号
- 同步工作采用同步时标
- I/O 设备与主机的连接方式
- 辐射式连接
- 总线连接:便于增删设备
外部设备通过接口和主机连接,接口可以给主机传送控制命令,数据缓存(外部输入时缓存到接口中,完成格式转换等工作),便于增删设备
I/O设备与主机信息传送的控制方式
程序查询方式
由CPU通过程序不断查询I/O设备是否已做好准备,从而控制I/O设备与主机交换信息
当程序调用IO,CPU一直查询设备的状态字,查看是否准备好了,当准备好了就从IO接口读出字到CPU中。
程序中断方式
IO设备在准备的过程中,CPU不工作,只有在交换数据的时候CPU才打断现行程序开始工作
DMA方式
主存和I/O设备之间有一条直接数据通路,当主存和I/O设备交换信息时,无需调用中断服务程序
周期挪用(周期窃取):利用CPU不访问存储器的那些周期来实现DMA操作,此时DMA可以使用总线而不用通知CPU也不会妨碍CPU的工作。
窃取的是总线的使用权,因为有一些指令被存放入cache中,所以只要执行的指令不需要访存就可以不中断CPU执行,CPU和IO并行工作
三种方式的CPU 工作效率比较
I/O设备与主机信息传送的控制方式
I/O设备
外部设备大致分三类
- 人机交互设备 :键盘、鼠标、打印机、显示器
- 计算机信息存储设备:磁盘、光盘、磁带
- 机-机通信设备:调制解调器等
输入设备
- 键盘:按键,判断哪个键按下,将此键翻译成 ASCII 码 (编码键盘法)
- 鼠标
- 机械式:金属球 电位器
- 光电式:光电转换器
- 触摸屏
输出设备
- 显示器
- 字符显示:字符发生器
- 图形显示:主观图像
- 图像显示:客观图像
- 打印机
- 击打式:点阵式(逐字、逐行)
- 非击打式:激光(逐页) 喷墨(逐字)
其他
- AD、D/A:模拟数字(数字模拟)转换器
- 终端:由键盘和显示器组成,完成显示控制与存储、键盘管理及通信控制
- 汉字处理:汉字输入、汉字存储、汉字输出
多媒体设备
I/O 接 口
为什么要接口
- 实现设备选择
- 实现数据缓冲,达到速度匹配目的
- 数据串-并格式转化
- 电平转化
- 传送控制命令
- 反映设备的状态(“忙”,“中断请求,“就绪”)
总线连接方式的 I/O接口电路
- 设备选择线
- 数据线
- 命令线
- 状态线
接口的功能和组成
功能 | 组成 |
选址功能 | 设备选择电路 |
传送命令的功能 | 命令寄存器、命令译码器 |
传送数据的功能 | 数据缓冲寄存器 |
反映设备状态的功能 | 设备状态标记 |
- 完成触发器D
- 工作触发器B
- 中断请求触发器INTR
- 屏蔽触发器MASK
完成触发器用于确定当前设备是否完成了工作;工作触发器用于发出工作命令;中断请求触发器用于对CPU发出中断;屏蔽触发器用于表示的是主机当前的工作比IO的中断工作重要,这时即使IO设备发出中断,接口也不会向主机提出。
I/O 接口的基本组成
接口类型
- 按数据传送方式分类
- 并行接口 Intel 8255
- 串行接口 Intel 8251
- 按功能选择的灵活性分类类,有:可编程和不可编程接口两种,前者的功能及操作方式可用程序改变或选择(如Intel8255、Intel8251);不可编程接口不能由程序来改变其功能,但可通过硬连线逻辑来实现不同的功能(Inter8212)。
- 按通用性分类有:通用接口( Intel 8255、 Intel 8251)和专用接口( Intel 8279、 Intel 8275),前者可供多种I/O设备使用;后者是为某类外设或某种用途专门设计的
- 按数据传送的控制方式分类,有中断接口( Intel 8259)和DMA接口( Intel 8257)
程序查询方式
程序查询流程
多个设备按照一定的优先级,查询各个接口
实现程序查询的过程
- 保存寄存器内容
- 设置计数值,控制传输数据量 每完成一个字的传输就-1
- 设置主存缓冲区地址
- 启动外设
- 询问IO是否准备好,否持续查询,是下一步
- 传送下一个数据
- 修改主存地址
- 修改计数器值,判断是否传输完,没有则循环到启动外设步骤
程序查询方式的接口电路
设备选择电路通过将自己的设备地址和地址线上的地址比较,这里主要是地址线
当被选中和被启动命令线
标记D为0,表示数据未准备好,标记B为1,表示设备被启动
CPU开始不断查询D信号
设备准备好数据,将数据输入DBR中
设备工作结束信号被送入
标记D被改为1,标记B为0
程序中断方式
中断的概念
I/O 中断的产生
程序中断方式的接口电路
- 配置中断请求触发器和中断屏蔽触发器
当只有D为正逻辑(IO完成工作),MASK为负逻辑(中断未被屏蔽),且当收到CPU的查询信号是,中断请求才发出
- 排队器
可以通过硬件和软件实现,硬件放在CPU或接口电路中(链式排队器)
紫色为低电平,黄色为高电平
当通过非门为低电平表示前面没有需要中断的接口,当intp的输出为高电平表示这个设备发出了中断。
- 中断向量地址形成部件
- 可以通过软件和硬件方式
- 硬件向量法,由硬件产生向量地址(中断向量地址),再有向量地址找到入口地址中断向量:中断服务程序的开始地址,同时还有一些准备工作,例如执行该中断时需要的一些非体系寄存器的值
只有一个输入,表示是哪个中断,输出为一个地址值
- 程序中断方式接口电路的基本组成
当一个设备发出中断经过排队后,设备排队器根据输入来的中断发出一个中断地址
I/O 中断处理过程
CPU 响应中断的条件和时间
- 条件
- 允许中断触发器 EINT = 1
- 用 开中断 指令将 EINT 置 “1”
- 用 关中断 指令将 EINT 置“ 0” 或硬件自动复位
- 时间
- 当D = 1(随机)且 MASK = 0 时
- 在每条指令执行阶段的结束前
- CPU发中断查询信号(将 INTR 置“1” )
I/O 中断处理过程
中断服务程序流程
中断服务程序的流程
- 保护现场:程序断点的保护(中断隐藏指令完成)和寄存器的保护(进栈指令)
- 中断服务: 对不同的I/O 设备具有不同内容的设备服务
- 恢复现场:出栈指令
- 中断返回:中断返回指令
单重中断和多重中断
- 单重中断: 不允许现行的中断服务程序被中断
- 多重中断: 可以允许现行的中断服务程序被更高级别的中断中断
单重中断和多重中断的服务程序流程
区别在于开中断的位置不同,单重中断不能再被中断,所以EINT开启时间晚
主程序和服务程序抢占CPU 示意图
DMA 方式
DMA方式的特点
DMA 和程序中断两种方式的数据通路
DMA 与主存交换数据的三种方式
- 停止 CPU 访问主存:控制简单,CPU 处于不工作状态或保持状态,未充分发挥 CPU 对主存的利用率
- 周期挪用(或周期窃取)
- CPU 此时不访存
- CPU 正在访存
- CPU 与 DMA 同时请求访存
DMA 访问主存有三种可能
此时 CPU 将总线控制权让给 DMA
- DMA 与 CPU 交替访问
DMA 接口的功能和组成
DMA 接口功能
- 向CPU申请DMA传送
- 处理总线控制权的转交
- 管理系统总线、控制数据传送
- 确定数据传送的首地址和长度,修正传送过程中的数据地址和长度
- DMA传送结束时,给出操作完成信号
DMA 接口组成
DMA 的工作过程
DMA传送过程
- 预处理
- 数据传送
- 后处理
- 校验送入主存的数是否正确
- 是否继续用DMA
- 测试传送过程是否正确,错则转诊断程序
- 由中断服务程序完成
DMA 接口与系统的连接方式
- 具有公共请求线的 DMA 请求
- 独立的 DMA 请求
DMA 方式与程序中断方式的比较
ㅤ | 中断方式 | DMA方式 |
数据传送 | 程序 | 硬件 |
响应时间 | 指令执行结束 | 存取周期结束 |
处理异常情况 | 能 | 不能 |
中断请求 | 传送数据 | 后处理 |
优先级 | 低 | 高 |
DMA 接口的类型
选择型
在物理上连接多个设备,在逻辑上只允许连接一个设备
多路型
在物理上连接多个设备,在逻辑上允许连接多个设备同时工作
多路型 DMA 接口的工作原理