CN101796482A - 确定消息余式 - Google Patents

确定消息余式 Download PDF

Info

Publication number
CN101796482A
CN101796482A CN200880106206A CN200880106206A CN101796482A CN 101796482 A CN101796482 A CN 101796482A CN 200880106206 A CN200880106206 A CN 200880106206A CN 200880106206 A CN200880106206 A CN 200880106206A CN 101796482 A CN101796482 A CN 101796482A
Authority
CN
China
Prior art keywords
message
polynomial
section
residue
described message
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.)
Pending
Application number
CN200880106206A
Other languages
English (en)
Inventor
S·格伦
V·戈帕尔
W·K·费哈利
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 CN101796482A publication Critical patent/CN101796482A/zh
Pending legal-status Critical Current

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Complex Calculations (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

确定消息余式的技术包括访问消息和同时确定该消息的各个不同段关于多项式的模余数的集合。该技术还包括基于模余数的集合和在访问消息之前确定的常量的集合确定该消息关于多项式的模余数。该消息关于多项式的模余数存储在存储器中。

Description

确定消息余式
背景技术
多种计算机应用对消息操作以产生消息余式(message residue)。该余式可以更加紧凑地表示消息内容。在其他用途中,消息余式常常用于确定在网络连接上传输的或从存储装置检索的数据是否已经损坏。例如,有噪声的传输线可改变“1”信号为“0”,或反之亦然。为了探测损坏,消息经常伴随有它的消息余式。数据的接收器然后可以独立地确定该消息的余式并且将所确定的余式与接收到的余式进行比较。
常见的消息余式称为循环冗余校验(CRC)。CRC计算是基于解释消息位流为多项式的系数。例如,消息“1010”对应于多项式(1x3)+(0x2)+(1x1)+(0x0),或更简单为x3+x1。该消息多项式除以已知是模的另一个多项式。例如,另一个多项式可是“11”或x+1。CRC是消息除以多项式的余数。然而,CRC多项式除法与普通除法有所不同,因为它在有限域GF(2)(即,整数模2(integers modulo2)的集合)上计算。更简单地说:偶数项系数变为零而奇数项系数变为一。
附图说明
图1是图示消息余式的确定的图。
图2是图示确定消息余式的操作的图。
图3是图示可以在确定消息余式中使用的查表法的图。
具体实施方式
确定消息的余式经常出现在各种应用中。该计算在处理消息中(例如用于传输或在接收后)常常表现可观的开销。下面描述了可以通过允许同时处理消息的不同部分而加速该计算的技术。
为了说明,图1描绘长度为3N个位的消息M 100的CRC计算。该消息M的位表示多项式M(x)的系数。如上文描述的,CRC是消息M(x)关于多项式P(x)模(“poly”)的模余数(modular remainder):
CRC M(x)=M(x)mod P(x)                 [1]
其中P(x)是由位串表示的另一个多项式。实际上,P(x)根据不同的应用来定义。例如,iSCSI(互联网小型计算机系统接口)使用CRC用于端到端的数据保护,它使用11EDC6F41H16的值作为多项式P(x)。其他应用已经选择不同的多项式大小和值。对于典型的k位CRC余式,P(x)将是k位的多项式(例如,32位)并且M将是移位k位的消息m(x)。k位CRC值典型地存储在M(x)的空置、最低有效k位中。
CRC值反映消息M中的每个位的值和位置。然而,如在图1中示出的,CRC值可通过独立地处理消息的段并且随后以某种方式合并结果来并行计算以保存合适的CRC计算。更确切地说,M(x)的CRC的可分解成消息的不同段(A、B、C)的CRC计算。例如:
CRC M(x)=(CRC(C)·K2)+(CRC(B)·K1)+(CRC(A))
                                             [2]
其中“+”表示多项式加法(例如,逐位XOR)而“·”表示多项式乘法(例如,位串mod P(x)的无进位乘法)。CRC(C)、CRC(B)和CRC(A)的值可以独立并且同时计算以加速整体CRC值的计算。每段的CRC值然后可以通过多项式乘法(例如,乘以常量K)组合成消息M的整体CRC值。例如,在图1中示出的示例中,其特征是大小为N位的均匀段,K2=x2Nmod poly和K1=xNmod poly,其中x2N和xN对应于消息内的段的有效位。由于x2N和xN是常量,并且模多项式poly是恒定的,因此K2和K1的值也是常量,其在可以甚至在访问消息M的值之前预先计算。即,常量K的值取决于分段点和已知的poly值,而不是消息M的位值。换句话说,对给定多项式确定的给定常量的集合可以用于不同的消息。常量的集合可预先计算并且提供在实践中使用的不同多项式。该常量的值可以使用CRC运算确定。例如在上文的示例中,K2对于指定的多项式可以按CRC(x2N)计算。
尽管图1描绘三段,其他实现可使用不同的分段方案,其使用不同数量的段,非均匀大小的段,等等。另外,尽管这些常量的值可预先计算,它们也可与段CRC值同时计算(例如,在第一消息初步处理期间或者较低效率地是每个已处理的消息的初步处理期间)。
该方案的潜在优势是可以在不同的环境和实现中量化。例如,处理器特征可以是专用CRC指令(例如,CRC或其他消息余式处理器宏运算)。这样的指令可具有语法:
CRC(input-bit-string,message-residue)
其中输入位串(例如,64、32、16、8或其他指定的或硬连接字符串长度),可以表示消息的一部分。可选地,指令或伴生指令可指定多项式或位串宽度。该指令可以更新CRC消息余式值以反映新输入位串的递增贡献。使用这样的指令,计算消息M的CRC可以使用一系列对CRC指令的调用而累积地完成,其消耗消息的输入位串大小的字节片(chunk),其中每次调用CRC指令递增式更新CRC值。在所有数据字节片被消耗后,剩余的消息余式反映整体的消息CRC值。
这样的指令可以通过以下处理器微运算实现,其实现32位CRC运算:
TEMP1[63-0]←BIT_REFLECT64(SRC[63-0])
TEMP2[31-0]←BIT_REFLECT32(DEST[31-0])
TEMP3[95-0]←TEMP1[63-0]<<32
TEMP4[95-0]←TEMP2[31-0]<<64
TEMP5[95-0]←TEMP3[95-0]XOR TEMP4[95-0]
TEMP6[31-0]←TEMP5[95-0]MODULO POLY
DEST[31-0]←BIT_REFLECT(TEMP6[31-0])
DEST[63-32]←00000000H
其中如果必要的话,BIT_REFLECT改变字符串的端法(endian)表示。
在上文描述的确定CRC值的示例实现中,每个CRC指令要求之前的CRC指令的输出作为输入。然而,这种连续式方法消耗许多处理器周期,其至少是T*L,其中T是CRC指令周期延迟而L是字节片的数量。相反地,并行计算这些段导致大约(T*L/NumSegments)加上重组运算延迟(其相比之下是相对较小)的延迟。一般,后面的方法将表示用于确定CRC的时间的大大减少。
图2图示使用处理器提供的CRC指令的样本实现。在描绘的示例中,特定的CRC指令需3周期来完成。时序图图示处理器实现多指令执行流水线。
如示出的,CRC指令在每段的子段(例如,A[i]、B[i]和C[i],其中i=1至3)上连续运算。每段的余式存储在递增式更新的余式变量中。例如,对段C的每个子段字节片(例如,C[1]、C[2]、C[3])更新余式值X。余式值可初始化为适合给定应用程序的值(例如,对于iSCSI全部是1)。
由于流水线架构和CRC指令的延迟,在给定段的字节片上的运算与在其他段的字节片上的运算进行交织。例如,如图示的,段A、B和C的相同位置字节片(例如,A[1]、B[1]和C[1])按顺序插入104a-104c流水线。一旦给定字节片的段余式已被更新,该段的下一个字节片可以处理。例如,在字节片C[1]的CRC指令104a完成后,CRC指令104d可以处理字节片C[2]。CRC指令之间图示的重叠表示归因于上文描述的技术的整体延迟减少。
如示出的,在确定X、Y和Z后,重组106继续下去。可以是,重组106可以重叠CRC计算。例如,当X值确定就开始确定X·K2,而不等待Y和Z的值。可以是,X、Y和Z的消息余式值可存储在消息本身中(例如,X的值可以存储在C[3]中,Y在B[3]中而Z在A[3]中)从而改变消息为消息余式的稀疏存储。
虽然图2图示给定环境的特定实现,许多变化是可能的。例如,段CRC值的计算可由不同处理器元件(例如,集成在单个芯片上的处理器的可编程处理器内核)(除流水线处理之外或代替流水线处理)确定。另外,CRC指令的周期数可大于或小于描绘的3周期实现。可以是,消息段的数量可基于(例如,等于)CRC指令使用的周期数。例如,4周期指令可与将消息分成4段并且同时处理该4段的实现配对。此外,尽管描绘了专用CRC指令,该技术还可以应用于处理器没有提供明确的专用CRC指令的情况中。另外,同样,尽管CRC计算在图2中图示,上文描述的技术可在其他消息余式确定中使用。
另外的变化可以进一步或独立地加速消息余式的计算。例如,上文说明的方法计算(CRC(segment)·K)。简单直接的实现可以在确定段的CRC值后简单地执行该多项式乘法和模约简(modularreduction)。然而,由于K和poly为常量,该运算相反可以使用查找表的集合实现。例如,如在图3中示出的,段的CRC值(以Y表示)108乘以常量K的模多项式乘法可以表示为:
Y·K=Y3(D3·K)mod poly+Y2(D2·K)mod poly+
Y1(D1·K)mod poly+Y0mod poly                   [4]
其中Yi表示Y的n位段,而Di表示xDi的常量。(Di·K)的值表示两个常量的模多项式乘法,因此也是常量。因而,代替实际计算Yi(Di·K)mod poly,Yi的每个值可以用作向表110a、110b、110c(存储Yi(Di·K)mod poly的预先计算的可能值)的n位查找关键字。例如,在Y是32位数字的情况下,表110a可存储Y3(D3·K)mod poly的预先计算的值以用于Y3的8位值查找。这样的表可以相当大地加速这些计算而不消耗过度的数据存储量。另外,这样的查找可并行执行。所得的查找值可以使用多项式加法来快速求和。
上文描述CRC消息余式。这样的余式可以存储在随机存取存储器中,例如在数据包中存储在存储器中,或用于与存储在接收数据包中的余式比较,例如以确定数据损坏是否可能已经发生。上文描述的技术不仅限于CRC,然而,但可在其他方案中使用,例如其他编码/纠错方案,该方案在模余数上运算,例如在GF(2)上的多项式的有限域中。另外,尽管上文的技术在中间值上重复执行模约简,这样的模约简可推迟或其他时刻执行。
上文描述的技术可在多种逻辑中实现,这些逻辑包括硬件、软件和/或固件或其的组合。例如,上文描述的技术可实现为计算机可读介质上设置的计算机程序的指令,其使处理器执行上文描述的消息余式确定。
其他实施例在下列权利要求的范围内。

Claims (15)

1.一种计算机实现的方法,包括:
访问消息;
同时确定所述消息的各个不同段关于多项式的模余数的集合;
基于所述模余数的集合和在访问所述消息之前确定的常量的集合来确定所述消息关于所述多项式的模余数;以及
存储所述消息关于所述多项式的所述模余数。
2.如权利要求1所述的计算机实现的方法,
其中所述基于所述模余数的集合和在访问所述消息之前确定的常量的集合来确定所述消息关于所述多项式的模余数包括:
基于:
( Σ i = Sto 1 R i · K i ) + R 0
来确定,其中
S是所述消息的段数;
Ri是与所述消息的段i关联的余式;
Ki是基于xsegmentation-pointimod所述多项式的常量;
·表示关于所述多项式的模多项式乘法;以及
+表示多项式加法。
3.如权利要求2所述的计算机实现的方法,
其中确定Ri·Ki包括使用Ri的子段作为查找关键字来执行对Ri的子段的多次查表。
4.如权利要求1所述的计算机实现的方法,
其中所述同时确定所述消息的各个段关于多项式的模余数的集合包括确定每个所述消息段的子段的余式。
5.如权利要求4所述的计算机实现的方法,
其中所述同时确定所述消息的各个段关于多项式的模余数的集合包括同时确定每个所述消息段的同序数子段的余式。
6.如权利要求5所述的计算机实现的方法,
其中所述同时确定每个所述消息段的同序数子段的余式包括同时在多周期流水线中确定所述余式。
7.如权利要求1所述的计算机实现的方法,还包括在数据包中包含所述消息余式。
8.如权利要求1所述的计算机实现的方法,还包括将所述消息余式与包含在数据包中的消息余式进行比较。
9.一种包括指令的计算机可读介质,所述指令用于使处理器:
访问消息;
同时确定所述消息各个不同段关于多项式的模余数的集合;
基于所述模余数的集合和在访问所述消息之前确定的常量的集合来确定所述消息关于所述多项式的模余数;以及
存储所述消息关于所述多项式的所述模余数。
10.如权利要求9所述的计算机可读介质,
其中用于使所述处理器基于所述模余数的集合和在访问所述消息之前确定的常量的集合来确定所述消息关于所述多项式的模余数的指令包括指令,其用于使所述处理器:
基于:
( Σ i = Sto 1 R i · K i ) + R 0
来确定,其中
S是所述消息的段数;
Ri是与所述消息的段i关联的余式;
Ki是基于xsegmentation-pointimod所述多项式的常量;
·表示关于所述多项式的模多项式乘法;以及
+表示多项式加法。
11.如权利要求9所述的计算机可读介质,
其中用于使所述处理器确定Ri·Ki的指令包括用于使所述处理器使用Ri的子段作为查找关键字执行对Ri的子段的多次查表的指令。
12.如权利要求9所述的计算机可读介质,
其中用于使所述处理器同时确定所述消息的各个段关于多项式的模余数的集合的指令包括用于使所述处理器确定每个所述消息段的子段的余式的指令。
13.如权利要求12所述的计算机可读介质,
其中用于使所述处理器同时确定所述消息的各个段关于多项式的模余数的集合的指令包括用于使所述处理器同时确定每个所述消息段的同序数子段的余式的指令。
14.如权利要求13所述的计算机可读介质,
其中用于使所述处理器同时确定每个所述消息段的同序数子段的余式的指令包括用于使所述处理器同时在多周期流水线中确定所述余式的指令。
15.如权利要求9所述的计算机可读介质,还包括用于使所述处理器执行从下列组中选择的至少其中之一的指令:(1)在数据包中包含所述消息余式,以及(2)将所述消息余式与包含在数据包中的消息余式进行比较。
CN200880106206A 2007-07-13 2008-06-30 确定消息余式 Pending CN101796482A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/777,538 US8689078B2 (en) 2007-07-13 2007-07-13 Determining a message residue
US11/777,538 2007-07-13
PCT/US2008/068801 WO2009012050A2 (en) 2007-07-13 2008-06-30 Determining a message residue

Publications (1)

Publication Number Publication Date
CN101796482A true CN101796482A (zh) 2010-08-04

Family

ID=40254146

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200880106206A Pending CN101796482A (zh) 2007-07-13 2008-06-30 确定消息余式

Country Status (5)

Country Link
US (1) US8689078B2 (zh)
EP (1) EP2181386A4 (zh)
JP (1) JP5384492B2 (zh)
CN (1) CN101796482A (zh)
WO (1) WO2009012050A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110663207A (zh) * 2017-05-24 2020-01-07 Wago管理有限责任公司 嵌入的循环冗余校验值

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
WO2009091958A1 (en) * 2008-01-17 2009-07-23 Amphenol Corporation Interposer assembly and method
KR20100008849A (ko) * 2008-07-17 2010-01-27 삼성전자주식회사 통신 시스템에서 순환중복검사 방법 및 장치
US8103928B2 (en) * 2008-08-04 2012-01-24 Micron Technology, Inc. Multiple device apparatus, systems, and methods
US8312363B2 (en) * 2008-12-16 2012-11-13 Intel Corporation Residue generation
US8607129B2 (en) 2011-07-01 2013-12-10 Intel Corporation Efficient and scalable cyclic redundancy check circuit using Galois-field arithmetic
US9424125B2 (en) * 2013-01-16 2016-08-23 Google Inc. Consistent, disk-backed arrays

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1411630A (zh) * 2000-02-17 2003-04-16 模拟装置公司 用于生成循环余数核对代码以及生成其他基于余数的编码的方法、设备和产品
US20050097432A1 (en) * 2002-04-22 2005-05-05 Kazuhisa Obuchi Error-detecting encoding and decoding apparatus and dividing apparatus

Family Cites Families (60)

* 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
JPH0385923A (ja) 1989-08-30 1991-04-11 Fujitsu Ltd Crc演算方式
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
US5274707A (en) 1991-12-06 1993-12-28 Roger Schlafly Modular exponentiation and reduction device and method
JPH07504312A (ja) 1992-12-29 1995-05-11 コーデックス・コーポレイション 効率的なcrc剰余係数発生および検査装置および方法
US5642367A (en) * 1994-02-07 1997-06-24 Mitsubishi Semiconductor America, Inc. Finite field polynomial processing module for error control coding
US5671377A (en) 1994-07-19 1997-09-23 David Sarnoff Research Center, Inc. System for supplying streams of data to multiple users by distributing a data stream to multiple processors and enabling each user to manipulate supplied data stream
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
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
CA2267721C (en) 1998-03-26 2002-07-30 Nippon Telegraph And Telephone Corporation Scheme for fast realization of encryption, decryption and authentication
JP3545623B2 (ja) * 1999-01-05 2004-07-21 株式会社エヌ・ティ・ティ・ドコモ 復号方法
US6530057B1 (en) 1999-05-27 2003-03-04 3Com Corporation High speed generation and checking of cyclic redundancy check values
TW508907B (en) * 1999-09-27 2002-11-01 Texas Instruments Inc Method and apparatus for efficient calculation of cyclic redundancy check
GB2360177B (en) * 2000-03-07 2003-08-06 3Com Corp Fast frame error checker for multiple byte digital data frames
US20030090362A1 (en) 2000-04-25 2003-05-15 Hardwick Michael Dennis Remote controller with energy saving
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
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
US7027597B1 (en) 2001-09-18 2006-04-11 Cisco Technologies, Inc. Pre-computation and dual-pass modular arithmetic operation approach to implement encryption protocols efficiently in electronic integrated circuits
US7027598B1 (en) 2001-09-19 2006-04-11 Cisco Technology, Inc. Residue number system based pre-computation and dual-pass arithmetic modular operation approach to implement encryption protocols efficiently in electronic integrated circuits
US7174498B2 (en) 2002-02-15 2007-02-06 Intel Corporation Obtaining cyclic redundancy code
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
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
US7187770B1 (en) 2002-07-16 2007-03-06 Cisco Technology, Inc. Method and apparatus for accelerating preliminary operations for cryptographic processing
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
US7036067B2 (en) 2003-03-28 2006-04-25 Arraycomm, Llc Error detection for multi-stream communications
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
WO2005053217A1 (en) 2003-11-19 2005-06-09 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
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
US20070157030A1 (en) 2005-12-30 2007-07-05 Feghali Wajdi K Cryptographic system component
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
US7925011B2 (en) 2006-12-14 2011-04-12 Intel Corporation Method for simultaneous modular exponentiations
US8689078B2 (en) 2007-07-13 2014-04-01 Intel Corporation Determining a message residue
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)
US8189792B2 (en) 2007-12-28 2012-05-29 Intel Corporation Method and apparatus for performing cryptographic operations
US8103928B2 (en) 2008-08-04 2012-01-24 Micron Technology, Inc. Multiple device apparatus, systems, and methods

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1411630A (zh) * 2000-02-17 2003-04-16 模拟装置公司 用于生成循环余数核对代码以及生成其他基于余数的编码的方法、设备和产品
US20050097432A1 (en) * 2002-04-22 2005-05-05 Kazuhisa Obuchi Error-detecting encoding and decoding apparatus and dividing apparatus

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110663207A (zh) * 2017-05-24 2020-01-07 Wago管理有限责任公司 嵌入的循环冗余校验值
CN110663207B (zh) * 2017-05-24 2022-07-12 Wago管理有限责任公司 嵌入的循环冗余校验值

Also Published As

Publication number Publication date
JP5384492B2 (ja) 2014-01-08
WO2009012050A3 (en) 2009-03-12
WO2009012050A2 (en) 2009-01-22
US8689078B2 (en) 2014-04-01
EP2181386A2 (en) 2010-05-05
EP2181386A4 (en) 2012-11-28
US20090019342A1 (en) 2009-01-15
JP2010534007A (ja) 2010-10-28

Similar Documents

Publication Publication Date Title
CN101796482A (zh) 确定消息余式
JP2544895B2 (ja) 分散デ―タ処理システム
US6912683B2 (en) Method, apparatus, and product for use in generating CRC and other remainder based codes
CN102096609B (zh) 可编程循环冗余校验(crc)计算的指令集架构
US20050010630A1 (en) Method and apparatus for determining a remainder in a polynomial ring
US7886214B2 (en) Determining a message residue
CN101227194B (zh) 用于并行bch编码的电路、编码器及方法
WO2010115371A1 (zh) 一种循环冗余校验crc码的实现方法和装置
KR101027855B1 (ko) Crc 에러 검출 방법, 장치, 시스템 및 crc 에러 검출방법을 수행하는인스트럭션 세트를 포함하는 머신판독가능한 매체
EP0611054B1 (en) Polynomial-set deriving apparatus and method
WO2009082598A1 (en) Determining a message residue
CN1095122C (zh) 差错定位多项式高速计算电路
CN101296053A (zh) 计算循环冗余校验码之方法及系统
KR20030036826A (ko) 선형 블록 코드의 인코딩 방법 및 장치
US6442729B1 (en) Convolution code generator and digital signal processor which includes the same
JP3659320B2 (ja) 乗算モジュール、乗法逆元演算回路、乗法逆元演算制御方式、該乗法逆元演算を用いる装置、暗号装置、誤り訂正復号器
CN103840835A (zh) 一种数据解压缩方法及装置
KR100302847B1 (ko) 유한필드에서의긴다항식제산장치
US8984385B1 (en) Systems and methods for cyclic redundancy check implementation
CN1937412A (zh) 里德所罗门解码器的关键方程与错误值求解优化电路
JP2000020333A (ja) 復号装置、演算装置およびこれらの方法
JPH09307458A (ja) エラー訂正向け多項式評価装置
JP5550413B2 (ja) Crc演算回路
KR100392370B1 (ko) 유한체내에서 다단 구조의 역수 계산 장치
KR100645388B1 (ko) 임의의 크기의 병렬 처리가 가능한 병렬 crc 생성 장치및 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20100804

RJ01 Rejection of invention patent application after publication