精简版 · 小杯2026-08 冻结,已停止更新(发布前修订了 4 处已知错误)。后续勘误与新增内容只在正式版。看正式版(中杯)→
Skip to content

I/O系统概述

考情分析

I/O 系统概述以选择题为主,但其中的 I/O 控制方式演进是后续程序查询、中断、DMA 的总纲。选择题常考外设与主机之间的速度矛盾、各控制方式的适用场景对比。

大纲定位

考纲第六章(二)(三):I/O 接口(I/O 控制器)I/O 方式总览。

本篇是入口,三种 I/O 方式各有专篇。要求到什么程度:能说清主机与外设为什么需要接口、三种控制方式各自的 CPU 参与程度和数据通路。

I/O 系统的组成

I/O 系统包含两大部分:

I/O 系统=I/O 硬件+I/O 软件

I/O 硬件

  • 外部设备(输入/输出/存储设备)
  • I/O 接口(设备控制器、适配器、接口卡)
  • I/O 总线

I/O 软件

  • 驱动程序
  • 中断处理程序
  • 设备无关性软件(操作系统 I/O 子系统)
图 8.3 外设、设备控制器和 CPU 及主存的互连

图 8.3 外设、设备控制器和 CPU 及主存的互连

从这张整机图能看清接口层在哪:CPU 经前端总线连北桥、北桥经存储器总线连主存;外设则挂在南桥引出的 I/O 总线上,而且每类外设与总线之间都隔着一个接口——USB 控制器之于鼠标键盘、以太网卡之于网线、磁盘控制器之于光驱和硬盘。CPU 从来不直接对话设备本体,它对话的是这些控制器/卡。

接口里有什么:三类端口

CPU 访问不到设备本体,只能访问接口里的端口

端口存什么CPU 的操作
数据端口待传输的数据可读可写
状态端口设备状态(就绪/忙/错误)只读
命令端口CPU 下发的控制命令只写

编者注(一条分水岭)主存地址不属于任何一类端口的内容。查询和中断方式下,主存地址只在 CPU 内部周转,压根不出现在接口上;只有 DMA 方式才把主存起始地址交给 DMAC 保存(AR 寄存器)。选择题问"下列哪个信息不会出现在 I/O 接口中",主存地址就是答案。

详见《I/O 接口》。

外部设备分类

按功能分类

类别设备举例方向
输入设备键盘、鼠标、扫描仪、麦克风外部 → 主机
输出设备显示器、打印机、扬声器主机 → 外部
外存储设备磁盘、SSD、光盘、磁带双向

按数据传输速率分类

速度类别设备举例特点
低速设备键盘、鼠标数据量小,对实时性要求不高
中速设备打印机、扫描仪数据量中等
高速设备磁盘、SSD数据量大,要求高带宽

设备速度差异巨大:键盘每秒只产生几十字节数据,而 NVMe SSD 可以达到数 GB/s。如何让 CPU 高效管理速度差异如此大的设备,是 I/O 系统设计的核心问题。

I/O 控制方式演进

计算机发展过程中,I/O 控制方式不断改进,目标始终是减少 CPU 对 I/O 过程的直接参与

程序查询方式

CPU 通过循环检测设备状态寄存器来判断 I/O 是否完成。

CPU读状态设备状态=忙?继续轮询
  • CPU 全程等待,无法做其他工作
  • 适合低速设备、简单嵌入式系统
  • CPU 利用率最低

中断驱动方式

设备就绪时主动发出中断请求,CPU 响应中断后再进行数据传输。

  • CPU 在 I/O 期间可以执行其他程序
  • 数据传输仍然经过 CPU(每传一个字/字节触发一次中断)
  • 适合中低速设备

DMA 方式

由 DMA 控制器接管数据传输,直接在设备和主存之间搬运数据,传输完成后向 CPU 发一次中断。

  • CPU 只在传输开始和结束时参与
  • 数据块为单位传输,效率高
  • 主要用于数据率较高、成批传送的外设(磁盘、网卡)

编者注(别说成"仅"):DMA 没有"必须接高速设备"的硬约束——只要设备支持 DMA 协议就能用,慢速设备用 DMA 也是合法的(只是收益不大)。所以"DMA 适用于快速外设"是错的说法。408 里凡是"仅/所有/必须/任何"这类绝对化措辞,先怀疑。

通道方式

通道是一个专用的 I/O 处理器,有自己的指令系统(通道指令),可以独立执行 I/O 程序。

  • CPU 向通道发出一条启动指令,后续由通道自主完成
  • 进一步解放 CPU
  • 大型机中常见,微机中较少

演进脉络

方式CPU 参与程度传输单位数据通路
程序查询全程占用字/字节经过 CPU
中断驱动部分占用字/字节经过 CPU
DMA开始+结束数据块不经过 CPU
通道启动指令一组数据块不经过 CPU

核心趋势:CPU 的参与越来越少,I/O 操作越来越独立。

I/O 系统的主要性能指标

  • 吞吐量(Throughput):单位时间完成的 I/O 操作数
  • 响应时间(Response Time):从发出 I/O 请求到完成的时间
  • CPU 利用率:CPU 用于执行用户程序(而非等待 I/O)的时间比例

这三者相互关联:I/O 控制方式越先进,CPU 利用率越高,系统吞吐量也越大。

例题

例 1:程序查询方式和中断方式都是以字/字节为单位传输数据的,它们的本质区别是什么?

:区别在于 CPU 是否需要主动等待。程序查询方式中 CPU 不断轮询设备状态,全程被 I/O 占用;中断方式中 CPU 可以先去执行其他程序,设备就绪后通过中断通知 CPU,CPU 再来处理,I/O 等待期间 CPU 不被浪费。

例 2:为什么 DMA 适合磁盘而不适合键盘?

:磁盘每次传输大量连续数据(一个扇区 512 B 或更多),DMA 批量搬运效率高。键盘每次只产生 1 个字节,数据量极小且不连续,使用 DMA 的启动开销反而不划算,中断方式足够。

例 3:下列 I/O 控制方式中,数据传输不经过 CPU 的是哪些?

:DMA 方式和通道方式。这两种方式中,数据直接在设备与主存之间传输,CPU 不参与逐字节的搬运。

考点清单

  • I/O 系统 = I/O 硬件(设备 + 接口 + 总线) + I/O 软件
  • 四种控制方式:程序查询 → 中断 → DMA → 通道,CPU 参与递减
  • 程序查询和中断以字/字节为单位经 CPU 传输,DMA 以块为单位不经 CPU
  • 程序查询 CPU 利用率最低,通道方式 CPU 利用率最高
  • 设备速度差异是 I/O 系统设计的核心矛盾

教材出处

  • 袁春风《计算机组成与系统结构(第 3 版)》§8.1 I/O 子系统概述:图 8.3(p280)

真题练习