JPH0856165A - 誤り検査符号及び訂正符号の計算方法および装置 - Google Patents

誤り検査符号及び訂正符号の計算方法および装置

Info

Publication number
JPH0856165A
JPH0856165A JP7080611A JP8061195A JPH0856165A JP H0856165 A JPH0856165 A JP H0856165A JP 7080611 A JP7080611 A JP 7080611A JP 8061195 A JP8061195 A JP 8061195A JP H0856165 A JPH0856165 A JP H0856165A
Authority
JP
Japan
Prior art keywords
message
polynomial
code
result
modulo
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
JP7080611A
Other languages
English (en)
Inventor
Claude Galand
クロード・ギャラン
Eric Saint-Georges
エリック・サンジョルジュ
Victor Spagnol
ビクトール・スパニョル
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH0856165A publication Critical patent/JPH0856165A/ja
Pending 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/093CRC update after modification of the information word
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0078Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
    • H04L1/0083Formatting with frames or packets; Protocol or part of protocol for error control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/04Speed or phase control by synchronisation signals
    • H04L7/048Speed or phase control by synchronisation signals using the properties of error detecting or error correcting codes, e.g. parity as synchronisation signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5672Multiplexing, e.g. coding, scrambling
    • H04L2012/5673Coding or scrambling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5672Multiplexing, e.g. coding, scrambling
    • H04L2012/5674Synchronisation, timing recovery or alignment

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (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)

Abstract

(57)【要約】 【目的】 通信網の中間ノードで訂正されたメッセージ
のデータビットに付加されたフレーム・チェック・シー
ケンス(FCS)を中間ノードで計算する手法を、サイ
クルおよびメモリ・サイズの観点から改善する。 【構成】 メッセージの訂正されたフィールドの間の
差、および、訂正されたフィールドの終端とメッセージ
の終端との間のビット数の差を用いてFCSの間の差を
計算する。計算は短いメッセージの処理を最適化し、こ
の最適化された処理を用いて長いメッセージの処理を行
う。上記計算は、係数がガロア体に属し、その次数が対
応する巡回符合検査の符号の生成多項式により制約され
る多項式演算により行われ、また、サイズにより制約さ
れるテーブルのルックアップ演算も含む。実施方法の選
択(ソフトウェアによるか、ハードウェアとソフトウェ
アとの混合方法によるか)は、通信網の種類(フレーム
・リレー等)と中間ノード容量に依存する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、高速通信網上で伝送さ
れる、巡回符号検査(Cyclic Redundancy Check)(以
下CRCと略す)により符号化されたディジタル・メッ
セージを訂正する方法と装置に関する。
【0002】
【従来の技術】通信網が進化し、異質のアーキテクチャ
を持つサブネットワークがより複雑に混在するにつれ、
LANトラフィック、音声、ビデオ、および、ホスト・
チャネルに接続されたワークステーション上のトラフィ
ックを運ぶ高速通信網上の分散されたコンピュータ・ア
プリケーションをサポートすることが要求されるように
なった。高速ネットワーキングに対する1つの難題は、
通信網内で伝送されるデータの機密性を保証する一方、
メッセージを経路指定するネットワーク・ノード内のコ
ンピュータ資源を最小にすることである。
【0003】とくに、多くの2地点間リンクに沿って、
メッセージが始点から終点に送られる際の中間ネットワ
ーク・ノードの負担を減らす(オフロード)ことが、通
信網の伝送時間を最小にしスループットを最大にするた
めの基礎となる。
【0004】デジタル・メッセージが通信網上で伝送さ
れるときエラーが起こることが予想されるが、データの
整合性を保証するために、直列化されたデータは誤り検
出符号によって保護される。
【0005】高速通信網では回線のエラー率は低く、前
述したように、データの機密性は始点から終点の処理を
要するだけである。機密性を検査する符号は送信ノード
で計算され、受信ノードで検査される。誤り検出は、送
信ノードおよび受信ノードで行われ、送信ノードがデー
タを符号化し、受信ノードがデータの整合性を検査す
る。
【0006】エラー範囲と実施上の容易さの理由によ
り、同期データ通信のほとんどにおいて、線形的なシス
テマティックな符号、とくに、CRC符号が使用され
る。適切に使用されれば、CRC符号は伝送エラーの9
9%以上を検出することができる。
【0007】CRCの利点は、以下の数学的記述にまと
めることができる。伝送されるデータは、係数がモジュ
ロ2ガロア体に属する多項式で定義される純粋2進数で
表される。12ビット・データ「100010010010」は、1
1次の多項式として表される。
【0008】
【数1】 データを符号化することは、データに1組の冗長チェッ
クビットを連結することからなる。これらのチェックビ
ットは、データを表わす多項式に適用された単純な多項
式計算から演繹できる。
【0009】これらのチェックビットは、検査されるデ
ータに基づく1つの多項式を、符号(すなわち生成多項
式)を特徴づけている定義済み多項式による多項式除算
の剰余を求めることにより演繹できる。
【0010】また、データを複号することは、チェック
ビットを含む伝送されたデータを表わす多項式に生成多
項式による単純な多項式除算を実行し、その剰余が期待
した値であることを検査することにより行う。
【0011】P(X)が伝送され検査されるデータを、
G(X)が生成多項式を、gおよびpがそれぞれG
(X)およびP(X)の次数を表すと仮定する。
【0012】Q(X)とR(X)を、それぞれ、G
(X)によるXgP(X)の除算の商と剰余であるとす
ると、
【0013】
【数2】 gP(X)の次数がg+pであり、gより低いXべき
に対するその多項式係数がすべてゼロであることがわか
る。
【0014】R(X)の次数は、(G(X)による除算
の剰余としての)gより小さい。
【0015】ところで、多項式係数がモジュロ2ガロア
体に属するので、
【0016】
【数3】 この最後の式の左側は符号化されたデータの多項式であ
り、P(X)は符号化する初期データの多項式である。
【0017】符号化されたデータは下式により表され
る。
【0018】
【数4】 データのビット数がpビットであり、符号生成多項式が
g次であると仮定すると、符号化されたデータのビット
数はp+gビットになり、pビットは初期データ、gは
計算された冗長チェックビットである。
【0019】(式1)はG(X)によるXgP(X)+
R(X)の除算の剰余がゼロであることを意味する。受
信されたデータを表す多項式が生成多項式の乗数である
ならば、受信ノードで受けたデータは正しい。
【0020】巡回符号の複雑さを増すことは誤り検出を
強力なものにするが、伝送されるデータブロックが増え
るにしたがい冗長度も増す。最適の符号は、良いバース
ト誤り検出と低い冗長度との間の妥協である。
【0021】実際的には、CRC符号は、受信ノードで
正しい伝送が行われたかどうかを検査できるように元の
メッセージの終わりに追加されるフレーム検査シーケン
ス(Frame Check Sequence)(以下FCSと略す)を生
成するために使われる。送信ノードがFCSを元のメッ
セージに加え、受信されたメッセージの全体(元のメッ
セージにFCSを加えたもの)が受信ノードで検査され
る。
【0022】IEEE802シリーズ通信網は、ANS
I標準32ビットCRCアルゴリズムを使用し、生成多
項式は下式で表される。
【0023】
【数5】 1つのCCITT標準(V41)は、生成多項式として以
下の巡回多項式の使用を勧告している。
【0024】
【数6】 この巡回多項式は、ほとんどの同期ビット指向の伝送プ
ロトコルによって使われている。CCITT V41生
成巡回多項式で符号化されたデータには16ビットの冗
長チェックビットがある。
【0025】「テレインフォマティク I」("Teleinf
ormatique I", H.Nussbaumer, Presses Polytechnique
s Romandes, 1987)で説明されているように、FCS
は、CCITT V41生成巡回多項式を使ったCRC
計算に基づいて計算される。それは、以下の行で定義さ
れる16ビット長のフィールドである。
【0026】L(X)が、すべての係数が1に等しい1
5次の多項式であると仮定すると、p次の多項式P
(X)によって表されたメッセージのFCSは以下のよ
うに定義される。
【0027】
【数7】 R(X)は剰余(Rem)である。 FCS(P(X)) = RemG(X) (Xl6P(X) + XPL(X)) 符号化されたメッセージを表す多項式は以下の通りであ
る。
【0028】
【数8】 受信ノードで、符号化されたメッセージに対してFCS
が計算される。計算結果が、以下の多項式によって表さ
れる一定のメッセージを生むならば、伝送中のエラーは
ない。
【0029】
【数9】 データは、パケット、セル、または、元のデータより短
いブロックである可変長フレームの形で送られる。メッ
セージは、中間通信ノードの経路指定のためと、受信ノ
ードでのパケットの再配列(resequencing)のための、
元のデータの前につけられたヘッダを含む。FCSは、
元のデータにヘッダをプラスしたものに基づいて計算さ
れる。
【0030】経路指定は、中間通信ノードの中のメッセ
ージ(パケット、セルまたはフレーム)が訂正される必
要がある(とくにヘッダ)多くの場合の1つである。訂
正されたメッセージが元のFCSとともに送られる場
合、計算されたFCSと受信されたFCSが一致しない
ので、メッセージは受信ノードで拒絶される。FCSを
中間ノードで検査し再計算することは、コンピュータ資
源の問題と、それにもまして、FCSを検査し再計算す
る間に起こる誤りから保護することができないという理
由で、薦めることはできない。したがって、メッセージ
は始点から終点で保護することが確実な方法である。C
RCの計算は線形演算であるので、新しいFCSは前の
ものを訂正することによって計算することができる。こ
れについては、「IBMジャーナル・オブ・リサーチ・
アンド・デベロップメント 33巻6号」(D.R.Irvin,
IBM J.RES.DEVELOPP.VOL 33 NO.6 November 1989)を参
照されたい。これは、メッセージ全体から再計算するか
わりに、メッセージの変更に対応する「訂正された」元
のFCSを中間ネットワーク・ノードで計算する必要性
を提起する。
【0031】メッセージの変更に対応する新しいFCS
を中間ネットワーク・ノードで計算するには、新しいF
CSと前のFCSとの間の差(dFCS)を計算すれば
十分である。新しいFCSの多項式表現は、前のFCS
多項式と差(dFCS)の、ガロア体の単純モジュロ2
加算によって演繹できる。これは、XOR論理関数で容
易に実行できる。
【0032】P(X)が通信網で送られた元のメッセー
ジを、P’(X)が中間ノードで訂正されたメッセージ
を表すと仮定すると、
【0033】
【数10】 図1に示すように、mを、訂正されたフィールドの最後
のビットとメッセージの終端との間のビット数で表した
距離とし、H(X)とH’(X)がそれぞれP(X)と
P’(X)の中の前のフィールドおよび訂正されたフィ
ールドを表す多項式であると仮定すると、B(X)は以
下のように定義される。
【0034】
【数11】 したがって、上記の式2は以下のように書くことができ
る。
【0035】
【数12】 通信網上で伝送されるデータのタイプがバイト単位であ
る場合は、訂正されたフィールドが、ビット単位のメッ
セージのバイト境界で終了していることを考慮すれば、
mは8の倍数であると仮定できる。したがって、整数n
(メッセージ・サイズ:ここではバイト単位)は以下の
ように定義でき、また、式3は次のように書くことがで
きる。
【0036】
【数13】 B(X)は、古い訂正されたフィールドH(X)と新し
いフィールドH’(X)に対して論理XORを行うこと
によって容易に実行でき、dFCSの計算は、式3また
は式4の計算に還元できる。
【0037】このdFCS計算を行う従来技術の方法
は、どちらも同じ主題の、前記のD.R.Irvinの論文と欧
州特許EP-313707号に記述されている。これらの方法
は、CRC符号の属性(線形性と巡回性)のためにテー
ブルの使用を含む。テーブルに必要なメモリサイズ量
と、dFCS計算に必要なコンピュータ・サイクルの数
は小さくはない。
【0038】現存する最善の解法に必要なコンピュータ
資源を検討するために、欧州特許EP-313707号を実施し
たものとして評価してみよう。
【0039】欧州特許EP-313707号で提案されている解
法では、訂正されるメッセージのフィールドは2バイト
より短く、mは8の倍数であると仮定する。したがっ
て、この解法の数学的記述は、上述の式4から始まる。
基本的な考え方は、nを、64kバイト長までのフレー
ムに対して16次の2進数に分割することである。すな
わち、欧州特許EP-313707号の解法はビットに分解する
ことを提案している。
【0040】
【数14】 したがって、式4は、以下のように書き直すことができ
る。
【0041】
【数15】 上式において、ni=0である場合F(ni)= 1であり、ni=1
である場合F(ni)= RemG(X)(X8.2i)である。
【0042】F(ni)は、以下の式で定義される入力−
テーブルTをルックアップすることによって計算するこ
とができる。
【0043】
【数16】 このテーブルは、ゼロに等しくないいかなるnに対して
も、読むことができる。
【0044】対応するアルゴリズムは以下のように要約
できる。 ・ R < -- B(X) ・ do i = 0 to 15 ・ if nj = 1 ・ then R < --- RemG(x)(R.T(i)) ・ end もし、フレーム・リレーの場合のように、最大フレーム
長が8kバイトの場合、iが0から12のすべての整数
値をとり、したがって、繰返し計算の最大値は13にな
り、テーブルTのサイズは26バイトである。これは、
汎用目的のために見積もった計算をするために、最小で
も900プロセッサ・サイクルをとることを意味する。
【0045】したがって、式3または式4で表される計
算をこれらのノードで実行することができれば、中間ノ
ードにおけるdFCS計算は、従来技術によるどの解法
によるよりも、テーブルのメモリサイズとコンピュータ
・サイクルを減らすことによって最適化することができ
る。
【0046】
【発明が解決しようとする課題】本発明の目的は、通信
網の中間ノードにおいてCRC符号化された訂正された
メッセージを計算するときに、メモリサイズとプロセッ
サ・サイクルの面でコンピュータ資源を最適化する方法
と装置を提供することである。
【0047】さらに、本発明の目的は、この方法を容易
に実施できるように、できる限り簡単な方法にすること
である。
【0048】
【課題を解決するための手段】本発明は、メッセージの
中の訂正されたフィールドと、訂正されたフィールドの
終端とメッセージの終端との間のビット数で表した距離
との間の差を使用して、FCS間の差を計算することか
ら成るものである。
【0049】本発明の第1の原理は、メッセージのサイ
ズに対する計算を識別し、プロセッシング・サイクル数
にとって最も高価につく短いメッセージの処理を最適化
することにある。したがって、2つのアルゴリズム、す
なわち、「短いメッセージ」に対するものと、「長いメ
ッセージ」に対するものとを定義し、両方のアルゴリズ
ムを相互に関連させる。本発明の解法の数学的記述は上
述の式3または式4から始まる。
【0050】本発明の解法の第2の原理は、ハードウェ
アで実施するための新しい関数(Remult関数)を定義す
ることであり、また、短いメッセージおよび長いメッセ
ージに対するアルゴリズムに使われるソフトウェア実施
のためのテーブルのサイズを制限することである。
【0051】ハードウェアでの実施を単純化するため
に、CRC訂正のためのアルゴリズムに含められたすべ
ての多項式乗算は、生成多項式の次数より大きくない次
数の多項式乗算に還元(縮小)される。
【0052】本発明は以下のステップを含む。 ・ 短いメッセージと長いメッセージとの間のメッセー
ジ・サイズの差を定義する。 ・ 短いメッセージおよび長いメッセージ両方に対する
dFCS計算の1部としてのRemult関数を定義する。 ・ 短いメッセージのdFCS計算のテーブルを定義す
る。 ・ 長いメッセージのdFCS計算のテーブルを定義す
る。 ・ 短いメッセージのdFCS計算のアルゴリズムを定
義する。 ・ 長いメッセージのdFCS計算のアルゴリズムを定
義する。
【0053】本発明の実施例の相違は、2つの基準、す
なわち、ネットワーク・タイプ(メッセージサイズ、メ
ッセージ構造、CRC符号を意味する)、および、ハー
ドウェアによる実施かソフトウェアによる実施かの選択
の相違による。
【0054】第1の解法はすべてソフトウェアで実施す
ることで、これは、本発明の性能目標を達成している。
以下に述べる望ましい実施例は、ハードウェアによる実
施とソフトウェアによる実施との両者を合わせ持つもの
である。Remult関数だけが、中間ネットワーク・ノード
のアダプタ内のプロセッサの特別命令としてハードウェ
アで実施されるものである。コンピュータ・サイクル数
とテーブル・サイズの観点からの性能は、下記の実施例
で、従来技術の最良のものとの比較として記述する。Re
mult関数だけが、中間ネットワーク・ノードのアダプタ
内のプロセッサの特別命令としてハードウェアで実施さ
れるものである。本発明を全面的にハードウェアで実施
する場合は、コプロセッサ上で実施する機能の1部とし
て同じRemult関数を含む。
【0055】
【実施例】以下に述べる本発明の実施例はフレーム・リ
レー通信網に適用されるもので、通信網によって送られ
るメッセージは、2バイトのフレーム・ヘッダを含む最
大8kバイトの可変長フレームからなるものである。こ
の場合フレームの中で訂正されるフィールドは、2バイ
トのヘッダである。
【0056】図1に示すメッセージ構造110は一般の
メッセージのフォーマットで、メッセージ構造120は
フレーム・リレーの特別の場合にあてはまる。mは訂正
されたメッセージ・フィールドの終端とメッセージの終
端との間の距離をビット数で表したものである。メッセ
ージがバイト単位であるので、mは8の倍数になり、8n
= m + 16として定義される整数nは、フレーム・リレ
ーの場合、フレームの長さをバイト数で表したものであ
る。これはこの値が簡単に得られることを意味する。上
述の式4から始める。
【0057】
【数17】 基本的な考えかたは、nを、Nが2のべきである基数N
に分割することである。
【0058】
【数18】 上記の式において、0≦n0≦N−1である。8nが8
kバイト以下であるので、nは8k(=8192)以下とな
り、次式が成立する。
【0059】
【数19】 CRC符号の線形性により、式4は以下のように書き直
すことができる。
【0060】
【数20】 式RemG(X)(X8N.n1)は、8192/N入力のテーブルT1の中で
1の関数として前もって計算することができる。
【0061】
【数21】 式RemG(X)(X8n0)は、N入力のテーブルT0の中でn0
関数として前もって計算することができる。
【0062】
【数22】
【0063】
【数23】 B(X)は16より小さい次数である(フレーム・リレ
ー・メッセージの2バイトの訂正されたフィールド)。
【0064】
【数24】 2つの多項式A(X)およびB(X)に適用される新し
いRemult関数を定義する。
【0065】
【数25】 Remult関数を使用すると式6は以下のようになる。
【0066】
【数26】 実行されるアルゴリズムを以下に示す(アルゴリズム
1)。 ・ アドレスn0でテーブルT0を読む。 ・ B(X)RemultT0(n0)を実行する(その結果を
R(X)と呼ぶ)。 ・ アドレスn1でテーブルT1を読む。 ・ R(X)RemultT1(n1)を実行する。
【0067】n< Nであれば、n1=0、および、n=
0である。従って、テーブルT0だけを読めばよく、ア
ルゴリズム1は以下の2つの演算に限られる。 ・ アドレスn0でテーブルT0を読む。 ・ R(X)RemultT(n1)を実行する。
【0068】この最後のより単純なアルゴリズムは、N
より短い長さの「短いパケット」のためにある。
【0069】テーブル・サイズを評価するために、先
ず、1つの記述項(以下エントリ)の多項式表現が16
次のG(X)による除算の剰余であることがわかってい
る。したがって、テーブル・エントリは2バイトであ
る。
【0070】
【数27】 エントリの数は、テーブルT0(n0)に対してはNで、
テーブルT1(n1)には8192/Nである。dFCS計算
をするための全体のテーブル・サイズは、以下の通りで
ある。
【0071】
【数28】 図2に、異なるメッセージ・サイズ、および、選択され
た「短いメッセージ」のサイズに対応してdFCSを計
算するのに必要な、異なるテーブル・サイズT0および
1を示す。たとえば、256バイトの短いパケットの
ためにはテーブル・サイズは576バイトである。
【0072】図3のブロック・ダイアグラムは、訂正さ
れたメッセージの新しいFCSを計算するために中間ノ
ード(具体的には通信ノードの回線アダプタ部分)で実
行される解法を示したものである。
【0073】符号300で表す16ビット・バスは、中
間ノードの中で訂正されるメッセージ・フィールドの元
の値を運ぶ。数学的には、この元のメッセージ・フィー
ルドは、多項式H(X)(上記記述を参照)によって表
される。符号301で表す16ビット・バスは、多項式
H’(X)によって数学的に表される訂正されたメッセ
ージ・フィールドを運ぶ。ブロック302はXOR論理
演算を表し、この論理演算の結果が符号303の16ビ
ット・バスにより運ばれ、多項式B(X)によって表さ
れる。m= 8n−16の値は、符号304の16ビッ
ト・バスにより運ばれる。B(X)とmは、dFCSを
計算するブロック306への入力である。符号305の
16ビット・バスにより元のFCSが運ばれる。dFC
Sと元のFCSは、ブロック308で表されるXOR論
理演算への入力である。符号309の16ビット・バス
上の出力はFCSの新しい値、すなわち、FCS’であ
る。
【0074】図3のブロック306はdFCS計算のた
めにある。本発明の望ましい実施例は、一般アルゴリズ
ム解法のソフトウェアによる実施である。さらに、Remu
lt関数が、中間ノードのアダプタの中のプロセッサの特
別命令として、ハードウェアで実施されると仮定する。
アルゴリズムは、5個の命令を含む: ・ R1 <--- B(X) ・ R2 <--- T0(n0) T0 テーブルを読む ・ R1 <--- R1 Remult R2 ・ R2 <--- T1(n1) T1 テーブルを読む ・ R1 <--- R1 Remult R2 メッセージが「短いパケット」(すなわちnはNより小
さく、n1=0を意味する)ならば、アルゴリズムは3
つの命令に縮小される。 ・ R1 <--- B(X) ・ R2 <--- T0(n) T0 テーブルを読む ・ R1 <--- R1 Remult R2 最大のバイト数が8kであると仮定したので、メッセー
ジの中のビット数は13である。N= 256である場
合、n0はフレーム・バイト・カウントの8個の低位ビ
ットから作られ、n1は5個の高位ビットである。この
場合、テーブル・サイズは576バイトを必要とする
(図2のテーブルを参照)。
【0075】コンピュータ・サイクルに関しては、長い
パケットの計算には5サイクルかかり、短いパケットの
計算には3サイクルかかることがわかる。
【0076】図4に、Remult関数のハードウェアによる
実施例を記述する。
【0077】多項式A(X)およびB(X)に適用され
るRemult関数の多項式表現は以下のように表される。
【0078】
【数29】 ハードウェアによるこの実施例では、メッセージの訂正
はメッセージ・ヘッダの2バイトにだけ適用されると仮
定したので、このRemult実施の中で考慮される多項式は
15次である。
【0079】それは、以下の3つの実体を含む。
【0080】1. ブロック403の16ビット×16
ビットのモジュロ2乗算器は繰り上がり桁なしの古典的
な乗算器として働き、多項式係数はモジュロ2のガロア
体に属す。31ビットの結果は、32ビット・バス40
4により運ばれる。2×16ビットの入力は2つの16
ビットの入力バス401および402から入力される。
モジュロ2乗算器は、256×2ウェイNANDおよび
235×2ウェイXORで実施することができる。それ
は5層の深さである。
【0081】2. ブロック407は、上記のモジュロ
2乗算によって得られた結果の上位15ビット(16ビ
ット・バス405により運ばれる)のG(X)(X16
よる)による除算の剰余を計算する。これは48×2ウ
ェイXORで実施でき、8層の深さである。
【0082】3. 前記の結果(16ビット・バス40
8上)をモジュロ2乗算の下位16ビット(16ビット
・バス406上)に加算する。これは16×2ウェイX
OR(符号409)を必要とし、1層の深さである。演
算409の結果はバス410により運ばれる。
【0083】Remult関数は555×2ウェイ・ゲートを
持つハードウェアの中に組み込むことができる。これ
は、今日のテクノロジーで可能な 100Kゲート・チップ
の1%のオーダの中に入る。全体の深さは14層で、.8
CMOSテクノロジーで20ナノ秒未満の遅延を表す。
【0084】短いパケットと長いパケットとの間の限界
サイズの選択は、コンピュータ資源とメモリサイズの観
点からみた中間ノードの容量に依存する。
【0085】基数[N」をどう選ぶかは短いメッセージ
の最大サイズに対応するが、通信ノードの全ての性能特
性を考慮した結果の最善の妥協物である。コンピュータ
・サイクルに関しては、上述したように、短いメッセー
ジの処理は長いメッセージの処理にくらべて相対的に高
価である。いかなるサイズのメッセージであっても、d
FCS計算に必要なコンピュータ・サイクルは、媒体速
度の制約に依存するプロセッサ容量を超えてはならな
い。短いメッセージの最大長は、コンピュータ容量を考
慮に入れて選ばなければならない。図6は、媒体速度と
メッセージの大きさを考慮した、1つの中間ネットワー
ク・ノードのコンピュータ容量を図示したものである。
dFCS計算に必要なサイクルを表す線(2つのステッ
プで表す)は、媒体速度制約線で定義されている第2の
半領域を超える必要はない。本発明は短いパケットのた
めの処理を最適化しており、長いパケットに対するアル
ゴリズムは、短いパケットのために最適化されたアルゴ
リズムを使う。
【0086】本発明の実施例のちがいは、2つの基準、
すなわち、ネットワークのタイプと、ハードウェアで実
施するかソフトウェアで実施するかの選択、に依存する
ので、本発明の実施例の解法が、従来の技術にくらべ
て、性能と簡単さの点で目標に達しているかを見てみ
る。
【0087】ネットワークがフレーム・リレー・ネット
ワークでない場合で、従来技術による代案と、他の通信
メッセージ構造に対する本発明の効果とを見る。 ・ 訂正されたフィールドはヘッダでない。これは、n
がメッセージの大きさをバイト数で表したものではな
く、nをメッセージの大きさから演繹しなければならな
いことを意味する。これは1つ余計なステップがかかる
が、dFCS計算が全体の性能に与える影響は大きくは
ない。 ・ メッセージがバイト単位でなくビット単位である場
合、本発明のCRC機密性検査を必要とするネットワー
ク・メッセージにあてはまらないが、本発明はこのよう
なメッセージ構造にも使用できる。唯一の影響はテーブ
ル・サイズで、これは8倍しなければならない。
【0088】
【数30】 mがもはや8の倍数でない場合、基数Nの分割を以下の
ように定義した他のnに適用する。
【0089】
【数31】 エントリの数はテーブルT0(n0)に対してN(最大8.
8192)、テーブルT1(n1)に対して8.8192/Nであ
る。テーブル・サイズは8を乗じただけである。
【0090】・メッセージの最大長は8kバイト以上で
もよく(フレーム・リレーの場合)、これにより本発明
の性能改善が減じることはない。
【0091】最大メッセージ長が8kでNが256バイ
トであるとすると、テーブル・サイズは以下のようにな
る。
【0092】
【数32】 最大メッセージ長が64kでNが256バイトであると
すると、テーブル・サイズは以下のようになる。
【0093】
【数33】 ・フレーム・リレーの場合、dFCSの計算は、生成多
項式の次数である16あるいはそれより低い次数の多項
式乗算に基づく。これにより、中間ネットワーク・ノー
ドのCRC計算の物理的な実施が単純化できる。訂正さ
れたフィールド・サイズを表す多項式の次数が、生成多
項式の次数(CRC生成多項式の次数は16、32、等
であり得る)に等しいかより大きければ、フィールド
は、生成多項式の次数に等しいかより低い次数のいくつ
かのフィールドに分割され、同じ一般的アルゴリズムが
必要な回数だけ適用され、同様の性能利益を得ることが
できる。
【0094】・最大メッセージ長が8kバイト以上でも
よく(フレーム・リレーの場合)、本発明による性能改
善に影響を与えない。
【0095】本発明の他の実施例に関し、全てをハード
ウェアで実施する場合、および、全てをソフトウェアで
実施する場合を考慮する。
【0096】・全てをハードウェアで実施する場合。
【0097】図5は、フレーム・リレーのための解法を
示す図3のブロック306を、コプロセッサで実施する
場合を示す。マスタープロセッサによって使われるこの
コプロセッサの機能は以下の機能である。 ―B(X)とmを書き込む。B(X)は訂正された古い
フィールドおよび前のフィールドをXORして得られる
(図3参照)。nはフレーム・バイト・カウント(フレ
ーム・リレーの場合、13ビットで表した最大8k)で
ある。 ―dFCSの結果を読み取る。メッセージのサイズによ
り、結果は1または2コプロセッサ・サイクルの後に得
られる。
【0098】図5のすべてのバスは16ビット・バスで
ある。ブロック510が入力データすなわちB(X)お
よびn(バイト数)を受ける。B(X)は送り出され
て、ブロック515にストアされ、その後、ブロック5
35のRemult演算子に入力される。nはブロック520
に送られて分割される。nは13ビットで表される最大
値8k(8kは最大フレームサイズである)である。n
0アドレス(1バイト)がテーブルT0(ブロック52
5)をテーブル・ルックアップするために送られ、テー
ブル・ルックアップの結果はブロック535のRemult演
算子への入力として送られる。n1アドレス(1バイ
ト)がテーブルT1(ブロック530)をテーブル・ル
ックアップするために送られ、テーブル・ルックアップ
の結果はブロック540のRemult演算子への入力として
送られる。Remult演算子(ブロック535)の出力、す
なわち、B(X)およびT0(n0)入力のRemult演算の
結果は、第2のRemult演算子(ブロック540)への1
つの入力として送られる。Remult演算子(ブロック54
0)からの出力としてのdFCS値は、ブロック545
に送られ、双方向バス500を通して転送される。
【0099】・フレーム・リレーのために全てをソフト
ウェアで実施する場合。
【0100】全てをソフトウェアで実施する解法は、短
いメッセージおよび長いメッセージのための2つのアル
ゴリズムを相互に関連させたものからなる。Remultハー
ドウェア演算子は使用されず、2つの新しいテーブルは
前述の望ましい実施例のものより大きく、必要なコンピ
ューター・サイクルの数も増加する。しかし、短いパケ
ットと長いパケットとの間の分別に基づく新しいFCS
計算を全面的にソフトウェアで実施する解法も、性能と
単純化の目標を達成する。
【0101】nをバイト数で表したメッセージ・サイズ
とした場合、短いパケットのサイズn0はまだNより小
さい。
【0102】
【数34】 式RemG(X)(X8N.n1)は、8192/Nを入力としたテーブルT1
(ハードウェアでの実施のものと同じテーブル)の中
で、n1の関数として前もって計算できる。
【0103】
【数35】 式5の以下の部分を計算する。これは、短いパケット(n
1 = 0)のためのdFCSの式でもある。
【0104】
【数36】 フレーム・リレーの場合、B(X)は16ビット・フィ
ールド(2バイト)を表す16次の多項式である。上記
の2バイトを上位ビットB1(X)と下位ビットB
2(X)に分割するならば、多項式B(X)は以下のよ
うに書くことができる。
【0105】
【数37】 以下の2式
【0106】
【数38】 は(n0+1)×28入力のテーブルT’の中で前もって
計算できる。ここにおける値は、n0(整数)の関数、
および、係数がモジュロ2ガロア体に属する第8次数多
項式Bi(X)(8ビットで表せる全ての可能な値)の
関数として表される。
【0107】
【数39】 バイト数で表したテーブルT’のサイズ(1エントリは
ダブル・バイトである)は以下のように表せる。
【0108】
【数40】 式7はT’で計算される。
【0109】
【数41】 上記の式は、短いパケット対するdFCS計算も表して
いる。2つのテーブル・ルックアップ、すなわち、1つ
はB1、もう1つはB2、を含む式7の計算アルゴリズム
は12コンピュータ・サイクルをとることは容易に計算
できる。
【0110】長いパケットに対する計算は、式5の計算
アルゴリズムに戻り、
【0111】
【数42】 式5はT’およびT1を使って計算する。
【0112】
【数43】 図7のブロック・ダイヤグラムをたどることによって、
この計算が150コンピュータ・サイクルをとることが
評価できる。
【0113】―ブロック710は、多項式H(X)およ
びH’(X)によりそれぞれ表される元のフィールドお
よび訂正されたフィールドからB(X)を計算する。
【0114】―ブロック720は、短いパケットに使用
すると決めた最大サイズを考慮して、nからn0および
1を計算する。
【0115】―ブロック730は、以下の式を得るため
に、2つのT’テーブル・ルックアップとその結果の加
算を表す。
【0116】
【数44】 ―ステップ740は、n1が入力変数である、T1のテ
ーブル・ルックアップである。
【0117】
【数45】 ―ステップ750は、桁の繰り上がりがないモジュロ2
の多項式乗算である。
【0118】
【数46】 ―ステップ760は、前のステップの結果の多項式の、
生成多項式G(X)によるモジュロ2多項式除算の剰余
を計算する。
【0119】
【数47】 表1のテーブルは、dFCSを計算するのに必要なコン
ピュータ資源を表にしたものである。第1行と第2行に
は従来技術での最良の解法のソフトウェアおよびハード
ウェアによる資源必要量を示す。第3行に本発明による
全てをソフトウェアで行う実施例、第4行には本発明の
最も望ましい実施例の資源必要量を示す。ネットワーク
・メッセージの特性はフレーム・リレーのそれを想定し
ている。
【0120】
【表1】 表1からわかるように、従来技術の解法にくらべて、コ
ンピュータ資源必要量はメモリ容量の観点では同等であ
るが、コンピュータ・サイクルでは、本発明の最良の解
法で、dFCS計算のために顕著に改善されている。d
FCS計算が訂正されたCRC符号化メッセージの計算
の中核をなすポイントであるので、本発明による解法に
より、中間ネットワーク・ノードでのこの計算のための
本質的な改善を提供することができる。
【0121】(*)16kバイトがT’フレーム・リレ
ーのサイズである。フレーム・リレーによる理由によ
り、式8の28は26で置き換え、訂正されたフィールド
の2倍の8ビット上の6ビットだけが訂正されている。
さらに、短いパケットの限界は128バイトと仮定して
いる。T1はT’に対して無視できる程度である。
【0122】まとめとして、本発明の構成に関して以下
の事項を開示する。 (1)通信網の中間ノードにおいて、訂正されたメッセ
ージのデータビットの新しい巡回符号検査(CRC)の
誤り検出符号と誤り訂正符号を計算する方法であって、
上記符号値は、訂正されたメッセージ・フィールド、メ
ッセージの最初の誤り符号、および、訂正されたメッセ
ージ・フィールドの終端とメッセージの終端との間の距
離mに依存し、(a)係数がモジュロ2ガロア体に属す
る多項式B(X)で表される、入力メッセージと中間ノ
ードで訂正されたメッセージとのビット単位の差を計算
するステップと、(b)m+16を2Nの1つの整数べ
きを基数に使って2つの整数n0とn1に分割するステッ
プと、(c)3つの値n0、n1、および、mを入力に使
って入力メッセージの符号値と訂正されたメッセージの
符号値との間の差を計算するステップと、(d)上記差
を最初のメッセージ符号値でモジュロ2加算し、新しい
メッセージ符号値を得るステップと、を有する上記方
法。 (2)上記ステップ(c)が、さらに、(c―1)n0
でアドレスされる第1のテーブルT0にテーブル・ルッ
クアップを行い、上記CRC符号の生成多項式G(X)
によるX8n0の多項式除算の剰余を求めるステップであ
って、該多項式の係数がモジュロ2ガロア体に属するス
テップと、(c―2)先行ステップの結果によるB
(X)のモジュロ2多項式乗算を行うステップと、(c
―3)先行ステップのモジュロ2多項式乗算で得た上記
結果の上位15ビットをG(X)で除算した剰余を計算
するステップと、(c―4)m+16がNより小さい場
合、先行ステップの結果を上記ステップ(c―2)の下
位16ビットに加算し、次のステップ(c―5)を実行
せず、本ステップの結果を入力符号値と訂正されたメッ
セージの符号値との間の差とするステップと、(c―
5)m+16がNより大きく、したがってn1がゼロで
ない場合、(c―5―1)n1でアドレスされた第2の
テーブルT1にテーブル・ルックアップを行い、X8N.n1
のG(X)によるモジュロ2多項式除算の剰余を求める
ステップと、(c―5―2)B(X)と先行ステップの
結果のモジュロ2多項式乗算を行うステップと、(c―
5―3)先行ステップのモジュロ2多項式乗算で得た上
記結果の上位15ビットをG(X)で除算した剰余を計
算するステップと、(c―5―4)先行ステップの結果
を上記ステップ(c―5―1)の下位16ビットに加算
し、本ステップによる結果を入力符号値と訂正されたメ
ッセージの符号値との間の差とするステップと、を有す
る、上記(1)に記載の方法。 (3)上記ステップ(c)が、(c―1)Bi(X)と
0でアドレスされた第3のテーブルT’にテーブル・
ルックアップを行い、ステップ(c―5)の結果の、X
8n0.i(X)のG(X)による多項式除算(Bi
(X)は全ての可能な8ビットの値を表す)の剰余を求
めるステップと、(c―2)n0とB(X)の上位8ビ
ットの値でアドレスされる第1のテーブルT0の値と、
0+1とB(X)の下位8ビットの値でアドレスされ
る第2のテーブルT1の値を加算するステップと、(c
―3)m+16がNより小さい場合、n1がゼロに等し
く、前のステップの結果を入力符号値と訂正されたメッ
セージの符号値との間の差とし、次のステップ(c―
4)は実行せず、かつ、ステップ(c―5)で上記の差
を変更せずにおくステップと、(c―4)m+16がN
より大きいためにn1がゼロでない場合、n1でアドレス
される第2のテーブルT1にテーブル・ルックアップを
行うステップと、(c―5)上記ステップ(c―2)の
結果と上記ステップ(c―4)の結果とをモジュロ2多
項式乗算を行うステップと、(c―6)上記ステップ
(c―5)の結果をG(X)による多項式除算をして剰
余を計算し、その結果を入力符号値と訂正されたメッセ
ージの符号値との間の差とするステップと、を有する、
上記(1)に記載の方法。 (4)上記通信網がフレーム・リレー網であり、メッセ
ージ長が可変長パケットであり、誤り検出符号及び誤り
訂正符号がV41CCITT勧告による生成多項式G
(X)に基づく16ビットのフレーム・チェック・シー
ケンス(FCS)であり、m+16の値がバイト数によ
るメッセージの大きさであり、Nが短いメッセージのバ
イト数による最大の大きさであり、中間ノードの中でパ
ケットにほどこされる訂正がパケットの最初の2バイト
に適用される、上記(1)、(2)、または、(3)に
記載の方法。 (5)通信網の中間ノードにおいて、訂正されたメッセ
ージのデータビットの新しい巡回符号検査(CRC)の
誤り検出符号と誤り訂正符号を計算する装置であって、
上記符号値は、訂正されたメッセージ・フィールド、メ
ッセージの最初の誤り符号、および、訂正されたメッセ
ージ・フィールドの終端とメッセージの終端との間の距
離mに依存し、(a)係数がモジュロ2ガロア体に属す
る多項式B(X)で表される、入力メッセージと中間ノ
ードで訂正されたメッセージとのビット単位の差を計算
する手段と、(b)m+16を、1つの整数Nを基数と
して使って2つの整数n0とn1に分割する手段と、
(c)3つの値n0、n1、および、mを入力に使って入
力メッセージの符号値と訂正されたメッセージの符号値
との間の差を計算する手段と、(d)上記差を最初のメ
ッセージ符号値でモジュロ2加算し、新しいメッセージ
符号値を得る手段と、を有する装置。 (6)上記手段(c)が、さらに、(c―1)n0とBi
(X)によりアドレスされる第1のテーブルT0にテー
ブル・ルックアップを行い、上記CRC符号の生成多項
式G(X)によるX8n0の多項式除算の剰余を求める手
段(該多項式の係数はモジュロ2ガロア体に属する)
と、(c―2)上記手段(c―1)の結果によるB
(X)のモジュロ2多項式乗算を行う手段と、(c―
3)先行手段によりモジュロ2多項式乗算で得た上記結
果の上位15ビットをG(X)で除算した剰余を計算す
る手段と、(c―4)m+16がNより小さい場合、上
記手段(c―3)で得られた結果を上記手段(c―2)
で得られた結果の下位16ビットに含め、本手段の結果
を入力符号値と訂正されたメッセージの符号値との間の
差とする手段と、(c―5)m+16がNより大きく、
したがってn1がゼロでない場合に動作する手段であっ
て、(c―5―1)n1でアドレスされた第2のテーブ
ルT1にテーブル・ルックアップを行い、X8N.n1のG
(X)によるモジュロ2多項式除算の剰余を求める手段
と、(c―5―2)B(X)と上記手段(c―5―1)
によって得られた結果のモジュロ2多項式乗算を行う手
段と、(c―5―3)上記手段(c―5―2)によりモ
ジュロ2多項式乗算で得た上記結果の上位15ビットを
G(X)で除算した剰余を計算する手段と、(c―5―
4)上記手段(c―5―3)による結果を上記手段(c
―5―1)の下位16ビットに加算し、本手段による結
果を入力符号値と訂正されたメッセージの符号値との間
の差とする手段と、を具備する手段、を有する、上記
(5)に記載の装置。 (7)上記手段(c)が、(c―1)n0とBi(X)で
アドレスされた第3のテーブルT’にテーブル・ルック
アップを行い、X8n0.i(X)のG(X)による多項
式除算(Bi(X)は全ての可能な8ビットの値を表
す)の剰余を求める手段と、(c―2)n0とB(X)
の上位8ビットの値でアドレスされる第1のテーブルT
0の値と、n0+1とB(X)の下位8ビットの値でアド
レスされる第2のテーブルT1の値を加算する手段と、
(c―3)m+16がNより小さい場合、n1がゼロに
等しく、前の手段の結果を入力符号値と訂正されたメッ
セージの符号値との間の差とし、下記の手段(c―5)
で上記の差を変更せずにおく手段と、(c―4)m+1
6がNより大きいためにn1がゼロでない場合、n1でア
ドレスされる第2のテーブルT1にテーブル・ルックア
ップを行う手段と、(c―5)上記手段(c―2)の結
果と上記手段(c―4)の結果をモジュロ2多項式乗算
する手段と、(c―6)G(X)による多項式除算の剰
余を計算し、その結果を入力符号値と訂正されたメッセ
ージの符号値との間の差とする手段と、を有する、上記
(5)に記載の装置。 (8)上記通信網がフレーム・リレー網であり、メッセ
ージ長が可変長パケットであり、誤り検出符号及び誤り
訂正符号がV41CCITT勧告による生成多項式G
(X)に基づく16ビットのフレーム・チェック・シー
ケンス(FCS)であり、m+16の値がバイト数によ
るメッセージの大きさであり、Nが短いメッセージのバ
イト数による最大の大きさであり、中間ノードの中でパ
ケットにほどこされた訂正がパケットの最初の2バイト
に適用される、上記(5)、(6)、または、(7)に
記載の装置。 (9)上記通信網がフレーム・リレー網であり、メッセ
ージ長が可変長パケットであり、誤り検出符号及び誤り
訂正符号がフレーム・チェック・シーケンス(FCS)
であり、m+16の値がバイト数によるメッセージの大
きさであり、Nが短いメッセージのバイト数による最大
の大きさであり、中間ノードの中でパケットにほどこさ
れた訂正がパケットの最初の2バイトに適用される、上
記(5)、(6)、または、(7)に記載の装置。 (10)上記手段のすべてが中間ノードのコンピュータ
のソフトウェア命令として実施される、上記(7)に記
載の装置。 (11)上記手段のすべてがハードウェアで実施され
る、上記(6)に記載の装置。 (12)上記手段(c―2)、(c―3)、および(c
―4)、あるいは、(c―5―1)、(c―5―2)、
および(c―5―3)が同じハードウェア演算要素とし
て実施され、それ以外の他のすべての手段がソフトウェ
アのコンピュータ命令として実施される、上記(6)に
記載の装置。
【0123】
【発明の効果】本発明は、通信網の中間ノードで訂正さ
れたメッセージのデータビットに付けられたフレーム・
チェック・シーケンス(FCS)を中間ノードで計算す
る方法と装置を提供するものであり、具体的には、メッ
セージの中の訂正されたフィールドと、訂正されたフィ
ールドの終端とメッセージの終端との間のビット数で表
した距離との間の差を使用して、FCSの間の差を計算
することからなるものである。通過遅延を最適化する必
要のある高速通信網において、本発明の解法をとること
により、上記の計算に必要な中間ノードにおけるコンピ
ュータ資源、すなわち、メモリサイズとコンピュータ・
サイクルの必要使用量を有意に改善することができる。
【図面の簡単な説明】
【図1】中間ネットワーク・ノードで訂正される前およ
び訂正された後のメッセージのフィールドの構造を示す
図。
【図2】さまざまなパケット長に対応するテーブルの大
きさを表す表。
【図3】一般的な解法における論理的インターフェース
を表すブロック図。
【図4】Remult関数をハードウェアで行う1つの例を表
すブロック図。
【図5】本発明による解法のハードウェアによる実施を
表すブロック図。
【図6】メッセージ長の関数としてのコンピュータ・サ
イクル数を示す2つのグラフで、1つは中間ノードの最
大のコンピュータ容量を示し、他方は訂正されたFCS
を計算するためのコンピュータ資源を表す図。
【図7】全てをソフトウェアで実施した場合のブロック
図。
【符号の説明】
110 一般メッセージの構造 120 フレーム・リレーの場合のメッセ
ージ構造 300、301、303、304、305、309
16ビットバス 302、308、409 XOR論理演算 306 dFCSを計算するブロック 401、402、405、406、408
16ビットバス 403 16ビット×16ビットのモジュ
ロ2乗算器 404 32ビットバス 407 除算の剰余を計算する機能 410 バス 500 双方向バス 510 B(X)とn入力データを受ける
ブロック 515 B(X)をストアするブロック 520 nを分割するブロック 525 テーブルT0 530 テーブルT1 535、540 Remult演算子 545 バス500を通してdFCSを転送す
るためのブロック 710 B(X)を計算するブロック 720 nからn0およびn1を計算するブ
ロック 730 2つのT’テーブル・ルックアッ
プとその結果の加算を表すブロック 740 n1を入力変数とするT1テーブ
ル・ルックアップを表すブロック 750 繰り上がり桁なしのモジュロ2多
項式乗算を行うブロック 760 生成多項式G(X)によるモジュ
ロ2多項式除算の剰余を計算するブロック
───────────────────────────────────────────────────── フロントページの続き (72)発明者 エリック・サンジョルジュ フランス06610ラ・ゴード、アレ・アルフ ァ・ヂュ・サントール 291ー6 (72)発明者 ビクトール・スパニョル フランス06800カーニュ・シュル・メール、 シュマン・デ・コレット 12ビス

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】 通信網の中間ノードにおいて、訂正され
    たメッセージのデータビットの新しい巡回符号検査(C
    RC)の誤り検出符号と誤り訂正符号を計算する方法で
    あって、上記符号値は、訂正されたメッセージ・フィー
    ルド、メッセージの最初の誤り符号、および、訂正され
    たメッセージ・フィールドの終端とメッセージの終端と
    の間の距離mに依存し、 (a)係数がモジュロ2ガロア体に属する多項式B
    (X)で表される、入力メッセージと中間ノードで訂正
    されたメッセージとのビット単位の差を計算するステッ
    プと、 (b)m+16を2Nの1つの整数べきを基数に使って
    2つの整数n0とn1に分割するステップと、 (c)3つの値n0、n1、および、mを入力に使って入
    力メッセージの符号値と訂正されたメッセージの符号値
    との間の差を計算するステップと、 (d)上記差を最初のメッセージ符号値でモジュロ2加
    算し、新しいメッセージ符号値を得るステップと、 を有する上記方法。
  2. 【請求項2】 上記ステップ(c)が、さらに、 (c―1)n0でアドレスされる第1のテーブルT0にテ
    ーブル・ルックアップを行い、上記CRC符号の生成多
    項式G(X)によるX8n0の多項式除算の剰余を求める
    ステップであって、該多項式の係数がモジュロ2ガロア
    体に属するステップと、 (c―2)先行ステップの結果によるB(X)のモジュ
    ロ2多項式乗算を行うステップと、 (c―3)先行ステップのモジュロ2多項式乗算で得た
    上記結果の上位15ビットをG(X)で除算した剰余を
    計算するステップと、 (c―4)m+16がNより小さい場合、先行ステップ
    の結果を上記ステップ(c―2)の下位16ビットに加
    算し、次のステップ(c―5)を実行せず、本ステップ
    の結果を入力符号値と訂正されたメッセージの符号値と
    の間の差とするステップと、 (c―5)m+16がNより大きく、したがってn1
    ゼロでない場合、 (c―5―1)n1でアドレスされた第2のテーブルT1
    にテーブル・ルックアップを行い、X8N.n1のG(X)
    によるモジュロ2多項式除算の剰余を求めるステップ
    と、 (c―5―2)B(X)と先行ステップの結果のモジュ
    ロ2多項式乗算を行うステップと、 (c―5―3)先行ステップのモジュロ2多項式乗算で
    得た上記結果の上位15ビットをG(X)で除算した剰
    余を計算するステップと、 (c―5―4)先行ステップの結果を上記ステップ(c
    ―5―1)の下位16ビットに加算し、本ステップによ
    る結果を入力符号値と訂正されたメッセージの符号値と
    の間の差とするステップと、 を有する、請求項1に記載の方法。
  3. 【請求項3】 上記ステップ(c)が、 (c―1)Bi(X)とn0でアドレスされた第3のテー
    ブルT’にテーブル・ルックアップを行い、ステップ
    (c―5)の結果の、X8n0.i(X)のG(X)によ
    る多項式除算(Bi(X)は全ての可能な8ビットの値
    を表す)の剰余を求めるステップと、 (c―2)n0とB(X)の上位8ビットの値でアドレ
    スされる第1のテーブルT0の値と、n0+1とB(X)
    の下位8ビットの値でアドレスされる第2のテーブルT
    1の値を加算するステップと、 (c―3)m+16がNより小さい場合、n1がゼロに
    等しく、前のステップの結果を入力符号値と訂正された
    メッセージの符号値との間の差とし、次のステップ(c
    ―4)は実行せず、かつ、ステップ(c―5)で上記の
    差を変更せずにおくステップと、 (c―4)m+16がNより大きいためにn1がゼロで
    ない場合、n1でアドレスされる第2のテーブルT1にテ
    ーブル・ルックアップを行うステップと、 (c―5)上記ステップ(c―2)の結果と上記ステッ
    プ(c―4)の結果とをモジュロ2多項式乗算を行うス
    テップと、 (c―6)上記ステップ(c―5)の結果をG(X)に
    よる多項式除算をして剰余を計算し、その結果を入力符
    号値と訂正されたメッセージの符号値との間の差とする
    ステップと、 を有する、請求項1に記載の方法。
  4. 【請求項4】 上記通信網がフレーム・リレー網であ
    り、メッセージ長が可変長パケットであり、誤り検出符
    号及び誤り訂正符号がV41CCITT勧告による生成
    多項式G(X)に基づく16ビットのフレーム・チェッ
    ク・シーケンス(FCS)であり、m+16の値がバイ
    ト数によるメッセージの大きさであり、Nが短いメッセ
    ージのバイト数による最大の大きさであり、中間ノード
    の中でパケットにほどこされる訂正がパケットの最初の
    2バイトに適用される、請求項1、2、または、3に記
    載の方法。
  5. 【請求項5】 通信網の中間ノードにおいて、訂正され
    たメッセージのデータビットの新しい巡回符号検査(C
    RC)の誤り検出符号と誤り訂正符号を計算する装置で
    あって、上記符号値は、訂正されたメッセージ・フィー
    ルド、メッセージの最初の誤り符号、および、訂正され
    たメッセージ・フィールドの終端とメッセージの終端と
    の間の距離mに依存し、 (a)係数がモジュロ2ガロア体に属する多項式B
    (X)で表される、入力メッセージと中間ノードで訂正
    されたメッセージとのビット単位の差を計算する手段
    と、 (b)m+16を、1つの整数Nを基数として使って2
    つの整数n0とn1に分割する手段と、 (c)3つの値n0、n1、および、mを入力に使って入
    力メッセージの符号値と訂正されたメッセージの符号値
    との間の差を計算する手段と、 (d)上記差を最初のメッセージ符号値でモジュロ2加
    算し、新しいメッセージ符号値を得る手段と、 を有する装置。
  6. 【請求項6】 上記手段(c)が、さらに、 (c―1)n0とBi(X)によりアドレスされる第1の
    テーブルT0にテーブル・ルックアップを行い、上記C
    RC符号の生成多項式G(X)によるX8n0の多項式除
    算の剰余を求める手段(該多項式の係数はモジュロ2ガ
    ロア体に属する)と、 (c―2)上記手段(c―1)の結果によるB(X)の
    モジュロ2多項式乗算を行う手段と、 (c―3)先行手段によりモジュロ2多項式乗算で得た
    上記結果の上位15ビットをG(X)で除算した剰余を
    計算する手段と、 (c―4)m+16がNより小さい場合、上記手段(c
    ―3)で得られた結果を上記手段(c―2)で得られた
    結果の下位16ビットに含め、本手段の結果を入力符号
    値と訂正されたメッセージの符号値との間の差とする手
    段と、 (c―5)m+16がNより大きく、したがってn1
    ゼロでない場合に動作する手段であって、 (c―5―1)n1でアドレスされた第2のテーブルT1
    にテーブル・ルックアップを行い、X8N.n1のG(X)
    によるモジュロ2多項式除算の剰余を求める手段と、 (c―5―2)B(X)と上記手段(c―5―1)によ
    って得られた結果のモジュロ2多項式乗算を行う手段
    と、 (c―5―3)上記手段(c―5―2)によりモジュロ
    2多項式乗算で得た上記結果の上位15ビットをG
    (X)で除算した剰余を計算する手段と、 (c―5―4)上記手段(c―5―3)による結果を上
    記手段(c―5―1)の下位16ビットに加算し、本手
    段による結果を入力符号値と訂正されたメッセージの符
    号値との間の差とする手段と、を具備する手段、 を有する、請求項5に記載の装置。
  7. 【請求項7】 上記手段(c)が、 (c―1)n0とBi(X)でアドレスされた第3のテー
    ブルT’にテーブル・ルックアップを行い、X8n0.i
    (X)のG(X)による多項式除算(Bi(X)は全て
    の可能な8ビットの値を表す)の剰余を求める手段と、 (c―2)n0とB(X)の上位8ビットの値でアドレ
    スされる第1のテーブルT0の値と、n0+1とB(X)
    の下位8ビットの値でアドレスされる第2のテーブルT
    1の値を加算する手段と、 (c―3)m+16がNより小さい場合、n1がゼロに
    等しく、前の手段の結果を入力符号値と訂正されたメッ
    セージの符号値との間の差とし、下記の手段(c―5)
    で上記の差を変更せずにおく手段と、 (c―4)m+16がNより大きいためにn1がゼロで
    ない場合、n1でアドレスされる第2のテーブルT1にテ
    ーブル・ルックアップを行う手段と、 (c―5)上記手段(c―2)の結果と上記手段(c―
    4)の結果をモジュロ2多項式乗算する手段と、 (c―6)G(X)による多項式除算の剰余を計算し、
    その結果を入力符号値と訂正されたメッセージの符号値
    との間の差とする手段と、 を有する、請求項5に記載の装置。
  8. 【請求項8】 上記通信網がフレーム・リレー網であ
    り、メッセージ長が可変長パケットであり、誤り検出符
    号及び誤り訂正符号がV41CCITT勧告による生成
    多項式G(X)に基づく16ビットのフレーム・チェッ
    ク・シーケンス(FCS)であり、m+16の値がバイ
    ト数によるメッセージの大きさであり、Nが短いメッセ
    ージのバイト数による最大の大きさであり、中間ノード
    の中でパケットにほどこされた訂正がパケットの最初の
    2バイトに適用される、請求項5、6、または、7に記
    載の装置。
  9. 【請求項9】 上記通信網がフレーム・リレー網であ
    り、メッセージ長が可変長パケットであり、誤り検出符
    号及び誤り訂正符号がフレーム・チェック・シーケンス
    (FCS)であり、m+16の値がバイト数によるメッ
    セージの大きさであり、Nが短いメッセージのバイト数
    による最大の大きさであり、中間ノードの中でパケット
    にほどこされた訂正がパケットの最初の2バイトに適用
    される、請求項5、6、または、7に記載の装置。
  10. 【請求項10】上記手段のすべてが中間ノードのコンピ
    ュータのソフトウェア命令として実施される、請求項7
    に記載の装置。
  11. 【請求項11】上記手段のすべてがハードウェアで実施
    される、請求項6に記載の装置。
  12. 【請求項12】上記手段(c―2)、(c―3)、およ
    び(c―4)、あるいは、(c―5―1)、(c―5―
    2)、および(c―5―3)が同じハードウェア演算要
    素として実施され、それ以外の他のすべての手段がソフ
    トウェアのコンピュータ命令として実施される、請求項
    6に記載の装置。
JP7080611A 1994-05-06 1995-04-05 誤り検査符号及び訂正符号の計算方法および装置 Pending JPH0856165A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP94480036A EP0681381A1 (en) 1994-05-06 1994-05-06 Method and apparatus for modifying frame check sequences in intermediate high speed network nodes
FR94480036.6 1994-05-06

Publications (1)

Publication Number Publication Date
JPH0856165A true JPH0856165A (ja) 1996-02-27

Family

ID=8218117

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7080611A Pending JPH0856165A (ja) 1994-05-06 1995-04-05 誤り検査符号及び訂正符号の計算方法および装置

Country Status (3)

Country Link
US (1) US5689518A (ja)
EP (1) EP0681381A1 (ja)
JP (1) JPH0856165A (ja)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6041345A (en) * 1996-03-08 2000-03-21 Microsoft Corporation Active stream format for holding multiple media streams
US6014767A (en) * 1996-09-04 2000-01-11 International Business Machines Corporation Method and apparatus for a simple calculation of CRC-10
DE69731932T2 (de) * 1996-10-29 2006-02-16 International Business Machines Corp. Verfahren und Vorrichtung für zweistufige CRC-32-Berechnung
US6094435A (en) * 1997-06-30 2000-07-25 Sun Microsystems, Inc. System and method for a quality of service in a multi-layer network element
US6021132A (en) * 1997-06-30 2000-02-01 Sun Microsystems, Inc. Shared memory management in a switched network element
US6081512A (en) * 1997-06-30 2000-06-27 Sun Microsystems, Inc. Spanning tree support in a high performance network device
US6044418A (en) * 1997-06-30 2000-03-28 Sun Microsystems, Inc. Method and apparatus for dynamically resizing queues utilizing programmable partition pointers
US6044087A (en) * 1997-06-30 2000-03-28 Sun Microsystems, Inc. Interface for a highly integrated ethernet network element
US6115378A (en) * 1997-06-30 2000-09-05 Sun Microsystems, Inc. Multi-layer distributed network element
US6081522A (en) * 1997-06-30 2000-06-27 Sun Microsystems, Inc. System and method for a multi-layer network element
US6246680B1 (en) 1997-06-30 2001-06-12 Sun Microsystems, Inc. Highly integrated multi-layer switch element architecture
US6049528A (en) * 1997-06-30 2000-04-11 Sun Microsystems, Inc. Trunking ethernet-compatible networks
US6119196A (en) * 1997-06-30 2000-09-12 Sun Microsystems, Inc. System having multiple arbitrating levels for arbitrating access to a shared memory by network ports operating at different data rates
US6128666A (en) * 1997-06-30 2000-10-03 Sun Microsystems, Inc. Distributed VLAN mechanism for packet field replacement in a multi-layered switched network element using a control field/signal for indicating modification of a packet with a database search engine
US6088356A (en) * 1997-06-30 2000-07-11 Sun Microsystems, Inc. System and method for a multi-layer network element
US6016310A (en) * 1997-06-30 2000-01-18 Sun Microsystems, Inc. Trunking support in a high performance network device
US6097725A (en) * 1997-10-01 2000-08-01 International Business Machines Corporation Low cost searching method and apparatus for asynchronous transfer mode systems
US6075774A (en) * 1997-11-18 2000-06-13 3Com Corporation Method and device for generating a frame check sequence
US6633539B1 (en) 1998-08-28 2003-10-14 Cisco Technology, Inc. Device, method and article of manufacture for call setup pacing in connection-oriented networks
US6128760A (en) * 1998-10-13 2000-10-03 Lsi Logic Corporation Method and apparatus for calculating a CRC remainder
US6665393B1 (en) 2000-06-16 2003-12-16 Cisco Technology, Inc. Call routing control using call routing scripts
US6807269B1 (en) 2000-07-20 2004-10-19 Cisco Technology, Inc. Call management implemented using call routing engine
US6915473B2 (en) 2001-05-14 2005-07-05 Interdigital Technology Corporation Method and system for implicit user equipment identification
CN1941684A (zh) * 2001-05-14 2007-04-04 美商内数位科技公司 内隐用户设备辨识的方法与系统
US7103822B2 (en) * 2001-12-21 2006-09-05 International Business Machines Corporation Method and apparatus for computing ‘N-bit at a time’ CRC's of data frames of lengths not multiple of N
US6981195B2 (en) * 2002-08-02 2005-12-27 Analog Devices, Inc. Cyclic redundancy check with efficient re-computation of error detection code
US7200405B2 (en) 2003-11-18 2007-04-03 Interdigital Technology Corporation Method and system for providing channel assignment information used to support uplink and downlink channels
KR20050057698A (ko) * 2003-12-10 2005-06-16 삼성전자주식회사 체크섬을 생성하는 장치 및 방법
CN101009531B (zh) * 2006-01-25 2010-04-07 华为技术有限公司 进行差错控制的方法和互助中转系统
FR2912525A1 (fr) * 2007-05-25 2008-08-15 Siemens Vdo Automotive Sas Procede de controle d'integrite de donnees par redondance cyclique incrementale.
FR2964003A1 (fr) * 2010-08-19 2012-02-24 France Telecom Procede et dispositif de relayage dans un reseau de communication
FR3034934B1 (fr) * 2015-04-09 2017-05-05 Thales Sa Procede d'emission d'une information additionnelle et reseau de transmission d'informations avioniques mettant en oeuvre un tel procede

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3130504A1 (de) * 1981-08-01 1983-02-10 Brown, Boveri & Cie Ag, 6800 Mannheim Anordnung zur erzeugung von zyklisch-codierten informationen
DE3785211T2 (de) * 1987-10-30 1993-10-07 Ibm Mittel für Datenintegritätssicherung.
US5131012A (en) * 1990-09-18 1992-07-14 At&T Bell Laboratories Synchronization for cylic redundancy check based, broadband communications network
US5428629A (en) * 1990-11-01 1995-06-27 Motorola, Inc. Error check code recomputation method time independent of message length
US5251215A (en) * 1992-01-13 1993-10-05 At&T Bell Laboratories Modifying check codes in data packet transmission

Also Published As

Publication number Publication date
US5689518A (en) 1997-11-18
EP0681381A1 (en) 1995-11-08

Similar Documents

Publication Publication Date Title
JPH0856165A (ja) 誤り検査符号及び訂正符号の計算方法および装置
US5619516A (en) Efficient CRC remainder coefficient generation and checking device and method
EP0609595B1 (en) Method and apparatus for verifying CRC codes by combination of partial CRC codes
US5325372A (en) Implementation of the HDLC CRC calculation
US6530057B1 (en) High speed generation and checking of cyclic redundancy check values
US5951707A (en) Method of partitioning CRC calculation for a low-cost ATM adapter
US6681364B1 (en) Cyclic redundancy check for partitioned frames
US7219293B2 (en) High performance CRC calculation method and system with a matrix transformation strategy
US6014767A (en) Method and apparatus for a simple calculation of CRC-10
JP3404642B2 (ja) Crc−32の2段階計算の方法および装置
US10248498B2 (en) Cyclic redundancy check calculation for multiple blocks of a message
US20050204268A1 (en) Decoding and error correction for algebraic geometric codes
JPH01149631A (ja) フレームチエツクシーケンス更新方法
EP0614294A1 (en) Method for generating a frame check sequence
US5694407A (en) Method and an apparatus for modifying a FCS
US20020144208A1 (en) Systems and methods for enabling computation of CRC&#39; s N-bit at a time
US6154869A (en) Combined error position circuit and chien search circuit for reed-solomon decoding
US8132078B2 (en) Decoding method for algebraic geometric codes and associated device
US7181671B2 (en) Parallelized CRC calculation method and system
US5923681A (en) Parallel synchronous header correction machine for ATM
Roginsky et al. Efficient computation of packet CRC from partial CRCs with application to the Cells-In-Frames protocol
CN115001508A (zh) 一种crc并行计算方法
US5774480A (en) Cyclic code check bits generation and error correction using sum of remainders
JP2002094389A (ja) 復号方法及びその装置とそれを用いたシステム
Navimipour et al. Double Bits Error Correction for ComputationalGrid with CRC