再见,DDR4!Hello,DDR5内存!

SSDFans 2020-07-15


点击蓝字
关注我们



最近,网络上关于DDR5的介绍越来越多了。本文根据网络上搜集到一些信息,汇总并翻译成了中文,其中有不少是本人自己的理解,不对之处,还望来信指正。

 

速度和频率(Speed and Clock Rate

根据DDR4规范,DDR4数据传输的最高速度为3200MT/s,即一秒钟可以传输3200M笔数据,如果是一颗x4的颗粒(Device),那么一秒钟就可以传输3200Mx4 bits的数据。如果要换算成Byte单位,只需要除8即可得到,为1.6GB/s。由于DDR类型颗粒上下边沿都会传输数据,实际Clock的频率为3200MT/s的一半,即1.6GHz的频率。

对比DDR5来说,根据网上信息,最高数据传输速度为6400MT/s,为DDR4的一倍。时钟频率也一样,翻了一倍,为3.2GHz。所以DDR5从速度和频率的角度上来看,比DDR4有了明显的提升。

 

预取(Prefetch

DDR5是如何实现速度和频率均翻倍的呢?其实从DDR开始,基本上数据传输速度的增加都是通过翻倍预取(prefetch)来实现的。例如:

 

SDR SDRAM

SDRAM中的SSychronous的意思,其含义是指DRAM工作采用的时钟为外部的同步时钟。DRAM的含义是Dynamic Random Access Memory的意思。Dynamic主要是相对SRAM的S来说的,S的意思是Stastic,静态的意思SRAM通常被用来制造芯片内部的CacheRandom Access的意思是读写延迟并不随访问存储空间的具体物理位置不同而不同。SDR是指SDRAM没有采用预取功能,所以DRAM的核心(Core)频率与IO频率一致。任何时候当DRAM选中的某行某一列吐出一笔数据的时候,这笔数据就会被直接放到了IO接口上输出。此时数据传输的频率与DRAM核心频率一致,最高可以达到133Mhz

 

DDR SDRAM

当到了DDR时代,每当访问DRAM选中的某行中的某一列的时候,DRAM颗粒直接预取下一列,这时每一个Core的时钟周期,都将产生两笔数据。当把这两笔数据以串行的方式放到IO接口上的时候,你需要两倍于Core时钟的频率才能采样到两笔数据。或者,仍然采用Core的时钟频率,但需要上下边沿均采样才能获得这两笔数据。因此,这种可以2n(两倍)预取的SDRAM被称为DDR SDRAM,其中DDRDouble Data Rate的意思。由于DRAM的核心速度有所发展,可以从100MHz200MHz。所以,DDR时代数据传输速度可以从200MT/s400MT/s。其产品规格从DDR200DDR400不等。

 

DDR2

当发展到了DDR2DRAM的核心频率并没有比DDR时代有显著增加,最高频率从原来的200MHz增加到266MHz。但由于预取从2n增加到了4n,数据传输的速度还是有显著的增加,从400MT/s DDR)到1066MT/s(LPDDR2)。由于IO口仍然采用上下边沿采样数据,所以数据传输所使用到的时钟信号仍然为接口速度的一半,例如1066MT/s的颗粒,我们需要提供533MHz的时钟。但要完成4笔数据的传输,我们需要两个时钟周期才可以完成。而DRAM核心内部,其时钟频率只有266MHz。所以,每一个DRAM核心时钟周期,DRAM都会产生4笔数据。而IO口时钟是533MHz,因此,每个IO口时钟周期要完成两笔数据传输,又因为上下边沿均可采样,那么IO口一个时钟周期就正好能够完成两笔数据的传输。

 

DDR3

DDR3的预取增加到了8n,即每当读取某一列的时候,都会一共读取8列的数据。然后,8笔数据将以串行的方式放到IO口上。所以当DRAM的核心频率变化不大的时候,预取的越多,IO口的速度就会越快。如果DDR3的核心频率从100MHz266Mhz,根据8n预取的关系,其数据传输速度可以达到800MT/s2133MT/s。当全世界开始使用DDR3内存条的时候,主流处理器的Cacheline size都已经达到了64Byte。当内存条位宽为64bit的时候,8n预取,BL8都正好吻合一个Cacheline的大小。例如,一个核心时钟周期内,DDR3内存条所有DRAM颗粒将会产生8笔64-bit,总共有512-bit数据(64-Byte)。这些数据将会透过DRAM的IO口输出,由于上下边沿采样,所以IO口的频率应该是核心时钟频率的4倍。如266Mhz的核心频率,IO频率应该是266Mhz乘以4得到1066Mhz,数据传输速度将会是这个IO频率的两倍2133MT/s。

 

DDR4

按照道理来说,如果DDR4需要获得更快的数据传输速度,根据发展来看,预取需要增加到16n。但是这样一来,与BL8Burst Length8),64bit的位宽以及Cacheline Size矛盾。解决方案可以是:

一、预取16n,修改内存条位宽到32bit

、预取16n,不改变内存条位宽和BL8,内部丢掉后面的8n数据。

三、预取16n,BL16,不改变内存条位宽,修改cacheline大小。

四、预取16n,BL16,不改变内存条位宽,不修改cacheline大小,修改内存控制器尽量使用后8n数据。写操作可能需要先读后改等。

第一种方案对内存条以及内存控制器改动均大。第二种方案明显没有必要因为性能并没有提升。第三种方案如果修改cacheline大小则整个系统的架构要变化。第四种方案改动方案居中,需要获得性能和改动之间的一个平衡点。

最终,DDR4放弃了16n预取而保持了8n预取。但此时引入了新的概念 - Bank Group。这个概念的核心思想是通过两个不同Bank Group的8n预取来拼凑出一个16n的预取。当DRAM颗粒获得了两笔数据的读命令,并且这两笔数据的内容分布在不同的Bank Group中。由于Bank Group可以独立完成读取操作,两个Bank Group几乎可以同时准备好这两笔8n数据。然后,这两笔8数据被拼接成16n数据放到IO口上。IO口的数据传输速度就可以达到DDR3的两倍了。

但这种设计存在一个问题,如何保证下一读操作的Bank Group与当前Bank Group不是同一个?虽然在内存控制器地址解码的时候,我们可以把连续Cacheline分到不同的Bank Group,但是如果是Random的读操作,两个连续读操作的Bank Group可能恰好是同一个。那么就会出现,在一个Core时钟周期内,DRAM颗粒无法准备好两笔8n数据。这样,两笔读操作之间就会产生额外的等待时间。这些较长的等待时间在DDR4规范中被标注为_L,无需等待的被标注为_S。例如tCCD,列到列的等待时间,例如两笔读操作之间的时间,如果是相同的Bank Group,该时间标注为tCCD_L(6 clock),而如果是不同的Bank Group,则标注为tCCD_S(4 clock)。如果BL8需要4clock传输8笔数据,连续读操作对于不同的Bank Group就刚好达到16n预取性能。但如果是相同的Bank Group,则每向外吐8笔数据,要停4笔数据的时间,才能继续传输8笔。拿DDR4 3200MT/s DRAM来说,实际性能只有3200x8/12 = 2133MT/s。除了读操作外,写也会遇到类似问题。

 

DDR5

终于,到了DDR5时代,预取从8n增加到了16n,并且一个通道的数据位宽从原来的64bit降为32bit。这样一来,通过16n预取,配合BL16就仍然保证了Cacheline的大小还是64Byte
32bitxBL16/8 = 64Byte
需要注意的是Bank Group的概念并没有移除,所以DDR5对比DDR4,在数据传输速度上,因为16n的原因,仍然有一倍的提升。目前规范最高能够支持到6400MT/s,为DDR4规范定义的两倍。

 

电源

DDR5在电源方面也有了一些变化。首先,核心的VDD电压从DDR4时代的1.2v降低到现在的1.1v。这无疑会带来一定程度的节能,但也增加了DRAM的设计难度。除了核心电压有所改变外,DDR5的供电模块也从系统主机板移到了DDR5内存条上。该功能模块(PMIC)主要采用12v为输入,提供例如DRAM颗粒主电源,寄存器(RCD)电源,SPD芯片电源等等。更近的电源芯片无疑会带来更好的电源布局和更短的电源传输路径,但也会增加不少成本。

 

通道(Channel

DDR4时代,数据通道的宽度为64-bit数据加上8-bit ECC,总共72条信号线。因为16n预取,DDR5的数据宽度降到了DDR4的一半,为32-bitECC还是8bit。因此DDR5内存条面临两个选择,一是沿用原来DDR4差不多SizeDIMM,又或者换成比较短的规格。最后,DDR5选择了前者,但多出来的Pin被设计成了另一个通道。所以,在DDR5内存条上,设计了两个子通道(Sub-Channel)分布在DIMM的两边。每个子通道都有32-bit的数据加8-bit ECC

 

命令与地址(Command/Address)

由于DDR5采用了两个子通道在同一根DIMM上,这导致每个子通道除了要提供40-bit的数据线外,还要额外提供命令与地址线。如果按照DDR4的设计,那么DIMMpin将不够用。为了解决这个问题,DDR5开始命令与地址线将会进行混合编码,同时有些命令将会采用双cycle进行采样。即如果有10根信号线,那么一次传输通过双cycle进行采样,将会得到20个不同的命令与地址信号。这样有效的解决了DIMM上信号管脚不足的问题。

 

新功能(New Feature

根据Rambus网站介绍,DDR5在原来DDR4的基础上,增加或者增强了以下功能:

On-die ECC

Error Transparency mode

Post-package repair

read and write CRC mode

 

Reference

https://www.eeweb.com/profile/ddan2025/articles/transitioning-from-ddr4-to-ddr5-dimm-buffer-chipsets

https://www.rambus.com/memory-and-interfaces/server-dimm-chipsets/ddr5-dimm-chipset/

https://blogs.synopsys.com/vip-central/2019/02/27/ddr5-4-3-2-how-memory-density-and-speed-increased-with-each-generation-of-ddr/



高端微信群介绍

创业投资群


AI、IOT、芯片创始人、投资人、分析师、券商

闪存群


覆盖5000多位全球华人闪存、存储芯片精英

云计算群


全闪存、软件定义存储SDS、超融合等公有云和私有云讨论

AI芯片群


讨论AI芯片和GPU、FPGA、CPU异构计算

5G群


物联网、5G芯片讨论

第三代半导体群

氮化镓、碳化硅等化合物半导体讨论

储芯片群

DRAM、NAND、3D XPoint等各类存储介质和主控讨论

汽车电子群

MCU、电源、传感器等汽车电子讨论

光电器件群

光通信、激光器、ToF、AR、VCSEL等光电器件讨论

渠道群

存储和芯片产品报价、行情、渠道、供应链




< 长按识别二维码添加好友 >

加入上述群聊




长按并关注

带你走进万物存储、万物智能、

万物互联信息革命新时代

微信号:SSDFans
SSDFans AI+IOT+闪存,万物存储、万物智能、万物互联的闪存2.0时代即将到来,你,准备好了吗?
评论
热门推荐
相关推荐
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦