DMA(Direct Memory Access, 直接储存器访问),是部分总线架构提供的功能,DMA传输功能能将数据从一个地址空间复制到另一个地址空间,实现从附加设备/外设与储存器或储存器与储存器之间的高速传输。
我们结合案例解释DMA的功能:在我们的设备中,CPU是运算和控制和核心,有强大的运算、储/转存数据、控制程序转移等功能。CPU在运行过程中需要处理大量的任务,在这些任务的优先级中,不同的任务有着不同的优先级,有的重要的任务需要调用CPU“亲自”参与,有的则不一定需要调用CPU的计算,比如数据的复制和储存(尤其是大量数据的复制存储,比如将数据从外设A转存到外设B),那我们在分配任务的时候会让CPU去执行更重要的任务,让DMA去执行原来由CPU执行的数据复制、转存,来提高系统的运行效率。
总结下来,DMA就是接管CPU过负责的数据复制储存的任务,减少CPU的低效率消耗,来提高系统的整体效率。DMA用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。无须CPU的干预,通过DMA数据可以快速地移动。这就节省了CPU的资源来做其他操作。
DMA可以实现外设(W)到内存(N)、W2W、N2N、N2W的数据存储。而DMA传输的4个关键数据是:1、数据源地址;2、数据传输的目标地址;3、数据量大小;4、数据传输的模式。
当用户将参数设置好,主要涉及源地址、目标地址、传输数据量这三个,DMA控制器就会启动数据传