1.8 输入输出技术
📝 学习目标
- 理解 I/O 本质:CPU 控制主存与外设的数据交换
- 掌握三种控制方式的对比与排序(CPU利用率/效率)
- 熟悉中断处理流程中的关键术语:保存现场、断点、向量表、中断服务程序
- 记住 DMA 的典型考点:数据传输过程 CPU 不参与;总线周期结束后才让出总线
🎯 知识点
1) I/O 的矛盾
- 外设慢、主存相对快
- 如果 CPU 一直等外设,会严重浪费 CPU 时间
2) 三种常考 I/O 控制方式
按效率从低到高(课堂结论):
- 程序查询方式(Polling)
- CPU 不停询问 I/O 是否完成
- CPU 利用率最低
- 程序中断方式(Interrupt)
- I/O 完成后发中断请求
- CPU 不必一直查询,效率更高
- DMA 方式(Direct Memory Access)
- 由 DMAC 控制 I/O 与主存直接交换
- CPU 只做初始化,不参与传输过程,效率最高
3) 中断处理过程(概念题高频)
典型流程:
- 外设/I/O 完成 → 发出中断请求
- CPU 响应中断:
- 保存现场(保存断点与关键寄存器等,一般通过栈)
- 查 中断向量表,获得中断服务程序入口地址
- 执行 中断服务程序(ISR)
- 恢复现场,返回断点继续执行原程序
4) DMA 的关键考点
- DMA 用于高速、批量数据传输
- DMAC 向总线裁决逻辑提出总线请求
- CPU 在完成当前总线周期后才把总线控制权交给 DMAC(常考问法)
🧠 难点与易错点
- 易错1:认为中断“不需要CPU执行指令”
- 中断需要 CPU 执行中断响应/服务流程
- 易错2:认为 DMA “完全不需要 CPU”
- DMA 需要 CPU 初始化,但数据搬运过程 CPU 不参与
🔑 关键词解释
- DMAC:DMA Controller,直接内存访问控制器。
- 总线周期(bus cycle):CPU 一次占用总线完成读/写的周期。
- 断点(breakpoint):被中断打断的位置,用于返回继续执行。
🔍 联想扩展(软设题型)
- “哪种方式不需要 CPU 执行指令?” 常见正确:DMA。
- “突发事件使CPU暂停现行程序,转去服务后返回” → 中断定义题。
🧪 例题(按难度)
简单(3题)
从“CPU 利用率/效率”角度,三种 I/O 控制方式的典型排序(低 → 高)是:
CPU 响应中断后,为了找到对应的中断服务程序入口地址,通常需要查询:
CPU 响应中断时,为了能够“服务完返回原程序继续执行”,通常要先做的关键动作是:
中级(3题)
例题1(CPU参与程度)
计算机系统常用的 I/O 控制方式中,哪一种方式在数据传输过程中不需要 CPU 执行指令?
例题2(中断定义)
计算机运行过程中遇到突发事件,要求 CPU 暂时停止正在运行的程序,转去为该事件服务,服务完毕后自动返回原程序继续执行。该过程称为:
例题3(DMA响应时机:课堂考点)
CPU 在什么时刻响应 DMA 请求,将总线控制权交给 DMAC?
困难(1题)
关于 DMA 的说法正确的是:(可多选)
📚 本课小结
- 查询:CPU不停问,效率最低
- 中断:完成后举手通知,CPU利用率高
- DMA:DMAC搬数据,CPU不参与传输过程,效率最高