EETOP 创芯网论坛 (原名:电子顶级开发网)

标题: 如何提高DDR3的效率 [打印本页]

作者: 半人小马    时间: 2013-12-8 20:56
标题: 如何提高DDR3的效率
现在因为项目需要,要用DDR3来实现一个4入4出的vedio frame buffer。因为片子使用的是lattice的,参考设计什么的非常少。需要自己调用DDR3控制器来实现这个vedio frame buffer。可是购买的Lattice的DDR3控制器个人感觉比较奇葩。当配置DDR3控制器的时候,这里两片DDR3构成32位位宽。选择burst length为8的时候,控制器必须进行32个comand burst(也就是一次操作就要操作32*8*32 bit的数据)才能达到最高的带宽利用率,约为94%左右。当选择burst length为1的时候,不管怎样,即使是进行bank交替操作,ddr3的带宽利用率也只有20%-30%左右。
     这里就觉得比较纠结。burst length太大,frame buffer的输出端当要对输入的视频帧进行截取一部分的时候会变相降低DDR3带宽利用率,这样的话总的带宽就不够。burst length太小,整体的带宽利用率就更悲催了。请问各位前辈有没有什么好的方法能够在这种应用用最大化的利用DDR3的带宽?
作者: 504472832    时间: 2013-12-8 21:19
回复 1# 半人小马


   抛砖引玉:1.优化数据存储结构,就是把有可能同时用到的数据到一起;
2.看设计是否适合加个Cache
作者: 半人小马    时间: 2013-12-8 21:31
回复 2# 504472832


    感谢楼上的回答,由于视频数据的连续性比较强,加cache不知道会不会有改善。至于优化数据结构的话,我暂时还没有想到好的办法。
作者: Timme    时间: 2013-12-8 23:13
自己写一个控制器,你这个应用里效率能到90%~95%
作者: 半人小马    时间: 2013-12-9 00:02
回复 4# Timme


   自己写??我只写过SDR SDRAM的控制器。DDR3的没有搞过啊。不知道好不好写。你的意思是PHY也自己搞?
作者: 504472832    时间: 2013-12-9 09:29
本帖最后由 504472832 于 2013-12-9 09:30 编辑

回复 3# 半人小马


   既然连续性强的话,那每次突发读就是了,反正以后会用的到的,如果确定是顺序操作的话,可以加fifo
作者: richardxingxing    时间: 2013-12-9 10:32
内部加个小FIFO可以优化吧
作者: 半人小马    时间: 2013-12-9 19:23
回复 6# 504472832 嗯,大部分情况下是可以的。但是有时候需要对视频进行截取。连续性就变得比较差。
作者: 半人小马    时间: 2013-12-9 19:24
回复 7# richardxingxing
这里加FIFO的话,因为控制器我没法修改,加FIFO好像作用不大。
作者: Jony_oy    时间: 2015-8-25 17:19
hi,你好,这个问题最后怎么解决了,现在我们开发也遇到了相同问题,请指教,谢谢!
作者: phoenix_heart    时间: 2015-9-25 23:53





欢迎光临 EETOP 创芯网论坛 (原名:电子顶级开发网) (https://bbs.eetop.cn/) Powered by Discuz! X3.5