深入理解Bounded Fault ECC motivation
文章目录
Chipkill的ECC能力是强于Bounded Fault ECC的。那么既然已经有了Chipkill,为什么还要有Bounded Fault ECC呢?
Prerequisite
Overview
Bounded Fault ECC(有界故障ECC)的提出,很大程度上就是为了弥补传统 Chipkill 在 x8 DRAM 组织下无法覆盖某些 device fault 的问题。
核心关系:
Chipkill 本身不是万能的,它依赖 DRAM device 的粒度(x4/x8)。Bounded Fault ECC 的目标就是把”不可控的大故障”限制成 ECC 可以处理的有界故障,从而让 Chipkill 能覆盖更多场景。
下面结合 x4 / x8 解释。
回顾 Chipkill 的基本思想
Chipkill:
将一个 DRAM chip/device 的失效看成一个 ECC symbol 丢失,然后利用强ECC恢复。
例如:
一个 cache line:
1 | Data: |
如果:
1 | Chip2 完全失效 |
变成:
1 | symbol2 missing |
ECC恢复:
1 | symbol0 |
因此:
Chipkill要求:device failure必须是ECC可以建模和恢复的symbol error。
x4 DRAM为什么天然适合Chipkill?
x4 DRAM:
表示:
一个DRAM chip一次输出4 bit数据。
例如:
1 | x4 DRAM: |
假设一个device坏:
1 | Chip2 failure |
损失:
1 | 4 bits |
ECC看到:
1 | 一个symbol丢失 |
这是比较容易处理的。
所以:
1 | x4 DRAM + ECC DIMM |
为什么x8 DRAM给Chipkill带来问题?
x8 DRAM:
一个chip输出:
1 | 8 bits |
例如:
1 | Chip0 ---> 8 bits |
如果:
1 | Chip2 failure |
一次丢:
1 | 8 bits |
问题来了:
ECC symbol粒度通常没有这么大。
也就是说:
1 | 一个device failure |
例如:
1 | symbol0 |
传统Chipkill:
1 | 一个symbol failure |
可以处理。
但是:
1 | 多个symbol failure |
可能超出ECC能力。
所以:
传统Chipkill在x8 DRAM下无法保证覆盖整个device failure。
为什么需要 Bounded Fault ECC?
问题本质:
x8 DRAM:
1 | device failure |
这个故障太大。
Bounded Fault ECC的思想:
不要求ECC处理任意大的device fault,而是通过限制fault范围,把错误变成ECC可纠正的形式。
也就是:
1 | unbounded fault |
Bounded Fault ECC如何帮助Chipkill?
简单理解:
以前:
1 | x8 DRAM |
加入Bounded Fault ECC:
1 | x8 DRAM |
也就是说:
Bounded Fault ECC把x8 device failure转换成Chipkill ECC能够处理的故障模型。
Example
没有Bounded Fault ECC
x8:
1 | Chip0 Chip1 Chip2 Chip3 |
Chip2坏:
1 | 8 bits corrupted |
ECC:
1 | 需要恢复8-bit device failure |
结果:
1 | UE |
有Bounded Fault ECC
故障:
1 | Chip2 failure |
经过fault bounding:
1 | 只暴露有限bit error |
例如:
1 | 错误限制在一个ECC word范围内 |
然后:
1 | Chipkill ECC |
x4、x8与RAS演进关系
可以这样理解:
1 | DRAM device fault |
为什么不用全部换成x4?
这是实际工程问题。
x4优势:
- 更容易实现Chipkill
但是:
- DRAM颗粒组织不同
- PCB布线
- 成本
- 容量密度
- 产品兼容性
x8:
- 成本低
- 常见
- 容量密度高
所以业界希望:
保留x8 DRAM优势,同时获得类似Chipkill的可靠性。
这就是Bounded Fault ECC出现的原因。
总结

Chipkill依赖DRAM device故障粒度,而传统Chipkill更适合x4 DRAM。x8 DRAM由于一次device failure会产生更大的错误范围,超过传统Chipkill ECC能力。Bounded Fault ECC通过限制故障范围,将x8 device failure转换为ECC可处理的有界错误,从而让Chipkill类保护能够覆盖x8 DRAM。
Bounded Fault ECC不是替代Chipkill,而是扩展Chipkill能够处理的fault model。