CN108649963A - Qc-ldpc解码器、分层解码方法、存储设备及通信模组 - Google Patents
Qc-ldpc解码器、分层解码方法、存储设备及通信模组 Download PDFInfo
- Publication number
- CN108649963A CN108649963A CN201810744039.2A CN201810744039A CN108649963A CN 108649963 A CN108649963 A CN 108649963A CN 201810744039 A CN201810744039 A CN 201810744039A CN 108649963 A CN108649963 A CN 108649963A
- Authority
- CN
- China
- Prior art keywords
- variable
- check
- node
- ldpc
- information
- 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
Links
- 238000004891 communication Methods 0.000 title claims abstract description 12
- 238000013459 approach Methods 0.000 title claims abstract description 11
- 238000012545 processing Methods 0.000 claims abstract description 133
- 239000011159 matrix material Substances 0.000 claims abstract description 89
- 238000012795 verification Methods 0.000 claims abstract description 32
- 238000012544 monitoring process Methods 0.000 claims abstract description 3
- 238000000034 method Methods 0.000 claims description 28
- 230000005540 biological transmission Effects 0.000 claims description 4
- 238000001514 detection method Methods 0.000 claims description 4
- 238000012804 iterative process Methods 0.000 description 11
- 230000015654 memory Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 7
- 238000012360 testing method Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 2
- 230000005611 electricity Effects 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 101100270213 Caenorhabditis elegans arrd-17 gene Proteins 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 101150114624 cnp-1 gene Proteins 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
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/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
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- 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/61—Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
- H03M13/615—Use of computational or mathematical techniques
- H03M13/616—Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Probability & Statistics with Applications (AREA)
- General Physics & Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明实施例提供了QC‑LDPC解码器、分层解码方法、存储设备及通信模组。所述种QC‑LDPC解码器包括:零矩阵监测电路,用于监测QC‑LCPC编码信息的校验矩阵的子矩阵是否为零矩阵;校验节点处理电路,用于在所述子矩阵不为零矩阵时,根据变量节点的变量信息,通过所述校验矩阵计算所述校验节点的校验信息;变量节点处理电路,用于在所述子矩阵不为零矩阵时,根据所述校验节点返回的校验信息,更新所述变量节点的变量信息;校验电路,用于在所述变量信息满足校验标准时,确定为解码信息;并且,在所述变量信息进行更新的次数超过预设阈值,仍不满足所述校验标准时,确定为解码失败。
Description
技术领域
本发明涉及LDPC编码技术领域,特别是涉及一种QC-LDPC解码器、分层解码方法、存储设备及通信模组。
背景技术
低密度奇偶校验(Low-density parity-check,LDPC)码是一种前向纠错码。其采用迭代译码的方式,通过一个预先构造的稀疏校验矩阵进行编码。LDPC码虽然在性能上具有较大的优越性,但由于存在编译码实现方法的复杂度较高,难以在硬件电路上实现的缺陷而限制了其应用的范围。
为了克服LDPC码在应用上的阻碍,Marc PC Fossorier提出了一种准循环低密度奇偶校验(Quasi-Cyclic Low-density parity-check,QC-LDPC)码。其结合了结构性和随机性的特点,在具备LDPC码优越性能的同时很好的简化了编译码电路。
虽然上述QC-LDPC码的提出简化了编译码电路。但是受限于实际应用的情景(如QC-LDPC码的长度较长),QC-LDPC译码器仍然存在芯片占用面积大、存储量需求多,内部连线复杂以及功耗高等难题。如何取得译码器在译码效率和资源消耗之间的折衷,以及更好的提高译码器的数据吞吐量等仍然是一个迫待解决的问题。
发明内容
本发明实施例主要解决的技术问题是提供一种QC-LDPC解码器、分层解码方法、存储设备及通信模组以提高QC-LDPC码的译码效率。
为解决上述技术问题,本发明实施例提供了一种QC-LDPC解码器。该QC-LDPC解码器包括:
零矩阵监测电路,用于监测QC-LDPC编码信息的校验矩阵的子矩阵是否为零矩阵;
校验节点处理电路,用于在所述子矩阵不为零矩阵时,根据变量节点的变量信息,通过所述校验矩阵计算所述校验节点的校验信息;
变量节点处理电路,用于在所述子矩阵不为零矩阵时,根据所述校验节点返回的校验信息,更新所述变量节点的变量信息;
校验电路,用于在所述变量信息满足校验标准时,确定为解码信息;并且,在所述变量信息进行更新的次数超过预设阈值,仍不满足所述校验标准时,确定为解码失败。
可选地,所述QC-LDPC编码信息的校验矩阵分为M层,M为正整数;所述QC-LDPC解码器用于对QC-LDPC编码信息进行从第1层至第M层的解码。
可选地,所述QC-LDPC解码器还包括延时电路;
所述延时电路设置在所述校验节点处理电路以及所述变量节点处理电路之间,用于形成所述校验节点处理电路进行第m层解码的执行时刻和所述变量节点处理电路进行第m+1层解码的执行时刻之间的延时,M≥m≥1,当m等于M时,m+1等于1。
可选地,所述校验电路与所述变量节点处理电路配对设置。
可选地,所述与所述变量节点处理电路配对设置的校验电路具体用于:校验所述变量节点处理电路输出的至少两层解码的变量信息。
可选地,所述配对设置的校验电路的数量多于所述变量节点处理电路的数量,每个校验电路与两个或者以上的变量节点处理电路对应。
可选地,所述校验节点处理电路包含的校验节点数量与所述子矩阵的行数相同;所述变量节点处理电路包含的变量节点数量与所述子矩阵的列数相同。
可选地,所述校验节点处理电路具体用于:从每一个变量节点传递变量信息到每一个与所述变量节点连接的校验节点;以及计算所述校验节点的校验信息;
所述变量节点处理电路具体用于:从所述校验节点返回校验信息到每个与所述校验节点连接的变量节点,以及计算所述变量节点的变量信息;所述变量信息由对数拟然比表示。
为解决上述技术问题,本发明实施例还提供了一种QC-LDPC分层解码方法。
所述QC-LDPC分层解码方法包括:将所述QC-LCPC编码信息的校验矩阵划分为M层,M为正整数;根据第m层解码的变量信息,进行第m+1层解码。
其中,所述根据第m层解码的变量信息,进行第m+1层解码的步骤具体包括:检测当前解码的子矩阵是否为零矩阵;若否,则对变量节点的变量信息执行水平相位处理;若是,则跳过所述水平相位处理;在所述水平相位处理完毕以后,检测当前解码的子矩阵是否为零矩阵;若否,则根据所述水平相位处理的处理结果,执行垂直相位处理,获得变量信息;若是,则跳过垂直相位处理;在所述垂直相位处理完毕以后,判断所述变量信息是否满足校验标准;在所述变量信息满足校验标准时,确定所述变量信息为解码结果;在所述变量节点的变量信息更新次数超出预设阈值时,确定为解码失败。
可选地,所述方法还包括:在第m层的垂直相位处理开始执行时,延迟预设的时间后执行第m+1层的水平相位处理,M≥m≥1,当m等于M时,m+1等于1,并且每次间隔两层或以上解码的变量信息,判断所述变量信息是否满足校验标准。
为解决上述技术问题,本发明实施例还提供了一种存储设备,包括若干存储单元以及存储控制器。其中,所述存储控制器中包括至少一个如上所述的QC-LDPC解码器。
为解决上述技术问题,本发明实施例还提供了一种通信模组,应用QC-LDPC编码。其中,所述通信模组至少包括一个如上所述的QC-LDPC解码器。
本发明实施例中提供的QC-LDPC解码器,额外设置了零矩阵监测电路,能够在监测到零矩阵的情况下,自动跳过,不对零矩阵进行水平相位或垂直相位处理。通过这样的方式,可以有效减少解码器的处理时间(减省了处理零矩阵所消耗的无效时间),提高了QC-LDPC解码器的数据吞吐量。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1为本发明实施例提供的QC-LDPC码的应用场景示意图;
图2为QC-LDPC码的Tanner图;
图3为典型的QC-LDPC解码器的结构示意图;
图4为图3所示的QC-LDPC解码器的工作时序示意图;
图5为图4所示的执行CNP_i和VNP_i-1的工作时序示意图;
图6为本发明实施例提供的QC-LDPC解码器的结构示意图;
图7为图6所示的QC-LDPC解码器的工作时序示意图;
图8为本发明实施例提供的QC-LDPC解码方法的方法流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
LDPC码作为一种性能优异,理论性能接近香农极限的纠错码。其可以应用在多种信息传输场景中,例如无线射频通信信道的信道编码或者存储设备的存储信道编码,用以提高信息传输的可靠性。而QC-LDPC码是LDPC码中的其中一种,其具有循环特性,可以有效的降低硬件电路实现的难度而被开始被广泛的应用。
图1为本发明实施例提供的QC-LDPC码在存储设备(如固态硬盘)应用时的示意图。该存储设备由控制数据读写和编译的存储控制器和用于存放数据的存储单元组成。其中,如图1所示,所述存储控制器包括:信息读写接口10、QC-LDPC编码器20、QC-LDPC解码器30以及读写控制器40。所述存储单元由一个或者多个FLASH存储区块50组成。
所述信息读写接口10是用于写入或者输出数据流的数据接口,具体可以根据实际使用需要,设置为相对应的接口形式(如USB接口)。
所述QC-LDPC编码器20由相应的硬件电路组成,用以根据预设的生成矩阵和相应的编码算法,对输入信息进行QC-LDPC编码。所述QC-LDPC解码器30也可以由相应的硬件电路组成,用以根据预设的译码算法和校验矩阵,对输入的编码信息执行QC-LDPC译码操作。
所述读写控制器40与FLASH存储区块50连接,作为数据读写的控制中枢,用于根据控制指令,控制数据写入相应的FLASH存储区块50中或者从FLASH存储区块50的特定位置读取数据。
存储设备的实际使用过程可以包括如下两方面:
在数据写入时,数据流通过信息读写接口10输入至所述QC-LDPC编码器20中,由所述QC-LDPC编码器20对这些数据进行QC-LDPC编码后,输出至读写控制器40。所述读写控制器40根据控制指令,将编码信息有序的存储到FLASH存储区块50相应的存储地址中。
而在数据读取时,所述读写控制器40根据控制指令,从FLASH存储区块50对应的存储地址中读取编码信息,并提供至所述QC-LDPC解码器30中。所述QC-LDPC解码器30对输入的编码信息进行QC-LDPC译码操作,重新解码后经由所述信息读写接口10输出。
经过上述QC-LDPC编码和解码的过程,对存储信道进行编码,可以有效的提高存储设备的可靠性,弥补基于FLASH闪存技术等存储器(如SSD)在存储可靠性上的缺陷。
相类似地,建立无线通信信道的通信模组之间也可以分别设置有QC-LDPC编码器和QC-LDPC解码器,分别对发送的信息进行QC-LDPC编码以及对接收的信息进行QC-LDPC译码,用以实现收发双方之间有效的信息传递,降低信息传输过程中各种外界干扰的影响。
结合以上的应用场景可以看到:在应用QC-LDPC编码时,QC-LDPC编码器和QC-LDPC解码器总是期望具有更大的数据吞吐量或者在更小的硬件电路成本的前提下实现。以下结合LDPC码的特点,详细的描述一种能够通过增加较小的硬件电路成本而显著提高QC-LDPC解码器的数据吞吐量的解码器架构。
LDPC码的校验矩阵H中的每一行表示LDPC码的一个校验节点,校验矩阵H的每一列表示LDPC码的一个变量节点。例如,如下所示的校验矩阵H:
在该校验矩阵H中,“0”表示对应的校验节点与变量节点之间没有连接(如v3和c1之间),“1”表示对应的校验节点与变量节点之间存在连接(如v1和c1之间)。
另外,LDPC码还可以通过Tanner图的双向图模型的形式直观的进行表示。如图2所示,该Tanner图包含了校验节点和变量节点两类节点。其中,校验节点有4个,对应于校验矩阵H中的各行。而变量节点有7个,与校验矩阵H中各列相对应。变量节点与校验节点之间的连线数与校验矩阵H中“1”的数量相同。
QC-LDPC码是一种为了便于电路实现的结构性LDPC码。其具有了结构性的特点,校验矩阵Hqc的实质上可以被划分为若干个子矩阵Ai,j,每个子矩阵为全零的零矩阵或者特定的单位矩阵(例如由单位矩阵循环移位形成的循环矩阵),具有分块循环的特性。
假设子矩阵Ai,j为z×z的矩阵,对于任意的1≤i≤m以及1≤j≤n,QC-LDPC码的校验矩阵Hqc可以表示如下:
对于QC-LDPC码的校验矩阵而言(以上述的校验矩阵Hqc为例),可以直观的以子矩阵的行,将其划分多层。基于校验矩阵这样的特性,在QC-LDPC码的译码过程中可以使用一个非常有效的,被称为“分层译码算法”的译码方法进行高效率的QC-LDPC译码。
图3为基于分层译码算法设计的QC-LDPC解码器的结构示意图。典型的分层译码算法的思路是将一个完整的译码过程,通过对校验矩阵进行分层的策略,分为M次的迭代过程。在最后一次迭代过程结束以后,输出最终的解码信息(每次迭代过程与每一个校验矩阵的分层对应)。而每一次的迭代过程都以在前一次迭代过程的输出结果为基础。
在每一次迭代过程(即第m层解码)中,需要执行水平相位处理(Horizontalphase)和垂直相位处理(Vertical phase)。另外,在每一次迭代完成以后,对获得的解码结果(即变量节点上的信息)执行校验步骤,确定是否符合校验标准。
其中,所述水平相位处理是指从每一个变量节点传递变量信息到每一个与所述变量节点连接的校验节点,并据此计算每个校验节点对应的校验信息。所述垂直相位处理则是指从所述校验节点返回校验信息到每个与所述校验节点连接的变量节点,并据此计算所述变量节点的变量信息。
在图4所示的QC-LDPC解码器中,以校验节点处理电路CNP表示用于执行水平相位处理的硬件电路,以变量节点处理电路VNP表示用于执行垂直相位处理的硬件电路。以校验电路HDP表示用于执行校验步骤的硬件电路,用以判断变量节点上的变量信息是否满足校验标准。
如图4所示,校验节点处理电路CNP、变量节点处理电路VNP以及校验电路HDP依次连接。变量节点处理电路VNP输出的变量信息分别被提供到校验节点处理电路CNP中进行下一层的解码工作以及校验电路HDP中进行校验步骤。
在本实施例中,该校验电路HDP可以采用硬判断的工作方式,对所述第m层的解码结果(即变量信息)进行校验。
图5为图4所示的QC-LDPC解码器的工作时序图。假设校验矩阵被划分为M层,如图5所示,该QC-LDPC解码器的工作时序如下:
1、变量节点处理电路VNP和校验节点处理电路CNP之间为流水线式执行。校验节点处理电路CNP以当前变量节点的变量信息为基础,执行水平相位处理以后,将处理数据提供给变量节点处理电路VNP。
2、在同一个时隙中,基于变量节点处理电路VNP输出的变量节点的信息,校验节点处理电路CNP执行下一层的水平相位处理。而校验电路HDP也对当前变量节点处理电路VNP输出的变量节点的信息并行执行校验步骤。
在图4所示的实施例中,CNP_i和VNP_i分别表示第i层的水平相位处理和垂直相位处理,i为1和m之间正整数。
即使以上揭露的“分层译码算法”可以通过并行执行每个迭代过程的方式降低LDPC解码器所需要的处理时间。但考虑到使用长度非常长的LDPC码时(如4kb或者2kb),并行执行每一个迭代过程所要占据的资源或者电路面积将会非常庞大(需要使用与每一子矩阵的行数量相同的校验节点和与校验矩阵的列数量相同的变量节点)。
因此,为了进一步的取得译码效率与电路资源之间的折衷,使其能够具备实际应用的能力,还可以将每一个迭代过程进一步的划分为n个片段,解码器通过n个时隙来完成某一层的解码。这样的,可以通过使得QC-LDPC解码器所需要的变量节点数量减少,有效的降低其电路面积,从而使得QC-LDPC解码器变得容易实现。
假设子矩阵的行数量和列数量均为z,相应的,子矩阵组成的校验矩阵的列数量N=zⅹn。
若直接进行一个迭代过程所需要的电路面积为Nⅹz。而将迭代过程划分为多个片段,通过n个时隙完成一个迭代过程时,所需要的解码器面积便降低为zⅹz。
图5为第i层解码时的工作时序图。如图5所示,对于第i层的解码所需要完成的解码任务被划分到n个时隙中完成。QC-LDPC解码器经过n个时隙来完成第i层的解码。其中,CNP_i,j和VNP_i,j分别表示第i层的第j个片段的水平相位处理和垂直相位处理,i为1至M之间的正整数,j为1至n之间的正整数。
由图4和图5可以看出,对于特定的校验矩阵而言,当每一层划分的片段越多(即n越大),QC-LDPC解码器所占用的电路面积就越小(所需要的变量节点数量降低),执行每一层的解码任务所需要的时隙就越多。换句话说,划分的片段数量越少,LDPC解码器的译码时间越短,所需要的电路成本也越高。而划分的片段数量越多,LDPC解码器的译码时间越长,所需要的电路成本越低。
惯常的,基于QC-LDPC码的校验矩阵,可以将每一层划分为与子矩阵相同的大小的片段,以子矩阵作为处理单元进行解码以取得电路成本与译码时间之间的平衡。
亦即,所述校验节点处理电路包含的校验节点数量与所述子矩阵的行数相同,所述变量节点处理电路包含的变量节点数量与所述子矩阵的列数相同这样较小面积电路实现。
由于LDPC码的性质规定了其校验矩阵是一个稀疏矩阵。因此,在QC-LDPC码的校验矩阵中,总是存在一定比例的子矩阵Ai,j为零矩阵(表示对应的校验节点和变量节点之间没有连线,两者不存在信息传递)。而变量节点处理电路CNP和校验节点处理电路VNP实质上并不需要对这些零矩阵进行处理。因此,如图5所示的典型的QC-LDPC解码器工作时序中,有许多处理时隙是浪费的(即被用于对零矩阵进行处理的时隙)。
为了进一步的提高QC-LDPC解码器的数据吞吐量,降低译码所需要的时间。本发明实施例提供了图6所示的QC-LDPC解码器结构,用以避免处理零矩阵造成的浪费。
如图6所示,该QC-LDPC解码器可以包括:零矩阵监测电路610、校验节点处理电路620、变量节点处理电路630以及校验电路640。
其中,在输入LDPC编码信息每一层的解码过程中,零矩阵监测电路610在执行水平相位处理或垂直相位处理前,先用于监测当前需要进行译码的子矩阵是否为零矩阵。若是零矩阵,表明当前没有数据传递,可以不需要进行编码信息进行水平相位处理或垂直相位处理,跳过校验节点处理电路620或变量节点处理电路630。
若否,则通过校验节点处理电路620,根据变量节点的变量信息,通过所述校验矩阵计算所述校验节点的校验信息或者通过变量节点处理电路630,根据所述校验节点返回的校验信息,更新所述变量节点的变量信息。
在一些实施例中,可以使用对数拟然比(LLR)来表示所述变量信息,以便于进行校验信息和变量信息的计算。当然,也可以采用其它合适的表示形式,而不限于所述对数拟然比(LLR)值。
在每一层的所有变量节点的变量信息被更新以后,校验电路640用于判断所述变量信息是否能够满足校验标准。若能够满足,校验电路640可以确定解码成功,提供或者输出相应的解码信息。若不能满足,变量信息可以重新在进行迭代更新后,送入校验电路640重新进行判断。
当然,多次的迭代并不一定能够使变量信息满足校验标准。由此,在所述变量信息进行更新的次数超过一个预设阈值,校验电路640判断变量信息仍然不能满足所述校验标准时,可以直接确定为解码失败。
另外,上述跳过校验节点处理电路620和/或变量节点处理电路630处理的变量信息也需要提供至校验电路640进行校验。亦即,校验电路640应当对全部的编码信息进行校验。
应当说明的是,在本发明实施例中,仅对所述QC-LDPC解码器中的硬件电路均采用了功能性命名的方式进行描述(如零矩阵监测电路610、校验节点处理电路620、变量节点处理电路630以及校验电路640)。本领域技术人员可以根据本发明实施例揭露的硬件电路所要执行的功能,自行对本领域技术中的常用电路结构进行选择、调整或者组合,获得可以执行一个或者多个功能的实际电路结构。用以执行这些功能的实际电路结构均为本领域技术人员所熟知,并不用于限制本发明。
如图4所示,为提高效率,变量节点处理电路630与校验电路640之间具有相同的执行时间。两个电路功能模块一一对应,并行执行。而在图6所示的实施例中,由于额外新增了对零矩阵进行检测的零矩阵监测电路。因此,变量节点处理电路630只需要对其中的一部分编码信息执行垂直相位处理的情况下,所述校验电路640仍然需要对全部的编码信息进行校验的冲突。
这样的冲突将导致变量节点处理电路630与校验电路640之间无法一一配对或者匹配,操作时间不统一。
在一些实施例中,为了消除这样的问题,确保变量节点处理电路630与校验电路640之间的并行执行,需要令变量节点处理电路630与校验电路640配对设置,以确保校验电路640可以对所述变量节点处理电路提供的n个时隙的变量信息都能够进行校验,完成第m层的解码。
具体可以采用多种不同的配对设置方式以解决两者无法一一配对的问题。例如,可以设置更多的校验电路640,使其数量多于变量节点处理电路630的数量。这样可以提供空余的校验电路640以确保那些零矩阵跳过以后的变量信息也可以在同一个时隙中进行校验判断。
在另一些实施例中,还可以使用一个校验电路640,对两个或者以上的所述变量节点处理电路输出的至少两层的变量信息(例如每个校验电路640校验VNP_i和VNP_i+1两层)进行校验。
进一步地,如图5所示,校验节点处理电路620和变量节点处理电路630之间为流水线执行形式。校验节点处理电路620输出的数据(VNP_i-1,j)是变量节点处理电路630的输入数据,变量节点处理电路630需要得到输入数据以后,才能计算CNP_i,j。
如图5所示的,每个片段依次序逐一执行的过程保证了变量节点处理电路630所需要的输入数据可以在上一个时隙生成,不会出现数据冲突。而如图6所示的实施例中,由于在某个片段对应的子矩阵为零矩阵时,校验节点处理电路620和变量节点处理电路630的处理过程会被跳过,不进行处理。因此,跳过处理会造成校验节点处理电路620和变量节点处理电路630之间可能存在数据冲突(即所需要的输入数据没有生成)。
在一些实施例中,可以通过错开校验节点处理电路620和变量节点处理电路630的执行时刻的方式来尽可能的确保不会发生数据冲突的问题。
例如,如图6所示,可以在校验节点处理电路620和变量节点处理电路630的数据传输回路中增设具有合适延时时长的延时电路650,从而在变量节点处理电路630计算CNP_i,j和校验节点处理电路620输出VNP_i-1,j之间产生合适的延时,确保不会发生数据冲突的问题。
图7为本发明实施例提供的QC-LDPC解码器的工作时序图。如图7所示,该工作时序具体如下:
1、校验节点处理电路620基于输入的编码信息,进行第1层的解码,输出CNP_1作为变量节点处理电路630的输入数据。
2、校验节点处理电路620和变量节点处理电路630之间依次序执行交替执行不同层的解码。其中,在变量节点处理电路630执行第i层的水平相位处理时,校验节点处理电路620延时预定的时间t以后,执行第i+1层的垂直相位处理步骤。
3、每个校验电路640与两个变量节点处理电路630相对应,用于执行执行第i层和第i+1层的校验步骤,判断是否解码成功并输出相应的结果。
本发明实施例还提供了一种QC-LDPC分层解码方法。该分层解码方法首先将所述QC-LCPC编码信息的校验矩阵划分为M层。然后,依次对每一层分别进行迭代计算,从而获得最终的解码结果。
图8为本发明实施例提供的计算第m层解码结果的方法流程图。在本实施例中,进行译码运算的单位为校验矩阵的子矩阵(可以通过对每一层进一步划分为多个片段来实现)。
如图8所示,所述方法可以包括如下步骤:
801、检测所述子矩阵是否为零矩阵。若否,则执行步骤802,若是,则跳过所述步骤802,执行步骤803。
802、对变量节点的变量信息执行水平相位处理。
803、确定所述水平相位处理是否结束。若是,则执行步骤804。
804、检测子矩阵是否为零矩阵,若是,则执行步骤805,若否,则跳过所述步骤805,执行步骤806。
805、根据水平相位处理的输出结果,执行垂直相位处理,获得变量信息。
806、判断所述垂直相位处理是否结束。若是,执行步骤807。
807、判断所述变量信息是否满足校验标准。若是,则执行步骤808;若否,则执行步骤809。
808、确定所述变量信息为解码结果。
809、判断所述变量节点的变量信息更新次数是否超出预设阈值。若否,则返回执行水平相位处理和垂直相位处理,再次更新所述变量节点的变量信息;若是,则确定为解码失败(810)。而在解码失败或者获得解码结果以后,结束第m层的解码。
图8所示的解码方法可以由图6所示的QC-LDPC解码器执行,对输入的LDPC编码信息进行译码,获得相应的译码信息。如以上实施例所揭露的,图8所示的方法步骤根据执行逻辑要求,既可以根据实际需要同时由多个同类型的硬件电路模块并行执行(如步骤804和步骤803),也可以由不同的硬件电路采用流水线的方式,依次序交替执行(如步骤802和步骤803)。
例如,为避免数据冲突,可以在第m层的垂直相位处理开始执行时,延迟预设的时间后执行第m+1层的水平相位处理,M≥m≥1,当m等于M时,m+1等于1。并且,在每次间隔两层或以上解码的变量信息时,判断所述变量信息是否满足校验标准。
假设QC-LDPC码的校验矩阵中,每一层中的子矩阵为非零矩阵的比例为r_cw(即QC-LDPC码的校验矩阵的平均列重)。采用上述零矩阵检测方法,跳过对零矩阵的解码处理以后,节约的处理时间比例为1-r_cw。
由于LDPC码的校验矩阵具备稀疏矩阵的性质(即r_cw的数值非常小)。因此,应用本发明实施例提供的解码方法,通过额外设置占用较少电路资源或者芯片面积的监测电路和延时电路,可以带来显著的降低译码所需要的处理时间,有效的提高了QC-LDPC解码器吞吐量的技术效果。
另外,本发明实施例提供的解码方法还可以协助构建或者建立校验矩阵。为了建立一个具有良好性能的校验矩阵,通常会使用子矩阵遮罩(block masking)的方式,将子矩阵从非零矩阵转换为零矩阵,从而消除校验矩阵中的短环并增加校验矩阵的周长。
将子矩阵遮罩与本发明实施例提供的解码方法结合以后,由于零矩阵增加也可以缩短译码所需的时间。因此,可以使得子矩阵遮罩方法在提高LDPC码性能的同时缩短LDPC码的解码时间。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的示例性的LDPC码解码步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。
专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。所述的计算机软件可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体或随机存储记忆体等。
以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (12)
1.一种QC-LDPC解码器,其特征在于,包括:
零矩阵监测电路,用于监测QC-LDPC编码信息的校验矩阵的子矩阵是否为零矩阵;
校验节点处理电路,用于在所述子矩阵不为零矩阵时,根据变量节点的变量信息,通过所述校验矩阵计算所述校验节点的校验信息;
变量节点处理电路,用于在所述子矩阵不为零矩阵时,根据所述校验节点返回的校验信息,更新所述变量节点的变量信息;
校验电路,用于在所述变量信息满足校验标准时,确定为解码信息;并且,在所述变量信息进行更新的次数超过预设阈值,仍不满足所述校验标准时,确定为解码失败。
2.根据权利要求1所述的QC-LDPC解码器,其特征在于,所述QC-LDPC编码信息的校验矩阵分为M层,M为正整数;
所述QC-LDPC解码器用于对QC-LDPC编码信息进行从第1层至第M层的解码。
3.根据权利要求2所述的QC-LDPC解码器,其特征在于,所述QC-LDPC解码器还包括延时电路;
所述延时电路设置在所述校验节点处理电路以及所述变量节点处理电路的数据传输回路之间,用于形成所述校验节点处理电路进行第m层解码的执行时刻和所述变量节点处理电路进行第m+1层解码的执行时刻之间的延时,M≥m≥1,当m等于M时,m+1等于1。
4.根据权利要求2所述的QC-LDPC解码器,其特征在于,所述校验电路与所述变量节点处理电路配对设置。
5.根据权利要求4所述的QC-LDPC解码器,其特征在于,所述与所述变量节点处理电路配对设置的校验电路具体用于:校验所述变量节点处理电路输出的至少两层解码的变量信息。
6.根据权利要求4所述的QC-LDPC解码器,其特征在于,所述配对设置的校验电路的数量多于所述变量节点处理电路的数量,每个校验电路与两个或者以上的变量节点处理电路对应。
7.根据权利要求1-6任一所述的QC-LDPC解码器,其特征在于,所述校验节点处理电路包含的校验节点数量与所述子矩阵的行数相同;所述变量节点处理电路包含的变量节点数量与所述子矩阵的列数相同。
8.根据权利要求1-6任一所述的QC-LDPC解码器,其特征在于,所述校验节点处理电路具体用于:
从每一个变量节点传递变量信息到每一个与所述变量节点连接的校验节点;以及计算所述校验节点的校验信息;
所述变量节点处理电路具体用于:
从所述校验节点返回校验信息到每个与所述校验节点连接的变量节点,以及计算所述变量节点的变量信息;所述变量信息由对数拟然比表示。
9.一种QC-LDPC分层解码方法,包括:将所述QC-LCPC编码信息的校验矩阵划分为M层,M为正整数;根据第m层解码的变量信息,进行第m+1层解码,其特征在于,所述根据第m层解码的变量信息,进行第m+1层解码,包括:
检测当前解码的子矩阵是否为零矩阵;
若否,则对变量节点的变量信息执行水平相位处理;
若是,则跳过所述水平相位处理;
在所述水平相位处理完毕以后,检测当前解码的子矩阵是否为零矩阵;
若否,则根据所述水平相位处理的处理结果,执行垂直相位处理,获得变量信息;
若是,则跳过垂直相位处理;
在所述垂直相位处理完毕以后,判断所述变量信息是否满足校验标准;
在所述变量信息满足校验标准时,确定所述变量信息为解码结果;
在所述变量节点的变量信息更新次数超出预设阈值时,确定为解码失败。
10.根据权利要求9所述的QC-LDPC分层解码方法,其特征在于,所述方法还包括:
在第m层的垂直相位处理开始执行时,延迟预设的时间后执行第m+1层的水平相位处理,M≥m≥1,当m等于M时,m+1等于1;
并且;
每次间隔两层或以上解码的变量信息,判断所述变量信息是否满足校验标准。
11.一种存储设备,包括若干存储单元以及存储控制器,其特征在于,所述存储控制器中包括至少一个如权利要求1-8任一所述的QC-LDPC解码器。
12.一种通信模组,应用QC-LDPC编码,其特征在于,所述通信模组包括至少一个如权利要求1-8任一所述的QC-LDPC解码器。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810744039.2A CN108649963A (zh) | 2018-07-09 | 2018-07-09 | Qc-ldpc解码器、分层解码方法、存储设备及通信模组 |
US16/118,482 US10581460B2 (en) | 2018-07-09 | 2018-08-31 | QC-LDPC decoder, method for performing layered decoding and storage device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810744039.2A CN108649963A (zh) | 2018-07-09 | 2018-07-09 | Qc-ldpc解码器、分层解码方法、存储设备及通信模组 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108649963A true CN108649963A (zh) | 2018-10-12 |
Family
ID=63750786
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810744039.2A Pending CN108649963A (zh) | 2018-07-09 | 2018-07-09 | Qc-ldpc解码器、分层解码方法、存储设备及通信模组 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10581460B2 (zh) |
CN (1) | CN108649963A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090063930A1 (en) * | 2006-02-02 | 2009-03-05 | Mitsubishi Electric Corporation | Check matrix generating method, encoding method, decoding method, communication device, encoder, and decoder |
CN101534166A (zh) * | 2008-03-10 | 2009-09-16 | 上海明波通信技术有限公司 | 准循环低密度奇偶校验码解码器及解码方法 |
CN102291153A (zh) * | 2011-06-13 | 2011-12-21 | 电子科技大学 | Cmmb中ldpc码的译码算法及部分并行译码器 |
US20140215287A1 (en) * | 2008-10-10 | 2014-07-31 | Panasonic Corporation | Decoder, reception apparatus, decoding method, and reception method |
US20160336964A1 (en) * | 2015-05-11 | 2016-11-17 | Jmicron Technology Corporation | Systems and methods for early exit of layered ldpc decoder |
CN208386519U (zh) * | 2018-07-09 | 2019-01-15 | 建荣半导体(深圳)有限公司 | Qc-ldpc解码器、存储设备及通信模组 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI487288B (zh) * | 2012-01-04 | 2015-06-01 | Nat Univ Tsing Hua | 用於非二進制類循環低密度奇偶檢查碼之解碼裝置及其方法 |
US10707902B2 (en) * | 2015-11-05 | 2020-07-07 | Shenzhen Epostar Electronics Limited Co. | Permutation network designing method, and permutation circuit of QC-LDPC decoder |
WO2018027497A1 (en) * | 2016-08-08 | 2018-02-15 | Nokia Technologies Oy | Inter-block modifications to generate sub-matrix of rate compatible parity check matrix |
-
2018
- 2018-07-09 CN CN201810744039.2A patent/CN108649963A/zh active Pending
- 2018-08-31 US US16/118,482 patent/US10581460B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090063930A1 (en) * | 2006-02-02 | 2009-03-05 | Mitsubishi Electric Corporation | Check matrix generating method, encoding method, decoding method, communication device, encoder, and decoder |
CN101534166A (zh) * | 2008-03-10 | 2009-09-16 | 上海明波通信技术有限公司 | 准循环低密度奇偶校验码解码器及解码方法 |
US20140215287A1 (en) * | 2008-10-10 | 2014-07-31 | Panasonic Corporation | Decoder, reception apparatus, decoding method, and reception method |
CN102291153A (zh) * | 2011-06-13 | 2011-12-21 | 电子科技大学 | Cmmb中ldpc码的译码算法及部分并行译码器 |
US20160336964A1 (en) * | 2015-05-11 | 2016-11-17 | Jmicron Technology Corporation | Systems and methods for early exit of layered ldpc decoder |
CN208386519U (zh) * | 2018-07-09 | 2019-01-15 | 建荣半导体(深圳)有限公司 | Qc-ldpc解码器、存储设备及通信模组 |
Also Published As
Publication number | Publication date |
---|---|
US20200014402A1 (en) | 2020-01-09 |
US10581460B2 (en) | 2020-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102412847B (zh) | 用联合节点处理来解码低密度奇偶校验码的方法和设备 | |
CN104681100B (zh) | 用于闪存装置的错误更正码单元、自我测试方法及控制器 | |
CN101999116B (zh) | 通过交叉页面扇区、多页面编码以及每一页面编码将数据存储在多级单元闪速存储器装置中的方法和设备 | |
CN102915766B (zh) | 用于使用依赖于生命周期的编码方案在存储设备上进行操作的系统和方法 | |
CN102017425B (zh) | 用于执行级联纠错的方法和系统 | |
CN105453439B (zh) | 用于乘积码的组合纠错和擦除解码的系统和方法 | |
TWI311869B (en) | 3-stripes gilbert low density parity-check codes | |
CN106158040B (zh) | 读取电压准位估测方法、存储器存储装置及控制电路单元 | |
KR20110037842A (ko) | 메모리 시스템 및 메모리 시스템의 제어 방법 | |
KR100975695B1 (ko) | 통신 시스템에서 신호 수신 장치 및 방법 | |
CN208386519U (zh) | Qc-ldpc解码器、存储设备及通信模组 | |
CN108463807A (zh) | 温度相关的多模式错误校正 | |
US8566665B2 (en) | Systems and methods for error correction using low density parity check codes using multiple layer check equations | |
CN107608818A (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
CN113055021A (zh) | 译码方法、装置、网络设备及存储介质 | |
US20150143187A1 (en) | Implementing enhanced performance with read before write to phase change memory | |
CN103838638B (zh) | Fpga外挂存储器校验方法及装置 | |
CN109785895A (zh) | 纠正NAND Flash中多比特错误的ECC装置和方法 | |
CN109427401A (zh) | 编码方法和使用此方法的存储器存储装置 | |
CN104052500B (zh) | Ldpc码译码器及实现方法 | |
CN107306140A (zh) | 一种gel码字结构编码和译码的方法、装置及相关设备 | |
CN108649963A (zh) | Qc-ldpc解码器、分层解码方法、存储设备及通信模组 | |
CN109901784A (zh) | 数据存取方法、存储器控制电路单元以及存储器储存装置 | |
CN103295631B (zh) | 读取快闪存储器中所储存的数据的方法、存储器控制器与系统 | |
US8443250B2 (en) | Systems and methods for error correction using irregular low density parity check codes |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220506 Address after: Rooms 1306-1309, 13 / F, 19 science Avenue West, Hong Kong Science Park, Shatin, New Territories, China Applicant after: BUILDWIN INTERNATIONAL (ZHUHAI) LTD. Address before: Room 1302, yuemeite building, 1 Gaoxin South 7th Road, Yuehai street, Nanshan District, Shenzhen, Guangdong 518000 Applicant before: Jianrong semiconductor (Shenzhen) Co.,Ltd. Applicant before: BUILDWIN INTERNATIONAL (ZHUHAI) Ltd. |