DRAM Fault Classification through Large-Scale Field Monitoring for Robust Memory RAS Management
DRAM Fault Classification through Large-Scale Field Monitoring for Robust Memory RAS Management
作者/机构:
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)
A1 主要贡献
本文针对 DRAM 技术缩减带来的可靠性挑战,提出了一套精细化的 DRAM 故障分类方法和相应的内存故障管理策略。研究的核心目标是建立一个不依赖于 DRAM 类型和技术节点的现场可靠性管理系统,并特别关注了首次集成片上 ECC (IDECC) 的 DDR5 DRAM 的错误行为。
核心问题与研究目标:
- 提出精细化的故障分类方法: 传统方法通常不考虑 DIMM 和 DRAM 的体系结构,导致分类不够精确。本文的目标是提出一种基于 DRAM 层次结构和故障原因的精细化分类方法,适用于 DDR4 和 DDR5 RDIMM。
- 表征 DDR5 的错误行为: DDR5 是首款集成 IDECC 的服务器内存,其错误行为与前代产品不同。本文旨在引入一种方法来表征 DDR5 的错误行为。
- 建立故障类型与 RAS 行为的映射: 根据严格的 DRAM 故障分类,定义一套规则,将每种故障类型映射到最有效的内存 RAS (可靠性、可用性、可服务性) 行为。
- 实现安全的现场管理系统: 提出并实现一个系统,能够安全地共享 DRAM 领域知识,并应用于现场 DRAM 可靠性管理。
创新点与关键洞见:
-
关键洞见 1: DRAM 的故障和错误行为
- 与 DRAM 层次结构对齐: 现场运行中约 99% 的 DRAM 故障与其层次结构边界对齐,这意味着可以根据其层次设计推断出故障可能产生的错误边界。
- 时间错误模式与故障原因: 错误发生的时间模式(永久性、间歇性、偶发性、瞬态性)为了解故障原因提供了重要线索,从而增强了选择 RAS 行为的信心。
- 2x2 MAT 中的普遍性: 在与体系结构边界对齐的 DRAM 故障中,100% 的故障局限于 2x2 MAT(内存阵列)区域内。相邻 2-MAT 区域之间的边界是主要的易错边界。
- 典型的故障行地址(RA)模式: 局限于 2x2 MAT 内的故障显示出源于 DRAM 架构的特定故障 RA 模式。
- 错误行为的稳定性: 现场 DRAM 错误表现出长期保持在其体系结构边界内的强烈趋势,这意味着基于当前日志分类的故障很可能在未来表现出相同的边界。
-
关键洞见 2: 日志收集方法
- 巡检(Patrol Scrubbing)的重要性: 从巡检中收集的信息对于通过遥测日志进行 DRAM 故障分类至关重要。没有巡检,故障分类的准确率会降至约 30%。
- 可容忍的日志采样频率: 即使日志数据分辨率从 10 µs 降至 1 秒,故障分类的准确性也基本不受影响,这表明基于轮询的数据收集方法是可行的。
-
关键洞见 3: 片上 ECC 对分类的影响
- IDECC 对故障分类准确性的影响: 在 DDR5 DRAM 中,约 80% 的故障(其中 70% 为单比特故障)被 IDECC 掩盖。剩余 20% 的故障中,约 25% 未能按原样分类。这表明在分析带有 IDECC 的 DRAM 并建议 RAS 行为时,必须考虑 IDECC 造成的故障失真。
- 无界故障的检测: 在 DDR5 10x4 RDIMM 中,约 97% 的无界故障可以被系统级 ECC 检测到,表明尽管存在故障失真,但整体可靠性并未因 IDECC 而受损。
-
关键洞见 4: 内存 RAS 管理系统
- 快速 RAS 行为的有效性: 在 x4 RDIMM 中,采取快速 RAS 行为对于提高已检测到的不可纠正错误的预防率至关重要。这凸显了持续监控和分析的必要性。
这些发现为 DRAM 故障的诊断和缓解提供了宝贵的见解,并为未来内存系统的 RAS 功能开发提供了信息。
A3 背景知识
2.1 术语
-
可靠性定义 本研究严格区分了失效(failure)、错误(error)和故障(fault)。失效是指导致不正确操作的事件。错误是故障在执行过程中的表现。故障是导致这种错误的原因。此外,故障移除是通过将故障从操作中排除来消除其影响的过程,而内存 RAS 行为是为移除内存故障而采取的故障移除措施。
-
系统级错误检测与纠正能力 DRAM 错误的分类取决于内存控制器中实现的 ECC 的错误检测和纠正能力【索引6,Basic concepts and taxonomy of dependable and secure computing,2004,IEEE Transactions on Dependable and Secure Computing】。现场可能发生的错误类型分为以下几类:
- 已纠正错误 (Corrected Error, CE): 指由故障引起但被内存控制器使用 ECC 成功纠正并恢复为正确值的错误。发生 CE 时,导致 CE 的物理地址 (PA) 会被记录在寄存器中。需要注意的是,不正确的错误纠正(后文称为误纠)也被归类为 CE。本研究严格区分可纠正错误和已纠正错误。
- 已检测到的未纠正错误 (Detected Uncorrected Error, DUE): 指虽然可以被系统级 ECC 检测到但无法纠正的错误。通常,当发生 DUE 时,尽管无法纠正,错误的 PA 仍会被记录以供进一步分析。如果 DUE 发生在关键数据读取操作(需求读取)期间,可能会触发系统中断以防止对操作产生影响。DUE 风险表示某种故障模式是否有可能导致 DUE,该风险因故障模式和平台纠正能力而异。
2.2 DRAM 模块架构
本节描述了 DDR4 和 DDR5 DRAM 的模块架构,为理解我们的 DRAM 故障分类方法提供必要的背景。
-
DDR4 2Rx4 RDIMM 架构 图1a 展示了在超大规模数据中心中广泛使用的 DDR4 2Rx4 ECC RDIMM 的架构。它包含两个 rank(2R),每个 rank 有 18 个 DDR4 x4 DRAM 芯片,其中两个芯片用于存储 ECC 校验位。DRAM 故障分析的一个关键方面是理解 DIMM DQs 和 DRAM 芯片 DQs 之间的连接。通常,DIMM DQs 和 DRAM DQs 之间的连接(或映射)是交错的(图1a-S),这种交错方式根据 DRAM 芯片在给定 DIMM 上的物理位置而变化,以优化信号完整性。因此,这种映射在不同的 DIMM 类型之间是不同的。这些映射信息可以从每个 DIMM 上安装的串行存在检测(SPD)中获取。此外,在某些情况下,为了减少因同时向一个 rank 内的所有 DRAM 芯片发送地址信号而引起的同步开关噪声(SSN),RDIMM 中的寄存器时钟驱动器(RCD)会根据 DRAM 芯片在 RDIMM 上的位置(图1a-L 或 R)和 rank ID(图1a-0 或 1)来反转地址信号。因此,在分析 DRAM 故障时,也必须考虑 DIMM 地址信号和 DRAM 地址(DA)信号之间的映射。
-
DDR5 2Rx4 RDIMM 架构 图1b 展示了自 2020 年起被超大规模数据中心开始部署的 DDR5 2Rx4 ECC RDIMM 的架构。与 DDR4 2Rx4 ECC RDIMM 相比,它有两个主要区别。首先,它将通道分为两个可独立寻址的子通道,以提供更高的内存级并行性(MLP)。其次,一个子通道提供 8 个数据位芯片和两个 ECC 校验位芯片(也称为 DDR5 10x4 ECC RDIMM)。因此,在一个 rank 内,DIMM DQs 和 DRAM 芯片 DQs 之间的连接在 DDR4 和 DDR5 2Rx4 ECC RDIMM 之间是不同的。此外,它在 RDIMM 上集成了一个电源管理 IC(PMIC),以提高向每个 DIMM 供电的效率。
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
-
深入理解 DRAM 架构 图 2 展示了 DDR4 x4 DRAM 设备的层次结构,它由四个 Bank Group (BG) 组成。一个 BG 包含四个 bank,每个 bank 都有一个二维的 MAT 阵列。MAT 是指一个由 $N_{BL}$ 条位线 (BL)、$N_{SWL}$ 条子字线 (SWL) 和 $N_{BL} \times N_{SWL}$ 个 DRAM 单元组成的阵列。我们将所有在字线 (WL) 和位线 (BL) 方向上对齐的 MAT 分别称为 RowMAT 和 ColMAT(图 2-R 和 C)。一个 RowMAT 和一个 ColMAT 中的 MAT 数量分别称为 $N_{MAT\_in\_RowMAT}$ 和 $N_{MAT\_in\_ColMAT}$。虽然 $N_{BL}$, $N_{SWL}$, $N_{MAT\_in\_RowMAT}$ 和 $N_{MAT\_in\_ColMAT}$ 在不同产品、代和制造商之间有所不同,但本文中我们假设它们分别为 1024、X、Y 和 8。
-
行激活过程 当接收到针对特定 bank 的激活 (ACT) 命令时,给定的行地址 (RA) 会以层次化的方式进行解码。行解码器 (RowDec) 首先驱动一条主字线 (MWL) 和预解码的行地址信号——FX 和 /FX (即反相的 FX),这些信号作用于与该 RA 对应的 RowMAT 内。一条 MWL 连接到 RowMAT 中跨越多个 MAT 的一组子字线驱动器 (SWD)。对于一个 RowMAT 的偶数地址行,有四个 SWD,每个都位于 RowMAT 中的 MAT[i] 和 MAT[i + 1] 之间,其中 i ∈ {0, 2, 4, 6} (图 2-E),并驱动两条 SWL。对于一个 RowMAT 的奇数地址行,有五个 SWD,分为两种类型:(T1) 三个 SWD,每个都位于 RowMAT 中的 MAT[i] 和 MAT[i + 1] 之间,其中 i ∈ {1, 3, 5},并驱动两条 SWL;(T2) 两个 SWD 分别位于 MAT[0] 和 MAT[7] 的边缘 (图 2-O),每个驱动一条 SWL。这种在 RowMAT 中跨 MAT 的 SWD 布局,在偶数和奇数地址行之间呈之字形交错,是必要的,因为一个 SWD 的高度是一个 MAT 中 SWL 高度的两倍。在 RowMAT 中,两个 MAT 之间跨越八行的四个 SWD 组(图 2-S)连接到一条 MWL,其中一个 SWD 由 FX 和 /FX 信号选择,以驱动一条或两条 SWL。随后,位于两个 RowMAT 之间的 $N_{BL} \times N_{MAT\_in\_RowMAT}$ (= 1024×8) 个位线传感放大器 (BLSA) 感测由这八条 SWL 激活的 DRAM 单元驱动的 BL,并将这些 DRAM 单元的位值存储在这些 BLSA 中。
- 列访问过程 同样,当接收到读取 (RD) 命令时,给定的列地址 (CA) 也会以层次化的方式解码。对于 DDR4 x4 DRAM 设备,列解码器 (ColDec) 从所选 RowMAT 中每个 MAT 的 BLSA 中存储的 1024 位中选择 8 位(总共 8×$N_{MAT\_in\_RowMAT}$ = 64 位)。随后,在一种 DRAM 设备架构中,根据其中一个 RA 位值(后文表示为 RA[m]),来自 RowMAT 中 MAT[3:0] 或 MAT[7:4] 的 32 位会从 bank 驱动到 DRAM 设备的外部 I/O 电路;我们称此架构为“设备 A”。在另一种 DRAM 设备架构中,由 RA[m] 选择 RowMAT 中所有八个 MAT 的每 MAT 8 位中的高 4 位或低 4 位,并从 bank 驱动到 DRAM 设备的外部 I/O 电路;我们称此实现为“设备 B”。请注意,DDR4 x8 DRAM 设备与 DDR4 x4 DRAM 设备共享相同的架构,但 DDR4 x8 DRAM 设备会将来自所选 RowMAT 中所有八个 MAT 的全部 64 位驱动到 DRAM 设备的外部 I/O 电路。最后,由于 DDR4 DRAM 设备支持突发长度为 8,DRAM 设备的外部 I/O 电路通过四个 DRAM DQ 在八个内存时钟上升/下降沿(每个边沿也称为一个 beat)上将这 32 位从 RowMAT 发送到内存控制器。
-
精确定位故障 SWD 故障可能发生在上述任何 DRAM 电路组件中,当故障组件位于内存控制器访问这些位的信号路径上时,它们会表现为位值的错误。同时,我们基于对超大规模数据中心数百万个 RDIMM 的大规模现场监控分析发现,大多数错误是由故障的 SWD 和 SWD 相关组件引起的 (§4)。因此,为了进行精确的 DRAM 故障分析,必须正确确定在特定突发中观察到的四个 DRAM DQ 上的错误与导致这些错误的 SWD 位置之间的联系。
-
SWD 边界分析 图 3 首先描绘了一个 bank 中的一个 RowMAT,并显示了在每个 beat 中哪个 MAT 的 SWL 负责为四个 DRAM DQ 提供四位数据。此后,我们将第 i 个 beat 称为 B[i],其中 i ∈ {0, 1, ..., 7}。设备 A 分别在 B[i] 和 B[i+1] 时,为四个 DRAM DQ 提供来自特定 MAT 的 SWL(图 3 中蓝色的“SWL 边界”)激活的 DRAM 单元的 8 位数据。也就是说,RowMAT 中的不同 MAT 负责在不同 beat 时向四个 DRAM DQ 发送数据。同时,设备 B 根据 RA[m],仅提供来自一个 MAT 的 SWL 激活的 DRAM 单元的高 4 位或低 4 位,用于 B[i] 时的四个 DRAM DQ。也就是说,一个特定的 MAT 负责在特定的 beat 时向四个 DRAM DQ 发送四位数据。
-
故障影响范围 其次,基于对 SWL 边界的理解,图 3 还说明了在每个 beat 中哪个 SWD 负责为四个 DRAM DQ 提供四位数据(图 3 中蓝色的“SWD 边界”)。对于 RowMAT 的奇数和偶数地址行,分别由绿色和橙色的 SWD 驱动 SWL。对于奇数地址行,设备 A 使用左侧两个 SWD(图 3-1 和 2)或右侧两个 SWD 以及中间的 SWD(图 3-3)来驱动 SWL,分别为 B[0:1]、B[2:5] 和 B[6:7] 时的四个 DRAM DQ 提供四位数据。例如,当故障发生在图 3-2 处时,可能会导致 B[2:5](图 3-6)时四个 DRAM DQ 上的所有 16 位都出现错误,这可能或可能不被系统级 ECC 的错误覆盖范围所纠正。设备 B 使用所有五个 SWD 驱动 SWL,分别为 B[0]、B[1:2]、B[3:4]、B[5:6] 和 B[7] 时的四个 DRAM DQ 提供四位数据。对于偶数地址行,设备 A 使用左侧两个 SWD(图 3-4 和 5)或右侧两个 SWD 驱动 SWL,分别为 B[0:3] 和 B[4:7] 时的四个 DRAM DQ 提供四位数据。例如,如果故障发生在图 3-4 处,可能会在 B[0:3](图 3-7)时导致所有 16 位出现错误,这可能或可能不被系统级 ECC 的错误覆盖范围所纠正。设备 B 使用所有四个 SWD 驱动 SWL,分别为 B[0:1]、B[2:3]、B[4:5] 和 B[6:7] 时的四个 DRAM DQ 提供四位数据。由于来自一个 MAT 中 SWL 激活的 DRAM 单元的位在突发期间的每个 beat 中为四个 DRAM DQ 提供四位数据,因此我们将设备 A 和 B 称为突发对齐架构。
3.2 DDR5 x4 DRAM
- 深入理解 DDR5 DRAM 架构 图 4 展示了 DDR5 x4 DRAM 设备的层次结构。它与 DDR4 x4 DRAM 设备有以下五个关键区别。(D1) 它由八个 Bank Group (BG) 组成,是 DDR4 x4 DRAM 设备 BG 数量的两倍。(D2) 它是 DDR DRAM 设备中第一个采用 IDECC 的,每个 RowMAT 的中心包含一个奇偶校验 MAT,其大小是标准 MAT 的一半,每个奇偶校验 MAT 有 $N_{BL}/2$ 条 BL(图 4-P)。(D3) 它的突发长度是 DDR4 x4 DRAM 设备的两倍(即突发长度为 16)。(D4) 它从每个 MAT 中选择 16 位以支持 16 的突发长度,同时从奇偶校验 MAT 中选择 8 位。也就是说,来自奇偶校验 MAT 的 8 位用于检测和纠正 16×8 (= 128) 位中的单比特错误。(D5) 它在系统级 ECC (§2.1) 和 IDECC 之间提供了明确的错误边界,以避免因 IDECC 而降低错误覆盖率。
- 精确定位故障 SWD 为了实现上述 (D5),DDR5 x4 DRAM 设备必须设计成将来自一个 MAT 的所有 16 位数据在 16 个 beat(即 DDR5 DRAM 设备的突发长度)内发送到特定的 DRAM DQ。图 5 仅描绘了一个 bank 中的一个 RowMAT,并显示了根据 RA[m],偶数编号或奇数编号的四个 MAT(MAT[0, 2, 4, 6] 或 MAT[1, 3, 5, 7])在 16 个 beat 内将 64 位数据发送到四个 DRAM DQ。这种架构也被称为 DQ 对齐架构,与突发对齐架构相比具有以下优势。当数据 MAT 上的一个 SWD 发生故障时(图 5-1),错误只会出现在一个 DRAM DQ 上(图 5-2),其边界与 SWL 故障相同,与 RA[m] 无关。对于奇偶校验 MAT 上的 SWD 故障(图 5-3),错误可能出现在一个 DRAM DQ 上(图 5-4),并且由于 IDECC 的误纠,可能在任何 DRAM DQ 中产生额外的一位错误。虽然这些错误无法被 IDECC 纠正,但系统级 ECC 凭借其纠正能力——纠正任何两个 DRAM DQ 上的所有错误——可以检测并纠正它们。最后,与突发对齐架构不同,DQ 对齐架构可以同时覆盖 I/O 错误和 SWD 故障。
A2 方法细节
本节介绍了一种用于对 DRAM 故障进行分类的方法。我们将 DRAM 故障定义为“一个包含在特定时间段(观察期)内发生的所有错误,与 DRAM 层次结构对齐,并具有自身时间行为模式的分类”。我们的分类方法基于两个基本轴:错误的空间分布和错误的时间行为。错误的空间分布通过将物理地址(PA)转换为相应的 DRAM 地址(DA)来分析。然后根据 DIMM 中的层次结构进行分类,以识别故障位置。错误的时间行为根据错误在显现后持续的时间及其发生频率进行分类。这种分类有助于我们推断故障原因并预测未来的错误趋势。
我们在 §4.1、§4.2 和 §4.3 中详细解释了我们提出的分类方法。随后,在 §4.4 中讨论了选择观察期的理由。
4.1 DDR4 DRAM 中的空间故障分类
-
空间故障分类定义 在一个观察期内,发生的错误会根据设备特定的体系结构层次进行累积。确定包含电路边界内所有错误的最小层次结构的过程称为空间故障分类。我们提出的方法首先区分局限于单个 bank 内的故障和跨越多个 bank 的故障。这种区分至关重要,因为错误模式及其预后意义根据故障是分布在单个 DRAM bank 内还是跨多个 bank 而有显著不同。
-
Intra-bank 故障 DRAM bank 是密集封装的有源和无源器件的集合,以重复结构排列。大多数 DRAM 故障都属于 intra-bank 故障类别,因为 bank 是最小特征尺寸电路的集合。
-
有界故障与无界故障 在各种类型的 intra-bank 故障中,某些故障边界尤为明显。有界故障(Bounded faults),记为 b,指局限于垂直和水平方向上相邻的 4 个 MAT 内的故障,这些 MAT 共享 BLSA 和 SWD(2×2 MAT,图 6 中的蓝色框)。而未局限于此边界内的故障则为无界故障(unbounded faults),记为 ub。除了 DRAM 单元,bank 内最容易出现故障的组件是 SWD、其控制逻辑、BLSA 以及与 BLSA 相关的电路,因为它们在 MAT 之间高度集成。典型的有界故障如图 7 所示。由于 SWD 由多个预解码信号如 $MWL(i)$ 和 $MWL(i+1)$ 激活,SWD 相关故障倾向于遵循与缺陷的层次位置相关的特定 RA 模式。例如,如果图 7d 中红色线所示的 $MWL(i+1)$ 信号发生故障,则会观察到在两个相邻 MAT 之间 RA 间隔为 8 的多个 SWL 上出现错误。
-
空间故障子类 根据错误的空间分布,DRAM 故障大致分为五大类:单地址(SA)故障、列(COL)故障、单行(ROW)故障、多行(MROW)故障、阵列 MAT(MAT)故障。此外,空间故障分类被细分为 20 个子类,这些子类取决于错误位位置的数量 (#error bit locations)、一个 ColMAT 中的 MAT 数量 (#$N_{MAT}$ ) 和一个 RowMAT 中的 MAT 数量 (#$N_{MAT}$),两个 MAT 在一个 ColMAT (adj $N_{MAT}$) 和一个 RowMAT (adj $N_{MAT}$) 中是否相邻,故障行的数量 (#faulty rows) 和故障列的数量 (#faulty cols),以及故障行之间的间隔 (#interval),提供了一个全面的分类法:
- SA 故障: 当错误出现在一个 RA 和一个 CA 上时分类。有两个子类:SB (#error bit locations=1) 和 SAm (#error bit locations>1)。
- 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)。
- ROW 故障: 当错误出现在一个 RA 和多个 CA 上时分类。有 3 个子类:SWL (#$N_{MAT}$= 1), SWD (#$N_{MAT}$= 2, adj $N_{MAT}$; 如图 7a 所示), 和 Rpost (其他)。
- 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)。
-
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 (其他)。
-
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 中的空间故障分类
- DDR5 空间故障分类方法 DDR5 DRAM 的架构层次与 DDR4 DRAM 相似,只是增加了一个专用于 IDECC 的奇偶校验 MAT。然而,当奇偶校验 MAT 内发生多个错误时,误纠可能导致额外的位翻转,需要仔细进行故障分类。对于 DDR5 DRAM,intra-bank 故障的分类与 DDR4 DRAM 类似,但增加了对奇偶校验区域(parity region)中发生的故障的分类,用 p 表示。这些故障包括 CSLp、SWLp、SWDp、EAWLpb 和 EEWLpb。
4.3 时间故障分类
- 时间分类的重要性 对 DRAM 故障进行分类的另一个视角是时间方面,即错误状态随时间持续多久。一个故障要表现为一个或多个错误,其值必须偏离期望值。换句话说,错误可能发生也可能不发生,这取决于期望数据的模式。如果在一段时间内观察到相对较长的错误显现持续时间,可以推断 DIMM 内部存在持久的物理故障。另一方面,例如由接触模糊电阻值引起的故障,可能表现出较短的错误状态持续时间。此外,某些错误可能持续时间非常短或只发生一次。在这种情况下,可以认为这是一个软错误,可以通过简单的纠正数据重写(scrubbing)来恢复,因此,通过内存 RAS 行为来消除这种故障将是不恰当的决定。
-
时间故障分类方法 图 8a 展示了通过时间故障分析对故障进行分类的方法。瞬态故障(Transient faults,记为 t)表示在观察期内错误只发生一次。偶发性故障(Sporadic faults,记为 s)表示在观察期内错误发生不止一次,但在一个清理周期后消失。
-
错误存在持续时间 (DEP) 的定义 图 8b 说明了错误存在持续时间(Duration of Error Presence, DEP),即在观察期内错误存在的总时间。DEP 由两种操作决定:需求读取(demand read)和巡检(patrol scrub)。由于由主机需求驱动的读取操作在地址访问上是不规则的,确定错误状态的持续时间是模糊的。相反,巡检操作保证了周期性,从而能够估计错误状态的持续时间。间歇性故障(Intermittent faults,记为 i)表示在观察期内的 DEP 大于一个清理周期但小于或等于观察期的 50%。永久性故障(Permanent faults,记为 p)表示在观察期内的 DEP 超过观察期的 50%。时间故障分析结果为了解故障的状态或原因提供了见解,并作为决定是否采取后续 RAS 行为的参考。
4.4 对观察期的考量
- 观察期的重要性 建立一个适当的观察期对于准确确定故障边界至关重要。长时间累积错误可能因次要错误(如 SBt)的重叠而导致误导性的故障分类结果。相反,过短的观察期可能导致对故障所表现出的错误表征不足。
-
观察期长度与准确性 图 9a 展示了基于不同观察期设置的准确性分析。x 轴表示观察期(6/12 小时,1/2/4/8/16 天),y 轴表示分类准确性。真实值是手动消除 32 天内收集的所有错误中的次要错误后的分类结果。在这项工作中,我们选择了 7 天的观察期,以确保从巡检中获得足够数量的读取,实现了 95% 的匹配率,且不同设备之间没有显著差异。
-
巡检与需求读取的影响 图 9b 进一步评估了分类准确性作为观察期长度的函数,并分开了需求读取日志和巡检日志。我们发现,巡检是准确进行 DRAM 故障分类的主要贡献者,在 7 天窗口下约占 75% 的正确匹配。当仅依赖巡检读取(-25%)或仅依赖需求读取(-70%)时,匹配率显著下降,这主要是由于瞬态 SB 故障的丢失。仅依赖需求读取的分类表现不佳,是因为其检测在 DRAM 架构中表现为故障 RA 模式的有界故障的能力有限。
A4 实验环境
- 数据集: 本研究收集了来自 Microsoft Azure 数据中心的现场数据,涵盖了超过 20 种不同技术节点和架构的 RDIMM,总计运行时间达数千亿设备小时。数据从多个集群收集,以减少与不同地区和特定环境条件相关的统计偏差。
- 数据收集方法: 采用了带内错误收集方法,每当发生错误时,通过机器检查架构(Machine Check Architecture)寄存器检索并记录日志。这种方法最大限度地减少了错误日志的丢失。
-
硬件配置:
- 分析了约 830 万个 DDR4 RDIMM(设备 A, B)和约 80 万个 DDR5 RDIMM(设备 C, D),这些都是现场广泛使用的型号。
- 总计运行时间约 5450 亿设备小时,确保了统计显著性。
- 具体设备详情见下表1。
-
软件配置: 无明确提及,但基于上下文,系统运行在 Microsoft Azure 的生产环境中,使用其标准的操作系统和管理软件。
表1: 观察到的设备详情
* 设备小时数 = DIMM 数量 x 运行小时数
A4 实验结果
5.2 DDR4 x4 RDIMM
- Intra-bank (bank 内) 故障分析 (表 2):
- 主要发现:
- 与以往的现场研究相比【索引42, Schroeder et al., DRAM errors in the wild: a large-scale field study, 2009, ACM SIGMETRICS; 46, Sridharan et al., Feng shui of supercomputer memory, 2013, SC】,单地址 (SA) 故障在总故障中的比例有所下降。这表明技术扩展的瓶颈更多地体现在聚集性故障(clustered faults),特别是行 (ROW) 和多行 (MROW) 故障上。
- 每种故障类型的比例是各个技术节点的特征值,因为故障趋势与每个技术节点的制造工艺密切相关。
- 超过 99.5% 的 intra-bank 故障与 DRAM bank 的层次结构相关。其中,不能直接归因于架构的
post类型故障发生率极低,证明了本文提出的方法对现场 DRAM 故障具有很高的解释力。 - 在与架构层次对齐的聚集性故障中,100% 都是有界故障 (bounded faults)。这表明绝大多数现场 DRAM 故障都发生在 2x2 MAT 区域内,因此对有界故障的错误覆盖是决定内存子系统可靠性的关键因素。
- 主要发现:
表2: 设备 A 和 B 的 Intra-bank 故障 (T: 瞬态, S: 偶发性, I: 间歇性, P: 永久性)
-
Inter-bank (bank 间) 故障分析:
- 结论: Inter-bank 故障的发生频率远低于 intra-bank 故障,通常在生产过程的初始验证或加速测试中被检测和消除。这类故障(除数据线和 DIMM-IO 故障外)难以通过测试复现,表明其主要原因可能不是 DRAM 芯片本身,而是特定的操作环境(如服务器节点、机架位置等)。
-
故障分类的时间稳定性 (图 10):
- 实验内容: 分析了故障分类在 64 天内的稳定性。
- 实验结果: 98.6% 的有界故障 (bounded faults) 仍然保持为有界故障,93.8% 的无界故障 (unbounded faults) 仍然是无界故障。有界和无界故障之间的转换率极低(分别为 0.0% 和 2.4%)。
- 结论: 一旦故障被分类,其类别(有界或无界)在长时间内非常稳定。这意味着与特定 DRAM 故障相关的 DUE (不可纠正错误) 风险在未来可能会持续存在,因此基于此分类的 RAS 行为具有很高的置信度。
- 失效时间分析 (Time to Failure) (图 11):
- 实验内容: 分析了从首次检测到 DUE 风险到实际发生 DUE 的时间分布。
- 实验结果: 在 DDR4 x4 RDIMM 中,检测到 DUE 风险后的响应时间与可预防的 DUE 发生率之间存在指数关系【索引41, Schroeder and Gibson, A large-scale study of failures in high-performance computing systems, 2009, IEEE transactions on Dependable and Secure Computing】。如果在检测到风险后 1 天内采取行动,可以分别预防设备 A 和 B 中 58% 和 45% 的 DUE。如果在 30 分钟内采取行动,可避免高达 75% 的 DUE。
- 结论: 必须实施能够快速执行故障移除的系统,以在识别到早期预警信号后立即采取行动。
5.3 DDR5 10x4 RDIMM
- DDR5 故障分析的挑战与对策 (图 12):
- 挑战: DDR5 DRAM 的 IDECC (片上 ECC) 会消除所有单比特 (SB) 错误,从而扭曲报告给主机的错误日志,使故障推断变得困难【索引30, Nair et al., XED: Exposing On-Die Error Detection Information for Strong Memory Reliability, 2016, ISCA】。
- 对策: 开发了一个仿真模型,使用 DDR4 的日志来生成伪 DDR5 数据,通过模拟 IDECC 的行为【索引4, JEDEC Standard: DDR5 SDRAM, 2020】,比较 IDECC 前后的故障分类结果。
-
仿真结果分析 (图 13):
-
实验结果:
- 约 81.8% 的 DDR4 DRAM 故障(主要是 SB 故障)被 IDECC 掩盖,不会报告给主机。
- 4.3% 的故障被错误解释。其中,一半的转换(2.15%)变成了 SAm 故障。
- 幸运的是,具有非零 DUE 概率的无界故障基本保持不变,仍然可以被准确分类。
-
结论:
- IDECC 在 DDR5 10x4 DRAM 中扮演了良好过滤器的角色,能有效过滤掉有 DUE 风险的错误,而不是阻碍错误上报。
- 在 DDR5 RDIMM 上检测到的 SAm 故障应被视为至少是 ROW 故障,并据此采取 RAS 措施。
- 由有界故障转换而来的 Cpost 故障是可纠正的(CE),在 DUE 风险方面是可容忍的。
-
- 伪 DDR5 与真实 DDR5 数据对比 (表 3):
- 实验内容: 比较了由设备 B (DDR4) 生成的伪 DDR5 数据与设备 C (真实 DDR5) 的故障分类结果,两者基于相同的技术。
- 实验结果: 两者结果的余弦相似度约为 0.98,表明高度相似。这验证了使用仿真方法来理解 DDR5 错误行为的可靠性。真实 DDR5 中偶发性无界故障 (MR1C) 的微小差异,是由于存储冗余替换数据的寄存器组发生软错误所致,这些寄存器可通过擦洗恢复。
- 结论: 仿真方法是可靠的。
表3: 设备 C 和伪 DDR5(由设备 B 仿真)的 Intra-bank 故障分类结果
- DDR5 Intra-bank 故障分类 (表 4):
- 实验结果: 在设备 C 和 D 中,分别有 93.9% 和 82.9% 的故障与 DRAM 的架构层次结构对齐。与 DDR4 相比,无界故障的比例相对较高,但这主要是由于 SA 故障的大幅减少所致。
表4: 设备 C 和 D 的 Intra-bank 故障分类
- DDR5 失效时间分析:
- 挑战: 由于 DDR5 10x4 RDIMM 增强的错误覆盖能力(ECC 校验位翻倍及 IDECC 的引入),实际 DUE 发生率极低。DUE 概率约为故障率与 DUE 概率(DDR5 10x4 RDIMM 的 125 位模式下约为 10⁻¹²)的乘积。
- 结论: DRAM 引起的 DUE 率非常低,难以使用设备 C 和 D 测量其预测能力。
A7 补充细节
6 DRAM 故障分析器 (DFA): 一种共享领域知识的方法
- DFA 的必要性 为了将本文提出的利用 DRAM 架构信息的分析方法应用于内存 RAS 管理系统,必须共享关于 DRAM 和 DIMM 的架构与配置信息。然而,这些信息构成了领域特定的知识,与每个 DRAM 供应商的决策、专有技术和战略考虑深度绑定,因此很少公开发布。鉴于这些限制,DFA 通过将这些信息转换为编译后的对象文件,最大限度地利用了现场 DRAM RAS 管理中的领域知识,从而提高了安全性和效率。本节介绍了 DFA 背后的概念,并探讨了在不同错误日志收集环境下分类结果的变化。
6.1 DFA 和 DFA 控制代理
-
DFA 组成 DFA (DRAM Fault Analyzer) 包含三个基本组件:地址转换器(Address Translator)、故障分类器(Fault Classifier)和 RAS 行为顾问(RAS Action Advisor)。地址转换器负责将物理地址(PA)转换为 DRAM 地址(DA)。此外,地址转换器的另一个重要作用是评估当前输入的错误模式是否超出了 SWD 边界,以触发故障分类。故障分类器评估现场错误,以利用所提出的方法对 DRAM 故障进行分类。同时,RAS 行为顾问确定最佳的 RAS 行为,以减轻推断出的 DRAM 故障的影响。
-
DFA 控制代理 (DFACA) DFACA (DFA Controlling Agent) 以预定义的频率对日志进行周期性分析。此外,如果地址转换器检测到跨越 SWD 边界的错误模式,DFA 会向 DFACA 请求立即分析。收到此请求后,DFACA 指示 DFA 分析其日志存储库中存储的日志。然后,DFA 启动其功能——对 DIMM 故障进行分类,精确定位其位置,评估考虑平台 ECC 能力的 DUE 风险——并推荐内存 RAS 行为(图 14)。DFA 已部署在 Microsoft Azure 数据中心,作为内存可靠性管理系统的一个组成部分运行。
6.2 内存 RAS 行为
-
内存 RAS 行为建议 现场 DRAM 故障分类的目标之一是确定最合适的纠正措施。理想的内存 RAS 行为应是一种区域高效、有效(对行为有高置信度)且永久的解决方案,可在运行时应用,无需系统重置或重启。然而,现有的内存 RAS 行为都不能完全满足这些理想条件。
-
组合式 RAS 行为 基于此,我们提出了两种内存 RAS 行为的组合:运行时内存 RAS 行为(在当前电源周期内适用)和下一电源周期行为(在下一次启动或上电过程中生效)。值得注意的是,简单地启动一个 DIMM 也被视为一种 RAS 行为。软性封装后修复(sPPR, 【索引1, JEDEC Standard: DDR4 SDRAM, 2012; 4, JEDEC Standard: DDR5 SDRAM, 2020】)、页下线(Poff, 【索引11, Costa et al., A System Software Approach to Proactive MemoryError Avoidance, 2014, SC; 13, Du and Li, Combining error statistics with failure prediction in memory page offlining, 2019, MEMSYS; 14, Du et al., Fault-Aware Prediction-Guided Page Offlining, 2021, ICCD】)和 Bank 冗余(BnkSpr, 【索引20, Intel, 4th Gen Intel® Xeon® Scalable Processors: Reliability, Availability, and Serviceability, 2023】)是在不中断服务的情况下减轻故障影响的有用措施。另一方面,硬性封装后修复(hPPR)、DIMM 初始化(INIT)和 DIMM 移除(RMV)被认为是在下一次启动周期中采取的措施。在这种情况下,对当前电源周期中频繁观察到的 ROW 故障应用 sPPR 以保留 DRAM 数据,然后在下一次启动周期中根据记录的 sPPR 信息执行 hPPR,是有效且实用的 RAS 行为组合之一。同样,Poff 和 BnkSpr 也是下一次启动周期中可以考虑的选项。
表5: 每种 DRAM 故障的内存 RAS 行为
- 具体 RAS 行为建议 表 5 总结了 DFA 基于故障分类结果推荐的内存 RAS 行为。大多数瞬态和偶发性故障由 DRAM 或系统中的 ECC 机制缓解,确保数据保护。在 DDR5 10×4 RDIMM 中,SAm 故障很可能源于其他潜在故障;因此,建议对所有检测到的 SAm 故障采取 s- 或 h-PPR(表 5-1)。相反,偶发性的 MR1C 故障很可能已经通过擦洗解决,因此不需要额外的 RAS 行为(表 5-2)。对于 MRMpost,存在 inter-bank 故障的可能性很高,因此务必首先参考 inter-bank 故障分析结果,以避免不正确的 RAS 行为(表 5-3)。如果没有 inter-bank 故障,则建议将 BnkSpr 作为 RAS 行为。
6.3 日志采样频率的影响
- 日志分辨率的影响 现场内存日志的分辨率根据收集方法的不同而有显著差异。本研究中使用的事件驱动日志的分辨率约为 10 µs,而通过定期轮询方法(如通过 BMC)收集的日志,其分辨率超过 1 秒。因此,在使用基于轮询的日志收集时,有必要评估日志质量的下降及其对管理能力的影响。我们的分析表明,将分辨率降低到 1 秒对 RAS 行为建议的影响微乎其微。这表明通过定期寄存器访问方法进行日志收集是可行的。表 6 评估了当日志分辨率降低时,RAS 行为的选择偏离的程度。该评估是通过从高分辨率(10 µs)日志生成低分辨率(1s)日志并分析相应影响来进行的。
表6: 基于日志质量的 RAS 行为比较
- 分析结果 对于包含潜在 DUE 风险的无界故障的 DDR4,将分辨率降低到 1 秒并未导致任何不正确的 RAS 行为建议。在伪 DDR5 的情况下,只有 0.2% 的 DIMM 对无界故障的边界估计偏低。然而,与无界故障的总体规模相比,这一部分可以忽略不计(表 6 中灰色部分)。在有界故障的情况下,大多数实例都采取了适当的预防措施。然而,2.9% 的 DDR4 x4 DIMM 和 3.3% 的 DDR5 10x4 DIMM 显示,感知的故障边界小于其实际边界(表 6 中浅灰色部分)。尽管如此,其影响很小,并且在可接受的范围内。
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】。
💬 评论讨论
欢迎在这里分享您的想法和见解!