输入输出
引入
词汇
| English | 释义 | 拼音 |
|---|---|---|
| programmed I/O | 程序控制 I/O | chéng xù kòng zhì I/O |
| interrupt-driven I/O | 中断驱动 I/O | zhōng duàn qū dòng I/O |
| DMA | 直接存储器访问 | zhí jiē cún chǔ qì fǎng wèn |
三种传送方式
- 程序控制 I/O programmed I/O(轮询)让核心在状态寄存器上自旋。中断驱动 I/O interrupt-driven I/O 让设备发信号、每个事件跑一次处理程序。DMA 直接存储器访问整块搬完只在结束时中断一次。

{exercise:uni-cs0605-styles}
练习
DMA 与中断驱动 I/O 的差别在于它——
难度 1/5 · 今日首次完成可获 100 金币及少量额外奖励
DMA 引擎承包传送;CPU 只付一次建立一次完成。
轮询的账单
- 设备标志每 2 µs 更新;一次轮询 50 周期 × 250 ps = 12.5 ns。最坏延迟要求连续轮询:$2\,\text{µs} / 12.5\,\text{ns} = 160$ 次轮询——每字 8 000 周期的 CPU 关注。
- 中断把它压到处理程序:每字 200 周期。DMA 搬 1024 字只花 500 周期建立加 200 周期完成中断:每字 0.68 周期。
{exercise:uni-cs0605-cost}
练习
事件每 2 µs、轮询 12.5 ns,最坏每事件要——次轮询。
难度 1/5 · 今日首次完成可获 100 金币及少量额外奖励
2 µs 除以 12.5 ns 得 160 次,只有一次有用。
按形态选择
- 键盘(每秒约 5 字符):中断——每次击键一个事件、200 周期,可忽略。2 GB/s 的 4 MiB 磁盘块:DMA——每字一中断会淹没核心(204 800 周期开销对 DMA 的 700,相差 292 倍)。
- 恰好每 2 µs 采一次的传感器:紧凑循环轮询反而诚实——采样率就是轮询率。口诀:定采样用轮询、有事件用中断、成流用 DMA。
{exercise:uni-cs0605-choose}
练习
2 GB/s 的磁盘块传送属于——的领地。
难度 1/5 · 今日首次完成可获 100 金币及少量额外奖励
成流数据归 DMA:每字 0.68 周期对中断的 200。