跳转至

DMA方式

概述

DMA(直接存储器访问)

DMA方式下,数据直接在内存和I/O设备间传输,无需CPU干预。

DMA工作原理

DMA工作原理

DMA控制器接管总线,直接控制数据传输。

DMA控制器组成

DMA控制器

  • 内存地址寄存器(MAR): 存放内存地址
  • 传送计数器(WC): 传送数据块长度
  • 数据缓冲寄存器(DBR): 暂存数据
  • DMA请求触发器: 请求DMA传送
  • 控制/状态逻辑: 控制DMA操作

DMA传送过程

`mermaid graph TB A[预处理] → B[数据传送] B → C[后处理]

Text Only
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
A --> A1[CPU初始化DMA]
A1 --> A2[设置内存地址]
A2 --> A3[设置传送计数]

B --> B1[DMA请求]
B1 --> B2[总线请求]
B2 --> B3[数据传送]
B3 --> B4[计数器减1]
B4 --> B5{计数器=0?}
B5 -->|否| B1
B5 -->|是| C

C --> C1[向CPU发中断]
C1 --> C2[CPU处理结束]

style A fill:#E3F2FD
style B fill:#E8F5E9
style C fill:#FFF3E0

`

DMA传送方式

停止CPU访存

停止CPU访存

DMA传送期间,CPU停止访问内存。

特点: 控制简单,CPU效率低

周期挪用

周期挪用

DMA挪用CPU不使用内存的周期。

特点: CPU效率高,控制复杂

交替访存

交替访存

CPU和DMA交替访问内存。

特点: 效率最高,硬件复杂

DMA特点

DMA特点

  • 数据传输速度快
  • CPU开销小
  • 适合成块数据传输
  • 需要DMA控制器

参考资料