(57)【要約】【課題】適切なタイミングで適切な領域に対して実行することができる媒体スキャン方法を提供する。【解決手段】上記課題を解決するためにディスク装置１０に、情報を記憶する記憶媒体１１と、ホストコンピュータ等の上位装置からの要求に応じて記憶媒体１１に情報を書き込む書き込み手段１２と、記憶媒体１１の状態を監視する媒体監視手段１３と、記憶媒体１１に対する媒体スキャンが必要か否かを判断する媒体スキャン判断手段１５と、を備える。【選択図】図１
2007242207.tif 000002
【特許請求の範囲】
【請求項１】
上位装置からの要求に応じて該上位装置から送られる情報を記憶媒体に書き込む書き込み処理を実行するディスク装置であって、
該書き込み処理によって前記情報が書き込まれた記憶媒体の状態を監視する媒体監視手段と、
該記憶媒体の状態に応じて媒体スキャンが必要か否かを判断する媒体スキャン判断手段と、
該媒体スキャン判断手段が媒体スキャンを必要と判断した記憶媒体に対して媒体スキャンを実行する媒体スキャン手段と、
を備えるディスク装置。
【請求項２】
前記媒体監視手段は、
前記上位装置から前記記憶媒体への書込み処理の回数を、該記憶媒体を所定の領域に分割した分割領域毎にカウントし、
前記チェック判断手段は、
該分割領域への書込み処理の回数が所定の回数より大きい分割領域を媒体スキャンの対象と判断する、
ことを特徴とする請求項１に記載のディスク装置。
【請求項３】
前記媒体監視手段は、
前記記憶媒体への書き込み処理が行なわれる毎に、該書き込み処理が行なわれた領域を包含するアクセス範囲を更新するとともに、該書き込み処理の回数をカウントし、
前記チェック判断手段は、
前記記憶媒体への書き込み処理の回数が所定の回数より大きい場合に、前記アクセス範囲を媒体スキャンの対象と判断する、
ことを特徴とする請求項１に記載のディスク装置。
【請求項４】
前記媒体監視手段は、
前記記憶媒体への書き込み処理が行なわれる毎に、該書き込み処理が行なわれた領域を包含するアクセス範囲を更新するとともに、アクセス監視を開始した時からの経過時間を計測し、
前記チェック判断手段は、
該経過時間が所定の時間を超えた場合に、前記媒体スキャン範囲を媒体スキャンの対象と判断する、
ことを特徴とする請求項１に記載のディスク装置。
【請求項５】
上位装置からの要求に応じて該上位装置から送られる情報を記憶媒体に書き込む書き込み処理を実行するディスク装置に実行させる媒体スキャン方法であって、
該書き込み処理によって前記情報が書き込まれた記憶媒体の状態を監視する媒体監視処理と、
該記憶媒体の状態に応じて媒体スキャンが必要か否かを判断する媒体スキャン判断処理と、
該媒体スキャン判断処理によって媒体スキャンを必要と判断された記憶媒体に対して媒体スキャンを実行する媒体スキャン処理と、
をディスク装置に実行させる媒体スキャン方法。
【請求項６】
上位装置からの要求に応じて該上位装置から送られる情報を記憶媒体に書き込む書き込み処理によって前記情報が書き込まれた記憶媒体の状態を監視する媒体監視手段と、
該記憶媒体の状態に応じて媒体スキャンが必要か否かを判断する媒体スキャン判断手段と、
該媒体スキャン判断手段が媒体スキャンを必要と判断した記憶媒体に対して媒体スキャンを実行する媒体スキャン手段と、
を備えるスキャンコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホストコンピュータ等の上位装置からの要求に応じて媒体面に対して情報の書き込み処理・読み込み処理を行うディスク装置において、媒体面に書き込まれている情報を予防保守的に監視する媒体スキャン方法に関する。
【背景技術】
【０００２】
磁気ディスク装置のように、ホストコンピュータ等の上位装置から送信されたデータを媒体面に書き込み、或いは媒体面から読み出して上位装置に送信するディスク装置は、外乱（例えば、隣接領域への書き込み時に漏れ磁束の影響などによりデータ信号を減衰させてしまう、又は、装置振動などにより隣接するデータを部分的に書き潰してしまう、等）や経時変化によって元々のデータ品質を維持できない場合がある。
【０００３】
例えば、データの書き込みが正常に完了したセクタに対し実際にデータの読込みを行なおうとした際に、回復不可能なデータチェックや回復可能なデータチェック及びこれに伴うセクタの交替処理が発生すると、上位装置は処理速度が低下などの大きな影響を受けてしまうという問題がある。
【０００４】
このような問題は、近年のディスク装置の記憶容量の増加に伴う媒体面の記録密度（ＢＰＩ：記録方向（円周方向）に対する密度、ＴＰＩ：記録トラック間（半径方向）に対する密度）の向上とともに顕在化し、ディスク装置の品質面における大きな障害となりつつある。
【０００５】
そこで、媒体面上のデータを事前に保証する機能としてディスク装置がアイドル中に一定間隔で媒体面の全面に対してリード・ベリファイを行う機能が一般化しつつある。
すなわち、ディスク装置のアイドル期間中に内部的に媒体面のリードを実行し、（１）回復不可能なリードエラーとなったセクタを検出した場合は、ログデータとして記録する。そして、（２）回復可能なリードエラーが発生したセクタはデータの再書き込みを実行する。
【０００６】
これにより、一時的なリードエラーやヘッドノイズ、隣接トラックに対するライト時の漏れ磁束による影響、揺れ書きによる部分損傷などが救済される可能性がある。また回復可能なセクタが今後回復不可能なセクタに品質が低下することも未然に防ぐことが可能である。
【０００７】
さらに、（３）（２）の再書き込み後の再読み込みでも何らかのエラーが発生する場合は真の媒体の欠陥の可能性がある。この場合は可能ならセクタの交替処理を実行する。
以上に説明した処理は、バックグラウンドメディアスキャン（Ｂａｃｋｇｒｏｕｎｄ  Ｍｅｄｉａ  Ｓｃａｎ）等と総称され、実際にＡＮＳＩ（Ａｍｅｒｉｃａｎ  Ｎａｔｉｏｎａｌ  Ｓｔａｎｄａｒｄ  Ｉｎｓｔｉｔｕｔｅ）から仕様が提案されている。
【０００８】
しかし、従来のバックグラウンドメディアスキャン（以下、「媒体スキャン」という） は一定間隔でディスク装置の全記録領域に対してスキャンを実行するため、上位装置からの様々な要求により行なわれる書込み処理や読出し処理に柔軟に対応できていない。例えば、以下の様な場合が考えられる。
【０００９】
（１）特定のシリンダ・ヘッド・セクタへの書き込みが集中した場合
特定領域への書き込み多発によるサイドイレーズなどの影響を軽減するには一定の書き込みが一定の領域に集中した時点で隣接領域のリードスキャンを開始する必要がある。しかし、従来の媒体スキャンではアクセスパターンに依存せず常に全領域をスキャンの対象としている。
【００１０】
（２）特定のシリンダ・ヘッド・セクタへの書き込みが短時間に発生した場合
特定領域に短時間に書き込み多発が発生した場合は特定の閾値を超過した時点でスキャンを開始する必要がある。しかし、従来の媒体スキャンでは閾値超過時刻に依存せず、常に一定間隔でスキャンを実行している。
【００１１】
なお、特許文献１には、ＩＤＬＥ状態に磁気ディスク上の任意の領域をチェックすることができる磁気ディスク装置の自己診断方法について開示されている。
また、特許文献２には、短時間で信頼性がある診断を行なうことができる磁気ディスク装置について開示されている。
【００１２】
また、特許文献３には、ハードディスクドライブ、情報処理装置、ディスク制御装置、及びハードディスクドライブの診断方法について開示されている。
また、特許文献４には、大容量記憶装置システムで使用する電磁ディスク・ドライブのトラック・スクイーズ障害などを修復するエラー状態処理方法および装置について開示されている。
【特許文献１】特開昭５８−１８２７７５号公報
【特許文献２】特開平０４−２０５９７２号公報
【特許文献３】特開２００５−１９０００３号公報
【特許文献４】特開２００５−３２２３９９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
本発明は、上述した問題に鑑みてなされたものであり、その解決しようとする課題は、適切なタイミングで適切な領域に対して実行することができる媒体スキャン方法を提供することである。
【課題を解決するための手段】
【００１４】
上記課題を解決するために、本発明に係るディスク装置は、上位装置からの要求に応じて該上位装置から送られる情報を記憶媒体に書き込む書き込み処理を実行するディスク装置であって、該書き込み処理によって前記情報が書き込まれた記憶媒体の状態を監視する媒体監視手段と、該記憶媒体の状態に応じて媒体スキャンが必要か否かを判断する媒体スキャン判断手段と、該媒体スキャン判断手段が媒体スキャンを必要と判断した記憶媒体に対して媒体スキャンを実行する媒体スキャン手段と、を備える。
【００１５】
本発明は、書き込み処理によって情報が書き込まれた記憶媒体の状態を監視し、その記憶媒体の状態に応じて媒体スキャンが必要か否かを判断する。そして、媒体スキャンを必要と判断した媒体に対して媒体スキャンを実行する。すなわち、記憶媒体の状態に応じて、媒体スキャンを実行するタイミングや媒体スキャンをする領域を決定し、その決定した領域に対して媒体スキャンを実行するので、適切なタイミングで適切な領域に対して媒体スキャンを実行することが可能となる。
【００１６】
また、本発明は、上位装置からの要求に応じて該上位装置から送られる情報を記憶媒体に書き込む書き込み処理を実行するディスク装置に実行させる媒体スキャン方法であって、該書き込み処理によって前記情報が書き込まれた記憶媒体の状態を監視する媒体監視処理と、該記憶媒体の状態に応じて媒体スキャンが必要か否かを判断する媒体スキャン判断処理と、該媒体スキャン判断処理によって媒体スキャンを必要と判断された記憶媒体に対して媒体スキャンを実行する媒体スキャン処理と、をディスク装置に実行させる媒体スキャン方法であっても同様の効果を奏する。
【発明の効果】
【００１７】
以上に説明したように、本発明によると、適切なタイミングで適切な領域に対して実行することができる媒体スキャン方法を提供することが可能となる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の実施形態について図１〜図１７に基づいて説明する。
図１は、本発明の実施例に係るディスク装置１０の概要を説明する図である。
本実施例に係るディスク装置１０は、情報を記憶する記憶媒体１１と、ホストコンピュータ等の上位装置からの要求に応じて記憶媒体１１に情報を書き込む書き込み手段１２と、上位装置から記憶媒体１１へのアクセス（すなわち、記憶媒体１１の状態）を監視する媒体監視手段１３と、記憶媒体１１に対する媒体スキャンが必要か否かを判断する媒体スキャン判断手段１５と、を備える。
【００１９】
書き込み手段１２は、ホストコンピュータ等の上位装置からの要求に応じて情報を記憶媒体１１に書き込んで記憶する。
媒体監視手段１３は、書き込み手段１２による記憶媒体１１への書き込み処理を監視することによって、上位装置から記憶媒体１１へのアクセス状態（すなわち、記憶媒体１１の状態）を監視する。例えば、書き込み手段１２が書き込み処理を実行した領域や書き込み処理の回数等を記憶することによって、記憶媒体１１の状態を監視する。
【００２０】
媒体スキャン判断手段１４は、媒体監視手段１３が監視している記憶媒体１１の状態に応じて媒体スキャンが必要か否か、又は媒体スキャンが必要な領域を判断する。
媒体スキャン手段１５は、媒体スキャン判断手段１４が必要と判断した記憶媒体１１（又は、記憶媒体１１の所定の領域）に対して媒体スキャンを行なう。
【００２１】
図２は、本発明の実施例に係るディスク装置１０の構成例を示す図である。
図２に示すディスク装置２０は、情報を記憶する磁気ディスク２１と、磁気ディスク２１を駆動して所望のデータを書き込む又は所望のデータを読み出すドライブ２２と、ドライブ２２を制御するドライブ制御部２３と、上位装置であるホストコンピュータ２４とディスク装置２０との間でデータの送受信を行なうインタフェース制御部２５と、ディスク装置２０の構成要素の制御やホストコンピュータ２４からの要求に応じて情報を磁気ディスク２１に書き込む処理等を行なうＭＰＵ（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２６と、ＭＰＵ２６の動作に必要な情報やプログラム等をＦＬＡＳＨ  ＲＯＭ２８から読み出して一時的に記憶するＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２７と、プログラム等を記憶するＦＬＡＳＨ  ＲＯＭ２８と、を備える。
【００２２】
以上の構成において、媒体監視手段、媒体スキャン判断手段及び媒体スキャン手段は、ＭＰＵ２６がＲＡＭ２７に格納されたプログラムを実行することによって実現することができる。また、記憶媒体１１は、磁気ディスク２１によって実現することができる。
【００２３】
なお、本実施例に係るディスク装置２０は、ディスク装置２０がホストコンピュータからのアクセス状態を監視することで、媒体スキャンが必要な水準に達したか否かを常に監視し、媒体スキャンが必要と判断した場合には速やかに媒体スキャンを実行するディスク装置である。この媒体スキャン処理をインテリジェントバックグラウンドメディアスキャンという。
（１）第１の実施例
以下、本発明の第１の実施例について図３〜図１３に基づいて説明する。
【００２４】
第１の実施例では、磁気ディスク２１を細かいパーティションに分割し、各々のパーティションでヘッド毎にアクセスカウンタを設けることによって、ホストコンピュータ２４からから磁気ディスク２１へのアクセス状態（記憶媒体１１の状態）を細分化して監視する。
【００２５】
図３は、第１の実施例で使用するカウンタテーブル３０の例を示している。
図３に示すカウンタテーブル３０は、磁気ディスク２１の全シリンダをＭ個のパーティション（Ｐａｒｔｉｔｉｏｎ）に分割し、各パーディションの磁気ヘッド毎にカウンタ値を持つカウンタテーブルである。
【００２６】
以下の説明では、パーティション０／磁気ヘッド０の領域をＰ０、パーティション０／磁気ヘッド１の領域をＰ１、・・・とする。
図４は、第１の実施例に係る磁気ディスク２１の書き込み処理を示すフローチャートである。
【００２７】
ステップＳ４０１において、ホストコンピュータ２４からのコマンドを受付けると、ディスク装置２０は、処理をステップＳ４０２に移行する。
ステップＳ４０２において、ステップＳ４０１で受付けたコマンドがデータを書き込む領域（又は、読み出す領域）を特定する。例えば、ライトコマンドは、「ＷＲＩＴＥ  （書き込みを開始する領域のＬＢＡ（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ））  （書き込む領域ブロック数）」のようにデータを書き込む領域が指定されるので、（書き込みを開始する領域のＬＢＡ）と（書き込む領域ブロック数）によってデータを書き込む領域を特定することができる。
【００２８】
ステップＳ４０３において、ディスク装置２０は、ステップＳ４０１で受付けたコマンドにしたがってデータの書き込み処理（又は、読出し処理）を実行する。そして、書き込み処理が完了すると、処理をステップＳ４０４に移行する。
【００２９】
ステップＳ４０４において、ディスク装置２０は、ステップＳ４０１で受付けたコマンドが磁気ディスク２１への書き込み処理を命令するコマンドであるか否かをチェックする。
【００３０】
当該コマンドが磁気ディスク２１への書き込み処理を命令するコマンドである場合、ディスク装置２０は、例えば、ＲＡＭ２７に格納されているカウンタテーブル３０を参照する。そして、ステップＳ４０２で特定した領域に相当する領域Ｐ０〜Ｐｍのカウンタ値をインクリメントする。ステップＳ４０２で特定した領域に対応する領域の全てのカウンタ値をインクリメントすると、ディスク装置２０は、処理を終了する。
【００３１】
なお、本実施例では、ホストコンピュータ２４による磁気ディスク２１へのアクセスを監視するために、磁気ディスク２１への書き込み処理を実行するコマンドについてステップＳ４０４の処理（アクセス監視処理）を実施しているが、必要に応じて、ステップＳ４０４の処理を実施する対象のコマンドを決定してもよい。
【００３２】
図５は、第１の実施例に係る媒体スキャンの処理を示すフローチャートである。
ホストコンピュータ２４から要求がない場合、ディスク装置２０は、ＩＤＬＥ状態となる（ステップＳ５００）。この状態では、ディスク装置２０は、磁気ディスク２１に対して何の処理も行なっていない。ＩＤＬＥ状態となって一定期間経過すると、ディスク装置２０は、処理をステップＳ５０１に移行する。
【００３３】
ステップＳ５０１において、ディスク装置２０は、ＲＡＭ２７に格納されているカウンタテーブル３０を参照する。そして、領域Ｐ０のカウンタ値を取得する。以下、この時の領域を「カレント領域」という。なお、本実施例では、カレント領域を領域Ｐ０、Ｐ１、Ｐ２、・・・、Ｐｍの順にインクリメントして、各領域Ｐ０〜Ｐｍに対してステップＳ５０１〜Ｓ５０９の処理を実行する。
【００３４】
ステップＳ５０２において、ディスク装置２０は、ステップＳ５０１で取得したカレント領域Ｐ０のカウンタ値と閾値（本実施例の場合には１０）とを比較する。そして、カレント領域Ｐ０のカウンタ値が閾値より大きい場合、ディスク装置２０は、処理をステップＳ５０３に移行する。そして、カレント領域Ｐ０に対して媒体スキャンを実行する。
【００３５】
また、ステップＳ５０２において、カレント領域Ｐ０のカウンタ値が閾値以下の場合には、ディスク装置２０は、処理をステップＳ５０４に移行する。そして、全ての領域Ｐ０〜ＰｍについてステップＳ５０２の処理を実行したか否かを判別する。全ての領域についてステップＳ５０２の処理が完了した場合には、ディスク装置２０は、処理をステップＳ５００に移行する。
【００３６】
また、ステップＳ５０４において、ステップＳ５０２の処理を実行していない領域がある場合には、処理をステップＳ５０５に移行する。そして、カレント領域Ｐ０をインクリメントしてＰ１とする。
【００３７】
カレント領域をインクリメントすると、ディスク装置２０は、処理をステップＳ５０１に移行してカウンタテーブル３０を参照し、カレント領域Ｐ１のカウンタ値を取得する。
一方、ステップＳ５０３において、ディスク装置２０による媒体スキャン中に、ホストコンピュータ２４からの要求を受け付けると、ディスク装置２０は、媒体スキャンを中断して、ステップＳ５０６に移行する。
【００３８】
ステップＳ５０６において、ディスク装置２０は、ホストコンピュータ２４からコマンド（例えば、ＲＥＡＤ命令など）を受領したか否かを判別する。そして、コマンドを受領した場合には、処理をステップＳ５０７に移行して、コマンドを実行する。コマンドの実行か完了すると、ディスク装置２０は、処理をステップＳ５０３に移行して中断していた媒体スキャンを再開する。
【００３９】
また、ステップＳ５０６において、コマンドを受領していない場合には、処理をステップＳ５０８に移行する。そして、ステップＳ５０１で特定したカレント領域の最終ＬＢＡまで媒体スキャンが完了しているか否かをチェックする。
【００４０】
ステップＳ５０８において、カレント領域の最終ＬＢＡまで媒体スキャンが完了していない場合には、処理をステップＳ５０３に移行する。そして、中断していた媒体スキャンを再開する。
【００４１】
また、ステップＳ５０８において、カレント領域の最終ＬＢＡまで媒体スキャンが完了している場合には、処理をステップＳ５０９に移行してカレント領域への媒体スキャンを終了する。そして、処理をステップＳ５０４に移行する。
【００４２】
同様にして、全ての領域Ｐ０〜ＰｍについてステップＳ５０１〜Ｓ５０９の処理を実行することとなる。
図６は、第１の実施例に係るカウンタテーブル６０の例を示す図である。
【００４３】
図６に示すカウンタテーブル６０は、８本の磁気ヘッドを備えるディスク装置の全シリンダを８６分割した場合のカウンタテーブルである。したがって、パーティションは０〜８５まである。また、磁気ヘッドは、０〜７まであるので、カウンタテーブル６０は、磁気ディスク装置の記憶領域をＰ０〜Ｐ６８７に分割し、各領域Ｐ０〜Ｐ６８７毎にカウント値を備える。
【００４４】
図７〜９は、図６に示したカウンタテーブル６０のカウントアップの例を示す図である。
図７に示すカウンタテーブル６０は、領域Ｐ０、Ｐ１７にそれぞれ１回、領域Ｐｍに２回書き込み処理が行なわれた場合の例を示している。なお、図中に示す（）内がカウント値を示している。（）の表示がない領域のカウント値は０である。
【００４５】
図８に示すカウンタテーブル６０は、カウント値が閾値を超えている場合の例を示す図である。領域Ｐｍのカウント値は１１となっているので、本実施例に係る閾値１０を超えている。
【００４６】
図９に示すカウンタテーブル６０は、複数の領域のカウント値が閾値を超えている場合の例を示す図である。領域Ｐ１７とＰｍのカウント値はそれぞれ１１、１５となっているので、本実施例に係る閾値１０を超えている。
【００４７】
図１０は、カウント値が閾値を超えた場合に媒体スキャンを実行する媒体スキャン範囲を説明する図である。
媒体スキャン範囲１０１は、図８に示したカウンタテーブル６０の場合の媒体スキャン範囲を示している。図８に示したカウンタテーブル６０は、領域Ｐｍのカウンタ値が閾値を超えている。この場合には、領域Ｐｍと領域Ｐｍの前後１Ｃｅｌｌの領域を媒体スキャン範囲としている。
【００４８】
なお、１Ｃｅｌｌは、各領域Ｐ０〜Ｐ６８７を構成する最小単位である。例えば、本実施例に係る領域Ｐ０〜Ｐ６８７は、それぞれ３２Ｃｅｌｌで１つの領域を構成している。
ここで、本実施例に係る媒体スキャンは、図５に示したようにカウンタテーブル６０のカウント値が閾値を越えた領域に対してのみ媒体スキャンを実施しているが、例えば、ステップＳ５０１及びＳ５０２の処理によって図１０に示す媒体スキャン範囲１０２を決定し、この媒体スキャン範囲１０２に対してステップＳ５０３〜Ｓ５０９の媒体スキャン処理を実施してもよい。
【００４９】
媒体スキャン範囲１０２は、図９に示したカウンタテーブル６０の場合の媒体スキャン範囲の例を示している。図９に示したカウンタテーブル６０は、領域Ｐ１７と領域Ｐｍの複数の領域のカウント値が閾値を超えている。媒体スキャン範囲１０２は、閾値を超えたカウント値を有する領域のうち、最小の領域番号Ｐ１７を持つ領域Ｐ１７と最大の領域番号Ｐｍを持つ領域Ｐｍに挟まれた全領域（領域Ｐ１７、Ｐ１８、・・・、Ｐｍ）と、その前後１Ｃｅｌｌの領域を媒体スキャン範囲としている。
【００５０】
図１１は、媒体スキャン中にコマンドを受領した場合の処理を説明する図である。図に示す１ｔｒｋ（トラック）とは、１回の処理でディスク装置２０がデータをＲＥＡＤする領域を示している。
【００５１】
例えば、ディスク装置２０が（媒体１１０左から）Ａまで媒体スキャンした時にコマンドを受領した場合、その時点で媒体スキャンを中断する。そして、コマンドの実行が完了した後Ａから媒体スキャンを再開する。
【００５２】
また、ディスク装置２０が（媒体１１０左から）ＢまでＲＥＡＤ処理が実行された時にコマンドを受領した場合、Ｃまで媒体スキャンをしてから媒体スキャンを中断する。そして、コマンドの実行が完了した後Ｃから媒体スキャンを再開する。
【００５３】
図１２は、媒体スキャン範囲に交替セクタを含んでいる場合の処理を説明する図である。
例えば、図８に示したカウンタテーブル６０の場合、領域Ｐｍと領域Ｐｍの前後１Ｃｅｌｌの領域が媒体スキャン範囲となる。この範囲のセクタがディフェクトセクタ１２０１であるため交替シリンダ１２０２に交替処理されている場合は、領域Ｐｍとその前後１Ｃｅｌｌ（図に示す範囲ａ）及び交替シリンダ１２０２とその前後１Ｃｅｌｌ（図に示す範囲ｂ）を媒体スキャン範囲として媒体スキャンを実行する。
【００５４】
図１３は、媒体スキャン範囲に交替シリンダを含んでいる場合の処理を説明する図である。
例えば、図８に示したカウンタテーブル６０の場合、領域Ｐｍ（図では、Ｐｍ１と領域ＡとＰｍ２を合わせた領域）と領域Ｐｍの前後１Ｃｅｌｌの領域が媒体スキャン範囲となる。領域Ａが交替シリンダ１３０１のセクタ０〜２に割り付けられている場合、まず、領域Ｐｍ１及びＰｍ２と領域Ｐｍの前後１Ｃｅｌｌの領域にについて媒体スキャンを実行する（図に示す範囲ａ及びｂに対して媒体スキャンを実行する）。そして、領域Ａを割り付けた交替シリンダ１３０１のセクタ０〜２に対して媒体スキャンを実行する（図に示す範囲ｃに対して媒体スキャンを実行する）。
【００５５】
図１４は、第１の実施例に係る媒体スキャン中に媒体スキャン範囲が変更された場合の処理について説明する図である。
媒体スキャン範囲ａ〜ｂは、媒体スキャン開始時に特定した媒体スキャン範囲を示す。また、媒体スキャン範囲ｃ〜ｄは、媒体スキャン開始後かつ媒体スキャン実行中に例えばホストコンピュータ２４からのアクセス頻度が多くなったために新たに媒体スキャンが必要となった媒体スキャン範囲を示す。
【００５６】
図１４に示すように、媒体１４００のＸまで媒体スキャンが進んだ時に、新たに媒体スキャンが必要な領域が生じた場合、ディスク装置２０は、媒体スキャン開始時の媒体スキャン範囲ａ〜ｂに、新たに生じた媒体スキャン範囲ｃ〜ｄを追加（又は結合）した範囲を媒体スキャン範囲として、媒体スキャンを続行する。
【００５７】
以上に説明したように、第１の実施例に係るディスク装置２０は、磁気ディスク２１による記憶領域を細かいパーティションに分割し、各々のパーティションにおけるヘッド毎のアクセスをカウンタテーブル６０によって管理する。そして、カウント値が閾値を超過した領域について媒体スキャンを実行しているので、ホストコンピュータ２４からアクセス（書き込み処理）が集中した領域など媒体スキャンを必要とする領域に対して的確に媒体スキャンを実行する。
【００５８】
また、ディスク装置２０は、一定間隔で常にカウンタテーブル６０をチェックしているので、閾値を超過したカウント値を検出すると直ちに媒体スキャンを実行することになる。
【００５９】
すなわち、第１の実施例に係るディスク装置２０は、適切なタイミングで適切な領域に対して媒体スキャンを実行することができる効果を奏する。その結果、リードエラーの発生を事前に防止する精度が向上し、さらに、コマンド実行時に回復可能なリードエラーを検出してセクタ交替をしなければならない場面を減少させることが可能となる。そして、必要最小限の領域に対して媒体スキャンを実行することが可能となる。
（２）第２の実施例
以下、本発明の第２の実施例について図１５〜図１７に基づいて説明する。
【００６０】
図１５は、第２の実施例に係るディスク装置２０がホストコンピュータから磁気ディスク２１へのアクセス状態を監視する処理を説明する図である。
ディスク装置２０は、アクセス範囲を監視するために、ホストコンピュータ２４から受領したコマンドに応じて書き込み処理を実行した範囲の先頭ＬＢＡ及び最終ＬＢＡを例えばＲＡＭ２７に記憶する。以下、この先頭ＬＢＡ及び最終ＬＢＡを「範囲カウンタ」という。なお、本実施例では過去に書き込み処理を実行した領域が全て含まれる領域を範囲カウンタに記憶する。
【００６１】
例えば、領域ａ〜ｂにデータを書き込むコマンド１を実行すると、ディスク装置２０は、（先頭ＬＢＡ、最終ＬＢＡ）として（ａ、ｂ）をＲＡＭ２７に記憶する。次に、領域ｃ〜ｄにデータを書き込むコマンド２を実行すると、ａ＜ｃ＜ｂ＜ｄなので、ディスク装置２０は、（先頭ＬＢＡ、最終ＬＢＡ）を（ａ、ｄ）に更新する。
【００６２】
さらに、領域ｅ〜ｆにデータを書き込むコマンド３を実行すると、ｅ＜ａ＜ｆ＜ｄなので、ディスク装置２０は、（先頭ＬＢＡ、最終ＬＢＡ）を（ｅ、ｄ）に更新する。また、領域ｇ〜ｈにデータを書き込むコマンド４を実行すると、ｅ＜ｇ＜ｄ＜ｈなので、ディスク装置２０は、（先頭ＬＢＡ、最終ＬＢＡ）を（ｅ、ｈ）に更新する。
【００６３】
以上のようにして、アクセス範囲、すなわち、ディスク装置２０の磁気ディスク２１に対する書き込み処理の範囲を監視する。
図１６は、第２の実施例に係る磁気ディスク２１への書き込み処理を示すフローチャートである。
【００６４】
ステップＳ１６００において、ホストコンピュータ２４からディスク装置２０へのアクセスの監視を開始すると、ディスク装置２０は、タイマを起動して経過時間を記録する。
ステップＳ１６０１において、ホストコンピュータ２４からのコマンドを受付けると、ディスク装置２０は、処理をステップＳ１６０２に移行する。
【００６５】
ステップＳ１６０２において、ディスク装置２０は、ステップＳ１６０１で受付けたコマンドがデータを書き込む領域（又は、読み出す領域）を特定する。例えば、ライトコマンドは、「ＷＲＩＴＥ  （書き込みを開始する領域のＬＢＡ）  （書き込む領域ブロック数）」のようにデータを書き込む領域が指定されるので、（書き込みを開始する領域のＬＢＡ）と（書き込む領域ブロック数）によってデータを書き込む領域を特定することができる。
【００６６】
ステップＳ１６０３において、ディスク装置２０は、ステップＳ１６０１で受付けたコマンドにしたがってデータの書き込み処理（又は、読出し処理）を実行する。そして、コマンドの実行が完了すると、処理をステップＳ１６０４に移行する。
【００６７】
ステップＳ１６０４において、ディスク装置２０は、ステップＳ１６０１で受付けたコマンドが磁気ディスク２１への書き込み処理を命令するコマンドであるか否かをチェックする。
【００６８】
当該コマンドが磁気ディスク２１への書き込み処理を命令するコマンドである場合、ディスク装置２０は、例えば、ＲＡＭ２７を参照し、図１５で説明したように範囲カウンタを更新する。また、コマンドを実行した回数をカウントするコマンドカウンタを更新する（インクリメントする）。
【００６９】
なお、本実施例では、ホストコンピュータ２４による磁気ディスク２１へのアクセスを監視するために、磁気ディスク２１への書き込み処理を実行するコマンドについてステップＳ１６０４の処理（アクセス監視処理）を実施しているが、必要に応じて、ステップＳ１６０４の処理を実施する対象のコマンドを決定してもよい。
【００７０】
図１７は、第２の実施例に係る媒体スキャンの処理を示すフローチャートである。
ホストコンピュータ２４から要求がない場合、ディスク装置２０は、ＩＤＬＥ状態となる（ステップＳ１７００）。この状態では、ディスク装置２０は、磁気ディスク２１に対して何の処理も行なっていない。ＩＤＬＥ状態となって一定期間経過すると、ディスク装置２０は、処理をステップＳ１７０１に移行する。
【００７１】
ステップＳ１７０１において、ディスク装置２０は、ＲＡＭ２７に格納されているコマンドカウンタを参照する。そして、コマンドの実行回数（以下、「コマンド数」という）を取得し、閾値（例えば、１０回）と比較する。比較の結果、コマンド数が閾値以下の場合には、ディスク装置２０は、処理をステップＳ１７００に移行する。
【００７２】
また、ステップＳ１７０１における比較の結果、コマンド数が閾値より大きい場合には、処理をステップＳ１７０２に移行する。
ステップＳ１７０２において、ディスク装置２０は、図１６のステップＳ１６００で起動したタイマの経過時間を参照する。そして、アクセス監視を開始してから経過した時間（以下、「監視時間」という）を取得する。
【００７３】
さらに、監視時間と閾値（例えば、３０分）とを比較する。比較の結果、監視時間が閾値以下の場合には、ディスク装置２０は、処理をステップＳ１７００に移行する。また、ステップＳ１７０２における比較の結果、監視時間が閾値より大きい場合には、処理をステップＳ１７０３に移行する。
【００７４】
ステップＳ１７０３に処理を移行すると、ディスク装置２０は、ＲＡＭ２７に格納されている範囲カウンタを参照する。そして、媒体スキャン対象となる領域の先頭ＬＢＡと最終ＬＢＡを取得し、当該領域に対して媒体スキャンを実行する。
【００７５】
ステップＳ１７０３において、ディスク装置２０による媒体スキャン中に、ホストコンピュータ２４からの要求を受け付けると、ディスク装置２０は、媒体スキャンを中断して、ステップＳ１７０４に移行する。
【００７６】
ステップＳ１７０４において、ディスク装置２０は、ホストコンピュータ２４からコマンド（例えば、ＲＥＡＤ命令など）を受領したか否かを判別する。そして、コマンドを受領した場合には、処理をステップＳ１７０５に移行して、コマンドを実行する。
【００７７】
コマンドの実行か完了すると、ディスク装置２０は、処理をステップＳ１７０３に移行して中断していた媒体スキャンを再開する。
また、ステップＳ１７０４において、コマンドを受領していない場合には、処理をステップＳ１７０６に移行する。そして、ステップＳ１７０３で取得したカレント領域の最終ＬＢＡまで媒体スキャンが完了しているか否かをチェックする。
【００７８】
ステップＳ１７０６において、カレント領域の最終ＬＢＡまで媒体スキャンが完了していない場合には、処理をステップＳ１７０３に移行する。そして、中断していた媒体スキャンを再開する。
【００７９】
また、ステップＳ１７０６において、カレント領域の最終ＬＢＡまで媒体スキャンが完了している場合には、処理をステップＳ１７０７に移行してカレント領域への媒体スキャンを終了する。そして、処理をステップＳ１７００に移行する。
【００８０】
以上に説明した媒体スキャンの処理は、ステップＳ１７０１（コマンド数の比較）とＳ１７０２（監視時間の比較）の両方の処理を実施している場合について説明したが、ステップＳ１７０１とＳ１７０２のうち少なくとも１つの処理を実施すればよい。
【００８１】
また、第２の実施例においても図１０〜図１４と同様の処理によって媒体スキャンが実行される。
以上に説明したように、第２の実施例に係るディスク装置２０は、磁気ディスク２１に書き込み処理があった領域の最大範囲を監視し、コマンド数又は監視時間がそれぞれの閾値を超過した場合（ホストコンピュータ２４から磁気ディスク２１へのアクセス頻度が閾値を超過した場合）に媒体スキャンを実行しているので、第１の実施例と同様に、適切なタイミングで適切な領域に対して媒体スキャンを実行することができる効果を奏する。
【００８２】
また、第１の実施例と同様の効果に加え、その論理構成が第１の実施例に係る媒体スキャンと比較して簡単なため容易に第２の実施例に係る媒体スキャンをディスク装置２０に実装することが可能となる効果を奏する。
【００８３】
（付記１）  上位装置からの要求に応じて該上位装置から送られる情報を記憶媒体に書き込む書き込み処理を実行するディスク装置であって、
該書き込み処理によって前記情報が書き込まれた記憶媒体の状態を監視する媒体監視手段と、
該記憶媒体の状態に応じて媒体スキャンが必要か否かを判断する媒体スキャン判断手段と、
該媒体スキャン判断手段が媒体スキャンを必要と判断した記憶媒体に対して媒体スキャンを実行する媒体スキャン手段と、
を備えるディスク装置。
（付記２）  前記媒体監視手段は、
前記上位装置から前記記憶媒体への書込み処理の回数を、該記憶媒体を所定の領域に分割した分割領域毎にカウントし、
前記チェック判断手段は、
該分割領域への書込み処理の回数が所定の回数より大きい分割領域を媒体スキャンの対象と判断する、
ことを特徴とする付記１に記載のディスク装置。
（付記３）  前記チェック判断手段は、
前記分割領域への書込み処理の回数が所定の回数より大きい分割領域と、該分割領域に隣接する所定の領域と、を媒体スキャンの対象と判断する、
ことを特徴とする付記２に記載のディスク装置。
（付記４）  前記媒体監視手段は、
前記記憶媒体への書き込み処理が行なわれる毎に、該書き込み処理が行なわれた領域を包含するアクセス範囲を更新するとともに、該書き込み処理の回数をカウントし、
前記チェック判断手段は、
前記記憶媒体への書き込み処理の回数が所定の回数より大きい場合に、前記アクセス範囲を媒体スキャンの対象と判断する、
ことを特徴とする付記１に記載のディスク装置。
（付記５）  前記チェック判断手段は、
前記アクセス範囲の領域と、該アクセス範囲に隣接する所定の領域と、を媒体スキャンの対象と判断する、
ことを特徴とする付記４に記載のディスク装置。
（付記６）  前記媒体監視手段は、
前記記憶媒体への書き込み処理が行なわれる毎に、該書き込み処理が行なわれた領域を包含するアクセス範囲を更新するとともに、アクセス監視を開始した時からの経過時間を計測し、
前記チェック判断手段は、
該経過時間が所定の時間を超えた場合に、前記媒体スキャン範囲を媒体スキャンの対象と判断する、
ことを特徴とする付記１に記載のディスク装置。
（付記７）  前記チェック判断手段は、
前記アクセス範囲の領域と、該アクセス範囲に隣接する所定の領域と、を媒体スキャンの対象と判断する、
ことを特徴とする付記６に記載のディスク装置。
（付記８）  上位装置からの要求に応じて該上位装置から送られる情報を記憶媒体に書き込む書き込み処理を実行するディスク装置に実行させる媒体スキャン方法であって、
該書き込み処理によって前記情報が書き込まれた記憶媒体の状態を監視する媒体監視処理と、
該記憶媒体の状態に応じて媒体スキャンが必要か否かを判断する媒体スキャン判断処理と、
該媒体スキャン判断処理によって媒体スキャンを必要と判断された記憶媒体に対して媒体スキャンを実行する媒体スキャン処理と、
をディスク装置に実行させる媒体スキャン方法。
（付記９）  前記媒体監視処理は、
前記上位装置から前記記憶媒体への書込み処理の回数を、該記憶媒体を所定の領域に分割した分割領域毎にカウントし、
前記チェック判断処理は、
該分割領域への書込み処理の回数が所定の回数より大きい分割領域を媒体スキャンの対象と判断する、
ことを特徴とする付記８に記載の媒体スキャン方法。
（付記１０）  前記媒体監視処理は、
前記記憶媒体への書き込み処理が行なわれる毎に、該書き込み処理が行なわれた領域を包含するアクセス範囲を更新するとともに、該書き込み処理の回数をカウントし、
前記チェック判断処理は、
前記記憶媒体への書き込み処理の回数が所定の回数より大きい場合に、前記アクセス範囲を媒体スキャンの対象と判断する、
ことを特徴とする付記８に記載の媒体スキャン方法。
（付記１１）  前記媒体監視処理は、
前記記憶媒体への書き込み処理が行なわれる毎に、該書き込み処理が行なわれた領域を包含するアクセス範囲を更新するとともに、アクセス監視を開始した時からの経過時間を計測し、
前記チェック判断処理は、
該経過時間が所定の時間を超えた場合に、前記媒体スキャン範囲を媒体スキャンの対象と判断する、
ことを特徴とする付記８に記載の媒体スキャン方法。
【００８４】
（付記１２）  上位装置からの要求に応じて該上位装置から送られる情報を記憶媒体に書き込む書き込み処理によって前記情報が書き込まれた記憶媒体の状態を監視する媒体監視手段と、
該記憶媒体の状態に応じて媒体スキャンが必要か否かを判断する媒体スキャン判断手段と、
該媒体スキャン判断手段が媒体スキャンを必要と判断した記憶媒体に対して媒体スキャンを実行する媒体スキャン手段と、
を備えるスキャンコントローラ。
（付記１３）  前記媒体監視手段は、
前記上位装置から前記記憶媒体への書込み処理の回数を、該記憶媒体を所定の領域に分割した分割領域毎にカウントし、
前記チェック判断手段は、
該分割領域への書込み処理の回数が所定の回数より大きい分割領域を媒体スキャンの対象と判断する、
ことを特徴とする付記１２に記載のスキャンコントローラ。
（付記１４）  前記チェック判断手段は、
前記分割領域への書込み処理の回数が所定の回数より大きい分割領域と、該分割領域に隣接する所定の領域と、を媒体スキャンの対象と判断する、
ことを特徴とする付記１３にスキャンコントローラ。
（付記１５）  前記媒体監視手段は、
前記記憶媒体への書き込み処理が行なわれる毎に、該書き込み処理が行なわれた領域を包含するアクセス範囲を更新するとともに、該書き込み処理の回数をカウントし、
前記チェック判断手段は、
前記記憶媒体への書き込み処理の回数が所定の回数より大きい場合に、前記アクセス範囲を媒体スキャンの対象と判断する、
ことを特徴とする付記１２に記載のスキャンコントローラ。
（付記１６）  前記チェック判断手段は、
前記アクセス範囲の領域と、該アクセス範囲に隣接する所定の領域と、を媒体スキャンの対象と判断する、
ことを特徴とする付記１５に記載のスキャンコントローラ。
（付記１７）  前記媒体監視手段は、
前記記憶媒体への書き込み処理が行なわれる毎に、該書き込み処理が行なわれた領域を包含するアクセス範囲を更新するとともに、アクセス監視を開始した時からの経過時間を計測し、
前記チェック判断手段は、
該経過時間が所定の時間を超えた場合に、前記媒体スキャン範囲を媒体スキャンの対象と判断する、
ことを特徴とする付記１２に記載のスキャンコントローラ。
（付記１８）  前記チェック判断手段は、
前記アクセス範囲の領域と、該アクセス範囲に隣接する所定の領域と、を媒体スキャンの対象と判断する、
ことを特徴とする付記１７に記載のスキャンコントローラ。
【図面の簡単な説明】
【００８５】
【図１】本発明の実施例に係るディスク装置の概要を説明する図である。
【図２】本発明の実施例に係るディスク装置の構成例を示す図である。
【図３】第１の実施例で使用するカウンタテーブルの例を示している。
【図４】第１の実施例に係る磁気ディスクの書き込み処理を示すフローチャートである。
【図５】第１の実施例に係る媒体スキャンの処理を示すフローチャートである。
【図６】第１の実施例に係るカウンタテーブルの例を示す図である。
【図７】図６に示したカウンタテーブルのカウントアップの例を示す図である。
【図８】図６に示したカウンタテーブルのカウントアップの例を示す図である。
【図９】図６に示したカウンタテーブルのカウントアップの例を示す図である。
【図１０】第１の実施例に係るカウント値が閾値を超えた場合に媒体スキャンを実行する媒体スキャン範囲を説明する図である。
【図１１】媒体スキャン中にコマンドを受領した場合の処理を説明する図である。
【図１２】媒体スキャン範囲に交替セクタを含んでいる場合の処理を説明する図である。
【図１３】媒体スキャン範囲に交替シリンダを含んでいる場合の処理を説明する図である。
【図１４】第１の実施例に係る媒体スキャン中に媒体スキャン範囲が変更された場合の処理について説明する図である。
【図１５】第２の実施例に係るディスク装置がホストコンピュータからのアクセス状態を監視する処理を説明する図である。
【図１６】第２の実施例に係る磁気ディスクの書き込み処理を示すフローチャートである。
【図１７】第２の実施例に係る媒体スキャンの処理を示すフローチャートである。
【符号の説明】
【００８６】
１０      ディスク装置
１１      記憶媒体
１２      書き込み手段
１３      媒体監視手段
１４      媒体スキャン判断手段
１５      媒体スキャン手段
２０      ディスク装置
２１      磁気ディスク
２２      ドライブ
２３      ドライブ制御
２４      ホストコンピュータ
２５      インタフェース制御部
２６      ＭＰＵ
２７      ＲＡＭ
３０      カウンタテーブル
【図１】
2007242207.tif 000003
【図２】
2007242207.tif 000004
【図３】
2007242207.tif 000005
【図４】
2007242207.tif 000006
【図５】
2007242207.tif 000007
【図６】
2007242207.tif 000008
【図７】
2007242207.tif 000009
【図８】
2007242207.tif 000010
【図９】
2007242207.tif 000011
【図１０】
2007242207.tif 000012
【図１１】
2007242207.tif 000013
【図１４】
2007242207.tif 000014
【図１５】
2007242207.tif 000015
【図１６】
2007242207.tif 000016
【図１７】
2007242207.tif 000017
【図１２】
2007242207.tif 000018
【図１３】
2007242207.tif 000019