(57)【要約】      （修正有）【課題】アイドル状態で実行するオフライン媒体検証（ＢＭＳ）処理を効率的に行うことで、コマンド遅延や装置劣化を低減した磁気記憶装置を提供する。【解決手段】ホスト装置によりＨＤＤ２０に格納されているデータの検証を行うパトロール処理が実行される磁気記憶装置１であって、ＨＤＤ２０に履歴情報として複数格納される、ホスト装置からの磁気記憶装置１に対するコマンドにおける実行時間またはアクセスしたアドレス情報を有する個別情報に基づいてパトロール処理に対応する複数のコマンドがあるか否かを判断する検証処理判断部（設定部、抽出部、判断部、追加処理部）と、検証処理判断部によりパトロール処理に対応する複数のコマンドがあると判断された場合に、パトロール処理に対応する複数のコマンドにおける個別情報に基づいてデータの検証を行うＢＭＳ処理の処理条件を設定する条件設定部とを備えた。【選択図】図１
2010224643.tif 000002
【特許請求の範囲】
【請求項１】
外部装置により第１記憶部に格納されているデータの検証を行う第１検証処理が定期的に実行される磁気記憶装置であって、
前記第１記憶部に履歴情報として複数格納される、外部装置からの前記磁気記憶装置に対する動作命令における実行時間またはアクセスしたアドレス情報を有する個別情報に基づいて、前記第１検証処理に対応する複数の動作命令があるか否かを判断する検証処理判断部と、
前記検証処理判断部により前記第１検証処理に対応する複数の動作命令があると判断された場合、前記第１検証処理に対応する複数の動作命令における個別情報に基づいて、前記第１記憶部に格納されているデータの検証を行う第２検証処理の処理条件を設定する処理条件設定部と、
を有する磁気記憶装置。
【請求項２】
請求項１に記載の磁気記憶装置において、
前記検証処理判断部は、
前記第１記憶部に複数格納される動作命令における個別情報に基づいて、複数の動作命令がアクセスした第１記憶部におけるアドレスが連続しているか否かを判断するアドレス判断部と、
前記アドレス判断部により前記複数の動作命令がアクセスした第１記憶部におけるアドレスが連続していると判断された場合、前記複数の動作命令における個別情報に基づいて前記複数の動作命令が所定の時間間隔で実行されているか否かを判断する時間間隔判断部と、
前記時間間隔判断部により前記複数の動作命令が所定の時間間隔で実行されていると判断された場合、前記複数の動作命令が前記第１検証処理であると判断する動作命令判断部と、
を有する磁気記憶装置。
【請求項３】
請求項１または請求項２に記載の磁気記憶装置において、
前記処理条件設定部は、前記第１検証処理に対応する複数の動作命令における個別情報に基づいて、次に実行される前記第１検証処理の実行時間と前記第２検証処理の実行時間とが重複しないよう前記第２検証処理の処理条件を設定する磁気記憶装置。
【請求項４】
請求項１乃至請求項３のいずれかに記載の磁気記憶装置において、
前記処理条件設定部は、前記第１検証処理に対応する複数の動作命令における個別情報に基づいて、次に実行される前記第１検証処理が検証するデータの開始アドレスである第１開始アドレスと、次に実行される前記第２検証処理が検証するデータの開始アドレスである第２開始アドレスとが重複するか否かを判断し、前記第１開始アドレスと前記第２開始アドレスとが重複する場合、重複する前記第２検証処理を無効とし、無効とした第２検証処理の次に実行される第２検証処理において検証するデータの開始アドレスを、その直前に実行された第１検証処理において検証したデータの最終アドレスとする磁気記憶装置。
【請求項５】
請求項１乃至請求項４のいずれかに記載の磁気記憶装置において、
前記第１検証処理および前記第２検証処理は、前記第１記憶部における所定のブロック数におけるブロック範囲を単位としてアクセスを行い、
前記処理条件設定部は、前記第１検証処理に対応する複数の動作命令における個別情報に基づいて、前記第１検証処理に対応する複数の動作命令における各実行時間の間隔である実行時間間隔が所定の間隔より短いか否かを判断し、前記実行時間間隔が所定の間隔より短い場合、前記第２検証処理でアクセスするブロック範囲を前記第１検証処理で検証されるブロック範囲より先行するブロック範囲となるよう設定し、前記実行時間間隔が所定の間隔より長い場合、前記第２検証処理でアクセスするブロック範囲を前記第１検証処理で検証されるブロック範囲と同じとなるよう設定する磁気記憶装置。
【請求項６】
外部装置により第１記憶部に格納されているデータの検証を行う第１検証処理が定期的に実行される磁気記憶装置の処理条件設定方法であって、
前記第１記憶部に履歴情報として複数格納される、外部装置からの前記磁気記憶装置に対する動作命令における実行時間またはアクセスしたアドレス情報を有する個別情報に基づいて、前記第１検証処理に対応する複数の動作命令があるか否かを判断する検証処理判断ステップと、
前記検証処理判断ステップにより前記第１検証処理に対応する複数の動作命令があると判断された場合、前記第１検証処理に対応する複数の動作命令における個別情報に基づいて、前記第１記憶部に格納されているデータの検証を行う第２検証処理の処理条件を設定する処理条件設定ステップと、
を実行する磁気記憶装置の処理条件設定方法。
【請求項７】
外部装置により第１記憶部に格納されているデータの検証を行う第１検証処理が定期的に実行される磁気記憶装置の処理条件設定プログラムであって、
前記第１記憶部に履歴情報として複数格納される、外部装置からの前記磁気記憶装置に対する動作命令における実行時間またはアクセスしたアドレス情報を有する個別情報に基づいて、前記第１検証処理に対応する複数の動作命令があるか否かを判断する検証処理判断ステップと、
前記検証処理判断ステップにより前記第１検証処理に対応する複数の動作命令があると判断された場合、前記第１検証処理に対応する複数の動作命令における個別情報に基づいて、前記第１記憶部に格納されているデータの検証を行う第２検証処理の処理条件を設定する処理条件設定ステップと、
をコンピュータに実行させる磁気記憶装置の処理条件設定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部装置により記憶部に格納されているデータの検証を行う検証処理が定期的に実行される磁気記憶装置、磁気記憶装置の処理条件設定方法および磁気記憶装置の処理条件設定プログラムに関する。
【背景技術】
【０００２】
従来、磁気記憶装置は、ホスト装置から受領した動作命令（以後、コマンドと称する）を履歴情報として記録する機能を有している。記録される内容は、コマンドを受領した時刻、コマンドを実行し完了した時刻、およびホスト装置からコマンドを受領した時のデータ構成である。これらの内容がコマンドを実行した時間の順にＨＤＤ等に格納される。磁気記憶装置は、所定の時間を単位とし、この時間内にホスト装置のコマンドを所有していない時間が規定時間続くアイドル状態において、オフライン媒体検証処理（以後、ＢＭＳ処理：Ｂａｃｋｇｒｏｕｎｄ  Ｍｅｄｉａ  Ｓｃａｎと称する）を実行する。この処理は、ＨＤＤにおける記憶領域の先頭領域から最終領域までに順次、媒体読み出しを実施する所謂メディアスキャンを行う処理である。この処理により、不良セクタの早期発見と事前対策が可能となる。大規模な外部記憶装置を有する計算機システムにおいて、この外部記憶装置の管理と制御を司るホスト装置は、外部記憶装置を構成する磁気記憶装置に対し、定期的にパトロール処理を施す。この処理は、ＨＤＤにおける記憶領域の先頭あるいは途中の領域から順次、媒体読み出しを実施するシーケンシャルＲＥＡＤ処理あるいは、ＨＤＤにおける記憶領域の先頭あるいは途中の領域から順次、データの誤りを検証するシーケンシャルＶＥＲＩＦＹ処理として実施される。この処理は、ホスト装置が外部記憶装置に対して実行するデータの書き込み処理や読み出し処理の合間に計算機システム自身が定期的にコマンドを発行し、実現される。
【０００３】
従来技術として、磁気記憶装置に関する技術が知られている（例えば、特許文献１、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−２８５８０７号公報
【特許文献２】特開平０５−２２４８３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
磁気記憶装置は、ＢＭＳ処理を実行中において、ホスト装置から新たなコマンドを受領した場合、実行中のＢＭＳ処理を即刻終了し、受領したコマンドの実行する処理に移行する。ＢＭＳ処理を実行していない所謂通常処理状態の場合とＢＭＳ処理を実行していた場合とでは、コマンドの実行に移行する時間には差分が生じる。ＢＭＳ処理を実行していた場合においては、ＢＭＳ処理が介在しているため、通常処理よりも早くコマンドの実行に移行すること、および通常処理と同じ時間でコマンドの実行に移行することは困難である。よって、ホスト装置が発行したコマンドに対する応答は、通常処理に比較してＢＭＳ処理を実行していた場合は遅くなる。このため、ＢＭＳ処理の頻度が高いほど、ホスト装置が発行したコマンドに対する応答が長くなり、外部記憶装置としての性能が悪化する問題があった。また、ＨＤＤに対してデータの書き込み処理や読み出し処理が実行されることにより、ＨＤＤを構成する機構部品や記録ディスク媒体、およびヘッドは、その使用頻度が顕著になれば少なからず劣化が生じる。このことから、データの書き込み処理や読み出し処理の実行時間が多いほど、ＨＤＤの装置寿命は短くなる。磁気記憶装置には、ＢＭＳ処理を規定時間内にＨＤＤが格納するデータの全般にわたり完了させる規定が設定されている。そのため、定期的に実行されるパトロール処理とＢＭＳ処理とが重複する問題がある。以上のことから、磁気記憶装置が実施するＢＭＳ処理には効率的な実行が求められる。
【０００６】
本発明は上述した問題点を解決するためになされたものであり、コマンドの履歴情報からパトロール処理におけるコマンドの情報を抽出し、該コマンドの情報に基づいてＢＭＳ処理の処理条件を設定することでＢＭＳ処理を効率的に実行する磁気記憶装置、磁気記憶装置の処理条件設定方法および磁気記憶装置の処理条件設定プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決するため、磁気記憶装置は、外部装置により第１記憶部に格納されているデータの検証を行う第１検証処理が定期的に実行される磁気記憶装置であって、前記第１記憶部に履歴情報として複数格納される、外部装置からの前記磁気記憶装置に対する動作命令における実行時間またはアクセスしたアドレス情報を有する個別情報に基づいて、前記第１検証処理に対応する複数の動作命令があるか否かを判断する検証処理判断部と、前記検証処理判断部により前記第１検証処理に対応する複数の動作命令があると判断された場合、前記第１検証処理に対応する複数の動作命令における個別情報に基づいて、前記第１記憶部に格納されているデータの検証を行う第２検証処理の処理条件を設定する処理条件設定部とを有する。
【０００８】
また、磁気記憶装置の制御方法は、外部装置により第１記憶部に格納されているデータの検証を行う第１検証処理が定期的に実行される磁気記憶装置の処理条件設定方法であって、前記第１記憶部に履歴情報として複数格納される、外部装置からの前記磁気記憶装置に対する動作命令における実行時間またはアクセスしたアドレス情報を有する個別情報に基づいて、前記第１検証処理に対応する複数の動作命令があるか否かを判断する検証処理判断ステップと、前記検証処理判断ステップにより前記第１検証処理に対応する複数の動作命令があると判断された場合、前記第１検証処理に対応する複数の動作命令における個別情報に基づいて、前記第１記憶部に格納されているデータの検証を行う第２検証処理の処理条件を設定する処理条件設定ステップとを実行する。
【０００９】
また、磁気記憶装置の制御プログラムは、外部装置により第１記憶部に格納されているデータの検証を行う第１検証処理が定期的に実行される磁気記憶装置の処理条件設定プログラムであって、前記第１記憶部に履歴情報として複数格納される、外部装置からの前記磁気記憶装置に対する動作命令における実行時間またはアクセスしたアドレス情報を有する個別情報に基づいて、前記第１検証処理に対応する複数の動作命令があるか否かを判断する検証処理判断ステップと、前記検証処理判断ステップにより前記第１検証処理に対応する複数の動作命令があると判断された場合、前記第１検証処理に対応する複数の動作命令における個別情報に基づいて、前記第１記憶部に格納されているデータの検証を行う第２検証処理の処理条件を設定する処理条件設定ステップとをコンピュータに実行させる。
【発明の効果】
【００１０】
開示の磁気記憶装置、磁気記憶装置の処理条件設定方法および磁気記憶装置の処理条件設定プログラムによれば、コマンドの履歴情報からパトロール処理におけるコマンドの情報を抽出し、該コマンドの情報に基づいてＢＭＳ処理の処理条件を設定することでＢＭＳ処理を効率的に実行することができる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態に係る磁気記憶装置の構成を示すブロック図である。
【図２】実施の形態に係る磁気記憶装置の機能ブロックを示す図である。
【図３】コマンドの個別情報を説明するための図である。
【図４】コマンドログを説明するための図である。
【図５】実施の形態に係る磁気記憶装置におけるＢＭＳ設定処理の動作を示すフローチャートである。
【図６】検索テーブルを説明するための図である。
【図７】検索テーブルに対し登録されるＲＥＡＤコマンドの個別情報を示す図である。
【図８】ＲＥＡＤ＃Ｓ０を登録した検索テーブルを示す図である。
【図９】ＲＥＡＤ＃Ｒ０ａを登録した検索テーブルを示す図である。
【図１０】ＲＥＡＤ＃Ｒ１を登録した検索テーブルを示す図である。
【図１１】ＲＥＡＤ＃Ｓ１を登録した検索テーブルを示す図である。
【図１２】ＲＥＡＤ＃Ｒ２を登録した検索テーブルを示す図である。
【図１３】ＲＥＡＤ＃Ｒ０ｂを登録した検索テーブルを示す図である。
【図１４】ＲＥＡＤ＃Ｒ０ｃを登録した検索テーブルを示す図である。
【図１５】ＲＥＡＤ＃Ｓ２を登録した検索テーブルを示す図である。
【図１６】ＲＥＡＤ＃Ｓ３を登録した検索テーブルを示す図である。
【図１７】ＲＥＡＤ＃Ｒ３ａを登録した検索テーブルを示す図である。
【図１８】ＲＥＡＤ＃Ｒ３ｂを登録した検索テーブルを示す図である。
【図１９】実施の形態に係る磁気記憶装置における判断処理の動作を示すフローチャートである。
【図２０】実施の形態に係る磁気記憶装置における個別情報追加処理の動作を示すフローチャートである。
【図２１】実施の形態に係る磁気記憶装置における第１抽出処理の動作を示すフローチャートである。
【図２２】実施の形態に係る磁気記憶装置における第２抽出処理の動作を示すフローチャートである。
【図２３】設定処理により処理条件を設定したＢＭＳ処理を説明するための図である。
【図２４】本発明が適用されるコンピュータシステムを示す図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態について図面を参照しつつ説明する。
【００１３】
実施の形態に係る磁気記憶装置の構成について図１を用いて説明する。図１に示されるように、磁気記憶装置１は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１１と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１２と、ＭＰＵ（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１３と、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）１４と、ＤＩ（Ｄｒｉｖｅ  Ｉｎｔｅｒｆａｃｅ）１５と、ＳＶＣ（Ｓｅｒｖｏ  Ｃｏｎｔｒｏｌｌｅｒ）１６と、ＨＤＣ（Ｈａｒｄ  Ｄｉｓｋ  Ｃｏｎｔｒｏｌｌｅｒ）１７と、ＲＤＣ（Ｒｅａｄ  Ｗｒｉｔｅ  Ｃｈａｎｎｅｌ）１８と、バッファ１９と、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）（第１記憶部）２０とを有する。
【００１４】
ＲＯＭ１１は、磁気記憶装置のファームウェアプログラム（以後、装置制御ＦＷと称する）およびドライブを制御するファームウェアプログラム（以後、ドライブ制御ＦＷと称する）等が格納されている不揮発性の記憶領域である。ＲＡＭ１２は、装置制御ＦＷが動作中に使用する変数データ等が格納される揮発性の記憶領域である。ＭＰＵ１３及びＤＳＰ１４は、ＨＤＣ１７からの指示に従ってＲＤＣ１８及びＳＶＣ１６を制御する。ＤＩ１５は、装置制御ＦＷとドライブ制御ＦＷとの通信用のレジスタを設定する。ＳＶＣ１６は、ＨＤＤ２０のサーボ制御を行う。ＨＤＣ１７は、図示しないインターフェース（例えばＳＣＳＩインターフェース）を介してホスト装置との通信を行い、ホスト装置からの命令を受信し、ＭＰＵ１３へ指示する。ＲＤＣ１８は、ＨＤＤ２０に書き込まれるデータをエンコードし、ＨＤＤ２０から読み出されるデータの信号をデコードするものである。バッファ１９は、データを格納可能なＲＡＭにより構成される記憶領域であり、ＲＤＣ１８を介してＨＤＤ２０から読み出されたデータおよびＨＤＣ１７を介してホスト装置から転送されたＨＤＤ２０に書き込むデータを一時的に格納する。ＨＤＤ２０は、ホスト装置により読み出し／書き込みが行われるデータが格納される不揮発性の記憶領域である。ＤＩ１５、ＳＶＣ１６、ＨＤＣ１７およびＲＤＣ１８にてカスタムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）を構成している。なお、ＭＰＵ１３は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いてもよい。
【００１５】
図２は、実施の形態に係る磁気記憶装置の機能ブロックを示す図である。図２に示されるように、磁気記憶装置１は、設定部（検証処理判断部，テーブル設定部）１０１と、抽出部（検証処理判断部，動作命令抽出部）１０２と、判断部（検証処理判断部，時間間隔判断部，動作命令判断部）１０３と、追加処理部（検証処理判断部，アドレス判断部，登録部，テーブル判断部）１０４と、条件設定部（処理条件設定部）１０５とを有する。設定部１０１は、後述する検索テーブルを設定する。抽出部１０２は、ＨＤＤ２０に格納されるホストからの磁気記憶装置１に対する複数のコマンドの単位時間（所定の時間）における履歴情報の蓄積データであるコマンドログから所定のコマンドを抽出する。単位時間は、２４時間および４８時間等、任意に設定することが可能である。また、前回ＢＭＳ処理（第２検証処理）を実行した時間から現在の時間までを単位時間としてもよい。コマンドログから所定のコマンドを抽出する抽出条件は、機器の使用環境等に応じてインターフェースコマンドにより任意に設定可能である。例えば、データの読み出しを行ったコマンド（以後、ＲＥＡＤコマンドと称する）が抽出対象に設定されている状態において、データの検証を行ったコマンド（以後、ＶＥＲＩＦＹコマンドと称する）を抽出対象にすることが可能である。実施の形態においては、２４時間以内のコマンドログにおけるＲＥＡＤコマンドを抽出対象とする。判断部１０３は、抽出部１０２が抽出したコマンド以外に他のコマンドがあるか否かを判断する。また、判断部１０３は、検索テーブルにパトロール処理（第１検証処理）のコマンドにおける個別情報があるか否かを判断し、その有無の結果をバッファ１９またはＨＤＤ２０に格納する。コマンドの個別情報については後述する。追加処理部１０４は、個別情報追加処理を行う。コマンド追加処理については後述する。上述した設定部１０１、抽出部１０２、判断部１０３および追加処理部１０４により後述する判断処理が行われる。条件設定部１０５は、後述する設定処理を行う。なお、上述した機能ブロックは、ＲＯＭ１１、ＭＰＵ１３等のハードウェア資源とソフトウェアとが協働して実現される。
【００１６】
コマンドログにおけるコマンドの個別情報について図３を用いて説明する。履歴情報として、実行したコマンド個々に作成される個別情報は、全１６バイト（ＢＹＴＥ）にて構成される。先頭ＬＢＡ（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ）は、当該コマンドがアクセスした先頭のブロック番号を示す情報であり、００バイト〜０３バイトで構成される。処理ブロック数は、当該コマンドが処理を行ったブロック数を示す情報であり、０４バイト〜０５バイトで構成される。ＣＤＢオペコードは、インターフェース規約に準じた値が設定され、０６バイトで構成される。例えば、０ｘ０８／０ｘ２８はＲＥＡＤコマンド、０ｘ０Ａ／０ｘ２ＡはＷＲＩＴＥコマンド、０ｘ２ＦはＶＥＲＩＦＹコマンドを示す情報である。ステータスは、インターフェース規約に準じた値が登録され、当該コマンドが正常終了したか否かを示す情報であり、０７バイトで構成される。例えば、０ｘ００は正常終了したことを示し、０ｘ０２はチェックコンディションステータスにてなんらかのエラー終了したことを示す。
【００１７】
ＴＡＧ番号は、当該コマンドの発行元であるホスト装置により定められている番号を示す情報であり、０８バイト〜０９バイトで構成される。センスデータは、当該コマンドがエラー終了した場合に設定されるエラーの詳細情報を示す情報であり、１０バイト〜１１バイトで構成される。受領時間は、当該コマンドをホスト装置から受領した時間を示す情報であり、１２バイト〜１３バイトで構成される。完了時間は、当該コマンドをホスト装置に対し応答完了した時間を示す情報であり、１４バイト〜１５バイトで構成される。この個別情報は、個々のコマンドが完了する毎に、順次コマンドログに追加および登録される。
【００１８】
コマンドログについて図４を用いて説明する。コマンドログは、全１６，８９６バイトにて構成されるデータである。このデータに個別情報が１，０２３個（所謂、１，０２３コマンド）まで登録され、磁気記憶装置１としてこのコマンドログを１８個まで登録可能である。このことから、磁気記憶装置１は、個別情報を１８，４１４個まで登録できる。なお、磁気記憶装置１は、これ以上コマンドを受領した場合、１８個所有しているコマンドログを単位とし、順次古いデータから上書き更新することにより最新のコマンドを個別情報とともに登録する。
【００１９】
ヘッダ識別子＃０〜＃３は、磁気記憶装置１が定義しているデータ群と、これら１８個まで所有しているコマンドログとを区別するための識別データである。ヘッダ識別子＃０〜＃３は、００バイト〜０３バイトの計４バイトで構成される。パラメータ更新回数は、当該コマンドログの更新回数であり、１８個あるコマンドログにて賄いきれない場合において、順次古いデータから上書き更新した場合に１ずつ加算されるカウンタを示す情報であり、０４バイト〜０７バイトで構成される。有効パラメータ長は、当該コマンドログに登録された個別情報の登録数に依存する有効数を示す情報であり、１２バイト〜１５バイトで構成される。累積時間は、磁気記憶装置１が工場から出荷されてから稼働している累積時間を示す情報であり、１６バイト〜１９バイトで構成される。
【００２０】
電源投入時間は、磁気記憶装置１の電源を投入してから磁気記憶装置１が動作している累積時間を示す情報であり、２０バイト〜２３バイトで構成される。登録ポインタは、当該コマンドログに新たに個別情報を登録する際に使用する参照データであり、有効パラメータ長に連動する。登録ポインタは、２６バイト〜２７バイトで構成される。個別情報は、３２〜１６，３８３バイトで構成される。なお、０８バイト〜１１バイト、２４〜２５バイト、２８〜３１バイトおよび１６，３８４〜１６，８９５バイトはＲｅｓｅｒｖｅｄの領域である。磁気記憶装置１が所有する１８個までの履歴情報は、ＨＤＤ２０内のシステム領域に記録される。磁気記憶装置１の起動時において、装置制御ＦＷにより、最近更新したコマンドログをＨＤＤ２０のシステム領域から読み出されるとともにバッファ１９に格納され、コマンドの完了毎に個別情報を追加される。当該コマンドログに対し、所定数(１，０２３個)登録された場合、磁気記憶装置１は、バッファ１９に設定している当該コマンドログ一式をＨＤＤ２０のシステム領域に格納し、順次、コマンドログを更新する。なお、個別情報およびコマンドログの構成は上述した構成に限定するものではなく、後述する判断処理を実行できる個別情報およびコマンドログの構成であればどのような構成であってもよい。
【００２１】
次に、実施の形態に係る磁気記憶装置の動作について説明する。
【００２２】
図５は、実施の形態に係る磁気記憶装置におけるＢＭＳ設定処理の動作を示すフローチャートである。まず、ＢＭＳ設定処理の開始の指示を受けると、設定部１０１、抽出部１０２、判断部１０３および追加処理部１０４が協働して判断処理（Ｓ１，検証処理判断ステップ）を行う。判断処理後、条件設定部１０５は、設定処理（Ｓ２，処理条件設定ステップ）を行い、本フローは終了となる。判断処理は、コマンドログにおけるＲＥＡＤコマンドの個別情報を、検索テーブルに順次登録し、その結果に基づいてパトロール処理があるか否かを判断する処理である。設定処理は、判断処理の結果に基づいて、ＢＭＳ処理の処理条件を設定する処理である。
【００２３】
先ず、判断処理について図を用いて説明する。図６は、検索テーブルを説明するための図である。図７は、検索テーブルに対し登録されるＲＥＡＤコマンドの個別情報を示す図である。図６に示すように、検索テーブルは、縦にｘ１行〜ｘ３行、横にｙ０列〜ｙ７列および登録数で構成されている。検索テーブルに書き込まれている「０ｘ０」は、未書込みの状態であるＮｕｌｌ状態を示しており、検索テーブルを初期化する場合、この０ｘ０が上書き登録される。登録数は、各ｘ１行〜ｘ３行におけるｙ０列〜ｙ７列に登録されている個別情報の総数を示す。この検索テーブルにおいて縦はｘ１行〜ｘ３行の３行で構成され、横はｙ０例〜ｙ７列の８列で構成されているが、これに限定せず何行何列に設定してもよく、この場合、縦のｘ行を増やすにつれ、パトロール処理を抽出する精度は高まる。ここで、図７に示すように、検索テーブルに対し登録するＲＥＡＤコマンドの個別情報が１１個あるとする。この１１個のＲＥＡＤコマンドの個別情報を検索テーブルに登録する方法を説明する。
【００２４】
図７に示されるコマンドログ登録順序は、検索テーブルに対し登録されるＲＥＡＤコマンドにおける登録の順番を示す値である。このコマンドログ登録順序において＃０１が最も古いコマンドを示し、＃１１が最も新しいコマンドを示す。検索テーブルには時間の古い順に＃０１から登録される。図７に示される個別情報におけるＲＥＡＤ＃Ｓ０〜＃Ｓ３は、定期的にホストが発行しているシーケンシャルＲＥＡＤ処理のコマンドにおける個別情報を示す。実施の形態においては、このＲＥＡＤ＃Ｓ０〜＃Ｓ３がパトロール処理を示す。ＲＥＡＤ＃Ｒ０ａ〜＃Ｒ０ｃは、不定期にホスト装置が発行したシーケンシャルＲＥＡＤ処理のコマンドにおける個別情報を示す。ＲＥＡＤ＃Ｒ１〜＃Ｒ２は、上記のＲＥＡＤコマンドに対し重複しないランダムアクセスのＲＥＡＤコマンドにおける個別情報を示す。ＲＥＡＤ＃Ｒ３ａ〜＃Ｒ３ｂは、不定期にホスト装置が発行しているＲＥＡＤ＃Ｒ０ａ〜＃Ｒ０ｃとは異なるブロック範囲へのシーケンシャルＲＥＡＤ処理のコマンドにおける個別情報を示す。ブロック範囲とは、ＨＤＤ２０における所定のブロック数における範囲であり、パトロール処理およびＢＭＳ処理はブロック範囲を単位としアクセスを行う。ＢＭＳ処理におけるブロック範囲は任意に設定することが可能である。
【００２５】
次に、検索テーブルに対しＲＥＡＤコマンドが登録される動作を、図８〜１８を用いて説明する。まず、コマンドログ登録順序における＃０１であるＲＥＡＤ＃Ｓ０が検索テーブルに対し登録される登録対象となる。ＲＥＡＤ＃Ｓ０は、各ｘ行の全てが登録数０ｘ０であるため、ｘ１行が優先され、図８に示すように（ｘ１，ｙ０）に登録される。この登録とともに、ｘ１行における登録数が１加算され、０ｘ１となる。次の登録対象となる個別情報は、各ｘ行の最後に登録された個別情報に対し、シーケンシャルコマンドの個別情報であるか否かが判断される。この判断が各登録対象となる個別情報に対し順次行われる。シーケンシャルコマンドとは、登録済みである個別情報のコマンド（以後、登録済コマンドと称する）がアクセスしたアドレスと登録対象である個別情報のコマンド（以後、登録対象コマンドと称する）がアクセスしたアドレスとが連続しているコマンドを示す。このコマンドは、所謂、登録済コマンドにおける最終ＬＢＡと登録対象コマンドにおける開始ＬＢＡとが連続したコマンドである。従って、この判断は、登録済コマンドにおける最終ＬＢＡ＋１が登録対象のコマンドの開始ＬＢＡであるか否かを判断基準とする。最終ＬＢＡとは、先頭ＬＢＡと処理ブロック数との和を示す。
【００２６】
ここでは、ＲＥＡＤ＃Ｒ０ａが次の登録対象となり、ＲＥＡＤ＃Ｓ０におけるシーケンシャルコマンドであるか否かが判断される。ＲＥＡＤ＃Ｒ０ａは、ＲＥＡＤ＃Ｓ０におけるシーケンシャルコマンドではないため、図９に示されるように、次に登録数が０ｘ０のｘ行であるｘ２行における（ｘ２，ｙ０）に登録される。この登録とともに、ｘ２行における登録数が１加算され、０ｘ１となる。
【００２７】
次に、ＲＥＡＤ＃Ｒ１が登録対象となる。ＲＥＡＤ＃Ｒ１は、ＲＥＡＤ＃Ｓ０およびＲＥＡＤ＃Ｒ０ａにおけるシーケンシャルコマンドではないため、図１０に示されるように、次に登録数が０ｘ０のｘ行であるｘ３行における（ｘ３，ｙ０）に登録される。この登録とともに、ｘ３行における登録数が１加算され、０ｘ１となる。
【００２８】
次に、ＲＥＡＤ＃Ｓ１が登録対象となる。ＲＥＡＤ＃Ｓ１はＲＥＡＤ＃Ｓ０におけるシーケンシャルコマンドであるため、図１１に示されるように、ｘ１行における（ｘ１，ｙ１）に登録される。この登録とともに、ｘ１行における登録数が１加算され、０ｘ２となる。
【００２９】
次に、ＲＥＡＤ＃Ｒ２が登録対象となる。ＲＥＡＤ＃Ｒ２は、ＲＥＡＤ＃Ｓ１、ＲＥＡＤ＃Ｒ０ａおよびＲＥＡＤ＃Ｒ１におけるシーケンシャルコマンドではないため、図１２に示されるように、各ｘ行の登録数において最小値且つ登録済のコマンドにおける時間が最も古い個別情報があるｘ行であるｘ２行の先頭（ｘ２，ｙ０）に上書き登録される。この登録においてｘ２行のｙ１列〜ｙ７列に０ｘ０が書き込まれ、内容が初期化される。
【００３０】
次に、ＲＥＡＤ＃Ｒ０ｂが登録対象となる。ＲＥＡＤ＃Ｒ０ｂは、ＲＥＡＤ＃Ｓ１、ＲＥＡＤ＃Ｒ２およびＲＥＡＤ＃Ｒ１におけるシーケンシャルコマンドではないため、図１３に示されるように、ｘ３行の先頭（ｘ３，ｙ０）に上書き登録される。この登録においてｘ３行のｙ１列〜ｙ７列に０ｘ０が書き込まれ、内容が初期化される。
【００３１】
次に、ＲＥＡＤ＃Ｒ０ｃが登録対象となる。ＲＥＡＤ＃Ｒ０ｃは、ＲＥＡＤ＃Ｒ０ｂにおけるシーケンシャルコマンドであるため、図１４に示されるように、ｘ３行における（ｘ３，ｙ１）に登録される。この登録とともに、ｘ３行における登録数が１加算され、０ｘ２となる。
【００３２】
次に、ＲＥＡＤ＃Ｓ２が登録対象となる。ＲＥＡＤ＃Ｓ２は、ＲＥＡＤ＃Ｓ１におけるシーケンシャルコマンドであるため、図１５に示されるように、ｘ１行における（ｘ１，ｙ２）に登録される。この登録とともに、ｘ１行における登録数が１加算され、０ｘ３となる。
【００３３】
次に、ＲＥＡＤ＃Ｓ３が登録対象となる。ＲＥＡＤ＃Ｓ３は、ＲＥＡＤ＃Ｓ２におけるシーケンシャルコマンドであるため、図１６に示されるように、ｘ１行における（ｘ１，ｙ３）に登録される。この登録とともに、ｘ１行における登録数が１加算され、０ｘ４となる。
【００３４】
次に、ＲＥＡＤ＃Ｒ３ａが登録対象となる。ＲＥＡＤ＃Ｒ３ａは、ＲＥＡＤ＃Ｓ３、ＲＥＡＤ＃Ｒ２およびＲＥＡＤ＃Ｒ０ｃにおけるシーケンシャルコマンドではないため、図１７に示されるように、ｘ２行の先頭（ｘ２，ｙ０）に上書き登録される。この登録においてｘ２行のｙ１列〜ｙ７列に０ｘ０が書き込まれ、内容が初期化される。
【００３５】
次に、ＲＥＡＤ＃Ｒ３ｂが登録対象となる。ＲＥＡＤ＃Ｒ３ｂは、ＲＥＡＤ＃Ｒ３ａにおけるシーケンシャルコマンドであるため、図１８に示されるように、ｘ２行における（ｘ２，ｙ１）に登録される。この登録とともに、ｘ２行における登録数が１加算され、０ｘ２となる。
【００３６】
このように、ＲＥＡＤコマンドの個別情報を検索テーブルに登録させることにより、図１８のような検索テーブルが完成する。この検索テーブルに基づいてパトロール処理があるか否かが判断される。各ｘ行における登録数が着目され、各登録数が０ｘ１以下の場合、ホスト装置からのパトロール処理はないとものと判断される。一方、各ｘ行に登録数が０ｘ３以上の行がある場合、登録された各個別情報における完了時間の差分が算出され、定期的に発行されたコマンドか否かが判断される。実施の形態においては、登録数が０ｘ２の行は完了時間の差分が１つのみであるため考慮されない。なお、登録数が０ｘ３以上の行がない場合が考えられるため、登録数０ｘ２の行をパトロール処理の判断に含むよう設定してもよい。以上の条件により、実施の形態においては、ｘ１行が着目され、ＲＥＡＤ＃Ｓ０〜＃Ｓ３における完了時間の差分が算出される。実施の形態においてはＲＥＡＤ＃Ｓ０〜＃Ｓ３は、定期的にホストが発行しているシーケンシャルＲＥＡＤ処理のコマンドを示す個別情報であるため、完了時間の差分が同等であり、パトロール処理と判断される。
【００３７】
次に、判断処理についてフローチャートを用いて説明する。
【００３８】
図１９は、実施の形態に係る磁気記憶装置における判断処理の動作を示すフローチャートである。まず、設定部１０１は、検索テーブルを初期化する（Ｓ１０１，テーブル設定ステップ）。ここで、設定部１０１は、検索テーブルを新たに作成してもよい。検索テーブル初期化後、抽出部１０２は、単位時間におけるコマンドログから最も古いＲＥＡＤコマンドを抽出し、このＲＥＡＤコマンドの個別情報を検索テーブルに対し登録する登録対象とする（Ｓ１０２）。コマンド抽出後、判断部１０３は、抽出したコマンド以外に抽出すべきコマンドがあるか否かを判断する（Ｓ１０３）。抽出すべきコマンドがない場合（Ｓ１０３，ＮＯ）、判断部１０３はパトロール処理があったか否かを判断する（Ｓ１０４，時間間隔判断ステップ）。この判断は、検索テーブルにおける各ｘ行において、登録数が０ｘ１以上であり且つ所定の時間間隔でコマンドが発行されているか否かを判断基準とする。この所定の時間間隔は、例えば定期的な時間間隔である。定期的な時間間隔は適宜設定可能であり、外部の入力装置等により設定することができる。パトロール処理がなかった場合（Ｓ１０４，ＮＯ）、パトロール処理をなしと設定し（Ｓ１０５）、ステップＳ２の設定処理が行われる。この設定は、バッファ１９またはＨＤＤ２０に格納されるようにしてもよい。
【００３９】
一方、ステップＳ１０３において、抽出すべきコマンドがある場合（Ｓ１０３，ＹＥＳ）、追加処理部１０４は、個別情報追加処理を行い（Ｓ１０６）、抽出部１０２は次のコマンドを抽出し（Ｓ１０７）、再度ステップＳ１０３において次に抽出すべきコマンドがあるか否かの判断が行われる。コマンド追加処理については後述する。ステップＳ１０４において、パトロール処理があった場合（Ｓ１０４，ＹＥＳ）、パトロール処理をありと設定し（Ｓ１０８，動作命令判断ステップ）、ステップＳ２の設定処理が行われる。なお、パトロール処理であると判断された複数のコマンドを有するｘ行に対し、この情報を付加するよう設定してもよい。また、この設定は、バッファ１９またはＨＤＤ２０に格納されるようにしてもよい。
【００４０】
次に、個別情報追加処理についてフローチャートを用いて説明する。
【００４１】
図２０は、実施の形態に係る磁気記憶装置における個別情報追加処理の動作を示すフローチャートである。まず、追加処理部１０４は、検索テーブルにおけるｘ１行を入力対象に設定する（Ｓ２０１）。設定後、追加処理部１０４は、検索テーブルが未登録状態か否かを判断する（Ｓ２０２）。検索テーブルが未登録状態である場合（Ｓ２０２，ＹＥＳ）、追加処理部１０４は、当該個別情報を（ｘ０，ｙ０）へ登録するとともに当該ｘ行の登録数に１を加算し（Ｓ２０３，登録ステップ）、ステップＳ１０７における次のコマンドの抽出が行われる。
【００４２】
一方、ステップＳ２０２において、検索テーブルが未登録状態でない場合（Ｓ２０２，ＮＯ）、追加処理部１０４は、当該個別情報が当該ｘ行の最後に登録されている個別情報におけるシーケンシャルコマンドの個別情報であるか否かを判断する（Ｓ２０４，アドレス判断ステップ，テーブル判断ステップ）。当該個別情報が、登録されている個別情報におけるシーケンシャルコマンドの個別情報である場合（Ｓ２０４，ＹＥＳ）、追加処理部１０４は、当該ｘ行へ当該個別情報を登録可能か否かを判断する（Ｓ２０５）。この判断は、当該ｘ行の登録数が検索テーブルにおけるｘ行あたりの登録可能数（本実施の形態においては８個）と同様であるか否かを判断基準とする。当該ｘ行へ当該個別情報を登録可能な場合（Ｓ２０５，ＹＥＳ）、追加処理部１０４は、当該個別情報を当該ｘ行における登録済の個別情報における次のｙ列に登録するとともに当該ｘ行の登録数に１を加算し（Ｓ２０６，登録ステップ）、ステップＳ１０７における次のコマンドの抽出が行われる。ステップＳ２０５において、当該ｘ行へ当該個別情報を登録不可能な場合（Ｓ２０５，ＮＯ）、追加処理部１０４は、当該ｘ行の登録数を０ｘ０に設定し（Ｓ２０７）、ステップＳ２０６の個別情報登録が行われ、ステップＳ１０７における次のコマンドの抽出が行われる。
【００４３】
ステップＳ２０４において、当該個別情報が、登録されている個別情報におけるシーケンシャルコマンドの個別情報でない場合（Ｓ２０４，ＮＯ）、追加処理部１０４は、当該個別情報において、入力対象となっていないｘ行があるか否かを判断する（Ｓ２０８）。入力対象となっていないｘ行がない場合（Ｓ２０８，ＮＯ）、追加処理部１０４は、第１抽出処理を行う（Ｓ２０９）。第１抽出処理後、追加処理部１０４は、第２抽出処理を行い（Ｓ２１０）、ステップＳ１０７における次のコマンドの抽出が行われる。第１抽出処理および第２抽出処理については後述する。入力対象となっていないｘ行がある場合（Ｓ２０８，ＹＥＳ）、追加処理部１０４は、当該ｘ行に１を加算したｘ（ｎ+１）行を入力対象に設定し（Ｓ２１１）、再度ステップＳ２０２における検索テーブルが未登録状態か否かの判断が行われ、以下、同じ処理を繰り返す。なお、ステップＳ２１１において、当該ｘ行に１を加算したｘ行を入力対象としたが、これに限定するものではなく、入力対象となっていない行を入力対象とする手法であればよい。
【００４４】
次に、第１抽出処理についてフローチャートを用いて説明する。
【００４５】
図２１は、実施の形態に係る磁気記憶装置における第１抽出処理の動作を示すフローチャートである。まず、追加処理部１０４は、ｘ１行の登録数がｘ２行の登録数以上であるか否かを判断する（Ｓ３０１）。ｘ１行の登録数がｘ２行の登録数より少ない場合（Ｓ３０１，ＮＯ）、追加処理部１０４は、ｘ１行の登録数を最小登録数（以後、ｍｉｎを称する）として設定する（Ｓ３０２）。設定後、追加処理部１０４は、ｍｉｎの値がｘ３行の登録数以上であるか否かを判断する（Ｓ３０３）。ｍｉｎの値がｘ３行の登録数以上である場合（Ｓ３０３，ＮＯ）、追加処理部１０４は、ｘ３行の登録数をｍｉｎとして設定する（Ｓ３０４）。
【００４６】
設定後、追加処理部１０４は、ｍｉｎと当該ｘ行の登録数が同じであるか否かを判断する（Ｓ３０５）。ｍｉｎと当該ｘ行の登録数が同じである場合（Ｓ３０５，ＹＥＳ）、追加処理部１０４は、ｍｉｎの値とｍｉｎの個数をカウントするＬｉｎｅｃｏｕｎｔｅｒ（以後、カウンタ値と称する）を更新し、ｍｉｎのｘ行において最後に登録された個別情報からＲＥＡＤコマンドの完了時間をｅｎｄｔｉｍｅ（以後、格納時間と称する）としてバッファ１９またはＨＤＤ２０に格納する（Ｓ３０６）。カウンタ値におけるｍｉｎの個数は、０ｘ０でカウントされ、ｍｉｎが１個の場合は０ｘ１、２個の場合は０ｘ２となる。格納後、追加処理部１０４は、ｍｉｎと登録数を比較していないｘ行があるか否かを判断する（Ｓ３０７）。ｍｉｎと登録数を比較していないｘ行がない場合（Ｓ３０７，ＮＯ）、ステップＳ２１０の第２抽出処理が行われる。
【００４７】
一方、ステップＳ３０１において、ｘ１行の登録数がｘ２行の登録数以上である場合（Ｓ３０１，ＹＥＳ）、追加処理部１０４は、ｘ２行の登録数をｍｉｎとして設定し（Ｓ３０８）、ステップＳ３０３のｍｉｎの値がｘ３行の登録数以上であるか否かが判断される。ステップＳ３０３において、ｍｉｎの値がｘ３行の登録数より少ない場合（Ｓ３０３，ＮＯ）、ステップＳ３０５のｍｉｎと当該ｘ行の登録数が同じであるか否かの判断が行われる。ステップＳ３０５において、ｍｉｎと当該ｘ行の登録数が同じでない場合（Ｓ３０５，ＮＯ）、ステップＳ３０７のｍｉｎと登録数を比較していないｘ行があるか否かの判断が行われる。ステップＳ３０７において、ｍｉｎと登録数との比較判断をしていないｘ行がある場合（Ｓ３０７，ＹＥＳ）、追加処理部１０４は、当該ｘ行に１を差し引いたｘ（ｎ-１）行を入力対象に設定し（Ｓ３０９）、再度ステップＳ３０５のｍｉｎと当該ｘ行の登録数が同じであるか否かの判断が行われる。なお、ステップＳ３０９において、当該ｘ行に１を差し引いたｘ行を入力対象としたが、これに限定するものではなく、入力対象となっていない行を入力対象とする手法であればよい。
【００４８】
次に、第２抽出処理についてフローチャートを用いて説明する。
【００４９】
図２２は、実施の形態に係る磁気記憶装置における第２抽出処理の動作を示すフローチャートである。まず、追加処理部１０４は、カウンタ値に基づいて、ｍｉｎのｘ行が１行のみであるか否かを判断する（Ｓ４０１）。ｍｉｎのｘ行が１行のみでない場合（Ｓ４０１，ＮＯ）、追加処理部１０４は、ｘ１行が「登録数＝カウンタ値」且つ「完了時間＞格納時間」を満足するか否かを判断する。すなわち、追加処理部１０４は、ｘ１行の登録数がカウンタ値におけるｍｉｎと同じであり且つｘ１行において最後に登録された個別情報におけるＲＥＡＤコマンドの完了時間が格納時間より長いか否かを判断する（Ｓ４０２）。
【００５０】
ｘ１行が「登録数＝カウンタ値」且つ「完了時間＞格納時間」を満足する場合（Ｓ４０２，ＹＥＳ）、追加処理部１０４は、ｘ２行が「登録数＝カウンタ値」且つ「完了時間＞格納時間」を満足するか否かを判断する（Ｓ４０３）。すなわち、追加処理部１０４は、ｘ２行の登録数がカウンタ値におけるｍｉｎと同じであり且つｘ２行において最後に登録された個別情報のＲＥＡＤコマンドの完了時間が格納時間より長いか否かを判断する。ｘ２行が「登録数＝カウンタ値」且つ「完了時間＞格納時間」を満足する場合（Ｓ４０３，ＹＥＳ）、追加処理部１０４は、入力対象をｘ３行に設定する（Ｓ４０４）。設定後、追加処理部１０４は、当該個別情報を当該ｘ行における先頭のｙ０列へ登録するとともに他のｙ１列〜ｙ７列に対し０ｘ０を書き込み、当該ｘ行の登録数を０ｘ１とし（Ｓ４０５，登録ステップ）、ステップＳ１０７における次のコマンドの抽出が行われる。
【００５１】
一方、ステップＳ４０１において、ｍｉｎのｘ行が１行である場合（Ｓ４０１，ＹＥＳ）、追加処理部１０４は、入力対象をｍｉｎのｘ行に設定し（Ｓ４０６）、ステップＳ４０５のコマンド登録が行われる。ステップＳ４０２において、ｘ１行が「登録数＝カウンタ値」且つ「完了時間＞格納時間」を満足しない場合（Ｓ４０２，ＮＯ）、追加処理部１０４は、入力対象をｘ１行に設定し（Ｓ４０７）、ステップＳ４０５の個別情報登録が行われる。また、ステップＳ４０３において、ｘ２行が「登録数＝カウンタ値」且つ「完了時間＞格納時間」を満足しない場合（Ｓ４０３，ＮＯ）、追加処理部１０４は、入力対象をｘ２行に設定し（Ｓ４０８）、ステップＳ４０５における個別情報登録が行われる。
【００５２】
次に、設定処理について説明する。
【００５３】
判断処理後、条件設定部１０５は、パトロール処理と判断された各個別情報における受領時間に基づいて、パトロール処理が発行された時間の間隔である発行時間間隔を抽出し、この発行時間間隔と次に実行されるＢＭＳ処理の実行時間間隔とを比較する。次に実行されるパトロール処理とＢＭＳ処理とが重複する場合、重複するＢＭＳ処理を無効とする。ここで、パトロール処理のコマンドが終了した後に、所定のインターバルをおき、ＢＭＳを実行するようにＢＭＳ処理の処理条件を設定してもよい。図２３は、設定処理により処理条件を設定したＢＭＳ処理を説明するための図である。図２３に示される３はパトロール処理を示し、４はＢＭＳ処理を示す。また、５は無効としたＢＭＳ処理を示す。図２３に示される矢印は時間の経過を示す。図２３に示されるように、条件設定部１０５は、同時刻においてパトロール処理３と重複するＢＭＳ処理を無効とするようＢＭＳ処理の処理条件を設定する。この設定により、パトロール処理とＢＭＳ処理とが重複することを防ぐことができる。また、パトロール処理のコマンドが遅延することなくホスト装置へ応答できる。
【００５４】
実施の形態における設定処理は、パトロール処理とＢＭＳ処理とが重複しないよう設定を行ったが、パトロール処理の開始ＬＢＡ（第１開始アドレス）とＢＭＳ処理の開始ＬＢＡ（第２開始アドレス）とが重複しないよう設定してもよい。この場合、条件設定部１０５は、パトロール処理と判断された各個別情報における受領時間に基づいて、パトロール処理の発行時間間隔を抽出する。次に条件設定部１０５は、パトロール処理と判断された各個別情報において最後に検索テーブルに登録されている個別情報における最終ＬＢＡから、次に発行されるパトロール処理の開始ＬＢＡを判断する。次に条件設定部１０５は、この開始ＬＢＡと次に実行するＢＭＳ処理の開始ＬＢＡとを比較する。
【００５５】
次に実行されるパトロール処理における開始ＬＢＡとＢＭＳ処理における開始ＬＢＡとが重複する場合、条件設定部１０５は、次に実行するＢＭＳ処理を無効とし、その後に実行するＢＭＳ処理において、その直前に実行されたパトロール処理の最終ＬＢＡからＢＭＳ処理を実行するよう設定する。なお、ＢＭＳ処理は、パトロール処理の最終ＬＢＡに１を加算したＬＢＡを開始ＬＢＡとしてもよい。ここで、パトロール処理の発行時間間隔とＢＭＳ処理の実行時間間隔により、このＢＭＳ処理を無効とする頻度が変わる。このことから、パトロール処理の発行時間間隔が短ければＢＭＳ処理を無効とする頻度が増え、パトロール処理の発行時間間隔が長ければＢＭＳ処理を無効とする頻度が減り、パトロール処理よりもＢＭＳ処理の進捗が上がることになる。
【００５６】
また、実施の形態における設定処理において、パトロール処理がアクセスするブロック範囲をＢＭＳ処理に組み込むようＢＭＳ処理の処理条件を設定してもよい。この場合、条件設定部１０５は、パトロール処理と判断された各個別情報における受領時間に基づいてパトロール処理の発行時間間隔を抽出する。次に条件設定部１０５は、パトロール処理と判断された各個別情報において最後に検索テーブルに登録されている個別情報における最終ＬＢＡから、次に発行されるパトロール処理の開始アドレスを判断する。
【００５７】
パトロール処理の発行時間間隔が所定の間隔より短い場合、条件設定部１０５は、ＢＭＳ処理においてアクセスを開始するアドレスを、次に実行されるパトロール処理がアクセスするブロック範囲より先行するブロック範囲に設定する。なお、所定の間隔は適宜であり、外部の入力装置等により任意に設定可能とする。一方、パトロール処理の発行時間間隔が所定の間隔より長い場合、条件設定部１０５は、次に実行するＢＭＳ処理におけるブロック範囲を、次に実行されるパトロール処理におけるブロック範囲と同じとなるよう設定する。この設定に加え、条件設定部１０５は、パトロール処理とブロック範囲が重複するＢＭＳ処理が無効となるよう設定する。次のＢＭＳ処理が実行された場合、ＢＭＳ処理におけるブロック範囲とパトロール処理におけるブロック範囲との重複が多くなるが、ブロック範囲が重複した場合には、ＢＭＳ処理は無効と設定するため、ＢＭＳ処理の頻度を減少させることができる。
【００５８】
実施の形態によれば、コマンドログから所定のコマンドを抽出し、該コマンドにおける個別情報に基づいて、パトロール処理の個別情報およびコマンドを判断することにより、ＢＭＳ処理の処理条件を設定することが可能となる。ＢＭＳ処理の設定が可能となるため、不必要なＢＭＳ処理を抑止することができ、ＢＭＳ処理を効率的に実行できる。また、パトロール処理とＢＭＳ処理とを連携させることにより、ＢＭＳ処理を通常のＢＭＳ処理より短時間で終了させることが可能となる。ＢＭＳ処理を効率的に実行することにより、延いては、ＨＤＤ２０に対しアクセスする時間の短縮に繋がり、ＨＤＤを構成する機構部品、記録ディスク媒体およびヘッドの使用時間を短縮できるため、磁気記憶装置１の劣化を抑制できる。
【００５９】
本発明は、その要旨または主要な特徴から逸脱することなく、他の様々な形で実施することができる。そのため、前述の実施の形態は、あらゆる点で単なる例示に過ぎず、限定的に解釈してはならない。本発明の範囲は、特許請求の範囲によって示すものであって、明細書本文には、何ら拘束されない。更に、特許請求の範囲の均等範囲に属する全ての変形、様々な改良、代替および改質は、全て本発明の範囲内のものである。
【００６０】
本発明は以下に示すようなコンピュータシステムにおいて適用可能である。図２４は、本発明が適用されるコンピュータシステムを示す図である。図２４に示すコンピュータシステム９２０は、ＣＰＵやディスクドライブ等を内蔵した本体部９０１、本体部９０１からの指示により画像を表示するディスプレイ９０２、コンピュータシステム９２０に種々の情報を入力するためのキーボード９０３、ディスプレイ９０２の表示画面９０２ａ上の任意の位置を指定するマウス９０４及び外部のデータベース等にアクセスして他のコンピュータシステムに記憶されているプログラム等をダウンロードする通信装置９０５を有する。通信装置９０５は、ネットワーク通信カード、モデムなどが考えられる。なお、コンピュータシステム９２０は、実施の形態における磁気記憶装置１である。
【００６１】
上述したような、磁気記憶装置１を構成するコンピュータシステムにおいて上述した各ステップを実行させるプログラムを、処理条件設定プログラムとして提供することができる。このプログラムは、コンピュータシステムにより読取り可能な記録媒体に記憶させることによって、磁気記憶装置１を構成するコンピュータシステムに実行させることが可能となる。上述した各ステップを実行するプログラムは、ディスク９１０等の可搬型記録媒体に格納されるか、通信装置９０５により他のコンピュータシステムの記録媒体９０６からダウンロードされる。また、コンピュータシステム９２０に少なくとも処理条件設定機能を持たせる処理条件設定プログラム（処理条件設定ソフトウェア）は、コンピュータシステム９２０に入力されてコンパイルされる。このプログラムは、コンピュータシステム９２０を、処理条件設定機能を有する磁気記憶装置１として動作させる。
【００６２】
また、このプログラムは、例えばディスク９１０等のコンピュータ読み取り可能な記録媒体に格納されていても良い。ここで、コンピュータシステム９２０により読取り可能な記録媒体としては、ＲＯＭやＲＡＭ等のコンピュータに内部実装される内部記憶装置、ディスク９１０やフレキシブルディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカード等の可搬型記憶媒体や、コンピュータプログラムを保持するデータベース、或いは、他のコンピュータシステム並びにそのデータベースや、通信装置９０５のような通信手段を介して接続されるコンピュータシステムでアクセス可能な各種記録媒体を含む。
【００６３】
以上、実施の形態によれば、以下の付記で示す技術的思想が開示されている。
（付記１）
外部装置により第１記憶部に格納されているデータの検証を行う第１検証処理が定期的に実行される磁気記憶装置であって、
前記第１記憶部に履歴情報として複数格納される、外部装置からの前記磁気記憶装置に対する動作命令における実行時間またはアクセスしたアドレス情報を有する個別情報に基づいて、前記第１検証処理に対応する複数の動作命令があるか否かを判断する検証処理判断部と、
前記検証処理判断部により前記第１検証処理に対応する複数の動作命令があると判断された場合、前記第１検証処理に対応する複数の動作命令における個別情報に基づいて、前記第１記憶部に格納されているデータの検証を行う第２検証処理の処理条件を設定する処理条件設定部と、
を有する磁気記憶装置。
（付記２）
付記１に記載の磁気記憶装置において、
前記検証処理判断部は、
前記第１記憶部に複数格納される動作命令における個別情報に基づいて、複数の動作命令がアクセスした第１記憶部におけるアドレスが連続しているか否かを判断するアドレス判断部と、
前記アドレス判断部により前記複数の動作命令がアクセスした第１記憶部におけるアドレスが連続していると判断された場合、前記複数の動作命令における個別情報に基づいて前記複数の動作命令が所定の時間間隔で実行されているか否かを判断する時間間隔判断部と、
前記時間間隔判断部により前記複数の動作命令が所定の時間間隔で実行されていると判断された場合、前記複数の動作命令が前記第１検証処理であると判断する動作命令判断部と、
を有する磁気記憶装置。
（付記３）
付記１に記載の磁気記憶装置において、
前記処理条件設定部は、前記第１検証処理に対応する複数の動作命令における個別情報に基づいて、次に実行される前記第１検証処理の実行時間と前記第２検証処理の実行時間とが重複しないよう前記第２検証処理の処理条件を設定する磁気記憶装置。
（付記４）
付記１に記載の磁気記憶装置において、
前記処理条件設定部は、前記第１検証処理に対応する複数の動作命令における個別情報に基づいて、次に実行される前記第１検証処理が検証するデータの開始アドレスである第１開始アドレスと、次に実行される前記第２検証処理が検証するデータの開始アドレスである第２開始アドレスとが重複するか否かを判断し、前記第１開始アドレスと前記第２開始アドレスとが重複する場合、重複する前記第２検証処理を無効とし、無効とした第２検証処理の次に実行される第２検証処理において検証するデータの開始アドレスを、その直前に実行された第１検証処理において検証したデータの最終アドレスとする磁気記憶装置。
（付記５）
付記１に記載の磁気記憶装置において、
前記第１検証処理および前記第２検証処理は、前記第１記憶部における所定のブロック数におけるブロック範囲を単位としてアクセスを行い、
前記処理条件設定部は、前記第１検証処理に対応する複数の動作命令における個別情報に基づいて、前記第１検証処理に対応する複数の動作命令における各実行時間の間隔である実行時間間隔が所定の間隔より短いか否かを判断し、前記実行時間間隔が所定の間隔より短い場合、前記第２検証処理でアクセスするブロック範囲を前記第１検証処理で検証されるブロック範囲より先行するブロック範囲となるよう設定し、前記実行時間間隔が所定の間隔より長い場合、前記第２検証処理でアクセスするブロック範囲を前記第１検証処理で検証されるブロック範囲と同じとなるよう設定する磁気記憶装置。
（付記６）
付記２に記載の磁気記憶装置において、
前記検証処理判断部は、更に、
前記第１記憶部に複数格納される動作命令から所定の動作命令を抽出する動作命令抽出部を有し、
前記アドレス判断部は、前記動作命令抽出部により抽出された動作命令が複数ある場合、抽出された複数の動作命令における個別情報に基づいて、前記抽出された複数の動作命令がアクセスした第１記憶部におけるアドレスが連続しているか否かを判断する磁気記憶装置。
（付記７）
付記２に記載の磁気記憶装置において、
前記アドレス判断部は、
テーブルを設定するテーブル設定部と、
前記テーブル設定部が設定したテーブルに対し、前記第１記憶部に複数格納される動作命令における個別情報を所定の基準に従い順次登録する登録部と、
前記登録部が前記個別情報を登録したテーブルに基づいて、複数の動作命令がアクセスした第１記憶部におけるアドレスが連続しているか否かを判断するテーブル判断部と、
を有する磁気記憶装置。
（付記８）
付記２に記載の磁気記憶装置において、
前記動作命令判断部は、所定の時間間隔で実行されている前記複数の動作命令である動作命令群が複数ある場合、最も時間間隔が長い前記動作命令群を前記第１検証処理であると判断する磁気記憶装置。
（付記９）
付記１に記載の磁気記憶装置において、
前記履歴情報は、所定の時間あたりに実行された前記複数の動作命令における個別情報である磁気記憶装置。
（付記１０）
外部装置により第１記憶部に格納されているデータの検証を行う第１検証処理が定期的に実行される磁気記憶装置の処理条件設定方法であって、
前記第１記憶部に履歴情報として複数格納される、外部装置からの前記磁気記憶装置に対する動作命令における実行時間またはアクセスしたアドレス情報を有する個別情報に基づいて、前記第１検証処理に対応する複数の動作命令があるか否かを判断する検証処理判断ステップと、
前記検証処理判断ステップにより前記第１検証処理に対応する複数の動作命令があると判断された場合、前記第１検証処理に対応する複数の動作命令における個別情報に基づいて、前記第１記憶部に格納されているデータの検証を行う第２検証処理の処理条件を設定する処理条件設定ステップと、
を実行する磁気記憶装置の処理条件設定方法。
（付記１１）
付記１０に記載の磁気記憶装置の処理条件設定方法において、
前記検証処理判断ステップは、
前記第１記憶部に複数格納される動作命令における個別情報に基づいて、複数の動作命令がアクセスした第１記憶部におけるアドレスが連続しているか否かを判断するアドレス判断ステップと、
前記アドレス判断ステップにより前記複数の動作命令がアクセスした第１記憶部におけるアドレスが連続していると判断された場合、前記複数の動作命令における個別情報に基づいて前記複数の動作命令が所定の時間間隔で実行されているか否かを判断する時間間隔判断ステップと、
前記時間間隔判断ステップにより前記複数の動作命令が所定の時間間隔で実行されていると判断された場合、前記複数の動作命令が前記第１検証処理であると判断する動作命令判断ステップと、
を実行する磁気記憶装置の処理条件設定方法。
（付記１２）
付記１０に記載の磁気記憶装置の処理条件設定方法において、
前記処理条件設定ステップは、前記第１検証処理に対応する複数の動作命令における個別情報に基づいて、次に実行される前記第１検証処理の実行時間と前記第２検証処理の実行時間とが重複しないよう前記第２検証処理の処理条件を設定する磁気記憶装置の処理条件設定方法。
（付記１３）
付記１０に記載の磁気記憶装置の処理条件設定方法において、
前記処理条件設定ステップは、前記第１検証処理に対応する複数の動作命令における個別情報に基づいて、次に実行される前記第１検証処理が検証するデータの開始アドレスである第１開始アドレスと、次に実行される前記第２検証処理が検証するデータの開始アドレスである第２開始アドレスとが重複するか否かを判断し、前記第１開始アドレスと前記第２開始アドレスとが重複する場合、重複する前記第２検証処理を無効とし、無効とした第２検証処理の次に実行される第２検証処理において検証するデータの開始アドレスを、その直前に実行された第１検証処理において検証したデータの最終アドレスとする磁気記憶装置の処理条件設定方法。
（付記１４）
付記１０に記載の磁気記憶装置の処理条件設定方法において、
前記第１検証処理および前記第２検証処理は、前記第１記憶部における所定のブロック数におけるブロック範囲を単位としてアクセスを行い、
前記処理条件設定ステップは、前記第１検証処理に対応する複数の動作命令における個別情報に基づいて、前記第１検証処理に対応する複数の動作命令における各実行時間の間隔である実行時間間隔が所定の間隔より短いか否かを判断し、前記実行時間間隔が所定の間隔より短い場合、前記第２検証処理でアクセスするブロック範囲を前記第１検証処理で検証されるブロック範囲より先行するブロック範囲となるよう設定し、前記実行時間間隔が所定の間隔より長い場合、前記第２検証処理でアクセスするブロック範囲を前記第１検証処理で検証されるブロック範囲と同じとなるよう設定する磁気記憶装置の処理条件設定方法。
（付記１５）
付記１１に記載の磁気記憶装置の処理条件設定方法において、
前記アドレス判断ステップは、
テーブルを設定するテーブル設定ステップと、
前記テーブル設定ステップにより設定されたテーブルに対し、前記第１記憶部に複数格納される動作命令における個別情報を所定の基準に従い順次登録する登録ステップと、
前記登録ステップにより前記個別情報が登録されたテーブルに基づいて、複数の動作命令がアクセスした第１記憶部におけるアドレスが連続しているか否かを判断するテーブル判断ステップと、
を実行する磁気記憶装置の処理条件設定方法。
（付記１６）
外部装置により第１記憶部に格納されているデータの検証を行う第１検証処理が定期的に実行される磁気記憶装置の処理条件設定プログラムであって、
前記第１記憶部に履歴情報として複数格納される、外部装置からの前記磁気記憶装置に対する動作命令における実行時間またはアクセスしたアドレス情報を有する個別情報に基づいて、前記第１検証処理に対応する複数の動作命令があるか否かを判断する検証処理判断ステップと、
前記検証処理判断ステップにより前記第１検証処理に対応する複数の動作命令があると判断された場合、前記第１検証処理に対応する複数の動作命令における個別情報に基づいて、前記第１記憶部に格納されているデータの検証を行う第２検証処理の処理条件を設定する処理条件設定ステップと、
をコンピュータに実行させる磁気記憶装置の処理条件設定プログラム。
（付記１７）
付記１６に記載の磁気記憶装置の処理条件設定プログラムにおいて、
前記検証処理判断ステップは、
前記第１記憶部に複数格納される動作命令における個別情報に基づいて、複数の動作命令がアクセスした第１記憶部におけるアドレスが連続しているか否かを判断するアドレス判断ステップと、
前記アドレス判断ステップにより前記複数の動作命令がアクセスした第１記憶部におけるアドレスが連続していると判断された場合、前記複数の動作命令における個別情報に基づいて前記複数の動作命令が所定の時間間隔で実行されているか否かを判断する時間間隔判断ステップと、
前記時間間隔判断ステップにより前記複数の動作命令が所定の時間間隔で実行されていると判断された場合、前記複数の動作命令が前記第１検証処理であると判断する動作命令判断ステップと、
をコンピュータに実行させる磁気記憶装置の処理条件設定プログラム。
（付記１８）
付記１６に記載の磁気記憶装置の処理条件設定プログラムにおいて、
前記処理条件設定ステップは、前記第１検証処理に対応する複数の動作命令における個別情報に基づいて、次に実行される前記第１検証処理の実行時間と前記第２検証処理の実行時間とが重複しないよう前記第２検証処理の処理条件を設定する磁気記憶装置の処理条件設定プログラム。
（付記１９）
付記１６に記載の磁気記憶装置の処理条件設定プログラムにおいて、
前記処理条件設定ステップは、前記第１検証処理に対応する複数の動作命令における個別情報に基づいて、次に実行される前記第１検証処理が検証するデータの開始アドレスである第１開始アドレスと、次に実行される前記第２検証処理が検証するデータの開始アドレスである第２開始アドレスとが重複するか否かを判断し、前記第１開始アドレスと前記第２開始アドレスとが重複する場合、重複する前記第２検証処理を無効とし、無効とした第２検証処理の次に実行される第２検証処理において検証するデータの開始アドレスを、その直前に実行された第１検証処理において検証したデータの最終アドレスとする磁気記憶装置の処理条件設定プログラム。
（付記２０）
付記１６に記載の磁気記憶装置の処理条件設定プログラムにおいて、
前記第１検証処理および前記第２検証処理は、前記第１記憶部における所定のブロック数におけるブロック範囲を単位としてアクセスを行い、
前記処理条件設定ステップは、前記第１検証処理に対応する複数の動作命令における個別情報に基づいて、前記第１検証処理に対応する複数の動作命令における各実行時間の間隔である実行時間間隔が所定の間隔より短いか否かを判断し、前記実行時間間隔が所定の間隔より短い場合、前記第２検証処理でアクセスするブロック範囲を前記第１検証処理で検証されるブロック範囲より先行するブロック範囲となるよう設定し、前記実行時間間隔が所定の間隔より長い場合、前記第２検証処理でアクセスするブロック範囲を前記第１検証処理で検証されるブロック範囲と同じとなるよう設定する磁気記憶装置の処理条件設定プログラム。
【符号の説明】
【００６４】
１  磁気記憶装置、１１  ＲＯＭ、１２  ＲＡＭ、１３  ＭＰＵ、１４  ＤＳＰ、１５  ＤＩ、１６  ＳＶＣ、１７  ＨＤＣ、１８  ＲＤＣ、１９  バッファ、２０  ＨＤＤ、１０１  設定部、１０２  抽出部、１０３  判断部、１０４  追加処理部、１０５  条件設定部。
【図１】
2010224643.tif 000003
【図２】
2010224643.tif 000004
【図３】
2010224643.tif 000005
【図４】
2010224643.tif 000006
【図５】
2010224643.tif 000007
【図６】
2010224643.tif 000008
【図７】
2010224643.tif 000009
【図８】
2010224643.tif 000010
【図９】
2010224643.tif 000011
【図１０】
2010224643.tif 000012
【図１１】
2010224643.tif 000013
【図１２】
2010224643.tif 000014
【図１３】
2010224643.tif 000015
【図１４】
2010224643.tif 000016
【図１５】
2010224643.tif 000017
【図１６】
2010224643.tif 000018
【図１７】
2010224643.tif 000019
【図１８】
2010224643.tif 000020
【図１９】
2010224643.tif 000021
【図２０】
2010224643.tif 000022
【図２１】
2010224643.tif 000023
【図２２】
2010224643.tif 000024
【図２３】
2010224643.tif 000025
【図２４】
2010224643.tif 000026