(57)【特許請求の範囲】
【請求項１】
記録または伝送すべき情報データ列に対して、第１のデータ交錯方法によるデータ交錯処理を実行して、第１のインターリーブ構成の第１のデータ列を生成する手段と、
前記情報データ列に対して、前記第１のデータ交錯方法とは異なる第２のデータ交錯方法によるデータ交錯処理を実行して、第２のインターリーブ構成の第２のデータ列を生成する手段と、
前記第１のデータ列に対応する第１の誤り訂正符号化データ列、及び前記第２のデータ列に対応する第２の誤り訂正符号化データ列のそれぞれを生成する手段と、
前記情報データ列に、前記第１の誤り訂正符号化データ列及び第２の誤り訂正符号化データ列を付加した符号化データ列を生成する手段と、
前記符号化データ列から前記情報データ列を復号化する復号化手段と
を具備したことを特徴とする符号化・復号化装置。
【請求項２】
前記復号化手段は、
前記符号化データ列から前記情報データ列を復号化するときに、前記第１の誤り訂正符号化データ列を使用して誤り訂正処理を実行し、前記誤り訂正処理による誤り訂正が完了しない場合には、前記第２の誤り訂正符号化データ列を使用して誤り訂正処理を実行する手段を有することを特徴とする請求項１に記載の符号化・復号化装置。
【請求項３】
前記復号化手段は、
前記符号化データ列から前記情報データ列を復号化するときに、前記情報データ列に対する第１のデータ交錯方法によるデータ交錯処理で前記第１のデータ列を生成し、
前記第１のデータ列に対して前記第１の誤り訂正符号化データ列を使用して誤り訂正処理を実行し、
前記誤り訂正処理による誤り訂正が完了しない場合には、前記情報データ列に対する第２のデータ交錯方法によるデータ交錯処理で前記第２のデータ列を生成し、
前記第２のデータ列に対して前記第２の誤り訂正符号化データ列を使用して誤り訂正処理を実行する手段を有することを特徴とする請求項１に記載の符号化・復号化装置。
【請求項４】
ディスク記憶媒体上に記録すべきライトデータ列を符号化して符号化データ列を生成する符号化手段と、
前記符号化データ列を前記ディスク記憶媒体上に記録するためのライト手段と、
前記ディスク記憶媒体上から前記符号化データ列を読出すためのリード手段と、
前記リード手段により読出された前記符号化データ列から前記ライトデータ列を復号化するときに、前記符号化データ列に含まれる第１の誤り訂正符号化データ列または第２の誤り訂正符号化データ列を使用して誤り訂正処理を実行する手段を有する復号化手段とを具備し、
前記符号化手段は、
前記ライトデータ列に対して、第１のデータ交錯方法によるデータ交錯処理を実行して、第１のインターリーブ構成の第１のデータ列を生成する手段と、
前記ライトデータ列に対して、前記第１のデータ交錯方法とは異なる第２のデータ交錯方法によるデータ交錯処理を実行して、第２のインターリーブ構成の第２のデータ列を生成する手段と、
前記第１のデータ列に対応する前記第１の誤り訂正符号化データ列、及び前記第２のデータ列に対応する前記第２の誤り訂正符号化データ列のそれぞれを生成する手段と、
前記ライトデータ列に、前記第１の誤り訂正符号化データ列及び第２の誤り訂正符号化データ列を付加した前記符号化データ列を生成する手段と
を有することを特徴とするディスク記憶装置。
【請求項５】
前記復号化手段は、
前記符号化データ列から前記ライトデータ列を復号化するときに、前記第１の誤り訂正符号化データ列を使用して誤り訂正処理を実行し、前記誤り訂正処理による誤り訂正が完了しない場合には、前記第２の誤り訂正符号化データ列を使用して誤り訂正処理を実行する手段を有することを特徴とする請求項４に記載のディスク記憶装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、特に記録または伝送すべきデータ列の誤り訂正を行なうための符号化・復号化方式に関する。
【０００２】
【従来の技術】
従来、例えばハードディスクドライブ（ＨＤＤ）などのディスク記憶装置や、データ通信システムでは、データの信頼性を確保するための誤り訂正機能に必要な符号化・復号化（通信路符号化）技術は、極めて重要な要素の一つである。従って、従来から各種の符号化・復号化方式が開発されたり、提案されている。
【０００３】
符号化とは、ディジタル情報を示す情報データ列（０，１のビット列から構成される）に冗長データ（ＥＣＣデータまたチェックシンボル）を付加した誤り訂正符号（符号化データ列または符号語列）を生成する処理である。また、復号化とは、受信した（入力した）データ列（符号化データ列）から誤り訂正（誤り検出を含む）して、元の情報データ列を推定したり、誤りの有無を出力する処理である。データの誤り形態としては、各ビットごとにランダムに誤りが発生するランダム誤りと、連続的に誤りが発生するバースト誤りとがある。
【０００４】
ここで、例えばＨＤＤにおいては、ランダム誤りとバースト誤りの両方が発生する可能性のある複合誤り通信路が想定される。誤り訂正符号化技術における通信路とは、ＨＤＤではリード／ライトチャネルと呼ぶリード／ライト回路（信号処理回路）及びディスク記憶媒体を含むモデル系を意味する。この複合誤り通信路に採用される誤り訂正方式として、記録データ（情報データ列）であるデータ列に対してデータ交錯処理（インターリーブ処理）を実行し、これにより生成されるインターリーブ構成の情報データ列（これをインターリーブと表記する場合がある）に対してリードソロモン（Ｒｅｅｄ−Ｓｏｌｏｍｏｎ）符号（ＲＳ符号）等のブロック符号であるランダム誤り訂正符号を用いるという方式（便宜的に第１の符号化方式と呼ぶ）がある。また、データを２次元の配列として配置し、その各行、各列に対してそれぞれ符号化を行う符号化方式（積符号）などのように、データを配列し、その配列の２つの方向でチェックシンボルを生成するエラー訂正方式も周知である。ここで、チェックシンボルとは、冗長データである誤り訂正データ（いわゆるＥＣＣデータ）である。以下、チェックシンボル（ＣＳ）を、ＥＣＣデータと同義語として表記する場合がある。
【０００５】
前記の第１の符号化方式は、概念的には図９（Ａ）に示すように、各インターリーブ（ここでは３データ列）のそれぞれにＥＣＣデータ（チェックシンボル）を付加した符号化データ列を生成する。この第１の符号化方式は、比較的簡単な構成の回路で実現できる利点があるが、一つのインターリーブに誤り（エラー）が集中して発生するような場合には訂正不能になる欠点を有する。この欠点を回避するための方式（便宜的に第２の符号化方式と呼ぶ）として、図９（Ｂ）に示すように、インターリーブ当たりの訂正可能エラー数を増大させるために、チェックシンボル数を増大させる方式が考えられるが、エラーの多寡に関わらずエラー訂正処理（復号化処理）に要する時間が増大してしまう。
【０００６】
そこで、図９（Ｃ）に示すように、前記の積符号またはクロスインターリーブ方法を採用した第３の符号化方式が提案されている。この第３の符号化方式は、データ交錯処理により得られる各インターリーブをそれぞれ配列の行として、この行に対してチェックシンボルを生成させつつ、この各列（もしくは、斜め方向など、行とは別の方向）に対してもチェックシンボルを生成する方式である。この第３の方式であれば、前記の第１の方式におけるインターリーブ数を、列数と一致させることによって、第１の方式で訂正できる誤りにたいしては同等の処理速度で復号できる装置の構成が可能となる。しかし、チェックシンボル数については、第１の方式と比較すると、列方向に対するチェックシンボル分だけのチェックシンボル数が増大することになる。従って、記録すべきデータ列に対して、結果的に付加するチェックシンボルの割合が高くなり、符号化効率が悪化することになる。
【０００７】
【発明が解決しようとする課題】
前述したように、バースト誤りとランダム誤りの両方が発生する可能性のある複合誤り通信路が想定されるＨＤＤなどでは、第１から第３の誤り符号方式が採用されている。しかしながら、第１の方式は、特にランダム誤りがひとつのインターリーブに偏って発生するような状況では訂正不能となる。また、第２の方式は、各インターリーブにおける訂正可能な誤り数を増やすと、誤り数が少ない場合でも、その誤り訂正に必要な時間（即ち、復号化処理に要する時間）が増大する問題がある。更に、第３の方式は、積符号やクロスインターリーブのような方式を採用しているため、情報ブロック量に対するチェックシンボル量（ＥＣＣデータ量）の割合が多くなるため、符号化率が悪化するという問題がある。
【０００８】
そこで、本発明の目的は、相対的に少ないチェックシンボル量を使用して符号化率の悪化を抑制し、インターリーブ当たりの誤り訂正の能力範囲内では高速の誤り訂正処理を実行し、かつインターリーブ当たりの誤り訂正の能力範囲を越える誤り訂正能力についても保証することが可能な符号化・復号化方式を提供することにある。
【０００９】
【課題を解決するための手段】
本発明は、異なる複数のデータ交錯方法により、情報データ列から各インターリーブを生成し、かつ各インターリーブに対して各チェックシンボルである誤り訂正符号化データを生成する符号化・復号化方式である。この方式により、情報データ列を復号化するときに、１つのチェックシンボルだけで誤り訂正できる範囲では高速の復号化処理を実現できる。また、１つのチェックシンボルだけで誤り訂正不能となる場合には、各チェックシンボルを交換して誤り訂正処理を実行することにより、誤り訂正能力の範囲を拡大することが可能となる。
【００１０】
本発明の観点に従った符号化・復号化装置は、記録または伝送すべき情報データ列に対して、第１のデータ交錯方法によるデータ交錯処理を実行して、第１のインターリーブ構成の第１のデータ列を生成する手段と、前記情報データ列に対して、前記第１のデータ交錯方法とは異なる第２のデータ交錯方法によるデータ交錯処理を実行して、第２のインターリーブ構成の第２のデータ列を生成する手段と、前記第１のデータ列に対応する第１の誤り訂正符号化データ列、及び前記第２のデータ列に対応する第２の誤り訂正符号化データ列のそれぞれを生成する手段と、前記情報データ列に、前記第１の誤り訂正符号化データ列及び第２の誤り訂正符号化データ列を付加した符号化データ列を生成する手段と、前記符号化データ列から前記情報データ列を復号化する復号化手段とを備えた構成である。
【００１１】
このような本発明の方式により、従来の第１の方式での訂正可能範囲については、同程度の所要時間により復号化できるため、結果的に誤り訂正範囲を制限すれば高速な復号化が可能である。また、チェックシンボル数をそれほど増大させることなく、従来の第１の方式での訂正可能範囲を越える誤り訂正を可能にできるため、符号化率の悪化を招くこと無く、相対的に高速かつ確実な復号化を実現することができる。本発明の方式を適用したＨＤＤなどのディスク記憶装置であれば、ＥＣＣデータ量を其れほど増大させること無く、誤り訂正能力を向上できるため、高記録密度のディスク記憶装置を実現することが可能となる。
【００１２】
【発明の実施の形態】
以下図面を参照して、本発明の実施の形態を説明する。
（システム構成）
図１は、第１の実施形態に関係する符号化・復号化方式のシステム構成を機能的に示す機能ブロック図である。
【００１３】
同実施形態のシステム１は、例えばＨＤＤなどの複合誤り通信路（チャネル２とする）に適用するものであり、ここでは外部システムのバッファメモリ３とチャネル２との情報データ列に対する符号化・復号化処理を実行するシステムを想定する。なお、ＨＤＤに対する適用については、第２の実施形態として後述する。
【００１４】
本システム１は、図１に示すように、エンコーダ１０Ａ，デコーダ１０Ｂの各機能を含むコントロールブロック１０と、外部システムとのデータ通信を行なうためのインターフェース１１，１２，１３と、第１のデータ交錯方法によるインターリーブ処理を実行するための第１のインターリーブ生成ブロック１４と、第２のデータ交錯方法によるインターリーブ処理を実行するための第２のインターリーブ生成ブロック１５と、エラー位置検出ブロック１６と、ＥＣＣバッファメモリ１７とを有する。
【００１５】
コントロールブロック１０は、インターフェース１２を介して外部システムのバッファメモリ３から、処理対象の情報データ列（Ｄ１）を受信する。更に、エンコーダ１０Ａにより、後述する様に、情報データ列Ｄ１に対して符号化処理を実行して得られる符号化データ列（情報データ列にチェックシンボルを付加したデータ列Ｄ４）を、インターフェース１１介して外部システムのチャネル２に送出する。この符号化処理において、コントロールブロック１０は、生成したチェックシンボル（ＥＣＣデータ列Ｄ２，Ｄ３）をＥＣＣバッファ１７に格納する。
【００１６】
一方、コントロールブロック１０は、インターフェース１１を介してチャネル２から復号化処理対象のデータ列（Ｄ４）を受信し、デコーダ１０Ｂにより後述する誤り訂正処理である復号化処理を実行する。コントロールブロック１０は、インターフェース１２を介して復号化した情報データ列Ｄ１をバッファメモリ３に送出する。また、コントロールブロック１０は、インターフェース１３を介して外部システムのＣＰＵ４との間で、符号化・復号化処理に関する制御情報（例えば誤り訂正不能の処理など）の交換を行なう。
（符号化処理）
以下図１と共に、図２から図４及び図５のフローチャートを参照して同実施形態の誤り訂正符号化処理を説明する。
【００１７】
まず、コントロールブロック１０は、インターフェース１２を介して外部システムのバッファメモリ３から、処理対象の情報データ列（Ｄ１）を受信して入力する（ステップＳ１）。ここで、情報データ列（Ｄ１）は、情報ブロック単位として例えば５１２バイトのデータ列（データＤ１〜Ｄ５１２）を想定する。
【００１８】
コントロールブロック１０は、情報データ列Ｄ１に対して、第１のインターリーブ生成ブロック１４により第１のデータ交錯方法によるインターリーブ処理を実行し、かつ第２のインターリーブ生成ブロック１５により第２のデータ交錯方法によるインターリーブ処理を実行する（ステップＳ２）。具体的には、第１のインターリーブ生成ブロック１４は、図２に示すように、インターリーブ数を「３」とした場合に、連続する情報データ列Ｄ１をインターリーブ＃１、インターリーブ＃２、インターリーブ３＃の順で順番に振り分けていく第１のデータ交錯方法を実行する。一方、第２のインターリーブ生成ブロック１５は、図３に示すように、インターリーブ数を「３」とした場合に、連続する情報データ列Ｄ１を３データ毎に区切り、インターリーブ＃１、インターリーブ＃２、インターリーブ３＃に振り分けて、想定される６通りの振り分けかたの組み合わせを順に適応する第２のデータ交錯方法を実行する。
【００１９】
このようなデータ交錯処理により、データ（ビット０または１）Ｄ１〜Ｄ５１２からなる５１２バイトの情報データ列Ｄ１は、第１のデータ交錯方法により、データＤ１，Ｄ４，Ｄ７，…Ｄ５１１からなるインターリーブ（＃１とする）と、データＤ２，Ｄ５，Ｄ８，…Ｄ５１２からなるインターリーブ（＃２）と、データＤ３，Ｄ６，Ｄ９，…Ｄ５１０からなるインターリーブ（＃３）に振り分けられる。また、第２のデータ交錯方法により、データＤ１，Ｄ４，Ｄ８，…Ｄ５１２からなるインターリーブ（＃４とする）と、データＤ２，Ｄ６，Ｄ７，…Ｄ５１１からなるインターリーブ（＃５）と、データＤ３，Ｄ５，Ｄ９，…Ｄ５０８からなるインターリーブ（＃６）に振り分けられる（図４を参照）。
【００２０】
次に、コントロールブロック１０は、エンコーダ１０Ａにより、下記のようなチェックシンボル（ＥＣＣデータ）を生成するエンコード処理を実行する（ステップＳ３）。即ち、インターリーブ（＃１）のデータ列に対して、エンコード処理により、誤り訂正データ列Ｅ１−１，Ｅ１−２，，…Ｅ１−１０からなるチェックシンボルを生成する。なお、チェックシンボルのバイト数は所望のエラー訂正能力により設定される。ここでは、インターリーブ当たり１０バイトのチェックシンボルを生成することを想定している。インターリーブ（＃２）及びインターリーブ（＃３）のデータ列に対してもそれぞれ、誤り訂正データＥ２−１，Ｅ２−２，…Ｅ２−１０からなるチェックシンボル、及び誤り訂正データＥ３−１，Ｅ３−２，…Ｅ３−１０からなるチェックシンボルを生成する。
【００２１】
また、インターリーブ（＃４）のデータ列に対して、エンコード処理により、誤り訂正データ列Ｅ４−１，Ｅ４−２，…Ｅ４−１０からなるチェックシンボルを生成する。さらに、インターリーブ（＃５）及びインターリーブ（＃６）のデータ列に対してもそれぞれ、誤り訂正データＥ５−１，Ｅ５−２，…Ｅ５−１０からなるチェックシンボル、及び誤り訂正データＥ６−１，Ｅ６−２，…Ｅ６−１０からなるチェックシンボルを生成する。
【００２２】
このようなエンコード処理により得られた誤り訂正データＥ１−１，Ｅ１−２，…Ｅ１−１０，Ｅ２−１，Ｅ２−２，…Ｅ２−１０，Ｅ３−１，Ｅ３−２，…Ｅ３−１０の誤り訂正データ列を、チェックシンボル列ＣＳ１（データ列Ｄ２）と呼ぶことにする（ステップＳ４）。同様に、誤り訂正データＥ４−１，Ｅ４−２，…Ｅ４−１０，Ｅ５−１，Ｅ５−２，…Ｅ５−１０，Ｅ６−１，Ｅ６−２，…Ｅ６−１０の誤り訂正データ列を、チェックシンボル列ＣＳ２（データ列Ｄ３）と呼ぶことにする。なお、ここでは、第１のデータ交錯方法と第２のデータ交錯方法により得られる各インターリーブに対して、生成するチェックシンボルのバイト数を同一としているが、当該バイト数は異なる場合でもよい。
【００２３】
以上の処理により生成されたチェックシンボル列ＣＳ１、チェックシンボル列ＣＳ２を、コントロールブロック１０は５１２バイトの情報データ列１に付加し、符号化データ列Ｄ４（ＨＤＤではライトデータに相当する）を生成する（ステップＳ５）。コントロールブロツク１０は、当該符号化データ列Ｄ４をチャネル２に送出する（ステップＳ６）。なお、実際上のシステムでは、符号化データ列Ｄ４をデータ圧縮処理して送出してもよいし、またさらにインターリーブ処理してデータの順番を入れ替えたものを送出してもよい。
（復号化処理）
次に、図６のフローチャート及び図７を参照して同実施形態の復号化処理を説明する。
【００２４】
まず、コントロールブロック１０は、インターフェース１１を介してチャネル２から転送された復号化処理対象の符号化データ列（Ｄ４）を受信し入力する（ステップＳ１０）。このデータ列Ｄ４は、元の情報データ列Ｄ１と、チェックシンボル列ＣＳ１と、チェックシンボル列ＣＳ２とからなるデータ列であるが、誤りデータ（エラービットＤ１，Ｄ２，Ｅ１−１）を含むものであると想定する（図７（Ａ）を参照）。ここで、同実施形態のコントロールブロック１０は、デコード回数Ｃをカウントし、このカウント値を使用して後述するデコード処理を制御している（ステップＳ１１，Ｓ１８，Ｓ１２）。
【００２５】
最初のデータ転送では、デコード回数Ｃが「１」で奇数のため、コントロールブロック１０は、デコーダ１０Ｂにより情報データ列１とチェックシンボル列ＣＳ１とを使用して復号化処理を行う（ステップＳ１２のＮＯ，Ｓ１３）。即ち、情報データ列１に対して、第１のデータ交錯方法による処理を実行して、３つのインターリーブ（＃１、＃２、＃３）に変換する。さらに、図７（Ｂ）に示すように、チェックシンボル列ＣＳ１において、誤り訂正データＥ１−１，Ｅ１−２，…Ｅ１−１０をインターリーブ＃１に付加し、誤り訂正データＥ２−１，Ｅ２−２，…Ｅ２−１０をインターリーブ＃２に付加し、誤り訂正データＥ３−１，Ｅ３−２，…Ｅ３−１０をインターリーブ＃３に付加する（ステップＳ１４）。
【００２６】
このような処理により得られた各インターリーブ（チェックシンボルを含む）に対して、コントロールブロック１０は、デコーダ１０Ｂによりデコードし、誤りデータの有無を調べる。コントロールブロック１０は、エラーが存在し、かつ誤り訂正可能である場合には、エラー位置検出ブロツク１６によりその値と位置情報を算出し、当該位置の誤りデータを修正する（ステップＳ１５）。３つの各インターリーブのデコード処理が終了した時点で、すべてのインターリーブについて正しく訂正されたかどうかを判断し、全インターリーブの誤り訂正が完了と判断される場合には、デコード処理を終了する（ステップＳ１６）。
【００２７】
ここで、コントロールブロック１０は、ひとつでも訂正不能なインターリーブが存在した場合には、他のチェックシンボルを用いて、再度の誤り訂正を実行するか否かを判断する（ステップＳ１７）。デコード処理、誤り訂正処理を続行する場合には、コントロールブロック１０はデコード回数Ｃをインクリメントし、再度の復号処理を実行する（ステップＳ１８，Ｓ１９）。
【００２８】
２回目のデコード処理では、デコード回数Ｃが「２」で偶数のため、コントロールブロック１０は、デコーダ１０Ｂにより情報データ列１とチェックシンボル列ＣＳ２とを使用して復号化処理を行う（ステップＳ１２のＹＥＳ，Ｓ２０）。即ち、情報データ列１に対して、第２のデータ交錯方法による処理を実行して、３つのインターリーブ（＃４、＃５、＃６）に変換する。さらに、図７（Ｃ）に示すように、チェックシンボル列ＣＳ２において、誤り訂正データＥ４−１，Ｅ４−２，…Ｅ４−１０をインターリーブ＃４に付加し、誤り訂正データＥ５−１，Ｅ５−２，…Ｅ５−１０をインターリーブ＃５に付加し、誤り訂正データＥ６−１，Ｅ６−２，…Ｅ６−１０をインターリーブ＃６に付加する（ステップＳ２１）。
【００２９】
そして、コントロールブロック１０は、最初と同様のデコード処理を実行し、エラー訂正できる範囲での誤り訂正処理を実行する（ステップＳ１５）。ここで、コントロールブロック１０は、全インターリーブの誤り訂正が完了と判断される場合には、デコード処理を終了する（ステップＳ１６）。また、ひとつでも訂正不能なインターリーブが存在した場合には、再度チェックシンボル列ＣＳ１を使用して、第１のデータ交錯方法を適用した復号化処理を再実行する。但し、コントロールブロック１０は、デコード回数Ｃの値に基づいて、誤り訂正を完了する見込みがないと判断した場合には、訂正不能として復号化処理を終了する（ステップ２２）。この場合、コントロールブロック１０は、インターフェース１３を介して外部システムのＣＰＵ４に対して誤り訂正不能の通知を実行するようにしてもよい。
【００３０】
ここで、同実施形態の具体例としては、図７に示すように、インターリーブあたり５バイトまで誤り訂正可能な誤り訂正符号化が行われている。即ち、情報データ列Ｄ１において、データＤ１，Ｄ２，Ｄ４，Ｄ５，Ｄ９，Ｄ１０，Ｄ１３，Ｄ１５，Ｄ１６，Ｄ１７のそれぞれにエラーが発生し、また誤り訂正データＥ１−１，Ｅ３−２，Ｅ４−９，Ｅ５−９のそれぞれにエラーが発生している場合を想定している。１回目のデコード処理においては、インターリーブ＃２、インターリーブ＃３では訂正可能であるが、インターリーブ＃１では６バイトのエラーがあり訂正不可能となる（図７（Ｂ）を参照）。２回目のデコード処理では、１回目のデコード処理時に訂正不能なエラーと判定されたエラーはすべて修復されている（図７（Ｃ）を参照）。１回目のデコード時に、訂正不能エラーとして残った６箇所のエラーのうち、５１２バイトの情報データ列Ｄ１の部分に発生した５箇所のエラーば、インターリーブ＃４に２箇所、インターリーブ＃５に１箇所、インターリーブ＃６には２箇所含まれている。また、チェックシンボル列ＣＳ２にも２箇所エラーが発生しているが、各インターリーブのエラー数は、すべて５箇所以内であるため、すべてのインターリーブが訂正可能となり、エラー訂正は完了する。
【００３１】
以上のように同実施形態によれば、誤り訂正符号化処理として、情報データ列Ｄ１に対して、異なる第１と第２のデータ交錯方法により生成される複数のチェックシンボルＣＳ１，ＣＳ２を付加した符号化データ列Ｄ４を生成する。このような符号化データ列Ｄ４であれば、復号化するときに、訂正可能なインターリーブのみの場合には一方のチェックシンボル（ＣＳ１またはＣＳ２）を使用して誤り訂正処理を行なう。この誤り訂正処理では訂正不能の場合には、チェックシンボル（ＣＳ１またはＣＳ２）を取り替えて再度の誤り訂正処理を実行する。そして、最終的に訂正不能であると判断するまで、誤り訂正処理を繰り返す。従って、１つのチェックシンボルだけでは訂正不能となるようなエラーが発生した場合でも、訂正可能にする確率を高める事ができる。また、１つのチェックシンボルのみで訂正可能なエラーについては、従来の第１の方式と同様に高速に誤り訂正して、短時間で復号化処理を終了できる。なお、最終的に訂正不能であると判断する方法としては、例えば２回目のデコード処理において、３つのインターリーブのすべてが訂正不能になる場合などが想定される。
（第２の実施形態）
第２の実施形態は、前述のシステムをＨＤＤに適用した場合である。以下、図８を参照して同実施形態の構成と作用を説明する。
【００３２】
ＨＤＤは、リード／ライト（Ｒ／Ｗ）チャネル２０と呼ぶ信号処理回路を有し、このＲ／Ｗチャネル２０とバッファメモリ（セクタバッファ）３０との間でデータ転送を行なうディスクコントローラ（ＨＤＣ）を有する。ＨＤＤでは、誤り訂正符号化・復号化システムはＨＤＣに設けられている。
【００３３】
ＨＤＣは、ディスクインターフェース４０を介してＲ／Ｗチャネル２０とデータ転送を実行し、またバッファインターフェース４６を介してバッファメモリ３０をアクセスする。誤り訂正符号化・復号化システムは、エンコードブロック４１と、インターリーブ変換ブロック４２と、デコードブロック４３と、チェックシンボル用バッファ４４と、バッファデータ修正ブロック４５とを有する。
【００３４】
インターリーブ変換ブロック４２は、ＨＤＤのブロック単位である１セクタ分のデータ列（通常では情報ブロックは５１２バイト）を符号化データ列として、前述の第１のデータ交錯方法と第２のデータ交錯方法により、それぞれ３つのインターリーブを生成するためのデータ交錯処理を実行する。デコードブロック４３は、各インターリーブのデータ列を、所定の復号アルゴリズムに従ってデコード処理し、各インタリーブ内に含まれるエラーの値とその位置情報を算出する。バッファデータ修正ブロック４５は、デコードブロック４３のデコード結果（エラーの値とその位置情報）に基づいて、バッファメモリ３０内に格納されたリードデータ（Ｒ／Ｗチャネル２０からの転送データ）の修正を行う。
【００３５】
また、エンコードブロック４１は、インターリーブ変換ブロックにより生成されたインターリーブ構成のデータ列に対応するチェックシンボルを生成する。チェックシンボル用バッファ４４は、チェックシンボル専用の一時バッファであり、バッファインターフェース４６内に配置された構成でもよい。
（ライト動作）
ＨＤＤでは、ホストシステム（パーソナルコンピュータ）から転送されたライトデータ（ディスクに記録すべき情報データ列）は、バッファメモリ３０に格納される。同実施形態のＨＤＣでは、バッファインターフェース４６は、バッファメモリ３０からディスク上に記録すべきライトデータを取得し、それをインターリーブ変換ブロック４２に転送する。インターリーブ変換ブロック４２は、転送されたデータ列に対して第１のデータ交錯方法と第２のデータ交錯方法とにより、前述したように、インターリーブ（＃１）からインターリーブ（＃６）に振り分けてエンコードブロック４１に送出する（図２と図３を参照）。
【００３６】
エンコードブロック４１は、各インターリーブ毎にチェックシンボルを生成し、実際にディスクに記録すべき符号化データ列（図４のデータ列Ｄ４）を生成し、ディスクインターフェース４０に送出する。ディスクインターフェース４０は、符号化データ列（１セクタ分のシリアルデータ）をＲ／Ｗチャネル２０に送出する。ＨＤＤでは、Ｒ／Ｗチャネル２０、ヘッドアンプなどをを介してヘッドにライト信号が供給されて、ディスク上の指定のトラックに符号化データ列が記録される。
（リード動作）
リード動作では、ヘッドによりディスク上から記録されている符号化データ列に対応するリード信号が読出されて、Ｒ／Ｗチャネル２０によりディジタルのリードデータに変換される。ディスクインターフェース４０は、リードデータを受信すると、バッファインターフェース４６を介してバッファメモリ３０に保存する。バッファメモリ３０には、１セクタ分である５１２バイトの情報データ列Ｄ１と、チェックシンボル列（前述のＣＳ１，ＣＳ２）とからなる符号化データ列が格納される。また、チェックシンボル列（ＣＳ１，ＣＳ２）は、チェックシンボル用バッファ４４に格納される。
【００３７】
以下、インターリーブ変換ブロック４２及びデコードブロック４３により、前述のデコード処理が実行される（図７を参照）。即ち、デコードブロック４３は、インターリーブ変換ブロック４２により生成された各インターリーブのデータ列を、所定の復号アルゴリズムに従ってデコード処理し、各インタリーブ内に含まれるエラーの値とその位置情報を算出する。バッファデータ修正ブロック４５は、デコードブロック４３のデコード結果（エラーの値とその位置情報）に基づいて、バッファメモリ３０内に格納されたリードデータの修正を行う。また、チェックシンボル列に発生した誤りであれば、チェックシンボル用バッファ４４に保存されているデータの値も修正する。
【００３８】
ここで、１つでも訂正不能なインターリーブが存在し、かつデコード処理を続行すると判断される場合には、バッファインターフェース４６を介してバッファメモリ３０に保存されている情報データ列Ｄ１と、チェックシンボル用バッファ４４に保存されているチェックシンボルが、インターリーブ変換ブロック４２に転送されて、再度のデコード処理が実行される。
【００３９】
以上のように本発明の誤り訂正符号化・復号化方式をＨＤＤに適用することができる。従って、高速でかつ誤り訂正の確率を高めることが可能であるため、特に高記録密度のＨＤＤに有効である。なお、同実施形態の構成であれば、１セクタ分のデータをバッファメモリ３０及びインターリーブ変換ブロック４２に転送してデコード処理を実行している期間に、次のセクタのデータをバッファメモリ３０及びインターリーブ変換ブロック４２に転送することが可能となる。従って、１つのチェックシンボルだけでデコード処理が完了するデータ列に関しては、、そのデコード処理時間が１セクタ分のデータ転送時間より短ければ、オンザフライ処理が可能となる。また、１つのチェックシンボルだけではデコード処理が完了できないエラーを検出したときは、オンザフライによる高速なデコードを行う事はできないが、チェックシンボルを交換しながら繰り返しデコード処理を行うことにより、訂正可能とする確率を大きく高めることができる。
【００４０】
【発明の効果】
以上詳述したように本発明によれば、相対的に少ないチェックシンボル量を使用して符号化率の悪化を抑制し、インターリーブ当たりの誤り訂正の能力範囲内では高速の誤り訂正処理を実行し、かつインターリーブ当たりの誤り訂正の能力範囲を越える誤り訂正能力についても保証することが可能な符号化・復号化方式を提供することができる。従って、本発明の方式をＨＤＤなどのディスク記憶装置に適用すれば、チェックシンボルであるＥＣＣデータ量をそれほど増大させること無く、誤り訂正能力を向上できるため、高記録密度化を図るディスク記憶装置には極めて有効である。
【図面の簡単な説明】
【図１】本発明の第１の実施形態に関係する符号化・復号化方式のシステム構成を示す機能ブロック図。
【図２】同実施形態に関係する第１のデータ交錯方法を説明するための概念図。
【図３】同実施形態に関係する第２のデータ交錯方法を説明するための概念図。
【図４】同実施形態に関係するチェックシンボルの生成方法と符号化処理とを説明するための概念図。
【図５】同実施形態に関係する符号化処理を説明するためのフローチャート。
【図６】同実施形態に関係する復号化処理を説明するためのフローチャート。
【図７】同実施形態に関係する復号化処理を説明するための概念図。
【図８】第２の本実施形態に関係するＨＤＤの要部を示すブロック図。
【図９】従来の誤り符号化方式を説明するための概念図。
【符号の説明】
１…符号化・復号化システム
２…チャネル
３…バッファメモリ
１０…コントロールブロック
１０Ａ…エンコーダ
１０Ｂ…デコーダ
１１…インターフェース
１２…インターフェース
１３…インターフェース
１４…第１のインターリーブ生成ブロック
１５…第２のインターリーブ生成ブロック
１６…エラー位置検出ブロック
１７…ＥＣＣバッファメモリ
２０…リード／ライト（Ｒ／Ｗ）チャネル
３０…バッファメモリ
４０…ディスクインターフェース
４１…エンコードブロック
４２…インターリーブ変換ブロック
４３…デコードブロック
４４…チェックシンボル用バッファ
４５…バッファデータ修正ブロック
【図１】
0004031136.tif 000002
【図２】
0004031136.tif 000003
【図３】
0004031136.tif 000004
【図４】
0004031136.tif 000005
【図５】
0004031136.tif 000006
【図６】
0004031136.tif 000007
【図７】
0004031136.tif 000008
【図８】
0004031136.tif 000009
【図９】
0004031136.tif 000010