微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 关于DDR3的刷新周期

关于DDR3的刷新周期

时间:10-02 整理:3721RD 点击:
看了DDR3的工作手册,关于刷新有这种说法:正常情况下的刷新间隔为tREFI,但是最多可以允许推迟8个刷新操作,如附件的图中所示。我就不明白了,刷新是为了保证DRAM中存储的数据不丢失,如果9倍的tREFI可以满足刷新需求的话,为啥不直接把刷新周期定为9tREFI?以及,如果真的推迟了也没有发生数据丢失的话,后面的刷新操作按正常进行就行了,为啥图中还需要在后头把推迟的8次刷新给补上?这不是多此一举吗?
希望高手指点一下,非常感谢~


tREFI是刷新的平均周期。很多DRAM,常温下每次完整刷新的最小时间是64ms,一次完整刷新指的是把所有ROW都刷新一边。DRAM的每次刷新操作只能对一个ROW刷行,因此tREFI=64ms/row number。
如果前面刷新的慢了,必须要在后面把时间补回来。


明白了,不同的刷新针对的是不同的row,所以前面漏掉的后面才要补上
太感谢了!

一般只要在ddr的spec规定的时间内发出的刷新的总的次数能满足要求就可以了,刷新一次ddr的每个row就加一次
这里为什么要一次发8个或者9个刷新的作用是,该刷新的时候就连续发多个刷新,这样就可以合理的插入read write active等命令,对read write的阻塞作用会一定程度地减小,最终造成数据的吞吐速率增加
同时,刷新前是需要下precharge all这个命令,这样也可以节省多个precharge all的命令个数


明白了,非常感谢!

每次刷新都会对所有逻辑bank都刷新吗?

刷新是平均的。不是必须按照一个间隔 。


同问!
每次刷新刷一行,俺也不知道是一个bank的一行还是所有bank的一行……
感觉应该是所有bank一起刷?


嗯,多谢啦,能否回答一下6楼那个问题?



    每次刷行是对所有的bank的其中一个row都刷新一次,也就是每个bank内的控制刷行的计数器都加一次,但是不一定每个bank的row是相同的,所以一般64ms指的是遍历一个bank的时间,所有bank是并行刷新的。


赞,太感谢了!

谢谢解释,解开了我一些关于DDR的疑惑



  对于micron的DDR3,有的达到了16K的Row,但是refresh count仍然保持8K,所以我感觉并非一个REF命令刷一个Row。
  不知道具体怎么操作的?

标题

    这中情况下,刷新周期参数配置要小一半才行。



    你是指的我说的这种情况吗?
tREFI降低一半?也就是一般情况的7.8变为3.9?
但是micronde手册上并未这样指出啊?



   美光的文档上是有提到7.8(64ms/8192)和3.9 (32ms/8192)但是,这两个参数是针对不同的Tc的,不是针对row的

很好!



   不管row的数目,平均刷新间隔tREFI都是7.8us。如果row比较多,那么一个刷新命令就会刷新更多的行,7.8us=64ms/8192得到的,这是跟以前的ddr2/ddr兼容。请注意另一个参数最小刷新间隔tRFC(min),这个参数会随着row的增加而增大,为什么会这样呢?就是因为如果row更多,那么一个刷新命令就要刷新更多的行,那么就要求两个刷新命令之间的间隔更大。

很好,谢谢解释

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

网站地图

Top