专利名称:64b66b编码系统的前向纠错的制作方法
技术领域:
本发明涉及数据传输误码控制领域,更具体地讲,涉及64b66b编码系统的前向纠It(FEC)0
背景技术:
在电信领域,前向纠错(FEC)是一种数据传输误码控制系统,借此发送机将冗余数据添加到原始用户数据,允许接收机去探测传输误码。FEC系统可以在一定限度内纠正传输误码而无需请求发送机重新发送该数据。获得这个优点的代价是对数据传输有较高的带宽要求,所以,FEC通常只被应用于不希望重新发送、重新发送成本较高或者无法执行重新发送的情况。根据最新的进展,10吉比特(10G)以太网技术已被应用于无源光网络(PON)部署,这种网络部署被称为ΕΡ0Ν。EPON充分利用了广泛部署的互联网协议(IP)网络以及10G光网络技术的完备性质。在10GEP0N系统中,需要采用FEC来改善PON中64b66b传输的光传输质量。早先在以太网中使用的FEC系统(譬如IG EPON系统)由于它们实施的是一种SblOb编码方式,因而不适合于10G ΕΡ0Ν。为了改善传输质量并满足“最后一英里”用户的质量需求,必须拥有有效的FEC系统,其能够考虑到10G EPON的网络和业务特性。。
发明内容
在第一实施例中,本公开包括一种网络部件,该网络部件包括用于实现一种方法的处理器,该方法包括将FEC算法应用于多个数据块以便生成多个冗余数据、将整数个数据块和该冗余数据封装成FEC码字、将一种同步码型(synchronization pattern)添加到该FEC码字并发送该FEC码字,其中,该码字和传输时钟时间段大致对准以便拥有传输速率。在第二实施例中,本公开包括一种方法,该方法包括选择根据多个数据块生成多个冗余数据的FEC算法、选择封装整数个数据块的FEC码字以及选择添加到该FEC码字的同步码型,从而使得整数个FEC码字和整数个传输时钟时间段(time quanta)均匀对准。在第三实施例中,本公开包括含有FEC模块的PON部件,该FEC模块被耦合到发送机和接收机,其中,该FEC模块用于生成封装整数个数据块并促成整数个FEC码字和整数个传输时钟时间段对准的FEC码字。
根据下面结合所附附图
及权利要求进行的详细说明可以更为清晰地理解这些或其他特性。
附图的简单说明为了更加完整地理解本公开内容,可以参考下述结合附图及详细说明所作的简单说明,在这些附图中,相同的参考标记代表相同的部件。图I表不PON系统的一个实施例;图2是用于设计FEC模块的一个方法实施例的流程图;图3是FEC方法实施例的流程图。
图4是纠错方法的实施例的流程图。图5表示包含FEC模块的PON部件的示例。图6表示适合于实现本公开内容中的上述几个实施例的范例性通用计算机系统。
详细说明从一开始就应当理解,尽管下面提供了一个或多个实施例的示例性实施方案,但所公布的系统和/或方法可以采用任意数量的技术来实现,无论是当前已知的技术还是已经存在的技术。本公开无论如何不应当局限于下面描述的演示性实施方案、附图以及技术,包括这里演示及描述的示例性设计和实施方案,而是可以在所附权利要求的范围以及他们的完全对等条款范围之内加以修改。这里所描述的是供64b66b编码系统中FEC使用的方法。该方法可以采用里德-所罗门(RS =Reed-Solomon)算法来生成冗余数据、将该冗余数据和整数个数据块封装成码字以及将同步码型添加到该码字。在实现这个过程时,应当使整数个码字和整数个多点控制协议(MPCP)传输时钟时间段均匀对准。这种实施例能够获得一种较低的编码线速,从而导致较低的系统开销和较高的效率。该方法还可以采用RS算法以及该同步码型来分解这些码字,而且能够识别并纠正在传输过程中可能已经产生的误码。图I表示PON 100的一个实施例。PON 100包括光线路终端(OLT) 102、光分配网(0DN)104以及多个光网络单元(0NU)106。PON 100是不需要任何有源部件就能在OLT 102和OUN 106之间分发数据的通信网络。PON 100在ODN 104中采用无源光部件以在OLT 102和0NU106之间分发数据。合适的PON实例包括按ITU-T G. 983标准定义的异步传输模式PON (APON)和宽带 PON (BPON)、按 ITU-T G. 984 标准定义的吉比特 PON (GPON)、按 IEEE802. 3ah标准定义的EPON以及波分复用PON (WDM-PON),所有这些PON如同整体复制一样被参考编入。PON 100的一个部件可以是OLT 102。OLT 102可以是用于和ONU 106以及另一个网络(未示出)通信的任何设备。特别是,OLT 102可以作为其他网络和ONU 106之间的中间设备0LT 102将从该网络接收到的数据转发到ONU 106,而且将从ONU 106接收到的数据转发到其他网络。这里描述的OLT 102通常位于中心位置,譬如中心局,但也可以位于其他位置。PON 100的另一个部件可以是ONU 106。ONU 106可以是用于和OLT 102以及客户或用户(未示出)通信的任何设备。特别是,ONU 106可以作为OLT 102和客户之间的中间设备0NU 106将从OLT 102接收到的数据转发给该客户,而且将从该客户接收到的数据转发给OLT 102。在一些实施例中,ONU 106和光网络终端(ONTs)很相似,所以这两个名词在这里也可以互换使用。ONU通常位于分散的场所,譬如客户驻地,但也可以位于其他场所。PON 100的另一个部件可以是ODN 104。ODN 104是由光缆、耦合器、分光器、分配器和/或者本领域人员所知道的其他设备构成的数据分发系统。在实施例中,该光缆、耦合器、分光器、分配器和/或本领域人员所知道的其他设备是无源光部件。特别是,该光缆、耦合器、分光器、分配器和/或本领域人员所知道的其他设备可以是不需要任何功率来在0LT102和ONU 106之间分发数据信号的部件。ODN 104通常如图I所示以分支结构形式从OLT 102延伸到ONU 106,但也可以如本领域人员所决定的那样按照其他方式配置。PON的另一个部件可以是FEC模块101。FEC模块是可以包括硬件和软件子部件的传输误码控制系统。FEC模块可以具有发送机部件和接收机部件,而且这两个部件可以共同工作来进行纠错。发送机部件可以采用FEC算法以便根据该原始数据块生成冗余数据,而且可以将该冗余数据和该原始数据块发送到预定的接收方。接受器部件可以采用相同的或类似的算法来生成它的冗余数据的译本。该冗余数据的两个译本之间的差就表示传输误 码。在这种情况下,FEC模块的接收机部件可以采用该冗余数据来纠正误码并还原该原始数据块。FEC模块可以采用硬件模块、软件模块或者它们的组合来实现。图2表示用于配置FEC模块的方法200的实施例。过程200可以包括在201选择FEC算法、在202选择FEC码字以及在203选择一种同步码型。过程200可以被用来为发送机、接收机或者为它们二者配置FEC模块,其中这些方框的数量和顺序只代表一个实施例,过程200不应当局限于这里所述的数量和顺序。过程200可以在201从选择FEC算法开始。该FEC算法的选择可以根据各种因素进行,譬如该FEC算法将要处理的数据块的大小、该FEC算法可以适应的数据块大小的范围以及该码字的大小等等。所选的FEC算法可以适应至少一种线路编码格式的、但优选适应多种线路编码格式的数据块以便适应不同的传输技术。在一个实施例中,RS算法被选做该FEC算法。RS算法产生多个多项式数据点作为冗余数据。只要能够正确接收足够数量的多项式数据点,接收机就能够采用这些多项式数据点来还原任何原始数据块,即使存在一些坏数据点也能够进行。作为选择FEC算法的一部分,也要确定该冗余数据的长度。该冗余数据的长度是设计选择,它可以随实施方案不同而变化。举例来说,可以为4比特、8比特、16比特或32比特数据生成I比特冗余数据,这取决于实施方案本身。大量的冗余数据会产生强的纠错能力,但是要消耗额外的带宽。冗余数据的特定长度取决于预期的误码率、误码类型以及业务码型。举例来说,如果预期误码率低,那么要获得希望的纠错能力只需要较少的冗余数据。根据一个实施例,冗余数据的长度也可以被配置成适应不同的通信和网络条件。如果预期通信码型具有大量数据误码,最好有较长的冗余数据。如果不是这样,就可以使长度短一些来节省数据带宽。具有可配置冗余数据的FEC模块可以在各种操作条件下被配置到网络设备。过程200可以在202继续以选择FEC码字。FEC码字的大小可以选择成使该FEC码字包含最大数量的数据块而无需让任何这些数据块成为碎片。在一个实施例中,选择了RS (239,255)代码,其中,大约多达239字节的用户数据可以由大约长达255字节的码字携带。根据一个实施例,长度大约255字节的RS码字可以被用来封装大约28个66比特IOG以太网数据块以及所生成的冗余数据。在另一个实施例中,从IOG以太网线路编码中可以大约丢弃66比特数据块的I个校验位,这是因为,对该冗余数据而言,来自该线路编码的校验位是冗余的。在这种情况下,每个结果数据块可以是大约65比特长,而该RS码字可以封装大约29个65比特数据块以及所生成的冗余数据。过程200可以在203继续以选择同步码型。同步码型可以提供一种固定的、已知的码型,接收机可以借以找到每个FEC码字开头。该同步码型的长度是一种设计选择问题,可以随特定实施方案而变化。选择同步码型的一个考虑是识别该FEC码字开头的容易程度和额外带宽消耗之间如何平衡。较长的同步码型将会使该FEC模块的接收机部件能够更快地识别该码字的开头,但是要使用额外的带宽。较短的同步码型能够更有效地利用带宽,但是接收机要花更长的时间来识别该码字,特别是对传输误码数量增加的情况。选择同步码型的另一个考虑是该FEC码字和传输时钟时间周期或间隔(称为时间段)的均匀对准。这种实施例不需要和对该FEC码字或者时间段进行分割相关联的系统开销。在一个实施例中,对保留IOG以太网线路编码的大约20个66比特数据块的RS码字而言,同步码型大约是40比特长,结果,最终码字长度大约是2016比特。这样就产生大约68比特同步信息(大约40比特来自同步码型,大约28比特来自数据块),最终码字大小和数·据块大小之比(有时称为编码线速)大约是9/8,或者说大约是I. 125。在另一个实施例中,对保留IOG以太网线路编码的大约29个65比特数据块的RS码字而言,同步码型大约是17比特长,结果,最终码字长度大约是2030比特。这样就产生大约35/32 (或者说I. 09375)的编码线速。在又一个实施例中,对保留IOG以太网线路编码的大约29个65比特数据块的RS码字而言,同步码型大约是75比特长,结果,最终码字长度大约是2088比特。这样就产生大约9/8 (或者说I. 125)的编码线速。在这样的实施例中,大约多达6字节的同步长度可能未被该FEC代码覆盖,但这并不是问题,因为同步码型的目的是查找该码字以使FEC过程能够开始运行,并在争论未决之后加以纠正。这些同步码型中的任何一种都可以使所得到的FEC码字和在IOG PON的MPCP中可能要使用的16纳秒(ns)传输时钟时间段均匀对准。图3表示汇编码字以便向接收方传输的过程300的一个实施例。过程300可以在301根据这些数据块生成冗余数据、在302将这些数据块和该冗余数据封装成FEC码字、在303将同步码型添加到该FEC码字并在304将该FEC码字发送到接收方,其中这些方框的数量和顺序只代表一个实施例,过程300不应当局限于这里描述的数量和顺序。过程300可以在301开始生成该冗余数据。在一个实施例中,作为过程200的组成部分所选定的FEC算法可以采用该原始数据块来生成该冗余数据。在一个实施例中,可以采用RS算法来生成多个多项式数据点作为该冗余数据。该冗余数据和原始数据块的组合可以被称为FEC有效载荷。过程300可以在302继续以将该原始数据块和该冗余数据封装成FEC码字。该FEC码字可以是一种大小固定、能够保留该已编码数据块和冗余数据的数据贮存器。如上所述,RS码字可以适应高达大约28个66比特数据块,或者大约29个65比特数据块,这取决于特定数据块大小的选择。过程300可以在303继续以将该同步码型添加到该FEC码字。已经根据过程200确定的同步码型可以被用作标记来为接收方标出每个FEC码字的开头。该同步码型可以由该FEC模块的发送机部件和接收机部件一道商定,以使该接收机部件知道如何提取该FEC码字。在一个实施例中,对包含66比特数据块的FEC有效荷载采用40比特同步码型。在另一个实施例中,对包含65比特数据块的FEC有效荷载采用17比特同步码型。在又一个实施例中,对包含65比特数据块的FEC有效荷载采用75比特同步码型,以便适应较长同步码型的需要。过程300可以在304继续以进行该FEC码字的发送。该FEC码字可以采用任何合适的传输网络(譬如上述0DN)被发送到接收方。在实施例中,整数个FEC码字和整数个时间段相互对准而无需分割任何码字或时间段。在一个实施例中,对IOG PON定义的偶数个16ns MPCP时间段被用来发送整数个255字节的、用来封装整数个66比特数据块的RS FEC码字。在另一个实施例中,偶数个16ns MPCP时间段被用来发送整数个255字节的、用来封装整数个65比特数据块的RS FEC码字。在10GB/s系统中采用16ns时间段和66比特代码块,则每个时间段大约可以发送20字节MAC数据。举例来说,大约2个时间段可以包含大约5个64比特MAC数据块。对66比特数据块,添加大约128比特冗余数据和大约22比特同步码型会产生大约1800比特,结果,每个FEC码字大约225字节,代码速率为9/8。对65比特数据块而言,添加大约128比特冗余数据和大约22比特同步码型会产生1775比特,结果,每个FEC码字221.75字节,代码速率为大约I. 125。图4表示用于处理FEC数据流的过程400的一个实施例。过程400可以在401从网络接收比特流,在402从该FEC码字提取这些数据块,在403检查这些数据块的传输误码,并在404纠正所探测到的误码。这些框的数量和顺序只代表一个实施例,过程400不应 当局限于这里描述的数量和顺序。过程400可以在401开始接收比特流。该比特流的接收可以包括识别该同步码型以及/或者将该比特流划分为FEC码字。在一些实施例中,识别同步码型可以包括识别能够标记FEC码字开头的已知同步码型。因为无论发送机还是接收机都知道该FEC码字和该同步码型的长度,所以将该比特流划分为FEC码字就可以包括在该比特流中使该同步码型和该FEC码字分离,这也许可以根据该FEC码字和该同步码型的长度来进行。过程400可以在402继续以从该FEC码字提取数据块。由于该冗余数据和每个数据块的长度都是已知的,所以提取数据块就可以包括在FEC码字中使该冗余数据和该数据块分离。如上所述,所提取的数据块的长度可以大约是65或66字节。在实施例中,当这些数据块大约是65比特长时,就可以将第66个校验位添加到这些数据块,并将这些数据块恢复到它们原始的66字节长度。过程400可以在403继续以检查传输误码。当数据从发送机向接收机传输时,可能产生各种类型的误码。举例来说,在发送过程中,比特可能被翻转,而且/或者数据可能被损坏。该冗余数据可以使过程400能够识别和纠正一种传输误码。在一个实施例中,过程400采用和发送机用来生成该冗余数据的相同FEC算法来对所接收到的数据块进行运算,并生成该冗余数据的新译本。该冗余数据的这个新译本和所接收到的冗余数据译本加以比较,这两个译本的差就表示一个或多个传输误码。如果在该数据中存在误码,过程400就可以在404继续以纠正该传输误码。一旦探测到传输误码并对其定位,就可以采用该冗余数据和该FEC算法的组合来还原该原始数据块,这取决于特定的设计选择。举例来说,RS多项式数据点可以被用来识别包含误码的数据块,并且纠正这些误码。
图5表示作为网络单元500 (譬如PON中的OLT或0NU)的组成部分的FEC模块101的实施例。该FEC模块可以和其他网络部件相耦合,包括和接收机501和发送机502相耦合。本领域人员能够理解,图5只表示FEC模块101的一个实施例,而且网络部件500可以具有任意数量的发送机501和接收机502,至少其中的一些发送机和接收机可以被组合为收发机。在一个实施例中,FEC模块101包括FEC模块发送机部件511和FEC模块接收机部件512。在各种实施例中,发送机部件511和接收机部件512可以被做成单一模块或者分离的模块,这取决于设计选择。FEC模块发送机部件511可以包括FEC编码器51IA和FEC码字处理模块(FCPM)发送机部件511B。编码器511A可以实现FEC算法。具体地,编码器511A可以被设计成从接收机501接收数据块、采用FEC算法来生成一组冗余数据、将该冗余数据和这些数据块组合成为FEC有效荷载并对该FEC有效荷载进行编码。对该码字的发送机而言,FCPM发送机部件511B可以和码字的处理产生关联。该发送机部件可以用于将同步码型添加到已编码的FEC码字,并在发送机502发送数据之前将整数个FEC码字和整数个所选的传输时钟时间段对准。
FEC模块接收机部件512可以包括FEC解码器512A和FCPM接收机部件512B。FEC解码器512A包含的FEC算法和FEC编码器511A所用的算法相同或相似。解码器512A被设计成对已编码的FEC码字进行解码、提取FEC有效荷载并采用该FEC算法来生成该冗余数据的新译本以供误码探测。FCPM接收机部件512B用于探测传输误码并纠正所探测到的误码。本专发明公开不必按照所公布的设计方式来工作。作为另一种选择方法,在该FEC处理器中实现的功能可以根据设计选择而被组合成为更少或更多的部件。上述网络部件可以在具有足够处理能力、存储器资源以及网络吞吐能力的任何通用网络部件(譬如计算机、网络或节点)上实现以便处理施加在其上的必要工作负荷。图6表示典型的通用网络部件,它适合于实现这里公开的节点的一个或多个实施例。网络部件600包括和存储器件通信的处理器602(它可以被称为中央处理器或CPU),这些存储器件包括二级存储器604、只读存储器(ROM) 606、随机存取存储器(RAM) 608、输入/输出(I/O)设备610以及网络可连接设备612。该处理器可以采用一个或多个CPU芯片来实现。二级存储器604通常包括一个或多个磁盘驱动器或磁带驱动器,而且在RAM 608没有大得足以保留所有工作数据时被用来作为数据的非易失性存储器并作为一种溢出数据存储器件。二级存储器604可以在程序被选定加以执行时用来存储装载到RAM 608的这些程序。ROM 606被用来存储命令,也许还可以存储在执行程序期间读取的数据。ROM 606是一种非易失性存储器设备,与二级存储器的较大存储能力相比,它通常具有较小的存储能力。RAM 608被用来存储易失性数据,也许还可以存储命令。对ROM 606和RAM 608的存取通常都要比对二级存储器604的存取迅速。本发明的FEC系统提供了能够应用于64b66b编码系统的FEC系统,从而克服了先有技术的缺点。本发明的FEC系统的有效性在于,它的码字长度对数据块大小的比值比较低。本发明的FEC系统无论对连续方式(譬如下行PON传输)还是间歇方式(譬如上行PON传输)都是有效的。尽管在本公开中已经提供了几个实施例,但应当理解,所公布的系统和方法可以按照许多其他特定形式来实现而不偏离本发明公开的精神或范围。本说明书中的示例都被认为是演示性的,而不是限定性的,而且它们的意图都不是要局限于这里所给定的细节。举例来说,各种元件或部件在另一个系统中可以进行组合或集成,或者,一些特性可以被省略或不予实现。另外,在各种实施例中按照尚散或分立的方式描述和演不的技术、系统、子系统和 方法可以和其他系统、模块、技术或方法进行组合或集成而不偏离本专利说明书的范围。这里所示或讨论的作为彼此耦合、直接耦合或通信的其他部件也可以通过一些电气的、机械的或其他形式的接口、设备或中间部件而间接耦合或通信。变化、替代及变更的其他示例可以由熟悉本技术的人员加以认定,而且这些变化、替代及变更都能够被实现而不偏离本发明公开的精神和范围。
权利要求
1.一种前向纠错方法,包括 将前向纠错FEC算法应用到多个数据块以生成多个冗余数据; 将整数个数据块和冗余数据封装到FEC码字; 发送该FEC码字,其中,该码字和传输时钟时间段均匀对准。
2.权利要求I的前向纠错方法,其中,该传输时钟时间段是16纳秒。
3.权利要求I的前向纠错方法,其中,该码字的长度和该数据块的大小的比值不大于I.09375。
4.权利要求I的前向纠错方法,其中,每个数据块是65比特长,并包含64比特数据。
5.一种前向纠错方法,包括 选择可根据多个数据块生成多个冗余数据的前向纠错FEC算法; 选择可封装整数个数据块的FEC码字;以及 选择同步码型以便添加到该FEC码字,以使整数个FEC码字和整数个传输时钟时间段均匀对准。
6.权利要求5的前向纠错方法,其中,该码字总共包括不多于255个字节,其中数据块不多于239个字节。
7.权利要求5的前向纠错方法,其中,该FEC码字包括28个数据块,而且每个数据块是66比特长。
8.权利要求7的前向纠错方法,其中,该同步码型是40比特长,而且该码字连同该同步码型的长度是2016比特。
9.权利要求5的前向纠错方法,其中,该码字包括29个数据块,而且每个数据块是65比特长。
10.权利要求9的前向纠错方法,其中,该同步码型是17比特长,而且该码字连同该同步码型的长度是2030比特。
11.权利要求9的前向纠错方法,其中,该同步码型是75比特长,而且该码字连同该同步码型的长度是2088比特。
12.一种无源光网络PON部件,包括 耦合到发送器和接收器的前向纠错FEC模块,其中,该FEC模块被设计成从该接收器接收多个数据块、生成可封装整数个数据块的FEC码字并促使整数个FEC码字和该发送器中整数个传输时钟时间段的对准。
13.权利要求12的PON部件,其中该FEC模块包括 被耦合到该接收器的FEC编码器,其中,该FEC编码器被设计成从该接收器接收数据块、生成冗余数据并将该冗余数据和这些数据块编码成为FEC码字的FEC有效荷载,以及 耦合到该FEC编码器和该发送器的FEC代码处理模块FCPM,其中,该FCPM被设计成将同步码型添加到该FEC码字,并保证整数个FEC码字和整数个传输时钟时间段均匀对准。
14.权利要求13的PON部件,其中,该FEC模块还包括 耦合到该接收器的FEC解码器,其中,该FEC解码器被设计得能从该FEC码字提取这些数据块和该冗余数据,并生成该冗余数据的新版本以供误码探测,而且 其中,该FCPM还被设计成探测传输误码并纠正这些传输误码。
全文摘要
网络部件包含被设计成实现一种方法的处理器,该方法将前向纠错(FEC)算法应用到多个数据块以便生成多个冗余数据、将整数个数据块和冗余数据封装到FEC码字并发送该FEC码字,其中,该码字和传输时钟时间段大致均匀对准以便拥有传输速率。还公布了一种方法,该方法包括选择一种能够根据多个数据块来生成多个冗余数据的FEC算法、选择能够封装整数个数据块的FEC码字并选择能够添加到该FEC码字的一种同步码型以便使整数个FEC码字和整数个传输时钟时间段均匀对准。
文档编号H04L1/00GK102891731SQ20121034904
公开日2013年1月23日 申请日期2007年8月3日 优先权日2006年8月11日
发明者弗兰克·J·埃芬博格 申请人:华为技术有限公司