在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 5693|回复: 8

[原创] 查表应用中提高DIMM效率的办法

[复制链接]
发表于 2012-3-7 23:53:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 lucien_1986 于 2012-3-7 23:58 编辑

在使用DIMM(DDR2/DDR3 SDRAM)的时候,很重要的一点是提高DIMM的带宽利用率。DIMM命令总线上传输一个命令,需要在数据总线上传输若干组数据,在进行一个读写操作的间隙,在命令总线输入一个行切换命令,此时数据总线上传输的还是之前一个命令的数据。因此,如果执行的是其他BANK的行切换命令,当前读写的BANK是不受影响的,不需要等待行切换结束再执行读写操作;如果是当前访问的BANK需要执行行切换,则只能等新的行被打开以后才能操作。因此,提高DIMM带宽利用率的关键在于减少BANK内行切换的等待时间,可以通过不连续访问同一个BANK的方法来消除行切换的等待时间。例如,可以依次访问一个DIMM的8个BANK,重复这个循环,在访问其他BANK的时候对空闲的BANK进行行切换,这样就消除行切换时间对接口带宽的影响。在这种访问控制中,需要知道每一个BANK的下一次操作是在哪一行,需要对访问请求队列进行分析。
       如果DIMM是用做数据缓存的,可以通过将数据依次连续的存放在DIMM的不同BANK内,避免同一个BANK的行切换等待时间。但是,如果DIMM是用来查表的,那么表项的地址是毫无规律,无法做到不连续访问同一个BANK。为了解决这个问题,可以在访问请求(读或者写)发送到DIMM之前,将所有的访问请求进行一个排序,将访问顺序打乱,尽量让对同一个BANK的访问隔开。例如,在访问请求队列里面有十个请求,分别是对BANK0、BANK3、BANK3、BANK2、BANK2、BANK5、BANK7、BANK4、BANK6、BANK6的访问,可以将访问顺序调整为BANK3、BANK2、BANK0、BANK5、BANK3、BANK2、BANK6、BANK7、BANK4、BANK6。这样子在对BANK2、BANK0、BANK5的访问时,就可以对BANK3执行行切换,再次对BANK3进行访问时,就不需要等待行切换时间了。当这一组查表操作结束后,需要按照访问请求的原始顺序,将读写的结果返回到应用层逻辑。当然,打乱了访问的顺序对某些查表应用来说是不允许的,需要其他的办法来消除顺序打乱带来的影响。
发表于 2012-7-17 19:29:53 | 显示全部楼层
好高端啊,有时序图么??
发表于 2012-9-30 09:33:19 | 显示全部楼层
学习中,谢谢
发表于 2012-11-6 15:28:41 | 显示全部楼层
没有理解,继续琢磨。
发表于 2013-1-6 13:26:20 | 显示全部楼层
对于DDR2 DD3的行切换 将BA的地址 不放在 地址总线最高位 官方的IP核也提供了这种模式
发表于 2013-1-18 16:19:31 | 显示全部楼层
看懂了,很不错。
我觉得两种方法都是可以实现的
发表于 2013-1-30 15:47:17 | 显示全部楼层
hor noe moble ie ia iv us
发表于 2014-2-16 19:30:03 | 显示全部楼层
正需要这些东西
发表于 2014-2-28 18:17:02 | 显示全部楼层
总结的不错啊!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /3 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-19 13:43 , Processed in 0.028988 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表