DRAM Fault Classification through Large-Scale Field Monitoring for Robust Memory RAS Management

发表时间: 2025-10

作者/机构:
Hoiju Chung (SK hynix America), Euisang Oh (SK hynix America), Seungmin Baek (SK hynix America), Hyeongshin Yoon (SK hynix America), Jaesung Yoo (SK hynix America), Sanghwan Lee (SK hynix America), Yongjun Lee (Microsoft), Arhatha Bramhanand (Microsoft), Brett Dodds (Microsoft), Yang Zhou (University of Illinois Urbana-Champaign), Nam Sung Kim (University of Illinois Urbana-Champaign)

速读

一句话结论 本文提出了一套基于 DRAM 物理层次结构和时间行为的精细化故障分类方法,并构建了相应的内存 RAS(可靠性、可用性、可服务性)管理系统,在数千亿设备小时的超大规模现场数据中证明了其能有效定位故障边界并指导纠正措施,特别是揭示了 DDR5 中片上 ECC(IDECC)对错误日志的掩盖机制。

要解决什么问题 现有的内存故障分类方法通常不考虑 DIMM(双列直插式内存模块)和 DRAM 的底层物理体系结构,导致故障定位不够精确,无法准确评估不可纠正错误(DUE)的风险。随着 DDR5 内存首次在服务器端集成了片上 ECC(IDECC),这一卡点变得尤为致命:IDECC 会在内部纠正单比特错误,导致上报给主机的错误日志被严重扭曲,约 80% 的底层物理故障被直接掩盖,传统的基于错误日志直接推断物理故障的方法在此完全失效。如果不能穿透 IDECC 的掩盖,精确识别出底层的物理故障边界(例如是单个存储单元失效,还是整条字线或驱动器失效),系统就无法在不可纠正错误发生前及时采取最有效的内存缓解措施,从而严重威胁超大规模数据中心的整体可靠性。

怎么做的 核心思路是摒弃单纯的逻辑地址统计,将物理地址转换为 DRAM 内部地址,在空间和时间两个维度上将错误日志与 DRAM 的物理电路边界严格对齐。在空间维度上,方法首先区分故障是局限在单个 bank 内还是跨 bank,并重点定义了“有界故障”:即完全局限在共享位线传感放大器和子字线驱动器的 2x2 MAT(内存阵列)区域内的故障。根据错误位数量、跨 MAT 情况、故障行列数等特征,将空间故障细分为单地址、列、单行、多行和阵列 MAT 等 20 个子类。在时间维度上,引入了错误存在持续时间的概念,依赖周期性的巡检(Patrol Scrubbing)操作而非不规律的业务需求读取,将故障划分为瞬态、偶发性、间歇性和永久性四类。针对 DDR5 的 IDECC 掩盖问题,作者构建了一个仿真模型,利用海量 DDR4 日志模拟 IDECC 的纠错行为,生成伪 DDR5 数据,从而推导出 DDR5 真实物理故障与失真日志之间的映射关系。最终,这些逻辑被封装在 DRAM 故障分析器中,其包含地址转换器、故障分类器和 RAS 行为顾问三个部件,地址转换器负责地址映射并检测越界错误,故障分类器执行时空分类,RAS 行为顾问则根据分类结果动态推荐软硬修复或页面下线等缓解措施。

效果如何 实验在 Microsoft Azure 数据中心的生产环境中进行,收集了超过 830 万条 DDR4 RDIMM 和 80 万条 DDR5 RDIMM 的带内错误日志,累计运行时间达 5450 亿设备小时。对比基线为以往不区分物理边界的传统现场统计路线(如 Schroeder 等人和 Sridharan 等人的早期研究),以及直接读取 DDR5 日志而不做 IDECC 逆向推演的朴素路线。量化结果显示,超过 99.5% 的 bank 内故障与 DRAM 架构层次对齐,且 100% 的聚集性故障都局限在 2x2 MAT 的有界范围内。在 DDR5 场景下,仿真生成的伪 DDR5 故障分类与真实 DDR5 数据的余弦相似度高达 0.98,证明了该方法能有效穿透 IDECC 的掩盖,并揭示了 IDECC 实际上过滤了 81.8% 的无风险单比特错误,同时完整保留了具有不可纠正风险的无界故障特征。系统的时间稳定性极高,98.6% 的有界故障在 64 天内边界不发生扩张。该方案的局限在于高度依赖内存控制器的周期性巡检功能,若关闭巡检仅靠业务需求读取,分类准确率会骤降 70%;此外,由于 DDR5 极强的纠错能力,其实际不可纠正错误率极低,导致难以在现有 DDR5 规模下直接测量该系统对最终崩溃的预防率。

A1 主要贡献

本文针对 DRAM 技术缩减带来的可靠性挑战,提出了一套精细化的 DRAM 故障分类方法和相应的内存故障管理策略。研究的核心目标是建立一个不依赖于 DRAM 类型和技术节点的现场可靠性管理系统,并特别关注了首次集成片上 ECC (IDECC) 的 DDR5 DRAM 的错误行为。

核心问题与研究目标:

  1. 提出精细化的故障分类方法: 传统方法通常不考虑 DIMM 和 DRAM 的体系结构,导致分类不够精确。本文的目标是提出一种基于 DRAM 层次结构和故障原因的精细化分类方法,适用于 DDR4 和 DDR5 RDIMM。
  2. 表征 DDR5 的错误行为: DDR5 是首款集成 IDECC 的服务器内存,其错误行为与前代产品不同。本文旨在引入一种方法来表征 DDR5 的错误行为。
  3. 建立故障类型与 RAS 行为的映射: 根据严格的 DRAM 故障分类,定义一套规则,将每种故障类型映射到最有效的内存 RAS (可靠性、可用性、可服务性) 行为。
  4. 实现安全的现场管理系统: 提出并实现一个系统,能够安全地共享 DRAM 领域知识,并应用于现场 DRAM 可靠性管理。

创新点与关键洞见:

这些发现为 DRAM 故障的诊断和缓解提供了宝贵的见解,并为未来内存系统的 RAS 功能开发提供了信息。

A3 背景知识

2.1 术语

2.2 DRAM 模块架构

本节描述了 DDR4 和 DDR5 DRAM 的模块架构,为理解我们的 DRAM 故障分类方法提供必要的背景。

图1:DDR4 和 DDR5 RDIMM 架构
图1:DDR4 和 DDR5 RDIMM 架构

3 深入理解 DRAM 设备架构以识别精确的故障位置

要根据内存控制器观察到的显现错误来识别哪个 DRAM 电路组件存在故障,必须了解工业界的 DRAM 设备架构,这使我们能够确定 DRAM DQ 与导致在 DRAM DQ 处观察到的错误的故障 DRAM 电路组件之间的连接。本节首先描述两种代表性的工业界 DDR4 DRAM 设备架构。其次,描述一种工业界 DDR5 DRAM 设备架构。尽管工业界已开始部署 DDR5 DIMM,但 DDR4 DRAM 设备的架构与 DDR5 DRAM 设备的架构相似,并且数百万计的 DDR4 DIMM 已经部署并将至少在未来几年内继续使用。

3.1 DDR4 x4 DRAM

图2:DDR4 x4 DRAM 设备架构
图2:DDR4 x4 DRAM 设备架构
图3:DDR4 x4 DRAM DQ 和 SWD 之间的映射以及故障边界
图3:DDR4 x4 DRAM DQ 和 SWD 之间的映射以及故障边界

3.2 DDR5 x4 DRAM

图4:DDR5 x4 DRAM 架构
图4:DDR5 x4 DRAM 架构
图5:JEDEC 标准中 DDR5 x4 DRAM DQ 和 SWD 之间的映射以及故障边界
图5:JEDEC 标准中 DDR5 x4 DRAM DQ 和 SWD 之间的映射以及故障边界

A2 方法细节

本节介绍了一种用于对 DRAM 故障进行分类的方法。我们将 DRAM 故障定义为“一个包含在特定时间段(观察期)内发生的所有错误,与 DRAM 层次结构对齐,并具有自身时间行为模式的分类”。我们的分类方法基于两个基本轴:错误的空间分布和错误的时间行为。错误的空间分布通过将物理地址(PA)转换为相应的 DRAM 地址(DA)来分析。然后根据 DIMM 中的层次结构进行分类,以识别故障位置。错误的时间行为根据错误在显现后持续的时间及其发生频率进行分类。这种分类有助于我们推断故障原因并预测未来的错误趋势。

我们在 §4.1、§4.2 和 §4.3 中详细解释了我们提出的分类方法。随后,在 §4.4 中讨论了选择观察期的理由。

4.1 DDR4 DRAM 中的空间故障分类

图6:有界故障的定义
图6:有界故障的定义
图7:有界故障可视化
图7:有界故障可视化
  1. SA 故障: 当错误出现在一个 RA 和一个 CA 上时分类。有两个子类:SB (#error bit locations=1) 和 SAm (#error bit locations>1)。
  2. COL 故障: 当错误出现在多个 RA 和一个 CA 上时分类。有 4 个子类:BL (#error bit locations = 1, #$N_{MAT}$ = 1, #$N_{MAT}$= 1), BLSA (#error bit locations = 1, #$N_{MAT}$ = 2, adj $N_{MAT}$, #$N_{MAT}$= 1), CSL (#error bit locations > 1, #$N_{MAT}$ > 2, #$N_{MAT}$= 1), 和 Cpost (用于 DDR5 DRAM)。
  3. ROW 故障: 当错误出现在一个 RA 和多个 CA 上时分类。有 3 个子类:SWL (#$N_{MAT}$= 1), SWD (#$N_{MAT}$= 2, adj $N_{MAT}$; 如图 7a 所示), 和 Rpost (其他)。
  4. MROW 故障: 当错误出现在具有特定模式的多个 RA 和多个 CA 上时分类。有 5 个子类:MWLb (#$N_{MAT}$ ≤ 2, #$N_{MAT}$ = 1, adj $N_{MAT}$, #faulty rows ≤ 4, #interval= 2; 如图 7b 所示), MWLub (#$N_{MAT}$> 2, #$N_{MAT}$ = 1, #faulty rows ≤ 8, #interval= 1), EAWLb (#$N_{MAT}$ ≤ 2, #$N_{MAT}$ = 1, adj $N_{MAT}$, #faulty rows = 2, #interval= 8; 如图 7c 所示), EEWLb (#$N_{MAT}$ ≤ 2, #$N_{MAT}$ ≤ 2, adj $N_{MAT}$, adj $N_{MAT}$, #faulty rows ≥ 2, #interval= 8; 如图 7d 所示), 和 EEWLub (#$N_{MAT}$> 2, #$N_{MAT}$ ≤ 2, adj $N_{MAT}$, #faulty rows ≥ 2, #interval = 8)。
  5. MAT 故障: 当错误出现在多个 RA 和多个 CA 上时分类。有 6 个子类:MR1C (#$N_{MAT}$ ≤ n; 取决于替换架构, #$N_{MAT}$ = 1, #faulty rows ≤ 2), MR1R (#$N_{MAT}$ ≤= 2, #faulty rows ≤ 2), MR2b (#$N_{MAT}$ ≤ 2, adj $N_{MAT}$), MRMC1b (#$N_{MAT}$= 1, #$N_{MAT}$ ≥ 1), MR2post (#$N_{MAT}$ ≥ 1, #$N_{MAT}$ ≤ 2), 和 MRMpost (其他)。

  6. Inter-bank 故障 当错误在单个 DIMM 内的多个 bank 之间显现时,它们被归类为 inter-bank 故障。尽管这些故障的发生频率远低于 intra-bank 故障,但也能观察到与 DIMM 层次结构相关的错误边界。这类故障通常难以通过测试重现,但确实存在。根据经验观察,inter-bank 故障分为两大类:单芯片故障(Single-die faults)和多芯片故障(Multiple-die faults)。单芯片故障有两个子类:数据线故障(Data-line faults)和多 bank 故障(Multiple-bank faults)。数据线故障是由 bank 之间共享的数据线结构引起的故障,而多 bank 故障是可以影响多个 bank 的故障。此外,多芯片故障有 3 个子类:DIMM-IO 故障、Rank 故障和 DIMM 故障。DIMM-IO 故障涉及 DIMM 内 rank 之间共享的 DQ 通道。Rank 故障发生在 DIMM 的同一 rank 内。最后,DIMM 故障是影响 DIMM 内多个 rank 的故障。

4.2 DDR5 DRAM 中的空间故障分类

4.3 时间故障分类

图8:时间故障分析过程
图8:时间故障分析过程

4.4 对观察期的考量

图9:不同观察期的分布
图9:不同观察期的分布

A4 实验环境

表1: 观察到的设备详情
表1:观察到的设备详情
* 设备小时数 = DIMM 数量 x 运行小时数

A4 实验结果

5.2 DDR4 x4 RDIMM

表2: 设备 A 和 B 的 Intra-bank 故障 (T: 瞬态, S: 偶发性, I: 间歇性, P: 永久性)
表2: 设备 A 和 B 的 Intra-bank 故障

图10: (无)有界故障随时间分类变化
图10: (无)有界故障随时间分类变化
图11: 检测到 DUE 风险后随时间的可预防 DUE 率
图11: 检测到 DUE 风险后随时间的可预防 DUE 率

5.3 DDR5 10x4 RDIMM

图12: 基于 DDR4 数据生成伪 DDR5 数据
图12: 基于 DDR4 数据生成伪 DDR5 数据
图13a: DDR4 到伪 DDR5 的空间 DRAM 故障转换
图13a: DDR4 到伪 DDR5 的空间 DRAM 故障转换
图13b: 图 13a 蓝框内 DDR4 到伪 DDR5 转换期间的故障转换图
图13b: 图 13a 蓝框内 DDR4 到伪 DDR5 转换期间的故障转换图

表3: 设备 C 和伪 DDR5(由设备 B 仿真)的 Intra-bank 故障分类结果
表3: 设备 C 和伪 DDR5(由设备 B 仿真)的 Intra-bank 故障分类结果

表4: 设备 C 和 D 的 Intra-bank 故障分类
表4: 设备 C 和 D 的 Intra-bank 故障分类

A7 补充细节

6 DRAM 故障分析器 (DFA): 一种共享领域知识的方法

6.1 DFA 和 DFA 控制代理

图14:DFA 示意图
图14:DFA 示意图

6.2 内存 RAS 行为

表5: 每种 DRAM 故障的内存 RAS 行为
表5:每种 DRAM 故障的内存 RAS 行为

6.3 日志采样频率的影响

表6: 基于日志质量的 RAS 行为比较
表6:基于日志质量的 RAS 行为比较

A5 结论

本文建立了一套基于 DIMM 层次结构和故障错误行为的精细化 DRAM 故障分类方法。通过广泛的现场数据分析,我们验证了该分类方法对 DDR4 x4 和 DDR5 10x4 RDIMM 均适用。

我们方法的有界故障识别能力揭示了大多数现场 DRAM 故障局限于 2×2 相邻的 MAT 内,并且存在典型的故障 RA 模式。我们还提出了一种理解现场 DDR5 10x4 RDIMM 故障的方法,这是首款在服务器系统中使用 IDECC 的 DRAM,并基于此分类提出了选择合适 RAS 行为的框架。通过对比具有相同技术节点的 DDR4 x4 和 DDR5 10x4 RDIMM 的现场 DUE 率,我们得出结论,DDR5 DRAM 上的 IDECC 充当了有效过滤掉次要错误的良好过滤器。

随着最近的服务器系统尝试采用 LPDDRx 内存以应对功耗挑战,确保其可靠性尤为关键,因为 LPDDRx 和用于 AI GPU 系统的 HBMx 缺乏 rank 操作【索引32, NVIDIA GH200 Grace Hopper Superchip, 2023; 33, NVIDIA GB300 NVL72, 2024; 34, NVIDIA Grace, 2025】。我们的研究为实现 RAS 功能提供了见解,旨在对这些 DRAM 的有界故障实现高效的纠正能力【索引2, LPDDR4, 2014; 3, LPDDR5, 2019; 5, HBM3, 2022; 17, HBM3 RAS, 2021; 26, An 8.5-Gb/s/Pin 12-Gb LPDDR5 SDRAM, 2021; 37, A 3.2 Gbps/pin 8 Gbit 1.0 V LPDDR4 SDRAM, 2015; 38, A 192-Gb 12-High 896-GB/s HBM3 DRAM, 2022; 39, A 16 GB 1024 GB/s HBM3 DRAM, 2023; 40, A 16 GB 1024 GB/s HBM3 DRAM, 2022】。