跳转至

DMA 控制器

现在的 CPU 都集成了 DMA 控制器。早期比如 inter cpu 就没有集成。

1 DMA 过程

如果在存储器和 IO 设备之间开辟一条数据通道,专门用于数据传输,就可以将处理器从数据搬运中解放出来。这种方式就是 DMA(Direct Memory Access,直接存储器访问)方式。DMA 方式在存储器和外设之间开辟直接的数据传送通道,数据传送由专门的硬件来控制。控制 DMA 数据传送的硬件被称为 DMA 控制器。 使用 DMA 进行传输的一般过程为: 1. 处理器为 DMA 请求预先分配一段地址空间。 2. 处理器设置 DMA 控制器参数。这些参数包括设备标识、数据传送的方向、内存中用于数据传送的源地址或目标地址、传输的字节数量等。 3. DMA 控制器进行数据传输。DMA 控制器发起对内存和设备的读写操作,控制数据传输。DMA 传输相当于用 IO 设备直接读写内存。 4. DMA 控制器向处理器发出一个中断,通知处理器数据传送的结果(成功或者出错以及错误信息)。 5. 处理器完成本次 DMA 请求,可以开始新的 DMA 请求。