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