CN112350738A - 基于比特翻转算法加速软译码的联合译码方法及*** - Google Patents

基于比特翻转算法加速软译码的联合译码方法及*** Download PDF

Info

Publication number
CN112350738A
CN112350738A CN202011051282.XA CN202011051282A CN112350738A CN 112350738 A CN112350738 A CN 112350738A CN 202011051282 A CN202011051282 A CN 202011051282A CN 112350738 A CN112350738 A CN 112350738A
Authority
CN
China
Prior art keywords
decoding
matrix
check
information
algorithm
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
CN202011051282.XA
Other languages
English (en)
Other versions
CN112350738B (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.)
Southwest Jiaotong University
Original Assignee
Southwest Jiaotong 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 Southwest Jiaotong University filed Critical Southwest Jiaotong University
Priority to CN202011051282.XA priority Critical patent/CN112350738B/zh
Publication of CN112350738A publication Critical patent/CN112350738A/zh
Application granted granted Critical
Publication of CN112350738B publication Critical patent/CN112350738B/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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2948Iterative decoding
    • H03M13/2951Iterative decoding using iteration stopping criteria
    • 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/1108Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
    • 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
    • H03M13/1125Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using different domains for check node and bit node processing, wherein the different domains include probabilities, likelihood ratios, likelihood differences, log-likelihood ratios or log-likelihood difference pairs
    • 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/1128Judging correct decoding and iterative stopping criteria other than syndrome check and upper limit for decoding iterations
    • 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
    • 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/63Joint error correction and other techniques

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Error Detection And Correction (AREA)

Abstract

本发明公开了一种基于比特翻转算法加速软译码的联合译码方法及***,该方法包括获取FLASH信道的似然比和校验矩阵信息,采用和积算法更新变量矩阵,采用和积算法更新校验矩阵,判断变量矩阵似然比差值的离散程度是否大于预设阈值;若是,则对软译码进行提前终止,否则重新更新变量矩阵和校验矩阵,采用比特翻转算法对更新后的硬判决输入序列进行进行比特翻转迭代,输出译码结果。本发明通过对软译码模块进行提前终止,将译码进程推进至硬译码可实现范围内,然后使用硬译码进行迭代译码,可以使得软译码的迭代延迟进一步降低,进而减少整体的译码时间;本发明在保持原本芯片面积不会有较大增长的情况下,实现了有效降低软译码的延迟。

Description

基于比特翻转算法加速软译码的联合译码方法及***
技术领域
本发明涉及FLASH控制器译码技术领域,具体涉及一种基于比特翻转算法加速软译码的联合译码方法及***。
背景技术
随着工艺节点的不断进步,FLASH的芯片尺寸在不断缩减,闪存单元间干扰噪声影响愈发严重,FLASH的可靠性问题越发需要引起关注,而市场上也涌现了一些差错控制技术来修正传输的准确率,如BCH码与RS码等一系列的纠错方法,但是由于其纠错能力有限,目前已经逐渐被淘汰,而LDPC码由于其拥有更好的纠错特性,使其更符合闪存的纠错需求。
而随着纠错需求进一步上升,以比特翻转判决法为代表的硬译码方法逐渐被一些软译码算法所取代,基于阈值电压感知的LLR获取方法也成为闪存控制器主要获取LLR信息的方式。
但由于闪存控制芯片的设计中往往需要考虑PPA指标因素,软译码电路往往具有相比于硬译码电路更高的译码延迟,对整体的性能带来较大的影响。如何在进行软译码的同时降低软译码的延迟是目前主要的问题关键。
发明内容
针对现有技术中的上述不足,本发明提供了一种基于比特翻转算法加速软译码的联合译码方法及***。
为了达到上述发明目的,本发明采用的技术方案为:
第一方面,本发明提供了一种基于比特翻转算法加速软译码的联合译码方法,包括以下步骤:
S1、获取FLASH信道的似然比和校验矩阵信息;
S2、采用和积算法更新校验节点矩阵;
S3、根据步骤S2中更新后的校验节点矩阵采用和积算法更新变量节点矩阵,同时根据信息可靠性指标对硬判决输入序列进行更新;
S4、判断变量节点矩阵似然比差值的离散程度是否大于预设阈值;若是,则对软译码进行提前终止,并进行步骤S5;否则返回步骤S2;
S5、采用比特翻转算法对更新后的硬判决输入序列进行进行比特翻转迭代,输出译码结果。
该方案的有益效果是:本发明针对目前LDPC软译码算法具有较大的译码延迟的问题,采用基于比特翻转算法协助软译码算法加速译码迭代的方法,通过对软译码模块进行提前终止,将译码进程推进至硬译码可实现范围内,然后使用硬译码进行迭代译码,由于硬译码的译码时间远小于软译码,从而可以使得软译码的迭代延迟进一步降低,进而减少整体的译码时间;本发明在保持原本芯片面积不会有较大增长的情况下,实现了有效降低软译码的延迟。
进一步地,所述步骤S1开始前还包括步骤:
得到硬判决输入序列z={z1,z2,......,zi},并获取校验矩阵进行编码。
该进一步方案的有益效果是:对输入序列进行了有效的编码,使得可以通过采用LDPC译码方法对整个序列进行有效的译码和纠正。
进一步地,所述步骤S1中FLASH信道的似然比信息表示为:
P0={p1,p2,……,pi}
P1=1-P0
其中,P0表示各比特位为0的概率,P1表示各比特位为1的概率。
该进一步方案的有益效果是:通过获取似然比信息来达到预估信道出现误码的情况,以及各个变量节点出现误码的可能性,对出错可能性较大的节点给予更大的权重,有效提高译码正确率。
进一步地,所述步骤S2具体包括以下分步骤:
S2-1、根据步骤S1中信道似然比和校验矩阵计算初始校验节点矩阵;
S2-2、根据S3更新后的变量节点矩阵采用和积译码算法更新校验节点矩阵。
该进一步方案的有益效果是:
进一步地,所述步骤S2-1中初始校验节点矩阵的计算公式为:
Figure BDA0002709636620000031
Rij 1=1-Rij 0
所述步骤S2-2中校验节点矩阵的更新公式为:
Figure BDA0002709636620000032
Rij 1=1-Rij 0
其中,Rij 0表示第j个信息比特位为0的情况下,第i个校验方程满足的条件概率;Rij 1表示第j个信息比特位为1的情况下,第i个校验方程满足的条件概率;N(i)表示校验z约束的局部码元信息集;Qji 1表示除第i个校验节点外其他校验节点提供信息的情况下,第j个信息比特位为1的概率;N(i)\j表示N(i)不包含j的子集;Hj表示校验矩阵的列向量。
该进一步方案的有益效果是:通过对校验节点矩阵进行计算或更新,使得似然比信息和变量节点矩阵信息有效的被每个校验节点获取,通过对比硬判决序列z和其各个节点出错的概率,就可以对信道各个变量节点出现错误的概率进行更新与修正。
进一步地,所述步骤S3中校验矩阵表示为:
Figure BDA0002709636620000041
Figure BDA0002709636620000042
其中,Qji 0表示除第i个校验节点外其他校验节点提供信息的情况下,第j个信息比特位为0的概率;pj表示P0中第j个信息比特位为0的概率,M(j)表示校验节点的校验集;M(j)\i表示M(j)中不包含i的子集。
该进一步方案的有益效果是:通过获取已经更新过的校验节点矩阵,对每个校验节点所连接变量节点的概率进行更新,从而通过校验节点对与其相连的变量节点进行影响,从而使得获取的概率更加准确。
进一步地,所述步骤S3中根据信息可靠性指标对硬判决输入序列进行更新具体包括:
设定信息可靠性指标为
Figure BDA0002709636620000043
Figure BDA0002709636620000044
Figure BDA0002709636620000045
其中,x表示信息可靠性指标,Qj 0表示Qji 0行向量之和;Qj 1表示Qji 1行向量之和;
判断信息可靠性指标x的值是否小于1;若是,则更新硬判决输入序列zi为1;否则更新更新硬判决输入序列zi为0。
该进一步方案的有益效果是:通过讲所有校验节点的概率信息进行求和,对每个变量节点的概率情况进行量化,然后通过对比各个变量节点为0或者1的概率,将硬判决序列z中不符合概率所期望的比特信息进行翻转。有效利用了迭代产生的概率信息,使得译码后得硬判决序列z的准确性更高。
进一步地,所述步骤S4中变量矩阵似然比差值的离散程度的计算公式为:
Figure BDA0002709636620000051
其中,M表示校验矩阵的行数。
该进一步方案的有益效果是:本发明根据似然比离散程度进行译码进程的估计和算法模式的转换,采用总体标准差进行统计和计算,且采用IEEE 754标准的单精度浮点数进行运算,具有更高的精准度。
进一步地,所述步骤S5具体包括以下分步骤:
S5-1、采用比特翻转算法,根据更新后的硬判决输入序列和校验矩阵计算伴随子向量,表示为
s=z*HT
其中,H表示校验矩阵;
S5-2、计算翻转函数,表示为
Figure BDA0002709636620000052
其中,fi表示第i个变量节点不满足校验的个数,hj,i表示校验矩阵行向量;
对不满足校验个数最多的硬判决输入序列进行翻转;
S5-3、根据翻转后的硬判决输入序列和校验矩阵计算新的伴随子向量;
S5-4、判断新的伴随子向量是否等于0;若是则停止译码,输出译码结果;否则返回步骤S5-2。
该进一步方案的有益效果是:本发明采用比特翻转算法的方式代替了软译码算法后半程的译码进程,进行提前终止,使得整体的译码延迟下降,且降低了整个芯片在译码中的功耗;并且伴随子向量s可以有效检测硬判决序列z的正确性以及控制迭代结束,当s为全零向量时,则完成比特翻转迭代。
第二方面,本发明还提供了一种应用上述方法的译码***,包括:
和积译码算法核,用于译码前期进行软译码,其中包含校验节点处理模块,变量节点处理模块,交互信息存储模块和离散程度检测模块;通过状态机控制各模块交替使能;
变量节点处理模块,用于对变量节点矩阵进行更新,在首次使能时,对变量节点矩阵Qji 0、Qji 1进行初始化;在非首次使能时,通过校验节点矩阵Rij 0、Rij 1迭代更新变量节点矩阵Qji 0、Qji 1,同时对更新后的结果进行运算得到信息可靠性指标x,判决输出结果;
校验节点处理模块,用于对校验节点矩阵Rij 0、Rij 1进行更新,校验节点处理模块通过Qji 0、Qji 1矩阵迭代更新Rij 0、Rij 1矩阵;
交叉信息存储模块,用于存储实数矩阵数据Qji 0、Qji 1、Rij 0、Rij 1,接受来自于变量节点处理模块和校验节点处理模块的数据,并对矩阵数据进行更新;
离散程度检测模块,用于对变量节点矩阵的似然比离散程度进行检测,根据离散程度来转换译码算法,并输出有效的转换使能信号;
比特翻转算法核,用于译码后期进行硬译码,其中包含翻转函数运算模块与最值搜索模块;
翻转函数运算模块,用于对翻转函数fi的逐列运算;
最值搜索模块,用于搜索翻转函数中的最大值,采用一个累加器将fi逐行累加,并与最值寄存器中上一轮的最值进行比较,更新最值寄存器,并输出其列地址和最值大小;
信道似然比/数据信息存储模块,用于在经过编码的数据进行译码的情况下,获取FLASH信道似然比信息和经过硬判决的量化数据,存入SRAM中;同时获取有效的地址信息、使能信号、输入判决序列和似然比信息,输出译码后的序列;
校验矩阵模块,用于存储校验矩阵H的信息;
状态机控制模块,用于控制译码算法的切换,通过识别和积译码算法核的转换使能,选择译码方式,启动对应译码核的使能信号;其内部具有一个计数器模块来控制使能的次数,以控制译码迭代次数,当计数器达到最大迭代次数时,终止译码,输出使能和计数器受终止使能的控制,当终止使能有效,则结束整个译码过程;
译码终止检验模块,用于检测两种算法是否已经符合终止条件,即伴随子向量s等于零向量;若为零向量,则发出终止使能,停止迭代;反之,则继续迭代。
该方案的有益效果是:通过对基于比特翻转算法加速软译码的两阶段联合译码译码方法进行了电路级的设计,利用了电路高并行度和流水线的特点,使得整个算法在这样的电路架构下有着更广泛的应用;同时采用了状态机进行译码流程的控制和译码方法的切换,使用使能信号对译码核进行控制,具有更高的可替换性和鲁棒性。
附图说明
图1为本发明基于比特翻转算法加速软译码的联合译码方法流程示意图;
图2为本发明实施例1中比特翻转迭代流程示意图;
图3为本发明基于比特翻转算法加速软译码的联合译码***结构示意图;
图4为本发明联合译码***中比特翻转算法核的并行分组***内部架构示意图。
具体实施方式
下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
实施例1
如图1所示,本发明实施例提供了一种基于比特翻转算法加速软译码的联合译码方法,包括以下步骤S1至S5:
S1、获取FLASH信道的似然比和校验矩阵信息;
本实施例中,本发明在进行进行译码前,得到硬判决输入序列z={z1,z2,......,zi},并获取校验矩阵H进行编码。
假设码元数为i,获取FLASH信道的似然比(LLR)信息,表示为:
P0={p1,p2,……,pi}
P1=1-P0
其中,P0表示各比特位为0的概率,P1表示各比特位为1的概率。
S2、采用和积算法更新校验节点矩阵;
本实施例中,步骤S2具体包括以下分步骤:
S2-1、根据步骤S1中信道似然比和校验矩阵计算初始校验节点矩阵;
首次进入步骤S2,本发明根据步骤S1中信道似然比pi和校验矩阵H计算出初始校验节点矩阵,计算公式为:
Figure BDA0002709636620000091
Rij 1=1-Rij 0
S2-2、根据S3更新后的变量节点矩阵采用和积译码算法更新校验节点矩阵。
非首次进入步骤S2,本发明根据S3中更新后的变量节点矩阵的内容,采用和积译码算法更新校验节点矩阵,更新公式为:
Figure BDA0002709636620000092
Rij 1=1-Rij 0
其中,Rij 0表示第j个信息比特位为0的情况下,第i个校验方程满足的条件概率;Rij 1表示第j个信息比特位为1的情况下,第i个校验方程满足的条件概率;N(i)表示校验z约束的局部码元信息集;Qji 1表示除第i个校验节点外其他校验节点提供信息的情况下,第j个信息比特位为1的概率;N(i)\j表示N(i)不包含j的子集;Hj表示校验矩阵的列向量。
S3、根据步骤S2中更新后的校验节点矩阵采用和积算法更新变量节点矩阵,同时根据信息可靠性指标对硬判决输入序列进行更新;
本实施例中,本发明根据步骤S2中更新后的校验节点矩阵Rij 0和Rij 1,采用和积算法更新变量节点矩阵Qji 0和Qji 1,表示为:
Figure BDA0002709636620000101
Figure BDA0002709636620000102
其中,Qji 0表示变量节点矩阵,表示除第i个校验节点外其他校验节点提供信息的情况下,第j个信息比特为0的概率;Qji 1表示变量节点矩阵,表示除第i个校验节点外其他校验节点提供信息的情况下,第j个信息比特为1的概率;pj表示P0中第j个比特位是0的概率,M(j)表示校验节点的校验集;M(j)\i表示M(j)中不包含i的子集。
同时设定信息可靠性指标x为
Figure BDA0002709636620000103
Figure BDA0002709636620000104
Figure BDA0002709636620000105
其中,x表示信息可靠性指标,Qj 0表示Qji 0行向量之和;Qj 1表示Qji 1行向量之和;
再根据信息可靠性指标x作为判决条件,对硬判决输入序列z进行更新,表示为:
Figure BDA0002709636620000111
即判断信息可靠性指标x的值是否小于1;若是,则更新硬判决输入序列zi为1;否则更新更新硬判决输入序列zi为0。
S4、判断变量节点矩阵似然比差值的离散程度是否大于预设阈值;若是,则对软译码进行提前终止,并进行步骤S5;否则返回步骤S2;
本实施例中,在进行变量节点矩阵和校验节点矩阵的更新迭代过程中,每次迭代时计算变量节点矩阵Qji 0和Qji 1的差值,判断变量节点矩阵似然比差值的离散程度L是否大于预设阈值,变量节点矩阵似然比差值的离散程度的计算公式为:
Figure BDA0002709636620000112
其中,M表示校验矩阵的行数;预设阈值设置为0.4765。
当变量节点矩阵似然比差值的离散程度L大于0.4765时,对软译码进行提前终止,并进行步骤S5;否则返回步骤S2-2。
S5、采用比特翻转算法对更新后的硬判决输入序列进行进行比特翻转迭代,输出译码结果。
本实施例中,如图2所示,步骤S5具体包括以下分步骤:
S5-1、采用比特翻转算法,根据更新后的硬判决输入序列z和校验矩阵H计算伴随子向量s,表示为
s=z*HT
S5-2、计算翻转函数fi,表示为
Figure BDA0002709636620000121
其中,fi表示第i个变量节点不满足校验的个数,hj,i表示校验矩阵行向量;
对不满足校验个数最(即fi的最大值)的硬判决输入序列进行翻转;
S5-3、根据翻转后的硬判决输入序列和校验矩阵计算新的伴随子向量s;
S5-4、判断新的伴随子向量s是否等于0;若是则停止译码,输出译码结果;否则返回步骤S5-2。
实施例2
本发明实施例基于上述软译码译码方法,还提供了一种应用上述方法的译码***,如图3和4所示,包括:
和积译码算法核,用于译码前期进行软译码,其中包含校验节点处理模块,变量节点处理模块,交互信息存储模块和离散程度检测模块;通过状态机控制各模块交替使能;
变量节点处理模块,用于对变量节点矩阵进行更新,在首次使能时,对变量节点矩阵Qji 0、Qji 1进行初始化;在非首次使能时,通过校验节点矩阵Rij 0、Rij 1迭代更新变量节点矩阵Qji 0、Qji 1,同时对更新后的结果进行运算得到信息可靠性指标x,判决输出结果;
校验节点处理模块,用于对校验节点矩阵Rij 0、Rij 1进行更新,校验节点处理模块通过Qji 0、Qji 1矩阵迭代更新Rij 0、Rij 1矩阵;
交叉信息存储模块,用于存储4组实数矩阵数据Qji 0、Qji 1、Rij 0、Rij 1,接受来自于变量节点处理模块和校验节点处理模块的数据,并对矩阵数据进行更新;
离散程度检测模块,用于对变量节点矩阵的似然比离散程度进行检测,根据离散程度来转换译码算法,并输出有效的转换使能信号;
比特翻转算法核,用于译码后期进行硬译码,其中包含翻转函数运算模块与最值搜索模块;
翻转函数运算模块,用于计算翻转函数F,采用了8组并行的运算架构,有效降低了译码延迟,提升了译码效率;由于H矩阵准循环的特点,校验矩阵行向量hi,j通过循环移位模块,就可以实现对翻转函数fi的逐列运算;
最值搜索模块,用于搜索翻转函数中的最大值,采用一个累加器将fi逐行累加,并与最值寄存器中上一轮的最值进行比较,更新最值寄存器,并输出其列地址和最值大小;
信道似然比/数据信息存储模块,用于在经过编码的数据进行译码的情况下,获取FLASH信道似然比信息和经过硬判决的量化数据,存入SRAM中;同时获取有效的地址信息、使能信号、输入判决序列和似然比信息,输出译码后的序列;
校验矩阵模块,用于存储校验矩阵H的信息;
状态机控制模块,用于控制译码算法的切换,通过识别和积译码算法核的转换使能,选择译码方式,启动对应译码核的使能信号;其内部具有一个计数器模块来控制使能的次数,以控制译码迭代次数,当计数器达到最大迭代次数时,终止译码,输出使能和计数器受终止使能的控制,当终止使能有效,则结束整个译码过程;
译码终止检验模块,用于检测两种算法是否已经符合终止条件,即伴随子向量s等于零向量;若为零向量,则发出终止使能,停止迭代;反之,则继续迭代。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。

Claims (10)

1.一种基于比特翻转算法加速软译码的联合译码方法,其特征在于,包括以下步骤:
S1、获取FLASH信道的似然比和校验矩阵信息;
S2、采用和积算法更新校验节点矩阵;
S3、根据步骤S2中更新后的校验节点矩阵采用和积算法更新变量节点矩阵,同时根据信息可靠性指标对硬判决输入序列进行更新;
S4、判断变量节点矩阵似然比差值的离散程度是否大于预设阈值;若是,则对软译码进行提前终止,并进行步骤S5;否则返回步骤S2;
S5、采用比特翻转算法对更新后的硬判决输入序列进行进行比特翻转迭代,输出译码结果。
2.根据权利要求1所述的基于比特翻转算法加速软译码的联合译码方法,其特征在于,所述步骤S1开始前还包括步骤:
得到硬判决输入序列z={z1,z2,……,zi},并获取校验矩阵进行编码。
3.根据权利要求2所述的基于比特翻转算法加速软译码的联合译码方法,其特征在于,所述步骤S1中FLASH信道的似然比信息表示为:
P0={p1,p2,……,pi}
P1=1-P0
其中,P0表示各比特位为0的概率,P1表示各比特位为1的概率。
4.根据权利要求3所述的基于比特翻转算法加速软译码的联合译码方法,其特征在于,所述步骤S2具体包括以下分步骤:
S2-1、根据步骤S1中信道似然比和校验矩阵计算初始校验节点矩阵;
S2-2、根据S3更新后的变量节点矩阵采用和积译码算法更新校验节点矩阵。
5.根据权利要求4所述的基于比特翻转算法加速软译码的联合译码方法,其特征在于,所述步骤S2-1中初始校验节点矩阵的计算公式为:
Figure FDA0002709636610000021
Rij 1=1-Rij 0
所述步骤S2-2中校验节点矩阵的更新公式为:
Figure FDA0002709636610000022
Rij 1=1-Rij 0
其中,Rij 0表示第j个信息比特位为0的情况下,第i个校验方程满足的条件概率;Rij 1表示第j个信息比特位为1的情况下,第i个校验方程满足的条件概率;N(i)表示校验z约束的局部码元信息集;Qji 1表示除第i个校验节点外其他校验节点提供信息的情况下,第j个信息比特位为1的概率;N(i)\j表示N(i)不包含j的子集;Hj表示校验矩阵的列向量。
6.根据权利要求5所述的基于比特翻转算法加速软译码的联合译码方法,其特征在于,所述步骤S3中校验矩阵表示为:
Figure FDA0002709636610000023
Figure FDA0002709636610000024
其中,Qji 0表示除第i个校验节点外其他校验节点提供信息的情况下,第j个信息比特位为0的概率;pj表示P0中第j个信息比特位为0的概率,M(j)表示校验节点的校验集;M(j)\i表示M(j)中不包含i的子集。
7.根据权利要求6所述的基于比特翻转算法加速软译码的联合译码方法,其特征在于,所述步骤S3中根据信息可靠性指标对硬判决输入序列进行更新具体包括:
设定信息可靠性指标为
Figure FDA0002709636610000031
Figure FDA0002709636610000032
Figure FDA0002709636610000033
其中,x表示信息可靠性指标,Qj 0表示Qji 0行向量之和;Qj 1表示Qji 1行向量之和;
判断信息可靠性指标x的值是否小于1;若是,则更新硬判决输入序列zi为1;否则更新更新硬判决输入序列zi为0。
8.根据权利要求7所述的基于比特翻转算法加速软译码的联合译码方法,其特征在于,所述步骤S4中变量矩阵似然比差值的离散程度的计算公式为:
Figure FDA0002709636610000034
其中,M表示校验矩阵的行数。
9.根据权利要求8所述的基于比特翻转算法加速软译码的联合译码方法,其特征在于,所述步骤S5具体包括以下分步骤:
S5-1、采用比特翻转算法,根据更新后的硬判决输入序列和校验矩阵计算伴随子向量,表示为
s=z*HT
其中,H表示校验矩阵;
S5-2、计算翻转函数,表示为
Figure FDA0002709636610000041
其中,fi表示第i个变量节点不满足校验的个数,hj,i表示校验矩阵行向量;
对不满足校验个数最多的硬判决输入序列进行翻转;
S5-3、根据翻转后的硬判决输入序列和校验矩阵计算新的伴随子向量;
S5-4、判断新的伴随子向量是否等于0;若是则停止译码,输出译码结果;否则返回步骤S5-2。
10.一种应用如权利要求1至9任一所述方法的联合译码***,其特征在于,包括:
和积译码算法核,用于译码前期进行软译码,其中包含校验节点处理模块,变量节点处理模块,交互信息存储模块和离散程度检测模块;通过状态机控制各模块交替使能;
变量节点处理模块,用于对变量节点矩阵进行更新,在首次使能时,对变量节点矩阵Qji 0、Qji 1进行初始化;在非首次使能时,通过校验节点矩阵Rij 0、Rij 1迭代更新变量节点矩阵Qji 0、Qji 1,同时对更新后的结果进行运算得到信息可靠性指标x,判决输出结果;
校验节点处理模块,用于对校验节点矩阵Rij 0、Rij 1进行更新,校验节点处理模块通过Qji 0、Qji 1矩阵迭代更新Rij 0、Rij 1矩阵;
交叉信息存储模块,用于存储实数矩阵数据Qji 0、Qji 1、Rij 0、Rij 1,接受来自于变量节点处理模块和校验节点处理模块的数据,并对矩阵数据进行更新;
离散程度检测模块,用于对变量节点矩阵的似然比离散程度进行检测,根据离散程度来转换译码算法,并输出有效的转换使能信号;
比特翻转算法核,用于译码后期进行硬译码,其中包含翻转函数运算模块与最值搜索模块;
翻转函数运算模块,用于对翻转函数fi的逐列运算;
最值搜索模块,用于搜索翻转函数中的最大值,采用一个累加器将fi逐行累加,并与最值寄存器中上一轮的最值进行比较,更新最值寄存器,并输出其列地址和最值大小;
信道似然比/数据信息存储模块,用于在经过编码的数据进行译码的情况下,获取FLASH信道似然比信息和经过硬判决的量化数据,存入SRAM中;同时获取有效的地址信息、使能信号、输入判决序列和似然比信息,输出译码后的序列;
校验矩阵模块,用于存储校验矩阵H的信息;
状态机控制模块,用于控制译码算法的切换,通过识别和积译码算法核的转换使能,选择译码方式,启动对应译码核的使能信号;其内部具有一个计数器模块来控制使能的次数,以控制译码迭代次数,当计数器达到最大迭代次数时,终止译码,输出使能和计数器受终止使能的控制,当终止使能有效,则结束整个译码过程;
译码终止检验模块,用于检测两种算法是否已经符合终止条件,即伴随子向量s等于零向量;若为零向量,则发出终止使能,停止迭代;反之,则继续迭代。
CN202011051282.XA 2020-09-29 2020-09-29 基于比特翻转算法加速软译码的联合译码方法及*** Active CN112350738B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011051282.XA CN112350738B (zh) 2020-09-29 2020-09-29 基于比特翻转算法加速软译码的联合译码方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011051282.XA CN112350738B (zh) 2020-09-29 2020-09-29 基于比特翻转算法加速软译码的联合译码方法及***

Publications (2)

Publication Number Publication Date
CN112350738A true CN112350738A (zh) 2021-02-09
CN112350738B CN112350738B (zh) 2023-05-30

Family

ID=74361275

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011051282.XA Active CN112350738B (zh) 2020-09-29 2020-09-29 基于比特翻转算法加速软译码的联合译码方法及***

Country Status (1)

Country Link
CN (1) CN112350738B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101018060A (zh) * 2007-01-05 2007-08-15 东南大学 低密度校验码的并行加权比特翻转解码方法
CN104009763A (zh) * 2014-06-18 2014-08-27 电子科技大学 一种低复杂度ldpc码加权比特翻转译码算法提前停止方法
CN104218955A (zh) * 2014-09-28 2014-12-17 河南科技大学 基于比特翻转的ldpc码局部搜索译码方法
CN104796159A (zh) * 2015-05-06 2015-07-22 电子科技大学 一种ldpc码加权比特翻转译码算法的混合提前停止迭代方法
CN105824603A (zh) * 2016-03-14 2016-08-03 西南交通大学 一种基于cisc指令集的流水线取指和译码方法
US20180358983A1 (en) * 2017-06-07 2018-12-13 Electronics And Telecommunications Research Institute Low density parity check decoder using binary logarithm and decoding method thereof
US20190238158A1 (en) * 2019-03-29 2019-08-01 Intel Corporation Techniques to use intrinsic information for a bit-flipping error correction control decoder
US20200036393A1 (en) * 2018-07-26 2020-01-30 SK Hynix Inc. Apparatus and method for decoding ldpc codes
CN111245444A (zh) * 2020-03-20 2020-06-05 清华大学 归一化最小和ldpc译码方法及译码器

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101018060A (zh) * 2007-01-05 2007-08-15 东南大学 低密度校验码的并行加权比特翻转解码方法
CN104009763A (zh) * 2014-06-18 2014-08-27 电子科技大学 一种低复杂度ldpc码加权比特翻转译码算法提前停止方法
CN104218955A (zh) * 2014-09-28 2014-12-17 河南科技大学 基于比特翻转的ldpc码局部搜索译码方法
CN104796159A (zh) * 2015-05-06 2015-07-22 电子科技大学 一种ldpc码加权比特翻转译码算法的混合提前停止迭代方法
CN105824603A (zh) * 2016-03-14 2016-08-03 西南交通大学 一种基于cisc指令集的流水线取指和译码方法
US20180358983A1 (en) * 2017-06-07 2018-12-13 Electronics And Telecommunications Research Institute Low density parity check decoder using binary logarithm and decoding method thereof
US20200036393A1 (en) * 2018-07-26 2020-01-30 SK Hynix Inc. Apparatus and method for decoding ldpc codes
US20190238158A1 (en) * 2019-03-29 2019-08-01 Intel Corporation Techniques to use intrinsic information for a bit-flipping error correction control decoder
CN111245444A (zh) * 2020-03-20 2020-06-05 清华大学 归一化最小和ldpc译码方法及译码器

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
JIAMING LIU等: "A Miniaturized LDPC Encoder:Two—layer Architecture for CCSDS Near-Earth Standard", 《IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS Ⅱ:EXPRESS BRIEFS》 *
刘明华: "低密度奇偶校验码的混合译码", 《中国优秀硕士学位论文全文数据库信息科技辑》 *
苏东等: "一种避免码间串扰的LED驱动芯片", 《微电子学》 *

Also Published As

Publication number Publication date
CN112350738B (zh) 2023-05-30

Similar Documents

Publication Publication Date Title
US9692450B2 (en) Systems and methods for early exit of layered LDPC decoder
US8656249B2 (en) Multi-level LDPC layer decoder
US8990661B1 (en) Layer specific attenuation factor LDPC decoder
US10877840B2 (en) Dynamic neighbor and bitline assisted correction for NAND flash storage
US11005499B2 (en) LDPC decoder, semiconductor memory system, and operating method thereof
TWI699977B (zh) 使用於低密度奇偶檢查碼解碼器的方法及解碼器
WO2015139160A1 (zh) 一种动态阈值比特翻转的ldpc码硬判决译码方法
US8751895B2 (en) Semiconductor memory device and decoding method
CN104995844A (zh) 具有对于ldpc码可靠性输入的比特翻转解码
JP5723975B2 (ja) Ldpcコードの復号のための方法、システム、およびプログラム
US10498364B2 (en) Error correction circuits and memory controllers including the same
US10783972B2 (en) NAND flash memory with reconfigurable neighbor assisted LLR correction with downsampling and pipelining
US9564921B1 (en) Method and system for forward error correction decoding based on a revised error channel estimate
CN113037299A (zh) 基于迭代译码的ldpc码稀疏校验矩阵重建方法和装置
CN110661535B (zh) 一种提高Turbo译码性能的方法、装置及计算机设备
US11411582B1 (en) Machine-learning based LLR generation without assist-read for early-stage soft decoding
TWI685211B (zh) 用於對低密度奇偶校驗資料進行解碼以對碼字進行解碼的方法以及解碼器
US9231620B2 (en) Iterative decoding device and related decoding method for irregular low-density parity-check code capable of improving error correction performance
US20100185913A1 (en) Method for decoding ldpc code and the circuit thereof
CN112350738A (zh) 基于比特翻转算法加速软译码的联合译码方法及***
CN110708077B (zh) Ldpc码大数逻辑译码方法、装置和译码器
CN113300717B (zh) 一种基于码率自适应的高效化ldpc编码器电路
CN110971240A (zh) 解码器设计方法与存储控制器
Jerji et al. Neural Network-Like LDPC Decoder for Mobile Applications
CN114785355A (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