Appearance
输入输出技术
I/O 编址方式
| 对比 | 独立编址(I/O 映射) | 统一编址(内存映射) |
|---|---|---|
| 地址空间 | 内存+I/O 两个独立空间 | 统一地址空间 |
| 指令 | 专用 I/O 指令(IN/OUT) | 通用内存访问指令 |
| 优点 | 易辨认、互不干扰 | 指令丰富灵活 |
| 缺点 | 指令功能有限 | 内存地址不连续 |
| 典型 | Intel x86 | ARM、嵌入式 |
数据交互三种方式
| 方式 | CPU 参与度 | 效率 | 机制 |
|---|---|---|---|
| 程序查询 | 全程参与 | 最低 | CPU 主动轮询设备状态 |
| 程序中断 | 传输后处理 | 中 | 设备就绪后主动通知CPU |
| DMA | 仅初始化 | 最高 | DMA 控制器接管总线,直接设备↔内存 |
中断 vs DMA 响应时机:
- CPU 响应中断请求:在一条指令执行结束时
- CPU 响应DMA请求:在一个总线周期结束后
DMA 方式数据传输整个过程由 DMA 控制器完成,不需要 CPU 执行程序指令来传送数据。
总线
总线结构
| 层级 | 作用域 | 关键特征 |
|---|---|---|
| 内部总线(片内) | 芯片内部 | 高带宽、低延迟、不对外开放 |
| 系统总线(板级) | 主板+扩展槽 | 决定内存最大容量,三总线并行 |
| 外部总线(设备级) | 机箱外设 | 热插拔、即插即用 |
系统总线"三驾马车":
| 总线 | 方向 | 作用 |
|---|---|---|
| 数据总线 | 双向 | 传输数据,宽度 = 字长倍数 |
| 地址总线 | 单向 | 传输地址,宽度决定寻址空间 |
| 控制总线 | — | 传输控制信号(读/写/中断/时钟等) |
串行总线 vs 并行总线
🎯 一句话结论:并行总线适合短距离高速传输,串行总线适合长距离;PCI 是并行总线,USB/SATA/RapidIO/PCIe 是串行总线。
| 对比 | 串行总线 | 并行总线 |
|---|---|---|
| 传输方式 | 逐位(bit)串行发送 | 多根数据线同时发送多位 |
| 代表接口 | USB, SATA, RS-232, RapidIO, PCIe | PCI, IDE(PATA), LPT |
| 传输距离 | 适宜长距离 | 适宜短距离 |
| 信号同步 | 嵌入时钟或异步 | 需同时到达,高频难度大 |
| 波特率 | 初始化时预定义,使用中不变 | — |
⚠️ 易混淆:PCI ≠ PCIe。PCI 是并行总线,PCI Express (PCIe) 是串行总线。考题常把 PCI 混入"以下属于串行总线的是"选项中。
串行总线波特率
🎯 一句话结论:串行总线波特率在总线初始化时预先定义,使用中不可改变。
- 波特率(Baud Rate)= 每秒传输的信号单元数(不同于比特率)
- 常见标准波特率:9600, 19200, 38400, 115200 等
- 并非所有串行总线都是全双工(I²C 是半双工/同步串行)
- 数据正确性依赖校验码(奇偶校验、CRC)而非仅靠纠错码