JP3306210B2 - Crcコードの確認方法及び装置 - Google Patents

Crcコードの確認方法及び装置

Info

Publication number
JP3306210B2
JP3306210B2 JP03293894A JP3293894A JP3306210B2 JP 3306210 B2 JP3306210 B2 JP 3306210B2 JP 03293894 A JP03293894 A JP 03293894A JP 3293894 A JP3293894 A JP 3293894A JP 3306210 B2 JP3306210 B2 JP 3306210B2
Authority
JP
Japan
Prior art keywords
crc
code
data
value
predetermined
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
JP03293894A
Other languages
English (en)
Other versions
JPH0715354A (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.)
Agilent Technologies Inc
Original Assignee
Agilent Technologies Inc
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 Agilent Technologies Inc filed Critical Agilent Technologies Inc
Publication of JPH0715354A publication Critical patent/JPH0715354A/ja
Application granted granted Critical
Publication of JP3306210B2 publication Critical patent/JP3306210B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

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)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Detection And Correction Of Errors (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、巡回符号検査(CR
C)コードの確認方法及び装置に関するものである。
【0002】
【従来技術と問題点】CRCコードは、通信プロセス時
に生じる可能性のあるエラーを検出するために、デジタ
ル・データ通信の広範囲にわたって利用されている。通
信すべきメッセージは、2進デジタル形式で組み立てら
れ、符号化されるのが普通であり、CRCコードは、所
定の多ビット数と所定のアルゴリズムを利用して導き出
される。次数が32の下記多項式によって、この目的の
ために広く用いられている多ビッ数の1つを表すことが
できる: g(x)=x32+x26+x23+x22+x16+x12+x11+x10+x8 +x7 + x5 +x4 +x2 +x+1 この技法の実施例の1つでは、出力段(ゼロから付番し
て、段31)に排他的ORゲートを設け、レジスタの内
容のシフトと同期して、通信すべきメッセージの順次ビ
ットに対して出力信号の排他的OR演算を施すようにし
た32段のシフト・レジスタをもちいる。この排他的O
Rゲートの出力は、直接初段(段0)に送られ、さら
に、g(x)の項に対応する残りの段のそれぞれ(すな
わち、段26、23、...、2、及び、1)をその先
行段に結合する、後続の排他的ORゲートに送られる
(図1参照)。シフト・レジスタは、最初に、全て1の
ローディングが施され、次に、解説のように通信すべき
メッセージを受信し、全メッセージが入力されると、シ
フト・レジスタの内容が、出力され、反転されて、CR
Cコードが生じ、従来どおり、メッセージに付加され
る。受信すると、メッセージ及びその付属CRCコード
は、同様に、あらかじめ全てが1のローディングを施さ
れた、同様の構成のシフト・レジスタに入力され、全て
のメッセージ及びCRCコードが入力されると、シフト
・レジスタには、多項式x63+x62+....+x33+
x32を多項式g(x)で割った剰余に対応する2進値1
100 0111 0000 0100 1101 1
101 0111 1011(C704DD7BH )が
納められるはずである。結果が他の値になったとする
と、メッセージは、1つ以上のエラーを有していること
になる。
【0003】こうした実施例は、有効であり、信頼でき
るが、不利な環境もある。現在高速データ転送のために
実施されている技法の1つに、非同期転送モード(AT
M)として知られるものがある。例えば、建物内におけ
る「局所」使用のためにATMを実施する場合、単一の
メッセージが、比較的大きくなる可能性がある(例え
ば、65568バイトまで)。送信目的の場合、このメ
ッセージは、長さが正確に48バイトの倍数になるまで
埋め込まれ、次に、連続した48バイトのセグメントに
分割される。ATMプロトコルによれば、これらのセグ
メントは、送信の場合と同じ順序で受信されるが、同じ
または別の受信者を意図した別の送信からのセグメント
を散在させることも可能である。
【0004】受信メッセージに関してCRCコードを確
認するための、可能性のあるアプローチの1つは、メッ
セージの一般処理の一部として、CRC確認結果を導き
出すことである。ただし、こうした処理は、一般に、ソ
フトウェア・プログラムの制御下において、データ処理
装置によって実施され、各メッセージの処理速度が時間
的にかなり不利になる。
【0005】原理上は、メッセージの受信時に、その順
次セグメントをシフト・レジスタに供給することによっ
て、各メッセージ毎に、リアル・タイムでCRCの確認
結果を導き出すことが可能であり、散在する他のメッセ
ージに関するセグメントは、別個の各メッセージ毎に、
別個のシフト・レジスタを設けるか、あるいは、異なる
メッセージに関するセグメントを受信する毎に、シフト
・レジスタの内容を保管及び復元することによって処理
可能である。しかし、前者では、回路ハードウェアが極
めて高価となり、後者では、1つのメッセージに関する
シフト・レジスタの内容及びメッセージのIDを保管
し、次のセグメントが到着したメッセージを識別して、
そのメッセージに関する既に保管されている内容を検索
し、レジスタにロードするので、望ましくない遅延を生
じる。さらに、両方のアプローチとも、同時に受信可能
な異なるメッセージの数に制限がある。
【0006】
【発明の目的】新規なCRC確認装置と方法により前記
の問題点を解決する、特に、少ないハードウェアで高
速、メッセージの数の制限を除くことを目的とする。
【0007】
【発明の概要】本発明の態様の1つによれば、受信した
各データ・サブブロック毎に、所定の初期設定値からそ
れぞれの部分CRCコードを導き出すステップと、前記
部分CRCコードを組み合わせて、受信した完全なデー
タ・ブロックに関するCRC確認値を導き出すステップ
と、受信した完全なデータ・ブロックに関する前記CR
C確認値の妥当性をテストするステップから構成され
る、通信媒体を介して複数のサブブロックとして転送さ
れるデータ・ブロックに関するCRCコードを確認する
ための方法が得られる。
【0008】この方法を利用して、各ATMセグメント
毎に、独立した部分CRCコードが、導き出され、それ
に関連づけて保管され、次に、CRCコード生成に関す
る開始値(例えば、上述のシフト・レジスタの内容)
が、所定の初期設定値(例えば、全てゼロ)にリセット
される。引き続き、完全なメッセージを構成する全セグ
メントに関する部分CRCコードを上述のように組み合
わせることによって、完全なメッセージに関連してお
り、メッセージがエラーの影響を受けているか否かを検
査するために用いることが可能な、CRC確認値が、導
き出される。部分CRCコードの導出は、好都合なこと
に、専用ハードウェアによって高速度で行うことが可能
であり、一方、部分CRCコードの組み合わせは、あま
り時間的に不利にならないように、ソフトウェア・プロ
グラムの制御を受ける回路を用いて行うことが可能であ
る。本発明の場合、あるセグメントが、CRCコードの
導出の一部として、どのメッセージに属しているかを識
別する必要はなく、原理上、同時に受信可能なメッセー
ジ数には制限がない。
【0009】本発明のもう1つの態様によれば、受信し
た各データ・サブブロック毎に、所定の初期設定値から
それぞれの部分CRCコードを導き出すための手段と、
前記部分CRCコードを組み合わせて、受信した完全な
データ・ブロックに関するCRC確認値を導き出すため
の手段と、受信した完全なデータ・ブロックに関する前
記CRC確認値の妥当性をテストするための手段から構
成される、通信媒体を介して複数のサブブロックとして
転送されるデータ・ブロックに関するCRCコードを確
認するための装置が得られる。
【0010】
【実施例】図2を参照すると、光ファイバ入力ライン1
0によってATMデータ・ストリームを受信し、該デー
タ・ストリームにおけるメッセージのCRCコードを確
認するための装置には、ライン10に結合された入力イ
ンターフェイス12が備わっている。図2に示すよう
に、ATMデータ・ストリームは、各セルが、システム
操作情報を有する5バイトのヘッダHと、完全なATM
メッセージのセグメントの1つを構成する48バイトの
ペイロードを備えた、セル・シーケンスから構成される
ものとして取り扱われる。順次セルには、異なるメッセ
ージに関するセグメントを含むことが可能であり、その
セグメントを含むセルのヘッダHにおける情報には、セ
グメントが属しているメッセージのIDが含まれてい
る。
【0011】入力インターフェイス12は、ライン10
からの光信号を電気信号に変換し、各セルにセグメント
・データを納めたデータ信号を発生し、該信号の2進ビ
ットの生起に同期したクロック信号を発生し(クロック
回復)、受信したデータ・ストリームのATMセル間に
おける境界を突き止めて、セル開始(SOC)信号を発
生し、セルのヘッダから、各セグメントが属しているメ
ッセージのIDを抽出する。これらの機能を実施する技
法及び回路構成は、当該技術の熟練者にとって周知のと
ころであり、本発明の一部をなすものではないので、こ
こでは、これ以上の説明を行わない。
【0012】データ信号、クロック信号、及び、SOC
信号が、上述のように、かつ、図1に示すように、CR
Cコード発生を実施するように構成された32ビットの
シフト・レジスタ14に供給される。図1に示す接続に
加えて、シフト・レジスタ14は、さらに2つの入力、
すなわち、クロック信号を受信してレジスタ内のデータ
のシフトを同期化するクロック入力、及び、SOC信号
を受信してシフト・レジスタの現在の入力を出力させ
(記憶し)、シフト・レジスタをリセットして、全てゼ
ロの所定の初期設定値にする制御入力とを備えている。
これらの入力の実施についても、当該技術の熟練者には
明らかである。
【0013】シフト・レジスタ14の出力は、記憶装置
16に結合され、該記憶装置は、入力インターフェイス
12からのデータ信号、クロック信号、及び、メッセー
ジIDも受信する。SOC信号が生じると、シフト・レ
ジスタ14の現在の内容(「部分」CRCコード、すな
わち、PCRC)が、記憶装置16に対して出力され、
該記憶装置に、対応するセグメント・データ(セル・デ
ータ)、及び、そのセグメントが属しているメッセージ
のID(MsgID)と関連づけて記憶される。記憶装
置16は、所望の大きさの容量を備えることができる
が、数千のセグメント及び関連のPCRC及びMsgI
Dといったところが普通である。
【0014】分かりやすくするため、シフト・レジスタ
14による部分CRCコードの導出、及び、回路要素に
よるデータ転送の説明及び例示を直列的に行ってきた
が、当該技術の熟練者には明らかなように、これらの操
作は、所望の場合には、数ビットについて同時に機能す
る並列メカニズムを利用して、等しく実施することが可
能である。
【0015】メッセージを構成する全てのセグメントを
受信すると、完全なメッセージが組み立てられ、そのC
RCコードは、確認装置18によって確認される。この
装置は、好都合なことに、適合するソフトウェア・プロ
グラムの制御を受けるデータ・プロセッサ装置によって
実現可能であるが、データ・プロセッサ装置は、例え
ば、さらに高レベルの通信プロトコルに基づいて、受信
メッセージの後続処理を実施するために利用することも
可能である。
【0016】確認装置18は、そのメッセージに関する
MsgIDを備えた各セグメント毎に、記憶装置16か
らPCRCを抽出し、図3に示す手順に従って、同一メ
ッセージの他のセグメントに関するPCRCと組み合わ
せる。
【0017】図3を参照すると、該手順は、カウンタs
を1に等しくなるようにセットし、4バイトの変数CR
Cを16進数FFFFFFFFH (末尾のH は16進数
であることを示す添字)に初期設定するステップ30か
ら開始される。
【0018】該手順では、次のステップ32において、
変数CRCのそれぞれのバイトの値から、4つのルック
・アップ・テーブルのそれぞれに対する索引Iの値を導
き出す。例えば、索引I408 は、CRCの最上位バイト
の値に等しくなるようにセットされ、索引I400 は、次
に上位のバイトに等しくなるようにセットされ、索引I
392 は、3番目に上位のバイトに等しくなるようにセッ
トされ、索引I384 は、最下位バイトに等しくなるよう
にセットされる。
【0019】各ルック・アップ・テーブルは、256個
のエントリを備えており、それらの値は、後述するよう
に、CRCコードのアルゴリズムが準拠する特定の多項
式によって計算可能である。多項式g(x)に関する1
組のテーブルT384 、T392、T400 、及び、T408
が、図4a〜図7bに示されている。
【0020】該手順では、ステップ34において、セグ
メントsに関するPCRCの値を検索するが、セグメン
トには、受信順に付番されており、従って、最初に検索
するPCRC(s)(s=1)は、最初に受信した最上
位のセグメントに関するものであり、最後に検索するセ
グメントは、最下位のセグメントであり、そのsはメッ
セージにおけるセグメントの総数に等しくなる。
【0021】変数CRCの値の更新は、ステップ36に
おいて、下記関係式に基づいておこなわれる: CRC=PCRC(s)XOR T408 (I408 )XOR T400 (I400 )XOR T 392 (I392 )XOR T384 (I384 ) (2) ここで、XOR は、ビットに関する排他的OR演算を表
し、T408 (I408 )は、索引I408 の現在値に関する
テーブルT408 のエントリを表している。
【0022】ステップ38において、sの値がインクリ
メントされ、インクリメントした値は、ステップ40に
おいてテストを受ける。sがメッセージにおけるセグメ
ント総数以下の場合、該手順は、ステップ32に戻り、
CRCの更新値を構成するそれぞれのバイトに基づい
て、索引I384 、I392 、I400 、及び、I408 に関す
る新しい値を導き出す。
【0023】sのインクリメント値が、メッセージにお
けるセグメントの総数を超える場合、CRCの値は、完
全なメッセージに関するCRC確認値になる。ステップ
42では、この確認値が、エラーのないメッセージに関
するC704DD7BH の予測値と等しくなるか否かに
ついてテストされる。CRCがこの値を備えている場合
には、ステップ44において、有効CRCコードが表示
されるが、別様であれば、無効CRCコードが、即ち受
信メッセージに1つ以上のエラーが生じたことが、ステ
ップ46で表示される。後者の場合、用いられる特定の
通信プロトコルに基づいて、メッセージの再送信を要求
するといった、適当な措置がとられる。
【0024】メッセージ全体の受信を完了してから全C
RC確認値の導出を開始する場合に関連して、図3の手
順の説明を行ってきたが、留意すべきは、該手順は、各
順次セグメントの受信と同時に行われるCRC確認値の
導出にも等しく適用することができるという点である。
【0025】例えば、順次セグメントと下記のようにシ
フト・レジスタ14によって導き出される部分CRCを
備えた、3セグメントのメッセージ及び付属のCRCを
受信することができる: PCRC(1)=A07C4DD8H PCRC(2)=072FEBO3H PCRC(3)=2E24F35DH FFFFFFFFH の初期CRC値に関するI384 、I
392 、I400 、及び、I408 の値はI384 =I392 =I
400 =I408 =FFH になり、これらに関するルック・
アップ・テーブルのエントリは、T384 =580FA9
1EH 、T392 =513658BFH 、T400 =4A0
E09B0H 、及び、T408 =150516A1Hとな
る。ステップ36における最初の計算によって、CRC
=A07C4DD8XOR 580FA91EXOR 5136
58BFXOR0E09B0XOR50516A1=F
64EA368H が得られる。I384 、I392 、I400
、I408 の次の値は、I384 =68H 、I392 =A3H
、I400 =4EH 、及び、I408 =F6Hになり、ルッ
ク・アップ・テーブルのエントリは、T384 =267A
5A62H 、T392 =D5B60D44H 、T400 =8
59250ACH 、及び、T408 =1EE6098CH
である。従って、ステップ36における次の計算によっ
て、CRC=072FEB03XOR 267A5A62XO
R D5B60D44XOR 859250ACXOR 1EE6
098C=6F97E505H が得られる。従って、I
384 、I392 、I400 、I408 の新しい値は、I384 =
05H 、I392 =E5H 、I400 =97H 、及び、I40
8 =6FHになり、対応するルック・アップ・テーブル
のエントリは、T384 =B55AB166H 、T392 =
ED693030H 、T400 =1A274B01H 、
及び、T408 =AB34E471H となる。従って、ス
テップ36における最終計算によって、CRC=2E2
4F35DXOR B55AB166XOR ED693030
XOR 1A274B01XOR AB34E471=C704
DD7BH が得られる。これは、CRC確認値に関して
予測された値であり、従って、CRCプロセスは、送信
エラーを示さない。
【0026】ルック・アップ・テーブルT384 、T392
、T400 、及び、T408 には、0<i<256の場合
に、下記関係式に基づいて計算された値が含まれてい
る: T384 [i]=(x384 i(x))mod g(x) (3) T392 [i]=(x392 i(x))mod g(x) (4) T400 [i]=(x400 i(x))mod g(x) (5) T408 [i]=(x408 i(x))mod g(x) (6) ここで、i(x)は、8ビット値iに対応する多項式で
ある。この目的には、C言語で記載した図8a,図8b
のルーチンを順次利用することが可能である。
【0027】本発明の実施例について詳述したが、その
態様や細部には本発明の精神と範囲を逸脱することな
く、種々の変更が可能である。以下に本発明の実施態様
の数例を示す。
【0028】実施態様の1は、通信媒体を介して複数の
サブブロックとして転送されるデータ・ブロックに関す
るCRCコードを確認するための方法において、受信し
た各データ・サブブロック毎に、所定の初期設定値から
それぞれの部分CRCコードを導き出すステップと、前
記部分CRCコードを組み合わせて、受信した完全なデ
ータ・ブロックに関するCRC確認値を導き出すステッ
プと、受信した完全なデータ・ブロックに関する前記C
RC確認値の妥当性をテストするステップとから構成さ
れる、CRCコードの確認方法である。
【0029】実施態様の2は、前記部分CRCコード
は、該目的専用のハードウェア回路要素を利用して、導
き出され、完全なデータ・ブロックに関する確認値は、
プログラム命令によって制御される汎用ハードウェア回
路要素を利用して、導き出されるということを特徴とす
る、実施態様の1に記載のCRCコードの確認方法であ
る。
【0030】実施態様の3は、前記部分CRCコード
が、排他的ORゲートを介してその出力から所定のシフ
ト・レジスタ段へフィードバックを行う、シフト・レジ
スタに前記初期設定値をプリセットするステップと、前
記シフト・レジスタに1つのデータ・サブブロックをシ
フト・インするステップと、結果得られる前記シフト・
レジスタの内容を記憶するステップによって、導き出さ
れるということを特徴とする、実施態様の1または2に
記載のCRCコードの確認方法である。
【0031】実施態様の4は、前記初期設定値がゼロで
あることを特徴とする、先行実施態様の任意の1つに記
載のCRCコードの確認方法である。
【0032】実施態様の5は、前記CRC確認値が、第
2のデータ・サブブロック及び後続の各データ・サブブ
ロックに関する部分CRCコードと、先行部分CRCコ
ードに関する前記組み合わせステップの結果に基づい
て、1つ以上の所定のテーブルから選択された1つ以上
の値を組み合わせることによって導き出されるというこ
とと、第1のデータ・サブブロックに関する部分CRC
コードが、所定の開始値に基づいて、前記1つまたは複
数のテーブルから選択されるということを特徴とする、
先行実施態様の任意の1つに記載のCRCコードの確認
方法である。
【0033】実施態様の6は、複数の所定のテーブル
が、存在することと、値の選択は、先行部分CRCコー
ドに関する前記組み合わせステップの結果のそれぞれの
部分に関する値、及び、前記所定の開始値に基づいて、
前記テーブルから行われるということを特徴とする、実
施態様の5に記載のCRCコードの確認方法である。
【0034】実施態様の7は、前記部分CRCコード及
び前記1つまたは複数のテーブルは、16進数として記
憶されていることと、前記それぞれの部分は、隣接対を
なす16進数であることと、前記組み合わせステップ
が、ビットに関する排他的OR演算を利用して、実施さ
れることを特徴とする、実施態様の6に記載のCRCコ
ードの確認方法である。
【0035】実施態様の8は、前記所定の開始値が、全
て、16進数のFであることと、前記CRCコードは、
多項式 g(x)=x32+x26+x23+x22+x16+x12+x11+x10+x8 +x7 + x5 +x4 +x2 +x+1 に基づいて、導き出されるということと、前記組み合わ
せステップに関して、図4a〜図7bのテーブルから値
が選択されるということを特徴とする、実施態様の7に
記載のCRCコードの確認方法である。
【0036】実施態様の9は、通信媒体を介して複数の
サブブロックとして転送されるデータ・ブロックに関す
るCRCコードを確認するための装置において、受信し
た各データ・サブブロック毎に、所定の初期設定値から
それぞれの部分CRCコードを導き出すための手段と、
前記部分CRCコードを組み合わせて、受信した完全な
データ・ブロックに関するCRC確認値を導き出すため
の手段と、受信した完全なデータ・ブロックに関する前
記CRC確認値の妥当性をテストするための手段から構
成される、CRCコードの確認装置である。
【0037】実施態様の10は、前記部分CRCコード
導き出すための専用ハードウェア回路要素と、プログラ
ム命令に制御されて、完全なデータ・ブロックに関する
確認値を導き出す汎用ハードウェア回路要素が設けられ
ていることを特徴とする、実施態様9に記載のCRCコ
ードの確認装置である。
【0038】
【発明の効果】以上詳述したように、本願発明の実施に
より、少ないハードウェアで高速、且つメッセージの数
の制限が実質的に存在しないCRC確認装置が得られ
る。
【図面の簡単な説明】
【図1】多項式g(x)に基づいてCRCコードを導き
出すシフト・レジスタを示す図である。
【図2】本発明に基づいてCRCコードの確認を行う装
置のブロック図である。
【図3】図2の装置の一部で実施される手順のフローチ
ャートである。
【図4a】図3の手順に用いられる16進数値のルック
・アップ・テーブルを示す図である。
【図4b】図3の手順に用いられる16進数値のルック
・アップ・テーブルを示す図である。
【図5a】図3の手順に用いられる16進数値のルック
・アップ・テーブルを示す図である。
【図5b】図3の手順に用いられる16進数値のルック
・アップ・テーブルを示す図である。
【図6a】図3の手順に用いられる16進数値のルック
・アップ・テーブルを示す図である。
【図6b】図3の手順に用いられる16進数値のルック
・アップ・テーブルを示す図である。
【図7a】図3の手順に用いられる16進数値のルック
・アップ・テーブルを示す図である。
【図7b】図3の手順に用いられる16進数値のルック
・アップ・テーブルを示す図である。
【図8a】ルック・アップ・テーブルT384 、T392 、
T400 、及び、T408 の計算を実行するためのC言語で
記載したルーチンを示す図である。
【図8b】ルック・アップ・テーブルT384 、T392 、
T400 、及び、T408 の計算を実行するためのC言語で
記載したルーチンを示す図である。
【符号の説明】
10 光ファイバ入力ライン 12 入力インターフェイス 14 シフト・レジスタ 16 記憶装置 18 確認装置
───────────────────────────────────────────────────── フロントページの続き (73)特許権者 399117121 395 Page Mill Road Palo Alto,Californ ia U.S.A. (56)参考文献 特開 平4−150631(JP,A) 特開 平4−284753(JP,A) 特開 平5−191430(JP,A) 特開 昭64−61124(JP,A) 特開 平6−152437(JP,A) 欧州特許609595(EP,B1) (58)調査した分野(Int.Cl.7,DB名) H03M 13/00 G06F 11/10 330 H04L 1/00

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】通信媒体を介して複数のデータ・サブブロ
    ックとして転送されたデータ・ブロックに関するCRC
    コードを確認するための方法において、 前記CRCコードは前記データ・ブロックから導出され
    たデータを所定の多項式により割ったあとの剰余を有
    し、 受信した各前記データ・サブブロック毎に、前記所定の
    多項式を用い所定の初期設定値からそれぞれの部分CR
    Cコードを導き出すステップと、 前記部分CRCコードを組み合わせて、前記受信したデ
    ータ・ブロック全体が該データ・ブロック全体に対して
    前記所定の多項式を用いて導き出されるべきCRCコード
    を備えるかどうかを示す、受信した完全な前記データ・
    ブロックに関するCRC確認値を導き出すステップと、 受信した完全なデータ・ブロックに関する前記CRC確
    認値の妥当性をテストするステップとから構成される、 CRCコードの確認方法。
  2. 【請求項2】前記部分CRCコードは、該部分CRCコ
    ード導出専用のハードウェア回路要素を利用して導き出
    され、前記完全なデータ・ブロックに関するCRC確認値
    は、プログラム命令によって制御される汎用ハードウェ
    ア回路要素を利用して、導き出されるということを特徴
    とする、請求項1に記載のCRCコードの確認方法。
  3. 【請求項3】前記所定の初期設定値がゼロであることを
    特徴とする、請求項1あるいは請求項2のいずれかに記
    載のCRCコードの確認方法。
  4. 【請求項4】第1の前記データ・サブブロックに関する
    部分CRCコードが、所定の開始値に基づいて、所定の
    テーブルから選択され、 前記CRC確認値が、第2の前記データ・サブブロック
    及び後続の各前記データ・サブブロックに関する部分C
    RCコードと、先行部分CRCコードに関する前記組み
    合わせステップの結果に基づいて、前記所定のテーブル
    から選択された1つ以上の値を組み合わせることによっ
    て導き出されることを特徴とする、請求項1〜請求項3
    のいずれかに記載のCRCコードの確認方法。
  5. 【請求項5】複数の所定のテーブルが存前記値の
    選択は、先行部分CRCコードに関する前記組み合わせ
    ステップの結果のそれぞれの部分に関する値、及び、前
    記所定の開始値に基づいて、前記テーブルから行われ
    とを特徴とする、請求項4に記載のCRCコードの確
    認方法。
  6. 【請求項6】通信媒体を介して複数のデータ・サブブロ
    ックとして転送されるデータ・ブロックに関するCRC
    コードを確認するための装置において、 前記CRCコードは前記データ・ブロックから導出され
    たデータを所定の多項式により割ったあとの剰余を有
    し、 受信した各前記データ・サブブロック毎に、前記所定の
    多項式を用い所定の初期設定値からそれぞれの部分CR
    Cコードを導き出すための手段と、 前記部分CRCコードを組み合わせて、、前記前記受信
    したデータ・ブロック全体が該データ・ブロック全体に
    対して前記所定の多項式を用いて導き出されるべきCRC
    コードを備えるかどうかを示す、受信した完全な前記
    ータ・ブロックに関するCRC確認値を導き出すための
    手段と、 受信した完全なデータ・ブロックに関する前記CRC確
    認値の妥当性をテストするための手段とから構成され
    る、 CRCコードの確認装置。
JP03293894A 1993-02-05 1994-02-04 Crcコードの確認方法及び装置 Expired - Fee Related JP3306210B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP93300852A EP0609595B1 (en) 1993-02-05 1993-02-05 Method and apparatus for verifying CRC codes by combination of partial CRC codes
GB93300852.6 1993-02-05

Publications (2)

Publication Number Publication Date
JPH0715354A JPH0715354A (ja) 1995-01-17
JP3306210B2 true JP3306210B2 (ja) 2002-07-24

Family

ID=8214298

Family Applications (1)

Application Number Title Priority Date Filing Date
JP03293894A Expired - Fee Related JP3306210B2 (ja) 1993-02-05 1994-02-04 Crcコードの確認方法及び装置

Country Status (4)

Country Link
US (1) US5778013A (ja)
EP (1) EP0609595B1 (ja)
JP (1) JP3306210B2 (ja)
DE (1) DE69320321T2 (ja)

Families Citing this family (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5878057A (en) * 1995-10-06 1999-03-02 Tektronix, Inc. Highly parallel cyclic redundancy code generator
FR2747869A1 (fr) * 1996-04-17 1997-10-24 Canon Kk Procede et dispositif de correction d'erreurs de transmission de suites de nombres
US6161207A (en) * 1996-11-15 2000-12-12 Motorola, Inc. Communications unit and method of communicating having efficient packet acknowledgement
GB2322526A (en) * 1997-02-22 1998-08-26 The Technology Partnership Plc Encoding and decoding data
JP2000513115A (ja) * 1997-04-14 2000-10-03 シーメンス アクチエンゲゼルシヤフト 複数のデータセグメントに群分けされたデジタルデータに対するチェックサムの形成および検査方法、並びに形成および検査装置
US8539112B2 (en) 1997-10-14 2013-09-17 Alacritech, Inc. TCP/IP offload device
US6434620B1 (en) 1998-08-27 2002-08-13 Alacritech, Inc. TCP/IP offload network interface device
US7167927B2 (en) 1997-10-14 2007-01-23 Alacritech, Inc. TCP/IP offload device with fast-path TCP ACK generating and transmitting mechanism
US6697868B2 (en) * 2000-02-28 2004-02-24 Alacritech, Inc. Protocol processing stack for use with intelligent network interface device
US7185266B2 (en) 2003-02-12 2007-02-27 Alacritech, Inc. Network interface device for error detection using partial CRCS of variable length message portions
US6757746B2 (en) * 1997-10-14 2004-06-29 Alacritech, Inc. Obtaining a destination address so that a network interface device can write network data without headers directly into host memory
US6226680B1 (en) 1997-10-14 2001-05-01 Alacritech, Inc. Intelligent network interface system method for protocol processing
US6658480B2 (en) 1997-10-14 2003-12-02 Alacritech, Inc. Intelligent network interface system and method for accelerated protocol processing
US7089326B2 (en) * 1997-10-14 2006-08-08 Alacritech, Inc. Fast-path processing for receiving data on TCP connection offload devices
US8621101B1 (en) 2000-09-29 2013-12-31 Alacritech, Inc. Intelligent network storage interface device
US8782199B2 (en) 1997-10-14 2014-07-15 A-Tech Llc Parsing a packet header
US7076568B2 (en) * 1997-10-14 2006-07-11 Alacritech, Inc. Data communication apparatus for computer intelligent network interface card which transfers data between a network and a storage device according designated uniform datagram protocol socket
US7133940B2 (en) * 1997-10-14 2006-11-07 Alacritech, Inc. Network interface device employing a DMA command queue
US7174393B2 (en) * 2000-12-26 2007-02-06 Alacritech, Inc. TCP/IP offload network interface device
US7237036B2 (en) 1997-10-14 2007-06-26 Alacritech, Inc. Fast-path apparatus for receiving data corresponding a TCP connection
US6687758B2 (en) * 2001-03-07 2004-02-03 Alacritech, Inc. Port aggregation for network connections that are offloaded to network interface devices
US6029186A (en) * 1998-01-20 2000-02-22 3Com Corporation High speed calculation of cyclical redundancy check sums
US6223320B1 (en) * 1998-02-10 2001-04-24 International Business Machines Corporation Efficient CRC generation utilizing parallel table lookup operations
US7664883B2 (en) 1998-08-28 2010-02-16 Alacritech, Inc. Network interface device that fast-path processes solicited session layer read commands
US6405340B1 (en) * 1999-07-02 2002-06-11 Ericsson Inc. Flexible method of error protection in communications systems
US6681364B1 (en) * 1999-09-24 2004-01-20 International Business Machines Corporation Cyclic redundancy check for partitioned frames
EP1260023A2 (en) * 2000-02-17 2002-11-27 Analog Devices, Inc. Method, apparatus, and product for use in generating crc and other remainder based codes
US6763492B1 (en) * 2000-09-26 2004-07-13 Qualcomm Incorporated Method and apparatus for encoding of linear block codes
US8019901B2 (en) 2000-09-29 2011-09-13 Alacritech, Inc. Intelligent network storage interface system
US6720074B2 (en) * 2000-10-26 2004-04-13 Inframat Corporation Insulator coated magnetic nanoparticulate composites with reduced core loss and method of manufacture thereof
US7065702B2 (en) * 2001-04-12 2006-06-20 Siliquent Technologies Ltd. Out-of-order calculation of error detection codes
US6804220B2 (en) * 2001-05-07 2004-10-12 Qualcomm Incorporated Method and apparatus for generating control information for packet data
GB2375463A (en) * 2001-05-08 2002-11-13 Ubinetics Ltd Configurable encoder
US20020191938A1 (en) * 2001-06-13 2002-12-19 Ethicon Endo-Surgery, Inc. Fiberoptic coil tray and carrier package
US6928608B2 (en) * 2001-08-14 2005-08-09 Optix Networks Ltd. Apparatus and method for accelerating cyclic redundancy check calculations
US20030121835A1 (en) * 2001-12-31 2003-07-03 Peter Quartararo Apparatus for and method of sieving biocompatible adsorbent beaded polymers
US7174498B2 (en) 2002-02-15 2007-02-06 Intel Corporation Obtaining cyclic redundancy code
WO2003090362A1 (fr) * 2002-04-22 2003-10-30 Fujitsu Limited Codeur et decodeur de detection d'erreur, et diviseur
US7543087B2 (en) 2002-04-22 2009-06-02 Alacritech, Inc. Freeing transmit memory on a network interface device prior to receiving an acknowledgement that transmit data has been received by a remote device
US7496689B2 (en) 2002-04-22 2009-02-24 Alacritech, Inc. TCP/IP offload device
US20040153935A1 (en) * 2002-07-19 2004-08-05 Niesen Joseph W. Reduced overhead CRC functionality for packets and link layer superframes
US20040158794A1 (en) * 2002-07-19 2004-08-12 Niesen Joseph W. Reduced overhead CRC functionality for packets and link layer superframes
US7337241B2 (en) * 2002-09-27 2008-02-26 Alacritech, Inc. Fast-path apparatus for receiving data corresponding to a TCP connection
US20040088262A1 (en) * 2002-11-06 2004-05-06 Alacritech, Inc. Enabling an enhanced function of an electronic device
US7343541B2 (en) 2003-01-14 2008-03-11 Broadcom Corporation Data integrity in protocol offloading
US7181671B2 (en) * 2003-09-23 2007-02-20 Macronix International Co., Ltd. Parallelized CRC calculation method and system
US6996070B2 (en) * 2003-12-05 2006-02-07 Alacritech, Inc. TCP/IP offload device with reduced sequential processing
US7434150B1 (en) 2004-03-03 2008-10-07 Marvell Israel (M.I.S.L.) Ltd. Methods, circuits, architectures, software and systems for determining a data transmission error and/or checking or confirming such error determinations
US7360142B1 (en) 2004-03-03 2008-04-15 Marvell Semiconductor Israel Ltd. Methods, architectures, circuits, software and systems for CRC determination
US8248939B1 (en) 2004-10-08 2012-08-21 Alacritech, Inc. Transferring control of TCP connections between hierarchy of processing mechanisms
US20060168495A1 (en) * 2005-01-25 2006-07-27 Analog Devices, Inc. Computation of cyclic redundancy check
US7738500B1 (en) 2005-12-14 2010-06-15 Alacritech, Inc. TCP timestamp synchronization for network connections that are offloaded to network interface devices
US7958436B2 (en) 2005-12-23 2011-06-07 Intel Corporation Performing a cyclic redundancy checksum operation responsive to a user-level instruction
US7925957B2 (en) 2006-03-20 2011-04-12 Intel Corporation Validating data using processor instructions
US7937643B1 (en) 2006-09-18 2011-05-03 Mediatek Inc. Mobile communication device and data reception method
US8379738B2 (en) * 2007-03-16 2013-02-19 Samsung Electronics Co., Ltd. Methods and apparatus to improve performance and enable fast decoding of transmissions with multiple code blocks
DE102007032659A1 (de) * 2007-07-13 2009-01-15 Knick Elektronische Messgeräte GmbH & Co. KG Verfahren zur telegrammweisen Datenübertragung in einem seriellen Kommunikationsprotokoll sowie dieses nutzende Datenübertragungsvorrichtung
KR101286238B1 (ko) * 2007-08-01 2013-07-15 삼성전자주식회사 데이터 병렬화 수신기
JP4831018B2 (ja) * 2007-08-28 2011-12-07 日本電気株式会社 並列巡回符号生成装置および並列巡回符号検査装置
US8539513B1 (en) 2008-04-01 2013-09-17 Alacritech, Inc. Accelerating data transfer in a virtual computer system with tightly coupled TCP connections
US8341286B1 (en) 2008-07-31 2012-12-25 Alacritech, Inc. TCP offload send optimization
US9306793B1 (en) 2008-10-22 2016-04-05 Alacritech, Inc. TCP offload device that batches session layer headers to reduce interrupts as well as CPU copies
US9081700B2 (en) 2013-05-16 2015-07-14 Western Digital Technologies, Inc. High performance read-modify-write system providing line-rate merging of dataframe segments in hardware
US9542261B2 (en) * 2013-07-01 2017-01-10 Ixia Methods, systems, and computer readable media for multi-packet cyclic redundancy check engine
DE102013214855A1 (de) * 2013-07-30 2015-02-05 Robert Bosch Gmbh Verfahren und Vorrichtungen zur Verwaltung von Messdaten einer Batterie
US9304709B2 (en) 2013-09-06 2016-04-05 Western Digital Technologies, Inc. High performance system providing selective merging of dataframe segments in hardware
US9684580B2 (en) 2013-11-05 2017-06-20 Ixia Methods, systems, and computer readable media for efficient scrambling of data for line rate transmission in high speed communications networks
CN105095726B (zh) 2014-05-08 2018-05-11 阿里巴巴集团控股有限公司 生成验证码的方法及装置
US10771095B2 (en) 2016-06-07 2020-09-08 Mitsubishi Electric Corporation Data processing device, data processing method, and computer readable medium

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4703485A (en) * 1986-02-10 1987-10-27 International Business Machines Corporation Method and apparatus for computing and implementing error detection check bytes
DE3870893D1 (de) * 1987-01-30 1992-06-17 Sony Corp Verfahren und geraet zum kodieren von aufgezeichneten daten mit einem identifikationskode und einem fehlerpruefkode.
GB8704883D0 (en) * 1987-03-03 1987-04-08 Hewlett Packard Co Secure information storage
US5247524A (en) * 1990-06-29 1993-09-21 Digital Equipment Corporation Method for generating a checksum
US5321704A (en) * 1991-01-16 1994-06-14 Xilinx, Inc. Error detection structure and method using partial polynomial check
US5303302A (en) * 1992-06-18 1994-04-12 Digital Equipment Corporation Network packet receiver with buffer logic for reassembling interleaved data packets
JP2821324B2 (ja) * 1992-11-04 1998-11-05 三菱電機株式会社 誤り訂正回路
US5410546A (en) * 1993-11-01 1995-04-25 Storage Technology Corporation Apparatus and method for CRC computation over fixed length blocks containing variable length packets of data received out of order

Also Published As

Publication number Publication date
DE69320321T2 (de) 1998-12-24
DE69320321D1 (de) 1998-09-17
JPH0715354A (ja) 1995-01-17
EP0609595A1 (en) 1994-08-10
US5778013A (en) 1998-07-07
EP0609595B1 (en) 1998-08-12

Similar Documents

Publication Publication Date Title
JP3306210B2 (ja) Crcコードの確認方法及び装置
EP0917777B1 (en) Method, apparatus and packet transmission system using error correction of data packets
EP0280013B1 (en) Device for verifying proper operation of a checking code generator
US5844923A (en) Fast framing of nude ATM by header error check
US7631251B2 (en) Method and apparatus for calculating checksums
US6014767A (en) Method and apparatus for a simple calculation of CRC-10
JP3046988B2 (ja) データストリームのフレーム同期検出方法及び装置
EP0313707A1 (en) Data integrity securing means
US9106388B2 (en) Parallel CRC computation with data enables
CN102096609A (zh) 可编程循环冗余校验(crc)计算的指令集架构
JPH07177132A (ja) チェックデータ発生方式
US20120192044A1 (en) Method and Apparatus for Determining a Cyclic Redundancy Check (CRC) for a Data Message
CN101317355A (zh) 同步帧检错、纠错方法和装置
CN111897674A (zh) 一种循环冗余校验电路ip核实现系统及方法
CN109286471B (zh) 面向srio控制器的crc校验方法及装置
US7516393B2 (en) System and method of error detection for unordered data delivery
JP3270966B2 (ja) エラー補正回路
JPH04302242A (ja) 信号伝送方法及びその装置
JP2001007860A (ja) 特殊データ・パケットにタグ付けする方法及び特殊データ・パケット検出方法
CA2179296C (en) Device for establishing cell boundaries in a bit stream and crc calculation
JPH11168479A (ja) Dss方式におけるサンプル値抽出装置およびその方法
Bale et al. An Intelligent 64-bit parallel CRC for high-speed communication system applications
Gangadhar et al. RELIABLE CRC BASED ERROR DETECTION TECHNIQUES FOR FINITE FIELD MULTIPLIERS
KR970005732B1 (ko) 비동기전달모드 시스템에서의 순환잉여검사 코드 계산 및 검출장치
Atrawalkar et al. Design and Simulation of Parallel CRC Generation Architecture for High Speed Application

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees