0 I/O数据传送控制方式
- 无条件传送方式
- 程序查询方式
- 中断传送方式
- 直接存储器存取方式(DMA)
- I/O 通道方式
- I/O 处理机方式
本章只介绍,前四种
总结:计算机的发展就是 发现问题 -> 解决问题 -> 产生问题,如此反复的过程
1 程序控制方式
1.1 无条件传送方式
- 工作过程
- 输入时输入设备数据准备好
- 输出时输出设备空闲
- 所带来的问题:不知道外设状态,可能造成传送错误
1.2 条件传送方式(程序查询方式)
- 工作过程
- CPU传送数据前,主动查询是否就绪
- 没有就绪,继续查询
- 是一种 同步 方式
- 所带来的问题:每传送一个数据,CPU 花费大量时间等待,所以 CPU 利用率低
1.3 中断传送方式
- 工作过程: 外设准备就绪,主动向 CPU 发送请求中断
- 是一种 异步 方式
- 所带来的的问题:保护断点,恢复现场,消耗大量资源
2 直接存器存取方式(DMA)
2.1 介绍
- DMA 控制器实现内存与外设间的直接快速传送(用前面的方式,需要从外设读入内存再读入寄存器,然后再从寄存器写入内存再输出给外设。内存与内存的数据交互并不能直接交换,而需要先写入 CPU 的寄存器)
- 适合传送大批量数据
- DMA 传送期间,CPU 让出总线控制权(同一时刻,系统总线只能接受一个部件控制)
- DMA 传送包括
- DMA 读传送:存储器 -> I/O 设备
- DMA 写传送:I/O 设备 -> 存储器
- 存储单元传送:存储器 -> 存储器
2.2 工作过程
- I/O 设备向 DMC 控制器发送请求
- DMA 控制器向 CPU 发送请求,请求接管系统总线控制
- CPU 执行完当前指令的当前指令周期后,向 DMA 控制器发出响应信号
- DMA 控制器接管控制权,CPU 处于等待状态,监视 DMA 总线请求信号
- DMA 控制器向 I/O 设备发出响应
- 当传输完毕后,DMA 控制器将 DMA 总线请求信号置为无效
- CPU 检测到无效后,恢复对系统总线控制,恢复到 DMA 控制器中断前的现场
2.3 控制器的工作状态
- 主动态:DMA 控制器获得总线控制权之后,取代 CPU 成为系统的主控者
- 被动态:DMA 控制器获得总线控制权之前,受到CPU的控制
2.4 缓存一致性问题
- 缓存一致性问题的发生
- DMA 是直接对外设(外存也是外设)进行控制,若此时外存存储的值已经在CPU缓存中更新,却还没来得及写入外存
- DMA 外设直接写入外存,但此时 CPU 内部缓存没有及时更新
- 解决方案
- 缓存同调系统(硬件方式):通过硬件,当发生更新时,发送一个信号告诉 CPU 及时更新
- 非缓存同调系统(软件方式):当使用缓存时,操作系统禁止 DMA 发生