CN107395214B - 一种基于闪存页错误特性降低ldpc译码延迟的方法 - Google Patents

一种基于闪存页错误特性降低ldpc译码延迟的方法 Download PDF

Info

Publication number
CN107395214B
CN107395214B CN201710563434.6A CN201710563434A CN107395214B CN 107395214 B CN107395214 B CN 107395214B CN 201710563434 A CN201710563434 A CN 201710563434A CN 107395214 B CN107395214 B CN 107395214B
Authority
CN
China
Prior art keywords
lsb
msb
soft decision
initial
decision information
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
Application number
CN201710563434.6A
Other languages
English (en)
Other versions
CN107395214A (zh
Inventor
吴非
谢长生
张猛
崔兰兰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN201710563434.6A priority Critical patent/CN107395214B/zh
Publication of CN107395214A publication Critical patent/CN107395214A/zh
Application granted granted Critical
Publication of CN107395214B publication Critical patent/CN107395214B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Error Detection And Correction (AREA)

Abstract

本发明公开了一种基于闪存页错误特性降低LDPC译码延迟的方法,随着MLC NAND闪存制成工艺的提升,存储单元的尺寸越来越小单元之间的耦合干扰变得更加强烈,引起高的比特错误率,高的比特错误率严重影响着数据的可靠性。具有强纠错能力的LDPC码被广泛使用以保证数据可靠性。然而,当采用LDPC码时,MLC NAND闪存的MSB页和LSB页有着不平衡的译码延迟,LSB页的译码延迟高于MSB页的译码延迟由于LSB页有着较高的比特错误率,造成差的MLC闪存读性能。本发明根据MSB页的译码结果和保存错误模式为LSB页译码提供有利信息用以降低LSB页的译码延迟,从而缩小这两个页之间译码延迟的差距以提高MLC闪存读性能。

Description

一种基于闪存页错误特性降低LDPC译码延迟的方法
技术领域
本发明属于固态盘存储技术领域,更具体地,涉及一种基于闪存页错误模式降低LDPC译码延迟的方法。
背景技术
NAND闪存具有大容量、低能耗和非易失性等特征被广泛应用于计算机存储系统和消费级电子产品。通过制成工艺的提升,单元尺寸缩减以及多比特技术的使用,每单元存储较多的数据比特,例如多层单元(Multi-Level Cell,简称MLC)NAND闪存每单元存储两个比特,提高了闪存的容量。然而,强烈的单元之间的耦合干扰以及保存错误的发生引起高的比特错误率,降低了数据可靠性。
有鉴于此,目前纠错码被广泛采用以降低比特错误率从而保证数据可靠性,其中低密度奇偶校验(Low Density Parity Check,简称LDPC)码作为一种具有强纠错能力的纠错码,被用于MLC NAND闪存中以提高数据可靠性。
然而,现有的LDPC纠错算法在保证MLC NAND闪存的数据可靠性方面存在一个严重的问题,即使用现有的LDPC译码算法对MLC NAND闪存的MSB页和LSB页进行纠错时,译码延迟差距较大,LSB页的译码延迟高于MSB页的译码延迟。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种基于闪存页错误特性降低LDPC译码延迟的方法,其目的在于,通过首先分析MLC NAND闪存的保存错误特征,然后使用检测电平提取MLC NAND闪存初始MSB和LSB软判决信息,然后将初始MSB软判决信息传输到LDPC译码器中进行译码,将译码结果对应的MSB软信息存储在一个缓存中,最后将提取的MLC NAND闪存保存错误特征和译码结果对应的MSB软信息以及初始MSB软判决信息相结合以优化初始LSB软判决信息,并将优化后的LSB软判决信息送入LDPC译码器中进行译码,在译码的过程中将优化后的LSB软判决信息融入到LDPC的译码判决过程,从而能够解决LSB的译码延迟高,MSB和LSB之间的译码延迟差距大的技术问题。
为实现上述目的,按照本发明的一个方面,提供了一种基于闪存页错误特性降低LDPC译码延迟的方法,是应用在MLC NAND闪存系统中,所述方法包括以下步骤:
(1)发出顺序写命令,根据该顺序写命令使用LDPC编码器对部分比特数据进行编码,并将编码后所得到的码字传输到页面寄存器,其中n表示LDPC编码过程中的码字长度;
(2)将页面寄存器中的比特序列写入到TLC NAND闪存的MSB页,对剩余的比特数据执行步骤(1)的处理,并将处理得到的已经完成编码所得到的码字写入MLC NAND闪存的LSB页;
(3)使用检测电平分别提取步骤(2)存储在MSB页中的码字和LSB页中的码字由于分别受到保存错误而变成的新的比特序列所对应的初始MSB软判决信息和初始LSB软判决信息根据提取MLC NAND闪存的保存错误模式,将获得的新的比特序列对应的初始MSB软判决信息传输到页面寄存器中,将初始MSB软判决信息从页面寄存器传输到LDPC译码器,使用标准最小和译码算法对初始MSB软判决信息进行LDPC译码,以获得MSB软信息使用所提取的保存错误模式和MSB软信息对初始LSB软判决信息进行优化处理,以得到新的LSB软判决信息
(4)使用LSB算法对优化后的LSB软判决信息进行译码,对译码延迟进行统计,并将译码延迟和译码结果发送到主机端。
优选地,步骤(1)中使用的编码算法是高斯消去算法。
优选地,步骤(3)中根据两个新的比特序列提取MLC NAND闪存的保存错误模式包括以下子步骤;
(3-1)使用检测电平获取新比特序列的初始MSB软判决信息使用置信度传播算法对初始MSB软判决信息进行LDPC译码,以获得译码结果对应的MSB软信息
(3-2)根据步骤(3-1)获得的初始MSB软判决信息和译码结果对应的MSB软信息获取MLC NAND闪存的保存错误模式。
优选地,步骤(3-2)具体包括以下判断条件:
①当初始MSB软判决信息中的Pj大于0且译码结果对应的MSB软信息中的Rj大于0,则初始LSB软信息由于保存错误的影响,具有较大的可能性是比特0,其中1≤j≤n;
②当初始MSB软判决信息中的Pj小于0且译码结果对应的MSB软信息中的Rj小于0,则初始LSB软信息由于保存错误的影响,具有较大的可能性是比特1;
③当初始MSB软判决信息中的Pj小于0且译码结果对应的MSB软信息中的Rj大于0,则初始LSB软信息由于保存错误的影响,具有较大的可能性是比特0;
④当初始MSB软判决信息中的Pj大于0且译码结果对应的MSB软信息中的Rj小于0,则初始LSB软信息由于保存错误的影响,具有较大的可能性是比特0。
优选地,步骤(3)中使用所提取的保存错误模式和MSB软信息对初始LSB软判决信息进行优化处理的具体实现过程是:
如果满足条件①,则在LDPC译码的过程中,优化初始LSB软判决信息所得新的软判决信息中的为-1,从而快速地使LSB比特值收敛到比特0。
如果满足条件②,则在LDPC译码的过程中,优化初始LSB软判决信息所得新的软判决信息中的为1,从而快速地使LSB比特值收敛到比特1。
如果满足条件③和④,则在LDPC译码的过程中,优化初始LSB软判决信息所得新的软判决信息中的为-1,从而快速地使LSB比特值收敛到比特0。
对于上述三种以外的其他情况,设置
优选地,使用LSB算法对优化后的LSB软判决信息进行译码这一过程包括以下子步骤;
(4-1)初始化其中I表示译码迭代次数,且0≤I≤Imax,其中Imax表示最大迭代次数,1≤i≤m,m表示LDPC编码过程中生成的冗余位个数,表示第I次译码迭代的变量节点信息,表示步骤(3)得到的新的软判决信息中的第j个元素;
(4-2)根据步骤(4-1)中的初始化信息,并使用公式(1)对检验节点Ci的可靠性信息进行更新:
其中M(i)\j表示与检验节点相连的所有变量节点中排除变量节点的集合;
(4-3)判断是否步骤(4-2)中所有检验节点的可靠性信息都已经被更新,如果是,则进入步骤(4-4),否则返回步骤(4-2)继续检验节点信息更新操作;
(4-4)根据步骤(4-2)中可靠性信息更新后的检验节点并使用公式(2)对变量节点的可靠性信息进行更新:
其中RMj表示中间变量,其取值与步骤(3-2)中的4个条件相关,N(j)\i表示与变量节点相连的所有校验节点中排除检验节点的集合。
(4-5)判断步骤(4-4)中所有的变量节点的可靠性信息是否全部更新,如果是,则转入步骤(4-6),否则返回步骤(4-4);
(4-6)根据步骤(4-4)中已经被更新的变量节点信息使用公式(3)对比特的正确性进行判决,以得到比特判决向量;
(4-7)判断步骤(4-6)中得到的比特判决向量与LDPC译码器中的检验矩阵相乘是否等于零向量,且译码迭代次数I是否达到最大迭代次数Imax,如果是,则过程结束,否则译码迭代次数I加1,并返回步骤(4-2)继续译码操作。
优选地,步骤(4-6)中,若则将Cj赋值比特1,若则将Cj赋值比特0,从而得到一个比特判决向量
优选地,初始MSB软判决信息、初始LSB软判决信息是通过如下公式计算得到;
其中L(MSB)和L(LSB)分别表示初始MSB软判决信息和初始软LSB判决信息,表示是MLC NAND闪存单元的阈值电压的概率密度分布,且服从正态分布,V1和V2分别表示检测电平的参考电压下限值和上限值,SE代表状态‘11’,S1代表状态‘10’,S2代表状态‘00’,S3代表状态‘01’。
按照本发明的另一方面,提供了一种基于闪存页错误特性降低LDPC译码延迟的系统,是应用在MLC NAND闪存系统中,所述系统包括:
第一模块,用于发出顺序写命令,根据该顺序写命令使用LDPC编码器对部分比特数据进行编码,并将编码后所得到的码字传输到页面寄存器,其中n表示LDPC编码过程中的码字长度;
第二模块,用于将页面寄存器中的比特序列写入到TLC NAND闪存的MSB页,对剩余的比特数据执行步骤(1)的处理,并将处理得到的已经完成编码所得到的码字写入MLC NAND闪存的LSB页;
第三模块,用于使用检测电平分别提取步骤(2)存储在MSB页中的码字和LSB页中的码字由于分别受到保存错误而变成的新的比特序列所对应的初始MSB软判决信息和初始LSB软判决信息根据提取MLC NAND闪存的保存错误模式,将获得的新的比特序列对应的初始MSB软判决信息传输到页面寄存器中,将初始MSB软判决信息从页面寄存器传输到LDPC译码器,使用标准最小和译码算法对初始MSB软判决信息进行LDPC译码,以获得MSB软信息使用所提取的保存错误模式和MSB软信息对初始LSB软判决信息进行优化处理,以得到新的LSB软判决信息
第四模块,用于使用LSB算法对优化后的LSB软判决信息进行译码,对译码延迟进行统计,并将译码延迟和译码结果发送到主机端。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
(1)本发明的方法通过步骤(4),其能够将MLC NAND闪存错误模式和初始MSB软判决信息以及译码结果对应的MSB软信息相结合以优化初始LSB软判决信息获得更加精确的LSB软判决信息,对优化后的LSB软判决信息进行译码因此能够解决MSB页和LSB页之间的译码延迟不平衡的问题。
(2)本发明的方法通过步骤(4-1)到步骤(4-3),其能够在执行LDPC译码的过程中考虑MLC NAND闪存保存错误模式对译码的影响,将MLC NAND闪存保存错误模式融于到LDPC译码过程中因此能够提升LDPC译码判决精度和降低LDPC译码延迟。
(3)本发明的方法通过步骤(4-1)到步骤(4-7),其能够将优化后的LSB软判决信息融合到LDPC译码信息更新过程,从而能够降低MLC NAND闪存的LSB页的译码延迟,进而缩小MSB页和LSB页之间的译码延迟。
附图说明
图1是本发明基于闪存页错误特性降低LDPC译码延迟的方法的设计结构图。
图2是本发明基于闪存页错误特性降低LDPC译码延迟的方法的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明的设计结构图如图1所示,比特数据经过LDPC编码器编码之后,将获得的码字传输到页面寄存器中,首先写到MLC NAND闪存的MSB页中,另外获得的码字被写到LSB页中。随着比特数据保存时间的变化,存储在MLC NAND闪存单元的电子会发生泄露,造成比特数据保存错误,MLC NAND闪存具有保存错误特征。当执行LDPC的译码操作时,存储在MSB页的比特数据的初始MSB软判决信息首先被提取然后被传输到页面寄存器,然后由页面寄存器传输到LDPC译码器进行译码,MSB页的译码结果一方面被输出到主机端,一方面将译码结果对应的MSB软信息存储到一个缓存器中。当MSB页译码结束后,存储在LSB页的比特数据的初始LSB软判决信息被提取然后被传输到页面寄存器中,此时,将MLC NAND闪存的保存错误特征进行提取,将提取出的保存错误特征和译码结果对应的MSB软信息以及初始MSB软判决信息相结合以优化初始LSB软判决信息中,将得到的优化后的LSB软判决信息传输到LDPC的译码器中进行译码,在译码的过程中,将优化后的LSB软判决信息融合到LDPC的译码判决过程,以此来提高比特判决精度,从而降低LSB页的译码延迟和缩短MSB页和LSB页之间的译码延迟差距。
如图2所示,本发明基于闪存页错误特性降低LDPC译码延迟的方法是应用在MLCNAND闪存系统中,且包括以下步骤:
(1)发出顺序写命令,根据该顺序写命令使用LDPC编码器对比特数据进行编码,并将编码后所得到的码字传输到页面寄存器,其中n表示码字长度;
具体而言,本步骤中使用的编码算法是高斯消去算法(Gaussian eliminationalgorithm)。
本步骤的优点在于:闪存系统发出顺序写命令时,被编码的比特序列以顺序写的方式首先写入MLC NAND闪存的MSB页,其次是LSB页,顺序写入有利于降低MLC NAND闪存信道噪音干扰,从而降低比特错误率。
(2)将页面寄存器中的比特序列写入到TLC NAND闪存的MSB页,对另外的比特数据执行步骤(1)的处理,并将处理得到的已经完成编码所得到的码字写入MLC NAND闪存的LSB页;
本步骤的优点在于:先将被编码的比特序列写入寄存器中以降低写拥堵的带来的等待延迟开销;此外,能够很好的执行闪存系统发出的顺序写命令,将数据依次写入闪存页中。
(3)使用检测电平分别提取步骤(2)存储在MSB页中的码字和LSB页中的码字由于分别受到保存错误而变成的新的比特序列所对应的初始MSB软判决信息和初始LSB软判决信息根据提取MLC NAND闪存的保存错误模式,将获得的新的比特序列对应的初始MSB软判决信息传输到页面寄存器中,将初始MSB软判决信息从页面寄存器传输到LDPC译码器,使用标准最小和(Normalized min-sum)译码算法对初始MSB软判决信息进行LDPC译码,以获得MSB软信息使用所提取的保存错误模式和MSB软信息对初始LSB软判决信息)进行优化处理,以得到新的LSB软判决信息
本步骤的优点在于:使用的标准最小和(Normalized min-sum)译码算法适合NAND闪存系统,具有低的译码复杂度。获得译码结果对应的MSB软信息的目的是为优化初始LSB软判决信息做准备。
具体地,根据两个新的比特序列提取MLCNAND闪存的保存错误模式包括以下子步骤;
(3-1)使用检测电平获取新比特序列的初始MSB软判决信息使用置信度传播算法对初始MSB软判决信息进行LDPC译码,以获得译码结果对应的MSB软信息
(3-2)根据步骤(3-1)获得的初始MSB软判决信息和译码结果对应的MSB软信息获取MLC NAND闪存的保存错误模式,具体为:
①当初始MSB软判决信息中的Pj大于0且译码结果对应的MSB软信息中的Rj大于0,则初始LSB软信息由于保存错误的影响,具有较大的可能性是比特0,其中1≤j≤n;
②当初始MSB软判决信息中的Pj小于0且译码结果对应的MSB软信息中的Rj小于0,则初始LSB软信息由于保存错误的影响,具有较大的可能性是比特1。
③当初始MSB软判决信息中的Pj小于0且译码结果对应的MSB软信息中的Rj大于0,则初始LSB软信息由于保存错误的影响,具有较大的可能性是比特0。
④当初始MSB软判决信息中的Pj大于0且译码结果对应的MSB软信息中的Rj小于0,则初始LSB软信息由于保存错误的影响,具有较大的可能性是比特0。
更具体地说,MLC NAND闪存的保存错误模式是根据特定的MLC格雷码映射‘11’,‘10’,‘00’和‘01’获得,其中‘11’,‘10’,‘00’和‘01’是MLC NAND闪存单元的四种状态,当比特数据写入到MSB页和LSB页时是根据这种格雷码映射写入的。
使用所提取的保存错误模式和MSB软信息对初始LSB软判决信息进行优化处理的具体实现过程是:
1、如果满足(3-2)中的条件①,则在LDPC译码的过程中,优化初始LSB软判决信息所得新的软判决信息中的为-1,从而快速地使LSB比特值收敛到比特0。
2、如果满足(3-2)中的条件②,则在LDPC译码的过程中,优化初始LSB软判决信息所得新的软判决信息中的为1,从而快速地使LSB比特值收敛到比特1。
3、如果满足(3-2)中的条件③和④,则在LDPC译码的过程中,优化初始LSB软判决信息所得新的软判决信息中的为-1,从而快速地使LSB比特值收敛到比特0。
4、对于上述三种以外的其他情况,设置
初始MSB软判决信息、初始LSB软判决信息是通过如下公式计算得到;
其中L(MSB)和L(LSB)分别表示初始MSB软判决信息和初始软LSB判决信息,表示是MLC NAND闪存单元的阈值电压的概率密度分布,且服从正态分布,V1和V2别表示检测电平的参考电压下限值和上限值,SE代表状态‘11’,S1代表状态‘10’,S2代表状态‘00’,S3代表状态‘01’。
如果初始软判决信息大于0,则对应的比特值为1。如果初始软判决信息小于0,则比特值为0。
(4)使用LSB算法对优化后的LSB软判决信息进行译码,对译码延迟进行统计,并将译码延迟和译码结果发送到主机端。
具体地,使用LSB算法对优化后的LSB软判决信息进行译码这一过程包括以下子步骤;
(4-1)初始化其中I=0,1≤i≤m,i表示表示LDPC编码过程中生成m个冗余位中的第i个,j表示表示LDPC编码过程中生成长度为n码字中的第j个比特,表示第I次译码迭代的变量节点信息,表示步骤(3)得到的新的软判决信息中的第j个元素,译码过程中变量节点会参与检验节点的检验以验证被更新的变量节点可靠性信息是否正确从而判断比特的正确与否。检验节点与LDPC编码过程中生成的冗余位相对应,变量节点与LDPC编码过程中生成的码字中的比特相对应。
(4-2)根据步骤(4-1)中的初始化信息,并使用公式(1)对检验节点Ci的可靠性信息进行更新:
其中M(i)\j表示与检验节点相连的所有变量节点中排除变量节点的集合。
检验节点的可靠性信息指的是:当变量节点信息被判决为0或1时,与其相连的检验节点成立的概率,I表示译码迭代次数,且0≤I≤Imax,其中Imax表示最大迭代次数,其取值范围是20到50。
(4-3)判断是否步骤(4-2)中所有检验节点的可靠性信息都已经被更新(即与变量节点信息相连的每个检验节点是否都被检验),如果是,则进入步骤(4-4),否则返回步骤(4-2)继续检验节点信息更新操作;
(4-4)根据步骤(4-2)中可靠性信息更新后的检验节点并使用公式(2)对变量节点的可靠性信息进行更新:
其中,如果步骤(3-2)中的条件①、②、③和④都满足,则否则RMj=0,N(j)\i表示与变量节点相连的所有校验节点中排除检验节点的集合。
变量节点的可靠性信息是指,当与变量节点相连的检验节点成立时,该变量节点等于0或1的概率、
(4-5)判断步骤(4-4)中所有的变量节点的可靠性信息是否全部更新,如果是,则转入步骤(4-6),否则返回步骤(4-4);
(4-6)根据步骤(4-4)中已经被更新的变量节点信息使用公式(3)对比特的正确性进行判决,以得到比特判决向量;
具体而言,本步骤中若则将Cj赋值比特1,若则将Cj赋值比特0,从而得到一个比特判决向量
(4-7)判断步骤(4-6)中得到的比特判决向量与LDPC译码器中的检验矩阵相乘是否等于零向量,且译码迭代次数I是否达到最大迭代次数Imax,如果是,则过程结束,否则译码迭代次数I加1,并返回步骤(4-2)继续译码操作。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.一种基于闪存页错误特性降低LDPC译码延迟的方法,是应用在MLC NAND闪存系统中,其特征在于,所述方法包括以下步骤:
(1)发出顺序写命令,根据该顺序写命令使用LDPC编码器对部分比特数据进行编码,并将编码后所得到的码字传输到页面寄存器,其中n表示LDPC编码过程中的码字长度;
(2)将页面寄存器中的比特序列写入到TLC NAND闪存的MSB页,对剩余的比特数据执行步骤(1)的处理,并将处理得到的已经完成编码所得到的码字写入MLCNAND闪存的LSB页;
(3)使用检测电平分别提取步骤(2)存储在MSB页中的码字和LSB页中的码字由于分别受到保存错误而变成的新的比特序列所对应的初始MSB软判决信息和初始LSB软判决信息根据提取MLC NAND闪存的保存错误模式,将获得的新的比特序列对应的初始MSB软判决信息传输到页面寄存器中,将初始MSB软判决信息从页面寄存器传输到LDPC译码器,使用标准最小和译码算法对初始MSB软判决信息进行LDPC译码,以获得MSB软信息使用所提取的保存错误模式和MSB软信息对初始LSB软判决信息进行优化处理,以得到新的LSB软判决信息步骤(3)中根据两个新的比特序列提取MLC NAND闪存的保存错误模式包括以下子步骤;
(3-1)使用检测电平获取新比特序列的初始MSB软判决信息使用置信度传播算法对初始MSB软判决信息进行LDPC译码,以获得译码结果对应的MSB软信息
(3-2)根据步骤(3-1)获得的初始MSB软判决信息和译码结果对应的MSB软信息获取MLC NAND闪存的保存错误模式;
(4)使用LSB算法对优化后的LSB软判决信息进行译码,对译码延迟进行统计,并将译码延迟和译码结果发送到主机端;使用LSB算法对优化后的LSB软判决信息进行译码这一过程包括以下子步骤;
(4-1)初始化其中I表示译码迭代次数,且0≤I≤Imax,其中Imax表示最大迭代次数,1≤i≤m,m表示LDPC编码过程中生成的冗余位个数,表示第I次译码迭代的变量节点信息,表示步骤(3)得到的新的软判决信息中的第j个元素;
(4-2)根据步骤(4-1)中的初始化信息,并使用公式(1)对检验节点Ci的可靠性信息进行更新:
其中M(i)\j表示与检验节点相连的所有变量节点中排除变量节点的集合;
(4-3)判断是否步骤(4-2)中所有检验节点的可靠性信息都已经被更新,如果是,则进入步骤(4-4),否则返回步骤(4-2)继续检验节点信息更新操作;
(4-4)根据步骤(4-2)中可靠性信息更新后的检验节点并使用公式(2)对变量节点的可靠性信息进行更新:
其中RMj表示中间变量,其取值与步骤(3-2)中的4个条件相关,N(j)\i表示与变量节点相连的所有校验节点中排除检验节点的集合;
(4-5)判断步骤(4-4)中所有的变量节点的可靠性信息是否全部更新,如果是,则转入步骤(4-6),否则返回步骤(4-4);
(4-6)根据步骤(4-4)中已经被更新的变量节点信息使用公式(3)对比特的正确性进行判决,以得到比特判决向量;
(4-7)判断步骤(4-6)中得到的比特判决向量与LDPC译码器中的检验矩阵相乘是否等于零向量,且译码迭代次数I是否达到最大迭代次数Imax,如果是,则过程结束,否则译码迭代次数I加1,并返回步骤(4-2)继续译码操作。
2.根据权利要求1所述的方法,其特征在于,步骤(1)中使用的编码算法是高斯消去算法。
3.根据权利要求1所述的方法,其特征在于,步骤(3-2)具体包括以下判断条件:
①当初始MSB软判决信息中的Pj大于0且译码结果对应的MSB软信息中的Rj大于0,则初始LSB软信息由于保存错误的影响,具有较大的可能性是比特0,其中1≤j≤n;
②当初始MSB软判决信息中的Pj小于0且译码结果对应的MSB软信息中的Rj小于0,则初始LSB软信息由于保存错误的影响,具有较大的可能性是比特1;
③当初始MSB软判决信息中的Pj小于0且译码结果对应的MSB软信息中的Rj大于0,则初始LSB软信息由于保存错误的影响,具有较大的可能性是比特0;
④当初始MSB软判决信息中的Pj大于0且译码结果对应的MSB软信息中的Rj小于0,则初始LSB软信息由于保存错误的影响,具有较大的可能性是比特0。
4.根据权利要求3所述的方法,其特征在于,步骤(3)中使用所提取的保存错误模式和MSB软信息对初始LSB软判决信息进行优化处理的具体实现过程是:
如果满足条件①,则在LDPC译码的过程中,优化初始LSB软判决信息所得新的软判决信息中的为-1,从而快速地使LSB比特值收敛到比特0;
如果满足条件②,则在LDPC译码的过程中,优化初始LSB软判决信息所得新的软判决信息中的为1,从而快速地使LSB比特值收敛到比特1;
如果满足条件③和④,则在LDPC译码的过程中,优化初始LSB软判决信息所得新的软判决信息中的为-1,从而快速地使LSB比特值收敛到比特0;
对于上述三种以外的其他情况,设置
5.根据权利要求1至4中任意一项所述的方法,其特征在于,步骤(4-6)中,若则将Cj赋值比特1,若则将Cj赋值比特0,从而得到一个比特判决向量
6.根据权利要求1所述的方法,其特征在于,初始MSB软判决信息、初始LSB软判决信息是通过如下公式计算得到;
其中L(MSB)和L(LSB)分别表示初始MSB软判决信息和初始软LSB判决信息,表示是MLC NAND闪存单元的阈值电压的概率密度分布,且服从正态分布,V1和V2分别表示检测电平的参考电压下限值和上限值,SE代表状态‘11’,S1代表状态‘10’,S2代表状态‘00’,S3代表状态‘01’。
7.一种基于闪存页错误特性降低LDPC译码延迟的系统,是应用在MLC NAND闪存系统中,其特征在于,所述系统包括:
第一模块,用于发出顺序写命令,根据该顺序写命令使用LDPC编码器对部分比特数据进行编码,并将编码后所得到的码字传输到页面寄存器,其中n表示LDPC编码过程中的码字长度;
第二模块,用于将页面寄存器中的比特序列写入到TLC NAND闪存的MSB页,对剩余的比特数据执行步骤(1)的处理,并将处理得到的已经完成编码所得到的码字写入MLC NAND闪存的LSB页;
第三模块,用于使用检测电平分别提取步骤(2)存储在MSB页中的码字和LSB页中的码字由于分别受到保存错误而变成的新的比特序列所对应的初始MSB软判决信息和初始LSB软判决信息根据提取MLC NAND闪存的保存错误模式,将获得的新的比特序列对应的初始MSB软判决信息传输到页面寄存器中,将初始MSB软判决信息从页面寄存器传输到LDPC译码器,使用标准最小和译码算法对初始MSB软判决信息进行LDPC译码,以获得MSB软信息使用所提取的保存错误模式和MSB软信息对初始LSB软判决信息进行优化处理,以得到新的LSB软判决信息第三模块中根据两个新的比特序列提取MLC NAND闪存的保存错误模式包括以下子模块;
第一子模块,用于使用检测电平获取新比特序列的初始MSB软判决信息使用置信度传播算法对初始MSB软判决信息进行LDPC译码,以获得译码结果对应的MSB软信息
第二子模块,用于根据第一子模块获得的初始MSB软判决信息和译码结果对应的MSB软信息获取MLC NAND闪存的保存错误模式;
第四模块,用于使用LSB算法对优化后的LSB软判决信息进行译码,对译码延迟进行统计,并将译码延迟和译码结果发送到主机端,使用LSB算法对优化后的LSB软判决信息进行译码这一过程包括以下子模块;
第三子模块,用于初始化其中I表示译码迭代次数,且0≤I≤Imax,其中Imax表示最大迭代次数,1≤i≤m,m表示LDPC编码过程中生成的冗余位个数,表示第I次译码迭代的变量节点信息,表示步骤(3)得到的新的软判决信息中的第j个元素;
第四子模块,用于根据第三子模块中的初始化信息,并使用公式(1)对检验节点Ci的可靠性信息进行更新:
其中M(i)\j表示与检验节点相连的所有变量节点中排除变量节点的集合;
第五子模块,用于判断是否第四子模块中所有检验节点的可靠性信息都已经被更新,如果是,则进入第六子模块,否则返回第四子模块继续检验节点信息更新操作;
第六子模块,用于根据第四子模块中可靠性信息更新后的检验节点并使用公式(2)对变量节点的可靠性信息进行更新:
其中RMj表示中间变量,其取值与第二子模块中的4个条件相关,N(j)\i表示与变量节点相连的所有校验节点中排除检验节点的集合;
第七子模块,用于判断第六子模块中所有的变量节点的可靠性信息是否全部更新,如果是,则转入第八子模块,否则返回第六子模块;
第八子模块,用于根据第六子模块中已经被更新的变量节点信息使用公式(3)对比特的正确性进行判决,以得到比特判决向量;
第九子模块,用于判断第八子模块中得到的比特判决向量与LDPC译码器中的检验矩阵相乘是否等于零向量,且译码迭代次数I是否达到最大迭代次数Imax,如果是,则过程结束,否则译码迭代次数I加1,并返回第四子模块继续译码操作。
CN201710563434.6A 2017-07-12 2017-07-12 一种基于闪存页错误特性降低ldpc译码延迟的方法 Active CN107395214B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710563434.6A CN107395214B (zh) 2017-07-12 2017-07-12 一种基于闪存页错误特性降低ldpc译码延迟的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710563434.6A CN107395214B (zh) 2017-07-12 2017-07-12 一种基于闪存页错误特性降低ldpc译码延迟的方法

Publications (2)

Publication Number Publication Date
CN107395214A CN107395214A (zh) 2017-11-24
CN107395214B true CN107395214B (zh) 2019-06-28

Family

ID=60339177

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710563434.6A Active CN107395214B (zh) 2017-07-12 2017-07-12 一种基于闪存页错误特性降低ldpc译码延迟的方法

Country Status (1)

Country Link
CN (1) CN107395214B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109660263B (zh) * 2018-11-22 2022-07-05 华中科技大学 一种适用于mlc nand闪存的ldpc码译码方法
CN110752850B (zh) * 2019-08-27 2023-04-07 广东工业大学 一种mlc闪存芯片ldpc码快速迭代的方法
CN112992256B (zh) * 2019-12-16 2022-12-09 中国科学院微电子研究所 误码率平衡方法及装置
CN111858137B (zh) * 2020-07-08 2023-12-22 上海威固信息技术股份有限公司 一种原始比特错误率感知的读电平施加方法
CN113419688B (zh) * 2021-08-24 2021-11-09 苏州浪潮智能科技有限公司 一种mlc芯片的错误率分析方法、系统及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101345601A (zh) * 2007-07-13 2009-01-14 华为技术有限公司 一种译码方法和译码器
CN101361137A (zh) * 2006-01-16 2009-02-04 汤姆森许可贸易公司 用于将高速输入数据记录到存储器器件矩阵中的方法和装置
CN102279803A (zh) * 2011-04-13 2011-12-14 西安交通大学 一种提高多层单元NAND-Flash存储可靠性的备用区分配方法
CN102394113A (zh) * 2011-11-14 2012-03-28 清华大学 一种应用于快闪存储器中的动态ldpc纠错码方法
CN102682848A (zh) * 2011-03-16 2012-09-19 三星电子株式会社 存储器装置、存储器卡、固态驱动器、系统及其操作方法
CN106371943A (zh) * 2016-09-06 2017-02-01 华中科技大学 一种基于flash编程干扰错误感知的LDPC译码优化方法
CN106685431A (zh) * 2016-12-05 2017-05-17 华南理工大学 基于Nand Flash的LDPC获取软信息译码方法及编译码器

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9407294B2 (en) * 2014-07-07 2016-08-02 Kabushi Kaisha Toshiba. Non-volatile memory controller with error correction (ECC) tuning via error statistics collection

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101361137A (zh) * 2006-01-16 2009-02-04 汤姆森许可贸易公司 用于将高速输入数据记录到存储器器件矩阵中的方法和装置
CN101345601A (zh) * 2007-07-13 2009-01-14 华为技术有限公司 一种译码方法和译码器
CN102682848A (zh) * 2011-03-16 2012-09-19 三星电子株式会社 存储器装置、存储器卡、固态驱动器、系统及其操作方法
CN102279803A (zh) * 2011-04-13 2011-12-14 西安交通大学 一种提高多层单元NAND-Flash存储可靠性的备用区分配方法
CN102394113A (zh) * 2011-11-14 2012-03-28 清华大学 一种应用于快闪存储器中的动态ldpc纠错码方法
CN106371943A (zh) * 2016-09-06 2017-02-01 华中科技大学 一种基于flash编程干扰错误感知的LDPC译码优化方法
CN106685431A (zh) * 2016-12-05 2017-05-17 华南理工大学 基于Nand Flash的LDPC获取软信息译码方法及编译码器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
A Retention Error Aware LDPC Decoding Scheme to Improve NAND Flash Read Performance;zhang meng;《IEEE:2016 32nd Symposium on Mass Storage Systems and Technologies》;20170413;第1-13页

Also Published As

Publication number Publication date
CN107395214A (zh) 2017-11-24

Similar Documents

Publication Publication Date Title
CN107395214B (zh) 一种基于闪存页错误特性降低ldpc译码延迟的方法
CN106371943B (zh) 一种基于flash编程干扰错误感知的LDPC译码优化方法
US8254167B2 (en) Joint encoding of logical pages in multi-page memory architecture
US20160027521A1 (en) Method of flash channel calibration with multiple luts for adaptive multiple-read
TWI613674B (zh) 在具有選擇性二元及非二元解碼之快閃記憶體中之偵測及解碼
CN103297061B (zh) 决定同位元检查阵列的方法以及快闪存储器系统
CN104601178B (zh) 解码方法、解码电路、存储器存储装置与控制电路单元
CN111309544B (zh) 一种读参考电压受多维因子影响的预测建模及施加方法
KR20090061608A (ko) 메모리 디바이스를 위한 결합된 왜곡 추정 및 에러 보정 코딩
US8996793B1 (en) System, method and computer readable medium for generating soft information
CN106341136A (zh) Ldpc解码方法及其装置
US10423484B2 (en) Memory controller, memory system, and control method
CN108958963A (zh) 一种基于ldpc和循环冗余校验码的nand flash差错控制方法
US11557353B2 (en) Optimal detection voltage obtaining method, reading control method and apparatus of memory
CN104835535A (zh) 一种固态盘自适应纠错方法与系统
US10911068B2 (en) Error correction circuit and method of operating the same
CN110233628A (zh) 极化码的自适应置信传播列表译码方法
CN107608818A (zh) 解码方法、存储器存储装置及存储器控制电路单元
CN107863128A (zh) 一种多级闪存单元纠错方法、系统、装置及可读存储介质
CN106537787B (zh) 译码方法和译码器
CN110830167A (zh) 基于多比特翻转的极化码Fast-SSC译码算法
CN105027084B (zh) 在移动通信系统中控制存储器的装置和方法
US20190007063A1 (en) Generating hamming weights for data
KR20140099820A (ko) 크기조정 상수를 사용하는 가변 노드 업데이터를 갖는 ldpc 디코더
CN107423159B (zh) 一种基于闪存错误模式提升ldpc译码性能的方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant