(57)【特許請求の範囲】
【請求項１】
ランダムアクセス可能なメモリ内の連続するアドレスに格納された第１の符号語と、前記メモリ内の不連続なアドレスに格納された第２の符号語とからなる積符号の誤りを訂正する誤り訂正方法であって、
ランダムアクセスによって前記第２の符号語のイレージャ訂正を行う第１の処理よりも前記第１の符号語へのバーストアクセスによって前記第２の符号語のイレージャ訂正を行う第２の処理の方が処理時間を短縮できるか否かを判定し、その判定の結果に応じて前記第２の処理を実行することを特徴とする誤り訂正方法。
【請求項２】
ランダムアクセス可能なメモリ内の連続するアドレスに格納された第１の符号語と、前記メモリ内の不連続なアドレスに格納された第２の符号語とからなる積符号の誤りを訂正する誤り訂正装置であって、
ランダムアクセスによって前記第２の符号語のイレージャ訂正を行う第１の処理よりも前記第１の符号語へのバーストアクセスによって前記第２の符号語のイレージャ訂正を行う第２の処理の方が処理時間を短縮できるか否かを判定し、その判定の結果に応じて前記第２の処理を実行する誤り訂正手段を有することを特徴とする誤り訂正装置。
【請求項３】
ランダムアクセス可能なメモリ内の連続するアドレスに格納された第１の符号語と、前記メモリ内の不連続なアドレスに格納された第２の符号語とからなる積符号の誤りを訂正する誤り訂正方法であって、
前記第１の符号語へのバーストアクセスによって前記第２の符号語のイレージャ訂正を行う処理を、前記第２の符号語を複数有するグループごとに行うことを特徴とする誤り訂正方法。
【請求項４】
ランダムアクセス可能なメモリ内の連続するアドレスに格納された第１の符号語と、前記メモリ内の不連続なアドレスに格納された第２の符号語とからなる積符号の誤りを訂正する誤り訂正装置であって、
前記第１の符号語へのバーストアクセスによって前記第２の符号語のイレージャ訂正を行う処理を、前記第２の符号語を複数有するグループごとに行う誤り訂正手段を有することを特徴とする誤り訂正装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、ディジタルデータの誤りを訂正する誤り訂正方法および誤り訂正装置に関し、特に、積符号マトリックスにおいて、データメモリのアドレス配列が連続でない符号語に対してイレージャ訂正を行う際の誤り訂正方法および誤り訂正装置に関する。
【０００２】
【従来の技術】
図５は一般の積符号構成の誤り訂正ブロックを示す概略図であり、図６は図５に示す積符号構成のデータを記憶するデータメモリのアドレス配列を説明するための概略図であり、図７は従来例の誤り訂正を行う動作のフローチャートである。
【０００３】
図７のフローチャートを参照して、図５に示すような積符号（図６に示すようなデータメモリ内のアドレス配列を持つ）におけるＣ２符号語の訂正に関して従来例の誤り訂正の動作を説明する。なお、動作説明の準備として、図５に示す積符号を概略する。
【０００４】
積符号は、図５の矢印Ｃ１、Ｃ２で示すように、符号が２次元配列（行、列）になっており、即ち、行の情報データから成るＣ１符号語と、列の情報データから成るＣ２符号語で構成されている。そして、Ｃ２符号語に対してパリティ（任意の適切な誤り訂正符号）が設定されており、Ｃ１符号語（およびＣ２符号語に対するパリティ）に対してパリティが設定されている。この積符号は、パリティを用いる誤り訂正動作において、いずれか１つの方向の符号語（例えば、Ｃ１符号語）の訂正の動作では訂正できない場合でも、他の方向の符号語（例えば、Ｃ２符号語）の訂正の動作で訂正できることもあるので、訂正率を上げることができる配列の符号である。なお、説明の便宜上、Ｃ２符号語は、図６に関連して本発明の実施例において後述するが、データメモリ内のアドレス配列が連続してない方向の符号語と仮定する（したがって、Ｃ１符号語は、データメモリ内のアドレス配列が連続している方向の符号語である）。
【０００５】
図７のフローチャートにおいて、Ｃ２符号語の訂正を開始する（ステップ３０１）。ｉ［処理したＣ２符号語の数の計数（カウント）するための変数］に０を代入する（ステップ３０２）。次に、シンドローム多項式等を用いて、ユークリッド法で誤り位置多項式、誤り値多項式を求める等により、誤り訂正演算を行う（ステップ３０３）。チェーンサーチによって誤り位置および誤り値を求める等により誤り位置、誤り値およびバイト単位の誤りの数（ｘ）を算出する（ステップ３０４）。なお、後のステップでｉがインクレメントされ、その数値が所定値（Ｃ２符号語の数）より小さいときには、ステップ３０３に戻るので、ステップ３０３、ステップ３０４（さらにこれに続くステップ）は、Ｃ２符号語の各符号語に対して順次実行されることとなる。
【０００６】
次に、ｙ［Ｃ２符号語の各々において、訂正した誤りの数をバイト単位で計数（カウント）するための変数］に０を代入する（ステップ３０５）。データメモリに１バイトアクセスし、データメモリ内のデータを１バイト毎に訂正していく（ステップ３０６）。１バイト単位で誤りを訂正する毎に、ｙをインクリメントし（ステップ３０７）、ｙが誤りの数（ｘ）より小さいか否かを判定する（ステップ３０８）。ｙがｘより小さければ、訂正が完了していないので、ステップ３０６に戻って、ステップ３０６、ステップ３０７、ステップ３０８を繰り返す。ステップ３０８において、ｙがｘと等しくなったとき、即ち、１つの符号語における誤りの訂正が完了したとき、ｉをインクレメントする（ステップ３０９）。
【０００７】
次に、ｉがｎ１［積符号を構成する１つのデータマトリックスにおいて訂正を行っている符号語の数、この場合、Ｃ２符号語の数（即ち、１つのＣ１符号語の符号長）］より小さいか否かを判定する（ステップ３１０）。ｉがｎ１より小さいとき、即ち、訂正を行ったＣ２符号語の数がＣ２符号語の全体の数より小さいとき、訂正が完了していないので、ステップ３０３に戻り、次のＣ２符号語の訂正をステップ３０３からステップ３０９を通して実行する。また、ステップ３１０でｉがｎ１と等しくなったとき、訂正が全てのＣ２符号語に関して完了したので、訂正を終了する（ステップ３１１）。
【０００８】
なお、このＣ２符号語に関する訂正は、Ｃ１符号語に関するイレージャ訂正（誤り位置が予め分かっている場合に、演算を簡略化して行う訂正）にも同様に用いられている。その際、データメモリに対するアクセスの方法は共通である。
【０００９】
【発明が解決しようとする課題】
しかしながら、データメモリ内のアドレス配列が連続でない符号語を訂正する場合、バーストエラーが発生した場合でも、データメモリ内の誤りを訂正するため、データメモリにランダムでアクセスすると、データバスを開放する時間等により時間を費やしてしまう。従来では、このようにデータメモリ内の誤りを訂正する際、アクセス時に余分な時間を費やしていた。
【００１０】
したがって、本発明の目的は、メモリアクセスに要する時間を短縮できる誤り訂正方法および誤り訂正装置を提供することにある。
【００１１】
【課題を解決するための手段】
本発明に係る誤り訂正方法は、ランダムアクセス可能なメモリ内の連続するアドレスに格納された第１の符号語と、前記メモリ内の不連続なアドレスに格納された第２の符号語とからなる積符号の誤りを訂正する誤り訂正方法であって、ランダムアクセスによって前記第２の符号語のイレージャ訂正を行う第１の処理よりも前記第１の符号語へのバーストアクセスによって前記第２の符号語のイレージャ訂正を行う第２の処理の方が処理時間を短縮できるか否かを判定し、その判定の結果に応じて前記第２の処理を実行することを特徴とする。
本発明に係る誤り訂正装置は、ランダムアクセス可能なメモリ内の連続するアドレスに格納された第１の符号語と、前記メモリ内の不連続なアドレスに格納された第２の符号語とからなる積符号の誤りを訂正する誤り訂正装置であって、ランダムアクセスによって前記第２の符号語のイレージャ訂正を行う第１の処理よりも前記第１の符号語へのバーストアクセスによって前記第２の符号語のイレージャ訂正を行う第２の処理の方が処理時間を短縮できるか否かを判定し、その判定の結果に応じて前記第２の処理を実行する誤り訂正手段を有することを特徴とする。
本発明に係る他の誤り訂正方法は、ランダムアクセス可能なメモリ内の連続するアドレスに格納された第１の符号語と、前記メモリ内の不連続なアドレスに格納された第２の符号語とからなる積符号の誤りを訂正する誤り訂正方法であって、前記第１の符号語へのバーストアクセスによって前記第２の符号語のイレージャ訂正を行う処理を、前記第２の符号語を複数有するグループごとに行うことを特徴とする。
本発明に係る他の誤り訂正装置は、ランダムアクセス可能なメモリ内の連続するアドレスに格納された第１の符号語と、前記メモリ内の不連続なアドレスに格納された第２の符号語とからなる積符号の誤りを訂正する誤り訂正装置であって、前記第１の符号語へのバーストアクセスによって前記第２の符号語のイレージャ訂正を行う処理を、前記第２の符号語を複数有するグループごとに行う誤り訂正手段を有することを特徴とする。
【００１６】
【実施例】
（実施例１）
図２は本発明の各実施例の回路ブロック図である。図２において、符号２０１はデータメモリを示し、２０２はデータバスを示し、２０３はＥＣＣ（Error Checking and Correcting : 誤り検出訂正）ブロックを示し、ＥＣＣブロック２０３内に、誤り訂正符号化／復号化回路２０４とシンドロームメモリ２０５がある。
【００１７】
本発明の各実施例においては、図５に関連して前述した積符号の誤り訂正を実行するが、積符号のデータを記憶するデータメモリのアドレス配列は図６を参照して後述するような配列であることを前提とするものである。
【００１８】
図６に示すデータメモリのアドレス配列をデータメモリを説明する。図６において、説明の簡略化のために、最初のアドレスを０とする。また、Ｃ１符号語の符号長をｎ１（Ｎ１バイト）とし、Ｃ２符号語の符号長をｎ２（Ｎ２バイト）とする。このとき、Ｃ１符号語の０番目の符号語データがアドレス０から順にＮ１バイト入っており、次に、Ｃ１符号語の１番目の符号語データがアドレスＮ１から順にＮ１バイト入っている。したがって、Ｃ１符号語のｎ番目の符号語データはアドレスｎ×Ｎ１から順にＮ１バイト入っている。
【００１９】
また、Ｃ２符号語の０番目の符号語データはデータメモリのアドレス０、Ｎ１、２×Ｎ１、・・・といったように１バイトずつ、Ｎ２バイトのデータで符号語となり、Ｃ２符号語の１番目の符号語データはデータメモリのアドレス１、Ｎ１＋１、２×Ｎ１＋１、・・・といったように１バイトずつ、Ｎ２バイトのデータで符号語となる。したがって、Ｃ２符号語のｎ番目の符号語データはデータメモリのアドレスｎ、Ｎ１＋ｎ、２Ｎ１＋ｎ、・・・といったように１バイトずつ、Ｎ２バイトのデータで符号語となる。
【００２０】
このように、各実施例では、データメモリのアドレスがＣ１符号語の方向で連続となっており、Ｃ２符号語の方向で連続でない積符号に関するものである。
【００２１】
次に、図１を参照して、本発明の実施例１の誤り訂正の動作を説明する。なお、図１は、Ｃ１符号語（即ち、データメモリのアドレス配列が連続している符号語）の訂正を既に実行した後の、Ｃ２符号語（即ち、データメモリのアドレス配列が連続してない符号語）のイレージャ訂正を行う際のフローチャートを示すものである。
【００２２】
図１のフローチャートにおいて、Ｃ１符号語の訂正は既に行われており、シンドロームが０でない（即ち、訂正できなかった）Ｃ１符号語の行に対応して訂正ポインタが付加されている。そして、訂正ポインタの数Ｆ（ここで、ＦはＣ１符号語に関する符号訂正時に訂正できず、シンドロームが全部０とならなかったＣ１符号語の数である）がＣ２符号語のパリティ数より小さい、もしくは等しいとき（即ち、イレージャ訂正可能であると判断されるとき）、イレージャ訂正を開始する（ステップ１０１）。
【００２３】
ｉ［処理したＣ２符号語の数を計数（カウント）するための変数］に０を代入する（ステップ１０２）。シンドロームメモリ２０５（図２参照）内からシンドロームを出力し、誤り訂正符号化／復号化回路２０４（図２参照）によって、シンドローム多項式等を用いて、誤り位置多項式、誤り値多項式と求める等の誤り訂正演算を行う（ステップ１０３）。次に、チェーンサーチによって誤り位置、誤り値を求める等により誤り位置及び誤り値を算出し、取り出したシンドロームメモリと同じアドレスに誤り位置及び誤り値を入力する（ステップ１０４）。ただし、訂正ポインタがあるのに、誤りが無い場合は、その位置に対応する誤り値多項式の項に０を入力しておく。
【００２４】
次に、ｉをインクレメントし（ステップ１０５）、ｉが訂正するＣ２符号語の数ｎ１（即ち、Ｃ１符号語の符号長）より小さいか否かを判定する（ステップ１０６）。ｉがｎ１より小さければ、Ｃ２符号語の全ての符号語に対してステップ１０３、ステップ１０４の演算や算出がまだ行われていないので、ステップ１０３に戻り、ステップ１０３、１０４、１０５、１０６を繰り返す。
【００２５】
ｉがｎ１に等しくなると、Ｃ２符号語の全ての符号語に関して前述の演算、算出が完了したので、ｙ’［積符号マトリックス全体において、バースト誤り訂正したＣ１符号語の数を計数（カウント）するための変数］に０を代入する（ステップ１０７）。次に、データメモリのアドレスに連続して記憶されているＣ１符号語の符号長は、前述したように、ｎ１（Ｎ１バイト）であり、Ｃ１符号語のパリティ部分の長さをｐ１（Ｐ１バイト）とすると、バースト長（Ｎ１−Ｐ１）バイトのバーストアクセスし、ステップ１０３、１０４において求めた誤り位置及び誤り値を用いてＣ１符号語の１符号語分（１符号語分のうち、パリティ部分を除いた情報データ部分）の訂正を同時に行う（ステップ１０８）。
【００２６】
次に、１符号語分の訂正毎に、ｙ’をインクレメントし（ステップ１０９）、ｙ’が訂正ポインタの数Ｆより小さいか否かを判定する（ステップ１１０）。ｙ’がＦより小さければ、訂正が完了していないので、ステップ１０８に戻って、ステップ１０８、１０９、１１０を繰り返す。そして、ｙ’がＦと等しくなると、訂正が完了したので、訂正を終了する（ステップ１１１）。
【００２７】
今、例えば、ランダムアクセスの実際の処理時間に掛かる時間がＡであり、オーバーヘッドがＢであり、Ｃ１符号語の方向の同位置のエラー数がＫであった場合には、Ｋ×（Ａ＋Ｂ）の時間が掛かる。一方、（Ｎ１−Ｐ１）バイトのバーストアクセスの時間は、（Ｎ１−Ｐ１）×Ａ＋Ｂとなる。したがって、
Ｋ×（Ａ＋Ｂ）＞（Ｎ１−Ｐ１）×Ａ＋Ｂ
という条件になるが、イレージャ訂正時のエラー状態はバーストエラーが多く、Ｋと（Ｎ１−Ｐ１）はほぼ等しいために、上式の条件は必ず成立する。即ち、本発明の実施例１では、訂正の時間を短縮できる。なお、バーストアクセスする際のバースト長は（Ｎ１−Ｐ１）バイトより長くてもよい。
【００２８】
（実施例２）
実施例１では、積符号の内データメモリのアドレス配列が連続でない符号語に対するイレージャ訂正を行う際、例えば、少なくともその符号語の数に対応するバースト長のバーストアクセスによりパリティ部分を除いた情報データ部分（パリティ部分を含めてもよい）の誤り訂正を行う誤り訂正方法に向けられたものであるが、実施例２では、積符号の内データメモリのアドレス配列が連続でない符号語のパリティ（誤り訂正符号）部分の符号化方法に向けられたものである。
【００２９】
実施例２では、図５に示す積符号構成で、図６に示すアドレス配列を持つ符号を図２の回路に基づく動作によって符号化するものである。なお、図５、図６、図２に関しては既に説明してあるので、これらの説明は省略する。
【００３０】
符号化の動作は、図１に示すフローチャートの動作と大部分で共通するので、図１を参照して説明する。符号化を開始する準備動作として、Ｃ２符号語のパリティ部分に対応するＣ１符号語の各符号語に対して訂正ポインタ（訂正ポインタの数をＦとおく）を付加しておく。この状態で、符号化を開始する（ステップ１０１）。
【００３１】
ｉ［処理したＣ２符号語の数を計数（カウント）するための変数］に０を代入する（ステップ１０２）。シンドロームメモリ２０５（図２参照）内からシンドロームを出力し、誤り訂正符号化／復号化回路２０４（図２参照）によって、シンドローム多項式等を用いて、誤り位置多項式、誤り値多項式と求める等の誤り訂正演算を行う（ステップ１０３）。次に、チェーンサーチによって誤り位置、誤り値を求める等により誤り位置及び誤り値を算出し、取り出したシンドロームメモリと同じアドレスに誤り位置及び誤り値を入力する（ステップ１０４）。
【００３２】
次に、ｉをインクラメントし（ステップ１０５）、ｉが訂正するＣ２符号語の数ｎ１（即ち、Ｃ１符号語の符号長）より小さいか否かを判定する（ステップ１０６）。ｉがｎ１より小さければ、Ｃ２符号語の全ての符号語に対してステップ１０３、ステップ１０４の演算や算出がまだ行われていないので、ステップ１０３に戻り、ステップ１０３、１０４、１０５、１０６を繰り返す。
【００３３】
ｉがｎ１に等しくなると、Ｃ２符号語の全ての符号語に関して前述の演算、算出が完了したので、ｙ’［積符号マトリックス全体において、バースト誤り訂正したＣ１符号語の数を計数（カウント）するための変数］に０を代入する（ステップ１０７）。次に、Ｃ１符号語のバースト長Ｎ１バイトのバーストアクセスし、ステップ１０３、１０４において求めた誤り位置及び誤り値を用いてＣ１符号語の１符号語分の符号化を同時に行う（ステップ１０８）。
【００３４】
次に、１符号語分の符号化毎に、ｙ’をインクレメントし（ステップ１０９）、ｙ’が訂正ポインタの数Ｆより小さいか否かを判定する（ステップ１１０）。ｙ’がＦより小さければ、符号化が完了していないので、ステップ１０８に戻って、ステップ１０８、１０９、１１０を繰り返す。そして、ｙ’がＦと等しくなると、符号化が完了したので、符号化を終了する（ステップ１１１）。
【００３５】
なお、この実施例２では、パリティ部のデータに０を挿入して符号語のシンドローム計算を行い、イレージャ訂正によって符号化を行っているが、他の方式で符号化処理を行ってもよい。
【００３６】
実施例１と同様に、ランダムアクセスの実際の処理時間に掛かる時間がＡであり、オーバーヘッドがＢであり、Ｃ１符号語の方向の同位置のエラー数がＫであった場合には、Ｋ×（Ａ＋Ｂ）の時間が掛かる。一方、Ｎ１バイトのバーストアクセスの時間は、Ｎ１×Ａ＋Ｂとなる。したがって、
Ｋ×（Ａ＋Ｂ）＞Ｎ１×Ａ＋Ｂ
という条件になるが、符号化時ＫとＮ１は等しいため、上式の条件は必ず成立する。即ち、本発明の実施例２では、符号化の時間を短縮できる。
【００３７】
（実施例３）実施例１では、積符号の内データメモリのアドレス配列が連続でない符号語に対するイレージャ訂正を行う際、ランダムアクセスよりバーストアクセスの方が時間を短縮できるという前提の下で、例えば、少なくともその符号語の数に対応するバースト長のバーストアクセスにより誤り訂正を行う誤り訂正方法に向けられたものであるが、実施例３では、ランダムアクセスよりバーストアクセスの方が時間を短縮できる場合という一定の条件の下で誤り訂正を行う誤り訂正方法に向けられたものである。
【００３８】
この一定の条件について説明する。Ｃ１符号語に対する訂正ポインタを用い、誤り訂正ブロック内のエラー状態を推測し、ランダムアクセスよりバーストアクセスの方が時間を短縮できるか否かを判定する。例えば、ランダムアクセスの実際の処理時間に掛かる時間がＡであり、オーバーヘッドがＢであり、Ｃ１符号語の方向の同位置のエラー数がＫであった場合には、Ｋ×（Ａ＋Ｂ）の時間が掛かる。一方、Ｎ１バイトのバーストアクセスの時間は、Ｎ１×Ａ＋Ｂとなる。このとき、
Ｋ×（Ａ＋Ｂ）＞Ｎ１×Ａ＋Ｂ
を満たすＫがある場合が条件となる。
【００３９】
実施例３では、図５に示す積符号構成で、図６に示すアドレス配列を持つ符号を図２の回路に基づく動作によって誤り訂正を行うものである。なお、図５、図６、図２に関しては既に説明してあるので、これらの説明は省略する。
【００４０】
また、誤り訂正の動作は、図１に示すフローチャートの動作と実質的に同一であるので、説明は省略するが、誤り訂正開始前に、Ｃ１符号語の訂正は既に行われており、前述の一定の条件を満たすか否かが判定され、条件を満たす場合に、シンドロームが０でない（即ち、訂正できなかった）Ｃ１符号語の行に対応して訂正ポインタが付加される。そして、訂正ポインタの数Ｆ（ここで、ＦはＣ１符号語に関する符号訂正時に訂正できず、シンドロームが全部０とならなかったＣ１符号語の数である）がＣ２符号語のパリティ数より小さい、もしくは等しいとき（即ち、イレージャ訂正可能であると判断されるとき）、イレージャ訂正を開始する。
【００４１】
（実施例４）
実施例１では、積符号の内データメモリのアドレス配列が連続でない符号語に対するイレージャ訂正を行う際、例えば、少なくともその符号語の全体の数に対応するバースト長のバーストアクセスにより誤り訂正を行う誤り訂正方法に向けられたものであるが、実施例４では、符号語の全体の数に対応するバースト長のバーストアクセスを行う代わりに、符号語の全体を同一長さ（即ち、同一バイト数）のグループに分け、グループ分けした長さ単位（バイト数単位）でのバーストアクセスにより誤り訂正を行う誤り訂正方法に向けられたものである。
【００４２】
実施例４では、図５に示す積符号構成で、図６に示すアドレス配列を持つ符号を図２の回路に基づく動作によって誤り訂正を行うものである。なお、図５、図６、図２に関しては既に説明してあるので、これらの説明は省略する。
【００４３】
次に、図３及び図４を参照して、本発明の実施例４の誤り訂正の動作を説明する。なお、図３は、Ｃ１符号語（即ち、データメモリのアドレス配列が連続している符号語）の訂正を既に実行した後の、Ｃ２符号語（即ち、データメモリのアドレス配列が連続してない符号語）のイレージャ訂正を行う際のフローチャートを示すものである。図４は、実施例４の動作の理解を助けるための積符号構成の誤り訂正ブロックを示す概略図である。なお、説明は主に図３に基づいて行うので、図４は適宜参照されたい。
【００４４】
図３のフローチャートにおいて、Ｃ１符号語の訂正は既に行われており、シンドロームが０でない（即ち、訂正できなかった）Ｃ１符号語の行に対応して訂正ポインタが付加されている。そして、訂正ポインタの数Ｆ（ここで、ＦはＣ１符号語に関する符号訂正時に訂正できず、シンドロームが全部０とならなかったＣ１符号語の数である）がＣ２符号語のパリティ数より小さい、もしくは等しいとき（即ち、イレージャ訂正可能であると判断されるとき）、イレージャ訂正を開始する（ステップ２０１）。
【００４５】
ｉ（処理したＣ２符号語の数を計数（カウント）するための変数）に０を代入し、ｚ［積符号マトリック全体において、バースト誤り訂正をしたグループ（Ｃ１符号語を構成するデータのｔバイト分）の数を計数（カウント）するための変数］に０を代入する（ステップ２０２）。なお、ｔはバースト誤りの訂正を行うグループに対応するバイト数を設定した値であり、言い換えると、積符号マトリックス内の符号語グループ中のＣ２符号語の数である。ｙ”［積符号マトリックス中のｔ個のＣ２符号語からなる符号語グループにおいて、バースト誤り訂正をしたグループ（Ｃ１符号語を構成するデータのｔバイト分）の数を計数（カウント）するための変数］に０を代入する（ステップ２０３）。
【００４６】
シンドロームメモリ２０５（図２参照）内からシンドロームを出力し、誤り訂正符号化／復号化回路２０４（図２参照）によって、シンドローム多項式等を用いて、誤り位置多項式、誤り値多項式と求める等の誤り訂正演算を行う（ステップ２０４）。次に、チェーンサーチによって誤り位置、誤り値を求める等により誤り位置及び誤り値を算出し、取り出したシンドロームメモリと同じアドレスに誤り位置及び誤り値を入力する（ステップ２０５）。ただし、訂正ポインタがあるのに、誤りが無い場合は、その位置に対応する誤り値多項式の項に０を入力しておく。
【００４７】
次に、ｉをインクリメントし（ステップ２０６）、ｉが設定値ｔより小さいか否かを判定する（ステップ２０７）。ｉが設定値より小さければ、ステップ２０４に戻り、ステップ２０４〜２０７を繰り返す。当初は、ｉはｔより小さいので、ステップ２０４に戻り、ｉがｔに等しくなるまで、ステップ２０４〜２０７を繰り返すことになる。また、ｉがｔと等しくなったとき、もしくはｔより大きいとき、ｙ”がＦより小さいか否かを判定する（ステップ２０８）。ｙ”がＦより小さいとき、ステップ２１０に進み、ｙ”がＦと等しくなると、ステップ２０９に進む。なお、当初は、ｙ”がＦより小さいので、ステップ２１０に進むことになる。
【００４８】
ステップ２１０において、データメモリにｔバイトのバーストアクセスを行い、Ｃ１符号語のｔバイト分の訂正をまとめて行う。次に、訂正毎に、ｙ”とｚ［積符号マトリックス全体において、バースト誤り訂正をしたグループ（Ｃ１の符号語を構成するデータのｔバイト分）の数を計数（カウント）するための変数］をインクリメントする（ステップ２１１）。
【００４９】
次に、ｙ”がＦより小さいか否かを判定し（ステップ２１２）、ｙ”がＦより小さいときには、ステップ２０４に戻り、ｙ”がＦと等しくなると、ステップ２１３に進む。なお、当初は、ｙ”はＦより小さいのでステップ２０４に戻ることになる。
【００５０】
ステップ２１２からステップ２０４に戻り、以後のステップの処理を行うが、ｉは既にｔより小さくないので、ステップ２０７からステップ２０８に進み、さらに、ステップ２１０、ステップ２１１、ステップ２１２に進むこととなり、ｙ”がＦと等しくなるまで、ステップ２０４〜ステップ２１２の処理を連続して行うこととなる。
【００５１】
ステップ２１２において、ｙ”がＦに等しくなると、ステップ２１３に進み、ｉがｎ１より小さいか否かが判定され、小さいときには、再びステップ２０４に戻り、ｉがｎ１に等しくなると、ステップ２１４に進む。
【００５２】
ステップ２０４に戻った後、以後のステップの処理を行うが、ステップ２０８において、ｙ”がＦと等しいと判定されて（このとき、ｉはｔ＋Ｆである）、ステップ２０９に進む。ステップ２０９では、ｉがｔの整数倍であるか否かが判定され（即ち、ａを自然数であるとするとｉ＝ａｔであるか否かが判定され）、整数倍でないときには、ステップ２０４に戻り、整数倍のときには、ステップ２０３に戻り、ｙ”に再び０を代入する。当初は、ｉは整数倍でないので（ｔはＦより大きな値に設定されているため）、ステップ２０４に戻り、ステップ２０４〜２０９を繰り返し、ステップ２０９でｉが整数倍（厳密にいうと、２以上の整数倍）になったとき（例えば、ｉ＝２ｔとなったとき）、ステップ２０３に戻ることになる。
【００５３】
今までの処理をｉの値によって分けて、要約すると、
（１）０≦ｉ＜ｔのとき、ステップ２０４〜ステップ２０６の処理（Ｃ１符号語の０からｔまでの範囲の誤り位置及び誤り値の算出）のみを行う。
（２）ｔ≦ｉ＜ｔ＋Ｆのとき、ステップ２０４〜ステップ２０９の処理（Ｃ１符号語のｔからｔ＋Ｆまでの範囲の誤り位置及び誤り値の算出、およびＣ１符号語の０からｔまでの範囲の符号語に対する設定値ｔ分バーストアクセスによる誤り訂正）を連続して行う。
（３）ｔ＋Ｆ≦ｉ＜２ｔのとき、ステップ２０４〜２０６の処理（Ｃ１符号語のｔ＋Ｆから２ｔまでの範囲の誤り位置及び誤り値の算出）のみを行う。
【００５４】
前述したように、ステップ２０９でｉがｔの整数倍であると判定されると、ｙ”は０に戻されるので、以後の処理をｉの値によって分けて、要約すると、
（４）２ｔ≦ｉ＜２ｔ＋Ｆのとき、ステップ２０４〜ステップ２０９の処理（Ｃ１符号語の２ｔから２ｔ＋Ｆまでの範囲の誤り位置及び誤り値の算出、およびＣ１符号語のｔから２ｔまでの範囲の符号語に対する設定値ｔ分バーストアクセスによる誤り訂正）を連続して行う。
（５）２ｔ＋Ｆ≦ｉ＜３ｔのとき、ステップ２０４〜２０６の処理（Ｃ１符号語の２ｔ＋Ｆから３ｔまでの範囲の誤り位置及び誤り値の算出）のみを行う。
【００５５】
以後、ステップ２１３でｉがｎ１と等しいと判断されるまで、同様にｉの値によって、ステップ２０４〜ステップ２０９の処理を連続して行うことと、ステップ２０４〜２０６の処理のみを行うことが交互に繰り返される。
【００５６】
ステップ２１３でｉがｎ１と等しくなると、ステップ２１４に進み、ｚがＭ（積符号マトリックス全体において、Ｃ１符号語による符号訂正時に訂正できず、シンドロームが全部０とならなかった符号語中のバースト誤りの訂正を行うグループの数）より小さいか否かを判定する。なお、Ｍ＝（ｎ１／ｔ）×Ｆである。
【００５７】
ｚがＭより小さいとき、ステップ２１０に戻り、ｚがＭに等しくなるまで、ステップ２１０〜２１４を繰り返し、残りの誤り訂正を行い、訂正を終了する（ステップ２１５）。
【００５８】
なお、設定値ｔは、前述したように、訂正ポインタの数より大きな値を選択し、その際、Ｃ１符号語の符号長ｎ１または情報長を割り切れる値に設定することが好ましいが、割り切れない値でもよい。
【００５９】
（実施例５）
実施例４では、誤り訂正方法に向けられたものであるが、実施例５では、実施例４の誤り訂正方法を用いて、積符号の内データメモリのアドレス配列が連続でない符号語のパリティ（誤り訂正符号）部分を符号化する符号化方法に向けられたものである。
【００６０】
実施例５では、図５に示す積符号構成で、図６に示すアドレス配列を持つ符号を図２の回路に基づく動作によって符号化するものである。なお、図５、図６、図２に関しては既に説明してあるので、これらの説明は省略する。
【００６１】
符号化の動作は、図３に示すフローチャートの動作と実質的に同一であるので、詳細な説明は省略する。なお、ステップ２０１、ステップ２１５は、それぞれ、符号化開始、符号化終了と読替えるものとする。
【００６２】
符号化を開始する準備動作として、Ｃ２符号語のパリティ部分に対応するＣ１符号語の各符号語に対して訂正ポインタ（訂正ポインタの数をＦとおく）を付加しておく。この状態で、符号化を開始する（ステップ２０１）。以後、実施例４に関連して説明した処理を行い、符号化を終了する（ステップ２１５）。
【００６３】
【発明の効果】
以上説明したように、本発明によれば、メモリアクセスに要する時間を短縮することができる。
【図面の簡単な説明】
【図１】図１は、本発明の実施例１〜３の誤り訂正方法の動作を示すフローチャートである。
【図２】図２は、本発明の各実施例の誤り訂正回路のブロック図である。
【図３】図３は、本発明の実施例４、５の誤り訂正方法の動作を示すフローチャートである。
【図４】図４は、本発明の実施例４、５の誤り訂正方法の動作を説明するための図である。
【図５】図５は、一般の積符号構成の誤り訂正ブロックを示す概略図である。
【図６】図６は、図５に示す積符号構成のデータを記憶するデータメモリのアドレス配列を説明するための概略図である。
【図７】図７は従来例の誤り訂正を行う動作のフローチャートである。
【符号の説明】
２０１    データメモリ
２０２    バス
２０３    ＥＣＣブロック
２０５    シンドロームメモリ
【図１】
0003728011.tif 000002
【図２】
0003728011.tif 000003
【図３】
0003728011.tif 000004
【図４】
0003728011.tif 000005
【図５】
0003728011.tif 000006
【図６】
0003728011.tif 000007
【図７】
0003728011.tif 000008