(57)【要約】【課題】効率の良いプレスキャンを実行可能な磁気ディスク装置を提供する。【解決手段】ホストＩＦ制御部１０１は、ホスト装置から送信されたコマンドを受信する。ＭＰＵ１０８は、分割領域毎に、ライトコマンドの受信時刻と、ライトコマンド受信回数と、プレスキャン完了アドレスとを示すプレスキャン制御情報の記憶を制御し、当該プレスキャン制御情報を用いて、各分割領域に対してプレスキャンを実行する順序である実行順序を決定する。そして、ＭＰＵ１０８は、決定された実行順序に従って、電源投入直後に、各分割領域に対してプレスキャンを実行する。【選択図】        図１
2011008896.tif 000002
【特許請求の範囲】
【請求項１】
ホスト装置から送信されたコマンドを受信する受信部と、
記録媒体の記録領域が複数に分割された分割領域毎に、当該分割領域の全部又は一部に対してデータの書き込みを指示するコマンドであるライトコマンドの受信時刻及び電源投入後から一定時間内に前記ライトコマンドが受信された受信回数のうち少なくとも一方を示すプレスキャン制御情報を記憶する記憶部と、
前記プレスキャン制御情報を参照して、前記受信時刻及び前記受信回数のうち少なくとも一方を用いて、各前記分割領域に対してプレスキャンを実行する順序である実行順序を決定する決定部と、
決定された前記実行順序に従って、電源投入直後に、各前記分割領域に対してプレスキャンを実行する実行部とを備える
ことを特徴とする磁気ディスク装置。
【請求項２】
前記分割領域全部又は一部に対する前記ライトコマンドのうち、電源投入後に最初に受信されたライトコマンドの受信時刻を、前記コマンドの受信時刻として、当該分割領域のプレスキャン制御情報において更新する更新部を更に備える
ことを特徴とする請求項１に記載の磁気ディスク装置。
【請求項３】
前記決定部は、前記プレスキャン制御情報が前記受信時刻を少なくとも示す場合、前記受信時刻の順となるよう前記実行順序を決定する
ことを特徴とする請求項１又は２に記載の磁気ディスク装置。
【請求項４】
前記決定部は、前記プレスキャン制御情報が前記受信回数を少なくとも示す場合、前記受信回数が多い順となるよう前記実行順序を決定する
ことを特徴とする請求項１乃至３のいずれか一項に記載の磁気ディスク装置。
【請求項５】
前記プレスキャン制御情報は、プレスキャンが完了した領域のアドレスである完了アドレスを更に示し、
前記分割領域に対してプレスキャンが完了したアドレスを前記完了アドレスとして前記プレスキャン制御情報において更新する更新部と、
前記ライトコマンドが受信された場合、当該ライトコマンドによってデータの書き込みが指示された領域に対する前記データの書き込みを制御する制御部と、
前記ライトコマンドが受信された場合、当該ライトコマンドによってデータの書き込みが指示された領域の属する前記分割領域を判断し、判断した前記分割領域の前記プレスキャン制御情報によって示される前記完了アドレスを参照して、前記データの書き込みが指示された前記領域に対してプレスキャンが完了しているか否かを判断する判断部とを更に備え、
前記実行部は、前記データの書き込みが終了した後に、プレスキャンが完了していないと判断された前記領域に対してベリファイ処理を実行し、
前記更新部は、前記ベリファイ処理が完了した領域のアドレスを、前記完了アドレスとして前記プレスキャン制御情報において更新する
ことを特徴とする請求項１乃至４のいずれか一項に記載の磁気ディスク装置。
【請求項６】
前記記録領域は、ブロック単位で構成され、
前記分割領域及び前記領域は、少なくとも１つのブロックを各々含み、
前記実行部は、前記データの書き込みが終了した後に、プレスキャンが完了していないと判断された前記領域に加え当該領域の前にあるブロック及び後続のブロックのうち少なくとも一方に対して前記ベリファイ処理を実行する
ことを特徴とする請求項５に記載の磁気ディスク装置。
【請求項７】
前記記録領域は、ブロック単位で構成され、
前記分割領域及び前記領域は、少なくとも１つのブロックを各々含み、
前記判断部は、前記実行部がプレスキャンを実行中に、データの読み出しを指示するコマンドであるリード系コマンドを前記受信部が受信した場合、前記リード系コマンドが受信された場合、当該リード系コマンドによってデータの読み出しが指示された前記領域の属する前記分割領域を判断し、判断した前記分割領域の前記プレスキャン制御情報によって示される前記完了アドレスを参照して、前記リード系コマンドによって前記データの読み出しが指示された前記領域に対してプレスキャンが完了しているか否かを判断し、
前記制御部は、前記判断部の判断結果が否定的である場合、前記リード系コマンドによって前記データの読み出しが指示された前記領域に加え当該領域の前にあるブロック及び後続のブロックの読み出しを行なうよう制御し、
前記更新部は、前記判断部の判断結果が否定的である場合、前記制御部によって指示された前記データの読み出しが正常に終了した領域のアドレスを前記完了アドレスとして前記プレスキャン制御情報において更新する
ことを特徴とする請求項５に記載の磁気ディスク装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、磁気ディスク装置に関する。
【背景技術】
【０００２】
磁気ディスク装置では、記録密度の高密度化に伴い、記録媒体である磁気ディスクについた傷や磁気ディスクの不良なセクタを早期に検出して復旧するために、磁気ディスク装置自身で磁気ディスクのスキャンを実行することが一般化している（例えば特許文献１〜２参照）。具体的には、磁気ディスク装置は、磁気ディスクの記録領域をリードし、回復不可能なリードエラーが生じたセクタを検出した場合には、ログデータとして記録し、回復可能なリードエラーが生じたセクタを検出した場合には、データの再書き込みや交代処理による不良セクタ回復処理を実行する。このようなスキャンを実行する機能の１つとして、プレスキャン機能がある。プレスキャン機能を実現させるアプリケーションは、磁気ディスク装置の電源投入直後に、上位装置であるホスト装置からのコマンドが未受信であるアイドル状態の時に起動される。その起動後、磁気ディスク装置は、磁気ディスクの記録領域全面のスキャンをリード起動単位（１トラック等)で実行する。尚、このようなスキャンを実行している最中、磁気ディスク装置は、スキャンをまだ実行していない記録領域（未スキャン領域という）に対してホスト装置から、データの書き込みを指示するコマンドを受信した場合、書き込み対象のセクタの不良を早期に検出するために、当該コマンドに従ってデータの書き込みを実行した後に、データが正しく書き込まれたかどうかを検証するベリファイ処理を実行する。このような機能によって、磁気ディスクの信頼性が向上されている。
【０００３】
このように、プレスキャン機能では、磁気ディスクの信頼性を高める反面、未スキャン領域への書き込みがある場合には、ベリファイ処理が介在する。このベリファイ処理には、通常１回転待ち時間を余分に要する。このため、ホスト装置へのコマンドの終了の応答が大きく遅延することになる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−２４２２０７号公報
【特許文献２】特開平０４−３１０６７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来のプレスキャン機能では、スキャンの実施条件や実行順位が考慮されずに、磁気ディスクの先頭の論理ブロックから順にスキャンが実行されていた。その結果、ホスト装置からのコマンドのパターンに合致しないと、未スキャン領域への書き込みが発生する毎に、ベリファイ処理が実行されることになる。このため、ホスト装置への応答の遅延が増大する恐れがあった。また、データの書き込み後のベリファイ処理でも書き込み対象の記録領域に対してのみ実行したり、データの読み出しを指示するホスト装置からのコマンドに従って、読み出しが指示されたセクタのスキャンを実行しているにも関らず、当該セクタのある記録領域がプレスキャンされた記録領域として扱われずに、当該記録領域に対してベリファイ処理を実行したりしていた。このため、プレスキャンの効率が非常に悪いものとなっていた。
【０００６】
本発明は、上記に鑑みてなされたものであって、効率の良いプレスキャンを実行可能な磁気ディスク装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本発明は、磁気ディスク装置であって、ホスト装置から送信されたコマンドを受信する受信部と、記録媒体の記録領域が複数に分割された分割領域毎に、当該分割領域の全部又は一部に対してデータの書き込みを指示するコマンドであるライトコマンドの受信時刻及び電源投入後から一定時間内に前記ライトコマンドが受信された受信回数のうち少なくとも一方を示すプレスキャン制御情報を記憶する記憶部と、前記プレスキャン制御情報を参照して、前記受信時刻及び前記受信回数のうち少なくとも一方を用いて、各前記分割領域に対してプレスキャンを実行する順序である実行順序を決定する決定部と、決定された前記実行順序に従って、電源投入直後に、各前記分割領域に対してプレスキャンを実行する実行部とを備えることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、効率の良いプレスキャンが実行可能になる。
【図面の簡単な説明】
【０００９】
【図１】図１は、一実施の形態にかかる磁気ディスク装置（ＨＤＤ）１００内部の構成を例示する図である。
【図２】図２は、プレスキャンテーブルに記憶されるプレスキャン制御情報のデータ構成を例示する図である。
【図３】図３は、実行順序管理テーブルのデータ構成を例示する図である。
【図４】図４は、プレスキャンの実行順序を決定する実行順序決定処理の手順示すフローチャートである。
【図５】図５は、ＨＤＤ１００が行なうプレスキャン処理の手順を示すフローチャートである。
【図６】図６は、ＨＤＤ１００がプレスキャン実行中にライトコマンドを受信した場合の処理の手順を示すフローチャートである。
【図７】図７は、未スキャン領域であるライト領域に対するライトコマンドを受信した場合にベリファイ処理の対象となる領域を従来と本実施の形態とで比較した図である。
【図８】図８は、リードコマンドが受信された場合の処理の手順を示すフローチャートである。
【図９】図９は、未スキャン領域であるアクセス領域に対するリードコマンドを受信した場合にベリファイ処理を実行する領域を従来と本実施の形態とで比較した図である。
【発明を実施するための形態】
【００１０】
以下に添付図面を参照して、この発明にかかる磁気ディスク装置の実施の形態を詳細に説明する。図１は、本実施の形態にかかる磁気ディスク装置（ＨＤＤ）１００内部の構成を例示する図である。ＨＤＤ１００は、ホストインタフェース（ＩＦ）制御部１０１と、バッファ制御部１０２と、バッファメモリ１０３と、不揮発性メモリ１０４と、フォーマット制御部１０５と、リードチャネル１０６と、ヘッドＩＣ１０７と、ＭＰＵ１０８と、メモリ１０９と、プログラムメモリ（ＦＲＯＭ）１１０と、サーボ制御部１１１と、これらを接続するコモンバス１１６と、ヴォイスコイルモータ(ＶＣＭ)１１２と、ディスクを回転させるスピンドルモータ（ＳＰＭ）１１３と、磁気ヘッド１１４と、磁気ディスク１１５とを有する。
【００１１】
ホストＩＦ制御部１０１は、インタフェースバス１１７を介してホスト装置（不図示）と通信を行い、ホスト装置が発行したコマンドを受信し、当該コマンドに応じて、磁気ディスク１１５への書き込みが指示されたデータ（ライトデータ）をホスト装置から受信したり、磁気ディスク１１５からの読み出し及び送信が指示されたデータ（リードデータ）をホスト装置に送信したりする。本実施の形態においては、コマンドは、磁気ディスク１１５へのデータの書き込みや磁気ディスク１１５からのデータの読み出し及び送信やベリファイ処理を指示するものであり、当該コマンドの実行により、磁気ディスク１１５へのアクセスが生じるものである。データの書き込みを指示するコマンドをライトコマンドといい、データの読み出し（リード）及び送信を指示するコマンドをリードコマンドといい、ベリファイ処理を指示するコマンドをベリファイコマンドという。ライトコマンドには、書き込み対象の領域（ライト領域という）が指定され、リードコマンドには、読み出し対象の領域が指定され、ベリファイコマンドには、ベリファイ処理対象の領域が指定されている。ベリファイ処理では、データの読み出しが行われるため、本実施の形態においては、ベリファイコマンドについても、リードコマンドと同様に、データの読み出しが指示されているコマンドとして取り扱う。但し、リードコマンドでは、読み出されたデータの送信が指示されるが、ベリファイコマンドでは、読み出されたデータの送信は指示されない。また、これらのリードコマンド及びベリファイコマンドをリード系コマンドといい、リード系コマンドにより指定された領域を、説明の便宜上、アクセス領域という場合がある。
【００１２】
プログラムメモリ１１０は、各種データやＣＰＵ１０１が実行する各種プログラムを記憶する不揮発性のメモリである。メモリ１０９は、ワーク変数などの各種データや各種プログラムを一時的に記憶するメモリである。ＭＰＵ１０８は、ＲＯＭ１０８に記憶された各種プログラムをＲＡＭ１０９に読み出してこれを実行して、ＨＤＤ１００全体の制御を行う主コントローラとして機能するプロセッサである。また、ＭＰＵ１０８は、時刻を計時する計時部（不図示）を有し、ホストＩＦ制御部１０１を介してホスト装置から受信したコマンドの受信時刻を計時する。サーボ制御部１１１は、ＭＰＵ１０８の制御の下、ＶＣＭ１１２やＳＰＭ１１３を制御する。ＳＰＭ１１３は、サーボ制御部１１１の制御の下、磁気ディスク１１５を定常回転させる。ＶＣＭ１１２は、サーボ制御部１１１の制御の下、磁気ヘッド１１４を目標位置に移動させる。
【００１３】
バッファ制御部１０２は、バッファ制御部１０２の配下に接続されるバッファメモリ１０３及び不揮発性メモリ１０４における記憶を制御する。バッファメモリ１０３は、バッファ制御部１０２の制御の下、ホスト装置から受信されたコマンドや、ホスト装置から送信されたライトデータや、ホスト装置に送信するリードデータを一時的に記憶する。不揮発性メモリ１０４は、バッファ制御部１０２の制御の下、各種データを記憶する。
【００１４】
フォーマット制御部１０５は、ＨＤＤ１００内での制御に必要な諸信号の生成を行う制御信号生成回路として機能する。ヘッドＩＣ１０７は、磁気ヘッド１１４により読み出された信号（アナログのリード信号）を増幅して、リードチャネル１０６に出力する。また、ヘッドＩＣ１０７は、磁気ヘッド１１４を制御して、リードチャネル１０６から出力された書き込み用の信号を磁気ディスク１１５へ書き込ませる。磁気ヘッド１１４は、磁界を発生させて磁性体を磁化して、書き込み用の信号を磁気ディスク１１５へ書き込んだり、磁界の変化を検知して磁気ディスク１１５に書き込まれているデータを信号として読み出したりする。リードチャネル１０６は、ヘッドＩＣ１０７が増幅したリード信号をＡ／Ｄ（アナログ／ディジタル）変換し符号化してＨＤＣ１１０に出力したり、リード信号をパルス化してフォーマット制御部１０５に出力したりする。また、リードチャネル１０６は、フォーマット制御部１０５からの制御用の各信号に従って符号化したデータを書き込み用の信号に変換して、ヘッドＩＣ１０７に出力する。
【００１５】
磁気ディスク１１５に対するデータの読み書きは、磁気ディスク１１５に同心円状に配置されたトラックに沿って行なわれる。それぞれのトラックに位置するために、それぞれの同心円を貫くように、放射状に複数のサーボ領域が磁気ディスク１１５上に形成されている。サーボ制御部１１１の制御の下、磁気ヘッド１１４はこのサーボ領域の情報を読み出しながら目標のトラックに位置するように移動させられる（オントラック）。本実施の形態においては、磁気ディスク１１５の記録領域を複数の領域（分割領域という）に分割し、分割領域毎に、プレスキャンに関する制御情報（プレスキャン制御情報という）を記憶するプレスキャンテーブルをＨＤＤ１００は有する。プレスキャンテーブルは、不揮発性メモリ１０４及び磁気ディスク１１５のうち少なくも一方の記録領域に記憶される。このプレスキャンテーブルに記憶されるプレスキャン制御情報の一部は、定期的に更新され得る。
【００１６】
図２は、プレスキャンテーブルに記憶されるプレスキャン制御情報のデータ構成を例示する図である。同図に示されるように、プレスキャン制御情報は、分割領域毎に、先頭論理ブロックアドレスと、最終論理ブロックアドレスと、ライトコマンド受信時刻と、ライトコマンド受信回数と、プレスキャン完了論理ブロックアドレスとを含む。先頭論理ブロックアドレスとは、対象の分割領域の先頭の論理ブロックのアドレスである。最終論理ブロックアドレスとは、対象の分割領域の最終の論理ブロックのアドレスである。ライトコマンド受信時刻は、対象の分割領域に属するライト領域に対して電源投入後に最初のライトコマンドを受信した時刻である。ライトコマンド受信回数とは、対象の分割領域に属するライト領域に対して、電源投入時から一定時間内にライトコマンドが受信された回数である。プレスキャン完了論理ブロックアドレスとは、対象の分割領域のうちプレスキャンが完了した先頭又は最終の論理ブロックのアドレスである。
【００１７】
このようなプレスキャンテーブルをＭＰＵ１０８は電源投入直後に読み出し、ライトコマンド受信時刻順に各分割領域に対してプレスキャンを実行するように、プレスキャンの実行順序を決定し、決定した実行順序を示す実行順序管理テーブルを生成する。実行順序管理テーブルは、不揮発性メモリ１０４及び磁気ディスク１１５のうち少なくも一方の記録領域に生成される。図３は、実行順序管理テーブルのデータ構成を例示する図である。同図においては、図２に示されるプレスキャンテーブルのプレスキャン制御情報に対し、プレスキャンを実行する実行順序の順に、各分割領域のポインタが示されている。また、実行対象の分割領域に対してカレントポインタが対応付けられている。そして、磁気ディスク１１５の全ての記録領域、即ち、全ての分割領域に対してプレスキャンの実行が完了すると、その旨を示す実行完了情報が実行順序管理テーブルに記憶される。尚、ポインタとしては、各分割領域の先頭の論理ブロックのアドレス自体を示すものであっても良いし、各分割領域を識別可能な領域ＩＤを付与した場合当該領域ＩＤを示すものであっても良い。
【００１８】
ＭＰＵ１０８は、実行順序管理テーブルによって示される実行順序に従って、電源投入直後に、各分割領域に対してプレスキャンを実行する。対象の分割領域に対するプレスキャンが終了すると、ＭＰＵ１０８は、当該分割領域についてプレスキャンテーブルに記憶されているプレスキャン制御情報のスキャン完了論理ブロックアドレスを更新する。尚、プレスキャンを実行中に、ホストＩＦ制御部１０１を介してホスト装置からコマンドを受信した場合、ＭＰＵ１０８は、実行中のプレスキャンを直ちに中断し、当該コマンドに従った処理を開始する。この時、ＭＰＵ１０８は、プレスキャンを実行中であった分割領域のうちプレスキャンが正常に終了した論理ブロックアドレスを、プレスキャンテーブルに記憶されているプレスキャン制御情報のプレスキャン完了論理ブロックアドレスとして更新する。
【００１９】
このとき、受信されたコマンドがライトコマンドである場合、ＭＰＵ１０８は、ライトコマンドによって指定されたライト領域に対してデータの書き込みを制御した後に、当該ライト領域が、どの分割領域に該当するかを判断する。そして、ＭＰＵ１０８は、判断した分割領域についてプレスキャンテーブルに記憶されているプレスキャン制御情報のスキャン完了論理ブロックアドレスを参照して、プレスキャンがまだ実行されていない領域（未スキャン領域）があれば、当該未スキャン領域に加えライト領域の前にある論理ブロック及び後続の論理ブロックのうち少なくも一方に対しても、ベリファイ処理を実行する。ベリファイ処理では、ＭＰＵ１０８は、これらの領域からデータを読み出して、当該データが正しく書き込まれているかを検証する。そして、ＭＰＵ１０８は、ベリファイ処理が正常に終了した分割領域の論理ブロックアドレスを、プレスキャンテーブルに記憶されているプレスキャン制御情報のプレスキャン完了論理ブロックアドレスとして更新する。ＭＰＵ１０８は、当該分割領域についてプレスキャンテーブルに記憶されているプレスキャン制御情報のライトコマンド受信回数を１インクリメントして更新する。尚、受信されたライトコマンドが、ライト領域の属する分割領域に対して電源投入後に最初に受信されたものである場合、ＭＰＵ１０８は、当該ライトコマンドの受信時刻を、当該分割領域についてプレスキャンテーブルに記憶されているプレスキャン制御情報のライトコマンド受信時刻として更新する。
【００２０】
また、ホスト装置から受信されたコマンドがリードコマンドやベリファイコマンドである場合には、ＭＰＵ１０８は、これらのコマンドで指定されたアクセス領域がどの分割領域に属するかを判断し、判断した分割領域についてプレスキャンテーブルのプレスキャン制御情報のスキャン完了論理ブロックアドレスを参照して、当該分割領域に対してプレスキャンがまだ実行されていない未スキャン領域があれば、当該アクセス領域に加え当該アクセス領域の前にある論理ブロック及び後続の論理ブロックを読み出し対象の領域としてデータの読み出しを行なう。そして、ＭＰＵ１０８は、データの読み出しが正常に終了した分割領域の論理ブロックのアドレスを、プレスキャンテーブルに記憶されているプレスキャン制御情報のプレスキャン完了論理アドレスとして更新する。即ち、当該アクセス領域の前にある論理ブロック及び後続の論理ブロックに対応する分割領域については、データの読み出しを行なうことにより、ベリファイ処理を行ったとみなすことができる。このため、本実施の形態においては、当該分割領域を、プレスキャンが完了した領域として取り扱うことにより、当該分割領域に対する不必要なベリファイ処理の実行を回避する。
【００２１】
尚、ＭＰＵ１０８が、リードコマンドによって指定されたアクセス領域の後続の論理ブロックも含めて磁気ディスク１１５からデータを読み出し、当該データをキャッシュデータとしてバッファメモリ１０３や不揮発性メモリ１０４に記憶することは、一般的である。このように、ＭＰＵ１０８が、指定されたアクセス領域の後続の論理ブロックを先読みした場合、先読みの終了時に正常に読み出しができた領域の属する分割領域についてプレスキャンテーブルのプレスキャン制御情報のスキャン完了論理ブロックアドレスを適宜更新することで、不必要なベリファイ処理の実行を、先読みの機能の利用により効率的に回避することができる。そして、ＭＰＵ１０８は、磁気ディスク１１５の全ての記録領域、即ち、全ての分割領域に対してプレスキャンの実行が完了すると、その旨を示す実行完了情報を実行順序管理テーブルに記憶させる。
【００２２】
次に、本実施の形態にかかるＨＤＤ１００の行う処理の手順について説明する。まず、プレスキャンの実行順序を決定する実行順序決定処理の手順について図４を用いて説明する。ＨＤＤ１００の電源投入時に、ＭＰＵ１０８は、プレスキャンテーブルからプレスキャン制御情報を読み出し（ステップＳ１）、次いで、ＭＰＵ１０８は、プレスキャン制御情報のライトコマンド受信時刻順に各分割領域に対してプレスキャンを実行するように、プレスキャンの実行順序を決定する。そして、ＭＰＵ１０８は決定した実行順序を示す実行順序管理テーブルを生成する（ステップＳ２）。このとき、ＭＰＵ１０８は、実行順序が１番の分割領域のポインタに対してカレントポインタを対応付ける。
【００２３】
次に、ＨＤＤ１００が行なうプレスキャン処理の手順について図５を用いて説明する。ＨＤＤ１００のＭＰＵ１０８は、ホスト装置からコマンドを受信しているか否かを判断し（ステップＳ２０）、当該判断結果が否定的である場合、ＭＰＵ１０８は、プレスキャンテーブルを参照して、磁気ディスク１１５の全ての記録領域についてプレスキャンが完了しているか否かを判断する（ステップＳ２１）。当該判断結果が否定的である場合、ＭＰＵ１０８は、プレスキャンの対象とする分割領域を決定する（ステップＳ２２）。このとき、ＭＰＵ１０８は、実行順序管理テーブルのカレントポインタが対応付けられている分割領域を、プレスキャンの対象として決定する。尚、ＭＰＵ１０８は、ステップＳ２２でプレスキャンの対象として決定した分割領域に属する領域がライト領域として指定されたライトコマンドについて、なんらかの異常の発生により、ライトコマンド受信回数及びライトコマンド受信時刻を更新していない場合には、当該分割領域についてプレスキャンテーブルに記憶されているプレスキャン制御情報のライトコマンド受信回数を１インクリメントして更新する（ステップＳ２３）。また、当該ライトコマンドが当該分割領域に対して電源投入後に最初に受信されたものである場合、ＭＰＵ１０８は、当該ライトコマンドの受信時刻を、当該分割領域についてプレスキャンテーブルに記憶されているプレスキャン制御情報のライトコマンド受信時刻として更新する（ステップＳ２４）。
【００２４】
そして、ＭＰＵ１０８は、ステップＳ２２で決定した分割領域についてスキャンテーブルに記憶されているプレスキャン制御情報のプレスキャン完了論理ブロックアドレスを参照して、当該分割領域のうち、プレスキャンがまだ実行されていない未スキャン領域があるか否かを判断する（ステップＳ２５）。当該判断結果が肯定的である場合、ＭＰＵ１０８は、当該未スキャン領域をプレスキャンの対象として決定し（ステップＳ２６）、当該未スキャン領域に対してプレスキャンを実行する（ステップＳ２７）。その後、ＭＰＵ１０８は、プレスキャンが完了した論理ブロックのアドレスを、当該分割領域についてスキャンテーブルに記憶されているプレスキャン制御情報のプレスキャン完了論理ブロックアドレスとして更新する（ステップＳ２８）。次いで、ＭＰＵ１０８は、全ての分割領域についてプレスキャンが完了したか否かを判断する(ステップＳ２９)。当該判断結果が否定的である場合、ステップＳ３０に進む。ステップＳ２５の判断結果が否定的である場合にも、ステップＳ３０に進む。ステップＳ３０では、ＭＰＵ１０８は、実行順序管理テーブルにおいて、ステップＳ２２で決定した分割領域の次の実行順序の分割領域のポインタに対してカレントポインタを対応付けて、ステップＳ３１に進む。ステップＳ２１，Ｓ２９の判断結果が肯定的である場合、ＭＰＵ１０８は、全ての分割領域に対してプレスキャンが完了した旨を示す実行完了情報を実行順序管理テーブルに記憶させ、ステップＳ３１に進む。
【００２５】
一方、ステップＳ２０の判断結果が肯定的である場合、ＭＰＵ１０８は、ホスト装置から受信したコマンドに従った処理を行い（ステップＳ３２）、その後、ステップＳ３１に進む。ステップＳ３１では、ＭＰＵ１０８は、ステップＳ２０で受信された判断されたコマンドがライトコマンドである場合、当該ライトコマンドによって指定されたライト領域の属する分割領域についてプレスキャンテーブルに記憶されているプレスキャン制御情報のライトコマンド受信回数を１インクリメントして更新する。また、当該ライトコマンドが当該分割領域に対して電源投入後に最初に受信されたものである場合、ＭＰＵ１０８は、当該ライトコマンドの受信時刻を、当該分割領域についてプレスキャンテーブルに記憶されているプレスキャン制御情報のライトコマンド受信時刻として更新する。その後、ＭＰＵ１０８は、ライトコマンドによるデータの書き込みが終了した旨の応答メッセージをホスト装置へ送信する。
【００２６】
次に、ＨＤＤ１００がプレスキャン実行中にライトコマンドを受信した場合の処理の手順について図６を用いて説明する。ＨＤＤ１００のＭＰＵ１０８は、ライトコマンドによって指定されたライト領域へのデータの書き込みを制御する（ステップＳ４０）。この結果、当該データがＨＤＣ１１０によって符号化されリードチャネル１０６によって変換された書き込み用の信号が、磁気ヘッド１１４によって磁気ディスク１１５に書き込まれる。また、ＭＰＵ１０８は、当該ライト領域が、どの分割領域に属するかを判断する(ステップＳ４１)。次いで、ＭＰＵ１０８は、ステップＳ４１で判断した分割領域についてプレスキャンテーブルに記憶されているプレスキャン制御情報のスキャン完了論理ブロックアドレスを参照して、プレスキャンがまだ実行されていない領域（未スキャン領域）があるか否かを判断する。未スキャン領域がある場合（ステップＳ４２：プレスキャン未完了）、ＭＰＵ１０８は、当該未スキャン領域に加えライト領域の前にある論理ブロック及び後続の論理ブロックのうち少なくもと一方をベリファイ処理の対象の領域として決定し（ステップＳ４３）、当該対象の領域に対して、ベリファイ処理を実行する（ステップＳ４４）。
【００２７】
そして、ＭＰＵ１０８は、ベリファイ処理が終了した分割領域についてプレスキャンが正常に終了した論理ブロックアドレスを、プレスキャンテーブルに記憶されているプレスキャン制御情報のプレスキャン完了論理ブロックアドレスとして更新する（ステップＳ４５）。また、ＭＰＵ１０８は、当該分割領域についてプレスキャンテーブルに記憶されているプレスキャン制御情報のライトコマンド受信回数を１インクリメントして更新する。尚、ＭＰＵ１０８は、受信したライトコマンドが当該分割領域に対して電源投入後に最初に受信されたライトコマンドである場合、当該ライトコマンドの受信時刻を、当該分割領域についてプレスキャンテーブルに記憶されているプレスキャン制御情報のライトコマンド受信時刻として更新する。ステップＳ４２の判断の結果、未スキャン領域がない場合（ステップＳ４２：プレスキャン完了）、処理を終了する。
【００２８】
図７は、未スキャン領域であるライト領域に対するライトコマンドを受信した場合にベリファイ処理の対象となる領域を従来と本実施の形態とで比較した図である。ライトコマンドによって指定されたライト領域が、同図の(a)に示されるライト要求セクタに該当する。従来では、同図の(b)に示されるように、ライトコマンドによって当該ライト領域にデータが書き込まれた後、当該ライト領域に対してベリファイ処理が実行されていた。一方、本実施の形態においては、例えば、同図の(c)に示されるように、ライトコマンドによって当該ライト領域にデータが書き込まれた後、当該ライト領域のみならず当該ライト領域の後続の論理ブロックに対しても、ベリファイ処理が実行される。ライト領域の後続の論理ブロックに対しては、更なるライトコマンドによって書き込みが指示される可能性が高い。従って、ライトコマンドが受信された段階で、当該ライトコマンドによって書き込みが指示されたライト領域のみならず次に書き込みが指示されると予測される領域に対しても、ベリファイ処理を予め実行しておくことで、更なるライトコマンドが受信された際に、当該領域に対してベリファイ処理を実行する必要がなくなる。このため、処理時間を短縮することができ、ホスト装置への応答の遅延を抑制することができる。
【００２９】
次に、ＨＤＤ１００がプレスキャン実行中にリードコマンドやベリファイコマンドを受信した場合の処理の詳細な手順について説明する。ここでは、リードコマンドが受信された場合の処理の手順について図８を用いて説明する。ＭＰＵ１０８は、受信されたリードコマンドで指定されたアクセス領域がどの分割領域に属するかを判断する(ステップＳ６０)。そして、ＭＰＵ１０８は、ステップＳ６０で判断した分割領域についてプレスキャンテーブルのプレスキャン制御情報のスキャン完了論理ブロックアドレスを参照して、当該分割領域に対してプレスキャンがまだ実行されていない未スキャン領域があるか否かを判断する（ステップＳ６１）。未スキャン領域がある場合、ＭＰＵ１０８は、リードコマンドによって指定されたアクセス領域に加え当該アクセス領域の前にある論理ブロック及び後続の論理ブロックを読み出し対象の領域とすることにより、読み出し対照の領域を拡張して（ステップＳ６２）、データの読み出しを制御する（ステップＳ６３）。この結果、当該読み出し対象の領域のデータが、磁気ヘッド１１４により信号として読み出され、ヘッドＩＣ１０７によって増幅され、リードチャネル１０６によってＡ／Ｄ変換され符号化される。このとき、ＭＰＵ１０８は、アクセス領域の後続の論理ブロック（先読み領域という）から読み出されたデータをキャッシュデータとしてバッファメモリ１０３や不揮発性メモリ１０４に記憶する。そして、ＭＰＵ１０８は、データの読み出しが正常に終了した分割領域、即ち、ベリファイ処理が正常に終了した分割領域の論理ブロックアドレスを、プレスキャンテーブルに記憶されているプレスキャン制御情報のプレスキャン完了論理アドレスとして更新する（ステップＳ６４）。
【００３０】
一方、ステップＳ６１の判断の結果、未スキャン領域がない場合、ＭＰＵ１０８は、リードコマンドによって指定されたアクセス領域に加え当該アクセスの後続の論理ブロック（先読み領域）を読み出し対象の領域として、データの読み出しを制御する（ステップＳ６５）。このとき、ＭＰＵ１０８は、先読み領域から読み出されたデータをキャッシュデータとしてバッファメモリ１０３や不揮発性メモリ１０４に記憶する。ステップＳ６４又はＳ６５の後、ＭＰＵ１０８は、リードコマンドによるデータの読み出しが終了すると、アクセス領域から読み出されたデータを含む応答メッセージをホスト装置へ送信する。尚、ＨＤＤ１００がベリファイコマンドを受信した場合の処理の手順について、データの読み出しを行なう動作は、リードコマンドを受信した場合と略同様であるためその説明を省略する。但し、ベリファイコマンドの場合には、ＨＤＤ１００は、読み出したデータの送信を行なわない。
【００３１】
図９は、未スキャン領域であるアクセス領域に対するリードコマンドを受信した場合にベリファイ処理を実行する領域を従来と本実施の形態とで比較した図である。リードコマンドによって指定されたアクセス領域が、同図の(a)に示されるリード要求セクタに該当する。従来では、同図の(b)に示されるように、リードコマンドによって指定されたリード領域に加え当該リード領域の後続の論理ブロックが読み出し対象の領域となり、当該読み出し対象の領域からデータが読み出される。先読み領域から読み出されたデータはキャッシュデータとして記憶される。ホスト装置からコマンドが受信されると、データの先読みは中断される。本実施の形態においては、同図の(c)に示されるように、リードコマンドによって指定されたリード領域に加え当該アクセス領域の前のブロック及び後続の論理ブロックが読み出し対象の領域となり、当該読み出し対象の領域からデータが読み出される。このように、アクセス領域が未スキャン領域であれば、当該アクセス領域の前にある論理ブロックに対してもデータの読み出しを行なうことで、ベリファイ処理を実行したとすることができ、この領域をプレスキャンが完了した領域として取り扱うことができる。また、従来と同様に先読みした先読み領域については、当該領域から読み出されたデータがキャッシュデータとして記憶される。但し、ホスト装置からコマンドが受信されると、データの先読みを中断するが、本実施の形態では、データの読み出しが正常に終了した分割領域を、ベリファイ処理が正常に終了した分割領域として取り扱う。即ち、先読み領域についても、データを正常に読み出しすることができれば、ベリファイ処理を改めて実行する必要がないため、この領域をプレスキャンが完了した領域として取り扱うことができる。このため、不必要なベリファイ処理を回避して、処理時間を短縮することができ、ホスト装置への応答の遅延を抑制することができる。
【００３２】
以上のように、磁気ディスク１１５の記録領域を複数の分割領域に分割し、ホスト装置からのライトコマンドを受信した時刻順にプレスキャンを実行するように各分割領域に対する実行順序を決定することで、アクセスの生じる領域を効果的に予測して、ライトコマンドによる書き込みに先行して、プレスキャンを実行することができる。この結果、ホスト装置へのライトコマンドに対する応答の遅延を抑制することができる。
【００３３】
また、ライトコマンドによって指定されたライト領域に未スキャン領域がある場合、未スキャン領域の前後のうち少なくとも一方の論理ブロックにもアクセスが生じると予測される。このため、未スキャン領域に加えその前後のうち少なくとも一方の論理ブロックについてもベリファイ処理を実行することで、ベリファイ処理を効率良く実行することができる。
【００３４】
更に、リードコマンドやベリファイコマンドによって読み出しが指示されたアクセス領域に未スキャン領域がある場合、未スキャン領域の前後の論理ブロックからデータを読み出して、読み出しが正常に終了した領域についてはベリファイ処理が正常に終了した領域として取り扱うことにより、不必要なベリファイ処理を回避することができる。
【００３５】
[変形例]
なお、本発明は前記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、前記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。また、以下に例示するような種々の変形が可能である。
【００３６】
上述した実施の形態において、ＨＤＤ１００で実行される各種プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また当該プログラムを、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Digital Versatile Disk）等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成しても良い。
【００３７】
上述した実施の形態において、ＨＤＤ１００のＭＰＵ１０８は、電源投入時から一定時間内に生じたホスト装置からのライトコマンド受信回数の多い順にプレスキャンを実行するように、プレスキャンの実行順序を決定しても良い。
【符号の説明】
【００３８】
１００  ＨＤＤ
１０１  ホストＩＦ制御部
１０２  バッファ制御部
１０３  バッファメモリ
１０４  不揮発性メモリ
１０５  フォーマット制御部
１０６  リードチャネル
１０７  ヘッドＩＣ
１０８  ＭＰＵ
１０９  メモリ
１１０  プログラムメモリ
１１１  サーボ制御部
１１４  磁気ヘッド
１１５  磁気ディスク
１１６  コモンバス
１１７  インタフェースバス
【図１】
2011008896.tif 000003
【図２】
2011008896.tif 000004
【図３】
2011008896.tif 000005
【図４】
2011008896.tif 000006
【図５】
2011008896.tif 000007
【図６】
2011008896.tif 000008
【図７】
2011008896.tif 000009
【図８】
2011008896.tif 000010
【図９】
2011008896.tif 000011