SSD ECC纠错“天网”之LDPC码

简介: 在之前的文章中有提到过,SSD FTL层有一个很重要的功能就是ECC纠错(ECC, Error Correction Code)。


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码要低。


相关文章
|
存储 编解码 算法
准循环 LDPC 码(QC-LDPC) | 带你读《5G-NR信道编码》之九
本节将为你介绍准循环 LDPC 码(QC-LDPC)的基本内容。
15789 2
准循环 LDPC 码(QC-LDPC) | 带你读《5G-NR信道编码》之九
|
Windows
mathtype7产品激活密钥最新
MathType是强大的数学公式编辑器,MathType公式编辑器可以说是专门为理科生准备的软件,它可以帮助用户快速的在各种文档中插入符号和公式,不论是简单的公式和符号,还是复杂的都可以非常轻松的输入,并且在与office文档结合使用时,表现的非常完美,是非常好的一款软件,与常见的文字处理软件和演示程序配合使用,能够在各种文档中加入复杂的数学公式和符号,可用在编辑数学试卷、书籍、报刊、论文、幻灯演示等方面,是编辑数学资料的得力工具。
60192 0
|
编解码 物联网
LDPC 码在 3GPP 中的应用 | 带你读《5G-NR信道编码》之十八
本章节带你了解LDPC 码在 3GPP 中的应用。
LDPC 码在 3GPP 中的应用  | 带你读《5G-NR信道编码》之十八
|
存储
PCIe VPD (Vital Product Data) 介绍
PCIe VPD (Vital Product Data) 介绍
5101 0
PCIe VPD (Vital Product Data) 介绍
|
监控 调度 开发工具
IO神器blktrace使用介绍
## 前言 1. blktrace的作者正是block io的maintainer,开发此工具,可以更好的追踪IO的过程。 2. blktrace 结合btt可以统计一个IO是在调度队列停留的时间长,还是在硬件上消耗的时间长,利用这个工具可以协助分析和优化问题。 ## blktrace的原理 一个I/O请求的处理过程,可以梳理为这样一张简单的图: ![](http://image
21820 0
|
9月前
|
存储 人工智能 数据挖掘
StarRocks Connect 2025 圆满落幕:AI Native 时代,数据分析未来已来
StarRocks Connect 2025 聚焦“连接”,汇聚全球技术领袖,探讨数据分析的现在与未来。从性能引擎到AI Native平台,StarRocks 持续进化,赋能 Shopee、携程、Cisco 等企业实现高效实时分析,并推动开源生态与商业化协同发展。
|
11月前
|
机器学习/深度学习 存储 移动开发
Chunked-Prefills 分块预填充机制详解
为解决传统静态或迭代调度中存在的资源浪费与延迟问题,Sarathi-Serve 提出了 chunked-prefills 和 stall-free scheduling 机制,通过将长 prompt 拆分为多个小块,并与 decode 请求混合调度,从而实现高吞吐与低延迟的平衡。
2781 2
Chunked-Prefills 分块预填充机制详解
|
存储 运维 安全
|
网络协议 NoSQL API
深入理解 RDMA 的软硬件交互机制
本文深入分析了RDMA技术在数据中心高性能网络环境下的工作原理及软硬件交互机制,通过对比传统Kernel TCP,突出了RDMA在减少延迟、提高系统性能方面的优势,同时讨论了其在内存管理、软硬交互方面的关键技术和挑战,为读者提供了全面理解RDMA技术及其应用场景的视角。
7102 8
|
存储 缓存 固态存储