当前位置:神舟问>百科知识>“DMA”是什么意思?

“DMA”是什么意思?

2024-01-23 02:28:47 编辑:join 浏览量:596

“DMA”是什么意思?

DM360问答A的英文拼写是“DirectMemoryAccess”,汉语的意思就是直接内存访问,是一种不经过CPU格父客太其华具额角担右而直接从内存了存取数据的数据交换模式。PIO模式下硬盘和内存之间的数据传输是由CPU来控制的;而在DMA模式下,CPU只皮到须向DMA控制器下达指令,让D止缺介求MA控制器来处理数的传送,数门保相刚刘该通代因据传送完毕再把信息反馈给CPU,这样就很大程度上减轻了CPU资源占有率。DMA模式与PIO模式的区别就在于,DMA模式不过分依赖CPU,可以大大节省系统资源,二者在传输速度上的差异并不十分明显。DMA模式又粮事可以分为Single-WordDMA(单字节DMA)和Multi-WordDMA(多字节DMA)两种,其中所能达到的劳诗杆倒情错导格满最大传输速率也只有16.6MB/s

直接存储器存取(DMA)控制器是一种在系统内部转移数务王据的独特外设,可以将其视为一种能够通过一组专用总线将内部和外部存储写执加段育省刻三器与每个具有DMA能力的外设连接起来的控制器。它之所以属于外设,解是因为它是在处理器的编程控制下来执行传输的。值得注意的是,通常只有数据流量较大(kBps或者更高)的外设才需要支持DMA能力,这些应用方面典型的例子包括视频、音频和网络接口。

一般而言,DMA控制器将包括一条地址总线、一条数据总团矿克演判线和控制寄存器。高效率的DMA控制器将具有访问其所需要的任意资源由频矿脸家抗的能力,而无须处理器本身的介入,它必须能产生中断。最后,它必须能在控制器内部计算出地址。

一个处理器可以尽胡蛋政包含多个DMA控制器。每个控制器有多个DMA通道,以及多条直接与存储器站(memorybank)和外设连接的总线,如图1所示。在很多高性能处理器中集成了两种类型的DMA控制器。第一类通常称为“系统DMA控制器”,可以实现对任何资源(外设和存储器)的访问,对于这种类型的控制器来说,信号周期数是以系统时钟(SCLK)来计数的,以ADI的Blackfin处理器为例,频率最高可达133MHz。第二类称为内部存储器DMA控制器(IMD息连证多副象费一双故MA),专门用于内部存储器所处位置之间的相互存取操作。因为存取都发生在内部(L1-L1、L1-L2,或者L2-L2),周期数的计数则以内核时钟(见苦渐曲船CCLK)为基准来进行,该时钟的速度可依顶查清这编以超过600MHz。

每个训令离积环DMA控制器有一组FIFO,起到DMA子系统和外设或居斯厚将非感证能机存储器之间的缓冲器的作用。对于MemDMA(MemoryDMA)来说,传输的源端和目标端都有一组FIFO存在。当资源紧张而不能完成数据传输的话,则FIFO可以提供数据的暂存区,从而提高性能。

因为你通常会在代码初始化过程中对DMA控制器进行配置,内核就只需要在数据传输完成后对中断做出响应即可。你可以对DMA控制进行编程,让其与内核并行地移动数据,而同时让内核执行其基本的处理任务—那些应该让它专注完成的工作。

标签:DMA

版权声明:文章由 神舟问 整理收集,来源于互联网或者用户投稿,如有侵权,请联系我们,我们会立即处理。如转载请保留本文链接:https://www.shenzhouwen.com/article/262911.html
热门文章