JP2010534007A - メッセージ剰余の決定 - Google Patents

メッセージ剰余の決定 Download PDF

Info

Publication number
JP2010534007A
JP2010534007A JP2010516132A JP2010516132A JP2010534007A JP 2010534007 A JP2010534007 A JP 2010534007A JP 2010516132 A JP2010516132 A JP 2010516132A JP 2010516132 A JP2010516132 A JP 2010516132A JP 2010534007 A JP2010534007 A JP 2010534007A
Authority
JP
Japan
Prior art keywords
message
remainder
modular
polynomial
segments
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
JP2010516132A
Other languages
English (en)
Other versions
JP5384492B2 (ja
Inventor
ゲロン、シェイ
ゴーパル、ヴィノード
フェガリ、ワジ、ケイ.
ウォルリッチ、ギルバート
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 JP2010534007A publication Critical patent/JP2010534007A/ja
Application granted granted Critical
Publication of JP5384492B2 publication Critical patent/JP5384492B2/ja
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

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

メッセージにアクセスする段階とモジュラ剰余のセットと、メッセージへのアクセス前に決定された定数のセットとに基づいて、メッセージの多項式に対するモジュラ剰余を決定する段階とを備える、メッセージ剰余の決定テクニック。また、テクニックは、モジュラ剰余のセットと、メッセージへのアクセス前に決定された定数のセットとに基づいて、メッセージの多項式に対するモジュラ剰余を決定する段階を備える。メッセージの多項式に対するモジュラ剰余は、メモリに格納される。
【選択図】図1

Description

様々なコンピュータアプリケーションがメッセージを操作し、メッセージ剰余を作成する。-メッセージ剰余は、メッセージの内容をより簡潔に表現することができる。メッセージ剰余は、複数の用途の中でも特にネットワーク接続上で送信あるいは記憶装置から取得したデータが破損しているかどうかを決定するべく利用される。例えば、ノイズを有する送信線は、信号「1」を「0」に、またはこの逆に変更する場合がある。破損を検出するべく、メッセージはメッセージ剰余を伴う場合が多い。後にデータの受信側は、メッセージの剰余を独自に決定し、決定した剰余と受信した剰余とを比較してよい。
一般的なメッセージ剰余は、巡回冗長検査(CRC)として知られている。CRCの計算は、メッセージビットのストリームを多項式の係数として解釈することに基づく。例えば、メッセージ「1010」は、多項式(1x)+(0x)+(1x)+(0x)あるいは、より単純にx+xに相当する。メッセージ多項式は、係数と呼ばれる他の多項式で除算される。例えば、他の多項式は、「11」またはx+1であってよい。CRCは、メッセージを多項式で除算した余りである。しかしながら、CRC多項式除算は、有限体GF(2)(例えば、整数モジュロTのセット)で算出されるという点において、通常の除算とは異なる。より単純には、偶数の係数は0となり、奇数の係数は1となる。
メッセージ剰余の決定を示す図である。
メッセージ剰余を決定する動作を示す図である。
メッセージ剰余の決定に使用可能なテーブルルックアップを示す図である。
メッセージ剰余の決定は、様々なアプリケーションの中で頻発する。例えば、送信時あるいは受信後のメッセージ処理において、この計算が多大なオーバーヘッドとなる場合が多い。メッセージの異なる部分に対する同時処理を許容することでこの計算を促進するテクニックを以下に説明する。
図解を目的に3Nビット長のメッセージM100のCRC計算を図1に示す。メッセージMのビットは、多項式M(x)の係数を表す。上述のように、CRCは、メッセージM(x)の多項式P(x)係数(「poly」)によるモジュロ演算の余りである。
CRC M(x)=M(x)mod P (x) [1]
上記の式では、P(x)はビットストリングで表現された他の多項式である。実際には、P(x)はアプリケーション毎に定義される。例えば、エンドツーエンドのデータ保護にCRCを用いるiSCSI (Internet Small Computer System Interface)は、多項式P(x)として11EDC6F41H16の値を用いる。異なるアプリケーションは、異なる多項式のサイズと値を選択している。一般的な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値は、メッセージMの例えば定数Kによる多項式乗算の全体のCRC値として合計されてよい。例えば、サイズNビットの均一なセグメントを有する図1の例では、K2=x2N mod polyおよびK1=x mod polyにおいて、x2Nおよびxはメッセージ内のセグメントの重みに相当する。x2Nおよびxは定数であることから、係数多項式polyは定数であり、従ってK2およびK1の値もまた、メッセージMの値がアクセスされる前に予め計算可能な定数である。つまり、定数Kの値は、メッセージMのビット値ではなく、セグメンテーションポイントおよびpolyの既知値による。言い換えれば、与えられた多項式について決定された定数の与えられたセットを異なるメッセージに用いることができる。定数セットは予め計算されていてよく、実際に用いられる異なる多項式に提供されてよい。定数の値は、CRC演算を用いて決定されてよい。例えば、上記の例では、特定の多項式においてK2はCRC(x2N)であると計算できる。
図1では3つのセグメントを説明したが、他の実装では、異なるセグメント数、サイズが均一でないセグメントなど、異なるセグメンテーションスキームを用いてもよい。さらに、これらの定数の値は予め計算しておくことができるが、これらは、例えば第1のメッセージの初期の処理期間中あるいは効率は悪いが処理されるメッセージ毎に、セグメントのCRC値と同時に計算されてもよい。
このようなスキームの潜在的な利点は、異なる環境および実装で数量化することができる。例えば、プロセッサが専用のCRC命令(例えば、CRCまたは他のメッセージ剰余プロセッサのmacro−op)機能を有してよい。このような命令は次の構文であってよい。
CRC(input−bit−string, message−residue)
上記のinput−bit−string(例えば、64、32、16、8または他の指定あるいは固定のストリング長)は、メッセージの一部を表してよい。あるいは、命令またはコンパニオン命令が多項式あるいはビットストリング幅を指定してよい。命令は、CRCメッセージ剰余の値を更新し、新たな入力ビットストリングによる増分の寄与を反映してよい。このような命令を用いてメッセージMのCRCの計算を累積的に行うことができる。これには、CRC値を増分して更新するCRC命令の呼び出し毎に入力ビットストリングサイズのチャンクでメッセージを消費するCRC命令へのコールシーケンスを用いてよい。すべてのデータチャンクが消費された後に残されたメッセージ剰余が、メッセージ全体としてのCRC値を示す。
このような命令は、32ビットCRC演算を実装する次のプロセッサmicro−opで実装することができる。
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がストリングのエンディアンを変更する。
上述したCRC値を決定する例示的な実装では、各CRC命令が前のCRC命令の出力を入力とする必要がある。しかしながら、このシリアルなアプローチでは、TがCRC命令サイクルのレイテンシーでLがチャンク数である場合に、少なくともT×Lのプロセッササイクル数を消費する。対照的に、セグメントを並行して計算すると、およそ(T×L/NumSegments)のレイテンシーに比較的僅かな再結合演算のレイテンシーを加えた結果をもたらす。通常、後者のアプローチはCRCの決定に必要な時間を顕著に短縮する。
図2は、プロセッサが提供するCRC命令を用いた例示的な実装を図示する。示された例では、特定のCRC命令が3サイクルで完了する。タイミング図は、プロセッサによる複数の命令実行パイプラインの実装を図示する。
図のとおり、CRC命令は各セグメントのサブセグメント(例えば、i=1から3である、A[i]、B[i]およびC[i])で連続して演算する。各セグメントの剰余は、増分して更新された剰余変数に格納される。例えば、剰余値Xは、セグメントCのサブセグメントチャンク(例えば、C[1]、C[2]およびC[3])毎に更新される。剰余の値は、与えられたアプリケーションに適切な値(例えば、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・K2の決定は、YおよびZの値を待つことなく、Xの値の決定後即時に開始されてよい。また潜在的に、X、YおよびZのメッセージ剰余の値は、メッセージそのもの(例えば、Xの値はC[3]、Yの値はB[3]、Zの値はA[3])に格納されてよく、メッセージ剰余のわずかな格納へとメッセージを変化させてよい。
図2は、与えられた環境における特定の実施を図示したが、多くの変形が可能である。例えば、セグメントCRC値の計算は、パイプライン処理に加えて、あるいはその代わりに、異なるプロセッサ要素(例えば、単一ダイに集積されたプロセッサのプログラム可能なプロセッサコア)によって決定されてよい。さらに、CRC命令のサイクル数は、説明した実施の3サイクルより少なくても多くてもよい。潜在的に、メッセージセグメントの数はCRC命令が用いるサイクル数に基づいて(例えば、その数に等しくて)よい。例えば、4サイクルの命令は、メッセージを4つのセグメントに分け、それらを同時に処理する実施と組み合わされてよい。またさらに、説明では専用のCRC命令を用いたが、明確な専用のCRC命令がプロセッサによって提供されない状況にテクニックを適用してもよい。さらには、図2ではCRC計算を説明したが、異なるメッセージ剰余の決定に上述のテクニックを用いてもよい。
さらなる変形によって、メッセージ剰余の計算をさらにあるいは独立して速めることができる。例えば、上述のアプローチは(CRC(segment)・K)を計算した。直接的な実施では、セグメントのCRC値を決定した後にこの多項式乗算およびモジュラ還元を実行してよい。しかしながら、Kおよびpolyは定数であることから、この演算はルックアップテーブルのセットを用いて実施可能である。例えば、図3のように、セグメントのCRC値(Yで示す)108の定数Kによるモジュラ多項式乗算は、次の式で表すことができる。
Y・K=Y(D・K)mod poly+Y(D・K)mod poly+Y(D・K)mod poly+Ymod poly [4]
上記の式では、YはYのnビットセグメントを表し、DはxDiの定数を表す。(D・K)の値は2つの定数のモジュラ多項式乗算を表すのでこれらも定数である。従って、Y(D・K)mod polyを実際に計算することなく、Y(D・K)mod polyの予め計算された可能値を格納したテーブル110a、110bおよび110cに対するnビットルックアップキーとしてYの各値を用いてよい。例えば、Yが32ビットの数の場合、Yの8ビットの値でルックアップするべく、Y(D・K)mod polyの予め計算された値をテーブル110aが格納してよい。このようなテーブルは、過量のデータ容量を消費することなく、これらの計算を顕著に速めることが可能である。さらに、このようなルックアップは、並行して実行されてよい。結果のルックアップ値は、多項式の加算を用いて迅速に合計することが可能である。
以上、CRCメッセージ剰余について説明した。このような剰余は、例えばRAMあるいはメモリのパケットに格納され、受信したパケットに格納された剰余と比較されることで、例えばデータ破損が起こり得たかどうかが判断されてよい。上述したテクニックはCRCに限定されたものではなく、モジュラ剰余で動作する、例えばGF(2)における多項式の有限体など、他のコーディング/エラー修正スキームなどその他のスキームで用いられてよい。さらには、上述のテクニックでは中間値に対してモジュラ還元を繰り返し実行したが、このようなモジュラ還元は延期または異なる時点で実行されてよい。
上述したテクニックは、ハードウェア、ソフトウェア、および/またはファームウェアあるいはこれらの組み合わせを含む多様なロジックで実装されてよい。例えば、上述のテクニックは、コンピュータで読み取り可能な媒体に配されたコンピュータプログラムの命令であって、上述したメッセージ剰余の決定をプロセッサに実行させる命令であってよい。
その他の実施形態が以下の請求の範囲に含まれる。

Claims (15)

  1. メッセージにアクセスする段階と、
    前記メッセージの異なるセグメントのそれぞれの多項式に対するモジュラ剰余のセットを同時に決定する段階と、
    前記モジュラ剰余のセットと、前記メッセージへのアクセス前に決定された定数のセットとに基づいて、前記メッセージの前記多項式に対するモジュラ剰余を決定する段階と、
    前記メッセージの前記多項式に対する前記モジュラ剰余を格納する段階と
    を含む、コンピュータに実装された方法。
  2. 前記モジュラ剰余のセットと、前記メッセージへのアクセス前に決定された定数のセットとに基づいて、前記メッセージの前記多項式に対するモジュラ剰余を決定する段階は、
    Figure 2010534007
    に基づいて決定する段階を含み、
    Sは前記メッセージのセグメントの数であり、
    は前記メッセージのセグメントiに関連した剰余であり、
    はXsegmentation−point i mod polyに基づく定数であり、
    ・は前記多項式に対するモジュラ多項式乗算を表し、
    +は多項式加算を表す、請求項1に記載の方法。
  3. ・Kを決定する段階は、Rのサブセグメントをルックアップキーとして用いて、前記Rのサブセグメントの複数テーブルルックアップを実行する段階を含む、請求項2に記載の方法。
  4. 前記メッセージの異なるセグメントのそれぞれの多項式に対するモジュラ剰余のセットを同時に決定する段階は、それぞれの前記セグメントのサブセグメントの前記剰余を決定する段階を含む、請求項1に記載の方法。
  5. 前記メッセージの異なるセグメントのそれぞれの多項式に対するモジュラ剰余のセットを同時に決定する段階は、それぞれの前記セグメントの類似順序のサブセグメントの前記剰余を同時に決定する段階を含む、請求項4に記載の方法。
  6. それぞれの前記セグメントの類似順序のサブセグメントの前記剰余を同時に決定する段階は、マルチサイクルパイプラインで同時に前記剰余を決定する段階を含む、請求項5に記載の方法。
  7. 前記モジュラ剰余をパケットに含む段階をさらに含む、請求項1に記載の方法。
  8. 前記モジュラ剰余をパケットに含まれたメッセージ剰余と比較する段階をさらに含む、請求項1に記載の方法。
  9. 命令セットを備えるコンピュータで読み取り可能な媒体であって、
    前記命令セットはプロセッサに、
    メッセージにアクセスする段階と、
    メッセージの異なるセグメントのそれぞれの多項式に対するモジュラ剰余のセットを同時に決定する段階と、
    前記モジュラ剰余のセットと、前記メッセージへのアクセス前に決定された定数のセットとに基づいて、前記メッセージの前記多項式に対するモジュラ剰余を決定する段階と、
    前記メッセージの前記多項式に対する前記モジュラ剰余を格納する段階と
    を実行させる、コンピュータで読み取り可能な媒体。
  10. 前記モジュラ剰余のセットと、前記メッセージへのアクセス前に決定された定数のセットとに基づいて、前記メッセージの前記多項式に対するモジュラ剰余を決定する段階を前記プロセッサに実行させる前記命令は、
    Figure 2010534007
    に基づいて決定させ、
    Sは前記メッセージのセグメントの数であり、
    は前記メッセージのセグメントiに関連した剰余であり、
    はXsegmentation−point i mod polyに基づく定数であり、
    ・は前記多項式に対するモジュラ多項式乗算を表し、
    +は多項式加算を表す、
    請求項9に記載の媒体。
  11. ・Kを決定する段階を前記プロセッサに実行させる前記命令は、Rのサブセグメントをルックアップキーとして用いて、前記Rのサブセグメントの複数テーブルルックアップを実行する段階を前記プロセッサに実行させる命令を含む、請求項9に記載の媒体。
  12. 前記メッセージの異なるセグメントのそれぞれの多項式に対するモジュラ剰余のセットを同時に決定する段階を前記プロセッサに実行させる前記命令は、それぞれの前記セグメントのサブセグメントの前記剰余を決定する段階を前記プロセッサに実行させる命令を含む、請求項9に記載の媒体。
  13. 前記メッセージの異なるセグメントのそれぞれの多項式に対するモジュラ剰余のセットを同時に決定する段階を前記プロセッサに実行させる前記命令は、それぞれの前記セグメントの類似順序のサブセグメントの前記剰余を同時に決定する段階を前記プロセッサに実行させる命令を含む、請求項12に記載の媒体。
  14. それぞれの前記セグメントの類似順序のサブセグメントの前記剰余を同時に決定する段階を前記プロセッサに実行させる前記命令は、マルチサイクルパイプラインで同時に前記剰余を決定する段階を前記プロセッサに実行させる命令を含む、請求項13に記載の媒体。
  15. 前記命令は、(1)前記モジュラ剰余をパケットに含む段階および(2)前記モジュラ剰余をパケットに含まれたモジュラ剰余と比較する段階のうち少なくとも1つを前記プロセッサに実行させる命令をさらに含む、請求項9に記載の媒体。
JP2010516132A 2007-07-13 2008-06-30 メッセージ剰余の決定 Expired - Fee Related JP5384492B2 (ja)

Applications Claiming Priority (3)

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

Publications (2)

Publication Number Publication Date
JP2010534007A true JP2010534007A (ja) 2010-10-28
JP5384492B2 JP5384492B2 (ja) 2014-01-08

Family

ID=40254146

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010516132A Expired - Fee Related JP5384492B2 (ja) 2007-07-13 2008-06-30 メッセージ剰余の決定

Country Status (5)

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

Families Citing this family (12)

* 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
US20090186534A1 (en) * 2008-01-17 2009-07-23 Amphenol Corporation Electrical Connector Contact
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
DE102017208826A1 (de) * 2017-05-24 2018-11-29 Wago Verwaltungsgesellschaft Mbh Eingebettete zyklische Redundanzprüfungswerte

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0385923A (ja) * 1989-08-30 1991-04-11 Fujitsu Ltd Crc演算方式
JP2000201085A (ja) * 1999-01-05 2000-07-18 Ntt Mobil Communication Network Inc 符号化方法および復号方法
WO2003090362A1 (fr) * 2002-04-22 2003-10-30 Fujitsu Limited Codeur et decodeur de detection d'erreur, et diviseur

Family Cites Families (59)

* 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
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
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
WO2001061868A2 (en) 2000-02-17 2001-08-23 Analog Devices, Inc. Method, apparatus, and product for use in generating crc and other remainder based codes
GB2360177B (en) * 2000-03-07 2003-08-06 3Com Corp Fast frame error checker for multiple byte digital data frames
EP1279077B1 (en) 2000-04-25 2005-08-31 Switchforward Limited 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
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
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
US7512230B2 (en) 2002-04-30 2009-03-31 She Alfred C Method and apparatus of fast modular reduction
US7346159B2 (en) 2002-05-01 2008-03-18 Sun Microsystems, Inc. Generic modular multiplier 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
JP2007511982A (ja) 2003-11-19 2007-05-10 ハネウェル・インターナショナル・インコーポレーテッド 隠しデータをチェックすることを用いたメッセージ・エラーの確認
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
US7529924B2 (en) 2003-12-30 2009-05-05 Intel Corporation Method and apparatus for aligning ciphered data
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
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 (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0385923A (ja) * 1989-08-30 1991-04-11 Fujitsu Ltd Crc演算方式
JP2000201085A (ja) * 1999-01-05 2000-07-18 Ntt Mobil Communication Network Inc 符号化方法および復号方法
WO2003090362A1 (fr) * 2002-04-22 2003-10-30 Fujitsu Limited Codeur et decodeur de detection d'erreur, et diviseur

Also Published As

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

Similar Documents

Publication Publication Date Title
JP5384492B2 (ja) メッセージ剰余の決定
US11048579B2 (en) Performing a cyclic redundancy checksum operation responsive to a user-level instruction
JP4643957B2 (ja) メッセージのcrcを計算するための方法
US8468439B2 (en) Speed-optimized computation of cyclic redundancy check codes
JP5164277B2 (ja) 一組の多項式を用いたメッセージ剰余の決定
JP3233860B2 (ja) リードソロモン復号器
US10248498B2 (en) Cyclic redundancy check calculation for multiple blocks of a message
US20050010630A1 (en) Method and apparatus for determining a remainder in a polynomial ring
US6904558B2 (en) Methods for computing the CRC of a message from the incremental CRCs of composite sub-messages
US20030061561A1 (en) Method, apparatus, and product for use in generating CRC and other remainder based codes
JP2011123884A (ja) プログラム可能な巡回冗長度検査(crc)計算のための命令セット・アーキテクチャ
US7886214B2 (en) Determining a message residue
US8042025B2 (en) Determining a message residue
US7162679B2 (en) Methods and apparatus for coding and decoding data using Reed-Solomon codes
US7613980B2 (en) System for computing a CRC value by processing a data message a word at a time
US8312363B2 (en) Residue generation
JP3812983B2 (ja) エラー評価多項式係数計算装置
KR20080052039A (ko) 순환 중복 검사에 의한 정정 에러를 검사하는 방법 및 그장치
GB2408608A (en) Cyclic Redundancy Checks

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120306

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120606

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120613

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120627

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130219

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130510

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130903

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131002

R150 Certificate of patent or registration of utility model

Ref document number: 5384492

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees