Notes about Adaptive Double Device Data Correction(ADDDC)
文章目录
本文将mark下Adaptive Double Device Data Correction(ADDDC)的相关notes。
What
ADDDC 是一种针对 DRAM device(DRAM 芯片级故障)的自适应 ECC 保护技术。
核心思想:
Memory Controller 监测到某个 DRAM device 存在失效风险时,动态启用更强的 ECC 保护能力,使系统能够容忍该 device 失效,避免系统崩溃。
简单流程:
1 | 正常运行 |
Why
DRAM device 故障通常有演进过程
实际服务器中:
1 | 正常DRAM |
如果等到 device 完全失效:
1 | Device failure |
因此需要提前发现风险,并提升保护能力。
为什么不一直使用 Chipkill?
Chipkill 同样可以容忍 DRAM device 故障。
但是 Chipkill 的问题:
持续性能开销
Chipkill 需要一直运行更强的 device-level ECC:
1 | 普通ECC: |
因此 Memory Controller 需要:
- 更复杂ECC decoder
- 更复杂的数据重构逻辑
- 更高的访问处理复杂度
结果:
- ECC decode latency增加
- memory access path更复杂
- 功耗增加
即:
即使DRAM完全健康,也一直支付高可靠性保护成本。
ECC资源/容量开销无法避免
Chipkill需要更多ECC冗余:
- 通常采用 x4 DRAM organization
- 需要更多ECC symbol
因此:
- DIMM有效容量利用率降低
- ECC开销增加
这一点 ADDDC无法消除。
ADDDC主要优化的是性能开销,而不是ECC容量开销。
How
ADDDC主要由Integrated Memory Controller(IMC)实现。
架构:
1 | CPU |
Step 1:监测 DRAM device 错误
Memory Controller统计:
- Correctable Error (CE)
- device错误趋势
例如:
1 | Chip3: |
判断:
1 | Chip3可能即将失效 |
Step 2:动态切换保护模式
正常:
1 | Normal ECC |
发现风险:
1 | Normal ECC |
切换到更强 ECC 保护。
Intel 文档强调:
The dynamic nature of the operation makes the performance implications material only after the DRAM device is detected to be failing.
含义:只有检测到 DRAM device 正在失效后,ADDDC带来的性能影响才出现。
Step 3:device失效后仍可恢复数据
例如:
1 | DRAM: |
ADDDC:
1 | Chip3 failure |
避免:
1 | DRAM device failure |
ADDDC vs Chipkill
| Chipkill | ADDDC | |
|---|---|---|
| 目标 | 容忍DRAM device故障 | 容忍DRAM device故障 |
| 保护方式 | 固定开启 | 动态开启 |
| 正常运行成本 | 持续存在 | 较低 |
| 故障风险出现后 | 无变化 | 提升保护 |
| 主要优化点 | 最高可靠性 | 可靠性与性能平衡 |
简单理解:
1 | Chipkill: |
ADDDC vs Memory Sparing
| ADDDC | Memory Sparing | |
|---|---|---|
| 核心 | 增强ECC纠错 | 替换故障内存 |
| 是否需要备用memory | 否 | 需要 |
| 动作 | 继续使用device并纠错 | 切换到spare资源 |
| 目标 | 容忍故障 | 避免使用故障区域 |
总结
ADDDC 是一种预测驱动的 DRAM RAS 技术:Memory Controller 通过监控 DRAM device 错误趋势,在 device 即将失效时动态提升 ECC 保护能力,使系统能够容忍 device 级故障。
相比 Chipkill:
- ADDDC不能消除ECC容量开销
- 优势在于避免Chipkill长期开启带来的性能开销
- 只有检测到故障风险时才进入高保护模式
演进关系:
1 | 普通ECC |
ADDDC 的核心价值就是:用故障预测换取更低的长期性能成本。
参考资料:
- Intel® Xeon® 6 Processors with Performance-cores (P-cores): Reliability, Availability, and Serviceability
- New Reliability, Availability, and Serviceability (RAS) Features in the Intel® Xeon® Processor Family