打印

DSP的DMA功能

[复制链接]
1352|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mitianhui9|  楼主 | 2014-6-17 16:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
zhangmangui| | 2014-6-17 21:31 | 只看该作者
DMA传输是“直接存储器访问”的缩写,由DMA控制器完成数据传输,不需要CPU操作,因此可节省CPU开销,传输速度快,突发操作每时钟搬移一个数据。要通过CPU搬移数据的话,CPU要先读到他的寄存器,再从寄存器写到存储器,就是流水操作总要4-8个时钟或更多,速度就差了几倍。
DSP的DMA传输的数据可以细分,一个总的传输块(BLOCK)里面,又可以分若干个帧(FRAME),每传完一帧都可以开启中断。而且在整个DMA传输期间,不管是循环模式或者是其他一次性的模式,都可以中途暂停,因为它的DMA控制器可以记录当前暂停时的传输大小,和传输地址索引,然后下次再次开启的时候,会紧接着上次中断后的地方来传输。

DMA都是为了成批传输数据的,不论单次DMA 和突发DMA。不同的是每次传输一个单元数据(比如使用32bit数据位宽,每单元为32bit;比如使用8bit数据位宽,每单元为8bit)所用的时钟数。突发DMA是每个时钟都传输一个单元数据的连续传输;而单次DMA则不是,需要几个时钟才传输一个数据单元。
以上假设数据地址已经对齐,即传输32位宽时,起始地址为4的倍数;即传输16位宽时,起始地址为2的倍数。否则一个数据要读取或传输2次来拼接,会显著降低DMA性能。
DMA请求的话,要设置DMA控制器,传多少设多少。突发合肥突发都是。
DMA传输是一个数据一个数据传的,但数据线是多位的,现在多是32位的,一次传4字节。几个时钟才传输一个数据单元得看时序图,单次的DMA传输每传一个数据都发起始和结束信号,中间还可能空闲几个时钟;而突发DMA发一个起始信号就开始连续传输,直到达到突发长度,发个结束信号。差别就在这几个时钟上。并不是所有存储器都支持突发DMA。

使用特权

评论回复
板凳
airwill| | 2014-6-17 22:18 | 只看该作者
DMA 是个数据自动转发器. 设置好传输参数, 接下来就无需CPU 干预, 自动完成传输.

使用特权

评论回复
地板
mitianhui9|  楼主 | 2014-6-18 08:53 | 只看该作者
谢谢,很有帮助!~

使用特权

评论回复
5
拿起书本| | 2014-7-9 21:49 | 只看该作者
DMA它的意思是直接存储器存取,是一种快速传送数据的机制,DMA技术的重要性在于,利用它进行数据存取时不需要CPU进行干预,可提高系统执行应用程序的效率。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

51

帖子

0

粉丝