本文将mark下DDR5 On-Die ECC技术的相关notes。

Prerequisite

DRAM components

What

On-Die ECC 是放在 DRAM 芯片内部的一层错误保护机制,用来自动修复 DRAM cell 产生的小错误。

Without On-Die ECC

1
2
3
4
5
6
7
CPU
|
Memory Controller
|
DRAM
|
Memory Cell

错误发生:

1
2
3
4
5
6
7
8
9
Memory Cell 出错



Memory Controller 的 ECC 发现



修复

With On-Die ECC

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
CPU

|

Memory Controller

|

DRAM Chip

|
|
On-Die ECC

|
|
DRAM Cell

错误首先在 DRAM 内部处理:

1
2
3
4
5
6
7
8
9
DRAM Cell 出错



On-Die ECC 修复



输出正确数据

因此系统看到的错误变少了

Why

DRAM 工艺越来越复杂,cell 更容易出错

随着 DRAM 制程缩小:

  • cell 更小
  • 保存电荷更少
  • 抗干扰能力下降

打个比方

  • 以前
1
2
3
大水桶

存水多
  • 现在
1
2
3
小水杯

容易洒水

因此DRAM 内部错误增加。

DRAM 芯片内部最清楚哪里出错

DRAM 芯片内部知道:

  • 哪个 cell 出问题
  • 哪些 bit 相关

因此在 DRAM 内部修复效率最高。

类似:

1
2
3
4
5
6
7
8
9
汽车发动机坏



发动机内部维修



送到车外检测更快

减少系统级 ECC 压力

如果没有 On-Die ECC,所有错误:

1
2
3
4
5
6
7
8
9
DRAM



Memory Controller



系统 ECC

系统需要承担大量:

  • 小 bit error
  • 随机错误

有 On-Die ECC:

1
2
3
4
5
6
7
8
DRAM内部:

处理大量小错误


系统ECC:

处理更严重错误

形成分层保护:

1
2
3
4
5
6
7
8
9
10
11
12
13
    系统可靠性



System ECC / Chipkill



On-Die ECC



DRAM Cell

On-Die ECC vs 系统 ECC

On-Die ECC 系统 ECC
位置 DRAM 芯片内部 Memory Controller
保护对象 DRAM cell 内部错误 整个内存系统错误
主要作用 修复小错误 处理严重错误
是否对系统可见 通常不可见 可见
粒度 芯片内部 DIMM/Rank级

Summary

随着制程工艺不断缩小,每个 DRAM 单元(cell)中存储的电荷量减少,工艺波动(process variation)增加,同时晶体管也更容易受到老化(wear-out)的影响。为了缓解这些错误,现代 DRAM 集成了片上 ECC(On-Die ECC),在 DRAM 芯片内部对错误进行修复,并与外部系统 ECC(System ECC)协同工作。

每个 DRAM die(芯片颗粒)内部都包含隐藏的冗余存储单元(redundancy cells)以及一个紧凑的编码器/解码器(encoder/decoder)。该机制会在每个 bank group 内,对每次写入的数据进行编码,并在每次读取时进行解码(如图 1 中蓝色部分所示)。

通过在本地(DRAM 芯片内部)纠正错误,On-Die ECC可以有效地将原本存在轻微缺陷(marginal defects)的 DRAM die 转变为对外表现为无故障(externally fault-free)的组件,从而提高芯片制造良率,并保证组件级别的可靠性超过产品质保期限(warranty thresholds)。


参考资料:

  1. XED: Exposing On-Die Error Detection Information for Strong Memory Reliability(ISCA’16)
  2. DUO: Exposing On-chip Redundancy to Rank-Level ECC for High Reliability(HPCA’18)
  3. Cerberus: Cross-Layer ECC Co-Design for Robust and Efficient Memory Protection(ISCA’26)
  4. chatgpt