用于迭代硬判决前向纠错译码的装置 |
|||||||
申请号 | CN03812146.8 | 申请日 | 2003-03-27 | 公开(公告)号 | CN1656692A | 公开(公告)日 | 2005-08-17 |
申请人 | 英特尔公司; | 发明人 | M·考施克; C·波平加; | ||||
摘要 | 描述一种用于 迭代 硬判决 前向纠错译码的装置。一种方法包括,二进制接收器将光 信号 转换成 电信号 ,所述电信号具有一组信息符号和一组冗余符号,所述一组冗余符号由不同的前向纠错(FEC)编码方案生成;以及多个译码器的第一译码器与所述二进制接收器和所述多个译码器连接在一起,所述多个译码器中中的每一个译码器用于根据所述不同FEC编码方案利用所述一组冗余符号对所述一组信息符号译码。 | ||||||
权利要求 | 1.一种装置,包括: |
||||||
说明书全文 | 发明领域本发明涉及通信领域。更具体地来说,本发明涉及通信中的纠 错技术。 发明背景在通信网络中,前向纠错(FEC)用于保护传送的信息免受在 传输系统中传输时发生的损害。在代数块码(例如,里德所罗门码) 的情况中,在传输信息符号块之前,在符号中添加了冗余符号。只 要被破坏的符号数量不超过该码的特殊构造所给定的某个阈值,则 接收该传输的网元可以校正传输差错。 代数编码的一个替代方案是迭代编码。迭代编码算法是为在表 示传输信息流接收符号可靠性的标量信息可用的情况下校正传输信 息流而开发的。这些迭代编码算法还称为软判决算法。 但是,软判决编码技术常常不适用于光网络,其中高传输速率 干扰生成接收符号可靠性信息的能力。再者,软判决编码算法对校 正后比特误码概率低的传输信息流(此情况出现在光网络中)往往 具有相对较差的性能。 附图简介 参考以下说明以及用于图示本发明实施例的附图,可以更好地 理解本发明。附图中: 图1A是根据本发明一个实施例的示范性网元的示意图; 图1B说明根据本发明一个实施例的输入比特误码率(BERi) 与输出比特误码率(BERo)关系的图表,其中三个示范性编码方案 在传输示范信号时在其中添加了25%的FEC相关开销; 图2说明根据本发明一个实施例对数据进行编码的示范流程图; 图3A是说明根据本发明一个实施例,一个矩阵中两个码类的示 范性交织的示意图; 图3B是说明根据本发明一个实施例,第三码类交织到图3A所 示矩阵中的示范性交织的示意图; 图3C是说明根据本发明一个实施例,两个码类的备选示范性交 织的示意图; 图4是根据本发明一个实施例对数据进行译码的流程图; 图5是说明根据本发明一个实施例的网元的线路卡的部件示意 图; 图6A是说明根据本发明一个实施例,图5的迭代译码器505A 的示范实施例的示意图; 图6B是说明根据本发明一个实施例,迭代译码器/去封装器 (dewraper)和编码器/封装器(wrapper)509的示范实施例的示意 图; 图7是说明根据本发明一个实施例,利用后向注释(backward annotation)的迭代译码器的示意图; 图8是说明根据本发明一个实施例,利用前向注释(forward annotation)的迭代译码器的示意图。 发明的详细说明 在如下说明中,阐述了许多具体细节,以便透彻地理解本发明。 但应理解,本发明还可以在不具有这些特定细节的情况下实施。在 其它实例中,熟知的电路、结构和技术未详细说明,以使本发明足 够清楚。 图1A是根据本发明一个实施例的示范性网元的示意图。在图1 中,网元101与网元103相连。封装/编码单元107(下文将进行更 详细的说明)在网元101接收数据105。该数据包含一组信息符号。 一个或多个比特可以表示每个信息符号。封装/编码单元107将开销 空间添加到数据105中(称为封装)。封装/编码单元107最初以管 理信息填充该开销空间。该管理信息可以包括用于码同步的图案。 封装/编码单元107然后以从数据105的信息符号派生出的冗余符号 填充数据105的剩余开销空间。冗余符号是交织码类的成员,对此 将在下文予以详细说明。封装/编码单元107将封装的数据106传递 到光发送器109。光发送器109将封装的数据106从电信号转换成光 信号108。光发送器109然后将光信号108从网元101传送到网元 103。在本发明的一个实施例中,封装/编码单元107和光发送器109 是分离的单元。在本发明的替代实施例中,封装/编码单元107和光 发送器109是一个单元。 网元103中的光接收器111接收光信号108。光接收器111将光 信号108转换成电信号,即接收的封装数据110,并将接收的封装数 据110传递给多码类迭代译码单元113。如果封装的数据未受损害, 则接收的封装数据110与封装数据106相同。为了进行说明,假定 接收的封装数据110是带有损伤的封装数据106。 多码类迭代译码单元113处理含有添加的冗余符号的接收封装 数据110,以生成经处理的封装数据112。多码类迭代译码单元113 将该经处理的封装数据112传递给去封装单元115。下文将对多码类 迭代译码单元113和去封装单元115予以详细说明。 去封装单元115从经处理的封装数据112中去除管理信息和先 前携带冗余符号的开销空间。去封装单元115然后输出数据117,与 原始数据105相比,除数据117中含有不可校正差错星座(error constellation)的那些位置以外完全相同。原始数据105与输出数据117 之间的差异称为输出误码率。本发明的不同实施例可以不同方式实 现光接收器111、多码类迭代译码单元113及去封装单元115。光接 收器111、多码类迭代译码单元113和去封装单元115可以是一个装 置;光接收器111和多码类迭代译码单元113也可以是与去封装单 元115分离的一个单元;或者,多码类迭代译码单元113和去封装 单元115也可以是与光接收器111分离的一个装置。 对以光信号方式传输的具有交织码类的数据应用硬判决FEC可 降低输出比特误码率。 图1B说明根据本发明一个实施例的输入比特误码率(BERi) 与输出比特误码率(BERo)关系,其中的三个示范性编码方案在传 输示范信号时在其中添加了25%的FEC相关开销。BERi是单比特传 输误码的概率,而BERo是在根据平均白高斯噪声模型对数据进行译 码之后单个比特被破坏的概率。标记为“RS(255,205)”的点划线表 示单级里德所罗门编码方案的性能。标记为“简单积译码(simple product decoding)”的虚线表示利用优化码参数的简单的基于里德 所罗门的块积编码方案(block product coding scheme)的性能。实线 表示使用两次迭代对两个交织码类执行迭代硬判决译码的编码方案 的性能。如图B1所示,在光传输中通常出现的输入BER的情况下, 对交织码类执行迭代硬判决译码的编码方案性能优于其它示范编码 方案。 图2说明根据本发明一个实施例对数据进行编码的示范流程图。 在方框201中选择编码方案。选择编码方案包括选择要采用哪个前 向纠错(FEC)编码程序(例如BCH编码、里德所罗门编码等)以 及选择要配合该编码算法使用的参数。在本发明一个实施例中,预 定义了一组参数和程序。在本发明的替代实施例中,参数和编码程 序是从存储器中检索出来的;用户选择参数和编码程序;编码程序 是随机地从一组编码算法中选择的,每种编码算法具有一组预定义 的参数,随机地从一组预定义参数中选择要配合预定编码程序使用 的一组参数;所述参数和/或编码程序是从存储在封装/编码单元和/或 单独的存储单元等上的不同参数和/或编码程序中选择的。 在方框203中接收数据。在方框205中,利用所选择的编码方 案处理数据,以生成第一码类的一组码字(即,附有冗余数据的数 据)。术语码类指利用某个编码程序和某组参数生成的所有码字。 虽然在本发明一个实施例中,不同的码类由相同的编码程序采用不 同的参数生成,但是在本发明的替代实施例中,不同的码类由相同 的参数和不同的编码算法或不同的编码算法和不同的参数组生成。 在方框211中,选择一个不同的编码方案。该不同的编码方案 至少在一个方面不同于先前选择的编码方案(例如参数不同、编码 算法不同等)。 在方框213中,通过对在方框205中处理的编码数据应用选定 的编码方案生成下一个码类。在方框215中判断编码是否完成。如 果编码未完成,则控制流程返回到方框211。如果编码完成,则控制 流程转到方框217。 在方框217中传输编码数据。对数据符号进行编码,以便每个 符号成为每个码类的至少一个码字的成员。 虽然图中的流程图显示了由本发明某些实施例执行的操作的特 定次序,但应理解,这种次序是示例性的(例如,本发明的替代实 施例可以不同的次序来执行某些操作,合并某些操作,并行执行某 些操作等)。例如,如果参数组是预定的,则可以不执行方框201 和/或方框211的操作。此外,方框203可以在方框201之前执行。 在本发明的另一个实施例中,方框201和方框211可依次执行或并 行执行。 对符号进行编码,以便每个符号成为每个码类的至少一个码字 的成员,每个码类可以用一个矩阵表示。图3A-3C是说明码类交织 的示意图。 图3A是说明根据本发明一个实施例,一个矩阵中两个码类的示 范性交织的示意图。在图3A中,由编码程序305对封装的数据301 进行处理。编码程序305生成第一码类,表示为在矩阵309中按行 排列的一组k2个码字。第一码类的每个码字包含n1个符号,其中k1 个符号是要保护的信息符号。第一码类的冗余符号在矩阵309中表 示为行冗余符号311(每行n1-k1个冗余符号)。第一码类对应于矩 阵309的第一维。 随后由编码程序306处理矩阵309的第二维。如上所述,本发 明的替代实施例可以采用另一个编码程序、另一个编码程序和另一 组参数等来处理矩阵309。编码程序306生成矩阵315。矩阵315的 列是第二码类的码字。第二码类的码字块长度为n2,每个码字有k2 个信息符号,n2-k2个冗余符号,这些码字表示为列冗余符号313。 第二码类包括n1个码字(即矩阵315中的n1列)。第二码类包括由 行冗余符号311和用于校正行冗余符号311的冗余符号构成的码字。 图3B是说明根据本发明一个实施例,第三码类交织到图3A所 示矩阵中的示范性交织的示意图。在图3B中,编码程序316生成矩 阵319。编码程序319对矩阵306的第三维进行编码,以生成具有第 三码类的矩阵319。矩阵319包括第三维冗余符号317。第三维冗余 符号317对应于第三码类码字的每条对角线。 图3C是说明根据本发明一个实施例,两个码类的备选示范性交 织的示意图。图3C说明编码程序105生成一个形式为二维域321的 交织码类流。域321包括行码字和列码字。不同于图3A的矩阵315, 域321在每行包含多个码字。在域321中,第一码类的码字并不与 第二码类的单个码字对齐。 将多码类交织提供了改进的前向纠错。每种单一的FEC编码方 案对传输差错分布(如每个码字的固定差错限制)有严格的约束。 将多码类交织可使迭代译码普遍地克服FEC编码方案的局限,从而 显著改善性能,对平均白高斯噪声(AWGN)模型的情况尤其突出。 图4是根据本发明一个实施例对数据进行译码的流程图。在方 框401中接收数据。在方框402中处理最后一个码类(即在传输网 元上编码的最后一个码类)。在方框403中,处理下一个码类(即 传输网元上对最后一个码类编码之前进行编码的码类)。在方框405 中,判断是否已经将所有码类译码。如果尚未将所有码类译码,则 控制流程返回到方框403。如果已将所有码类译码,则控制流程返回 到方框407。 在方框407中,判断在处理所有码类的同时是否校正了任何差 错。如果校正了任何差错,则控制流程从方框407返回到方框402。 如果没有其它差错被校正,则在方框409中从接收的数据中去除冗 余符号。 图4说明将多码类交织如何使迭代译码能够克服目前FEC编码 方案的局限。例如,假定编码程序305和306分别用于校正t1和t2个 传输差错。如果第一码类的一个码字中的差错数量超过t1,则通常无 法校正该码字。因为已将多个码类交织而后加以迭代译码,所以第 二码类中校正的差错可能允许在后续迭代中校正第一码类中的差 错。换言之,校正第一和第二码类的码字相交处的不正确的符号可 以将第一码类的码字中的差错数量减少至低于t1。因此,该码字在下 一轮迭代中变得可校正。 如前所述,图4所示的操作次序是示范性的。例如,可以不执 行方框405,因为码类的数量是已知的。本发明的替代实施例可以不 同方式执行方框407的步骤。可以给定固定次数的迭代循环而不是 观察所执行的差错校正。此外,本发明的另一个实施例还可以接受 输出数据中余留某种级别的差错。在本发明的另一个实施例中,处 理单个码类(方框402和方框403)可以图5所示的流水线结构形式 并行执行。 图5是根据本发明一个实施例的网元的线路卡的部件图。在图5 中,线路卡包括一个光接收器501,其接收光信号形式的封装数据。 光发送器501将光信号转换成电信号。然后,光接收器501将电信 号形式的封装数据传递到解串器503。解串器503将封装的数据进行 排列以进行迭代译码。然后,解串器503将封装数据传递给一系列 任意数量的迭代译码器505A-505F进行处理。迭代译码器505A-505F 中的每一个迭代译码器对封装数据的所有码类执行至少一次迭代译 码。迭代译码器505F将封装数据传递给迭代译码器/去封装器和编码 器/封装器509。迭代译码器/去封装器和编码器/封装器509对该数据 的所有码类执行至少一次以上的迭代译码,并将该数据去封装。迭 代译码器/去封装器和编码器/封装器509随后输出该数据。 迭代译码器/去封装器和编码器/封装器509还接收待发送的数 据。迭代译码器/去封装器和编码器/封装器509将接收数据如图1A 所述进行封装,并如前图1-2中所述将接收数据编码。迭代译码器/ 去封装器和编码器/封装器509然后将封装且编码的数据传递给串行 化器511。串行化器511对封装的数据进行排列以便发送。串行化器 511然后将串行化的封装数据传递到光发送器513。光发送器513将 串行化的封装数据从电信号转换成光信号,并发送该光信号。 线路卡500和/或线路卡500的部件包括一个或多个机器可读介 质。机器可读介质包括任何以机器(如计算机)可读形式提供(例 如存储和/或传输)信息的装置。例如,机器可读介质包括只读存储 器(ROM);随机存取存储器(RAM);磁碟存储介质;光存储介 质;闪速存储器;以及电、光、声或其它形式的传播信号(例如, 载波、红外线、数字信号等);等等。 图5所示的本发明实施例就连接在一起的迭代译码器的数量而 言是可伸缩的。此外,所示的本发明实施例通过将编码器和译码器 实现为一个部件而显著节省了板空间。本发明的各实施例可以不同 方式实现迭代译码器。例如,迭代译码器505A-505F可以实现为单 个迭代FEC译码器,迭代译码器505A-505F和迭代译码器/去封装器 和编码器/封装单元509中的译码功能可以实现为一个单元。 图6A是说明根据本发明一个实施例,图5的迭代译码器505A 的示范实施例的示意图。在图6A中,迭代译码器505A用于对两个 码类进行译码。在图6A中,迭代译码器505A的列译码器601接收 封装的数据。列译码器601对接收数据的每一列进行译码。在将接 收数据的每一列译码之后,列译码器601将该数据传递到数据重排 序器(reorderer)603A。数据重排序器603A对从列译码器601接收 的数据从列到行重新进行排列。数据重排序器603A然后将重排序的 数据传递给行译码器605。行译码器605将接收数据译码为矩阵的行。 行译码器605然后将该数据传递给数据重排序器603B。数据重排序 器603B将该数据从行到列重新进行排列。数据重排序器603B然后 将重排序的数据传递给下一个迭代译码器。 图6B是说明根据本发明一个实施例,迭代译码器/去封装器和 编码器/封装器509的示范实施例的示意图。在图6B中,迭代译码器 505F将数据传递给迭代译码器/去封装器和编码器/封装器(“混和单 元”)509。数据通过列译码器601A、数据重排序器603A以及行译 码器605A,类似于每个迭代译码器505A-505F。行译码器605A将 数据传递给去封装器611。去封装器611将数据去封装,类似于先前 图1所述的去封装操作。混和单元509还包括封装器613。封装器613 接收要发送的数据并类似于先前图1所述的封装操作对该数据进行 封装。封装器613将封装的数据传递给行编码器615。行编码器615 用行冗余符号填充封装器613添加的某些空间。行编码器615然后 将该数据传递给数据重排序器603B。数据重排序器603B从行到列 将该数据重新排序。数据重排序器603A然后将重排序的数据传递给 列编码器607。列编码器607用列冗余符号填充封装器613添加的其 余空间。列编码器607然后将数据传递出迭代译码器/去封装器和编 码器/封装器509。 图7是说明根据本发明一个实施例,利用后向注释(backward annotation)的迭代译码器的示意图。图7所示的迭代译码器是一个 示范性三码类迭代译码器。为简明起见,假定每个码类具有代数性 质,包括以计算校正子(syndrome)作为第一步骤。图7所示的迭代 译码器700包括校正子计算单元703A-703C。本发明的替代实施例 可以包括更多或更少的校正子计算单元。差错模式计算单元709A- 709C与校正子计算单元703A-703C相连。迭代译码器700接收具有 三码类的数据。接收的数据存储在FIFO 701A中。接收数据还发送 到校正子计算单元703A-703C。 校正子计算单元703A计算第三码类的校正子。校正子计算单元 703A将校正子传递给差错模式计算单元709A。差错模式计算单元 709A计算用于纠错的差错模式,并且还计算后向注释。对存储在FIFO 701A中的数据应用由差错模式计算单元709A确定的校正。所得数 据存储在FIFO 701B中。计算的向后注释从差错模式计算单元709A 传递到校正子计算单元703B和703C。因为校正子计算是线性的, 所以校正子计算单元703A-703C以并行方式计算它们的校正子,从 而校正子计算单元703B已计算了用于第二码类的校正子。校正子计 算单元703B将收到的后向注释添加到其计算的校正子中。校正子计 算单元703B随后将含有后向注释的校正子传递给差错模式计算单元 709B。差错模式计算单元709B对第二码类执行与差错模式计算单元 709A相同的任务。 差错模式计算单元709B将计算得到的差错校正信息应用于存储 在FIFO 701B中的数据上。所得数据存储在FIFO 701C中。差错模 式计算单元709B将为第二码类计算的后向注释传递给校正子计算单 元703C。校正子计算单元703C应该已经计算了第一码类的校正子, 以及添加了第一码类后向注释。校正子计算单元703C随后将第二码 类的后向注释添加到其校正子中,并将计算得到的校正子传递给差 错模式计算单元709C。差错模式计算单元709C确定差错校正信息, 并将该信息应用于存储在FIFO 701C中的数据上。然后将所得数据 传递给下一个迭代译码器。 利用后向注释对交织码类进行迭代译码减少了对每个码类进行 译码导致的等待时间。可以在码类C2的差错模式计算完成之后立即 计算码类C1的差错模式。 图8是说明根据本发明一个实施例,利用前向注释的迭代译码 器的示意图。图8所示的迭代译码器800类似于图7所示的迭代译 码器700。迭代译码器800包括校正子计算单元803A-803C。本发明 的替代实施例可以包括更多或更少的校正子计算单元。差错模式计 算单元809A-809C与校正子计算单元803A-803C相连。迭代译码器 800接收具有三码类的数据。接收的数据存储在FIFO 801A中。接收 数据还发送到校正子计算单元803A-803C。 校正子计算单元803A计算三码类的校正子。校正子计算单元 809A将校正子传递给差错模式计算单元809A。差错模式计算单元 809A计算用于纠错的差错模式,并且还计算后向注释。对存储在FIFO 801A中的数据应用由差错模式计算单元809A确定的校正。所得数 据存储在FIFO 801B中。计算的向后注释从差错模式计算单元809A 传递到校正子计算单元803B和803C。因为校正子计算是线性的, 所以校正子计算单元803A-803C并行地计算它们的校正子,从而校 正子计算单元803B已计算出用于第二码类的校正子。差错模式计算 单元809A还将其计算的结果存储在缓冲器811中,以便传送到下一 个迭代译码器的校正子计算单元(“前向注释”)。校正子计算单 元803B将收到的后向注释添加到其计算的校正子中。校正子计算单 元803B随后将含有后向注释的校正子传递给差错模式计算单元 809B。差错模式计算单元809B执行与用于第二码类的差错模式计算 单元809A相同的任务。 差错模式计算单元809B将计算得到的差错校正信息应用于存储 在FIFO 801B中的数据上。所得数据存储在FIFO 801C中。差错模 式计算单元809B将为第二码类计算的后向注释传递给校正子计算单 元803C,并将计算得到的差错模式存储在缓冲器811中,以便传送 到下一个迭代译码器的校正子计算单元。校正子计算单元803C应该 已经计算出第一码类的校正子,并添加了第一码类后向注释。校正 子计算单元803C随后将第二码类的后向注释添加到其校正子中,并 将计算得到的校正子传递给差错模式计算单元809C。差错模式计算 单元809C确定差错校正信息,并将该信息应用于存储在FIFO 801C 中的数据上。与差错模式计算单元809A和809B一样,差错模式计 算单元809C将其计算得到的差错模式传递到缓冲器811,以便传送 到下一个迭代译码器的校正子计算单元。存储在FIFO 801C中的数 据传递给下一个迭代译码器。 在本发明的一个实施例中,缓冲器811按照差错模式计算单元 的指示临时暂存要传送到下一个迭代译码器的校正子计算单元的计 算所得的注释。在本发明的替代实施例中,差错模式计算单元将前 向注释信息传递到专门对应于一个迭代译码器的差错模式计算单元 和下一个迭代译码器的校正子计算单元的缓冲器。在本发明的另一 个实施例中,迭代译码器的差错模式计算单元将计算得到的差错模 式直接传递给下一个迭代译码器的与其对应的校正子计算单元。前 向注释减少了等待时间。 所述的迭代译码可以通过存储在一个或多个机器可读介质上的 指令来实现。因此,机器可读介质包括任何以机器(例如计算机) 可读形式提供(例如存储和/或传输)信息的装置。例如,机器可读 介质包括只读存储器(ROM);随机存取存储器(RAM);磁碟存 储介质;光存储介质、闪速存储器;以及电、光、声或其它形式的 传播信号(例如,载波、红外信号、数字信号等);等等。 如前所述,对交织码类的迭代硬判决译码方法允许对光传输进 行前向纠错。 虽然已根据本发明的几个实施例对本发明作了描述,但本专业 技术人员应知本发明并不限于所述这些实施例。在不背离权利要求 书提出的本发明精神和范围的前提下,本发明的方法和装置可以在 本发明精神和范围内加以修改和替换而实施。本说明书因此应视为 说明性而非限制性的。 发明背景 |