CN101162964A - 使用一组多项式来确定消息余式 - Google Patents

使用一组多项式来确定消息余式 Download PDF

Info

Publication number
CN101162964A
CN101162964A CNA2006100640785A CN200610064078A CN101162964A CN 101162964 A CN101162964 A CN 101162964A CN A2006100640785 A CNA2006100640785 A CN A2006100640785A CN 200610064078 A CN200610064078 A CN 200610064078A CN 101162964 A CN101162964 A CN 101162964A
Authority
CN
China
Prior art keywords
group
multinomial
zero
level
bit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2006100640785A
Other languages
English (en)
Other versions
CN101162964B (zh
Inventor
W·哈森普洛夫
B·布雷斯
G·高巴茨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN101162964A publication Critical patent/CN101162964A/zh
Application granted granted Critical
Publication of CN101162964B publication Critical patent/CN101162964B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • H03M13/091Parallel or block-wise CRC computation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • H03M13/6516Support of multiple code parameters, e.g. generalized Reed-Solomon decoder for a variety of generator polynomials or Galois fields

Abstract

描述了一种用于确定消息余式的方法。该方法包括:载入从第一多项式g(x)导出的一组多项式中的每一个的至少一部分,和使用一组级确定余式。所述级中的个别级将各个导出多项式级应用到前述一个级组中前一个级输出的数据。

Description

使用一组多项式来确定消息余式
技术领域
[0001]本发明涉及一种用于确定消息m(x)的余式的方法、装置和设备。
背景技术
[0002]例如,由于多种原因可能会损坏通过网络连接传输或从存储设备取回的数据。例如,有噪声的传输线可将“1”信号改变为“0”,或反之亦然。为了检测损坏,数据经常伴随有从该数据导出的一些值,如校验和。数据的接收机可重新计算校验和并与原始校验和相比较来确认数据可能无误传输。
[0003]识别数据损坏的常用技术被称为循环冗余校验(CRC)。虽然不是字面上的校验和,但是以非常相同的方式使用CRC值。即,原始计算的CRC与重新计算的CRC的比较可可以以非常高的概率识别数据损坏。CRC计算基于把消息比特解释为多项式,其中消息的每个比特代表一个多项式系数。例如,消息“1110”相应于多项式x3+x2+x+0。消息除以称为密钥的另一个多项式。例如,其它多项式可能是“11”或x+1。CRC是消息除以密钥的余数。但是,CRC多项式除法稍微不同于普通的除法,因为它在有限域GF(2)(即,模2的整数集)计算。更简单提出:偶数系数变成零且奇数系数变成一。
[0004]已开发了多种技术来执行CRC计算。第一种技术使用专用CRC电路来实现特定多项式密钥。这个方法可产生具有很小面积(footprint)的速度很快的电路。但是考虑到使用的多项式密钥,速度和大小经常以不灵活为代价实现。另外,支持多个密钥可几乎线性地增加支持的每个密钥的电路面积。
[0005]第二种常用技术特征是CRC查找表,在该表中对于给定的多项式以及数据输入和余数的组,计算和存储了所有可能的CRC结果。确定CRC成为执行表格查找的简单方式。但是,这个方法一般具有相对大的电路面积且可需要完全重新填充查找表,来改变正使用的多项式密钥。
[0006]第三种技术是可编程CRC电路。这几乎允许在合理有效的芯片面积(die area)数量内支持任何多项式。不幸的是,这个方法比上述方法的性能低得多。
发明内容
[0007]根据本发明的一个方面,提供了用于确定消息m(x)的余式的方法,该方法包括:载入从第一多项式g(x)导出的一组多项式中的每一个的至少一部分;和使用一组级来确定相应于m(x)mod g(x)的消息余式,该组级中的个别级将该组多项式中相应一个的至少一部分应用到该组级中前一个级输出的数据。
[0008]根据本发明的另一个方面,提供了一种关于第一多项式g(x)在有限域GF(2)确定消息m的余式的装置,该装置包括:一组存储元件,存储从第一多项式g(x)导出的一组多项式中的每一个的至少一部分;和一组级,耦合到该组存储元件中相应的存储元件,该组级中相应的级包括数字逻辑门,将存储在该组存储元件中相应存储元件中的值应用到该级的相应输入。
[0009]根据本发明的另一个方面,提供了一种设备,包括:至少一个媒体接入控制器(MAC),从网络接收消息;至少一个处理器,可通信地耦合到该至少一个媒体接入控制器;该设备包括关于第一多项式g(x)在有限域GF(2)确定消息的余式的电路,该电路包括:一组存储元件,存储从第一多项式g(x)导出的一组多项式;和一组级,耦合到该组存储元件中相应的存储元件,该组级中的相应级包括数字逻辑门,将存储在该组存储元件中相应存储元件中的值应用到相应级的相应输入。
附图说明
[0010]图1是示出了应用一组预先计算的多项式来确定多项式除法余式的一组级的示图。
[0011]图2是一组预先计算的多项式的示图。
[0012]图3是示出了对预先计算的多项式和输入数据执行并行操作的级的示图。
[0013]图4A和4B是采样级的数字逻辑门的示图。
[0014]图5是计算多项式除法余式的系统示图。
具体实施方式
[0015]图1示出了可编程循环冗余校验(CRC)电路100的采样实施方式。电路100可粗略地实现与查找表CRC实施方式一样的性能并且仅稍微比在典型多项式上操作的专用CRC电路实施方式慢。从芯片面积的观点,电路100可能是比查找表方法小的数量级且在专用电路实施方式的数量级内。
[0016]电路100使用一系列从多项式密钥导出的预先计算的多项式100a-100d。预先计算的多项式100a-100d的比特载入存储元件(如,寄存器或存储单元)并馈入一系列级106a-106d,在途中这些级依次将初始消息减少到较小的中间值,从而在级106d输出最终CRC结果。例如,如所示出的,级106a-106d输出的数据宽度rb-rd随着每个连续的级而减小。构建预先计算的多项式100a-100d和级106d-106a,以使得关于最终的余式,初始输入ra和级输出rb-rd相互之间是同余的(即,ra≡rb≡rc≡rd)。另外,预先计算的多项式100a-100d允许级106a-106d并行执行许多计算,减少确定CRC余式所需的门延迟的数量。对应不同密钥重新编程电路110可以简单地是将预先计算的多项式的合适组载入存储元件100a-100d的方式。
[0017]图2示出了预先计算的一组多项式的采样,gi(x),100a-100d(如,g4、g2、g1和g0)。通过检查,这些多项式100a-100d具有这样的特性,即该组中的每个连续多项式100a-100d特征是前导的1比特(第i+k比特)后跟随i个零102(阴影)并以生成(CRC)多项式(如,g0)的次数的数据104的k个比特结束。这些多项式100a-100d的形式使得每一级106a-106d能够将输入数据减少到较小但CRC等效的值。例如,从一些9比特多项式g0(x)导出一组多项式{g4(x),g2(x),g1(x)}之后,可对16比特的输入数据确定CRC。在操作期间,应用g4(x)将输入数据从16个比特减少到12个比特,接下来g2(x)可将输入数据从12个比特减少到10个比特,依此类推,直到最后的级106d输出8个比特余式。另外,如下面更详细地描述,给定级106a-106d可使用多项式100a-100d来并行处理输入数据的互不相交的区域。
[0018]更严格地,令g(x)是k+1比特的k次CRC多项式,其中一直设置前导比特以使得余式可跨度k个比特。多项式g(x)被定义为:
g ( x ) = [ x k + Σ i = 0 k - 1 g i x i ]
gj∈GF(2)
[0019]接着,多项式gi(x)被定义为:
gi(x)=xk+i+[xk+i modg(x)]
[0020]根据gi(x)的这个定义,可计算多项式序列作为原始多项式g(x)和i的选择值的函数。
[0021]CRC多项式g(x)除gi(x):
g(x)|gi(x)
证明
gi(x)=xk+i+[xk+i modg(x)]
=xk+i+[xk+i-ai(x)g(x)]
-对于一些ai(x)
=ai(x)g(x)
根据这个,可定义一个递归,其中在每个级,消息m(x)部分减少一个预先计算的多项式。
[0022]令m(x)为2L比特的消息,r(x)是k比特结果:
rj,mj∈GF(2)
r(x)=[m(x)·xk modg(x)]
其中,m(x)通过xk移位,创建空间将最后生成的CRC余式附加到消息m(x)中。因此对于i≥1:
r0(x)=m(x)·xk
r i ( x ) = [ r i - 1 ( x ) mod g 2 L - 1 ( x ) ] .
因此,ri(x)≡r0(x)modg(x),这由对i的归纳证明:
r1(x)≡r0(x)modg(x)
证明
r 1 ( x ) = r 0 ( x ) mod g 2 L - 1 ( x )
= r 0 ( x ) mod [ a 2 L - 1 ( x ) g ( x ) ]
ri(x)≡ri-1(x)modg(x)
证明
r i ( x ) = r i - 1 ( x ) mod g 2 L - 1 ( x )
= r i - 1 ( x ) mod [ a 2 L - 1 ( x ) g ( x ) ]
[0023]最后,rL(x)=r(x),这从以上的观测结果得出:
rL(x)=[rL-1(x)modg0(x)]
=[m(x)·xk-b(x)·g(x)]modg0(x)
-对于一些b(x)
=m(x)·xk modg(x)
[0024]这些等式提供能以更多种电路实现的CRC计算的方法。例如,图3示出了实施上述方法的电路的高层结构。如所示出的,通过从级输入中减去预先计算的多项式gi(x)的k个最低有效位104的倍数,给定级106a-106d可减少输入数据r。再次,虽然较小宽度,对于CRC计算,最后作为结果产生的级输出与输入是同余的。
[0025]示出的采样实施方式特征是级106a-106d,它们将gi(x)的k个最低有效位104和输入数据的各个位进行相与110a-110d(例如相乘)。步骤不需要gi(x)的i个零102和初始的“1”,因为他们不影响级计算的结果。因此,电路仅需要存储gi(x)的k个最低有效位。
[0026]为了示例操作,假定r0具有开始“1010...”的值,且g4(x)的k个最低有效位具有“001010010”的值,第一个110a和第三个110c与门会输出“001010010”,同时第二110b和第四个110d与门会输出0。如图3中的阴影节点所示出的,可将与门110a-110d的输出排成一行来根据输入数据的各个比特的位置移位(即,相乘)门110a-110d输出。即,将在输入数据最高有效位上操作的门110a的输出移位i-1位,且每个随后的门110b-110d将这个移位递减1位。例如,关于输入数据将相应于r0的最高有效位的门110a的输出移位3位,将相应于r0的下一个最高有效位的门110b的输出移位2位,等等。接着,可通过门110a-110d的输出的移位排列来减(例如,异或)输入数据。减的结果将输入数据减少对于i>0的多项式中等于零102的数目的位数。实质上,输入数据r0的i个最高有效位作为选择器,使得输入数据减gi(x)的k个最低有效位的某些倍数或输出不改变输入数据的零。
[0027]如所示出的,级106a的与门110a-110d可并行操作,因为他们工作在输入数据的互不相交的部分。即,每个与门110a-110d可同时并行处理r0的不同位。这个并行处理可显著加速CRC计算。另外,不同的级也可并行处理数据。例如,级106b的门110e可在恰好靠近操作开始的地方执行它的选择,因为不改变r0的最高有效位到达级106b。
[0028]图4A描述了遵守图3示出的结构的采样级106a实施方式的数字逻辑门。在这个例子中,级106a接收16位输入值(例如,r0=输入数据[15:0])和g4(x)的k个最低有效位。级106a使用i组与门110a-110d处理输入值的第i个最高有效位,其中每个输入数据位与g4(x)的k个最低有效位的每个经与门110a-110d相与。图4A中的每组k个与门110a-110d与图3中单个与门的概念描述一致。与门阵列110a-110d的输出基于输入数据比特位置排列并馈送到异或门112a-112d树,该异或门树从输入数据的剩余位减去移位的与门110a-110d输出(即,输入数据减去i个最高有效位)。
[0029]图4B描述了接收output_1数据[11:0]并生成输出output_2数据[9:0]的随后级106b的数字逻辑门。级106b接收级106a输出的12比特值并使用g2(x)将12比特值减少到CRC同余的10比特值。级106a,106b共享与门和异或树的i阵列的相同基本结构,该与门对gi(x)的k个最低有效位操作,异或树从级输入减去移位的与门输出以生成级输出值。可相似地构造用于i的不同值的其他级。
[0030]图3,4A和4B示出的结构仅仅是示例且可使用更多种其他实施方式。例如,在采样图中,每个级106a-106d并行处理输入数据的第i个最高有效位。在其他实施方式中,可并行使用大于或小于i的多个比特,但是,这可能不会减少给定级的输出数据的大小。
[0031]以上示出的结构可用于推导预先计算的多项式。例如,可通过清零与gi(x)相关的存储元件并加载具有多项式密钥的k个最低有效位的g0来执行此推导。可通过将xk+i作为数据输入应用到该电路并将g0级输出的作为结果最后产生的k个最低有效位作为与gi相关的值存储,来确定与连续gi相关的比特。例如,为了推导g2的多项式,可将xk+2应用为电路,可装载g0级的作为结果最后产生的k比特输出作为g2多项式的值。
[0032]图5描述了使用上述技术的采样CRC实施方式。该实施方式按32比特的段120对较大消息的连续部分起作用。如所示出的,采样实施方式通过任何预先存在的余式122对消息的给定部分120进行移位处理124,126和异或处理128,并使用级106a-106f和各个预先计算的多项式gi(x)的k个比特计算CRC余式。此外,连续的级106a-106e将输入数据减少i比特,直到级106f输出余式值。接着,电路将余数馈送回122,用于处理下一个消息部分124。应用最终消息部分120之后剩余的余式是作为整体对消息确定的CRC值。这可附加到消息或与接收到的CRC值相比较,来确定数据损坏是否可能发生。
[0033]图5中示出的系统特征是(L+1)个级106a-106f,其中多项式是i={0,2n-1,n=1到L}的形式。但是,i的这个严格的几何级数是不必要的且i的其他值可用于减少消息。另外,在较低的多项式级(例如,i<4),放弃图3,4A和4B中描述的级结构并以传统的位串行或其他的方式使用g0来处理输入值可能更有效。
[0034]上述技术可用于提高CRC计算速度,功率效率和电路面积。同样地,上述技术可应用在如网络处理器,安全处理器,芯片组,ASIC(专用集成电路)和处理器或处理器核内的功能单元的多种环境,在那里处理高时钟速度,同时支持任意多项式的能力是特别重要的。作为一个例子,上述CRC电路可集成到具有一个或多个媒体接入控制器(如,以太网MAC)的设备,该控制器耦合到一个或多个处理器或处理器核。在网络接口卡(NIC),芯片组中,这样的电路可集成到处理器本身作为协处理器,等等。CRC电路可对网络分组内包括的数据(例如,分组报头和/或有效载荷)执行操作。另外,虽然结合CRC计算进行了描述,这个技术可应用到如对GF(2)的其他余式计算(例如,椭圆曲线密码术)的多种计算中。
[0035]这里使用的术语电路包括硬线电路,数字电路,模拟电路,可编程电路等的实施方式。可编程电路可对布置在存储介质上的计算机指令进行操作。
[0036]其他实施例在下面的权利要求的范围之内。

Claims (20)

1.一种用于确定消息m(x)的余式的方法,该方法包括:
载入从第一多项式g(x)导出的一组多项式中的每一个的至少一部分;和
使用一组级来确定相应于m(x)mod g(x)的消息余式,该组级中的个别级将该组多项式中相应一个的至少一部分应用到该组级中前一个级输出的数据。
2.权利要求1的方法,其中该组多项式包括具有前缀和k位余数的多项式,其中k是正整数,其中该组多项式的一个多项式的前缀由等于1的最高有效位跟随一组零或多个连续零组成,且其中在该组一个或多个连续零中的零对于该组中的连续多项式而增加。
3.权利要求2的方法,其中对于i的多个值,该组多项式遵从:
gi(x)=xk+i+[xk+imod g(x)]
这里i是整数。
4.权利要求1的方法,其中该组级中相应的级接收ri-1(x)的比特并输出ri(x)的比特使得ri(x)≡ri-1(x)。
5.权利要求1的方法,进一步包括下面的至少一个:(1)将余式附加到消息以便通过网络发送,和(2)将余式与前面计算出的余式相比较。
6.权利要求2的方法,其中,在所述级中的个别的级中,该组多项式中与相应级相关的一个多项式的至少一部分与相应级接收到的输入数据的相应位进行多项式乘法。
7.权利要求6的方法,其中输入数据的相应位由与相应多项式前缀内该组一个或多个连续零中零的数目相等的位数组成。
8.权利要求6的方法,其中,对于输入数据的相应位并行进行与输入数据的相应位的多项式乘法。
9.一种关于第一多项式g(x)在有限域GF(2)确定消息m的余式的装置,该装置包括:
一组存储元件,存储从第一多项式g(x)导出的一组多项式中的每一个的至少一部分;和
一组级,耦合到该组存储元件中相应的存储元件,该组级中相应的级包括数字逻辑门,将存储在该组存储元件中相应存储元件中的值应用到该级的相应输入。
10.权利要求9的装置,其中该组多项式包括具有前缀和k位余数的多项式,其中k是正整数,其中该组多项式的一个多项式的前缀由等于1的最高有效位跟随一组零或多个连续零组成,且其中在该组一个或多个连续零中零的数目对与该组中的连续多项式而增加。
11.权利要求10的装置,其中对于i的多个值,该组多项式包括遵从下式的多项式:
gi(x)=xk+i+[xk+imod g(x)]
这里i是整数。
12.权利要求9的装置,其中该组级中的相应级接收ri-1(x)的比特并输出ri(x)的比特,使得ri(x)=ri-1(x)。
13.权利要求10的装置,其中在该组级中的个别级中,与相应级相关的相应多项式k位余数与相应级的输入数据比特一起馈入与门。
14.权利要求13的装置,其中馈入与门的相应输入数据比特由与相应多项式前缀的该组零或多个连续零中连续零的数目相等的位数组成。
15.权利要求13的装置,其中数字逻辑门包括耦合到与门输出和级输入数据的最低有效位的异或(XOR)门树。
16.权利要求9的装置,进一步包括将该组多项式的新值载入存储元件的电路。
17.一种设备,包括:
至少一个媒体接入控制器(MAC),从网络接收消息;
至少一个处理器,可通信地耦合到该至少一个媒体接入控制器;
该设备包括关于第一多项式g(x)在有限域GF(2)确定消息的余式的电路,该电路包括:
一组存储元件,存储从第一多项式g(x)导出的一组多项式;和
一组级,耦合到该组存储元件中相应的存储元件,该组级中的相应级包括数字逻辑门,将存储在该组存储元件中相应存储元件中的值应用到相应级的相应输入。
18.权利要求17的设备,其中该组多项式包括具有前缀和k位余数的多项式,其中k是正整数,其中该组多项式中的一个多项式的前缀由等于1的最高有效位跟随一组零或多个连续零组成,且其中在该组零或多个连续零中连续零的数目对于该组中的连续多项式而增加。
19.权利要求18的设备,其中对于i的多个值,该组多项式包括遵从下式的多项式:
gi(x)=xk+i+[xk+imod g(x)]
这里i是整数。
20.权利要求17的设备,其中在该组级的个别级中,与相应级相关的相应多项式k位余数与相应级的输入数据比特一起馈入与门;和
其中馈入与门的相应输入数据比特由与相应多项式前缀的该组零或多个连续零中连续零的数目相等的位数组成。
CN2006100640785A 2006-10-12 2006-12-30 使用一组多项式来确定消息余式 Expired - Fee Related CN101162964B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/581055 2006-10-12
US11/581,055 US7827471B2 (en) 2006-10-12 2006-10-12 Determining message residue using a set of polynomials

Publications (2)

Publication Number Publication Date
CN101162964A true CN101162964A (zh) 2008-04-16
CN101162964B CN101162964B (zh) 2011-01-26

Family

ID=39283673

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006100640785A Expired - Fee Related CN101162964B (zh) 2006-10-12 2006-12-30 使用一组多项式来确定消息余式

Country Status (6)

Country Link
US (1) US7827471B2 (zh)
EP (1) EP2089973A4 (zh)
JP (1) JP5164277B2 (zh)
CN (1) CN101162964B (zh)
TW (1) TW200832935A (zh)
WO (1) WO2008046078A2 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106909339A (zh) * 2017-02-22 2017-06-30 深圳职业技术学院 一种基于二叉树结构的有限域乘法器
CN108540137A (zh) * 2018-03-02 2018-09-14 江西清华泰豪三波电机有限公司 一种循环冗余校验码生成方法与装置

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7236490B2 (en) 2000-11-17 2007-06-26 Foundry Networks, Inc. Backplane interface adapter
US7596139B2 (en) 2000-11-17 2009-09-29 Foundry Networks, Inc. Backplane interface adapter with error control and redundant fabric
US7468975B1 (en) 2002-05-06 2008-12-23 Foundry Networks, Inc. Flexible method for processing data packets in a network routing system for enhanced efficiency and monitoring capability
US7187687B1 (en) 2002-05-06 2007-03-06 Foundry Networks, Inc. Pipeline method and system for switching packets
US7266117B1 (en) 2002-05-06 2007-09-04 Foundry Networks, Inc. System architecture for very fast ethernet blade
US7649885B1 (en) 2002-05-06 2010-01-19 Foundry Networks, Inc. Network routing system for enhanced efficiency and monitoring capability
US20120155466A1 (en) 2002-05-06 2012-06-21 Ian Edward Davis Method and apparatus for efficiently processing data packets in a computer network
US20090279558A1 (en) * 2002-05-06 2009-11-12 Ian Edward Davis Network routing apparatus for enhanced efficiency and monitoring capability
US6901072B1 (en) 2003-05-15 2005-05-31 Foundry Networks, Inc. System and method for high speed packet transmission implementing dual transmit and receive pipelines
US7817659B2 (en) 2004-03-26 2010-10-19 Foundry Networks, Llc Method and apparatus for aggregating input data streams
US8730961B1 (en) 2004-04-26 2014-05-20 Foundry Networks, Llc System and method for optimizing router lookup
US7657703B1 (en) 2004-10-29 2010-02-02 Foundry Networks, Inc. Double density content addressable memory (CAM) lookup scheme
US7712054B2 (en) * 2005-10-14 2010-05-04 Sap Ag Populating a table in a business application
US8448162B2 (en) 2005-12-28 2013-05-21 Foundry Networks, Llc Hitless software upgrades
US20070288690A1 (en) * 2006-06-13 2007-12-13 Foundry Networks, Inc. High bandwidth, high capacity look-up table implementation in dynamic random access memory
US8229109B2 (en) * 2006-06-27 2012-07-24 Intel Corporation Modular reduction using folding
US7903654B2 (en) 2006-08-22 2011-03-08 Foundry Networks, Llc System and method for ECMP load sharing
US7827471B2 (en) 2006-10-12 2010-11-02 Intel Corporation Determining message residue using a set of polynomials
US8238255B2 (en) 2006-11-22 2012-08-07 Foundry Networks, Llc Recovering from failures without impact on data traffic in a shared bus architecture
US20090279441A1 (en) 2007-01-11 2009-11-12 Foundry Networks, Inc. Techniques for transmitting failure detection protocol packets
US8689078B2 (en) 2007-07-13 2014-04-01 Intel Corporation Determining a message residue
US8271859B2 (en) * 2007-07-18 2012-09-18 Foundry Networks Llc Segmented CRC design in high speed networks
US8037399B2 (en) 2007-07-18 2011-10-11 Foundry Networks, Llc Techniques for segmented CRC design in high speed networks
US8149839B1 (en) 2007-09-26 2012-04-03 Foundry Networks, Llc Selection of trunk ports and paths using rotation
US8042025B2 (en) * 2007-12-18 2011-10-18 Intel Corporation Determining a message residue
US7886214B2 (en) * 2007-12-18 2011-02-08 Intel Corporation Determining a message residue
US9052985B2 (en) * 2007-12-21 2015-06-09 Intel Corporation Method and apparatus for efficient programmable cyclic redundancy check (CRC)
KR101460839B1 (ko) * 2008-01-17 2014-11-11 암페놀 코포레이션 인터포저 조립체 및 방법
US8225187B1 (en) * 2008-03-31 2012-07-17 Xilinx, Inc. Method and apparatus for implementing a cyclic redundancy check circuit
US8103928B2 (en) * 2008-08-04 2012-01-24 Micron Technology, Inc. Multiple device apparatus, systems, and methods
US8161365B1 (en) * 2009-01-30 2012-04-17 Xilinx, Inc. Cyclic redundancy check generator
US8090901B2 (en) 2009-05-14 2012-01-03 Brocade Communications Systems, Inc. TCAM management approach that minimize movements
US8599850B2 (en) 2009-09-21 2013-12-03 Brocade Communications Systems, Inc. Provisioning single or multistage networks using ethernet service instances (ESIs)
US8464125B2 (en) * 2009-12-10 2013-06-11 Intel Corporation Instruction-set architecture for programmable cyclic redundancy check (CRC) computations
US20170059539A1 (en) * 2013-06-14 2017-03-02 Dresser, Inc. Modular metering system

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3980874A (en) * 1975-05-09 1976-09-14 Burroughs Corporation Binary to modulo M translation
JP2577914B2 (ja) * 1987-06-11 1997-02-05 クラリオン株式会社 m系列符号発生器
FR2622713A1 (fr) * 1987-10-30 1989-05-05 Thomson Csf Circuit de calcul utilisant une arithmetique residuelle
US4979174A (en) * 1988-12-29 1990-12-18 At&T Bell Laboratories Error correction and detection apparatus and method
FR2658932A1 (fr) * 1990-02-23 1991-08-30 Koninkl Philips Electronics Nv Procede de codage selon la methode dite rsa, par un microcontroleur et dispositif utilisant ce procede.
US5384786A (en) * 1991-04-02 1995-01-24 Cirrus Logic, Inc. Fast and efficient circuit for identifying errors introduced in Reed-Solomon codewords
US5363107A (en) * 1993-07-16 1994-11-08 Massachusetts Institute Of Technology Storage and transmission of compressed weather maps and the like
US5642367A (en) * 1994-02-07 1997-06-24 Mitsubishi Semiconductor America, Inc. Finite field polynomial processing module for error control coding
US5768296A (en) * 1994-07-01 1998-06-16 Quantum Corporation ECC system supporting different-length Reed-Solomon codes whose generator polynomials have common roots
US7190681B1 (en) * 1996-07-10 2007-03-13 Wu William W Error coding in asynchronous transfer mode, internet and satellites
US6128766A (en) * 1996-11-12 2000-10-03 Pmc-Sierra Ltd. High speed cyclic redundancy check algorithm
US5942005A (en) * 1997-04-08 1999-08-24 International Business Machines Corporation Method and means for computationally efficient error and erasure correction in linear cyclic codes
US6038577A (en) * 1998-01-09 2000-03-14 Dspc Israel Ltd. Efficient way to produce a delayed version of a maximum length sequence using a division circuit
US6484192B1 (en) * 1998-01-29 2002-11-19 Toyo Communication Equipment Co., Ltd. Root finding method and root finding circuit of quadratic polynomial over finite field
US6223320B1 (en) * 1998-02-10 2001-04-24 International Business Machines Corporation Efficient CRC generation utilizing parallel table lookup operations
US6456875B1 (en) * 1999-10-12 2002-09-24 Medtronic, Inc. Cyclic redundancy calculation circuitry for use in medical devices and methods regarding same
GB2360177B (en) * 2000-03-07 2003-08-06 3Com Corp Fast frame error checker for multiple byte digital data frames
GB0013355D0 (en) * 2000-06-01 2000-07-26 Tao Group Ltd Parallel modulo arithmetic using bitwise logical operations
US6721771B1 (en) * 2000-08-28 2004-04-13 Sun Microsystems, Inc. Method for efficient modular polynomial division in finite fields f(2{circumflex over ( )}m)
US6609410B2 (en) * 2000-09-29 2003-08-26 Spalding Sports Worldwide, Inc. High strain rate tester for materials used in sports balls
JP2002118471A (ja) * 2000-10-06 2002-04-19 Hitachi Ltd 記録再生装置及び誤り訂正符号化方法並びに情報記録方法
US6732317B1 (en) * 2000-10-23 2004-05-04 Sun Microsystems, Inc. Apparatus and method for applying multiple CRC generators to CRC calculation
US20020144208A1 (en) * 2001-03-30 2002-10-03 International Business Machines Corporation Systems and methods for enabling computation of CRC' s N-bit at a time
US7458006B2 (en) * 2002-02-22 2008-11-25 Avago Technologies General Ip (Singapore) Pte. Ltd. Methods for computing the CRC of a message from the incremental CRCs of composite sub-messages
US6904558B2 (en) * 2002-02-22 2005-06-07 Agilent Technologies, Inc. Methods for computing the CRC of a message from the incremental CRCs of composite sub-messages
DE60236896D1 (de) * 2002-04-22 2010-08-12 Fujitsu Ltd Fehlerdetektionscodierer und -decodierer
US7512230B2 (en) * 2002-04-30 2009-03-31 She Alfred C Method and apparatus of fast modular reduction
US7240084B2 (en) * 2002-05-01 2007-07-03 Sun Microsystems, Inc. Generic implementations of elliptic curve cryptography using partial reduction
US7343541B2 (en) * 2003-01-14 2008-03-11 Broadcom Corporation Data integrity in protocol offloading
US7243289B1 (en) * 2003-01-25 2007-07-10 Novell, Inc. Method and system for efficiently computing cyclic redundancy checks
US7058787B2 (en) * 2003-05-05 2006-06-06 Stmicroelectronics S.R.L. Method and circuit for generating memory addresses for a memory buffer
US7373514B2 (en) * 2003-07-23 2008-05-13 Intel Corporation High-performance hashing system
US7673214B2 (en) * 2003-11-19 2010-03-02 Honeywell International Inc. Message error verification using checking with hidden data
US7543142B2 (en) * 2003-12-19 2009-06-02 Intel Corporation Method and apparatus for performing an authentication after cipher operation in a network processor
US20050149744A1 (en) * 2003-12-29 2005-07-07 Intel Corporation Network processor having cryptographic processing including an authentication buffer
US7171604B2 (en) * 2003-12-30 2007-01-30 Intel Corporation Method and apparatus for calculating cyclic redundancy check (CRC) on data using a programmable CRC engine
US7529924B2 (en) * 2003-12-30 2009-05-05 Intel Corporation Method and apparatus for aligning ciphered data
US7543214B2 (en) * 2004-02-13 2009-06-02 Marvell International Ltd. Method and system for performing CRC
US7970064B2 (en) 2004-08-13 2011-06-28 Agency For Science, Technology And Research Transmitter, method for generating a plurality of long preambles and communication device
US20060059219A1 (en) * 2004-09-16 2006-03-16 Koshy Kamal J Method and apparatus for performing modular exponentiations
US7590930B2 (en) * 2005-05-24 2009-09-15 Intel Corporation Instructions for performing modulo-2 multiplication and bit reflection
US7707483B2 (en) * 2005-05-25 2010-04-27 Intel Corporation Technique for performing cyclic redundancy code error detection
US20070083585A1 (en) * 2005-07-25 2007-04-12 Elliptic Semiconductor Inc. Karatsuba based multiplier and method
US7958436B2 (en) * 2005-12-23 2011-06-07 Intel Corporation Performing a cyclic redundancy checksum operation responsive to a user-level instruction
US8229109B2 (en) * 2006-06-27 2012-07-24 Intel Corporation Modular reduction using folding
US7827471B2 (en) 2006-10-12 2010-11-02 Intel Corporation Determining message residue using a set of polynomials
US8689078B2 (en) 2007-07-13 2014-04-01 Intel Corporation Determining a message residue
US7886214B2 (en) * 2007-12-18 2011-02-08 Intel Corporation Determining a message residue
US8042025B2 (en) 2007-12-18 2011-10-18 Intel Corporation Determining a message residue
US9052985B2 (en) 2007-12-21 2015-06-09 Intel Corporation Method and apparatus for efficient programmable cyclic redundancy check (CRC)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106909339A (zh) * 2017-02-22 2017-06-30 深圳职业技术学院 一种基于二叉树结构的有限域乘法器
CN108540137A (zh) * 2018-03-02 2018-09-14 江西清华泰豪三波电机有限公司 一种循环冗余校验码生成方法与装置
CN108540137B (zh) * 2018-03-02 2021-09-03 江西清华泰豪三波电机有限公司 一种循环冗余校验码生成方法与装置

Also Published As

Publication number Publication date
WO2008046078A3 (en) 2008-05-22
JP5164277B2 (ja) 2013-03-21
JP2010507290A (ja) 2010-03-04
EP2089973A2 (en) 2009-08-19
US20080092020A1 (en) 2008-04-17
TW200832935A (en) 2008-08-01
WO2008046078A2 (en) 2008-04-17
EP2089973A4 (en) 2010-12-01
CN101162964B (zh) 2011-01-26
US7827471B2 (en) 2010-11-02

Similar Documents

Publication Publication Date Title
CN101162964B (zh) 使用一组多项式来确定消息余式
CN100388630C (zh) 具有矩阵转换技术的循环冗余码计算方法及系统
JP4643957B2 (ja) メッセージのcrcを計算するための方法
WO2010115371A1 (zh) 一种循环冗余校验crc码的实现方法和装置
CN101227194B (zh) 用于并行bch编码的电路、编码器及方法
CN100571045C (zh) 一种解码伴随式的计算方法、电路及解码器
JPS5949618B2 (ja) 巡回ブロック符号のための直列エンコ−ダ
Chen et al. A high-throughput hardware implementation of SHA-256 algorithm
Zhu et al. Factorization-free low-complexity Chase soft-decision decoding of Reed-Solomon codes
CN106201433B (zh) 一种基于rs码的有限域乘法器
CN117014017A (zh) 一种基于高位宽数据计算多项式除法余数的crc计算方法
EP0991196B1 (en) Method of correcting lost data and circuit thereof
EP0723342A2 (en) Error correction apparatus
JP5248300B2 (ja) 誤り訂正復号装置および誤り訂正復号方法
RU2693190C1 (ru) Способ диагностики недвоичных блоковых кодов
US11309994B2 (en) Highly parallel and scalable cyclic redundancy check
JPH06314978A (ja) チェン・サーチ回路
CN113821370A (zh) 一种用于数据传输错误校验的高速crc产生方法和装置
US8312363B2 (en) Residue generation
Taotao et al. The FPGA Test Algorithm Of Large Constraint Length Convolution Code Encoder
JP3953397B2 (ja) リードソロモン符号化回路およびリードソロモン復号化回路
Taotao et al. FPGA-Based Large Constraint Length Convolution Code Encoder Verification
Ghosh et al. A generalized code for computing cyclic redundancy check
JP2018515985A (ja) 巡回冗長検査でのアルゴリズムの構成方法
Lakshmi et al. Area efficient implementation of short length QC-LDPC codes for Ultra-Reliable Low-Latency Communication (URLLC) application

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110126

Termination date: 20161230