Skip to content
难度中等(★★)
建议时长60分钟
本课难点
  • “中断 vs DMA”CPU参与程度的区分(DMA 仅初始化;中断需CPU执行服务)
  • 中断处理流程中的关键词:保存现场/断点/向量表/ISR(题干常拆开描述)
  • DMA 的响应时机:CPU 在完成当前总线周期后才交出总线控制权
  • 查询/中断/DMA 的效率排序与适用场景(低速外设/高速批量传输)

1.8 输入输出技术

本课核心知识点手绘速记(SVG)

📝 学习目标

  • 理解 I/O 本质:CPU 控制主存与外设的数据交换
  • 掌握三种控制方式的对比与排序(CPU利用率/效率)
  • 熟悉中断处理流程中的关键术语:保存现场、断点、向量表、中断服务程序
  • 记住 DMA 的典型考点:数据传输过程 CPU 不参与;总线周期结束后才让出总线

🎯 知识点

1) I/O 的矛盾

  • 外设慢、主存相对快
  • 如果 CPU 一直等外设,会严重浪费 CPU 时间

2) 三种常考 I/O 控制方式

按效率从低到高(课堂结论):

  1. 程序查询方式(Polling)
    • CPU 不停询问 I/O 是否完成
    • CPU 利用率最低
  2. 程序中断方式(Interrupt)
    • I/O 完成后发中断请求
    • CPU 不必一直查询,效率更高
  3. DMA 方式(Direct Memory Access)
    • DMAC 控制 I/O 与主存直接交换
    • CPU 只做初始化,不参与传输过程,效率最高

3) 中断处理过程(概念题高频)

典型流程:

  1. 外设/I/O 完成 → 发出中断请求
  2. CPU 响应中断:
    • 保存现场(保存断点与关键寄存器等,一般通过栈)
  3. 中断向量表,获得中断服务程序入口地址
  4. 执行 中断服务程序(ISR)
  5. 恢复现场,返回断点继续执行原程序

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不参与传输过程,效率最高