您好工程师,我目前正在使用6678进行调试
我们设计的板卡DDR3已经可以正常初始化和读写,但是对于与DDR3相连的EMIF64位总线还有一些疑问
1.首先当内核需要对DDR3进行操纵肯定会使用EMIF64总线,但是如果当此时采用EDMA对DDR3也进行数据操作,那么EMIF64总线是否支持同时操作,会不会出现总线冲突,如果冲突那么采取什么措施规避冲突
2.由外部SRIO接口如果向6678的外挂的DDR3写数据,那么数据传输也会占用EMIF64位总线,那么如果同时EDMA操作需要读取DDR3的另一地址空间的数据,EMIF64位总线会冲突吗?
Wei:
DDR_EMIF在任何时候都只支持一个任务。如果出现多个host同时需要访问DDR,那么MSMC会对访问仲裁。
具体详细内容请参考MSMC手册里面关于arbitration和bandwidth management的内容
sa li:
回复 Wei:
谢谢工程师的答复,我仔细阅读了MSMC手册的相关内容,还有一些疑问
1.我从FPGA向DSP的DDR3发送数据,同时EDMA需要从DDR3将数据搬移到共享内存,那么如果访问仲裁,是否会影响上述过程的速度。
2.我做了一下测试,我在内核0不停执行EDMA操作将数据从DDR搬入共享内存,在内核1不停使用SRIO的环路测试,从共享内存搬入DDR,地址不存在冲突,测试的速度没有影响,请问这种测试方式对吗??
Wei:
回复 sa li:
问题1,性能会受到影响
问题2,你的测试结果是什么?在两个业务同时跑和只跑一个时候的流量是多少?EDMA搬运数据的时候,最小颗粒度是多少?最小颗粒度会影响DDR搬运性能