JP3728011B2 - 誤り訂正方法および誤り訂正装置 - Google Patents
誤り訂正方法および誤り訂正装置 Download PDFInfo
- Publication number
- JP3728011B2 JP3728011B2 JP11188396A JP11188396A JP3728011B2 JP 3728011 B2 JP3728011 B2 JP 3728011B2 JP 11188396 A JP11188396 A JP 11188396A JP 11188396 A JP11188396 A JP 11188396A JP 3728011 B2 JP3728011 B2 JP 3728011B2
- Authority
- JP
- Japan
- Prior art keywords
- code word
- error
- correction
- code
- error correction
- 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 - Lifetime
Links
Images
Landscapes
- Error Detection And Correction (AREA)
Description
【産業上の利用分野】
本発明は、ディジタルデータの誤りを訂正する誤り訂正方法および誤り訂正装置に関し、特に、積符号マトリックスにおいて、データメモリのアドレス配列が連続でない符号語に対してイレージャ訂正を行う際の誤り訂正方法および誤り訂正装置に関する。
【0002】
【従来の技術】
図5は一般の積符号構成の誤り訂正ブロックを示す概略図であり、図6は図5に示す積符号構成のデータを記憶するデータメモリのアドレス配列を説明するための概略図であり、図7は従来例の誤り訂正を行う動作のフローチャートである。
【0003】
図7のフローチャートを参照して、図5に示すような積符号(図6に示すようなデータメモリ内のアドレス配列を持つ)におけるC2符号語の訂正に関して従来例の誤り訂正の動作を説明する。なお、動作説明の準備として、図5に示す積符号を概略する。
【0004】
積符号は、図5の矢印C1、C2で示すように、符号が2次元配列(行、列)になっており、即ち、行の情報データから成るC1符号語と、列の情報データから成るC2符号語で構成されている。そして、C2符号語に対してパリティ(任意の適切な誤り訂正符号)が設定されており、C1符号語(およびC2符号語に対するパリティ)に対してパリティが設定されている。この積符号は、パリティを用いる誤り訂正動作において、いずれか1つの方向の符号語(例えば、C1符号語)の訂正の動作では訂正できない場合でも、他の方向の符号語(例えば、C2符号語)の訂正の動作で訂正できることもあるので、訂正率を上げることができる配列の符号である。なお、説明の便宜上、C2符号語は、図6に関連して本発明の実施例において後述するが、データメモリ内のアドレス配列が連続してない方向の符号語と仮定する(したがって、C1符号語は、データメモリ内のアドレス配列が連続している方向の符号語である)。
【0005】
図7のフローチャートにおいて、C2符号語の訂正を開始する(ステップ301)。i[処理したC2符号語の数の計数(カウント)するための変数]に0を代入する(ステップ302)。次に、シンドローム多項式等を用いて、ユークリッド法で誤り位置多項式、誤り値多項式を求める等により、誤り訂正演算を行う(ステップ303)。チェーンサーチによって誤り位置および誤り値を求める等により誤り位置、誤り値およびバイト単位の誤りの数(x)を算出する(ステップ304)。なお、後のステップでiがインクレメントされ、その数値が所定値(C2符号語の数)より小さいときには、ステップ303に戻るので、ステップ303、ステップ304(さらにこれに続くステップ)は、C2符号語の各符号語に対して順次実行されることとなる。
【0006】
次に、y[C2符号語の各々において、訂正した誤りの数をバイト単位で計数(カウント)するための変数]に0を代入する(ステップ305)。データメモリに1バイトアクセスし、データメモリ内のデータを1バイト毎に訂正していく(ステップ306)。1バイト単位で誤りを訂正する毎に、yをインクリメントし(ステップ307)、yが誤りの数(x)より小さいか否かを判定する(ステップ308)。yがxより小さければ、訂正が完了していないので、ステップ306に戻って、ステップ306、ステップ307、ステップ308を繰り返す。ステップ308において、yがxと等しくなったとき、即ち、1つの符号語における誤りの訂正が完了したとき、iをインクレメントする(ステップ309)。
【0007】
次に、iがn1[積符号を構成する1つのデータマトリックスにおいて訂正を行っている符号語の数、この場合、C2符号語の数(即ち、1つのC1符号語の符号長)]より小さいか否かを判定する(ステップ310)。iがn1より小さいとき、即ち、訂正を行ったC2符号語の数がC2符号語の全体の数より小さいとき、訂正が完了していないので、ステップ303に戻り、次のC2符号語の訂正をステップ303からステップ309を通して実行する。また、ステップ310でiがn1と等しくなったとき、訂正が全てのC2符号語に関して完了したので、訂正を終了する(ステップ311)。
【0008】
なお、このC2符号語に関する訂正は、C1符号語に関するイレージャ訂正(誤り位置が予め分かっている場合に、演算を簡略化して行う訂正)にも同様に用いられている。その際、データメモリに対するアクセスの方法は共通である。
【0009】
【発明が解決しようとする課題】
しかしながら、データメモリ内のアドレス配列が連続でない符号語を訂正する場合、バーストエラーが発生した場合でも、データメモリ内の誤りを訂正するため、データメモリにランダムでアクセスすると、データバスを開放する時間等により時間を費やしてしまう。従来では、このようにデータメモリ内の誤りを訂正する際、アクセス時に余分な時間を費やしていた。
【0010】
したがって、本発明の目的は、メモリアクセスに要する時間を短縮できる誤り訂正方法および誤り訂正装置を提供することにある。
【0011】
【課題を解決するための手段】
本発明に係る誤り訂正方法は、ランダムアクセス可能なメモリ内の連続するアドレスに格納された第1の符号語と、前記メモリ内の不連続なアドレスに格納された第2の符号語とからなる積符号の誤りを訂正する誤り訂正方法であって、ランダムアクセスによって前記第2の符号語のイレージャ訂正を行う第1の処理よりも前記第1の符号語へのバーストアクセスによって前記第2の符号語のイレージャ訂正を行う第2の処理の方が処理時間を短縮できるか否かを判定し、その判定の結果に応じて前記第2の処理を実行することを特徴とする。
本発明に係る誤り訂正装置は、ランダムアクセス可能なメモリ内の連続するアドレスに格納された第1の符号語と、前記メモリ内の不連続なアドレスに格納された第2の符号語とからなる積符号の誤りを訂正する誤り訂正装置であって、ランダムアクセスによって前記第2の符号語のイレージャ訂正を行う第1の処理よりも前記第1の符号語へのバーストアクセスによって前記第2の符号語のイレージャ訂正を行う第2の処理の方が処理時間を短縮できるか否かを判定し、その判定の結果に応じて前記第2の処理を実行する誤り訂正手段を有することを特徴とする。
本発明に係る他の誤り訂正方法は、ランダムアクセス可能なメモリ内の連続するアドレスに格納された第1の符号語と、前記メモリ内の不連続なアドレスに格納された第2の符号語とからなる積符号の誤りを訂正する誤り訂正方法であって、前記第1の符号語へのバーストアクセスによって前記第2の符号語のイレージャ訂正を行う処理を、前記第2の符号語を複数有するグループごとに行うことを特徴とする。
本発明に係る他の誤り訂正装置は、ランダムアクセス可能なメモリ内の連続するアドレスに格納された第1の符号語と、前記メモリ内の不連続なアドレスに格納された第2の符号語とからなる積符号の誤りを訂正する誤り訂正装置であって、前記第1の符号語へのバーストアクセスによって前記第2の符号語のイレージャ訂正を行う処理を、前記第2の符号語を複数有するグループごとに行う誤り訂正手段を有することを特徴とする。
【0016】
【実施例】
(実施例1)
図2は本発明の各実施例の回路ブロック図である。図2において、符号201はデータメモリを示し、202はデータバスを示し、203はECC(Error Checking and Correcting : 誤り検出訂正)ブロックを示し、ECCブロック203内に、誤り訂正符号化/復号化回路204とシンドロームメモリ205がある。
【0017】
本発明の各実施例においては、図5に関連して前述した積符号の誤り訂正を実行するが、積符号のデータを記憶するデータメモリのアドレス配列は図6を参照して後述するような配列であることを前提とするものである。
【0018】
図6に示すデータメモリのアドレス配列をデータメモリを説明する。図6において、説明の簡略化のために、最初のアドレスを0とする。また、C1符号語の符号長をn1(N1バイト)とし、C2符号語の符号長をn2(N2バイト)とする。このとき、C1符号語の0番目の符号語データがアドレス0から順にN1バイト入っており、次に、C1符号語の1番目の符号語データがアドレスN1から順にN1バイト入っている。したがって、C1符号語のn番目の符号語データはアドレスn×N1から順にN1バイト入っている。
【0019】
また、C2符号語の0番目の符号語データはデータメモリのアドレス0、N1、2×N1、・・・といったように1バイトずつ、N2バイトのデータで符号語となり、C2符号語の1番目の符号語データはデータメモリのアドレス1、N1+1、2×N1+1、・・・といったように1バイトずつ、N2バイトのデータで符号語となる。したがって、C2符号語のn番目の符号語データはデータメモリのアドレスn、N1+n、2N1+n、・・・といったように1バイトずつ、N2バイトのデータで符号語となる。
【0020】
このように、各実施例では、データメモリのアドレスがC1符号語の方向で連続となっており、C2符号語の方向で連続でない積符号に関するものである。
【0021】
次に、図1を参照して、本発明の実施例1の誤り訂正の動作を説明する。なお、図1は、C1符号語(即ち、データメモリのアドレス配列が連続している符号語)の訂正を既に実行した後の、C2符号語(即ち、データメモリのアドレス配列が連続してない符号語)のイレージャ訂正を行う際のフローチャートを示すものである。
【0022】
図1のフローチャートにおいて、C1符号語の訂正は既に行われており、シンドロームが0でない(即ち、訂正できなかった)C1符号語の行に対応して訂正ポインタが付加されている。そして、訂正ポインタの数F(ここで、FはC1符号語に関する符号訂正時に訂正できず、シンドロームが全部0とならなかったC1符号語の数である)がC2符号語のパリティ数より小さい、もしくは等しいとき(即ち、イレージャ訂正可能であると判断されるとき)、イレージャ訂正を開始する(ステップ101)。
【0023】
i[処理したC2符号語の数を計数(カウント)するための変数]に0を代入する(ステップ102)。シンドロームメモリ205(図2参照)内からシンドロームを出力し、誤り訂正符号化/復号化回路204(図2参照)によって、シンドローム多項式等を用いて、誤り位置多項式、誤り値多項式と求める等の誤り訂正演算を行う(ステップ103)。次に、チェーンサーチによって誤り位置、誤り値を求める等により誤り位置及び誤り値を算出し、取り出したシンドロームメモリと同じアドレスに誤り位置及び誤り値を入力する(ステップ104)。ただし、訂正ポインタがあるのに、誤りが無い場合は、その位置に対応する誤り値多項式の項に0を入力しておく。
【0024】
次に、iをインクレメントし(ステップ105)、iが訂正するC2符号語の数n1(即ち、C1符号語の符号長)より小さいか否かを判定する(ステップ106)。iがn1より小さければ、C2符号語の全ての符号語に対してステップ103、ステップ104の演算や算出がまだ行われていないので、ステップ103に戻り、ステップ103、104、105、106を繰り返す。
【0025】
iがn1に等しくなると、C2符号語の全ての符号語に関して前述の演算、算出が完了したので、y’[積符号マトリックス全体において、バースト誤り訂正したC1符号語の数を計数(カウント)するための変数]に0を代入する(ステップ107)。次に、データメモリのアドレスに連続して記憶されているC1符号語の符号長は、前述したように、n1(N1バイト)であり、C1符号語のパリティ部分の長さをp1(P1バイト)とすると、バースト長(N1−P1)バイトのバーストアクセスし、ステップ103、104において求めた誤り位置及び誤り値を用いてC1符号語の1符号語分(1符号語分のうち、パリティ部分を除いた情報データ部分)の訂正を同時に行う(ステップ108)。
【0026】
次に、1符号語分の訂正毎に、y’をインクレメントし(ステップ109)、y’が訂正ポインタの数Fより小さいか否かを判定する(ステップ110)。y’がFより小さければ、訂正が完了していないので、ステップ108に戻って、ステップ108、109、110を繰り返す。そして、y’がFと等しくなると、訂正が完了したので、訂正を終了する(ステップ111)。
【0027】
今、例えば、ランダムアクセスの実際の処理時間に掛かる時間がAであり、オーバーヘッドがBであり、C1符号語の方向の同位置のエラー数がKであった場合には、K×(A+B)の時間が掛かる。一方、(N1−P1)バイトのバーストアクセスの時間は、(N1−P1)×A+Bとなる。したがって、
K×(A+B)>(N1−P1)×A+B
という条件になるが、イレージャ訂正時のエラー状態はバーストエラーが多く、Kと(N1−P1)はほぼ等しいために、上式の条件は必ず成立する。即ち、本発明の実施例1では、訂正の時間を短縮できる。なお、バーストアクセスする際のバースト長は(N1−P1)バイトより長くてもよい。
【0028】
(実施例2)
実施例1では、積符号の内データメモリのアドレス配列が連続でない符号語に対するイレージャ訂正を行う際、例えば、少なくともその符号語の数に対応するバースト長のバーストアクセスによりパリティ部分を除いた情報データ部分(パリティ部分を含めてもよい)の誤り訂正を行う誤り訂正方法に向けられたものであるが、実施例2では、積符号の内データメモリのアドレス配列が連続でない符号語のパリティ(誤り訂正符号)部分の符号化方法に向けられたものである。
【0029】
実施例2では、図5に示す積符号構成で、図6に示すアドレス配列を持つ符号を図2の回路に基づく動作によって符号化するものである。なお、図5、図6、図2に関しては既に説明してあるので、これらの説明は省略する。
【0030】
符号化の動作は、図1に示すフローチャートの動作と大部分で共通するので、図1を参照して説明する。符号化を開始する準備動作として、C2符号語のパリティ部分に対応するC1符号語の各符号語に対して訂正ポインタ(訂正ポインタの数をFとおく)を付加しておく。この状態で、符号化を開始する(ステップ101)。
【0031】
i[処理したC2符号語の数を計数(カウント)するための変数]に0を代入する(ステップ102)。シンドロームメモリ205(図2参照)内からシンドロームを出力し、誤り訂正符号化/復号化回路204(図2参照)によって、シンドローム多項式等を用いて、誤り位置多項式、誤り値多項式と求める等の誤り訂正演算を行う(ステップ103)。次に、チェーンサーチによって誤り位置、誤り値を求める等により誤り位置及び誤り値を算出し、取り出したシンドロームメモリと同じアドレスに誤り位置及び誤り値を入力する(ステップ104)。
【0032】
次に、iをインクラメントし(ステップ105)、iが訂正するC2符号語の数n1(即ち、C1符号語の符号長)より小さいか否かを判定する(ステップ106)。iがn1より小さければ、C2符号語の全ての符号語に対してステップ103、ステップ104の演算や算出がまだ行われていないので、ステップ103に戻り、ステップ103、104、105、106を繰り返す。
【0033】
iがn1に等しくなると、C2符号語の全ての符号語に関して前述の演算、算出が完了したので、y’[積符号マトリックス全体において、バースト誤り訂正したC1符号語の数を計数(カウント)するための変数]に0を代入する(ステップ107)。次に、C1符号語のバースト長N1バイトのバーストアクセスし、ステップ103、104において求めた誤り位置及び誤り値を用いてC1符号語の1符号語分の符号化を同時に行う(ステップ108)。
【0034】
次に、1符号語分の符号化毎に、y’をインクレメントし(ステップ109)、y’が訂正ポインタの数Fより小さいか否かを判定する(ステップ110)。y’がFより小さければ、符号化が完了していないので、ステップ108に戻って、ステップ108、109、110を繰り返す。そして、y’がFと等しくなると、符号化が完了したので、符号化を終了する(ステップ111)。
【0035】
なお、この実施例2では、パリティ部のデータに0を挿入して符号語のシンドローム計算を行い、イレージャ訂正によって符号化を行っているが、他の方式で符号化処理を行ってもよい。
【0036】
実施例1と同様に、ランダムアクセスの実際の処理時間に掛かる時間がAであり、オーバーヘッドがBであり、C1符号語の方向の同位置のエラー数がKであった場合には、K×(A+B)の時間が掛かる。一方、N1バイトのバーストアクセスの時間は、N1×A+Bとなる。したがって、
K×(A+B)>N1×A+B
という条件になるが、符号化時KとN1は等しいため、上式の条件は必ず成立する。即ち、本発明の実施例2では、符号化の時間を短縮できる。
【0037】
(実施例3)実施例1では、積符号の内データメモリのアドレス配列が連続でない符号語に対するイレージャ訂正を行う際、ランダムアクセスよりバーストアクセスの方が時間を短縮できるという前提の下で、例えば、少なくともその符号語の数に対応するバースト長のバーストアクセスにより誤り訂正を行う誤り訂正方法に向けられたものであるが、実施例3では、ランダムアクセスよりバーストアクセスの方が時間を短縮できる場合という一定の条件の下で誤り訂正を行う誤り訂正方法に向けられたものである。
【0038】
この一定の条件について説明する。C1符号語に対する訂正ポインタを用い、誤り訂正ブロック内のエラー状態を推測し、ランダムアクセスよりバーストアクセスの方が時間を短縮できるか否かを判定する。例えば、ランダムアクセスの実際の処理時間に掛かる時間がAであり、オーバーヘッドがBであり、C1符号語の方向の同位置のエラー数がKであった場合には、K×(A+B)の時間が掛かる。一方、N1バイトのバーストアクセスの時間は、N1×A+Bとなる。このとき、
K×(A+B)>N1×A+B
を満たすKがある場合が条件となる。
【0039】
実施例3では、図5に示す積符号構成で、図6に示すアドレス配列を持つ符号を図2の回路に基づく動作によって誤り訂正を行うものである。なお、図5、図6、図2に関しては既に説明してあるので、これらの説明は省略する。
【0040】
また、誤り訂正の動作は、図1に示すフローチャートの動作と実質的に同一であるので、説明は省略するが、誤り訂正開始前に、C1符号語の訂正は既に行われており、前述の一定の条件を満たすか否かが判定され、条件を満たす場合に、シンドロームが0でない(即ち、訂正できなかった)C1符号語の行に対応して訂正ポインタが付加される。そして、訂正ポインタの数F(ここで、FはC1符号語に関する符号訂正時に訂正できず、シンドロームが全部0とならなかったC1符号語の数である)がC2符号語のパリティ数より小さい、もしくは等しいとき(即ち、イレージャ訂正可能であると判断されるとき)、イレージャ訂正を開始する。
【0041】
(実施例4)
実施例1では、積符号の内データメモリのアドレス配列が連続でない符号語に対するイレージャ訂正を行う際、例えば、少なくともその符号語の全体の数に対応するバースト長のバーストアクセスにより誤り訂正を行う誤り訂正方法に向けられたものであるが、実施例4では、符号語の全体の数に対応するバースト長のバーストアクセスを行う代わりに、符号語の全体を同一長さ(即ち、同一バイト数)のグループに分け、グループ分けした長さ単位(バイト数単位)でのバーストアクセスにより誤り訂正を行う誤り訂正方法に向けられたものである。
【0042】
実施例4では、図5に示す積符号構成で、図6に示すアドレス配列を持つ符号を図2の回路に基づく動作によって誤り訂正を行うものである。なお、図5、図6、図2に関しては既に説明してあるので、これらの説明は省略する。
【0043】
次に、図3及び図4を参照して、本発明の実施例4の誤り訂正の動作を説明する。なお、図3は、C1符号語(即ち、データメモリのアドレス配列が連続している符号語)の訂正を既に実行した後の、C2符号語(即ち、データメモリのアドレス配列が連続してない符号語)のイレージャ訂正を行う際のフローチャートを示すものである。図4は、実施例4の動作の理解を助けるための積符号構成の誤り訂正ブロックを示す概略図である。なお、説明は主に図3に基づいて行うので、図4は適宜参照されたい。
【0044】
図3のフローチャートにおいて、C1符号語の訂正は既に行われており、シンドロームが0でない(即ち、訂正できなかった)C1符号語の行に対応して訂正ポインタが付加されている。そして、訂正ポインタの数F(ここで、FはC1符号語に関する符号訂正時に訂正できず、シンドロームが全部0とならなかったC1符号語の数である)がC2符号語のパリティ数より小さい、もしくは等しいとき(即ち、イレージャ訂正可能であると判断されるとき)、イレージャ訂正を開始する(ステップ201)。
【0045】
i(処理したC2符号語の数を計数(カウント)するための変数)に0を代入し、z[積符号マトリック全体において、バースト誤り訂正をしたグループ(C1符号語を構成するデータのtバイト分)の数を計数(カウント)するための変数]に0を代入する(ステップ202)。なお、tはバースト誤りの訂正を行うグループに対応するバイト数を設定した値であり、言い換えると、積符号マトリックス内の符号語グループ中のC2符号語の数である。y”[積符号マトリックス中のt個のC2符号語からなる符号語グループにおいて、バースト誤り訂正をしたグループ(C1符号語を構成するデータのtバイト分)の数を計数(カウント)するための変数]に0を代入する(ステップ203)。
【0046】
シンドロームメモリ205(図2参照)内からシンドロームを出力し、誤り訂正符号化/復号化回路204(図2参照)によって、シンドローム多項式等を用いて、誤り位置多項式、誤り値多項式と求める等の誤り訂正演算を行う(ステップ204)。次に、チェーンサーチによって誤り位置、誤り値を求める等により誤り位置及び誤り値を算出し、取り出したシンドロームメモリと同じアドレスに誤り位置及び誤り値を入力する(ステップ205)。ただし、訂正ポインタがあるのに、誤りが無い場合は、その位置に対応する誤り値多項式の項に0を入力しておく。
【0047】
次に、iをインクリメントし(ステップ206)、iが設定値tより小さいか否かを判定する(ステップ207)。iが設定値より小さければ、ステップ204に戻り、ステップ204〜207を繰り返す。当初は、iはtより小さいので、ステップ204に戻り、iがtに等しくなるまで、ステップ204〜207を繰り返すことになる。また、iがtと等しくなったとき、もしくはtより大きいとき、y”がFより小さいか否かを判定する(ステップ208)。y”がFより小さいとき、ステップ210に進み、y”がFと等しくなると、ステップ209に進む。なお、当初は、y”がFより小さいので、ステップ210に進むことになる。
【0048】
ステップ210において、データメモリにtバイトのバーストアクセスを行い、C1符号語のtバイト分の訂正をまとめて行う。次に、訂正毎に、y”とz[積符号マトリックス全体において、バースト誤り訂正をしたグループ(C1の符号語を構成するデータのtバイト分)の数を計数(カウント)するための変数]をインクリメントする(ステップ211)。
【0049】
次に、y”がFより小さいか否かを判定し(ステップ212)、y”がFより小さいときには、ステップ204に戻り、y”がFと等しくなると、ステップ213に進む。なお、当初は、y”はFより小さいのでステップ204に戻ることになる。
【0050】
ステップ212からステップ204に戻り、以後のステップの処理を行うが、iは既にtより小さくないので、ステップ207からステップ208に進み、さらに、ステップ210、ステップ211、ステップ212に進むこととなり、y”がFと等しくなるまで、ステップ204〜ステップ212の処理を連続して行うこととなる。
【0051】
ステップ212において、y”がFに等しくなると、ステップ213に進み、iがn1より小さいか否かが判定され、小さいときには、再びステップ204に戻り、iがn1に等しくなると、ステップ214に進む。
【0052】
ステップ204に戻った後、以後のステップの処理を行うが、ステップ208において、y”がFと等しいと判定されて(このとき、iはt+Fである)、ステップ209に進む。ステップ209では、iがtの整数倍であるか否かが判定され(即ち、aを自然数であるとするとi=atであるか否かが判定され)、整数倍でないときには、ステップ204に戻り、整数倍のときには、ステップ203に戻り、y”に再び0を代入する。当初は、iは整数倍でないので(tはFより大きな値に設定されているため)、ステップ204に戻り、ステップ204〜209を繰り返し、ステップ209でiが整数倍(厳密にいうと、2以上の整数倍)になったとき(例えば、i=2tとなったとき)、ステップ203に戻ることになる。
【0053】
今までの処理をiの値によって分けて、要約すると、
(1)0≦i<tのとき、ステップ204〜ステップ206の処理(C1符号語の0からtまでの範囲の誤り位置及び誤り値の算出)のみを行う。
(2)t≦i<t+Fのとき、ステップ204〜ステップ209の処理(C1符号語のtからt+Fまでの範囲の誤り位置及び誤り値の算出、およびC1符号語の0からtまでの範囲の符号語に対する設定値t分バーストアクセスによる誤り訂正)を連続して行う。
(3)t+F≦i<2tのとき、ステップ204〜206の処理(C1符号語のt+Fから2tまでの範囲の誤り位置及び誤り値の算出)のみを行う。
【0054】
前述したように、ステップ209でiがtの整数倍であると判定されると、y”は0に戻されるので、以後の処理をiの値によって分けて、要約すると、
(4)2t≦i<2t+Fのとき、ステップ204〜ステップ209の処理(C1符号語の2tから2t+Fまでの範囲の誤り位置及び誤り値の算出、およびC1符号語のtから2tまでの範囲の符号語に対する設定値t分バーストアクセスによる誤り訂正)を連続して行う。
(5)2t+F≦i<3tのとき、ステップ204〜206の処理(C1符号語の2t+Fから3tまでの範囲の誤り位置及び誤り値の算出)のみを行う。
【0055】
以後、ステップ213でiがn1と等しいと判断されるまで、同様にiの値によって、ステップ204〜ステップ209の処理を連続して行うことと、ステップ204〜206の処理のみを行うことが交互に繰り返される。
【0056】
ステップ213でiがn1と等しくなると、ステップ214に進み、zがM(積符号マトリックス全体において、C1符号語による符号訂正時に訂正できず、シンドロームが全部0とならなかった符号語中のバースト誤りの訂正を行うグループの数)より小さいか否かを判定する。なお、M=(n1/t)×Fである。
【0057】
zがMより小さいとき、ステップ210に戻り、zがMに等しくなるまで、ステップ210〜214を繰り返し、残りの誤り訂正を行い、訂正を終了する(ステップ215)。
【0058】
なお、設定値tは、前述したように、訂正ポインタの数より大きな値を選択し、その際、C1符号語の符号長n1または情報長を割り切れる値に設定することが好ましいが、割り切れない値でもよい。
【0059】
(実施例5)
実施例4では、誤り訂正方法に向けられたものであるが、実施例5では、実施例4の誤り訂正方法を用いて、積符号の内データメモリのアドレス配列が連続でない符号語のパリティ(誤り訂正符号)部分を符号化する符号化方法に向けられたものである。
【0060】
実施例5では、図5に示す積符号構成で、図6に示すアドレス配列を持つ符号を図2の回路に基づく動作によって符号化するものである。なお、図5、図6、図2に関しては既に説明してあるので、これらの説明は省略する。
【0061】
符号化の動作は、図3に示すフローチャートの動作と実質的に同一であるので、詳細な説明は省略する。なお、ステップ201、ステップ215は、それぞれ、符号化開始、符号化終了と読替えるものとする。
【0062】
符号化を開始する準備動作として、C2符号語のパリティ部分に対応するC1符号語の各符号語に対して訂正ポインタ(訂正ポインタの数をFとおく)を付加しておく。この状態で、符号化を開始する(ステップ201)。以後、実施例4に関連して説明した処理を行い、符号化を終了する(ステップ215)。
【0063】
【発明の効果】
以上説明したように、本発明によれば、メモリアクセスに要する時間を短縮することができる。
【図面の簡単な説明】
【図1】図1は、本発明の実施例1〜3の誤り訂正方法の動作を示すフローチャートである。
【図2】図2は、本発明の各実施例の誤り訂正回路のブロック図である。
【図3】図3は、本発明の実施例4、5の誤り訂正方法の動作を示すフローチャートである。
【図4】図4は、本発明の実施例4、5の誤り訂正方法の動作を説明するための図である。
【図5】図5は、一般の積符号構成の誤り訂正ブロックを示す概略図である。
【図6】図6は、図5に示す積符号構成のデータを記憶するデータメモリのアドレス配列を説明するための概略図である。
【図7】図7は従来例の誤り訂正を行う動作のフローチャートである。
【符号の説明】
201 データメモリ
202 バス
203 ECCブロック
205 シンドロームメモリ
Claims (4)
- ランダムアクセス可能なメモリ内の連続するアドレスに格納された第1の符号語と、前記メモリ内の不連続なアドレスに格納された第2の符号語とからなる積符号の誤りを訂正する誤り訂正方法であって、
ランダムアクセスによって前記第2の符号語のイレージャ訂正を行う第1の処理よりも前記第1の符号語へのバーストアクセスによって前記第2の符号語のイレージャ訂正を行う第2の処理の方が処理時間を短縮できるか否かを判定し、その判定の結果に応じて前記第2の処理を実行することを特徴とする誤り訂正方法。 - ランダムアクセス可能なメモリ内の連続するアドレスに格納された第1の符号語と、前記メモリ内の不連続なアドレスに格納された第2の符号語とからなる積符号の誤りを訂正する誤り訂正装置であって、
ランダムアクセスによって前記第2の符号語のイレージャ訂正を行う第1の処理よりも前記第1の符号語へのバーストアクセスによって前記第2の符号語のイレージャ訂正を行う第2の処理の方が処理時間を短縮できるか否かを判定し、その判定の結果に応じて前記第2の処理を実行する誤り訂正手段を有することを特徴とする誤り訂正装置。 - ランダムアクセス可能なメモリ内の連続するアドレスに格納された第1の符号語と、前記メモリ内の不連続なアドレスに格納された第2の符号語とからなる積符号の誤りを訂正する誤り訂正方法であって、
前記第1の符号語へのバーストアクセスによって前記第2の符号語のイレージャ訂正を行う処理を、前記第2の符号語を複数有するグループごとに行うことを特徴とする誤り訂正方法。 - ランダムアクセス可能なメモリ内の連続するアドレスに格納された第1の符号語と、前記メモリ内の不連続なアドレスに格納された第2の符号語とからなる積符号の誤りを訂正する誤り訂正装置であって、
前記第1の符号語へのバーストアクセスによって前記第2の符号語のイレージャ訂正を行う処理を、前記第2の符号語を複数有するグループごとに行う誤り訂正手段を有することを特徴とする誤り訂正装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11188396A JP3728011B2 (ja) | 1996-04-09 | 1996-04-09 | 誤り訂正方法および誤り訂正装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11188396A JP3728011B2 (ja) | 1996-04-09 | 1996-04-09 | 誤り訂正方法および誤り訂正装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH09284143A JPH09284143A (ja) | 1997-10-31 |
JP3728011B2 true JP3728011B2 (ja) | 2005-12-21 |
Family
ID=14572547
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP11188396A Expired - Lifetime JP3728011B2 (ja) | 1996-04-09 | 1996-04-09 | 誤り訂正方法および誤り訂正装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3728011B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IN2014CN02865A (ja) * | 2011-11-15 | 2015-07-03 | Intel Corp |
-
1996
- 1996-04-09 JP JP11188396A patent/JP3728011B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH09284143A (ja) | 1997-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4928280A (en) | Fast processor for multi-bit error correction codes | |
US6639865B2 (en) | Memory device, method of accessing the memory device, and reed-solomon decoder including the memory device | |
US7600177B2 (en) | Delta syndrome based iterative Reed-Solomon product code decoder | |
US5712861A (en) | Error correcting method and decoder with improved reliability | |
JP3234130B2 (ja) | 誤り訂正符号復号化方法およびこの方法を用いる回路 | |
US4567594A (en) | Reed-Solomon error detecting and correcting system employing pipelined processors | |
US7586808B2 (en) | Memory device for use in high-speed block pipelined reed-solomon decoder, method of accessing the memory device, and reed-solomon decoder having the memory device | |
US9391641B2 (en) | Syndrome tables for decoding turbo-product codes | |
JP4733403B2 (ja) | 復号器、データ記憶装置およびデータの誤り訂正の方法 | |
JPH10112659A (ja) | 誤り訂正復号装置 | |
JPS632370B2 (ja) | ||
JP3281387B2 (ja) | Crc/edcチェッカシステム | |
JP3502583B2 (ja) | 誤り訂正方法および誤り訂正装置 | |
JP3283122B2 (ja) | 符号訂正方法及び装置 | |
JP3728011B2 (ja) | 誤り訂正方法および誤り訂正装置 | |
CN109756231B (zh) | 循环移位处理装置及方法 | |
US7299387B2 (en) | Address generator for block interleaving | |
US6718505B1 (en) | Method and apparatus for error correction in a process of decoding cross-interleaved Reed-Solomon code (CIRC) | |
CN111384976B (zh) | 稀疏校验矩阵的存储方法和读取方法 | |
KR100561982B1 (ko) | 오류 정정 부호 발생 회로 및 그 방법 | |
JP3813337B2 (ja) | 消失誤り訂正方法とその装置 | |
JP4507443B2 (ja) | インターリーブ方法及びインターリーブ装置 | |
JP2622383B2 (ja) | ロングディスタンスコードの誤り訂正装置 | |
JPS6345922A (ja) | 誤り訂正方法 | |
JPH09331263A (ja) | 誤り訂正方法及び装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050620 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050628 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050826 |
|
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: 20050920 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050930 |
|
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: 20091007 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091007 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101007 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101007 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111007 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111007 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121007 Year of fee payment: 7 |