1、为什么有DMA的存在?
秉持着“存在即是合理”,DMA存在的原因探究一下。
背景:通常情况,外设和内存交换传输需要CPU的参与,当需要大量数据传输时,CPU资源会被占用很多,从而影响CPU执行其他计算的效率。
思路:设计一种可以直接内存访问的控制器(硬件电路),哈哈,根据这个思路这个控制器名字就有了,DMA(direct memory access)。
2、DMA原理
DMA控制器将包括一条地址总线、一条数据总线和控制寄存器,和串口UART、GPIO一样,DMA也是一个外设(是在处理器的编程控制下来执行传输的)。
3、DMA的使用场景
大数据流量的外设
例如数据流量较大的(kBps或更大)音频、视频、网络接口,需要用到DMA。
内存到内存的DMA异步拷贝
让缓慢的大内存拷贝可以脱离 CPU 进行,以便高效利用 CPU 计算资源。
[参考连接:https://zhuanlan.zhihu.com/p/150556542]