CN101079639B - 基于节点存储器的低密度奇偶校验解码装置和方法 - Google Patents
基于节点存储器的低密度奇偶校验解码装置和方法 Download PDFInfo
- Publication number
- CN101079639B CN101079639B CN2007101288834A CN200710128883A CN101079639B CN 101079639 B CN101079639 B CN 101079639B CN 2007101288834 A CN2007101288834 A CN 2007101288834A CN 200710128883 A CN200710128883 A CN 200710128883A CN 101079639 B CN101079639 B CN 101079639B
- Authority
- CN
- China
- Prior art keywords
- node
- memory
- message
- check
- limit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/116—Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B65—CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
- B65D—CONTAINERS FOR STORAGE OR TRANSPORT OF ARTICLES OR MATERIALS, e.g. BAGS, BARRELS, BOTTLES, BOXES, CANS, CARTONS, CRATES, DRUMS, JARS, TANKS, HOPPERS, FORWARDING CONTAINERS; ACCESSORIES, CLOSURES, OR FITTINGS THEREFOR; PACKAGING ELEMENTS; PACKAGES
- B65D35/00—Pliable tubular containers adapted to be permanently or temporarily deformed to expel contents, e.g. collapsible tubes for toothpaste or other plastic or semi-liquid material; Holders therefor
- B65D35/24—Pliable tubular containers adapted to be permanently or temporarily deformed to expel contents, e.g. collapsible tubes for toothpaste or other plastic or semi-liquid material; Holders therefor with auxiliary devices
- B65D35/32—Winding keys
-
- A—HUMAN NECESSITIES
- A47—FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
- A47K—SANITARY EQUIPMENT NOT OTHERWISE PROVIDED FOR; TOILET ACCESSORIES
- A47K5/00—Holders or dispensers for soap, toothpaste, or the like
- A47K5/06—Dispensers for soap
- A47K5/12—Dispensers for soap for liquid or pasty soap
- A47K5/1211—Dispensers for soap for liquid or pasty soap using pressure on soap, e.g. with piston
-
- 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
-
- 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/6566—Implementations concerning memory access contentions
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Mechanical Engineering (AREA)
- Health & Medical Sciences (AREA)
- Public Health (AREA)
- Error Detection And Correction (AREA)
Abstract
提供了一种用于在通信系统中解码低密度奇偶校验(LDPC)码的装置。在该LDPC解码装置中,边存储器,用于存储通过边在变量节点和校验节点之间传递的消息。校验节点存储器,用于存储节点值。节点处理器,用于利用存储在节点存储器和边存储器的至少一个中的信息来执行节点处理操作,在节点存储器中存储通过执行所述节点处理操作产生的校验节点值,以及在边存储器中存储通过执行所述节点处理操作而产生的消息。切换器,用于通过置换操作切换节点存储器与节点处理器的输出。奇偶校验验证器,用于对来自节点存储器的输出进行奇偶校验。控制器,用于提供用于控制节点处理器的控制信号。
Description
技术领域
本发明一般涉及低密度奇偶校验(Low-Density Parity Check,LDPC)解码器,并且具体涉及基于节点(node)存储器结构的高效LDPC解码装置和方法。
背景技术
首先由Gallager提出并由Mackay再研究的LDPC码最近已经作为下述码而引起人们注意,所述码通过基于和-积(sum-product)算法的置信传播解码能够展示逼近香农(Shannon)容量极限(capacity limit)的优越性能。
此后,Richardson等提出了这样一种密度演化技术(density evolutiontechnique),该密度演化技术对组成了LDPC码的因子图(factor graph)中的在解码处理期间所产生和更新的消息的概率分布的变化进行追踪。此外,对于在无环(cycle-free)因子图中的无限迭代,Richardson等提出了在因子图中变量(variable)和校验节点的度数分布,其可以使能够使错误概率收敛到0的信道参数(例如,阈值)最大化。更进一步地,Richardson等已经在理论上展示了甚至可以应用这样的情况到有环的有限长度的LDPC码。Richardson等亦已经展示了利用密度演化技术不规则LDPC码的理论信道容量能够逼近香农容量极限高达0.0045dB。
LDPC码可能会增加编码/解码处理的复杂度,因为它的性能随着包大小的增加而增加。最近,Flarion公司已经提出了一种即使对于大型包大小的也能够以低硬件复杂度实现的多边(multi-edge)型矢量LDPC码。例如块LDPC(BLDPC)码这样的矢量LDPC码是下面这样的码,即使用例如校验矩阵这样的小型基H矩阵,也能够通过矢量化结构的并行实现来实现用于这种码的高效编码器/解码器。正在讨论由于BLDPC码的并行因子所造成的并行实现作为数据速率大幅提高的下一代移动通信系统中的基础码的可能替换方案,因为与例如turbo码和卷积码之类的其他码相比,BLDPC码能够实现更高吞吐量的解码器。
LDPC码是通用线性块码的一种特殊情况,并且其被定义为奇偶校验矩阵。
图1是描述通用LDPC码的Tanner图以及奇偶校验矩阵的图解。在图1中,示出了用于2个信息位以及3个奇偶校验位的Tanner图以及奇偶校验矩阵H。
参考图1,在Tanner图中,变量节点表示码字的位,并且校验节点表示一个校验等式。因此,变量节点的数量N表示码字的长度,即H矩阵的列大小,并且校验节点的数量R表示奇偶校验位的数量,即H矩阵的行大小。因此,在图1中示出的是速率=2/5的LDPC码的示例。由H矩阵中的‘1’来表示在Tanner图中用于连接节点的边(edge)。
图2是图示了通用消息传递解码器的操作的图解。
参考图2,可以利用二分图(bipartite graph)中的消息传递概念来描述用于通用LDPC码的解码器,并且解码器通过交换在如图2所示的变量节点与校验节点之间的消息即外界消息,从而以迭代计算方法进行操作。
如在图2中所示,mj,i VC表示从第j个变量节点到第i个校验节点传递的消息,并且mj,i VC通过变量节点处理器的操作产生。此外,mi,j VC表示从第i个校验节点到第j变量节点传递的消息,并且mi,j VC通过校验节点处理器的操作产生。
在公知的和-积(sum-product)算法中,可以将每个消息的产生表示为如在等式(1)和等式(2)中列出的那样:
等式(1)表示用于变量节点处理器的消息产生的表达式,而等式(2)表示用于校验节点处理器的消息产生的表达式。
如在等式(1)中所示的那样,yj表示对应于第j个变量节点的对数似然比(log-likelihood ratio,LLR),即所接收的第j个位,C(j)表示连接至第j个变量节点的校验节点的索引集(index set),以及V(i)表示连接至第i个校验节点的变量节点的索引集。
如在等式(2)中所示的那样,p表示消息m的符号,例如,+1或-1,并且q表示消息m的幅度,对于x>=0,F(x)=-log(tanh(x/2)),而对于x<0,F(x)=+log(tanh(-x/2))。
利用消息传递算法进行操作的通用LDPC解码器通过迭代计算处理来解码信息位。
通过基H矩阵的展开,可以找到块LDPC码,并且下面将会参考图3对其进行说明。
图3是图示通用块LDPC码的图和奇偶校验矩阵的图解。
参考图3,示出了通过由并行因子的数量Z=2对图1中使用的H矩阵进行扩展所获得的H矩阵的图和奇偶校验矩阵。对于Z=2,在图3中,码字的长度被扩展两倍。在这种情况下,可以将所扩展的H矩阵表示为其中现有基H矩阵中的每个元素是Z×Z矩阵的矩阵。
如在图3左侧中所示的那样,当简单地扩展在图1中所示的H矩阵时,单位矩阵(I)位于“1”的位置。然而,在这种情况下,因为在图中的层(layers)之间没有信息交换,因此不可能获取与码字长度的增加相对应的编码增益(gain)。因此,如在图3右侧中所示的那样,通过边置换(edge permutation)在层之间任意做出边的连接。这等同于在与基H矩阵中的位置“1”相对应的地方利用置换矩阵而不是单位矩阵。如上所述,在块LDPC中,解码器可以增大吞吐量,因为它可以以Z为单位执行并行处理,从而有助于减少控制开销。
同时,当交换节点消息时,解码器产生边的V2C消息,即,变量节点的传出消息(outgoing message),并且产生C2V消息,即,校验节点的传出消息。
通用消息传递解码器可以不考虑边消息的更新顺序而操作。确定边消息的更新顺序的方案被称为调度方案,并且这影响基于解码器的迭代的收敛速率。
将通常使用的调度方案分类为洪流调度(flooding scheduling)和串行调度方案。洪流调度方案在更新所有V2C消息后更新所有C2V消息,而串行调度方案执行基于节点的操作。
此外,可以划分串行调度方案为基于变量节点的串行调度方案和基于校验节点的串行调度方案。基于校验节点的串行调度方案首先对更新与一个校验节点相连的传出消息(即,C2V消息)所需的传入消息(incoming message)(即,V2C消息)进行更新。在更新了连接至一个校验节点的所有传出消息后,基于校验节点的串行调度方案移至下一个校验节点,然后执行更新,重复这个操作。基于变量节点的串行调度方案还能够执行类似的操作。
图4是图示传统解码器结构的图解。
参考图4,示出了用一个矢量节点处理器(VNP)和一个矢量边消息存储器(VMM)实现的传统解码器。
VNP包括至少一个节点处理器单元,并且每个节点处理器单元执行Z个计算。此外,VNP能够根据控制信号执行变量节点或校验节点计算。解码器应该能够用一个VMM来存储V2C和C2V消息这两者。因此,对这个结构仅能够应用洪流调度方案。
举例来说,当VNP作为变量节点处理器第一次启动操作时,已经在VMM中存储了C2V消息。因此,为了更新第一个变量节点的传出消息(即,V2C消息),VNP读取存储在VMM中的C2V消息,计算传出消息,并且之后在对其执行读操作的存储器地址中存储V2C消息。
在对所有变量节点执行了计算后,将VMM中的所有消息更新为V2C消息。此后,VNP根据控制信号执行校验节点处理器的操作。也就是说,为了每个边用一个存储器来存储和处理V2C与C2V消息这两者,只有洪流调度技术是可行的。
除此之外,存在于VNP和VMM之间的切换(switching)设备执行例如如在图3中描述的层之间的边置换。
在这种情况下,因为传统解码器用一个VNP顺序地执行计算,因此它具有很小的存储器大小和简单的硬件,但是它具有低解码器吞吐量。之后将会参考图6A和6B给出它的详细说明。
图5是图示传统解码器的另一个结构的图解。特别地,图5示出了具备2个VNP的解码器的结构。
如在图5中所示的那样,每个VNP仅担任变量节点处理器和校验节点处理器其中之一,并且传统解码器能够提高解码吞吐量,因为两个处理器同时操作。类似地,存在于VNP和VMM之间的切换设备执行例如在图3中描述的层之间的边置换。然而,具备如在图5中所示结构的解码器需要用于存储C2V消息和V2C消息的分离存储器。因此,与在图4中所示结构的存储器相比,存储器增加一倍,即硬件增加一倍,这导致物理大小的增加。
因此,需要一种能够用较低复杂度获得较高吞吐量的解码器,及其设计和实现方法。
发明内容
本发明的一个方面是为了解决至少上述问题和/或缺陷,并且提供至少以下描述的优点。从而,本发明的一个方面是提供一种能够以较低解码器复杂度获得较高吞吐量的解码装置和方法。
本发明的另一个方面是提供了这样一种LDPC解码装置和方法,该LDPC解码装置和方法与单独利用消息存储器相比能够减少存储器的使用并且在使用矢量节点处理器的同时能够实现较高吞吐量。
根据本发明的一个方面,提供了一种用于在通信系统中解码低密度奇偶校验(LDPC)码的装置,该LDPC解码装置包括:边存储器,用于存储通过边在变量节点和校验节点之间传递的消息;节点存储器,用于存储校验节点值;节点处理器,用于利用存储在节点存储器和边存储器的至少一个中的信息来执行节点处理操作,在节点存储器中存储通过执行所述节点处理操作产生的校验节点值,以及在边存储器中存储通过执行所述节点处理操作而产生的消息;切换器,用于通过置换操作切换节点存储器与节点处理器的输出;奇偶校验验证器,用于对来自节点存储器的输出进行奇偶校验;以及控制器,用于提供用于控制节点处理器的控制信号。
根据本发明的另一个方面,提供了一种用于在通信系统中解码低密度奇偶校验(LDPC)码的装置,该LDPC解码装置包括:节点存储器,用于存储校验节点值;节点处理器,用于执行节点处理操作,并且根据节点处理操作产生存储在节点存储器中的校验节点值;以及切换器,其位于节点存储器和节点处理器之间,用于通过置换操作来切换节点存储器和节点处理器的输出。
根据本发明的另一个更进一步的方面,提供一种用于在通信系统中解码低密度奇偶校验(LDPC)码的方法,该LDPC解码方法包括:初始化变量节点、校验节点和边;用先前更新的边和节点消息值来更新节点和边的消息当中的至少一个消息;以及存储更新的边消息或更新的节点消息。
附图说明
从以下结合附图的详细的说明中,本发明的以上和其他目标、特征以及优点将会变得更显而易见,其中:
图1是图示通用LDPC码的Tanner图和奇偶校验矩阵的图解;
图2是图示通用消息传递解码器的操作的图解;
图3是图示通用块LDPC码的图和奇偶校验矩阵的图解;
图4是图示传统解码器的结构的图解;
图5是图示传统解码器的另一个优选结构的图解;
图6A和6B是图示在通用解码器中使用的洪流调度方案的图解;
图7A至7F是图示在根据本发明的解码器中使用的基于节点存储器的串行调度方案的图解;
图8是图示根据本发明的解码器的结构的图解;以及
图9是图示根据本发明的节点处理器的内部结构的图解。
具体实施方式
参考附图,现在将会详细描述本发明的优选实施例。在接下来的说明中,为了清楚和简明起见已经省略了这里所合并的公知功能与配置的详细说明。
本发明提供了一种方案和装置,该方案和装置用于实现用基于变量节点的串行调度方案来执行消息传递的解码器。具体来说,本发明是一种使用一个V2C消息存储器而不使用分离的C2V边消息存储器的方案,并且该方案使用与C2V消息存储器不同的校验节点存储器。
根据本发明的校验节点存储器为每个校验节点存储预定的典型值(representative value),并且存储元素的数量等于校验节点的数量。
因此,与如在图5中所描述那样的分别使用V2C和C2V边消息存储器相比,本发明能够减少存储器的使用。此外,根据本发明,为了更新V2C消息,变量节点处理器根据需要产生相关的C2V消息。以这样的方式,与图4中的解码器相比,新的解码器能够仅以一个矢量节点处理器(VNP)就可实现高吞吐量。
如上所述,本发明提供了一种方案和装置,该方案和装置用于实现一种利用基于变量节点的串行调度方案来执行消息传递解码的解码器,并且现在将会参考附图说明所提供的解码器的优选操作。
在提供本发明的说明之前,将会参考图6A和6B描述现有解码器的操作。
图6A和6B是描述在通用解码器中使用的洪流调度方案的图解。
参考图6A和6B,在传统的洪流调度方案中,变量节点处理器(即,用于V2C消息产生)和校验节点处理器(即,用于C2V消息产生)顺序地操作。也就是说,解码器首先全部更新如图6A中所示的所有边的V2C消息,并且之后更新如图6B中所示的所有C2V消息。
当交换变量节点值和校验节点值时,这个结构没有使用其他节点的值。举例来说,当产生V2C消息时,变量节点处理器使用C2V消息,并且随后使用的C2V消息是由先前的迭代的校验节点处理器更新的消息。也就是说,传统技术不能利用在更新V2C消息的处理中首先更新的V2C消息来更新C2V消息。
图7A至7F是描述在根据本发明的解码器中使用的基于节点存储器的串行调度方案的图解。
参考图7A至7F,根据本发明的LDPC解码方法利用已更新的消息首先更新相关消息,从而提高解码器的性能,即收敛速率(convergence rate)。也就是说,当图7A所示更新第一变量节点的V2C消息时,LDPC解码方法应先前获取连接至第一变量节点的边(即,边‘a’和‘b’)的C2V消息。
为了获取与所述第一变量节点相关的C2V消息,如在图7B中所示的那样,LDPC解码方法通过第一和第二校验节点处理器的操作产生消息,以更新连接至变量节点的边‘a’和‘b’(即,由虚线表示的)的C2V消息。
此后,如在图7C中所示的那样,LDPC解码方法获取边‘a’和‘b’的C2V消息并且通过所获取的节点‘a’和‘b’的C2V消息产生连接至边‘a’和‘b’的V2C消息。接下来,如在图7D中所示的那样,为了产生连接至第二个变量节点的边(即,边‘d’,‘e’和‘f’)的V2C消息,LDPC解码方法获取边的C2V消息。获取C2V消息的操作与图7A中的操作类似,并且LDPC解码方法先前获取连接至第二变量节点的边‘d’,‘e’和‘f’的C2V消息。
图7E示出了相关校验节点处理器为了更新连接至第二变量节点的边‘d’,‘e’和‘f’的C2V消息的操作。在此,利用来自第一变量节点的已更新V2C消息来产生边‘d’和‘e’的C2V消息。
其结果是,如在图7F中所示的那样,LDPC解码方法获取边‘d’,‘e’和‘f’的所有有关的C2V消息并且通过已更新的C2V消息生成边‘d’,‘e’和‘f’的V2C消息。
在本发明中,如果在图7A至7F所示的方法中全部更新与所有变量节点相关的V2C消息,那么亦自动更新C2V消息。在本发明的LDPC解码方法中,根据需要产生C2V消息以产生变量节点的V2C消息。也就是说,因为使用在先前消息传递处理中立即更新的V2C消息以根据需要产生C2V消息,所以消息的收敛速率增加了。可以如在等式(3)和等式(4)中列出的那样表述这个过程。
for all v,
for all c∈C(v)
end
end
等式(3)和等式(4)分别表示根据本发明的LDPC解码方法中的初始化阶段和迭代阶段。
如在等式(3)和等式(4)中所示的那样,v和c分别表示变量节点和校验节点,qc表示节点存储器值mc的幅度,pc表示节点存储器值mc的符号,V(c)表示与第c校验节点相邻的变量节点的索引集,以及,C(v)表示与第v变量节点相邻的校验节点的索引集,对于x<0,sgn(x)=-1,并且对于x≥0sgn(x)=+1。
在等式(3)所示的初始化阶段中,初始化mvc为yv,其中yv是输入对数似然比(LLR)。在此,mv,c VC表示从第v变量节点至第c校验节点所传递的消息,其中v和c是下标。在mvc的初始化之后,如在等式(3)中所示那样独立地初始化qc和pc。
接下来,在等式(4)所示的迭代阶段中,L表示对变量节点v的所有传入的消息求和的处理,并且变量节点v的传入消息由yv和C2V消息组成,其中yv为输入LLR。
之后,F-1(qc-F(|mv,c VC|))表示从第c校验节点到第v变量节点所传递的C2V消息。
参考等式(3)和等式(4),将阐述本发明的节点更新方法。也就是说,本发明的调度方案是串行调度方案,其不同于现有的洪流调度方案,并且串行调度方案每次都更新mvc。也就是说,在这里将会阐述这样一种方法,该方法通过根据变量节点来更新校验节点的方案即串行调度方案来更新连接至每个变量节点的所有校验节点。
为了更新mvc,从L去除传入的边值。因此,需要用于去除相应边的量值和符号值的部分,并且可如等式(5)所列出的那样表达此过程。
在更新了mvc之后,本发明的节点更新方法反映了与相应边相连的校验节点存储器值的幅度值和符号值。在此,节点更新方法单独存储V2C消息。然而,对于C2V消息,节点更新方法仅存储与每个校验节点相对应的典型值qc和pc,而不是单独地存储C2V消息。
从之前的说明可以认识到,根据本发明的节点处理器按照需要根据校验节点存储器值pc和/或qc来计算C2V消息,以便产生并存储用于特定变量节点的传出消息,即V2C消息。这是一类统一节点处理方案,在该方案中在一个节点处理过程中同时产生并更新C2V和V2C消息。
图8是图示根据本发明的解码器的优选结构的图解。图8示出了具有Z=4并行因子的优选LDPC解码器。假设LDPC接收来自信道的传入信号以作为具有K位精度的LLR并且V2C边存储器值亦具备K位精度。
参考图8,LDPC解码器包括:矢量节点处理器801;输入LLR单元803,用于将输入信号提供给矢量节点处理器801;V2C边存储器805,用于存储矢量节点处理器801的输出消息当中的V2C消息;校验节点存储器807,用于存储表示节点存储器值的幅度的pc或者表示节点存储器值的符号的qc;控制器809,用于提供用于控制矢量节点处理器801的控制信号;奇偶校验验证器(verifier)811,用于对校验节点存储器807的输出进行奇偶校验;第一切换器813,用于将从矢量节点处理器801输出的消息切换到校验节点存储器807;以及第二切换器815,用于将从校验节点存储器807输出的消息切换到矢量节点处理器801。
矢量节点处理器801执行如在图7A至7F中所示的节点处理过程。校验节点存储器807和V2C边存储器805存储消息以便有效地利用由变量节点和校验节点交换的值。因此,LDPC解码器分别从校验节点存储器807和V2C边存储器805读取校验节点存储器值和V2C消息值,通过矢量节点处理器801新产生V2C消息和校验节点值pc和/或qc,然后分别将它们存储在V2C边存储器805和校验节点存储器807中。
通常,在块LDPC中,能够以Z为单位同时执行存储器读/写操作以及消息产生操作。在此,节点存储器值可以具备与V2C消息的精度或来自LLR单元803的输入LLR值的精度不同的K′-位精度。
为了在迭代过程中停止解码,传统LDPC解码器在每次迭代时利用到目前为止所解码的临时码字对校验子(syndrome)进行校验,或者执行解码直至最大迭代。然而,在LDPC解码器中,将校验节点存储器值的符号pc(1位)和幅度qc((K′-1)位)存储在校验节点存储器807中,并且如果在每次迭代时所有pc值均为+1,那么LDPC解码器能够终止它的解码操作,因为它意味着满足所有校验等式。
当传统解码器需要单独的奇偶校验验证器811时,LDPC解码器通过仅校验节点存储器值的符号值可简单地执行这个功能,从而便利简单的硬件实现。因此,在图8中所示的本发明能够使奇偶校验验证器811的硬件实现简单化。
V2C边存储器805是一种用于存储L×ZK-位值的设备,其中L表示在Tanner图中的边的总数。在矢量节点处理器801中,并行处理Z个变量节点,并且在对来自V2C边存储器805的相关边消息值进行读/写操作中,可以一个集接一个集(每个集包括Z个边消息值)地顺序处理边消息值,或者可以同时处理几个集的边消息值。
对于对几个集的边消息值同时执行读/写操作的情况是高效的结构处理与连接到一个变量节点的边的数量dv(变量节点度数)一样多的边消息值。在此,用于存储V2C消息或校验节点值的结构是由dv个存储体组成的。
对于不规则的LDPC码,上述结构由与最大变量节点度数(node degree)一样多的存储体组成。在这种情况下,因为在一个环中可以读取或写入与连接至一个变量节点的边消息相关的校验节点值,所以每个环利用流水线结构可对一个集的变量节点进行处理。以这种方式,可以显著地提高解码器的吞吐量。
控制器809指定由矢量节点处理器801所处理的节点的顺序,或者确定迭代解码器的终止。由于LDPC解码器使用基于变量节点的串行调度方案,因而它可以利用控制器809来指定经处理的变量节点的顺序。
举例来说,LDPC解码器首先更新与信息位相对应的节点,然后更新与奇偶校验位相对应的节点。反之,对于不规则LDPC码,LDPC解码器也可以根据节点度数来确定更新顺序。可替换地,LDPC解码器可以根据边的连接配置确定节点的更新顺序。
在图8中,用于块LDPC置换的至少一个切换器,即第一和第二切换器813和815,位于矢量节点处理器801和校验节点存储器807之间。也就是说,对于本领域技术人员来说,很显然参考图4和5所描述的装置在结构上与本发明的装置不同,因为它们具有位于矢量节点处理器和边存储器之间的切换设备。
在图8中的LDPC解码器产生对数先验概率(Log-A-priori Probability)(LAPP)817以作为它的输出,并且LAPP是连接至每个变量节点的边的所有传入消息之和。因为这个值的符号表示经解码的输出位并且这个值的幅度表示解码可靠度,因此该值可用于其它的接收模块,例如:均衡器、多输入多输出(MIMO)检测器等等。
图9是图示根据本发明的节点处理器的内部结构的图解。具体来说,图9图示了根据本发明的具有存储体结构的节点处理器的结构。在这里假设连接至每个变量节点的边的数目dv为6(dv=6)。
参考图9,节点处理器从V2C边存储体910和校验节点存储体930读取与连接至当前已处理的变量节点的边相对应的边消息以及连接至边的校验节点的值,然后对其执行之前的操作。
随后,立即再次存储新计算的V2C边消息和校验节点值,例如,6乘(by)6,其表示连接至每个变量节点的边的数量。在用于增加解码吞吐量的流水线结构中,因为在核心操作过程中插入定时锁存器,所以在存储体中同时执行读和写操作。
因为节点处理器利用双端口存储器同时执行读和写操作,所以它控制节点的处理顺序以便不会发生存储器访问冲突。在图9中,利用查找表或例如最小和算法、线性近似算法等等这样的一些近似算法能够实现F函数。
从之前的描述中可以明白,LDPC解码装置和方法与现有的洪流调度方案相比可以显著地增加它的迭代收敛速率,并且能够实现高速率传输,这对于下一代移动通信系统是必需的。此外,LDPC解码装置和方法能够提高吞吐量同时可减少存储器的使用。
虽然已经参考本发明的一些优选实施例示出并描述了本发明,但是本领域技术人员应该明白的是,在不脱离由随后权利要求所定义的本发明的精神和范围的情况下,可对其形式和细节作出改变。
Claims (23)
1.一种用于在通信系统中解码低密度奇偶校验LDPC码的装置,该装置包括:
边存储器,用于存储通过边在变量节点和校验节点之间传递的消息;
节点存储器,用于存储校验节点值,其包含节点存储器值的幅度和符号;
节点处理器,用于利用存储在节点存储器和边存储器的至少一个中的信息来执行节点处理操作,通过执行所述节点处理操作产生连接至预定变量节点的边的校验节点传出C2V消息和校验节点值,利用所产生的C2V消息产生连接至变量节点的边的V2C消息,在节点存储器中存储所产生的校验节点值,在边存储器中存储所产生的V2C消息,并通过顺序地重复为每个单独的变量节点产生V2C消息来执行解码操作;
切换器,用于通过置换操作切换节点存储器与节点处理器的输出;
奇偶校验验证器,用于对来自节点存储器的输出进行奇偶校验;以及
控制器,用于提供用于控制节点处理器的控制信号,
其中节点处理器根据存储在节点存储器中的校验节点值的符号来终止解码操作。
2.如权利要求1中所述的装置,其中将幅度qc和符号pc表示成
其中v和c分别表示变量节点和校验节点,V(c)表示与第c校验节点相邻的变量节点的索引集,C(v)表示与第v变量节点相邻的校验节点的索引集,对于x<0,sgn(x)=-1,对于x≥0,sgn(x)=+1,并且mv,c VC表示从第v变量节点到第c校验节点所传递的消息。
3.如权利要求1所述的装置,其中切换器包括:
第一切换器,用于将来自节点处理器的校验节点的输出切换至节点存储器;以及
第二切换器,用于将来自节点存储器的输出切换至节点处理器。
4.如权利要求1所述的装置,其中该切换器位于所述节点存储器和所述节点处理器之间。
5.如权利要求1所述的装置,其中根据基于节点的串行调度方案来更新存储在节点存储器中的校验节点值和存储在边存储器中的V2C消息。
6.如权利要求1所述的装置,其中当全部校验节点值的符号为+1时,终止解码操作。
7.如权利要求1所述的装置,其中存储在节点存储器中的校验节点值在位精度方面不同于V2C消息和输入对数似然比LLR值。
8.如权利要求1所述的装置,其中奇偶校验验证器通过校验节点存储器值的符号来验证节点存储器的输出。
9.如权利要求1所述的装置,其中节点存储器和边存储器中的至少一个是由存储体形成的。
10.如权利要求9所述的装置,其中存储体的数目是最大变量节点度数。
11.如权利要求1所述的装置,其中节点存储器和边存储器以流水线结构相连,而且存储在节点存储器中的校验节点值和存储在边存储器中的V2C消息在每个环更新一个集。
12.如权利要求1所述的装置,其中控制信号包括用于指定变量节点的顺序的指定信号和解码操作的终止信号中的至少一个。
13.如权利要求11所述的装置,其中指定信号包括用于根据变量节点的度数来确定更新顺序的信号以及用于根据边的连接配置来确定变量节点的更新顺序的信号中的至少一个。
14.一种用于在通信系统中解码低密度奇偶校验LDPC码的方法,该方法包括:
获取连接至第一变量节点的边的第一校验节点传出C2V消息;
通过第一C2V消息产生连接至所述边的第一V2C消息和第一校验节点值;
在边存储器中存储第一V2C消息,并在节点存储器中存储第一校验节点值;
利用第一V2C消息和第一校验节点值获取连接至第二变量节点的边的第二C2V消息;
利用第二C2V消息更新连接至第二变量节点的边的第二V2C消息和第二校验节点值;以及
依赖于存储在节点存储器中的第一和第二校验节点值的符号的解码操作,
其中第一和第二校验节点值包含节点存储器的值的幅度和符号。
15.如权利要求14所述的方法,其中所述更新包括根据基于节点的串行调度方案来确定第二V2C消息的更新方案。
16.如权利要求14所述的方法,其中所存储的第一校验节点值在位精度方面不同于第一V2C消息和输入对数似然比LLR值。
17.如权利要求16所述的方法,其中节点存储器和边存储器中的至少一个是由存储体形成的。
18.如权利要求17所述的方法,其中存储体的数目是最大变量节点度数。
19.如权利要求14所述的方法,其中节点存储器和边存储器中的至少一个以流水线结构相连,而且存储在节点存储器中的校验节点值和存储在边存储器中的V2C消息在每个环更新一个集。
20.如权利要求14所述的方法,其中当全部校验节点值的符号为+1时,终止解码操作。
21.如权利要求14所述的方法,还包括:
产生用于根据符号值来控制第一或第二变量节点的更新顺序、以及第一或第二校验节点值的控制信号。
22.如权利要求21所述的方法,其中控制信号包括用于指定变量节点的顺序的指定信号和解码操作的终止信号中的至少一个。
23.如权利要求22所述的方法,其中指定信号包括用于根据第一或第二变量节点的度数来确定更新顺序的信号以及用于根据边的连接配置来确定第一或第二变量节点的更新顺序的信号中的至少一个。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060010263A KR100899738B1 (ko) | 2006-02-02 | 2006-02-02 | 노드 메모리 기반의 ldpc 복호기 및 복호방법 |
KR10263/06 | 2006-02-02 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101079639A CN101079639A (zh) | 2007-11-28 |
CN101079639B true CN101079639B (zh) | 2011-02-09 |
Family
ID=38197586
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101288834A Active CN101079639B (zh) | 2006-02-02 | 2007-02-02 | 基于节点存储器的低密度奇偶校验解码装置和方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7886208B2 (zh) |
EP (1) | EP1819054A3 (zh) |
JP (1) | JP4402699B2 (zh) |
KR (1) | KR100899738B1 (zh) |
CN (1) | CN101079639B (zh) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8196025B2 (en) * | 2005-08-03 | 2012-06-05 | Qualcomm Incorporated | Turbo LDPC decoding |
WO2008142683A2 (en) * | 2007-05-21 | 2008-11-27 | Ramot At Tel Aviv University Ltd. | Memory-efficient ldpc decoding |
US8181083B2 (en) * | 2007-08-27 | 2012-05-15 | Stmicroelectronics S.R.L. | Methods and architectures for layered decoding of LDPC codes with minimum latency |
JP4487213B2 (ja) * | 2007-10-19 | 2010-06-23 | ソニー株式会社 | 復号装置および方法、並びにプログラム |
RU2440669C1 (ru) | 2007-12-13 | 2012-01-20 | Нек Корпорейшн | Устройство декодирования, устройство хранения данных, система обмена данными и способ декодирования |
KR101434267B1 (ko) * | 2007-12-14 | 2014-08-27 | 삼성전자주식회사 | 통신 시스템에서 신호 수신 장치 및 방법 |
US8296640B2 (en) | 2008-06-20 | 2012-10-23 | Samsung Electronics Co., Ltd. | Method and apparatus for parallel processing multimode LDPC decoder |
US8335979B2 (en) | 2008-12-08 | 2012-12-18 | Samsung Electronics Co., Ltd. | Contention-free parallel processing multimode LDPC decoder |
KR101206434B1 (ko) | 2008-12-12 | 2012-11-29 | 연세대학교 산학협력단 | 저밀도 패리티 검사 부호를 위한 동적 스케줄링 기법을 이용한 복호 방법 및 그 장치 |
TW201037529A (en) * | 2009-03-02 | 2010-10-16 | David Reynolds | Belief propagation processor |
JP5510447B2 (ja) * | 2009-03-13 | 2014-06-04 | 日本電気株式会社 | 復号装置および復号方法 |
US20110154168A1 (en) * | 2009-12-18 | 2011-06-23 | Electronics And Telecommunications Research Institute | Effective high-speed ldpc encoding method and apparatus using the same |
KR101286858B1 (ko) | 2009-12-21 | 2013-07-17 | 한국전자통신연구원 | 저밀도 패리티 검사 부호를 위한 고속 복호 방법 |
US8972831B2 (en) | 2010-01-11 | 2015-03-03 | Analog Devices, Inc. | Belief propagation processor |
US9612903B2 (en) * | 2012-10-11 | 2017-04-04 | Micron Technology, Inc. | Updating reliability data with a variable node and check nodes |
KR20150024489A (ko) * | 2013-08-26 | 2015-03-09 | 삼성전자주식회사 | 메모리 시스템에서의 ldpc 디코딩 방법 및 이를 이용한 ldpc 디코더 |
CN105306514A (zh) * | 2014-07-30 | 2016-02-03 | 北京信威通信技术股份有限公司 | 基于Zookeeper的录音文件分布存储方法和系统 |
US9473175B1 (en) * | 2015-02-10 | 2016-10-18 | Microsemi Storage Solutions (U.S.), Inc. | Forward error correction decoder system |
CN106330200B (zh) | 2015-07-09 | 2019-09-10 | 华邦电子股份有限公司 | 执行于通量图形处理器的低密度奇偶校验解码方法 |
CN108370253B (zh) * | 2015-12-24 | 2022-05-03 | 英特尔公司 | 用于低密度奇偶校验解码的混合式调度和基于锁存器的流水线 |
US10548158B2 (en) * | 2016-03-10 | 2020-01-28 | Huawei Technologies Co., Ltd. | Message passing algorithm decoder and methods |
EP3242405B1 (en) * | 2016-05-02 | 2024-02-21 | Université de Bretagne Sud | Non-binary check node processing with pre-sorted input |
KR102589918B1 (ko) | 2016-07-19 | 2023-10-18 | 삼성전자주식회사 | 저밀도 패리티 체크 디코더 및 그것을 포함하는 저장 장치 |
US10128981B1 (en) * | 2016-08-31 | 2018-11-13 | Marvell International Ltd. | Message-passing decoder with fast convergence and reduced storage |
EP3293885B1 (en) * | 2016-09-09 | 2024-01-03 | Université de Bretagne Sud | Check node processing for syndrome computation in the decoding of non-binary codes, in particular non-binary ldpc codes |
US10141953B2 (en) | 2016-12-14 | 2018-11-27 | Via Technologies, Inc. | Low-density parity-check apparatus and matrix trapping set breaking method |
KR102588969B1 (ko) * | 2019-03-19 | 2023-10-16 | 에스케이하이닉스 주식회사 | 오류 정정 디코더 및 이를 포함하는 메모리 시스템 |
US11088707B2 (en) | 2019-06-29 | 2021-08-10 | Intel Corporation | Low density parity check (LDPC) decoder architecture with check node storage (CNS) or bounded circulant |
US11515891B2 (en) | 2020-12-22 | 2022-11-29 | Intel Corporation | Application of low-density parity-check codes with codeword segmentation |
KR102511827B1 (ko) * | 2021-11-24 | 2023-03-21 | 삼성전자주식회사 | Ldpc 디코더 및 스토리지 장치 |
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 |
---|---|---|---|---|
CN1481130A (zh) * | 2002-07-26 | 2004-03-10 | 产生低密度奇偶校验码的方法和系统 | |
CN1697329A (zh) * | 2004-05-03 | 2005-11-16 | 美国博通公司 | 解码ldpc码及在二分图两侧使用乘法或对数域的加法的图 |
CN1713530A (zh) * | 2004-06-22 | 2005-12-28 | 印芬龙科技股份有限公司 | 解码低密度奇偶校验(ldpc)码字的ldpc解码器 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US283707A (en) * | 1883-08-21 | Machine | ||
US7415079B2 (en) * | 2000-09-12 | 2008-08-19 | Broadcom Corporation | Decoder design adaptable to decode coded signals using min* or max* processing |
US7020829B2 (en) * | 2002-07-03 | 2006-03-28 | Hughes Electronics Corporation | Method and system for decoding low density parity check (LDPC) codes |
US7436902B2 (en) * | 2003-06-13 | 2008-10-14 | Broadcom Corporation | Multi-dimensional space Gray code maps for multi-dimensional phase modulation as applied to LDPC (Low Density Parity Check) coded modulation |
JP2005045735A (ja) | 2003-07-25 | 2005-02-17 | Sony Corp | 符号検出装置及び方法、復号装置及び方法、並びに情報処理装置及び方法 |
KR100809619B1 (ko) * | 2003-08-26 | 2008-03-05 | 삼성전자주식회사 | 이동 통신 시스템에서 블록 저밀도 패러티 검사 부호부호화/복호 장치 및 방법 |
KR20050046471A (ko) * | 2003-11-14 | 2005-05-18 | 삼성전자주식회사 | 저밀도 패러티 검사 부호를 병렬 연접하는 채널부호화/복호화 장치 및 방법 |
US20050283707A1 (en) | 2004-06-22 | 2005-12-22 | Eran Sharon | LDPC decoder for decoding a low-density parity check (LDPC) codewords |
US7516390B2 (en) * | 2005-01-10 | 2009-04-07 | Broadcom Corporation | LDPC (Low Density Parity Check) coding and interleaving implemented in MIMO communication systems |
US7499490B2 (en) * | 2005-06-24 | 2009-03-03 | California Institute Of Technology | Encoders for block-circulant LDPC codes |
-
2006
- 2006-02-02 KR KR1020060010263A patent/KR100899738B1/ko not_active IP Right Cessation
-
2007
- 2007-01-31 JP JP2007021427A patent/JP4402699B2/ja not_active Expired - Fee Related
- 2007-02-02 CN CN2007101288834A patent/CN101079639B/zh active Active
- 2007-02-02 US US11/702,015 patent/US7886208B2/en active Active
- 2007-02-02 EP EP07101634A patent/EP1819054A3/en not_active Ceased
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1481130A (zh) * | 2002-07-26 | 2004-03-10 | 产生低密度奇偶校验码的方法和系统 | |
CN1697329A (zh) * | 2004-05-03 | 2005-11-16 | 美国博通公司 | 解码ldpc码及在二分图两侧使用乘法或对数域的加法的图 |
CN1713530A (zh) * | 2004-06-22 | 2005-12-28 | 印芬龙科技股份有限公司 | 解码低密度奇偶校验(ldpc)码字的ldpc解码器 |
Also Published As
Publication number | Publication date |
---|---|
US20070220398A1 (en) | 2007-09-20 |
US7886208B2 (en) | 2011-02-08 |
CN101079639A (zh) | 2007-11-28 |
JP2007208985A (ja) | 2007-08-16 |
JP4402699B2 (ja) | 2010-01-20 |
EP1819054A3 (en) | 2009-02-25 |
KR100899738B1 (ko) | 2009-05-27 |
EP1819054A2 (en) | 2007-08-15 |
KR20070079513A (ko) | 2007-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101079639B (zh) | 基于节点存储器的低密度奇偶校验解码装置和方法 | |
US8347170B2 (en) | Method and apparatus for performing decoding using LDPC code | |
US8438459B2 (en) | Apparatus and method for decoding using channel code | |
USRE44421E1 (en) | Decoding apparatus for low-density parity-check codes using sequential decoding, and method thereof | |
CN101159436B (zh) | 解码设备及方法 | |
US7373581B2 (en) | Device, program, and method for decoding LDPC codes | |
US7730377B2 (en) | Layered decoding of low density parity check (LDPC) codes | |
CN1953336B (zh) | 在低密度奇偶校验解码器中更新校验节点的方法 | |
US20060206779A1 (en) | Method and device for decoding DVB-S2 LDPC encoded codewords | |
CN107979445B (zh) | 使用预先排序的输入的基于基本校验节点的校正子解码 | |
CN101471674A (zh) | 低密度奇偶校验码译码方法及装置 | |
US9825650B2 (en) | Decoder architecture for cyclically-coupled quasi-cyclic low-density parity-check codes | |
EP3242405B1 (en) | Non-binary check node processing with pre-sorted input | |
CN101295988A (zh) | 解码设备 | |
CN101154948A (zh) | 利用共享硬件及顺序和-积体系结构进行低密度奇偶校验解码的方法和设备 | |
Thi et al. | Two-extra-column trellis min–max decoder architecture for nonbinary LDPC codes | |
CN101595644A (zh) | 使用信道码解码的设备和方法 | |
Deng et al. | Reduced-complexity deep neural network-aided channel code decoder: A case study for BCH decoder | |
CN102412844B (zh) | 一种ira类ldpc码的译码方法及译码装置 | |
CN111034055A (zh) | 在非二进制ldpc解码器中简化的校验节点处理 | |
US10727869B1 (en) | Efficient method for packing low-density parity-check (LDPC) decode operations | |
US11075650B1 (en) | Sub-matrix reduction for quasi-cyclic LDPC codes | |
US11476870B2 (en) | Variable node processing methods and devices for message-passing decoding of non-binary codes | |
Shams et al. | Diversity of non-binary cluster-LDPC codes using the EMS algorithm | |
CN102136842B (zh) | 一种译码器及译码方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |