TI中文支持网
TI专业的中文技术问题搜集分享网站

dsp6678在运算数据时,每个核都可以直接对DDR3中的数据进行读写,为什么还需要DMA在不同存储器中进行数据搬运?

如题,想知道这个只是为了加快运算速度,还是必须要将DDR3数据搬运到L1,L2存储器中再进行读写,dsp内核可以直接往DDR3中读写数据吗?

Shine:

用edma是为了加快速度,因为EDMA是硬件上搬移数据,不需要CPU,CPU可以做其他事情。

user6109135:

回复 Shine:

感谢回复,我不明白的地方是我在代码里直接往DDR3的地址里写数据,就代表我直接用CPU在读写DDR3的数据,对吗,那其实您的意思是可以让DMA将DDR3的数据搬运到L2,然后代码里直接往L2里读写数据,与此同时,DMA还在搬运,但是搬运会覆盖L2的数据,但代码里还在对L2的数据进行读写,这两者不会发生冲突吗?

Shine:

回复 user6109135:

"我在代码里直接往DDR3的地址里写数据,就代表我直接用CPU在读写DDR3的数据",您的理解是对的。 “可以让DMA将DDR3的数据搬运到L2,然后代码里直接往L2里读写数据,与此同时,DMA还在搬运,但是搬运会覆盖L2的数据,但代码里还在对L2的数据进行读写,这两者不会发生冲突吗?” CPU和EDMA同时访问内存,会有内部仲裁机制,通常是CPU对L2读写好后,启动EDMA搬移数据,或者EDMA搬好数据后,通知CPU去读写。

赞(0)
未经允许不得转载:TI中文支持网 » dsp6678在运算数据时,每个核都可以直接对DDR3中的数据进行读写,为什么还需要DMA在不同存储器中进行数据搬运?
分享到: 更多 (0)