翻译并提取自维基百科:https://en.wikipedia.org/wiki/Direct_memory_access
概念
DMA(Direct Memory Access)是一种硬件体系特性,它允许某些硬件子系统不通过CPU就直接访问随机访问内存(RMA)。它是一种系统特性,而非指定的某种硬件或者软件,而为了实现这种特性,可能需要用到专门的DMA外设(第三方DMA),也可以直接通过系统机制来实现(第一方DMA)。为什么要提供DMA机制呢?由于内存访问的操作通常频繁发生,如果没有DMA机制,所有的硬件都要等到CPU调度来访问RMA的话,那么CPU的时间将会被大量的IO操作所占据,从而无法为其他的程序提供服务。而采用了DMA机制之后,CPU只需要启动一个控制器(DMA Controller),在控制器自行调度硬件内存访问的同时CPU可以执行其他的工作,而DMA Controller在工作完毕后发送一个中断给CPU,通知其内存调度已经完成。这一机制使得CPU的时间片可以用在更加紧急的任务上,而无需处理相对较为缓慢的数据传输工作,也可以让CPU无法空闲的情况下硬件子系统仍旧可以访问物理内存。
拥有DMA通道的硬件系统,在数据传输、硬件存取方面的CPU开销比无DMA通道的硬件系统要小得多得多。启用DMA机制后,系统中可以真正并发的进行计算操作与数据传输。