JP3830527B2 - 3つおよび4つのエラーを訂正するための改良されたシステム - Google Patents
3つおよび4つのエラーを訂正するための改良されたシステム Download PDFInfo
- Publication number
- JP3830527B2 JP3830527B2 JP52450797A JP52450797A JP3830527B2 JP 3830527 B2 JP3830527 B2 JP 3830527B2 JP 52450797 A JP52450797 A JP 52450797A JP 52450797 A JP52450797 A JP 52450797A JP 3830527 B2 JP3830527 B2 JP 3830527B2
- Authority
- JP
- Japan
- Prior art keywords
- error
- polynomial
- solution
- equation
- processor
- 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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
- G06F7/724—Finite field arithmetic
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Physics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Probability & Statistics with Applications (AREA)
- Algebra (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Error Detection And Correction (AREA)
- Radar Systems Or Details Thereof (AREA)
Description
この発明は、一般に、データ処理システムに関し、より特定的には、エラー訂正コードを用いたデータにおけるエラーを復号しかつ訂正するためのシステムに関する。
発明の背景
磁気ディスクなどの磁気媒体上に記憶されたデータは、典型的には、符号化された形で記憶されており、したがって記憶されたデータ内のエラーを恐らくは訂正することができる。エラーは、たとえば、符号間干渉、ディスク内の欠陥、またはノイズによって起こり得る。ディスク上に記憶されるデータの密度が増加するに伴い、より多くのエラーが起こりかねず、システムはより多数のエラーを訂正せねばならない。システムがエラーを訂正する速度は、システムがデータを処理する全体的な速度において重要である。
記憶する前に、多ビットデータシンボルはエラー訂正コード(ECC)を用いて符号化される。データシンボルがディスクから検索され復調されるとき、ECCが用いられ、その名前が示しているように誤ったデータを訂正する。
特定的には、k個のデータシンボルの列はディスクに書込まれる前に、(n,k)ECCを用いて数学的に符号化され、n−k ECCシンボルを形成する。ECCシンボルは次にデータの列に添えられn−シンボルエラー訂正コードワードを形成し、これは次にディスクに書込まれるかまたはディスク上に記憶される。データがディスクから読出されるとき、データシンボルおよびECCシンボルを含むコードワードは検索されそして数学的に復号される。復号の間、データ内のエラーは検出されそしてもし可能ならば、ECCシンボルの操作によって訂正される(復号についての詳細な説明に関しては、ピーターソン(Peterson)およびウェルドン(Weldon)の『エラー訂正コード(Error Correction Codes)』第2版、MIT出版、1972を参照)。
データシンボルの列の中の多数のエラーを訂正するためには、システムは典型的には、ガロア体として知られる数組のシンボルのさまざまな数学的特性を効率的かつ効果的に利用するECCを用いる。ガロア体は、「GF(Pm)」と表わされ、「P」は素数であり、「m」は体の中の各要素またはシンボル内の基数「P」の桁数と考え得る。Pは普通デジタルコンピュータおよびディスクドライブアプリケーションにおいては値2をとり、したがって、mは各シンボル内のビット数である。一般にガロア体とともに使用されるECCは、リードソロモン符号またはBCH符号である。
リードソロモン符号またはBCH符号の改変されたコードワードの復号には本質的に4つの主要ステップがある。システムはまずECCシンボルの操作の結果に基づいたエラーシンドロームを決定する。次に、エラーシンドロームを用いて、システムはエラーロケータ多項式を決定する。これはエラーの数と同じ数の次数を有する多項式である。システムは次にエラーロケータ多項式の解を求め、各解からコードワード内の関連するエラーの位置を決定する。最後に、システムはエラー位置に対するエラー値を求める。デジタルコンピュータなどの2進システムにおいてはエラー位置に対して可能なエラー値は1つしかないので、エラー値を決定するステップは重要ではない。
エラー訂正処理の中で最も時間を費やすのは、シンドロームを決定し、エラー位置を求めるステップである。ここに説明する発明は、3つまたは4つのエラーの位置を求めるためにエラー訂正システムの費やす時間を減じる。これは、三次および四次のエラーロケータ多項式の解を求めることを含む。
先行のシステムにおいては、四次の多項式の解は、試行錯誤またはマトリックス操作もしくはルックアップテーブルによって決定されている。試行錯誤法は、あらゆる可能な値、すなわちコードワード位置に関連する適用可能なGF(22m)のすべての要素を多項式に代入し、各値について多項式の数値を求めることによって行なわれる。もし所与の値について多項式がゼロに等しければ、その値が解である。このシステムは、次に可能な値を多項式に代入しその値が解かどうかを判断することによってこの試行錯誤処理を続け、すべての可能な値が試されてしまうかまたはすべての4つの解が決定されるまでこれを続ける。この試行錯誤処理は、最適化された形態では通常チェンサーチとして知られているが、時間のかかるものである。さらに、コードワード内のエラーの位置によって処理に費やされる時間が変化するために、処理にかかる時間を予測することができない。
マトリックス操作およびルックアップテーブル法は、
σ4x4+σ3x3+σ2x2+σ1x+σ0
の形の一般四次多項式を変換して、
x4+x2+ax+b
の形の多項式にすることを含んでいる。
ルックアップテーブルが使用されるのならば、テーブルは、aおよびbの可能な値のすべての組に対しての解の組を含んでいる。今日使用されている典型的にはGF(28)にわたるECCについては、テーブルは216のエントリを有し、その各々が32ビットすなわち4つの8ビット要素を有する。したがって、テーブルはかなりの量の記憶空間を占め、比較的複雑なアドレッシング機構を必要とする。
マトリックス操作法を用いたシステムは、f(α),f(α1),f(α2),...f(αm-1)で、ここでf(x)=x4+x2+ax+bであるものを決定することにより、m×mのマトリックスを生成する。次に、マトリックスを操作してマトリックスによって広がりが規定される空間のナル空間を決定する。多項式の解は次にナル空間にわたるベクトルから得ることができる(より詳細な説明については、E・R・ベールカンプ(Berlekamp)『代数的コード理論(Algebraic Coding Theory)』、マグロウヒルブックカンパニー(McGraw Hill Book Company)、1968年を参照)。この方法では、m×mのマトリックスのビット毎の操作が必要となり、典型的にはマトリックスを変換するために多くの操作演算が必要である。したがって、この方法は時間がかかりかつ計算に集中している。
ここで説明するこの発明のシステムは、4つのエラー位置を求めるためにかかる時間を減じ、四次多項式の解を決定することを含む。このシステムは、ベールカンプによって『代数的コード理論』に説明されているような二次多項式の解を決定する周知の方法を利用している。さらに、このシステムは、ファンデルホルスト(Van der Horst)およびバーガー(Berger)によって「三重エラー訂正2進BCHコードの完全なデコーディング(Complete Decoding of Triple-Error-Correcting Binary BCH Codes)」『情報理論についてのIEEE紀要(IEEE Transactions on Infomation Theory)』、Vol.IT-22、1976年、138頁から147頁に説明されている三次多項式の解を決定する方法を利用している。
ファンデルホルストおよびバーガーの教示に従って三次多項式の解を求めるためには、GF(22m)にわたってのガロア体要素の立方根を決定することが必要である。後にここで説明するように、本発明者は比較的迅速かつ容易に立方根を求めるためのある発明の回路を開発した。
発明の概要
この発明は、四次エラーロケータ多項式を最終的に2つの二次方程式に変換し、これらの方程式の解を求め、これらの解からエラーロケータ多項式の解を決定することによって、GF(22m)内の4つのエラーのエラー位置を決定するシステムである。
より特定的には、このシステムは、最初に四次多項式
σ(x)=σ4x4+σ3x3+σ2x2+σ1x+σ0
[1]
を操作して、
θ(y)=y4+θ2y2+θ1y+θ0
[2]
の形にする。ここで、θiはエラーロケータ多項式の項の係数の組合せである。y3の項の係数がゼロであることに注意されたい。
このシステムは次にθ(y)を因数分解して、
θ(y)=(y2+t*y+u)*(y2+v*y+w),
[3]
にし、ここで「*」は乗法を表わし、そしてこの式を展開して、
θ(y)=y4+(t+v)y3+(t*v+u+w)y2+(t*w+v*u)y+u*w.
[4]
にし、ここでt、u、v、およびwは未知数である。式2および式3の係数を等置して、このシステムは、
t+v=0
t*v+u+w=t2+u+w=θ2
[5]
t*w+u*v=t+w+t*u=t*(w+u)=θ1
u*w=θ0
と決定する。
このシステムは次に変数tを唯一の未知数とする方程式を生成する。
t3+θ2t+θ1=0
[6]
この三次方程式は以下により詳細に説明するように、ファンデルホルストおよびバーガーによって説明されている方法を用いて解くことができる。
一旦方程式6の解t0が決定されると、この解はθ1についての式に代入され、そしてこの式およびθ0についての式を用いてuおよびwを解とする二次方程式が形成される。
p2+(θ2+t0 2)p+θ0=0
[7]
このシステムは次に二次多項式を解くためのベールカンプの方法を用いて、方程式7の解p0およびp1を求める。解p0およびp1はそれぞれuおよびwであるが、多項式3に代入され、各項はゼロとされ、2つの二次方程式が生成される。
y2+t0 *y+p0=0
[8]
y2+t0 *y+p1=0
ベールカンプ法を用いて決定される方程式8の解はまた、θ(y)の解でもあり、したがってエラーロケータ多項式の解を生成するために直接用いることができる。
この直接的解法は、4つの解を求める、先行の試行錯誤またはマトリックス操作法よりも迅速である。さらに、他の先行の既知のシステムにおいて必要とされるように大きなルックアップテーブルを記憶したりそこにエントリしたりすることは必要ない。
【図面の簡単な説明】
この発明の性質および目的をより完全に理解するために、添付された図面に関連する以下の詳細な説明を参照されたい。図面中では、
図1は、この発明により構築されるデコーダの機能ブロック図である。
図2は、GF(22m)要素の立方根を決定するための発明の回路の機能ブロック図である。
図3は、図2の回路の動作のフローチャートである。
図4は、GF(28)についての図2の回路である。
図5は、図1のデコーダが4つのエラーの位置を決定するときに行なう動作のフローチャートである。
好ましい実施例の説明
ここで説明する加減乗除の数学演算は、GF(22m)にわたってのガロア体の演算である。
次に図1を参照すると、デコーダ10はシンドローム発生器12を含み、これは、従来の態様でエラーシンドロームの関連する組を生成するために動作する。もしシンドロームがすべてゼロであれば、シンドローム発生器12はコードワードにエラーはないと判断する。そうでなければ、シンドローム発生器はシンドロームをエラーロケータ多項式発生器14に送り、これは従来の態様でシンドロームから次数「e」のエラーロケータ多項式を生成する。ここでeはコードワード内のエラーの数である。エラーロケータ多項式発生器14は次にエラーロケータ多項式をエラーロケータプロセッサ16に送り、これはエラーロケータ多項式の解、すなわちエラー位置を決定するための適切な処理を選択しかつ実施する。図1は、これらの処理をいくつかのブロックまたはプロセッサとして描いている。つまり、1つのエラー位置を決定するためのプロセッサ18、2つのエラー位置を決定するためのプロセッサ20、3つのエラー位置を決定するためのプロセッサ22、4つのエラー位置を決定するためのプロセッサ24、および4つより多くのエラー位置を決定するためのプロセッサ26である。
2つ、3つ、および4つのエラープロセッサ20、22および24は相互接続されている。以下に説明するように、エラーロケータプロセッサ16は対応するエラーロケータ多項式を最終的に関連する二次方程式の組に変換することによって3つおよび4つのエラー位置を決定するためにかかる時間を減ずる。そのために、4つのエラープロセッサ26は3つのエラープロセッサ24および2つのエラープロセッサ22の両者を利用する。同様に、3つのエラープロセッサ24は2つのエラープロセッサ22を利用する。これらの処理は、別個の専用プロセッサ内で起こっているように描かれているが、1つまたは2つ以上の多目的プロセッサ内で行なわれてもよい。
エラーロケータプロセッサ16は、従来の態様で1つおよび2つのエラーの位置を決定する。これは、ファンデルホルストおよびバーガーによって説明される方法によって3つのエラーの位置を決定する。しかしながら、これは、ガロア体要素の立方根を決定する必要なステップを行なうために発明の回路を使用する。この回路および3つのエラーの位置を決定するための方法が、図2および図3を参照し以下に説明される。
エラーロケータプロセッサ16は、図4を参照して以下に説明される独特の処理を用いて4つのエラーの位置を決定する。この処理を説明する前に、2つのエラー位置処理および3つのエラー位置処理がそれぞれA節およびB節で説明される。
A.2つのエラー位置の決定
もしコードワードが2つのエラーを含んでいたならば、エラーロケータ多項式の形は、
σ(x)=σ2x2+σ1x+σ0
[1]
となる。この多項式の解を求めるために、このシステムは多項式をゼロに等しいとおく。
σ(x)=σ2x2+σ1x+σ0=0
[2]
そしてこの方程式を解x0およびx1について解く。
方程式2を解くためにエラーロケータプロセッサ16はこの方程式の形を変換する。
y2+y+C=0
[3]
変数を、
と変えることによって、方程式2は、
となる。次に、これを
で除することによって、このシステムは次の方程式を生成する。
したがって、方程式3のCは
である。
方程式5の解がGF(22m)内に存在するためには、方程式の両辺の「トレース」は同じでなくてはならない。トレースは、
と定義される。
トレース(0)は0に等しく、したがって、解がガロア体内に存在するためには、
である。項の合計のトレースは、個々の項のトレースの合計に等しい。GF(22m)においては、トレース(y2)=トレース(y)であり、これらの和はガロア体和法を用いると、ゼロである。したがって、方程式5はもしトレース(C)=0ならばGF(22m)内に解を有する。
方程式5の一般解は、2m−1個の「基底解」の線形結合である。基底解とは、ガロア体の「基底要素」C1,C2・・・C2m-1の1つをCとする方程式3の解である。基底要素とは、線形結合させると体のすべての他の要素を生成することができる体の要素である。これらの要素は、たとえば、各々が2m−1個の0と1つの1とを含む、すなわちαi=000・・・1からαj=100・・・00である2m−1個の要素の組であってもよい。このような体においては、C=00110・・・0は基底要素00100・・・0と00010・・・0との線形結合である。方程式5の一般解は、合計すると
を生成する基底要素に対応する基底解の線形結合である。
生成元多項式x4+x+1で定義されるGF(24)においては、ゼロのトレースを有する各要素αiはまたその最も重要なビットとしてゼロを有する。したがって、この体内の問題のCは基底要素α0=0001、α1=0010およびα2=0100の結合である。対応する基底解は、
(α5)2+α5=α0 ここでy0=α5
(α9)2+α9=α1 ここでy0=α9
(α3)2+α3=α2 ここでy0=α3
であり、もう1つの基底解の組は、
(α10)2+α10=α0 ここでy1=α10
(α7)2+α7=α1 ここでy1=α7
(α14)2+α14=α2 ここでy1=α14
である。このガロア体内では、たとえば、Cがα8=0101に等しい方程式3の解は、Cを
C=α0+α2=0001+0100
に分解し、基底解の対応する組を合計し、たとえば、
y0=α5+α3=α11
として第1の解を生成し、第2の解を、
y1=y0+α0
と決定することによって決定される。次に、このシステムは二次エラーロケータ多項式の解を、
として決定する。
B.3つのエラー位置の決定
3つのエラーに関連するエラーロケータ多項式の形は、
σ(x)=σ3x3+σ2x2+σ1x+σ0
[8]
である。解を求めるために、このシステムは、多項式をゼロに等しいとおく。
σ(x)=σ3x3+σ2x2+σ1x+σ0=0
[9]
そしてこの方程式の形を変換して、
y3+ay+b=0
とする。このために、システムは変数を変え、
として、方程式9は、
となる。次にシステムは方程式10の項を展開して、
とし、同類項をまとめて、
を生成する。GF(22m)においては、同一項の合計はゼロに等しいので、方程式は、
となる。このシステムは方程式12をσ3で除し、次の形の方程式を生成する。
y3+ay+b=0
[13]
ここで
もしa≠0ならば、システムは変数を変え、
とし、方程式13は、
となる。次に方程式15を展開し同類項をまとめて、
を生成する。このシステムは次に方程式16をz3で乗じて、
(z3)2+bz3+a=0,
[17]
を生成し、この式は、変数z3を有する二次方程式である。次に方程式17はA節で説明した2つのエラー方法を用いて解くことができる。
一旦1つの解z03が決定されると、このシステムは以下に図2および図3を参照して説明される回路を用いて立方根z0を求める。mが偶数である限り、方程式17の第2の解z1は、
であり、mは偶数であるので22m−1は3で割り切れるので、指数
は常に整数である。方程式17の第3の解は、
z2=z1+z0
である。このシステムは次にこれらの解をyについて式に代入し、代入の結果を個々に
に加えて、三次エラーロケータ多項式の解x0、x1およびx2を生成する。
もしa=0ならば、方程式13の解はy=b1/3である。bの立方根を求めるために、このシステムは図2に示す回路を使用する。一旦立方根がわかれば、このシステムはy1およびy2を、
と決定し、これらの値から解x0、x1およびx2を決定する。
次に図2および図3を参照すると、回路200は、GF(22m)の要素α3kの立方根を、この要素を
に関連する累乗で乗することによって求める。いずれのGF(22m)の要素の2L乗も、複数の従来のガロア体乗算器を使用して容易に達成される。
回路200は、恒等式x2-1=(x-1)*(x+1)を利用している。xが2mに等しいと、この恒等式は、22m−1=(2m−1)*(2m+1)となる。因子2m−1または2m+1の1つは3で割り切れるが、両方の因子が割り切れるわけではない。もしたとえば、m=4であれば、因子2m−1は3で割り切れ、2m+1は割り切れない。回路200はまた
という事実も利用している。
回路200を用いて、ガロア体要素α3kは、乗算器202内で、3で割り切れない恒等式の因子に対応する累乗に乗される(ステップ300)。m=4の例では、要素は、2m+1乗に乗される。そして、ルックアップテーブル204を用いて、積
の立方根
を求める(ステップ302)。可能な積
の立方根についてしかエントリを持たないテーブルは、比較的小さい。GF(28)の例では、テーブルは5つのエントリしか持たない。
乗算器202はまた、要素α3kを
に対応する累乗で乗し(ステップ304)、その結果は、ルックアップテーブル204によって生成された立方根で、GF乗算器206内で乗される(ステップ306)。
ステップ308において、このシステムは、この積を
乗し、立方根αkを生成する。
図4は、GF(28)、すなわちm=4についての回路200を示している。α3kを2m+1乗するために、この回路は、GF乗算器201内で、まず要素を2mまたは24=16乗する。次に、GF乗算器203内で、積α3k(16)=α48kを要素α3kで乗して、積
を生成する。この積は、5つの要素のルックアップテーブル204に入るために使用される。
α0→α0
α51→α17
α102→α34
α153→α51
α204→α68
これによってα17kが生成される。
GF乗算器207および209を用いて、要素α3kは
乗される。GF乗算器207はまず要素を22または4乗し、GF乗算器209は積α3k(4)=α12kを要素α3kで乗し、積α15kを生成する。
GF乗算器206は次に2つの積を乗するα17k*α15k=α32k。この結果は次に乗算器210内で
乗され、立方根、αkを生成する。
回路200は、そこに与えられたすべての要素に対して結果を生成する。しかしながら、ガロア体のすべての要素に対する立方根が必ずしもあるわけではない。したがって、このシステムは結果をテストして(ステップ310)、その結果が実際の立方根であるかどうかを判断せねばならない。したがってこのシステムは、結果をそれ自身で2回乗し、その積が回路に与えられた要素と等しいかどうかを判断する(ステップ312)。もし等しければ、立方根は正確であり、エラー位置が決定できる(ステップ314)。しかしながらもし積が要素に等しくなければ、システムはエラー位置が見つからないと判断する(ステップ316)。そしてシステムはエラー位置を探す処理を終了する。
C.4つのエラー位置の決定
4つのエラーに関連するエラーロケータ多項式の形は、
σ(x)=σ4x4+σ3x3+σ2x2+σ1x+σ0
[18]
である。解を求めるため、システムはこの多項式をゼロに等しいとおく。
σ(x)=σ4x4+σ3x3+σ2x2+σ1x+σ0=0
[19]
そしてこの方程式の形を変換し、
y4+dy2+ey+h=0
とする。特定的には、ここで図5を参照すると、システムはステップ500において変数を変える。
そして方程式19は
γ(y)=σ4(y+r)4+σ3(y+r)3+σ2(y+r)2+σ1(y+r)+σ0=0
[20]
となる。ステップ502においてこのシステムは項を展開して、
γ(y)=σ4(y4+r4)+σ3(y3+y2r+yr2+r3)+σ2(y2+r2)+σ1(y+r)+σ0=0
とし、同類項をまとめて、
γ(y)=σ4y4+σ3y3+(σ3r+σ2)y2+(σ3r2+σ1)y+σ4r4+σ3r3+σ2r2+σ1r+σ0=0
[21]
を生成する。次に、ステップ504において、このシステムはrに対して
を代入し、ここで
であるので、線形項の係数はゼロである。したがって方程式21は、
となり、ここで「s」は方程式21の定数項である。
この方程式を直接解くのではなくこのシステムはステップ506において、
の解を求める。
したがって、このシステムは、
または、
θθ(y)=y4+θ2y2+θ1y+θ0=0
[25]
ここで
を解く。ステップ508においてこのシステムはまず方程式25を因数分解して、
θ(y)=(y2+t*y+u)*(y2+v*y+w)=0
[26]
とする。ここで方程式25は因数分解できるものと仮定しているが、これはエラーロケータ多項式の解がGF(22m)内に存在するとするならば妥当な仮定である。
このシステムは方程式26の項を展開して、
θ(y)=y4+(t+v)y3+(t*v+u+w)y2+(t*w+v*u)y+u*w=0
[27]
とし、この方程式の係数を方程式25の係数に等しいものとおく(ステップ510)。
t+v=0
t*v+u+w=θ2
t*w+v*u=θ1
u*w=θ0
したがって、
t=v
t2+(u+w)=θ2
t*(w+u)=θ1
u*w=θ0
ステップ512において、このシステムは次に唯一の未知数「t」を持つ方程式を決定する。θ2、θ1およびθ0はエラーロケータ多項式の係数の組合せであるので、既知であることを思い出されたい。したがって、このシステムは
とおき、これをθ2についての式に代入し、かつtで乗することによって、方程式
t3+θ2t+θ1=0
[28]
を生成する。
この結果は、上のB節で説明した演算を用いて解くことができる三次多項式である(ステップ514)。特定的には、このシステムは変数を変え、
そして方程式28は、
となる。項を展開しかつまとめて、
かつz3で乗することによって、このシステムは、変数z3を持つ二次方程式である方程式(z3)2+θ1z3+a3=0を生成する。
A節の方法を用いて、このシステムは方程式29の解を求める。
このシステムはこうして変数を変え、
z3=θ1g
[30]
とし、そして二次方程式は、
θ1 2g2+θ1 2g+a3=0
[31]
または
となる。もしトレース
ならば、方程式31の解はGF(22m)内に存在する。解が存在すると仮定すると、これらは、
を基底要素の線形結合に分解し、基底要素を対応する基底解と関連付けることによって、決定される。
一旦解が決定されると、システムはそれらのうち1つをたとえばg0をz3について式30に代入し、図2の回路を用いてz3の立方根z0を決定する。このシステムは次に式
のzにz0を代入して、これからt0を決定する。
wおよびuを決定するために、このシステムはステップ516において、値t0および式
t2+(u+w)=θ2および
u*w=θ0
を用いて、解としてuおよびwを有する二次方程式33を生成する。
(p+u)*(p+w)=
p2+(u+w)*p+(u*w)=
p2+(θ2+t0 2)*p+θ0=0,
[33]
このシステムは次に、A節の方法を用いて方程式33の解を決定する。次にステップ518においてこれらの解p0およびp1を方程式26の因数に代入して、二次方程式を生成する。
y2+t0 *y+p0=0
および
[34]
y2+t0 *y+p1=0,
そして、ステップ520においてA節の方法を用いて解y0、y1およびy2、y3について解く。方程式33の解y0、y1、y2およびy3はθ(y)の解であり、1/y0、1/y1、1/y2および1/y3はγ(y)の解である。次にこのシステムはステップ522において1/y0、・・・1/y3を式x=y+rに代入し、四次エラーロケータ多項式の解を決定する。最後に、このシステムはステップ524において、エラーロケータ多項式の解をコードワード内の位置と関連付ける。
この四次エラーロケータ多項式の解を決定する直接的方法は、チェンサーチを行なったりまたはm×mのマトリックスを操作したりするよりも迅速である。さらに、この方法においては、他の先行する既知のシステムにおいて使用される大きなルックアップテーブルが必要ない。
Claims (6)
- エラーロケータ多項式の解を求めることで、コードワードの4つのエラー位置を決定するエラーロケータプロセッサを用いて、リードソロモン符号またはBCH符号の前記コードワード内の4つのエラーの位置を決定する方法であって、
前記エラーロケータプロセッサは、
2つのエラー位置を決定するために2次元多項式を解くように構成された2エラープロセッサと、
3つのエラー位置を決定するために3次元多項式を解くように構成された3エラープロセッサと、
4つのエラー位置を決定するために4次元多項式を解くように構成された4エラープロセッサとを含み、
この前記4エラープロセッサにより実行される方法は、
a.四次エラーロケータ多項式
b.多項式を因数分解して、
c.ステップaおよびステップbの多項式の係数を等置するステップと、
e.前記3エラープロセッサを使用して解t 0 について解くステップとを備え、
i.変数を
ii.ステップiの方程式をz3で乗して、変数z3を持つ二次方程式を得るステップと、
iv.z3の立方根z0を決定するステップと、
v.z0の値を式
f.uおよびwを解とする二次方程式を形成するステップと、
h.解をθ(y)に代入して前記2エラープロセッサを使用して以下の1対の二次方程式の解を決定するステップと、
j.四次エラーロケータ多項式の解をコードワード内の位置と関連付けるステップとをさらに備える、コードワード内の4つのエラーの位置を決定する方法。 - エラーロケータ多項式の解を求めることで、コードワードの4つのエラー位置を決定するエラーロケータプロセッサを用いて、リードソロモン符号またはBCH符号の前記コードワード内の4つのエラーの位置を決定する方法であって、
前記エラーロケータプロセッサは、
2つのエラー位置を決定するために2次元多項式を解くように構成された2エラープロセッサと、
4つのエラー位置を決定するために4次元多項式を解くように構成された4エラープロセッサとを含み、
この前記4エラープロセッサにより実行される方法は、
a.四次エラーロケータ多項式
b.多項式を、因数分解して
エラーロケータ多項式をθ(y)に変換するステップは、
i.変数をx=y+rここで
ii.
iii.
c.ステップaおよびステップbの多項式の係数を等置するステップと、
e.前記3エラープロセッサを使用して解t 0 について解くステップとを備え、
f.uおよびwを解とする二次方程式を形成するステップと、
h.解をθ(y)に代入して前記2エラープロセッサを使用して以下の1対の二次方程式の解を決定するステップと、
j.四次エラーロケータ多項式の解をコードワード内の位置と関連付けるステップとをさらに備える、コードワード内の4つのエラーの位置を決定する方法。 - エラーロケータ多項式の解を求めることで、コードワードの4つのエラー位置を決定するエラーロケータプロセッサを用いて、リードソロモン符号またはBCH符号のコードワード内の4つのエラーの位置を決定する方法であって、
前記エラーロケータプロセッサは、
2つのエラー位置を決定するために2次元多項式を解くように構成された2エラープロセッサと、
4つのエラー位置を決定するために4次元多項式を解くように構成された4エラープロセッサとを含み、
この前記4エラープロセッサにより実行される方法は、
a.四次エラーロケータ多項式
b.多項式を、因数分解して
c.t、u、v、およびwの値を決定するステップとを備え、
t、u、v、およびwの値を決定するステップは、
i.ステップaおよびステップbの多項式の係数を等置するステップと、
a.変数を
b.ステップaの方程式をz3で乗してz3を変数とする二次方程式を得るステップと、
d.z3の立方根z0を決定するステップと、
e.z0の値を式
iv.uおよびwを解とする二次方程式を形成するステップと、
d.値t、u、v、およびwをθ(y)に代入し、前記2エラープロセッサを使用して、以下の1対の二次方程式の解を決定するステップと、
f.四次エラーロケータ多項式の解をコードワード内の位置と関連付けるステップとを含む、コードワード内の4つのエラーの位置を決定する方法。 - エラーロケータ多項式の解を求めることで、コードワードの4つのエラー位置を決定するエラーロケータプロセッサを用いて、リードソロモン符号またはBCH符号のコードワード内の4つのエラーの位置を決定する方法であって、
前記エラーロケータプロセッサは、
2つのエラー位置を決定するために2次元多項式を解くように構成された2エラープロセッサと、
4つのエラー位置を決定するために4次元多項式を解くように構成された4エラープロセッサとを含み、
この前記4エラープロセッサにより実行される方法は、
a.四次エラーロケータ多項式
b.多項式を、因数分解して
エラーロケータ多項式をθ(y)に変換するステップは、
i.変数をx=y+r、ここで
ii.
iii.展開すると、
c.t、u、v、およびwの値を決定するステップと、
d.値t、u、v、およびwをθ(y)に代入し、前記2エラープロセッサを使用して、以下の1対の二次方程式の解を決定するステップと、
f.四次エラーロケータ多項式の解をコードワード内の位置と関連付けるステップとをさらに備える、コードワード内の4つのエラーの位置を決定する方法。 - リードソロモン符号またはBCH符号のコードワード内の4つのエラーの位置を決定するデコーダであって、
前記コードワードと関連するエラーシンドロームの組を生成するシンドローム発生器と、
前記エラーシンドロームからエラーロケータ多項式を生成するエラーロケータ多項式発生器と、
前記エラーロケータ多項式の解を求めることで、前記コードワードのエラー位置を決定するエラーロケータプロセッサとを備え、
前記エラーロケータプロセッサは、
2つのエラー位置を決定するために2次元多項式を解くように構成された2エラープロセッサと、
3つのエラー位置を決定するために3次元多項式を解くように構成された3エラープロセッサと、
4つのエラー位置を決定するために4次元多項式を解くように構成された4エラープロセッサとを含み、前記4エラープロセッサは、前記エラーロケータ多項式発生器が4次のエラーロケータ多項式を生成した場合に、
a)四次エラーロケータ多項式
b)多項式を因数分解して、
c)前記ステップaおよびbで得られた多項式の係数を以下のように等置し、
e)前記3エラープロセッサを使用して解t0について解き、
i.変数を
ii.iの方程式をz 3 で乗して、変数z 3 を持つ二次方程式を得て、
iv.z 3 の立方根z 0 を決定し、
v.z 0 の値を式
f)uおよびwを解とする以下の二次方程式を形成し、
h)前記ステップgでの解を
に代入して以下の1対の二次方程式の解を決定し、
j)前記四次エラーロケータ多項式の解をコードワード内の位置と関連付ける、デコーダ。 - リードソロモン符号またはBCH符号のコードワード内の4つのエラーの位置を決定するデコーダであって、
前記コードワードと関連するエラーシンドロームの組を生成するシンドローム発生器と、
前記エラーシンドロームからエラーロケータ多項式を生成するエラーロケータ多項式発生器と、
前記エラーロケータ多項式の解を求めることで、前記コードワードのエラー位置を決定するエラーロケータプロセッサとを備え、
前記エラーロケータプロセッサは、
2つのエラー位置を決定するために2次元多項式を解くように構成された2エラープロセッサと、
4つのエラー位置を決定するために4次元多項式を解くように構成された4エラープロセッサとを含み、前記4エラープロセッサは、前記エラーロケータ多項式発生器が4次のエラーロケータ多項式を生成した場合に、
a)四次エラーロケータ多項式
b)多項式を、因数分解して
c)t、u、v、およびwの値を決定し、
t、u、v、およびwの値を決定するにあたり、
i.ステップaおよびステップbの多項式の係数を等置し、
a.変数を
b.ステップaの方程式をz 3 で乗してz 3 を変数とする二次方程式を得て、
d.z 3 の立方根z 0 を決定し、
e.z 0 の値を式
iv.uおよびwを解とする二次方程式を形成し、
d)値t、u、v、およびwをθ(y)に代入し、前記2エラープロセッサを使用して、以下の1対の二次方程式の解を決定し、
f)四次エラーロケータ多項式の解をコードワード内の位置と関連付け、コードワード内の4つのエラーの位置を決定する、デコーダ。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/580,351 | 1995-12-28 | ||
US08/580,351 US5710782A (en) | 1995-12-28 | 1995-12-28 | System for correction of three and four errors |
PCT/US1996/020547 WO1997024813A1 (en) | 1995-12-28 | 1996-12-18 | Improved system for correction of three and four errors |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11501795A JPH11501795A (ja) | 1999-02-09 |
JP3830527B2 true JP3830527B2 (ja) | 2006-10-04 |
Family
ID=24320729
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP52450797A Expired - Fee Related JP3830527B2 (ja) | 1995-12-28 | 1996-12-18 | 3つおよび4つのエラーを訂正するための改良されたシステム |
Country Status (8)
Country | Link |
---|---|
US (1) | US5710782A (ja) |
EP (1) | EP0830742A4 (ja) |
JP (1) | JP3830527B2 (ja) |
KR (1) | KR19980702551A (ja) |
CN (1) | CN1176714A (ja) |
AU (2) | AU7681696A (ja) |
CA (1) | CA2213293A1 (ja) |
WO (2) | WO1997024812A1 (ja) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6199188B1 (en) * | 1997-10-07 | 2001-03-06 | Quantum Corporation | System for finding roots of degree three and degree four error locator polynomials over GF(2M) |
US5978956A (en) * | 1997-12-03 | 1999-11-02 | Quantum Corporation | Five-error correction system |
US6343367B1 (en) * | 1999-03-29 | 2002-01-29 | Maxtor Corporation | Error correction system for five or more errors |
US7006530B2 (en) * | 2000-12-22 | 2006-02-28 | Wi-Lan, Inc. | Method and system for adaptively obtaining bandwidth allocation requests |
US7962836B1 (en) * | 2000-01-06 | 2011-06-14 | Supertalent Electronics, Inc. | Electronic data flash card with bose, ray-chaudhuri, hocquenghem (BCH) error detection/correction |
US6671850B1 (en) | 2000-05-01 | 2003-12-30 | International Business Machines Corporation | On-the-fly algebraic error correction system and method for reducing error location search |
US6983414B1 (en) | 2001-03-30 | 2006-01-03 | Cisco Technology, Inc. | Error insertion circuit for SONET forward error correction |
US7003715B1 (en) * | 2001-03-30 | 2006-02-21 | Cisco Technology, Inc. | Galois field multiply accumulator |
US7447982B1 (en) | 2001-03-30 | 2008-11-04 | Cisco Technology, Inc. | BCH forward error correction decoder |
US7124064B1 (en) | 2001-03-30 | 2006-10-17 | Cisco Technology, Inc. | Automatic generation of hardware description language code for complex polynomial functions |
US6792569B2 (en) | 2001-04-24 | 2004-09-14 | International Business Machines Corporation | Root solver and associated method for solving finite field polynomial equations |
CN1561005B (zh) * | 2004-02-20 | 2010-12-08 | 汇智系统股份有限公司 | 快速纠双错bch码译码器 |
JP4891704B2 (ja) * | 2006-08-28 | 2012-03-07 | 株式会社東芝 | 半導体記憶装置 |
JP5259343B2 (ja) * | 2008-10-31 | 2013-08-07 | 株式会社東芝 | メモリ装置 |
US8453038B2 (en) * | 2009-06-30 | 2013-05-28 | Apple Inc. | Chien search using multiple basis representation |
US9804828B2 (en) | 2014-11-24 | 2017-10-31 | Apple Inc. | Cubic root of a galois field element |
US9473176B2 (en) | 2014-11-27 | 2016-10-18 | Apple Inc. | Implementation of log and inverse operation in a Galois Field |
DE102015118668B4 (de) | 2015-10-30 | 2020-06-04 | Infineon Technologies Ag | Fehlerkorrektur |
CN112468290B (zh) * | 2020-10-30 | 2021-12-10 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和用于数据处理的装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4099160A (en) * | 1976-07-15 | 1978-07-04 | International Business Machines Corporation | Error location apparatus and methods |
US4567594A (en) * | 1983-06-07 | 1986-01-28 | Burroughs Corporation | Reed-Solomon error detecting and correcting system employing pipelined processors |
US4839896A (en) * | 1987-02-10 | 1989-06-13 | Data Systems Technology Corp. | Fast remainder decoding for a Reed-Solomon code |
-
1995
- 1995-12-28 US US08/580,351 patent/US5710782A/en not_active Expired - Lifetime
-
1996
- 1996-11-15 AU AU76816/96A patent/AU7681696A/en not_active Abandoned
- 1996-11-15 WO PCT/US1996/018424 patent/WO1997024812A1/en active Application Filing
- 1996-12-18 EP EP96945001A patent/EP0830742A4/en not_active Withdrawn
- 1996-12-18 JP JP52450797A patent/JP3830527B2/ja not_active Expired - Fee Related
- 1996-12-18 WO PCT/US1996/020547 patent/WO1997024813A1/en not_active Application Discontinuation
- 1996-12-18 KR KR1019970705957A patent/KR19980702551A/ko not_active Application Discontinuation
- 1996-12-18 CN CN96192220A patent/CN1176714A/zh active Pending
- 1996-12-18 CA CA002213293A patent/CA2213293A1/en not_active Abandoned
- 1996-12-18 AU AU13468/97A patent/AU1346897A/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
JPH11501795A (ja) | 1999-02-09 |
US5710782A (en) | 1998-01-20 |
EP0830742A4 (en) | 2003-02-05 |
EP0830742A1 (en) | 1998-03-25 |
AU1346897A (en) | 1997-07-28 |
WO1997024812A1 (en) | 1997-07-10 |
WO1997024813A1 (en) | 1997-07-10 |
KR19980702551A (ko) | 1998-07-15 |
AU7681696A (en) | 1997-07-28 |
CN1176714A (zh) | 1998-03-18 |
CA2213293A1 (en) | 1997-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3830527B2 (ja) | 3つおよび4つのエラーを訂正するための改良されたシステム | |
US6199188B1 (en) | System for finding roots of degree three and degree four error locator polynomials over GF(2M) | |
US6374383B1 (en) | Determining error locations using error correction codes | |
US5999959A (en) | Galois field multiplier | |
KR930005427B1 (ko) | 실시간 bch 에러 정정 코드 디코딩 메카니즘 | |
US5414719A (en) | Operating circuit for galois field | |
US7502989B2 (en) | Even-load software Reed-Solomon decoder | |
US7096409B2 (en) | Reed-solomon decoder and decoding method for errors and erasures decoding | |
US4841300A (en) | Error correction encoder/decoder | |
JP3176171B2 (ja) | 誤り訂正方法及びその装置 | |
US5905740A (en) | Apparatus and method for error correction | |
JP2004032737A (ja) | リード−ソロモン復号器 | |
EP0836285B1 (en) | Reed-Solomon decoder with general-purpose processing unit and dedicated circuits | |
US5761102A (en) | System and method for determining the cube root of an element of a galois field GF(2) | |
US6581180B1 (en) | System and method for performing a Chien search using multiple Galois field elements | |
US5978956A (en) | Five-error correction system | |
US6915478B2 (en) | Method and apparatus for computing Reed-Solomon error magnitudes | |
JP3343857B2 (ja) | 復号装置、演算装置およびこれらの方法 | |
JP3614978B2 (ja) | ガロア体の除算方法および除算装置 | |
US5787100A (en) | Apparatus for determining error evaluator polynomial for use in a Reed-Solomon decoder | |
JP2000295116A (ja) | 誤り修正符号化方法 | |
JP2907138B2 (ja) | 誤り訂正の演算処理方法及び処理回路 | |
JP3223513B2 (ja) | 誤り訂正復号装置 | |
JPH09162753A (ja) | 符号語の復号方式 | |
JP3889988B2 (ja) | エラー訂正回路およびエラー訂正プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050426 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20050725 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20050912 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051025 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20060110 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060407 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060508 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20060601 |
|
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: 20060613 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060712 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |