具有高效的检错码重算的循环冗余检验的制作方法

文档序号:7505520阅读:161来源:国知局
专利名称:具有高效的检错码重算的循环冗余检验的制作方法
技术领域
本发明涉及一种数据通信检错法。
背景技术
一个检错码为一个值,它示出在一数据字段中的改变。循环冗余检验(CRC)为一种检错方法,其基于在一个数据信息中(例如,数据包、帧或单元)的比特模式的变换。CRC算法的基本概念只是将信息视为一个二进制数,将其除以另一个固定的二进制数,并且以所得的余数添加到该信息的结尾上。该余数为检错码。在CRC检错中不会使用该商数。该除数为一多项式,该多项式的阶取决于分配给该余数的比特数,而且该多项式典型地被称为生成多项式。
CRC计算可以是计算密集的,尤其是对于较长信息的CRC计算而言。在信息长度为固定以及要求高速的情况下,CRC通常利用查找表来计算。在这些情况下,利用查找表可以以更多的存储器为代价使计算简易。
在检错中使用CRC具有六个基本的步骤。首先,发送器计算一个CRC值。其次,该发送器将这一CRC值附加到数据信息。第三,发送器发送该差错编码数据信息。第四,接收器接收该差错编码信息。第五,接收器基于接收到的数据包的数据部份计算一个CRC值。第六,接收器比较其CRC值与发送器的在差错编码数据信息中的CRC值。如果两者匹配,则该接收到的信息没有差错的概率相当高。该概率足够高以致在该信息中的未检出的差错一定要包含两个以上的比特,而且通常可以通过其他的方法辨认出该差错。应该注意的是可以对整个差错编码数据计算二进制校验和作为第五步骤的另一种做法。
CRC通常在异步传递模式(ATM)网路中用作纠错。ATM网路为包交换网路,而且可适用的规格提供若干单元类型。ATM单元为五十三字节,其包括一个5字节的标题以及48字节的信息。除了ATM网路之外,CRC还通常在其他的网路中用作纠错。举例来说,CRC-16形式用于X.25、SDLC/HDLC(同步数据链路控制/高级数据链路控制)以及XMODEM通信。CRC-32形式用于以太网、PKZIP压缩以及FDDI(光纤分布式数据接口)网路。
ATM网路包括系统管理功能以达到有效率的内部操作。在系统管理之中包括了许多功能,这些功能聚在一起称为“操作及维护”(OAM)。OAM包括故障管理、性能管理、配置管理、会计管理、安全管理及流量管理。这些功能通常独立地以及根据限定的程序操作。OAM单元可以在一个ATM网路的不同点之处产生、插入、处理、监控、路由及终止。
ATM单元的一种型式为OAM单元。图1A示出一OAM单元100的格式。OAM单元100包括一个5字节的标题110(如同所有的ATM单元)以及48字节的有效负载170,该有效负载由一个4比特的OAM单元类型120、一个4比特的功能类型130、一个45字节的功能专用字段140、一个6比特备用空间150以及一个10比特的检错码(EDC)字段160组成。OAM故障管理单元用于警报监视、连续性检查以及回送测试。
检错码(诸如在EDC字段160中的检错码)有助于检验该有效负载在传输各自的数据信息期间是否已经损坏。EDC字段160为一使用生成多项式X10+x9+x5+x4+x+1(即,模2除数11000110011)的CRC-10检错码。该CRC-10值以有效负载170(除了EDC字段160以外)来计算。通常,要计算48字节有效负载的CRC-10,处理器将需要一个256字节的查找表(储存于随机存取存储器之中)以及大约48HN个指令或操作,其中N为计算CRC-10一个字节所需的指令数量(对于Intel 8051微控制器来说大约为12)或操作数量。由此可见CRC计算可以为一相当大的工作量,尤其对使用慢的微处理器的嵌入式系统来说是如此。
ATM通信沿着虚拟信道(VC)传送。在一给定通信对话期间所需的频宽较在一单个虚拟信道中可用的频宽为大时,若干虚拟信道可以集束成一虚拟路径(VP)。一VC或VP的端到端布置称为一连接,这意味着ATM通信实际上在虚拟信道连接(VCCs)或虚拟路径连接(VPCs)上进行。
ATM操作及管理提供许多方法去测试及控制VCCs以及VPCs。回送为一故障管理功能,其用来测试在一VCC或VPC之内的连接的完整性。回送功能可用于查找在一VCC或VPC中的故障的位置。回送还可以用来测量来回旅程单元的传递延迟。在回送测试中,一个OAM单元在某一点处插入一VCC或VPC。当单元到达该VCC或VPC的端点时,该端点将该OAM单元回送(也就是,在该VC或VP的反向流中返回)。
以下详述一个回送单元的布置。该单元类型120为0001,表示其为一OAM单元。一个回送单元的功能类型130为1000。图1B所示为功能专用字段140的格式。该功能专用字段140包括一个1字节的回送指示字段141、一个4字节的相关性标签142、一个15字节的回送位置字段143、一个15字节的源识别号字段144以及10字节的未使用空间145。回送指示字段141表示回送是否已发生。回送指示字段141的最低有效位141(″回送指示位″)初始值设为1。一旦回送,回送指示位即被重置到0,表示该单元已被回送。相关性标签142使在同一连接内的有关的OAM单元被识别(相互关联)而使该单元被唯一地识别。回送位置字段143为一可选择字段,其用来识别回送点。源识别号字段144为一可选择字段,其使一发信方可以识别其本身的单元。
ATM规格已经改进以便有更高的速度以及更大的带宽。虽然处理效率对于使ATM操作达到最高点来说总是很重要,但更高的速度以及更大的带宽把更大的需求量放在单元处理上。


以下将会通过例示性的而不是限制性的实施例并结合附图来描述本发明,附图中相同的标记表示相同的组成部分。
图1A所示为一根据现有技术的OAM单元的图表;图1B所示为一根据现有技术的OAM回送单元的功能专用字段的图表;图2所示为一根据本发明的网路的图表;图3所示为一根据本发明的装置的框图;以及图4所示为一根据本发明的高效检错码重算方法的流程图。

发明内容

具体实施例方式
遍及本叙述的实施例以及所示的例子应该被认为是例示性的,而不对本发明的装置及方法起限制作用。
本发明的系统现在参照图2,所示为一根据本发明的网路200的图表。该网路包括一个第一端点210、一个第二端点220以及云250。第一端点210将被称作为″发信端点″。第二端点220将被称作为″回送端点″。在云250里面可以有任何数目的装置,包括处理器230、240。
网路200的拓扑非常普通并且与大部分网路协议及标准相容。端点210、220以及处理器230、240可以是硬件及软件的组合,并且可以是,例如路由器、桥接器、交换器、集线器、计算机或者其他类型的可以与网路连接并一起运作的装置。网路200可以使用诸如ATM及以太网这样一些协议,并且可以使用协议层或组合。
现在参照图3,所示为一根据本发明的装置300。装置300包括处理器310、存储器320以及输入输出接口330。装置300可为半导体集成芯片,或者可为诸如桥接器或计算机这样的装置,该装置结合具有处理器310、存储器320以及输入输出接口330的一个或多个半导体芯片。装置300可以是,例如微控制器、数字信号处理器或者专用集成电路(ASIC)。存储器320可以与处理器310结合或者并入处理器310,而且可以是易失性或非易失性存储器。
本发明的方法现在参照图4,所示为对在数据信息中的原检错码作高效重算的方法的流程图。该方法可以利用网路200中的装置300来实行。该具有原来计算的检错码的数据信息将被称作为“原始数据信息”,以便与其经修正后的形式相区别。数据信息经修正后的形式将被称作为“经修正的数据信息”。该数据信息的有效负载及检错码成分将会以相同的方式来参照。
产生原始数据信息包括三个步骤。首先,在发信端点210产生原始有效负载。其次,获得原始检错码。原始检错码具有根据使用原始有效负载的检错公式来求出的值。用数学术语来说,可以说该原始检错码根据方程式Co=F1(G,Po)来求出,其中Co为该原始检错码,F1()为该检错公式,Po为该原始有效负载以及G为该生成多项式。F1为将原始信息多项式Po除以该生成多项式G所得的余数。在ATM OAM单元的情况下,该检错公式为CRC-10。作为替代的办法,该检错公式可以为另一类型的循环冗余检验,或者另一检错公式,诸如分布校验和。本发明很适合于诸如CRC这样的检错模式,CRC使用余数来检错。该原始检错码可以通过计算使用原始有效负载的公式,或者从一由有效负载值的表以及相应的预先计算的检错码来获得。在第三个步骤中,通过将该原始有效负载与该原始检错码结合来产生该原始数据信息。在一个ATM OAM单元中,该原始检错码被插进EDC字段160之内,重写先前在该字段中的零。该发信端点220然后可以传送原始数据信息。
在本发明方法开始后(步骤405),在回送端点220处接收到该原始数据信息(步骤410)。在该原始数据信息被装置300接收到后,装置300从该原始数据信息中抽取原始有效负载(步骤415)。用装置300可以得到的原始有效负载,该装置从该原始有效负载获得经修正的有效负载。该经修正的有效负载可以使用一有效负载变换公式来算出。用数学术语来说,可以说该经修正的有效负载根据方程式PM=F2(Po)来求出,其中PM为该经修正的有效负载以及F2()为一有效负载变换公式。该有效负载变换公式可以包括,例如改变该原始有效负载的一位或多位的值。在ATM OAM回送单元的情况下,该变换公式包括将回送指示字段141的回送位复位。事实上,在信息中改变一位的行为相当于(在数学上)将一固定多项式加到接收到的信息多项式。因此,PM=F2(PO)=PO+PFIXED,其中PFIXED为一个由发生位改变的项组成的固定多项式。因为多项式算术是模2运算,将两个多项式相加等价于将它们相应的二进制表达式作异或运算。除此之外,将一位从1改到0或从0改到1的结果同样是多项式加法。
接下来,装置300从该原始数据信息抽取原始检错码(步骤425)。然后可以使用一修正公式从该原始检错码获得一经修正的检错码(步骤430)。用数学术语来说,可以说该经修正的检错码CM=F3(Co)。该修正公式不同于该检错公式,因此F3(x)≠F1(x),但是F3(Co)=F1(PM)。计算该修正公式将比计算该原始检错码或者参照一查找表所涉及的步骤为少。因此,根据本发明来处理数据信息所需的时间可以大大地少于典型的方法。
修正公式的使用是与典型的方法的重大差别,而且使到检错码重算可以快于使用检错公式。该修正公式由该检错公式以及该有效负载变换公式的可预测性得来。无需使用该原始有效负载或该经修正的有效负载就可从该修正公式获得该经修正的检错码。因此PM及Po不是F3()中的变数。此处该有效负载变换公式包括该原始有效负载的预定位的改变,该修正公式可以包括将该原始检错码与一预定的修正值作异或运算。记得PM=F2(PO)=PO+PFIXED。所考虑的值为该变换信息的CRC-10,即CRC(PM)=F1(PM)=F1(Po+PFIXED)。在此,可以利用多项式在一字段上的一重要特性,即是,该计算余数的操作(也就是F1)满足加法分配律,因此CRC(PM)=F1(PM)=F1(Po+PFIXED)=F1(Po)+F1(PFIXED)=Co+CFIXED。ATM OAM回送功能的情况下,该修正公式包括将该原始检错码与CFIXED值0H2F9的二进制表达式 作异或运算。
另一与典型的方法有差别之处为该原始有效负载的完整性检查是可选的。通过省略该有效负载的完整性检查步骤,可以去除相当多的处理时间。虽然这一省略会损失若干检错精度,但实际上带来的影响很小,尤其在回送的情况下。实际上,当数据信息回送后,该信息典型地会被一随后的接收器检查,诸如发信端点210。随后的接收器会执行一正常的数据信息差错检查。通常,这一差错检查的目的是找出该数据信息在回送后有否出现任何差错。然而,如果不在回送端点220测试该有效负载的完整性,藉由随后的接收器的完整性检查,将会示出该数据信息在开始发送之后的任何时候,而不只是在其被回送之后有否出现差错。
在该有效负载以及该检错码被修正后,可用该经修正的有效负载及该修正的检错码构成经修正的数据信息(步骤435)。最后,就可以传送该经修正的数据信息(步骤440)以及结束该方法(步骤495)。
必须认识到的是若干步骤的具体次序及分隔可以改变而不影响该方法的结果。举例来说,步骤425可以与步骤415结合。另一个例子为,步骤415可以放在步骤425之前。
可以注意的是,回送类型功能很适合于本发明,因为该些功能典型地涉及将在原始数据信息中的仅仅少许位(乃至仅仅一位)的改变。然而,本发明也可以用于任何数据包或码字,其中的纠错/检错在一个步骤中预先计算好以及然后在一随后的步骤中需要将原始数据(可能在软件中)的一部份作可选的修正。数据包路由器将成为这样的一个例子,其中部份信息(可能是源标题或目的标题)会利用一个表来改变成其它已知的值。如果标题在已知的或一组标准的比特位置中,则CRC32值的改变可以预先计算好,无需以整个信息来计算CRC32。另一种情况涉及到在硅上的Reed-Solomon引擎,其为一给定的数字用户专线(DSL)帧计算码字。随后的对DSL帧作出的改变将需要重新计算代码字比特,目的是诸如在DSL上的信道化语音。如同上述,Reed-Solomon码字可以直接修正,如果在原始信息中的已知比特位置被改变。只需要将目前的CRC值与一个值作异或运算就可获得新的CRC值,该值是为在信息中的一组给定的比特改变而预先计算好的。
虽然已经示出及叙述了本发明的例示的实施例,但对于本领域的一般技术人员来说就会明白,在不违反本发明的精神下,可以对本文所述的发明作出许多改变、修改或者变更。因而所有的这些改变、修改或者变更应该被视为在本发明的保护范围之内。
权利要求
1.一种循环冗余检验方法,所述方法对在一原始数据信息中的原始检错码作高效的重算,所述原始数据信息进一步包括一原始有效负载,所述原始检错码包括一值,所述值根据一检错公式来求出,所述检错公式使用所述原始有效负载且具有第一数目的步骤,其特征在于所述方法包括以下步骤接收所述原始数据信息(410),使用一有效负载变换公式(415、420)从所述原始有效负载获得一经修正的有效负载,使用一修正公式从所述原始检错码获得一经修正的检错码(425),使用所述修正公式具有第二数目的步骤,以及由所述经修正的有效负载及所述经修正的检错码构成一经修正的数据信息(435)。
2.根据权利要求1所述的方法,其特征在于,所述修正公式不同于所述检错公式,而且无需使用所述原始有效负载或所述经修正的有效负载就可从所述修正公式获得所述经修正的检错码。
3.根据权利要求1所述的方法,其特征在于所述检错公式包括一循环冗余检验,在获得所述经修正的有效负载的步骤中使用的所述有效负载变换公式包括将所述原始有效负载的一位或多位的值改变,以及在获得所述经修正的检错码的步骤中使用的所述修正公式包括将所述原始检错码与一预定的修正值作异或运算。
4.根据权利要求1所述的方法,其特征在于,所述原始数据信息包括回送信息,所述方法进一步包括以下的步骤产生所述原始有效负载,使用所述原始有效负载从所述检错公式获得所述原始检错码,以及通过将所述原始有效负载与所述原始检错码结合来产生所述原始数据信息。
5.根据权利要求1所述的方法,其特征在于,所述原始检错码包括一值,所述值用来示出一在一原始有效负载中的改变,所述原始检错码根据方程式Co=F1(Po)来求出,其中Co为所述原始检错码,F1()为一检错公式以及Po为所述原始有效负载,所述经修正的有效负载根据方程式PM=F2(Po)来求出,其中PM为所述经修正的有效负载以及F2()为一有效负载变换公式,在获得所述经修正的有效负载后,所述方法进一步包括提供一修改公式F3(),以及以CM=F3(Co)的形式计算所述经修正的检错码,其中F3(Co)与F1(PM)所得的结果相同,而且PM及Po不是F3()中的变数。
6.一种循环冗余检验装置,所述装置对在一原始数据信息中的原始检错码作高效的重算,所述原始数据信息进一步包括一原始有效负载,所述原始检错码包括一值,所述值根据一检错公式来求出,所述检错公式使用所述原始有效负载且具有第一数目的步骤,其特征在于所述装置包括处理器(310),存储器(320),所述存储器具有包括机器可读指令的计算机程序,以使所述处理器可以接收所述原始数据信息(410),使用有效负载变换公式(415、420)从所述原始有效负载获得经修正的有效负载,使用修正公式从所述原始检错码获得经修正的检错码(425),所述修正公式具有第二数目的步骤,以及用所述经修正的有效负载及所述经修正的检错码构成经修正的数据信息(435)。
7.根据权利要求6所述的装置,其特征在于,所述修正公式不同于所述检错公式,而且无需使用所述原始有效负载或所述经修正的有效负载就可从所述修正公式获得所述经修正的检错码。
8.根据权利要求6所述的装置,其特征在于所述检错公式包括一循环冗余检验,所述有效负载变换公式包括将所述原始有效负载的一位或多位的值改变,以及所述修正公式包括将所述原始检错码与一预定的修正值作异或运算。
9.根据权利要求6所述的装置,其特征在于,所述原始数据信息包括一回送信息,所述存储器进一步具有指令以使所述处理器可以产生所述原始有效负载,使用所述原始有效负载从所述检错公式获得所述原检错码,以及通过将所述原始有效负载与所述原始检错码结合来产生所述原始数据信息。
10.根据权利要求6所述的装置,其特征在于,所述原始检错码包括一值,所述值用来示出在一原始有效负载中的改变,所述原始检错码根据方程式Co=F1(Po)来求出,其中Co为所述原始检错码,F1()为一检错公式以及Po为所述原始有效负载,所述经修正的有效负载根据方程式PM=F2(Po)来求出,其中PM为所述经修正的有效负载以及F2()为一有效负载变换公式,所述计算机程序进一步包括机器可读指令以使所述处理器可以获得修正公式F3(),以及以CM=F3(Co)的形式计算所述经修正的检错码,其中F3(Co)与F1(PM)所得的结果相同,而且PM及Po不是F3()中的变数。
全文摘要
本发明实现一种高效的检错码重算的方法,所述方法用一原始数据信息(410),该信息包括有效负载(415)以及检错码(425)。该检错码包括一值,该值使用有效负载根据检错公式来求出。有效负载可利用有效负载变换公式来修正(420),检错码从原始检错码重算(430),而不是从经修正的有效负载重算。检错码重算公式不同于原先用来获得检错公式的公式,而且无需使用原始有效负载或者经修正的有效负载。
文档编号H03M13/09GK1685619SQ03823527
公开日2005年10月19日 申请日期2003年5月28日 优先权日2002年8月2日
发明者D·J·纽康毕, T·特瑞弗 申请人:模拟设备股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1