4种IO控制方式
计算机系统中,I/O(输入/输出)控制方式主要经历了从 CPU 高度干预到 CPU 逐渐解脱的演进过程。目前主要有以下四种方式:
1. 程序直接控制方式 (Programmed I/O)
也称为程序轮询方式。这是最原始的一种控制方式。
- 工作原理:CPU 向设备发送指令后,会通过“忙等”(Busy-waiting)不断查询设备状态寄存器中的标志位。只有当设备准备好,CPU 才进行数据读写。
- 特点:
- 优点:实现简单,不需要额外的硬件支持。
- 缺点:CPU 必须全程等待,造成资源极大浪费,无法处理并发任务。 [1, 2, 3, 4]
2. 中断驱动方式 (Interrupt-Driven I/O)
为了解决 CPU 的“无用等待”问题,引入了中断机制。
- 工作原理:CPU 发出 I/O 命令后立即去执行其他程序。当 I/O 设备准备好数据或完成操作时,向 CPU 发出中断信号。CPU 暂停当前工作,转去处理 I/O 传输。
- 特点:
- 优点:提高了 CPU 的利用率,实现了 CPU 与设备的并行工作。
- 缺点:对于高速设备或大批量数据,频繁的中断处理仍会显著占用 CPU 时间。 [3, 4, 5, 6]
3. 直接内存存取方式 (DMA)
这是现代高性能系统中最常用的方式。
- 工作原理:引入专用的 DMA 控制器。CPU 仅需告诉控制器“从哪读、读多少、存到内存哪里”,随后由 DMA 控制器接管总线,直接在设备与内存之间搬运数据(每次传输一个数据块)。只有在数据块传输完成后,才会发中断通知 CPU。
- 特点:
- 数据单位:以“块”为单位进行传输,而非字节。
- 优点:大大减少了 CPU 的干预,仅在开始和结束时介入。 [3, 5, 7]
4. I/O 通道控制方式 (I/O Channel)
DMA 的进一步升级版,相当于给 I/O 系统配了一个“小 CPU”。
- 工作原理:通道是一个专门负责 I/O 操作的处理器,拥有自己的指令集(通道程序)。CPU 只需启动通道,通道会自动执行程序,管理多个设备与内存的数据交换。
- 特点:
- 优点:CPU 的干预程度降到最低,能有效管理复杂的 I/O 网络,支持多设备并行处理。 [3, 8, 9]
四种方式对比总结
| 特性 | 程序直接控制 | 中断驱动 | DMA 方式 | 通道方式 |
|---|---|---|---|---|
| CPU 干预 | 极高(全程等待) | 较高(每个字/字节中断) | 低(每块数据中断) | 极低(完成一组任务中断) |
| 传输单位 | 字/字节 | 字/字节 | 数据块 | 多个数据块 |
| 控制主体 | CPU | CPU | DMA 控制器 | 通道处理器 |
[1] https://zhuanlan.zhihu.com
[2] https://edu.51cto.com
[3] https://baike.baidu.com
[4] https://blog.csdn.net
[5] https://zhuanlan.zhihu.com
[6] https://bbs.huaweicloud.com
[7] https://juejin.cn
[8] https://cloud.tencent.com
[9] https://developer.aliyun.com
