lucien_1986的个人空间 https://blog.eetop.cn/lucien [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

查表应用中提高DIMM效率的办法

已有 704 次阅读| 2012-3-7 22:44 |个人分类:编码技巧

        在使用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进行访问时,就不需要等待行切换时间了。当这一组查表操作结束后,需要按照访问请求的原始顺序,将读写的结果返回到应用层逻辑。当然,打乱了访问的顺序对某些查表应用来说是不允许的,需要其他的办法来消除顺序打乱带来的影响。

 

-------------------------------------------------------------------------------------------------------------

更多精彩内容,请登录博客:

http://blog.163.com/fpga_ip/


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 3

    粉丝
  • 0

    好友
  • 0

    获赞
  • 32

    评论
  • 927

    访问数
关闭

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

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

GMT+8, 2024-4-27 01:39 , Processed in 0.026304 second(s), 14 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部