CN101971504A - 用于多个代码类型的可编程解码的方法和设备 - Google Patents

用于多个代码类型的可编程解码的方法和设备 Download PDF

Info

Publication number
CN101971504A
CN101971504A CN2008801276098A CN200880127609A CN101971504A CN 101971504 A CN101971504 A CN 101971504A CN 2008801276098 A CN2008801276098 A CN 2008801276098A CN 200880127609 A CN200880127609 A CN 200880127609A CN 101971504 A CN101971504 A CN 101971504A
Authority
CN
China
Prior art keywords
code
data
decoder
type
equipment
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.)
Pending
Application number
CN2008801276098A
Other languages
English (en)
Inventor
A·安德利夫
S·格利伯克
O·伊兹于米恩
R·什切潘诺维奇
I·维克利安特塞夫
V·沃科维克
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.)
LSI Corp
Infineon Technologies North America Corp
Original Assignee
Infineon Technologies North America Corp
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 Infineon Technologies North America Corp filed Critical Infineon Technologies North America Corp
Publication of CN101971504A publication Critical patent/CN101971504A/zh
Pending legal-status Critical Current

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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • H03M13/296Particular turbo code structure
    • 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/27Coding, 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 using interleaving techniques
    • H03M13/2703Coding, 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 using interleaving techniques the interleaver involving at least two directions
    • H03M13/2725Turbo interleaver for 3rd generation partnership project 2 [3GPP2] mobile telecommunication systems, e.g. as defined in the 3GPP2 technical specifications C.S0002
    • 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/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • 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/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • H03M13/6513Support of multiple code types, e.g. unified decoder for LDPC and turbo codes
    • 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/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • H03M13/6519Support of multiple transmission or communication standards
    • 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/6522Intended application, e.g. transmission or communication standard
    • H03M13/65253GPP LTE including E-UTRA
    • 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/6522Intended application, e.g. transmission or communication standard
    • H03M13/6544IEEE 802.16 (WIMAX and broadband wireless access)
    • 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/6569Implementation on processors, e.g. DSPs, or software implementations

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

本发明提供了用于多个代码类型的可编程解码的方法和设备。一种用于对使用多个代码类型之一而编码的数据进行解码的方法,其中,每个代码类型对应于一个通信标准。标识与数据相关联的代码类型,并将数据分配给多个可编程并行解码器。所述可编程并行解码器能够被重配置为对使用所述多个代码类型中的每一个而编码的数据进行解码。还提供了一种用于使用通信网络在M个并行解码器之中对数据进行交织的方法。采用交织器表,其中,交织器表中的每个条目将所述M个并行解码器中的一个识别为用于已交织的数据的通信网络的目标解码器和目标地址。通过将数据写入通信网络的目标地址来对数据进行交织。所述通信网络可以包括例如纵横开关和/或一个或多个先进先出缓冲器。

Description

用于多个代码类型的可编程解码的方法和设备
技术领域
本发明总体上涉及用于数字通信的纠错编码技术,更特别地,涉及用于诸如卷积和turbo码的多个代码的并行解码和交织的技术。
背景技术
图1是典型数字通信100的方框图。如图1所示,数字源110产生二进制消息序列。在下文中,示例性信道编码器120使用前向纠错编码方案,以增加源消息的冗余并将源消息变换成编码消息(常常称为码字)。通常,纠错编码提供对信道噪声的增强的适应力。调制器130将编码消息变换成适合于通过信道140传输的信号。这些信号进入信道140且通常被信道上的噪声和干扰改变。
在接收机处,解调器150从信道140接收带噪声的信号并将接收到的信号转换成符号块。信道解码器160利用由信道编码器120引入的冗余来尝试校正由信道140添加的任何错误并恢复原始消息。已经提出或建议许多不同的解码技术以对使用纠错码编码的信号进行解码。
用于无线通信系统的纠错编码技术常常在信号被调制之前采用数据的卷积或turbo编码,以便可以校正由信道上的噪声和干扰引入的错误。通常,卷积码是其中每个m位串被变换成n位符号的纠错码,其中,m/n是编码率(m大于或等于m)且该变换是先前的k个信息符号的函数,其中,k是代码的约束长度。Turbo码是另一类纠错码,其据说是接近由香农理论施加的理论极限,相对于类似性功能所需的卷积码而言具有降低的解码复杂性。
逐渐地,通信装置必须支持多个通信标准。例如,WiMAX(微波存取全球互通)(IEEE 802.16无线宽带标准)、LTE(长期演进)(3GPP 4G技术)、UMB(超移动宽带)(CDMA发展小组和第三代合作伙伴计划2)和WCDMA(宽带码分多址)通信标准中的每一个要求对一个或更多比率下的至少一个卷积编码技术和至少一个卷积turbo编码技术(或其组合)的支持。
[0001]因此,存在对支持多个通信标准的可重配置或可编程解码器的需要。存在对支持用于许多不同的现有和未来通信标准的编码或解码(或两者)和符号处理功能的可编程编码器/解码器(编解码器)的需要。
发明内容
一般而言,提供了用于多个代码类型的可编程解码的方法和设备。根据本发明的一方面,提供了一种用于对使用多个代码类型中的一个而编码的数据进行解码的方法,其中,每个代码类型对应于一个通信标准。所述解码方法包括步骤:标识与数据相关联的代码类型;向多个可编程并行解码器分配数据,其中,所述可编程并行解码器可被重配置以对使用所述多个代码类型中的每一个而编码的数据进行解码;以及将数据和相关联的代码类型提供给所分配的可编程并行解码器。可以基于所标识的代码类型将程序代码(例如,从本地存储器)加载到所述可编程并行解码器中的一个或多个。
根据本发明的另一方面,提供了一种用于生成供对至少一个代码类型的数据进行解码的M个并行解码器使用的一个或多个交织器表的方法。该交织器表生成方法包括步骤:基于用于至少一个代码类型的通信标准生成第一交织器表;以及将第一交织器表M等分以产生具有M个集群的第二交织器表,其中,第二交织器表中的每个条目指示M个并行解码器中的一个作为用于已交织的数据的目标解码器和目标地址。然后可以使用通信网络在M个并行解码器之中对数据进行交织。
根据本发明的另一方面,提供了一种用于在M个并行解码器中对数据进行交织的方法。该交织方法包括步骤:读取要解码的数据;访问交织器表,其中,交织器表中的每个条目标识所述M个并行解码器中的一个作为用于已交织的数据的通信网络的目标解码器和目标地址;以及将数据写入通信网络的目标地址。所述通信网络可以包括例如纵横开关和/或一个或多个先进先出缓冲器。
通过参照以下详细说明和附图,将获得对本发明的更全面理解以及本发明的其它特征和优点。
附图说明
图1是典型数字通信系统的方框图;
图2是用于对卷积码进行解码的常规MAP解码器所采用的示例性格架的示意性方框图;
图3是用于对turbo码进行解码的示例性常规迭代常规算法300的方框图;
图4是结合了本发明的特征的解码器的示意性方框图;
图5是结合了本发明的特征的图4的示例性计算集群的示意性方框图;以及
图6A至6D示出了四个样本交织器表。
具体实施方式
本发明的多个方面提供了支持多个通信标准的可编程解码器。根据本发明的一方面,图1的常规信道解码器160被修改为提供用于多种编码技术的解码器功能。在一个示例性实施例中,图1的常规信道解码器160被修改为提供用于WiMAX、LTE和UMB纠错协议的解码器功能。根据本发明的另一方面,图1的常规信道解码器160执行所支持的通信标准所需的多种符号处理功能,诸如删余和解删余、循环冗余校验(CRC)生成和检查、交织和解交织、以及复用和解复用。
对于使用卷积和turbo码的编码技术的一般讨论,参见例如如以下各项中所述的IEEE 802.16无线宽带标准:
http://standards.ieee.org/getieee802/download/802.16-2004.pdf,或
http://standards.ieee.org/getieee802/download/802.16e-2005.pdf(WiMAX);或者
或第三代合作伙伴计划技术规范,如以下各项中所述:
http://www.3gpp.org/ftp/Specs/archive/36_series/36.212/36212-810.zip(LTE),或
http:/www.3gpp2.org/Public_html/sρecs/C.S0084-001-0_v2.0_070904.pdf(UMB),每个通过引用结合到本文中。
根据本发明的另一方面,采用多种可编程“线程处理器”来支持许多卷积和turbo状码。另外,将通信网络用于交织而不是一个或多个交织器/解交织器以减少处理时间。
解码基础要素
诸如图1的解码器160,解码器可以逐帧地处理代码字。每个帧包括需要相同代码操作类型的多个代码字。代码字被按照其被接收到的顺序添加到帧且结果被按相同的顺序返回。
对卷积码进行解码
存在用于对卷积码进行解码的许多算法。对于k的相对小的值而言(其中,k是代码的约束长度),常常使用维特比算法,因为其提供最大似然性能并允许并行实施。通常,如本领域的技术人员众所周知的那样,对于较长的代码字,可以将代码字划分成各部分且并行地进行解码。通常进行并行解码以改善解码率。通常,采用重叠窗口,其中,代码字被划分成各部分并由许多解码单元并行地进行解码。因此,解码器在许多组成解码单元之间分发解码任务。解码器接收多个代码块并将代码块分配给解码单元。解码单元并行地执行解码任务,然后,解码器检索(取回)解码结果。
对于用于向具有并行解码单元的turbo解码系统中的组成解码单元分配代码块的技术的详细讨论,参见通过引用结合到本文中的题为“System and Method for Assigning Code Blocks to Constituent Decoder Units in a Turbo Decoder System Having Parallel Decoding Units”的美国专利申请序号No.____(代理人档案号No.08-0240)。
对于k的较大值,通常用多种已知顺序解码算法中的一种来对代码进行解码,诸如众所周知的菲诺(Fano)算法。参见例如通过引用结合到本文中的R.M.Fano“A heuristic Discussion of Probabilistic Decoding”,(1963)。与维特比解码不同,顺序解码技术不采用最大似然技术,但是复杂性仅仅随着约束长度略微增加,允许使用强、长约束长度代码。
维特比和顺序解码算法生成硬判定,指示形成最可能代码字的位。可以通过使用众所周知的软输出维特比算法(SOVA)可选地向每个位添加近似置信度量。可以通过使用BCJR算法(Bahl-Cocke-Jelinek-Raviv算法)来获得用于每个位的最大后验(MAP)软判定。参见例如通过引用结合到本文中的L.Bahl等人的“Optimal Decoding of Linear Codes for Minimizing Symbol Error Rate”(1974年3月)。
图2是由对卷积码进行解码的常规MAP解码器所采用的示例性格架200的示意性方框图。示例性格架200可以例如被计算前向状态度量210和后向状态度量200的MAP解码器以已知的方式用来计算输出L值。图2示出用于诸如位u0至u3的许多输入位的许多编码器状态s0至s3的此类路径度量的计算。
如图2所示,可以如下计算分支度量γl{s′,s):
γ l ( s ′ , s ) = 1 2 ( - L l in - y l 0 - y l 1 ) , { s ′ , 0 } → { s , 0 } 1 2 ( - L l in - y l 0 + y l 1 ) , { s ′ , 0 } → { s , 1 } 1 2 ( + L l in + y l 0 - y l 1 ) , { s ′ , 1 } → { s , 0 } 1 2 ( + L l in + y l 0 + y l 1 ) , { s ′ , 1 } → { s , 1 }
可以如下计算前向度量αl(s):
α 0 ( s ) = 0 , s = 0 - ∞ , s ≠ 0
α l + 1 ( s ) = max * [ γ l ( s i ′ , s ) + α l ( s i ′ ) , γ l ( s j ′ , s ) + α l ( s j ′ ) ]
可以如下计算后向度量βl(s′):
β k ( s ) = 0 , s = 0 - ∞ , s ≠ 0
βl(s′)=max*[γl(s′,si)+βl+1(si),γl(s′,sj)+βl+1(sj)]
可以如下计算输出L值L(ul):
L ( u l ) = ln [ P ( u l = + 1 | r ) P ( u l = - 1 | r ) ]
L ( u l ) = max * ( s ′ , s ) ∈ Σ l ′ [ β l + 1 ( s ) + γ l ( s ′ , s ) + α l ( s ′ ) ]
- max * ( s ′ , s ) ⋐ Σ l [ β l + 1 ( s ) + γ l ( s ′ , s ) + α l ( s ′ ) ]
max*(x,y)=ln(ex+ey)=max(x,y)+ln(1+e-|x-y|)
对Turbo码进行解码
图3是用于对turbo码进行解码的示例性常规迭代常规算法300的方框图。如前所指示的,在诸如3G、4G和IEEE 802.16的许多数据通信标准中使用turbo码。在图3所示的示例性实施例中,将接收到的代码块划分成3个部分:(y0,y1,y2)。矢量(y0,y1)被发送到第一MAP解码器310。MAP解码器310产生矢量L1out,其中,Liout是第i个解码器的输出L值(后验L值)。
由加法器320将矢量L1out与由解交织器340生成的矢量L1in相加(下文讨论)以生成矢量L1ex。Liex是第i个解码器的非本征L值(非本征后验L值)。Liin是第i个解码器的输入L值。矢量L1ex被应用于交织器330。一般而言,交织器330执行矢量分量的某些混合。交织器330的输出是矢量L2in。矢量L2in和矢量(y0,y2)被应用于第二MAP解码器380。MAP解码器380产生矢量L2out。由加法器350将矢量L2out与由交织器330生成的矢量L2in相加以生成矢量L2ex。矢量L2ex被应用于解交织器340。解交织器340执行与由交织器330执行的操作相逆的变换。解交织器340的输出是上文所讨论的矢量L1in。矢量L1in和矢量(y0,y1)被应用于第一MAP解码器310并以迭代的方式继续。由MAP解码器380生成的矢量L2out也被应用于第二解交织器370,其生成位判定。此迭代过程在固定次数的迭代之后或在满足某些特定停止准则的情况下停止。
对于适当解码算法300的更详细讨论,参见例如通过引用结合到本文中的Shu Lin、Daniel Costello的“Error Control Coding”(2d Ed,2004)。一般而言,解码算法300通常支持不同大小的代码块。例如,根据3GPP标准,源消息大小可以在40至5114位范围内变化。解码算法300应高效地处理由不同大小的代码块组成的数据流。另外,对代码块进行解码所需的总时间与代码块大小成比例。解码器160内部的随机存取存储器的总大小与解码器160可以支持的最大代码块的大小成比例。
可编程解码器
图4是结合了本发明的特征的解码器400的示意性方框图。如图4所示,解码器400包括软解码引擎(SDE)410、输入先进先出(FIFO)缓冲器420、加载引擎430、交织器计算单元440、线程处理器450、上载引擎460和输出FIFO缓冲器470。另外,如图4所示,软解码引擎410包括用于以下文所讨论的方式进行交织的通信网络480、和下文结合图5进一步讨论的多个计算集群500-1至500-N(在本文中统称为计算集群500)。
软解码引擎410依照本发明的一个方面对多个代码进行解码,诸如turbo码、卷积码和LDPC码。另外,软解码引擎410可以被配置为同时对多个代码字进行解码。
输入FIFO缓冲器420存储从输入端口405进入解码器400的数据。加载引擎430从FIFO 420接收用于多个代码字的输入数据。另外,加载引擎430借助于连接432从交织器计算单元440读取用于数据的交织地址、借助于连接435从线程处理器450接收控制信号并向通信网络480发送数据。可以例如使用Coware处理器(参见http://www.coware.com/)来实现线程处理器450。
交织器计算单元440生成下文结合图6A至6D进一步讨论的一个或多个交织器表600,其包含被计算集群500用来写入用于下一半迭代的数据的目的地地址。
如前文所指示的,线程处理器450基于程序存储器内容生成用于计算集群500中的解码算法的命令流。线程处理器450用在端口405上接收到的数据从输入端口445接收控制信息。该控制信息包括报头和定义用来对数据进行编码的通信标准的配置数据。例如,所述控制信息可以指定代码的类型(代码类型标识符)、帧中的代码字的数目和代码字长度。如在下文中所讨论的,线程处理器450经由通信网络480向计算集群500提供适当信息。如果线程处理器450确定需要对新的代码类型进行解码,则线程处理器450将向计算集群500发送具有代码类型标识符的参数。如下文结合图5进一步讨论的,计算集群500将在需要时加载适当的程序代码以基于代码类型标识符对代码字进行解码。
输入FIFO缓冲器420存储从输入端口405进入解码器400的数据。上载引擎460从通信网络480接收解码数据并将其应用于输出FIFO缓冲器470。
通信网络480提供组件,诸如线程处理器450和计算集群500,之间的任意可配置连接。在一个示例性实施例中,可以将通信网络480实现为纵横开关或FIFO。在下文题为“并行交织”的小节中进一步讨论通信网络480的操作。
图5是结合了本发明的特征的示例性计算集群500的示意性方框图。如前文所指示的,多个计算集群500并行地对数据进行解码。如图5所示,示例性计算集群500包括线程处理器510、数据存储器520、运算单元530和存储器控制器540。
如前文所指示的,图4的线程处理器450经由通信网络480向计算集群500提供适当的控制信息。如果线程处理器450确定需要对新的代码类型进行解码,则线程处理器450将向计算集群500发送具有代码类型标识符的参数。计算集群500中的线程处理器510将在需要时从数据存储器520(经由存储器控制器540)加载适当的程序代码以基于代码类型标识符对代码字进行解码。在下文题为“并行解码”的小节中进一步讨论由线程处理器510执行的解码操作。通常,读取是本地,并且写根据交织器表700被执行。数据存储器520存储用于对与多个不同通信标准的代码字相关的代码字进行解码的多个程序。
线程处理器510解释程序并根据该程序为运算单元530提供指令。通常,基于诸如LTE的已识别通信标准,从数据存储器520向每个集群500中的线程处理器510加载适当的程序代码、以及交织器表700和用于已识别标准的其它参数(基于例如所指示的代码字大小)。然后,计算集群500可以对已经用相同标准进行编码的所有接收到的代码字进行解码。
并行解码
如上文结合图3所讨论的,解码过程通常是迭代过程。在本发明的示例性实施例中,存在并行操作的四个计算集群500,并且计算集群500在每次迭代期间执行两组操作。在第一半迭代期间(图3中的解码器1),如下文在随后的小节中进一步讨论的,计算集群500读取其自己本机端口的数据(例如,从例如数据存储器520接收到的矢量)和L1in(参见图3)并从交织器表700(表3)获得数据集群的目标地址。然后,计算集群500依照本发明通过使用所指示的目标地址将数据写入通信网络480来对数据进行交织。以这种方式,数据被计算集群500解码并被发送到通信网络480,而不是被计算集群500本地地存储。数据被发送到目标地址且到下一半迭代之前不需要。
在第二半迭代期间(图2中的解码器2),如下文在随后的小节中进一步讨论的,计算集群500再次读取其自己本机端口的数据(例如,从例如数据存储器520接收到的矢量)和L2in(参见图3)并从交织器表700(表4)获得数据集群的目标地址。然后,计算集群500依照本发明通过使用所指示的目标地址将数据写入通信网络480来对数据进行去交织。
使用通信网络的并行交织
图6A至6D示出了四个样本交织器表600。图6A和6B示出用于具有代码字大小K=248的LTE Turbo码的常规交织器和解交织器表。图6A和6D中的表是基于相应的标准文献生成的。使用在http://www.3gpp.org/ftp/Specs/archive/36_series/36.212/36212-810.zip的小节5.1.3.2.3中指定的算法生成示例性表。参数f1和f2取决于块大小K并在LTE标准文献的表5.1.3-3中总结。
在本示例中,代码字大小Ki是248,因此来自标准文献的表5.1.3-3指定参数f1=33且f2=62。这些值用来填充图6A的交织器表和图6B的解交织器表。因此,交织器表600的输入索引i和输出索引j满足以下等式:
i=(33*j+62*j2)mod 248
图6A的示例性交织器表(表1)具有两列。第一列是输入数据索引。第二列是输出(交织)数据索引。例如,图6A中的表的前两行是:
0   0
1   171
此符号表示在交织之后(即,依照本发明写入通信网络480之后),第0个数据字保持在索引0处,而第一(第1)数据字转到索引171。
同样地,图6B的示例性解交织器表(表2)常常称为“逆交织器表”,是图6A的交织器表的逆拷贝。例如,交织器表(图6A)的第一排(第二行)是“1 171”。因此,第二表的第171排是“171 1”。此符号指示在解交织之后(即,依照本发明写入通信网络480之后),第171个数据字被写入索引1。如前文所指示的,本发明的实施例采用多个并行可编程线程处理器510来支持许多卷积和turbo状代码。在示例性实施例中,存在M等于4个并行计算集群500。另外,通信网络480用于对由并行线程处理器510执行的解码过程进行交织。
图6C和6D示出用于具有代码字大小K=248的LTE Turbo码的交织器表和解交织器表及并行解码器实现,其中,M等于4。通常,通过将图6A和6B的原始表M(等于4)等分来生成图6C和6D中的交织器表和解交织器表以创建四个集群。以这种方式,图6C和6D的交织器表和解交织器表允许将交织过程划分以用于并行解码实现。
在图6C中,格式是{<target cluster index><target memory address>}。因此,在图6C的符号中,例如,第一条目620对应于图6A的第一条目并再次指示第0个数据字保持在用于集群0的索引0。同样地,第二条目625指示第一字(对应于行1)转到集群2的索引43(对应于来自图6A的“1 171”的第二条目,用于模64运算)。
同样地,常常称为“用于4个计算集群的“逆交织器表”的图6D的示例性解交织器(表4)是图6C的交织器表的逆向拷贝。通常,图6D的解交织器表以已知的方式向原始位置返回数据。
功能性解码模式
在解码器进入功能模式之前,必须对解码器400(图4)进行初始化。在初始化程序期间,以已知的方式针对解码器的规则操作对其进行编程。通常,在初始化程序期间,向线程处理器510(图5)加载用于通信标准的适当程序、以及将在功能模式期间解码的数据。随着引导(boot)数据开始并继续到达输入FIFO 420,解码器初始化部分读取数据并加载所选线程处理器510。当引导过程完成时,解码器将其状态寄存器设置为预定义值并随后准备开始处理接收到的帧。
在功能模式下,外部块通常向解码器发送数据帧并监视状态寄存器用于处理的结束。当结果已就绪时,在外面获取该结果且可以向解码器发送新的帧。
如前文所指示的,帧包括具有相同解码操作类型的多个代码字。为了指示新的帧已就绪,可以为一个时钟周期设置一个或多个标记。然后,解码器400等待接收后面跟有用于帧中的每个代码字的数据的一组报头。
在一个示例性实施例中,被发送到解码器400的第一报头是帧标题报头(例如,指示操作类型(格式)和帧中的代码字的数目)。然后,解码器接收一组报头,对于帧中的每个代码字而言一个报头。
示例性帧代码字报头指示:
  字段   意义
  代码字长度   代码字中的信息位的数目
  地址   将设置代码字的解码器存储器地址
  处理器ID   将处理代码字的第一线程处理器的ID
  地址的数目   代码字将占用的地址的数目
  处理器的数目   将处理代码字的线程处理器的数目
  线程处理器数据   用于代码字处理的线程处理器参数
在代码字报头之后,可以发送包含用于解码引擎中的所有线程处理器510的线程处理器参数的报头。首先,可以发送标题报头所必需多个周期以指定每个线程处理器510将要处理的代码字的数目。
示例性线程处理器标题报头指示:
  字段   意义
  CW的数目
  处理器ID   线程处理器的ID
  代码字的数目   线程处理器将处理的代码字的数目
然后,为每个线程处理器代码字发送一个报头
  字段   意义
  处理器ID   线程处理器的ID
  代码字ID   线程处理器代码字的ID
  地址   代码字的起始存储器地址
  地址的数目   代码字将占用的地址的数目
  线程处理器数据   用于代码字处理的线程处理器参数
在接收到所有报头之后,解码器400依照报头中的信息接收代码字数据。在本示例性实施例中,假设软值取数据的8位,因此,可以在一个时钟周期中可以接收到至多16个软值。在对完整的帧进行解码之后,解码器将状态寄存器的值设置为预定义值,诸如“DONE”,并可以从输出FIFO 470获取数据。
结论
虽然已关于数据逻辑块描述了本发明的示例性实施例,但如对本领域的技术人员来说显而易见的那样,可以在数字领域中将各种功能由电路元件或状态机实现为软件程序中的处理步骤、硬件、或软件和硬件二者。可以在例如数字信号处理器、微控制器、或通用计算机中采用此类软件。这种硬件和软件可以在在集成电路内实现的电路内体现。
因此,可以以方法和用于实施那些方法的设备的形式来体现本发明的功能。可以以例如,存储在存储介质中、被加载到机器中和/或由其执行、或通过某些传输介质传输的程序代码的形式来体现本发明的一个或多个方面,其中,当将程序代码加载到诸如计算机的机器中并由其来执行时,机器变成用于实施本发明的设备。当在通用处理器上实现时,程序代码片断与处理器组合以提供与特定逻辑电路类似地操作的器件。还可以在集成电路、数字信号处理器、微处理器、以及微控制器中的一个或多个中实现本发明。
通常在晶片的表面上以重复模式实现多个相同的管芯(小片)。每个管芯包括本文所述的器件,并且可以包括其它结构或电路。单独的管芯被从晶片切割或切成小片,随后被封装为集成电路。本领域的技术人员将知道如何切割晶片并将管芯封装以产生集成电路。这样制造的集成电路被视为本发明的一部分。
应理解的是本文所示和所述的实施例和变更仅仅说明本发明的原理,并且在不脱离本发明的范围和精神的情况下本领域的技术人员可以实现各种修改。

Claims (20)

1.一种用于对使用多个代码类型之一而编码的数据进行解码的方法,其中,每个所述代码类型对应于一个通信标准,所述方法包括:
识别与所述数据相关联的所述代码类型;
将所述数据分配到多个可编程并行解码器,其中,所述可编程并行解码器能够被重配置为对使用所述多个代码类型中的每一个而编码的数据进行解码;以及
将所述数据和所述相关联代码类型提供给所述分配的可编程并行解码器。
2.根据权利要求1的方法,还包括基于所述代码类型将程序代码加载到一个或多个所述可编程并行解码器中的步骤。
3.根据权利要求2的方法,还包括基于所述代码类型从用于一个或多个所述可编程并行解码器的本地存储器装置获得程序代码的步骤。
4.根据权利要求1的方法,还包括向一个或多个所述可编程并行解码器提供控制信息的步骤。
5.一种用于生成供对至少一个代码类型的数据进行解码的M个并行解码器使用的一个或多个交织器表的方法,所述方法包括步骤:
基于用于所述至少一个代码类型的通信标准生成第一交织器表;以及
将所述第一交织器表M等分以创建具有M个集群的第二交织器表,其中,所述第二交织器表中的每个条目将所述M个并行解码器中的一个指示为用于已交织的数据的目标解码器和目标地址。
6.根据权利要求5的方法,还包括在所述M个并行解码器之中对所述数据进行交织的步骤。
7.根据权利要求5的方法,还包括使用通信网络对所述数据进行交织的步骤。
8.一种用于在M个并行解码器之中对数据进行交织的方法,所述方法包括步骤:
读取要被解码的数据;
访问交织器表,其中,所述交织器表中的每个条目将所述M个并行解码器之一标识为用于已交织数据的通信网络的目标解码器和目标地址;以及
将所述数据写入所述通信网络的所述目标地址。
9.根据权利要求8的方法,其中,所述通信网络包括纵横开关和一个或多个先进先出缓冲器中的一个或多个。
10.根据权利要求8的方法,其中,所述M个并行解码器对使用所述多个代码类型之一而编码的数据进行解码。
11.一种用于对使用多个代码类型之一而编码的数据进行解码的设备,所述多个代码类型中的每一个对应于一个通信标准,所述设备包括:
存储器;以及
耦合到所述存储器的至少一个处理器,能够操作地用于:
标识与所述数据相关联的所述代码类型;
将所述数据分配到多个可编程并行解码器,其中,所述可编程并行解码器能够被重配置为对利用所述多个代码类型中的每一个而编码的数据进行解码;以及
将所述数据和所述相关联代码类型提供给所述分配的可编程并行解码器。
12.根据权利要求11的设备,其中,所述所述处理器还被配置为基于所述代码类型将程序代码加载到一个或多个所述可编程并行解码器中。
13.根据权利要求12的设备,其中,所述处理器还被配置为基于所述代码类型从用于一个或多个所述可编程并行解码器的本地存储器装置获得程序代码。
14.根据权利要求11的设备,其中,所述设备在集成电路、数字信号处理器、微处理器、微控制器和通用计算机之一中实现。
15.一种用于生成供对至少一个代码类型的数据进行解码的M个并行解码器使用的一个或多个交织器表的设备,所述设备包括:
存储器;以及
耦合到所述存储器的至少一个处理器,能够操作地用于:
基于用于所述至少一个代码类型的通信标准生成第一交织器表;以及
将所述第一交织器表M等分以创建具有M个集群的第二交织器表,其中,所述第二交织器表中的每个条目将所述M个并行解码器之一指示为用于已交织的数据的目标解码器和目标地址。
16.根据权利要求15的设备,其中,所述处理器还被配置为使用通信网络在所述M个并行解码器之中对所述数据进行交织。
17.根据权利要求15的设备,其中,所述设备在集成电路、数字信号处理器、微处理器、微控制器和通用计算机之一中实现。
18.一种用于在M个并行解码器之中对数据进行交织的设备,所述设备包括:
存储器;以及
耦合到所述存储器的至少一个处理器,能够操作地用于:
读取要被解码的数据;
访问交织器表,其中,所述交织器表中的每个条目将所述M个并行解码器之一标识为用于已交织的数据的通信网络的目标解码器和目标地址;以及
将所述数据写入所述通信网络的所述目标地址。
19.根据权利要求18的设备,其中,所述通信网络包括交叉开关和一个或多个先进先出缓冲器中的一个或多个。
20.根据权利要求18的设备,其中,所述设备在集成电路、数字信号处理器、微处理器、微控制器和通用计算机之一中实现。
CN2008801276098A 2008-06-13 2008-12-23 用于多个代码类型的可编程解码的方法和设备 Pending CN101971504A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/138,920 2008-06-13
US12/138,920 US8035537B2 (en) 2008-06-13 2008-06-13 Methods and apparatus for programmable decoding of a plurality of code types
PCT/US2008/088221 WO2009151481A2 (en) 2008-06-13 2008-12-23 Methods and apparatus for progarammable decoding of a plurality of code types

Publications (1)

Publication Number Publication Date
CN101971504A true CN101971504A (zh) 2011-02-09

Family

ID=40456316

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008801276098A Pending CN101971504A (zh) 2008-06-13 2008-12-23 用于多个代码类型的可编程解码的方法和设备

Country Status (7)

Country Link
US (1) US8035537B2 (zh)
EP (2) EP4096101A1 (zh)
JP (2) JP2011523325A (zh)
KR (1) KR101611631B1 (zh)
CN (1) CN101971504A (zh)
TW (1) TWI487293B (zh)
WO (1) WO2009151481A2 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103684682A (zh) * 2012-08-30 2014-03-26 英特尔移动通信有限责任公司 用于并行turbo解码器的工作器和迭代控制
CN112913146A (zh) * 2018-11-07 2021-06-04 瑞典爱立信有限公司 用于3gpp新空口的(解)交织和速率(去)匹配的优化实现方案

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8811452B2 (en) * 2009-12-08 2014-08-19 Samsung Electronics Co., Ltd. Method and apparatus for parallel processing turbo decoder
US20110202819A1 (en) * 2010-02-12 2011-08-18 Yuan Lin Configurable Error Correction Encoding and Decoding
JP5692780B2 (ja) 2010-10-05 2015-04-01 日本電気株式会社 マルチコア型誤り訂正処理システムおよび誤り訂正処理装置
RU2011118108A (ru) * 2011-05-06 2012-11-20 ЭлЭсАй Корпорейшн (US) Устройство (варианты) и способ параллельного декодирования для нескольких стандартов связи
US9256491B1 (en) * 2013-09-23 2016-02-09 Qlogic, Corporation Method and system for data integrity

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1173085A (zh) * 1996-07-17 1998-02-11 通用电气公司 利用并行链接编码的卫星通信系统
US6205187B1 (en) * 1997-12-12 2001-03-20 General Dynamics Government Systems Corporation Programmable signal decoder
US20020029364A1 (en) * 2000-01-03 2002-03-07 Edmonston Brian S. System and method for high speed processing of turbo codes

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0884162A (ja) * 1994-09-14 1996-03-26 Hitachi Ltd ディジタルケーブルサービスの送受信方法および送信装置並びに受信装置
JP2000316033A (ja) * 1999-04-30 2000-11-14 Toshiba Corp 送信装置、受信装置、データ伝送システム、及びデータ伝送方法
US6674971B1 (en) * 1999-09-03 2004-01-06 Teraconnect, Inc. Optical communication network with receiver reserved channel
WO2002054601A1 (en) * 2000-12-29 2002-07-11 Morphics Technology, Inc. Channel codec processor configurable for multiple wireless communications standards
US7346135B1 (en) * 2002-02-13 2008-03-18 Marvell International, Ltd. Compensation for residual frequency offset, phase noise and sampling phase offset in wireless networks
WO2003100599A2 (en) * 2002-05-24 2003-12-04 Koninklijke Philips Electronics N.V. Access to a wide memory
JP4815228B2 (ja) 2006-02-09 2011-11-16 富士通株式会社 ビタビ復号回路および無線機
US8218518B2 (en) * 2006-06-09 2012-07-10 Samsung Electronics Co., Ltd. Interleaver interface for a software-defined radio system
JP4837645B2 (ja) 2006-10-12 2011-12-14 ルネサスエレクトロニクス株式会社 誤り訂正符号復号回路

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1173085A (zh) * 1996-07-17 1998-02-11 通用电气公司 利用并行链接编码的卫星通信系统
US6205187B1 (en) * 1997-12-12 2001-03-20 General Dynamics Government Systems Corporation Programmable signal decoder
US20020029364A1 (en) * 2000-01-03 2002-03-07 Edmonston Brian S. System and method for high speed processing of turbo codes

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103684682A (zh) * 2012-08-30 2014-03-26 英特尔移动通信有限责任公司 用于并行turbo解码器的工作器和迭代控制
CN103684682B (zh) * 2012-08-30 2017-11-07 英特尔德国有限责任公司 用于并行turbo解码器的工作器和迭代控制
CN112913146A (zh) * 2018-11-07 2021-06-04 瑞典爱立信有限公司 用于3gpp新空口的(解)交织和速率(去)匹配的优化实现方案
CN112913146B (zh) * 2018-11-07 2024-03-15 瑞典爱立信有限公司 用于3gpp新空口的(解)交织和速率(去)匹配的优化实现方案

Also Published As

Publication number Publication date
EP2313979B1 (en) 2022-07-20
US8035537B2 (en) 2011-10-11
TW201014203A (en) 2010-04-01
JP2014209785A (ja) 2014-11-06
JP2011523325A (ja) 2011-08-04
TWI487293B (zh) 2015-06-01
US20090309770A1 (en) 2009-12-17
EP4096101A1 (en) 2022-11-30
JP5840741B2 (ja) 2016-01-06
EP2313979A2 (en) 2011-04-27
WO2009151481A3 (en) 2010-12-02
KR20110037953A (ko) 2011-04-13
KR101611631B1 (ko) 2016-04-11
WO2009151481A2 (en) 2009-12-17

Similar Documents

Publication Publication Date Title
CN101232289B (zh) 涡轮解码器及解码涡轮编码信号的方法
US7127664B2 (en) Reconfigurable architecture for decoding telecommunications signals
JP5840741B2 (ja) 複数のコード・タイプをプログラマブル復号する方法および装置
JP4907802B2 (ja) 通信の復号化の際に用いられるバタフライプロセッサ装置
CN1241329C (zh) 对卷积编码的代码字进行解码的方法和设备
JP2008219892A (ja) データを符号化および復号化する方法および装置
CN101904102A (zh) 用于剪除式交织器和解交织器的有效地址生成
US7464316B2 (en) Modified branch metric calculator to reduce interleaver memory and improve performance in a fixed-point turbo decoder
US7020214B2 (en) Method and apparatus for path metric processing in telecommunications systems
US20130007568A1 (en) Error correcting code decoding device, error correcting code decoding method and error correcting code decoding program
TW548914B (en) A decoder for trellis-based channel encoding
JP2004511179A (ja) 断片的脱インターリーブ
US6889353B2 (en) Method and arrangement for decoding convolutionally encoded code word
JP2003188737A (ja) インターリーブ処理方法及びインターリーブ処理装置
WO2011048997A1 (ja) 軟出力復号器
Du Hardware implementation of non-binary turbo code for DVB/RCS
JP2002198829A (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
AD01 Patent right deemed abandoned

Effective date of abandoning: 20110209

C20 Patent right or utility model deemed to be abandoned or is abandoned