CN104835535B - 一种固态盘自适应纠错方法与*** - Google Patents
一种固态盘自适应纠错方法与*** Download PDFInfo
- Publication number
- CN104835535B CN104835535B CN201510247332.4A CN201510247332A CN104835535B CN 104835535 B CN104835535 B CN 104835535B CN 201510247332 A CN201510247332 A CN 201510247332A CN 104835535 B CN104835535 B CN 104835535B
- Authority
- CN
- China
- Prior art keywords
- code
- ldpc code
- ldpc
- solid
- weak
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
本发明公开了一种固态盘内部自适应LDPC纠错方法,包括(1)初始化:固态盘在输入数据前,进行块擦除操作,并初始化所有擦除块的纠错码标识符;(2)固态盘自适应纠错编码:对写入的原始数据进行编码生成码字;(3)固态盘译码过程,包括:(3.1)判断是否有读操作,如果有读操作则转向(3.2),否则结束;(3.2)判断读取页所在块i的纠错码标识符Bi是否为0;(3.3)如果Bi为0,则块i内所有页采用弱LDPC码进行纠错;(3.4)固态盘自适应纠错码切换操作;(3.5)如果Bi为1,则块i内所有页采用强LDPC码进行纠错。本发明适用于固态盘纠错领域,提升LDPC纠错性能充分发挥和存储数据的可靠性。
Description
技术领域
本发明属于固态盘纠错技术领域,具体地,涉及一种固态盘自适应纠错方法与***。
背景技术
随着日常生活中各种电子设备的普及,固态盘作为一种存储设备被广泛使用,保证固态盘中数据的安全显得日益重要。作为保证数据安全重要措施的纠错码如何发挥最大效率非常重要。
固态盘内部的闪存芯片制造工艺已经发展到10纳米的水平,意味着闪存芯片内部的单元尺寸越来越小,噪声也相应的增加,需要更加强大的纠错码。闪存芯片有多个结构层次构成,最小的读写单位是页(Page),多个页构成一个块(Block)。闪存芯片在写入数据前要先进行擦除操作,擦除单位是块。擦除后的块成为空白区域,可以写入相关的数据信息。从闪存读取数据时必须经过纠错码译码过程,以保证读出的数据是可靠的数据。如果数据出现错误,则用纠错码进行纠错改正。另外,在不同时期闪存芯片受到的噪声干扰也不同,因而数据出错率也不同。普遍规律下,早期的闪存芯片出错率非常低,到后期随着擦写次数的增加,数据保存时间的增长,数据出错率也相应的增长。
低密度奇偶校验码(Low-Density Parity-Check code,LDPC)具有强大的纠错能力。LDPC主要由编码器和译码器构成。编码器负责将写入闪存的数据进行编码生成LDPC码字。LDPC码字由原始数据和LDPC校验信息构成。译码器则负责对LDPC码字进行译码纠错。译码器主要有两种结果输出:一是译码成功,说明输出的数据没有错误;二是译码失败,说明LDPC译码器不能纠正LDPC码字中的错误,输出的数据含有错误信息。不同的LDPC码率具有不同的纠错性能,码率越高纠错能力越弱。高码率LDPC码作为弱LDPC码,其纠错能力不如低码率LDPC码。通常情况下,固态盘使用最强纠错能力的LDPC码,以保证固态盘在最坏情况下的数据安全,这样就存在最强LDPC纠错码纠错能力冗余现象,也会影响固态盘的读写性能,造成固态盘纠错能耗的浪费。
发明内容
本发明的目的是根据固态盘内部闪存芯片数据出错情况不同,采用合适纠错能力的LDPC码进行纠错,达到提高LDPC码纠错效能的目的,减少单一LDPC码纠错性能的冗余,同时提高固态盘的读性能并减少其译码能耗。
为了实现上述目的,本发明构建了一种自动切换弱LDPC码和强LDPC码的方法,减少了只使用强LDPC码而产生的LDPC纠错性能的冗余,同时减少了固态盘使用LDPC码的纠错能耗,并提高了固态盘使用不同LDPC码进行纠错的准确度,保证了固态盘内部数据的可靠性。本发明将高码率LDPC码作为弱LDPC码,低码率LDPC码作为强LDPC码。
按照本发明的一个方面,提供了一种固态盘自适应纠错方法,包括如下步骤:
(1)初始化:固态盘在输入数据前,进行块擦除操作,以便写入数据,并初始化所有擦除块的纠错码标识符Bi=0,其中i=0,1,…,n,n表示固态盘擦除块的数量;
(2)固态盘自适应纠错编码,包括:
(2.1)当一页原始数据R被写入固态盘闪存芯片时,根据弱LDPC码的生成矩阵G1对原始数据R进行编码得到码字C1=R×G1,码字C1去掉原始数据R得到弱LDPC码校验信息P1;
(2.2)由强LDPC码的生成矩阵G2对一页原始数据R编码生成码字
C2=R×G2,码字C2去掉原始数据R得到强LDPC码校验信息P2;
(2.3)一页原始数据R和P1,P2组成一页的码字C=(R,P1,P2);
(2.4)将生成的码字C写入闪存芯片中;
(3)固态盘译码过程,包括:
(3.1)判断是否有读操作,如果有读操作则转向(3.2),否则结束;
(3.2)判断读取页所在块i的纠错码标识符Bi是否为0;
(3.3)如果Bi为0,则块i内所有页采用弱LDPC码进行纠错;
(3.4)固态盘自适应纠错码切换操作,包括:
(3.4.1)如果块i中一页使用弱LDPC码纠错失败,赋值块i的纠错码标识符Bi=1,并转到步骤(3.5);
(3.4.2)如果块i使用强LDPC码进行纠错后,如果块i被擦除,赋值块i的纠错码标识符Bi=0,并转到步骤(3.2);
(3.5)如果Bi为1,则块i内所有页采用强LDPC码进行纠错。
按照本发明的另一方面,还提供了一种固态盘自适应纠错***,所述***包括如下模块:固态盘初始化模块、自适应纠错编码模块、固态盘译码模块,其中:
所述固态盘初始化模块,用于在输入数据前,对固态盘进行块擦除操作,以便写入数据,并初始化所有擦除块的纠错码标识符Bi=0,其中i=0,1,…,n,n表示固态盘擦除块的数量;
所述固态盘自适应纠错编码模块,用于对原始数据进行自适应纠错编码,具体地:当一页原始数据R被写入固态盘闪存芯片时,根据弱LDPC码的生成矩阵G1对原始数据R进行编码得到码字C1=R×G1,码字C1去掉原始数据R得到弱LDPC码校验信息P1;由强LDPC码的生成矩阵G2对一页原始数据R编码生成码字C2=R×G2,码字C2去掉原始数据R得到强LDPC码校验信息P2;一页原始数据R和P1,P2组成一页的码字C=(R,P1,P2);将生成的码字C写入闪存芯片中;
所述固态盘译码模块,包括读判断模块、纠错码识别模块、弱LDPC码纠错模块、自适应纠错码切换模块以及强LDPC码纠错模块,其中:
所述读判断模块,用于判断是否有读操作,如果有读操作则转向(3.2),否则结束;
所述纠错码识别模块,用于判断读取页所在块i的纠错码标识符Bi是否为0;
所述弱LDPC码纠错模块,用于如果Bi为0,则对块i内所有页采用弱LDPC码进行纠错;
所述自适应纠错码切换模块,用于执行固态盘自适应纠错码切换操作,具体为:如果块i中一页使用弱LDPC码纠错失败,赋值块i的纠错码标识符Bi=1,并转到所述强LDPC码纠错模块;如果块i使用强LDPC码进行纠错后,如果块i被擦除,赋值块i的纠错码标识符Bi=0,并转到所述纠错码识别模块;
所述强LDPC码纠错模块,用于如果Bi为1,则对块i内所有页采用强LDPC码进行纠错。
综上所述,本发明技术方案的有益效果是:
提出了一种固态盘自适应LDPC纠错优化方法,该方法能够根据固态盘出错率的不同在强弱两种LDPC纠错码间进行自动切换。与传统的只使用单一的LDPC纠错码方法相比,能够有效发挥不同的LDPC纠错码的纠错性能,减少单一LDPC纠错码引起的纠错性能冗余,用此方法对固态盘进行纠错可以有效提高读性能。因为使用高码率LDPC纠错码时,生成的码字长度明显变小,引起的阈值电压感知时间,码字传输时间,译码时间都有相应减少。同时相对于单一的LDPC纠错码,自适应LDPC纠错方法的译码能耗也能大幅的降低。
附图说明
图1为本发明自适应纠错算法的处理流程示意图;
图2为弱LDPC码和强LDPC码编码过程示意图;
图3为弱LDPC码和强LDPC码译码过程示意图;
图4为固态盘块纠错码自适应切换算法示意图;
图5为本发明自适应纠错***结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明中高码率的LDPC码表示弱LDPC码,低码率的LDPC码表示强LDPC码。
如图1所示,为本发明自适应纠错算法的处理流程示意图,所述纠错算法包括如下步骤:
(1)初始化具体为:
固态盘在输入数据前,要进行块擦除操作,以便写入数据。初始化所有擦除块的纠错码标识符Bi=0(i=0,1,…,n),n表示固态盘块的数量;
(2)固态盘自适应纠错方法的具体编码过程为:
(2.1)如图2所示,当一页原始数据R被写入固态盘闪存芯片时,根据弱LDPC码的生成矩阵G1对原始数据R进行编码得到码字C1=R×G1,码字C1去掉原始数据R得到弱LDPC码校验信息P1;
(2.2)由强LDPC码的生成矩阵G2对一页原始数据R编码生成码字
C2=R×G2,码字C2去掉原始数据R得到强LDPC码校验信息P2;
(2.3)一页原始数据R和P1,P2组成一页的码字C=(R,P1,P2);
(2.4)将生成的码字C写入闪存芯片中;
(3)固态盘译码过程包括如下步骤:
(3.1)判断是否有读操作,如果有读操作则转向(3.2),否则结束本算法;
(3.2)判断读取页所在块i的纠错码标识符Bi是否为0;
(3.3)如果Bi为0,则块i内所有页采用弱LDPC码进行纠错,弱LDPC码纠错具体如下:
(3.3.1)如图3所示,获取由一页原始数据R和弱LDPC码校验数据P1组成的码字C1;
(3.3.2)对码字C1中每个二进制位bi计算对数似然比LLRi值
其中Vi表示感知电压值,Ai表示感知电压所在的区域范围值,P(i)(x)表示第i个阈值电压感知高斯函数;
(3.3.3)将得到的LLR信息输入到弱LDPC校验矩阵H1中的变量节点中,作为LDPC解码的初始信息;
(3.3.4)校验矩阵H1中每个变量节点与校验节点相互之间进行迭代处理译码信息,迭代信息只在变量节点与校验节点在校验矩阵H1中互为连接关系的节点间传输;
(3.3.5)如果解码得到的弱LDPC译码向量C′1与输入的码字C1相等则输出译码成功并成功输出数据。如果达到了最大的迭代次数但译码向量C′1与输入码字C1不等,则输出译码失败并结束弱LDPC译码过程;
(3.3.6)如果弱LDPC码纠错失败,则转到步骤(3.4)执行固态盘自适应纠错码切换操作;
(3.4)固态盘自适应纠错码切换操作,具体如下:
(3.4.1)如图4所示,如果块i中一页使用弱LDPC码纠错失败,赋值块i的纠错码标识符Bi=1,并转到步骤(3.5);
(3.4.2)如果块i使用强LDPC码进行纠错后,如果块i被擦除,赋值块i的纠错码标识符Bi=0,并转到步骤(3.2);
(3.5)如果Bi为1,则块i内所有页采用强LDPC码进行纠错,强LDPC码纠错具体如下:
(3.5.1)获取由原始数据R和强LDPC码校验数据P2组成的码字C2;
(3.5.2)对码字C2中每个二进制位bj计算对数似然比LLRj值
其中Vj表示感知电压值,Aj表示感知电压所在的区域范围值,P(j)(x)表示第j个阈值电压感知高斯函数;
(3.5.3)将得到的LLR信息输入到强LDPC校验矩阵H2中的变量节点中,作为LDPC解码的初始信息;
(3.5.4)校验矩阵H2中每个变量节点与校验节点相互之间进行迭代处理译码信息,迭代信息只在变量节点与校验节点在校验矩阵H2中互为连接关系的节点间传输;
(3.5.5)如果解码得到的强LDPC译码向量C′2与输入的码字C2相等则输出译码成功并成功输出数据。如果达到了最大的迭代次数但译码向量C′2与输入码字C2不等,则输出译码失败并结束强LDPC译码过程。
进一步地,如图5所示,本发明还提供了一种固态盘自适应纠错***,所述***包括如下模块:固态盘初始化模块、自适应纠错编码模块、固态盘译码模块,其中:
所述固态盘初始化模块,用于在输入数据前,对固态盘进行块擦除操作,以便写入数据,并初始化所有擦除块的纠错码标识符Bi=0,其中i=0,1,…,n,n表示固态盘擦除块的数量;
所述固态盘自适应纠错编码模块,用于对原始数据进行自适应纠错编码,具体地:当一页原始数据R被写入固态盘闪存芯片时,根据弱LDPC码的生成矩阵G1对原始数据R进行编码得到码字C1=R×G1,码字C1去掉原始数据R得到弱LDPC码校验信息P1;由强LDPC码的生成矩阵G2对一页原始数据R编码生成码字C2=R×G2,码字C2去掉原始数据R得到强LDPC码校验信息P2;一页原始数据R和P1,P2组成一页的码字C=(R,P1,P2);将生成的码字C写入闪存芯片中;
所述固态盘译码模块,包括读判断模块、纠错码识别模块、弱LDPC码纠错模块、自适应纠错码切换模块以及强LDPC码纠错模块,其中:
所述读判断模块,用于判断是否有读操作,如果有读操作则转向(3.2),否则结束;
所述纠错码识别模块,用于判断读取页所在块i的纠错码标识符Bi是否为0;
所述弱LDPC码纠错模块,用于如果Bi为0,则对块i内所有页采用弱LDPC码进行纠错;
所述自适应纠错码切换模块,用于执行固态盘自适应纠错码切换操作,具体为:如果块i中一页使用弱LDPC码纠错失败,赋值块i的纠错码标识符Bi=1,并转到所述强LDPC码纠错模块;如果块i使用强LDPC码进行纠错后,如果块i被擦除,赋值块i的纠错码标识符Bi=0,并转到所述纠错码识别模块;
所述强LDPC码纠错模块,用于如果Bi为1,则对块i内所有页采用强LDPC码进行纠错。
进一步地,所述弱LDPC码纠错模块具体包括弱LDPC码字获取子模块、弱LDPC码似然比值计算子模块、弱LDPC码初始信息生成子模块、弱LDPC码迭代处理子模块、弱LDPC码译码成功判断子模块以及弱LDPC码纠错切换子模块,其中:
所述弱LDPC码字获取子模块,用于获取由一页原始数据R和弱LDPC码校验数据P1组成的码字C1;
所述弱LDPC码似然比值计算子模块,用于对码字C1中每个二进制位bi计算对数似然比LLRi值
其中:Vi表示感知电压值,Ai表示感知电压所在的区域范围值,P(i)(x)表示第i个阈值电压感知高斯函数;
所述弱LDPC码初始信息生成子模块,用于将得到的LLR信息输入到弱LDPC校验矩阵H1中的变量节点中,作为LDPC解码的初始信息;
所述弱LDPC码迭代处理子模块,用于执行校验矩阵H1中每个变量节点与校验节点相互之间进行迭代处理译码信息,迭代信息只在变量节点与校验节点在校验矩阵H1中互为连接关系的节点间传输;
所述弱LDPC码译码成功判断子模块,用于判断如果解码得到的弱LDPC译码向量C′1与输入的码字C1相等则输出译码成功并输出数据。如果达到了最大的迭代次数但译码向量C′1与输入码字C1不等,则输出译码失败并结束弱LDPC译码过程;
所述弱LDPC码纠错切换子模块,用于如果弱LDPC码纠错失败,则转到所述自适应纠错码切换模块并执行固态盘自适应纠错码切换操作。
进一步地,所述强LDPC码纠错模块具体包括强LDPC码字获取子模块、强LDPC码似然比值计算子模块、强LDPC码初始信息生成子模块、强LDPC码迭代处理子模块、强LDPC码译码成功判断子模块,其中:
所述强LDPC码字获取子模块,用于获取由原始数据R和强LDPC码校验数据P2组成的码字C2;
所述强LDPC码似然比值计算子模块,用于对码字C2中每个二进制位bj计算对数似然比LLRj值
其中Vj表示感知电压值,Aj表示感知电压所在的区域范围值,P(j)(x)表示第j个阈值电压感知高斯函数;
所述强LDPC码初始信息生成子模块,用于将得到的LLR信息输入到强LDPC校验矩阵H2中的变量节点中,作为LDPC解码的初始信息;
所述强LDPC码迭代处理子模块,用于执行校验矩阵H2中每个变量节点与校验节点相互之间进行迭代处理译码信息。迭代信息只在变量节点与校验节点在校验矩阵H2中互为连接关系的节点间传输;
所述强LDPC码译码成功判断子模块,用于如果解码得到的强LDPC译码向量C′2与输入的码字C2相等则输出译码成功并输出数据。如果达到了最大的迭代次数但译码向量C′2与输入码字C2不等,则输出译码失败并结束强LDPC译码过程。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种固态盘自适应纠错方法,其特征在于,所述方法包括如下步骤:
(1)初始化:固态盘在输入数据前,进行块擦除操作,以便写入数据,并初始化所有擦除块的纠错码标识符Bi=0,其中i=0,1,…,n,n表示固态盘擦除块的数量;
(2)固态盘自适应纠错编码,包括:
(2.1)当一页原始数据R被写入固态盘闪存芯片时,根据弱LDPC码的生成矩阵G1对原始数据R进行编码得到码字C1=R×G1,码字C1去掉原始数据R得到弱LDPC码校验信息P1;
(2.2)由强LDPC码的生成矩阵G2对一页原始数据R编码生成码字C2=R×G2,码字C2去掉原始数据R得到强LDPC码校验信息P2;
(2.3)一页原始数据R和P1,P2组成一页的码字C=(R,P1,P2);
(2.4)将生成的码字C写入闪存芯片中;
(3)固态盘译码过程,包括:
(3.1)判断是否有读操作,如果有读操作则转向(3.2),否则结束;
(3.2)判断读取页所在块i的纠错码标识符Bi是否为0;
(3.3)如果Bi为0,则块i内所有页采用弱LDPC码进行纠错;
(3.4)固态盘自适应纠错码切换操作,包括:
(3.4.1)如果块i中一页使用弱LDPC码纠错失败,赋值块i的纠错码标识符Bi=1,并转到步骤(3.5);
(3.4.2)如果块i使用强LDPC码进行纠错后,如果块i被擦除,赋值块i的纠错码标识符Bi=0,并转到步骤(3.2);
(3.5)如果Bi为1,则块i内所有页采用强LDPC码进行纠错。
2.如权利要求1所述的方法,其特征在于,所述步骤(3.3)具体包括:
(3.3.1)获取由一页原始数据R和弱LDPC码校验数据P1组成的码字C1;
(3.3.2)对码字C1中每个二进制位bi计算对数似然比LLRi值
其中Vi表示感知电压值,Ai表示感知电压所在的区域范围值,P(i)(x)表示第i个阈值电压感知高斯函数;
(3.3.3)将得到的LLR信息输入到弱LDPC校验矩阵H1中的变量节点中,作为LDPC解码的初始信息;
(3.3.4)校验矩阵H1中每个变量节点与校验节点相互之间进行迭代处理译码信息,迭代信息只在变量节点与校验节点在校验矩阵H1中互为连接关系的节点间传输;
(3.3.5)如果解码得到的弱LDPC译码向量C1′与码字C1相等则输出译码成功并成功输出数据;如果达到了最大的迭代次数但译码向量C1′与码字C1不等,则输出译码失败并结束弱LDPC译码过程;
(3.3.6)如果弱LDPC码纠错失败,则转到步骤(3.4)执行固态盘自适应纠错码切换操作。
3.如权利要求1或2所述的方法,其特征在于,所述步骤(3.5)具体包括:
(3.5.1)获取由原始数据R和强LDPC码校验数据P2组成的码字C2;
(3.5.2)对码字C2中每个二进制位bj计算对数似然比LLRj值
其中Vj表示感知电压值,Aj表示感知电压所在的区域范围值,P(j)(x)表示第j个阈值电压感知高斯函数;
(3.5.3)将得到的LLR信息输入到强LDPC校验矩阵H2中的变量节点中,作为LDPC解码的初始信息;
(3.5.4)校验矩阵H2中每个变量节点与校验节点相互之间进行迭代处理译码信息;迭代信息只在变量节点与校验节点在校验矩阵H2中互为连接关系的节点间传输;
(3.5.5)如果解码得到的强LDPC译码向量C2′与码字C2相等则输出译码成功并成功输出数据;如果达到了最大的迭代次数但译码向量C2′与码字C2不等,则输出译码失败并结束强LDPC译码过程。
4.一种固态盘自适应纠错***,其特征在于,所述***包括如下模块:固态盘初始化模块、自适应纠错编码模块、固态盘译码模块,其中:
所述固态盘初始化模块,用于在输入数据前,对固态盘进行块擦除操作,以便写入数据,并初始化所有擦除块的纠错码标识符Bi=0,其中i=0,1,…,n,n表示固态盘擦除块的数量;
所述固态盘自适应纠错编码模块,用于对原始数据进行自适应纠错编码,具体地:当一页原始数据R被写入固态盘闪存芯片时,根据弱LDPC码的生成矩阵G1对原始数据R进行编码得到码字C1=R×G1,码字C1去掉原始数据R得到弱LDPC码校验信息P1;由强LDPC码的生成矩阵G2对一页原始数据R编码生成码字C2=R×G2,码字C2去掉原始数据R得到强LDPC码校验信息P2;一页原始数据R和P1,P2组成一页的码字C=(R,P1,P2);将生成的码字C写入闪存芯片中;
所述固态盘译码模块,包括读判断模块、纠错码识别模块、弱LDPC码纠错模块、自适应纠错码切换模块以及强LDPC码纠错模块,其中:
所述读判断模块,用于判断是否有读操作,如果有读操作则转向(3.2),否则结束;
所述纠错码识别模块,用于判断读取页所在块i的纠错码标识符Bi是否为0;
所述弱LDPC码纠错模块,用于如果Bi为0,则对块i内所有页采用弱LDPC码进行纠错;
所述自适应纠错码切换模块,用于执行固态盘自适应纠错码切换操作,具体为:如果块i中一页使用弱LDPC码纠错失败,赋值块i的纠错码标识符Bi=1,并转到所述强LDPC码纠错模块;如果块i使用强LDPC码进行纠错后,如果块i被擦除,赋值块i的纠错码标识符Bi=0,并转到所述纠错码识别模块;
所述强LDPC码纠错模块,用于如果Bi为1,则对块i内所有页采用强LDPC码进行纠错。
5.如权利要求4所述的***,其特征在于,所述弱LDPC码纠错模块具体包括弱LDPC码字获取子模块、弱LDPC码似然比值计算子模块、弱LDPC码初始信息生成子模块、弱LDPC码迭代处理子模块、弱LDPC码译码成功判断子模块以及弱LDPC码纠错切换子模块,其中:
所述弱LDPC码字获取子模块,用于获取由一页原始数据R和弱LDPC码校验数据P1组成的码字C1;
所述弱LDPC码似然比值计算子模块,用于对码字C1中每个二进制位bi计算对数似然比LLRi值其中:Vi表示感知电压值,Ai表示感知电压所在的区域范围值,P(i)(x)表示第i个阈值电压感知高斯函数;
所述弱LDPC码初始信息生成子模块,用于将得到的LLR信息输入到弱LDPC校验矩阵H1中的变量节点中,作为LDPC解码的初始信息;
所述弱LDPC码迭代处理子模块,用于执行校验矩阵H1中每个变量节点与校验节点相互之间进行迭代处理译码信息,迭代信息只在变量节点与校验节点在校验矩阵H1中互为连接关系的节点间传输;
所述弱LDPC码译码成功判断子模块,用于判断如果解码得到的LDPC译码向量C1′与码字C1相等则输出译码成功并成功输出数据,如果达到了最大的迭代次数但译码向量C1′与码字C1不等,则输出译码失败并结束弱LDPC译码过程;
所述弱LDPC码纠错切换子模块,用于如果弱LDPC码纠错失败,则转到所述自适应纠错码切换模块并执行固态盘自适应纠错码切换操作。
6.如权利要求4或5所述的***,其特征在于,所述强LDPC码纠错模块具体包括强LDPC码字获取子模块、强LDPC码似然比值计算子模块、强LDPC码初始信息生成子模块、强LDPC码迭代处理子模块、强LDPC码译码成功判断子模块,其中:
所述强LDPC码字获取子模块,用于获取由原始数据R和强LDPC码校验数据P2组成的码字C2;
所述强LDPC码似然比值计算子模块,用于对码字C2中每个二进制位bj计算对数似然比LLRj值其中Vj表示感知电压值,Aj表示感知电压所在的区域范围值,P(j)(x)表示第j个阈值电压感知高斯函数;
所述强LDPC码初始信息生成子模块,用于将得到的LLR信息输入到强LDPC校验矩阵H2中的变量节点中,作为LDPC解码的初始信息;
所述强LDPC码迭代处理子模块,用于执行校验矩阵H2中每个变量节点与校验节点相互之间进行迭代处理译码信息;迭代信息只在变量节点与校验节点在校验矩阵H2中互为连接关系的节点间传输;
所述强LDPC码译码成功判断子模块,用于如果解码得到的强LDPC译码向量C2′与码字C2相等则输出译码成功并成功输出数据;如果达到了最大的迭代次数但译码向量C2′与码字C2不等,则输出译码失败并结束强LDPC译码过程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510247332.4A CN104835535B (zh) | 2015-05-15 | 2015-05-15 | 一种固态盘自适应纠错方法与*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510247332.4A CN104835535B (zh) | 2015-05-15 | 2015-05-15 | 一种固态盘自适应纠错方法与*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104835535A CN104835535A (zh) | 2015-08-12 |
CN104835535B true CN104835535B (zh) | 2017-12-12 |
Family
ID=53813362
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510247332.4A Active CN104835535B (zh) | 2015-05-15 | 2015-05-15 | 一种固态盘自适应纠错方法与*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104835535B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180060084A (ko) * | 2016-11-28 | 2018-06-07 | 삼성전자주식회사 | 반도체 메모리 장치의 스크러빙 컨트롤러, 반도체 메모리 장치 및 반도체 메모리 장치의 동작 방법 |
CN106685431B (zh) * | 2016-12-05 | 2019-10-18 | 华南理工大学 | 基于Nand Flash的LDPC获取软信息译码方法及编译码器 |
CN107294542B (zh) * | 2017-05-23 | 2020-08-11 | 南京邮电大学 | Mlc闪存中基于双层ldpc码的编、译码方法 |
CN107423161B (zh) * | 2017-07-24 | 2019-07-02 | 山东华芯半导体有限公司 | 应用于快闪存储器中的自适应ldpc码纠错码***和方法 |
CN107656831A (zh) * | 2017-08-21 | 2018-02-02 | 深圳市致存微电子企业(有限合伙) | 闪存纠错方法以及纠错装置 |
CN107622781B (zh) * | 2017-10-12 | 2020-05-19 | 华中科技大学 | 一种提升三层忆阻器写性能的编解码方法 |
CN109660263B (zh) * | 2018-11-22 | 2022-07-05 | 华中科技大学 | 一种适用于mlc nand闪存的ldpc码译码方法 |
CN110389724B (zh) * | 2019-07-23 | 2023-06-06 | 深圳忆联信息***有限公司 | 基于固态硬盘的parity page识别方法和装置 |
CN110798225A (zh) * | 2019-11-06 | 2020-02-14 | 深圳大普微电子科技有限公司 | 一种数据纠错方法、装置、设备及可读存储介质 |
CN112765124B (zh) * | 2020-12-30 | 2024-05-17 | 深圳市捷顺科技实业股份有限公司 | 一种自动校验数据的核对方法及服务器 |
CN114995767B (zh) * | 2022-06-22 | 2022-12-06 | 北京得瑞领新科技有限公司 | 固态硬盘的数据管理方法、存储设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101610133A (zh) * | 2008-06-17 | 2009-12-23 | 三星电子株式会社 | 低密度奇偶码编码装置和解码装置及其编码和解码方法 |
CN103944586A (zh) * | 2014-04-10 | 2014-07-23 | 重庆邮电大学 | 一种码率兼容qc-ldpc码的构造方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7580469B2 (en) * | 2006-07-06 | 2009-08-25 | Provigent Ltd | Communication link control using iterative code metrics |
-
2015
- 2015-05-15 CN CN201510247332.4A patent/CN104835535B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101610133A (zh) * | 2008-06-17 | 2009-12-23 | 三星电子株式会社 | 低密度奇偶码编码装置和解码装置及其编码和解码方法 |
CN103944586A (zh) * | 2014-04-10 | 2014-07-23 | 重庆邮电大学 | 一种码率兼容qc-ldpc码的构造方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104835535A (zh) | 2015-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104835535B (zh) | 一种固态盘自适应纠错方法与*** | |
US8255758B2 (en) | Decoding of error correction code using partial bit inversion | |
KR101306645B1 (ko) | 시행착오에 의한 에러 보정 디코딩 | |
CN103297061B (zh) | 决定同位元检查阵列的方法以及快闪存储器*** | |
US9337865B2 (en) | Log-likelihood ratio (LLR) dampening in low-density parity-check (LDPC) decoders | |
CN104282340B (zh) | 一种固态盘闪存芯片阈值电压感知方法及*** | |
CN113032178B (zh) | 存储器控制器及快闪存储器的存取方法 | |
CN109087683B (zh) | 一种NAND Flash固态存储自适应差错控制方法 | |
CN106685431B (zh) | 基于Nand Flash的LDPC获取软信息译码方法及编译码器 | |
US10445175B2 (en) | Controller and operating method thereof | |
US9935659B2 (en) | Performance optimization in soft decoding for turbo product codes | |
CN106169308A (zh) | 存储器控制器及其操作方法 | |
US9954558B1 (en) | Fast decoding of data stored in a flash memory | |
US8947929B1 (en) | Flash-based soft information generation | |
CN106601305A (zh) | 一种使用检错码和纠错码相结合的固态盘纠错方法 | |
CN104242957B (zh) | 译码处理方法及译码器 | |
US10396817B2 (en) | Priori information based post-processing in low-density parity-check code decoders | |
CN111061592A (zh) | 一种通用的Nand Flash比特位反转纠错方法 | |
US10795761B2 (en) | Memory system and method of controlling non-volatile memory | |
US20190089384A1 (en) | Memory system | |
KR102314481B1 (ko) | Siso 복호 방법, 디코더 및 반도체 메모리 시스템 | |
KR20180022175A (ko) | 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법 | |
US9639421B2 (en) | Operating method of flash memory system | |
CN105304143A (zh) | 解码方法、存储器控制电路单元及存储器存储装置 | |
CN113517896B (zh) | 相位调制型全息存储***的编码/译码方法、设备及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |