第9章 ECC 原理
# 第9章 ECC 原理
# 1. ECC 是什么?(是什么东西?)
ECC 是纠错码,主流 ECC 算法是 LDPC。
# 2. 为什么需要 ECC?(作用?用途?)
所有闪存都无法保证存储的数据会永久稳定,所以需要 ECC(纠错码)去给闪存纠错。确保信息传递的错误率趋近于0.
ECC 能力的强弱直接影响 SSD 的使用寿命和可靠性。
NAND闪存为什么会出错?
NAND 每个存储单元从只放一个 bit,叫 SLC,变成可放两个 bit,叫 MLC,现在主流的是放3个 bit,叫 TLC。在存储密度不断增加的同时,器件尺寸变小,存储单元电气耦合性变得很复杂。比如氧化层变得很薄,比如读取单个 bit 需要的读电压控制能力更精密等,总的来说,NAND flash更容易出错了,或者说 NAND 上的噪声增加了。
# 3. LDPC 是什么?
LDPC 全程 Low Density Parity-Check Code,即低密度奇偶校验码。也就是说校验矩阵 H 里面的1的分布比较稀疏。它分为正则 LDPC(regular LDPC)和非正则 LDPC(irregular LDPC)编码。
- 正则 LDPC:检验矩阵每行有固定 J 个1,每列有固定 K 个1
- 非正则 LDPC:没有上述限制
# 4. Tanner 图是什么?
由节点和连线组成,可直观的表示LDPC的H矩阵。
节点分为b节点(bit node)(用圆形表示),c节点(check node)(用方块表示)
# 5. LDPC 解码是什么?
LDPC解码分为硬盘决解码和软判决解码。
- 经典的硬判决算法:Bit-flipping 算法
- 软判决算法:和积信息传播算法
# 6. 什么是 Bit-flipping 算法
Bit-flipping是一种运用消息传递方法,通过不断迭代达到纠错效果的算法。
核心思想:如果信号中有一个 bit 参与的大量校验方程都校验失败,那么这个 bit 有错误的概率很大。
# 7. 什么是和积信息传播算法
和积信息传播算法(sum-product message passing,简称和积算法),它是在贝叶斯网络、马尔可夫随机场等概率图模型中用于推断的一种信息传递算法。