明 細 書
誤り検出符号化及び復号装置並びに除算装置 技術分野
本発明は、誤り検出符号化及ぴ復号装置並びに除算装置に係わり、特に、入力デ ータ列の誤り検出用パリティ ビッ トを生成して該データ列に付加する誤り検出符 号化装置およびパリティ ビッ 卜が付加された入力.データ列に誤り検出処理を施し て入力データ列の誤り を検出する誤り検出復号装置並びにこれら誤り検出符号化 及ぴ復号装置に使用できる除算装置に関する。
背景技術
誤り検出符号は、 移動通信、 F A X、 銀行のキャ ッシュデイ スペンサ等、 デー タ通信を行う際にデータを誤りなく伝送することが要求されるシステムに、 ある いは、 磁気ディスク、 C Dなどの大容量データ保存を行う際にデータを誤り なく 読み出すこ とが要求されるシステムに適用される。 また、誤り検出'符号は、通常、 誤り訂正符号と併用され、 誤り訂正で完全に訂正できなかった誤り の検出を行う ためのもので、誤り を検出すれば再送制御や再読み出し制御などが行われる。
' 誤り検出を適用したシステム
図 4 2 は誤り検出を適用したシステムの構成例である。送信側 1において、誤り 検出符号化部 1 bは、 情報生成部 1 a が生成した所定ビッ ト長のデータ列に誤り 検出符号化処理を施し、誤り訂正符号化部 1 cは畳み込み符号化あるいはターボ 符号化処理などによ り入力データ列を誤り訂正符号化して通信路 2を介して受信 側 3 に送信する。受信側 3において、 誤り訂正復号部 3 a は入力した符号化デー タ列を誤り訂正復号処理によ り復号し、 復号データ列を誤り検出復号部 3 b に入 力する。誤り検出復号部 3 bは復号データ列に誤り検出復号処理を施して誤りの 有無を検出し、誤りが有れば送信側に再送要求信号 RRQ を送出する。情報抽出部 3 cは誤りが無ければデータを抽出して出力する。以下、巡回符号による誤り検出 である CRC(Cyclic Redundancy Check)について説明する。
• CRC
CRCは、簡単に言う と、送信側で、所定ビッ ト長のデータ列を多項式に見立てて これを誤り検出符号生成用の多項式 (生成多項式) で除算し、 余りが 0 となるよ
う に符号化する。受信側では、受信データ列を多項式に見立ててこれを送信側と同 一の生成多項式で除算し、 余りが◦であれば誤り無し、余りが 0 でなければ誤り 有り と判定する。
すなわち、 送信側では、 k ビッ トの情報を多項式と見なして K(x)と し、 該多項 式 Κ(χ)を生成多項式 G(x)で除算して剰余が 0 となるよ うにパリティ ビッ トを付 加する。 たとえば、 生成多項式 G(x) を 16 ビッ ト と し、
x"K(x) ÷ G(x) = Q(x) あま り R(x)
であれば、
を符号語とする。ここで χΐ6Κ(χ)は k ビッ トのデータ列の低次側に 16 ビッ トの" 0" を付加したデータ列を意味する。
受信側では、 この符号語 W(x)に誤り E(x)が付加された (X) = W(x)+E(x)を 受信すると、 W' (X)を G(x)で除算し、 その剰余が 0であれば誤り なし、 0以外で あれば誤り あり と検出する。 具体的には、
W (X) / G(x)
を演算し、 割り切れるかどうかを検出する。
以下、 32bitのオール " 1 " の信号を
生成多項式 G(X) =X16 + X12 + X5+1
で誤り検出符号化、 復号化を行う場合について示す。
- CRC演算装置
図 4 3は生成多項式 G(x) =χΐ 6+χΐ 2+ χ5+ι と した場合の CRC演算装置の第 1、第 2の構成例である。
①第 1の CRC演算装置
図 4 3 (Α)は通常の CRC演算装置、 すなわち、 G(x) =χΐ6+χΐ2+χ5+1 と したとき の除算器の例である。この CRC演算装置は、 1 6段のシフ 卜レジスタ SR と、 0 ビ ッ ト位置、 5 ビッ 卜位置、 12 ビッ 卜位置の入力側に設けられ、前段の出力データ と ブイ一ドパックデータの排他的論理和演算を行う排他的論理和回路 (Exclusive OR 回路) EORl〜EOR 3 と、 15 ビッ ト位置の出力側に設けられたスィ ッチ SW で構成されている。
スィ ッチ SW をフィー ドパック側(A 側)に切り替えた状態でデータ列 χΐ6Κ(χ) を高次から 1 ビッ 卜づっ EOR1に入力することで除算を行う ことができる。 すな わち、 誤り検出符号化において、 符号化する前のデータ列 K(X)を例えば 32 ビッ ト とすれば χΐ6Κ(χ)は 48 ビッ トになり、 この 48 ビッ トのデータ列を高次よ り シ フ 卜 レジスタ SRを動作させながら入力する。 48 ビッ 卜入力し終わったときのレ ジスタ SRの中身が剰余 R(x)となるため、 これをパリティ ビッ トと して K(x)の低 次側に付加して W(x)と して出力する。
誤り検出復号に際して、 W' (X)が 48 ビッ トであれば、 図 4 3 (A)と同一構成の CRC演算装置の EOR1 にシフ ト レジスタ SRを動作させながら高次より 48 ビッ 卜の信号を入力する。 48 ビッ ト入力し終わったと きのレジスタ SRの中身が剰余 R(x)となるため、 これが全て " 0 " であれば誤り無しと判定し、 1つでも " 0 " でなければ誤り あり と判定する。
②第 2の GRC演算装置
図 43(B)は、図 43(A)のデータ入力位置を修正することで演算回数を少なく した CRC 演算装置 (G(x)
と したときの除算器)であり、 データ入力用 の EOR 1 の位置が左端から右端に移動している。データ入力は図 2(A)の場合と同 様に、 デ一タ列の高次側から 1 ビッ トづっ EOR1 に入力することで除算を行う。 図 2(A)と比べて EOR1 の位置を左端から右端に移動させただけだが、 これは入力 データ列に
χ ΐ
6 を乗算しながら入力しているのに等しい。 すなわち、 シフ ト レジ スタ SRを動作させながら高次より 32 ビッ トのデータ列 Κ(χ)を EOR1に入力す れば、 32 ビッ 卜のデータ列 Κ(χ)を入力し終わったときのレジスタ SRの中身が剰 余 R(x)となるため、 該剰余 R(x)をパリテイ ビッ 卜(16 ビッ ト)と して K(x)の低次 側に付加して W(x)と して出力する。
誤り検出復号に際して、入力データ列 (X)がパリティ ビッ 卜付きの 48 ビッ ト(低次側の 16 ビッ トがパリティ ビッ ト)であれば、 図 4 3 ( B )と同一構成の CRC 演算装置の EOR1 にシフ トレジスタ SRを動作させながら高次より 32 ビッ トの データ列を入力する。 32 ビッ ト入力し終わったときのレジスタ SRの中身は剰余 となるため、 この剰余と残り 16 ビッ トのパリティ と比較し、 完全一致であれば 誤り無しと判定し、完全一致しない場合には誤り あり と判定する。これにより、 演
算回数を 32回と少なくすることができる。
又、以下のよ う に誤り検出復号を行う こ と もできる。すなわち、 入力データ列 W (X)がパリティ ビッ ト付きの 48ビッ ト(低次側の 16ビッ トがパリティ ビッ ト) であれば、 図 43 (B)と同一構成の CRC演算装置の EOR1にシフ トレジスタ SR を動作させながら高次よ り 48 ビッ トのデータ列を全て入力する。 この場合、 シ フ トレジスタ SRの中身が全て " 0 " であれば誤り無しと判定し、全て " 0 " でな ければ、 誤り あ り と判定する。なお、 この誤り検出復号方式におけるレジスタ SR の中身は剰余でなく 、 一致検出の結果を示している。
• 符号器の従来例
図 43(B)の CRC演算装置において、初期状態時、 シフ ト レジスタ SRの値を全 て" 0"にする。スィ ツチ SWを A側にして 1ビッ トづっデータ列 K(x)を EOR1に 順次入力する。 全てのデータ列を入力し終わったときのレジスタ値 R(x)が G(x) の剰余、 すなわち余り となる。 ここでスィ ツチ SW を B側に倒してレジスタ SR の値 R(x)を出力することでパリティビッ トを得ることができる。
32ビッ トのオール" Γ"のデータ列 K(x)を生成多項式 G(x)
で CRC 符号化する例を示す。 32ビッ ト入力し終えたときのシフ ト レジスタ SRの値 R(x) をパリティ ビッ ト とする。 この場合、 Κ(χ)、 χΐ6 K(x)、 R(x)、 W(x)以下に示すよ うになる。
K(x) = Χ31+Χ30 + Χ29 + Χ28+ , · , +χ2 + χ1 + 1
X1·6 Κ(χ) = Χ 7 + Χ46 + Χ45+Χ + · · · +χ18 + χ17+χ16
R(x) = χ15 + χ12 + χΠ + χ8 + χ7 + χ6 + χ3 + χ2 + χ+1
= (χ47+χ46+χ45+χ44+ ... +χ18+χ17+χ16 + ( ΐ 5 + χ12 + χ 11 +χ8+χ7+χ6+χ3+χ2+χ+ 1 ) 図 44はデータ列 χΐ6 Κ(χ) における高次側 32ビッ 卜のオール "1 "のデータ列を 1クロ ックで 1 ビッ 卜づっ図 43 (Β)の EOR1に入力したときのレジスタ SRの內 容を示すもので、 32 ビッ 卜入力し終えたと きのシフ ト レジスタ SRの値 R(x)がパ リティ ビッ トになる。
* 復号器の第 1従来例 (一致検出復号方法)
図 43 (B)の CRC演算装置において、初期状態時、 レジスタ SRの値を全て" 0"
にする。スィ ッチ SWを A側にして入力データ列 W(x)' のうちパリティ ビッ トを 除いた情報ビッ 卜のみを順次入力する。 情報ビッ 卜のみを入力し終わったと きの レジスタ SR の値と、 入力データ列の残りのビッ トであるパリティ ビッ ト との一 致検出を行う。 一致であれば誤りなし、 一致しなければ誤りあり と判定する。 図 4 5は、 32bit のオール" のデータ列に 16bit のパリティビッ トが付カロ'され た符号化データを、 1 クロックで 1 ビッ トづっ髙次側より図 4 3 (B)の EOR1に入 力したときのレジスタ SRの内容を示すものである。符号化データを 32 ビッ ト入 力し終えたときのシフ 卜 レジスタ SR,の値 R1と入力データ列の残り 16ビッ ト(パ リティ ビッ ト) P 1 とが一致しているかによ り誤り検出を行う。以上のように、演算 されたパリティ と入力データ列に付加されているパリティ とが一致しているか否 かによ り 、誤り検出する復号方法を一致検出復号方法という。
- 復号器の第 2従来例(オール" 0"検出復号方法)
図 4 3 ( B )の CRC演算装置において、初期状態時、 レジスタ SRの値を全て" 0 "にする。 スィ ッチ SWを A側にして入力データ列 W(x)' の情報ビッ トを順次 入力し、 続いてパリティ ビッ トを入力する。 パリティ ビッ トを入力し終わったと きのレジスタ SR の値が全て 0であるか否かをチェック し、全て 0であれば誤り なし、 一つでも 1 があれば誤りあり と判定する。
図 4 6 は、 32bit のオール" Γのデータ列に 16bit のパリティ ビッ トが付加され た符号化データを、 1 クロ ックで 1 ビッ トづっ高次側より図 4 3 (B)の EOR1に入 力したときのレジスタ SRの内容を示すものである。符号化データ 32 ビッ ト及ぴ パリティ 16ビッ トを入力し終えたときのシフ ト レジスタ SRの値が全て 0である か否かをチェック し、全て 0であれば誤り なし、一つでも 1があれば誤りあり と判 定する。 以上のよ う に、全て" 0"であれば誤りなし、 一つでも" Γがあれば誤り有り と判定する復号方法をオール" 0"検出復号方法という。
図 4 4〜図 4 6 に示すよ うに CRC演算では、 少なく とも情報ビッ ト長の演算が 必要となる。 すなわち、 図 4 4〜図 4 6 の誤り検出符号器及び復号器では、 少な く とも 32 クロ ック必要になる。 と ころで、 第 4世代 (新世代) の移動通信シス テムは総務省によれば、 最大情報レー トを 100Mbps以上(無線 LANは lGbps以 上)にする と言われている。 情報レー ト 100Mbpsの信号の場合、 CRC演算するに
は 100MHzのク ロ ックが必要になる。 この場合でも CRC誤り検出だけで 1パケ ッ ト長遅延することになる。 これに更に再送制御を考慮すると再送信号要求生成 に時間を要するため、 データ伝送速度の著しい低下につながる。
又、 CRC 演算を低速クロック、 例えば 25MHz とすれば CRC演算器が 4っ必 要になる。 CRC演算器はもと もと小規模なのでハ一 ドウ ァ規模は問題にならな いが、 演算遅延が 4パケッ ト長になるため、 再送まで考えるとデータ伝送速度が 大き く低下する。 図 4 7にかかる場合における受信側のタイムチャー トを示す。 バケツ ト #1を受信してそれが NGであった場合に、再送要求するのはパ.ケッ ト #7 以降になることがわかる。 なお、 CRC演算が高速に行われていればそれ以前に再 送要求を行う ことができる。
又、情報レー ト iGbpsであれば、 100Mbpsのクロ ックで動作する CRC演算回 路を 10個使用したと しても、 CRC演算による遅延は 10バケツ ト長となり、 再送 制御は現実的でない。
以上よ り本発明の目的は、 CRC演算に要する時間を短縮することである。
本発明の別の目的は、再送制御する場合でもパケッ トの遅延時間を短くするこ とである。
発明の開示
本発明の第 1 は、誤り検出符号化処理によ りパリティ ビッ トを作成し、該パリテ イ ビッ トを入力データ列に付加して符号化する誤り検出符号化装置である。 この 誤り検出符号化装置において、 データ分割手段は誤り検出符号化対象の入力デー タ列を複数に分割し、 除算手段は分割したサブデータ列を生成多項式で除算して その剰余を演算し、変換手段は前記剰余毎に、サブデータ列の分割位置に応じた変 換処理を該剰余に施し、 合成手段は前記変換処理によ り得られた各変換値を合成 してパリティ ビッ トを出力する。 本発明の誤り検出符号化処理によれば、 データ 分割手段によ りデータ列を n分割する ものとすれば、 CRC 演算(パリティ ビッ ト 演算)に要する時間を略 1 / nに短縮することができる。
本発明の第 2、第 3は、パリティ ビッ トが付加された入力データ列に誤り検出処 理を施して入力データ列の誤り を検出する誤り検出復号装置である。
第 2の発明の誤り検出復号装置において、 データ分割手段は入力データ列を複
数に分割し、 除算手段は分割したサブデータ列を生成多項式で除算してその剰余 を演算し、変換手段は前記剰余毎に、サブデータ列の分割位置に応じた変換処理を 該剰余に施し、合成手段は前記変換処理によ り得られた各変換値を合成してパリ ティ ビッ トを出力し、 誤り検出部は該パリティ ビッ トと入力データに付加されて いるパリティ ビッ 卜が一致しているか否かにより入力データの誤りの有無を検出 する。
第 3の発明の誤り検出復号装置において、 データ分割手段はパリティ ビッ トを 含めて入力データ列を複数に分割し、除算手段は分割したサブデータ列を所定の 生成多項式で除算してその剰余を演算し、変換手段は前記剰余毎に、サブデータ列 の分割位置に応じた変換処理を該剰余に施し、合成部は前記変換処理によ り得ら れた各変換値を合成し、誤り検出部は合成結果が全ビッ ト " 0 "であるか否かによ り入力データの誤りの有無を検出する。
第 2、第 3 の誤り検出復号装置によれば、データ分割手段によりデータ列を n分 割するものとすれば、 CRC 演算(パリテイ ビッ ト演算)に要する時間を略 1 に 短縮するこ と'ができ、誤り検出を短時間で行う ことができる。 又、再送制御する場 合でもパケッ トの遅延時間を短くすることができる。
第 4 の発明は、 K ビッ 卜の入力データ列を第 1 の多項式と見立てて第 2の多項 式で除算してその剰^を演算する除算装置である。この除算装置において、データ 分割手段は入力データ列を複数に分割し、除算手段は分割したサブデータ列毎に、 サブデータ列の情報ビッ トを多項式と見立てて前記第 2の多項式で除算してその 剰余を演算し、変換手段は前記剰余毎に、サブデータ列の分割位置に応じた変換処 理を該剰余に施し、合成部は前記変換処理によ り得られた各変換値を合成し、合成 結果を Kビッ トの入力データ列を前記第 2の多項式で除算したときの剰余とする- この除算装置によれば、データ分割手段によ りデータ列を η分割するものとすれ ば除算時間を、 略 1 Ζ ηに短縮することができる。
図面の簡単な説明
図 1 は本発明の誤り検出符号器のプロック構成図ある。
図 2は CRC演算装置において、 1ビッ トシフ 卜を行う 16 X 16の行列の説明図で
図 3は 2 ビッ 卜シフ 卜行列 A 2 (= A X A) 及び 4 ビッ トシブ ト行列 A 4 ( = A X A 2) の説明図である。
図 4は 8 ビッ トシフ 卜 ί亍歹 ij A 8 ( = A4 X A4) 及び 1 6 ビッ トシフ ト行列 A w (= A 8 X A 8) の説明図である。
図 5は 24ビッ トビッ トシフ ト行列 A 24 ( = A16X A 8) の説明図である。
図 6 は 32ビッ トシフ ト行列 A32 ( = Α2 χ A8) 及ぴ 40ビッ トシフ ト行列 A« ( = Α32 χ A8) の説明図である。
図 7は CRC演算装置と 8 ビッ トシフ ト装置の接続構成図である。
図 8は CRC演算装置と 16 ビッ トシフ ト装置の接続構成図である。
図 9は CRC演算装置と 24ビッ トシフ ト装置の接続構成図である。
図 1 0は誤り検出符号器の第 1の動作説明図である。
図 1 1 は誤り検出符号器の第 2の動作説明図である。
図 1 2は誤り検出符号器の第 3の動作説明図である。
図 1 3は誤り検出符号器の第 4の動作説明図である。
図 1 4は誤り検出符号器の第 5の動作説明図である。
図 1 5は本発明の誤り検出復号器のプロ ック構成図である。
図 1 6 は誤り検出復号器の第 1の動作説明図である。
図 1 7は誤り検出復号器の第 2の動作説明図である。
図 1 8は誤り検出復号器の第 3の動作説明図である。
図 1 9は誤り検出復号器の第 4の動作説明図である。
図 2 0は誤り検出復号器の第 5の動作説明図である。
図 2 1 は本発明の別の誤り検出復号器のプロック構成図である。
図 2 2は誤り検出復号器の第 1の動作説明図である。
図 2 3は誤り検出復号器の第 2の動作説明図である。
図 2 4は誤り検出復号器の第 3の動作説明図である。 ■ 図 2 5は誤り検出復号器の第 4の動作説明図である。
図 2 6は誤り検出復号器の第 5の動作説明図である。
図 2 7は誤り検出復号器の第 6の動作説明図である。
図 2 8は誤り検出復号器の第 7の動作説明図である。
図 2 9は本発明の利点説明図である。
図 3 0は第 1実施例である誤り検出符号器の構成図である。
図 3 1 は第 2実施例である誤り検出復号器の構成図である。
図 3 2は第 3実施例である誤り検出復号器の構成図である。
図 3 3は第 4実施例の誤り検出復号器の構成図である。
図 3 4は第 5実施例の誤り検出復号器の構成図である。
図 3 5は第 6実施例の誤り検出復号器の構成図である。
図 3 6は第 7実施例の誤り検出復号器の構成図である。
図 3 7はシステム全体の構成図及びデータ処理説明図である。
図 3 8は第 7実施例の適用例である誤り検出復号器の構成図である。
図 3 9は第 8実施例の誤り検出復号器の構成図である。
図 4 0はデータ処理説明図である。
図 4 1 は第 8実施例の誤り検出復号器の別の構成図である。
図 4 2は誤り検出を適用したシステムの構成例である。
図 4 3は生成多項式 G(x) =χΐδ+χ ΐ2+χε+1 と した場合の CRC演算装置の第 1、第 2の構成例である。
図 4 4は誤り検出符号器の動作説明図である。
図 4 5は一致検出復号方法説明図である。
図 4 6はオール" 0"検出復号方法説明図である。
図 4 7は従来の問題点説明図である。
発明を実施するための最良の形態
( Α ) 本発明の概略
( a ) 本発明の原理
受信語 W'(x)を生成多項式 G(x) ( =χ16+Χ12+χ5+ΐ) で除算したどきの剰余すなわ ちパリ ティ ビッ トは以下のよ うに求めることができる。受信語 W'(x)を 32Tbitとし 例えば、 8bitづっ
W' (x) = χ24Α( ) + χΐ6Β(χ) + x8C(x) + D(x)
に分割し、 該受信語 W'(x)を G(x)で除算する。 除算式を
W' (x)/ G(x)= X2* A(x)/ G(x) + xi6B(x)/ G(x) + x8C(x)/ G(x) + D(x)/ G(x)
と表現し、
A(x)/G(x), B(x)/G(x), C(x)ZG(x)、 D(x)/G(x),
を演算し、 それぞれの剰余を順に
RA(X) RB(X)、 RC(X)、 RD(X)、
とする。 次に
©RA(X) から x'MA ZG x)の剰余 RA'(x)を演算し、
② RB(X)から xisB(x)/G(x)の剰余 RB'(X)を演算し、
③ Rc(x)から x8C(x)/G(x)の剰余 Rc'(x)を演算し、
④ RD(X) = RD'(X)とする。
RA' (X), RB' (X), Re' (x) , RD' (x)が求まれば次式
RA' (X) + RB' (X) + Rc' (x) + RD' (X)
によ り、 受信語 W'(x)を生成多項式 G(x)で除算したときの剰余すなわちパリティ ビッ 卜が求まる。
RA(X)
から RA'(X)の演算は以下のよ う にして行う。 RA'(X)は
X2 A( )/ G(x)の剰余であり、 X24A(X)の 3次以下の係数は 0である。従って、 RA(X)
( = A(x)/G(x)) から RA'(X)の変換は、 まず、 図 43 (B) の CRC演算装置に A(x) を入力して RA(X)を演算し (I (x)はシフ ト レジスタ SRに記憶される) 、ついで、 CRC演算装置の入力を 24 ビッ トオール" 0"と してシフ トレジスタ SRを 24回シ フ トすれば、該シフ トレジスタの中身が RA'(x)となる。 しかし、 実際に 24回シフ 卜する とそれだけ演算時間を要するため、 後述するよ うにそれと等価な処理を行 う ことで演算時間を削減する。 尚、以下では Nビッ 卜の" 0"入力によるシフ ト レジ スタ SR のシフ 卜動作を単に Nビッ トシフ 卜あるいは Nビッ トシフ 卜処理とい う。
同様に、 RB(X) ( = B(X)/G(X)) から RB'(X)の変換は、 図 43 (B) の CRC演算 装置に B(x)を入力して RB(X)を演算し(RB(X)はシフ トレジスタ SRに記憶される)、 ついで、シフ ト レジスタ SRを 16 ビッ トシフ トすれば該シフ ト レジスタの中身が RB'(X)となる。
又、 Rc(x)(=C(x)ZG(x)) から Rc'(x)の変換は、 図 43 (B) の CRC演算装置に C(x)を入力して Rc(x〉を演算し (Rc(x)はシフ トレジスタ SRに記億される)、 つい
で、シフ 卜 レジスタ SRを 8 ビッ トシフ トすれば該シフ トレジスタの中身が RG' (X) となる。
( ) 誤り検出符号器
図 1 は誤り検出符号化対象が 32 ビッ トのデ一タ列 b0〜b31 と した場合の本発 明の誤り検出符号器のブロ ック構成図である。 入力データ分割部 11は、 32 ビッ 卜の入力データ歹 U b0~b31 を 8 ビッ 卜づつの b0〜b7、 b8〜! D 15、 bl6~b23, b24 〜b31 に分割して
2 Α(χ) + ΐΒΒ(χ) + xsc(x) + D(x)
とする。 ただし、 b24〜b31の 8 ビッ ト情報で表現される多項式を A(x)、bl6〜! 323 の 8 ビッ ト情報で表現される多項式を B(x)、 b8〜!) 15の 8 ビッ ト情報で表現され る多項式を C(x)、 b0~b7の 8 ビッ ト情報で表現される多項式を D(x)とする。
CRC 演算装置 12A, 12B , 12C, 12D はそれぞれ図 4 3 (B)に示す構成を備え、
1を生成多項式と して
Α(χ)ノ G(x)、 B(x)/ G(x)、 C(x)/ G(x)、 D(x)/ G(x)
の除算演算を実行し、 それぞれの剰余
RA(X)、 RB(X)、 RC(X)、 RD(X)
を出力する。
24 ビッ トシフ ト装置 13A は剰余 RA(X)を 24 ビッ トシフ ト処理して χ24Α(χ)/ G(x)の剰余 RA'(X)を演算し、 16 ビッ トシフ ト装置 13B は剰余 RB(X)を 16 ビッ ト シフ 卜処理して χΐ6Β(χ)ノ G(x)の剰余 RB'(X)を演算し、 8 ビッ トシフ ト装置 13C は剰余 Rc(x) を 8 ビッ トシフ ト処理して xsCOOZ GOc)の剰余 Rc'(x)を演算する。 合成部 14は、 RA' (x), RB' (X) , RC' (X) , RD' (x)が求まれば次式
RA' (X) + RB' (X) + Rc' (x) + RD' (X)
によ り剰余を合成し(ビッ ト毎の排他的論理和 (EX- OR) 演算し)、 32 ビッ トの入 力データ列を生成多項式 G(x)で除算したときの余り、すなわち、 16 ビッ トの CRC パリティ ビッ トを出力する。
図 1の誤り検出符号化器によれば、 CRG演算(パリティ ビッ ト演算)に要する時 間を従来の 1 / 4に短縮することができ、入力データ列を n 分割するものとすれ ば、 1 nに短縮することができる。
( c ) N ビッ トシフ ト装置
図 2 は、 図 43 (B)の CRC演算装置において、" 0"を 1個入力してシフ ト レジス タ SRの内容を 1 ビッ トシフ トするのと等価な 1 ビッ トシフ ト処理演算を行う 16 X 16 の行列説明図である。 この行列の見方は、シフ トレジスタ SR におけるシフ ト後の各ビッ 卜がシフ 卜前のどのビッ 卜の EX-OR 演算によ り求まるかを示して いる。 EX-OR 演算の対象となるシフ ト前のビッ トは" 1 "が立つているビッ トであ る。例えば、シフ ト後の第 5 ビッ トは、シフ ト前の第 4 ビッ ト と第 15 ビッ トの EX-OR によ り求ま り、シフ ト後の第 12 ビッ トはシフ ト前の第 11 ビッ 卜と第 15 ビッ トの EX-OR によ り求まる。 なお、シフ ト後の第 0 ビッ トは" Γが 1 つしか立 つていないからシフ ト前の第 15 ビッ 卜の値となる。同様に、シフ ト後の第 1 ビッ トはシフ ト前の第 0 ビッ ト、シフ ト後の第 2 ビッ トはシフ ト前の第 1 ビッ ト の値となる。
従って、図 2の 16 X 16の 1 ビッ トシフ ト演算行列に、 16 ビッ 卜のシフ ト レジス タ SR の内容を 16X1 の行列にして乗算すれば、 1 ビッ トシフ ト後のシフ トレジ スタ SRの内容が 16X1の行列と して求まる。ここで行列演算における加算は排他 的論理和演算 EX-ORである。
1ビッ トシフ ト演算行列を N回乗算することにより Nビッ トシフ トを実現でき る。すなわち、 1 ビッ トシフ ト演算行列を Aと表現すれば、 N ビッ トシフ トを実現 する演算行列は ANとなる。従って、 2ビッ トシフ ト行列 A 2 (= A X A) 及び 4ビ ッ トシフ ト行列 A4 ( = A2 X A2) は図 3 (A), (B)に示すよ う になり、 8 ビッ ト シフ ト行列 A 3 (= A 4 X A ) 及ぴ 1 6 ビッ トシフ ト行列 A is ( = A 8 X A 8 ) は 図 4 (A), (B)に示すよ うになる。又、 24 ビッ 卜ビッ トシフ ト行列 Α24(= Αΐ6χ A 8 ) は図 5 に示すよ うになり、 32 ビッ トシフ ト行列 A 32 ( = A X A 8 ) 及び 40 ビッ トシブ ト行列 A ( = Α32χ A 8 ) は図 6 (A), (B)に示すよ うになる。
以上から、図 1 の 8 ビッ トシフ ト装置 13 Cは、 CRC演箅装置 12Cから出力す る 16 ビッ 卜の剰余 Rc(x) (16X 1 の行列で表現する) を図 4(A)の右側の変換行列 A8に乗算する乗算回路によ り実現することができる。図 7 は CRC 演算装置 12C と 8 ビッ トシフ 卜装置 13Cの接続構成図である。 8ビッ トシフ 卜装置 13Cは、 変 換行列 A8 と剰余 RcG との乗箅結果である 16 ビッ トの Rc'(x) を 16 個の EOR
回路を用いて出力する構成になっている。
又、図 1 の 1 6 ビッ トシフ ト装置 13Bは、 CRC演算装置 12B から出力する 16 ビッ トの剰余 RB(X) (16X 1 の行列で表現する〉 を図 4(B)の右側の変換行列 A に乗算する乗算回路によ り実現することができる。図 8 は CRC 演算装置 12B と 16 ビッ 卜シフ 卜装置 13B の接続構成図である。 16 ビッ 卜シフ ト装置 13Bは、 変 換行列 A と剰余 : RB(X)との乗算結果である 16 ビッ トの RB'(X) を 16個の EOR 回路を用いて出力する構成になっている。
同様に図 1 の 24 ビッ トシフ ト装置 13Aは、 CRC演算装置 12Aから出力する 16 ビッ 卜の剰余 R X)を 16X 1 の行列で表現し、 これを図 5 の右側の変換行列 A2 に乗算する回路により構成するこ とができる。図 9は CRC演算装置 12Aと 24 ビッ トシフ ト装置 13Aの接続構成図である。 24 ビッ トシフ ト装置 13Aは、 図示 しないが、図 7、図 8 と同様に変換行列 A24と剰余 RA(X)との乗算結果である 16 ビ ッ 卜の RA'(X) を 16個の EOR回路を用いて出力する構成になっている。
図 10〜図 14 は誤り検出符号器の各部動作説明図であり、 入力データは 32 ビ ッ トオール" Γである と している。
図 10(A), (B)はそれぞれ CRC演算装置 12A及び 24 ビッ トシフ ト装置 13Aの動 作説明図であり 、 CRC演算装置 12B には高次側より 8 クロックで順次 χ3ΐ〜χ24 が入力し、 24 の入力が完了したときのシフ トレジスタ SR の内容が A(x)/G(x) の剰余 RA(X)となる。 24 ビッ トシフ ト装置 13A は変換行列 A24 と 16X1 の行列 RA(X)を掛け合わせて x24A(x)ZG(x)の剰余 RA'(X) を出力する。 尚、図中の xAmは X mを意味する。
図 11(A),(B)はそれぞれ CRC演算装置 12B及び 16 ビッ トシフ ト装置 13Bの動 作説明図であり 、 CRC演算装置 12B には高次側より 8 クロックで順次 X 23〜x" が入力し、 xis の入力が完了したときのシフ トレジスタ SR の内容が B(x)/G(x) の剰余 RB(X)となる。 16 ビッ トシフ ト装置 13B は変換行列 と 16X1 の行列 RB(X)を掛け合わせて xlsB (X)/G(x)の剰余 RB'(x) を出力する。
図 12(A), (B)はそれぞれ CRC演算装置 12C及び 8 ビッ トシフ ト装置 13C の動 作説明図であり 、 CRC 演算装置 12Cには高次側よ り 8 クロックで順次 X i5〜x8 が入力し、 χ8の入力が完了したときのシフ ト レジスタ SRの内容が C(x)ZG(x)の
剰余 Rc(x)となる。 8 ビッ 卜シフ ト装置 13C は変換行列 A8と 16X1 の行列 Hc(x) を掛け合わせて x8C(x)_ G(x)の剰余 Rc'(x) を出力する。
図 13は CRC演算装置 12Dの動作説明図であり、 CRC演算装置 12Dには高次 側よ り 8 ク ロ ックで順次 X 7〜χ0が入力し、 X。の入力が完了したときのシフ ト レ ジスタ SRの内容が D(x)/G(x)の剰余 RD(X) ( = RD'(X)) となる。
図 14 は合成部 1 4 の動作説明図である。 合成部 1 4は上記演算された剰余 RA'(X) RB'(X)、 RC'(X)、 RD(X)のビッ ト対応の EX-OR演算を行って 16 ビッ トの CRCパリティ を出力する。
( d ) 誤り検出復号器
図 1 5は 32 ビッ 卜の入力データの低次側に 16 ビッ 卜の CRCパリティ ビッ ト が付加されている場合の本発明の誤り検出復号器のプロック構成図である。 デ一 タ分割部 21は、 CRCパリティ ビッ 卜を除いた 32ビッ 卜の入力データ列 bl6〜! )47 を 8 ビッ 卜づつの bl6〜b23、 b24〜! )31、 b32〜b39、 b40〜! )47に分害!)して χ24 Α(χ) + χΐ6 Β(χ) + χ8 C(x) + D(x)
とする。 なお、 b40〜b47 の 8 ビッ ト情報で表現される多項式を A(x)、b32〜! 339 の 8 ビッ ト情報で表現される多項式を B(x)、 b24~b31の 8 ビッ ト情報で表現さ れる多項式を C(x)、bl6〜! )23の 8ビッ ト情報で表現される多項式を D(x)とする。 又、データ分割部 21は b0〜bl5の CRCパリティ ビッ ト P(x)を分離して出力'する。
CRC 演算装置 22A,22B,22C,22D はそれぞれ図 43 (B)に示す構成を備え、
を生成多項式と して '
A(x)/G(x)、 B(x)/G(x)、 C(x)/G(x), D(x)/G(x)
の除算演算を実行し、 それぞれの剰余
RA(X)、 RB(X)、 RC(X)、 RD(X)
を出力する。
24 ビッ トシフ ト装置 23A は剰余 I (x)を 24 ビッ トシフ ト処理して χ24Α(χ)/ G(x)の剰余 を演算し、 16 ビッ トシフ ト装置 23B は剰余 RB(x)を 16 ビッ ト シフ ト処理して xi6B(x)/G(x)の剰余 RB'(X)を演算し、 8 ビッ トシフ ト装置 23C は剰余 Rc(x) を 8 ビッ 卜シフ 卜処理して x8C(x)ZG(x)の剰余 Rc'(x)を演算する。 尚、各シフ ト装置 23A〜23は誤り検出符号化器と同様に構成することができる
合成部 24は、 RA' (x), RB' (X), RC' (X) , RD' (x)が求まれば次式
RA' (X) + RB' (X) + Rc' (x) + RD' (X)
によ り剰余を合成(ビッ ト毎の EX-OR 演算)し、 32 ビッ トの入力データ列を生成 多項.式 G(x)で除算したときの余り、すなわち、パリティ ビッ ト P'(x)を出力する。 比較部 25 は算出された 16 ビッ トのパリティ ビッ ト P '(χ)と入力データに付加 されている 16ビッ トのパリティ ビッ ト P(x)をビッ ト対応に比較し、全て一致すれ ば誤り無しと判定し、 1つでも一致しなければ誤り あり と判定する。
図 16〜図 2 0は誤り検出復号器の各部動作説明図であり、 48 ビッ トの入力デ —タのうち低次側の 16 ビッ ト χθ〜χΐ5は CRCパリティ ビッ トであり、 高次側の 32 ビッ ト χΐ6〜Χ4?はオール" 1 "であると している。
図 16 (A) ,(Β)はそれぞれ CRC演算装置 22Α及び 24 ビッ トシフ ト装置 23Α の動作説明図であり、 CRC 演算装置 22Α には高次側よ り 8 クロックで順次 X 47 〜 。が入力 し、 χ«の入力が完了したときのシフ ト レジスタ の内容が Α(χ)/ G(x)の剰余 RA(X)となる。 24 ビッ トシフ ト装置 23Aは変換行列 と 16X1 の行 列 RA(X)を掛け合わせて x24A(x)ZG(x)の剰余 RA'(X) を出力する。
図 17 (A) ,(B)はそれぞれ CRC演算装置 22B及び 16 ビッ トシフ ト装置 23B の動作説明図であり、 CRC 演算装置 22B には高次側よ り 8 クロックで順次 X 39 ~X32が入力し、 X32の入力が完了したときのシフ トレジスタ SR の内容が Β(χ)/ G(x)の剰余 RB(X)となる。 16 ビッ トシフ ト装置 23Bは変換行列 A^6と 16X1の行 列 RB(X)を掛け合わせて xisB (x) "G(x)の剰余 RB'(X) を出力する。
図 18 (A) ,(B)はそれぞれ CRC演算装置 22C及び 8 ビッ トシフ ト装置 23Cの 動作説明図であり、 CRC 演算装置 22Cには高次側よ り 8 ク ロ ックで順次 xsi〜 χ24が入力し、 X24の入力が完了したと きのシフ ト レジスタ SRの内容が C(x)/G(x) の剰余 Rc(x)となる。 8ビッ トシフ ト装置 23Cは変換行列 A8と 16X1の行列 Rc(x) を掛け合わせて x8C(x) G(x)の剰余 Rc'(x) を出力する。
図 19は CRC演算装置 22Dの動作説明図であり、 CRC演算装置 22Dには高次 側よ り 8 ク ロ ッ クで順次 X 23〜χΐ?が入力し、 7の入力が完了したときのシフ ト レジスタ SR の内容が D(x)/G(x)の剰余 RD(X) ( = RD'(X)) となる。
図 20は合成部 24の動作説明図である。合成部 24は上記演算された剰余 RA'(x)、
RB'(X)、 RC'(X)、 RD(X)のビッ 卜対応の EX-OR演算を行って 16 ビッ 卜の CRCパ リティ Ρ' (X)を出力する。
本発明の誤り検出復号器によれば、誤り有無検出に要する時間を従来の 1ノ 4 に短縮するこ とができ、入力データ列を 1 / ηに分割するものとすれば誤り有無 検出に要する時間を 1 / ηに短縮することができる。 したがって、 再送制御する 場合でもパケッ 卜の遅延時間を短くするこ とができる。
( e ) 誤り検出復号器の別の例
図 21 は本発明の別の誤り検出復号器のプロ ック構成図である。データ分割部 31は、 16 ビッ トの CRCパリティ を含む 48 ビッ トの入力データ列 b0〜! 347を 8 ビッ 卜づつの b0〜b7、 b8〜bl5、 bl6〜b23、 b24~b31, b32~b39, b40~b47 に分割して
χ4ο A(x) + χ32 Β(χ) + 24 C(x) + D(x) χΐ6+ E(x) Xs + F(x)
とする。 なお、 b40〜! )47 の 8 ビッ 卜情報で表現される多項式を A(x)、b32〜b39 の 8 ビッ ト情報で表現される多項式を B(x)、 b24~b31 の 8 ビッ ト情報で表現さ れる多項式を C(x)、 bl6~b23の 8 ビッ ト情報で表現される多項式を D(x)、 b8〜 bl5 の 8 ビッ ト情報で表現される多項式を E(x)、 b0〜b7の 8 ビッ ト情報で表現 される多項式を F(X)とする。
CRC演算装置 32A,32B,32C,32D,32E,32Fはそれぞれ図 43 (B)に示す構成を備 え、
を生成多項式と して
A(x)/G(x)、 B(x)ZG(x)、 C(x)ZG(x)、 D(x)/G(x)、 E(x)/G(x)、 P(x)/G(x) の除算演算を実行し、 それぞれの剰余
RA(X)S RB(X)、 RC(X)、 RD(X)、 RE(X)、 RF(X)
を出力する。
40 ビッ 卜シフ ト装置 33A は剰余 I (x)を 40 ビッ トシフ ト処理して χ40Α(χ)/ G(x)の剰余 RA'(X)を演算し、 32 ビッ トシフ ト装置 33B は剰余 RB(X)を 32 ビッ ト シフ ト処理して x32B(x)/G(x)の剰余 RB'(X)を演算し、 24 ビッ トシフ 卜装置 33C は剰余 Rc(x) を 24 ビッ トシフ ト処理して x24C(x)/G(x)の剰余 Rc'(x)を演算し、 16ビッ 卜シフ 卜装置 33Dは剰余 RD(x)を 16ビッ トシフ 卜処理して xi6D(x)/G(x) の剰余 RD'(X)を演算し、 8 ビッ トシフ 卜装置 33Eは剰余 RE(X) を 8ビッ トシフ ト
処理して x8 E(x)/G(x)の剰余 RE'(X)を演算する。なお、 40 ビッ トシフ ト装置 33A は CRC演算装置 32Aから出力する 16 ビッ 卜の剰余 (16 1 の行列で表現 する) を図 6(B)の右側の変換行列 A« に乗算する乗算回路によ り実現でき、 32 ビッ トシフ ト装置 33Bは CRC演算装置 32Bから出力する 16ビッ 卜の剰余 RB(X) (16 1 の行列で表現する) を図 6(A)の右側の変換行列 A32に乗算する乗算回路 によ り実現できる。また、 24 ビッ ト シフ ト装置 33C、 16 ビッ トシフ ト装置 33D、 8 ビッ トシフ ト装置 33Eは誤り検出符号器と同様に構成するこ とができる。
合成部 34は、 RA' (X), RB' (X), RC' (X) , RD' (x), RE' (X) , RF' (X)が求まれば 次式
(X) + RB' (X) + Rc' (x) + RD' (X) + RE' (X) + RF' (X)
によ り剰余を合成(ビッ ト毎の EX-OR演算)し、 48 ビッ トの入力データ列を生成 多項式 G(x)で除算したときの余り、すなわち、パリティ ビッ 卜 P'(x)を出力する。 誤り検出部 35は算出された 16 ビッ トのパリティ ビッ ト P '(χ)の全ビッ トが" 0"で あるかチェ ック し、全て" 0"であれば誤り無しと半リ定し (CRC O ) 、1 つでも" 0" でなければ誤り有り と判定する (CRC NG)D
図 22〜図 28は図 21の誤り検出復号器の各部動作説明図であり、 48 ビッ トの 入力データのう ち低次側の 16 ビッ ト χθ〜χΐ5は CRCパリティビッ トであり、 高 次側の 32 ビッ ト χΐ6〜χ47はオール" 1"であると している。
図 22(A), (Β)はそれぞれ CRC演算装置 32Α及び 40ビッ トシフ ト装置 33Αの動 作説明図であり、 CRC演算装置 32Αには高次側より 8 クロックで順次 X 47〜χ40 が入力し、 χ«の入力が完了したときのシフ ト レジスタ SR の内容が A(x)/G(x) の剰余 となる。 40 ビッ トシフ ト装置 33A は変換行列 A4。 と 16X1 の行列 RA(X)を掛け合わせて x4oA(x)ZG(x)の剰余 RA'(x) を出力する。
図 23(A),(B)はそれぞれ GRC演算装置 32B及び 32ビッ トシフ ト装置 33Bの動 作説明図であり、 CRC演算装置 32B には髙次側より 8 クロックで順次 X 39〜Χ32 が入力し、 X32 の入力が完了したと きのシフ ト レジスタ SR の内容が B(x)/G(x) の剰余 RB(X)となる。 32 ビッ トシフ ト装置 33B は変換行列 A32 と 16X1 の行列 RB(X)を掛け合わせて χ32Β (X)/G(x)の剰余 RB'(X) を出力する。
図 24(A), (B)はそれぞれ CRC演算装置 32C及び 24ビッ トシフ 卜装置 33Cの動
作説明図であり 、 CRC演算装置 32Cには高次側よ り 8ク ロ ックで順次 χ3ΐ〜χ24 が入力し、 X24の入力が完了したときのシフ ト レジスタ SR の内容が C(x)/G(x) の剰余 Hc(x)となる。 8ビッ トシフ ト装置 33Cは変換行列 A24と 16X1の行列 Rc(x) を掛け合わせて x C(x)ZG(x)の剰余 Rc'(x) を出力する。
図 25(A)ズ B)はそれぞれ CRC演算装置 32D及び 16ビッ 卜シフ 卜装置 33Dの動 作説明図であり、 CRC演算装置 32Dには高次側よ り 8クロ ックで順次 X 23〜x16 が入力し、 χΐ6 の入力が完了したときのシフ トレジスタ SRの内容が D(x)/G(x) の剰余 RD(X)となる。 16 ビッ トシフ ト装置 33D は変換行列 A と 16X1 の行列 RD(X)を掛け合わせて xi6D(x)/G(x)の剰余 RD'(X) を出力する。
図 26(A),(B)はそれぞれ CRC演算装置 32E及び 8ビッ トシフ ト装置 33Eの動 作説明図であり 、 CRC演算装置 32E には高次側より 8 ク ロ ックで順次 X i5〜x8 が入力し、 X8の入力が完了したときのシフ ト レジスタ SRの内容が E(x)/G(x) D 剰余 RE(X)となる。 8 ビッ 卜シフ ト装置 33Eは変換行列 ASと 16X1 の行列 RE(X) を掛け合わせて x8E(x)/G(x)の剰余 RE'(X) を出力する。
図 27は CRC演算装置 32Fの動作説明図であり、 CRC演算装置 32Fには高次 側よ り 8 ク ロ ックで順次 X
7〜χθが入力し、
χοの入力が完了したときのシフ トレ ジスタ SRの内容が F(x)/G(x)の剰余 RF(X)
となる。
図 28 は合成部 3 4の動作説明図である。 合成部 34 は上記演算された剰余 I '(x)、 RB'(X)、 RG'(X), RD'(X)、 RE'(X)、 RF(X)のビッ ト対応の EX-OR演算を行つ て 16 ビッ トの CRCパリティ P' (X)を出力する。誤り検出部 35は CRCパリティ Ρ' (X)の全ビッ 卜力 "0"であれば誤り無しと判定し、 1 つでも" Γが有れば誤り有り と判定する。
( f ) 本願発明と従来例の比較
データ長が 32ビッ トの場合、従来例の誤り検出符号器ではパリティを生成する のに 32 クロ ック必要である。 しかし、 図 1 の本発明の誤り検出符号器では必要 ク ロ ック数は 8ク ロックであるため、 演算時間が 1/4に短縮する。
又、データ長が 32 ビッ ト、パリティが 16 ビッ トの場合、従来例の一致検出復号 方法による誤り検出復号器では 32クロ ック必要である。 しかし、 図 15の本発明 の誤り検出復号器では、必要ク口ック数は 8クロックであるため、演算時間が 1/4
に短縮する。
又、データ長が 32ビッ ト、パリティが 16 ビッ 卜の場合、従来例のオール" 0"検出 復号方法による誤り検出復号器では 48 ク ロ ック必要である。 しかし、本発明の図 21 の誤り検出復号器では、 必要ク口 ック数は 8 クロ ックであるため演算時間が 1/6 に短縮する。
ところで、 本発明の符号器、復号器は、演算時間に反比例してハードウエア規模 がそれぞれ、 4倍、 4倍、 6倍となる。 これは演算を直列に行っていたものを並 列に行ったからである。 しかしながら、 例えば、 情報レ一 ト 100Mbpsを 25MHz のクロ ックで CRC演算する場合を考えるとノ、一ドゥエア規模は従来例と同等に なる。
すなわち、 情報レー ト 100Mbp s を 25MHz のクロックで CRC演算するために は、従来例では図 4 7で説明したよ う に誤り検出復号器が 4つ必要になる。一方、 本発明では図 29に示すよ うに演算速度が 4倍であるため 1つの誤り検出復号器 のみで十分である。 この結果、従来例及び本発明において、①誤り検出復号器のハ 一 ドゥエア規模、 ②情報レー ト 100Mbp sを. 25MHzのクロックで CRC演算する ために必要なハードウエア数、③演算時間は表 1に示すようになる。これより、 本 発明によれば合計のハー ドゥエア規模を変えることなく演算時間の高速化を実現 できることがわかる。 以上では誤り検出復号器について説明したが誤り検出符号 器についても同様である。
( B) 第 1実施例
図 30 は第 1 実施例の誤り検出符号器の構成図であり、 生成多項式 G(x) = χΐ6+ χΐ 2+ χ5 + 1により 32bitのデータ列 xo〜X3 iの CRCノ リティを生成する場合で ある。 図 30において図 1 と同一部分には同一符号を付している。又、 32 ビッ 卜の
入力データは 8 ビッ トづつの Χ0〜Χ7、 8~Χ15, χ16〜χ23、 X24〜 x3iに分割され、 以下の多項式
χ24Α( ) + χΐ6β(χ) + χ80(χ) + D(x)
で表現される ものとする。
全ての CRC演算装置 12A〜12Dにおけるシフ トレジスタ SRの初期値を " 0 " にしておく。 図示しないデータ分割部は、 32 ビッ トのデータ列を 8ビッ トづつの
Χ。〜χ7、 Χ8〜χ15、 Χΐ6〜χ23、 Χ24〜 χ31に分割して各 CRC演算装置に入力する。
CRC演算装置 12Aのシフ ト レジスタへは 8クロ ックで xsi〜x24が高次側よ り 入力し、 演算した結果 (A(x)/G(x)の剰余 RA(X)) は 24 ビッ トシフ ト装置 13Aで 24 ビッ トシフ ト処理されて χ24Α(χ) /G(x)の剰余 RA'(X)に変換される。
CRC演算装置 12Bのシフ ト レジスタへは 8クロックで χ23〜χΐ6が高次側より 入力し、 演算した結果 (B(x)/G(x)の剰余 RB(X)) は 16 ビッ トシフ ト装置 13B で 16 ビッ 卜シフ 卜処理されて x"B(x) /G(x)の剰余 RB'(X)に変換される。
CRC演算装置 12Cのシフ ト レジスタへは 8ク ロ ックで X 〜 X8が高次側よ り入 力し、 演算した結果 (C(x)/G(x)の剰余 Rc(x)) は 8ビッ トシフ ト装置 13Cで 8ビ ッ トシフ ト処理されて x8C(x) /G(x)の剰余 Rc (X)に変換される。
CRC演算装置 12Dのシフ ト レジスタへは 8ク ロ ックで χ7〜χθを高次側より入 力して、 D(x)/G(x)の剰余 RD(X)を演算する。
以上の演算を同時に行い、 合成部 1 4はこれらの演算結果である剰余 RA'(X), RB'(X), RC'(X), RD(X)をビッ トごとに EX-ORをと り CRCパリティ P(x)を出力す る。
(C) 第 2実施例
図 31は、 第 2実施例である誤り検出復号器の構成図で、 図 15 と同一部分には 同一符号を付している。 32ビッ 卜の入力データの低次側に 16ビッ トの CRCパリ ティが付加されており、 この CRCノ リティは生成多項式 G(X) = χ16+χ12 + Χ5+1を 用いて生成されて入力データ列に付加されている。従って、誤り検出復号器はこの 生成多項式 G(X) = X16 + X12 + X5 + 1 を用いてで 32ビッ トの情報ビッ トと 16ビッ ト の CRCノ リティが正しいかどうか検出する。
全ての CRC演算装置 22A〜22Dにおけるシフ ト レジスタ SRの初期値を " 0 "
にしておく。図示しないデータ分割部は、 48 ビッ トのデータ列を低次側 16 ビッ ト の CRC ノ リティ χθ〜χΐ5と高次側の 32 ビッ 卜の入力デ一タ χ 〜χ47に分離し、 更に、 32 ビッ トの入力データを 8 ビッ トづつの Χ16〜Χ23、 Χ24〜χ31、 χ32〜χ39、 χ40
〜χ47に分割して各 CRC演算装置に入力する。
CRC演算装置 22Aのシフ ト レジスタへは 8 クロックで x47〜x«が高次側より 入力し、 該 CRC演算装置 22Aの演算結果 (A(x)/G(x)の剰余 RA(X)〉 は 24 ビッ ト シフ ト装置 23Aに入力し、 ここで 24 ビッ トシフ ト処理されて x24A(x) /G(x)の剰 余 RA'(X)に変換される。 - 又、 CRC演算装置 22Bのシフ トレジスタへは 8クロ ックで X 〜 X32が高次惻よ り入力し、 該 CRC演算装置 22Bの演算結果 (B(x)/G(x)の剰余 RB(X)) は 16 ビッ トシフ ト装匱 23B に入力し、 ここで 16 ビッ トシフ ト処理されて x"B(x) /G(x)の 剰余 RB'(X)に変換される。
又、 CRC演算装置 22Cのシフ ト レジスタへは 8ク ロ ックで xsi〜 4が高次側よ り入力し、 該 CRC演算装置 22Cの演算結果 (C(x)/G(x)の剰余 RG(X)) は 8 ビッ トシフ 卜装置 23C に入力し、 ここで 8 ビッ トシフ ト処理されて x8C(x) /G(x)の剰 余 Rc (X)に変換される。
CRC演算装置 22D のシフ ト レジスタへは 8 ク ロ ックで x23~xieが高次側より 入力し、 D(x)/G(x)の剰余 RD(X)が演算される。
以上の演算を同時に行い、 合成部 24はこれらの演箅結果である剰余 RA'(X), RB'(X), RC'(X), RD(X)をビッ 卜ごとに EX-ORをと り CRCパリティ P'(x)を出力す る。 比較部 25 は、 この 16 ビッ トの CRCパリティ P'(x)と、入力データに付加さ れている CRCノヽ。リティ ビッ ト Ρ(χ) (χΐ5〜χο)と ビッ 卜毎に EX-ORをとつて加算 (論理和)することで誤りを検出する。 すなわち、 演算結果である CRCパリティビ ッ ト Ρ'(χ)と入力データに付加されている GRCパリティ ビッ ト Ρ(χ)が全て等しく 、 誤りが無ければ 比較部 25は " 0 " を出力し、誤りが有れば' 'Γを出力する。
( D ) 第 3実施例
図 32は第 3実施例である誤り検出復号器の構成図であり、 図 21 と同一部分に は同一符号を付している。図 32 において、 32 ビッ トの入力データの低次側には 16 ビッ トの CRC ノ、。 リティが付加されており 、 この CRC ノ、。 リティは生成多項式
G(x) = Χ16 + χ12 + χ5+ 1を用いて生成されて入力データ列に付加されている。従って 誤り検出復号器は生成多項式 G(X) = χ 16 + χ12+χ5+1を用いて 32 ビッ トの情報ビッ トと 16 ビッ トの CRCパリティが正しいかどうか検出する。
48 ビッ トのデータ列は、 8 ビッ トづつの χΟ〜Χ?、 χ8〜χ15、 χ 16〜χ23、 χ24〜χ31、 χ32〜χ39、 χ40〜χ47に分割され以下の多項式
χ4。 Α(χ) + χ32 Β(χ) + χ2 C (χ) + D (χ) χΐ 6+· Ε (χ) χ8 + F(x)
で表現される。
全ての CRC演算装置 32A〜32Fにおけるシフ トレジスタ SRの初期値を " 0 " にしておく。 図示しないデータ分割部は、 48 ビッ トのデ一タ列を 8 ビッ トづつの χΟ〜Χ7、 Χ8〜χ 15、 χ 16〜χ23、 Χ24〜χ31、 χ32〜χ39、 χ40〜 χ47に分割して各 CRC演算 装置に入力する。
CRC演算装置 32Aのシフ ト レジスタへは 8 クロックで x47〜x«が高次側よ り 入力し、 CRC演算装置 32Aの演算結果 (A(x)/G(x)の剰余 RA(X)) は 40 ビッ トシ フ ト装置 33Aに入力し、 ここで 40 ビッ トシフ ト処理されて x4。A(x) G(x)の剰余 RA' (X)に変換される。
C C演算装置 32B のシフ ト レジスタへは 8 クロックで x39〜x32が高次側よ り 入力し、 該 CRC演算装置 32B の演算結果 (B(x)/G(x)の剰余 RB (X)) は 32 ビッ ト シフ ト装置 33B に入力し、 ここで 32 ビッ トシフ ト処理されて x32B(x) /G(x)の剰 余 RB'(X)に変換される。
CRC演算装置 32C のシフ ト レジスタへは 8 クロ ックで x3i〜x が高次側より 入力し、 該 演算装置 32Cの演算結果 (C(x)/G(x)の剰余 Rc(x)) は 24 ビッ ト シフ ト装置 23Cに入力し、 ここで 24 ビッ トシフ ト処理されて x24G(x) /G(x)の剰 余 Rc'(x)に変換される。
CRC演算装置 32D のシフ 卜 レジスタへは 8 クロックで x23〜xisが高次側よ り 入力し、 該 CRC演算装置 32D の演算結果 (D(x)/G(x)の剰余 RD(X)) は 16 ビッ ト シフ ト装置 33D に入力し、 ここで 16 ビッ トシフ ト処理されて xi6D(x) /G(x)の剰 余 RD' (X)に変換される。
CRC演算装置 32Eのシフ ト レジスタへは 8クロックで x 5〜x8が高次側よ り入 力し、 該 CRC演算装置 32E の演算結果 (E(x)/G(x)の剰余 RE(x)) は 8 ビッ トシ
28 フ 卜装置 33E に入力し、 ここで 8 ビッ トシフ 卜処理されて x8E(x) /G(x)の剰余 RE'(X)に変換される。
CRC演算装置 32Fのシフ 卜 レジスタへは 8クロ ックで χ7 χθが高次側よ り入 力し、 F(x)/G(x)の剰余 RF(X)が演算される。
以上の演算を同時に行い、 合成部 34はこれらの演算結果である剰余 RA'(X), RB'(X), RC'(X), RD'(X), RE'(X), RF(X)をビッ ト毎に EX-ORをと り、 16 ビッ トの CRCパリティ P'(x)を出力し、 誤り検出部 35は P'(x)の全ビッ トの ORを計算す る。 CRCノ リティ F(x)の全ビッ トが" 0"であれば誤り はなく、誤り検出部 35は" 0" を出力する。 しかし、 1 つでも" 1 "であれば誤りが有り 、誤り検出部 35 は" を出 力する。
(E)第 4実施例
図 33 は第 4実施例の誤り検出復号器の別の構成図であり、 復号方式は図 2 1 の復号方式と同じである。図 33の誤り検出復号器では、 4台の CRC演算装置 42A 42D を備えている。 かかる場合、 入力データ分割制御部 4 1は各 CRG演算装 置 42A 42D 入力するビッ ト長を
[全体の入力ビッ ト長ノ 4 ]
と し、一般に CRC演算装置を n台備えている場合、 入力ビッ ト長を
[全体の入力ビッ ト長ノ n ]
とする。 例えば、 CRC誤り検出符号化ビッ ト長が CRCパリティを含めて 40bit であったとすれば、 入力データ分割制御部 41は入力データを 10Wtずつ
χ39 ν38 χ37 χ31 y30
χ29, χ28, χ27; , Χ21, χ20
χ19, χ18, χ1?, , Χΐΐ, 1°
X9, Xs, χ7, , χΐ, °
に分割し、それぞれを入力ビッ ト数 (演算回数) 1 0 と共に CRC演算装置 42Α, 42Β, 42C, 42D に入力する。 また、 入力データ分割部 41 は各シフ 卜変換装置 43Α, 43Β, 43Cにビッ トシフ ト量を入力する。上 IB例では、 シフ ト変換装置 43A に 30 ビッ 卜シフ トを指示し、シフ ト変換装置 43B に 20 ビッ トシフ 卜を指示し、 シフ ト変換装置 43Cに 10ビッ トシフ トを指示する。
以上によ り、CRC演算装置 42A, 42B, 42C, 42Dは指示されたビッ ト数のデー タが入力された時点におけるシフ ト レジスタの内容を剰余 RA(X), RB(X), RC(X), RD(X)と して出力する。又、シフ ト変換装置 43Aは入力する剰余 RA(X)に 30 ビッ ト シフ ト処理を行って剰余 i '(x)に変換し、シフ ト変換装 ¾ 43B は入力する剰余 RB(X)に 20 ビッ トシフ 卜処理を行って剰余 RB'(X)に変換し、シフ 卜変換装置 43C は入力する剰余 Rc(x)に 10ビッ 卜シフ ト処理を行って剰余 Rc'(x〉に変換する。 合 成部 44は剰余 RA'(x), RB'(X), RC'(X), RD(X)をビッ ト毎に EX-OR演算して合成 し、全ビッ トが" 0"であるか否かによ り誤り検出を行う。
又、次の CRC誤り検出符号化ビッ ト長が CRCパリ ティを含めて 50bitであつ たとすれば、入力データ分割制御部 41は該入力データを 13,13,12,12 ビッ トずつ x49 y48 y47 χ38 χ37
χ36 χ35 χ34 χ25, χ24
χ23 χ22 χ21 χ】3 χ12
X11, X10, X9, , X1, Χ°
に分割し、それぞれを入力ビッ ト数 (演算回数) 13,13,12,12 と共に CRC 演算装 置 42Α, 42Β, 42C, 42Dに入力する。 また、 入力データ分割制御部 41は各シフ ト変換装置 43Α, 43Β, 43Cにビッ トシフ ト量を入力する。上記例では、 シフ ト変 換装置 43Αに 37 ビッ トシフ トを指示し、シフ ト変換装置 43Βに 24 ビッ 卜シフ ト を指示し、シフ 卜変換装置 43Cに 12 ビッ トシフ トを指示する。
以上によ り、CRC演算装置 42A, 42B, 42C, 42Dは指示されたビッ ト数のデー タが入力された時点におけるシフ ト レジスタの内容を剰余 RA(X), RB(X), RC(X), RD(X)と して出力する。 又、シフ 卜変換装置 43Aは入力する剰余 RA(X)に 37 ビッ トシフ ト処理を行って剰余 RA'(X)に変換し、シフ 卜変換装置 43Bは入力する剰余 RB(X)に 24 ビッ トシフ ト処理を行って剰余 RB'(X)に変換し、シフ ト変換装置 43C は入力する剰余 Rc(x)に 12 ビッ 卜シフ ト処理を行って剰余 Rc'(x)に変換する。 合 成部 44は剰余 RA'(X), RB'(X), RC'(X), RD(X)をビッ ト毎に EX-OR演算して合成 し、全ビッ トカ 0"であるか否かによ り誤り検出を行う。
以上、入力データ列を 1/nに略等分割するこ と によ り 、 各 CRC演算装置の演算 時間を均一にできるため、 CRC演算時間を短縮することができる。
なお、 以上の入力データ列を 1/nに略等分割する思想は、 図 15 の誤り検出復 号器や図 1 の誤り検出符号器にも適用することができる。すなわち、 図 1 及び図 15のデータ分割分 11、21は、分割後のデータ列のビッ 卜長が等しく なるように入 力データ列を分割し、各分割データ列を高次側よ り 1ビッ トづっ CRC演算装置(除 算手段)に入力する。
(F) 第 5実施例
図 34 は第 5 実施例の誤り検出復号器の別の構成図であり、 復号方式は図 2 1 の復号方式と同じである。誤り検出復号器において、
①最大の CRC誤り検出符号化ビッ ト長が 60 ビッ トであり、
② 4台の CRC演算装置 52A〜52Dが備えられており、
③各 CRC演算装置 52A〜52Dへの最大入力ビッ ト数が 15 ビッ トであり、
④シフ 卜変換装置 53A〜53Cがそれぞれ 45 ビッ トシフ ト処理、 30 ビッ トシフ 卜処理、 15 ビッ トシフ ト処理を行う ものとする。
上記構成において、 CRC 誤り検出符号化ビッ 卜長が 40 ビッ トであったとすれ ば、 入力データ分割制御分 51 は、 この 40 ビッ トを低次側から 15 ビッ トづっ分 割し、順に CRC演算装置 52D、 CRC演算装置 52Cに入力し、残りの 10 ビッ トを CRC演算装置 52B に入力し、 CRC演算装置 A には入力しない。すなわち、 入力 データ分割部 51 は、 CRC 演算装置 52A にデータを入力せず、 CRC 演算装置 52B;52C,52D にそれぞれ
y39 ν38 37 x36 y35 χ34 y33 y32 y31 v30
χ29 χ28 x27 χ26 χ26 χ24 χ23 χ22 χ21 Υ20 χ19 χ18 χ17 χ16 χ1Ε
X", Χ13, Χ12, Χ11, Χ10, Χ9 , Χ8 , Χ7 , Χ6 , Χ5 , Χ4 , Χ3 , Χ2 , Χ1 , χΟ
を入力する。又、入力データ分割部 51 は、 各 CRC演算装置 52A,52B,52C,52D に 入力ビッ ト数 (演算回数) 0,10,15,15 を入力する。
以上によ り、 CRC演算装置 52A, 52B, 52C, 52Dは指示されたビッ ト数のデー タが入力された時点におけるシフ トレジスタの内容を剰余 RA(X) 0 ) , RB(X), RG(X), RD(X)と して出力する。 又、 45 ビッ トシフ ト変換装置 53Aは入力する剰余 RA(X) (= 0 ) に 45 ビッ 卜シフ 卜処理を行って剰余 RA'(X)(=0)に変換し、 30 ビッ トシフ ト変換装置 53B は入力する剰余 RB(X)に 30 ビッ トシフ ト処理を行って剰
余 RB'(X)に変換し、 15ビッ トシフ ト変 装置 53Cは入力する剰余 Rc(x)に 15 ビッ トシフ 卜処理を行って剰余 Rc'(x)に変換する。 合成部 54 は剰余 RA'(X), RB'(X), RG'(X), RD(X)をビッ ト毎に EX-OR 演算して合成し、全ビッ トカ 0"であるか否か によ り誤り検出を行う。
また、 CRC mり検出符号化ビッ 卜長の入力が 50 ビッ 卜であったとすれば、 入 力デ一タ分割制御部 51は、入力デ タを低次側よ り 15,15,15,5づっ分割し、 CRC 演算装置 52A,52B,52C,52Dにそれぞれ
χ44 χ43 χ42 χ41 χ40 χ39 χ38 χ37 χ36 χ35 χ34 χ33 χ32 χ31 χ30
χ29 χ28 χ27 χ26 χ25 χ24 χ23, χ22 χ21 χ20 χ19 χ18 χ17, χ16 χ15 χ", χΐ3; χ12, χ11, χΐ°, X9 , χ8 , X7 , Xs ; X5 , , X3 , X2 , X1, °
を入力する。又、入力データ分割制御部 51は、各 CRC演算装置 52A,52B,52C,52D に入力ビッ ト数 (演算回数) 5,15,15,15を入力する。
以上によ り、 CRC演算装置 52A, 52B, 52C, 52Dは指示されたビッ ト数のデー タが入力された時点におけるシフ トレジスタの内容を剰余 I (x), RB(X), RC(X), RD(X)と して出力する。 又、 45 ビッ トシフ ト変換装置 53A は入力する剰余 I (x) に 45 ビッ トシフ ト処理を行って剰余 RA'(X)に変換し、 30 ビッ トシフ ト変換装置 53B は入力する剰余 RB(X)に 30 ビッ トシフ ト処理を行って剰余 RB'(X)に変換し、 15 ビッ トシフ ト変換装置 53Cは入力する剰余 Rc(x)に 15 ビッ トシフ ト処理を行 つて剰余 Rc'(x)に変換する。 合成部 54は剰余 RA'(x), RB'(X), RC'(X), RD(X)をビ ッ 卜毎に EX-OR 演算して合成し、全ビッ 卜力 0"であるか否かによ り誤り検出を 行う。
第 5 実施例によれば、各ビッ トシフ ト変換装置は常に一定数のビッ 卜シフ 卜処 理を行うだけで良いため、構成を簡単にすることができる。
尚、以上の分割データ列のビッ ト長が設定長となるよ うに入力データ列を分割 する という思想は、図 15の誤り検出復号器や図 1の誤り検出符号器にも適用する ことができる。すなわち、 図 1及び図 15のデータ分割分 11、 21は、分割後のデー タ列のビッ ト長が設定長となるよ うに入力データ列を分割し、各分割データ列を 高次側よ り 1 ビッ トづっ CRC演算装置(除算手段)に入力する。
(G ) 第 6実施例
図 35は第 6 実施例の誤り検出復号器の別の構成図であり、 復号方式は図 2 1 の復号方式と同じである。誤り検出復号器において、
①最大の CRC誤り検出符号化ビッ ト長が 60 ビッ 卜であり、
② 4台の CRC演算装置 62A〜62Dが備えられており、
③各 CRC演算装置 62A〜62Dへの最大入力ビッ ト数が 15 ビッ トであり、
④シフ ト変換装置 63A〜63Cがそれぞれ 45 ビッ トシフ ト処理、 30 ビッ トシフ ト処理、 15 ビッ トシフ ト処理を行う ものとする。
上記構成において、 CRC 誤り検出符号化ビッ ト長が 40 ビッ トであったとすれ ば、 入力データ分割制御部 61 は、 この 40 ビッ トを低次側から 15 ビッ トづっ分 割し、順に CRC演算装置 62D、 CRC演算装置 62Cに入力し、 15 ビッ トに満たな い装置へは高次側に" 0"を埋め込んで トータル 15 ビッ 卜を入力する。従って、入力 データ分割制御部 61は、 CRC演算装置 62A,62B,62C,62Dにそれぞれ
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, 0 , 0
0 , 0 , 0, 0 , 0 ,x39, X38, X37, X36, X35, X34, X33, χ32, χ31, χ30
Χ29; χ28, χ27, Χ26; χ25; χ24, χ23, χ22, χ21, χ20, χ19, χ18, χ17' χ16, χ15
Χ", Χ13; Χ12, Χ11' Χ10' χ9 , χ8, Χ7 , Χ6 , χδ, χ4, χ3' χ2 , χ1 , Χ0
を入力する。
以上によ り 、 CRG演算装置 62Α, 62B, 62C, 62Dは 15 ビッ トのデータが入力 された時点におけるシフ ト レジスタの内容を剰余 RA(X) (= 0 ), RB(x), RC(X), RD(X)と して出力する。 又、 45 ビッ 卜シフ 卜変換装置 63A は入力する剰余 RA(X) ( = 0 ) に 45 ビッ トシフ ト処理を行って剰余 RA'(X)(=0)に変換し、 30 ビッ トシフ ト変換装置 63Bは入力する剰余 RB(X)に 30ビッ トシフ ト処理を行って剰余 RB'(X) に変換し、 15 ビッ トシフ ト変換装置 63Cは入力する剰余 Rc(x)に 15 ビッ 卜シフ 卜 処理を行って剰余 Rc'(x)に変換する。 合成部 64は剰余 RA'(X), RB'(X), RC'(X), RD(X)をビッ ト毎に EX-OR演算して合成し、全ビッ ト力 0"であるか否かにより誤 り検出を行う。
また、 CRC誤り検出符号化ビッ 卜長が 50 ビッ 卜であつたとすれば、 入力デー タ分割制御部 61は、 入力データを低次側より 15,15,15,5づっ分割し、 CRC演算
装置 62A,62B,62C,62Dにそれぞれ
0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, χ49, Χ48; Χ47; Χ46; χ 5
χ44 χ43 χ42 χ41 χ40 χ39' χ38 χ37 ν36 χ3Β χ34 χ33 χ32 χ81 χ30
χ29 γ28 χ27 χ26 χ25 χ24 χ23 χ22 ν21 χ20 χ19 χ18 χ17 χ16 χ15
X", Χ13, Χ12, Χ11, χ10, Χ9 , Χ8 , Χ7 , Χ6 , Χ5, χ4 , χ3, χ2 , χ1, χ0
を入力する。
以上によ り 、 CRC演算装置 62Α, 62B, 62C, 62Dは 15ビッ トのデータが入力 された時点におけるシフ ト レジスタの内容を剰余 I (x), RB(X), RC(X), RD(X)と して出力する。又、 45 ビッ トシフ ト変換装置 63Aは入力する剰余 RA(X)に 45 ビッ 卜シフ 卜処理を行って剰余 RA'(X)に変換し、 30 ビッ トシフ ト変換装置 63Bは入力 する剰余 RB(X〉に 30 ビッ 卜シフ ト処理を行って剰余 RB'(X)に変換し、 15 ビッ トシ フ 卜変換装置 63C は入力する剰余 Rc(x)に 15 ビッ トシフ 卜処理を行って剰余 RG'(X)に変換する。 合成部 64は剰余 I '(x), RB'(X), RG'(X), RD(X)をビッ ト毎に EX-OR演算して合成し、全ビッ トカ 0 "であるか否かによ り誤り検出を行う。 第 6実施例によれば、各 CRC演算装置には常に一定数のデータが入力するため 構成を簡単にできる。又、各ビッ 卜シフ ト変換装置は常に一定数のビッ トシフ ト処 理を行うだけで良いため、ますます構成を簡単にすることができる。
以上のビッ ト長が設定長に満たない分割データ列の高次側に前記満たない分 " 0 " を付加する思想は、図 15の誤り検出復号器や図 1の誤り検出符号器にも適 用することができる。すなわち、 図 1及び図 15のデータ分割分 11、 21は、分割後 のデ一タ列のビッ 卜長が設定長となるよ う に入力データ列を分割し、ビッ 卜長が 設定長に満たない分割データ列の高次側に前記満たない分 "0" を付加して各分 割データ列を高次側よ り 1 ビッ トづっ CRC演算装置(除算手段)に入力する。
(H) 第 7実施例
図 36は第 7実施例の誤り検出復号器の構成図であり、図 31の誤り検出復号器 と同一部分には同一符号を付している。異なる点は、①ビッ トシフ 卜処理により得 られた剰余 RA'(X), RB'(X), RC'(X), RD(X)を記憶する記憶装置 26A〜26D を設け ている点、②誤り検出によ り再入力された 8 ビッ トの分割データのみ再度剰余を 計算し、該剰余と保存されている他の分割データの剩余を合成して CRCパリティ
を出力する点である。
第 7実施例の誤り検出復号器において、最初の誤り検出は、 図 31 と同様の方法 で行うが、 誤りが検出されて、 データが部分的に再入力がされた場合には、再入力 された 8 ビッ トの分割データのみ再度剰余を計算し、該剰余と保存されている他 の分割データの剰余を合成して CRCパリティを出力する。
初期時には、全ての CRC演算装置 22A〜 22Dにおけるシフ ト レジスタの初期値 を " 0 " にしておく。 図示しないデータ分割部は、 48 ビッ トのデータ列を低次側 16 ビッ トの CRCパリティ χθ〜χΐ 5と高次側の 32ビッ トの入力データ χΐ6〜Χ47に 分離し、 更に、 32 ビッ 卜の入力データを 8 ビッ トづつの Χΐ 6〜 χ23、 Χ24〜χ31、 χ32
〜 9、 χ4ο〜χ47に分割して各 CRC演算装置 22A〜 22D に入力する。
CRC 演算装置 22A のシフ ト レジスタへは 8 クロ ックで x"〜x«が高次側より 入力し、 該 CRC演算装置 22Aの演算結果 (A(x)/G(x)の剰余 RA(x)) は 24 ビッ ト シフ 卜装置 23Aに入力し、 ここで 24 ビッ トシフ 卜処理されて x«A(x) /G(x)の剰 余 I '(X)に変換され,記憶装置 26Aに記億される。
又、 CRC演算装置 22Bのシフ トレジスタへは 8クロ ックで X 〜 X32が高次側よ り入力し、 該 CRC演算装置 22B の演算結果 (B(x)/G(x)の剰余 RB(X)) は 16 ビッ 卜シフ ト装置 23B に入力し、 ここで 16 ビッ トシフ ト処理されて χΐ6Β(χ) /G(x)の 剰余 RB' (X)に変換され,記憶装置 26Bに記憶される。
又、 CRC演算装置 22 Cのシフ トレジスタへは 8クロ ックで x3i~x24が高^側よ り入力し、 該 CRC演算装置 22C の演算結果 (C(x)/G(x)の剰余 Rc(x)) は 8 ビッ トシフ ト装置 23Cに入力し、 ここで 8 ビッ トシフ ト処理されて x8C(x) /G(x)の剰 余 Rc'G )に変換され,記憶装置 2 6 Cに記憶される。
CRC演算装置 22D のシフ ト レジスタへは 8 クロ ックで χ23〜χ が高次側よ り 入力し、 D(x)/G(x)の剰余 RD(X)が演算され,記憶装置 26Dに記憶される。
以上の演算を同時に行い、 合成部 2 4はこれちの演算結果である剰余 RA'(x), RB' (X) , RG' (X) , RD(X)をビッ トごとに EX- O Rをとつて合成し、 CRCパリティ ビッ ト P' (x)を出力する。 比較部 25は、 この CRC ノ リティ ビッ ト P'(x)と、入力データ に付加されている CRC ビッ トビッ ト Ρ(χ) ( χΐ 5〜χο)とをビッ ト毎に EX-ORをと つて加算(論理和)することで誤り を検出する。 すなわち、 演算結果である CRCパ
リティ ビッ 卜 P'(x)と入力データに付加されている CRCパリティ ビッ ト P(x)が全 て等しく、誤り が無ければ 比較部 25 は" 0"を出力し、誤りが有れば" Γを出力する。 ここで誤りがあった場合、 例えば 9〜 X32のみが再入力された場合、 CRC演算 装置 22Bのシフ ト レジスタのみに 8ク ロ ックで 8ビッ トデータ x39〜x32が再入力 し、 該 CRC演算装置 22B の演算結果 (B(x)/G(x)の剰余 RB (X) ) は 16 ビッ トシフ 卜装置 23B に入力し、 ここで 16 ビッ トシフ ト して χΐ6Β(χ) /G(x)の剰余 RB' (X)に 変換される。
合成部 24は、記憶装置 26A, 26C, 26Dに記憶されている剰余 RA' (X) , RG' (X) , RD(X)を読出し、 これらと 16 ビッ トシフ ト回路 23Bで 16 ビッ トシフ ト処理して 得られた結果 RB'(X)とをビッ トごとに EX- ORをとる。 比較部 25 は、 この 16 ビ ッ トの CRCパリ ティ P'(x〉と、入力データに付加されている CRC ビッ ト : Ρ(χ) (χΐ5 〜χθ)と ビッ 卜毎に EX- ORをとつて加算(論理和)することで誤り を検出する。
次に第 7実施例の適用例について示す。 CRCが 2重にかけられている場合につ いて図 3 7 ( A) , (Β)に従って説明する。 尚、図 37(A)はシステム全体の構成図、図 37(B)はデータ処理説明図である。
送信側 101は、 情報全体に対して L2 レイヤの CRC誤り検出符号化を行う。 つ いで、 誤り検出符号化されたデータ (L2 レイヤの CRCパリティ付きのデータ) を複数 a〜dに分割し、各分割データに L 1 レイヤの CRC誤り検出符号化を行い、 最後に誤り訂正符号化を行って送信する。
受信側 102は、 誤り訂正復号後、復号データを複数 A〜Dに分割し、各分割デー タに L 1 レイヤの CRC誤り検出処理を施す。 LI CRC誤り検出の結果、 全て誤り 検出なしと判断されてから L2レイヤの CR C誤り検出処理を行う と演算を 2回に 分けて行うため効率が悪い。そこで L 1 レイヤ及び L2 レイヤにおける誤り検出処 理を両方同時に行う。 と ころが、 L 1 レイヤの CRC誤り検出によ りデータ列 A〜 Dのう ちどこか一つでも誤りが検出されてしまう と L2レイヤでの CRC誤り検出 処理は無駄になつてしまい、 L 1 レイヤの誤った部分だけ再送されたと しても最初 から同じ演算を行う ことになる。
そこで、 第 7実施例の方法を適用する。 すなわち、 L2 レイヤの CRC誤り検出 の演算単位を a〜d とすることによ り、 L 1 レイヤの 誤り検出の CRC演算単位と
同じ長さにして行ない、演算結果を保存し、データが部分的に再送された場合にそ の部分のみを演算する。このよ うにすれば、効率のよい L2 レイヤの CRC 誤り検 出を行う ことができる。 L2 レイヤ以上の高位レイャは処理をソフ トウエアで行う ことが多いため、部分的な演算で結果が得られることは、プロセッサの処理効率が 向上して好ましい。
図 38 は第 7実施例の適用例である誤り検出復号器の構成図である。 入力デー タ分割制御部 71 は入力デ一タ列を L1 レイヤの CRC演算単位 A〜D (図 37(B)参 照)に分割し、 それぞれを LI CRC誤り検出装置 72A〜72Dに入力する と共に、 L2 CRC誤り検出装置 70の CRC演算装置 74A〜74Dに入力する。 Ll CRC誤り検出 装置 72A〜72D及ぴ L2 CRC誤り検出装置 70は同時に誤り検出処理を行う。
Ll CRC誤り検出装置 72A〜72Dは分割データ列 A〜Dについて CRC演算を行 レ、、演算結果を出力する。 CRC監視部 73は Ll CRC誤り検出装置 72A〜72Dの誤 り検出結果に基いて L1 レイヤの誤り の有無を監視し、 誤りがなければ合成許可 信号を L2 CRC誤り検出装置 70の合成部に入力する。
以上と並行して L2 CRC誤り検出装置 70の CRC演算装置 74A〜74Dは入力デ ータ列 A〜Dに含まれる Ll CRCパリティを除いたデータ部分を生成多項式で除 算した剰余を出力する。シフ ト変換装置 75A〜75Cはデータ A〜C列の分割位置に 応じたビッ トシフ 卜分、 CRC演算装置 74A〜74Cで求めた剰余にビッ トシフ ト処 理を施して変換し、記憶部 76 A〜76D に保存する。合成部 77 は、 CRC 監視部 73 からの合成許可信号によ り記憶部 76 A〜76D に記憶されている剰余を合成(ビッ ト毎の EX-OR 演算)し、誤り検出部 7 8は合成結果に基づいて L2 レイヤの CRC 誤り検出を行う。
Ll CRC誤り検出装置 72A〜72D のいずれかの誤り検出結果が誤り を示してい れぱ、 CRC監視部 73は送信側に誤っているデータ部分の再送を要求する。例えば データ列 Bに誤りが含まれていれば、該データ列 Bの再送を要求する。入力デ一タ 分割制御部 71はデ一列タ Bが再送されてくれば Ll CRC検出装置 72Bと L2 CRC 誤り検出装置 70 の CRC演算装置 74Bに入力する。
Ll CRC誤り検出装置 72Bは分割データ列 Bについて CRC演算を行い、演算結 果を出力する。 CRC監視部 73は Ll CRC誤り検出装置 72A〜72Dの誤り検出結
果に基いて L1 レイヤの誤りの有無を監視し、誤りがなければ合成部 77 に合成を 許可する。以上と並行して、 CRC 演算装置 74B は, 入力デ一タ Bに含まれる L 1 CRCパリティ を除いたデータ部分を生成多項式で除算した剰余を出力し、 シフ ト 変換装置 75Bはデータ Bの分割位置に応じたビッ トシフ ト分、 CRC演算装置 74B で求めた剰余にビッ トシフ ト処理を施して変換して記憶部 76B に記憶する。合成 部 77は CRC監視部 73 からの許可信号によ り、記憶部 76 A〜 76Dに記憶されて いる剰余を合成(ビッ ト毎の EX-OR演算)し、誤り検出部 7 8は合成結果に基づい て L2 レイヤの GRC誤り検出を行う。
( I ) 第 8実施例
図 3 9は第 8実施例の誤り検出復号器の別の構成図で、 CRCを 2重にかける図 3 7 ( A) に示すシステム構成において適用できるもの、 図 40 はデータ処理説明 図である。
誤り検出符号器側では図 40 に示すよ うに、 112 ビッ 卜の情報全体に対して L2 レイヤの CRC誤り検出符号化を行って 16ビッ トの L2 CRCノ リティを付加する。 ついで、 誤り検出符号化された 128 ビッ トのデータ (L2 CRCパリティ付きのデ ータ) を 32 ビッ トづつの複数のデータ列 A〜 Dに分割し、各分割データ列 A〜 D に 16 ビッ 卜の LI CRCパリティを付加し、最後に誤り訂正符号化を行って送信す る。
受信側に設けられた LI CRC演算部 80(図 39)は、一致検出復号方法により L1 CRC演算を行う。尚、 LI CRC演算部 80はオール" 0"検出復号方法や本発明の復号 方法など任意の復号方法を用いることができる。また、 L2 CRC 演算部 90 は、図 21 に示す復号方法によ り L2 CRC演算を行う ものとする。
L I CRC演算部 80は、 まず、最初の LI CRC演算をおこなう。 すなわち、 32bit のデータ A ( Χ 191 , Χ 190; Χ189 ; χ 188 > . . · , Χ161, χ160) を除算器 81 のシフ ト レジス タ SRに入力する。シフ ト レジスタへの入力が完了したとき、誤り検出部 82は、 シ フ 卜 レジス タ SR の値(剰余 RA(X))と LI CRC ノ リ テ ィ (X159, Χ158, Χ157; xi 5e, . . . ) X 5; xi44 ) を比較し、 全ビッ ト一致しているか否かで LI CRC誤り 検出を行う。 これと同時に、 シフ トレジスタの値(剰余 RA(X))を L2 CRC 演算部 90に引き渡す。 L2 CRC演算部 90はスィ ッチ 91 を制御することでこの値を記憶
装置 92Aに格納する。
ついで、 LI CRC演算部 80は、 シフ ト レジスタ SRをク リアして次の LI CRC 演算を行う。すなわち、 32Tbitのデータ B(x"3, x" 2, xi 4i , x"o, . . . , x iis, χιΐ2) をシフ トレジスタ SR に入力する。シフ トレジスタへの入力が完了したとき、誤り 検出部 82は、シフ ト レジスタ SRの値(剰余 RB(X))と L I CRC ノヽ。リティ(xm , X no;
X109, X108, . . · , X97, χ96〉 とを比較し、 全ビッ ト一致しているか否かで L 1 CRC 誤り検出を行う。 これと同時に、 シフ トレジスタの値(剰余 RB (X))を L2 CRC演算 部 90に引き渡す。 L2 CRC演算部 90 はスィ ツチ 91 を制御することでこの値を 記憶装置 92B に格鈉する。
ついで、 LI CRC演算部 80は、 シフ ト レジスタ SRをク リアして次の LI CRC 演算を行う。すなわち、 32bitのデータ Β(χ95, χΜ, 3, 2, . . · , χ65, をシフ ト レジスタ SR に入力する。シフ 卜 レジスタへの入力が完了したとき、誤り検出部 82 は、 シフ ト レジスタ SR の値(剰余 Rc(x))と LI CRCパリティ (xss, xes; xsi, X60, · · · , X49, χ48) とを比較し、 全ビッ ト一致しているか否かで L】 CRC誤り 検出を行う。 これと同時に、 シフ ト レジスタの値(剰余 Rc(x))を L2 CRC 演算部 90に引き渡す。 L2 C C演算部 90はスィ ッチ 91を制御するこ とでこの値を記憶 装置 92C に格納する。
ついで、 LI CRC演算部 80 は、 シフ ト レジスタ SRをク リ アして次の LI CRC 演算を行う。すなわち、 32bitのデータ Β(χ47, χ46 , Χ45 , Χ44 , · . . , X17 , χ16)をシフ ト レジスタ SR に入力する。シフ ト レジスタへの入力が完了したとき、誤り検出部 82 は、 シフ ト レジスタ SR の値(剰余 RD(X))と LI CRC ノヽ。リティ (x s, xi 4; xュ 3 , x12, · · · ,χΐ, χθ) とを比較し、 全ビッ ト一致しているか否かで; LI CRG誤り検 出を行う。 これと同時に、 シフ ト レジスタの値 (剰余剰余 RD(X))を L2 CRC演算部 90に引き渡す。 L2 CRC演算部 90はスィッチ 91を制御することでこの値を記憶 装置 92Dに格納する。
以上によ り LI CRC誤り検出が終了すれば、 L2 CRC演算部 90は L2 CRC演算 を開始する。すなわち、 96ビッ トシフ ト部 93Aは記憶装置 92Aから記憶データ(剰 余 RA(X))を読出し、該剰余に 96 ビッ トシフ ト処理を施す。 64 ビッ トシフ ト部 93B は記憶装置 92Bから記憶データ(剰余 RB(X))を読出し、 該剰余に 64 ビッ トシフ 卜
処理を施す。 32 ビッ 卜シフ 卜部 93Cは記憶装置 92Cから記憶データ(剰余 Rc(x)) を読出し、 該剰余に 32 ビッ トシフ ト処理を施す。 合成部 94はビッ トシフ ト後の RA'(X), RB'(X), RC'(X), RD(X) をビッ ト毎に EX-OR演算し、誤り検出部 9 5は合 成結果が全ビッ ト 0であるか否かによ り L2 レイヤの CRC誤り検出を行う。
尚、図 39では、 LI CRC演算部 80が直列的に剰余 RA(X), RB(X), RC(X), RD(X) を演算したが、図 41 に示すよ うに入力データ分割部 83 と 4台の LI CRC演算部 80A〜80Dを設け、それぞれで LI CRCチェックを行う と共に剰余 RA(X),RB(X), Rc(x), RD(X)を演算するように構成することもできる。尚、 LI CRC演算部 80A〜 80Dは図 39の LI CRC演算部 80 と同一の構成を有している。
以上第 8実施例によれば、 L2 CRC演算部のシフ トレジスタ演算を不要に出来、 ハー ドウェア構成を簡単にできる。
( J ) 第 9実施例
以上では、誤り検出符号器及ぴ誤り検出復号器について説明したが、図 1の誤り 検出符号器はそのまま K ビッ トの入力データ列を第 1 の多項式 KG と見立てて 第 2の多項式(生成多項式 G(x))で除算してその剰余を演算する除算装置と して用 いるこ とができる。すなわち、除算装置は、①入力データ列を複数に分割するデー タ分割手段 1 1 、②分割したサブデータ列毎に、サブデータ列の情報ビッ トを多項 式と見立てて第 2 の多項式で除算してその剰余を演算する除算手段 12A〜12D、 ③前記剰余毎に、 サブデータ列の分割位置に応じた変換処理(ビッ トシフ ト処理) を該剰余に施す変換手段 13A〜13 ④前記変換処理によ り得られた各変換値を 合成し、合成結果を K ビッ トの入力デ一タ列を前記第 2の多項式で除算したとき の剰余とする合成部 1 4、 とで構成するこ とができる。
かかる除算装置は、誤り検出符号器に限定されず種々の符号化において利用す ることができる。