1、学习目标

I/O 子系统解决 CPU、主存和外部设备之间速度、格式、控制方式不一致的问题。总线负责连接,接口负责适配,控制模式负责决定数据如何传送。

模块 要掌握的内容
I/O 子系统 主机与外设的信息交换
总线 数据线、地址线、控制线
接口 数据缓冲、状态、控制、地址译码
PIO CPU 直接控制传送
中断 外设主动请求 CPU 服务
DMA 外设和内存直接传送
IOP/PPU 更独立的 I/O 处理能力

2、I/O 子系统概述

外设和主机的差异:

差异 说明
速度差异 外设通常远慢于 CPU
数据格式差异 外设可能是串行、模拟、块设备等
控制方式差异 外设需要状态检测和时序控制
错误处理 外设可能忙、失败、中断、超时

接口的作用就是在 CPU/主存和外设之间做缓冲、控制和格式转换。

3、总线

总线是一组共享传输线路。

按功能分:

总线 作用
数据总线 传输数据
地址总线 指明访问地址
控制总线 传输读写、中断、时钟、仲裁等控制信号

按连接范围分:

类型 说明
片内总线 CPU 内部部件连接
系统总线 CPU、主存、I/O 模块之间
I/O 总线 外设接口连接

4、总线性能指标

指标 含义
总线宽度 一次可传输多少位
总线频率 每秒多少传输周期
带宽 单位时间数据传输量
延迟 一次传输完成时间

带宽估算:

1
带宽 = 总线宽度 * 传输频率

如果采用双倍数据率或突发传输,要把每周期传输次数考虑进去。

5、总线控制

多个设备共享总线时,需要仲裁。

仲裁方式 特点
集中式仲裁 统一仲裁器决定谁使用总线
分布式仲裁 各设备协同决定
链式查询 简单,但优先级固定
计数器定时查询 优先级可变化
独立请求 响应快,硬件复杂

总线通信还要考虑同步方式:

方式 说明
同步通信 统一时钟控制
异步通信 通过握手信号协调
半同步 同步为主,允许等待

6、接口

I/O 接口常包括:

组成 功能
数据寄存器 缓冲数据
状态寄存器 表示设备是否就绪、忙、出错
控制寄存器 接收 CPU 发来的控制命令
地址译码 识别 CPU 访问的是哪个接口
中断逻辑 产生和屏蔽中断请求

CPU 通过 I/O 指令或内存映射方式访问这些寄存器。

7、程序传送模式 PIO

PIO 中 CPU 直接参与数据传送。

流程:

1
2
3
CPU 查询设备状态
设备就绪后 CPU 读/写数据寄存器
重复直到传送完成

优点:简单。

缺点:CPU 被大量占用,适合低速或少量数据传送。

8、中断模式

中断允许外设在需要服务时通知 CPU。

流程:

  1. 外设完成准备,提出中断请求。
  2. CPU 在合适时机响应中断。
  3. 保存现场。
  4. 转入中断服务程序。
  5. 处理中断。
  6. 恢复现场,返回原程序。

中断解决了 PIO 一直轮询浪费 CPU 的问题。

关键概念:

概念 说明
中断请求 外设向 CPU 发出的服务信号
中断屏蔽 暂时禁止某些中断
中断优先级 多个请求同时出现时的响应顺序
中断向量 中断服务程序入口地址
现场保护 保存 PC、状态寄存器、通用寄存器等

9、DMA 模式

DMA 让外设和主存直接交换大块数据,CPU 只负责初始化和结束处理。

流程:

  1. CPU 设置 DMA 控制器:源地址、目的地址、长度、方向。
  2. DMA 控制器申请总线。
  3. DMA 在主存和外设之间传送数据。
  4. 传送完成后用中断通知 CPU。

优点:减少 CPU 参与,适合高速块设备。

DMA 传送方式:

方式 说明
停止 CPU 访问 DMA 独占总线
周期窃取 DMA 偶尔占用一个存储周期
交替访问 CPU 和 DMA 交替使用总线

10、IOP 与 PPU

IOP 或 PPU 可以看作更高级的 I/O 处理单元,能够独立执行 I/O 程序,进一步减轻 CPU 负担。

层次变化:

1
2
3
4
PIO:CPU 全程搬运
中断:CPU 被动响应服务
DMA:CPU 初始化,DMA 搬运
IOP/PPU:专门处理器管理复杂 I/O

越往后,I/O 子系统自主性越强,硬件复杂度也越高。

11、I/O 控制模式对比

模式 CPU 参与程度 适合场景
PIO 查询 简单低速设备
中断 异步事件、低中速设备
DMA 大块高速数据
IOP/PPU 更低 复杂 I/O 系统

复习时可以用一句话记:PIO 让 CPU 等设备,中断让设备叫 CPU,DMA 让设备自己和内存搬数据。

12、易错点

易错点 修正
中断和 DMA 混淆 中断是通知机制,DMA 是数据传送机制
DMA 完全不需要 CPU CPU 仍负责初始化和结束处理
PIO 只理解成输入 PIO 可读也可写
总线宽度和地址宽度混淆 数据总线宽度影响一次传多少,地址线影响寻址范围
接口当成外设本身 接口是主机与外设之间的适配电路

13、复盘清单

检查项 状态
能区分数据总线、地址总线、控制总线 待复盘
能计算简单总线带宽 待复盘
能说明 I/O 接口寄存器作用 待复盘
能画出中断处理流程 待复盘
能画出 DMA 传送流程 待复盘
能比较 PIO、中断、DMA、IOP 待复盘