NOTE

DMA

DMA 学习笔记,记录 CPU、DMA、I/O 设备与内存之间的数据传输过程。

Computer Architecture & Assembly创建于 更新于 约 1 分钟读完historical

这是历史学习笔记,可能存在过时或不完整的理解。

DMA

  1. CPU配置DMA传输
  2. CPU搞其他事去了
  3. DMA从I/O设备中读取数据
  4. DMA把数据传输到内存中
  5. DMA传输完成后以中断的形式通知CPU

在传统共享总线模型中,CPU和DMA通过总线仲裁共享总线。

CPU 和 DMA 轮流占有总线是为了在数据传输时提高效率,避免 CPU 独占总线。当 DMA 控制器需要进行数据传输时,它会向 CPU 发出请求,请求 CPU 暂时让出总线。CPU 完成当前的指令周期后,会释放总线,让 DMA 控制器执行数据传输。

  • 请求总线: 当需要进行数据传输时,DMA 控制器会向 CPU 发出请求,请求占用总线。
  • 释放总线: CPU 在完成当前的指令周期后,会释放总线,并将总线控制权交给 DMA 控制器。
  • 执行数据传输: DMA 控制器获得总线控制权后,直接在内存和 I/O 设备之间进行数据传输,而无需 CPU 的干预。
  • 归还总线: 数据传输完成后,DMA 控制器会释放总线,并将总线控制权归还给 CPU,允许 CPU 继续执行其他任务。 这种“轮流”模式允许 CPU 专注于处理计算任务,而将数据传输等高带宽的 I/O 操作交给 DMA 控制器,从而大大提高了系统的整体性能。

讨论

使用 GitHub 账号参与讨论,评论会保存在 GitHub Issues 中。在 GitHub 查看