微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 查表应用中提高DIMM效率的办法

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

时间:10-02 整理:3721RD 点击:

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

好高端啊,有时序图么?

学习中,谢谢

没有理解,继续琢磨。

对于DDR2 DD3的行切换 将BA的地址 不放在 地址总线最高位 官方的IP核也提供了这种模式

看懂了,很不错。
我觉得两种方法都是可以实现的

hor noe moble ie ia iv us

正需要这些东西

总结的不错啊!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top