Skip to content

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

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

题目

DMA 方式中,DMA 控制器控制的数据传输通路位于( )。

错因

A

误把 DMA 当成"加速 CPU 访存"的硬件——其实 CPU 和主存之间的访存通路是 CPU 自己直连的(通过总线),不需要 DMA 介入。DMA 是为了外设和主存之间的数据交换设计的,不是给 CPU 访存提速。

B

理解反了——DMA 控制器和 CPU 之间只有"启动信号 + 完成中断"等控制信号交流(通过总线),没有数据传输通路。如果数据真要经过"设备 → DMA → CPU → 主存"这条路,就跟程序中断方式没区别了,DMA 就废掉了。

D

错把"DMA 控制器内部缓冲"当成端到端的数据通路——确实 DMA 控制器内部可能有少量缓冲寄存器(如 32 位数据缓冲,参见 2020-22),但端到端的传输通路两端是设备接口和主存,DMA 控制器只是"中间的指挥者",不是通路的一端。

总解析

DMA 数据通路示意

设备 ─┬─[设备接口]──┐
      │              │
      │     总线     │   ← DMA 控制器仲裁、控制
      │              │
[主存]────────────┘

    [DMA 控制器]——发控制信号 / 地址信号

关键事实

  1. 数据从设备接口直接进/出主存——不绕路 CPU、不绕路 DMA 控制器
  2. DMA 控制器只发送控制信号(地址、读写方向、字节计数)和总线请求/应答,不存储数据(除少量过渡用缓冲)
  3. 这是 DMA 之所以"高速"的关键——不绕路,端到端最短

所以数据传输通路 = 设备接口 ↔ 主存,对应选项 C。

三种 I/O 方式数据通路对照

方式数据通路控制者
程序查询设备接口 → CPU 寄存器 → 主存CPU 软件(查询程序)
程序中断设备接口 → CPU 寄存器 → 主存CPU 软件(ISR)
DMA设备接口 ↔ 主存(直连)DMA 控制器硬件

注意前两种方式数据必须经过 CPU 寄存器(IN/OUT 指令把数据从设备接口装载到 CPU 寄存器,再 store 到主存),而 DMA 的数据根本不进 CPU——这是 DMA 命名"Direct Memory Access"(直接存储器访问)的字面意义。

最终答案是 C(设备接口和主存之间)

送分题口诀:DMA = Device ↔ Memory Access。Device(设备接口)↔ Memory(主存),通路两端都在题面里给出来了,闭着眼也能选 C。

最后更新:

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