CN1874164B - 使用同时存储器存取的消息传递译码装置和方法 - Google Patents
使用同时存储器存取的消息传递译码装置和方法 Download PDFInfo
- Publication number
- CN1874164B CN1874164B CN2006100923303A CN200610092330A CN1874164B CN 1874164 B CN1874164 B CN 1874164B CN 2006100923303 A CN2006100923303 A CN 2006100923303A CN 200610092330 A CN200610092330 A CN 200610092330A CN 1874164 B CN1874164 B CN 1874164B
- Authority
- CN
- China
- Prior art keywords
- node
- edge values
- memory
- nodes
- variable
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 120
- 238000000034 method Methods 0.000 title claims abstract description 29
- 238000012545 processing Methods 0.000 claims abstract description 99
- 238000004891 communication Methods 0.000 claims description 10
- 239000011159 matrix material Substances 0.000 claims description 9
- 238000004590 computer program Methods 0.000 abstract description 10
- 230000006870 function Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 14
- 238000004364 calculation method Methods 0.000 description 10
- 238000004422 calculation algorithm Methods 0.000 description 6
- 101150027996 smb1 gene Proteins 0.000 description 6
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/116—Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/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/6563—Implementations using multi-port memories
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)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
为连接译码器的处理节点的各个边沿分配相应存储位置,译码器包括多个处理节点。对编码输入信号应用译码器来生成译码输出信号,其中迭代地从/向存储位置取出/提供边沿值,使得在处理节点操作中同时存取多个存储位置。处理节点可以包括变量节点和校验节点,并且所述边沿包括连接变量和校验节点的边沿。本发明可以实现为方法、装置和计算机程序产品。
Description
相关申请交叉引用
本发明要求于2005年6月1日提交的韩国专利申请No.P2005-0046524的优先权,其全部公开并入这里作为引用。
技术领域
本发明涉及译码技术,更具体地,涉及使用消息传递(message-passing)技术的译码装置和方法。
背景技术
传统的通信***通常使用信道编码来降低数据传输错误。常用的信道编码包括卷积和分组码。常用的卷积码包括尾比特码、追零(zero-trailing)码和卷积turbo码。常用的分组码包括里德-索罗蒙码、BCH码、分组turbo码和低密度奇偶校验(LDPC)码。
LDPC编码近来被用于数字电视(DTV)传输中。LDPC码是从稀疏二部图(sparse bipartite graph)得到的线性码,稀疏二部图包括通过“边沿”(edge)连接的“变量”(或“消息”)节点和“校验”节点。该图示可以表示为矩阵。特别地,对于具有n个变量节点和r个校验节点的图,可以定义二进制r×n矩阵,其中当且仅当第i个校验节点连接到第j个变量节点时,特定项(i,j)为“1”。该矩阵称为奇偶校验矩阵。LDPC码以稀疏奇偶校验矩阵为特征。
传统的LDPC译码技术典型地采用迭代“消息传递”算法。该算法通常包括一系列回合,其中值从变量节点传递到校验节点,并且从校验节点传回变量节点。从变量节点发送的值典型地是基于变量节点的当前值和从相邻校验节点接收的值计算出的。
消息传递算法的一个子类称为信任传播(belief propagation)算法,常用于LDPC译码。在这些算法中,在节点之间传递的消息表示概率。特别地,从变量节点j传递到校验节点i的消息表示在已知变量节点j的观察值和在上一回合中从除了校验节点i之外连接到变量节点j的校验节点传递到变量节点j的值时、变量节点j具有某一值的概率。从校验节点i传递到变量节点j的消息表示在已知上一回合中从除了变量节点j之外的变量节点传递到校验节点i的消息时、变量节点j具有某一值的概率。
Blanksby等人的美国专利No.6539377描述了使用以概率依赖关系图(例如,包括变量和校验节点的二部概率依赖关系图)的形式配置的互连处理节点集的分组并行译码算法。译码处理的单次迭代可以在变量节点内产生对给定分组中的每比特或符号的更新的估计。通过向连接到变量节点的每个校验节点发送函数f(Rxi)来启动译码处理,其中Rxi是接收到的比特或符号,而f()是至少部分由码确定的函数,如阈值函数、线性缩放函数或近似指数函数。译码处理包括在每个校验节点并行计算来自连接到该校验节点的变量节点的输入的函数g(),例如,奇偶校验函数,并且将这些校验节点计算的结果送到相连的变量节点。译码处理还包括在每个变量节点并行计算来自连接到该变量节点的校验节点的输入的函数h(),例如,多数(majority)或平均函数,并且将这些变量节点计算的结果送到相连的校验节点。当所有校验节点满足码的约束时,或者在经过最大次数迭代之后,可以终止处理。在终止时变量节点的值表示对所发送的比特或符号的估计。互连处理节点集可以使用一个或多个可编程计算单元实现,每个可编程计算单元可以配置来实现一个节点或节点集。
发明内容
本发明的一些实施例提供译码方法。为连接译码器的处理节点的各个边沿分配相应存储位置,所述译码器包括多个处理节点。对编码输入信号应用译码器来生成译码输出信号,其中迭代地从/向存储位置取出/提供边沿值,使得在处理节点操作中同时存取多个存储位置。处理节点的边沿值生成可以包括:同时从多个存储位置读取该处理节点的边沿值和/或同时向多个存储位置写入该处理节点的边沿值。
在本发明的一些实施例中,处理节点包括变量节点和校验节点,并且边沿包括连接变量和校验节点的边沿。在一些实施例中,对编码输入信号应用译码器包括:在相应第一和第二处理器中交替地执行变量和校验节点操作。在另外的实施例中,对编码输入信号应用译码器包括:配置至少一个处理器来执行变量节点操作;使用所述至少一个处理器来计算变量节点输出边沿值;重新配置所述至少一个处理器来执行校验节点操作;和使用所述至少一个处理器来计算校验节点输出边沿值。在另外的实施例中,为变量节点-校验节点的边沿分配第一多个存储位置,以及为校验节点-变量节点的边沿分配第二多个存储位置。应用译码器包括:在相应第一和第二处理器中同时执行变量节点和校验节点操作并将由此产生的边沿值存储在相应第一和第二多个存储位置中。
在本发明的另外实施例中,为各组边沿分配相应可同时存取的存储单元,使得可以通过同时存取多个可同时存取的存储单元来同时存取特定处理节点的边沿值。可同时存取的存储单元的每一个包括在各个不同处理节点操作中存取的多个存储位置。
在一些实施例中,可以在对编码输入信号应用译码器来生成译码输出信号之前:从通信介质接收信号;和处理所接收的信号来生成编码输入信号。例如,本发明的实施例可以用于对无线、有线、光和其他应用中的编码信号进行译码。
根据本发明的另外实施例,译码装置包括:至少一个处理器,被配置成提供包括多个处理节点的译码器;和包括多个存储位置的存储器,各个存储位置被分配给连接处理节点的相应边沿。处理器和存储器进一步被配置成支持从/向存储位置取出/提供边沿值,使得对于处理节点操作同时存取多个存储位置。所述至少一个处理器和存储器被配置成支持对于处理节点操作同时从多个存储位置读取边沿值和/或对于处理节点操作同时向多个存储位置写入多个边沿值。
处理节点可以包括变量节点和校验节点,并且边沿可以包括连接变量和校验节点的边沿。所述至少一个处理器包括相应第一和第二处理器,其被配置成交替地执行相应变量和校验节点操作。在一些实施例中,所述至少一个处理器包括可配置来交替地执行变量节点和校验节点操作的一处理器。
存储器可以包括为变量节点-校验节点的边沿分配的第一多个存储位置和为校验节点-变量节点的边沿分配第二多个存储位置。处理器可以包括相应第一和第二处理器,其被配置成同时执行变量节点和校验节点操作并将由此产生的边沿值存储在相应第一和第二多个存储位置中。
存储器可以包括为各组边沿分配的相应可同时存取的存储单元,使得可以通过同时存取多个可同时存取的存储单元来同时存取特定处理节点的边沿值。可同时存取的存储单元的每一个可以包括多个存储位置,并且所述至少一个处理器可以被配置成在各个不同处理节点操作中存取可同时存取的存储单元中的不同的多个存储位置。
本发明的另外实施例提供用于对编码信号进行译码的计算机程序产品。计算机程序产品包括嵌入在存储介质中的计算机程序并且包括被配置成执行下列操作的程序代码:定义包括多个处理节点的译码器,为连接处理节点的各个边沿分配相应存储位置,以及对编码输入信号应用译码器来生成译码输出信号,通过对于处理节点的操作迭代地从/向存储位置取出/提供边沿值,使得在处理节点操作中同时存取多个存储位置。程序代码可以被配置成同时从/向多个存储位置读取/写入处理节点的边沿值。处理节点可以包括变量节点和校验节点,并且边沿可以包括连接变量和校验节点的边沿。程序代码可以被配置成为各组边沿分配相应可同时存取的存储单元,使得可以通过同时存取多个可同时存取的存储单元来同时存取特定处理节点的边沿值。
在本发明的额外实施例中,一种存储器包括:多个存储位置,各个存储位置被分配给连接译码器的处理节点的相应边沿,并且被配置成支持对于处理节点的操作从/向存储位置取出/提供边沿值,使得对于处理节点操作可同时存取多个存储位置。存储器可以包括为各组边沿分配的相应可同时存取的存储单元,使得可以通过同时存取多个可同时存取的存储单元来同时存取特定处理节点的边沿值。可同时存取的存储单元的每一个可以包括多个存储位置,布置所述多个存储位置使得处理器可以在各个不同处理节点操作中存取可同时存储的存储单元中的不同的多个存储位置。
附图说明
图1-3示出各个码的示例性二部图。
图4是示出示例性变量节点计算的图。
图5和6是示出示例性校验节点计算的图。
图7A和7B是示出根据本发明一些实施例的示例性译码操作的流程图。
图8是示出根据本发明另外实施例的译码器配置的方框图。
图9是示出根据本发明另外实施例的译码器配置的方框图。
图10是示出根据本发明一些实施例的示例性译码操作的流程图。
图11是示出根据本发明另外实施例的译码器配置的方框图。
图12是示出根据本发明另外实施例的示例性译码操作的流程图。
图13-16是示出根据本发明一些实施例的示例性存储器配置的示意图。
图17是示出根据本发明另外实施例的通信接收机的示意图。
具体实施方式
下面将参照示出本发明实施例的附图充分描述本发明。然而,本发明可以以许多不同的形式实现,而不应当认为限于这里所述的实施例。相反,提供这些实施例以便使本公开透彻且完整,并且将向本领域技术人员充分表达本发明的范围。在附图中,为了清楚起见放大了组件。
应当理解,当称“元件”“连接到”或“耦接”到另一元件时,它可以是直接连接或耦接到另一元件或者可以存在中间元件。相反,当称元件“直接连接到”或“直接耦接到”另一元件时,不存在中间元件。相同的附图标记指示相同的元件。这里使用的术语“和/或”包括一个或多个相关列出的项目的任何和所有组合。
应当理解,尽管这里可以使用术语第一、第二、第三等描述各个元件、组件和/或部分,但这些元件、组件和/或部分不受这些术语限制。这些术语仅仅用于将元件、组件或部分相互区分开来。因此,下面讨论的第一元件、组件或部分在不背离本发明教学的前提下可以称为第二元件、组件或部分。
这里使用的术语仅仅是为了描述特定实施例的目的,而并不意图限制本发明。这里使用的单数形式“一”、“一个”和“那(这个)”也意图包含复数形式,除非上下文中明确地指出不包含。应当理解,术语“包括”当用在本说明书中时指示所述特征、整数、步骤、操作、元件和/或组件的存在,但并不排除一个或多个其他特征、整数、步骤、操作、元件、组件和/或其组合的存在或添加。
除非另有定义,这里使用的所有术语(包括技术和科学术语)具有与本发明所属领域的普通技术人员共同理解的相同含义。还应当理解,诸如在通常字典里定义的那些术语应当被解释为具有与它们在相关技术的上下文中的含义相一致的含义,而不应用理想化或极度形式化的意义来解释,除非这里明确地这样定义。
这里参照支持根据本发明实施例的方法、装置(***)和计算机程序产品的方框图和流程图描述本发明示例性实施例。应当理解,流程图和/或方框图的每个方框以及流程图和/或方框图的方框组合可以通过计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得通过计算机或其他可编程数据处理装置的处理器执行的指令创建实现流程图和/或方框图方框中指定功能/动作的手段。
这些计算机程序指令也可以存储在计算机可读存储器中,可以引导计算机或其他可编程数据处理装置以特定方式运行,使得存储在计算机可读存储器中的指令产生包括实现流程图和/或方框图方框中指定功能/动作的指令手段的制造物品。
计算机程序指令还可以加载到计算机或其他可编程数据处理装置上,导致在计算机或其他可编程装置上执行一系列操作步骤来产生计算机实现的处理,使得计算机或其他可编程装置上执行的指令提供实现流程图和/或方框图方框中指定功能/动作的步骤。每个方框可以表示代码模块、片断或部分,其包括一个或多个用来实现指定逻辑功能的可执行指令。还应当注意,在其他实现中,方框中标出的功能可能不按图中标出的顺序发生。例如,根据所涉及的功能,连续示出的两个方框可能实际上基本上并发地执行,或者方框有时可能以相反的顺序执行。
根据本发明的各种说明性实施例,可以提供方法、装置和计算机程序产品,其中使用消息传递计算结构对编码数据(如由接收信号生成的的编码数据符号(例如比特)流)进行译码,该结构包括处理节点和在处理节点之间传递的“边沿(edge)”值(消息)。将在根据码(例如LDPC码)的译码的应用中描述所示实施例,所述码可以用具有包括“变量”和“校验”节点的二部配置的消息传递结构来进行描述。然而,应当理解本发明也可应用到具有其他结构的码的译码操作。
在本发明的一些实施例中,处理节点操作的多个边沿的存储器存取,例如,包括变量或校验节点的输出边沿集合的计算的操作,是“同时”进行的。这里使用的“同时”存储器存取是指时间上至少部分重合或完全重合的读、写或其他存储器存取操作,从而并行进行至少部分同时存取。
图1-3示出可以根据本发明一些实施例使用二部译码结构译码的码的例子的二部图。图1示出具有变量节点V1,V2,...,V8和校验节点C1,C2,...,C4的正规码的二部图。该图可以用对应的奇偶校验矩阵描述:
其中列对应于变量节点V1,V2,...,V8,并且行对应于校验节点C1,C2,...,C4。图2示出不规则码的二部图,它也可以用奇偶校验矩阵描述:
最后,图3示出具有下面奇偶校验矩阵的分组LDPC码的二部图:
其中,
其中H的列对应于变量节点V11,V12,...V82,V83的组,而H的行对应于校验节点C11,C12,...C42,C43的组。
在图4中示出图1结构的变量节点计算的例子。特别地,将信道编码值LLR-Y(例如,对数似然值)和校验节点的输入边沿值C2V1、C2V2、C2V3和C2V4相加。将产生的和与输入边沿值C2V1、C2V2、C2V3和C2V4有选择地合并来产生校验节点的输出边沿值V2C1、V2C2、V2C3和V2C4。图5和6分别示出校验节点量值和符号计算的例子。根据函数处理变量节点的输入边沿值V2C1,V2C2,...,V2C8,产生值来相加。将和与由输入边沿值V2C1,V2C2,...,V2C8产生的各个值有选择地合并并且根据反函数处理,产生传递到变量节点的量值输出边沿值C2V1,C2V2,...,C2V8。参照图6,将变量节点的输入边沿值V2C1,V2C2,...,V2C8相加,并且将由此产生的和与各个输入边沿值V2C1,V2C2,...,V2C8有选择地合并,来产生传递到变量节点的输出符号边沿值C2V1,C2V2,...,C2V8。
根据本发明的一些实施例,可以通过对于节点处理操作同时存取(读取和/或写入)为边沿值(例如,上面参照图4描述的边沿值V2C1,V2C2,...,V2C8)分配的多个存储位置,实现节点处理操作(例如,包括随同图4-6所示的线的变量和校验节点计算)效率的提高。例如,在本发明的特定实施例中,可以通过使用配置成允许对多个存储位置同时存取的存储器来实现这一点。该存储器可以包括为各组边沿分配的相应可同时存取存储单元,使得可以通过同时存取多个可独立寻址的存储单元来同时存取特定处理节点的边沿值。应当理解,本发明包括最优方案,例如,其中实现存储器存取的最大同时性(或并行性)的方案,以及次优方案,例如,其中实现存储器存取的小于最大同时性的方案。
图7示出根据本发明一些实施例的示例性操作。初始化多个变量节点的输入边沿值(方框705)并从例如解调器接收编码值(方框710)。进入变量节点处理的回合,从存储器中同时取出一个或多个变量节点的多个输入边沿值(方框715),并用它来计算输出边沿值,即,要传递到校验节点的边沿值(方框720)。计算可以根据参照图4所述的那些线;然而应当理解,可以使用任何次数的其他计算。将由此产生的多个输出边沿值的至少一些同时存储(方框725)。如果还有其余变量节点要处理,则如上所述处理这些节点来产生和存储其他的输出边沿值(方框730和715-725)。
一旦处理了所有变量节点,对校验节点执行类似的迭代循环。特别地,一个或多个校验节点的输入边沿值,即,在前面变量节点处理(方框715-725)中生成的输出边沿值被同时读取(方框735)并且用于计算可用于后面变量节点处理的输出边沿值(方框740)。计算可以根据参照图5和6所述的那些线,或者可以包括任何次数的其他计算。将这些输出边沿值的至少一些同时存储(方框745)。如果还有校验节点要处理,则如上所述处理这些节点(方框750和735-745)。
在完成这一回合校验节点处理后,如果满足终止条件(例如,基于计算出的校验节点输出值的条件),则输出解码后的比特(方框760)。然而,如果不满足终止条件,则以变量节点开始启动另一回合节点处理(方框715-725)。
图8示出其中可以实现根据上述参照图7所述的线的操作的装置。译码器820包括一个或多个变量节点处理器824、一个或多个校验节点处理器826、判决单元828和多存取存储器822。特别地,存储器822被配置成支持对为边沿值分配的多个存储位置的同时存取(即,多个同时读取和/或写入)。一个或多个变量节点处理器824被配置成从缓冲器810接收编码值,以便例如图7的方框715-730所示,对于一个或多个节点的变量节点操作从存储器822中同时取出输入边沿值,并且计算和同时输出边沿值到存储器822。类似地,一个或多个校验节点处理器826被配置成对于一个或多个节点同时输入边沿值并计算和同时输出边沿值到存储器822,例如如图7的方框735-745所示。判决单元828可以被配置成评估变量节点和校验节点处理器824、826的迭代操作的终止条件,来相应地控制变量节点和校验节点处理器824、826,并且输出由此产生的译码后的比特。
图9示出根据本发明另外实施例的另一译码装置。译码器920包括对从缓冲器810取出的编码值进行译码的多个节点处理器924a,924b,..,924n。译码器920还包括存储器922,其被配置成提供对多个存储位置的同时存取,所述多个存储位置存储节点处理器924a,924b,..,924n的节点处理操作的边沿值。节点处理器924a,924b,..,924n可以被配置成提供变量和/或校验节点处理操作。例如,各组处理节点可以被分到相应组或变量和/或校验节点。该分配可以是固定的或用户可配置的,例如,节点处理器924a,924b,..,924n可以根据应用的特定码而不同地分配。译码器920还包括判决单元926,其响应于存储器922控制节点处理器924a,924b,..,924n。
应当理解,图9所示的配置可以用于实现根据参照图7所述的线的操作。例如,可以为变量和校验节点分配各组节点处理器924a,924b,..,924n,并且如图7所示交替操作。或者,可以交替使用节点处理器924a,924b,..,924n来执行变量和校验节点计算,例如,在给定的处理回合中,节点处理器924a,924b,..,924n可以首先被配置成用作变量节点处理器,然后在变量节点处理完成后,重新配置来执行校验节点处理。
图10示出根据本发明一些实施例的、可使用根据图9的线的结构执行的其他示例性译码操作。初始化边沿值(方框1005)并接收编码值(方框1010)。进入迭代循环,读取多个处理节点的输入边沿值(方框1015),并且使用它们计算输出边沿值(方框1020),同时地存储输出边沿值(方框1025)。特别地,多个节点可以包括多个变量节点、校验节点或其组合。处理变量节点和校验节点的顺序可以取决于节点之间的关系,即,计算边沿值的顺序可以基于它们何时可以用于后面的计算。在特定回合的节点处理完成之后(方框1030),译码器确定是否满足终止条件(方框1035)。如果满足,则译码器输出译码后的比特(方框1040)。否则,译码器开始新一回合的节点处理操作(方框1015以及下列等等)。
图11示出根据本发明另外实施例的另一译码器配置。译码器1120从缓冲器1110接收编码值。译码器1120包括被配置成存储变量节点输入/校验节点输出边沿值的第一存储器1122a和被配置成存储变量节点输出/校验节点输入值的第二存储器1122b。节点处理器1124a,1124b,..,1124n被配置成同时地存取存储器1122a、1122b中的多个边沿值存储位置。译码器1120还包括判决单元1126,其响应于存储器1122a、1122b,控制节点处理器1124a,1124b,..,1124n。该配置可以提供节点处理的额外并行性。
图12示出可使用根据图11所示计算结构执行的示例性节点处理操作。初始化边沿值(方框1205)并接收编码值(方框1210)。可以并行地进行两个迭代节点处理过程。在第一循环中,同时地从第一存储器中读取第一组节点的输入边沿值(方框1215),并且使用它们计算输出边沿值(方框1220),将它们的至少一些同时地写入第二存储器(方框1225)。重复这些操作直到处理了第一组节点中的所有节点为止(方框1230、1215-1225)。在并行的第二循环中,同时地从第一存储器中读取第二组节点的输入边沿值(方框1235),并且使用它们计算输出边沿值(方框1240),然后将它们同时地写入第一存储器(方框1245)。重复这些操作直到处理了第二组节点中的所有节点为止(方框1250、1235-1245)。应当理解,在循环执行期间,可以使用一个循环计算出的边沿值作为并行执行的循环的输入边沿值。在满足终止条件时(方框1255),终止循环,并且输出译码后的比特(方框1260)。
应当理解,可以以多种不同方式提供存储器中的同时存取性。例如,存储器可以包括可以同时存取的可独立控制(即,可独立寻址)的存储单元。
图13-16示出可以用在本发明各种实施例中的示例性存储器配置。特别地,图13示出被配置对图1所示的码进行译码操作的存储器1300。参照图13,存储器1300被分成多个可同时存取的块SMB1,SMB2,...,SMB15。存储位置A1,A2,...,A32和B1,B2,...,B32用于存储边沿值。对应于变量节点V1,V2,...,V8和校验节点C1,C2,C3,C4的边沿值如箭头所示存储。因此,例如,为了计算变量节点V1的输出边沿值,同时读取块SMB1和SMB3来分别从位置A1和A3取出对应于校验节点C1和C3的输入边沿值。然后将计算出的变量节点V1的输出边沿值同时分别写入到块SMB5和SMB7中的位置B1和B3,位置B1和B3是校验节点C1和C3的输入边沿存储位置。对于校验节点C1,分别从方框SMB5、SMB8、SMB9和SMB12中的位置B1、B13、B17和B29同时读取输入边沿值。
图14示出根据本发明另外实施例的另一示例性存储器配置。存储器1400包括多个可同时存取的存储块SMB1,SMB2,...,SMB15。存储位置A1,A2,...,A32和B1,B2,...,B32用于存储边沿值。对应于变量节点V1,V2,...,V8和校验节点C1,C2,C3,C4的边沿值如箭头所示存储。因此,例如,为了计算变量节点V1的输出边沿值,同时读取块SMB1和SMB3来分别从位置A1和A3取出对应于校验节点C1和C3的输入边沿值。然后将计算出的变量节点V1的输出边沿值同时分别写入到块SMB5和SMB7中的位置B1和B3,位置B1和B3是校验节点C1和C3的输入边沿存储位置。对于校验节点C1,分别从方框SMB5、SMB8、SMB9和SMB12中的位置B1、B13、B17和B29同时读取输入边沿值。应当理解,图14的存储器配置可能不如图13所示的那样充分利用空间。
图15示出根据本发明另外实施例的另一存储器配置。存储器1500包括多个可同时存取的存储块SMB1,SMB2,...,SMB15。存储位置A1,A2,...,A32和B1,B2,...,B32用于存储边沿值。对应于变量节点V1,V2,...,V8和校验节点C1,C2,C3,C4的边沿值如箭头所示存储。因此,例如,为了计算变量节点V1的输出边沿值,同时读取块SMB8和SMB10来分别从位置A1和A3取出对应于校验节点C1和C3的输入边沿值。然后将计算出的变量节点V1的输出边沿值同时分别写入到块SMB 12和SMB14中的位置B1和B3,位置B1和B3是校验节点C1和C3的输入边沿存储位置。对于校验节点C1,分别从块SMB12、SMB9、SMB8和SMB5中的位置B1、B13、B17和B29同时读取输入边沿值。应当理解,该配置可以提供与图14的配置相同的空间利用率。
图16示出根据本发明另外实施例的另一示例性存储器配置。存储器1600包括多个可同时存取的块SMB1,SMB2,...,SMB8。存储位置A1,A2,...,A16和B1,B2,...,B16用于存储边沿值,其对应于存储图1的二部图的边沿值所需的最小数量的存储位置(32)。可以探索式地(heuristically)为边沿分配存储位置A1,A2,...,A16和B1,B2,...,B16以允许节点处理的同时读取和/或写入。探索式布置可以提供存储器1600的期望存储器存取速度和/或空间利用率(例如,达到最优的程度)。应当理解,存储位置A1,A2,...,A16和B1,B2,...,B16的最优分配通常取决于实现节点处理的方式和应用的码结构。例如,使用图16所示的存储器结构对根据图7所示的操作的处理可能导致与对图10所示处理操作的情况不同的位置A1,A2,...,A16和B1,B2,...,B16对边沿的最优分配。
图17示出根据本发明另外实施例的示例性应用。通信接收机1700(例如,无线终端或数字电视终端)在其天线1710处接收无线通信信号。下变频器1720将接收到的无线信号转换成中频(IF)信号,通过解调器1730解调来产生基带信号。应当理解,基带信号可能经过纠错码(如LDPC码)编码。根据本发明实施例操作的译码器1740对基带信号进行译码来产生译码后的信号,后者可以在译码后电路1750中进一步处理来产生例如音频和/或视频输出。应当理解,译码器1740可以例如执行如上参照图7-16所述的操作。还应当理解,尽管图17示出在无线通信中的本发明实施例的应用,但本发明也可应用到其他通信应用中,如有线和光通信以及数据存储和检索。
上面是对本发明的说明,而不应被认为是对其的限制。尽管描述了本发明的若干示例性实施例,但本领域技术人员将容易地理解,在不背离本发明的新颖教学和优点的前提下可以对示例性实施例进行许多修改。因此,所有这些修改都意图包含在权利要求书所限定的本发明范围内。应当理解,上面是对本发明的说明,而不应被认为是限于所公开的特定实施例,并且对所公开的实施例以及其他实施例的修改意图包含在所附权利要求书的范围内。本发明由权利要求书及其等效物限定。
Claims (25)
1.一种译码方法,包括:
为连接译码器的处理节点的各个边沿分配相应存储位置,所述译码器包括多个处理节点,其中处理节点包括变量节点和校验节点,并且其中所述边沿包括连接变量和校验节点的边沿;和
对编码输入信号应用译码器来生成译码输出信号,包括迭代地从存储位置取出边沿值和向存储位置提供边沿值,使得在处理节点操作中同时存取多个存储位置,以及在所有处理节点已被处理并且满足终止条件之后,输出变量节点的值作为译码的输出信号,
其中,迭代地从存储位置取出边沿值和向存储位置提供边沿值包括:
同时从第一多个存储位置读取一处理节点的多个边沿值;
由多个读取的边沿值计算该处理节点的多个边沿值;和
同时将多个计算出的边沿值写入到第二多个存储位置。
2.如权利要求1所述的方法,其中,一处理节点的边沿值生成包括:同时从多个存储位置读取该处理节点的边沿值。
3.如权利要求1所述的方法,其中,一处理节点的边沿值生成包括:同时向多个存储位置写入该处理节点的边沿值。
4.如权利要求1所述的方法,其中,对编码输入信号应用译码器包括:在相应第一和第二处理器中交替地执行变量和校验节点操作。
5.如权利要求1所述的方法,其中,对编码输入信号应用译码器包括:
配置至少一个处理器来执行变量节点操作;
使用所述至少一个处理器来计算变量节点输出边沿值;
重新配置所述至少一个处理器来执行校验节点操作;和
使用所述至少一个处理器来计算校验节点输出边沿值。
6.如权利要求1所述的方法,
其中,为连接变量和校验节点的各个边沿分配相应存储位置包括:为变量节点-校验节点的边沿分配第一多个存储位置,以及为校验节点-变量节点的边沿分配第二多个存储位置;以及
其中,应用译码器包括:在相应第一和第二处理器中同时执行变量节点和校验节点操作并将由此产生的边沿值存储在相应第一和第二多个存储位置中。
7.如权利要求1所述的方法,其中,变量和校验节点根据奇偶校验矩阵在功能上相关联。
8.如权利要求7所述的方法,其中,奇偶校验矩阵对应于低密度奇偶校验码。
9.如权利要求1所述的方法,其中,为连接处理节点的各个边沿分配相应存储位置包括:为各组边沿分配相应可同时存取的存储单元,使得可以通过同时存取多个可同时存取的存储单元来同时存取特定处理节点的边沿值。
10.如权利要求9所述的方法,其中可同时存取的存储单元的每一个包括在各个不同处理节点操作中存取的多个存储位置。
11.如权利要求1所述的方法,其中,在对编码输入信号应用译码器来生成译码输出信号之前:
从通信介质接收信号;和
处理所接收的信号来生成编码输入信号。
12.一种译码装置,包括:
至少一个处理器,被配置成提供包括多个处理节点的译码器,其中处理节点包括变量节点和校验节点,并且其中所述边沿包括连接变量和校验节点的边沿;和
包括多个存储位置的存储器,各个存储位置被分配给连接处理节点的相应边沿,
其中,处理器和存储器进一步被配置成支持从存储位置取出边沿值和向存储位置提供边沿值,使得对于处理节点操作同时存取多个存储位置,以及在所有处理节点已被处理并且满足终止条件之后,输出变量节点的值作为译码的输出信号,
其中,迭代地从存储位置取出边沿值和向存储位置提供边沿值包括:
同时从第一多个存储位置读取一处理节点的多个边沿值;
由多个读取的边沿值计算该处理节点的多个边沿值;和
同时将多个计算出的边沿值写入到第二多个存储位置。
13.如权利要求12所述的装置,其中,所述至少一个处理器和存储器被配置成支持对于处理节点操作同时从多个存储位置读取边沿值。
14.如权利要求12所述的装置,其中,所述至少一个处理器和存储器被配置成支持对于处理节点操作同时向多个存储位置写入多个边沿值。
15.如权利要求12所述的装置,其中,所述至少一个处理器和存储器被配置成支持同时从第一多个存储位置读取一个处理节点的多个边沿值;
由多个读取的边沿值计算这一个处理节点的多个边沿值,并且同时将多个计算出的边沿值写入到第二多个存储位置。
16.如权利要求12所述的装置,其中,所述至少一个处理器包括相应第一和第二处理器,其被配置成交替地执行相应变量和校验节点操作。
17.如权利要求12所述的装置,其中,所述至少一个处理器包括可配置来交替地执行变量节点和校验节点操作的一处理器。
18.如权利要求12所述的装置,其中,存储器包括为变量节点-校验节点的边沿分配的第一多个存储位置和为校验节点-变量节点的边沿分配的第二多个存储位置,并且其中,处理器包括相应第一和第二处理器,其被配置成同时执行变量节点和校验节点操作并将由此产生的边沿值存储在相应第一和第二多个存储位置中。
19.如权利要求12所述的装置,其中,存储器包括为各组边沿分配的相应可同时存取的存储单元,使得可以通过同时存取多个可同时存取的存储单元来同时存取操作中的处理节点的边沿值。
20.如权利要求19所述的装置,其中可同时存取的存储单元的每一个包括多个存储位置,并且其中所述至少一个处理器被配置成在各个不同处理节点操作中存取可同时存取的存储单元中的不同的多个存储位置。
21.一种包括如权利要求12所述的装置的通信接收机。
22.如权利要求12所述的装置,其中,所述至少一个处理器是用户可配置的。
23.一种存储器,包括:
多个存储位置,各个存储位置被分配给连接译码器的处理节点的相应边沿,并且被配置成支持对于处理节点的操作从存储位置取出边沿值和向存储位置提供边沿值,使得对于处理节点操作可同时存取多个存储位置,其中处理节点包括变量节点和校验节点,并且其中,迭代地从存储位置取出边沿值和向存储位置提供边沿值包括:
同时从第一多个存储位置读取一处理节点的多个边沿值;
由多个读取的边沿值计算该处理节点的多个边沿值;和
同时将多个计算出的边沿值写入到第二多个存储位置。
24.如权利要求23所述的存储器,包括为各组边沿分配的相应可同时存取的存储单元,使得可以通过同时存取多个可同时存取的存储单元来同时存取操作中的处理节点的边沿值。
25.如权利要求24所述的存储器,其中,可同时存取的存储单元的每一个包括多个存储位置,布置所述多个存储位置使得处理器可以在各个不同处理节点操作中存取可同时存储的存储单元中的不同的多个存储位置。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR46524/05 | 2005-06-01 | ||
KR1020050046524A KR100727316B1 (ko) | 2005-06-01 | 2005-06-01 | 저밀도채리티체크 채널 디코딩 방법 및 장치 |
US11/258,459 | 2005-10-25 | ||
US11/258,459 US7571375B2 (en) | 2005-06-01 | 2005-10-25 | Methods for message passing decoding using simultaneous memory accesses |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1874164A CN1874164A (zh) | 2006-12-06 |
CN1874164B true CN1874164B (zh) | 2010-06-16 |
Family
ID=37484471
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006100923303A Active CN1874164B (zh) | 2005-06-01 | 2006-06-01 | 使用同时存储器存取的消息传递译码装置和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7571375B2 (zh) |
KR (1) | KR100727316B1 (zh) |
CN (1) | CN1874164B (zh) |
TW (1) | TW200703923A (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7818649B1 (en) * | 2005-11-30 | 2010-10-19 | Aquantia Corporation | Efficient message passing scheme of iterative error correcting decoders |
US7661055B2 (en) * | 2005-12-05 | 2010-02-09 | Broadcom Corporation | Partial-parallel implementation of LDPC (Low Density Parity Check) decoders |
US7530002B2 (en) * | 2006-01-03 | 2009-05-05 | Broadcom Corporation | Sub-matrix-based implementation of LDPC (Low Density Parity Check) decoder |
US7617433B2 (en) * | 2006-01-03 | 2009-11-10 | Broadcom Corporation | Implementation of LDPC (low density parity check) decoder by sweeping through sub-matrices |
US7613981B2 (en) * | 2006-10-06 | 2009-11-03 | Freescale Semiconductor, Inc. | System and method for reducing power consumption in a low-density parity-check (LDPC) decoder |
WO2008142683A2 (en) * | 2007-05-21 | 2008-11-27 | Ramot At Tel Aviv University Ltd. | Memory-efficient ldpc decoding |
US8230312B1 (en) | 2008-01-09 | 2012-07-24 | Marvell International Ltd. | Iterative decoder memory arrangement |
US8458556B2 (en) * | 2009-10-09 | 2013-06-04 | Stmicroelectronics, Sa | Low complexity finite precision decoders and apparatus for LDPC codes |
CN103155421B (zh) * | 2011-01-14 | 2016-11-09 | 马维尔国际贸易有限公司 | Ldpc多解码器架构 |
US9362933B1 (en) | 2011-07-12 | 2016-06-07 | Marvell International Ltd. | Noise-predictive detector adaptation with corrected data |
US8996952B2 (en) | 2012-01-04 | 2015-03-31 | Marvell World Trade Ltd. | High-throughput iterative decoding's defect scan in retry mode of storage system channel |
KR101840252B1 (ko) * | 2012-03-12 | 2018-03-20 | 에스케이하이닉스 주식회사 | 저밀도 패리티 검사 부호용 장치 |
KR101698875B1 (ko) * | 2013-03-14 | 2017-01-24 | 한국전자통신연구원 | Ldpc 부호의 복호 방법 및 장치 |
JP2016144052A (ja) * | 2015-02-02 | 2016-08-08 | 株式会社東芝 | 復号装置および復号方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1358028A (zh) * | 2000-12-07 | 2002-07-10 | 株式会社Ntt都科摩 | 图像编码/解码方法,图像编码装置和图像解码装置 |
CN1481130A (zh) * | 2002-07-26 | 2004-03-10 | 产生低密度奇偶校验码的方法和*** | |
EP1487115A1 (en) * | 2003-06-13 | 2004-12-15 | Broadcom Corporation | LDPC (low density parity check) coded modulation symbol decoding |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100582560B1 (ko) * | 1999-07-13 | 2006-05-23 | 브이케이 주식회사 | 디지털 통신용 채널 부호기 |
JP4234927B2 (ja) * | 2000-04-14 | 2009-03-04 | 富士通株式会社 | 光波長多重伝送システム及び光出力制御方法及び光波長多重伝送装置 |
US7415079B2 (en) * | 2000-09-12 | 2008-08-19 | Broadcom Corporation | Decoder design adaptable to decode coded signals using min* or max* processing |
US6633856B2 (en) * | 2001-06-15 | 2003-10-14 | Flarion Technologies, Inc. | Methods and apparatus for decoding LDPC codes |
US6829308B2 (en) | 2002-07-03 | 2004-12-07 | Hughes Electronics Corporation | Satellite communication system utilizing low density parity check codes |
KR100519335B1 (ko) * | 2002-12-31 | 2005-10-07 | 엘지전자 주식회사 | 채널 인터리빙 방법 |
JP4225163B2 (ja) * | 2003-05-13 | 2009-02-18 | ソニー株式会社 | 復号装置および復号方法、並びにプログラム |
-
2005
- 2005-06-01 KR KR1020050046524A patent/KR100727316B1/ko active IP Right Grant
- 2005-10-25 US US11/258,459 patent/US7571375B2/en active Active
-
2006
- 2006-05-23 TW TW095118214A patent/TW200703923A/zh unknown
- 2006-06-01 CN CN2006100923303A patent/CN1874164B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1358028A (zh) * | 2000-12-07 | 2002-07-10 | 株式会社Ntt都科摩 | 图像编码/解码方法,图像编码装置和图像解码装置 |
CN1481130A (zh) * | 2002-07-26 | 2004-03-10 | 产生低密度奇偶校验码的方法和*** | |
EP1487115A1 (en) * | 2003-06-13 | 2004-12-15 | Broadcom Corporation | LDPC (low density parity check) coded modulation symbol decoding |
Also Published As
Publication number | Publication date |
---|---|
US20060274772A1 (en) | 2006-12-07 |
TW200703923A (en) | 2007-01-16 |
US7571375B2 (en) | 2009-08-04 |
KR100727316B1 (ko) | 2007-06-12 |
KR20060125947A (ko) | 2006-12-07 |
CN1874164A (zh) | 2006-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1874164B (zh) | 使用同时存储器存取的消息传递译码装置和方法 | |
US7133853B2 (en) | Methods and apparatus for decoding LDPC codes | |
KR101504101B1 (ko) | 적어도 두 개의 디코딩 매소드를 디코딩하기 위한 asip 아키텍처 | |
US8739001B2 (en) | LDPC encoding and decoding techniques | |
CN102835032B (zh) | 用于循环行列式大小非整数倍的准循环ldpc编码和解码 | |
US20110029756A1 (en) | Method and System for Decoding Low Density Parity Check Codes | |
US20090113256A1 (en) | Method, computer program product, apparatus and device providing scalable structured high throughput LDPC decoding | |
US20070089018A1 (en) | Error correction decoder, method and computer program product for block serial pipelined layered decoding of structured low-density parity-check (LDPC) codes, including reconfigurable permuting/de-permuting of data values | |
US8869003B2 (en) | Method, apparatus, computer program product and device providing semi-parallel low density parity check decoding using a block structured parity check matrix | |
US20070089019A1 (en) | Error correction decoder, method and computer program product for block serial pipelined layered decoding of structured low-density parity-check (LDPC) codes, including calculating check-to-variable messages | |
US9595977B2 (en) | LDPC decoder with efficient circular shifters | |
CN112134570A (zh) | 一种应用于深空通信的多模式ldpc译码器 | |
US10790854B2 (en) | Coset probability based majority-logic decoding for non-binary LDPC codes | |
US20170134048A1 (en) | Message-passing based decoding using syndrome information, and related methods | |
CN102594369B (zh) | 基于fpga的准循环低密度校验码译码器及译码方法 | |
CN115694513A (zh) | 一种基于移位型基图的超高吞吐率ldpc译码器 | |
CN116073839A (zh) | 一种提升ldpc译码器短码译码效率的方法及装置 | |
CN113055025A (zh) | 可重构的极化码与低密度奇偶校验码译码器 | |
KR101073636B1 (ko) | 저밀도 패리티 검사 부호를 이용한 복호화 장치 | |
趙雄心 | Research on LDPC Decoder Design Methodology for Error-Correcting Performance and Energy-Efficiency | |
JP2006340341A (ja) | 同時メモリアクセスを利用したメッセージ伝達デコーディング装置及び方法 |
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 |