2345王牌技术员联盟论坛

下载

APP

王牌

小程序

总回帖数:0
【百万礼品0元领】固态LDPC纠错算法作用是什么?  查看:342 | 回复:0   查看全部 | 举报 | 收藏
军衔:
上将
经验:13985/15000
发帖:
80/40402
精华数/发帖数
信誉:
四 星
累计收入:
10000元以上



为什么需要LDPC?

上次ECC科普中提到ECC纠错算法分类有BCH和LDPC两种,那么下图就是BCH和LDPC纠错算法的原始误码率和纠错失败概率图




从上图中曲线从右到左依次是BCH,LDPC 硬判决算法(硬解码),LDPC 软判决法(软解码),纵轴表示纠错失败的概率,横轴表示RBER(Raw Bit Error Rate原始误码率)。


可以看到,LDPC 软判决算法由于有更多的信道信息,相对于BCH 和硬判决LDPC 算法更有优势。

所以目前主流消费类的SSD都采用LDPC 纠错算法。




在固态硬盘纠错技术中使用LDPC纠错则是近几年的新发展,能够将以往基于传统BCH码的闪存纠错能力提升3倍以上。




什么是LDPC算法?

LDPC,是Low Density Parity Check Code的简称,意思是低密度奇偶校验码。

1963年,LDPC第一次出现在R.G.Gallager博士发表的论文之中;

1981年Tanner推广了LDPC码且给出了LDPC码的图,后称为Tanner图;

1995年MacKay和Neal等人对LDPC码重新进行研究,提出了可行的译码算法;


LDPC纠错算法最早应用于通讯行业,后来才逐渐引进到固态硬盘领域。




LDPC是一种稀疏校验矩阵线性分组码,因为校验矩阵中的1要远小于0的数目,这样做的好处就是,译码复杂度低,结构非常灵活。





LDPC解码

LDPC码的译码算法包括三大类:硬判决译码,软判决译码和混合译码。

在SSD内部的LDPC解码包括了两方面内容:硬解码(Hard Decode)和软解码(Soft Decode)。


LDPC解码的方法就是收到码字(G阵生成矩阵)之后,与校验矩阵H相乘,如果是0矩阵,则说明收到的是正确码字。

反之,则不正确码字,再根据相乘结果进行进一步纠错解码。




从上图看,LDPC软判决的纠错能力更强,但延迟会比硬盘架更高一些。


简单来说,硬解码与BCH纠错类似,只将硬判决的数据作为输入,只需一次读取就能实现。

硬判决是简单通过设定阈值来输出结果,将闪存读取电压转换成二进制,大于0的判断为1,小于0的判断为零,简单粗暴一刀切


LDPC硬解码执行起来延迟较低,效果比BCH纠错码配合Read Retry要好。



LDPC在SSD中的纠错流程如上图所示。

值得注意的是,NAND硬判决、数据传输到控制器,以及硬判决解码这几个过程的速度都很快。

软判决要读很多次,传输数据很多次。


软解码则更像是LDPC纠错的精髓。

LDPC纠错中的软解码不仅有重复读取的操作,还多次读取,针对参数情况进行调整,取得多组不同的“软数据”,再将这些读取到的软数据结合对数似然比(Log-likelihood Ratio)进行多次迭代运算,最终完成LDPC软解码。


如果说硬判决是一半对一半的一刀切,软判决更具人性化。


软解码的原理是调整不同read level,根据读取结果后,判断bit是1或者0的概率,然后根据1或者0概率实现软解码, 通过多组软数据得出的计算结果,最终给出更精确、更接近真实的纠错效果。如下图:




为了提高性能,LDPC软判决的分辨率变成动态可调,这样只有在最坏的情况下,才需要最高的分辨率去读。这样在大部分情况下,软判决和软判决传输数据的时间开销将大幅度减小。


总的来说LDPC硬解码先进行一批数据的过滤,硬解码无法验证纠错的部分则进入到软解码进行,以此来提高数据的安全性,延长SSD使用寿命的同时提升使用体验。

添加回复 (0) 2023-09-07 09:00:47 [1楼]
总回帖数:0
快速回复主题
您需要 登录注册 后才可以回帖
你知道吗?如果你想针对某个楼层发表回复,只要点击该楼层下方的【引用回复】就行啦!