Skip to content

2013年 408 计算机组成原理 第 22 题

计算机组成原理2013年选择题2分

题目

下列关于中断 I/O 方式和 DMA 方式比较的叙述中,错误的是( )。

错因

A

A 描述完全正确——中断方式的本质是让 CPU 暂停当前任务、跑 ISR,所请求的是 CPU 时间;DMA 方式让 DMA 控制器直接搬数据进内存,全程不打扰 CPU 程序流,只在搬运瞬间需要总线使用权。被这条搞混的人多半把"DMA 也要 CPU 启动"当成"DMA 也要 CPU 时间"——其实启动只是 CPU 写几个寄存器,开销可忽略。

B

B 也正确。"指令执行结束后才响应中断"是中断隐指令的硬性约束——一条指令必须执行完才能形成完整状态供保存(断点),中途打断会破坏数据通路。DMA 则细到每个总线事务(bus transaction)——它要的是总线,不需要 CPU 处于完整指令边界,所以"事务结束就让权"是更细粒度的同步点。

C

C 也正确。中断方式下,传送由 ISR 软件代码(IN/OUT 指令)一字节一字节搬;DMA 由 DMA 控制器硬件电路自动搬数据块,CPU 全程不参与传送动作。这是"软件 vs 硬件传送"的标准教科书表述。

总解析

逐项审计

选项说法正/误关键判据
A中断求 CPU 时间,DMA 求总线使用权两种方式占用的核心资源不同——这正是 DMA 优于中断的根本原因
B中断在指令结束后响应,DMA 在总线事务结束后响应同步粒度差异——DMA 比中断更"轻",能更快接入
C中断软件传送,DMA 硬件传送数据搬运主体不同——中断是 CPU + ISR 代码,DMA 是控制器
D中断适用所有外设,DMA 仅适用快速外设"仅"字过死——DMA 没有"必须快"的硬性限制

D 错在哪——"适用范围"的两个绝对化判断都不准:

  1. "中断适用所有外设"——这条本身偏激。对于数据率极低的设备(如键盘、鼠标),用中断没问题;但对数据率极高且要求传送整块数据的设备(典型如硬盘、网卡),如果用中断,每个字节都要 ISR 跑一次,CPU 大部分时间被 ISR 切换吃掉——理论"适用",实践不可行。
  2. "DMA 仅适用快速外设"——这条更错。DMA 的本质优势是"块传送时不打扰 CPU",只要设备支持 DMA 协议就能用,无关速度快慢。慢速设备用 DMA 也成立(虽然性价比不一定最优),所以"仅"字直接否决。

事实上,408 教科书里 DMA 适用场景的标准表述是:"批量数据传送、数据率较高的外设"——是"较高"不是"快速",更不是"仅"。

最终答案是 D(这是错误叙述)

判断"适用范围"类陷阱的速记

408 真题里凡是看到"适用于…"、"所有外设都用…"、"任何情况下都…"——绝对化判断先怀疑。计算机系统里很少有"非黑即白"的硬约束,"主要适用于"才是常态。

三种 I/O 方式适用对照表(背一下):

方式主要适用次要适用不推荐
程序查询CPU 不忙、设备很慢单一设备简单系统高速、多设备
程序中断中低速、随机性事件键盘 / 鼠标 / 串口高速、批量
DMA高速、批量、连续磁盘 / 网卡 / 显存极慢且零散

最后更新:

⚠️ 这道题暂未配可视化,欢迎在 CodeBrick 反馈区告诉我们你想看哪道题