CN1874164B - 使用同时存储器存取的消息传递译码装置和方法 - Google Patents

使用同时存储器存取的消息传递译码装置和方法 Download PDF

Info

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
memory
edge
check
value
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
Application number
CN2006100923303A
Other languages
English (en)
Other versions
CN1874164A (zh
Inventor
金龙云
金东柱
徐赍源
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN1874164A publication Critical patent/CN1874164A/zh
Application granted granted Critical
Publication of CN1874164B publication Critical patent/CN1874164B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/1137Partly parallel processing, i.e. sub-blocks or sub-groups of nodes being processed in parallel
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6563Implementations 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的正规码的二部图。该图可以用对应的奇偶校验矩阵描述:
H = 1 0 0 1 1 0 0 1 0 1 1 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 1 1 0
其中列对应于变量节点V1,V2,...,V8,并且行对应于校验节点C1,C2,...,C4。图2示出不规则码的二部图,它也可以用奇偶校验矩阵描述:
H = 1 0 0 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 1 0 0 1 0 1 0 0 0 1 0 1 1 0
最后,图3示出具有下面奇偶校验矩阵的分组LDPC码的二部图:
H = P 1 0 0 P 2 P 0 0 0 P 1 0 P 2 P 1 0 P 0 0 P 0 0 P 1 0 P 2 0 0 P 1 0 P 2 0 P 0 0 P 2 0 P 1 P 1 0
其中,
P 1 = 0 1 0 0 0 1 1 0 0 ,
P 2 = 0 0 1 1 0 0 0 1 0 , 并且
P 0 = 1 0 0 0 1 0 0 0 1
其中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分别示出校验节点量值和符号计算的例子。根据函数
Figure G2006100923303D00077
处理变量节点的输入边沿值V2C1,V2C2,...,V2C8,产生值来相加。将和与由输入边沿值V2C1,V2C2,...,V2C8产生的各个值有选择地合并并且根据
Figure G2006100923303D00081
反函数处理,产生传递到变量节点的量值输出边沿值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所述的存储器,其中,可同时存取的存储单元的每一个包括多个存储位置,布置所述多个存储位置使得处理器可以在各个不同处理节点操作中存取可同时存储的存储单元中的不同的多个存储位置。
CN2006100923303A 2005-06-01 2006-06-01 使用同时存储器存取的消息传递译码装置和方法 Active CN1874164B (zh)

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)

* Cited by examiner, † Cited by third party
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
US7617433B2 (en) * 2006-01-03 2009-11-10 Broadcom Corporation Implementation of LDPC (low density parity check) decoder by sweeping through sub-matrices
US7530002B2 (en) * 2006-01-03 2009-05-05 Broadcom Corporation Sub-matrix-based implementation of LDPC (Low Density Parity Check) decoder
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
KR101492595B1 (ko) * 2007-05-21 2015-02-11 라모트 앳 텔-아비브 유니버시티 리미티드 메모리 효율적인 ldpc 디코딩
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
US8756479B2 (en) * 2011-01-14 2014-06-17 Marvell World Trade Ltd. LDPC multi-decoder architectures
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 ソニー株式会社 復号装置および復号方法、並びにプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
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
KR100727316B1 (ko) 2007-06-12
US7571375B2 (en) 2009-08-04
CN1874164A (zh) 2006-12-06
US20060274772A1 (en) 2006-12-07
KR20060125947A (ko) 2006-12-07
TW200703923A (en) 2007-01-16

Similar Documents

Publication Publication Date Title
CN1874164B (zh) 使用同时存储器存取的消息传递译码装置和方法
US11381255B2 (en) Vertical layered finite alphabet iterative decoding
US7552097B2 (en) Methods and apparatus for decoding LDPC codes
CN101079639B (zh) 基于节点存储器的低密度奇偶校验解码装置和方法
CN100583651C (zh) 用于使用信道代码解码的装置和方法
CN101449463B (zh) Ldpc解码方法和装置
CN101499804B (zh) 准循环低密度校验码的多码率译码器
CN101777921B (zh) 用于显式存储片上系统的结构化ldpc码译码方法及装置
US8145986B2 (en) Multi-CSI (Cyclic Shifted Identity) sub-matrix based LDPC (Low Density Parity Check) codes
CN103618556A (zh) 基于rmp调度的部分并行qc-ldpc译码方法
US8271851B2 (en) Encoding and decoding a data signal as a function of a correcting code
CN101154948A (zh) 利用共享硬件及顺序和-积体系结构进行低密度奇偶校验解码的方法和设备
US20120317466A1 (en) Method and apparatus for data check processing
EP1883161B1 (en) Combined LDPC (low density parity check) encoder and syndrome checker
CN113783576A (zh) 用于从循环置换矩阵的集群构建的准循环低密度奇偶校验码的垂直分层解码的方法及设备
US20170134048A1 (en) Message-passing based decoding using syndrome information, and related methods
CN1822510A (zh) 高速的减少存储需求的低密度校验码解码器
CN101707510A (zh) 一种高速Turbo译码方法和装置
CN107733441B (zh) 编码方法及装置、译码方法及装置
CN105515588B (zh) 一种ldpc‑cc高速译码器
CN102594369B (zh) 基于fpga的准循环低密度校验码译码器及译码方法
US9374107B1 (en) Time shared protograph LDPC decoder
CN115694513A (zh) 一种基于移位型基图的超高吞吐率ldpc译码器
KR101073636B1 (ko) 저밀도 패리티 검사 부호를 이용한 복호화 장치
趙雄心 Research on LDPC Decoder Design Methodology for Error-Correcting Performance and Energy-Efficiency

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