CN109936379A - 一种多码率ldpc码的构造方法及其解码装置 - Google Patents
一种多码率ldpc码的构造方法及其解码装置 Download PDFInfo
- Publication number
- CN109936379A CN109936379A CN201910066181.0A CN201910066181A CN109936379A CN 109936379 A CN109936379 A CN 109936379A CN 201910066181 A CN201910066181 A CN 201910066181A CN 109936379 A CN109936379 A CN 109936379A
- Authority
- CN
- China
- Prior art keywords
- matrix
- code rate
- check
- chinese character
- column
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 36
- 125000004122 cyclic group Chemical group 0.000 claims abstract description 47
- 238000010276 construction Methods 0.000 claims abstract description 24
- 239000011159 matrix material Substances 0.000 claims description 159
- 238000003860 storage Methods 0.000 claims description 56
- 238000012795 verification Methods 0.000 claims description 10
- 238000006073 displacement reaction Methods 0.000 claims description 5
- 238000009826 distribution Methods 0.000 claims description 5
- 238000000605 extraction Methods 0.000 claims description 4
- 230000007935 neutral effect Effects 0.000 claims description 3
- 238000005457 optimization Methods 0.000 claims description 3
- 230000000694 effects Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 7
- 238000010606 normalization Methods 0.000 description 7
- 238000012360 testing method Methods 0.000 description 7
- 238000012937 correction Methods 0.000 description 6
- 238000013461 design Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000003321 amplification Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000003199 nucleic acid amplification method Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- XEYLAWVXYZUVDD-UHFFFAOYSA-N 2-hydroxy-5-(2-methylprop-2-enoylamino)benzoic acid Chemical compound CC(=C)C(=O)NC1=CC=C(O)C(C(O)=O)=C1 XEYLAWVXYZUVDD-UHFFFAOYSA-N 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Landscapes
- Error Detection And Correction (AREA)
Abstract
本发明公开了一种多码率LDPC码的构造方法及其解码装置,本发明首先提出一种多码率LDPC码的构造方法,并基于构造的多码率LDPC码集合,提出了多码率LDPC码的解码装置。所述方法基于准循环LDPC的代数构造,并用带有保持调整的循环移位掩模来构造多码率LDPC码集合。解码装置利用构造QC‑LDPC码均一列重和循环移位的特性,在不同码率的解码之间最大程度了利用了硬件存储资源的复用,并完全复用了解码装置的计算逻辑资源。本发明应用于闪存结构中,且可以在闪存的不同使用寿命下自适应地适配码率,以达到提高闪存使用寿命和闪存读写速度的效果。
Description
技术领域
本发明属于数据存储技术,具体涉及一种多码率LDPC码的构造方法及其解码装置。
背景技术
闪存作为一种比传统磁盘存储方式更加稳定,数据读写更快速便捷的存储器件,已经渗入到日常生活中每个角落。为了满足日益增加的存储需求,闪存制造商不断缩减工艺尺寸,提出三维NAND存储技术,增加在单个闪存单元的信息比特数。随之而来的就是闪存的错误概率不断上升,传统的BCH纠错码已经不足以保证数据的安全。低密度奇偶校验码LDPC作为一种纠错能力逼近香农极限的纠错方式,正在逐渐取代BCH,成为新一代闪存控制器中纠错编码方式。
纠错编码的码率反映了纠错码的性能。码率越低,校验比特数相对越多,纠错能力越强。闪存中的原始比特错误概率(RawBitErrorRate,简写为RBER)是闪存单元数据可靠性的衡量标准。其随着闪存使用时间的增加、读写擦出次数(PEC)的累积而增长。闪存纠错单元中的LDPC码如果只使用一种码率,就必须用足够低的码率以保证整个使用寿命的数据可靠性,因此造成了存储空间和解码通过率上的浪费。通过自适应调整码率的方式可以有效的将LDPC码的码率和RBER动态的匹配。节省的存储空间作为闪存的Over-provisioning(OP)空间,降低闪存系统的写放大,提高闪存的寿命。
发明内容
发明目的:本发明的目的之一是提供一种多码率LDPC码的构造方法,第二目的是提供一种多码率LDPC码的解码装置,提高闪存和纠错编码的数据可靠性和装置或系统的使用寿命。
技术方案:一种多码率的LDPC码的构造方法,设所构造的p个多码率LDPC码的校验矩阵为:相对应的QC-LDPC基础矩阵为校验矩阵子矩阵大小为Q,则Mr=Q×mr,Nr=Q×nr,其中r∈{1,2,…,p}为码率参数;包括以下步骤:
(1)基于伽罗华域GF(q)中的元素{α-∞,α0,α1,…,αq-1},构造p个不同码长不同码率的基础矩阵;
(2)构造循环移位的掩模矩阵对所有多码率的基础矩阵通过掩模的方式改变列重分布P(dv)以及优化解码性能;
(3)校验矩阵Hm×n,由掩模处理后的基础矩阵通过循环移位单位矩阵(简写为CPM:Circulant Permutation Matrix)的替换得到,其中η为单位矩阵循环右移的移位值,αη(η∈{0,1,…,q-2})元素对应α-∞元素对应全零矩阵OQ×Q。
进一步的,所述步骤(1)中任意一个基础矩阵Bm×n中的元素bkl(0≤k<m,0≤l<n)都是GF(q)中的元素,且Bm×n中的任意两行和两列元素的交集构成的2×2子矩阵中至少有一个零元素或为非奇异矩阵,所述基础矩阵满足最小环大于等于6。
进一步的,所述步骤(2)包括设校验矩阵列重分布为P(dv),其中最大的列重为dv_max,其中任意一个掩模矩阵Zm×n=[zkl]0≤k<m,0≤l<n的构造方法包括以下步骤:
(21)掩模矩阵Zm×n的初始化:掩模矩阵首dv_max行全为‘0’元素和末尾m-dv_max行全为‘1’元素,公式表示如下:
(22)掩模矩阵Zm×n的循环移位值初始化:从Zm×m的第一列(l=0)开始,对掩模矩阵的每一列元素循环移位,循环移位值为Sl=l%m,(0≤l<n-1),其中%表示求余数运算;
(23)循环移位值的保持调整:从基础矩阵列序号{0,1,…,n-1}中随机选取h=(n%m)个保持调整列组集合C={l′1,l′2,…,l′h},其中0≤l′1<l′2<…<l′h<n-1,保持调整后的循环移位值为S′l=(l-num(C∩{0,1,…,l-1}))%m,其中num(*)为求集合中元素个数的运算;
(24)掩模矩阵Zm×n循环移位:对Zm×n=[zc0,zc1,…,zcn-1]的列zcl依照循环移位值S′l进行列循环向上或向下移位,得到保持调整后的掩模矩阵Z′m×n=[z′kl]0≤k<m,0≤l<n,其公式表示如下:
(25)掩模处理,以构造对基础矩阵Bm×n中的元素bkl包括如下两种情况:
如果z′kl=1,则如果z′kl=0,则
更进一步的,所述方法构造的多码率LDPC码集合中的所有码的校验矩阵中,列重的最大值dv_max保持统一。
更进一步的,多码率集合中所有校验矩阵中的非全零子矩阵集中处在一个循环移位的结构中;且在相邻两个列组中,CPM的行组序数只有一个是不相同的。对于任意校验矩阵中列组l,其非零CPM所在的行组序号和右相邻列组的行组序号相差为1,公式表示为
所述循环移位结构中存在保持调整列组集合C;对于保持调整列组集合中的校验矩阵的列组l∈C,其非全零CPM所在的行组序号和右相邻列组的行组序号相同。在经过保持调整的校验矩阵的循环移位结构中,首列组(l=0)和末列组(l=n-1)的CPM的行组序数只有一个是不相同的,即该循环移位的结构是首尾相接的。
一种多码率LDPC码的解码装置,所述装置包括逻辑部分和存储部分,通过按列分块的解码方式,在统一的解码单元中对多码率的码字进行可配置的解码;
所述逻辑部分包括C2V消息提取模块、移位和反向移位、变量节点更新模块、校验节点更新模块和奇偶校验模块;
所述存储部分包括校验节点信息存储,变量节点信息存储,初始信息存储和校验矩阵存储。
进一步的,所述装置包含使用动态码率参数调整解码装置的码率模式,在多码率的LDPC之间切换,不同码率的LDPC码的校验矩阵信息存储在校验矩阵存储的不同地址空间上;不同码率LDPC码的首地址由码率参数r进行索引,以进行码率的动态切换。
进一步的,所述装置构造的多码率LDPC码集合中的任意码率,信息更新的硬件并行度相同,为校验矩阵子矩阵大小Q和最大列重dv_max的乘积。
更进一步的,所述校验节点信息存储由校验信息寄存器和校验信息SRAM的混合存储组成,在解码过程中,寄存器负责存储每列组中非零矩阵所在的行组所对应的校验节点的解码中间信息;SRAM负责存储每列组中的零矩阵所在的行组所对应的校验节点的解码中间信息;在解码的过程中,依照校验矩阵的循环移位结构,寄存器和SRAM每个时钟周期交换对应于一个列组的校验节点信息;当解码列组序号g属于保持调整列组集合时(即g∈C),所述校验信息寄存器和校验信息SRAM的信息交换暂停一个时钟周期,即校验信息寄存器和校验信息SRAM中所缓存信息对应的行组序数不变。
有益效果:与现有技术相比,本发明显著的效果在于:
第一、所述构造方法结合了LDPC的代数构造法和掩模技术,包括提出一种构造多码率LDPC码的方法;所构造的多码率LDPC码集合构成了一个从强到弱的解码性能层次,都具有对应码率中优异的解码性能。构造的多码率LDPC码集合的校验矩阵具有相同的列重分布P(dv)和保持调整后首尾相接的循环移位结构,有利于多码率解码装置的设计;
第二、本发明针对构造的多码率LDPC码提出的多码率解码装置充分利用多码率校验矩阵的特性,最大程度地复用了单码率解码装置的硬件资源,且采用的按列分组的解码方式拥有极高的解码通过率。保持调整后的首尾相接的循环移位结构的多码率校验矩阵,保证了在解码装置硬件中不会出现流水线停止,保证了极高的解码通过率;
第三、本发明适用于在闪存中通过动态地调整纠错码码率,匹配不同使用寿命下闪存的原始错误比特误码率,以达到提高使用寿命早期读写通过率,增加使用寿命的目的。
附图说明
图1是实施例中多码率QC-LDPC码的构造方法流程图;
图2是实施例中多码率QC-LDPC码的基础矩阵构造的示意图;
图3是多码率QC-LDPC码解码装置的结构示意图;
图4是本发明实施例中校验节点存储的数据流示意图;
图5是本发明实施例中校验节点存储的硬件结构示意图;
图6是实施例中多码率QC-LDPC码的纠错性能图;
图7是实施例中多码率QC-LDPC码的通过率和平均迭代次数对比图。
具体实施方式
为了详细的说明本发明所公开的技术方案,下面结合说明书附图及具体实施例做进一步的阐述。
实施例1
首先,本发明所述方法适用于闪存技术,具体对于一种适用于闪存的多码率的QC-LDPC码的构造方法,具体如下:
(1)设所想要构造的p个多码率LDPC码的校验矩阵为:
相对应的QC-LDPC基础矩阵如下:
校验矩阵子矩阵大小为Q,则Mr=Q×mr,Nr=Q×nr,其中r∈{0,1,…p-1}为码率参数。
构造方式主要如下:
基于伽罗华域GF(q)中的元素{α-∞,α0,α1,…,αq-1},构造p个不同码长不同码率的基础矩阵对其中任意一个基础矩阵Bm×n的构造;其中任意一个基础矩阵Bm×n的构造,基础矩阵中的元素Bm×n=[bkl]0≤k<m,0≤l<n都是GF(q)中的元素,且Bm×n中的任意两行和两列元素的交集构成的2×2子矩阵中至少有一个零元素或为非奇异矩阵(即的行列式不等于0)。在此条件下的基础矩阵满足最小环大于等于6。典型的构造方式可以是基于拉丁方阵的构造方式,或者是基于PEG(Progressive EdgeGrowth)算法构造的QC-LDPC的基础矩阵。
(2)构造循环移位的掩模矩阵利用掩模的方式改变校验矩阵列重分布P(dv)以及优化解码性能。
(21)掩模矩阵Zm×n的初始:掩模矩阵首dv_max行全为‘0’元素和末尾m-dv_max行全为‘1’元素,公式表示为:
(22)掩模矩阵Zm×n的循环移位值。从Zm×n的第一列(l=0)开始,对掩模矩阵的每一列元素循环移位,循环移位值为Sl=l%m,(0≤l<n-1)。其中%表示求余数运算。
(23)循环移位值的保持调整。从基础矩阵列序号{0,1,…,n-1}中随机选取h=(n%m)个保持调整列组集合C={l′1,l′2,…,l′h},其中0≤l′1<l′2<…<l′h<n-1。保持调整后的循环移位值S′l=(l-num(C∩{0,1,…,l-1}))%m,其中num(*)为求集合中元素个数的运算
(24)掩模矩阵Zm×n循环移位。对Zm×n=[zc0,zc1,…,zcn-1]的列向量zcl依照循环移位值S′l进行列循环向上(或向下)移位,得到保持调整后的掩模矩阵Z′m×n=[z′kl]0≤k<m,0≤l<n,其公式表示为:
对基础矩阵Bm×n=[bkl]m×n进行掩模处理得到如果z′kl=1则,如果z′kl=0,则
(3)校验矩阵Hm×n可以由基础矩阵通过循环移位单位矩阵(简写为CPM:CirculantPermutation Matrix)的替换得到,其中η为单位矩阵循环右移的移位值,αη(η∈{0,1,…,q-2})元素对应α-∞元素对应全零矩阵OQ×Q。
对于一种适用于上述所构造的多码率QC-LDPC码的解码装置,该多码率的LDPC解码装置基于按列分组的LDPC解码算法。该算法以QC-LDPC的校验矩阵的列组为单位,顺序地更新校验节点和变量节点的消息。
解码装置包括由逻辑部分和存储部分构成,具体如下:
(一)存储部分
(1a)校验节点信息存储,用双口随机读写存储器实现(dual-portRAM),用于存储和校验节点更新相关的信息,包括校验节点的最小值信息,(其包括两个最小绝对值和最小绝对值所在列组序号min1,min2,idx1,idx2)、全局符号以及校验和。校验校验节点信息存储的一个字长对应Q个校验节点。校验节点信息存储由寄存器和SRAM的混合存储组成。解码过程中寄存器负责存储每列组中非零矩阵的行组所对应的校验节点(称为活跃校验节点)的解码中间信息。SRAM负责存储每列组中的零矩阵的行组所对应的校验节点(称为非活跃校验节点)的解码中间信息。SRAM的深度为dram=mmax-dv(mmax为多码率集合中校验矩阵的行组数最大值)。在解码的过程中,依照校验矩阵的循环移位结构,寄存器和SRAM每个时钟周期交换对应于一个列组的校验节点信息。按列分组解码过程中,当前解码列组序号g属于保持列集合(即g∈C)时,校验信息寄存器和校验信息SRAM的信息交换暂停一个时钟周期。
(1b)变量节点信息存储,用于存储和变量节点更新相关的信息,包括校验节点到变量节点信息(V2C消息)的符号和变量节点的硬判决信息。由于本发明中构造的多码率LDPC码集合的列重dv相同。变量节点信息存储的字长为Q×(dv+1),深度为nmax=max{n0,n1,…,np-1}(多码率集合中校验矩阵列组数最大值)。
(1c)初始信息存储,用于存储读取的闪存单元的初始LLR信息。
(1d)校验矩阵存储,用于存储构造的多码率校验矩阵集合的信息。字长为dv×log2Q。不同码率的LDPC码的校验矩阵信息(即基础矩阵信息)存储在校验矩阵存储的不同地址空间上。不同码率LDPC码的首地址由码率参数r进行索引,以进行码率的动态切换。
(二)逻辑部分
(2a)C2V消息提取模块,用于从校验信息存储中提取出C2V消息。
(2b)移位和反向移位,用于根据QC-LDPC的校验矩阵,将C2V消息对齐到变量节点以及将V2C消息对齐到校验节点。
(2c)变量节点更新模块,用于更新V2C消息和后验概率消息。
(2d)校验节点更新模块,用于更新校验节点信息存储的最小值消息和全局符号。
(2e)奇偶校验模块,用于依据校验矩阵进行码字奇偶校验的判决。
对于所构造的多码率LDPC码集合中的任意码率,信息更新的硬件并行度相同,为校验矩阵子矩阵大小Q和最大列重dv_max的乘积。由于所构造的多码率LDPC码的最大列重dv_max相同,且本发明中的解码装置采用了按列分组的归一化最小和LDPC解码算法,在每一列组的信息更新中,稀疏的校验矩阵中的‘1’元素相同。这就使得每一个时钟周期的信息更新量时相同的,因此可以采用统一的逻辑部分的硬件设计。
低密度奇偶校验码LDPC作为一种纠错能力逼近香农极限的纠错方式,正在逐渐取代BCH,成为新一代闪存控制器中纠错编码方式。最传统的LDPC的解码算法是置信传播算法(Belief-Propagation Algorithm,BP算法),但是该算法中的校验节点运算使用了非线性的双曲正切函数(tanh)在硬件实现上较为复杂。因此,最小和算法(Min-Sum Algorithm,MSA)以及其衍生算法归一化最小和算法(Normalized Min-Sum Algorithm,NMSA),化简了校验节点的消息更新公式,并且在纠错性能上损失极小。LDPC解码依据其调度方式,分为flooding,layered和shuffled三种解码调度。其中,shuffled解码调度也称作按列分组的LDPC解码,最适用于在闪存中长码长、高码率的使用场景。因此我们提出的闪存中的多码率LDPC解决方案就是基于按列分组的归一化最小和算法。
实施例2
首先闪存构建的多码率QC-LDPC,码率有6种,范围为0.867~0.946,信息位固定为K=26520。基于伽罗华域GF(257)来进行QC-LDPC的构造,校验矩阵中的CPM大小Q=255。
步骤1、构造基础矩阵
构造6个多码率的基础矩阵B16×120,B14×118,B12×116,B10×114,B8×112,B6×110。在本实施例中采用从拉丁方阵中截取元素的方式。在拉丁方阵L256×256中任意一列、任意一行都是由GF(257)中的不相同元素构成。在L256×256中截取左上角首16行和首120列元素得到B16×120。依照同样的方式得到其他基础矩阵。
步骤2、构造掩模矩阵。
本发明所述的掩模矩阵可以使得多码率的校验矩阵集合拥有统一的最大列重dv_max。特别的,经过实验,较优的最大列重选择为dv_max=6。以集合中中间码率r=0.912为例,如图2所示,分为以下几个步骤。
2.1、初始化掩模矩阵Z10×114。掩模矩阵上6行全为‘0’元素,下4行全为‘1’元素。
2.2、初始化掩模矩阵循环移位值。从Z10×114的第一列开始,移位值为Sl=l%10,(0≤l<113),其中%表示求余数运算。
2.3、循环移位值的保持调整。从基础矩阵中列序号{0,1,…,113}中随机选取h=113%10=3个随机的保持调整列组集合C={1,3,112}。根据S′l=(l-num(C∩{0,1,…,l-1}))%10,更新移位值S′l,其中num(*)为求集合中元素个数的运算。
2.4、对初始化的掩模矩阵Z10×114循环移位。对Z10×114=[zc0,zc1,…,zcn-1]的列向量zcl依照循环移位值S′l进行列循环向下移位,得到保持调整后的掩模矩阵Z′m×n。
2.5、进一步随机掩模。按照一定的概率对掩模矩阵中的‘0’元素置‘1’。
2.6、对基础矩阵B10×114=[bkl]10×114进行掩模处理得到:
如果z′kl=1则,如果z′kl=0,则
2.7、校验矩阵H10Q×114Q可以由基础矩阵B10×114通过循环移位单位矩阵(简写为CPM:Circulant Permutation Matrix)的替换得到,其中η为移位值。αη(η∈{0,1,…,q-2})元素对应α-∞元素(图2基础矩阵中表示为‘-’)对应全零矩阵OQ×Q,在本实施例中CPM块大小为Q=256。
如上述方式构造的多码率LDPC码的具有明显的特征,具体体现在三方面。
A、统一列重特性:构造的多码率LDPC码集合中的所有码的列重最大值是统一的,在本实施例中为dv_max=6。
B、循环移位特性:多码率集合中所有校验矩阵中的非全零子矩阵(即CPM)集中在一个循环移位的结构中。在相邻两个列组中,CPM的行组序数只有一个是不相同的。对于任意校验矩阵中列组l,其非零CPM所在的行组序号和右相邻列组的行组序号相差为1,公式表示为
C、保持调整特性:循环移位结构中,存在保持调整的列组集合(保持集合C)。对于保持调整列组集合中的校验矩阵的列组l∈C,其非全零CPM所在的行组序号和右相邻列组的行组序号相同。在经过保持调整的校验矩阵的循环移位结构中,首列组(l=0)和末列组(l=n-1)的CPM的行组序数只有一个是不相同的,即该循环移位的结构是首尾相接的。
构造的多码率LDPC码的两个特性在LDPC解码装置的中是有益处的。统一的列重使得按列分组的解码算法下,不同码率间的解码运算并行度相同,方便了统一的解码装置实现。循环移位的特性可以在校验节点信息存储中得到应用,通过混合存储的方式减小校验节点信息存储的带宽需求。
本发明中的多码率LDPC码的解码装置是基于按列分组的归一化最小和算法的硬件实现。
设和分别为变量节点VNv(v∈{0,1,…N})和校验节点CNc(c∈{0,1,…,M})中间传递的V2C和C2V消息。为VNv的初始LLR信息,即对闪存读入的数据x为0或1的概率比的对数。为和CNc连接的变量节点,M(v)为同VNv连接的校验节点。在shuffled调度的归一化最小和算法中,N个变量节点被分为G个列组,其中第g个组Ng(g∈{0,1,…,G-1})包含个变量节点,在本实施例中,G等于基础矩阵的最大列数n,每一组包含。设为Ng左边的列组,为Ng右边的列组。在每一次迭代中,G个列组的依次序更新,对于第g组的变量节点VNv,以及其相邻的校验节点,CNc,c∈M(v)。对应的消息更新可以用公式概括为:
变量节点更新:
校验节点更新
本发明中的多码率解码装置改进于传统的按列分组的归一化最小和算法的硬件实现。其中校验节点的更新通过实时更新每一个时钟周期的最小值队列来简化。如图3所示是该多码率解码装置的示意图,其包括逻辑和存储两个部分。其中存储部分包括:
校验节点信息存储,用双口随机读写存储器实现(dual-portRAM)。用于存储和校验节点更新相关的信息,包括校验节点的最小值队列信息(包括两个最小绝对值和最小绝对值所在列组序号min1,min2,idx1,idx2)、全局符号以及校验和。校验校验节点信息存储的字长对应Q个校验节点信息,深度为dram=10。
变量节点信息存储,用双口随机读写存储器实现(dual-portRAM)。用于存储和变量节点更新相关的信息,包括校验节点到变量节点信息(V2C消息)的符号和变量节点的硬判决信息。由于本发明中构造的多码率LDPC码集合的列重dv相同。变量节点信息存储的字长为Q×(dv_max+1),深度为nmax=120(即多码率集合中校验矩阵列组数最大值)。
初始信息存储,用单口随机读写存储器实现(single-port RAM)用于存储读取的闪存单元的初始LLR信息。本发明实施例中,每一个变量节点存储2-bit软信息。字长为Q×2,深度为nmax=120
校验矩阵存储,用单口只读存储器实现(single-port ROM)。用于存储构造的多码率校验矩阵集合的信息。字长为dv×log2Q,深度为∑p′∈{1,2,…,P}np′
逻辑部分包括
C2V消息提取模块,用于从校验信息存储中提取出C2V消息。
移位和反向移位,用于根据QC-LDPC的校验矩阵,将C2V消息对齐到变量节点以及将V2C消息对齐到校验节点。
变量节点更新模块,用于更新V2C消息(公式-1)和后验概率消息(公式-2)。
校验节点更新模块,用于更新校验节点信息存储的最小值消息和全局符号(公式-3)。
奇偶校验模块,用于依据校验矩阵进行码字奇偶校验的判决。
在本发明中对传统按列分组的归一化最小和算法的传统硬件架构的改进在于:
对于所构造的多码率LDPC码集合中所有码率的码,信息更新的硬件并行度相同,为校验矩阵子矩阵大小Q和最大列重dv_max的乘积。由于所构造的多码率LDPC码的最大列重dv_max相同,且本发明中的解码装置采用了按列分组的归一化最小和LDPC解码算法,在每一列组的信息更新中,稀疏的校验矩阵中的‘1’元素相同。这就使得每一个时钟周期的信息更新量时相同的,因此可以采用统一的逻辑部分的硬件设计。
多码率LDPC解码装置中的校验矩阵存储,存储了p个码率的校验矩阵信息。在本实施例中,校验矩阵子矩阵大小Q=256。相应地,基础矩阵中移位值可以用8bit整数来表示。在多码率的校验矩阵存储中,将每个码率的校验矩阵对应的基础矩阵的每一列存储为一个字,字长为dv×log2Q=48bit。码率0.867的LDPC码存储于校验矩阵存储的地址空间0~119,其他的5个码率依次存储在剩下的地址空间。多码率解码装置的码率参数r(r∈{0,1,…,5}),通过查找表的方式来索引每个码率的首地址。
校验节点信息存储由寄存器和SRAM的混合存储组成。如图4所示,解码过程中寄存器负责存储每列组中非零矩阵的行组所对应的校验节点(称为活跃校验节点)的解码中间信息。SRAM负责存储每列组中的零矩阵的行组所对应的校验节点(称为非活跃校验节点)的解码中间信息。由于校验矩阵的循环移位特性,活跃校验节点中最上方的一个行组的校验节点信息将不参与下一个列组(g=g+1)的信息更新。对应的信息将会从寄存器写入SRAM。同时,活跃校验节点下方额外的一个行组的校验节点信息在下一个列组的更新中将会是活跃的。对应的信息将会从SRAM读出到寄存器。即寄存器和SRAM每个时钟周期交换对应于一个列组的校验节点信息。
保持调整是多码率码的构造和解码装置硬件的协同设计,其目的是为了防止硬件的流水线停滞以提高通过率。如图4所示,解码装置的每一次迭代的最后一个列组的的行组序号随着码率的变化是不同的,而在本实施例中第一个列组的行序号总是0~5。因此需要额外的时钟周期,将寄存器和SRAM中校验节点信息进行交换。所提出的保持调整,通过在校验矩阵的循环移位结构中暂时停止特定个数列组的循环移位,使得校验矩阵中的循环移位结构首尾相接,从而达到消除流水线停滞提高通过率的目的。图5给出了带有保持调整的校验节点混合存储的示意图。保持信号可以存储在校验矩阵存储中。保持调整的功能通过一组由保持信号片选的多路选择器来实现,当解码装置更新非保持列组的消息时,信息的更新按照图4中实线的标注。当解码装置更新保持列组的消息时(g∈C)消息更新如图4中虚线标注。
FPGA平台上实现的该多码率解码装置,并通过误码率测试得出的多码率QC-LDPC的性能曲线如图6所示。从图中可以得出,所构造的多码率LDPC码的纠错性能曲线均匀地分布在5×10-3~1.4×10-2的原始误比特率(RBER)区间上。对所有码率的LDPC码,错误帧率(FER)降至10-9量级时依然没有可见的错误平底现象(Error-floor)。因此,构造的多码率LDPC码可以在减少寿命初期的校验位需求的同时,保障闪存中的数据在闪存寿命的各个时期的数据完整。节省出来的校验位,利用于闪存控制中的Over-provisioning,可以减少闪存的写放大以提高闪存的使用寿命。
除了提高闪存的使用寿命之外,提出的该多码率构造方法和解码装置,还可以提高在使用寿命初期的读写速度(通过率)。如图7所示为基于FPGA平台的解码通过率以及平均迭代次数对RBER的测试结果,本实施例中的多码率LDPC能在使用寿命的初期达到更高的通过率。
Claims (10)
1.一种多码率的LDPC码的构造方法,其特征在于:设所构造的p个多码率LDPC码的校验矩阵为:相对应的QC-LDPC基础矩阵为校验矩阵子矩阵大小为Q,则Mr=Q×mr,Nr=Q×nr,其中r∈{1,2,…,p}为码率参数;包括以下步骤:
(1)基于伽罗华域GF(q)中的元素{α-∞,α0,α1,…,αq-1},构造p个不同码长不同码率的基础矩阵;
(2)构造循环移位的掩模矩阵对所有多码率的基础矩阵通过掩模的方式改变列重分布P(dv)以及优化解码性能;
(3)校验矩阵Hm×n由掩模处理后的基础矩阵通过循环移位单位矩阵替换得到,其中η为单位矩阵循环右移的移位值,αη(η∈{0,1,…,q-2})元素对应α-∞元素对应全零矩阵OQ×Q。
2.根据权利要求1所述的多码率的LDPC码的构造方法,其特征在于:所述步骤(1)中任意一个基础矩阵Bm×n中的元素bkl(0≤k<m,0≤l<n)都是GF(q)中的元素,且Bm×n中的任意两行和两列元素的交集构成的2×2子矩阵中至少有一个零元素或为非奇异矩阵,所述基础矩阵满足最小环大于等于6。
3.根据权利要求1所述的多码率的LDPC码的构造方法,其特征在于:所述步骤(2)包括设校验矩阵列重分布为P(dv),其中最大的列重为dv_max,其中任意一个掩模矩阵Zm×n=[zkl]0≤k<m,0≤l<n的构造方法包括以下步骤:
(21)掩模矩阵Zm×n的初始化:掩模矩阵首dv_max行全为‘0’元素和末尾m-dv_max行全为‘1’元素,公式表示如下:
(22)掩模矩阵Zm×n的循环移位值初始化:从Zm×n的第一列(l=0)开始,对掩模矩阵的每一列元素循环移位,循环移位值为Sl=l%m,(0≤l<n-1),其中%表示求余数运算;
(23)循环移位值的保持调整:从基础矩阵列序号{0,1,…,n-1}中随机选取h=(n%m)个保持调整列组集合C={l′1,l′2,…,l′h},其中0≤l′1<l′2<…<l′h<n-1,保持调整后的循环移位值为S′l=(l-num(C∩{0,1,…,l-1}))%m,其中num(*)为求集合中元素个数的运算;
(24)掩模矩阵Zm×n循环移位:对Zm×n=[zc0,zc1,…,zcn-1]的列向量zcl依照循环移位值S′l进行列循环向上或向下移位,得到保持调整后的掩模矩阵Z′m×n=[z′kl]0≤k<m,0≤l<n,其公式表示如下:
(25)掩模处理,构造对基础矩阵Bm×n中的元素bkl包括如下两种情况:
如果z′kl=1,则如果z′kl=0,则
4.根据权利要求1所述的多码率的LDPC码的构造方法,其特征在于:所述方法构造的多码率LDPC码集合中的所有码的校验矩阵中,列重的最大值dv_max保持统一。
5.根据权利要求1所述的多码率的LDPC码的构造方法,其特征在于:多码率集合中所有校验矩阵中的非全零子矩阵集中处在一个循环移位的结构中;且在相邻两个列组中,循环移位单位矩阵的行组序数只有一个是不相同的;对于任意校验矩阵中列组l,其非零CPM所在的行组序号和右相邻列组的行组序号相差1,公式表示为:
6.根据权利要求5所述的多码率LDPC码的构造方法,其特征在于:所述循环移位结构中存在保持调整列组集合C;对于保持调整列组集合中的校验矩阵的列组l,l∈C,其非全零CPM所在的行组序号和右相邻列组的行组序号相同;在经过保持调整的校验矩阵的循环移位结构中,首列组和末列组的非全零CPM所在的行组序数只有一个是不相同的,该循环移位的结构是首尾相接的。
7.一种多码率LDPC码的解码装置,其特征在于:所述装置包括逻辑部分和存储部分,通过按列分块的解码方式,在统一的解码单元中对多码率的码字进行可配置的解码;
所述逻辑部分包括C2V消息提取模块、移位和反向移位、变量节点更新模块、校验节点更新模块和奇偶校验模块;
所述存储部分包括校验节点信息存储,变量节点信息存储,初始信息存储和校验矩阵存储。
8.如权利要求7所述的多码率LDPC码的解码装置,其特征在于:所述装置包含使用动态码率参数调整解码装置的码率模式,在多码率的LDPC之间切换,不同码率的LDPC码的校验矩阵信息存储在校验矩阵存储的不同地址空间上;不同码率LDPC码的首地址由码率参数r进行索引,以进行码率的动态切换。
9.如权利要求7所述的多码率LDPC码的解码装置,其特征在于:所述装置构造的多码率LDPC码集合中的任意码率,信息更新的硬件并行度相同,为校验矩阵子矩阵大小Q和最大列重dv_max的乘积。
10.如权利要求7所述的多码率LDPC码的解码装置,其特征在于:所述校验节点信息存储由校验信息寄存器和校验信息SRAM的混合存储组成,在解码过程中,寄存器负责存储每列组中非零矩阵所在的行组所对应的校验节点的解码中间信息;SRAM负责存储每列组中的零矩阵所在的行组所对应的校验节点的解码中间信息;依照校验矩阵的循环移位结构,寄存器和SRAM每个时钟周期交换对应于一个列组的校验节点信息;当解码列组序号g属于保持调整列组集合时,所述校验信息寄存器和校验信息SRAM的信息交换暂停一个时钟周期,即校验信息寄存器和校验信息SRAM中所缓存信息对应的行组序数不变。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910066181.0A CN109936379B (zh) | 2019-01-24 | 2019-01-24 | 一种多码率ldpc码的构造方法及其解码装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910066181.0A CN109936379B (zh) | 2019-01-24 | 2019-01-24 | 一种多码率ldpc码的构造方法及其解码装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109936379A true CN109936379A (zh) | 2019-06-25 |
CN109936379B CN109936379B (zh) | 2021-07-09 |
Family
ID=66985135
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910066181.0A Active CN109936379B (zh) | 2019-01-24 | 2019-01-24 | 一种多码率ldpc码的构造方法及其解码装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109936379B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110611510A (zh) * | 2019-09-17 | 2019-12-24 | 天地信息网络研究院(安徽)有限公司 | 一种二元ldpc短码构造方法及其构造装置、终端、存储介质 |
US11309915B1 (en) | 2019-07-11 | 2022-04-19 | Arrowhead Center, Inc. | Efficient implementation of a threshold modified min-sum algorithm for low-density parity-check decoders |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1568577A (zh) * | 2002-08-06 | 2005-01-19 | 三星电子株式会社 | 特播解码装置和方法 |
US20050283707A1 (en) * | 2004-06-22 | 2005-12-22 | Eran Sharon | LDPC decoder for decoding a low-density parity check (LDPC) codewords |
US20100088573A1 (en) * | 2008-10-07 | 2010-04-08 | Qualcomm Incorporated | Method and apparatus for high speed structured multi rate low density parity check codes |
US20100281328A1 (en) * | 2009-04-29 | 2010-11-04 | Ismail Lakkis | High speed low density parity check codes encoding and decoding |
CN102780495A (zh) * | 2012-08-23 | 2012-11-14 | 苏州大学 | 一种数据编码及解码方法 |
CN105577194A (zh) * | 2015-12-22 | 2016-05-11 | 西安电子科技大学 | 码长固定的多码率低密度校验ldpc码构造方法 |
CN107124187A (zh) * | 2017-05-05 | 2017-09-01 | 南京大学 | 一种应用于闪存的基于等差校验矩阵的ldpc码译码器 |
US20180013446A1 (en) * | 2016-07-08 | 2018-01-11 | Maxlinear, Inc. | Method and system for ldpc decoding |
CN108023673A (zh) * | 2016-11-04 | 2018-05-11 | 清华大学 | 一种多码率多码长ldpc码的构造及编码方法 |
WO2018082290A1 (en) * | 2016-11-03 | 2018-05-11 | Huawei Technologies Co., Ltd. | Method and apparatus for encoding and decoding ldpc codes |
-
2019
- 2019-01-24 CN CN201910066181.0A patent/CN109936379B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1568577A (zh) * | 2002-08-06 | 2005-01-19 | 三星电子株式会社 | 特播解码装置和方法 |
US20050283707A1 (en) * | 2004-06-22 | 2005-12-22 | Eran Sharon | LDPC decoder for decoding a low-density parity check (LDPC) codewords |
US20100088573A1 (en) * | 2008-10-07 | 2010-04-08 | Qualcomm Incorporated | Method and apparatus for high speed structured multi rate low density parity check codes |
US20100281328A1 (en) * | 2009-04-29 | 2010-11-04 | Ismail Lakkis | High speed low density parity check codes encoding and decoding |
CN102780495A (zh) * | 2012-08-23 | 2012-11-14 | 苏州大学 | 一种数据编码及解码方法 |
CN105577194A (zh) * | 2015-12-22 | 2016-05-11 | 西安电子科技大学 | 码长固定的多码率低密度校验ldpc码构造方法 |
US20180013446A1 (en) * | 2016-07-08 | 2018-01-11 | Maxlinear, Inc. | Method and system for ldpc decoding |
WO2018082290A1 (en) * | 2016-11-03 | 2018-05-11 | Huawei Technologies Co., Ltd. | Method and apparatus for encoding and decoding ldpc codes |
CN108023673A (zh) * | 2016-11-04 | 2018-05-11 | 清华大学 | 一种多码率多码长ldpc码的构造及编码方法 |
CN107124187A (zh) * | 2017-05-05 | 2017-09-01 | 南京大学 | 一种应用于闪存的基于等差校验矩阵的ldpc码译码器 |
Non-Patent Citations (3)
Title |
---|
MICHAELRAJ KINGSTON ROBERTS等: "An energy efficient multi-rate QC-LDPC decoder", 《2017 INTERNATIONAL CONFERENCE ON TECHNOLOGICAL ADVANCEMENTS IN POWER AND ENERGY ( TAP ENERGY)》 * |
徐斌等: "低存储量的多码率QC-LDPC码译码器的研究", 《通信技术》 * |
沙金等: "A low complexity LDPC-BCH concatenated decoder for NAND flash memory", 《IEICE ELECTRONICS EXPRESS》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11309915B1 (en) | 2019-07-11 | 2022-04-19 | Arrowhead Center, Inc. | Efficient implementation of a threshold modified min-sum algorithm for low-density parity-check decoders |
US11962324B1 (en) | 2019-07-11 | 2024-04-16 | Arrowhead Center, Inc. | Threshold-based min-sum algorithm to lower the error floors of quantized low-density parity-check decoders |
CN110611510A (zh) * | 2019-09-17 | 2019-12-24 | 天地信息网络研究院(安徽)有限公司 | 一种二元ldpc短码构造方法及其构造装置、终端、存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109936379B (zh) | 2021-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8566667B2 (en) | Low density parity check code decoding system and method | |
EP3457575A1 (en) | Encoding method and device and decoding method and device for structured ldpc | |
US10879929B2 (en) | LDPC decoding method | |
US20190068224A1 (en) | Method and apparatus for data processing with structured ldpc codes | |
Ho et al. | A 520k (18900, 17010) array dispersion LDPC decoder architectures for NAND flash memory | |
US9075738B2 (en) | Efficient LDPC codes | |
US10298263B2 (en) | Refresh, run, aggregate decoder recovery | |
US20110252294A1 (en) | Implementation of ldpc selective decoding scheduling | |
CN101800559B (zh) | 一种基于tdmp的高速可配置qc-ldpc码解码器 | |
JP2007208985A (ja) | ノードメモリ基盤のldpcデコーダ及び復号方法 | |
WO2009009950A1 (fr) | Décodeur de code qc-ldpc et procédé de décodage correspondant | |
CN109936379A (zh) | 一种多码率ldpc码的构造方法及其解码装置 | |
US20120246536A1 (en) | Ldpc selective decoding scheduling using a cost function | |
CN110830050B (zh) | 一种ldpc译码方法、系统、电子设备及存储介质 | |
CN107632903B (zh) | 低密度奇偶校验解码器、包括其的存储设备和方法 | |
CN102957436B (zh) | 一种低密度奇偶校验码译码装置和译码方法 | |
EP3876424A1 (en) | Decoding method, decoding device, and decoder | |
KR102543059B1 (ko) | 저밀도 패리티 체크 코드의 디코딩 방법, 이를 수행하는 디코더 및 시스템 | |
CN106027069A (zh) | 一种循环切换的混合加权比特翻转ldpc译码方法 | |
CN107404323A (zh) | 一种基于交错行列消息传递的ldpc码改进译码算法 | |
CN110808742A (zh) | 一种适用于5g ldpc码的高效译码器架构 | |
Romero et al. | Sequential decoding of non-binary LDPC codes on graphics processing units | |
CN113055025B (zh) | 可重构的极化码与低密度奇偶校验码译码器 | |
CN110098895B (zh) | 基于变量节点动态分块更新的ldpc码译码方法 | |
Li et al. | A memory efficient parallel layered QC-LDPC decoder for CMMB systems |
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 | ||
CB02 | Change of applicant information |
Address after: 210008 No. 22, Hankou Road, Gulou District, Jiangsu, Nanjing Applicant after: NANJING University Address before: 210023 163 Xianlin Road, Qixia District, Nanjing, Jiangsu Applicant before: NANJING University |
|
CB02 | Change of applicant information |