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


相关文章
|
传感器 数据采集 算法
无线传感器网络(WSN)在物联网中的作用
【6月更文挑战第7天】物联网中的无线传感器网络(WSN)正加速发展,它由微型传感器节点组成,用于环境数据感知和传输。WSN助力实时监测(如农业、工业生产)、资源管理(能源和物流)、智能交通等领域,提供关键数据支持。Python代码示例展示了数据采集和传输过程。尽管面临能量限制和网络挑战,WSN在物联网中的角色不可或缺,将持续推动社会智能化和可持续发展。
685 2
|
存储 安全 Linux
TiDB安装准备工作与基础环境搭建
【2月更文挑战第28天】TiDB安装前需满足硬件(足够CPU、内存、存储)和软件(Linux,推荐CentOS 7+)要求,确保网络稳定性。配置包括设置唯一主机名,关闭防火墙和SELinux,同步NTP,创建TiDB用户和目录。下载官方安装包并验证后,解压,配置环境变量,初始化集群,启动服务并验证运行状态。稳定的环境对发挥TiDB性能至关重要。
1081 1
|
存储 编解码 算法
准循环 LDPC 码(QC-LDPC) | 带你读《5G-NR信道编码》之九
本节将为你介绍准循环 LDPC 码(QC-LDPC)的基本内容。
14421 2
准循环 LDPC 码(QC-LDPC) | 带你读《5G-NR信道编码》之九
|
监控 调度 开发工具
IO神器blktrace使用介绍
## 前言 1. blktrace的作者正是block io的maintainer,开发此工具,可以更好的追踪IO的过程。 2. blktrace 结合btt可以统计一个IO是在调度队列停留的时间长,还是在硬件上消耗的时间长,利用这个工具可以协助分析和优化问题。 ## blktrace的原理 一个I/O请求的处理过程,可以梳理为这样一张简单的图: ![](http://image
20198 0
|
11月前
|
编解码 算法 数据安全/隐私保护
基于BP译码的LDPC误码率matlab仿真,分析不同码长,码率,迭代次数以及信道类型对译码性能的影响
本内容介绍基于MATLAB 2022a的低密度奇偶校验码(LDPC)仿真,展示了完整的无水印仿真结果。LDPC是一种逼近香农限的信道编码技术,广泛应用于现代通信系统。BP译码算法通过Tanner图上的消息传递实现高效译码。仿真程序涵盖了不同Eb/N0下的误码率计算,并分析了码长、码率、迭代次数和信道类型对译码性能的影响。核心代码实现了LDPC编码、BPSK调制、高斯信道传输及BP译码过程,最终绘制误码率曲线并保存数据。 字符数:239
619 5
|
负载均衡 安全 应用服务中间件
nginx的强大功能和如何使用?
nginx的强大功能和如何使用?
675 2
|
存储 缓存 固态存储
|
算法 数据安全/隐私保护
基于星座图整形方法的QAM调制解调系统MATLAB误码率仿真,对比16,32,64,256四种QAM调制方式
本MATLAB 2022a仿真展示了不同QAM阶数下的星座图及误码率性能,通过星座图整形技术优化了系统性能。该技术利用非均匀分布的星座点提高功率效率,并通过合理布局增强抗干扰能力。随着QAM阶数增加,数据传输速率提升,但对信道质量要求也更高。核心程序实现了从比特生成到QAM映射、功率归一化、加噪及解调的全过程,并评估了系统误码率。
532 0
|
Ubuntu 安全 网络协议
|
SQL NoSQL 关系型数据库
若依修改02,若以提供了多种版本,RuoYi-Cloud和SpringBoot+Vue都是PC端的,如果想要适配手机端,用Uniapp+vue,导入Mysql和启动Redis
若依修改02,若以提供了多种版本,RuoYi-Cloud和SpringBoot+Vue都是PC端的,如果想要适配手机端,用Uniapp+vue,导入Mysql和启动Redis