JP3606569B2 - 復号回路、該復号回路を用いる復号装置、復号方法および半導体デバイス - Google Patents
復号回路、該復号回路を用いる復号装置、復号方法および半導体デバイス Download PDFInfo
- Publication number
- JP3606569B2 JP3606569B2 JP2001196223A JP2001196223A JP3606569B2 JP 3606569 B2 JP3606569 B2 JP 3606569B2 JP 2001196223 A JP2001196223 A JP 2001196223A JP 2001196223 A JP2001196223 A JP 2001196223A JP 3606569 B2 JP3606569 B2 JP 3606569B2
- Authority
- JP
- Japan
- Prior art keywords
- error
- digital signal
- input
- circuit
- polynomial coefficient
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/1555—Pipelined decoder implementations
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/1525—Determination and particular use of error location polynomials
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Description
【発明の属する技術分野】
本発明は、復号回路、復号装置、復号方法および半導体デバイスに関し、より詳細には、本発明は、高速の光通信分野において特に効果的に誤りを訂正することを可能とする、復号回路、復号装置、復号方法、および半導体デバイスに関する。
【0002】
【従来の技術】
高速で高度な誤り訂正技術の重要性
インターネットの拡大とe−ビジネスの進展に伴い、コンピュータの扱うデータ量とスピードとは、加速度的に増加している。これに伴い、複数のコンピュータの間におけるデータ通信の速度を高めることが要求されており、近年では40Gbpsのデータ転送速度を使用する光通信の使用が普及しつつある。このような高速の、特に光通信といった通信方法において、システム・レベルの誤りの発生率を現在と同等に保つためには、コンピュータの扱うデータ量に比例してデータ通信における信頼性をよりいっそう向上させる必要がある。
【0003】
この信頼性を向上させる重要な技術としては、高度な数学を駆使してさまざまな要因(伝送経路でのノイズなど)による誤りを自動的に訂正する誤り訂正符号と呼ばれるものがある。その中でも、今日、多く使われている代表的な誤り訂正符号として、ハミング符号とリード・ソロモン符号を挙げることができる。上述したハミング符号は、基本的にはビット単位の誤り訂正を行なうものであり、その訂正能力は低いといえる。例えば、ハミング符号を使用すれば、1ビットの誤りを発見した場合は訂正するが、2ビットの誤りは検出するのみとなる。ハミング符号を用いる誤り訂正システムは、誤り訂正処理自体が簡単なため、誤り訂正処理を並列的に処理させることにより、1Gbps(1秒間に10億ビット)を大きく超える高速処理が可能であることが知られている。
【0004】
一方で、リード・ソロモン符号は、複数個の連続したビット単位(シンボル)の誤りを訂正することが可能で高度な訂正能力を有する優れた誤り訂正方法である。しかしながら、リード・ソロモン符号は、処理に複雑な演算を多用するため並列処理が難しく、例えば、8ビットのデータを100MHzでパイプライン処理を実行させたとしても、800Mb/sの処理速度しか得られないのが現状である。したがって、従来のリード・ソロモン符号の復号方式は、低速の通信分野、またはハードディスクやCD−ROM等の二次記憶装置の分野の製品など、現状では主にデータ処理速度の比較的低い分野で応用されており、今後高速性が要求される分野への応用には限界があった。
【0005】
高速光通信分野で要求される誤り訂正技術
特にコンピュータおよびコンピュータが関連するデータ通信に使用される高速光通信の分野では、近年、ますます増大しつつあるインターネットをバックボーンとして、波長多重通信WDM(Wavelength Division Multiplexing)や、さらに波長多重度を向上させたDWDM(Dense WDM)を使った、テラビット/秒の高速通信システムが、所定の長さのフレームを連続して同期転送するSONETといった技術をベースに導入されつつある。
【0006】
光通信を使用する上述したデータ通信における波長多重度の向上に伴い、近接する波長間でのクロストークが問題となる。このようなクロストークに対処するためこれまで、光を用いる波長多重通信における長距離(Long Haul)での転送に際しては、誤り訂正法としてFEC(Forward Error Correction)が使用されている。ITU(International Telecommunication Union)では、ITU−T G.975において、インターリーブされたm=8(8ビット/シンボル)の(255、239)RS符号(符号長n=255バイト)の使用が標準化され、G.709では、FECのFrame構造を定めるDigital Wrapperの標準が採用されている。
【0007】
このような例えばDigital Wrapper標準においては、これまでの低速なシリアル・リード・ソロモン復号回路を複数並列に並べることにより、必要な処理能力が確保されており、リード・ソロモン符号のインターリーブは必要不可欠な技術になっている。
【0008】
高速かつ高度な誤り訂正技術における先行技術
これまで、上述したような光通信での必要性とは独立して、組み合わせ回路によるリード・ソロモン符号のパラレル高速復号の研究が行われてきている。
【0009】
図1は、誤り訂正装置に使用することができるこのような高速復号回路の例を示す。
図1に示される復号回路は、これまでの1復号回路あたりの復号処理速度を10倍以上高速化すること、高度な誤り訂正能力を持つリード・ソロモン符号の誤り訂正処理を、ハミング符号と同程度の処理速度でパラレル復号を行なうことを実現するものである。図1に示した復号回路では、ガロア体上での対称関数による新たな表現形式を、リード・ソロモン符号の復号処理に応用することにより、誤り値を直接計算できるO(t)次の誤り値多項式Er(x)が用いられている(tは誤り訂正できる最大のシンボル数)。
【0010】
図1に示した復号回路では、この多項式の使用により、シンドローム計算、誤り位置評価だけではなく、誤り値の評価も、これまでのようにForneyアルゴリズムを用いて2つの多項式の評価結果を除算して求めるのではなく、1つの多項式で直接計算可能とするので、はるかに簡単化することができる。さらに、図1に示した復号回路では、Er(x)の係数計算だけではなく、誤り位置多項式Λ(x)の係数計算に対しても、組み合わせ回路に適した表現が採用され、必要な演算回路の数の削減を、高速化と同時に可能としている。
【0011】
図1に示される復号回路を使用することにより、0.35μmの標準的なASIC技術を使って半導体上に試作されたランダムな4バイト誤り訂正処理回路では、320ビット幅のデータを低レイテンシ(45 ns)で並列処理することが可能とされ、現在のシリアル復号回路の典型的な処理速度の800Mb/sの10倍近い7Gb/s(1秒間に70億ビット)以上の処理速度が達成されている。さらに、図1に示した復号回路に対して、大規模並列の誤り訂正処理回路に特化した新たな回路最適化アルゴリズムを使用し、回路共有化手法を用いることにより、回路規模が縮小できることが示されている。さらに、図1の復号回路は、外部制御回路やレジスタを使わない組み合わせ回路であるので、高速処理にもかかわらず消費電力も抑えることができるという利点がある。
【0012】
しかしながら、図1に示した復号回路においても、光通信に必要とされる40Gbpsの処理速度には及ばず、また通常の回路共有化手法を用いるだけでは回路規模が、ITUで標準化された8バイト誤り訂正に対応するためには1チップに実装できないほどに大規模になってしまうという問題があった。
【0013】
図2は、従来用いられている低速の復号方式を使用する光通信用誤り訂正回路の概略構成を示した図である。光通信分野での通信速度の向上に伴い、従来の低速のシリアル・リード・ソロモン復号回路を並列に並べる方法は、ますます困難になってきている。既存のRS復号回路では、せいぜい1Gbsの処理性能しかない。このため、図2に示した復号方式においては、低速のシリアル・リード・ソロモン復号回路を並列に並べることで必要な処理性能が実現されている。しかしながら、図2に示した従来方式は多くのリード・ソロモン復号回路を並べる必要が生じ、光通信のデータ転送速度に比例して、回路規模が大きくなってしまうという不都合がある。図3には、図2に示した復号方法を使用する場合の、回路規模と、データ転送速度とをプロットした図を示す。
【0014】
図4には、さらに別の復号回路の従来例を示す(A. Patel、 IBM J. Res. Develp.、 vol. 30 pp. 259−269、 1986)。従来の復号方式では、シンドロームの計算・誤り位置の計算については多項式の評価ですむので、容易に高速化することができる。しかしながら、図4に示すように誤り値の計算でForneyアルゴリズムを用いるため、2つの多項式、すなわち誤り位置多項式の微分dΛ(x)/dxと、シンドロームと誤り位置多項式とから計算される誤り評価多項式Ω(x)との評価の後に除算を実行することが必要となる。そして、これが出力の高速化を妨げるクリティカル・パスとなり、充分な高速化を行うことができないという不都合がある。
【0015】
OC−768 SONETでは、復号回路の入出力インターフェースとして、ITUーG709で決められた16インターリーブを仮定すると、300MHz以上の高速動作が期待されているので、これは、重大な問題となる。図4に示される復号回路を使用し、クリティカル・パスに相当する除算をさらに細かくパイプライン化して出力を高速化しようとすることも試みられている。
【0016】
しかしながら、いくら細かくパイプライン化したとしても図4に示した復号回路では、誤りのない位置でも除算を行なう必要があり、パイプラインの細分化に伴って回路規模・消費電力共に増大する。また、誤り位置にのみ除算を行なおうとすると、誤り位置を事前に計算する必要があり、誤り位置と誤り値の同時計算が行なえないという不都合もある。また、図4に示した復号回路においては、誤りがあるか無いかによって、誤り値の出力に必要なサイクル数が違うので、SONETのような同期式フレームに載せて連続したデータを高速に入出力する必要のある場合には、誤りパターン(誤り数・位置)に依存せず一定のサイクルで高速に誤り値を出力することが困難である。
【0017】
図5にはさらに別の従来の復号回路を示す。図1に示したパラレル・リード・ソロモン復号方式を光通信の分野に応用しようとすると、回路あたりの処理性能という観点では既存の方式よりも優れているためインターリーブされていないRS符号では問題なく応用可能である。しかしながら、ITU−T G.975で決められているインターリーブされたリード・ソロモン符号に対しては、高速で大きなバッファとセレクタを用いて信号の順序を並べ替える必要が生じるため、必ずしも効率のよいものではなかった。すなわち、(255、239)RS符号の符号長は、2040ビットであり、16インターリーブした場合には、16バイト入力255バイト出力のシリアル・パラレル変換回路と255バイト入力16バイト出力のパラレル・シリアル変換回路を必要とし、高速化という点ではある程度の目的を達成することができるものの回路サイズが著しく大規模なものとなり、実用レベルで提供することが困難である。
【0018】
また、上述した復号回路に使用される誤り位置および誤り値の算出においては、ガロア拡大体(GF)2m上における演算を大量に、かつ高速で実行でき、さらには、実装可能な回路規模で処理を実行させることが要求される。従来、上述したガロア体における演算について従来行われてきた検討においては、いずれも単体の演算(乗算や除算)をいかに効率的に行うかに重点が置かれており、それらの演算を、特に組み合わせ回路を採用して数十〜数百以上の演算を行うことについては、これまでほとんど検討がなされていないのが現状である。その理由は、種々推定することができるが、その1つとしては、復号演算は多くはこれまで順序機械によって実装され、組み合わせ回路を採用することは、得られる処理性能と回路規模の点で利点が少ないものと判断されていたこともある。
【0019】
一方、誤り訂正のアルゴリズムについて考察すると、誤り位置の計算アルゴリズムにおいては、ガロア拡大体GF(2m)上で定式化されたYule−Walker方程式がリード・ソロモン符号の計算において発生し、このYule−Walker方程式を効率よく処理することが高速化を達成し、かつ必要とされる回路サイズを可能な限り小さくするために必要とされる。Yule−Walker方程式を解くというアルゴリズムを実行させる場合、高速化の目的から組み合わせ回路で実現する場合には、謝り訂正能力の増大とともにYule−Walker方程式を解いて誤り位置を求める部分が組み合わせ回路の回路サイズの観点からみて非常に大きな割合を占めることになる。
【0020】
加えて、リード・ソロモン符号の復号化を組み合わせ回路を用いて実現し、実際のシステムへと適用する場合には、処理に対する汎用性を付与し、付加的な回路または処理を追加しないためにも、任意の最小距離を持つリード・ソロモン符号の復号化に適用できるアルゴリズムを提供することが望ましい。特に光通信の分野ではITU(International Telecommunication Union)において(255、239) リード・ソロモン符号を使用することが標準化されたため、訂正可能な誤りの最大個数が8、最小距離が17である場合にも、リード・ソロモン符号の復号化を効率的に行うことが可能なアルゴリズムが必要とされている。
【0021】
Yule−Walker方程式を解くという数学的な問題を、組み合わせ回路を用いてハードウエアとして実装可能な規模で実現するためには、回路規模の増大を抑制し、乗算器の個数を削減するアルゴリズム、およびこのアルゴリズムを効率よく処理する組み合わせ回路構成が必要とされている。すなわち、上述した誤り訂正装置および誤り訂正のアルゴリズムを、高速化といった目的を達成しつつ、許容可能な回路サイズとしてデバイス化を可能とする組み合わせ回路が必要とされていた。
【0022】
【発明が解決しようとする課題】
本発明は上述した従来の技術における不都合に鑑みてなされたものであり、本発明は、高速(40Gbpsもしくはそれ以上)の光通信分野、さらにより限定的には連続したデータを同期フレームとして転送するSONET上での波長多重通信のため、インターリーブされたリード・ソロモン符号の効率的な復号回路、復号装置、復号方法、および半導体デバイスを提供することにある。
【0023】
すなわち、本発明は、回路規模あたりの処理性能が高い(低レイテンシ・高スループット)、復号回路を提供することを目的とする。
【0024】
さらに、本発明の別の目的は、インターリーブされたリード・ソロモン符号にも上述した特長を失うことなく対応できる構成の、柔軟な復号回路を提示することにある。
【0025】
さらに本発明の別の目的は、インターリーブされた受信語のそれぞれの誤りパターン(誤り数、位置)に関係なく一定のサイクルで誤り語を連続して高速に出力する復号回路を提供することにある。
【0026】
さらに、本発明の別の目的は、ガロア拡大体GF(2m)(mは2以上の任意の自然数)上の演算回路のうち、いくつかの入力が共通な複数の乗算(例えばABとACとAD)を行う回路、および積和演算AB+CD+EF+…を行う回路を、高速かつ高効率で処理でき、小規模な回路によって実現することが可能な組み合わせ回路、および上述した復号回路を含む復号装置、復号方法、および半導体デバイスを提供することにある。
【0027】
さらに、本発明の別の目的は、リード・ソロモン符号の復号化を組み合わせ回路を用いて実現し、実際のシステムへと適用する場合に、処理に対する汎用性を付与し、付加的な回路または処理を追加せずに任意の最小距離を持つリード・ソロモン符号の復号化に適用できる復号回路、復号装置、復号方法、および半導体デバイスを提供することにある。
【0028】
【課題を解決するための手段】
本発明の上記課題は、本発明の復号回路、復号装置、復号方法および半導体デバイスを提供することにより解決することができる。
【0029】
本発明によれば、符号化された入力ディジタル信号が符号のインターリーブ数に対応して並列して入力される入力部と、
前記入力部からのインターリーブされた符号語間でシリアル化されたデータ出力をそれぞれ処理する誤り位置多項式係数算出部と、誤り値多項式係数算出部とを含む処理部と、
前記処理部からの出力と前記入力ディジタル信号とが入力され、前記処理部からの出力と、前記入力ディジタル信号とから、誤りが訂正された出力ディジタル信号をインターリーブ数に対応して並列に出力する出力部とを備える復号回路が提供できる。本発明の復号回路は、前記入力部は、前記入力ディジタル信号のシンドロームを算出してインターリーブされた符号語間でシリアル化されたデータとしてシンドロームを前記処理部へと渡し、
前記処理部は、入力される前記シンドロームを使用して、誤り位置多項式係数と誤り値多項式係数とを算出し、
前記出力部は、前記処理部の出力を入力として誤り位置および誤り値を、前記入力ディジタル信号からガロア拡大体上における線形演算から生成して前記出力ディジタル信号とする。本発明の復号回路は、前記入力ディジタル信号は、それぞれがリード・ソロモン符号化されたi−チャンネルの並列入力とされ、さらに前記復号回路は、i:1または1:iのマルチプレクサまたはデマルチプレクサを含む。本発明の復号回路では、前記入力ディジタル信号は、光通信における波長多重通信により送信される。本発明の復号回路の少なくとも前記入力部は、順序回路から構成され、前記処理部は、組み合わせ回路から構成される。本発明においては、ディジタル信号の誤り訂正、または暗号化のために使用することができる。
【0030】
本発明においては、符号化された入力ディジタル信号を受信するための入力手段と、前記入力ディジタル信号を処理して誤り位置多項式係数と誤り値多項式係数とを算出する処理手段と、前記誤り位置多項式係数と、前記誤り値多項式係数とから誤りが訂正された出力ディジタル信号を出力する出力手段とを含み、
前記入力手段は、前記符号化された入力ディジタル信号が符号のインターリーブ数に対応して並列に入力され、かつ前記符号化された入力ディジタル信号からインターリーブされた符号語間でシリアル化されたデータとしてシンドロームを算出し、
前記処理手段は、前記受信手段から出力されるそれぞれの前記シンドロームを使用して誤り位置多項式係数と誤り値多項式係数とを算出し、
前記出力手段は、それぞれの前記誤り位置多項式係数と前記誤り値多項式係数と、前記符号化された入力ディジタル信号とからガロア拡大体上における線形演算により誤りが訂正された出力ディジタル信号を符号のインターリーブ数に対応して並列に出力する復号装置が提供される。本発明の復号装置においては、前記入力ディジタル信号は、それぞれリード・ソロモン符号化されたi−チャンネルの並列入力とされ、さらに前記復号装置は、i:1または1:iのマルチプレクサまたはデマルチプレクサを含む。本発明の復号装置では、前記入力ディジタル信号は、光通信における波長多重通信により送信される。本発明の復号装置においては、少なくとも前記入力部は、順序回路により構成され、前記処理部は、組み合わせ回路から構成される。本発明の復号装置は、ディジタル信号の誤り訂正、または暗号化のために用いることができる。
【0031】
本発明によれば、ディジタル信号を復号するための方法であって、該方法は、
符号化された入力ディジタル信号を符号のインターリーブ数に対応して並列して入力するステップと、
前記入力部からのインターリーブされた符号語間でシリアル化されたデータ出力を誤り位置多項式係数算出部と、誤り値多項式係数算出部とを含む処理部を使用してそれぞれ処理するステップと、
前記処理部からの出力と前記入力ディジタル信号とを入力し、前記処理部からの出力と、前記入力ディジタル信号とから誤りが訂正された出力ディジタル信号を生成するステップと、
前記生成された誤りが訂正された出力ディジタル信号を、インターリーブ数に対応して並列に出力するステップと
を含む復号方法が提供される。本発明の復号方法においては、前記入力ステップは、前記入力ディジタル信号のシンドロームを算出してインターリーブされた符号語間でシリアル化されたデータとしてシンドロームを前記処理部へと渡すステップを含み、
前記処理ステップは、入力される前記シンドロームを使用して、誤り位置多項式係数と誤り値多項式係数とを算出するステップを含み、
前記出力ステップは、前記処理部の出力を入力として誤り位置および誤り値を、前記入力ディジタル信号からガロア拡大体上における線形演算から生成して前記出力ディジタル信号とするステップを含む。本発明の復号方法においては、前記入力ステップは、それぞれがリード・ソロモン符号化されたi−チャンネルの並列入力として前記入力ディジタル信号を入力するステップを含み、さらにi:1のマルチプレクシング・ステップおよび1:iのデマルチプレクシング・ステップを含む。本発明の復号方法においては、光通信における波長多重通信により送信される入力ディジタル信号として入力される。本発明の復号方法においては、少なくとも前記入力ステップは、順序回路を使用した演算処理を行い、前記処理ステップは、組み合わせ回路を使用して演算処理を行う。本発明の復号方法は、ディジタル信号の誤りを訂正するために使用することができる。
【0032】
本発明によれば、ディジタル信号を処理するために使用される半導体デバイスであって、該半導体デバイスは、
符号化された入力ディジタル信号を受信するための入力手段と、
前記符号化された入力ディジタル信号を処理して誤り位置多項式係数と誤り値多項式係数とを算出する処理手段と、
前記誤り位置多項式係数と、前記誤り値多項式係数とから誤りが訂正された出力ディジタル信号を出力する出力手段とを含み、
前記入力手段は、インターリーブされた前記符号化された入力ディジタル信号がインターリーブ数に対応して並列に入力され、かつ前記符号化された入力ディジタル信号からインターリーブされた符号語間でシリアル化されたデータとしてシンドロームを算出し、
前記処理手段は、前記入力手段から出力されるそれぞれの前記シンドロームを使用して誤り位置多項式係数と誤り値多項式係数とを算出し、
前記出力手段は、それぞれの前記誤り位置と前記誤り値と、前記入力ディジタル信号とからガロア拡大体上における演算により生成された出力ディジタル信号をインターリーブ数に対応して並列に出力する、半導体デバイスが提供される。本発明においては、前記入力ディジタル信号は、それぞれリード・ソロモン符号化されたi−チャンネルの並列入力とされ、さらに前記半導体デバイスは、i:1または1:iのマルチプレクサまたはデマルチプレクサを含む。本発明においては、前記符号化された入力ディジタル信号は、光通信における波長多重通信により送信される。本発明においては、前記入力手段は、順序回路から構成され、前記処理手段は、組み合わせ回路から構成される。本発明においては、前記組み合わせ回路は、ガロア拡大体GF(2m)(mは、2以上の整数)におけるディジタル信号の2個以上の乗算を独立して行う複数の乗算器を含み、
前記乗算器は、入力側XOR演算部と、AND演算部と、出力側XOR演算部とを含んで構成され、前記入力側XOR演算部が、複数の前記乗算器に共有される。本発明においては、前記組み合わせ回路は、ガロア拡大体GF(2m)(mは、2以上の整数)における積和演算器を含み、かつそれぞれの前記乗算器は、前記AND演算部と、前記出力側XOR演算部との間に接続される加算器を含み、前記出力側XOR演算部が共有されていて、複数の前記乗算器の前記AND演算部の出力を前記加算器により加算し、該加算結果を共有される前記出力側XOR演算部により演算する。本発明においては、複数の前記乗算器の入力が共通しており、前記入力側XOR演算部が複数の前記乗算器により共有される。
【0033】
本発明の半導体デバイスは、波長多重通信により送信されるディジタル信号の復号回路の誤り位置を算出する誤り位置算出部および誤り値算出部に使用される。本発明においては前記半導体デバイスは、復号または誤り訂正または暗号化に使用される。
【0034】
【発明の実施の形態】
以下本発明を、図面に示した実施の形態に基づいて説明するが、本発明は、図面に示した実施の形態に限定されるものではない。
【0035】
セクション1 <復号回路>
図6には、光通信により送信されたディジタル信号に含まれる誤りを訂正するために使用することができる本発明の復号回路を示す。図6に示した復号回路は、入力部10と、処理部12と、出力部14とを含んで構成されている。入力部10は、例えば16インターリーブされた入力ディジタル信号IDが入力される。処理部12は、この入力部からの出力を受け取って処理を行ない、誤り位置多項式係数と誤り値多項式係数とを算出する。出力部14は、この処理部12からの出力を受け取り、出力された誤り位置と誤り値とをAND処理し、入力される入力ディジタル信号IDとXOR処理を行なって、出力ディジタル信号ODを生成する。出力ディジタル信号ODは、入力ディジタル信号に含まれる可能性のある誤りが訂正されている。
【0036】
図6に示した復号回路に入力される入力ディジタル信号IDとしては、本発明においては、光通信、特に40Gbpsといった高速のデータ転送レートで波長多重通信法により送信されるディジタル信号を入力することができる。より具体的には、上述した入力ディジタル信号IDは、例えば(255,239)RS符号により符号長2040ビットとして送信されるものを用いることができる。通常、波長多重通信方においては、上述した入力ディジタル信号は、インターリーブ方式が採用されて、例えば16の並列な255バイト・ストリームとして本発明の復号回路に入力される。
【0037】
図6に示した本発明の復号回路においては、上述した入力ディジタル信号IDは、入力部10においてインターリーブされて並列に入力され、それぞれの入力について、受信多項式が規定され、この受信多項式からシンドロームSiが算出され、入力部10の出力とされる。入力部10(シンドローム算出部)の出力であるシンドロームSiは、(255,239)RS符号の場合は、入力ディジタル信号255バイトから得られる16バイトのディジタル情報として生成される。例えば、本発明の図6において説明する復号回路の実施の形態においては、入力ディジタル信号は、2040ビットが16インターリーブされて16の255バイト・シリアル・ストリームとして入力部10へと入力され、入力部10において16のシリアル・ストリームに対応する16の16バイト・シンドロームが生成されることになる。
【0038】
図6に示されるように、入力部10においては、それぞれの入力ディジタル信号IDのシリアル・ストリームIDSに対して1つのシンドローム算出部16が割り当てられ、シンドロームが算出される構成とされている。算出されたそれぞれのシリアル・ストリームIDSについてのシンドロームは、レジスタ18に保持された後、出力部14へとマルチプレクサにより符号語間でシリアル化されたデータとして出力される。例えば、上述したように、16インターリーブされた255バイトの入力ディジタル信号から得られた16バイトのシンドロームからは、誤り位置および誤り値の算出の為に、128ビットの信号が得られることになる。図6に示した入力部10において使用することができるシンドローム算出部16としては、順路回路を使用する回路など、これまで知られたいかなる回路でも使用することができる。なお、シンドロームの定義および算出方法についてはより詳細に後述する。
【0039】
図6に示された復号回路においては、算出されたそれぞれのシンドロームSiは、処理部12へとそれぞれ順次入力される。図6においては説明の便宜のため、処理部12は、1つだけを例示して示している。図6に示した処理部12は、複数の乗算器により構成された組み合わせ回路から構成される、誤り位置多項式Λ(x)を算出するための誤り位置多項式係数算出部18と、誤り値多項式Er(x)を算出するための誤り値多項式係数算出部20と、を含んで構成されている。処理部12において使用される乗算器を含む組み合わせ回路の詳細についてはセクション2<組み合わせ回路>においてより詳細に説明する。
【0040】
図6に示した処理部12の出力である誤り位置多項式Λ(x)と、誤り値多項式Er(x)とは、出力部14へと、図示しないデマルチプレクサにより、例えばインターリーブの数に対応する用にデマルチプレクスされた後、入力される。出力部14には、それぞれの入力ディジタル信号のインターリーブの数に対応する数だけ配置されたレジスタ22と、ANDゲート24と、XORゲート26とが形成されている。出力部16では、それぞれのシンドロームから得られた誤り位置情報(誤り位置には「1」、そうでなければ「0」)Λevalを使って、誤り値ErをANDゲート24により選択する。さらに選択された出力は、XORゲート26において加算が行われる。このXOR選択ゲート26には、符号化された入力ディジタル信号IDから得られるシリアル・ストリームIDSが、imnビットのバッファ28a,28bを介してXORゲート26へと入力されており、XORゲート26においてガロア拡大体GF(2m)上の減算を実行させることによって誤りが除去された255バイトの出力ディジタル信号ODとして与える構成とされている。
【0041】
図6に示した本発明の復号回路においては、上述した処理部12を構成する組み合わせ回路を順序回路として構成することもできるが、本発明において特に複数の乗算器を、入力側XOR演算群(変数前処理部)と、AND演算群、出力側XOR演算群(剰余演算)の3段構成とし、変数前処理部または剰余演算部の一方ないし両方を、複数の乗算器間で共有させる構成を採用することにより、従来誤り位置および誤り値の算出においてクリティカル・ポイントとされてきた処理部12における回路規模を実用上許容可能な規模としつつ、効率的に乗算器から構成させることが可能となる。
【0042】
図6に示した本発明の復号回路では、上述したように出力部14を、処理速度を低下させる非線形演算を実行させる回路構成を採用することなく、定数乗算器と加算器いった線形演算を行う回路のみで構成させる。このため、本発明の復号回路は、処理速度を低下させず高速に、かつ回路構成を小規模としつつ復号回路として構成することが可能となる。さらに本発明者らは、鋭意検討の結果、特定の構成を含む乗算器から構成される組み合わせ回路と、該組み合わせ回路において誤り位置および誤り数を効率的に算出することを可能とするアルゴリズムとを採用することにより、従来にまして柔軟で高速かつ、小規模の復号回路を構成することを見出し、本発明に至ったものである。
【0043】
本発明において採用する誤り位置多項式係数算出の方法またはアルゴリズムについてはより詳細に組み合わせ回路構成と共に後述するが、以下に、本発明の復号回路における処理部12に含まれる誤り値多項式係数算出部20の機能・作用について説明する。
【0044】
誤り値計算アルゴリズムの選択
本発明の復号アルゴリズムについては、誤り位置の評価だけではなく誤り値の評価もO(t)次の多項式計算(線形演算)で直接計算可能なアルゴリズムをインターリーブされたリード・ソロモン符号の復号に対して適用するものである。この際、本発明において採用するアルゴリズムにおいては、特に誤り値の計算に必要な除算を、多項式の評価の後の出力のクリティカル・パス中で誤り位置ごとに行うのではなく、多項式の評価の前に符号語ごとにただ一度線形演算で行う。これにより、多項式評価の値を誤りの値として一定のサイクルで直接高速出力することが可能となる。
【0045】
さらに、誤り値Er(x)多項式の次数は、t個の独立した出力を出すのに最低必要とされるt−1次まで低くできることが判明している。その際に得られるt個の係数は、誤り位置多項式の係数とシンドロームとを使って計算することが可能である。このアルゴリズムの採用により、シンドローム計算、ならびに、誤り位置評価だけではなく、誤り値の評価も線形演算回路だけで実行することが可能となり、入出力出力回路全体を簡略化高速化することが可能となる。
【0046】
本発明の復号アルゴリズムまたは復号方法において種々の誤り値多項式を使用することができるが、以下、e個の誤りがi0,...,ie−1に発生したときの誤り値多項式Er(x)が下記式
の形式で与えられ、除算を含むが、分母は多項式ではなく、符号語ごとに定数である実施の形態を例として、本発明の機能・作用について説明する(上記式中、aは、ガロア拡大体の原子元を意味する)。
【0047】
上述した誤り値多項式Er(e)(x)は、多項式Er(e)(x)の計算に位置
(以下aikと略する)に存在するk番目の誤り値
(以下Eikと略記する)が必要となるので本末転倒であり、直接本発明の復号回路に使用することができない。しかしながら、もしEr(e)(x)中のすべてのEikといくつかのaikを、シンドロームSiを使って記述すれば、回路化が可能となる。さらに、この場合Er(e)(x)中のすべてのaikを誤り多項式Λ(e) jを使用して記述することで、誤り位置を求める前に誤り値の算出を実行することが可能となる。したがって誤り値の算出を並列化することが可能となり、この結果高速化を達成することができる。
【0048】
上述したプロセスは、以下の復号アルゴリズムまたは復号方法を使用することにより実行することができる。まず、分母の部分をΛ(e) jで記述する。誤り値と誤り位置多項式の係数は、定数ファクタを除いて誤り位置、
について、それぞれElementary symmetric functionとなる。例えば、誤り位置多項式の係数
については、
となっており、誤り位置、
は、互いに交換可能である。また、Shur関数と呼ばれる2つのVandermonde行列式の割り算で定義されるものと、上述したElementary symmetric functionとの間に成り立つ関係式(例えば、I.G.Macdonald, Symmetric Functions and Orthogonal Polynomials, American Mathematical Society, 1998参照)と、ガロア拡大体GF(2m)において成り立つ加算と2乗算の下記交換関係、
から、以下の新規な関係が導出できる。
【0049】
上記行列式を採用することにより、さきのEr(e)(x)の分母を,Λ(e) iで記述することが可能となる。Er(e)(x)の分子についても同様に算出してみると、下記式で示すように、Er(e)(x)の係数がSi、Λ(e) iのみで記述でき、Eikと、aikを使用しなくとも算出することができることになる。
ここで、
であり、具体的には、aikを除いた誤り位置に対応する誤り位置多項式の係数である。
【0050】
上述したように、上述した関係を新たに採用することにより、非線形演算回路を使用することなく、ガロア拡大体GF(2m)上における線形演算回路により、処理部14を構成することが可能となり、高速化を実現することが可能となる。
【0051】
以下、上述の誤り値計算アルゴリズムを用いてインターリーブ符号にも対応した高速、小回路規模の符号回路を構成する為に以下の構成を採用する。
(1)高速の入力部・出力部(線形演算回路)の採用
まず、符号の構成(インターリーブ数)と入出力インターフェースのバス幅、クロック数等を考慮して、入力に接続されたシンドローム計算のための多項式評価(線形演算)回路、出力側に接続された誤り位置評価・誤り値評価のための多項式評価(線形演算)回路を、RS符号が巡回符号であることに起因するサイクリックな構造を生かして、1からnの任意のクロック数で(n,k)リードソロモン符号の前処理・後処理する高速な順序回路として実現したことである。特に、従来方式でクリティカル・パスであった誤り値評価の部分に対しても上述した構成を採用するこちが本発明においては有効である。また、本発明の構成によれば、符号語あたりの入力されるディジタル信号幅が255バイトの場合ばかりではなく、1、3、5、15、17、51、85バイトインターフェースとして、柔軟に対応することができる復号回路を提供することができる。
【0052】
表1には、本発明の復号回路において入力ディジタル信号の入力幅に対して要求される処理クロックの関係を示す。
【0053】
【表1】
表1に示されるように、ディジタル信号の入力幅が小さくなればそれに対応して必要なクロック数は増加するものの、本発明の復号回路を採用することにより柔軟に対応することが可能となることが示されている。
【0054】
さらに、本発明においては、符号語あたりの入出力のバイト幅は表1で示された以外でも任意に選択可能である。例えば入出力幅8バイトの場合でも、符号の長さを最後にダミー1バイトを加えてn=256バイトとすることにより対応可能となる。
【0055】
(2)非線型演算回路12との接続
本発明においてはさらに、入力部10および出力部14として順序回路を用いて構成し符号のインターリーブ数に応じて複数用意し、前後の順序回路の間にシンドロームならびに誤り位置・誤り値多項式の係数を保持する回路と、マルチプレクサ・デマルチプレクサとを用いて、誤り位置・誤り値多項式の係数計算を行う非線型演算回路12に接続する。この演算回路は上述したように、非線形演算を実行する乗算器といった非線形演算回路の組み合わせ回路として構成されている。このため、本発明においては、例えば、OC−768を仮定して(255,239)リードソロモン符号を16インターリーブして使用する場合には、前後に16個づつ順序回路を用意することが必要となる。すなわちこの場合、16:1のマルチプレクス・デマルチプレクスを行う必要がある。しかしながら、本発明においては、シンドローム多項式の係数をマルチプレクス・デマルチプレクスするために、2040ビットではなく、128ビット(Er(x)の取り方によっては、後段は、136ビット)の信号を扱うだけですみ、マルチプレクサ・デマルチプレクサ、バッファの数共に大きく削減することが可能となる。
【0056】
(3)中央の非線型演算回路を時分割に使う3段パイプライン動作方式
本発明においては、さらに、復号回路全体を線形演算回路(シンドローム計算)−非線型演算回路(誤り位置・誤り値多項式の係数計算)−線形演算回路(誤り位置・誤り値の評価)の3段パイプラインとして動作させ、低レイテンシの非線型演算回路をインターリーブされたそれぞれの符号の計算にシンドロームを符号語間でシリアルに順次与える事により時分割して用いる。このため、回路規模あたりの処理能力の高い高効率のインターリーブ符号の復号動作を実現できる。例えば、OC−768のケースでは、中央の非線型演算回路は、上述した3段パイプラインの動作をさせるためには、約40nsのレイテンシでインターリーブされたそれぞれの符号語あたりの処理を終える必要があるが、最先端の半導体技術(0.18μm以上)を使い、組み合わせ回路を用いた実装を行うことにより、上述した復号回路をASICといった半導体バイスとして実現できる。
【0057】
すなわち、本発明の復号回路は、(1)高速の入力部10と高速の出力部14を採用すること、特に従来では非線形演算を行う必要があった出力部14に対して、誤り位置および誤り値を線形演算回路だけを使用して算出できるようにし、さらに、処理部12に対しては上述した復号アルゴリズムに適合すると共に、回路サイズを低減させる乗算器構成を採用すること、(2)本質的に非線形演算を実行する処理部12を、時分割して使用して、3段パイプライン動作方式を採用すること、による相乗的な効果により、高速かつ回路サイズが許容範囲の復号回路、誤り訂正装置を提供することを可能とするものである。以下、セクション2として、本発明の復号回路における処理部12に含まれる乗算器から構成される組み合わせ回路について詳細に説明する。
【0058】
セクション2<組み合わせ回路>
本発明の復号回路に使用する処理部12は、線形演算回路、具体的には乗算器を使用した組み合わせ回路として構成される。本発明において使用される乗算器は、しかしながら、従来の組み合わせ回路に使用される乗算器は、ガロア拡大体GF(2m)における乗算をAND演算群の次にXOR演算群を行う2段階の構成とするのではなく、XORゲート−ANDゲート−XORゲートの3段階の構成を採用する。
【0059】
単体の並列乗算回路の構成方式
単体の乗算回路に関しては従来より多くの検討がなされているものの、順序回路でなく組み合わせ回路として構成された並列乗算回路(Mastrovito Multiplier)については意外に研究の歴史が浅く、近年検討が開始されたといってもよい。従来の並列乗算回路(以下、本明細書においては、単に乗算回路という。)の構成方式は、AND−XOR形式とXOR−AND−XOR形式の2種類で、相互変換可能である。 ただし単体の乗算しか回路化しない場合には、AND−XOR形式のものが通常用いられる。その理由は、AND−XOR形式はよく研究されていて小規模回路を得る方法がかなり検討されているのに対し、XOR−AND−XOR形式については一般に回路規模が削減される保証がなく(むしろ増える場合がある)、設計作業の複雑化に見合うだけの削減効果がないと考えられることが、その理由であると考えられる。以下、各場合について検討を加える。
【0060】
(1) AND−XOR形式
この方法は、筆算どおりに計算を進める教科書的な方法で、通常はこの形の回路を使用する。具体的には、乗算の引数となる2つの(m−1)次多項式に対し、その係数どうしを組み合わせてm2個の部分積をまず作る。これがAND部の処理内容である。次に、それらの部分積のうち次数が同じものどうしを加算して(2m−2)次多項式を構成し、既約多項式による剰余演算を行って(m−1)次の解を得る。これらがXOR部の処理内容である。ANDの個数はm2、XORの個数はO(m3)であるが、既約多項式や基底を選択することによりXORが(m2−1)個で構成できることが広く知られている。任意の乗算回路は必ずこの形式で構成できる。
【0061】
(2) XOR−AND−XOR形式
上述したAND−XOR形式の回路に対し、ブール代数の規則である (A and B) xor (A and C) = A and (B xor C)のもとで、剰余演算部にあるXOR演算をANDの前に移動して変数前処理演算部(入力側XOR演算)とすることが、一般に可能である。これによって乗算器の回路を、XOR−AND−XOR形式とすることができる。XORの移動にあたって、A xor A = 0、B xor 0 = Bの性質を利用し、剰余演算部(出力側XOR演算)のXOR中に同一の冗長タームを偶数個追加しておくことで、より多くのXOR演算を変数前処理部へ移動できる場合がある。この操作が可能なため、XORの移動には、単に分配律をそのまま適用するのみならず多様なやり方が存在し得る。したがって、たとえ同一の基底や既約多項式のもとであっても、XOR−AND−XOR形式は複数存在することになる。ゲート数は、XOR−AND−XOR形式にすることでAND−XOR形式より増加する場合も減少する場合もあり、まちまちである。また、次に述べるComposite Field Multiplierのように、特殊な基底のもとでシステマティックにXORゲートを削減する方法もこれまでに知られている。
【0062】
(3)限定された体のみに適用可能なXOR−AND−XOR形式の構成法(Composite Field Multiplier)
Composite Field Multiplierは、mが合成数で、なおかつ体の要素の表現に用いる基底が通常の基底(多項式基底や正規基底)でなくてもよいという、特殊な場合に限って使える乗算回路構成法である。以下、より詳細に説明を行う。mが合成数のとき、GF(2)から2回以上の体の拡大によって拡大体GF(2m)を構成できる。その拡大の過程に従って再帰的な構造の乗算回路を構成するのがComposite Field Multiplierである。このとき、例えば1回の2次拡大に対し、GF(2m)上の2つの値Ax+BとCx+D(ここでA,B,C,Dは、それぞれ部分体GF(2m/2)上の値)の積が、
であることを用いれば、部分体上の乗算を4個から3個へ減らすことができ、回路規模を減少させることができる(KOA)。同時に、回路はXOR−AND−XORの構造として構成することができる(乗算の前に行う加算が、ANDの前に配置されるXORに対応する)。なお、KOAの使用はComposite Field Multiplierであることが前提であって、そうでない乗算回路ではKOAは通常使用することができない。また、仮にmが同手法を適用できる値であっても、体の変換回路が必要でそのオーバーヘッドのためにかえって回路規模が増えるので、単体の乗算しか回路化しない場合には同手法は通常採用される構成とはならないものである。
【0063】
<本発明における組み合わせ回路の通常の乗算器による構成>
本発明が対象とする入力共通乗算回路群、および積和演算回路を通常のAND−XOR構成で構成した場合の構成を図7および図8に示す。図7においては組み合わせ回路の例として、2つの乗算器を使用する組み合わせ回路が示されている。図7に示されるように従来の乗算器は、第1の入力A1が乗算器40および乗算器42へと入力され、乗算器40には、第2の入力B1が入力されて第1の出力45が、乗算器42には第3の入力B2が入力されて第2の出力46とが出力されている。図7に示すとおり、従来の構成では、乗算間で共通な入力があっても、そのために共有可能となる回路はまったく存在しない。図8には、積和演算を行うための組み合わせ回路を従来の乗算器の構成により構成した従来例を示す。図8に示す積和演算を行うための組み合わせ回路においても、そのままでは共有可能な回路は存在しないことがわかる。
【0064】
図9は、従来の構成の乗算器を使用する組み合わせ回路の例を示す。図9の入出力では、1シンボルを1本の線として表記してある。また、入出力はそれぞれ8ビット幅であるものと仮定している。図9における組み合わせ回路においては、6シンボルの入力と1シンボルの出力とを含み、さらに7個の乗算回路と5個の加算回路を含んで構成されている。図9に示した組み合わせ回路においては、S0,...,S3Qで示された入力が乗算器群46へと入力され、加算器群48により加算された後、積和演算回路50へと入力されて、各入力の積和演算の結果である出力L21Qが生成されている。
【0065】
図9においては、破線で示したクロスターム構成演算と剰余演算の組み合わせが1つの乗算に相当する。図9において示されている乗算器の回路は標準的なものなので、詳細な回路の説明については省略する。この乗算回路を含む組み合わせ回路は、64AND+約103XORの数のゲートを含んでおり、回路全体のゲート数は448AND+約761XORとなる。図9から明らかなように、ほとんどの乗算の入力は、その一方あるいは両方が他の乗算と共通である。また、最終段などで積和演算が行われている。
【0066】
表2には、ガロア拡大体GF(28)において従来の標準的なAND−XORの2段構成の乗算回路、Composite Field Multiplierおよび部分体拡大体GF(24)の乗算をXOR−AND−XORにする改変を行った乗算回路に含まれる各ゲートの数を示す。
【0067】
【表2】
【0068】
すなわち、単体の乗算器のみに着目すれば、上記a〜cいずれも回路規模は従来のComposite Field Multiplierの場合より増加しており,最小規模のものではない。このように、単に乗算器をXOR−AND−XORの3段構成とするのでは、回路の規模を逆に大きくする場合もある。
【0069】
<本発明の組み合わせ回路における乗算器構成>
一般には、多数の乗算や積和演算が絡み合うとブール代数上での最適化は困難である。しかしながら、本発明における処理部12として組み合わせ回路を使用することを考慮すれば、上述した積和演算や乗算が並列かつ多段に多数接続された構造となっており、i段目の積和演算は一般に0段目〜i−1段目の出力を入力とする。したがって、後段の演算回路になるとほぼ組み合わせ回路の回路全体において、共通した入力を並列処理する必要が生じるため、最適化範囲が広がることになる。本発明者らは、この点に着目し、他の演算とのバランスも取りつつ、ブール代数上の最適化することにより、乗算器の効率的な組織化を達成したものである。
【0070】
図10は、図7に示した従来の構成の乗算器および加算器からなる組み合わせ回路を、乗算器を3段構成として本発明の組み合わせ回路とした本発明の実施の形態の組み合わせ回路を示す。図10に示される組み合わせ回路においては、入力A1が第1のXOR群52へと入力され、入力B1が第2のXOR群54へと入力され、入力B2が、第3のXOR群56へと入力される構成とされている。これらのXOR群52、54、56が、本発明において採用される変数前処理演算を実行するゲートである。このうちXOR群52、54、56は、共通した入力A1を処理する構成とされていて、回路規模の縮少になっている。各XOR群52、54、56の出力は、それぞれAND群58へと入力され、クロスタームが算出された後、再度下流側のXOR群60において剰余演算が実行され、XOR群60aから出力62が出力され、XOR群60bから出力64が生成されている。図10にいては、1つの乗算を行う単位が破線BLで示されており、変数前処理(XOR)−クロスターム演算部(AND)−剰余演算部(XOR)の3段構成により、1つの乗算器が構成されているのが示されている。図10に示されるように、各乗算をXOR−AND−XORの構成とし、かつ、共通の入力に対して行うXOR演算を乗算間で統一すれば、そのXOR演算回路を乗算回路間で共有できることになる。1個分の乗算に相当する部分(変数前処理演算*2+新しいクロスターム構成部+新しい剰余演算部)の回路規模が通常の乗算回路と同じか若干大きい程度であれば、乗算群全体としての回路規模を減少させることが可能となる。
【0071】
図11は、図10に示した従来の組み合わせ回路を、本発明において採用する3段構成の乗算器を使用して実装化した場合の組み合わせ回路の構成の別の実施の形態を示した図である。図11に示される組み合わせ回路においては、入力66、入力68、入力70、入力72が、それぞれ変数前処理演算を実行するXOR群74、76、77、78へと入力され、XOR群のそれぞれの出力が、クロスターム構成演算を実行するAND群80、82へと入力されている。
【0072】
AND群80、82の出力は、加算回路84へと入力されて加算が実行され再度共有された下流側のXOR群86において剰余演算が実行されて、乗算が行われ、出力88が生成される構成とされている。図11に示した乗算器1単位の構成は、枠Bxで示した内側において形成されている。図10との相違点は、入力側のXOR群74、76、77、78が共有されない場合であっても、本発明においては、下流側、すなわち出力側の剰余演算を実行するXOR群86を共有する構成とすることができる。
【0073】
さらに、本発明においては、入力側、すなわち変数前処理演算を実行するXOR群74〜78を共有化し、剰余演算を実行するXOR群を同時に共有させることにより、さらに全体としての組み合わせ回路の構成を縮小することができる。
【0074】
図12は、図9に示した組み合わせ回路を、3段構成の乗算器を使用して本発明の組み合わせ回路とした、さらに別の実施の形態を示した図である。なお、図12に示した組み合わせ回路は、図6において示したRS符号誤り訂正のための復号回路(e=2)の処理部12の一部を構成する組み合わせ回路の実施の形態である。図12に示した組み合わせ回路においても、図9に示した従来例と同様にS0〜S3Qが入力されている。図12に示すように、入力S0の変数前処理演算を行うXORゲート90は、枠で示すように、ANDゲート92、94、96に対応する3つの乗算器により共有されている。さらに下流側においては、剰余演算部98についても複数の乗算器により共有されていて、変数前処理演算を行うXORゲートおよび剰余演算を実行するXORゲートの双方が共有されているのが示されている。また、図10、図11、図12と同様に、乗算器の1つの単位は、鎖線により示されている。図12に示した組み合わせ回路においては、回路中の変数前処理演算部は8個、クロスターム構成演算部は7個、剰余演算部は4個、8ビット幅の加算は2個、クロスターム構成演算部と同ビット幅の加算は3個となる。
【0075】
このことから、表2で示した乗算回路をもとに、図12に示した組み合わせ回路で上述した復号回路の一部を構成させる場合については、そのゲート数は、以下の表3のようにまとめることができる。
【0076】
【表3】
【0077】
表3a〜cに示されるように、単体の乗算をあえて最小規模にはしなかったにもかかわらず、回路全体としてはより回路規模が縮小されることが見出された。
【0078】
図13は、誤り訂正能力t=2〜8の図6に示した誤り訂正回路の処理部12に使用する場合において必要とされるXORゲート数と、それに対応する乗算器数とを示した図である。図13は、縦軸をXORの全数とし、横軸を乗算器の個数として示されており、この場合には、図6の誤り訂正用の復号回路は、m=8で、既約多項式がx8+x4+x3+x2+1であるものとして算出した。この場合、乗算を662、加算を531、2乗演算を30回使用する。表3および図13から理解されるように、乗算器単体の乗算をあえて最小規模にはしなかったにもかかわらず、本発明の構成を採用することにより、組み合わせ回路全体としては回路規模をより縮小することができることが示される。
【0079】
図13に示した実施の形態においては、具体的な回路構造を明確にする目的から、乗算における変数前処理部、クロスターム構成部、剰余演算部をすべての乗算について同一であるものとして説明した。実装上の段階においては、さらに良好な結果を得るために、どれだけのXORを変数前処理部・剰余演算部に配置するか(つまり,表記a〜cのいずれを用いるか)を、回路中の乗算ごとに変更して最適化することも可能である。さらに、図13に示した実施の形態においては、回路入力に対する演算数の割合が少なく、体変換のオーバーヘッドもあるので、ゲート数減少の効果はさほど大きくはないものの、実用上は入力に対する演算の割合がかなり高くなるため、ゲート数削減効果による回路規模の削減は、図14に示すように顕著なものとなる。
【0080】
セクション3 <誤り訂正アルゴリズム>
以下、本発明の復号回路、誤り訂正装置において使用される誤り訂正アルゴリズムについて詳細に説明する。
【0081】
(従来技術の概要)
A.<Yule−Walker方程式を解く、または誤り位置多項式を求めるための従来の手法とその問題点>
本発明においては、GF(2m)上で定義された次の連立一次方程式の解を組み合わせ回路を用いて計算するための効率的なアルゴリズムを見出すことが必要である。
【0082】
上記式中、
は、与えられたGF(2m)の元であり、Λ(l) iが未知の量である。
【0083】
上記の連立一次方程式において、左辺の行列は、右斜め方向(対角線と交わる方向)に同じ成分が並ぶという規則的な構造をしており、Hankel行列といわれる。一般にこのタイプの方程式は、Yule−Walker方程式と呼ばれ、誤り訂正符号の理論をはじめとして時系列解析や信号処理の分野でも現れるなど、広い応用範囲を有していることが知られている。誤り訂正アルゴリズムにおいては、誤り位置多項式を決定する部分にこのYule−Walker方程式が現れることになる。そこで、本発明においては、上述したYule−Walker方程式の解を得るためのアルゴリズムを、リード・ソロモン符号の復号を行うために使用される誤り訂正アルゴリズムに適用するものである。
【0084】
上述したYule−Walker方程式の解法としてよく知られているものとして、Levinsonのアルゴリズム、Levinson−Durbinのアルゴリズム等がある。これらのアルゴリズムは、いずれも行列のサイズlが小さい所から計算を始め、再帰的に行列のサイズが大きい方程式の解を決定していくものである。また、計算量は共にl2のオーダである。しかしながら、これらのアルゴリズムは、計算ステップの中に割り算の操作を含んでいる。このことは、アルゴリズムの実行を組み合わせ回路として実装することを考えたとき、分母が0か否かに応じた条件分岐が発生することを意味する。この条件分岐が発生することにより、条件分岐の各々に対して別々の回路を用意しなくてはならないので必要とされる回路サイズは 行列のサイズが大きくなるにしたがって組み合わせ的な速さで大きくなってしまうという本質的な問題を生じる。
【0085】
また、本発明においては、Yule−Walker方程式の解を求めることによって、特にリード・ソロモン符号の復号化において、誤り位置多項式を決定することを目的とする。従来Yule−Walker方程式の解法として用いられている方法としては、Peterson法、Berlekamp−Massey法、Euclid法などを挙げることができる。これらはいずれも訂正可能な誤りの最大数tに関して、多項式オーダの計算量で誤り位置多項式の係数を計算するものである。しかしながら、Berlekamp−Massey法とEuclid法を組み合わせ回路で表現と以下に述べる問題が生じる。
【0086】
まず、Berlekamp−Massey法に関しては、アルゴリズムの中にやはり複数個の条件分岐を含むことになることが不可避である。したがって、これを組み合わせ回路に展開するときには上述した理由と同じ理由で回路サイズは組み合わせ的に増大する。一方、Euclid法においては多項式の乗除算がアルゴリズムの基本となるが、割り算の分母に現れる多項式の次数が前もってわからないために、ここに条件分岐の入る余地がある。また、この条件分岐に起因してBerlekamp−Massey法の場合と同様の組み合わせ的な回路規模の増大を生じさせてしまうことになる。
【0087】
B.< 組み合わせ回路に適したYule−Walker方程式および誤り位置多項式の計算法の方針>
上述したように、Levinson(−Durbin)法、Berlekamp−Massey法、Euclid法は共に条件分岐を含むため、組み合わせ回路化という観点からは問題がある。そこで、Yule−Walker方程式の解法を組み合わせ回路で実現するためには場合分けのないアルゴリズムを見出すことが必要であり、これが、本発明のアルゴリズムにおける本質的な方針として与えられる。
【0088】
この場合、上述のアルゴリズムとして、リード・ソロモン符号の復号化で知られているPeterson法を用いることができる。Peterson法のアプローチはYule−Walker方程式を直接解くことになる。この際、Yule−Walker方程式の解は次のようにCramerの公式を用いて行列式の形で表示することができる。
【0089】
したがって、それぞれの
に対して、行列式Λ(l) 0を求め、誤りの個数eに対して、行列式、
を計算すればよいことになる。
【0090】
しかしながら、行列式の展開をそのまま回路として実現すると、tが増大するにしたがって必要となる乗算器の個数が飛躍的に増大するので同様に直接的な適用は困難である。このため、本発明においては、Hankel行列の帰納的な構造を利用して計算量の削減を行う。このためのアプローチとしてKatayama−MoriokaによるΛhat(l) iの計算と従来の方法と対比して説明する。
【0091】
まず、Katayama−Moriokaの中でのΛ(l) iの計算アルゴリズムをl=1からl=4まで書き下すと図14に示す形態となる。
【0092】
次にHankel行列の行列式を帰納的なアプローチで計算する別な手法として、Kogaによる方法を対比のために説明する。Kogaによる方法によれば、まず、次の新たな誤り位置多項式、
が定義されている。ここで、
である。
【0093】
そして、この新たな誤り位置多項式を計算するため、i番目のシンドロームSiを(1、1)成分に持つようなHankel行列
を考え、
から複数の行と列を対称に抜き去った行列式をQ行列式と定義する。Q行列式は、一般に対角成分に現れるシンドロームの添え字番号を左上から順に指定してやれば唯一に定まるものである。ここで、Q行列式を添え字の列、
で表すことができる。Kogaによる方法では、Q行列式を用いて誤り位置多項式、
を計算するアルゴリズムが提示されている。
【0094】
上述した従来手法は、いずれにしても次に述べるような問題点を抱えている.まず、従来例1の中で用いられたΛ(l) iの計算アルゴリズムに関しては計算すべき行列式の非対称性に起因して展開の右辺に次々と新しい項が出現し、その結果として行列のサイズが大きくなるにしたがって必要とされる乗算器の個数は組み合わせ的に増大することになる。そこで、このような組み合わせ的発散の程度がなるべく小さいアルゴリズムが望ましい。
【0095】
次にKogaのアルゴリズムについてであるが、Kogaの定義したQ行列式は対称な行列式であり、このことによって乗算器数の削減が実現されている。しかしながら、Kogaのアルゴリズムは、最小距離が偶数の場合のBCH符号もしくはリード・ソロモン符号でしか適用することができないという制限がある。Kogaによれば、この制限を緩和できる場合もあることを開示しているものの、緩和できる例としては、単にbinary narrow sense BCH符号の場合に限定されてしまうことになる。
【0096】
本発明においては、光通信システムへの適用を行うため、(255、239)リード・ソロモン符号(最小距離=17)の復号化を組み合わせ回路で効率よく実現することが方針として要求されることになる。このため、何らかの手法を用いて最小距離の偶数、奇数にかかわらず効率的な計算を実行させることができるアルゴリズムが必要となる。
【0097】
C.<本発明において使用される用語の定義>
以下に、本発明のアルゴリズムを詳細に説明する前に、本発明において使用する各タームを明確にするために説明を行う。
(1)シンドローム
一般に、ガロア拡大体GF(2m)の原始元をaとし、h<2m−1を正整数とするとき、
を生成多項式とする、符号長がn=2m−1の2m元巡回符号をGF(2m)上のリード・ソロモン符号として定義する。すなわち、k=n−hとしk個の送信記号を係数にもつk次多項式をM(x)とするとき、M(x)にxn−kを乗算し、その結果を次のようにG(x)で除算し、剰余R(x)を算出する。
【0098】
ついで、長さnの符号化された系列を係数に持つ多項式(送信多項式)を
で定義する。このとき、符号化された送信系列は左端に k 個の情報記号を持ち、それらにh=n−k個の検査記号が続く組織符号の形になっている。リード・ソロモン符号の最小距離dminは、dmin=h+1で与えられる。また、訂正可能な誤りの最大個数tはt=[h/2]で与えられる。
【0099】
一方、受信された系列よりもとの送信系列を推定する復号化のアルゴリズムは以下のように与えられる。
(2) シンドロームの計算と誤りの検出
ここで、l個の誤りが生じたとし、それらの位置をi0,...,il−1、 誤りの値を Ei0,...,Eil−1 とする。Ei0,...,Eil−1を係数に持つ多項式を、
で定義すると、受信系列b0、...、bn−1を係数とする多項式は、
で与えられる。Y(x)を受信多項式と定義する。
次に、受信多項式Y(x)からシンドローム、
を計算する。ここで、
なので、シンドロームは
を満たす。したがって、誤りがなければシンドロームはすべて0となり、シンドロームの値によって誤りの有無が判定できることになる。
【0100】
(3)誤りの個数と位置の特定
発生した誤りの個数を仮にl個であると仮定し、発生した位置を、
と仮定する。すなわち、
の値が誤っていると仮定する。誤りの個数lと、下記式の誤り位置、
を特定するために、
を根として持つ下記多項式、
を定義する。上記式中、
を誤りロケータ、Λ(l)(x)を誤り位置多項式という。
【0101】
さらに、
は、誤り位置多項式をxに関して展開したときの展開係数であり、
の基本対称式で与えられる。
【0102】
ここで、下記式
は、次の連立一次方程式、
を満たす。これはA.で説明したYule−Walker方程式に他ならない。この段階では、lは未知であるが、実際に生じた誤りの個数が1≦e≦tであるとき、左辺のHankel行列は、l=eの場合は正則であって、t≧l>eの場合は非正則となることが知られている。したがって、l=1,...,tに対して左辺のHankel行列の行列式を計算し、値が非ゼロの最大の整数をもって誤りの個数eと定めればよい。そしてl=eの場合にこの方程式を解くことにより、誤り位置多項式を求めることができる。
【0103】
本発明において、誤り位置を特定するためには、誤りロケータ、すなわち、誤り多項式Λ(e)(x)=0の根を求めればよい。このために下記式
を逐次代入して実際に誤り位置多項式の零点となるか否かを調べるという手法を取ることができる。この手法をChien探索という。誤り位置多項式の零点を、
とするとき、i0,...,ie−1が実際の誤り位置を与える。
【0104】
(4)誤り値の計算
誤り値の算出は、下記式で示されるVandermonde型の連立線形方程式、
を解くことによって得られる。シンドロームを係数とする多項式S(x)を、
とおく。さらに、
とおく。Ω(x)を誤り評価多項式という。この場合に、Vandermonde型の連立線形方程式の解は、
によって求めることができる。これをForneyのアルゴリズムという。したがって、誤り位置と誤り値とがわかれば、それらを受信した入力ディジタル信号から減算することにより、誤りの訂正されたディジタル信号出力を得ることができる。
【0105】
D.本発明のYule−Walker方程式解法アルゴリズム
我々の課題はGF(2m)上で定義された次のYule−Walker方程式の解を組み合わせ回路を用いて計算するための効率的なアルゴリズムを見出すことである.
ここで、
は、与えられたGF(2m)の元であり、Λi (l)が未知の量である。
【0106】
本発明においては、このYule−Walker方程式の解をCramerの公式を用いて、図15のように行列式の形で表示し、その帰納的な構造を利用して行列式の効率のよい計算法を求めるものである。
【0107】
図15に示した行列式を計算するために、本発明においては、次のJacobiの公式に注目する。
<Jacobiの公式>
A=(aij)を単位元1をもつ可換環上のn次正方行列とする.Aの(i,j)余因子をΔijとする。添え字の集合、
に対する小行列式Aμν (r)の余因子をΔμν (r)とするとき、下記式が成り立つ。
【0108】
本発明では特に、
とした場合に成り立つ下記式、
を用いることができる。
【0109】
このJacobiの公式を用いてΛhat i (l)を計算するために次のように考える。
まず、Λhat i (l + 1)は下記式の形をしている。
【0110】
この行列式をよく眺めてみると、Λhat i (l)は、Λhat i (l+1)から(l+1−i)行および第l列を取り除いたものであり、Λhat 0 (l)はΛhat 0 (l+1)から第l行および第l列を取り除いたものことがわかる。つまり、Λhat 0 (l)は、Λhat i (l)が、それぞれΛi (l+1)の(l+1,l+1),(l+1,l+1−i)余因子であるため、Jacobiの公式において、
として、
とおく。さらに、Λhat 0 (l+1)の(l+1−i,l+1−i)余因子をΓi (l+1)と定義する。ここで、Γi (l+1)の構成を図16に示す。
そして、Jacobiの公式を用いることにより、
を得る。
【0111】
この公式を用いると、Λhat i (l)の計算は対称行列の行列式であるΓi (l+1)の計算に帰着される。ただし、Λhat i (l)を求めるには、Γi (l+1)の計算に加えて、2×l個の乗算とl個の平方根をとる操作が必要となる。平方根を取る計算と2乗を行う計算とは、線形演算として実現できるため加算とほぼ同等のコストで回路として実現可能である。したがって、これらは非線形演算回路である乗算器に比べて非常に小さなコストしか要しない。そこで我々は乗算器にのみ注目し、その個数を問題とする。提案するアルゴリズムの場合、GF(2m)は標数が2であること、およびΓi (l)はすべて対称あることから、行列式の余因子展開において対角線に関して非対称な配置より生じる項は必ずキャンセルする.例えば、3×3の対称行列を例にとって余因子展開を計算してみると、
となって、対角線に関して非対称な配置より生じる項becは対称性により必ず2度出てくるために、キャンセルされる。このため、本発明のアルゴリズムを乗算器を含む組み合わせ回路に使用した場合には、要求される乗算器の個数が低減できることになる。
【0112】
ここで、
を帰納的に計算するアルゴリズムの一般形は以下のように与えられる.
まず、アルゴリズムを記述する際の補助的な量を一つ定義する。
【0113】
を、添え字の集合とするとき、det[{i1,...,in}]を
と定義する。正確にいうと、det[{i1,...,in}]は、第1行目が、
であって、(p、q)成分が下記式、
である対称行列の行列式であり、Hankel行列式Λ0 (l)からいくつかの行と列とを対称に抜き去って得られる行列式である。ここで、det[{i1,...,in}]を用いるとΓi (l)は次のように計算される。
【0114】
上記式中、det[{0,1,...,l−2}−{l−1−i,l−1−k}]は、Γi (l−1)から対称に2つのl−1−i,l−1−k行と、2つのl−1−i,l−1−k列とを抜き去って得られる対称行列の行列式であって、これはk=1の場合とi=1との場合には、それぞれ、下記式、
に一致することに注意されたい。
【0115】
3. 一般にdet[{i1,...,in}]は、次のように計算される。
【0116】
E.<本発明のアルゴリズムのリード・ソロモン符号の復号化への適用>
以下に、D.で述べたYule−Walker方程式の本発明の解法アルゴリズムを、リード・ソロモン符号へと応用した場合についての実施の形態を説明する。Yule−Walker方程式自身は、通常は、次元(未知数の個数)は一定のものとして与えられるのであるが、リード・ソロモン符号の復号化の場合、次元(誤りの個数に対応している)も未知なので、これも含めて決定しなければならないことになる。
【0117】
(1)Γi (l)の計算
シンドロームの系列、
が与えられたとき、D.において説明したアルゴリズムに従い、
を計算する。この計算の過程で、
も、同時に計算される。なお、本発明者らは、リード・ソロモン符号の高速復号化を行うために、組み合わせ回路としての実現を念頭に置いているが、本発明においては組み合わせ回路と共に使用することに限定されるものではなく、本発明の誤り訂正アルゴリズムは、順序回路を用いて誤り訂正装置として実装することも可能である。
【0118】
(2)誤りの個数の決定
実際に生じた誤りの個数を、eで表す。ここで、eは
の値から、Λhat 0 (l)≠0を満たす最大のlとして求めることができる。
【0119】
(3)誤り位置多項式の決定
誤りの個数を決定した結果、もしe<tが判明した場合には、Λhat 0 (e+1)=0なので、本発明のアルゴリズムに従い、
のように簡単化することができる。誤りロケータは、誤り位置多項式の零点であるので、誤り位置多項式の係数の定数倍によって不変である。したがって、
Λhat i (e)の代わりに、下記式
を用いることができる。つまり、上式に現れている掛け算は必要ない。一方、e=tであることが判明した場合には、
に従って誤り位置多項式を計算することになる。このとき、我々のアルゴリズムでは、最小距離が奇数(=2t+1)の場合には、計算できないS2tが見かけ上必要になるように見える。しかし、本発明の式は、シンドロームに関する恒等式であるため、S2tに関する恒等式にもなっている。そして、計算すべきΛhat i (t)は、シンドロームS2tを含まないので、Λhat 0 (t+1)と、Γi (t+1)の余因子展開に現れるS2tは必ずキャンセルする。具体的にいうと、Γi (t+1)を余因子展開したときに現れる項のうち、S2tを含むものは、Γi−1 (t)S2tであるから、Γi (t+1)Λhat 0 (t)を展開したとき、S2tを含む項はΛhat 0 (t)Γi−1 (t)S2tである。一方、Λhat 0 (t+1)を余因子展開したときに現れる項のうち、S2tを含むものは、Λhat 0 (t)S2tであるから、Λ0 (t+1)Γi−1 (t)を展開したときS2tを含む項は、Λhat 0 (t)Γi−1 (t)S2tである。したがって、両者は必ずキャンセルする。
【0120】
こうして、Λ0 (t+1)と、Γi (t+1)を余因子展開したときに現れる項のうち、S2tを係数にもつ項は計算する必要がないことが示される。このようにして、本発明のアルゴリズムは、任意の最小距離をもつリード・ソロモン符号に適用することができることとなる。同時に、乗算器数の削減という観点からも、S2tを含む項の乗算が必要ないので、Kogaアルゴリズムと比較しても本発明のアルゴリズムは、優位になる。また、上述したように、平方根を算出する計算は、加算とほぼ同等のコストで回路として実現可能であり、これは乗算器に比べて非常に小さなコストしか要しないものである。
【0121】
F.<リード・ソロモン符号の復号化への適用例>
上述したEにおいて説明した本発明の誤り訂正アルゴリズムをt=4のリード・ソロモン符号の復号化へ適用する実施の形態について、以下に説明する。t=4の場合には、本発明により、以下の各式が決定される。ただし、簡単のため、
として表す。
(1)Γi (l),i=0,...,l−1,...,5の計算
本発明による計算結果を、図17に示す。
【0122】
(2)誤りの個数の決定
81)で算出されたΓi (l)によって、
が求まるので、
を満たす最大のl,l=1,2,3,4として誤りの個数eが決定できる。
【0123】
(3)誤り位置多項式の決定
(2)よる計算により、例えばe=2であることが判明した場合には、誤りロケータ、
は、次の代数方程式、
を解くことによって求められる。一方、e=4であることが判明した場合には、上述したように、
によって求めることができる。ただし、
の計算において、シンドロームS8を含む項の計算は上述したように不要である。
【0124】
図18は、上述した本発明の誤り訂正アルゴリズムの概略的なフローチャートを示した図である。本発明の誤り訂正アルゴリズムにおいては、まず、ステップ200において、シンドロームS0,...,S2t−1が入力され、ステップ201において、誤り多項式Γが算出される。Γ0 (2),...,Γ0 (t+1)が求められた段階で、ステップ202において、Λhat 0 (m)=Γ0 (m+1)≠0を満たす最大の整数m、として誤りの個数を決定する。ステップ203においては、誤りの個数eが、最大の誤りの数に等しいか否かが判断され、e=tの場合(yes)には、Γ0 (e+1)=Λhat 0 (e),..,Γe (e+1)、Γ0 (e+2)=Λhat 0 (e+1)として、ステップ204において、誤り値を算出する。また、e≠tの場合(no)には、Γ0 (e+1)=Λhat 0 (e),..,Γe (e+1)のみを使用して、ステップ205において誤り値を計算し、ステップ206において、Λhat 0 (e),....,Λhat e (e)を得る。
【0125】
G.本発明のアルゴリズムを誤り位置多項式の計算へ適用した場合の計算回路図19に本発明で提案するアルゴリズムに基づいた誤り位置多項式の計算回路のブロック図を示す。図20に示される本発明のアルゴリズムを使用した誤り位置多項式の計算回路は、概ね{Γi ( m )}計算ブロック100と、誤りの個数を計算する回路ブロック102と、誤り位置多項式の決定を行う回路ブロック104とを含んで構成されている。
【0126】
図19の各ブロックの機能を説明すると、回路ブロック100には、例えば順序回路を使用して入力ディジタル信号から算出されたシンドロームのシリーズが入力される。回路ブロック100においては、これらのシンドロームから、
が、本発明のアルゴリズムにしたがって帰納的に計算される。これはアルゴリズムの詳細の(1)に対応する。
【0127】
次に、回路ブロック102においては、計算された、
の値から、誤りの個数eを算出し、eの値にそれぞれ対応する、
を出力する。e=tの場合には、これらに加えて、さらに、
も出力される。これはアルゴリズムの詳細の(2)に対応する。回路ブロック104では、
の値を用いて、誤り位置多項式の係数の計算を実行する。これはアルゴリズムの詳細の(3)に対応するプロセスに従って実行される。
【0128】
なお、本発明においては、リード・ソロモン符号の高速復号化を行うために、組み合わせ回路としての実現を念頭に置いているが、提案するアルゴリズムを回路サイズの縮小を目的として順序回路を用いて実現することも可能である。
【0129】
H.<リード・ソロモン符号の復号化に適用した場合の回路サイズ>
本発明のアルゴリズムを、リード・ソロモン符号の復号化へ適用した場合の、回路サイズについて以下に説明する。上述したとおり、平方根を算出する計算と2乗を行う計算とは、加算とほぼ同等のコストで回路として実現可能であり、これらは乗算器に比べて非常に小さなコストしか要しない。そこで我々は乗算器にのみ注目し、その個数を検討する。
【0130】
表4は、本発明のアルゴリズムによって必要とされる乗算器の個数をt=1からt=8までの範囲で示したものである。この図には比較のため、従来例1および従来例2の計算アルゴリズムによる乗算器数も合わせて記載した。
【0131】
【表4】
【0132】
表4に示されるように、今回提案するアルゴリズムは、乗算器の個数の観点からみてKogaにより提案されたアルゴリズム(従来例2)よりもすべてのtで優れていることが示されている。また、光通信分野への応用においては、特に(255、239)リード・ソロモン符号(t=8)の復号化が重要であるが、これは最小距離が奇数(=17)であるためにKogaアルゴリズムは適用できない。しかしながら、本発明のアルゴリズムは、任意の最小距離のリード・ソロモン符号に適用可能であるため、(255、239)リード・ソロモン符号にも用いることができる。これを、表5に示す。
【0133】
【表5】
【0134】
一方、従来例1(Katayama−Morioka)における計算アルゴリズムも任意の最小距離のリード・ソロモン符号に適用可能であるが、乗算器の個数の観点から比較すると今回提案するアルゴリズムは、tが4以上では、従来例1のアルゴリズムよりもより少ない数の乗算器しか必要としない。特に、t=8の場合には、本発明のアルゴリズムは、約40%の乗算器の削減を実現することが可能となることが示された。具体的な回路サイズで比較すると、t=8のとき、誤り値の計算に要するゲート数は、現在約10Kゲートであるのに対して、従来例1では、約80Kゲートを要するものと考えられる。しかしながら、本発明におけるアルゴリズムを用いると、誤り多項式の計算を約40Kゲートまで削減することが可能となる。
【0135】
図20には、本発明の誤り訂正装置の概略ブロック図を示す。図20に示された誤り訂正装置は、入力ディジタル信号を受信して符号化する符号化ブロック110と、符号化された入力ディジタル信号IDが入力され、シンドロームを算出するための入力ブロック112と、復号回路を含む処理ブロック114と、誤り位置および誤り値との出力を使用して誤りが訂正された出力ディジタル信号ODを出力する出力ブロック116とから構成されている。符号化ブロック110には、インターリーブされた波長多重通信により送信された入力ディジタル信号が入力され、例えば、リード・ソロモン符号化され、入力ブロックへと符号化されたディジタル信号を入力している。入力ブロック112は入力ディジタル信号から順序回路を使用してシンドロームを算出し、その出力を処理ブロック114へと送っている。
【0136】
処理ブロック114には、本発明のアルゴリズムを実行する復号機能が含まれていて、誤り位置と誤り値とを算出する。算出された誤り位置と、誤り値は、出力ブロック116へと出力され、誤りが訂正され、出力ディジタル信号として出力を行っている。上述した誤り訂正回路は、複数のハードウエアからなる誤り訂正装置として構成することができる他、半導体技術を利用し、各機能ブロックをシリコン・ウエハ上に構成したASICといった半導体デバイスとして構成することができることはいうまでもないことである。さらには、本発明のアルゴリズムは、誤り訂正装置のファームウエアとして実装することもできるし、またフロッピーディスク、ハードディスク、光ディスク、光磁気ディスクといった記憶媒体に記録されたコンピュータ可読なプログラムとすることもできる。また、本発明のプログラムは、例えばオブジェクト指向のいかなる言語や、例えばC言語といったプログラミング言語により、記述し、上述した記録媒体内に保持させて使用することができる。
【0137】
上述したように、本発明によれば、高速の光通信分野において特に効果的に誤りを訂正することを可能とする復号回路、該誤り訂正方法を提供することができる。
【図面の簡単な説明】
【図1】従来の復号回路を示した図。
【図2】従来の光通信用誤り訂正回路を示した図。
【図3】従来の回路規模と、データ転送速度とをプロットした図。
【図4】さらに別の従来の復号回路を示した図。
【図5】さらに別の従来の復号回路を示した図。
【図6】本発明の復号回路の実施の形態の概略図。
【図7】従来の構成の乗算回路を示した図。
【図8】従来の構成の乗算回路を示した図。
【図9】従来の構成の乗算回路を示した図。
【図10】図7に示す乗算回路に本発明を適用した実施の形態を示した図。
【図11】図8に示す乗算回路に本発明を適用した実施の形態を示した図。
【図12】図9に示す乗算回路に本発明を適用した実施の形態を示した図。
【図13】本発明の乗算回路を使用した場合の回路サイズと乗算回路数とをプロットした図。
【図14】従来の誤り多項式を示した図。
【図15】本発明におけるYule−Walker方程式の定式化を示した図。
【図16】本発明におけるΓi (i+1)の詳細な構成を示した図。
【図17】本発明におけるリード・ソロモン符号の復号の詳細な計算結果を示した図。
【図18】本発明の誤り訂正アルゴリズムの概略フローチャート。
【図19】本発明のリード・ソロモン符号の復号回路の概略構成を示した図。
【図20】本発明の誤り訂正装置の構成を示す概略ブロック図。
【符号の説明】
10…入力部
12…処理部
14…出力部
16…シンドローム算出部
18…位置多項式係数算出部
20…誤り値多項式係数算出部
22…レジスタ
24…ANDゲート
26…XORゲート
28a,28b…imnバッファ
40…乗算回路
42…乗算回路
45a,45b…出力
46…乗算器群
47…加算器群
52…XOR群
54…XOR群
56…XOR群
60…下流側XOR群
60a,60b…XOR群
62…出力
64…出力
66…入力
68、70、72、77、78…入力
80…AND群
82…AND部
84…加算器
Claims (21)
- 符号化された入力ディジタル信号が符号のインターリーブ数に対応して並列して入力され、前記入力ディジタル信号のシンドロームを算出してインターリーブされた符号語間でシリアル化されたデータとしてシンドロームを出力する入力部と、
前記入力部からのインターリーブされた符号語間でシリアル化されたシンドローム出力をそれぞれ処理する誤り位置多項式係数算出部と、誤り値多項式係数算出部とを含む処理部と、
前記処理部からの出力と前記入力ディジタル信号とが入力され、前記処理部からの出力と、前記入力ディジタル信号とから、誤りが訂正された出力ディジタル信号をインターリーブ数に対応して並列に出力する出力部とを備え、
前記誤り位置多項式係数算出部は、前記シリアル化されたシンドロームの値を要素とするYule-Walker方程式の余因子を対称行列に変換して誤り個数および誤り位置多項式係数を算出し、
前記誤り値多項式係数算出部は、前記誤り位置多項式係数を受け取って前記誤り位置多項式係数算出部における誤り位置の算出と並列して誤り値を算出する、
復号回路。 - 前記出力部は、前記処理部の出力である入力された誤り位置および誤り値と、前記入力ディジタル信号とからガロア拡大体上における線形演算により算出して前記出力ディジタル信号とする、請求項1に記載の復号回路。
- 前記入力ディジタル信号は、それぞれがリード・ソロモン符号化されたi−チャンネルの並列入力とされ、さらに前記復号回路は、i:1または1:iのマルチプレクサまたはデマルチプレクサを含む、請求項1または2に記載の復号回路。
- 前記入力ディジタル信号は、光通信における波長多重通信により送信される、請求項1〜3のいずれか1項に記載の復号回路。
- 少なくとも前記入力部は、順序回路から構成され、前記処理部は、組み合わせ回路から構成される、請求項1〜4のいずれか1項に記載の復号回路。
- ディジタル信号の誤り訂正、または暗号化のために使用される、請求項1〜5のいずれか1項に記載の復号回路。
- 符号化された入力ディジタル信号を受信するための入力手段と、前記入力ディジタル信号を処理して誤り位置多項式係数と誤り値多項式係数とを算出する処理手段と、前記誤り位置多項式係数と、前記誤り値多項式係数とから誤りが訂正された出力ディジタル信号を出力する出力手段とを含み、
前記入力手段は、前記符号化された入力ディジタル信号が符号のインターリーブ数に対応して並列に入力され、かつ前記符号化された入力ディジタル信号からインターリーブされた符号語間でシリアル化されたデータとしてシンドロームを算出し、
前記処理手段は、誤り位置多項式係数算出部と、誤り値多項式係数算出部とを含み、前記受信手段から出力されるそれぞれの前記シンドロームを使用して誤り位置多項式係数と誤り値多項式係数とを算出し、
前記出力手段は、それぞれの前記誤り位置多項式係数と前記誤り値多項式係数と、前記符号化された入力ディジタル信号とからガロア拡大体上における線形演算により誤りが訂正された出力ディジタル信号を符号のインターリーブ数に対応して並列に出力し、
前記誤り位置多項式係数算出部は、前記シリアル化されたシンドロームの値を要素とするYule-Walker方程式の余因子を対称行列に変換して誤り個数および誤り位置多項式係数を算出し、
前記誤り値多項式係数算出部は、誤り位置多項式係数を受け取って前記誤り位置多項式係数算出部における誤り位置の算出と並列して誤り値を算出する、
復号装置。 - 前記入力ディジタル信号は、それぞれリード・ソロモン符号化されたi−チャンネルの並列入力とされ、さらに前記復号装置は、i:1または1:iのマルチプレクサまたはデマルチプレクサを含む、請求項7に記載の誤り復号装置。
- 前記入力ディジタル信号は、光通信における波長多重通信により送信される、請求項7または8のいずれか1項に記載の復号装置。
- 少なくとも前記入力部は、順序回路により構成され、前記処理部は、組み合わせ回路から構成される、請求項7〜9のいずれか1項に記載の復号装置。
- ディジタル信号の誤り訂正、または暗号化のために用いられる請求項7〜10のいずれか1項に記載の復号装置。
- ディジタル信号を復号するための方法であって、該方法は、
符号化された入力ディジタル信号を符号のインターリーブ数に対応して並列して入力し、前記入力ディジタル信号のシンドロームを算出してインターリーブされた符号語間でシリアル化されたデータとしてシンドロームを前記処理部へと渡すステップと、
前記入力部からのインターリーブされた符号語間でシリアル化された前記シンドロームを、誤り位置多項式係数算出部と、誤り値多項式係数算出部とを含む処理部を使用してそれぞれ処理するステップと、
前記処理部からの出力と前記入力ディジタル信号とを入力し、前記処理部からの出力と、前記入力ディジタル信号とから誤りが訂正された出力ディジタル信号を算出するステップと、
前記算出された誤りが訂正された出力ディジタル信号を、インターリーブ数に対応して並列に出力するステップと
を含み、
前記処理するステップは、前記誤り位置多項式係数算出部において前記シリアル化されたシンドロームの値を要素とするYule-Walker方程式の余因子を対称行列に変換して誤り個数および誤り位置多項式係数を算出するステップと、
前記誤り値多項式係数算出部において、誤り位置多項式係数を受け取って前記誤り位置多項式係数算出部における誤り位置の算出と並列して誤り値を算出するステップとを含む、
復号方法。 - 前記処理ステップは、入力される前記シンドロームを使用して、誤り位置多項式係数と誤り値多項式係数とを算出するステップを含み、
前記出力ステップは、前記処理部の出力である入力された誤り位置および誤り値と、前記入力ディジタル信号とからガロア拡大体上における線形演算により算出して前記出力ディジタル信号とするステップを含む、請求項12に記載の復号方法。 - 前記入力ステップは、それぞれがリード・ソロモン符号化されたi−チャンネルの並列入力として前記入力ディジタル信号を入力するステップを含み、さらにi:1のマルチプレクシング・ステップおよび1:iのデマルチプレクシング・ステップを含む、請求項12または13に記載の復号方法。
- 光通信における波長多重通信により送信される入力ディジタル信号として入力される、請求項12〜14のいずれか1項に記載の復号方法。
- 少なくとも前記入力ステップは、順序回路を使用した演算処理を行い、前記処理ステップは、組み合わせ回路を使用して演算処理を行う、請求項12〜15のいずれか1項に記載の復号方法。
- ディジタル信号の誤り訂正、または暗号化のために使用される、請求項12〜16のいずれか1項に記載の復号方法。
- ディジタル信号を処理するために使用される半導体デバイスであって、該半導体デバイスは、
符号化された入力ディジタル信号を受信するための入力手段と、
誤り位置多項式係数算出部と誤り値多項式係数算出部とを含み、前記符号化された入力ディジタル信号を処理して誤り位置多項式係数と誤り値多項式係数とを算出する処理手段と、
前記誤り位置多項式係数と、前記誤り値多項式係数とから誤りが訂正された出力ディジタル信号を出力する出力手段とを含み、
前記入力手段は、インターリーブされた前記符号化された入力ディジタル信号がインターリーブ数に対応して並列に入力され、かつ前記符号化された入力ディジタル信号からインターリーブされた符号語間でシリアル化されたデータとしてシンドロームを算出し、
前記誤り位置多項式係数算出部は、前記入力手段から出力されるそれぞれの前記シンドロームを使用して前記シリアル化されたシンドロームの値を要素とするYule-Walker方程式の余因子を対称行列に変換して誤り個数および誤り位置多項式係数を算出し、
前記誤り値多項式係数算出部は、誤り位置多項式係数を受け取って前記誤り位置多項式係数算出部における誤り位置の算出と並列して誤り値を算出し、
前記出力手段は、それぞれの前記誤り位置と前記誤り値と、前記入力ディジタル信号とからガロア拡大体上における演算により算出された出力ディジタル信号をインターリーブ数に対応して並列に出力する、半導体デバイス。 - 前記入力ディジタル信号は、それぞれリード・ソロモン符号化されたi−チャンネルの並列入力とされ、さらに前記半導体デバイスは、i:1または1:iのマルチプレクサまたはデマルチプレクサを含む、請求項18に記載の半導体デバイス。
- 前記符号化された入力ディジタル信号は、光通信における波長多重通信により送信される、請求項18または19に記載の半導体デバイス。
- 前記入力手段は、順序回路から構成され、前記処理手段は、組み合わせ回路から構成される、請求項18〜20のいずれか1項に記載の半導体デバイス。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001196223A JP3606569B2 (ja) | 2001-03-09 | 2001-06-28 | 復号回路、該復号回路を用いる復号装置、復号方法および半導体デバイス |
US10/091,840 US6928601B2 (en) | 2001-03-09 | 2002-03-06 | Decoding circuit, and decoder, decoding method and semiconductor device that use the decoding circuit |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001-66573 | 2001-03-09 | ||
JP2001066573 | 2001-03-09 | ||
JP2001196223A JP3606569B2 (ja) | 2001-03-09 | 2001-06-28 | 復号回路、該復号回路を用いる復号装置、復号方法および半導体デバイス |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002335167A JP2002335167A (ja) | 2002-11-22 |
JP3606569B2 true JP3606569B2 (ja) | 2005-01-05 |
Family
ID=26610944
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001196223A Expired - Fee Related JP3606569B2 (ja) | 2001-03-09 | 2001-06-28 | 復号回路、該復号回路を用いる復号装置、復号方法および半導体デバイス |
Country Status (2)
Country | Link |
---|---|
US (1) | US6928601B2 (ja) |
JP (1) | JP3606569B2 (ja) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100891332B1 (ko) | 2007-03-30 | 2009-03-31 | 삼성전자주식회사 | 에러 정정 부호화기를 이용하여 에러를 체크하는 bch에러 정정 방법 및 회로 |
KR20080112583A (ko) * | 2007-06-21 | 2008-12-26 | 주식회사 코아로직 | 리드 솔로몬 디코더 및 그 방법 |
JP5259343B2 (ja) * | 2008-10-31 | 2013-08-07 | 株式会社東芝 | メモリ装置 |
CN102449951B (zh) * | 2009-03-31 | 2015-09-23 | 皇家飞利浦有限公司 | 用于在电子组件中执行密码任务的方法 |
US20100287052A1 (en) * | 2009-05-06 | 2010-11-11 | Minter David D | Short-range commercial messaging and advertising system and mobile device for use therein |
US8301987B2 (en) * | 2009-10-29 | 2012-10-30 | Sandisk Il Ltd. | System and method of decoding data with reduced power consumption |
US8332731B1 (en) * | 2009-11-05 | 2012-12-11 | Micron Technology, Inc. | Error-correcting code and process for fast read-error correction |
JP5275398B2 (ja) * | 2011-03-28 | 2013-08-28 | 株式会社東芝 | リードソロモン復号器及び受信装置 |
US9362953B2 (en) * | 2013-08-02 | 2016-06-07 | Infineon Technologies Ag | Efficient error correction of multi-bit errors |
US9459958B2 (en) | 2013-12-02 | 2016-10-04 | Annapurna Labs Ltd. | Flexible redundant array of independent disks (RAID) computation device |
DE102015118668B4 (de) * | 2015-10-30 | 2020-06-04 | Infineon Technologies Ag | Fehlerkorrektur |
RU2731600C1 (ru) * | 2019-12-05 | 2020-09-04 | Акционерное общество "Калужский научно-исследовательский институт телемеханических устройств" | Способ декодирования кода Рида-Соломона |
CN118227372B (zh) * | 2024-05-23 | 2024-09-10 | 深圳市领存技术有限公司 | 一种基于秩度量纠错码的存储方法及相关产品 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4589776A (en) | 1982-09-27 | 1986-05-20 | Chiratech, Inc. | Method and apparatus for measuring optical properties of materials |
JPS6162234A (ja) | 1984-09-04 | 1986-03-31 | Kokusai Denshin Denwa Co Ltd <Kdd> | 誤り訂正符号復号方式 |
JP3850511B2 (ja) | 1997-05-07 | 2006-11-29 | 日本テキサス・インスツルメンツ株式会社 | リードソロモン復号装置 |
EP1131893B1 (en) * | 1998-11-09 | 2004-08-04 | Broadcom Corporation | Forward error corrector |
JP3668673B2 (ja) | 2000-06-09 | 2005-07-06 | 株式会社日立コミュニケーションテクノロジー | エラー訂正符号の構成方法、復号方法、伝送装置、ネットワーク |
-
2001
- 2001-06-28 JP JP2001196223A patent/JP3606569B2/ja not_active Expired - Fee Related
-
2002
- 2002-03-06 US US10/091,840 patent/US6928601B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20030028842A1 (en) | 2003-02-06 |
US6928601B2 (en) | 2005-08-09 |
JP2002335167A (ja) | 2002-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8745472B2 (en) | Memory with segmented error correction codes | |
CA1199410A (en) | On-the-fly multibyte error correcting system | |
JP3256517B2 (ja) | 符号化回路、回路、パリティ生成方法及び記憶媒体 | |
JP3606569B2 (ja) | 復号回路、該復号回路を用いる復号装置、復号方法および半導体デバイス | |
US8327241B2 (en) | Reduced processing in high-speed Reed-Solomon decoding | |
CN101814922A (zh) | 基于bch码的多位错纠错方法和装置以及存储系统 | |
JP2007166031A (ja) | Crc値の算出装置 | |
JP3447053B2 (ja) | 組み合わせ回路、該組み合わせ回路を使用する符号化装置、復号装置、および半導体デバイス | |
US20050166122A1 (en) | System and method for generating cyclic codes for error control in digital communications | |
US6295626B1 (en) | Symbol based algorithm for hardware implementation of cyclic redundancy check | |
US20180358986A1 (en) | Circuitry and method for dual mode reed-solomon-forward error correction decoder | |
Nair et al. | A symbol based algorithm for hardware implementation of cyclic redundancy check (CRC) | |
US8099655B1 (en) | Galois field multiplier system and method | |
US7613988B1 (en) | Degree limited polynomial in Reed-Solomon decoding | |
EP1102406A2 (en) | Apparatus and method for decoding digital data | |
Zhang | VLSI architectures for Reed–Solomon codes: Classic, nested, coupled, and beyond | |
JP3552683B2 (ja) | 信号処理方法、信号処理システム、および信号処理のためのプログラムおよび該プログラムを記録したコンピュータ可読な記録媒体 | |
EP0991196B1 (en) | Method of correcting lost data and circuit thereof | |
KR100756424B1 (ko) | 파이프라인 재귀적인 기술을 이용한 면적 효율적인 리드솔로몬 복호기 | |
US20020042804A1 (en) | Parallel processing syndrome calculating circuit and reed-solomon decoding circuit | |
US6442747B1 (en) | Method of synthesizing a cycle redundancy code generator circuit using hardware description language | |
US10009041B2 (en) | BCH decorder in which folded multiplier is equipped | |
CN100461662C (zh) | 用于同步数字系列/同步光纤网系统的带内前向纠错解码器 | |
JPH07226687A (ja) | 誤り訂正処理装置 | |
US8245103B2 (en) | Arithmetic circuit for concatenated codes and address control method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040413 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040712 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040921 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20040921 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041004 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071015 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081015 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081015 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091015 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091015 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101015 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101015 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111015 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121015 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121015 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131015 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |