(57)【要約】【課題】  効率的なＥＣＣ構成により安定したシステムの提供【解決手段】  第１のエラー訂正符号単位と第２のエラー訂正符号単位を用いることによって、より広い範囲でのランダムエラーやバーストエラーに対してもエラー訂正が可能として、リトライ動作を回避することによって、転送速度を低下させることなく、安定したデータ再生を行う。また、エラー訂正ブロックの構成は、アクセスするトラックにおけるセクタ数に応じて設定する。例えばＣ２セクタ数やインターリーブ構造をセクタ数に応じて設定する。【選択図】        図８
2005259311.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：論理ブロック・アドレス）モードが採用されている。これは、シリンダ番号、ヘッド番号、セクタ番号（ＣＨＳ）を０から始まるＬＢＡという論理的な通し番号で表現するものである。
【００１１】
従来のＨＤＤでは、メディアにアクセスしてデータを読み書きするためには、先ず、磁気ヘッドが目的とするセクタのあるトラックに到達するために、磁気ヘッドをメディア上で走査させる。これを磁気ヘッドの「シーク」動作と呼ぶ。次に、トラック上で目的のセクタに到達するために、メディアが回転して、目的のセクタが磁気ヘッドの真下に来るまで待つ。これを「回転待ち」と呼ぶ。
【００１２】
ディスクの大容量化に伴い、トラック密度が増大してトラック幅が極めて狭くなる。したがって、データを正確に書き込み及び再生するためには、磁気ヘッドの位置決めは高い精度が要求される。そこで、磁気ヘッドの位置を常にトラックの中心に合わせるというサーボ技術が採用されている。各トラック上に「サーボパターン」と呼ばれる信号を一定間隔で書き込んでおき、これを磁気ヘッドで読むことにより、磁気ヘッドがトラックの中心にあるかどうかをチェックすることができる。サーボパターンは、ＨＤＤの製造工程において、高精度に書き込まれる。サーボ領域には、例えば、ヘッドの位置決めするための信号と、シリンダ番号、ヘッド番号、サーボ番号などが書き込まれている。
【００１３】
従来の多くのＨＤＤは、ＩＤＥやＳＣＳＩなどコンピュータとの接続を目的としたインターフェースを持っている。そして、コンピュータ本体からのディスクドライブ制御は、インターフェースで定義されているコマンド・セットを用いて、先頭セクタを示すＬＢＡとアクセスを行うセクタ数を指定することを基本動作とする。
この場合、ＨＤＤ側では、指定された先頭セクタからのアクセスを行うとともに、その後アクセスされるセクタを予測して先読みを行うシーケンスを作成しながらアクセスを行うことができる。
この先読みという動作は、一連のデータに対して連続するアドレスを持つセクタが割り振られていることを前提としている。通常、連続するアドレスを持つセクタは、連続するヘッド番号あるいはトラック番号に存在する。
大きなデータがメディア上に連続して書き込まれている場合には、読み出し時の先読み動作が有効に働く。
【発明の開示】
【発明が解決しようとする課題】
【００１４】
しかしながら、記憶領域のフラグメンテーションが進行し、大きなデータが小さく断片化されて複数の場所に分散しているような場合には、読み出し時の先読みは別のデータを指してしまうために、有効に働くことができない。このような現象は、データの読み書きを要求するホスト（コンピュータ本体など）側が取り扱うファイル構造を、ＨＤＤ側が把握していないことから起きるとも言える。
【００１５】
また、ホスト側からの新たなアクセス要求によってその予測がはずれた場合、ディスクドライブは、その要求されるデータの存在するセクタが含まれるトラックへシークを行い、トラッキングが完了すると目的のセクタのアクセスが可能となるのを待つ。ここにおいて、シーク時間と回転待ち時間が発生する。
【００１６】
先読みデータの保存は、データバッファの容量が許容する限りである。予測が外れる場合が連続的あるいは散発的に発生すると、データバッファ上の使われていない古いデータから順に破棄されることとなる。また、この先読みを行っている間はシーク起動を行うことができない。
【００１７】
以上のように、シーク時間と回転待ち時間、無効な先読みによるシーク起動の遅れによる時間の損失、並びに無効な先読みによるデータの損失が発生していると言える。
通常のディスクドライブでは、このシーク時間と回転待ち時間を短縮するために、ディスクの回転数を上げることが行われている。これは、コンピュータなどのホスト側で扱われるデータ量やデータ構造に規則性がないため、アクセス方法による改善を行うことが困難であるからである。しかしディスクの回転数を上げる方式では、電力消費や記憶容量の面において不利であり、問題となる。
【００１８】
また、ＨＤＤなどの従来の外部記憶システムの多くは、１セクタ（１セクタは通常５１２バイトからなる）単位でエラー訂正が行われる。これにより、各セクタに発生するランダムエラーに対してエラー訂正を行うことができる。そして、訂正可能範囲を越えたランダムエラーや、あるいはバーストエラーに対しては、エラー訂正を行うことができない。そこで、リトライ動作を実施するなどによって、読み取りエラーを一定以下にしていた。
しかしながら、このようなリトライ動作は、１周回転待ちして再読み込みを行う必要がある。このため、さらにデータ読み出し時間の遅れを発生させることになる。
例えば、ＡＶコンテンツを扱うシステムにおいて、ＨＤ（ハイビジョン画質）の再生やあるいは特殊再生を行うなど、高転送速度が要求される状況があり、セクタ内において訂正不能な読み取りエラーが発生しても時間的にリトライを行うことが出来ない場合がある。このようなとき、現状では、エラー訂正が行われないまま処理を進める他なく、この結果、再生品質は悪くなった。
【００１９】
なお、例えば上記特許文献２には、記録するデータブロックの重要度を示す情報を持たせ、この情報に基づいて、重要であるデータブロックについてはリトライを実行させ、それ以外はリトライをさせない等の切換を行う技術が開示されている。
また上記特許文献１には、記録するデータブロックの重要度を示す情報を持たせ、この情報に基づいて、重要であるデータブロックについてはエラー訂正能力を増加させ、それ以外は通常の訂正能力とする等の切換を行う技術が開示されている。
これらの技術は、特にＡＶコンテンツを扱うシステム等において或る程度適切に機能するが、リトライの回避やエラー訂正においてより効果的な技術が求められている。
【００２０】
またさらに、ＨＤＤがさらに高密度化していくと、効率を良くするために、ディスクフォーマットはさらに細分化されていく。例えばディスク上において、記録再生周波数や回転速度の最適化、またゾーンの数を増やしていくなどの他に、例えばＨＤＤ内で、複数のディスクあるいは複数の記録再生ヘッドを持つとき、それぞれのディスク面上において、同一ゾーン位置であっても、各ディスク面毎に与えられた記録再生ヘッドの特性に応じて記録密度を可変とし、ヘッド切り替え時にクロックやトラック間隔などを切り替えていくことが考えられる。
このように、さらに細かいフォーマット構成とすることによって、ＨＤＤの記録密度は向上すると共に、歩留まりについても改善が期待される。
それに伴って、エラー訂正能力についても、ディスク全周にわたっての高効率化、及び品質向上が望まれてくる。
【００２１】
またＨＤＤでは、出荷時点において既に、適切ではないディスク上のセクタ単位の部位に対して、これをあらかじめアクセスしないように、アドレスが割り振られている。この状態をスリップと呼び、所定トラック上において、特定の数セクタだけスリップさせる場合と、まとまった数１０セクタだけスリップさせる場合などがある。トラック上において、まとまった数１０セクタをスリップさせた場合は、トラック当たりの有効なデータセクタ領域が大きく減少する。
そして、上記高密度化の要求は、このような事情にも対応することが求められ、そのディスクフォーマットは例えば、ＨＤＤの個々で異なるスリップの情報を含めたうえ、さらに効率のよいエラー訂正ブロックの構成が望まれている。
【課題を解決するための手段】
【００２２】
本発明は上述したような課題に鑑みたものであり、データ記録再生装置及びデータ記録再生方法、並びにコンピュータプログラム、記録媒体として、以下の目的を実現する。
即ち、所望のデータ記憶場所へのアクセス時間の短縮を図る。
また、転送速度を低下させることなく安定したデータ再生を行う。
また、より広い範囲でのランダムエラーやバーストエラーに対してもエラー訂正可能とすることでリトライ動作を回避して転送速度の低下を少なくし、安定したデータ再生を行うことができるようにする。
また、フォーマット構成の細分化に対応できるエラー訂正方式を実現する。
【００２３】
本発明のデータ記録再生装置は、同心円状又はスパイラル状のトラックが形成されているとともに、上記各トラックは複数のセクタに分割されるディスク記録媒体に対するデータ記録再生装置であって、目的とするトラックをシークするシーク手段と、該シークされたトラック上でアクセスを行うデータアクセス手段と、データをエラー訂正するためのエラー訂正符号を生成するとともにエラー訂正符号に基づいてデータをエラー訂正するエラー訂正手段と、上記ディスク記録媒体に対する上記データアクセス手段によるアクセスに対応するエラー訂正ブロックの制御情報を発生する制御情報発生手段とを備える。そして上記エラー訂正手段は、所定のデータ量単位に対して第１のエラー訂正符号単位を設定し、また複数個の第１のエラー訂正符号単位に対する第２のエラー訂正符号単位を設定し、複数個の上記第１のエラー訂正符号単位及びこれに対して付加された上記第２のエラー訂正符号単位からなるエラー訂正ブロックを形成するとともに、上記第２のエラー訂正符号単位の設定は、上記制御情報発生手段により発生された上記制御情報に基づいて行う。
特に上記制御情報発生手段は、上記データアクセス手段がアクセスする範囲のセクタ数に応じて上記制御情報を発生させる。上記データアクセス手段がアクセスする範囲のセクタ数とは、上記データアクセス手段がアクセスする１トラックのセクタ数、又は、上記データアクセス手段がアクセスする、連続したアドレスもしくは連続したトラック番号が与えられた物理的に連続するデータ範囲としてのユニットにおけるセクタ数である。
より具体的には、上記制御情報発生手段は、上記データアクセス手段がアクセスする範囲のセクタ数に応じて、上記第２のエラー訂正符号単位のセクタ数やインターリーブ内容（インターリーブ分割数や各インターリーブにおける第２のエラー訂正符号のセクタ数など）を指示する上記制御情報を発生させる。
上記エラー訂正手段は、上記制御情報に応じて第２のエラー訂正符号単位のセクタ数を設定し、またインターリーブ内容の指示に応じたインターリーブ構造を備えたエラー訂正ブロックを生成する。
【００２４】
上記制御情報発生手段は、上記データアクセス手段がアクセスする範囲のセクタ数と、セクタ数に対応する第２のエラー訂正符号単位のセクタ数又はインターリーブ分割数を記憶したデータテーブルを備え、上記データアクセス手段がアクセスする範囲のセクタ数に応じて、上記データテーブルを参照し、上記第２のエラー訂正符号単位のセクタ数、又はインターリーブ分割数を指示する上記制御情報を発生させる。
或いは、上記制御情報発生手段は、上記データアクセス手段がアクセスする範囲のセクタ数に対する演算処理により、上記第２のエラー訂正符号単位のセクタ数又はインターリーブ分割数を指示する上記制御情報を発生させる。
これらの場合において、上記第２のエラー訂正符号単位のセクタ数は、上記データアクセス手段がアクセスする範囲のセクタ数に応じて、所定の冗長度の割合により算出された数値から導かれる正の整数とする。
【００２５】
上記データアクセス手段は、上記シーク手段によりシークされたトラック上で、アクセス可能となった先頭のセクタからアクセスを開始して１トラック分のアクセスを行う。
この場合上記データアクセス手段は、書き込みアクセス時には、各セクタに対して、トラック上でアクセスを開始したセクタから順番に相対位置アドレスを割り振り、読み出しアクセス時には、トラック上の各セクタから読み出したデータを相対位置アドレスに従って再配置して、書き込まれたデータを再現する。
また、この場合、上記エラー訂正手段は、トラック当たりに２以上のエラー訂正ブロックが存在しないように、且つ、１又は複数のトラック単位でエラー訂正ブロックを完結させるように、上記エラー訂正ブロックを形成する。
【００２６】
本発明のデータ記録再生方法は、同心円状又はスパイラル状のトラックが形成されているとともに、上記各トラックは複数のセクタに分割されるディスク記録媒体に対するデータ記録再生方法として、目的とするトラックをシークするシークステップと、該シークされたトラック上でアクセスを行うデータアクセスステップと、データをエラー訂正するためのエラー訂正符号を生成するとともにエラー訂正符号に基づいてデータをエラー訂正するエラー訂正ステップと、上記ディスク記録媒体に対する上記データアクセスステップによるアクセスに対応するエラー訂正ブロックの制御情報を発生する制御情報発生ステップとを備える。そして上記エラー訂正ステップでは、所定のデータ量単位に対して第１のエラー訂正符号単位を設定し、また複数個の第１のエラー訂正符号単位に対する第２のエラー訂正符号単位を設定し、複数個の上記第１のエラー訂正符号単位及びこれに対して付加された上記第２のエラー訂正符号単位からなるエラー訂正ブロックを形成するとともに、上記第２のエラー訂正符号単位の設定は、上記制御情報発生ステップにより発生された上記制御情報に基づいて行う。
上記制御情報発生ステップでは、上記データアクセスステップでアクセスする範囲のセクタ数に応じて上記制御情報、例えば第２のエラー訂正符号単位のセクタ数やインターリーブ分割数を指示する制御情報を発生させる。
上記データアクセスステップでアクセスする範囲のセクタ数とは、上記データアクセスステップでアクセスする１トラックのセクタ数、或いは上記データアクセスステップでアクセスする、連続したアドレスもしくは連続したトラック番号が与えられた物理的に連続するデータ範囲としてのユニットにおけるセクタ数である。
また上記データアクセスステップでは、上記シークステップによりシークされたトラック上で、アクセス可能となった先頭のセクタからアクセスを開始して１トラック分のアクセスを行う。
その際、上記データアクセスステップでは、書き込みアクセス時には、各セクタに対して、トラック上でアクセスを開始したセクタから順番に相対位置アドレスを割り振り、読み出しアクセス時には、トラック上の各セクタから読み出したデータを相対位置アドレスに従って再配置して、書き込まれたデータを再現する。
またこの場合、上記エラー訂正ステップでは、トラック当たりに２以上のエラー訂正ブロックが存在しないように、且つ、１又は複数のトラック単位でエラー訂正ブロックを完結させるように、上記エラー訂正ブロックを形成する。
【００２７】
本発明のプログラムは、同心円状又はスパイラル状のトラックが形成されているとともに、上記各トラックは複数のセクタに分割されるディスク記録媒体に対するデータ記録再生処理をコンピュータシステム上で実行するためにコンピュータ可読形式で記述されたプログラムであり、上記データ記録再生方法のステップを実行させるプログラムである。
【００２８】
本発明の記録媒体は、以下のエラー訂正ブロックの構成を有するデータが、同心円状又はスパイラル状に形成されたトラックに記録されること特徴とする記録媒体である。そのエラー訂正ブロックは、所定のデータ量単位に対して第１のエラー訂正符号単位が設定され、また複数個の第１のエラー訂正符号単位に対する第２のエラー訂正符号単位が設定され、複数個の上記第１のエラー訂正符号単位及びこれに対して付加された上記第２のエラー訂正符号単位から形成されている。また、該エラー訂正ブロックにおいて上記第２のエラー訂正符号単位は、データの書込／読出アクセスが行われる範囲におけるセクタ数に基づいて設定されている。
【００２９】
以上の本発明により、上述した所期の目的を実現する。
即ち、第１のエラー訂正符号（Ｃ１）単位を用いることによりセクタ内でのランダムエラーを訂正することができるとともに、第２のエラー訂正符号（Ｃ２）単位を用いることによりセクタ内エラー訂正範囲を越えるエラーや、セクタ間にまたがるバーストエラーを訂正することができる。すなわち、エラー訂正ブロック構成をＣ１＋Ｃ２とすることによって、データ転送速度を所望以上に保つためにリトライが行えない状況においても、Ｃ１でエラー訂正が不能となった際に、さらにＣ２でエラー訂正を行うことができるので、より安定したシステムを提供することができる。そしてこのように、より広い範囲でのランダムエラーやバーストエラーに対してもエラー訂正が可能として、リトライ動作を回避することによって、転送速度を低下させることなく、安定したデータ再生を行うことができる。
さらに、エラー訂正ブロック構成、特にＣ２セクタ数が、アクセスする範囲（例えば１トラック）のセクタ数に応じて設定されることで、記録再生ヘッド、記録面、ゾーン、或いはスリップの影響などを含んで、細分化されたセクタフォーマットに対応することができる。つまりエラー訂正能力のバラツキが発生することを回避して効率の良いエラー訂正を実現したり、転送レート上好適とすることができる。
【００３０】
また、上記データアクセス手段は、上記シーク手段によりシークされたトラック上で、アクセス可能となった先頭のセクタからアクセスを開始して１トラック分のアクセスを行う。例えば磁気ヘッドがオントラックしたセクタから１トラック分のアクセスを行う。すなわち、１トラックをアクセス単位とすることで、先読みという不確定な処理を省いて、シーク起動のタイミングを確実に決定することができる。
特にこの場合、上記データアクセス手段が、書き込みアクセス時には、各セクタに対して、トラック上でアクセスを開始したセクタから順番に相対位置アドレスを割り振り、読み出しアクセス時には、トラック上の各セクタから読み出したデータを相対位置アドレスに従って再配置して、書き込まれたデータを再現することで、トラックのどのセクタからでもアクセスを行うことができるので、シーク直後の任意のヘッド位置から読み書きを行うことにより、回転待ちをなくすことができる。この結果、シークの回数を最小限に抑え、アクセス時間が短縮化される。
また、書込や読出の要求元（例えば、ＨＤＤに接続されているコンピュータなどのホスト装置）は、ディスク上のセクタ・アドレスを意識する必要がない。また、データサイズが短くて済む相対位置アドレスを用いることにより、記憶領域の有効利用を図ることができる。
また、読み出しアクセス時には、トラック上の各セクタから読み出したデータを、例えばバッファメモリ上で相対位置アドレスに従って再配置することによって、アクセスを開始したセクタの位置に拘わらず、元のデータを組み立てることができるが、この場合、トラック当たりに２以上のエラー訂正ブロックが存在しないように、且つ、１又は複数のトラック単位でエラー訂正ブロックを完結させるようにエラー訂正ブロックを形成することが適切である。
【発明の効果】
【００３１】
本発明によれば、エラー訂正符号による冗長の効率の良くてかつ、安定したデータ再生を行うことができる、優れたデータ記録再生装置及びデータ記録再生方法、並びにプログラム、記録媒体を提供することができる。
即ち、第１のエラー訂正符号（Ｃ１）単位を用いることによりセクタ内でのランダムエラーを訂正することができるとともに、第２のエラー訂正符号（Ｃ２）単位を用いることによって、セクタ内エラー訂正範囲を越えるエラーや、セクタ間にまたがるバーストエラーを訂正することができる。これによって、データ転送速度を所望以上に保つためにリトライが行えない状況においても、適切にエラー訂正ができ、より安定したシステムを提供することができる。そしてこのように、より広い範囲でのランダムエラーやバーストエラーに対してもエラー訂正が可能として、リトライ動作を回避することによって、転送速度を低下させることなく、安定したデータ再生を行うことができる。
さらに、エラー訂正ブロック構成として第２のエラー訂正符号（Ｃ２）単位のセクタ数やインターリーブ構造（例えばインターリーブ分割数）が、アクセスする範囲のセクタ数に応じて設定されることで、記録再生ヘッド、記録面、ゾーン、スリップ状況など、実際のアクセス範囲の状況に応じてエラー訂正ブロックが最適化されることになり、つまりエラー訂正能力のバラツキが発生することを回避したり、効率の良いエラー訂正を実現することができ、また効率の良いディスクフォーマットを実現できる。また効率の良いエラー訂正ブロックとなることは不用なほど冗長度が高くなることも避けられることになるため、転送レートの点でも好適となる。これらによって、よりいっそう安定したシステムを提供することができる。
【００３２】
また第２のエラー訂正符号単位のセクタ数、又はインターリーブ内容を指示する制御情報を発生させるには、セクタ数と、セクタ数に対応する第２のエラー訂正符号単位のセクタ数又はインターリーブ分割数を記憶したデータテーブルを備えていれば、上記データアクセス手段がアクセスする範囲のセクタ数に応じて、上記データテーブルを参照して容易に上記第２のエラー訂正符号単位のセクタ数、又はインターリーブ分割数を指示する制御情報を発生させることができる。
或いは、上記制御情報発生手段は、上記データアクセス手段がアクセスする範囲のセクタ数に対する演算処理により、上記第２のエラー訂正符号単位のセクタ数又はインターリーブ分割数を指示する上記制御情報を発生させるようにすれば、上記データテーブルを備えなくてもよい。
また、制御情報で指示する上記第２のエラー訂正符号単位のセクタ数は、上記データアクセス手段がアクセスする範囲のセクタ数に応じて、所定の冗長度の割合により算出された数値から導かれる正の整数とすることが適切である。
【００３３】
さらに本発明によれば、シークされたトラック上でアクセス可能となった先頭のセクタからアクセスを開始して１トラック分のアクセスを行うことによって、１トラックをアクセス単位とすることができ、回転待ちを発生することのないデータアクセス制御を実現することができる。すなわち、データアクセス時間を短縮することができる。
特にこのアクセス方式の場合、エラー訂正ブロックの構成は１トラックのセクタ数に応じて設定されればよく、それにより上記効果を得ることができる。
【発明を実施するための最良の形態】
【００３４】
以下、図面を参照しながら本発明の実施の形態について次の順序で説明する。
１．ハードディスク装置の構成
２．アクセス動作
３．ＥＣＣ構成
４．セクタ数に応じたＥＣＣブロック設定
５．適用例
【００３５】
１．ハードディスク装置の構成
図１には、本発明の一実施形態に係るＨＤＤ（ハードディスク装置）１０の全体構成を模式的に示している。
同図に示すように、ＨＤＤ１０は、ＣＰＵ（Central Processing Unit）１１と、ＲＯＭ（Read Only Memory）／ＲＡＭ（Random Access Memory）１２と、ディスクコントローラ１３と、バッファＲＡＭ１４と、データ読み書き制御部１５と、サーボ制御部１６、そして磁気ディスク２１とを備えている。
【００３６】
磁気ディスク２１は、１枚あるいは複数枚で構成され、さらに記録面は片面あるいは両面（ディスクの表裏）となっている。また記録面上にはヘッドが配置される。図１においては２枚の磁気ディスク２１ａ、２１ｂが配され、また対応して２つの記録再生ヘッド（磁気ヘッド）２２ａ、２２ｂが設けられている状態を示している、。
即ちドライブユニット内には、数枚の磁気ディスク（プラッタ）が同心円状に重なって構成することができ、そのとき各磁気ディスクの同じトラック番号は円筒状に配置され（シリンダ）、トラック番号と同じシリンダ番号で指定される。
なお、図１に示すように、１つの磁気ディスク２１に対して１つの記録再生ヘッド２２が配されるのは、磁気ディスク２１は片面が記録面とされる場合である。
両面が記録面とされる場合、１つの磁気ディスク２１に対して２つの記録再生ヘッド２２が配される。
【００３７】
ＣＰＵ１１は、ＲＯＭ／ＲＡＭ１２に格納されている制御コードを実行して、ＨＤＤ１０内の動作を統括的にコントロールする。
ディスクコントローラ１３は、インターフェース１７を介して接続されるホスト（図示しない）からコマンドを受け取る。ＣＰＵ１１はこのコマンド処理を行い、ディスクコントローラ１３はコマンド処理結果に従って、データ読み書き制御部１５やサーボ制御部１６に対するハードウェア操作を指示する。
インターフェース１７経由でホストから受け取った書き込みデータや、磁気ディスク２１から読み取ってホストに渡されるデータは、バッファＲＡＭ１４に一時的に格納される。
【００３８】
データ読み書き制御部１５は、符号化変調処理を行って実際に記録するデータパターンを作成し、プリアンプ２５を介して磁気ディスク２１にデータを書き込む。また、逆に読み込んだデータをプリアンプ２５を介して磁気ディスク２１から取り込み、データの復調処理を行う。
【００３９】
サーボ制御部１６は、磁気ヘッド２２を搭載したアームを移動するボイスコイルモータ（ＶＣＭ）２３、及び磁気ディスク２１を回転させるスピンドルモータ（ＳＰＭ）２４を同期的駆動させて、磁気ヘッド２２が磁気ディスク２１上の目的とするトラック上の所定範囲内に到達するように制御する。さらに、ディスク上のサーボパターンよりヘッド位置を所定の位置にシークさせるための制御を行う。
【００４０】
磁気ディスク２１上には、データを記録するための区画である多数のトラックが同心円状に形成され、例えばディスク２１の最外周から、内周に向かって０，１，２，…とトラック番号が割り振られている。また、各トラックは、さらにセクタ毎に分割されており、このセクタ単位が、データ読み書き動作の可能な最小単位となっている。
セクタ内のデータ量は例えば５１２バイトで固定である。
実際に記録されているセクタには、データに加えて、ヘッダ情報やエラー訂正用コードなどが付加されている。
【００４１】
図１には、特にＣＰＵ１１とＲＯＭ／ＲＡＭ１２にまたがるようにして、ＥＣＣ制御情報発生部２６を示している。
このＥＣＣ制御情報発生部２６は、特に第２のエラー訂正符号Ｃ２のセクタ構造やインターリーブ構造を指示する制御情報を発生する部位である。
ＥＣＣ制御情報発生部２６は、制御情報生成に用いるテーブルを記憶する場所を、例えばＲＯＭ／ＲＡＭ１２とし、その制御を例えばＣＰＵ１１によって行うことで、その機能が実現される。
このＥＣＣ制御情報発生部２６からの制御信号によって、記録再生されるフォーマットが決定する。フォーマットとは例えば、トラック単位のセクタ数をまとめてＥＣＣブロックとし、そこにはセクタ間のエラー訂正を行うためのＣ２セクタを持つ形式とされる。そのＣ２セクタ数は、あらかじめ与えられている、ディスク２１上のトラック毎のセクタ数情報にもとづいて決定される。
【００４２】
なお、上記磁気ディスク２１のトラック毎のセクタ数情報は、ＲＯＭ／ＲＡＭ１２に記憶しても良いが、この他にも例えば磁気ディスク２１上の、所定のエリアを定めて、そこに記憶しても良い。
またトラック毎のセクタ数情報の形式は例えば、各トラックにおけるセクタ数のほか、ＬＢＡによるシステムの場合では、各トラックの先頭ＬＢＡアドレスを記憶してもよい。結局、トラック毎のセクタ数が判る形式であれば如何なる形式でも良い。
【００４３】
さらに、トラック毎のセクタ数情報と、実際に決定するパリティ数（Ｃ２セクタ数）を関係づける情報、例えば上記テーブルについては、ＲＡＭ／ＲＯＭ１２に記憶するほか、例えば磁気ディスク２１上の、所定のエリアに記憶してもよい。
また、トラック毎のセクタ数情報と、実際に決定するパリティ数（Ｃ２セクタ数）を関係づける情報とは、テーブル形式で持つほか、入力セクタ数に対して決定パリティ数を出力するような計算式で持っていても良い。テーブルや計算式については後述する。
また、これら制御情報の発生のための情報、つまりテーブルや計算式を、ＣＰＵ１１に付随するＲＯＭ／ＲＡＭ１２ではなく、例えば磁気ディスク２１に記憶しておく場合は、起動時に、磁気ディスク２１から読み出しを行い、バッファＲＡＭ１４に格納するようにしてもよい。
【００４４】
磁気ディスク２１において、１周当たりのセクタ数については、周長が長くなる外側のトラックに向かうほどセクタ数を多く設けるＺＢＲ（Zone Bit Recording）方式を採用する。すなわち、磁気ディスク２１の全周に渡るトラック毎のセクタ数は均一ではなく、磁気ディスク２１を半径方向に複数のゾーンに区切り、各ゾーン内においては同じセクタ数となるように設定する。
図２には、ＺＢＲ方式の一例を示している。
同図に示す例では、ディスクを３つのゾーンに区切っており、最外周から順にゾーン０，１，２とゾーン番号が与えられている。さらに、各ゾーン内には複数本のトラックが含まれている。
また図２において、各ゾーンをセクタで区切っているが、この場合（あくまで模式的な例として）、ゾーン０は３２セクタで構成され、同様に、ゾーン１は１６セクタ、ゾーン２は８セクタでそれぞれ構成されている。ゾーンの切り替えに当たり、具体的なセクタ数については、スピンドルモータ２４の回転数は一定とし、記録再生クロックを可変にするなどによって、線記録密度を所定の範囲におさめ、ディスク当たりの記憶容量を増加させるように決定される。
【００４５】
図３は、図１のディスクコントローラ１３の内部構成をより詳細に示している。同図に示すように、ディスクコントローラ１３は、ＣＰＵインターフェース３１と、ホストコントローラ３２と、バッファコントローラ３３と、サーボコントローラ３４と、ディスクフォーマッタ３５と、ＥＣＣコントローラ３６とで構成されている。なお、同図において、データの移動が発生する矢印に対しては二重線で示してある。
【００４６】
ＣＰＵインターフェース３１は、ＣＰＵ１１と、ＲＡＭ／ＲＯＭ１２とのインターフェースであり、ホストからのコマンドをＣＰＵ１１に通知したり、ＣＰＵ１１からのコマンド処理結果の受信などを行ったりする。
ホストコントローラ３２は、インターフェース１７を介して接続されるホストとの通信を行う。
バッファコントローラ３３は、バッファＲＡＭ１４と、ディスクコントローラ１３内の各部間でのデータのやりとりを制御する。
サーボコントローラ３４は、ＶＣＭ（ボイスコイルモータ）２３及びＳＰＭ（スピンドルモータ）２４の動作を制御することによって、磁気ディスク２１上のサーボパターンからサーボ情報を読み取り、この情報をサーボ制御部１５へ渡す。
ディスクフォーマッタ３５は、バッファＲＡＭ１４上のデータを磁気ディスク２１に書き込んだり、あるいは磁気ディスク２１からデータを読み出したりするための制御を行う。
ＥＣＣコントローラ３６は、バッファＲＡＭ１４に格納されているデータより、書き込み時にはＥＣＣ符号を生成して付加し、また読み出し時にはエラー訂正を行う。
【００４７】
このような図３に示すディスクコントローラ１３は、ＣＰＵ１１（及びＣＰＵ１１とＲＯＭ／ＲＡＭ１２により形成されるＥＣＣ制御情報発生部２６）より、フォーマッタ制御情報および、セクタ数に応じたＥＣＣ切換の制御情報を受け取る。
即ちディスクコントローラ１３は、ＥＣＣ制御情報発生部２６によるＣ２セクタ数やインターリーブ内容の制御情報をＣＰＵインターフェース３１を通して受け取る。そしてディスクフォーマッタ３５へは、決定したＣ２セクタ数に基づくフォーマッタ制御情報が、またＥＣＣコントローラ３６へは、決定したＣ２セクタ数に関する情報が、すなわち必要な情報が、それぞれ送られる。
【００４８】
ところで、本例のアクセス方式としては、いわゆるＬＢＡ（Logical Block Address）に基づいてアクセスを行うものであってもよいし、後述するが、トラック単位で相対アドレスを用いたアクセスを行うものでも良い。
【００４９】
ＬＢＡによるアクセスを行う場合においては、上記フォーマッタ制御情報は、シークされたトラック上でアクセス可能となった後、ＬＢＡで指定されたセクタのアクセスを行うためのフォーマット情報である。この情報は、ＣＰＵインターフェース３１を介してディスクフォーマッタ３５へ送られ、ここでデータフォーマッタが生成される。
また、ＥＣＣ制御情報発生部２６によるＥＣＣ切替の制御情報は、第１のエラー訂正符号Ｃ１および、第２のエラー訂正符号Ｃ２を持つＥＣＣブロック構成の設定を行うための情報であり、この情報は、ＣＰＵインターフェース３１を介してＥＣＣコントローラ３６へ送られ、ここでＥＣＣブロック構成が設定され、バッファＲＡＭ１４をアクセスして所定のＥＣＣ処理が行われる。
例えばアクセスするトラックのセクタ数によってＥＣＣブロック構成が設定されるということは、つまり記録再生を行うトラックの状況（記録面、記録再生を行うゾーン、記録再生を実行するヘッド、スリップ状況等）に応じて、ＥＣＣブロック構成が切り換えられることを意味する。
【００５０】
トラック単位で相対アドレスを用いたアクセスを行う場合においては、上記フォーマッタ制御情報は、シークされたトラック上でアクセス可能となった後の、先頭のセクタからアクセスを開始して、1トラック分のアクセスを行うための、フォーマット情報であり、この情報は、ＣＰＵインターフェース３１を介してディスクフォーマッタ３５へ送られ、ここでデータフォーマッタが生成される。
また、ＥＣＣ制御情報発生部２６によるＥＣＣ切替の制御情報は、トラック単位で完結するＥＣＣブロック構成の設定を行うための情報であり、この情報は、ＣＰＵインターフェース３１を介してＥＣＣコントローラ３６へ送られ、ここでＥＣＣブロック構成が設定され、バッファＲＡＭ１４をアクセスして所定のＥＣＣ処理が行われる。
【００５１】
なお、上記バッファＲＡＭも関係していることより、ＥＣＣ切替の制御情報は、バッファコントローラ部３３で用いることもある。
また、これら制御情報の発生のための情報、つまりテーブルや計算式を、例えば磁気ディスク２１に記憶しておく場合は、起動時に、磁気ディスク２１から読み出しを行い、バッファＲＡＭ１４に格納するようにしてもよい。その場合、ディスクコントローラ内で、セクタ数に応じたＥＣＣ切替の制御情報が生成され、ＥＣＣコントローラ３６等に供給されるものでも良い。つまりＥＣＣ制御情報発生部２６としての機能が、ディスクコントローラ１３内で実現されても良い。
【００５２】
ところで、ＥＣＣ制御情報発生部２６による制御情報として例えば以下のものがある。
（１）トラック毎のセクタ数にもとづく決定Ｃ２セクタ数を持った、そのトラックの固有の情報。
（２）ある所定単位とされるユニットのセクタ数にもとづく決定Ｃ２セクタ数を持った、そのユニットの固有の情報。
ここで、ユニットとは、例えばある画像や音声などに適応させてある、所定処理データの単位などとしてのひとつの大きな単位のこととする。このユニットは、磁気ディスク２１内の物理的にまとまった位置で与えられ、ＬＢＡ方式ならば、ある連続したＬＢＡ番号であるし、相対アドレスアクセス方式であれば、ある連続したトラックの範囲となる。また、そのユニットには、例えばゾーンの切替といった大きくセクタ情報の変動することのないエリア内として選定される。
【００５３】
つまり、本例ではＥＣＣ制御情報発生部２６は、アクセスする範囲のセクタ数に応じてＣ２セクタ数を含む制御情報を発生させるが、ここでいうアクセスする範囲のセクタ数とは、アクセスする１トラックのセクタ数である場合も考えられるし、アクセスする１ユニットのセクタ数である場合も考えられる。
【００５４】
本実施の形態に係るＨＤＤ１０は、上述したような構成とされ、この構成において、以下説明するように、回転待ちを発生することのないデータアクセス制御を行い、アクセス時間の短縮やデータ転送速度の早いシステムを実現する。また、広い範囲でのランダムエラーやバーストエラーに対してもエラー訂正可能とすることでリトライ動作を回避して転送速度の低下を少なくし、安定したデータ再生を行う。その上で、フォーマット構成の細分化、記録面やヘッドの特性、スリップ状況等を考慮した最適なＥＣＣ処理を実現するものである。
【００５５】
２．アクセス動作
上記のように、アクセス方式としてはＬＢＡに基づくアクセス方式と、トラック単位で相対アドレスを用いたアクセス方式が考えられる。ＬＢＡに基づくアクセス方式とは通常、多くのＨＤＤで採用されているアクセス方式であるため、詳述は避けるが、ここでトラック単位で相対アドレスを用いたアクセス方式について説明しておく。
【００５６】
このアクセス方式の場合、ＨＤＤ（ハードディスク装置）１０においては、磁気ヘッド２２がオントラックしたセクタから１トラック分のアクセスを行う。同一トラック上のセクタ番号は固定されておらず、相対位置によって与えることができる。
これにより、１トラック上のどのセクタからでもアクセスを開始することができる。すなわち、１トラックをアクセス単位とすることによって、先読みという不確定要素からなる処理を行う必要をなくして、シーク起動のタイミングを確実に決定することができる。また、１トラックのどのセクタからでもアクセスを行うことによって、回転待ちを行わなくて済む。これによって、シークの回数を最小限に抑え、アクセス時間を短縮させることができる。
【００５７】
所定のトラックに書き込みを行う際には、アクセスを開始したセクタから始まる相対位置をセクタに与える。
また、読み出しを行う際には、アクセスを開始したセクタから読み出しを行い、相対位置セクタ番号に基づいて、バッファＲＡＭ１４上に展開する。このため、どのセクタから読み出しを始めても良い。
【００５８】
このような動作を可能とするために磁気ディスク２１のトラックで利用されるセクタフォーマットの例を図４に模式的に示す。
図４（ａ）に示すように、セクタは、トラック上でのセクタの相対位置を表す相対位置データと、データ本体と、セクタ領域全体に対してエラー訂正を行うためのＥＣＣとで構成され、これら全体をエラー訂正範囲及び記録範囲とする。
相対位置データをヘッダとしてエラー訂正範囲に含めることにより、例えばセクタ内でランダムエラーが発生した場合であってもエラー訂正により相対位置データを回復することができるので、円滑なディスクアクセス動作を実現することができる。
また、一般に、セクタはセクタの番地を記録するためのＩＤフィールドを持つが、絶対位置ではなく相対位置を記録するので、ＩＤフィールドのサイズを縮小することができる。その分だけセクタ中でデータ本体に使用可能なフィールドサイズが大きくなり記憶領域の有効活用になる。
【００５９】
トラックに書き込みを行うとき、アクセスを開始したセクタから始まる相対位置をセクタに与え、相対位置と本来の記録データによるＥＣＣデータを生成して、それぞれを当該セクタの相対位置フィールド、データ・フィールド、及びＥＣＣフィールドに記録する。アクセスを開始したセクタから書き込みを開始するので、回転待ちする必要がない。
また、読み出しを行うときには、トラック上でアクセスを開始したセクタから読み出しを行い、相対位置フィールドによって得られたセクタ位置に基づいて、バッファＲＡＭ１４上での格納位置を決定する。したがって、任意のセクタからデータの読み出しを開始しても、バッファＲＡＭ１４上では相対位置に基づいてデータを再配置することによって、トラック上に格納されているデータが元の順番通りに復元される。また、アクセスを開始したセクタから読み出しを開始するので、回転待ちする必要がない。
【００６０】
また、図４（ｂ）には、本実施の形態に係るＨＤＤ１０において、磁気ディスク２１のトラックで利用されるセクタフォーマットの他の例を模式的に示している。
この場合も、上述と同様に、セクタは、トラック上でのセクタの相対位置を表す相対位置データと、データ本体と、セクタ領域全体に対してエラー訂正を行うためのＥＣＣとで構成される。但し、これら全体をエラー訂正範囲とするが、図４（ａ）に示した例と相違し、相対位置フィールドを記録範囲に含まない。したがって、相対位置フィールドがなくなる分だけ、さらに上述した例よりもセクタ中でデータ本体に使用可能なフィールドサイズが大きくなり記憶領域の有効活用になる。
【００６１】
この場合、トラックに書き込みを行うときは、アクセスを開始したセクタから始まる相対位置をセクタに与え、相対位置と本来の記録データによるＥＣＣデータを生成して、記録データ及びＥＣＣデータのみを当該セクタ上に記録する。アクセスを開始したセクタから書き込みを開始するので、回転待ちする必要がない。
また、読み出しを行うときには、アクセスを開始したセクタから読み出しを行い、ＥＣＣを用いてエラー訂正を行うことによって、セクタには書き込まれなかった相対位置を再生成する。そして、この相対位置に基づいて、バッファＲＡＭ１４上での格納位置を決定する。したがって、任意のセクタからデータの読み出しを開始しても、バッファＲＡＭ１４上ではトラック上に格納されているデータが元の順番通りに復元される。また、アクセスを開始したセクタから読み出しを開始するので、回転待ちする必要がない。
【００６２】
上記のようなセクタフォーマットに係るデータ記録再生の際のホストとの通信例を説明する。
本例のＨＤＤ１０は、インターフェース１７経由で接続されたホストからのコマンドによってデータ書き込みを行うときの通信例は、次のようになる。
まずホストは、ＨＤＤ１０に対してデータの書き込みコマンドを発行する。これに応答して、ＨＤＤ１０は現在のアクセスシーケンスからシーク時間が最小となるアドレス領域を応答する。
ホストは、ＨＤＤ１０からの応答を受けると、指示されたアドレス領域の大きさ（バイト数，セクタ数など）のデータコンテンツを転送する。ＨＤＤ１０は、受信したデータコンテンツをトラック単位で書き込み動作を行う。
【００６３】
ここで上述のように、書き込み時のトラック上のアクセス先頭位置を基準に各セクタに相対位置情報を割り振ると、書き込み要求の際、ホスト側では、シリンダ番号、ヘッド番号、セクタ番号などの具体的な書き込み場所を特に意識する必要はなく、またこれらを指示する必要も特にない。
また、ＨＤＤ１０側からホストに通知されるアドレス領域は、例えば、ホストからデータ書き込み要求されるコンテンツを識別するコンテンツ番号などの簡素なものでよい。
ＨＤＤ１０側では、各コンテンツ番号とディスク２１上での物理的な記録場所との変換テーブルを用意しておく。
トラック単位でディスクアクセスを行うことから、コンテンツ番号との変換テーブルは、例えば図５に示すようなものとなる。即ち、コンテンツ番号に対応してトラック番号やヘッド番号が登録されていく。
【００６４】
ここで、ＣＨＳ方式のセクタ番号が変換テーブルに含まれていないことに注意されたい。このように、書き込み時のトラック上のアクセス先頭セクタを基準に各セクタに相対位置情報を割り振る構成では、読み出し時のトラック上のアクセス先頭セクタに関わらず、各セクタの相対位置情報に基づきデータの再配置が可能となる。このため、変換テーブルにおいて、アクセス開始セクタを指定する必要がないものとなる。
この変換テーブルは、バッファＲＡＭ１４内に書き込まれる。変換テーブルの書き込みは、ホストから書き込みデータを受け取った時点で、ディスクコントローラ１３又はＣＰＵ１１が実行するソフトウェアによって行われる。
【００６５】
また、本例のＨＤＤ１０がインターフェース１７経由で接続されたホストからのコマンドによってデータ読み出しを行うときの通信例は次のようになる。
ホストは、ＨＤＤ１０に対してデータの読み出しコマンドを発行する。読み出しコマンドでは、目的とするコンテンツ番号が指定されている。
これに対し、ＨＤＤ１０は、コンテンツ番号に基づいて上記図５の変換テーブルから目的とするトラックを特定して、磁気ヘッド２２のシーク動作を行う。そして、データ書き込み時に応答したアドレス領域のシーケンスに従い、ディスク２１上のデータを転送する。
このデータ読み出し要求の際、ホスト側は、所望のコンテンツ番号を指定するだけで、シリンダ番号、ヘッド番号、セクタ番号などの具体的な書き込み場所（ＰＢＡ）を意識する必要はない。
【００６６】
上述したように、ＨＤＤ１０では、磁気ヘッド２２がオントラックしたセクタから１トラック分のアクセスを行う。１トラックをアクセス単位とすることで、先読みという不確定な処理を省いて、シーク起動のタイミングを確実に決定することができる。また、トラックのどのセクタからでもアクセスを行うことができるので、シーク直後の任意のヘッド位置から読み書きを行うことにより、回転待ちをなくすことができる。この結果、シークの回数を最小限に抑え、アクセス時間が短縮化される。
このようなディスクアクセスオペレーションは、ディスクコントローラ１３が、ＣＰＵ１１によるコマンド処理結果に応じて、データ読み書き制御部１５やサーボ制御部１６に対するハードウェア操作を指示することによって実現される。
【００６７】
３．ＥＣＣ構成
上述してきたようにＨＤＤ１０が１トラックを単位としてアクセスを行う場合、磁気ディスク２１上には１トラックを基本単位としたＥＣＣブロックが形成されることが適切となる。
なお、ＬＢＡに基づくアクセス方式が採用される場合は、必ずしも１トラックを基本単位としたＥＣＣブロックが形成される必要はないが、もちろん１トラックを基本単位としてもよい。
ここでは、１トラックを基本としたＥＣＣブロックの例を説明する。
【００６８】
図６は、１トラックを基本単位としたＥＣＣ構成例を示している。
図６（ａ）の例では、磁気ディスク２１は、ゾーン分割されており、ゾーンｎにおけるＥＣＣブロック構成の例が示されている。すなわち、ゾーンｎ内の、破線で示す所定のトラックＴＫのように、各トラックの１周分がＥＣＣブロックの構成単位となるようにする。
ＥＣＣブロックの内部には、セクタ内の訂正を行うＣ１と、セクタ間の訂正を行うＣ２が含まれている。
そしてＣ１＋Ｃ２からなるエラー訂正単位（ＥＣＣブロック構成単位）は１トラックを基本単位としており、各トラック内においては、ＥＣＣブロック構成単位が２つ以上存在することはない。
【００６９】
また図６（ｂ）はＥＣＣブロックの他の例である。この場合も磁気ディスク２１は、ゾーン分割されており、ゾーンｍにおいて、ＥＣＣブロックの例が示されている。この例は、ゾーンｍ内の３トラック分でＥＣＣブロックの構成単位となるようにするものである。なお、この例は１トラックの整数倍を構成単位とするものであり、もちろんトラック３周分に限られるものではない。
このような例の場合も、ＥＣＣブロックの内部には、セクタ内の訂正を行うＣ１と、セクタ間の訂正を行うＣ２が含まれている。またＣ１＋Ｃ２からなるエラー訂正単位（ＥＣＣブロック構成単位）は１トラックを基本単位としており、各トラック内においては、ＥＣＣブロック構成単位が２つ以上存在することはない。
【００７０】
図７には、図６に示したＥＣＣブロック構成を採用した磁気ディスク２１のＥＣＣブロック構造の例を示している。
ここではＥＣＣ訂正符号として、シンボル長８のリードソロモン符号を用いているものとする。
磁気ディスク２１のあるゾーンにおけるトラック１周分の有効なセクタ数を、８００セクタとする。１セクタは例えば、５１２バイトのデータに４バイトのＣＲＣ（クロスチェックコード）、並びに合計で４８バイトのＣ１を付加し、４インターリーブで構成してある。
【００７１】
図７のＥＣＣブロック構成の例では、セクタ０〜７５１までの７５２セクタをデータ領域として与え、セクタ７５２〜７９９までの４８セクタをＣ２領域として与えている。Ｃ２については、例えば１２セクタずつの４インターリーブで構成する。
このような構成としたとき、１つのＥＣＣブロックは合計８００セクタとなって、このゾーン内において１周分となり、トラック単位を実現させることが出来る。
【００７２】
この例におけるエラー訂正能力について考察する。
ランダムエラーに対してはＣ１を利用することによって、セクタ当たり最大２４バイトまで(バイトの消失情報が得られる場合は最大４８バイトまで)の訂正が可能である。
さらに、バーストエラーに対しては、Ｃ２を利用することによって、トラック当たり最大２４セクタまで（ＣＲＣの結果を利用することで最大４８セクタまで）の長さのエラー訂正が可能となる。
【００７３】
ここで、上記のようなエラー訂正ブロックを採用する事情について述べておく。
従来のＨＤＤのシステムの多くにおいては、エラー訂正が、５１２バイトデータと情報ビットからなる１セクタ単位においてのみ行われている。
したがって、各セクタ内に発生するランダムエラーに対してはエラー訂正を行うことができるが、訂正可能範囲を越えたランダムエラーや、あるいはバーストエラーすなわちセクタを越えて長く連続したエラーに対しては、エラー訂正を行うことが出来なかった。
【００７４】
このような場合、例えばリトライ動作を実施するなどによって、読み取りエラーを一定以下にし、エラー訂正を行うことができる。ところが、リトライ動作は基本的に、１回当たり１周分の余分なアクセス時間の増加に相当する。
ここで、上述のようなトラック単位アクセスによってアクセス時間の短縮がなされたにもかかわらず、リトライ動作が発生すると、結局アクセス時間は増加し、データ読み出し時間の遅れを発生させる結果となる。
例えばＨＤ（ハイビジョン画質）の再生や特殊再生時といったＡＶコンテンツを扱う場合において、高転送速度が要求されるとき、訂正不能な読み取りエラーが発生しても時間的にリトライ動作を行う余裕のないときがある。このような場合、現状では、読み取りエラー訂正が行われないまま処理を進めている。この結果、再生品質は悪くなってしまう。
【００７５】
そこで、ＥＣＣ構成を上記のようにして、安定したデータ再生を実現し、リトライの発生する事態を引き起こすようなエラー訂正の出来ない場合を減少させるようにするものである。
つまり、従来の１セクタ単位のエラー訂正であるＣ１訂正に加えて、セクタ間の訂正を行うことが可能なＣ２訂正を付加する。そして、Ｃ１＋Ｃ２からなる、エラー訂正単位（ＥＣＣブロック）を例えばトラックで完結するような構成をとる。
【００７６】
トラックの１周でＣ１＋Ｃ２からなるＥＣＣブロック単位を完結させた場合、１トラックをアクセス単位とすることができ、回転待ちを発生することのないデータアクセス制御を実現することができる。すなわち、所望のデータ記憶場所へのアクセス時間を短縮することができる。また、同一トラック上で２以上のＥＣＣブロックを持つことがないようにすれば、ＥＣＣ構成を複数トラック単位とした場合であっても、同様に、回転待ちを発生することのないデータアクセス制御を実現することができる。
【００７７】
４．セクタ数に応じたＥＣＣブロック設定
例えばＥＣＣブロックが１トラック単位で形成されるとし、ある１トラックが８００セクタの場合のＥＣＣブロックを上記図７に示した。
但し、磁気ディスク２１上の全トラックが８００セクタであるということはない。実際には、ゾーンに応じて１トラックのセクタ数が異なることに加え、高密度化や高効率化のためにディスクフォーマットが細分化される場合がある。例えばディスク面毎、記録再生ヘッド毎などに記録密度を可変としたり、さらに１つの記録面でより詳細にゾーン分割したり、或いはゾーン構成をディスク面毎に異なるものとする場合もある。さらには、スリップとして或るセクタ区間が削除（無効化）されているトラックもある。
つまりは、高密度化等の要求に応じたフォーマットの細分化やスリップの影響を考えると、磁気ディスク２１の各トラックにおけるセクタ数は多様となっている。
本例ではこのような事情においても、効率のよいエラー訂正ブロックを実現するため、トラックあたりのセクタ数に応じてＥＣＣブロック構成の設定を行うようにしている。
つまり図１に示したＥＣＣ制御情報発生部２６は、アクセスしようとするトラックのセクタ数の情報に基づいて、以下述べるようにＣ２セクタ数やインターリーブ分割数を指示する制御情報を発生させ、図３で述べたように、それをＥＣＣコントローラ３６等に供給して効率の良いＥＣＣブロックを形成させるものである。
【００７８】
なお、ここでは１トラックあたりのセクタ数に基づくＥＣＣブロック設定を例に挙げて述べるが、上述したように１ユニットあたりのセクタ数に基づくＥＣＣブロック設定の場合も、考え方は同様である。
【００７９】
例えばＥＣＣ制御情報発生部２６は、アクセスするトラックのセクタ数からテーブルを参照したり、アクセスするトラックのセクタ数に基づく所定の演算処理により、Ｃ２セクタ数等の制御情報を発生すると先に述べた。
まずテーブル参照する場合のテーブルの例を図８に示す。
この図８のテーブルは、１トラックあたりのセクタ数として１〜１０２０セクタについて、それぞれＣ２セクタ数とインターリーブ分割数を示したテーブルとしている。上述したようにこのようなテーブルが、例えばＲＯＭ／ＲＡＭ１２に記憶される。
【００８０】
この場合、トラック当たりのセクタ数に対して、冗長度を所定の数値（％）とし、これに対するＣ２セクタ数を与えるようにしてある。冗長度は一例として６％とした。
Ｃ２セクタ数は、トラックあたりのセクタ数に冗長度を乗算し、その結果の小数点第１位を四捨五入して得た整数としている。
例えばトラックあたりのセクタ数として、１，２，３・・・にそれぞれ冗長度６％を乗算していくと、
１×０．０６＝０．０６
２×０．０６＝０．１２
３×０．０６＝０．１８
４×０．０６＝０．２４
５×０．０６＝０．３０
６×０．０６＝０．３６
７×０．０６＝０．４２
８×０．０６＝０．４８
９×０．０６＝０．５４
１０×０．０６＝０．６０
１１×０．０６＝０．６６
（以下、略）
となっていくが、この場合、セクタ数１〜８までは、乗算結果が四捨五入により「０」になるため、図８に示すようにセクタ数１〜８の場合は、Ｃ２セクタ数＝０とする。
同様にして、セクタ数９〜２４はＣ２セクタ数＝１、セクタ数２５〜４１はＣ２セクタ数＝２、・・・というように図示するようになる。
【００８１】
インターリーブは、２５５セクタを最大とし、これを超えたときにインターリーブ数を増やすようにした。
即ち図示するように、セクタ数１〜２５５の場合はインターリーブ分割数＝１、セクタ数２５６〜５１０の場合はインターリーブ分割数＝２、セクタ数５１１〜７６５の場合はインターリーブ分割数＝３、セクタ数７６６〜１０２０の場合はインターリーブ分割数＝４とした。
【００８２】
なおリードソロモン符号方式をｎビットで構成するとき、インターリーブの構成における分割の基準としての値は、以下のようにして与えることができる。即ち、
２n −１
例えば８ビットでは、２8−１＝256−１＝255、であることから、上記のように２５５セクタを最大とし、以降、２５５増える毎にインターリーブ分割数を１増やしていく。
【００８３】
またインターリーブを与えた時の、インターリーブ当たりのＣ２セクタ数（Ｃ２／Intv）も与えてある。例えばインターリーブ分割数＝２の場合、各インターリーブに与えられるＣ２セクタ数である。
この図８の場合、各インターリーブに与えられるＣ２セクタ数は同数としている。
なお、図においてインターリーブ当たりのＣ２セクタ数（Ｃ２／Intv）の表記を、インターリーブ分割数＝２の場合はｘ・ｘ、インターリーブ分割数＝３の場合はｘ・ｘ・ｘ、インターリーブ分割数＝４の場合はｘ・ｘ・ｘ・ｘ、としているが、これは各インターリーブに与えられるＣ２セクタ数が「ｘ」であることを表している。
【００８４】
セクタ数１〜２５５については、インターリーブ分割数＝１であるため、インターリーブ当たりのＣ２セクタ数（Ｃ２／Intv）は、Ｃ２セクタ数と同一となる。
セクタ数２５６〜５１０の場合は、インターリーブ分割数＝２である。このときインターリーブ当たりのＣ２セクタ数（Ｃ２／Intv）、つまり２つの各インターリーブに与えられるＣ２セクタ数は、Ｃ２セクタ数を分割数（＝２）で割った整数部分とすることで、各インターリーブにおいて同数としている。
例えばセクタ数２５６〜２５８では、Ｃ２セクタ数「１５」を２で割った整数部分をインターリーブ当たりのＣ２セクタ数（Ｃ２／Intv）とするため、各インターリーブでのＣ２セクタ数は「７」となる（図では「７・７」と表記）。
またセクタ数５４２〜５５８では、Ｃ２セクタ数「３３」を３で割った整数部分をインターリーブ当たりのＣ２セクタ数（Ｃ２／Intv）とするため、各インターリーブでのＣ２セクタ数は「１１」となる（図では「１１・１１・１１」と表記）。
【００８５】
例えばこのようなテーブルを備えることで、ＥＣＣ制御情報発生部２６は、アクセスするトラックのセクタ数の情報に基づいて、ＥＣＣブロック設定のための制御情報として、インターリーブ分割数及び各インターリーブでのＣ２セクタ数を出力することができる。
【００８６】
なお、図８のそれぞれの値は、計算式としてもあらわすことができる。
Ｃ２セクタ数は、セクタ数×冗長度の結果に対し、四捨五入して整数値とする。
インターリーブ分割数は２５５セクタ単位で、これを超えたときに＋１ずつ増える。
即ちインターリーブ分割＝整数部｛（セクタ数−１）÷２５５｝＋１
インターリーブ当たりＣ２セクタ数は、Ｃ２セクタ数の算出結果を、各インターリーブで割った整数部とする。
即ち、各インターリーブ当たりＣ２セクタ＝整数部（セクタ数÷インターリーブ数）
【００８７】
換言すれば、図８のようなテーブルデータをもつことにより、或いはテーブルデータをもたなくても、上記計算式を実行するアルゴリズムが備えられることにより、ＥＣＣ制御情報発生部２６は、磁気ディスク２１上の各トラックに対して、Ｃ２セクタおよびインターリーブを設定するための制御情報を発生させ、ディスクコントローラ１３に与えることができる。
そしてディスクコントローラ１３内のＥＣＣコントローラ３６は、供給されたインターリーブ及びＣ２セクタ数の情報に基づいて、ＥＣＣ処理を行うことで、トラックに応じたＥＣＣ処理が実現される。
【００８８】
そして図８からわかるように、Ｃ２セクタ数は、トラックあたりのセクタ数に対して冗長度（例えば６％）を基準として、設定されることになる。従って、この設定によってＥＣＣブロック処理が行われることは、磁気ディスク２１上の各トラックの状況に応じて、効率の良いＥＣＣブロック処理が行われることを意味する。例えば磁気ディスク２１上のゾーン、ディスク面、あるいはヘッド特性などに応じたフォーマットによるセクタ数の変動、さらに、存在するスリップによるセクタ欠損など、多様な事情で各トラックのセクタ数が異なる状況になることがあり得るが、トラックあたりのセクタ数に応じてＣ２セクタ数やインターリーブ構造が設定されることで、実際のトラック状況に応じて、最適かつ効率よくＣ２セクタを配置することができる。
【００８９】
ところで、図８の例ではインターリーブ当たりのＣ２セクタ数を同一とした。このため、例えば冗長度６％で算出されるＣ２セクタ数がそのまま反映されない場合がある。例えば上記のようにセクタ数２５６〜２５８の場合は、Ｃ２セクタ＝１５セクタであるが、実際に２つのインターリーブに割り当てられるＣ２セクタはそれぞれ７セクタとなり、結果として１４セクタとなってしまう。
これに対して、インターリーブ毎でのＣ２セクタ数を同一とするという条件をなくせば、より詳細にＣ２セクタ数を反映させることができる。
これを別例として図９に示す。
図９においては、インターリーブ当たりのＣ２セクタ数（Ｃ２／Intv）として、その総計が、冗長度６％で算出されたＣ２セクタ数と一致するように配分する例である。
例えばセクタ数２５６〜２５８の場合は、インターリーブ当たりのＣ２セクタ数（Ｃ２／Intv）を「７・８」とする。つまり一方のインターリーブ構造ではＣ２セクタを７セクタ配し、他方のインターリーブ構造ではＣ２セクタを８セクタ配するものとする。これによって、そのトラックのＣ２セクタの数を、１５セクタとする。
同様に例えばセクタ数５１１〜５２４の場合、Ｃ２セクタ数は３１となるが、これに対して、３つのインターリーブにおけるＣ２セクタ数を「１０・１０・１１」とすることで、総計で３１セクタとなるようにする。
このように設定すれば、さらに意図する冗長度に近い状態でＥＣＣブロック設定ができることになり、より効率の良いＥＣＣ構成とできる。
【００９０】
この他の例として例えば、上記では所定冗長度のＣ２セクタ数を四捨五入で与えたが、計算結果の整数部分のみとしてもよい。
すなわちＣ２セクタ数は、（セクタ数×冗長度）の結果の小数部を切り捨てたものでもよい。
【００９１】
ところで、例えば冗長度が、(１／２n) で表すことができる場合は、図１０のようにビット表記で示すことができる。
例えば
ｎ＝４では、１／２4＝１／１６＝0.0625 ・・・ 6.25%
ｎ＝５では、１／２5＝１／３２＝0.03125 ・・・ 3.125%
である。
冗長度を６．２５％、或いは３．１２５％とする場合、トラックあたりのセクタ数に対してＣ２セクタ数が図１０のように表される。
図１０ではトラックあたりのセクタ数０，１，２・・・（１０進表記）を１２ビット値で表している。そしてその場合、各セクタ数に対するＣ２セクタ数は、１２ビットのセクタ数をｎビットだけシフトした値となる。
つまり冗長度を６．２５％とする場合、１２ビット値を４ビットシフトした８ビット値がＣ２セクタ数を示すものとなり、また冗長度を３．１２５％とする場合、１２ビット値を５ビットシフトした７ビット値がＣ２セクタ数を示すものとなる。
このようにすれば、ＥＣＣ制御情報発生部２６を簡単なハードウエアないしはテーブルで構成することが可能である。
【００９２】
なお、冗長度の値に対するＣ２セクタ数についてであるが、実際のＥＣＣブロック構成は、図８、図９、図１０のそれぞれの例のように、単純に割り切れるセクタ数がゾーン毎に与えれるとは限らない。そのため、例えば完全に冗長度をそろえたＥＣＣブロック構成を与えるというよりも、所望の範囲の冗長度を与える、あるいは、所望以上の訂正能力を与える、という要求に対して、上記各例が適用されると考えるべきである。
【００９３】
以上の各例に示すようにＥＣＣブロック設定を行うことによって、本例のＨＤＤ１０では、磁気ディスク２１の全面において、より所望に即した訂正能力を持つＥＣＣブロック構成を与えることができる。
【００９４】
上記例で示したＥＣＣブロック構成において、インターリーブを適用した例を図１１，図１２で説明する。
ここでは、シンボル長８のリード・ソロモン符号では一般に最大数２５５までを処理単位とすることができることより、以下の例として示している。
【００９５】
なお、以下説明する例は、シンボル長９のリード・ソロモン符号では最大５１１まで、シンボル長１０のリード・ソロモン符号では最大１０２３までとして、同様の考え方で適用できる。さらに、シンボル長８のリード・ソロモン符号において、拡張処理を行うことで、最大２５６までとすることもできるが、いずれにしても、本発明では同様にして扱うことができる。
【００９６】
図１１は、トラックｎに対してインターリーブを適用したものであり、１トラックが５４０セクタの場合の例である。
上記図８の場合、５４０セクタに対しては、インターリーブ分割数＝３が与えられる。またＣ２セクタ数は３２セクタであるが、３つの各インターリーブにおけるＣ２セクタ数を同数とすることで、それぞれ１０セクタとなる。つまり、合計３０セクタがＣ２セクタとなる。
従ってこの場合、図１１（ａ）のように、トラックｎにおける５４０セクタに対して５１０セクタがデータセクタとされ、３０セクタがＣ２セクタとされる。
そしてインターリーブ分割数＝３であるため、図１１（ｂ）のようなインターリーブ０、１，２のインターリーブ構造とされる。
例えばインターリーブ０では、５１０セクタを３分割した１７０セクタのデータセクタに、１０セクタのＣ２セクタが付加されて構成される。インターリーブ１，２も同様である。
そして、トラック内のセクタ配置を、０番目にはインターリーブ０、１番目にはインターリーブ１、２番目にはインターリーブ２、そして３番目には再びインターリーブ０、・・・のように順に並べる。データセクタの後ろには連続して作成したＣ２セクタを同様にして順に並べる。
図１１（ｂ）はインターリーブで分解したものを示しており、また、図１１（ｃ）にはメモリ上にアドレス０から５３９まで割り振ったときの配置を示している。
【００９７】
この図１１の例は、図８の場合に対応した例であるが、図９の場合に対応すると、図１２のようになる。
図９の場合、５４０セクタのトラックに対しては、インターリーブ分割数＝３が与えられる。またＣ２セクタ数は３２セクタであり、これが３つの各インターリーブに配分される。つまり、各インターリーブにおけるＣ２セクタ数は１０・１１・１１となる。そして３２セクタがＣ２セクタとなるため、トラックｎにおける５４０セクタに対して５０８セクタがデータセクタとされる。
従って図１２のようなインターリーブ０、１，２のインターリーブ構造とされる。
例えばインターリーブ０では、１７０セクタのデータセクタに、１０セクタのＣ２セクタが付加されて構成される。インターリーブ１，２は、１６９セクタのデータセクタに、１１セクタのＣ２セクタが付加されて構成される。
【００９８】
なお、実際の記録データの構成は、この例だけに限っておらず、例えばセクタ毎のヘッダ情報が入る場合もあるし、またはセクタに対するＣＲＣセクタを設ける場合もある。
いずれにしても、これら付加情報がセクタの単位で与えられているとき、同様にして適用することができる。
また、１セクタのバイト数についても、現在は一般的には１セクタは５１２バイトのデータであるが、もちろんこの限りではなく、例えば１０２４バイト、あるいは２０４８バイトを１セクタのデータとした場合においても、上記と同様にしてセクタ毎及びセクタ間に構成されたＥＣＣブロックを実現することができる。
【００９９】
以上のように、ＥＣＣブロックを所定のトラック数単位に完結させ、その所定トラックにおけるセクタ数情報をもとに、所定の条件のもとで、ＥＣＣブロックとしてＣ２セクタを与え、さらにインターリーブ構成として、上記のように設定することで、ＥＣＣ部分の冗長度を所定範囲内に制御できるので、効率の良いＥＣＣブロック構成とできるとともに、ディスクの全周に渡って、より広い範囲でのランダムエラーやバーストエラーに対してもエラー訂正が可能なようになり安定したデータ再生が実現する。
【０１００】
次に、図１３により、上記例のＥＣＣブロック設定処理の流れについて説明する。
図１３は、データ書込又は読出時においてＣＰＵ１１、ディスクコントローラ１３を中心とした図１の各部の動作によって実現される処理を示している。
なお、事前処理としては、磁気ディスク２１のトラック毎のセクタ数情報が必要であるが、これはあらかじめ与えてられている。このセクタ数情報が記憶されている場所としては、例えば内蔵メモリ（ＲＯＭ／ＲＡＭ１２等）であり、あるいは、磁気ディスク２１の所定の領域である。
先ずステップＦ１０１で書き込み先の目標トラックが設定されると、ステップＦ１０２では、そのトラックに対するセクタ数情報を参照する。参照先は、上記のとおり、例えばＲＯＭ／ＲＡＭ１２、あるいは磁気ディスク２１のあらかじめ割り当てられた領域などである。
次にステップＦ１０３では、ＥＣＣ制御情報発生部２６の機能により、得られたセクタ数情報より、Ｃ２セクタ数とインターリーブ内容（分割数と各インターリーブにおけるＣ２セクタ割当）を決定するため、例えば図８又は図９のようなテーブルを参照する。なお、上述したようにテーブルを用いずに所定の計算式の演算処理を行っても良い。
ステップＦ１０３の処理により、ステップＦ１０４で、そのトラックにおけるＣ２パリティ数が決定するとともに、インターリーブ設定も決定する。
するとステップＦ１０５では、ＥＣＣ制御情報発生部２６からステップＦ１０４で決定された内容を示す制御情報がＥＣＣコントローラ３６等に送られ、該当トラックに対するＥＣＣブロックフォーマットが確定する。そして書込、又は読出処理に進む。
書込時であれば、ＥＣＣコントローラ３６は、指示されたＣ２セクタ数やインターリーブ内容に従ってＥＣＣブロックを生成することになる。そして書込処理に進む。
読出時であれば、ＥＣＣコントローラ３６は、指示されたＣ２セクタ数やインターリーブ内容に従ったＥＣＣブロックフォーマットを確定する。そしてその後、該当トラックから読み出されてきたをデータに対して、当該ＥＣＣブロックフォーマットにおいてエラー訂正処理を行うことになる。
なお、ＥＣＣブロックフォーマットとしてのＣ２セクタ数やインターリーブ内容については、記録時と再生時において一致させておくことで、正常な処理が実現するものである。
【０１０１】
５．適用例
本発明は上述した例に限定されず、以下のように各種の場合に適用できる。
ＨＤＤにおける磁気ディスク２１の枚数は、２枚の場合を示したが、１枚、或いは３枚以上の場合も本発明は当然に適用できる。磁気ディスク２１やヘッド２２等の構成に限らず、あくまでもトラック（或いはユニット）のセクタ数に応じてＥＣＣブロックが設定されることで、磁気ディスクのトラック等の状況に応じた、効率の良いＥＣＣブロックが実現される。
【０１０２】
また、上記図１３の処理において、各トラックのセクタ数情報が、ＲＯＭ／ＲＡＭ１２（或いは磁気ディスク２１の所定エリア）に予め記憶されているとしたが、トラック毎のセクタ数ではなく、そのセクタ数に応じたＣ２セクタ数、或いはインターリーブ内容そのものが、トラック番号に対応されて記録されていても良い。
【０１０３】
また図１では、ハードディスク装置１０の内部におけるＥＣＣ制御情報発生部２６の部位を示したが、ＥＣＣ制御情報発生部２６はこの位置のみに限定されることはない。ハードディスク装置内外において独立した部位に構成し、必要な情報を用いてＣ２セクタ数等の制御が行われればよいものである。
例えばホストコントローラ内にＥＣＣ制御情報発生部２６としての機能を備えるようにし、外部インターフェース１７を介して制御を行うような形式としてもよい。
【０１０４】
また図８，図９ではトラック当りのセクタ数を最大１０２０セクタまで記したが、上記の通りの計算式に従い、さらに大きなセクタ数を与えても同様な効果を与えることは当然である。また、インターリーブ数についても、５以上となっても同様である。
さらに各例では、冗長度を固定の６％として示したが、たとえば、特定のエリアにおいて、より冗長度を増やしてエラー訂正能力を高めたりするなど、必ずしも固定としなくてもよい。いずれにしてもこれらのテーブルにおいて定めた冗長度よりＣ２セクタ数が決定されることは同様である。また、冗長度を変化させるということは、さらにいっそう、詳細にディスクの特性、あるいは、データの内容などに対して細分化した構成を持つことが可能となることも意味する。
【０１０５】
また本発明は、ＨＤＤに限らず、他の種のディスク記録再生装置においても本発明は適用可能である。例えばトラックが同心円状とされるものの他、スパイラル状とされるディスクについてのシステムでも適用できる。もちろん磁気ディスクに限らず、光ディスク、光磁気ディスクについてのシステムでも適用できる。
【０１０６】
本発明のプログラムは、上述したＨＤＤ１０の機能を実現するプログラムである。特にＣＰＵ１１によって起動され、ＨＤＤ１０の各部がそのプログラムに基づいて制御されることで図１３のような処理が実行される。
このプログラムは、例えばＲＯＭ／ＲＡＭ１２に予め記憶しておくことができる。或いは磁気ディスク２１に記憶しておき、ＲＯＭ／ＲＡＭ１２にロードされる形態も考えられる。
【図面の簡単な説明】
【０１０７】
【図１】本発明の実施の形態のＨＤＤの全体構成のブロック図である。
【図２】実施の形態のディスクフォーマット構造を模式的に示した説明図である。
【図３】実施の形態のＨＤＤのディスクコントローラのブロック図である。
【図４】実施の形態のエラー訂正範囲の説明図である。
【図５】実施の形態のアクセスのための変換テーブルの説明図である。
【図６】実施の形態のトラック単位となるＥＣＣブロックの説明図である。
【図７】実施の形態のＥＣＣブロック構造の説明図である。
【図８】実施の形態のＥＣＣブロック制御情報を発生するテーブルの説明図である。
【図９】実施の形態のＥＣＣブロック制御情報を発生するテーブルの他の例の説明図である。
【図１０】実施の形態のトラックセクタ数に対するＣ２セクタ数をビットシフトで得る例の説明図である。
【図１１】実施の形態のインターリーブ構造の説明図である。
【図１２】実施の形態のインターリーブ構造の説明図である。
【図１３】実施の形態のＥＣＣブロック設定処理のフローチャートである。
【符号の説明】
【０１０８】
１０  ＨＤＤ（ハードディスク装置）、１１  ＣＰＵ、１２  ＲＯＭ／ＲＡＭ、１３  ディスクコントローラ、１４  バッファＲＡＭ、１５  データ読み書き制御部、１６  サーボ制御部、２１，２１ａ，２１ｂ  磁気ディスク  ２２，２２ａ，２２ｂ  磁気ヘッド、２６  ＥＣＣ制御情報発生部
【図１】
2005259311.tif 000003
【図２】
2005259311.tif 000004
【図３】
2005259311.tif 000005
【図４】
2005259311.tif 000006
【図５】
2005259311.tif 000007
【図６】
2005259311.tif 000008
【図７】
2005259311.tif 000009
【図８】
2005259311.tif 000010
【図９】
2005259311.tif 000011
【図１０】
2005259311.tif 000012
【図１１】
2005259311.tif 000013
【図１２】
2005259311.tif 000014
【図１３】
2005259311.tif 000015