(57)【要約】【課題】ＨＤＤのベリファイを実行したときに、ＨＤＤの振動の影響によりベリファイの完了までの時間が長くなること防ぐことを目的とする。【解決手段】ＨＤＤの所定領域の応答時間を記憶した記憶部を参照して、予め測定したＨＤＤの所定領域の応答時間と、前記ＨＤＤのベリファイの実行前に測定した前記所定領域の応答時間とを比較し、比較した結果に基づき前記ＨＤＤに振動が生じているか否かを判定する判定部と、前記ＨＤＤに振動が生じていないと判定した場合、前記ＨＤＤのベリファイを実行するベリファイ処理部と、を有するＲＡＩＤ装置が提供される。【選択図】図１１
2018125054.tif 000002
【特許請求の範囲】
【請求項１】
ＨＤＤの所定領域の応答時間を記憶した記憶部を参照して、予め測定したＨＤＤの所定領域の応答時間と、前記ＨＤＤのベリファイの実行前に測定した前記所定領域の応答時間とを比較し、比較した結果に基づき前記ＨＤＤに振動が生じているか否かを判定する判定部と、
前記ＨＤＤに振動が生じていないと判定した場合、前記ＨＤＤのベリファイを実行するベリファイ処理部と、
を有するＲＡＩＤ装置。
【請求項２】
前記判定部は、予め測定した前記ＨＤＤの複数の所定領域の応答時間と、前記ベリファイの実行前に測定した前記複数の所定領域の応答時間とを比較し、予め決めた所定数よりも多くの領域において前記ベリファイの実行前に測定した応答時間が、予め測定した前記応答時間よりも遅い場合、前記ＨＤＤに振動が生じていると判定する、
請求項１に記載のＲＡＩＤ装置。
【請求項３】
予め測定したＨＤＤの所定領域の応答時間と、前記ＨＤＤのベリファイの実行前に測定した前記所定領域の応答時間とを比較し、比較した結果に基づき前記ＨＤＤに振動が生じているか否かを判定する処理と、
前記ＨＤＤに振動が生じていないと判定した場合、前記ＨＤＤのベリファイを実行する処理と、
をコンピュータに実行させるためのベリファイ処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＲＡＩＤ装置及びベリファイ処理プログラムに関する。
【背景技術】
【０００２】
信頼性が求められるＨＤＤ（Hard Disk Drive）では、各トラックのチェックを行うＨＤＤのベリファイ（以下、「パトロールＶｅｒｉｆｙ」という。）を定期的に行っている。ところが、ＨＤＤ自体が振動しているときに、ＨＤＤの記憶媒体のすべてのセクタが磁気ヘッドの下を通過する処理を行うと、ＨＤＤの振動に伴う磁気ヘッドの振動によって、磁気ヘッドの衝突（ヘッドクラッシュ）等の障害が生じる可能性がある。そこで、ＨＤＤが振動している間、磁気ヘッドを退避させることで、ヘッドクラッシュを防止する技術が知られている（例えば、特許文献１、２参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平６−２７５００２号公報
【特許文献２】特開昭６１−２２７２２１号公報
【特許文献３】特開２００６−０８５５９２号公報
【特許文献４】特開２００５−３２２３９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、ヘッドクラッシュが発生するほどではないけれども、振動により読み取りや書き込みに影響が生じる場合がある。この場合、何度かリトライを繰り返せば読み取りや書き込みができるときには、磁気ヘッドの退避はされない。そのようなときにパトロールＶｅｒｉｆｙを行うと、ＨＤＤの振動の影響により読み取りや書き込みミスが生じたときに、その記憶領域の記録状態が正常であってもデータの読み直しや書き直しが発生するためにパトロールＶｅｒｉｆｙに要する時間が長くなる。
【０００５】
そこで、１つの側面では、本発明は、ＨＤＤのベリファイを実行したときに、ＨＤＤの振動の影響によりベリファイの完了までの時間が長くなること防ぐことを目的とする。
【課題を解決するための手段】
【０００６】
１つの実施態様では、ＨＤＤの所定領域の応答時間を記憶した記憶部を参照して、予め測定したＨＤＤの所定領域の応答時間と、前記ＨＤＤのベリファイの実行前に測定した前記所定領域の応答時間とを比較し、比較した結果に基づき前記ＨＤＤに振動が生じているか否かを判定する判定部と、前記ＨＤＤに振動が生じていないと判定した場合、前記ＨＤＤのベリファイを実行するベリファイ処理部と、を有するＲＡＩＤ装置が提供される。
【発明の効果】
【０００７】
１つの側面では、本発明は、ＨＤＤのベリファイを実行したときに、ＨＤＤの振動の影響によりベリファイの完了までの時間が長くなること防ぐことができる。
【図面の簡単な説明】
【０００８】
【図１】一実施形態に係るＲＡＩＤシステムを説明するための図。
【図２】一実施形態に係るＲＡＩＤ装置のハードウェア構成の一例を示す図。
【図３】一実施形態に係るＲＡＩＤ装置の機能構成の一例を示す図。
【図４】一実施形態に係る応答時間テーブルの一例を示す図。
【図５】一実施形態に係る応答時間を測定するセクタを説明するための図。
【図６】一実施形態に係るパトロールアドレステーブルの一例を示す図。
【図７】Identify Device情報の一例を示す図。
【図８】一実施形態に係る応答時間測定処理の一例を示すフローチャート。
【図９】一実施形態に係るＲＡＩＤ装置のアイドル処理（ループ）の一例を示すフローチャート。
【図１０】コマンドコードマトリックスの一例を示す図。
【図１１】一実施形態に係るベリファイ処理の一例を示すフローチャート。
【図１２】一実施形態に係る応答時間判定処理の一例を示すフローチャート。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省く。
【００１０】
［ＲＡＩＤシステム］
まず、本発明の一実施形態に係るＲＡＩＤシステムについて、図１を参照しながら説明する。図１は、本発明の一実施形態に係るＲＡＩＤシステムの一例を示す。たとえばパーソナルコンピュータ（以下、「ＰＣ」という。）等に設けられた、大容量のデータを保持するハードディスク（以下、「ＨＤＤ」という。）が故障した場合のデータ損失や業務停止を防ぐ目的で、ＲＡＩＤシステムを導入する場合がある。ＲＡＩＤシステム方式には、いくつかのレベルがあるが、ＲＡＩＤ１では、同じデータを格納したディスクの「コピー」を用意することで、ＨＤＤの故障に備えており、通常は２台のＨＤＤを使って実現する。
【００１１】
最近では、図１に示すように、３台のＨＤＤを使ったトリプルミラーの構成が実現されており、同じデータを格納したディスクを３台のＨＤＤで動作させている。この場合、２台のＨＤＤが故障しても、システム運用が行えるものである。
【００１２】
ＲＡＩＤ装置２０には、ＲＡＩＤシステムを制御するＲＡＩＤコントローラが設けられている。ＲＡＩＤコントローラは、ホスト（ＰＣ）からのアクセスが無い時間を利用して、ＨＤＤの各セクタまたはブロックのベリファイ（Ｖｅｒｉｆｙ）を行う機能がある。以下、ＨＤＤのベリファイの実行を、「パトロールＶｅｒｉｆｙ」又は「ベリファイの実行」ともいう。パトロールＶｅｒｉｆｙは、ＨＤＤの各セクタやデータ・ブロックの定期的な読み取り動作を実行し、読み取り不可となっているセクタやデータ・ブロックがあれば、同じデータが格納された他のＨＤＤから当該データをコピーして、データを復旧する機能である。
【００１３】
パトロールＶｅｒｉｆｙでは、ＲＡＩＤコントローラは、テストするセクタ又はデータ・ブロックに対してRead Verify Sectorコマンドを発行す。ＲＡＩＤコントローラは、Read Verify Sectorコマンドが正常終了したか否かを判断して、当該セクタ又はデータ・ブロックのデータの良否を判定する。
【００１４】
本実施形態に係るＲＡＩＤ装置２０のパトロールＶｅｒｉｆｙには、Read Verify Sectorコマンドの結果だけではなく、コマンド発行からコマンド終了までに要した応答時間を利用するものがある。ＲＡＩＤ装置２０は、応答時間が閾値を大幅に上回った場合に、当該セクタもしくはデータ・ブロックに対して、他のＨＤＤの同一セクタもしくは同一データ・ブロックにある情報を読み込んだ後に、その情報を書き込む機能を備えているものがある。これにより、ＡＴＩ（Adjacent Track Interference：隣接トラック干渉）要因によるもののみならず、ＨＤＤ内に発生した不安定な記録状態を回復して、正常なセクタもしくはデータ・ブロックに戻すことができる。これによって、ＨＤＤの潜在的な不具合箇所を予め修復し、これにより当該セクタもしくはデータ・ブロックの読み込み（ＲＥＡＤ）応答時間を改善することが可能となる。
【００１５】
［ＳＭＲ記録方式］
近年、ＨＤＤの記録データの高密度化を図るため、ＳＭＲ（Shingled Magnetic Recording）のＨＤＤの記録方式が採用されている。ＳＭＲ記録方式の特徴としては、隣接トラックの間隔が狭いため、振動に影響を受けやすく、振動時に書き込み（Ｗｒｉｔｅ）／読み出し（Ｒｅａｄ）を実施すると、メディア（磁気媒体）面へのアクセス時にリトライが頻発する場合や、一部のトラックが狭くなり、データが不安定なまま記録され、アクセス異常が発生する場合がある。
【００１６】
これにより、ＳＭＲ記録方式が採用されている場合、ＨＤＤに外部から振動を受けながら動作している際に、ＨＤＤに対してデータを読み出すＲｅａｄコマンドや書き込むＷｒｉｔｅコマンドの応答時間が、振動等が加わっていない状態よりも極端に長くなる場合がある。これは、振動により磁性体面や磁気ヘッド（およびアーム）が揺れ、トラックの位置決め制御が不安定となり、トラック自体の幅が狭くなっていることが影響して、リトライを繰り返すことが多くなるためである。
【００１７】
特に、必ずＨＤＤの磁性体面にアクセスするコマンド（例えば、Read Verify Sectorコマンド）の場合、ＨＤＤ内のキャッシュにヒットすることもなく、必ず磁性体面にアクセスするため、コマンドの応答時間が顕著に遅くなる場合がある。
【００１８】
ＳＭＲ記録方式が採用されていない場合においても、外部からの振動によってRead Verify SectorコマンドやＲＥＡＤコマンドの応答速度が遅くなった場合には、記録状態が正常であっても応答が遅れることになる。そして、それをトリガとしてデータの書き直しを行うと、記録状態が正常であっても、データの書き直しが発生し、Ｖｅｒｉｆｙ動作に負荷がかかることになる。さらに振動中にＨＤＤに書込みを行うと、記録状態が悪化する場合がある。
【００１９】
これはＨＤＤが振動等の外部要因によって応答速度が遅くなってしまったり、応答ができなくなることが、パトロールＶｅｒｉｆｙ処理内で考慮されておらず、一意的に磁気記録の異常（品質低下）と判断していたことが原因となっている。したがって、応答時間の長時間化が、「一部の磁気記録部の異常」であるのか、「ＨＤＤ全体としての応答低下」であるのか、を見極める必要がある。特に近年、新しい記録方式であるＳＭＲ方式を採用したＨＤＤでは、記録密度が従来方式よりも格段に上がっている一方、新しい記録方式では、トラック幅が既存のＨＤＤに比べて狭い。このため、外部からの振動に対してオフトラックになる頻度が高く、応答時間が長くなったり、リードエラーになったりする頻度が上がっており、対策が必要となっている。
【００２０】
そこで、本実施形態に係るＲＡＩＤ装置２０では、パトロールＶｅｒｉｆｙの実行前に、予め応答時間が測定されているセクタに対してコマンドを発行し、応答時間が著しく低下している場合にはパトロールＶｅｒｉｆｙを中断する。これにより、ＨＤＤの揺れの影響により発生した読み込みミスによって該当部分への再書き込みが発生して、パトロールＶｅｒｉｆｙの完了までの時間が長くなること防ぐことができる。以下、本実施形態に係るＲＡＩＤ装置２０の構成及び動作について詳細に説明する。
【００２１】
［ハードウェア構成］
まず、本発明の一実施形態に係るＲＡＩＤシステムの各装置のハードウェア構成の一例について、図２を参照しながら説明する。図２は、ＲＡＩＤシステムのＰＣ（Personal Computer）１０及びＲＡＩＤ装置２０のハードウェア構成の一例を示している。
【００２２】
ＰＣ１０は、ＣＰＵ（Central Processing Unit）１１、チップセット１２、メモリ１３、ＲＡＩＤ装置２０、グラフィックスコントローラ１５、ディスプレイ１６、入出力コントローラ１７及びキーボード１８を有する。ＰＣ１０は、通信機能を有する場合には、送受信を行う周知の通信インターフェースをさらに有しても良い。また、端末装置１がインターネットなどの外部のネットワークと接続する機能を有する場合には、周知の外部インターフェースをさらに有しても良い。
【００２３】
チップセット１２は、ＰＣ１０の全体を制御する。チップセット１２は、ＣＰＵ１１と接続されている。また、チップセット１２は、バスＢを介して、メモリ１３、ＲＡＩＤ装置２０、グラフィックスコントローラ１５及び入出力コントローラ１７と接続されている。更に、バスＢには、例えばＰＣＩ  Ｅｘｐｒｅｓｓ又はＰＣＩ等の拡張スロットが接続されていてもよい。ＣＰＵ１１は、ＰＣ１０を制御するためのコンピュータプログラムを実行することにより、ＰＣ１０の種々の機能を実現できる。
【００２４】
メモリ１３は、ＣＰＵ１１が実行するコンピュータプログラム、各種データなどを格納する。メモリ１３は、例えばＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）により構成されてもよい。メモリ１３は、記憶部の一例である。
【００２５】
グラフィックスコントローラ１５は、ディスプレイ１６に接続されている。グラフィックスコントローラ１５は、チップセット１２を介してＣＰＵ１１からの指示に従い、ディスプレイ１６を用いて、種々の画面表示を制御する。ディスプレイ１６は、例えば、ＬＣＤ（Liquid crystal display）から構成されてもよい。
【００２６】
入出力コントローラ１７は、キーボード１８に接続されている。入出力コントローラ１７は、チップセット１２を介してＣＰＵ１１からの指示に従い、例えばキーボード１８を用いて入力されるデータを制御する。キーボード１８に替えて、マウスやタッチパネルを用いてもよい。
【００２７】
ＲＡＩＤ装置２０は、ＲＡＩＤコントローラ２１、ＮＶＲＡＭ（Non-Volatile RAM）２２、ＲＡＭ（Random Access Memory）２３及びバッファ２４を有する。
【００２８】
ＲＡＩＤコントローラ２１は、ＨＤＤ（１）１４、ＨＤＤ（２）４０及びＨＤＤ（３）４１と接続され、同じデータを格納したディスクを３台のＨＤＤで動作させている。ＨＤＤ（１）１４、ＨＤＤ（２）４０及びＨＤＤ（３）４１は、プログラムやデータを格納している不揮発性の記憶装置であり、種々のプログラムや種々のデータを記憶する。
【００２９】
本実施形態では、ＲＡＩＤ装置２０は、ＲＡＩＤカードにより実現されるが、これに限らない。本実施形態では、ＲＡＩＤカードがＰＣ１０のマザーボードにセットされることで、ＲＡＩＤ装置２０はＨＤＤ（１）１４等を管理可能な状態になる。この場合、２台のＨＤＤが故障しても、システム運用が行えるものである。ただし、ＲＡＩＤコントローラ２１は、ＨＤＤ（２）４０又はＨＤＤ（３）４１のいずれかを用いて、同じデータを格納したディスクをＨＤＤ（１）１４とＨＤＤ（２）４０、又はＨＤＤ（１）１４とＨＤＤ（３）４１のいずれかの２台で動作させてもよい。なお、本実施形態では、ＨＤＤの台数は、２台又は３台であるが、３台以上であってもよい。
【００３０】
ＮＶＲＡＭ２２は、半導体メモリ装置のうち不揮発性メモリの一例である。ＮＶＲＡＭ２２に替えて、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）を用いてもよい。ＲＡＭ２３は、プログラムやデータを一時保持する揮発性の半導体メモリである。バッファ２４は、一のＨＤＤのデータを他のＨＤＤにコピーする際に、コピーするデータを一時的に記憶させておく記憶領域である。
【００３１】
ＨＤＤ（１）１４、ＨＤＤ（２）４０及びＨＤＤ（３）４１には、それぞれキャッシュ領域が設けられている。例えば、ＨＤＤ（１）１４、ＨＤＤ（２）４０及びＨＤＤ（３）に内蔵したフラッシュメモリをＨＤＤ（１）１４、ＨＤＤ（２）４０及びＨＤＤ（３）４１のキャッシュとして使用し、最近アクセスされたデータや頻繁にアクセスされるデータをキャッシュ上に保管して高速に読み出せるようにする。また、これらのキャッシュを使用し、書き込みたいデータを一旦キャッシュに書き込んでＨＤＤに書き写すことでデータのスムーズな読み書きを可能にする。
【００３２】
［機能構成］
次に、本発明の一実施形態に係るＲＡＩＤ装置２０の機能構成の一例について、図３を参照しながら説明する。図３は、ＲＡＩＤ装置２０の機能構成の一例を示している。ＲＡＩＤ装置２０は、記憶部２５、取得部２６、計測部２７、ＲＡＩＤ処理部２８、判定部２９及びベリファイ処理部３０を有する。
【００３３】
記憶部２５は、応答時間テーブル５０、パトロールアドレステーブル５１、パトロールフラグ５２及びベリファイ処理プログラム５３を記憶している。応答時間テーブル５０は、予め測定したＨＤＤの所定領域の応答時間を記憶する。本実施形態では、ＨＤＤの所定領域は、１６箇所のセクタである。
【００３４】
図４は、本実施形態に係る応答時間テーブル５０の一例である。応答時間テーブル５０は、例えば、ＮＶＲＡＭ２２に記録される。本実施形態に係る応答時間テーブル５０は、ＨＤＤ番号５０ａ、ＨＤＤ型名５０ｂ、シリアル番号５０ｃ、ファームウェアＶｅｒ．５０ｄ、全セクタ数５０ｅ、各セクタのベリファイ応答時間５０ｆ及び平均応答時間５０ｇを有する。
【００３５】
１６箇所のセクタのベリファイ応答時間を得るために定めたＨＤＤの所定領域（ベリファイを行う箇所）の一例を図５に示す。例えば、ＨＤＤの所定領域として、アドレスが「0x1FFFF00」から「0x2000000」までの２５６セクタ（＝１２８ＫＢ（キロバイト））の領域が１／１６（１６箇所のうちの１番目）のセクタとして設定されている。同様にして、アドレスが「0x3FFFF00」から「0x4000000」までの２５６セクタ（＝１２８ＫＢ）の領域が２／１６のセクタとして設定されている。図５の例では、最大セクタは、１６番目のセクタ（２５６セクタ）の最終アドレスである「0x20000000」（＝536870912）である。このようにして、ＨＤＤの記憶領域における、ベリファイを行う１６箇所のセクタが予め設定されている。
【００３６】
ＲＡＤＩ装置２０からこれらの１６箇所のセクタへRead Verify Sectorコマンドを発行すると、ＨＤＤからその応答時間が得られる。得られた１６箇所のセクタの応答時間が、図４の各セクタのベリファイ応答時間５０ｆの１／１６番目の全セクタの応答時間〜１６／１６番目の全セクタの応答時間にそれぞれ記憶される。
【００３７】
なお、本実施形態に係る応答時間テーブル５０では、各セクタのベリファイ応答時間５０ｆの平均応答時間５０ｇが記憶されているが、平均応答時間５０ｇは応答時間テーブル５０に記憶されず、ベリファイ実行時に算出するようにしてもよい。また、応答時間テーブル５０に記憶されるＨＤＤの数は複数あればよく、２台以上であれば必ずしも３台でなくてもよい。
【００３８】
図６は、本実施形態に係るパトロールアドレステーブル５１の一例である。パトロールアドレステーブル５１は、パトロールＶｅｒｉｆｙが行われているＨＤＤ番号５１ａ及びベリファイ済セクタ５１ｂのパラメータを記憶する。ＨＤＤ番号５１ａは、パトロールＶｅｒｉｆｙを実施中のＨＤＤの番号を記憶する。ベリファイ済セクタ５１ｂは、パトロールＶｅｒｉｆｙを実施中のセクタの番号を記憶する。
【００３９】
図３に戻り、パトロールフラグ５２は、パトロールＶｅｒｉｆｙが実行されているかを示すフラグである。パトロールフラグ５２がオンの場合、パトロールＶｅｒｉｆｙが実行されていることを示す。ベリファイ処理プログラム５３は、ＣＰＵ１１がパトロールＶｅｒｉｆｙを実行するためのプログラムである。
【００４０】
取得部２６は、Identify Device情報を取得する。図７は、Identify Device情報（出典：Information technology-ATA/ATAPI Command Set-3 (ACS-3)）の一例を示す。
【００４１】
計測部２７は、予め測定した例えばＨＤＤ（１）１４の所定領域の応答時間を測定する。本実施形態では、計測部２７は、予め設定した１６箇所のセクタへRead Verify Sectorコマンドを発行したときの応答時間を測定する。また、計測部２７は、ＨＤＤ（１）１４のベリファイを実行する前に１６箇所のセクタへRead Verify Sectorコマンドを発行したときの各セクタの応答時間を測定する。
【００４２】
判定部２９は、記憶部２５に記憶されている応答時間テーブル５０を参照して、予め測定したＨＤＤ（１）１４の所定領域の応答時間と、ＨＤＤ（１）１４のベリファイの実行前に測定した前記所定領域の応答時間とを比較する。そして、判定部２９は、比較した結果に基づきＨＤＤ（１）１４に振動が生じているか否かを判定する。
【００４３】
ＲＡＩＤ処理部２８は、ＨＤＤ（１）１４の故障に備えて、ＨＤＤ（１）１４に記憶されているデータと同じデータを格納したディスクの「コピー」をＨＤＤ（２）４０及びＨＤＤ（３）４１の少なくともいずれかにコピーする。
【００４４】
ベリファイ処理部３０は、ホスト（ＰＣ１０）からのアクセスが無い時間を利用して、ＨＤＤの各セクタまたはブロックのベリファイを実行する（パトロールＶｅｒｉｆｙ）。パトロールＶｅｒｉｆｙは、ＨＤＤの各セクタやデータ・ブロックの定期的な読み取り動作を実行し、読み取り不可となっているセクタやデータ・ブロックがあれば、同じデータが格納された他のＨＤＤから当該データをコピーして、データを復旧する。
【００４５】
なお、取得部２６、計測部２７、判定部２９及びベリファイ処理部３０の各機能は、例えば、ＲＡＩＤ装置２０にインストールされたベリファイ処理プログラム５３が、ＲＡＩＤコントローラ２１に実行させる処理により実現可能である。ＲＡＩＤ処理部２８の機能は、例えば、ＲＡＩＤ装置２０にインストールされたＲＡＩＤ処理用のプログラムが、ＲＡＩＤコントローラ２１に実行させる処理により実現可能である。
【００４６】
記憶部２５の機能は、例えば、ＮＶＲＡＭ２２又はＲＡＭ２３により実現可能である。なお、応答時間テーブル５０及びパトロールアドレステーブル５１に記憶された情報は、ネットワークを介してＲＡＩＤ装置２０に接続されるクラウド上の記憶装置に格納されてもよい。なお、図３は機能に着目したブロック図を描いており、これらの機能ブロックで示した各部のソフトウエアを実行するプロセッサはハードウェアである。
【００４７】
［パトロールＶｅｒｉｆｙ］
ＨＤＤが、全体としての応答時間が低下しているかどうかを判断するためには、実際にＨＤＤ全てのセクタのアクセス速度が低下しているかどうかをチェックすればよいが、それを実行すると数十分〜数時間を要してしまう。これに対して、本実施形態では、ＨＤＤ全体に分布する、予め定めた複数個所（本実施形態では１６箇所）の応答速度をチェックすることにより、全体的な速度低下が発生しているかどうかを推測する。このために、本実施形態に係るＲＡＩＤ装置２０では、（１）〜（３）の処理が実行される。
【００４８】
（１）外部要因が無い状態で、ＨＤＤの異なる複数セクタ（本実施形態では１６個所のセクタ）のRead Verify Sectorコマンドの応答時間を予め測定し、応答時間テーブル５０に記憶しておく。
【００４９】
（２）パトロールＶｅｒｉｆｙの実行前に検査のためにRead Verify Sectorコマンドを発行する際には、（１）の予め測定した１６箇所のセクタに対して、各々Read Verify Sectorコマンドを発行して、応答時間を測定する。
【００５０】
（３）（２）で得られた応答時間のうち所定個数の応答時間が、（１）で予め応答時間テーブル５０に記憶した、対応する応答時間と比べて一律に低下（長時間化）している場合、本実施形態に係るＲＡＩＤ装置２０は、ＨＤＤ全体の速度低下が発生していると判断する。ＨＤＤ全体の速度低下が発生していると判断した場合、パトロールＶｅｒｉｆｙの実行を一時保留する。これにより、パトロールＶｅｒｉｆｙを実行したときに、記憶領域の記録状態が正常であってもＨＤＤの振動の影響により読み取りや書き込みミスが生じ、データの読み直しや書き直しが発生するためにパトロールＶｅｒｉｆｙに要する時間が長くなること防止できる。
【００５１】
［応答時間測定処理］
まず、上記（１）に該当する本実施形態に係る応答時間測定処理について、図８を参照しながら説明する。図８は、本実施形態に係る応答時間測定処理の一例を示すフローチャートである。上記（１）に示したように、本実施形態では、ＲＡＩＤ構築（ビルド）時に、外部からの物理的な影響がない状態で、複数のセクタ（＝ＬＢＡ）においてRead Verify Sectorコマンドを発行して、それぞれの応答時間を応答時間テーブル５０に記憶しておく。これにより、外部からの物理的な影響がない状態におけるRead Verify Sectorコマンド発行時の応答時間を測定することができる。なお、ＬＢＡ（Logical Block Addressing）は、ＨＤＤの最初のセクタから何番目かを示す数値である。
【００５２】
本処理は、ＲＡＩＤ装置２０の電源がオンされ、ＲＡＩＤ装置２０が起動したときに開始され、取得部２６は、各ＨＤＤからIdentify Device情報を取得する（ステップＳ１０）。次に、計測部２７は、応答時間テーブル５０から各ＨＤＤのＨＤＤ型名５０ｂ、シリアル番号５０ｃ、ファームウェアＶｅｒ．５０ｄを読み出し、ＲＡＭ２３に保存する（ステップＳ１２）。
【００５３】
次に、計測部２７は、各ＨＤＤから取得したIdentify Device情報のＨＤＤ型名、シリアル番号、ファームウェアＶｅｒ．と、ＲＡＭ２３に保存したＨＤＤ型名、シリアル番号、ファームウェアＶｅｒ．とを比較する。計測部２７は、比較した結果、一致する場合にはステップＳ２８に進む。一方、一致しない場合にはステップＳ１６に進み、ステップＳ１６〜Ｓ２６において、計測部２７は、応答時間テーブル５０に記憶されていないＨＤＤのRead Verify Sectorコマンドの応答時間を計測する。記憶部２５は、計測した結果を、応答時間テーブル５０の１番目の全セクタ〜１６番目の全セクタの各セクタのベリファイ応答時間５０ｆに保存する。
【００５４】
具体的には、ステップ１６において、計測部２７は、変数ｊに「１」を設定する。次に、計測部２７は、新たに接続されたＨＤＤに対して全セクタのｊ／１６セクタ番目（２５６セクタ（＝１２８ＫＢ（キロバイト））の箇所に対してRead Verify Sectorコマンドを発行して応答時間を計測する（ステップＳ１８）。このとき、計測部２７は、複数回のRead Verify Sectorコマンドの発行に対して得られた複数回の応答時間の平均値を計測してもよいし、一回のRead Verify Sectorコマンドの発行に対して得られた一回の応答時間を計測してもよい。
【００５５】
次に、計測部２７は、変数ｊが１６以上であるかを判定する（ステップＳ２０）。変数ｊが１６未満であると判定された場合、計測部２７は、変数ｊに「１」を加算する（ステップＳ２２）。そして、計測部２７は、ステップＳ１８に戻り、ｊ／１６セクタ番目（２５６セクタ（＝１２８ＫＢ（キロバイト））の箇所に対してRead Verify Sectorコマンドを発行して応答時間を計測する処理を繰り返す。
【００５６】
ステップＳ２０において、変数ｊが１６以上であると判定された場合、計測部２７は、計測すべき他の新たなＨＤＤがあるかを判定する（ステップＳ２４）。他の新たなＨＤＤがあると判定された場合、ステップＳ１６に戻り、他の新たなＨＤＤに対して、ステップＳ１６〜Ｓ２４の処理を繰り返す。ステップＳ２４において、他の新たなＨＤＤがないと判定された場合、計測部２７は、計測した応答時間を応答時間テーブル５０に記憶する（ステップＳ２６）。
【００５７】
ステップＳ２８以降の処理はＲＡＩＤ構築のための処理である。ステップ２８において、ＲＡＩＤ処理部２８は、ＲＡＩＤ構築（以下、「ビルド」ともいう。）が済んでいるか否かを判定する。ＲＡＩＤ装置２０の電源が最初にオンされた場合、ビルドは済んでいないと判定される。このとき、ＲＡＩＤ処理部２８は、ビルド処理を開始し、２台以上のＨＤＤのうちの一のＨＤＤを主の装置とし、他のＨＤＤを従の装置として、一のＨＤＤから他のＨＤＤにデータをコピーするビルド処理を行い（ステップ３０）、起動処理を終了する。
【００５８】
一方、ステップＳ２８において、ＲＡＩＤ処理部２８は、ビルドは済んでいると判定した場合、リビルドが必要か否かを判定する（ステップ３２）。新しいＨＤＤが設置された場合、ＲＡＩＤ処理部２８は、リビルドが必要であると判定し、既存のＨＤＤから新たに設置されたＨＤＤにデータをコピーするリビルド処理を行い（ステップ３４）、起動処理を終了する。リビルドが必要でないと判定された場合、そのまま起動処理を終了する。
【００５９】
なお、ステップＳ１８において、Read Verify Sectorコマンドの応答時間を測定するとき、ＨＤＤのキャッシュにヒットすると、磁性体面にアクセスすることなくコマンドが応答される可能性がある。このため、本実施形態では、キャッシュにデータが無い状態（つまり、ＨＤＤに他のコマンドを発行する前＝ＲＡＩＤの構築の前）において、Read Verify Sectorコマンドの応答時間を測定し、応答時間テーブル５０に記憶するようにしている。
【００６０】
ただし、ほとんどのＨＤＤでは、Read Verify Sectorコマンドは、磁性体面にアクセスしキャッシュを使わないので、ＲＡＩＤの構築が終わってから応答時間を測定してもよい。また、本実施形態では、各セクタのベリファイ実行の単位を１２８ＫＢ毎に行うこととした。しかし、各セクタのベリファイ実行の単位は、これに限らず、ＳＡＴＡコマンドが許容する範囲内で設定することができる。ただし、図８の応答時間測定処理において応答時間テーブル５０を作成したときの単位と、後述のパトロールＶｅｒｉｆｙ時の単位を一致させておく必要がある。
【００６１】
［ＲＡＩＤ装置のアイドル処理］
次に、本実施形態に係るＲＡＩＤ装置２０のアイドル処理（ループ処理）の一例について、図９を参照しながら説明する。図９は、本実施形態に係るＲＡＩＤ装置のアイドル処理の一例を示すフローチャートである。本処理は、ＲＡＩＤ装置２０のアイドル時間に実行される。
【００６２】
本処理が開始されると、ＲＡＩＤ処理部２８は、ホスト（ＰＣ１０）からコマンドが通知されたか否かを判定する（ステップＳ４０）。ＲＡＩＤ処理部２８は、ＰＣ１０からコマンドが通知されなかったと判定した場合、ステップＳ５８に進む。
【００６３】
一方、ＲＡＩＤ処理部２８は、ＰＣ１０からコマンドが通知されたと判定した場合、通知時刻を記録する（ステップＳ４２）。次に、ＲＡＩＤ処理部２８は、通知されたコマンドがＲＡＩＤ装置２０の独自コマンドか否かを判定する（ステップＳ４４）。ＲＡＩＤ処理部２８は、通知されたコマンドが、図１０に示すコマンドコードマトリックスに基づき発行されるＶコマンド（Vendor specific commands）である場合、ＲＡＩＤ装置２０の独自コマンドであると判定し、ステップＳ４８に進む。図１０に示すコマンドコードマトリックスの出典は、Information technology-ATA/ATAPI Command Set-3 (ACS-3)）である。
【００６４】
ステップＳ４４において、ＲＡＩＤ処理部２８は、ＲＡＩＤ装置２０への独自コマンドではないと判定すると、ＨＤＤへのコマンド（ＡＴＡコマンド）処理を実行し（ステップＳ４６）、ステップＳ４０に戻る。ＨＤＤへのコマンド処理では、ＨＤＤのCHECK POWER MODE、CONFIGURE STREAM、DATA SET MANAGEMENTなど、通知されたコマンドに応じた処理を行う。
【００６５】
ステップＳ４４において、ＲＡＩＤ処理部２８は、ＲＡＩＤ装置２０への独自コマンドであると判定すると、パトロールＶｅｒｉｆｙの開始指示か否かを判定する（ステップＳ４８）。ＲＡＩＤ処理部２８は、パトロールＶｅｒｉｆｙの開始指示ではないと判定すると、その他の独自コマンドの処理を実行し（ステップＳ５０）、ステップＳ４０に戻る。その他の独自コマンドの処理では、パトロールＶｅｒｉｆｙの一時停止／打切り、強制リビルド開始、内部ログの読み出しなど、独自コマンドに応じた処理を行う。
【００６６】
ステップＳ４８において、ＲＡＩＤ処理部２８は、パトロールＶｅｒｉｆｙの開始指示であると判定すると、パトロールフラグ５２がオンか否かを判定する（ステップＳ５２）。ＲＡＩＤ処理部２８は、パトロールフラグ５２がオンされている場合、何も処理せずにステップＳ４０に戻る。一方、ＲＡＩＤ処理部２８は、パトロールフラグ５２がオンされていないと判定された場合、ＨＤＤの数を判定する（ステップＳ５４）。ＨＤＤの数が１台と判定された場合（DEGRADE状態）、何も処理せずにステップＳ４０に戻る。ＨＤＤの数が２台以上と判定された場合、記憶部２５は、パトロールフラグ５２をオンにし、ＮＶＲＡＭ２２にパトロールフラグがオンされたことを記録する（ステップＳ５６）。また、記憶部２５は、パトロールアドレステーブル５１のＨＤＤ番号５１ａ及びベリファイ済セクタ５１ｂをリセットし、リセットしたパトロールアドレステーブル５１をＮＶＲＡＭ２２に記憶し（ステップＳ５６）、ステップＳ４０に戻る。
【００６７】
ステップＳ４０において、ＰＣ１０からコマンドが通知されていないと判定された場合、ＲＡＩＤ処理部２８は、パトロールフラグ５２がオンか否かを判定する（ステップＳ５８）。ＲＡＩＤ処理部２８は、パトロールフラグ５２がオンしていないと判定した場合、ステップＳ４０に戻る。ＲＡＩＤ処理部２８は、パトロールフラグ５２がオンしていると判定した場合、ステップＳ４２にて記録した通知時刻から規定時間を経過したか否かを判定する（ステップＳ６０）。例えば、規定時間は、１００ｍ秒であってもよい。
【００６８】
ＲＡＩＤ処理部２８は、通知時刻から規定時間を経過していないと判定した場合、ステップＳ４０に戻る。ＲＡＩＤ処理部２８は、通知時刻から規定時間を経過したと判定した場合、パトロールアドレステーブル５１のＨＤＤ番号５１ａ及びベリファイ済セクタ５１ｂから次のベリファイ位置であるＨＤＤとセクタを特定する（ステップＳ６２）。ＲＡＩＤ処理部２８は、特定したＨＤＤに対して、Read Verify Sectorコマンド（２５６セクタ分）を発行するためのパトロールＶｅｒｉｆｙサブルーチン（図１１）を呼び出す（ステップＳ６４）。
【００６９】
ＲＡＩＤ処理部２８は、呼び出したパトロールＶｅｒｉｆｙサブルーチンが正常終了したとき、パトロールアドレステーブル５１のベリファイ済セクタ５１ｂに２５６セクタを加算し、更新する（ステップＳ６６）。ＲＡＩＤ処理部２８は、ベリファイ済セクタ５１ｂに２５６セクタを加算した結果、ＨＤＤの最大セクタに達したか否かを判定する（ステップＳ６８）。ＲＡＩＤ処理部２８は、最大セクタに達していないと判定した場合、ステップＳ４０に戻り、最大セクタに達したと判定した場合、ベリファイ済セクタ５１ｂを「０」に設定し、ＨＤＤ番号５１ａを次のＨＤＤに更新する。次のＨＤＤがない場合には、ＲＡＩＤ処理部２８は、パトロールフラグ５２をオフに設定し、パトロールアドレステーブル５１とパトロールフラグ５２とをＮＶＲＡＭ２２に記録する（ステップＳ７０）。
【００７０】
［パトロールＶｅｒｉｆｙ処理］
次に、図９のステップＳ６４にて呼び出されるパトロールＶｅｒｉｆｙサブルーチンについて図１１を参照しながら説明する。パトロールＶｅｒｉｆｙサブルーチンは、図１１に一例を示す本実施形態に係るベリファイ処理により実行される。
【００７１】
本処理が開始されると、判定部２９は、ベリファイを行う対象のＨＤＤについて、Read Verify Sectorコマンドの応答時間チェックを実施しているかを判定する（ステップＳ７２）。Read Verify Sectorコマンドの応答時間チェックを実施しているか否かは、チェック済フラグによって判定できる。
【００７２】
判定部２９は、チェック済フラグがオンされているとき、Read Verify Sectorコマンドの応答時間チェックを実施していると判定し、ステップＳ８０に進む。一方、判定部２９は、チェック済フラグがオフされているとき、Read Verify Sectorコマンドの応答時間チェックを実施していないと判定し、ステップＳ７４に進む。ベリファイ処理部３０は、ベリファイを行う対象のＨＤＤ（ＨＤＤ（１）ｏｒＨＤＤ（２）ｏｒＨＤＤ（３））を指定し、応答時間のチェックサブルーチンを呼び出す（ステップＳ７４）。
【００７３】
応答時間のチェックサブルーチンでは、ＨＤＤの全体の応答時間が低下していないかをチェックする。ＨＤＤの全体の応答時間が低下していると判定した場合には、ＨＤＤに振動が生じていると判断できるため、本実施形態ではＨＤＤのベリファイ処理を実行しない。このために、応答時間のチェックサブルーチンである、以下の応答時間判定処理の一例において、ＨＤＤの全体の応答時間が低下しているか否かの判定が行われる。
【００７４】
［応答時間判定処理］
図１１のステップＳ７４にて呼び出される応答時間のチェックサブルーチンでは、図１２の本実施形態に係る応答時間判定処理が実行される。本処理が呼び出されると、まず、計測部２７は、引数から対象のＨＤＤを特定し（ステップＳ１２０）、変数ｊに「１」を設定する（ステップＳ１２２）。次に、計測部２７は、応答時間テーブル５０にあるｊ番目のセクタ（２５６セクタ分）にRead Verify Sectorコマンドを発行し、応答時間を計測する（ステップＳ１２４）。
【００７５】
次に、判定部２９は、ｊ番目のセクタに係る測定した応答時間が、応答時間テーブル５０に記憶されたｊ番目のセクタの応答時間の５倍以内かを判定する（ステップＳ１２６）。判定部２９は、ｊ番目のセクタの応答時間が、応答時間テーブル５０に記憶されたｊ番目のセクタの応答時間の５倍以上であると判定した場合、本処理を異常終了する。ただし、ｊ番目のセクタの応答時間が、応答時間テーブル５０に記憶されたｊ番目のセクタの応答時間の１０倍以上である場合、異常終了とするようにしてもよい。また、所定個数以上のセクタの応答時間が、応答時間テーブル５０に記憶された対応するセクタの応答時間の５倍以上であると判定した場合、本処理を異常終了とするようにしてもよい。
【００７６】
判定部２９は、ｊ番目のセクタの応答時間が、応答時間テーブル５０に記憶されたｊ番目のセクタの応答時間の５倍以内であると判定した場合、変数ｊに「１」を加算し（ステップＳ１２８）、変数ｊが１６以上であれば、本処理を正常終了する。変数ｊが１６よりも小さければ、ステップＳ１２４に戻り、ステップＳ１２４〜Ｓ１３０の処理を繰り返す。
【００７７】
図１１のステップＳ７４に戻り、次に、判定部２９は、応答時間のチェックサブルーチンが正常に終了したかを判定する（ステップＳ７６）。図１２の応答時間判定処理において、応答時間のチェックサブルーチンが異常終了した場合には、判定部２９は、応答時間が低下していると判定し、本処理を異常終了する。このようにして、本実施形態では、ＨＤＤの全体の応答時間が低下しているのであれば、ＨＤＤに振動が生じていると判定し、ＨＤＤのベリファイを実行しない。これにより、ＨＤＤのベリファイを実行したときに、ＨＤＤの振動の影響によりベリファイの完了までの時間が長くなること防ぐことができる。
【００７８】
一方、図１２の応答時間判定処理において、応答時間のチェックサブルーチンが正常終了した場合、判定部２９は、応答時間が低下していないと判定する。この場合、ベリファイ処理部３０は、Read Verify Sectorコマンドの応答時間チェック済フラグをオンにし（ステップＳ７８）、Ｖｅｒｉｆｙエラーカウンタに「０」を設定する（ステップＳ８０）。
【００７９】
次に、記憶部２５は、このときの現在時刻（ＲＡＩＤ装置の電源オンからの現在までの積算時間）を、「コマンド開始時刻」として記憶する（ステップＳ８２）。次に、ベリファイ処理部３０は、ベリファイ対象のＨＤＤに対してRead Verify Sectorコマンドを発行する（ステップＳ８４）。これにより、特定のＨＤＤに対してＡＴＡコマンドが発行され、ＨＤＤからの応答を待ち、ＨＤＤからの応答が戻ってくると、記憶部２５は、このときの現在時刻（ＲＡＩＤ装置の電源オンからの現在までの積算時間）を、「コマンド終了時刻」として記憶する（ステップＳ８６）。
【００８０】
次に、判定部２９は、先のRead Verify Sectorコマンドが、正常に終了したかを判定する（ステップＳ８８）。判定部２９は、Read Verify Sectorコマンドが、正常に終了したと判定した場合、（コマンド終了時刻−コマンド開始時刻）が、応答時間テーブル５０の平均応答時間５０ｇの５倍以上経過しているかを判定する（ステップＳ９０）。判定部２９は、（コマンド終了時刻−コマンド開始時刻）が、応答時間テーブル５０の平均応答時間５０ｇの５倍以上経過していないと判定した場合、本処理を正常終了する。
【００８１】
一方、判定部２９は、（コマンド終了時刻−コマンド開始時刻）が、応答時間テーブル５０の平均応答時間５０ｇの５倍以上経過していると判定した場合、応答時間のチェックサブルーチンを再度呼び出し、応答時間を再チェック済みかを判定する（ステップＳ９２）。判定部２９は、応答時間の再チェックをしていないと判定した場合、応答時間のチェックサブルーチンを再度呼び出し（ステップＳ９４）、ステップＳ７６に戻る。これにより、外部要因での応答時間の低下かどうかを再チェックすることができる。特に、最初にステップＳ７４の処理を実行した時点では、振動は発生していない場合であっても、その後、ＨＤＤが振動の影響を受ける場合がある。よって、ステップＳ９４にて応答時間の再チェックを行う。なお、本実施形態では、応答時間の再チェックは一度だけにする。
【００８２】
ステップＳ９２において、判定部２９は、再チェック済であると判定した場合、ステップＳ１００に進む。
【００８３】
ステップＳ８８において、判定部２９は、先のRead Verify Sectorコマンドが、正常に終了していないと判定した場合、当該セクタが正常に読めなかったエラー(Uncorrectable Error)か否かを判定する（ステップＳ９８）。判定部２９は、当該セクタがUncorrectable Errorではないと判定した場合、Uncorrectable Error以外のエラーが発生したかを判定する（ステップＳ１０６）。判定部２９は、Uncorrectable Error以外のエラーが発生したと判定した場合、ベリファイ処理部３０は、ＨＤＤに回復不可能なエラーが発生したため、当該ＨＤＤをいったん切り離し（Degrade）（ステップＳ１１０）、本処理を異常終了する。
【００８４】
ステップＳ１０６において、判定部２９は、Uncorrectable Error以外のエラーは発生していないと判定した場合、Ｖｅｒｉｆｙエラーカウンタに「１」を加算し（ステップＳ０８）、ステップＳ８２に戻り、ステップＳ８２以降の処理を繰り返す。一方、ステップＳ９８において、当該セクタがUncorrectable Errorであると判定した場合、ステップＳ１００に進む。
【００８５】
ステップＳ１００において、ベリファイ処理部３０は、当該セクタの値を他のＨＤＤから２５６セクター分、読み取って（Read DMAコマンド）バッファ２４に保存する。次に、ベリファイ処理部３０は、バッファ２４に保存されたデータを、エラーとなったＨＤＤに対してWrite DMAコマンドで書き込み、FLUSH CHACHEコマンドを発行する（ステップＳ１０２）。判定部２９は、FLUSH CHACHEコマンドが異常終了で、かつ、１回目の異常終了かを判定する（ステップＳ１０４）。判定部２９は、FLUSH CHACHEコマンドが正常終了であると判定した場合、本処理を正常終了する。
【００８６】
FLUSH CHACHEコマンドが異常終了で、かつ、１回目の異常終了であると判定された場合、ステップＳ１０２に戻り、ベリファイ処理部３０は、再度ステップＳ１０２の処理を行う。ステップＳ１０４において、FLUSH CHACHEコマンドが異常終了で、かつ、２回目の異常終了であると判定された場合、ベリファイ処理部３０は、ＨＤＤに回復不可能なエラーが発生したため、当該ＨＤＤをいったん切り離し（Degrade）（ステップＳ１１０）、本処理を異常終了する。
【００８７】
以上によれば、振動の無い状態で複数（１６箇所程度）のセクタへのRead Verify Sectorの応答時間を測定しておき、パトロールＶｅｒｉｆｙ実行時に先ず、前記応答時間を測定済み複数のセクタに対して、Read Verify Sectorコマンドを発行し、それらの応答時間が全ての箇所で遅い場合は、ＨＤＤが振動の影響を受けている可能性があると推定する。つまり、この場合、複数箇所全てでデータが損傷していて遅いとは考え難いので、振動の影響で応答が遅くなっていると推測できる。これにより、確認のために再度、エラーとなったＨＤＤに対して応答時間を測定済み複数のセクタにRead Verify Sectorコマンドを発行し、それでも全てのセクタの応答時間が当初測定した時間より遅い場合は、ＨＤＤが振動の影響をうけていると判断する。
【００８８】
ＨＤＤが振動の影響をうけていると判断した場合、一旦、パトロールＶｅｒｉｆｙを中止して、しかるべき時間が経過したら再度、パトロールＶｅｒｉｆｙを上記の手順で行い、測定済みの複数のセクタの応答時間が当初測定しておいた応答時間と比較して大幅な遅れが無いと判断した時のみ、パトロールＶｅｒｉｆｙをＨＤＤ全面に行って、データの信頼性を高める。
【００８９】
これにより、本実施形態に係るＲＡＩＤ装置２０によれば、振動している時にパトロールＶｅｒｉｆｙを行わないので、パトロールＶｅｒｉｆｙを行うことによって却ってデータ信頼性を低めてしまう可能性やパトロールＶｅｒｉｆｙの無駄な動作を低減出来る。
【００９０】
この結果、パトロールＶｅｒｉｆｙを実行した場合に、ＨＤＤの揺れの影響で発生した読み出しミス等により、該当部分への再書き込みが発生して、パトロールＶｅｒｉｆｙの完了までの時間が長くなること防ぐことができる。
【００９１】
以上では、ＨＤＤの１６箇所のセクタについて応答時間の比較を行い、揺れがあるか否かを判断した。しかし、応答時間の比較を行うセクタは複数の所定領域でなくても一つの所定領域でもよい。つまり、ＨＤＤの１箇所のセクタについて前記のように応答時間の比較を行い、揺れがあるか否かを判断してもよい。
【００９２】
また、全領域においてベリファイの実行前に測定した応答時間が、記憶部２５に記憶された応答時間よりも遅い場合、ＨＤＤに振動が生じていると判断してもよい。また、所定個数よりも多くの領域においてベリファイの実行前に測定した応答時間が、記憶部２５に記憶された応答時間よりも遅い場合、ＨＤＤに振動が生じていると判断してもよい。このとき、所定個数は、１であっても２以上であってもよい。
【００９３】
以上、ＲＡＩＤ装置及びベリファイ処理プログラムを上記実施形態により説明したが、本発明に係るＲＡＩＤ装置及びベリファイ処理プログラムは上記実施形態に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能である。また、上記実施形態及び変形例が複数存在する場合、矛盾しない範囲で組み合わせることができる。
【００９４】
例えば、上記実施形態に係るＲＡＩＤシステムの構成は一例であり、本発明の範囲を限定するものではなく、用途や目的に応じて様々なシステム構成例があることは言うまでもない。例えば、ＲＡＩＤ装置２０は、ＨＤＤと別体であってもよいし、ＨＤＤと一体となった装置であってもよい。
【００９５】
以上の説明に関し、更に以下の項を開示する。
（付記１）
ＨＤＤの所定領域の応答時間を記憶した記憶部を参照して、予め測定したＨＤＤの所定領域の応答時間と、前記ＨＤＤのベリファイの実行前に測定した前記所定領域の応答時間とを比較し、比較した結果に基づき前記ＨＤＤに振動が生じているか否かを判定する判定部と、
前記ＨＤＤに振動が生じていないと判定した場合、前記ＨＤＤのベリファイを実行するベリファイ処理部と、
を有するＲＡＩＤ装置。
（付記２）
前記判定部は、予め測定した前記ＨＤＤの複数の所定領域の応答時間と、前記ベリファイの実行前に測定した前記複数の所定領域の応答時間とを比較し、予め決めた所定数よりも多くの領域において前記ベリファイの実行前に測定した応答時間が、予め測定した前記応答時間よりも遅い場合、前記ＨＤＤに振動が生じていると判定する、
付記１に記載のＲＡＩＤ装置。
（付記３）
予め測定したＨＤＤの所定領域の応答時間と、前記ＨＤＤのベリファイの実行前に測定した前記所定領域の応答時間とを比較し、比較した結果に基づき前記ＨＤＤに振動が生じているか否かを判定する処理と、
前記ＨＤＤに振動が生じていないと判定した場合、前記ＨＤＤのベリファイを実行する処理と、
をコンピュータに実行させるためのベリファイ処理プログラム。
（付記４）
予め測定した前記ＨＤＤの複数の所定領域の応答時間と、前記ベリファイの実行前に測定した前記複数の所定領域の応答時間とを比較し、予め決めた所定数よりも多くの領域において前記ベリファイの実行前に測定した応答時間が、予め測定した前記応答時間よりも遅い場合、前記ＨＤＤに振動が生じていると判定する、
付記３に記載のベリファイ処理プログラム。
【符号の説明】
【００９６】
１０  ＰＣ
１１  ＣＰＵ
１２  チップセット
１３  メモリ
１４  ＨＤＤ（１）
１５  グラフィックスコントローラ
１６  ディスプレイ
１７  入出力コントローラ
１８  キーボード
２０  ＲＡＩＤ装置
２１  ＲＡＩＤコントローラ
２２  ＮＶＲＡＭ
２３  ＲＡＭ
２４  バッファ
２５  記憶部
２６  取得部
２７  計測部
２８  ＲＡＩＤ処理部
２９  判定部
３０  ベリファイ処理部
４０  ＨＤＤ（２）
４１  ＨＤＤ（３）
５０  応答時間テーブル
５１  パトロールアドレステーブル
５２  パトロールフラグ
５３  ベリファイ処理プログラム
【図１】
2018125054.tif 000003
【図２】
2018125054.tif 000004
【図３】
2018125054.tif 000005
【図４】
2018125054.tif 000006
【図５】
2018125054.tif 000007
【図６】
2018125054.tif 000008
【図７】
2018125054.tif 000009
【図８】
2018125054.tif 000010
【図９】
2018125054.tif 000011
【図１０】
2018125054.tif 000012
【図１１】
2018125054.tif 000013
【図１２】
2018125054.tif 000014