flowchart TD
A["部件互连:专线 O(n²) 不可扩展"] --> B["共享总线"]
B --> C["争用 → 仲裁<br/>链式 / 计数器 / 独立请求"]
B --> D["速度对齐 → 定时<br/>同步 / 异步"]
B --> E["带宽 = 宽度 × 频率 × 每周期次数<br/>复用与突发优化"]
F["外设慢且杂<br/>CPU 不该陪等"] --> G["程序查询:全程陪等"]
G --> H["程序中断:就绪后打断 CPU<br/>传一个字打扰一次"]
H --> I["DMA:硬件直搬一整块<br/>只在开始和结束打扰 CPU"]
I --> J["通道:I/O 专用处理器<br/>(概念级)"]
核心概念:
| 概念 | 要点 | 易考点 |
|---|---|---|
| 总线带宽 | 宽度(B/周期)× 频率 × 每周期传输次数 | 2009-20(4B/2周期 ×10MHz = 20MB/s);双倍数据率要 ×2(2014-19:32 根 ×66MHz ×2 = 528MB/s) |
| 突发(猝发)传输 | 主设备只给一个首地址,连续传多个数据(2014-20 定义题) | 省掉后续地址节拍:2012-19(地址/数据复用,传 128 位 = 1 地址 + 4 数据 = 5 周期) |
| 地址/数据线复用 | 同一组线分时传地址和数据,省引脚 | 复用时带宽计算要计入地址节拍 |
| 数据线上跑什么 | 指令、数据、地址都可走数据线;握手/应答信号走控制线(2011-20);中断 I/O 下 CPU 与端口交换的不可能是“地址”(2015-21:端口地址由地址线给出) | |
| DMA 请求 vs 中断请求 | DMA 请求的是总线使用权(硬件裁决),中断请求的是 CPU 处理时间(2013-22 A) | 中断响应:一条指令执行完;DMA 响应:一个总线事务结束(2013-22 B) |
| 周期挪用(周期窃取) | DMA 趁 CPU 不访存时挪用一个存储周期传一个字 | 与 CPU 访存冲突时 DMA 优先(2012-43 第 3 问:I/O 数据不及时传会丢失,CPU 可以等) |