计算机输入输出(I/O)系统:传输控制与总线架构
输入输出(I/O)系统是计算机与外部设备(如键盘、硬盘、显示器等)交互的核心桥梁,其性能直接影响整个系统的响应速度和效率。I/O 传输控制方式和总线架构是这一系统的两大核心组成,以下从工作原理到实际应用展开详细解析。
I/O 传输控制方式:从 CPU 主导到外设自主
I/O 传输控制方式的演进,核心是减少 CPU 对 I/O 操作的干预,实现 CPU 与外设的高效并行工作。根据 CPU 参与程度的不同,主要分为三类:
1. 程序控制方式:CPU 全程主导的简单交互
程序控制方式是最基础的 I/O 传输方式,完全由 CPU 通过指令控制数据传输,分为无条件传送和程序查询两种:
- 无条件传送:假设外设始终处于 “就绪” 状态(如简单的 LED 灯控制),CPU 直接读写数据,无需判断外设状态。
- 程序查询:CPU 通过循环查询外设的 “状态寄存器”,当外设准备好(如键盘按下)时才进行数据传输。
特点:
- 优势:硬件实现简单(只需少量接口电路),适用于低速、简单外设(如温度传感器)。
- 劣势:CPU 需全程等待或反复查询,严重占用 CPU 资源(例如,读取硬盘时 CPU 可能 99% 的时间处于空闲等待),导致系统效率极低。
- 本质:CPU 与外设串行工作,数据必须经 CPU 中转后存入内存。
2. 程序中断方式:外设主动 “通知” CPU
为解决程序控制方式的低效问题,中断方式引入了外设主动请求机制,流程如下:
- CPU 执行主程序时,外设独立准备数据(如硬盘读取数据到缓冲区)。
- 外设准备就绪后,通过 “中断请求线” 向 CPU 发送中断信号。
- CPU 暂停当前程序,保存现场(将程序计数器、寄存器等状态压入堆栈),找到中断服务程序入口(通过中断向量表定位)。
- 执行中断服务程序(如将外设数据读入内存),完成后恢复现场,返回主程序继续执行。
特点:
- 优势:CPU 与外设并行工作(CPU 执行主程序时,外设独立准备数据),仅在关键时刻(外设就绪)占用 CPU,大幅提升 CPU 利用率。
- 适用场景:中速外设(如键盘、打印机),单次传输数据量较小的场景。
- 局限:每次数据传输仍需 CPU 介入(如执行中断服务程序),不适合高速、大批量数据传输(如磁盘连续读写)。
3. DMA 方式:外设自主完成的批量传输
DMA(直接主存存取,Direct Memory Access)方式彻底打破了 “数据必须经 CPU 中转” 的限制,允许外设通过DMA 控制器(DMAC) 直接与内存交换数据,仅在传输开始和结束时需要 CPU 干预:
- 外设向 DMAC 发送 “DMA 请求”,说明传输方向(内存→外设或外设→内存)、起始地址和数据量。
- DMAC 向 CPU 申请 “总线控制权”,CPU 执行完当前总线周期后释放总线。
- DMAC 接管总线,直接控制外设与内存的数据传输(每传输一个数据块占用一个总线周期)。
- 传输完成后,DMAC 向 CPU 发送 “DMA 结束中断”,CPU 收回总线控制权,继续执行原程序。
特点:
- 优势:数据传输完全由 DMAC 控制,CPU 仅在开始和结束时参与,适合高速、大批量数据传输(如硬盘读写、视频采集)。
- 关键:外设与内存直接交互,无需 CPU 中转,传输效率比中断方式提升 10-100 倍。
- 硬件支持:需要专用的 DMA 控制器(如 PC 中的南桥芯片集成 DMAC 功能)。
三种方式的对比总结
| 控制方式 | CPU 参与程度 | 并行性 | 传输效率 | 适用场景 |
|---|---|---|---|---|
| 程序控制 | 全程主导(等待 / 查询) | 串行工作 | 最低 | 低速简单外设(如 LED、传感器) |
| 程序中断 | 仅中断处理时参与 | 并行工作 | 中等 | 中速外设(如键盘、打印机) |
| DMA | 仅开始 / 结束时参与 | 高度并行 | 最高 | 高速批量传输(如硬盘、显卡) |
总线:I/O 设备与主机的 “高速公路”
总线是连接 CPU、内存、外设的公共数据传输通道,负责协调各部件之间的信息交换。其核心特性是 “分时共享”:同一时刻仅允许一个设备发送数据,但允许多个设备接收。
总线的三大类型
根据传输信息的不同,总线分为:
- 数据总线(Data Bus):双向传输数据(如指令、运算结果),宽度(位数)与 CPU 字长一致(如 64 位 CPU 的数据总线通常为 64 位),直接决定数据传输速率。
- 地址总线(Address Bus):单向传输内存或外设的地址信息,宽度决定系统可寻址的最大空间(如 32 位地址总线支持最大 4GB 内存)。
- 控制总线(Control Bus):传输控制信号(如 “读 / 写”“中断请求”“时钟信号”),条数根据系统复杂度而定,负责协调各部件的工作时序。
常见总线标准
总线标准规定了总线的电气特性、机械接口和通信协议,常见的有:
- PCI 总线:
- 类型:并行内总线(连接 CPU、内存与内部外设,如显卡、声卡)。
- 特点:支持即插即用(PnP),数据传输率可达 133MB/s(32 位)或 266MB/s(64 位),曾广泛用于 PC 主板,现逐步被 PCI-E 替代。
- PCI-E(PCI Express):
- 类型:串行内总线(采用点对点传输,而非共享总线)。
- 特点:速度远超 PCI(如 PCI-E 4.0 x16 的带宽达 32GB/s),支持热插拔,是当前主流(用于显卡、NVMe 固态硬盘等)。
- SCSI 总线:
- 类型:并行外总线(连接主机与外部高速外设)。
- 特点:支持多设备串联(最多 16 个),传输速率可达 640MB/s,适用于服务器中的硬盘阵列、扫描仪等。
- USB 总线:
- 类型:串行外总线(通用串行总线)。
- 特点:即插即用、热插拔,支持多设备(通过集线器扩展),USB 3.2 的传输速率达 20GB/s,广泛用于键盘、鼠标、移动硬盘等。