CN108352846A - 用于低误差底限状况的ldpc后处理器架构及方法 - Google Patents

用于低误差底限状况的ldpc后处理器架构及方法 Download PDF

Info

Publication number
CN108352846A
CN108352846A CN201680064534.8A CN201680064534A CN108352846A CN 108352846 A CN108352846 A CN 108352846A CN 201680064534 A CN201680064534 A CN 201680064534A CN 108352846 A CN108352846 A CN 108352846A
Authority
CN
China
Prior art keywords
check
circuit
node
variable node
llr
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201680064534.8A
Other languages
English (en)
Other versions
CN108352846B (zh
Inventor
陶耀宇
乔伊丝·广
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Texas Instruments Inc
Original Assignee
Texas Instruments 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 Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of CN108352846A publication Critical patent/CN108352846A/zh
Application granted granted Critical
Publication of CN108352846B publication Critical patent/CN108352846B/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/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1117Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1108Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • 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/1142Decoding using trapping sets
    • 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)
  • Detection And Correction Of Errors (AREA)

Abstract

在所描述的实例中,用于LDPC解码的后处理电路包含:校验节点处理器(7‑3),其用于处理经移位的LLR值,以及硬决策解码器电路(7‑10),其用于接收经处理的LLR信息并对所述经处理的LLR信息执行奇偶校验。后处理控制电路(7‑9)控制所述校验节点处理器(7‑3)中的LLR信息的更新。所述校验节点处理器(7‑3)、硬决策解码器电路(7‑10)及控制电路(7‑9)协作以在迭代周期之后识别具有未经满足奇偶校验的校验节点,识别与未经满足校验节点连接的邻域变量节点,识别连接到邻域变量节点的经满足校验节点,以及如果需要引入扰动来解决解码误差,那么修改从邻域变量节点到经满足校验节点的消息。邻域识别电路确定哪些变量节点与未通过奇偶校验的未经满足校验节点连接,且产生指示哪些变量节点连接到未经满足校验节点的信号{ND[Z‑1:0]}。

Description

用于低误差底限状况的LDPC后处理器架构及方法
本发明通常涉及硬件及软件添加到LDPC(低密度奇偶校验)解码器以实施后处理算法,且更特定来说涉及将噪声注入到解码器中以帮助其收敛到有效码字且从而降低误差底限。
背景技术
一些低密度奇偶校验(LDPC)码显示“误差底限”,所述误差底限为在低BER(位误差率)级别下BER与信道SNR(信噪比)曲线的斜率的降低。这意味着在给定的信噪比下的位误差率比预期的位误差率高。这对于无线回程客户来说并非所要的。术语“无线回程”是指蜂窝基站之间的通信链路。这是一种与以循环方式间隔的站点间传输通信业务相关的技术,也用于双向数据传输线路。更一般地说,在任何需要非常低位误差率的系统中,误差底限问题都是一个问题。
后处理是一种用于解决被称作为“捕获集误差”(其在误差底限区域中占主导地位)的解码误差类型的技术。捕获集误差导致解码器被捕获在关于表征解码器输出的质量的“成本函数”的局部最小值。这意味着解码器没有找到成本函数的全局最小值,且因此无法收敛到有效的码字。后处理通常通过将噪声注入到LDPC解码器中以脱离局部最小值(在此状况下,发现也为全局最优点的成本函数的全局最小点)并允许解码器收敛来解决捕获集误差。
在信息论中,低密度奇偶校验(LDPC)码为用于通过噪声传输信道传输消息的方法的线性纠错码。LDPC是使用稀疏二分图构造的。二分图为顶点被分成两个独立集合的图。在稀疏二分图中,两组之间存在相对较少的边或连接。LDPC码是容量接近码,因此存在实际构造,其允许将噪声阈值经设置得非常接近或甚至在规范二进制擦除信道(BEC)上任意接近于对称无记忆信道的理论最大值(香农(Shannon)限制)。二进制擦除信道为通信信道的共用模型。噪声阈值定义信道噪声的上限,达到所述上限可使信息丢失的概率尽可能小。使用迭代BP(置信传播)技术,LDPC码(也被称作为加拉格尔码)可经解码在时间上与其块长度成线性。为了形成码字,将K个输入数据位重复并分配到一组构成编码器。
“帧”等于码字。编码意味着获取数据位并计算相应的奇偶校验位。这些并置在一起形成码字。
构成编码器通常为累加器,且每一累加器用于生成奇偶校验符号。原始数据的单个副本与奇偶校验位(P)一起传输以组成代码符号。来自每一构成编码器的S位被丢弃。上述编码过程很简单。难题在于解码过程的实际实施方案。下面给出解码过程的简要说明。
“下一代”无线回程系统的前向纠错(FEC)要求通常要求BER(位误差率)低于10-12,且帧误差率低于10-10,网络吞吐率大于1千兆字节/秒,低功耗,以及硅实施方案中的低面积。LDPC码正在成为满足上述要求的非常好的候选者,且已经证明当用低复杂度迭代解码算法解码时提供非常接近香农限制的性能的能力。LDPC码由稀疏的m×n奇偶校验矩阵H定义,其中“n”表示码字中的位数,且“m”表示奇偶校验的数目。奇偶校验矩阵或H矩阵含有“1”与“0”。H矩阵的每一行表示奇偶校验约束。例如,H矩阵的一行总共具有n个条目,其中一些条目为“1”而其它条目为“0”。为定义此行的奇偶性约束,首先注意“1”条目的位置。这些位置中的码字中的位必须总和为偶校验。以这种方式,H矩阵的每一行定义涉及码字中的不同位集的不同奇偶校验约束。可使用“二分图”或“因子图”来说明LDPC码的H矩阵,其中每一位由变量处理节点(VN)表示且每一检查由校验节点(CN)表示。变量节点也被称作为“位节点”或简称为“位”,且这些术语可互换使用。当且仅当H(j,i)=1时,变量节点“i”与校验节点“j”之间存在“边缘”,其中H(j,i)=1意味着奇偶校验矩阵H的第j行及第i列上的元素等于1。因此,H矩阵中“1”的位置表示VN与CN之间的连接。
使用对因子图进行操作的BP(置信传播)算法来解码LDPC码。在BP(置信传播)解码中,在变量节点(VN)与校验节点(CN)之间交换表示可靠性的“软消息”以计算位元为1还是0的似然。“可靠性”指示给定的位为1或0的当前置信度。BP算法有两个常见的实施方案,包含精确的“和积算法”以及近似的“最小和算法”。最小和算法实施起来更简单,且经过适当的修改,提供出色的解码性能。
作为实例,假定二进制相移键控(BPSK)调制及加性高斯白噪声(AWGN)通信信道。表示数据位的二进制值0及1在通过信道传输之前分别映射到1及-1。最小和解码可使用因子图解释。在解码的第一步骤中,基于所接收的信道输出yi,利用随后所描述的先验对数似然比(LLR)来初始化每一变量节点xi。在初始化之后,变量节点沿着由因子图定义的边缘将先验LLR发送到校验节点。LLR基于每一校验节点的奇偶性约束重新计算,且然后返回到变量节点。每一变量节点然后基于作为来自信道的先验LLR与从校验节点接收到的LLR的总和计算出的“后验”LLR来更新其决策。变量节点与校验节点之间的一轮消息交换完成了一次解码迭代。为了开始下一次迭代,每一变量节点将更新的LLR传递到校验节点。
在变量节点与校验节点之间传递的LLR被称作为“变量到校验消息(L(qij))”和“校验到变量消息(L(rij))”,其中“i”为变量节点索引且“j”为校验节点索引。在表示因子图的连通性中,Col[i]是指“连接”到第“i”变量节点的所有校验节点的集合,且Row[j]是指“连接到”第“j”校验节点的所有变量节点的集合。术语“连接”是指彼此通信(例如,交换消息)的变量节点和校验节点。
基于上文所提及后验LLR,可任选地在每一迭代中进行“硬决策”。在每一迭代之后可检查硬决策,或可先运行一些迭代,且再向后检查一次。允许迭代解码运行,直到硬决策满足所有奇偶校验方程,或在达到迭代次数的上限时为止。
LDPC解码器遭受上问所提及误差底限问题的困扰。后处理方法即硬件经设计以改进误差底限。在过去的十年中,已发现LDPC的优异性能仅在中等位误差率(BER)下才被观察到,导致上文所提及“误差底限”。误差底限现象可表征为越过一定的中等BER水平时码的性能曲线的突然斜率下降。由于越来越多的系统(如数据存储装置及高速通信系统)要求极低的误差率,解决误差底限问题为编码理论家及从业者的一个关键问题。
解决误差底限问题一直是编码理论及实际解码器设计研究的重点。过去的实验表明,误差底限可能由各种实际的解码器实施方案引起。改进的算法实施方案及更好的数字量化可抑制这些影响。然而,误差底限基本上归因于与LDPC码相关联的非码字“捕获集”。捕获集是指码字中的一组位,当被错误地接收时,其导致置信传播(BP)解码算法被捕获在上文提及的“局部最小值”中。捕获可被认为是一种“特殊的组合结构”,涉及LDPC二分图中的循环,其在BP解码期间增强了不正确的位。
通过使用例如渐进边缘增长(PEG)、循环避免、代码掺杂及循环提升等方法来改进代码构造来降低误差底限已经做了许多工作。虽然这些方法是有效的,但最终的代码结构往往使解码器硬件设计复杂化。替代方式为通过例如缩放、偏移或试验与误差等方法改进BP解码算法,但这些方法大多基于启发式算法,且其效果有限。这些方法中的一些甚至需要与BP解码不兼容的额外步骤,导致更高的复杂度及更长的等待时间(解码器产生解码码字花费的时间)。理论上更有效的方法是以吸收集合的组合结构来修改解码算法,其中一个例子是双模式症状擦除解码算法,但当擦除解码运行到其自己的局部最小值时其有时会缩短。例如,参见Zhengya Zhang等人的“具有低误差底限的高效10GBASE-T以太网LDPC解码器设计(An Efficient 10GBASE-T Ethernet LDPC Decoder Design with Low ErrorFloors)”,IEEE固态电路杂志,第45卷,第4期,2010年4月,尤其图7显示了用于确定消息在校验节点处理之前是否应偏离的硬决策输出。也可参见Zhengya Zhang等人在IEEE“GLOBECOM”2008会议记录中发表的“通过后处理降低LDPC误差底限(Lowering LDPC ErrorFloors by Postprocessing)”。
上文所提及传统后处理硬件在解码过程中仅注入一次噪声(单次噪声注入)。此外,常规后处理硬件仅允许改变噪声的量级。在误差底限区域中,常规LDPC解码器不能成功解码某些所接收的码字。常规后处理有助于解码器对这些故障中的一些进行解码,但真正的目标是能够解码所有故障,且不幸的是,常规技术只能解决有限类型及数量的故障。这因此直接限制了实际可实现的误差底限改进量。
发明内容
在所描述的实例中,用于LDPC解码的后处理电路包含用于处理移位的LLR值的校验节点处理器(7-3),用于接收经处理的LLR信息并对经处理的LLR信息执行奇偶校验的硬决策解码器电路(7-10)。后处理控制电路(7-9)控制校验节点处理器中的LLR信息的更新。校验节点处理器、硬决策解码器及控制电路在迭代周期后协作识别具有未经满足奇偶校验的校验节点,识别与未经满足校验节点连接的邻域变量节点,识别连接到邻域变量节点的经满足校验节点,且如果需要引入扰动来解决由于捕获集引起的解码误差,那么修改从邻域变量节点到经满足校验节点的消息。邻域识别电路(21)确定哪些变量节点与未经满足校验节点连接,未通过奇偶校验,且产生指示哪些变量节点连接到未经满足校验节点的信号ND[Z-1:0]。
在一个实例中,用于LDPC(低密度奇偶校验)解码的后处理电路(7)包含:校验节点处理器电路(7-3),其用于接收及处理LLR(对数似然比)值;硬决策解码器电路(7-10),其用于接收可能已由校验节点处理器电路(7-2)修改的经处理的LLR信息且对所接收且经处理的LLR信息执行奇偶校验操作,以及后处理控制电路(7-9),其耦合到所述校验节点处理器电路(7-3),用于响应于由所述硬决策解码器(7-10)进行的奇偶校验检查决策来控制所述校验节点处理器电路(7-3)中的LLR信息的更新,且其中所述校验节点处理器电路(7-3)、硬决策解码器电路(7-10)及后处理控制电路(7-9)协作以识别在所述后处理电路(7)的迭代之后其奇偶校验未经满足的校验节点,识别与解码及后处理电路(7)的迭代之后未经满足的校验节点交换消息的邻域变量节点,识别与邻域变量节点交换消息的经满足校验节点,且如果需要引入有效地解决由于捕获集所致的解码误差且改进LDPC解码的位误差率性能的扰动,那么将从邻域变量节点到经满足校验节点的的消息修改为新值;后处理控制电路(7-9)允许在后处理期间任选地更新邻域变量节点集;且与硬决策解码器电路(7-10)及后处理控制电路(7-9)相关联的邻域识别电路(21)确定奇偶校验矩阵(1)的哪些变量节点与奇偶校验矩阵(1)的未满足校验节点连接,其中未经满足校验节点未通过奇偶校验,并产生指示哪些变量节点连接到未经满足校验节点的第一信号(总线13的子总线27上的ND[Z-1:0])。
在一个实例中,移位的LLR值由从LLR缓冲器(7-1)接收初始LLR值的第一移位器电路(7-2)生成,且其中校验节点处理器电路(7-3)的内容经输出到第二移位器电路(7-4),其中由第二移位器电路(7-4)移位的信息相对于初始LLR值重新对准,且然后输入到变量节点处理器电路(7-5),其中由变量节点处理器电路(7-5)处理的信息作为经更新的输入提供给所述硬决策解码器(7-10)并提供到LLR缓冲器(7-1)的经更新的LLR输入,且其中所述第一(7-2)及第二(7-4)移位器电路,校验节点处理器电路(7-3)以及变量节点处理器电路(7-4)由后处理控制器电路(7-9)控制,以便致使校验节点处理器电路(7-5)根据硬决策解码器(7-10)的奇偶校验检查决策修改其中的LLR信息。
在一个实例中,后处理控制电路(7-9)包含用于引入扰动的消息偏置电路(29),其中消息偏置电路(29)包含用于引入在特定迭代循环期间引入不同特性的多个扰动来解决由于LDPC码中的不同捕获集结构所致的更多类型的解码误差的电路(31-1、2、3)。
在一个实例中,后处理控制电路(7-9)包含用于引入扰动的消息偏置电路(29),其中所述消息偏置电路(29)包含用于在特定迭代周期期间控制扰动的持续时间的电路(31-1、2、3)。
在一个实例中,后处理控制电路(7-9)包含消息偏置电路(29),其包含:(a)移位电路(30),其用于使第一信号(ND[Z-1:0])移位由奇偶校验矩阵(1)确定的移位值(30-1)以产生指示连接到邻域变量节点的所有校验节点的第二信号(NCD[Z-1:0]);及(b)经满足校验节点选择电路(31),其用于接收第二信号(NCD[Z-1:0])且操作以选择在硬决策解码器电路(10)的先验迭代周期期间已经满足奇偶校验的校验节点。
在一个实例中,硬决策解码器(7-10)包含接收经处理的LLR信息的第三移位器电路(15-2),用于生成移位值的移位值生成器电路(15-1)以作为输入提供到第三移位器电路(15-2),分别用于执行对应于奇偶校验矩阵(1)的位的奇偶校验的按位“异或”电路(15-3),以及具有耦合到按位“异或”电路(15-3)的对应输出的输入的奇偶校验寄存器电路(15-4),奇偶校验寄存器电路(15-4)从按位“异或”电路(15-3)接收奇偶校验结果。
在一个实例中,按位“异或”电路(15-3)包含“异或”电路,每一“异或”电路具有分别耦合到第三移位器电路(15-2)的对应位的输出的第一输入及分别耦合到奇偶校验寄存器电路(15-4)的相应位的输出的第二输入,用于执行与奇偶校验矩阵(1)的对应位相关联的按位奇偶校验操作。
在一个实例中,硬决策解码器(7-10)包含耦合到奇偶校验寄存器电路(15-3)的输出(18)以用于对奇偶校验未通过进行计数的奇偶校验计数器电路(15-6),及耦合到奇偶校验计数器电路(15-6)的触发电路(15-7)用于在由奇偶校验计数器电路(15-6)指示的故障次数超过预定值的条件下禁用后处理。
在一个实例中,硬决策解码器(7-10)、按位“异或”电路(15-3)及第三移位器电路(15-2)协作以使由按位“异或”电路(15-3)输出的硬决策值与奇偶校验寄存器电路(15-4)的对应奇偶校验位对准。
在一个实例中,移位值生成器电路(23)生成移位值作为对第四移位器电路(21-2)的输入,以响应于移位值生成器电路(15-1)执行反向移位。在一个实例中,解码误差是归因于捕获集。
在一个实例中,用于执行LDPC(低密度奇偶校验)解码的方法包含:移位并处理LLR(对数似然比)值;接收可能已经由校验节点处理器电路(7-3)修改经处理的LLR信息且借助于硬决策解码器电路(7-10)对所接收及经处理的LLR信息执行奇偶校验操作;响应于由硬决策解码器电路(7-10)进行的奇偶校验决策来控制LLR信息的更新并识别在硬决策解码电路(7-10)及后处理电路(7)的迭代之后未满足奇偶校验的校验节点;邻域变量节点借助于硬决策解码器(7-10)与在后处理电路(7)的迭代后未满足的校验节点交换消息;产生指示哪些邻域变量节点连接到未经满足检验节点的第一信号(在总线13的子总线27上的ND[Z-1:0]});识别与感兴趣的变量节点交换消息的邻域经满足校验节点且将从变量节点到经满足校验节点的消息修改为新值,如果有必要引入有效地解决由于捕获集所致的解码误差且提高LDPC解码的位误差率性能(注意感兴趣的变量节点为与前面子句中所提到的变量节点交换消息的经满足校验节点,而不是所有变量节点);以及确定奇偶校验矩阵(1)的哪些变量节点与奇偶校验矩阵(1)的未经满足校验节点连接,其中未经满足校验节点未通过奇偶校验。
在一个实例中,所述方法包含存储确定哪些校验节点接收修改的消息的识别的邻域变量节点,以及响应于重新标记旗标信号(47-4)在不同的后处理迭代处选择性地更新邻域寄存器(47-3)以引入多种类型的扰动以改进LDPC解码的位误差率性能。
在一个实例中,所述方法包含将移位的LLR值从第一移位器电路(7-2)传送到校验节点处理器电路(7-3),借助于校验节点处理器(7-3)处理移位的LLR值,以及将经处理的LLR值传送到第二移位器电路(7-4)以相对于初始LLR值重新对准经处理的LLR值,将重新对准的信息作为更新的输入提供到硬决策解码器(7-10),以及到第一移位器电路(7-2),以根据硬决策解码器(7-10)的奇偶校验检查决策,使所述校验节点处理器电路(7-5)修改其中的LLR信息。
在一个实例中,所述方法包含将指示邻域变量节点的第一信号(ND[Z-1:0])移位由奇偶校验矩阵(1)确定的移位值(30-1)以产生指示与邻域变量节点连接的所有校验节点的第二信号[Z-1:0]),且然后从第二信号(NCD[Z-1:0])中选择在解码电路(7-10)及后处理电路(7)的先验迭代周期期间已满足奇偶校验的所有校验节点。
在一个实例中,所述方法包含根据移位值生成移位值并且移位第三移位器电路(15-2)中的经处理的LLR信息,通过将移位的位与被耦合到执行比较的按位“异或”电路(15-3)的输出的奇偶校验结果电路(15-4)中的对应位进行比较来执行奇偶校验矩阵(1)所规定的奇偶校验。
在一个实例中,所述方法包含按位“异或”电路(15-3)包含“异或”电路,每一“异或”电路具有分别耦合到第三移位器电路(15-2)的对应位的输出的第一输入,以及分别耦合到所述奇偶校验寄存器电路(15-4)的对应位的输出的第二输入,所述方法包含操作所述按位“异或”电路(15-3)以执行与奇偶校验矩阵(1)的对应位相关联的按位奇偶校验操作。
在一个实例中,所述方法包含操作硬决策解码器(7-10),按位“异或”电路(15-3)及第三移位器电路(15-2)使由变量节点处理器经由图3中的总线10输出的应决策值与奇偶校验寄存器电路(15-4)中的对应位(即,然后中间奇偶校验值)对准。在一个实例中,解码误差是归因于捕获集。
在用于执行LDPC(低密度奇偶校验)解码的系统的一个实例中,所述系统包含:用于移位并处理LLR(对数似然比)值的装置(7-2、3、4);用于接收可能已经由校验节点处理器电路(7-2)修改的经处理的LLR信息的装置(15-2)以及用于借助于硬决策解码器电路(7-10)对所接收及经处理的LLR信息执行奇偶校验操作的装置(15-3);硬决策译码器电路(7-10)中的用于响应于硬决策解码器(7-10)的奇偶校验决策来控制LLR信息的更新且在硬决策解码电路(7-10)及识别在后处理电路(7)迭代之后奇偶校验未经满足的校验节点的装置(15-1、3、4);用于识别与硬决策解码电路(7-10)及后处理电路(7)迭代之后未经满足的校验节点交换消息的邻域变量节点的装置(21);用于在总线13}的子总线27上产生第一信号{ND[Z-1:0]}的装置(25),其指示哪些邻域变量节点连接到未经满足校验节点;用于识别与邻域变量节点交换消息的经满足校验节点且如果有必要引入有效地解决由于捕获集所致的解码误差且改善LDPC解码的位误差率性能的扰动来将从领域变量节点到经满足校验节点的消息修改为新值的装置[29、7-3];以及用于确定奇偶校验矩阵[1]中的哪些变量节点与奇偶校验矩阵[1]的未经满足校验节点连接的装置[21、21-2、23],其中未经满足校验节点未通过奇偶校验。
附图说明
图1展示QC-LDPC码的奇偶校验矩阵(H矩阵)。
图2展示使用移位来找到“连接”的变量处理节点(VN)及校验处理节点(CN)的实例。
图3指示QC-LDPC解码器及相关联后处理硬件的顶层框图。
图4为图3中所展示的硬决策解码器块的框图。
图5为用于获得邻域识别ND的电路的框图。
图6展示位于图3的校验节点处理器中的消息偏置机构的框图。
图7:LDPC说明了没有后处理的解码器流水线计划表。
图8说明包含后处理的LDPC解码器流水线计划表。
图9为用于描述图3的块7-3中的校验节点处理器的结构及操作的框图。
图10为用于描述图3的块7-5中的变量节点处理器的结构及操作的框图。
图11为用于描述图3的后处理控制系统块7-9的操作的框图。
具体实施方式
实例性实施例解决了设计数据存储装置及需要极低误差率的高速通信系统中的关键问题的误差底限问题。此外,实例性实施例包含能够解决比常规技术更多类型的解码误差的后处理系统及方法,因此改进误差底限区域中的位误差率。此外,实例性实施例包含用于实施所描述的与现有高吞吐量解码器架构兼容的后处理技术的后处理系统及方法。此外,实例性实施例实现经改进的后处理,其能够针对基本上更高的位误差率(BER)而更好地改进用于LDPC解码的误差底限,然后通过常规的后处理可实现。
实例性实施例提供:解决已成为需要极低误差率的设计数据存储装置及高速通信系统中的关键问题的误差底限问题的更好方式;能够在低位误差区域中比常规技术更有效地解决解码误差的后处理系统及方法;可在低位误差率(BER)区域中比常规技术解决更多类型的解码误差的后处理系统及方法;通过在多次迭代中注入不同持续时间及/或量级的噪声来解决单个噪声注入单独地无法解决的由不同类型的捕获集结构所致的误差,可在低位误差率(BER)区域中比常规技术解决更多类型的解码误差的后处理系统和方法;可通过执行邻域重新标记(即,动态改变噪声注入的位置)以便影响LDPC码结构中的更大的一组噪声,在低位误差率(BER)区域中比常规技术解决更多类型的解码误差的后处理系统及方法;可通过提供仅在检测到捕获集误差时触发后处理的机制,在低位误差率(BER)区域中比常规技术解决更多的类型的解码误差,使得当解码器正在对不需要后处理的帧进行解码时不会发生任何等待时间损失的后处理系统及方法;及能够针对比通过常规后处理实现的基本上更高的位误差率(BER)能够更好地改进LDPC解码的误差底限的经改进后处理。
实例性实施例包含实施用于添加到高吞吐量LDPC解码器的新的后处理算法的硬件。新硬件后处理器实施方案的一个实施例被设计用于并行QC-LDPC(“准循环”LDPC)解码器中的误差底限减轻。后处理算法将可控持续时间的噪声(如果需要还可控制的量级)注入到解码器中,以帮助解码器输出收敛到有效的码字。后处理算法可应用于QC-LDPC解码器架构以及其它类型的解码器架构。在一个实施例中,后处理算法及硬件可操作以将误差底限降低近10倍。
如上文所指示,已知一些LDPC码在低BER水平下表现出误差底限(即,位误差率(BER)与信道信噪比(SNR)曲线的斜率的减小)。这意味着在误差底限区域中,信道SNR的大幅增加仅导致BER的小幅下降。在需要非常低位误差率的通信系统中这是不希望的。LDPC码可用其奇偶校验矩阵表示,也称作为H矩阵。H矩阵的每一列表示变量节点。H矩阵的每一行对应于校验节点。(变量处理节点VN为LDPC解码器内的一类型的处理引擎,且校验处理节点CN为LDPC解码器内的另一类型的处理引擎。)LDPC码的通常解码过程涉及在VN与CN之间传递的消息。所述消息表示正被解码的码字中的每一位为逻辑“0”或逻辑“1”的当前可信度。如果解码过程没有收敛到有效的码字(即,不满足在H矩阵中指定的所有奇偶校验的码字),那么通常解码过程被认为未通过。在实例性实施例中,可在此场景中执行噪声注入过程以帮助解码器收敛到有效码字。
上文提及的噪声注入过程涉及:(a)在迭代之后识别其奇偶校验未经满足的校验节点(此校验节点被称作为“OD”);(b)识别“连接”到校验节点OD的变量节点(由“ND”引用);(c)识别“连接”到变量节点ND的“经满意的”校验节点(由“SD”引用);及(d)如果需要,根据奇偶校验决策,将从变量节点ND到经满足校验节点SD的变量到校验消息改变/修改为新值“L”。如上文所提及,术语“连接”是指彼此交换消息的变量节点及校验节点。所描述的后处理硬件执行上文所提及后处理算法。
后处理算法经设计成减轻捕获集的不利影响,这可能被认为是H矩阵中具有不良效果的模式。后处理算法并调整BP(置信传播)解码中消息的“强度”以实现扰动效应。扰动通过减弱经不正确解码位对解码器状态的影响而破坏解码器处于不正确状态的趋势。扰动还可加强对被解码的码字的成功收敛的推动。
图1展示QC-LDPC(准循环低密度奇偶校验)码的LDPC奇偶校验矩阵或“H矩阵”1。如所说明,奇偶校验矩阵1由若干Z×Z子矩阵A、B、……H组成。子矩阵中的各种斜线分别通过子矩阵中的“1”。H矩阵1的每一行定义了必须由有效码字满足的奇偶校验。斜线表示H矩阵1中的“1”,且其余条目为“0”。在软决策译码算法中,H矩阵1中的每一列对应变量节点,而每一行对应于校验节点。H矩阵1中的“1”指示变量节点“连接到”校验节点(即,与其交换消息)。图1中的QC-LDPC H矩阵1由标记为A到H的子块或子矩阵组成。存在“BC”块列及“BR”块行。每一子矩阵A到H为循环矩阵,这对硬件实施方案很重要。(循环矩阵为一个矩阵,其中每一行相对于前一行向右旋转1个元素。)
循环矩阵可由“1”在第一行中的位置完全表征,这也称为“移位值”。移位值提供查找哪个校验节点“连接”到给定的变量节点的便利方式。每一H矩阵及每一子矩阵由“0”及“1”的行和列组成。图1中的斜线可被认为是经描绘穿过在各种子矩阵中出现的“1”。因此,斜线指示H矩阵1中“1”的位置。H矩阵中的“1”指示变量节点及对应的校验节点需要来回发送消息(即,变量节点及校验节点“连接”)。H矩阵1的每一列代表变量节点。作为实例,最左边的列对应于第0或第一列CN0,且左边缘的第二列对应于第二列CN1,等等。
图2说明单个Z×Z子矩阵5,其可为图1的奇偶校验矩阵1中的子矩阵A、B、…H中的任何者。在图2中,表示子矩阵5的变量节点的列的顶部沿着其水平顶部边缘。例如,斜线5-1的上端在表示列的顶部的点5-3(即,变量节点VN[14])与子矩阵5的水平顶部边缘相交。沿着子矩阵5的上边缘识别两个其它点,以分别表示第一变量节点列或第一变量节点VN[0]与第十六变量节点列VN[16]的顶部边缘。(也说明另一斜线5-2。)水平虚线5-5与行或校验节点CN[2]的左端相交。水平线5-5与识别为VN[16]的点正下方的点5-4处的斜线5-1相交。
图2还展示子矩阵5如何使用“移位”来检测“连接的”变量节点VN及校验节点CN。在图2的例子中,移位值为14。如果期望在索引位置16(从0开始)找到与变量节点“连接”的校验节点,那么位索引可在索引16处用“1”初始化,且在别处用“0”初始化,那么此位矢量可向左移位移位值14。(例如,如果所有变量处理节点按顺序排列,那么最左侧的变量节点VN具有索引0,且第17个变量节点VN具有指数16)。这导致在索引2处具有“1”的位矢量,这意味着校验节点2“连接”到变量节点16,即,连接到变量节点VN[16]。这种描述将在后面描述的邻域识别方法中多次使用。移位值为特定子矩阵的左边缘与所述子矩阵的第一行中的第一个交点或“1”之间的距离。
在图2中,表示子矩阵5的校验节点的行的左端沿着其垂直左边缘。最靠近子矩阵5的顶部边缘的图2中的斜线5-1的点5-3指示变量节点14,即VN[14],“连接”到校验节点0,即VN[0]。斜线5-1的点5-4“连接”到水平虚线5-5,且这意味着变量节点16“连接”到校验节点2,即校验节点CN[2]。因此,斜线5-1指示哪个变量节点VN“连接”到哪个校验节点CN。通常,沿着子矩阵5的顶部边缘的变量节点VN[0、1、…]中的每一者含有变量节点需要传送到“连接”的校验节点的一些数据。消息可以从变量节点传递到与其“连接”的校验节点,通过取左边的水平消息阵列且然后循环地“旋转”此阵列。在此“旋转”之后,消息阵列可直接馈送到校验节点阵列,且每一消息将会到达正确的校验节点。此“旋转”起作用的原因在于变量节点VN[14]“连接”到校验节点CN0,且变量节点VN[15]“连接”到校验节点CN1等等,且通过使所有变量节点向左“移位”14个位置或索引值,所有变量节点消息VN[0,1…]与其“连接”校验节点CN[0,1…]“对准”。
图3展示根据实例性实施例的包含常规QC-LDPC解码器电路7A且还包含后处理电路7B的QC-LDPC解码器7的框图。常规LDPC解码器电路7A包含解码器控制电路7-8、LLR(对数似然比)缓冲器7-1、桶形移位器7-2、桶形移位器7-4、变量节点处理器7-5(其细节在随后描述的图10中展示)及输出缓冲器7-6。后处理器电路7B包含校验节点处理器7-3(其细节在图9中展示),后处理控制电路7-9(其细节在图5、6及11中展示)以及硬决策解码器10(其详情在随后描述的图4中展示)。
解码器控制电路7-8的输出通过总线12耦合到桶形移位器7-2、校验节点处理器7-3、桶形移位器7-4及变量节点处理器7-5的输入。后处理控制电路7-9产生通过总线13耦合到校验节点处理器7-3的输入的两个输出矢量OD[Z-1:0]及ND[Z-1:0]。解码器控制电路7-8通过总线16耦合到后处理控制电路7-9。
LLR缓冲器7-1的第一输入端经由总线8接收输入LLR值的下一帧,且LLR缓冲器7-1的第二输入端从变量节点处理器输出总线10接收经更新LLR值的当前帧。桶形移位器7-2的输出通过总线6耦合到校验节点处理器7-3的输入。LLR缓冲器7-1的另一输出通过总线11耦合到变量节点处理器7-5的其它输入。(在解码期间不同时间处,校验节点CN及变量节点VN需要LLR缓冲器内容。)校验节点处理器7-3的输出通过总线20耦合到桶形移位器7-4的输入。桶形移位器7-4的输出通过总线22耦合到变量节点处理器7-5的其它输入。变量节点处理器7-5的输出总线10被耦合到硬决策解码器7-10的输入、输出缓冲器7-6的输入及LLR缓冲器7-1的第二输入。校验节点CN的输入及输出的值通常为不同的。校验节点CN将获取输入并产生输出作为输入的函数。输出缓冲器7-6在总线9上产生输出位。硬决策译码器7-10在总线18上生成输出,所述总线耦合到后处理控制电路7-9的输入。后处理控制电路7-9通过总线16连接到主解码器控制电路7-8。例如,主解码器电路7-8将信号发送到后处理控制电路7-9以指示解码器操作的当前阶段(例如当前迭代,正在处理哪些LLR等)。
图3中的后处理器7-9需要硬决策解码器7-10来接收由LLR缓冲器7-1接收的经更新的LLR(对数似然比)的符号位(+或-),并执行由图1的H矩阵1定义的奇偶校验。LLR缓冲器7-1中的值指示所接收的消息中的特定位表示逻辑“0”或“1”水平的可信度水平。奇偶校验的结果识别哪些校验节点OD并未“经满足”(即,相关联的奇偶校验未经满足),且被传递到后处理控制电路7-9。后处理控制电路7-9找到或检测“连接”到OD节点的变量节点ND,且将变量节点ND的地址传递到图6的消息偏置电路29。检验节点处理器7-3接收由图6的随后描述的消息偏置电路29生成的噪声注入或消息偏置注入。其可被包含在后处理控制电路7-9内。由后处理控制电路7-9提供的经满足校验节点SD的地址由图6的消息偏置电路29使用以视需要修改从ND节点到SD节点的变量到校验消息。硬决策解码器7-10计算经满足校验节点(OD)与经满足校验节点(SD)两者。后处理电路7B的后处理控制电路7-9还包含常规控制电路,其包含控制块15-3中的按位XOR(“异或”)电路的“异或”操作的性能、为奇偶校验寄存器15-4计时等所需的电路。
图3中的LLR缓冲器7-1指示在所接收的消息中的每一位为“1”或“0”的“可信度”或“置信度”。图1中的奇偶校验H矩阵1的列数指示在任何特定变量节点(即,列)中的纠错码中的位数。每一子矩阵包含每一变量节点列的一个LLR缓冲器条目。每一子矩阵的列数为Z。H矩阵1中的整个纠错码中的位数等于沿着H的水平维度的子矩阵的数量的Z倍。桶形移位器7-2实施上文参考图2所描述的移位。在操作中,图3中的移位器7-2接收对应于子矩阵的每一变量节点列的LLR缓冲器消息且适当地移位消息以将其发送到“连接”的校验节点。桶形移位器7-2的输出耦合执行更新LLR值所需要的处理的部分的各种“连接”的校验节点的适当到LLR值。在图3中的校验节点处理器7-3之后,完成其计算,其将结果发送回“连接”的变量节点。这是通过由桶形移位器7-4执行的“反向移位”过程来完成的,以将经处理LLR消息位相对于其初始位置重新对准。
沿着图2中的子矩阵5的左边缘的每一校验节点具有将被移位以与“连接”到所述校验节点的变量节点对准的值,因此实际上,信息从图2中的子矩阵5的左边缘被发送到其顶部边缘。图3中的变量节点处理器7-5接收传入数据,然后通过总线10更新LLR缓冲器7-1中的值。此迭代过程通常重复大约10到15次。在10到15次迭代结束时,LLR值的符号(+或-)指示经解码的消息位是“0”还是“1”,且所述值存储在输出缓冲器7-6中。
在通过前述循环的每次迭代结束时,硬决策解码器7-10查看LLR的符号位,确定是否此代码中的所有奇偶校验经满足。图3的硬决策解码器7-10的细节在图4中得以展示。
参考图4,硬决策解码器7-10包含移位值生成器15-1,其生成移位值且将其作为输入提供到具有位S0,0、S0,2、…、SBR-1、W-1的移位电路15-2,其中BR为每一奇偶校验矩阵的列数,且W指示子矩阵的每一行中1的数目。子矩阵的符号位经由总线10分别作为输入应用于移位电路位S0,0、S0,2、…、SBR-1、W-1。移位电路15-2的输出由总线28应用于按位“异或”(XOR)电路15-3的第一组输入。“异或”电路15-3的第二组输入由总线26的一些导线耦合到奇偶校验寄存器15-4的输出。按位“异或”电路15-3的输出由总线26的一些导线应用于奇偶校验寄存器电路15-4的输入。控制电路15-5生成由总线24A应用于按位“异或”电路15-3的另一输入的控制信号,且还生成经由总线24B应用于奇偶校验寄存器电路15-4的另一输入的信号。奇偶校验寄存器电路15-4的输出在总线18上产生并耦合到校验计数器电路15-6的输入。总线18上的奇偶校验结果包含奇偶校验结果矢量P{BR*[Z-1:0]}。利用校验计数器电路17在总线17上产生的“未通过计数”输出来触发后处理触发电路15-7,所述电路可包含比较器,所述比较器用于对未通过计数17与用户可配置的阈值进行比较的比较器及将比较结果存储在其中的寄存器。
在LDPC解码器7的操作迭代开始时,图4中的奇偶校验寄存器15-4用“0”初始化。图3的并行QC-LDPC解码器7对QC-LDPC码的一个块列(对应于Z个变量节点)产生LLR更新一次。硬决策解码器7-1接收Z个对数似然比(LLR)的符号位,并将其提供到BR*W桶形移位器15-2,其中Z为子矩阵大小,BR为LDPC码中的块行数,且W为每一子矩阵的权重。权重W是特定子矩阵的一行内的变量节点到校验节点“连接”或“相交”的数目。桶形移位器15-2确保由“异或”电路15-3输出的值与其对应的奇偶校验对准。由按位“异或”电路15-3输出的硬决策值是通过将移位器15-2中的移位的LLR符号位与奇偶校验寄存器15-4的对应位进行“异或”而生成的,奇偶校验寄存器15-4随后被更新或替换为由按位“异或”电路15-3输出的值。在所有块列被处理之后,奇偶校验寄存器15-4含有总线18上的奇偶校验检查的最终结果。“未经满足”校验节点OD对应于奇偶校验结果中的“1”,所以奇偶校验结果中的“0”对应于“经满足”校验节点。总线18上的奇偶校验结果P{BR*[Z-1:0]}作为输入提供到后处理控制电路7-9。
在操作中,硬决策解码器7-10查看图1的奇偶校验H矩阵1的每一行以确保满足H矩阵1的每一行,即确保H矩阵1的每一行的奇偶性应为“0”。所有的奇偶校验都是通过前面的按位“异或”操作来执行的。具体来说,在图4的块15-3中的按位“异或”操作中,桶形移位器15-2及奇偶校验寄存器15-4的对应位经“异或”在一起以获得新的结果,以将其放入奇偶校验寄存器15-4。对于图1的奇偶校验H矩阵1的一行,图4的硬决策解码器15-5查看对应于H矩阵1中的斜线与所述行的交点的LLR(对数似然比)值的+或-符号位。H矩阵的物理结构被存储为移位值的表格。在图3中,移位值在解码器控制块7-8中。在图4中,其被存储在移位值生成器15-1中。在图2的实例中,当检查第一行的奇偶性时,将经“异或”的位中的一个是由变量节点VN[14]输出的值的符号(+或-),因为它“连接”到如由斜线所示的第一校验节点。另一经“异或”的值对应于哪个变量节点列“连接”到H矩阵1中下一个(即,相邻)子矩阵中的第一个校验节点。
任何子矩阵可包含分别具有不同斜线的特定行的一个、两个或更多个交点,在其处交点对应于所述子矩阵的所述行中的“1”。例如,方框15-2中的S0,0可指代第一此类交叉点,且S0,1可指代在同一行中的第二此类交叉点。实际上,由此类“交叉点”定义的某些变量节点的输出的符号位经“异或”在一起以对所述行执行奇偶校验,且权重W为特定子矩阵的一个列内的此些交叉点的数目。
关于奇偶校验码的图4的块15-1中的移位值生成是通过图1的H矩阵1的内容确定。例如,如果奇偶校验H矩阵1的特定行具有14及50的移位值,那么子矩阵B可能具有不同的移位值,例如75及150。移位值为特定子矩阵的左边缘与所述子矩阵的第0行中的第一个交点或“1”之间的距离。
硬决策解码器7-1借助于检验计数器15-6来支持各种触发准则,检验计数器15-6对未通过的奇偶校验的次数进行计数,且如果未通过的校验的次数低于特定数目个迭代的某些阈值,那么仅触发后处理操作。阈值及迭代次数两者都可编程。具体来说,奇偶校验计数器15-6对由奇偶校验寄存器15-4指示的未通过的奇偶校验的数目进行计数,以确定在本次迭代期间尚未经满足的奇偶校验的数目。如果未经满足奇偶校验的数目超过预定的阈值,那么禁用后处理操作。这是因为后处理仅在发生低数目个(例如,10个或更少)的未通过的奇偶校验的情况下才有效。奇偶校验寄存器15-4中的“1”意味着对应的奇偶校验未通过,且奇偶校验计数器15-6计数奇偶校验寄存器15-4中的“1”的数目。
图5展示优选地位于图3的后处理控制电路7-9中的邻域识别电路21的框图。邻域识别电路21包含寄存器15-4,所述寄存器包含经由总线24B从硬决策解码器7-10接收到的奇偶校验结果P{BR*[Z-1:0]}。奇偶校验结果经由总线18应用于移位器电路21-2的输入。移位器电路21-2包含硬件移位器S0,0、S0,2、…、SBR-1、W-1,其中BR为每一奇偶校验H矩阵1中的块列的数量,且权重W为在特定子矩阵的行内的交叉点的数量。移位器S0,0、S0,2、…、SBR-1、W-1与硬决策解码器7-10中的那些相同或相似。讲矢量P{BR*[Z-1:0]}应用于由总共BR*W个移位器组成的一组桶形移位器21-2。矢量P{BR*[Z-1:0]}中的每一Z位组同时应用于W移位器。例如,通过总线18A将矢量P[Z-1:0]作为输入应用于移位器S0,0、S0,1、…S0、W-1的。移位器电路21-2的输出作为宽度为Z个位的BR*W矢量应用于按位“或”电路25的输入。将“或”电路25的输出ND[Z-1:0]应用于总线27。移位值针对每一块列不同(即,移位值针对每一子矩阵不同)。移位值生成器23的输入信号指示哪些块列正在经处理使得可计算正确的移位值。(此对于所描述的实施例中的所有移位值生成器所需要的。)偏移值生成器23的输出分别连接到移位器S0,0、S0,2、…、SBR-1、W-1。图5中的移位值生成器23使由图4中的移位值生成器15-1执行的移位反向。
在操作中,图5中的邻域识别电路21确定哪些变量节点ND“连接”到未经满足校验节点OD(即,与其交换消息)。与未经满足校验节点交换消息的变量节点在本文中有时被称为“邻域变量节点”。邻域识别电路21从硬决策解码器7-10接收奇偶校验结果矢量P{BR*[Z-1:0]}。在奇偶校验结果矢量P{BR*[Z-1:0]}中存在的“1”表示校验节点OD不满足哪个奇偶校验及对应的校验节点。然后,为了确定哪些变量节点“连接”到未经满足校验节点OD,根据由图1中的奇偶校验H矩阵1确定的上文所述移位值使奇偶校验结果矢量P{BR*[Z-1:0]移位。在特定桶形移位器的输出中,“1”表示连接到未经满足校验节点OD的变量节点。在QC-LDPC码中,变量节点VN可“连接”到多个校验节点,因此所有移位器的输出经“或”在一起。这意味着如果变量节点(列)“连接”到任何未经满足校验节点OD,那么所述变量节点列将被标记为“1”。
图5中所指示的输出矢量ND[Z-1:0]也出现在图3中的后处理控制电路7-9的输出。邻域识别电路21的目的是找到“连接”到未经满足奇偶校验的变量节点。根据图4的奇偶校验结果矢量P{BR*[Z-1:0],邻域识别电路21再次使用上文所描述移位方法来识别哪些变量节点“连接”到未通过的校验节点。图5的块21-1中的奇偶校验结果矢量P{BR*[Z-1:0]}由“0”及“1”组成。“1”意味着奇偶校验未通过,且奇偶校验矢量P{BR*[Z-1:0]}结果矢量的“1”为感兴趣的位。块21-1中的整个奇偶校验结果矢量根据图1中的奇偶校验H矩阵1中定义的任何内容被适当地移位。在移位操作结束时,已生成矢量,所述矢量识别哪些变量节点“连接”到已使奇偶校验未通过的校验节点。然后,由于每一变量节点连接到多个校验节点,因此移位器S0,0、S0,2、…、SBR-1、W-1的所有输出通过按位或门25逻辑“或”在一起。如果连接到变量节点的任何校验节点未通过奇偶校验,那么输出矢量ND[Z-1:0]将指示未通过奇偶校验。(图5中的移位值生成器23生成与图4中所示展示的值不同的值,但基本电路结构相同。)
图6展示优选地位于图3的后处理控制电路7-9中的消息偏置电路29的框图。消息偏置电路29包含桶形移位器30及消息偏置电路31。桶形移位器电路30经由总线13从图3的后处理控制电路7-9接收信号ND[Z-1:0],且还经由总线30-1从图3的后处理控制电路7-9内的控制逻辑或图3的解码器控制电路7-8接收移位值。桶形移位器30在总线30-2上产生信号NCD[Z-1:0]。框31中的电路执行信号NCD中的第i个条目NCD[i]的处理。此电路被重复Z次以处理整个信号NCD[Z-1:0]。消息偏置电路29包含“与”电路31-1,所述与电路经由总线31-3接收信号pp_en、经由总线30-2从桶形移位器30接收NCD[i],且经由总线31-4从图4中的奇偶校验寄存器输出总线18接收P[i]的逻辑补码~P[i]。“与”功能的输出为1位。块31中的所有内容都被复制来处理NCD中的所有位。将“与”电路31-1的输出应用于多路复用器电路31-2的选择输入。多路复用器电路31-2的“0”输入接收输入信号LLR[i],其等于从“连接”的变量节点发送到校验节点的消息的量级。多路复用器电路31-2在其“1”输入接收表示偏置消息的另一个数字输入信号L。多路复用器电路31-2的输出经由并行总线32发送到图3的校验节点处理电路7-3。
消息偏置电路29可以被认为位于图3中的校验节点处理器7-3中。首先,为了找到与连接到未经满足校验节点CN的变量节点ND“连接”的校验节点,借助于桶形移位器30通过总线30-1上的值指定适当的移位量再次移位传入矢量ND[Z-1:0]。总线30-2上移位器输出端NCD[Z-1:0]中的“1”包含“连接”到变量节点ND的所有校验节点。在这些“连接”的校验节点中,有必要仅选择在前一次迭代期间已经满足奇偶校验的那些校验节点。此信息P{BR*[Z-1:0]}可从硬决策解码器7-10的奇偶校验寄存器输出总线18获得,或替代地,经由总线13从后处理控制电路7-9获得。针对“连接”到变量节点ND且还满足前一次迭代中的奇偶校验的每一校验节点,传入的变量到校验消息LLR[i]的量级被较弱的消息L替代,其中L为可编程的值。(此输出消息的使用方式与常规校验节点处理中的相同。)
噪声注入或消息偏置的持续时间可经由通过总线31-3应用于图6中的“与”门31-1的一个输入的pp_en信号来启用或禁用消息偏置电路29来控制。此外,可借助于pp_en控制噪声注入或消息偏置的突发的数量,因此可引入具有不同特性的扰动/噪声的多个“发射”以解决更多类型的解码由于LDPC码中的不同结构(例如捕获集结构)所导致的更多类型的解码误差。
此消息偏置包含注入上文所提及噪声或扰动以打破所捕获误差底限,以便改进LDPC解码器7(图3)操作收敛到有效码字的机会。消息偏置的目的是将噪声或“偏置消息”注入到满足上文所描述优先级校验程序的特定校验节点集合中,且“连接”到变量节点,所述变量节点“连接”到由图5的邻域识别电路21识别的未经满足校验节点。(在图5中,作为图3中的总线13的部分的总线27上的输出ND[Z-1:0]包含“连接”到未经满足校验节点的变量节点ND)。确定哪些校验节点“连接”到那些变量节点ND,且其对应于桶形移位器30的输出NCD[Z-1:0]。在那些校验节点中,感兴趣的校验节点NCD[Z-1:0]为前面的迭代中已满足奇偶校验的那些。
图6中的“与”门31-1的输出指示如P[i]的逻辑补码~P[i]所指示,在满足奇偶校验的桶形移位器输出矢量NCD[Z-1:0]中感兴趣的多个校验节点,其中P[i]为来自后处理控制电路7-9的输出信号P[Z-1:0]的第i位。P[i]指示是否满足第i个奇偶校验(如果满足奇偶校验,那么P[i]=0)。图6中的总线31-3上的启用信号pp_en控制后处理的持续时间T。如果“与”门31-1的全部三个输入均为“真”,那么对应于索引“I”的当前校验节点的噪声注入被启用。然后,借助于图6中的多路复用器31-2将偏置消息输入到图3中的校验节点处理器7-3中的所述校验节点。如果选择信号(“与”门31-1的输出)为0,那么原始消息|LLR[i]|传递到多路复用器输入。没有发生任何消息偏置。如果上文所提及选择信号为1,那么具有较小量级L的弱化消息被传递到输入。数字信号“LLR[i]”及L为并行信号,每一信号由多个位表示。L值越大意味着可信度越强。L只会改变指示可信度的消息的量级。可信度消息的符号不变,且其代数符号指示码字中的某个位是否被认为为0或1。因此,L的减小值指示特定的码字位为0或1的较低可信度。然后执行下一迭代,其中偏置值可或不可注入到消息中以供下一个校验节点处理。
图7说明根据实例性实施例的没有上文所描述后处理的LDPC解码器流水线计划表25。计划表中的每一块表示解码过程中的阶段。在图7的组35-1中的术语“反向对准”是指由图3中的桶形移位器7-2执行的反向对准过程,借此来自变量节点的数据与适当的“连接”的校验节点对准。然后,将对准的数据发送到适当的“连接”的校验节点。图7的组35-2中的术语“对准”是指由图3中的桶形移位器7-4执行的对准过程。其中从图7的最左块开始,来自图3中的校验节点处理器7-3的消息由桶形移位器7-4移位并发送到校验节点。在标记为CN1、CN2、…、CNi的阶段中,校验节点计算由校验节点处理器7-3执行。在“对准”及移位操作通过图3中的桶形移位器7-4执行之后,消息被发送回适当的变量节点。在阶段VN1…VNi中,计算由图3中的变量节点处理器7-4执行。当前解码迭代的结束发生在图7的组35-4中左块的VNi计算结束时。同样的过程通常会重复几次。
图8展示根据实例性实施例的后处理如何适合图7中指示的“基线”时间表。图8中的部分36-1及36-2与图7相同。第一批消息的变量节点处理计算第36-2节中的值VN1。在第一批变量节点处理完成之后,硬决策解码器7-10可开始对这些消息进行操作以更新奇偶校验寄存器15-4。这产生由HD1指示的结果。如VN2…VNi所指示,程序被连续地重复,直到所有变量节点处理完成且奇偶校验寄存器全部被更新,如块36-6中的HDi所指示。然后执行邻域识别(如上文参照图5所述)。在块36-6中的HDi之后,已确定了未经满足奇偶校验,如由块36-7中的“OD准备好”所指示,其是指是未经满足奇偶校验。此程序分批进行,且在块36-7之后生成结果CalcND1,2…i。在ND的第一批计算完成后,下一阶段可开始确定哪些为所关注的经满足校验节点SD。
LDPC解码器7的基本部分7A在每个时钟周期对一组变量节点进行操作。取决于期望在硅芯片上包括多少硬件,所描述的架构可以被缩放以处理多个块列或一组变量节点。更确切地说,块列包含Z个变量节点,其中Z为子矩阵的大小。在后处理硬决策解码器7-10(图3及4)接收由总线10上的变量节点处理器7-4生成的用于当前变量节点组的基本变量节点处理结果,并更新在总线18上产生的奇偶校验结果(在图8中展示为HDx,其中x=1,2…i)。在“i”个迭代时钟周期(其中i等于H矩阵中的变量节点组的数量)结束时,奇偶校验结果是有效的且被发送到图5的邻域识别模块21,如图8的块36-7中的“OD准备好”所指示。邻域识别模块21还计算每个时钟周期的一组变量节点中的“邻近”VN(变量节点)(在图8的组36-7中展示为NDx,其中x=1,2…i)。在NDx可用后的一个周期内计算给定变量节点组的SDx。此信息用于在常规校验节点处理CN1,2,…i中偏置消息。
为确定哪些消息将被偏置为多步骤过程。首先确定哪些检查不满意,且在OD准备好块36-7中指示。然后确定哪些变量节点“连接”到那些未经满足的检查以产生ND1。下一步确定哪些校验节点“连接”到具有经满足产生SD1的奇偶校验的ND。结果指示哪些消息经偏置。在适当的消息经偏置之后,执行校验节点处理。在区段36-3中指示的邻域识别可重复多次迭代,且上述情形在识别应使消息偏置的一组校验节点之后以流水线方式完成。然后开始信号处理CN1,且同时识别下一组偏置目标SD2,并随后执行信号处理CN2,依此类推,直到所有信号处理36-4结束。然后执行变量节点处理。
图9为说明图3的校验节点处理器7-3的细节的框图,其中校验节点缩写为CN,校验节点处理缩写为CNP,且变量节点缩写为VN。在图9中,校验节点处理器7-3包含减法模块40-1,其经由图6中的总线32接收用于校验节点处理的消息,且还从“先验迭代缓冲器”40-8经由总线40-11接收消息。所有变量节点处理完成后,将“当前迭代缓冲器”的内容在迭代结束时拷贝到“前一个迭代缓冲器”中。经由“符号量级及饱和度的2的补码”模块40-2将来自减法模块40-1的结果从2的补码表示转换为符号量级表示。将“符号量级及饱和度的2的补码”模块40-2的输出应用于控制器模块40-3的一个输入,控制器模块40-3经由总线12从图3的解码器控制电路7-8接收当前发送消息到校验节点或接收来自校验节点的消息的变量节点的地址。控制器40-3还接收例如具有在当前迭代中发送到此校验节点的最小及第二最小量级,发送最小量级消息的变量节点的地址,以及从“当前迭代缓冲器”40-9经由总线40-12到达此校验节点的所有传入消息的符号的消息的信息。控制器40-3基于来自总线32的当前传入消息计算关于最小值、第二最小值等的更新信息,且经由总线40-13将缓冲器更新信息发送到当前迭代缓冲器40-9。例如,如果当前传入消息具有小于存储在当前迭代缓冲器40-9中的最小值的量级,那么当前传入消息的量级及发送此消息的变量节点的地址将替代存储在当前迭代缓冲器40-9中先前值。
当前迭代缓冲器40-9包含比较器及缩放模块40-10。当前迭代缓冲器40-9还包含一组寄存器,其存储发送到此校验节点的消息的最小(min1)及第二最小(min2)量级,发送最小量级消息的变量节点的地址(pos1),所有传入消息(totsgn)的符号的XOR(“异或”),以及所有传入消息(sgnarray)的符号。当前迭代缓冲器40-9中的寄存器40-21的输出经由总线40-15将寄存器40-21的全部内容的副本发送到先验迭代缓冲器40-8。控制器40-3的输出经由2的补码模块40-4的符号量级从符号量级表示转换回2的补码,补码模块40-4还经由总线40-14从当前迭代缓冲器40-9接收含在寄存器40-21中的所有信息。这对计算将从此校验节点发送到其“连接”的变量节点的传出消息是必需的。类似地,含在先验迭代缓冲器40-8中的信息被发送到2的补码模块42的符号量级,以从符号量级形式转换为2的补码。从符号量级到2的补码模块40-4及42的2的补码输出值被应用于减法模块40-5的输入所得的差形成消息从校验节点发送到“连接”的变量节点。
在经过消息偏置(如果需要)之后经由总线32从图6的消息偏置电路29接收来自一或多个变量节点的LLR。首先,LLR必须被从前一次迭代的消息中减去,所述消息从主题校验节点发送到发起总线32上的当前LLR的变量节点。块40-1执行此减法。如块40-2所指示,来自块40-1结果的结果由2的补码生成器接收及操作,且从2的补码格式转换为符号量级格式。量级表示为具有固定位数的固定点数。因此,如果期望的量级超过可由此固定位数表示的最大值,那么量级相对于此最大值“饱和”。
图9中的控制器40-3从图3的解码器控制电路7-8接收当前发送消息到当前校验节点或从校验节点接收消息的变量节点的地址。控制器40-3在局部“当前迭代”缓冲器40-9中与比较器及缩放电路40-10一起工作以在当前迭代中由主题校验节点接收的所有消息中找到具有最小量级的两个消息。这些消息在多个时钟周期内被接收,因此每次接收到新的消息时,借助于比较器40-10将其与本地缓冲器40-9中的当前最小量级消息进行比较。如果新消息的量级分别小于min1或min2,那么本地缓冲器40-9中的min1及/或min2被更新。
本地“当前迭代”缓冲器40-9还存储发起具有最小量级的消息的变量节点的位置或地址(pos1),所有消息的符号以及所有消息的组合符号(即,将所有消息的符号倍增,这是正确执行算法所需要的,因为从校验节点发送回特定变量节点的消息必须忽略从所述变量节点发送的信息(量级及符号)。)任选比例因子可应用于所述量级。在16个消息(在此实例中)全部被处理之后,本地当前迭代缓冲器40-9含有具有最小量级的两个消息。过程然后进行到与减法模块40-5的输出相关联的输出阶段,以将结果发送回引起消息的变量节点。在输出阶段,控制器40-3使用当前迭代缓冲器40-9中的信息并通过将存储在当前迭代缓冲器中的符号量级信息转换回2的补码格式来将消息转换回适合于特定变量节点的格式。由此,它减去了在先验迭代中(从先验迭代缓冲器40-8)发送到此变量节点的前一个消息。所得消息借助于图3中的桶形移位器7-4被发送到变量节点。在到所有变量节点的消息经计算并发出之后,将当前迭代缓冲区内容拷贝到先验迭代缓冲区40-8中以用于下一迭代。
因此,在单个解码迭代中,变量节点将消息发送到“连接”的校验节点,且校验节点经由几次迭代(即,几个时钟周期)从多个“连接”的变量节点收集消息。校验节点计算消息并将其发送回与其“连接”的变量节点,且变量节点基于从校验节点接收到的消息更新其LLR值。解码迭代重复多次。例如,在每次迭代中,如果校验节点从变量节点收集16条消息,那么上述情形会在多个时钟周期内发生。
图10为图3的块7-5中的变量节点处理器的框图。变量节点处理器7-5包含加法器43-1,所述加法器经由桶形移位器7-4的输出总线接收来自一或多个校验节点的消息,也如在图3中大体指示。加法器43-1还经由图3中的总线11从LLR缓冲器7-1接收当前值。加法器43-1的输出作为输入提供到符号位电路43-3及饱和模块43-2。符号位43-3的输出耦合到图4中硬决策解码器7-10的桶形移位器15-2的输入。饱和度模块43-2的输出由总线10耦合以将当前时间帧的经更新的LLR信息发射到图3中的LLR缓冲器7-1的输入。变量节点处理简单地将从所有“连接”的校验节点接收到的消息相加,然后将所述和加到存储在图3的LLR缓冲器7-1中的当前值。结果为经更新的LLR并被写回(如图3中箭头14所指示)到LLR缓冲器7-1。经更新的LLR值的符号位用于硬决策解码器7-10中。
图11为图3的后处理控制系统7-9执行的操作的框图。后处理控制系统7-9包含更新控制模块41-1,其经由总线47-4接收“重新标记”标记R及经由总线47-5接收“加热时间”T值。重新标记确定接收噪声注入的校验节点。在所描述的实施例中,重新标记可执行多次,使得噪声可每次被注入到不同的校验节点中。这有助于解决更多的解码误差。加热时间T是指噪声被注入的连续迭代次数。在一次噪声注入迭代之后,一些解码误差可以被解决,但其它解码误差需要更多的迭代。因此,后处理控制系统7-9允许规定不同的加热时间(T)以解决更多的解码误差。将图11中的更新控制模块47-1的输出应用于邻域寄存器47-3的输入。邻域寄存器47-3从邻域识别模块47-2接收总线13A上的数字信号OD[Z-1:0]及总线13C上的ND'[Z-1:0],并生成总线13A上的输出信号OD[Z-1:0]及总线13B上的ND[Z-1:0]。取决于上文所提及重新标记旗标“R”的值,邻域寄存器47-3可或可不用邻近识别模块21的最近输出来更新。因此,总线13B上的ND[Z-1:0]可与ND'[Z-1:0]相同或可等于取决于重新标记旗标“R”的先验值ND'[Z-1:0]。“分成BR组”模块47-6经由总线18从图4的硬决策解码器7-10接收校验节点信息信号OD{BR*[Z-1:0]}且响应于将其分成Z个位的块,且在邻域寄存器模块47-3的输出处的总线13A上一次发送一个块作为信号OD[Z-1:0],且将其作为输入到邻域识别模块47-2。
图3中的后处理控制块7-9基本上从硬决策解码器7-10获取校验节点信息,并检查以确定未经满意校验的数量X是否低于某个阈值。如果X高于阈值,那么后处理控制电路7-9不进行任何操作,否则其将启用信号发送到图5及11中的邻域识别模块47-2及相邻的变量节点(未经满足校验)。其还采用重新标记旗标(R)、加热时间(T)及加热量级(L)作为输入,分别恰当设置噪声注入位置、时间及强度。
所描述的后处理硬件7B(图3)实施实时消息偏置。它引入了扰动效应,或换句话说,在解码过程中注入噪声以打破由捕获集误差造成的局部最优解。捕获集误差通常为LDPC码中误差底限的主要贡献者。如上文所指示,常规后处理硬件仅在解码过程中注入一次噪声(单次噪声注入)且仅允许改变噪声的量级,而实例性实施例如下所述支持噪声注入的附加灵活性。首先,后处理硬件可经过多次迭代注入不同量级及持续时间的噪声,如图11中的T指示。此允许解决由于单独的噪声注入本身无法解决的不同类型的捕获集结构造成的误差。其次,实例性实施例的硬件执行邻域重新标记(即,动态地改变噪声注入的位置),如图11中的R所指示。此会影响LDPC码结构中更大的一组节点。第三,实例性实施例的硬件具有仅在检测到捕获集误差时触发后处理的机制。这意味着当解码器对不需要后处理的帧进行解码时,不会出现等待时间损失。
只有在以下情况下才需要附加的管道延迟以进行邻域识别(a)触发后处理;(b)目前的迭代需要噪声注入;及(c)其是噪声注入的第一次迭代或重新标记被启用。后处理应相对较少地触发,因为它仅用于BER低的误差底限区域中。因此,额外的流水线延迟对平均解码器吞吐量的影响应该可忽略不计。
后处理硬件支持后处理算法中的不同参数,包含:(a)触发噪声注入的准则,(b)噪声注入的持续时间(T),(c)是否出现重新标记(R),即噪声注入期间是否更新邻域识别(ND),(d)消息偏置L的强度或量级,以及(e)噪声被注入的次数。硬件以与并行准循环(QC)LDPC解码器兼容的有效方式执行“硬决策解码”及“邻域识别”。具体来说,通过桶式移位器的操作来高效地完成“邻域识别”。“硬决策解码”及“邻域识别”操作两者经紧密地集成到主LDPC解码器流水线时间表中—在主LDPC解码器完成处理一个消息块之后,“硬决策解码”及“邻域识别”以流水线的方式对结果进行操作。
所描述的支持多重噪声注入的后处理硬件实施例可解决多达90%的捕获集误差,而单注噪声注入仅解决捕获集误差的60%到70%。实例性实施例的硬件架构及流水线时间表针对用于准循环LDPC码的基于列的高吞吐量LDPC解码器而被优化。此外,在解码不需要后处理的帧时,不会发生等待时间损失。
硬决策解码器对于计算解码输出并不重要。然而,使用硬决策解码器7-10来检查解码输出以确定是否满足所有奇偶校验。例如,在一些状况下,可引入扰动来有效地解决不是由于捕获集所致的解码误差。
在权利要求书的范围内,修改在所描述实施例中是可能的,且其它实施例是可能的。

Claims (20)

1.一种用于LDPC(低密度奇偶校验)解码的后处理电路,其包括:
校验节点处理器电路,其用于接收及处理LLR(对数似然比)值;
硬决策解码器电路,其用于接收可能已通过所述校验节点处理器电路修改的经处理的LLR信息,且对所述所接收及经处理的LLR信息执行奇偶校验操作;
后处理控制电路,其耦合到所述校验节点处理器电路,用于响应于所述硬决策解码器的奇偶校验决策来控制所述校验节点处理器电路中的LLR信息的更新,且其中所述校验节点处理器电路、硬决策解码器电路及后处理控制电路协作以识别在所述后处理电路的迭代之后奇偶校验未经满足的校验节点,识别与所述解码及后处理电路的迭代之后未经满足的校验节点交换消息的邻域变量节点,识别与邻域变量节点交换消息的经满足校验节点,且如果需要引入有效地解决解码误差且改进所述LDPC解码的位误差率性能的扰动,那么将从邻域变量节点到经满足校验节点的消息修改为新值;
后处理控制电路,其允许所述组邻域变量节点在后处理期间任选地更新;及
邻域识别电路,其与所述硬决策解码器电路及所述后处理控制电路相关联,用于确定奇偶校验矩阵的哪些变量节点与所述奇偶校验矩阵的未经满足校验节点连接,其中所述未经满足校验节点未通过奇偶校验,以及产生指示哪些变量节点连接到未经满足校验节点的第一信号。
2.根据权利要求1所述的后处理电路,其中所述经移位的LLR值由第一移位器电路生成,所述第一移位器电路从LLR缓冲器接收初始LLR值,且其中所述校验节点处理器电路的内容输出到第二移位器电路,其中通过第二移位器电路移位的信息相对于所述初始LLR值重新对准,且然后输入到变量节点处理器电路,其中由所述变量节点处理器电路处理的信息作为经更新的输入提供到所述硬决策解码器及所述LLR缓冲器的经更新的LLR输入,且其中所述第一及第二移位器电路、所述校验节点处理器电路及所述变量节点处理器电路由后处理控制器电路控制,以便使所述校验节点处理器电路根据所述硬决策解码器的奇偶校验决策修改其中的LLR信息。
3.根据权利要求1所述的后处理电路,其中所述后处理控制电路包含用于引入所述扰动的消息偏置电路,其中所述消息偏置电路包含用于在特定迭代周期期间引入多个不同特性的扰动以解决由于LDPC码中的不同捕获集结构所致的更多类型的解码误差。
4.根据权利要求1所述的后处理电路,其中所述后处理控制电路包含用于引入所述扰动的消息偏置电路,其中所述消息偏置电路包含用于在特定迭代周期期间控制扰动的持续时间的电路。
5.根据权利要求1所述的后处理电路,其中所述后处理控制电路包含消息偏置电路,其包含:移位电路,其用于将所述第一信号移位由所述奇偶校验矩阵确定的移位值,以产生指示连接到邻域变量节点的所有所述校验节点的第二信号;及经满足校验节点选择电路,其用于接收所述第二信号并操作以选择在所述硬决策解码器电路的先验迭代周期期间已满足奇偶校验的校验节点。
6.根据权利要求2所述的后处理电路,其中所述硬决策解码器包含:第三移位器电路,其接收所述经处理的LLR信息;移位值生成器电路,其用于生成移位值以作为输入提供到所述第三移位器电路;按位“异或”电路,其用于执行分别对应于所述奇偶校验矩阵的位的奇偶校验;及奇偶校验寄存器电路,其具有耦合到所述按位“异或”电路的对应输出的输入,所述奇偶校验寄存器电路,其从所述按位“异或”电路接收奇偶校验结果。
7.根据权利要求6所述的后处理电路,其中所述按位“异或”电路包含“异或”电路,每一“异或”电路具有分别耦合到所述第三移位器电路的对应位的输出的第一输入和分别耦合到所述奇偶校验寄存器电路的对应位的输出的第二输入,用于执行与所述奇偶校验矩阵的对应位相关联的按位奇偶校验操作。
8.根据权利要求6所述的后处理电路,其中所述硬决策解码器包含:奇偶校验计数器电路,其耦合到所述奇偶校验寄存器电路的输出以用于对奇偶校验未通过进行计数,以及后处理触发电路,其耦合到所述奇偶校验计数器电路用于在由所述奇偶校验计数器电路指示的所述未通过的次数超过预定值的条件下禁用后处理。
9.根据权利要求6所述的后处理电路,其中所述硬决策解码器,所述按位“异或”电路及所述第三移位器电路协作以将由所述变量节点处理器电路输出的硬决策值与所述奇偶校验寄存器电路的对应奇偶校验位对准。
10.根据权利要求6所述的后处理电路,其包含移位值生成器电路,所述移位值生成器电路生成移位值作为到第四移位器电路的输入以使响应于所述移位值生成器电路执行的移位反向。
11.根据权利要求1所述的后处理电路,其中所述解码误差是归因于捕获集。
12.一种用于执行LDPC(低密度奇偶校验)解码的方法,所述系统包括:
移位并处理LLR(对数似然比)值;
接收可能已被校验节点处理器电路修改的经处理的LLR信息,且借助于硬决策解码器电路对所述所接收及经处理的LLR信息执行奇偶校验操作;
响应于由所述硬决策解码器进行的奇偶校验决策控制LLR信息的更新,且在所述硬决策解码电路及所述后处理电路的迭代之后识别其奇偶校验未经满足的校验节点;
借助于所述硬决策解码器识别与在所述后处理电路的迭代之后未经满足的校验节点交换消息的邻域变量节点;
产生指示哪些邻域变量节点连接到未经满足校验节点的第一信号;
如果有必要引入有效地解决由于捕获集所致的解码误差且改进LDPC解码的位误差率性能的扰动,那么识别经满足校验节点,所述经满足校验节点与邻域变量节点交换消息且将从邻域变量节点到经满足校验节点的消息修改为新值;及
确定奇偶校验矩阵的哪些变量节点与所述奇偶校验矩阵的未经满足校验节点连接,其中所述未经满足校验节点未通过奇偶校验。
13.根据权利要求12所述的方法,其中所述方法包含:存储确定哪些校验节点接收经修改的消息的所述经识别邻域变量节点,以及响应于重新标记旗标信号来选择性地更新不同后处理迭代处的邻域寄存器以引入多种类型的扰动以改进所述LDPC解码的位误差率性能。
14.根据权利要求12所述的方法,其中步骤(a)包含从第一移位器电路到校验节点处理器电路传送所述经移位的LLR值,借助于所述校验节点处理器处理所述经移位的LLR值,及将所述经处理的LLR值传送到第二移位器电路以将所述经处理的LLR值相对于所述初始LLR值重新对准,将重新对准的信息作为经更新的输入提供到所述硬决策解码器,以使得所述校验节点处理器电路根据所述硬决策解码器的奇偶校验决策来修改其中的LLR信息。
15.根据权利要求12所述的方法,其包含使指示邻域变量节点的所述第一信号移位由所述奇偶校验矩阵确定的移位值,以产生指示连接到邻域变量节点的所有所述校验节点的第二信号,且然后从所述第二信号选择在所述解码电路及所述后处理电路的先验迭代周期期间已经满足奇偶校验的所有校验节点。
16.根据权利要求11所述的方法,其包含:生成移位值且根据所述移位值来使所述第三移位器电路中的经处理的LLR信息移位;通过将所述移位位与耦合到按位“异或”电路的输出的奇偶校验结果电路中的对应中间结果位进行比较来执行由所述奇偶校验矩阵所规定的奇偶校验。
17.根据权利要求16所述的方法,其中所述按位“异或”电路包含“异或”电路,每一电路具有分别耦合到所述第三移位器电路的对应位的输出的第一输入及分别耦合到所述奇偶校验寄存器电路的对应位的输出的第二输入,所述方法包含操作所述按位“异或”电路来执行与对应的奇偶校验矩阵相关联的按位奇偶校验操作。
18.根据权利要求17所述的方法,其包含操作所述硬决策解码器,所述按位“异或”电路及所述第三移位器电路使由所述变量节点处理器输出的硬决策值与存储在所述奇偶校验寄存器电路中的对应的中间及最终奇偶校验结果对准。
19.根据权利要求12所述的方法,其中所述解码误差是归因于捕获集。
20.一种用于执行LDPC(低密度奇偶校验)解码的系统,所述方法包括:
用于移位并处理LLR(对数似然比)值的装置;
用于接收可能已由校验节点处理器电路修改的经处理的LLR信息的装置以及用于借助于硬决策解码器电路对所述所接收及经处理的LLR信息执行奇偶校验操作的装置;
在所述硬决策解码器电路中用于响应于由所述硬决策解码器的奇偶校验决策来控制LLR信息的更新,并识别在所述硬决策解码电路及所述后处理电路的迭代之后奇偶校验未经满足的校验节点的装置;
用于识别邻域变量节点的装置,所述邻域变量节点与在所述解码电路及所述后处理电路迭代后未经满足的校验节点交换消息;
用于产生指示连接到未经满足校验节点的领域变量节点的第一信号的装置;
用于识别经满足校验节点的装置,所述校验节点与邻域变量节点交换消息,且在有必要引入有效解决由于捕获集所致的解码误差且改进所述LDPC解码的位误差率性能的扰动的条件下将从邻域变量节点到经满足校验节点的消息修改为新值;及
用于确定奇偶校验矩阵的哪些变量节点与所述奇偶校验矩阵的未经满足校验节点连接的装置,其中所述未经满足校验节点未通过奇偶校验。
CN201680064534.8A 2015-11-24 2016-11-23 用于低误差底限状况的ldpc后处理器架构及方法 Active CN108352846B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/950,659 US9793923B2 (en) 2015-11-24 2015-11-24 LDPC post-processor architecture and method for low error floor conditions
US14/950,659 2015-11-24
PCT/US2016/063619 WO2017091740A1 (en) 2015-11-24 2016-11-23 Ldpc post-processor architecture and method for low error floor conditions

Publications (2)

Publication Number Publication Date
CN108352846A true CN108352846A (zh) 2018-07-31
CN108352846B CN108352846B (zh) 2022-08-23

Family

ID=58721201

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680064534.8A Active CN108352846B (zh) 2015-11-24 2016-11-23 用于低误差底限状况的ldpc后处理器架构及方法

Country Status (3)

Country Link
US (2) US9793923B2 (zh)
CN (1) CN108352846B (zh)
WO (1) WO2017091740A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111563004A (zh) * 2019-02-14 2020-08-21 爱思开海力士有限公司 存储器控制器
CN111917419A (zh) * 2019-05-08 2020-11-10 华为技术有限公司 一种数据译码的方法以及装置

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9977713B2 (en) * 2015-03-20 2018-05-22 SK Hynix Inc. LDPC decoder, semiconductor memory system and operating method thereof
US9793923B2 (en) 2015-11-24 2017-10-17 Texas Instruments Incorporated LDPC post-processor architecture and method for low error floor conditions
US10372533B2 (en) * 2016-03-28 2019-08-06 Via Technologies, Inc. Non-volatile memory apparatus and empty page detection method thereof
US20180032396A1 (en) * 2016-07-29 2018-02-01 Sandisk Technologies Llc Generalized syndrome weights
KR102231278B1 (ko) * 2017-06-07 2021-03-23 한국전자통신연구원 이진 로그를 사용하는 저밀도 패리티 검사 복호기 및 그것의 복호 방법
US10447301B2 (en) 2017-09-13 2019-10-15 Toshiba Memory Corporation Optimal LDPC bit flip decision
KR102415974B1 (ko) * 2017-12-14 2022-07-04 삼성전자주식회사 에러 정정 장치, 에러 정정 장치의 동작 방법, 그리고 에러 정정 장치를 포함하는 제어기
US10447303B2 (en) * 2017-12-20 2019-10-15 Qualcomm Incorporated Low-density parity check (LDPC) incremental parity-check matrix rotation
CN110022158B (zh) * 2018-01-09 2021-04-09 华为技术有限公司 一种译码方法及装置
CN108933603B (zh) * 2018-02-28 2022-02-22 和芯星通科技(北京)有限公司 一种实现校验节点处理的方法及装置
CN108847848B (zh) * 2018-06-13 2021-10-01 电子科技大学 一种基于信息后处理的极化码的bp译码算法
KR102582326B1 (ko) * 2018-09-20 2023-09-26 에스케이하이닉스 주식회사 에러 정정 회로 및 이의 동작 방법
CN111130563B (zh) * 2018-10-30 2022-04-26 华为技术有限公司 处理信息的方法和装置
KR102643457B1 (ko) * 2018-11-19 2024-03-06 에스케이하이닉스 주식회사 Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법
CN109831214A (zh) * 2018-12-29 2019-05-31 中国电子科技集团公司第二十研究所 一种全并行ldpc译码器及fpga实现方法
US10630313B1 (en) 2019-03-12 2020-04-21 Microsoft Technology Licensing, Llc High efficiency data decoder
US10666291B1 (en) 2019-03-12 2020-05-26 Microsoft Technology Licensing, Llc High efficiency data decoder
CN110647479B (zh) * 2019-09-03 2020-11-10 宜鼎国际股份有限公司 双信道数据储存系统
CN112583419A (zh) * 2019-09-30 2021-03-30 华为技术有限公司 一种译码方法及装置
CN112838870A (zh) * 2019-11-22 2021-05-25 南京大学 一种高性能低复杂度的基于可靠性的多进制ldpc译码方法
CN111010195B (zh) * 2019-12-11 2023-06-02 北京华力创通科技股份有限公司 码字校验方法及装置
TWI712269B (zh) * 2020-05-06 2020-12-01 國立交通大學 以低密度奇偶校驗碼作為錯誤更正碼的資料解碼及其傳輸方法
CN112737598B (zh) * 2020-12-01 2024-04-09 西安电子科技大学 自适应掺杂方法、系统、存储介质、计算机设备及应用
US11934696B2 (en) 2021-05-18 2024-03-19 Microchip Technology Inc. Machine learning assisted quality of service (QoS) for solid state drives
US11843393B2 (en) 2021-09-28 2023-12-12 Microchip Technology Inc. Method and apparatus for decoding with trapped-block management

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030103586A1 (en) * 2001-11-20 2003-06-05 Poeppelman Alan D. Method of reducing miscorrections in a post-processor using column parity checks
CN1572059A (zh) * 2001-08-20 2005-01-26 皇家飞利浦电子股份有限公司 用于有信息的解码器的增强编码
GB0521858D0 (en) * 2005-10-26 2005-12-07 Samsung Electronics Co Ltd Decoding low-density parity check codes
CN1767397A (zh) * 2004-10-12 2006-05-03 三星电子株式会社 低密度奇偶校验码的高效解码装置和方法
US20060123318A1 (en) * 2004-11-23 2006-06-08 Samsung Electronics Co Ltd. Method and apparatus for decoding low density parity check code using united node processing
US20090013237A1 (en) * 2007-07-02 2009-01-08 Broadcom Corporation Distributed processing ldpc (low density parity check) decoder
CN101534166A (zh) * 2008-03-10 2009-09-16 上海明波通信技术有限公司 准循环低密度奇偶校验码解码器及解码方法
US20130061112A1 (en) * 2011-09-07 2013-03-07 Lsi Corporation Multi-Level LDPC Layer Decoder
US8484531B1 (en) * 2007-12-03 2013-07-09 Marvell International, Ltd. Post-processing decoder of LDPC codes for improved error floors

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7383487B2 (en) * 2004-01-10 2008-06-03 Broadcom Corporation IPHD (iterative parallel hybrid decoding) of various MLC (multi-level code) signals
US7644336B2 (en) * 2006-02-04 2010-01-05 Hitachi Global Storage Technologies Netherlands, B.V. Techniques for providing greater error protection to error-prone bits in codewords generated from irregular codes
US8307255B2 (en) 2008-11-12 2012-11-06 Texas Instruments Incorporated Scalable decoder architecture for low density parity check codes
FR2944660B1 (fr) * 2009-04-16 2011-09-09 St Microelectronics Sa Decodeur ldpc
KR101541040B1 (ko) * 2010-03-12 2015-08-03 엘에스아이 코포레이션 플래시 메모리들을 위한 ldpc 소거 디코딩
US8677227B2 (en) * 2010-08-25 2014-03-18 Royal Institution for the Advancement of Learning / McGill University Method and system for decoding
US8918694B2 (en) * 2011-02-28 2014-12-23 Clariphy Communications, Inc. Non-concatenated FEC codes for ultra-high speed optical transport networks
US9281902B2 (en) * 2012-04-24 2016-03-08 The Royal Institution For The Advancement Of Learning/ Mcgill University Methods and systems for optical receivers
RU2012146685A (ru) * 2012-11-01 2014-05-10 ЭлЭсАй Корпорейшн База данных наборов-ловушек для декодера на основе разреженного контроля четности
US9793923B2 (en) 2015-11-24 2017-10-17 Texas Instruments Incorporated LDPC post-processor architecture and method for low error floor conditions

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1572059A (zh) * 2001-08-20 2005-01-26 皇家飞利浦电子股份有限公司 用于有信息的解码器的增强编码
US20030103586A1 (en) * 2001-11-20 2003-06-05 Poeppelman Alan D. Method of reducing miscorrections in a post-processor using column parity checks
CN1767397A (zh) * 2004-10-12 2006-05-03 三星电子株式会社 低密度奇偶校验码的高效解码装置和方法
US20060123318A1 (en) * 2004-11-23 2006-06-08 Samsung Electronics Co Ltd. Method and apparatus for decoding low density parity check code using united node processing
GB0521858D0 (en) * 2005-10-26 2005-12-07 Samsung Electronics Co Ltd Decoding low-density parity check codes
US20090013237A1 (en) * 2007-07-02 2009-01-08 Broadcom Corporation Distributed processing ldpc (low density parity check) decoder
US8484531B1 (en) * 2007-12-03 2013-07-09 Marvell International, Ltd. Post-processing decoder of LDPC codes for improved error floors
CN101534166A (zh) * 2008-03-10 2009-09-16 上海明波通信技术有限公司 准循环低密度奇偶校验码解码器及解码方法
US20130061112A1 (en) * 2011-09-07 2013-03-07 Lsi Corporation Multi-Level LDPC Layer Decoder

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111563004A (zh) * 2019-02-14 2020-08-21 爱思开海力士有限公司 存储器控制器
CN111917419A (zh) * 2019-05-08 2020-11-10 华为技术有限公司 一种数据译码的方法以及装置
CN111917419B (zh) * 2019-05-08 2022-10-28 华为技术有限公司 一种数据译码的方法以及装置

Also Published As

Publication number Publication date
CN108352846B (zh) 2022-08-23
US10148288B2 (en) 2018-12-04
WO2017091740A1 (en) 2017-06-01
US20170353194A1 (en) 2017-12-07
US9793923B2 (en) 2017-10-17
US20170149446A1 (en) 2017-05-25

Similar Documents

Publication Publication Date Title
CN108352846A (zh) 用于低误差底限状况的ldpc后处理器架构及方法
CN104995844B (zh) 具有对于ldpc码可靠性输入的比特翻转解码
Li et al. Trellis-based extended min-sum algorithm for non-binary LDPC codes and its hardware structure
CN102412847B (zh) 用联合节点处理来解码低密度奇偶校验码的方法和设备
KR100958234B1 (ko) 패리티 검사 디코더들에서 사용하기 위한 노드 처리기들
US10848182B2 (en) Iterative decoding with early termination criterion that permits errors in redundancy part
CN101273531B (zh) 低密度奇偶校验码的改进turbo-译码消息传递方法、设备和系统
JP2014099944A (ja) ハードウェア共用および直列和積アーキテクチャを用いる低密度パリティ検査復号の方法および装置
Lin et al. Efficient shuffled decoder architecture for nonbinary quasi-cyclic LDPC codes
CN113783576A (zh) 用于从循环置换矩阵的集群构建的准循环低密度奇偶校验码的垂直分层解码的方法及设备
Ciobanu et al. Adaptive multiset stochastic decoding of non-binary LDPC codes
CN115529046A (zh) 闪速存储系统中的对数似然比映射表
KR101657912B1 (ko) 비이진 저밀도 패리티 검사 코드의 복호화 방법
US10128869B2 (en) Efficient convergence in iterative decoding
KR20160002946A (ko) 10gbase-t 시스템에서 ldpc 인코더의 방법 및 장치
Ngassa et al. Unconventional behavior of the noisy min-sum decoder over the binary symmetric channel
CN115037310B (zh) 一种基于随机计算的5g ldpc译码器性能优化方法及架构
CN101895375B (zh) 低密度校验码的译码系统
Zhang et al. Reduced-complexity extended Min-sum check node processing for non-binary LDPC decoding
KR101917829B1 (ko) Ldpc 부호의 셔플 복호를 위한 복호 순서 결정 방법 및 장치
Chandrasetty et al. Resource efficient LDPC decoders: from algorithms to hardware architectures
He et al. Nonbinary LDPC code decoder architecture with efficient check node processing
Lin et al. A 7.72 Gb/s LDPC-CC decoder with overlapped architecture for pre-5G wireless communications
Huang et al. A Markov chain model for edge memories in stochastic decoding of LDPC codes
Hamadicharef et al. FPGA design and implementation of the joint Viterbi detector decoder

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant