DDR4 Spec 第四章 4.4-4.6

最近在DDR4方面做了一些工作,但依然对整个流程理解得不够透彻,遂在去年4月阅读DDR4标准的基础上再次阅读该手册,理清了不少含糊的脉络。由于阅读的英文很快便会忘记,加之阅读英文时脑海中不自觉地翻译,遂萌生将其直接翻译的想法。

前两章和第六章之后不翻译,只翻译设计和验证时所需的基本概念,此包括3、4、5章节。翻译过程中结合了不少资料,其中包括CSDN上前辈的翻译:hierro_sic的博客_CSDN博客-DDR4标准,DDR3,SNPS-PHY领域博主

还有些其它的参考博客,分布在各个章节内。

所有的翻译均存于印象笔记与有道云笔记中,今上传互联网。

4.4 DLL-off模式以及DLL on/off切换流程

DLL全称为延迟锁定回路(Delay Lock Loop)。

DDR SDRAM对时钟的精确性有着很高的要求,而DDR SDRAM有两个时钟,一个是外部的总线时钟,一个是内部的工作时钟,在理论上DDR SDRAM这两个时钟应该是同步的,但由于种种原因,如温度、电压波动而产生延迟使两者很难同步,更何况时钟频率本身也有不稳定的情况(SDRAM也有内部时钟,不过因为它的工作/传输频率较低,所以内外同步问题并不突出)。DDR SDRAM的tAC就是因为内部时钟与外部时钟有偏差而引起的,它很可能造成因数据不同步而产生错误的恶果。

实际上,不同步就是一种正/负延迟,如果延迟不可避免,那么若是设定一个延迟值,如一个时钟周期,那么内外时钟的上升与下降沿还是同步的。鉴于外部时钟周期也不会绝对统一,所以需要根据外部时钟动态修正内部时钟的延迟来实现与外部时钟的同步,这就是DLL的任务。DLL不同于主板上的PLL,它不涉及频率与电压转换,而是生成一个延迟量给内部时钟。

目前DLL有两种实现方法,一个是时钟频率测量法(CFM,Clock Frequency Measurement),一个是时钟比较法(CC,Clock Comparator)。CFM是测量外部时钟的频率周期,然后以此周期为延迟值控制内部时钟,这样内外时钟正好就相差了一个时钟周期,从而实现同步。DLL就这样反复测量反复控制延迟值,使内部时钟与外部时钟保持同步。

下图为CFM式DLL工作示意图

CC的方法则是比较内外部时钟的长短,如果内部时钟周期短了,就将所少的延迟加到下一个内部时钟周期里,然后再与外部时钟做比较,若是内部时钟周期长了,就将多出的延迟从下一个内部时钟中刨除,如此往复,最终使内外时钟同步。下图为CC式DLL工作示意图。

CFM与CC各有优缺点,CFM的校正速度快,仅用两个时钟周期,但容易受到噪音干扰,并且如果测量失误,则内部的延迟就永远错下去了。CC的优点则是更稳定可靠,如果比较失败,延迟受影响的只是一个数据(而且不会太严重),不会涉及到后面的延迟修正,但它的修正时间要比CFM长。DLL功能在DDR SDRAM中可以被禁止,但仅限于除错与评估操作,正常工作状态是自动有效的。

以上内容源自https://www.cnblogs.com/shengansong/archive/2012/09/01/2666213.html

4.4.1 DLL on/off切换流程

将MR1的A0设置为0,则会禁用DLL。

4.4.2 DLL “on”到DLL "off"的具体流程

要从DLL“on”切换到DLL“off”,需要在自刷新期间更改时钟频率(单就更改时钟频率来说,这个功能用得并不多,于是导致DLL off用得也不多),具体方式如下:

  1. 从DDR4 idle态开始,所有的bank都被pre-charged(已经被),所有时序都满足,且在MRS命令设置MR1来禁用DLL之前,DRAM的终端电阻RTT_NOM必须为高阻态。
  2. 将MR1的A0设置为0。
  3. 等待tMOD时长。
  4. 进入自刷新模式,等待tCKSRE时长。
  5. 改变时钟频率,详情参见4.6章节。
  6. 等待时钟稳定且可用,并等待至少tCKSRX时长。
  7. 等待tXS_Fast或tXS_Abort或tXS时长,之后设置MR寄存器以合适的值,尤其是CL, CWL, WR值的更新。在tXS_Fast后,或许需要发送ZQCL命令。
  8. 等待tMOD时长,之后DRAM ready。

发送SRE命令,CKE必须保持为高直到任何MRS命令对应的tMOD时序满足。另外,如果在进入自刷新模式时,任何ODT的特性被使能(在MR寄存器中设置),那么ODT pin脚必须在此期间保持为低电平,直到tMOD时序满足。如果在进入自刷新时,RTT_NOM被disable,则不用关心ODT pin脚的电平。

4.4.3 DLL “off”到DLL "on"的具体流程

要从DLL“off”切换到DLL“on”,需要在自刷新期间更改时钟频率,具体方式如下:

  1. 从DDR4 idle态开始,所有的bank都被pre-charged(已经被),所有时序都满足,且在MRS命令设置MR1来禁用DLL之前,且DRAM的终端电阻RTT_NOM必须为高阻态。
  2. 进入自刷新模式,等待tCKSRE时序满足。
  3. 改变频率,详见4.6章节。
  4. 等待时钟稳定且可用,并等待至少tCKSRX时长。
  5. 发送SRX命令(退出自刷新命令),直到DLL复位命令的时序tDLLK被满足前,CKE必须拉高。另外,如果在进入自刷新模式时,任何ODT特性被使能(在MR寄存器中设置),那么直到DLL复位命令的时序tDLLK被满足前,ODT信号必须保持为低电平。如果在进入自刷新时,RTT_NOM被disable,则不用关心ODT pin脚的电平。
  6. 等待tXS或tXS_ABORT时长(取决于MR4的A9),之后设置MR1的A0为1来使能DLL。
  7. 等待tMRD时长,之后置位MR0的A8为1,进行DLL复位。
  8. 等待tMRD,之后设置MR寄存器以合适的值。尤其是CL, CWL, WR值的更新。在发送任何MRS命令的tMOD之后,在tDLLK期间或在tDLLK之后,ZQCL命令可能需要发送。
  9. 等待tMOD,之后DRAM ready。注意,需要在DLL复位后等待tDLLK时长,才能发送需要DLL锁定时才能发送的命令(Remember to wait tDLLK after DLL Reset before applying command requiring a locked DLL)。另外,ZQCL命令发送后也需要等待tZQoper时长。

        

4.5 DLL-off模式

通过设置MR1的A0为0,DLL功能将被禁用。MR1的A0 bit能够在初始化或之后被更改。详见4.6章节输入时钟频率的改变。

以下列出的DLL-off操作是DDR4的可选特性。DLL-off模式下最大的时钟频率由tCKDLL_OFF确定;除了需要满足刷新间隔tREFI时序的要求,一般来说,这里并没有最低的时钟频率限定。

由于延迟计数器和时序的限制,只有一组CAS Latency(CL)和CAS Write Latency(CWL)受到支持。DLL-off模式对应的值为CL = 10和CWL = 9。且在DLL-off模式下,CA Parity模式不被允许使用。

DLL-off模式会影响读数据时钟到Data Strobe的时序(tDQSCK),但是并不影响Data Strobe到Data的时序(tDQSQ, tQH)。于是,需要特别注意读数据到memory controller的时钟域。

在DLL-on模式中,tDQSCK开始于读命令之后的AL+CL周期后,DLL-off模式下,tDQSCK开始于读命令后的AL+CL-1周期后。另一个不同点在于,tDQSCK可能会稍长于tCK(一个时钟周期),甚至比tCK长很多。相较于DLL-on模式,在DLL-off模式下,tDQSCKmin和tDQSCKmax差距较大,且tDQSCK(DLL-off)的值由厂商自定义。

图13显示了DLL-off模式下,读操作的时序。

 4.6 输入时钟频率的改变

一般来说,一旦DDR4 SDRAM被初始化完成,器件会要求时钟处于稳定状态,以进行正常操作。这意味着,一旦时钟处于稳定状态,除了时钟允许的偏移,例如时钟抖动或者SSC(spread spectrum clocking)之外,其它的时钟变量将不会被允许。

但是,在自刷新模式下,可以改变输入时钟的频率,一旦退出了自刷新,时钟频率将不会允许改变。

一旦DDR4进入了自刷新模式,且时序tCKSRE(进入自刷新)被满足,器件将不会关心时钟的状态,此时便可改变时钟频率,且新的时钟在tCKSRX(退出自刷新)之前需要保持稳定。当仅为了改变时钟频率而进入和退出自刷新模式时,仍必须仍然满足4.27节“自刷新操作”中概述的自刷新进入和退出规范。

改变时钟频率后,需要对MR0, MR2, MR3, MR4, MR5, MR6作相应更改。例如,更改CL, CWL, Gear-down mode, 读和写的前导,Command Address Latency(CAL Mode),Command Address Parity(CA Parity Mode),以及tCCD_L/tDLLK的值。

特别地,在处于自刷新模式下更改时钟频率时,必须disable Command Address Parity Latency,也就是disable PL。例如,将DDR4的speed bin从2133切换到2933,MR5[2:0]必须从PL=4切换到PL=disable,再切换到PL=6。正确的流程如下:
(1) 通过MR5[2:0]将PL=4切换到PL=disable
(2) 进入自刷新模式
(3) 更改时钟频率
(4) 退出自刷新模式
(5) 通过MR5[2:0]使能CA Parity,并将CA Parity Latency设置为6。

如果在更改时钟频率后需要将MR更新,则对应的MR设置必须优先于DRAM离开IDLE态之前,除非DRAM复位(原文是这样的:the required MR settings must be updated prior to removing the DRAM from the IDLE state, unless the DRAM is RESET),个人理解为,在更改时钟频率后,最好在DRAM从IDLE转到下一个状态之前,更新MR寄存器。否则,如果DRAM离开IDLE态进入自刷新模式或ZQ校准状态,那么对MR的更新将会延迟到DRAM下一次进入IDLE之前。

如果MR6(更改tDLLK)优先于SRE(自刷新进入)命令前发出,那么DLL将在SRX时(自刷新退出时)会自动地重新锁定。然而,如果MR6在SRE命令发出后进行更改,那么MR0也必须在MR6发出后进行更改(发送MR0)以复位DLL。

DDR4 SDRAM对时钟频率的要求是,在规定的最大/最小的speed bin内进行频率切换。如果低于规定的最小的speed bin,则需将DLL关闭,具体的关闭流程详见4.4章节。

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Jedec DDR4规范是一种用于内存模块的标准规范,是在DDR3规范的基础上进行了升级和改进的。 Jedec DDR4规范的主要目标是提高内存的性能和能效。与DDR3相比,DDR4采用了更高的内部频率和更低的电压,从而可以实现更高的带宽和更低的功耗。DDR4的内部频率通常在2133MHz到3200MHz之间,电压则从1.2V降低到1.05V。 DDR4规范还引入了一些新的技术和功能。例如,DDR4内存模块在设计上更加灵活,可以根据需要支持不同的容量和速度。此外,DDR4还支持“错误校正编码”(ECC)技术,可以检测和纠正内存中的错误,提高数据的可靠性。 Jedec DDR4规范还增加了一些新的命令、信号和引脚。例如,DDR4规范引入了“翻转寻址线”(CA training)功能,可以解决内存中的信号互相干扰的问题,提高数据的传输稳定性。此外,DDR4还引入了新的引脚布局,以支持更高的带宽和更快的数据传输速度。 总之,Jedec DDR4规范是一种用于内存模块的标准规范,通过提高频率和降低电压,以及引入新的技术和功能,达到提高内存性能和能效的目的。它的推出为计算机系统的性能提升提供了一定的保障。 ### 回答2: JEDEC DDR4规范是一种用于计算机内存的标准。它是由JEDEC(电子行业协会)制定的,旨在提供性能和能效的提升。这项规范定义了DDR4内存模块的技术要求和接口特性,以确保不同厂商生产的DDR4内存模块可以在不同的计算机平台上互通。 JEDEC DDR4规范包含了许多升级和改进,与之前的DDR3相比,DDR4内存模块具有更高的数据传输速率、更大的容量和更低的功耗。 根据JEDEC DDR4规范,DDR4内存模块的电压下降到1.2V,相比DDR3的1.5V,功耗减少了20%。此外,DDR4的数据传输速率也明显提高,从DDR3的最高2133MHz提升到DDR4的最高3200MHz。这一增加的速率使得DDR4内存模块在处理数据时更加高效。 DDR4规范还引入了一些新特性,如内存时钟增强(CRC)和地址伙伴预取(AP)等。内存时钟增强是一种增强的错误检测和修复机制,可提高内存模块的可靠性。地址伙伴预取则可以提高数据访问速度,减少延迟。 总而言之,JEDEC DDR4规范对于计算机内存的发展具有重要意义。它提供了更高的性能、更大的容量和更低的功耗,同时保证了跨不同计算机平台的互操作性。通过采用DDR4内存模块,用户可以获得更快的数据传输速度和更高的系统性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值