CN102859885B - Ldpc选择性解码调度的实现 - Google Patents

Ldpc选择性解码调度的实现 Download PDF

Info

Publication number
CN102859885B
CN102859885B CN201180017954.8A CN201180017954A CN102859885B CN 102859885 B CN102859885 B CN 102859885B CN 201180017954 A CN201180017954 A CN 201180017954A CN 102859885 B CN102859885 B CN 102859885B
Authority
CN
China
Prior art keywords
group
node
check
layer
iteration
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
CN201180017954.8A
Other languages
English (en)
Other versions
CN102859885A (zh
Inventor
吴建文
杨国华
曾令琪
寇宇
A.R.贾内桑
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.)
SK Hynix Memory Solutions America Inc
Original Assignee
SK Hynix Memory Solutions America Inc
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 SK Hynix Memory Solutions America Inc filed Critical SK Hynix Memory Solutions America Inc
Publication of CN102859885A publication Critical patent/CN102859885A/zh
Application granted granted Critical
Publication of CN102859885B publication Critical patent/CN102859885B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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

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

公开了一种用于对数据进行解码的方法。该方法包括将低密度奇偶校验(LDPC)矩阵划分成多个群组,每个包括一个或多个校验节点层。该方法还包括至少部分地基于成本函数来选择群组中的一个,该成本函数至少部分地基于与变量节点相关联的信息或与校验节点相关联的信息或两者。该方法还包括对所选群组执行LDPC分层解码。

Description

LDPC选择性解码调度的实现
其他申请的交叉引用
本申请要求2010年4月9日提交的题为IMPLEMENTATION OF LDPC SELECTIVE DECODING SCHEDULING的美国临时专利申请号61/342,141(代理人档案号LINKP061+)的优先权,其被出于一切目的通过引用结合到本文中。
背景技术
低密度奇偶校验(LDPC)代码是一种纠错代码。LDPC代码正在变得日益流行以便对被写到诸如硬盘驱动器或闪速驱动器的存储介质的数据进行编码。
当与其他消息传递调度方法相比时,例如洪泛调度,LDPC分层解码在迭代数目方面具有更好的会聚速度和更好的解码性能。因此,开发用于LDPC分层解码的技术将是期望的。
附图说明
在以下详细描述和附图中描述了本发明的各种实施例。
图1是举例说明用于对数据进行解码的过程的实施例的流程图。
图2是示出校验节点群组的某些实施例的图示。
图3是举例说明用于失真LDPC编码数据的后续处理的过程的实施例的流程图。
图4和5示出基于成本函数按选择性顺序处理的一组校验节点的实施例。
图6A和6B示出使用被取作与校验节点相关联的输入信息的成本函数的实施例。
图7是示出与变量节点相关联的可靠性值的实施例的图示。
图8是示出包括被配置成使用成本函数来选择一组校验节点的纠错解码器的磁盘驱动系统的实施例的图示。
图9是示出被配置成基于成本函数来选择一组校验节点的系统的实施例的图示。
图10是示出被配置成评估成本函数并基于该一个或多个评估来选择一组校验节点的成本函数鉴别器的实施例的图示。
图11是示出包括校验节点存储块1102、选择性分层解码调度器1104以及用于基于成本函数按照选择性顺序来处理校验节点群组的LDPC分层解码器1106的系统1100的实施例的图示。
图12是示出被划分成多个校验节点层群组的LDPC矩阵1200的实施例的图示。
图13是示出选择性分层解码调度的示例性实施例的图示。
图14是示出选择性分层解码调度的第二示例性实施例的图示。
具体实施方式
本发明可以以许多方式来实现,包括作为过程;装置;系统;物质组成;在计算机可读存储介质上体现的计算机程序产品;和/或处理器、诸如被配置成执行存储在被耦合到处理器的存储器上和/或由其提供的指令的处理器。在本说明书中,可以将这些实施方式或本发明可以采取的任何其他形式称为技术。通常,在本发明的范围内可以修改公开的过程的步骤顺序。除非另外说明,可以将被描述为被配置成执行任务的诸如处理器或存储器的部件实现为被临时地配置成在给定时间执行任务的一般部件或被制造成执行任务的特定部件。本文所使用的术语‘处理器’指的是被配置成处理数据的一个或多个设备、电路和/或处理核,诸如计算机程序指令。
在各种实施例中,以多种系统或形式来实现本文所述的技术。在某些实施例中,以硬件将该技术实现为专用集成电路(ASIC)或现场可编程门阵列(FPGA)。在某些实施例中,使用处理器(例如诸如ARM核的嵌入式处理器),其中,为处理器提供或加载了用以执行本文所述技术的指令。在某些实施例中,将该技术实现为在计算机可读存储介质中体现并包括计算机指令的计算机程序产品。
下面连同举例说明本发明的原理的附图一起提供本发明的一个或多个实施例的详细描述。结合此类实施例描述了本发明,但本发明不限于任何实施例。本发明的范围仅由权利要求来限定,并且本发明包含许多替换、修改和等价物。在以下描述中阐述了许多特定细节以便提供本发明的透彻理解。这些细节是出于示例的目的提供的,并且可以在没有这些特定细节中的某些或全部的情况下根据权利要求来实施本发明。出于清楚的目的,未详细地描述与本发明有关的在技术领域中已知的技术材料,使得本发明不会不必要地含糊不清。
图1是举例说明用于对数据进行解码的过程的实施例的流程图。在所示的示例中,对失真LDPC(低密度奇偶校验)编码数据进行解码。LDPC代码是一类纠错代码。LDPC代码被定义为稀疏奇偶校验矩阵H的零空间。LDPC代码字 是能够满足H的所有校验节点的零空间中的向量。LDPC代码可以通过使用消息传递算法(诸如SPA(和-积算法)、最小和等)来实现相对好的错误性能。
LDPC代码的奇偶校验矩阵H与二分图有关,也称为坦纳(Tanner)图。给定LDPC代码的m×n奇偶校验矩阵H,坦纳图G的节点被划分成两组节点,VCV包含对应于H的列的n变量节点(或左节点)以及对应于H的行m校验节点(或右节点)。变量节点当且仅当奇偶校验矩阵H的相应条目是非零时才被连接到校验节点G中的节点的度被定义为被与之连接的边缘的数目。变量节点的度简单地等于H的其相应列的权值,并且校验节点的度简单地等于H的其相应行的权值。
在100处,获得成本函数。在某些实施例中,成本函数(f)接收与变量节点相关联的信息作为输入,诸如与每个变量节点相关联的失真可靠性值和来自已连接校验节点的已更新消息。在某些实施例中,f是校验节点信息的函数,诸如每组校验节点内的未被满足校验节点的数目。在某些实施例中,成本函数是校验节点和变量节点信息两者的函数。在某些实施例中,成本函数还将包括某些特殊约束(例如同一组的校验节点从不会在同一迭代中处理两次和/或同一组的校验节点从不会甚至在不同的迭代中连续地处理)。
在102处使用与变量节点相关联的信息和/或与校验节点相关联的信息针对多个校验节点群组中的每一个来评估成本函数。下面更详细地描述特定成本函数的某些示例。在104处至少部分地基于已评估成本函数来选择校验节点群组中的一个。例如,在某些实施例中,选择使已评估成本函数最小化/最大化的群组。如果存在使成本函数最小化的不止一个群组,则可以使用另一成本函数来执行另一选择。如果在评估所有成本函数之后仍存在多个群组剩余,则在某些实施例中任意地选择群组中的一个。
在106处,对与校验节点的所选群组相关联的数据执行与纠错解码相关的处理。在某些实施例中,这包括执行校验节点更新(例如通过-针对所选群组中的每个校验节点-基于来自所有其它连接变量节点的传入消息来计算到每个连接变量节点的传出消息)和变量节点更新(例如通过—针对连接到所选群组中的任何校验节点的每个变量节点—基于来自所有其他连接校验节点的传入消息来计算到每个连接校验节点的其传出消息)。
使用本文所述技术的一个益处是与某些其他技术相比在较短时间量内完成纠错解码(至少在某些情况下)。例如,假设存在m个校验节点群组,每个群组包括单校验节点。与始终按照群组1、群组2、...、群组m的顺序来处理校验节点群组的HSS处理技术相比,本文所述的技术可以更快地完成。例如,如果在群组m(即,在迭代中有待由HSS技术处理的最后一个群组)中仍存在某些错误或噪声,则本文所述的技术将可能在HSS技术之前选择并处理与群组m相关联的数据。
图2是示出校验节点群组的某些实施例的图示。在所示的图中,使用图1所示的示例性过程来使用成本函数而选择一组校验节点。在所示的第一示例中(图210),存在6个变量节点,其中的每个变量节点被连接到2个(总共4个之中)校验节点。4个校验节点中的每一个又被连接到总共6个变量节点中的3个。连接在失真LDPC编码数据的纠错解码期间控制信息的传播。
在图210中,第一组校验节点(群组1)包括3个校验节点:200a~200c。第二组校验节点(群组2)包括单校验节点:200d。针对每个群组,评估成本函数。针对群组1,已评估成本函数具有3的值。针对群组2,已评估成本函数具有5的值。在本示例中,选择具有最低已评估成本函数的群组(亦即群组1),并且对与所选群组(在本示例中即群组1)相关联的等式或函数执行纠错处理。
图220示出与在具有不同校验节点群组的图210中相同的变量节点、校验节点和连接。在图220中,存在四个群组,并且每个群组包括单校验节点。亦即,群组A包括校验节点200a,群组B包括校验节点200b,群组C包括校验节点200c,并且群组D包括校验节点200d。
针对所示的4个群组中的每一个,评估成本函数。已评估成本函数的值分别是7、4、1和4。在本示例中,选择具有最高已评估成本函数的群组,并对与群组A相关联的(一个或多个)函数/(一个或多个)等式执行纠错解码。
使用图210中所示的所选群组,下面示出了(在某些实施例中在图1中的106处所使用的)校验节点更新的更详细示例。在图210中,所选群组包括校验节点200a~200c。在校验节点更新期间,针对所选群组中的每个校验节点,基于来自所有其它连接变量节点的传入消息来确定到每个连接变量节点的传出消息。请注意,在下面的表格中未包括校验节点200d,因为其不在所选群组中。
来自校验节点200a 来自校验节点200b 来自校验节点200c
至变量节点201a 基于来自变量节点201b和201d的IN MSG 基于来自变量节点201c和201e的IN MSG
至变量节点201b 基于来自变量节点201a和201d的IN MSG
至变量节点201c 基于来自变量节点201a和201e的IN MSG 基于来自变量节点201d和201f的IN MSG
至变量节点201d 基于来自变量节点201a和201b的IN MSG 基于来自变量节点201c和201f的IN MSG
至变量节点201e 基于来自变量节点201a和201c的IN MSG
至变量节点201f 基于来自变量节点201c和201d的IN MSG
表1:使用图210作为示例的校验节点更新。
使用图210所示的所选群组,下面示出了(在某些实施例中在图1中的106处所使用的)变量节点更新的更详细示例。在某些实施例中,首先执行校验节点更新,并且然后执行变量节点更新。在变量节点更新期间,针对连接到所选群组中的校验节点的每个变量节点(在本示例中,所有变量节点连接到所选群组中的校验节点),基于来自所有其他连接校验节点的传入消息来确定要发送到连接校验节点的传出消息。
至校验节点200a 至校验节点200b 至校验节点200c 至校验节点200d
来自变量节点201a 基于来自校验节点200b的IN MSG 基于来自校验节点200a的IN MSG
来自变量节点201b 基于来自校验节点200d的IN MSG 基于来自校验节点200a的IN MSG
来自变量节点201c 基于来自校验节点200c的IN MSG Based on IN 基于来自校验节点200b的IN MSG
来自变量节点201d 基于来自校验节点200c的IN MSG 基于来自校验节点200a的IN MSG
来自变量节点201e 基于来自校验节点200d的IN MSG 基于来自校验节点200b的IN MSG
来自变量节点201f 基于来自校验节点200d的IN MSG 基于来自校验节点200c的IN MSG
表2:使用图220作为示例的变量节点更新。
如在上述示例中所示,一组校验节点可以包括一个或多个校验节点。在某些实施例中,每个群组具有相同数目的校验节点(参见例如图220);在其他实施例中,该群组在其中具有不同数目的校验节点(参见例如图210)。
图3是举例说明用于失真LDPC编码数据的后续处理的过程的实施例的流程图。在所示的示例中,图1中所示的过程继续。在此图中所示的某些处理类似于图1中所示的处理。例如,步骤102和308两者评估成本函数,步骤104和310基于已评估成本函数来选择一组校验节点,并且步骤106和312执行与纠错解码有关的处理。在某些实施例中,使用(例如单个)硬件部件或其他处理器来执行图1和3中的类似步骤。
在300处,确定纠错解码是否完成。在某些实施例中,这包括检查是否满足了所有奇偶校验。在一个示例中,这包括基于来自所有连接校验节点的信道信息和传入消息来计算用于每个变量节点的硬判定。如果判定)满足所有校验节点,则纠错解码是成功的且解码数据被输出。在某些实施例中,如果达到(例如预定义)最大数目的迭代,则解码结束。本文所使用的迭代包括(针对x个校验节点群组)x个选择。因此,如果存在x群组,在完整或完全迭代中存在x个选择。例如,在图2中的图示210中,完全或完整迭代包括2个选择(一个用于群组1且一个用于群组2),并且在图220中,完整或完全迭代包括选择/处理的4个实例(群组A~D中的每个一个)。
在304处确定是否存在任何剩余群组。例如,在图2中的图示210中,如果已经选择并处理了群组1和群组2两者,则至少在此迭代期间不存在剩余群组。如果不存在剩余群组,则如果在311处达到预定最大数目的迭代,则该过程将结束解码。如果不是,在该过程将在图1中的102处评估成本函数(例如针对所有群组,因为新的迭代正在开始)。否则(即如果在当前迭代期间存在剩余的至少一个群组),则在308处针对剩余群组评估成本函数。在某些实施例中,如果在迭代期间仅存在剩余的一个校验节点群组,则跳过步骤308并选择单个剩余群组而不评估成本函数。在310处,至少部分地基于已评估成本函数来选择剩余群组中的一个。在312处对与所选校验节点群组相关联的数据执行与纠错解码有关的处理。
下面的图将在图1和3中描述的示例性过程应用于示例性数据。
图4和5示出基于成本函数按选择性顺序处理的一组校验节点的实施例。在图400中,使用图1的示例性过程基于用于群组401a~401d的成本函数的评估来选择校验节点群组401a。在本示例中,用于群组A~D的已评估成本函数(分别)是7、4、1和4,并且(至少在本示例中)选择具有最高已评估成本函数的群组(即群组A)。
在在图400中选择群组401a并对与该群组相关联的数据执行处理之后,纠错处理未完成(例如因为一个或多个奇偶校验未被满足)。参见例如图3中的步骤300。然后在图402中选择下一个群组。由于在给定迭代期间至多只能选择一组校验节点一次,所以群组401a没有资格在图402中所示的时间点被选择。在某些实施例中,未针对不合格群组评估成本函数,因为其没有资格被选择。
第二次评估成本函数,并且至少在本示例中,用于每个群组的已评估成本函数在图400和402中是不同的。在图402中,用于群组B~D的已评估成本函数分别是3、0和6。选择群组D,因为其具有最高评估成本函数。
纠错处理未完成(例如一个或多个奇偶校验仍未被满足),并且在图404中,在图5中再次评估成本函数。选择群组B,因为其与群组C(2)相比具有更高的已评估成本函数(3)。在图406中,只剩下群组C,因为已经选择了所有其他群组(即群组A、B和D)。在某些实施例中,当只剩下一个校验节点群组或以其他方式合格时,不评估成本函数。
图6A和6B示出使用被取作与校验节点相关联的输入信息的成本函数的实施例。在所示的示例中,选择具有最小数目的未满足校验节点的校验节点群组。在某些实施例中,在其中存在相对低的信噪比(SNR)的应用或环境中使用此技术。
图600示出第i迭代的第一选择。在本示例中,用“U”来指示未满足校验节点(例如与校验节点相关联的奇偶校验未通过)。群组601c和601d具有最小数目的未满足校验节点(即0个未满足校验节点),并且在其之间存在联系。在本示例中选择群组601c。在图602中示出了该迭代的第二选择(例如,在与所选群组601c相关联的数据处理完成之后)。在图602中,群组601d具有最小数目的未满足校验节点且被选择。
在图604中示出了第i迭代的第三选择。在该选择期间,在第i迭代中尚未选择群组601a和601d,并且选择了群组601a,因为群组601b中的校验节点是未满足校验节点。
图6B包括示出了第i迭代的第四选择的图606。群组601b是唯一剩余群组且被选择。在图608中新的迭代开始。在图608中,群组601b和601d被联系在一起(严格地基于未满足校验节点的数目),因为两者都具有最小数目的未满足校验节点。因此至少在本示例中任意地选择群组601d。在某些实施例中,群组601d由于不对同一校验节点群组执行连续处理的约束(例如在成本函数中)而是唯一合格选择。在图610所示的第(i+1)迭代的第二选择中,在第(i+1)迭代中尚未选择群组601a~601c,并且选择了群组601b,因为其具有最小数目的未满足校验节点。
图7是示出与变量节点相关联的可靠性值的实施例的图示。在某些实施例中,使用与变量节点相关联的信息(诸如可靠性值)来评估用来选择一组校验节点的成本函数。下面更详细地描述某些示例。在下文所述的示例中,可靠性值可以是正值或负值,并且以下示例性过程使用可靠性值的绝对值(例如量值或振幅)。
在第一示例中,首先针对所有群组确定可靠性值的平均值,并且然后选择具有最大平均值的群组。使用图7所示的可靠性值,下面示出了其示例。在本示例中,在群组C(801c)与群组D(801d)之间存在联系。在本示例中(且在其他实施例中),可以采用任何仲裁,包括(例如)随机地选择群组中的一个、选择默认群组(例如第一/最后群组)、选择自从其最后被选择以来已经历最长时间的群组等。
用于关联变量节点的可靠性值(绝对值) 可靠性值的平均值
群组A 5、6和10 7
群组B 5、8和12 8⅓
群组C 8、10和14 10⅔ (用于最大平均值的联系:挑选群组C或群组D)
群组D 6、12和14 10⅔ (用于最大平均值的联系:挑选群组C或群组D)
表3:选择具有最大平均可靠性的群组的示例。
在第二示例中,选择具有在(例如预置)阈值以下的最小数目的可靠性值的群组。下表示出了使用图7中所示的数据和7的阈值的示例。使用此技术且用示例性可靠性值来选择群组C(801c)。
用于关联变量节点的可靠性值(绝对值) 在7的阈值以下的可靠性数目
群组A 5、6和10 2
群组B 5、8和12 1
群组C 8、10和14 0 (在7以下的可靠性的最小数目;挑选群组C)
群组D 6、12和14 1
表4:选择具有在阈值以下的可靠性的最小数目的群组的示例。
在第三示例中,选择具有最小可靠性中的最大一个的群组。也就是说,首先选择用于每个群组的最小可靠性值并且然后选择具有那些值中的最大一个的群组。下表示出了使用来自图7的可靠性值的示例。使用此技术且用示例性可靠性值来选择群组C(801c)。
用于关联变量节点的可靠性值(绝对值) 可靠性值中的最小一个
群组A 5、6和10 5
群组B 5、8和12 5
群组C 8、10和14 8 (最小值中的最大一个;选择群组C)
群组D 6、12和14 6
表5:选择具有最小可靠性值中的最大一个的群组的示例。
在某些实施例中,在其中SNR相对低的应用或情况中使用上文在表3~5中示出的三个技术。在某些此类低SNR环境中,存在许多小的错误,并且上述技术致力于传播比“坏”数据或信息更早的更可靠的数据或信息。
在各种实施例中,可以修改以上示例。例如,在第一示例的修改中,选择具有最小平均可靠性值的群组。在另一示例中,选择具有最大数目的具有在目前阈值以下的可靠性值的变量节点的群组。在另一示例中,针对选择了最小可靠性值的每个群组,则选择具有那些可靠性值中的最小一个的群组(即最小可靠性值中的最小一个)。在另一示例中,选择具有最大数目的未满足校验节点的群组。在某些实施例中,当SNR是相对高的,使得仅存在数目非常小的错误时,使用上文所述的示例。因此,存在选择一组校验节点的较高机会,错误变量节点与之相关联且能够被修正。
图8是示出包括被配置成使用成本函数来选择一组校验节点的纠错解码器的磁盘驱动系统的实施例的图示。为了清楚起见,某些部件可能不一定示出。在所示的示例中,编码数据(例如使用LDPC代码编码)存储在一个或多个磁盘(未示出)上。模拟数据被传递至模数转换器(ADC)800,并且数字数据被从ADC 800传递至滤波器802。滤波数据被传递至软输出检测器804,其又被耦合到纠错解码器806。纠错解码器806被配置成基于成本函数来选择一组校验节点并处理与所选群组相关联的数据。
在此图中,示出了存储应用。在某些其他实施例中,在某个其他系统中包括或者在除存储之外的某个其他应用或环境中使用被配置成使用成本函数来选择一组校验节点的纠错解码器。
图9是示出被配置成基于成本函数来选择一组校验节点的系统的实施例的图示。在某些实施例中,来自图8的纠错解码器806包括所示的系统。在各种实施例中,使用任何适当的部件来配置此图中所示的系统。例如,在某些实施例中,通用处理器被配置成执行本文所述的功能。
在所示的示例中,成本函数鉴别器902从坦纳图矩阵904获得相关变量和/或校验节点信息;此信息用来评估成本函数。在本特定示例中,成本函数鉴别器902向坦纳图矩阵904指定群组,并且从坦纳图矩阵904传递相关变量节点和/或校验节点信息。坦纳图矩阵904存储变量节点与校验节点之间的连接;该特定连接将取决于所使用的特定LDPC代码。坦纳图矩阵904还存储与变量节点和校验节点相关、例如与哪些校验节点未被满足(例如基于奇偶校验)相关的信息和/或与变量节点相关联的可靠性值。
在各种实施例中,使用各种成本函数,并且所获得的特定信息将根据特定成本函数而不同。在某些实施例中,成本函数鉴别器902是可配置的。例如,其可以包括被配置成接收或以其他方式获得成本函数的界面。在某些实施例中,从坦纳图矩阵904获得的特定信息将根据被编程到成本函数鉴别器902中或以其他方式提供给成本函数鉴别器902的特定成本函数而不同。
在针对所有群组(如果适当的话)评估成本函数之后,选择群组中的一个并由成本函数鉴别器902作为所选群组输出。在某些实施例中,成本函数鉴别器902被配置成如果仅存在单个剩余群组、则不评估成本函数。例如,如果存在一个群组且其为迭代的第一选择,则在不评估成本函数的情况下选择该群组。也就是说,洪泛调度表是特殊情况。
所选群组被从成本函数鉴别器902传递至消息更新器906。消息更新器906对与所选群组相关联的数据执行与纠错解码相关的处理。例如,消息更新器906可以对存储在与所选群组相关的坦纳图矩阵904中的数据执行校验节点更新和/或变量节点更新。
在更新存储在坦纳图矩阵904中的信息之后,消息更新器906向奇偶校验器908发送“消息更新完成”信号。奇偶校验器908通过使用存储在坦纳图矩阵904中的信息检查是否所有奇偶校验都被满足来确定纠错解码是否完成。如果纠错未完成,则奇偶校验器908向成本函数鉴别器902发送“继续解码”信号,并且选择下一个群组。
图10是示出被配置成评估成本函数并基于该(一个或多个)评估来选择一组校验节点的成本函数鉴别器的实施例的图示。在某些实施例中,如所示地实现图9中的成本函数鉴别器902。在本特定示例中,成本函数将用于关联变量节点的可靠性值取作输入。针对其他成本函数,由相应的成本函数鉴别器执行的功能和/或被输入到相应成本函数鉴别器的信息不同于所示的示例。
针对给定群组中的每个校验节点,获得被连接到该校验节点的变量节点的可靠性值。由平均器1000针对给定群组中的每个校验节点来确定可靠性值的平均值。该平均值连同其相应的群组一起被从平均器1000传递至存储器1002,信息被存储在那里。在平均器1000确定用于所选群组中的每个校验节点的平均值并将其存储在存储器1002中之后,选择器1004访问所存储平均值并选择具有最大存储平均值的群组;该群组被作为所选群组输出。在某些情况下,存在联系且选择器1004被配置成执行联系仲裁。例如,可以从联系群组、未被选择达最长时间段的联系群组中选择随机群组,或者选择默认群组(例如按照某些顺序的第一/最后的联系群组)。
在某些实施例中,可以将基于成本函数按照选择性顺序来处理校验节点群组应用于LDPC分层解码。这在本文中称为选择性分层解码调度。在LDPC分层解码中,奇偶校验矩阵H包括多个水平层。通过逐个层地应用解码算法来执行LDPC分层解码。当与其他消息传递调度方法相比时,例如洪泛调度,LDPC分层解码在迭代数目方面具有更好的会聚速度和更好的解码性能。
在LDPC分层解码中,逐个层地执行校验节点更新和变量节点更新。如上文所解释的,可以由稀疏奇偶校验矩阵H来定义LDPC代码。表示信息位的变量节点对应于H的列,并且实现用于矩阵H的奇偶校验的校验节点对应于H的行。在LDPC解码期间,在变量节点与校验节点之间传递消息。特别地,在校验节点更新期间,针对层中的每个校验节点,基于从所有其他连接变量节点到校验节点的传入消息来确定从校验节点到每个连接变量节点的传出消息。在变量节点更新期间,针对连接到的层中的校验节点的每个变量节点,基于从所有其他连接校验节点到变量节点的传入消息来确定从变量节点到每个连接校验节点的传出消息。通常,首先执行校验节点更新,并且然后执行变量节点更新。以这种方式,逐个层地执行校验节点更新和变量节点更新,直至达到终止条件。
例如,用某些技术,在第一层迭代期间,对第i层执行校验节点更新(在下表中由“C”指示),并对第(i-1)层执行变量节点更新(在下表中由“V”指示),如下表所示。在下一层迭代期间(即第2层迭代),对第(i+1)层执行校验节点更新,并对第i层执行变量节点更新。注意的是首先对特定层执行校验节点更新,并在下一层迭代期间对同一层执行变量节点更新。
第(i-1)层 V
第i层 C V
第(i+1)层 C V
1st 2nd 3rd 层迭代。
在选择性分层解码调度中,将校验节点层划分成多个群组。参考下表,由于在第2层迭代期间可以不按照连续顺序来选择接下来要处理的群组(和因此的层)而是基于成本函数来选择,因此可以对除第(i+1)层之外的层执行校验节点更新,例如第(k)层。然而,在第2层迭代期间仍对第i层执行变量节点更新。这是因为在第1层迭代期间已对第i层执行校验节点更新,并且执行变量节点更新以在第2层迭代期间继续第i层的处理。在第3层迭代期间,对第(j)层执行校验节点更新,并对第(k)层执行变量节点更新,以此类推。
1st 2nd 3rd 层迭代。
图11是示出包括校验节点存储块1102、选择性分层解码调度器1104以及用于基于成本函数按照选择性顺序来处理校验节点群组的LDPC分层解码器1106的系统1100的实施例的图示。校验存储块1102存储用于不同校验节点层的校验节点更新的结果(例如从校验节点发送到变量节点的消息)。选择性分层解码调度器1104获得一个或多个成本函数、评估(一个或多个)成本函数、选择接下来要解码的群组并将所选群组发送到LDPC分层解码器1106以进行解码。LDPC分层解码器1106实现LDPC分层解码。系统1100可以用于选择性分层解码并将校验节点更新从一个层切换至另一个,如下面将更详细地描述的。
校验节点存储块1102存储用于不同校验节点层的校验节点更新的结果。例如,该结果包括在校验节点更新期间从校验节点发送到变量节点的消息。校验节点存储块1102被划分成多个层群组,使得选择性分层解码调度器1104可以选择哪个群组将发送到LDPC分层解码器1106以进行解码。
图12是示出被划分成多个校验节点层群组的LDPC矩阵1200的实施例的图示。如图12所示,LDPC矩阵1200包括五个群组,每个群组具有四个层,并且因此LDPC矩阵1200具有总共二十个校验节点层。
例如,图12中的LDPC矩阵1200可以是用于准循环LDPC代码(QC-LDPC代码)的奇偶校验矩阵H。每个正方形1202是轮换矩阵,其是方形矩阵。例如,空正方形1202是零矩阵,并且用“1”表示的正方形1202是具有一的列权值的方形矩阵,如下面所示:
在以上示例中列权值是一,因为轮换矩阵的每列仅具有具有一的值的单个系数。可以将奇偶校验矩阵H视为包含轮换矩阵的“列”,每个此类“列”称为轮换矩阵列。在图12中,群组1具有两个轮换矩阵,每个轮换矩阵列中具有一的列权值。因此,群组1具有用于其相应轮换矩阵列中的每一个的二的列权值。因此,群组1具有二的群组列权值。群组2至5还具有用于其各自轮换矩阵列的等于二的列权值,并且因此LDPC矩阵1200具有用于其轮换矩阵列的十的总列权值。上文所示的方形矩阵的尺寸是3乘3矩阵;然而,也可以使用不同尺寸的其他方形矩阵。
将LDPC矩阵1200划分成多个群组、每个群组具有许多零矩阵和低群组列权值(例如,一或二)具有许多优点。例如,当用于每个群组的群组列权值仅为一时,则每次需要处理每个群组内的仅一个非零层(活动层)。因此,选择性分层解码调度器1104可以选择每个群组内的唯一非零层,并将该非零层发送到LDPC分层解码器1106以用于每次的解码。在某些实施例中,可以使用多路复用器(MUX)结构,其简化了总体硬件设计并减少了系统1100所需的硬件的量。LDPC分层解码器1106的设计也被简化,因为解码器每次只需要处理单个层。
在某些实施例中,可以以使得减少群组数目这样的方式来构造LDPC矩阵。用较少的群组,可以减少解码等待时间,因此改善了系统的解码性能。
返回参考图11,选择性分层解码调度器1104与校验节点存储块1102和LDPC分层解码器1106耦合。选择性分层解码调度器1104获得一个或多个成本函数、评估(一个或多个)成本函数、基于所述(一个或多个)成本函数来选择接下来要解码的群组并将所选群组发送到LDPC分层解码器1106以进行解码。
由选择性分层解码调度器1104评估的成本函数可以是在本申请中描述的任何成本函数。在某些实施例中,选择具有最小数目的未满足校验节点的群组。在某些实施例中,首先针对所有群组确定与变量节点相关联的可靠性值的平均值,并且然后选择具有最大平均值的群组。在某些实施例中,选择具有在阈值以下的最小数目的可靠性值的群组。在某些实施例中,选择具有最小可靠性中的最大一个的群组。
图13是示出选择性分层解码调度的示例性实施例的图示。其示出用于LDPC矩阵被划分成四组校验节点层时的LDPC分层解码的调度表。
在图13中,用“V”来指示变量节点更新;用“C”来指示校验节点更新;用“P”来指示群组预取。首先执行群组预取P。P选择为其执行校验节点更新的下一个群组。其为在下一层迭代期间对所选群组执行校验节点更新做准备。因此,如果在第n层迭代期间对特定群组执行P,则在第(n+1)迭代期间对同一群组执行C,并且在第(n+2)迭代期间对同一群组执行V。例如,如图13所示,在第1层迭代期间对群组3执行P,在第2层迭代期间对群组3执行C,并且在第3层迭代期间对群组3执行V。同样地,在第2至4层迭代期间针对群组4一个接一个地执行P、C和V。
如图13所示,可以在特定层迭代期间同时地执行V、C和P。在某些实施例中,在该层迭代期间对不同的群组执行V、C和P。例如,在第1层迭代期间,对群组1执行V,对群组2执行C,并对群组3执行P。
如上所述,P选择为其执行校验节点更新的下一个群组。其为在下一层迭代期间对所选群组执行校验节点更新做准备。在某些实施例中,P在每隔几个层迭代中基于成本函数来选择下一个群组仅一次。在某些实施例中,P在每个层迭代处基于成本函数来选择下一群组。
在图13所示的示例性调度表中,P在每隔几个层迭代中基于成本函数来选择下一个群组仅一次。特别地,P在所有群组都具有变量节点更新至少一次之后基于成本函数来选择下一群组。例如,每个群组在第4迭代之后具有变量节点更新至少一次;因此,P在第5迭代期间基于成本函数来选择群组4,并且跳过群组3。同样地,每个群组从第5至第10层迭代具有变量节点更新至少一次。因此,P在第11层迭代期间基于成本函数来选择群组2。
请注意的是某些群组可能不适合于P基于成本函数来选择。例如,在第5迭代期间,P可能局限于仅选择群组3或群组4,因为群组1具有变量节点更新,并且群组2具有在该时间执行的校验节点更新。
图14是示出选择性分层解码调度的第二示例性实施例的图示。在本示例中,P在每个层迭代处基于成本函数来选择下一群组。
在每个迭代期间,群组的子集可能不适合于P基于成本函数来从中选择。例如,在第1层迭代期间,对群组1执行变量节点更新,并且对群组2执行校验节点更新;因此,可用于预取的群组仅是群组3和群组4,并且P基于成本函数来选择群组3。在第2层迭代期间,可用于预取的群组减少至仅是群组4,因为在在使用于预取选择的群组复位至所有群组之间的迭代内预取群组两次在本实施例中不是优选的。在第3层迭代期间,使可用群组复位至全部的四个群组。同样地,在第6层迭代期间,可用于预取的群组减少至仅是群组3,因为在在使用于预取选择的群组复位至所有群组之间的迭代内预取群组2两次在本实施例中不是优选的。在第7层迭代期间,使可用于预取的群组复位至全部的四个群组。
虽然已为了理解透彻的目的相当详细地描述了前述实施例,但本发明不限于所提供的细节。存在实现本发明的许多替换方式。所公开的实施例是说明性而非限制性的。

Claims (22)

1.一种用于对数据进行解码的方法,包括:
通过处理器将低密度奇偶校验(LDPC)矩阵划分成多个群组,每个包括一个或多个校验节点层;
通过所述处理器至少部分地基于成本函数来选择群组中的一个,该成本函数至少部分地基于与变量节点相关联的信息或与校验节点相关联的信息或两者;以及
通过所述处理器执行LDPC分层解码,其中在LDPC分层解码的当前层迭代中,校验节点更新是在当前层上执行的;其中在所述LDPC分层解码的下一层迭代中,校验节点更新不是在紧跟当前层的下一个连续层上执行而是在所选群组上执行的;并且其中在所述LDPC分层解码的下一层迭代中,变量节点更新不是在所选群组上执行而是在当前层上执行的。
2.根据权利要求1所述的方法,其中,所述一个或多个校验节点层中的一个包括多个轮换矩阵,其中,轮换矩阵包括方形矩阵。
3.根据权利要求2所述的方法,其中,所述多个轮换矩阵中的每一个具有一的列权值。
4.根据权利要求1所述的方法,其中,所述多个群组中的每一个具有预定群组列权值。
5.根据权利要求4所述的方法,其中,所述预定群组列权值是一或二。
6.根据权利要求4所述的方法,其中,对所选群组执行LDPC分层解码包括对所选群组中的预定数目的校验节点层进行解码,其中,所述校验节点层的预定数目等于所述预定群组列权值。
7.根据权利要求6所述的方法,其中,由多路复用器(MUX)结构来选择所选群组中的校验节点层的预定数目。
8.根据权利要求1所述的方法,其中,对所选群组执行LDPC分层解码包括:
在第一层迭代期间对所选群组执行群组预取以用于校验节点更新;
在第二层迭代期间执行校验节点更新;以及
在第三层迭代期间执行对应于校验节点更新的变量节点更新,其中,所述第一层迭代、所述第二层迭代和所述第三层迭代是按照连续顺序。
9.根据权利要求8所述的方法,还包括;
在第一层迭代期间对除所选群组之外的第一群组执行校验节点更新;以及
在第一层迭代期间对除所选群组之外的第二群组执行变量节点更新。
10.根据权利要求1所述的方法,其中,在所有群组已具有变量节点更新至少一次之后基于成本函数来选择所选群组。
11.根据权利要求1所述的方法,其中,群组的子集不适合于基于成本函数的选择。
12.根据权利要求1所述的方法,其中,以使得群组数目减少的这样的方式来构造LDPC矩阵。
13.一种用于对数据进行解码的系统,包括:
接口,其被配置成通过处理器将低密度奇偶校验(LDPC)矩阵划分成多个群组,每个包括一个或多个校验节点层;
选择性分层解码调度器,其被配置成通过所述处理器至少部分地基于成本函数来选择群组中的一个,所述成本函数至少部分地基于与变量节点相关联的信息或与校验节点相关联的信息或两者;以及
LDPC分层解码器,其被配置成通过所述处理器执行LDPC分层解码,其中在LDPC分层解码的当前层迭代中,校验节点更新是在当前层上执行的;其中在所述LDPC分层解码的下一层迭代中,校验节点更新不是在紧跟当前层的下一个连续层上执行而是在所选群组上执行的;并且其中在所述LDPC分层解码的下一层迭代中,变量节点更新不是在所选群组上执行而是在当前层上执行的。
14.根据权利要求13所述的系统,其中,所述一个或多个校验节点层中的一个包括多个轮换矩阵,其中,轮换矩阵包括方形矩阵。
15.根据权利要求14所述的系统,其中,所述多个轮换矩阵中的每一个具有一的列权值。
16.根据权利要求13所述的系统,其中,所述多个群组中的每一个具有预定群组列权值。
17.根据权利要求16所述的系统,其中,所述预定群组列权值是一或二。
18.根据权利要求16所述的系统,其中,对所选群组执行LDPC分层解码包括对所选群组中的预定数目的校验节点层进行解码,其中,所述校验节点层的预定数目等于所述预定群组列权值。
19.根据权利要求18所述的系统,还包括被配置成选择所选群组中的预定数目的校验节点层的多路复用器(MUX)结构。
20.根据权利要求13所述的系统,其中,对所选群组执行LDPC分层解码包括:
在第一层迭代期间对所选群组执行群组预取以用于校验节点更新;
在第二层迭代期间执行校验节点更新;以及
在第三层迭代期间执行对应于校验节点更新的变量节点更新,其中,所述第一层迭代、所述第二层迭代和所述第三层迭代是按照连续顺序。
21.根据权利要求20所述的系统,其中,所述LDPC分层解码器被配置成:
在第一层迭代期间对除所选群组之外的第一群组执行校验节点更新;以及
在第一层迭代期间对除所选群组之外的第二群组执行变量节点更新。
22.根据权利要求13所述的系统,还包括与选择性分层解码调度器和LDPC分层解码器耦合的校验节点存储块,其中,所述校验节点存储器被配置成存储校验节点更新的结果。
CN201180017954.8A 2010-04-09 2011-04-11 Ldpc选择性解码调度的实现 Active CN102859885B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US34214110P 2010-04-09 2010-04-09
US61/342141 2010-04-09
US61/342,141 2010-04-09
PCT/US2011/000646 WO2011126578A1 (en) 2010-04-09 2011-04-11 Implementation of ldpc selective decoding scheduling

Publications (2)

Publication Number Publication Date
CN102859885A CN102859885A (zh) 2013-01-02
CN102859885B true CN102859885B (zh) 2015-10-07

Family

ID=44761808

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180017954.8A Active CN102859885B (zh) 2010-04-09 2011-04-11 Ldpc选择性解码调度的实现

Country Status (4)

Country Link
US (1) US8918696B2 (zh)
KR (1) KR101610727B1 (zh)
CN (1) CN102859885B (zh)
WO (1) WO2011126578A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI583141B (zh) * 2016-05-12 2017-05-11 國立清華大學 低密度奇偶檢查碼的解碼方法與解碼器

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8751912B1 (en) * 2010-01-12 2014-06-10 Marvell International Ltd. Layered low density parity check decoder
US8656249B2 (en) * 2011-09-07 2014-02-18 Lsi Corporation Multi-level LDPC layer decoder
US8756478B2 (en) * 2011-09-07 2014-06-17 Lsi Corporation Multi-level LDPC layer decoder
US8954816B2 (en) * 2011-11-28 2015-02-10 Sandisk Technologies Inc. Error correction coding (ECC) decode operation scheduling
US8819515B2 (en) * 2011-12-30 2014-08-26 Lsi Corporation Mixed domain FFT-based non-binary LDPC decoder
US9015547B2 (en) * 2012-08-17 2015-04-21 Lsi Corporation Multi-level LDPC layered decoder with out-of-order processing
US8972826B2 (en) 2012-10-24 2015-03-03 Western Digital Technologies, Inc. Adaptive error correction codes for data storage systems
US9021339B2 (en) 2012-11-29 2015-04-28 Western Digital Technologies, Inc. Data reliability schemes for data storage systems
US9059736B2 (en) 2012-12-03 2015-06-16 Western Digital Technologies, Inc. Methods, solid state drive controllers and data storage devices having a runtime variable raid protection scheme
US9191256B2 (en) * 2012-12-03 2015-11-17 Digital PowerRadio, LLC Systems and methods for advanced iterative decoding and channel estimation of concatenated coding systems
US9619317B1 (en) 2012-12-18 2017-04-11 Western Digital Technologies, Inc. Decoder having early decoding termination detection
US8966339B1 (en) 2012-12-18 2015-02-24 Western Digital Technologies, Inc. Decoder supporting multiple code rates and code lengths for data storage systems
US9122625B1 (en) 2012-12-18 2015-09-01 Western Digital Technologies, Inc. Error correcting code encoder supporting multiple code rates and throughput speeds for data storage systems
US9214963B1 (en) 2012-12-21 2015-12-15 Western Digital Technologies, Inc. Method and system for monitoring data channel to enable use of dynamically adjustable LDPC coding parameters in a data storage system
US9231619B2 (en) * 2013-02-04 2016-01-05 SK Hynix Inc. LDPC decoder with a variable node updater which uses a scaling constant
US9325347B1 (en) * 2014-02-21 2016-04-26 Microsemi Storage Solutions (U.S.), Inc. Forward error correction decoder and method therefor
US9344116B2 (en) * 2014-05-29 2016-05-17 Yuan Ze University Method for determining layer stoppage in LDPC decoding
US20160091951A1 (en) * 2014-09-29 2016-03-31 Lsi Corporation Systems and Methods for Power Reduced Data Decoder Scheduling
US10075190B2 (en) * 2015-10-27 2018-09-11 Sandisk Technologies Llc Adaptive scheduler for decoding
US10425104B2 (en) 2016-11-11 2019-09-24 Electronics And Telecommunications Research Institute Scheduling method of a parity check matrix and an LDPC decoder for performing scheduling of a parity check matrix
US10637503B2 (en) * 2018-08-03 2020-04-28 Innogrit Technologies Co., Ltd. Systems and methods for decoding low density parity check encoded codewords
CN114270710A (zh) 2019-09-10 2022-04-01 三星电子株式会社 通信或广播系统中的数据解码方法和装置
FR3108221B1 (fr) * 2020-03-11 2022-03-11 Commissariat Energie Atomique Méthode de décodage de codes ldpc à inversion de bits et effet inertiel
KR20210115961A (ko) 2020-03-17 2021-09-27 에스케이하이닉스 주식회사 Ldpc 디코더 및 그것의 동작 방법
US11863201B2 (en) * 2022-04-01 2024-01-02 Qualcomm Incorporated Correlation-based hardware sequence for layered decoding

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1933336A (zh) * 2005-01-10 2007-03-21 美国博通公司 使用grs码构建ldpc码的方法和装置

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7139959B2 (en) * 2003-03-24 2006-11-21 Texas Instruments Incorporated Layered low density parity check decoding for digital communications
US7234098B2 (en) * 2003-10-27 2007-06-19 The Directv Group, Inc. Method and apparatus for providing reduced memory low density parity check (LDPC) codes
CN101032084B (zh) * 2004-10-01 2010-05-05 汤姆逊许可公司 用于接收器的方法和设备
KR100913876B1 (ko) * 2004-12-01 2009-08-26 삼성전자주식회사 저밀도 패리티 검사 부호의 생성 방법 및 장치
US7536629B2 (en) 2005-01-10 2009-05-19 Broadcom Corporation Construction of LDPC (Low Density Parity Check) codes using GRS (Generalized Reed-Solomon) code
US7900127B2 (en) * 2005-01-10 2011-03-01 Broadcom Corporation LDPC (Low Density Parity Check) codes with corresponding parity check matrices selectively constructed with CSI (Cyclic Shifted Identity) and null sub-matrices
US7660368B2 (en) * 2005-01-11 2010-02-09 Qualcomm Incorporated Bit log likelihood ratio evaluation
KR100941680B1 (ko) * 2005-07-01 2010-02-12 삼성전자주식회사 준순환 저밀도 패리티 검사 부호의 생성 방법 및 장치
US20070245217A1 (en) 2006-03-28 2007-10-18 Stmicroelectronics S.R.L. Low-density parity check decoding
US7831895B2 (en) * 2006-07-25 2010-11-09 Communications Coding Corporation Universal error control coding system for digital communication and data storage systems
FR2904499B1 (fr) 2006-07-27 2009-01-09 Commissariat Energie Atomique Procede de decodage a passage de messages avec ordonnancement selon une fiabilite de voisinage.
KR100981501B1 (ko) 2006-11-06 2010-09-10 연세대학교 산학협력단 통신 시스템에서 신호 송신 장치 및 방법
US8359522B2 (en) 2007-05-01 2013-01-22 Texas A&M University System Low density parity check decoder for regular LDPC codes
EP2176758B1 (en) * 2007-07-02 2010-11-10 Technology from Ideas Limited Generation of parity-check matrices
US7958429B2 (en) * 2007-07-02 2011-06-07 Broadcom Corporation Distributed processing LDPC (low density parity check) decoder
US8156409B2 (en) 2008-02-29 2012-04-10 Seagate Technology Llc Selectively applied hybrid min-sum approximation for constraint node updates of LDPC decoders
US20100037121A1 (en) * 2008-08-05 2010-02-11 The Hong Kong University Of Science And Technology Low power layered decoding for low density parity check decoders
EP2181504A4 (en) 2008-08-15 2010-07-28 Lsi Corp DECODING LIST OF CODED WORDS CLOSE IN A ROM MEMORY
US8291285B1 (en) * 2008-09-18 2012-10-16 Marvell International Ltd. Circulant processing scheduler for layered LDPC decoder
US8219873B1 (en) * 2008-10-20 2012-07-10 Link—A—Media Devices Corporation LDPC selective decoding scheduling using a cost function
US8407555B2 (en) * 2009-03-30 2013-03-26 Broadcom Corporation LDPC codes robust to non-stationary narrowband ingress noise

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1933336A (zh) * 2005-01-10 2007-03-21 美国博通公司 使用grs码构建ldpc码的方法和装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI583141B (zh) * 2016-05-12 2017-05-11 國立清華大學 低密度奇偶檢查碼的解碼方法與解碼器

Also Published As

Publication number Publication date
CN102859885A (zh) 2013-01-02
US8918696B2 (en) 2014-12-23
KR20130050937A (ko) 2013-05-16
KR101610727B1 (ko) 2016-04-08
US20110252294A1 (en) 2011-10-13
WO2011126578A1 (en) 2011-10-13

Similar Documents

Publication Publication Date Title
CN102859885B (zh) Ldpc选择性解码调度的实现
US8219873B1 (en) LDPC selective decoding scheduling using a cost function
US8984376B1 (en) System and method for avoiding error mechanisms in layered iterative decoding
US9544090B2 (en) Hard input low density parity check decoder
US8996972B1 (en) Low-density parity-check decoder
US8990661B1 (en) Layer specific attenuation factor LDPC decoder
JP4702632B2 (ja) 符号化方法および符号化装置、並びにプログラム
US8601352B1 (en) Efficient LDPC codes
US8707144B2 (en) LDPC decoder with targeted symbol flipping
CN103155421A (zh) Ldpc多解码器架构
US20090319860A1 (en) Overcoming ldpc trapping sets by decoder reset
CN104333390A (zh) 一种ldpc码的校验矩阵的构造方法与编码方法
US20150155889A1 (en) Selective merge and partial reuse LDPC (Low Density Parity Check) code construction for limited number of layers Belief Propagation (BP) decoding
US20160020783A1 (en) Low Density Parity Check Decoder With Relative Indexing
US8751912B1 (en) Layered low density parity check decoder
WO2011109084A1 (en) Quasi-cyclic ldpc encoding and decoding for non-integer multiples of circulant size
US20110083058A1 (en) Trapping set based ldpc code design and related circuits, systems, and methods
US20100077277A1 (en) Multi-CSI (Cyclic Shifted Identity) sub-matrix based LDPC (Low Density Parity Check) codes
US10128869B2 (en) Efficient convergence in iterative decoding
EP2633414A1 (en) Advanced data encoding with reduced erasure count for solid state drives
US8166364B2 (en) Low density parity check decoder using multiple variable node degree distribution codes
US20180191375A1 (en) Tapered variable node memory
Nguyen et al. Two-bit bit flipping decoding of LDPC codes
TWI583141B (zh) 低密度奇偶檢查碼的解碼方法與解碼器
Hirotomo et al. On the probabilistic computation algorithm for the minimum-size stopping sets of LDPC codes

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent for invention or patent application
CB02 Change of applicant information

Address after: American California

Applicant after: SK Sea Nicks storage technologies

Address before: American California

Applicant before: Link A Media Devices Corp

COR Change of bibliographic data

Free format text: CORRECT: APPLICANT; FROM: LINK A MEDIA DEVICES CORP. TO: SK HAINICKS STORAGE TECHNOLOGY CO., LTD.

C14 Grant of patent or utility model
GR01 Patent grant