写入延迟 tDQSS
在DQS 写入时序图中,可以发现写入延迟已经不是0了,在发出写入命令后,DQS与写入数据要等一段时间才会送达**。这个周期被称为 DQS 相对于写入命令的延迟时间(**tDQSS, WRITE Command to the first corresponding rising edge of DQS)。
为什么要有这样的延迟设计呢?原因也在于同步,毕竟一个时钟周期两次传送,需要很高的控制精度,它必须要等接收方做好充分的准备才行。tDQSS 是 DDR 内存写入操作的一个重要参数,太短的话恐怕接受有误,太长则会造成总线空闲。tDQSS 短不能小于 0.75 个时钟周期,长不能超过 1.25 个时钟周期。
正常情况下,tDQSS 是一个时钟周期,但写入时接受方的时钟只用来控制命令信号的同步,而数据的接受则完全依靠 DQS 进行同步,所以 DQS 与时钟不同步也无所谓。不过,tDQSS产生了一个不利影响— — 读后写操作延迟的增加,如果 CL=2.5,还要在 tDQSS 基础上加入半个时钟周期,因为命令都要在 CK 的上升沿发出。下图中,当 CL=2.5 时,读后写的延迟将为 tDQSS+0.5 个时钟周期(图中 BL=2)。
另外,DDR 内存的数据真正写入由于要经过更多步骤的处理,所以写回时间(tWR)也明显延长,一般在3个时钟周期左右,而在 DDR-Ⅱ规范中更是将 tWR 列为模式寄存器的一项,可见它的重要性。
14.内存的自动自刷新 ASR(Automatic Self-Refresh)
为了保证所保存的数据不丢失,DRAMASR必须定时进行刷新。为了的节省电力,DDR3采用了一种新型的自动自刷新设计(ASR,Automatic Self-Refresh)。当开始ASR之后,将通过一个内置于DRAM芯片的温度传感器来控制刷新的频率,因为刷新频率高的话,消电就大,温度也随之升高。而温度传感器则在保证数据不丢失的情况下,尽量减少刷新频率,降低工作温度。不过DDR3的ASR是可选设计,并不见得市场上的DDR3内存都支持这一功能,因此还有一个附加的功能就是自刷新温度范围(SRT,Self-Refresh Temperature)。通过模式寄存器,可以选择两个温度范围,一个是普通的的温度范围(例如0℃至85℃),另一个是扩展温度范围,比如到95℃。对于DRAM内部设定的这两种温度范围,DRAM将以恒定的频率和电流进行刷新操作。
15. 局部自刷新 RASR(Partial Array Self-Refresh)
局部自刷新(RASR,Partial Array Self-Refresh)这是DDR3的一个可选项,通过这一功能,DDR3内存芯片可以只刷新部分逻辑Bank,而不是全部刷新,从而限度的减少因自刷新产生的电力消耗。这一点与移动型内存(Mobile DRAM)的设计很相似
16.延迟锁定回路(DLL)
DDR SDRAM 对时钟的**性有着很高的要求,而 DDR SDRAM 有两个时钟,一个是外部的总线时钟,一个是内部的工作时钟,在理论上 DDR SDRAM 这两个时钟应该是同步的,但由于种种原因,如温度、电压波动而产生延迟使两者很难同步,更何况时钟频率本身也有不稳定的情况(SDRAM 也有内部时钟,不过因为它的工作/传输频率较低,所以内外同步问题并不突出)。
DDR SDRAM 的 tAC 就是因为内部时钟与外部时钟有偏差而引起的,它很可能造成因数据不同步而产生错误的恶果。实际上,不同步就是一种正/负延迟,如果延迟不可避免,那么若是设定一个延迟值,如一个时钟周期,那么内外时钟的上升与下降沿还是同步的。鉴于外部时钟周期也不会统一,所以需要根据外部时钟动态修正内部时钟的延迟来实现与外部时钟的同步,这就是 DLL 的任务。
DLL 不同于主板上的 PLL,它不涉及频率与电压转换,而是生成一个延迟量给内部时钟。目前 DLL 有两种实现方法,一个是时钟频率测量法(CFM,Clock Frequency Measurement),一个是时钟比较法(CC,Clock Comparator)。
CFM 是测量外部时钟的频率周期,然后以此周期为延迟值控制内部时钟,这样内外时钟正好就相差了一个时钟周期,从而实现同步。DLL 就这样反复测量反复控制延迟值,使内部时钟与外部时钟保持同步。
CC的方法则是比较内外部时钟的长短,如果内部时钟周期短了,就将所少的延迟加到下一个内部时钟周期里,然后再与外部时钟做比较,若是内部时钟周期长了,就将多出的延迟从下一个内部时钟中刨除,如此往复,终使内外时钟同步。