我发现最近大家都很关心EDMA并行使用,我也在测试,我来提几个问题。
1。三个EDMA控制器只有主频和同步事件不同吗,他们各自的主频是多少?
2。6678有三个EDMA控制器,其中EDMA0有两个event queue 两个 TC ,EDMA1和2 分别有四个event queue 和四个TC,那么,如果我想多核同时并行使用EDMA并使效率最高,我该怎么映射。
比如4个核同时传输,想同时提交到TC并搬移,那么是否需要分别映射到某一个EMDA控制器的四个EVENT QUEUE上,这样这四个传输请求才可以同时传输给四个不同的TC。
如果 8个核同时传输,是否要使用EDMA1的EVENT QUEUE 0~ 3 再加上EDMA2 的EVENT QUEUE 0~ 3 这样8个EDMA任务才算是并行传输
3. 如果多个EDMA CHANNEL 映射到同一个 EVENT QUEUE 了,那么多个CHANEL同时被触发时,他们执行时是不是串行的?
4. 想提高多核并行使用EDMA的效率,还有哪些方面值得注意。
Andy Yin1:
您好,
1. EDMA3CC0的工作主频是1/2 CPU, 其他两个是1/3CPU,差异在于工作主频及所包含的channel数;
2. EDMA的每个TCC可以并行工作,所以你的想法是正确的,可以尽量将不同的任务并行分配到不同TCC,从而使其并行效率达到最优;
3. 每个channel的事件在Event Queue中排队,所以是串行的;
4. 你上述提到的将不同的任务并行分配到不同的TCC是可以提供并行性,同时影响效率的因素还有:源和目的地址,Acnt的值尽量满足EDMA传输总线的整数倍。
Richard Zhang:
回复 Andy Yin1:
HI,Andy!
谢谢你的回复。
EDMA3CC0的工作主频是1/2 CPU, 其他两个是1/3CPU
这样的话,我应该怎么计算传输时间呢,比如我程序测试出来的EDMA0 的 IPR相应位置位是50000个TSL时钟周期
那么该块数据传输时间 是 50000 x 1/1G 秒 还是 50000 x 1/1G x 2 秒。 (比如1G主频)
另外,如果我多核同时去读写某个EDMA的控制寄存器 比如 ESR IPR IPCR 需不需要用硬件信号量