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

6678总线冲突问题

各位专家好:

      最近在调试过程中遇到了一些问题,DSP通过SRIO从FPGA接收数据,乒乓写在共享内存上,doorbell中断后dma到DDR3中,收集齐数据后,每个核将各自分配

的数据从DDR3 dma到L2中进行运算,结果存放在MSM中,最后根据计算结果,从DDR3中对相应结果的源数据进行寻址,最后每个核计算完成后通过Hyperlink发送

(使用DMA)最终结果。发现相应计算结果多了以后,会出现SRIO丢针头,doorbell丢失现象。去掉DDR3中源数据寻址或者去掉Hyperlink传结果后srio恢复正常。

请问以上现象是否是因为DSP的总线冲突,或者其他什么原因?没有什么思路了,希望得到专家的指点,谢谢

Allen35065:

你先把各个步骤需要的时间测试一下,把时序图列出来看是否在某些部分有冲突,SRIO丢帧头是怎么看出来的?

li yanlong:

回复 Allen35065:

专家您好:

       前两天有事没上网,回复晚了,望见谅。

       各模块的时间已经测试过了,访问重叠的地方集中在DDR3和MSM上,最严重的冲突出现在运算的最后,1-7核随着门限调整对DDR3的访问量大大增加(CPU点

寻址)同时核0通过SRIO/HYPERLINK和DMA完成源数据和结果的传输。时间测试来看,同时访问DDR3时效率会变低,而MSM没测出此类问题。

       SRIO的针头是SRIO人为加的数据针头不是底层的64bit信息。

       谢谢!!!

xiao xiao6:

HI jacklee

        SRIO 和 HYPERLINK 同属于高速接口,DMA同时对DDR3进行访问,可能是因为Hyperlink取数据时影响了SRIO的CRC校检,情致接收不了接下来的下一个DOORBELL,建议你分时处理两个高速接口

Allen35065:

回复 li yanlong:

你现在的SRIO用的是何种读写方式?

从你的反馈看,DDR3的带宽是个问题,毕竟DDR3的带宽和效率比MSM要低很多,以下有一些优化的方法可以根据你的系统调整试试看

1. 增大L2 cache以减少CPU读写DDR3的频率,弊端是要控制好时序invalidate或writeback;

2. DDR3是分bank的,同时对一个bank操作的话效率会降低,尽量把同一时间多核的读写分到不同的bank里去,bank的概念见DDR3控制器的手册或者google;

3. 根据Buffer读写的频度把一些关键的buffer放到片内RAM里去。

li yanlong:

回复 xiao xiao6:

你好 xiao xiao6:

       目前通过加大FPGA端的SRIO FIFO深度,丢门铃问题基本解决了。不过总线冲突的问题确实存在,感谢你的回答!!!

赞(0)
未经允许不得转载:TI中文支持网 » 6678总线冲突问题
分享到: 更多 (0)