JP3272307B2 - リード・ソロモン符号の復号回路 - Google Patents

リード・ソロモン符号の復号回路

Info

Publication number
JP3272307B2
JP3272307B2 JP26849398A JP26849398A JP3272307B2 JP 3272307 B2 JP3272307 B2 JP 3272307B2 JP 26849398 A JP26849398 A JP 26849398A JP 26849398 A JP26849398 A JP 26849398A JP 3272307 B2 JP3272307 B2 JP 3272307B2
Authority
JP
Japan
Prior art keywords
circuit
error
coefficient
polynomial
calculation
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
Application number
JP26849398A
Other languages
English (en)
Other versions
JP2000114984A (ja
Inventor
泰尚 片山
澄夫 森岡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP26849398A priority Critical patent/JP3272307B2/ja
Priority to US09/401,051 priority patent/US6487691B1/en
Publication of JP2000114984A publication Critical patent/JP2000114984A/ja
Application granted granted Critical
Publication of JP3272307B2 publication Critical patent/JP3272307B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/65Purpose and implementation aspects
    • H03M13/6561Parallelized implementations
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic 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/1515Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic 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/1555Pipelined decoder implementations

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、リード・ソロモン
(Reed-Solomon:RS)符号の復号回路に関する。
【0002】
【従来の技術】最初に一般的に用いられているRS符号
の符号化及び復号化の手法を説明する。RS符号の符号
化及び復号化はガロア・フィールドGF(2m)上の元
を用いた多項式演算として定式化できる。符号ブロック
がn、情報ブロックがkの(n、k)RS符号(検査ブ
ロックはn−k=2t,tは訂正可能な最大シンボル
数)の符号化は以下の符号多項式W(x)の計算により
行われる。
【0003】W(x)=M(x)xn-k − R(x) ここで、 M(x):情報シンボルを係数とする多項式 R(x):検査シンボルを係数とする多項式 R(x)=M(x)xn-k mod G(x) G(x):生成多項式 G(x)=(x−ad)(x−ad+1)...(x−ad+2t-1
【0004】上の式においてaはGF(2m)で定義さ
れ、m次の既約多項式、例えば、m=8ではa8+a4
3+a2+1=0を満たす解である。符号多項式W
(x)はG(x)で割り切れる。この符号多項式W
(x)は、M(x)にG(x)を直接乗ずる手法と比較
して、符号を組織符号の形にできる利点がある。
【0005】通常は、M(x)xn-kのG(x)による
剰余計算をLFSR(Linear Feedback Shift Registe
r)を使って計算する。1ブロックの符号化に一つのL
FSRを用い、その1つのLFSRは固定乗算器を2t
個持ち、これを(n−2t)回使用する。よって、符号
化は2(n−2t)t回の固定乗算を行う必要がある。
【0006】一方、RS符号の復号化は、受信多項式 Y(x)=W(x)+E(x) より、もとのW(x)を推定する操作である。但し、E
(x)は誤りシンボルを係数とする多項式である。な
お、Y(x)は、以下のようにも表現できる。Yiは受
信符号語である。 Y(x)=Yn-1n-1+Yn-2n-2+....Y1x+Y0 復号化の方法には大きく分けて、(i)Y(x)をその
まま使って、時間ドメイン(Time-domain)で復号を行
う手法、(ii)Y(x)をG(x)で割ることにより得
られた剰余多項式を使う方法(Remainder-based decodi
ng)(iii)Y(x)をDFT(Discrete Fourier Tran
sformation)により、周波数ドメイン(Frequency-doma
in)での2t個の連続したスペクトル(シンドローム)
を計算することにより求める手法(Syndrome-based dec
oding)がある。後の二つの方法は、受信した情報から
一度、誤りのみに依存する情報を計算してから、誤り位
置の推定を行う。よって、必要な多項式の項の数は、最
初の段階でO(n)ではなく、O(t)に絞られる。従
って、一般にt<<nなので、回路規模は小さくて済
む。一般的には最後に述べた(iii)が広く用いられて
おり、これは、さらにAlgebraic decoding とTransform
decodingに大別される。以下、本発明に最も関係の深
いこの二つに絞った形で、従来技術の説明を行う。
【0007】(a)アルジェブライック・デコーディン
グ(Algebraic decoding) 本方法では、具体的には、以下の5ステップで復号化を
実行する。 (i)受信符号をDFTすることによりシンドロームを
計算する。 (ii)計算されたシンドロームより誤り位置多項式と誤
り評価多項式の係数を求める。 (iii)誤り位置多項式の解を計算し、誤りの生じた位
置を推定する。 (iv)誤り位置と誤り評価多項式とから、フォーニー・
アルゴリズム(Forney algorithm)を使って誤り値を推
定する。 (v)受信符号と誤り値から誤りの訂正を行う。
【0008】ステップ(i)のシンドローム計算では、
GF(2m)上でのDFT計算をすれば良い。これは、
Y(x)にGF(2m)の元1,a,a2,a3...a
2t-1を代入することにより計算される。すなわち、 S0=Y(1) S1=Y(a) S2=Y(a2) S3=Y(a3) . . . S2t-1=Y(a2t-1) により計算される。W(ai)=0なので、 Si=Y(ai)=W(ai)+E(ai)=E(ai) (i=0,..,2t−1) となるので、シンドロームがすべて0であるかをチェッ
クすることにより、Y(x)に誤りが発生したかどうか
を検査することができる。通常、シンドロームの計算
は、2t個の積和回路をn回使って行うので、2nt回
の固定乗算が必要である。
【0009】シンドロームからの誤り訂正は、Siから
誤りを推定することにより行う。これは、計算されたシ
ンドロームを与えるE(x)のうち、ハミング重みがt
以下のもの(t以下の非零の項を含むもの)を求めるこ
とであり、一般的な符号に対してはNP完全問題とな
る。しかし、RS符号については多項式オーダーでの計
算手法が知られている。ステップ(ii)では、シンドロ
ームが誤りの値の線形結合で書けること、また、複数の
誤りの位置の入れ替えに対して完全対称性があることを
使って、以下の誤り位置多項式の係数の計算を行う。
【数1】 Λ(x)の係数Λt...Λ1は以下の式より求まる。Λ
0は定義より1である。
【数2】
【0010】この計算を多項式オーダーで行う手法とし
て、ピーターソン(Peterson)法、バーレカンプ−マッ
シー(Berlekamp-Massey:BM)法、ユークリッド(Eu
clid)法が提案されており、それぞれ、O(t3)、O
(t2)、O(t2)の乗算回数で誤り位置多項式の係数
の計算を行う。これ以上の詳しい計算は本発明とは直接
関係ないので参考文献(参考文献1:R.E.Blahut, "The
ory and Practive ofError Control Codes," Addison-
Wesley 1984, 又は 参考文献2:今井秀樹、"符号理
論" 電子情報通信学会 1990)を参照のこと。
【0011】誤り位置多項式の係数Λt..Λ1が計算さ
れたならば、ステップ(iii)でこれを解いて誤りの位
置iを求める。これは、a-i(i=0,1,...,n
−1)の値を誤り位置多項式に順次代入することによ
り、Λ(a-i)=0であるかを順序回路を用いて探索す
る手法(チェーンサーチ:Chien Search)が一般的であ
る。Λ(x)は、t次の多項式なのでt個の固定乗算を
n回繰り返し行うことが(合計nt回)必要となる。
【0012】ステップ(iv)では、誤り評価多項式 Ω(x)=S(x)Λ(x) mod x2t-1 によりForneyアルゴリズムを使って誤りの値を計算す
る。ここで、S(x)はシンドロームを係数とする多項
【数3】 である。誤りの値Eiは、 Ei=Ω(a-i)/(Λ'(a-i)a-i) となる。なお、Λ'(x)はΛ(x)の一次微分を示し
ている。
【0013】最後にステップ(v)で誤り訂正を行う。
すなわち、 W(x)=Y(x)+E(x) である。
【0014】これらの計算の多くは、通常、既に述べた
ように順序回路を用いた逐次演算として実現される。す
なわち、ステップ(i)から(v)はシーケンシャルに
実行され、各ステップ内では繰り返し演算も含めて多く
の処理がシーケンシャルに実行される。このようなRS
符号の復号回路のインプリメンテーションは、比較的デ
ータ転送レートの遅い通信/ストレージの分野では問題
ないが、高スループットで且つ低レイテンシ(latenc
y)の要求されるメモリECCの用途では処理速度が問
題となる。また、RS符号の復号器では、シンドローム
計算(ステップ(i))までは線形演算のみだが、その
後の誤り位置及び誤り値を推定する際に非線形演算回路
を多数必要とする。ガロア拡大体の非線形演算(2入力
乗算や特に逆数演算といった演算回路)を、論理関数の
基本プリミティブ(ANDやXOR等)を用いて高速か
つ小規模な回路として実現するのは難しい。速度の問題
に対処するため、演算を組み合わせ回路に展開すること
が考えられる。事実、BCH符号については、多項式の
係数計算回路の部分を組み合わせ回路に展開することが
行われており、t=5までの計算式が示され、t=3の
場合は米国特許第5343481号に開示されている。
しかし、組み合わせ回路設計では、順序回路設計で多用
する最適化テクニックの一つである演算器共有が使いに
くいので、演算フローを工夫して乗算等の個数を本質的
に減らさない限り、必要な非線形演算器の個数は、tに
比例して増大するループの繰り返し回数及びループ中で
の条件分岐の数に従って増大する。また、BCH符号で
は、誤り位置のみが求まればよいが、RS符号では、誤
り位置のみならず誤りの値を求めなくてはならない。こ
のため、t>1の場合、RS符号はBCH符号と比較し
ても非線形演算を多用する。
【0015】以上のような背景から、これまでRS符号
の復号は、順序回路としての実現がほとんどであり、組
み合わせ回路としては訂正可能シンボル数がごく少ない
(t=1)場合しか実現されていない。
【0016】ここで、Algebraic decodingをそのまま組
み合わせ回路に展開することの問題点を具体的にまとめ
ておく。 (1)誤り位置多項式及び誤り評価多項式を求める際に
良く用いられるPeterson法、BM法又はEuclid法につい
ては、各々そのまま組合せ回路にするのに問題がある。
Peterson法は、誤りシンボルの数tが小さい時(2程
度)は係数の簡単な直接計算法を与えるので、組み合わ
せ回路でそのまま実現できる。しかし、tが大きくなる
と前述したように回路規模は一つの誤り数に対してO
(t3)で増大する。 従って、Peterson法を組み合わせ
回路で実現した時には、t以下のすべての誤り数に対応
したΛ(x)の係数計算回路を用意しておかなければな
らないので回路規模はO(t3)ではなく、
【数4】 で増大する。BM法は、O(t2)の計算量で済む計算
アルゴリズムを与えるが、1つのループに条件判断が複
数入るので、このアルゴリズムの組み合わせ回路への展
開による高速化は容易ではない。特にRS符号では、必
要なループの数が、BCH符号に比べて2倍となるため
難しい(参考文献1、2参照)。Euclid法もO(t2
の計算量で済むが、多項式の割り算を含むので、組み合
わせ回路で実現すると非現実的なサイズになる。
【0017】(2)誤り値の推定では、単純にChien Se
arch以降のパスを並列化して組み合わせ回路に展開した
のでは、誤りの値を求めるForney Algorithmのところ
で、n個の除算器を用意する必要がある。 なお、この
場合は除算器の全てが有効に使われるのではなく、誤り
訂正数t個分の除算器しか実質的に働いていない。ま
た、除算器の共有化を行っても、回路規模はあまり改善
されないにもかかわらず、復号化の速度は大幅に遅くな
る。これは、誤りの位置に応じて除算器を割り振る回路
は2t個のnビットマルチプレクサ(前後にt個づつ)
と、t個のプライオリティエンコーダが必要になるから
である。
【0018】(b)トランスフォーム・デコーディング
(Transform decoding) 本方法では、具体的に以下の5ステップで復号化を実行
する。 (i)受信符号をDFTすることによりシンドロームを
計算する。 (ii)計算されたシンドロームにより誤り位置多項式の
係数を求める。 (iii)誤り位置多項式を解かずに、再帰的にn個の誤
りのDFT成分を計算する。 (iv)IDFT(Inverse DFT)により、誤りの値を
求める。 (v)受信符号と誤りの値により誤りの訂正を行う。
【0019】(i)及び(ii)のステップについては、
(a)の方法と同じである。(iii)では、誤りのDF
T成分E* iを求める。このうち、最初の2t個について
は、 E* i=E(ai)=Si (i=0,...2t−1) の関係があるので、これを使って、高次の成分を
【数5】 (i=2t,...n−1)により求める。
【0020】(iv)では、E* iを係数として定義される
多項式にa-i(i=0,...,n−1)を代入するこ
とによりIDFTを行う。すなわち、 Ei=E*(a-i) により誤り値Eiを求める。(v)は、(a)の方法と
同じである。
【0021】Transform decodingは割り算回路を用いな
いので、本方法においては、(a)の方法を組み合わせ
回路に展開した時の割り算回路に起因する問題は存在し
ない。しかし、本方法にも、(a)の方法における、Λ
(x)の係数計算の問題に加えて、以下の点で問題があ
る。 (1)Eiのすべての値を計算するにあたって、順序回
路では同じ回路が繰り返し使えるが、組み合わせ回路で
は、この回路をn−2t個用意しなくてはならない。一
つの回路にt個の固定乗算器が必要なので、全部でt
(n−2t)個の固定乗算器が必要である。さらに、計
算は再帰的、すなわち低い次数の計算が終了しないと次
の次数の計算ができないので、組み合わせ回路に展開す
ることによる計算速度の向上が期待出来ない。 (2)誤りのDFTの全成分(n個分)をシンドローム
より求めた後誤りの値を計算しているので、組み合わせ
回路で実現しやすいアルゴリズムではあるが、実際には
IDFTに膨大な量の回路が必要である。すなわち、I
DFTとしてn2個の固定乗算回路が必要となる。
【0022】
【発明が解決しようとする課題】よって、本発明の目的
は、高速且つ低消費電力のリード・ソロモン符号の復号
回路を提供することである。
【0023】順序回路を用いずに、組み合わせ回路のみ
でリード・ソロモン符号の復号回路を構成することも目
的である。
【0024】回路規模を実際に実現可能なサイズにした
リード・ソロモン符号の復号回路を構成することも目的
である。
【0025】
【課題を解決するための手段】上記目的を解決するため
の、t個以下の誤りを訂正可能な、リード・ソロモン符
号の復号回路は、誤りを含み得る第1符号語Y(i=
0,1,.,n−1)(いわゆる受信符号)からシンド
ロームSj(j=0,1,..,2t−1)を計算する
シンドローム計算回路と、シンドロームSjを用いて、
推定される誤りの数e(e≦t<n)に対応する誤り位
置多項式の係数Λk(k=1,.,e)を計算し、且つ
シンドロームSjを用いて、推定される誤りの数eに対
応する誤り多項式の係数Erl(l=0,.,e)を計
算する係数計算回路と、誤り多項式の係数Erlを用い
て誤り値Eiを計算し、且つ誤り位置多項式の係数Λk
用いて誤り値Eiのどの値を使用するかに関する信号を
生成する誤り値計算回路と、第1符号語Yiと上記信号
に対応する誤り値Eiとを用いて、推定される誤りを訂
正した第2符号語Wi(いわゆる送信信号)を計算する
出力回路とを含む。e≦t<nであって、Λk及びErl
はe個であるから、係数計算回路及び誤り値計算回路の
計算量及び回路サイズは削減されている。特に、係数計
算回路におけるΛk及びErlの計算には非線形演算が必
要であるので、その効果はより大きくなっている。
【0026】シンドローム計算回路と係数計算回路と誤
り値計算回路と出力回路の少なくとも1つは、以下でも
説明するように組み合わせ回路にて構成される。よっ
て、計算速度が向上する。
【0027】係数計算回路を、誤りの数u(u≦t)に
対応する誤り位置多項式の係数Λw ( u)(w=1,.,
u)を、uの小さい順に、前記シンドロームSj及びΛv
(u-1)(v=1,.,u−1)を用いて計算する回路を
含むように構成すれば、回路の共通化で回路サイズの増
大を抑えることができる。
【0028】また、誤り値計算回路を、誤り位置iに対
応するガロア・フィールドGF(2 )の元a及びそ
の逆元a-iを使用して計算を実行するように構成すれ
ば、線形演算で高速に処理を実施することができる。
【0029】なお、係数計算回路は、eによっては、推
定される誤りの数eに対応する誤り多項式の係数Erl
を計算するのに、推定される誤りの数eに対応する誤り
位置多項式の係数Λkをさらに使用する場合がある。
【0030】さらに、誤り値計算回路が、誤り位置iに
対応するGF(2m)の逆元a-iを誤り位置多項式に代
入した時の値が0ならばEiを使用することを示す信号
を出力し、それ以外ならばEiを使用しないことを示す
信号を出力する回路を含むようにすることも考えられ
る。
【0031】誤り値計算回路は、誤り多項式の係数Er
lを入力とする固定乗算器と誤り位置多項式の係数Λk
入力とする固定乗算器とを含むように構成することもで
きる。なお、誤り位置iに対応するガロア・フィールド
GF(2)の元a及びその逆元a-iを用いる場合に
は、これらの値は固定なのでハードワイアされる。
【0032】以上のような構成の本発明は、高速化と共
に低消費電力が要求されるメモリ回路への応用が考えら
れる。例えば、(i)DRAMのリフレッシュ時間を延
ばすための高速、低消費電力の誤り訂正回路、(ii)高
度な信頼性と相応のスピードを要求されるサーバーのメ
インメモリ用冗長回路、(iii)高速性を要求されるキ
ャッシュメモリ用のECC回路等である。
【0033】
【発明の実施の形態】図1に本発明に係る、リード・ソ
ロモン符号の復号回路の機能ブロック図を示す。ここで
受信符号語Y0乃至Yn-1はシンドローム計算回路1と出
力回路9に入力される。シンドローム計算回路1は係数
計算回路3に接続されており、シンドローム計算回路1
にて計算されたシンドロームS0乃至S2t-1は係数計算
回路3に入力される。係数計算回路3は誤り値計算回路
5と誤り位置指定回路7に接続されており、係数計算回
路3にて計算された誤り位置多項式の係数Λ0乃至Λe
誤り位置指定回路7に、そして誤り多項式の係数Er0
乃至Ereは誤り値計算回路5に入力される。なお、e
(e≦t<n)は推定される誤りの数である。誤り値計
算回路5は出力回路9に接続されており、誤り値計算回
路5にて計算された誤り値Er(ai)(i=
0,..,n−1)は出力回路9に入力される。また、
誤り位置指定回路7も出力回路9に接続されており、誤
り位置指定回路7にて計算された、どの誤り値Er(a
i)を使用するか表す信号(Λ(a-i)?0,Λ
(a-i)が0であれば1を出力し、それ以外の場合は0
を出力する)が出力出力回路9に入力される。出力回路
9は入力された誤り値Er(ai)とどの誤り値Er
(ai)を使用するか表す信号とを用いて、同じく入力
された受信符号語Y0乃至Yn-1の誤りを訂正した符号語
0乃至Wn-1を出力する。
【0034】図1の復号回路は、シンドローム計算回路
1(DFT計算を実行)と誤り位置指定回路7(IDF
T計算を実行)と誤り値計算回路5(DFT計算を実
行)と出力回路9とに線形演算を集めて、中央の係数計
算回路3に非線形演算を集中させている点に特徴を有す
る。これにより非線形演算部の入出力数がO(t)に抑え
ることができ、回路サイズのうえでボトルネックとなる
非線形演算器の個数がnに依存しなくなる。
【0035】これには、組み合わせ回路で回路を構成し
た時の以下の性質によるところが大きい。 (1)線形演算回路(定数乗算や加算)は少ゲート数で
高速であるのに対し、非線形演算回路(乗算や除算)は
多ゲート数で低速、という一般的傾向がある(目安とし
ては、GF(28)では、線形演算器は数ゲート乃至数
十ゲート、非線形演算器は数百乃至数千ゲートであ
る)。 (2)GF(2m)上の連続する定数乗算は、線形なの
で一つの定数乗算器と同等のコストで実現できるのに対
し、非線形演算がその間に含まれる場合では、そのよう
なにはできない。事実、線形演算回路と非線形演算回路
を分離し、非線形演算回路への入出力を減らす本発明の
構成は、回路規模や速度の点でかなり良い一つの局所最
適解(真の最適解に近いと思われる)を与えることがで
きる。さらに、このような、線形演算回路と非線形演算
回路の分離により、プログラムによる、自動合成・検証
が行いやすい構成が実現されるという効果もある。
【0036】では、各要素ごとに実行すべき計算内容に
ついて説明する。
【0037】(1)シンドローム計算回路1 シンドローム計算回路1で実施する計算は上で述べた従
来技術と同じである。もう一度説明すると、GF
(2m)上でのDFT計算を実施する。これは、受信符
号語Yi(i=0,..,n−1)を係数とする受信符
号多項式Y(x)=Yn -1n-1+Yn-2n-2+....
1x+Y0 にGF(2m)の元1,a,a2
3,.,a2t-1を代入することにより計算される。す
なわち、 S0=Y(1) S1=Y(a) S2=Y(a2) S3=Y(a3) . . . S2t-1=Y(a2t-1) である。
【0038】(2)係数計算回路3 係数計算回路3では上でも述べたが誤り位置多項式の係
数Λk (e)(k=0,..e)と誤り多項式の係数Erl
(e)(l=0,.,e−1)を計算する。まず、誤り位
置多項式の係数Λk (e)について説明する。なお、上付き
の(e)は誤りの数がe個の場合であることを表してい
る。 (2-1)誤り位置多項式の係数Λk (e)の計算 基本的には数2の式を計算することになる。但し、tは
本復号回路が訂正可能な誤りの最大数であって、e(0
≦e≦t)個の誤りが発生しているとする。そうする
と、数2のS0乃至S2t-2を用いた行列は、以下のよう
なe×eの行列Teとして表すことができる。
【数6】 なお、Ie-1は(e−1)×(e−1)の単位行列であ
り、Te-1はTeを1次元小さくした行列であり、Te-1
-1はその逆行列である。また、Δeは以下のように表さ
れる値である。
【数7】 これらを用いると、Te -1は以下のように表される。
【数8】 よって数6を以下のように変形することができる。
【数9】
【0039】この数9は、誤りの数がe−1個以下の時
の誤り位置多項式の係数Λp (e-1),Λq (e-2),...を
用いて、誤りの数がe個の時の誤り位置多項式の係数Λ
k (e)を計算することができることを表している。すなわ
ち、eの小さい順に、シンドロームとそれまでに計算さ
れた係数Λp (e-1)とを用いて、計算すべきeに対応する
係数Λk (e)を計算できるのである。さらに言うと、各e
ごとに回路を用意する必要はなく、より小さい値のeに
対応する係数を求める回路をより大きな値のeに対応す
る係数を求める回路の一部として使用できることにな
り、全体として回路規模を小さくすることができる。
【0040】なお、ここで扱うべき問題は、よく知られ
たTeplitz行列が有する対称性とは微妙に異なり、この
ことが問題を非常に複雑にしていることに留意された
い。
【0041】以上のようにe=1から順に誤り位置多項
式の係数Λk (e)を計算していくわけであるが、実際に必
要となる係数は実際の誤りの数eに対応する係数のみで
ある。誤りの数は、例えばdet(Te)≠0となる最大の
eであると推定できる。係数計算回路3は、推定された
誤りの数eに対応する誤り位置多項式の係数Λk (e)をΛ
kとして誤り位置指定回路7に出力する。
【0042】実際にどのような計算を実施するのかをe
=3まで示す。但し、簡単のため、Λ0 (r)=det(Tr
として正規化している。 Λ1 (1)=S1 Λ0 (1)=S0 Λ2 (2)=Λ1 (1)3+S2 2 Λ1 (2)=Λ0 (1)3+Λ1 (1)2 Λ0 (2)=Λ0 (1)2+Λ1 (1)1 Λ3 (3)=Λ2 (2)5+S14 2+S3 3 Λ2 (3)=Λ1 (2)5+Λ2 (2)4+S04 2+S23 2 Λ1 (3)=Λ0 (2)5+Λ1 (2)4+Λ2 (2)3 Λ0 (3)=Λ0 (2)4+Λ1 (2)3+Λ2 (2)2 なお、正規化しなければΛ0 (e)は1であるから、誤り位
置指定回路7に出力せずともよい。
【0043】(2-2)誤り多項式の係数Erl (e)の計算 本発明においては、Forneyアルゴリズムのように誤り値
の計算のために多項式への代入の後に割り算を必要とせ
ずに多項式に直接代入して誤り値が求まり、且つTransf
orm decodingのようにO(n)の項が必要ではなくO
(t)で実現される新たな誤り多項式を定義する。 具体的には、e=3の場合には以下のようになる。 Er(3)(x)=(Λ1 (3)Λ2 (3)3 (3))-1(S0x3+S1x2+(Λ1
(3) 2S02 (3)S0+S2)x+(Λ 2 (3)Λ2 (3)S01 (3) 2S1+
Λ1 (3)S2)) よって、 Er3 (3)=(Λ1 (3)Λ2 (3)3 (3))-1S0 Er2 (3)=(Λ1 (3)Λ2 (3)3 (3))-1S1 Er1 (3)=(Λ1 (3)Λ2 (3)3 (3))-11 (3) 2S02
(3)S0+S2) Er0 (3)=(Λ1 (3)Λ2 (3)3 (3))-12 (3)Λ2 (3)S0+
Λ1 (3) 2S11 (3)S2)) となる。
【0044】また、e=2の場合は以下のようになる。 Er(2)(x)=(Λ0 (2)S01 (2))x+(S1 3+S0 2S3)/Λ1 (2) よって、 Er2 (2)=0 Er1 (2)=(Λ0 (2)S01 (2)) Er0 (2)=(S1 3+S0 2S3)/Λ1 (2) となる。
【0045】さらに、e=1の場合にはEr(1)(x)=S
0 となる。よって、 Er1 (1)=0 Er0 (1)=S0 となる。
【0046】ここでも誤りの数eに対応する係数Erl
(e)のみをErlとして誤り値計算回路5に出力する。
【0047】では、このような結果がいかにして得られ
るか以下説明する。最初に以下の式が成り立つ。
【数10】 ここでE0乃至Ee-1からなる行列の前に示された行列を
(e)と表す。なお、誤りの数がeである場合の行列で
あることを示すために(e)を上付きにしてある。ま
た、aのik乗についても説明しておく。aiは誤り位置
iに対応するガロア・フィールドGF(2m)の元であ
るが、この時のiは全体の中での順番を示す。一方、誤
りのある符号語の中における順番を示す時にはikを用
いる。ここでは誤りの総数はeであるから、kは0乃至
e−1となる。
【0048】i0乃至ie-1はすべて同じではないので、
行列A(e)の逆行列は存在し、よって数10の方程式は
解を有する。すなわち、
【数11】 である。なお、k=0,..e−1である。数11の分
母の行列式はファンデルモンデ(Vandermonde)の行列
式と呼ばれ、
【数12】 である。さらに、数11におけるAij (e)に上付きの〜
の付いた行列式は、A(e)のijについての余因子行列
式である。
【0049】すべての誤り位置が分かっている場合には
方程式を解くことも可能であるが、これでは逆行列計算
にO(e3)の計算がかかるだけでなく、誤りの位置が
予め分かっている必要があるので、誤り値の計算と誤り
位置の計算を同時に行うことができない。上で述べた最
終結果のように、誤り位置多項式の係数とシンドローム
のみによって数11を表現し直すことができればよい。
以下、数11の分母と分子に分けて議論する。
【0050】(a)数11の分母部分 Λe (e),Λe-1 (e),..,Λ1 (e)は、
【数13】 のエレメンタリ・シンメトリック・ファンクション(El
ementary Symmetric Function)であるということに着
目すると、標数2のガロア体では和と差は同じのなの
で、det(A(e))は数13のシンメトリック・ファンク
ション(SymmetricFunction)となる。従って、det(A
(e))はΛe (e),Λe-1 (e),..,Λ1 (e)の関数である
と言うことができる。すなわち、 det(A(e))=f(Λe (e),Λe-1 (e),...Λ1 (e)) と書くことができる。なお、証明については B.L.van d
er Vaerden,"Algebra,"Frederick Ungar Publishing C
o. 1970 等を参照のこと。例えば、 det(A(2))=Λ1 (2) det(A(3))=Λ1 (3)Λ2 (3)+Λ3 (3) となる。
【0051】(b)数11の分子部分 分子部分では余因子行列式の計算が問題になる。この計
算はeが小さい時には直接計算も可能であるが、eが大
きくなると、例えば M.Stone, "Schur function, chira
l boson, and thequantum-Hall-effect edge states,"
Phys. Rev. B 42, 8399 (1990)を参照して、シュア・フ
ァンクション(Schur function)及びヤング・テーブル
(Young tableaux) を用いて計算する。
【数14】 {}で囲まれる数字の位置は、余因子行列式における行
で{}内の右から余因子行列式の第1行目第2行
目、、、を表している。また、数字の大きさは次数をど
れだけ上げるかを表す。A(e)は一行下に降りるにつれ
て次数が1上がるようになっている。jiの余因子行列
式ではこのA(e)のj行i列を除いた行列式であるか
ら、この行列式ではj行目以降の行ではA(e)より次数
が1上がっている。以上のように、数14の余因子行列
式では右からj−1個0が続き、次数がA(e )より1上
がるj行目以降のe−j個1が並ぶことになる。
【0052】なお、
【数15】 数15の{λ0 *,λ1 *,..,λe-1 *}は、{λ0
λ1,..,λe-1}のコンジュゲート・パーティション
(Conjugate Partition)である。図2の例で説明す
る。この図2では、上から見た場合は、4,2,2,1
個のブロックがあると見ることができるが、同じ状態を
左から見ると、4,3,1,1個のブロックがあると見
ることができる。上から見たときには{λ0
λ1,..,λe-1}の状態を示しており、左から見たと
きには、{λ0 *,λ1 *,..,λe-1 *}の状態を示して
いる。また、
【数16】 はA(e)のaのik乗を含む列とaの(e-1)ik乗を含む行
を削除した行列式となる。
【0053】よって、余因子行列式は、
【数17】 の関数として表すことができる。すなわち、
【数18】 と書くことができる。また、
【数19】 であるから、分子部分もΛe (e),Λe-1 (e),..,Λ1
(e)とaのik乗で表現することができる。
【0054】以上をまとめると、
【数20】 は、Λe (e),Λe-1 (e),...Λ1 (e)から係数が構成さ
れる、aのik乗の多項式で表現できる。
【0055】では、e=3の場合を例として説明する。
なお、誤りの位置ikをここではα,β,γとする。こ
こではA(e)は以下のようになる。
【数21】 これより、余因子行列式は以下のように表すことができ
る。
【数22】
【数23】
【数24】 ここで、{1,1}{1,0}{0,0}のConjugate
partitionは{2,0}{1,0}{0,0}であるの
で、Shur Function は以下のように表される。
【数25】
【数26】
【数27】 なお、数25のΦ{1,1}α=aβγと数26のΦ
{1,0}α=aβ+aγは数22及び数23から導き出し
たものである。
【0056】以上のようにすると、
【数28】
【数29】
【数30】 となる。よって、 Eα=(Λ1 (3)Λ2 (3)+Λ3 (3)-1{(aα(aα+Λ
1 (3))+Λ2 (3))(aα+Λ1 (3))S0+(aα+Λ1
(3)21+(aα+Λ1 (3))S2
【0057】よって、上記式のaαをxとした式が誤り
多項式の係数(e=3)の場合の式である。なお、ガロ
ア・フィールドにおける演算であることに注意する。
【0058】(3)誤り値計算回路5 誤り値計算回路5は、誤り多項式Er(x)の係数Er
0乃至Ere-1を受信する。ここから誤り値の計算は、受
信した係数数Er0乃至Ere-1から構成される誤り多項
式Er(x)のxにGF(2m)の元ai(i=
0,..,n−1)を代入することにより得られる。す
なわち、 Ei=Er(ai) であり、DFTを行っている。但し、全てのi(0乃至
n−1)についてEiを計算するので、誤りのない位置
についてもEiが計算される。そこで、以下に説明する
誤り位置指定回路7の計算が必要となる。なお、代入す
るといってもaiは固定値であるからこれらはハードワ
イアされており、Er0乃至Ere-1を入力とする固定乗
算器が用いられる。
【0059】(4)誤り位置指定回路7 誤り位置指定回路7は、誤り位置多項式Λ(x)の係数
Λ0乃至Λeを受信する。ここから誤り位置は、IDFT
を含む以下のような計算で指定することができる。すな
わち、Λ(a-i)?0 である。なお、a-iは誤り位置
iにおけるGF(2m)の逆元である。またΛ(a-i
?0は、Λ(a-i)と0を比較し、Λ(a-i)=0であ
れば1を出力し、それ以外の場合には0を出力するもの
である。この1は誤り値計算回路5の出力Eiを使用す
ることを意味し、0はEiを使用しないことを示すもの
である。ここでも、a-iはハードワイアされており、Λ
0乃至Λeを入力とする固定乗算器が用いられる。
【0060】(5)出力回路9 出力回路9は最終的に誤りを訂正した符号語W0乃至W
n-1を出力するものである。この際、Er(ai)・(Λ
(a-i)?0)を実行する。従来技術の説明の欄で述べ
たが、W(x)=Y(x)+E(x)であるから、Er
(ai)・(Λ(a -i)?0)をYiと加算(XOR)す
ることにより最終的に訂正された符号語Wiが得られ
る。
【0061】以上は実施例であって、様々な変形が可能
である。例えば誤り位置指定回路7及び誤り値計算回路
5を別の機能ブロックとして表したが、これらを一体と
した形で実施することも可能である。また、これらに加
えて出力回路9を一体化することも考えられる。さら
に、n又はtが非常に大きい場合には回路の一部を順序
回路にすることもできる。本発明の方法は回路構成の対
称性が高いので、組み合わせ回路から順序回路への変更
は簡単にできる。さらに、係数計算回路3で誤りの数の
推定を実施しているが、別に誤りの数を確認するような
回路を設けることも可能である。
【0062】
【効果】以上のように、高速且つ低消費電力のリード・
ソロモン符号の復号回路を提供することができた。処理
の並列化も進んで高速化されている。また、順序回路で
実施するより、クロック、ラッチ等の要素や実行コント
ロール回路等が不要になった分省電力化できた。
【0063】順序回路を用いずに、組み合わせ回路のみ
でリード・ソロモン符号の復号回路を構成することもで
きた。
【0064】組み合わせ回路で構成した場合であっても
回路規模を実際に実現可能なサイズにしたリード・ソロ
モン符号の復号回路を構成することもできた。
【0065】回路の自動合成も従来技術よりしやすくな
った。
【図面の簡単な説明】
【図1】本発明に係る、リード・ソロモン符号の復号回
路の機能ブロック図である。
【図2】Conjugate Partition を説明するための図であ
る。
【符号の説明】
1 シンドローム計算回路 3 係数計算回路 5 誤り値計算回路 7 誤り位置指定回路 9 出力回路
───────────────────────────────────────────────────── フロントページの続き (72)発明者 森岡 澄夫 神奈川県大和市下鶴間1623番地14 日本 アイ・ビー・エム株式会社 東京基礎研 究所内 (56)参考文献 特開 平6−260943(JP,A) 特開 平9−16423(JP,A) 特開 平6−37648(JP,A) (58)調査した分野(Int.Cl.7,DB名) H03M 13/00 G06F 11/10 330 H04L 1/00

Claims (7)

    (57)【特許請求の範囲】
  1. 【請求項1】t個以下の誤りを訂正可能な、リード・ソ
    ロモン符号の復号回路であって、 誤りを含み得る第1符号語Y(i=0,1,.,n−
    1)からシンドロームSj(j=0,1,..,2t−
    1)を計算するシンドローム計算回路と、 前記シンドロームSjを用いて、推定される誤りの数e
    (e≦t<n)に対応する誤り位置多項式の係数Λ
    k(k=1,.,e)を計算し、且つ前記シンドローム
    jを用いて、推定される誤りの数eに対応する誤り多
    項式の係数Erl(l=0,.,e)を計算する係数計
    算回路と、 前記誤り多項式の係数Erlを用いて誤り値Eiを計算
    し、且つ前記誤り位置多項式の係数Λkを用いて前記誤
    り値Eiのどの値を使用するかに関する信号を生成する
    誤り値計算回路と、 前記第1符号語Yiと前記信号に対応する前記誤り値Ei
    とを用いて、推定される誤りを訂正した第2符号語Wi
    を計算する出力回路と、 を含むリード・ソロモン符号の復号回路。
  2. 【請求項2】前記シンドローム計算回路と前記係数計算
    回路と前記誤り値計算回路と前記出力回路の少なくとも
    一つが、組み合わせ回路にて構成される、請求項1記載
    のリード・ソロモン符号の復号回路。
  3. 【請求項3】前記係数計算回路が、 誤りの数u(u≦t)に対応する誤り位置多項式の係数
    Λw (u)(w=1,.,u)を、uの小さい順に、前記シ
    ンドロームSj及びΛv (u-1)(v=1,.,u−1)を
    用いて計算する回路を含む請求項1記載のリード・ソロ
    モン符号の復号回路。
  4. 【請求項4】前記係数計算回路が、 前記推定される誤りの数eに対応する誤り多項式の係数
    Erlを計算するのに、前記推定される誤りの数eに対
    応する誤り位置多項式の係数Λkをさらに使用する請求
    項1記載のリード・ソロモン符号の復号回路。
  5. 【請求項5】前記誤り値計算回路が、誤り位置iに対応
    するガロア・フィールドGF(2)の元a及び前記
    誤り位置iに対応するGF(2m)の逆元a-iを使用し
    て計算を実行する、請求項1記載のリード・ソロモン符
    号の復号回路。
  6. 【請求項6】前記誤り値計算回路が、 前記誤り位置iに対応するGF(2m)の逆元a-iを前
    記誤り位置多項式に代入した時の値が0ならばEiを使
    用することを示す信号を出力し、それ以外ならばEi
    使用しないことを示す信号を出力する回路を含む、請求
    項4記載のリード・ソロモン符号の復号回路。
  7. 【請求項7】前記誤り値計算回路が、 前記誤り多項式の係数Erlを入力とする固定乗算器と
    前記誤り位置多項式の係数Λkを入力とする固定乗算器
    とを含む請求項5記載のリード・ソロモン符号の復号回
    路。
JP26849398A 1998-09-22 1998-09-22 リード・ソロモン符号の復号回路 Expired - Fee Related JP3272307B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP26849398A JP3272307B2 (ja) 1998-09-22 1998-09-22 リード・ソロモン符号の復号回路
US09/401,051 US6487691B1 (en) 1998-09-22 1999-09-22 Reed-solomon decoder

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP26849398A JP3272307B2 (ja) 1998-09-22 1998-09-22 リード・ソロモン符号の復号回路

Publications (2)

Publication Number Publication Date
JP2000114984A JP2000114984A (ja) 2000-04-21
JP3272307B2 true JP3272307B2 (ja) 2002-04-08

Family

ID=17459274

Family Applications (1)

Application Number Title Priority Date Filing Date
JP26849398A Expired - Fee Related JP3272307B2 (ja) 1998-09-22 1998-09-22 リード・ソロモン符号の復号回路

Country Status (2)

Country Link
US (1) US6487691B1 (ja)
JP (1) JP3272307B2 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6704901B1 (en) * 2000-07-11 2004-03-09 Ami Semiconductor, Inc. Runtime programmable Reed-Solomon decoder
US6640327B1 (en) * 2000-11-01 2003-10-28 Sharp Laboratories Of America, Inc. Fast BCH error detection and correction using generator polynomial permutation
US7206993B2 (en) * 2003-03-12 2007-04-17 Matsushita Electric Industrial Co., Ltd. Method and device for decoding Reed-Solomon code or extended Reed-Solomon code
US7793195B1 (en) * 2006-05-11 2010-09-07 Link—A—Media Devices Corporation Incremental generation of polynomials for decoding reed-solomon codes
US7774688B1 (en) * 2006-10-11 2010-08-10 Marvell International Ltd. Hardware efficient decoding system for Bose, Ray-Chaudhuri, Hocquenghem (BCH) product codes
JP2008112522A (ja) * 2006-10-31 2008-05-15 Fujitsu Ltd 誤り検出装置および誤り検出方法
JP4313391B2 (ja) * 2006-12-13 2009-08-12 株式会社日立コミュニケーションテクノロジー 光集線装置および光加入者装置
US8171368B1 (en) * 2007-02-16 2012-05-01 Link—A—Media Devices Corporation Probabilistic transition rule for two-level decoding of reed-solomon codes
TWI334279B (en) * 2007-06-23 2010-12-01 Lite On Technology Corp Efficient chien search method for reed-solomon decoding and machine readable recording medium comprising instructions for performing the method
JP4767266B2 (ja) * 2008-01-17 2011-09-07 株式会社日立製作所 演算ユニット、エラー訂正復号回路及び誤り位置多項式の演算方法
US8392806B2 (en) * 2009-09-02 2013-03-05 Texas Instruments Incorporated Method, device, and digital circuitry for providing a closed-form solution to a scaled error locator polynomial used in BCH decoding
US8739006B2 (en) 2010-06-30 2014-05-27 International Business Machines Corporation Reduced circuit implementation of encoder and syndrome generator
JP2014082574A (ja) * 2012-10-15 2014-05-08 Samsung Electronics Co Ltd 誤り検出訂正回路、及びメモリ装置
JP5918884B1 (ja) * 2015-05-12 2016-05-18 日本電信電話株式会社 復号装置、復号方法、およびプログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4845714A (en) * 1987-06-08 1989-07-04 Exabyte Corporation Multiple pass error correction process and apparatus for product codes
US5226043A (en) * 1990-12-27 1993-07-06 Raytheon Company Apparatus and method for data error detection and correction and address error detection in a memory system
US5343481A (en) * 1991-01-07 1994-08-30 Kraft Clifford H BCH error-location polynomial decoder
JP3252515B2 (ja) 1993-03-04 2002-02-04 松下電器産業株式会社 誤り訂正装置
US5610929A (en) * 1994-03-11 1997-03-11 Fujitsu Limited Multibyte error correcting system
JPH0916423A (ja) 1995-06-28 1997-01-17 Fanuc Ltd 誤り訂正方法
US5983383A (en) * 1997-01-17 1999-11-09 Qualcom Incorporated Method and apparatus for transmitting and receiving concatenated code data
US6275965B1 (en) * 1997-11-17 2001-08-14 International Business Machines Corporation Method and apparatus for efficient error detection and correction in long byte strings using generalized, integrated, interleaved reed-solomon codewords

Also Published As

Publication number Publication date
JP2000114984A (ja) 2000-04-21
US6487691B1 (en) 2002-11-26

Similar Documents

Publication Publication Date Title
US4873688A (en) High-speed real-time Reed-Solomon decoder
US6347389B1 (en) Pipelined high speed reed-solomon error/erasure decoder
JP3272307B2 (ja) リード・ソロモン符号の復号回路
US7502989B2 (en) Even-load software Reed-Solomon decoder
JPH0831803B2 (ja) 誤り訂正のための方法と装置
US8694872B2 (en) Extended bidirectional hamming code for double-error correction and triple-error detection
US7162679B2 (en) Methods and apparatus for coding and decoding data using Reed-Solomon codes
US7870468B1 (en) Reed-solomon decoder using a configurable arithmetic processor
US10439643B2 (en) Reed-Solomon decoders and decoding methods
US20180205398A1 (en) Bm-based fast chase decoding of binary bch codes through degenerate list decoding
KR100260415B1 (ko) 고속시리얼에러위치다항식계산회로
US20190273515A1 (en) Apparatuses and methods for interleaved bch codes
US7366969B2 (en) System and method for implementing a Reed Solomon multiplication section from exclusive-OR logic
US7353449B2 (en) Method of soft-decision decoding of Reed-Solomon codes
CN101483442A (zh) 根据Nand Flash多余空间来配置纠错能力的BCH解码器
CN105337619B (zh) 一种bch码解码方法及装置
US11101925B2 (en) Decomposable forward error correction
EP1102406A2 (en) Apparatus and method for decoding digital data
KR100258951B1 (ko) 리드-솔로몬(rs) 복호기와 그 복호방법
US20030126543A1 (en) Method and apparatus for solving key equation polynomials in decoding error correction codes
US10367529B2 (en) List decode circuits
US8255777B2 (en) Systems and methods for locating error bits in encoded data
US9467173B2 (en) Multi-code Chien's search circuit for BCH codes with various values of m in GF(2m)
EP1612950A1 (en) Method and system for correcting errors during read and write to non volatile memories
Chang et al. VLSI architecture of modified Euclidean algorithm for Reed–Solomon code

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees