在计算机系统中引入DMA(直接内存访问)方式来交换数据是为了提高数据传输的效率和性能。
传统的CPU直接参与数据传输,需要不断地从外设读取数据或将数据写入外设,这会占用大量的CPU时间和资源。
而引入DMA后,外设可以直接与内存进行数据交换,无需CPU的干预,大大减轻了CPU的负担,提高了系统的并发性和响应速度。
DMA方式还可以减少数据传输的延迟,提高数据传输的吞吐量,适用于高速数据传输和实时性要求较高的应用场景,如视频处理、网络通信等。
说简单点就是让CPU干简单但是大量的数据移动操作比较占CPU资源,使用DMA控制器来做,让CPU有更多的时间处理别的事件。
DirectMemoryAccess(存储器直接访问)是指1种高速的数据传输操作,允许在外部装备和存储器之间直接读写数据,既不通过CPU,也不需要CPU干预。
全部数据传输操作在1个称为“DMA控制器”的控制下进行。
CPU除在数据传输开始和结束时做1点处理外,在传输进程中还可以进行其他的工作。
这样,在大部份时间里,CPU和输入输出都处于并行操作,因此使全部计算机系统的效力大大提高。DMA的概念和作用已大大延伸了,很多复杂CPU里面乃至会包括很多个DMA控制器,DMA操作也不再仅限于外部存储器了,内部存储器之间、内部和外部存储器之间、各种标准外设和存储器之间,都有DMA控制器来实现数据交换,这样CPU的功能愈来愈强,数据处理也愈来愈快DMA技术的弊端:由于DMA允许外设直接访问内存,从而构成对总线的独占。
这在实时性强的硬实时系统的嵌入式开发中将会造成中断延时太长。
这在军事等系统中是不允许的。