在6467上面用ACPY3做了两组实验,发现2D1D传输的速度巨慢。具体情况是这样的,源和目的内存的地址都是128对齐的。
实验1:
1D1D的传输,内存大小为4M,整个耗时在5-6ms之间。
试验2:
2D1D的传输,内存大小仍然为4M,其他参数如下
elemenSize=1
srcElementIndex=4
numElements=65280
numFrames=0
即源内存大小为4M,目的内存从源内存中4选1,即目的内存的大小为1M
受numElements的限制,本来应该是65535,但是我为了考虑对其的问题,故意设成了65280(256的倍数)。4M的内存分4M/(65280*4)次传送,零头部分不处理。最后总的时间在28-30ms之间。
这种抽样的过程本来就是想通过2D1D的支持来获取高性能,可惜事与愿违。
1D和2D的差异为什么这么大呢?是我有什么地方处理的不对,还是ACPY3的效果就是这样?
有人能告诉我为什么吗?小弟不胜感激呀
VampireDaVinci:
具体耗时记不太清楚了,但是有如下结论
1. EDMA配置Para的时间是很长的
2. 2D本质就是1D的一个Chain,只不过你只需要启动一次就可以完成
3. ACPY = Asynchronous Copy
4. 本质上说,DM3和DM6系列的EDMA就是普通的,DM8的DMA才是非常适合Video类的操作