説明

記憶デバイスのモニタ装置及びその制御方法、並びにコンピュータ・プログラム

【課題】
サーバなどの情報処理システムの記憶デバイスの記憶媒体をモニタリングしつつ、システム性能低下を抑制し、信頼性を維持する記憶デバイスのモニタ装置等を提供する。
【解決手段】
本記憶デバイスのモニタ装置は、データの読取りまたは書込みのために、第1の記憶デバイスの記憶領域にアクセスした際、そのアクセスを開始してから終了するまでの所要時間を計測し、計測した所要時間が所定値を超えると判断した場合、該アクセスした記憶領域を含む所定の記憶領域単位に対応するサイズのデータを、その所定の記憶領域の代わりに前記第1の記憶デバイスとは異なる、第2の記憶デバイスに格納する制御手段を備えることを特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、例えばハードディスクドライブ等の記憶媒体をモニタリングする技術分野に関する。
【背景技術】
【0002】
近年、サーバなどの情報処理システムで取り扱う業務データ、メール、映像や音声等の情報量が急速に増大している。このため、係る情報処理システムが有する記憶デバイスへのデータの読取りや、書込み(以下、アクセスと称する)の頻度および、記憶する情報量が増加している。一般に、これらの情報処理システムでは、記憶デバイスとして、大容量で、ビット単価が安価なハードディスクドライブ(以下、「HDD」と称する)が使用される。
【0003】
サーバなどで使用される大容量HDDのインタフェースとして、大別すると、IDE(Integrated Drive Electronics)系のシリアル ATA (Serial Advanced Technology Attachment;以下、「SATA」と称する)と、SCSI(Small Computer System Interface)系のシリアル アタッチド SCSI(Serial Attached SCSI;以下、「SAS」と称する)の2つがある。とりわけ、SATA HDDは、記録密度の向上や、それに伴う大容量化が進み、かつコストが比較的に安価であることから、PC(Personal Computer)だけでなく、サーバなどの情報処理システムへの使用が広がっている。これらのHDDは、情報処理システムを構成する部品の中でも振動や衝撃に弱いので、障害や故障の多いモジュールである。一方で、HDDは、業務データなど、重要なデータを取り扱うため、高い信頼性と耐故障性が求められる。
【0004】
特に、上述したHDDは、精密なディスク回転機構、磁気ヘッド収出機構等を有し、これらの機構により、高速回転するディスク媒体に磁気ヘッドを近接することで、読取りや、書込みを行っている。このため、係るHDDは、例えば、長期使用による経年変化などにより、正常なアクセスを阻害する以下の様な問題が発生するおそれがある。
【0005】
まず、この様なHDDに搭載されるディスク媒体は、回転、停止する度に、磁気ヘッドが浮上、降下を繰り返す。磁気ヘッドは、特に振動や衝撃を受けた際に、ディスク媒体の表面に接触する可能性があり、その際に、ディスク媒体の表面に発生する物理的な摩擦が、その後の読取りや、書込みに影響を及ぼす可能性がある。
【0006】
また、HDDは、特に振動や衝撃を受けた際に、ディスク媒体を高速回転させるスピンドルモータの軸が、偏芯を起こす可能性があり、ディスク媒体と、磁気ヘッドとの相対距離が僅かに変化する場合がある。
【0007】
さらに、この他の潜在的な要因として、HDD製造の際のディスク媒体の状況の違いや、あるいは、スピンドルモータや磁気ヘッド等のHDD内部を制御するファームウェア(Firm Ware;以下、「FW」と称する)は、HDDのベンダや、種類、あるいはバージョンの違いによって、標準化された仕様の中でも解釈の違いにより、制御方針が僅かに異なることに起因して、挙動が様々となる場合があるため、統一的なアクセスに影響を及ぼす可能性がある。
【0008】
前記の問題が発生する可能性に対して、一般に、HDDは、アクセスでエラーが発生した場合、エラー訂正機能や、読取りもしくは、書込みを繰り返すリトライ機能を備えている。さらに、ディスク媒体において、不良が発生した箇所を含む記憶単位であるセクタ毎、HDD内の別領域に具備される代替のためのセクタ(以下、「代替セクタ」と称する)に、対象となるデータをそっくり移すことにより、HDDを正常な状態に戻す働きをする代替セクタ機能を備えている。
【0009】
しかしながら、リトライ機能により、一時的に救済されるケースでは、代替セクタ機能が働いていないので、次回以降のアクセスで再びエラーが発生することにより、HDDは、リトライを実行したり、繰り返したりする可能性が大きく、それによる入出力のレスポンスが低下する状態が続くことがある(いわゆるシステムスローダウン障害)。その結果、情報処理システム全体の性能は、大幅に低下する可能性がある。
【0010】
また、HDDのベンダ、種類、FWの違いにより、リトライや代替セクタ機能などのエラーリカバリの挙動や、媒体の劣化に伴うHDDの寿命等の判断も違ってくるため統一的に扱い難く、情報処理システム全体の運用、保守の手間が増えてしまう。
【0011】
よって、リトライが多発するようなケースでは、むしろ代替セクタ機能により、不良が発生した箇所を含むデータを代替セクタに移し、入出力のレスポンスを正常に戻す必要がある。しかしながら、HDDのディスク媒体の不良箇所の判定を含む代替セクタ機能の制御方針自身は、HDDベンダや、HDDの種類、あるいはFWに大きく依存するため、HDD内の代替セクタ機能の利用を促進することは難しい。従って、情報処理システムの例えば、上位の代替セクタ機能の利用を促進することによって、障害を解消することが、高性能、高信頼、高可用な情報処理システムを構築する上での課題である。なお、本課題は、SATA HDD固有の課題ではなく、SAS HDDを含め、他の汎用仕様のHDDでも、同様である。
【0012】
ここで、特許文献1に記載の技術は、HDDのディスク媒体へ、正しくアクセスしたか否かの判定を、アクセスのリトライ回数で判断する技術を開示する。しかしながら、HDDベンダや、HDDの機種、FWのバージョン、アクセスの不良が発生するディスク媒体の外周や内周等の領域の違い、その他の複合要因(以下、「ディスク特性」と称する)によっては、リトライ動作に時間がかかることがあるので、リトライ回数では判断し難い場合がある。また、本特許文献1では、所定の回数、リトライ動作をしてもアクセスできない場合は、所定の回数を超えて、更にリトライする。よって、本特許文献1による技術においては、装置システムの上位から見ると、ディスク特性の違いにより記憶デバイスの応答性能にバラつきがあるため、一定の装置システム性能を保障し難いという課題がある。また、HDDの採用ベンダのマルチベンダ化が進む中で、ディスク特性が異なると、エラーリカバリの挙動や、HDDの寿命等の判断は様々となるので、その結果、情報処理システム全体の運用・保守の手間が増えてしまうという課題もある。
【0013】
また、特許文献2に記載の技術は、AV(Audio Visual)用データのリアルタイム処理を行うHDDの内部処理で、HDDのディスク媒体へ、正しくアクセスしたか否かの判断のために、まず、リアルタイム処理可能なコマンド処理時間を基に、エラー回復許容時間を算出している。次に、特許文献2では、それを基に、アクセスでエラーが発生した際に、発生箇所のアクセスのリトライを繰り返し、許容時間内に正しくアクセス出来なければその箇所を劣化疑いとする。その後、別途、アイドル時間帯にエラー発生箇所を検証する。それでもなお所定時間内に正しくアクセス出来ない場合に、HDD内のディスク媒体の別領域で代替することを開示する。
【0014】
しかしながら、上記特許文献2に記載されたAV用データのアクセスのリトライ動作には、以下のような課題がある。即ち、アクセスは、繰り返しなされることで、媒体の劣化が進行する。その結果、同一HDD内のディスク媒体による代替では、さらに媒体の劣化が進行する可能性があり、これにより、代替領域が満杯になってしまう。代替領域が満杯になると、以降のディスクデータを損失してしまい、信頼性が低下してしまうという課題がある。
【0015】
なお、特許文献3は、通信機器の接続方式を決定する技術を開示する。即ち、基地局装置の制御部は、インターネットに接続するために、複数の接続方式のうち、選択された接続方式に対応するサーバに対して、接続要求を発行し、サーバからの応答を待つ。
【0016】
その制御部は、接続確立に際して、接続要求を発してからその接続要求に対するサーバからの応答を受けるまでの時間であるターンアラウンドタイム(Turn Around Time;以下、「TAT」と称する)を記憶している。制御部は、その記憶されたTATに基づいて設定された時間を超過しても応答が返ってこない場合に、接続要求に対する応答が無いと判断し、次の接続方式に切替えて接続を試行することを開示する。
【先行技術文献】
【特許文献】
【0017】
【特許文献1】特開2008−243265号公報
【特許文献2】特開2003−257130号公報
【特許文献3】WO2009/001444号公報
【発明の概要】
【発明が解決しようとする課題】
【0018】
上述した関連技術は、HDDのディスク特性によっては、リトライ動作に時間がかかることがあるので、応答性能にバラつきが出ることにより、一定の装置システム性能を保障し難いという課題がある。また、HDD内の同一ディスク媒体に設けた代替領域による機能の代替では、長期間の使用により経年変化した同一ディスク媒体を使用するため、リトライの多発につながる可能性がある。これにより代替領域が満杯になってしまい、その結果、HDDは、その寿命を短くしてしまうと共に、以降のディスクデータを損失することにより、信頼性が低下してしまうという課題がある。さらに、これらに対応するための、情報処理システムとしての運用・保守に手間がかかるという課題もある。
【0019】
本発明の目的は、上述した課題を解決し、サーバなどの情報処理システムの記憶デバイスの記憶媒体をモニタリングしつつ、システム性能低下を抑制し、信頼性を維持する記憶デバイスのモニタ装置などを提供することにある。
【課題を解決するための手段】
【0020】
本発明は、上述した課題の解消を目的としてなされた。即ち、本発明に係る記憶デバイスのモニタ装置は、データの読取りまたは書込みのために、自装置に接続された第1の記憶デバイスの記憶領域にアクセスした際、そのアクセスを開始してから終了するまでの所要時間を計測し、計測した所要時間が所定値を超えると判断した場合、該アクセスした記憶領域を含む所定の記憶領域単位に対応するサイズのデータを、その所定の記憶領域の代わりに前記第1の記憶デバイスとは異なる、第2の記憶デバイスに格納する制御手段を備える。
【0021】
また、同目的を達成する他の見地として、記憶デバイスのモニタ装置の制御方法は、記憶デバイスのモニタ装置に接続された第1の記憶デバイスの記憶領域に、データの読取りまたは書込みのためにアクセスした際、そのアクセスを開始してから終了するまでの所要時間を計測し、
計測した所要時間が所定値を超えると判断した場合、該アクセスした記憶領域を含む所定の記憶領域単位に対応するサイズのデータを、その所定の記憶領域の代わりに、前記第1の記憶デバイスとは異なる第2の記憶デバイスに格納する。
【0022】
尚、同目的は、上記の各構成を有する記憶デバイスのモニタ装置またはその制御方法を、コンピュータによって実現するコンピュータ・プログラム、及びそのコンピュータ・プログラムが格納されている、コンピュータ読み取り可能な記憶媒体によっても達成される。
【発明の効果】
【0023】
本発明によれば、サーバなどの情報処理システムの記憶デバイスの記憶媒体をモニタリングしつつ、システム性能の低下を抑制し、かつ、信頼性を維持することができる。
【図面の簡単な説明】
【0024】
【図1】本発明の第1の実施形態に係る記憶デバイスのモニタ装置を示すブロック図である。
【図2】本発明の第2の実施形態に係る記憶デバイスのモニタ装置を示すブロック図である。
【図3】本発明の第2の実施形態のホストコントローラ16の詳細を示すブロック図である。
【図4】本発明の第2の実施形態の代替セクターテーブルの内容を示す図である。
【図5】本発明の第2の実施形態の読出しシーケンスを示すフローチャートである。
【図6】本発明の第2の実施形態の書込みシーケンスを示すフローチャートである。
【図7】本発明の第2の実施形態のTATの設定値を決定するシーケンスを示すフローチャートである。
【図8】本発明の第3の実施形態に係る記憶デバイスのモニタ装置を示すブロック図である。
【図9】本発明の第4の実施形態に係る記憶デバイスのモニタ装置を示すブロック図である。
【発明を実施するための形態】
【0025】
以下、本発明を実施する形態について図面を参照して詳細に説明する。
<第1の実施形態>
まず、本発明の第1の実施形態について説明する。図1は、本発明の第1の実施形態に係る記憶デバイスのモニタ装置の構成を示すブロック図である。本モニタ装置は、本モニタ装置を制御する制御部1、第1の記憶部2、および第2の記憶部3を有する。
【0026】
より具体的に、制御部1は、データの読取りまたは書込みのために、制御部1に接続する第1の記憶部2の記憶領域にアクセスする。その際、制御部1は、そのアクセスを開始してから終了するまでの所要時間を計測する。そして、制御部1は、計測した所要時間が所定値を超えると判断した場合、そのアクセスした第1の記憶部2の記憶領域を含む所定の記憶領域単位に対応するサイズのデータを、その所定の記憶領域の代わりに、第1の記憶部2とは異なる、制御部1に接続する第2の記憶部3に格納する。
【0027】
即ち、制御部1は、第1の記憶部2の記憶媒体へのアクセス所要時間をモニタリングすることにより、所要時間を超えて不良と判断する箇所を含む記憶領域単位のデータを、第2の記憶部3にそっくり移すことにより代替する。これにより、本実施形態に係るモニタ装置によれば、所定のアクセス時間を超えることに伴うシステム性能の低下を抑制し、かつ、不良と判断された箇所を別領域で代替することで、信頼性を維持するという効果を奏することができる。
【0028】
なお、第1の記憶部2、第2の記憶部3は、各々制御部1の外部もしくは、内部の何れかに接続しても、上述した同様の効果を奏することができる。また、図1に示す第1の実施形態では、説明の便宜上から、第1の記憶部2は自装置の外部に、第2の記憶部3は自装置に内蔵する構成としているが、必ずしも本構成に限定されない。
<第2の実施形態>
次に、第1の実施形態を基本とする本発明の第2の実施形態について図面を参照して詳細に説明する。本第2の実施形態では、動作をモニタリングするモニタ対象としてHDDを例に説明する。図2は、第2の実施形態に係るHDDのモニタ装置を示すブロック図である。図3は、図2に示すホストコントローラ16の詳細を示すブロック図である。
【0029】
まず、図2を参照すると、本発明の第2の実施形態におけるコンピュータ11は、CPU(Central Processing Unit)13、メインメモリ14、I/O(Input/Output:入出力)コントローラ15、ホストコントローラ16等、一般的なコンピュータ内部の構成を実装していることに加えて、ホストコントローラ16は、代替セクタテーブル17を制御する。
【0030】
ここで、CPU13は、コンピュータ11の全体をプログラムと協働して制御する中央演算ユニットである。メインメモリ14は、プログラムやデータの一部を、CPU13やプログラムの指示に基づいて一時的に保管する一時記憶デバイスである。I/Oコントローラ16は、コンピュータ11と周辺デバイスとの間で、情報の入出力を制御する入出力制御部である。さらに、ホストコントローラ16は、記憶デバイス等の周辺デバイスと、I/Oコントローラ15との間にあって、直接周辺デバイスを制御する周辺制御部である。
【0031】
また、ディスクモジュール12は、ディスクコントローラ18および、ディスク媒体19を実装し、主記憶装置となる一般的なディスクモジュール構成であり、即ち、HDDである。なお、説明の便宜上、代替セクタテーブル17は、ホストコントローラ16の外部に設けているが、ホストコントローラ16の内部に設けてもよい。
【0032】
コンピュータ11において、中央演算ユニットであるCPU13は、ディスクモジュール12に格納されているデータを読出す場合、I/Oコントローラ15、およびホストコントローラ16の動作を制御することにより、ディスクモジュール12内のディスクコントローラ18にアクセスする。ディスクコントローラ18は、磁気ヘッド(不図示、以下同様)を動かすことにより、ディスク媒体19から、セクタ単位でデータを読出し、読出したデータをホストコントローラ16へ渡す。I/Oコントローラ15は、ホストコントローラ16からデータを受け取り、メインメモリ14にデータを格納するのが正常動作時のディスクデータの読出しの流れである。
【0033】
ここで、ホストコントローラ16は、ディスクモジュール12への読出し要求を発行してから、結果データを入手するまでのTATを計測する。そしてホストコントローラ16は、読出しに長い時間を要したと判断した場合は、代替セクタテーブル17に対して、読出しに時間を要したディスクモジュール12のセクタアドレス情報と、それらのアドレスに格納されているセクタデータを代替セクタテーブル17に登録する。
【0034】
これにより、ホストコントローラ16は、次回以降の同じアドレスに対する読出しアクセスが発生した場合は、後述する図3に示す、検索器62を用いて、代替セクタテーブル17のセクタアドレス情報を検索してアドレスに対応するデータを見つけ出し、ディスクモジュール12にアクセスすることなく、データの読出しを行うことができる。
【0035】
次にデータをディスクモジュール12に書込む場合は、CPU13は、I/Oコントローラ15の動作を制御することにより、メインメモリ14から書込みデータを読出し、読出したデータをホストコントローラ16に送る。ここでホストコントローラ16は、代替セクタテーブル17を検索し、書込み先のディスクアドレスが登録されていることを検知した場合、代替セクタテーブル17から当該アドレスのレコードを削除する。
【0036】
削除したら、ホストコントローラ16は、ディスクモジュール12のディスクコントローラ18にアクセスして、磁気ヘッドによって、ディスク媒体19にデータの書込みを試みる。書込みが正常に終了すれば、ホストコントローラ16は正常終了を要求元のCPU13に通知する。
【0037】
ここで、書込みが正常に行われたか否かの確認は、例えば、書込みに許容される時間内で、読取りを行い、書込み内容と照合することによるベリファイ動作によって確認してもよい。
【0038】
また、ホストコントローラ16は、ディスクコントローラ18の機能を制御して、書込みに失敗した場合、ディスクモジュール12自身の機能として持っている不図示の代替セクタ機能によって、ディスク媒体19の別領域に設ける代替セクタへの書込みを行う。その場合でも、ディスクコントローラ18は、ホストコントローラ16に、正常終了を通知する。
【0039】
しかしながら、ディスクモジュール12自身の当該代替セクタ機能では、例えば、使用による経年変化などに起因して生じる代替動作の多発により、予め用意された代替セクタの領域から溢れてしまうような場合や、ディスクコントローラ18自身の故障等の不具合によって代替機能が動作不能に陥ってしまっている場合がある。この様な場合には、ホストコントローラ16は、ディスクコントローラ18の機能を制御して、ホストコントローラ16自身へ、エラーを通知する。
【0040】
ホストコントローラ16は、このエラーを受けて、代替セクタテーブル17に、アドレスと書込みデータを登録する。これにより、ホストコントローラ16は、書込み要求の失敗を回避し、次回以降の同じアドレスに対する読出し要求は、代替セクタテーブル17を検索することにより、当該のデータを読出すことが可能となる。
【0041】
なお、ディスクモジュール12が保持していないデータを代替セクタテーブル17で保持しているというHDDのモニタ装置としての警告レベルの状態であることに対しては、できるだけ早く、データのバックアップを実施し、ディスクの交換を促すための管理者やユーザへの通知を、コンピュータ11がOS、ソフトを通して行うようにすればよい。
【0042】
ここで、一般に、ホストコントローラ、およびディスクコントローラは、HDDへのデータ書込みの際に、原理的には磁気ヘッドでディスク媒体に正しく書込むためと、書込み速度を早くするために、書込んだ直後に、正しく書込まれたか否かまでは、遂次読出して確認しない場合が多い。しかし、実施の形態では、書込んだ直後に読出して確認するベリファイ動作は、システム性能を確保できる範囲で行ってもよい。また同様に書込みの際に、ホストコントローラは、時間計測をしない場合が多いが、読出しと同様に、上位からの書込み指示の開始から完了までのTATを測定し、その計測値と設定値と比較して、正しく書込まれたか否かを確認してもよい。この場合、読出しと書込みで、設定値を切り替えるようにすればよい。
【0043】
次に、ホストコントローラ16の詳細な構成について図3を用いて説明する。ホストコントローラ16は、ディスクモジュール12へアクセスするための一般的な動作機能であるバッファ61や不図示の制御機能に加えて、ディスクモジュール12のディスク媒体へのアクセス時間を計時する計測器63、代替セクタテーブル17の検索、登録/削除を行うための検索器62、および登録/削除器65を持っている。さらに、計測器63の計測時間と設定値を比較する比較器64を有している。
【0044】
次に、読取り動作について説明する。ホストコントローラ16は、I/Oコントローラ15、ディスクモジュール12や、代替セクタテーブル17からの要求やデータを、内部のバッファ61に一旦格納する。具体的には、CPU13から、I/Oコントローラ15およびホストコントローラ16の動作を制御することにより、ホストコントローラ16は、ディスクデータの読出しの要求を入手する。それに伴い、ホストコントローラ16は、バッファ61に要求情報を格納し、検索器62に対して、読出し先のアドレスが、代替セクタテーブル17に登録されているかを検索する。ホストコントローラ16は、検索の結果、アドレスが登録されていて、対応するデータが見つかったら、バッファ61にデータを格納し、ディスクモジュール12にアクセスすることなく、I/Oコントローラ15にデータを渡す。
【0045】
代替セクタテーブル17にデータが見つからなかった場合、ホストコントローラ16は、計測器63に対して、時間の計測開始を指示して、ディスクモジュール12へ読出し要求を行う。ホストコントローラ16は、ディスクモジュール12からデータを入手したら、再び計測器63に対して、今度は時間の計測終了を指示する。これにより、ホストコントローラ16は、計測器63で、ディスクモジュール12へ要求を出してからデータを入手するまでのTATを計算する。
【0046】
ここで、TATは値が小さい程、応答性能が速いことを意味する。ホストコントローラ16は、比較器64において、計算されたTATと、あらかじめ決められた設定値と比較を行い、その設定値より、超えている場合、つまり応答性能が遅いと判定すると、登録/削除器65によって、バッファ61に格納されているデータを、代替セクタテーブル17に登録する。ホストコントローラ16は、登録完了後、I/Oコントローラ15にデータを渡す。
【0047】
次に、書込み動作について説明する。CPU13は、メインメモリ14から書込みデータを読出し、I/Oコントローラ15の動作を制御することにより、ホストコントローラ16のバッファ61に書き込みデータを格納後、検索器62に対して、代替セクタテーブル17の検索を指示し、書込み先のアドレスの登録の有無を確認する。登録されていれば、登録/削除器65から、当該アドレスのセクタデータの削除を行う。その他に、ディスクモジュール12での書込み処理が失敗し、エラーが通知されてきた場合は、登録/削除器65は、代替セクタテーブル17に、データの登録を行う。
【0048】
次に、代替セクタテーブル17の詳細な構成について説明する。図4は、本発明の第2の実施形態の代替セクターテーブルの内容を説明する図である。図4において、代替セクタテーブル17の内部は、ディスク識別子71、セクタアドレス72とセクタデータ73の3つの列のテーブル構成となっている。ディスク識別子71は、ホストコントローラ16が複数のディスクモジュールを管理する場合にディスクを識別するために使用し、例として、ディスクのシリアル番号を利用すればよい。セクタアドレス72は、ディスクのセクタへアクセスする際のアドレスとなる。また、セクタデータ73は、ディスクのセクタのデータを格納する。これらが、紐付けられたデータ構造となっている。これらの3つのデータの集合をレコードとして定義し、レコード単位で、検索、登録/削除が行われる。
【0049】
なお、本第2の実施形態では、ディスクモジュールは説明の都合上、1つのディスクモジュールで説明しているが、必ずしも1つに限るものではない。
【0050】
また、一般に、ディスクの1セクタのサイズは512バイトであるので、本テーブルのセクタデータ73のサイズも512バイトとする。しかし、実施形態として、システム性能が低下しない範囲で、同サイズには限らない。なお、代替セクタテーブル17は、コンピュータ11への電源供給が途絶えて、コンピュータの動作が停止した場合でも、テーブルデータを保持可能とするため、例えば、不揮発性の半導体メモリに実装することが好ましい。
【0051】
また、ディスクモジュール12は、ホストコントローラ16との間のインタフェースで、交換が可能であり、読取りや書込みの頻度が増え、ディスク媒体19の劣化が進み、エラー箇所が増えると、新品に交換することができる。
【0052】
また、実施形態の応用として、例えば、ディスクモジュール12のディスク媒体19の部分のみをいわゆるリムーバルメディアとして、新品に交換できるようにしてもよい。
【0053】
さらに、ホストコントローラ16は、ディスクモジュール12が交換され、切り替わったことをディスク識別子により検知した場合は、代替セクタテーブル17から、交換前のディスクモジュール12に関する登録データを自動的にすべて削除することとする。
【0054】
ここで、TATの設定について説明する。ホストコントローラ16は、アイドル期間に、ディスクモジュール12に内蔵の、HDDに一般に具備されている、不図示の自己診断機能であるSelf−Monitoring Analysis and Reporting Technology(以下、「SMART」と称する)機能で、シークエラー発生数を確認しておく。
【0055】
次に、ホストコントローラ16は、同じくアイドル期間にディスクモジュール12のディスク媒体19において、ディスク媒体の内周と外周の周速度の違いに起因して生じるアクセスに最も時間がかかる最内周での、任意のデータアクセスの状況を診断するために、テスト読出し要求を発行し、最内周の任意のセクタデータを読出す。
【0056】
ここで、読出す最内周の任意のセクタデータは、テスト目的のためであるので、セクタデータを正しく読取ることができれば、後は読捨てても構わない(いわゆる、ダミーリード)。それに伴い、ホストコントローラ16は、計測器63を用いて読取りの所要時間を計測する。さらに、ホストコントローラ16は、同じくアイドル期間に、2回目のSMART機能のシークエラー発生数を確認することで、シークエラー発生数がテスト読出し実行前より増加したか否かを調べる。
【0057】
ホストコントローラ16は、シークエラー発生数が増加してなければ、計測器63で計測した、セクタデータを正しく読取ることができた際の時間を基にTATの設定値として、比較器64の設定値に設定する。ここで、TATの設定値には、最内周の任意のセクタデータ読取りの所要時間値に適当なマージン時間を加えた値を設定値として設定すればよい。
【0058】
また、ホストコントローラ16は、シークエラー発生数が増加していれば、TATの設定値の設定エラーを入手する。
【0059】
以上により、ホストコントローラ16は、アイドル期間におけるテスト読出し動作によって、発生したエラー傾向としてのエラー数(エラー発生数)と、そのアクセスの所要時間とに基いて、そのアクセスしたディスク媒体の劣化傾向を診断することができる。
【0060】
次に、上述した構成を備えるHDDのモニタ装置の動作について図5から図7のフローチャートを参照してさらに詳細に説明する。ここで、図5は本発明の第1の実施形態の読出しシーケンスを示すフローチャートである。図6は、本発明の第1の実施形態の書込みシーケンスを示すフローチャートである。図7は、本発明の第1の実施形態のTATの設定値を決定するシーケンスを示すフローチャートである。
【0061】
まず、データ読出しシーケンスについて、図5のフローチャートを参照して説明する。CPU13は、ディスクモジュール12に格納されているデータを読出すために、I/Oコントローラ15およびホストコントローラ16の動作を制御して、ホストコントローラ16に読出し要求を行う(ステップS1)。ホストコントローラ16は、読出し要求を、ホストコントローラ16内のバッファ61に格納する(ステップS2)。
【0062】
その後、ホストコントローラ16は、検索器62に対して、代替セクタテーブル17の検索を指示し(ステップS3)、読出し先と同じアドレスのレコード情報が登録されていないかを確認する(ステップS4)。ホストコントローラ16は、もし登録を確認したならば(ステップS4にて「YES」)、代替セクタテーブル17に登録していたセクタデータ73をバッファ61に格納し(ステップS5)、要求元であるCPU13に、そのデータを返し(ステップS6)、メインメモリ14にデータが格納される。この場合、ディスクモジュール12へのアクセスが発生することなく、データの読出しを行う。
【0063】
次に、ホストコントローラ16は、ステップS4において、レコード情報の登録が確認できない場合は(ステップS4にて「NO」)、計測器63に対して、時間の計測開始を指示(ステップS7)する。それと共に、ホストコントローラ16は、ディスクモジュール12にアクセスする(ステップS8)。
【0064】
それにより、ディスクコントローラ18は、磁気ヘッドで、ディスク媒体19からデータの読出しを開始する。ホストコントローラ16は、ディスクコントローラ18の動作を制御して、読出しに成功したかどうかの判定(ステップS9)において、読出しに成功すれば(ステップS9にて「YES」)、データをホストコントローラ16のバッファ61に格納する(ステップS10)。
【0065】
また、ホストコントローラ16は、ディスクコントローラ18の動作を制御して、ステップS9において、読出しに成功しなかった場合は(ステップS9にて「NO」)、再度読出しを試みるためにリトライ動作を行う。ホストコントローラ16は、そのリトライ時間のチェック(ステップS12)において、後述するあらかじめ設定している設定値を超過してしまった場合は(ステップS12にて「YES」)、リトライ動作を停止し、データの読出しが失敗したことで、エラーを入手すると共に、読出しの要求元であるCPU13にエラーを連絡する(ステップS13)。
【0066】
ホストコントローラ16は、設定値内でのリトライ動作(ステップS12にて「NO」、ステップS9にて「YES」)により、読出しに成功すれば、リトライ無しのときと同様にデータをバッファ61に格納する(ステップS10)。ホストコントローラ16は、再び、計測器63にアクセスして、時間の計測終了を指示して(ステップS11)、ディスクモジュール12に読出し指示を出してから、結果が返ってくるまでの読み出し時間、つまりTATを計算する。ホストコントローラ16は、次に、比較器64において、計算されたTATと、あらかじめ設定している読出し所要時間の設定値との比較を行う(ステップS14)。
【0067】
ここで、TATの長短については、前述のステップS9において、エラーが発生することなく読出しに成功した場合は(ステップS9にて「YES」)、このTATは短くなるが、エラー発生によるリトライが多発して最終的に読出しに成功したような場合(ステップS9にて「NO」、ステップS12にて「NO」)には、TATが長くなる。
【0068】
ホストコントローラ16は、TATが長く、設定値との比較でTATが超過し、ディスクの応答性能が遅いと判断すると、登録/削除器65によって、代替セクタテーブル17に、ディスク識別子71、セクタアドレス72、セクタデータ73の集合をレコードとして、登録し(ステップS15)、要求元であるCPU13にデータを返す(ステップS6)。
【0069】
なお、それ以降の、同アドレスへのアクセスでは、ホストコントローラ16は、代替セクタテーブル17からのデータ読み出しを行うようになるため(ステップS4からステップS5への分岐)、読出し時間、つまりTATの短縮化を図ることができる。
【0070】
次に、もう一つの動作例であるディスクへのデータ書込みシーケンスについて、図6に示すフローチャートを参照して説明する。
【0071】
CPU13は、ディスクモジュール12に対して、データを書込むために、メインメモリ14から、データを読出し、I/Oコントローラ15の動作を制御して、ホストコントローラ16に書込み要求を行う(ステップS21)。ホストコントローラ16は、書込みデータを、ホストコントローラ内のバッファ61に格納する(ステップS22)。
【0072】
その後、ホストコントローラ16は、検索器62に対して、代替セクタテーブル17の検索を指示し(ステップS23)、書込み先と同じアドレスのレコード情報が登録されていないかを確認する(ステップS24)。ホストコントローラ16は、もし登録を確認(ステップS24にて「YES」)したならば、登録/削除器65で、代替セクタテーブル17から、当該レコード情報の削除を行う(ステップS25)。
【0073】
また、ホストコントローラ16は、もしレコード情報の登録を確認できなければ(ステップS24にて「NO」)、ディスクモジュール12に対して、データの書込み要求のためにアクセスする(ステップS26)。
【0074】
ここで、ホストコントローラ16は、ステップ25において、レコード情報の更新ではなく、削除を行う理由は、ディスクモジュール12で、ディスク媒体19に対する書込みエラーが発生した場合に、ディスク媒体19の劣化が進行してないシステム稼動初期において、ほとんどのケースで、ディスクモジュール12内のディスク媒体19の別領域にある代替セクタ機能が正常に動作することにより、正常復旧することを想定しているからである。
【0075】
続いて、ホストコントローラ16は、代替セクタテーブル17のチェックが完了後(ステップS24)、ディスクモジュール12に対して、データの書込み要求のためにアクセスする(ステップS26)。ディスクコントローラ18は、磁気ヘッドによって、ディスク媒体19にデータの書き込みを開始する。ホストコントローラ16は、書き込みに成功したかどうかの判定(ステップS27)において、書き込みに成功すれば(ステップS27にて「YES」)、要求元であるCPU13に書き込みの正常完了を通知する(ステップS28)。
【0076】
ところで、ステップS27において、ホストコントローラ16は、ディスクコントローラ18の機能を制御して、書込みに失敗した場合は(ステップS27にて「NO」)、ディスクコントローラ18自身のFW機能により、ディスク媒体19の別領域による代替セクタ機能を実行する(ステップS29)。ホストコントローラ16は、ディスクコントローラ18の機能を制御して、ディスクモジュール12の代替セクタ領域への書込みが成功すれば(ステップS30にて「YES」)、要求元であるCPU13に書込みの正常完了を通知する(ステップS28)。
【0077】
ホストコントローラ16は、ディスクコントローラ18の機能を制御してディスクモジュール12で書込みエラー状態を復旧させることができないため、下記の2つのケースにおいてホストコントローラ16自身へエラーを返す(ステップS31)。
【0078】
1つ目は、ステップS29において、ホストコントローラ16は、代替セクタ機能が、代替多発による登録数の超過により溢れたり、ディスクコントローラ18の故障等による不具合によって代替セクタ機能が動作不能に陥ってしまっている場合(ステップS29にて「NO」)である。
【0079】
2つ目は、ホストコントローラ16は、ディスクコントローラ18の機能を制御して、ステップS30において、ディスクモジュール12の代替セクタ領域への書込みさえも失敗してしまうような場合(ステップS30にて「NO」)である。
【0080】
ホストコントローラ16は、エラーを受け、登録/削除器65に対して、代替セクタテーブル17へ、書込みデータを登録する(ステップS32)。そして、書込み要求元であるCPU13に対して、ディスクモジュール12への書込みが失敗したが、代替セクタテーブル17に対する書込みは完了したことを通知する(ステップS33)。
【0081】
この通知により、ユーザに対して、すべてのデータがディスクモジュール12には存在せず、代替セクタテーブル17によって、データ損失を回避できていることを認識させることにより、データを速やかに退避(バックアップ)させ、ディスク交換を促すことができる。
【0082】
次に、本発明の第2の実施形態に係るTATの設定値決定について、図7のフローチャートを参照してさらに詳細に説明する。ホストコントローラ16は、アイドル期間に、ディスクコントローラ18の動作を制御し、SMART機能のシークエラー発生数を確認する(ステップ41)。
【0083】
ホストコントローラ16は、同じくアイドル期間に、ディスクモジュール12のディスク媒体19で、ディスク媒体の内周と外周の周速度の違いに起因して生じる、アクセスに最も時間がかかる最内周の任意のデータアクセスの状況を診断するために、ディスクコントローラ18へ、テスト読出し要求を発行する(ステップ42)。
【0084】
さらに、ホストコントローラ16は、当該テスト読出し要求をバッファ61へ格納(ステップ43)するとともに、計測器63で所要時間の計測を開始する(ステップ44)。ホストコントローラ16は、テスト読出しのため、ディスク媒体19へアクセス(ステップ45)し、読出した最内周の任意のセクタデータをバッファ61へ格納する(ステップ46)とともに、計測器63での時間計測を終了する(ステップ47)。
【0085】
ここで、読出す最内周の任意のセクタデータは、テスト目的のためであるので、セクタデータを正しく読取ることができれば、後は読捨てても構わない(いわゆる、ダミーリード)。
【0086】
次に、ホストコントローラ16は、ディスクコントローラ18の動作を制御し、さらに、2回目のSMART機能のシークエラー発生数を確認し(ステップ48)、シークエラー発生数が増加したか否か判断(ステップ49)する。ここで、増加してなければ(ステップS49にて「NO」)、ホストコントローラ16は、計測器63で計測した、セクタデータを正しく読取ることができた際の時間を基にTATの設定値として、比較器64の設定値に設定する(ステップ51)。増加していれば(ステップS49にて「YES」)、ディスクコントローラ18は、要求元のホストコントローラ16にTATの設定値の設定エラーの通知を渡す。
【0087】
ここで、TATの設定値には、最内周の任意のセクタデータ読取りの所要時間値に適当なマージン時間を加えた値を設定値として設定すればよい。
【0088】
また、ホストコントローラ16は、TATの設定値の設定エラーを入手したら、I/Oコントローラの機能を制御して、CPU13にディスク媒体19の劣化傾向を通知するようにしてもよい。
【0089】
以上の第2の実施形態により、ホストコントローラ16は、ディスクモジュール12のディスク媒体19のアクセス所要時間をモニタリングして、そのアクセス所要時間が、所定の時間を超えることで、不良箇所であると判断したならば、当該箇所を含むセクタ単位毎、代替セクタテーブル17の所定のサイズの、所定の箇所で代替する。
【0090】
なお、代替セクタテーブルは、例えば、情報処理システムの第1の記憶デバイスより、システム上、上位にあるCPU13近くで、システム性能の低下を抑制しやすいホストコントローラ16に直接接続することが好ましい。
【0091】
これにより、本実施形態によれば、ディスクモジュール12のディスク特性に依存することなく、ディスクモジュール12との間の入出力レスポンスの低下、およびそれによるシステム性能の低下を抑制できるという効果を奏することができる。
【0092】
また、ディスクモジュール12のディスク特性の違いに基いた、エラーリカバリの制御方針や、媒体の劣化状況の判断方針の違いに起因する、統一的な扱いの困難さを容易にできるという効果を奏する。さらに、HDD内の同一ディスク媒体に設けた代替領域の、使用による経年変化に起因するリトライの繰り返しや、これによる代替領域が満杯になり、その結果、HDDの寿命を短くしてしまうと共に、以降のディスクデータを損失することにより、信頼性が低下することを回避できる効果を奏する。
【0093】
その上、これらにより、情報処理システムとしての運用・保守の手間を省くことができ、信頼性を確保できるという効果もある。
【0094】
即ち、本第2の実施形態によれば、情報処理システムの記憶デバイスの記憶媒体をモニタリングしつつ、システム性能の低下を抑制し、かつ、信頼性を維持することができるという他の実施形態と同様の効果を奏することができる。
<第3の実施形態>
次に、第2の実施形態を基本とする第3の実施形態について説明する。図8は、第2の実施形態のブロック図である。本実施形態では、図2、図3におけるホストコントローラ16と、ディスクモジュール12との間のインタフェースは、たとえば、SATAインタフェースで同様であるが、ディスクモジュール12を、不揮発性半導体メモリモジュール(例えば、SATA SSD;Solid State Drive)に替えた点が異なる。図8において、不揮発性半導体メモリモジュール112は、不揮発性半導体メモリコントローラ118と、不揮発性半導体メモリ119を有している。
【0095】
ホストコントローラ16は、不揮発性半導体メモリコントローラ118の機能を制御して、以下を行う点で、他の実施形態と同様である。即ち、不揮発性メモリ119の内容の読取りや書込みを行うこと、メモリコントローラ118にエラー発生数の計数等の制御/診断機能を有し実行すること、ホストコントローラ16から、TATによって不揮発性半導体メモリ119のアクセス箇所の良否を判断すること、および不良と判断すれば、セクタ単位で代替することである。このため、以下の説明においては、本第3の実施形態に係る特徴的な部分を中心に説明すると共に、上述した第2の実施形態と同様な構成についての重複する説明は省略する。
【0096】
本第3の実施形態によれば、不揮発性半導体モジュールは、ディスク媒体回転機構、磁気ヘッド収出機構等に代わり、不揮発性の半導体メモリを使用するため、機器の小型化、省電力化が可能となる特有の効果がある。
【0097】
本第3の実施形態により、ホストコントローラ16は、不揮発性半導体メモリモジュール112の不揮発性半導体メモリ119のアクセス所要時間をモニタリングして、そのアクセス所要時間が、所定の時間を超えることで、不良箇所であると判断したならば、当該箇所を含むセクタ単位毎、代替セクタテーブル17の所定のサイズの、所定の箇所で代替する。
【0098】
なお、代替セクタテーブルは、例えば、情報処理システムの第1の記憶デバイスより、システム上、上位にあるCPU13近くで、システム性能の低下を抑制しやすいホストコントローラ16に直接接続することが好ましい。
【0099】
これにより、不揮発性半導体メモリモジュール112の特性に依存することなく、不揮発性半導体メモリモジュール112との間の入出力レスポンスの低下、およびそれによるシステム性能の低下を抑制できるという効果を奏することができる。
【0100】
また、不揮発性半導体メモリモジュール112のメーカ、種類、FWなどのモジュール特性の違いに基いた、エラーリカバリの制御方針や、媒体の劣化状況の判断方針の違いに起因する、統一的な扱いの困難さを容易にできるという効果を奏する。さらに、不揮発性半導体メモリモジュール内の同一メモリ媒体に設けた代替領域の、使用による経年変化に起因するリトライの繰り返しや、これによる代替領域が満杯になり、その結果、不揮発性半導体メモリモジュールの寿命を短くしてしまうと共に、以降のデータを損失することにより、信頼性が低下することを回避できる効果を奏する。
【0101】
その上、これらにより、情報処理システムとしての運用・保守の手間を省くことができ、信頼性を確保できるという効果もある。
【0102】
即ち、本第3の実施形態によれば、情報処理システムの記憶デバイスの記憶媒体をモニタリングしつつ、システム性能の低下を抑制し、かつ、信頼性を維持することができるという他の実施形態と同様の効果を奏することができる。
<第4の実施形態>
次に、第2および、第3の実施形態を基本とする第4の実施形態について説明する。図9は、第4の実施形態のブロック図である。本第4の実施形態では、図2、図3におけるホストコントローラ16と、ディスクモジュール12とのインタフェースが、ユニバーサル シリアル バス(Universal Serial Bus;以下、「USB」と称する)に替えた点が異なる。図9において、不揮発性半導体モジュール(USBメモリモジュール)212は、メモリコントローラ(USBストレージデバイスコントローラ)218と、不揮発性半導体メモリ(USB不揮発性半導体メモリ)219を有している。
【0103】
ホストコントローラ16は、メモリコントローラ218の機能を制御して、以下を行う点で、第2や第3の実施形態と同様である。即ち、不揮発性メモリ219の内容の読取りや書込みを行うこと、メモリコントローラ218にエラー発生数の計数等の制御/診断機能を有し実行すること、ホストコントローラ16から、TATによって不揮発性半導体メモリ219のアクセス箇所の良否を判断すること、および不良と判断すれば、セクタ単位で代替することである。このため、以下の説明においては、本第4の実施形態に係る特徴的な部分を中心に説明すると共に、上述した第2乃至第3の実施形態と同様な構成についての重複する説明は省略する。
【0104】
本第4の実施形態によれば、不揮発性半導体モジュールは、ディスク媒体回転機構、磁気ヘッド収出機構等に代わり、不揮発性の半導体メモリを使用するため、機器の小型化、省電力化が可能となる特有の効果がある。
【0105】
本第4の実施形態により、ホストコントローラ16は、不揮発性半導体メモリモジュール212の不揮発性半導体メモリ219のアクセス所要時間をモニタリングして、そのアクセス所要時間が、所定の時間を超えることで、不良箇所であると判断したならば、当該箇所を含むセクタ単位毎、代替セクタテーブル17の所定のサイズの、所定の箇所で代替する。
【0106】
なお、代替セクタテーブルは、例えば、情報処理システムの第1の記憶デバイスより、システム上、上位にあるCPU13近くで、システム性能の低下を抑制しやすいホストコントローラ16に直接接続することが好ましい。
【0107】
これにより、不揮発性半導体メモリモジュール(USBメモリモジュール)212の特性に依存することなく、不揮発性半導体メモリモジュール(USBメモリモジュール)212との間の入出力レスポンスの低下、およびそれによるシステム性能の低下を抑制できるという効果を奏することができる。
【0108】
また、不揮発性半導体メモリモジュール(USBメモリモジュール)212のメーカ、種類、FWなどのモジュール特性の違いに基いた、エラーリカバリの制御方針や、媒体の劣化状況の判断方針の違いに起因する、統一的な扱いの困難さを容易にできるという効果を奏する。さらに、不揮発性半導体メモリモジュール内の同一メモリ媒体に設けた代替領域の、使用による経年変化に起因するリトライの繰り返しや、これによる代替領域が満杯になり、その結果、不揮発性半導体メモリモジュールの寿命を短くしてしまうと共に、以降のデータを損失することにより、信頼性が低下することを回避できる効果を奏する。
【0109】
その上、これらにより、情報処理システムとしての運用・保守の手間を省くことができ、信頼性を確保できるという効果もある。
【0110】
即ち、本第4の実施形態によれば、情報処理システムの記憶デバイスの記憶媒体をモニタリングしつつ、システム性能の低下を抑制し、かつ、信頼性を維持することができるという他の実施形態と同様の効果を奏することができる。
【0111】
さらに、本第4の実施形態で、ホストコントローラ16とディスクモジュール12とのインタフェースがPCI Express Bus:PCI エクスプレス バス インタフェース(以下、「PCIe」と称する)でかつ、不揮発性の半導体メモリモジュールが、Secure Digital Memory Card;以下、「SD」と称する)である点が異なる構成でもよい。その場合、図9において、不揮発性半導体モジュール(SDメモリモジュール)312は、メモリコントローラ(SDメモリメディアコントローラ)318と、不揮発性半導体メモリ(SD不揮発性半導体メモリ)319を有している。
【0112】
なお、上記、第3乃至第4の実施形態は、SATA、SASのインタフェースからなるHDD以外に、多様な不揮発性の媒体を適用できるので、不揮発性の半導体メモリモジュールの種類は、必ずしもインタフェースが、USBや、PCIeであったり、媒体がUSB不揮発性半導体メモリやSD不揮発性半導体メモリに限定されない。ディスクモジュール12と等価の機能および性能を有する不揮発性の半導体系のメモリモジュールであればよい。
<第5の実施形態>
次に、第2の実施形態の応用例として第5の実施形態を説明する。図3に示す第2の実施形態のホストコントローラ16の詳細ブロック図に示される各種機能は、既存のホストコントローラ内部に、ハードウェア改造を伴って実現することにより、処理の高速化や、上位のCPUによって動作しているOS(オペレーティングシステム)側に影響を与えないように処理のブラックボックス化を図っている。
【0113】
しかし、本第5の実施形態は、より安価に実現するために、ホストコントローラ16内のハードウェア改造は行わずに、バッファ61、検索器62、計測器63、比較器64、登録/削除器65および、設定値の各機能ブロックの全て、もしくは、いずれか一部の機能ブロックを、コンピュータ上のCPUと、OSのホストコントローラドライバソフトウェアとの協働によってソフトウェアを利用して実現する点が異なる。
【0114】
このため、以下の説明においては、本第5の実施形態に係る特徴的な部分を中心に説明すると共に、上述した第2乃至第4の実施形態と同様な構成についての重複する説明は省略する。
【0115】
これによりハードウェア改造を抑制し、ディスクモジュール12のディスク媒体をモニタリングしつつ、システム性能の低下を抑制し、かつ、信頼性を維持することができるという他の実施形態と同様の効果を奏することができる上、より安価に実現できるという特有の効果もある。
【0116】
なお、上述した各実施形態を例に説明した本発明は、上述したモニタ装置、即ちコンピュータ11のホストコントローラ16に対して、その説明において参照したフローチャート(図5乃至図7)の機能を実現可能なコンピュータ・プログラムとして供給した後、そのコンピュータ・プログラムを、ホストコントローラ16として用意したCPU(第1の実施形態ではCPU13であってもよい)に読出して実行することによって達成される。
【0117】
また、当該CPU内に供給されたコンピュータ・プログラムは、随時読み書き可能な一時記憶メモリ(例えば第1の実施形態ではメインメモリ14等)等の不揮発性の記憶デバイスに格納すれば良い。
【0118】
また、前記の場合において、当該装置内へのコンピュータ・プログラムの供給方法は、フロッピー(登録商標)ディスクやCD−ROM等の各種記録媒体を介して当該装置内にインストールする方法や、インターネット等の通信回線を介して外部よりダウンロードする方法等のように、現在では一般的な手順を採用することができる。
【0119】
そして、このような場合において、本発明は、係るコンピュータ・プログラムを構成するコード、或いは係るコードが記録されたところの、コンピュータ読み取り可能な記憶媒体によって構成されると捉えることができる。
【0120】
また、上述した機能のうちいくつかの機能をOSのホストコントローラドライバソフトウェアによって代行することで、ハードウェアのコストと、OSソフトウェアの負荷とのバランスをとることもできる。例えば、ハードウェアコストの最小化が必須でなければ、ソフトウェアで実行するにはソフトウェアに負荷がかかる計測器63は、ハードウェアで実現し、それ以外の上記機能は、前記ホストコントローラドライバソフトウェアで実現してもよい。
【0121】
即ち、ホストコントローラドライバソフトウェアをコンピュータ11に読込むことにより、ホストコントローラドライバソフトウェアは、バッファ61、検索器62、比較器64、登録/削除器65および設定値の機能をソフトウェアで実現する。これにより、CPU13やメインメモリ14、I/Oコントローラ15、計測器63等のハードウェアは、上記読込まれたホストコントローラドライバソフトウェアと協働することで第1乃至第4の実施形態と同等の機能を実現することができると共に、同等の効果を奏することができる。
【0122】
しかし、ハードウェアで実現する機能は、計測器63に限定するわけではなく、ハードウェアのコストと、OSの負荷とのバランスに応じて、ハードウェアで準備する機能と、ホストコントローラドライバソフトウェアのプログラムで実現する機能を適切に分担するようにして、それに対応するソフトウェアプログラムを読込むことで実現できる。
【0123】
なお、上述した実施形態及びその変形例の一部又は全部は、以下の付記のようにも記載されうる。しかしながら、上述した実施形態及びその変形例により例示的に説明した本発明は、以下には限らない。即ち、
(付記1)
データの読取りまたは書込みのために、自装置に接続された第1の記憶デバイスの記憶領域にアクセスした際、そのアクセスを開始してから終了するまでの所要時間を計測し、計測した所要時間が所定値を超えると判断した場合、該アクセスした記憶領域を含む所定の記憶領域単位に対応するサイズのデータを、その所定の記憶領域の代わりに、前記第1の記憶デバイスとは異なる第2の記憶デバイスに格納する制御手段を備えることを特徴とする記憶デバイスのモニタ装置。
(付記2)
前記制御手段は、
前記データを、前記所定の記憶領域の代わりに前記第2の記憶部に格納する際に、
前記所要時間が所定値を超えると判断した場合、該アクセスした記憶領域を含む前記第1の記憶部の記憶領域のアドレスを特定して登録する登録手段と、
該アドレスに基いて前記データを検索する検索手段とを含むことを特徴とする付記1に記載の記憶デバイスのモニタ装置。
(付記3)
前記制御手段は、
自装置のアイドル期間に、前記第1の記憶デバイスにアクセスすると共に、アクセスに際して、発生したエラー傾向と、そのアクセスの所要時間とに基いて、そのアクセスした記憶領域を不良箇所と診断する診断手段を含むことを特徴とする付記2に記載の記録デバイスのモニタ装置。
(付記4)
前記診断手段は、
前記第1の記憶デバイスの所定箇所を複数回アクセスする際に、発生した前記エラー傾向としてのエラー数が増加していなければ、前記所要時間に基いて不具合の判断に用いる所定の設定値とすることを特徴とする付記3に記載の記録デバイスのモニタ装置。
(付記5)
前記第1の記憶デバイスは、
前記診断手段として、診断のためのアクセスに、最も時間を要するディスク形状の記憶媒体の最内周における任意セクタのデータをダミーリードすることを特徴とする付記4に記載の記録デバイスのモニタ装置。
(付記6)
前記第1の記憶デバイスは、
前記制御手段が、前記ディスク形状の記憶媒体の記憶領域へアクセスする際に、そのアクセスの所要時間が所定値を超えると判断した場合に、該アクセスした記憶領域を含むセクタ毎のアドレスを特定して、前記ディスク形状の記憶媒体にあって、別の領域にセクタ毎、代替する自身の代替記憶領域を有することを特徴とする付記5に記載の記録デバイスのモニタ装置。
(付記7)
前記第2の記憶デバイスは、
第1の記憶デバイスとは別体であって、自装置に内蔵されるか、もしくは接続されることを特徴とする付記1乃至6の何れかに記載の記憶デバイスのモニタ装置。
(付記8)
前記第2の記憶デバイスは、
不揮発性メモリで構成されることを特徴とする付記1乃至7の何れかに記載の記憶デバイスのモニタ装置。
(付記9)
前記第2の記憶デバイスは、
ディスク識別子、セクタアドレス、及びセクタデータを組みとしたセクタ単位のレコードをデータ構造として有し、
前記制御手段は、前記第2の記憶デバイスに対して、前記レコードを基に、対象とするデータを検索すると共に、登録することを特徴とする付記5乃至8の何れかに記載の記憶デバイスのモニタ装置。
(付記10)
前記制御手段は、
前記第1の記憶デバイスのデータ読取りに際して、前記検索手段にて、該読取るデータを含むセクタ毎に特定されたアドレスを登録していることを確認したならば、該アドレスに基いて前記第2の記憶デバイスに格納されている該データを読取る一方、前記アドレスを登録していることを確認できなければ、前記セクタ毎に特定されたアドレスに基いて前記第1の記憶デバイスに格納されている該データを読取り、その読取りに際して、所要時間が前記所定値を超えると判断した場合、前記登録手段に、該データを含むセクタ毎のアドレスを特定して、前記第2の記憶デバイスに新規に登録することで、次回以降の読取りにおいて、前記第2の記憶デバイスの該当する箇所を読取ることを特徴とする付記6に記載の記憶デバイスのモニタ装置。
(付記11)
前記制御手段は、
前記第1の記憶デバイスへのデータ書込みに際して、前記検索手段にて、該書込むデータを含むセクタ毎に特定されたアドレスを登録していることを確認したならば、前記検索手段の前記登録を、前記登録手段で削除し、前記第1の記憶デバイスの記憶領域の該アドレスに該データを書込み、該書込みにおいて、所要時間が前記所定値を超えると判断した場合、自身に有する前記代替記憶領域に書込み、該書込みにおいても、所要時間が前記所定値を超えると判断した場合、前記登録手段で、該データを含むセクタ毎のアドレスを特定して、前記第2の記憶デバイスに登録することで、次回以降の書込みにおいて、前記第2の記憶デバイスの該当する箇所に書込むことを特徴とする付記6に記載の記憶デバイスのモニタ装置。
(付記12)
前記制御手段は、
前記第1の記憶デバイスへのデータ書込みに際して、前記検索手段にて、該書込むデータを含むセクタ毎に特定されたアドレスを登録していることを確認できなければ、前記第1の記憶デバイスの記憶領域の該アドレスに前記データを書込み、該書込みにおいて、所要時間が前記所定値を超えると判断した場合、自身に有する前記代替記憶領域に書込み、該書込みにおいても、所要時間が前記所定値を超えると判断した場合、前記登録手段で、該データを含むセクタ毎のアドレスを特定して、前記第2の記憶デバイスに新規に登録することで、次回以降の書込みにおいて、前記第2の記憶デバイスの該当する箇所に書込むことを特徴とする付記6に記載の記憶デバイスのモニタ装置。
(付記13)
記憶デバイスのモニタ装置に接続された第1の記憶デバイスの記憶領域に、データの読取りまたは書込みのためにアクセスした際、そのアクセスを開始してから終了するまでの所要時間を計測し、
計測した所要時間が所定値を超えると判断した場合、該アクセスした記憶領域を含む所定の記憶領域単位に対応するサイズのデータを、その所定の記憶領域の代わりに、前記第1の記憶デバイスとは異なる第2の記憶デバイスに格納する
ことを特徴とする記憶デバイスのモニタ装置の制御方法。
(付記14)
前記データを、前記所定の記憶領域の代わりに前記第2の記憶部に格納する際に、前記所要時間が所定値を超えると判断した場合、該アクセスした記憶領域を含む前記第1の記憶部の記憶領域のアドレスを特定して登録し、
前記アドレスに基いて前記データを検索する
ことを特徴とする付記13に記載の記憶デバイスのモニタ装置の制御方法。
(付記15)
前記モニタ装置のアイドル期間に、前記第1の記憶デバイスにアクセスすると共に、アクセスに際して、発生したエラー傾向とそのアクセスの所要時間とに基いて、そのアクセスした記憶領域を不良箇所と診断する
ことを特徴とする付記14に記載の記録デバイスのモニタ装置の制御方法。
(付記16)
前記第1の記憶デバイスの所定箇所を複数回アクセスする際に、発生した前記エラー傾向としてのエラー数が増加していなければ、前記所要時間に基いて不具合の判断に用いる所定の設定値とする
ことを特徴とする付記15に記載の記録デバイスのモニタ装置の制御方法。
(付記17)
記憶デバイスのモニタ装置を制御するコンピュータ・プログラムであって、そのコンピュータ・プログラムにより、
データの読取りまたは書込みのために、自装置に接続された第1の記憶デバイスの記憶領域にアクセスした際、そのアクセスを開始してから終了するまでの所要時間を計測し、計測した所要時間が所定値を超えると判断した場合、該アクセスした記憶領域を含む所定の記憶領域単位に対応するサイズのデータを、その所定の記憶領域の代わりに、前記第1の記憶デバイスとは異なる第2の記憶デバイスに格納する制御機能を、コンピュータに実現させる
ことを特徴とするコンピュータ・プログラム。
(付記18)
記憶デバイスのモニタ装置を制御するコンピュータ・プログラムを格納した記憶媒体であって、そのコンピュータ・プログラムを読み出してコンピュータにおいて実行することにより、
データの読取りまたは書込みのために、自装置に接続された第1の記憶デバイスの記憶領域にアクセスした際、そのアクセスを開始してから終了するまでの所要時間を計測し、計測した所要時間が所定値を超えると判断した場合、該アクセスした記憶領域を含む所定の記憶領域単位に対応するサイズのデータを、その所定の記憶領域の代わりに、前記第1の記憶デバイスとは異なる第2の記憶デバイスに格納する制御機能を実現させる
ことを特徴とする、コンピュータ読み取り可能な記憶媒体。
【産業上の利用可能性】
【0124】
本発明は、上述した各実施形態には限定されず、サーバの他、ワークステーション、パーソナルコンピュータ、複写機、複合機等の記憶デバイスを搭載する各種の情報記録処理システムに適用可能である。
【符号の説明】
【0125】
1 制御部
2 第1の記憶部
3 第2の記憶部
11 コンピュータ
12 ディスクモジュール
13 CPU
14 メインメモリ
15 I/Oコントローラ
16 ホストコントローラ
17 代替セクタテーブル
18 ディスクコントローラ
19 ディスク媒体
61 バッファ
62 検索器
63 計測器
64 比較器
65 登録/削除器
71 ディスク識別子
72 セクタアドレス
73 セクタデータ
112 不揮発性半導体メモリモジュール
118 不揮発性半導体メモリコントローラ
119 不揮発性半導体メモリ
212 不揮発性半導体メモリモジュール(USBメモリモジュール)
218 メモリコントローラ(USBストレージデバイスコントローラ)
219 不揮発性半導体メモリ(USB不揮発性半導体メモリ)
312 不揮発性半導体メモリモジュール(SDメモリモジュール)
318 メモリコントローラ(SDメモリメディアコントローラ)
319 不揮発性半導体メモリ(SD不揮発性半導体メモリ)

【特許請求の範囲】
【請求項1】
データの読取りまたは書込みのために、自装置に接続された第1の記憶デバイスの記憶領域にアクセスした際、そのアクセスを開始してから終了するまでの所要時間を計測し、計測した所要時間が所定値を超えると判断した場合、該アクセスした記憶領域を含む所定の記憶領域単位に対応するサイズのデータを、その所定の記憶領域の代わりに前記第1の記憶デバイスとは異なる第2の記憶デバイスに格納する制御手段を備えることを特徴とする記憶デバイスのモニタ装置。
【請求項2】
前記制御手段は、
前記データを、前記所定の記憶領域の代わりに前記第2の記憶部に格納する際に、
前記所要時間が所定値を超えると判断した場合、該アクセスした記憶領域を含む前記第1の記憶部の記憶領域のアドレスを特定して登録する登録手段と、
該アドレスに基いて前記データを検索する検索手段とを含むことを特徴とする請求項1に記載の記憶デバイスのモニタ装置。
【請求項3】
前記制御手段は、
自装置のアイドル期間に、前記第1の記憶デバイスにアクセスすると共に、アクセスに際して、発生したエラー傾向と、そのアクセスの所要時間とに基いて、そのアクセスした記憶領域を不良箇所と診断する診断手段を含むことを特徴とする請求項2に記載の記録デバイスのモニタ装置。
【請求項4】
前記診断手段は、
前記第1の記憶デバイスの所定箇所を複数回アクセスする際に、発生した前記エラー傾向としてのエラー数が増加していなければ、前記所要時間に基いて不具合の判断に用いる所定の設定値とすることを特徴とする請求項3に記載の記録デバイスのモニタ装置。
【請求項5】
第1の記憶デバイスは、
前記診断手段として、診断のためのアクセスに、最も時間を要するディスク形状の記憶媒体の最内周における任意セクタのデータをダミーリードすることを特徴とする請求項4に記載の記録デバイスのモニタ装置。
【請求項6】
前記第1の記憶デバイスは、
前記制御手段が、前記ディスク形状の記憶媒体の記憶領域へアクセスする際に、そのアクセスの所要時間が所定値を超えると判断した場合に、該アクセスした記憶領域を含むセクタ毎のアドレスを特定して、前記ディスク形状の記憶媒体にあって、別の領域にセクタ毎、代替する自身の代替記憶領域を有することを特徴とする請求項5に記載の記録デバイスのモニタ装置。
【請求項7】
前記第2の記憶デバイスは、
不揮発性メモリで構成されることを特徴とする請求項1乃至6の何れかに記載の記憶デバイスのモニタ装置。
【請求項8】
前記第2の記憶デバイスは、
ディスク識別子、セクタアドレス、及びセクタデータを組みとしたセクタ単位のレコードをデータ構造として有し、
前記制御手段は、前記第2の記憶デバイスに対して、前記レコードを基に、対象とするデータを検索すると共に、登録することを特徴とする付記5乃至7の何れかに記載の記憶デバイスのモニタ装置。
【請求項9】
記憶デバイスのモニタ装置に接続された第1の記憶デバイスの記憶領域に、データの読取りまたは書込みのためにアクセスした際、そのアクセスを開始してから終了するまでの所要時間を計測し、
計測した所要時間が所定値を超えると判断した場合、該アクセスした記憶領域を含む所定の記憶領域単位に対応するサイズのデータを、その所定の記憶領域の代わりに、前記第1の記憶デバイスとは異なる第2の記憶デバイスに格納する
ことを特徴とする記憶デバイスのモニタ装置の制御方法。
【請求項10】
記憶デバイスのモニタ装置を制御するコンピュータ・プログラムであって、そのコンピュータ・プログラムにより、
データの読取りまたは書込みのために、自装置に接続された第1の記憶デバイスの記憶領域にアクセスした際、そのアクセスを開始してから終了するまでの所要時間を計測し、計測した所要時間が所定値を超えると判断した場合、該アクセスした記憶領域を含む所定の記憶領域単位に対応するサイズのデータを、その所定の記憶領域の代わりに、前記第1の記憶デバイスとは異なる第2の記憶デバイスに格納する制御機能を、コンピュータに実現させる
ことを特徴とするコンピュータ・プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2013−73641(P2013−73641A)
【公開日】平成25年4月22日(2013.4.22)
【国際特許分類】
【出願番号】特願2011−210685(P2011−210685)
【出願日】平成23年9月27日(2011.9.27)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】