(57)【要約】【課題】  エラー頻度の周期的に基づくエラー集中によるＥＣＣ能力低下の防止。【解決手段】    ＥＣＣの配置としてインターリーブ数や符号の物理位置を決定する際に、データエラーについての記録媒体上の位置における周期性を考慮し、特定の符号フレームにエラー数が集中しないようにする。このため、セクタエラーの発生分布の周期性を判別し、それに応じてインターリーブ数を可変設定したり、又はセクタ毎のインターリーブ符号フレームの割り当て順序を可変設定する。或いは、バイトエラー発生分布の周期性に基づいて、セクタ内のインターリーブ構成におけるバイトデータ配置順序を可変設定するか、又はセクタ内バイトデータを複数のブロックに分割し、セクタ毎に、上記ブロックの配置順序を可変設定する。【選択図】        図３
2006031825.tif 000002
【特許請求の範囲】
【請求項１】
記録媒体におけるデータ記録領域内において、エラー発生分布の周期性を判別する判別ステップと、
上記判別ステップで把握されたエラー発生分布の周期性に基づいて、上記記録媒体に対して記録再生するデータのインターリーブ構成を設定する設定ステップと、
上記記録媒体に対するデータの記録再生の際に、上記設定ステップで設定されたインターリーブ構成を用いたエラー訂正処理を実行するように制御する記録再生制御ステップと、
を備えたことを特徴とする記録再生制御方法。
【請求項２】
上記記録媒体は、同心円状又はスパイラル状のトラックが形成されているとともに、半径方向に複数のゾーンが設定されるディスク記録媒体であり、
上記判別ステップでは、上記各ゾーン毎にエラー発生分布の周期性を判別し、
上記設定ステップでは、上記各ゾーン毎に判別されたエラー発生分布の周期性に基づいて、上記各ゾーン毎にインターリーブ構成を設定することを特徴とする請求項１に記載の記録再生制御方法。
【請求項３】
上記記録媒体は、同心円状又はスパイラル状のトラックが形成されているとともに、上記各トラックは複数のセクタに分割されるディスク記録媒体であり、
上記判別ステップでは、トラック内でのセクタエラーの発生分布の周期性を判別し、
上記設定ステップでは、セクタエラー発生分布の周期性に基づいて、セクタのインターリーブ構成を設定することを特徴とする請求項１に記載の記録再生制御方法。
【請求項４】
上記設定ステップでは、セクタエラー発生分布の周期性に基づいて、インターリーブ数を可変設定することを特徴とする請求項３に記載の記録再生制御方法。
【請求項５】
上記設定ステップでは、セクタエラー発生分布の周期性に基づいて、セクタ毎のインターリーブ符号フレームの割り当て順序を可変設定することを特徴とする請求項３に記載の記録再生制御方法。
【請求項６】
上記記録媒体は、同心円状又はスパイラル状のトラックが形成されているとともに、上記各トラックは複数のセクタに分割されるディスク記録媒体であり、
上記判別ステップでは、セクタ内でのバイトエラーの発生分布の周期性を判別し、
上記設定ステップでは、バイトエラー発生分布の周期性に基づいて、セクタ内のインターリーブ構成を設定することを特徴とする請求項１に記載の記録再生制御方法。
【請求項７】
上記設定ステップでは、バイトエラー発生分布の周期性に基づいて、セクタ毎のバイトデータ配置順序を可変設定することを特徴とする請求項６に記載の記録再生制御方法。
【請求項８】
上記設定ステップでは、セクタ内バイトデータを複数のブロックに分割し、バイトエラー発生分布の周期性に基づいて、セクタ毎に、上記ブロックの配置順序を可変設定することを特徴とする請求項６に記載の記録再生制御方法。
【請求項９】
記録媒体におけるデータ記録領域内において、エラー発生分布の周期性を判別する判別手段と、
上記判別手段で把握されたエラー発生分布の周期性に基づいて、上記記録媒体に対して記録再生するデータのインターリーブ構成を設定する設定手段と、
上記記録媒体に対するデータの記録再生の際に、上記設定手段で設定されたインターリーブ構成を用いたエラー訂正処理を実行するように制御する記録再生制御手段と、
を備えたことを特徴とする記録再生制御装置。
【請求項１０】
上記記録媒体は、同心円状又はスパイラル状のトラックが形成されているとともに、半径方向に複数のゾーンが設定されるディスク記録媒体であり、
上記判別手段は、上記各ゾーン毎にエラー発生分布の周期性を判別し、
上記設定手段は、上記各ゾーン毎に判別されたエラー発生分布の周期性に基づいて、上記各ゾーン毎にインターリーブ構成を設定することを特徴とする請求項９に記載の記録再生制御装置。
【請求項１１】
上記記録媒体は、同心円状又はスパイラル状のトラックが形成されているとともに、上記各トラックは複数のセクタに分割されるディスク記録媒体であり、
上記判別手段は、トラック内でのセクタエラーの発生分布の周期性を判別し、
上記設定手段は、セクタエラー発生分布の周期性に基づいて、セクタのインターリーブ構成を設定することを特徴とする請求項９に記載の記録再生制御装置。
【請求項１２】
上記設定手段は、セクタエラー発生分布の周期性に基づいて、インターリーブ数を可変設定することを特徴とする請求項１１に記載の記録再生制御装置。
【請求項１３】
上記設定手段は、セクタエラー発生分布の周期性に基づいて、セクタ毎のインターリーブ符号フレームの割り当て順序を可変設定することを特徴とする請求項１１に記載の記録再生制御装置。
【請求項１４】
上記記録媒体は、同心円状又はスパイラル状のトラックが形成されているとともに、上記各トラックは複数のセクタに分割されるディスク記録媒体であり、
上記判別手段は、セクタ内でのバイトエラーの発生分布の周期性を判別し、
上記設定手段は、バイトエラー発生分布の周期性に基づいて、セクタ内のインターリーブ構成を設定することを特徴とする請求項９に記載の記録再生制御装置。
【請求項１５】
上記設定手段は、バイトエラー発生分布の周期性に基づいて、セクタ毎のバイトデータ配置順序を可変設定することを特徴とする請求項１４に記載の記録再生制御装置。
【請求項１６】
上記設定手段は、セクタ内バイトデータを複数のブロックに分割し、バイトエラー発生分布の周期性に基づいて、セクタ毎に、上記ブロックの配置順序を可変設定することを特徴とする請求項１４に記載の記録再生制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばＨＤＤ（ハードディスクドライブ）などとしての記録媒体に対してのデータの記録再生動作を制御する記録再生制御方法、記録再生制御装置に関するものである。
【背景技術】
【０００２】
【特許文献１】特開２００２−１７５６６６号公報
【特許文献２】特開２００２−２４５７２６号公報
【０００３】
磁気記録方式の情報記録装置としてＨＤＤ（Hard Disk Drive）が知られている。
ＨＤＤのドライブユニット内には記録媒体である数枚の磁気メディアが収容され、モータによって高速に回転する。磁気メディアには、酸化鉄やコバルト・クロムなどの磁性体が、メッキや薄膜生成によって塗布されている。
そして、磁気ヘッドを回転するメディア表面上で半径方向にスキャンさせることによって、メディア上にデータに相当する磁化を生じさせて書込みを行い、あるいはデータを読み出すことができる。
【０００４】
ハードディスクは既に広汎に普及している。例えば、パーソナルコンピュータ用の標準的な外部記憶装置として、コンピュータを起動するために必要なオペレーティングシステム（ＯＳ）やアプリケーションなど、さまざまなソフトウェアをインストールしたり、作成・編集したファイルを保存したりするためにハードディスクが利用されている。通常、ＨＤＤは、ＩＤＥ（Integrated Drive Electronics）やＳＣＳＩ（Small Computer System Interface）などの標準的なインターフェースを介してコンピュータ本体に接続され、その記憶空間は、ＦＡＴ（File Allocation Table）などの、オペレーティングシステムのサブシステムであるファイルシステムによって管理される。
そして最近では、ＨＤＤの大容量化が進んでおり、これに伴って、従来のコンピュータ用補助記憶装置としてだけでなく、放送受信されたＡＶコンテンツを蓄積するハードディスクレコーダなど、適用分野が拡大し、さまざまなコンテンツを記録するために利用され始めている。
【０００５】
ここで、コンピュータ用補助記憶装置として使用される場合を例にとって、ハードディスクの物理フォーマット方法やハードディスクへのデータ読み書きオペレーションについて簡単に述べておく。
ハードディスク上には、データを記録するための区画として、同心円状に多数の「トラック」を形成する。そして、ディスクの最外周から内周に向かって０，１，…とトラック番号が割り振られる。ディスク表面上にトラック数が多いほどメディアの記憶容量は増す。
【０００６】
さらに、各トラックは、単位領域としての「セクタ」に分割される。ディスクに対する通常のデータ読み書き動作はセクタ単位で行われる。セクタサイズはメディア毎に相違するが、ハードディスクのセクタは一般的には５１２バイトとされる。また、メディアの使用効率を考慮して、各トラック上の記録密度をほぼ均一にするために、周長が長くなる外側のトラックに向かうほどセクタ数を多く設けている。これを”Zone Bit Recording”（ゾーンビットレコーディング：ＺＢＲ）方式と呼ぶ。
ゾーンビットレコーディング方式を採用した場合、各トラック上の記録密度をほぼ均一にすることができる一方で、トラック毎のデータ転送速度が不均一となるという短所がある。データ転送速度は、ディスクの内周方向に進むにつれて低くなっていく。
図１２にＺＢＲ方式の一例を示している。
同図に示す例では、ディスク２１を３つのゾーンに区切っており、最外周から順にゾーン０，１，２とゾーン番号が与えられている。各ゾーン内には複数本のトラックが含まれている。
また図１２において、各ゾーンをセクタで区切っているが、この場合（あくまで模式的な例として）、ゾーン０は３２セクタで構成され、同様に、ゾーン１は１６セクタ、ゾーン２は８セクタでそれぞれ構成されている。ゾーンの切り替えに当たり、具体的なセクタ数については、ディスク回転数は一定とし、記録再生クロックを可変にするなどによって、線記録密度を所定の範囲におさめ、ディスク当たりの記憶容量を増加させるように決定される。
図１２の例は模式図であるが、半径方向に設定するゾーンは、例えばゾーン０〜ゾーン１５という１６個のゾーンに設定されることや、１トラック内のセクタ数は、例えば３００〜７００セクタ程度とされることが多い。
【０００７】
また、数枚のメディアが同心円状に重なって構成されているＨＤＤの場合、各メディアの同じ番号のトラックは円筒状に配置されていると捉えることができ、これを「シリンダ」と呼ぶ。各シリンダには、トラック番号と同じ番号が割り振られ、最外周から順にシリンダ０，シリンダ１，・・・となる。各メディア間に挿設された複数のヘッドは常に一体となって作動して、シリンダ間を移動する。
【０００８】
目的となるセクタを指定（アドレス）する方式として、ＣＨＳ方式を挙げることができる。これは、ディスク上のＰＢＡ（Physical Block Address：物理ブロックアドレス）を、Ｃ（Cylinder）、Ｈ（Head）、Ｓ（Sector）の順に指定することによって、所望のデータにアクセスする方式である。
一方、ＣＨＳ方式においては、ＨＤＤに対するホストとして動作するコンピュータ本体側では、指定できるＣＨＳパラメータに限界があり、ハードディスクの大容量化に対応できなくなってくる。このため、ＬＢＡ（Logical Block Address：論理ブロックアドレス）方式が採用されている。これは、シリンダ番号、ヘッド番号、セクタ番号（ＣＨＳ）を０から始まるＬＢＡという論理的な通し番号で表現するものである。
【０００９】
従来のＨＤＤでは、メディアにアクセスしてデータを読み書きするためには、先ず、磁気ヘッドが目的とするセクタのあるトラックに到達するために、磁気ヘッドをメディア上で走査させる。これを磁気ヘッドの「シーク」動作と呼ぶ。次に、トラック上で目的のセクタに到達するために、メディアが回転して、目的のセクタが磁気ヘッドの真下に来るまで待つ。これを「回転待ち」と呼ぶ。
【００１０】
また従来の多くのＨＤＤは、ＩＤＥやＳＣＳＩなどコンピュータとの接続を目的としたインターフェースを持っている。そして、コンピュータ本体からのディスクドライブ制御は、インターフェースで定義されているコマンドセットを用いて、先頭セクタを示すＬＢＡとアクセスを行うセクタ数を指定することを基本動作とする。
この場合、ＨＤＤ側では、指定された先頭セクタからのアクセスを行うとともに、その後アクセスされるセクタを予測して先読みを行うシーケンスを作成しながらアクセスを行うことができる。
この先読みという動作は、一連のデータに対して連続するアドレスを持つセクタが割り振られていることを前提としている。通常、連続するアドレスを持つセクタは、連続するヘッド番号あるいはトラック番号に存在する。
サイズの大きなデータがメディア上に連続して書き込まれている場合には、読出し時の先読み動作が有効に働く。
【００１１】
ディスクの大容量化に伴い、トラック密度が増大してトラック幅が極めて狭くなる。したがって、データを正確に書き込み及び再生するためには、磁気ヘッドの位置決めは高い精度が要求される。そこで、磁気ヘッドの位置を常にトラックの中心に合わせるというサーボ技術が採用されている。各トラック上に「サーボパターン」と呼ばれる信号を一定間隔で書き込んでおき、これを磁気ヘッドで読むことにより、磁気ヘッドがトラックの中心にあるかどうかをチェックすることができる。サーボパターンは、ＨＤＤの製造工程において、高精度に書き込まれる。サーボ領域には、例えば、ヘッドの位置決めするための信号と、シリンダ番号、ヘッド番号、サーボ番号などが書き込まれている。
【００１２】
図１３には磁気ディスク２１においてサーボパターンが書き込まれるサーボエリアの配置の一例を示している。図１３の半径方向の実線は、サーボエリアＳＲＶを示している（図１２に示したようなセクタの区切りではない）。
図１３に示す例では、磁気ディスク２１において、半径方向に３２本の実線で示すように、放射状にサーボエリアが配置されている。即ちサーボエリアＳＲＶは、同心円となるゾーン０，１，２に関係なく形成されている。つまりどのゾーンにおいても、１トラックにつき３２個のサーボエリアが形成されている。
【００１３】
このサーボエリアＳＲＶによりトラックの位置決め制御が行われる。即ち磁気ヘッドによるトラックのトレースがサーボエリアＳＲＶを通過する時に、オントラックとなったか、あるいはトラックが外れたかの情報が得られる。
ここで、データ読み取り時において振動等の外乱が加わったことによって、トラック位置がずれたとする。トラックが大きく移動した場合は、全体のサーボ制御は最初から行われることになる。つまりデータ読取が中断され、再度必要なトラックにアクセスしてデータ読取が行われる。
一方、トラックが正しい位置に対して、両隣のトラックの方向に所定の範囲内で移動した（ずれた）場合は、トラック位置制御を行いながら、そのままデータ読み取りを継続している。
【００１４】
なお、２つのサーボエリアＳＲＶに挟まれる範囲（図中のＳＦ区間）をサーボフレームとも呼ぶ。
例えば１セクタが５１２バイトで与えられている場合、セクタ当たりの大きさ（セクタサイズ）は、トラック上の２つのサーボエリアの間の容量と比較して小さいので、１つのサーボフレームＳＦには複数のセクタが配置されることになる。
これらセクタの配置は、主にＺＢＲのゾーン毎に定められている。すなわち、ゾーンが切り替わると、サーボフレームＳＦに配置されているセクタ数についても異なっている。
図１３では模式図として１トラックにつき３２個のサーボエリアＳＲＶが形成されるとしているが、実際には、１トラックに９６個のサーボエリアＳＲＶが形成される例が多い。
例えば或るゾーンにおいて１トラックのセクタ数が６３３であれば、１つのサーボフレームＳＦにおけるセクタ数は６．６個となる。
なお、１つのサーボフレームＳＦ内に、整数個のセクタが配されるように規定しても良いが、記録領域の有効利用のため、１セクタを２つのサーボフレームＳＦにまたがって配置しても良い。このため、サーボフレーム内のセクタ数が、上記の６．６個になるというようなことも発生する。
【発明の開示】
【発明が解決しようとする課題】
【００１５】
ところでハードディスクドライブ（ＨＤＤ）のようなデータ記録再生装置に用いられるＥＣＣ(Error Correcting Code)の配置方法としてインターリーブが用いられるが、インターリーブを用いたＥＣＣのコード配置方法としては、符号長がハードウェア制約などによる最大値にできるだけ近くなるようなインターリーブ数を決定し、インターリーブごと順にコードを配置する手法が一般的である。
例えば図１４は、１トラックに６３３セクタが含まれる場合において、セクタのインターリーブの例を示している。図１４（ａ）は、１トラック内の６３３個のセクタｔ0〜ｔ0+632を示している。ｔ0〜ｔ0+632はセクタのＬＢＡとする。
符号長最大値が２５５である場合において、６３３個のセクタを配置するには、インターリーブ数（インターリーブ深さ）ｍ＝３とする。即ち、３つの符号フレームｉ０、ｉ１、ｉ２を形成する。符号フレームとは、セクタ内の各バイトデータが同じＲＳ符号語に属するセクタの集まりを意味する。
そして図１４（ａ）に示すように、符号フレーム番号ｉ０，ｉ１，ｉ２を、セクタｔ0から順番に割り当てていく。この場合、各セクタの符号フレーム番号は、そのセクタのＬＢＡから先頭セクタのＬＢＡ（＝ｔ0）の差をインターリーブ数ｍで割った剰余として与えられることになる。
するとインターリーブ構成は、図１４（ｂ）に示すように、それぞれ符号長ｎ＝２１１の３つの符号フレームｉ０，ｉ１，ｉ２として形成される（なお、符号長ｎは、セクタ数をインターリーブ数で割った値）。
例えば符号フレームｉ０は、セクタｔ0、ｔ0+3、ｔ0+6・・・ｔ0+630という２１１セクタで形成されることになる。
そして図１４（ｂ）での縦方向に形成される各符号フレームｉ０，ｉ１，ｉ２それぞれで、ＥＣＣエラー訂正処理が行われる。
【００１６】
ところが、ＥＣＣにて訂正したいエラーが周期性を持ち、その周期がインターリーブの周期と一致またはどちらか一方の周期がその他の周期の定数倍となった場合、特定の符号フレームにおいてエラーが集中するという現象が生ずる。
例えばＨＤＤシステムにおいてはセクタエラーのトラック内での周期性や、セクタ内でのバイトエラーの周期性によりエラー集中が発生する。
【００１７】
まず、ＨＤＤにおけるセクタエラーのトラック内での周期性について説明する。
図１５（ａ）にＨＤＤのトラックあたりのセクタに対して、ＨＤＤ全体にて生じたセクタエラーをトラック内の相対位置についてまとめたものを示す。ここでは、セクタエラーの発生したトラック内の論理アドレスからもとめる相対位置（ＬＢＡ先頭を０、末尾を１とする）について、１トラックを３８４分割した各区間でのセクタエラー発生頻度を示している。
この図１５（ａ）からは、セクタエラーの多くがトラックの先頭付近で発生していることがわかる。
この結果をフーリエ解析し、エラー発生についての周期についてまとめたものを図１５（ｂ）に示す。これは、１トラックにおけるセクタエラー発生回数を、１トラック＝１周期としたトラック分割数として表したものである。この図からは、１トラックを１周期とした場合のセクタエラー発生間隔からトラック分割数とエラー頻度の関係が分かる。
そして図のように、トラックを９６分割した場合にエラー頻度のピークがある。
このデータ測定に用いたＨＤＤはトラックにつき９６個のサーボエリアＳＲＶをもつものであり、図中トラック分割数９６に位置するエラー頻度のピークは、サーボフレーム周期にエラーの発生が集中していることを示す。同様にトラック分割数３２に位置するエラー頻度のピークはサーボフレームの３倍の周期にてエラーの発生が集中していることを示している。
【００１８】
図１６（ａ）は、上述した一般的な手法でインターリーブ数ｍを決定した例を示す。  ここでは、ゾーン数１６（ゾーン＃０〜＃１５）のＨＤＤにおいて各ゾーンでのトラックあたりセクタ数と、サーボフレームＳＦがトラック内に９６ある場合のサーボフレーム数あたりのセクタ数と、符号長最大値が２５５である場合の各符号フレームｉ（ｉ０，ｉ１・・）において符号長ｎ（コード長）ができるだけ最大となるためのインターリーブ数ｍと、符号フレームごとの符号長（符号長をセクタ数にて示す）とをそれぞれ示している。
【００１９】
例えばゾーン＃０は１トラックに６３３セクタ存在し、サーボフレームＳＦにおけるセクタ数は６．６となる。この場合、符号フレームの符号長をできるだけ最大値２５５に近い値とするには、インターリーブ数ｍ＝３とされ、符号フレームｉ０，ｉ１，ｉ２は、それぞれ符号長ｎが２１１セクタとなる。
また例えばゾーン＃９は１トラックに４９９セクタ存在し、サーボフレームＳＦにおけるセクタ数は５．２となる。この場合、符号フレームの符号長をできるだけ最大値２５５に近い値とするには、インターリーブ数ｍ＝２とされ、符号フレームｉ０の符号長ｎは２５０セクタ、符号フレームｉ１の符号長は２４９セクタとなる。
【００２０】
このうち、ゾーン＃４でのコード配置について図１６（ｂ）に示す。 このゾーン＃４では１サーボフレームあたりのセクタ数が６、インターリーブ数ｍ＝３であるため、図１４で説明した一般的なコード配置である場合、エラー発生周期がインターリーブ周期の整数倍（ここでは２倍）となり、６セクタごとに、同じ符号フレームに含まれるセクタにエラーが多く発生する。
つまり上記図１５から、サーボフレームＳＦの周期でエラー頻度が高いことがわかるが、図１６（ｂ）の場合、例えば☆を付したサーボフレーム周期のセクタｔ0、ｔ0+6、ｔ0+12・・・は、同じ符号フレームｉ０に含まれることになる。
つまり、或る符号フレームにおいて、エラー発生確率の高いセクタが集中的に含まれてしまう。
【００２１】
ここでは、このような同じ符号フレームに含まれる複数のセクタにエラーが多く発生する状態をエラー集中とよぶ。
ゾーン＃４ではトラックあたりのセクタ数が５７６であるため、トラック１周に対して９６回、それぞれの符号フレームに対してエラー集中が生じる。
同様に、ゾーン＃１０においてはサーボフレームＳＦあたりのセクタ数が５、インターリーブ数ｍが２であり、エラー発生周期がインターリーブ周期の整数倍ではないが、最小公倍数である１０セクタごと、トラック１周に対して４８回のエラー集中が生じる。
ゾーン＃１３においてはサーボフレームＳＦあたりのセクタ数が４、インターリーブ数ｍが２であり、４セクタごと、トラック１周に対して９６回のエラー集中が生じる。
なお、他のゾーンではサーボフレームＳＦあたりのセクタ数が小数点を含むため、インターリーブあたりのセクタ数との最小公倍数となるエラー集中の周期が長くなり、このような問題は比較的生じにくい。
【００２２】
特定の符号フレームへのエラー集中により、エラー数の符号長に対する割合がエラー訂正能力以上にエラー数が増加した場合、ＥＣＣによるエラー訂正は機能しない。つまりエラー集中により本来のエラー訂正能力が発揮できないという問題が生ずる。
エラー訂正能力が発揮できないことは記録再生動作性能の低下に直結する。
【００２３】
次にＨＤＤにおけるバイトエラーのセクタ内での周期性について述べる。
図１７（ａ）にセクタ（１セクタ＝５１２バイト）内における相対的なバイトエラー発生位置とバイトエラー発生頻度との関係の例を示す。ここでいうバイト位置とは１セクタを５１２バイトとした論理位置を意味する。
図に示すエラー分布ではセクタ内のはじめの約２３%までのエラー頻度が高く、逆にセクタの終わり約３０%においてはエラーの発生頻度が減少する。
図１７（ｂ）に、１セクタを単位としたＥＣＣ構成について示す。各セクタはバイト０〜５１１が順番に横に並べられる。そして図の縦列に沿った符号長ｎのバイトデータに対してエラー訂正が行われる。つまり複数セクタにおける同じバイト位置同志でエラー訂正が行われる。
すると、図１７（ａ）のようにセクタ内のエラー分布に偏りがあることから、例えばセクタ内のはじめの約２３%までのバイト位置に関してエラー集中が発生しやすい。
そしてエラーが集中するバイト位置にて、符号長に対するエラー割合が訂正能力を超えた場合はエラー訂正が機能しないことになり、この場合もエラー訂正能力を発揮できないという問題が生ずる。
【課題を解決するための手段】
【００２４】
本発明は上記のようにエラー集中によりエラー訂正能力が低下することを防止し、適正なエラー訂正処理によって記録再生動作性能を向上させることを目的とする。
【００２５】
本発明の記録再生制御方法は、記録媒体におけるデータ記録領域内において、エラー発生分布の周期性を判別する判別ステップと、上記判別ステップで把握されたエラー発生分布の周期性に基づいて、上記記録媒体に対して記録再生するデータのインターリーブ構成を設定する設定ステップと、上記記録媒体に対するデータの記録再生の際に、上記設定ステップで設定されたインターリーブ構成を用いたエラー訂正処理を実行するように制御する記録再生制御ステップとを備える。
【００２６】
また本発明の記録再生制御装置は、記録媒体におけるデータ記録領域内において、エラー発生分布の周期性を判別する判別手段と、上記判別手段で把握されたエラー発生分布の周期性に基づいて、上記記録媒体に対して記録再生するデータのインターリーブ構成を設定する設定手段と、上記記録媒体に対するデータの記録再生の際に、上記設定手段で設定されたインターリーブ構成を用いたエラー訂正処理を実行するように制御する記録再生制御手段とを備える。
【００２７】
上記記録再生制御方法、記録再生制御装置において、上記記録媒体は、同心円状又はスパイラル状のトラックが形成されているとともに、半径方向に複数のゾーンが設定されるディスク記録媒体である場合、上記各ゾーン毎にエラー発生分布の周期性を判別し、上記各ゾーン毎に判別されたエラー発生分布の周期性に基づいて、上記各ゾーン毎にインターリーブ構成を設定する。
また、上記記録媒体が、同心円状又はスパイラル状のトラックが形成されているとともに、上記各トラックは複数のセクタに分割されるディスク記録媒体である場合、トラック内でのセクタエラーの発生分布の周期性を判別し、セクタエラー発生分布の周期性に基づいて、セクタのインターリーブ構成を設定する。例えばインターリーブ数を可変設定するか、又はセクタ毎のインターリーブ符号フレームの割り当て順序を可変設定する。
また上記記録媒体が、同心円状又はスパイラル状のトラックが形成されているとともに、上記各トラックは複数のセクタに分割されるディスク記録媒体である場合、セクタ内でのバイトエラーの発生分布の周期性を判別し、バイトエラー発生分布の周期性に基づいて、セクタ内のインターリーブ構成を設定する。例えばセクタ毎のバイトデータ配置順序を可変設定するか、又はセクタ内バイトデータを複数のブロックに分割し、セクタ毎に、上記ブロックの配置順序を可変設定する。
【００２８】
即ち本発明は、ＥＣＣの配置としてインターリーブ数や符号（コード）の物理位置を決定する際に、データエラーについての記録媒体上の位置における周期性を考慮し、特定の符号フレームにエラー数が集中しないようにする。
例えば、ＨＤＤなどのディスク記録再生装置にて記録再生を行う場合、あるトラック内の物理的に連続する複数のセクタを、データのアクセス単位とすることが一般的であるが、ＨＤＤの記録再生によって生じるエラーはサーボフレーム間隔のような特定の周期にて発生する頻度が多い。ここでトラック内のセクタのインターリーブを設定する場合、一般的に符号長が最大となるようなインターリーブ数を決定し、インターリーブの符号フレームごと順にコード（セクタデータ）を配置するが、この方式の場合、各符号フレームのコード配置と、エラー発生位置の周期の最小公倍数が一致する周期でのデータがディスク内に存在する場合、特定の符号フレームにおいてエラーが集中する。
そこで、エラー集中発生を回避するために、インターリーブ数を増減したり、インターリーブの際の各符号フレームのコード配置に周期性を減らすようなバラツキをあたえる。
つまり、特定の符号フレームへのエラー集中により、エラー数の符号長に対する割合がエラー訂正能力以上にエラー数が増加した場合、ＥＣＣによるエラー訂正は機能しないが、同じエラー数でも符号フレームごとに分散され符号長に対するエラーの割合がどの符号フレームにおいても訂正能力以内であればＥＣＣによるエラー訂正は有効となるため、エラーが特定の符号フレームに集中しないようにインターリーブ構成を設定するものである。
【発明の効果】
【００２９】
以上の本発明によれば、ＨＤＤなどの記録再生システムにおいてエラー周期性を考慮したＥＣＣの設定が可能となり、ＥＣＣ単位におけるエラー数を平均化し最大値を押し下げることができる。
これにより、エラー集中によるエラー訂正能力の低下を回避することができるとともに、エラーに対するマージンを大きくとれることになる。また、マージンが拡大することによっては、例えばＥＣＣパリティ数を少なくすることも可能で、パリティを少なくした分、ユーザーデータ領域を拡大し、データ容量の増大を図ることもできる。さらにはその場合、転送レートの増加やデータ密度の上昇などの利点も生じる。
【発明を実施するための最良の形態】
【００３０】
以下、図面を参照しながら本発明の実施の形態について次の順序で説明する。
１．ハードディスク装置の構成
２．エラー周期性を考慮したインターリーブ構成の設定
２−１  セクタのインターリーブ設定
２−２  セクタ内のバイトデータのインターリーブ設定
３．インターリーブ構成の設定処理例
３−１  セクタのインターリーブ設定処理
３−２  セクタ内のバイトデータのインターリーブ設定処理
４．変形例
【００３１】
１．ハードディスク装置の構成
図１には、本発明の一実施形態に係るＨＤＤ（ハードディスク装置）１０の全体構成を模式的に示している。
本例のＨＤＤ１０は、例えばカメラ部５０をホスト機器とするストレージ機器とされる。そしてカメラ部５０から供給されたＡＶストリームデータの記録を行い、また再生したＡＶストリームデータをカメラ部５０に供給する。カメラ部５０は例えば撮像機能や再生映像表示機能を備えるものとされる。
実際には、本例のＨＤＤ１０は、カメラ装置に内蔵されるＨＤＤとされたり、カメラ装置に接続されてビデオデータの記録再生を行う機器とされることが考えられる。
なお、カメラ部５０と接続するシステムとするのは一例であり、例えば本例のＨＤＤ１０は他のＡＶ（オーディオ・ビジュアル）機器、パーソナルコンピュータ、ゲーム機器等に内蔵或いは接続されるものでも良い。
【００３２】
同図に示すように、ＨＤＤ１０は、ＣＰＵ（Central Processing Unit）１１と、ＲＯＭ（Read Only Memory）／ＲＡＭ（Random Access Memory）１２と、ディスクコントローラ１３と、バッファＲＡＭ１４と、データ読み書き制御部１５と、サーボ制御部１６、そして磁気ディスク２１とを備えている。
【００３３】
磁気ディスク２１は、１枚あるいは複数枚で構成され、さらに記録面は片面あるいは両面（ディスクの表裏）となっている。また記録面上にはヘッドが配置される。図１においては２枚の磁気ディスク２１ａ、２１ｂが配され、また対応して２つの記録再生ヘッド（磁気ヘッド）２２ａ、２２ｂが設けられている状態を示している、。
即ちドライブユニット内には、数枚の磁気ディスク（プラッタ）が同心円状に重なって構成することができ、そのとき各磁気ディスクの同じトラック番号は円筒状に配置され（シリンダ）、トラック番号と同じシリンダ番号で指定される。
なお、図１に示すように、１つの磁気ディスク２１に対して１つの記録再生ヘッド２２が配されるのは、磁気ディスク２１は片面が記録面とされる場合である。
両面が記録面とされる場合、１つの磁気ディスク２１に対して２つの記録再生ヘッド２２が配される。
【００３４】
図１において、ＣＰＵ１１は、ＲＯＭ／ＲＡＭ１２に格納されている制御コードを実行して、ＨＤＤ１０内の動作を統括的にコントロールする。
また後述するアクセス単位設定処理も行い、それに基づいて記録再生動作を制御する。
ディスクコントローラ１３は、インターフェース１７を介して接続されるホスト機器からコマンドを受け取る。この例では上記のようにカメラ部５０をホスト機器としている。例えばカメラ部５０からのコマンドはＣＰＵ１１に受け渡され、ＣＰＵ１１はそのコマンド処理を行い、ディスクコントローラ１３はコマンド処理結果に従って、データ読み書き制御部１５やサーボ制御部１６に対するハードウェア操作を指示する。
インターフェース１７経由でカメラ部５０から受け取った書込みデータや、磁気ディスク２１から読み取ってカメラ部５０に渡されるデータは、バッファＲＡＭ１４に一時的に格納される。
【００３５】
データ読み書き制御部１５は、符号化変調処理を行って実際に記録するデータパターンを作成し、プリアンプ２５を介して磁気ディスク２１にデータを書き込む。また、逆に読み込んだデータをプリアンプ２５を介して磁気ディスク２１から取り込み、データの復調処理を行う。
【００３６】
サーボ制御部１６は、磁気ヘッド２２ａ、２２ｂを搭載したアームを移動するボイスコイルモータ（ＶＣＭ）２３、及び磁気ディスク２１を回転させるスピンドルモータ（ＳＰＭ）２４を同期的駆動させて、磁気ヘッド２２ａ、２２ｂが磁気ディスク２１上の目的とするトラック上の所定範囲内に到達するように制御する。さらに、ディスク上のサーボパターンよりヘッド位置を所定の位置にシークさせるための制御を行う。
【００３７】
磁気ディスク２１上には、データを記録するための区画である多数のトラックが同心円状に形成され、例えばディスク２１の最外周から、内周に向かって０，１，２，…とトラック番号が割り振られている。また、各トラックは、さらにセクタ毎に分割されており、このセクタ単位が、データ読み書き動作の可能な最小単位となっている。
セクタ内のデータ量は例えば５１２バイトで固定である。
実際に記録されているセクタには、データに加えて、ヘッダ情報やエラー訂正用コードなどが付加されている。
【００３８】
図１には、特にＣＰＵ１１とＲＯＭ／ＲＡＭ１２にまたがるようにして、ＥＣＣ制御情報発生部２６を示している。
このＥＣＣ制御情報発生部２６は、エラー訂正符号のパリティ構造やインターリーブ構造を指示する制御情報を発生する部位である。
ＥＣＣ制御情報発生部２６は、制御情報生成に用いるテーブルを記憶する場所を、例えばＲＯＭ／ＲＡＭ１２とし、その制御を例えばＣＰＵ１１によって行うことで、その機能が実現される。
このＥＣＣ制御情報発生部２６からの制御信号によって、記録再生されるフォーマットが決定する。フォーマットとは例えば、トラック単位のセクタ数をまとめてＥＣＣブロックとし、そこにはセクタ内のエラー訂正を行うＣ１パリティやセクタ間のエラー訂正を行うためのＣ２パリティを持つ形式とされる。
またＥＣＣブロックはインターリーブ構造を備えるが、そのインターリーブ構成を後述するようにして設定する。
【００３９】
１周当たりのセクタ数については、周長が長くなる外側のトラックに向かうほどセクタ数を多く設けるＺＢＲ（Zone Bit Recording）方式を採用する。すなわち、磁気ディスク２１の全周に渡るトラック毎のセクタ数は均一ではなく、磁気ディスク２１を半径方向に複数のゾーンに区切り、各ゾーン内においては同じセクタ数となるように設定する。
ゾーンの切り替えに当たり、具体的なセクタ数については、スピンドルモータ２４の回転数は一定とし、記録再生クロックを可変にするなどによって、線記録密度を所定の範囲におさめ、ディスク当たりの記憶容量を増加させるように決定される。
【００４０】
図２は、図１のディスクコントローラ１３の内部構成をより詳細に示している。同図に示すように、ディスクコントローラ１３は、ＣＰＵインターフェース３１と、ホストコントローラ３２と、バッファコントローラ３３と、サーボコントローラ３４と、ディスクフォーマッタ３５と、ＥＣＣコントローラ３６とで構成されている。なお、同図において、データの移動が発生する矢印に対しては二重線で示してある。
【００４１】
ＣＰＵインターフェース３１は、ＣＰＵ１１と、ＲＡＭ／ＲＯＭ１２とのインターフェースであり、カメラ部５０等のホストからのコマンドをＣＰＵ１１に通知したり、ＣＰＵ１１からのコマンド処理結果の受信などを行ったりする。
ホストコントローラ３２は、インターフェース１７を介して接続されるホスト（カメラ部５０）との通信を行う。
バッファコントローラ３３は、バッファＲＡＭ１４と、ディスクコントローラ１３内の各部間でのデータのやりとりを制御する。
サーボコントローラ３４は、ＶＣＭ（ボイスコイルモータ）２３及びＳＰＭ（スピンドルモータ）２４の動作を制御することによって、磁気ディスク２１上のサーボパターンからサーボ情報を読み取り、この情報をサーボ制御部１５へ渡す。
ディスクフォーマッタ３５は、バッファＲＡＭ１４上のデータを磁気ディスク２１に書き込んだり、あるいは磁気ディスク２１からデータを読出したりするための制御を行う。
ＥＣＣコントローラ３６は、バッファＲＡＭ１４に格納されているデータより、書込み時にはＥＣＣ符号を生成して付加したり、あるいは読出し時にはエラー訂正を行ったりする。
このような図２に示すディスクコントローラ１３は、ＣＰＵ１１（及びＣＰＵ１１とＲＯＭ／ＲＡＭ１２により形成されるＥＣＣ制御情報発生部２６）より、フォーマッタ制御情報およびＥＣＣ制御情報を受け取る。
即ちディスクコントローラ１３は、ＥＣＣ制御情報発生部２６によるパリティ数やインターリーブ構造の制御情報をＣＰＵインターフェース３１を通して受け取る。そしてディスクフォーマッタ３５へは、ＥＣＣ制御情報に基づくフォーマッタ制御情報が、またＥＣＣコントローラ３６へは、ＥＣＣエラー訂正処理（エラー訂正符号化処理及びエラー訂正デコード処理）に必要なＥＣＣフォーマット及びインターリーブ構造の情報が、それぞれ送られる。
【００４２】
アクセス方式としては、いわゆるＬＢＡ（Logical Block Address）に基づいてアクセスを行う。
ＬＢＡによるアクセスを行う場合においては、上記フォーマッタ制御情報は、シークされたトラック上でアクセス可能となった後、ＬＢＡで指定されたセクタのアクセスを行うためのフォーマット情報である。この情報は、ＣＰＵインターフェース３１を介してディスクフォーマッタ３５へ送られ、ここでデータフォーマッタが生成される。
また、ＥＣＣ制御情報におけるＥＣＣフォーマットの情報は、第１のエラー訂正符号Ｃ１によるＥＣＣブロック構成、もしくは第１のエラー訂正符号Ｃ１と第２のエラー訂正符号Ｃ２を持つＥＣＣブロック構成の設定を行うための情報であり、また例えばゾーン毎に、セクタ数などに応じてＥＣＣブロック構成を可変する場合に、その構成を指示する情報となる。この情報は、ＣＰＵインターフェース３１を介してＥＣＣコントローラ３６へ送られ、ここでＥＣＣブロック構成が設定され、バッファＲＡＭ１４をアクセスして所定のＥＣＣ処理が行われる。
【００４３】
なお、これら制御情報（フォーマッタ制御情報、ＥＣＣ制御情報）は、図１のＣＰＵ１１に付随するＲＯＭ／ＲＡＭ内に記憶させておくほか、例えば、磁気ディスク２１にこれらの情報を記憶させておき、起動時に、磁気ディスク２１より読出しを行い、バッファＲＡＭ１４に格納するようにしてもよく、この場合バッファＲＡＭ１４から制御情報を各部に送るようにすればよい。
【００４４】
２．エラー周期性を考慮したインターリーブ構成の設定
２−１  セクタのインターリーブ設定
本例のＨＤＤ１０は、例えばディスク２１におけるゾーン毎にインターリーブ構造を設定するが、サーボフレーム数を９６，インターリーブの符号フレームの符号長最大値を２５５として、ゾーン毎に通常にインターリーブ設定した例は、先に図１６に示した。
通常のインターリーブ設定とは、まず、符号長最大値を考慮した上で、各符号フレームの符号長ができるだけ大きくなるようにインターリーブ数を設定する。そして各コードは、各符号フレームに順番に割り当てていくように配置するものである。セクタのインターリーブとして、そのような通常のインターリーブ設定を行った例は図１４に示したようになる。
ところがエラー発生の周期性により、通常のインターリーブ設定を行うと、図１６におけるゾーン＃４，＃１０，＃１３のように、特定の符号フレームにエラーセクタが集中する場合が発生する。
そこで本例では、インターリーブ周期とエラー発生周期との相関によるエラー集中を避けるようにセクタのインターリーブ設定を行うものである。
特に、図１５で説明したように、サーボフレーム周期のような特定周期においてエラーが発生する傾向がある場合、インターリーブ構成にエラー周期性をできるだけ排除する仕組みを取り入れる。  
エラー集中を緩和するための手法としては、
・セクタエラー発生分布の周期性に基づいてインターリーブ数を可変設定する
・セクタエラー発生分布の周期性に基づいてセクタ毎の符号フレームの割り当て順序を可変設定する
という２つの手法が考えられる。
【００４５】
まずインターリーブ数を可変設定する例を図３に示す。
図３（ａ）において、エラー集中が想定されないゾーン、即ちゾーン＃０〜＃３、＃５〜＃９、＃１１，＃１２，＃１４，＃１５については通常のインターリーブ設定を行っている。つまりこれらのゾーンについては図１６と同様の設定である。
一方、ゾーン＃４，＃１０，＃１３については、通常のインターリーブ設定を行うとエラー集中が発生する可能性があるため、これらのゾーンではインターリーブ数ｍを可変設定することとする。
そこでゾーン＃４については、図示するようにインターリーブ数ｍ＝４とし、４つの符号フレームｉ０，ｉ１，ｉ２，ｉ３でインターリーブを行う。１トラックあたりのセクタ数は５７６であるので、各符号フレームｉ０，ｉ１，ｉ２，ｉ３の符号長は、それぞれ１４４セクタとなる。
するとゾーン＃４の各セクタｔ0、ｔ0+1・・・は図３（ｂ）に示すように、順番に各符号フレームｉ０，ｉ１，ｉ２，ｉ３に割り当てられていくが、例えば＊を付したサーボフレーム周期のセクタは１つの符号フレームに集中しないことになる。
【００４６】
同様に、ゾーン＃１０については、インターリーブ数ｍ＝３とし、３つの符号フレームｉ０，ｉ１，ｉ２でインターリーブを行う。各符号フレームｉ０，ｉ１，ｉ２の符号長は、それぞれ１６０セクタとする。
またゾーン＃１３については、インターリーブ数ｍ＝３とし、３つの符号フレームｉ０，ｉ１，ｉ２でインターリーブを行う。各符号フレームｉ０，ｉ１，ｉ２の符号長は、それぞれ１２８セクタとする。
【００４７】
このようにインターリーブ数ｍの設定を変えることで、エラー発生頻度の周期性による特定の符号フレームへのエラー集中を避けることができる。
例えば上記ゾーン＃４、＃１０、＃１３においてインターリーブ数ｍを１増やすことで、エラー集中の周期を６セクタから１２セクタ、１０セクタから１５セクタ、４セクタから１２セクタにそれぞれ大きくし、エラーの集中を緩和できる。
なお、この手法では符号フレームあたりの符号長が小さくなるというデメリットがあるが、エラー集中を避け、本来のＥＣＣエラー訂正能力を発揮させる点で有効である。
ところで、この例ではインターリーブ数ｍを増やすものとしたが、場合によってはインターリーブ数ｍを減らしてエラー周期性によるエラー集中を避けることができる場合もある。
【００４８】
次に、インターリーブ数ｍの設定を通常とし、セクタエラー発生分布の周期性に基づいてセクタ毎の符号フレームの割り当て順序を可変設定する例を説明する。
各セクタについて符号フレームの割当順序を可変設定する方式としては、或る規則によりサーボフレーム単位での符号フレーム番号の割当順序を変えていくことや、割当順序をランダム設定することが考えられる。
【００４９】
まず図４（ａ）に、或る規則性をもって割当順序を可変設定する例を示す。上記同様にゾーン＃４を例に挙げる。通常のインターリーブ設定では、１トラックあたりのセクタ数が５７６であるゾーン＃４ではインターリーブ数ｍ＝３とされるため、この場合、インターリーブ数ｍ＝３とする。
そして９６個のサーボエリアが存在する場合、各サーボフレームＳＦには６セクタが含まれることになるが、図４（ａ）に示すように、最初のサーボフレームＳＦ０では、６個のセクタを、符号フレームｉ０，ｉ１，ｉ２の順番に割り当てる。
次のサーボフレームＳＦ１では、６個のセクタを、符号フレームｉ１，ｉ２，ｉ０の順番に割り当てる。
さらに次のサーボフレームＳＦ２では、６個のセクタを、符号フレームｉ２，ｉ０，ｉ１の順番に割り当てる。
この３つの割当パターンを各サーボフレーム単位で繰り返していく。
【００５０】
各セクタをこのように符号フレームに割り当てる場合、各セクタのＬＢＡから、次の計算で符号フレームｉを算出すればよい。
トラック先頭セクタのＬＢＡはｔ0であるとき、対象とする或るセクタのＬＢＡを用いて、符号フレームｉは、
ｉ＝（（LBA−ｔ0）＋└（LBA−ｔ0）／SC┘）mod  ｍ
で算出される。なおこの式のｉは、その値が０であればｉ０、ｉの値が１であればｉ１・・・という意味である。
また「SC」は１サーボフレームＳＦ内のセクタ数、「mod」は剰余、「└  ┘」は小数点以下切り捨てを意味している。
１サーボフレームＳＦ内のセクタ数SCは、
SC＝［１トラック内のセクタ数／サーボフレーム数］
で算出される。この式の［  ］は四捨五入を意味している。ゾーン＃４の場合、SC＝［５７６÷９６］＝６となる。
【００５１】
このようにして各セクタを符号フレームに割り当てていくことで、サーボフレーム周期のセクタは、３つの符号フレームｉ０，ｉ１，ｉ２に割り振られていくことになる。従って、エラー発生頻度の周期性（サーボフレーム周期）による特定の符号フレームへのエラー集中を避けることができる。
この例ではサーボフレーム周期のエラーが６セクタ周期から１８セクタ周期へと拡大される。このゾーン＃４ではトラックあたりのセクタ数が５７６であるため、特定の符号フレームへのエラー集中の回数が９６回から３２回へと大幅に少なくなる。
同様の対策を行った結果、ゾーン＃１０ではエラー集中の周期が１０セクタから２０セクタ、になり、エラー集中の回数は４８回から２４回に減る。またゾーン＃１３ではエラー集中の周期が４セクタから８セクタになることで、エラー集中の回数は９６回から４８回に減る。
【００５２】
なお、上記したインターリーブ数ｍを可変する場合に比べた場合、この手法によれば符号長が最大となるよう設定した符号フレームあたりのセクタ数に変更がないという利点が得られる。但し、バーストエラーなどの複数セクタに連続するエラーに対して符号フレームごとのコードの分散が不十分になる場合がある。
バーストエラーの発生する割合が低く、バーストエラーに対する符号フレームごとの符号の分散が比較的要求されない場合は、図４（ｂ）に示すようなインターリーブ数ｍは符号長が最大となるよう設定し、符号フレームごとのコード配置をエラー周期でのセクタごとにランダム的に行う方法が有効である。
【００５３】
図４（ｂ）は、ゾーン＃４について、インターリーブ数ｍは通常どおり「３」とし、各セクタをランダムに符号フレームに割り当てる例を示している。
この図の例の場合、最初のサーボフレームＳＦ０では、６個のセクタを、符号フレームｉ２，ｉ０，ｉ１，ｉ１，ｉ２，ｉ０に割り当てる。
次のサーボフレームＳＦ１では、６個のセクタを、符号フレームｉ１，ｉ２，ｉ２，ｉ０，ｉ１，ｉ０に割り当てる。
さらに次のサーボフレームＳＦ２では、６個のセクタを、符号フレームｉ０，ｉ２，ｉ１，ｉ２，ｉ１，ｉ０に割り当てている。
以降のサーボフレームでも、ランダムな順序で割り当てていく。
【００５４】
このようにサーボフレーム単位で各セクタをランダムに符号フレームに割り当てていくことでも、サーボフレーム周期のセクタは、３つの符号フレームｉ０，ｉ１，ｉ２に割り振られていくことになる。従って、エラー発生頻度の周期性（サーボフレーム周期）による特定の符号フレームへのエラー集中を避けることができる。
なお、ここでは「ランダム」という言葉を用いているが、完全なランダム順序ではなく、最終的に各符号フレームの符号長が、インターリーブ数ｍとセクタ数から導かれる符号長となるようにする必要はある。例えば図４（ｂ）の例ではサーボフレーム内に６個のセクタが含まれ、インターリーブ数ｍ＝３の場合であるが、各サーボフレーム単位で、２セクタづつが符号フレームｉ０，ｉ１，ｉ２に振り分けられるようにすることで、各符号フレームｉ０，ｉ１，ｉ２の符号長は設定された１４４セクタとすることができる。
但し、逆に言えば、結果的に各符号フレームｉ０，ｉ１，ｉ２の符号長が１４４セクタとなるのであれば、必ずしもサーボフレーム単位で２セクタづつを各符号フレームに振り分けるという必要はない。
【００５５】
また、ランダムに振り分ける場合、デインターリーブ時の処理も考慮しなければならない。つまり、インターリーブ時に割当順序がデインターリーブ時にわかっていなければ、セクタ順序を正しく戻すことができないためである。
このため、各セクタについてランダムに０，１，２の数値を発生させ、符号フレームｉ０，ｉ１，ｉ２の数値に振り分けた場合、そのランダムな順序の符号フレーム番号を記憶しておく必要がある。例えばＲＯＭ／ＲＡＭ１２、或いは磁気ディスク２１内の所定領域に、このランダム数列を記憶させ、デインターリーブ時に参照できるようにする必要がある。
また、その意味で言えば、ランダムパターンとして固定的なパターンを予め設定しておくこととしてもよい。インターリーブ数ｍとサーボフレーム内のセクタ数の関係としての各組み合わせの上で、例えば数サーボフレーム単位、或いはトラック単位などでランダム数列を設定しておき、例えばＲＯＭ／ＲＡＭ１２、或いは磁気ディスク２１内の所定領域に記憶させておく。そしてインターリーブ時には、組み合わせが該当するランダムパターンを用いて、各セクタを各符号フレームに振り分けていくという方式が考えられる。その場合、デインターリーブ時も、組み合わせが該当するランダムパターンを参照することで正しくデインターリーブできることになる。
【００５６】
なお、エラー集中を緩和するための手法として、セクタエラー発生分布の周期性に基づいてインターリーブ数を可変設定することと、セクタ毎の符号フレームの割り当て順序を可変設定することをそれぞれ述べたが、この２つを組み合わせても良い。
つまりインターリーブ数ｍを通常とは異なる設定としたうえで、セクタ毎の符号フレームの割り当て順序を可変設定することも考えられる。
【００５７】
２−２  セクタ内のバイトデータのインターリーブ設定
次に、セクタ内のバイトデータのインターリーブ設定について説明する。
図１７（ａ）で述べたように、セクタ内の論理バイト位置についてのエラー頻度に偏りがみられる場合、図１７（ｂ）に示す１セクタを単位としたエラー訂正では図の縦列に沿ったバイトデータに対してエラー訂正が行われることから、エラー集中が発生することがある。
そこで本例では、以下のいずれかの方法によりセクタ内の論理バイト位置に対してエラーの分散を図る。
・セクタごとにバイトデータの並びを変更する
・セクタ内にてのＥＣＣコードを複数ブロックに分割しエラーが分散するよう配置する
【００５８】
まず、セクタごとにバイトデータの並びを変更する例を図５に示す。
例えば図１７（ａ）に示したエラー頻度では、セクタ内バイト位置の先頭から数１０セクタの範囲を除くと、セクタ先頭から末尾に従いエラー頻度が減少する傾向にある。
ここで図１７（ｂ）のＥＣＣ構成のように各セクタにおいてバイト位置を通常に０〜５１１まで並べ、セクタ内バイト位置に沿ってバイト単位でエラー訂正が行われるようにすると、セクタ内エラー分布の偏りに伴い特定のバイト位置にエラーが集中してしまう。
そこで図５に示すように、バイト並びの逆順を組み合わせたＥＣＣ構成を用いるようにする。即ち、バイト位置順が０〜５１１のセクタと、バイト位置順が５１１〜０のセクタを交互に配置するようなＥＣＣ構成とする。
このようにすることで、符号長ｎに対するエラーの割合を平均化することができ、エラー発生頻度分布に基づくエラー集中を避けることができる。
【００５９】
次にセクタ内のＥＣＣコードを複数ブロックに分割しエラーが分散するよう配置する例を図６，図７で説明する。
これは、エラーの頻度を考慮してセクタ内データを複数のブロックに分割し、そのブロックを再配置するインターリーブ構成である。
図６（ａ）に示すように、セクタ内のエラー頻度が先頭から２３％分のバイト位置にエラーが多く、末尾から３０％のバイト位置に少ないことを考慮し、セクタ内をブロックａ〜ｄの4等分割し、エラーの多い場所と少ない場所を組み合わせるようなインターリーブ配置を行う。
１セクタ＝５１２バイトとすると、ブロックａはバイト０〜１２７、ブロックｂはバイト１２８〜２５５、ブロックｃはバイト２５６〜３８３、ブロックｄはバイト３８４〜５１１とする。
【００６０】
例えば図６（ｂ）は、各セクタＳＣ（ＳＣ＃１、ＳＣ＃２・・・）を、それぞれ４つのブロックａ，ｂ，ｃ，ｄに分割した状態を示している。例えばセクタＳＣ＃１はブロック＃１ａ〜＃１ｄに分割し、セクタＳＣ＃２はブロック＃２ａ〜＃２ｄに分割する。
そして図６（ｃ）に示すように、ブロックａ，ｂ，ｃ，ｄの順番に並べるセクタとブロックｂ，ｃ，ｂ，ａの順番に並べるセクタとを交互に配置する。即ちセクタＳＣ＃１はブロック＃１ａ、＃１ｂ、＃１ｃ、＃１ｄと配置し、セクタＳＣ＃２はブロック＃２ｄ、＃２ｃ、＃２ｂ、＃２ａと配置し、セクタＳＣ＃３はブロック＃３ａ、＃３ｂ、＃３ｃ、＃３ｄと配置し・・・というようにする。
図７は、この図６（ｃ）の配置によるＥＣＣ構成をバイト単位で示したものである。
するとこの図７からわかるように、バイト０〜１２７、１２８〜２５５、２５６〜３８３、３８４〜５１１の順番に配置されるセクタと、バイト３８４〜５１１、２５６〜３８３、１２８〜２５５、０〜１２７の順番に配置されるセクタが交互に縦方向に並ぶＥＣＣ構造となる。
このようなＥＣＣ構造とすることで、セクタ内のエラーの多い区間とエラーの少ない区間を組み合わせることになり、エラー集中を回避し、符号長のエラーに対する割合を減らすことができる。
【００６１】
３．インターリーブ構成の設定処理例
３−１  セクタのインターリーブ設定処理
本例では、以上のようにセクタのインターリーブ設定、或いはセクタ内バイト配置のインターリーブ設定を行うが、これらを実現するＣＰＵ１１（ＥＣＣ制御情報発生部２６）の処理を説明する。
【００６２】
まず図８で、セクタのインターリーブ設定として、上記図３又は図４のようなインターリーブ設定を行う符号語配置設定処理を説明する。
ステップＦ１０１では変数ｘを０とし、ステップＦ１０２以降でゾーン＃ｘ、つまり最初にゾーン＃０についての処理を行う。
まずステップＦ１０２でゾーン＃０においてデータ記録再生を行い、各トラック毎にセクタエラー位置を測定していく。測定は、ゾーン＃（ｘ）内の全トラックについて行っても良いし、ゾーン内の一部区間の所定トラック数を測定対象としてもよい。
ステップＦ１０３では、セクタエラー測定結果から得られるエラー周期性と、そのゾーンについての通常のインターリーブ設定でのインターリーブ数ｍの関係から、特定の符号フレームにエラー集中が発生する可能性があるか否かを判断する。
具体的には、例えば、インターリーブのコード配置周期（インターリーブ数ｍ）と、ステップＦ１０２で計測されたセクタエラーのトラック内相対位置における周期（例えばサーボフレーム周期）の最小公倍数となる周期が、データ長（セクタ数）よりも小さい場合、特定の符号フレームへのエラー集中が生じる可能性があると判断する。
【００６３】
エラー集中が発生する可能性がないとされる場合は、ステップＦ１０４に進んで、当該ゾーンについて通常のインターリーブ設定を行う。即ち上述したように、符号長最大値を考慮した上で、各符号フレームの符号長ができるだけ大きくなるようにインターリーブ数を設定し、そして各符号語（この場合セクタ）を、各符号フレームに順番に割り当てていくように配置する。
【００６４】
一方、ステップＦ１０３でエラー集中が発生する可能性があると判断した場合は、ステップＦ１０５に進み、当該ゾーンについてはエラー周期性を考慮した符号語は位置設定を行う。
即ち、図３の例を採用するなら、インターリーブ数ｍを通常の設定とは異なる値とする。また図４で説明した例を採用するなら、セクタ毎の符号フレームの割り当て順序を可変設定する。
【００６５】
ステップＦ１０６では、変数ｘの値を確認し、ｘ＝最終ゾーンナンバでなければ、ステップＦ１０７で変数ｘをインクリメントしてステップＦ１０２に戻る。そして次のゾーンについて同様の処理を行う。
つまり、各ゾーンについてステップＦ１０２、Ｆ１０３の処理が行われ、ステップＦ１０４もしくＦ１０５でインターリーブ設定が行われていく。そしてステップＦ１０６で変数ｘの値から最終ゾーンまでの処理が完了したことを確認し、符号語配置設定処理を終える。
【００６６】
例えば、ステップＦ１０５においてはインターリーブ数ｍを可変する処理を行うとすると、図３（ａ）に示したインターリーブ設定が行われることになる。即ちゾーン＃４，＃１０，＃１３についてはステップＦ１０５で通常とは異なるインターリーブ数ｍが設定され、他のゾーンではステップＦ１０４で通常のインターリーブ数ｍの設定が行われる。
【００６７】
この図８の処理は、ＨＤＤ１０における工場出荷前の初期設定などにおいて行われ、この処理によるインターリーブ設定情報がＲＯＭ／ＲＡＭ１２の不揮発性領域或いは磁気ディスク２１内の特定の領域などに記憶されればよい。
また、出荷後におけるユーザーサイドでの初期設定時、フォーマット時などに行われるようにしてもよい。
なお、ステップＦ１０２の測定は、実際にエラーセクタを検出することはせずに、サーボフレーム数からエラー発生周期を推定するようにしてもよい。
【００６８】
このようになされたインターリーブ設定は、記録再生時のＥＣＣ処理に用いられることになる。
図９により、記録再生時のＥＣＣ処理の流れについて説明する。
図９は、データ書込又は読出時においてＣＰＵ１１、ディスクコントローラ１３を中心とした図１の各部の動作によって実現される処理を示している。
先ずステップＦ２０１で書き込み先の目標トラックが設定されると、ステップＦ２０２では、そのトラックが含まれるゾーンを判別する。
次にステップＦ２０３では、上述した図８の処理で設定され、ＲＯＭ／ＲＡＭ１２に記憶されているインターリーブ設定情報を参照し、ステップＦ２０４で当該ゾーンにおけるインターリーブ設定（符号語配置設定）を読み出す。
そしてステップＦ２０５でＣＰＵ１１（ＥＣＣ制御情報発生部２６）は、読み出したインターリーブ設定や、パリティ設定を含むＥＣＣ制御情報をディスクコントローラ１３に送り、記録再生しようとするトラックのデータに対してＥＣＣコントローラ３６が処理するＥＣＣフォーマットを決定させる。そして書込、又は読出処理に進む。
書込時であれば、ＥＣＣコントローラ３６は、指示されたパリティセクタ数やインターリーブ設定に従ってＥＣＣブロックを生成することになる。そして書込処理に進む。
読出時であれば、ＥＣＣコントローラ３６は、指示されたパリティセクタ数やインターリーブ設定に従ったＥＣＣブロックフォーマットを確定する。そしてその後、該当トラックから読み出されてきたをデータに対して、当該ＥＣＣブロックフォーマットにおいてエラー訂正処理やデインターリーブを行うことになる。
【００６９】
３−２  セクタ内のバイトデータのインターリーブ設定処理
次にセクタ内のバイトデータのインターリーブ設定処理について図１０で説明する。
この図１０の処理も、上記図８と同様に工場集荷前その他のフォーマット時、初期設定時などにおいて行われればよい。
ＣＰＵ１１はまずステップＦ３０１として、測定対象の複数セクタ範囲を設定し、その複数セクタについてバイトエラーの測定を行う。
つまり測定対象とする複数セクタにおいてデータ記録再生を行い、各セクタ毎にバイトエラー位置を測定していく。
ステップＦ３０２では、上記測定結果から、セクタ内のバイトエラー分布に周期性があるか否かを判断する。即ち特定バイト位置、バイト位置範囲などにおいてエラー発生が多く検出されたか否かを判断する。
【００７０】
もしセクタ内のバイトエラー分布に周期性が無ければ、ステップＦ３０３で通常のセクタ内符号語配置設定を行う。即ち図１７（ｂ）のような符号語配置設定とする。
一方、セクタ内のバイトエラー分布に周期性があれば、それによってエラー集中が発生することを避けるため、ステップＦ３０４で、エラー周期性を考慮したセクタ内符号語配置設定を行う。即ち図５又は図７のような符号語配置設定とする。
このようにセクタ内バイトデータの符号語配置設定を行うことで、エラー周期性によるエラー集中を避けることができる。もちろん記録再生時においては、この図１０によるバイト配置設定をＥＣＣ制御情報に含めてＥＣＣコントローラ３６に受け渡すことで、セクタ内のバイトデータ配置においてエラー訂正方向にエラー集中しないようにすることができるものである。
【００７１】
なお、この図１０の設定はセクタ内のバイトデータの配置設定であるため、上記図８によるセクタインターリーブ設定とともに実行することができる。
つまり、ＨＤＤ１０における実装レベルでの処理例としては、図８のセクタインターリーブ設定のみを行う例、図１０のセクタ内バイトデータのインターリーブ設定を行う例、及びセクタインターリーブ設定とセクタ内バイトデータのインターリーブ設定の両方を行う例が考えられる。
【００７２】
以上のようにして本例のＨＤＤ１０は、エラー周期性を考慮したＥＣＣ設定が可能となり、ＥＣＣ単位（符号フレーム）におけるエラー数を平均化し最大値を押し下げることができる。これにより本来のエラー訂正能力を発揮できる。またそれによりエラーに対するマージンを大きくとれることになる。するとＥＣＣパリティ数を少なくすることも可能となり、データ領域を大きくとることもできる。すなわちデータ容量増大や転送レート向上、データ密度が上昇などにも繋げることができる。
【００７３】
４．変形例
以下では、各種変形例や応用例を説明する。
上記実施の形態では、ＨＤＤ１０内の制御部（ＣＰＵ１１やディスクコントローラ１３）により、本発明の記録再生制御装置、記録再生制御方法が実現される例とした。この別例として、ＨＤＤとは別体の機器として図１１に示すＨＤＤ制御装置６０を設け、このＨＤＤ制御装置６０が本発明の記録再生制御装置とされる例も考えられる。
図１１のシステムの場合、例えばホスト機器とされるカメラ部５０と、ＨＤＤ１０Ａの間に、ＨＤＤ制御装置６０が接続される構成を採る。この場合ＨＤＤ１０Ａは、従前の通常のＨＤＤとされ、上述したインターリーブ設定機能を備えないものとする。
【００７４】
ＨＤＤ制御装置６０は、ＣＰＵ６１，ＡＴＡインターフェース６３、外部インターフェース６４、メモリコントローラ６６、バッファＲＡＭ６７を備え、これらの間のデータ／コマンド／制御情報の転送がＣＰＵバス６２、データバス６５で行われる構成とされている。
外部インターフェース６４はカメラ部５０との間で、コマンドや記録再生データの受け渡しを行う。ＡＴＡインターフェース６３は、ＨＤＤ１０Ａとの間でコマンドや記録再生データの受け渡しを行う。
ＨＤＤ１０Ａでの記録のためにカメラ部５０から外部インターフェース６４に転送されてくるデータは、メモリコントローラ６６の制御によりバッファＲＡＭ６７に一旦蓄積され、所定タイミングで読み出されてＡＴＡインターフェース６３からＨＤＤ１０Ａに供給される。
またＨＤＤ１０Ａで再生されＡＴＡインターフェース６３に転送されてくるデータは、メモリコントローラ６６の制御によりバッファＲＡＭ６７に一旦蓄積され、所定タイミングで読み出されて外部インターフェース６４からカメラ部５０に供給される。
【００７５】
この場合、システム接続された際に、ＣＰＵ６１がＨＤＤ１０Ａを制御しながら上述した図８や図１０の符号語配置設定処理を行う。
即ち、ＣＰＵ６１はＨＤＤ１０Ａに対してコマンドを発し、セクタエラーやセクタ内バイトエラーの測定のための記録再生動作を実行させ、その測定結果に基づいて符号語配置設定を行う。
その後、カメラ部５０から記録要求が発せられた場合は、カメラ部５０から転送されてくるＡＶストリームデータをバッファＲＡＭ６７に蓄積させながら、所定のアクセス単位サイズ毎にバッファＲＡＭ６７から読み出し、ＨＤＤ１０Ａに転送させていく。各アクセス単位サイズのデータをＨＤＤ１０Ａに転送する際には、その書込先のＬＢＡを指定して書込指示を行うと共に、その書込先のゾーンに応じたインターリーブ設定や、セクタ内のバイト配置としてのインターリーブ設定をＨＤＤ１０Ａに受け渡す。ＨＤＤ１０Ａは、受け渡されたインターリーブ設定に基づくＥＣＣ処理を行う。
またカメラ部５０からデータの再生指示を受けた場合は、ＨＤＤ１０Ａに読出を開始するＬＢＡを指示し、再生を実行させる。このときも、その読出位置に対応するインターリーブ設定を通知し、適切なデインターリーブが行われるようにする。
【００７６】
このような処理を行うＨＤＤ制御装置６０によっても、上記実施の形態で説明したものと同様の効果を得ることができる。
また、このようにＨＤＤとは別体のＨＤＤ制御装置６０を設けることによっては、従前のＨＤＤにおいてエラー訂正能力の向上を図ることができるものとなり、従前のＨＤＤの記録再生性能を向上させることができる。
また、このようにＨＤＤ制御装置６０を設ける場合、ＨＤＤ制御装置６０内でインターリーブ設定に従ったインターリーブ／デインターリーブが行われるようにしてもよい。
即ち、記録時にはＨＤＤ制御装置６０内で、インターリーブしたデータをＨＤＤ１０Ａに受け渡す。また再生時には、ＨＤＤ１０Ａから転送されてきたデータをＨＤＤ制御装置６０でデインターリーブしてカメラ部５０に転送するという処理も考えられる。
さらには、ＨＤＤ制御装置６０としての機能を、カメラ部５０などのホスト機器に内蔵してもよい。
【００７７】
また本発明は、ＨＤＤに限らず、他の種のディスク記録再生装置においても本発明は適用可能である。例えばトラックが同心円状とされるものの他、スパイラル状とされるディスクについてのシステムでも適用できる。もちろん磁気ディスクに限らず、光ディスク、光磁気ディスクについてのシステムでも適用できる。
また、一般にＨＤＤではディスク２１は装置内に固定的に内蔵されるが、ディスク２１を着脱可能とするＨＤＤも考えられる。そのような装置でも本発明は適用可能である。
【００７８】
また本発明においてＣＰＵ１１等にインターリーブ設定を実行させるプログラムは、例えばＲＯＭ／ＲＡＭ１２に予め記憶しておくことができる。或いは磁気ディスク２１に記憶しておき、ＲＯＭ／ＲＡＭ１２にロードされる形態も考えられる。
【図面の簡単な説明】
【００７９】
【図１】本発明の実施の形態のＨＤＤの全体構成のブロック図である。
【図２】実施の形態のＨＤＤのディスクコントローラのブロック図である。
【図３】実施の形態のエラー周期性に応じたインターリーブ数設定の説明図である。
【図４】実施の形態のセクタ毎の符号フレームの割当の可変設定の説明図である。
【図５】実施の形態のセクタ内バイトデータのインターリーブ設定の説明図である。
【図６】実施の形態のセクタ内バイトデータをブロック化してその割当を可変設定する場合の説明図である。
【図７】実施の形態のインターリーブ設定のブロック割当の説明図である。
【図８】実施の形態の符号語配置設定処理のフローチャートである。
【図９】実施の形態の記録再生時の処理のフローチャートである。
【図１０】実施の形態のセクタ内の符号語配置設定処理のフローチャートである。
【図１１】他の実施の形態のＨＤＤ制御装置のブロック図である。
【図１２】ディスクのゾーンの説明図である。
【図１３】ディスクのサーボエリアの説明図である。
【図１４】通常のインターリーブ設定の説明図である。
【図１５】エラー発生頻度の周期性の説明図である。
【図１６】通常のインターリーブ設定におけるエラー集中の説明図である。
【図１７】セクタ内のデータのエラー発生頻度の説明図である。
【符号の説明】
【００８０】
１０  ＨＤＤ（ハードディスク装置）、１１，６１  ＣＰＵ、１２  ＲＯＭ／ＲＡＭ、１３  ディスクコントローラ、１４，６７  バッファＲＡＭ、１５  データ読み書き制御部、１６  サーボ制御部、２１  磁気ディスク  ２２，２２ａ，２２ｂ  磁気ヘッド、２６  ＥＣＣ制御情報発生部、３１  ＣＰＵインターフェース、３５  ディスクフォーマッタ、３６  ＥＣＣコントローラ
【図１】
2006031825.tif 000003
【図２】
2006031825.tif 000004
【図３】
2006031825.tif 000005
【図４】
2006031825.tif 000006
【図５】
2006031825.tif 000007
【図６】
2006031825.tif 000008
【図７】
2006031825.tif 000009
【図８】
2006031825.tif 000010
【図９】
2006031825.tif 000011
【図１０】
2006031825.tif 000012
【図１１】
2006031825.tif 000013
【図１２】
2006031825.tif 000014
【図１３】
2006031825.tif 000015
【図１４】
2006031825.tif 000016
【図１５】
2006031825.tif 000017
【図１６】
2006031825.tif 000018
【図１７】
2006031825.tif 000019