Ldpc解码方法和装置的制作方法

文档序号:7538118阅读:262来源:国知局
专利名称:Ldpc解码方法和装置的制作方法
技术领域
本发明涉及用于执行低密度奇偶校验(LDPC)解码操作的方法和 装置,尤其涉及非常适合解码对应于码字的数据的解码方法,例如使 用能被表示为乘积提升(productlifting)的码结构生成的码字。
背景技术
在通信和数据存储系统中,纠错码是普遍存在的。近来在已知为 低密度奇偶校验(LDPC)码的码类中产生了相当大的兴趣。可证明 LDPC码是好码。在各种信道上,己经证实LDPC码真正接近于信道 容量一由克劳德.香农创建的传输速率上限。
通常由称作Tanner图的二分图来表示LDPC码,见图1的示例 性图100,其中, 一组节点,即变量节点102,对应于码字的比特, 并且另一组节点,即约束节点106,有时也称为校验节点,对应于一 组定义码的奇偶校验约束。图100中的边104将变量节点102连接到 约束节点106。如果变量节点与约束节点由图中的边连接,那么它们 被称作邻居。LDPC码的Tanner图表示可以由图2的奇偶校验矩阵表 示H 202代替。当且仅当比特序列x 206与H的乘积等于全零吋,即 Hx=0,比特序列x206是一个码字。
当且仅当对于每个约束节点,与该约束相邻的比特(经由与这些 比特相关联的变量节点)的模二和为零时,即它们包括偶数个一时, 那么与变量节点一一相关联的比特序列是码的一个码字。
在 一 些情况下,这些编码比特可能是收縮(punctured)的或已知 的。在特定码结构中收縮比特是期望的,并且,在提升(见下面)中,收缩以及已知比特都能用于获得不是提升倍数的块长度。收縮比特以 及已知比特可以,并且通常被排除在发射的码字之外。
连接到例如变量节点或约束节点的边的数量称作该节点的度数。 规则图或码中所有变量节点具有相同的度数,例如j,以及所有约束 节点具有相同的度数,例如k。在这种情况下,我们说该码是(j,k)规
则码。这些是最初由Gallager(1961)考虑的码。对比"规则"码,非 规则码具有不同度数的约束节点和/或变量节点。例如, 一些变量节 点可以是度数4,其他是度数3以及其他是度数2。
尽管非规则码的表示和/或实现更加复杂,但是已经显示当与规 则LDPC码比较时,非规则LDPC码能提供较高的错误纠正/检测性 能。
将理解,通过执行例如错误纠正和检测操作的LDPC解码操作, 对结合LDPC编码生成的接收码字进行处理,以生成原始码字的重构 形式。然后重构码字经受数据解码以恢复被编码的原始数据。数据解 码过程可以是,例如,从重构码字简单地选择比特的指定子集。
LDPC解码操作通常包括消息传递算法。存在许多潜在有用的消 息传递算法,并且这些算法的使用不限于LDPC解码。消息传递算法 的原理是经由连接边,每个节点将它对与所述边相关联比特的置信 迭代地传送到它的邻居,下一个迭代的置信依赖于在当前迭代接收的 置信。
对应于大图结构的大块长度LDPC码在错误弹性方面比较小码 提供了许多优点。
为了使用较小图实现大图结构,可以将多个置换(permutation)应 用到较小图结构的多个副本中,并且这些副本能被连接在一起以生成 较大图结构。在解码操作中,通过这里称为置换器,也交换地称为变 换器的切换设备实现这样的置换操作,当例如在解码操作情况下的消 息这样的元素在存储器与并行执行LDPC操作的向量处理单元之间通过时,切换设备在该元素上应用置换操作。
尽管已知各种LDPC解码器实现,但仍需要能减少LDPC解码器 硬件实现成本,和/或考虑它能解码的LDPC码的数量禾口/或能由LDPC 解码器解码的码字长度,使LDPC解码器更加灵活的方法和装置。

发明内容
本发明针对LDPC解码器,并且,尤其针对能以硬件高效方式实 现和/或通过支持不同长度的码字和/或对应于不同码结构的码字的解 码,允许自由度的LDPC解码器。
在本发明的一些但不是全部实施例中,本发明的LDPC解码器是 可编程的。通过改变用于控制解码器操作的码,例如微码,对依据不 同码结构生成的码字进行解码是可能的。包括本发明解码器的设备, 例如,诸如无线终端的通信设备,能存储描述不同码结构的控制码。 基于在通信流中或从用户接收的信息,对应于将被接收并处理的 LDPC编码数据的码被标识并从存储器取回。该码然后被装载到解码 器并且用于控制解码,其中根据确定为对应于将被解码数据的码结构 来控制解码。
在一些实施例中,用对应于将由解码器使用来控制解码的单个预 先选择的码结构的控制码(例如,微码)来装载解码器。尽管在特定实 施例中,控制码可以是固定的,但是根据本发明,相同的控制码能用 于解码上至最大码字尺寸的不同尺寸的码字,该最大码字尺寸由可用 于支持码字解码的存储器和/或寄存器最大量确定。根据码字尺寸, 可以改变存储在解码器中的控制命令被执行的次数。
可以被表示为选择码提升因子的码字尺寸指示符能被用于为解 码器指定将被解码的码字的尺寸。码字尺寸指示符通常按照最小块尺 寸的倍数指示码字尺寸。
尽管本发明的各种解码器支持可编程性以允许解码依据不同LDPC码结构和不同长度码字编码的数据,但是本发明的方法和装置 还能用于实现对依据单个码结构和单个码字尺寸生成的数据执行
LDPC解码操作的解码器。S卩,即使在可编程性和支持不同尺寸的码
字不是重点的情况下,本发明的方法和装置也是有用的。
本发明的各个实施例针对使用能表示为LDPC图的码结构编码 的数据,LDPC图拥有特定分层结构,在其中,在很大程度上,完整 LDPC图看起来是由多个副本组成,例如Z个较小的图组成,其中Z 是整数。Z个图副本可以是相同的。为了解释本发明的目的,我们将 把较小的图称为投影图,把完整图称为提升图,并把Z称为提升因子。
考虑通过l,...,j,...Z来索引这些投影LDPC图。在严格并行图中, 图j中的变量节点仅连接到图j中的约束节点。根据本发明,我们取 一个向量边,其包括每条来自每个图副本的对应的边,并允许在Z 条边内的置换,例如,我们准许置换对应于所述向量边内的边的约束 节点,例如,重排序。
我们可以把置换限制在标记为屮的ZxZ置换矩阵的子集(通常
是一个群)空间内。我们假设甲中置换的逆还在甲中。通常能使用各 种准则来选择子集T 。上面结构的主要动机之一是要简化解码器和编 码器的硬件实现。因此,把甲限制为能在硬件中高效地实现的置换是 有益的,例如,在交换网中。
在美国专利6,633,856中,描述了利用提升结构的LDPC解码器 结构。在这个结构中,我们向量化解码过程。特别地,当例如从变量 节点侧转到约束节点侧时,我们允许向量边内的Z条边经历在投影图 副本之间的置换,或者交换。在对应于Z个并行投影图的向量化消息 传递(解码)过程中时,当从向量化图的一侧传递到另一侧时,通过置 换向量消息内的消息来实现这个交换。
我们简要地回顾示例性的向量化解码器实现。我们假设将用于存 储从变量节点到校验节点的消息和/或从校验节点到变量节点的消息的存储器排列成ZxE个m比特存储单元,其中,E是边数,m是一 个消息中携带的比特数,并且是大于1的整数。以Z个m比特为单 位访问存储器,换句话说,每次访问读出或写入Z个m比特。该Z 个m比特对应于在提升图的Z条提升边上的Z个消息。为了方便描 述,我们将每组Z个m比特消息与投影图中的对应边相关联。例如, 当我们说我们访问投影图中边e的消息时,我们实际访问对应于提升 图中Z条边的Z个m比特消息。
让我们回忆,在一般的消息传递算法中,在一个节点中的消息更 新依赖于来自该节点的邻居的所有消息。假设投影图中的一个节点具 有d条边,q,A,...q。消息更新的基于边的实现可以读出ej的消息, 应用相应的重排序;并且现在,对于提升图的所有Z个节点,重排序 的消息处于适当的相邻群中。在美国专利6,633,856中,解码器结构 具有用于节点处理的Z个并行处理单元。在一个或多个阶段,消息经 历格式变换以便于高效的实现。例如,在变量节点侧和校验节点侧可 能使用不同格式。
向量解码器的好处是通过提供结构化并行度,它达到高吞吐量。 提升结构使得以简洁方式描述并行处理单元,因为更新的Z个节点对 应于投影图中的相同节点以及所有它们的相邻边对应于投影图中的 相同边。除了用于指定较大图结构的小(投影)图的描述之外,描述提 升(向量)解码器通常涉及与每条边相关联的重排序和节点信息的存 储。假设每条边具有不变的描述尺寸,那么对解码器信息的总存储需 求正比于投影图中的边数。为了方便描述,让我们称这组解码器描述 信息为控制码,有时也称作提升图的解码微码。因此,对于相同的块 长度,增大提升因子通常会减小解码微码的尺寸。对于大的块长度, 这可以显著减少微码存储器的尺寸。
在微码中, 一半描述变量节点处理以及另一半描述校验接点处 理。解码过程顺序地执行微码的每一半,分别被标记为解码迭代的一半。美国专利6,633,856的实施例包括交替地或同时地执行已知为一 个完整迭代的LDPC解码迭代的两个一半(变量节点处理是一半以及 校验节点处理是另一半)的结构。成功的解码将通常包括几个完整迭 代,例如,直到解码处理产生被修改为收敛到一个已知码字的点的接 收码字,可能需要多次迭代。
向量化并行处理中的一个元素是由交换网促进的重排序模块。Z 个副本间的连接是通过使用重排序模块实现的。在消息重排序后,处 理仅包括Z个并行单元,每个并行单元对应于投影图的一个副本。
根据该发明实现的具有实现并行度Z的向量(提升)LDPC解码器 与具有并行度1的解码器相比,达到Z倍的高数据吞吐量。代价是在 硬件复杂度上,它需要大致Z倍的门数。尽管把实现并行度设置为与 提升图的提升因子相同是方便的,但不是必需的。在许多情况下,可 能是不期望的。
例如,让我们假定在描述大图时使用大的提升因子Z,以获得上
面提到的节省微码存储器的好处。把实现并行度设置为等于提升因子 Z导致了过度的吞吐量。
己知硬件复杂度正比于实现并行度但图描述复杂度正比于提升 因子Z的事实下,期望当使用以大提升因子Z描述的提升图时,我 们能设置实现并行度使得得到的吞吐量匹配需求而不过度。这有益于 处理单元复杂度和解码器描述存储。
本发明针对使用具有提升因子Z的解码器描述,实现具有实现并 行度N的向量LDPC解码器的方法和装置,其中,N是Z的除数。 选择实现并行度N来匹配所需的吞吐量,因此使用最小硬件复杂度。
如下完成这个。给定对于具有提升因子Z = Kx N的提升图的微 码,本发明指定具有实现并行度N的解码器,其把每次解码迭代扩 展成K次迭代。每次迭代经历一次整个微码,完成由具有实现并行 度Z的解码器解码迭代的1/K。因为存在N个并行处理单元,处理时间总量是相同的,这是期望的。本质上,在不改变微码-使用提升因 子N描述解码器的情况下,我们把并行处理转移为顺序处理。
此外,根据本发明,具有实现并行度N的向量LDPC解码器能 够根据描述具有提升因子z的解码器的相同微码来解码一类具有相 同速率不同码字尺寸的LDPC码。特别地,作为实例,假定Z可以 因子分解为&xA^xN表示出,并且投影图码尺寸是n,其中Z、&、 /(2、 N和n中的每个都是正整数,则解码器可以解码块尺寸为Nxn, 〖2 xNxn以及《x《2 xNxn的三种不同码。
下面以详细的描述来描述本发明的各种附加特性、好处和优点。


图1说明了长度为十的示例性规则LDPC码的二分图表示。 图2是图1中图示的码的矩阵表示。
图3和4说明了把简单的一组微码的执行分解为K步的思想。
图5说明了根据本发明的示例性解码器结构。
图6说明了使用根据本发明实现的示例性可编程LDPC解码器的 设备,例如移动节点。
图7包含图7A和图7B的结合,是运行根据本发明的示例性通 信设备以执行根据本发明的编码和解码的示例性方法的流程图。
具体实施例方式
本发明针对LDPC解码器,并且,尤其针对能以硬件高效方式实 现的LDPC解码器。本发明的解码方法和装置能实现为可编程设备, 和/或能接收码字长度指示符信息并解码不同长度的码字的设备。因 此,尽管本发明的解码器能被实现为用于解码指定码字长度的码字的 固定设备,但通过支持对不同长度的码字和/或对应于不同码结构的 码字的解码,其允许灵活度。2004年2月26日提交的、名为"METHOD AND APPARATUS
OPERATIONS USING A MULTI-LEVEL PERMUTATION"的美国专 利申请S.N. 10/788, 115,描述了能用于LDPC码的乘积提升方法, 在此被明确地引入作为参考。乘积提升进一步限定在提升中使用的 ZxZ置换矩阵群为能被分解成为子群的直接乘积的群。例如,我们 假设甲是二个群的直接乘积,即,T = %xT2。甲的维数等于甲,维 数的乘积,其中甲,是A:,x&.置换矩阵群,其中,K,是整数。进一步 假设群T,的维数等于群内矩阵的维数,因此,Z = ^X^2。
根据本发明,我们将提升群甲限定为乘积提升群。乘积提升能等 同地被看作多维提升。假设投影码的尺寸是P,即,具有P个变量节 点。能选择用于提升的、尺寸为64的循环群。根据本发明,备选将 是尺寸为16的循环群和尺寸为4的循环群的乘积。这个群能由以下 表示。使用对(a,b), a-0,…,15并且b^0,…,3,通过可逆映射L=4a+b, 考虑索引LM),…,63。这个乘积群的一个元素是一对(c,d), c-0,…,15 并且cH),…,3。 (c,d)对(a,b)的作用是把对(a,b)置换为(a+c模16, d+b 模4)。这个群也具有阶64。然而,得到的提升图能被解释为尺寸为 4P的码乘以16、或尺寸为16P的码乘以4、或尺寸为P的码乘以64 的提升。在本发明的解码器的环境中,实现由乘积提升提供的优点。 通过使用乘积提升增加的值是本发明的特征。由不是乘积的群,例如 由循环群的提升,允许任意尺寸的提升,但不提供乘积提升的灵活性。
已经引入作为参考的美国专利申请S.N. 10/788, 115描述了乘积
提升图和使用这些图的可能好处。
本发明在引入的专利申请中描述的基本原理上扩展。特别地,这 个申请描述了使用提升因子Z^KxN实现解码器的方法和装置,以 及利用实现并行度N来解码图的相应方法和装置,其中,K、 N和Z 都是整数,并且N〈Z。因此,本发明针对用于实现解码器并行度级别的解码器,例如,与提升因子Z相比,并行地使用较少的校验节点和 /或变量节点(例如,N个节点)。
我们假设有具有提升因子Z = K x N的提升LDPC图。提升群T将 是乘积提升群甲二^x甲2,其中K是群^的维数,并且N是群^的 维数。因此,总的提升是两个较小提升的乘积。
向量化并行处理中的元素是由交换网促进的重排序模块。依据与 消息相关联的节点,例如,依据将被执行的处理,重排序消息。在Z 并行的实施例中,实现的处理单元包括Z个并行单元,每个对应于投 影图一个副本中的节点。
根据发明,我们使用N个并行单元,而不是Z个并行单元。在 处理中,在本发明的解码器中,我们并行地执行与N个节点而不是 与Z个节点相关联的处理。在这样的实现中,通过执行微码K次, 执行与处理由Z倍乘积提升指定的码相关联的解码,其中每次N个 并行单元进行对于投影图的N个副本的消息更新。因此,在解码或 解码趟(pass)的第j次执行中,对于投影图的第j个N个副本,消息 被更新。回忆Z^NxK。因此,在第K次迭代结束吋, 一个解码趟 应该完成。
我们写出原始消息向量(1=((11,^,...^),每个dj是N个m比特
的向量。给定提升群是乘积提升甲=甲,><^2,让我们写出包含在每个 解码器描述中的重排序信息r^(r,,r。,其中r,是群甲,中的重排序量, 并且1:2是群甲2中的重排序量。我们使用标记甲,(《r)来表示通过量r 对群甲,中的向量d(Kj个元素)的重排序。也能把重排序认为是位置置 换,使得,在最初位置j的元素dj转到在重排序数据中标记为^,(力 的新位置。那么能将重排序认为是2级重排序过程。第一级在群甲2中 对N 个(m比特)元素重排序来生成向量d'= CP2(《r2),T2(d2,r2),...,T2(A,r2))。然后第二级在群^中对K个 (N个m比特)元素重排序来生成向量d" 二A(J',巧)。然后将重排序的 数据d"馈入节点处理单元。为了方便,让甲,/、/)表示函数甲i,(/)的逆。
因此对于第j个N个副本,在最初Z个m比特的向量内,他们 的位置是甲,,,.,—'C/)。因此,对于在第j个解码趟中的边,我们读出数据 其中地址是a和j的函数,并且由群中2中的r2量重排序读出
的数据,生成?2(《,,2)。这组消息对应于与处理中N个节点相关的 一组正确排序的边消息。
为了方便理解,我们考虑一个实例。图3的700示出了用于具有 最大提升因子Z-64的示例性提升图的解码过程,其中使用匹配这个 提升因子的并行度级别。提升群是循环群4和循环群16的直接乘积。 为了解释本发明的目的,我们现在将描述使用并行度级别等于Z=64, 用于对应于投影图中的节点v的一组64个变量节点的解码过程;其 中节点v具有度数2。对于度数不同于2或校验节点,解码过程将具
有相同的特性。来自连接到v的两个边的消息在两个时钟被读出, a = (a。,ai,a2,a3)701, b = (b^bpb^b"702,每个aj(bj)是16个元素
m比特的元素向量711。由箭头710指示时间进度。这两个64元素 数据701、 702经过由指示为(rl,r2)的重排序信息708控制的64元
素置换器703,其中H表示第一个循环群的置换信息并且r2表示第 二个循环群的置换信息。在我们的实例中,数据a701的重排序信息 是(3,4)并且数据b 702的重排序信息是(1,6)。因此,在重排序后,"'=(^4,"24,"34,《)704,并且6^(、6,《,6f,626)705,其中J'表示循环 群16中由量Z置换数据d的结果。重排序数据704、 705然后经过包 含64个并行可配置节点处理单元706的节点处理模块,其中,由每
个单元执行的并行处理是相互独立的。因此,在结果数据 c二(c。,q,C2,C3)707中,c。仅依靠at和b3, c,依靠a2和b。, 02依靠&3 和bt , c3依靠a。和b2 。解码器微码命令包括重排序信息r=(rl,r2)708 和节点信息709。
包含800的图4示出了我们如何按照支持总提升因子Z=64的微 码使用实现并行度16(N46)而不是并行度64(在置换器和并行处理单 元中),来实现图3中示出的相同解码过程。在以4(K二4)循环执行微 码中完成解码,其中,Z = KxN。根据本发明,根据循环计数器和 由用于控制解码的微码指定的重排序控制信息rl来访问的数据。
在解码开始处,用由接收信号生成的将被解码的数据装载存储器 912,例如,经由数据输入901。这个将被解码的数据可以称为接收 码字。由于信道干扰和/或其他可以将错误引入接收信号的因素,将 要被解码的接收码字包括将要由解码过程检测和/或纠正的错误。可 以以各种方法确定解码完成,例如,施加于码字上的所有约束都被满 足,表明已经把接收码字解码为该码支持的码字。这可以描述为接收 码字收敛为已知码字。解码码字能从存储器912读出和/或从节点处 理模块906直接输出。
在第一个循环827,例如,第一个处理迭代,解码器访问数据31801 和133 802;在第二个循环828,解码器访问数据&2803和、804;在第 三个循环829,解码器访问数据a^05和b,806;并且在第四个循环 830,解码器访问数据a。807和b2808,其中,ai和bj表示16个m比 特元素组,该元素例如为作为解码过程一部分传递的消息。每个消息 通常包括多个比特,例如,包含可靠性信息的软值,其在一些消息中可以被传送。由于存在其他变量节点以及用于完成整组微码的循环, 因此示例性的4组数据可以不邻接,其中,微码用于执行解码处理, 例如,对应于将用于控制解码的码结构的整组变量节点的处理。每个
受访数据单元(801、 802、 803、 804、 805、 806、 807、 808)的这16 个元素经过由重排序信息r2 825控制的16元素置换器810。然后, 重排序数据
(a,4811、 636812、 ",813、《814、 a34815、 "6816、 a04817、 Z>26818)经过 包含16个并行节点处理单元的节点处理模块820,该并行节点处理 单元由包含在解码命令中的节点信息826控制。从该命令生成序列 c。 821、 ct822、 c2 823、 c3 824。因此,通过使用4倍的处理时间,而 具有大约1/4的硬件复杂性,由图4中的结构完成图3中的相同消息 传递结果。即,能使用16而不是64并行度等级实现图4的解码器。
以上讨论描述了我们如何使用并行度N来使用具有提升因子Z 的微码进行解码,其中Z二NxK。
我们现在将描述图5中示出的一个示例性LDPC解码器900的实 现,其使用并行度级别N实现本发明的K循环解码过程,以达到使 用并行度级别Z的效果。
图5示出了根据本发明实现的示例性可编程解码器900。可以经 由输入953,用不同的码描述信息组装载解码器900。在其他实施例 中,在本发明的解码器不是可编程的情况下,解码器900被预先装载 了例如单组码描述信息,并且输入953被省略。
示例性的LDPC解码器900包括存储器源模块卯2、 N元素可控 制置换器模块904、节点处理模块(并行的N节点处理器)906、控制模 块910、以及基于码提升的块选择模块908。存储器源模块902包括 (NxKxL)存储器(存储单元)912,其中每个存储单元能储存多个比 特;地址生成模块916;以及在一些实施例中的可选解压縮模块914。 在作为解码过程的部分在节点间传递的消息以压縮格式储存的实施例中,使用解压縮模块914。在这样的情况下,它们可以被生成并以 压缩格式储存,并且然后,在经受进一步处理前经受解压縮。在一些 实施例中不需要和不使用压縮,但消息压縮能节省存储器需求,并因 此在一些实施例中实现。
控制模块910包括所存储解码器描述信息模块942、内环计数器 940、以及外环计数器944。所存储解码器描述信息模块942包括例 如诸如微码的控制码的信息,其反映用于控制如何生成将要被解码的 码字的码的结构,以及因此也用于控制对接收的已编码LDPC码字的 解码。控制码通常包括命令序列,这些命令被执行由直到最大可支持 提升因子K的选择的码提升因子SK指示的次数,其中,K和SK是 整数。
在图5的示例性LDPC解码器卯0中,基于内环计数器940的值, 控制模块910确定在例如微码的控制码内的哪一个命令将被执行。内 环计数器940在每步增加1,并且在达到最大计数时复位,该最大计 数是对应于用于控制解码的所存储码描述的微码内的命令数。
在一个示例性解码器实施例中,响应于从内环计数器940接收的 控制信号而执行的每行存储微码具有格式
op r rt
其中,op指示写操作;
其中,r是提供置换的数,例如,消息旋转,信息r用作单独的 旋转值rl、 r2的压縮表示,并且通常由解码器描述模块942处理以 生成置换信息信号H和r2,或者,rl、 r2可以不被组合成单个值r, 包含在命令中。
其中,存储单元指示符a是当执行指定的操作时,用于提供关于 应该访问存储器912中的哪一个存储单元的信息的存储单元指示符, 例如一个值;并且
其中,nci节点配置信息指示节点处理模块906应该把包含在其中的节点配置为变量节点还是校验节点,和/或多少条边将通过节点 和/或与变量节点相关联的各自比特来处理,该nci节点配置信息是收 缩的或已知的。
在非规则码的情况下,将由节点处理的边数根据在特定时间点、 在例如图的码结构中哪个节点正被实现而变化。通过使用节点控制信 肩、,避免了对单独的校验节点和变量节点处理模块的需要,节点处理 模块能被重新配置来执行变量节点和校验节点处理操作。
然而,具有单独的变量节点和校验节点处理模块的实现是可能的
并且在本发明的范围内。在这样的实施例中,节点控制配置信息952
将被提供给变量节点和校验节点处理模块,其中每个模块使用与特定 模块相关的控制信息。
现在将进一步讨论解码器900的操作。所存储解码器描述信息模 蜂942存储用于控制解码的码描述信息。通过内环计数器940驱动, 例如,通过输出适当的控制信号以实现命令,所存储解码器描述信息 模块942执行解码命令。在N元素置换器模块处理一组数据的每个 时钟周期期间,从存储器912读出一组N个元素。当写信号928被 激活时,例如,响应于从指示将执行写的存储控制码生成的op信号, 数据被写入到存储器。读和写能出现在相同置换器时钟周期中。已知 无论写信号928的值,在每个置换器时钟周期期间读操作通常出现, 那么当写信号928是激活的时,这将发生。这能通过使用双通道存储 器或者以两倍于置换器904的速率操作存储器模块902来允许在一个 置换器904时钟周期中出现对存储器912的读和写来完成。通常由公 共时钟信号驱动解码器900的每个单元。然而,在一些实施例中,为 存储器912提供较高速率的时钟,来允许在置换器904和/或节点处 理模块906的周期中同时进行读和写。如上面讨论,命令包括,例如, 操作符,,存储单元指示符",重排序信息r以及节点配置信息"c/。
操作符op指定写信号928的值,例如,"1"用于指示写激活而"0"指示写禁用。写信号928从所存储解码器描述信息模块942输 出并被输入到存储器源模块902。存储单元信息"用于生成第一地址 控制信号(a) 930,其从模块942提供到存储器源模块902。在这种方 式下,存储器源模块902的地址生成模块916接收对应于将被实现的 命令的信息a。重排序数r被分成两部分(r,, r2)。在各个实施例中, (r,, r2)每个分别指定群^和甲2中元素的重排序,其中,节点被排列 到群%和甲2中以实现作为两个较小提升函数的图提升。控制值n和 r2存储在值r中。在一个示例性实施例中,对于给定实现由r指定rl, 从值r确定rl为用N除r时的整除结果,其中N指示节点并行度实 现级别。即,rl-r除以N。在这样的实施例中,通过取r/N的模数从 值r中确定r2。假设例如N=16。考虑例如,如果r=43并且N=16, 那么,rl=(r除以N)=(43除以16)=2,而r2=(r模N)=(43模16)=11。 由模块942从r生成的重排序部分n指定了从所存储解码器描述模块 942输出的块重排序信息信号(n) 934。信号n作为输入提供给码提升 块选择模块908,而重排序部分r2确定从模块942输出的重排序控制 信号(1'2) 950的值。信号r2作为输入提供给N元素可控制置换器模块 904。
包括在被执行命令中的节点配置信息确定从模块942输出的节 点配置控制信号952。节点配置信息信号952作为输入提供给包括N 个并行排列的可配置节点处理器的节点处理模块906。在许多但不必 须是所有实施例中,节点配置信息使得模块906中的N个节点处理 器的每一个在相同时间点被以相同方式配置。节点处理器在被配置为 变量节点和校验节点之间切换。
在一些实施例中,例如,在解码器900是可编程的实施例中,所 存储解码器描述信息模块942包括输入953,输入953用于接收码描 述信息,例如,反映在生成将要被解码的码字时使用的码结构的解码 器控制指令。将由内环计数器940生成的内环计数信号946作为增量控制信号 提供给外环计数器944。当内环计数器940达到最大内环计数值时, 例如,投影图中的边数,它触发外环计数器944增加1并从0重新开 始计数,例如,计数器回绕。外环计数器944确定从1到SK的哪个 循环在一个完整迭代中正被执行,其中SK是能从1到K变动的选择 提升因子,其中K和SK都是整数。 一旦外环计数器944达到通过码 提升因子控制信号(SK) 948设置的最大值,解码器900就已经完成一 个完整迭代,并且外环计数器944复位到零。在提升因子是固定的一 些实施例中,省略SK信号输入,并且最大外环计数器值设置为K。
基于码提升的块选择模块908从控制模块910的所存储解码器信 息模块942接收块排序信息信号(r0 934,从来自所述控制模块910 的命令中的重排序数r的^分量确定块排序信息信号(rl) 934。通过 外环控制信号936由控制模块910的外环计数器944驱动,并由块排 序信息信号(O) 934控制,基于码提升的块选择模块卯8生成并输出 第二地址控制信号(块地址选择信号)932。
存储器模块902从控制模块910接收传送操作符和存储单元a的 写信号928以及第一地址控制信号(a)930。存储器源模块902的地址 生成模块916接收第一地址控制信号(a) 930和第二地址控制信号 932。地址生成模块916生成由在接收的第一和第二地址控制信号 930、 932中的信息指定的存储器访问信号920,并将存储器访问信号 920转发给存储器912。信号920用作读地址信号。对于N元素可控 制置换器904的每个处理周期,从存储器912读出一次信息。存储器 地址信号920由时延954延迟以生成写地址控制信号956。可以由部 分节点配置控制信号952控制在956和920之间延迟的周期数。写输 出控制信号955可以与信号956相同,并指示解码结果被写入的地址。 当写信号928被激活时,写地址控制信号控制节点处理模块906的输 出将会被写入到存储器中的位置。如所示,存储器模块902经由数据输入928接收节点处理模块 906的输出或通过输入901接收最初的输入。最初的输入可以是例如 接收的将被解码的码字或部分码字。
存储器模块902包括排列成Kx (Nx L)个m比特存储单元的存储 器912,其中m表示在一个存储消息中的比特数,例如,存储消息为 在节点间传送的软值。为了方便,我们把具有K块(Nx L)个m比特 单元的存储单元标识为块l,...,K。在是第一地址控制信号"930和第 二地址控制信号A 932的函数的单元访问存储器912。存储器地址生 成模块916指示这样的函数。给定OJ),存储器源模块902读出对 应于第k个块中单元a的N元素向量。给定延迟的O,Q并依靠写信 号,存储器源模块902将N元素向量输入写到第^个块中的单元fl。 通过使用双通道存储器或以双倍速度运行存储器,对于存储器912的 读和写操作可以同时发生。在一些实施例中,存储器912可以包括用 于值的临时存储的附加存储器。
以N元素单元将信息读出和写入到存储器912,其中每个元素包 括m比特。 一组N单元922被从存储器读出并被提供给N元素可控 制置换器模块904的输入。在一些使用消息压缩的实施例中,解压模 块914接收从存储器912读出的N个元素918,执行解压縮,并将N 个元素输出到可控制置换器,其中,作为解压縮的结果,信号922中 N个元素的每一个比最初从存储器读出的元素包括更多比特。在不使 用解压缩模块914的实施例中,从存储器912读出的N元素单元918 被提供给置换器模块904的输入。支持解压縮性能并允许节点处理模 块以压缩格式生成消息的实施例允许使用比包括在解压后的每个消 息中的比特数少的m比特存储消息。N元素可控制置换器模块904 实现提供到那里的N个消息的重排序。这表示在群甲2中的重排序。
在从存储器读出的N个元素被提供给节点处理模块906之前,重 排序控制信号r2 950控制置换器904来执行从存储器读出的N个元素的重排序,重排序控制信号r2950由控制模块910提供并从正执行的 模块942的存储命令中生成。
将从置换器模块904输出的重排序的N元素向量耦合到N元素 节点处理模块906的N元素向量输入924。由来自所述控制模块910 的命令中包含的节点配置控制信号952控制节点处理模块906。在说 明的实施例中,将节点处理模块卯6的输出926馈入到存储器模块 902和/或一些附加的存储器,例如, 一旦解码已经成功完成,用于存 储结果的存储器。
应该注意,在描述的解码器实施例上的一个变化是使用类似于在 一个专利申请中描述的编码器实现的解码器结构,该专利申请是具有 2004年7月21日的提交日期、由代理人案号[Flarion-108]在第一页上 标识、名为"LDPC ENCODING METHODS AND APPARATUS"的美 国专利申请S.N. 10/895547,其在此被明确地引入作为参考。根据该 发明实现的这样的解码器使用内环重复并包括K个N元素寄存器以 保存临时的节点处理结果。对于本领域的技术人员来说将是显然的, 这个变化将被认为是在这个专利和发明的范畴内。这样的实现包括许 多存储器模块902、置换器模块904以及所存储解码器描述信息模块 942的这里讨论的特性。
概括地,给定具有提升因子Z^KxN的提升图的微码,并且码 字长度-KxNxL,本发明指定具有N个处理单元、执行相同解码器 控制码K次的解码器,例如,在用于完成与提升图相关联的一个完 整解码迭代的K趟中的每趟期间执行一次,其中, 一个提升图对应 于较小图的Z个副本,其能用于指定用于控制对将要被解码的码字进 行编码的码结构。
在本发明的各个实施例中,本发明的解码器能解码对应于共用与 投影图相同的速率、但具有不同码字长度的一类码的码字。这通过使 用选择的提升因子SK作为执行解码器控制码以控制对应于提升图的一个完整迭代的循环数来实现,其中SK是K的除数。
更特别地,在这样的乘积提升中的群%仍然是两个群的直接乘 积A二vpuX甲,2,并且SK是矩阵^V的维数,并且J是屮n的维数, 因此,K二JxSK。作为特殊情况,甲12可能是单个元素1的群并且甲n 是%,因此SK4并且^K。无论如何,在提升图中,如果我们忽略 提升群内的&,分量,那么我们有具有提升因子Z/J = SK x N的提升 图。看这个的不同方式是我们采用原始图并将它投影到提升群甲n上, 因此,在奇偶校验矩阵中,指示ZxZ置换矩阵的每个非零项现在被 投影为Z/JxZ/J置换矩阵。这样,对于投影图仍然保持在较大图中的 相同解码过程序列。
因此,描述具有提升因子Z的较大图的微码根据本发明也能用作 描述具有提升因子Z/J^SKxN的投影图的微码。与关于Z的情况相 同的讨论路线,通过在SK个循环中执行微码以完成对应于提升图的 一个解码处理迭代,我们能使用具有N个m比特向量操作的相同解 码器来解码具有提升因子SK x N的码。
如果^仍然能被写为两个其他群的直接乘积?, 二甲u'x甲u,那 么存在共用相同微码的不同码字长度例如块长度的其他码。根据本发 明,通过指定相应的SK,具有并行度N的相同解码器能解码具有提 升因子Z/J'这样的码,其中,J'是^n'的维数。^中更多的附加结构 可以导致更多的不同块长度的码可在相同硬件上解码。因此,通过依 据在特定解码实现中使用的群结构来控制SK,解码器能解码具有不 同码字长度的码字。
在图5的示例性LDPC解码器900中,能通过码提升因子控制信 号(SK)948指定码提升因子。信号948被耦合到外环计数器944,确 定外环计数器944的最大计数。
本发明的方法和装置能用于实现广泛的各种设备,包括,例如, 无线终端、基站、数据存储设备以及可能使用数据的编码和/或解码来防止和/或纠正错误的其他类型设备。
图6是根据使用本发明方法的LDPC编码器/解码器装置实现的
例如移动节点的示例性无线终端CWT)IOOO的图。示例性WT 1000包 括接收机1002、接收机天线1004、可编程LDPC解码器1006、发射 机1008、发射机天线1010、可编程LDPC编码器1012、处理器1014、 用户I/O设备1015以及存储器1016。可编程LDPC解码器1006(其 能使用图5的解码器900实现)、可编程LDPC编码器1012、处理器 1014、用户I/O设备1015以及存储器1016经由总线1018耦合到一 起,各种元件可以通过总线1018相互交换数据和信息。
将接收机1002耦合到接收机天线1004,经由接收机天线1004, WT 1000可以接收来自其他设备的信号,例如,来自基站的编码下行 链路信号。接收机1002也耦合到可以根据本发明解码所接收的下行 链路信号的可编程LDPC解码器1006。例如,除了 LDPC编码数据 之外,接收的信号可以包括用于指示用于编码正被接收的数据的 LDPC码结构和/或包括在接收数据中的码字的码字长度的信号,例 如,控制信息。接收的数据可以包括对应于不同应用的码字。根据本 发明,解码器可以从解码对应于第一个码结构和码字长度的数据切换 到解码对应于第二个码结构和第二个码字长度的数据。第一个和第二 个码字结构可以不同,响应于包含在接收信息中的信息,用例如微码 形式的控制码这样的适当码结构信息装载解码器。通常不使用LDPC 码来编码控制信息,以便于控制信息的快速检测和解释。第一个和第 二个码字长度也可以不同。在一些情况下,第一个和第二个码结构是 相同的,但是对应于不同应用的数据的码字长度可以是不同的。在这 样的情况下,不需要更新码结构信息来解码不同尺寸的码字,并且, 随着接收数据的码字长度改变,仅需要将例如提升因子信息的码字长 度信息提供给解码器。可以将码字长度信息指定为正在使用的码结构 的码提升因子。如以下将要讨论的,例如控制码的码结构信息能用于控制可编程LDPC解码器,而码字长度信息能用于设置码字长度,用
于解码目的。这样的信息经由总线1018能从存储器1016传送到解码 器1006。
将发射机1008耦合到发射机天线1010, WT 1000可以通过发射 机天线1010向基站发射包括已编码的上行链路信号的上行链路信 号。将发射机1008耦合到可编程LDPC编码器1012,可编程LDPC 编码器1012在传输前编码各种上行链路信号,例如,对应于不同应 用的数据信号。给编码器装载对应于不同码结构的不同组码描述信 息,例如,诸如微码的不同组控制码。另外,将用于控制由编码器 1012生成的码字的长度的码字长度信息,例如,以码提升因子信息 的形式,提供给编码器1012。可以从接收的信息中获得选择码字结 构和/或码字长度的信息,例如,编码器可以使用与用于解码的相同 码字结构和码字长度来编码由应用生成的数据,该相同码字结构和码 字长度被用于解码为该生成数据的特定应用接收的数据。因此,可以 编程编码器以匹配正由与无线终端相互作用的另一个设备使用的编 码结构和码字长度。或者,设备用户可以指定使用特定的码字结构和 /或码字长度,或者这样的信息可由通信程序或存储在无线终端中的 其他程序指定。
经由总线1018,能将码结构信息和/或码字长度信息,例如以一 组控制命令的形式,从存储器1016传送到可编程LDPC解码器1006 和可编程LDPC编码器1012。例如键盘、扬声器、传声器、显示器 等的用户I/O设备1015提供接口以使用户输入数据和信息,例如, 将被编码并传送到另一个WT的数据和信息,以及使用户输出和/或 显示接收的数据/信息,例如,来自已经被解码的同等节点的接收数 据和信息。用户I/O设备1015提供接口,以允许用户选择和/或指定 将由可编程LDPC解码器1006和/或可编程LDPC编码器1012使用 的与一组数据相关联的码、码长度指示符、和/或多组码描述信息。处理器1014,例如CPU,执行程序并使用存储器1016中的数据 /信息以控制无线终端1000的操作并实现本发明的方法。
存储器1016包括编码器码描述信息组1026、 1028的群1025, 以及解码器码描述信息组1030、 1032的群1029。每个编码器码描述 信息组1026、 1028包括反映用于对数据编码的码的码结构的控制码, 例如微码。每组信息1026、 1028对应不同的码结构。编码器码描述 信息能被装载到可编程LDPC编码器1012的编码器控制模块,并例 如作为存储编码器描述信息用于控制数据的编码。类似地,每个解码 器码描述信息组1030、 1032包括反映用于对数据解码的码的码结构 的控制码,例如微码。每组解码器码描述信息1030、 1032对应不同 码结构。解码器码描述信息能被装载到可编程LDPC解码器1006的 控制模块,并例如作为所存储解码器描述信息用于控制数据的解码。
存储器1016包括通信程序1020、编码器码和码字长度选择程序 1022、以及解码器码和码字长度选择程序1024。通信程序1020可以 控制与其他无线设备通常的通信和相互作用。当使用LDPC码编码和
/或解码数据时,对于给定应用实现的通信程序可以指定将用于特定 通信应用的码结构和和/或码字长度。编码器码和码字选择程序1022 负责选择将用于特定应用的码结构以及因此相应的编码器码描述信 息1026、 1028。基于从通信程序1020接收的信息、经由接收机1002
或从用户输入接收的信息,来作出这个选择。如果编码器码和码字长 度选择程序1022还没有被配置为根据选择的码和码字长度执行编 码,那么它负责用选择的码描述信息装载可编程LDPC编码器1012, 并负责将例如选择的码提升因子的信息提供给可编程编码器1012。 解码器码和码字选择程序1024负责选择码结构以及因此相应的将被 用于特定应用的解码器码描述信息1030、 1032。基于从通信程序1020 接收的信息、经由接收机1002或从用户输入接收的信息,来完成这 个选择。如果解码器码和码字长度选择程序1024还没有被配置为根据选择的码和码字长度执行解码,那么它负责用例如控制码的选择的 码描述信息装载可编程LDPC解码器1006,并负责将例如选择的码
提升因子的信息提供给可编程解码器1006。
除了以上讨论的涉及编码和解码的程序和信息外,存储器1016 可用于存储接收的解码器信息1038,例如,由指示将用于解码的码 结构和码字长度的解码器码和码字长度选择程序1024使用的接收信 息。另外,接收的编码器信息1044,例如,由指示将用于编码的码 结构和码字长度的编码器码和码字长度选择程序1022使用的接收的 信息,可存储在存储器1016中。涉及解码的用户输入信息1036以及 涉及编码的用户输入信息1042也可存储在存储器1016中。这些信息 与解码器信息1038和编码器信息1044相同或类似,但是其经由用户 I/O设备1015而不是经由接收机1002从用户获得。
包括图7A和图7B组合的图7是操作根据本发明实现的例如WT 1000的示例性通信设备以执行根据本发明的编码和解码的示例性方 法的流程图1100。操作在步骤1102开始,在其中WT 1000接通电源 并初始化。操作从步骤1102继续进行到步骤1104、 1106、以及步骤 1108。
在步骤1104,操作WT 1000接收编码/解码信息和/或从接收的数 据生成控制信息。可以经由通过接收机1002处理的接收信号和/或经 由用户I/O设备1015接收的用户输入来接收编码/解码信息,例如, 用于可编程LDPC编码器1012和/或可编程LDPC解码器1006的控 制信息。另外,处理接收的编码数据以生成控制信息。例如,可以使 用不同的码结构信息和/或不同码字长度执行解码的多次尝试。 一旦 成功解码,生成控制信息,该控制信息在一些实施例中指示将用于解 码到来数据以及在一些实施例中编码输出数据的码结构和/或码字长 度。经由连接节点AlllO,操作从步骤1104继续进行到步骤1112。 在步骤1U2,操作WT 1000以确定接收的编码/解码控制信息的类型。基于步骤1112的确定,操作继续进行到步骤1114、 1116、 1118或1120。
如果在步骤1112确定控制信息的类型是编码器码结构信息,则 操作继续进行到步骤1114。在步骤1U4,操作WT 1000来用一组码 描述信息,例如对应于由控制信息指示的码结构信息的控制码,装载 编码器1012。操作从步骤1114继续进行到连接节点B 1122。
如果在歩骤1112确定信息的类型是编码器码字长度信息,则操 作继续进行到步骤1116。在步骤1116,操作WT 1000将对应于由控 制信息指示的码字长度的码字长度指示符,例如选择的提升因子,提 供给编码器1012。操作从步骤1116继续进行到连接节点B 1122。
如果在步骤1112确定控制信息的类型是解码器码结构信息,则 操作继续进行到歩骤1118。在步骤1118,操作WT 1000来用一组码 描述信息,例如对应于由控制信息指示的码结构的控制码,装载解码 器1006。操作从步骤1118继续进行到连接节点B 1122。
如果在步骤1112确定信息的类型是解码器码字长度信息,则操 作继续进行到步骤1120。在步骤1120,操作WT IOOO将对应于指示 码字长度的码字长度指示符,例如选择的提升因子,提供给解码器 1006。操作从步骤1120继续进行到连接节点B 1122。
操作从连接节点B 1122返回到步骤1104,其中,WT1104等待 接收其他编码/解码信息,例如,完成可编程解码器1006和/或可编程 编码器1012的配置的信息,和/或改变解码器1006和/或编码器1012 的选择的设置的信息,例如,码字长度设置。
在步骤1106,操作包括先前配置的可编程解码器1006的WT 1000,通过接收机1002接收将被解码的数据,例如,来自WTIOOO 的同等节点的编码的用户数据。将接收的数据转发给解码器1006。 操作从歩骤1106继续进行到歩骤1124。在步骤1124,依据在解码器 1006中的所存储码描述信息和已经提供给解码器的码字长度指示符 信息,操作解码器1006以解码数据。操作从步骤1124继续进行到步骤1106,在步骤1106中接收将被解码的附加数据。
在步骤1108,操作包括先前配置的可编程编码器1012的WT 1000,通过用户I/O设备1015接收将被编码的数据,例如,来自WT 1000的用户将要被编码并被传送给WT 1000同等节点的输入数据。 将接收的数据转发给编码器1012。操作从步骤1108继续进行到步骤 1126。在步骤1126,依据所存储码描述信息和提供给编码器的码字 长度指示符信息,操作编码器1012以编码数据。操作从步骤1126继 续进行到步骤1108,在步骤1108中接收将被编码的附加数据。
在时间上,随着被装载到编码器1012和解码器1006的、对应于 例如选择的提升因子这样的码字长度信息的控制信息改变,码字长度 将会改变。因此,随着无线终端从对应于第一个设备和/或应用而接 收数据切换到对应于第二个设备和/或应用而处理数据,码字长度能, 并且在各个实现中将改变。另外,在时间上随着无线终端与不同的设 备相互作用和/或实现不同的应用,能改变由编码器1012和/或解码器 1006使用的码结构信息。因此,在第一个时间点,编码器和解码器 可以处理对应于第一个长度和/或码结构的码字,并且在另一个时间 处理对应于第二个长度和/或码结构的码字。在其他的时间点,本发 明的可编程LDPC编码器1012和解码器1006可以使用其他的码结构 和/或码字长度。各种可支持的码字长度通常将会达到由编码器1012 和解码器1006中可用存储器量和/或可用寄存器数量和尺寸确定的最 大尺寸。
对于能够并且在一些实施例中用作可编程LDPC编码器1012的 示例性可编程LDPC编码器的详细讨论,见具有2004年7月21日的 提交日期、由代理人案号Flaricm-108在第一页上标识、发明者名字 为Tom Richardson和Hui Jin、名为"LDPC ENCODING METHODS ANDAPPARATUS"的美国专利申请S.N. 10/895547,在此被明确地引 入作为参考。使用上述讨论的程序和存储的编码器/解码器信息,根据例如用 户信息或经由接收机1002接收的信息这样的接收信息,为了编码和 解码目的,无线终端能并且将在使用不同码结构和码字长度间切换。 也可由在特定时间点执行的特定通信程序1020来触发编码器/解码器 改变。因此,利用通过码更新的使用而容易被修改的单个一组硬件,
本发明在LDPC码的编码和解码中允许很大的灵活性,该码更新对应
于不同码结构和/或码字长度控制参数的改变。
以下的专利申请和专利提供关于编码和/或解码LDPC码的信息, 并在此被明确地引入作为参考。2004年2月26日提交的美国专利申 请S.N.10〃88,115; 2002年4月4日提交的美国专利申请S.N. 10/177,264;美国专利申请S.N. 10/618,325以及美国专利6,633,856。
关于本发明的方法和装置的众多改变是可能的。例如,可以用硬 件和/或软件实现本发明的各种特性。用于实现本发明的模块可以被 实现为软件、硬件、或软件及硬件的组合。本发明的一些方面可以实 现为处理器执行的程序指令。或者,或另外,本发明的一些方面可以 实现为例如,诸如ASIC的集成电路。本发明的装置针对软件、硬件 和/或软件与硬件的组合。设想了包括用于控制机器实现根据本发明 的一个或多个方法步骤的指令的机器可读媒介,其被考虑在本发明的 一些实施例的范围内。
因此,本发明尤其针对能用于控制处理器以执行根据本发明的编 码和/或解码的软件。本发明的方法和装置能用于OFDM通信系统以 及包括CDMA系统的其他类型通信系统。
权利要求
1、一种LDPC解码器,包括消息源,其包括用于并行地提供N个消息的消息输出端,其中,N大于1;节点处理模块,其包括并行排列的N个节点处理器;可控制置换器,其将所述消息源耦合到所述节点处理模块,所述可控制置换器包括用于接收重排序控制信号的重排序控制信号输入端,所述重排序控制信号用于控制对通过所述可控制置换器传递的至少一组N个消息中的消息进行重排序;控制模块,其用于根据存储的码描述信息生成第一地址控制信号,所述控制模块具有耦合到所述消息源的第一地址控制信号输出端;以及块选择模块,其用于生成块地址选择信号,所述块选择模块具有耦合到所述消息源的块地址选择信号输出端。
2、 如权利要求1所述的解码器,其中所述控制模块包括 内环计数器,其用于生成所述第一地址控制信号;以及 外环计数器,其用于生成提供给所述块选择模块的外环控制信号,所述外环计数器根据由所述内环计数器生成的内环计数而递增。
3、 如权利要求2所述的解码器, 其中,所述消息源是存储器;并且其中,在达到由码提升因子控制信号确定的最大计数时,所述外 环计数器被复位,所述控制提升因子控制信号指示选择的提升因子SK, SK具有大于或等于1的值。
4、 如权利要求3所述的解码器,其中,所述选择的提升因子SK小于或等于最大提升K,所述最大提升K对应于由所述控制模块支持的最大提升因子。
5、 如权利要求1所述的解码器,其中,所述块选择模块包括用于 从所述控制模块接收块排序信息信号的块排序信息信号输入端,所述 块排序信息信号取决于由所述内计数器生成的值和所述存储的码描 述信息。
6、 如权利要求5所述的解码器,其中,所述消息源包括用于根据 所述第一地址控制信号和所述第二地址控制信号生成存储器访问信 号的地址生成模块。
7、 如权利要求6所述的解码器,其中,所述消息源进一步包括具 有至少N乘K个存储单元的存储器。
8、 如权利要求7所述的解码器,其中,所述N乘K个存储单元 中的每个存储单元存储至少2个比特。
9、 如权利要求1所述的解码器,其中,所述消息源进一步包括解 压縮模块,其用于在将所述存储器中存储的消息提供给所述可控制置 换器之前对其进行解压縮。
10、 如权利要求1所述的解码器,其中,每个所述节点处理器是 变量节点处理器。
11、 如权利要求1所述的解码器,其中,每个所述节点处理器是 校验节点处理器。
12、 如权利要求1所述的解码器,其中,每个所述节点处理器是 可在变量节点与校验节点操作模式间切换的可配置节点处理器。
13、 如权利要求12所述的解码器,其中,每个所述可配置节点处 理器接收由所述控制模块根据所述存储的码描述信息生成的配置信 息。
14、 一种执行低密度奇偶校验(LDPC)解码处理的方法,包括提供解码器,包括存储器模块,其包括NxLxK个存储单元,其中N和L都是 正整数并且K是W的整数,每个存储单元能存储多个比特;可控制置换器,其耦合到所述存储器模块,用于对一组N个 多比特元素执行元素重排序操作,以改变在所述组中所述元素的顺 序;节点处理模块,其耦合到所述可控制置换器,包括并行排列 的N个可配置节点处理器;一组存储的解码器控制指令;以及 根据包括在所述一组存储的解码器控制指令中的解码器控制指 令,生成用于控制存储器访问的第一重排序信号;以及根据所述解码器控制指令生成第二重排序控制信号,所述第二重 排序控制信号被提供给所述置换器模块。
15、 如权利要求14所述的方法,进一步包括在根据所述第一重排序控制信号确定的存储单元执行存储器访问 操作;以及操作所述置换器模块以根据所述提供的重排序控制信号执行消息 重排序操作。
16、 如权利要求15所述的方法,其中,在根据所述第一重排序控制信号确定的存储单元执行存储器访问操作的所述步骤包括根据包含在所述解码器控制命令中的第一地址控制值、根据所述 第一重排序信号生成的第二地址控制信号、以及由循环计数器生成的 值,来生成存储器地址。
17、 如权利要求16所述的方法,其中,由所述循环计数器生成的所述值是根据码字长度指示符信号生成的。
18、 如权利要求17所述的方法,进一步包括根据包括在所述解码器控制命令中的配置信息,配置在所述节点 处理模块中的节点。
19、 一种对以前使用LDPC编码器编码的信息进行解码的方法,所述方法包括接收第一码字长度信息,其指示将被解码的第一码字的长度; 将所述码字长度信息提供给LDPC解码器的控制输入端; 操作所述LDPC解码器以接收将被解码的数据;以及 操作所述LDPC解码器以根据所述接收的码字长度信息来解码所 述接收的数据。
20、 如权利要求19所述的方法,进一步包括接收第二码字长度信息,其指示将被解码的附加码字的长度,所 述附加码字的长度是与由所述第一码字长度信息指示的第一比特数 不同的第二比特数。
21、 如权利要求20所述的方法,其中,所述第一码字长度信息是 用于指示命令应该被迭代执行的次数的第一选择的码提升因子信号。
22、 如权利要求19所述的方法,进一步包括 将第一组码结构描述信息存储到所述解码器的一个模块中;以及 使用所述存储的第一组码描述信息来执行LDPC解码操作。
23、 如权利要求22所述的方法,进一步包括 将第二组码结构描述信息存储到所述解码器的所述模块中,所述第二组码结构描述信息对应的LDPC码具有与所述第一组码结构信息对应的码结构不同的结构。
24、 如权利要求23所述的方法,进一步包括 当与第一设备通信时,使用所述第一组码结构信息来解码数据;以及当与第二设备通信时,使用所述第二组码结构信息来解码数据。
25、 如权利要求24所述的方法,其中,在与使用所述第二组码结 构信息不同的时间点使用所述第一组码结构信息。
26、 如权利要求22所述的方法,其中,存储第一组码描述信息的所述步骤是对接收到一个信号做出的响应,该信号指示对应于所述第 一组码描述信息的码字将被解码。
27、 如权利要求22所述的方法,其中,存储第一组码描述信息的 所述步骤是对接收到一个信号做出的响应,该信号包括的码字是依据 对应于所述第一组码描述信息的码结构进行编码的。
28、 如权利要求22所述的方法,其中,所述第一组码描述信息包 括解码器控制指令。
29、 如权利要求28所述的方法,其中,每个解码器控制指令包括 读和写操作指示符之一。
30、 如权利要求29所述的方法,其中,每个解码器控制指令迸一 步包括旋转控制信息。
31、 如权利要求29所述的方法,其中,每个解码器控制指令进一 步包括存储器地址信息。
32、 如权利要求31所述的方法,其中,每个解码器控制指令进一 步包括节点配置信息,所述节点配置信息指示节点处理单元应该被配 置为变量节点处理单元和校验节点处理单元之一。
33、 一种实现可编程LDPC解码器系统的方法,所述方法包括步骤在第一时间周期期间,将第一组解码指令存储到LDPC解码器的 一个模块中,所述第一组解码指令对应于第一 LDPC码结构;操作所述LDPC解码器以使用所述存储的解码指令结构执行LDPC解码操作;在第二时间周期期间,存储第二组解码指令,所述第二组解码指令不同于所述第一组解码指令,并且对应于不同于所述第一 LDPC码 结构的第二LDPC码结构;以及操作所述解码器以使用所述存储的第二组解码指令执行LDPC解 码操作。
34、 如权利要求33所述的方法,其中,在不同的时间周期期间使 用所述第一组和第二组解码指令来执行解码操作。
35、 如权利要求33所述的方法,其中,存储所述第一组解码指令 的所述步骤是对接收到一个信号做出的响应,该信号指示对应于所述 第一组码描述信息的码字将被使用。
36、 如权利要求33所述的方法,其中,存储第一组解码指令的所 述步骤是对接收到一个信号做出的响应,该信号包括的码字是依据对 应于所述第一组解码指令的码结构进行编码的。
37、 如权利要求33所述的方法,其中,在所述第一和第二时间周 期期间,将所述第一和第二组解码指令存储在所述模块中,所述模块 是存储设备。
38、 如权利要求37所述的方法,其中,多个所述解码器控制指令包括写操作激活/禁止指示符。
39、 如权利要求37所述的方法,其中,所述多个解码器控制指令 中的每一个包括旋转控制信息。
40、 如权利要求39所述的方法,其中,所述多个解码器控制指令 中的每一个进一步包括存储器地址信息。
全文摘要
描述了灵活的并且硬件效率较高的LDPC解码器。利用小于用于控制解码过程的码结构的全部并行度的并行度级别实现所述解码器。每个用于描述码结构的相对简单控制码命令能被存储并被执行多次以完成码字解码。使用相同控制码指令组来支持不同的码字长度,但根据码字长度,码被实现的次数不同。在不需要改变储存的码描述信息的情况下,仅通过改变指示码字长度和用于控制解码过程的码提升因子,所述解码器能在对不同长度的码字进行解码之间切换。当解码比最大可支持码字长度短的码字时,一些块存储单元可以不使用。
文档编号H03M13/00GK101449463SQ200580031678
公开日2009年6月3日 申请日期2005年7月20日 优先权日2004年7月21日
发明者弗拉基米尔·诺维奇科夫, 汤姆·理查森, 辉 金 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1