CN115296675A - 用于ldpc码的解码的提前收敛 - Google Patents

用于ldpc码的解码的提前收敛 Download PDF

Info

Publication number
CN115296675A
CN115296675A CN202210390168.2A CN202210390168A CN115296675A CN 115296675 A CN115296675 A CN 115296675A CN 202210390168 A CN202210390168 A CN 202210390168A CN 115296675 A CN115296675 A CN 115296675A
Authority
CN
China
Prior art keywords
ldpc
decoding
ldpc decoding
early convergence
checkpoint
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.)
Pending
Application number
CN202210390168.2A
Other languages
English (en)
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.)
Beijing Tenafei Electronic Technology Co ltd
Original Assignee
Beijing Tenafei Electronic Technology Co ltd
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 Beijing Tenafei Electronic Technology Co ltd filed Critical Beijing Tenafei Electronic Technology Co ltd
Publication of CN115296675A publication Critical patent/CN115296675A/zh
Pending legal-status Critical Current

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/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1117Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
    • 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/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/114Shuffled, staggered, layered or turbo decoding schedules
    • 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
    • H03M13/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices

Abstract

接收具有一个或多个错误的低密度奇偶校验(LDPC)编码数据以及与提前收敛校验点相关联的信息。使用与提前收敛校验点相关联的信息来对LDPC编码数据执行LDPC解码,直至所述提前收敛校验点,并且生成解码码字,其中所述提前收敛校验点先于LDPC解码的第一完全迭代。确定LDPC解码是否成功,并且在确定LDPC解码成功的情况下,输出解码码字。

Description

用于LDPC码的解码的提前收敛
背景技术
低密度奇偶校验(LDPC)码是一种类型的纠错码。在一些应用中,LDPC码用来纠正由(例如,有噪声的)通信信道或由(例如,退化的)存储介质引入的错误。改善LDPC系统性能的新技术将是合乎期望的。例如,减少处理时间将是合乎期望的,因为纠错数据被更快地输出和/或消耗较少的处理资源或功率。
附图说明
在以下详细描述和附图中公开了本发明的各种实施例。
图1是图示出具有提前收敛(early convergence)的低密度奇偶校验(LDPC)解码过程的实施例的流程图。
图2A是图示出在通信应用中使用的低密度奇偶校验(LDPC)编码器和解码器的实施例的图。
图2B是图示出在存储应用中使用的低密度奇偶校验(LDPC)编码器和解码器的实施例的图。
图3A是图示出最小和低密度奇偶校验(LDPC)解码器的示例的图。
图3B是图示出与变量节点到校验节点阶段相关联的校验节点到变量节点消息更新的示例的图。
图3C是图示出与校验节点到变量节点阶段相关联的变量节点到校验节点消息更新的示例的图。
图4是图示出没有提前收敛的分层最小和解码过程的示例的图。
图5是图示出分层最小和低密度奇偶校验(LDPC)解码器的实施例的图,该解码器监视状态以确定何时已出现提前收敛校验点。
图6A是图示出具有提前收敛的低密度奇偶校验(LDPC)解码过程的实施例的流程图,该解码过程监视校验节点状态以确定何时已出现提前收敛校验点。
图6B是图示出具有提前收敛的低密度奇偶校验(LDPC)解码过程的实施例的流程图,该解码过程监视循环状态(circulant state)以确定何时已出现提前收敛校验点。
图7A是图示出在第一层期间处理的
Figure 341154DEST_PATH_IMAGE001
矩阵中的QC-LDPC循环的实施例的图。
图7B是图示出在第二层期间处理的
Figure 916492DEST_PATH_IMAGE001
矩阵中的QC-LDPC循环的实施例的图。
图7C是图示出在第三层期间处理的
Figure 252795DEST_PATH_IMAGE001
矩阵中的QC-LDPC循环的实施例的图。
图8是图示出具有使用分式迭代计数的提前收敛的低密度奇偶校验(LDPC)解码过程的实施例的流程图。
图9是图示出置换
Figure 571781DEST_PATH_IMAGE001
矩阵的实施例的图。
图10是图示出用以确定最小分式迭代计数的过程的实施例的流程图。
具体实施方式
可以以许多方式来实现本发明,包括作为过程;装置;系统;合成物质;包含在计算机可读存储介质上的计算机程序产品;和/或处理器,诸如被配置成执行存储在耦合到处理器的存储器上的和/或由所述存储器提供的指令的处理器。在本说明书中,这些实现方式或本发明可以采取的任何其他形式可被称为技术。一般地,在本发明的范围内可以更改所公开过程的步骤次序。除非另有声明,否则可以将描述为被配置成执行任务的诸如处理器或存储器的部件实现为暂时被配置成在给定时间执行任务的通用部件或被制造以执行任务的特定部件。如本文中所使用的,术语“处理器”是指被配置成处理数据(诸如计算机程序指令)的一个或多个设备、电路和/或处理核心。
下面连同说明本发明的原理的附图来提供对本发明的一个或多个实施例的详细描述。结合这样的实施例对本发明进行描述,但是本发明并不被限制到任何实施例。本发明的范围仅由权利要求限制,并且本发明涵盖许多替换方案、修改和等同物。在以下描述中阐述了许多特定细节,以便提供对本发明的透彻理解。出于示例的目的,提供这些细节,并且在没有这些特定细节中的一些或全部的情况下,可以根据权利要求来实践本发明。为了清楚的目的,在与本发明相关的技术领域中已知的技术材料未被详细地描述,以免不必要地使本发明含糊难懂。
本文中描述了检查提前收敛的低密度奇偶校验(LDPC)解码技术的各种实施例。如下面将更详细地描述的,(例如,分层最小和)LDPC解码器在执行完整的解码迭代之前(例如,在一些分式的、预先计算的迭代计数处)执行提前终止检查。当对具有相对较少错误的数据进行解码时,执行本文中所描述技术的LDPC解码器可以比其他类型的LDPC解码器更早地输出纠错数据,这减少了处理时间和/或节省了功率。下图描述了具有提前收敛的一个LDPC解码实施例。
图1是图示出具有提前收敛的低密度奇偶校验(LDPC)解码过程的实施例的流程图。在各种实施例中,可以以硬件实现方式(例如,专用集成电路(ASIC)或现场可编程门阵列(FPGA))或软件实现方式(例如,包含在非暂时性计算机可读介质中的固件或计算机程序产品和计算机指令)来执行该过程。
在100处,接收具有一个或多个错误的低密度奇偶校验(LDPC)编码数据。例如,编码数据可能已从通信信道接收或从储存器读回(例如,在退化的存储介质上存储达许多年之后),并且错误被引入到LDPC编码数据中。
在102处,接收与提前收敛校验点相关联的信息。在一些实施例中,在步骤102处接收的信息是指示何时已到达或通过提前收敛校验点的信号(例如,基于监视状态的集合监视状态信号)。在一些实施例中,在步骤102处接收的信息是部分和/或分式迭代,其中分式迭代严格大于0并且严格小于1,并且分式迭代对应于提前收敛校验点。在这样的实施例中的LDPC解码器跟踪(分式)迭代计数,并且当达到在步骤102处接收的分式计数时暂停解码。
在104处,使用与提前收敛校验点相关联的信息来对LDPC编码数据执行(例如,分层最小和)LDPC解码,直至提前收敛校验点,并且生成解码码字,其中提前收敛校验点先于LDPC解码的第一完全迭代。
在106处,确定LDPC解码是否成功。例如,在步骤100处生成的解码码字可能仍包括错误,或者还可能不包括错误,并且不声明解码成功(在一个示例中),除非校验子向量(syndrome vector)为全零或以其它方式指示已从解码数据中成功地去除了所有错误。
如果在106处确定解码成功,则在110处输出解码码字(例如,在104处生成的)。例如,如果仅存在几个错误,则完全迭代的一小部分就可能足以去除所有错误。在其他类型的LDPC解码器的情况下,解码器在检查解码是否成功之前完成至少一次完全迭代。在提前收敛检查的情况下,可以更快地输出解码数据,并且在可能的时候可以节省功率和处理资源(例如,不需要完整或完全解码迭代的仅几个错误)。
如果在106处确定解码未成功,则在108处继续(例如,分层最小和)LDPC解码(例如,直到成功或达到超时)。如果恢复的LDPC解码在步骤108处成功,则输出解码码字。在一些情况下,达到超时并且恢复的LDPC解码停止;然后声明错误或尝试不同类型的解码(例如,较强但较慢)。
在描述图1中所示出的提前解码终止过程的更详细示例之前,图示其中可以使用这样的技术的一些示例应用可能是有益的。下图图示了一些示例应用。
图2A是图示出在通信应用中使用的低密度奇偶校验(LDPC)编码器和解码器的实施例的图。在这个示例中,LDPC编码器(200a)输入输入数据以在传输之前进行编码。从LDPC编码器(200a)输出要传输的LDPC编码数据,并将其传递到发射器(202),所述发射器(202)针对特定通信信道酌情地调制和/或格式化LDPC编码数据,并且通过诸如有线或无线信道和/或网络之类的通信信道(204)发送所传输的数据。
耦合到通信信道(204)的接收器(206)输入接收的数据,并且从有错误的接收数据中解调和/或提取有错误的LDPC编码数据。LDPC解码器(208a)然后对接收到的压缩数据进行解码,并输出未压缩的数据。在一些实施例中,LDPC解码器(208a)执行提前解码终止过程(例如,图1),该过程允许LDPC解码比一些其他LDPC解码器结束得更早,从而减少延迟。
通信信道(204)引入噪声和/或错误,使得通过接收器(206)接收的数据包含噪声。在传输之前用LDPC码对数据进行纠错编码可以减少接收器处的错误和/或不可破译消息的数目。
图2B是图示出在存储应用中使用的低密度奇偶校验(LDPC)编码器和解码器的实施例的图。在这个示例中,将要编码的输入数据传递到LDPC编码器(200b)。LDPC编码器(200b)将要存储和/或写入的LDPC编码数据传递到存储接口(220),所述存储接口(220)继而将数据写入到储存器(222)。
为了获得原始数据,存储接口(220)读回存储在储存器(222)上的数据(有错误),并且将LDPC编码数据(有错误)传递到LDPC解码器(208b)。LDPC解码器(208b)对LDPC编码数据进行解码并输出数据(例如,根据需要或在需要情况下的纠错)。在一些实施例中,LDPC解码器(208b)执行提前解码终止过程(例如,图1),该过程允许LDPC解码比一些其他LDPC解码器结束得更早,从而减少延迟。
在描述提前解码终止的更详细示例之前,首先更详细地描述LDPC解码可能是有益的。首先,描述最小和LDPC解码的示例。然后,描述分层最小和LDPC解码示例。
图3A是图示出最小和低密度奇偶校验(LDPC)解码器的示例的图。低密度奇偶校验(LDPC)码在由LDPC解码器使用的低密度奇偶校验(LDPC)码的奇偶校验矩阵(在本文中也称为
Figure 677140DEST_PATH_IMAGE001
矩阵)中具有非常低的1的密度。这使得使用称为Tanner图的二部图来表示LDPC码是方便的。Tanner图中存在两种类型的节点,即变量节点(302a)和校验节点(304a)。每个变量节点(或校验节点)与奇偶校验矩阵
Figure 423379DEST_PATH_IMAGE001
的列(或行)对应。在本文中描述的示例中,
Figure 246979DEST_PATH_IMAGE002
是变量节点的集合,并且
Figure 104076DEST_PATH_IMAGE003
是校验节点的集合。
Figure 329521DEST_PATH_IMAGE001
矩阵的每一行由
Figure 981083DEST_PATH_IMAGE004
索引,并且
Figure 26399DEST_PATH_IMAGE001
的每一列由
Figure 687187DEST_PATH_IMAGE005
索引。在Tanner图中,如果
Figure 767139DEST_PATH_IMAGE006
,则变量节点
Figure 589601DEST_PATH_IMAGE007
经由边连接到校验节点
Figure 122214DEST_PATH_IMAGE008
,并且Tanner图上的边的集合由集合E来表示。
准循环低密度奇偶校验(QC-LDPC)码是特殊的一类LDPC码,具有结构化的
Figure 353737DEST_PATH_IMAGE009
矩阵,其可通过扩展
Figure 22616DEST_PATH_IMAGE010
基矩阵来生成。基矩阵中每个1的元素可以通过循环右移b×b单位子矩阵来扩展。QC-LDPC码在编码和解码两者的硬件实现方式上具有相比于其他类型的LDPC码的优点。可以使用简单的移位寄存器来高效地实现QC-LDPC码的编码。在QC-LDPC解码器的一些硬件实现方式实施例中,代码的QC结构简化了用于消息传递的布线(wirerouting)。
在这个示例中,示出了消息传递(MP)LDPC解码器。一般地,(分层)最小和解码控制器(300)控制变量节点(302a)与校验节点(304a)之间的消息传递。定期地,控制器(300)将检查校验子向量(308);如果校验子向量为全零,则已从LDPC编码数据中去除所有错误,并输出解码码字(310)。消息传递是实现LDPC码的近似最优解码的最高效的方式。在消息传递解码中,变量节点(VN)和校验节点(CN)如下来更新规则。为了简洁和符号简要,本文中描述的示例可以仅使用
Figure 281559DEST_PATH_IMAGE011
(而不是
Figure 301468DEST_PATH_IMAGE012
)来表示变量节点以及
Figure 569638DEST_PATH_IMAGE013
(而不是
Figure 358602DEST_PATH_IMAGE014
)来表示校验节点。变量节点
Figure 522868DEST_PATH_IMAGE011
从信道接收输入消息
Figure 30072DEST_PATH_IMAGE015
,通常是对应信道输出的对数似然比(LLR),定义如下:
Figure 836354DEST_PATH_IMAGE016
其中
Figure 479825DEST_PATH_IMAGE017
是码位,并且
Figure 346150DEST_PATH_IMAGE018
是对应的接收符号。
迭代消息传递解码器在两个阶段之间交替:变量节点到校验节点阶段,在所述阶段期间,变量节点沿着它们的相邻边向校验节点发送消息;以及校验节点到变量节点阶段,在所述阶段期间,校验节点将消息发送到它们的相邻变量节点。在图3B和3C中分别示意性地描绘了消息更新规则(在下面更详细地对其进行描述)。
图3B是图示出与变量节点到校验节点阶段相关联的校验节点到变量节点消息更新的示例的图。在这个示例中,每个校验节点(304b)从其所有相邻的变量节点(302b)接收LLR信息。对于每个这样的变量节点,使用来自所有其他相邻变量节点的输入来生成更新的校验到变量消息。
图3C是图示出与校验节点到变量节点阶段相关联的变量节点到校验节点消息更新的示例的图。在这个示例中,每个变量节点(302c)从其所有相邻的校验节点(304c)接收LLR信息。对于每个这样的变量节点,使用来自所有其他相邻校验节点的输入来生成更新的变量到校验消息。
在解码过程的初始化步骤中,变量节点
Figure 75072DEST_PATH_IMAGE011
将相同的消息转发到其所有相邻的校验节点(
Figure 419465DEST_PATH_IMAGE011
),即从对应信道输出导出的
Figure 917443DEST_PATH_IMAGE019
。在校验节点到变量节点消息更新阶段中,校验节点
Figure 954669DEST_PATH_IMAGE013
使用传入的消息和CN更新规则来计算新的校验节点到变量节点消息
Figure 170887DEST_PATH_IMAGE020
并将其转发到变量节点
Figure 318971DEST_PATH_IMAGE021
。变量节点
Figure 671455DEST_PATH_IMAGE011
然后根据变量节点更新规则来处理其传入的消息并且将更新的变量节点到校验节点消息
Figure 879583DEST_PATH_IMAGE022
转发到每个相邻的校验节点(
Figure 84561DEST_PATH_IMAGE011
)。在预先指定的迭代次数之后,变量节点
Figure 36337DEST_PATH_IMAGE011
将所有传入的 LLR 消息求和,以产生对应码位
Figure 243327DEST_PATH_IMAGE011
的估计。要注意,所有校验节点到变量节点消息更新可以并行完成,如所有变量节点到校验节点消息更新可以的那样。这使得实现迭代消息传递解码的高效、高速软件和硬件实现方式。
Figure 622356DEST_PATH_IMAGE022
Figure 813166DEST_PATH_IMAGE023
分别是从变量节点
Figure 303053DEST_PATH_IMAGE011
发送到校验节点
Figure 895708DEST_PATH_IMAGE024
和从校验节点
Figure 180059DEST_PATH_IMAGE024
发送到变量节点
Figure 592586DEST_PATH_IMAGE011
的消息。(
Figure 886164DEST_PATH_IMAGE011
)是直接与变量节点
Figure 333326DEST_PATH_IMAGE011
连接的校验节点的集合,并且(
Figure 54157DEST_PATH_IMAGE024
)是直接与校验节点
Figure 688401DEST_PATH_IMAGE024
连接的变量节点的集合。然后,在SPA解码中从变量节点
Figure 520091DEST_PATH_IMAGE011
发送到校验节点
Figure 87338DEST_PATH_IMAGE024
的消息由下式给出:
Figure 979071DEST_PATH_IMAGE025
并且从校验节点
Figure 366190DEST_PATH_IMAGE026
到变量节点
Figure 735991DEST_PATH_IMAGE011
的消息被计算为:
Figure 157745DEST_PATH_IMAGE027
Figure 220379DEST_PATH_IMAGE028
是变量节点
Figure 829215DEST_PATH_IMAGE011
的后验概率(APP)消息:
Figure 504172DEST_PATH_IMAGE029
解码字
Figure 780433DEST_PATH_IMAGE030
被定义为APP消息的硬判决
Figure 13968DEST_PATH_IMAGE031
,即:
Figure 375679DEST_PATH_IMAGE032
其中如果
Figure 352863DEST_PATH_IMAGE033
,则
Figure 483630DEST_PATH_IMAGE034
为1,或者否则为0。如果结果得到的校验子向量(γ)为全零,则声明解码成功,使得:
Figure 888066DEST_PATH_IMAGE035
在解码过程期间,解码字(
Figure 471494DEST_PATH_IMAGE030
)和校验子向量(γ)两者被初始化为全零,并且在处理每个变量节点时增量地更新。在数学上,这表示为:
Figure 252368DEST_PATH_IMAGE036
其中
Figure 237642DEST_PATH_IMAGE037
是更新的第i位硬判决,并且
Figure 812980DEST_PATH_IMAGE038
表示奇偶校验矩阵
Figure 149283DEST_PATH_IMAGE039
的第i行。
执行最小和解码的一种流行方式是:使变量节点将从信道接收的信息的对数似然比视为初始输入消息(即
Figure 468269DEST_PATH_IMAGE040
),并且采用以下等效的校验节点更新规则:
Figure 573628DEST_PATH_IMAGE041
其中 0 < α 和 β < 1 分别是衰减因子和衰减舍入参数,可以对其进行预先固定或动态调整。这些满足以下要求:
Figure 319867DEST_PATH_IMAGE042
这确保为1的最小校验节点到变量节点消息不被衰减到零。
信道LLR输入可以方便地缩放以进行最小和解码,但是对于原始和积解码需要精确信息。下面的记法帮助简化算法程序中的上面的计算。设:
Figure 143467DEST_PATH_IMAGE043
是二进制符号表示,其根据下式转换成实际符号值:
Figure 734985DEST_PATH_IMAGE044
Figure 694851DEST_PATH_IMAGE045
是所有变量节点
Figure 379036DEST_PATH_IMAGE046
到校验节点
Figure 424352DEST_PATH_IMAGE047
的总符号:
Figure 85140DEST_PATH_IMAGE048
Figure 165092DEST_PATH_IMAGE049
Figure 253134DEST_PATH_IMAGE050
分别是到校验节点
Figure 520167DEST_PATH_IMAGE047
的最小变量节点消息及其相关联的索引:
Figure 984646DEST_PATH_IMAGE051
并且设
Figure 919104DEST_PATH_IMAGE052
是到校验节点
Figure 178047DEST_PATH_IMAGE047
的第二最小(例如,第二最低)变量节点消息:
Figure 197956DEST_PATH_IMAGE053
Figure 200547DEST_PATH_IMAGE054
Figure 723932DEST_PATH_IMAGE055
是到校验节点
Figure 419356DEST_PATH_IMAGE047
的衰减最小和第二最小变量节点消息,即:
Figure 926560DEST_PATH_IMAGE056
并且因此,利用上面的记法,等式(8)方便地通过下式来重新表达:
Figure 467263DEST_PATH_IMAGE057
如果在第一完整迭代之后产生全零校验子,则声明解码成功。
当使用具有b×b循环的QC-LDPC码时,每个b位的循环独立地且并行地更新。
在迭代消息传递LDPC解码的硬件实现方式中,可以使用分层方法来进一步改善最小和解码的解码效率。分层最小和解码基于校验节点消息的串行(例如,顺序、有序等)更新。分层编码不是将所有消息从变量节点发送到校验节点,然后将所有消息从校验节点发送到变量节点,而是以(一些)顺序次序越过(go over)校验节点,使得对于每个更新校验节点,所有消息被递送并处理,然后发送到相邻变量节点。对校验节点的这样的调度和/或串行更新使得能够立即传播新更新的消息,这与其中更新的消息只可以在下一迭代传播的泛洪方案不同。换言之,泛洪方法不服从在解码迭代之间停止或暂停或解码,并在那时输出解码码字,而分层解码的调度和/或串行方法确实准许或以其它方式允许这个。
与泛洪最小和解码方法相比,分层最小和解码方法将收敛速度大约增加两倍。此外,它提供了速度和存储器之间的良好权衡。这是通过在动态校验节点到变量节点消息上进行迭代来实现的,通过
Figure 376313DEST_PATH_IMAGE058
来表示。具体地,设变量节点
Figure 977059DEST_PATH_IMAGE059
,并且因此在层
Figure 971560DEST_PATH_IMAGE060
上的
Figure 817418DEST_PATH_IMAGE061
被定义为:
Figure 580975DEST_PATH_IMAGE062
其中上标 (last) 表示最近更新的数据片。要注意,在分层最小和解码中,利用在最后层处更新的变量节点到校验节点消息(除了最后的全都来自当前迭代)来更新当前层中的校验节点到变量节点
Figure 352622DEST_PATH_IMAGE063
。相比之下,在泛洪解码更新中,校验节点到变量节点消息
Figure 568840DEST_PATH_IMAGE064
利用每个在最后迭代处生成的变量节点到校验节点消息。
Figure 716924DEST_PATH_IMAGE065
存储器利用信道消息
Figure 334987DEST_PATH_IMAGE066
来初始化,并且不需要专门的存储器来存储
Figure 543115DEST_PATH_IMAGE067
,而利用泛洪方法,
Figure 981049DEST_PATH_IMAGE067
被存储,但不存储
Figure 667246DEST_PATH_IMAGE068
Figure 405394DEST_PATH_IMAGE069
被如下迭代地进行计算。设
Figure 784423DEST_PATH_IMAGE070
是当前层,并且
Figure 709654DEST_PATH_IMAGE071
是与变量节点
Figure 199541DEST_PATH_IMAGE072
相关联的前一层。前一层被声明或以其它方式被如下定义(例如,数学上)。设
Figure 526617DEST_PATH_IMAGE073
是与变量节点
Figure 76547DEST_PATH_IMAGE074
直接连接的所有校验节点,则针对
Figure 754653DEST_PATH_IMAGE075
Figure 782652DEST_PATH_IMAGE076
(下标字母
Figure 229814DEST_PATH_IMAGE077
)是
Figure 685066DEST_PATH_IMAGE078
(下标字母
Figure 850468DEST_PATH_IMAGE077
加数字1)的前一层,并且
Figure 416579DEST_PATH_IMAGE079
Figure 485291DEST_PATH_IMAGE080
(下标数字1)的前一层。
APP消息
Figure 111445DEST_PATH_IMAGE081
在层
Figure 764143DEST_PATH_IMAGE082
处被计算为:
Figure 133944DEST_PATH_IMAGE083
其中
Figure 290119DEST_PATH_IMAGE084
(下标
Figure 352753DEST_PATH_IMAGE085
下标字母
Figure 227168DEST_PATH_IMAGE086
右箭头字母
Figure 666240DEST_PATH_IMAGE086
)是新更新的,并且
Figure 942500DEST_PATH_IMAGE087
由下式迭代地更新:
Figure 910456DEST_PATH_IMAGE088
其中
Figure 272168DEST_PATH_IMAGE089
是在前一迭代期间保存的。分层解码可以应用到所有类型的迭代消息传递解码,包括和积算法(SPA)和最小和解码。图4中描述了一种没有提前收敛的硬件易处理的(amenable)分层最小和解码过程。
图4是图示出没有提前收敛的分层最小和解码过程的示例的图。在这个示例中,过程通过初始化数据(400)开始。在第1-8行(402)中,该过程然后通过分层消息传递的第一迭代并生成解码码字
Figure 249351DEST_PATH_IMAGE090
和校验子(γ)。
第9行(404)是输出(成功地)解码的码字的第一机会。如第9行中所示,解码过程必须超出第一迭代。这意味着,在这个较旧且较慢的技术中,输出解码码字的第一机会刚好在第一迭代之后,当:
Figure 380118DEST_PATH_IMAGE091
(例如,参见第1行处的for循环),
Figure 581292DEST_PATH_IMAGE092
(例如,参见第2行处的for循环),并且
Figure 430299DEST_PATH_IMAGE093
(例如,参见第4行处的for循环)时。
注意,图4中所示的示例性解码过程将每个校验节点视为层,使得
Figure 435340DEST_PATH_IMAGE094
具有单元素。当使用具有b×b循环的QC-LDPC码时,循环内的b个校验节点被视为层,每个独立且并行地进行处理。在这个QC-LDPC场景中,图4中所示过程的第1行(406)将改为:
Figure 686193DEST_PATH_IMAGE095
换言之,
Figure 261531DEST_PATH_IMAGE096
是通过索引
Figure 597834DEST_PATH_IMAGE097
迭代的集合,使得
Figure 651241DEST_PATH_IMAGE098
Figure 756600DEST_PATH_IMAGE099
返回到第9行(404)处第一迭代结束时的收敛检查,这背后的基本原理基于初始化值(400)。 要注意,解码字
Figure 502839DEST_PATH_IMAGE090
和校验子(γ)两者被初始化成全零。因此,如果在迭代开始时针对全零来检查校验子(例如,检查校验子向量是否指示解码成功并且已去除所有错误),则将发生假收敛(假阳性)。相比之下,在解码结束时(例如,在第一完整解码迭代结束时),由解码器更新所有变量位,从而真正反映解码字。因此,在第一迭代之后检查收敛并在校验子为全零时终止解码器是安全的。
虽然在第一完整迭代结束时检查校验子(如图4中所示)是确保没有假阳性的安全选择,但是利用分层解码,比那个更早地检查校验子是可能的,同时仍确保不将发生假阳性。例如,要注意,所有实际LDPC奇偶校验矩阵
Figure 60860DEST_PATH_IMAGE100
的列权重至少为2(即w≥ 2)。因此,由分层解码器在单个迭代中对每个变量位处理至少2次。在一些情况下(例如,当仅存在几个错误时),由解码器的单次通过就足以去除所有错误,并且那个迭代中的第二次通过(例如,由示例性列权重2所指示的)是不必要的。换句话说,在一些情况下,可能仅花费迭代的一小部分来成功地处理所有变量位。因此,在具有提前收敛的一些实施例中,跟踪未处理的变量位(例如,由变量节点输出的位)的数目,并且计数一达到零就执行校验子检查。下图示出了这个的示例。
图5是图示出分层最小和低密度奇偶校验(LDPC)解码器的实施例的图,该解码器监视状态以确定何时已出现提前收敛校验点。为了保持图的可读性,并未示出与技术不相关的一些元素(例如,校验节点)。
在非QC-LDPC示例中,存在输出多个变量位的
Figure 183537DEST_PATH_IMAGE101
个变量节点(500)。
Figure 877823DEST_PATH_IMAGE101
个监视块(502)每个输入对应的变量位,并且确定那个变量位(变量节点)何时已被(例如,充分地)处理,以便如果校验子检查被执行,则不将产生假阳性。例如,如果由监视器(502)输出的状态信号的值为1(作为示例),则那意味着对应的变量节点或变量位已经具有对它执行的至少一些LDPC解码(例如,因此可以信任由那个变量节点或变量位生成的校验子),而0意味着对应的变量位尚未被(例如,充分地)处理。监视块是说明性和/或示例性的以传达概念,并且在一些实施例中不是必要的,因为系统内已经存在可以重用或以其它方式改换意图作为状态信号的信号。
由监视块(402)生成的状态信号被输入到AND块(504)以生成集合状态信号。当所有变量位已被处理(例如,由状态信号全为1来指示)时,集合状态信号为1。
集合状态信号由分层最小和解码控制器(506)来输入。当集合状态信号从0变到1时,LDPC解码暂停(例如,消息传递暂停),同时控制器(506)检查校验子(508)以查看校验子是否为全零。如果校验子(508)为全零,则控制器(506)输出解码码字(510)作为输出数据。
在一些实施例中,使用QC-LDPC码。在这样的实施例中,
Figure 794963DEST_PATH_IMAGE100
矩阵是其中并行处理循环内所有位的准循环
Figure 105859DEST_PATH_IMAGE100
矩阵。因此,在QC-LDPC实施例中,跟踪未处理循环的数目就足够了。如本文中所示出的,在QC-LDPC示例中,监视块(502)跟踪循环(500)而非变量节点的状态。要注意,存在(多达)
Figure 766648DEST_PATH_IMAGE102
个循环(与非QC-LDPC示例中的
Figure 581020DEST_PATH_IMAGE101
个变量节点相反),因此相应地调整监视块(502)的数目,以便存在
Figure 934641DEST_PATH_IMAGE103
个监视块。
下图以流程图来更正式和/或一般地描述了这个。
图6A是图示出具有提前收敛的低密度奇偶校验(LDPC)解码过程的实施例的流程图,该解码过程监视校验节点状态以确定何时已出现提前收敛校验点。图6A与图1相关,并且为了方便起见,使用相同或类似的参考数字来指示相关步骤。
在100处,接收具有一个或多个错误的LDPC编码数据。
在102a处,接收与提前收敛校验点相关联的信息,包括通过接收至少部分地基于与多个变量节点相关联的多个状态的集合状态信号。例如,在图5中,由AND块(504)基于来自监视块(502)的状态信号来输出集合状态信号。
在104a处,使用与提前收敛校验点相关联的信息来对LDPC编码数据执行解码,直至提前收敛校验点,并生成解码码字,其中提前收敛校验点先于分层最小和LDPC解码的第一完全迭代;并且响应于指示已到达提前收敛校验点的集合状态信号,暂停LDPC解码,其中LDPC解码包括分层最小和LDPC解码。例如,图5中的控制器(506)可以响应于集合状态信号的断言而停止变量节点(500)和校验节点之间的消息传递,以便控制器可以检查校验子(508)。
然后,该过程继续到图1中的步骤106,并且如上面所描述那样进行。
图6B是图示出具有提前收敛的低密度奇偶校验(LDPC)解码过程的实施例的流程图,该解码过程监视循环状态以确定何时已出现提前收敛校验点。图6B与图1相关,并且为了方便起见,使用相同或类似的参考数字来指示相关步骤。
在100b处,接收具有一个或多个错误的LDPC编码数据,其中LDPC编码数据包括QC-LDPC编码数据。
在102b处,接收与提前收敛校验点相关联的信息,包括通过接收至少部分地基于与多个循环相关联的多个状态的集合状态信号。如上面所描述的,利用QC-LDPC码,监视循环是足够的。这比监视所有变量节点(作为示例)更加高效(对于QC-LDPC实施例),因为存在比变量节点更少的循环,并且因此在监视循环时使用较少的监视逻辑和/或路由。
在104b处,使用与提前收敛校验点相关联的信息来对LDPC编码数据执行分层最小和LDPC解码,直至提前收敛校验点,并生成解码码字,包括通过响应于指示已到达提前收敛校验点的集合状态信号,暂停分层最小和LDPC解码,其中提前收敛校验点先于分层最小和LDPC解码的第一完全迭代,并且LDPC解码包括分层最小和LDPC解码。
然后,该过程继续到图1中的步骤106,并且如上面所描述那样来进行。
取决于实现方式和/或应用,用于确定何时已出现提前收敛校验点的不同实施例可以是合乎期望的。例如,假设由于分层最小和解码器的特定实现方式,变量节点或循环被分散开。因此,监视(在图5-6B中对其一些示例进行描述)可能会消耗比针对一些应用合乎期望的更多的路由区域。或者(再次由于特定实现方式),监视块(例如,图5中的502)的大小可能比针对一些应用合乎期望的更大。出于这些原因,可能期望具有其他方法来确定何时已出现提前收敛校验点。下面的示例描述(预)计算分式迭代计数,其中在当前分式迭代计数达到目标分式迭代计数时,分层最小和解码控制器停止。
利用分层最小和解码,其中在各种层中执行解码的顺序(例如,在第一层、第二层等之内处理变量位(用于QC-LDPC并行处理的循环)时的排序和/或时序)是提前已知的。这个已知的定序或排序允许确切的层数(用
Figure 201674DEST_PATH_IMAGE104
表示)连同对应于零个未处理变量位(QC-LDPC并行处理的循环)的相关联变量索引(QC-LDPC并行处理的循环索引)(用
Figure 666153DEST_PATH_IMAGE105
表示),这继而允许将分式迭代计数(用
Figure 335032DEST_PATH_IMAGE106
表示)计算或以其它方式确定为:
Figure 859554DEST_PATH_IMAGE107
其中
Figure 380928DEST_PATH_IMAGE108
Figure 383519DEST_PATH_IMAGE109
的层数(或者在QC并行处理的情况下是
Figure 172483DEST_PATH_IMAGE110
),并且
Figure 867907DEST_PATH_IMAGE111
表示第
Figure 109532DEST_PATH_IMAGE112
层的权重。然后,分层最小和解码器将跟踪分式迭代,并且在当前分式迭代计数超过分式迭代计数
Figure 650235DEST_PATH_IMAGE113
时,解码将暂停(例如,在下一个方便的点处,诸如在下一层结束时)。
下面各图示出了使用QC-LDPC示例进行此计算的视觉示例。
图7A是图示出在第一层期间处理的
Figure 559285DEST_PATH_IMAGE114
矩阵中的QC-LDPC循环的实施例的图。在这个示例中,
Figure 160031DEST_PATH_IMAGE114
矩阵(700a)给出分层解码调度,其中循环(由移位单位矩阵I 0, I 1, I 2, ……,I 47表示)按顺序次序迭代处理。在这个示例中,
Figure 154532DEST_PATH_IMAGE114
矩阵(700a)有6层(要注意,例如,
Figure 498925DEST_PATH_IMAGE114
矩阵中的6行),以及恒定权重为3(例如,每层或行被处理三次)。
在第一层(702)期间,处理移位单位矩阵I 0I 6。在第一迭代期间处理的具有非零值(即循环)的列通过使用那些列上方的复选标记来指示。
图7B是图示出在第二层期间处理的
Figure 262482DEST_PATH_IMAGE114
矩阵中的QC-LDPC循环的实施例的图。在第二层(710)期间,处理
Figure 768550DEST_PATH_IMAGE114
矩阵(700b)中的移位单位矩阵I 7I 14。在包含第二层中处理的那些移位单位矩阵的那些列上方已添加复选标记(即示出的复选标记是累积的)。
图7C是图示出在第三层期间处理的
Figure 250347DEST_PATH_IMAGE114
矩阵中的QC-LDPC循环的实施例的图。在第三层(720)期间,处理
Figure 398431DEST_PATH_IMAGE114
矩阵(700c)中的移位单位矩阵I 15I 22。在第三层结束之前(例如,从左转到右),I 20(722)是循环,在该处,所有列已被处理至少一次,具有非零值和/或循环。要注意,例如,当处理顺序到达I 20(722)时,每列上方存在复选标记。
一旦
Figure 16494DEST_PATH_IMAGE114
矩阵中的所有列已被用非零值处理至少一次,这就对应于其中存在零个未处理循环(或变体位)的状态,并且因此检查校验子是安全的,以查看解码过程是否可以停止,因为所有错误已被去除。换句话说,I 20(722)对应于提前收敛校验点,在该处可以安全地执行解码器的检查,而并不担心假阳性。
返回到等式(19),分式迭代计数
Figure 959043DEST_PATH_IMAGE115
将使用等式(19)的QC-LDPC版本被计算为
Figure 662556DEST_PATH_IMAGE116
,其中
Figure 348753DEST_PATH_IMAGE117
表示第
Figure 86902DEST_PATH_IMAGE118
层的汉明权重,并且
Figure 701816DEST_PATH_IMAGE119
表示最后未处理循环的阈值索引。从概念上讲,总和中的第一项表示到达I 20(722)的完全或完整层的数目,在这种情况下,总共6层中的图7A中的第一层(702)和图7B中的第二层(710)。总和中的第二项表示到达I 20(722)的最后层的部分或分式部分,在这种情况下,第三行(720)中到达I 20(722)的列数在图7C中从左转到右。
作为一个实际问题,在层的中间暂停解码可能是困难的。例如,在图7C中,在一些实现方式中,恰好在I 20(722)之后暂停处理可能是困难或不可能的,并且在第三层(720)结束时暂停处理可能是更实际或可行的。因此,更简单和/或更加硬件方便的分式迭代计数
Figure 892626DEST_PATH_IMAGE120
可以如下来计算:
Figure 116934DEST_PATH_IMAGE121
其中针对非QC-LDPC码给出了等式。从概念上讲,在图7C中所示
Figure 709589DEST_PATH_IMAGE122
矩阵(700c)的上下文中,
Figure 259519DEST_PATH_IMAGE123
是到达I 21(722)的完整层或行的数目,加上最后(例如,部分)包含I 21(722)的层或行的数目,除以层或行的总数(即
Figure 937625DEST_PATH_IMAGE124
)。描述这个的另一方式是说,对于其中解码器不能容易地或可行地停止在层或行中间的那些实施例,精确计算等式(19)中的第二项是不值得努力的,因此等式(19)中的第二项“四舍五入”到相当于整层或行。
短暂地返回到图4中所示出的解码示例,利用上面的技术,第9行(404)将以:“如果校验子γ=0且分式迭代数>
Figure 965624DEST_PATH_IMAGE125
(任何适当的变体),则返回解码码字
Figure 412786DEST_PATH_IMAGE126
”来被替换。然而,与图4的示例不同,本文中描述的过程不需要在检查是否已去除所有错误之前完成完全或整个迭代。
下图以流程图来更加正式和/或一般地描述这些示例。
图8是图示出具有使用分式迭代计数的提前收敛的低密度奇偶校验(LDPC)解码过程的实施例的流程图。图8与图1相关,并且为了方便起见,使用相同或类似的参考数字来指示相关步骤。
在100处,接收具有一个或多个错误的LDPC编码数据。在一些实施例中,LDPC编码数据是QC-LDPC编码数据。
在102c处,接收与提前收敛校验点相关联的信息,包括通过接收分式迭代计数。例如,可以依照等式(19)来计算分式迭代计数(
Figure 868038DEST_PATH_IMAGE127
),或者可以依照等式(20)来计算分式迭代计数
Figure 33440DEST_PATH_IMAGE128
在104c处,使用与提前收敛校验点相关联的信息来对LDPC编码数据执行分层最小和LDPC解码,直至提前收敛校验点,并且生成解码码字,包括通过接收LDPC解码的当前迭代;并且响应于当前迭代超过分式迭代计数,暂停LDPC解码,其中提前收敛校验点先于LDPC解码的第一完全迭代,并且LDPC解码包括分层最小和解码。
如上面所描述的,在一些情况下,可能存在在该处更容易或更方便暂停解码的某些点(例如,在层结束处),并且在一些实施例中,在那里暂停解码。
然后,该过程继续到图1中的步骤106,并且如上面所描述的那样来进行。
短暂地返回到图7A-7C,要注意,
Figure 865130DEST_PATH_IMAGE129
矩阵可以在行或列上预先置换(例如,以优化某些硬件设计度量,诸如将
Figure 166798DEST_PATH_IMAGE130
最小化),同时仍保持代码特性。下图示出了图7A-7C中所示
Figure 58531DEST_PATH_IMAGE129
矩阵的替代形式。
图9是图示出置换
Figure 445650DEST_PATH_IMAGE129
矩阵的实施例的图。在这个示例中,
Figure 81031DEST_PATH_IMAGE131
矩阵(900)是图7A-7C中所示出的
Figure 237205DEST_PATH_IMAGE129
矩阵(700a-700c)的置换。这个矩阵置换或操作仍然维持代码特性。
利用
Figure 299839DEST_PATH_IMAGE132
矩阵(900)中所示出的置换,解码器执行直至I 22(902)的处理,以确保所有循环(或变量位)已被处理,以便检查校验子是安全的。在这个示例中,I 22(902)位于第二行或层中,并且因此与图7A-7C的示例相比,在这个示例中的提前收敛校验点之前,解码器将“开启”达较短的持续时间。换句话说,可以探索
Figure 174254DEST_PATH_IMAGE129
矩阵的置换或替代形式(即与不同顺序或排序相关联)但其仍具有适当的代码特性,以便在提前收敛校验点出现之前将时间量最小化。
下图以流程图来更加正式和/或一般地描述这些示例。
图10是图示出用以确定最小分式迭代计数的过程的实施例的流程图。在一些实施例中,这个过程被用来确定在图1中的步骤102处作为与提前收敛校验点相关联的信息(其部分)接收的分式迭代计数。
在1000处,接收第一分层解码调度和第二分层解码调度。如本文中所使用的,分层解码调度指的是通过其来执行分层最小和解码(例如,其特定实现方式)的调度。例如,图7A-7C中的
Figure 613326DEST_PATH_IMAGE129
矩阵(700a-700c)示出了一个分层解码调度,并且图9中的
Figure 624007DEST_PATH_IMAGE133
矩阵(900)示出了另一分层解码调度。
在1002处,至少部分地基于第一分层解码调度来确定第一潜在分式迭代计数。在1004处,至少部分地基于第二分层解码调度来确定第二潜在分式迭代计数。例如,参见等式(19)和(20)以及图7A-7C中描述的示例。虽然这个示例仅描述了两个调度和两个潜在的分式迭代计数,但是可以分别输入和生成任何数字。
在1006处,将第一潜在分式迭代计数或第二潜在分式迭代计数中的最小一个选择成分式迭代计数。例如,较低的分式迭代计数允许更快地到达提前收敛校验点,以便可以节省更多功率和/或处理资源。
虽然已出于清楚理解的目的对前述实施例进行了一些详细描述,但是本发明并没有被限制到所提供的细节。存在实现本发明的许多替换方式。所公开的实施例是说明性的并且不是限制性的。

Claims (20)

1.一种系统,包括:
存储器;和
被耦合到所述存储器的处理器,并且所述处理器被配置为:
接收具有一个或多个错误的低密度奇偶校验(LDPC)编码数据;
接收与提前收敛校验点相关联的信息;
使用与所述提前收敛校验点相关联的信息来对所述LDPC编码数据执行LDPC解码,直至所述提前收敛校验点,并且生成解码码字,其中所述提前收敛校验点先于所述LDPC解码的第一完全迭代;
确定所述LDPC解码是否成功;以及
在确定所述LDPC解码成功的情况下,输出所述解码码字。
2.根据权利要求1所述的系统,其中使用与所述提前收敛校验点相关联的信息包括使用以下中的一个或多个:分层最小和LDPC解码或和积算法(SPA)LDPC解码。
3.根据权利要求1所述的系统,其中所述LDPC编码数据是经由通信信道接收的。
4.根据权利要求1所述的系统,其中所述LDPC编码数据是经由存储系统接收的。
5.根据权利要求1所述的系统,其中:
接收与所述提前收敛校验点相关联的信息包括:接收至少部分地基于与多个变量节点相关联的多个状态的集合状态信号;以及
使用与所述提前收敛校验点相关联的信息包括:响应于指示已到达所述提前收敛校验点的所述集合状态信号,暂停所述LDPC解码,其中所述LDPC解码包括分层最小和LDPC解码。
6.根据权利要求1所述的系统,其中:
所述LDPC编码数据包括QC-LDPC编码数据;
接收与所述提前收敛校验点相关联的信息包括:接收至少部分地基于与多个循环相关联的多个状态的集合状态信号;以及
使用与所述提前收敛校验点相关联的信息包括:响应于指示已到达所述提前收敛校验点的所述集合状态信号,暂停所述LDPC解码,其中所述LDPC解码包括分层最小和LDPC解码。
7.根据权利要求1所述的系统,其中:
接收与所述提前收敛校验点相关联的信息包括:接收分式迭代计数;以及
使用与所述提前收敛校验点相关联的信息包括:
接收所述LDPC解码的当前迭代;以及
响应于所述当前迭代超过所述分式迭代计数,暂停所述LDPC解码,其中所述LDPC解码包括分层最小和解码。
8.根据权利要求1所述的系统,其中与所述提前收敛校验点相关联的信息被确定,包括通过:
接收第一分层解码调度和第二分层解码调度,其中所述LDPC解码包括分层最小和解码;
至少部分地基于第一分层解码调度来确定第一潜在分式迭代计数;
至少部分地基于第二分层解码调度来确定第二潜在分式迭代计数;以及
将第一潜在分式迭代计数或第二潜在分式迭代计数中的最小一个选择成分式迭代计数。
9.一种方法,包括:
接收具有一个或多个错误的低密度奇偶校验(LDPC)编码数据;
接收与提前收敛校验点相关联的信息;
使用与所述提前收敛校验点相关联的信息来对所述LDPC编码数据执行LDPC解码,直至所述提前收敛校验点,并且生成解码码字,其中所述提前收敛校验点先于所述LDPC解码的第一完全迭代;
确定所述LDPC解码是否成功;以及
在确定所述LDPC解码成功的情况下,输出所述解码码字。
10.根据权利要求9所述的方法,其中使用与所述提前收敛校验点相关联的信息包括使用以下中的一个或多个:分层最小和LDPC解码或和积算法(SPA)LDPC解码。
11.根据权利要求9所述的方法,其中所述LDPC编码数据是经由通信信道接收的。
12.根据权利要求9所述的方法,其中所述LDPC编码数据是经由存储系统接收的。
13.根据权利要求9所述的方法,其中:
接收与所述提前收敛校验点相关联的信息包括:接收至少部分地基于与多个变量节点相关联的多个状态的集合状态信号;以及
使用与所述提前收敛校验点相关联的信息包括:响应于指示已到达所述提前收敛校验点的所述集合状态信号,暂停所述LDPC解码,其中所述LDPC解码包括分层最小和LDPC解码。
14.根据权利要求9所述的方法,其中:
所述LDPC编码数据包括QC-LDPC编码数据;
接收与所述提前收敛校验点相关联的信息包括:接收至少部分地基于与多个循环相关联的多个状态的集合状态信号;以及
使用与所述提前收敛校验点相关联的信息包括:响应于指示已到达所述提前收敛校验点的所述集合状态信号,暂停所述LDPC解码,其中所述LDPC解码包括分层最小和LDPC解码。
15.根据权利要求9所述的方法,其中:
接收与所述提前收敛校验点相关联的信息包括:接收分式迭代计数;以及
使用与所述提前收敛校验点相关联的信息包括:
接收所述LDPC解码的当前迭代;以及
响应于所述当前迭代超过所述分式迭代计数,暂停所述LDPC解码,其中所述LDPC解码包括分层最小和解码。
16.根据权利要求9所述的方法,其中与所述提前收敛校验点相关联的信息被确定,包括通过:
接收第一分层解码调度和第二分层解码调度,其中所述LDPC解码包括分层最小和解码;
至少部分地基于第一分层解码调度来确定第一潜在分式迭代计数;
至少部分地基于第二分层解码调度来确定第二潜在分式迭代计数;以及
将第一潜在分式迭代计数或第二潜在分式迭代计数中的最小一个选择成分式迭代计数。
17.一种计算机程序产品,所述计算机程序产品包含在非暂时性计算机可读介质中并且包括计算机指令,用于:
接收具有一个或多个错误的低密度奇偶校验(LDPC)编码数据;
接收与提前收敛校验点相关联的信息;
使用与所述提前收敛校验点相关联的信息来对所述LDPC编码数据执行LDPC解码,直至所述提前收敛校验点,并且生成解码码字,其中所述提前收敛校验点先于所述LDPC解码的第一完全迭代;
确定所述LDPC解码是否成功;以及
在确定所述LDPC解码成功的情况下,输出所述解码码字。
18.根据权利要求17所述的计算机程序产品,其中:
接收与所述提前收敛校验点相关联的信息包括:接收至少部分地基于与多个变量节点相关联的多个状态的集合状态信号;以及
使用与所述提前收敛校验点相关联的信息包括:响应于指示已到达所述提前收敛校验点的所述集合状态信号,暂停所述LDPC解码,其中所述LDPC解码包括分层最小和LDPC解码。
19.根据权利要求17所述的计算机程序产品,其中:
所述LDPC编码数据包括QC-LDPC编码数据;
接收与所述提前收敛校验点相关联的信息包括:接收至少部分地基于与多个循环相关联的多个状态的集合状态信号;以及
使用与所述提前收敛校验点相关联的信息包括:响应于指示已到达所述提前收敛校验点的所述集合状态信号,暂停所述LDPC解码,其中所述LDPC解码包括分层最小和LDPC解码。
20.根据权利要求17所述的计算机程序产品,其中:
接收与所述提前收敛校验点相关联的信息包括:接收分式迭代计数;以及
使用与所述提前收敛校验点相关联的信息包括:
接收所述LDPC解码的当前迭代;以及
响应于所述当前迭代超过所述分式迭代计数,暂停所述LDPC解码,其中所述LDPC解码包括分层最小和解码。
CN202210390168.2A 2021-05-03 2022-04-14 用于ldpc码的解码的提前收敛 Pending CN115296675A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/306057 2021-05-03
US17/306,057 US11218166B1 (en) 2021-05-03 2021-05-03 Early convergence for decoding of LDPC codes

Publications (1)

Publication Number Publication Date
CN115296675A true CN115296675A (zh) 2022-11-04

Family

ID=79169604

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210390168.2A Pending CN115296675A (zh) 2021-05-03 2022-04-14 用于ldpc码的解码的提前收敛

Country Status (2)

Country Link
US (2) US11218166B1 (zh)
CN (1) CN115296675A (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4133631A4 (en) * 2020-04-07 2023-09-27 Telefonaktiebolaget LM ERICSSON (PUBL) NETWORK NODE AND IMPROVED DECODING METHOD IN A NETWORK NODE

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1937413A (zh) * 2006-09-30 2007-03-28 东南大学 双涡轮结构低密度奇偶校验码解码器
US20100281337A1 (en) * 2009-04-29 2010-11-04 The Hong Kong University Of Science And Technology Analog iterative decoder with early-termination
US20140068381A1 (en) * 2012-09-04 2014-03-06 Lsi Corporation LDPC Decoder Irregular Decoding of Regular Codes
US20200091933A1 (en) * 2018-09-13 2020-03-19 Apple Inc. Iterative decoding with early termination criterion that permits errors in redundancy part

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9100153B2 (en) * 2008-09-25 2015-08-04 The Royal Institution For The Advancement Of Learning/Mcgill University Methods and systems for improving iterative signal processing
KR101286858B1 (ko) * 2009-12-21 2013-07-17 한국전자통신연구원 저밀도 패리티 검사 부호를 위한 고속 복호 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1937413A (zh) * 2006-09-30 2007-03-28 东南大学 双涡轮结构低密度奇偶校验码解码器
US20100281337A1 (en) * 2009-04-29 2010-11-04 The Hong Kong University Of Science And Technology Analog iterative decoder with early-termination
US20140068381A1 (en) * 2012-09-04 2014-03-06 Lsi Corporation LDPC Decoder Irregular Decoding of Regular Codes
US20200091933A1 (en) * 2018-09-13 2020-03-19 Apple Inc. Iterative decoding with early termination criterion that permits errors in redundancy part

Also Published As

Publication number Publication date
US11218166B1 (en) 2022-01-04
US20220376706A1 (en) 2022-11-24
US11664823B2 (en) 2023-05-30

Similar Documents

Publication Publication Date Title
US10511326B2 (en) Systems and methods for decoding error correcting codes
US8489957B2 (en) Lower-complexity layered belief propagation decoding LDPC codes
KR101535225B1 (ko) 디코딩 방법 및 그 방법을 이용하는 메모리 시스템 장치
CN107425856B (zh) 低密度奇偶校验译码器以及对其进行省电的方法
CN107528597B (zh) 一种基于crc校验码的ldpc码后处理译码方法
US11115051B2 (en) Systems and methods for decoding error correcting codes
CN107370490B (zh) 结构化ldpc的编码、译码方法及装置
CN105743515B (zh) 低密度奇偶校验解码器
US20110246862A1 (en) Hard input low density parity check decoder
TW201703442A (zh) 階層式低密度奇偶碼解碼器的早期退出系統及方法
KR20170097580A (ko) 폴라 코딩 장치
JP2008035524A (ja) 反復確率伝搬を使用して記号ブロックを復号化する装置および方法
CN109586731B (zh) 用于解码纠错码的系统和方法
WO2011109084A1 (en) Quasi-cyclic ldpc encoding and decoding for non-integer multiples of circulant size
Jian et al. Approaching capacity at high rates with iterative hard-decision decoding
US10848182B2 (en) Iterative decoding with early termination criterion that permits errors in redundancy part
Nguyen-Ly et al. Flexible, cost-efficient, high-throughput architecture for layered LDPC decoders with fully-parallel processing units
US10484012B1 (en) Systems and methods for decoding quasi-cyclic (QC) low-density parity-check (LDPC) codes
JP6446459B2 (ja) 値集合の中から第1の極値および第2の極値を識別するための方法および装置
KR101657912B1 (ko) 비이진 저밀도 패리티 검사 코드의 복호화 방법
KR20060071856A (ko) 채널 코드를 이용한 복호화 및 복호화 장치
CN115296675A (zh) 用于ldpc码的解码的提前收敛
US20170134048A1 (en) Message-passing based decoding using syndrome information, and related methods
WO2021063217A1 (zh) 一种译码方法及装置
CN114982136A (zh) 具有去饱和的低密度奇偶校验解码

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