JP6382569B2 - 通信システム内での誤り検出の方法および装置 - Google Patents

通信システム内での誤り検出の方法および装置 Download PDF

Info

Publication number
JP6382569B2
JP6382569B2 JP2014098463A JP2014098463A JP6382569B2 JP 6382569 B2 JP6382569 B2 JP 6382569B2 JP 2014098463 A JP2014098463 A JP 2014098463A JP 2014098463 A JP2014098463 A JP 2014098463A JP 6382569 B2 JP6382569 B2 JP 6382569B2
Authority
JP
Japan
Prior art keywords
sequence
segment
data packet
polynomial
remainder
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
JP2014098463A
Other languages
English (en)
Other versions
JP2014180025A (ja
Inventor
リンド ヴァン ウィンガーデン,アドリアーン,ジェイ. ドゥ
リンド ヴァン ウィンガーデン,アドリアーン,ジェイ. ドゥ
ゾットマン,アンドレアス,ベルンハルト
Original Assignee
アルカテル−ルーセント
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 アルカテル−ルーセント filed Critical アルカテル−ルーセント
Publication of JP2014180025A publication Critical patent/JP2014180025A/ja
Application granted granted Critical
Publication of JP6382569B2 publication Critical patent/JP6382569B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • 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/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/611Specific encoding aspects, e.g. encoding by means of decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6522Intended application, e.g. transmission or communication standard
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6522Intended application, e.g. transmission or communication standard
    • H03M13/6527IEEE 802.11 [WLAN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0076Distributed coding, e.g. network coding, involving channel coding
    • 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/0084Formats for payload data

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Error Detection And Correction (AREA)

Description

本発明は、パケットベースの通信システムでの送信関連誤りの検出に関する。
このセクションは、読者が本発明のさまざまな態様のよりよい理解を得るのを助ける可能性があるさまざまな態様を紹介するものであり、このセクションを、従来技術であるものまたは従来技術ではないものに関する言明を含むと理解してはならない。
通信システムの1つの目標は、所期の受信側によって受信されるメッセージが、送信されたメッセージの変更されないコピーであることを保証することである。そのために、通信システムは、しばしば、受信されたメッセージが伝送中に変更されたどうかを受信側が判定することを可能にする誤り検出技法を使用する。チャネルによって誘導されるメッセージ誤りを検出する1つの技法が、巡回冗長検査(CRC)符号に基づくものである。CRC符号は、通常、ディジタル検査シンボルのシーケンスを作るために、たとえばデータ・メッセージを表すディジタル・データシンボルのシーケンスを変換する。ディジタル検査シンボルのシーケンスは、ディジタル・データシンボルのシーケンスと共に送信され、受信側は、ディジタル検査シンボルのシーケンスを使用して、ディジタル・データシンボルの受信されたシーケンスが最初に送信されたものと同一のシーケンスであるかどうかを評価する。
いくつかのシステムは、そのようなディジタル検査シンボルのシーケンスを生成し、フィードバック・シフト・レジスタを使用することによってディジタル検査シンボルの送信されたシーケンスから伝送誤りを検出する。たとえば、2進CRC符号を、排他的論理和(XOR)論理を介するフィードバックによって制御されるシフト・レジスタを用いて実施することができる。シフト・レジスタのメモリ要素の内容は、通常、固定された生成多項式によるディジタル・データシンボルのシーケンスの除算によって作られる剰余シーケンスに対応する。剰余シーケンスは、通常、データ・パケットの受信側への送信のためにディジタル・データシンボルのシーケンスの末尾に付加される。そのようなシステムでは、剰余シーケンスは、通常、データ・パケットの送信の前にビットごとの基礎で直列に計算される。
一実施形態は、ばらばらのオリジナル・セグメントの第1シーケンス内に配置されたデータ・パケットを処理する第1の方法である。第1シーケンスの各オリジナル・セグメントは、同一の長さを有する。第1の方法は、その中の1つまたは複数のシンボルを変更することによって第1シーケンスのオリジナル・セグメントのうちの最初のセグメントを変更することを含む。データ・パケットの始めは、オリジナル・セグメントのうちの最初のセグメント内に配置され、その中の最初のディジタル・データシンボルの後に位置決めされる。第1の方法は、その中の1つまたは複数のディジタル・データシンボルを変更することによって第1シーケンスのオリジナル・セグメントのうちの最後のセグメントを変更することをも含む。データ・パケットの終りは、オリジナル・セグメントのうちの最後のセグメント内に配置され、その中の最後のディジタル・データシンボルの前に配置される。第1の方法は、第1シーケンスから導出されたばらばらのセグメントの第2シーケンスに対して多項式除算を効果的に実行することによって剰余シーケンスを判定することをも含む。第2シーケンスの各セグメントは、第1シーケンスのオリジナル・セグメントのうちの1つに対応し、これから導出される。第2シーケンスのセグメントは、第1シーケンスのオリジナル・セグメントの長さを有する。第2シーケンスの導出されたセグメントのうちの最初のセグメントは、オリジナル・セグメントのうちの変更された最初のセグメントである。第2シーケンスの導出されたセグメントのうちの最後のセグメントは、オリジナル・セグメントのうちの変更された最後のセグメントである。
第1の方法のいくつかの実施形態では、データ・パケットの始めまたは終りを含まない各導出されたセグメントは、オリジナル・セグメントの対応する1つと等しいものとすることができる。
第1の方法の任意の実施形態では、変更するステップは、オリジナル・セグメントのうちでデータ・パケットの外の部分が多項式除算によって判定される剰余に所定の量だけ寄与するように、前記部分をマスクすることを含むことができる。
第1の方法の任意の実施形態では、オリジナル・セグメントのうちの最初のセグメントの変更は、データ・パケットの始めのシンボルを変更することを含むことができる。いくつかのそのような実施形態では、変更するステップは、オリジナル・セグメントのうちでデータ・パケットの外のマスクされた部分が多項式除算によって判定される剰余に所定の量だけ寄与するように、前記部分をマスクすることを含むことができる。
第1の方法の任意の実施形態では、オリジナル・セグメントのうちの最後のセグメントの変更は、データ・パケットの終りのシンボルを変更することができる。いくつかのそのような実施形態では、変更するステップは、データ・パケットの巡回冗長検査が零になる時にオリジナル・セグメントのうちでデータ・パケットの外のマスクされた部分が多項式除算によって判定される剰余に寄与しなくなるように、前記部分をマスクすることを含むことができる。
第1の方法の任意の実施形態では、第1の方法は、さらに、第3シーケンス内に配置されるデータ・パケットが多項式除算に基づく誤り制御符号の有効な符号語になるように、第1シーケンスからのシンボルのシーケンスのシンボルごとの減算を実行することによって第3シーケンスを作ることをさらに含むことができる。上記方法のいくつかのそのような実施形態では、シンボルのシーケンスを、第2シーケンスに対して多項式除算を実行することによって判定される剰余から見つけることができる。
第1の方法の任意の実施形態では、第1の方法は、データ・パケットの終りが第1シーケンスのセグメントのうちの特定の1つ内にあることに応答して、第1シーケンスのセグメントのうちの特定の1つにデータ・パケットの巡回冗長検査の評価された値を書き込むことをさらに含むことができる。いくつかのそのような実施形態では、変更は、第1シーケンスのセグメントの特定の1つ内のパケットの終りの位置を示す数を受け取ることをさらに含むことができる。書き込むことは、受け取られた数に基づいて評価された値を書き込むべき位置を判定することをさらに含むことができる。
第2の方法の一実施形態は、等しい長さのばらばらのデータ・セグメントのシーケンスを処理することを含む。シーケンスは、特定のデータ・パケットを含む。第2の方法は、データ・セグメントのうちの1つの一部をマスクすることを含む。特定のデータ・パケットの一部は、データ・セグメントのうちの1つの中にあり、マスクされる部分の外にある。第2の方法は、特定のデータ・パケットの始めおよび/または終りを変更することと、マスクされたセグメントおよび変更された特定のデータ・パケットに基づいて特定のデータ・パケットの巡回冗長検査を計算することとを含む。
第2の方法のいくつかの実施形態では、第2の方法は、計算された巡回冗長検査を0と比較することを含むことができる。
第2の方法の実施形態のいずれにおいても、巡回冗長検査の計算は、データ・パケットと共に送信された別の巡回冗長検査に少なくとも部分的に基づいて検査シーケンス値を計算することを含むことができる。
第2の方法の実施形態のいずれにおいても、第2の方法は、データ・セグメントのうちの特定の1つ内のパケットの終りを識別することを含むことができる。
第2の方法の実施形態のいずれにおいても、第2の方法は、データ・パケットの始めの1つまたは複数のシンボルを逆数にすることを含むことができる。
第2の方法の実施形態のいずれにおいても、第2の方法は、データ・パケットの終りの1つまたは複数のシンボルを逆数にすることを含むことができる。
もう1つの実施形態は、ばらばらのオリジナル・セグメントの第1シーケンス内に配置されたデータ・パケットを処理するシステムである。第1シーケンスの各オリジナル・セグメントは、同一の長さを有する。このシステムは、第1シーケンスのオリジナル・セグメントのうちの最初のセグメント内の1つまたは複数のシンボルを変更するように構成されたマスキング・ユニットを含み、データ・パケットの始めは、オリジナル・セグメントのうちの最初のセグメント内に配置され、その中の最初のシンボルの後にある。マスキング・ユニットは、第1シーケンスのオリジナル・セグメントのうちの最後のセグメント内の1つまたは複数のシンボルを変更するように構成され、データ・パケットの終りは、オリジナル・セグメントのうちの最後のセグメント内に配置され、その中の最後のシンボルの前にある。このシステムは、ばらばらの連続するセグメントの第2シーケンスに対して多項式除算を実行することによって剰余を判定するように構成された巡回冗長検査計算ユニットを含む。第2シーケンスの各セグメントは、オリジナル・セグメントのうちの1つに対応し、オリジナル・セグメントのうちの1つから導出される。第2シーケンスのセグメントは、オリジナル・セグメントの長さを有する。第2シーケンスの導出されたセグメントのうちの最初のセグメントは、オリジナル・セグメントのうちの変更された最初のセグメントである。第2シーケンスの導出されたセグメントのうちの最後のセグメントは、オリジナル・セグメントのうちの変更された最後のセグメントである。
このシステムのいくつかの実施形態では、マスキング・ユニットは、データ・パケットの巡回冗長検査が零になる時にオリジナル・セグメントのうちでデータ・パケットの外の部分が多項式除算によって判定される剰余に寄与しなくなるように、前記部分をマスクするように構成され得る。
このシステムの上記の実施形態のいずれにおいても、マスキング・ユニットは、データ・パケットの始めのシンボルを変更することによってオリジナル・セグメントのうちの最初のセグメントを変更し、データ・パケットの終りのシンボルを変更することによってオリジナル・セグメントのうちの最後のセグメントを変更するように構成され得る。
さまざまな実施形態の利益は、次の詳細な説明を読み、図面を参照する時に明白になるものとすることができる。
誤り、たとえば物理通信チャネルを介してディジタル・データ・パケットを送信することによって作られる誤りの検出のためにCRC符号を使用するディジタル・データ通信システムを概略的に示す図である。 たとえば図1Aに示されたデータ通信システム内で、CRC符号語の最終シーケンスを作るためにディジタル・データシンボルのシーケンスを処理する方法を概略的に示す図である。 シーケンスの送信が誤りを引き起こしたかどうかを判定するためにたとえば図1Bに示されたディジタル・データシンボルのシーケンスを復号する方法、たとえば図1Aに示された受信器内で使用される方法を示す流れ図である。 CRC検査シーケンスを付加された、たとえば図1Bに示されたディジタル・データシンボルのシーケンス内のメッセージ部分を符号化する方法、たとえば図1Aに示された送信器内で使用される方法を示す流れ図である。 たとえば図1Bおよび3の方法を使用して、符号器が送信される各データ・パケットにCRC検査シーケンスを付加する、たとえば図1Aに示された送信器のための、符号器の一実施形態を示すブロック図である。 たとえば図1Bおよび2の方法を使用して、復号器が受信されたデータ・パケットが誤りを有するかどうかをCRC検査シーケンスに基づいて評価する、たとえば図1Aの受信器のための、復号器の一実施形態を示すブロック図である。 たとえば図4Aに示された符号器内および/または図4Bに示された復号器内の、図1B、2、および3の方法の一特定の実施形態による例のデータ・パケットの処理を示す図である。 たとえば図4A〜4Bに示された符号器および復号器のいくつかの特定の実施形態で使用できる、組み合わされたマスキング・ユニットおよび部分剰余付加ユニットの一実施形態を示すブロック図である。 図6に示された組み合わされたマスキング・ユニットおよび部分剰余付加ユニットの動作を示す状態図である。 図4Aに示された符号器のいくつかの実施形態で使用できる逆方向計算ユニットの特定の実施形態を示すブロック図である。
さまざまな実施形態は、ディジタル・データ・パケットベースの通信システムで伝送誤りを検出するシステム内で使用される装置、システム、および方法に関する。
図1Aに、ディジタル・データ・パケット内で情報を送信する通信システム10の一例を示す。通信システム10は、送信器12、受信器14、および送信器12を受信器14に接続する物理通信チャネル16を含む。送信器12は、入力データ・プロセッサ18および符号器400Aを含む。データ・プロセッサ18は、送信のためのデータを受け取り、それからデータ・ディジタル・パケットのストリームを作る。各ディジタル・データ・パケットは、たとえば、ヘッダ、メッセージ部分、および予約済み部分を有することができる。符号器400Aは、物理通信チャネル16への送信の前に、データ・パケットのうちの1つまたは複数の予約済み部分にCRC検査シーケンスを挿入する。受信器14は、復号器400Bおよび出力データ・プロセッサ20を含む。復号器400Bは、伝送誤りについて、受信されたデータ・パケットを、すなわちその中のCRC検査シーケンスに基づいて検査し、誤りを有することがわかったデータ・パケットを出力データ・プロセッサ20に示す。出力データ・プロセッサ20は、復号器400Bによって誤りがないことが見出されたデータ・パケットのメッセージ部分からデータを抽出することができる。受信器14を、復号器400Bによって伝送誤りを有することが見つけられたデータ・パケットを再送信するように送信器12にシグナリングするように構成することができる。物理通信チャネル16は、送信器12と受信器14との間のデータ通信をサポートする。物理通信チャネル16は、1つまたは複数の従来の光ファイバ伝送回線、無線伝送媒体、および/または有線伝送媒体、あるいはその組合せを含むことができる。通信システム10を、たとえばCRC検査シーケンスベースの方法に加えて、データ・パケットならびに/あるいは誤り検出および/または誤り訂正の他の方法のためのオーバーヘッドの追加のパッケージングを提供するように構成することができる。
図1Bに、データ伝送誤りを検出するのに2進CRC符号を使用する通信システム内でディジタル・データシンボルのストリームを処理する方法を概略的に示し、たとえば、この方法のステップを、図1Aの送信器12および/または受信器14内で実行することができる。
この方法は、合計(a+k+m+b)個のディジタル・データシンボルを含む第1シーケンス32に作用することを含む。第1シーケンス32は、等しい長さの連続するセグメントから形成される。第1シーケンス32は、関心を持たれているデータ・パケットのメッセージ部分および予約済み部分を形成する長さ(k+m)のシーケンス34を含む。メッセージ部分は、多項式U(t)によって忠実に表され、予約済み部分は、多項式F(t)によって忠実に表される。第1シーケンス内では、メッセージ部分に、「a」個のデータシンボルのシーケンスが先行し、予約済み部分に、「b」個のデータシンボルのシーケンスが続く。
この方法は、多項式V(t)によって忠実に表される第2シーケンス36を作るために第1シーケンス32をマスクすることを含む。第1実施形態では、マスキングは、第1シーケンス32のうちでデータ・パケットのメッセージ部分または予約済み部分内に配置されていないビットに0をセットすることによって第2シーケンス36を作る。代替の第2実施形態では、マスキングは、第1実施形態のマスキング・ステップを実行することと、第1シーケンス32内のメッセージ部分の最初の「m」個のビットおよび予約済み部分の「m」個のビットの1の補数を形成することとによって、第2シーケンス36を作る。図1Bでは、この2つの実施形態が、データ・パケットの適切なビット位置の下に「+I(t)」の挿入を示すことによって、すなわち、第2実施形態の余分なマスキング動作を示すために、概略的に示されている。
この方法は、CRC生成多項式G(t)に対応するシーケンスによるマスキングされた第2シーケンス36の除算から剰余シーケンスの値を計算することを含む。剰余は、多項式R(b) (t)によって忠実に表されるシーケンスである。受信器では、剰余シーケンスの計算された値が、受信されたデータ・パケット内のいくつかのタイプのデータ伝送誤りの不在または存在を示す。
符号化の実施形態では、この方法は、送信器から受信器に送信される第3シーケンス38を作ることを含む。第3シーケンス38は、データ・パケットの予約済み部分40を、CRC検査シーケンス(上で説明した第1実施形態の)またはそのようなCRC検査シーケンス(上で説明した第1実施形態の)の1の補数によって置換することによって形成される。本明細書では、CRC検査シーケンスまたはその1の補数は、多項式「F(t)+D(t)」によって表され、ここで、多項式F(t)は、第1シーケンス32内の予約済み部分内のオリジナル・シーケンスを忠実に表し、D(t)は、34に符号語にならせる調整シーケンスを表す。下では、図1Bに示されたステップおよびその中の表記を、より詳細に説明する。
本明細書では、データ・パケットは、ばらばらのメッセージ部分および予約済み部分を含み、前記部分の両方が、有限記号アルファベットA内のディジタルシンボルの有限シーケンスによって形成される。アルファベットAを、有限ガロア体、たとえば、mod 2整数または固定された事前に選択された長さの1および0のストリングとすることができる。メッセージ部分は、k個のディジタルシンボルのストリームuk−1k−2…uであり、このストリームは、次の形のk次多項式U(t)として忠実に表される。
U(t)=uk−1k−1+uk−2k−2+…+ut+u
多項式U(t)では、「t」のべきが、第1ストリーム内の対応するディジタルシンボルの時間的位置を決定する。予約済み部分を、たとえば、メッセージ部分の直後に配置することができる。符号化の前に、予約済み部分は、m個のディジタルシンボルのストリームfm−1m−2…fを保持し、このストリームは、次の形のm次多項式F(t)によって忠実に表される。
F(t)=fk−1m−1+fm−2m−2+…+ft+f
符号化は、データ・パケットの予約済み部分を、固定長「m」のCRC検査シーケンス部分またはその1の補数で書き直す。CRC検査シーケンスは、形cm−1m−2…c∈Aを有し、これは、次の形のCRC検査シーケンス多項式によって忠実に表される。
C(t)=cm−1m−1+cm−2m−2+…+ct+c
たとえば図1Bに関して説明した第1実施形態では、対応するメッセージ部分およびCRC検査シーケンス部分は、シンボル長n=k+mの符号語を形成し、これは、多項式X(t)によって忠実に表され、X(t)は、次を満足する。
X(t)=U(t)・t+C(t)
多項式X(t)では、高次の「t」項が、ディジタル・データ・パケット自体のメッセージ部分のディジタル・データシンボルに対応し、低次の「t」項が、ディジタル・データ・パケットのCRC検査シーケンス部分のディジタルシンボルに対応する。
本明細書では、符号語は、「t」内の事前に選択され固定されたCRC生成多項式で正確に割り切れる「t」内の多項式を指す、すなわち、この多項式は、非ゼロ剰余を伴わずに割り切れる。事前に選択され固定されたCRC生成多項式G(t)を、
G(t)=g+gm−1m−1+gm−2m−2+…+gt+g
と書くことができ、ここで、gm−1m−2…g∈A、g≠0、かつg≠0である。たとえば、有用なCRC生成多項式G(t)は、特殊なCRC生成多項式
G(t)=t32+t26+t23+t22+t16+t12+t11+t10+t+t+t+t+t+t+1 (1)
でる。式(1)のこの特殊なCRC生成多項式は、CRC−32多項式としても知られ、複数の標準規格、たとえばIEEE 802.3イーサネット(登録商標)標準規格によって指定される。本明細書で説明される方法および装置のさまざまな実施形態を、CRC生成多項式としてCRC−32多項式または別の多項式を使用するように構成することができる。
そのような第1実施形態では、CRC検査シーケンス多項式C(t)は、U(t)・t+C(t)がCRC生成多項式G(t)で割り切れるように、すなわち、U(t)・t+C(t)が符号語になるように選択される。具体的には、CRC生成多項式G(t)によるU(t)・tの除算の剰余R(t)は、
Figure 0006382569
によって定義される。ここで、剰余多項式R(t)は、ディジタルシンボルシーケンスrm−1m−2…rに対応する。したがって、CRC検査シーケンス多項式は、C(t)=−R(t)を満足することができ、ここで、すべての係数のマイナスは、代数Aでの係数の反数である。2進CRC符号では、2進CRC符号の代数Aが2を法とする整数であり、2を法とする整数について1+1=0なので、−R(t)=R(t)である。したがって、CRC検査シーケンス多項式は、この代数についてR(t)である。
CRC符号のそのような実施態様を使用するデータ通信システムでは、送信器、たとえば図1Aに示された送信器は、ディジタル・データシンボルのストリームを送信する。このストリーム内では、各送信されるディジタル・データ・パケットが、メッセージ部分およびCRC検査シーケンス部分を含み、この2つの部分は、一緒に符号語X(t)に対応する。各ディジタル・データ・パケットは、別々のパケット・ヘッダおよび/またはパケット・コンテナを含むこともでき、このパケット・ヘッダおよび/またはパケット・コンテナは、データ・パケットのメッセージ部分およびCRC検査シーケンス部分の一部ではない。符号語X(t)に対応するデータ・パケットの送信に応答して、受信器は、多項式Y(t)に対応するディジタル・データシンボルのシーケンスを受信し、ここで、Y(t)=X(t)+E(t)である。ここで、E(t)は、受信されたデータ・パケット内の誤りの位置および値を忠実に表す多項式である。伝送誤りが発生したかどうかを判定するために、受信器、たとえば図1Aに示された受信器14は、CRC生成多項式G(t)によるY(t)の多項式除算の剰余を評価する。伝送誤りがないと、CRC生成多項式G(t)によって除算されたY(t)の剰余は、ゼロ係数を有する多項式である、すなわち、Y(t)は符号語である。1つまたは複数の伝送誤りが存在すると、この除算の剰余は、非ゼロである可能性が高い、すなわち、誤りは、E(t)自体が符号語でない限り、検出可能である。たとえば、m次の特殊な生成多項式について、m未満の次数の多項式の循環シフトであるすべての誤りシーケンスは、符号語ではない多項式E(t)を作る。したがって、受信されたデータ・パケット内で、そのような誤りは、対応する多項式Y(t)が符号語であるかどうかの判定を介して検出可能である。
第2実施形態、たとえば図1Bに関して説明した第2実施形態では、符号化は、すべて1のシーケンスを用いて、剰余R(t)を保持する「m」個のメモリ要素を初期化することと、CRC生成多項式G(t)による多項式U(t)・t+I(t)・tの多項式除算の剰余R(t)を効果的に評価することとを含み、ここで、I(t)=tm−1+tm−2+…+t+1である。したがって、多項式R(t)は、
Figure 0006382569
を満足する。これらの第2実施形態では、データ・パケットのメッセージ部分および予約済み部分の第3シーケンスの送信される部分は、X(t)=U(t)・t+C(t)を満足する符号語X(t)によって忠実に表され、ここで、C(t)=R(t)+I(t)=F(t)+D(t)である。本明細書では、CRCコーディングのこれらの第2実施形態について、データ・パケットは、CRC生成多項式G(t)による多項式の除算が「m」次のすべて1の多項式を作る場合に符号語であり、ここで、データ・パケットの予約済み部分は、長さ「m」を有する。したがって、受信器は、すべて1のシーケンスを用いて、特にCRC検査シーケンス用のメモリ要素を初期化し、その後、CRC生成多項式G(t)によるY(t)に対応する受信されたシーケンスすなわちX(t)+E(t)の多項式除算の剰余がすべて0のシーケンスを作るかどうかを判定して、データ・パケットが伝送誤りを有するかどうかを判断することができる。IEEE 802.3標準規格の媒体アクセス制御(MAC)層は、式(1)の標準CRC−32生成多項式G(t)と共にこの代替手順を使用する。
図2および3に、0および1に対するモジュロ加算(modulo addition)によって定義される2進代数上での巡回冗長符号(CRC)に基づくデータ・パケットを処理する方法200、300を示す。符号化方法300は、データ・パケットのメッセージ部分についてCRC検査シーケンスを評価することによって送信のために各データ・パケットを準備することと、たとえば図1Aに示された符号器400A内で、メッセージ部分にCRC検査シーケンスまたはその1の補数を付加することとを含む。付加するステップは、CRC符号語に対応するシーケンスを形成する。復号方法200は、たとえば図1Aに示された復号器400B内で、データ・パケットがCRC符号語に対応するかどうかを判定することによって、受信されたデータ・パケットがCRC検出可能伝送誤りを有するかどうかを判定することを含む。「符号語」の定義は、図1Bの第1実施形態および第2実施形態に関して既に説明した。
ステップ210および310では、方法200、300は、セグメントごとの形で、その中にディジタル・データ・パケットを有する第1シーケンスのセグメントを受け取ることを含み、たとえば、受け取ることは、図1Aに示された符号器400Aまたは復号器400B内で実行することができる。第1シーケンスは、「q」個のセグメントのシーケンスであり、各セグメントは、同一の長さ「s」を有する。
各第1シーケンスは、すなわち図2〜3のこれらの方法200、300では、そのビットのシーケンスが多項式U(t)に対応するデータ・パケットのメッセージ部分と、その「m」個のビットのシーケンスが多項式F(t)に対応するデータ・パケットの予約済み部分とを含む。予約済み部分は、データ・パケットのメッセージ部分に直接に続くことができる。メッセージ部分および予約済み部分は、通常、データ・パケットのメッセージ部分内、たとえばパケット・ヘッダの後に配置される。第1シーケンス内では、「a」個のビットが、U(t)t+F(t)に対応するシーケンスに先行し、「b」個のビットが、U(t)t+F(t)に対応するシーケンスに続く。したがって、q・s=n+a+bであり、「q」は、第1シーケンス内のセグメントの個数であり、「s」は、セグメント内のビットの場合の数であり、「n」は、U(t)t+F(t)に対応するシーケンス内のビットの個数である。
ここで、整数「a」、「b」、および「n」の値は、第1シーケンス内のデータ・パケットの異なる可能な位置およびデータ・パケットの異なる可能な長さに起因して、データ・パケットごとに異なる可能性がある。下で説明する例では、各セグメントの長さは、2つを超えない連続するデータ・パケットのメッセージ部分が同一セグメント内に配置されることを保証するのに十分に短い。いくつかの他の実施形態では、セグメントをより長くすることができ、その結果、1つのデータ・パケットのメッセージ部分の一部と、0個、1個、または複数の後続データ・パケットのメッセージ部分(1つまたは複数)と、別のデータ・パケットのメッセージ部分の一部とが、1つのセグメント内にあることができるようになる。
ステップ220および320では、方法200、300は、セグメントが受信される時に第1シーケンスの「q」個のセグメントを順次マスクすることを含み、たとえば、マスキングを、図1Aに示された符号器400Aまたは復号器400B内で実行することができる。セグメントごとの形で、マスキングは、セグメントの第2シーケンスを作り、この第2シーケンスでは、
i)U(t)t+F(t)に対応するシーケンスに先行する「a」個のビットが、0であり、
ii)U(t)t+F(t)に対応するシーケンスに続く「b」個のビットが、0である。
いくつかの特定の実施形態、たとえば図1Bに関して説明された上で説明した第2実施形態では、マスキング・ステップ220および330は、
i)U(t)t+F(t)に対応するシーケンスの最初の「m」個のビットを逆数にすること、および/または
ii)U(t)t+F(t)に対応するシーケンスの最後の「m」個のビットを逆数にすること
をも含む。これらの特定の実施形態は、データ・パケットのメッセージ部分および予約済み部分の連結の最初の「m」個のビットおよび最後の「m」個のビットのこのオプションの逆数化(すなわち、1の補数化)を実行する。そのような実施形態では、セグメントの第2シーケンスは、次の形の多項式V(t)によって忠実に表される。
V(t)=0・tqs−1+…+0・tn+b+(U(t)・t+I(t)・t+F(t)+I(t))・t+0・tb−1+…+0・t+0 (4)
ステップ230および330では、方法200、300は、CRC生成多項式G(t)によって多項式V(t)を再帰的に除算することに対応するセグメントごとの形で、多項式V(t)に対応する第2シーケンスを処理することを含む。ステップ230および330は、CRC生成多項式G(t)による多項式V(t)の除算の剰余である多項式
Figure 0006382569
に対応する剰余シーケンスを計算することを含む。したがって、処理ステップ230、330は、効果的に、CRC生成多項式G(t)によるデータ・パケットのメッセージ部分U(t)の除算を実行するのではなく、CRC生成多項式G(t)によるV(t)の除算を実行する。
ステップ240では、方法200は、ステップ230で計算された剰余に基づいて、第1シーケンスのうちでデータ・パケットのメッセージ部分および予約済み部分に対応する部分がCRC符号語を形成するかどうかを判定する。第1シーケンスのこの部分が符号語であると判定される場合には、方法200は、250で、データ・パケットに伝送誤りがないことをシグナリングすることを含む。第1シーケンスのこの部分が符号語ではないと判定される場合には、方法200は、260で、データ・パケットが伝送誤りを有することをシグナリングすることを含む。
ステップ340では、方法300は、データ・パケットのメッセージ部分および予約済み部分がCRC符号語に対応するシーケンスを形成するようにデータ・パケットの予約済み部分を調整することを含む。ステップ340は、検査シーケンス差多項式D(t)に対応するシーケンスを判定することと、データ・パケットのメッセージ部分および予約済み部分の最終シーケンスを作成することとを含むことができる。最終シーケンスは、多項式U(t)・t+D(t)+F(t)によって忠実に表される。
上で説明した第1実施形態では、V(t)の形から、
Figure 0006382569
になる。計算された剰余多項式
Figure 0006382569
のシーケンスが、少なくとも長さmのすべて0のシーケンスである場合には、F(t)=C(t)であり、ステップ340は、D(t)=0であると判定する。その代わりに、計算された剰余多項式
Figure 0006382569
が、その長さがm以下の非ゼロ多項式である場合には、C(t)=F(t)+D(t)であり、ここで、非ゼロ検査シーケンス差多項式D(t)は、
Figure 0006382569
を満足する。ステップ340は、計算された剰余多項式
Figure 0006382569
の計算されたシーケンスから検査シーケンス差多項式D(t)のシンボルシーケンスを入手するために、逆方向計算を介して式(6)を解くことを効果的に含むことができる。
ステップ340は、多項式V(t)のシーケンス内の末尾の0の異なる個数「b」について剰余
Figure 0006382569
に関する別の式を再帰的に解くことによって、計算された剰余多項式
Figure 0006382569
から多項式
Figure 0006382569
を逆方向計算することを含むことができる。具体的には、剰余に関する式を、逆順の生成多項式から逆順の形で書き直すことができる。たとえば、
Figure 0006382569
を、式
Figure 0006382569
を解くことによって、
Figure 0006382569
を含む剰余から入手することができる。すなわち、第(i−δ)剰余多項式
Figure 0006382569
の係数は、逆順固定多項式G(t−1)・tすなわちG(t−1)・t=g+gm−1+…+gm−1t+gによって第i逆順剰余多項式
Figure 0006382569
を割ることから入手される剰余と等しい。この理由から、上で説明した再帰プロセスを、計算された剰余多項式
Figure 0006382569
から
Figure 0006382569
を入手するために剰余の逆順の形を用いて実行することもできる。たとえば、ある範囲内の「b」の値の任意の範囲についてこの計算を実行する1つの方法を、下で図8に関連してより詳細に説明する。
上で説明した第2実施形態では、検査シーケンス差多項式D(t)は、多項式R(t)+I(t)と多項式F(t)との間の差であり、多項式F(t)は、第1シーケンス内のデータ・パケットの予約済み部分に対応した。多項式R(t)+I(t)は、CRC生成多項式G(t)によるデータ・パケットのメッセージ部分の多項式U(t)+I(t)・t(k−m)の除算の剰余の1の補数に対応する。この実施形態では、多項式R(t)のシーケンスを、第2実施形態の上の式(4)に示された多項式V(t)の逆数を説明する式6〜8の変更された版に基づいて計算された剰余多項式
Figure 0006382569
のシーケンスからの逆方向計算によって見つけることもできる。当業者は、式4〜8の上の説明に基づいて前記変更された式を簡単に判定できるはずである。
ステップ340で、方法300は、データ・パケットがオリジナル・メッセージ部分を有し、メッセージ部分および予約済み部分が多項式U(t)・t+D(t)+F(t)によって忠実に表されるCRC符号語を形成する、最終シーケンスを、宛先受信器に順次送信もする。
下で説明する実施形態では、1「語」は、通常は「1バイト」である。
図4Aおよび4Bに、それぞれ符号器400Aおよび復号器400Bを示す。符号器400Aは、たとえば、図3の符号化方法300を実行することができ、復号器400Bは、たとえば図2の復号方法200を実行することができる。符号器400Aおよび復号器400Bは、たとえばゲート、フリップフロップ、レジスタ、加算器、および/または乗算器を含む回路から形成される、たとえば従来のディジタル・ハードウェア・デバイスである。図4A〜4Bに示された符号器400Aおよび復号器400Bは、たとえば、図1Aに示されたそれぞれの符号器400Aおよび復号器400Bとすることができる。符号器400Aおよび/または復号器400Bを、有線、無線、または光のパケットベースの通信用のトランシーバのネットワーク・インターフェース・カード(NIC)またはtransport network element(TNE)、たとえばイーサネット(登録商標)NICまたはTNE内に配置することができる。
図4Aおよび4Bに示されているように、符号器400Aおよび復号器400Bは、ディジタル・データ処理ユニットのセットを含む。ディジタル・データ処理ユニットのセットは、セグメント化ユニット410、マスキング・ユニット420、部分剰余付加ユニット425、セグメント除算ユニット430、435、剰余処理ユニット440、および1つまたは複数のディジタル・バッファ460、462、464、466を含む。符号器は、逆方向計算ユニット470および検査シーケンス調整ユニット480をも有する。復号器400Bは、検査シーケンス検証ユニット490をも有する。ディジタル処理ユニットのうちのさまざまな1つは、実質的に時間的に順次のセグメントごとの形でデータシンボルの受け取られたシーケンスを処理し、各セグメントは同一の長さを有する。
セグメント化ユニット410は、ディジタル・データシンボルのストリームを受け取り、各連続する等しい長さのセグメントをマスキング・ユニット420に、各セグメントに関する情報をマスキング・ユニット420および部分剰余付加ユニット425に連続的に送る。セグメント化ユニット410は、入力401でストリームを受け取り、出力412で前記ストリームのセグメントを出力する。データ・パケットごとに、セグメント化ユニット410は、「q」個の連続するセグメントのシーケンスを出力し、「q」は、データ・パケットごとに異なる可能性がある。しかし、各セグメントは、Swバイト長すなわちsビットであり、ここで、s=wSであり、wは、1語内のビット数である。下の説明では、セグメントがバイト整列されると仮定する。これらの結果を、語整列されないセグメントを処理するように簡単に拡張することができる。
セグメントごとに、セグメント化ユニット410は、セグメントに対応する情報を出力ポート414に送る。この情報は、対応するセグメント内に配置されたすべてのデータ・パケットの始めおよび/またはデータ・パケットの終りを識別し、突き止める。セグメントがデータ・パケットの始めを有する場合に、セグメント化ユニット410は、値1のパケットの始め(SOP)信号と、セグメント内のデータ・パケットの始めの位置を識別するパケットの始めインデックス(SPI)とを出力する。セグメントがデータ・パケットの始めを有しない場合に、セグメント化ユニット410は、値0のSOP信号を出力する。セグメントがデータ・パケットの終りを有する場合に、セグメント化ユニット410は、値1のパケットの終り(EOP)信号と、セグメント内のデータ・パケットの終りの位置を識別するパケットの終りインデックス(EPI)とを出力する。セグメントがデータ・パケットの終りを有しない場合に、セグメント化ユニット410は、値0のEOP信号を出力する。セグメント化ユニット410は、データ・パケットのパケット・ヘッダ内のパケット長識別子(PLI)を読み取ることによって、データ・パケットの始めおよび/またはデータ・パケットの終りを識別し、突き止めることができる。
下では、セグメントの連続する語が、数字(S−1)から0までによって送出の順序でインデクシングされ、より大きいインデックスは、より早く送出された語に対応する。SPI信号およびEPI信号を、2進数によって各インデックスを表す2進信号の長さ「j」のベクトル(すなわち、2j−1<S≦2)によって表すことができる。SPIの値は、たとえばデータ・パケットのメッセージ部分すなわち、多項式U(t)に対応する部分の最初の語を指し、EPIの値は、たとえばデータ・パケットの予約済み部分すなわちCRC検査シーケンス部分の最後の語を指す。
マスキング・ユニット420は、セグメントが出力412を介してセグメント化ユニット410から受け取られる時に、セグメントごとの形でセグメントのビットをマスクする。第1シーケンスの各q個のセグメントすなわちその中にデータ・パケット全体を有するセグメントから、マスキング・ユニット420は、対応するセグメントの第2シーケンスを作り、第2シーケンスは、既に説明した多項式V(t)に対応する。そのような第2シーケンス内で、マスキング・ユニット420は、データ・パケットのメッセージ部分および予約済み部分の外の各ビットに0をセットする、すなわち、U(t)t+F(t)に対応するシーケンスの前の各ビットに0をセットし、U(t)t+F(t)に対応するシーケンスの後の各ビットに0をセットする。したがって、マスキング・ユニット420は、第1シーケンスの最初の「a」個のビットに「0」をセットし、各第1シーケンスの最後の「b」個のビットに「0」をセットする。また、上で説明した第2実施形態では、マスキング・ユニット420は、メッセージ部分および予約済み部分の連結に対応するシーケンスすなわち多項式U(t)t+F(t)に対応するシーケンスの最初の「m」個のビットおよび最後の「m」個のビットを逆数にする(すなわち、1の補数にする)。
マスキング・ユニット420は、第2シーケンスの各セグメントを部分剰余付加ユニット425に順次出力する。部分剰余付加ユニット425は、第2シーケンスの各非先頭セグメントの最上位「m」ビットによって形成されるシーケンスに部分剰余を加算するために、長さ「m」の部分剰余シーケンスをシフトする。ここで、各部分剰余シーケンスは、CRC生成多項式G(t)に対応するシーケンスによる同一の第2シーケンスの先行セグメントのセグメント除算ユニット430、435のうちの1つによる除算からの剰余である。そのような部分剰余は、剰余処理ユニット440から信号線441を介して部分剰余付加ユニット425にフィード・バックされる。
セグメント除算ユニット430、435は、順次のセグメントごとの形で各受け取られたセグメント、たとえばマスクされた多項式V(t)のセグメントに対応する各セグメントに作用する。セグメントごとの除算を介して、セグメント除算ユニット(1つまたは複数)430、435は、部分剰余のシーケンスを出力する。セグメント除算ユニット430、435は、以前のセグメント除算からの適当にシフトされた部分剰余と組み合わされる非先頭セグメントを受け取るので、最終的な部分剰余すなわち第2シーケンスの最終セグメントの除算によってセグメント除算ユニット430、435のうちの1つで作られる部分剰余は、剰余多項式R(b) (t)のシーケンスに対応する。すなわち、セグメント除算ユニット(1つまたは複数)430、435によって出力される最終的な部分剰余シーケンスは、マスクされた多項式V(t)をCRC生成多項式G(t)によって除算することによって作られるはずの剰余に対応する。
いくつかの実施形態では、部分剰余付加ユニット425は、第2シーケンスのセグメントのセットを一方のセグメント除算ユニット430、435に出力し、次の第2シーケンスのセグメントを他方のセグメント除算ユニット435、430に出力する。これらの実施形態では、セグメント除算ユニットの一方430、435は、CRC生成多項式G(t)による、あるデータ・パケットの各そのようなセグメントの除算を実行し、セグメント除算ユニットの他方435、430は、CRC生成多項式G(t)によるストリーム内の次のデータ・パケットの各そのようなセグメントの除算を実行する。
他の実施形態では、部分剰余付加ユニット425は、処理されるデータ・パケットによって占められるセグメントの量に基づいてセグメント除算ユニット430、435にセグメントを選択的に送る。具体的には、セグメントがデータ・パケットの終りを有し、現在のデータ・パケットが次のデータ・パケットより多くのビットをその中に有する場合に、現在のデータ・パケットのセグメントは、第1セグメント除算ユニット430に送られ、次のデータ・パケットを有する短縮されたセグメントが、第2セグメント除算ユニット435に送られる。そうではなく、現在のデータ・パケットが、次のデータ・パケットより少ないビットを有する場合には、次のデータ・パケットのセグメントが、第1セグメント除算ユニット430に送られ、現在のデータ・パケットの残りを有する短縮されたセグメントが、第2セグメント除算ユニット435に送られる。
剰余処理ユニット440は、さらなる処理のために剰余多項式R(b) (t)のシーケンスを出力442にルーティングする。さらなる処理を、検査シーケンス検証ユニット490または逆方向計算ユニット470によって実行することができる。データ・パケットごとに、剰余処理ユニット440は、対応するデータ・パケットのSOP情報、SPI情報、EOP情報、およびEPI情報に基づいて、セグメント除算ユニット430、435のうちの1つからの剰余多項式R(b) (t)のシーケンスを選択する。既に説明したように、剰余処理ユニット440は、セグメント除算ユニット430、435からの部分剰余を部分剰余付加ユニット425にフィード・バックもする。
上で説明した第2実施形態では、データ・パケットの予約済み部分の終りが第2シーケンスの最終セグメントの始め付近に配置される時に、特殊な状況が発生する。そのような状況では、剰余処理ユニット440を、第2シーケンスの最終セグメントについてセグメント除算ユニット430、435のうちの1つによって評価された部分剰余に訂正項を加算するように構成することができる。より具体的には、訂正項は、対応する部分剰余が計算された時に逆数にされなければならなかったが、逆数にされなかった、第2シーケンスの最後から2番目のセグメント内の1つまたは複数のバイトを補償する。訂正項は、最後から2番目のセグメントの適当にシフトされたミスド・ワンズ・シーケンス(missed ones sequence)をCRC生成多項式G(t)によって除算することから生じる剰余である。当業者は、この特殊な状況でそのような訂正項を適用するのに剰余処理ユニット440が使用できるルック・アップ・テーブルまたは組合せ回路をたやすく製造できるはずである。
いくつかの実施形態(図4A〜4Bには図示せず)では、部分剰余付加ユニット425は、存在せず、マスキング・ユニット420は、第2シーケンスの各セグメントをセグメント除算ユニット430、435のうちの1つに直接に順次出力する。その後、剰余処理ユニット440は、CRC生成多項式G(t)に対応するシーケンスによる第2シーケンスの最終セグメントのセグメント除算ユニット(1つまたは複数)430、435での除算によって作られた最終的な部分剰余を変更する。具体的には、この変更は、セグメント除算ユニット430、435による第2シーケンスのより以前のセグメントの除算の部分剰余から計算された訂正を加算することを含む。この調整は、剰余処理ユニット440が、それでも剰余多項式R(b) (t)すなわちCRC生成多項式G(t)によるマスクされた第2シーケンスV(t)の除算によって入手された剰余に対応する剰余シーケンスをポート442で出力するようにするために、最終的な部分剰余を訂正する。
マスクされた第2シーケンス内には、対応するデータ・パケットの一部ではない末尾の固定されたディジタル・データシンボル、たとえば多項式V(t)の末尾の「0」に対応するエントリがある場合がある。既に述べたように、マスクされた多項式V(t)のマスクされたシーケンスから計算される多項式R(b) (t)の剰余シーケンスは、データ・パケット自体のCRC剰余多項式C(t)に対応しない場合がある。したがって、データ・パケットのうちのいくつかについて、逆方向計算ユニット470は、CRC剰余多項式R(t)の正しいCRC剰余シーケンスまたはたとえば上で述べた検査シーケンス差多項式D(t)の異なるシーケンスの逆方向計算を実行することができる。逆方向計算ユニット470内では、これらの計算は、長さ「m」の剰余多項式R(b) (t)に基づき、この剰余多項式R(b) (t)は、剰余処理ユニット440の出力ポート442から受け取られる。そのような逆方向計算は、既に説明したように、すなわち、信号線465から逆方向計算ユニット470によって受け取られるEOP信号およびEPI信号から知られる、V(t)のシーケンス内の「b」個の末尾の0の既知の固定された形にも基づく。
符号器400A内では、逆方向計算ユニット470が、CRC剰余多項式R(t)のCRC検査シーケンスまたは検査シーケンス差多項式D(t)の異なるシーケンスを出力ポート472を介して検査シーケンス調整ユニット480に出力する。
符号器400A内では、検査シーケンス調整ユニット480が、物理通信チャネルへの送信用の変換された第1シーケンスを作るために、対応するデータ・パケットの予約済み部分に逆方向計算された検査シーケンスR(t)を挿入する。変換された第1シーケンス内では、データ・パケットのメッセージ部分および予約済み部分のシーケンスが、多項式U(t)・t+F(t)によって忠実に表された入力シーケンスではなく、多項式U(t)・t+F(t)+D(t)によって忠実に表される。変換された第1シーケンスは、出力ポート482で出力される。データ・パケットごとに、検査シーケンス調整ユニット480は、逆方向計算ユニット470の出力ポート472から多項式R(t)またはD(t)のシーケンスを受け取る。
検査シーケンス調整ユニット480および逆方向計算ユニット470は、データ線469を介して適当な時にデータ・パケットのセグメントを受け取る。データ線は、適当な長さの遅延を提供するバッファ460、466を含む。検査シーケンス調整ユニット480、逆方向計算ユニット470、および剰余処理ユニット440は、データ線469を介して適当な時にデータ・パケットのEOP信号、EPI信号、SOP信号、SPI信号を受け取る。制御線465は、適当な長さの遅延を提供するバッファ462、464を含む。
復号器400B内では、検査シーケンス検証ユニット490が、対応するデータ・パケットが符号語であるかどうかを示す制御信号を出力492で出力する。検査シーケンス検証ユニット490は、剰余処理ユニット440から受け取られる多項式R(b) (t)のシーケンスの形に基づいて、出力される制御信号の値を決定する。多項式R(b) (t)が長さ「m」のすべて0の多項式である場合には、検査シーケンス検証ユニット490は、通常、対応するデータ・パケットに伝送誤りがないことを示す信号を出力する。しかし、多項式R(b) (t)が長さ「m」の別の多項式である場合には、検査シーケンス検証ユニット490は、通常、対応するデータ・パケットが伝送誤りを有することを示す信号を出力する。
短く要約すると、符号器400A内では、マスキング・ユニット420が、セグメント化ユニット410からのセグメントの第1シーケンスを、マスクされた多項式V(t)に対応するマスクされたセグメントの第2シーケンスに変換する、たとえば式(5)。符号器400A内では、セグメント除算ユニット430、435および剰余処理ユニット440が、一緒に、たとえば式(6)に従って、剰余多項式
Figure 0006382569
に対応するセグメントのシーケンスを生成する。逆方向計算ユニット470は、たとえば式(9)に基づいて、剰余多項式
Figure 0006382569
からCRC検査シーケンス調整多項式D(t)またはCRC剰余多項式R(t)を有効に判定し、この多項式のシーケンスを、さらに、検査シーケンス調整ユニット480内で使用することができる。
代替実施形態では、他のディジタル・デバイスが、マスキング・ユニット420、部分剰余付加ユニット425、セグメント除算ユニット430、435、および剰余処理ユニット440の組合せを置換することができる。たとえば、セグメントが、多くとも1つのデータ・パケットの一部を含む場合には、2つのセグメント除算ユニット435、430および/または剰余処理ユニット440のいずれかを有することが必要ではない可能性がある。
上で説明したように、本明細書で説明される実施形態のうちの1つまたは複数は、データ・パケットのCRC検査シーケンスを生成し、生成されたCRCシーケンスまたはその1の補数を送信の前にデータ・パケットに書き込むシステムまたは方法に関する。
セグメント処理の例および他の例の実施形態
図5に、図4Aの符号器400Aのいくつかの実施形態を介する例のデータ・パケットの処理を示す。データ・パケットは、4つの連続するばらばらの等しい長さのセグメント522、524、526、528から形成されるディジタル・データシンボルの第1シーケンス510内に配置される。処理は、マスクされたセグメントの第2シーケンス570を生成することと、セグメントの第2のマスクされたシーケンスからCRC検査シーケンス580を計算することとを含む。下では、処理を図6に関して説明するが、図6は、図4Aのマスキング・ユニット420および部分剰余付加ユニット425の例のブロック図である。マスキング・ユニット420部分剰余付加ユニット425は、図7に示された有限状態機械(FSM)700に基づいて動作させられる。
図5では、4つのセグメント522、524、526、528の第1シーケンス510は、データ・パケットを含み、このデータ・パケットは、メッセージ部分514と、CRC検査シーケンス用の予約済み部分516とを有する。第1および第4のセグメント522、528は、データ・パケットすなわちデータ・パケットのデータ部分514および予約済み部分516に属さない部分512、518を有する。
図4Aのセグメント化ユニット410、マスキング・ユニット420、部分剰余付加ユニット425、セグメント除算ユニット430、435、剰余処理ユニット440、および逆方向計算ユニット470を処理することを示す図5。セグメント化ユニット410は、第1シーケンス510のセグメント522、524、526、528と、その中のデータ・パケットの終りおよび始めの位置を定義する情報とをマスキング・ユニット420に順次出力する。マスキング・ユニット420は、第1シーケンス510のセグメント522、524、526、528を第2シーケンス570のマスクされたセグメント536、546、556、556に順次変換する。この変換は、第1シーケンス510の、データ・パケット内にない最初の部分および最後の部分512、518すなわちそれぞれ6バイトを0にマスクすることを含み、データ・パケットの同一個数の最初のバイトおよび最後のバイトすなわちこの例ではそれぞれ4バイトを1の逆数にすることを含むことができる(1バイトの逆数はダッシュによって示される)。部分剰余付加ユニット425は、先頭セグメント522、524、526の以前の多項式除算すなわちセグメント除算ユニット430、435内での除算からの中間剰余または部分剰余538、548、558を先頭ではないセグメント524、526、528の最上位バイトに加算する。そのような実施形態では、部分剰余538、548、558は、剰余処理ユニット440またはセグメント除算ユニット(1つまたは複数)430、435を介してマスキング・ユニット420にフィード・バックされる。各セグメント除算ユニット430、435は、各マスクされたセグメント536、546、556、566すなわち先頭ではないセグメント524、526、528の付加された部分剰余を有するセグメントを、CRC生成多項式G(t)に対応するシーケンスによって除算し、これによって部分剰余538、548、558、568を作る。剰余処理ユニット440は、剰余多項式R(b) (t)に対応する最終セグメントの部分剰余568を逆方向計算ユニット470に出力する。逆方向計算ユニット470は、CRC剰余多項式R(t)に対応するCRC検査シーケンス580または最終セグメント剰余568からの差多項式D(t)に対応するCRC差シーケンスを計算する。
図6および8に、図4A〜4Bのマスキング・ユニット420、部分剰余付加ユニット425、および逆方向計算ユニット470の特定の実施形態を示す。
図6を参照すると、セグメント化ユニット410は、長さsすなわちSwまたは図5では20バイトのセグメントをマスキング・ユニット420のマスキング・モジュール620、630、640に送る。マスキング・ユニット420は、データ・パケットの終了セグメント・インデックスおよび開始セグメント・インデックスの位置に関する情報を受け取るマスク生成モジュール610をも含むことができる。
マスク生成モジュール610は、図7に示された例の有限状態機械(FSM)700に従ってこの情報を解釈する。初期化時に、FSMは、INIT/IDLE状態710にある。FSMは、SOPの受け取られる値が「0」である限り、INIT/IDLE状態に留まる。後に受け取られる(SOP,EOP)対が、SOP=1およびEOP=0を示す場合には、対応するセグメントは、データ・パケットの始まりを有する、たとえば図5のセグメント522。FSMは、たとえば図5のセグメント522のように、データ・パケットがデータ・パケットの終りをも有するのではない場合に、パケット始め(PB)状態720に変化する。FSMは、セグメントがデータ・パケットの終りをも有する場合すなわちEOP=1である場合に、パケットフル(PF)状態760に変化する。PB状態720では、図6のマスキング・ユニット420は、データ・パケットの外のセグメントのすべての初期部分に0シーケンスをセットし、データ・パケット自体の最初のm個のビット、たとえば図5ではmw=4バイトを逆数にする。これらの変換を実行するために、マスク生成モジュール610は、SPI信号の受け取られた値によって定義される形を有するためにマスクM(S)およびX(S)を作る。SOPおよびEOPの値が次のセグメント、たとえば図5のセグメント524で0である場合には、FSMは、パケット中央(PM)状態730に変化する。FSMが初めてPM状態になる時に、符号器は、現在のセグメントの最初の語を逆数にする(X (S)によって指定されるように、多くとも((m/w)−1)語が逆数にされなければならない)ために、前のセグメントのマスクX(S)のすべての剰余がマスキング・ユニット620に供給されるようにするために、データ・パケットが最後のセグメントの終りで始まったかどうかを判定する。そうではない場合には、PM状態は、通常、セグメントのマスキングを実行しない。FSM 700は、パケットの終りがセグメント内に配置されることを示すためにEOPの値が1に変化するまで、PM状態730に留まる。
FSMは、EOPの値が1に変化するまで、PM状態730に留まる。SOPの値がまだ0である場合には、FSMは、EOPが1に変化することに応答してパケット終り(PE)状態740に変化する。PE状態740について、マスク生成モジュール610は、2つのマスクM(E)およびX(E)を作り、これらは、セグメントのうちでデータ・パケットの外の部分に0をセットし、データ・パケットの終りの長さmの部分をビット単位で逆数にするために、マスキング・ユニット620に供給される。SOPの値がEOPと一緒に1に変化する場合には、セグメントは、処理されつつあるデータ・パケットの終りと次のデータ・パケットの始めとを含む。EOPおよびSOPのそのような値は、FSMにパケット二重(PD)状態750に変化させ、この状態では、両方のセグメント除算ユニット430、435が使用される。
PD状態750では、2つの処理ケースがある。第1のケースでは、セグメントは、セグメント内の次のデータ・パケットの開始部分より長い、データ・パケットの終了部分を有する。このケースでは、データ・パケットの終了部分は、PE状態740と同様にマスキング・ユニット620内で処理され、セグメント除算ユニット430は、マスクM(E)およびX(E)を使用する。このケースでは、H語未満を有する新しいデータ・パケットの開始部分は、マスキング・モジュール640およびセグメント除算ユニット435内ですなわち、PB状態720に似た形でマスクM(S)およびX(S)のH個の最下位ビットを使用して、並列に処理される。第2のケースでは、セグメントは、セグメント内の次のデータ・パケットの開始部分より短い、データ・パケットの終了部分を有する。このケースでは、H語未満を有するデータ・パケットの終りが、PE状態740に似て2つのマスクM(E)およびX(E)のH個の最上位ビットを使用してマスキング・モジュール630およびセグメント除算ユニット435内で処理される。このケースでは、新しいデータ・パケットの開始部分は、2つのマスクM(S)およびX(S)を使用してマスキング・モジュール620およびセグメント除算ユニット430内で、PB状態720に似て処理される。
最後に、FSM 700が、INIT/IDLE状態710またはPE状態740にあり、SOPおよびEOPの値が両方とも1になる場合に、FSMは、PF状態760に変化する。PF状態760では、パケット全体が、1つのセグメント内に含まれる。このケースでは、セグメントは、4つのマスクM(S)、X(S)、M(E)、およびX(E)の適用によってマスキング・モジュール620内で変更され、CRC剰余は、セグメント除算ユニット430によって判定される。
FSM 700は、パケットの始め(1つまたは複数)および/またはパケットの終り(1つまたは複数)に関する情報の妥当性を同時に検査することを含むことができる。たとえば、PM状態730で、FSMは、SOPが1になる場合にエラー・メッセージを送ることができ、その後、FSMは、INIT/IDLE状態710に戻ることができる。FSMは、SPI信号およびEPI信号の範囲の妥当性の他の検査を実行することを含むことができる。たとえば、PD状態750では、EPI信号およびSPI信号は、データ・パケットの終りと次のデータ・パケットの先頭との間の距離が事前定義のパケット間ギャップ長以上であることを示さなければならない。
図6は、マスキング生成モジュール610とマスキング・モジュール620、630、および640との実施形態を示す。SOP=1の時には、マスク生成モジュール610は、パケットの始めインデックスiを表すSPI信号を処理して、その構成要素が(S−1)から0までのインデックスを有するすなわちS語に対応する2進マスクM(S)を生成する。iより大きいインデックスを有する構成要素は、0であり、i以下のインデックスを有する構成要素は、1である。マスク生成モジュール610は、どの語を逆数にしなければならないのかを示す2進マスクX(S)を生成する。2進マスクX(S)内では、max(i−m/w+1,0)までの構成要素iは1であり、他の構成要素は0である。(i−m/w+1)<0の場合には、次のセグメントに対応する、2進マスクX(S)の構成要素(S−1)から(S−(i−m/w+1))までが、やはり1である。マスクM(S)およびX(S)は、マスキング・モジュール620、630、および640に分配され、FSM 700の状態に依存する形で選択的に使用される。
一実施形態では、マスキングは、データ・パケット・リプレースの外の第1シーケンスの各ディジタル・データシンボルを0に置換し、データ・パケットの先頭および最後のディジタル・データシンボルを逆数にする。マスクM(S)の0値の構成要素は、セグメントのうちでデータ・パケット内ではない部分を識別し、マスクM(S)の1値の構成要素は、第1シーケンスのうちでデータ・パケット内である部分を識別する。第1シーケンスの1語を、M(S)の対応する構成要素によって制御されるw個のANDゲートを用いてその後を処理することによって、選択的に0にセットするか変更されないままにすることができる。M(S)の構成要素が0である場合には、ANDゲートは、対応する語を0に置換し、M(S)の構成要素が1である場合には、ANDゲートは、対応する語を変更しない。同様に、マスクX(S)の1値の構成要素は、セグメントのうちで逆数にされなければならない部分を識別する。第1シーケンスの1語は、X(S)の対応する構成要素によって制御されるw個のXORゲートを用いてそのように処理することによって、選択的に逆数になるようにセットされまたは変更されないままにされる。マスクX(S)の構成要素が1である場合には、XORゲートは、1の逆数によって対応する語を置換し、マスクX(S)の構成要素が0である場合には、XORゲートは、対応する語を変更しない。
図5では、長さ20(バイト/語)のセグメント522が、6バイトがパケットの始めに先行することを示す情報と共にマスキング・ユニット420に入る。そのために、マスク生成モジュール610は、最初の6バイトを0に置換する。また、マスク生成モジュールは、セグメントのバイト7〜10を逆数にさせる。
図6を参照すると、マスキング・ユニット420および部分剰余付加ユニット425の組合せは、マスク生成モジュール610内で新しいデータ・パケットの始めを検出することに応答して、剰余計算を再開始することができる。より具体的には、マスキング・モジュール620および630は、フィード・バックされた剰余とフィード・バックされた剰余としての0入力との間で選択するマルチプレクサを有することができる。SOPの値が1である時には、このマルチプレクサは、剰余多項式
Figure 0006382569
のシーケンスを評価するための多項式除算を再開始するために0入力を選択する。
図4A、4B、5、および6をもう一度参照すると、部分剰余付加ユニット425および剰余処理ユニット440は、以前に計算された部分剰余538、548、558をその最上位部分に付加することによって、第2シーケンス570の非先頭セグメント546、556、566の更新を可能にすることができる。各部分剰余538、548、558、568の計算は、セグメント除算ユニット430、435内で固定された除数シーケンス、たとえばCRC生成多項式G(t)によってそのように更新されマスクされたセグメント536、546、556、566を除算することを含む。この形で、マスキング・ユニット420、部分剰余付加ユニット425および剰余処理ユニット440は、個々のセグメント536、546、556、566に対する反復計算を介する、データ・パケットが複数のセグメントにまたがって延びる時の剰余多項式R(b) (t)の剰余の計算をサポートする。
たとえば、剰余は、図5の例では次のように反復して計算される。第1反復では、FSM 700は、PB状態720に入り、第2シーケンス570の第1のマスクされたセグメント536を入手するために、M(S)マスク532およびX(S)マスク534を形成し、第1シーケンスのセグメント522に適用する。その後、マスクされたセグメント536は、第1部分剰余538を入手するためにセグメント除算ユニット430内で処理される。次の反復では、FSM 700は、PM状態730に入り、マスキング・ユニット420は、入力として次のセグメント524をとり、第2セグメント546を形成するために所与のFSM状態用のマスクを生成し、これによって第2シーケンス570の第2セグメントを形成する。部分剰余538は、部分剰余付加ユニット425にフィード・バックされ、次のセグメント546の最上位部分に加算され、その後、セグメント除算ユニット430は、結果のセグメントを処理して、次の部分剰余548を判定する。次の反復では、FSM 700は、PM状態730に入り、セグメント526が、ユニット420内で第2シーケンス570の第3セグメント556を入手するために処理される。部分剰余548は、部分剰余付加ユニット425にフィード・バックされ、次のセグメント556の最上位部分に加算され、その後、セグメント除算ユニット430は、結果のセグメントを処理して、次の部分剰余558を判定する。最後の反復では、FSM 700は、PE状態740に変化し、第2シーケンス570の最終セグメント566を形成するために、M(E)マスク562およびX(S)マスク564を形成し、第1シーケンスのセグメント528に適用する。さらに、部分剰余558が、部分剰余付加ユニット425にフィード・バックされ、次のセグメント566の最上位部分に加算され、その後、セグメント除算ユニット430は、結果のセグメントを処理して次の部分剰余568を判定し、この部分剰余568は、マスクされた第2シーケンス570をCRC生成多項式G(t)によって除算することによって作られるはずである。
上の手順は、セグメント除算ユニット430、435が、第1シーケンス510のセグメント522内のデータ・パケットの始めの位置に関わりなく同一の形で部分剰余538、548、558、568を計算することを可能にする。剰余処理ユニット440は、パケットの終りがセグメント内にあるかどうかを判定するために信号情報を使用することができ、これによって剰余を出力しなければならないかどうかを判定する。
マスク生成モジュール610は、ビット・レベル逆数化マスクX(B)を生成することができ、このビット・レベル逆数化マスクX(B)は、マスキング・モジュール620、630、640のうちの1つまたは複数に送られてもよい。ビット・レベル逆数化信号を使用して、パケット内に含まれる検査シーケンス・セグメントが2つのセグメントにまたがる場合に、マスキング・モジュール620、630、および640に、ビット・レベルでセグメントの(m/w)個の最上位語のそれぞれの部分の逆数化を実行するように命令することができる。
たとえば、データ・パケットの最後の(m/w)個の語が逆数にされなければならない実施形態では、ビット・レベル逆数化を、セグメントの最初の((m/w)−1)個の語内のパケットの終りを説明するのに使用することができる。このビット・レベル逆数化が使用されるのは、逆数にされなければならなかった1つまたは複数の語が前のセグメントと共に処理されたので逆数にされなかったからである。l個のマスク信号が、すべてのマスキング・モジュール620、630、640に結合されるものとして、ならびにそれぞれ幅S、(S−H)、およびHを有するものとして図示されているが、代替実施形態では、l個のマスクのうちのいくつかを、逆数にされる語数に含まれるマスキング・モジュールだけに結合することができる。
S語マスキング・モジュール620、(S−H)語マスキング・モジュール630、およびH語マスキング・モジュール640は、ANDゲートの複数のバンクおよびXORゲートの複数のバンクを含むことができる。ANDゲートのバンクおよびXORゲートのバンクは、語レベル・マスキングと、信号線441から第2シーケンスのセグメントへの部分剰余の加算とを可能にするように機能する。XORゲートのバンクは、マスキング・モジュール620、630、640への着信ビットのうちの1つまたは複数の逆数化を可能にし、XORゲートのバンクは、データ・セグメント412のうちでマスキング・モジュールに入る部分のすべてのビット(すなわち、語全体)の逆数化を可能にする。代替実施形態では、他の論理デバイスおよび/または構造が、そのようなマスキング機能を実現するためにANDゲートのバンクおよび/またはXORゲートのバンクを置換することができる。
上で説明したように、マスキング・ユニット420は、パケットに属さないセグメントの語に0をセットすることによってデータ・セグメントの語をマスクすることができ、かつあるいはデータ・パケットの始めおよび/またはデータ・パケットの終りの1つまたは複数の単語を1の逆数にすることができる。
図5を参照すると、処理は、第1シーケンスのセグメントを受け取ることによって始まる。次に、マスク生成モジュール610は、セグメント化ユニット410の出力ポート414からの情報および有限状態機械700の現在の状態に基づいて、受け取られたセグメント内で新しいパケットが始まるかどうかを判定する。新しいパケットがセグメント、たとえばセグメント522内で始まる場合には、マスキング生成モジュール610は、新しいデータ・パケットの始めに先行するバイトをセットし、かつ/または新しいデータ・パケットの最初のm/w語を逆数にするために、マスク・ベクトルを作ることができる。図5では、新しいデータ・パケットの始めは、セグメント522の第7バイトにあり、マスキング生成モジュール610は、マスキング・モジュール620内でセグメント522の最初の6語をマスクし、語7〜10を逆数にするために、マスク・ベクトルM(S)534および逆数化マスク・ベクトルX(S)536を作る。
受け取られたセグメントが、新しいデータ・パケットの始めを有しない場合には、マスキング生成モジュール610は、状態PM 730によって示されるように、データ・パケットの終りがセグメント内にあるかどうかを判定する。データ・パケットの終りが受け取られたセグメント内にない場合には、マスキング・ユニット620は、セグメントのバイトをマスクせず、逆数にしない。しかし、データ・パケットが、受け取られたセグメント内で終わる場合には、マスク生成モジュール610は、パケットの終りがセグメントの最初の(m/w)−1語内に含まれるかどうかを判定する(PE状態740およびPD状態750)。
データ・パケットの終りがセグメントの最初の(m/w)−1語内に含まれる場合には、マスキング・ユニット420は、パケットの終りに続く語に0をセットすることによって前記語をマスクすることができ、かつ/またはデータ・パケットの最後の(m/w)語を逆数にすることができる。一実施形態では、マスキング・ユニット420は、マスクM(E)を用いてデータ・パケットの終りに続く語をマスクし、マスクX(E)を用いてデータ・パケットの最後の(m/w)語を逆数にする。
データ・パケットの終りがデータ・セグメントの最初の(m/w)−1語内に含まれる場合には、処理がIEEE 802.3または他の適切な標準規格に従う場合に逆数にされる1つまたは複数のバイトが、逆数化なしで前に処理された可能性がある。というのは、データ・パケットの終りが、逆数にされなければならなかった1つまたは複数の語を含むセグメント内に現れなかったからである。したがって、データ・パケットの終りがセグメント412の最初の(m/w)−1語内に現れる(たとえば、PE状態740およびPD状態750で)場合には、マスキング・ユニット420は、パケットの終りに続く語をマスクする。
図4A〜4Bを参照すると、剰余処理ユニット440は、その中にデータ・パケットの一部を有する最終セグメントの剰余を計算することができる。具体的には、PE状態740およびPF状態760で、セグメント除算ユニット430は、既に説明した形で最終セグメントの剰余を計算する。剰余処理ユニット440が部分剰余をフィード・バックする場合に、最終データ・セグメントについてセグメント除算ユニット430によって計算される剰余が、データ・パケット全体ならびにデータ・パケットの終りに続くバイトを置換する0の剰余であることを了解されたい。剰余処理ユニット440は、パケットの終りに達した時に必ずそのような剰余を作る。剰余処理ユニット440が部分剰余をフィード・バックしない場合には、剰余処理ユニット440は、信号線441の剰余多項式に「t」を乗じたものを判定し、その後、この計算からの結果の剰余が、セグメント除算ユニット430の出力ポートから加算されて、剰余多項式R(b) (t)のシーケンスを形成する。PD状態750では、マスキング・ユニット420は、最終パケットの剰余を判定するためにセグメント除算ユニット430、435のいずれかを選択し、剰余処理ユニット440は、剰余多項式R(b) (t)のシーケンスを判定するためにセグメント除算ユニット430、435のいずれかの出力を選択する。
データ・パケットの終りに続く余分な0を有するマスクされた多項式V(t)から計算された剰余多項式R(b) (t)は、データ・パケットだけのCRC検査シーケンス多項式R(t)とは異なる可能性がある。
図8を参照すると、逆方向計算ユニット470は、マスクされた多項式V(t)内の末尾の0の影響を除去することによって、剰余多項式R(b) (t)からCRC検査シーケンス多項式R(t)を逆方向計算するように構成される。より具体的には、逆方向計算ユニット470は、複数の逆方向計算モジュール820−0、820−1、…、820−(p−1)を含み、各計算モジュール820−0、820−1、…、820−(p−1)は、データ・パケットの終りを含むセグメントが信号線445からの制御信号によって指定される特定の量だけより短い場合に剰余がどうなるのかを計算するように構成される。たとえば、逆方向計算モジュール820−0は、多項式除算がセグメントの終りの1バイト前で停止した場合にCRC検査シーケンスがどうなるのかを計算するように構成される。一般に、逆方向計算モジュール820−kは、多項式除算がセグメントの終りの2バイト前で停止した場合に検査シーケンスがどうなるのかを計算するように構成される。
図示の逆方向計算ユニット470は、p個の直列に連結された逆方向計算モジュールを含むことができ、各そのようなモジュールは、0≦q<pを満足する「q」の離散値について2バイトを逆方向計算するように構成される。
逆方向計算モジュール820−0、820−1、…、820−(p−1)の組合せを選択することによって、逆方向計算ユニット470は、0と2−1との間のbの任意の値について、剰余多項式R(b) (t)からCRC検査シーケンス多項式R(t)を選択的に逆方向計算することができる。より具体的には、図8に示された実施形態では、逆方向計算ユニット470は、0にマスクされる末尾バイトの個数の和すなわちbに基づいて、選択された逆方向計算モジュール820−0、820−1、…、820−(p−1)をアクティブ化しまたはバイパスするように動作する複数のマルチプレクサ830−0、830−1、…、830−(p−1)を含む。ここで、逆方向計算モジュール820−kは、δ=2について式(7)を実施するハードウェア・デバイスである。
たとえば、セグメント528の最後の7バイトが0にマスクされる場合には、パケットのCRC剰余またはCRC検査シーケンス多項式R(t)580は、逆方向計算される7バイトである。すなわち、信号線445の信号は、2進数「00111」を示す。したがって、逆方向計算される1バイト、2バイト、および4バイトに対応するマルチプレクサ830−0、830−1、…、830−2が、アクティブ化され、8バイトおよび16バイトを逆方向計算する逆方向計算モジュールが、バイパスされて、7バイトの全体的な逆方向計算が作られる。
剰余R(t)の上記の逆方向計算は、最終的なマスクされたセグメントの終りの0が剰余の評価に決定論的に影響するので、実現可能である。そのために、実際のCRC検査シーケンスを、計算された剰余多項式R(b) (t)およびデータ・パケットの終りの位置から見つけることができる。さらに、逆方向計算ユニット470は、セグメント除算ユニット430、435がデータ・パケットの終りの位置に関わりなく同一の形で剰余計算を実行することを可能にすることができる。セグメント除算ユニット430、435は、連続する等しい長さのセグメントのシーケンスを処理し、これは、所望の剰余を判定するためにより多くの並列のまたは直列の除算ユニットを必要とする代替CRC符号器に関して、図4Aの符号器400Aの効率を改善し、かつ/またはサイズおよび製造コストを下げることができる。
図4Aをもう一度参照すると、CRC剰余多項式R(t)のシーケンスの逆方向計算の後に、逆方向計算ユニット470は、長さmのCRC検査シーケンスまたは前に説明した差多項式D(t)の長さmのシーケンスを、出力ポート472を介して検査シーケンス・セグメント調整ユニット480に出力する。また、逆方向計算ユニット470は、データ・パケットの予約済み部分の位置に関する情報を、出力ポート474を介して検査シーケンス・セグメント調整ユニット480に出力する。検査シーケンス調整ユニット480は、この位置情報を使用して、遅延線469上のオリジナル・データ・ストリーム内のデータ・パケットの予約済み部分を識別し、対応するデータ・パケットの予約済み部分がその中にCRC検査シーケンスを有するデータ・ストリームを出力ポート482で作る。
最後に、そのようなCRC検査シーケンスを付加されたデータ・パケットを、出力ポート482からさまざまな適切な送信器および送信プロトコル(たとえば、イーサネット(登録商標)、ギガビット・イーサネット(登録商標)、またはEvolution Voice/Data Only)を介して通信チャネルに送信することができる。
データ・パケットがその宛先に到着する時に、受信器は、図4Bの復号器400Bを使用して、伝送中に発生した可能性がある誤りを識別する際に使用するためにデータ・パケットのCRC剰余を計算することができる。受信されたデータ・パケットがCRC符号語であることが見出されない場合には、パケットの1つまたは複数のビットが伝送中に変更された可能性が高い。
本発明は、さまざまな修正形態および代替形態を許すことができるが、特定の実施形態を、例として図面に示し、本明細書で詳細に説明した。しかし、本発明が、開示された特定の形態に限定されることを意図されてないことを理解されたい。そうではなく、本発明は、次の添付された特許請求の範囲によって定義される本発明の趣旨および範囲に含まれるすべての修正形態、同等物、および代替形態を含まなければならない。

Claims (1)

  1. 等しい長さのばらばらのデータ・セグメントのシーケンスを処理する方法であって、前記シーケンスは、特定のデータ・パケットを含み、
    前記データ・セグメントのうちの1つの一部をマスクすることによって前記等しい長さのマスクされたデータ・セグメントを形成するステップであって、特定のデータ・パケットの一部は、前記データ・セグメントのうちの前記1つの中にあり、前記マスクされる部分の外にあり、前記特定のデータ・パケットの開始位置は、前記データ・セグメントのうちの前記1つの中にあり、前記データ・セグメントのうちの前記1つの開始位置と一致していない、ステップと、
    前記特定のデータ・パケットの始めまたは終りを変更することによって、前記等しい長さの変更されたセグメントを形成するステップと、
    前記マスクされたセグメントおよび前記変更されたセグメントを用いて計算を実行することによって前記特定のデータ・パケットの巡回冗長検査を計算するステップと
    前記計算された巡回冗長検査を0と比較するステップを含み、
    巡回冗長検査を計算する前記ステップは、前記データ・パケットと共に送信された別の巡回冗長検査に少なくとも部分的に基づいて検査シーケンス値を計算するステップを含む方法。
JP2014098463A 2009-11-04 2014-05-12 通信システム内での誤り検出の方法および装置 Expired - Fee Related JP6382569B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/612,674 US8892983B2 (en) 2008-11-04 2009-11-04 Method and apparatus for error detection in a communication system
US12/612,674 2009-11-04

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2012537981A Division JP5717748B2 (ja) 2009-11-04 2010-11-04 通信システム内での誤り検出の方法および装置

Publications (2)

Publication Number Publication Date
JP2014180025A JP2014180025A (ja) 2014-09-25
JP6382569B2 true JP6382569B2 (ja) 2018-08-29

Family

ID=42242055

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2012537981A Expired - Fee Related JP5717748B2 (ja) 2009-11-04 2010-11-04 通信システム内での誤り検出の方法および装置
JP2014098463A Expired - Fee Related JP6382569B2 (ja) 2009-11-04 2014-05-12 通信システム内での誤り検出の方法および装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2012537981A Expired - Fee Related JP5717748B2 (ja) 2009-11-04 2010-11-04 通信システム内での誤り検出の方法および装置

Country Status (6)

Country Link
US (2) US8892983B2 (ja)
EP (1) EP2497217A4 (ja)
JP (2) JP5717748B2 (ja)
KR (1) KR101354288B1 (ja)
CN (1) CN102771074B (ja)
WO (1) WO2011056932A2 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TR201807771T4 (tr) 2011-01-14 2018-06-21 Ge Video Compression Llc Entropi kodlama şeması.
US8751565B1 (en) 2011-02-08 2014-06-10 Google Inc. Components for web-based configurable pipeline media processing
US8681866B1 (en) 2011-04-28 2014-03-25 Google Inc. Method and apparatus for encoding video by downsampling frame resolution
US9106787B1 (en) 2011-05-09 2015-08-11 Google Inc. Apparatus and method for media transmission bandwidth control using bandwidth estimation
US8661323B2 (en) * 2011-05-09 2014-02-25 Google Inc. Method and apparatus for generating packet mask
CN102325003B (zh) * 2011-07-14 2014-02-12 海能达通信股份有限公司 数据错误检测的方法及设备
US8856624B1 (en) 2011-10-27 2014-10-07 Google Inc. Method and apparatus for dynamically generating error correction
US9490850B1 (en) 2011-11-28 2016-11-08 Google Inc. Method and apparatus for decoding packetized data
US9185429B1 (en) 2012-04-30 2015-11-10 Google Inc. Video encoding and decoding using un-equal error protection
US10034023B1 (en) 2012-07-30 2018-07-24 Google Llc Extended protection of digital video streams
US9172740B1 (en) 2013-01-15 2015-10-27 Google Inc. Adjustable buffer remote access
US9311692B1 (en) 2013-01-25 2016-04-12 Google Inc. Scalable buffer remote access
US9225979B1 (en) 2013-01-30 2015-12-29 Google Inc. Remote access encoding
US20160286011A1 (en) * 2015-03-26 2016-09-29 Assaf Kasher Techniques for communicating an end of packet indicator
CN111064546B (zh) * 2019-12-10 2022-05-31 卡斯柯信号有限公司 一种基于crc实现信息位与冗余编码安全转换的方法
US11706150B2 (en) * 2021-04-06 2023-07-18 Apple Inc. Data encoding and packet sharing in a parallel communication interface

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5251215A (en) 1992-01-13 1993-10-05 At&T Bell Laboratories Modifying check codes in data packet transmission
JP3029738B2 (ja) 1992-06-30 2000-04-04 富士電機株式会社 複数ブロック化伝送フレームの誤り検出方法
US5473607A (en) * 1993-08-09 1995-12-05 Grand Junction Networks, Inc. Packet filtering for data networks
US6192498B1 (en) * 1997-10-01 2001-02-20 Globepan, Inc. System and method for generating error checking data in a communications system
US7185266B2 (en) * 2003-02-12 2007-02-27 Alacritech, Inc. Network interface device for error detection using partial CRCS of variable length message portions
US6405340B1 (en) * 1999-07-02 2002-06-11 Ericsson Inc. Flexible method of error protection in communications systems
US6519737B1 (en) 2000-03-07 2003-02-11 International Business Machines Corporation Computing the CRC bits at a time for data whose length in bits is not a multiple of M
GB2360177B (en) * 2000-03-07 2003-08-06 3Com Corp Fast frame error checker for multiple byte digital data frames
JP2002141809A (ja) * 2000-10-31 2002-05-17 Ando Electric Co Ltd Crc符号演算回路、及びcrc符号演算方法
US20020104058A1 (en) * 2000-12-06 2002-08-01 Yigal Rappaport Packet switched network having error correction capabilities of variable size data packets and a method thereof
US6701478B1 (en) * 2000-12-22 2004-03-02 Nortel Networks Limited System and method to generate a CRC (cyclic redundancy check) value using a plurality of CRC generators operating in parallel
US6915473B2 (en) 2001-05-14 2005-07-05 Interdigital Technology Corporation Method and system for implicit user equipment identification
JP3546959B2 (ja) * 2001-05-31 2004-07-28 日本電気株式会社 Crc演算装置
JP3554715B2 (ja) * 2001-07-31 2004-08-18 アンリツ株式会社 誤り検出装置
US6928608B2 (en) * 2001-08-14 2005-08-09 Optix Networks Ltd. Apparatus and method for accelerating cyclic redundancy check calculations
WO2003030407A1 (en) * 2001-09-29 2003-04-10 Lg Electronics Inc. Method for transferring and /or receiving data in communication system and apparatus thereof
WO2003049308A1 (en) * 2001-12-05 2003-06-12 Lg Electronics Inc. Error detection code generating method and error detection code generator
US6968492B1 (en) * 2002-03-28 2005-11-22 Annadurai Andy P Hardware-efficient CRC generator for high speed communication networks
US20030223417A1 (en) * 2002-06-04 2003-12-04 Masashi Higashida Method of processing data packets
US7243289B1 (en) * 2003-01-25 2007-07-10 Novell, Inc. Method and system for efficiently computing cyclic redundancy checks
US7010469B2 (en) * 2003-09-30 2006-03-07 International Business Machines Corporation Method of computing partial CRCs
US7543214B2 (en) * 2004-02-13 2009-06-02 Marvell International Ltd. Method and system for performing CRC
US7266760B1 (en) * 2004-09-30 2007-09-04 Altera Corporation Method and apparatus for calculating cyclic redundancy checks for variable length packets
EP1659727B1 (en) * 2004-11-19 2015-03-25 ATI International SRL Iterative decoding of packet data
EP1710940A1 (de) 2005-04-06 2006-10-11 Siemens Aktiengesellschaft Erkennung von Fehlern bei der Übermittlung von Daten
WO2007126196A1 (en) * 2006-04-29 2007-11-08 Lg Electronics Inc. Digital broadcasting system and method of processing data
US7500170B2 (en) 2006-08-14 2009-03-03 Motorola, Inc. Method and apparatus for error detection in a data block
KR101286238B1 (ko) * 2007-08-01 2013-07-15 삼성전자주식회사 데이터 병렬화 수신기
US7853857B2 (en) 2007-09-14 2010-12-14 Motorola Mobility, Inc. Multi-layer cyclic redundancy check code in wireless communication system
US8555148B2 (en) 2007-09-18 2013-10-08 Samsung Electronics Co., Ltd. Methods and apparatus to generate multiple CRCs
US8234551B2 (en) 2007-11-02 2012-07-31 Broadcom Corporation Single CRC polynomial for both turbo code block CRC and transport block CRC
DE102008012523A1 (de) * 2008-03-04 2009-09-10 Lufthansa Technik Ag Falttisch
EP2129028B1 (en) * 2008-05-06 2012-10-17 Alcatel Lucent Recovery of transmission errorrs
ATE531153T1 (de) * 2008-05-06 2011-11-15 Alcatel Lucent Wiederherstellung von übertragungsfehlern
US8495477B2 (en) * 2010-02-11 2013-07-23 Lg Electronics Inc. Digital broadcasting system and method for transmitting and receiving digital broadcast signal
US8341504B2 (en) * 2010-03-11 2012-12-25 Microsoft Corporation Fast and reliable wireless communication
US8578240B1 (en) * 2011-01-21 2013-11-05 Juniper Networks, Inc. CRC computation for packet length not multiple of data path width
US8671333B2 (en) * 2011-06-29 2014-03-11 Lsi Corporation Adaptive encoding and decoding for error protected packet-based frames

Also Published As

Publication number Publication date
WO2011056932A3 (en) 2011-10-27
US20150039977A1 (en) 2015-02-05
US8892983B2 (en) 2014-11-18
KR20120062019A (ko) 2012-06-13
JP2014180025A (ja) 2014-09-25
JP2013510514A (ja) 2013-03-21
JP5717748B2 (ja) 2015-05-13
CN102771074A (zh) 2012-11-07
US20100153828A1 (en) 2010-06-17
EP2497217A2 (en) 2012-09-12
KR101354288B1 (ko) 2014-01-23
WO2011056932A2 (en) 2011-05-12
CN102771074B (zh) 2015-08-19
EP2497217A4 (en) 2013-05-01

Similar Documents

Publication Publication Date Title
JP6382569B2 (ja) 通信システム内での誤り検出の方法および装置
JP2013510514A5 (ja)
JP3610329B2 (ja) 大最小距離を用いたターボ符号化方法及びそれを実現するシステム
US6530057B1 (en) High speed generation and checking of cyclic redundancy check values
JP3549788B2 (ja) 多段符号化方法、多段復号方法、多段符号化装置、多段復号装置およびこれらを用いた情報伝送システム
US5440570A (en) Real-time binary BCH decoder
US7246294B2 (en) Method for iterative hard-decision forward error correction decoding
US8312362B1 (en) Determining data transmission error and/or checking or confirming such error determinations
JP4764973B2 (ja) Crc値の算出装置
US7502988B2 (en) Decoding and error correction for algebraic geometric codes
SE469051B (sv) Metod foer att detektera kanaltillhoerigheten foer ett antal kanaler i ett mobilradiosystem
US7539918B2 (en) System and method for generating cyclic codes for error control in digital communications
KR20060125837A (ko) 데이터를 인코딩하기 위한 방법 및 장치
US7231575B2 (en) Apparatus for iterative hard-decision forward error correction decoding
WO2020072323A1 (en) Burst error tolerant decoder and related systems, methods and devices
JPH0575479A (ja) データ流における誤りの識別、補正修整回路装置
US7360142B1 (en) Methods, architectures, circuits, software and systems for CRC determination
EP0660535B1 (en) Apparatus for uniformly correcting erasure and error of received word by using a common polynomial
US7170946B2 (en) System and method for reviving catastrophic codes
JP2003078421A (ja) 符号系列の先頭位置検出方法とその装置、それを用いた復号方法とその装置
JP4379329B2 (ja) Crc生成多項式の選択方法、crc符号化方法およびcrc符号化回路
Buerner et al. On a high-speed Reed-Solomon codec architecture for 43 Gb/s optical transmission systems
US9032277B1 (en) Parallel low and asymmetric rate Reed Solomon coding
KR102105188B1 (ko) 코드 레이트 변경에 따른 송신 프레임 전송 방법 및 장치, 및 수신 방법 및 장치
CN113068046A (zh) Mpeg-2同步字节解码器中伴随式的并行产生装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150313

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150319

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150619

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150918

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160216

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20160516

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20161213

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180802

R150 Certificate of patent or registration of utility model

Ref document number: 6382569

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees