从 8n 到 16n:DDR5 预取缓冲与 BL16 突发传输

从 8n 到 16n:DDR5 预取缓冲与 BL16 突发传输

什么是"预取 n"

DRAM 颗粒内部是阵列,外部是串行数据脚。为了用较慢的内部阵列支撑较快的外部速率,颗粒会先一次性从阵列里"预取"一串数据到内部缓冲,再按顺序从引脚吐出。这个一次性预取的拍数就叫 prefetch(预取缓冲)。DDR4 是 8n(一次取 8 拍),DDR5 翻倍到 16n。

突发长度 BL16

与预取对应,DDR5 的默认突发长度(Burst Length)是 BL16:一个读或写命令,在总线上连续传 16 拍数据。JEDEC 还保留了"突发截断"选项——传 8 拍后可中断(BL16 with burst chop)。对 x4 颗粒、面向 128 字节缓存行的系统,还提供 BL32 选项。

为什么需要它:喂饱 64 字节缓存行

DDR5 把模组拆成两个独立的 40-bit 子通道(32 数据 + 8 ECC)。每个子通道 32 位宽、最小突发 BL16,一次 CA 事务正好在总线上搬 32bit × 16 = 512bit = 64 字节,与 x86 处理器的缓存行大小对齐。换句话说,一条缓存行的数据,一个子通道一次突发就搬完,命令效率不随速率翻倍而下降。

对信号完整性的要求更高

预取和突发翻倍,意味着每个命令要"占住"总线更久、搬更多数据。在 6400 甚至 8800 MT/s 下,这要求地址/命令与数据总线的时序余量更宽、眼图更干净。训练不过、眼图闭合,BL16 就会出错。

测试怎么看

HeroTEST 在 DDR5 RDIMM 分级时,会按目标速率实测突发传输的稳定性与误码率,确认 BL16 在该档位下真实可用,而不是只看 SPD 声明的标称值。

相关阅读