LDPC码不适合工业存储?这是为何?
扫描二维码
随时随地手机看文章
工业领域都熟知LDPC码,它是麻省理工学院Robert Gallager于1963年在博士论文中提出的一种具有稀疏校验矩阵的分组纠错码。几乎适用于所有的信道,因此成为编码界近年来的研究热点。它的性能逼近香农限,且描述和实现简单,易于进行理论分析和研究,译码简单且可实行并行操作,适合硬件实现。
LDPC码被认为是当今 3D TLC 和 QLC 存储器中提高错误率的解决方案。然而它们并不适合每个市场。
低密度奇偶校验(LDPC)码是一种纠错码,渐增性用于需要通过信道进行高效信息传输的应用,存在来自卫星或地球发射机的视频广播等破坏性噪声。在过去十年中,LDPC 码在闪存领域也越来越受到关注。广泛用于 SLC 和 MLC 闪存技术的 BCH 代码无法提供令人满意的性能,因为当今的 3D TLC 和 3D QLC 闪存的备用区域有限,因而被其他具有使用软解码能力的代码取代,例如 LDPC 码。尽管这些代码适用于某些应用,但它们却有两个主要缺点。
图 1:目前可用的不同类型的闪存
每个单元存储的位越多,数据保留越低,故障位的数量越多。虽然 SLC 和 MLC 主要采用平面闪存技术制造,但 TLC 和 QLC 采用 3D 技术制造。
LDPC 在某些领域的表现很好,但在其他领域只有平均水平
LDPC 码对于具有高错误率的输入数据表现出优异的性能。很少有其他代码达到这种性能水平,因为它甚至接近理论最大值香农极限(Shannon limit)。另一方面,它们的性能对于输入数据来说很普通,几乎没有错误。对于少数输入错误,失败的错误纠正非常频繁 - 其他代码在这方面达到明显更好的结果。因此,LDPC 码用于在低输入错误率的情况下偶然错误是可接受的情况,但是需要高错误率的高性能,例如,地面数字视频广播标准 DVB-T。在这种情况下,失败的校正将导致视频流中几个像素的错误颜色 - 这是可接受的。对于另一种情况 - 输入数据中的大量错误 - 视频流将尽可能长时间保持不间断(例如黑屏)。
这种利弊关系解释 NAND 闪存控制器中 LDPC 码的出现。最新的 NAND 闪存技术显示出非常高的错误率 - 尤其是针对消费者市场的错误率。 LDPC 码接近满足这些要求的理想条件。然而,还有其他市场偶尔的错误对于错误率低的输入数据是不可接受的。工业市场就是其中之一。系统级可靠性的一个共同标准是 JEDEC 企业规范:它要求整个工作寿命的速率小于 10-16 帧错误。令人印象深刻的是,LDPC 码的性能接近 NAND 闪存的使用寿命,但它在内存的生命周期内并没有达到此要求,即闪存作为错误纠正输入的变化误码率 - 在开始时低,在生命结束时高。
LDPC 性能只能估算
为了应对 JEDEC 的这种苛刻的规范,康斯坦茨应用科学大学和 Hyperstone 已经基于广义级联码(GCC)开发了不同的纠错码。在高输入错误率方面,它的性能不会超过 LDPC 代码。但是,它确实显示出低和中错误率明显更好的性能。主要优点是可以计算性能,因此可以保证所有输入错误率,而 LDPC 性能只能针对低和中错误率进行估算。有关这方面的详细说明,请参阅我们可免费下载的可靠闪存存储基础白皮书“错误纠正代码”。这意味着除了显示低至中的输入错误率的普通性能外,目前还不清楚 LDPC 将提供什么样确切的水平性能。这一事实完全使其无法在工业和企业存储市场中使用。
图 2. Hyperstone 最新的 SSD 控制器可以满足最高要求的应用可靠性
最高要求的纠错功能
在 Hyperstone 最新闪存控制器中基于 GCC 的纠错功能与称为校准的机制密切配合。该机制确保闪存单元的读出电压始终处于最佳位置,从而在闪存整个生命周期内产生低至中等位的误码率。因此,纠错单元输入端的数据错误量保持在最佳输入条件下 - GCC 纠错明显优于基于 LDPC 的纠错条件。虽然校准结合 GCC 改善了系统级性能,但它不会提升基于 LDPC 的误差校正,因为它将输入误差率从有利范围移到对 LDPC 较不有利的范围。
LDPC 码是闪存控制器的纠错中的普遍代码。它们非常适合可接受偶发错误的消费性产品使用。在对可靠性要求很高的工业市场中,它们根本不适合。 GCC 与先进的校准相结合,能够轻松满足工业市场的苛刻要求。