1.I/O接口的功能
- 设备选择
- 统一编址方式 I/O设备中的地址寄存器、数据寄存器、状态寄存器和内存单元一样看待
- 独立编址方式 I/O设备有专门的I/O指令组
- 数据传送 外设和总线之间的数据缓冲寄存器
- 外设状态信息
- 传送命令 接收来自CPU的控制信息
2.I/O接口与外设之间数据传送(速度分级)
I/O接口与CPU的速度大致相当,高速CPU和速度参差不齐的外设通信:
-
无条件传送(速度极慢或简单的外设)
- 如机械开关、二极管等
- CPU可以认为设备一直准备就绪,直接接收或发送数据
-
异步传送方式(应答)(慢速或中速设备)
-
同步传送方式(高速设备)
3.I/O接口与CPU之间的数据传送
-
无条件传送
- 在外设与接口采用无条件传送时,接口和CPU才能采用无条件传送
- 输出采用锁存器,输入采用三态门与数据总线相连
-
程序查询方式
- 程序指令一般有如下功能:
- 执行过程:
- 请求I/O接口
- 读入接口状态字
- 如果就绪则进行数据交换
- 限制:
- 程序查询期间不能做其他工作,特别是多个设备轮询时,处理时间浪费,CPU工作效率低
- 若外设要求的CPU服务时间间隔小于一个询问周期,则可能造成数据丢失
-
程序中断方式
- 中断机制:
- 在当前程序结束后转入公操作之后才进行中断程序
- 需要保护现场
- 需要设置中断屏蔽(开中断和关中断)
- 中断是硬件和软件结合起来完成的
- 机器内部原因的中断叫做内中断,也叫异常;外部设备请求的中断叫做外中断
- 基本I/O接口:
- 准备就绪触发器(RD)
- 允许中断触发器(EI)
- 中断请求触发器(IR)
- 中断屏蔽触发器(IM)
- 中断地址的获取:
- 中断向量表(IVT) CPU响应中断时,由硬件产生向量地址,指出中断源设备的中断服务程序入口
- 公共的中断服务程序
- 单级中断:与总线仲裁中的链式总线仲裁相同,离CPU越近,优先级越高
- 多级中断:采用了独立请求和链式查询方式结合的方式
-
DMA方式(直接存储器访问)
- DMA控制器从CPU完全接管对总线的控制,数据交换不经过CPU干预
- 传送过程:
- 预处理 CPU给出命令,传送起始地址和交换数据字个数
- 给出当前传送数的主存地址,统计传送数据的个数判断传送是否结束
- 开辟专用缓存器,接收或提供传送的数据
- 后处理 CPU执行中断程序,检查传送数据是否正确
- 传送方式:
- 成组连续传送:控制简单,在DMA控制器访问内存期间,相当一部分内存工作周期是空闲的
- 周期挪用:I/O设备访问内存时,CPU周期向后顺延,一般适用于I/O设备读写周期大于内存存储周期的情况
- 透明DMA:CPU和DMA交替访问内存,一个CPU周期可以分为两部分,一部分DMA访问内存,另一部分CPU访问内存
- DMA控制器
- 内存地址计数器 存放内存中要交换数据的地址
- 字计数器 记录传送数据块的长度
- 数据缓冲寄存器
- DMA请求标志
- 控制/状态逻辑
- 中断机构 报告数据传送结束
- 选择型和多路型DMA控制器:
- 选择型:DMA控制器选择一个设备,服务完成后再为其它设备服务
- 多路型:逻辑上也允许多个设备同时工作,以字节交叉方式进行数据传送 适合多个慢速设备
-
通道和输入/输出处理器
- 代替CPU进行外设控制的独立部件,可以自己取出CPU中的指令进行执行,可以同时控制多个设备,报告给CPU
|