(57)【特許請求の範囲】
【請求項１】
符号化された入力ディジタル信号が符号のインターリーブ数に対応して並列して入力され、前記入力ディジタル信号のシンドロームを算出してインターリーブされた符号語間でシリアル化されたデータとしてシンドロームを出力する入力部と、
前記入力部からのインターリーブされた符号語間でシリアル化されたシンドローム出力をそれぞれ処理する誤り位置多項式係数算出部と、誤り値多項式係数算出部とを含む処理部と、
前記処理部からの出力と前記入力ディジタル信号とが入力され、前記処理部からの出力と、前記入力ディジタル信号とから、誤りが訂正された出力ディジタル信号をインターリーブ数に対応して並列に出力する出力部とを備え、
前記誤り位置多項式係数算出部は、前記シリアル化されたシンドロームの値を要素とするYule-Walker方程式の余因子を対称行列に変換して誤り個数および誤り位置多項式係数を算出し、
前記誤り値多項式係数算出部は、前記誤り位置多項式係数を受け取って前記誤り位置多項式係数算出部における誤り位置の算出と並列して誤り値を算出する、
復号回路。
【請求項２】
前記出力部は、前記処理部の出力である入力された誤り位置および誤り値と、前記入力ディジタル信号とからガロア拡大体上における線形演算により算出して前記出力ディジタル信号とする、請求項１に記載の復号回路。
【請求項３】
前記入力ディジタル信号は、それぞれがリード・ソロモン符号化されたｉ−チャンネルの並列入力とされ、さらに前記復号回路は、ｉ：１または１：ｉのマルチプレクサまたはデマルチプレクサを含む、請求項１または２に記載の復号回路。
【請求項４】
前記入力ディジタル信号は、光通信における波長多重通信により送信される、請求項１〜３のいずれか１項に記載の復号回路。
【請求項５】
少なくとも前記入力部は、順序回路から構成され、前記処理部は、組み合わせ回路から構成される、請求項１〜４のいずれか１項に記載の復号回路。
【請求項６】
ディジタル信号の誤り訂正、または暗号化のために使用される、請求項１〜５のいずれか１項に記載の復号回路。
【請求項７】
符号化された入力ディジタル信号を受信するための入力手段と、前記入力ディジタル信号を処理して誤り位置多項式係数と誤り値多項式係数とを算出する処理手段と、前記誤り位置多項式係数と、前記誤り値多項式係数とから誤りが訂正された出力ディジタル信号を出力する出力手段とを含み、
前記入力手段は、前記符号化された入力ディジタル信号が符号のインターリーブ数に対応して並列に入力され、かつ前記符号化された入力ディジタル信号からインターリーブされた符号語間でシリアル化されたデータとしてシンドロームを算出し、
前記処理手段は、誤り位置多項式係数算出部と、誤り値多項式係数算出部とを含み、前記受信手段から出力されるそれぞれの前記シンドロームを使用して誤り位置多項式係数と誤り値多項式係数とを算出し、
前記出力手段は、それぞれの前記誤り位置多項式係数と前記誤り値多項式係数と、前記符号化された入力ディジタル信号とからガロア拡大体上における線形演算により誤りが訂正された出力ディジタル信号を符号のインターリーブ数に対応して並列に出力し、
前記誤り位置多項式係数算出部は、前記シリアル化されたシンドロームの値を要素とするYule-Walker方程式の余因子を対称行列に変換して誤り個数および誤り位置多項式係数を算出し、
前記誤り値多項式係数算出部は、誤り位置多項式係数を受け取って前記誤り位置多項式係数算出部における誤り位置の算出と並列して誤り値を算出する、
復号装置。
【請求項８】
前記入力ディジタル信号は、それぞれリード・ソロモン符号化されたｉ−チャンネルの並列入力とされ、さらに前記復号装置は、ｉ：１または１：ｉのマルチプレクサまたはデマルチプレクサを含む、請求項７に記載の誤り復号装置。
【請求項９】
前記入力ディジタル信号は、光通信における波長多重通信により送信される、請求項７または８のいずれか１項に記載の復号装置。
【請求項１０】
少なくとも前記入力部は、順序回路により構成され、前記処理部は、組み合わせ回路から構成される、請求項７〜９のいずれか１項に記載の復号装置。
【請求項１１】
ディジタル信号の誤り訂正、または暗号化のために用いられる請求項７〜１０のいずれか１項に記載の復号装置。
【請求項１２】
ディジタル信号を復号するための方法であって、該方法は、
符号化された入力ディジタル信号を符号のインターリーブ数に対応して並列して入力し、前記入力ディジタル信号のシンドロームを算出してインターリーブされた符号語間でシリアル化されたデータとしてシンドロームを前記処理部へと渡すステップと、
前記入力部からのインターリーブされた符号語間でシリアル化された前記シンドロームを、誤り位置多項式係数算出部と、誤り値多項式係数算出部とを含む処理部を使用してそれぞれ処理するステップと、
前記処理部からの出力と前記入力ディジタル信号とを入力し、前記処理部からの出力と、前記入力ディジタル信号とから誤りが訂正された出力ディジタル信号を算出するステップと、
前記算出された誤りが訂正された出力ディジタル信号を、インターリーブ数に対応して並列に出力するステップと
を含み、
前記処理するステップは、前記誤り位置多項式係数算出部において前記シリアル化されたシンドロームの値を要素とするYule-Walker方程式の余因子を対称行列に変換して誤り個数および誤り位置多項式係数を算出するステップと、
前記誤り値多項式係数算出部において、誤り位置多項式係数を受け取って前記誤り位置多項式係数算出部における誤り位置の算出と並列して誤り値を算出するステップとを含む、
復号方法。
【請求項１３】
前記処理ステップは、入力される前記シンドロームを使用して、誤り位置多項式係数と誤り値多項式係数とを算出するステップを含み、
前記出力ステップは、前記処理部の出力である入力された誤り位置および誤り値と、前記入力ディジタル信号とからガロア拡大体上における線形演算により算出して前記出力ディジタル信号とするステップを含む、請求項１２に記載の復号方法。
【請求項１４】
前記入力ステップは、それぞれがリード・ソロモン符号化されたｉ−チャンネルの並列入力として前記入力ディジタル信号を入力するステップを含み、さらにｉ：１のマルチプレクシング・ステップおよび１：ｉのデマルチプレクシング・ステップを含む、請求項１２または１３に記載の復号方法。
【請求項１５】
光通信における波長多重通信により送信される入力ディジタル信号として入力される、請求項１２〜１４のいずれか１項に記載の復号方法。
【請求項１６】
少なくとも前記入力ステップは、順序回路を使用した演算処理を行い、前記処理ステップは、組み合わせ回路を使用して演算処理を行う、請求項１２〜１５のいずれか１項に記載の復号方法。
【請求項１７】
ディジタル信号の誤り訂正、または暗号化のために使用される、請求項１２〜１６のいずれか１項に記載の復号方法。
【請求項１８】
ディジタル信号を処理するために使用される半導体デバイスであって、該半導体デバイスは、
符号化された入力ディジタル信号を受信するための入力手段と、
誤り位置多項式係数算出部と誤り値多項式係数算出部とを含み、前記符号化された入力ディジタル信号を処理して誤り位置多項式係数と誤り値多項式係数とを算出する処理手段と、
前記誤り位置多項式係数と、前記誤り値多項式係数とから誤りが訂正された出力ディジタル信号を出力する出力手段とを含み、
前記入力手段は、インターリーブされた前記符号化された入力ディジタル信号がインターリーブ数に対応して並列に入力され、かつ前記符号化された入力ディジタル信号からインターリーブされた符号語間でシリアル化されたデータとしてシンドロームを算出し、
前記誤り位置多項式係数算出部は、前記入力手段から出力されるそれぞれの前記シンドロームを使用して前記シリアル化されたシンドロームの値を要素とするYule-Walker方程式の余因子を対称行列に変換して誤り個数および誤り位置多項式係数を算出し、
前記誤り値多項式係数算出部は、誤り位置多項式係数を受け取って前記誤り位置多項式係数算出部における誤り位置の算出と並列して誤り値を算出し、
前記出力手段は、それぞれの前記誤り位置と前記誤り値と、前記入力ディジタル信号とからガロア拡大体上における演算により算出された出力ディジタル信号をインターリーブ数に対応して並列に出力する、半導体デバイス。
【請求項１９】
前記入力ディジタル信号は、それぞれリード・ソロモン符号化されたｉ−チャンネルの並列入力とされ、さらに前記半導体デバイスは、ｉ：１または１：ｉのマルチプレクサまたはデマルチプレクサを含む、請求項１８に記載の半導体デバイス。
【請求項２０】
前記符号化された入力ディジタル信号は、光通信における波長多重通信により送信される、請求項１８または１９に記載の半導体デバイス。
【請求項２１】
前記入力手段は、順序回路から構成され、前記処理手段は、組み合わせ回路から構成される、請求項１８〜２０のいずれか１項に記載の半導体デバイス。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、復号回路、復号装置、復号方法および半導体デバイスに関し、より詳細には、本発明は、高速の光通信分野において特に効果的に誤りを訂正することを可能とする、復号回路、復号装置、復号方法、および半導体デバイスに関する。
【０００２】
【従来の技術】
高速で高度な誤り訂正技術の重要性
インターネットの拡大とｅ−ビジネスの進展に伴い、コンピュータの扱うデータ量とスピードとは、加速度的に増加している。これに伴い、複数のコンピュータの間におけるデータ通信の速度を高めることが要求されており、近年では４０Ｇｂｐｓのデータ転送速度を使用する光通信の使用が普及しつつある。このような高速の、特に光通信といった通信方法において、システム・レベルの誤りの発生率を現在と同等に保つためには、コンピュータの扱うデータ量に比例してデータ通信における信頼性をよりいっそう向上させる必要がある。
【０００３】
この信頼性を向上させる重要な技術としては、高度な数学を駆使してさまざまな要因（伝送経路でのノイズなど）による誤りを自動的に訂正する誤り訂正符号と呼ばれるものがある。その中でも、今日、多く使われている代表的な誤り訂正符号として、ハミング符号とリード・ソロモン符号を挙げることができる。上述したハミング符号は、基本的にはビット単位の誤り訂正を行なうものであり、その訂正能力は低いといえる。例えば、ハミング符号を使用すれば、１ビットの誤りを発見した場合は訂正するが、２ビットの誤りは検出するのみとなる。ハミング符号を用いる誤り訂正システムは、誤り訂正処理自体が簡単なため、誤り訂正処理を並列的に処理させることにより、１Ｇｂｐｓ（１秒間に１０億ビット）を大きく超える高速処理が可能であることが知られている。
【０００４】
一方で、リード・ソロモン符号は、複数個の連続したビット単位（シンボル）の誤りを訂正することが可能で高度な訂正能力を有する優れた誤り訂正方法である。しかしながら、リード・ソロモン符号は、処理に複雑な演算を多用するため並列処理が難しく、例えば、８ビットのデータを１００ＭＨｚでパイプライン処理を実行させたとしても、８００Ｍｂ／ｓの処理速度しか得られないのが現状である。したがって、従来のリード・ソロモン符号の復号方式は、低速の通信分野、またはハードディスクやＣＤ−ＲＯＭ等の二次記憶装置の分野の製品など、現状では主にデータ処理速度の比較的低い分野で応用されており、今後高速性が要求される分野への応用には限界があった。
【０００５】
高速光通信分野で要求される誤り訂正技術
特にコンピュータおよびコンピュータが関連するデータ通信に使用される高速光通信の分野では、近年、ますます増大しつつあるインターネットをバックボーンとして、波長多重通信ＷＤＭ（Ｗａｖｅｌｅｎｇｔｈ  Ｄｉｖｉｓｉｏｎ  Ｍｕｌｔｉｐｌｅｘｉｎｇ）や、さらに波長多重度を向上させたＤＷＤＭ（Ｄｅｎｓｅ  ＷＤＭ）を使った、テラビット／秒の高速通信システムが、所定の長さのフレームを連続して同期転送するＳＯＮＥＴといった技術をベースに導入されつつある。
【０００６】
光通信を使用する上述したデータ通信における波長多重度の向上に伴い、近接する波長間でのクロストークが問題となる。このようなクロストークに対処するためこれまで、光を用いる波長多重通信における長距離（Ｌｏｎｇ  Ｈａｕｌ）での転送に際しては、誤り訂正法としてＦＥＣ（Ｆｏｒｗａｒｄ  Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｏｎ）が使用されている。ＩＴＵ（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｕｎｉｏｎ）では、ＩＴＵ−Ｔ  Ｇ．９７５において、インターリーブされたｍ＝８（８ビット／シンボル）の（２５５、２３９）ＲＳ符号（符号長ｎ＝２５５バイト）の使用が標準化され、Ｇ．７０９では、ＦＥＣのＦｒａｍｅ構造を定めるＤｉｇｉｔａｌ  Ｗｒａｐｐｅｒの標準が採用されている。
【０００７】
このような例えばＤｉｇｉｔａｌ  Ｗｒａｐｐｅｒ標準においては、これまでの低速なシリアル・リード・ソロモン復号回路を複数並列に並べることにより、必要な処理能力が確保されており、リード・ソロモン符号のインターリーブは必要不可欠な技術になっている。
【０００８】
高速かつ高度な誤り訂正技術における先行技術
これまで、上述したような光通信での必要性とは独立して、組み合わせ回路によるリード・ソロモン符号のパラレル高速復号の研究が行われてきている。
【０００９】
図１は、誤り訂正装置に使用することができるこのような高速復号回路の例を示す。
図１に示される復号回路は、これまでの１復号回路あたりの復号処理速度を１０倍以上高速化すること、高度な誤り訂正能力を持つリード・ソロモン符号の誤り訂正処理を、ハミング符号と同程度の処理速度でパラレル復号を行なうことを実現するものである。図１に示した復号回路では、ガロア体上での対称関数による新たな表現形式を、リード・ソロモン符号の復号処理に応用することにより、誤り値を直接計算できるＯ（ｔ）次の誤り値多項式Ｅｒ（ｘ）が用いられている（ｔは誤り訂正できる最大のシンボル数）。
【００１０】
図１に示した復号回路では、この多項式の使用により、シンドローム計算、誤り位置評価だけではなく、誤り値の評価も、これまでのようにＦｏｒｎｅｙアルゴリズムを用いて２つの多項式の評価結果を除算して求めるのではなく、１つの多項式で直接計算可能とするので、はるかに簡単化することができる。さらに、図１に示した復号回路では、Ｅｒ（ｘ）の係数計算だけではなく、誤り位置多項式Λ（ｘ）の係数計算に対しても、組み合わせ回路に適した表現が採用され、必要な演算回路の数の削減を、高速化と同時に可能としている。
【００１１】
図１に示される復号回路を使用することにより、０．３５μｍの標準的なＡＳＩＣ技術を使って半導体上に試作されたランダムな４バイト誤り訂正処理回路では、３２０ビット幅のデータを低レイテンシ（４５  ｎｓ）で並列処理することが可能とされ、現在のシリアル復号回路の典型的な処理速度の８００Ｍｂ／ｓの１０倍近い７Ｇｂ／ｓ（１秒間に７０億ビット）以上の処理速度が達成されている。さらに、図１に示した復号回路に対して、大規模並列の誤り訂正処理回路に特化した新たな回路最適化アルゴリズムを使用し、回路共有化手法を用いることにより、回路規模が縮小できることが示されている。さらに、図１の復号回路は、外部制御回路やレジスタを使わない組み合わせ回路であるので、高速処理にもかかわらず消費電力も抑えることができるという利点がある。
【００１２】
しかしながら、図１に示した復号回路においても、光通信に必要とされる４０Ｇｂｐｓの処理速度には及ばず、また通常の回路共有化手法を用いるだけでは回路規模が、ＩＴＵで標準化された８バイト誤り訂正に対応するためには１チップに実装できないほどに大規模になってしまうという問題があった。
【００１３】
図２は、従来用いられている低速の復号方式を使用する光通信用誤り訂正回路の概略構成を示した図である。光通信分野での通信速度の向上に伴い、従来の低速のシリアル・リード・ソロモン復号回路を並列に並べる方法は、ますます困難になってきている。既存のＲＳ復号回路では、せいぜい１Ｇｂｓの処理性能しかない。このため、図２に示した復号方式においては、低速のシリアル・リード・ソロモン復号回路を並列に並べることで必要な処理性能が実現されている。しかしながら、図２に示した従来方式は多くのリード・ソロモン復号回路を並べる必要が生じ、光通信のデータ転送速度に比例して、回路規模が大きくなってしまうという不都合がある。図３には、図２に示した復号方法を使用する場合の、回路規模と、データ転送速度とをプロットした図を示す。
【００１４】
図４には、さらに別の復号回路の従来例を示す（Ａ．  Ｐａｔｅｌ、  ＩＢＭ  Ｊ．  Ｒｅｓ．  Ｄｅｖｅｌｐ．、  ｖｏｌ．  ３０  ｐｐ．  ２５９−２６９、  １９８６）。従来の復号方式では、シンドロームの計算・誤り位置の計算については多項式の評価ですむので、容易に高速化することができる。しかしながら、図４に示すように誤り値の計算でＦｏｒｎｅｙアルゴリズムを用いるため、２つの多項式、すなわち誤り位置多項式の微分ｄΛ（ｘ）／ｄｘと、シンドロームと誤り位置多項式とから計算される誤り評価多項式Ω（ｘ）との評価の後に除算を実行することが必要となる。そして、これが出力の高速化を妨げるクリティカル・パスとなり、充分な高速化を行うことができないという不都合がある。
【００１５】
ＯＣ−７６８  ＳＯＮＥＴでは、復号回路の入出力インターフェースとして、ＩＴＵーＧ７０９で決められた１６インターリーブを仮定すると、３００ＭＨｚ以上の高速動作が期待されているので、これは、重大な問題となる。図４に示される復号回路を使用し、クリティカル・パスに相当する除算をさらに細かくパイプライン化して出力を高速化しようとすることも試みられている。
【００１６】
しかしながら、いくら細かくパイプライン化したとしても図４に示した復号回路では、誤りのない位置でも除算を行なう必要があり、パイプラインの細分化に伴って回路規模・消費電力共に増大する。また、誤り位置にのみ除算を行なおうとすると、誤り位置を事前に計算する必要があり、誤り位置と誤り値の同時計算が行なえないという不都合もある。また、図４に示した復号回路においては、誤りがあるか無いかによって、誤り値の出力に必要なサイクル数が違うので、ＳＯＮＥＴのような同期式フレームに載せて連続したデータを高速に入出力する必要のある場合には、誤りパターン（誤り数・位置）に依存せず一定のサイクルで高速に誤り値を出力することが困難である。
【００１７】
図５にはさらに別の従来の復号回路を示す。図１に示したパラレル・リード・ソロモン復号方式を光通信の分野に応用しようとすると、回路あたりの処理性能という観点では既存の方式よりも優れているためインターリーブされていないＲＳ符号では問題なく応用可能である。しかしながら、ＩＴＵ−Ｔ  Ｇ．９７５で決められているインターリーブされたリード・ソロモン符号に対しては、高速で大きなバッファとセレクタを用いて信号の順序を並べ替える必要が生じるため、必ずしも効率のよいものではなかった。すなわち、（２５５、２３９）ＲＳ符号の符号長は、２０４０ビットであり、１６インターリーブした場合には、１６バイト入力２５５バイト出力のシリアル・パラレル変換回路と２５５バイト入力１６バイト出力のパラレル・シリアル変換回路を必要とし、高速化という点ではある程度の目的を達成することができるものの回路サイズが著しく大規模なものとなり、実用レベルで提供することが困難である。
【００１８】
また、上述した復号回路に使用される誤り位置および誤り値の算出においては、ガロア拡大体（ＧＦ）２ｍ上における演算を大量に、かつ高速で実行でき、さらには、実装可能な回路規模で処理を実行させることが要求される。従来、上述したガロア体における演算について従来行われてきた検討においては、いずれも単体の演算（乗算や除算）をいかに効率的に行うかに重点が置かれており、それらの演算を、特に組み合わせ回路を採用して数十〜数百以上の演算を行うことについては、これまでほとんど検討がなされていないのが現状である。その理由は、種々推定することができるが、その１つとしては、復号演算は多くはこれまで順序機械によって実装され、組み合わせ回路を採用することは、得られる処理性能と回路規模の点で利点が少ないものと判断されていたこともある。
【００１９】
一方、誤り訂正のアルゴリズムについて考察すると、誤り位置の計算アルゴリズムにおいては、ガロア拡大体ＧＦ（２ｍ）上で定式化されたＹｕｌｅ−Ｗａｌｋｅｒ方程式がリード・ソロモン符号の計算において発生し、このＹｕｌｅ−Ｗａｌｋｅｒ方程式を効率よく処理することが高速化を達成し、かつ必要とされる回路サイズを可能な限り小さくするために必要とされる。Ｙｕｌｅ−Ｗａｌｋｅｒ方程式を解くというアルゴリズムを実行させる場合、高速化の目的から組み合わせ回路で実現する場合には、謝り訂正能力の増大とともにＹｕｌｅ−Ｗａｌｋｅｒ方程式を解いて誤り位置を求める部分が組み合わせ回路の回路サイズの観点からみて非常に大きな割合を占めることになる。
【００２０】
加えて、リード・ソロモン符号の復号化を組み合わせ回路を用いて実現し、実際のシステムへと適用する場合には、処理に対する汎用性を付与し、付加的な回路または処理を追加しないためにも、任意の最小距離を持つリード・ソロモン符号の復号化に適用できるアルゴリズムを提供することが望ましい。特に光通信の分野ではＩＴＵ（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｕｎｉｏｎ）において（２５５、２３９）  リード・ソロモン符号を使用することが標準化されたため、訂正可能な誤りの最大個数が８、最小距離が１７である場合にも、リード・ソロモン符号の復号化を効率的に行うことが可能なアルゴリズムが必要とされている。
【００２１】
Ｙｕｌｅ−Ｗａｌｋｅｒ方程式を解くという数学的な問題を、組み合わせ回路を用いてハードウエアとして実装可能な規模で実現するためには、回路規模の増大を抑制し、乗算器の個数を削減するアルゴリズム、およびこのアルゴリズムを効率よく処理する組み合わせ回路構成が必要とされている。すなわち、上述した誤り訂正装置および誤り訂正のアルゴリズムを、高速化といった目的を達成しつつ、許容可能な回路サイズとしてデバイス化を可能とする組み合わせ回路が必要とされていた。
【００２２】
【発明が解決しようとする課題】
本発明は上述した従来の技術における不都合に鑑みてなされたものであり、本発明は、高速（４０Ｇｂｐｓもしくはそれ以上）の光通信分野、さらにより限定的には連続したデータを同期フレームとして転送するＳＯＮＥＴ上での波長多重通信のため、インターリーブされたリード・ソロモン符号の効率的な復号回路、復号装置、復号方法、および半導体デバイスを提供することにある。
【００２３】
すなわち、本発明は、回路規模あたりの処理性能が高い（低レイテンシ・高スループット）、復号回路を提供することを目的とする。
【００２４】
さらに、本発明の別の目的は、インターリーブされたリード・ソロモン符号にも上述した特長を失うことなく対応できる構成の、柔軟な復号回路を提示することにある。
【００２５】
さらに本発明の別の目的は、インターリーブされた受信語のそれぞれの誤りパターン（誤り数、位置）に関係なく一定のサイクルで誤り語を連続して高速に出力する復号回路を提供することにある。
【００２６】
さらに、本発明の別の目的は、ガロア拡大体ＧＦ（２ｍ）（ｍは２以上の任意の自然数）上の演算回路のうち、いくつかの入力が共通な複数の乗算（例えばＡＢとＡＣとＡＤ）を行う回路、および積和演算ＡＢ＋ＣＤ＋ＥＦ＋…を行う回路を、高速かつ高効率で処理でき、小規模な回路によって実現することが可能な組み合わせ回路、および上述した復号回路を含む復号装置、復号方法、および半導体デバイスを提供することにある。
【００２７】
さらに、本発明の別の目的は、リード・ソロモン符号の復号化を組み合わせ回路を用いて実現し、実際のシステムへと適用する場合に、処理に対する汎用性を付与し、付加的な回路または処理を追加せずに任意の最小距離を持つリード・ソロモン符号の復号化に適用できる復号回路、復号装置、復号方法、および半導体デバイスを提供することにある。
【００２８】
【課題を解決するための手段】
本発明の上記課題は、本発明の復号回路、復号装置、復号方法および半導体デバイスを提供することにより解決することができる。
【００２９】
本発明によれば、符号化された入力ディジタル信号が符号のインターリーブ数に対応して並列して入力される入力部と、
前記入力部からのインターリーブされた符号語間でシリアル化されたデータ出力をそれぞれ処理する誤り位置多項式係数算出部と、誤り値多項式係数算出部とを含む処理部と、
前記処理部からの出力と前記入力ディジタル信号とが入力され、前記処理部からの出力と、前記入力ディジタル信号とから、誤りが訂正された出力ディジタル信号をインターリーブ数に対応して並列に出力する出力部とを備える復号回路が提供できる。本発明の復号回路は、前記入力部は、前記入力ディジタル信号のシンドロームを算出してインターリーブされた符号語間でシリアル化されたデータとしてシンドロームを前記処理部へと渡し、
前記処理部は、入力される前記シンドロームを使用して、誤り位置多項式係数と誤り値多項式係数とを算出し、
前記出力部は、前記処理部の出力を入力として誤り位置および誤り値を、前記入力ディジタル信号からガロア拡大体上における線形演算から生成して前記出力ディジタル信号とする。本発明の復号回路は、前記入力ディジタル信号は、それぞれがリード・ソロモン符号化されたｉ−チャンネルの並列入力とされ、さらに前記復号回路は、ｉ：１または１：ｉのマルチプレクサまたはデマルチプレクサを含む。本発明の復号回路では、前記入力ディジタル信号は、光通信における波長多重通信により送信される。本発明の復号回路の少なくとも前記入力部は、順序回路から構成され、前記処理部は、組み合わせ回路から構成される。本発明においては、ディジタル信号の誤り訂正、または暗号化のために使用することができる。
【００３０】
本発明においては、符号化された入力ディジタル信号を受信するための入力手段と、前記入力ディジタル信号を処理して誤り位置多項式係数と誤り値多項式係数とを算出する処理手段と、前記誤り位置多項式係数と、前記誤り値多項式係数とから誤りが訂正された出力ディジタル信号を出力する出力手段とを含み、
前記入力手段は、前記符号化された入力ディジタル信号が符号のインターリーブ数に対応して並列に入力され、かつ前記符号化された入力ディジタル信号からインターリーブされた符号語間でシリアル化されたデータとしてシンドロームを算出し、
前記処理手段は、前記受信手段から出力されるそれぞれの前記シンドロームを使用して誤り位置多項式係数と誤り値多項式係数とを算出し、
前記出力手段は、それぞれの前記誤り位置多項式係数と前記誤り値多項式係数と、前記符号化された入力ディジタル信号とからガロア拡大体上における線形演算により誤りが訂正された出力ディジタル信号を符号のインターリーブ数に対応して並列に出力する復号装置が提供される。本発明の復号装置においては、前記入力ディジタル信号は、それぞれリード・ソロモン符号化されたｉ−チャンネルの並列入力とされ、さらに前記復号装置は、ｉ：１または１：ｉのマルチプレクサまたはデマルチプレクサを含む。本発明の復号装置では、前記入力ディジタル信号は、光通信における波長多重通信により送信される。本発明の復号装置においては、少なくとも前記入力部は、順序回路により構成され、前記処理部は、組み合わせ回路から構成される。本発明の復号装置は、ディジタル信号の誤り訂正、または暗号化のために用いることができる。
【００３１】
本発明によれば、ディジタル信号を復号するための方法であって、該方法は、
符号化された入力ディジタル信号を符号のインターリーブ数に対応して並列して入力するステップと、
前記入力部からのインターリーブされた符号語間でシリアル化されたデータ出力を誤り位置多項式係数算出部と、誤り値多項式係数算出部とを含む処理部を使用してそれぞれ処理するステップと、
前記処理部からの出力と前記入力ディジタル信号とを入力し、前記処理部からの出力と、前記入力ディジタル信号とから誤りが訂正された出力ディジタル信号を生成するステップと、
前記生成された誤りが訂正された出力ディジタル信号を、インターリーブ数に対応して並列に出力するステップと
を含む復号方法が提供される。本発明の復号方法においては、前記入力ステップは、前記入力ディジタル信号のシンドロームを算出してインターリーブされた符号語間でシリアル化されたデータとしてシンドロームを前記処理部へと渡すステップを含み、
前記処理ステップは、入力される前記シンドロームを使用して、誤り位置多項式係数と誤り値多項式係数とを算出するステップを含み、
前記出力ステップは、前記処理部の出力を入力として誤り位置および誤り値を、前記入力ディジタル信号からガロア拡大体上における線形演算から生成して前記出力ディジタル信号とするステップを含む。本発明の復号方法においては、前記入力ステップは、それぞれがリード・ソロモン符号化されたｉ−チャンネルの並列入力として前記入力ディジタル信号を入力するステップを含み、さらにｉ：１のマルチプレクシング・ステップおよび１：ｉのデマルチプレクシング・ステップを含む。本発明の復号方法においては、光通信における波長多重通信により送信される入力ディジタル信号として入力される。本発明の復号方法においては、少なくとも前記入力ステップは、順序回路を使用した演算処理を行い、前記処理ステップは、組み合わせ回路を使用して演算処理を行う。本発明の復号方法は、ディジタル信号の誤りを訂正するために使用することができる。
【００３２】
本発明によれば、ディジタル信号を処理するために使用される半導体デバイスであって、該半導体デバイスは、
符号化された入力ディジタル信号を受信するための入力手段と、
前記符号化された入力ディジタル信号を処理して誤り位置多項式係数と誤り値多項式係数とを算出する処理手段と、
前記誤り位置多項式係数と、前記誤り値多項式係数とから誤りが訂正された出力ディジタル信号を出力する出力手段とを含み、
前記入力手段は、インターリーブされた前記符号化された入力ディジタル信号がインターリーブ数に対応して並列に入力され、かつ前記符号化された入力ディジタル信号からインターリーブされた符号語間でシリアル化されたデータとしてシンドロームを算出し、
前記処理手段は、前記入力手段から出力されるそれぞれの前記シンドロームを使用して誤り位置多項式係数と誤り値多項式係数とを算出し、
前記出力手段は、それぞれの前記誤り位置と前記誤り値と、前記入力ディジタル信号とからガロア拡大体上における演算により生成された出力ディジタル信号をインターリーブ数に対応して並列に出力する、半導体デバイスが提供される。本発明においては、前記入力ディジタル信号は、それぞれリード・ソロモン符号化されたｉ−チャンネルの並列入力とされ、さらに前記半導体デバイスは、ｉ：１または１：ｉのマルチプレクサまたはデマルチプレクサを含む。本発明においては、前記符号化された入力ディジタル信号は、光通信における波長多重通信により送信される。本発明においては、前記入力手段は、順序回路から構成され、前記処理手段は、組み合わせ回路から構成される。本発明においては、前記組み合わせ回路は、ガロア拡大体ＧＦ（２ｍ）（ｍは、２以上の整数）におけるディジタル信号の２個以上の乗算を独立して行う複数の乗算器を含み、
前記乗算器は、入力側ＸＯＲ演算部と、ＡＮＤ演算部と、出力側ＸＯＲ演算部とを含んで構成され、前記入力側ＸＯＲ演算部が、複数の前記乗算器に共有される。本発明においては、前記組み合わせ回路は、ガロア拡大体ＧＦ（２ｍ）（ｍは、２以上の整数）における積和演算器を含み、かつそれぞれの前記乗算器は、前記ＡＮＤ演算部と、前記出力側ＸＯＲ演算部との間に接続される加算器を含み、前記出力側ＸＯＲ演算部が共有されていて、複数の前記乗算器の前記ＡＮＤ演算部の出力を前記加算器により加算し、該加算結果を共有される前記出力側ＸＯＲ演算部により演算する。本発明においては、複数の前記乗算器の入力が共通しており、前記入力側ＸＯＲ演算部が複数の前記乗算器により共有される。
【００３３】
本発明の半導体デバイスは、波長多重通信により送信されるディジタル信号の復号回路の誤り位置を算出する誤り位置算出部および誤り値算出部に使用される。本発明においては前記半導体デバイスは、復号または誤り訂正または暗号化に使用される。
【００３４】
【発明の実施の形態】
以下本発明を、図面に示した実施の形態に基づいて説明するが、本発明は、図面に示した実施の形態に限定されるものではない。
【００３５】
セクション１  ＜復号回路＞
図６には、光通信により送信されたディジタル信号に含まれる誤りを訂正するために使用することができる本発明の復号回路を示す。図６に示した復号回路は、入力部１０と、処理部１２と、出力部１４とを含んで構成されている。入力部１０は、例えば１６インターリーブされた入力ディジタル信号ＩＤが入力される。処理部１２は、この入力部からの出力を受け取って処理を行ない、誤り位置多項式係数と誤り値多項式係数とを算出する。出力部１４は、この処理部１２からの出力を受け取り、出力された誤り位置と誤り値とをＡＮＤ処理し、入力される入力ディジタル信号ＩＤとＸＯＲ処理を行なって、出力ディジタル信号ＯＤを生成する。出力ディジタル信号ＯＤは、入力ディジタル信号に含まれる可能性のある誤りが訂正されている。
【００３６】
図６に示した復号回路に入力される入力ディジタル信号ＩＤとしては、本発明においては、光通信、特に４０Ｇｂｐｓといった高速のデータ転送レートで波長多重通信法により送信されるディジタル信号を入力することができる。より具体的には、上述した入力ディジタル信号ＩＤは、例えば（２５５，２３９）ＲＳ符号により符号長２０４０ビットとして送信されるものを用いることができる。通常、波長多重通信方においては、上述した入力ディジタル信号は、インターリーブ方式が採用されて、例えば１６の並列な２５５バイト・ストリームとして本発明の復号回路に入力される。
【００３７】
図６に示した本発明の復号回路においては、上述した入力ディジタル信号ＩＤは、入力部１０においてインターリーブされて並列に入力され、それぞれの入力について、受信多項式が規定され、この受信多項式からシンドロームＳｉが算出され、入力部１０の出力とされる。入力部１０（シンドローム算出部）の出力であるシンドロームＳｉは、（２５５，２３９）ＲＳ符号の場合は、入力ディジタル信号２５５バイトから得られる１６バイトのディジタル情報として生成される。例えば、本発明の図６において説明する復号回路の実施の形態においては、入力ディジタル信号は、２０４０ビットが１６インターリーブされて１６の２５５バイト・シリアル・ストリームとして入力部１０へと入力され、入力部１０において１６のシリアル・ストリームに対応する１６の１６バイト・シンドロームが生成されることになる。
【００３８】
図６に示されるように、入力部１０においては、それぞれの入力ディジタル信号ＩＤのシリアル・ストリームＩＤＳに対して１つのシンドローム算出部１６が割り当てられ、シンドロームが算出される構成とされている。算出されたそれぞれのシリアル・ストリームＩＤＳについてのシンドロームは、レジスタ１８に保持された後、出力部１４へとマルチプレクサにより符号語間でシリアル化されたデータとして出力される。例えば、上述したように、１６インターリーブされた２５５バイトの入力ディジタル信号から得られた１６バイトのシンドロームからは、誤り位置および誤り値の算出の為に、１２８ビットの信号が得られることになる。図６に示した入力部１０において使用することができるシンドローム算出部１６としては、順路回路を使用する回路など、これまで知られたいかなる回路でも使用することができる。なお、シンドロームの定義および算出方法についてはより詳細に後述する。
【００３９】
図６に示された復号回路においては、算出されたそれぞれのシンドロームＳｉは、処理部１２へとそれぞれ順次入力される。図６においては説明の便宜のため、処理部１２は、１つだけを例示して示している。図６に示した処理部１２は、複数の乗算器により構成された組み合わせ回路から構成される、誤り位置多項式Λ（ｘ）を算出するための誤り位置多項式係数算出部１８と、誤り値多項式Ｅｒ（ｘ）を算出するための誤り値多項式係数算出部２０と、を含んで構成されている。処理部１２において使用される乗算器を含む組み合わせ回路の詳細についてはセクション２＜組み合わせ回路＞においてより詳細に説明する。
【００４０】
図６に示した処理部１２の出力である誤り位置多項式Λ（ｘ）と、誤り値多項式Ｅｒ（ｘ）とは、出力部１４へと、図示しないデマルチプレクサにより、例えばインターリーブの数に対応する用にデマルチプレクスされた後、入力される。出力部１４には、それぞれの入力ディジタル信号のインターリーブの数に対応する数だけ配置されたレジスタ２２と、ＡＮＤゲート２４と、ＸＯＲゲート２６とが形成されている。出力部１６では、それぞれのシンドロームから得られた誤り位置情報（誤り位置には「１」、そうでなければ「０」）Λｅｖａｌを使って、誤り値ＥｒをＡＮＤゲート２４により選択する。さらに選択された出力は、ＸＯＲゲート２６において加算が行われる。このＸＯＲ選択ゲート２６には、符号化された入力ディジタル信号ＩＤから得られるシリアル・ストリームＩＤＳが、ｉｍｎビットのバッファ２８ａ，２８ｂを介してＸＯＲゲート２６へと入力されており、ＸＯＲゲート２６においてガロア拡大体ＧＦ（２ｍ）上の減算を実行させることによって誤りが除去された２５５バイトの出力ディジタル信号ＯＤとして与える構成とされている。
【００４１】
図６に示した本発明の復号回路においては、上述した処理部１２を構成する組み合わせ回路を順序回路として構成することもできるが、本発明において特に複数の乗算器を、入力側ＸＯＲ演算群（変数前処理部）と、ＡＮＤ演算群、出力側ＸＯＲ演算群（剰余演算）の３段構成とし、変数前処理部または剰余演算部の一方ないし両方を、複数の乗算器間で共有させる構成を採用することにより、従来誤り位置および誤り値の算出においてクリティカル・ポイントとされてきた処理部１２における回路規模を実用上許容可能な規模としつつ、効率的に乗算器から構成させることが可能となる。
【００４２】
図６に示した本発明の復号回路では、上述したように出力部１４を、処理速度を低下させる非線形演算を実行させる回路構成を採用することなく、定数乗算器と加算器いった線形演算を行う回路のみで構成させる。このため、本発明の復号回路は、処理速度を低下させず高速に、かつ回路構成を小規模としつつ復号回路として構成することが可能となる。さらに本発明者らは、鋭意検討の結果、特定の構成を含む乗算器から構成される組み合わせ回路と、該組み合わせ回路において誤り位置および誤り数を効率的に算出することを可能とするアルゴリズムとを採用することにより、従来にまして柔軟で高速かつ、小規模の復号回路を構成することを見出し、本発明に至ったものである。
【００４３】
本発明において採用する誤り位置多項式係数算出の方法またはアルゴリズムについてはより詳細に組み合わせ回路構成と共に後述するが、以下に、本発明の復号回路における処理部１２に含まれる誤り値多項式係数算出部２０の機能・作用について説明する。
【００４４】
誤り値計算アルゴリズムの選択
本発明の復号アルゴリズムについては、誤り位置の評価だけではなく誤り値の評価もＯ（ｔ）次の多項式計算（線形演算）で直接計算可能なアルゴリズムをインターリーブされたリード・ソロモン符号の復号に対して適用するものである。この際、本発明において採用するアルゴリズムにおいては、特に誤り値の計算に必要な除算を、多項式の評価の後の出力のクリティカル・パス中で誤り位置ごとに行うのではなく、多項式の評価の前に符号語ごとにただ一度線形演算で行う。これにより、多項式評価の値を誤りの値として一定のサイクルで直接高速出力することが可能となる。
【００４５】
さらに、誤り値Ｅｒ（ｘ）多項式の次数は、ｔ個の独立した出力を出すのに最低必要とされるｔ−１次まで低くできることが判明している。その際に得られるｔ個の係数は、誤り位置多項式の係数とシンドロームとを使って計算することが可能である。このアルゴリズムの採用により、シンドローム計算、ならびに、誤り位置評価だけではなく、誤り値の評価も線形演算回路だけで実行することが可能となり、入出力出力回路全体を簡略化高速化することが可能となる。
【００４６】
本発明の復号アルゴリズムまたは復号方法において種々の誤り値多項式を使用することができるが、以下、ｅ個の誤りがｉ０，．．．，ｉｅ−１に発生したときの誤り値多項式Ｅｒ（ｘ）が下記式
0003606569.tif 000002
の形式で与えられ、除算を含むが、分母は多項式ではなく、符号語ごとに定数である実施の形態を例として、本発明の機能・作用について説明する（上記式中、ａは、ガロア拡大体の原子元を意味する）。
【００４７】
上述した誤り値多項式Ｅｒ（ｅ）（ｘ）は、多項式Ｅｒ（ｅ）（ｘ）の計算に位置
0003606569.tif 000003
（以下ａｉｋと略する）に存在するｋ番目の誤り値
0003606569.tif 000004
（以下Ｅｉｋと略記する）が必要となるので本末転倒であり、直接本発明の復号回路に使用することができない。しかしながら、もしＥｒ（ｅ）（ｘ）中のすべてのＥｉｋといくつかのａｉｋを、シンドロームＳｉを使って記述すれば、回路化が可能となる。さらに、この場合Ｅｒ（ｅ）（ｘ）中のすべてのａｉｋを誤り多項式Λ（ｅ）ｊを使用して記述することで、誤り位置を求める前に誤り値の算出を実行することが可能となる。したがって誤り値の算出を並列化することが可能となり、この結果高速化を達成することができる。
【００４８】
上述したプロセスは、以下の復号アルゴリズムまたは復号方法を使用することにより実行することができる。まず、分母の部分をΛ（ｅ）ｊで記述する。誤り値と誤り位置多項式の係数は、定数ファクタを除いて誤り位置、
0003606569.tif 000005
について、それぞれＥｌｅｍｅｎｔａｒｙ  ｓｙｍｍｅｔｒｉｃ  ｆｕｎｃｔｉｏｎとなる。例えば、誤り位置多項式の係数
0003606569.tif 000006
については、
0003606569.tif 000007
となっており、誤り位置、
0003606569.tif 000008
は、互いに交換可能である。また、Ｓｈｕｒ関数と呼ばれる２つのＶａｎｄｅｒｍｏｎｄｅ行列式の割り算で定義されるものと、上述したＥｌｅｍｅｎｔａｒｙ  ｓｙｍｍｅｔｒｉｃ  ｆｕｎｃｔｉｏｎとの間に成り立つ関係式（例えば、Ｉ．Ｇ．Ｍａｃｄｏｎａｌｄ，  Ｓｙｍｍｅｔｒｉｃ  Ｆｕｎｃｔｉｏｎｓ  ａｎｄ  Ｏｒｔｈｏｇｏｎａｌ  Ｐｏｌｙｎｏｍｉａｌｓ，  Ａｍｅｒｉｃａｎ  Ｍａｔｈｅｍａｔｉｃａｌ  Ｓｏｃｉｅｔｙ，  １９９８参照）と、ガロア拡大体ＧＦ（２ｍ）において成り立つ加算と２乗算の下記交換関係、
0003606569.tif 000009
から、以下の新規な関係が導出できる。
0003606569.tif 000010
【００４９】
上記行列式を採用することにより、さきのＥｒ（ｅ）（ｘ）の分母を，Λ（ｅ）ｉで記述することが可能となる。Ｅｒ（ｅ）（ｘ）の分子についても同様に算出してみると、下記式で示すように、Ｅｒ（ｅ）（ｘ）の係数がＳｉ、Λ（ｅ）ｉのみで記述でき、Ｅｉｋと、ａｉｋを使用しなくとも算出することができることになる。
0003606569.tif 000011
ここで、
0003606569.tif 000012
であり、具体的には、ａｉｋを除いた誤り位置に対応する誤り位置多項式の係数である。
【００５０】
上述したように、上述した関係を新たに採用することにより、非線形演算回路を使用することなく、ガロア拡大体ＧＦ（２ｍ）上における線形演算回路により、処理部１４を構成することが可能となり、高速化を実現することが可能となる。
【００５１】
以下、上述の誤り値計算アルゴリズムを用いてインターリーブ符号にも対応した高速、小回路規模の符号回路を構成する為に以下の構成を採用する。
（１）高速の入力部・出力部（線形演算回路）の採用
まず、符号の構成（インターリーブ数）と入出力インターフェースのバス幅、クロック数等を考慮して、入力に接続されたシンドローム計算のための多項式評価（線形演算）回路、出力側に接続された誤り位置評価・誤り値評価のための多項式評価（線形演算）回路を、ＲＳ符号が巡回符号であることに起因するサイクリックな構造を生かして、１からｎの任意のクロック数で（ｎ，ｋ）リードソロモン符号の前処理・後処理する高速な順序回路として実現したことである。特に、従来方式でクリティカル・パスであった誤り値評価の部分に対しても上述した構成を採用するこちが本発明においては有効である。また、本発明の構成によれば、符号語あたりの入力されるディジタル信号幅が２５５バイトの場合ばかりではなく、１、３、５、１５、１７、５１、８５バイトインターフェースとして、柔軟に対応することができる復号回路を提供することができる。
【００５２】
表１には、本発明の復号回路において入力ディジタル信号の入力幅に対して要求される処理クロックの関係を示す。
【００５３】
【表１】
0003606569.tif 000013
表１に示されるように、ディジタル信号の入力幅が小さくなればそれに対応して必要なクロック数は増加するものの、本発明の復号回路を採用することにより柔軟に対応することが可能となることが示されている。
【００５４】
さらに、本発明においては、符号語あたりの入出力のバイト幅は表１で示された以外でも任意に選択可能である。例えば入出力幅８バイトの場合でも、符号の長さを最後にダミー１バイトを加えてｎ＝２５６バイトとすることにより対応可能となる。
【００５５】
（２）非線型演算回路１２との接続
本発明においてはさらに、入力部１０および出力部１４として順序回路を用いて構成し符号のインターリーブ数に応じて複数用意し、前後の順序回路の間にシンドロームならびに誤り位置・誤り値多項式の係数を保持する回路と、マルチプレクサ・デマルチプレクサとを用いて、誤り位置・誤り値多項式の係数計算を行う非線型演算回路１２に接続する。この演算回路は上述したように、非線形演算を実行する乗算器といった非線形演算回路の組み合わせ回路として構成されている。このため、本発明においては、例えば、ＯＣ−７６８を仮定して（２５５，２３９）リードソロモン符号を１６インターリーブして使用する場合には、前後に１６個づつ順序回路を用意することが必要となる。すなわちこの場合、１６：１のマルチプレクス・デマルチプレクスを行う必要がある。しかしながら、本発明においては、シンドローム多項式の係数をマルチプレクス・デマルチプレクスするために、２０４０ビットではなく、１２８ビット（Ｅｒ（ｘ）の取り方によっては、後段は、１３６ビット）の信号を扱うだけですみ、マルチプレクサ・デマルチプレクサ、バッファの数共に大きく削減することが可能となる。
【００５６】
（３）中央の非線型演算回路を時分割に使う３段パイプライン動作方式
本発明においては、さらに、復号回路全体を線形演算回路（シンドローム計算）−非線型演算回路（誤り位置・誤り値多項式の係数計算）−線形演算回路（誤り位置・誤り値の評価）の３段パイプラインとして動作させ、低レイテンシの非線型演算回路をインターリーブされたそれぞれの符号の計算にシンドロームを符号語間でシリアルに順次与える事により時分割して用いる。このため、回路規模あたりの処理能力の高い高効率のインターリーブ符号の復号動作を実現できる。例えば、ＯＣ−７６８のケースでは、中央の非線型演算回路は、上述した３段パイプラインの動作をさせるためには、約４０ｎｓのレイテンシでインターリーブされたそれぞれの符号語あたりの処理を終える必要があるが、最先端の半導体技術（０．１８μｍ以上）を使い、組み合わせ回路を用いた実装を行うことにより、上述した復号回路をＡＳＩＣといった半導体バイスとして実現できる。
【００５７】
すなわち、本発明の復号回路は、（１）高速の入力部１０と高速の出力部１４を採用すること、特に従来では非線形演算を行う必要があった出力部１４に対して、誤り位置および誤り値を線形演算回路だけを使用して算出できるようにし、さらに、処理部１２に対しては上述した復号アルゴリズムに適合すると共に、回路サイズを低減させる乗算器構成を採用すること、（２）本質的に非線形演算を実行する処理部１２を、時分割して使用して、３段パイプライン動作方式を採用すること、による相乗的な効果により、高速かつ回路サイズが許容範囲の復号回路、誤り訂正装置を提供することを可能とするものである。以下、セクション２として、本発明の復号回路における処理部１２に含まれる乗算器から構成される組み合わせ回路について詳細に説明する。
【００５８】
セクション２＜組み合わせ回路＞
本発明の復号回路に使用する処理部１２は、線形演算回路、具体的には乗算器を使用した組み合わせ回路として構成される。本発明において使用される乗算器は、しかしながら、従来の組み合わせ回路に使用される乗算器は、ガロア拡大体ＧＦ（２ｍ）における乗算をＡＮＤ演算群の次にＸＯＲ演算群を行う２段階の構成とするのではなく、ＸＯＲゲート−ＡＮＤゲート−ＸＯＲゲートの３段階の構成を採用する。
【００５９】
単体の並列乗算回路の構成方式
単体の乗算回路に関しては従来より多くの検討がなされているものの、順序回路でなく組み合わせ回路として構成された並列乗算回路（Ｍａｓｔｒｏｖｉｔｏ  Ｍｕｌｔｉｐｌｉｅｒ）については意外に研究の歴史が浅く、近年検討が開始されたといってもよい。従来の並列乗算回路（以下、本明細書においては、単に乗算回路という。）の構成方式は、ＡＮＤ−ＸＯＲ形式とＸＯＲ−ＡＮＤ−ＸＯＲ形式の２種類で、相互変換可能である。  ただし単体の乗算しか回路化しない場合には、ＡＮＤ−ＸＯＲ形式のものが通常用いられる。その理由は、ＡＮＤ−ＸＯＲ形式はよく研究されていて小規模回路を得る方法がかなり検討されているのに対し、ＸＯＲ−ＡＮＤ−ＸＯＲ形式については一般に回路規模が削減される保証がなく（むしろ増える場合がある）、設計作業の複雑化に見合うだけの削減効果がないと考えられることが、その理由であると考えられる。以下、各場合について検討を加える。
【００６０】
（１）  ＡＮＤ−ＸＯＲ形式
この方法は、筆算どおりに計算を進める教科書的な方法で、通常はこの形の回路を使用する。具体的には、乗算の引数となる２つの（ｍ−１）次多項式に対し、その係数どうしを組み合わせてｍ２個の部分積をまず作る。これがＡＮＤ部の処理内容である。次に、それらの部分積のうち次数が同じものどうしを加算して（２ｍ−２）次多項式を構成し、既約多項式による剰余演算を行って（ｍ−１）次の解を得る。これらがＸＯＲ部の処理内容である。ＡＮＤの個数はｍ２、ＸＯＲの個数はＯ（ｍ３）であるが、既約多項式や基底を選択することによりＸＯＲが（ｍ２−１）個で構成できることが広く知られている。任意の乗算回路は必ずこの形式で構成できる。
【００６１】
（２）  ＸＯＲ−ＡＮＤ−ＸＯＲ形式
上述したＡＮＤ−ＸＯＲ形式の回路に対し、ブール代数の規則である  （Ａ  ａｎｄ  Ｂ）  ｘｏｒ  （Ａ  ａｎｄ  Ｃ）  ＝  Ａ  ａｎｄ  （Ｂ  ｘｏｒ  Ｃ）のもとで、剰余演算部にあるＸＯＲ演算をＡＮＤの前に移動して変数前処理演算部（入力側ＸＯＲ演算）とすることが、一般に可能である。これによって乗算器の回路を、ＸＯＲ−ＡＮＤ−ＸＯＲ形式とすることができる。ＸＯＲの移動にあたって、Ａ  ｘｏｒ  Ａ  ＝  ０、Ｂ  ｘｏｒ  ０  ＝  Ｂの性質を利用し、剰余演算部（出力側ＸＯＲ演算）のＸＯＲ中に同一の冗長タームを偶数個追加しておくことで、より多くのＸＯＲ演算を変数前処理部へ移動できる場合がある。この操作が可能なため、ＸＯＲの移動には、単に分配律をそのまま適用するのみならず多様なやり方が存在し得る。したがって、たとえ同一の基底や既約多項式のもとであっても、ＸＯＲ−ＡＮＤ−ＸＯＲ形式は複数存在することになる。ゲート数は、ＸＯＲ−ＡＮＤ−ＸＯＲ形式にすることでＡＮＤ−ＸＯＲ形式より増加する場合も減少する場合もあり、まちまちである。また、次に述べるＣｏｍｐｏｓｉｔｅ  Ｆｉｅｌｄ  Ｍｕｌｔｉｐｌｉｅｒのように、特殊な基底のもとでシステマティックにＸＯＲゲートを削減する方法もこれまでに知られている。
【００６２】
（３）限定された体のみに適用可能なＸＯＲ−ＡＮＤ−ＸＯＲ形式の構成法（Ｃｏｍｐｏｓｉｔｅ  Ｆｉｅｌｄ  Ｍｕｌｔｉｐｌｉｅｒ）
Ｃｏｍｐｏｓｉｔｅ  Ｆｉｅｌｄ  Ｍｕｌｔｉｐｌｉｅｒは、ｍが合成数で、なおかつ体の要素の表現に用いる基底が通常の基底（多項式基底や正規基底）でなくてもよいという、特殊な場合に限って使える乗算回路構成法である。以下、より詳細に説明を行う。ｍが合成数のとき、ＧＦ（２）から２回以上の体の拡大によって拡大体ＧＦ（２ｍ）を構成できる。その拡大の過程に従って再帰的な構造の乗算回路を構成するのがＣｏｍｐｏｓｉｔｅ  Ｆｉｅｌｄ  Ｍｕｌｔｉｐｌｉｅｒである。このとき、例えば１回の２次拡大に対し、ＧＦ（２ｍ）上の２つの値Ａｘ＋ＢとＣｘ＋Ｄ（ここでＡ，Ｂ，Ｃ，Ｄは、それぞれ部分体ＧＦ（２ｍ／２）上の値）の積が、
0003606569.tif 000014
であることを用いれば、部分体上の乗算を４個から３個へ減らすことができ、回路規模を減少させることができる（ＫＯＡ）。同時に、回路はＸＯＲ−ＡＮＤ−ＸＯＲの構造として構成することができる（乗算の前に行う加算が、ＡＮＤの前に配置されるＸＯＲに対応する）。なお、ＫＯＡの使用はＣｏｍｐｏｓｉｔｅ  Ｆｉｅｌｄ  Ｍｕｌｔｉｐｌｉｅｒであることが前提であって、そうでない乗算回路ではＫＯＡは通常使用することができない。また、仮にｍが同手法を適用できる値であっても、体の変換回路が必要でそのオーバーヘッドのためにかえって回路規模が増えるので、単体の乗算しか回路化しない場合には同手法は通常採用される構成とはならないものである。
【００６３】
＜本発明における組み合わせ回路の通常の乗算器による構成＞
本発明が対象とする入力共通乗算回路群、および積和演算回路を通常のＡＮＤ−ＸＯＲ構成で構成した場合の構成を図７および図８に示す。図７においては組み合わせ回路の例として、２つの乗算器を使用する組み合わせ回路が示されている。図７に示されるように従来の乗算器は、第１の入力Ａ１が乗算器４０および乗算器４２へと入力され、乗算器４０には、第２の入力Ｂ１が入力されて第１の出力４５が、乗算器４２には第３の入力Ｂ２が入力されて第２の出力４６とが出力されている。図７に示すとおり、従来の構成では、乗算間で共通な入力があっても、そのために共有可能となる回路はまったく存在しない。図８には、積和演算を行うための組み合わせ回路を従来の乗算器の構成により構成した従来例を示す。図８に示す積和演算を行うための組み合わせ回路においても、そのままでは共有可能な回路は存在しないことがわかる。
【００６４】
図９は、従来の構成の乗算器を使用する組み合わせ回路の例を示す。図９の入出力では、１シンボルを１本の線として表記してある。また、入出力はそれぞれ８ビット幅であるものと仮定している。図９における組み合わせ回路においては、６シンボルの入力と１シンボルの出力とを含み、さらに７個の乗算回路と５個の加算回路を含んで構成されている。図９に示した組み合わせ回路においては、Ｓ０，．．．，Ｓ３Ｑで示された入力が乗算器群４６へと入力され、加算器群４８により加算された後、積和演算回路５０へと入力されて、各入力の積和演算の結果である出力Ｌ２１Ｑが生成されている。
【００６５】
図９においては、破線で示したクロスターム構成演算と剰余演算の組み合わせが１つの乗算に相当する。図９において示されている乗算器の回路は標準的なものなので、詳細な回路の説明については省略する。この乗算回路を含む組み合わせ回路は、６４ＡＮＤ＋約１０３ＸＯＲの数のゲートを含んでおり、回路全体のゲート数は４４８ＡＮＤ＋約７６１ＸＯＲとなる。図９から明らかなように、ほとんどの乗算の入力は、その一方あるいは両方が他の乗算と共通である。また、最終段などで積和演算が行われている。
【００６６】
表２には、ガロア拡大体ＧＦ（２８）において従来の標準的なＡＮＤ−ＸＯＲの２段構成の乗算回路、Ｃｏｍｐｏｓｉｔｅ  Ｆｉｅｌｄ  Ｍｕｌｔｉｐｌｉｅｒおよび部分体拡大体ＧＦ（２４）の乗算をＸＯＲ−ＡＮＤ−ＸＯＲにする改変を行った乗算回路に含まれる各ゲートの数を示す。
【００６７】
【表２】
0003606569.tif 000015
【００６８】
すなわち、単体の乗算器のみに着目すれば、上記ａ〜ｃいずれも回路規模は従来のＣｏｍｐｏｓｉｔｅ  Ｆｉｅｌｄ  Ｍｕｌｔｉｐｌｉｅｒの場合より増加しており，最小規模のものではない。このように、単に乗算器をＸＯＲ−ＡＮＤ−ＸＯＲの３段構成とするのでは、回路の規模を逆に大きくする場合もある。
【００６９】
＜本発明の組み合わせ回路における乗算器構成＞
一般には、多数の乗算や積和演算が絡み合うとブール代数上での最適化は困難である。しかしながら、本発明における処理部１２として組み合わせ回路を使用することを考慮すれば、上述した積和演算や乗算が並列かつ多段に多数接続された構造となっており、ｉ段目の積和演算は一般に０段目〜ｉ−１段目の出力を入力とする。したがって、後段の演算回路になるとほぼ組み合わせ回路の回路全体において、共通した入力を並列処理する必要が生じるため、最適化範囲が広がることになる。本発明者らは、この点に着目し、他の演算とのバランスも取りつつ、ブール代数上の最適化することにより、乗算器の効率的な組織化を達成したものである。
【００７０】
図１０は、図７に示した従来の構成の乗算器および加算器からなる組み合わせ回路を、乗算器を３段構成として本発明の組み合わせ回路とした本発明の実施の形態の組み合わせ回路を示す。図１０に示される組み合わせ回路においては、入力Ａ１が第１のＸＯＲ群５２へと入力され、入力Ｂ１が第２のＸＯＲ群５４へと入力され、入力Ｂ２が、第３のＸＯＲ群５６へと入力される構成とされている。これらのＸＯＲ群５２、５４、５６が、本発明において採用される変数前処理演算を実行するゲートである。このうちＸＯＲ群５２、５４、５６は、共通した入力Ａ１を処理する構成とされていて、回路規模の縮少になっている。各ＸＯＲ群５２、５４、５６の出力は、それぞれＡＮＤ群５８へと入力され、クロスタームが算出された後、再度下流側のＸＯＲ群６０において剰余演算が実行され、ＸＯＲ群６０ａから出力６２が出力され、ＸＯＲ群６０ｂから出力６４が生成されている。図１０にいては、１つの乗算を行う単位が破線ＢＬで示されており、変数前処理（ＸＯＲ）−クロスターム演算部（ＡＮＤ）−剰余演算部（ＸＯＲ）の３段構成により、１つの乗算器が構成されているのが示されている。図１０に示されるように、各乗算をＸＯＲ−ＡＮＤ−ＸＯＲの構成とし、かつ、共通の入力に対して行うＸＯＲ演算を乗算間で統一すれば、そのＸＯＲ演算回路を乗算回路間で共有できることになる。１個分の乗算に相当する部分（変数前処理演算＊２＋新しいクロスターム構成部＋新しい剰余演算部）の回路規模が通常の乗算回路と同じか若干大きい程度であれば、乗算群全体としての回路規模を減少させることが可能となる。
【００７１】
図１１は、図１０に示した従来の組み合わせ回路を、本発明において採用する３段構成の乗算器を使用して実装化した場合の組み合わせ回路の構成の別の実施の形態を示した図である。図１１に示される組み合わせ回路においては、入力６６、入力６８、入力７０、入力７２が、それぞれ変数前処理演算を実行するＸＯＲ群７４、７６、７７、７８へと入力され、ＸＯＲ群のそれぞれの出力が、クロスターム構成演算を実行するＡＮＤ群８０、８２へと入力されている。
【００７２】
ＡＮＤ群８０、８２の出力は、加算回路８４へと入力されて加算が実行され再度共有された下流側のＸＯＲ群８６において剰余演算が実行されて、乗算が行われ、出力８８が生成される構成とされている。図１１に示した乗算器１単位の構成は、枠Ｂｘで示した内側において形成されている。図１０との相違点は、入力側のＸＯＲ群７４、７６、７７、７８が共有されない場合であっても、本発明においては、下流側、すなわち出力側の剰余演算を実行するＸＯＲ群８６を共有する構成とすることができる。
【００７３】
さらに、本発明においては、入力側、すなわち変数前処理演算を実行するＸＯＲ群７４〜７８を共有化し、剰余演算を実行するＸＯＲ群を同時に共有させることにより、さらに全体としての組み合わせ回路の構成を縮小することができる。
【００７４】
図１２は、図９に示した組み合わせ回路を、３段構成の乗算器を使用して本発明の組み合わせ回路とした、さらに別の実施の形態を示した図である。なお、図１２に示した組み合わせ回路は、図６において示したＲＳ符号誤り訂正のための復号回路（ｅ＝２）の処理部１２の一部を構成する組み合わせ回路の実施の形態である。図１２に示した組み合わせ回路においても、図９に示した従来例と同様にＳ０〜Ｓ３Ｑが入力されている。図１２に示すように、入力Ｓ０の変数前処理演算を行うＸＯＲゲート９０は、枠で示すように、ＡＮＤゲート９２、９４、９６に対応する３つの乗算器により共有されている。さらに下流側においては、剰余演算部９８についても複数の乗算器により共有されていて、変数前処理演算を行うＸＯＲゲートおよび剰余演算を実行するＸＯＲゲートの双方が共有されているのが示されている。また、図１０、図１１、図１２と同様に、乗算器の１つの単位は、鎖線により示されている。図１２に示した組み合わせ回路においては、回路中の変数前処理演算部は８個、クロスターム構成演算部は７個、剰余演算部は４個、８ビット幅の加算は２個、クロスターム構成演算部と同ビット幅の加算は３個となる。
【００７５】
このことから、表２で示した乗算回路をもとに、図１２に示した組み合わせ回路で上述した復号回路の一部を構成させる場合については、そのゲート数は、以下の表３のようにまとめることができる。
【００７６】
【表３】
0003606569.tif 000016
【００７７】
表３ａ〜ｃに示されるように、単体の乗算をあえて最小規模にはしなかったにもかかわらず、回路全体としてはより回路規模が縮小されることが見出された。
【００７８】
図１３は、誤り訂正能力ｔ＝２〜８の図６に示した誤り訂正回路の処理部１２に使用する場合において必要とされるＸＯＲゲート数と、それに対応する乗算器数とを示した図である。図１３は、縦軸をＸＯＲの全数とし、横軸を乗算器の個数として示されており、この場合には、図６の誤り訂正用の復号回路は、ｍ＝８で、既約多項式がｘ８＋ｘ４＋ｘ３＋ｘ２＋１であるものとして算出した。この場合、乗算を６６２、加算を５３１、２乗演算を３０回使用する。表３および図１３から理解されるように、乗算器単体の乗算をあえて最小規模にはしなかったにもかかわらず、本発明の構成を採用することにより、組み合わせ回路全体としては回路規模をより縮小することができることが示される。
【００７９】
図１３に示した実施の形態においては、具体的な回路構造を明確にする目的から、乗算における変数前処理部、クロスターム構成部、剰余演算部をすべての乗算について同一であるものとして説明した。実装上の段階においては、さらに良好な結果を得るために、どれだけのＸＯＲを変数前処理部・剰余演算部に配置するか（つまり，表記ａ〜ｃのいずれを用いるか）を、回路中の乗算ごとに変更して最適化することも可能である。さらに、図１３に示した実施の形態においては、回路入力に対する演算数の割合が少なく、体変換のオーバーヘッドもあるので、ゲート数減少の効果はさほど大きくはないものの、実用上は入力に対する演算の割合がかなり高くなるため、ゲート数削減効果による回路規模の削減は、図１４に示すように顕著なものとなる。
【００８０】
セクション３  ＜誤り訂正アルゴリズム＞
以下、本発明の復号回路、誤り訂正装置において使用される誤り訂正アルゴリズムについて詳細に説明する。
【００８１】
（従来技術の概要）
Ａ．＜Ｙｕｌｅ−Ｗａｌｋｅｒ方程式を解く、または誤り位置多項式を求めるための従来の手法とその問題点＞
本発明においては、ＧＦ（２ｍ）上で定義された次の連立一次方程式の解を組み合わせ回路を用いて計算するための効率的なアルゴリズムを見出すことが必要である。
【００８２】
0003606569.tif 000017
上記式中、
0003606569.tif 000018
は、与えられたＧＦ（２ｍ）の元であり、Λ（ｌ）ｉが未知の量である。
【００８３】
上記の連立一次方程式において、左辺の行列は、右斜め方向（対角線と交わる方向）に同じ成分が並ぶという規則的な構造をしており、Ｈａｎｋｅｌ行列といわれる。一般にこのタイプの方程式は、Ｙｕｌｅ−Ｗａｌｋｅｒ方程式と呼ばれ、誤り訂正符号の理論をはじめとして時系列解析や信号処理の分野でも現れるなど、広い応用範囲を有していることが知られている。誤り訂正アルゴリズムにおいては、誤り位置多項式を決定する部分にこのＹｕｌｅ−Ｗａｌｋｅｒ方程式が現れることになる。そこで、本発明においては、上述したＹｕｌｅ−Ｗａｌｋｅｒ方程式の解を得るためのアルゴリズムを、リード・ソロモン符号の復号を行うために使用される誤り訂正アルゴリズムに適用するものである。
【００８４】
上述したＹｕｌｅ−Ｗａｌｋｅｒ方程式の解法としてよく知られているものとして、Ｌｅｖｉｎｓｏｎのアルゴリズム、Ｌｅｖｉｎｓｏｎ−Ｄｕｒｂｉｎのアルゴリズム等がある。これらのアルゴリズムは、いずれも行列のサイズｌが小さい所から計算を始め、再帰的に行列のサイズが大きい方程式の解を決定していくものである。また、計算量は共にｌ２のオーダである。しかしながら、これらのアルゴリズムは、計算ステップの中に割り算の操作を含んでいる。このことは、アルゴリズムの実行を組み合わせ回路として実装することを考えたとき、分母が０か否かに応じた条件分岐が発生することを意味する。この条件分岐が発生することにより、条件分岐の各々に対して別々の回路を用意しなくてはならないので必要とされる回路サイズは  行列のサイズが大きくなるにしたがって組み合わせ的な速さで大きくなってしまうという本質的な問題を生じる。
【００８５】
また、本発明においては、Ｙｕｌｅ−Ｗａｌｋｅｒ方程式の解を求めることによって、特にリード・ソロモン符号の復号化において、誤り位置多項式を決定することを目的とする。従来Ｙｕｌｅ−Ｗａｌｋｅｒ方程式の解法として用いられている方法としては、Ｐｅｔｅｒｓｏｎ法、Ｂｅｒｌｅｋａｍｐ−Ｍａｓｓｅｙ法、Ｅｕｃｌｉｄ法などを挙げることができる。これらはいずれも訂正可能な誤りの最大数ｔに関して、多項式オーダの計算量で誤り位置多項式の係数を計算するものである。しかしながら、Ｂｅｒｌｅｋａｍｐ−Ｍａｓｓｅｙ法とＥｕｃｌｉｄ法を組み合わせ回路で表現と以下に述べる問題が生じる。
【００８６】
まず、Ｂｅｒｌｅｋａｍｐ−Ｍａｓｓｅｙ法に関しては、アルゴリズムの中にやはり複数個の条件分岐を含むことになることが不可避である。したがって、これを組み合わせ回路に展開するときには上述した理由と同じ理由で回路サイズは組み合わせ的に増大する。一方、Ｅｕｃｌｉｄ法においては多項式の乗除算がアルゴリズムの基本となるが、割り算の分母に現れる多項式の次数が前もってわからないために、ここに条件分岐の入る余地がある。また、この条件分岐に起因してＢｅｒｌｅｋａｍｐ−Ｍａｓｓｅｙ法の場合と同様の組み合わせ的な回路規模の増大を生じさせてしまうことになる。
【００８７】
Ｂ．＜  組み合わせ回路に適したＹｕｌｅ−Ｗａｌｋｅｒ方程式および誤り位置多項式の計算法の方針＞
上述したように、Ｌｅｖｉｎｓｏｎ（−Ｄｕｒｂｉｎ）法、Ｂｅｒｌｅｋａｍｐ−Ｍａｓｓｅｙ法、Ｅｕｃｌｉｄ法は共に条件分岐を含むため、組み合わせ回路化という観点からは問題がある。そこで、Ｙｕｌｅ−Ｗａｌｋｅｒ方程式の解法を組み合わせ回路で実現するためには場合分けのないアルゴリズムを見出すことが必要であり、これが、本発明のアルゴリズムにおける本質的な方針として与えられる。
【００８８】
この場合、上述のアルゴリズムとして、リード・ソロモン符号の復号化で知られているＰｅｔｅｒｓｏｎ法を用いることができる。Ｐｅｔｅｒｓｏｎ法のアプローチはＹｕｌｅ−Ｗａｌｋｅｒ方程式を直接解くことになる。この際、Ｙｕｌｅ−Ｗａｌｋｅｒ方程式の解は次のようにＣｒａｍｅｒの公式を用いて行列式の形で表示することができる。
【００８９】
0003606569.tif 000019
0003606569.tif 000020
したがって、それぞれの
0003606569.tif 000021
に対して、行列式Λ（ｌ）０を求め、誤りの個数ｅに対して、行列式、
0003606569.tif 000022
を計算すればよいことになる。
【００９０】
しかしながら、行列式の展開をそのまま回路として実現すると、ｔが増大するにしたがって必要となる乗算器の個数が飛躍的に増大するので同様に直接的な適用は困難である。このため、本発明においては、Ｈａｎｋｅｌ行列の帰納的な構造を利用して計算量の削減を行う。このためのアプローチとしてＫａｔａｙａｍａ−ＭｏｒｉｏｋａによるΛｈａｔ（ｌ）ｉの計算と従来の方法と対比して説明する。
【００９１】
まず、Ｋａｔａｙａｍａ−Ｍｏｒｉｏｋａの中でのΛ（ｌ）ｉの計算アルゴリズムをｌ＝１からｌ＝４まで書き下すと図１４に示す形態となる。
【００９２】
次にＨａｎｋｅｌ行列の行列式を帰納的なアプローチで計算する別な手法として、Ｋｏｇａによる方法を対比のために説明する。Ｋｏｇａによる方法によれば、まず、次の新たな誤り位置多項式、
0003606569.tif 000023
が定義されている。ここで、
0003606569.tif 000024
である。
【００９３】
そして、この新たな誤り位置多項式を計算するため、ｉ番目のシンドロームＳｉを（１、１）成分に持つようなＨａｎｋｅｌ行列
0003606569.tif 000025
を考え、
0003606569.tif 000026
から複数の行と列を対称に抜き去った行列式をＱ行列式と定義する。Ｑ行列式は、一般に対角成分に現れるシンドロームの添え字番号を左上から順に指定してやれば唯一に定まるものである。ここで、Ｑ行列式を添え字の列、
0003606569.tif 000027
で表すことができる。Ｋｏｇａによる方法では、Ｑ行列式を用いて誤り位置多項式、
0003606569.tif 000028
を計算するアルゴリズムが提示されている。
【００９４】
上述した従来手法は、いずれにしても次に述べるような問題点を抱えている．まず、従来例１の中で用いられたΛ（ｌ）ｉの計算アルゴリズムに関しては計算すべき行列式の非対称性に起因して展開の右辺に次々と新しい項が出現し、その結果として行列のサイズが大きくなるにしたがって必要とされる乗算器の個数は組み合わせ的に増大することになる。そこで、このような組み合わせ的発散の程度がなるべく小さいアルゴリズムが望ましい。
【００９５】
次にＫｏｇａのアルゴリズムについてであるが、Ｋｏｇａの定義したＱ行列式は対称な行列式であり、このことによって乗算器数の削減が実現されている。しかしながら、Ｋｏｇａのアルゴリズムは、最小距離が偶数の場合のＢＣＨ符号もしくはリード・ソロモン符号でしか適用することができないという制限がある。Ｋｏｇａによれば、この制限を緩和できる場合もあることを開示しているものの、緩和できる例としては、単にｂｉｎａｒｙ  ｎａｒｒｏｗ  ｓｅｎｓｅ  ＢＣＨ符号の場合に限定されてしまうことになる。
【００９６】
本発明においては、光通信システムへの適用を行うため、（２５５、２３９）リード・ソロモン符号（最小距離＝１７）の復号化を組み合わせ回路で効率よく実現することが方針として要求されることになる。このため、何らかの手法を用いて最小距離の偶数、奇数にかかわらず効率的な計算を実行させることができるアルゴリズムが必要となる。
【００９７】
Ｃ．＜本発明において使用される用語の定義＞
以下に、本発明のアルゴリズムを詳細に説明する前に、本発明において使用する各タームを明確にするために説明を行う。
（１）シンドローム
一般に、ガロア拡大体ＧＦ（２ｍ）の原始元をａとし、ｈ＜２ｍ−１を正整数とするとき、
0003606569.tif 000029
を生成多項式とする、符号長がｎ＝２ｍ−１の２ｍ元巡回符号をＧＦ（２ｍ）上のリード・ソロモン符号として定義する。すなわち、ｋ＝ｎ−ｈとしｋ個の送信記号を係数にもつｋ次多項式をＭ（ｘ）とするとき、Ｍ（ｘ）にｘｎ−ｋを乗算し、その結果を次のようにＧ（ｘ）で除算し、剰余Ｒ（ｘ）を算出する。
【００９８】
0003606569.tif 000030
ついで、長さｎの符号化された系列を係数に持つ多項式（送信多項式）を
0003606569.tif 000031
で定義する。このとき、符号化された送信系列は左端に  ｋ  個の情報記号を持ち、それらにｈ＝ｎ−ｋ個の検査記号が続く組織符号の形になっている。リード・ソロモン符号の最小距離ｄｍｉｎは、ｄｍｉｎ＝ｈ＋１で与えられる。また、訂正可能な誤りの最大個数ｔはｔ＝［ｈ／２］で与えられる。
【００９９】
一方、受信された系列よりもとの送信系列を推定する復号化のアルゴリズムは以下のように与えられる。
（２）  シンドロームの計算と誤りの検出
ここで、ｌ個の誤りが生じたとし、それらの位置をｉ０，．．．，ｉｌ−１、  誤りの値を  Ｅｉ０，．．．，Ｅｉｌ−１  とする。Ｅｉ０，．．．，Ｅｉｌ−１を係数に持つ多項式を、
0003606569.tif 000032
で定義すると、受信系列ｂ０、．．．、ｂｎ−１を係数とする多項式は、
0003606569.tif 000033
で与えられる。Ｙ（ｘ）を受信多項式と定義する。
次に、受信多項式Ｙ（ｘ）からシンドローム、
0003606569.tif 000034
を計算する。ここで、
0003606569.tif 000035
なので、シンドロームは
0003606569.tif 000036
を満たす。したがって、誤りがなければシンドロームはすべて０となり、シンドロームの値によって誤りの有無が判定できることになる。
【０１００】
（３）誤りの個数と位置の特定
発生した誤りの個数を仮にｌ個であると仮定し、発生した位置を、
0003606569.tif 000037
と仮定する。すなわち、
0003606569.tif 000038
の値が誤っていると仮定する。誤りの個数ｌと、下記式の誤り位置、
0003606569.tif 000039
を特定するために、
0003606569.tif 000040
を根として持つ下記多項式、
0003606569.tif 000041
を定義する。上記式中、
0003606569.tif 000042
を誤りロケータ、Λ（ｌ）（ｘ）を誤り位置多項式という。
【０１０１】
さらに、
0003606569.tif 000043
は、誤り位置多項式をｘに関して展開したときの展開係数であり、
0003606569.tif 000044
の基本対称式で与えられる。
【０１０２】
ここで、下記式
0003606569.tif 000045
は、次の連立一次方程式、
0003606569.tif 000046
を満たす。これはＡ．で説明したＹｕｌｅ−Ｗａｌｋｅｒ方程式に他ならない。この段階では、ｌは未知であるが、実際に生じた誤りの個数が１≦ｅ≦ｔであるとき、左辺のＨａｎｋｅｌ行列は、ｌ＝ｅの場合は正則であって、ｔ≧ｌ＞ｅの場合は非正則となることが知られている。したがって、ｌ＝１，．．．，ｔに対して左辺のＨａｎｋｅｌ行列の行列式を計算し、値が非ゼロの最大の整数をもって誤りの個数ｅと定めればよい。そしてｌ＝ｅの場合にこの方程式を解くことにより、誤り位置多項式を求めることができる。
【０１０３】
本発明において、誤り位置を特定するためには、誤りロケータ、すなわち、誤り多項式Λ（ｅ）（ｘ）＝０の根を求めればよい。このために下記式
0003606569.tif 000047
を逐次代入して実際に誤り位置多項式の零点となるか否かを調べるという手法を取ることができる。この手法をＣｈｉｅｎ探索という。誤り位置多項式の零点を、
0003606569.tif 000048
とするとき、ｉ０，．．．，ｉｅ−１が実際の誤り位置を与える。
【０１０４】
（４）誤り値の計算
誤り値の算出は、下記式で示されるＶａｎｄｅｒｍｏｎｄｅ型の連立線形方程式、
0003606569.tif 000049
を解くことによって得られる。シンドロームを係数とする多項式Ｓ（ｘ）を、
0003606569.tif 000050
とおく。さらに、
0003606569.tif 000051
とおく。Ω（ｘ）を誤り評価多項式という。この場合に、Ｖａｎｄｅｒｍｏｎｄｅ型の連立線形方程式の解は、
0003606569.tif 000052
によって求めることができる。これをＦｏｒｎｅｙのアルゴリズムという。したがって、誤り位置と誤り値とがわかれば、それらを受信した入力ディジタル信号から減算することにより、誤りの訂正されたディジタル信号出力を得ることができる。
【０１０５】
Ｄ．本発明のＹｕｌｅ−Ｗａｌｋｅｒ方程式解法アルゴリズム
我々の課題はＧＦ（２ｍ）上で定義された次のＹｕｌｅ−Ｗａｌｋｅｒ方程式の解を組み合わせ回路を用いて計算するための効率的なアルゴリズムを見出すことである．
0003606569.tif 000053
ここで、
0003606569.tif 000054
は、与えられたＧＦ（２ｍ）の元であり、Λｉ（ｌ）が未知の量である。
【０１０６】
本発明においては、このＹｕｌｅ−Ｗａｌｋｅｒ方程式の解をＣｒａｍｅｒの公式を用いて、図１５のように行列式の形で表示し、その帰納的な構造を利用して行列式の効率のよい計算法を求めるものである。
【０１０７】
図１５に示した行列式を計算するために、本発明においては、次のＪａｃｏｂｉの公式に注目する。
＜Ｊａｃｏｂｉの公式＞
Ａ＝（ａｉｊ）を単位元１をもつ可換環上のｎ次正方行列とする．Ａの（ｉ，ｊ）余因子をΔｉｊとする。添え字の集合、
0003606569.tif 000055
に対する小行列式Ａμν（ｒ）の余因子をΔμν（ｒ）とするとき、下記式が成り立つ。
【０１０８】
0003606569.tif 000056
本発明では特に、
0003606569.tif 000057
とした場合に成り立つ下記式、
0003606569.tif 000058
を用いることができる。
【０１０９】
このＪａｃｏｂｉの公式を用いてΛｈａｔｉ（ｌ）を計算するために次のように考える。
まず、Λｈａｔｉ（ｌ＋１）は下記式の形をしている。
【０１１０】
0003606569.tif 000059
この行列式をよく眺めてみると、Λｈａｔｉ（ｌ）は、Λｈａｔｉ（ｌ＋１）から（ｌ＋１−ｉ）行および第ｌ列を取り除いたものであり、Λｈａｔ０（ｌ）はΛｈａｔ０（ｌ＋１）から第ｌ行および第ｌ列を取り除いたものことがわかる。つまり、Λｈａｔ０（ｌ）は、Λｈａｔｉ（ｌ）が、それぞれΛｉ（ｌ＋１）の（ｌ＋１，ｌ＋１），（ｌ＋１，ｌ＋１−ｉ）余因子であるため、Ｊａｃｏｂｉの公式において、
0003606569.tif 000060
として、
0003606569.tif 000061
とおく。さらに、Λｈａｔ０（ｌ＋１）の（ｌ＋１−ｉ，ｌ＋１−ｉ）余因子をΓｉ（ｌ＋１）と定義する。ここで、Γｉ（ｌ＋１）の構成を図１６に示す。
そして、Ｊａｃｏｂｉの公式を用いることにより、
0003606569.tif 000062
を得る。
【０１１１】
この公式を用いると、Λｈａｔｉ（ｌ）の計算は対称行列の行列式であるΓｉ（ｌ＋１）の計算に帰着される。ただし、Λｈａｔｉ（ｌ）を求めるには、Γｉ（ｌ＋１）の計算に加えて、２×ｌ個の乗算とｌ個の平方根をとる操作が必要となる。平方根を取る計算と２乗を行う計算とは、線形演算として実現できるため加算とほぼ同等のコストで回路として実現可能である。したがって、これらは非線形演算回路である乗算器に比べて非常に小さなコストしか要しない。そこで我々は乗算器にのみ注目し、その個数を問題とする。提案するアルゴリズムの場合、ＧＦ（２ｍ）は標数が２であること、およびΓｉ（ｌ）はすべて対称あることから、行列式の余因子展開において対角線に関して非対称な配置より生じる項は必ずキャンセルする．例えば、３×３の対称行列を例にとって余因子展開を計算してみると、
0003606569.tif 000063
となって、対角線に関して非対称な配置より生じる項ｂｅｃは対称性により必ず２度出てくるために、キャンセルされる。このため、本発明のアルゴリズムを乗算器を含む組み合わせ回路に使用した場合には、要求される乗算器の個数が低減できることになる。
【０１１２】
ここで、
0003606569.tif 000064
を帰納的に計算するアルゴリズムの一般形は以下のように与えられる．
0003606569.tif 000065
まず、アルゴリズムを記述する際の補助的な量を一つ定義する。
【０１１３】
0003606569.tif 000066
を、添え字の集合とするとき、ｄｅｔ［｛ｉ１，．．．，ｉｎ｝］を
0003606569.tif 000067
と定義する。正確にいうと、ｄｅｔ［｛ｉ１，．．．，ｉｎ｝］は、第１行目が、
0003606569.tif 000068
であって、（ｐ、ｑ）成分が下記式、
0003606569.tif 000069
である対称行列の行列式であり、Ｈａｎｋｅｌ行列式Λ０（ｌ）からいくつかの行と列とを対称に抜き去って得られる行列式である。ここで、ｄｅｔ［｛ｉ１，．．．，ｉｎ｝］を用いるとΓｉ（ｌ）は次のように計算される。
【０１１４】
0003606569.tif 000070
上記式中、ｄｅｔ［｛０，１，．．．，ｌ−２｝−｛ｌ−１−ｉ，ｌ−１−ｋ｝］は、Γｉ（ｌ−１）から対称に２つのｌ−１−ｉ，ｌ−１−ｋ行と、２つのｌ−１−ｉ，ｌ−１−ｋ列とを抜き去って得られる対称行列の行列式であって、これはｋ＝１の場合とｉ＝１との場合には、それぞれ、下記式、
0003606569.tif 000071
に一致することに注意されたい。
【０１１５】
３．  一般にｄｅｔ［｛ｉ１，．．．，ｉｎ｝］は、次のように計算される。
【０１１６】
0003606569.tif 000072
Ｅ．＜本発明のアルゴリズムのリード・ソロモン符号の復号化への適用＞
以下に、Ｄ．で述べたＹｕｌｅ−Ｗａｌｋｅｒ方程式の本発明の解法アルゴリズムを、リード・ソロモン符号へと応用した場合についての実施の形態を説明する。Ｙｕｌｅ−Ｗａｌｋｅｒ方程式自身は、通常は、次元（未知数の個数）は一定のものとして与えられるのであるが、リード・ソロモン符号の復号化の場合、次元（誤りの個数に対応している）も未知なので、これも含めて決定しなければならないことになる。
【０１１７】
（１）Γｉ（ｌ）の計算
シンドロームの系列、
0003606569.tif 000073
が与えられたとき、Ｄ．において説明したアルゴリズムに従い、
0003606569.tif 000074
を計算する。この計算の過程で、
0003606569.tif 000075
も、同時に計算される。なお、本発明者らは、リード・ソロモン符号の高速復号化を行うために、組み合わせ回路としての実現を念頭に置いているが、本発明においては組み合わせ回路と共に使用することに限定されるものではなく、本発明の誤り訂正アルゴリズムは、順序回路を用いて誤り訂正装置として実装することも可能である。
【０１１８】
（２）誤りの個数の決定
実際に生じた誤りの個数を、ｅで表す。ここで、ｅは
0003606569.tif 000076
の値から、Λｈａｔ０（ｌ）≠０を満たす最大のｌとして求めることができる。
【０１１９】
（３）誤り位置多項式の決定
誤りの個数を決定した結果、もしｅ＜ｔが判明した場合には、Λｈａｔ０（ｅ＋１）＝０なので、本発明のアルゴリズムに従い、
0003606569.tif 000077
のように簡単化することができる。誤りロケータは、誤り位置多項式の零点であるので、誤り位置多項式の係数の定数倍によって不変である。したがって、
Λｈａｔｉ（ｅ）の代わりに、下記式
0003606569.tif 000078
を用いることができる。つまり、上式に現れている掛け算は必要ない。一方、ｅ＝ｔであることが判明した場合には、
0003606569.tif 000079
に従って誤り位置多項式を計算することになる。このとき、我々のアルゴリズムでは、最小距離が奇数（＝２ｔ＋１）の場合には、計算できないＳ２ｔが見かけ上必要になるように見える。しかし、本発明の式は、シンドロームに関する恒等式であるため、Ｓ２ｔに関する恒等式にもなっている。そして、計算すべきΛｈａｔｉ（ｔ）は、シンドロームＳ２ｔを含まないので、Λｈａｔ０（ｔ＋１）と、Γｉ（ｔ＋１）の余因子展開に現れるＳ２ｔは必ずキャンセルする。具体的にいうと、Γｉ（ｔ＋１）を余因子展開したときに現れる項のうち、Ｓ２ｔを含むものは、Γｉ−１（ｔ）Ｓ２ｔであるから、Γｉ（ｔ＋１）Λｈａｔ０（ｔ）を展開したとき、Ｓ２ｔを含む項はΛｈａｔ０（ｔ）Γｉ−１（ｔ）Ｓ２ｔである。一方、Λｈａｔ０（ｔ＋１）を余因子展開したときに現れる項のうち、Ｓ２ｔを含むものは、Λｈａｔ０（ｔ）Ｓ２ｔであるから、Λ０（ｔ＋１）Γｉ−１（ｔ）を展開したときＳ２ｔを含む項は、Λｈａｔ０（ｔ）Γｉ−１（ｔ）Ｓ２ｔである。したがって、両者は必ずキャンセルする。
【０１２０】
こうして、Λ０（ｔ＋１）と、Γｉ（ｔ＋１）を余因子展開したときに現れる項のうち、Ｓ２ｔを係数にもつ項は計算する必要がないことが示される。このようにして、本発明のアルゴリズムは、任意の最小距離をもつリード・ソロモン符号に適用することができることとなる。同時に、乗算器数の削減という観点からも、Ｓ２ｔを含む項の乗算が必要ないので、Ｋｏｇａアルゴリズムと比較しても本発明のアルゴリズムは、優位になる。また、上述したように、平方根を算出する計算は、加算とほぼ同等のコストで回路として実現可能であり、これは乗算器に比べて非常に小さなコストしか要しないものである。
【０１２１】
Ｆ．＜リード・ソロモン符号の復号化への適用例＞
上述したＥにおいて説明した本発明の誤り訂正アルゴリズムをｔ＝４のリード・ソロモン符号の復号化へ適用する実施の形態について、以下に説明する。ｔ＝４の場合には、本発明により、以下の各式が決定される。ただし、簡単のため、
0003606569.tif 000080
として表す。
（１）Γｉ（ｌ），ｉ＝０，．．．，ｌ−１，．．．，５の計算
本発明による計算結果を、図１７に示す。
【０１２２】
（２）誤りの個数の決定
８１）で算出されたΓｉ（ｌ）によって、
0003606569.tif 000081
が求まるので、
0003606569.tif 000082
を満たす最大のｌ，ｌ＝１，２，３，４として誤りの個数ｅが決定できる。
【０１２３】
（３）誤り位置多項式の決定
（２）よる計算により、例えばｅ＝２であることが判明した場合には、誤りロケータ、
0003606569.tif 000083
は、次の代数方程式、
0003606569.tif 000084
を解くことによって求められる。一方、ｅ＝４であることが判明した場合には、上述したように、
0003606569.tif 000085
によって求めることができる。ただし、
0003606569.tif 000086
の計算において、シンドロームＳ８を含む項の計算は上述したように不要である。
【０１２４】
図１８は、上述した本発明の誤り訂正アルゴリズムの概略的なフローチャートを示した図である。本発明の誤り訂正アルゴリズムにおいては、まず、ステップ２００において、シンドロームＳ０，．．．，Ｓ２ｔ−１が入力され、ステップ２０１において、誤り多項式Γが算出される。Γ０（２），．．．，Γ０（ｔ＋１）が求められた段階で、ステップ２０２において、Λｈａｔ０（ｍ）＝Γ０（ｍ＋１）≠０を満たす最大の整数ｍ、として誤りの個数を決定する。ステップ２０３においては、誤りの個数ｅが、最大の誤りの数に等しいか否かが判断され、ｅ＝ｔの場合（ｙｅｓ）には、Γ０（ｅ＋１）＝Λｈａｔ０（ｅ），．．，Γｅ（ｅ＋１）、Γ０（ｅ＋２）＝Λｈａｔ０（ｅ＋１）として、ステップ２０４において、誤り値を算出する。また、ｅ≠ｔの場合（ｎｏ）には、Γ０（ｅ＋１）＝Λｈａｔ０（ｅ），．．，Γｅ（ｅ＋１）のみを使用して、ステップ２０５において誤り値を計算し、ステップ２０６において、Λｈａｔ０（ｅ），．．．．，Λｈａｔｅ（ｅ）を得る。
【０１２５】
Ｇ．本発明のアルゴリズムを誤り位置多項式の計算へ適用した場合の計算回路図１９に本発明で提案するアルゴリズムに基づいた誤り位置多項式の計算回路のブロック図を示す。図２０に示される本発明のアルゴリズムを使用した誤り位置多項式の計算回路は、概ね｛Γｉ（ｍ）｝計算ブロック１００と、誤りの個数を計算する回路ブロック１０２と、誤り位置多項式の決定を行う回路ブロック１０４とを含んで構成されている。
【０１２６】
図１９の各ブロックの機能を説明すると、回路ブロック１００には、例えば順序回路を使用して入力ディジタル信号から算出されたシンドロームのシリーズが入力される。回路ブロック１００においては、これらのシンドロームから、
0003606569.tif 000087
が、本発明のアルゴリズムにしたがって帰納的に計算される。これはアルゴリズムの詳細の（１）に対応する。
【０１２７】
次に、回路ブロック１０２においては、計算された、
0003606569.tif 000088
の値から、誤りの個数ｅを算出し、ｅの値にそれぞれ対応する、
0003606569.tif 000089
を出力する。ｅ＝ｔの場合には、これらに加えて、さらに、
0003606569.tif 000090
も出力される。これはアルゴリズムの詳細の（２）に対応する。回路ブロック１０４では、
0003606569.tif 000091
の値を用いて、誤り位置多項式の係数の計算を実行する。これはアルゴリズムの詳細の（３）に対応するプロセスに従って実行される。
【０１２８】
なお、本発明においては、リード・ソロモン符号の高速復号化を行うために、組み合わせ回路としての実現を念頭に置いているが、提案するアルゴリズムを回路サイズの縮小を目的として順序回路を用いて実現することも可能である。
【０１２９】
Ｈ．＜リード・ソロモン符号の復号化に適用した場合の回路サイズ＞
本発明のアルゴリズムを、リード・ソロモン符号の復号化へ適用した場合の、回路サイズについて以下に説明する。上述したとおり、平方根を算出する計算と２乗を行う計算とは、加算とほぼ同等のコストで回路として実現可能であり、これらは乗算器に比べて非常に小さなコストしか要しない。そこで我々は乗算器にのみ注目し、その個数を検討する。
【０１３０】
表４は、本発明のアルゴリズムによって必要とされる乗算器の個数をｔ＝１からｔ＝８までの範囲で示したものである。この図には比較のため、従来例１および従来例２の計算アルゴリズムによる乗算器数も合わせて記載した。
【０１３１】
【表４】
0003606569.tif 000092
【０１３２】
表４に示されるように、今回提案するアルゴリズムは、乗算器の個数の観点からみてＫｏｇａにより提案されたアルゴリズム（従来例２）よりもすべてのｔで優れていることが示されている。また、光通信分野への応用においては、特に（２５５、２３９）リード・ソロモン符号（ｔ＝８）の復号化が重要であるが、これは最小距離が奇数（＝１７）であるためにＫｏｇａアルゴリズムは適用できない。しかしながら、本発明のアルゴリズムは、任意の最小距離のリード・ソロモン符号に適用可能であるため、（２５５、２３９）リード・ソロモン符号にも用いることができる。これを、表５に示す。
【０１３３】
【表５】
0003606569.tif 000093
【０１３４】
一方、従来例１（Ｋａｔａｙａｍａ−Ｍｏｒｉｏｋａ）における計算アルゴリズムも任意の最小距離のリード・ソロモン符号に適用可能であるが、乗算器の個数の観点から比較すると今回提案するアルゴリズムは、ｔが４以上では、従来例１のアルゴリズムよりもより少ない数の乗算器しか必要としない。特に、ｔ＝８の場合には、本発明のアルゴリズムは、約４０％の乗算器の削減を実現することが可能となることが示された。具体的な回路サイズで比較すると、ｔ＝８のとき、誤り値の計算に要するゲート数は、現在約１０Ｋゲートであるのに対して、従来例１では、約８０Ｋゲートを要するものと考えられる。しかしながら、本発明におけるアルゴリズムを用いると、誤り多項式の計算を約４０Ｋゲートまで削減することが可能となる。
【０１３５】
図２０には、本発明の誤り訂正装置の概略ブロック図を示す。図２０に示された誤り訂正装置は、入力ディジタル信号を受信して符号化する符号化ブロック１１０と、符号化された入力ディジタル信号ＩＤが入力され、シンドロームを算出するための入力ブロック１１２と、復号回路を含む処理ブロック１１４と、誤り位置および誤り値との出力を使用して誤りが訂正された出力ディジタル信号ＯＤを出力する出力ブロック１１６とから構成されている。符号化ブロック１１０には、インターリーブされた波長多重通信により送信された入力ディジタル信号が入力され、例えば、リード・ソロモン符号化され、入力ブロックへと符号化されたディジタル信号を入力している。入力ブロック１１２は入力ディジタル信号から順序回路を使用してシンドロームを算出し、その出力を処理ブロック１１４へと送っている。
【０１３６】
処理ブロック１１４には、本発明のアルゴリズムを実行する復号機能が含まれていて、誤り位置と誤り値とを算出する。算出された誤り位置と、誤り値は、出力ブロック１１６へと出力され、誤りが訂正され、出力ディジタル信号として出力を行っている。上述した誤り訂正回路は、複数のハードウエアからなる誤り訂正装置として構成することができる他、半導体技術を利用し、各機能ブロックをシリコン・ウエハ上に構成したＡＳＩＣといった半導体デバイスとして構成することができることはいうまでもないことである。さらには、本発明のアルゴリズムは、誤り訂正装置のファームウエアとして実装することもできるし、またフロッピーディスク、ハードディスク、光ディスク、光磁気ディスクといった記憶媒体に記録されたコンピュータ可読なプログラムとすることもできる。また、本発明のプログラムは、例えばオブジェクト指向のいかなる言語や、例えばＣ言語といったプログラミング言語により、記述し、上述した記録媒体内に保持させて使用することができる。
【０１３７】
上述したように、本発明によれば、高速の光通信分野において特に効果的に誤りを訂正することを可能とする復号回路、該誤り訂正方法を提供することができる。
【図面の簡単な説明】
【図１】従来の復号回路を示した図。
【図２】従来の光通信用誤り訂正回路を示した図。
【図３】従来の回路規模と、データ転送速度とをプロットした図。
【図４】さらに別の従来の復号回路を示した図。
【図５】さらに別の従来の復号回路を示した図。
【図６】本発明の復号回路の実施の形態の概略図。
【図７】従来の構成の乗算回路を示した図。
【図８】従来の構成の乗算回路を示した図。
【図９】従来の構成の乗算回路を示した図。
【図１０】図７に示す乗算回路に本発明を適用した実施の形態を示した図。
【図１１】図８に示す乗算回路に本発明を適用した実施の形態を示した図。
【図１２】図９に示す乗算回路に本発明を適用した実施の形態を示した図。
【図１３】本発明の乗算回路を使用した場合の回路サイズと乗算回路数とをプロットした図。
【図１４】従来の誤り多項式を示した図。
【図１５】本発明におけるＹｕｌｅ−Ｗａｌｋｅｒ方程式の定式化を示した図。
【図１６】本発明におけるΓｉ（ｉ＋１）の詳細な構成を示した図。
【図１７】本発明におけるリード・ソロモン符号の復号の詳細な計算結果を示した図。
【図１８】本発明の誤り訂正アルゴリズムの概略フローチャート。
【図１９】本発明のリード・ソロモン符号の復号回路の概略構成を示した図。
【図２０】本発明の誤り訂正装置の構成を示す概略ブロック図。
【符号の説明】
１０…入力部
１２…処理部
１４…出力部
１６…シンドローム算出部
１８…位置多項式係数算出部
２０…誤り値多項式係数算出部
２２…レジスタ
２４…ＡＮＤゲート
２６…ＸＯＲゲート
２８ａ，２８ｂ…ｉｍｎバッファ
４０…乗算回路
４２…乗算回路
４５ａ，４５ｂ…出力
４６…乗算器群
４７…加算器群
５２…ＸＯＲ群
５４…ＸＯＲ群
５６…ＸＯＲ群
６０…下流側ＸＯＲ群
６０ａ，６０ｂ…ＸＯＲ群
６２…出力
６４…出力
６６…入力
６８、７０、７２、７７、７８…入力
８０…ＡＮＤ群
８２…ＡＮＤ部
８４…加算器
【図１】
0003606569.tif 000094
【図２】
0003606569.tif 000095
【図３】
0003606569.tif 000096
【図４】
0003606569.tif 000097
【図５】
0003606569.tif 000098
【図６】
0003606569.tif 000099
【図７】
0003606569.tif 000100
【図８】
0003606569.tif 000101
【図９】
0003606569.tif 000102
【図１０】
0003606569.tif 000103
【図１１】
0003606569.tif 000104
【図１２】
0003606569.tif 000105
【図１３】
0003606569.tif 000106
【図１４】
0003606569.tif 000107
【図１５】
0003606569.tif 000108
【図１６】
0003606569.tif 000109
【図１７】
0003606569.tif 000110
【図１８】
0003606569.tif 000111
【図１９】
0003606569.tif 000112
【図２０】
0003606569.tif 000113