JP2004173271A - 誤り検出を改善するローリングcrc機構 - Google Patents

誤り検出を改善するローリングcrc機構 Download PDF

Info

Publication number
JP2004173271A
JP2004173271A JP2003384653A JP2003384653A JP2004173271A JP 2004173271 A JP2004173271 A JP 2004173271A JP 2003384653 A JP2003384653 A JP 2003384653A JP 2003384653 A JP2003384653 A JP 2003384653A JP 2004173271 A JP2004173271 A JP 2004173271A
Authority
JP
Japan
Prior art keywords
crc
data block
data
function
block
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
JP2003384653A
Other languages
English (en)
Inventor
Das Sharuma Debendora
デベンドラ・ダス・シャルマ
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of JP2004173271A publication Critical patent/JP2004173271A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • H03M13/091Parallel or block-wise CRC computation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

【課題】 誤り検出を改善する。
【解決手段】 本発明の1つの態様は、一連のデータ・ブロックを受け取り、その一連のデータ・ブロックのうちの少なくとも1つのデータ・ブロックに、予想巡回冗長符号(CRC)を提供するように構成されたエンコーダを備える送信ノードを提供する。予想CRCは、少なくとも1つのデータ・ブロックと先行データ・ブロックの関数である。また、本発明の1つの態様は、一連のデータ・ブロックを受け取り、その一連のデータ・ブロックのうちの少なくとも1つのブロックの予想巡回冗長符号(CRC)を受け取り、少なくとも1つのデータ・ブロックに計算CRCを提供するように構成されたデコーダを備える受信ノードを提供する。
【選択図】図4

Description

本発明は、一般に、データ通信システムに関連し、より詳細には、分散されたノード間でデータを送信し、送られたデータが誤りなく受け取られたかどうかを検出技術を使用して決定するネットワーク接続システムに関する。
ネットワーク接続システムは、分散されたノード間で、なんらかの形のネットワーク接続によってデータを伝送する。
残念ながら、そのようなネットワーク接続は、多くの場合、ノイズが多く、送信されたデータに誤りが導入される。
これに応えて、これまで多くの誤り検出技術が開発されており、それらの技術はすべて、ネットワーク接続を介して送信されたデータの受け取り側が、データを誤りなく受け取ったかどうかを判定できるようにすることによって動作している。
ひとつの一般的な誤り検出技術において、送信ノードにおける送信器は、送信するデータからチェックサムと呼ばれる値を計算して、そのチェックサムを送信データの終わりに付加する。
次に、このデータは、関連付けられたチェックサムと共に、送信ノードから受信ノードの受信器に送られる。
次に、受信ノードの受信器は、受け取ったデータ・ブロックから、送信ノードが計算した仕方と同じようにチェックサムを計算する。
受信ノードによって計算されたチェックサムが、送信ノードによって送信データに付加されたチェックサムと一致すると、データ・ブロックが誤りなしに受け取られたことが分かる。
この一般的な誤り検出技術を採用している1つの従来の誤り検出の応用例は、巡回冗長符号(CRC)機構の使用を伴う。
CRC誤り検出機構において、送られるデータは、生成多項式と呼ばれる別の2進数で割った大きな2進数と見なされる。
この割った余りは、送信前にデータに付加されるCRCチェックサムであり、一般に単にCRCと呼ばれる。
生成多項式の次数は、送信されるデータに付加されるCRCのビットの数と等しい。
CRC誤り検出機構によって実現される誤り検出能力の高さは、CRC機構によって利用される生成多項式の次数に比例する。
生成多項式の次数が高いほど、誤り検出能力が高くなる。
したがって、CRC機構の誤り検出能力を高めるために用いられる1つの手法は、生成多項式の次数を高めることである。
しかしながら、生成多項式の次数を高めると、CRCに割り当てられるビットの数も増え、それによりネットワーク接続に使用できる有効帯域幅が小さくなり、ノード間でデータを送信するために必要な時間が増える。
さらに、ネットワーク接続システムによっては、コスト、電気的制約、より高い帯域幅ネットワーク接続へのアクセス制限など、様々な理由のために、ネットワーク接続の帯域幅を大きくするの難しい場合がある。
誤り検出の改善が望ましいきわめて重要なデータを送るとき、CRC誤り検出技術を利用するシステムは、有効な使用可能帯域幅を犠牲にして誤り検出能力を改善するか、潜在的に不完全な誤り検出を犠牲にして有効な使用可能帯域幅を維持するかの設計選択に直面する。
特に帯域幅の制約を有する多くのシステムは、CRCチェックサムに割り当てられるビットの数を増やしたりネットワーク接続帯域幅を広くしたりせずに改善された誤り検出を提供するCRC誤り検出システムから利益を得ることになる。
本発明の1つの態様は、データを通信する方法を提供する。
この方法は、一連のデータ・ブロックのうちの少なくとも1つのデータ・ブロックの巡回冗長符号(CRC)を生成する段階を有する。
CRCは、少なくとも1つのデータ・ブロックと先行データ・ブロックの関数である。
本発明の1つの態様は、一連のデータ・ブロックを受け取り、その一連のデータ・ブロックのうちの少なくとも1つのデータ・ブロックに、予想巡回冗長符号(CRC)を提供するように構成されたエンコーダを備える送信ノードを提供する。
予想CRCは、少なくとも1つのデータ・ブロックと先行データ・ブロックの関数である。
本発明の1つの態様は、一連のデータ・ブロックを受け取り、その一連のデータ・ブロックのうちの少なくとも1つのブロックの予想巡回冗長符号(CRC)を受け取り、少なくとも1つのデータ・ブロックに計算CRCを提供するように構成されたデコーダを備える受信ノードを提供する。
計算CRCは、少なくとも1つのデータ・ブロックと先行データ・ブロックの関数である。
受信ノードは、また、少なくとも1つのデータ・ブロックの計算CRCを予想CRCと比較し、それにより少なくとも1つのデータ・ブロックまたは先行データ・ブロック内にデータの誤りがあるかどうの指示を提供するように構成されたコンパレータを備える。
本発明の1つの態様は、ネットワーク接続と、ネットワーク接続に結合された送信ノードと、ネットワーク接続に結合された受信ノードとを含むネットワーク接続システムを提供する。
送信ノードは、一連のデータ・ブロックを受け取り、その一連のデータ・ブロックのうちの少なくとも1つのデータ・ブロックに、少なくとも1つのデータ・ブロックと先行データ・ブロックの関数である予想巡回冗長符号(CRC)を提供するように構成されたエンコーダを備える。
受信ノードは、送信ノードから、一連のデータ・ブロックと、その一連のデータ・ブロックのうちの少なくとも1つのデータ・ブロックの予想CRCとを受け取り、少なくとも1つのデータ・ブロックに、少なくとも1つのデータ・ブロックと先行データ・ブロックの関数である計算CRCを提供するように構成されたデコーダを備える。
受信側は、また、少なくとも1つのデータ・ブロックの計算CRCを予想CRCと比較して、それにより少なくとも1つのデータ・ブロックまたは先行データ・ブロック内にデータの誤りがあるかどうかの指示を提供するように構成されたコンパレータを備える。
本発明によれば、分散されたノード間でデータを送信し、送られたデータが誤りなく受け取られたかどうかを検出技術を使用して決定するネットワーク接続システムが得られる。
好ましい実施形態の以下の詳細な説明において、本明細書の一部分を構成する添付図面を参照し、この図面において、本発明を実施することができる実施例に固有の図によって示されている。
本発明の範囲から逸脱することなく他の実施形態を利用することができまた構造的または論理的変更を行うことができることを理解されたい。
したがって、以下の詳細な説明は、限定の意味に解釈されるべきでなく、本発明の範囲は、併記の特許請求の範囲によって定義される。
図1に、ネットワーク接続システムを、全体を30で、ブロック図の形で示す。
ネットワーク接続システム30は、32で示したノードAと、34で示したノードBとを含む。
ネットワーク接続システム30は、ネットワーク接続36を介して、32で示したノードAと34で示したノードBの間でデータを通信する暗黙的な能力を有する。
しかしながら、ネットワーク接続は、しばしばノイズが多く、送信データを破損させる可能性がある誤りを導入することがある。
その結果、ネットワーク接続を介して送られたデータを受け取るノードが、データを誤りなく受け取ったかどうかを判定できるように、様々な誤り検出機構が開発されてきた。
本明細書の従来技術の節で考察したように、一般にネットワーク接続システムによって採用されているそのような1つの従来の誤り検出機構は、巡回冗長符号(CRC)誤り検出機構である。
CRC誤り検出機構において、送信されるデータは、大きな2進数として見なされる。
データを送信するノードは、データで構成された大きな2進数を、生成多項式と呼ばれる別の2進数で割る。
このわり算の余りは、CRCチェックサムと呼ばれ、一般には単にCRCと呼ばれる。
次に、送信ノードは、このデータにCRCを付加して、そのデータと付加したCRCをネットワーク接続を介して受信ノードに送る。
受信ノードは、送信されたデータとCRCを受け取ると、送信ノードと同じ生成多項式を使って、受け取ったデータからCRCを計算する。
受信ノードによって受信データから計算されたCRCが、送信ノードによって送られたCRCと一致すると、送信されたデータが誤りなしに受け取られたことが分かる。
図2Aは、ネットワーク接続システム30の32で示したノードAと34で示したノードBの間のようなネットワーク・システム・ノード間でデータを物理的に送信するための例のメッセージ構成40の説明図である。
データは、一般に、メッセージ構成40によって表したようなメッセージの形で、ノード間で通信される。
本明細書において、メッセージは、応用例によって定義されたノード間のデータ交換の単位であるように定義される。
メッセージは、一般に、パケット42や44のような、ノード間でメッセージを物理的に送るためのパケットで編成される。
本明細書において、パケットは、ヘッダ46および48やトレーラ50および52のようなネットワーク・プロトコルのヘッダおよび/またはトレーラに間のカプセル化されたデータ単位であるように定義される。
各パケットは、さらに、本明細書でフリット(flit)と呼ばれ、フリット54、56、58および60によって示したようなデータ単位を含む。
最後に、各フリットは、62、64、66および68で示したようなデータ・ブロックと、70、72、74および76で示したようなCRCとを含む。
図2Bは、図1のネットワーク接続システム30の例のフリット構成80の説明図である。
図2Bの例示的な構成において、ネットワーク接続システム30のフリット80はそれぞれ、132ビットのデータ・ブロックと12ビットのCRCを含み、32で示したノードAと34で示したノードBは、ネットワーク接続36を介して16ビット/1サイクルのデータを送ることができる。
しかしながら、後で説明する本発明は、任意の適切なフリット構成、データ・ブロック・サイズ、CRCサイズ、およびデータ転送レートに適用することができる。
図2Bの例示において、32で示したノードAが、34で示したノードBにフリット80を送るためには、9つのサイクルが必要である。
したがって、例えばフリット80の場合、サイクル0で、82で示したデータ・ビット0〜15が送られ、サイクル1で、84で示したデータ・ビット16〜31が送られ、サイクル2で、86で示したデータ・ビット32〜47が送られ、サイクル3で、88で示したデータ・ビット48〜63が送られ、サイクル4で、90で示したデータ・ビット64〜79が送られ、サイクル5で、92で示したデータ・ビット80〜95が送られ、サイクル6で、94で示したデータ・ビット96〜111が送られ、サイクル7で、96で示したデータ・ビット112〜127が送られ、サイクル8で、98で示したデータ・ビット128〜131とCRCビット0〜11が送られる。
CRC誤り検出機構の生成多項式は、モジューロ原始多項式(module primitive polynomial)であり、ここで、モジューロ原始多項式の次数は、CRCに割り当てられるビット数と同じである。
したがって、例えばフリット図2Bのフリット80の場合、生成多項式は、次数12のモジューロ原始多項式になる。
従来のCRC機構によって提供される誤り検出能力の高さは、生成多項式の次数に比例する。
したがって、利用されるCRCビットが多いほど、生成多項式の次数が高くなり、その結果誤り検出能力が高くなる。
一般に、ランダム・マルチビット・エラーが検出されない確率は、次の式Iで表すことができる。
[式I]
マルチビット・エラーが検出されない検出=2(-n)
ここで、nは、1フリットに割り当てられたCRCビットの数
ネットワーク接続システム30に関して、上の式を図2Bの例示的なフリット構成80に適用するとき、ネットワーク接続36を介して32で示したノードAから34で示したノードBにフリット80を送るときにランダム・マルチビット・エラーが検出されない確率は、1/4096である。
このマルチビット・エラーが検出されない確率が、許容可能な誤り検出レベルかどうかは、誤り率と目標サイレント破損率(targeted silent corruption rate)に依存する。
サイレント・データ汚染の確率が許容可能なレベルよりも高いときに誤り検出を改善するために、これまで従来の2つの手法を使って誤り検出能力を改善していた。
第1の従来の手法は、CRC生成多項式に使用されるモジューロ原始多項式の次数を高めることである。
例えば、ネットワーク接続システム30に例のフリット構成80を使用するとき、生成多項式を次数12から次数16に高めることにより、マルチビット・エラーが検出されない確率は、1/4096から1/65,536に改善される。
しかしながら、生成多項式の次数を高める結果、CRCに割り当てられるビット数も増える。
結果として、例のフリット80によって転送することができるデータ・ビットの数が減少し、結局、ネットワーク接続36の有効帯域幅が小さくなり、32で示したノードAが34で示したノードBに所定量のデータを送るのに必要な時間が長くなる。
第2の従来の手法は、フリット・レベルCRCに加えてパケット・レベルCRCを利用することである。
この手法では、パケット内のフリットのデータ・ブロックを結合して大きな2進数にし、この2進数を第2の生成多項式で割ってパケット・レベルCRCを生成する。
この第2の従来の手法は、帯域幅の減少がごくわずかな改善された誤り検出能力を実現するが、送信中にパケットが破損されたかどうかを判定する前にパケットを構成するすべてのデータ・ブロックを受け取るのを待たなければならないため、システムに待ち時間が生じるという欠点がある。
以下で説明する本発明のローリングCRC誤り検出機構は、送信ノードと受信ノード間の有効帯域幅の減少がなくかつパケットを構成するデータ・ブロックを使用するべきかどうか判定する前にパケットのすべてのデータ・ブロックを待たなければならないことに関連した待ち時間のない改善された誤り検出能力を実現することができる。
1つの実施形態において、以下に説明する本発明のローリングCRC誤り検出機構は、少なくとも1つの送信フリット内の少なくとも1つのデータ・ブロックのCRCを、対応するフリットの少なくとも1つのデータ・ブロックの誤り検査だけでなく、ネットワーク接続による送信において少なくとも1つのデータ・ブロックに先行する1つまたは複数のフリットのデータ・ブロックの誤り検出にも使用されることによって、改善された誤り検出能力を実現する。
所定のフリットのCRCが誤り検査に使用される先行フリットの数は、本明細書において、深さとして定義される。
例えば、ネットワーク接続を介した送信において所定のフリットに先行する2つのフリットの誤り検査に使用される所定のフリットのCRCは、深さ2を有し、一方、1つの先行フリットの誤り検査に使用される所定のフリットのCRCは、深さ1を有する。
1つの実施形態において、この深さは、ユーザおよび/または用途によって選択することができる。
所定のデータ・ブロックbのCRCに先行データ・ブロックb−1〜b−xが影響を及ぼすことによって、本発明によるローリングCRC機構は、そのようなデータ・ブロックのうちの1つにデータ誤りがあったことを示す。したがって、ランダム・マルチビット・エラーが検出されない確率は低下し、次の式IIで表わすことができる。
[式II]
マルチビット・エラーが検出されない確率=2(-n(x+1))
ここで、
n=1フリットに割り当てられたCRCビットの数
x=CRC深さ(すなわち、先行データ・ブロックの数)
である。
データ・ブロックbで誤りが検出されると、これは、データ・ブロックbからb−xにデータ破損の可能性があることを示す。
1つの例の実施形態において、その範囲のデータ破損の可能性あるすべてのデータ・ブロックは廃棄される。
しかしながら、このことは、送信データを受け取ったノードが、CRCが依存するすべての後続データ・ブロックを受け取るまで、既に受け取っているデータ・ブロックを処理し始めるのを待たなければならないということを意味しない。
集積回路内に実施されるような代表的なルーティング回路は、処理および転送ロジックによって生じる固有の待ち時間を有し、この待ち時間は、特にCRCの深さが最大でないときに、CRCが依拠する既に受け取ったデータ・ブロックの後続のデータ・ブロックを受け取るのを待つ際にローリングCRC誤り検出機構によって生じる待ち時間よりも大きいことがある。
したがって、受信ノードによって既に処理されているCRCが依拠するデータ・ブロックの後続のデータ・ブロックをすべて受け取った後で誤りが検出された場合は、受信ノードがそれらのデータ・ブロックに依拠する前にその範囲内のすべてのデータ・ブロックを破棄しパイプラインからフラッシュすることができる。
図3に、深さ1を有するローリングCRCを生成するための本発明によるローリングCRC誤り検出機構の例示的な実施形態を全体を110でブロック図で示す。
この例示的な実施形態において、例のパケット120は、112で示した一連のデータ・ブロック0、114で示したデータ・ブロック1、116で示したデータ・ブロックb−i、118で示したデータ・ブロックbを含む。
114で示したデータ・ブロック1に対応する122で示したCRC1は、後述のように計算される。
114で示した132ビットのデータ・ブロック1は、リンク126を介して第1のCRCジェネレータ124によって受け取られる。
CRCジェネレータ124は、データ・ブロック1を第1の生成多項式g(x)で割って12ビットの第1の暫定CRCを生成する。
112で示した132ビットのデータ・ブロック0は、リンク130を介して第2のCRCジェネレータ128によって受け取られる。
CRCジェネレータ128は、データ・ブロック0を第2の生成多項式p(x)で割って12ビットの第2の暫定CRCを生成する。
最後のCRCジェネレータ132は、リンク134を介して第1の暫定CRCとリンク136を介して第2の暫定CRCを受け取り、第1と第2の暫定CRCを結合する機能を実行する。
図3に示した例の実施形態において、最後のCRCジェネレータ132は、第1と第2の暫定CRCにXOR関数138を実行して、それにより、114で示したデータ・ブロック1に、122で示した12ビットCRC1を提供する。
これと共に、114で示したデータ・ブロック1と122で示したCRC1が、図2Bの例のフリット80と類似のフリット1を構成する。
パケット120の他のデータ・ブロックのCRCは、122で示したCRC1に関する前の説明と類似の方法で生成される。
さらに、パケット境界を横切る他のデータ・ブロックに関して、前の説明と類似の方法でCRCを計算することができる。
図4は、本発明によるネットワーク接続システム150の1つの実施形態のブロック図である。
ネットワーク接続システム150は、送信ノード152、受信ノード154、およびネットワーク接続156を含む。
送信ノード152は、バッファ・モジュール158とエンコーダ160を含む。
受信ノード154は、ステージング・モジュール162、デコーダ164、およびコンパレータ166を含む。
ネットワーク接続156は、ローカル・エリア・ネットワーク(LAN)接続、バス接続、電話線/モデム接続、直接ワイヤレス接続、インターネット接続、および/またはイントラネット接続を含むがこれらに限定されない任意の適切なタイプの接続を含むことができる。
バッファ・モジュール158は、一連のデータ・ブロックを受け取り、それをリンク168を介してエンコーダ160に所望の順序で提供する。
エンコーダ160は、一連のデータ・ブロックを受け取り、その一連のデータ・ブロックのうちの少なくとも1つのデータ・ブロックに、その少なくとも1つのデータ・ブロックと先行データ・ブロックの関数である予想CRCを提供する。
次に、送信ノード152は、ネットワーク接続156を介して、一連のデータ・ブロックを、少なくとも1つのデータ・ブロックの予想CRCと共に受信ノード154に提供する。
ステージング・モジュール162は、ネットワーク接続156を介して一連のデータ・ブロックとうちの少なくとも1つのデータ・ブロックの予想CRCを受け取り、リンク170を介してその一連のデータ・ブロックをデコーダ164に適切な順序で提供し、リンク172を介して少なくとも1つのデータ・ブロックのCRCをコンパレータ166に提供する。
また、ステージング・モジュール162は、出力174で一連のデータ・ブロックを、バッファあるいはコミットすることなくデータを処理し始めることができるプロセスに提供する。
デコーダ164は、リンク176を介してコンパレータ166に、少なくとも1つのデータ・ブロックと先行データ・ブロックの関数である少なくとも1つのデータ・ブロックの計算CRCを提供する。
コンパレータ166は、計算CRCを予想CRCと比較し、少なくとも1つのデータ・ブロック内または先行データ・ブロック内にデータ誤りがあるかの指示を出力178に提供する。
1つの実施形態において、予想CRCと計算CRCが一致した場合、出力178は、データ・ブロックが誤りなく受け取られ、プロセスがデータにコミットできることを示す。
1つの実施形態において、予想CRCと計算CRCが一致しない場合、出力178は、少なくとも1つのデータ・ブロック、先行データ・ブロックまたはこれらの両方にデータ・エラーがあり、バッファまたはプロセスがデータを廃棄することができることを示す。
図5は、本発明による深さ1のローリングCRC誤り検出機構を有する送信ノード200の1つの実施形態のブロック図である。
送信ノード200は、バッファ・モジュール202、エンコーダ204、および出力モジュール206を含む。
バッファ・モジュール202は、第1のバッファ・レジスタ208と第2のバッファ・レジスタ210を含む。
エンコーダ204は、第1のCRCジェネレータ212、第2のCRCジェネレータ214、および第3のCRCジェネレータ216を含む。
出力モジュール206は、出力レジスタ218を含む。
第1のバッファ・レジスタ208は、入力220を介して一連のデータ・ブロックを受け取る。
その結果、第2のバッファ・レジスタ210は、リンク222を介して第1のバッファ・レジスタ208から遅延した一連のデータ・ブロックを受け取る。
第1のバッファ・レジスタ220は、現在受け取ってあるデータ・ブロックを含み、第2のバッファ・レジスタ210は、一連のデータ・ブロックの先行データ・ブロックを含む。
第1のCRCジェネレータ212は、リンク224を介して第2のバッファ・レジスタ210から先行データ・ブロックを受け取り、リンク226を介して第3のCRCジェネレータ214に、先行データ・ブロックの関数である第1の暫定CRCを提供する。
第2のCRCジェネレータ216は、リンク228を介して第1のバッファ・レジスタから現行データ・ブロックを受け取り、リンク230を介して第3のCRCジェネレータ214に現行データ・ブロックの関数である第2の暫定CRCを提供する。
第3のCRCジェネレータ214は、第1と第2の暫定CRCに関数を実行し、現行データ・ブロックにCRCを提供する。
出力レジスタ218は、リンク232を介して第1のバッファ・レジスタ208から現行データ・ブロックを受け取り、リンク234を介して第3のCRCジェネレータ214から現行データ・ブロックのCRCを受け取り、それによりネットワーク接続236を介した送信のために、現行データ・ブロックと現行データ・ブロックのCRCを含むフリットを提供する。
送信ノード200内に深さゼロのCRCが構成されると、第2のバッファ・レジスタ210は、ゼロにリセットされ、第3のCRCジェネレータ214は、現行データ・ブロックだけの関数である現行データ・ブロックのCRCを提供する。
1つの実施形態において、送信ノード200内の回路は、所望のCRC深さに事前設定される。
1つの実施形態において、送信ノード200にアクセスするユーザあるいは送信ノード200上で実行されるアプリケーションまたはプロセスが、所望のCRC深さを選択する。
1つの実施形態において、第1のCRCジェネレータ212の機能は、先行データ・ブロックを第1の原始多項式で割ることである。
1つの実施形態において、第2のCRCジェネレータ216の機能は、現行データ・ブロックを、第1の原始多項式と異なる第2の原始多項式で割ることである。
1つの実施形態において、第3のCRCジェネレータ214の機能は、第1のCRCジェネレータ212と第2のCRCジェネレータ216からそれぞれ受け取った第1と第2の暫定CRCのXOR(排他的論理和)を求めることである。
図6は、本発明による深さ1のローリングCRC誤り検出機構を有する受信ノード250の1つの実施形態のブロック図である。
受信ノード250は、ステージング・モジュール252、デコーダ254、およびコンパレータ・モジュール256を含む。
ステージング・モジュール252は、第1のステージング・レジスタ258と第2のステージング・レジスタ260を含む。
デコーダ254は、第1のCRCジェネレータ262、第2のCRCジェネレータ264、第3のCRCジェネレータ266、および第1のCRCレジスタ268を含む。
コンパレータ・モジュール256は、第1のコンパレータ272と第2のコンパレータ274を含む。
第1のステージング・レジスタ258は、ネットワーク接続276を介して、それぞれデータ・ブロックと予想CRCを含む一連のフリットを受け取る。
第1のステージング・レジスタ258は、一連のフリットを次々と受け取ると、リンク278を介して第2のステージング・レジスタ260に先行フリットを転送する。
その結果、第1のステージング・レジスタ258は、現行フリットを含み、第2のステージング・レジスタ260は、先行フリットを含むことになる。
第1のステージング・レジスタ258が、一連のフリットのうちの次のフリットを受け取ると、第1のステージング・レジスタは、リンク278を介して第2のステージング・レジスタ260に現行フリットを送り、リンク280を介して第1のCRCジェネレータ262に現行フリットのデータ・ブロックを送り、リンク282を介して第1のコンパレータ272に現行フリットの予想CRCを送る。
第2のステージング・レジスタ260が、第1のステージング・レジスタ258から現行フリットを受け取ると、第2のステージング・レジスタ260は、先行フリットのデータ・ブロックを、リンク284を介して第2のCRCジェネレータ264に送り、リンク286を介して宛先バッファまたは宛先プロセスに送り、リンク288を介して第2のコンパレータ274に先行フリットの予想CRCを送る。
第1のCRCジェネレータ262は、現行フリットのデータ・ブロックに機能を実行し、第1の暫定CRCを、リンク290を介して第1のCRCレジスタ268に提供し、リンク292を介して第1のコンパレータ272に提供する。
第2のCRCジェネレータ264は、先行フリットのデータ・ブロックに機能を実行し、リンク294を介して第3のCRCジェネレータ266に第2の暫定CRCを提供する。
第3のCRCジェネレータ266は、リンク296を介して第1のCRCレジスタ268から第1の暫定CRCを受け取る。
第3のCRCジェネレータ266は、第1と第2の暫定CRCに機能を実行し、リンク300を介して第2のコンパレータ274に現行フリットデータ・ブロックの計算CRCを提供する。
第2のコンパレータ274は、現行フリットの予想CRCを計算CRCと比較し、出力302を介して宛先バッファまたは宛先プロセスに誤りの指示を提供する。
1つの実施形態において、予想CRCが、現行フリットの計算CRCと一致した場合、出力302は、現行フリットが誤りなく受け取られ、宛先プロセスが現行フリットのデータ・ブロックにコミットできることを示す。
1つの実施形態において、予想CRCが、現行フリットの計算CRCと一致しない場合、出力302は、現行フリットと先行フリットのデータ・ブロックが、宛先バッファまたは宛先プロセスによって破棄され、そのフリットが再送信されることを示す。
図6は、深さ1のローリングCRC誤り検出機構を示す。
しかしながら、深さxの任意の所定のローリングCRC誤り検出機構を構成し、後の段をディスエーブルすることによって小さい任意の深さ(すなわち、x−1、x−2、...、0)を利用するようにすることができる。
これにより、深さが小さいほど待ち時間が少なくなるが信頼性も低下する同一回路による待ち時間と信頼性のトレードオフの融通性が提供される。
例えば、受信ノード250の1つの実施形態は、第2段の回路をディスエーブルすることによって深さ0のローリングCRCを利用するように構成される。
この深さゼロの構成において、第1のステージング・レジスタ258は、一連のフリットの次のフリットを受け取ると、第2のステージング・レジスタ260をバイパスして、リンク304を介して宛先バッファまたは宛先プロセスに直接現行フリットのデータ・ブロックを提供する。
この深さゼロの構成において、第1のコンパレータ272は、計算CRCを現行フリットの予想CRCと比較し、出力306によって宛先バッファまたは宛先プロセスに誤り指示を提供する。
この深さゼロの構成の1つの実施形態において、予想CRCが現行フリットの計算CRCと一致した場合、出力306は、現行フリットが誤りなしに受け取られたことと、宛先プロセスが現行フリットのデータ・ブロックにコミットできることを示す。
この深さゼロの構成の1つの実施形態において、予想CRCが現行フリットの計算CRCと一致しない場合、出力306は、現行フリットが宛先バッファまたは宛先プロセスによって破棄され、現行フリットが再送信されるべきであることを示す。
1つの実施形態において、受信ノード250内の回路は、所望のCRC深さに事前設定される。
1つの実施形態において、受信ノード250にアクセスするユーザまたは受信ノード250上で実行されるアプリケーションまたはプロセスは、所望のCRC深さを選択する。
1つの実施形態において、第1のCRCジェネレータ262の機能は、第1の先行データ・ブロックを第1の原始多項式で割ることである。
1つの実施形態において、第2のCRCジェネレータ264の機能は、現行データ・ブロックを、第1の原始多項式と異なる第2の原始多項式で割ることである。
1つの実施形態において、第3のCRCジェネレータ266の機能は、第1のCRCジェネレータ262と第2のCRCジェネレータ264からそれぞれ受け取った第1と第2の暫定CRCのXORを求めることである。
以上説明した実施形態において、第1の原始多項式と第2の原始多項式は異なる。
1つの実施形態において、第1の原始多項式と第2の原始多項式は、同一の原始多項式であるが、この単純化は、ランダム・マルチビット・エラーが検出されない可能性を高め、その結果、ランダム・マルチビット・エラーが検出されない確率を表す前述の式IIが真でなくなる。
しかしながら、第1の原始多項式が第2の原始多項式と同じ本発明の代替の実施形態は、原始多項式に入力される所定のデータ・ブロックのビットの相対的な重みを変化させて、1つの原始多項式で2つの暫定CRCを計算する。
1つの代替の実施形態において、原始多項式へのデータ・ブロックのビットの相対的な重みは、CRCジェネレータ原始多項式関数内のビット位置をシフトすることによって変更される。
この代替の実施形態では、データを1ビット右にシフトしないようにすることが好ましく、それは、モジュールの動作による循環シフトによってCRCが形成される結果、この1ビット・シフトにより、過去のCRCと大きな相関関係が生じるためである。
この代替の実施形態におけるシフトの1つの単純な解決策は、環状にxビット左にシフトすることであり、ここで、xは2以上である。
もう1つの代替の実施形態において、第2の暫定CRCを計算するために、第1の暫定CRCを計算するために使用されるデータ・ブロックのビットが反転される。
もう1つの代替の実施形態において、第2の暫定CRCを計算するために、第1の暫定CRCを計算するためのビットがシャッフルされる(例えば、ビット0をビット1とシャッフルし、ビット2をビット3とシャッフルし、以下同じようにシャッフルするか、ビット0をビットnとシャッフルし、ビット1をビットn−1とシャッフルし、以下同じようにシャッフルするか、ビット0〜7をビットn〜n−7とシャッフルし、ビット8〜15をビットn−8〜n−15とシャッフルし、以下同じようにシャッフルする)。
この実施形態において、有効成分として第1の原始多項式を含まない新しい原始多項式を生成する任意の適切なビット・シャッフルを使用することができる。
複合的な実施形態において、第1と第2の暫定CRCを計算するために様々な原始多項式が使用され、暫定CRCを計算するために使用されるデータ・ブロックの入力ビットの相対的な重みは、ビットをシフトまたはシャッフルすることによって変更される。
以上説明した本発明のローリングCRC誤り検出機構の1つの実施形態は、対応する送信フリット内の所定のデータ・ブロック(例えば、ブロックb)のCRCを、対応するフリット内の所定のデータ・ブロックの誤り検査としてだけでなく、ネットワーク接続を介した送信の際に所定のデータ・ブロックに先行する1つまたは複数のフリットのデータ・ブロック(例えば、ブロックb−1からb−x)に使用することによって誤り検出能力を改善したネットワーク接続システムを提供する。
そうすることにより、本発明のローリングCRC誤り検出機構のこの実施形態は、送信ノードと受信ノード間の有効帯域幅の減少がなくかつパケットを構成するデータ・ブロックを使用すべきかどうかを判定する前にパケットのすべてのデータ・ブロックを待たなければならないことに関連した待ち時間がない改善された誤り検出能力を提供することができる。
本明細書において、好ましい実施形態を説明するために、特定の実施形態を示し説明したが、当業者は、示し説明した特定の実施形態に、本発明の範囲を逸脱することなく、同じ目的を達成するように設計された種々様々な代替および/または等価な実施形態を代用できることを理解されよう。
化学、機械、電気機械、電気およびコンピュータ技術の熟練者は、本発明を種々様々な実施形態で実施できることを容易に理解されよう。
本出願は、本明細書において検討した好ましい実施形態の任意の改造または変形を含むように意図されている。
したがって、本発明は、特許請求の範囲およびその等価物によってのみ限定されるように意図されていることは明確である。
本発明は、CRCを用いたデータの誤り検出に利用可能である。
ネットワーク接続システムのブロック図である。 図2Aは、ネットワーク接続システムにおいてデータ・メッセージを物理的に送信するパケット化メッセージ構成の例の説明図である。 図2Bは、フリット構成の例の説明図である。 本発明によるローリングCRC誤り検出機構の1つの実施形態を示すブロック図である。 本発明によるネットワーク接続システムの1つの実施形態のブロック図である。 本発明による送信ノードの1つの実施形態のブロック図である。 本発明による受信ノードの1つの実施形態のブロック図である。
符号の説明
152,200・・・送信ノード、
154,250・・・受信ノード、
158,202・・・バッファ・モジュール、
160,204・・・エンコーダ、
162,252・・・ステージング・モジュール、
164,254・・・デコーダ、
166,256・・・コンパレータ、
206・・・出力モジュール、
208・・・第1のバッファ・レジスタ、
210・・・第2のバッファ・レジスタ、
212・・・第1のCRCジェネレータ、
214・・・第3のCRCジェネレータ、
216・・・第2のCRCジェネレータ、
258・・・第1のステージング・レジスタ、
260・・・第2のステージング・レジスタ、

Claims (18)

  1. 一連のデータ・ブロックを受け取り、前記一連のデータ・ブロックのうちの少なくとも1つのデータ・ブロックに、前記少なくとも1つのデータ・ブロックと先行データ・ブロックの関数である予想巡回冗長符号(CRC)を提供するように構成されたエンコーダ(160/204)を
    具備する送信ノード(152/200)。
  2. 前記エンコーダが、前記一連のデータ・ブロックのうちの少なくとも1つのデータ・ブロックに、前記少なくとも1つのデータ・ブロックと複数の先行データ・ブロックの関数である予想CRCを提供し、
    前記エンコーダが、前記一連のデータ・ブロックのうち少なくとも1つのデータ・ブロックに、前記少なくとも1つのデータ・ブロックと選択可能な数の先行データ・ブロックの関数である予想CRCを提供し、
    前記エンコーダが、前記一連のデータ・ブロックのうちの少なくとも1つのデータ・ブロックに、先行データ・ブロックの関数でない予想CRCを提供する
    請求項1に記載の送信ノード。
  3. 前記一連のデータ・ブロックを受け取り、
    前記少なくとも1つのデータ・ブロックを提供する第1のバッファ・レジスタ(208)と、
    前記少なくとも1つのデータ・ブロックを受け取り、先行のブロックに提供する第2のバッファ・レジスタ(210)とを含むバッファ・モジュール(158/202)と
    をさらに具備する請求項1に記載の送信ノード。
  4. 前記エンコーダが、さらに、
    前記少なくとも1つのデータ・ブロックを受け取り、前記少なくとも1つのデータ・ブロックに関数を実行して、それにより第1の暫定CRCを提供する第1のCRCジェネレータ(212)と、
    前記先行データ・ブロックを受け取り、前記先行データ・ブロックに関数を実行して、それにより第2の暫定CRCを提供する第2のCRCジェネレータ(216)と、
    前記第1と第2の暫定CRCを受け取り、前記第1と第2の暫定CRCに関数を実行して、それにより前記少なくとも1つのデータ・ブロックの前記予想CRCを提供する第3のCRCジェネレータ(214)と
    を具備する請求項1に記載の送信ノード。
  5. 前記第1のCRCジェネレータによって実行される前記関数が、前記少なくとも1つのデータ・ブロックを第1の多項式で割り、
    前記第2のCRCジェネレータによって実行される前記関数が、前記先行データ・ブロックを前記第1の多項式と異なる第2の多項式で割り、
    前記第1のCRCジェネレータによって実行される前記関数が、前記少なくとも1つのデータ・ブロックを第1の多項式で割り、
    前記第2のCRCジェネレータによって実行される前記関数が、前記先行データ・ブロックを前記第1の多項式で割り、
    前記第3のCRCジェネレータによって実行される前記関数が、前記第1と第2の暫定CRCの排他的論理和演算である
    請求項4に記載の送信ノード。
  6. 前記少なくとも1つのデータ・ブロックと、前記少なくとも1つのデータ・ブロックの前記予想CRCを受け取り、それにより前記少なくとも1つのデータ・ブロックと前記少なくとも1つのデータ・ブロックの前記予想CRCを含むフリット(flit)を提供する出力モジュール(206)
    をさらに具備する請求項1に記載の送信ノード。
  7. 一連のデータ・ブロックと前記一連のデータ・ブロックのうちの少なくとも1つのブロックの予想巡回冗長符号(CRC)とを受け取り、前記少なくとも1つのデータ・ブロックに、前記少なくとも1つのデータ・ブロックと先行データ・ブロックの関数である計算CRCを提供するように構成されたデコーダ(164/254)と、
    前記計算CRCを前記少なくとも1つのデータ・ブロックの予想CRCと比較して、それにより前記少なくとも1つのデータ・ブロックまたは前記先行データ・ブロック内にデータの誤りがあるかどうかの指示を提供するように構成されたコンパレータ(166/256)と
    を具備する受信ノード(154/250)。
  8. 前記デコーダが、前記一連のデータ・ブロックのうちの前記少なくとも1つのブロックに、前記少なくとも1つのブロックと複数の先行データ・ブロックの関数である計算CRCを提供し、
    前記デコーダが、前記一連のデータ・ブロックのうちの前記少なくとも1つのデータ・ブロックに、前記少なくとも1つのデータ・ブロックと選択可能な数の先行ブロックの関数である計算CRCを提供し、
    前記デコーダが、前記一連のデータ・ブロックのうちの少なくとも1つのデータ・ブロックに、前記先行ブロックの関数ではない計算CRCを提供する
    請求項7に記載の受信ノード。
  9. 前記一連のデータ・ブロックと前記少なくとも1つのデータ・ブロックの前記予想CRCを受け取るステージング・モジュール(162/252)と、
    前記少なくとも1つのデータ・ブロックを提供する第1のステージング・レジスタ(258)と、
    前記少なくとも1つのデータ・ブロックを受け取り、前記先行データ・ブロックと前記少なくとも1つのデータ・ブロックの前記予想CRCを提供する第2のステージング・レジスタ(260)と
    をさらに具備する請求項7に記載の受信ノード。
  10. 前記デコーダが、さらに、
    前記少なくとも1つのデータ・ブロックを受け取り、前記少なくとも1つのデータ・ブロックに関数を実行して、それにより第1の暫定CRCを提供する第1のCRCジェネレータ(262)と、
    前記第1の暫定CRCを受け取り提供する第1のCRCレジスタ(268)と、
    前記先行データ・ブロックを受け取り、前記先行ブロックに関数を実行して、それにより第2の暫定CRCを提供する第2のCRCジェネレータ(264)と、
    前記第1と第2の暫定CRCを受け取り、前記第1と第2の暫定CRCに関数を実行して、それにより前記少なくとも1つのデータ・ブロックに前記計算CRCを提供する第3のCRCジェネレータ(266)と
    を具備する請求項7に記載の受信ノード。
  11. 前記第1のCRCジェネレータによって実行される前記関数が、前記少なくとも1つのデータ・ブロックを第1の多項式で割り、
    前記第2のCRCジェネレータによって実行される前記関数が、前記先行データ・ブロックを前記第1の多項式と異なる第2の多項式で割り、
    前記第1のCRCジェネレータによって実行される前記関数が、前記少なくとも1つのデータ・ブロックを第1の多項式で割り、
    前記第2のCRCジェネレータによって実行される前記関数が、前記先行データ・ブロックを前記第1の多項式で割り、
    前記第3のCRCジェネレータによって実行される前記関数が、前記第1と第2の暫定CRCの排他的論理和演算である
    請求項10に記載の受信ノード。
  12. ネットワーク接続(156)と、
    前記ネットワーク接続に結合され、
    一連のデータ・ブロックを受け取り、前記一連のデータ・ブロックのうちの少なくとも1つのデータ・ブロックに、前記少なくとも1つのデータ・ブロックと先行データ・ブロックの関数である予想巡回冗長符号(CRC)を提供するように構成されたエンコーダ(160/204)
    を含む送信ノード(152/200)と、
    前記ネットワーク接続に結合され、
    前記送信ノードから、前記一連のデータ・ブロックと、前記一連のデータ・ブロックのうちの前記少なくとも1つのデータ・ブロックの前記予想CRCとを受け取り、前記少なくとも1つのデータ・ブロックに、前記少なくとも1つのデータ・ブロックと前記先行データ・ブロックの関数である計算CRCを提供するように構成されたデコーダ(164/254)
    を含む受信ノード(154/250)と、
    前記計算CRCを、前記少なくとも1つのデータ・ブロックの前記予想CRCと比較して、それにより前記少なくとも1つのデータ・ブロックまたは前記先行データ・ブロック内にデータの誤りがあるかどうかの指示を提供するように構成されたコンパレータ(166/256)と
    を具備するネットワーク接続システム(150)。
  13. 前記エンコーダが、前記一連のデータ・ブロックのうちの少なくとも1つのデータ・ブロックに、前記少なくとも1つのデータ・ブロックと複数の先行データ・ブロックの関数である予想CRCを提供し、
    前記デコーダが、前記少なくとも1つのデータ・ブロックに、前記少なくとも1つのデータ・ブロックと前記複数の先行ブロックの関数である計算CRCを提供し、
    前記エンコーダが、前記一連のデータ・ブロックのうちの少なくとも1つのデータ・ブロックに、前記少なくとも1つのデータ・ブロックと選択可能な数の先行データ・ブロックの関数である予想CRCを提供し、
    前記デコーダが、前記少なくとも1つのデータ・ブロックに、前記少なくとも1つのデータ・ブロックと前記選択可能な数の先行データ・ブロックの関数である計算CRCを提供し、
    前記エンコーダが、前記一連のデータ・ブロックのうちの少なくとも1つのデータ・ブロックに、先行データ・ブロックの関数ではない予想CRCを提供し、
    前記デコーダが、前記少なくとも1つのデータ・ブロックに、先行データ・ブロックの関数ではない計算CRCを提供する
    請求項12に記載のネットワーク接続システム。
  14. データを通信する方法であって、
    一連のデータ・ブロックのうちの少なくとも1つのデータ・ブロックの巡回冗長符号(CRC)を生成する段階
    を有し、
    前記CRCが、前記少なくとも1つのデータ・ブロックと先行データ・ブロックの関数である
    方法。
  15. 前記CRCを生成する前記段階が、
    前記CRCを、前記送信ノード(152/200)において前記少なくとも1つのブロックの予想CRCとして生成する段階
    をさらに有する
    請求項14に記載の方法。
  16. 前記送信ノードにおいて前記少なくとも1つのデータ・ブロックと前記少なくとも1つのデータ・ブロックの予想CRCを結合して、それにより前記少なくとも1つのデータ・ブロックと前記少なくとも1つのデータ・ブロックの前記予想CRCを含むフリットを提供する段階と、
    受信ノード(154/250)において前記フリットを受け取る段階と、
    前記受信ノードにおいて前記少なくとも1つのデータ・ブロックの計算CRCを生成する段階であって、前記計算CRCが、前記少なくとも1つのデータ・ブロックと前記先行データ・ブロックの関数である段階と、
    前記受信ノードにおいて、前記少なくとも1つのデータ・ブロックに関して前記計算CRCを前記予想CRCと比較し、それにより前記少なくとも1つのデータ・ブロックまたは前記先行データ・ブロック内にデータの誤りがあるかどうかの指示を提供する段階と
    を有する請求項15に記載の方法。
  17. 前記CRCを生成する前記段階が、
    前記受信ノード(154/250)において、前記CRCを、前記少なくとも1つのデータ・ブロックの計算CRCとして生成する段階と、
    前記受信ノードにおいて、前記一連のデータ・ブロックと前記少なくとも1つのデータ・ブロックの予想CRCとを受け取る段階と、
    前記受信ノードにおいて、前記計算CRCを、前記少なくとも1つのデータ・ブロックの前記予想CRCと比較して、それにより前記少なくとも1つのデータ・ブロックまたは前記先行データ・ブロック内にデータの誤りがあるかどうかの指示を提供する段階と
    を有する請求項14に記載のデータ・ブロック。
  18. 前記CRCが、前記少なくとも1つのデータ・ブロックと複数の先行データ・ブロックの関数であり、
    前記CRCが、前記少なくとも1つのデータ・ブロックと選択可能な数の先行データ・ブロックの関数であり、前記一連のデータ・ブロックのうちの少なくとも1つのデータ・ブロックの第2のCRCを生成し、
    前記第2のCRCが、先行データ・ブロックの関数ではない
    請求項14に記載の方法。
JP2003384653A 2002-11-19 2003-11-14 誤り検出を改善するローリングcrc機構 Pending JP2004173271A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/300,443 US20040098655A1 (en) 2002-11-19 2002-11-19 Rolling CRC scheme for improved error detection

Publications (1)

Publication Number Publication Date
JP2004173271A true JP2004173271A (ja) 2004-06-17

Family

ID=32297918

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003384653A Pending JP2004173271A (ja) 2002-11-19 2003-11-14 誤り検出を改善するローリングcrc機構

Country Status (2)

Country Link
US (1) US20040098655A1 (ja)
JP (1) JP2004173271A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009141860A1 (ja) * 2008-05-19 2009-11-26 富士通株式会社 検証装置、検証方法および検証プログラム
JP2009296599A (ja) * 2008-06-09 2009-12-17 Sony Corp 電子情報を効率的に転送するシステム及び方法

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7702988B2 (en) * 2005-10-24 2010-04-20 Platform Computing Corporation Systems and methods for message encoding and decoding
US7751486B2 (en) * 2006-05-19 2010-07-06 Platform Computing Corporation Systems and methods for transmitting data
US7721160B2 (en) * 2006-09-11 2010-05-18 Advanced Micro Devices, Inc. System for protecting data during high-speed bidirectional communication between a master device and a slave device
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
JP5232420B2 (ja) * 2007-08-17 2013-07-10 株式会社エヌ・ティ・ティ・ドコモ データ送信方法、データ受信方法、移動端末及び無線通信システム
US8464125B2 (en) 2009-12-10 2013-06-11 Intel Corporation Instruction-set architecture for programmable cyclic redundancy check (CRC) computations
TWI518500B (zh) * 2010-07-27 2016-01-21 聯詠科技股份有限公司 資料傳輸檢測裝置、資料傳輸檢測方法及其電子裝置
US9479196B2 (en) * 2012-10-22 2016-10-25 Intel Corporation High performance interconnect link layer
US20150046775A1 (en) * 2013-08-07 2015-02-12 Broadcom Corporation Encoding and Decoding Schemes to Achieve Standard Compliant Mean Time to False Packet Acceptance
CN104639294A (zh) * 2015-02-10 2015-05-20 浪潮电子信息产业股份有限公司 一种改进的crc校验实现方法
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
US10268617B2 (en) * 2016-10-03 2019-04-23 International Business Machines Corporation Frame format for a serial interface
US10284335B2 (en) * 2017-02-22 2019-05-07 International Business Machines Corporation Error detection for wormhole routing
CN108233944A (zh) * 2017-12-29 2018-06-29 北京自动测试技术研究所 一种循环冗余校验方法、设备及存储介质
EP3550748B1 (de) * 2018-04-05 2021-08-11 Siemens Aktiengesellschaft Verfahren zur erkennung von datenverfälschungen bei einer datenübertragung über eine fehlersichere kommunikationsverbindung
US20210119730A1 (en) * 2020-09-18 2021-04-22 Intel Corporation Forward error correction and cyclic redundancy check mechanisms for latency-critical coherency and memory interconnects
US11855655B2 (en) * 2021-09-28 2023-12-26 Texas Instruments Incorporated Serial communications module with CRC
US11949510B2 (en) * 2022-09-06 2024-04-02 Qualcomm Incorporated Hardware-based dynamic cyclic-redundancy check (CRC) generator for automotive application

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63197124A (ja) * 1987-01-29 1988-08-16 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン 誤り検査システム
JPH04211547A (ja) * 1990-03-20 1992-08-03 Fujitsu Ltd 同期回路
JPH05122197A (ja) * 1991-10-29 1993-05-18 Nippon Hoso Kyokai <Nhk> データ伝送装置
JPH1070522A (ja) * 1996-08-27 1998-03-10 Tokyo Electron Ind Co Ltd データ受信装置
JP2002261624A (ja) * 2001-03-05 2002-09-13 Nec Corp 巡回冗長検査演算方法及び巡回冗長検査演算回路

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE1769699A1 (de) * 1968-06-29 1971-11-04 Basf Ag Verfahren zur Herstellung gebundener Faservliese nach dem Nassverfahren
US5394410A (en) * 1992-10-30 1995-02-28 International Business Machines Corporation Differentially coded and guard pulse position modulation for communication networks
US5517508A (en) * 1994-01-26 1996-05-14 Sony Corporation Method and apparatus for detection and error correction of packetized digital data
US5754564A (en) * 1994-08-24 1998-05-19 Harris Corporation Method of continuous calculation of cyclic redundancy check
JP3312363B2 (ja) * 1996-12-27 2002-08-05 株式会社エヌ・ティ・ティ・ドコモ 符号化装置および復号化装置および符号化復号化システム並びに方法
JP2000004169A (ja) * 1998-06-15 2000-01-07 Ricoh Co Ltd Crc演算方法及びcrc演算回路
US6327691B1 (en) * 1999-02-12 2001-12-04 Sony Corporation System and method for computing and encoding error detection sequences
US6446235B1 (en) * 1999-08-31 2002-09-03 Intel Corporation Cumulative error detecting code
US6732317B1 (en) * 2000-10-23 2004-05-04 Sun Microsystems, Inc. Apparatus and method for applying multiple CRC generators to CRC calculation

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63197124A (ja) * 1987-01-29 1988-08-16 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン 誤り検査システム
JPH04211547A (ja) * 1990-03-20 1992-08-03 Fujitsu Ltd 同期回路
JPH05122197A (ja) * 1991-10-29 1993-05-18 Nippon Hoso Kyokai <Nhk> データ伝送装置
JPH1070522A (ja) * 1996-08-27 1998-03-10 Tokyo Electron Ind Co Ltd データ受信装置
JP2002261624A (ja) * 2001-03-05 2002-09-13 Nec Corp 巡回冗長検査演算方法及び巡回冗長検査演算回路

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009141860A1 (ja) * 2008-05-19 2009-11-26 富士通株式会社 検証装置、検証方法および検証プログラム
JP5126358B2 (ja) * 2008-05-19 2013-01-23 富士通株式会社 検証装置、検証方法および検証プログラム
US8458551B2 (en) 2008-05-19 2013-06-04 Fujitsu Limited Verification device, verification method, and verification program
JP2009296599A (ja) * 2008-06-09 2009-12-17 Sony Corp 電子情報を効率的に転送するシステム及び方法
JP2014030228A (ja) * 2008-06-09 2014-02-13 Sony Corp 電子情報を効率的に転送するシステム及び方法

Also Published As

Publication number Publication date
US20040098655A1 (en) 2004-05-20

Similar Documents

Publication Publication Date Title
JP2004173271A (ja) 誤り検出を改善するローリングcrc機構
US7047475B2 (en) CRC encoding scheme for conveying status information
US6421803B1 (en) System and method for implementing hybrid automatic repeat request using parity check combining
US8571021B2 (en) Packet based data transmission with reduced data size
US7653864B2 (en) Method and apparatus to perform error control
US8527852B2 (en) Chained checksum error correction mechanism to improve TCP performance over network with wireless links
JP2005323372A (ja) フレーム集約と共に使用されるmacヘッダ圧縮
JP2004180295A (ja) 通信デバイスのモジュール間で伝送された喪失メッセージを検出するためのシステムおよび方法
JP5069399B2 (ja) 入力データパケットを転送および回復する方法および装置
US10256944B1 (en) Controlling false packet acceptance
US20020027911A1 (en) Method and apparatus for protecting against packet losses in packet-oriented data transmission
US20090210770A1 (en) Method, system and computer program product for end to end error checking in ethernet
US20030051204A1 (en) Interconnect system with error correction
KR20050086541A (ko) 향상된 통신 프로토콜을 사용하는 통신 방법, 통신 시스템및 단말기
JP6299768B2 (ja) 情報処理システム、情報処理装置、及びデータ通信方法
JP3439722B2 (ja) 特殊データ・パケットにタグ付けする方法及び特殊データ・パケット検出方法
RU2216868C2 (ru) Система и способ осуществления гибридного автоматического запроса на повторение с использованием объединения проверки четности
US7940860B2 (en) Communication system
US11996936B2 (en) Bit error correction for Bluetooth low energy
US11652571B1 (en) Incremental cyclic redundancy (CRC) process
CN111937329B (zh) 传输数据的方法和转发设备
Tanenbraum The data link layer
Jianhua et al. Performance evaluation of a reliable broadcast scheme for satellite communications

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061106

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090813

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090818

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20091117

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20091120

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100210

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100521

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20101102