
按:本文是深入理解DRAM1-4的合集,整合后略有改动,文章较长。

DDR(Double Data Rate)内存的总带宽计算公式可以简化为:
总带宽=数据传输速率 × 位宽总带宽 × CPU内存控制器通道数。
其中,“数据传输速率”是指每个时钟周期内单个引脚的数据传输速度,而“位宽”则代表了连接到内存控制器的引脚数量。
在DDR内存中,位宽通常指的是内存模块上可用的数据线的数量,以比特为单位。例如,常见的DDR3和DDR4内存条的位宽有64位、128位等。
然而,随着技术的进步,DDR内存标准经历了多次迭代,从DDR到DDR2、DDR3、DDR4,再到现在的DDR5,数据传输速率有了显著提升。
DDR5相较于前代DDR4,不仅提高了数据传输速率,还增加了单个内存模块上的通道数,从而提高总带宽。
尽管如此,引脚数量受到物理限制和成本控制的影响,并不是无限增加的。因此,提高内存带宽的主要途径是提高数据传输速率,以及优化内存架构,比如DDR5引入的双通道设计,可以在不增加引脚数量的情况下提高总带宽。

图中的两个图表分别展示了数据传输速率的增长和DRAM芯片容量的增长情况。
数据传输速率主要取决于以下几个因素:
DRAM芯片容量的增长主要受以下因素影响:
然而,正如图像所示,虽然数据传输速率一直在稳步增长,但是DRAM芯片容量的增长速度已经放缓。这是因为随着技术的发展,提高芯片容量变得越来越困难,尤其是在达到一定水平后,每一代产品的容量提升所需的时间明显延长。

DRAM的基本单元由一个电容器和一个晶体管组成,用于存储一个二进制位(0或1)。以下是DRAM单元操作的简要说明:
这个过程确保了DRAM单元中的数据始终保持最新且可访问。请注意,DRAM需要定期刷新,因为电容器会逐渐泄漏电荷,如果不进行刷新,数据最终会丢失。这就是为什么DRAM被称为“动态”的原因——它需要不断更新以保持数据的有效性。

JEDEC(Joint Electron Device Engineering Council)是一家全球性的行业组织,负责制定电子设备的标准,特别是在半导体领域。在DRAM(Dynamic Random Access Memory)领域,JEDEC扮演着至关重要的角色,因为它定义了DRAM器件的外部规范和接口标准。这些标准包括但不限于封装尺寸、引脚分配、电气特性、时序要求等等。具体来说,JEDEC在DRAM领域的主要作用如下:
在图片中提到,JEDEC定义了DRAM看起来是什么样的,也就是它的外观和接口,但没有规定内部的具体实现方式。这就给供应商留下了空间去开发自己的技术和工艺来满足这些标准,这也是DRAM技术持续发展的驱动力之一。供应商可以根据自身的技术实力和创新能力,提供超越JEDEC标准的超集产品,以获得竞争优势。

这张图表显示的是随着DRAM密度增加,刷新(refresh)带来的带宽惩罚百分比的变化情况。从图表中可以看出,随着DRAM容量的增长,刷新操作对总带宽的影响越来越大。在早期的小容量DRAM中,我们可以忽略刷新操作,因为它几乎不会影响系统的整体性能。然而,随着DRAM密度的增加,刷新已经变成了一个严重的限制因素,占据了可用带宽的相当一部分比例。
在高密度DRAM中,例如32Gb,刷新操作可能消耗高达21%的可用带宽,这对系统性能产生了显著的影响。此外,当温度升高时(85-95摄氏度),为了维持稳定性,刷新频率必须加倍,这意味着额外的11%-21%的带宽损失,这是一个非常大的性能下降。
图表右侧还有一条时间轴,表示随着时间的推移,电压也会有所下降,这可能是由于老化或者高温导致的。在标准温度下,电压下降(Droop at standard temp)相对于参考电压(Reference voltage)有一定的幅度,而在高温环境下,电压下降更严重(Droop at high temp)。
SOC上的散热设计是个非常重要的问题。

展示了一个DRAM存储器的基本架构,并解释了如何通过创建多个bank来平衡DRAM阵列布局和性能。
每个bank都有一个行缓冲区,可以作为数组的缓存。要访问特定的记忆位置,需要指定Bank、Row和Column三个参数。同时,DRAM维护了一个片上Refresh Counter,用于自动恢复位单元电压水平的过程。

多年来,DRAM的核心架构设计并没有发生显著变化,基于Core驱动器来调度(写入、读取、刷新)器件上上电压位;快速迭代的是链接Host和DRAM器件的I/O驱动器,用时髦的术语来说,软件定义DRAM使得传统器件的访存效率明显改善。
在DRAM存储器快速发展的25年里,有哪些过程优化和改进呢?

预取并行度是指一次数据传输过程中,内存控制器可以处理多少组数据。这个数字越大,表示内存系统可以一次性处理的数据量越多,从而提高数据吞吐量。
例如,DDR5的16n预取并行度(内存控制器双通道,8n/通道)意味着它可以一次处理16组数据,而DDR1只能处理一组数据。这种增加预取并行度的方法使得内存系统能够在保持核心速度不变的情况下,通过ping-ponging方式提高I/O速率,从而提高整体系统性能。

缓存行(Cache Line)大小驱动着整个行业的发展。具体来说:

不同数据宽度对应着不同Rank(即内存条上的单个颗粒)大小,展开来看,
Prefetch 可以升级到x16或者更高,来优化传输带宽吗?
内存设计确实可以通过提高预取(prefetch)并行度来优化传输效率,但这并非没有限制。在考虑是否可以设计出更高并行度如x16的设备时,我们需要考虑几个关键因素:
因此,尽管理论上可以设计x16设备,但在实践中,考虑到上述限制,业界通常会选择更优化的方案,如增加通道数(比如DDR5中的两个独立的40位子通道),使用更先进的工艺节点来降低功耗和提高速度,或是采用其他类型的内存技术(如HBM,高带宽内存)来达到更高的带宽和效率,而不只是单纯增加单个设备的数据线数量。

相对于并行预取策略的高效,如何优化DRAM io 和系统 io 间的模型信号的相干性,是更底层的优化策略。
图中显示了信号反射对可靠数据传输的挑战,特别是在系统输入输出(I/O)方面。
图中左侧是一个模拟电路图,显示了信号反射的情况,右侧则是实际测量得到的眼图。眼图是一种用来评估数字通信系统中信号质量的方法,它可以帮助我们理解信号在经过长距离传输后受到噪声干扰的程度。图中可以看到,由于反射导致的符号间干扰(Inter-symbol interference, ISI)显著影响了可用的数据窗口(data eyes),这会降低系统的传输速率和可靠性。因此,解决这种问题成为了设计高速通信系统的一个重要技巧。
SDRAM--DDR1

SDRAM到DDR1的过渡过程,Transmeta Crusoe处理器作为第一个支持这两种类型的CPU。
SDRAM(Synchronous Dynamic Random Access Memory)是一种同步动态随机存取存储器,它是DRAM(Dynamic Random Access Memory)的一种类型,但与传统的异步DRAM相比,它能够与系统时钟同步运行,从而提供更高的数据传输率和更佳的性能。SDRAM的设计目的是为了适应计算机系统中日益增长的性能需求,尤其是在处理器速度快速提升的背景下,传统的异步DRAM无法提供足够的带宽和响应速度。
图中左边是PC-133 SDRAM的架构,右边是DDR1-400的架构。中间有一个小插图展示了一个Transmeta Crusoe CPU。在SDRAM中,数据、地址和时钟信号都是分开的,而在DDR1中,数据和数据 strobe是结合在一起的,而且还有终结电压(Termination Voltage)和寄生电容(CaC)。此外,DDR1还采用了线路末端终止(Line-end termination)技术来减少反射问题。
通过 数据 strobe、终结电压(Termination Voltage)、寄生电容(CaC)和线路末端终止(Line-end termination)技术 来优化SDRAM的信号质量。
DDR1--DDR2

Strobe Pair 是 DDR2 中的一种设计特性,用于减少不对称性错误。它由两个互补的信号 DQS 和 DQS# 组成,它们是差分信号,可以提高信号质量和稳定性。这个设计有助于改善数据传输的准确性和效率,并且在数据和脉冲线上使用了片上终接(On-die termination) 来减少传输线的反射。此外,DDR2也继续使用了T分支路由来进行寄生电容补偿(CaC)。
图中还包含了一个详细的内部缓冲器示意图,说明了如何通过开关(sw1、sw2、sw3)来控制终端电阻(Rival1、Rival2、Rival3),从而实现片上终接。
DDR2--DDR3

DDR3引入了命令敏感的ODT(Command-sensitive ODT),提高了信号质量,并且为数据和地址使用了不同的电压参考(Separate voltage references for data versus addresses)。
图中还包括一个内部电路图,显示了VREF_DQ和VREF_CA是如何连接到数据和地址/命令线上的。
DDR3--DDR4

DDR4引入了更精细的参考电压调整(Shmooing the reference voltage allows tighter calibration),并且图中包括了一个内部电路图,显示了VREF是如何连接到数据线上的。
DDR5 是当前DRAM行业成熟工艺制程的最新产品,与DDR4 相比:

DDR5引入了DIMM上的电压调节(Back side: on-DIMM voltage regulation),以减少电源轨上的噪声(Noise reduction improves data integrity),从而提高输入灵敏度(Noise on the voltage rails results in reduction of input sensitivity)。图中还包含了一个内部电路图,显示了PMIC如何连接到电压轨上。

图示DDR5命令真值表(Command Truth Table),它详细说明了不同命令(Activate, Write, Read, Precharge)对应的引脚状态(CS_n, CA pins等)。
表格分为四部分,“RAS”、“CAS”、“CAS”和“CAS”,分别对应ACTIVATE、READ、WRITE和PRECHARGE四个动作及其所需的信号组合。例如,激活(ACTIVATE)需要Chip ID、Bank Group、Bank Address和Row信息;读取(READ)需要Chip ID、Bank Group、Bank Address和Column信息;写入(WRITE)也需要同样的信息;最后,预充电(PRECHARGE)只需要Chip ID、Bank Group和Bank Address信息。
表格对于理解DDR5内存的工作原理非常有帮助,因为它描述了控制器如何通过特定的引脚状态向内存模块发送各种命令。
内存控制器(Memory Controller)和命令真值表有什么关系呢?
内存控制器(Memory Controller)是负责管理与内存交互的硬件组件,它位于CPU或北桥芯片中,在现代系统中通常集成在CPU内部。内存控制器的任务包括但不限于接收来自CPU的数据读写请求,将这些请求转换为适合内存模块的操作命令,管理内存寻址,控制内存的刷新周期,以及处理数据的传输。
内存控制器与命令真值表之间的关系体现在以下几个方面:
简而言之,内存控制器基于命令真值表来正确地生成和发送内存命令,以保证内存的正常读写操作和其他功能的正确执行,可以把真值表理解成计算体系的指令集,而MC则是负责翻译和执行指令集的计算单元。
伴随系统通信信号的底层优化,最新一代DDR5在功能上通过软硬结合定义出多种新特性,以下逐一介绍。
Error Check Scrub (ECS)

Error Check Scrub (ECS),允许测试和清理Bank组中DRAM内容。通过列读修改写操作检测和纠正内容,并自动递增列地址,然后行地址,再然后Bank地址。此外,它还会维护每行的错误计数和错误最多的行的地址,以便主机系统可以决定何时替换行为异常的DRAM行。
Error Check Scrub (ECS)主要用于以下场景:
Memory Built In Self Test (MBIST)

Memory Built-In Self Test (MBIST) 是一种内置自测技术,它允许DDR5设备在接收到主机指令时进行内部自检。以下是MBIST的工作原理和实际应用场景:
工作原理:
Internal Thermal Sensor

DDR5内存模块具有一个内置的热传感器,该传感器能够感知温度并将其反馈给主控。
当温度超过一定阈值时,如温度在85℃以下,保持单次刷新频率,超过则2倍刷新频率(Wide Range 功能支持更细粒度的温度控制),内存模块会向主控提示需要增加刷新速率以保持数据的稳定性。虽然服务器内存模块通常已经包含了两个精度为0.5度的热传感器,但多一层保障总是好的。

DDR5内存模块的不同类型对应不同市场,包括:
DDR5内存模块的共同特征,包括:
这些特性使得DDR5内存模块更加高效、可管理并且具备更好的电源管理能力。
SODIMM-小型双列直插内存模块

SODIMM的一般特性:
UDIMM

与SODIMM基本保持一致。
RDIMM-双列直插内存模块

应用于工作站和服务器的DIMM外观与应用于台式机的UDIMM 大致相同,主要差异点在:

考虑到以上因素,目前3DS的生产工艺,停留在2层堆叠,即DDP(Dual Die Package ),先进厂商提出4D-NAND概念[1]。
坐以待毙是下策

内存池化早在 ARM 多核领域就有过考虑,最早是科学计算场景需求,现在是AI/ML领域,从大科学仪器下沉到企业。
非一致性内存访问(NUMA)一直是池化内存资源的常用方法,
HyperTransport和Quick Path互连等总线已经存在了几十年,
NUMA架构创建了一个资源层次结构 :
业界已经出现根据访问延迟调整数据位置的智能软件。
现实中NUMA似乎是多核场景(ARM)策略,在Intel主导的服务器市场,并没有多少实际投入和实践。

DRAM的”困境“
CXL

左图是对CXL技术实现的完整架构,核心是基于CXL协议的DRAM控制器(CXL Controller),通过CXL 交换机连接到Host 节点从而实现内存池化后的资源共享,DTL核心组件及工作原理,另文详解。
值得关注的是,Bill 并未一股脑肯定CXL未来统治地位,而是追忆起傲腾往事,并直接表露DAX(Direct Access)是否因为Optane技术的消亡而停滞不前。
或许市场就是如此残酷,Intel这次押宝CXL在逻辑芯片市场再创辉煌了。

随着CXL作为扩展PCIe的统一接口,加入数据存储大家庭,热数据场景除了直接访问(DAS)的DRAM和”不怎么争气“的NUMA[2] ,基于CXL扩展的DRAM内存池将作为最大活跃数据缓存池,从而为企业市场的AI/ML及自动驾驶的IT可行性奠定基础。
图中说明了三种CXL访存方式:

来畅想下CXL 实现后的内存访问方式,CXL内存模块可以有三种分配方式:
存在的问题是:当同一内存区域被多个处理器共享写入时,缓存一致性的反向失效是如何工作的?

[1] 4D-NAND概念: https://www.dramx.com/News/Memory/20240808-36833.html
[2] ”不怎么争气“的NUMA: https://frankdenneman.nl/2022/09/21/sub-numa-clustering/
---【本文完】---