第五章、输入输出系统
5.1、概述
5.1.1、输入输出系统的发展概况
1、早期
1、分散连接
2、CPU和I/O设备 串行工作程序程序方式
2、接口模块和DMA阶段
1、总线连接
2、CPU和I/O设备并行工作(中断方式、DMA方式)
3、具有通道结构的阶段
4、具有I/O处理机的阶段
5.1.2、输入输出系统的组成
1、I/O软件
1、I/O指令
1、是CPU指令的一部分
2、格式

2、通道指令
1、通道可以运行自身的通道指令
2、广义的I/O指令
3、指出数组的首地址、传送字数、操作命令
4、通道指令长、还可以有子指令,可以连接多个操作器
5、如IBM/370通道指令为64位
2、I/O硬件
1、设备 I/O接口
2、设备 设备控制器 通道
5.1.3、I/O设备与主机的联系方式
1、I/O设备的编址方式
1、统一编址
1、用取数、存数指令对IO设备进行访问
2、不统一编址(独立编址)
1、内存地址空间之外,设置一个地址空间
2、有专门的IO指令
2、设备选址
1、用设备选择电路识别是否被选中
3、传送方式
1、串行
2、并行
4、联络方式
1、立即响应
1、数量少状态少
2、直接进行显示
3、例如LED灯
2、异步工作采用应答信号
1、并行传输
2、IO接口和IO设备要有多条数据线,组成类似总线,组成数据的定型输出
3、需要准备应答信号
4、图例

5、串行传输

3、同步工作采用同步时标
1、需要一个定宽定距的指标
5.1.4、I/O设备与主机的连接方式
1、辐射式连接(分散连接)
1、每个外设都需要和主机配置一套控制电路和一组信号线
2、会造成删除和增加外部设备麻烦
3、不便于增删设备,移植性差

2、总线连接
1、主机中的数据可以在接口中进行缓存
2、便于增删设备,移植性好
5.1.5、IO设备与主机信息传送的控制方式
1、程序查询方式
1、CPU和外设采用串行
2、CPU处于循环等待状态,效率低
3、图示

2、程序中断方式
1、CPU实现和IO设备的异时操作
2、CPU一定程度上解放了IO工作
3、外部设备工作时,CPU不进行状态检测,只有IO准备好了,发送一个中断请求,CPU才会放下手中的工作,进行IO工作
4、图例

5、CPU没有踏步等待状态
6、CPU和IO可以部分进行并行操作
7、CPU放下手中工作,需要记录标记,便于中断工作完成后继续进行,但是会损耗CPU的部分内存和效率
1、程序中断方式流程图

3、DMA方式
1、把CPU从IO设备更分离出来
2、主存和IO之间有一条直接数据通道
3、不中断现行程序
3、周期挪用(窃取)
4、占用总线的使用权,期间CPU不能对主存进行访问
5、图示

4、对三中方式的CPU工作效率比较
1、图示

1、随着时代的发展,IO设备会更加自由
5.2、外部设备
5.2.1、概述
1、图示

2、外部设备大致分三类
1、内容

5.2.2、输入设备
1、键盘
1、按键
2、判断哪个键按下
3、将此键翻译成ASCI码(编码键盘法)
2、鼠标
1、机械式:金属球,电位器
2、光电式:光电转回去
3、触摸屏
5.2.3、输出设备
1、显示器
1、字符显示
1、字符发生器,将ASCII转换成字列
2、图形显示
1、转换显示主观图像(点线面构成的)
3、图像显示
1、客观图像(照片、视频)
2、打印机
1、打击式
1、点阵式(逐字逐行打印)
2、用彩纸针打印
3、例如出租车打印条
2、非打击式
1、激光(逐页)喷墨(逐行)
5.2.4、其它
1、A/D、D/A 模拟/数字(数字/模拟)转换器
1、A:模拟信号
2、D:数字信号
2、终端
1、由键盘和显示器组成
2、完全显示控制与存储、键盘管理及通信控制
3、汉字处理
1、汉字输入、汉字存储、汉字输出
5.2.5、多媒体设备
1、什么是多媒体
2、多媒体计算机的关键技术
5.3、IO接口
5.3.1、概述
1、为什么要设置接口?(功能)
1、实现设备的选择
2、实现数据缓冲达到速度匹配
3、实现数据串行—并格式转换
4、实现电平转换
5、传送控制命令
6、反映设备的状态(“忙”、“就绪”、“中断请求”)
5.3.2、接口的功能和组成
1、总线连接方式的I/O接口电路

1、设备数据线
1、本次信息交换的设备码、端口号,设备的地址或端口的地址,传输给IO接口
2、是一条单向线
2、数据线
1、完成数据的输入和输出
2、条数和数据传输类型有关
3、是双向线
3、命令线
1、通过命令输入到IO系统中
2、缓存译码后可以控制设备的线
4、状态线
1、IO接口、IO总线、再送到主机化总
2、功能和组成

3、I/O接口的基本组成

5.3.3、接口类型
1、按数据传送方式分类
1、并行接口:Intel8255
2、串行接口:Intel8251
2、按功能选择的灵活性分类
1、可编程接口:Intel8255、Intel8251
2、不可编程接口:Intel8212
3、按通用性分类
1、通用接口:Intel8255
2、专用接口:Intel8275
4、按数据传送的控制方式分类
1、中断方式:Intel8259
2、DMA接口:Intel8257
5.4、程序查询方式
5.4.1、程序查询方式的流程
1、程序查询流程
1、查询流程
1、单个设备(图)

2、多个设备(图)

2、程序流程
1、设置计数值:为了控制传输内容大小
2、用这段程序流程来进行传输

5.4.2、程序查询方式的接口电路
1、以输入为例
1、D为1之前,CPU查询都在不断重复查询,直到D为1,CPU就可以通过数据线进行读入数据

2.差个输出流程图
5.5、程序中断方式
5.5.1、中断的概念
1、概念
1、CPU执行任务过程中,遇到意外事件,CPU需要中断当前任务,去处理意外事件
2、图解

5.5.2、I/O中断的产生
1、以打印机为例
1、图解

1、CPU与打印机部分并行工作
5.5.3、程序中断方式的接口电路
1、配置中断请求触发器和中断屏蔽触发器
1、图解

2、排队器
1、硬件排队:在CPU内、或接口电路中(链式排队器)
2、软件排队:比较优先级(第八章讲)
3、链式排队器图解

4、非门:输入0,输出则为1
4、与门:输入a0,b0,则输出c1,与之相反
3、中断向量地址形成部件

1、中断号:中断类型码,每个中断类型码对应不同的中断
2、中断向量:中断服务程序的入口地址(包括段地址、偏移值、和一些中断的状态信息)
3、向量地址:中断向量保存内存单元的地址
4、入口地址;有中断向量形成
5、图解

6、向量地址是由总线和数据线输送到CPU中
7、图解

4、程序中断方式接口电路的基本组成

5.5.4、I/O中断处理过程
1、CPU响应中断的条件和时间
1、条件
1、允许中断触发器:EINT=1
2、用开中断指令将EINT设置为“1”
3、用关中断指令将EINT设置为“0”或硬件自动复位
2、时间
1、当D=1(随机)、且Mask=0时
2、在每条指令执行阶段的结束前
3、CPU发中断查询信号(将INTR置位“1”)
2、I/O中断处理过程
1、以输出为例

1、主机通过地址线,发送所需的IIO设备让设备选择电路查询,如果有,就进入①启动命令1:1与门,结果是1
2、此时D和B分别是0:1,B是1就开始②启动设备,开始传输数据③到DBR缓存中,传输完成后就开始④设备工作结束,通过非门,此时D和B分贝是1:0,此时开始INTR(中断请求触发器)⑤中断开始已查询,此时INTR状态为1,开始发送中断请求⑥,继续进入排队器中,经过排队器的搏杀,只有一个状态为1的中断请求,CPU工作期间发现有中断请求⑦就开始中断,通过设备编码器,将中断向量通过地址线发送给CPU
5.5.5、中断服务程序流程
1、中断服务程序流程
1、保护现场
1、程序断点的保护 中断隐指令完成:本身不是指令是系统内部隐藏自动完成的内容
2、寄存器内容的保护 进栈指令
2、中断服务
1、 对不同的I/O设备具有不同内容的设备服务
3、恢复现场
1、出栈指令
4、中断返回
1、中断返回指令
2、单重中断和多重中断
1、单重中断
1、不允许中断现行的中断服务程序
2、多重中断
1、允许级别更高的中断源,中断现行的中断服务程序
3、单重中断和多重中断的服务程序流程
1、图示

1、在多重中断服务程序中设备服务是可以开启级别更高级的中断
4、主程序和访问程序抢占CPU示意图
1、内容

5.6、DMA方式
5.6.1、DMA方式的特点
1、DMA和程序中断两种方式的数据通路

2、DMA与主存交换数据的三种方式
1、停止CPU访问主存
1、控制简单
2、CPU处于不工作状态或保持状态
3、CPU放弃总线和访问主存状态
4、并不能充分发挥CPU对主存的利用率
5、图示

2、周期挪用(周期窃取)
1、周期是指访存周期
2、DMA访问主存有三种可能

3、图示

3、DMA与CPU交替访问
1、CPU工作周期

2、图示

5.6.2、DMA接口的功能和组成
1、DMA接口功能
1、向CPU申请DMA传送
2、处理总线控制权的转交
3、管理系统总线、控制数据传送
4、确定数据传送的首地址和长度,修正传送过程中的数据地址和长度
5、DMA传送结束时,给出操作完成信号
2、DMA接口组成
1、AR:地址寄存器
2、WC:计数器(用于计算数据的大小)
3、BR:数据缓冲器.
4、DAR:设备地址寄存器
5、DREQ:设备请求
6、DACK:应答信号
7、HRQ:总线请求信号
8、HLDA:应答信号

9、①AR发送地址请求给主存 ②AR、WC、DRA、BR通过数据线传送所需的内容给CPU;IO设备将传输数据发给BR的同时,向DMA逻辑控制器发送请求信号,DMA逻辑控制器给CPU发送总线请求信号,CPU通过HLDA发送响应信号,DMA逻辑控制器通过DACK响应设备;当WC计数器溢出时,会发送溢出信号给中断机构,中断机构向CPU发送中断信号
5.6.3、DMA的工作过程
1、DMA传送过程
预处理、数据传送、后处理
1、预处理
1、数据传输之前所需要做的一些准备
2、例如通过几条输入输出的指令预置
3、通知DMA控制逻辑传送方向(入/出)
4、设备地址—DMA的DAR
5、主存地址—DMA的AR
6、传送数据个数—DMA的WC
2、DMA传送过程示意图

3、数据传送过程(输入)

4、数据传送过程(输出)

5、后处理
1、校验送入主存的数是否正确
2、是否继续用DMA
3、测试传送过程是否正确,错则转诊断程序
4、由中断访问程序完成
2、DMA接口与系统的连接方式
1、具有公共请求线的DMA请求

2、独立的DMA请求

3、DMA方式与程序中断方式的比较
1、比较图

5.6.4、DMA接口的类型
1、选择性
1、在物理上连接多个设备
2、在逻辑上只允许连接一个设备
3、电路图

2、多路型
1、在物理上允许连接件多个设备
2、在逻辑删允许连接多个设备同时工作
3、图示

?3、多路型DMA接口的工作原理
?1、原理图