CN106371943A - 一种基于flash编程干扰错误感知的LDPC译码优化方法 - Google Patents

一种基于flash编程干扰错误感知的LDPC译码优化方法 Download PDF

Info

Publication number
CN106371943A
CN106371943A CN201610802793.8A CN201610802793A CN106371943A CN 106371943 A CN106371943 A CN 106371943A CN 201610802793 A CN201610802793 A CN 201610802793A CN 106371943 A CN106371943 A CN 106371943A
Authority
CN
China
Prior art keywords
reliability information
inspection
column vector
node
decoding
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.)
Granted
Application number
CN201610802793.8A
Other languages
English (en)
Other versions
CN106371943B (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 CN201610802793.8A priority Critical patent/CN106371943B/zh
Publication of CN106371943A publication Critical patent/CN106371943A/zh
Application granted granted Critical
Publication of CN106371943B publication Critical patent/CN106371943B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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

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)
  • Error Detection And Correction (AREA)

Abstract

本发明公开了一种基于flash编程干扰错误感知的LDPC译码优化方法,随着NAND闪存存储密度的提升,每个单元存储较多的比特信息,单元之间的耦合干扰较强烈,造成严重的编程干扰错误,使得传统的BCH码不足以保证数据的可靠性,LDPC码具有优于BCH码的纠错性能而被应用于NAND闪存存储***中。使用被优化的LDPC译码算法具有重要意义。现已观察,编程干扰错误具有数值相关性特征,当进行LDPC译码时,编程干扰错误的数值相关性特征能够被融入到LDPC译码过程,为比特判决提供一种额外的信息以此提高比特判决精度和译码收敛速度,从而降低LDPC译码延迟。

Description

一种基于flash编程干扰错误感知的LDPC译码优化方法
技术领域
本发明属于固态盘存储技术领域,更具体地,涉及一种基于flash编程干扰错误感知的LDPC译码优化方法。
背景技术
基于NAND闪存的固态盘(Solid State Disk,简称SSD)具有高性能,大容量,抗震动,低功耗和非易失等优点被广泛应用于计算机存储***。固态盘SSD以NAND闪存(NANDflash)作为存储介质,随着NAND闪存制程工艺的提升,每个单元存储较多的比特信息,比如MLC NAND闪存每个单元存储两比特信息,单元中存储较少的电荷且单元之间的距离较近,单元之间的耦合干扰较为强烈,当对NAND闪存中某一个页执行编程操作时,会对邻近的页造成干扰,引起邻近页的存储单元阈值电压发生变化,阈值电压从一个状态转移到另一个状态,当执行读操作时,由于编程干扰的影响发生比特错误,数据的可靠性遭到破坏。为了保证数据可靠性,纠错码(Error correction code,简称ECC)被运用到NAND闪存的控制器中,如BCH码和LDPC码,传统的方法采用BCH码以保证数据可靠性。但是,NAND闪存的存储容量越来越大,存储单元之间的电容耦合更为强烈,编程干扰引起的比特错误率越来越高,BCH码不足以胜任保证数据可靠性,此时,需要采用纠正能力更强的纠错码,LDPC码以优于BCH码的纠错性能被应用于NAND闪存。
LDPC码是一种线性分组码,它的纠错性质被一种称为稀疏性的检验矩阵所决定,所谓稀疏检验矩阵就是矩阵中0的数量远远多于1的数量,矩阵中的每一行对应一个检验方程(也被称为检验节点),每一行对应一个比特节点(与码字中的每个比特对应),检验矩阵能够形象的被Tanner图所表示(如图1和图2所示),Tanner图中的Ci(1≤i≤m)与检验矩阵中的行相对应,Tanner图中的Vj(1≤j≤m)与检验矩阵中的列相对应,如果检验矩阵中的第i行和第j列是1,那么Tanner图中Ci和Vj之间有一条边相连。当进行LDPC译码时,这些边用来传递译码所需要的可靠性信息(比特正确与否的概率信息)。
LDPC译码是一种可靠性信息传播的过程,是一种软判决译码,具有较为复杂的译码结构,如果直接的使用LDPC码会带来较大译码延迟开销,如果能够将NAND闪存的错误模式融合到LDPC译码过程中,利用NAND闪存介质本身的错误特征为LDPC译码提供判断比特正确性的额外信息,那么,这样能够提升LDPC译码的判决精度和收敛速度,降低译码延迟开销。另外,我们得知NAND闪存的编程干扰错误具有数值相关性特征,即MLC NAND闪存单元中存储的不同状态的比特数据当有编程干扰存在时会表现出不同的错误率(如图3所示),主要的编程干扰错误是11→10和10→01,它们的比例分别是70%和24%,其他的编程干扰错误是10→00,11→01和01→00,它们相对的比例分别是2.2%,1.5%和0.4%。当进行LDPC译码时,这些特征被融入到译码过程,为比特判决提供额外的信息以此提高译码精度降低译码延迟。现有的LDPC译码算法有概率域置信传播算法,最小和译码算法等。
现有的LDPC译码算法存在以下几个明显的不足之处:1、现有的LDPC译码算法只考虑内部的信息传递没有充分利用flash本身的错误模式特征,具有较高的译码复杂度和较大的译码延迟开销;2、现有的LDPC译码算法没有考虑编程干扰错误的数值相关性特征的影响,没有将这种有利特征融入到LDPC译码信息更新过程;3、现有的LDPC译码算法没有额外的判决信息提供,单纯的依靠译码机制本身的特性进行信息更新。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种基于flash编程干扰错误感知的LDPC译码优化方法,其目的在于,通过将编程干扰错误的数值相关性特征融入到LDPC译码过程中,为比特判决提供额外的信息,有效的提高了LDPC译码准确性降低了译码延迟开销,进而提高***的读性能和延长SSD的寿命。
为实现上述目的,按照本发明的一个方面,提供了一种基于flash编程干扰错误感知的LDPC译码优化方法,包括以下步骤:
(1)随机生成检验矩阵H,其元素为0或1,码率介于0.75至0.9之间,且不存在短环现象;其中检验矩阵的行数m是通过(SSD页面大小/(SSD页面大小+m))=码率获得,检验矩阵的列数是SSD页面大小+m;
(2)根据生成的检验矩阵H生成列向量(码字)使其满足其中列向量中的后m个记为冗余位,剩余的记为信息位;
(3)根据生成的校验矩阵H和列向量构造对应的Tanner图,其体现了检验方程C1,C2,…,Cm与列向量之间的映射关系;
(4)使用0和1对列向量中的元素V1到Vn-m进行随机赋值,并使用公式计算获得的列向量中的元素Vn-m到Vn的值,从而生成多个列向量,并将这些生成的列向量包括依次以顺序写的方式存入SSD的页面中一直到页面存满为止;
(5)将被写入到SSD的页面中的多个列向量依次读出进行纠错,其中记发生错误的列向量为该列向量为
(6)获取列向量中每个元素的初始可靠性信息,并根据可靠性信息将每个元素转换为二进制,即将可靠性信息为负值的元素转换为1,将可靠性信息为正值的元素转换为0,从而获得新的列向量
(7)将校验矩阵H和列向量相乘,并判断相乘后生成的每个检验方程是否均为零向量,如果是则将列向量输出给用户,过程结束,否则转入步骤(8);
(8)根据步骤(6)中获得的列向量中每个元素初始可靠性信息Ij,对每个码字比特进行初始化赋值为其中当进行译码第一次迭代时,获取的变量节点可靠性信息即为初始值Ij
V i j ′ k = I j ( 1 ≤ i ≤ m , 1 ≤ j ≤ n , i ∈ R ( j ) , j ∈ Q ( i ) )
其中i∈R(j)表示与变量节点Vj相连的所有检验节点Ci的集合,j∈Q(i)表示与检验节点Ci相连的所有变量节点Vj的集合;
(9)设置计数器k=1;
(10)判断k是否小于预设最大迭代次数Tmax,如果是,则转入步骤(11),如果否,则过程结束,将最终的码字向量输出,并向用户提示译码失败;
(11)根据步骤(8)对初始变量节点赋值并使用以下公式进行检验节点可靠性信息更新:
C i j k = Π m ∈ Q ( i ) \ j sgn ( V i m ′ k ) · m i n { | V i m ′ k | : m ∈ Q ( i ) \ j }
其中为符号函数,Q(i)\j表示与检验节点Ci相连的所有比特节点中排除Vj的集合。
(12)判断步骤(11)中检验节点更新是否结束,如果否,则返回步骤(11),如果是,则进入步骤(13);
(14)根据步骤(12)中已经被更新的检验节点可靠性信息采用以下公式进行变量节点可靠性信息更新:
V i j ′ k = Y j + Σ n ∈ R ( j ) \ i C n j k + A j ,
其中Aj是由flash编程干扰错误的数值相关性提供的额外比特判决信息,被融入到变量节点可靠性信息更新过程,其中R(j)\i表示与Vj相连的所有检验节点中排除Ci的集合,变量节点的可靠性信息表示为:当该检验方程成立时与之相连的变量节点等于0或1的概率;
(14)判断步骤(13)中的变量节点可靠性信息更新是否结束,如果否,则返回步骤(13),如果是,则进入步骤(15);
(15)使用以下公式对检验节点进行译码判决:
V j ′ k = Y j + Σ i ∈ R ( j ) C i j k + A j
(16)根据步骤(15)译码判决的结果获得每个码字比特所对应的可靠性信息
(17)对步骤(16)中获得的可靠性信息进行硬判决,即判断是否有如果是则将0赋值给aj,然后转入步骤(18),否则将1赋值给aj,然后转入步骤(18);
(18)根据步骤(17)中硬判决的结果获得被判决的码字向量
(19)检验步骤(18)中生成的码字向量是否满足检验方程其中H为(1)中生成的检验矩阵,如果满足,则直接输出码字向量过程结束,如果不满足则将迭代次数k逐次加1,并返回步骤(10)继续迭代操作,直到满足为止。
优选地,步骤(6)具体为,每个元素的可靠性信息是通过元素所存储的单元的阈值电压与预设参考电压比较获得;获得可靠性的公式为其中Vtv是经过与参考电压比较获得的每个单元的阈值电压,Vi是从单元中读取的列向量中的元素且每个flash单元的阈值电压服从正态分布。
优选地,最大迭代次数Tmax的取值范围20到50。
优选地,检验节点的可靠性信息表示为:当变量节点信息被判决为0或1时与其相连的检验方程成立的概率。
优选地,步骤(15)具体为,依据步骤(14)已经更新的可靠性信息将每个元素转换为二进制,即将可靠性信息为负值的元素转换为1,将可靠性信息为正值的元素转换为0。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
(1)本发明充分考虑NAND闪存本身的错误特性,很好的将编程干扰错误的数值相关性特征利用到LDPC译码之中,因为LDPC译码过程传递的就是一种概率信息,如果关于比特正确性的额外判决信息能够融入到译码信息过程,译码正确性会得到很大的提升,这对提高译码吞吐量和NAND闪存读性能大有好处。
(2)本发明分析了NAND闪存的编程干扰错误模式的数值相关性特征对LDPC译码的影响,利用该数值相关性特征获得一些有价值性的观察,将其转化为可以结合到LDPC译码中的相关数学模型,利用该特性来提升译码准确率降低译码循环。
(3)本发明将NAND闪存的编程干扰数值相关性特征融合到LDPC译码之中,相当于增加比特正确性的判决维度,降低了信息更新循环,提升NAND闪存读性能进而提升存储***的相应时间。
附图说明
图1和图2是现有LDPC码的检验矩阵对应的Tanner结构图。
图3是现有NAND闪存编程干扰错误的数值相关性分布图。
图4是本发明基于flash编程错误模式降低LDPC译码延迟算法设计结构图。
图5是本发明基于flash编程干扰错误模式降低LDPC译码延迟的方法的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明的结构设计图如图4所示,当译码器接收到一个LDPC码字时,每个比特节点Vj的初始可靠性信息Pi,Ik能够被获得,基于被获得的比特节点初始可靠性信息,与该比特节点相连的检验节点Ci(看图1和图2)的可靠性信息能够被计算。这些被计算的检验节点的可靠性信息用于更新获得比特节点初始信息,这两类节点的可靠性信息在Tanner图上循环更新以至于被干扰的LDPC码字信息能够得到快速纠正。事实上,LDPC译码信息传递过程是计算每个码字比特正确性的最大后验概率,即是,当所有的检验方程都成立时,每个码字比特等于0或1正确的概率。
本发明将编程干扰错误的数值相关性特征转化为相应的数学模型,采用内部编程干扰错误模式融入LDPC译码节点更新的方式,提升判决比特正确性的精度,当进行LDPC译码时,比特节点Vj更新会接收来自基于NAND闪存本身编程干扰错误特征提供的额外判决信息Aj,考虑编程干扰错误对译码的影响,当LDPC译码器对比特做出最佳判决时,也会考虑编程干扰的影响,将编程干扰的数值相关性特征融合的LDPC译码过程中以此来提高译码准确性,降低译码延迟进而提高性能。
LDPC译码采用信息循环迭代更新的方式来提升译码精度,传递的是比特正确性的概率信息,是一种软判决信息,如图5所示,本发明基于flash编程干扰错误模式降低LDPC译码延迟的方法包括以下步骤:
(1)随机生成检验矩阵H,其元素为0或1,码率介于0.75至0.9之间,且不存在短环现象;根据该码率,并根据(SSD页面大小/(SSD页面大小+m))=码率,即可获得的m值,m为检验矩阵的行数(同时为生成的冗余比特数),检验矩阵的列数是SSD页面大小+m;
例如,生成的H矩阵为m=3;
(2)根据生成的检验矩阵H生成列向量(码字)使其满足其中列向量中的后m个记为冗余位,剩余的记为信息位;
(3)根据生成的校验矩阵H和列向量构造对应的Tanner图TG,其体现了检验方程C与列向量之间的映射关系;
具体而言,将H和相乘后展开,可获得m个检验方程,记为C1,C2,…,Cm
例如,使用上述的例子,即有:
V1+V4=0(即C1)
V3+V4=0(即C2)
V1+V2=0(即C3)。
从上可知,V1和V4分别参与了检验方程C1的检验,即V1和V4分别与C1相连,V3和V4分别参与了检验方程C2的检验,即V3和V4分别与C2相连,V1和V2分别参与了检验方程C3的检验,即V1和V2分别与C3相连(如图1所示),其中列向量中的每个元素Vi称为变量节点,检验方程Ci(1≤i≤m)称为检验节点。
(4)使用0和1对列向量中的元素V1到Vn-m进行随机赋值,并使用公式计算获得的列向量中的元素Vn-m到Vn的值,按照上述的方法可以生成多个这样的列向量并将这些生成的列向量包括(即为生成的码字比特)依次以顺序写的方式存入SSD的页面中一直到页面存满为止;
(5)将被写入到SSD的页面中的多个列向量依次读出进行纠错,当对存储的列向量进行读取时,由于受到SSD信道编程干扰噪声的影响,因此此时的列向量可能已经发生错误,记为发生错误的列向量为该列向量为需要注意的是,容易发生比特错误,即之前存储的列向量中的每个元素可能发生比特翻转;
(6)获取列向量中每个元素的初始可靠性信息(即每个元素正确与否的概率信息,初始可靠性信息中包含有固态盘的信道特征信息),并根据可靠性信息将每个元素转换为二进制,即将可靠性信息为负值的元素转换为1,将可靠性信息为正值的元素转换为0,从而获得新的列向量具体而言,每个元素的可靠性信息是通过元素所存储的单元的阈值电压与预设参考电压比较获得;获得可靠性的公式为(为了降低计算量此公式可以将概率信息转化为对数似然比信息),其中Vtv是经过与参考电压比较获得的每个单元的阈值电压,Vi是从单元中读取的列向量中的元素且每个flash单元的阈值电压服从正态分布;
(7)将校验矩阵H和列向量相乘,并判断相乘后生成的每个检验方程是否均为零向量,如果是则将列向量输出给用户,过程结束,否则转入步骤(8);
(8)根据步骤(6)中获得的列向量中每个元素(码字比特)初始可靠性信息Ij,对每个码字比特(变量节点)进行初始化赋值为其中当进行译码第一次迭代时,获取的变量节点可靠性信息即为初始值Ij
V i j ′ k = I j ( 1 ≤ i ≤ m , 1 ≤ j ≤ n , i ∈ R ( j ) , j ∈ Q ( i ) )
其中i∈R(j)表示与变量节点Vj相连的所有检验节点Ci的集合,j∈Q(i)表示与检验节点Ci相连的所有变量节点Vj的集合;
(9)设置计数器k=1;
(10)判断k是否小于预设最大迭代次数Tmax,如果是,则转入步骤(11),如果否,则过程结束,将最终的码字向量输出,并向用户提示译码失败;具体而言,最大迭代次数Tmax的取值范围20到50;
(11)根据步骤(8)对初始变量节点赋值并使用以下公式进行检验节点可靠性信息更新:
C i j k = Π m ∈ Q ( i ) \ j sgn ( V i m ′ k ) · m i n { | V i m ′ k | : m ∈ Q ( i ) \ j }
其中为符号函数,Q(i)\j表示与检验节点Ci相连的所有比特节点中排除Vj的集合;检验节点的可靠性信息表示为:当变量节点信息被判决为0或1时与其相连的检验方程成立的概率;
(12)判断步骤(11)中检验节点更新是否结束(即是与变量节点相连的每个检验方程是否都被检验),如果否,则返回步骤(11),如果是,则进入步骤(13);
(15)根据步骤(12)中已经被更新的检验节点可靠性信息采用以下公式进行变量节点可靠性信息更新:
V i j ′ k = Y j + Σ n ∈ R ( j ) \ i C n j k + A j ,
其中Aj是由flash编程干扰错误的数值相关性提供的额外比特判决信息,被融入到变量节点可靠性信息更新过程,其中R(j)\i表示与Vj相连的所有检验节点中排除Ci的集合,变量节点的可靠性信息表示为:当该检验方程成立时与之相连的变量节点等于0或1的概率;
(14)判断步骤(13)中的变量节点可靠性信息更新是否结束,如果否,则返回步骤(13),如果是,则进入步骤(15);
(15)使用以下公式对检验节点进行译码判决(即根据步骤(6)的方法,依据步骤(14)已经更新的可靠性信息将每个元素转换为二进制,即将可靠性信息为负值的元素转换为1,将可靠性信息为正值的元素转换为0):
V j ′ k = Y j + Σ i ∈ R ( j ) C i j k + A j
(16)根据步骤(15)译码判决的结果获得每个码字比特所对应的可靠性信息该可靠性信息对应的是一组实数值(即每个都是实数);
(17)对步骤(16)中获得的可靠性信息进行硬判决,即判断是否有如果是则将0赋值给aj,然后转入步骤(18),否则将1赋值给aj,然后转入步骤(18);
(18)根据步骤(17)中硬判决的结果获得被判决的码字向量
(19)检验步骤(18)中生成的码字向量是否满足检验方程其中H为(1)中生成的检验矩阵,如果满足,则直接输出码字向量过程结束,如果不满足则将迭代次数k逐次加1,并返回步骤(10)继续迭代操作,直到满足为止。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (5)

1.一种基于flash编程干扰错误感知的LDPC译码优化方法,其特征在于,包括以下步骤:
(1)随机生成检验矩阵H,其元素为0或1,码率介于0.75至0.9之间,且不存在短环现象;其中检验矩阵的行数m是通过(SSD页面大小/(SSD页面大小+m))=码率获得,检验矩阵的列数是SSD页面大小+m;
(2)根据生成的检验矩阵H生成列向量(码字)使其满足其中列向量中的后m个记为冗余位,剩余的记为信息位;
(3)根据生成的校验矩阵H和列向量构造对应的Tanner图,其体现了检验方程C1,C2,…,Cm与列向量之间的映射关系;
(4)使用0和1对列向量中的元素V1到Vn-m进行随机赋值,并使用公式计算获得的列向量中的元素Vn-m到Vn的值,从而生成多个列向量,并将这些生成的列向量包括依次以顺序写的方式存入SSD的页面中一直到页面存满为止;
(5)将被写入到SSD的页面中的多个列向量依次读出进行纠错,其中记发生错误的列向量为该列向量为
(6)获取列向量中每个元素的初始可靠性信息,并根据可靠性信息将每个元素转换为二进制,即将可靠性信息为负值的元素转换为1,将可靠性信息为正值的元素转换为0,从而获得新的列向量
(7)将校验矩阵H和列向量相乘,并判断相乘后生成的每个检验方程是否均为零向量,如果是则将列向量输出给用户,过程结束,否则转入步骤(8);
(8)根据步骤(6)中获得的列向量中每个元素初始可靠性信息Ij,对每个码字比特进行初始化赋值为其中当进行译码第一次迭代时,获取的变量节点可靠性信息即为初始值Ij
V i j ′ k = I j , ( 1 ≤ i ≤ m , 1 ≤ j ≤ n , i ∈ R ( j ) , j ∈ Q ( i ) )
其中i∈R(j)表示与变量节点Vj相连的所有检验节点Ci的集合,j∈Q(i)表示与检验节点Ci相连的所有变量节点Vj的集合;
(9)设置计数器k=1;
(10)判断k是否小于预设最大迭代次数Tmax,如果是,则转入步骤(11),如果否,则过程结束,将最终的码字向量输出,并向用户提示译码失败;
(11)根据步骤(8)对初始变量节点赋值并使用以下公式进行检验节点可靠性信息更新:
C i j k = Π m ∈ Q ( i ) \ j s g n ( V i m ′ k ) · m i n { | V i m ′ k | : m ∈ Q ( i ) \ j }
其中为符号函数,Q(i)\j表示与检验节点Ci相连的所有比特节点中排除Vj的集合。
(12)判断步骤(11)中检验节点更新是否结束,如果否,则返回步骤(11),如果是,则进入步骤(13);
(13)根据步骤(12)中已经被更新的检验节点可靠性信息采用以下公式进行变量节点可靠性信息更新:
V i j ′ k = Y j + Σ n ∈ R ( j ) \ i C n j k + A j ,
其中Aj是由flash编程干扰错误的数值相关性提供的额外比特判决信息,被融入到变量节点可靠性信息更新过程,其中R(j)\i表示与Vj相连的所有检验节点中排除Ci的集合,变量节点的可靠性信息表示为:当该检验方程成立时与之相连的变量节点等于0或1的概率;
(14)判断步骤(13)中的变量节点可靠性信息更新是否结束,如果否,则返回步骤(13),如果是,则进入步骤(15);
(15)使用以下公式对检验节点进行译码判决:
V j ′ k = Y j + Σ i ∈ R ( j ) C i j k + A j
(16)根据步骤(15)译码判决的结果获得每个码字比特所对应的可靠性信息
(17)对步骤(16)中获得的可靠性信息进行硬判决,即判断是否有如果是则将0赋值给aj,然后转入步骤(18),否则将1赋值给aj,然后转入步骤(18);
(18)根据步骤(17)中硬判决的结果获得被判决的码字向量
(19)检验步骤(18)中生成的码字向量是否满足检验方程其中H为(1)中生成的检验矩阵,如果满足,则直接输出码字向量过程结束,如果不满足则将迭代次数k逐次加1,并返回步骤(10)继续迭代操作,直到满足为止。
2.根据权利要求1所述的基于flash编程干扰错误感知的LDPC译码优化方法,其特征在于,步骤(6)具体为,每个元素的可靠性信息是通过元素所存储的单元的阈值电压与预设参考电压比较获得;获得可靠性的公式为其中Vtv是经过与参考电压比较获得的每个单元的阈值电压,Vi是从单元中读取的列向量中的元素且每个flash单元的阈值电压服从正态分布。
3.根据权利要求1所述的基于flash编程干扰错误感知的LDPC译码优化方法,其特征在于,最大迭代次数Tmax的取值范围20到50。
4.根据权利要求1所述的基于flash编程干扰错误感知的LDPC译码优化方法,其特征在于,检验节点的可靠性信息表示为:当变量节点信息被判决为0或1时与其相连的检验方程成立的概率。
5.根据权利要求1所述的基于flash编程干扰错误感知的LDPC译码优化方法,其特征在于,步骤(15)具体为,依据步骤(14)已经更新的可靠性信息将每个元素转换为二进制,即将可靠性信息为负值的元素转换为1,将可靠性信息为正值的元素转换为0。
CN201610802793.8A 2016-09-06 2016-09-06 一种基于flash编程干扰错误感知的LDPC译码优化方法 Active CN106371943B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610802793.8A CN106371943B (zh) 2016-09-06 2016-09-06 一种基于flash编程干扰错误感知的LDPC译码优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610802793.8A CN106371943B (zh) 2016-09-06 2016-09-06 一种基于flash编程干扰错误感知的LDPC译码优化方法

Publications (2)

Publication Number Publication Date
CN106371943A true CN106371943A (zh) 2017-02-01
CN106371943B CN106371943B (zh) 2018-11-02

Family

ID=57900311

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610802793.8A Active CN106371943B (zh) 2016-09-06 2016-09-06 一种基于flash编程干扰错误感知的LDPC译码优化方法

Country Status (1)

Country Link
CN (1) CN106371943B (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107395214A (zh) * 2017-07-12 2017-11-24 华中科技大学 一种基于闪存页错误特性降低ldpc译码延迟的方法
CN107423159A (zh) * 2017-07-11 2017-12-01 华中科技大学 一种基于闪存错误模式提升ldpc译码性能的方法
CN107863128A (zh) * 2017-11-28 2018-03-30 广东工业大学 一种多级闪存单元纠错方法、***、装置及可读存储介质
CN107861884A (zh) * 2017-11-06 2018-03-30 华中科技大学 一种提高nand闪存中跨页存储地址映射效率的方法
CN109087683A (zh) * 2018-07-26 2018-12-25 西京学院 一种NAND Flash固态存储自适应差错控制方法
CN109660263A (zh) * 2018-11-22 2019-04-19 华中科技大学 一种适用于mlc nan闪存的ldpc码译码方法
CN110752850A (zh) * 2019-08-27 2020-02-04 广东工业大学 一种mlc闪存芯片ldpc码快速迭代的方法
CN111446970A (zh) * 2020-02-11 2020-07-24 上海威固信息技术股份有限公司 一种低密度奇偶校验码译码软判决信息预处理方法
CN111475326A (zh) * 2019-01-23 2020-07-31 深圳衡宇芯片科技有限公司 训练人工智能执行低密度奇偶检查码的译码程序的方法
CN111817728A (zh) * 2020-08-03 2020-10-23 华中科技大学 一种基于硬件实现ldpc编译码的仿真***及其工作方法
CN112000290A (zh) * 2020-08-21 2020-11-27 珠海创飞芯科技有限公司 Nor flash擦除干扰纠正方法及装置
CN113014269A (zh) * 2021-02-08 2021-06-22 中山大学 具有纠错能力的NAND Flash控制器及控制方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101183918A (zh) * 2007-11-26 2008-05-21 华中科技大学 一种自适应混合自动请求重传方法
CN101488760A (zh) * 2009-02-13 2009-07-22 华中科技大学 一种低码率ldpc码的编码方法
CN104282340A (zh) * 2014-09-30 2015-01-14 华中科技大学 一种固态盘闪存芯片阈值电压感知方法及***

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101183918A (zh) * 2007-11-26 2008-05-21 华中科技大学 一种自适应混合自动请求重传方法
CN101488760A (zh) * 2009-02-13 2009-07-22 华中科技大学 一种低码率ldpc码的编码方法
CN104282340A (zh) * 2014-09-30 2015-01-14 华中科技大学 一种固态盘闪存芯片阈值电压感知方法及***

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MENG ZHANG等: "REAL: A Retention Error Aware LDPC Decoding Scheme to Improve NAND Flash Read Performance", 《2016 32ND SYMPOSIUM ON MASS STORAGE SYSTEMS AND TECHNOLOGIES (MSST)》 *

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107423159A (zh) * 2017-07-11 2017-12-01 华中科技大学 一种基于闪存错误模式提升ldpc译码性能的方法
CN107423159B (zh) * 2017-07-11 2019-06-28 华中科技大学 一种基于闪存错误模式提升ldpc译码性能的方法
CN107395214A (zh) * 2017-07-12 2017-11-24 华中科技大学 一种基于闪存页错误特性降低ldpc译码延迟的方法
CN107395214B (zh) * 2017-07-12 2019-06-28 华中科技大学 一种基于闪存页错误特性降低ldpc译码延迟的方法
CN107861884A (zh) * 2017-11-06 2018-03-30 华中科技大学 一种提高nand闪存中跨页存储地址映射效率的方法
CN107861884B (zh) * 2017-11-06 2020-06-02 华中科技大学 一种提高nand闪存中跨页存储地址映射效率的方法
CN107863128B (zh) * 2017-11-28 2020-07-10 广东工业大学 一种多级闪存单元纠错方法、***、装置及可读存储介质
CN107863128A (zh) * 2017-11-28 2018-03-30 广东工业大学 一种多级闪存单元纠错方法、***、装置及可读存储介质
CN109087683A (zh) * 2018-07-26 2018-12-25 西京学院 一种NAND Flash固态存储自适应差错控制方法
CN109087683B (zh) * 2018-07-26 2021-08-17 西京学院 一种NAND Flash固态存储自适应差错控制方法
CN109660263A (zh) * 2018-11-22 2019-04-19 华中科技大学 一种适用于mlc nan闪存的ldpc码译码方法
CN109660263B (zh) * 2018-11-22 2022-07-05 华中科技大学 一种适用于mlc nand闪存的ldpc码译码方法
CN111475326A (zh) * 2019-01-23 2020-07-31 深圳衡宇芯片科技有限公司 训练人工智能执行低密度奇偶检查码的译码程序的方法
CN110752850A (zh) * 2019-08-27 2020-02-04 广东工业大学 一种mlc闪存芯片ldpc码快速迭代的方法
CN110752850B (zh) * 2019-08-27 2023-04-07 广东工业大学 一种mlc闪存芯片ldpc码快速迭代的方法
CN111446970A (zh) * 2020-02-11 2020-07-24 上海威固信息技术股份有限公司 一种低密度奇偶校验码译码软判决信息预处理方法
CN111817728A (zh) * 2020-08-03 2020-10-23 华中科技大学 一种基于硬件实现ldpc编译码的仿真***及其工作方法
CN112000290A (zh) * 2020-08-21 2020-11-27 珠海创飞芯科技有限公司 Nor flash擦除干扰纠正方法及装置
CN112000290B (zh) * 2020-08-21 2023-11-24 珠海创飞芯科技有限公司 Nor flash擦除干扰纠正方法及装置
CN113014269A (zh) * 2021-02-08 2021-06-22 中山大学 具有纠错能力的NAND Flash控制器及控制方法

Also Published As

Publication number Publication date
CN106371943B (zh) 2018-11-02

Similar Documents

Publication Publication Date Title
CN106371943A (zh) 一种基于flash编程干扰错误感知的LDPC译码优化方法
CN103971751B (zh) 以选择性二进制及非二进制解码在闪存中进行检测和解码
US11501170B2 (en) Electronic device and method of operating the same
CN102203877B (zh) 使用解码器性能反馈的用于存储器器件的软数据生成的方法和装置
TWI521529B (zh) 解碼方法、記憶體儲存裝置及記憶體控制電路單元
TW201714179A (zh) 具有改良硬解碼處理量的vss低密度同位檢驗解碼器
US8289771B2 (en) Data reading method and control circuit and memory controller using the same
CN104601178B (zh) 解码方法、解码电路、存储器存储装置与控制电路单元
CN107395214B (zh) 一种基于闪存页错误特性降低ldpc译码延迟的方法
US9136011B2 (en) Soft information module
TW201508759A (zh) 用來進行記憶體存取管理之方法以及記憶裝置及其控制器
US10423484B2 (en) Memory controller, memory system, and control method
US10911068B2 (en) Error correction circuit and method of operating the same
CN104282340A (zh) 一种固态盘闪存芯片阈值电压感知方法及***
CN112383314B (zh) 一种基于raid信息的ldpc纠错方法
TWI672698B (zh) 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元
CN107608818A (zh) 解码方法、存储器存储装置及存储器控制电路单元
CN103365738B (zh) 多层次闪存器件的轻量级软信息获取方法
CN104778975B (zh) 译码方法、存储器存储装置、存储器控制电路单元
KR20200033688A (ko) 에러 정정 회로 및 이의 동작 방법
US10884858B2 (en) LDPC decoding device, memory system including the same and method thereof
Peng et al. Dynamic LLR scheme based on EM algorithm for LDPC decoding in NAND flash memory
US20220263524A1 (en) Electronic device
CN106981296A (zh) 低密度奇偶校验装置与其操作方法
CN107423159B (zh) 一种基于闪存错误模式提升ldpc译码性能的方法

Legal Events

Date Code Title Description
C06 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