(57)【要約】【課題】一定間隔で常にコマンドが発行される場合であっても、ディスクのスキャンを実行すること。【解決手段】記憶装置１００は、ＢＭＳ実行部１９３が、強制ＢＭＳ監視時間（Ｘ）ごとに、進捗率管理テーブル１８１の進捗率と期待進捗率とを比較して、進捗率が期待進捗率以上となっているか否かを判定し、進捗率が期待進捗率未満である場合に、アイドル（ＩＤＬＥ）時間（上位装置からのコマンド受領がない状態）を待たずに、周期監視時間（Ｙ）周期で、進捗率が期待進捗率以上となるまで上位装置から出力される各コマンドの合間に強制的にＢＭＳを実行する。【選択図】        図１
2008217141.tif 000002
【特許請求の範囲】
【請求項１】
上位装置からコマンドを受け付けていないアイドル時間中に記憶媒体上に記憶されたデータに対してスキャンを実行する記憶装置の制御装置であって、
前記記憶媒体の全記憶領域のうちスキャンを実行した領域の割合を示す進捗率が期待値以上となっているか否かを判定する判定部と、
前記判定部の判定結果に基づいて、アイドル時間を待たずに、前記進捗率が前記期待値以上となるまで前記上位装置から出力される各コマンドの合間にスキャンを実行するスキャン実行部と、
を備えたことを特徴とする制御装置。
【請求項２】
前記期待値を管理する期待値管理部を更に備え、前記期待値管理部は、時間経過に伴って所定の割合で前記期待値を増加させることを特徴とする請求項１に記載の制御装置。
【請求項３】
前記判定部は、第１の時間間隔ごとに前記進捗率が前記期待値以上となっているか否かを判定することを特徴とする請求項１または２に記載の制御装置。
【請求項４】
前記スキャン実行部は、第２の時間間隔ごとに前記上位装置からのコマンドが実行されているか否かを判定し、コマンドが実行されていない場合にスキャンを実行することを特徴とする請求項１、２または３に記載の制御装置。
【請求項５】
前記スキャン実行部は、第２の時間間隔ごとに前記上位装置からのコマンドが実行されているか否かを判定し、コマンドが実行されている場合に当該コマンドによる処理が完了した後にスキャンを実行することを特徴とする請求項１〜４のいずれか一つに記載の制御装置。
【請求項６】
前記第１の時間間隔および前記第２の時間間隔を管理する時間間隔管理部を更に備え、前記時間間隔管理部は、利用者によって指定されるスキャンが完了するまでの時間および自記憶装置の性能の低下率を基にして、前記第１の時間間隔および前記第２の時間間隔を算出することを特徴とする請求項１〜５のいずれか一つに記載の制御装置。
【請求項７】
上位装置からコマンドを受け付けていないアイドル時間中に記憶媒体上に記憶されたデータに対してスキャンを実行する記憶装置であって、
前記記憶媒体の全記憶領域のうちスキャンを実行した領域の割合を示す進捗率が期待値以上となっているか否かを判定する判定部と、
前記判定部の判定結果に基づいて、アイドル時間を待たずに、前記進捗率が前記期待値以上となるまで前記上位装置から出力される各コマンドの合間にスキャンを実行するスキャン実行部と、
を備えたことを特徴とする記憶装置。
【請求項８】
前記期待値を管理する期待値管理部を更に備え、前記期待値管理部は、時間経過に伴って所定の割合で前記期待値を増加させることを特徴とする請求項７に記載の記憶装置。
【請求項９】
前記判定部は、第１の時間間隔ごとに前記進捗率が前記期待値以上となっているか否かを判定することを特徴とする請求項７または８に記載の記憶装置。
【請求項１０】
前記スキャン実行部は、第２の時間間隔ごとに前記上位装置からのコマンドが実行されているか否かを判定し、コマンドが実行されていない場合にスキャンを実行することを特徴とする請求項７、８または９に記載の記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、上位装置からコマンドを受け付けていないアイドル時間中に記憶媒体上に記憶されたデータに対してスキャンを実行する記憶装置の制御装置などに関し、特に、記憶媒体に記憶されるデータの品質を保証することができる制御装置および記憶装置に関するものである。
【背景技術】
【０００２】
記憶装置（磁気ディスク装置）がディスク面にデータを書き込んだ場合、ディスクに書き込まれたデータは、つぎに記憶装置に読み込まれるまでの間、外乱や経年劣化にさらされ、元々のデータ品質を保つことができない場合がある。ここで、外乱は、隣接領域の書き込み時における漏れ磁束の影響や装置振動による隣接データの部分的書きつぶしなどを表す。
【０００３】
すなわち、書き込みが正常に完了したセクタに対して実際に記憶装置がデータを読み込もうとした際に、該当セクタのデータ品質が劣化していると、記憶装置は、通常の読み込み処理に加えて、回復不可能なデータチェックや回復可能なデータチェックおよびこれに伴うセクタの交換処理を実施する必要があり、記憶装置にかかる負担が大きかった。
【０００４】
上述したような外乱あるいは経年劣化の影響は、記憶容量の増加に伴うディスク面の記憶密度の向上に伴って顕著化し、記憶装置の品質面における大きな障害となりつつある。そこで、従来では、ディスク面上のデータを事前に保証する機能として、記憶装置のアイドル中（上位装置からのコマンド受領がない状態）に一定間隔でディスクの全面リードベリファイを実施する機能が一般化しつつある（例えば、特許文献１参照）。
【０００５】
記憶装置のアイドル中に行われるリードベリファイは、（１）回復不可能なリードエラーとなったセクタを検出した場合に、検出したセクタの情報をログデータとして記憶する処理や、（２）回復可能なリードエラーが発生したセクタに対してデータの再書き込みを実施する処理、（３）再書き込みを行った場合でも何らかのエラーが発生する場合に、セクタの交代処理を実施する処理などが含まれる。
【０００６】
（１）〜（３）に示した各処理は、バックグラウンドメディアスキャン（Background  Medium  Scan）等と総称され、実際にＡＮＳＩ（American  National  Standard  Institute）から仕様が提案されているものである。
【０００７】
【特許文献１】特開平７−１８２２５０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述したバックグラウンドメディアスキャン（以下、ＢＭＳと略記する）では、記憶装置が上位装置からのコマンド受領がない時間のみスキャンを実行するもので、例えば、ＲＡＩＤ（Redundant  Arrays  of  Inexpensive  Disks）システムのように一定間隔で常にコマンドが発行され続ける場合には、全くスキャンを行うことができないという問題があった。
【０００９】
この発明は、上述した従来技術による問題点を解消するためになされたものであり、一定間隔で常にコマンドが発行される場合であっても、ディスクのスキャンを実行することができる制御装置、記憶装置および制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するため、本発明は、上位装置からコマンドを受け付けていないアイドル時間中に記憶媒体上に記憶されたデータに対してスキャンを実行する記憶装置の制御装置であって、前記記憶媒体の全記憶領域のうちスキャンを実行した領域の割合を示す進捗率が期待値以上となっているか否かを判定する判定部と、前記判定部の判定結果に基づいて、アイドル時間を待たずに、前記進捗率が前記期待値以上となるまで前記上位装置から出力される各コマンドの合間にスキャンを実行するスキャン実行部と、を備えたことを特徴とする。
【００１１】
本発明では、記憶媒体の全記憶領域のうちスキャンを実行した領域の割合を示す進捗率が期待値以上となっているか否かを判定し、判定結果に基づいて、アイドル時間を待たずに、進捗率が期待値以上となるまで上位装置から出力される各コマンドの合間にスキャンを実行するので、従来のように全くＢＭＳが実施されず、ディスクに記憶されたデータの劣化を放置してしまうという問題を解消することができる。
【００１２】
また、本発明は、上記発明において、前記期待値を管理する期待値管理部を更に備え、前記期待値管理部は、時間経過に伴って所定の割合で前記期待値を増加させることを特徴とする。
【００１３】
本発明では、期待値管理部が時間経過に伴って所定の割合で期待値を増加させるので、かかる期待値に基づいたスキャンを実行するか否かの判定を的確に実行することができる。
【００１４】
また、本発明は、上記発明において、前記判定部は、第１の時間間隔ごとに前記進捗率が前記期待値以上となっているか否かを判定することを特徴とする。
【００１５】
本発明では、第１の時間間隔ごとに進捗率が期待値以上となっているか否かを判定するので、記憶媒体に記憶されたデータの品質を保証することができる。
【００１６】
また、本発明は、上記発明において、前記スキャン実行部は、第２の時間間隔ごとに前記上位装置からのコマンドが実行されているか否かを判定し、コマンドが実行されていない場合にスキャンを実行することを特徴とする。
【００１７】
本発明では、第２の時間間隔ごとに上位装置からのコマンドが実行されているか否かを判定し、コマンドが実行されていない場合にスキャンを実行するので、強制的なスキャンによるコマンド実行の遅れを最小限に抑えることができる。
【００１８】
また、本発明は、上記発明において、前記スキャン実行部は、第２の時間間隔ごとに前記上位装置からのコマンドが実行されているか否かを判定し、コマンドが実行されている場合に当該コマンドによる処理が完了した後にスキャンを実行することを特徴とする。
【００１９】
本発明では、第２の時間間隔ごとに上位装置からのコマンドが実行されているか否かを判定し、コマンドが実行されている場合にコマンドによる処理が完了した後にスキャンを実行するので、強制的なスキャンによるコマンド実行の遅れを最小限に抑えることができる。
【００２０】
また、本発明は、上記発明において、前記第１の時間間隔および前記第２の時間間隔を管理する時間間隔管理部を更に備え、前記時間間隔管理部は、利用者によって指定されるスキャンが完了するまでの時間および自記憶装置の性能の低下率を基にして、前記第１の時間間隔および前記第２の時間間隔を算出することを特徴とする。
【００２１】
本発明では、利用者によって指定されるスキャンが完了するまでの時間および記憶装置の性能の低下率を基にして、第１の時間間隔および第２の時間間隔を算出するので、強制的なスキャンによるコマンド実行の遅れを利用者の都合に合わせて調整することができる。
【００２２】
また、本発明は、上位装置からコマンドを受け付けていないアイドル時間中に記憶媒体上に記憶されたデータに対してスキャンを実行する記憶装置であって、前記記憶媒体の全記憶領域のうちスキャンを実行した領域の割合を示す進捗率が期待値以上となっているか否かを判定する判定部と、前記判定部の判定結果に基づいて、アイドル時間を待たずに、前記進捗率が前記期待値以上となるまで前記上位装置から出力される各コマンドの合間にスキャンを実行するスキャン実行部と、を備えたことを特徴とする。
【００２３】
本発明では、記憶媒体の全記憶領域のうちスキャンを実行した領域の割合を示す進捗率が期待値以上となっているか否かを判定し、判定結果に基づいて、アイドル時間を待たずに、進捗率が期待値以上となるまで上位装置から出力される各コマンドの合間にスキャンを実行するので、従来のように全くＢＭＳが実施されず、ディスクに記憶されたデータの劣化を放置してしまうという問題を解消することができる。
【００２４】
また、本発明は、上記発明において、前記期待値を管理する期待値管理部を更に備え、前記期待値管理部は、時間経過に伴って所定の割合で前記期待値を増加させることを特徴とする。
【００２５】
本発明では、期待値管理部が時間経過に伴って所定の割合で期待値を増加させるので、かかる期待値に基づいたスキャンを実行するか否かの判定を的確に実行することができる。
【００２６】
また、本発明は、上記発明において、前記判定部は、第１の時間間隔ごとに前記進捗率が前記期待値以上となっているか否かを判定することを特徴とする。
【００２７】
本発明では、第１の時間間隔ごとに進捗率が期待値以上となっているか否かを判定するので、記憶媒体に記憶されたデータの品質を保証することができる。
【００２８】
また、本発明は、前記スキャン実行部は、第２の時間間隔ごとに前記上位装置からのコマンドが実行されているか否かを判定し、コマンドが実行されていない場合にスキャンを実行することを特徴とする。
【００２９】
本発明では、第２の時間間隔ごとに上位装置からのコマンドが実行されているか否かを判定し、コマンドが実行されていない場合にスキャンを実行するので、強制的なスキャンによるコマンド実行の遅れを最小限に抑えることができる。
【００３０】
また、本発明は、上記発明において、前記スキャン実行部は、第２の時間間隔ごとに前記上位装置からのコマンドが実行されているか否かを判定し、コマンドが実行されている場合に当該コマンドによる処理が完了した後にスキャンを実行することを特徴とする。
【００３１】
本発明では、第２の時間間隔ごとに上位装置からのコマンドが実行されているか否かを判定し、コマンドが実行されている場合にコマンドによる処理が完了した後にスキャンを実行するので、強制的なスキャンによるコマンド実行の遅れを最小限に抑えることができる。
【発明の効果】
【００３２】
本発明によれば、記憶媒体の全記憶領域のうちスキャンを実行した領域の割合を示す進捗率が期待値以上となっているか否かを判定し、判定結果に基づいて、アイドル時間を待たずに、進捗率が期待値以上となるまで上位装置から出力される各コマンドの合間にスキャンを実行するので、従来のように全くＢＭＳが実施されず、ディスクに記憶されたデータの劣化を放置してしまうという問題を解消することができる。また、本発明にかかる制御装置を利用する上位装置等は、記憶媒体上に記憶されるデータの品質が保証されるので、一定水準の品質を有するデータを基に各種処理を実施でき、上位装置にかかる信頼性も向上する。
【発明を実施するための最良の形態】
【００３３】
以下に添付図面を参照して、この発明に係る制御装置および記憶装置の好適な実施の形態を詳細に説明する。
【実施例】
【００３４】
まず、本実施例にかかる記憶装置の概要および特徴について説明する。本実施例にかかる記憶装置（磁気ディスク装置）は、定期的にＢＭＳ（Background  Medium  Scan）を実行する記憶装置に関するものであり、ディスクの全記憶領域のうちＢＭＳを実行した領域の割合を示す進捗率が期待値以上となっているか否かを判定し、進捗率が期待値未満である場合に、アイドル（ＩＤＬＥ）時間（上位装置からのコマンド受領がない状態）を待たずに、進捗率が期待値以上となるまで上位装置から出力される各コマンドの合間に強制的にＢＭＳを実行する。
【００３５】
このように、本実施例にかかる記憶装置は、進捗率が期待値未満である場合に、アイドル時間外であっても上位装置から出力される各コマンドの合間に強制的にＢＭＳを実行するので、従来のように全くＢＭＳが実施されず、ディスクに記憶されたデータの劣化を放置してしまうという問題を解消することができる。
【００３６】
つぎに、本実施例にかかる記憶装置の構成について説明する。図１は、本実施例にかかる記憶装置の構成を示す機能ブロック図である。同図に示すように、この記憶装置１００は、通信ＩＦ部１１０と、ディスク１２０と、ヘッド１３０と、アクチュエータ１４０と、リードライトチャネル１５０と、ドライバ部１６０と、ＲＯＭ１７０と、メモリ１８０と、制御部１９０とを備えて構成される。
【００３７】
このうち、通信制御ＩＦ部１１０は、所定の通信プロトコルを用いて上位装置（図示略）とデータ通信を行う手段である。ディスク１２０は、基板上に磁性薄膜が形成された円盤状の記憶媒体であり、ユーザデータや制御データなど種々のデータを記憶する。記憶装置１００は、ディスク１２０上に記憶されたデータに対してＢＭＳを実行する。
【００３８】
ヘッド１３０は、ディスク１２０に対するデータの書き込みあるいは読み込みを行う手段である。このヘッド１３０は、ディスク１２０からトラック位置などを制御するためのサーボ信号、ユーザデータなどを読み出し、読み出した各種データをリードライトチャネル１５０に出力する。
【００３９】
アクチュエータ１４０は、ボイスコイルモータ（ＶＣＭ）を備え、ドライバ部１６０から出力される制御電流によってヘッド１３０を移動させる手段である。リードライトチャネル１５０は、ヘッド１３０からサーボ信号、ユーザデータなどを取得し、取得したサーボ信号、ユーザデータを制御部１９０に出力する手段である。また、リードライトチャネル１５０は、制御部１９０から書き込み対象となるデータを取得した場合に、取得したデータをヘッド１３０に出力する。
【００４０】
ドライバ部１６０は、制御部１９０からの制御命令に応答して、制御電流をアクチュエータ１４０に出力し、ヘッド１３０の移動を制御する手段である。また、ドライバ部１６０は、スピンドルモータ（図示略）に制御電流を出力し、ディスク１２０の回転制御も行う。
【００４１】
ＲＯＭ１７０は、制御部１９０による各種処理に必要なデータおよびプログラムを記憶する記憶手段である。メモリ１８０は、制御部１９０に用いられる各種のデータを記憶する記憶手段であり、特に、本発明に密接に関連するものとしては、図１に示すように、進捗率管理テーブル１８１と、監視時間管理テーブル１８２とを備える。
【００４２】
進捗管理テーブル１８１は、ＢＭＳの進捗率に関連するデータを記憶するテーブルである。図２は、進捗率管理テーブル１８１のデータ構造の一例を示す図である。同図に示すように、この進捗率管理テーブル１８１は、総トラック数、進捗率、１時間当たりの期待進捗率、期待進捗率を備える。
【００４３】
このうち、総トラック数は、ディスク１２０の総トラック数を示し、進捗率は、ディスク１２０の全記憶領域のうちＢＭＳを実施した領域の割合を示すデータである。また、１時間当たりの期待進捗率は、１時間当たりに記憶装置１００がＢＭＳを実行すべき領域の割合（ディスク１２０の全記憶領域のうちＢＭＳを実行すべき領域の割合）を示す。
【００４４】
そして、期待進捗率は、１時間当たりの期待進捗率から算出される総合的な期待進捗率（記憶装置１００が実行すべき総合的な進捗率）を示すデータである。この期待進捗率は、上述した進捗率と比較され、進捗率が期待進捗率未満となる場合に、記憶装置１００は強制的にＢＭＳを実行することとなる。
【００４５】
監視時間管理テーブル１８２は、記憶装置１００が強制的にＢＭＳを実行するか否かを判定する周期などに関するデータを記憶するテーブルである。図３は、監視時間管理テーブル１８２のデータ構造の一例を示す図である。同図に示すように、この監視時間管理テーブル１８２は、強制ＢＭＳ監視時間（Ｘ）と、周期監視時間（Ｙ）とを備える。
【００４６】
強制ＢＭＳ監視時間（Ｘ）は、記憶装置１００が強制的にＢＭＳを実行するか否かを判定するまでの時間を示す。例えば、強制ＢＭＳ監視時間（Ｘ）がＡ（ｈ）である場合には、記憶装置１００は、Ａ（ｈ）ごとに強制的にＢＭＳを実行するか否かを判定する。
【００４７】
周期監視時間（Ｙ）は、記憶装置１００が強制的にＢＭＳを実行する場合に、かかるＢＭＳを実行する周期を示す。例えば、周期監視時間（Ｙ）がＢ（ｓ）である場合には、記憶装置１００は、Ｂ（ｓ）周期でＢＭＳを実行する。
【００４８】
制御部１９０は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する制御手段であり、特に、本発明に密接に関連するものとしては、図１に示すように、アクセス制御部１９１、アクチュエータ制御部１９２、ＢＭＳ実行部１９３、監視時間管理部１９４、進捗率管理部１９５を備える。
【００４９】
このうち、アクセス制御部１９１は、上位装置から記憶対象となるユーザデータを取得した場合に、取得したユーザデータをリードライトチャネル１５０に出力し、かかるユーザデータをディスク１２０に記憶する手段である。また、アクセス制御部１９１は、リードライトチャネル１５０から上位装置からの読み出し対象となるユーザデータを取得した場合に、取得したユーザデータを上位装置に出力する。
【００５０】
アクチュエータ制御部１９２は、ドライバ部１６０に制御命令を出力し、ヘッド１３０の移動制御を行う手段である。また、アクチュエータ制御部１９２は、ディスク１２０の回転制御も行う。
【００５１】
ＢＭＳ実行部１９３は、ディスク１２０に記憶されたデータに対してＢＭＳを実行する処理部である。具体的に、ＢＭＳ実行部１９３は、監視時間管理テーブル１８２に記憶された強制ＢＭＳ監視時間（Ｘ）周期で、進捗率管理テーブル１８１に記憶された進捗率と期待進捗率とを比較し、進捗率が期待進捗率未満である場合に、強制的にＢＭＳを実行する処理に移行する（以下、強制ＢＭＳ処理と表記する）。
【００５２】
ＢＭＳ実行部１９３が、強制ＢＭＳ処理に移行すると、アイドル時間以外であっても、監視時間管理テーブル１８２の周期監視時間（Ｙ）周期で、ＢＭＳを実行する。ＢＭＳ実行部１９３が実行する強制ＢＭＳ処理は、進捗率管理テーブル１８１の進捗率が期待進捗率以上となるまで継続して実施される。
【００５３】
ＢＭＳ実行部１９３が、強制ＢＭＳ処理に移行している状態において、上位装置から複数のコマンドが発行されている場合には、周期監視時間ごとにコマンドが実行されているか否かを判定し、コマンドが実行されている場合には、かかるコマンドが終了し、次のコマンドが実行される前に、ＢＭＳを実行する。
【００５４】
なお、ＢＭＳ実行部１９３が行うＢＭＳは、従来から一般的に行われているＢＭＳと同様であり、（１）回復不可能なリードエラーとなったセクタを検出した場合に、検出したセクタの情報をログデータとして記憶する処理や、（２）回復可能なリードエラーが発生したセクタに対してデータの再書き込みを実施する処理、（３）再書き込みを行った場合でも何らかのエラーが発生する場合に、セクタの交代処理を実施する処理などが含まれる。
【００５５】
監視時間管理部１９４は、メモリ１８０に記憶された監視時間管理テーブル１８２を管理する手段である。また、監視時間管理部１９４は、入力装置（図示略）あるいは上位装置からディスク１２０全面に対するＢＭＳを終了させたい時間（ｘ）および性能低下率（ｙ％）を取得した場合には、かかる時間（ｘ）および性能低下率（ｙ％）を基にして強制ＢＭＳ監視時間（Ｘ）および周期監視時間（Ｙ）を算出し、監視時間管理テーブル１８２を更新する。
【００５６】
（強制ＢＭＳ監視時間の算出について）
図４は、強制ＢＭＳ監視時間（Ｘ）の算出方法を説明するための図である。図４に示す（ａ）は、強制的にＢＭＳを実行する場合の開始時間を示し、図中の％はＢＭＳを実行した進捗率を示す。ここでは、一例として、強制ＢＭＳ監視時間（Ｘ）毎に監視する進捗率を１％とすると、強制ＢＭＳ監視時間（Ｘ）が１０１必要となるので、
強制ＢＭＳ監視時間（Ｘ）＝ＢＭＳを終了させたい時間（ｘ）÷１０１
によって強制ＢＭＳ監視時間（Ｘ）を算出することができる。
【００５７】
（周期監視時間の算出について）
上位装置から出力される連続コマンド中に強制的にＢＭＳが実行される場合、ＢＭＳにかかる時間は、ＢＭＳを実行するＬＢＡへのシーク時間と、ＢＭＳ実行時間と、元の位置に戻るシーク時間とを加算したものとなる。すなわち、平均シーク時間と、１回転時間（１トラックのみスキャンする場合）と、平均シーク時間とを加算したものとなる。そして、性能低下率（ｙ％）を加味すると、
周期監視時間（Ｙ）＝（２×平均シーク時間＋１回転時間）×１００÷（ｙ）
によって、周期監視時間を算出することができる。なお、平均シーク時間および１回転時間は、予め、監視時間管理部１９４が保持しているものとする。
【００５８】
このように、監視時間管理部１９４は、ＢＭＳを終了させたい時間（ｘ）および性能低下率（ｙ％）を取得して、監視時間管理テーブル１８２を更新するので、強制ＢＭＳ監視時間（Ｘ）および周期監視時間（Ｙ）を調整することができ、性能低下の幅を調整することができる。
【００５９】
図１の説明に戻ると、進捗率管理部１９５は、メモリ１８０に記憶された進捗率管理テーブル１８１を管理する手段である。具体的に、進捗率管理部１９５は、進捗率管理テーブル１８１の進捗率および期待進捗率の更新を行う。
【００６０】
進捗率管理部１９５は、ＢＭＳ実行部１９３がＢＭＳを実行したディスク１２０上のトラック数の情報（以下、実行済領域情報）をＢＭＳ実行部から取得し、取得した実行済領域情報と総トラック数（図２参照）とを基にして、進捗率（ＢＭＳを実行したトラック数／総トラック数）を算出し、算出した進捗率によって進捗率管理テーブル１８１を更新する。また、進捗率管理部１９５は、１時間当たりの進捗率を１時間ごとに期待進捗率に加算する。
【００６１】
つぎに、本実施例にかかる記憶装置１００の処理手順について説明する。図５は、本実施例にかかる記憶装置１００の処理手順を示すフローチャートである。同図に示すように、記憶装置１００は、ＢＭＳ実行部１９３が監視時間のカウントを開始し（ステップＳ１０１）、監視時間が強制ＢＭＳ監視時間（Ｘ）を経過したか否かを判定する（ステップＳ１０２）。
【００６２】
強制ＢＭＳ監視時間（Ｘ）を経過していない場合には（ステップＳ１０３，Ｎｏ）、（所定時間経過後）ステップＳ１０２に移行する。一方、強制ＢＭＳ監視時間（Ｘ）を経過した場合には（ステップＳ１０３，Ｙｅｓ）、進捗率および期待進捗率を取得し（ステップＳ１０４）、進捗率が期待進捗率以上か否かを判定する（ステップＳ１０５）。
【００６３】
進捗率が期待進捗率以上である場合には（ステップＳ１０６，Ｙｅｓ）、ＢＭＳ実行部１９３は、監視時間を初期値に戻し（ステップＳ１０７）、ステップＳ１０２に移行する。一方、進捗率が期待進捗率未満である場合には（ステップＳ１０６，Ｎｏ）、強制ＢＭＳモード処理を実行し（ステップＳ１０８）、ステップＳ１０７に移行する。
【００６４】
ここで、図５のステップＳ１０８に示した強制ＢＭＳモード処理の処理手順について説明する。図６は、強制ＢＭＳモード処理の処理手順を示すフローチャートである。同図に示すように、ＢＭＳ実行部１９３は、周期監視時間のカウントを開始し（ステップＳ２０１）、周期監視時間が周期監視時間（Ｙ）を経過したか否かを判定する（ステップＳ２０２）。
【００６５】
周期監視時間（Ｙ）を経過していない場合には（ステップＳ２０３，Ｎｏ）、（所定時間経過後）ステップＳ２０２に移行する。一方、周期監視時間（Ｙ）を経過した場合には（ステップＳ２０３，Ｙｅｓ）、コマンド実行中か否かを判定し（ステップＳ２０４）、コマンド実行中の場合には（ステップＳ２０５，Ｙｅｓ）、かかるコマンド実行後にＢＭＳを実行し（ステップＳ２０６）、ステップＳ２０８に移行する。
【００６６】
一方、コマンド実行中でない場合には（ステップＳ２０５，Ｎｏ）、ＢＭＳを実行し（ステップＳ２０７）、規定トラック数のＢＭＳが完了したか否か（進捗率が期待進捗率以上となったか否か）を判定し（ステップＳ２０８）、完了した場合には（ステップＳ２０９，Ｙｅｓ）、強制ＢＭＳモード処理を終了し、完了していない場合には（ステップＳ２０９，Ｎｏ）、周期監視時間を初期値に戻し（ステップＳ２１０）、ステップＳ２０２に移行する。
【００６７】
このように、ＢＭＳ実行部１９３が、進捗率と期待進捗率とを比較して、進捗率が期待進捗率未満である場合に、強制ＢＭＳモードに移行して、ＢＭＳを実施するので、ディスク上に記憶されたデータの品質を保つことができる。
【００６８】
上述してきたように、本実施例にかかる記憶装置１００は、ＢＭＳ実行部１９３が、強制ＢＭＳ監視時間（Ｘ）ごとに、進捗率管理テーブル１８１の進捗率と期待進捗率とを比較して、進捗率が期待進捗率以上となっているか否かを判定し、進捗率が期待進捗率未満である場合に、アイドル（ＩＤＬＥ）時間（上位装置からのコマンド受領がない状態）を待たずに、周期監視時間（Ｙ）周期で、進捗率が期待進捗率以上となるまで上位装置から出力される各コマンドの合間に強制的にＢＭＳを実行するので、従来のように全くＢＭＳが実施されず、ディスクに記憶されたデータの劣化を放置してしまうという問題を解消することができる。
【００６９】
また、本実施例にかかる記憶装置１００は、監視時間管理部１９４が、ＢＭＳを終了させたい時間（ｘ）および性能低下率（ｙ％）を基にして強制ＢＭＳ監視時間（Ｘ）および周期監視時間（Ｙ）を算出し、監視時間管理テーブル１８２を更新するので、強制的にＢＭＳを実行することによる記憶装置１００の性能低下の幅を調整することができる。
【００７０】
ところで、上記実施例で説明した各種の処理は、予め用意されたプログラムを記憶装置（コンピュータ）で実行することによって実現することができる。図１に示す例では、ＲＯＭ１７０に上記した各種の処理を実現する各種のプログラムが記憶されており、制御部１９０がＲＯＭ１７０に記録された各種のプログラムを読み出して実行することにより、上述した各種の処理部（アクセス制御部１９１、アクチュエータ制御部１９２、ＢＭＳ実行部１９３、監視時間管理部１９４、進捗率管理部１９５）の機能を実現する各種プロセスが起動される。
【００７１】
なお、各種プログラムは、必ずしも最初からＲＯＭに記憶させておく必要はない。たとえば、コンピュータに挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータに接続される「他のコンピュータ（またはサーバ）」などに各種プログラムを記憶しておき、コンピュータがこれらから各種プログラムを読み出して実行するようにしてもよい。
【００７２】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、特許請求の範囲に記載した技術的思想の範囲内において種々の異なる実施例にて実施されてもよいものである。
【００７３】
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。
【００７４】
この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメタを含む情報については、特記する場合を除いて任意に変更することができる。
【００７５】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【００７６】
（付記１）上位装置からコマンドを受け付けていないアイドル時間中に記憶媒体上に記憶されたデータに対してスキャンを実行する記憶装置の制御装置であって、
前記記憶媒体の全記憶領域のうちスキャンを実行した領域の割合を示す進捗率が期待値以上となっているか否かを判定する判定部と、
前記判定部の判定結果に基づいて、アイドル時間を待たずに、前記進捗率が前記期待値以上となるまで前記上位装置から出力される各コマンドの合間にスキャンを実行するスキャン実行部と、
を備えたことを特徴とする制御装置。
【００７７】
（付記２）前記期待値を管理する期待値管理部を更に備え、前記期待値管理部は、時間経過に伴って所定の割合で前記期待値を増加させることを特徴とする付記１に記載の制御装置。
【００７８】
（付記３）前記判定部は、第１の時間間隔ごとに前記進捗率が前記期待値以上となっているか否かを判定することを特徴とする付記１または２に記載の制御装置。
【００７９】
（付記４）前記スキャン実行部は、第２の時間間隔ごとに前記上位装置からのコマンドが実行されているか否かを判定し、コマンドが実行されていない場合にスキャンを実行することを特徴とする付記１、２または３に記載の制御装置。
【００８０】
（付記５）前記スキャン実行部は、第２の時間間隔ごとに前記上位装置からのコマンドが実行されているか否かを判定し、コマンドが実行されている場合に当該コマンドによる処理が完了した後にスキャンを実行することを特徴とする付記１〜４のいずれか一つに記載の制御装置。
【００８１】
（付記６）前記第１の時間間隔および前記第２の時間間隔を管理する時間間隔管理部を更に備え、前記時間間隔管理部は、利用者によって指定されるスキャンが完了するまでの時間および自記憶装置の性能の低下率を基にして、前記第１の時間間隔および前記第２の時間間隔を算出することを特徴とする付記１〜５のいずれか一つに記載の制御装置。
【００８２】
（付記７）上位装置からコマンドを受け付けていないアイドル時間中に記憶媒体上に記憶されたデータに対してスキャンを実行する記憶装置であって、
前記記憶媒体の全記憶領域のうちスキャンを実行した領域の割合を示す進捗率が期待値以上となっているか否かを判定する判定部と、
前記判定部の判定結果に基づいて、アイドル時間を待たずに、前記進捗率が前記期待値以上となるまで前記上位装置から出力される各コマンドの合間にスキャンを実行するスキャン実行部と、
を備えたことを特徴とする記憶装置。
【００８３】
（付記８）前記期待値を管理する期待値管理部を更に備え、前記期待値管理部は、時間経過に伴って所定の割合で前記期待値を増加させることを特徴とする付記７に記載の記憶装置。
【００８４】
（付記９）前記判定部は、第１の時間間隔ごとに前記進捗率が前記期待値以上となっているか否かを判定することを特徴とする付記７または８に記載の記憶装置。
【００８５】
（付記１０）前記スキャン実行部は、第２の時間間隔ごとに前記上位装置からのコマンドが実行されているか否かを判定し、コマンドが実行されていない場合にスキャンを実行することを特徴とする付記７、８または９に記載の記憶装置。
【００８６】
（付記１１）前記スキャン実行部は、第２の時間間隔ごとに前記上位装置からのコマンドが実行されているか否かを判定し、コマンドが実行されている場合に当該コマンドによる処理が完了した後にスキャンを実行することを特徴とする付記７〜１０のいずれか一つに記載の記憶装置。
【００８７】
（付記１２）前記第１の時間間隔および前記第２の時間間隔を管理する時間間隔管理部を更に備え、前記時間間隔管理部は、利用者によって指定されるスキャンが完了するまでの時間および自記憶装置の性能の低下率を基にして、前記第１の時間間隔および前記第２の時間間隔を算出することを特徴とする付記７〜１１のいずれか一つに記載の記憶装置。
【００８８】
（付記１３）上位装置からコマンドを受け付けていないアイドル時間中に記憶媒体上に記憶されたデータに対してスキャンを実行する記憶装置の制御方法であって、
前記記憶媒体の全記憶領域のうちスキャンを実行した領域の割合を示す進捗率が期待値以上となっているか否かを判定する判定工程と、
前記判定工程の判定結果に基づいて、アイドル時間を待たずに、前記進捗率が前記期待値以上となるまで前記上位装置から出力される各コマンドの合間にスキャンを実行するスキャン実行工程と、
を含んだことを特徴とする制御方法。
【００８９】
（付記１４）前記期待値を管理する期待値管理工程を更に含み、前記期待値管理工程は、時間経過に伴って所定の割合で前記期待値を増加させることを特徴とする付記１３に記載の制御方法。
【００９０】
（付記１５）前記判定工程は、第１の時間間隔ごとに前記進捗率が前記期待値以上となっているか否かを判定することを特徴とする付記１３または１４に記載の制御方法。
【００９１】
（付記１６）前記スキャン実行工程は、第２の時間間隔ごとに前記上位装置からのコマンドが実行されているか否かを判定し、コマンドが実行されていない場合にスキャンを実行することを特徴とする付記１３、１４または１５に記載の制御方法。
【００９２】
（付記１７）前記スキャン実行工程は、第２の時間間隔ごとに前記上位装置からのコマンドが実行されているか否かを判定し、コマンドが実行されている場合に当該コマンドによる処理が完了した後にスキャンを実行することを特徴とする付記１３〜１６のいずれか一つに記載の制御方法。
【００９３】
（付記１８）前記第１の時間間隔および前記第２の時間間隔を管理する時間間隔管理工程を更に含み、前記時間間隔管理工程は、利用者によって指定されるスキャンが完了するまでの時間および自記憶装置の性能の低下率を基にして、前記第１の時間間隔および前記第２の時間間隔を算出することを特徴とする付記１３〜１７のいずれか一つに記載の制御方法。
【産業上の利用可能性】
【００９４】
以上のように、本発明にかかる制御装置および記憶装置は、記憶密度が高い大容量の記憶装置に有用であり、特に、定期的に上位装置からコマンドを受領する場合であっても、記憶媒体に記憶するデータの品質を保証する必要がある場合に適している。
【図面の簡単な説明】
【００９５】
【図１】本実施例にかかる記憶装置の構成を示す機能ブロック図である。
【図２】進捗率管理テーブルのデータ構造の一例を示す図である。
【図３】監視時間管理テーブルのデータ構造の一例を示す図である。
【図４】強制ＢＭＳ監視時間（Ｘ）の算出方法を説明するための図である。
【図５】本実施例にかかる記憶装置の処理手順を示すフローチャートである。
【図６】強制ＢＭＳモード処理の処理手順を示すフローチャートである。
【符号の説明】
【００９６】
１００    記憶装置
１１０    通信ＩＦ部
１２０    ディスク
１３０    ヘッド
１４０    アクチュエータ
１５０    リードライトチャネル
１６０    ドライバ部
１７０    ＲＯＭ
１８０    メモリ
１８１    進捗率管理テーブル
１８２    監視時間管理テーブル
１９０    制御部
１９１    アクセス制御部
１９２    アクチュエータ制御部
１９３    ＢＭＳ実行部
１９４    監視時間管理部
１９５    進捗管理部
【図１】
2008217141.tif 000003
【図２】
2008217141.tif 000004
【図３】
2008217141.tif 000005
【図４】
2008217141.tif 000006
【図５】
2008217141.tif 000007
【図６】
2008217141.tif 000008