DDR2/3 中的刷新问题
好像是可以的。命令好像不一样。
具体查DDR 文档。
常用的是:auto-refresh。refresh地址是DDR自己累加的。
好像也可以指定refresh的地址,就是你说的运用。
谢谢,看了DDR2的一份文档,没有找到用户控制具体刷新地址的"刷新",只有刷新与自我刷新自我刷新,是为了节能、降耗,此时系统其余部分可以断电!
但不论是哪一种刷新,维持存储芯片内部数据不丢失,都是依靠存储芯片采用内部的地址管理机制完成的!
也就是说,我之前提出的概念是不成立的!
谢谢!
DRAM REFRESH是根據chip內的row counter來對一條row address 做 refresh。用戶是無法控制 row counter,但是可以不對 DRAM 下 REF command,只要針對你所使用的 row 做一次 ACT & PRE,等同做了一次 refresh。因為你使用較少區域,這樣你可以不用每7.8us做一次。
谢谢!的确,在用户使用的地址空间非常小的时候,这倒不失为一种方案!
但是,这种方案的弊端同样明显!以SAMSUNG DDR3为例,具体体现在:
1) ACT to ACT command period (tRC) [unit: ns] [only min] [no max]
DDR3-800: 52.5 / DDR3-1066: 50.625 / DDR3-1333: 49.5 / DDR3-1600: 48.75
2) ACT to PRE command period (tRAC) [unit: ns] [only min] [max: 9*tREFI]
DDR3-800: 37.5 / DDR3-1066: 37.5 / DDR3-1333: 36 / DDR3-1600: 35
基于这两点,可以确定,通过ACT + PRE来变相地实现”地址可控的刷新“,会导致额外的不小的时间开销。
要考慮 REF後的 tRFC 時間: DDR3 約為 110ns,也大約等同 ACT+PRE的時間。但是如果只針對小區域做刷新,並不需要每7.8us做一次。看你使用的區域佔比,將比例x7.8us即可。因為可以自己控制刷新時間,可以試看看最長可以多久,當然這是指使用(ACT+PRE),別使用REF command。
嗯,对,需要对周期数做一个考虑上的折衷!
学习了
