0%

输入输出

计算机输入输出(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

为解决程序控制方式的低效问题,中断方式引入了外设主动请求机制,流程如下:

  1. CPU 执行主程序时,外设独立准备数据(如硬盘读取数据到缓冲区)。
  2. 外设准备就绪后,通过 “中断请求线” 向 CPU 发送中断信号。
  3. CPU 暂停当前程序,保存现场(将程序计数器、寄存器等状态压入堆栈),找到中断服务程序入口(通过中断向量表定位)。
  4. 执行中断服务程序(如将外设数据读入内存),完成后恢复现场,返回主程序继续执行。

特点

  • 优势:CPU 与外设并行工作(CPU 执行主程序时,外设独立准备数据),仅在关键时刻(外设就绪)占用 CPU,大幅提升 CPU 利用率。
  • 适用场景:中速外设(如键盘、打印机),单次传输数据量较小的场景。
  • 局限:每次数据传输仍需 CPU 介入(如执行中断服务程序),不适合高速、大批量数据传输(如磁盘连续读写)。

3. DMA 方式:外设自主完成的批量传输

DMA(直接主存存取,Direct Memory Access)方式彻底打破了 “数据必须经 CPU 中转” 的限制,允许外设通过DMA 控制器(DMAC) 直接与内存交换数据,仅在传输开始和结束时需要 CPU 干预:

  1. 外设向 DMAC 发送 “DMA 请求”,说明传输方向(内存→外设或外设→内存)、起始地址和数据量。
  2. DMAC 向 CPU 申请 “总线控制权”,CPU 执行完当前总线周期后释放总线。
  3. DMAC 接管总线,直接控制外设与内存的数据传输(每传输一个数据块占用一个总线周期)。
  4. 传输完成后,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,广泛用于键盘、鼠标、移动硬盘等。

欢迎关注我的其它发布渠道