CN101340194B - 解码ldpc编码信号的解码器 - Google Patents
解码ldpc编码信号的解码器 Download PDFInfo
- Publication number
- CN101340194B CN101340194B CN2008101304615A CN200810130461A CN101340194B CN 101340194 B CN101340194 B CN 101340194B CN 2008101304615 A CN2008101304615 A CN 2008101304615A CN 200810130461 A CN200810130461 A CN 200810130461A CN 101340194 B CN101340194 B CN 101340194B
- Authority
- CN
- China
- Prior art keywords
- bit
- ldpc
- register
- verification
- limit message
- 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.)
- Expired - Fee Related
Links
Images
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/65—Purpose and implementation aspects
- H03M13/6508—Flexibility, adaptability, parametrability and configurability of the implementation
- H03M13/6516—Support of multiple code parameters, e.g. generalized Reed-Solomon decoder for a variety of generator polynomials or Galois fields
-
- 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
-
- 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/1111—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
-
- 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/1137—Partly parallel processing, i.e. sub-blocks or sub-groups of nodes being processed in parallel
-
- 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/65—Purpose and implementation aspects
- H03M13/6502—Reduction of hardware complexity or efficient processing
- H03M13/6505—Memory efficient implementations
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明涉及分布式处理LDPC解码器。本发明所提出的方法包括LDPC解码架构,利用分布式处理技术(例如菊花链)来增加数据吞吐量并减少存储器需求。路由拥塞和关键路径等待时间也得到改善。每个菊花链包括多个寄存器和多个局部复用器(例如只有两个输入的MUX)。本发明的方法不包含任何桶形移位器、高扇入复用器或互联网络。因此,关键路径相对很短并且其可以通过管线实现以增加数据吞吐量。若需要,通信设备可包括多个这样的菊花链配置以适用于各种LDPC编码信号的解码(例如,对于必须使用不同的低密度奇偶校验矩阵解码LDPC码的应用和/或通信设备)。
Description
技术领域
本发明涉及通信系统,更具体地说,涉及通信系统内低密度奇偶校验(LowDensity Parity Check,简称LDPC)编码信号的解码。
背景技术
数据通信系统已经持续发展了多年,近年来,采用迭代纠错码的通信系统是研究者们关注的焦点。其中最受关注的是采用LDPC码的通信系统。在同一信噪比情况下,使用迭代码的通信系统的误码率通常低于使用其它编码的通信系统。
该领域的一个持续和主要的发展方向是降低通信系统中的信噪比以达到特定的误码率。理想的目标是尝试研究通信信道中的山农限度(Shannon’slimit),山农限度可以看作是用在具有特定信噪比的信道中使用的数据传输率,通过该信道可实现无误码传输。换句话说,山农限度是在给定调制和编码率情况下信道容量的理论限度。
LDPC码已被证实在某些情况下可以提供接近山农限度的非常好的解码性能。理论上,某些LDPC解码器被证实可以达到离山农限度0.3分贝的性能。长度为一百万的不规则LDPC码曾达到该性能,它证实了在通信系统中应用LDPC码是非常有希望的。
LDPC编码信号的使用继续被应用于许多新的领域。可采用LDPC编码信号的几种可能的通信系统的例子包括用于高速以太网应用的采用4对双绞线电缆的通信系统(例如依据IEEE 802.3an的10Gbps(吉比特/秒)以太网操作(10GBASE-T))以及无线环境内运行的通信系统(例如在包括IEEE 802.11n新兴标准的IEEE 802.11环境空间内)。
对于这些特殊的通信系统应用领域,非常期望有能够实现接近容量的纠错码。因使用传统的链接码而引入的潜在限制(latency constraints),妨碍了他们在高数据率通信系统应用领域内的使用。
一般来讲,在采用LDPC码的通信系统环境内,在通信信道的一端有一个具有编码器能力的第一通信设备,在通信信道的另一端有一个具有解码器能力的第二通信设备。多数情况下,这两个通信设备其一或两者都具有编码器和解码器能力(例如在双向通信系统内)。LDPC码还可以应用于各种其它应用中,包括那些采用某种形式的数据存储(例如,硬盘驱动器HDD应用和其它存储设备)的应用,其中数据在写入存储媒介之前被编码,然后数据在从该数据媒介中读出/取出后被解码。
在许多这样的现有通信设备中,设计解码LDPC编码信号的有效设备和/或通信设备的一个最大的困难在于存储和管理在迭代解码过程中(例如,在校验引擎和比特引擎之间来回存储和传递校验边消息和比特边消息时)被更新和使用的所有比特边消息(bit edge message)和校验边消息(check edge message)所需的大面积和存储器。在LDPC码环境中处理相对较大的块尺寸时,处理这些校验边消息和比特边消息所需的存储器要求和存储器管理将是非常难于处理的。因而本技术领域需要并将继续需要有一种更好的手段来解码LDPC编码信号以提取出编码在其内的信息。
发明内容
根据本发明的一个方面,本发明提供一种解码LDPC编码信号的解码器,所述解码器包括:
配置在菊花链架构内的多个寄存器和多个复用器(MUX),其中,所述多个寄存器用于存储比特边消息和校验边消息,所述多个复用器插入在所述多个寄存器之间;
校验引擎,其采用第一比特边消息更新第一校验边消息,从而生成第二校验边消息;
比特引擎,其:
采用所述第二校验边消息更新第二比特边消息从而生成第三比特边消息;
采用所述第三比特边消息生成软信息,所述软信息对应于编码在所述LDPC编码信号内的信息比特;且其中:
所述对应于编码在所述LDPC编码信号内的信息比特的软信息被用于做出对编码在所述LDPC编码信号内的信息比特的最佳估计;
所述多个寄存器中的每个寄存器对应于生成LDPC编码信号的LDPC码的奇偶校验矩阵的子矩阵内的非零位置(non-null location);
所述多个寄存器中的每个寄存器用于将其内的校验边消息或比特边消息移位一个位置;
比特节点处理过程中,第一选定信号被提供给插入在所述多个寄存器之间的多个复用器以确保校验边消息从所述多个寄存器中的至少一个寄存器提供给比特引擎;以及
校验节点处理过程中,第二选定信号被提供给插入在所述多个寄存器之间的多个复用器以确保比特边消息从所述多个寄存器中的至少一个寄存器提供给校验引擎。
优选地,所述解码器进一步包括:
包含所述校验引擎的多个校验引擎;
包含所述比特引擎的多个比特引擎;
其中,所述多个寄存器基于生成LDPC编码信号的LDPC码的奇偶校验矩阵内的非零位置,硬连线连接至(hard-wired to)所述多个比特引擎和所述多个校验引擎。
优选地,所述生成LDPC编码信号的LDPC码的奇偶校验矩阵包括多个循环移位单位(CSI(Cyclic Shifted Identity))子矩阵。
优选地,所述生成LDPC编码信号的LDPC码的奇偶校验矩阵包括多个非循环移位单位(non-CSI)子矩阵。
优选地,所述生成LDPC编码信号的LDPC码的奇偶校验矩阵包括至少一个循环移位单位子矩阵和至少一个非循环移位单位子矩阵。
优选地,所述生成LDPC编码信号的LDPC码的奇偶校验矩阵包括多个矩形(square)子矩阵。
优选地,所述解码器执行置信传播(belief propagation)解码处理或消息传递(message passing)解码处理。
优选地,所述菊花链架构配置执行多个比特边消息的移位用于比特节点处理,或执行多个校验边消息的移位用于校验节点处理。
优选地,所述解码器实现在集成电路内。
优选地,所述解码器实现在从通信信道接收LDPC编码信号的通信设备内;且所述通信设备实现在卫星通信系统、无线通信系统、有线通信系统和光纤通信系统中的至少一个内。
根据本发明的一个方面,本发明提供一种解码LDPC编码信号的解码器,所述解码器包括:
配置在菊花链架构内的多个寄存器和多个复用器,其中,所述多个寄存器用于存储比特边消息和校验边消息,所述多个复用器插入在所述多个寄存器之间;
多个校验引擎,其采用第一多个比特边消息更新第一多个校验边消息,从而生成第二多个校验边消息;
多个比特引擎,其:
采用所述第二多个校验边消息更新第二多个比特边消息从而生成第三多个比特边消息;
采用所述第三多个比特边消息生成软信息,所述软信息对应于编码在所述LDPC编码信号内的至少一个信息比特;且其中:
所述对应于编码在所述LDPC编码信号内的至少一个信息比特的软信息被用于做出对编码在所述LDPC编码信号内的所述至少一个信息比特的最佳估计;
所述多个寄存器中的每个寄存器对应于生成LDPC编码信号的LDPC码的奇偶校验矩阵的子矩阵内的非零位置;
所述多个寄存器中的每个寄存器用于将其内的校验边消息或比特边消息移位一个位置;
比特节点处理过程中,第一选定信号被提供给插入在所述多个寄存器之间的多个复用器以确保校验边消息从所述多个寄存器中的至少一个寄存器提供给比特引擎;以及
校验节点处理过程中,第二选定信号被提供给插入在所述多个寄存器之间的多个复用器以确保比特边消息从所述多个寄存器中的至少一个寄存器提供给校验引擎;
所述多个寄存器基于生成LDPC编码信号的LDPC码的奇偶校验矩阵内的非零位置,硬连线连接至所述多个比特引擎和所述多个校验引擎;
所述解码器执行置信传播解码处理或消息传递解码处理。
优选地,所述生成LDPC编码信号的LDPC码的奇偶校验矩阵包括多个循环移位单位子矩阵。
优选地,所述生成LDPC编码信号的LDPC码的奇偶校验矩阵包括多个非循环移位单位子矩阵。
优选地,所述生成LDPC编码信号的LDPC码的奇偶校验矩阵包括至少一个循环移位单位子矩阵和至少一个非循环移位单位子矩阵。
优选地,所述生成LDPC编码信号的LDPC码的奇偶校验矩阵包括多个矩形子矩阵。
优选地,所述解码器实现在集成电路内。
优选地,所述解码器实现在从通信信道接收LDPC编码信号的通信设备内;且所述通信设备实现在卫星通信系统、无线通信系统、有线通信系统和光纤通信系统中的至少一个内。
根据本发明的一个方面,本发明提供一种解码器,实现在集成电路内,用于解码LDPC编码信号,所述集成电路包括:
配置在菊花链架构内的多个寄存器和多个复用器,其中,所述多个寄存器用于存储比特边消息和校验边消息,所述多个复用器插入在所述多个寄存器之间;
校验引擎,其采用第一比特边消息更新第一校验边消息,从而生成第二校验边消息;
比特引擎,其:
采用所述第二校验边消息更新第二比特边消息从而生成第三比特边消息;
采用所述第三比特边消息生成软信息,所述软信息对应于编码在所述LDPC编码信号内的信息比特;且其中:
所述对应于编码在所述LDPC编码信号内的信息比特的软信息被用于做出对编码在所述LDPC编码信号内的信息比特的最佳估计;
所述多个寄存器中的每个寄存器对应于生成LDPC编码信号的LDPC码的奇偶校验矩阵的子矩阵内的非零位置;
所述多个寄存器中的每个寄存器用于将其内的校验边消息或比特边消息移位一个位置;
比特节点处理过程中,第一选定信号被提供给插入在所述多个寄存器之间的多个复用器以确保校验边消息从所述多个寄存器中的至少一个寄存器提供给比特引擎;以及
校验节点处理过程中,第二选定信号被提供给插入在所述多个寄存器之间的多个复用器以确保比特边消息从所述多个寄存器中的至少一个寄存器提供给校验引擎;
所述多个寄存器基于生成LDPC编码信号的LDPC码的奇偶校验矩阵内的非零位置,硬连线连接至所述多个比特引擎和所述多个校验引擎;
所述生成LDPC编码信号的LDPC码的奇偶校验矩阵包括多个矩形子矩阵。
优选地,所述生成LDPC编码信号的LDPC码的奇偶校验矩阵包括多个循环移位单位子矩阵。
优选地,所述解码器实现在从通信信道接收LDPC编码信号的通信设备内;且所述通信设备实现在卫星通信系统、无线通信系统、有线通信系统和光纤通信系统中的至少一个内。
本发明的各种优点、各个方面和创新特征,以及其中所示例的实施例的细节,将在以下的描述和附图中进行详细介绍。
附图说明
图1是通信系统的一个实施例的示意图;
图2是通信系统的另一实施例的示意图;
图3是执行LDPC解码处理的装置的一个实施例的示意图;
图4是执行LDPC解码处理的装置的另一实施例的示意图;
图5是LDPC码二分图(bipartite graph)的一个实施例的示意图;
图6是LDPC解码功能的一个实施例的示意图;
图7是消息传递解码处理或置信传播解码处理以及校验节点、比特节点与奇偶校验矩阵H内的行和列的关系的实施例的示意图;
图8是执行LDPC编码信号的解码的菊花链架构的一个实施例的示意图;
图9是基于分布式子矩阵的置信传播解码处理或消息传递解码处理的一个实施例的示意图;
图10是基于分布式子矩阵的置信传播解码处理或消息传递解码处理的另一个实施例的示意图;
图11是执行LDPC编码信号的解码的菊花链架构的一个实施例的示意图;
图12是用于具有非CSI子矩阵的奇偶校验矩阵H的变量/比特更新顺序的示意图;
图13是图12所示的用于具有非CSI子矩阵的奇偶校验矩阵H的校验更新顺序的示意图;
图14是处理LDPC编码信号的方法的一个实施例的示意图;
图15是包括具有多LDPC码性能的通信设备的一个实施例的示意图;
图16是包括具有多LDPC码性能的通信设备的另一实施例的示意图。
具体实施方式
下面将结合附图及实施例对本发明作进一步说明:
LDPC(低密度奇偶校验)码是容量逼近前向纠错码(ECC),正被大量通信标准(例如IEEE 802.3an、IEEE 802.11n、802.20、DVB-S2)所采用。相关的应用领域包括磁记录、无线、通过铜缆和光纤的高速数据传输。
一个实施例中,使用迭代解码方法来执行LDPC解码处理,其中,在执行校验节点处理(有时又被称为“校验引擎处理”)和比特节点处理(有时又被称为“比特引擎处理”)时将来回传递消息(例如,校验边消息和比特边消息(或又被称为“变量边消息”))。某些时候,这被称为消息传递解码处理,在编码的图形标示上(例如,LDPC二分图(业内有时也称其为“Tanner”图))操作。
其中的一个关键的硬件实现难点是在每次解码器迭代过程中必须交换的大量消息的管理。因此提出了各种方法来减少对存储器的需求、某些硬件需求(例如,无需桶形移位器(barrel shifter)和任何大扇入复用器(MUX),或通常用于存储校验边消息和比特边消息的大存储器如RAM)。此外,根据本发明执行解码处理的新方法还提供了高吞吐量。采用一个或多个菊花链且每个菊花链具有合适设置的寄存器和仅仅局部化的(localized)MUX(例如,仅有2个输入的MUX)的新方法分别针对校验节点处理和比特节点处理执行校验边消息和比特边消息的合适移位和对准。某些实施例中,本申请中介绍的方法基于LDPC码的低密度奇偶校验矩阵H由子矩阵构成的事实。例如,在处理低密度奇偶校验矩阵H时可执行子矩阵的处理,并且低密度奇偶校验矩阵H的特征(例如,由子矩阵构成)可应用于对架构和效率的改进。
在每个菊花链中,每个寄存器存储任一特定时间的校验边消息和比特边消息,MUX用于选择在特定处理时间内校验边消息和比特边消息中哪个将被更新。还需要注意,本发明中采用的菊花链配置与传统的菊花链的不同点在于,本发明中采用的菊花链包括有MUX,实现首先是比特边消息其次是校验边消息的更新,反之亦然,且在不同时间使用的是完全相同的菊花链。一个或多个比特引擎以及一个或多个校验引擎何时连接到菊花链的连接性取决于低密度奇偶校验矩阵H内的非零元素的位置。换句话说,从某种角度来说,菊花链的硬连线连接性(hard-wired connectivity)对应于低密度奇偶校验矩阵H。
此外,一般来说,当以子矩阵为基础进行解码时,若每个子矩阵的大小为“X×X”,本发明的方法可采用“N”个比特引擎和“M”个校验引擎,从而X/M和X/N均构成第一和/或第二整数值。也就是说,采用的比特引擎的数量不需要与采用的校验引擎的数量相同。
或者,如果这些条件不满足(例如,X/M和X/N其中之一或两者构成非整数值),则在执行比特节点处理或校验节点处理时分别会有一个或多个比特引擎和/或校验引擎是空闲的(idle)。尽管如此,仍然可以采用本发明中使用菊花链的方法。
本申请中提出的新手段包括一种LDPC解码架构,利用分布式处理技术(例如,菊花链)来增加数据吞吐量并减少存储器存储需求。在这种设计中,路由拥塞和关键的路径等待时间(latency)也得到改善。本申请中提出的新解码方法还可应用于操作在低密度奇偶校验矩阵H上的LDPC码,该矩阵H由循环移位单位矩阵子模块组成。某些实施例中,整个低密度奇偶校验矩阵H被划分成多个矩形子矩阵,使得每个子矩阵由CSI(循环移位单位)矩阵或空矩阵(全零)组成。CSI子矩阵是通过单位矩阵的循环移位得到的(例如,可通过从作为单位矩阵的原始子矩阵开始执行循环移位,从而使从左上方的入口开始继续向下并向右直到最右下方的对角线列元素全部为值“1”,而其它元素为“0”,来得到CSI子矩阵)。当用于解码LDPC编码信号的低密度奇偶校验矩阵H包括具有CSI格式的子矩阵的情况下,则每个子矩阵的CSI偏移量应该是已知的。CSI偏移量是从原始单位矩阵生成期望的CSI矩阵所需的循环移位量。低密度奇偶校验矩阵H具有如此结构(例如,包括CSI子矩阵等)的LDPC码在IEEE 802.11n草案2.02标准和IEEE 802.16e标准中有介绍。
应注意,本申请中提出的手段也同样可适用于对低密度奇偶校验矩阵H未包含CSI格式的子矩阵的LDPC编码信号的解码。换句话说,本申请中提出的新解码方法可适用于任何形式的低密度奇偶校验矩阵H。
注意,本申请中以下描述的任意实施例和方法都是可以适用的,不管整个LDPC解码器的架构如何,例如,在架构/硬件实现上是否是完全并行的、部分并行的或串行的。
数字通信系统的目标是从一个位置或子系统无错地或以可接受的低错误率发送数字数据到另一个位置或子系统。如图1所示,数据可通过多种通信系统内的各种通信信道来传输:磁媒介、有线、无线、光纤、铜缆和其它类型的媒介。
图1和图2分别是根据本发明不同实施例的通信系统的100和200的示意图。
如图1所示,通信系统100包括一个通信信道199,将位于通信信道199一端的通信设备110(包括带有编码器114的发送器112和带有解码器118的接收器116)与位于通信信道199另一端的另一个通信设备120(包括带有编码器128的发送器126和带有解码器124的接收器122)通信连接。在某些实施例中,通信设备110和120均可仅包括一个发送器或一个接收器。通信信道199可通过各种不同类型的媒介来实现(例如,利用圆盘式卫星接收天线132和134的卫星通信信道130、利用塔142与144和/或本地天线152和154的无线通信信道140、有线通信信道150和/或利用电-光(E/O)接口162和光-电(O/E)接口164的光纤通信信道160)。另外,可以通过一种以上的媒介连接在一起从而形成通信信道199。
为了减少通信系统内不期望出现的传输错误,通常采用纠错和信道编码方案。一般,这些纠错和信道编码方案包括发送器端编码器的使用以及接收器端解码器的使用。
如图2所示的通信系统200中,在通信信道299的发送端,信息比特201被提供给发送器297,发送器297可使用编码器和符号映射器200(可分别视为是不同的功能块222和224)执行对这些信息比特201的编码,从而生成一个离散值调制符号序列203,然后提供给发送驱动器230。发送驱动器230使用DAC(数模转换器)232生成一个连续时间发送信号204,然后通过发送滤波器234,生成充分适合通信信道299的滤波后连续时间发送信号205。在通信信道299的接收端,连续时间接收信号206被提供给AFE(模拟前端)260,AFE 260包括接收滤波器262(生成滤波后连续时间接收信号207)和ADC(模数转换器)264(生成离散时间接收信号208)。量度生成器(metric generator)270计算符号量度(symbol metrics)209,解码器280使用符号量度209做出对离散值调制符号和编码在其内的信息比特的最佳估算210。
前述实施例中的解码器具有本发明的各种特征。另外,以下的一些附图和相关的描述将介绍支持本发明的设备、系统、功能性和/或方法的其他和特定实施例(某些实施例的介绍更加详细)。根据本发明处理的一种特定类型的信号是LDPC编码信号。在给出更详细的介绍之前,先对LDPC码进行概要描述。
图3示出了执行LDPC解码处理的装置300的一个实施例。装置300包括处理模块320和存储器310。存储器310连接至处理模块320,并且存储器310用于存储能使处理模块320执行各种功能的操作指令。处理模块320用于执行和/或控制依据本申请中所描述的任一实施例或其等效实施例执行的LDPC解码处理的方式。
处理模块320可使用共享的处理设备、单个的处理设备或多个处理设备来实现。这样的处理器可以是微处理器、微控制器、数字信号处理器、微型计算机、中央处理单元、现场可编程门阵列、可编程逻辑器件、状态机、逻辑电路、模拟电路、数字电路和/或基于操作指令处理信号(模拟的和/或数字的)的任何器件。存储器310可以是单个存储设备或多个存储设备。这样的存储设备可以是只读存储器、随机访问存储器、易失存储器、非易失存储器、静态存储器、动态存储器、闪存和/或存储数字信息的任何设备。注意,当处理设备320通过状态机、模拟电路、数字电路和/或逻辑电路执行其一种或多种功能时,存储对应操作指令的存储器嵌入在包括状态机、模拟电路、数字电路和/或逻辑电路的电路内。
某些实施例中若期望如此,执行LDPC解码处理的方式(例如,将执行哪种方式的操作参数修改,该操作参数修改将对哪些参数执行,是否针对不同的解码迭代执行不同的操作参数修改,等等)可从装置300提供给使用预期的LDPC码执行LDPC编码的通信系统340。例如,对应于被使用的LDPC码的信息(例如,LDPC码的奇偶校验矩阵)也可从处理模块320提供给通信系统340内的任意通信设备330。此外,通信系统340内的任一通信设备330内将执行的LDPC码将以哪种方式执行,也可从处理模块320提供。
若想要,处理模块320可被设计成生成依据多个需求和/或预期生成多种执行LDPC解码的方式。某些实施例中,处理模块320选择性的提供不同的信息(例如,对应于不同LDPC码、不同操作参数修改等的信息)给不同的通信设备和/或通信系统。因而,不同通信设备之间的不同通信链接可采用不同的LDPC码和/或执行LDPC解码的方式(例如,采用不同的操作参数修改)。显然,处理模块320还能提供相同的信息给每个不同的通信设备和/或通信系统而不会脱离本发明的保护范围和精神实质。
图4示出了另一实施例的执行LDPC解码处理的装置400。装置400包括处理模块420和存储器410。存储器410连接至处理模块420,并且存储器410用于存储能使处理模块420执行各种功能的操作指令。处理模块420(由存储器410服务的)可实现为能够执行此处所描述的各种模块和/或功能块的任意功能的设备。例如,处理模块420(由存储器410服务的)可实现为用于执行和/或控制依据本申请中所描述的任一实施例或其等效实施例执行的LDPC解码处理的方式的设备。
处理模块420可使用共享的处理设备、单个的处理设备或多个处理设备来实现。这样的处理器可以是微处理器、微控制器、数字信号处理器、微型计算机、中央处理单元、现场可编程门阵列、可编程逻辑器件、状态机、逻辑电路、模拟电路、数字电路和/或基于操作指令处理信号(模拟的和/或数字的)的任何器件。存储器410可以是单个存储设备或多个存储设备。这样的存储设备可以是只读存储器、随机访问存储器、易失存储器、非易失存储器、静态存储器、动态存储器、闪存和/或存储数字信息的任何设备。注意,当处理设备420通过状态机、模拟电路、数字电路和/或逻辑电路执行其一种或多种功能时,存储对应操作指令的存储器嵌入在包括状态机、模拟电路、数字电路和/或逻辑电路的电路内。
某些实施例中若期望如此,装置400可以是任意一种通信设备430,或这样的通信设备430中的任意部分。包括有处理模块420和存储器410的通信设备430可实现在任意通信系统440内。还要注意,本申请中的LDPC解码处理和/或依据LDPC解码处理进行的操作参数修改的各个实施例及其各种等效实施例,可应用于多种类型的通信系统和/或通信设备。
图5是LDPC码二分图500的示意图。在业内,LDPC二分图也被称为Tanner图(坦纳图)。LDPC码被看作是具有二进制奇偶校验矩阵从而使矩阵的几乎所有元素都为零值(例如,该二进制奇偶校验矩阵是稀疏矩阵)的代码。例如,H=(hi,j)MxN被看作是区块长度为N的LDPC码奇偶校验矩阵。
LDPC码是线性区块码,因此所有码字的集合x∈C分布在奇偶校验矩阵H的零空间内。
对于LDPC码,H是m×n维的稀疏二进制矩阵。H的每行对应于一个奇偶校验,一组元素hij表示数据符号j参与奇偶校验i。H的每列对应于码字符号。
对于每个码字x,有n个符号,其中m个是奇偶符号。因此,编码率r给定为:
r=(n-m)/n (2)
行和列的权重分别定义为H的给定行或列的集合元素的数量。H的集合元素选定为满足编码的性能需求。奇偶校验矩阵的第i列中1的数量表示为dv(i),奇偶校验矩阵的第j行中的1的数量表示为dc(j)。如果对所有的i,dv(i)=dv,对所有的j,dc(j)=dc,那么这种LDPC码被称为(dv,dc)规则LDPC码,否则被称为不规则LDPC码。
关于LDPC码的介绍请参考以下参考文献:
[1]R.Gallager,Low-Dentisy Parity-Check Codes,Cambridge,MA:MITPress,1963.
[2]R.G.Gallager,“Low Dentisy Parity Check Codes”,IRE Trans.Info.Theory,Vol.IT-8,Jan.1962,PP.21-28.
[3]M.G.Luby,M.Mitzenmacher,M.A.Shokrollahi,D.A.Spielman,and V.Stemann,“Practical Loss-Resilient Codes”,Proc.29th Symp.On Theory ofComputing,1997,pp.150-159.
规则LDPC码可表示为二分图500,其奇偶校验矩阵的左侧节点为代码比特变量(或为解码LDPC编码信号的比特解码方法中的“变量节点”(或“比特节点”)510),右侧节点为校验方程(或“校验节点”520)。由H定义的LDPC码的二分图500(或称为坦纳图500)可由N个变量节点(例如,N个比特节点)和M个校验节点来定义。N个变量节点510中的每个变量节点都具有精确的dv(i)个边(如边530),连接比特节点例如vi512与一个或多个校验节点(M个校验节点内)。图中所示的边530连接位节点vi512与校验节点cj522。该dv个边(如dv514所示)的数量dv被称为变量节点的度i。类似地,M个校验节点520中的每个校验节点都有精确的dc(j)个边(如dc524所示),连接该节点与一个或多个变量节点(或比特节点)510。该边的数量dc被称为校验节点的度j。
变量节点vi(或比特节点bi)512与校验节点cj522之间的边530可被定义为e=(i,j)。但是,另一方面,给定边e=(i,j),则该边的节点可表示为e=(v(e),c(e))(或e=(b(e),c(e)))。或者,二分图中的边对应于H的集合元素,其中,集合元素hji表示一条边连接比特(例如,变量)节点i和奇偶校验节点j。
假定给出变量节点vi(或比特节点bi),可将从节点vi(或比特节点bi)发射出的一组边定义为EV(i)={e/v(e)=i}(或Eb(i)={e/b(e)=i})。这些边被称为比特边,而对应于这些比特边的消息被称为比特边消息。
假定给出校验节点cj,可将从节点cj发射出的一组边定义为Ec(j)={e/c(e)=j}。这些边被称为校验边,而对应于这些校验边的消息被称为校验边消息。接着,导出的结果是|Ev(i)|=dv(或|Eb(i)|=db)以及|Ec(j)|=dc。
一般说来,任何可用二分图表示的代码,其特征都是图形码。要注意的是,不规则LDPC码也可用二分图表示。但是,不规则LDPC码内的每组节点的度可根据某些分布进行选择。因此,对于不规则LDPC码的两个不同变量节点vii和vi2,|Ev(i1)|可能会不等于|Ev(i2)|。对于两个校验节点也是这种关系。不规则LDPC码的概念最早在上述的参考文献[3]中给出了介绍。
总之,通过LDPC码的图示,LDPC码的参数可由分布的度来定义,如M.Luby等在上述参考文献[3]中所述,以下的参考文献中也有相关的描述:
[4]T.J.Richardson and R.L.Urbanke,“The capacity of low-densityparity-check code under message-passing decoding”,IEEE Trans.Inform.Theory,Vol.47,No.2,Feb.2001,pp.599-618.
这种分布可描述如下:
用λi表示从度为i的变量节点发射的边的分数,ρi表示从度为i的校验节点发射的边的分数,则度分布对(λ,ρ)定义如下:
虽然在此描述的多个实施例采用规则LDPC码,但是要注意的是本发明的特征既适用于规则LDPC码,也适用于不规则LDPC码。
还要注意的是,本申请中描述的多数实施例采用“比特节点”和“比特边消息”或等效的表述这样的命名。但是通常在LDPC解码的现有技术中,“比特节点”和“比特边消息”又被称为“变量节点”和“变量边消息”,因此,比特值(或变量值)是那些试图被估算的值。这两种命名都可以被本申请所采用。
本申请中提出的新解码方法可依据解码LDPC编码信号的置信传播算法(或有些时候又称为置信传播解码处理)来执行。置信传播算法(beliefpropagation algorithm)包括使用一比特所参与的奇偶校验方程来迭代更新每个比特的概率值(如上述R.Gallager于1963出版的参考文献[1]所述)。这一算法某些时候又可被称为“消息传递解码”(或消息传递解码处理),因为内部信息作为消息在校验节点和比特节点之间进行传递(如上述Richardson和Urbanke在2001年出版的参考文献[4]所述)。校验节点对应于低密度奇偶校验矩阵H内的行,比特节点对应于低密度奇偶校验矩阵H内的列。因此,置信传播算法的迭代将由各行上的校验节点更新以及紧跟着各列上的比特节点更新组成。
图6示出了LDPC解码功能600的一个实施例。为了执行具有m比特信号序列的LDPC编码信号的解码,采用了图6所示的功能块。一般来说,从通信信道接收到连续时间信号(continuous-time signal),如附图标号601所示。该通信信道可以是任何类型的信道,包括但不限于有线通信信道、无线通信信道、光纤通信信道、HDD的读信道或能够传送已使用LDPC码编码的连续时间信号的其他类型的通信信道。
模拟前端(AFE)610对该连续时间信号执行任何初始处理(例如,通过执行滤波(模拟和/或数字滤波)、增益调节等一种或多种处理)并进行数字采样,从而生成离散时间信号611。该离散时间信号611又被称为数字信号、基带信号或现有技术中已知的其它命名。通常,离散时间信号611被分成信号的I、Q(同相、正交)值。
度量生成器620接收离散时间信号611(例如,其包括有I、Q值),并计算对应的比特度量和/或对数似然比(LLR)621,其对应于离散时间信号611内的接收值。某些实施例中,这些比特度量/LLR符号度量621的计算是两个步骤的处理,其中,度量生成器620首先计算对应于离散时间信号611的符号的符号度量,然后度量生成器再采用该符号度量来分解这些符号度量为比特度量/LLR 621。然后由比特引擎630使用这些比特度量/LLR 621来初始化比特边消息(例如,如附图标号629所示),在执行LDPC编码信号的迭代解码处理635(例如,如比特引擎630和校验引擎640所执行的)时将使用该比特边消息。
对数似然比(LLR)的值为λi,对应的接收符号的值为yi的情况下,针对每个变量节点i的比特边消息的初始化可以定义为如下:
同样,在比特节点处,比特引擎630使用最近更新的比特边消息计算该比特的对应软信息(例如,如软信息632所示)。然而,通常要执行多次解码迭代,因而经初始化的比特边消息被传送给校验引擎640,在其中,第一次解码迭代过程中,校验引擎640采用该初始化的比特边消息更新校验边消息。
在每个校验节点处,LDPC解码处理在入站消息的正负号(sign)上形成奇偶校验结果(XOR)。这通过找出每个出站消息的正负号作为具有该奇偶校验结果的对应入站消息的正负号的XOR来执行。
然后,依据下式计算从校验节点j到比特(例如,变量)节点i的出站消息可靠性:
某些期望的实施例中,这一计算在对数域内执行,以将乘法转换成加法,如下:
此后,比特引擎630从校验引擎640接收经更新的边消息(例如,如校验边消息641所示),并利用他们更新比特边消息。同样,比特引擎630还在依据LDPC解码执行比特边消息的更新时使用从度量生成器620接收的比特度量/LLR 621。然后,这些经更新的校验边消息641被传送回比特节点(例如,比特引擎630),在此使用比特度量/LLR 621和校验边消息的当前迭代值计算出该比特的软信息632。在每个比特(例如,变量)节点处,软信息的计算包括形成来自校验节点的入站消息(例如,校验边消息641)内的接收符号的LLR的和。解码出的比特由求出的总和的正负号(sign)来给出。用于下一次解码迭代的每个出站消息通过从该总和中减去对应的入站消息来计算得到。为了继续迭代解码处理635,这些比特边消息631在被更新后,被传送给校验引擎640。
然后执行再一次解码迭代。在校验节点处,校验引擎640接收从比特节点(例如,从比特节点630)发送来的经更新的比特边消息631,并据此更新校验边消息。然后,将经更新的校验边消息641传送回比特节点(例如,比特引擎630),在此使用比特度量/LLR 621和校验边消息的当前迭代值计算出比特的软信息632。此后,使用这一刚刚计算出的比特的软信息632,比特引擎630再次使用校验边消息的前一值(来自刚刚的前次迭代)更新比特边消息。依据编码正被解码的信号时所采用的LDPC码二分图,迭代处理635在比特节点和校验节点之间继续进行。
比特节点引擎630和校验节点引擎640所执行的这些迭代解码处理步骤重复进行,直到满足停止标准,如附图标号661所示(例如,已经执行了预定的或自适应确定的迭代次数后,LDPC码的所有校正子都等于零后(例如,所有的奇偶校验均满足),和/或已经满足其它的停止标准)。LDPC解码停止的另一种方式是当LDPC码字的当前估计值满足以下关系时停止:
每次解码迭代过程中,软信息632会在比特引擎630中生成。图中所示的这个实施例中,可将软信息632提供给做出硬判决的硬限幅器(hard limiter)650,而且硬信息(例如,硬/最佳估计值651)可提供给校正子计算器660以确定LDPC码的校正子是否都等于零。也就是说,校正子计算器660基于LDPC码字的当前估计值确定是否与LDPC码相关的每个校正子都等于零。
当校正子不等于零时,再继续迭代解码处理635,适当地在比特节点引擎630和校验节点引擎640之间更新和传递比特边消息和校验边消息。执行完迭代解码处理的所有步骤后,基于软信息632输出该比特的硬/最佳估计值651。
图7示出了消息传递解码处理或置信传播解码处理700的一个实施例以及校验节点、比特节点和低密度奇偶校验矩阵H的行和列之间的关系。这一特殊的低密度奇偶校验矩阵H包括4行和8列。该低密度奇偶校验矩阵H的各行对应于表示该特殊LDPC码的LDPC二分图中的校验节点,该低密度奇偶校验矩阵H的各列对应于表示该特殊LDPC码的LDPC二分图中的比特节点(或变量节点)。从图的左手侧可以看出,该低密度奇偶校验矩阵H内包括有非零值元素(即“1”)和零值元素(即“0”)。对于每次解码迭代,依据LDPC二分图的边连接性在处理模块(例如一个或多个比特引擎到一个或多个校验引擎,反之亦然)之间传递边消息。
从图中可以看出,该低密度奇偶校验矩阵H内的非零值元素对应于LDPC二分图中可选择性地将某些校验节点与某些比特节点互连的边。
每次校验节点更新可通过任意几个可能的计算来执行,包括和-积、最小和(参见以下引用的参考文献[5])、改进最小和(参见以下参考文献[6])和BCJR(参见以下参考文献[7])。计算的选择取决于分配给校验节点更新的区域和等待时间预算。分布式处理LDPC解码器能根据具体的应用使用任何可能的校验节点更新。
[5]Anastasopoulos,A.,“A comparision between the sum-product and themin-sum iterative detection algorithms based on density evolution”,IEEE GlobalTelecommunication Conference,Vol.2,No.25-29,November 2001,pp.1021-1025.
[6]Karkooti,M.,and Cavallaro,J.R.,“Semi-Parallel ReconfigurableArchitectures for Real-Time LDPC Decoding”,Proceedings of the InternationalConference on Information Technology:Coding and Computing,Vol.1,2004,pp.579-585.
[7]Mansour,M.M.,and Shanbhag,N.R.,“Low-Power VLSI DecoderArchitectures for LDPC Codes”,Proceedings of the 2002 International Symposiumon Low Power Electronics and Design,2002,pp.284-289.
还需要注意的是,为了很好的解码性能,二分图中循环周期的长度尽可能的长是很重要的。短的循环周期,例如4循环,可能会降低用于解码LDPC编号信号的消息传递解码方法的性能。
虽然消息传递解码方法的数学计算包括双曲线函数和对数函数(参见等式(5)),在硬件实现中,这些函数也可通过查找表(LUT)逼近或直接通过逻辑门实现。数学计算仅涉及加法、减法和XOR操作。固定点实现中所需的比特的数量由所需的编码性能、解码器收敛的速度以及是否必需压制误码平层(error floor)(如参考文件[8]所描述)来确定。
[8]Zhang,T.,Wang,Z.,and Parhi,K.,“On finite precision implementationof low density parity check codes decoder”,Proceedings of ISCAS,Sydney,Australia,May 2001,pp 202-205.
本申请所提出的新解码方法采用分布式处理LDPC解码器,在每个非零子模块位置使用一个寄存器菊花链。这些寄存器用作校验消息和比特消息的存储器结构。这不同于现有的基于RAM的解码器,基于RAM的解码器包含有RAM以用于每个比特节点以及每个校验节点,如参考文献[9]中所述。
[9]Mansour,M.M,and Shanbhag,N.R.,“High-Throughput LDPC Decoders”,IEEE Transactions on Very Large Scale Integration Systems,Vol.11,No.6,December 2003,pp.976-996.
本申请中提出的新的菊花链方法还不同于以下参考文献[10]中介绍的全并行架构,全并行架构中,从校验节点到比特节点以及从比特节点到校验节点的每一个连接都用线缆和寄存器来示例。
[10]Andrew J.Blanksby and Chris J.Howland,“A 690-mW 1-Gb/s 1024-b,rate-1/2 low density parity-check code decoder”,IEEE Journal of Solid-StateCircuits,Vol.37,No.3,March 2002,pp 404-412.
在本申请介绍的分布式处理LDPC解码器中,寄存器菊花链(以及合适设置的MUX)用于将数据移位一个位置,而不是递增RAM地址(如现有技术中所采用的)。
每个菊花链连接至至少一个校验节点和至少一个比特节点。一条连接包括从菊花链寄存器到节点输入的连接线以及从节点输出到后一菊花链寄存器的写回路径。多个校验节点和/或比特节点可连接至相同的菊花链以增加解码器的吞吐量。
图8示出了一个实施例中用于执行LDPC编码信号的解码的菊花链架构800。考虑图8,菊花链的这一特定实施例(其包括6个寄存器,4个MUX,和2个比特引擎以及2个校验引擎),对于子模块大小为6,具有两个并行校验节点和两个并行比特节点。MUX控制是否校验节点是活动的(例如,在校验节点处理过程中)或是否比特节点是活动的(例如,比特节点处理过程中)。
在一次解码迭代过程中,校验节点更新首先被激活,而比特节点被去激活。校验节点更新/校验节点处理将开始并持续直到整个菊花链填满校验边消息。这时,校验节点更新/校验节点处理将停止,比特节点更新/比特节点处理开始。类似地,比特节点更新/比特节点处理将发生直到整个菊花链存储器结构填满比特边消息。这一过程继续进行直到码字通过了故障校验(syndrome check)、达到最大迭代次数、或一个或多个其它的停止标准/条件被满足。
菊花链寄存器到校验节点和比特节点之间的连接保持静止,这是因为数据是绕着菊花链旋转的。这消除了任何外部的数据移位,同时能够实现校验节点和比特节点两者内的任意并行度。校验节点和比特节点理论上可在每对寄存器之间相加,从而产生全并行解码器。
当每个存储器使用不止一个的校验节点和/或比特节点时,分布式处理LDPC解码器落入被称为半并行架构的这样一类LDPC解码器中(例如,参见参考文献[6])。这样的解码器的优点在于相比串行架构具有改进的吞吐量,但是不会遭遇全并行解码器的路由和面积损失。
图9示出了基于分布式子矩阵的置信传播解码处理或消息传递解码处理的一个实施例900。这个实施例采用多个寄存器存储比特边消息和校验边消息。一个实施例中,解码处理是基于子矩阵执行的。针对低密度奇偶校验矩阵H的子矩阵的每列执行1个比特/变量引擎,针对低密度奇偶校验矩阵H的子矩阵的每行执行1个校验引擎。该架构包括由寄存器和MUX(仅为局部MUX,例如仅具有2个输入的MUX)构成的菊花链。针对每个子矩阵还具有专门的变量/比特和校验引擎输入。所有这些组件提供了增加的并行性。
这一特定实施例对大小为m(行)×n(列)的子矩阵进行操作。从图中可以看出,有m个执行的校验引擎,和n个执行的变量/比特引擎。底行寄存器使用第一校验引擎(例如,校验引擎0),从底行寄存器起算的第二行使用校验引擎1。从顶行寄存器起算的第二行使用校验引擎(m-1)顶行寄存器使用校验引擎m。
图10示出了基于分布式子矩阵的置信传播解码处理或消息传递解码处理的另一个实施例1000。该实施例示出了变量/比特节点i和校验节点j之间的关系和连接性。每次超级迭代(super iteration)内(例如,涉及一次校验节点处理子迭代和一次比特节点处理子迭代),所有的校验边消息和比特边消息被更新。可以看出,此处不需要桶形移位器。该实施例中的唯一的“存储器”需求是多个寄存器和合适设置的MUX。
图11示出了用于执行LDPC编码信号的解码的菊花链架构1100。菊花链架构的这一实施例示出了多个校验引擎(例如,表示为校验节点0、校验节点1等等)和多个比特引擎(例如,表示为变量/比特节点0,变量/比特节点1等等)之间可以使用的连接性。如上所述,多种方法可用于校验节点处理,例如和-积、最小和(参见参考文献[5])、改进最小和(参见参考文献[6])和BCJR(参见参考文献[7])。
这一特定实施例对应于偏移量为3的循环移位单位(CSI)子矩阵。这个实施例中,有9个周期用于变量/比特更新(例如,比特节点处理子迭代),并有9个周期用于校验更新(例如,校验节点处理子迭代)。
图12示出了具有非CSI子矩阵的低密度奇偶校验矩阵H所采用的变量/比特更新顺序1200的实施例的示意图。这个实施例中,针对每个子块或子矩阵,触发器(FF,flip-flop)或寄存器被双重链接/连接成两个单独的菊花链以实现校验节点处理和比特节点处理两者中所使用的子矩阵格式。图12示出了用于变量/比特节点处理的寄存器和MUX之间的连接性。图13示出了用于校验节点处理的寄存器和MUX之间的连接性。
图13是图12所示的具有非CSI子矩阵的低密度奇偶校验矩阵H所采用的校验更新顺序1300的实施例的示意图。可以看出,用于校验节点处理的寄存器和MUX之间可选择的连接性与图12中的变量/比特节点处理的相比稍有不同。由于这个实施例是针对具有至少一个非CSI子矩阵的低密度奇偶校验矩阵H的,菊花链之间具有双重链路/连接,从而一个连接方式用于比特节点处理,另一个连接方式用于校验节点处理。
图14是处理LDPC编码信号的方法的一个实施例1400的流程图。方法1400一开始接收连续时间信号,如步骤1410所示。连续时间信号的接收和处理还包括对第一连续时间信号执行任何必需的下变频转换,从而生成第二连续时间信号,如步骤1412所示。需要执行的任何频率转换可通过从载波频率到基带频率的直接转换来执行。这一频率转换还可通过IF(中频)来执行。不管哪个实施例中,在执行此方法时,接收的连续时间信号都被降频到基带连续时间信号。此外,还可对接收的连续时间信号执行某些类型的增益调节/增益控制。
方法1400还采样第一(或第二)连续时间信号从而生成连连续时间信号并从中提取出I、Q成分,如步骤1420所示。这一采样可使用ADC(模数转换器)或等效的手段来执行,以从经过合适的降频转换(可能的话,还经过滤波、增益调节等等)的连续时间信号生成离散时间信号。该离散时间信号的各个采样样本的I、Q成分也在这个步骤中提取出来。然后方法1400解调I、Q成分并执行I、Q成分的符号映射(例如映射到具有星座点分布图的星座图形),从而生成离散值调制符号序列,如步骤1430所示。
方法1900的下一步骤执行边消息的更新,直到满足停止条件(例如,预定的迭代次数,直到所有校正子都等于零,或直到满足某些其它的停止条件),如步骤1440所示。这一步骤可看作是依据前述的各个实施例执行LDPC解码。该LDPC解码一般包括用于更新比特边消息(例如,变量边消息)的比特引擎处理(如步骤1442所示)以及用于更新校验边消息的校验引擎处理(如步骤1444所示)。此外,方法1400的LDPC解码还包括采用菊花链(例如,寄存器和MUX)以在比特引擎处理和校验引擎处理过程中执行比特边消息和校验边消息的移位以及数据传送,如步骤1446所示。
停止条件满足之后,方法1400基于对应于最近更新的比特边消息的软信息做出硬决策,如步骤1450所示。最后方法1400输出从接收的连续时间信号中提取出的LDPC编码比特(LDPC码字,或LDPC码块)(其包含有信息比特)的最佳估计值,如步骤1460所示。
在本申请所公开的内容中,需要注意的是,一旦低密度奇偶校验矩阵H可用于通信信道接收端的解码处理,便可从该低密度奇偶校验矩阵H中直接生成LDPC码的对应的生成矩阵G。有了这一信息,设计者便可在通信信道的发送端执行编码处理(使用LDPC码的生成矩阵G),并在该通信信号的接收端执行解码处理(使用LDPC码的低密度奇偶校验矩阵H)。实际上,从低密度奇偶校验矩阵H中直接定义LDPC码是现有技术中常用的。换句话说,低密度奇偶校验矩阵H包含有定义LDPC码所需的所有信息。
图15示出了包括具有多LDPC码能力的通信设备1510的实施例1500。某些时候,期望有一个连接至通信信道1501的通信设备1510,能解码不同的LDPC编码信号,使得每个LDPC编码信号都是依据不同的低密度奇偶校验矩阵H生成的。例如,某些时候,通信设备需要接收和解码具有对应的第一低密度奇偶校验矩阵H1的第一信号,具有对应的第二低密度奇偶校验矩阵H2的第二信号,等等。
据此,通信设备1510包括多个不同的菊花链,对应于不同的LDPC码。选择器模块1520用于选择合适的菊花链用于解码特定的LDPC编码信号。例如,选择器模块1520选择第一菊花链用于解码对应于第一低密度奇偶校验矩阵H1的第一信号,如标号1511所示。选择器模块1520选择第二菊花链用于解码对应于第二低密度奇偶校验矩阵H2的第二信号,如标号1512所示。选择器模块1520还选择第三菊花链用于解码对应于第三低密度奇偶校验矩阵H3的第三信号,如标号1513所示,等等。一般来说,选择器模块1520可选择第n个菊花链用于解码对应于第n个低密度奇偶校验矩阵Hn的第n个信号,如标号1519所示。
图16示出了包括具有多LDPC码能力的通信设备1610的实施例1600。同样如上所述,某些时候,期望有一个连接至通信信道1601的通信设备1610,能解码不同的LDPC编码信号,使得每个LDPC编码信号都是依据不同的低密度奇偶校验矩阵H生成的。例如,某些时候,通信设备需要接收和解码具有对应的第一低密度奇偶校验矩阵H1的第一信号,具有对应的第二低密度奇偶校验矩阵H2的第二信号,等等。
据此,通信设备1610包括一组寄存器1699,且菊花链的寄存器(以及合适的复用器)之间的连接性/链路是根据采用哪个低密度奇偶校验矩阵H来解码特定LDPC编码信号进行变化的。图15的实施例包括多个专用的菊花链,而图16的实施例采用相同的一组寄存器,但是基于特定时间哪个低密度奇偶校验矩阵H正被采用来通过菊花链的必要链路修改连接性。
虽然图16的实施例可能会增加所需的MUX的数量和大小(例如,可能不仅仅需要两输入型MUX),与对每个不同的LDPC码执行单独且不同的寄存器菊花链相比(如图15所示),这一实施例仍然具有较低的硬件需求。还应注意,图16的实施例不仅能用于支持多码,还能使用相同的一组寄存器1699适用于具有不同子矩阵大小的LDPC码。这是可以通过修改菊花链的寄存器(以及任何合适的复用)之间的接连性/链路来简单的实现的。
选择器模块1620用于在解码特定LDPC编码信号时选择菊花链内的合适连接性/链路和复用。例如,选择器模块1620可选择第一连接性/链路和复用用于解码对应于第一低密度奇偶校验矩阵H1的第一信号,如标号1611所示。菊花链内的连接性/链路和复用便基于对应于标号1611的这一选择被合适地设置。
选择器模块1620可选择第二连接性/链路和复用用于解码对应于第二低密度奇偶校验矩阵H2的第二信号,如标号1612所示。菊花链内的连接性/链路和复用便基于对应于标号1612的这一选择被合适地设置。
同样地,选择器模块1620可选择第三连接性/链路和复用用于解码对应于第三低密度奇偶校验矩阵H3的第三信号,如标号1613所示。菊花链内的连接性/链路和复用便基于对应于标号1613的这一选择被合适地设置。
总的来说,选择器模块1620可选择第n个连接性/链路和复用用于解码对应于第n个低密度奇偶校验矩阵Hn的第n个信号,如标号1619所示。菊花链内的连接性/链路和复用便基于对应于标号1619的这一选择被合适地设置。
依据本申请中介绍的菊花链实现的LDPC解码器的吞吐量,以每次迭代的周期数来表示,可以定义为:
其中:
:x的天棚函数(ceiling function),或是在x不是整数值时将x的浮点值上舍入成最接近的整数值所得到的结果(例如,是在不是整数值时将的浮点值上舍入成最接近的整数值所得到的结果;是在不是整数时将的浮点值上舍入成最接近的整数值所得到的结果);
Z:子矩阵或子块的大小;
pipevar/bit:菊花链的比特节点处理配置的管线阶的数量;
parvar/bit:菊花链的比特节点处理配置的并行因子;
pipechk:菊花链的校验节点处理配置的管线阶的数量;
parchk:菊花链的校验节点处理配置的并行因子。
应注意,在开始准备校验节点时需要一些初始化时间(例如,使用接收的信号值来提供用于第一校验节点处理子迭代步骤的比特边消息的初始值)。该初始化/启动时间等于个周期(又如以下等式所示)。在此初始化/启动过程中,使用比特/变量节点输出作为存储器的启动源。
执行每个块的解码处理的周期数可由下式给出:
总的来说,本申请介绍的菊花链配置提供了一种方法,通过该方法,设计者可将集成电路的面积折衷为期望和/或需要的吞吐量的函数,并具有较高的粒度(with a higher degree of granularity)。
本发明的新解码LDPC编码信号的方法提供了很多固有特性。例如,将本申请介绍的采用菊花链配置的新方法与全并行LDPC解码器(实现为包括有用于校验节点和比特节点之间的每个连接的消息线,如参考文献[10]所描述的)相比,可以看出,全并行LDPC解码器会产生最优吞吐量但是会产生不期望的路由拥塞并导致大的面积。本申请使用菊花链配置的新解码方法不会产生这些不利的影响。
此外,将本申请介绍的采用菊花链配置的新方法与全并行LDPC解码器进行比较,注意到,全并行设计已经被证实对大的编码长度(大于1000比特)不可用,因为面积和路由复杂度不允许(参见参考文献[6])。
串行LDPC解码器由单个校验节点和单个比特节点组成。解码过程中,该单个校验节点顺序地处理奇偶校验矩阵内的每行。基于校验节点更新的结论,比特节点顺序地处理奇偶校验矩阵内的每列。这样一种设计的吞吐量对大多数实际应用来说都太小了。
已有几种针对半并行LDPC解码器的公开设计(参见参考文献[6]和以下的参考文献[11])。
[11]Zhong,H.,and Zhang,T.,“Block-LDPC:A Practical LDPC CodingSystem Design Approach”,IEEE Transactions on Circuits and Systems,Vol.52,No.4,April 2005,pp.766-755.
这些半并行LDPC解码设计使用RAM代表对应任何给定子块的校验边消息。RAM可存储校验边消息或比特边消息,这取决于子迭代的阶段(例如,是在执行校验节点处理或是在执行比特节点处理)。这些半并行LDPC解码器的并行度在一个处理器中基于每个子块是固定的,这导致对应大部分实际应用来说吞吐量不够。这种设计的另一个缺点是,需要ROM(或某些其它存储器类型的设备)来存储低密度奇偶校验矩阵H内的子块位移。
这些不足都通过本申请的菊花链架构所消除了,这是因为,尽管与SRAM方法一样有存储器需求,但是不需要任何大的扇入MUX或桶形移位器,并且菊花链本身是执行边消息移位的器件。
此外,本申请中用于解码LDPC编码信号的菊花链架构所提供的固有的好处和优点中的另一点是,它可以精确地调节以符合目标应用的性能需求。具体来说,该架构允许任何数量的比特节点和校验节点来并行执行处理。这与将比特节点和校验节点限制为每个子块一个的半并行LDPC解码器(参见参考文献[6]和参考文献[11])正好相反。
全并行LDPC解码器(参见参考文献[10])对于大码字来说太拥塞且面积太大(参见参考文献[6])。
但是,通过本申请中使用菊花链架构的分布式处理架构,对于给定应用,并行度可以减少到面积和拥塞变得可管理和/或适合于(可接受)的程度。
本申请的菊花链架构还不包含任何桶形移位器或高扇入复用器(如上所述)。因此,关键路径相对很短并且可通过管线实现以增加数据吞吐量。
此外,通信设备内未使用的处理节点(例如,未使用的比特引擎和/或校验引擎)以及菊花链寄存器可置入睡眠模式以省电。这一技术可用于执行各种类型的LDPC编码信号的解码(例如,在解码LDPC编码信号1、LDPC编码信号2等等时可使用多个低密度奇偶校验矩阵H1、H2等等)和/或变化子块大小(如上面图15所述)的应用。
还应注意,依据本发明构建的分布式处理LDPC解码器内所采用的新颖的菊花链架构/消息结构可适用于针对同一基础奇偶矩阵变化子块大小的系统。这种系统的一个例子可在IEEE 802.16e标准中找到。
当需要大的子块大小时,菊花链扩展到包含额外的边消息。额外的校验和比特节点(例如,额外的校验和比特引擎)连接到菊花链的扩展部分以处理额外的边消息。当选择了较小的子块大小时,可以将菊花链的扩展部分以及与其连接的比特和校验节点置入睡眠模式以在通信设备内省电。
分布式处理LDPC解码器的菊花链架构在并行度上是高度可调的,这使其适合于需要不同级别的吞吐量和芯片面积的各种范围内的应用。从1到子块大小的任何数量的比特节点和校验节点可并行使用。还应注意,比特节点(例如,比特引擎)的数量不需与校验节点(例如,校验引擎)的数量相同。
这样的使用菊花链原理构建的分布式处理LDPC解码器可以被需要LDPC解码的任何应用所考虑,包括IEEE 802.3an、IEEE 802.11n、IEEE 802.20和/或DVB-S2以及其它应用。使用这一创新架构,设计者能够在多种现代设计中提供最小的并行度以满足吞吐量需求,同时还省电并节省通信设备和/或通信系统的面积。
需要注意的是,本申请中所描述的各个模块(例如,编码模块、解码模块、比特引擎、校验引擎等)可以是单个处理设备或多个处理设备。这样的处理器可以是微处理器、微控制器、数字信号处理器、微型计算机、中央处理单元、现场可编程门阵列、可编程逻辑器件、状态机、逻辑电路、模拟电路、数字电路和/或基于操作指令处理信号(模拟的和/或数字的)的任何器件。操作指令可存储在存储器中。该存储器可以是单个存储设备或多个存储设备。这样的存储设备可以是只读存储器、随机访问存储器、易失存储器、非易失存储器、静态存储器、动态存储器、闪存和/或存储数字信息的任何设备。注意,当处理设备通过状态机、模拟电路、数字电路和/或逻辑电路执行其一种或多种功能时,存储对应操作指令的存储器嵌入在包括状态机、模拟电路、数字电路和/或逻辑电路的电路内。这样的实施例中,存储器存储操作指令,处理模块连接至存储器以执行操作指令,该操作指令对应于以上描述的步骤和/或功能中的至少一部分。
本发明通过借助方法步骤展示了本发明的特定功能及其关系。所述方法步骤的范围和顺序是为了便于描述任意定义的。只要能够执行特定的功能和顺序,也可应用其它界限和顺序。任何所述或选的界限或顺序因此落入本发明的范围和精神实质。
本发明还借助功能模块对某些重要的功能进行了描述。所述功能模块的界限和各种功能模块的关系是为了便于描述任意定义的。只要能够执行特定的功能,也可应用其它的界限或关系。所述其它的界限或关系也因此落入本发明的范围和精神实质。
本领域普通技术人员还可知,本申请中的功能模块和其它展示性模块和组件可实现为离散组件、专用集成电路、执行恰当软件的处理器和前述的任意组合。
此外,尽管以上是通过一些实施例对本发明进行的描述,本领域技术人员知悉,本发明不局限于这些实施例,在不脱离本发明的精神和范围的情况下,可以对这些特征和实施例进行各种改变或等效替换。本发明的保护范围仅由本申请的权利要求书来限定。
Claims (10)
1.一种解码LDPC编码信号的解码器,其特征在于,所述解码器包括:
配置在菊花链架构内的多个寄存器和多个复用器,其中,所述多个寄存器用于存储比特边消息和校验边消息,所述多个复用器插入在所述多个寄存器之间;
校验引擎,其采用第一比特边消息更新第一校验边消息,从而生成第二校验边消息;
比特引擎,其:
采用所述第二校验边消息更新第二比特边消息从而生成第三比特边消息;
采用所述第三比特边消息生成软信息,所述软信息对应于编码在所述LDPC编码信号内的信息比特;且其中:
所述对应于编码在所述LDPC编码信号内的信息比特的软信息被用于做出对编码在所述LDPC编码信号内的信息比特的最佳估计;
所述多个寄存器中的每个寄存器对应于生成LDPC编码信号的LDPC码的奇偶校验矩阵的子矩阵内的非零位置;
所述多个寄存器中的每个寄存器用于将其内的校验边消息或比特边消息移位一个位置;
比特节点处理过程中,第一选定信号被提供给插入在所述多个寄存器之间的多个复用器以确保校验边消息从所述多个寄存器中的至少一个寄存器提供给比特引擎;以及
校验节点处理过程中,第二选定信号被提供给插入在所述多个寄存器之间的多个复用器以确保比特边消息从所述多个寄存器中的至少一个寄存器提供给校验引擎。
2.根据权利要求1所述的解码器,其特征在于,所述解码器进一步包括:
包含所述校验引擎的多个校验引擎;
包含所述比特引擎的多个比特引擎;
其中,所述多个寄存器基于生成LDPC编码信号的LDPC码的奇偶校验矩阵内的非零位置,硬连线连接至所述多个比特引擎和所述多个校验引擎。
3.根据权利要求1所述的解码器,其特征在于,所述生成LDPC编码信号的LDPC码的奇偶校验矩阵包括多个循环移位单位子矩阵。
4.根据权利要求1所述的解码器,其特征在于,所述生成LDPC编码信号的LDPC码的奇偶校验矩阵包括多个非循环移位单位子矩阵。
5.根据权利要求1所述的解码器,其特征在于,所述生成LDPC编码信号的LDPC码的奇偶校验矩阵包括至少一个循环移位单位子矩阵和至少一个非循环移位单位子矩阵。
6.一种解码LDPC编码信号的解码器,其特征在于,所述解码器包括:
配置在菊花链架构内的多个寄存器和多个复用器,其中,所述多个寄存器用于存储比特边消息和校验边消息,所述多个复用器插入在所述多个寄存器之间;
多个校验引擎,其采用第一多个比特边消息更新第一多个校验边消息,从而生成第二多个校验边消息;
多个比特引擎,其:
采用所述第二多个校验边消息更新第二多个比特边消息从而生成第三多个比特边消息;
采用所述第三多个比特边消息生成软信息,所述软信息对应于编码在所述LDPC编码信号内的至少一个信息比特;且其中:
所述对应于编码在所述LDPC编码信号内的至少一个信息比特的软信息被用于做出对编码在所述LDPC编码信号内的所述至少一个信息比特的最佳估计;
所述多个寄存器中的每个寄存器对应于生成LDPC编码信号的LDPC码的奇偶校验矩阵的子矩阵内的非零位置;
所述多个寄存器中的每个寄存器用于将其内的校验边消息或比特边消息移位一个位置;
比特节点处理过程中,第一选定信号被提供给插入在所述多个寄存器之间的多个复用器以确保校验边消息从所述多个寄存器中的至少一个寄存器提供给比特引擎;以及
校验节点处理过程中,第二选定信号被提供给插入在所述多个寄存器之间的多个复用器以确保比特边消息从所述多个寄存器中的至少一个寄存器提供给校验引擎;
所述多个寄存器基于生成LDPC编码信号的LDPC码的奇偶校验矩阵内的非零位置,硬连线连接至所述多个比特引擎和所述多个校验引擎;
所述解码器执行置信传播解码处理或消息传递解码处理。
7.根据权利要求6所述的解码器,其特征在于,所述生成LDPC编码信号的LDPC码的奇偶校验矩阵包括多个循环移位单位子矩阵。
8.根据权利要求6所述的解码器,其特征在于,所述生成LDPC编码信号的LDPC码的奇偶校验矩阵包括多个非循环移位单位子矩阵。
9.一种解码器,实现在集成电路内,用于解码LDPC编码信号,其特征在于,所述集成电路包括:
配置在菊花链架构内的多个寄存器和多个复用器,其中,所述多个寄存器用于存储比特边消息和校验边消息,所述多个复用器插入在所述多个寄存器之间;
校验引擎,其采用第一比特边消息更新第一校验边消息,从而生成第二校验边消息;
比特引擎,其:
采用所述第二校验边消息更新第二比特边消息从而生成第三比特边消息;
采用所述第三比特边消息生成软信息,所述软信息对应于编码在所述LDPC编码信号内的信息比特;且其中:
所述对应于编码在所述LDPC编码信号内的信息比特的软信息被用于做出对编码在所述LDPC编码信号内的信息比特的最佳估计;
所述多个寄存器中的每个寄存器对应于生成LDPC编码信号的LDPC码的奇偶校验矩阵的子矩阵内的非零位置;
所述多个寄存器中的每个寄存器用于将其内的校验边消息或比特边消息移位一个位置;
比特节点处理过程中,第一选定信号被提供给插入在所述多个寄存器之间的多个复用器以确保校验边消息从所述多个寄存器中的至少一个寄存器提供给比特引擎;以及
校验节点处理过程中,第二选定信号被提供给插入在所述多个寄存器之间的多个复用器以确保比特边消息从所述多个寄存器中的至少一个寄存器提供给校验引擎;
所述多个寄存器基于生成LDPC编码信号的LDPC码的奇偶校验矩阵内的非零位置,硬连线连接至所述比特引擎和所述校验引擎;
所述生成LDPC编码信号的LDPC码的奇偶校验矩阵包括多个矩形子矩阵。
10.根据权利要求9所述的解码器,其特征在于,所述生成LDPC编码信号的LDPC码的奇偶校验矩阵包括多个循环移位单位子矩阵。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US95801407P | 2007-07-02 | 2007-07-02 | |
US60/958,014 | 2007-07-02 | ||
US11/828,532 US7958429B2 (en) | 2007-07-02 | 2007-07-26 | Distributed processing LDPC (low density parity check) decoder |
US11/828,532 | 2007-07-26 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101340194A CN101340194A (zh) | 2009-01-07 |
CN101340194B true CN101340194B (zh) | 2011-08-17 |
Family
ID=39720190
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101304615A Expired - Fee Related CN101340194B (zh) | 2007-07-02 | 2008-07-01 | 解码ldpc编码信号的解码器 |
Country Status (6)
Country | Link |
---|---|
US (2) | US7958429B2 (zh) |
EP (1) | EP2012433A3 (zh) |
KR (1) | KR100975547B1 (zh) |
CN (1) | CN101340194B (zh) |
HK (1) | HK1127826A1 (zh) |
TW (1) | TWI406508B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10171571B2 (en) | 2012-02-22 | 2019-01-01 | International Business Machines Corporation | Determining and assigning a default value to a current server response if the current server response is not received from the server within a time-limit |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7617439B2 (en) * | 2005-01-10 | 2009-11-10 | Broadcom Corporation | Algebraic construction of LDPC (Low Density Parity Check) codes with corresponding parity check matrix having CSI (Cyclic Shifted Identity) sub-matrices |
JP5057925B2 (ja) * | 2007-10-18 | 2012-10-24 | 株式会社日立製作所 | デジタル情報再生方法 |
JP4626827B2 (ja) * | 2007-10-19 | 2011-02-09 | ソニー株式会社 | 受信装置および方法、並びにプログラム |
CN101272150B (zh) * | 2008-05-14 | 2010-09-29 | 中兴通讯股份有限公司 | 一种低密度生成矩阵码的译码方法及装置 |
US20090319860A1 (en) * | 2008-06-23 | 2009-12-24 | Ramot At Tel Aviv University Ltd. | Overcoming ldpc trapping sets by decoder reset |
US8370711B2 (en) * | 2008-06-23 | 2013-02-05 | Ramot At Tel Aviv University Ltd. | Interruption criteria for block decoding |
US8341492B2 (en) * | 2008-07-28 | 2012-12-25 | Broadcom Corporation | Quasi-cyclic LDPC (low density parity check) code construction |
US8219873B1 (en) | 2008-10-20 | 2012-07-10 | Link—A—Media Devices Corporation | LDPC selective decoding scheduling using a cost function |
TWI469533B (zh) * | 2008-11-07 | 2015-01-11 | Realtek Semiconductor Corp | 同位檢查碼解碼器及接收系統 |
JP5440836B2 (ja) * | 2009-03-24 | 2014-03-12 | ソニー株式会社 | 受信装置及び方法、プログラム、並びに受信システム |
US8407555B2 (en) * | 2009-03-30 | 2013-03-26 | Broadcom Corporation | LDPC codes robust to non-stationary narrowband ingress noise |
EP2320574B1 (en) * | 2009-08-21 | 2019-10-09 | Avago Technologies International Sales Pte. Limited | Header encoding for single carrier (SC) and/or orthogonal frequency division multiplexing (OFDM) using shortening, puncturing, and/or repetition |
US8918696B2 (en) | 2010-04-09 | 2014-12-23 | Sk Hynix Memory Solutions Inc. | Implementation of LDPC selective decoding scheduling |
IT1402261B1 (it) * | 2010-06-29 | 2013-08-28 | St Microelectronics Srl | Metodo di decodifica list e relativo decoder per codici ldpc |
JP5790029B2 (ja) * | 2011-03-01 | 2015-10-07 | ソニー株式会社 | 復号装置、復号方法、およびプログラム |
KR102000268B1 (ko) * | 2012-02-10 | 2019-07-16 | 연세대학교 산학협력단 | 복호화 장치 및 복호화 방법 |
KR102068030B1 (ko) * | 2012-12-11 | 2020-01-20 | 삼성전자 주식회사 | 메모리 컨트롤러 및 그 동작방법 |
RU2549134C1 (ru) * | 2013-10-10 | 2015-04-20 | Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Юго-Западный государственный университет" (ЮЗ ГУ) | Устройство декодирования ldpc-кодов |
US9489256B2 (en) | 2013-11-07 | 2016-11-08 | Seagate Technology Llc | Device quality metrics using unsatisfied parity checks |
US9722633B2 (en) * | 2015-02-11 | 2017-08-01 | Mitsubishi Electric Research Laboratories, Inc. | Method and system for reliable data communications with adaptive multi-dimensional modulations for variable-iteration decoding |
KR20160102738A (ko) * | 2015-02-23 | 2016-08-31 | 에스케이하이닉스 주식회사 | 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법 |
US10001999B2 (en) * | 2015-03-13 | 2018-06-19 | Cavium, Inc. | System and method for configuring a plurality of registers with soft error detection and low wiring complexity |
US10382064B2 (en) * | 2015-10-13 | 2019-08-13 | SK Hynix Inc. | Efficient LDPC encoder for irregular code |
TWI573147B (zh) * | 2015-11-05 | 2017-03-01 | 大心電子股份有限公司 | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 |
US9793923B2 (en) * | 2015-11-24 | 2017-10-17 | Texas Instruments Incorporated | LDPC post-processor architecture and method for low error floor conditions |
US10778371B2 (en) * | 2016-11-02 | 2020-09-15 | Qualcomm Incorporated | Deeply-pipelined high-throughput LDPC decoder architecture |
CN109213614B (zh) * | 2017-06-30 | 2022-03-29 | 群联电子股份有限公司 | 解码方法、存储器存储装置及存储器控制电路单元 |
CN109952729B (zh) * | 2019-01-31 | 2021-12-03 | 香港应用科技研究院有限公司 | 并行ldpc解码器 |
WO2022047699A1 (en) * | 2020-09-03 | 2022-03-10 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for improved belief propagation based decoding |
US11929762B2 (en) * | 2021-11-24 | 2024-03-12 | Samsung Electronics Co., Ltd. | Low density parity check decoder and storage device |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050003756A1 (en) * | 2003-07-03 | 2005-01-06 | Feng-Wen Sun | Encoding low density parity check (LDPC) codes through an LDPC decoder |
CN1767397A (zh) * | 2004-10-12 | 2006-05-03 | 三星电子株式会社 | 低密度奇偶校验码的高效解码装置和方法 |
CN1856976A (zh) * | 2003-08-08 | 2006-11-01 | 英特尔公司 | 使用低密度奇偶校验前向纠错进行自适应位加载 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3542756A (en) * | 1968-02-07 | 1970-11-24 | Codex Corp | Error correcting |
US3665396A (en) * | 1968-10-11 | 1972-05-23 | Codex Corp | Sequential decoding |
US4295218A (en) * | 1979-06-25 | 1981-10-13 | Regents Of The University Of California | Error-correcting coding system |
US6430233B1 (en) * | 1999-08-30 | 2002-08-06 | Hughes Electronics Corporation | Single-LNB satellite data receiver |
US6473010B1 (en) * | 2000-04-04 | 2002-10-29 | Marvell International, Ltd. | Method and apparatus for determining error correction code failure rate for iterative decoding algorithms |
US6567465B2 (en) * | 2001-05-21 | 2003-05-20 | Pc Tel Inc. | DSL modem utilizing low density parity check codes |
US6633856B2 (en) * | 2001-06-15 | 2003-10-14 | Flarion Technologies, Inc. | Methods and apparatus for decoding LDPC codes |
US6789227B2 (en) * | 2001-07-05 | 2004-09-07 | International Business Machines Corporation | System and method for generating low density parity check codes using bit-filling |
US6895547B2 (en) * | 2001-07-11 | 2005-05-17 | International Business Machines Corporation | Method and apparatus for low density parity check encoding of data |
US7246304B2 (en) * | 2001-09-01 | 2007-07-17 | Dsp Group Inc | Decoding architecture for low density parity check codes |
KR100419614B1 (ko) | 2001-10-30 | 2004-02-25 | 삼성전기주식회사 | 5ghz 무선랜 및 2.4ghz 무선랜 통합형 억세스포인트 |
US7178080B2 (en) * | 2002-08-15 | 2007-02-13 | Texas Instruments Incorporated | Hardware-efficient low density parity check code for digital communications |
US7702986B2 (en) * | 2002-11-18 | 2010-04-20 | Qualcomm Incorporated | Rate-compatible LDPC codes |
KR100502608B1 (ko) * | 2002-12-24 | 2005-07-20 | 한국전자통신연구원 | 계산이 간단한 저밀도 패리티 검사 부호를 위한 메시지 전달 복호기 |
KR100762619B1 (ko) | 2004-05-21 | 2007-10-01 | 삼성전자주식회사 | 저밀도 패리티 검사 코드를 이용한 복호화 장치 및 방법 |
CN100490334C (zh) * | 2005-01-10 | 2009-05-20 | 美国博通公司 | 构建和选择基于grs不规则ldpc码的方法 |
US7617439B2 (en) * | 2005-01-10 | 2009-11-10 | Broadcom Corporation | Algebraic construction of LDPC (Low Density Parity Check) codes with corresponding parity check matrix having CSI (Cyclic Shifted Identity) sub-matrices |
US7661055B2 (en) * | 2005-12-05 | 2010-02-09 | Broadcom Corporation | Partial-parallel implementation of LDPC (Low Density Parity Check) decoders |
US20090003379A1 (en) * | 2007-06-27 | 2009-01-01 | Samsung Electronics Co., Ltd. | System and method for wireless communication of uncompressed media data having media data packet synchronization |
US20080273600A1 (en) * | 2007-05-01 | 2008-11-06 | Samsung Electronics Co., Ltd. | Method and apparatus of wireless communication of uncompressed video having channel time blocks |
-
2007
- 2007-07-26 US US11/828,532 patent/US7958429B2/en active Active
-
2008
- 2008-06-05 EP EP08010276.7A patent/EP2012433A3/en not_active Withdrawn
- 2008-07-01 KR KR1020080063497A patent/KR100975547B1/ko not_active IP Right Cessation
- 2008-07-01 CN CN2008101304615A patent/CN101340194B/zh not_active Expired - Fee Related
- 2008-07-02 TW TW97124955A patent/TWI406508B/zh not_active IP Right Cessation
-
2009
- 2009-06-09 HK HK09105148A patent/HK1127826A1/xx not_active IP Right Cessation
-
2011
- 2011-04-28 US US13/096,114 patent/US8171375B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050003756A1 (en) * | 2003-07-03 | 2005-01-06 | Feng-Wen Sun | Encoding low density parity check (LDPC) codes through an LDPC decoder |
CN1856976A (zh) * | 2003-08-08 | 2006-11-01 | 英特尔公司 | 使用低密度奇偶校验前向纠错进行自适应位加载 |
CN1767397A (zh) * | 2004-10-12 | 2006-05-03 | 三星电子株式会社 | 低密度奇偶校验码的高效解码装置和方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10171571B2 (en) | 2012-02-22 | 2019-01-01 | International Business Machines Corporation | Determining and assigning a default value to a current server response if the current server response is not received from the server within a time-limit |
Also Published As
Publication number | Publication date |
---|---|
US20110202816A1 (en) | 2011-08-18 |
EP2012433A3 (en) | 2015-05-27 |
TW200922152A (en) | 2009-05-16 |
HK1127826A1 (en) | 2009-10-09 |
CN101340194A (zh) | 2009-01-07 |
KR100975547B1 (ko) | 2010-08-16 |
EP2012433A2 (en) | 2009-01-07 |
US8171375B2 (en) | 2012-05-01 |
US20090013237A1 (en) | 2009-01-08 |
KR20090004652A (ko) | 2009-01-12 |
US7958429B2 (en) | 2011-06-07 |
TWI406508B (zh) | 2013-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101340194B (zh) | 解码ldpc编码信号的解码器 | |
CN101388746B (zh) | 解码ldpc编码信号的解码器及方法 | |
CN101159436B (zh) | 解码设备及方法 | |
US8185797B2 (en) | Basic matrix, coder/encoder and generation method of the low density parity check codes | |
US8578236B2 (en) | Accumulating LDPC (low density parity check) decoder | |
CN1855731B (zh) | 解码装置及解码方法 | |
EP3457575B1 (en) | Encoding method and device and decoding method and device for structured ldpc | |
KR101158919B1 (ko) | 복호 방법 및 복호 장치, 및 기록 매체 | |
CN101534166B (zh) | 准循环低密度奇偶校验码解码器及解码方法 | |
US8281205B2 (en) | LDPC decoding apparatus, decoding method and program | |
US8234555B2 (en) | Data decoding apparatus, data decoding method, data transmitting/receiving system, data receiving apparatus, data receiving method and program | |
CN101295988B (zh) | 解码设备 | |
US9548759B1 (en) | Systems and methods for processing LDPC codes with different circulant sizes | |
CN101208864B (zh) | 解码装置及解码方法 | |
CN104868925A (zh) | 结构化ldpc码的编码方法、译码方法、编码装置和译码装置 | |
US20090013239A1 (en) | LDPC (Low Density Parity Check) decoder employing distributed check and/or variable node architecture | |
US11258460B2 (en) | Method and apparatus for vertical layered decoding of quasi-cyclic low-density parity check codes built from clusters of circulant permutation matrices | |
Chen et al. | Hardware implementation of a backtracking-based reconfigurable decoder for lowering the error floor of quasi-cyclic LDPC codes | |
EP2991231A1 (en) | Multilevel encoding and multistage decoding | |
CN101364809B (zh) | 解码器 | |
Lao et al. | The improved Turbo-decoding Message-passing algorithm and corresponding decoder for LDPC based on LTE | |
CN112470406A (zh) | 用于针对非二进制码的消息传递解码的基本校验节点处理的排序设备和方法 | |
Blad et al. | Rate-compatible LDPC code decoder using check-node merging |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1127826 Country of ref document: HK |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: GR Ref document number: 1127826 Country of ref document: HK |
|
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110817 Termination date: 20140701 |
|
EXPY | Termination of patent right or utility model |