CN106160752A - 用于分层ldpc译码器的提早退出的系统和方法 - Google Patents
用于分层ldpc译码器的提早退出的系统和方法 Download PDFInfo
- Publication number
- CN106160752A CN106160752A CN201610311470.9A CN201610311470A CN106160752A CN 106160752 A CN106160752 A CN 106160752A CN 201610311470 A CN201610311470 A CN 201610311470A CN 106160752 A CN106160752 A CN 106160752A
- Authority
- CN
- China
- Prior art keywords
- sub
- vector
- partial correction
- node
- check
- 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
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1108—Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1131—Scheduling of bit node or check node processing
- H03M13/114—Shuffled, staggered, layered or turbo decoding schedules
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1128—Judging correct decoding and iterative stopping criteria other than syndrome check and upper limit for decoding iterations
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/116—Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/116—Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
- H03M13/1165—QC-LDPC codes as defined for the digital video broadcasting [DVB] specifications, e.g. DVB-Satellite [DVB-S2]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
- H04L1/0047—Decoding adapted to other signal detection operation
- H04L1/005—Iterative decoding, including iteration between signal detection and decoding operation
- H04L1/0051—Stopping criteria
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0057—Block codes
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Error Detection And Correction (AREA)
- Multimedia (AREA)
- Computational Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- Computing Systems (AREA)
Abstract
本发明提供了系统和方法,以检测分层LDPC译码器的一个或多个层的位节点的硬判决何时改变,以及更新这些层的累加的部分校正子运算。由于生成了位节点的硬判决,因此将它们能与它们之前的数值进行比较。如果硬判决改变了,则累加并更新与改变的硬判决的位节点相对应的奇偶校验矩阵的一个或多个列中具有非零元素的层的部分校正子运算。如果位节点的硬判决没有改变,则不更新对应层的部分校正子运算。跟踪代码字的硬判决的改变,并且,对于对应于改变的硬判决的位节点的奇偶校验矩阵的列的层,翻转部分校正子。
Description
技术领域
本发明涉及用于对通信或数据存储系统中的数据进行译码的系统和方法,尤其是,本发明涉及用于对来自分层低密度奇偶校验(LDPC)译码器的正确译码的代码字进行早期检测的系统和方法。
背景技术
在通信和数据存储系统中,通过接收器或控制器接收的携带有信号的信息可能被噪声、干扰或其他类型的扰动损坏。为了提高准确再现信息的可能性,通常使用纠错码(ECC)在携带有信息的数据中引入冗余位或奇偶位。LDPC码属于称为线性分组码的ECC类别。LDPC码的特征为非常稀疏的奇偶校验矩阵,这意味着低密度的非零元素。LDPC译码器可迭代地确定与接收到的矢量相对应的最有可能的携带有信息的码字。LDPC译码可由和积译码算法或最小和译码算法或它们的变型来实现。不考虑特定的译码算法,给定由m×n奇偶校验矩阵限定的LDPC码,LDPC译码可由一个集合中的m个校验(或约束)节点与另一个集合中的n位(或消息)节点之间的迭代信息更新和传递过程表示。不同的信息更新运算规则和/或不同的信息传递(或交换)调度策略导致不同的LDPC译码算法。为了验证译码的代码字,LDPC译码器可在奇偶校验操作中对硬判决矢量与LDPC码的奇偶校验矩阵执行矩阵乘法。当矩阵乘法的结果产生零矢量时,表明是有效代码字。例如,在具有(n-m)个信息位和m个奇偶位(例如码率为(n-m)/n)的块长为n的LDPC码中,奇偶校验矩阵可为m×n二进制矩阵。m×n奇偶校验矩阵与n×1接收矢量的硬判决的矩阵乘法产生m个校验节点或奇偶节点。在分层LDPC译码中,m×n的奇偶校验矩阵的每行称为一个层。每层具有校验节点,且所有硬判决的异或生成该层的校正子,该硬判决具有多个元素且一个元素在矩阵(例如位节点)的一个层中。当所有层的校正子都为零时,代码字被正确地译码。
在传统的分层LDPC译码器中,可在层中生成硬判决。当接收层的位节点的硬判决时,当前层的校正子可被更新。为了更新所有层的校正子,分层LDPC译码器可在所有m个层运行m个时钟周期。当分层译码期间任何位节点的硬判决改变时,可使用另外的m个时钟周期验证所有层的校正子为零。该方法增加了译码延时并降低了译码吞吐量。
此外,由于传统分层LDPC译码器持续更新硬判决,因而奇偶校验操作期间可能需要停止分层译码,这将进一步降低译码吞吐量。一种在奇偶校验运算期间避免停止译码过程的方法为设置两组硬判决存储器。运行时间奇偶校验和硬判决更新可通过在这两个存储器之间通过交替操作而并行进行。然而,额外的硬判决存储器增加了成本、面积和功耗。也不能保证一旦所有的硬判决产生,奇偶校验操作就停止,这是因为退出时间可能仍然取决于正确的译码数据何时进入硬判决存储器。在最坏的情况下,最后的硬判决产生之后可能仍然进行m个时钟周期,以完成校正子运算并用于奇偶校验操作以指示译码终止。如此,需要分层LDPC译码器的运行时间奇偶校验具有最小的、固定的退出延时,同时,将任何成本、面积和功率的增加减到最小。
发明内容
本发明提供了一种系统和方法,以检测分层LDPC译码器的一层或多层的位节点的硬判决何时变化,以及以更新这些层的累加的部分校正子运算。当位节点的硬判决产生时,将该硬判决与它们先前的值进行比较。如果硬判决改变,针对与该改变的硬判决的位节点对应的、在奇偶校验矩阵的一列或多列中具有非零元素的层,对部分校正子运算进行累加和更新。如果位节点的硬判决未改变,不对相应的层的部分校正子运算进行更新。因为称为列重的、LDPC码的列中的非零元素的数量远少于层的总数量,所以改变的硬判决的相应层的校正子累加可产生最低限度的复杂度增加。
在一个或多个实施例中,针对与改变的硬判决的位节点相对应的奇偶校验矩阵的列的层,追踪代码字的硬判决的变化,并翻转部分校正子。为了增加译码器吞吐量,可对奇偶校验矩阵进行分区,以并行生成多组硬判决。本发明的校正子累加技术可被灵活地平行设置,以适应硬判决的并行生成。该技术还固有地适应奇偶校验单元中代码字的硬判决的不按顺序的处理。因为当位节点的硬判决改变时奇偶校验矩阵的所有相应层的校正子累加被更新,所以在有效代码字的硬判决生成之后,从校正子运算退出的时间可以是固定的。因此,可实现分层LDPC译码器的运行时间奇偶校验的最小且固定的退出延时,同时实现成本、面积和功率最小限度的增加。
根据本发明的一个实施例,公开了一种用于对LDPC码进行译码的方法。该方法包括由处理器接收译码的代码字的子矢量。该方法还包括确定接收的子矢量是否与对应的保存版本的子矢量不同。如果接收的子矢量与保存版本不同,该方法还包括将接收的子矢量存储为用于后续处理的保存版本的子矢量。该方法还包括基于该差异,对校验码的层的部分校正子进行更新,上述层在对应于接收的子矢量的码矩阵的列中具有非零元素。该方法还包括对校验节点的所有层的部分校正子进行校验。
根据本发明的一个实施例,公开了一种对LDPC码进行译码的装置。该装置包括存储LDPC码译码的代码字子矢量的存储单元。该装置还包括存储LDPC码的校验节点的层的部分校正子的部分校正子累加器。该装置还包括控制单元。该控制单元接收代码字的子矢量。该控制单元还确定接收的子矢量是否不同于存储单元中相应的保存版本的子矢量。如果接收的子矢量与保存版本不同,该控制单元还将接收的子矢量存储在存储单元中。该控制单元还基于该差异,对校验码的层的部分校正子进行更新,上述层在码矩阵的对应于接收的子矢量的列中具有非零元素。该装置还包括最终校正子校验,以对部分校验累加器中校验节点的所有层的部分校正子进行校验。
附图说明
附图与以下实施例的描述一起提供,以更好地理解本发明。附图和实施例为本发明的示例,并不旨在限制本发明的范围。应当理解的是,本领域技术人员可对附图进行修改,以产生其他实施例的附图,这些附图仍落在本发明的范围内。
图1示出了根据本发明的实施例的分层LDPC译码器的框图;
图2示出了LDPC码二分图的示例;
图3示出了与图2的二分图相对应的4×8H矩阵;
图4示出了不规则LDPC奇偶校验矩阵的示例;
图5示出了具有根据本发明的一个实施例的LDPC译码器的最小退出延时的奇偶校验单元的框图;
图6示出了具有根据本发明的一个实施例的准循环LDPC(QC-LDPC)译码器的最小退出延时的奇偶校验单元的框图;
图7示出了根据本发明的一个实施例的校正子累加器的框图,该校正子累加器利用硬判决的子矢量执行QC-LDPC奇偶校验矩阵的循环行列式的矩阵乘法;
图8示出了根据本发明的一个实施例的校正子累加器的框图,其中循环移位器的数量等于奇偶校验矩阵的列重;
图9示出了根据本发明的一个实施例的奇偶校验单元的处理的流程图;
图10示出了根据本发明的一个实施例的用于对多组硬判决进行校正子累加的并行奇偶校验单元的框图;
图11示出了根据本发明的一个实施例的奇偶校验单元的框图,该奇偶校验单元使用额外的硬判决存储器使校正子校验和译码的数据同步;以及
图12示出了根据本发明的一个实施例的对奇偶校验单元的校正子累加器控制的处理以使校正子校验与译码数据同步的流程图。
具体实施方式
以下段落结合附图描述了本发明的多个实施例。应当理解的是,这些实施例仅用于说明和描述本发明,而不应理解为限制本发明的范围。
LDPC码的奇偶校验矩阵非常稀疏,这是由于奇偶校验矩阵的非零元素的数量很少以简化硬件实现。LDPC奇偶校验矩阵可写为:
其中,Hi,j可为子矩阵。如果每个子矩阵Hi,j均为循环矩阵,其中Hi,j的每行均为上一行的循环移位,则LDPC码称为准循环LDPC(QC-LDPC)码。QC-LDPC码是一类具有固有结构规则并可显著地简化硬件实现的LDPC码。此外,QC-LDPC码可实现非常强的纠错强度以及足够低的错误平层。使每个循环矩阵Hi,j的大小为p×p,则奇偶校验矩阵H为(m·p)×(n·p)的二进制矩阵。这种矩阵限定了用m·p个奇偶位保护(n-m)·p个数据位的LDPC码,产生代n·p位的代码字长度。因此其码率为(n-m)/n。对于任何有效的LDPC代码字矢量我们有
其中,v1为p位子矢量,且代码字矢量是长度为(n·p)位的分组码。H矩阵的(m·p)行是(m·p)奇偶校验方程。每个奇偶校验方程为代码字矢量的硬判决的模2加法,该代码字矢量在[Hi,1 Hi,2 … Hi,n]行矢量的相应列位置中具有1。因为H的行矢量中1的数量很少,所以可简化奇偶校验方程的硬件实现。随后的讨论使用二进制矩阵H作为示例。然而,本公开的技术还可应用于非二进制奇偶校验矩阵。
图1示出了根据本发明的一个实施例的分层LDPC译码器的框图。分层LDPC译码器将奇偶校验矩阵的每行作为层。与其他众所周知的译码算法相比,分层译码算法具有快速译码收敛速度(即,与其他众所周知的算法相比,对于成功译码其需要更少的译码迭代次数)。
来自发送器或数据存储装置的LDPC编码数据由信息存储单元101接收。该信息存储单元101可以是存储长度为(n·p)位的分组码的存储缓冲器,用于对编码数据进行译码。信息存储单元101还可存储迭代信息更新和传递过程的位-校验信息和校验-位信息。信息处理单元103对来自信息存储单元101的分组码进行处理,以估计原始代码字的码位。信息处理单元103可使用H矩阵的奇偶校验方程估计迭代信息更新和传递过程中最可能的代码字。信息处理单元103可通过H矩阵的层的进度递增地生成(n·p)码位的硬判决。当对码位的估计被迭代地精确时,该硬判决可改变。
由m×n奇偶校验矩阵限定的LDPC码可由m个校验节点与n个位节点之间的二分图表示。信息处理单元103的迭代信息更新和传递LDPC译码过程可使用码二分图。图2示出了LDPC码二分图的示例。图3示出了与图2中二分图相对应的4×8H矩阵。回到图2,LDPC码二分图示出了4×8H矩阵的8个位节点201与4个校验节点203之间的连接。在用信道信息对位节点201进行初始化之后,对原始代码字的估计值由位节点201和校验节点203通过信息迭代地计算,该信息通过节点之间的连接进行交换。当评估值精确时,代码字的硬判决可生成。
回到图1,奇偶校验单元105基于从信息处理单元103获得的当前硬判决进行运行时间奇偶校验。奇偶校验单元105进行稀疏矩阵矢量乘法,以校验是否满足奇偶校验方程,即H矩阵的每行或每层是校验节点,且用行中所有的非零循环行列式进行的硬判决的异或生成该层的校正子(校正子等于的模2加法)。如果所有层的校正子均为零,则译码数据是无错的,代码字的译码完成,且迭代译码过程可终止。与校正子运算中的硬判决一起使用的H矩阵相应列中层的数量(列中非零元素的数量)是该列的列重。
如果列重(列中非零项的数量)wc对于每列是恒定的且行重(行中非零项的数量)wr对于每行也是恒定的,则LDPC码称为规则的。图3中的4×8H矩阵为规则LDPC奇偶校验矩阵的示例。LDPC奇偶校验矩阵的每个框表示非零循环行列式。图3中,wr=4,wc=2。在一个或多个实施例中,wr=wc·(n/m)。如果奇偶校验矩阵是低密度的,但是每行或每列中1的数量不是恒定的,则该码称为不规则LDPC码。图4示出了不规则LDPC奇偶校验矩阵的示例。
图5示出了根据本发明的一个实施例的LDPC译码器的、具有最小退出延时(exit delay)的奇偶校验单元的框图。校正子累加器控制模块502控制校正子计算、更新和累加的运行。校正子累加器控制模块502从图1的信息处理单元103接收输入数据(data_in)。信息处理单元103可通过层作用在奇偶检验矩阵上以迭代地产生输入数据作为用于p位的译码的代码字的硬判决。如果代码字为QC-LDPC码,p可为QC-LDPC的奇偶校验矩阵的子矩阵的循环行列式的大小。
校正子累加器控制模块502确定对输入数据的代码字的p个硬判决是否是这些p个硬判决被接收的第一次。如果p个硬判决第一次被接收(例如,在代码字译码过程的开始),则输入数据被写入到硬判决存储器HD_MEM504的合适位置,并且与p个硬判决相关联的校正子在校正子累加器缓冲器SA_BUF 508中累加。HD_MEM 504可为(n·p)深以存储译码代码字的(n·p)个硬判决。在一个或多个实施例中,如果输入数据表示译码过程开始被译码的代码字的第一P代码位的硬判决,则输入数据可被写入到HD_MEM 504的第一P位置。
另外,更新校正子累加器506对对应于P个代码位的奇偶校验矩阵的列中的各层的部分校正子进行计算。也就是说,对于对应于p个硬判决的QC-LDPC H矩阵的列中的每个非零循环行列式,具有p个硬判决的非零循环行列式子矩阵p×p可以执行矩阵乘法。在上面的示例中,输入数据表示代码字的第一P代码位的硬判决,相对应的列为奇偶校验矩阵的第一列。QC-LDPC H矩阵的第一列可具有三的列重wc。这样,三个非零的p×p循环行列式与p个硬判决相乘,从而为三个对应的层产生3×p个部分校正子。部分校正子存储在SA_BUF 508中。层的部分校正子可通过SA_BUF 508的异或与p个硬判决和该层的p×p循环行列式子矩阵的乘积而累加。在一个或多个实施例中,SA_BUF 508可为(m·p)深以存储(m·p)个部分校正子。
如果校正子累加器控制模块502确定输入数据上的代码字的p个硬判决先前已经由奇偶校验单元接收(例如,输入数据为先前从迭代译码过程接收到的p个硬判决的更新),则校正子累加器控制模块502可将输入数据上的新的p个硬判决与存储在HD_MEM 504中的现有的p个硬判决进行比较。如果这些硬判决不匹配,则将输入数据写入到HD_MEM 504中以更新现存的p个硬判决。相关的校正子也基于差异进行更新并且在SA_BUF 508中累加。例如,如果输入数据表示代码字的第一p代码位的新的硬判决,则可将输入数据和HD_MEM 504的第一p位置中现存的p个硬判决进行比较。如果这些硬判决不匹配,则表明译码的p代码位的一位或多位已经翻转,可将输入数据写入HD_MEM 504的第一p位置以重写现有的p个硬判决。更新校正子累加器506可以计算与变化的硬判决相对应的、奇偶校验矩阵的列中各层的部分校正子的变化,并可以更新SA_BUF 508以反映更新后的部分校正子。
如果输入数据上的新的p个硬判决与存储在HD_MEM 504中的现有的p个硬判决匹配,则不需要对HD_MEM 504或SA_BUF 508进行更新,因为现有的p个硬判决没有变化,因此奇偶校验矩阵的列中对应层的部分校正子没有变化。由于输入数据可表示代码字的不同p代码位的硬判决,不同输入数据的部分校正子可以涉及p个硬判决与奇偶校验矩阵的不同列中的循环行列式的矩阵乘积。因此,输入数据上的不同的p个硬判决可以更新不同层的部分校正子。与当前输入数据相关联的列的wc个层的部分校正子与存储在SA_BUF 508中的这些层的部分校正子相累加。最终校正子校验模块510监控SA_BUF 508中的部分校正子。代码字的所有的(n·p)个代码位的硬判决至少都已经被接收至少一次之后,最终校正子校验模块510判定SA_BUF 508中的(m·p)个部分校正子是否全部为0。如果是,则译码结束,并且译码后的数据从HD_MEM 504输出。奇偶校验单元可重置SA_BUF 508以使SA_BUF 508做好准备接收代码字的下一(m·p)代码位。
如上所述,QC-LDPC奇偶校验矩阵的每个子矩阵Hi,j均可以为p×p的循环行列式子矩阵,其中Hi,j的每一行为上一行的循环移位。4×4的循环行列式的示例为:
QC-LDPC奇偶校验矩阵为稀疏矩阵,其中,每个循环行列式的列重wc或者为1或者为0。然后,列重-1循环行列式与代码字子矢量之间的乘积可简化为子矢量的循环移位。
如果QC-LDPC奇偶校验矩阵H为(t·p)×(c·p)的矩阵,且代码字矢量u具有cp-位(cp-bit)子矢量u1到uc,则奇偶校验式y的结果为H和u的矩阵乘积:
其中,每个奇偶校验节点子矢量yi为:
其中,每个Hi,j·uj的结果或者为uj的循环移位或者为全零矢量。因此,当p-位子矢量uj的硬判决由奇偶校验单元接收时,对于在列Hi,j中具有非零循环行列式的层,计算并累加yi的部分校正子,1≤i≤t。
图6示出了根据本发明的一个实施例的分层QC-LDPC译码器的、具有最小退出延时的奇偶校验单元的框图。奇偶校验单元接收作为硬判决的输入数据,该硬判决为来自图1的信息处理单元103的译码后的代码字的p-位子矢量uj的硬判决。输入数据可以为u1,u2…uc的顺序,或者为其他顺序。比较器模块602确定输入数据中的uj是否是uj的硬判决被接收的第一次。如果是,例如在代码字译码过程的开始,则将输入数据写入到HD_MEM 604,并且将对应于uj的、奇偶校验矩阵列中的层的部分校正子写入到校正子累加器608的SA_BUF中。HD_MEM 604可为(n·p)深以存储代码字的(n·p)的硬判决;SA_BUF可为(m·p)深以存储(m·p)个层的部分校正子yi。
由于QC-LDPC奇偶校验矩阵的列中的循环行列式与uj之间的乘积可被简化为uj的循环移位,校正子累加器608可实施为连接有累加器的循环移位器。图7示出了根据本发明的一个实施例的、用于执行QC-LDPC奇偶校验矩阵的循环行列式与子矢量uj的矩阵乘法的校正子累加器的框图。p-位循环移位器702使uj的p个硬判决循环移位,uj的p个硬判决由表示,且数量由p×p的循环行列式子矩阵确定。p-位循环移位器702的数量可等于列重wc,以允许对wc各层的校正子的计算并行进行。对于不同的uj,对应于uj的奇偶校验矩阵列的层可能不同。因此,对于不同的uj,wc个移位器的输出利用来自SA_BUF的不同组的部分校正子来计算。在一个或多个实施例中,p-位循环移位器702的数量可为层m的数量。在这些实施例中,虽然对于不同的uj,不同组的wc个移位器激活,但是对于每个uj,m个p-位循环移位器中只有wc个激活。
层的p-位循环移位器702的p-位输出是存储在SA_BUF中的对应p-位部分校正子yi的模2和。模2和可由异或(XOR)门704实现。SA_BUF可实施为翻转触发器706。对于(m·p)个层,可有(m·p)个翻转触发器。在一个或多个实施例中,SA_BUF可实施为使用单端口存储器。由于单端口存储器一次仅允许访问一个存储位置,对于wc个p-位部分校正子yi,可有wc个单端口存储器。每个单端口存储器可具有m个位置,且对于每个p-位部分校正子yi,每个位置可为p位宽度。因为奇偶校验矩阵的不同对应层,对于不同的uj,wc个单端口存储器可为不同组的wc个部分校正子yi累加部分校正子。因此,yi的部分校正子可分布在所有的wc个单端口存储器上。为了产生yi的最终校正子,必须对分布在wc个单端口存储器上的yi的部分校正子进行求和。在一个或多个实施例中,为了便于实现,SA_BUF可实施为(m·p)个单端口存储器的m个,尽管对于给定的uj,这些单端口存储器中只有wc个激活。
返回到图6,如果比较器模块602确定输入数据中的uj先前已经通过奇偶校验矩阵处理(例如,uj为来自迭代译码过程的更新后的硬判决),则比较器模块602可将新的uj与存储在HD_MEM 604中的现有的uj进行比较。如果这些硬判决匹配,则不对HD_MEM 604进行更新。可通过多路复用器606为校正子累加器608选择零,并且也不对SA_BUF进行更新。如果这些硬判决不匹配,则将输入数据写入到HD_MEM 604中。XOR门610生成输入数据和相对应的HD_MEM 604的硬判决之间的差值,以检测输入数据的p位中哪一些已经翻转。比较器模块602通过多路复用器606选择输入数据中已翻转的位,用于校正子更新。校正子累加器608使输入数据的翻转位循环移位,以翻转对应于翻转位的、奇偶校验矩阵列的层的部分校正子。更新后的部分校正子写入到校正子累加器608的SA_BUF中。因此,当uj中的位节点的一个或多个硬判决在迭代译码过程中翻转时,受翻转的硬判决所影响的校验节点的部分校正子也可翻转。
最终校正子校验模块612监控所有层的SA_BUF中的部分校正子。在u1,u2…uc中所有uj的硬判决都已被至少接收一次之后,最终校正子校验模块612确定是否所有层的部分校正子为零。如果它们都为零,则示出(raise)synd_ok标识以指示已检测到有效代码字。有效代码字由HD_MEM 604输出,并且译码结束。最终校正子校验模块612可实施为m个输入(m-input)的或非(NOR)门,其中m为奇偶校验矩阵的层或者行的数量。在具有(m·p)个层的QC-LDPC代码的示例中,m可以变为(m·p)。在结束当前代码字的译码后,可通过多路复用器606选择零以重置SA_BUF,用于累加下一个代码字的新的部分校正子。由于对奇偶校验矩阵所有层的、对应于翻转的代码位的部分校正子进行并行累加,译码结束的退出时间从有效代码字输入奇偶校验单元的时间开始是固定的。
如上所述,为了减小校正子累加器的大小,p-位循环移位器的数量可等于奇偶校验矩阵的列重wc。具有非零的p×p的循环行列式子矩阵的奇偶校验矩阵的层对于不同的uj可不同。对于uj,对于不同的层,循环移位uj的数量也可不同。列-层查找表(LUT)可接收与uj对应的列数以将列的所有非零循环行列式的层数返回。每个层数可用于查找层的循环移位数。每个层数还可用作SA_BUF的位置以存储该层的部分校正子。在一个或多个实施例中,列-层LUT也可返回层的循环移位数量。
图8示出了根据本发明一个实施例的、具有与奇偶校验矩阵的列重wc相等数量的循环移位器的校正子累加器的框图。在该实施例中,列重wc与循环移位器802的数目为3。每个循环移位器802使一个uj子矢量的循环移位,移动量由层的p×p个循环行列式子矩阵确定。循环移位器802的每个输出均为通过XOR门804对存储在SA_BUF 806中的层的部分校正子的模2和。所有三个层的局部校正子可从SA_BUF 806并行读取。来自XOR门804的所有三个层的更新后的部分校正子也可并行写入到SA_BUF806。
SA_BUF 806可实施为翻转触发器、单端口存储器、多端口存储器等。如果实施为翻转触发器,可有(m·p)个翻转触发器,表示m个层,每个层具有p个校验节点。对于三个循环移位器802的示例,可选择(3·p)个翻转触发器用于在一个时钟周期中更新对应于uj子矢量的三个层的部分校正子。如果实现为多端口存储器,SA_BUF 806可配置为m个存储字,每个p位。存储器的多个端口可允许访问存储器时钟周期中的m个层的部分校正子。然而,当m大于较小的数目或者当(m·p)很大时,将SA_BUF 806实施为单端口存储器可能更有效。可有m个字、p位的wc个单端口存储器。对于uj子矢量,每个单端口存储器可更新wc个层中的一个层的部分校正子。由于对于不同uj,wc个层的层数不同,层的部分校正子可分布在所有的wc个单端口存储器上。在将校正子输出到最终校正子校验模块用于监控之前,最终校正子累加可以对分布在wc个单端口存储器上的同一层的部分校正子进行模2求和。
图9示出了根据本发明的一个实施例的奇偶校验单元的处理流程图。图5的校正子累加器控制模块502可实施该流程图以控制校正子计算、更新和累加的运行。校正子累加器控制模块502可以使用硬件、处理器上运行的软件、或者本领域技术人员已知的硬件和软件的结合来实施该流程图。
以902开始,奇偶校验单元接收来自信息处理单元103的作为输入数据(data_in)的p位代码字的译码硬判决。对于QC-LDPC编码,p可以为循环行列式子矩阵的大小。在904中,奇偶校验单元评估data_in以及HD_MEM 504的状态。data_in可以为以顺序u1,u2…uc接收的代码字的uj。在其他实施例中,如果信息处理单元103不按顺序对所接收的代码字进行迭代译码,则uj可以不按顺序接收。HD_MEM 504可以存储所接收的代码字的uj。在906中,奇偶校验单元确定data_in的uj是否为uj硬判决被接收的首次,或者,确定uj是否为来自迭代译码过程的硬判决的更新。在908中,如果uj是首次被接收,则将uj写入到HD_MEM 504,且将对应于uj的奇偶校验矩阵的列的各层的部分校正子写入到SA_BUF 508中。因为这是各层的第一部分校正子,在相应的奇偶校验矩阵的列中的元素与uj之间的矩阵乘积可以被写入SA_BUF508,而不需要与SA_BUF 508的现有数据模2求和。
在910中,如果uj是来自译码过程的硬判决的更新,则奇偶校验单元确定uj是否与HD_MEM 504中现有的uj相同。如果它们不相同,则HD_MEM 504中存储的uj的一个或多个硬判决已经被翻转。在912中,奇偶校验单元将更新的uj写为HD_MEM 504。奇偶校验单元也在SA_BUF 508中为对应于翻转位的奇偶校验单元的列中的各层更新部分校正子。例如,对于QC-LDPC码,奇偶校验单元可以对对应于uj的翻转的硬判决的各层,翻转SA_BUF 508中的部分校正子。
在910中,如果奇偶校验单元确定data_in的uj与HD_MEM 504中现有的uj相同,则迭代译码过程没有翻转uj的任何硬判决。HD_MEM504中的uj和对应于SA_BUF 508中的uj的部分校正子均不需要更新。在914中,奇偶校验单元确定对于所有层,部分校正子是否均为零。在声明所有层的校正子均为零之前,奇偶校验单元可以等待,直到u1,u2…uc中所有uj的硬判决已经至少被接收一次。如果至少一个部分校正子为非零,则译码的代码字对于所有校验节点的奇偶校验失败,且奇偶校验单元返回到904以等待data_in中下一个迭代的译码uj。另一方面,如果所有的部分校正子均为零,则已经检测到了有效代码字。在916中,奇偶校验单元输出HD_MEM 504作为译码的代码字,并在918中结束译码。在一个或多个实施例中,如果在超时间隔后所有的部分校正子仍不为零,则奇偶校验单元可以终止译码。因为部分校正子仅对于对应于翻转的代码位的各层更新,所以,从有效代码字进入奇偶校验单元的时间开始,终止译码的退出时间是很快的。
图10示出根据本发明的一个实施例的、用于多组硬判决的校正子累加的并行奇偶校验单元的框图。为了提高译码吞吐量,可以将奇偶校验矩阵H进行分割。并行信息处理单元103可以使用分割的H矩阵的奇偶检验方程估计迭代译码过程中的最有可能的代码字。每个信息处理单元103均可以为一个分区产生uj。因此,并行消处理单元103可以产生对应于分区数目的并行的多个uj。并行奇偶校验单元1002可以支持从并行信息处理单元103接收到的多个uj。
具有三个层的且用于对具有四个子矢量的代码字进行译码的QC-LDPC奇偶校验矩阵H的示例如下所示:
对于两个并行信息处理单元103和两个并行奇偶校验单元1002,可以沿着点线将H矩阵分割成两个分区,以产生:
在一个或多个实施例中,可以将H矩阵进行分割,以使具有更多相关性的列被分组在相同的分区。一个信息处理单元103和一个奇偶校验单元1002将在第一分区上运行,以为第一分区的三个层累加部分校正子:
第二信息处理单元103和第二奇偶校验单元1002将在第二分区上运行,以为第二分区的三个层累加部分校正子:
两个分区的三个层的部分校正子由并行校正子累加器1004进行求和。当H矩阵为二进制矩阵时,并行校正子累加器1004可以使用异或门来实施。
并行奇偶校验单元1002的代价是依据分区数目的SA_BUF大小的增加。在H矩阵具有两个分区的示例中,当实施为翻转触发器时,SA_BUF的大小可以为(m·p·2)。当规则H矩阵具有wc的列重wc栏、且使用单端口存储器实施SA_BUF时,SA_BUF的大小可以为(m·p·wc·分区的数目)。并行信息处理单元可以处理H矩阵从而为代码字的子矢量产生不按顺序的硬判决。并行奇偶校验单元1002固有地支持不按顺序的接收到的子矢量的处理。
在所讨论的分层LDPC译码器的奇偶校验单元中,从uj硬判决进入HD_MEM的时刻到有效校正子从最终校正子校验中输出,可具有固定的传递(pipeline)延迟。在传递延迟期间,当译码器确定是否具有有效校正子时,可以用uj的附加硬判决对HD_MEM进行更新。例如,在某些情况下,译码器可以仅仅短暂地(例如一个时钟周期)收敛,且在再次收敛在一起之前,可以分离一段时间(例如数十或上百个时钟周期)。因此,当有效校正子在收敛的初始窗口过程中宣布时,存储在HD_MEM中的代码字可能与产生有效校正子的代码字是不同的。为了避免奇偶校验单元输出错误的代码字,可缓冲HD_MEM硬判决。
图11示出了根据本发明的一个实施例的、使用附加硬判决存储器来使校正子校验与译码的数据同步的奇偶校验单元的框图。HD_MEM的级联链1102存储在传递延迟过程中接收到的硬判决。HD_MEM 1102复件的数目可以为传递延迟的时钟的数目,由z表示。当有效校正子从最终校正子校验中宣布时,可以从HD_MEM 1102的最后阶段得到有效代码字。因此,即使在传递延迟期间硬判决发生改变,产生有效校正子的代码字被存储为用于输出的译码代码字。在一个或多个实施例中,作为存储HD_MEM 1102全部内容的多个复本的替代,仅存储HD_MEM 1102中在传递延迟期间数值被最新接收的uj快速翻动翻转的硬判决。用于存储翻转的硬判决的、比传递延迟旧的存储器可以循环使用。
因为存储器在区域和功率上都是昂贵的,避免使用附加HD_MEM存储硬判决是比较令人满意的。可接受的折中为将单个HD_MEM保持为使译码器可丢失收敛的短暂窗口为小概率。反过来,可以在区域和功率上以较少的成本对奇偶校验单元的校正子累加器控制模块502进行调整,以保证在传递延迟后当检测到有效校正子时,奇偶校验单元输出有效代码字。
图12示出了根据本发明的一个实施例的、奇偶校验单元的校正子累加器控制模块502使校正子校验和译码的数据同步的过程的流程图。以1202开始,假定奇偶校验单元已经从信息处理单元103接收了代码字的所有(n·p)个代码位的、译码的硬判决至少一次。在1204中,校正子累加器控制模块502将校正子-OK计数(syndrome-ok count)重置为零。在1206中,校正子累加器控制模块502确定当接收到uj的附加硬判决后HD_MEM 504的内容是否发生了改变。如果因在迭代译码过程中HD_MEM 504中现有uj的至少一个硬判决已经翻转的而使HD_MEM 504已经改变,则校正子累加器控制模块502返回控制1204以重置校正子-OK计数。
另一方面,如果HD_MEM 504没有改变,校正子累加器控制模块502在1208中增加校正子-OK计数。例如,如果新的uj与HD_MEM 504中现有uj是相同的,这意味着迭代译码过程没有翻转uj的任何硬判决。HD_MEM 504中现有uj没有不被更新,且HD_MEM 504的内容保持不变。校正子累加器控制模块502增加校正子-OK计数以指示HD_MEM504对于附加时钟没有改变。在1210中,校正子累加器控制模块502确定校正子-OK计数是否等于传递延迟,以及最终校正子校验510是否宣布了有效校正子。这是HD_MEM 504在传递延迟的整个期间保持不变的情况,使用传递延迟用于奇偶校验单元基于HD_MEM 504中的代码字产生最终校正子校验。如果该情况是真的,在1212中,奇偶校验单元输出HD_MEM 504中的译码的代码字,并且在1214中终止译码。
另一方面,如果校正子-OK计数不等于传递延迟、或者如果没有有效校正子,则校正子累加器控制模块502返回控制到1206以接收附加硬判决uj。例如,当小于传递延迟的短暂时段发生收敛时,HD_MEM504可能已经在传递延迟期间改变了。在这种情况下,即便具有有效校正子校验,产生有效校正子的代码字在HD_MEM 504中已经被重写了。校正子-OK计数小于传递延迟,并且在1210中的条件是错误的。因此,奇偶校验单元不输出HD_MEM 504中错误的代码字。图12中的步骤保证了当收敛的短暂窗口被忽略时,以译码时间的稍微增加为代价,只输出有效代码字。
提供的上述说明书用于描述本发明的一个或多个实施例,而不意在限制本发明的范围。尽管参照各个实施例详细描述了本发明,本领域技术人员通过调整所公开的实施例或通过替代等价部件可以获得本发明的其他实施例。应当理解的是,如本文权利要求中所要求的任何调整、替代或等价部件以及改进都在本发明的范围内,且没有脱离本发明的精神和原则。
Claims (20)
1.一种对低密度奇偶校验码(LDPC码)进行译码的方法,其特征在于,包括:
由处理器接收译码的代码字的接收子矢量;
确定所述接收子矢量是否与对应的存储子矢量不同;
如果所述接收子矢量与所述存储子矢量不同,则将所述接收子矢量存储为所述存储子矢量,并且,基于上述不同,更新校验节点的一个或多个层的部分校正子,其中,所述一个或多个层在对应于所述接收子矢量的编码矩阵的列中具有非零元素;以及
校验所述校验节点的所有层的部分校正子。
2.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:
如果没有存储子矢量,则将所述接收子矢量存储为所述存储子矢量,并且,更新校验节点的一个或多个层的部分校正子,其中,所述一个或多个层在对应于所述接收子矢量的编码矩阵的列中具有非零元素。
3.根据权利要求2所述的方法,其特征在于,所述方法进一步包括:
对于所述代码字的多个子矢量,重复所述的接收、确定、存储及更新。
4.根据权利要求3所述的方法,其特征在于,所述的校验所述部分校正子进一步包括:
验证对于所述代码字的所有子矢量均有存储子矢量;以及
当所述校验节点的所有层的部分校正子均为零时,将所有所述存储子矢量输出为有效译码的代码字。
5.根据权利要求3所述的方法,其特征在于,所述的校验所述部分校正子进一步包括:
验证对于所述代码字的所有子矢量均有存储子矢量;
验证在最小时间周期内所有的存储子矢量均没有改变;以及
当所述校验节点的所有层的部分校正子均为零时,将所有存储子矢量输出为有效译码的代码字。
6.根据权利要求1所述的方法,其特征在于,所述的基于所述接收子矢量与所述存储子矢量之间的不同进行更新包括:
检测所述接收子矢量与所述存储子矢量之间的翻转位;以及
翻转校验节点的一个或多个层的部分校正子,其中,所述一个或多个层在对应于所述翻转位的编码矩阵的列中具有非零元素,
并且其中,所述的存储所述接收子矢量包括存储所述翻转位以更新存储子矢量的对应位。
7.根据权利要求6所述的方法,其特征在于,所述的存储所述接收子矢量进一步包括:存储所述存储子矢量,以防止在所述校验节点的所有层的部分校正子的校验完成之前,所述存储子矢量被所述接收子矢量的翻转位重写。
8.根据权利要求1所述的方法,其特征在于,所述LDPC码为包括p×p大小的子矩阵循环行列式的准循环LDPC(QC-LDPC),并且,所述代码字的接收子矢量具有p个硬判决。
9.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:
由所述处理器并行接收所述译码的代码字的多个接收子矢量;
对于所述多个接收子矢量,并行执行所述的确定、存储及更新,以为所述校验节点的一个或多个层中的每一个并行产生多个部分校正子;以及
在校验所述校验节点的所有层的部分校正子之前,累加所述校验节点的一个或多个层中的每一个的多个部分校正子。
10.一种装置,其特征在于,包括:
存储单元,所述存储单元配置为存储低密度奇偶校验码(LDPC码)的译码的代码字的多个存储子矢量;
部分校正子累加器,所述部分校正子累加器配置为存储LDPC码的校验节点的多个层的部分校正子;
控制单元,所述控制单元配置为:
接收所述代码字的接收子矢量;
确定所述接收子矢量是否与所述存储单元中的对应存储子矢量不同;以及
如果所述接收子矢量与所述存储子矢量不同,则将所述接收子矢量存储在所述存储单元中作为所述存储子矢量,并且,基于上述不同,更新所述部分校正子累加器中的校验节点的一个或多个层的部分校正子,其中,所述一个或多个层在对应于所述接收子矢量的编码矩阵的列中具有非零元素;以及
最终校正子校验单元,所述最终校正子校验单元配置为校验所述部分校正子累加器中的所述校验节点的所有层的部分校正子。
11.根据权利要求10所述的装置,其特征在于,如果没有存储子矢量,所述控制单元进一步配置为:
将所述接收子矢量存储在所述存储单元中作为所述存储子矢量,并且,
更新所述部分校正子累加器中的校验节点的一个或多个层的部分校正子,其中,所述一个或多个层在对应于所述接收子矢量的编码矩阵的列中具有非零元素。
12.根据权利要求11所述的装置,其特征在于,所述控制器进一步配置为:
相继接收多个接收子矢量;
确定每个所述接收子矢量是否与所述存储单元中的对应存储子矢量不同;和
如果每个所述接收子矢量均与所述存储子矢量不同,则将所述接收子矢量存储在所述存储单元中作为所述存储子矢量,并且,基于上述不同,更新所述部分校正子累加器中的校验节点的一个或多个层的部分校正子,其中,所述一个或多个层在对应于所述接收子矢量的编码矩阵的列中具有非零元素。
13.根据权利要求12所述的装置,其特征在于,所述最终校正子校验单元进一步配置为:
验证对于所述存储单元中的代码字的所有子矢量均有存储子矢量;以及
当所述部分校正子累加器中的校验节点的所有层的部分校正子均为零时,将所有所述存储子矢量输出为有效译码的代码字。
14.根据权利要求12所述的装置,其特征在于,所述最终校正子校验单元进一步配置为:
验证对于所述存储单元中的代码字的所有子矢量均有存储子矢量;
验证在最小时间周期内所有的存储子矢量均没有改变;以及
当所述部分校正子累加器中的校验节点的所有层的部分校正子均为零时,将所有存储子矢量输出为有效译码的代码字。
15.根据权利要求10所述的装置,其特征在于,所述控制单元进一步配置为:
检测所述接收子矢量与所述存储子矢量之间的翻转位;
翻转所述部分校正子累加器中的校验节点的一个或多个层的部分校正子,其中,所述一个或多个层在对应于所述翻转位的编码矩阵的列中具有非零元素;以及
存储所述翻转位以更新所述存储单元中的存储子矢量的对应位。
16.根据权利要求15所述的装置,其特征在于,所述存储单元进一步包括缓冲器,以存储所述存储子矢量,以防止在所述最终校正子校验单元校验所述部分校正子累加器中的校验节点的所有层的部分校正子之前,所述存储子矢量被所述接收子矢量的翻转位重写。
17.根据权利要求10所述的装置,其特征在于,所述LDPC码为包括p×p大小的子矩阵循环行列式的准循环LDPC(QC-LDPC),并且,所述代码字的接收子矢量具有p个硬判决。
18.根据权利要求17所述的装置,其特征在于,所述部分校正子累加器包括:
一个或多个循环移位器,所述一个或多个循环移位器配置为通过对应于所述接收子矢量的编码矩阵的列中的一个或多个非零子矩阵循环行列式来使所述接收子矢量移位;以及
多个异或门,以累加所述一个或多个循环移位器的输出。
19.根据权利要求10所述的装置,其特征在于,所述控制单元进一步配置为:
并行接收所述译码的代码字的多个接收子矢量;
确定每个所述接收子矢量是否均与所述存储单元中的对应存储子矢量不同;以及
如果每个所述接收子矢量均与所述对应存储子矢量不同,则将所述接收子矢量存储在所述存储单元中作为所述存储子矢量,并且,基于上述不同,对于所述多个接收子矢量,并行更新所述部分校正子累加器中的校验节点的一个或多个层的部分校正子,其中,所述一个或多个层在对应于每个所述接收子矢量的编码矩阵的列中具有非零元素;以及
对于所述部分校正子累加器中的校验节点的一个或多个层的每一个,累加所述多个部分校正子。
20.根据权利要求10所述的装置,其特征在于,所述部分校正子累加器包括:多个存储器,所述存储器的数目等于所述编码矩阵的最大列重,并且,所述多个存储器并行累加所述校验节点的所有层的部分校正子。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/708,507 US9692450B2 (en) | 2015-05-11 | 2015-05-11 | Systems and methods for early exit of layered LDPC decoder |
US14/708,507 | 2015-05-11 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106160752A true CN106160752A (zh) | 2016-11-23 |
CN106160752B CN106160752B (zh) | 2019-11-08 |
Family
ID=57277408
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610311470.9A Active CN106160752B (zh) | 2015-05-11 | 2016-05-11 | 用于分层ldpc译码器的提早退出的系统和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9692450B2 (zh) |
CN (1) | CN106160752B (zh) |
TW (1) | TW201703442A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108270518A (zh) * | 2016-12-30 | 2018-07-10 | 慧荣科技股份有限公司 | 用以解码接收息的解码方法与相关解码装置 |
CN109933456A (zh) * | 2017-12-18 | 2019-06-25 | 三星电子株式会社 | 操作存储器控制器的方法 |
TWI699977B (zh) * | 2017-11-21 | 2020-07-21 | 慧榮科技股份有限公司 | 使用於低密度奇偶檢查碼解碼器的方法及解碼器 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102254102B1 (ko) * | 2015-01-23 | 2021-05-20 | 삼성전자주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
US10673461B2 (en) * | 2015-12-24 | 2020-06-02 | Intel Corporation | Hybrid scheduling and latch-based pipelines for low-density parity-check decoding |
US20170222659A1 (en) * | 2016-02-02 | 2017-08-03 | Silicon Motion Inc. | Power improvement for ldpc |
KR20170101368A (ko) * | 2016-02-26 | 2017-09-06 | 에스케이하이닉스 주식회사 | 에러 정정 회로 및 에러 정정 방법 |
US10116333B2 (en) * | 2016-07-29 | 2018-10-30 | Sandisk Technologies Llc | Decoder with parallel decoding paths |
EP3373488B1 (en) * | 2017-03-07 | 2020-05-06 | Commissariat à l'Energie Atomique et aux Energies Alternatives | Stopping criterion for decoding quasi-cyclic ldpc codes |
WO2019069128A1 (en) * | 2017-10-02 | 2019-04-11 | Lenovo (Singapore) Pte. Ltd. | METHOD AND APPARATUS FOR USING A DETERMINED COMPRESSION MATRIX TO FORM A SET OF COMPOSITE BEAMS |
CN109936378B (zh) * | 2017-12-19 | 2022-08-26 | 北京紫光展锐通信技术有限公司 | Ldpc的乱序译码实现方法及装置 |
CN108566211B (zh) * | 2018-03-27 | 2021-11-02 | 西安电子科技大学 | 基于H矩阵层处理顺序动态变化的layered LDPC译码方法 |
CN108649963A (zh) * | 2018-07-09 | 2018-10-12 | 建荣半导体(深圳)有限公司 | Qc-ldpc解码器、分层解码方法、存储设备及通信模组 |
US10942805B2 (en) | 2018-08-03 | 2021-03-09 | Samsung Electronics Co., Ltd. | Error correcting circuit performing error correction on user data and error correcting method using the error correcting circuit |
CN111142058B (zh) * | 2020-01-02 | 2022-05-17 | 联芸科技(杭州)有限公司 | 电阻检测装置及方法 |
CN113691263B (zh) * | 2021-08-19 | 2024-02-27 | Oppo广东移动通信有限公司 | 多比特并行校验方法及装置、存储介质及Turbo译码器 |
US11863201B2 (en) * | 2022-04-01 | 2024-01-02 | Qualcomm Incorporated | Correlation-based hardware sequence for layered decoding |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1414707A (zh) * | 2002-12-20 | 2003-04-30 | 清华大学 | 用于降低乘积码译码所需存储量和复杂度的方法 |
CN102684709A (zh) * | 2012-05-10 | 2012-09-19 | 天津大学 | 一种译码方法及其译码装置 |
CN103208995A (zh) * | 2013-03-27 | 2013-07-17 | 东南大学 | 一种低密度奇偶校验码译码的提前终止方法 |
US8751912B1 (en) * | 2010-01-12 | 2014-06-10 | Marvell International Ltd. | Layered low density parity check decoder |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7296216B2 (en) | 2003-01-23 | 2007-11-13 | Broadcom Corporation | Stopping and/or reducing oscillations in low density parity check (LDPC) decoding |
US7760880B2 (en) | 2004-10-13 | 2010-07-20 | Viasat, Inc. | Decoder architecture system and method |
CN100583651C (zh) | 2004-12-22 | 2010-01-20 | Lg电子株式会社 | 用于使用信道代码解码的装置和方法 |
JP2008544721A (ja) | 2005-06-27 | 2008-12-04 | トムソン ライセンシング | 反復デコーダの電力削減のための方法及び装置 |
GB2449036B (en) | 2006-03-31 | 2011-08-24 | Intel Corp | Layered decoder and method for performing layered decoding |
US8359522B2 (en) | 2007-05-01 | 2013-01-22 | Texas A&M University System | Low density parity check decoder for regular LDPC codes |
US8291285B1 (en) | 2008-09-18 | 2012-10-16 | Marvell International Ltd. | Circulant processing scheduler for layered LDPC decoder |
US8756479B2 (en) * | 2011-01-14 | 2014-06-17 | Marvell World Trade Ltd. | LDPC multi-decoder architectures |
US9136877B1 (en) * | 2013-03-15 | 2015-09-15 | Sandisk Enterprise Ip Llc | Syndrome layered decoding for LDPC codes |
TWI540844B (zh) * | 2013-03-27 | 2016-07-01 | 國立清華大學 | 雙重準循環低密度同位校驗碼 |
US20150106666A1 (en) | 2013-10-10 | 2015-04-16 | Lsi Corporation | Speculative Bit Error Rate Calculator |
-
2015
- 2015-05-11 US US14/708,507 patent/US9692450B2/en active Active
-
2016
- 2016-05-11 TW TW105114536A patent/TW201703442A/zh unknown
- 2016-05-11 CN CN201610311470.9A patent/CN106160752B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1414707A (zh) * | 2002-12-20 | 2003-04-30 | 清华大学 | 用于降低乘积码译码所需存储量和复杂度的方法 |
US8751912B1 (en) * | 2010-01-12 | 2014-06-10 | Marvell International Ltd. | Layered low density parity check decoder |
CN102684709A (zh) * | 2012-05-10 | 2012-09-19 | 天津大学 | 一种译码方法及其译码装置 |
CN103208995A (zh) * | 2013-03-27 | 2013-07-17 | 东南大学 | 一种低密度奇偶校验码译码的提前终止方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108270518A (zh) * | 2016-12-30 | 2018-07-10 | 慧荣科技股份有限公司 | 用以解码接收息的解码方法与相关解码装置 |
CN108270518B (zh) * | 2016-12-30 | 2021-01-26 | 慧荣科技股份有限公司 | 用以解码接收信息的解码方法与相关解码装置 |
TWI699977B (zh) * | 2017-11-21 | 2020-07-21 | 慧榮科技股份有限公司 | 使用於低密度奇偶檢查碼解碼器的方法及解碼器 |
US11296725B2 (en) | 2017-11-21 | 2022-04-05 | Silicon Motion, Inc. | Method employed in LDPC decoder and the decoder |
CN109933456A (zh) * | 2017-12-18 | 2019-06-25 | 三星电子株式会社 | 操作存储器控制器的方法 |
Also Published As
Publication number | Publication date |
---|---|
TW201703442A (zh) | 2017-01-16 |
US20160336964A1 (en) | 2016-11-17 |
CN106160752B (zh) | 2019-11-08 |
US9692450B2 (en) | 2017-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106160752A (zh) | 用于分层ldpc译码器的提早退出的系统和方法 | |
US8645810B2 (en) | Fast detection of convergence or divergence in iterative decoding | |
US10511326B2 (en) | Systems and methods for decoding error correcting codes | |
CN104868925B (zh) | 结构化ldpc码的编码方法、译码方法、编码装置和译码装置 | |
CN103155421B (zh) | Ldpc多解码器架构 | |
US7730377B2 (en) | Layered decoding of low density parity check (LDPC) codes | |
AU2005225107B2 (en) | Method and apparatus for decoding low density parity check code using united node processing | |
US8656249B2 (en) | Multi-level LDPC layer decoder | |
US20140223255A1 (en) | Decoder having early decoding termination detection | |
US10491244B2 (en) | Systems and methods for decoding error correcting codes | |
CN101232288B (zh) | 一种基于奇偶校验矩阵的ldpc码的译码方法及译码器 | |
Esfahanizadeh et al. | Finite-length construction of high performance spatially-coupled codes via optimized partitioning and lifting | |
CN100589357C (zh) | 基于单位阵及其循环移位阵的ldpc码向量译码装置和方法 | |
US8751912B1 (en) | Layered low density parity check decoder | |
US20130139022A1 (en) | Variable Sector Size LDPC Decoder | |
US11381253B1 (en) | Decoding codeword based on higher order information | |
US10848182B2 (en) | Iterative decoding with early termination criterion that permits errors in redundancy part | |
CN100542049C (zh) | 一种多码率的ldpc码的译码器装置及译码方法 | |
US10200064B1 (en) | Systems and method for bit-flipping decoders with partial-column processing, ordering and scheduling | |
US20170163288A1 (en) | On-the-fly evaluation of the number of errors corrected in iterative ecc decoding | |
CN113783576A (zh) | 用于从循环置换矩阵的集群构建的准循环低密度奇偶校验码的垂直分层解码的方法及设备 | |
CN100544212C (zh) | 高速的减少存储需求的低密度校验码解码器 | |
CN102386931A (zh) | 差错检测纠正方法和半导体存储装置 | |
CN105164646A (zh) | 具有早期解码终止检测的解码器 | |
Marelli et al. | BCH and LDPC error correction codes for NAND flash memories |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 310053 room c1-604, building C, No. 459, Qianmo Road, Xixing street, Binjiang District, Hangzhou, Zhejiang Province Patentee after: Lianyun Technology (Hangzhou) Co.,Ltd. Address before: 310053 Floor 9, building 2, No. 307, Liuhe Road, Binjiang District, Hangzhou, Zhejiang Province Patentee before: MAXIO TECHNOLOGY (HANGZHOU) Ltd. |