用于级联码解码的高速模块、装置和方法

文档序号:7536499阅读:200来源:国知局
专利名称:用于级联码解码的高速模块、装置和方法
技术领域
本发明涉及对属于一个或多个要被发送或被广播的源数据序列的数字数据进行的编码,尤其是存在各种信源噪声情况下进行这样的编码,并涉及对被传送的编码数据进行的解码。
特别是本发明涉及特别被称为“turbo码”(注册商标)的解码技术的改进,尤其涉及级联码的迭代解码操作。
信息(数据,图像,语音等)的传输愈来愈依赖于数字传输技术。在源编码方面已做了大量努力,以减小数字比特率,并同时保持高质量。这些技术自然提出了增强对传输比特的保护,以抵抗与传输相关的干扰这一要求。在这些传输系统中应用有效的纠错码已被证实是必需的。已经提出了“turbo码”技术特别用于上述目的。
“turbo码”的一般原理发表在法国专利No.FR-9105280中,其题目为“Procede do codage correcteur d’erreurs a au moins deux codagesconvolutifs systematiques paralleles”(“具有至少两个并行的系统卷积编码操作的纠错编码方法”),还发表在C.Berrou,A.Glavieux和P.Thitimajshima所著“Near Shannon Limit error-correcting codingand decodingTurbo-codes”(“接近香农极限的纠错编码和解码Turbo码”)中,该论文发表在1993年5月IEEE国际通信会议上,ICC93,vol.2/3,1064至1071页。相关现有技术发表在C.Berrou和A.Glavieux的论文“Near Optimum Error Correcting Coding andDecodingTurbo-codes”(“接近最佳的纠错编码和解码Turbo码”)中(IEEE Transactions on Communications,Vol.44,No.10,1261-1271页,1996年10月)。
该技术建议进行“并行级联”编码,它依赖于应用至少两个基本的解码器。这使得能利用来自两个独立的编码器的两个冗余符号。在两个基本的编码器之间应用排列手段,使得这些基本码器中的每一个所输入的源数字数据是相同的数据,但对不同编码器以不同的排序输入。
对这种技术的一个补充被用来获得所谓的“分组turbo码”或简写为BTC。此补充技术适用于分组编码(级联码)。上述改进技术被描述在R.Pyndiah,A.Glavieux,A.Picart和S.Jacq的论文“Near optimumdecoding of Product code”(“乘积码的准最佳解码”)中(IEEETransactions on commurnications,vol.46,No.8,1003-1010页,1998年8月),上述技术还被描述在专利FR-9313858“Procede pourtransmettre des bits dinformation en appliquant des codes en blocsconcatenes”(应用级联分组码传输信息比特的方法)及O.Aitsab和R.Pyndiah的论文“Performance of Reed Solomon Block Turbo-code”(“里德-所罗门分组Turbo码的实现”)(IEEE Globecom’96Conference,Vol.1/3,121-125页,伦敦,1996年11月)中。
上述技术特别依赖于应用P.Elias在其论文“Error-Free Coding”(“无差错编码”)中提出的乘积码,该论文发表于1954年9月“IRETransaction on Information Theory”(Vol.IT4,27-29页)中。乘积码基于分组码的串行级联。乘积码一直按照硬输入和硬输出算法进行解码,在其中一个基本的分组码解码器在输入端接收比特并在输出端给出比特。
为了解码分组“turbo码”,提出应用软输入和软输出解码方法,在其中一个基本的分组码解码器在输入端接收被加权为其似然函数的比特并在输出端给出这些比特。
当数据编码应用于小规模的分组(例如小于100比特的分组)时,或码效率(即有用比特数除以已编码数据比特数,例如0.95)高,且要求误码率低的情况下,分组“turbo码”是特别有吸引力。确实,通常用作为给定信噪比的函数的残留误码率进行度量的编码性能水平是编码的最小汉明距离的函数,它在分组“turbo码”的情况下是很大的(9,16,24,36或更大)。
对于需要更高的可靠性的数字通信系统而言不同的“turbo-解码”技术愈来愈有意义。而且传输速率也在不断提高。特别是光纤中传输信道的应用使得比特率可达到千兆比特,甚至到兆兆比特范围。
在现有技术中对于分组“ turbo码”有两种不同类型的解码器体系结构,它们分别基于—模块结构;或—Von Neumann结构在模块结构中,模块或基本解码器被级联,这些模块中的每一个负责完成半次迭代。这种方法适用于解码加权输入和加权输出的算法,因为在这些算法中许多功能传统上是按序实现的,并且从而能简单地嵌入。
该现有技术的主要缺点在于它引入较长等待时间到数据处理中,等待时间是在输入端的一段数据依次被置于输出端之前解码器输出的样值数。此等待时间随模块数量而增大。而且电路的空间要求本身也相对地大,且随模块数量增加。当迭代次数和/或编码的长度增大时,等待时间和电路的空间要求参数构成了主要缺陷。
在Von Neumann结构中,电路用单个存储单元和单个处理单元实现所有各次迭代。一个基本解码模块在其自身环回。在此结构中所需存储器数量减小了。在存储电路表面面积上获得的好处是相当可观的,因为存储电路表面面积与迭代次数无关。然而,这种结构的主要缺点是它导致数据吞吐率的降低。
本发明在其各方面被特别设计来克服现有技术的上述这些缺点。
更具体地说,本发明的一个目的是提供一种解码模块、方法和装置,它适于提供在误码率方面的高性能,且同时又限制处理操作(基本解码)和存储所需的电路的表面面积。
本发明的另一个目的是提供一种解码模块、方法和装置,在一给定的工作时钟频率下它能够处理高的吞吐率。
本发明的目的还在于减小在这种解码模块、方法和装置中的解码等待时间。
这些目的以及将在下面提到的其它优点是如此达到的至少一个用于对一个对应至少两个基本码的级联码进行解码的模块提供存储装置,在其中存储要被解码的数据样值。按照本发明,该模块包括至少两个用于上述基本码中至少一个的基本解码器,与上述基本码中的一个相联系的所述基本解码器并行地同时执行对包含在存储装置中的不同码字的处理。
这样,本发明提出了一种完全新颖的和创新的解码方法,其中在一个模块中解码器的数量被加倍而不加倍存储装置的数量。这导致它相对于现有技术的优点,在现有技术中为了提高吞吐率自然地加倍存储器和解码器的数量,而存储器在解码器电路中占用最多的空间(例如,存储器能占用电路总表面面积的80%)。
本发明可有利地应用于迭代解码器尤其是“turbo-解码器”。本发明能应用于不同的解码器结构,尤其是Von Neumann结构(其中接收和/或数据处理存储器以及处理单元被用于数次迭代,从而提供了电路表面面积上的经济性,但是在一给定的工作速度下限制了解码速度)和模块结构(其中接收和/或数据处理存储器以及处理单元被应用来进行单个半次迭代,从而提供了解码速度上的好处,但是有可观的解码等待时间),这些结构将在后面进一步详细说明。
一般,本发明的价值在于提供解码速度上的好处(特别是当本发明用于Von Neumann结构时,Von Neumann结构的主要问题是速度)和/或解码等待时间上的好处(主要是当本发明用于模块结构时),同时保持相对小的电路表面面积。
所以,本发明可用于获得高的数据传输率。
按照一个有利的特征,存储上述要被解码的数据的存储装置被组织成矩阵形式,该矩阵有n1行,每一行包含一个基本码字,矩阵有n2列,每一列包含一个基本码字,解码模块包括n1个(和对应地n2个)基本解码器,其每一个由矩阵行(和对应地列)中的一个馈给。
换言之,本发明可有利地用于串行级联码。
按照本发明另一特征,存储装置被组织成矩阵形式,矩阵有包含k1行在内的n1行,k1行中每一行包含一个基本码字,矩阵有包含k2列在内的n2列,k2列中每一列包含一个基本码字,解码模块的特征在于它包括k1个(和对应地k2个)基本解码器,其每一个由矩阵行(和对应地列)中的一个馈给。
所以本发明可有利地用于并行级联码。
本发明还使对应于所用编码的矩阵的多行(和对应地多列)的并行解码成为可能,从而提高了解码速度或降低了等待时间,同时保持相对小的电路表面面积,相比数据接收和处理存储器所需的表面面积而言,基本解码器通常需要一个小的表面面积(或者一般讲,少量的晶体管)。
按照本发明一个优选的特征,存储装置被组织成能够同时存取至少两个基本码字。
所以,对应于至少两个码字的数据能并行地在基本解码操作期间被处理,从而能获得速度上的好处和/或减小等待时间。
有利地,存储装置是单端口RAM类型的。
所以,本发明能够应用现有的存储器,它不提供存取在两个不同的地址上被存储的数据的能力,并且它不必需应用多端口存储器(即使不禁止应用它)。
存储装置最好组织成多个舱室(compartment),每个舱室具有单个地址,并且每个舱室包含一个基本码的至少两段基本数据。
所以,本发明使得存取包含至少两段基本数据(一般是二进制数据,它可以是加权的,也可以是不加权的)的单个存储舱室成为可能,这些数据可能同时被至少两个基本解码器所应用。这就提供了对内容相互独立的数据的同时存取,并从而限制了存储电路的工作效率(因此限制了其能耗),同时有相对高的整体解码速度。
按照本发明的一个有利的特征,解码模块可同时存取m个基本码字和l个基本码字,m>1和/或l>1,可同时馈送给至少两个基本解码器。
所以本发明可具有最大限度的优点,它来自于将基本码进行划分,同时提供与每个基本码相关的一个基本解码器。所以本发明使解码速度和/或等待时间达到最优。
按照本发明的一个特征,可同时存取对应于具有n1行和n2列的初始矩阵的相邻数行和/或相邻数列的码字,相邻数行和/或相邻数列中的每一个包含一个基本码字。
按照一个具体的实施形式,多个基本码是相同的C码。
所以,当基本码相同时本发明使解码速度和/或等待时间达到最优。
有利地,解码模块被设计成实现至少两个基本的解码操作。
按照第一种实施形式,级联码是一个串行级联码。
按照第二种实施形式,级联码是一个并行级联码。
所以,本发明可同样好地应用于级联码的这两种主要类型。
本发明还涉及对一个级联码进行解码的装置,它配置有至少两个上面所述的模块,每一个模块实现一个基本的解码操作。
本发明也涉及对一个级联码进行解码的方法,该级联码对应于两个基本码,并且解码包含至少两个同时的进行上述基本码中至少一个的基本解码的步骤,所述基本码来自同一个存储装置。
按照一个有利的特征,解码方法的特征在于存储装置被组织成对一个存储装置地址的单次访问实现对至少两个基本码字的存取,从而同时提供至少两个基本解码步骤。
按照一个具体的实施形式,解码方法是迭代的。
最好至少某些被处理的数据被加权。
所以,本发明有利地应用于“turbo码”的情形,它特别提供了解码后在残留误码率方面的高性能。
解码装置和方法的优点相同于解码模块的优点,因此不再详细说明。
下面说明结合附图给出的优选实施例,它们以简化形式示出,但没有局限性,由以下说明可更清楚地看出本发明的其它特性和优点。附图中—

图1示出按照本发明一个具体实施形式表示一个乘积码字或分组“turbo码”的矩阵结构;—图2是按照现有技术解码一个分组“turbo码”的方框—图3是按照现有技术实现“turbo解码”的半次迭代的处理单元的方框图;—图4是按照现有技术实现“turbo解码”的半次迭代的处理单元的方框图;—图5是按照现有技术的模块结构中一个turbo解码器模块的方框图;—图6是按照现有技术的模块结构中一个turbo解码器模块的方框图,它示出存储器的结构;—图7是按照现有技术的Von Neumann结构中一个turbo解码器模块的方框图,它示出存储器的结构;—图8是按照本发明第一种实施形式,适应高吞吐率、采用解码器并联的解码器方框图;—图9是按照本发明第二种实施形式的一个存储器舱室的示意图;—图10是按照本发明一个变型实施形式的一个存储器舱室及其分配给处理单元的示意图;—图11是按照本发明另一种实施形式的一个turbo解码器的方框图。
本发明的基本原理在于用在级联码解码,尤其是这些编码的解码操作中的存储器的具体结构。
首先回顾一下,一个串行级联码通常可表示为一个2维的二进制矩阵[C]的形式,如图1所示。此矩阵[C]有n1行和n2列,并且—二进制信息样值被一个子矩阵10[M]表示,它具有k1行和k2列;—矩阵[M]的k1行中的每一个被一个基本码C2(n2,k2,δ2)编码(冗余由一个行冗子矩阵11表示);—矩阵[M]和行冗余子矩阵的n2列中的每一个由一个基本码C1(n1,k1,δ1)编码(对应于二进制信息样值的冗余由列冗余子矩阵12表示;对应于子矩阵11行冗余的冗余由冗余子矩阵13表示)。
如果编码C1是线性的,由C1建立的(n1-k1)行是编码C2的字,从而可以像前k1行一样被解码。一个串联级联码由n1个沿着行的C2码字和n2个沿着列的C1码字表征。编码C1和C2可以由用作分组码的卷积基本码或线性分组码得到。
级联码被迭代编码,首先对沿着行的每个基本码进行解码,然后对沿着列的每个基本码进行解码。
按照本发明,为提高解码比特率,多个基本解码器被并联;—为解码n1行,m1个(2≤m1≤n1)编码C2的基本解码器被应用,并且/或者—为解码n2行,m2个(2≤m2≤n2)编码C1的基本解码器被应用。
每个基本解码器有来自一个接收和/或处理存储器的输入数据,并且给出输出数据,保存在一个接收和/或处理存储器中。为了进一步提高解码吞吐率并保持仍然合理的电路时钟频率,在解码器输入端或输出端的数段数据被收集在单个存储器舱室中。因而,通过将例如4段基本数据(每段基本数据对应于一段二进制数据,它可以是加权的,也可以是不加权的)集合在单个存储器舱室中,并通过在解码器输入端(和对应地输出端)或存储器的输出端(和对应地输入端)去复用(和对应地复用)这些数据段,对于一给定的电路时钟频率,在存储器输入端和输出端的数据比特率变为原来的4倍,从而取得解码速度的总体提高和/或降低等待时间。
本发明可以同样的方法应用于并行级联码。回顾一下,一个并行级联码通常可表示为一个二维的二进制矩阵[C],如图1所示。该矩阵[C]有n1行和n2列,并且—二进制信息样值由一个子矩阵10[M]表示,它具有k1行和k2列;—矩阵[M]的k1行中的每一个被一个基本码C2(n2,k2,δ2)编码(冗余由一个行冗子矩阵11表示);—矩阵[M]的k2列中的每一个被一个基本码C1(n1,k1,δ1)编码(对应于二进制信息样值的冗余由列冗余子矩阵12表示;在并行级联码情况下不存在冗余的冗余)。
对应于图1所示矩阵C的一个编码的“trubo-解码”在于按照图2所示迭代过程在矩阵C的所有行上实现一个加权输入和加权-输出解码,然后对矩阵C的所有列实现上述解码。
在接收被处理数据21后,预定数量(Nb_Iter_Max)的以下操作被实现—列的解码22(半次迭代);—矩阵的重构23;—行的解码24(半次迭代);—矩阵的重构25。
这些操作被重复,只要迭代次数I—每次迭代后它增大1(26)—小于Nb_Iter_Max(27)。事先必需将数I初始化为零(28)。
以Dk表示的已解码数据然后被处理(29)。
一般,由一个半次迭代22、25到另一个半次迭代时交换的信息由图3确定。
Rk对应于从信道接收到的信息,R′k对应于从先前半次迭代来的信息,而R′k+对应于给到下一个半次迭代的信息。所以每个半次迭代的输出等于Rk和附带信息Wk与一反馈或收敛系数alpha的乘积(31)之和36。该附带信息对应于解码器32的贡献。它通过计算解码器的加权输出Fk与同一解码器的计仅输入之差值33而获得。
时间限定34和35用于补偿解码器32的等待时间。
下面,加权-输入和加权-输出解码器将被视为一个方框,它有Rk和R′k(q比特取样)作为输入,在输出端以某个等待时间L(完成解码算法所需时延)给出R′k+和Rk+。它被称作一个处理单元(PU)30。
解码器32还给出一个二进制判决Dk,在一个“turbo-解码”操作的最后半次迭代时它被应用,它对应于在图2所示操作29中送出的已解码数据。
如果我们考虑图3方框图的另一类型,R′k可用附带信息Wk代替,它变成处理单元40的输入-输出,R′k仍被用作解码器32的一个输入,它是一个内部变量。这种变型如图4所示。
如前所述,“turbo-解码”算法的功能分析被用于认定一个乘积码“turbo-解码器”电路的两种可能结构(一种结构是模块结构,另一种结构类似于被称作Von Neumann机的机器)。现在更详细地说明这两种结构。
A)模块结构由算法的工作流程,一个模块结构可被设想用于“turbo-解码器”,其中每个子电路实现一个解码半次迭代(即数据矩阵[R]和[W]或[R′]的行和列的解码)。存储[R]和[W](或[R′],依赖于方框图选择处理单元30还是40)是必要的。
于是整个电路通过级联同样的图5所示模块构成。例如对于4次迭代,电路用8个模块,或基本解码器。
在模块结构中,数据被顺序处理(样值接着样值)。这种处理很适合于加权-输入和加权-输出解码算法,因为在这些算法中许多功能传统上顺序进行,从而简单地被嵌入。
每个模块引入(n1n2+L)个样值的等待时间。此等待时间是一段出现在输入端的数据依次被放在输出端之前解码器输出的样值数。在此表达式中前n1n2个样值对应于一个数据矩阵的填充时间,后L个样值对应于该矩阵的一行(或一列)完全解码的时间。
b)Von Neumann结构第二种结构可类似一个Von Neumann顺序机。它用同一个处理单元实现数次迭代。与上一种结构相比,此结构主要目的是减小“turbo-解码器”的空间要求。此结构还具有以下优点限制电路所引入的总等待时间为2n1n2个样值的最大值,而与实现的迭代次数无关(n1n2对应于填充一个矩阵的时间,另外n1n2个样值对应于解码时间)。
每个样值顺序地被处理,并且必须在一个时间中被解码,此时间不超过数据吞吐率与实现的半次迭代次数的乘积的倒数。所以,对于4次迭代,数据吞吐率只能是比数据吞吐率至少低8倍。这意味着在模块结构和Von Neumann结构之间,最大数据吞吐率被一个因子除,此因子至少等于所用半次迭代的次数。对于Von Neumann结构,等待时间较低(最大2n1n2个样值,相应模块结构为(n1n2+L)·it,it是半次迭代的次数),而对于相同的数据处理速度,其数据吞吐率较低。
能集成在电路中的最大迭代次数受获得的比特率和由所用工艺决定的最高操作频率的限制。
现在将对这两种结构说明有关存储器的问题。在任何情况下,电路的空间要求主要是缘于所用存储器的大小和数量。与所选择的结构无关,实际上必需对半次迭代进行的整个时间宽度存储矩阵[R]和[W](或[R′])(一个半次迭代对应于一个数据矩阵的行或列的解码)。行中数据的处理和接着列中数据的处理使得有必要提供第一个存储器来接收数据和第二个存储器来处理数据。这两个存储器交替地工作在写和读方式下,并且自动管理其顺序。每个存储器组织成一个矩阵,并且对于长度n1n2的一个编码和q比特量化的数据,每个矩阵由q·n1n2比特的存储器阵列构成。
a)模块结构在模块结构情况下,实现一个半次迭代的电路的一般结构如图5和图6所示。
图5中所示模块50包含一个处理单元40(如图4所示)和4个存储器;—一个含有数据[R]的存储器51;—一个含有数据[R]的处理存储器52;—一个含有数据[W](或[R′],依赖于处理单元)的存储器53;以及—一个含有数据[W](或[R′])的处理存储器54;抵达存储器模块50的以q比特编码的数据[R]571(和对应地[W]572)沿着工作在写方式下的接收存储器51(和对应地53)的行被安置,在存储器51(和对应地53)输入端的逻辑开关551(和对应地55a)闭合(例如以在工作期间使能存储器51(和对应地53)的选择的一个寻址比特的形式实现),而在存储器52(和对应地54)的输入端的开关561(和对应地563)打开。在第一个模块输入端的数据[R]直接来自传输信道,而后面每一个模块的数据[R]来自前一模块的输出[R]591。第一个模块输入端的数据[W]是零,而后面每一个模块的数据[W]来自前一模块的输出[W]592。
并行地,以前已接收到的矩阵数据沿着工作在读方式下的处理存储器52和54的列被读取,存储器52(和对应地54)输出端的逻辑开关552(和对应地554)闭合(例如以在读工作期间使能存储器52(和对应地54)的选择的一个寻址比特的形式实现),而在存储器51(和对应地53)输出端的开关562(和对应地564)打开。
一旦接收存储器被填满,处理存储器进入写方式(换言之,存储器51与52(对应地53与54)交换角色,且逻辑开关551,552,561,562(以及对应地553,554,563,564)“改变位置”,以存储对应于下一码字的数据。通过级联两个模块,一个模块对一个编码矩阵的列进行解码,而另一个模块则对矩阵的行进行解码,从而实现一个整次迭代。
所用的存储器51,52,53和54可毫无困难地用传统的可行-寻址和列-寻址的,单端口RAM(随机存取存储器)设计。其它器件(例如用移位寄存器)也可以被考虑,但是它们占用更大的空间。
应注意,如图5所示数据总线上交换的数据是q比特编码的,在图6所示变型中,数据以2q比特编码,每个数据包含对应于一段数据[R]的q比特和对应于一段数据[W](或[R′])的q比特。
图6所示模块60可以完成一个解码的半次迭代,该模块包括一个处理单元40(如参考图4所说明的)和两个存储器。
—一个储放或接收存储器62,它包含数据[R]和[W](或[R′],如果处理单元像图3所示的单元30的话);以及—一个处理存储器63,它包含数据[R]和[W](或[R′])。
抵达解码器模块的以2q比特编码的数据61沿着工作在写方式下的接收存储器62的行依次被放置。并行地,以前接收到的矩阵数据沿着工作在读方式下的处理存储器62的列被读出。一旦接收存储器62被填满,处理存储器进入写方式,以存储对应于下一码字的数据。通过级联两个模块,实现一个完整的迭代,其中一个模块进行一个编码矩阵的列的解码,而另一模块用于矩阵的行的解码。
所用的存储器62、63可毫无困难地用传统的,可行-一寻址和列-寻址的,单端口RAM(随机存取存储器)设计,其它器件(例如用移位寄存器)也可以被考虑,但是它们占用更大的空间。
从实际观点看,模块方法具有高工作频率和在应用中非常灵活的优点。作为一种折衷,整个模块的级联连接导致等待时间的增加和电路所占空间大小的增加。当迭代次数和/或编码长度增加时这些参数将构成基本的缺陷。
b)被称作业Von Neumann结构的结构现在图7示出用4个存储单元70、71、72和73实现数次迭代的电路。解码模块反馈到自身构成环路。在此结构中,总电路只有4个存储器70,71、72和73,而与实现的迭代次数无关。然而这些存储器70、71、72和73应能按行,也能按列读和写。
存储器70、71、72和73是传统的单端口RAM,在其中可以读和写由共地址所确定的一段数据。因为每个样值是直接存取的,矩阵可沿其行解码,也可沿其列解码。存储器类似于模块结构中所选用的存储器。然而,因为整个电路只有4个存储器,在表面面积上的好处是可观的(对4交迭代为80%)。然而必需指出,表面面积的这种减小的获得,对于相同的电路工作速度而言,是以降低数据吞吐率为代价的(对于it/2次迭代吞吐率至少被it除;必要的是在计算等待时间时考虑每个基本的解码)。q比特编码的数据[R]76(和对应地[W]75)沿着工作在写方式下的接收存储器70(和对应地72)的行依次被放置,逻辑开关771(和对应地781)将数据送给存储器70(和对应地72)(例如以在写方式下使能存储器70(和对应地72)的选择的一个寻址比特的形式实现)。输入数据[R]76直接来自传输信道。输入数据[W]在第一个半次迭代时为零,而在以后各个半次迭代中数据[W]来自前一个半次迭代的输出[W]75。
并行地,前面接收到的数据[R]沿着工作在读方式下的处理存储器71的列被读取。在存储器71和70的输出端的逻辑开关772使能处于读方式的存储器71的选择(例如以一个寻址比特的形式实现)。同时,来自前一半次迭的数据[W](或者是零,如果是第一个半迭代的话)沿着工作在读方式下的处理存储器73的列被读取。在存储器72和73的输出端的逻辑开关782使能处于读方式的存储器72的选择。
一旦[W]的接收存储器被填满(即如果假设数据是连续发送的,在一个分组的turbo-解码的一次操作结束时),[W]的处理和接收存储顺的角色互相交换[W]的处理存储器进入写方式而变为接收存储器(换言之,逻辑开关781和782“改变位置”),以存储对应下一码字的数据,并且[W]的接收存储器进入读方式而变为处理存储器。
一旦[R]的接收存储器被填满(即如果假设数据是连续发送的,在一个分组的turbo-解码的一次操作结束时),[R]的处理和接收存储器的角色互相交换[R]的处理存储器进入写方式而变为接收存储器(换言之,逻辑开关771和772“改变位置”),以存储对应下一码字的数据,并且[R]的接收存储器进入读方式而变为处理存储器。如果作为一种变型,数据以包(或突发)方式被传送,并且如果每个包仅被解码一次,解码在一个新的包到达之前完成,则在Von Neumann结构中对于数据[R]不必需有两个分别为处理和接收的存储器,而是仅有一个就够了。
所用存储器70、71、72和73可毫无困难地用传统的,可行-寻址和列-寻址的,单端口RAM(随机存取存储器)设计。其它器件(例如用移位寄存器)也可考虑,但它们占用更大空间。
应该指出,作为图5、6和7所示实施形式的一种变型,图3所示处理单元30可以替代处理单元40。这时在存储器中[W]型数据被[R′]型数据所替代。
按照现有技术,一个高吞吐率结构使得图6或7所示模块的数量加倍。
本发明建议一种新颖的方法,它特别适用于级联码的turbo-解码的高吞吐率结构。
我们已看到,级联码在原始矩阵C的所有行(或列)上具有码字的属性。
按照本发明,解码按照图8所示原理并行进行,所示模块80用于实现一个半次迭代,模块80能被级联,以构成一个模块turbo-解码结构。矩阵81(包含数据[R]和[W](或[R′],依赖于处理单元的类型)的n1n2个2q比特样值的处理存储器阵列)供给一组基本解码器(或借助图3和4所说明的处理单元30或40)821至82m。
当然,编码C1(或C2)的基本解码器的数量被加倍为m个基本解码器821到82m。因而可以处理最多n1(或n2)个码字,只要读或写存储器的存取操作在不同的瞬时发生(除非采用“多端口”RAM,不可能同时读矩阵的多个存储单元)。在此条件被满足时,比值Fthroughputrate/Fpumax可能增大到n2(或n1)倍(Fthroughput rate/为turbo解码器输出端的有用吞吐率,Fpumax表示处理单元的工作速度),因为在一给定时间上可处理n2(或n1)个样值。
矩阵83(n1n2个2q比特样值的接收存储器阵列)是由前一模块80的一组基本解码器821至82m馈给的。
应该指出,在第一个模块中数据[R]直接来睚信道,而数据[W]为零(或者,作为一个变型,在第一个模块中基本解码器的输入端只使用对应于数据[R]的一半总线)。
在每个半次迭代后,存储器81和83的角色相互交换,这两个存储器交替地作为处理或接收存储器工作。
需要指出,数据沿着接收存储器阵列的列被写入,而它们沿着处理存储器阵列的列被读取。从而有利地得到一个交织和去交织装置。此装置容易地通过将模块级联,即一个模块的基本解码器的输出连接到下一模块接收存储器阵列而实现(如果turbo-编码器的交织器是规则的,即在交织器中数据逐行写入和逐列读出)。
这种结构的主要缺点在于,如果有m个基本解码器并联,存储器81和83必须以m·Fpumax的频率工作。
按照模块结构的第一种变型,矩阵81被分成两个有n1n2个q比特样值的处理存储器阵列,这两个阵列分别包含数据[R]或[W](或[R′],依赖于处理单元的类型)。而且矩阵83自身也不分成两个有n1n2个q比特样值的接收存储器阵列,它们分别包含数据[R]或[W]。
作为一个变型,“turbo-解码器”按照Von Neumann结构实现。按此变型结构,处理存储器阵列被分成一个与数据[R]相关的处理存储器阵列(如果假设数据是连续发送的)和一个与数据[W](或[R′],依赖于处理单元的实施形式)相关的处理存储器阵列。类似地接收存储器阵列被分成一个与数据[R]相关的接收存储器阵列和一个与数据[W]相关的接收存储器阵列。像图7所示结构那样,在每个半次迭代之后数据[R]的处理和接收存储器交换角色,在每个分组turbo-解码工作后数据[W]的处理和接收存储器的角色相互交换。然而,应注意,按照本发明,在Von Neumann结构中,数据[R]和[W]的处理存储器供给m个基本解码器,并且这些解码器的输出[W]被返送到数据[W]接收存储器。按此变型的实施形式,如果数据以包(或突发)方式被传送,且如果每个包必须仅在一次操作中被解码,解码在一个新的包到达之前完成,则不必要对数据[R]有两个分别的处理和接收存储器,而只需有一个存储器。
按照本发明的一个有利的方案,可以保持相同的存储器工作速度并提高吞吐率,按图10所示,原理在同一地址上存储数段数据。然而必需能按行和按列应用这个数据。这导致以下的结构这个地址将具有在行和列中相邻的读取(或写入)的数据。
让我们考虑图9所示原始矩阵90的两个相邻的行i和i+1以及两个相邻的确列j和j+1。
4个样值(i,j),(i,j+1),(i+1,j)和(i+1,j+1)组成新矩阵100的一个字105,如图10所示,新矩阵的地址数量是原始矩阵(I,J)地址数量的四分之一,但字长是原始矩阵字长的4倍。如果n1和n2是偶校验值,则如果1≤I≤n1/2, i=2*I-1类似地,如果1≤J≤n2/2,j=2*J-1对于行解码,样值(i,j),(i,j+1)101被指配给处理单元PU1,(i+1,j)和(i+1,j+1)102被指配给处理单元PU2。对于列解码,我们必需将(i,j),(i+1,j)103给PU1,而将(i,j+1),(i+1,j+1)104给PU2。如果处理单元能在相同的时间周期1/FPumax中处理在输入端(读RAM)和输出端(写RAM)的这些样值时,矩阵的处理时间是原始矩阵的4倍(图10)。
路线图10仅示出作为例子的存储器分为4部分的一个“子划分”。
为了一般化,如果新矩阵100的一个字105包含一行的m个样值和一列的l个样值,矩阵的处理时间比仅有m个“行”解码处理单元和l个“列”解码处理单元时的快m·l倍。
如果编码C1和C2相同,“行”处理单元PUs和“列”处理单元PUs也相同,这可以图11看出。这时m=l,并且m个处理单元1121至112m是必要的(图3和4所示的处理单元30或40)。一个去复用器114给m个基本处理单元(PU)1121至112m供给矩阵111(具有n1n2/m2个2qm2比特的字的处理存储器矩阵)的数据,每个处理单元同步地接收2qm比特样值。
基本解码器1121至112m提供2qm比特的样值给复用器115。复用器115供给2qm2比特的样值到对应于下一个半次迭代的模块的接收存储器阵列113。
数据矩阵的这种结构既不需要特别的存储器结构,也不需要更高的速度。而且,如果PU的复杂度保持小于以前的PU的复杂度的m倍,则总复杂度更小,而速度高m2倍(这个结果可通过用m2个PU而得到,如图8所建议的)。
存储器相比原始矩阵C具有少m2倍的字。对相同工艺来说,它的存取时间更短。
所以本发明建议了一种对级联码进行解码的结构,编码工作在高吞吐率上。这些编码可以从卷积码得到,也可以线性分组码得到。本发明主要改变了在存储器C的原始结构,以提高解码速度。在1/Fpumax的时间周期间,m个样值在m个基本解码器中的每一个中被处理。这给出m2的吞吐率增益。如果这m个样值的处理没有使基本解码器的表面面积增加很多,表面面积与要求m2个解码器的方案相比,有接近m倍的好处。
按照一个变型,去复用器114将从存储器阵列111收到的每个2qm2比特的样值去复用,并串联它们得到m个序列,每个序列有m个2q比特的样值。每一个这种序列被给到基本处理单元1121至112m中的一个。每个处理单元1121至112m给复用器115提供2q比特的样值序列。复用器处理这些同步地来自处理单元1121至112m的m个序列,给出2qm2比特的样值到对应于下一个半次迭代的模块的接收存储器阵列113。这种变型给出的解码速度在相同的时钟速度下比现有技术得到的速度高m倍,同时在每个模块中仅有一个处理存储器阵列。
按照图11所示实施例,存储器阵列111和113包含以2qm2比特编码的数据,接收和处理存储器中的字数减少,从而对这些存储器的存取时间缩短。
当然,本发明不局限于上面所述的实施例。
尤其是,现有技术能够提供任何所用的存储器类型。例如它们可以是单端口RAM或多端口RAM。
而且,本发明可同样地应用于以包(或突出)方式或连续方式传送数据的情况。
此外,本发明也适用于串行或并行级联码,这些编码可以是卷积码或分组码。
本发明适用于由两个级联码形成的编码,也适用于由多于两个的级联码形成的编码。
一般,本发明适用于所有的“turbo-码”,不论这们是否为分组turbo-码,只要它们由作用于信息序列(不论是否进行排列)的基本码构成,基本码字中至少有一个是由至少两个码字组成的。
权利要求
1.用于对一个对应至少两个基本码的级联码进行解码的模块,提供其中存储要被解码的数据样值的存储装置,其特征在于,对于上述基本码中的至少一个,它包括至少两个基本解码器(821至82m,1121至112m),与一个上述基本码相关的上述基本码器(821至82m,1121至112m)并行地同时执行对包含在上述存储装置(81、83、90、111、113)中的不同码字的处理,并且其中上述存储装置(81、83、90、111、113)以舱室(105)进行组织,每个舱室具有单个地址,并且每个舱室包含至少两段对应于一个基本码字的基本数据(101、102、103、104)。
2.如权利要求1所述的解码模块,存储上述要被解码的数据的上述存储装置以一个n1行和n2列的矩阵(10)的形式进行组织,其中每一行包含上述基本码的一个码字,每一列包含上述基本码的一个码字,其特征在于,它包括n1(和对应地n2)个基本解码器(821至82m,1121至112m),每一个基本解码器由上述矩阵(10)的一行(和对应地一列)馈送。
3.如权利要求1所述的解码模块,存储上述数据的上述存储装置以一个n1行和n2列的矩阵(10)的形式进行组织,n1行中包括k1行,其每一行包含上述基本码的一个码字,而n2列中包括k2列,其每一行包含上述基本码的一个码字,其特征在于,它包括k1(和对应地k2)个基本解码器。(821至82m,1121至112m),每一个基本解码器由上述矩阵(10)的一行(和对应地一列)馈送。
4.如权利要求1至3中任一项所述的解码模块,其特征在于,上述存储装置(81,83,90,111,113)被组织成可同时存取至少两个基本码字。
5.如权利要求4所述的解码模块,其特征在于,上述存储装置(81、83、90、111、113)是单端口RAM型。
6.如权利要求4和5中任一项所述的解码模块,其特征在于,上述存储装置(81、83、90、111、113)的每个具有单个地址的上述舱室(105)包含m·l个基本数据(101、102、103、104),使得能够同时完成以下馈送—沿着权利要求2和3中任一项所述的行馈送给m个基本解码器;以及/或者—沿着权利要求2和3中任一项所述的列馈送给l个基本解码器;m和l是严格大于1的整数。
7.如权利要求4至6中任一项所述的解码模块,其特征在于,上述可同时存取的多个字对应于具有n1行和n2列的原始矩阵(10)的相邻行和/或相邻列,相邻行和/或相邻列中的每一个包含一个基本码字。
8.如权利要求1至7中任一项所述的解码模块,其特征在于,基本码是相同的C码。
9.如权利要求1至8中任一项所述的解码模块,其特征在于,它完成至少两个基本解码操作。
10.如权利要求1至9中任一项所述的解码模块,其特征在于,级联码是一个串行级联码。
11.如权利要求1至10中任一项所述的解码模块,其特征在于,上述级联码是一个并行级联码。
12.用于对一个级联码进行解码的装置,其特征在于,它提供至少两个级联配置的如权利要求1至11之一所述的模块,并且每个模块实现一个基本解码操作。
13.用于对一个对应于两个基本码的级联码进行解码的方法,其特征在于,它包括至少两个同时的对至少一个上述基本码进行基本解码的步骤,所述基本码由相同的存储装置(81、83、90、111、113)提供;并且上述存储装置被这样组织,使得对所述存储装置(81、83、90、111、113)的一个地址的单次访问实现对至少两个基本码字的存取,以同时提供至少两个上述基本解码步骤。
14.如权利要求13所述的解码方法,其特征在于,它是迭代解码方法。
15.如权利要求13和14中任一项所述的解码方法,其特征在于,至少一些被处理数据被加权。
全文摘要
本发明涉及用于对一个对应于至少两个基本码C
文档编号H03M13/29GK1479975SQ01820410
公开日2004年3月3日 申请日期2001年11月9日 优先权日2000年11月10日
发明者帕特里克·埃达, 拉米施·匹恩迪阿, 匹恩迪阿, 帕特里克 埃达 申请人:法国电信公司, 恩斯特布列塔尼电信大学集团公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1