CN110071726B - 多层单元闪存中联合ldpc码的构造方法及其译码装置 - Google Patents

多层单元闪存中联合ldpc码的构造方法及其译码装置 Download PDF

Info

Publication number
CN110071726B
CN110071726B CN201910302170.8A CN201910302170A CN110071726B CN 110071726 B CN110071726 B CN 110071726B CN 201910302170 A CN201910302170 A CN 201910302170A CN 110071726 B CN110071726 B CN 110071726B
Authority
CN
China
Prior art keywords
joint
check
sub
flash memory
ldpc code
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
CN201910302170.8A
Other languages
English (en)
Other versions
CN110071726A (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.)
Nanjing Research Institute Of Nanjing University
Original Assignee
Nanjing Research Institute Of Nanjing University
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 Nanjing Research Institute Of Nanjing University filed Critical Nanjing Research Institute Of Nanjing University
Priority to CN201910302170.8A priority Critical patent/CN110071726B/zh
Publication of CN110071726A publication Critical patent/CN110071726A/zh
Application granted granted Critical
Publication of CN110071726B publication Critical patent/CN110071726B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • 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/1148Structural properties of the code parity-check or generator matrix

Landscapes

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

Abstract

本发明公开了一种多层单元闪存中联合LDPC码的构造方法及其译码装置。联合校验LDPC码将多层单元闪存的分层数据页的子LDPC码的校验结合形成全局LDPC码,进行进一步校验,更有力地保障了闪存数据的完整性。联合LDPC码译码器装置即可以对各层数据页的子LDPC码分层译码,也可以利用联合LDPC码对多层数据也进行联合译码,并且两种译码模式可以结合起来先后执行。本发明所述的联合LDPC码提升了分层的子LDPC码的纠错性能,增强了对闪存数据完整性的保障;其译码方式的灵活性,有助于将纠错能力同闪存单元的源误码率动态匹配,提升闪存读写的效率。

Description

多层单元闪存中联合LDPC码的构造方法及其译码装置
技术领域
本发明属于数据存储技术,涉及适用于多层次单元闪存存储的低密度奇偶校验码纠错码编码译码系统,尤其涉及一种多层单元闪存中联合LDPC码的构造方法及其译码装置。
背景技术
闪存作为一种比传统磁盘存储方式更加稳定,数据读写更快速便捷的存储器件,已经渗入到日常生活中每个角落。为了满足日益增加的存储需求,闪存制造商不断缩减工艺尺寸,提出三维NAND存储技术,增加在单个闪存单元的信息比特数。随之而来的就是闪存的错误概率不断上升,传统的BCH纠错码已经不足以保证数据的安全。低密度奇偶校验码LDPC(LowDensityParity Check)作为一种纠错能力逼近香农极限的纠错方式,正在逐渐取代BCH,成为新一代闪存控制器中纠错编码方式。
多层次单元闪存(Multi-LevelCellFlash Memory),即在一个闪存存储单元存储多比特信息,是近年来闪存存储密度提升的一个重要途径,包括狭义上的MLC(每个单元存储2-bit消息,闪存单元有4个不同阈值电压区间)、TLC(每个单元存储3-bit消息,闪存单元有8个不同阈值电压区间)。三星、镁光等公司在2018年宣布量产的QLC(Quad-LevelCell)闪存,每个闪存单元能存储4-bit信息。纠错编码的码率反映了纠错码的性能。码率越低,校验比特数相对越多,纠错能力越强。闪存中的源误码率(RawBit Error Rate,简写为RBER)是闪存单元数据可靠性的衡量标准。在多层单元闪存中,属于不同层的数据具有不同的源误码率;对闪存单元整体而言,在使用寿命的不同时期也有不相同的源误码率。因此,应用于闪存的纠错码方案,可以利用多层次单元闪存中源误码率的这种特性。通过针对性地设计LDPC的纠错码方案,将LDPC纠错能力和不同层数据页的、不同使用寿命时期的的源误码率适配起来,以充分利用有限的闪存单元冗余空间。
发明内容
发明目的:本发明的目的之一是提供一种多层单元闪存中联合LDPC码的构造方法,第二目的是提供一种多层单元闪存中联合LDPC码的译码装置,提高闪存和纠错编码的数据可靠性和装置或系统的使用寿命。
技术方案:一种适用于多层单元闪存的联合LDPC码的构造方法,设多层单元闪存的信息分层共有P层,包括以下步骤:
(1)针对多层单元闪存的不同层p∈P的数据页构造子LDPC码,其中Np,Kp,Mp分别为码长、数据位长度和校验位长度,子校验矩阵为Hp
(2)针对多层单元闪存的所有层的数据页构造联合LDPC码,设联合校验位长度位Mu,则该联合LDPC码的数据位为多层单元闪存所有层的数据位和校验位和,联合LDPC码的数据位为:Ku=∑p∈PNp=∑p∈P(Kp+Mp),码长为Nu=Mu+Ku,联合校验矩阵记为Hu
(3)将P个子校验矩阵Hp和联合校验矩阵记为Hu以对角线的形式排列组合成全局校验矩阵Hglobal
进一步的,步骤(1)具体包括以下步骤:
(11)构造基于伽罗华域GF(q)的元素{α-∞,α0,α1,...,αq-2}的拉丁方阵W,其中α为GF(q)的素元;
(12)从W中提取互不相同的
Figure BDA0002028581000000021
Figure BDA0002028581000000022
列,记为行集合Rowp和列集合Colp,行、列集合的交集元素组成基础矩阵Bp。其中且不同子LDPC码必须选取W中完全不相同的列,即
Figure BDA0002028581000000023
(13)对Bp中元素进行CPM拓展生成Hp
进一步的,步骤(2)具体包括以下步骤:
(21)从W中提取互不相同的
Figure BDA0002028581000000024
Figure BDA0002028581000000025
列,记为行集合Rowu和列集合Colu,行、列集合的交集元素组成基础矩阵Bu。其中且联合LDPC码必须选取W中和子LDPC码完全不相同的行,即
Figure BDA0002028581000000026
(22)对Bu中元素进行CPM拓展生成Hu
进一步的,所述方法在构造过程中,闪存控制器在编译码的同时统计闪存单元源误码率RBER,当源误码率低于RBER_th时,分层依照子校验矩阵Hp译码;当RBER高于源误码率阈值参数RBER_th时,依照Hglobal采取联合LDPC编码,在依照Hp分层编码后,进一步依照联合校验矩阵Hu编码。
一种适用于多层单元闪存的联合LDPC码的译码装置,所述装置包含P个子译码器和一个联合译码器;所述装置的工作模式包括分层译码模式和联合译码模式,分层译码模式时装置所包含的子译码器装置分别译码,且联合译码器不工作,联合译码模式时装置所包含的子译码器结合联合译码器共同译码;两种工作模式可以按照先分层译码模式后联合译码模式的顺序执行若分层译码在最大迭代次数内译码未成功,则进入联合译码模式。
进一步的,所述的子译码器包括逻辑部分和存储部分,通过按列分组的译码方式,在统一的译码单元中对不同层的数据页进行译码;所述逻辑部分包括C2V消息提取模块、移位和反向移位、变量节点更新模块、校验节点更新模块和奇偶校验模块;所述存储部分包括校验节点信息存储,变量节点信息存储,初始信息存储和校验矩阵存储。
进一步的,所述子译码器中变量节点更新模块,在分层译码模式中,变量节点的更新按照传统的按列分组的最小和译码算法更新;在联合译码模式中,变量节点更新需要结合联合校验LLR消息
Figure BDA0002028581000000031
并生成子校验LLR消息
Figure BDA0002028581000000032
公式表示为:
Figure BDA0002028581000000033
Qvc=Λv-Rcv
Figure BDA0002028581000000034
根据子校验矩阵Hp中满足的奇偶校验的比例,校验节点更新采取动态归一化或者动态偏移;对于多层单元闪存的某一层p∈P,动态归一化因子αp∈(0,1),子校验矩阵Hp满足校验的校验节点数为Mp′。
Figure BDA0002028581000000035
其中f(*)为可调节参数的递增函数,在数字电路中,用分段函数查找表的方式实现。
进一步的,所述联合译码器包括逻辑部分和存储部分,通过按列分组的译码方式,结合子译码器提供的子校验节点LLR信息、联合校验硬判决的消息完成联合所有层的数据页的联合LDPC译码;联合译码器中每个时钟周期同时处理对应P个分层数据页的校验节点和变量节点的信息更新。
进一步的,所述存储部分包括联合校验节点信息存储,联合变量节点信息存储和联合校验矩阵存储。
更进一步的,所述逻辑部分包括联合C2V消息提取模块、移位和反向移位、联合变量节点更新模块、联合校验节点更新模块和联合奇偶校验模块;具体包括如下:
(a)联合C2V消息提取模块每个时钟周期从联合校验节点信息存储中生成P组,共P×z个C2V消息;
(b)联合校验节点更新模块,在一个时钟周期内,每个校验节点利用P个V2C消息进行校验节点更新;
(c)联合奇偶校验模块,在一个时钟周期内,每个联合译码的校验和由P个硬判决信息更新;
(d)联合变量节点更新模块,设对应第p层数据页的C2V消息和V2C消息分别为Qcv(p)和Rv(p)c,输入子校验LLR消息和输出联合校验LLR消息分别为
Figure BDA0002028581000000041
Figure BDA0002028581000000042
变量节点更新公式表示如下:
Figure BDA0002028581000000043
Figure BDA0002028581000000044
有益效果:与现有技术相比,本发明显著的效果在于:第一、本发明所述联合LDPC码的构造方法基于现有的性能卓越的LDPC码构造,保证了LDPC码的纠错性能。第二、所述联合LDPC码的构造方法的联合校验位计算基于分层页的数据和校验信息,通过分层编码可以方便地在线性时间复杂度内进行联合LDPC码的编码。第三、本发明的联合LDPC码的译码器装置,相比于多层单元闪存中分层进行LDPC码纠错的方案,在纠错能力上有进一步的保障,第四、本发明的联合LDPC码的译码器装置,相比于将多层数据页进行统一长码长低码率的LDPC编译码,其具有更大的灵活性,且源误码率较低时具有更高的译码速率。
附图说明
图1是本发明所述的的多层单元闪存中联合LDPC码的编码译码流程图;
图2是本发明所述的多层单元闪存中联合LDPC码的全局校验矩阵构造的示意图;
图3是本发明所述的多层单元闪存中联合LDPC码的译码器装置的顶层结构示意图;
图4是本发明所述的多层单元闪存中联合LDPC码的子译码器的结构示意图;
图5是本发明所述的多层单元闪存中联合LDPC码的联合译码器的结构示意图。
具体实施方式
为了详细的说明本发明所公开的技术方案,下面结合说明书附图及具体实施例做进一步的阐述。
一种适用于多层单元闪存的联合LDPC码的构造方法,设多层单元闪存的信息分层共有P层,包括以下步骤:
(1)针对多层单元闪存的不同层p∈P的数据页构造子LDPC码,其中Np,Kp,Mp分别为码长、数据位长度和校验位长度,其校验矩阵位Hp。基于伽罗华GF(q)的元素构造{α-∞,α0,α1,...,αq-2}拉丁方阵W,其中α为GF(q)的素元;从W中提取互不相同的
Figure BDA0002028581000000051
Figure BDA0002028581000000052
列,记为行集合Rowp和列集合Colp,行、列集合的交集元素组成基础矩阵Bp。其中且不同子LDPC码必须选取W中完全不相同的列,即
Figure BDA0002028581000000053
对基础矩阵Bp中的每一元素进行循环移位矩阵拓展CPM-dispersion(Circulant PermutationMatrixDispersion)生成Hp。CPM由单位矩阵I(q-1)×(q-1)将矩阵的每一行循环右移s得来。GF(q)中的q个元素同CPM一一对应:αs(s∈{0,1,...q-2})对应移位值为s的As;α-∞对应全零矩阵O(q-1)×(q-1)
Figure BDA0002028581000000054
(2)针对多层单元闪存的所有层的数据页构造联合LDPC码,设联合校验位长度位Mu,则该联合LDPC码的数据位长度为Ku=∑p∈PNp=∑p∈P(Kp+Mp),码长为Nu=Ku+Mu,从W中提取互不相同的
Figure BDA0002028581000000055
Figure BDA0002028581000000056
列,记为行集合Rowu和列集合Colu,行、列集合的交集元素组成基础矩阵Bu。其中且联合LDPC码必须选取W中和子LDPC码完全不相同的行,即
Figure BDA0002028581000000057
对Bu中元素进行CPM拓展生成Hu
(3)将P个子校验矩阵Hp和联合校验矩阵记为Hu以对角线的形式排列组合成全局校验矩阵Hglobal
闪存控制器可以通过统计已经译码成功的数据中纠错比特数占总比特数的比例来估计闪存中不同块的源误码率;当源误码率低于RBER_th时,分层依照子校验矩阵Hp译码;当RBER高于源误码率阈值参数RBER_th时,依照Hglobal采取联合LDPC编码,即在依照Hp分层编码后,进一步依照联合校验矩阵Hu编码。当源误码率较高时,需要较多额外的校验位,超过了闪存单元内置的校验位空间。联合LDPC码的校验位可以存放于闪存的特定的物理地址空间,由闪存控制器管理。
一种适用于多层单元闪存的联合LDPC码的译码装置,包含多个子译码器和一个联合译码器。所述装置可工作于两种工作模式:分层译码模式和联合译码模式,分层译码模式指多个子译码器装置分别译码,且联合译码器不工作;联合译码模式指多个子译码器结合联合译码器共同译码。
进一步的说,所述装置在闪存使用寿命中前期,闪存源误码率低时,仅使用分层译码模式。在闪存使用寿命中后期,闪存源误码率较高时,先使用分层译码模式译码,若在分层译码最大迭代次数内译码未成功,进入联合译码模式。
子译码器装置包括逻辑部分和存储部分,通过按列分组的译码方式,在统一的译码单元中对不同层的数据页进行译码;逻辑部分包括C2V消息提取模块、移位和反向移位、变量节点更新模块、校验节点更新模块和奇偶校验模块;存储部分包括校验节点信息存储,变量节点信息存储,初始信息存储和校验矩阵存储。
所述子译码器中变量节点更新模块,设C2V消息和V2C消息分别为Qcv和Rvc,联合校验LLR消息和子校验LLR消息分别为
Figure BDA0002028581000000061
Figure BDA0002028581000000062
初始变量节点信息LLR为λv
在分层译码模式中,变量节点更新为:
Figure BDA0002028581000000063
Qvc=Λv-Rcv
在联合译码模式中,变量节点更新为:
Figure BDA0002028581000000071
Qvc=Λv-Rcv
Figure BDA0002028581000000072
子译码器在联合译码模式下,校验节点更新模块根据子校验矩阵Hp中,满足奇偶校验的比例而动态归一化或者动态偏移;对于多层单元闪存的某一层p∈P,动态归一化因子αp∈(0,1),子校验矩阵Hp满足校验的校验节点数为Mp′。
Figure BDA0002028581000000073
其中f(*)为可调节参数的递增函数,在数字电路中,用分段函数查找表的方式实现。
进一步的说,所述联合译码器装置包括逻辑部分和存储部分,通过按列分组的译码方式,结合子译码器提供的子校验节点LLR信息、联合校验硬判决的消息完成联合所有层的数据页联合译码。逻辑部分包括联合C2V消息提取模块、移位和反向移位、联合变量节点更新模块、联合校验节点更新模块和联合奇偶校验模块;存储部分包括联合校验节点信息存储,联合变量节点信息存储和联合校验矩阵存储。
联合译码器中每个时钟周期同时处理对应P个分层数据页的校验节点和变量节点的信息更新。联合译码器其中的联合C2V消息提取模块每个时钟周期从联合校验节点信息存储中生成P组(共P×z个)C2V消息。联合译码器中联合变量节点更新模块,设对应第p层数据页的C2V消息和V2C消息分别为Qcv(p)和Rv(p)c,输入子校验LLR消息和输出联合校验LLR消息分别为
Figure BDA0002028581000000074
Figure BDA0002028581000000075
变量节点更新公式表示为:
Figure BDA0002028581000000076
Figure BDA0002028581000000077
联合译码器中的联合校验节点更新模块,在一个时钟周期内,每个校验节点利用P个V2C消息进行校验节点更新。述联合译码器中的联合奇偶校验模块,在一个时钟周期内,每个联合译码的校验和由P个硬判决信息更新。
实施例1
本实施例基于TLC(Triple-LevelCell)单元闪存,页大小为2KB,默认子LDPC码码率为0.89。
本发明中适用于多层单元闪存的联合LDPC码的构造方法,信息分层P=3,三层数据页也被称为上层页,中层页和下层页(Upper Page,Middle Page和LowerPage)。本实施例中采取上中下三层数据页相同码率的编译码的方案,但本发明所提出的联合LDPC码不局限于这种情况。
(1)针对TLC闪存的三层数据页构造子LDPC码,其中Np,Kp,Mp分别为码长、数据位长度和校验位长度,其校验矩阵位Hp。本实施例中三层数据页的子LDPC的参数是相同的,Np=18432,Kp=16384,Mp=2048。
基于伽罗华域GF(257)中的元素{α-∞,α0,α1,...,α255}的拉丁方阵W中分别提取不相同的8行64列的行集合Rowp和列集合Colp,行、列集合的交集元素组成基础矩阵Bp。对基础矩阵中的每一元素进行循环移位矩阵扩散CPM-dispersion(Circulant PermutationMatrixDispersion)生成Hp。CPM由单位矩阵I256×256将矩阵的每一行循环右移s得来。GF(q)中的q个元素同CPM一一对应:αs(s∈{0,1,...q-2})对应移位值为s的As;α-∞对应全零矩阵O256×256
Figure BDA0002028581000000081
(2)针对多层单元闪存的所有层的数据页构造联合LDPC码,设联合校验位长度位Mu=2048,则该联合LDPC码的数据位长度为Ku=∑p∈PNp=∑p∈P(Kp+Mp)=55296,码长为Nu=Ku+Mu=57344。从W中提取互不相同的
Figure BDA0002028581000000082
Figure BDA0002028581000000083
列,记为行集合Rowu和列集合Colu,行、列集合的交集元素组成基础矩阵Bu。其中且联合LDPC码必须选取W中和子LDPC码完全不相同的行,即
Figure BDA0002028581000000084
对Bu中元素进行CPM拓展生成Hu
(3)子校验矩阵和联合校验矩阵呈对角线排布组成全局校验矩阵Hglobal,如图2所示
闪存控制器可以通过统计已经译码成功的数据中纠错比特数占总比特数的比例来估计闪存中不同块的源误码率;并依据闪存源误码率高低决定是否需要联合LDPC的编码,即当源误码率接近子LDPC码的纠错能力边界时,需要对经过子LDPC码编码的数据进一步进行联合LDPC码编码。当源误码率较高时,可能需要较多额外的校验位,超过了闪存单元内置的校验位空间。联合LDPC码的校验位可以存放于闪存的特定的物理地址空间,由闪存控制器管理。
实施例2
一种适用于多层单元闪存的联合LDPC码的译码装置如图3所示,包含子译码器和一个联合译码器。
所述装置可工作于两种工作模式:分层译码模式和联合译码模式,分层译码模式时多个子译码器装置分别译码,联合译码模式时多个子译码器结合联合译码器共同译码。
在闪存使用寿命中前期,闪存源误码率低时,仅使用分层译码模式;在闪存使用寿命中后期,闪存源误码率较高时,先使用分层译码模式译码,若在分层译码最大迭代次数内译码未成功,进入联合译码模式。
本发明中的LDPC码译码是基于按列分组的归一化最小和算法。设
Figure BDA0002028581000000091
Figure BDA0002028581000000092
分别为变量节点VNv(v∈{0,1,...N})和校验节点CNc(c∈{0,1,...,M})中间传递的V2C和C2V消息。
Figure BDA0002028581000000093
为VNv的初始LLR信息,即对闪存读入的数据x为0或1的概率比的对数。N(c)为和CNc连接的变量节点,M(v)为同VNv连接的校验节点。在shuffled调度的归一化最小和算法中,N个变量节点被分为G个列组,其中第g个组Ng(g∈{0,1,...,G-1})包含
Figure BDA0002028581000000094
个变量节点,在本实施例中,G等于基础矩阵的最大列数n,每一组包含。设
Figure BDA0002028581000000095
为Ng左边的列组,
Figure BDA0002028581000000096
为Ng右边的列组。在每一次迭代中,G个列组的依次序更新,对于第g组的变量节点
Figure BDA0002028581000000097
以及其相邻的校验节点,CNc,c∈M(v)。对应的消息更新可以用公式概括为:
变量节点更新:
Figure BDA0002028581000000101
Figure BDA0002028581000000102
校验节点更新:
Figure BDA0002028581000000103
本发明中的译码器装置改进于传统的按列分组的归一化最小和算法译码器的硬件实现。其中校验节点的更新通过实时更新每一个时钟周期的最小值队列来简化。
子译码器装置,如图4所示,包括逻辑部分和存储部分,通过按列分组的译码方式,在统一的译码单元中对不同层的数据页进行译码;
其中存储部分包括:
校验节点信息存储,用寄存器组(Register Files)实现。用于存储和校验节点更新相关的信息,包括校验节点的最小值队列信息(包括两个最小绝对值和最小绝对值所在列组序号min1,min2,idx1,idx2)、全局符号以及校验和。校验校验节点信息存储的字长对应q-1=256个校验节点信息,深度为mp=8。
变量节点信息存储,用双口随机读写存储器实现(dual-portRAM)。用于存储和变量节点更新相关的信息,包括校验节点到变量节点信息(V2C消息)的符号和变量节点的硬判决信息。设dv为子校验矩阵列重,且所构造的子校验矩阵列重均匀分布。变量节点信息存储的字长为(q-1)×(dv+1),深度为np=64。
初始信息存储,用单口随机读写存储器实现(single-port RAM)用于存储读取的闪存单元的初始LLR信息。本发明实施例中,每一个变量节点存储2-bit软信息。字长为(q-1)×2,深度为np=64
校验矩阵存储,用单口只读存储器实现(single-port ROM)。用于存储子校验矩阵的信息。字长为
Figure BDA0002028581000000104
深度为np
其中逻辑部分包括:
C2V消息提取模块,用于从校验信息存储中提取出C2V消息。
移位和反向移位,用于根据QC-LDPC的校验矩阵,将C2V消息对齐到变量节点以及将V2C消息对齐到校验节点。
校验节点更新模块,用于更新校验节点信息存储的最小值消息和全局符号(公式-3)。
奇偶校验模块,用于进行校验矩阵的判决。
以上子译码器中逻辑模块同传统的按列分组译码器的实现功能上是相同的,而变量节点更新模块,基于(公式-1)和(公式-2),在功能上与传统译码器实现不同。设C2V消息和V2C消息分别为Qcv和Rvc,联合校验LLR消息和子校验LLR消息分别为
Figure BDA0002028581000000111
Figure BDA0002028581000000112
初始变量节点信息LLR为λv
在分层译码模式中,变量节点更新为:
Figure BDA0002028581000000113
Qvc=Λv-Rcv
在联合译码模式中,变量节点更新为:
Figure BDA0002028581000000114
Qvc=Λv-Rcv
Figure BDA0002028581000000115
进一步的,所述子译码器在联合译码模式下,校验节点更新模块根据子校验矩阵Hp中,满足奇偶校验的比例而动态归一化或者动态偏移;对于多层单元闪存的某一层p∈P,动态归一化因子αp∈(0,1),子校验矩阵Hp满足校验的校验节点数为Mp′。
Figure BDA0002028581000000116
其中f(*)为可调节参数的递增函数,在数字电路中,用分段函数查找表的方式实现。
Figure BDA0002028581000000121
所述联合译码装置,如图5所示,包括逻辑部分和存储部分,通过按列分组的译码方式,结合子译码器提供的子校验节点LLR信息、联合校验硬判决的消息完成联合所有层的数据页联合译码。
所述存储部分包括联合校验节点信息存储、联合变量节点信息存储和联合校验矩阵存储。同子译码器的存储部分的区别在于:
1、联合译码的存储部分的位宽为每个子译码器的P倍数。
2、联合变量节点信息存储不需要存储硬判决信息,而联合译码器的判决信息从子译码器中传输而来。
所述逻辑部分包括联合C2V消息提取模块、移位和反向移位、联合变量节点更新模块、联合校验节点更新模块和联合奇偶校验模块;
所述联合译码器中每个时钟周期同时处理对应P个分层数据页的校验节点和变量节点的信息更新。
联合C2V消息提取模块,每个时钟周期从联合校验节点信息存储中生成P组(共P×(q-1)个)C2V消息。
移位和反向移位,用于根据QC-LDPC的校验矩阵,将C2V消息对齐到变量节点以及将V2C消息对齐到校验节点。
联合校验节点更新模块,在一个时钟周期内,每个联合校验节点综合P个V2C消息和校验节点信息中存储最小值信息进行校验节点更新。
所述联合译码器中联合变量节点更新模块,设对应第p层数据页的C2V消息和V2C消息分别为Qcv(p)和Rv(p)c,输入子校验LLR消息和输出联合校验LLR消息分别为
Figure BDA0002028581000000122
Figure BDA0002028581000000123
变量节点更新公式表示为:
Figure BDA0002028581000000124
Figure BDA0002028581000000125
联合译码器中的联合奇偶校验模块,在一个时钟周期内,每个联合译码的校验和由P个硬判决信息更新。

Claims (8)

1.一种适用于多层单元闪存的联合LDPC码的构造方法,其特征在于:设多层单元闪存的信息分层共有P层,其构造方法包括以下步骤:
(1)针对多层单元闪存的不同层p∈P的数据页构造子LDPC码,其中Np,Kp,Mp分别为码长、数据位长度和校验位长度,子校验矩阵为Hp
(2)针对多层单元闪存的所有层的数据页构造联合LDPC码,设联合校验位长度位Mu,则该联合LDPC码的数据位为多层单元闪存所有层的数据位和校验位之和,联合LDPC码的数据位为:Ku=∑p∈PNp=∑p∈P(Kp+Mp),码长为Nu=Mu+Ku,联合校验矩阵记为Hu
(3)将P个子校验矩阵Hp和联合校验矩阵记为Hu以对角线的形式排列组合成全局校验矩阵Hglobal
所述方法在构造过程中,闪存控制器在编译码的同时统计闪存单元源误码率RBER,当源误码率低于源误码率阈值RBER_th时,分层依照子校验矩阵Hp译码;当RBER高于参数RBER_th时,依照Hglobal采取联合LDPC编码,在依照Hp分层编码后,进一步依照联合校验矩阵Hu编码。
2.根据权利要求1所述的适用于多层单元闪存的联合LDPC码的构造方法,其特征在于:步骤(1)具体包括以下步骤:
(11)构造基于伽罗华域GF(q)的元素{α-∞01,…,αq-2}的拉丁方阵W,其中α为GF(q)的素元;
(12)从W中提取互不相同的
Figure FDA0003890011810000011
Figure FDA0003890011810000012
列,记为行集合Rowp和列集合Colp,行、列集合的交集元素组成基础矩阵Bp;其中且不同子LDPC码必须选取W中完全不相同的列,即
Figure FDA0003890011810000013
(13)对Bp中元素进行CPM拓展生成Hp
3.根据权利要求1所述的适用于多层单元闪存的联合LDPC码的构造方法,其特征在于:步骤(2)具体包括以下步骤:
(21)从W中提取互不相同的
Figure FDA0003890011810000014
Figure FDA0003890011810000015
列,记为行集合Rowu和列集合Colu,行、列集合的交集元素组成基础矩阵Bu;其中且联合LDPC码必须选取W中和子LDPC码完全不相同的行,即
Figure FDA0003890011810000021
(22)对Bu中元素进行CPM拓展生成Hu
4.一种适用于多层单元闪存的联合LDPC码的译码装置,其特征在于:所述装置包含P个子译码器和一个联合译码器;所述装置的工作模式包括分层译码模式和联合译码模式,分层译码模式时装置所包含的子译码器装置分别译码,且联合译码器不工作,联合译码模式时装置所包含的子译码器结合联合译码器共同译码;两种工作模式包括按照先分层译码模式后联合译码模式的顺序执行,若分层译码在最大迭代次数内译码未成功,则进入联合译码模式;所述子译码器中变量节点更新模块,在分层译码模式中,变量节点的更新按照传统的按列分组的最小和译码算法更新;在联合译码模式中,变量节点更新需要结合联合校验LLR消息
Figure FDA0003890011810000022
并生成子校验LLR消息
Figure FDA0003890011810000023
公式表示为:
Figure FDA0003890011810000024
Qvc=Λv-Rcv
Figure FDA0003890011810000025
根据子校验矩阵Hp中满足的奇偶校验的比例,校验节点更新采取动态归一化或者动态偏移;对于多层单元闪存的某一层p∈P,动态归一化因子αp∈(0,1),子校验矩阵Hp满足校验的校验节点数为Mp′;
Figure FDA0003890011810000026
其中f(*)为可调节参数的递增函数,在数字电路中,用分段函数查找表的方式实现;其中v表示变量节点的序号,c表示校验节点的序号,N(v)表示根据校验矩阵H定义,变量节点v相邻的校验节点;设C2V消息和V2C消息分别为Rcv和Qvc,联合校验LLR消息和子校验LLR消息分别为
Figure FDA0003890011810000027
Figure FDA0003890011810000028
初始变量节点信息LLR为λv,更新后的变量节点信息判决信息为Λv
5.根据权利要求4所述的适用于多层单元闪存的联合LDPC码的译码装置,其特征在于:所述的子译码器包括逻辑部分和存储部分,通过按列分组的译码方式,在统一的译码单元中对不同层的数据页进行译码;所述逻辑部分包括C2V消息提取模块、移位和反向移位、变量节点更新模块、校验节点更新模块和奇偶校验模块;所述存储部分包括校验节点信息存储,变量节点信息存储,初始信息存储和校验矩阵存储。
6.根据权利要求4所述的适用于多层单元闪存的联合LDPC码的译码装置,其特征在于:所述联合译码器包括逻辑部分和存储部分,通过按列分组的译码方式,结合子译码器提供的子校验节点LLR信息、联合校验硬判决的消息完成联合所有层的数据页的联合LDPC译码;联合译码器中每个时钟周期同时处理对应P个分层数据页的校验节点和变量节点的信息更新。
7.根据权利要求6所述的适用于多层单元闪存的联合LDPC码的译码装置,其特征在于:所述存储部分包括联合校验节点信息存储,联合变量节点信息存储和联合校验矩阵存储。
8.根据权利要求6所述的适用于多层单元闪存的联合LDPC码的译码装置,其特征在于:所述逻辑部分包括联合C2V消息提取模块、移位和反向移位、联合变量节点更新模块、联合校验节点更新模块和联合奇偶校验模块;具体包括如下:
(a)联合C2V消息提取模块每个时钟周期从联合校验节点信息存储中生成P组,共P×z个C2V消息;
(b)联合校验节点更新模块,在一个时钟周期内,每个校验节点利用P个V2C消息进行校验节点更新;
(c)联合奇偶校验模块,在一个时钟周期内,每个联合译码的校验和由P个硬判决信息更新;
(d)联合变量节点更新模块,设对应第p层数据页的C2V消息和V2C消息分别为Qv(p)c和Rcv(p),输入子校验LLR消息和输出联合校验LLR消息分别为
Figure FDA0003890011810000031
Figure FDA0003890011810000032
变量节点更新公式表示如下:
Figure FDA0003890011810000033
Figure FDA0003890011810000034
CN201910302170.8A 2019-04-16 2019-04-16 多层单元闪存中联合ldpc码的构造方法及其译码装置 Active CN110071726B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910302170.8A CN110071726B (zh) 2019-04-16 2019-04-16 多层单元闪存中联合ldpc码的构造方法及其译码装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910302170.8A CN110071726B (zh) 2019-04-16 2019-04-16 多层单元闪存中联合ldpc码的构造方法及其译码装置

Publications (2)

Publication Number Publication Date
CN110071726A CN110071726A (zh) 2019-07-30
CN110071726B true CN110071726B (zh) 2023-02-17

Family

ID=67367793

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910302170.8A Active CN110071726B (zh) 2019-04-16 2019-04-16 多层单元闪存中联合ldpc码的构造方法及其译码装置

Country Status (1)

Country Link
CN (1) CN110071726B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110704332B (zh) * 2019-08-29 2021-11-09 深圳大普微电子科技有限公司 一种闪存介质优化方法及非易失性存储设备
CN110808742A (zh) * 2019-11-22 2020-02-18 南京大学 一种适用于5g ldpc码的高效译码器架构

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9015547B2 (en) * 2012-08-17 2015-04-21 Lsi Corporation Multi-level LDPC layered decoder with out-of-order processing
KR101775704B1 (ko) * 2014-05-21 2017-09-19 삼성전자주식회사 송신 장치 및 그의 인터리빙 방법
CN107124187B (zh) * 2017-05-05 2020-08-11 南京大学 一种应用于闪存的基于等差校验矩阵的ldpc码译码器

Also Published As

Publication number Publication date
CN110071726A (zh) 2019-07-30

Similar Documents

Publication Publication Date Title
CN104246706B (zh) 使用存储器特定奇偶校验矩阵的数据编码器和解码器
KR101438072B1 (ko) 소거 없는 플래시 메모리의 다중 프로그래밍
KR101753498B1 (ko) 신뢰도 데이터 업데이트
Cho et al. Block-wise concatenated BCH codes for NAND flash memories
Chen et al. Rate-adaptive protograph LDPC codes for multi-level-cell NAND flash memory
CN103888148A (zh) 一种动态阈值比特翻转的ldpc码硬判决译码方法
US20100223538A1 (en) Semiconductor memory apparatus and method of decoding coded data
CN104868925A (zh) 结构化ldpc码的编码方法、译码方法、编码装置和译码装置
WO2011121490A1 (en) Two -level bch codes for solid state storage devices
CN107124187B (zh) 一种应用于闪存的基于等差校验矩阵的ldpc码译码器
CN109087683B (zh) 一种NAND Flash固态存储自适应差错控制方法
US8194782B2 (en) Grouping bits interleaving apparatus and method thereof
KR20160090054A (ko) 플래시 메모리 시스템 및 그의 동작 방법
CN110071726B (zh) 多层单元闪存中联合ldpc码的构造方法及其译码装置
CN111833956A (zh) 错误校正电路和具有错误校正电路的存储器控制器
CN109935263B (zh) 非易失性存储器的编译码方法及存储系统
KR101913900B1 (ko) 조기 디코딩 종료 검출을 갖는 디코더
CN102725964A (zh) 一种编码方法、译码方法及编码装置、译码装置
KR20130055095A (ko) 연접 비씨에이치 부호, 복호 및 다계층 복호 회로 및 방법, 이를 이용한 플래쉬 메모리 장치의 오류 정정 회로 및 플래쉬 메모리 장치
CN110113058B (zh) 编译码方法、装置、设备及计算机可读存储介质
CN110098895B (zh) 基于变量节点动态分块更新的ldpc码译码方法
KR20140006444A (ko) 연접 비씨에이치 부호, 복호 및 다계층 복호 회로 및 방법, 이를 이용한 플래쉬 메모리 장치의 오류 정정 회로 및 플래쉬 메모리 장치
JP2021033530A (ja) メモリシステム
CN111446971A (zh) 一种基于共享子矩阵的自适应低密度奇偶校验码编码方法
CN107959500B (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