(57)【特許請求の範囲】
【請求項１】
同心円状又はスパイラル状のトラックが形成されているとともに、上記各トラックは複数のセクタに分割されるとともに、サーボ領域が放射状となるように各位置に形成されるディスク記録媒体に対するデータ記録再生装置であって、
目的とするトラックをシークするシーク手段と、
該シークされたトラック上でアクセスを行うデータアクセス手段と、
データをエラー訂正するためのエラー訂正符号を生成するとともにエラー訂正符号に基づいてデータをエラー訂正するエラー訂正手段とを備え、
上記エラー訂正手段は、所定のデータ量単位に対して第１のエラー訂正符号単位を設定し、またディスク記録媒体上に形成されたトラックにおけるサーボ領域設定に応じて、複数個の第１のエラー訂正符号単位に対する第２のエラー訂正符号単位を設定し、複数個の上記第１のエラー訂正符号単位及びこれに対して付加された上記第２のエラー訂正符号単位からなるエラー訂正ブロックを形成し、上記トラック上での２つの上記サーボ領域に挟まれる区間における上記第１のエラー訂正単位としてのセクタ数に基づいて、上記第２のエラー訂正符号単位を含むセクタ数を設定するとともに、
トラック当たりに２以上のエラー訂正ブロックが存在しないように、且つ、１又は複数のトラック単位でエラー訂正ブロックを完結させるように、上記エラー訂正ブロックを形成する
ことを特徴とするデータ記録再生装置。
【請求項２】
上記エラー訂正手段はリードソロモン符号方式によりエラー訂正符号を生成することを特徴とする請求項１に記載のデータ記録再生装置。
【請求項３】
上記エラー訂正手段が形成する上記エラー訂正ブロックは、上記第１又は第２のエラー訂正符号単位において、インターリーブ構造を備えることを特徴とする請求項１に記載のデータ記録再生装置。
【請求項４】
上記データアクセス手段は、上記シーク手段によりシークされたトラック上で、アクセス可能となった先頭のセクタからアクセスを開始して１トラック分のアクセスを行うことを特徴とする請求項１に記載のデータ記録再生装置。
【請求項５】
上記データアクセス手段は、書き込みアクセス時には、各セクタに対して、トラック上でアクセスを開始したセクタから順番に相対位置アドレスを割り振り、読み出しアクセス時には、トラック上の各セクタから読み出したデータを相対位置アドレスに従って再配置して、書き込まれたデータを再現することを特徴とする請求項４に記載のデータ記録再生装置。
【請求項６】
上記エラー訂正手段は、上記トラック１周における上記サーボ領域の数と、上記トラック１周における上記第１のエラー訂正単位の数に応じて、上記第２のエラー訂正符号単位の設定を行うことを特徴とする請求項５に記載のデータ記録再生装置。
【請求項７】
上記エラー訂正手段は、エラー訂正ブロック構成を、上記ディスク記録媒体上において可変とすることを特徴とする請求項１に記載のデータ記録再生装置。
【請求項８】
上記ディスク記録媒体は、半径位置に応じてトラック上のセクタ数が相違するゾーンビットレコーディング方式により構成されることを特徴とする請求項１に記載のデータ記録再生装置。
【請求項９】
上記エラー訂正手段は、エラー訂正ブロック構成を、上記ディスク記録媒体上のゾーン毎に異なる構成とすることを特徴とする請求項９に記載のデータ記録再生装置。
【請求項１０】
上記エラー訂正手段は、ゾーン切替情報に従ってエラー訂正ブロック構成を切り替えることを特徴とする請求項９に記載のデータ記録再生装置。
【請求項１１】
上記エラー訂正手段は、上記エラー訂正ブロックの構成を、上記ディスク記録媒体上のゾーン毎に関係なく固定の構成とすることを特徴とする請求項８に記載のデータ記録再生装置。
【請求項１２】
同心円状又はスパイラル状のトラックが形成されているとともに、上記各トラックは複数のセクタに分割されるとともに、サーボ領域が放射状となるように各位置に形成されるディスク記録媒体に対するデータ記録再生方法として、
目的とするトラックをシークするシークステップと、
該シークされたトラック上でアクセスを行うデータアクセスステップと、
データをエラー訂正するためのエラー訂正符号を生成するとともにエラー訂正符号に基づいてデータをエラー訂正するエラー訂正ステップとを備え、
上記エラー訂正ステップでは、所定のデータ量単位に対して第１のエラー訂正符号単位を設定し、またディスク記録媒体上に形成されたトラックにおけるサーボ領域設定に応じて、複数個の第１のエラー訂正符号単位に対する第２のエラー訂正符号単位を設定し、複数個の上記第１のエラー訂正符号単位及びこれに対して付加された上記第２のエラー訂正符号単位からなるエラー訂正ブロックを形成するとともに、
上記エラー訂正ステップは、上記トラック上での２つの上記サーボ領域に挟まれる区間における上記第１のエラー訂正単位としてのセクタ数に基づいて、上記第２のエラー訂正符号単位を含むセクタ数を設定するとともに、トラック当たりに２以上のエラー訂正ブロックが存在しないように、且つ、１又は複数のトラック単位でエラー訂正ブロックを完結させるように、上記エラー訂正ブロックを形成すること
を特徴とするデータ記録再生方法。
【請求項１３】
上記エラー訂正ステップでは、リードソロモン符号方式によりエラー訂正符号を生成することを特徴とする請求項１２に記載のデータ記録再生方法。
【請求項１４】
上記エラー訂正ステップで形成される上記エラー訂正ブロックは、上記第１又は第２のエラー訂正符号単位において、インターリーブ構造を備えることを特徴とする請求項１２に記載のデータ記録再生方法。
【請求項１５】
上記データアクセスステップでは、上記シークステップによりシークされたトラック上で、アクセス可能となった先頭のセクタからアクセスを開始して１トラック分のアクセスを行うことを特徴とする請求項１２に記載のデータ記録再生方法。
【請求項１６】
上記データアクセスステップでは、書き込みアクセス時には、各セクタに対して、トラック上でアクセスを開始したセクタから順番に相対位置アドレスを割り振り、読み出しアクセス時には、トラック上の各セクタから読み出したデータを相対位置アドレスに従って再配置して、書き込まれたデータを再現することを特徴とする請求項１５に記載のデータ記録再生方法。
【請求項１７】
上記エラー訂正ステップでは、上記トラック１周における上記サーボ領域の数と、上記トラック１周における上記第１のエラー訂正単位の数に応じて、上記第２のエラー訂正符号単位の設定を行うことを特徴とする請求項１５に記載のデータ記録再生方法。
【請求項１８】
同心円状又はスパイラル状のトラックが形成されているとともに、上記各トラックは複数のセクタに分割されるとともに、サーボ領域が放射状となるように各位置に形成されるディスク記録媒体に対するデータ記録再生処理をコンピュータシステム上で実行するためにコンピュータ可読形式で記述されたプログラムとして、
目的とするトラックをシークするシークステップと、
該シークされたトラック上でアクセスを行うデータアクセスステップと、
データをエラー訂正するためのエラー訂正符号を生成するとともにエラー訂正符号に基づいてデータをエラー訂正するエラー訂正ステップとを備え、
上記エラー訂正ステップでは、所定のデータ量単位に対して第１のエラー訂正符号単位を設定し、またディスク記録媒体上に形成されたトラックにおけるサーボ領域設定に応じて、複数個の第１のエラー訂正符号単位に対する第２のエラー訂正符号単位を設定し、複数個の上記第１のエラー訂正符号単位及びこれに対して付加された上記第２のエラー訂正符号単位からなるエラー訂正ブロックを形成するとともに、
上記エラー訂正ステップは、上記トラック上での２つの上記サーボ領域に挟まれる区間における上記第１のエラー訂正単位としてのセクタ数に基づいて、上記第２のエラー訂正符号単位を含むセクタ数を設定するとともに、
トラック当たりに２以上のエラー訂正ブロックが存在しないように、且つ、１又は複数のトラック単位でエラー訂正ブロックを完結させるように、上記エラー訂正ブロックを形成するようにしたこと
を特徴とするプログラム。
【請求項１９】
上記エラー訂正ステップでは、リードソロモン符号方式によりエラー訂正符号を生成することを特徴とする請求項１８に記載のプログラム。
【請求項２０】
上記エラー訂正ステップで形成される上記エラー訂正ブロックは、上記第１又は第２のエラー訂正符号単位において、インターリーブ構造を備えるようにしたことを特徴とする請求項１８に記載のプログラム。
【請求項２１】
上記データアクセスステップでは、上記シークステップによりシークされたトラック上で、アクセス可能となった先頭のセクタからアクセスを開始して１トラック分のアクセスを行うようにしたことを特徴とする請求項１９に記載のプログラム。
【請求項２２】
上記データアクセスステップでは、書き込みアクセス時には、各セクタに対して、トラック上でアクセスを開始したセクタから順番に相対位置アドレスを割り振り、読み出しアクセス時には、トラック上の各セクタから読み出したデータを相対位置アドレスに従って再配置して、書き込まれたデータを再現するようにしたことを特徴とする請求項２１に記載のプログラム。
【請求項２３】
上記エラー訂正ステップでは、上記トラック１周における上記サーボ領域の数と、上記トラック１周における上記第１のエラー訂正単位の数に応じて、上記第２のエラー訂正符号単位の設定を行うようにしたことを特徴とする請求項２２に記載のプログラム。
【請求項２４】
所定のデータ量単位に対して第１のエラー訂正符号単位が設定され、また複数個の第１のエラー訂正符号単位に対する第２のエラー訂正符号単位が設定され、複数個の上記第１のエラー訂正符号単位及びこれに対して付加された上記第２のエラー訂正符号単位からなるエラー訂正ブロックが形成されるとともに、
上記エラー訂正ブロックにおいて、上記第２のエラー訂正符号単位のセクタ数は同心円状又はスパイラル状に形成された各記録トラックにおけるサーボ領域の２つの該サーボ領域に挟まれる区間における上記第１のエラー訂正単位としてのセクタ数に基づいて設定されているとともに、
トラック当たりに２以上のエラー訂正ブロックが存在しないように、且つ、１又は複数のトラック単位でエラー訂正ブロックを完結させるように、上記エラー訂正ブロックを形成されており、
上記エラー訂正ブロックの構成を有するデータが、上記各記録トラックに記録されたこと特徴とする記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ランダムアクセス可能な記録媒体のためのデータ記録再生装置及びデータ記録再生方法、並びにコンピュータプログラム、記録媒体に係り、特に、ハードディスクのようにメディアとしての磁気ディスク上で磁気ヘッドをスキャンさせながらデータの読み書き動作を行うディスク型記録媒体のための技術に関する。さらに詳しくは、本発明は、所望のデータ記憶場所へのアクセス時間の短縮を図りながら、安定したデータ記録再生を行う技術に関する。
【０００２】
【従来の技術】
【特許文献１】
特開２０００−２７６８５６
【特許文献２】
特開２０００−２７８６４５
【０００３】
情報処理や情報通信など情報技術の発達とともに、過去において作成・編集した情報についても再利用する必要が生じてきており、このために情報蓄積技術はますます重要となってきている。いままで、磁気テープや磁気ディスクなどさまざまなメディアを利用した情報記録装置が開発され普及している。
【０００４】
このうちＨＤＤ（Hard Disk Drive）は、磁気記録方式の補助記憶装置である。ＨＤＤのドライブ・ユニット内には記録媒体である数枚の磁気メディアが収容され、モータによって高速に回転する。メディアには、酸化鉄やコバルト・クロムなどの磁性体が、メッキや薄膜生成によって塗布されている。
そして、磁気ヘッドを回転するメディア表面上で半径方向にスキャンさせることによって、メディア上にデータに相当する磁化を生じさせて書き込みを行い、あるいはデータを読み出すことができる。
【０００５】
ハードディスクは既に広汎に普及している。例えば、パーソナルコンピュータ用の標準的な外部記憶装置として、コンピュータを起動するために必要なオペレーティングシステム（ＯＳ）やアプリケーションなど、さまざまなソフトウェアをインストールしたり、作成・編集したファイルを保存したりするためにハード・ディスクが利用されている。通常、ＨＤＤは、ＩＤＥ（Integrated Drive Electronics）やＳＣＳＩ（Small Computer System Interface）などの標準的なインターフェースを介してコンピュータ本体に接続され、その記憶空間は、ＦＡＴ（File Allocation Table）などの、オペレーティングシステムのサブシステムであるファイルシステムによって管理される。
【０００６】
最近では、ＨＤＤの大容量化が進んできている。これに伴って、従来のコンピュータ用補助記憶装置としてだけでなく、放送受信されたＡＶコンテンツを蓄積するハードディスクレコーダなど、適用分野が拡大し、さまざまなコンテンツを記録するために利用され始めている。
【０００７】
ここで、コンピュータ用補助記憶装置として使用される場合を例にとって、ハードディスクの物理フォーマット方法やハードディスクへのデータ読み書きオペレーションについて考察してみる。
ハードディスク上には、データを記録するための区画として、同心円状に多数の「トラック」を形成する。そして、ディスクの最外周から内周に向かって０，１，…とトラック番号が割り振られる。ディスク表面上にトラック数が多いほどメディアの記憶容量は増す。
【０００８】
さらに、各トラックは、記録単位である「セクタ」に分割される。ディスクに対する通常のデータ読み書き動作はセクタ単位で行われる。セクタサイズはメディア毎に相違するが、ハードディスクのセクタは一般に５１２バイトと決まっている。また、メディアの使用効率を考慮して、各トラック上の記録密度をほぼ均一にするために、周長が長くなる外側のトラックに向かうほどセクタ数を多く設けている。これを”Ｚｏｎｅ  Ｂｉｔ  Ｒｅｃｏｒｄｉｎｇ”（ゾーンビットレコーディング）方式と呼ぶ。
ゾーンビットレコーディング方式を採用した場合、各トラック上の記録密度をほぼ均一にすることができる一方で、トラック毎のデータ転送速度が不均一となるという問題がある。データ転送速度は、ディスクの内周方向に進むにつれて、低くなっていく。
【０００９】
また、数枚のメディアが同心円状に重なって構成されているＨＤＤの場合、各メディアの同じ番号のトラックは円筒状に配置されていると捉えることができ、これを「シリンダ」と呼ぶ。各シリンダには、トラック番号と同じ番号が割り振られ、最外周から順にシリンダ０，シリンダ１，・・・となる。各メディア間に挿設された複数のヘッドは常に一体となって作動して、シリンダ間を移動する。
【００１０】
目的となるセクタを指定（アドレス）する方式として、ＣＨＳモードを挙げることができる。これは、ディスク上のＰＢＡ（Physical Block Address：物理ブロック・アドレス）を、Ｃ（Cylinder）、Ｈ（Head）、Ｓ（Sector）の順に指定することによって、所望のデータにアクセスする方式である。
【００１１】
一方、ＣＨＳ方式においては、ＨＤＤに対するホストとして動作するコンピュータ本体側では、指定できるＣＨＳパラメータに限界があり、ハード・ディスクの大容量化に対応できなくなってくる。このため、ＬＢＡ（Logical Block Address：論理ブロック・アドレス）モードが採用されている。これは、シリンダ番号、ヘッド番号、セクタ番号（ＣＨＳ）を０から始まるＬＢＡという論理的な通し番号で表現するものである。
【００１２】
従来のＨＤＤでは、メディアにアクセスしてデータを読み書きするためには、先ず、磁気ヘッドが目的とするセクタのあるトラックに到達するために、磁気ヘッドをメディア上で走査させる。これを磁気ヘッドの「シーク」動作と呼ぶ。次に、トラック上で目的のセクタに到達するために、メディアが回転して、目的のセクタが磁気ヘッドの真下に来るまで待つ。これを「回転待ち」と呼ぶ。
【００１３】
ディスクの大容量化に伴い、トラック密度が増大してトラック幅が極めて狭くなる。したがって、データを正確に書き込み及び再生するためには、磁気ヘッドの位置決めは高い精度が要求される。そこで、磁気ヘッドの位置を常にトラックの中心に合わせるというサーボ技術が採用されている。各トラック上に「サーボ・パターン」と呼ばれる信号を一定間隔で書き込んでおき、これを磁気ヘッドで読むことにより、磁気ヘッドがトラックの中心にあるかどうかをチェックすることができる。サーボ・パターンは、ＨＤＤの製造工程において、高精度に書き込まれる。サーボ領域には、例えば、ヘッドの位置決めするための信号と、シリンダ番号、ヘッド番号、サーボ番号などが書き込まれている。
【００１４】
従来の多くのＨＤＤは、ＩＤＥやＳＣＳＩなどコンピュータとの接続を目的としたインターフェースを持っている。そして、コンピュータ本体からのディスクドライブ制御は、インターフェースで定義されているコマンド・セットを用いて、先頭セクタを示すＬＢＡとアクセスを行うセクタ数を指定することを基本動作とする。
この場合、ＨＤＤ側では、指定された先頭セクタからのアクセスを行うとともに、その後アクセスされるセクタを予測して先読みを行うシーケンスを作成しながらアクセスを行うことができる。
【００１５】
この先読みという動作は、一連のデータに対して連続するアドレスを持つセクタが割り振られていることを前提としている。通常、連続するアドレスを持つセクタは、連続するヘッド番号あるいはトラック番号に存在する。
大きなデータがメディア上に連続して書き込まれている場合には、読み出し時の先読み動作が有効に働く。
【００１６】
【発明が解決しようとする課題】
しかしながら、記憶領域のフラグメンテーションが進行し、大きなデータが小さく断片化されて複数の場所に分散しているような場合には、読み出し時の先読みは別のデータを指してしまうために、有効に働くことができない。このような現象は、データの読み書きを要求するホスト（コンピュータ本体など）側が取り扱うファイル構造を、ＨＤＤ側が把握していないことから起きるとも言える。
【００１７】
また、ホスト側からの新たなアクセス要求によってその予測がはずれた場合、ディスクドライブは、その要求されるデータの存在するセクタが含まれるトラックへシークを行い、トラッキングが完了すると目的のセクタのアクセスが可能となるのを待つ。ここにおいて、シーク時間と回転待ち時間が発生する。
【００１８】
先読みデータの保存は、データバッファの容量が許容する限りである。予測が外れる場合が連続的あるいは散発的に発生すると、データバッファ上の使われていない古いデータから順に破棄されることとなる。また、この先読みを行っている間はシーク起動を行うことができない。
【００１９】
以上のように、シーク時間と回転待ち時間、無効な先読みによるシーク起動の遅れによる時間の損失、並びに無効な先読みによるデータの損失が発生していると言える。
【００２０】
通常のディスクドライブでは、このシーク時間と回転待ち時間を短縮するために、ディスクの回転数を上げることが行われている。これは、コンピュータなどのホスト側で扱われるデータ量やデータ構造に規則性がないため、アクセス方法による改善を行うことが困難であるからである。しかしディスクの回転数を上げる方式では、電力消費や記憶容量の面において不利であり、問題となる。
【００２１】
また、ＨＤＤなどの従来の外部記憶システムの多くは、１セクタ（１セクタは通常５１２バイトからなる）単位でエラー訂正が行われる。これにより、各セクタに発生するランダムエラーに対してエラー訂正を行うことができる。そして、訂正可能範囲を越えたランダムエラーや、あるいはバーストエラーに対しては、エラー訂正を行うことができない。そこで、リトライ動作を実施するなどによって、読み取りエラーを一定以下にしていた。
しかしながら、このようなリトライ動作は、１周回転待ちして再読み込みを行う必要がある。このため、さらにデータ読み出し時間の遅れを発生させることになる。
例えば、ＡＶコンテンツを扱うシステムにおいて、ＨＤ（ハイビジョン画質）の再生やあるいは特殊再生を行うなど、高転送速度が要求される状況があり、セクタ内において訂正不能な読み取りエラーが発生しても時間的にリトライを行うことが出来ない場合がある。このようなとき、現状では、エラー訂正が行われないまま処理を進める他なく、この結果、再生品質は悪くなった。
【００２２】
なお、例えば上記特許文献２には、記録するデータブロックの重要度を示す情報を持たせ、この情報に基づいて、重要であるデータブロックについてはリトライを実行させ、それ以外はリトライをさせない等の切換を行う技術が開示されている。
また上記特許文献１には、記録するデータブロックの重要度を示す情報を持たせ、この情報に基づいて、重要であるデータブロックについてはエラー訂正能力を増加させ、それ以外は通常の訂正能力とする等の切換を行う技術が開示されている。
これらの技術は、特にＡＶコンテンツを扱うシステム等において或る程度適切に機能するが、リトライの回避やエラー訂正においてより効果的な技術が求められている。
【００２３】
またさらに、これらＡＶコンテンツの読み出し中において振動等の外乱が加えられると、外乱のなかった状態での読み出し時よりも、エラーの発生が多くなる。そのために、エラー訂正が不可能となるデータも増え、結局再生品質が悪くなる。
特に外乱の加わった状態でのエラーについては、ＨＤＤのサーボエリアがディスク上で放射状に配置してある場合、サーボエリアに挟まれるセクタ区間の単位で断続的にエラーが発生する場合が多い。
そのエラーは、ランダムである場合もあるし、バーストである場合もある。そして外乱が大きいほど、ランダムエラーを訂正するセクタ内訂正が不可能となるセクタは増加する。
【００２４】
【課題を解決するための手段】
本発明は上述したような課題に鑑みたものであり、データ記録再生装置及びデータ記録再生方法、並びにコンピュータプログラム、記録媒体として、以下の目的を実現する。
即ち、所望のデータ記憶場所へのアクセス時間の短縮を図る。
また、転送速度を低下させることなく安定したデータ再生を行う。
また、より広い範囲でのランダムエラーやバーストエラーに対してもエラー訂正可能とすることでリトライ動作を回避して転送速度の低下を少なくし、さらに、外乱等が加わった際においても、リトライ動作を回避することにより転送速度を低下させることなく、安定したデータ再生を行うことができるようにする。
【００２５】
本発明のデータ記録再生装置は、同心円状又はスパイラル状のトラックが形成されているとともに、上記各トラックは複数のセクタに分割されるとともに、サーボ領域が放射状となるように各位置に形成されるディスク記録媒体に対するデータ記録再生装置であって、目的とするトラックをシークするシーク手段と、該シークされたトラック上でアクセスを行うデータアクセス手段と、データをエラー訂正するためのエラー訂正符号を生成するとともにエラー訂正符号に基づいてデータをエラー訂正するエラー訂正手段とを備える。そして上記エラー訂正手段は、所定のデータ量単位に対して第１のエラー訂正符号単位を設定し、またディスク記録媒体上に形成されたトラックにおけるサーボ領域設定に応じて、複数個の第１のエラー訂正符号単位に対する第２のエラー訂正符号単位を設定し、複数個の上記第１のエラー訂正符号単位及びこれに対して付加された上記第２のエラー訂正符号単位からなるエラー訂正ブロックを形成し、上記トラック上での２つの上記サーボ領域に挟まれる区間における上記第１のエラー訂正単位としてのセクタ数に基づいて、上記第２のエラー訂正符号単位を含むセクタ数を設定するとともに、トラック当たりに２以上のエラー訂正ブロックが存在しないように、且つ、１又は複数のトラック単位でエラー訂正ブロックを完結させるように、上記エラー訂正ブロックを形成する。
【００２６】
また上記エラー訂正手段はリードソロモン符号方式によりエラー訂正符号を生成する。
また上記エラー訂正手段が形成する上記エラー訂正ブロックは、上記第１又は第２のエラー訂正符号単位において、インターリーブ構造を備える。
【００２７】
また上記データアクセス手段は、上記シーク手段によりシークされたトラック上で、アクセス可能となった先頭のセクタからアクセスを開始して１トラック分のアクセスを行う。
この場合、上記データアクセス手段は、書き込みアクセス時には、各セクタに対して、トラック上でアクセスを開始したセクタから順番に相対位置アドレスを割り振り、読み出しアクセス時には、トラック上の各セクタから読み出したデータを相対位置アドレスに従って再配置して、書き込まれたデータを再現する。
また上記エラー訂正手段は、上記トラック１周における上記サーボ領域の数と、上記トラック１周における上記第１のエラー訂正単位の数に応じて、上記第２のエラー訂正符号単位の設定を行う。
また上記エラー訂正手段は、トラック当たりに２以上のエラー訂正ブロックが存在しないように、且つ、１又は複数のトラック単位でエラー訂正ブロックを完結させるように、上記エラー訂正ブロックを形成する。
【００２８】
また上記エラー訂正手段は、エラー訂正ブロック構成を、上記ディスク記録媒体上において可変とする。
また上記ディスク記録媒体は、半径位置に応じてトラック上のセクタ数が相違するゾーンビットレコーディング方式により構成される。
上記エラー訂正手段は、エラー訂正ブロック構成を、上記ディスク記録媒体上のゾーン毎に異なる構成とする。この場合上記エラー訂正手段は、ゾーン切替情報に従ってエラー訂正ブロック構成を切り替える。
また上記エラー訂正手段は、上記エラー訂正ブロックの構成を、上記ディスク記録媒体上のゾーン毎に関係なく固定の構成とする。
【００２９】
本発明のデータ記録再生方法は、同心円状又はスパイラル状のトラックが形成されているとともに、上記各トラックは複数のセクタに分割されるとともに、サーボ領域が放射状となるように各位置に形成されるディスク記録媒体に対するデータ記録再生方法として、目的とするトラックをシークするシークステップと、該シークされたトラック上でアクセスを行うデータアクセスステップと、データをエラー訂正するためのエラー訂正符号を生成するとともにエラー訂正符号に基づいてデータをエラー訂正するエラー訂正ステップとを備えるとともに、上記トラック上での２つの上記サーボ領域に挟まれる区間における上記第１のエラー訂正単位としてのセクタ数に基づいて、上記第２のエラー訂正符号単位を含むセクタ数を設定するとともに、トラック当たりに２以上のエラー訂正ブロックが存在しないように、且つ、１又は複数のトラック単位でエラー訂正ブロックを完結させるように、上記エラー訂正ブロックを形成する。
また上記エラー訂正ステップでは、リードソロモン符号方式によりエラー訂正符号を生成する。
また上記エラー訂正ステップで形成される上記エラー訂正ブロックは、上記第１又は第２のエラー訂正符号単位において、インターリーブ構造を備える。
【００３０】
また上記データアクセスステップでは、上記シークステップによりシークされたトラック上で、アクセス可能となった先頭のセクタからアクセスを開始して１トラック分のアクセスを行う。
また上記データアクセスステップでは、書き込みアクセス時には、各セクタに対して、トラック上でアクセスを開始したセクタから順番に相対位置アドレスを割り振り、読み出しアクセス時には、トラック上の各セクタから読み出したデータを相対位置アドレスに従って再配置して、書き込まれたデータを再現する。
また上記エラー訂正ステップでは、上記トラック１周における上記サーボ領域の数と、上記トラック１周における上記第１のエラー訂正単位の数に応じて、上記第２のエラー訂正符号単位の設定を行う。
また上記エラー訂正ステップでは、トラック当たりに２以上のエラー訂正ブロックが存在しないように、且つ、１又は複数のトラック単位でエラー訂正ブロックを完結させるように、上記エラー訂正ブロックを形成する。
【００３１】
本発明のプログラムは、同心円状又はスパイラル状のトラックが形成されているとともに、上記各トラックは複数のセクタに分割されるディスク記録媒体に対するデータ記録再生処理をコンピュータシステム上で実行するためにコンピュータ可読形式で記述されたプログラムであり、上記データ記録再生方法のステップを実行させるプログラムである。
【００３２】
本発明の記録媒体は、所定のデータ量単位に対して第１のエラー訂正符号単位が設定され、また複数個の第１のエラー訂正符号単位に対する第２のエラー訂正符号単位が設定され、複数個の上記第１のエラー訂正符号単位及びこれに対して付加された上記第２のエラー訂正符号単位からなるエラー訂正ブロックが形成されるとともに、上記エラー訂正ブロックにおいて、上記第２のエラー訂正符号単位のセクタ数は同心円状又はスパイラル状に形成された各記録トラックにおけるサーボ領域の２つの該サーボ領域に挟まれる区間における上記第１のエラー訂正単位としてのセクタ数に基づいて設定されているとともに、トラック当たりに２以上のエラー訂正ブロックが存在しないように、且つ、１又は複数のトラック単位でエラー訂正ブロックを完結させるように、上記エラー訂正ブロックを形成されており、上記エラー訂正ブロックの構成を有するデータが、上記各記録トラックに記録される。
【００３３】
以上の本発明により、上述した所期の目的を実現する。
即ち、第１のエラー訂正符号単位を用いることによりセクタ内でのランダムエラーを訂正することができるとともに、第２のエラー訂正符号単位を用いることによりセクタ内エラー訂正範囲を越えるエラーや、セクタ間にまたがるバーストエラーを訂正することができる。すなわち、エラー訂正ブロック構成をＣ１＋Ｃ２とすることによって、データ転送速度を所望以上に保つためにリトライが行えない状況においても、Ｃ１でエラー訂正が不能となった際に、さらにＣ２でエラー訂正を行うことができるので、より安定したシステムを提供することができる。そしてこのように、より広い範囲でのランダムエラーやバーストエラーに対してもエラー訂正が可能として、リトライ動作を回避することによって、転送速度を低下させることなく、安定したデータ再生を行うことができる。
さらに、第２のエラー訂正符号（Ｃ２）単位の構成が、トラックにおけるサーボ領域設定、即ちトラック１周におけるサーボ領域数やセクタ（第１のエラー訂正単位）の数やサーボ領域とサーボ領域の間の第１のエラー訂正単位の数などに応じて設定されることで、外乱等によるサーボエリア間（サーボフレーム）でのエラーを考慮した設定が可能となる。そしてトラックにおけるサーボ領域設定に基づくエラー訂正ブロック設定より、エラー訂正符号単位の効率を良くし、冗長を少なくすることができる。
また各ゾーンにおける第２のエラー訂正符号について、サーボ領域構成に応じて設定することにより、ディスクの全周に渡ってエラー訂正能力を均一にすることができるとともに、効率の良いディスクフォーマットを実現できる。
【００３４】
また、上記データアクセス手段は、上記シーク手段によりシークされたトラック上で、アクセス可能となった先頭のセクタからアクセスを開始して１トラック分のアクセスを行う。例えば磁気ヘッドがオントラックしたセクタから１トラック分のアクセスを行う。すなわち、１トラックをアクセス単位とすることで、先読みという不確定な処理を省いて、シーク起動のタイミングを確実に決定することができる。
特にこの場合、上記データアクセス手段が、書き込みアクセス時には、各セクタに対して、トラック上でアクセスを開始したセクタから順番に相対位置アドレスを割り振り、読み出しアクセス時には、トラック上の各セクタから読み出したデータを相対位置アドレスに従って再配置して、書き込まれたデータを再現することで、トラックのどのセクタからでもアクセスを行うことができるので、シーク直後の任意のヘッド位置から読み書きを行うことにより、回転待ちをなくすことができる。この結果、シークの回数を最小限に抑え、アクセス時間が短縮化される。
また、書込や読出の要求元（例えば、ＨＤＤに接続されているコンピュータなどのホスト装置）は、ディスク上のセクタ・アドレスを意識する必要がない。また、データサイズが短くて済む相対位置アドレスを用いることにより、記憶領域の有効利用を図ることができる。
また、読み出しアクセス時には、トラック上の各セクタから読み出したデータを、例えばバッファメモリ上で相対位置アドレスに従って再配置することによって、アクセスを開始したセクタの位置に拘わらず、元のデータを組み立てることができるが、この場合、トラック当たりに２以上のエラー訂正ブロックが存在しないように、且つ、１又は複数のトラック単位でエラー訂正ブロックを完結させるようにエラー訂正ブロックを形成することが適切である。
【００３５】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施の形態について次の順序で説明する。
１．第１の実施の形態
１−１  ハードディスク装置の構成
１−２  サーボエリア
１−３  ＥＣＣ構成
１−４  フォーマット例及び処理
２．第２の実施の形態
２−１  アクセス動作
２−２  ＥＣＣ構成
２−３  フォーマット例及び処理
３．変形例
【００３６】
１．第１の実施の形態
１−１  ハードディスク装置の構成
図１には、本発明の実施の形態に係るＨＤＤ（ハードディスク装置）１０の全体構成を模式的に示している。
同図に示すように、ＨＤＤ１０は、ＣＰＵ（Central Processing Unit）１１と、ＲＯＭ（Read Only Memory）／ＲＡＭ（Random Access Memory）１２と、ディスクコントローラ１３と、バッファＲＡＭ１４と、データ読み書き制御部１５と、サーボ制御部１６、そして磁気ディスク２１とを備えている。
【００３７】
ＣＰＵ１１は、ＲＯＭ／ＲＡＭ１２に格納されている制御コードを実行して、ドライブ１０内の動作を統括的にコントロールする。
ディスクコントローラ１３は、インターフェース１７を介して接続されるホスト（図示しない）からコマンドを受け取る。ＣＰＵ１１はこのコマンド処理を行い、ディスクコントローラ１３はコマンド処理結果に従って、データ読み書き制御部１５やサーボ制御部１６に対するハードウェア操作を指示する。
インターフェース１７経由でホストから受け取った書き込みデータや、磁気ディスク２１から読み取ってホストに渡されるデータは、バッファＲＡＭ１４に一時的に格納される。
【００３８】
データ読み書き制御部１５は、符号化変調処理を行って実際に記録するデータパターンを作成し、プリアンプ２５を介して磁気ディスク２１にデータを書き込む。また、逆に読み込んだデータをプリアンプ２５を介して磁気ディスク２１から取り込み、データの復調処理を行う。
【００３９】
サーボ制御部１６は、磁気ヘッド２２を搭載したアームを移動するボイスコイルモータ（ＶＣＭ）２３、及び磁気ディスク２１を回転させるスピンドルモータ（ＳＰＭ）２４を同期的駆動させて、磁気ヘッド２２が磁気ディスク２１上の目的とするトラック上の所定範囲内に到達するように制御する。さらに、ディスク上のサーボパターン（前述）よりヘッド位置を所定の位置にシークさせるための制御を行う。
【００４０】
磁気ディスク２１上には、データを記録するための区画である多数のトラックが同心円状に形成され、例えばディスク２１の最外周から、内周に向かって０，１，２，…とトラック番号が割り振られている。また、各トラックは、さらにセクタ毎に分割されており、このセクタ単位が、データ読み書き動作の可能な最小単位となっている。
セクタ内のデータ量は例えば５１２バイトで固定である。
実際に記録されているセクタには、データに加えて、ヘッダ情報やエラー訂正用コードなどが付加されている。
【００４１】
１周当たりのセクタ数については、周長が長くなる外側のトラックに向かうほどセクタ数を多く設けるＺＢＲ（Ｚｏｎｅ  Ｂｉｔ  Ｒｅｃｏｒｄｉｎｇ）方式を採用する。すなわち、磁気ディスク２１の全周に渡るトラック毎のセクタ数は均一ではなく、磁気ディスク２１を半径方向に複数のゾーンに区切り、各ゾーン内においては同じセクタ数となるように設定する。
【００４２】
なお、図示しないが、ドライブユニット内には、数枚の磁気ディスク（プラッタ）が同心円状に重なって構成することもでき、そのとき各磁気ディスクの同じトラック番号は円筒状に配置され（シリンダ）、トラック番号と同じシリンダ番号で指定される。
【００４３】
図３には、ＺＢＲ方式の一例を示している。
同図に示す例では、ディスクを３つのゾーンに区切っており、最外周から順にゾーン０，１，２とゾーン番号が与えられている。さらに、各ゾーン内には複数本のトラックが含まれている。
また図３において、各ゾーンをセクタで区切っているが、この場合（あくまで模式的な例として）、ゾーン０は３２セクタで構成され、同様に、ゾーン１は１６セクタ、ゾーン２は８セクタでそれぞれ構成されている。ゾーンの切り替えに当たり、具体的なセクタ数については、スピンドルモータ２４の回転数は一定とし、記録再生クロックを可変にするなどによって、線記録密度を所定の範囲におさめ、ディスク当たりの記憶容量を増加させるように決定される。
【００４４】
図２は、図１のディスクコントローラ１３の内部構成をより詳細に示している。同図に示すように、ディスクコントローラ１３は、ＣＰＵインターフェース３１と、ホストコントローラ３２と、バッファコントローラ３３と、サーボコントローラ３４と、ディスクフォーマッタ３５と、ＥＣＣコントローラ３６とで構成されている。なお、同図において、データの移動が発生する矢印に対しては二重線で示してある。
【００４５】
ＣＰＵインターフェース３１は、ＣＰＵ１１と、ＲＡＭ／ＲＯＭ１２とのインターフェースであり、ホストからのコマンドを通知したり、ＣＰＵ１１からのコマンド処理結果の受信などを行ったりする。
ホストコントローラ３２は、インターフェース１７を介して接続されるホストとの通信を行う。
バッファコントローラ３３は、バッファＲＡＭ１４と、ディスクコントローラ１３内の各部間でのデータのやりとりを制御する。
サーボコントローラ３４は、ＶＣＭ（ボイスコイルモータ）２３及びＳＰＭ（スピンドルモータ）２４の動作を制御することによって、磁気ディスク２１上のサーボパターンからサーボ情報を読み取り、この情報をサーボ制御部１５へ渡す。
【００４６】
ディスクフォーマッタ３５は、バッファＲＡＭ１４上のデータを磁気ディスク２１に書き込んだり、あるいは磁気ディスク２１からデータを読み出したりするための制御を行う。
ＥＣＣコントローラ３６は、バッファＲＡＭ１４に格納されているデータより、書き込み時にはＥＣＣ符号を生成して付加したり、あるいは読み出し時にはエラー訂正を行ったりする。
【００４７】
本実施の形態に係るハードディスク装置１０は、上述したような構成とされ、この構成において、以下説明するように、広い範囲でのランダムエラーやバーストエラーに対してもエラー訂正可能とすることでリトライ動作を回避して転送速度の低下を少なくし、安定したデータ再生を行うものである。
【００４８】
１−２  サーボエリア
図４には磁気ディスク２１におけるサーボエリアの配置の一例を示している。
図４において半径方向の実線は、サーボエリアＳＲＶを示している（図３に示したようなセクタの区切りではない）。
【００４９】
図４に示す例では、磁気ディスク２１において、半径方向に３２本の実線で示すように、放射状にサーボエリアが配置されている。即ちサーボエリアＳＲＶは、同心円となるゾーン０，１，２に関係なく形成されている。つまりどのゾーンにおいても、１トラックにつき３２個のサーボエリアが形成されている。
【００５０】
１セクタが５１２バイトで与えられている場合、セクタ当たりの大きさ（セクタサイズ）は、トラック上の２つのサーボエリアの間の容量と比較して小さいので、トラック上の或るサーボエリアと、次のサーボエリアの間には複数のセクタが配置されることになる。
これらセクタの配置は、主にＺＢＲのゾーン毎に定められている。すなわち、ゾーンが切り替わると、サーボエリアとサーボエリアの間に配置されているセクタ数についても異なっている。
【００５１】
そして、上記ゾーンの切り替えに当たり、具体的なセクタ数については、スピンドルモータ２４の回転数は一定とし、記録再生クロックを可変にするなどによって、線記録密度を所定の範囲におさめ、ディスク当たりの記憶容量を増加させるように決定される。
【００５２】
図４の例では、１トラックあたりのサーボエリア数を３２としたが、例えばサーボエリア数を９６とすれば、同様にして、ディスクに対して放射状に配置され、さらに、所定のサーボエリアと、次のサーボエリアの間には、複数のセクタが配置される。
尚、サーボ帯域については、１トラックあたりのサーボエリア数及びディスクの回転数、サーボ周波数等によって決定され、システムの要求に合わせて設定されている。
【００５３】
図４において▲１▼に示すトラック部分として、サーボエリアとサーボエリアの間に配置されている、セクタの具体的な例を図５に示す。
図５（ａ）は、サーボエリアＳＲＶとサーボエリアＳＲＶの間に８セクタが配置されている例である。
なお、２つのサーボエリアＳＲＶに挟まれる範囲をサーボフレームとも呼ぶ。従ってこの例は、サーボフレームとして８セクタが設けられる例となる。
また図５（ｂ）は、サーボエリアＳＲＶとサーボエリアＳＲＶの間（サーボフレーム）に８．５セクタが配置されている例である。
【００５４】
図５にあるような各セクタの長さは、スピンドルモータ２４の回転数および記録再生クロック等によって決定されるが、必ずしもサーボエリアＳＲＶとサーボエリアＳＲＶの間に丁度セクタが収まらなくて良いものとしている。
このような場合、図５（ａ）のように、サーボエリア間の内に収まる最大のセクタを配置し、余りの部分は空きとしてセクタに使用しないように構成することが出来るし、あるいは図５（ｂ）のように、余りの部分もセクタの配置に使用し、セクタ分として不足した残りを、次のサーボエリア間で配置するような構成にして効率を上げても良い。
【００５５】
ところで、上記サーボエリアＳＲＶでは、例えばトラックの位置決め制御を行っている。即ち磁気ヘッド２２によるトラックのトレースが、サーボエリアＳＲＶを通過する時に、オントラックとなったか、あるいはトラックが外れたかの情報が得られる。
ここで、データ読み取り時において振動等の外乱が加わったことによって、トラック位置がずれたとする。トラックが大きく移動した場合は、全体のサーボ制御は最初から行われることになる。つまりデータ読取が中断され、再度必要なトラックにアクセスしてデータ読取が行われる。
【００５６】
一方、トラックが正しい位置に対して、両隣のトラックの方向に所定の範囲内で移動した（ずれた）場合は、トラック位置制御を行いながら、そのままデータ読み取りを継続している。
そしてトラック位置制御がサーボエリアを通過する際に行われていることより、トラック位置がずれている間のデータ読み取り時のエラーは、サーボエリアＳＲＶと次のサーボエリアＳＲＶの間に渡り、発生することが多い。
すなわち図５（ａ）の場合では、振動が加わってトラック位置が所定の範囲内でずれた場合には、読み取りエラーの増加は、例えばセクタ番号１から８の間に渡って発生するケースが多いこととなる。
又同様に、図５（ｂ）の場合で言えば、セクタ番号１から９の間となる。
【００５７】
なお、セクタ内の読み取りエラーのうち、所定バイトまでの範囲においては、セクタ内エラー訂正により、読み取りエラーは訂正することができる。
ところが、振動が大きく、トラック位置のずれが所定の範囲内でありながら、そのずれが大きくなっていた場合は、読み取りデータのエラーの発生はさらに増加し、同セクタに設定されている、セクタ内エラー訂正の可能な範囲を超えるようになる。
結局、サーボエリアと次のサーボエリアの間に配置されたセクタの全体がエラーとなり易くなる。
すなわち連続したセクタエラーの発生となり、バーストエラーの発生要因のひとつとなる。
【００５８】
１−３  ＥＣＣ構成
図６は、本例のＥＣＣブロック構成例を示している。
ＥＣＣブロックの内部には、セクタ内の訂正を行うＣ１（第１のエラー訂正符号）と、セクタ間の訂正を行うＣ２（第２のエラー訂正符号）が含まれている。
そしてここではＥＣＣ訂正符号として、シンボル長８のリードソロモン符号を用いているものとする。
【００５９】
この場合、ＥＣＣブロック構成単位を１９２セクタとし、セクタ０〜１７５までの１７６セクタをデータセクタに、そして残る１６セクタを第２のエラー訂正符号Ｃ２に用いるとする。
そして１セクタは例えば、５１２バイトのデータに４バイトのＣＲＣ（クロスチェックコード）、並びに合計で４８バイトのＣ１を付加し、４インターリーブで構成する。
【００６０】
このようにＥＣＣブロック構成の単位を１９２セクタとした場合、あるゾーンにおいて例えばトラック１周が７６８セクタであれば、４分の１周（２５％：192/768=0.25）がＥＣＣブロック構成単位となる。
またあるゾーンにおいて例えばトラック１周が４８０セクタであれば、２．５分の１周（192/480=0.40）がＥＣＣブロック構成単位となる。２．５分の１周とは、トラックをまたいでのＥＣＣブロック構成が存在することを意味しており、１周の４０％部分がＥＣＣブロック構成単位であることを示す。
【００６１】
この例におけるエラー訂正能力について考察する。
ランダムエラーに対してはＣ１を利用することによって、セクタ当たり最大２４バイトまで(バイトの消失情報が得られる場合は最大４８バイトまで)の訂正が可能である。
さらに、バーストエラーに対しては、Ｃ２を利用することによって、ＥＣＣブロック構成単位当たり最大８セクタまで（ＣＲＣの結果を利用することで最大１６セクタまで）の長さのエラー訂正が可能となる。
【００６２】
ここで、このようなエラー訂正ブロックを採用する事情について述べておく。
従来のＨＤＤのシステムの多くにおいては、エラー訂正が、５１２バイトデータと情報ビットからなる１セクタ単位においてのみ行われている。
したがって、各セクタ内に発生するランダムエラーに対してはエラー訂正を行うことができるが、訂正可能範囲を越えたランダムエラーや、あるいはバーストエラーすなわちセクタを越えて長く連続したエラーに対しては、エラー訂正を行うことが出来なかった。
【００６３】
このような場合、例えばリトライ動作を実施するなどによって、読み取りエラーを一定以下にし、エラー訂正を行うことができる。ところが、リトライ動作は基本的に、１回当たり１周分の余分なアクセス時間の増加に相当する。
ここで、上述のようなトラック単位アクセスによってアクセス時間の短縮がなされたにもかかわらず、リトライ動作が発生すると、結局アクセス時間は増加し、データ読み出し時間の遅れを発生させる結果となる。
例えばＨＤ（ハイビジョン画質）の再生や特殊再生時といったＡＶコンテンツを扱う場合において、高転送速度が要求されるとき、訂正不能な読み取りエラーが発生しても時間的にリトライ動作を行う余裕のないときがある。このような場合、現状では、読み取りエラー訂正が行われないまま処理を進めている。この結果、再生品質は悪くなってしまう。
そこで、本実施の形態においては、ＥＣＣの構成を上記のようにして、安定したデータ再生を実現し、リトライの発生する事態を引き起こすようなエラー訂正の出来ない場合を減少させるようにするものである。
つまり、従来の１セクタ単位のエラー訂正であるＣ１訂正に加えて、セクタ間の訂正を行うことが可能なＣ２訂正を付加した、Ｃ１＋Ｃ２からなる、エラー訂正単位（ＥＣＣブロック）を構成する。
【００６４】
ところで、上記図６に示す例ではインターリーブについての記述はないが、シンボル長８のリード・ソロモン符号では５１２バイトのデータに対してインターリーブを適用する必要がある。
図７、図８には、本例のＥＣＣブロック構成において、インターリーブを適用した例を示している。
【００６５】
図７及び図８では、セクタｎ に対してインターリーブを適用したものであり、１セクタが４バイトのヘッダと５１２バイトのデータ、そして４バイトのＣＲＣより、これらの合計を４分割し、各分割単位毎に１２バイトのＥＣＣ符号Ｃ１を付加している。
例えば、インターリーブ０は１バイトのヘッダと１２８バイトのデータと１バイトのＣＲＣに１２バイトのパリティが付加されて構成される。インターリーブ２，３，４も同様である。
【００６６】
そして、セクタ内の配置を、０番目にはインターリーブ０、１番目にはインターリーブ１、２番目にはインターリーブ２、３番目にはインターリーブ３、４番目には再び戻ってインターリーブ０、・・・のように順に並べる。
４バイトのヘッダ、５１２バイトのデータ、その後には４バイトのＣＲＣを付加し、続いて作成したＣ１コードを同様にして順に並べる。
図７にはインターリーブで分解したものを示しており、また、図８にはメモリ上にアドレス０から５６７まで割り振ったときの配置を示している。
【００６７】
このようにして図７及び図８は、前述の図６と同じセクタ単位となる。すなわち、４バイトのヘッダ、５１２バイトのデータに、４バイトのＣＲＣと、合計４８バイトのＥＣＣ符号Ｃ１が付加されて１セクタとなり、磁気ディスク２１上への記録セクタの主要部として構成される。
なお、実際の記録データの構成は、プリアンブル、同期信号、ポストアンブルなどがさらに付加されている。また、セクタ単位の他の構成例としては、ヘッダファイルを持たない形式や、あるいはＣＲＣを持たない形式などがある。
【００６８】
このようなインターリーブの構成は、主にハードウェア構成によって決定すればよく、シンボル長８のリードソロモン符号では、Ｃ１方向（すなわちセクタ方向）においてインターリーブ構成を例えば図７に示すように適用する。
【００６９】
なお、上述したインターリーブは、セクタ間でＥＣＣを実行したＣ２に対して適用してもよい。この場合においても、図７において、ＤＡＴＡ部のＢｙｔｅをセクタと置き換えてＣ２方向（すなわちセクタに直交する方向）に展開させることで、同様な構成及び作用を実現することができる。
【００７０】
また、この例においては、１セクタを５１２バイトのデータとしたが、セクタ数はこの限りではなく、例えば１０２４バイト、あるいは２０４８バイトを1セクタのデータとした場合においても、上記と同様にしてセクタ毎及びセクタ間に構成されたＥＣＣブロックを実現することができる。
【００７１】
１−４  フォーマット例及び処理
本実施の形態においては、上記ＥＣＣブロック構成のＣ２設定において、バーストエラー発生の単位となりやすい、サーボエリア間のセクタ数情報を用いている。なお、上記からわかるように、セクタは第１のエラー訂正単位（Ｃ１エラー訂正単位）となる。
【００７２】
図５（ａ）の例においては、サーボエリア間（サーボフレーム）のセクタ数は８であるから、ＥＣＣブロック構成のＣ２セクタを、８の倍数に設定する。
あるいは、もしＥＣＣブロック構成単位の都合で８の倍数に出来ないときは、最低設定値として８の倍数とし、これ以上の設定値を与えるようにする。
例えば、２サーボフレーム分をＣ２設定の基準とするとき、ＥＣＣブロック構成内におけるＣ２を、１６セクタとする。
あるいは、制約として例えば３の倍数でＣ２設定をしなければならない場合は、２サーボフレーム分に相当する１６セクタを越えた、最初の３の倍数である、１８セクタをＣ２設定値とする。
【００７３】
一方の図５（ｂ）の例においては、サーボエリア間（サーボフレーム）のセクタ数は丁度８ではなく、８．５となっている。
このようなときは、定めたサーボフレームに含まれる、全セクタ数情報を用いて、整数値を設定する。
例えば、１サーボフレームを設定の基準とするときは、ＥＣＣブロック構成内におけるＣ２を、９セクタとする。
また、２サーボフレームを設定の基準とする際には、ＥＣＣブロック構成内におけるＣ２は、１７セクタとする。
あるいは、上記図５（ａ）の場合と同様に、制約として例えば３の倍数でＣ２設定をしなければならないのであれば、２サーボフレームに相当する１７セクタを越えた、最初の３の倍数である、１８セクタをＣ２設定値とする。
【００７４】
以上のようにＣ２セクタ設定が行われるが、例えば図５（ａ）の例に基づいて図６のＥＣＣブロックフォーマットが構成される場合、このＥＣＣブロックは、構成単位当たりで、最大１６セクタ即ち２サーボフレームを訂正することができるフォーマットとなっている。
【００７５】
ＥＣＣブロック構成の例を、図９で模式的に示して説明する。
図９の例はディスク全部に渡って、固定のＥＣＣブロック構成とする場合の例である。
そして図９はＺＢＲ（Zone Bit Recording)方式と、サーボエリアの配置を含めて示した例である。
なお、図９（及び後述する図１１）において放射状の実線はサーボエリア及びセクタ境界を示しており、破線はセクタ境界を示している。またここでは図５（ａ）のようにサーボエリア間のセクタ数は整数である場合を例にとっている。
【００７６】
なお、説明及び図示の簡略化のため、ここでの固定のＥＣＣブロック構成とは、ゾーンの別に関わらずＥＣＣブロックが１６セクタで構成され、内、データセクタが１２セクタ、Ｃ２セクタが４セクタとされる構成のことを指すものとしている。もちろん、この具体的なセクタ数は、あくまでも説明上の例であり、上記図６のようなＥＣＣブロック単位が１９２セクタとされるような場合も、以下の例が同様に想定されるべきものである。
【００７７】
図９において、磁気ディスク２１は、３つのゾーンに分割されており、さらに各ゾーンでトラック１周におけるセクタ数が異なる。
ゾーン０ではトラック１周に６４セクタが配置され、ゾーン１では３２セクタ、ゾーン２では１６セクタが配置されているとする。
各ゾーンにおいては、ディスク回転数を同一とするが、動作クロックを変更し、各ゾーンにおける線記録密度は一定範囲にあるものとする。
【００７８】
そしてこの場合、１６本の放射状の実線でしめすサーボエリアが、同心円となるゾーン０，１，２に関係無く、半径方向に与えられている。
サーボエリアでの動作クロックは上記データエリアとは別に設定され、ディスク全周に渡り、所定のサーボ帯域が与えられる（サーボクロック）。
ここで、ディスク回転数については、データエリアとサーボエリアで同一としている。
【００７９】
このとき、ＥＣＣブロック構成は、各セクタ毎においてはＣ１が付加されている。Ｃ１の構成は固定で同一であるものとする。
具体的には、例えば図６のように１セクタにおいて５１２バイトのデータに対して４８バイトのＣ１が付加されているような構成とする。
【００８０】
上記のようにディスク全周においてＥＣＣブロックが１６セクタで構成されるとすると、トラック１周が６４セクタのゾーン０においては、1/4周がＥＣＣブロック構成単位となる。
またトラック１周が３２セクタのゾーン１においては、1/2周がＥＣＣブロック構成単位となり、トラック１周が１６セクタのゾーン２においては、１周がＥＣＣブロック構成単位となる。
【００８１】
そして各ＥＣＣブロック構成単位内では、１サーボフレーム分を設定最小値としてＣ２を配置する。
またＣ２の構成をディスク全体で固定で同一であるとする本例の場合、全てのゾーンにおいて、１２セクタのデータと４セクタのＣ２の、合計１６セクタからなるＥＣＣブロック構成となる。
【００８２】
つまり、ＥＣＣブロック構成が固定であること、及び各ＥＣＣブロック構成単位内では１サーボフレーム分を設定最小値としてＣ２を配置することを考えれば、Ｃ２セクタは図９のように配置される。
即ち、ゾーン０においては、１サーボフレームに４セクタが配置されるため、４セクタとされるＣ２セクタは１サーボフレーム分として設定され、データ用の１２セクタと合わせてトラック１／４周で１つのＥＣＣブロックが形成される。換言すれば１トラックの４つのＥＣＣブロックが形成される。
ゾーン１においては、１サーボフレームに２セクタが配置されるため、４セクタとされるＣ２セクタは２サーボフレーム分として設定され、データ用の１２セクタと合わせてトラック１／２周で１つのＥＣＣブロックが形成される。換言すれば１トラックの２つのＥＣＣブロックが形成される。
ゾーン２においては、１サーボフレームに１セクタが配置されるため、４セクタとされるＣ２セクタは４サーボフレーム分として設定され、データ用の１２セクタと合わせてトラック１周で１つのＥＣＣブロックが形成される。換言すれば１トラックの１つのＥＣＣブロックが形成される。
【００８３】
このような構成としたとき、サーボフレーム単位で見ると、Ｃ２セクタはゾーン０が１サーボフレーム、ゾーン１が２サーボフレーム、ゾーン２が４サーボフレームとなり、ディスク全体としては、全てのＥＣＣブロック構成単位内でＣ２セクタの最小設定値である１サーボフレーム分以上を確保している。具体的には、最外周であるゾーン０においても、１サーボフレーム分（つまり最小設定値）を確保していることになる。
【００８４】
この図９のように、ディスク全周で固定のＥＣＣブロック設定を行うための処理例を図１０に示す。
なお、この処理は上記図６のようにＥＣＣブロックを１９２セクタとして固定する場合を想定して述べたものである。
【００８５】
ステップＦ１０１では、まずＥＣＣブロックのセクタ数を設定する。例えば１９２セクタをＥＣＣブロックとする。
次にステップＦ１０２で、サーボフレームの何区間を訂正可能とするかを決定する。例えば２サーボフレームとする。これはＣ２エラー訂正の冗長比率の設定となる。
ステップＦ１０３では、決定した２サーボフレームを満たすセクタ数を設定する。この場合、ディスク全周に渡って固定ＥＣＣブロック構成であるから、ＺＢＲ方式において、内周のゾーンと外周のゾーンとでは、サーボフレーム当たりのセクタ数が異なる場合がある。このときは最大のサーボフレーム当たりのセクタ数を基準に設定する。
ＺＢＲでは最外周のゾーン０が、通常最大数を与えている。そしてここでは、例えば１６セクタとする。つまり最外周のゾーンでは図５（ａ）のように１サーボフレームに８セクタが含まれるとし、訂正可能とした２サーボフレームに含まれるセクタ数が１６セクタである場合である。
そして以上によってステップＦ１０４で、今回設定したＥＣＣブロックの最大訂正セクタ数が決定される。例えばここでは、１９２セクタのＥＣＣブロックで、最大８セクタまで（消失訂正情報があれば最大１６セクタまで）訂正可能となる。
【００８６】
この図１０のような設定を行うことで、ゾーンに関わらずディスク全周にわたって固定のＥＣＣブロック構成で、かつ所定のサーボフレーム単位を訂正可能としたＣ２設定が実現される。
なお、この図１０のような設定処理は記録再生時にディスクコントローラ１３及びＣＰＵ１２の処理で実現されるエラー訂正符号化及びエラー訂正処理機能において実行されればよい。その場合、ＥＣＣブロックのセクタ数設定や、訂正可能とするサーボフレームの設定を変更すれば、エラー訂正能力を増減することができる。
或いは、特にエラー訂正能力の変更等が行われないのであれば、予めこのような処理をＨＤＤ１０内部（例えばＣＰＵ１１）或いは外部装置で行っておき、その処理で得られた設定値、即ちＥＣＣブロック構成（データセクタ数やＣ２セクタ数）を、ディスクコントローラ１３又はＣＰＵ１１内で記憶しておき、記録再生時には、その記憶された設定値に従ってＥＣＣ処理を行うようにしてもよい。
【００８７】
続いて図１１により、ゾーン毎にＥＣＣブロック構成を変化させる場合の例を説明する。
図１１は、放射状に配置されたサーボエリアとサーボエリアの間の、１サーボフレーム単位を設定最小値としてＣ２を配置したときの例である。
この図１１の場合も、放射状の実線でサーボエリアを示しているが、トラック１周のサーボエリアの数は３２であり、またトラック１周のセクタ数は、ゾーン０では９６セクタ、ゾーン１では６４セクタ、そしてゾーン２では３２セクタとしてある。
【００８８】
ＥＣＣとしては、各セクタ毎においてはＣ１が付加されている。Ｃ１の構成は、固定で同一であるものとする。具体的には、例えば図６のように１セクタにおいて５１２バイトのデータに対して４８バイトのＣ１が付加されているような構成とする。
そして、Ｃ２の構成をゾーンによって切り替える。
また、ディスク全周に渡り、トラック１／４周をＥＣＣブロック単位とし、ＥＣＣブロック単位内では、１サーボフレーム分を設定最小値としてＣ２を配置する。
【００８９】
このとき、ＥＣＣブロック単位で１サーボフレーム分をＣ２セクタとして設定すると次のようになる。
ゾーン０では１サーボフレームには３セクタが含まれる。またトラック１／４周は２４セクタである。従ってゾーン０では２４セクタでＥＣＣブロックが構成され、３セクタのＣ２に対し２１セクタのデータセクタとされる。
ゾーン１では１サーボフレームには２セクタが含まれる。またトラック１／４周は１６セクタである。従ってゾーン１では１６セクタでＥＣＣブロックが構成され、２セクタのＣ２に対し１４セクタのデータセクタとされる。
ゾーン２では１サーボフレームには１セクタが含まれる。またトラック１／４周は８セクタである。従ってゾーン２では８セクタでＥＣＣブロックが構成され、１セクタのＣ２に対し７セクタのデータセクタとされる。
【００９０】
このようにすれば、ＥＣＣブロックはトラック１周で丁度４分割される。すると、図１１のように、１周あたりで４箇所のＣ２エリアが与えられることになる。
そして全てのゾーンで、かつ全てのＥＣＣブロック構成単位内でＣ２セクタは最小設定値である１サーボフレーム分として確保される。
【００９１】
この図１１のように、ゾーン毎にＥＣＣブロック設定を可変する場合の処理例を図１２に示す。
ステップＦ２０１では、ゾーンの切り替え設定が行われる。例えばディスク上にゾーンが１６（ゾーン０〜ゾーン１５）存在するとして、そのうちの１つを設定する。例えばゾーン０と設定する。
次にステップＦ２０２で、ゾーン０におけるＥＣＣブロックのセクタ数を設定する。例えば１９２セクタをＥＣＣブロックとする。
続いてステップＦ２０３では、Ｃ２エラー訂正の所定の冗長比率に応じてサーボフレームの何区間を訂正可能とするか決定する。例えば２サーボフレームとする。
そしてステップＦ２０４で、決定した２サーボフレームを満たすセクタ数を設定する。この例では、ゾーン毎でＥＣＣブロック構成を設定するものであり、ステップＦ２０１で例えばゾーン０と設定した後のステップＦ２０４の処理としては、ゾーン０でのサーボフレームに含まれるセクタ数を考えればよい。そしてゾーン０で１サーボフレームに８セクタが含まれるとすると、２サーボフレームを満たすセクタ数として１６セクタと設定されることになる。
そして以上の処理から、ステップＦ２０５では、今回設定したＥＣＣブロックの最大訂正セクタ数が決定される。例えばここでは、１９２セクタのＥＣＣブロックで、最大８セクタまで（消失訂正情報があれば最大１６セクタまで）訂正可能となる。
【００９２】
この図１２のような設定をゾーン毎に行うことで、各ゾーン毎において例えば２サーボフレームを訂正可能とするＥＣＣブロックが設定される。
なお、この図１２のような設定処理は、或るゾーンに対する記録再生を行う際に、ディスクコントローラ１３及びＣＰＵ１２の処理で実現されるエラー訂正符号化及びエラー訂正処理機能において実行されればよい。その場合、ＥＣＣブロックのセクタ数設定や、訂正可能とするサーボフレームの設定を変更すれば、エラー訂正能力を増減することができる。
或いは、特にエラー訂正能力の変更等が行われないのであれば、予めこのような処理を各ゾーンに対応してＨＤＤ１０内部（例えばＣＰＵ１１）或いは外部装置で行っておき、その処理で得られた設定値、即ちＥＣＣブロック構成（データセクタ数やＣ２セクタ数）を、ディスクコントローラ１３又はＣＰＵ１１内で記憶しておき、記録再生時には、その記憶された設定値に従ってＥＣＣ処理を行うようにしてもよい。
【００９３】
本例のＨＤＤ１０では、例えば以上の２つの例のようにＥＣＣブロック設定を行うことで、サーボフレーム（サーボフレームに含まれるセクタ数）を基準とした効率の良いＥＣＣブロック構成とすることができ、エラー訂正符号による冗長が少なくて、転送レートの点でも好適であるうえ、より広い範囲でのランダムエラーやバーストエラーに対してもエラー訂正が可能とすることができ、安定したシステムを構築することができる。
【００９４】
なお、図１０、図１２の例においては、ＥＣＣブロック数を先に設定した処理の流れを示したが、それ以外でも、先にＣ２セクタによる冗長を設定し、これに基づいてＥＣＣブロックを構成しても、サーボフレームを基本とした設定を行うことによって、同様な扱いとすることが出来る。
【００９５】
また図９及び図１１の例において、図には無いが、ＥＣＣブロック単位を例えば１０セクタに設定すると、ＥＣＣブロックは、同一トラックのみで構成はされず、次のトラックとまたいでＥＣＣブロックを構成する部位が発生する。この場合においても同様にサーボフレーム単位を基準にしてＥＣＣブロックを構成すればよい。
【００９６】
２．第２の実施の形態
２−１  アクセス動作
続いて、本発明における第２の実施の形態について説明する。
この実施の形態に係るハードディスク装置１０の基本的な構成は、上述したような図１，図２と同様となるが、この構成において、以下説明するように、回転待ちを発生することのないデータアクセス制御を行い、アクセス時間の短縮やデータ転送速度の早いシステムを実現する。特にアクセスに関しては、シークされたトラック上でアクセス可能となった先頭のセクタからアクセスを開始して１トラック分のアクセスを行う。
そしてその上で、磁気ディスク２１におけるサーボエリアの構成に応じたＥＣＣブロック構成を用いることで、広い範囲でのランダムエラーやバーストエラーに対してもエラー訂正可能とすることでリトライ動作を回避して転送速度の低下を少なくするものである。
なお、サーボエリアの配置や、サーボフレームにおけるセクタ配置例については、図４，図５で説明したものと同様である。
【００９７】
まず、アクセス動作について説明する。
ＨＤＤ１０においては、磁気ヘッド２２がオントラックしたセクタから１トラック分のアクセスを行う。同一トラック上のセクタ番号は固定されておらず、相対位置によって与えることができる。
これにより、１トラック上のどのセクタからでもアクセスを開始することができる。すなわち、１トラックをアクセス単位とすることによって、先読みという不確定要素からなる処理を行う必要をなくして、シーク起動のタイミングを確実に決定することができる。また、１トラックのどのセクタからでもアクセスを行うことによって、回転待ちを行わなくて済む。これによって、シークの回数を最小限に抑え、アクセス時間を短縮させることができる。
【００９８】
所定のトラックに書き込みを行う際には、アクセスを開始したセクタから始まる相対位置をセクタに与える。
また、読み出しを行う際には、アクセスを開始したセクタから読み出しを行い、相対位置セクタ番号に基づいて、バッファＲＡＭ１４上に展開する。このため、どのセクタから読み出しを始めても良い。
【００９９】
このような動作を可能とするために磁気ディスク２１のトラックで利用されるセクタフォーマットの例を図１３に模式的に示す。
図１３（ａ）に示すように、セクタは、トラック上でのセクタの相対位置を表す相対位置データと、データ本体と、セクタ領域全体に対してエラー訂正を行うためのＥＣＣとで構成され、これら全体をエラー訂正範囲及び記録範囲とする。
相対位置データをヘッダとしてエラー訂正範囲に含めることにより、例えばセクタ内でランダムエラーが発生した場合であってもエラー訂正により相対位置データを回復することができるので、円滑なディスクアクセス動作を実現することができる。
また、一般に、セクタはセクタの番地を記録するためのＩＤフィールドを持つが、絶対位置ではなく相対位置を記録するので、ＩＤフィールドのサイズを縮小することができる。その分だけセクタ中でデータ本体に使用可能なフィールドサイズが大きくなり記憶領域の有効活用になる。
【０１００】
トラックに書き込みを行うとき、アクセスを開始したセクタから始まる相対位置をセクタに与え、相対位置と本来の記録データによるＥＣＣデータを生成して、それぞれを当該セクタの相対位置フィールド、データフィールド、及びＥＣＣフィールドに記録する。アクセスを開始したセクタから書き込みを開始するので、回転待ちする必要がない。
【０１０１】
また、読み出しを行うときには、トラック上でアクセスを開始したセクタから読み出しを行い、相対位置フィールドによって得られたセクタ位置に基づいて、バッファＲＡＭ１４上での格納位置を決定する。したがって、任意のセクタからデータの読み出しを開始しても、バッファＲＡＭ１４上では相対位置に基づいてデータを再配置することによって、トラック上に格納されているデータが元の順番通りに復元される。また、アクセスを開始したセクタから読み出しを開始するので、回転待ちする必要がない。
【０１０２】
また、図１３（ｂ）には、本実施の形態に係るＨＤＤ１０において、磁気ディスク２１のトラックで利用されるセクタフォーマットの他の例を模式的に示している。
この場合も、上述と同様に、セクタは、トラック上でのセクタの相対位置を表す相対位置データと、データ本体と、セクタ領域全体に対してエラー訂正を行うためのＥＣＣとで構成される。但し、これら全体をエラー訂正範囲とするが、図１３（ａ）に示した例と相違し、相対位置フィールドを記録範囲に含まない。したがって、相対位置フィールドがなくなる分だけ、さらに上述した例よりもセクタ中でデータ本体に使用可能なフィールドサイズが大きくなり記憶領域の有効活用になる。
【０１０３】
この場合、トラックに書き込みを行うときは、アクセスを開始したセクタから始まる相対位置をセクタに与え、相対位置と本来の記録データによるＥＣＣデータを生成して、記録データ及びＥＣＣデータのみを当該セクタ上に記録する。アクセスを開始したセクタから書き込みを開始するので、回転待ちする必要がない。
また、読み出しを行うときには、アクセスを開始したセクタから読み出しを行い、ＥＣＣを用いてエラー訂正を行うことによって、セクタには書き込まれなかった相対位置を再生成する。そして、この相対位置に基づいて、バッファＲＡＭ１４上での格納位置を決定する。したがって、任意のセクタからデータの読み出しを開始しても、バッファＲＡＭ１４上ではトラック上に格納されているデータが元の順番通りに復元される。また、アクセスを開始したセクタから読み出しを開始するので、回転待ちする必要がない。
【０１０４】
上記のようなセクタフォーマットに係るデータ記録再生の際のホストとの通信例を説明する。
本例のＨＤＤ１０は、インターフェース１７経由で接続されたホストからのコマンドによってデータ書き込みを行うときの通信例は、次のようになる。
【０１０５】
まずホストは、ＨＤＤ１０に対してデータの書き込みコマンドを発行する。これに応答して、ＨＤＤ１０は現在のアクセスシーケンスからシーク時間が最小となるアドレス領域を応答する。
ホストは、ＨＤＤ１０からの応答を受けると、指示されたアドレス領域の大きさ（バイト数，セクタ数など）のデータコンテンツを転送する。ＨＤＤ１０は、受信したデータコンテンツをトラック単位で書き込み動作を行う。
【０１０６】
ここで上述のように、書き込み時のトラック上のアクセス先頭位置を基準に各セクタに相対位置情報を割り振ると、書き込み要求の際、ホスト５０側では、シリンダ番号、ヘッド番号、セクタ番号などの具体的な書き込み場所を特に意識する必要はなく、またこれらを指示する必要も特にない。
また、ＨＤＤ１０側からホストに通知されるアドレス領域は、例えば、ホストからデータ書き込み要求されるコンテンツを識別するコンテンツ番号などの簡素なものでよい。
ＨＤＤ１０側では、各コンテンツ番号とディスク２１上での物理的な記録場所との変換テーブルを用意しておく。
本実施形態では、トラック単位でディスクアクセスを行うことから、コンテンツ番号との変換テーブルは、例えば図１４に示すようなものとなる。即ち、コンテンツ番号に対応してトラック番号やヘッド番号が登録されていく。
【０１０７】
ここで、ＣＨＳ方式のセクタ番号が変換テーブルに含まれていないことに注意されたい。このように、書き込み時のトラック上のアクセス先頭セクタを基準に各セクタに相対位置情報を割り振る構成では、読み出し時のトラック上のアクセス先頭セクタに関わらず、各セクタの相対位置情報に基づきデータの再配置が可能となる。このため、変換テーブルにおいて、アクセス開始セクタを指定する必要がないものとなる。
【０１０８】
この変換テーブルは、バッファＲＡＭ１４内に書き込まれる。変換テーブルの書き込みは、ホスト５０から書き込みデータを受け取った時点で、ディスクコントローラ１３又はＣＰＵ１１が実行するソフトウェアによって行われる。
【０１０９】
また、本例のＨＤＤ１０がインターフェース１７経由で接続されたホストからのコマンドによってデータ読み出しを行うときの通信例は次のようになる。
ホストは、ＨＤＤ１０に対してデータの読み出しコマンドを発行する。読み出しコマンドでは、目的とするコンテンツ番号が指定されている。
これに対し、ＨＤＤ１０は、コンテンツ番号に基づいて上記図１４の変換テーブルから目的とするトラックを特定して、磁気ヘッド２２のシーク動作を行う。そして、データ書き込み時に応答したアドレス領域のシーケンスに従い、ディスク２１上のデータを転送する。
このデータ読み出し要求の際、ホスト側は、所望のコンテンツ番号を指定するだけで、シリンダ番号、ヘッド番号、セクタ番号などの具体的な書き込み場所（ＰＢＡ）を意識する必要はない。
【０１１０】
上述したように、ＨＤＤ１０では、磁気ヘッド２２がオントラックしたセクタから１トラック分のアクセスを行う。１トラックをアクセス単位とすることで、先読みという不確定な処理を省いて、シーク起動のタイミングを確実に決定することができる。また、トラックのどのセクタからでもアクセスを行うことができるので、シーク直後の任意のヘッド位置から読み書きを行うことにより、回転待ちをなくすことができる。この結果、シークの回数を最小限に抑え、アクセス時間が短縮化される。
【０１１１】
このようなディスクアクセスオペレーションは、ディスクコントローラ１３が、ＣＰＵ１１によるコマンド処理結果に応じて、データ読み書き制御部１５やサーボ制御部１６に対するハードウェア操作を指示することによって実現される。
【０１１２】
２−２  ＥＣＣ構成
上述したように、本例のＨＤＤ１０は１トラックを単位としてアクセスを行う。この場合、磁気ディスク２１上には１トラックを基本単位としたＥＣＣブロックが形成されることが適切となる。
【０１１３】
図１５は、本例のＥＣＣ構成例を示している。
この図の例では、磁気ディスク２１は、ゾーン分割されており、ゾーンｎにおけるＥＣＣブロック構成の例が示されている。すなわち、ゾーンｎ内の、破線で示す所定のトラックＴＫのように、各トラックの１周分がＥＣＣブロックの構成単位となるようにする。
ＥＣＣブロックの内部には、セクタ内の訂正を行うＣ１と、セクタ間の訂正を行うＣ２が含まれている。
そしてＣ１＋Ｃ２からなるエラー訂正単位（ＥＣＣブロック構成単位）は１トラックを基本単位としており、各トラック内においては、ＥＣＣブロック構成単位が２つ以上存在することはない。
【０１１４】
なお、整数周回のトラック、例えばトラック３周などで、Ｃ１＋Ｃ２から成る１つのＥＣＣブロックが形成されるなどの例も考えられる。
【０１１５】
図１６には、図１５に示したＥＣＣブロック構成を採用した磁気ディスク２１のＥＣＣブロック構造の例を示している。
ここではＥＣＣ訂正符号として、シンボル長８のリードソロモン符号を用いているものとする。
ある磁気ディスクのあるゾーンにおけるトラック１周分の有効なセクタ数を、７６８セクタとする。１セクタは例えば、５１２バイトのデータに４バイトのＣＲＣ（クロスチェックコード）、並びに合計で４８バイトのＣ１を付加し、４インターリーブで構成してある。
【０１１６】
図１６のＥＣＣブロック構成の例では、セクタ０〜７０３までの７０４セクタをデータ領域として与え、セクタ７０４〜７６７までの６４セクタをＣ２領域として与えている。Ｃ２については、例えば１６セクタずつの４インターリーブで構成する。
このような構成としたとき、１つのＥＣＣブロックは合計７６８セクタとなって、このゾーン内において１周分となり、トラック単位を実現させることが出来る。
【０１１７】
この例におけるエラー訂正能力について考察する。
ランダムエラーに対してはＣ１を利用することによって、セクタ当たり最大２４バイトまで(バイトの消失情報が得られる場合は最大４８バイトまで)の訂正が可能である。
さらに、バーストエラーに対しては、Ｃ２を利用することによって、トラック当たり最大３２セクタまで（ＣＲＣの結果を利用することで最大６４セクタまで）の長さのエラー訂正が可能となる。
【０１１８】
上述した第１の実施の形態の場合と同様に、本例においても、従来の１セクタ単位のエラー訂正であるＣ１訂正に加えて、セクタ間の訂正を行うことが可能なＣ２訂正を付加する。Ｃ１＋Ｃ２によるＥＣＣ構成を採用することで、安定したデータ再生を実現し、リトライの発生する事態を引き起こすようなエラー訂正の出来ない場合を減少させるようにするものである。
【０１１９】
そして、Ｃ１＋Ｃ２からなるエラー訂正単位（ＥＣＣブロック）をトラックで完結するような構成をとる。上記もしたが、ＥＣＣブロック単位は１トラックを基本とする。
このようにトラックの１周でＣ１＋Ｃ２からなるＥＣＣブロック単位を完結させることで、１トラックをアクセス単位とすることができ、回転待ちを発生することのないデータアクセス制御を実現することができる。すなわち、所望のデータ記憶場所へのアクセス時間を短縮することができる。また、同一トラック上で２以上のＥＣＣブロックを持つことがないため、ＥＣＣ構成を複数トラック単位とした場合であっても、同様に、回転待ちを発生することのないデータアクセス制御を実現することができる。
【０１２０】
このようなエラー訂正処理を行う場合のディスクコントローラ１３内の動作について説明しておく。
ディスクコントローラ１３は、ＣＰＵ１１より、フォーマッタ制御情報及び、ゾーン切替ＥＣＣ制御情報を受け取る
フォーマッタ制御情報は、シークされたトラック上でアクセス可能となった後の、先頭のセクタからアクセスを開始して、１トラック分のアクセスを行うためのディスクフォーマットに関する情報であり、この情報はＣＰＵインターフェース３１を介してディスクフォーマッタ部３５へ送られ、ここでデータフォーマッタが生成される。
【０１２１】
また、ゾーン切替ＥＣＣ制御情報は、トラック単位で完結するＥＣＣ構成の設定を行うための情報であり、ゾーンが切り替わるとトラック当たりのセクタ数が切り替わるので、その結果ＥＣＣ構成の設定が変更される。この情報は、ＣＰＵインターフェース３１を介してＥＣＣコントローラ３６へ送られ、ここでＥＣＣ構成が設定され、バッファＲＡＭ１４をアクセスして所定のＥＣＣ処理が行われる。
【０１２２】
なお図１６に示す例ではインターリーブについての記述はないが、シンボル長８のリード・ソロモン符号では５１２バイトのデータに対してインターリーブを適用する必要がある。その場合、図７、図８で説明した例のようにインターリーブが適用されればよい。
【０１２３】
ところで、上述したＥＣＣブロックをトラック単位に完結させるとき、磁気ディスク２１のゾーンが切り替わった際には、トラックあたりのセクタ数が異なるので、同一のＥＣＣパリティ数の構成では、エラー訂正能力がゾーン毎で大きく異なったものとなる可能性がある。
そこで、ゾーン毎でＥＣＣブロック構成を可変とすることによって、エラー訂正符号の冗長度を一定範囲内におさめることができ、その結果、エラー訂正能力をディスクの全周に渡って同様な強さとすることができる。
【０１２４】
図１７には、ＥＣＣブロックをゾーン毎で可変に構成した場合のディスクフォーマットの例を模式的に示している。
同図において、磁気ディスク２１は、ゾーン分割されており、さらにゾーン毎に１トラックあたりのセクタ数が異なる。
これは模式的な例であるが、１トラックあたりのセクタ数は、ゾーン０では９６セクタ、ゾーン１では６４セクタ、ゾーン２では３２セクタとなっている。
各ゾーンに対しては、回転数を同一とするが、動作クロックを変更し、各ゾーンにおける線記録密度は一定範囲にあるものとする。
【０１２５】
このとき、ＥＣＣは、各セクタ毎においてはＣ１が付加されている。Ｃ１の構成は固定で同一であるものとする。具体的には、例えば図１６のような構成とする。
そして、Ｃ２の構成については、図に示すように、ゾーン０では１２セクタをＣ２パリティとして与え、ゾーン１では８セクタを、ゾーン２では４セクタをそれぞれＣ２パリティとして与えている。
なお、このＣ２セクタの設定については後述する。
このように構成にしたとき、各ゾーンの１周分のデータセクタ数に対するＣ２パリティのセクタ数の割合が一定になり、Ｃ２訂正能力についても各ゾーンで同一とすることができる。
【０１２６】
なお、実際のフォーマットにおいては、図１７に示すようなゾーンとセクタ数の関係にあるような、ちょうど割り切れる値となる場合は少ないので、ＥＣＣ部分の冗長度が一定範囲となるような設定をすればよい。
【０１２７】
以上のように、ＥＣＣブロックをトラック単位に完結させ、Ｃ１＋Ｃ２構成とし、さらにインターリーブ構成とすることに加えて、ゾーン毎でＥＣＣ構成を可変としてＥＣＣ部分の冗長度を所定範囲内に制御することによって、ディスクの全周に渡って、より広い範囲でのランダムエラーやバーストエラーに対してもエラー訂正が可能なようになり、安定したデータ再生が実現する。
【０１２８】
２−３  フォーマット例及び処理
上記のようにゾーン毎にＥＣＣブロック構成が変化される図１７において、Ｃ２セクタは、放射状に配置されたサーボエリアで形成されるサーボフレームに基づいて設定されている。
サーボエリア構成に基づくＥＣＣブロック設定について説明する。
【０１２９】
図１７において、放射状の実線はサーボエリア及びセクタ境界を、また破線はセクタ境界を示しているが、どのゾーンにおいてもトラック１周のサーボエリア数は３２である。
また上記のように１トラックに１つのＥＣＣブロックが形成される。ＥＣＣブロック構成単位は、ディスク全周に渡ってトラック単位となっているため、ＥＣＣブロックを構成するセクタ数は、ゾーンによって切り替えるようになっている。
そして図１７では、Ｃ２セクタとして４サーボフレームを訂正可能する構成を採るものとなる。
【０１３０】
トラック単位のＥＣＣブロック構成において、４サーボフレームをＣ２セクタとして設定するために、ゾーン０，１，２のそれぞれにおいて、ＥＣＣブロック構成におけるデータセクタ及びＣ２セクタの設定値が個別に与えられている。そしてそのＥＣＣブロック構成内において、４サーボフレーム分のセクタ数を設定最小値としてＣ２が配置されている。
【０１３１】
図１７においては、４サーボフレームのセクタ数は、ゾーン０では１２セクタ、ゾーン１では８セクタ、そしてゾーン２では４セクタである。
従って、ゾーン０では、１周９６セクタで形成されるＥＣＣブロックは、１２セクタのＣ２と８４セクタのデータセクタで構成される。
ゾーン１では、１周６４セクタで形成されるＥＣＣブロックは、８セクタのＣ２と５６セクタのデータセクタで構成される。
ゾーン２では、１周３２セクタで形成されるＥＣＣブロックは、４セクタのＣ２と２８セクタのデータセクタで構成される。
【０１３２】
このように、丁度トラック１周の構成であり、かつ所定のサーボフレームを訂正可能となるようにＣ２セクタが配されたＥＣＣブロックが設定される。。
なお、このとき図１７のように、１周あたりで４サーボエリアをＣ２としてそれぞれ配置されて記録されるが、物理的な位置としては特定位置である必要はなく、同図のように不定な配置で記録されてよい。
また図１７では、簡易のために、ゾーン毎で一括して不定な配置となるような図を示したが、実際にはゾーン毎だけでなく、トラック単位で不定な配置で記録されることになる。しかし、その場合においても、ゾーン単位で１周のセクタ数およびＣ２の設定セクタ数が設定されており、ゾーンが切り替わると、セクタ数およびＣ２の設定セクタ数も切り替わっていく。
【０１３３】
図１８は、以上のようなＥＣＣブロック設定を行う場合の処理例を示している。
ステップＦ３０１として、まずサーボエリア数が設定される。例えば９６とする。
次にステップＦ３０２で、ゾーンの情報が設定される。すなわち各ゾーンでの１周（あるいは所定周分）当たりのセクタ数が設定される。例えばゾーン０では１周当たり７６８セクタあるとする。
ステップＦ３０３では、所定トラック当たりで、サーボフレームの何区間を訂正可能とするか決定する。例えば１トラック当たりで、８サーボフレームとする。
そしてステップＦ３０４で、決定した８サーボフレームを満たすセクタ数を設定する。
この場合、
（所定ゾーンのセクタ数）×（訂正可能サーボフレーム）／（サーボエリア数）としてセクタ数を求める。例えば 768 × 8 ／ 96 ＝ 64 とし、１トラック当たり７６８セクタのうち、６４セクタをＣ２として設定する。
そして以上によって、ステップＦ３０５で、今回設定した所定トラック単位となるＥＣＣブロックの最大訂正セクタ数が決定される。
例えばここでは、１周７６８セクタのＥＣＣブロックで、最大３２セクタまで（消失訂正情報があれば最大６４セクタまで）訂正可能となる。
【０１３４】
なお、この図１８のような設定処理は、記録再生時にディスクコントローラ１３及びＣＰＵ１２の処理で実現されるエラー訂正符号化及びエラー訂正処理機能において実行されればよい。
その場合、ＥＣＣブロックのセクタ数設定や、訂正可能とするサーボフレームの設定を変更すれば、エラー訂正能力を増減することができる。
或いは、特にエラー訂正能力の変更等が行われないのであれば、予めこのような処理をＨＤＤ１０内部（例えばＣＰＵ１１）或いは外部装置で行っておき、その処理で得られた設定値、即ちＥＣＣブロック構成（データセクタ数やＣ２セクタ数）を、ディスクコントローラ１３又はＣＰＵ１１内で記憶しておき、記録再生時には、その記憶された設定値に従ってＥＣＣ処理を行うようにしてもよい。
【０１３５】
本例のＨＤＤ１０では、例えば以上の例のようにＥＣＣブロック設定を行うことで、サーボフレーム（サーボフレームに含まれるセクタ数）を基準とした効率の良いＥＣＣブロック構成とすることができ、エラー訂正符号による冗長が少なくて、転送レートの点でも好適であるうえ、より広い範囲でのランダムエラーやバーストエラーに対してもエラー訂正が可能とすることができ、安定したシステムを構築することができる。
さらに、１トラックをアクセス単位とすることで、先読みという不確定な処理を省いて、シーク起動のタイミングを確実に決定することができる。また、トラックのどのセクタからでもアクセスを行うことができるので、シーク直後の任意のヘッド位置から読み書きを行うことにより、回転待ちをなくすことができる。この結果、シークの回数を最小限に抑え、アクセス時間が短縮化される。
【０１３６】
３．変形例
本発明は、上記各例として示したもに限定されず、例えば以下のケースに対しても適用が可能である。
図４でサーボエリアの構成例を説明したが、、配置が放射状であればトラック１周のサーボエリア数がいくつであろうと本発明を適用できる。
またゾーン内のセクタ数が異なる場合も本発明は適用できる。
また図５のように、サーボ間（サーボフレーム）に配置されるセクタの個数には関係なく、本発明は適用できる。
またＣ２としての割当は、必ずしもセクタ番号の先頭（若い番号）あるいは最後に与える必要はない。２サーボフレームであれば、そこに配置されたセクタの個数で決まる。
図６や図１６で示したＥＣＣブロック単位は任意であり、上限や下限もとくになく、システムの要求によって決定することができる。
また、Ｃ１の構成にはよらず、本発明は適用できる。
【０１３７】
ディスク上に記録されるＣ２の配置は、ＬＢＡを指定することが出来れば所定の位置に配置してもよい。
即ち図９，図１１の例のように特定サーボフレーム内に全て配置しても良いし、ばらばらに配置しても良い。結局、例えば図１１の例で言えば、８サーボフレームをＥＣＣブロック単位とし、７サーボフレーム分のデータと、１サーボフレーム分のＣ２で構成されればよく、その内部配置はどのようなものでもよい。
さらに図９、図１１の例は、ＥＣＣブロックはトラックをまたいでもよい。
また図１７の例において、ディスク上に記録されるＣ２の配置について、どこに配置されていても、トラック単位当たりのＥＣＣブロック単位で構成されていれば、本発明は適用できる。
【０１３８】
さらに実施の形態では、ＥＣＣブロック構成については、ゾーン毎に異なるものとしての例を説明したが、ＥＣＣブロック構成が可変となる単位はゾーンに限定されない。
例えば複数のゾーンにおいて同一のＥＣＣ構成となる場合（例えばゾーン１とゾーン２が同一構成で、ゾーン０が異なるなど）、或いは、１つのゾーン内でＥＣＣ構成が異なる領域が生成されるなどの例も考えられる。
そしてディスク上で各種可変設定されるＥＣＣブロック構成の上で、サーボ領域設定に応じたＣ２設定が行われればよいものである。
【０１３９】
本発明のプログラムは、上述したＨＤＤ１０の機能を実現するプログラムである。特にＣＰＵ１１によって起動され、ＨＤＤ１０の各部がそのプログラムに基づいて制御されることで図１０、図１２、図１８のような処理が実行される。
このプログラムは、例えばＲＯＭ／ＲＡＭ１２に予め記憶しておくことができる。或いは磁気ディスク２１に記憶しておき、ＲＯＭ／ＲＡＭ１２にロードされる形態も考えられる。
【０１４０】
【発明の効果】
以上の説明から理解されるように本発明によれば、エラー訂正符号による冗長の効率の良くてかつ、安定したデータ再生を行うことができる、優れたデータ記録再生装置及びデータ記録再生方法、並びにプログラム、記録媒体を提供することができる。
即ち、第１のエラー訂正符号単位を用いることによりセクタ内でのランダムエラーを訂正することができるとともに、第２のエラー訂正符号単位を用いることによって、セクタ内エラー訂正範囲を越えるエラーや、セクタ間にまたがるバーストエラーを訂正することができる。これによって、データ転送速度を所望以上に保つためにリトライが行えない状況においても、適切にエラー訂正ができ、より安定したシステムを提供することができる。そしてこのように、より広い範囲でのランダムエラーやバーストエラーに対してもエラー訂正が可能として、リトライ動作を回避することによって、転送速度を低下させることなく、安定したデータ再生を行うことができる。
さらに、第２のエラー訂正符号（Ｃ２）単位の構成が、サーボ領域設定、例えばサーボフレームのセクタ数に応じて設定されることによって、エラー訂正符号単位の効率を良くし、冗長を少なくすることができ、より安定したシステムを提供することができる。
また各ゾーンにおける第２のエラー訂正符号について、サーボ領域設定に応じて設定することにより、ディスクの全周に渡ってエラー訂正能力を均一にすることができるとともに、効率の良いディスクフォーマットを実現できる。
以上によって、よりいっそう安定したシステムを提供することができる。
【０１４１】
さらに本発明によれば、シークされたトラック上でアクセス可能となった先頭のセクタからアクセスを開始して１トラック分のアクセスを行うことによって、１トラックをアクセス単位とすることができ、回転待ちを発生することのないデータアクセス制御を実現することができる。すなわち、データアクセス時間を短縮することができる。
【図面の簡単な説明】
【図１】本発明の実施の形態のＨＤＤの全体構成のブロック図である。
【図２】実施の形態のＨＤＤのディスクコントローラのブロック図である。
【図３】実施の形態のディスクフォーマット構造を模式的に示した説明図である。
【図４】実施の形態のサーボエリアの説明図である。
【図５】実施の形態のサーボフレームの説明図である。
【図６】実施の形態のＥＣＣブロック構造の説明図である。
【図７】実施の形態のインターリーブ構造の説明図である。
【図８】実施の形態のインターリーブ構造の説明図である。
【図９】実施の形態のＥＣＣブロック固定の場合のＣ２セクタ設定の説明図である。
【図１０】実施の形態のＥＣＣブロック固定の場合の設定処理のフローチャートである。
【図１１】実施の形態のＥＣＣブロック可変の場合のＣ２セクタ設定の説明図である。
【図１２】実施の形態のＥＣＣブロック可変の場合の設定処理のフローチャートである。
【図１３】実施の形態のセクタ構造の説明図である。
【図１４】実施の形態のアクセスのための変換テーブルの説明図である。
【図１５】実施の形態のトラック単位となるＥＣＣブロックの説明図である。
【図１６】実施の形態のＥＣＣブロック構造の説明図である。
【図１７】実施の形態のトラック単位のＥＣＣブロックの場合のＣ２セクタ設定の説明図である。
【図１８】実施の形態のスリップ情報に応じたＣ２セクタ設定処理のフローチャートである。
【符号の説明】
１０  ＨＤＤ（ハードディスク装置）、１１  ＣＰＵ、１２  ＲＯＭ／ＲＡＭ、１３  ディスクコントローラ、１４  バッファＲＡＭ、１５  データ読み書き制御部、１６  サーボ制御部、２１  磁気ディスク
【図１】
0004694774.tif 000002
【図２】
0004694774.tif 000003
【図３】
0004694774.tif 000004
【図４】
0004694774.tif 000005
【図５】
0004694774.tif 000006
【図６】
0004694774.tif 000007
【図７】
0004694774.tif 000008
【図８】
0004694774.tif 000009
【図９】
0004694774.tif 000010
【図１０】
0004694774.tif 000011
【図１１】
0004694774.tif 000012
【図１２】
0004694774.tif 000013
【図１３】
0004694774.tif 000014
【図１４】
0004694774.tif 000015
【図１５】
0004694774.tif 000016
【図１６】
0004694774.tif 000017
【図１７】
0004694774.tif 000018
【図１８】
0004694774.tif 000019