(57)【特許請求の範囲】
【請求項１】
１ビット出力する度にビットシフトすると共に出力した１ビットの値が帰還入力される第1のシフトレジスタと、１ビット出力する度にビットシフトする第２のシフトレジスタと、１つの乗算器と、１つの加算器と、ガロア体の逆元を示す値を出力する逆元発生器とを備え、ガロア体の元を係数とする第１の多項式の係数を示す第１のビット列および第２の多項式の係数を示す第２のビット列が、前記第１のシフトレジスタおよび前記第２のシフトレジスタに対して入力され、前記ビット列の一方を除数とし、他方を被除数として、所定条件を満たすまで演算を繰り返すことによってリード・ソロモン符号を復号するリード・ソロモン復号装置のガロア体の除算方法であって、
前記第１のシフトレジスタから除数の最高次数係数を示す１ビットの値を出力し、出力された１ビットの値に基づいて前記逆元発生器から出力されるガロア体の逆元を示す値と、前記第２のシフトレジスタから出力される被除数の最高次数係数を示す１ビットの値とを、前記乗算器によって乗算し、この乗算結果を商の係数として出力する第１の工程と、
前記第1の工程に続いて、前記商の係数と、前記第１のシフトレジスタから出力される１ビットの値とを、前記乗算器によって乗算し、この乗算結果と、第２のシフトレジスタから出力される１ビットの値とを、前記加算器によって加算し、この加算結果を剰余の中間結果として当該第２のシフトレジスタに帰還入力し、前記商の係数と全ての前記除数の係数とが乗算されるまで、乗算と加算とを繰り返す第２の工程と、
を有し、
前記リード・ソロモン復号装置は、前記第１の工程と前記第２の工程とを、前記被除数の次数と前記除数の次数との差に１を加えた回数だけ繰り返すことを特徴とするガロア体の除算方法。
【請求項２】
前記リード・ソロモン復号装置は、前記除数の次数と前記被除数の次数との差に１を加えた回数目の前記第２の工程において、前記第１のシフトレジスタが保持する前記ビット列から１ビット出力する度にビットシフトすると共に、出力された１ビットの値を当該第２のシフトレジスタに帰還入力し、前記加算結果を剰余結果として当該第１のシフトレジスタに帰還入力することを特徴とする請求項１に記載のガロア体の除算方法。
【請求項３】
リード・ソロモン符号を復号する際に、ガロア体の元を係数とする第１の多項式の係数を示す第１のビット列および第２の多項式の係数を示す第２のビット列が入力され、前記ビット列の一方を除数とし、他方を被除数として、ガロア体の逆元を示す値を用いて所定条件を満たすまで演算を繰り返す除算装置であって、
前記除数を記憶し、１ビット出力する度にビットシフトする第１のシフトレジスタと、
前記被除数を記憶し、１ビット出力する度にビットシフトする第２のシフトレジスタと、
前記第１のシフトレジスタから出力される除数の係数を示す１ビットの値に基づいて、ガロア体の逆元を出力する逆元発生手段と、
前記逆元発生手段から出力される逆元と、前記第２のシフトレジスタから出力される被除数の係数を示す１ビットの値とを乗算し、帰還入力される乗算結果と、前記第１のシフトレジスタから出力される除数の係数を示す１ビットの値とを乗算する１つの乗算器と、
前記乗算器の乗算結果を保持し、当該乗算結果を商の係数として出力し、前記乗算器に保持した乗算結果を帰還入力させる保持手段と、
前記乗算器の乗算結果と、第２のシフトレジスタから出力される被除数の係数を示す１ビットの値とを加算し、加算結果を剰余の中間結果として前記第２のシフトレジスタに帰還入力させる１つの加算器と、
前記第１のシフトレジスタから出力される除数の係数を示す１ビットの値、または前記逆元発生手段から出力される逆元のいずれか一方が前記乗算器に入力されるよう、データ経路を切り替える第１の切り替え手段と、
前記第２のシフトレジスタから出力される被除数の係数を示す１ビットの値、または前記保持手段から出力される乗算結果のいずれか一方が前記乗算器に入力されるよう、データ経路を切り替える第２の切り替え手段と、
を備え、
前記乗算器が、前記逆元発生手段から出力される逆元と、前記第２のシフトレジスタから出力される被除数の最高次数係数を示す１ビットの値とを乗算した後、前記商の係数と全ての前記除数の係数とが乗算されるまで、前記乗算器は、帰還入力される乗算結果と、前記第１のシフトレジスタから出力される除数の係数を示す１ビットの値との乗算を繰り返し、前記加算器は、前記乗算器の乗算結果と、第２のシフトレジスタから出力される被除数の係数を示す１ビットの値との加算を繰り返すことによって除算を行い、
前記被除数の次数と前記除数の次数との差に１を加えた回数だけ、当該除算を繰り返すことを特徴とする除算装置。
【請求項４】
前記除数の次数と前記被除数の次数との差に１を加えた回数目の除算を行う際に、前記加算結果が剰余の中間結果として前記第１のシフトレジスタに入力されるようデータ経路を切り替える第３の切り替え手段と、
前記除数の次数と前記被除数の次数との差に１を加えた回数目の除算を行う際に、前記前記第１のシフトレジスタから出力される除数の係数を示す１ビットの値が前記第２のシフトレジスタに入力されるようデータ経路を切り替える第４の切り替え手段と、
を備えることを特徴とする請求項３に記載の除算装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ガロア体の除算方法および除算装置に係り、特に、リード・ソロモン符号（以下、ＲＳ符号と省略する。）の復号を小規模な回路で実現するのに好適なガロア体の除算方法および除算装置に関する。
【０００２】
【従来の技術】
ＲＳ符号は、同じ符号長と情報記号数を持つ巡回符号の中で、最小距離が最大となる優れた符号であり、多重誤り訂正を行う記録、伝送等の分野で広く利用されている。
【０００３】
ＲＳ符号の復号過程は、次に示す（ａ）から（ｆ）の手順により構成されている。
【０００４】
（ａ）受信多項式からシンドロームを計算し、シンドローム多項式Ｓ（Ｘ）  を求める。
【０００５】
（ｂ）シンドロームがすべて零であれば（Ｓ（Ｘ）  ＝０）、誤りなしと判定する。
（ｃ）シンドロームに非零のものがあれば、基本方程式
【数１】
Λ（Ｘ）  Ｓ（Ｘ）  ＝Ω（Ｘ）  ｍｏｄＸ２ｔ    …（１）
ＤＥＧ（Λ（Ｘ））  ≦  ｔ            …（２）
ＤＥＧ（Ω（Ｘ））  ≦  ｔ−１        …（３）
を満足する誤り位置多項式Λ（Ｘ）  及び誤り評価多項式Ω（Ｘ）  を求める。ここで、ｔは誤り訂正数であり、ＤＥＧ  は多項式の次数である。
【０００６】
（ｄ）誤り位置多項式Λ（Ｘ）  に符号生成多項式の根を代入することにより、誤り位置を求める。
【０００７】
（ｅ）誤り位置多項式Λ（Ｘ）  の微分と誤り評価多項式Ω（Ｘ）  から誤り数値を求める。
【０００８】
（ｆ）誤り位置及び誤り数値を用いて受信語を訂正し、復号語を得る。
【０００９】
以上のＲＳ符号の復号過程において、（ｃ）の基本方程式の解法として、ユークリッドの互除法に基づくユークリッド法が知られている。
ユークリッド法は、誤り位置多項式Λ（Ｘ）  及び誤り評価多項式Ω（Ｘ）  を求めるのに際し、（１）式のうち既知であるシンドローム多項式Ｓ（Ｘ）  とＸ２ｔとの最大公約多項式を求めるユークリッドの互除法を用いるものである。
【００１０】
次に、図２にユークリッド法を用いたＲＳ復号装置の全体構成図を示す。このＲＳ復号装置は、受信信号（受信多項式）からシンドローム多項式Ｓ（Ｘ）  を求めるシンドローム演算器２０１と、シンドローム多項式Ｓ（Ｘ）  から誤りの大きさ（誤り数値）の指標となる誤り評価多項式Ω（Ｘ）  を導く除算回路２０２と、この除算の商から誤り位置の指標となる誤り位置多項式Λ（Ｘ）  を導く乗算回路２０３と、誤り位置多項式Λ（Ｘ）  及び誤り評価多項式Ω（Ｘ）  から誤り位置及び誤りの数値を求めるチェン探索回路２０４と、受信信号を復号遅延分だけ遅延させる遅延回路２０６と、遅延された受信信号に誤り訂正を施す訂正実行回路２０５とを備えて構成されている。
【００１１】
ここで、除算回路２０２は、式（１）〜（３）を満足するΛ（Ｘ）  及びΩ（Ｘ）  を、Ｓ（Ｘ）  とＸ２ｔとの最大公約多項式を求めるユークリッド互除法を用いて求めるものであり、式（４）、（５）で示す漸化式により、誤り評価多項式を導くことができる。
【００１２】
【数２】
ＴＡ  ＝０：  Ｒｉ（Ｘ）＋Ｑｉ（Ｘ）    ＝Ｒｉ−２（Ｘ）／Ｒｉ−１（Ｘ）  …（４）
ＴＡ  ＝１：  Ｒｉ＋１（Ｘ）＋Ｑｉ＋１（Ｘ）＝Ｒｉ−１（Ｘ）／Ｒｉ（Ｘ）    …（５）
ここで、ＴＡ  ＝０、１、…は、時刻の経過を示す。
なお、初期状態は、
【数３】
Ｒ−２（Ｘ）＝Ｘ２ｔ          …（６）
Ｒ−１（Ｘ）＝Ｓ（Ｘ）      …（７）
であり、ＴＡ  ＝０では、Ｘ２ｔ／Ｓ（Ｘ）を計算して剰余と商を求めることになる。上記漸化式は、剰余の次数がｔ−１以下（ｔ：誤り訂正数）になるまで続けられ、このときの最終的な剰余が誤り評価多項式となる。
【００１３】
次に、ガロア体の除算について説明する。元の数が２であるＧＦ（２）のガロア体の除算、例えば、Ｘ４÷（Ｘ３＋Ｘ２＋１）なる除算を行う場合、除算回路は図３（ａ）に示すような回路構成となり、除算終了時には商はＸ＋１、剰余はＸ２＋Ｘ＋１となる。
【００１４】
時刻の経過毎にレジスタ３０１〜３０３の内容を示すと次の表となる。
【００１５】
【表１】
0003614978.tif 000002
この除算回路をガロア体ＧＦ（ｑ）（ただし、ｑ＞２）に拡大して一般化し、Ｘ４÷（ａＸ３＋ｂＸ２＋ｃＸ＋１）なる多項式の除算を行う場合、図３（ｂ）に示すような回路構成となる。除数の最高次数係数は逆元をとり、被除数と掛け合わされて商の係数となると同時に、フィードバックされて、レジスタ３１３〜３１５へ蓄えられた除数の係数と、乗算器３１７〜３１９を用いて掛け合わされる。  次に、ＲＳ復号装置に用いられる従来の除算回路の例を図４（ａ）に示す。同図において、４０１〜４０８、４１１〜４１８は、それぞれクロックＣＫ１、ＣＫ２が更新タイミングとなるレジスタ群であり、演算開始時には、それぞれのレジスタ群の各レジスタは、それぞれ被除数または除数の多項式の係数を１つづつ格納している。４３１、４３２、…は、ガロア体の加算器、４４１、４４２、…、４４８はガロア体の乗算器、４５１はガロア体の逆元を出力するＲＯＭ、４２１、４２２、…４２８は３ウェイのスイッチ（セレクタ）である。なお、図４において、ＣＫ１、ＣＫ２及びＱＥＮを除いて、信号線は全てバスを示し、ガロア体の元をベクトル表示するのに要するビット幅を有するものとする。
【００１６】
次に、この従来の除算回路の動作を説明する。まずスイッチ４２１〜４２８でシンドロームＳ０、Ｓ１、…Ｓ７を選択し、クロックＣＫ１を入力してレジスタ４０１〜４０８に除数となるシンドローム多項式Ｓ（Ｘ）の係数を取り込む。
【００１７】
次いでクロックＣＫ２を入力してレジスタ４０１〜４０８の内容をレジスタ４１１〜４１８に移す。これと同時にＳ０、Ｓ１、…Ｓ７から（０、０、…、１）を供給し、クロックＣＫ１を入力してレジスタ４０１〜４０８に被除数多項式Ｘ２ｔの係数を取り込む。これにより、レジスタ４０１〜４０８には、被除数多項式の係数が設定され、レジスタ４１１〜４１８には除数多項式の係数が設定されたことになる。
【００１８】
次いで、スイッチ４２１〜４２８は、それぞれ中央の接点を選択し０または加算器の出力に接続されるとともに、制御信号ＱＥＮが論理“１”となり、レジスタ４１８に保持されたＳ７（除数の最高次数の係数）の逆元が乗算器４４８に供給され、レジスタ４０８の内容と乗算される。この乗算結果は商Ｑ（Ｘ）の係数となるとともに、乗算器４４１、４４２、…、４４７により、それぞれ除数の係数と並列に掛け合わされる。乗算器４４１〜４４７の乗算結果は、加算器４３１〜４３７によりレジスタ４０１〜４０７の値に加えられ、クロックＣＫ１によりそれぞれ次段のレジスタ４０２〜４０８に取り込まれる。
【００１９】
ここで、ＲＳ復号に用いられる多項式である除数の係数はガロア体であり、このガロア体の体生成多項式の最高次数と等しいビット数で表現される。体生成多項式の最高次数をｙとすると、上記乗算器は、それぞれ“ｙビット×ｙビット”のガロア体の掛け算となり、回路規模が大きくなる。
【００２０】
また除算終了後、式（４）、（５）に示すように、剰余は除数となり除数は被除数となり、再び除算を行うことになるが、この除算モード及び剰余と除数との入れ替えモードの切り換えは、各係数段に用意されたスイッチ４２１〜４２８を切り換えて行っていた。
【００２１】
例えばすべてのスイッチ４２１〜４２８に対して、除算時には図４（ｂ）に示すような接続状態となり、通常の除算を行うが、入れ替え時には、図４（ｃ）に示すような接続状態となり、剰余と除数との入れ替えが行われる。
【００２２】
また、上記のような専用の除算回路を備えることなく、ディジタル・シグナル・プロセッサ（以下、ＤＳＰと略す。）に設けた乗算器により除数の係数と商の係数の乗算をシリアルに行うことも考えられる。この場合には、除数、被除数、商、剰余等は、メモリに格納され、１つの乗算毎にそれぞれ除数、剰余の記憶場所にアクセスするためのポインタ制御が必要となる。
【００２３】
【発明が解決しようとする課題】
しかしながら、上記従来のガロア体である多項式の除算回路は、除数のそれぞれの次数の係数と商の係数との乗算を並列に行っていたため、除数の次数分（２ｔ（ｔ：誤り訂正数））だけの乗算回路を必要とし、除算回路の回路規模が大きくなるという問題点があった。
【００２４】
例えば、ガロア体の体生成多項式をＸ８＋Ｘ４＋Ｘ３＋Ｘ２＋１とし、誤り訂正数ｔ＝８の時、除数の次数は１６となり、乗算器は１６必要となる。この場合乗算器当たりのゲート数は約３００であるから、乗算器の総ゲート数は約４８００ゲートとなる。
【００２５】
また、リード・ソロモン復号器に除算器を用いる場合、ユークリッド法の漸化式を計算するために除数と剰余との入れ替えが生じ、多数のセレクタを必要とするという問題点があった。
【００２６】
またＤＳＰに設けた乗算器により除数の係数と商の係数の乗算をシリアルに行う場合には、１つの乗算毎にそれぞれ除数、剰余の記憶場所にアクセスするためのポインタ制御のために数クロックを必要とし、高速な除算を必要とするＲＳ復号には不適当であるという問題点があった。
【００２７】
以上の問題点に鑑み、本発明の課題は、小規模な回路構成により比較的高速なガロア体の除算回路を実現することである。
【００２８】
【課題を解決するための手段】
上記目的を達成するために、請求項１に記載の発明であるガロア体の除算方法は、１ビット出力する度にビットシフトすると共に出力した１ビットの値が帰還入力される第1のシフトレジスタと、１ビット出力する度にビットシフトする第２のシフトレジスタと、１つの乗算器と、１つの加算器と、ガロア体の逆元を示す値を出力する逆元発生器とを備え、ガロア体の元を係数とする第１の多項式の係数を示す第１のビット列および第２の多項式の係数を示す第２のビット列が、前記第１のシフトレジスタおよび前記第２のシフトレジスタに対して入力され、前記ビット列の一方を除数とし、他方を被除数として、所定条件を満たすまで演算を繰り返すことによってリード・ソロモン符号を復号するリード・ソロモン復号装置のガロア体の除算方法であって、前記第１のシフトレジスタから除数の最高次数係数を示す１ビットの値を出力し、出力された１ビットの値に基づいて前記逆元発生器から出力されるガロア体の逆元を示す値と、前記第２のシフトレジスタから出力される被除数の最高次数係数を示す１ビットの値とを、前記乗算器によって乗算し、この乗算結果を商の係数として出力する第１の工程と、前記第1の工程に続いて、前記商の係数と、前記第１のシフトレジスタから出力される１ビットの値とを、前記乗算器によって乗算し、この乗算結果と、第２のシフトレジスタから出力される１ビットの値とを、前記加算器によって加算し、この加算結果を剰余の中間結果として当該第２のシフトレジスタに帰還入力し、前記商の係数と全ての前記除数の係数とが乗算されるまで、乗算と加算とを繰り返す第２の工程とを有し、前記リード・ソロモン復号装置は、前記第１の工程と前記第２の工程とを、前記被除数の次数と前記除数の次数との差に１を加えた回数だけ繰り返すことを特徴とする。
【００２９】
また、請求項２に記載の発明であるガロア体の除算方法は、請求項１に記載のガロア体の除算方法であって、前記リード・ソロモン復号装置は、前記除数の次数と前記被除数の次数との差に１を加えた回数目の前記第２の工程において、前記第１のシフトレジスタが保持する前記ビット列から１ビット出力する度にビットシフトすると共に、出力された１ビットの値を当該第２のシフトレジスタに帰還入力し、前記加算結果を剰余結果として当該第１のシフトレジスタに帰還入力することを特徴とする。
【００３０】
また、請求項３に記載の発明である除算装置は、リード・ソロモン符号を復号する際に、ガロア体の元を係数とする第１の多項式の係数を示す第１のビット列および第２の多項式の係数を示す第２のビット列が入力され、前記ビット列の一方を除数とし、他方を被除数として、ガロア体の逆元を示す値を用いて所定条件を満たすまで演算を繰り返す除算装置であって、前記除数を記憶し、１ビット出力する度にビットシフトする第１のシフトレジスタと、前記被除数を記憶し、１ビット出力する度にビットシフトする第２のシフトレジスタと、前記第１のシフトレジスタから出力される除数の係数を示す１ビットの値に基づいて、ガロア体の逆元を出力する逆元発生手段と、前記逆元発生手段から出力される逆元と、前記第２のシフトレジスタから出力される被除数の係数を示す１ビットの値とを乗算し、帰還入力される乗算結果と、前記第１のシフトレジスタから出力される除数の係数を示す１ビットの値とを乗算する１つの乗算器と、前記乗算器の乗算結果を保持し、当該乗算結果を商の係数として出力し、前記乗算器に保持した乗算結果を帰還入力させる保持手段と、前記乗算器の乗算結果と、第２のシフトレジスタから出力される被除数の係数を示す１ビットの値とを加算し、加算結果を剰余の中間結果として前記第２のシフトレジスタに帰還入力させる１つの加算器と、前記第１のシフトレジスタから出力される除数の係数を示す１ビットの値、または前記逆元発生手段から出力される逆元のいずれか一方が前記乗算器に入力されるよう、データ経路を切り替える第１の切り替え手段と、前記第２のシフトレジスタから出力される被除数の係数を示す１ビットの値、または前記保持手段から出力される乗算結果のいずれか一方が前記乗算器に入力されるよう、データ経路を切り替える第２の切り替え手段とを備え、前記乗算器が、前記逆元発生手段から出力される逆元と、前記第２のシフトレジスタから出力される被除数の最高次数係数を示す１ビットの値とを乗算した後、前記商の係数と全ての前記除数の係数とが乗算されるまで、前記乗算器は、帰還入力される乗算結果と、前記第１のシフトレジスタから出力される除数の係数を示す１ビットの値との乗算を繰り返し、前記加算器は、前記乗算器の乗算結果と、第２のシフトレジスタから出力される被除数の係数を示す１ビットの値との加算を繰り返すことによって除算を行い、前記被除数の次数と前記除数の次数との差に１を加えた回数だけ、当該除算を繰り返すことを特徴とする。
【００３１】
また、請求項４に記載の発明である除算装置は、請求項３に記載の除算装置であって、前記除数の次数と前記被除数の次数との差に１を加えた回数目の除算を行う際に、前記加算結果が剰余の中間結果として前記第１のシフトレジスタに入力されるようデータ経路を切り替える第３の切り替え手段と、前記除数の次数と前記被除数の次数との差に１を加えた回数目の除算を行う際に、前記前記第１のシフトレジスタから出力される除数の係数を示す１ビットの値が前記第２のシフトレジスタに入力されるようデータ経路を切り替える第４の切り替え手段とを備えることを特徴とする。
【００３３】
上記構成による本発明のガロア体の除算方法及び除算装置によれば、ただ一つの乗算器を用いて、被除数の係数と商の係数との乗算を、被除数の次数毎に直列に行うことができるので、除算回路の回路規模を大きく削減することができる。また本発明によれば、除数、被除数または剰余をシフトレジスタに格納するようにしたので、演算の進行とともにシフトレジスタをシフトするだけで、演算に必要な数値を乗算器に供給するとともに演算結果を格納することができるので、高速なガロア体の除算を行うことができる。
【００３４】
【発明の実施の形態】
次に、図面を参照して本発明の実施の形態を詳細に説明する。
図１は、本発明に係るガロア体の除算装置の実施の形態を示すブロック図である。同図に示すように、ガロア体の除算装置は、シフトレジスタ１０１、１０３と、レジスタ１０５、１０７と、入力されたガロア体の元の逆元を出力する逆元ＲＯＭ１０９と、乗算器１１１と、加算器１１３と、レジスタ１１５と、２ウェイセレクタ（スイッチ）１１７、１１９、１２１、１２３、１２５、１２７及び１２９と、入力端子１３１とからなる。
【００３５】
なお、シフトレジスタ１０１、１０３は、それぞれガロア体の元を保持可能なレジスタが８個直列に接続され、この元をシフト動作により順送り可能としたものであり、レジスタ１０５、１０７及びレジスタ１１５もガロア体の元を保持することが可能なものである。また、データ経路は、それぞれガロア体の元を伝送可能なバスであり、これらのレジスタのビット数及びバスのビット数は、ガロア体をベクトル表現したときのビット数に一致する。同様に乗算器１１１はガロア体の乗算器であり、加算器１１３はガロア体の加算器である。
【００３６】
次に、図１のガロア体の除算装置の動作を説明する。まず、入力端子１３１からは、最初の除数となるシンドローム多項式Ｓ（Ｘ）の各次数の係数が最高次数から順に与えられ、下側に倒されたスイッチ１２９を介してシフトレジスタ１０１に右詰で格納される。同様に、最初の被除数となるＸ２ｔの係数（１、０、０…、０）がシフトレジスタ１０３に右詰で格納される。この格納が終わるとスイッチ１２９は上側に倒され、この状態の時刻をＴ＝０とする。
【００３７】
次の時刻：Ｔ＝１では、シフトレジスタ１０１から除数の最高次数係数が逆元ＲＯＭ１０９及びレジスタ１０５へ入力され、同時にシフトレジスタ１０１に格納された値は右へ一つシフトする。また、被除数の最高次数係数は、レジスタ１０７に入力される。
【００３８】
Ｔ＝２では、スイッチ１１７は上側へ倒され、スイッチ１１９は下側へ倒される。そして逆元ＲＯＭ１０９からの出力とレジスタ１０７からの出力が乗算器１１１を用いて掛け合わされ、この乗算結果はレジスタ１１５に保持される。
【００３９】
Ｔ＝３では、スイッチ１１７は下側へ倒され、スイッチ１１９は上側へ倒される。そしてレジスタ１１５に保持された値が商の最高次数係数として出力されると同時に、このレジスタ１１５に保持された値と、次なる除数の係数であるシフトレジスタ１０１の出力とを乗算器１１１を用いて掛け合わせ、この乗算結果とシフトレジスタ１０３から出力される被除数係数とを、加算器１１３を用いて足し合わせて剰余の中間結果を出力する。
【００４０】
この剰余の中間結果はスイッチ１２１及び１２５を介してシフトレジスタ１０３の入力へフィードバックして格納される。これと同時に除数の係数もレジスタ１０５からスイッチ１２３、１２７、１２９を介してシフトレジスタ１０１へフィードバックして格納される。なお、シフトレジスタ１０１及び１０３に格納された値は、出力のたびに右へ一つシフトするとともに、最も左の位置に新しい値が入力される。
【００４１】
Ｔ＝４からも同様に、レジスタ１１５に保持された値（商の最高次数係数）と、次なる除数の係数であるシフトレジスタ１０１の出力とを乗算器１１１を用いて掛け合わせ、この結果と、シフトレジスタ１０３から出力される被除数の係数とを、加算器１１３を用いて足し合わせて剰余の中間結果を出力する。
【００４２】
この剰余の中間結果は、シフトレジスタ１０３の入力へフィードバックされて格納される。これと同時に、除数の係数もシフトレジスタ１０１の入力へフィードバックされて格納される。上記の動作は、レジスタ１１５に保持された値（商の最高次数係数）とすべての除数係数とが掛け合わされるまで続けられる。ここまでを１つの除算サイクルとする。この除算サイクルは、従来技術における図４（ａ）の並列乗算器を用いた除算動作の１クロックに相当する。
【００４３】
次なる除算サイクルのスタートでは、シフトレジスタ１０３には、上記Ｔ＝３の時にフィードバックした剰余の中間結果の係数が被除数の係数として格納されている。また、シフトレジスタ１０１には、フィードバックされた除数の係数が一巡してＴ＝０の時と同様な状態で格納されている。この状態をＴ′＝０とする。
【００４４】
次の時刻：Ｔ′＝１では、シフトレジスタ１０１から除数の最高次数係数が逆元ＲＯＭ１０９へ入力される。これと同時に、シフトレジスタ１０１に格納された値は右へ一つシフトする。また、被除数の最高次数係数はレジスタ１０７へ入力される。
【００４５】
Ｔ′＝２では、逆元ＲＯＭ１０９の出力とレジスタ１０７の出力とが乗算器１１１により掛け合わされて、この結果がレジスタ１１５に保持される。
【００４６】
Ｔ′＝３では、このレジスタ１１５に保持された値が商の係数として出力されるとともに、この値と次なる除数の係数であるシフトレジスタ１０１の出力とが乗算器１１１により掛け合わされ、この乗算結果とシフトレジスタ１０３から出力される被除数係数とが加算器１１３により足し合わされて剰余の中間結果を出力する。この剰余の中間結果は、フィードバックされてシフトレジスタ１０３に格納される。これと同時に除数の係数もフィードバックされてシフトレジスタ１０１に格納される。
【００４７】
Ｔ′＝４以後も同様に、レジスタ１１５に保持された値（商の係数）と、次なる除数の係数であるシフトレジスタ１０１の出力とを乗算器１１１を用いて掛け合わせ、この乗算結果とシフトレジスタ１０３に格納された被除数の係数とを加算器１１３を用いて足し合わせて剰余の中間結果を出力する。
【００４８】
この剰余の中間結果は、シフトレジスタ１０３の入力へフィードバックされて格納される。これと同時に、除数の係数もシフトレジスタ１０１の入力へフィードバックされて格納される。上記の動作は、レジスタ１１５に保持された値（商の係数）とすべての除数係数とが掛け合わされるまで繰り返される。
【００４９】
上記の除算サイクルは、（除数と被除数の次数の差）＋１の回数だけ行われて終了する。除算が終了した時点では、被除数の係数に代わって剰余となる多項式の係数がシフトレジスタ１０３に格納されているが、これらは次の除算（すなわち式（４）から式（５）へ進む過程）では除数として扱われるため、スイッチ１２３、１２７、１２９の切り換えによりシフトレジスタ１０１へ順次格納される。これと同時にシフトレジスタ１０１に格納されていた除数の係数は、次の除算では被除数として扱われるため、スイッチ１２１、１２５の切り換えによりシフトレジスタ１０３へ格納される。
【００５０】
そして再び除数の最高次数係数は逆元を取り、被除数の係数と掛け合わされて商の係数としてレジスタ１１５に保持され、この値と次なる除数の係数とが掛け合わされたものと被除数係数とが足し合わされるという動作が繰り返される。
【００５１】
このように本実施の形態によれば、ガロア体の乗算器及び加算器をそれぞれただ一つと、除数を初期値とするシフトレジスタと、被除数を初期値とするシフトレジスタとを備えることにより、クロック毎にガロア体の乗算と加算が行えるので、小規模な回路構成で比較的高速にガロア体の除算を実行することができる。また、一つの除算終了後、ユークリッド法では、剰余の係数と除数の係数とを入れ替えることになるが、この入れ替えはそれぞれの係数を保持するシフトレジスタ１０１、１０３に入力を交換するスイッチ１２１、１２３を設け、このスイッチを切り換えてそれぞれのシフトレジスタをシフトさせることにより実現することができる。
【００５２】
さらに、スイッチ１２１、１２３を切り換えるタイミングを早めて、最後の除算サイクルと並列にシフトレジスタ１０１と１０３との入れ替えを行うと、全体の処理時間を短縮することができる。
【００５３】
【発明の効果】
以上説明したように本発明によれば、ガロア体の除算において、ただ一つの乗算器を用いて、被除数の係数と商の係数との乗算を、被除数の次数毎に直列に行うことができるので、除算回路の回路規模を大きく削減することができるという効果がある。
【図面の簡単な説明】
【図１】本発明に係るガロア体の除算装置の実施の形態を示すブロック回路図である。
【図２】ユークリッド法を用いたＲＳ復号装置の全体構成図である。
【図３】（ａ）は、ＧＦ（２）上の除算回路の一例を示す回路図であり、（ｂ）は、ＧＦ（ｑ）上に一般化した除算回路の例を示す回路図である。
【図４】（ａ）はＲＳ復号に用いられる従来の除算回路の例を示すブロック回路図であり、（ｂ）は（ａ）における除算動作を説明する部分回路図であり、（ｃ）は（ａ）における入れ替え動作を説明する部分回路図である。
【符号の説明】
１０１、１０３…シフトレジスタ、１０５、１０７…レジスタ、１０９…逆元ＲＯＭ、１１１…乗算器、１１３…加算器、１１５…レジスタ、１１７、１１９、１２１、１２３、１２５、１２７、１２９…スイッチ、１３１…入力端子。
【図１】
0003614978.tif 000003
【図２】
0003614978.tif 000004
【図３】
0003614978.tif 000005
【図４】
0003614978.tif 000006