纠正突发错误的解码方法、解码设备和解码器

申请号 CN201310064254.5 申请日 2013-02-28 公开(公告)号 CN104022784B 公开(公告)日 2017-08-29
申请人 国际商业机器公司; 发明人 宋成伟; 李厚刚; 杨浩; 李宇飞; 周凡;
摘要 本 发明 提供了用于纠正突发错误的解码方法、解码设备和 解码器 。具体而言,用于纠正突发错误的解码方法,包括:计算接收到的数据 帧 的初始校正子,其中所述数据帧是基于针对突发错误纠正的循环码进行编码的;基于所计算的初始校正子,确定所述数据帧中包含的突发错误的错误可纠性;以及根据所确定的错误可纠性,对所述数据帧中的突发错误进行处理并输出处理后的数据帧。根据本发明的解码方法、解码设备和解码器,通过使用数据帧的初始校正子确定数据帧中包含的突发错误的错误可纠性以及错误模式,使得能够在数据被发送出去之前确定错误可纠性,而且具有较小的解码延时。
权利要求

1.一种用于纠正突发错误的解码方法,包括:
计算接收到的数据的初始校正子,其中所述数据帧是基于针对突发错误纠正的循环码进行编码的;
基于所计算的初始校正子,确定所述数据帧中包含的突发错误的错误可纠性;以及根据所确定的错误可纠性,对所述数据帧中的突发错误进行处理并输出处理后的数据帧,
其中,确定所述数据帧中包含的突发错误的错误可纠性包括:
基于所计算的初始校正子,利用错误模式多项式计算第一校正子;
基于所计算的初始校正子,利用错误位置多项式计算第二校正子,其中所述错误模式多项式和错误位置多项式与所述循环码的生成多项式相关联;以及
根据所计算的第一校正子和第二校正子,按照预定规则确定所述数据帧中包含的突发错误的错误可纠性;
其中计算第一校正子包括:
将所计算的初始校正子除以所述错误模式多项式;和
将所获得的余式确定为第一校正子;
其中计算第二校正子包括:
将所计算的初始校正子除以所述错误位置多项式;和
将所获得的余式确定为第二校正子。
2.根据权利要求1所述的解码方法,其中将所计算的初始校正子除以所述错误模式多项式包括:
对所计算的初始校正子中阶次大于错误模式多项式的最高阶的项进行移位运算;以及对移位运算后的结果与初始校正子中阶次不大于错误模式多项式的最高阶的项进行减法运算。
3.根据权利要求1所述的解码方法,其中将所计算的初始校正子除以所述错误位置多项式包括:
对所计算的初始校正子中阶次大于错误位置多项式的最高阶的项进行移位运算;以及对移位运算后的结果与初始校正子中阶次不大于错误位置多项式的最高阶的项进行减法运算。
4.根据权利要求1所述的解码方法,其中所述循环码为缩短循环码,将所述按照预定规则确定的错误可纠性定义为第一错误可纠性,所述基于所计算的初始校正子确定所述数据帧中包含的突发错误的错误可纠性还包括:
根据突发错误在数据帧中的位置,判断突发错误是否发生在缩短循环码的缩短帧边界处;
响应于判定突发错误发生在缩短循环码的缩短帧边界处,确定第二错误可纠性;以及基于所确定的第一错误可纠性和第二错误可纠性,确定所述数据帧中包含的突发错误的错误可纠性。
5.根据权利要求1所述的解码方法,还包括:
基于所计算的初始校正子,确定所述数据帧包含的突发错误的错误模式,其中对所述数据帧中的突发错误进行处理包括根据所确定的错误可纠性和错误模式对所述数据帧中的突发错误进行处理。
6.一种用于纠正突发错误的解码设备,包括:
初始校正子计算装置,配置为计算接收到的数据帧的初始校正子,其中所述数据帧是基于针对突发错误纠正的循环码进行编码的;
错误可纠性确定装置,配置为基于所计算的初始校正子,确定所述数据帧中包含的突发错误的错误可纠性;以及
错误处理装置,配置为根据所确定的错误可纠性,对所述数据帧中的突发错误进行处理并输出处理后的数据帧,
其中,所述错误可纠性确定装置包括:
第一校正子计算子装置,配置为基于所计算的初始校正子,利用错误模式多项式计算第一校正子;
第二校正子计算子装置,配置为基于所计算的初始校正子,利用所述错误位置多项式计算第二校正子,其中所述错误模式多项式和错误位置多项式与所述循环码的生成多项式相关联;以及
错误可纠性确定子装置,配置为根据所计算的第一校正子和第二校正子,按照预定规则确定所述数据帧中包含的突发错误的错误可纠性;
其中所述第一校正子计算子装置包括:
用于将所计算的初始校正子除以所述错误模式多项式的装置;和
用于将所获得的余式确定为第一校正子的装置;
其中所述第二校正子计算子装置包括:
用于将所计算的初始校正子除以所述错误位置多项式的装置;和
用于将所获得的余式确定为第二校正子的装置。
7.根据权利要求6所述的解码设备,其中所述用于将所计算的初始校正子除以所述错误模式多项式的装置包括:
用于对所计算的初始校正子中阶次大于错误模式多项式的最高阶的项进行移位运算的装置;以及
用于对移位运算后的结果与初始校正子中阶次不大于错误模式多项式的最高阶的项进行减法运算的装置。
8.根据权利要求6所述的解码设备,其中所述用于将所计算的初始校正子除以所述错误位置多项式的装置包括:
用于对所计算的初始校正子中阶次大于错误位置多项式的最高阶的项进行移位运算的装置;以及
用于对移位运算后的结果与初始校正子中阶次不大于错误位置多项式的最高阶的项进行减法运算的装置。
9.根据权利要求6所述的解码设备,其中所述循环码为缩短循环码,将所述按照预定规则确定的错误可纠性定义为第一错误可纠性,所述错误可纠性确定装置还包括:
突发错误位置判断装置,配置为根据突发错误在数据帧中的位置,判断突发错误是否发生在缩短循环码的缩短帧边界处;以及
第二错误可纠性确定装置,配置为响应于判定突发错误发生在缩短循环码的缩短帧边界处,确定第二错误可纠性;以及
可纠性确定执行装置,基于所确定的第一错误可纠性和第二错误可纠性,确定所述数据帧中包含的突发错误的错误可纠性。
10.根据权利要求6所述的解码设备,还包括:
错误模式确定装置,配置为基于所计算的初始校正子,确定所述数据帧包含的突发错误的错误模式,
其中所述错误处理装置进一步被配置为根据所确定的错误可纠性和错误模式对所述数据帧中的突发错误进行处理。
11.一种用于纠正突发错误的解码器,包括:
数据缓冲器,配置为用于存储接收到的数据帧,其中所述数据帧是基于针对突发错误纠正的循环码进行编码的;
初始校正子计算电路,配置为从所述数据缓冲器读取数据帧,并计算所述数据帧的初始校正子;
错误可纠性确定电路,包括多个多路复用器和异或,配置为基于所述初始校正子计算电路计算的初始校正子,确定所述数据帧中包含的突发错误的错误可纠性;以及错误处理电路,配置为根据所述错误可纠性确定电路所确定的错误可纠性,对所述数据帧中的突发错误进行处理并输出处理后的数据帧,其中,所述错误可纠性确定电路包括:
第一校正子计算电路,包括多路复用器和异或门,配置为基于所述初始校正子计算电路计算的初始校正子,利用错误模式多项式计算第一校正子;
第二校正子计算电路,包括多路复用器和异或门,配置为基于所述初始校正子计算电路计算的初始校正子,利用所述错误位置多项式计算第二校正子;以及
零检测电路,配置为根据所述第一校正子计算电路和第二校正子计算电路计算的第一校正子和第二校正子,按照预定规则确定所述数据帧中包含的突发错误的错误可纠性;
其中所述第一校正子计算电路进一步被配置为:
通过使用多路复用器和异或门,将所述初始校正子计算电路计算的初始校正子除以所述错误模式多项式;和
将所获得的余式确定为第一校正子;
其中所述第二校正子计算电路进一步配置为:
通过使用多路复用器和异或门,将所述初始校正子计算电路计算的初始校正子除以所述错误位置多项式;和
将所获得的余式确定为第二校正子。
12.根据权利要求11所述的解码器,其中所述循环码为法尔码,其生成多项式为g(x)=
2L-1 m
(x +1)p(x),其中p(x)为本原多项式,所有的伽罗华域运算都在GF(2)中执行,m是p(x)的阶次,L为正整数,其中L≤m并且2L-1不可被p(x)的周期整除,
其中,(x2L-1+1)为错误模式多项式,p(x)为错误位置多项式。
13.根据权利要求11所述的解码器,其中将所计算的初始校正子除以所述错误模式多项式包括:
通过使用多路复用器,对所述初始校正子计算电路计算的初始校正子中阶次大于错误模式多项式的最高阶的项进行移位运算;以及
通过使用异或门,对移位运算后的结果与初始校正子中阶次不大于错误模式多项式的最高阶的项进行减法运算。
14.根据权利要求11所述的解码器,其中将所计算的初始校正子除以所述错误位置多项式包括:
通过使用多路复用器,对所述初始校正子计算电路计算的初始校正子中阶次大于错误位置多项式的最高阶的项进行移位运算;以及
通过使用异或门,对移位运算后的结果与初始校正子中阶次不大于错误位置多项式的最高阶的项进行减法运算。
15.根据权利要求11中所述的解码器,其中所述循环码为缩短循环码,将根据所述零检测电路确定的错误可纠性定义为第一错误可纠性,所述错误可纠性确定电路还包括虚假错误消除电路,配置为:
根据突发错误在数据帧中的位置,判断突发错误是否发生在缩短循环码的缩短帧边界处;
响应于判定突发错误发生在缩短循环码的缩短帧边界处,确定第二错误可纠性;以及基于所确定的第一错误可纠性和第二错误可纠性,确定所述数据帧中包含的突发错误的错误可纠性。
16.根据权利要求11所述的解码器,还包括:
错误模式确定电路,配置为基于所述初始校正子计算电路计算的初始校正子,确定所述数据帧包含的突发错误的错误模式,
其中,所述错误处理电路进一步配置为根据所述错误可纠性确定电路确定的错误可纠性和所述错误模式确定电路确定的错误模式,对所述数据帧中的突发错误进行处理。

说明书全文

纠正突发错误的解码方法、解码设备和解码器

技术领域

[0001] 本发明总体上涉及数据通信领域,特别地,涉及纠正突发错误的解码方法、解码设备和解码器。

背景技术

[0002] 近来,随着通信和互联网领域(诸如高速SERDES)中的数据传输速率的不断增加,基于突发错误校正循环码的前向错误校正(FEC)技术正得到越来越广泛的应用。
[0003] 例如,IEEE802.3ap标准要求能够校正高达11位的突发错误的缩短循环码(2112,2080),其中2080比特为信息位,其余的32比特是校验位。通常,突发错误校正编码包括例如
2L-1
法尔码(Fire Code),其生成多项式为g(x)=(x +1)p(x)。其中,所有的伽罗华域运算都在GF(2m)中执行,m是本原多项式p(x)的阶数,L为正整数,其中L≤m并且2L-1不可被p(x)的周期整除。
[0004] 在编码器侧,通过使用线性时序电路,可以使用t(x)=b(x)+xn-ku(x)实现编码计n-k算。其中,t(x)为发送的编码数据,u(x)为信息位,并且b(x)=x u(x)modg(x)。其中,n为编码数据的长度,k为信息位的长度,则n-k为校验位的长度。
[0005] 在解码器侧,解码器通常利用如下方法对循环码进行解码。
[0006] 首先,生成校正子。例如,可以使用s(x)=r(x)modg(x)生成校正子,其中r(x)为接收的码字,r(x)=t(x)+e(x),其中e(x)为接收到的数据中包含的错误。具体而言,在生成校正子时,需要将所接收的数据存储在数据缓冲器中。在接收到整个之后,生成校正子,由此带来大约一个帧的解码延时接着,对校正子进行检测和测试,以获得对应的错误模式。校正子和错误模式之间存在如下关系:
[0007] s(x)=r(x)modg(x)={t(x)+e(x)}modG(x)=e(x)modG(x)。
[0008] 在获得了e(x)之后,校正后的数据可表示为c(x)=r(x)+e(x)。
[0009] 最后,在帧被解码之后,解码器将指示可纠或不可纠的标记与数据一起发送到上层。在IEEE802.3ap标准中,如果确定当前帧是不可纠的,则FEC层将修改64B/66B的相关的同步头部,例如通过添加指示该错误不可纠的标记,使得PCS上层将知道将进入的帧已被破坏,并采取相应的措施。可见,在将数据发送到上层之前及时确定该帧是可纠的还是不可纠的非常重要。
[0010] 在现有技术中,基于获得e(x)的不同的方式,已经发展了不同的解码方案。一种解码方案,例如Meggitt解码器,要求在确定整个帧的错误模式之后,确定错误是否可纠。然后,根据错误模式和该帧是否可纠,对帧进行进一步处理。然而,确定错误模式的过程将引入大约一帧的延时。因此,如果想要在数据被发送到上层之前确定该帧是可纠的还是不可纠的,则自接收数据起需要两个帧的解码延时。此外,这将要求较大的缓冲器来存储两个完整帧的数据。
[0011] 另一种解码器基于法尔码来设计。通常的法尔码解码器可参见1972年由MIT出版社出版的“Error-Correcting Codes”。一般而言,基于法尔码的解码方案要求接收器具有相对高的计算能,并且使用该解码方案的解码延时通常大约大于一个帧延时,而精确的延时与本原多项式p(x)的周期有关。
[0012] 因此,需要提供一种克服现有技术的上述问题的改进的解码方案。

发明内容

[0013] 本发明的一个目的在于,提供一种克服现有技术的上述问题的改进的解码方案。
[0014] 为此,本发明提出了用于纠正突发错误的解码方法、解码设备和解码器。根据本发明的解码方法、解码设备和解码器,通过使用数据帧的初始校正子确定数据帧中包含的突发错误的错误可纠性以及错误模式,使得能够在数据被发送出去之前确定数据中包含的突发错误的错误可纠性,而且具有较小的解码延时。
[0015] 根据本发明的第一方面,提供了一种用于纠正突发错误的解码方法,包括:计算接收到的数据帧的初始校正子,其中所述数据帧是基于针对突发错误纠正的循环码进行编码的;基于所计算的初始校正子,确定所述数据帧中包含的突发错误的错误可纠性;以及根据所确定的错误可纠性,对所述数据帧中的突发错误进行处理并输出处理后的数据帧。
[0016] 根据本发明的第二方面,提供了一种用于纠正突发错误的解码设备,包括:初始校正子计算装置,配置为计算接收到的数据帧的初始校正子,其中所述数据帧是基于针对突发错误纠正的循环码进行编码的;错误可纠性确定装置,配置为基于所计算的初始校正子,确定所述数据帧中包含的突发错误的错误可纠性;以及错误处理装置,配置为根据所确定的错误可纠性,对所述数据帧中的突发错误进行处理并输出处理后的数据帧。
[0017] 根据本发明的第三方面,提供了一种用于纠正突发错误的解码器,包括:数据缓冲器,配置为用于存储接收到的数据帧,其中所述数据帧是基于针对突发错误纠正的循环码进行编码的;初始校正子计算电路,配置为从所述数据缓冲器读取数据帧,并计算所述数据帧的初始校正子;错误可纠性确定电路,包括多个多路复用器和异或,配置为基于所述初始校正子计算电路计算的初始校正子,确定所述数据帧中包含的突发错误的错误可纠性;以及错误处理电路,配置为根据所述错误可纠性确定电路所确定的错误可纠性,对所述数据帧中的突发错误进行处理并输出处理后的数据帧。
[0018] 根据本发明的解码方法、解码设备和解码器,通过使用数据帧的初始校正子确定数据帧中包含的突发错误的错误可纠性以及错误模式,能够在数据被发送出去之前确定数据帧中包含的突发错误的错误可纠性,而且具有较小的解码延时。附图说明
[0019] 通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
[0020] 图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器框图
[0021] 图2示出根据本发明一个实施例的用于纠正突发错误的解码方法的流程图
[0022] 图3示出了根据本发明一个实施例的确定数据帧中包含的突发错误的错误可纠性的方法的流程图。
[0023] 图4示出了缩短循环码中的虚假错误的示意图。
[0024] 图5示出根据本发明一个实施例的用于纠正突发错误的解码设备的框图。
[0025] 图6示出根据本发明一个实施例的解码器的总体结构。
[0026] 图7示出根据本发明一个实施例的可纠性确定电路的框图。
[0027] 图8A和图8B分别示出根据本发明一个实施例的第一校正子计算电路和第二校正子计算电路的示例性结构。
[0028] 图9示出根据本发明一个实施例的错误模式确定电路的结构。
[0029] 图10A和图10B分别在帧内以及帧间的级别上示出根据本发明一个实施例的流控制的示意图。

具体实施方式

[0030] 下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
[0031] 所属技术领域的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施方式中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
[0032] 可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0033] 计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0034] 计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
[0035] 可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0036] 下面将参照本发明实施方式的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
[0037] 也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instruction means)的制造品(manufacture)。
[0038] 也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
[0039] 图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。图1显示的计算机系统/服务器12仅仅是一个示例,不应对本发明实施方式的功能和使用范围带来任何限制。
[0040] 如图1所示,计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
[0041] 总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
[0042] 计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
[0043] 系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施方式的功能。
[0044] 具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施方式中的功能和/或方法。
[0045] 计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机系统/服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
[0046] 本发明的目的之一在于提供一种在数据帧被发送到上层之前能够确定数据中的突发错误(如果存在的话)的可纠性,而且解码延时较小的解码方案。
[0047] 下面将参照图2至图10更具体地描述本发明。图2示出根据本发明一个实施例的用于纠正突发错误的解码方法200的流程图。
[0048] 如图2所示,首先,步骤S202处,计算接收到的数据帧的初始校正子,其中数据帧是基于针对突发错误纠正的循环码进行编码的。
[0049] 注意,在下文中,数据帧和循环码可以互换使用。本领域技术人员了解,将接收的码字r(x),也可以写成r(n,k)的形式(其中n为码字的长度,k为信息位的长度)除以生成多项式g(x)(其阶数为n-k)所得的余数多项式称为校正子多项式(以下称为初始校正子)s(x),即:
[0050] s(x)=r(x)mod g(x)
[0051] 因此,s(x)的阶数必然低于g(x)的阶数,也就是说,s(x)是一个阶数为n-k-1或更小的多项式。s(x)的形式例如为:
[0052] s(x)=a0+a1x1+a2x2+...an-k-1xn-k-1其中,ai为s(x)的各项的系数,ai可以为0或者1。
[0053] 在一个示例中,循环码为法尔码,其生成多项式为g(x)=(x2L-1+1)p(x),其中p(x)为本原多项式,所有的伽罗华域运算都在GF(2m)中执行,m是p(x)的阶次,L为正整数,其中L≤m并且2L-1不可被p(x)的周期整除,其中,x2L-1+1被定义为错误模式多项式,p(x)还被定义为错误位置多项式。L表示使用该循环码能够校正的突发错误的比特数。
[0054] 接着,在步骤S204,基于在步骤S202计算的初始校正子,确定数据帧中包含的突发错误的错误可纠性。如上所述,已经在步骤S202获得了初始校正子,如果能够确定初始校正子与错误可纠性之间的关系,从而根据所计算的初始校正子确定错误是否可纠,这将是有益的。为了描述清楚起见,以下将以IEEE802.3ap标准为例,推导初始校正子与错误可纠性之间的关系,从而使得能够根据初始校正子确定突发错误是否可纠。
[0055] 对于IEEE802.3ap标准,生成多项式为:
[0056] g(x)=x32+x23+x21+x11+x2+1,
[0057] 其中,g(x)可被因子化为:
[0058] g(x)=(x21+1)(x11+x2+1),
[0059] 其中x11+x2+1为在GF(2)上不可约的本原多项式,称为错误位置多项式,而x21+1为错误模式多项式。这一编码可以校正具有长度小于等于11比特的突发错误。
[0060] 假定存在长度为11比特或者更小的突发错误,则令错误模式为e(x)=xjB(x),其中,B(x)为阶数小于等于10的多项式,并且j不大于n-1。因此,多项式B(x)和x21+1以及B(x)和x11+x2+1为互质的,并且,很明显,xj和x21+1以及xj和x11+x2+1也是互质的。则存在如下关系,
[0061] r(x)modg(x)={t(x)+xjB(x)}modg(x)=xjB(x)modg(x)≠0
[0062] 另一方面,当且仅当r(x)是码字本身时,r(x)可被g(x)整除,即r(x)modg(x)=0。现在,令
[0063] s1(x)=r(x)mod(x21+1),
[0064] s2(x)=r(x)mod(x11+x2+1),
[0065] 其中,s1(x)、s2(x)分别称为第一校正子和第二校正子。现有研究已经表明,第一校正子s1(x)、第二校正子s2(x)与突发错误的错误可纠性之间存在如下关系:
[0066] 如果s1(x)=0,且s2(x)=0,则表明没有检测到接收的码字r(x)中存在错误;
[0067] 如果s1(x)=0,且s2(x)≠0或者s1(x)≠0,且s2(x)=0,则表明突发错误不可纠;
[0068] 如果s1(x)≠0,且s2(x)≠0,并且s1(x)中连续零的个数小于等于10,则表明突发错误不可纠,否则突发错误可纠。
[0069] 对于广义的生成多项式g(x)=(x2L-1+1)p(x),存在与以上类似的情况。
[0070] 通过上述推导过程可知,如果能够获得第一校正子s1(x)和第二校正子s2(x),则可根据它们确定当前帧中包含的突发错误是可纠的还是不可纠的。
[0071] 以上说明表明可以对接收的码字r(x)进行模运算来计算第一校正子s1(x)和第二校正子s2(x)。然而,由于接收的码字r(x)的长度为n比特,这使得计算第一校正子s1(x)和第二校正子s2(x)将需要大量操作并且延时较大。以下详细说明如何根据初始校正子s(x)计算第一校正子s1(x)和第二校正子s2(x)。
[0072] 由于s(x)=r(x)modg(x)=e(x)modg(x),因此,令e(x)=a(x)G(x)+s(x),因此s1(x)=r(x)mod(x21+1)=e(x)mod(x21+1)=[a(x)g(x)+s(x)]mod(x21+1)。其中,x21+1是g(x)的因子,因此,s1(x)=s(x)mod(x21+1)。
[0073] 同理可得,
[0074] s2(x)=r(x)mod(x11+x2+1)=e(x)mod(x11+x2+1)=[a(x)g(x)+s(x)]mod(x11+x2+1)其中,(x11+x2+1)是g(x)的因子,因此,s2(x)=s(x)mod(x11+x2+1)。
[0075] 可见,在得到初始校正子s(x)之后,可对初始校正子s(x)使用两个取模运算来得到第一校正子s1(x)和第二校正子s2(x)。而对于该模操作,可以使用移位和减法运算来减小计算复杂度。因此,在整个帧接收到之后,在得到初始校正子s(x)之后,可以采用某些组合逻辑来计算第一校正子s1(x)和第二校正子s2(x)。
[0076] 图3示出了根据本发明一个实施例的确定数据帧中包含的突发错误的错误可纠性的步骤204的流程图300。具体而言,在步骤S302,基于在步骤S202计算的初始校正子,利用错误模式多项式计算第一校正子。具体而言,计算第一校正子的步骤S302包括:将在步骤S202计算的初始校正子除以错误模式多项式;和将所获得的余式确定为第一校正子。
[0077] 在具体实现时,将在步骤S202计算的初始校正子除以所述错误模式多项式包括:对在步骤S202计算的初始校正子中阶次大于错误模式多项式的最高阶的项进行移位运算;
以及对移位运算后的结果与初始校正子中阶次不大于错误模式多项式的最高阶的项进行减法运算。
[0078] 例如,可以对初始校正子的最高阶至阶次为2L-1的项均移位2L-1位。具体而言,在IEEE802.3ap标准中,对最高项x31移位21位,与之类似地,对于阶次为21的项也移位21位。然后,将移位运算后的结果与初始校正子中阶次不大于2L-1的项进行减法运算,例如可通过异或运算来实现。
[0079] 在步骤S304,基于在步骤S202计算的初始校正子,利用错误位置多项式计算第二校正子。具体而言,计算第二校正子包括:将在步骤S202计算的初始校正子除以错误位置多项式;和将所获得的余式确定为第二校正子。
[0080] 在具体实现时,将在步骤S202计算的初始校正子除以所述错误位置多项式包括:对在步骤S202计算的初始校正子中阶次大于错误位置多项式的最高阶的项进行移位运算;
以及对移位运算后的结果与初始校正子中阶次不大于错误位置多项式的最高阶的项进行减法运算。
[0081] 此处的移位运算和减法运算与上述关于计算第一校正子时描述的移位运算和减法运算相似。不同之处在于,根据错误位置多项式的具体形式,可能需要将初始校正子的阶次大于错误位置多项式的最高阶的项进行多于一次的移位,以及可能需要迭代地执行移位运算和减法运算。
[0082] 在步骤S306,根据所计算的第一校正子s1(x)和第二校正子s2(x),按照预定规则确定数据帧中包含的突发错误的错误可纠性。
[0083] 在一个示例中,预定规则如下:
[0084] 第一校正子和第二校正子都为零,表明没有检测到接收的数据帧中存在错误;第一校正子和第二校正子中的仅一个校正子为零,突发错误不可纠;第一校正子和第二校正子两者都不为零,且第一校正子中连续零的个数小于等于循环码可纠的最大突发错误的长度减一,则确定突发错误不可纠,否则突发错误可纠。
[0085] 具体而言,如果s1(x)=0,且s2(x)=0,则表明没有检测到r(x)中存在错误;如果s1(x)=0,且s2(x)≠0或者s1(x)≠0,且s2(x)=0,则表明突发错误不可纠;如果s1(x)≠0,且s2(x)≠0,并且s1(x)中连续零的数目小于等于L-1,则表明突发错误不可纠,否则突发错误可纠。
[0086] 由上可见,在获得了初始校正子s(x)的基础上,通过两次模运算获得第一校正子s1(x)和第二校正子s2(x)。然后,通过使用预定规则,即可确定数据帧中包含的突发错误是否可纠。对于特定的模操作,在具体实现时,可以使用移位和减法运算来减小计算复杂度。因此,在整个帧接收到之后,在得到初始校正子s(x)之后,某些组合逻辑可以用来计算第一校正子s1(x)和第二校正子s2(x),这不会引起任何解码延时(如果有的解码延时的话,也非常小),从而可以在帧头部被发出的同时发出指示该帧是否可纠的标记。
[0087] 方法200还可包括步骤S208,在该步骤中,根据所确定的错误可纠性,对所述数据帧中的突发错误进行处理并输出处理后的数据帧。例如,响应于确定数据帧中的突发错误可纠,对错误进行处理并输出处理后的数据帧。响应于确定数据帧中的突发错误不可纠,将指示不可纠的标记添加到数据帧的头部,并输出该数据帧。
[0088] 该方法200还可包括步骤S206,在该步骤中,基于在步骤S202计算的初始校正子,确定数据帧包含的突发错误的错误模式。由于已经得到了初始校正子,现在说明初始校正子与错误模式之间的关系,从而使得能够根据在步骤S202计算的初始校正子确定错误模式。
[0089] 假定t(x)是发送的码字,而r(x)=t(x)+xze(x)是表示被从第z个比特开始的错误e(x)破坏的接收的码字。此处,e(x)是表示m比特突发错误模式的m-1阶多项式。假定s(x)是由r(x)生成的初始校正子。则s(x)与错误模式之间存在如下关系:
[0090] s(x)=r(x)modg(x)={t(x)+xze(x)}modg(x)=xze(x)modg(x)
[0091] 上式的矩阵表示为:
[0092] s(x)=Tz·e(x)
[0093] 在T为非奇异矩阵,且为方阵时,错误模式e(x)可由下式表示:
[0094] e(x)=T-z·s(x)
[0095] 从而e0(x)=e(x)=s(x),e1(x)=T-1·s(x)=T-1e(x)…依次类推,ei+1(x)=T-1·ei(x)[0096] 在得到了s(x)与e(x)的关系之后,以下详细说明计算错误模式的步骤:
[0097] (a)根据ei+1(x)=T-1·ei(x)计算候选错误模式:
[0098] 其中,ei(x)为第i个错误模式候选,ei+1(x)为第i+1个错误模式候选;ei(x)的初始值为在步骤S202计算的数据帧的初始校正子s(x);0≤i
[0099]
[0100] 其中,g1、g2…gn-k-1为生成多项式g(x)的系数,T为32阶方阵。由于生成多项式g(x)是已知的,因此可预先计算T和T-1。
[0101] (b)判断是否满足预定迭代结束条件;以及
[0102] (c)如果满足预定迭代结束条件,则停止迭代,否则,重复上述步骤(a)(b)。~
[0103] 其中,预定迭代结束条件包括候选错误模式中连续的零的数目大于等于预定阈值。根据示例,如果确定候选错误模式中连续零的个数大于等于2L-1(例如,21),则表明找到了有效的错误模式,从而停止迭代。
[0104] 在一个示例中,对所述数据帧中的突发错误进行处理的步骤S208包括根据所确定的错误可纠性和错误模式对所述数据帧中的突发错误进行处理。
[0105] 根据一个示例,在步骤S208,根据分别在步骤S206和S204确定的错误模式和错误可纠性,对数据帧中的突发错误进行处理并输出处理后的数据帧。
[0106] 该处理例如包括:响应于确定数据帧中包含的突发错误可纠,使用在步骤S206确定的错误模式e(x)对数据帧进行校正并输出经纠正的数据帧。例如,用错误模式e(x)对接收的码字r(x)进行异或运算,从而校正突发错误。
[0107] 该处理例如还可包括:响应于确定数据帧中包含的突发错误不可纠,在该数据帧中添加相应的标记并将该标记与数据帧一起输出。例如,如果确定当前帧是不可纠的,则修改数据帧的头部,例如通过添加指示该错误不可纠的标记,使得上层将知道将进入的帧已被破坏,并采取相应的措施,例如丢弃该帧,或者请求重传等。
[0108] 根据本发明的解码方法,在获得了初始校正子s(x)的基础上,通过两次模运算获得第一校正子s1(x)和第二校正子s2(x)。然后,通过使用预定规则,即可确定数据帧中包含的突发错误是否可纠。同时,在获得了初始校正子s(x)的基础上可通过矩阵乘法确定错误模式,从而使得在帧头部被发出的同时发出指示该帧是否可纠的标记。
[0109] 应注意,对于缩短循环码,需要对由于缩短帧的交叉边界引入的虚假错误格外注意。以IEEE80002.3ap标准为例,如图4所示,(2112,2080)循环码通过将循环码(42987,42955)缩短来构建。可能出现如下情况,即,不可纠错误的校正子与从具有小于11比特突发错误且错误比特位置跨2112比特边界的突发错误得出的校正子相同,不可纠错误称为虚假错误。
[0110] 为了解决这一问题,在循环码为缩短循环码时,将上述按照预定规则确定的错误可纠性定义为第一错误可纠性,本发明的方法200还包括以下步骤:根据突发错误在数据帧中的位置,判断突发错误是否发生在缩短循环码的缩短帧边界处;响应于判定突发错误发生在缩短循环码的缩短帧边界处,确定第二错误可纠性;以及基于所确定的第一错误可纠性和第二错误可纠性,确定数据帧中包含的突发错误的错误可纠性。
[0111] 在上述步骤中,确定第一错误可纠性和确定第二错误可纠性可并行进行,在确定第一错误可纠性和第二错误可纠性的任一者为不可纠时,确定数据帧中的突发错误不可纠。或者替代性地,可先确定第一错误可纠性,相应于第一错误可纠性为不可纠,确定数据帧中包含的突发错误不可纠;以及响应于第一错误可纠性为可纠,然后确定第二错误可纠性,并且分别根据第二错误可纠性为不可纠或者可纠,确定数据帧中包含的突发错误可纠或者不可纠。
[0112] 其中,可根据在错误模式确定步骤S206中确定的错误模式确定突发错误在数据帧中的位置。具体而言可根据在错误模式确定的前几次计算中得到的有效错误模式,确定在缩短帧的边界处是否存在虚假错误。
[0113] 由于虚假错误仅可能存在于几个有限位置处,例如缩短帧边界处。因此,可仅使用错误模式确定的前几次计算中得到的有效错误模式来确定第二错误可纠性,上述步骤并不会带来很多附加运算,因此不会带来很大的附加的解码延时。例如,在数据宽度为32比特时,仅利用针对前32比特确定的错误模式,便可确定第二错误可纠性,从而确定是否存在虚假错误。
[0114] 从上可见,对于缩短循环码的情况,在获得初始校正子之后,可能使用第一错误可纠性和第二错误可纠性,来确定数据帧中的突发错误是否可纠。然而,与非缩短循环码相比,这并不会带来很复杂的附加运算和很大的附加延时。
[0115] 由上可见,无论是在循环码还是在缩短循环码的情况下,本发明都可以使用很少的运算,利用很少的延时确定数据帧中包含的突发错误的错误可纠性,从而在数据帧的头部被发出的同时发出指示数据帧中包含的突发错误是否可纠的标记。因此,根据本发明的解码方法,能够在数据帧被发出之前确定数据帧中包含的突发错误的错误可纠性,同时具有较小的解码延时。
[0116] 图5示出根据本发明一个实施例的用于纠正突发错误的解码设备500的框图。如图5所示,解码设备500包括:初始校正子计算装置502,配置为计算接收到的数据帧的初始校正子,其中数据帧是基于针对突发错误纠正的循环码进行编码的;错误可纠性确定装置
504,配置为基于所计算的初始校正子,确定数据帧中包含的突发错误的错误可纠性;以及错误处理装置508,配置为根据所确定的错误可纠性,对数据帧中的突发错误进行处理并输出处理后的数据帧。
[0117] 在一个示例中,错误可纠性确定装置504包括:第一校正子计算子装置503,配置为基于初始校正子计算装置502计算的初始校正子,利用错误模式多项式计算第一校正子;第二校正子计算子装置505,配置为基于初始校正子计算装置502计算的初始校正子,利用错误位置多项式计算第二校正子,其中错误模式多项式和错误位置多项式与循环码的生成多项式相对应;以及错误可纠性确定子装置507,配置为根据第一校正子计算子装置503计算的第一校正子和第二校正子计算子装置505计算的第二校正子,按照预定规则确定数据帧中包含的突发错误的错误可纠性。
[0118] 在一个示例中,第一校正子计算子503装置包括:用于将由初始校正子计算装置502计算的初始校正子除以错误模式多项式的装置;和用于将所获得的余式确定为第一校正子的装置。在一个示例中,用于将由初始校正子计算装置502计算的初始校正子除以错误模式多项式的装置包括:用于对由初始校正子计算装置502计算的初始校正子中阶次大于错误模式多项式的最高阶的项进行移位运算;以及用于对移位运算后的结果与初始校正子中阶次不大于错误模式多项式的最高阶的项进行减法运算的装置。
[0119] 在一个示例中,第二校正子计算子装置505包括:用于将由初始校正子计算装置502计算的初始校正子除以错误位置多项式的装置;和用于将所获得的余式确定为第二校正子的装置。在一个示例中,用于将由初始校正子计算装置502计算的初始校正子除以错误位置多项式的装置包括:用于对由初始校正子计算装置502计算的初始校正子中阶次大于错误位置多项式的最高阶的项进行移位运算的装置;以及用于对移位运算后的结果与初始校正子中阶次不大于错误位置多项式的最高阶的项进行减法运算的装置。
[0120] 在一个示例中,解码设备500还可包括错误模式确定装置506,配置为基于初始校正子计算装置502计算的初始校正子,确定数据帧包含的突发错误的错误模式。在一个示例中,对数据帧中的突发错误进行处理包括根据由错误可纠性确定装置504所确定的错误可纠性和由错误模式确定电路506确定的错误模式对数据帧中的突发错误进行处理。
[0121] 在一个示例中,在循环码为缩短循环码时,将按照预定规则确定的错误可纠性定义为第一错误可纠性,错误可纠性确定装置504还包括:突发错误位置判断装置,配置为根据突发错误在数据帧中的位置,判断突发错误是否发生在缩短循环码的缩短帧边界处;以及第二错误可纠性确定装置,配置为响应于判定突发错误发生在缩短循环码的缩短帧边界处,确定第二错误可纠性;以及可纠性确定执行装置,基于所确定的第一错误可纠性和第二错误可纠性,确定数据帧中包含的突发错误的错误可纠性。然而,与非缩短循环码相比,这并不会带来很复杂的附加运算和很大的附加延时。
[0122] 由上可见,无论是在循环码还是在缩短循环码的情况下,本发明都可以使用很少的运算,利用很少的延时确定数据帧中包含的突发错误的错误可纠性,从而在数据帧的头部被发出的同时发出指示数据帧中包含的突发错误是否可纠的标记。因此,根据本发明的解码设备,能够在数据帧被发出之前确定数据帧中包含的突发错误的错误可纠性,同时具有较小的解码延时。
[0123] 装置500的执行方式与结合图2进行描述的方法200的执行方式相同,在此不再赘述。
[0124] 可以理解,在一种实施方式中,图2的方法的步骤和图5的设备的装置均可以主要通过软件代码的方式实现。或者,在其他实施方式中,上述方法步骤和装置也可以利用硬件和软件的结合得以执行。
[0125] 根据本发明的另一方面,还可以主要通过硬件的方式,例如使用专用集成电路(ASIC)对突发错误进行校正。为此,本发明的实施例还提供一种用于对突发错误进行校正的解码器。
[0126] 图6示出根据本发明一个实施例的解码器600的总体结构。如图6所示,解码器600包括:数据缓冲器601,配置为用于存储接收到的数据帧,其中数据帧是基于针对突发错误纠正的循环码进行编码的;初始校正子计算电路602,配置为从数据缓冲器601读取数据帧,并计算数据帧的初始校正子;错误可纠性确定电路604,包括多个多路复用器和异或门,配置为基于初始校正子计算电路602计算的初始校正子,确定数据帧中包含的突发错误的错误可纠性;以及错误处理电路608,配置为根据错误可纠性确定电路604确定的错误可纠性,对数据帧中的突发错误进行处理并输出处理后的数据帧。
[0127] 数据缓冲器601可以采用任何适合现有技术实现,因此不再具体描述其内部结构。在本示例中,数据缓冲器601的大小等于1个数据帧的长度,即为n比特。
[0128] 解码器600还可包括错误模式确定电路606,配置为基于初始校正子计算电路602计算的初始校正子,确定数据帧包含的突发错误的错误模式。
[0129] 根据一个示例,错误处理电路608进一步配置为根据错误可纠性确定电路604确定的错误可纠性和错误模式确定电路606确定的错误模式,对数据帧中的突发错误进行处理。
[0130] 图7示出根据本发明一个实施例的可纠性确定电路604的框图。由图7可见,错误可纠性确定电路604包括:第一校正子计算电路703,包括一个或者多个多路复用器和一个异或门,配置为基于初始校正子计算电路602计算的初始校正子,利用错误模式多项式计算第一校正子;第二校正子计算电路705,包括一个或者多个多路复用器和一个异或门,配置为基于初始校正子计算电路602计算的初始校正子,利用错误位置多项式计算第二校正子,其中错误模式多项式和错误位置多项式与循环码的生成多项式相对应;以及零检测电路707,配置为根据第一校正子计算电路703和第二校正子计算电路705计算的第一校正子和第二校正子,按照预定规则确定数据帧中包含的突发错误的错误可纠性。
[0131] 在一个示例中,第一校正子计算电路703进一步被配置为:通过使用一个或者多个多路复用器和一个异或门,将初始校正子计算电路602计算的初始校正子除以错误模式多项式;和将所获得的余式确定为第一校正子。在一个示例中,将初始校正子计算电路602计算的初始校正子除以所述错误模式多项式包括:通过使用一个或者多个多路复用器,对初始校正子计算电路602计算的初始校正子中阶次大于错误模式多项式的最高阶的项进行移位运算;以及通过使用一个异或门,对移位运算后的结果与初始校正子中阶次不大于错误模式多项式的最高阶的项进行减法运算。
[0132] 在一个示例中,第二校正子计算电路705进一步被配置为:通过使用一个或者多个多路复用器和一个异或门,将初始校正子计算电路602计算的初始校正子除以错误位置多项式;和将所获得的余式确定为第二校正子。在一个示例中,将初始校正子计算电路602计算的初始校正子除以所述错误位置多项式包括:通过使用一个或者多个多路复用器,对初始校正子计算电路602计算的初始校正子中阶次大于错误位置多项式的最高阶的项进行移位运算;以及通过使用一个异或门,对移位运算后的结果与初始校正子中阶次不大于错误位置多项式的最高阶的项进行减法运算。
[0133] 以下将以IEEE802.3ap为例,参照图8A和图8B对根据本发明一个实施例的第一校正子计算电路和第二校正子计算电路进行说明。图8A和图8B分别示出根据本发明一个实施例的第一校正子计算电路703和第二校正子计算电路705的示例性结构。其中,图8A实现第一校正子计算电路703,即实现s1(x)=s(x)mod(x21+1),而图8B实现第二校正子计算电路11 2
705,即实现s2(x)=s(x)mod(x +x+1)。
[0134] 在图8A中,使用11(即L个)个2-1多路复用器和一个异或门(XOR)来实现第一校正子的计算。下面阐述图8A的原理。由于多项式x21+1中仅存在两个项,即x21和1,并且s(x)具有最高31阶,即x31,因此将x21+1与x10相乘,结果将为x31+x10。可以在s(x)中消除第一项x31,并且第二项x10对于x21+1不可约。以上操作相当于对x31进行移位,从而消除这一项。如果s(x)中没有具有阶数为10的其他项,则x10将是余数的一部分,否则,将从最终结果中忽略x10。依照这个方法,s(x)中所有阶数大于等于21的项可被消除,并且将保留阶数在20 11的~项,而具有阶数小于等于10的项将依赖于s(x)是否涉及具有更高阶数的其他项,例如,如果s(x)包括x31和x10,则这两项都不会出现在最终结果中。
[0135] 以下描述使用图8A所示的电路实现上述运算的具体操作。
[0136] 首先,将s(x)的阶数大于等于21的项分别作为11个多路复用器的选通信号。以x31项为例,当s(x)中存在x31项时,对应的多路复用器将选择第10个比特为1而其余比特均为0的21比特数据作为其输出。当s(x)中不存在x31项时,则对应的多路复用器将以21比特0作为其输出。对于其它x30 x21这几项存在类似运算。~
[0137] 然后将多路复用器的输出(均为21比特数据)输入到异或门各个输入端,异或门的附加的输入端为s(x)的阶数小于21的项,即x20~1,其也是21比特数据。最后,异或门对各个输入数据执行异或操作,从而得到第一校正子s1(x)。
[0138] 注意,以上示出了对s(x)的阶次高于20的项(即x31 x21)并行地执行上述操作,即~使用11个(即L个)多路复用器,获得第一校正子s1(x)。然而,本领域技术人员将理解,可以使用其它数目的多路复用器,例如仅使用1个多路复用器。在这种情况下,可以针对s(x)的阶次高于20的项逐个执行上述计算。在执行11(L)次之后,得到最终结果,即第一校正子s1(x)。在这种情况下的电路结构与图8A所示的电路结构类似,不同之处在于仅使用1个多路复用器,每次仅针对s(x)的次数高于20的项中的一个进行操作。
[0139] 类似地,图8B所示的电路使用9(即L-2)个2-1多路复用器和一个异或门来实现第二校正子的计算。与图8A的原理类似,为了消除s(x)中的最高项x31,需要生成附加的项x22+x20,因此,第一步骤是消除s(x)中阶数大于22的项。将最高项的阶次为22的结果标记为中间结果,然后对该中间结果执行类似的操作,即对于x22需要生成x13+x2,对于其它项依次类推,则结果多项式为13阶或者更低。在第三次类似处理之后,可以得到s(x)mod(x11+x2+1)的结果即第二校正子s2(x)。
[0140] 注意,以上示出了对s(x)的阶次高于22的项(即x31 x23)并行地执行上述操作,即~使用9个(即L-2个)多路复用器,获得第二校正子s2(x)。类似地,本领域技术人员将理解,可以使用其它数目的多路复用器,例如仅使用1个多路复用器。在这种情况下,s(x)的次数高于2L的项逐个执行上述操作。在执行9(L-2)次之后,得到最终结果,即第二校正子s2(x)。
在这种情况下的电路结构与图8A所示的电路结构类似,不同之处在于仅使用1个多路复用器,每次仅针对s(x)的次数高于22的项中的一个进行操作。
[0141] 以上以IEEE802.3ap为例,即生成多项式g(x)=(x21+1)(x11+x2+1)进行了说明。然而,本领域技术人员将理解,对生成多项式的通用形式g(x)=(x2L-1+1)p(x),也可以应用类似的方法。
[0142] 在通过第一校正子计算电路703和第二校正子计算电路705得到第一校正子s1(x)和第二校正子s2(x)之后,可以使用零检测电路707根据预定规则确定突发错误的错误可纠性。
[0143] 如果零检测电路707判定第一校正子s1(x)=0,且第二校正子s2(x)=0,则表明没有检测到接收的码字r(x)中存在错误,从而输出指示未检测到错误的标记。
[0144] 如果零检测电路707判定第一校正子s1(x)=0,且第二校正子s2(x)≠0或者s1(x)≠0,且s2(x)=0,则表明检测到突发错误,且突发错误不可纠,从而输出指示突发错误不可纠的标记。
[0145] 如果零检测电路707判定第一校正子s1(x)≠0,且第二校正子s2(x)≠0,则首先确定第一校正子s1(x)中连续零的个数是否小于等于L-1,如果是,则表明突发错误不可纠,输出指示突发错误不可纠的标记,否则,表明突发错误可纠。注意,在判断s1(x)中连续零的个数是否小于等于L-1时,需要对第一校正子s1(x)进行循环移位,并判断循环移位后连续零的个数是否小于等于L-1。由于第一校正子s1(x)的最高阶数为2L-1,因此,最多需进行2L-2次循环移位。
[0146] 从上述描述可见,根据本发明的方法,需要两个模操作以及最多需要进行2L-2个循环移位操作即可确定突发错误的错误可纠性。
[0147] 由上可见,根据本发明的解码器使用两个模运算得到第一校正子和第二校正子,从而根据预定规则确定数据帧中包含的突发错误是否可纠。其中,计算第一校正子的模运算使用L个2-1多路复用器以及1个异或门来实现,而计算第二校正子的模运算使用L-2个2-1多路复用器以及一个异或门来实现。可见,本发明的解码器在具体实现时方案较简单,且延时较小。
[0148] 虽然图8A和图8B示出了第一校正子计算电路和第二校正子计算电路的具体实现方式。然而,图8A和图8B只是示例性的,其旨在于图示使用多路复用器和异或门来实现第一校正子计算电路和第二校正子计算电路。也就是说,使用多路复用器和异或门,而不是如现有技术中那样使用除法器来实现模运算。
[0149] 本领域技术人员将理解,在使用多路复用器和异或门来实现模运算时,多路复用器和异或门的个数和/或连接方式并不限于图8A以及图8B中所示的情况。在具体实现第一校正子计算电路和第二校正子计算电路时,本领域技术人员可根据需要修改图8A和图8B多路复用器和异或门的个数和/或连接方式,以实现通过利用多路复用器和异或门而不是除法器来获得第一校正子和第二校正子的目的。此外,图8A和图8B还可包括附加的部件,例如用于寄存初始校正子的寄存器等。
[0150] 图9示出根据本发明一个实施例的错误模式确定电路606的结构。错误模式确定电路606接收初始校正子s(x)作为初始值,并且经过运算后,输出有效的错误模式。具体而言,该电路606执行的运算包括:
[0151] 首先,利用ei+1(x)=T-1·ei(x),计算候选错误模式,其中,ei(x)的初始值为所计算的数据帧的初始校正子s(x)。如前所述,i为数据宽度w的整数倍,例如0、w、2w...。数据宽度w由上层和下层决定其可以为16、32、64等。
[0152] 接着,将得到的候选错误模式ei(x)、ei+1(x)、…ei+w-1(x)发送到阈值检测电路。该阈值检测电路确定ei(x)、ei+1(x)、…ei+w-1(x)之中是否存在具有至少2L-1个连续零的e(x)。
[0153] 如果这样的候选错误模式,则将该候选错误模式确定为数据帧的错误模式,停止迭代。
[0154] 相反,如果不存在这样的候选错误模式,则将ei+w(x)反馈回到输入端,重复上述步骤,直到找到有效的错误模式e(x)为止。
[0155] 由上可见,根据本发明,通过使用矩阵乘法来确定错误模式。本领域技术人员将理解,在组合逻辑中,GF(2)上的矩阵相乘可通过异或门来实现,因此,实现较为方便。
[0156] 因此,根据本发明的解码器,通过使用数据帧的初始校正子确定数据帧中包含的突发错误的错误模式以及错误可纠性,使得能够在数据帧被发送出去之前确定数据帧中包含的突发错误的错误可纠性,同时具有较小的解码延时。根据本发明的解码器,总体解码延时将被控制在略多于一个帧的时间。
[0157] 以上适于非缩短循环码的情况。对于缩短循环码的情况,该解码器600还包括虚假错误消除电路609,配置为:根据突发错误在数据帧中的位置,判断突发错误是否发生在缩短循环码的缩短帧边界处;响应于判定突发错误发生在缩短循环码的缩短帧边界处,确定第二错误可纠性;以及基于所确定的第一错误可纠性和第二错误可纠性,确定所述数据帧中包含的突发错误的错误可纠性。然而,与非缩短循环码相比,这并不会带来很复杂的附加运算和很大的附加延时。
[0158] 由上可见,无论是在循环码还是在缩短循环码的情况下,本发明都可以使用很少的运算,利用很少的延时确定数据帧中包含的突发错误的错误可纠性,从而在数据帧的头部被发出的同时发出指示数据帧中包含的突发错误是否可纠的标记。因此,根据本发明的解码器,能够在数据帧被发出之前确定数据帧中包含的突发错误的错误可纠性,同时具有较小的解码延时。
[0159] 图10A和图10B分别在帧内以及帧间的级别上示出根据本发明一个实施例的流水控制的示意图。
[0160] 图10A示出了在错误模式确定/错误处理/数据字发出之间使用流水控制。在针对ei(x)的错误模式确定进行之后,相关的数据字w(j)立刻被处理且被发出。在针对数据字w(j)处理错误时,同时进行数据字w(j+1)的错误模式确定。在发出数据字w(j)时,针对数据字w(j+1)进行错误处理。
[0161] 注意,数据字组成数据帧,数据字的数据宽度w可由上层和下层决定。例如,数据字可以是16、32或者64比特等。例如,对于2112位长的循环码(或者数据帧),其由66个宽度为32比特的数据字组成。在这种情况下,i为数据宽度w的整数倍,例如0、32、64…;数据宽度w由上层和下层决定,例如,其可以为16、32、64等。j为大于等于1且小于66的自然数。
[0162] 图10B示出了在初始校正子计算、可纠性确定以及错误模式确定/错误处理/数据字发出之间使用流水控制。校正子计算可基于输入数据帧连续进行,并且对应的可纠性确定以及错误模式确定/错误处理/数据字发出可随后进行。
[0163] 基于图10A和图10B所示的两个流水控制,可以将由错误模式确定原本消耗的大约一个帧的时间极大减小到几个时钟周期,因此,整个解码延时可极大地降低到大约一个帧的时间。这一个帧的时间主要被初始校正子计算消耗。此外,本发明的实施例还带来了极大的面积减小,这是由于数据缓冲器的大小可被缩减到一半,即仅一个帧数据的大小。
[0164] 以下表1示出本发明的解码方案与现有技术的解码方案的比较。
[0165] 表1
[0166]
[0167] 在表1中,n为数据帧的长度,L为数据帧根据其进行编码的循环码能够校正的突发错误的最大长度,而P与本原多项式p(x)的周期有关。
[0168] 由上述比较可见,利用本发明的方法、解码设备以及解码器,通过使用数据帧的初始校正子确定数据帧中包含的突发错误的错误可纠性以及错误模式,使得能够在数据被发送出去之前确定数据帧中包含的突发错误的错误可纠性,而且具有较小的解码延时。
[0169] 附图中的流程图和框图显示了根据本发明的多个实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0170] 以上已经描述了本发明的各实施方式,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施方式。在不偏离所说明的各实施方式的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施方式的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施方式。
QQ群二维码
意见反馈