ECC纠错技术可以纠正一定数量的错误bit。主流的SSD ECC纠错技术主要有BCH编码和LDPC编码(LDPC码即低密度奇偶校验码,Low Density Parity Check Code,LDPC)。
不过,由于对更为廉价且密度更高的NAND闪存的需求以及3D NAND闪存的普及,对主控ECC纠错能力的要求越来越苛刻, BCH编码技术会慢慢退出历史舞台,目前市面上的SSD绝大多数都是采用LDPC码纠错。
LDPC码很低调,在背后默默地护送数据安全传输,不求回报。LDPC码其实是低调奢华有内涵,非常人能精通。很多公司LDPC的开发与维护都是专业的博士大牛们主宰。吾等小辈只能略过皮毛。
目前SSD主控基本通过硬件的方式实现的,在主控的FW中只需要传输主要的参数即可。
以下内容只是简单的大概介绍,想深入仔细的了解,请自行问度娘或者维基百科,更又很多学术论文。
【LDPC码简介】
LDPC码是一种线性分组码,它于1962年由Gallager提出,之后很长一段时间没有收到人们的重视。直到1993年Berrou等提出了turbo码,人们发现turbo码从某种角度上说也是一种LDPC码,近几年人们重新认识到LDPC码所具有的优越性能和巨大的实用价值。1996年MacKay和Neal的研究表明.采用LDPC长码可以达到turbo码的性能,而最近的研究表明,被优化了的非规则LDPC码采用可信传播(Belief Propagation)译码算法时,能得到比turbo码更好的性能。
目前,LDPC码被认为是迄今为止性能最好的码。LDPC码是当今信道编码领域的最令人瞩目的研究热点,近几年国际上对LDPC码的理论研究以及工程应用和VLSI(超大规模集成电路)实现方面的研究都已取得重要进展。基于LDPC码的上述优异性能可广泛应用于光通信、卫星通信、深空通信、第四代移动通信系统、高速与甚高速率数字用户线、光和磁记录系统等。
LDPC码可以用非常稀疏的校验矩阵或二分图来描述,也就是说LDPC码的校验矩阵的矩阵元除一小部分不为0外,其它绝大多数都为0。通常我们说一个(n,j,k) LDPC码是指其码长为n,其奇偶校验矩阵每列包含j个1,其它元素为0;每行包含k个1,其它元素为0。j和k都远远小于n,以满足校验矩阵的低密度特性。校验矩阵中列和行的个数即j和k为固定值的LDPC码称为规则码,否则称为非规则码。一般来说非规则的性能优于规则码。
【LDPC码的编码与译码】
LDPC 码所面临的一个主要问题是其较高的编码复杂度和编码时延。对其采用普通的编码方法,LDPC 码具有二次方的编码复杂度,在码长较长时这是难以接受的,幸运的是校验矩阵稀疏性使得LDPC 码的编码成为可能。目前,好的编码方法一般有如下几种情况:
1、T.J.Richardson 和R.L.Urbanke 给出了利用校验矩阵的稀疏性对校验矩阵进行一定的预处理后,再进行编码。
2、设计LDPC 码时,同时考虑编码的有效性,使H矩阵具有半随机矩阵的格式。
3、H 矩阵具有某种不变特性所采用的其他编码方法,例如基于删除译码算法提出的编码方案。
对同样的LDPC码来说,采用不同的译码算法可以获得不同的误码性能。优秀的译码算法可以获得很好的误码性能,反之,采用普通的译码算法,误码性能则表现一般。
LDPC码的译码算法包括三大类:硬判决译码、软判决译码和混合译码。
1. 硬判决译码将接收的实数序列先通过解调器进行解调,再进行硬判决,得到硬判决0,1序列,最后将得到的硬判决序列输送到硬判决译码器进行译码。这种方式的计算复杂度固然很低,但是硬判决操作会损失大部分的信道信息,导致信道信息利用率很低,硬判决译码的信道信息利用率和译码复杂度是三大类译码中最低的。常见的硬判决译码算法有比特翻转算法、一步大数逻辑译码算法。
2. 软判决译码可以看成是无穷比特量化译码,它充分利用接收的信道信息(软信息),信道信息利用率得到了极大的提高,软判决译码利用的信道信息不仅包括信道信息的符号,也包括信道信息的幅度值。信道信息的充分利用,极大地提高了译码性能,使得译码可以迭代进行,充分挖掘接收的信道信息,最终获得出色的误码性能。软判决译码的信道信息利用率和译码复杂度是三大类译码中最高的。最常用的软判决译码算法是和积译码算法,又称置信传播算法。
3. 与上述的硬判决译码和软判决译码相比,混合译码结合了软判决译码和硬判决译码的特点,是一类基于可靠度的译码算法,它在硬判决译码的基础上,利用部分信道信息进行可靠度的计算。常用的混合译码算法有加权比特翻转算法、加权OSMLG译码算法。
【LDPC码小结】
LDPC码是目前人们发现的纠错性能最好的一种码。为了说明这一问题,下面对LDPC码和turb码进行了简要比较。简单的说,LDPC码比turbo码区别在于,LDPC码是一种线性分组码,采用BP迭代译码;而turbo码采用的是卷积码,译码方法主要有MAP类的算法和软输出Viterbi算法的迭代译码。LDPC码有理论极限性能优于turbo码, 给定1/2码率条件下,采用BPSK调制的高斯信道中两种编码方法的纠错性能比较,LDPC码比turbo码更接近香农限,目前最优的LDPC码方案具有的香农限仅有0.0045dB。相对于turbo码而言,LDPC码具有更低的误码平台;其描述简单,对严格的理论分析具有可验证性;吐量大,极具高速译码潜力,而且因为LDPC码采用了并行的迭代译码算法,以及由于LDPC码具有随机码特性,在与信源或者信道级联时,不需要额外加交织器.系统的复杂度和延时都比turbo码要低。