RDIMM、UDIMM、LRDIMM 怎么区分,什么场景该用哪种

这三个名字经常被混着用,但它们解决的是同一个问题的三个阶段:一条内存通道上挂的负载太多,信号撑不住。

UDIMM:什么都不加

U 是 Unbuffered。命令、地址、数据全部由内存控制器直连颗粒。结构最简单,延迟最低,成本最低。

代价是每颗颗粒都算一份负载。一根双面 16 颗的条子插两根,通道上就是 32 个负载点。速率一上去,命令地址线的信号完整性首先崩掉。这就是为什么消费级平台通常一通道只支持两根条,插满四根还要降频。

RDIMM:给命令地址加一级寄存器

R 是 Registered。条子上放一颗 RCD(Registering Clock Driver),命令、地址、时钟先进 RCD,重新整形驱动后再分发给颗粒。控制器只需要驱动一颗 RCD,负载从几十个降到一个。

数据线仍然是直连的,所以 RDIMM 只解决了命令地址侧的负载问题。代价是多一个时钟周期的延迟,以及 RCD 本身的功耗和成本。服务器主流用的就是这类。

LRDIMM:数据线也缓冲

LR 是 Load Reduced。在 RDIMM 的基础上,把数据线也经过缓冲(DDR4 用 DB 数据缓冲芯片,DDR3 时代是集中式 MB)。控制器看到的数据侧负载也变成一个。

这样才能支持很高的单条容量和每通道插满多根。缺点是延迟更大、成本更高、发热更明显。只有在容量优先于延迟的场景才划算,比如大内存数据库、虚拟化密度高的节点。

选型时真正该看的几点

  • 平台支持什么就用什么,这三类物理上不通用,主板不认就是不认,没有折中方案;
  • 同一通道不要混插不同类型,也尽量不混不同 rank 数,混插带来的时序问题排查起来非常费时间;
  • 容量需求没到天花板就别上 LRDIMM,多花的钱换来的是更高延迟;
  • DDR5 时代 RDIMM 上的 RCD 变成了标配,同时还多了 PMIC 和 SPD Hub,条子上的有源器件数量比 DDR4 明显增加,这几颗芯片的高温表现要一起纳入测试。

测试上的差别

UDIMM 出问题多数是颗粒或走线。RDIMM 和 LRDIMM 上,RCD 和 DB 本身就是失效源,而且它们的故障表现容易被误判成颗粒问题:某个 nibble 全错、或者只有特定 rank 有问题,往往是缓冲芯片而不是颗粒。

分级和返修判定时把这两类分开,能省掉很多无效换料。