JPH087700B2 - 巡回冗長検査符号生成の方法および装置 - Google Patents
巡回冗長検査符号生成の方法および装置Info
- Publication number
- JPH087700B2 JPH087700B2 JP3284176A JP28417691A JPH087700B2 JP H087700 B2 JPH087700 B2 JP H087700B2 JP 3284176 A JP3284176 A JP 3284176A JP 28417691 A JP28417691 A JP 28417691A JP H087700 B2 JPH087700 B2 JP H087700B2
- Authority
- JP
- Japan
- Prior art keywords
- crc
- codeword
- preliminary
- prescribed
- message
- 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
Links
- 238000000034 method Methods 0.000 title claims description 22
- 125000004122 cyclic group Chemical group 0.000 title claims description 5
- 230000005540 biological transmission Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 101100258315 Neurospora crassa (strain ATCC 24698 / 74-OR23-1A / CBS 708.71 / DSM 1257 / FGSC 987) crc-1 gene Proteins 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
- H03M13/091—Parallel or block-wise CRC computation
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6575—Implementations based on combinatorial logic, e.g. Boolean circuits
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Description
【0001】
【産業上の利用分野】本発明は、符号語の生成に関し、
さらに詳細には、CRC(巡回冗長検査)符号語の生成
に関する。
さらに詳細には、CRC(巡回冗長検査)符号語の生成
に関する。
【0002】
【従来の技術】CRC符号語は、直列的にも並列的にも
生成される。「高い」ビット速度の通信網では、CRC
符号語を並列的に生成する方が望ましい。CRC符号語
を並列的に生成する周知の従来の装置は、たとえ可能で
あるとしても実用的に実現するには困難であるような複
雑な回路構造を用いる必要があった。この実現上の困難
さは、CRC符号語の生成に一般に用いられるCRC生
成多項式の形式によるものである。一般に、CRC生成
多項式は、(1+x)f(x)という形式である。因子
(1+x)のために、従来の並列CRC符号語生成装置
に対し手にあまる複雑さが導入される。これは、従来の
装置ではCRC生成多項式全体による除算を1段階で行
うことによってCRC符号語が生成されたからである。
このような除算をハードウェア設計で実現することは極
めて困難である。
生成される。「高い」ビット速度の通信網では、CRC
符号語を並列的に生成する方が望ましい。CRC符号語
を並列的に生成する周知の従来の装置は、たとえ可能で
あるとしても実用的に実現するには困難であるような複
雑な回路構造を用いる必要があった。この実現上の困難
さは、CRC符号語の生成に一般に用いられるCRC生
成多項式の形式によるものである。一般に、CRC生成
多項式は、(1+x)f(x)という形式である。因子
(1+x)のために、従来の並列CRC符号語生成装置
に対し手にあまる複雑さが導入される。これは、従来の
装置ではCRC生成多項式全体による除算を1段階で行
うことによってCRC符号語が生成されたからである。
このような除算をハードウェア設計で実現することは極
めて困難である。
【0003】
【発明が解決しようとする課題】発明が解決しようとす
る課題は、(1+x)・f(x)という形式のCRC生
成多項式を用いてCRCコードを効率的に生成する方法
および装置を与えることである。
る課題は、(1+x)・f(x)という形式のCRC生
成多項式を用いてCRCコードを効率的に生成する方法
および装置を与えることである。
【0004】
【課題を解決するための手段】従来の並列CRC符号語
生成装置に関する問題は、本発明に従い(1+x)f
(x)という形式のCRC生成多項式を用いる2段階処理
において全体的なCRC符号語を生成することによっ
て、解決できる。第1段階は、f(x)に相当する予備段
階のCRC符号語の生成を含む。第2段階は、(1+
x)に相当する項の生成を含む。これらの2つの段階
は、独立に並行して同時に行われる。これらの2つの段
階が完了すると、全体的なCRC符号語を生成するため
に、予備段階のCRC符号語および(1+x)に相当す
る項が規定の要領で結合される。
生成装置に関する問題は、本発明に従い(1+x)f
(x)という形式のCRC生成多項式を用いる2段階処理
において全体的なCRC符号語を生成することによっ
て、解決できる。第1段階は、f(x)に相当する予備段
階のCRC符号語の生成を含む。第2段階は、(1+
x)に相当する項の生成を含む。これらの2つの段階
は、独立に並行して同時に行われる。これらの2つの段
階が完了すると、全体的なCRC符号語を生成するため
に、予備段階のCRC符号語および(1+x)に相当す
る項が規定の要領で結合される。
【0005】さらに詳細には、(1+x)に相当する項
を巧みに利用してf(x)に相当する予備段階のCRC符
号語を規定の要領で修正することによって、全体的なC
RC符号語が得られる。(1+x)に相当する項は、
(0)状態または(1)状態の何れかである。この項が
0状態の場合、予備段階のCRC符号語を第1の規定の
要領で修正することによって、すなわち、f(x)に相当
する予備段階のCRC符号語のビットを左に1回シフト
することによって、全体的なCRC符号語を得る。前記
の項が1状態の場合、予備段階のCRC符号語を第2の
規定の要領で修正することによって、すなわち、f(x)
に相当する予備段階のCRC符号語のビットを左に1回
シフトし、さらにそのシフトした予備段階のCRC符号
語にf(x)を加えることによって、全体的なCRC符号
語を得る。
を巧みに利用してf(x)に相当する予備段階のCRC符
号語を規定の要領で修正することによって、全体的なC
RC符号語が得られる。(1+x)に相当する項は、
(0)状態または(1)状態の何れかである。この項が
0状態の場合、予備段階のCRC符号語を第1の規定の
要領で修正することによって、すなわち、f(x)に相当
する予備段階のCRC符号語のビットを左に1回シフト
することによって、全体的なCRC符号語を得る。前記
の項が1状態の場合、予備段階のCRC符号語を第2の
規定の要領で修正することによって、すなわち、f(x)
に相当する予備段階のCRC符号語のビットを左に1回
シフトし、さらにそのシフトした予備段階のCRC符号
語にf(x)を加えることによって、全体的なCRC符号
語を得る。
【0006】
【実施例】論理的説明 以下において、CRC符号の性質を簡単に振り返ってみ
る。CRC符号は、ビット列が0および1のみの係数を
有する多項式の表現として扱われるという点で、多項式
符号である。nビットのメッセージは、xn-1からx0に
わたるn項を有する1つの多項式に対する係数のリスト
であると見なされる。代数分野の理論の法則によって、
多項式演算は2を法として行われる。従って、加算も減
算も、ともに排他的論理和演算と同じである。
る。CRC符号は、ビット列が0および1のみの係数を
有する多項式の表現として扱われるという点で、多項式
符号である。nビットのメッセージは、xn-1からx0に
わたるn項を有する1つの多項式に対する係数のリスト
であると見なされる。代数分野の理論の法則によって、
多項式演算は2を法として行われる。従って、加算も減
算も、ともに排他的論理和演算と同じである。
【0007】以下において、CRCフィールドを含むメ
ッセージの長さをnとし、生成多項式をG(x)で表し、
G(x)の次数をrと仮定する。
ッセージの長さをnとし、生成多項式をG(x)で表し、
G(x)の次数をrと仮定する。
【0008】(x+1)が生成多項式G(x)を割り切る
ことができ、かつG(x)がxとnまでの任意のkに対す
る(xk+1)とを割り切ることができない場合、ゼロ
でない正当な多項式のハミングの重み(Hamming weigh
t)は、少なくとも4である。これにより、ハミングの
距離4を与えることができるCRC符号の生成多項式を
見つける方法が与えられる。
ことができ、かつG(x)がxとnまでの任意のkに対す
る(xk+1)とを割り切ることができない場合、ゼロ
でない正当な多項式のハミングの重み(Hamming weigh
t)は、少なくとも4である。これにより、ハミングの
距離4を与えることができるCRC符号の生成多項式を
見つける方法が与えられる。
【0009】次の多項式は、CRC−10、CRC−1
2、およびCRC−16に対して、それぞれ国際標準と
なったものである。
2、およびCRC−16に対して、それぞれ国際標準と
なったものである。
【数1】 これらの多項式は、すべて(1+x)・f(x)という形
式である。ただし、f(x)は、原始多項式である。関数
(1+x)は、ハミングの距離4を与える生成多項式に
おける因子である。本発明の実施において他の多項式も
同様に使用できることは明かである。
式である。ただし、f(x)は、原始多項式である。関数
(1+x)は、ハミングの距離4を与える生成多項式に
おける因子である。本発明の実施において他の多項式も
同様に使用できることは明かである。
【0010】前記のような多項式に特に適し、かつ本発
明により並列式に非常に簡単に実施することを可能とす
るCRC符号語生成の方法および装置を説明する。多項
式g(x)を多項式h(x)によって割ったときに得られる
剰余を表すのに
明により並列式に非常に簡単に実施することを可能とす
るCRC符号語生成の方法および装置を説明する。多項
式g(x)を多項式h(x)によって割ったときに得られる
剰余を表すのに
【数2】 という表記を用いる。
【0011】CRC生成多項式G(x)が次式で表される
とする。 G(x)=(1+x)f(x) (4) CRC符号を求めるメッセージ多項式をM(x)とし、検
査ビットの数(すなわち、G(x)の次数)をrとする
と、f(x)の次数はr−1である。
とする。 G(x)=(1+x)f(x) (4) CRC符号を求めるメッセージ多項式をM(x)とし、検
査ビットの数(すなわち、G(x)の次数)をrとする
と、f(x)の次数はr−1である。
【0012】次に、次式によって与えられる剰余R(x)
を求める。
を求める。
【数3】 剰余R'は、次のように定義される。
【数4】 換言すれば、f(x)が生成多項式であるとき、すなわ
ち、R'(x)がf(x)に相当する予備段階のCRC符号
語であるとき、R'(x)は、M(x)に対するCRC符号
である。
ち、R'(x)がf(x)に相当する予備段階のCRC符号
語であるとき、R'(x)は、M(x)に対するCRC符号
である。
【0013】式(6)は、次のように書くことができ
る。 xr-1M(x)=Q'(x)・f(x)+R'(x) (7) ただし、Q'(x)は、商の多項式である。次に、(1+
x)に相当する項が、次のように定義される。
る。 xr-1M(x)=Q'(x)・f(x)+R'(x) (7) ただし、Q'(x)は、商の多項式である。次に、(1+
x)に相当する項が、次のように定義される。
【数5】 つまり、R"(x)は、Q'(x)を(1+x)で割ったとき
に得られる剰余である。式(8)は、次のように書くこ
とができる。 Q'(x)=Q"(x)・(1+x)+R"(x) (9) ただし、Q"(x)は、適切な商多項式である。式(9)
を式(7)に代入し、全体にxを乗じると、 xrM(x)=x・Q"(x)・(1+x)・f(x)+x・R"(x)・f(x)+x・R'(x) (10) となる。剰余演算子は線形であるから、式(10)の全
体を(1+x)f(x)で割ると、次のようになる。
に得られる剰余である。式(8)は、次のように書くこ
とができる。 Q'(x)=Q"(x)・(1+x)+R"(x) (9) ただし、Q"(x)は、適切な商多項式である。式(9)
を式(7)に代入し、全体にxを乗じると、 xrM(x)=x・Q"(x)・(1+x)・f(x)+x・R"(x)・f(x)+x・R'(x) (10) となる。剰余演算子は線形であるから、式(10)の全
体を(1+x)f(x)で割ると、次のようになる。
【数6】 これは、式(10)の右辺の第1項が剰余0を与えるか
らである。ここで、R"(x)は、0次であるから、x・R"
(x)・f(x)はr次である。(1+x)f(x)の次数はrで
ある。従って、剰余
らである。ここで、R"(x)は、0次であるから、x・R"
(x)・f(x)はr次である。(1+x)f(x)の次数はrで
ある。従って、剰余
【数7】 を生成するには、1回は除算が必要である。R"(x)
は、0次であるから、2つの値、すなわち0または1の
何れかをとることができる。項R"(x)が0の場合、こ
の剰余は0である。項R"(x)が1ならば、剰余
は、0次であるから、2つの値、すなわち0または1の
何れかをとることができる。項R"(x)が0の場合、こ
の剰余は0である。項R"(x)が1ならば、剰余
【数8】 を生成するだけでよく、その結果はf(x)である。
【0014】式(11)の右辺の第2項については、
R'(x)がr−2次であるから、xR'(x)はr−1次で
ある。分母はr次である。従って、結果はxR'(x)で
ある。これには、R'(x)のビットの左へのシフトを伴
うに過ぎない。所望の最終的な結果は、次のようにな
る。 f(x)+x・R'(x) (R"(x)=1の場合) R(x)={ (12) x・R'(x) (R"(x)=0の場合)
R'(x)がr−2次であるから、xR'(x)はr−1次で
ある。分母はr次である。従って、結果はxR'(x)で
ある。これには、R'(x)のビットの左へのシフトを伴
うに過ぎない。所望の最終的な結果は、次のようにな
る。 f(x)+x・R'(x) (R"(x)=1の場合) R(x)={ (12) x・R'(x) (R"(x)=0の場合)
【0015】全体的なCRC符号の生成には、2つの段
階が伴う。すなわち、生成多項式としてf(x)を有する
M(x)の予備段階のCRC符号であるR'(x)の生成、
および(1+x)に相当する項R"(x)の生成である。
これらの2つの段階が終了すると、本発明により、式
(12)を用いることによって、所望の全体的なCRC
符号、すなわち、剰余R(x)を非常に簡単に得ることが
できる。
階が伴う。すなわち、生成多項式としてf(x)を有する
M(x)の予備段階のCRC符号であるR'(x)の生成、
および(1+x)に相当する項R"(x)の生成である。
これらの2つの段階が終了すると、本発明により、式
(12)を用いることによって、所望の全体的なCRC
符号、すなわち、剰余R(x)を非常に簡単に得ることが
できる。
【0016】以下において、R'(x)およびR"(x)の並
行的生成を説明する。例として、16ビットの実施例を
用いる。しかし、勿論、結果は、バイト・ベースでも3
2ビット・ベースでも他の任意の実施例に拡張すること
ができる。
行的生成を説明する。例として、16ビットの実施例を
用いる。しかし、勿論、結果は、バイト・ベースでも3
2ビット・ベースでも他の任意の実施例に拡張すること
ができる。
【0017】M(x)が次の多項式表現を有するものとす
る。
る。
【数9】 ただし、kは、メッセージの長さである。式(13)
は、次のように書ける。
は、次のように書ける。
【数10】 式(14)にxr-1を掛けて、次式を得る。
【数11】 B-1=0 を境界条件として、次の漸化式を定義する。
【数12】 式(17)の定義より、
【数13】 従って、式(16)は、次のように書ける。 xr-1・M(x)=A0・xr-1+Bk-2 (19) 次のようにri(x)を帰納的に定義する。
【数14】 境界条件はr-1(x)=0である。式(20)の代わり
に、次のように表現できる。 Ak-1-i・xr-1+x16・ri-1(x)=f(x)・Ci(x)+ri(x) (21) ただし、Ci(x)は、適当な商多項式である。
に、次のように表現できる。 Ak-1-i・xr-1+x16・ri-1(x)=f(x)・Ci(x)+ri(x) (21) ただし、Ci(x)は、適当な商多項式である。
【0018】式(21)を式(17)に代入して、次式
を得る。 B0=x16・r0(x)+x16・f(x)・C0(x) (22) 式(22)および式(21)を式(17)に代入して、
次式を得る。 B1=x16・r1(x)+x16・f(x)[C1(x)+x16 ・C0(x)] (23) 式(17)の帰納的処理を実行すると、次のようにな
る。
を得る。 B0=x16・r0(x)+x16・f(x)・C0(x) (22) 式(22)および式(21)を式(17)に代入して、
次式を得る。 B1=x16・r1(x)+x16・f(x)[C1(x)+x16 ・C0(x)] (23) 式(17)の帰納的処理を実行すると、次のようにな
る。
【数15】 式(24)を式(19)に入れると、
【数16】 となる。剰余演算子は、線形である。
【0019】式(25)をf(x)で割ると、
【数17】 となる。これは、式(25)の右辺の第2項が、剰余0
を生じるからである。また、
を生じるからである。また、
【数18】 ただし、Q'は、既に定義したように、式(26)にお
ける除算によって生成される商である。次の漸化式でD
i(x)を定義する。 Di(x)=x16[Ci(x)+Di-1(x)] (28) この境界条件は、 D-1=0 である。式(28)の帰納的処理を実行すると、次のよ
うになる。 Q'(x)=Ck-1(x)+Dk-2(x) (29) 次のようにti(x)を定義する。
ける除算によって生成される商である。次の漸化式でD
i(x)を定義する。 Di(x)=x16[Ci(x)+Di-1(x)] (28) この境界条件は、 D-1=0 である。式(28)の帰納的処理を実行すると、次のよ
うになる。 Q'(x)=Ck-1(x)+Dk-2(x) (29) 次のようにti(x)を定義する。
【数19】 境界条件は、 t-1=0 である。式(30)は、代わりに次のように書くことが
できる。 Ci(x)+x16・ti-1(x)=(1+x)Ei(x)+ti(x) (31) ただし、Ei(x)は、商多項式である。式(31)を式
(28)に代入し、帰納的処理を実行して式(29)と
結合すると、次式を得る。
できる。 Ci(x)+x16・ti-1(x)=(1+x)Ei(x)+ti(x) (31) ただし、Ei(x)は、商多項式である。式(31)を式
(28)に代入し、帰納的処理を実行して式(29)と
結合すると、次式を得る。
【数20】 式(32)全体を(1+x)によって割り、剰余が線形
演算子であるという事実を用いて、次式を得る。
演算子であるという事実を用いて、次式を得る。
【数21】
【0020】全面的実施に到るために、式(26)の
R'(x)を帰納的に求め、式(33)のR"(x)を帰納的
に求める。
R'(x)を帰納的に求め、式(33)のR"(x)を帰納的
に求める。
【0021】R'(x)の生成に伴う重要な段階は、式
(20)によって指定される帰納処理である。f(x)は
r−1次であるから、ri-1はr−2次である。従っ
て、x16・ri-1は、14+r次である。Ak-1-iは15
次であるから、Ak-1-i(xr-1)も14+rである。f
(x)による除算の実行にブロック除算回路を使用すれ
ば、剰余が帰還され、到来する16ビットに加えられ
る。
(20)によって指定される帰納処理である。f(x)は
r−1次であるから、ri-1はr−2次である。従っ
て、x16・ri-1は、14+r次である。Ak-1-iは15
次であるから、Ak-1-i(xr-1)も14+rである。f
(x)による除算の実行にブロック除算回路を使用すれ
ば、剰余が帰還され、到来する16ビットに加えられ
る。
【0022】R"(x)を生成するのに重要な段階は、式
(30)によって与えられる。ここで、ti-1は0次で
あり、x16ti-1は16次である。Ci(x)は15次であ
る。まず、一般的な多項式に対するCi(x)を生成し、
(1+x)による除算をブロック除算回路によって行
う。
(30)によって与えられる。ここで、ti-1は0次で
あり、x16ti-1は16次である。Ci(x)は15次であ
る。まず、一般的な多項式に対するCi(x)を生成し、
(1+x)による除算をブロック除算回路によって行
う。
【0023】この実施および本発明の技術的利点は、f
(x)に相当する予備段階のCRC符号および(1+x)
に相当する項が互いに完全に独立して同時並列的に生成
されることである。
(x)に相当する予備段階のCRC符号および(1+x)
に相当する項が互いに完全に独立して同時並列的に生成
されることである。
【0024】典型的な実施例 以下において、本発明の実施例を、次のCRC符号生成
多項式について説明する。 G(x)=(1+x2+x15+x17+x30+x31) =(1+x)(1+x+x15+x16+x30) (34)
多項式について説明する。 G(x)=(1+x2+x15+x17+x30+x31) =(1+x)(1+x+x15+x16+x30) (34)
【0025】図1において、(1+x)f(x)という形
式の生成多項式を用いてCRC符号R'(x)が並行して
生成される。同図には、メッセージ源101、予備段階
CRC符号語R'(x)生成器102、R"(x)項生成器1
03、および結合論理回路104が示されている。メッ
セージ源101には、CRC符号R(x)が生成される対
象であるメッセージM(x)を得るために伝送路100な
どへのインタフェースをとる装置も含まれる。メッセー
ジM(x)の所定のビット長Aiのブロックが、メッセー
ジ源101から予備段階CRC符号R'(x)生成器10
2およびR"(x)項生成器103の両方に供給される。
この例では、Aiビットの各ブロックは、16ビットを
並列に含んでいるが、これは本発明の範囲を制限するも
のではない。予備段階CRC符号R'(x)生成器102
は、供給されたメッセージM(x)のAiビットのブロッ
クに応答して、理論的説明において既に述べたような要
領で、すなわち、式(26)に従って、f(x)に相当す
るCRC符号R'(x)を生成する。また、R"(x)項生成
器103は、供給されるAiビットのブロックに応答し
て、同様に理論的説明において既に述べたように、すな
わち、式(33)に従って、項R"(x)を生成する。
尚、R'(x)およびR"(x)が出力として供給されるの
は、CRC符号R(x)が生成されている対象のメッセー
ジM(x)全体のビットAiのブロックが生成器102お
よび103の両方にすべて入力された後であるという点
に注意を要する。その後、結合論理回路104が、理論
的説明において既に述べたように、すなわち、式(1
2)に従って、R'(x)およびR"(x)を結合して所望の
CRC符号語R(x)を与える。尚、CRC符号生成多項
式である式(34)については、R'(x)が29次、R"
(x)が1次、そしてR(x)が30次である。さらに、生
成器103で生成されているR"(x)項とは独立して、
予備段階のCRC符号R'(x)が生成器102において
生成される。
式の生成多項式を用いてCRC符号R'(x)が並行して
生成される。同図には、メッセージ源101、予備段階
CRC符号語R'(x)生成器102、R"(x)項生成器1
03、および結合論理回路104が示されている。メッ
セージ源101には、CRC符号R(x)が生成される対
象であるメッセージM(x)を得るために伝送路100な
どへのインタフェースをとる装置も含まれる。メッセー
ジM(x)の所定のビット長Aiのブロックが、メッセー
ジ源101から予備段階CRC符号R'(x)生成器10
2およびR"(x)項生成器103の両方に供給される。
この例では、Aiビットの各ブロックは、16ビットを
並列に含んでいるが、これは本発明の範囲を制限するも
のではない。予備段階CRC符号R'(x)生成器102
は、供給されたメッセージM(x)のAiビットのブロッ
クに応答して、理論的説明において既に述べたような要
領で、すなわち、式(26)に従って、f(x)に相当す
るCRC符号R'(x)を生成する。また、R"(x)項生成
器103は、供給されるAiビットのブロックに応答し
て、同様に理論的説明において既に述べたように、すな
わち、式(33)に従って、項R"(x)を生成する。
尚、R'(x)およびR"(x)が出力として供給されるの
は、CRC符号R(x)が生成されている対象のメッセー
ジM(x)全体のビットAiのブロックが生成器102お
よび103の両方にすべて入力された後であるという点
に注意を要する。その後、結合論理回路104が、理論
的説明において既に述べたように、すなわち、式(1
2)に従って、R'(x)およびR"(x)を結合して所望の
CRC符号語R(x)を与える。尚、CRC符号生成多項
式である式(34)については、R'(x)が29次、R"
(x)が1次、そしてR(x)が30次である。さらに、生
成器103で生成されているR"(x)項とは独立して、
予備段階のCRC符号R'(x)が生成器102において
生成される。
【0026】図2に示したように、メッセージM(x)の
Aiビットの各ブロックにおけるビットa(i-16)x0〜a
(i-1)x15が、対応する複数の排他的ORゲートへと供
給され、さらにレジスタ201の各段へと供給される。
この例におけるレジスタ201は、16段のシフト・レ
ジスタである。レジスタ201からの出力は、別の排他
的ORゲートにおいて結合されて、レジスタ202に供
給される。この例では、レジスタ202も、AからNま
での段を備えたシフト・レジスタである。レジスタ20
1および202は、すべての段がゼロ(0)状態となる
ように初期化される。尚、レジスタ201および202
からの出力は、組合わさって予備段階のCRC符号R'
(x)を形成するが、説明を明晰にするために図示してい
ない。レジスタ201および202からの出力は、図3
において、メッセージM(x)のAiビットのすべてのブ
ロックが処理された後に、出力制御302の制御下で可
制御スイッチ301を通る出力として供給されるように
示してある。尚、+記号を円で囲んだ記号は、排他的O
Rゲートを表し、レジスタの段または排他的ORゲート
に入る矢印は、入力を表し、レジスタ段または排他的O
Rゲートから出る矢印は、出力を表す。
Aiビットの各ブロックにおけるビットa(i-16)x0〜a
(i-1)x15が、対応する複数の排他的ORゲートへと供
給され、さらにレジスタ201の各段へと供給される。
この例におけるレジスタ201は、16段のシフト・レ
ジスタである。レジスタ201からの出力は、別の排他
的ORゲートにおいて結合されて、レジスタ202に供
給される。この例では、レジスタ202も、AからNま
での段を備えたシフト・レジスタである。レジスタ20
1および202は、すべての段がゼロ(0)状態となる
ように初期化される。尚、レジスタ201および202
からの出力は、組合わさって予備段階のCRC符号R'
(x)を形成するが、説明を明晰にするために図示してい
ない。レジスタ201および202からの出力は、図3
において、メッセージM(x)のAiビットのすべてのブ
ロックが処理された後に、出力制御302の制御下で可
制御スイッチ301を通る出力として供給されるように
示してある。尚、+記号を円で囲んだ記号は、排他的O
Rゲートを表し、レジスタの段または排他的ORゲート
に入る矢印は、入力を表し、レジスタ段または排他的O
Rゲートから出る矢印は、出力を表す。
【0027】図4は、図1のR"(x)項生成器103に
おいて利用するのに好都合な構造の1つの略ブロック図
である。メッセージM(x)のAiビットの各ブロックに
おけるビットa(i-16)x0〜a(i-1)x15が、レジスタ4
01の段0〜15にそれぞれ供給される。レジスタ40
1は、各段がゼロ(0)状態となるように初期化され
る。レジスタ401の段0〜13および15および16
の出力は、図のように排他的ORゲートによって結合さ
れる。メッセージM(x)のすべてのブロックAiを処理
した後で排他的ORをとった最終的な結果が、レジスタ
401の段16に入力として供給される。レジスタ40
1の段16からの出力が、所望の項R"(x)であり、メ
ッセージM(x)のAiビットのすべてのブロックが処理
された後に、出力制御403の制御下で可制御スイッチ
402を介して出力として供給される。既に指摘したよ
うに、+記号を円で囲んだ記号は、排他的ORゲートを
表し、レジスタの段または排他的ORゲートに入る矢印
は、入力を表し、レジスタ段または排他的ORゲートか
ら出る矢印は、出力を表す。
おいて利用するのに好都合な構造の1つの略ブロック図
である。メッセージM(x)のAiビットの各ブロックに
おけるビットa(i-16)x0〜a(i-1)x15が、レジスタ4
01の段0〜15にそれぞれ供給される。レジスタ40
1は、各段がゼロ(0)状態となるように初期化され
る。レジスタ401の段0〜13および15および16
の出力は、図のように排他的ORゲートによって結合さ
れる。メッセージM(x)のすべてのブロックAiを処理
した後で排他的ORをとった最終的な結果が、レジスタ
401の段16に入力として供給される。レジスタ40
1の段16からの出力が、所望の項R"(x)であり、メ
ッセージM(x)のAiビットのすべてのブロックが処理
された後に、出力制御403の制御下で可制御スイッチ
402を介して出力として供給される。既に指摘したよ
うに、+記号を円で囲んだ記号は、排他的ORゲートを
表し、レジスタの段または排他的ORゲートに入る矢印
は、入力を表し、レジスタ段または排他的ORゲートか
ら出る矢印は、出力を表す。
【0028】図5において、結合論理回路は、既に示し
たように式(12)の条件を満たすように動作する。つ
まり、R"(x)がゼロならば、R'(x)のビットを左に1
回シフトすることによって、所望のCRC符号R(x)が
得られる。R"(x)が1ならば、R'(x)のビットを左に
1回シフトし、さらにシフトしたR'(x)に関数f(x)
を加えることによって、所望のCRC符号R(x)が得ら
れる。
たように式(12)の条件を満たすように動作する。つ
まり、R"(x)がゼロならば、R'(x)のビットを左に1
回シフトすることによって、所望のCRC符号R(x)が
得られる。R"(x)が1ならば、R'(x)のビットを左に
1回シフトし、さらにシフトしたR'(x)に関数f(x)
を加えることによって、所望のCRC符号R(x)が得ら
れる。
【0029】以上の説明は、本発明の一実施例に関する
もので、この技術分野の当業者であれば、本発明の種々
の変形例が考えられるが、それらはいずれも本発明の技
術的範囲に包含される。
もので、この技術分野の当業者であれば、本発明の種々
の変形例が考えられるが、それらはいずれも本発明の技
術的範囲に包含される。
【0030】
【発明の効果】以上述べたように、本発明によれば、C
RC符号を効率的に生成することができる。
RC符号を効率的に生成することができる。
【図1】CRC符号語を並列に生成する構造の略ブロッ
ク図である。
ク図である。
【図2】f(x)に相当する予備段階のCRC符号語を並
列に生成する構造の略ブロック図である。
列に生成する構造の略ブロック図である。
【図3】図2の予備段階のCRC符号語生成器102の
出力を略ブロック図の形に表した図である。
出力を略ブロック図の形に表した図である。
【図4】(1+x)に相当する項を生成する構造の略ブ
ロック図である。
ロック図である。
【図5】図1の結合論理回路ユニットの関数を図式的に
表す図である。
表す図である。
101 メッセージ源 102 予備段階CRC符号R'(x)生成器 103 R"(x)項生成器 104 結合論理回路
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平1−265332(JP,A) 特開 昭58−72253(JP,A) 特開 昭57−68944(JP,A) 特開 昭57−25046(JP,A)
Claims (14)
- 【請求項1】 メッセージM(x)の並列ビットAiのブ
ロックを得るために伝送路へのインタフェースをとるス
テップと、 メッセージM(x)のビットAiの前記ブロックに応答し
て、巡回冗長検査(CRC)符号生成多項式としてf
(x)を用いて予備段階のCRC符号語を生成するステッ
プと、 メッセージM(x)のビットAiの前記ブロックに応答し
て、(1+x)に相当する項を生成するステップと、 全体的なCRC符号語を得るために、前記の生成された
(1+x)に相当する項に応じて前記の予備段階CRC
符号語を規定の要領で修正するステップを備えて、 メッセージM(x)について、(1+x)f(x)という形
式のCRC生成多項式を用いて全体的なCRC符号語を
並列的に生成することを特徴とする巡回冗長検査符号生
成の方法。 - 【請求項2】 前記の予備段階CRC符号語および(1
+x)に相当する項を生成する両ステップが独立して同
時に実行されることを特徴とする請求項1の方法。 - 【請求項3】 生成中の(1+x)に相当する項が、第
1の規定の状態または第2の規定の状態の何れかを有す
ることを特徴とする請求項2の方法。 - 【請求項4】 前記の修正するステップが、 前記の(1+x)に相当する項が前記第1の規定の状態
を有するなら、前記の予備段階のCRC符号語を第1の
規定の方法で修正し、前記の(1+x)に相当する項が
前記第2の規定の状態を有するなら、前記の予備段階の
CRC符号語を第2の規定の方法で修正することを含む
ことを特徴とする請求項3の方法。 - 【請求項5】 前記第1の規定の状態が論理0であり、
前記第2の規定の状態が論理1であり、前記の予備段階
のCRC符号語を修正する前記第1の規定の方法が、前
記規定の状態が論理0ならば前記の予備段階のCRC符
号語のビットを左に1回シフトすることからなり、前記
の予備段階のCRC符号語を修正する前記第2の規定の
方法が、前記規定の状態が論理1ならば前記の予備段階
のCRC符号語のビットを左に1回シフトし、かつシフ
トされた予備段階のCRC符号語にf(x)を加えること
からなることを特徴とする請求項4の方法。 - 【請求項6】 「A/B」がA÷Bの剰余を表すものと
し、R'(x)が予備段階のCRC符号語であり、M(x)
が全体的なCRC符号語を生成する対象のメッセージで
あり、rがCRC生成多項式の次数であり、かつ(r−
1)がf(x)の次数である場合、前記の予備段階のCR
C符号語が、R'(x)=「xr-1M(x)/f(x)」に従っ
て生成されることを特徴とする請求項5の方法。 - 【請求項7】 R"(x)が(1+x)に相当する項であ
り、かつQ'(x)が前記メッセージM(x)から得た商多
項式である場合、前記の(1+x)に相当する項が、
R"(x)=「Q'(x)/(1+x)」に従って生成される
ことを特徴とする請求項6の方法。 - 【請求項8】 メッセージM(x)の並列ビットAiのブ
ロックを得るために伝送路へのインタフェースをとる手
段と、 メッセージM(x)のビットAiの前記ブロックに応答し
て、CRC生成多項式としてf(x)を用いて予備段階の
CRC符号語を生成する手段と、 メッセージM(x)のビットAiの前記ブロックに応答し
て、(1+x)に相当する項を生成する手段と、 全体的なCRC符号語を得るために、前記の生成された
(1+x)に相当する項に応じて前記の予備段階CRC
符号語を規定の要領で修正する手段を備えて、 メッセージM(x)について、(1+x)f(x)という形
式のCRC生成多項式を用いて全体的なCRC符号語を
並列的に生成することを特徴とする巡回冗長検査符号生
成装置。 - 【請求項9】 前記の予備段階のCRC符号語を生成す
る手段および前記の(1+x)に相当する項を生成する
手段が、前記の予備段階のCRC符号語および前記の
(1+x)に相当する項を独立して同時に生成すること
を特徴とする請求項8の装置。 - 【請求項10】 生成中の(1+x)に相当する項が、
第1の規定の状態または第2の規定の状態の何れかを有
することを特徴とする請求項9の装置。 - 【請求項11】 前記の修正する手段が、 前記の(1+x)に相当する項が前記第1の規定の状態
を有する場合に前記の予備段階のCRC符号語を第1の
規定の方法で修正する手段と、前記の(1+x)に相当
する項が前記第2の規定の状態を有する場合に前記の予
備段階のCRC符号語を第2の規定の方法で修正する手
段とを含むことを特徴とする請求項10の装置。 - 【請求項12】 前記第1の規定の状態が論理0であ
り、前記第2の規定の状態が論理1であり、前記の予備
段階のCRC符号語を修正する前記第1の規定の方法
が、前記規定の状態が論理0ならば前記の予備段階のC
RC符号語のビットを左に1回シフトすることからな
り、前記の予備段階のCRC符号語を修正する前記第2
の規定の方法が、前記規定の状態が論理1ならば前記の
予備段階のCRC符号語のビットを左に1回シフトし、
かつシフトされた予備段階のCRC符号語にf(x)を加
えることからなることを特徴とする請求項11の装置。 - 【請求項13】 「A/B」がA÷Bの剰余を表すもの
とし、R'(x)が予備段階のCRC符号語であり、M
(x)が全体的なCRC符号語を生成する対象のメッセー
ジであり、rがCRC生成多項式の次数であり、かつ
(r−1)がf(x)の次数である場合、前記の予備段階
のCRC符号語を生成する前記手段が、前記の予備段階
のCRC符号語をR'(x)=「xr-1M(x)/f(x)」に
従って生成する手段を含むことを特徴とする請求項12
の装置。 - 【請求項14】 R"(x)が(1+x)に相当する項で
あり、かつQ'(x)が前記メッセージM(x)から得た商
多項式である場合、前記の(1+x)に相当する項を生
成する手段が、前記の(1+x)に相当する項をR"
(x)=「Q'(x)/(1+x)」に従って生成する手段
を含むことを特徴とする請求項14の装置。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US59589990A | 1990-10-11 | 1990-10-11 | |
| US595899 | 1990-10-11 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH05127934A JPH05127934A (ja) | 1993-05-25 |
| JPH087700B2 true JPH087700B2 (ja) | 1996-01-29 |
Family
ID=24385167
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP3284176A Expired - Fee Related JPH087700B2 (ja) | 1990-10-11 | 1991-10-04 | 巡回冗長検査符号生成の方法および装置 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US5282214A (ja) |
| EP (1) | EP0480621B1 (ja) |
| JP (1) | JPH087700B2 (ja) |
| CA (1) | CA2050123C (ja) |
| DE (1) | DE69117857T2 (ja) |
Families Citing this family (22)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2821324B2 (ja) * | 1992-11-04 | 1998-11-05 | 三菱電機株式会社 | 誤り訂正回路 |
| US5390196A (en) * | 1992-11-12 | 1995-02-14 | Bull Hn Information Systems Inc. | Byte-wise determination of a checksum from a CRC-32 polynomial |
| JP3000811B2 (ja) * | 1993-01-25 | 2000-01-17 | 日本電気株式会社 | 巡回符号化およびcrc装置とその処理方法 |
| GB9312135D0 (en) * | 1993-06-11 | 1993-07-28 | Inmos Ltd | Generation of checking data |
| GB9312136D0 (en) * | 1993-06-11 | 1993-07-28 | Inmos Ltd | Transmission of messages |
| KR950009690B1 (ko) * | 1993-09-14 | 1995-08-26 | 재단법인한국전자통신연구소 | 순환 여유검사(crc) 동기 장치 |
| US5878057A (en) * | 1995-10-06 | 1999-03-02 | Tektronix, Inc. | Highly parallel cyclic redundancy code generator |
| US5805614A (en) * | 1996-07-03 | 1998-09-08 | General Signal Corporation | Fault tolerant switch fabric with control and data correction by hamming codes |
| US5812556A (en) * | 1996-07-03 | 1998-09-22 | General Signal Corporation | Fault tolerant switch fabric with control and data correction by hamming codes and error inducing check register |
| US5796733A (en) * | 1996-07-03 | 1998-08-18 | General Signal Corporation | Time division switching system |
| GB2321374A (en) * | 1997-01-21 | 1998-07-22 | Ico Services Ltd | Spread spectrum satellite communication |
| US6006354A (en) * | 1997-02-12 | 1999-12-21 | Stmicroelectronics, Inc. | Security device for a video digital to analog converter |
| DE69731074T2 (de) * | 1997-04-30 | 2005-10-06 | Hewlett-Packard Development Co., L.P., Houston | Anordnung und Verfahren zur Übertragung von Daten über eine Vielzahl von Kanälen |
| DE19838865C2 (de) * | 1998-08-26 | 2001-03-01 | Ericsson Telefon Ab L M | Parallele CRC Erzeugungsschaltung zum Erzeugen eines CRC Codes und Verfahren zum Generieren einer derartigen Schaltung |
| US6519738B1 (en) * | 2000-03-07 | 2003-02-11 | International Business Machines Corporation | Method and apparatus for high-speed CRC computation based on state-variable transformation |
| US6766493B1 (en) | 2000-12-21 | 2004-07-20 | Cisco Technology, Inc. | Method and apparatus for generating and checking cyclic redundancy code (CRC) values using a CRC generator and binary galois field multiplier |
| US6609225B1 (en) * | 2000-12-21 | 2003-08-19 | Cisco Technology, Inc. | Method and apparatus for generating and checking cyclic redundancy code (CRC) values using a multi-byte CRC generator on a variable number of bytes |
| GB2383725A (en) * | 2001-12-27 | 2003-07-02 | Ubinetics Ltd | Data decoding with Cyclic Redundancy Check |
| US7458006B2 (en) * | 2002-02-22 | 2008-11-25 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Methods for computing the CRC of a message from the incremental CRCs of composite sub-messages |
| US7225387B2 (en) * | 2004-02-03 | 2007-05-29 | International Business Machines Corporation | Multilevel parallel CRC generation and checking circuit |
| US8438265B2 (en) * | 2004-11-04 | 2013-05-07 | International Business Machines Corporation | Method of offloading iSCSI PDU corruption-detection digest generation from a host processing unit, and related iSCSI offload engine |
| JP4935787B2 (ja) * | 2008-09-12 | 2012-05-23 | 日本電気株式会社 | 巡回符号演算処理回路 |
Family Cites Families (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3805232A (en) * | 1972-01-24 | 1974-04-16 | Honeywell Inf Systems | Encoder/decoder for code words of variable length |
| US3775746A (en) * | 1972-05-19 | 1973-11-27 | Ibm | Method and apparatus for detecting odd numbers of errors and burst errors of less than a predetermined length in scrambled digital sequences |
| US4312068A (en) * | 1976-08-12 | 1982-01-19 | Honeywell Information Systems Inc. | Parallel generation of serial cyclic redundancy check |
| JPS58147807A (ja) * | 1982-02-26 | 1983-09-02 | Toshiba Corp | 誤り訂正回路 |
| US4454600A (en) * | 1982-08-25 | 1984-06-12 | Ael Microtel Limited | Parallel cyclic redundancy checking circuit |
| US4498174A (en) * | 1982-08-25 | 1985-02-05 | Ael Microtel Limited | Parallel cyclic redundancy checking circuit |
| US4677623A (en) * | 1983-11-11 | 1987-06-30 | Hitachi, Ltd. | Decoding method and apparatus for cyclic codes |
| US4593393A (en) * | 1984-02-06 | 1986-06-03 | Motorola, Inc. | Quasi parallel cyclic redundancy checker |
| US4809273A (en) * | 1987-01-29 | 1989-02-28 | International Business Machines Corporation | Device for verifying operation of a checking code generator |
| US4890286A (en) * | 1987-12-11 | 1989-12-26 | Sanyo Electric Co., Ltd. | Method and apparatus for decoding error correcting code |
| US5121396A (en) * | 1988-10-27 | 1992-06-09 | International Business Machines Corp. | Preservation of crc integrity upon intentional data alteration during message transmission |
| US5111463A (en) * | 1989-11-09 | 1992-05-05 | Exabyte Corporation | Error correction method and apparatus |
| US5103451A (en) * | 1990-01-29 | 1992-04-07 | Motorola, Inc. | Parallel cyclic redundancy check circuit |
-
1991
- 1991-08-29 CA CA002050123A patent/CA2050123C/en not_active Expired - Fee Related
- 1991-10-02 DE DE69117857T patent/DE69117857T2/de not_active Expired - Fee Related
- 1991-10-02 EP EP91309021A patent/EP0480621B1/en not_active Expired - Lifetime
- 1991-10-04 JP JP3284176A patent/JPH087700B2/ja not_active Expired - Fee Related
-
1993
- 1993-03-01 US US08/026,236 patent/US5282214A/en not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| JPH05127934A (ja) | 1993-05-25 |
| DE69117857D1 (de) | 1996-04-18 |
| EP0480621A2 (en) | 1992-04-15 |
| US5282214A (en) | 1994-01-25 |
| EP0480621A3 (en) | 1992-05-13 |
| EP0480621B1 (en) | 1996-03-13 |
| CA2050123A1 (en) | 1992-04-12 |
| CA2050123C (en) | 1997-12-09 |
| DE69117857T2 (de) | 1996-08-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH087700B2 (ja) | 巡回冗長検査符号生成の方法および装置 | |
| KR900006666B1 (ko) | 유한체상의 승산기 | |
| EP0114938B1 (en) | On-the-fly multibyte error correction | |
| US6467063B1 (en) | Reed Solomon coding apparatus and Reed Solomon coding method | |
| US4797848A (en) | Pipelined bit-serial Galois Field multiplier | |
| JP4777258B2 (ja) | ガロア体乗算のためのルックアップテーブルを使用するリード・ソロモン符号の符号化および復号化 | |
| JPH09507110A (ja) | 有限体反転 | |
| US4994995A (en) | Bit-serial division method and apparatus | |
| JPH10135848A (ja) | リードソロモン符号化装置およびその方法 | |
| JP3354025B2 (ja) | エラー位置多項式の計算方法およびその装置 | |
| US6295626B1 (en) | Symbol based algorithm for hardware implementation of cyclic redundancy check | |
| US6751773B2 (en) | Coding apparatus capable of high speed operation | |
| JPH11296347A (ja) | ガロワ体乗算器及びガロワ体乗算の方法 | |
| US6895545B2 (en) | System and method for generating cyclic codes for error control in digital communications | |
| CN108809323B (zh) | 循环冗余校验码的生成方法和装置 | |
| US5971607A (en) | Polynomial evaluator for use in a Reed-Solomon decoder | |
| TWI226758B (en) | Encoding method and apparatus for cross interleaved cyclic codes | |
| US6484192B1 (en) | Root finding method and root finding circuit of quadratic polynomial over finite field | |
| JPH06314978A (ja) | チェン・サーチ回路 | |
| JP4057876B2 (ja) | ガロア体掛け算器の制御方法 | |
| JPH06230991A (ja) | 有限体での任意元素の逆数算出方法及び装置 | |
| JP2591611B2 (ja) | t重誤り訂正符号の符号化復号化回路 | |
| JPH1196030A (ja) | 有限体上の乗算方法及び乗算回路 | |
| JPH1065553A (ja) | リードソロモン復号化器用多項式評価装置 | |
| JP2710176B2 (ja) | 誤り位置及び誤りパターン導出回路 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| LAPS | Cancellation because of no payment of annual fees |