编码和解码分组化数据的制作方法

文档序号:7961888阅读:110来源:国知局
专利名称:编码和解码分组化数据的制作方法
技术领域
本发明涉及一种编码和解码方法以及相应的编码器和解码器,更具体而言,本发明涉及一种编码和解码分组化数据的方法以及相应的编码器和解码器。
背景技术
如今几十年来,集成电路和激光器技术在性能方面几乎每18月就翻一番。这些技术已经用于支持全球通信容量迅猛增长的需求。这种需求当前比起改进支持技术的潜在速率增长更为快速。举例来说,因特网上的通信业务量最近每九个月就翻一番。对于附加的当前带宽的要求严重地强调当前电子和光技术的性能。
特别是,以太网局域网标准逐渐地以10倍系数的速度增加,开始在1982年是每秒10兆比特(Mb/s)。在1999年提出了10吉比特/秒(Gb/s)以太网标准。现有的以太网标准使用8b/10b线路码以1Gb/s来发送串行数据,该线路码在下面的文献中描述A.X.Widmer和P.A.Franaszek,ADC-Balanced,Partitioned-Block,8b/10b Transmission code,27 IBMJ.RES.AND DEV(1983年9月)。在8b/10b线路码中,每8比特输入字通过在数据链路上发送的10比特码表示。以这种25%开销交换,8b/10b编码提供了DC平衡,和有保证的跳变密度(transition density)。10比特码另外具有表示用于发送信号和成帧的控制字种类的能力。
曾经考虑在推荐的10Gb/s以太网标准中再使用8b/10b编码以便以10Gb/s来发送信息。但是,使用这种技术将会导致必须以波特率12.5G波特即12.5Gb/s进行发送。
利用当前可用的激光器加工技术,以普通的价格制造一种能够以12.5Gb/s调制的激光器被认为相当的困难。但是,当前存在激光器系统用在符合OC-192 SONET电信标准的系统中。这些系统以9.95328Gb/s的发送速率工作。但是,这些商用激光器不具有足够的性能余量以在高出其设计速度25%以上的速度运行。
一种使得设计用于SONET电信系统的激光器能够在推荐的10Gb/s以太网标准中使用的方法将会是设计简单和健壮的具有低于8b/10b线路码的开销的编码方案。在原理上,使用分组码能够实现这种目标,其中M比特的字通过N比特的码表示以及N∶M的比率小于10∶8。
一种潜在的开销低于8b/10b线路码的编码方案是在SONET电信标准中使用的编码方案。SONET编码方案通过使用加扰系统保证DC平衡,并且具有大约3%的开销。但是,在SONET编码方案中使用的加扰系统使用两层多项式加扰来获得足够的保护等级。这种两层方案实现复杂。而且,SONET编码方案具有复杂的难以以低成本实现的成帧协议。SONET编码方案也将会必须被修改以添加额外等级的编码以支持以太网分组限定。这种额外等级的编码将有可能增加SONENT编码的开销至7%或更多。另外,认为连网共同体(community)将会发现大规模采用电信标准是令人不快的。刚刚描述的性能和政策难度将会使得难以采用基于SONET编码方案的标准作为新的以太网标准。
另一种潜在的具有低于8b/10b线路码开销的编码方案是称为CIMT的编码方案。在Crandall等人的美国专利第5022051号和Hornak等人的美国专利第5438621号中描述了这种编码方案。CIMT码是(M)b/(M+4)b码,该码通过使M的值足够大能够被构造成具有低于8b/10b线路码的开销。但是,对于M的大值来说,由于需要计算M比特的入局块的DC平衡,以及需要实时地计算所发送比特的连续DC平衡,因此难以实现CIMT码。
转让给与本发明公开相同受让人的美国专利第6718491和6650638号公开了解决上述问题的64b/66b编码方案。在该公开的编码方案中,将2比特“主跳变”添加到数据的每一块以形成帧。当发送所有控制信息或所有数据时,主跳变是常量值,并且所产生的周期性信号引起了频域中不想要的频谱峰。

发明内容
本发明的一种形式提供了将信息字的分组编码到用于发送的帧中的方法。该方法包括接收输入数据的块,该输入数据包括控制字和信息字的分组,该分组具有某些控制字之前的开始和其他一些控制字之后的结束,所述块小于分组。该方法包括确定何时块唯一由信息字构成。当该块唯一由信息字构成时,加扰具有第一含义(sense)的主跳变并将其附加到所述块形成一帧。当该块不唯一由信息字构成时压缩该块以容纳TYPE(类型)字;具有指示块的结构特性的值的TYPE字被产生并插入到所述块中;以及加扰具有与第一含义相对的第二含义的主跳变并将其附加到该块中以形成一帧。


图1是显示包括根据本发明一个实施例的编码器的10Gb/s以太网接口实例的方框图。
图2图示了通过根据本发明一个实施例的编码器所接收输入数据的示意性四元组(quad)。
图3A-3D所示为能够由根据本发明一个实施例的编码器接收的块的12种可能类型。
图4A-4C所示为根据本发明的一个实施例编码器从输入数据的块所产生的帧的基本结构和两种类型的帧。
图5A是显示根据本发明的编码方法的第一实施例的流程图。
图5B是显示根据本发明的一个实施例在图5A所示方法的处理205中所执行处理实例的流程图。
图6是显示根据本发明的编码方法的第二基于四元组的实施例的流程图。
图7A-7L所示为根据本发明的一个实施例,在使用情况下,根据在图3A-3D中所示12种块类型的每一种块类型产生的帧的具体实例,所述帧包括主跳变和TYPE字。
图8A是显示根据本发明编码器的第一实施例的方框图。
图8B是显示根据本发明编码器的第二基于四元组的实施例的方框图。
图9A是显示解码通过根据本发明一个实施例的编码方法和编码器所产生帧的解码方法的实例的流程图。
图9B是显示根据本发明的一个实施例在图9A所示方法的处理276中所执行处理实例的流程图。
图10A是显示用于解码通过根据本发明的编码方法和编码器所产生帧的解码器的第一实施例的方框图。
图10B是显示用于解码通过根据本发明的编码方法和编码器所产生帧的解码器的第二实施例的方框图。
具体实施例方式
在以下的详细描述中,参考构成其一部分并且示出可以实践本发明的示例性特定实施例的附图。应该明白可以使用其他实施例并且在不背离本发明范围的情况下可以对结构或逻辑作出改变。所以,以下的详细描述并不用作限制的含义,本发明的范围是由所附的权利要求书定义的。
图1所示为10Gb/s以太网接口10的实例的方框图,其中,该接口包括物理编码子层模块(PCS)30,而该模块包括根据本发明的一个实施例的编码器100。接口10包括介质访问控制器(MAC)12、XGMII扩展器子层模块(XGXS)14、和PCS 30。MAC12经由37-导线(conductor)XGMII总线16发送包括从主机系统(未示出)所接收用户数据的数据到XGXS。MAC12另外还经由37-导线XGMII总线17从所述XGXS接收包括用户数据的数据以便提供给主机系统。
XGXS14经由4-通道(lane)XAUI总线18发送以下将描述的编码的串行比特流到PCS30并经由4-通道XAUI总线19从PCS30接收编码的串行比特流。
PCS 30包括发送路径20和接收路径22。发送路径20由4×8b/10b解码器32、编码器100、和多路复用器34的串联结构组成。4×8b/10b解码器32的输入端通过XAUI总线18连接到XGXS14的输出端。4×8b/10b解码器32的输出端通过37-导线伪-XGMII总线42连接到编码器100的输入端。
编码器100的输出端通过总线44连接到多路复用器34的输入端。在一个实施例中,总线44是66条导线宽,但是编码器100和多路复用器34可以被构造成使用实质上小于该宽度的总线。多路复用器34的输出是馈送给以太网介质40的串行比特流。
接收路径22由解复用器36、解码器120和4×8b/10b编码器38的串联结构组成。解复用器36从以太网介质40接收串行比特流。
解复用器36的输出端通过总线45连接到解码器120的输入端。在一个实施例中,总线45是66条导线宽,但是解复用器36和解码器120可以被构造成使用实质上小于该宽度的总线。解码器120的输出端通过37-导线伪-XGMII总线43连接到4×8b/10b编码器38的输入端。
4×8b/10b编码器38的输出端通过XAUI总线19连接到XGXS14的输入端。
在以太网接口10中,MAC12从主机系统(未示出)接收用户数据,和提供用户数据给它。MAC12采用在46和1500之间的任何数量的用户数据字,添加18或22个字的地址和其他数据到用户数据之前以及添加四个字的CRC-32校验和的到用户数据结尾以形成分组。在本公开中,分组的内容将被称为信息字。
MAC12另外产生分组开始(SOP)控制字S,它被添加到每个分组的开头用来标记该分组的开始。MAC12另外还产生分组结束(EOP)控制字T,它被添加到每个分组的结尾用来标记分组的结束。MAC12还产生附加控制字并将它们插入到相继的分组之间以产生用于发送到XGXS14的字的连续流。使用该连续流来保持接收机相位对准。所述附加控制字包括空闲和错误E。本公开使用字母Z作为通用术语来指示任何一个控制字。
MAC12经由XGMII总线16馈送字的连续流到XGXS14。在XGMII总线16和17的每一条总线中的37条导线中,32条导线被分配给四个、并行的8比特字;4条导线分配给控制字标记,每个标记指示四个字中相应的一个字是信息字还是控制字;以及一条导线分配给时钟信号。通过XGMII总线16和17以及伪-XGMII总线42和43并行传输的一组四个8比特字将被称为四元组。
另外,MAC12经由XGMII总线17从XGXS14接收四元组的连接流。正如以上所述,该四元组由在分组中安排的信息字和在相继分组之间插入的控制字构成。每个分组的开始和结束分别利用SOP和EOP控制字标记。MAC12使用与四元组并行接收的用以指示信息字的控制字标记,从来自XGXS14的四元组流中提取该信息字的分组。MAC12还使用构成该分组最后四个字的CRC-32校验和来校验每个分组的有效性。MAC12然后从分组中提取用户数据,并转发该用户数据到主机系统(未示出)。
XGXS14从MAC12接收四元组的连续流。在一个实施例中,MAC12和XGXS14是传统以太网系统的元件。因此,XGXS模块14应用8b/10b线路码给从MAC12所接收的四元组中的每个字。响应于相应的控制字标记来编码每个字,以便通过不同的10比特码表示具有相同8比特码的信息字和控制字。XGXS14还串行化10比特线路码字并经由XAUI总线18馈送它们给PCS30的输入端。为10Gb/s以太网标准化XAUI总线18,以及该总线由四条并行的称为通道的导线构成,每条导线以3.125Gb/s的比特率传送串行的10比特线路码字。因此,构成XAUI总线18的四条导线集中以12.5Gb/s的有效比特率传送串行的10比特线路码字到PCS30。
XAUI总线18和19使用四条并行导线来获得12.5Gb/s的总比特率,因为3.125Gb/s表示使用当前技术在某些印刷电路板的导线上能够可靠传送数据的最快速率。而且,大量各种当前的集成电路技术能够以该速度支持接口,部分技术将不支持更高的速度。
XGXS14还经由XAUI总线19从PCS30接收四条串行比特流。XGXS14并行化所述比特流,解码8b/10b编码的构成该比特流的10比特线路码字,并经由XGMII总线17馈送所产生的由信息字和控制字组成的四元组的连续流到MAC12。XGXS14另外经由XGMII总线17馈送用于构成四元组的每个字的控制字标记到MAC12。
在PCS30的发送路径20中,4×8b/10b解码器32连接到XAUI总线18以便以4×3.125Gb/s的比特率接收入局的串行10比特线路码字。4×8b/10b解码器32解码8b/10b编码的10比特线路码字以恢复相应的8比特字,以及对于每个字,产生指示该字是信息字还是控制字的字类型比特。4×8b/10b解码器32经由伪-XGMII总线42馈送8比特字的四元组和其相应的控制字标记到编码器100。伪-XGMII总线42具有与XGMII总线16相同的结构,但是在本公开中称其为伪-XGMII以指示这个内部总线的逻辑功能总是存在,但是不可以物理地实例化该总线。伪-XGMII总线42由37条导线组成。其中32条导线分配给四元组,四条导线分配给用于该四元组的控制字标记,以及一条导线分配给时钟信号。
有可能出现能够通过如下方式实现实质上简化的情况,即省略XGXS14、XAUI总线18和19、4×8b/10b解码器32、4×8b/10b编码器38、和伪-XGMII总线42和43,并且简单地经由XGMII总线16和17连接编码器100和解码器120到MAC12。XGMII总线的当前实施例的最大发送距离是100mm量级,而XAUI总线的最大发送距离是1m量级。而且,MAC12和XGXS14通常与XAUI被集成到单个集成电路中作为芯片之间的唯一暴露接口,这极大地减少了所需管脚的数量以及在印刷电路板上必须路由的迹线的数量。因此,能够作出上述简化,但是只有当XGMII总线的长度小于这种总线的最大发送距离和能够容纳XGMII所需的附加管脚和迹线时才可以实现。
编码器100从伪-XGMII总线42接收四元组作为输入数据,编码相继的四元组对以产生相应的66-比特帧,如以下将会更详细的描述,并经由总线44馈送该分组到多路复用器34。
多路复用器34接收66-比特帧,对其串行化并以10Gb/s的比特流发送它们到以太网介质40。典型的发送范围为使用RG-174同轴电缆是5m,使用5mm同轴电缆是10m以及使用光纤是40km。
在PCS30的接收路径22中,解复用器36将以10Gb/s的比特率从以太网介质40接收的串行数据分割成66-比特帧,并经由总线45馈送这些帧到解码器120。解码器120解码66-比特帧以产生两个相继的8比特字四元组和用于每一字的控制字标记。解码器120经由伪-XGMII总线43并行地传送所述四元组及其相应的控制字标记到4×8b/10b编码器38。
响应于构成四元组的每一字的控制字标记操作,4×8b/10b编码器38应用8b/10b编码给经由伪-XGMII总线43接收的四元组。4×8b/10b编码器38经由XAUI总线19以12.5Gb/s的比特流传送所产生的10比特线路码字到XGXS模块14。如上所述,XGXS14和MAC12处理该10比特线路码字以提供接收的用户数据给主机系统(未示出)。
现在将参考图2、3A-3D和4A-4C描述通过根据本发明一个实施例的编码器100所应用的64b/66b编码。
图2图示了经由伪-XGMII总线42的四条通道由编码器100所接收的输入数据的示意性四元组。该输入数据包括由信息字D构成的示意性分组130。为了简化附图,分组130中信息字的数量实质上少于标准以太网分组中信息字的最小数量。
在分组130的开始之前,编码器100在伪-XGMII总线42的所有4条输入通道上接收控制字。这些控制字是有关XGMII的空闲(I)。为了在XAUI上进行发送,利用K、R和A控制字来代替空闲。分组130的开始通过131所示的SOP控制字S指示。SOP控制字131总是出现在通道0中并且从不出现在任何其他的通道中。如果SOP控制字131出现在除通道0之外的其他通道中,这表明有错误并且利用错误码E代替该控制字。
然后相继地接收构成分组130的信息字D,其后是在132所示的EOP控制字T。EOP控制字132能够出现在伪-XGMII总线42的任何通道中。EOP控制字132出现的通道取决于分组130中信息字的数量。分组130能够由46和1500之间的任何数量的信息字组成。在相继的分组之间由以太网MAC发送的控制字的最小数量是12。在EOP控制字132之后,编码器100经由伪-XGMII总线的所有四条通道接收空闲控制字。该控制字继续直到指示下一个分组开始的SOP控制字(未示出)为止。
根据本发明一个实施例的编码器100应用64b/66b编码给由相继从伪-XGMII总线42接收的输入数据的两个四元组构成的块,即,应用64b/66b编码给总共64个接收比特。因此,该64b/66b编码使用66个比特来表示64个接收比特。64b/66b编码添加由2比特组成的主跳变到块的开始以形成帧。主跳变同时用作帧同步的参考以及指示何时该帧唯一由信息字构成的标记。64b/66b编码的编码效率是64/66,或具有3.125%的开销。64b/66b编码导致发送比特率位于设计用在SONET发送机中的现有激光器的规定比特率的4%之内。相信该发送比特率位于这种现有激光器的正常制造性能窗之内。
由于从伪-XGMII总线42接收的每个字可以是控制字或者信息字,正如通过也是从伪-XGMII总线42所接收字的相应控制字标记所指示的,完全通用的编码将需要发送每一字的控制字标记以告知接收机正在接收何种类型的字。这种编码的最大效率是8/9,或12.5%的开销。64b/66b编码实现了实质上比利用XAUI接口和以太网分组结构特征更小的开销,其减小了在输入数据中安排信息字和控制字的可能方式的数量。
首先,编码器100所接收的信息字的每个分组由至少64个字构成,总是以SOP控制字S开始并且总是以EOP控制字结束,相继的分组通过至少12个控制字分割。这意味着当编码输入数据的8字(64比特)的块时,每一块能够唯一地包含信息字,唯一地包含控制字,从控制字到信息字的单次跳变或从信息字到控制字的单次跳变。如上所述,构成帧的最前2比特的主跳变用作指示何时该帧唯一由信息字组成的标记。这意味着,取代在每一帧中包括8个控制字标记以指示构成该帧的8个字中的每个字是信息字还是控制字,比特的该数量能够用于表示TYPE字,该字包括在所有不是唯一由信息字组成的帧中。TYPE字的不同值指示块的以下结构特性之一1)是否帧从中导出的块唯一地由控制字构成,2)在帧从中导出的块中分组开始的位置和3)在帧从中导出的块中分组结束的位置。由于8比特TYPE字所表示状态的数量相对小,因此能够选择具有大的相互汉明距离的TYPE字。例如,能够如此选择TYPE字,以便需要多于3-比特的错误将一个TYPE字转换成另一个TYPE字。
其次,如上所述,XGMII语义保证了SOP控制字S唯一出现在通道0中。这样使分组开始能够出现在帧中的方式数量减小到2,这进一步减小了分组开始或分组结束能够出现在该帧中的方式总数。
第三,该组控制字足够的小以允许使用少于8个比特来编码控制字,以及通过一组具有大的相互汉明距离的码来编码该控制字。然后,通过使用少于8个比特来编码控制字节省的比特能够用于压缩所述块,以使得所述帧能够容纳上述TYPE字。选择所述码以使得控制字编码能够高度地抵抗比特错误。
图3A-3D所示为根据本发明的一个实施例,编码器100能够从伪-XGMII总线42所接收块的12种可能类型。图3A所示为从位于分组中间的两个相继四元组产生的块,其中两个四元组都唯一地由信息字组成。由唯一信息字的两个相继四元组构成的块称为类型1块。
图3B所示为包括位于两个相继分组之间间隔中间的两个相继四元组的一个块类型,两个四元组都唯一由控制字构成。由唯一控制字的两个相继四元组构成的块称为类型2块。
图3C所示为分组开始出现的两个不同的块类型。分组的开始由SOP控制字S指示。由于SOP控制字只能出现在伪-XGMII总线的通道0中,因此SOP控制字只能出现在该块中的两个可能位置。SOP控制字出现在偶数编号四元组中的块称为类型3块,以及SOP控制字出现在奇数编号四元组中的块称为类型4块。
图3D所示为分组结束出现的8种不同的块类型。分组的结束由EOP控制字T指示。由于EOP控制字能够出现在伪-XGMII总线的4条通道的任何一条通道中,因此该EOP控制字能够出现在该块的任何位置中。EOP控制字作为块的字1到8出现的块(参见图7A)分别称为类型5到类型12块。
12种不同类型的块由使用主跳变和TYPE字组合的码所指示。12种类型的块划分为两个不同类别,即唯一由信息字构成的块,即在图3A中所示的类型1块,以及包括至少一个控制字的块,即在图3B-3D中所示的类型2-12块。
图4A所示为根据本发明的一个实施例,编码器100从输入数据的块产生的帧150的基本结构。帧150由2比特同步字段151和跟随其的64比特有效载荷字段152构成。同步字段151容纳2比特主跳变。利用长周期、自同步加扰器加扰有效载荷字段152所容纳的字以保持发送比特流的统计DC平衡,如以下将更详细的描述的。在本发明的一种形式中,还加扰2比特主跳变,这在下文进一步详细的描述。
编码器100产生两个不同类型的具有图4A所示基本结构的帧,但是其不同之处在于有效载荷字段152的结构方面。有效载荷152的结构取决于帧从中产生的块是否是唯一由信息字构成的类型1块。有效载荷152的结构通过同步字段151中所存储的主跳变指示。图4B所示为当所述块是类型1块所产生的帧153的结构。在这种情况下,同步字段151中的主跳变是01,以及有效载荷字段152由构成该块的8个信息字即64个比特组成。
图4C所示为当所述块是类型2到类型12块时所产生的帧156的结构,这些块包括至少一个控制字。在这种情况下,同步字段151中的主跳变是10,有效载荷字段152由8比特子字段157和56比特子字段158构成。TYPE字占用8比特子字段157,以及压缩版本的块占用56比特子字段158。特别是,包括在所述块中的所有信息字未改变地包括在子字段158中。56比特子字段158能够容纳最大7个信息字,即包括至少一个控制字的块中的信息字的最大数量。而且,控制字S和T,如果它们出现在所述块中,则被丢弃并且不转移到子字段158。最后,使用少于8个比特重新编码该块中所有的剩余控制字以及重新编码的控制字包括在子字段158中。在优选实施例中,使用被选择具有相互汉明距离为4比特的7比特码重新编码所述剩余的控制字。
从子字段158中能够省略控制字S和T,因为帧中分组开始或分组结束的位置是通过包括在子字段157中的TYPE字所指示的。当所述块由7个信息字和SOP控制字S或EOP控制字T任何之一组成时,如在图3C所示的类型3块和图3D所示的类型12块中,省略控制字S和T允许有效载荷字段152完全容纳TYPE字和所有7个信息字。当所述块唯一由控制字组成时,如在图3B所示的类型2块中,重新编码剩余控制字为7-比特字使有效载荷字段152能够容纳TYPE字和所有8个控制字。在已经移除S和T控制字和使用较少的比特重新编码剩余的控制字之后,信息字和控制字的所有其他组合由少于56个比特组成。
图5A所示为根据本发明应用64b/66b编码给包括信息数据分组的输入数据的方法的第一实施例200的流程图。以下将参考图5B更详细地描述在该方法的处理205中执行的处理。
所述方法在处理202开始。在处理203中,接收输入数据的块。除信息字分组之外,该输入数据包括上述控制字。该控制字在信息字分组之前和之后。所述块小于分组。在优选实施例中,每个块由从伪-XGMII总线42接收的四个并行字的两个相继四元组组成。
在处理204中,对输入数据的块执行测试以确定该块是否唯一由信息字组成。在优选实施例中,简单地通过检查构成所述块的8个字的控制字标记能够执行这种测试。经由伪-XGMII总线42一起接收控制字标记与构成所述块的字。替换地,通过在接收四元组时测试该四元组,以及从构成该块的四元组的测试结果得出该块的测试结果能够执行所述测试,以下将参考图6更详细的描述。
当测试结果是“否”时,执行前进到以下描述的处理205。当测试结果是“是”时,执行前进到加扰所述块和第一含义的主跳变的处理206。
执行然后前进到处理207,通过在加扰的块之前安排加扰的主跳变形成帧。在优选实施例中,第一含义的主跳变在加扰之前通过两个比特01来提供。
执行然后前进到发送帧的处理208,和执行测试以确定是否已经处理完输入数据所有块的处理209。当测试结果是“是”时,执行前进到结束处理210。当测试结果是“否”时,执行经由处理211返回到处理204以便能够处理下一个块。
当处理204中的测试结果是“否”时,这指示所述块包括至少一个控制字。执行前进到处理205,其中产生识别所述块结构特性的TYPE字,压缩所述块并将TYPE字插入到该块中。TYPE字指示块的以下结构特性之一1)是否该块唯一由控制字组成,2)块中帧开始的位置和3)块中帧结束的位置。以上参考图3A-3D详细描述了块类型。以下将参考图5B更详细地描述处理205中执行的处理。
执行然后前进到处理212,其中加扰该块和与第一含义相对的第二含义的主跳变。
执行然后前进到处理213,其中通过在加扰的块之前安排加扰的主跳变形成帧。在优选实施例中,第二含义的主跳变在加扰之前通过两个比特10来提供。
执行然后前进到如上所述的发送该帧的处理208。
以上将所述块描述为在处理206和212中遭受加扰。在通用数据传输应用中,加扰所述块以帮助保证接收机能够同步到主跳变,和解码分组。但是,在传输随机数据的数据传输应用中,能够省略块的加扰。随机数据的实例包括数字音频信号和压缩数据。
图5B所示为在处理205中执行的处理实例。在本处理中,压缩块并将指示块结构特性的TYPE字插入到该块中。所述结构包括块中分组开始或结束的位置,或是否该块唯一由控制字组成。
执行在处理220开始。在处理221中,执行测试以确定所述块是否包括指示在该块中分组开始的SOP控制字S。当测试结果是“否”时,执行前进到以下将描述的处理222。当测试结果是“是”时,执行前进到处理223,执行测试以确定是否SOP控制字出现在构成所述块的第一四元组中。编码器100处理的每一块由两个相继接收的四元组组成。
当处理223所产生的测试结果是“否”时,执行前进到处理224,其中产生指示所述块是类型4块的TYPE字。类型4块是SOP控制字出现在第二四元组中的块。以上参考图3A-3D详细地描述了块类型。执行然后前进到以下将描述的处理226。当处理223中产生的测试结果是“是”时,执行前进到处理225,其中产生指示所述块是类型3块的TYPE字。类型3块是SOP控制字出现在第一四元组中的块。
执行从处理224或处理225前进到处理226,其中通过从所述块中移除SOP控制字压缩该块。压缩所述块在块中为处理224或处理225所产生的将要在处理228插入到块中的TYPE字建立空间,以下将进行描述。
执行然后前进到处理227,通过使用较少比特重新编码块中的任何控制字来压缩块。如果先前已经执行了处理226或处理233,执行处理227的效果是进一步压缩块。以下将描述处理233。以上描述了压缩块的目的。在优选实施例中,使用较少的比特重新编码8比特控制字。该组控制字足够小以允许使用7比特码编码该控制字,所述7比特码被选择具有4比特的相互汉明距离。重新编码处理能够参考用于块的TYPE字以找到块中控制字的位置。
执行然后前进到在块的首部插入TYPE字的处理228。通过执行处理226、227和233其中之一或更多处理,在块中已经建立了容纳TYPE字的空间。以下描述处理233。
执行然后前进到返回到主程序的处理229。
当处理221中的测试结果是“否”时,执行前进到处理222,其中执行测试以确定所述块是否包括指示分组结束在块中出现的EOP控制字T。当测试结果是“否”时,执行前进到以下将描述的处理230。当测试结果是“是”时,执行前进到确定在所速块中EOP控制字位置的处理231。如图3D所示,所述块中8个字中的任何一个字能够是EOP控制字。
执行然后前进到处理232,根据所述块中EOP控制字的位置产生TYPE字。该TYPE字指示所述块是类型5到类型12块中的一个块。类型5到类型12块是所述EOP控制字出现在块中8个字位置的其中之一的块,如以上参考图3D所描述的。
执行然后前进到通过从块中移除EOP控制字压缩该块的处理233。压缩块的目的在上面描述了。
执行然后前进到处理227,如上所述,通过使用较少的比特重新编码所述块中剩余的任何控制字进一步压缩该块。
处理222中的测试结果“否”指示所述块唯一由控制字组成。在这种情况下,执行前进到产生指示所述块是类型2块的TYPE字的处理230。类型2块是唯一由控制字组成的块。
执行然后前进到处理227,如上所述,通过使用较少的比特重新编码包括在块中的控制字压缩该块。在这种情况下,块中的所有8个字是控制字并且对其重新编码。
注意到在上述处理中,包括在所述块中的这种信息字保持不变。
图6所示为根据本发明应用64b/66b编码给包括信息数据分组的输入数据的编码方法的第二实施例250的流程图。本实施例是基于四元组而不是基于块的。所述方法在处理251开始。在处理252中,从图1所示的伪-XGMII总线42接收输入数据的四元组。还优选地另外接收用于四元组中每个字的控制字标记。
在处理253中,执行测试以确定所述四元组是否唯一由信息字组成。可以简单地通过检查四元组的控制字标记来执行这种测试。当测试结果是“是”时,执行前进到处理254,其中将指示四元组唯一由信息字组成的四元组类型码附加到该四元组。执行然后前进到以下将描述的处理261。当处理253中的测试结果是“否”时,执行前进到处理255。
在处理255中,执行测试以确定四元组中的任何控制字是否是分组结束(EOP)控制字。当测试结果是“否”时,执行前进到以下将描述的处理256。当测试结果是“是”时,执行前进到确定在四元组中EOP控制字位置的处理257,以及将四元组类型码附加到该四元组的处理258。四元组类型码指示在该四元组中EOP控制字的位置。
在处理259中,从所述四元组移除EOP控制字。这具有压缩其中四元组是组成部分的块的效果。
在处理260中,如上所述,使用较少的比特重新编码四元组中的任何其他控制字。这具有进一步压缩其中所述四元组是组成部分的块的效果。执行然后前进到以下将描述的处理261。
当处理255中的测试结果是“否”时,执行前进到处理256,执行测试以确定四元组中的任何控制字是否是分组开始(SOP)控制字。当测试结果是“否”时,执行前进到处理262,将指示所述四元组唯一由控制字组成的四元组类型码附加到该四元组。执行然后前进到如上所述的重新编码控制字的处理260,然后前进到以下将描述的处理261。
当处理256中的测试结果是“是”时,执行前进到处理263,将指示所述SOP控制字出现在四元组的通道0中的四元组类型码附加到该四元组。
在处理264中,从所述四元组移除SOP控制字。这具有压缩其中所述四元组是组成部分的块的效果。
执行然后前进到如上所述的处理260,重新编码所述控制字,然后前进到接下来将描述的处理261。
在处理261中,执行测试以确定刚刚处理的四元组是否是偶数编号的四元组。当测试结果是“是”时,执行经由处理265返回到处理252,以便能够接收并处理下一个四元组。在这种情况下,下一个四元组是构成该帧将从中产生的块的第二四元组。测试结果“否”指示已经接收并处理构成块的两个四元组,执行前进到处理266。
在处理266中,检查附加到两个四元组的四元组类型码以确定将从四元组中产生的块的块类型,并产生该块的TYPE字。例如,当偶数编号四元组的四元组类型码指示SOP控制字出现在该四元组中时,奇数编号四元组的四元组类型码指示该四元组唯一由信息字组成,处理266确定所述块是类型3块(参见图3C)。
尽管TYPE字仅仅分配给包括控制字的块,但是通过分配附加的TYPE字给类型1块,即唯一由信息字组成的块,能够简化处理250。附加的TYPE字由处理250内部使用,并且从不将其插入到块中。例如,字00H能够用作类型1块的TYPE字。在处理267中,执行测试以通过测试所述块是否是类型1块,来确定该块是否唯一由信息字组成。当测试结果是“是”,执行前进到组合四元组以形成块的处理268。
在处理269中,如上所述,加扰块和第一含义的主跳变。在优选实施例中,第一含义的主跳变在被加扰之前通过两个比特01来提供。如上所述,当所述信息字是随机时可以省略块的加扰。
在处理270中,通过在加扰的块之前安排加扰的主跳变形成帧。
执行然后前进到以下将描述的处理274。
当处理267中产生的测试结果是“否”时,执行前进到处理271,组合所述四元组以形成块以及插入TYPE字。TYPE字被插入到块的首部中。在组合四元组中,将信息字移位以便相互邻接以及还邻接TYPE字或块的结束。将编码的控制字移位以便相互邻接以及还邻接块的结束或TYPE字(例如参见图7A-7L)。信息字和控制字之间的任何间隔填充有填充比特。
在处理272中,如上所述,加扰该块和第二含义的主跳变。在优选实施例中,第二含义的主跳变在被加扰之前通过两个比特10来提供。再次,当所述信息字是随机时块的加扰是可选的。
在处理273中,通过在加扰的块之前安排加扰的主跳变来形成帧。
执行然后前进到接下来将描述的处理274。
在处理274中,发送所述帧。
在处理275中,执行测试以确定是否已经处理输入数据的所有四元组。当测试结果是“是”时,执行前进到结束处理276。当测试结果是“否”时,如上所述,执行经由处理265返回到处理252,以便能够处理下一个四元组,即偶数编号的四元组。
图7A-7L所示为在使用情况下,从在图3A-3D中所示12种块类型的每一种块类型产生的帧的具体实例,所述帧包括主跳变和TYPE字。在图7A-7L中,主跳变的比特和块显示为未加扰。在本发明的一种形式中,在发送帧之前加扰主跳变的比特和块。图7A所示为从图3A示出的类型1块产生的帧153。该块唯一由信息字组成。在帧153中,同步字段151填充有2比特主跳变01,有效载荷字段152填充有位于块160中位置0到7的8个信息字,如图所示。有效载荷字段152中的每个信息字用字母D、编号和数字8来标记。字母D指示信息字,编号指示信息字在块160中的位置,以及数字8指示信息字由8比特组成。
图7B所示为从图3B中所示类型2块产生的帧。图7C和7D分别示出从图3C中所示类型3和类型4块产生的帧。图7E-7L分别示出从图3D中所示类型5到12块产生的帧。举例来说,图7D示出从图3C中所示类型4块产生的帧156。类型4块部分由控制字,即SOP控制字和未指定的控制字Z,和部分由信息字D而组成。在帧156中,2比特主跳变10占用同步字段151,在有效载荷字段152中,8比特TYPE字,在本实例中为十六进制数33H占用子字段157。TYPE字指示所述帧从类型4块中产生,其中分组开始出现在构成所述块的奇数编号的四元组中。四个编码的控制字Z和三个8比特信息字D占用有效载荷字段的子字段158。
子字段158中的每个数据单元用字母D或Z、编号和数字7或8标记。字母D指示信息字,字母Z指示控制字,编号使用上述参考图7A描述的约定指示块中信息字或控制字的位置,数字7或8指示数据单元中的比特数,即对于每一编码的控制字是7比特以及对于每个信息字是8比特。如上所述,SOP控制字S被丢弃并且不传送到子字段158。相反地通过TYPE码33H提供指示分组在块的位置4开始的SOP控制字的功能。
编码为7比特字的四个编码的控制字Z以及三个8比特信息字D不完全占用帧156的子字段158。该子字段的未占用区域164填充有适当的空闲比特。可替换地,能够分配功能给用于填充子字段158的未占用部分的比特。
选择图7B-7L中示例的TYPE字具有4比特的相互汉明距离,以便保证可靠地识别分组的开始和结束。另外选择容易产生和测试的TYPE字。所述组选择的TYPE字是如下产生的16单元组的11单元子组在该组中每个连续单元的第一4比特以二进制从0递增到15。每个单元的第二4比特提供最小汉明距离保护,以及1)当第一4比特的奇偶校验是偶数时复制第一4比特,或2)当第一4比特的奇偶校验是奇数时对第一4比特求补码。16单元组最佳在于它利用低的门延迟和等待时间提供非常简单的实现。
乍看起来,构成主跳变的2比特看起来将会经受这样的缺点,即2比特错误能够从缺少TYPE字的帧(图4B)到包括TYPE字的帧(图4C)转换主跳变所定义的帧类型。这对于满足以太网要求来说不是足够的健壮。但是,在解码器120中通过监控帧类型的顺序能够检测到4比特大的主跳变错误。如上所述,每一帧能够是四种不同类型中的一种类型,即一种帧类型是唯一由信息字D组成(类型1),一种帧类型是包括分组开始S(类型3和4),一种帧类型是包括分组结束T(类型5-12)以及一种帧类型是唯一由控制字Z组成(类型2)。在正常操作中,四种不同的帧类型以预定的顺序产生,即S,D,...,D,T,Z,...Z,S,D,...,D,T,Z,...,Z等等,并且必须以相同的预定顺序接收。通过监控所接收帧类型的顺序和通过添加错误控制字E到解码数据来标记预定顺序的扰乱,从而MAC12能够无效被破坏的帧。
图8A是根据本发明编码器100的第一实施例的方框图。编码器100包括类型字发生器181、有效载荷字段发生器182、64比特加扰器183、主跳变发生器184、帧装配器185、和主跳变加扰器186。
在编码器100中,类型字发生器181和有效载荷字段发生器182进行连接以经由伪-XGMII总线42(图1)从4×8b/10b解码器32接收输入数据的块。该输入数据由控制字和信息字分组构成。所述分组之前和之后有控制字。在优选实施例中,所述块是八个字,即64比特长并且小于分组的最小大小。该块还小于相继分组之间的控制字数量。编码器100一块一块地处理输入数据以产生相应的帧用于发送。
类型字发生器181产生TYPE字,其值指示块的以下相互排他结构特性其中之一1)是否该块唯一由除分组结束之外的控制字组成,2)块中分组的开始位置和3)块中分组结束的位置以及4)是否该块唯一由信息字组成。所述类型字发生器馈送TYPE字给有效载荷字段发生器182和主跳变发生器184。指示是否所述块唯一由信息字组成的TYPE字的值可以采用标志位的形式,该标志位被馈送到主跳变发生器184,以及可选地,馈送到有效载荷字段发生器182。
有效载荷字段发生器182响应于TYPE字操作。当TYPE字指示所述块唯一由信息字组成时,有效载荷字段发生器182采用该块形成有效载荷字段。否则,当TYPE字指示所述块不是唯一由信息字组成时,有效载荷字段发生器压缩该块并插入TYPE字到该块中以形成有效载荷字段。
有效载荷字段发生器182通过执行以下操作之一或二者来压缩所述块1)从该块中移除任何分组开始控制字或分组结束控制字,和2)使用较少的比特重新编码块中的任何其他控制字。在优选实施例中,使用具有相互汉明距离为4比特的7比特码重新编码控制字。通过上述标志位代替满TYPE字可以确定是否有效载荷字段发生器182简单地采用块作为有效载荷字段,或在形成有效载荷字段之前进一步处理块。TYPE字指示分组开始控制字或分组结束控制字(如果有的话)在块中的位置以及其他控制字(如果有的话)在块中的位置。
有效载荷字段发生器182馈送从所述块产生的有效载荷字段PF到64比特加扰器183。
64比特加扰器183是基于高阶多项式的自同步加扰器并且以下将更详细地进行描述。如上所述,在唯一设计用于发送已是随机的输入数据的编码器100的实施例中可以省略加扰器183。加扰器183馈送从有效载荷字段PF产生的加扰有效载荷字段SPF到帧装配器185。
主跳变发生器184响应于TYPE字,或替换地,响应于上述标志位操作,并产生主跳变。当TYPE字,或标志位指示所述块唯一由信息字组成时,主跳变发生器184产生第一含义的主跳变。否则,当TYPE字,或标志位指示所述块不是唯一由信息字组成时,主跳变发生器184产生与第一含义相对的第二含义的主跳变。在优选实施例中,第一含义的主跳变是01,以及第二含义的主跳变是10。能够替换地使用与所示这些跳变相对的跳变。主跳变发生器184馈送主跳变MT到主跳变加扰器186。
在一个实施例中,主跳变加扰器186使用64比特加扰器183提供的加扰器比特加扰从主跳变发生器184接收的2比特主跳变,借此产生将提供给帧装配器185的加扰主跳变SMT。在一个实施例中,主跳变加扰器186使用64比特加扰器183所提供的单个加扰器比特来加扰主跳变发生器184产生的2比特主跳变的两个比特。在本发明的一种形式中,主跳变加扰器186对加扰器比特和主跳变的第一比特执行XOR运算,XOR运算的结果成为加扰的主跳变的第一比特,对相同的加扰器比特和主跳变的第二比特执行XOR运算,第二XOR运算的结果成为加扰的主跳变的第二比特。主跳变加扰器186馈送加扰的主跳变SMT给帧装配器185。在本发明的一种形式中,64比特加扰器183提供的单个加扰器比特不是用于加扰有效载荷字段的第一或最后比特的比特。使用有效载荷字段的第一或最后比特作为加扰器能够对于某些值的有效载荷字段产生错误的主跳变。将会有可能校验和忽略错误的主跳变,但是更为简单的方式是避免产生这种情况。
帧装配器185从64比特加扰器183接收加扰的有效载荷字段SPF,以及从主跳变加扰器186接收加扰的主跳变SMT,并附加该加扰的主跳变到加扰的有效载荷字段以形成用于发送的帧。帧装配器185优选地在加扰的有效载荷字段之前定位加扰的主跳变,但是替换地能够在加扰的有效载荷字段之后定位加扰的主跳变。
所述帧装配器经由总线44馈送66比特帧到多路复用器34(图1)。
图8B所示为根据本发明的编码器100的第二实施例的方框图。在本实施例中,所述处理基于四元组。编码器100包括STZ预编码器301、由解复用器303和寄存器304组成的块发生器302、有效载荷字段发生器305、类型字发生器306、64位加扰器307、帧装配器308、和主跳变加扰器309。
STZ预编码器301经由伪-XGMII总线42接收字的四元组及其相应控制字标志。STZ预编码器301产生用于每一四元组的四元组类型码。该四元组类型码类似于上述指示块的块类型的TYPE字,但是属于四元组。该四元组类型码是一种码,其值指示四元组的以下相互排他结构特性之一1)是否所述四元组唯一由信息字组成,2)是否所述四元组唯一由除EOP之外的控制字组成,3)是否SOP控制字出现在四元组中,和4)EOP控制字(如果有的话)在四元组中的位置。通过检查控制字标志能够简单地检测特性1)。
对于不是唯一由信息字组成的每一四元组,STZ预编码器301通过重新编码四元组中的每一字(如果有的话)压缩该四元组,所述四元组通过它的控制字标志指示为控制字。选择编码控制字的码具有4比特的相互汉明距离。重新编码SOP和EOP控制字是可选的,因为后来通过有效载荷字段发生器305丢弃这些控制字。STZ预编码器301另外附加四个控制字标志和四元组类型码到可能已经被压缩的四元组,以形成预编码的四元组,并经由41比特宽的总线310馈送该预编码的四元组到块发生器302。
块发生器302从STZ预编码器301接收相继对预编码的四元组并从它们形成8个字的块。在块发生器302中,解复用器303接收相继对预编码的四元组并将它们交替切换到经由41比特宽总线311和312连接到寄存器304相应输入端的输出端。
寄存器304并行输出预编码的四元组对。以有效地从其相应四元组类型码和控制字标记分离四元组的两部分输出预编码的四元组。寄存器304所接收的四元组对形成通过64比特宽总线313馈送到有效载荷字段发生器305的块BLK。该对对应于块的四元组类型码和控制字标志通过18比特宽总线314馈送到类型字发生器306。
类型字发生器306根据经由总线314接收的用于所述块的四元组类型码对确定块BLK的块类型,产生相应的TYPE字和经由8比特总线315馈送TYPE字到有效载荷字段发生器305。例如,当偶数编号四元组的四元组码指示该四元组唯一由信息字组成时,用于奇数编号四元组的四元组码指示EOP控制字T是四元组的第三个字,类型字发生器产生用于类型11块的TYPE字。作为另一个实例,当两个四元组码都指示相应四元组唯一由信息字组成时,类型字发生器产生TYPE字的特别附加值,诸如00。TYPE字的该特别值仅仅在编码器100内部使用以指示所述块是类型1块。TYPE字的该值并不插入到所产生用于发送的帧的有效载荷字段152中(参加图4B)。
当类型字发生器306确定所述块是类型1块时,它产生第一状态的主跳变MT,即在优选实施例中为01,并经由2比特总线316A馈送该主跳变到主跳变加扰器309。当类型字发生器306确定所述块是除类型1块之外的块时,它产生第二状态的主跳变MT,即在优选实施例中为10,并经由2比特总线316A馈送该主跳变到主跳变加扰器309。
在一个实施例中,主跳变加扰器306使用经1比特总线319由64比特加扰器307提供的加扰器比特,加扰从类型字发生器306接收的2比特主跳变,借此产生加扰的主跳变SMT,其中该SMT被经由2比特总线316B提供给帧装配器308。在一个实施例中,主跳变加扰器309使用64比特加扰器307提供的单个加扰器比特来加扰类型字发生器306产生的2比特主跳变的两个比特。在本发明的一种形式中,主跳变加扰器309对加扰器比特和主跳变的第一比特执行XOR运算,XOR运算的结果成为加扰的主跳变的第一比特,并对相同的加扰器比特和主跳变的第二比特执行XOR运算,第二XOR运算的结果成为加扰的主跳变的第二比特。主跳变加扰器309馈送该加扰的主跳变SMT到帧装配器308。
当有效载荷字段发生器305从类型字发生器306接收指示所述块是类型1块的TYPE字的特别值时,有效载荷字段发生器305采用经由总线313从块发生器302接收的块作为帧153的有效载荷字段152,该帧将从所述块中产生(参加图4B)。有效载荷字段152具有64比特的大小并唯一由信息字组成。
当有效载荷字段发生器305从类型字发生器306接收指示所述块不是类型1块的TYPE字的值时,有效载荷字段发生器305经由总线313传送从块发生器302所接收块的内容到帧156的有效载荷字段152的子字段158中,该帧将从该块产生(参见图4C),并插入TYPE字到有效载荷字段的子字段157中。在执行该传送时,不传送在块中出现的任何分组开始控制字或分组结束控制字到有效载荷字段以压缩该块。当不具有SOP或EOP控制字的块内容的大小小于56比特时,有效载荷字段发生器305将子字段158填充为56比特,例如在图7G中所示。这使得有效载荷字段152的总大小为64比特。有效载荷字段发生器305应用响应于TYPE字操作的64个3-输入数据选择器的组以便传送块内容到有效载荷字段。
有效载荷字段发生器305经由64比特总线317馈送它所产生的每个有效载荷字段PF到64比特加扰器307。
64比特加扰器307使用高阶多项式加扰器来加扰从有效载荷字段发生器305接收的有效载荷字段PF,以下将描述该加扰器的特征。如上所述,在设计唯一用于发送已经是随机的输入数据的编码器100的实施例中可以省略加扰有效载荷字段。64比特加扰器307经由64比特宽总线318馈送加扰的有效载荷字段SPF到帧装配器308。
帧装配器308附加加扰的主跳变SMT到加扰的有效载荷SPF,并经由66比特宽总线44馈送所产生的66比特帧到多路复用器34(图1)。加扰的主跳变优选地被附加到加扰的有效载荷字段的前面,但是可以可选地将它附加到加扰的有效载荷字段结束。
使用基于多项式的自同步加扰器加扰比特流在本领域中是已知的。在根据本发明一个实施例的编码器和编码方法中,加扰每帧150的有效载荷字段152(参见图4A),以便当发送帧时,在统计上DC平衡所产生的比特流并另外该比特流表现为随机。加扰有效载荷字段使解码器能够容易地在也要被加扰的2比特主跳变上进行同步,但是在一个实施例中每一比特利用单个加扰器比特来加扰。因此,在一个实施例中,加扰的主跳变总是10或01,从不是11或00,这样在每一帧的开始将总会存在跳变。帧的其他部分将不具有这种特性,因为在本发明的一种形式中帧中的所有其他比特是独立加扰的。通过以这种方式加扰主跳变,保留了在每一帧开始的信号跳变,和消除了通过发送重复的主跳变图案所产生的频谱峰。
对于给定的应用,选择多项式的抽头间隔优化加扰器正面临挑战。在根据本发明的一个实施例用于10Gb/s以太网编码器的加扰器的情况下,选择加扰多项式以满足以下要求所选的多项式必须使得在对于所有分组大小利用填充(spill-in)和溢出(spill-out)进行穷举的3错误测试下不违背以太网标准CRC32编码;多项式抽头间隔必须大于8以防止错误相乘降低TYPE字之间的汉明距离;以及多项式阶次应该大于57以防止恶意干扰并且小于64以最小化实现复杂度。
满足上述准则的多项式和满足绝大部分准则的附加多项式是优选的选择是x58+x19+x0和可替换的选择是x65+x18+x0。
在优选实施例中,使用64比特、自同步、使用优选多项式的并行加扰器183或307加扰所述块。在一个实施例中,加扰器183或307还用于加扰主跳变,不使用单独的主跳变加扰器186或309。在本发明的另一种形式中,通过重新使用来自64比特有效载荷加扰器183或307的一个加扰器比特执行成对地加扰,利用主跳变加扰器186或309加扰主跳变,其中使用一个加扰器比特(例如,使用该加扰器比特加扰有效载荷字段的第一比特)加扰主跳变的两个比特。在本实施例的一种形式中,作为一对来加扰主跳变的两个比特,而不是个别地进行加扰,主跳变加扰器186或309利用加扰器比特和主跳变的两比特执行XOR运算,或利用加扰器比特和主跳变的一个比特执行XOR运算,产生加扰的主跳变的第一比特,并翻转(invert)该第一比特以获得加扰的主跳变的第二比特。在本实施例中,加扰器186或309与传统加扰器的不同之处在于加扰器186或309不产生其自己的加扰器比特,将被加扰的每一比特不与不同的加扰器比特执行XOR运算。在本发明的另一个实施例中,主跳变加扰器186或309是单独的产生其自己的加扰器比特的自同步加扰器,并执行成对地加扰主跳变。在本实施例的一种形式中,单独的自同步加扰器186或309是相对短(例如,8比特或16比特)的加扰器。
图9A所示为用于解码通过根据本发明一个实施例的所述编码方法和编码器所产生帧的解码方法的实例270的流程图。
所述方法在处理271中开始。在处理272中,经由总线45(图1)从解复用器36接收帧。在处理273中,解扰加扰的帧的有效载荷字段和加扰的主跳变。如果编码器100没有加扰所述有效载荷(参见上述),则可以省略解扰有效载荷的处理。在处理274中,对帧的主跳变执行测试以确定是否该主跳变位于第一状态。在优选实施例中第一状态是01。当测试结果是“是”时,这指示帧的有效载荷字段唯一由信息字组成,执行前进到以下将描述的处理277。当测试结果是“否”时,执行前进到处理275。
处理274中的结果“否”指示帧的有效载荷字段不唯一由信息字组成,所以包括TYPE字。在处理275中,从有效载荷字段中提取TYPE字。
在处理276中,使用TYPE字所提供的有关有效载荷字段结构的信息来扩展帧的有效载荷字段。扩展有效载荷字段与压缩相反,其中通过编码器100应用压缩给从中产生帧的块。因此,当扩展有效载荷字段时,重新编码所述编码的控制字以产生8比特控制字。另外,当分组开始或分组结束出现在有效载荷字段中时,分别在有效载荷字段中插入分组开始控制字或分组结束控制字。如上所述,TYPE字指示编码的控制字占用有效载荷字段的哪一部分,以及在有效载荷字段中分组开始或分组结束的位置。以下参考图9B更详细地描述在处理276中执行的处理。执行然后前进到处理277。
在处理277中,采用有效载荷字段作为接收数据的块。
在处理278中,执行测试以确定是否已经处理所有帧。当测试结果是“是”时,执行前进到结束处理279。当测试结果是“否”时,执行经由处理280返回到处理272,以便能够处理下一帧。
现在将参考图9B描述以上参考图9A所描述方法的处理276。
图9B所示为根据本发明的一个实施例,在图9A所示方法的处理276中执行处理实例的流程图。
执行在处理291中开始。
在处理293中,执行测试以确定是否TYPE字指示任何编码的控制字出现在有效载荷字段中,即是否编码器100从类型2块或类型4块到类型11块中得出所述有效载荷字段。当测试结果是“否”时,执行前进到以下将描述的处理296。当测试结果是“是”时,执行前进到处理294。
在处理294中,使用TYPE字识别一个或更多编码的控制字所占用的有效载荷字段部分,以及编码的控制字的数量。从图7A-7L能够看出从每一块类型得出的帧中编码的控制字在数量上不同,但总是连续的。但是,在某些帧中,编码的控制字邻接有效载荷字段的首部,而在其他帧中,编码的控制字邻接有效载荷字段的结束。
在处理295中,解码通过处理294所识别的编码控制字以产生原始的控制字。
在处理296中,执行测试以确定是否TYPE字指示有效载荷字段中的分组开始或结束,即是否编码器100从类型3到类型12块得出有效载荷字段。当测试结果是“否”时,这指示从类型2块得出有效载荷字段。在这种情况下,执行前进到以下将描述的处理299。当测试结果是“是”时,执行前进到处理297。
在处理297中,根据TYPE字识别有效载荷字段中分组开始或分组结束的位置。
在处理298中,在有效载荷字段中插入SOP控制字S或EOP控制字T。插入控制字,即是否插入控制字S或T,以及插入SOP或EOP控制字的有效载荷字段中的位置都是通过TYPE字来定义。执行然后前进到处理299。
在处理299中,执行返回到主程序。
在处理295中执行的控制字解码和处理298中执行的控制字插入的任何之一或二者插入8比特控制字到有效载荷字段中。这填充了先前由TYPE字所占用的有效载荷字段中的空间,并且在部分帧中,填充比特。
图10A所示为解码器120第一实施例的方框图。解码器120包括帧解码器191、64比特并行解扰器192、类型字提取器193、块发生器194、块顺序检测器195、和主跳变解扰器196。
帧解码器191经由66比特总线45(图1)从解复用器36接收每一66比特帧。帧解码器191读取位于帧前面的加扰的主跳变SMT,并馈送加扰的主跳变SMT到主跳变解扰器196。帧解码器191馈送构成加扰的有效载荷字段SPF的剩余64比特到解扰器192。
解扰器192是自同步多项式解扰器,它使用与在编码器100中加扰所述有效载荷字段的加扰器183(图8A)相同的多项式。解扰器192优选为并行的解扰器以减小等待时间。解扰器192解扰从帧解码器191接收的加扰的有效载荷字段SPF,并馈送所产生的有效载荷字段PF到类型字提取器193和块发生器194。在特别为解码其中没有对有效载荷字段进行加扰的帧而设计的解码器中,能够省略解扰器192。
主跳变解扰器196使用64比特解扰器192所提供的解扰器比特,解扰从帧解码器191接收的加扰的主跳变SMT,借此产生(解扰的)主跳变MT。主跳变解扰器196馈送主跳变MT到类型字提取器193,块顺序检测器195、和块发生器194。
类型字提取器193从解扰器192接收有效载荷字段PF,并另外从主跳变解扰器196接收主跳变MT。类型字提取器193只在主跳变位于第二状态时才操作,这对应于其有效载荷字段不唯一由信息字组成的帧。类型字提取器193从有效载荷字段152的子字段157(图4C)中提取TYPE字,并馈送该TYPE字到块发生器194和块顺序检测器195。
块发生器194从解扰器192接收有效载荷字段PF,从类型字提取器193接收TYPE字以及从主跳变解扰器196接收主跳变MT。块发生器194响应于所述主跳变操作。当主跳变位于第一状态时,块发生器194采用有效载荷字段PF作为接收数据的块。当主跳变位于第二状态时,块发生器194使用类型字提供的有关有效载荷字段结构的信息来扩展有效载荷字段。扩展有效载荷字段与压缩相反,其中通过编码器100应用压缩给从中产生所述帧的块。因此,当扩展有效载荷字段时,重新编码所述编码的控制字以产生8比特控制字。另外,当分组开始或分组结束出现在有效载荷字段中时,分别在有效载荷字段中插入分组开始控制字或分组结束控制字。如上所述,TYPE字指示编码的控制字占用有效载荷字段的哪一部分,以及在有效载荷字段中分组开始或分组结束的位置。最后,块发生器194采用扩展之后的有效载荷字段作为接收数据的块。
块发生器194经由总线43馈送接收数据的块到4×8b/10b编码器38(图1)。
块顺序检测器195从类型字提取器193接收TYPE字以及从主跳变解扰器196接收主跳变MT。帧的主跳变和帧的TYPE字,当存在时,共同定义该帧是哪种类型的帧。如上所述,所述帧能够是四种不同类型的其中之一,即一种帧是唯一由信息字D组成(从类型1块产生),一种帧是包括分组开始S的帧(从类型3或类型4块产生),一种帧是包括分组结束T的帧(从类型5到类型12块的其中之一产生)以及一种帧是唯一由控制字Z组成的帧(从类型2块产生)。编码器100以预定的顺序产生四种不同类型的帧,即S,D,...,D,T,Z,...Z,S,D,...,D,T,Z,...,Z等等。所述帧必须通过解码器120以相同的预定顺序接收。块顺序检测器195监控所接收帧类型的顺序,当TYPE字和主跳变指示所述帧是一种扰乱预定顺序的帧时,产生错误标志ERR。块发生器194响应于所述错误信号,添加错误控制字E到从该帧产生的接收数据的块。该错误控制字使得MAC12(图1)无效该块形成其一部分的分组。
图10B所示为解码器120第二实施例的方框图。解码器120包括帧解码器320、64比特并行解扰器321、有效载荷字段解码器322、类型字解码器323、STZ解码器324、多路复用器325、和主跳变解扰器326。
帧解码器320通过66比特宽总线45连接到解复用器36的输出端(图1),从该输出端帧解码器接收从接收的比特流中恢复的每一帧。帧解码器320读取位于帧前面的加扰的主跳变SMT,并经由2比特总线328馈送加扰的主跳变SMT到主跳变解扰器326。帧解码器320经由64比特总线331馈送构成该帧的加扰有效载荷字段的剩余64比特到解扰器321。
解扰器321是自同步多项式解扰器,它使用与在编码器100中加扰器307(图8B)用来加扰有效载荷字段相同的多项式。解扰器321优选是并行解扰器以减小等待时间。解扰器321解扰从帧解码器320所接收的加扰的有效载荷字段,并经由64比特总线332馈送所产生的有效载荷字段到有效载荷字段解码器322。另外,通过解扰器321输出的最接近于有效载荷字段首部的8比特,即当TYPE字存在于有效载荷字段152中时,表示该TYPE字的比特(图4A),另外经由8比特总线333被馈送到类型字解码器323。
主跳变解扰器326使用经1比特总线329由64比特解扰器321提供的解扰器比特,解扰从帧解码器320接收的加扰的主跳变SMT,借此产生(解扰的)主跳变MT。主跳变解扰器326经由2比特总线330馈送主跳变MT到类型字解码器323。
类型字解码器323从主跳变解扰器326接收主跳变MT,并另外从解扰器321接收8比特字,其中部分字是TYPE字。当主跳变是10时,这指示有效载荷字段不唯一由信息字组成,经由总线333接收的8比特字是从有效载荷字段所提取的TYPE字。类型字解码器323截取TYPE字成第一4比特,并经由4比特总线334馈送该截取的TYPE字到有效载荷字段解码器322。可替换地,可以在不截取的情况下使用TYPE字。
当主跳变是01时,这指示有效载荷字段唯一由信息字组成,类型字解码器323对经由总线333接收的8比特字不执行解码。替代地,类型字解码器产生附加截取的TYPE字,该字指示有效载荷字段唯一由信息字组成。应该注意到,即使利用附加截取的TYPE字指示有效载荷字段唯一由信息字组成,但是所述组TYPE字对于TYPE字来说足够的小,从而该TYPE字将在解码器执行的内部处理中通过4比特码可靠地表示。
类型字解码器323另外包括类似于上述块顺序检测器195(图10A)的块顺序检测器(未示出)。该块顺序检测器使用主跳变MT和TYPE字跟踪帧类型的顺序,当帧类型的顺序偏离上述的预定顺序时,经由连接336发送错误信号ERR到STZ解码器324。
有效载荷字段解码器322从解扰器321接收有效载荷字段,并另外从类型字解码器323接收相应的截取TYPE字。有效载荷字段解码器322检查该截取的TYPE字以确定有效载荷字段的结构,即有效载荷字段的哪些数据单元是信息字,哪些数据单元是编码的控制字和在该有效载荷字段中分组开始或分组结束(如果有的话)的位置。响应于通过截取的TYPE字所定义的结构,有效载荷字段解码器322传送有效载荷字段的内容到8字、64比特块。响应于TYPE字操作的一组64个3-输入数据选择器能够用于此。
当TYPE字对应于类型3到类型12块时,有效载荷字段解码器322在块中通过截取的TYPE字所指示的位置将分组开始控制字S或分组结束控制字T插入到该块中。有效载荷字段解码器322经由总线336的72根导线中的64根馈送64比特块到STZ解码器324。有效载荷字段解码器322另外经由总线336的剩余8根导线馈送用于该块的一组8个控制字标志。该控制字标志指示块中的每一字是信息字还是控制字。有效载荷字段解码器322响应于截取的TYPE字,利用每一块选择馈送到STZ解码器324的该组控制字标志,因为所述块的块类型定义了该块的每一字是信息字还是控制字。
STZ解码器324响应于与块一起从有效载荷字段解码器322接收的8个控制字标志进行操作。STZ解码器324解码在块中每一编码控制字的编码以恢复原始的8比特控制字。经过解码的该块中的字通过指示该字是编码控制字的其相应控制字标志指示。
STZ解码器324通过传送块的第一4个字及其相应控制字标志到36比特总线337,以及传送该块的第二4个字及其相应控制字标志到36比特总线338来构造两个四元组。总线337和338并行地馈送四元组及其控制字标志到多路复用器325。
多路复用器325经由伪-XGMII总线43交替地馈送经由总线337和338接收的四元组及其相应控制字标志到4×8b/10b编码器38。
在一个实施例中,解扰器192或321还用于解扰所述加扰的主跳变,以及不使用单独的主跳变解扰器196或326。在本发明的另一种形式中,通过再使用来自64比特有效载荷解扰器192或321的一个解扰器比特成对地执行解扰,利用主跳变解扰器196或326解扰所述加扰的主跳变,其中一个解扰器比特(例如,用于解扰有效载荷字段的第一比特的解扰器比特)用于解扰加扰的主跳变的两个比特。在本实施例中,解扰器192或326与传统解扰器的不同之处在于解扰器192或326不产生其自己的解扰器比特,不是利用不同的解扰器比特解扰要解扰的每一比特。在本发明的另一个实施例中,主跳变解扰器196或326是独立的自同步解扰器,它产生其自己的解扰器比特,并成对地执行所述加扰的主跳变的解扰。在本实施例的一种形式中,单独的自同步解扰器196或326是相对短(例如,8比特或16比特)的解扰器。
根据一个实施例的本发明提供了当作为64b/66b编码(3.125%)实现时,具有非常低开销的编码器和编码方法。所述开销实质上低于8b/10b(25%)。根据本发明一种形式的编码器和编码方法应用自同步加扰器。其他编码方案需要周期性发送同步信息和复杂技术来初始化非自同步加扰器。根据本发明一个实施例的编码器和编码方法,当特别选择加扰器多项式以便不干扰以太网标准CRC-32编码时,为10Gb/s以太网提供了优良的错误检测特性。根据本发明一种形式的编码器和编码方法通过选择TYPE字和控制字具有4比特最小汉明距离提供了极佳的平均时间错误分组接受率(MTFPA)。在10-9的误比特率和10.3Gb/s比特率,根据一个实施例的编码器和编码方法具有与1Gb/s以太网近似相等的MTFPA,其在10-11的误比特率使用8b/10b线路码。根据本发明一种形式的编码器和编码方法只要获取足够的信息字就开始编码-特别是,在发送之前不需要缓冲整个以太网分组。根据本发明一个实施例的编码器和编码方法允许使用设计用于SONET OC-192发送机的现存激光器以10.0Gb/s的比特率发送以太网数据。现在能够采用基于根据本发明一种形式的编码器和编码方法的10Gb/s以太网标准,而不是必须等待开发能够在12.5G波特上调制的激光器。通过根据本发明的一个实施例加扰和解扰主跳变,保留在每一帧开始的信号跳变,消除通过发送重复的主跳变图案而产生的频谱峰。
尽管本公开详细描述本发明的示例性实施例,但是应该明白本发明并不局限于精确描述的实施例,而是在所附权利要求所定义本发明的范围之内可以实施各种修改。尽管这里已经示例并描述了具体实施例,但是本领域的普通技术人员将会理解大量替换和/或等同实现可以替换所示和描述的具体实施例,而不背离本发明的范围。本申请预定覆盖这里所讨论具体实施例的任何改编或变型。所以,本发明预定为仅仅通过权利要求及其等同物来限制。
权利要求
1.一种用于将信息字的分组编码到用于发送的帧中的方法,该方法包括接收输入数据的块,该输入数据包括控制字和信息字的分组,该分组具有之前存在该控制字中一些控制字的开始和之后存在其他控制字的结束,所述块小于分组;确定何时块唯一由信息字构成;当该块唯一由信息字构成时,加扰具有第一含义的主跳变并将该已加扰的主跳变附加到所述块形成其中一帧;当该块不是唯一由信息字构成时压缩该块以容纳TYPE字;产生具有指示所述块结构特性的值的TYPE字,并插入该TYPE字到该块中;以及加扰具有与第一含义相对的第二含义的主跳变,并将该已加扰的主跳变附加到该块中以形成其中一帧。
2.根据权利要求1所述的方法,其中,所产生的TYPE字具有指示以下所述块结构特性其中之一的值(a)在该块中分组开始的位置,(b)在该块中分组结束的位置,和(c)该块唯一由控制字组成。
3.根据权利要求1所述的方法,进一步包括在发送块之前可恢复地加扰该块。
4.根据权利要求1所述的方法,其中,所述主跳变是2比特值01或10。
5.根据权利要求4所述的方法,其中,基于单个加扰器比特,加扰所述主跳变的两个比特,所述加扰的主跳变是2比特值01或10。
6.一种用于将输入数据的块编码到用于发送的相应帧中的编码器,该输入数据包括控制字和信息字的分组,该分组具有之前存在该控制字中的一些控制字的开始和之后存在其他控制字的结束,所述块小于分组,该编码器包括类型字发生器,用于接收块和产生用于该块的TYPE字,该TYPE字具有指示块结构特性的值;主跳变发生器,用于响应于所述TYPE字操作并当该TYPE字指示所述决唯一由信息字组成时,产生第一含义的主跳变,否则产生与第一含义相对的第二含义的主跳变;第一加扰器,用于加扰所述主跳变,借此形成加扰的主跳变;有效载荷字段发生器,用于响应于所述TYPE字操作,并当该TYPE字指示所述块唯一由信息字组成时,采用所述块形成对应于该块的帧的有效载荷字段,否则压缩所述块和在该块中插入TYPE字以形成有效载荷字段;以及帧装配器,用于附加该已加扰的主跳变到所述有效载荷字段以形成帧。
7.根据权利要求6所述的编码器,其中,所产生的TYPE字具有指示以下所述块结构特性其中之一的值(a)是否该块唯一由信息字组成,(b)在该块中分组开始的位置,(c)在该块中分组结束的位置,和(d)是否该块唯一由控制字组成。
8.根据权利要求6所述的编码器,其中,所述第一加扰器还被配置成加扰所述有效载荷字段。
9.根据权利要求6所述的编码器,还包括在有效载荷字段发生器和帧装配器之间插入的用于加扰有效载荷字段的第二加扰器。
10.根据权利要求9所述的编码器,其中,所述第一加扰器是16比特加扰器。
11.根据权利要求9所述的编码器,其中,所述第一加扰器是8比特加扰器。
12.根据权利要求6所述的编码器,其中,所述主跳变是2比特值01或10,该主跳变的两个比特都基于单个加扰器比特进行加扰,以及加扰的主跳变是2比特值01或10。
13.根据权利要求12所述的编码器,其中,所述加扰器比特由加扰有效载荷字段的第二加扰器提供。
14.一种解码数据的帧的方法,该帧是一组帧中的其中一个帧,它表示信息字的分组和另外表示位于分组之前和之后的编码的控制字,这些帧中的每一帧包括已加扰的主跳变和有效载荷字段,该有效载荷字段是以下之一(a)由该信息字中的一些唯一组成,和(b)包括识别有效载荷字段结构的TYPE字,该方法包括解扰所述已加扰的主跳变,当有效载荷字段由该信息字中的一些唯一组成时该解扰的主跳变位于第一状态,否则其位于第二状态;当所述解扰的主跳变位于第一状态时,采用有效载荷字段作为接收数据的块;和当所述解扰的主跳变不位于第一状态时从所述有效载荷字段提取TYPE字;响应于该TYPE字扩展该有效载荷字段;以及采用扩展之后的有效载荷字段作为接收数据的块。
15.根据权利要求14所述的方法,其中所述有效载荷字段被加扰;和所述方法还另外包括解扰该有效载荷字段。
16.根据权利要求14所述的方法,其中,所述已加扰的主跳变是2比特值01或10。
17.根据权利要求16所述的方法,其中,基于单个解扰器比特解扰已加扰主跳变的两个比特,其中该解扰的主跳变是2比特值01或10。
18.一种解码数据的帧的解码器,该帧是一组帧中的一帧,它表示信息字的分组并且还另外表示位于该分组之前和之后的编码的控制字,所述帧中的每一帧包括已加扰的主跳变和有效载荷字段,该有效载荷字段是以下之一(a)由该信息字中的一些信息字唯一组成,和(b)包括识别有效载荷字段结构的TYPE字,该解码器包括帧解码器,用于接收帧和将该帧分离成已加扰的主跳变和有效载荷字段;第一解扰器,用于解扰所述已加扰的主跳变,当所述有效载荷字段由该信息字中的一些信息字唯一组成时,该解扰的主跳变位于第一状态,否则其位于第二状态;类型字提取器,被连接用于接收有效载荷字段和解扰的主跳变,并且当所述解扰的主跳变位于第二状态时,执行操作以从所述有效载荷字段中提取TYPE字;和块发生器,被连接用于接收有效载荷字段、TYPE字和解扰的主跳变,该块发生器进行操作以便当所述解扰的主跳变位于第一状态时,采用所述有效载荷字段作为接收数据的块;和当所述解扰的主跳变位于第二状态时,响应于所述TYPE字扩展有效载荷字段以及采用扩展后的有效载荷字段作为接收数据的块。
19.根据权利要求18所述的解码器,其中所述有效载荷字段被加扰;和所述解码器另外包括第二解扰器,它被连接用于从所述帧解码器接收有效载荷字段。
20.根据权利要求19所述的解码器,其中,所述第一解扰器基于所述第二解扰器所提供的单个解扰器比特来解扰所述加扰的主跳变。
全文摘要
一种用于将信息字的分组编码到用于发送的帧中的方法,包括接收输入数据的块,该块包括控制字和信息字的分组。当所述块唯一由信息字组成时,加扰具有第一含义的主跳变并将它附加到该块中以形成一帧。当所述块不是唯一由信息字组成时压缩该块以容纳TYPE字;具有指示块结构特性的值的TYPE字被产生并被插入到该块中;以及加扰具有与第一含义相对的第二含义的主跳变并将它附加到该块中以形成一帧。
文档编号H04L25/49GK1905541SQ20061008449
公开日2007年1月31日 申请日期2006年5月24日 优先权日2005年5月24日
发明者P·A·塔勒 申请人:阿瓦戈科技通用Ip(新加坡)股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1