单片机里的DMA是什么意思啊,有款单片机说具有DMA控制器,中的DMA是什么意思啊?
发布网友
发布时间:2022-05-12 09:01
我来回答
共2个回答
热心网友
时间:2024-02-20 17:52
DMA就是直接存储器访问的首字母缩写(Direct Memory Access)。
CPU的总线上同时会挂着多几个存储器,如果想要将存储器1的内容复制到存储器2,如果不用DMA的话,就得靠CPU直接去操作了,操作过程大致是:CPU准备好存储器1的地址和控制信号,读取存储器1的内容,存放到CPU内部寄存器中,再准备好存储器2的地址和控制信号,将寄存器中的内容写入到存储器2。
如果是单个数据的操作,这个过程都是必须的,效率问题也不明显,但如果一次要复制大量数据(比如一帧图像数据、一批语音数据等),那么靠CPU这样循环一个数据一个数据地操作,不仅速度慢(由于架构设计的原因,一般CPU访问外部总线的速度都不是很高),还会导致CPU和总线一直被占用,效率就非常低了。如果在CPU内部做一个硬件控制器,专门负责这种数据搬移操作(自动产生存储器的地址和控制信号,自动实现读写时序),不仅速度可以提高很多,CPU还可以在此期间做其它的事情,这样效率就会高很多了。DMA就是这么个意思,硬件上必须有一个DMA控制器来实现这一功能。
现在DMA的概念和作用已经大大延伸了,很多复杂CPU里面甚至会包含很多个DMA控制器,DMA操作也不再仅限于外部存储器了,内部存储器之间、内部和外部存储器之间、各种标准外设和存储器之间,都有DMA控制器来实现数据交换,这样CPU的功能越来越强,数据处理也越来越快。。
热心网友
时间:2024-02-20 17:52
DMA: Direct Memory Access,直接内存存取的意思。它是所有现代电脑的重要特色,它允许不同速度的硬件装置来沟通,而不需要依于 CPU 的大量 中断 负载。
在实现DMA传输时,是由DMA控制器直接掌管总线,因此,存在着一个总线控制权转移问题。即DMA传输前,CPU要把总线控制权交给DMA控制器,而在结束DMA传输后,DMA控制器应立即把总线控制权再交回给CPU