目录
一、输入输出系统的历史概况
1.1 早期阶段
I/O设备与主存交换信息都必须通过CPU。
示意图:
1.2 接口模块和DMA阶段
计算机系统采用了总线结构, 接口模块中设有数据通路和控制通路, 可起到缓冲作用, 还能满足中断请求处理的要求, 实现了CPU和I/O设备并行工作, 但CPU要响应中断请求, 还不能真正做到并行工作。
直接存储器(Direct Memory Access, DMA) 技术使I/O设备与主存之间有一条直接数据通路, 可以直接与主存交换信息。
接口示意图:
I/O接口的基本组成:
DMA示意图:
1.3 具有通道结构的阶段
通道用于解决众多DMA接口同时访问主存的冲突等问题, 通道可以视为一种具有特殊功能的处理器, 用来负责管理I/O设备以及实现主存与I/O设备之间交换信息的部件。
一旦CPU启动I/O设备的指令, 就由通道来代替CPU对I/O设备的管理, CPU不用直接参与管理, 提高CPU资源利用率。
通道示意图:
1.4 具有I/O处理机的阶段
基本独立于主机工作, 即可完成I/O通道功能, 又可完成码字变换, 格式处理, 数据库检错, 纠错等操作。
二、I/O设备与主机相连
2.1 I/O设备编址方式
2.1.1 I/O独立编址
给所有设备控制器中的每一个寄存器分配一个唯一的I/O端口地址。
特点: 需要专门的输入输出指令, 但易区分是对内存访问还是对I/O设备访问
2.1.2 内存映像编址(统一编址)
把设备控制器中的寄存器都映射为一个内存地址。
独立编址与内存映像编址区别图:
特点: 编程方便, 无需专门I/O指令, 但每一次都要判断访问的是内存还是I/O。
2.1.3 混合编址
把以上两种情况结合起来, 对于设备控制器中的寄存器, 采用独立编址, 对于设备缓冲区, 采用内存映像编址。
2.2 设备寻址
由I/O指令的设备码字段直接指出设备的设备号。
I/O指令的一般格式图:
2.3 传送方式
1) 并行传送: 传送速度较快, 要求数据线多
2) 串行传送: 速度慢, 只需要一根数据线和地址线, 距离远时串行传送较为合理
2.4 联系方式
1) 立即响应方式: 对工作速度特别缓慢的I/O设备, 与CPU联系时, 通常处于某种等待状态, 只要CPU指令一到, 便立即响应。
2) 应答信号方式: 适用I/O设备与主机工作速度不匹配, 完成自身任务后才准备交换信息。
3) 同步联络: 外部数据以一定速率传送至接口, CPU也必须以一定速率接收每一位。
三、对I/O设备的控制方式
3.1 程序查询方式
每一次I/O操作都循环地区检测设备的当前状态。即繁忙等待方式, 一直占用CPU。
流程图:
3.2 程序中断方式
3.2.1 中断概述
计算机在执行程序过程中, 当出现异常情况或特殊请求时, 计算机停止现行程序的运行, 转向这些异常情况或特殊请求处理, 处理结束后再返回到现行程序的间断处, 继续执行原程序。
I/O中断示例:
主程序和服务程序抢占CPU示意图:
3.1.2 中断服务程序流程
1) 保护现场: 保存程序的断点 (由中断隐指令完成) , 保存通用寄存器和状态寄存器的内容 (由中断服务程序完成) 。
2) 中断服务: 执行中断请求源
3) 恢复现场: 恢复中断前的 "现场" 状态。
3) 中断返回: 回到原程序的断点处。
流程图:
3.2.3 程序中断方式接口电路的基本组成
中断电路图:
排队器:
当多个中断源同时向CPU提出请求时, 需根据优先级高低, 对所有中断源进行排队。
如下图, 初始状态时, INTR1`、INTR2` 等都是高电平, 某个中断源提出请求后, 后序优先级低的 INTPi` 变为低电平。
示意图:
中断向量地址形成部件 (设备编码器) :
通过向量地址来寻找设备的中断服务程序的入口地址, 其位数与计算机可以处理中断源的个数有关。
示意图:
程序中断方式接口电路的基本组成图:
3.3 DMA方式
主存与I/O设备交换信息时, 无需调用中断服务程序, DMA可直接访问内存。当出现DMA与CPU访问主存冲突时, 可采用以下三种方法:
3.3.1 停止CPU访问主存
由DMA接口向CPU发一个停止信号, 让出总线使用权。这种方式控制简单, 缺点是CPU基本处于不工作状态或保持原状态。
示意图:
3.3.2 周期挪用
DMA与CPU同时访问主存时, CPU总是将总线占有权让给DMA (I/O不立即访问主存可以丢失数据) , 一般为一个存取周期, DMA的这种占有成为周期挪用或周期窃取。
每挪用一个主存周期都需要申请、建立和归还总线控制权。
示意图:
3.3.3 DMA与CPU交替访问
适用于CPU的工作周期比主存存取周期长的情况。 这种情况不需要总线使用权的申请、建立和归还。
示意图:
3.3.4 DMA接口基本组成
原理图:
AR: 主存地址寄存器, 用于存放主存中需要交换数据的首地址, 每交换一次数据, AR+1
WC: 字计数器, 记录传送数据的总字数, 通常使用补码形式, 计数器为0时, 表示数据传送完成。
BR: 数据缓存寄存器, 用于暂存每次传送的数据。
DAR: 设备地址寄存器, 存放I/O设备的设备码或表示设备信息存储区的寻址信息。如磁盘数据所在的区号、盘面号和柱面号。
DREQ: I/O设备向DMA接口提出申请。
HRQ: 向CPU发出总线使用权的请求信号。
HLDA: CPU发出的响应信号。
DACK: 通知I/O设备。
3.3.5 DMA接口与系统的连接方式
主要有以下两种, 与总线判优类似。
具有公共请求线的DMA: 若干个DMA接口通过一条公用的DMA请求线先CPU申请总线控制权, 采用链式查询, 最前面的DMA优先级最高。
示意图:
独立的DMA: 每个DMA接口个有一对DMA请求线和响应线, 由CPU的优先级判别机构裁决响应。
示意图:
3.3.6 DMA接口类型
选择性DMA接口: 物理上连接多个I/O设备, 逻辑上只允许连接一个设备, 适用于数据传输率很高的设备。
逻辑框图:
多路型DMA接口: 物理上可以连接多个设备, 逻辑上也运行多个设备同时工作, 每个与DMA连接的I/O设备都有一套寄存器存放各自参数, 各个I/O设备采用字节交叉的方式与DMA接口进行数据传送,适用于同时为多个数据传输率低的I/O设备服务。
逻辑框图: