DDR4内存Gear-down模式详解:原理、影响及优化策略
DDR4内存Gear-down模式详解:原理、影响及优化策略
DDR4的Gear-down模式是一种通过降低DRAM控制命令(CA,Control & Address)总线效率,提高控制命令时序裕度,从而提高系统兼容性、稳定性的特性,一般应用在家用PC等场景中。
导言
DDR4的Gear-down模式是一种通过降低DRAM控制命令(CA,Control & Address)总线效率,提高控制命令时序裕度,从而提高系统兼容性、稳定性的特性,一般应用在家用PC等场景中。
在网络搜索Gear-down模式,一般只有硬件发烧友,内存超频爱好者在讨论打开或者关闭BIOS中的Gear-down模式,说明首先这不是普通用户操心的事儿(笑)。
从一名SoC DDR集成工程师的视角出发,Gear-down模式的意义是可以损失一些可有可无的性能(如果应用场景不存在性能瓶颈的话),提高系统对于Package出Pin,PCB布线、DRAM器件的兼容性。直白地说,能够降低系统成本——省他一笔!然后再用低成本卷友商!
命令控制总线速率
我们知道DDR4命令控制总线在DRAM时钟(CK)的上升沿发送或者接收命令,这样相对于在上升沿和下降沿都发送或者接收的数据总线(DQ),命令控制总线速率是数据总线的一半,也就是1/2DDR4数据速率。比如DDR4-3200中,命令控制总线的工作频率就是3200/2=1600MHz。
想让DRAM颗粒正确接收控制器发出的命令与地址,需要在命令地址信号到达DRAM颗粒时满足DRAM的建立与保持时序(Setup/Hold timing)。也就是命令与地址信号与时钟的相对相位关系,一般来说随着DDR频率的提升,建立与保持时序会变更加严格。比如建立时序,DDR4-3200的tIS为130ps,而DDR4-2933的tIS为138ps。
一般来说,DRAM的建立与保持时序是否满足取决于芯片内部、封装、PCB、内存条上对于时钟信号与命令控制信号之间的时延差异(Skew)控制。总的来说,一般专业团队都可以完成满足DRAM时序要求的设计,但如果想让工程师名做出更省成本,兼容性更好的设计,他们会对老板们说“第一,这得加钱,第二,得放松时序要求”。这时就出现了DDR4 Gear-down模式的用武之地。
Gear-down模式原理
正常情况下,CA总线两端的DRAM和控制器都工作于1/2DDR4数据速率,而Gear-down模式下DRAM内部的CA总线采样时钟频率减半为1/4DDR4数据速率,但是DRAM总线上的CK时钟频率不变。Gear-down模式下,控制器可以将CS_n、CKE以及ODT pin的速率同样下降到1/4数据速率,随着片选信号CS_n有效区间扩大到持续两个周期,其他ADDR等地址与控制信号持续时间也同样可以扩大到两个周期,建立和保持时序分别扩大到tGEAR_setup和tGEAR_hold,放松了原本的建立与保持时序。
对于何时以及如何进入或者退出Gear-down模式,DDR4协议分别有一些规定。
进入Gear-down模式
DRAM只在初始化或者退出self-refresh时进入Gear-down模式,以初始化时进入Gear-down模式为例,具体的步骤如下:
- 在上电后,DRAM默认工作在1/2data rate下,也称1N模式
- 置高Reset信号
- 置高CKE信号使能DRAM,等待tXPR_GEAR
- 发送MRS命令设置MR3比特A3为1,使能DRAM Gear-down模式,注意此时的MRS命令已经工作在慢速率下,即1/4data rate。而此时的CS_n信号的有效长度仍然为1N模式,即一个CK周期。
- 在低速的MRS命令之后,发送多个长度为1N周期的CS_n同步脉冲信号,用于和DRAM建立同步。MRS命令之后发送同步脉冲信号的时间约束为tSYNC_GEAR,规定这是一段长度为偶数个CK周期的时序。
- 继续初始化程序,等待初始化用到的tDLLK, tZQinit时序结束,再等待1N同步脉冲结束之后tCMD_Gear时序结束,DRAM进入Gear-down模式(2N模式),后续的CS_n等信号有效长度变成2个时钟周期。
在进入Gear-down模式后,因为命令持续时间和命令间的间隔都变成了2个CK周期,因此部分以CK周期为单位的时序参数数值需要都为偶数,包括:
- CAS Latency(CL)时序参数为偶数
- Write Recovery和Read to Precharge时序参数为偶数
- Additive Latency(AL)时序参数为0或者CL-2
- CAS Write Latency(WL)时序参数为偶数
- CS to Command/Address Latency Mode:偶数个时钟周期
- CA Parity Latency Mode:偶数个时钟周期
下图是Gear-down模式打开或者关闭时的时序图比较,可以看到Gear-down模式打开后,命令之间的间隔将增加1个cycle,这是因为AL需要等于CL-2,而不是原本的CL-1。但是整体的读数据延迟实际上没有区别。但是如果这个例子中AL=0而CL为奇数比如17时,这时RL=AL+CL将被增加到18,导致实际读数据出现延迟。
退出Gear-down模式
退出Gear-down模式的正确做法是使DRAM进入Self-refresh模式,进入Self-refresh模式后无论DRAM之前处于哪种模式,DRAM都将重返1N模式。但换句话说,如果DRAM退出Self-refresh模式后还想保持2N模式,需要重新走一遍流程,重新配置为2N模式。
用户或许有不一样的想法,比如想通过直接改写MR3比特A3为0,退出Gear-down模式。这种情况下,DDR4协议警告道:如果你通过进入自刷新以外的一切方法退出Gear-down模式,标准DDR4器件将不保证正常工作,也不保证数据不丢失。
唯一JEDEC认证退出Gear-down模式的方法:进入自刷新模式。
Gear-down模式对于系统性能的影响
首先Gear-down模式下需要时序参数为偶数,这使设计者不得不向上取整某些时序参数,导致系统时延(Latency)性能有所下降。其次,Gear-down模式下单个命令持续两个周期,降低了CA总线的效率,在某些场景下会导致后续的命令不得不等待前序命令,从而导致了更大的系统时延。
Gear-down模式对系统带宽(BW,Bandwidth)的影响不大,因为一般DRAM系统带宽的瓶颈在数据总线而不是CA总线,毕竟命令数量远少于数据Burst数量,影响在于部分命令等待延后执行可能导致其数据传输也延后,数据总线会出现更多空闲,即气泡(Bubble)。
不过,总而言之,Gear-down模式对于系统的影响大小还是取决于具体的数据流量类型,以及应用对于性能的需求。
一些相关概念的讨论
有一些和Gear-down模式接近的概念,包括1T/2T mode,Gear1和Gear2等,结合一些看到的资料和自己的认识聊一下。由于相关资料和认识有限,说得可能不准确,欢迎评论区指正。
1T/2T
首先1T/2T模式和Gear-down是并存的两种配置,但两者之间存在关联。所以在一些BIOS中,你可以分别调节1T/2T模式和Gear-down模式,但打开Gear-down模式后,没有办法设置1T/2T模式。
2T模式和Gear-down模式的相同点在于命令长度延展到两个CK周期,所以也会有建立保持时序放松的优势,同样也有随之导致的时延增加等劣势。所以,理论上你不可能同时使用1T和Gear-down模式
2T模式和Gear-down模式的区别在于,Gear-down模式使能时,所有地址和控制信号的有效周期都是2个CK,包括每个rank上的独立的CS_n、CKE以及ODT信号。在2T模式下,受限于多Rank间的时序要求,这三个信号只能持续一个CK周期。所以,理论上当你打开Gear-down模式时,此时并不是严格的2T模式。
有网友总结到,Gear-down模式好比是个和1T/2T并排的2.5T模式,有更好的时序兼容性,但在多Rank系统中会受到更大的性能惩罚。
Gear1/Gear2
Intel和AMD CPU都有Gear1/Gear2设置,关于此两者的定义,Intel表达为两者区分的是控制器和存储的速率比。个人观点:这里具体的说应该是控制器和存储CA总线的速率比(因为显然DQ总线上双方的速率是相等的),这样理解的话,Gear 1和Gear 2就分别对应Gear-down模式关闭和打开。
Gear 1 means processor memory controller and memory speed are equal.
Gear 2 means pocessor memory controller operates at half the memory speed (such as CPU memory controller is at 1600MHz while memory speed is at 3200MHz when operating as Gear 2).
For DDR4-2933 (or lower speed) :
All the 11th Gen Intel Core Processors operate in Gear 1, no Gear 2.
For DDR4-3200:
i9-11900K and i9-11900KF operate in Gear 1.
The rest of the 11th Gen Intel Core Processors can operate in Gear 2.
根据网友的AIDA64跑分实测数据,DDR5 3600MHz, Gear 2模式下会导致约20%的延迟和10%的带宽损失
Gear 1对比Gear 2的测试结果,有两个明显的变化:
- 内存延迟Latency数值由85ns大幅度降低到68.8ns
- 内存Read读取性能由37790MB/S提升到41528MB/S。
如果从稳定性的角度来理解,一些网友在将BIOS从Gear 2调至Gear 1之后,出现了系统不稳定的现象,所以Gear 2虽然性能会差,但稳定性和兼容性也会变好,尤其是在内存超频时。
结语
本期讨论了:
- Gear-down模式原理
- DDR4进入和退出Gear-down模式
- Gear-down模式对系统性能的影响
- Gear-down模式相关概念讨论
说句题外话,浏览了不少超频玩家的帖子,感觉虽然玩家们对内存和内存控制器的理解不是那么精确(有时候会是错误的),但大体上玩家们关于1T/2T和Gear-down mode对性能/稳定性影响的理解是对的。这就是实践出真知吧!
参考文献
- JESD79-4B
- What Is the Difference Between Gear 1 vs. Gear 2 DDR4 Memory Speeds? (intel.com)
- 内存Gear1和Gear2有多大差距? - 知乎 (zhihu.com)