JP5164277B2 - 一組の多項式を用いたメッセージ剰余の決定 - Google Patents

一組の多項式を用いたメッセージ剰余の決定 Download PDF

Info

Publication number
JP5164277B2
JP5164277B2 JP2009532617A JP2009532617A JP5164277B2 JP 5164277 B2 JP5164277 B2 JP 5164277B2 JP 2009532617 A JP2009532617 A JP 2009532617A JP 2009532617 A JP2009532617 A JP 2009532617A JP 5164277 B2 JP5164277 B2 JP 5164277B2
Authority
JP
Japan
Prior art keywords
polynomials
polynomial
stage
stages
bits
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.)
Expired - Fee Related
Application number
JP2009532617A
Other languages
English (en)
Other versions
JP2010507290A (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 JP2010507290A publication Critical patent/JP2010507290A/ja
Application granted granted Critical
Publication of JP5164277B2 publication Critical patent/JP5164277B2/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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)
  • Apparatus For Radiation Diagnosis (AREA)

Description

例えば、ネットワーク接続を介し伝送される、または、記憶装置から読み出されるデータは、さまざまな理由により破壊される可能性がある。例えば、ノイズが多い伝送ラインは、"1"の信号を"0"に変えてしまう、または、その逆もありうる。破壊を検知すべく、データは、チェックサムなどのデータから生じた何らかの値を伴うことが多い。データの受信機は、当該チェックサムを再計算し、オリジナルのチェックサムと比較することによってデータがエラーなしに伝送されたらしいことを確認する。
データの破壊を識別する一般的な技術は、巡回冗長検査(CRC)として知られている。厳密な意味においてはチェックサムではないが、CRC値は、それと同じようによく用いられうる。すなわち、最初に計算されたCRCと再計算されたCRCとの比較によって、非常に高い可能性でデータが破壊されたことを識別できる。CRC計算は、メッセージビットを多項式として解釈することに基づく。その場合、メッセージの各ビットは、多項式係数を表す。例えば、"1110"のメッセージは、多項式x+x+x+0に対応する。メッセージは、キーとして知られる他の多項式で除される。例えば、他の多項式は、"11"またはx+1であってよい。CRCは、メッセージをキーで除した余りである。しかしながら、CRCの多項式の除法は、有限体GF(2)(すなわち、整数モジュロ2の組)上で計算されるところが通常の除算とは幾分異なる。もっと簡単に言えば、偶数の係数はゼロになり、奇数の係数は、1になる。
CRC計算を実行するためにさまざまな技術が開発されてきた。第1の技術は、専用CRC回路を用いて特定の多項式キーを実装する。この方法は、設置面積が非常に小さく、非常に高速の回路を生み出すことができる。しかしながら、この速度とサイズだと、多くの場合、用いることができる多項式キーを柔軟に変えられないという問題が生じる。また、多数のキーをサポートすることにより、サポートされるキーごとに回路の設置面積をほぼ線形に増大させてしまうこともある。
第2の一般的に用いられている技術は、CRCルックアップテーブルを特徴とするものであり、所定の多項式と、データ入力および余りのセットとに対し、すべての可能性のあるCRC結果が計算されて格納される。CRCを決定することにより、テーブルルックアップの実行は簡単になる。しかしながら、この方法は、一般的に、回路設置面積が比較的大きく、用いられる多項式キーを変更するためにはルックアップテーブルの全体的な再配置が必要になる場合がある。
第3の技術は、プログラム可能なCRC回路である。これによって、ほとんどの多項式がダイ領域内の合理的な有効部分でサポートされうるようになる。しかしながら、この方法は、前述の方法に比べ、処理速度がかなり遅い。
予め計算された一組の多項式を用いて多項式除算の剰余を決定をする一組のステージを示す図である。
予め計算された一組の多項式を示す図である。
予め計算された多項式および入力データに並列演算を実行するステージを示す図である。
サンプルステージのデジタル論理ゲートを示す図である。 サンプルステージのデジタル論理ゲートを示す図である。
多項式除算の剰余を計算するシステムの図である。
図1は、プログラム可能な巡回冗長検査(CRC)回路100のサンプル実装を示す。回路100は、大まかに言って、ルックアップテーブルCRC実装と同じパフォーマンスを実現でき、典型的な多項式に演算を実行する専用CRC回路を実現した場合と比べるとやや遅いかもしれない。ダイ領域の観点では、回路100は、ルックアップテーブルを用いる場合より大きさが何桁か小さく、専用の回路を実現した場合の桁範囲でありうる。
回路100は、多項式キーから生じた一連の予め計算された多項式100から100を用いる。予め計算された多項式100から100のビットは、記憶素子(例えばレジスタまたは記憶場所)へとロードされ、ステージ106dにより出力される最終的なCRC結果になる前に、より小さい中間値へと初期メッセージを連続的に縮小する一連のステージ106aから106dへと送られる。例えば、図に示すように、ステージ106aから106dにより出力されるデータrからrの幅は、各ステージを経るにつれ減少していく。予め計算された多項式100から100、および、ステージ106dから106aは、最終的な剰余に関し、最初の入力rと、ステージ出力rからrとがそれぞれ合同するよう構築される(すなわち、r≡r≡r≡r)。さらに、予め計算された多項式100から100により、ステージ106aから106dは、多数の計算を並行して実行できるようになり、CRC剰余を決定するのに必要なゲート遅延数は減少する。異なるキーごとに回路110を再プログラムすることにより、予め計算された多項式の適切な組を記憶素子100aから100dへとロードするのを簡単にすることができる。
図2は、予め計算された多項式g(x)、100aから100d(例えばg,g,gおよびgのサンプルセットを示す。これらの多項式100aから100は、それぞれ連続する多項式100aから100の組が、(CRC)多項式(gなど)の生成順序において、先頭のビット(i+kビット)の次にi個のゼロ102(網掛け部分)が続き、kビットのデータ104で終るという特徴を有する。これらの多項式100aから100の形式により、各ステージ106aから106dは、入力データを減らしてCRC値と同等値まで小さくすることできる。例えば、9ビット多項式g(x)から一組の多項式{g(x),g(x),g(x)}を導出した後、16ビットの入力データについてCRCが決定されうる。演算中、最終ステージ106dで8ビットの剰余が出力されるまで、g(x)を適用することにより、入力データを16ビットから12ビットに減少し、g(x)を適用することにより、次のデータが12ビットから10ビットへと減少するなどしてよい。さらに、以下に詳しく述べるが、所定のステージ106aから106dは、多項式100aから100を用いて入力データの相互排除領域を並行して処理してよい。
より厳密には、g(x)をk+1ビットのk次のCRC多項式とし、剰余がkビットにわたるように先頭のビットを常に設定する。多項式g(x)は以下のように定義される。
Figure 0005164277
多項式g(x)は、以下のように定義される。
Figure 0005164277
このg(x)の定義によれば、一連の多項式は、選択されたiの値、および、オリジナル多項式g(x)の関数として計算されうる。
CRC多項式g(x)は、g(x)で割ることができる。
Figure 0005164277
このことから、回帰を定義することができ、各ステージにおいて、メッセージm(x)は予め計算された多項式の1つ分だけ部分的に減少する。
m(x)を2ビットメッセージとし、r(x)をkビットの結果とする。
Figure 0005164277
m(x)は、xだけシフトし、結果として生じたCRC剰余をメッセージm(x)に追加する空間が生じる。したがって、
Figure 0005164277
i≧1である。したがって、r(x)≡r(x)mod g(x)となる。これは、iへの帰納法により証明される。
Figure 0005164277
最終的に、r(x)=r(x)であり、これは、上記のような観察から得られる。
Figure 0005164277
これらの方程式は、さまざまな回路に実装されうるCRC計算へのアプローチを提供する。例えば、図3は、上記アプローチを実装する回路の高水準アーキテクチャを示す。図に示すように、所定のステージ106aから106dは、予め計算された多項式g(x)のkの最下位ビット104の倍数をステージ入力から減じることにより、入力データrを減少させる。また、結果として生じたステージ出力は、幅がより小さいCRC計算についてのステージ入力と一致する。
図に示されるサンプルの実装は、g(x)のk個の最下位ビットと、入力データのそれぞれのビットとの論理積110aから110dをとる(例えば乗算する)ステージ106aから106dを特徴とする。gi(x)のi個のゼロ102および最初の"1"は、ステージの計算結果に影響を及ぼさないので、ステージでは必要ない。したがって、回路は、gi(x)のk個の最下位ビットのみを格納することを必要とする。
演算を説明すべく、rは"1010..."を開始する値を有し、g(x)のk個の最下位ビットは、"001010010"の値を有すると仮定すると、第1の110aおよび第3の110cANDゲートは、"001010010"を出力し、一方、第2の110bおよび第4の110dANDゲートは、ゼロを出力するだろう。図3の網掛けされたノードが示すように、AND110aから110dゲートの出力は、入力データのそれぞれのビット位置に従い、ゲート110aから110b出力をシフトさせる(すなわち乗算する)よう整列配置されうる。すなわち、入力データの最上位ビットに演算を実行するゲート110aの出力は、i−1ビットだけシフトし、それぞれ次のゲート110bから110dは、このシフト分1だけ減少する。例えば、rの最上位ビットに対応するゲート110aの出力は、入力データに対し3ビット分シフトし、rの次の最上位ビットに対応するゲート110bの出力は、例えば2ビット分シフトしてよい。そして、入力データは、ゲート110aから110dの出力のシフトされた位置合わせ分だけ減じられて(例えば、排他的論理和がとられて)よい。この減算の結果、i>0についての多項式におけるゼロ102の数に等しいビット数だけ入力データが減少する。本質的に入力データr0のi個の最上位ビットは、セレクタとして機能し、gi(x)のk個の最下位ビットのいくらかの倍数分だけ入力データから引くか、または、入力データを変更しないゼロを出力するかのいずれかを行う。
図に示すように、ステージ106aのANDゲート110aから110dは、入力データの排他的な部分で機能することにより、並列に動作しうる。すなわち、ANDゲート110aから110dは、rの異なるビットをそれぞれ同時に処理することができる。この並列処理により、CRC計算は、著しく速くなりうる。また、異なるステージによるデータの並列処理も行うことができる。例えば、rの最上位ビットは、変化せずにステージ106bまで行くので、ステージ106bのゲート110eは、演算の極めて初期にその選択を行うことができる。
図4Aは、図3に示された構造に適合するサンプルステージ106aを実装した場合のデジタル論理ゲートを示す。本例では、ステージ106aは、g4(x)の16ビット入力値(例えば、r=入力データ[15:0])、および、k個の最下位ビットを受信する。ステージ106aは、i組のANDゲート110aから110dにより入力値のi個の最上位ビットを処理し、110aから110dは、g4(x)の各入力データビットと、k個の最下位ビットのそれぞれとの論理積をとる。図4におけるk個のANDゲート110aから110dの各組は、図3に示される単一のANDゲートの概念描写と一致する。ANDゲートアレイ110aから110dの出力は、入力データビット位置に基づき整列配置され、入力データの残りのビットから、シフトされたANDゲート110aから110d出力を減じるXORゲート112aから112dツリーへと送られる(すなわち、入力データはi個の最上位ビットより小さい)。
図4Bは、出力_1データ[11:0]を受信し、出力_2データ[9:0]を生成する後続ステージ106bのデジタル論理ゲートを示す。ステージ106bは、ステージ106aにより出力される12ビット値を受信し、g(x)を用いて12ビット値をCRCと等しい10ビット値まで減少させる。ステージ106aおよび106bは、g(x)のk個の最下位ビットに演算を実行するANDゲートのi個のアレイと、ステージ入力からシフトされたANDゲート出力を減じることにより、ステージ出力値を生成するXORツリーとからなる同じ基礎構造を共有する。異なる値iについての他のステージも同様に形成される。
図3、4A、および、4Bに示される構造は、単なる例であり、他のさまざまな実装が用いられてよい。例えば、サンプル図では、各ステージ106aから106dは、入力データのi個の最上位ビットを並列で処理した。他の実装では、iより大きいまたは小さい多数のビットが並列に用いられてよいが、所定のステージについて出力データのサイズを縮小する場合にはうまくいかないだろう。
上記の構造は、予め計算された多項式を導出する際に用いられてよい。例えば、g(x)に関連する記憶素子をゼロにし、多項式キーのk個の最下位ビットをgにロードすることにより導出されうる。連続するgに関連するビットは、データ入力としてのxk+iを回路に適用し、gに関連する値としてgステージにより出力された、結果として生じたk個の最下位ビットを格納することにより決定されうる。例えば、gについての多項式を導出すべく、xk+2は、回路として適用され、gステージの結果として生じたkビット出力は、g多項式の値としてロードされうる。
図5は、上記技術を用いたサンプルCRCの実装を示す。この実装は、32ビットセグメント120の大きいメッセージの連続部分で機能する。図に示すように、このサンプルの実装は、124および126をシフトし、メッセージの所定の部分120と任意の既存の剰余122との排他的論理和128をとり、ステージ106aから106f、および、それぞれ予め計算された多項式g(x)のk個のビットを用いてCRC剰余を計算する。また、連続するステージ106aから106eは、ステージ106fにより剰余値が出力されるまで、入力データをiビット分減少させる。そして、回路は、次のメッセージ部分124の処理に用いられる122に剰余をフィードバックする。最終メッセージ部分120が適用された後に残る剰余は、メッセージ全体に対して決定されるCRC値である。この剰余は、メッセージに加えられるか、または、受信されたCRC値と比較されることにより、データが破壊されている可能性があるかどうかが決定される。
図5に示すシステムは、(L+1)ステージ106から106fを特徴としており、多項式の形式は、i={n=1からLに対し0,2n−1}である。しかしながら、このiの厳密な幾何数列は必要なく、メッセージを縮小するのにiの他の値を用いてよい。さらに、低多項式レベル(例えば、i<4)では、図3、4Aおよび4Bで示されるステージ構造を採用せず、従来のビットシリアル、または、他の方法でg0を用いて入力値を処理する方が効率的でありうる。
上記の技術は、CRCの計算速度、電力効率、および、回路設置面積を改良するために用いられうる。このように、上記技術は、ネットワークプロセッサ、セキュリティプロセッサ、チップセット、ASIC(特定用途向け集積回路)などのさまざまな環境において、高速クロックを操作する能力のあるプロセッサまたはプロセッサコア内の機能ユニットとして用いられる一方で、特定の値を有する任意の多項式をサポートする。例えば、上記CRC回路は、1つ以上のプロセッサ/プロセッサコアに結合される1つ以上のメディアアクセスコントローラ(例えばイーサネット(登録商標)MAC)を有するデバイスに集積されてもよい。このような回路は、プロセッサ自体、ネットワークインターフェースカード(NIC)、チップセット内などにコプロセッサとして集積されてもよい。CRC回路は、ネットワークパケット(例えばパケットヘッダおよび/またはペイロード)内に含まれるデータに働きかけうる。さらに、CRC計算に関連して説明してきたが、本技術は、GF(2)(例えば、楕円曲線暗号技術(ECC))における他の剰余計算などのさまざまな計算に適用されうる。
本願明細書中に用いられる回路という用語は、ハードワイヤード回路、デジタル回路、アナログ回路、プログラム可能な回路などの実装を含む。プログラム可能な回路は、記憶媒体におけるコンピュータ命令に働きかけうる。
他の実施形態も以下の請求項の範囲内に含まれる。

Claims (15)

  1. メッセージm(x)の剰余の決定に用いられる方法であって、
    第1の多項式g(x)から導出される一組の多項式のそれぞれの多項式の少なくとも一部分をロードする段階と、
    一組のステージを用い、m(x) mod g(x)に対応するメッセージの剰余を決定する段階と、
    を備え、
    前記一組のステージの個々のステージは、前記一組の多項式のそれぞれの少なくとも一部分を、前記一組のステージの前段のステージにより出力されたデータに適用
    前記一組のステージのそれぞれは、前段のステージにより出力されたデータr i−1 (x)を受信し、r (x)≡r i−1 (x)となるようにr (x)を出力し、
    前記一組の多項式は、複数の値iについて
    Figure 0005164277
    と一致し、iおよびkは整数である、
    方法。
  2. 前記一組の多項式は、プレフィックスおよびkビットの残り部分を有する複数の多項式を含み、kは、正の整数であり、前記一組の多項式における多項式の前記プレフィックスは、一組のゼロ以上の連続するゼロが後に続く1に等しい最上位ビットからなり、前記一組の1つ以上の連続するゼロにおける複数のゼロは、前記一組の多項式をデータに適用する順に減少する、請求項1に記載の方法。
  3. (1)ネットワークを介した伝送のために、前記メッセージに前記剰余を加える段階と、(2)前記剰余と、予め計算された剰余とを比較する段階と、の少なくとも一方の段階をさらに備える、請求項1または2に記載の方法。
  4. 前記一組のステージの個々のステージにおいて、それぞれのステージに関連する前記一組の多項式の1つの少なくとも一部分は、前記それぞれのステージにより受信される入力データのそれぞれのビットで多項式乗算される、請求項2に記載の方法。
  5. 多項式乗算に用いる前記入力データのそれぞれのビットは、前記それぞれの多項式のプレフィックスにおける前記一組の1つ以上の連続するゼロの数に等しい数のビットからなる、請求項に記載の方法。
  6. 前記入力データのそれぞれのビットによる多項式乗算は、前記入力データのそれぞれのビットに対し並列に行われる、請求項4または5に記載の方法。
  7. 有限体GF(2)における第1の多項式g(x)に関し、メッセージmの剰余を決定するのに用いられる装置であって、
    前記第1の多項式g(x)から導出される一組の多項式のそれぞれの少なくとも一部分を格納する一組の記憶素子と、
    前記一組の記憶素子のそれぞれに結合される一組のステージと、
    を備え、
    前記一組のステージにおけるそれぞれのステージは、前記一組の記憶素子のそれぞれに格納された値を前記ステージのそれぞれの入力に適用するデジタル論理ゲートを有
    前記一組のステージのそれぞれは、前段のステージにより出力されたデータr i−1 (x)を受信し、r (x)≡r i−1 (x)となるようにr (x)を出力し、
    前記一組の多項式は、複数の値iについて
    Figure 0005164277
    と一致する多項式を含み、iおよびkは整数である、
    装置。
  8. 前記一組の多項式は、プレフィックスおよびkビットの残り部分を有し、kは正の整数であり、前記一組の多項式における多項式の前記プレフィックスは、一組のゼロ以上の連続するゼロが後に続く1に等しい最上位ビットからなり、前記一組のゼロ以上のゼロにおける連続するゼロの数は、前記一組の多項式を入力に適用する順に減少する、請求項に記載の装置。
  9. 前記一組のステージの個々のステージにおいて、それぞれのステージに関連する前記それぞれの多項式のkビットの残り部分は、前記それぞれのステージの入力データビットと共にANDゲートに送られる、請求項に記載の装置。
  10. 前記一組のステージのうち、1つ以上の連続するゼロを持つ前記プレフィックスを有する多項式に対応する個々のステージにおいて、前記ANDゲートに送られた前記それぞれの入力データビットは、前記1つ以上の連続するゼロのそれぞれの多項式プレフィックスにおける連続するゼロの数に等しい数のビットからなる、請求項に記載の装置。
  11. 前記デジタル論理ゲートは、前記ANDゲートの出力と、前記ステージ入力データの最下位ビットとに結合された排他的論理和(XOR)ゲートのツリーを有する、請求項9または10に記載の装置。
  12. 前記記憶素子に前記一組の多項式の新しい値をロードする回路をさらに備える、請求項7から11のいずれか一項に記載の装置。
  13. ネットワークからメッセージを受信する少なくとも1つのメディアアクセスコントローラ(MAC)と、
    前記少なくとも1つのメディアアクセスコントローラに通信可能に結合される少なくとも1つのプロセッサと、
    有限体GF(2)において第1の多項式g(x)に関し、前記メッセージの剰余を決定する回路と、
    を備え、
    前記回路は、
    前記第1の多項式g(x)から導出される一組の多項式を格納する一組の記憶素子と、
    前記一組の記憶素子のそれぞれに結合される一組のステージと、
    を備え、
    前記一組のステージにおけるそれぞれのステージは、前記一組の記憶素子のそれぞれに格納された値を前記それぞれのステージのそれぞれの入力に適用するデジタル論理ゲートを有
    前記一組のステージのそれぞれは、前段のステージにより出力されたデータr i−1 (x)を受信し、r (x)≡r i−1 (x)となるようにr (x)を出力し、
    前記一組の多項式は、複数の値iについて
    Figure 0005164277
    と一致する多項式を含み、iおよびkは整数である、
    デバイス。
  14. 前記一組の多項式は、プレフィックスおよびkビットの残り部分を有し、kは正の整数であり、前記一組の多項式における一の多項式の前記プレフィックスは、一組のゼロ以上の連続するゼロが後に続く1に等しい最上位ビットからなり、前記一組のゼロ以上のゼロにおける連続するゼロの数は、前記一組の多項式を入力に適用する順に減少する、請求項13に記載のデバイス。
  15. 前記一組のステージの個々のステージにおいて、それぞれのステージに関連する前記それぞれの多項式のkビットの残り部分は、前記それぞれのステージの入力データビットと共にANDゲートに送られ、
    前記一組のステージのうち、1つ以上の連続するゼロを持つプレフィックスを有する多項式に対応する個々のステージにおいて、前記ANDゲートに送られた前記それぞれの入力データビットは、1つ以上の連続するゼロのそれぞれの多項式のプレフィックスセットにおける連続するゼロの数に等しい多数のビットからなる、請求項13または14に記載のデバイス。
JP2009532617A 2006-10-12 2007-10-12 一組の多項式を用いたメッセージ剰余の決定 Expired - Fee Related JP5164277B2 (ja)

Applications Claiming Priority (3)

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

Publications (2)

Publication Number Publication Date
JP2010507290A JP2010507290A (ja) 2010-03-04
JP5164277B2 true JP5164277B2 (ja) 2013-03-21

Family

ID=39283673

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009532617A Expired - Fee Related JP5164277B2 (ja) 2006-10-12 2007-10-12 一組の多項式を用いたメッセージ剰余の決定

Country Status (6)

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

Families Citing this family (37)

* 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
US20120155466A1 (en) 2002-05-06 2012-06-21 Ian Edward Davis Method and apparatus for efficiently processing data packets in a computer network
US7649885B1 (en) 2002-05-06 2010-01-19 Foundry Networks, Inc. Network routing system for enhanced efficiency and monitoring capability
US20090279558A1 (en) * 2002-05-06 2009-11-12 Ian Edward Davis Network routing apparatus for enhanced efficiency and monitoring capability
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
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
US8509236B2 (en) 2007-09-26 2013-08-13 Foundry Networks, Llc Techniques for selecting paths and/or trunk ports for forwarding traffic flows
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)
WO2009091958A1 (en) * 2008-01-17 2009-07-23 Amphenol Corporation Interposer assembly and method
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
CN106909339A (zh) * 2017-02-22 2017-06-30 深圳职业技术学院 一种基于二叉树结构的有限域乘法器
CN108540137B (zh) * 2018-03-02 2021-09-03 江西清华泰豪三波电机有限公司 一种循环冗余校验码生成方法与装置

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
EP1499024B1 (en) 2002-04-22 2010-06-30 Fujitsu Limited Error-detection encoder and decoder
US7512230B2 (en) 2002-04-30 2009-03-31 She Alfred C Method and apparatus of fast modular reduction
US7508936B2 (en) 2002-05-01 2009-03-24 Sun Microsystems, Inc. Hardware accelerator for elliptic curve cryptography
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
US8144827B2 (en) 2004-08-13 2012-03-27 Agency For Science, Technology And Research Method for determining a residual frequency offset, communication system, method for transmitting a message, transmitter, method for processing a message and receiver
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)

Also Published As

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

Similar Documents

Publication Publication Date Title
JP5164277B2 (ja) 一組の多項式を用いたメッセージ剰余の決定
US8468439B2 (en) Speed-optimized computation of cyclic redundancy check codes
US7458006B2 (en) Methods for computing the CRC of a message from the incremental CRCs of composite sub-messages
US4873688A (en) High-speed real-time Reed-Solomon decoder
US7028247B2 (en) Error correction code circuit with reduced hardware complexity
US6904558B2 (en) Methods for computing the CRC of a message from the incremental CRCs of composite sub-messages
US6044389A (en) System for computing the multiplicative inverse of a field element for galois fields without using tables
US6122766A (en) Reed-Solomon decoder having a three-stage pipeline structure
US7827384B2 (en) Galois-based incremental hash module
US10248498B2 (en) Cyclic redundancy check calculation for multiple blocks of a message
JP5384492B2 (ja) メッセージ剰余の決定
JP4764973B2 (ja) Crc値の算出装置
US20170250710A1 (en) Method and device for calculating a crc code in parallel
US20060168495A1 (en) Computation of cyclic redundancy check
EP1102406A2 (en) Apparatus and method for decoding digital data
US8312363B2 (en) Residue generation
JP3953397B2 (ja) リードソロモン符号化回路およびリードソロモン復号化回路
US20070011592A1 (en) Decoder architecture for Reed Solomon codes
Hu et al. Low complexity parallel Chien search architecture for RS decoder
Lin et al. A long block length BCH decoder for DVB-S2 application
US20140280423A1 (en) Method and system of improved reed-solomon decoding
Chang et al. Design and implementation of a reconfigurable architecture for (528, 518) Reed-Solomon codec IP
Hajare et al. Design and Implementation of Parallel CRC Generation for High Speed Application
Nelson et al. Systolic architectures for decoding Reed-Solomon codes
GB2408608A (en) Cyclic Redundancy Checks

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120313

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120612

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: 20121120

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121217

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151228

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees