一、 概述
1. 输入输出系统的发展概况
- (早期)分散连接:外设与主机采用程序查询方式,CPU和I/O设备串行工作
- (接口模块和DMA阶段)总线连接:CPU和I/O设备并行工作,信息交换方式变为中断方式、DMA方式
- 具有通道结构的阶段:通道有自己的指令系统,执行通道程序,控制连接在通道上的I/O设备,与主机进行信息传输
- 具有I/O处理机的阶段
2. 输入输出系统的组成
- I/O软件
· I/O指令:cpu指令的一部分,格式:操作码+命令码+设备码
· 通道指令:通道自身的指令,指出数组的首地址、传送字数、操作命令 - I/O硬件
· 设备 I/O接口
· 设备 设备控制器 通道
3. I/O设备与主机的联系方式
- I/O设备编址方式
· 统一编制:将I/O设备的地址看作内存地址的一部分;CPU利用取数、存数指令控制I/O设备;CPU系统指令集相对简单,适用于内存系统编址空间大
· 不统一编址:内存空间地址外,设置外部设备编址;有专门的I/O指令 - 设备选址:用设备选择电路识别是否被选中
- 传送方式
· 串行
· 并行 - 联络方式
- 立即响应
- 异步工作采用应答信号
- 同步工作采用同步时标 - I/O设备与主机的连接方式
· 辐射式连接,即分散连接:每台设备都配有一套控制线路和一组信号线
· 总线连接:便于增删设备
4. I/O设备与主机信息传送的控制方式
1→3:I/O系统的自治能力越来越强
- 程序查询方式:串行方式
- 程序中断方式:部分并行方式
- DMA(直接存储器访问)方式
· 主存和I/O之间有一条直接数据通道
· 不中断现行程序
· cpu和I/O并行工作,周期挪用(周期盗取) - 三种方式工作效率比较
二、 外部设备
1. 概述
其中,外部设备大致分为三类:
- 人机交互设备:键盘、鼠标、打印机、显示器
- 计算机信息存储设备:磁盘、光盘、磁带
- 机—机通讯设备:调制解调器等
2. 输入设备
- 键盘:根据ASCII判断键
- 鼠标:机械式、光电式
- 触摸屏
3. 输出设备
- 显示器
· 字符显示:字符发生器
· 图形显示:主观图像
· 图像显示:客观图像 - 打印机:击打式(点阵式)、非击打式(激光、喷墨)
4. 其他
- A/D、D/A: 模拟/数字(数字/模拟)转换器
- 终端:由显示器和键盘组成,完成显示控制与存储、键盘管理及通信控制
- 汉字(其他文字)处理:输入、存储、输出
5. 多媒体设备
- 定义:通过计算机对文字、数据、图形、图像、动画、声音等多种媒体信息进行综合处理和管理,使用户可以通过多种感官与计算机进行实时信息交互的技术。
- 关键技术:数据解压缩、编码技术、专用芯片、语音图片识别等
三、 I/O接口
1. 概述
为什么要设置接口?
- 实现设备的选择
- 实现数据缓冲达到速度匹配
- 实现数据串—并格式转换
- 实现电平转换
- 传送控制命令
- 反应设备的状态(忙、就绪、中断请求)
2. 接口的功能和组成
- 总线连接方式的I/O接口电路
· 总线类型:设备选择线(单向)、数据线(双向)、命令线(单向)、状态线(单向)
· 示意图
- 功能与组成
· 选址功能(设备选择电路)、传送命令(命令寄存器、命令译码器+节拍)、传送数据(数据缓冲寄存器)、反应设备状态(设备状态标记)
· 完成触发器D、工作触发器B、中断请求触发器INTR、评比触发器MASK - I/O接口的基本组成
3. 接口类型
- 按数据传送方式分类:并行接口、串行接口
- 按功能选择的灵活性分类:可编程接口、不可编程接口
- 按通用性分类:通用接口、专用接口
- 按数据传送的控制方式分类:中断接口、DMA接口(程序查询方式不需要接口)
四、 程序查询方式
1. 程序查询方式的流程
单个设备
- 检查状态标记:测试指令
- 转备就绪?:转移(分支)指令
- 交换数据:传送(输入输出,访存)指令
多个设备
- 需要通过程序查询和CPU、内存进行数据交换
- 优先级越高的设备被查询到的时间最早
程序流程
- 首先需要保存寄存器内容
- 设置计数值(阈值n或-n),控制传输的数据量
- 设置主存缓冲区首址
- 启动外设
- 准备好?(否,原地踏步)
- 传送一个数据
- 修改主存地址
- 修改计数值
- 传送完?(否,返回4)
10.结束I/O传送
2. 程序查询方式的接口电路
五、 程序中断方式
1. 中断的概念
定义:CPU在执行程序的过程中,若发生意外事件(或特殊事件),CPU需要中断当前程序的处理,转而处理该异常事件,通过执行中断服务程序的方式处理,处理结束后返回原程序继续执行的过程。
2. I/O中断的产生
- 中断源:引起中断的原因,或者能够发出中断请求信号的来源。
- CPU与外设部分并行工作
3. 程序中断方式的接口电路
配置中断请求触发器和中断屏蔽触发器
排队器
- 硬件:链式排队器(在CPU内或在接口电路中)
- 软件(第8章)
中断向量地址形成部件
· 中断号:被中断的编号
· 中断向量:中断服务程序的入口地址,程序状态字
程序中断方式接口电路的基本组成
4. I/O中断处理过程
- CPU响应中断的条件
· 允许中断触发器ENIT=1
· 用开中断指令将ENIT置为1
· 用关中断指令将ENIT置为0或硬件自动复位 - CPU响应中断的时间
· 当D=1(随机)且MASK=0时
· 在每条指令执行阶段的结束前,CPU发中断请求(将ENIT置为1)
5. 中断服务程序流程
- 中断服务程序的流程
① 保护现场
- 程序断点的保护:中断隐指令(硬件)完成
- 寄存器内容的保护:进栈指令
② 中断服务:对不同的I/O设备具有不同的设备服务
③ 恢复现场:出栈指令/内存单元的指定位置/寄存器
④ 中断返回 - 单重中断和多重中断
· 单重中断:不允许中断现行的中断服务程序
· 多重中断:允许级别更高的中断源,中断现行的中断服务程序(中断的嵌套) - 单重中断和多重中断的服务程序流程
- 主程序和服务程序抢占CPU示意图
六、 DMA(直接存储器访问)方式
1. DMA方式的特点
DMA和程序中断两种方式的数据通路
DMA与主存交换数据的三种方式
-
停止CPU访问主存
· 控制简单,适合大量数据传输
· CPU处于不工作状态,DMA工作时仍然占用主存
· 未充分发挥CPU对主存的利用率
-
周期挪用(周期窃取)
· 利用CPU不访问存储器的一个或几个周期来实现DMA操作,此时DMA可以使用总线而不用通知CPU也不会妨碍CPU的工作。
· DMA访存可能:CPU不访存,CPU正在访存(DMA等待),CPU与DMA同时请求访存(CPU将总线控制权让给DMA)
-
DMA与CPU交替访问
· 实用性弱,结构简单
· CPU工作周期(C1专供DMA访问,C2专供CPU访问)
· 不需要申请建立和归还总线的使用权
2. DMA接口的功能和组成
- DMA接口功能
· 向CPU申请DMA传送
· 处理总线控制权的转交
· 管理系统总线、控制数据传送(方向等)
· 确定数据传送的首地址和长度,修正传送过程中的数据地址和长度(确定数据块传送是否结束)
· DMA传送结束时,给出操作完成信号 - DMA接口组成
· AR:地址寄存器
· WC:字数计数器(传输数据量计数)
· BR:数据暂存区
· DAR:设备地址寄存器(设备电路选择,保存柱面号、磁道号、扇区号)
· DREQ:设备请求,DACK:
3. DMA的工作过程
DMA传送过程:预处理、数据传送、后处理
- 预处理(通过几条输入输出指令预置如下信息)
· 通知DMA控制逻辑传送方向
· 设备地址→DMA的DAR
· 主存地址→DMA的AR
· 传送字数→DMA的WC - DMA传送过程示意
3.数据传送过程
· 输入:设备→BR
· 输出:BR→设备
- 后处理(由中断服务程序完成)
· 校验送入主存的数是否正确
· 是否继续用DMA
· 测试传送过程是否正确,错则转诊断程序
DMA接口与系统的连接方式
- 具有公共请求线的DMA请求
- 独立的DMA请求
- DMA方式与中断方式比较
4. DMA接口的类型
- 选择线:在物理上连接多个设备;在逻辑上只允许连接一个设备。
- 多路型:在物理上连接多个设备;在逻辑上允许连接多个设备;但数据传输时只有一个设备与内存进行数据传输。
- 多路型DMA接口工作原理