(57)【要約】【課題】磁気ディスクからのデータのリードを好適に制御すること。【解決手段】実施形態にかかるディスク装置は、データが記録された記録媒体と、記録媒体からリードされたデータを復号する復号回路と、リード要求にかかる第１データを記録媒体からリードし、復号回路による第１データの復号の結果を待たず、第１データのリードに引き続き第１データが記録されたトラックのデータであってリード要求にかかるデータでない第２データを記録媒体からリードする制御を開始する制御回路と、を具備する。【選択図】  図３
2018185877.tif 000002
【特許請求の範囲】
【請求項１】
データが記録された記録媒体と、
前記記録媒体からリードされたデータを復号する復号回路と、
リード要求にかかる第１データを前記記録媒体からリードし、前記復号回路による前記第１データの復号の結果を待たず、前記第１データのリードに引き続き前記第１データが記録されたトラックのデータであって前記リード要求にかかるデータでない第２データを前記記録媒体からリードする制御を開始する制御回路と、
を具備するディスク装置。
【請求項２】
前記復号回路は、前記第１データ及び前記第２データそれぞれを第１単位で復号する第１復号と、前記第１データ及び前記第２データを含み前記第１単位のサイズより大きなサイズの第２単位で復号する第２復号と、を実行し、
前記制御回路は、前記復号回路による前記第１データに対する前記第１復号の結果に応じて、前記第２データのリードを停止、又は、前記第２復号にかかる前記第２単位のサイズとなるまで前記第２データのリードを継続する請求項１に記載のディスク装置。
【請求項３】
前記第１単位のサイズは前記復号回路による前記復号の最小単位のサイズであり、前記第２単位のサイズは前記トラックに記録されるデータのサイズである請求項２に記載のディスク装置。
【請求項４】
前記制御回路は、前記復号回路による前記第１データの復号が成功したことに応じて、前記第２データのリードを停止し、前記復号回路による前記第１データの復号が失敗したこと又は完了していないことに応じて、前記第２データのリードを継続する請求項１から請求項３の何れか１項に記載のディスク装置。
【請求項５】
前記制御回路は、前記第１データの先頭から、又は、前記第２データの一部から、前記第１データのリードを開始する請求項１から請求項４の何れか１項に記載のディスク装置。
【請求項６】
前記復号回路により復号されたデータを格納するメモリを更に具備し、
前記復号回路は、前記第１データ及び前記第２データを復号し、
前記制御回路は、前記第１データを前記メモリに格納し、前記第２データを前記メモリに格納しない請求項１から請求項５の何れか１項に記載のディスク装置。
【請求項７】
前記制御回路は、前記第１データをリードしている間に、前記復号回路による前記第１データの一部の復号が失敗していないこと又は完了したことに応じて、他の処理に関する制御を実行する請求項１から請求項６の何れか１項に記載のディスク装置。
【請求項８】
入力されたデータを復号する復号回路と、
前記復号の対象となる第１データを前記復号回路に復号させ、前記復号回路による前記第１データの復号の結果を待たず、前記第１データに引き続き前記復号の対象でない第２データを前記復号回路に復号させる制御を開始する制御回路と、
を具備するコントローラ回路。
【請求項９】
データが記録された記録媒体と、
前記記録媒体からリードされたデータを復号する復号回路と、
を具備するディスク装置の制御方法であって、
リード要求にかかる第１データを前記記録媒体からリードし、
前記復号回路による前記第１データの復号の結果を待たず、前記第１データのリードに引き続き前記第１データが記録されたトラックのデータであって前記リード要求にかかるデータでない第２データを前記記録媒体からリードする制御を開始する、制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ディスクからのデータのリードを制御するディスク装置、コントローラ回路、及び制御方法に関する。
【背景技術】
【０００２】
近年、記録媒体としての磁気ディスク、及び、この磁気ディスクに対向する再生ヘッドを備えるディスク装置がある。このディスク装置は、ハードディスクドライブ（ＨＤＤ）を含む。ＨＤＤでは、磁気ディスクからのデータのリードにおいて、回転する磁気ディスク上の目標位置から再生ヘッドにより磁気情報が読み取られ、この磁気情報が復調されることで所望のデータが得られる。磁気ディスクからの磁気情報の読み取りが完了しても、磁気情報の復調はすぐには完了せず、結果として復調できない（リードしたデータがエラーを含んだままとなる）ことがある。この場合、リードに関するパラメータが変更されてリードリトライが実行される。リードリトライの要否判定は、磁気情報の復調後又は復調されたデータの検証の後に実行される。また、リードリトライの際に、磁気ディスクの円周方向の目標位置を検出するための回転待ち時間が必要になることがある。リードリトライに要する時間の短縮が望まれている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許第９０１９６４０号明細書
【特許文献２】米国特許第７２６３６５０号明細書
【特許文献３】特開平０５−０３５４１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明が解決しようとする課題は、磁気ディスクからのデータのリードを好適に制御することができるディスク装置、コントローラ回路、及び制御方法を提供することである。
【課題を解決するための手段】
【０００５】
実施形態のディスク装置は、データが記録された記録媒体と、前記記録媒体からリードされたデータを復号する復号回路と、リード要求にかかる第１データを前記記録媒体からリードし、前記復号回路による前記第１データの復号の結果を待たず、前記第１データのリードに引き続き前記第１データが記録されたトラックのデータであって前記リード要求にかかるデータでない第２データを前記記録媒体からリードする制御を開始する制御回路と、を具備する。
【図面の簡単な説明】
【０００６】
【図１】実施形態にかかるディスク装置を備えるシステムの構成を示すブロック図。
【図２】ディスクの記録面に記録されるユーザデータ及び訂正用データの一例を示す。
【図３】第１の実施形態にかかるＨＤＤによって実行される第１リード処理の動作を説明するためのフローチャートを示す。
【図４】第１の実施形態にかかる第１リード処理の動作例を説明するための図。
【図５】第２の実施形態にかかるＨＤＤによって実行される第２リード処理の動作を説明するためのフローチャートを示す。
【図６】第２の実施形態にかかる第２リード処理の動作例を説明するための図。
【図７】本第３の実施形態にかかるＨＤＤによって実行される第３リード処理の動作を説明するためのフローチャートを示す。
【図８】第３の実施形態にかかる第３リード処理の動作例を説明するための図。
【発明を実施するための形態】
【０００７】
以下、複数の実施形態について図面を用いて説明する。なお、本発明は、以下で説明する複数の実施形態にかかる図面によって限定されるものではない。
【０００８】
図１は、実施形態にかかるディスク装置１０を備えるシステム１５０の構成を示すブロック図である。本実施形態では、ディスク装置１０として、ハードディスクドライブ（以下、ＨＤＤとも称する）１０を例示する。システム１５０はホスト１００及びＨＤＤ１０を備えている。ホストＩ／Ｆ１２０は、ホスト１００とＨＤＤ１０とを接続し、ホスト１００とＨＤＤ１０との間のコマンド、データ、コマンド応答、又はステイタス報告、の送受信に利用される。ホストＩ／Ｆ１２０は、例えば、ＳＡＴＡ（Serial Advanced Technology Attachment）規格やＳＡＳ（Serial Attached SCSI）規格に準拠する。ＨＤＤ１０は、ホストＩ／Ｆ１２０を介してホスト１００と接続されて、ホスト１００のデータ記憶部として機能する。例えばシステム１５０は、パーソナルコンピュータ、モバイル機器、又はサーバ装置である。例えばホスト１００は、パーソナルコンピュータやモバイル装置に備えられるチップセットＩＣ、又はサーバ装置に備えられるサーバコントローラである。
【０００９】
ＨＤＤ１０は、磁気ディスク（以下、単にディスクとも称する）１、スライダ２、アーム３、ボイスコイルモータ（ＶＣＭ）４、及びスピンドルモータ（ＳＰＭ）５を含むヘッド・ディスクアセンブリ（Head-Disk Assembly：ＨＤＡ）を有する。ＨＤＡの各構成物はＨＤＤ１０の筐体（不図示）の内部に収容される。スライダ２は、リードヘッドＲＨ及びライトヘッドＷＨを含むヘッド部を有する。またＨＤＤ１０は、モータドライバＩＣ（以下、ドライバＩＣとも称する）２１、ヘッドアンプＩＣ（以下、ヘッドＩＣとも称する）２２、バッファメモリ２３、不揮発性メモリ２４、及びコントローラ６０を含む回路ブロックを有する。コントローラ６０は、リードライトチャネル（以下、ＲＷＣとも称する）６１、ＣＰＵ６２、及びハードディスクコントローラ（以下、ＨＤＣとも称する）６３を備える。ＲＷＣ６１は、少なくともワークメモリＷＭを備える。
【００１０】
実施形態にかかるＨＤＤ１０は、ディスク１にデータを記録する処理（ライト処理）、ディスク１に記録されたデータを読み出す処理（リード処理）、及びディスク１上の目標位置に対してスライダ２の一部（主にヘッド部）を位置付ける処理（サーボ処理）、を少なくとも実行する。サーボ処理は、ヘッド部をディスク１の特定の半径位置（目標位置）に位置付ける処理、及びヘッド部をディスク１上で半径方向に移動する処理（シーク処理）を含む。サーボ処理は、ライト処理またはリード処理の一部の処理として実行されることがある。
【００１１】
本実施形態にかかるＨＤＤ１０によるライト処理、リード処理、及びサーボ処理は、ホスト１００から送信されるコマンドに応じて、又は、ＨＤＤ１０内部での自発的な要求に応じて実行される。これらの処理は、ＣＰＵ６２で実行されるプログラム（ファームウェア）に従って制御される。プログラムのデータは、不揮発性メモリ２４やディスク１に不揮発に記憶される。
【００１２】
ディスク１は、ＳＰＭ５により回転する。ＳＰＭ５は、ドライバＩＣ２１からの駆動電圧又は駆動電流により回転制御される。アーム３とＶＣＭ４はアクチュエータを構成する。スライダ２は、アーム３の一端に装着される。アクチュエータは、スライダ２をディスク１上の目標位置に移動させる。すなわち、アクチュエータは、ＶＣＭ４の駆動により、アーム３に装着されているスライダ２をディスク１上の径方向に移動させる。ＶＣＭ４は、ドライバＩＣ２１からの駆動電圧又は駆動電流により制御される。
【００１３】
ディスク１は記録面を有し、記録面にデータが記録されることでトラック（データトラック）が形成される。すなわち、ディスク１は、データを記録するための記録面を備えた記録媒体である。ディスク１の記録面は、記録面上のスライダ２の位置を制御するためのサーボデータが記録されたサーボ領域、ホスト１００から送信されるユーザデータを記録するためのユーザデータ領域、及びユーザデータ領域に記録されたユーザデータを管理するシステムデータを記録するためのシステム領域、を少なくとも有する。ディスク１の記録面は、ユーザデータ領域に記録されるべきユーザデータを一時的に記録するキャッシュ領域を有してもよい。サーボデータは、ＨＤＤ１０の製造工程で記録されてＨＤＤ１０の出荷後には記録されないデータである。システムデータは、ＨＤＤ１０で実行されるライト処理及びリード処理において管理すべきデータを含む。なおシステムデータは、ディスク１のシステム領域でなく不揮発性メモリ２４に記録されてもよい。ユーザデータは、ホスト１００から送信され不揮発に記録されるべきデータ、既にユーザデータ領域又はキャッシュ領域に記録されたデータ、及びユーザデータ領域又はキャッシュ領域から読み出されたデータを含む。以下、ユーザデータを単にデータと表記することがある。ユーザデータは、ユーザデータ領域又はキャッシュ領域にセクタ単位で記録される。セクタ単位は、ＲＷＣ６１において実行されるエラー訂正処理の最小単位である。また、ユーザデータ領域には、ユーザデータ以外にユーザデータのエラー訂正に用いられる訂正用データが記録される。訂正用データは、複数セクタに一つ設けられればよい。本実施形態では、複数セクタにユーザデータが記録されたトラックに対して１の訂正用データが設けられる。
【００１４】
ここで図２を用いて、ディスク１の記録面に記録されるユーザデータ及び訂正用データの一例を説明する。図２は、ディスク１の記録面に記録されるユーザデータ及び訂正用データの一例を示す。
【００１５】
図２に示すように、ディスク１の記録面上のあるトラックは、セクタＳ１〜Ｓｎを含んで構成されている。セクタＳ１〜Ｓｎそれぞれは、セクタ単位のエラー訂正処理の単位である。各セクタＳ１〜Ｓｎのサイズは、それぞれ同じサイズである。このトラックにおいては、ユーザデータＵＤ１〜ＵＤｎ−１がセクタＳ１〜Ｓｎ−１にそれぞれ記録され、更に訂正用データＰＤがセクタＳｎに記録されている。例えば訂正用データＰＤは、ユーザデータＵＤ１〜ＵＤｎ−１それぞれのビットを排他的論理和演算することで得られる。訂正用データＰＤは、セクタＳ１〜Ｓｎのうち最後でなく、最前や途中に記録されてもよい。セクタＳ１〜Ｓｎ−１に記録されたユーザデータＵＤ１〜ＵＤｎ−１のリードにおいて、ユーザデータＵＤ１〜ＵＤｎ−１の何れかがセクタ単位のエラー訂正処理で訂正できないことがある。この場合、セクタＳ１〜Ｓｎ−１に記録されたユーザデータＵＤ１〜ＵＤｎ−１と、セクタＳｎに記録された訂正用データＰＤと、を用いて、トラック単位のエラー訂正処理を実行することで、訂正できなかったユーザデータを訂正できる可能性がある。すなわち、トラック単位のエラー訂正処理には、トラック内の全てのセクタ（セクタＳ１〜Ｓｎ）に記録されたデータのリードが必要である。なお、これ以降では、セクタＳ１〜Ｓｎ−１に記録されたユーザデータＵＤ１〜ＵＤｎ−１、及びセクタＳｎに記録された訂正用データＰＤ、それぞれを単にセクタと称することがある。
【００１６】
図１に戻り、スライダ２は、リードヘッドＲＨ及びライトヘッドＷＨ（以下、ヘッド部とも称する）を少なくとも備える。リードヘッドＲＨは、ディスク１上のトラックに記録されているデータを読み出す。読み出されるデータは、サーボデータ、ユーザデータ、及びシステムデータを含む。ライトヘッドＷＨは、ディスク１上にユーザデータ及びシステムデータを書き込む。リードヘッドＲＨは読み出し手段として、ライトヘッドＷＨは記録手段としてそれぞれ構成される。なお、以下の説明では、スライダ２をヘッド又はヘッド部、と称することがある。図１では、単一のディスク１及びスライダ２が図示されているが、ＨＤＤ１０は複数のディスク、及び複数の各ディスクの各記録面に対応した複数のスライダが設けられてもよい。
【００１７】
ヘッドＩＣ２２は、リードアンプ及びライトドライバ（共に不図示）を有する。リードアンプは、リードヘッドＲＨにより読み出されたリード信号を増幅した信号（増幅信号）をＲＷＣ６１に出力する。ライトドライバは、ＲＷＣ６１から供給されるライトデータに応じたライト電流をライトヘッドＷＨに出力する。
【００１８】
コントローラ６０は、少なくとも、ＲＷＣ６１、ＣＰＵ６２、及びＨＤＣ６３を一体に備えた１チップの集積回路として構成されている。コントローラ６０は、ＳｏＣ、ＦＰＧＡ、ＡＳＩＣ、ＬＳＩなどの半導体回路として構成される。バッファメモリ２３は、ディスク１よりも高速なデータ転送が可能な揮発性の半導体メモリであり、ＤＲＡＭ（ＳＤＲＡＭ）またはＳＲＡＭが適用される。不揮発性メモリ２４は、不揮発性の半導体メモリであり、ＮＯＲ型やＮＡＮＤ型のフラッシュメモリが適用される。バッファメモリ２３及び不揮発性メモリ２４は、コントローラ６０の外部に接続されず、コントローラ６０の内部に備えられてもよい。不揮発性メモリ２４として、ディスク１の記録領域の一部が適用されてもよい。
【００１９】
ＲＷＣ６１は、ＨＤＣ６３と直接的に通信するためのインターフェース回路、リードチャネル回路、及びライトチャネル回路、（何れも不図示）を少なくとも備える。またＲＷＣ６１は、ワークメモリＷＭを備える。ワークメモリＷＭは、例えばＳＲＡＭであり、ＲＷＣ６１の外部に設けられてもよい。ＲＷＣ６１は、インターフェース回路を介して、コマンド、データ、コマンド応答、又はステイタス報告、などをＨＤＣ６３との間でやり取りする。リードチャネル回路は、ヘッドＩＣ２２から供給された増幅信号を処理して、サーボデータ及びユーザデータを含むデータを復号する。ＲＷＣ６１は、リードチャネル回路によるデータの復号において、ユーザデータのエラーの検出及び訂正を含むエラー訂正処理を実行すると共に、エラー訂正処理の結果又は状態をＨＤＣ６３に報告する。ＲＷＣ６１は、エラー訂正処理を実行するデータをワークメモリＷＭに記憶する。ＲＷＣ６１は、リードチャネル回路において、セクタ単位又はトラック単位でエラー訂正処理を実行する。ライトチャネルは、ＨＤＣ６３から供給されたライトすべきデータを符号化したライトデータを、ヘッドＩＣ２２に出力する。本実施形態では、ＲＷＣ６１は、ＬＤＰＣ符号を用いたデータの符号化及び復号を実行する。このためリードチャネルは、ビタビ復号回路及びＬＤＰＣ復号回路を含む。
【００２０】
ＨＤＣ６３は、バッファメモリ２３、不揮発性メモリ２４、ＲＷＣ６１、及びホスト１００それぞれとの間でデータの送受を制御するための複数のインターフェース回路を少なくとも備える。ＨＤＣ６３は、バッファメモリ２３及び不揮発性メモリ２４と接続され、これらとの間で転送されるデータの送受を制御する。ＨＤＣ６３とバッファメモリ２３との間で転送されるデータは、ホスト１００又はＲＷＣ６１との間で転送されるリードデータ及びライトデータを含む。リードデータはディスク１から読み出されたユーザデータであり、ライトデータはディスク１に書き込まれるユーザデータである。ＨＤＣ６３と不揮発性メモリ２４との間で転送されるデータは、ＣＰＵ６２が実行するプログラム及びシステムデータを含む。またＨＤＣ６３は、ＲＷＣ６１と直接的に通信するためのインターフェース回路を介して、コマンド、データ、コマンド応答、又はステイタス報告、などをＲＷＣ６１との間でやり取りする。ＨＤＣ６３は、ＲＷＣ６１から入力されたリードデータ、又はＲＷＣ６１に出力されるライトデータに対する処理を実行する。さらにＨＤＣ６３は、ホスト１００と接続され、ホスト１００から送信されるコマンド及びデータ、又はホスト１００に出力するコマンド応答、ステイタス報告、及びデータに関する処理を実行する。すなわちＨＤＣ６３は、ライト処理におけるライトゲートに関する処理、リード処理におけるリードゲートに関する処理、サーボ制御で必要なサーボゲートに関する処理、を含む複数の処理を実行する。
【００２１】
ＣＰＵ６２は、マイクロプロセッサまたはマイクロコントローラとも称されるＩＣである。ＣＰＵ６２は、ドライバＩＣ２１を介してＶＣＭ４を制御してヘッド部（リードヘッドＲＨ及びライトヘッドＷＨ）の位置決め制御（サーボ制御）を実行する。サーボ制御は、ヘッド部をディスク１の半径方向の何れかの位置に位置づける制御と、ヘッド部をディスク１上で現在位置から目標位置に向かって移動する制御（シーク制御）と、を少なくとも含む。またＣＰＵ６２は、少なくともＲＷＣ６１及びＨＤＣ６３を介して、ディスク１に対するライト処理及びリード処理を制御する。ＣＰＵ６２は、これら複数の処理の制御において、プログラムに従って、以上で説明したＨＤＡ及び回路ブロックを利用する。ＣＰＵ６２は、複数の処理を制御する制御部又は制御回路として構成される。
【００２２】
以上で説明した構成により、本実施形態にかかるＨＤＤ１０は、以下に詳細に説明する複数の処理を実行することができる。
【００２３】
［第１の実施形態］
次に、図３を用いて、本第１の実施形態にかかるデータのリード処理の動作を説明する。図３は、本第１の実施形態にかかるＨＤＤ１０によって実行される第１リード処理の動作を説明するためのフローチャートを示す。
【００２４】
図３に示したフローチャートは、ヘッド部（リードヘッドＲＨ）をリード処理の対象となる目標セクタが含まれる目標トラックに位置づけるサーボ処理（シーク処理）が実行された後に開始する。本第１の実施形態において実行される第１リード処理では、目標トラック上で、初めに目標セクタのデータがリードされ、必要に応じて同じトラック上の他のセクタのデータがリードされる。第１リード処理は、ホスト１００からデータのリード要求を示すコマンドを受領することに応じて、又はＨＤＤ１０の内部で生じたリード要求に応じて、実行される。ＨＤＤ１０の内部で生じたリード要求は、ディスク１に記録されたデータに対する、リフレッシュ処理又はベリファイ処理に基づくリード要求を含む。第１リード処理は、主にはＲＷＣ６１及びＨＤＣ６３が実行する。
【００２５】
ＣＰＵ６２は、リード要求に応じて、目標トラックへのシーク処理を実行する。これにより、ヘッド部が目標トラックに位置決めされる（Ｓ１００）。ＣＰＵ６２は、シーク処理の実行に伴って、リード要求に関する情報をＨＤＣ６３に提供する。この情報は、目標トラック中の目標セクタの位置又は数に関する情報を含む。ＨＤＣ６３は、目標トラックに含まれる目標セクタが検出されるまで回転待ちし、目標セクタが検出されたことに応じて、この目標セクタに対するリードゲートＲＧをＲＷＣ６１に出力する（Ｓ１０１）。ここでＨＤＣ６３は、ディスク１の回転に応じて、目標トラックに含まれる最初の目標セクタが検出されるまで回転待ちすることで目標セクタを検出する。ＲＷＣ６１は、ＨＤＣ６３から入力されたリードゲートＲＧに対応して、ヘッドＩＣ２２から供給された増幅信号を復号する。ＲＷＣ６１は、この復号において、ワークメモリＷＭを利用してエラー訂正処理を実行し、この処理の結果をＨＤＣ６３に報告する。すなわち、ＨＤＣ６３がリードゲートＲＧをＲＷＣ６１に出力することは、ＲＷＣ６１が供給された増幅信号を復号することと等価である。
【００２６】
ＨＤＣ６３は、目標トラックに含まれる全ての目標セクタに対してリードゲートＲＧを出力したか否かを判定する（Ｓ１０２）。全ての目標セクタにリードゲートＲＧを出力したと判定されなければ（Ｓ１０２のＮｏ）、処理は（Ｓ１０１）に戻り、出力したと判定されれば（Ｓ１０２のＹｅｓ）、処理は（Ｓ１０３）に進む。すなわち、ＨＤＣ６３は、目標トラックに含まれる全ての目標セクタについて、リードゲートＲＧをＲＷＣ６１に順次出力する。（Ｓ１０３）において、ＨＤＣ６３は、目標トラックに含まれる全てのセクタに対するリードゲートＲＧをＲＷＣ６１に出力したか否かを判定する。全てのセクタにリードゲートＲＧを出力したと判定された場合（Ｓ１０３のＹｅｓ）、処理は終了する。一方、リードゲートＲＧを出力したと判定されなかった（未だ全てのセクタにリードゲートＲＧを出力していないと判定された）場合（Ｓ１０３のＮｏ）、ＨＤＣ６３は、ＲＷＣ６１から報告されるエラー訂正処理（復号）の結果に基づいて、全ての目標セクタのエラー訂正処理が完了したか否かを判定する（Ｓ１０４）。
【００２７】
本第１の実施形態にかかる第１リード処理では、ＨＤＣ６３は、少なくとも、全ての目標セクタの位置又は数を把握している。従って、例えばＲＷＣ６１から、目標セクタ毎にエラー訂正処理の結果が順次ＨＤＣ６３に報告されれば、ＨＤＣ６３は、順次報告される全ての目標セクタのエラー訂正処理の結果に基づいて、全ての目標セクタの復号が完了したか否かを判定することができる。また、例えばＨＤＣ６３は、全ての目標セクタの位置又は数に関する情報をＲＷＣ６１に提供してもよい。この場合ＨＤＣ６３は、最初の目標セクタに対するリードゲートＲＧの出力に伴って、全ての目標セクタの位置又は数に関する情報をＲＤＣ６１に提供する。更にＨＤＣ６３は、リードゲートＲＧを出力する毎に、出力したリードゲートＲＧに対応するセクタを特定する識別情報をＲＷＣ６１に提供する。これによりＲＷＣ６１は、全ての目標セクタの復号が完了したか否かを判定することができる。この結果、ＲＷＣ６１は、目標セクタ毎にエラー訂正処理の結果を報告するのでなく、全ての目標セクタの復号が完了したことに応じて、その旨をＨＤＣ６３に報告することができる。何れの場合であっても、ＨＤＣ６３は、ＲＷＣ６１から報告されるエラー訂正処理の結果に基づいて、全ての目標セクタの復号が完了したか否かを判定することができる。
【００２８】
復号が完了したと判定された場合（Ｓ１０４のＹｅｓ）、処理は終了する。一方、復号が完了したと判定されなかった（復号が完了していないと判定された）場合（Ｓ１０４のＮｏ）、ＨＤＣ６３は、目標トラックのうち目標セクタ以外の他のセクタに対するリードゲートＲＧをＲＷＣ６１に出力する（Ｓ１０５）。その後、処理は（Ｓ１０３）に戻り、目標トラック内の全てのセクタに対するリードゲートＲＧが出力される（Ｓ１０３のＹｅｓ）か、全ての目標セクタの復号が完了する（Ｓ１０４のＹｅｓ）まで、目標トラック内の他のセクタに対するリードゲートＲＧの出力（Ｓ１０５）が繰り返される。
【００２９】
このフローチャートでは、目標トラック内の、目標セクタを含む全てのセクタに対するリードゲートＲＧが出力された場合（Ｓ１０３のＹｅｓ）、全ての目標セクタの復号の完了は判定されない。しかし、目標トラック内の全てのセクタがリードされたことにより、ＲＷＣ６１は、セクタ単位のエラー訂正処理だけでなくトラック単位のエラー訂正処理を実行することが可能である。従って、全ての目標セクタが、セクタ単位のエラー訂正処理が完了しない（すなわち、セクタ単位ではエラー訂正処理できない）場合であっても、目標トラックに含まれる訂正用セクタを用いたトラック単位のエラー訂正処理により、全ての目標セクタのエラー訂正処理が完了することが期待される。なお、第１リード処理の完了後、次の処理に移行することができる。例えば、次の処理として、ＣＰＵ６２が、他のトラックへのシーク処理のためのパラメータの設定及び計算を実行する処理を実行する。この処理の後、ＣＰＵ６２は、他のトラックへのシーク処理を実行することができる。
【００３０】
このように、本第１の実施形態にかかるＨＤＤ１０は、主にＲＷＣ６１及びＨＤＣ６３を利用して、第１リード処理を実行する。第１リード処理によれば、目標トラックに含まれる目標セクタのセクタ単位のエラー訂正処理が完了したことを待たずに、目標トラックに含まれる目標セクタ以外の他のセクタのリード処理が実行される。すなわち、本第１の実施形態にかかる第１リード処理では、目標セクタのセクタ単位のエラー訂正処理が完了しない場合、目標セクタのトラック単位のエラー訂正処理を実行する時間を抑制することができる。
【００３１】
ここで、図４を用いて、図３で説明した第１リード処理の動作例を説明する。図４は、本第１の実施形態にかかる第１リード処理の動作例を説明するための図である。
【００３２】
図４（ａ）は、ＨＤＣ６３からＲＷＣ６１に出力されるリードゲートの例示である。１トラックはセクタＳ１〜Ｓｎを含む。従って、ディスク１の回転に従って、セクタＳ１〜Ｓｎが順次検出され、セクタＳｎに後続してセクタ１，２が再び検出される。各リードゲートＲＧ内の符号は、セクタＳ１〜Ｓｎ−１にはユーザデータＵＤ１〜ＵＤｎ−１がそれぞれ記録され、セクタＳｎには訂正用データＰＤが記録されている状態を示している。すなわち、ディスク１の回転に従って、各リードゲートに応じて、ユーザデータＵＤ１〜ＵＤｎ−１又は訂正用データＰＤがディスク１からリードされてＲＷＣ６１に提供される。図４（ｂ）には、セクタＳ１〜Ｓｎのうち、リード要求にかかる目標セクタには「○」、目標セクタ以外のセクタには「×」が例示されている。すなわち、この例では、目標セクタはセクタＳ１〜Ｓ３であり、それ以外のセクタは目標セクタではない。ＨＤＣ６３は、目標セクタにかかるデータを受領した場合、受領したデータをバッファメモリ２３に格納する。しかしＨＤＣ６３は、目標セクタ以外のセクタにかかるデータを受領した場合、受領したデータをバッファメモリ２３に格納せず破棄する。これ以降では、このようなデータが記録されたディスク１のあるトラックに対して第１リード処理が実行された例を、図３に示したフローチャートと比較しながら説明する。
【００３３】
まず一例を説明する。図４（ｃ）に示すように、ディスク１の回転待ちを経て、目標セクタであるセクタＳ１〜Ｓ３に対してリードゲートＲＧが出力される（図３のＳ１０１，Ｓ１０２のＮｏ）。セクタＳ３に対するリードゲートＲＧが出力された時点（Ｓ１０２のＹｅｓ）では、目標トラック内の全てのセクタにリードゲートＲＧを出力していなく（Ｓ１０３のＮｏ）、全ての目標セクタのエラー訂正処理（復号）が完了していない（Ｓ１０４のＮｏ）ので、目標セクタ以外の後続する他のセクタＳ４に対するリードゲートＲＧが出力される（Ｓ１０５）。その後、全ての目標セクタＳ１〜Ｓ３のエラー訂正処理の完了が検出されたこと（Ｓ１０４のＹｅｓ）に応じて第１リード処理は終了する。この後、ＣＰＵ６２は、例えば、次の目標セクタを含む他のトラックへのシーク処理のためのパラメータの設定及び計算を実行する処理、及びシーク処理を実行することができる。
【００３４】
全ての目標セクタＳ１〜Ｓ３のエラー訂正処理の完了は、例えば、目標セクタであるセクタＳ１〜Ｓ３に対応するユーザデータＵＤ１〜ＵＤ３を、ＲＷＣ６１から受領したことに応じて、ＨＤＣ６３が検出すればよい（図４（ｄ）を参照）。なお、リードゲートＲＧに応じてＲＷＣ６１にデータが入力されてから、ＲＷＣ６１によるエラー訂正処理（復号）が完了するまでには所定の時間を要する。また、エラー訂正処理が完了するまでの時間は、セクタ毎に異なる。従って、図４（ｄ）に示したように、リードゲートＲＧの順に同じ間隔でエラー訂正処理が完了するとは限らない。また例えば、全ての目標セクタであるセクタＳ１〜Ｓ３に対応するユーザデータＵＤ１〜ＵＤ３のエラー訂正処理が完了したことをＲＷＣ６１が検出し、検出したことをＲＷＣ６１がＨＤＣ６３に報告すればよい（図４（ｅ）を参照）。なお何れの場合であってもＨＤＣ６３は、目標セクタＳ１〜Ｓ３以外のセクタＳ４にかかるユーザデータＵＤ４を受領するが、受領したユーザデータＵＤ４をバッファメモリ２３に格納せず破棄する。
【００３５】
次に他の一例を説明する。図４（ｆ）に示すように、目標セクタのうち最後のセクタＳ３に対するリードゲートＲＧが出力された時点（Ｓ１０２のＹｅｓ）では、目標トラック内の全てのセクタにリードゲートＲＧを出力していなく（Ｓ１０３のＮｏ）、全ての目標セクタのエラー訂正処理が完了していない（Ｓ１０４のＮｏ）ので、セクタＳ４に対するリードゲートＲＧが出力される（Ｓ１０５）。その後も、目標セクタのうちセクタＳ２のエラー訂正処理が完了しないため、同じ状態（Ｓ１０３のＮｏ，Ｓ１０４のＮｏ）が継続し、セクタＳ４に後続する他のセクタＳ５〜Ｓｎに対するリードゲートＲＧが出力される（Ｓ１０５）。その後、全てのセクタにリードゲートＲＧを出力したこと（Ｓ１０３のＹｅｓ）に応じて第１リード処理は終了する。この後、ＣＰＵ６２は、例えば、次の目標セクタを含む他のトラックへのシーク処理のためのパラメータの設定及び計算を実行する処理、及びシーク処理を実行することができる。
【００３６】
この他の一例では、ＲＷＣ６１及びＨＤＣ６３の何れも、第１リード処理の間に、全ての目標セクタＳ１〜Ｓ３のエラー訂正処理が完了したことを検出することができない。しかし、目標トラック内の全てのセクタＳ１〜ＳｎにリードゲートＲＧを出力したことで、全てのユーザデータＵＤ１〜ｎ−１及び訂正用データＰＤが、ディスク１が１回転する間にリードされてＲＷＣ６１内のワークメモリＷＭに格納される。従って、ユーザデータＵＤ２のセクタ単位のエラー訂正ができない場合であっても、同じトラックに対して再びリード処理を実行することなく、ユーザデータＵＤ２に対してトラック単位のエラー訂正を実行することができる。その結果、図４（ｇ）に示すように、目標トラック内の全てのセクタＳ１〜ＳｎにリードゲートＲＧを出力後に、トラック単位のエラー訂正により、ユーザデータＵＤ２がＲＷＣ６１からＨＤＣ６３に出力される。また図４（ｈ）に示すように、目標トラック内の全てのセクタＳ１〜ＳｎにリードゲートＲＧを出力後に、トラック単位のエラー訂正により、ユーザデータＵＤ２のエラー訂正処理が完了したことをＲＷＣ６１が検出し、検出したことをＲＷＣ６１がＨＤＣ６３に報告してもよい。何れの場合であってもＨＤＣ６３は、目標セクタＳ１〜Ｓ３以外のセクタＳ４〜ＳｎにかかるユーザデータＵＤ４〜ＵＤｎ−１を受領するが、これらのデータをバッファメモリ２３に格納せず破棄する。また、ＣＰＵ６２は、ＲＷＣ６１から全てのユーザデータＵＤ１〜ｎ−１が出力されるのを待たず、全てのセクタＳ１〜ＳｎにリードゲートＲＧを出力後に、次のトラックへのシーク処理の準備処理、及びシーク処理を実行することができる。以上説明した何れの例においても、本第１の実施形態にかかる第１リード処理によれば、磁気ディスクからのデータのリードを好適に制御することができる。
【００３７】
［第２の実施形態］
次に、図５を用いて、本第２の実施形態にかかるデータのリード処理の動作を説明する。図５は、本第２の実施形態にかかるＨＤＤ１０によって実行される第２リード処理の動作を説明するためのフローチャートを示す。
【００３８】
第２の実施形態において実行される第２リード処理は、第１リード処理に対して、目標トラック上で、初めに目標セクタのデータがリードされることに限定されない点が異なる。以下の説明では、第１リード処理と異なる構成について詳細に説明し、同じ構成については説明を簡略化又は省略する。第２リード処理は、ホスト１００からデータのリード要求を示すコマンドを受領することに応じて、又はＨＤＤ１０の内部で生じたリード要求に応じて、実行される。第２リード処理は、主にはＲＷＣ６１及びＨＤＣ６３が実行する。
【００３９】
目標トラックへのシーク処理により、ヘッド部（リードヘッドＲＨ）が目標トラックに位置決めされる（Ｓ１００）と、ＨＤＣ６３は、リードゲートＲＧの出力条件が満たされたことに応じて、目標トラックに含まれる任意のセクタに対するリードゲートＲＧをＲＷＣ６１に出力する（Ｓ２００）。ＲＷＣ６１は、ＨＤＣ６３から入力されたリードゲートＲＧに対応するセクタにかかるデータの復号（エラー訂正処理）を実行する。リードゲートＲＧの出力条件は、サーボ制御において安定的に目標トラックに追従できていること、リードチャネル回路がデータを復号できる状態となっていること、を含む。すなわちＨＤＣ６３は、ディスク１の回転に応じて、目標トラックに含まれる目標セクタが検出されるのを待たない。
【００４０】
ＨＤＣ６３は、目標トラックに含まれる全ての目標セクタに対してリードゲートＲＧを出力したか否かを判定する（Ｓ１０２）。（Ｓ２００）において、ＨＤＣ６３は、任意のセクタに対するリードゲートＲＧを出力したため、この時点では、目標セクタの何れかに対してリードゲートＲＧが出力されていない可能性がある。すなわち、全ての目標セクタにリードゲートＲＧを出力したと判定されなければ（Ｓ１０２のＮｏ）、再び（Ｓ２００）が実行されるが、この時点であっても、目標セクタの何れかに対してリードゲートＲＧが出力されていない可能性がある。しかし、（Ｓ１０２のＮｏ）〜（Ｓ２００）が繰り返し実行されることで、何れかは、全ての目標セクタにリードゲートＲＧを出力したと判定される（Ｓ１０２のＹｅｓ）。その後は、目標トラック内の全てのセクタに対するリードゲートＲＧが出力される（Ｓ１０３のＹｅｓ）か、全ての目標セクタの復号が完了する（Ｓ１０４のＹｅｓ）まで、目標トラック内の他のセクタに対するリードゲートＲＧの出力（Ｓ１０５）が繰り返される。なお、第２リード処理の完了後、次の処理に移行することができる。例えば、次の処理として、ＣＰＵ６２が、他のトラックへのシーク処理のためのパラメータの設定及び計算を実行する処理を実行する。この処理の後、ＣＰＵ６２は、他のトラックへのシーク処理を実行することができる。
【００４１】
このように、本第２の実施形態にかかるＨＤＤ１０が実行する第２リード処理によれば、目標トラックに含まれる目標セクタのセクタ単位のエラー訂正処理が完了したことを待たずに、目標トラックに含まれる目標セクタ以外の他のセクタのエラー訂正処理が実行される。また、リードゲートＲＧの出力条件が満たされたことに応じて、目標トラックに含まれる任意のセクタに対するリードゲートＲＧがＲＷＣ６１に出力され、ＲＷＣ６１が、入力されたリードゲートＲＧに対応するセクタにかかるデータの復号（エラー訂正処理）を順次実行する。すなわち、本第２の実施形態にかかる第２リード処理では、目標セクタのセクタ単位のエラー訂正処理が完了しない場合、目標セクタのトラック単位のエラー訂正処理を実行する時間を更に抑制することができる。
【００４２】
ここで、図６を用いて、図５で説明した第２リード処理の動作例を説明する。図６は、本第２の実施形態にかかる第２リード処理の動作例を説明するための図である。図６は、図４とほぼ同じであるため、図４と異なる点について詳細に説明し、同じ点については説明を簡略化又は省略する。
【００４３】
図６（ａ）、（ｂ）は、図４（ａ）、（ｂ）と同じである。この例でも、目標セクタはセクタＳ１〜Ｓ３であり、それ以外のセクタは目標セクタではない。ＨＤＣ６３は、目標セクタにかかるデータはバッファメモリ２３に格納するが、目標セクタ以外のセクタにかかるデータはバッファメモリ２３に格納せず破棄する。これ以降では、このようなデータが記録されたディスク１のトラックに対して第２リード処理が実行された例を、図５に示したフローチャートと比較しながら説明する。
【００４４】
まず一例を説明する。図６（ｃ）に示すように、目標トラックに含まれる任意のセクタ（ここではセクタｎー１）から、このセクタに後続する複数のセクタに対してリードゲートＲＧが順次出力される（図５のＳ２００，Ｓ１０２のＮｏ）。セクタＳ３に対するリードゲートＲＧが出力された時点（Ｓ１０２のＹｅｓ）では、目標トラック内の全てのセクタにリードゲートＲＧを出力していなく（Ｓ１０３のＮｏ）、全ての目標セクタのエラー訂正処理（復号）が完了していない（Ｓ１０４のＮｏ）ので、後続するセクタＳ４に対するリードゲートＲＧが出力される（Ｓ１０５）。その後、全ての目標セクタＳ１〜Ｓ３のエラー訂正処理が完了したことが検出されたこと（Ｓ１０４のＹｅｓ）に応じて第２リード処理は終了する。この後、ＣＰＵ６２は、例えば、次の目標セクタを含む他のトラックへのシーク処理のためのパラメータの設定及び計算を実行する処理、及びシーク処理を実行することができる。
【００４５】
全ての目標セクタＳ１〜Ｓ３のエラー訂正処理が完了したことは、例えば、目標セクタであるセクタＳ１〜Ｓ３に対応するユーザデータＵＤ１〜ＵＤ３を、ＲＷＣ６１から受領したことに応じて、ＨＤＣ６３が検出すればよい（図６（ｄ）を参照）。また例えば、全ての目標セクタであるセクタＳ１〜Ｓ３に対応するユーザデータＵＤ１〜ＵＤ３のエラー訂正処理が完了したことをＲＷＣ６１が検出し、検出したことをＲＷＣ６１がＨＤＣ６３に報告すればよい（図６（ｅ）を参照）。なお何れの場合であってもＨＤＣ６３は、目標セクタＳ１〜Ｓ３以外のセクタＳ４，Ｓｎ−１，ＳｎにかかるユーザデータＵＤ４，ＵＤｎ−１をバッファメモリ２３に格納せず破棄する。
【００４６】
次に他の一例を説明する。図６（ｆ）に示すように、目標トラックに含まれる任意のセクタ（ここではセクタｎー１）から、このセクタに後続する複数のセクタに対してリードゲートＲＧが順次出力される（図５のＳ２００，Ｓ１０２のＮｏ）。目標セクタのうち最後のセクタＳ３に対するリードゲートＲＧが出力された時点（Ｓ１０２のＹｅｓ）では、目標トラック内の全てのセクタにリードゲートＲＧを出力していなく（Ｓ１０３のＮｏ）、全ての目標セクタのエラー訂正処理が完了していない（Ｓ１０４のＮｏ）ので、セクタＳ４に対するリードゲートＲＧが出力される（Ｓ１０５）。その後も、目標セクタのうちセクタＳ２のエラー訂正処理が完了しないため、同じ状態（Ｓ１０３のＮｏ，Ｓ１０４のＮｏ）が継続し、セクタＳ４に後続する他のセクタＳ５〜Ｓｎ−２に対するリードゲートＲＧが出力される（Ｓ１０５）。そして、全てのセクタにリードゲートＲＧを出力したこと（Ｓ１０３のＹｅｓ）に応じて第２リード処理は終了する。この後、ＣＰＵ６２は、例えば、次の目標セクタを含む他のトラックへのシーク処理のためのパラメータの設定及び計算を実行する処理、及びシーク処理を実行することができる。
【００４７】
この他の一例では、目標トラック内の全てのセクタＳ１〜ＳｎにリードゲートＲＧを出力したことで、全てのユーザデータＵＤ１〜ｎ−１及び訂正用データＰＤが、ディスク１が１回転する間にリードされてＲＷＣ６１内のワークメモリＷＭに格納される。従って、ユーザデータＵＤ２のセクタ単位のエラー訂正ができない場合であっても、同じトラックに対して再びリード処理を実行することなく、ユーザデータＵＤ２に対してトラック単位のエラー訂正を実行することができる。その結果、図６（ｇ）に示すように、目標トラック内の全てのセクタＳ１〜ＳｎにリードゲートＲＧを出力後に、トラック単位のエラー訂正により、ユーザデータＵＤ２がＲＷＣ６１からＨＤＣ６３に出力される。また図６（ｈ）に示すように、目標トラック内の全てのセクタＳ１〜ＳｎにリードゲートＲＧを出力後に、トラック単位のエラー訂正により、ユーザデータＵＤ２のエラー訂正処理が完了したことをＲＷＣ６１が検出し、検出したことをＲＷＣ６１がＨＤＣ６３に報告してもよい。何れの場合であってもＨＤＣ６３は、目標セクタＳ１〜Ｓ３以外のセクタＳ４〜ＳｎにかかるユーザデータＵＤ４〜ＵＤｎ−１をバッファメモリ２３に格納せず破棄する。また、ＣＰＵ６２は、ＲＷＣ６１から全てのユーザデータＵＤ１〜ｎ−１が出力されるのを待たず、全てのセクタＳ１〜ＳｎにリードゲートＲＧを出力後に、次のトラックへのシーク処理の準備処理、及びシーク処理を実行することができる。以上説明した何れの例においても、本第２の実施形態にかかる第２リード処理によれば、磁気ディスクからのデータのリードを好適に制御することができる。
【００４８】
［第３の実施形態］
次に、図７を用いて、本第３の実施形態にかかるデータのリード処理の動作を説明する。図７は、本第３の実施形態にかかるＨＤＤ１０によって実行される第３リード処理の動作を説明するためのフローチャートを示す。
【００４９】
第３の実施形態において実行される第３リード処理は、第１リード処理に対して、全ての目標セクタからリードしたデータのエラー訂正が完了したこと、又は目標トラック内の全てのセクタに対するリードゲートＲＧが出力されたこと、を待たずに、他のトラックへのシーク処理の準備を開始する点で異なる。以下の説明では、第１リード処理と異なる構成について詳細に説明し、同じ構成については説明を簡略化又は省略する。第３リード処理は、ホスト１００からのリード要求、又はＨＤＤ１０の内部で生じたリード要求に応じて、実行される。第３リード処理は、ＣＰＵ６２の制御に従って、主にはＲＷＣ６１及びＨＤＣ６３が実行する。
【００５０】
目標トラックへのシーク処理により、ヘッド部（リードヘッドＲＨ）が目標トラックに位置決めされる（Ｓ１００）と、ＨＤＣ６３は、ディスク１の回転に従って最初の目標セクタが検出されたことに応じて、この最初の目標セクタに対するリードゲートＲＧをＲＷＣ６１に出力する（Ｓ１０１）。ここでＣＰＵ６２は、目標トラックと異なる他のトラックへのシーク処理を準備する処理を実行するか否かを判定する（Ｓ３００）。この処理は、例えば、他のトラックへのシーク処理のためのパラメータの設定及び計算を実行する処理を含む。シーク処理を準備する処理を実行すると判定されなければ（Ｓ３００のＮｏ）、ＨＤＣ６３は、目標トラック内の全ての目標セクタに対してリードゲートＲＧを出力したか否かを判定する（Ｓ１０２）。全ての目標セクタにリードゲートＲＧを出力したと判定されなければ（Ｓ１０２のＮｏ）、処理は（Ｓ１０１）に戻り、出力したと判定されれば（Ｓ１０２のＹｅｓ）、処理は（Ｓ１０３）に進む。（Ｓ１０３）以降は第１リード処理と同じ処理が実行される。
【００５１】
一方、シーク処理を準備する処理を実行すると判定された場合（Ｓ３００のＹｅｓ）、ＨＤＣ６３は、ＲＷＣ６１から報告されるエラー訂正処理（復号）の結果に基づいて、目標セクタのトラック単位のエラー訂正処理が必要か否かを判定する（Ｓ３０１）。なお、この時点では、ＲＷＣ６１は、目標セクタに対してセクタ単位のエラー訂正処理を実行している。ＲＷＣ６１は、例えば、目標セクタについて、所定時間を経過してもセクタ単位のエラー訂正処理が完了しない場合、又は、セクタ単位のエラー訂正処理に失敗した場合に、トラック単位のエラー訂正処理が必要であることを示す情報をＨＤＣ６３に出力すればよい。トラック単位のエラー訂正処理が必要と判定されれば（Ｓ３０１のＹｅｓ）、処理は（Ｓ１０３）に進む。（Ｓ１０３）以降は第１リード処理と同じ処理が実行されるが、全ての目標セクタに対してリードゲートＲＧを出力していなければ、ＨＤＣ６３が、残りの目標セクタに対してリードゲートＲＧを出力した後、（Ｓ１０３）以降の処理が実行されればよい。トラック単位のエラー訂正処理が必要と判定されなければ（Ｓ３０１のＮｏ）、処理は（Ｓ３０２）に進む。
【００５２】
（Ｓ３０２）において、ＣＰＵ６２は、他のトラックへのシーク処理を準備する処理を実行する。ＨＤＣ６３は、全ての目標セクタに対してリードゲートＲＧを出力したか否かを判定する（Ｓ３０３）。全ての目標セクタにリードゲートＲＧを出力したと判定されなければ（Ｓ３０３のＮｏ）、ＨＤＣ６３は、次の目標セクタに対するリードゲートＲＧをＲＷＣ６１に出力し（Ｓ３０４）、再び、全ての目標セクタに対してリードゲートＲＧを出力したか否かを判定する（Ｓ３０３）。全ての目標セクタにリードゲートＲＧを出力したと判定された場合（Ｓ３０３のＹｅｓ）、処理は終了する。
【００５３】
このように、本第３の実施形態にかかるＨＤＤ１０は、ＣＰＵ６２の制御に従って、主にＲＷＣ６１及びＨＤＣ６３を利用して、第３リード処理を実行する。第３リード処理によれば、目標セクタのうち何れかのセクタに対するリードゲートＲＧを出力している間（Ｓ１０１〜Ｓ１０２）に、他のトラックへのシーク処理を実行することが決定され（Ｓ３００のＹｅｓ）、且つ、ＲＷＣ６１により目標セクタのトラック単位のエラー訂正処理が必要でないと判定された場合（Ｓ３０１のＮｏ）、次のシーク処理を準備する処理が実行され、目標セクタのうち残りの目標セクタに対するリードゲートＲＧが出力され続ける（Ｓ３０３のＮｏ，Ｓ３０４）。この場合、ＨＤＤ１０は、目標セクタのセクタ単位のエラー訂正処理が完了したことを待たずに、他のトラックへのシーク処理に移行する。ディスク１からリードされるユーザデータは、機械的な又は環境的な外乱の影響が少なければ、セクタ単位のエラー訂正処理に成功する可能性が高い。また、ＲＷＣ６１により目標セクタのトラック単位のエラー訂正処理が必要でないと判定されたことにより、それ以降の目標セクタのセクタ単位のエラー訂正処理が完了する（成功する）可能性が高いことが期待される。すなわち、本第３の実施形態にかかる第３リード処理では、セクタ単位のエラー訂正処理が完了する可能性が高いデータについて、目標セクタ以外のセクタに対するリードゲートＲＧを出力することなく、且つ、目標セクタのエラー訂正処理の結果を待つことなく、次の処理（例えば他のトラックへのシーク処理）に移行する。このため、目標セクタのトラック単位のエラー訂正処理を実行する時間を抑制することができる。
【００５４】
ここで、図８を用いて、図７で説明した第３リード処理の動作例を説明する。図８は、本第３の実施形態にかかる第３リード処理の動作例を説明するための図である。図８は、図４とほぼ同じであるため、図４と異なる点について詳細に説明し、同じ点については説明を簡略化又は省略する。
【００５５】
図８（ａ）、（ｂ）は、図４（ａ）、（ｂ）と同じである。この例でも、目標セクタはセクタＳ１〜Ｓ３であり、それ以外のセクタは目標セクタではない。またＨＤＣ６３は、目標セクタにかかるデータはバッファメモリ２３に格納し、目標セクタ以外のセクタにかかるデータはバッファメモリ２３に格納せず破棄する。これ以降では、このようなデータが記録されたトラックに対して第３リード処理が実行された例を、図７に示したフローチャートと比較しながら説明する。
【００５６】
図８（ｃ）に示すように、最初の目標セクタＳ１から、このセクタに後続する複数の目標セクタに対してリードゲートＲＧが順次出力される（図７のＳ１００，Ｓ１０２のＮｏ）。この期間に、他のトラックへのシーク処理を準備する処理を実行することが決定され（Ｓ３００のＹｅｓ）、且つ、ＲＷＣ６１により目標セクタのトラック単位のエラー訂正処理が必要でないと判定される（Ｓ３０１のＮｏ）。この場合、次のシーク処理を準備する処理が実行され、目標セクタのうち残りの目標セクタに対するリードゲートＲＧが出力され続け（Ｓ３０３のＮｏ，Ｓ３０４）、全ての目標セクタＳ１〜Ｓ３に対するリードゲートＲＧが出力されたこと（Ｓ３０３のＹｅｓ）に応じて第３リード処理は終了する。この後、ＣＰＵ６２は、例えば、次の目標セクタを含む他のトラックへのシーク処理を実行することができる。
【００５７】
図８（ｄ）に示すように、全ての目標セクタＳ１〜Ｓ３に対するリードゲートＲＧが出力された後、目標セクタＳ１〜Ｓ３それぞれに対応するユーザデータＵＤ１〜ＵＤ３が、ＲＷＣ６１からＨＤＣ６３に出力される。これにより、ＨＤＣ６３は、全ての目標セクタＳ１〜Ｓ３のエラー訂正処理が完了したことを検出することができる。また図８（ｅ）に示すように、全ての目標セクタＳ１〜Ｓ３それぞれに対応するユーザデータＵＤ１〜ＵＤ３のエラー訂正処理が完了したことをＲＷＣ６１が検出し、検出したことをＲＷＣ６１がＨＤＣ６３に報告してもよい。何れの場合であっても、ＨＤＣ６３は、目標セクタＳ１〜Ｓ３それぞれに対応するユーザデータＵＤ１〜ＵＤ３をバッファメモリ２３に格納する。さらに、ＣＰＵ６２は、ＲＷＣ６１からユーザデータＵＤ１〜ＵＤ３が出力されるのを待たずに、次のトラックへのシーク処理を実行することができる。以上説明したように、本第３の実施形態にかかる第３リード処理によれば、磁気ディスクからのデータのリードを好適に制御することができる。
【００５８】
［第３の実施形態の変形例］
図７，８を用いて説明した第３の実施形態にかかる第３リード処理と、図５，６を用いて説明した第２の実施形態にかかる第２リード処理とが組み合わされてもよい。すなわち、第３リード処理において、初めに目標セクタのデータがリードされるのではなく、リードゲートＲＧの出力条件が満たされたことに応じて、目標トラックに含まれる任意のセクタのデータがリードされてもよい。この場合であっても、セクタ単位のエラー訂正処理が完了する可能性が高いデータについては、目標セクタ以降のセクタに対するリードゲートＲＧを出力することなく、且つ、目標セクタのエラー訂正処理の結果を待つことなく、次の処理（例えば他のトラックへのシーク処理の準備処理、及びシーク処理）に移行することができる。このため、目標セクタのトラック単位のエラー訂正処理を実行する時間を抑制することができる。
【００５９】
以上で複数の実施形態を説明したが、説明した複数の実施形態は一例として提示したものであり、発明の範囲はこの実施形態に限定されない。また、説明した実施形態は、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。さらに、前述した実施形態に開示されている複数の構成要素を適宜に組み合わせることにより、種々の発明を形成することができる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよく、さらに、異なる実施形態に係る構成要素を適宜組み合わせても良い。これらの実施形態やその変形は、発明の範囲や要旨に含まれ、特許請求の範囲に記載された発明と、その均等の範囲に含まれるものである。
【符号の説明】
【００６０】
１…磁気ディスク、２…スライダ、３…アーム、４…ＶＣＭ（ボイスコイルモータ）、５…ＳＰＭ（スピンドルモータ）、１０…磁気ディスク装置（ＨＤＤ）、２１…モータドライバＩＣ、２２…ヘッドアンプＩＣ、２３…バッファメモリ、２４…不揮発性メモリ、６０…コントローラ、６１…リードライトチャネル（ＲＷＣ）、６２…ＣＰＵ、６３…ハードディスクコントローラ（ＨＤＣ）、１００…ホスト装置、ＷＭ…ワークメモリ。
【図１】
2018185877.tif 000003
【図２】
2018185877.tif 000004
【図３】
2018185877.tif 000005
【図４】
2018185877.tif 000006
【図５】
2018185877.tif 000007
【図６】
2018185877.tif 000008
【図７】
2018185877.tif 000009
【図８】
2018185877.tif 000010