【発明の詳細な説明】 【0001】 【発明の属する技術分野】本発明は、格納データまたは伝送データ内にて現れるエラーを訂正するためのエラー訂正装置に関し、特にリードソロモン符号(Reed− SolomonCode)を用いて符号化されたデータ内のエラーを訂正するのに用いられる、エラー位置多項式及び微分多項式を評価するエラー訂正用多項式評価装置に関する。 【0002】 【従来の技術】データの伝送、格納または取り出しの過程の際に発生する雑音は、対応する各過程においてエラーをもたらすこととなる。 従って、そのようなエラーを正すために、伝送されるべきまたは格納されるべきデータを符号化するデータ符号化方法が多様に提案されてきた。 【0003】そのような符号化方法においては、1組のチェックビットが1群のメッセージ即ち、情報ビットに付加されて符号語を形成する。 このチェックビットはエンコーダにより定まるもので、エラーの検出及び訂正に用いられる。 ここで、エンコーダは基本的に、メッセージビットからなるビットを2進メッセージ多項式の係数として取り扱うと共に、メッセージ多項式i(X)と符号生成多項式g(X)との間の乗算または除算を行ってチェックビットを求めることによって、符号語多項式c (X)を得る。 符号生成多項式g(x)は符号語に所望の特性を付加して、符号語がエラー訂正2進群符号の特定のクラスに属するようにする(例えば、エス.リン(S.Lin)らの論文、「Error Contro l Coding:Fundamentals and Applications」,Prentice−H all,1983年参照)。 【0004】エラー訂正符号の1つとして、リードソロモン符号(以下、「RS符号」とも称す)を備えるBC H(Bose−Chaudhuri−Hocqueng hen)符号クラスが周知にされている。 このRS符号の数学的基礎は、例えば、エス. リンらによる上記論文及びベーレカンプ(Berlekamp)の論文「Al gebraic Coding Theory」,Mc Graw−Hill,1968年)に述べられており、 更にベーレカンプに付与された米国特許番号第4,16 2,480号明細書に開示されている。 【0005】下記式(1)のように、RS符号生成多項式g(X)の根が、αに対して連続した2T個の乗数であるならば、T個のエラーが訂正され得る。 【数1】 【0006】ここで、αは有限フィールドGF(2 m ) における基本要素であり、Tは予め定められた正の整数である。 伝送符号語を受け取るかまたは格納符号語を取り出す際に、付随して、ある雑音が符号語のエラーパターンに変換され得る。 RS符号から発生したエラーパターンを取り扱うためには、普通、4段階の過程が行われる。 エラー訂正過程を説明するために、1つのRS符号がN個のMビットシンボルを有する符号語からなることと仮定する。 ここで、K個のシンボルは情報シンボルを、(N−K)個のシンボルはチェックシンボルを各々表す。 この場合、符号語の多項式c(X)は(N−1) 次多項式であり、2Tは(N−K)と等しい。 まず、第1段階においては、シンドロームS 0 ,S 1 ,...,S 2T-1が受信符号語を表す(N−1)次の受信符号語の多項式r (X)を用いて求められる。 【0007】この受信符号語多項式r(X)は、r N-1 X N-1 +r N-2 X N-2 +....+r 1 X 1 +r 0として表現され、r jは符号語の(N−j)番目のシンボルを表す。 第2段階においては、上記のシンドロームを用いてエラー位置の多項式σ(X)の係数が求められる。 第3 段階においては、エラー位置の多項式σ(X)の根を求めるもので、該当根は受信符号語におけるエラーの位置を表す。 詳述すれば、基本要素の乗数α -jをエラー位置の多項式σ(X)の変数Xに代入すると、該式は0になる(即ち、α -jがエラー位置多項式σ(X)の根となる)。 これは、r j (即ち、符号語の(N−j)番目のシンボル)にエラーが発生したことを意味する。 【0008】最後に、第4段階においては、エラー値がエラー位置及びシンドロームを用いて計算される。 シンドローム及びエラー位置多項式の係数に対する数学的表現は、前述したベーレカンプ氏に付与された米国特許第4,162,480号明細書に述べられている。 第4番段階の詳細は、以下のようである。 【0009】まず、エラー評価の多項式Ω(x)が下記式のように求められる。 【数2】 Ω(x)=σ(x)s(x) 式(2) ここで、S(x)はシンドロームをその係数として取るシンドロームの多項式を表す。 【0010】エラー評価の多項式Ω(X)を求めた後、 エラー値e jは次式のように計算され得る。 【数3】 ここで、σ′(X)はエラー位置の多項式σ(X)の1 次導関数であり、α
-jは第3段階にて求めたエラー位置の多項式σ(X)の根であり、エラー値e jは第3段階にて求められたエラーの位置を表す(N−j)番目のシンボルに対応する。 エラー値を求めた後、対応するシンボルに該当エラー値を加えることによって、元の符号語が復元され得る。 【0011】前述したように、多項式評価には種々の段階のエラー訂正過程を必要とする。 ここで、α -jに対する多項式評価は、有限フィールドの要素α -jを与えられた多項式P(x)の変数Xに代入することによって行われる。 まず、第3段階においては、エラー位置の多項式σ(X)を評価してエラーの位置を探す。 第4段階においては、エラー評価多項式Ω(X)及び微分多項式σ′ (X)を評価することによってエラー値を求める。 【0012】エラー位置の多項式σ(X)は次式のように表現され得る。 【数4】 【0013】従って、α -jに対するエラー位置の多項式σ(x)は次式のように表現される。 【数5】 ここで、jは0〜(N−1)の範囲を有する整数であり、乗算及び加算は有限フィールドGF(2m )上で行われる。 他の多項式に対する評価も同様な方法で行われる。 【0014】図1を参照すれば、従来の多項式評価装置1の概略的なブロック図が示されている。 この多項式平価装置1は、本特許出願と出願人を同じくする係属中の日本特許出願明細書に、「エラー訂正用シンドローム計算装置」という名称で開示されている。 図1の多項式平価装置1はT=8の場合、エラー位置の多項式σ(X) を上記式(5B)を用いて評価する。 多項式評価装置1 においては、上記式(5B)はj=N−1から0まで段階的に計算される。 ここで、各段階は1システムクロックサイクルの間に行われることが好ましい。 【0015】多項式評価装置1は、初期の評価項を求める初期化ブロック10、評価項を更新する項更新ブロック30、初期評価項または更新評価項を項更新ブロック30に再び供給するマルチプレクサ(MUX)20、一つの段階にて求められた評価値を合わせる加算ブロック40、出力ブロック50及び、エラー決定ブロック55 から構成される。 ここで、評価項は式(5B)のσ i α -ijで、jは各段階の間更新され、初期評価値はσ i α -iNである。 σα -(N-1)を求める第1段階を始める前に、項更新ブロック30内のレジスターブロック30c の各レジスターは初期化ブロック10から供給された8 個の初期評価項の組(即ち、σ i α -iN )にて初期化される。 ここで、iは1から8までである。 【0016】初期化ブロック10内の有限フィールドG F(2 m )上にて作動する乗算器10bにおいて、エラー位置の多項式の各係数σ iはα -iNに乗じられて初期評価項が求められる。 ここで、iは1〜8であり、α -iNは第1根入力ブロック10aから供給される。 かくして、乗算器10bは8個の初期評価項の組のσ i α -i NをMUX20の入力ポート0へ順に供給する。 初期化の間、MUX20はσ i α -iNをレジスターブロック3 0cに供給する。 詳述すると、最初、第1初期評価項σ 1 α -NはまずレジスターR 1へ入力されると同時に1ビットクロックサイクルの間格納される。 その後、レジスターR 1の内容は次のビットクロックサイクルの間レジスターR 2へシフトされて格納され、続いて、レジスターR 2の内容はレジスターR 3へシフトされる。 このような順次的方法にてレジスター8まで行われる。 最後に、レジスターR 8の出力は項更新ブロック30の有限フィールドGF(2m)上にて作動する乗算器30aに供給される。 【0017】各レジスターに対応する初期評価項(例えば、レジスターR 8にはσ 1 α -N ,レジスターR 7にはσ 2 α -2N )が格納された後、第1評価結果σ(α -(N-1) )を求める第1段階が始まる。 【0018】第1段階の第1ビットクロックサイクルの際、乗算器30aはレジスターR 8から供給されたσ 1 α -Nを第2根入力ブロック30bから入力されたα 1に乗ずる。 乗算器30aの出力、例えばσ 1 α -(N-1) (即ち、第1番目の組の初期評価項であり、評価項のK番目の組はσ i α -i(NK)であり、Kは1〜N)は1ビットクロックサイクル当たり、一つずつ加算ブロック40へ入力される。 【0019】加算ブロック40は、二個の入力の加算器40aとレジスター40c(レジスターR 9 )とを備える。 ここで、有限フィールドGF(2 m )上の加算器4 0aは乗算器30aからの各組の評価項をレジスター4 0cの内容に順次に加算し、レジスター40cは加算器40aから入力された第1〜第7番目の部分和を格納すると共に加算器40aへその部分和を供給する。 ここで、L番目の部分和は式(5B)の順次的な加算過程にて、同一組に含まれたL個(Lは1〜7)の評価項の和を表す。 加算器40は、0または加算器40aの出力をレジスター40cへ選択的に供給するMUX40bをも備える。 MUX40bはレジスター40cの初期化のために、各段階の始まりにて0をレジスター40cへ供給すると共に、残りの時間の間には、加算器40aからの部分和をレジスター40cへ送る動きを果たす。 【0020】詳述すると、乗算器30aからσ 1 α -(N-1)を受け取ると、加算器40aはレジスター40c の初期内容(即ち、0)に加える。 その後には、第1部分和σ 1 α -(N-1)が、例えば、次のビットクロックサイクルの立ち上がりエッジでMUX40を通じてレジスタ40cに再度入力されて格納される。 このために、MU X40bは加算器40aの出力をレジスター40cへ送る。 また、乗算器30aから供給されたσ 1 α -(N-1)はMUX20を通じてレジスターブロック30cに入力されて、例えば、第1段階の第2ビットクロックサイクルの立ち上がりエッジで各レジスターの内容は右側へシフトされる。 【0021】第1段階の第2ビットクロックサイクルの間、乗算器30aはレジスターR 8から供給されたσ 2 α -2Nにα 2を乗算する。 同時に、乗算器30aの出力(即ち、σ 2 α -2(N-1) )は加算器40aへ入力されて、レジスター40cの内容(即ち、σ 1 α -(N-1) )に加算される。 その後に、第2部分和(即ち、σ 1 α -(N- 1) +σ 2 α -2(N-1) )はMUX40を通じてレジスター40cに再び供給されて格納される。 乗算器30aからのσ 2 α -2(N-1)はMUX20を通じてレジスターブロック30cへ供給されて、各レジスターの内容は次のビットクロックサイクルの立ち上がりエッジで右側にシフトされる。 【0022】第1段階の残りのビットクロックサイクルの間上記の過程を繰り返すことによって、σ 1 α -(N-1) からσ 8 α -8(N-1)までの各項は加算器40aにて加え合わせられる。 最後に、加算器40aは第8番目の部分和、即ち、第1番目の組の8個の評価項の和(σ 1 α -(N-1) +σ 2 α -2(N-1) +…+σ 8 α -8(N-1) )を出力ブロック50のレジスター50bに供給する。 レジスタ50bは入力された和を格納すると共に、和を加算器5 0aへ供給する。 ここでσ 0に加算することによって、 第1段階の最後の結果(即ち第1評価結果σ 1 α -(N-1) )が求められる。 同時に、レジスター40c はMUX40bから供給された0にて初期化される。 【0023】第2段階は第2組の評価項σ i α -i(N-1) が乗算器30aから加算ブロック40に供給されて再びレジスターブロック30cへ送られることを除いては、 第1段階と類似である。 詳述すると、第1ビットクロックサイクルの間、σ 1 α -(N- 1)はσ 1に乗じられ、第2 ビットクロックサイクルの間にはσ 2 α -2(N-1)はσ 2 に乗じられる。 そのような方式で第2組の評価項が求められる。 第2組の評価項σ i (α -i(N-1) )を合算することによって、第2平価結果が第2段階の終わりで求められる。 上記過程を繰り返すことによって、j=N−1 〜0に対するσ(α -j )がN回の段階で求められる。 【0024】下記の〔表1〕には、第1段階から第3段階までの各ビットクロックサイクルの間の各レジスターR 1 〜レジスターR 8及びレジスターR 9の内容が示されている。 ここで、各列は各ビットクロックサイクルに対応する。 【0025】 【表1】 【0026】評価結果はエラー決定ブロック55に供給される。 ここで、σ(α -j )が0の場合は、符号語の対応シンボルr jでエラーが発生したことを知らせるエラー信号が発生される。 図2には、微分多項式σ′ (X)、即ち、エラー位置の多項式σ(X)の第1次導関数を評価する従来の多項式評価装置2のブロック図が示されている。 このエラー位置の多項式が8次多項式の場合は、下記の式(6)のようである。 【0027】 【数6】 σ(X)=σ 0 +σ 1 x 1 +σ 2 x 2 +σ 3 x 3 +σ 4 x 4 +σ 5 x 5 +σ 6 x 6 +σ 7 x 7 +σ 8 x 8式(6) よって、微分多項式は下記式(7A)の通り与えられる。 【数7】 σ′(X)=σ 1 +2σ 2 x 1 +3σ 3 x 2 +4σ 4 x 3 +5σ 5 x 4 +6σ 6 x 5 +7σ 7 x 6 +8σ 8 x 7式(7A) 【0028】有限フィールドで二つの同数は0となるため、上記式(7A)は次のようにもっと簡単になる。 【数8】 σ′(X)=σ 1 +3σ 3 x 2 +5σ 5 x 4 +7σ 7 x 6式(7B) 従って、α -jに対するσ′(X)の評価は下記のようである。 【0029】 【数9】 【0030】多項式評価装置2の構造は式(7C)に対応するよう変更され、多項式評価装置1と区別される。 詳述すると、微分多項式の評価結果である、微分評価結果は式(7C)においてαの偶数次乗数のみ有するため、根入力ブロック60bはαの偶数次乗数、即ち(α 0 ,α 2 ,α 4 ,α 6 )及び(α 0 ,α -2N , α -4N , α -6N ) のみを、根入力ブロック90aはαの偶数次乗数、即ち(α 0 ,α 2 ,α 4 ,α 6 )及び(α 0 ,α -2N ,α -4N , α -6N )のみを各々供給し、レジスターブロック60cは図1に示した多項式評価装置1に組み込まれたレジスターの数の半分のレジスターを有し、奇数次乗数項の係数(例えば、σ 1 ,σ 3 ,σ 5 ,σ 7 )のみ乗算器90bへ供給される。 また、0番目の係数(σ0)が微分評価結果に含まれていないため、出力ブロック80には加算器が備えられていない。 前述した特徴を除いては、多項式評価装置2の全体的な作動は図1の評価装置1の作動と同様である。 前述したように、二つの多項式評価装置の構造は類似であるが、各装置で処理された値(例えば、評価項及び部分和)は互いに異なる。 【0031】従って、式(7C)は下記のように更新され得る。 【数10】 【0032】上記式(7D)から、エラー位置の多項式の奇数次乗数に対する評価項は微分多項式を評価するにも用いられることが分かる。 しかしながら、従来の多項式評価装置においては、エラー位置の多項式および微分多項式を評価する多項式評価装置が別々に設けられるため、装置の構造が複雑となることによって、VLSI技術を通じてそれを具現するのが困難になる。 【0033】 【発明が解決しようとする課題】従って、本発明の主な目的は、エラー位置の多項式及び微分多項式に対する評価結果を同時に供給する多項式評価装置を提供することである。 【0034】 【課題を解決するための手段】上記の目的を達成するために、本発明によれば、リードソロモン復号化器で用いられ、j番目の段階で変数Xにα -(Nj)を代入することによって多項式P(X)及び微分多項式P′(X)を段階的に評価して、j番目の評価結果P(α -(N- j) )及びj番目の微分評価結果P′(α -(Nj) )を求める多項式評価装置であって、前記P(X)はT次の多項式、前記Tは正の整数、前記P′(X)は前記多項式P(X)の第1次導関数、jは1からNまでの予め定められた正の整数、αは有限フィールドGF(2 m )の基本要素であり、T個のメモリ手段を有する先入れ先出し(FIF O)バッファ(Tは予め定められた正の整数)と、前記先入れ先出しバッファの内容を前記有限フィールドGF (2 m )上の第1群の要素に順に乗じることによって、 前記j番目の段階の間、j番目の組のT個の評価項を供給する更新手段と、T個の初期評価項を発生する初期評価項発生手段と、前記T個の初期評価項または前記j番目の組のT個の評価項を前記先入れ先出しバッファに格納されるように選択的に供給する選択手段と、前記j番目の組のT個の評価項の和を求めることによって、j番目の和を供給する第1加算手段と、前記j番目の和に前記多項式の0番目の係数を加えることによって、前記j 番目の評価結果を出力する出力手段と、前記j番目の段階の間、前記j番目の組の評価項の中から奇数次評価項を取り抜くことによって、j番目のクラスの奇数次評価項を順に供給する第1奇数次項選択手段と、前記j番目の段階の間、前記j番目のクラスの各奇数次評価項にj 番目の変更項を乗じることによって、j番目の群の微分評価項を出力する変更項乗算手段と、前記j番目の段階の間、前記j番目の群の微分評価項の和を求めることによって、前記j番目の微分評価結果を出力する第2加算手段とを含むことを特徴とする多項式評価装置が提供される。 【0035】 【発明の実施の形態】以下、本発明の好適実施例について図面を参照しながらより詳しく説明する。 図3を参照すれば、本発明による多項式評価装置100のブロック図が示されている。 この多項式評価装置100は、下記式を用いてエラー位置の多項式σ(X)及び微分多項式σ′(X)を評価する。 【0036】 【数11】 【数12】 【0037】ここで、j=(N−1)〜0であり、Tは説明の便宜上8と定める。 本発明の多項式評価装置10 0においては、上記両式(5B)及び式(7D)の計算がj=N−1から0まで順に行われる。 ここで、各段階は1システムクロックサイクル間に行われることが好ましい。 【0038】多項式評価装置100はエラー位置の多項式を評価するのに用いられる、初期化ブロック110 と、マルチプレクサ(MUX)120と、項更新ブロック130と、第1加算ブロック140と、第1出力ブロック150とエラー決定ブロック155とからなる。 これらのブロックは基本的に図1に示した従来の多項式評価装置1の対応ブロックと同一である。 従って、図1を参照して述べた過程によって、評価結果σ(α -j )は第1出力ブロック150から供給され、エラー信号はエラー決定ブロック155から供給される。 【0039】図1で説明した過程に基づいて、項更新ブロック130は各段階の間、評価項の各組を供給する。 更に、項更新ブロック130からの8個の評価項の組は微分多項式を評価するのに用いられる。 微分多項式を評価するために、多項式評価装置100は奇数次項選択ブロック200、項変更ブロック210、第2加算ブロック及び第2出力ブロック180を更に含む。 【0040】最初、奇数次項選択ブロック200において、エラー位置の多項式の奇数次乗数(累乗)項に対応する評価項(即ち、σ 1 α -j , σ 3 α -3j , σ 5 α -5j , σ 7 α -7j )である、4個の奇数次評価項の群がエラー位置の評価項の8個の評価項の組の中から選択される。 ここで、jは0〜(N−1))である。 一群の奇数次評価項は項変更ブロック210へ入力されて、 ここで、各項はα jに乗じられて、微分評価項の群(即ち、σ 1 α 0 ,σ 3 α -2j , σ 5 α -4j及びσ 7 α -6j ) が発生される。 ここでjは0〜( N−1))である。 ここで、微分評価項は式(7B)に含まれた各項を表す。 項変更ブロック210からの4個の微分評価項は第2加算ブロック170にて合算されることによって、微分評価結果σ′(α -j )が求められる。 各微分評価結果は第2出力ブロック180に格納され、リードソロモン符号化器でエラー訂正に用いられる。 【0041】図4を参照すると、本発明による多項式評価装置100に組み込まれた幾つかの機能ブロックを説明するための詳細ブロック図が示されている。 各機能ブロックは項更新ブロック130から供給されたエラー位置の多項式の評価項を用いて微分評価結果を得る為に採用される。 【0042】奇数次項選択ブロック200は、項更新ブロック130から供給された評価項または0を項変更ブロック210に選択的に供給するMUX200aを備える。 詳述すると、奇数次評価項がMUX200aの入力ポート0に入力された場合、MUX200aは奇数次評価項を項変更ブロック210へ供給し、それとも、入力ポート1に入力された0を項変更ブロック210へ供給する。 従って、(N−j)番目の段階の間、MUX20 0aから供給された値は、順にσ 1 α -j 、0、σ 3 α -3j , 0, σ 5 α -5j , 0, σ 7 α -7j及び0となる。 【0043】項変更ブロック210は変更項を格納するレジスター210cと、変更項を更新する、有限フィールドGF(2 m )上の乗算器210bと、奇数次項選択ブロック200から供給された各奇数次評価項に変更項を乗じる、有限フィールド上の乗算器210aとからなる。 ここで、変更項α jは式(7D)に示したような微分平価項を求めるために乗算器210aにて(N−j) 番目の段階の間各奇数次項に乗じられるべきα jを表す。 初期変更項(即ち、第1段階での更新項)は、α -(N-1)であるため、レジスターR 11 (レジスター210 c)は第1段階の前にα -(N-1)にて初期化される。 第2 段階の始めの際(または第1段階の終了の際)に、初期変更項は乗算器210bでα -1に乗じられて、第2段階に対する変更項(即ち、α -(N-2 ) )が求められる。 同様に、変更項は各段階当たり一つずつ更新される。 更新された変更項はレジスターR 11に再び供給されて格納される。 【0044】前述した通り、乗算器210aは各段階の間、一群の微分評価項を供給する。 詳述すると、(N− j)番目の段階の間、乗算器210aはσ 1 、0、σ 3 α -2 j 、0、σ 5 α -4j 、0、σ 7 α -6j及び0の順に供給する。 その後、一群の微分評価項は加算ブロック1 70へ供給され、ここで、各評価項は合算されて微分評価結果σ′(α -j )を求める。 加算ブロック170は、 図1及び図2に示された加算ブロック40または70と同様に作動する。 従って、(N−j)番目の段階の終了の際に、加算ブロック170に含まれた加算器170a は、4つの微分評価項(σ 1 ,σ 3 α -2j , σ 5 α -4j及びσ 7 α -6j )を合わせることによって、j番目の微分評価結果σ′(α -j )を発生する。 この微分評価結果はレジスター180に入力され、格納され、エラー訂正プロセスに用いられる。 両レジスターR 11及びR 12 (レジスター170c)の内容は下記[表2]のように与えられる。 0は毎ビットクロックサイクルの間、0が項変更ブロック210から加算器170aへ供給される場合、 レジスターR 12の内容は2ビットクロックサイクル当たり一度変えることになる。 【0045】 【表2】 【0046】上記において、本発明の特定の実施例について説明したが、本明細書に記載した特許請求の範囲を逸脱することなく、当業者は種々の変更を加え得ることは勿論である。 【0047】 【発明の効果】従って、本発明によれば、エラー位置の多項式及び微分多項式を同時に評価する多項式評価装置が設けられるため、装置の構造がより一層単純化され、 且つ低コストでそれを具現することができる。 【図面の簡単な説明】 【図1】エラー位置の多項式を評価する、従来の多項式評価装置のブロック図である。 【図2】微分多項式を評価する、従来の多項式評価装置のブロック図である。 【図3】エラー位置の多項式及び微分多項式を共に評価する、本発明の多項式評価装置のブロック図である。 【図4】図3に示された奇数次項選択ブロック、項変更ブロック、第2加算ブロック及び第2出力ブロックの詳細なブロック図である。 【符号の説明】 1、2 従来の多項式評価装置 10、110 初期化ブロック 10a、30b、60b、90a 根入力ブロック 10b、30a、60a、90b、210a、210b 乗算器 20、65、70b、120、200a、170b マルチプレクサ(MUX) 30、130 項更新ブロック 210 項変更ブロック 30c、60c レジスターブロック 40、70、140、170 加算ブロック 50、150、180 出力ブロック 55、155 エラー決定ブロック 70c、80、210c、170c、180 レジスター 100 本発明の多項式評価装置 200 奇数次項選択ブロック |