(57)【要約】【課題】  サーバなどの情報処理システムの記憶デバイスの記憶媒体をモニタリングしつつ、システム性能低下を抑制し、信頼性を維持する記憶デバイスのモニタ装置等を提供する。【解決手段】  本記憶デバイスのモニタ装置は、データの読取りまたは書込みのために、第１の記憶デバイスの記憶領域にアクセスした際、そのアクセスを開始してから終了するまでの所要時間を計測し、計測した所要時間が所定値を超えると判断した場合、該アクセスした記憶領域を含む所定の記憶領域単位に対応するサイズのデータを、その所定の記憶領域の代わりに前記第１の記憶デバイスとは異なる、第２の記憶デバイスに格納する制御手段を備えることを特徴とする。【選択図】      図１
2013073641.tif 000002
【特許請求の範囲】
【請求項１】
データの読取りまたは書込みのために、自装置に接続された第１の記憶デバイスの記憶領域にアクセスした際、そのアクセスを開始してから終了するまでの所要時間を計測し、計測した所要時間が所定値を超えると判断した場合、該アクセスした記憶領域を含む所定の記憶領域単位に対応するサイズのデータを、その所定の記憶領域の代わりに前記第１の記憶デバイスとは異なる第２の記憶デバイスに格納する制御手段を備えることを特徴とする記憶デバイスのモニタ装置。
【請求項２】
前記制御手段は、
前記データを、前記所定の記憶領域の代わりに前記第２の記憶部に格納する際に、
前記所要時間が所定値を超えると判断した場合、該アクセスした記憶領域を含む前記第１の記憶部の記憶領域のアドレスを特定して登録する登録手段と、
該アドレスに基いて前記データを検索する検索手段とを含むことを特徴とする請求項１に記載の記憶デバイスのモニタ装置。
【請求項３】
前記制御手段は、
自装置のアイドル期間に、前記第１の記憶デバイスにアクセスすると共に、アクセスに際して、発生したエラー傾向と、そのアクセスの所要時間とに基いて、そのアクセスした記憶領域を不良箇所と診断する診断手段を含むことを特徴とする請求項２に記載の記録デバイスのモニタ装置。
【請求項４】
前記診断手段は、
前記第１の記憶デバイスの所定箇所を複数回アクセスする際に、発生した前記エラー傾向としてのエラー数が増加していなければ、前記所要時間に基いて不具合の判断に用いる所定の設定値とすることを特徴とする請求項３に記載の記録デバイスのモニタ装置。
【請求項５】
第１の記憶デバイスは、
前記診断手段として、診断のためのアクセスに、最も時間を要するディスク形状の記憶媒体の最内周における任意セクタのデータをダミーリードすることを特徴とする請求項４に記載の記録デバイスのモニタ装置。
【請求項６】
前記第１の記憶デバイスは、
前記制御手段が、前記ディスク形状の記憶媒体の記憶領域へアクセスする際に、そのアクセスの所要時間が所定値を超えると判断した場合に、該アクセスした記憶領域を含むセクタ毎のアドレスを特定して、前記ディスク形状の記憶媒体にあって、別の領域にセクタ毎、代替する自身の代替記憶領域を有することを特徴とする請求項５に記載の記録デバイスのモニタ装置。
【請求項７】
前記第２の記憶デバイスは、
不揮発性メモリで構成されることを特徴とする請求項１乃至６の何れかに記載の記憶デバイスのモニタ装置。
【請求項８】
前記第２の記憶デバイスは、
ディスク識別子、セクタアドレス、及びセクタデータを組みとしたセクタ単位のレコードをデータ構造として有し、
前記制御手段は、前記第２の記憶デバイスに対して、前記レコードを基に、対象とするデータを検索すると共に、登録することを特徴とする付記５乃至７の何れかに記載の記憶デバイスのモニタ装置。
【請求項９】
記憶デバイスのモニタ装置に接続された第１の記憶デバイスの記憶領域に、データの読取りまたは書込みのためにアクセスした際、そのアクセスを開始してから終了するまでの所要時間を計測し、
計測した所要時間が所定値を超えると判断した場合、該アクセスした記憶領域を含む所定の記憶領域単位に対応するサイズのデータを、その所定の記憶領域の代わりに、前記第１の記憶デバイスとは異なる第２の記憶デバイスに格納する
ことを特徴とする記憶デバイスのモニタ装置の制御方法。
【請求項１０】
記憶デバイスのモニタ装置を制御するコンピュータ・プログラムであって、そのコンピュータ・プログラムにより、
データの読取りまたは書込みのために、自装置に接続された第１の記憶デバイスの記憶領域にアクセスした際、そのアクセスを開始してから終了するまでの所要時間を計測し、計測した所要時間が所定値を超えると判断した場合、該アクセスした記憶領域を含む所定の記憶領域単位に対応するサイズのデータを、その所定の記憶領域の代わりに、前記第１の記憶デバイスとは異なる第２の記憶デバイスに格納する制御機能を、コンピュータに実現させる
ことを特徴とするコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばハードディスクドライブ等の記憶媒体をモニタリングする技術分野に関する。
【背景技術】
【０００２】
近年、サーバなどの情報処理システムで取り扱う業務データ、メール、映像や音声等の情報量が急速に増大している。このため、係る情報処理システムが有する記憶デバイスへのデータの読取りや、書込み（以下、アクセスと称する）の頻度および、記憶する情報量が増加している。一般に、これらの情報処理システムでは、記憶デバイスとして、大容量で、ビット単価が安価なハードディスクドライブ（以下、「ＨＤＤ」と称する）が使用される。
【０００３】
サーバなどで使用される大容量ＨＤＤのインタフェースとして、大別すると、ＩＤＥ（Ｉｎｔｅｇｒａｔｅｄ  Ｄｒｉｖｅ  Ｅｌｅｃｔｒｏｎｉｃｓ）系のシリアル  ＡＴＡ  （Ｓｅｒｉａｌ  Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ；以下、「ＳＡＴＡ」と称する）と、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）系のシリアル  アタッチド  ＳＣＳＩ（Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩ；以下、「ＳＡＳ」と称する）の２つがある。とりわけ、ＳＡＴＡ  ＨＤＤは、記録密度の向上や、それに伴う大容量化が進み、かつコストが比較的に安価であることから、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）だけでなく、サーバなどの情報処理システムへの使用が広がっている。これらのＨＤＤは、情報処理システムを構成する部品の中でも振動や衝撃に弱いので、障害や故障の多いモジュールである。一方で、ＨＤＤは、業務データなど、重要なデータを取り扱うため、高い信頼性と耐故障性が求められる。
【０００４】
特に、上述したＨＤＤは、精密なディスク回転機構、磁気ヘッド収出機構等を有し、これらの機構により、高速回転するディスク媒体に磁気ヘッドを近接することで、読取りや、書込みを行っている。このため、係るＨＤＤは、例えば、長期使用による経年変化などにより、正常なアクセスを阻害する以下の様な問題が発生するおそれがある。
【０００５】
まず、この様なＨＤＤに搭載されるディスク媒体は、回転、停止する度に、磁気ヘッドが浮上、降下を繰り返す。磁気ヘッドは、特に振動や衝撃を受けた際に、ディスク媒体の表面に接触する可能性があり、その際に、ディスク媒体の表面に発生する物理的な摩擦が、その後の読取りや、書込みに影響を及ぼす可能性がある。
【０００６】
また、ＨＤＤは、特に振動や衝撃を受けた際に、ディスク媒体を高速回転させるスピンドルモータの軸が、偏芯を起こす可能性があり、ディスク媒体と、磁気ヘッドとの相対距離が僅かに変化する場合がある。
【０００７】
さらに、この他の潜在的な要因として、ＨＤＤ製造の際のディスク媒体の状況の違いや、あるいは、スピンドルモータや磁気ヘッド等のＨＤＤ内部を制御するファームウェア（Ｆｉｒｍ  Ｗａｒｅ；以下、「ＦＷ」と称する）は、ＨＤＤのベンダや、種類、あるいはバージョンの違いによって、標準化された仕様の中でも解釈の違いにより、制御方針が僅かに異なることに起因して、挙動が様々となる場合があるため、統一的なアクセスに影響を及ぼす可能性がある。
【０００８】
前記の問題が発生する可能性に対して、一般に、ＨＤＤは、アクセスでエラーが発生した場合、エラー訂正機能や、読取りもしくは、書込みを繰り返すリトライ機能を備えている。さらに、ディスク媒体において、不良が発生した箇所を含む記憶単位であるセクタ毎、ＨＤＤ内の別領域に具備される代替のためのセクタ（以下、「代替セクタ」と称する）に、対象となるデータをそっくり移すことにより、ＨＤＤを正常な状態に戻す働きをする代替セクタ機能を備えている。
【０００９】
しかしながら、リトライ機能により、一時的に救済されるケースでは、代替セクタ機能が働いていないので、次回以降のアクセスで再びエラーが発生することにより、ＨＤＤは、リトライを実行したり、繰り返したりする可能性が大きく、それによる入出力のレスポンスが低下する状態が続くことがある（いわゆるシステムスローダウン障害）。その結果、情報処理システム全体の性能は、大幅に低下する可能性がある。
【００１０】
また、ＨＤＤのベンダ、種類、ＦＷの違いにより、リトライや代替セクタ機能などのエラーリカバリの挙動や、媒体の劣化に伴うＨＤＤの寿命等の判断も違ってくるため統一的に扱い難く、情報処理システム全体の運用、保守の手間が増えてしまう。
【００１１】
よって、リトライが多発するようなケースでは、むしろ代替セクタ機能により、不良が発生した箇所を含むデータを代替セクタに移し、入出力のレスポンスを正常に戻す必要がある。しかしながら、ＨＤＤのディスク媒体の不良箇所の判定を含む代替セクタ機能の制御方針自身は、ＨＤＤベンダや、ＨＤＤの種類、あるいはＦＷに大きく依存するため、ＨＤＤ内の代替セクタ機能の利用を促進することは難しい。従って、情報処理システムの例えば、上位の代替セクタ機能の利用を促進することによって、障害を解消することが、高性能、高信頼、高可用な情報処理システムを構築する上での課題である。なお、本課題は、ＳＡＴＡ  ＨＤＤ固有の課題ではなく、ＳＡＳ  ＨＤＤを含め、他の汎用仕様のＨＤＤでも、同様である。
【００１２】
ここで、特許文献１に記載の技術は、ＨＤＤのディスク媒体へ、正しくアクセスしたか否かの判定を、アクセスのリトライ回数で判断する技術を開示する。しかしながら、ＨＤＤベンダや、ＨＤＤの機種、ＦＷのバージョン、アクセスの不良が発生するディスク媒体の外周や内周等の領域の違い、その他の複合要因（以下、「ディスク特性」と称する）によっては、リトライ動作に時間がかかることがあるので、リトライ回数では判断し難い場合がある。また、本特許文献１では、所定の回数、リトライ動作をしてもアクセスできない場合は、所定の回数を超えて、更にリトライする。よって、本特許文献１による技術においては、装置システムの上位から見ると、ディスク特性の違いにより記憶デバイスの応答性能にバラつきがあるため、一定の装置システム性能を保障し難いという課題がある。また、ＨＤＤの採用ベンダのマルチベンダ化が進む中で、ディスク特性が異なると、エラーリカバリの挙動や、ＨＤＤの寿命等の判断は様々となるので、その結果、情報処理システム全体の運用・保守の手間が増えてしまうという課題もある。
【００１３】
また、特許文献２に記載の技術は、ＡＶ（Ａｕｄｉｏ  Ｖｉｓｕａｌ）用データのリアルタイム処理を行うＨＤＤの内部処理で、ＨＤＤのディスク媒体へ、正しくアクセスしたか否かの判断のために、まず、リアルタイム処理可能なコマンド処理時間を基に、エラー回復許容時間を算出している。次に、特許文献２では、それを基に、アクセスでエラーが発生した際に、発生箇所のアクセスのリトライを繰り返し、許容時間内に正しくアクセス出来なければその箇所を劣化疑いとする。その後、別途、アイドル時間帯にエラー発生箇所を検証する。それでもなお所定時間内に正しくアクセス出来ない場合に、ＨＤＤ内のディスク媒体の別領域で代替することを開示する。
【００１４】
しかしながら、上記特許文献２に記載されたＡＶ用データのアクセスのリトライ動作には、以下のような課題がある。即ち、アクセスは、繰り返しなされることで、媒体の劣化が進行する。その結果、同一ＨＤＤ内のディスク媒体による代替では、さらに媒体の劣化が進行する可能性があり、これにより、代替領域が満杯になってしまう。代替領域が満杯になると、以降のディスクデータを損失してしまい、信頼性が低下してしまうという課題がある。
【００１５】
なお、特許文献３は、通信機器の接続方式を決定する技術を開示する。即ち、基地局装置の制御部は、インターネットに接続するために、複数の接続方式のうち、選択された接続方式に対応するサーバに対して、接続要求を発行し、サーバからの応答を待つ。
【００１６】
その制御部は、接続確立に際して、接続要求を発してからその接続要求に対するサーバからの応答を受けるまでの時間であるターンアラウンドタイム（Ｔｕｒｎ  Ａｒｏｕｎｄ  Ｔｉｍｅ；以下、「ＴＡＴ」と称する）を記憶している。制御部は、その記憶されたＴＡＴに基づいて設定された時間を超過しても応答が返ってこない場合に、接続要求に対する応答が無いと判断し、次の接続方式に切替えて接続を試行することを開示する。
【先行技術文献】
【特許文献】
【００１７】
【特許文献１】特開２００８−２４３２６５号公報
【特許文献２】特開２００３−２５７１３０号公報
【特許文献３】ＷＯ２００９／００１４４４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１８】
上述した関連技術は、ＨＤＤのディスク特性によっては、リトライ動作に時間がかかることがあるので、応答性能にバラつきが出ることにより、一定の装置システム性能を保障し難いという課題がある。また、ＨＤＤ内の同一ディスク媒体に設けた代替領域による機能の代替では、長期間の使用により経年変化した同一ディスク媒体を使用するため、リトライの多発につながる可能性がある。これにより代替領域が満杯になってしまい、その結果、ＨＤＤは、その寿命を短くしてしまうと共に、以降のディスクデータを損失することにより、信頼性が低下してしまうという課題がある。さらに、これらに対応するための、情報処理システムとしての運用・保守に手間がかかるという課題もある。
【００１９】
本発明の目的は、上述した課題を解決し、サーバなどの情報処理システムの記憶デバイスの記憶媒体をモニタリングしつつ、システム性能低下を抑制し、信頼性を維持する記憶デバイスのモニタ装置などを提供することにある。
【課題を解決するための手段】
【００２０】
本発明は、上述した課題の解消を目的としてなされた。即ち、本発明に係る記憶デバイスのモニタ装置は、データの読取りまたは書込みのために、自装置に接続された第１の記憶デバイスの記憶領域にアクセスした際、そのアクセスを開始してから終了するまでの所要時間を計測し、計測した所要時間が所定値を超えると判断した場合、該アクセスした記憶領域を含む所定の記憶領域単位に対応するサイズのデータを、その所定の記憶領域の代わりに前記第１の記憶デバイスとは異なる、第２の記憶デバイスに格納する制御手段を備える。
【００２１】
また、同目的を達成する他の見地として、記憶デバイスのモニタ装置の制御方法は、記憶デバイスのモニタ装置に接続された第１の記憶デバイスの記憶領域に、データの読取りまたは書込みのためにアクセスした際、そのアクセスを開始してから終了するまでの所要時間を計測し、
計測した所要時間が所定値を超えると判断した場合、該アクセスした記憶領域を含む所定の記憶領域単位に対応するサイズのデータを、その所定の記憶領域の代わりに、前記第１の記憶デバイスとは異なる第２の記憶デバイスに格納する。
【００２２】
尚、同目的は、上記の各構成を有する記憶デバイスのモニタ装置またはその制御方法を、コンピュータによって実現するコンピュータ・プログラム、及びそのコンピュータ・プログラムが格納されている、コンピュータ読み取り可能な記憶媒体によっても達成される。
【発明の効果】
【００２３】
本発明によれば、サーバなどの情報処理システムの記憶デバイスの記憶媒体をモニタリングしつつ、システム性能の低下を抑制し、かつ、信頼性を維持することができる。
【図面の簡単な説明】
【００２４】
【図１】本発明の第１の実施形態に係る記憶デバイスのモニタ装置を示すブロック図である。
【図２】本発明の第２の実施形態に係る記憶デバイスのモニタ装置を示すブロック図である。
【図３】本発明の第２の実施形態のホストコントローラ１６の詳細を示すブロック図である。
【図４】本発明の第２の実施形態の代替セクターテーブルの内容を示す図である。
【図５】本発明の第２の実施形態の読出しシーケンスを示すフローチャートである。
【図６】本発明の第２の実施形態の書込みシーケンスを示すフローチャートである。
【図７】本発明の第２の実施形態のＴＡＴの設定値を決定するシーケンスを示すフローチャートである。
【図８】本発明の第３の実施形態に係る記憶デバイスのモニタ装置を示すブロック図である。
【図９】本発明の第４の実施形態に係る記憶デバイスのモニタ装置を示すブロック図である。
【発明を実施するための形態】
【００２５】
以下、本発明を実施する形態について図面を参照して詳細に説明する。
＜第１の実施形態＞
まず、本発明の第１の実施形態について説明する。図１は、本発明の第１の実施形態に係る記憶デバイスのモニタ装置の構成を示すブロック図である。本モニタ装置は、本モニタ装置を制御する制御部１、第１の記憶部２、および第２の記憶部３を有する。
【００２６】
より具体的に、制御部１は、データの読取りまたは書込みのために、制御部１に接続する第１の記憶部２の記憶領域にアクセスする。その際、制御部１は、そのアクセスを開始してから終了するまでの所要時間を計測する。そして、制御部１は、計測した所要時間が所定値を超えると判断した場合、そのアクセスした第１の記憶部２の記憶領域を含む所定の記憶領域単位に対応するサイズのデータを、その所定の記憶領域の代わりに、第１の記憶部２とは異なる、制御部１に接続する第２の記憶部３に格納する。
【００２７】
即ち、制御部１は、第１の記憶部２の記憶媒体へのアクセス所要時間をモニタリングすることにより、所要時間を超えて不良と判断する箇所を含む記憶領域単位のデータを、第２の記憶部３にそっくり移すことにより代替する。これにより、本実施形態に係るモニタ装置によれば、所定のアクセス時間を超えることに伴うシステム性能の低下を抑制し、かつ、不良と判断された箇所を別領域で代替することで、信頼性を維持するという効果を奏することができる。
【００２８】
なお、第１の記憶部２、第２の記憶部３は、各々制御部１の外部もしくは、内部の何れかに接続しても、上述した同様の効果を奏することができる。また、図１に示す第１の実施形態では、説明の便宜上から、第１の記憶部２は自装置の外部に、第２の記憶部３は自装置に内蔵する構成としているが、必ずしも本構成に限定されない。
＜第２の実施形態＞
次に、第１の実施形態を基本とする本発明の第２の実施形態について図面を参照して詳細に説明する。本第２の実施形態では、動作をモニタリングするモニタ対象としてＨＤＤを例に説明する。図２は、第２の実施形態に係るＨＤＤのモニタ装置を示すブロック図である。図３は、図２に示すホストコントローラ１６の詳細を示すブロック図である。
【００２９】
まず、図２を参照すると、本発明の第２の実施形態におけるコンピュータ１１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１３、メインメモリ１４、Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ：入出力）コントローラ１５、ホストコントローラ１６等、一般的なコンピュータ内部の構成を実装していることに加えて、ホストコントローラ１６は、代替セクタテーブル１７を制御する。
【００３０】
ここで、ＣＰＵ１３は、コンピュータ１１の全体をプログラムと協働して制御する中央演算ユニットである。メインメモリ１４は、プログラムやデータの一部を、ＣＰＵ１３やプログラムの指示に基づいて一時的に保管する一時記憶デバイスである。Ｉ／Ｏコントローラ１６は、コンピュータ１１と周辺デバイスとの間で、情報の入出力を制御する入出力制御部である。さらに、ホストコントローラ１６は、記憶デバイス等の周辺デバイスと、Ｉ／Ｏコントローラ１５との間にあって、直接周辺デバイスを制御する周辺制御部である。
【００３１】
また、ディスクモジュール１２は、ディスクコントローラ１８および、ディスク媒体１９を実装し、主記憶装置となる一般的なディスクモジュール構成であり、即ち、ＨＤＤである。なお、説明の便宜上、代替セクタテーブル１７は、ホストコントローラ１６の外部に設けているが、ホストコントローラ１６の内部に設けてもよい。
【００３２】
コンピュータ１１において、中央演算ユニットであるＣＰＵ１３は、ディスクモジュール１２に格納されているデータを読出す場合、Ｉ／Ｏコントローラ１５、およびホストコントローラ１６の動作を制御することにより、ディスクモジュール１２内のディスクコントローラ１８にアクセスする。ディスクコントローラ１８は、磁気ヘッド（不図示、以下同様）を動かすことにより、ディスク媒体１９から、セクタ単位でデータを読出し、読出したデータをホストコントローラ１６へ渡す。Ｉ／Ｏコントローラ１５は、ホストコントローラ１６からデータを受け取り、メインメモリ１４にデータを格納するのが正常動作時のディスクデータの読出しの流れである。
【００３３】
ここで、ホストコントローラ１６は、ディスクモジュール１２への読出し要求を発行してから、結果データを入手するまでのＴＡＴを計測する。そしてホストコントローラ１６は、読出しに長い時間を要したと判断した場合は、代替セクタテーブル１７に対して、読出しに時間を要したディスクモジュール１２のセクタアドレス情報と、それらのアドレスに格納されているセクタデータを代替セクタテーブル１７に登録する。
【００３４】
これにより、ホストコントローラ１６は、次回以降の同じアドレスに対する読出しアクセスが発生した場合は、後述する図３に示す、検索器６２を用いて、代替セクタテーブル１７のセクタアドレス情報を検索してアドレスに対応するデータを見つけ出し、ディスクモジュール１２にアクセスすることなく、データの読出しを行うことができる。
【００３５】
次にデータをディスクモジュール１２に書込む場合は、ＣＰＵ１３は、Ｉ／Ｏコントローラ１５の動作を制御することにより、メインメモリ１４から書込みデータを読出し、読出したデータをホストコントローラ１６に送る。ここでホストコントローラ１６は、代替セクタテーブル１７を検索し、書込み先のディスクアドレスが登録されていることを検知した場合、代替セクタテーブル１７から当該アドレスのレコードを削除する。
【００３６】
削除したら、ホストコントローラ１６は、ディスクモジュール１２のディスクコントローラ１８にアクセスして、磁気ヘッドによって、ディスク媒体１９にデータの書込みを試みる。書込みが正常に終了すれば、ホストコントローラ１６は正常終了を要求元のＣＰＵ１３に通知する。
【００３７】
ここで、書込みが正常に行われたか否かの確認は、例えば、書込みに許容される時間内で、読取りを行い、書込み内容と照合することによるベリファイ動作によって確認してもよい。
【００３８】
また、ホストコントローラ１６は、ディスクコントローラ１８の機能を制御して、書込みに失敗した場合、ディスクモジュール１２自身の機能として持っている不図示の代替セクタ機能によって、ディスク媒体１９の別領域に設ける代替セクタへの書込みを行う。その場合でも、ディスクコントローラ１８は、ホストコントローラ１６に、正常終了を通知する。
【００３９】
しかしながら、ディスクモジュール１２自身の当該代替セクタ機能では、例えば、使用による経年変化などに起因して生じる代替動作の多発により、予め用意された代替セクタの領域から溢れてしまうような場合や、ディスクコントローラ１８自身の故障等の不具合によって代替機能が動作不能に陥ってしまっている場合がある。この様な場合には、ホストコントローラ１６は、ディスクコントローラ１８の機能を制御して、ホストコントローラ１６自身へ、エラーを通知する。
【００４０】
ホストコントローラ１６は、このエラーを受けて、代替セクタテーブル１７に、アドレスと書込みデータを登録する。これにより、ホストコントローラ１６は、書込み要求の失敗を回避し、次回以降の同じアドレスに対する読出し要求は、代替セクタテーブル１７を検索することにより、当該のデータを読出すことが可能となる。
【００４１】
なお、ディスクモジュール１２が保持していないデータを代替セクタテーブル１７で保持しているというＨＤＤのモニタ装置としての警告レベルの状態であることに対しては、できるだけ早く、データのバックアップを実施し、ディスクの交換を促すための管理者やユーザへの通知を、コンピュータ１１がＯＳ、ソフトを通して行うようにすればよい。
【００４２】
ここで、一般に、ホストコントローラ、およびディスクコントローラは、ＨＤＤへのデータ書込みの際に、原理的には磁気ヘッドでディスク媒体に正しく書込むためと、書込み速度を早くするために、書込んだ直後に、正しく書込まれたか否かまでは、遂次読出して確認しない場合が多い。しかし、実施の形態では、書込んだ直後に読出して確認するベリファイ動作は、システム性能を確保できる範囲で行ってもよい。また同様に書込みの際に、ホストコントローラは、時間計測をしない場合が多いが、読出しと同様に、上位からの書込み指示の開始から完了までのＴＡＴを測定し、その計測値と設定値と比較して、正しく書込まれたか否かを確認してもよい。この場合、読出しと書込みで、設定値を切り替えるようにすればよい。
【００４３】
次に、ホストコントローラ１６の詳細な構成について図３を用いて説明する。ホストコントローラ１６は、ディスクモジュール１２へアクセスするための一般的な動作機能であるバッファ６１や不図示の制御機能に加えて、ディスクモジュール１２のディスク媒体へのアクセス時間を計時する計測器６３、代替セクタテーブル１７の検索、登録／削除を行うための検索器６２、および登録／削除器６５を持っている。さらに、計測器６３の計測時間と設定値を比較する比較器６４を有している。
【００４４】
次に、読取り動作について説明する。ホストコントローラ１６は、Ｉ／Ｏコントローラ１５、ディスクモジュール１２や、代替セクタテーブル１７からの要求やデータを、内部のバッファ６１に一旦格納する。具体的には、ＣＰＵ１３から、Ｉ／Ｏコントローラ１５およびホストコントローラ１６の動作を制御することにより、ホストコントローラ１６は、ディスクデータの読出しの要求を入手する。それに伴い、ホストコントローラ１６は、バッファ６１に要求情報を格納し、検索器６２に対して、読出し先のアドレスが、代替セクタテーブル１７に登録されているかを検索する。ホストコントローラ１６は、検索の結果、アドレスが登録されていて、対応するデータが見つかったら、バッファ６１にデータを格納し、ディスクモジュール１２にアクセスすることなく、Ｉ／Ｏコントローラ１５にデータを渡す。
【００４５】
代替セクタテーブル１７にデータが見つからなかった場合、ホストコントローラ１６は、計測器６３に対して、時間の計測開始を指示して、ディスクモジュール１２へ読出し要求を行う。ホストコントローラ１６は、ディスクモジュール１２からデータを入手したら、再び計測器６３に対して、今度は時間の計測終了を指示する。これにより、ホストコントローラ１６は、計測器６３で、ディスクモジュール１２へ要求を出してからデータを入手するまでのＴＡＴを計算する。
【００４６】
ここで、ＴＡＴは値が小さい程、応答性能が速いことを意味する。ホストコントローラ１６は、比較器６４において、計算されたＴＡＴと、あらかじめ決められた設定値と比較を行い、その設定値より、超えている場合、つまり応答性能が遅いと判定すると、登録／削除器６５によって、バッファ６１に格納されているデータを、代替セクタテーブル１７に登録する。ホストコントローラ１６は、登録完了後、Ｉ／Ｏコントローラ１５にデータを渡す。
【００４７】
次に、書込み動作について説明する。ＣＰＵ１３は、メインメモリ１４から書込みデータを読出し、Ｉ／Ｏコントローラ１５の動作を制御することにより、ホストコントローラ１６のバッファ６１に書き込みデータを格納後、検索器６２に対して、代替セクタテーブル１７の検索を指示し、書込み先のアドレスの登録の有無を確認する。登録されていれば、登録／削除器６５から、当該アドレスのセクタデータの削除を行う。その他に、ディスクモジュール１２での書込み処理が失敗し、エラーが通知されてきた場合は、登録／削除器６５は、代替セクタテーブル１７に、データの登録を行う。
【００４８】
次に、代替セクタテーブル１７の詳細な構成について説明する。図４は、本発明の第２の実施形態の代替セクターテーブルの内容を説明する図である。図４において、代替セクタテーブル１７の内部は、ディスク識別子７１、セクタアドレス７２とセクタデータ７３の３つの列のテーブル構成となっている。ディスク識別子７１は、ホストコントローラ１６が複数のディスクモジュールを管理する場合にディスクを識別するために使用し、例として、ディスクのシリアル番号を利用すればよい。セクタアドレス７２は、ディスクのセクタへアクセスする際のアドレスとなる。また、セクタデータ７３は、ディスクのセクタのデータを格納する。これらが、紐付けられたデータ構造となっている。これらの３つのデータの集合をレコードとして定義し、レコード単位で、検索、登録／削除が行われる。
【００４９】
なお、本第２の実施形態では、ディスクモジュールは説明の都合上、１つのディスクモジュールで説明しているが、必ずしも１つに限るものではない。
【００５０】
また、一般に、ディスクの１セクタのサイズは５１２バイトであるので、本テーブルのセクタデータ７３のサイズも５１２バイトとする。しかし、実施形態として、システム性能が低下しない範囲で、同サイズには限らない。なお、代替セクタテーブル１７は、コンピュータ１１への電源供給が途絶えて、コンピュータの動作が停止した場合でも、テーブルデータを保持可能とするため、例えば、不揮発性の半導体メモリに実装することが好ましい。
【００５１】
また、ディスクモジュール１２は、ホストコントローラ１６との間のインタフェースで、交換が可能であり、読取りや書込みの頻度が増え、ディスク媒体１９の劣化が進み、エラー箇所が増えると、新品に交換することができる。
【００５２】
また、実施形態の応用として、例えば、ディスクモジュール１２のディスク媒体１９の部分のみをいわゆるリムーバルメディアとして、新品に交換できるようにしてもよい。
【００５３】
さらに、ホストコントローラ１６は、ディスクモジュール１２が交換され、切り替わったことをディスク識別子により検知した場合は、代替セクタテーブル１７から、交換前のディスクモジュール１２に関する登録データを自動的にすべて削除することとする。
【００５４】
ここで、ＴＡＴの設定について説明する。ホストコントローラ１６は、アイドル期間に、ディスクモジュール１２に内蔵の、ＨＤＤに一般に具備されている、不図示の自己診断機能であるＳｅｌｆ−Ｍｏｎｉｔｏｒｉｎｇ  Ａｎａｌｙｓｉｓ  ａｎｄ  Ｒｅｐｏｒｔｉｎｇ  Ｔｅｃｈｎｏｌｏｇｙ（以下、「ＳＭＡＲＴ」と称する）機能で、シークエラー発生数を確認しておく。
【００５５】
次に、ホストコントローラ１６は、同じくアイドル期間にディスクモジュール１２のディスク媒体１９において、ディスク媒体の内周と外周の周速度の違いに起因して生じるアクセスに最も時間がかかる最内周での、任意のデータアクセスの状況を診断するために、テスト読出し要求を発行し、最内周の任意のセクタデータを読出す。
【００５６】
ここで、読出す最内周の任意のセクタデータは、テスト目的のためであるので、セクタデータを正しく読取ることができれば、後は読捨てても構わない（いわゆる、ダミーリード）。それに伴い、ホストコントローラ１６は、計測器６３を用いて読取りの所要時間を計測する。さらに、ホストコントローラ１６は、同じくアイドル期間に、２回目のＳＭＡＲＴ機能のシークエラー発生数を確認することで、シークエラー発生数がテスト読出し実行前より増加したか否かを調べる。
【００５７】
ホストコントローラ１６は、シークエラー発生数が増加してなければ、計測器６３で計測した、セクタデータを正しく読取ることができた際の時間を基にＴＡＴの設定値として、比較器６４の設定値に設定する。ここで、ＴＡＴの設定値には、最内周の任意のセクタデータ読取りの所要時間値に適当なマージン時間を加えた値を設定値として設定すればよい。
【００５８】
また、ホストコントローラ１６は、シークエラー発生数が増加していれば、ＴＡＴの設定値の設定エラーを入手する。
【００５９】
以上により、ホストコントローラ１６は、アイドル期間におけるテスト読出し動作によって、発生したエラー傾向としてのエラー数（エラー発生数）と、そのアクセスの所要時間とに基いて、そのアクセスしたディスク媒体の劣化傾向を診断することができる。
【００６０】
次に、上述した構成を備えるHDDのモニタ装置の動作について図５から図７のフローチャートを参照してさらに詳細に説明する。ここで、図５は本発明の第１の実施形態の読出しシーケンスを示すフローチャートである。図６は、本発明の第１の実施形態の書込みシーケンスを示すフローチャートである。図７は、本発明の第１の実施形態のＴＡＴの設定値を決定するシーケンスを示すフローチャートである。
【００６１】
まず、データ読出しシーケンスについて、図５のフローチャートを参照して説明する。ＣＰＵ１３は、ディスクモジュール１２に格納されているデータを読出すために、Ｉ／Ｏコントローラ１５およびホストコントローラ１６の動作を制御して、ホストコントローラ１６に読出し要求を行う（ステップＳ１）。ホストコントローラ１６は、読出し要求を、ホストコントローラ１６内のバッファ６１に格納する（ステップＳ２）。
【００６２】
その後、ホストコントローラ１６は、検索器６２に対して、代替セクタテーブル１７の検索を指示し（ステップＳ３）、読出し先と同じアドレスのレコード情報が登録されていないかを確認する（ステップＳ４）。ホストコントローラ１６は、もし登録を確認したならば（ステップＳ４にて「ＹＥＳ」）、代替セクタテーブル１７に登録していたセクタデータ７３をバッファ６１に格納し（ステップＳ５）、要求元であるＣＰＵ１３に、そのデータを返し（ステップＳ６）、メインメモリ１４にデータが格納される。この場合、ディスクモジュール１２へのアクセスが発生することなく、データの読出しを行う。
【００６３】
次に、ホストコントローラ１６は、ステップＳ４において、レコード情報の登録が確認できない場合は（ステップＳ４にて「ＮＯ」）、計測器６３に対して、時間の計測開始を指示（ステップＳ７）する。それと共に、ホストコントローラ１６は、ディスクモジュール１２にアクセスする（ステップＳ８）。
【００６４】
それにより、ディスクコントローラ１８は、磁気ヘッドで、ディスク媒体１９からデータの読出しを開始する。ホストコントローラ１６は、ディスクコントローラ１８の動作を制御して、読出しに成功したかどうかの判定（ステップＳ９）において、読出しに成功すれば（ステップＳ９にて「ＹＥＳ」）、データをホストコントローラ１６のバッファ６１に格納する（ステップＳ１０）。
【００６５】
また、ホストコントローラ１６は、ディスクコントローラ１８の動作を制御して、ステップＳ９において、読出しに成功しなかった場合は（ステップＳ９にて「ＮＯ」）、再度読出しを試みるためにリトライ動作を行う。ホストコントローラ１６は、そのリトライ時間のチェック（ステップＳ１２）において、後述するあらかじめ設定している設定値を超過してしまった場合は（ステップＳ１２にて「ＹＥＳ」）、リトライ動作を停止し、データの読出しが失敗したことで、エラーを入手すると共に、読出しの要求元であるＣＰＵ１３にエラーを連絡する（ステップＳ１３）。
【００６６】
ホストコントローラ１６は、設定値内でのリトライ動作（ステップＳ１２にて「ＮＯ」、ステップＳ９にて「ＹＥＳ」）により、読出しに成功すれば、リトライ無しのときと同様にデータをバッファ６１に格納する（ステップＳ１０）。ホストコントローラ１６は、再び、計測器６３にアクセスして、時間の計測終了を指示して（ステップＳ１１）、ディスクモジュール１２に読出し指示を出してから、結果が返ってくるまでの読み出し時間、つまりＴＡＴを計算する。ホストコントローラ１６は、次に、比較器６４において、計算されたＴＡＴと、あらかじめ設定している読出し所要時間の設定値との比較を行う（ステップＳ１４）。
【００６７】
ここで、ＴＡＴの長短については、前述のステップＳ９において、エラーが発生することなく読出しに成功した場合は（ステップＳ９にて「ＹＥＳ」）、このＴＡＴは短くなるが、エラー発生によるリトライが多発して最終的に読出しに成功したような場合（ステップＳ９にて「ＮＯ」、ステップＳ１２にて「ＮＯ」）には、ＴＡＴが長くなる。
【００６８】
ホストコントローラ１６は、ＴＡＴが長く、設定値との比較でＴＡＴが超過し、ディスクの応答性能が遅いと判断すると、登録／削除器６５によって、代替セクタテーブル１７に、ディスク識別子７１、セクタアドレス７２、セクタデータ７３の集合をレコードとして、登録し（ステップＳ１５）、要求元であるＣＰＵ１３にデータを返す（ステップＳ６）。
【００６９】
なお、それ以降の、同アドレスへのアクセスでは、ホストコントローラ１６は、代替セクタテーブル１７からのデータ読み出しを行うようになるため（ステップＳ４からステップＳ５への分岐）、読出し時間、つまりＴＡＴの短縮化を図ることができる。
【００７０】
次に、もう一つの動作例であるディスクへのデータ書込みシーケンスについて、図６に示すフローチャートを参照して説明する。
【００７１】
ＣＰＵ１３は、ディスクモジュール１２に対して、データを書込むために、メインメモリ１４から、データを読出し、Ｉ／Ｏコントローラ１５の動作を制御して、ホストコントローラ１６に書込み要求を行う（ステップＳ２１）。ホストコントローラ１６は、書込みデータを、ホストコントローラ内のバッファ６１に格納する（ステップＳ２２）。
【００７２】
その後、ホストコントローラ１６は、検索器６２に対して、代替セクタテーブル１７の検索を指示し（ステップＳ２３）、書込み先と同じアドレスのレコード情報が登録されていないかを確認する（ステップＳ２４）。ホストコントローラ１６は、もし登録を確認（ステップＳ２４にて「ＹＥＳ」）したならば、登録／削除器６５で、代替セクタテーブル１７から、当該レコード情報の削除を行う（ステップＳ２５）。
【００７３】
また、ホストコントローラ１６は、もしレコード情報の登録を確認できなければ（ステップＳ２４にて「ＮＯ」）、ディスクモジュール１２に対して、データの書込み要求のためにアクセスする（ステップＳ２６）。
【００７４】
ここで、ホストコントローラ１６は、ステップ２５において、レコード情報の更新ではなく、削除を行う理由は、ディスクモジュール１２で、ディスク媒体１９に対する書込みエラーが発生した場合に、ディスク媒体１９の劣化が進行してないシステム稼動初期において、ほとんどのケースで、ディスクモジュール１２内のディスク媒体１９の別領域にある代替セクタ機能が正常に動作することにより、正常復旧することを想定しているからである。
【００７５】
続いて、ホストコントローラ１６は、代替セクタテーブル１７のチェックが完了後（ステップＳ２４）、ディスクモジュール１２に対して、データの書込み要求のためにアクセスする（ステップＳ２６）。ディスクコントローラ１８は、磁気ヘッドによって、ディスク媒体１９にデータの書き込みを開始する。ホストコントローラ１６は、書き込みに成功したかどうかの判定（ステップＳ２７）において、書き込みに成功すれば（ステップＳ２７にて「ＹＥＳ」）、要求元であるＣＰＵ１３に書き込みの正常完了を通知する（ステップＳ２８）。
【００７６】
ところで、ステップＳ２７において、ホストコントローラ１６は、ディスクコントローラ１８の機能を制御して、書込みに失敗した場合は（ステップＳ２７にて「ＮＯ」）、ディスクコントローラ１８自身のＦＷ機能により、ディスク媒体１９の別領域による代替セクタ機能を実行する（ステップＳ２９）。ホストコントローラ１６は、ディスクコントローラ１８の機能を制御して、ディスクモジュール１２の代替セクタ領域への書込みが成功すれば（ステップＳ３０にて「ＹＥＳ」）、要求元であるＣＰＵ１３に書込みの正常完了を通知する（ステップＳ２８）。
【００７７】
ホストコントローラ１６は、ディスクコントローラ１８の機能を制御してディスクモジュール１２で書込みエラー状態を復旧させることができないため、下記の２つのケースにおいてホストコントローラ１６自身へエラーを返す（ステップＳ３１）。
【００７８】
１つ目は、ステップＳ２９において、ホストコントローラ１６は、代替セクタ機能が、代替多発による登録数の超過により溢れたり、ディスクコントローラ１８の故障等による不具合によって代替セクタ機能が動作不能に陥ってしまっている場合（ステップＳ２９にて「ＮＯ」）である。
【００７９】
２つ目は、ホストコントローラ１６は、ディスクコントローラ１８の機能を制御して、ステップＳ３０において、ディスクモジュール１２の代替セクタ領域への書込みさえも失敗してしまうような場合（ステップＳ３０にて「ＮＯ」）である。
【００８０】
ホストコントローラ１６は、エラーを受け、登録／削除器６５に対して、代替セクタテーブル１７へ、書込みデータを登録する（ステップＳ３２）。そして、書込み要求元であるＣＰＵ１３に対して、ディスクモジュール１２への書込みが失敗したが、代替セクタテーブル１７に対する書込みは完了したことを通知する（ステップＳ３３）。
【００８１】
この通知により、ユーザに対して、すべてのデータがディスクモジュール１２には存在せず、代替セクタテーブル１７によって、データ損失を回避できていることを認識させることにより、データを速やかに退避（バックアップ）させ、ディスク交換を促すことができる。
【００８２】
次に、本発明の第２の実施形態に係るＴＡＴの設定値決定について、図７のフローチャートを参照してさらに詳細に説明する。ホストコントローラ１６は、アイドル期間に、ディスクコントローラ１８の動作を制御し、ＳＭＡＲＴ機能のシークエラー発生数を確認する（ステップ４１）。
【００８３】
ホストコントローラ１６は、同じくアイドル期間に、ディスクモジュール１２のディスク媒体１９で、ディスク媒体の内周と外周の周速度の違いに起因して生じる、アクセスに最も時間がかかる最内周の任意のデータアクセスの状況を診断するために、ディスクコントローラ１８へ、テスト読出し要求を発行する（ステップ４２）。
【００８４】
さらに、ホストコントローラ１６は、当該テスト読出し要求をバッファ６１へ格納（ステップ４３）するとともに、計測器６３で所要時間の計測を開始する（ステップ４４）。ホストコントローラ１６は、テスト読出しのため、ディスク媒体１９へアクセス（ステップ４５）し、読出した最内周の任意のセクタデータをバッファ６１へ格納する（ステップ４６）とともに、計測器６３での時間計測を終了する（ステップ４７）。
【００８５】
ここで、読出す最内周の任意のセクタデータは、テスト目的のためであるので、セクタデータを正しく読取ることができれば、後は読捨てても構わない（いわゆる、ダミーリード）。
【００８６】
次に、ホストコントローラ１６は、ディスクコントローラ１８の動作を制御し、さらに、２回目のＳＭＡＲＴ機能のシークエラー発生数を確認し（ステップ４８）、シークエラー発生数が増加したか否か判断（ステップ４９）する。ここで、増加してなければ（ステップＳ４９にて「ＮＯ」）、ホストコントローラ１６は、計測器６３で計測した、セクタデータを正しく読取ることができた際の時間を基にＴＡＴの設定値として、比較器６４の設定値に設定する（ステップ５１）。増加していれば（ステップＳ４９にて「ＹＥＳ」）、ディスクコントローラ１８は、要求元のホストコントローラ１６にＴＡＴの設定値の設定エラーの通知を渡す。
【００８７】
ここで、ＴＡＴの設定値には、最内周の任意のセクタデータ読取りの所要時間値に適当なマージン時間を加えた値を設定値として設定すればよい。
【００８８】
また、ホストコントローラ１６は、ＴＡＴの設定値の設定エラーを入手したら、Ｉ／Ｏコントローラの機能を制御して、ＣＰＵ１３にディスク媒体１９の劣化傾向を通知するようにしてもよい。
【００８９】
以上の第２の実施形態により、ホストコントローラ１６は、ディスクモジュール１２のディスク媒体１９のアクセス所要時間をモニタリングして、そのアクセス所要時間が、所定の時間を超えることで、不良箇所であると判断したならば、当該箇所を含むセクタ単位毎、代替セクタテーブル１７の所定のサイズの、所定の箇所で代替する。
【００９０】
なお、代替セクタテーブルは、例えば、情報処理システムの第１の記憶デバイスより、システム上、上位にあるＣＰＵ１３近くで、システム性能の低下を抑制しやすいホストコントローラ１６に直接接続することが好ましい。
【００９１】
これにより、本実施形態によれば、ディスクモジュール１２のディスク特性に依存することなく、ディスクモジュール１２との間の入出力レスポンスの低下、およびそれによるシステム性能の低下を抑制できるという効果を奏することができる。
【００９２】
また、ディスクモジュール１２のディスク特性の違いに基いた、エラーリカバリの制御方針や、媒体の劣化状況の判断方針の違いに起因する、統一的な扱いの困難さを容易にできるという効果を奏する。さらに、ＨＤＤ内の同一ディスク媒体に設けた代替領域の、使用による経年変化に起因するリトライの繰り返しや、これによる代替領域が満杯になり、その結果、ＨＤＤの寿命を短くしてしまうと共に、以降のディスクデータを損失することにより、信頼性が低下することを回避できる効果を奏する。
【００９３】
その上、これらにより、情報処理システムとしての運用・保守の手間を省くことができ、信頼性を確保できるという効果もある。
【００９４】
即ち、本第２の実施形態によれば、情報処理システムの記憶デバイスの記憶媒体をモニタリングしつつ、システム性能の低下を抑制し、かつ、信頼性を維持することができるという他の実施形態と同様の効果を奏することができる。
＜第３の実施形態＞
次に、第２の実施形態を基本とする第３の実施形態について説明する。図８は、第２の実施形態のブロック図である。本実施形態では、図２、図３におけるホストコントローラ１６と、ディスクモジュール１２との間のインタフェースは、たとえば、ＳＡＴＡインタフェースで同様であるが、ディスクモジュール１２を、不揮発性半導体メモリモジュール（例えば、ＳＡＴＡ  ＳＳＤ；Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）に替えた点が異なる。図８において、不揮発性半導体メモリモジュール１１２は、不揮発性半導体メモリコントローラ１１８と、不揮発性半導体メモリ１１９を有している。
【００９５】
ホストコントローラ１６は、不揮発性半導体メモリコントローラ１１８の機能を制御して、以下を行う点で、他の実施形態と同様である。即ち、不揮発性メモリ１１９の内容の読取りや書込みを行うこと、メモリコントローラ１１８にエラー発生数の計数等の制御／診断機能を有し実行すること、ホストコントローラ１６から、ＴＡＴによって不揮発性半導体メモリ１１９のアクセス箇所の良否を判断すること、および不良と判断すれば、セクタ単位で代替することである。このため、以下の説明においては、本第３の実施形態に係る特徴的な部分を中心に説明すると共に、上述した第２の実施形態と同様な構成についての重複する説明は省略する。
【００９６】
本第３の実施形態によれば、不揮発性半導体モジュールは、ディスク媒体回転機構、磁気ヘッド収出機構等に代わり、不揮発性の半導体メモリを使用するため、機器の小型化、省電力化が可能となる特有の効果がある。
【００９７】
本第３の実施形態により、ホストコントローラ１６は、不揮発性半導体メモリモジュール１１２の不揮発性半導体メモリ１１９のアクセス所要時間をモニタリングして、そのアクセス所要時間が、所定の時間を超えることで、不良箇所であると判断したならば、当該箇所を含むセクタ単位毎、代替セクタテーブル１７の所定のサイズの、所定の箇所で代替する。
【００９８】
なお、代替セクタテーブルは、例えば、情報処理システムの第１の記憶デバイスより、システム上、上位にあるＣＰＵ１３近くで、システム性能の低下を抑制しやすいホストコントローラ１６に直接接続することが好ましい。
【００９９】
これにより、不揮発性半導体メモリモジュール１１２の特性に依存することなく、不揮発性半導体メモリモジュール１１２との間の入出力レスポンスの低下、およびそれによるシステム性能の低下を抑制できるという効果を奏することができる。
【０１００】
また、不揮発性半導体メモリモジュール１１２のメーカ、種類、ＦＷなどのモジュール特性の違いに基いた、エラーリカバリの制御方針や、媒体の劣化状況の判断方針の違いに起因する、統一的な扱いの困難さを容易にできるという効果を奏する。さらに、不揮発性半導体メモリモジュール内の同一メモリ媒体に設けた代替領域の、使用による経年変化に起因するリトライの繰り返しや、これによる代替領域が満杯になり、その結果、不揮発性半導体メモリモジュールの寿命を短くしてしまうと共に、以降のデータを損失することにより、信頼性が低下することを回避できる効果を奏する。
【０１０１】
その上、これらにより、情報処理システムとしての運用・保守の手間を省くことができ、信頼性を確保できるという効果もある。
【０１０２】
即ち、本第３の実施形態によれば、情報処理システムの記憶デバイスの記憶媒体をモニタリングしつつ、システム性能の低下を抑制し、かつ、信頼性を維持することができるという他の実施形態と同様の効果を奏することができる。
＜第４の実施形態＞
次に、第２および、第３の実施形態を基本とする第４の実施形態について説明する。図９は、第４の実施形態のブロック図である。本第４の実施形態では、図２、図３におけるホストコントローラ１６と、ディスクモジュール１２とのインタフェースが、ユニバーサル  シリアル  バス（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ；以下、「ＵＳＢ」と称する）に替えた点が異なる。図９において、不揮発性半導体モジュール（ＵＳＢメモリモジュール）２１２は、メモリコントローラ（ＵＳＢストレージデバイスコントローラ）２１８と、不揮発性半導体メモリ（ＵＳＢ不揮発性半導体メモリ）２１９を有している。
【０１０３】
ホストコントローラ１６は、メモリコントローラ２１８の機能を制御して、以下を行う点で、第２や第３の実施形態と同様である。即ち、不揮発性メモリ２１９の内容の読取りや書込みを行うこと、メモリコントローラ２１８にエラー発生数の計数等の制御／診断機能を有し実行すること、ホストコントローラ１６から、ＴＡＴによって不揮発性半導体メモリ２１９のアクセス箇所の良否を判断すること、および不良と判断すれば、セクタ単位で代替することである。このため、以下の説明においては、本第４の実施形態に係る特徴的な部分を中心に説明すると共に、上述した第２乃至第３の実施形態と同様な構成についての重複する説明は省略する。
【０１０４】
本第４の実施形態によれば、不揮発性半導体モジュールは、ディスク媒体回転機構、磁気ヘッド収出機構等に代わり、不揮発性の半導体メモリを使用するため、機器の小型化、省電力化が可能となる特有の効果がある。
【０１０５】
本第４の実施形態により、ホストコントローラ１６は、不揮発性半導体メモリモジュール２１２の不揮発性半導体メモリ２１９のアクセス所要時間をモニタリングして、そのアクセス所要時間が、所定の時間を超えることで、不良箇所であると判断したならば、当該箇所を含むセクタ単位毎、代替セクタテーブル１７の所定のサイズの、所定の箇所で代替する。
【０１０６】
なお、代替セクタテーブルは、例えば、情報処理システムの第１の記憶デバイスより、システム上、上位にあるＣＰＵ１３近くで、システム性能の低下を抑制しやすいホストコントローラ１６に直接接続することが好ましい。
【０１０７】
これにより、不揮発性半導体メモリモジュール（ＵＳＢメモリモジュール）２１２の特性に依存することなく、不揮発性半導体メモリモジュール（ＵＳＢメモリモジュール）２１２との間の入出力レスポンスの低下、およびそれによるシステム性能の低下を抑制できるという効果を奏することができる。
【０１０８】
また、不揮発性半導体メモリモジュール（ＵＳＢメモリモジュール）２１２のメーカ、種類、ＦＷなどのモジュール特性の違いに基いた、エラーリカバリの制御方針や、媒体の劣化状況の判断方針の違いに起因する、統一的な扱いの困難さを容易にできるという効果を奏する。さらに、不揮発性半導体メモリモジュール内の同一メモリ媒体に設けた代替領域の、使用による経年変化に起因するリトライの繰り返しや、これによる代替領域が満杯になり、その結果、不揮発性半導体メモリモジュールの寿命を短くしてしまうと共に、以降のデータを損失することにより、信頼性が低下することを回避できる効果を奏する。
【０１０９】
その上、これらにより、情報処理システムとしての運用・保守の手間を省くことができ、信頼性を確保できるという効果もある。
【０１１０】
即ち、本第４の実施形態によれば、情報処理システムの記憶デバイスの記憶媒体をモニタリングしつつ、システム性能の低下を抑制し、かつ、信頼性を維持することができるという他の実施形態と同様の効果を奏することができる。
【０１１１】
さらに、本第４の実施形態で、ホストコントローラ１６とディスクモジュール１２とのインタフェースがＰＣＩ  Ｅｘｐｒｅｓｓ  Ｂｕｓ：ＰＣＩ  エクスプレス  バス  インタフェース(以下、「ＰＣＩｅ」と称する)でかつ、不揮発性の半導体メモリモジュールが、Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ  Ｍｅｍｏｒｙ  Ｃａｒｄ；以下、「ＳＤ」と称する）である点が異なる構成でもよい。その場合、図９において、不揮発性半導体モジュール（ＳＤメモリモジュール）３１２は、メモリコントローラ（ＳＤメモリメディアコントローラ）３１８と、不揮発性半導体メモリ（ＳＤ不揮発性半導体メモリ）３１９を有している。
【０１１２】
なお、上記、第３乃至第４の実施形態は、ＳＡＴＡ、ＳＡＳのインタフェースからなるＨＤＤ以外に、多様な不揮発性の媒体を適用できるので、不揮発性の半導体メモリモジュールの種類は、必ずしもインタフェースが、ＵＳＢや、ＰＣＩｅであったり、媒体がＵＳＢ不揮発性半導体メモリやＳＤ不揮発性半導体メモリに限定されない。ディスクモジュール１２と等価の機能および性能を有する不揮発性の半導体系のメモリモジュールであればよい。
＜第５の実施形態＞
次に、第２の実施形態の応用例として第５の実施形態を説明する。図３に示す第２の実施形態のホストコントローラ１６の詳細ブロック図に示される各種機能は、既存のホストコントローラ内部に、ハードウェア改造を伴って実現することにより、処理の高速化や、上位のＣＰＵによって動作しているＯＳ（オペレーティングシステム）側に影響を与えないように処理のブラックボックス化を図っている。
【０１１３】
しかし、本第５の実施形態は、より安価に実現するために、ホストコントローラ１６内のハードウェア改造は行わずに、バッファ６１、検索器６２、計測器６３、比較器６４、登録／削除器６５および、設定値の各機能ブロックの全て、もしくは、いずれか一部の機能ブロックを、コンピュータ上のＣＰＵと、ＯＳのホストコントローラドライバソフトウェアとの協働によってソフトウェアを利用して実現する点が異なる。
【０１１４】
このため、以下の説明においては、本第５の実施形態に係る特徴的な部分を中心に説明すると共に、上述した第２乃至第４の実施形態と同様な構成についての重複する説明は省略する。
【０１１５】
これによりハードウェア改造を抑制し、ディスクモジュール１２のディスク媒体をモニタリングしつつ、システム性能の低下を抑制し、かつ、信頼性を維持することができるという他の実施形態と同様の効果を奏することができる上、より安価に実現できるという特有の効果もある。
【０１１６】
なお、上述した各実施形態を例に説明した本発明は、上述したモニタ装置、即ちコンピュータ１１のホストコントローラ１６に対して、その説明において参照したフローチャート（図５乃至図７）の機能を実現可能なコンピュータ・プログラムとして供給した後、そのコンピュータ・プログラムを、ホストコントローラ１６として用意したＣＰＵ（第１の実施形態ではＣＰＵ１３であってもよい）に読出して実行することによって達成される。
【０１１７】
また、当該ＣＰＵ内に供給されたコンピュータ・プログラムは、随時読み書き可能な一時記憶メモリ（例えば第１の実施形態ではメインメモリ１４等）等の不揮発性の記憶デバイスに格納すれば良い。
【０１１８】
また、前記の場合において、当該装置内へのコンピュータ・プログラムの供給方法は、フロッピー（登録商標）ディスクやＣＤ−ＲＯＭ等の各種記録媒体を介して当該装置内にインストールする方法や、インターネット等の通信回線を介して外部よりダウンロードする方法等のように、現在では一般的な手順を採用することができる。
【０１１９】
そして、このような場合において、本発明は、係るコンピュータ・プログラムを構成するコード、或いは係るコードが記録されたところの、コンピュータ読み取り可能な記憶媒体によって構成されると捉えることができる。
【０１２０】
また、上述した機能のうちいくつかの機能をＯＳのホストコントローラドライバソフトウェアによって代行することで、ハードウェアのコストと、ＯＳソフトウェアの負荷とのバランスをとることもできる。例えば、ハードウェアコストの最小化が必須でなければ、ソフトウェアで実行するにはソフトウェアに負荷がかかる計測器６３は、ハードウェアで実現し、それ以外の上記機能は、前記ホストコントローラドライバソフトウェアで実現してもよい。
【０１２１】
即ち、ホストコントローラドライバソフトウェアをコンピュータ１１に読込むことにより、ホストコントローラドライバソフトウェアは、バッファ６１、検索器６２、比較器６４、登録／削除器６５および設定値の機能をソフトウェアで実現する。これにより、ＣＰＵ１３やメインメモリ１４、Ｉ／Ｏコントローラ１５、計測器６３等のハードウェアは、上記読込まれたホストコントローラドライバソフトウェアと協働することで第１乃至第４の実施形態と同等の機能を実現することができると共に、同等の効果を奏することができる。
【０１２２】
しかし、ハードウェアで実現する機能は、計測器６３に限定するわけではなく、ハードウェアのコストと、ＯＳの負荷とのバランスに応じて、ハードウェアで準備する機能と、ホストコントローラドライバソフトウェアのプログラムで実現する機能を適切に分担するようにして、それに対応するソフトウェアプログラムを読込むことで実現できる。
【０１２３】
なお、上述した実施形態及びその変形例の一部又は全部は、以下の付記のようにも記載されうる。しかしながら、上述した実施形態及びその変形例により例示的に説明した本発明は、以下には限らない。即ち、
（付記１）
データの読取りまたは書込みのために、自装置に接続された第１の記憶デバイスの記憶領域にアクセスした際、そのアクセスを開始してから終了するまでの所要時間を計測し、計測した所要時間が所定値を超えると判断した場合、該アクセスした記憶領域を含む所定の記憶領域単位に対応するサイズのデータを、その所定の記憶領域の代わりに、前記第１の記憶デバイスとは異なる第２の記憶デバイスに格納する制御手段を備えることを特徴とする記憶デバイスのモニタ装置。
（付記２）
前記制御手段は、
前記データを、前記所定の記憶領域の代わりに前記第２の記憶部に格納する際に、
前記所要時間が所定値を超えると判断した場合、該アクセスした記憶領域を含む前記第１の記憶部の記憶領域のアドレスを特定して登録する登録手段と、
該アドレスに基いて前記データを検索する検索手段とを含むことを特徴とする付記１に記載の記憶デバイスのモニタ装置。
（付記３）
前記制御手段は、
自装置のアイドル期間に、前記第１の記憶デバイスにアクセスすると共に、アクセスに際して、発生したエラー傾向と、そのアクセスの所要時間とに基いて、そのアクセスした記憶領域を不良箇所と診断する診断手段を含むことを特徴とする付記２に記載の記録デバイスのモニタ装置。
（付記４）
前記診断手段は、
前記第１の記憶デバイスの所定箇所を複数回アクセスする際に、発生した前記エラー傾向としてのエラー数が増加していなければ、前記所要時間に基いて不具合の判断に用いる所定の設定値とすることを特徴とする付記３に記載の記録デバイスのモニタ装置。
（付記５）
前記第１の記憶デバイスは、
前記診断手段として、診断のためのアクセスに、最も時間を要するディスク形状の記憶媒体の最内周における任意セクタのデータをダミーリードすることを特徴とする付記４に記載の記録デバイスのモニタ装置。
（付記６）
前記第１の記憶デバイスは、
前記制御手段が、前記ディスク形状の記憶媒体の記憶領域へアクセスする際に、そのアクセスの所要時間が所定値を超えると判断した場合に、該アクセスした記憶領域を含むセクタ毎のアドレスを特定して、前記ディスク形状の記憶媒体にあって、別の領域にセクタ毎、代替する自身の代替記憶領域を有することを特徴とする付記５に記載の記録デバイスのモニタ装置。
（付記７）
前記第２の記憶デバイスは、
第１の記憶デバイスとは別体であって、自装置に内蔵されるか、もしくは接続されることを特徴とする付記１乃至６の何れかに記載の記憶デバイスのモニタ装置。
（付記８）
前記第２の記憶デバイスは、
不揮発性メモリで構成されることを特徴とする付記１乃至７の何れかに記載の記憶デバイスのモニタ装置。
（付記９）
前記第２の記憶デバイスは、
ディスク識別子、セクタアドレス、及びセクタデータを組みとしたセクタ単位のレコードをデータ構造として有し、
前記制御手段は、前記第２の記憶デバイスに対して、前記レコードを基に、対象とするデータを検索すると共に、登録することを特徴とする付記５乃至８の何れかに記載の記憶デバイスのモニタ装置。
（付記１０）
前記制御手段は、
前記第１の記憶デバイスのデータ読取りに際して、前記検索手段にて、該読取るデータを含むセクタ毎に特定されたアドレスを登録していることを確認したならば、該アドレスに基いて前記第２の記憶デバイスに格納されている該データを読取る一方、前記アドレスを登録していることを確認できなければ、前記セクタ毎に特定されたアドレスに基いて前記第１の記憶デバイスに格納されている該データを読取り、その読取りに際して、所要時間が前記所定値を超えると判断した場合、前記登録手段に、該データを含むセクタ毎のアドレスを特定して、前記第２の記憶デバイスに新規に登録することで、次回以降の読取りにおいて、前記第２の記憶デバイスの該当する箇所を読取ることを特徴とする付記６に記載の記憶デバイスのモニタ装置。
（付記１１）
前記制御手段は、
前記第１の記憶デバイスへのデータ書込みに際して、前記検索手段にて、該書込むデータを含むセクタ毎に特定されたアドレスを登録していることを確認したならば、前記検索手段の前記登録を、前記登録手段で削除し、前記第１の記憶デバイスの記憶領域の該アドレスに該データを書込み、該書込みにおいて、所要時間が前記所定値を超えると判断した場合、自身に有する前記代替記憶領域に書込み、該書込みにおいても、所要時間が前記所定値を超えると判断した場合、前記登録手段で、該データを含むセクタ毎のアドレスを特定して、前記第２の記憶デバイスに登録することで、次回以降の書込みにおいて、前記第２の記憶デバイスの該当する箇所に書込むことを特徴とする付記６に記載の記憶デバイスのモニタ装置。
（付記１２）
前記制御手段は、
前記第１の記憶デバイスへのデータ書込みに際して、前記検索手段にて、該書込むデータを含むセクタ毎に特定されたアドレスを登録していることを確認できなければ、前記第１の記憶デバイスの記憶領域の該アドレスに前記データを書込み、該書込みにおいて、所要時間が前記所定値を超えると判断した場合、自身に有する前記代替記憶領域に書込み、該書込みにおいても、所要時間が前記所定値を超えると判断した場合、前記登録手段で、該データを含むセクタ毎のアドレスを特定して、前記第２の記憶デバイスに新規に登録することで、次回以降の書込みにおいて、前記第２の記憶デバイスの該当する箇所に書込むことを特徴とする付記６に記載の記憶デバイスのモニタ装置。
（付記１３）
記憶デバイスのモニタ装置に接続された第１の記憶デバイスの記憶領域に、データの読取りまたは書込みのためにアクセスした際、そのアクセスを開始してから終了するまでの所要時間を計測し、
計測した所要時間が所定値を超えると判断した場合、該アクセスした記憶領域を含む所定の記憶領域単位に対応するサイズのデータを、その所定の記憶領域の代わりに、前記第１の記憶デバイスとは異なる第２の記憶デバイスに格納する
ことを特徴とする記憶デバイスのモニタ装置の制御方法。
（付記１４）
前記データを、前記所定の記憶領域の代わりに前記第２の記憶部に格納する際に、前記所要時間が所定値を超えると判断した場合、該アクセスした記憶領域を含む前記第１の記憶部の記憶領域のアドレスを特定して登録し、
前記アドレスに基いて前記データを検索する
ことを特徴とする付記１３に記載の記憶デバイスのモニタ装置の制御方法。
（付記１５）
前記モニタ装置のアイドル期間に、前記第１の記憶デバイスにアクセスすると共に、アクセスに際して、発生したエラー傾向とそのアクセスの所要時間とに基いて、そのアクセスした記憶領域を不良箇所と診断する
ことを特徴とする付記１４に記載の記録デバイスのモニタ装置の制御方法。
（付記１６）
前記第１の記憶デバイスの所定箇所を複数回アクセスする際に、発生した前記エラー傾向としてのエラー数が増加していなければ、前記所要時間に基いて不具合の判断に用いる所定の設定値とする
ことを特徴とする付記１５に記載の記録デバイスのモニタ装置の制御方法。
（付記１７）
記憶デバイスのモニタ装置を制御するコンピュータ・プログラムであって、そのコンピュータ・プログラムにより、
データの読取りまたは書込みのために、自装置に接続された第１の記憶デバイスの記憶領域にアクセスした際、そのアクセスを開始してから終了するまでの所要時間を計測し、計測した所要時間が所定値を超えると判断した場合、該アクセスした記憶領域を含む所定の記憶領域単位に対応するサイズのデータを、その所定の記憶領域の代わりに、前記第１の記憶デバイスとは異なる第２の記憶デバイスに格納する制御機能を、コンピュータに実現させる
ことを特徴とするコンピュータ・プログラム。
（付記１８）
記憶デバイスのモニタ装置を制御するコンピュータ・プログラムを格納した記憶媒体であって、そのコンピュータ・プログラムを読み出してコンピュータにおいて実行することにより、
データの読取りまたは書込みのために、自装置に接続された第１の記憶デバイスの記憶領域にアクセスした際、そのアクセスを開始してから終了するまでの所要時間を計測し、計測した所要時間が所定値を超えると判断した場合、該アクセスした記憶領域を含む所定の記憶領域単位に対応するサイズのデータを、その所定の記憶領域の代わりに、前記第１の記憶デバイスとは異なる第２の記憶デバイスに格納する制御機能を実現させる
ことを特徴とする、コンピュータ読み取り可能な記憶媒体。
【産業上の利用可能性】
【０１２４】
本発明は、上述した各実施形態には限定されず、サーバの他、ワークステーション、パーソナルコンピュータ、複写機、複合機等の記憶デバイスを搭載する各種の情報記録処理システムに適用可能である。
【符号の説明】
【０１２５】
１    制御部
２    第１の記憶部
３    第２の記憶部
１１    コンピュータ
１２    ディスクモジュール
１３    ＣＰＵ
１４    メインメモリ
１５    Ｉ／Ｏコントローラ
１６    ホストコントローラ
１７    代替セクタテーブル
１８    ディスクコントローラ
１９    ディスク媒体
６１    バッファ
６２    検索器
６３    計測器
６４    比較器
６５    登録／削除器
７１    ディスク識別子
７２    セクタアドレス
７３    セクタデータ
１１２    不揮発性半導体メモリモジュール
１１８    不揮発性半導体メモリコントローラ
１１９    不揮発性半導体メモリ
２１２    不揮発性半導体メモリモジュール（ＵＳＢメモリモジュール）
２１８    メモリコントローラ（ＵＳＢストレージデバイスコントローラ）
２１９    不揮発性半導体メモリ（ＵＳＢ不揮発性半導体メモリ）
３１２    不揮発性半導体メモリモジュール（ＳＤメモリモジュール）
３１８    メモリコントローラ（ＳＤメモリメディアコントローラ）
３１９    不揮発性半導体メモリ（ＳＤ不揮発性半導体メモリ）
【図１】
2013073641.tif 000003
【図２】
2013073641.tif 000004
【図３】
2013073641.tif 000005
【図４】
2013073641.tif 000006
【図５】
2013073641.tif 000007
【図６】
2013073641.tif 000008
【図７】
2013073641.tif 000009
【図８】
2013073641.tif 000010
【図９】
2013073641.tif 000011