【実施例1】
【0014】
(構成)
図1に実施例1の半導体ディスク寿命監視装置の構成および係るシステム全体の構成図を示す。同図に示したように、実施例1の半導体ディスク寿命監視装置1は、ホスト12と後述の通信路11により接続され、また、インタフェースバス13を介して1つまたは複数の半導体ディスク5と接続されたコンピュータシステム9から半導体ディスク5の寿命を予測するための詳細後述の個体情報15、書込情報16を取得できる構成となっている。
【0015】
そして、コンピュータシステム9は、アプリケーションプログラム2、ディスクコントローラとしてのOSの一部であるファイルシステム3およびインタフェースドライバ4を備え、アプリケーションプログラム2は、ファイルシステム3、インタフェースドライバ4を経由して半導体ディスク5にアクセスする。
【0016】
半導体ディスク寿命監視装置1は、詳細後述の個体情報取得部6、測定部7、保存部8、および通信部10が備えられている。
【0017】
測定部7は、ファイルシステム3とインタフェースドライバ4から半導体ディスク5のデータの書込みを書込情報16として観測して書込回数や書込量の測定を行うとともに、測定した書込回数等のデータを集計して、後述する保存部8に保存データ32として保存する機能を有する。
【0018】
通信部10は、保存部8に保存された保存データ32をホスト12に転送する機能を有し、LANや専用回線等からなる通信路11を介してホスト12と通信する。
【0019】
個体情報取得部6は、インタフェースドライバ4を経由して半導体ディスク5の個体情報15を読み出し、通信部10や保存部8に情報を伝達する。なお、個体情報15は、半導体ディスク5が保持する半導体ディスク5のシリアルナンバーや書込回数などの情報からなる。
【0020】
図2に、ファイルシステム3とインタフェースドライバ4間の書込情報16を測定部7にて測定する測定データ31と、保存する保存データ32の構成を示す。なお、K個の半導体ディスク5が接続されている場合、測定データ31と保存データ32はKセットの測定データ31と保存データ32から構成される。
【0021】
測定データ31の「書込回数」は、
図2(a)備考に示したように、アプリケーションプログラム2がファイルシステム3、インタフェースドライバ4を介して半導体ディスク5に送出したライトコマンドの数である。
【0022】
また、「書込量」は、アプリケーションプログラム2がファイルシステム3、インタフェースドライバ4を介して半導体ディスク5に送出したライトデータの量であり、「経過時間」は前回の測定から今回の測定までの経過時間である。
【0023】
図2(b)の保存データ32は、測定した前述の「書込回数」、「書込量」、「経過時間」等のデータを集計し「累積書込回数Na」、「累積書込量Ma」、「累積時間Ta」として集計ごとに追加して記録される。
【0024】
「記録日時」は集計して保存データ32として記録する日時であり、「累積書込回数Na」は測定データ31の「書込回数」を累積したライトコマンドの数である。
【0025】
「累積書込量Ma」は測定データ31の「書込量」を累積したライトデータの量であり、「累積経過時間Ta」は測定データ31の「経過時間」を累積した経過時間である。
【0026】
なお、「累積書込回数Na」は、後述する1つのライトコマンドあたりのサイズSaを算出するのに使用する。これは、半導体ディスクへのライトコマンドのサイズSaは、半導体ディスク内部のフラッシュメモリの書換単位Jaとは異なるため、フラッシュメモリの書換回数とは異なる。例えば、ライトコマンドのサイズSaが2KB(バイト)でフラッシュメモリの書換単位Jaが4KBの場合では、1つのライトコマンドあたりのフラッシュメモリの平均書換量は2倍となり、フラッシュメモリ間を跨って書換える頻度を考慮するとさらに多くなる。
【0027】
(動作)
以上の構成により、実施例1の半導体ディスク寿命監視装置は以下のように動作する。この動作を
図3の動作フローチャート図を用いて以下詳細に説明する。
【0028】
まず、半導体ディスク5が交換されたかどうか確認するために、個別情報取得部6により半導体ディスク5の個体情報15であるシリアルナンバーを取得する(ステップS11)。
【0029】
そして、取得したシリアルナンバーがこれまでのシリアルナンバーと異なる場合は(ステップS12)、半導体ディスク5が交換されたと判断し、保存データ32の「累積書込回数」、「累積書込量」および「累積時間」をクリアしたデータを追加して記録する(ステップS13)。
【0030】
次に、「書込回数」、「書込量」および「経過時間」の各測定項目の測定を開始する(ステップS14)。なお、これらの測定項目の測定には、例えば、Windows系(「Windows」はMicrosoft社の登録商標)のOSの場合、CPU時間やメモリ使用量などの項目とともに、物理ドライブへのコマンド数やデータ量等を測定する機能が備わっており、それを使用すればよい。
【0031】
すなわち、「書込回数」は「秒当たりの平均ライトコマンドの数」、「書込量」は「秒当たりの平均ライトデータ転送量」として測定することができる。これらの測定値は、半導体ディスク5への実際のアクセスを反映したものであり、半導体ディスク5の書込量等の測定に適したものである。この書込量等の測定結果に測定に要した経過時間を乗算すれば目的とする「書込回数」、「書込量」を求めることができる。また、「経過時間」の測定はタイマー等を備え、各測定における測定開始から終了までの経過時間を計測すればよい。
【0032】
そして、測定を開始した後、所定の時間経過後(例えば、1時間経過後)またはコンピュータシステムの終了時に測定を終了し(ステップS15、S16)、「書込回数」、「書込量」および「経過時間」の各測定項目の測定値を取得する(ステップS17)。
【0033】
そして、保存データ32のうちこれまでの最新の「累積書込回数」、「累積書込量」および「累積時間」を取得し(ステップS18)、ステップS17にて取得した「書込回数」、「書込量」および「経過時間」を加算して更新し、最新の値として保存データ32に追加して記録する(ステップS19)。
【0034】
そして、コンピュータシステムが終了でない場合は、ステップS11に戻り、同様に測定データ31の測定および保存データ32の記録を繰り返す(ステップS20)。
【0035】
以上のように保存された保存データ32を、ホスト12からのリクエストに応じて通信路11を介してホスト12に転送する。このとき、個体情報取得部6を経由して半導体ディスク5からのシリアルナンバーや書換回数情報を取得し、保存データ32とともにホスト12に転送するようにしてもよい。
【0036】
ホスト12では以上の保存データ32の情報に基づいて半導体ディスクの寿命を推定し、予防交換などのメンテナンスのための情報として利用する。
【0037】
以下に保存データ32の情報に基づいて半導体ディスクの寿命を推定する一例を説明する。
図4は、フラッシュメモリの書換単位Jaを例えば4KBとした場合で、保存データ32の累積書込量Maを保存データ32の累積書込回数Naで除算して求められる平均のライトコマンドのサイズSaを横軸とし、縦軸に所定の時間(Taおよび2Ta)経過したときの想定されるフラッシュメモリの累積書換量Faを示した図である。
【0038】
同図に示したように、領域S3のように、平均のライトコマンドのサイズSaがフラッシュメモリの書換単位Jaよりも十分大きい場合は、想定されるフラッシュメモリの累積書換量Fa(フラッシュメモリの書換単位Ja×累積書込回数Na)は、フラッシュメモリ間を跨って書換えが行われる頻度が低いため、保存データ32の累積書込量Maとほぼ同じになる。
【0039】
一方、領域S1のように、平均のライトコマンドのサイズSaがフラッシュメモリの書換単位Jaよりも十分小さい場合は、想定されるフラッシュメモリの累積書換量Faは、フラッシュメモリ間を跨って書換えが行われる頻度が高くなり累積書込回数Naが増加するため、保存データ32の累積書込量Maよりも大きくなる。
【0040】
また、領域S2のように、平均のライトコマンドのサイズSaがフラッシュメモリの書換単位Ja近傍の場合は、想定されるフラッシュメモリの累積書込量Faは、ファイルシステムの構成等に依存するが、フラッシュメモリ間を跨って書換えが行われる頻度が1.5倍程度となるので、保存データ32の累積書込量Maの約1.5倍となる。
【0041】
以上のように、平均のライトコマンドのサイズSaを保存データ32の累積書込量Maおよび累積書込回数Naから算出し、
図4の特性に基づいてフラッシュメモリの累積書込量Faを想定すれば、フラッシュディスクの寿命となるフラッシュディスクの最大書換量Fmaxおよび累積経過時間Taからフラッシュディスクの寿命となる経過時間TmaxがTmax=Ta×(Fmax/Fa)として求められ、寿命までの残り時間TeをTe=Tmax−Taとして求めることができる。
【0042】
以上の動作は半導体ディスク5が1個の場合について述べたが、複数の半導体ディスク5を搭載する場合は、半導体ディスク5の交換時の処理(ステップS11〜S13)、測定の開始(ステップS14)、測定値の読出しや保存データ32の追記(ステップS17〜S19)を各半導体ディスク5に対して実施する。
【0043】
なお、以上の説明では、保存データ9をホスト12に送出し、ホスト12にて半導体ディスクの寿命を推定するように説明したが、半導体ディスク寿命監視装置1にて寿命を予測するようにしてもよい。
【0044】
(実施例1の効果)
以上詳細に説明したように、実施例1の半導体ディスク寿命監視装置によれば、コンピュータシステムのファイルシステムからの出力を書込情報として測定する測定部と、前記測定結果を累積し第1の保存データとして保存する保存部を備え、前記保存した累積書込情報に基づいて半導体ディスクの寿命を予測できるようにしたので、高精度に半導体ディスクの寿命を予測できる。
【実施例2】
【0045】
(構成)
ところで、実際の半導体ディスクの寿命は、半導体ディスク内部のキャッシュや書換アルゴリズムの影響を受け、同じ書込回数、書込量でもそのアドレス、保存データサイズの分布、ライトのタイミングにより変わる場合がある。
【0046】
そこで、実施例2の半導体ディスク寿命監視装置では、運用される半導体ディスクと同種類の加速試験用半導体ディスクを設け、当該加速試験用半導体ディスクを用い、任意に設定される加速係数に応じて加速試験を行い、半導体ディスク内部のキャッシュ構成や書き換えアルゴリズムに沿った書込の様子を測定し、より先行した寿命推定を行い、さらに精度よく寿命予測できるようにしている。
【0047】
実施例2の半導体ディスク寿命監視装置の測定データ41および第2の保存データとしての保存データ42の構成は、より詳細に書込の様子を取得するため、
図5に示した構成となっており、各ライトコマンドの送出された「時刻」、「アドレス」、「サイズ」を全て測定して取得し、順次追加して保存する構成となっている。
【0048】
なお、測定データ41および保存データ42は、実施例1と同様、半導体ディスク5がK個ある場合は、測定データ、保存データはKセット必要となる。
【0049】
すなわち、実施例2の半導体ディスク寿命監視装置は、加速試験に係る構成として、運用される半導体ディスク5−Kと同種類の加速試験用半導体ディスク(5−K+1)と、加速係数αを設定する加速係数設定部23と、上記のように測定され保存された保存データ42を用いて半導体ディスク5に対して同様のコマンドを生成し加速係数αに応じて加速して書込みを行う加速試験部21を設けている。
【0050】
なお、加速試験用半導体ディスクは、新たに追加して設けるのはなく、通常備える半導体ディスクの一部を用いるようにしてもよい。その他の構成は、実施例1と同様であるので、簡略化のためにその詳細な説明は省略する。
【0051】
(動作)
以上の構成により実施例2の半導体ディスク寿命監視装置は、以下のように動作する。この動作を、
図7の実施例2の半導体ディスク寿命監視装置の測定および保存時の動作フローチャート図および
図8の加速試験部21の動作フローチャート図を用いて以下詳細に説明する。
【0052】
最初に、
図7を用いて実施例2の半導体ディスク寿命監視装置の測定および保存動作を以下説明する。まず、ライトコマンドの各値の測定を開始すると、この測定値を、順次、
図5に示したように測定データ41として取得する(ステップS31)。この測定は、例えば、Windows系のOSの場合では、半導体ディスク5のインタフェースの物理動作を実行するポートドライバへのリクエストを専用のモニタツールを用いて測定すればよい。
【0053】
そして、測定を開始した後、所定の時間経過後またはコンピュータシステムの終了時に測定を終了し(ステップS32、S33)、それまでに蓄えられた測定データ41を保存データ42に追記する(ステップS34)。
【0054】
そして、コンピュータシステムが終了でない場合(ステップS35)は、ステップS31に戻り、以下同様に測定を繰り返す。
【0055】
なお、以上の動作は、半導体ディスク1個の場合の動作であり、複数の半導体ディスクがある場合は、ライトコマンドの測定(ステップS31)や保存データ42への追記(ステップS34)は半導体ディスクの個数分実施する。
【0056】
次に、
図8の動作フローチャート図を用いて、加速試験部21の動作を説明する。まず、保存データ42のそれぞれの行の「時刻」より、前後の差分である「時間間隔」を計算して、「時刻」に替えて「時間間隔」を保存する(ステップS41)。 そして、保存データ42の行を表す変数「X」を「1」にセットし(ステップS42)、「X」行の「アドレス」、「サイズ」よりライトコマンドを生成して、任意のライトデータを用いて半導体ディスク5に送出する(ステップS43)。
【0057】
ここで、「時間間隔」を加速係数αで割った時間のウェイトを行い(ステップS44)、試験を終了する場合ではなく(ステップS45)、変数「X」が保存データ42の最終行でないときは(ステップS46)、変数「X」を「+1」し(ステップS48)、ステップS43に戻り、以降の動作を同様に行い、ライトコマンドの送出を繰り返す。
【0058】
一方、ステップS45にて試験を終了する場合は本処理を終了し(ステップS45)、後述の寿命予測データ51を通信部10を介してホスト12に送信する。ステップS45にて試験を終了しない場合で、ステップS46にて変数「X」が保存データ42の最終行のときは、変数「X」を初期値「1」に設定し(ステップS47)、ステップS43に戻り、以降の動作を同様に行い、ライトコマンドの送出を繰り返す。
【0059】
以上のように動作させることにより、例えば、コンピュータシステム9にて一連の運用動作を行い、その間の半導体ディスク5への詳細な書込情報を測定部7にて測定して保存部8に保存し、加速試験部21により、保存した保存データ42を用いて、設定された加速係数に基づいて加速試験を実施し寿命予測データ51を得ることにより、先行した半導体ディスクの寿命予測を行うことができる。
【0060】
寿命予測データ51としては、例えば、上記加速試験の後、加速試験用半導体ディスク(5−K+1)の書換回数を個体情報取得部6にて取得し、運用される半導体ディスク(5−1〜5−K)内部の書換回数が所定の書換回数になる時刻を加速して予測したり、上記加速試験の後の加速試験用半導体ディスク(5−K+1)の予備領域のセクタ数を取得し取得した予備領域のセクタ数により、運用される半導体ディスク(5−1〜5−K)が寿命となる時刻を加速して予測したり、上記加速試験の後の加速試験用半導体ディスク(5−K+1)のエラー率を取得し、取得したエラー率により運用される半導体ディスク(5−1〜5−K)が所定のエラー率以上となる時刻を加速して予測したりする。
【0061】
(実施例2の変形例)
なお、以上の実施例の説明では、
図6に示したように、加速試験に係る構成を半導体ディスク寿命監視装置1内に設ける構成として説明したが、
図9の変形例として示したように、加速試験に係る構成を半導体ディスク寿命監視装置1とは別に設けるようにしてもよい。
【0062】
すなわち、実施例2の加速試験部21を加速試験装置101とし、これに加速試験用半導体ディスク105と加速係数設定部23を接続し、半導体ディスク寿命監視装置1の保存部8に保存された保存データ42を入力とする構成とする。
【0063】
なお、測定時の構成は実施例1の構成と同様にし、測定データ41と保存データ42は実施例2と同様とする。
【0064】
そして、加速試験装置101は、コンピュータシステム9にて一連の運用動作を行ったときの保存部8に保存された保存データを取得し、加速度設定部23により設定された加速係数に基づいて加速して加速試験用半導体ディスク105に任意のデータとして書込み、寿命予測データ51を得ることにより、半導体ディスク内部のキャッシュや書換アルゴリズムの影響も加味した寿命を高速に測定し、運用されるコンピュータシステムに対する最適なキャッシュや書換アルゴリズムを有する半導体ディスクを選定することができる。
【0065】
(実施例2の効果)
以上詳細に説明したように、実施例2の半導体ディスク寿命監視装置によれば、運用される半導体ディスクと同種類の加速試験用半導体ディスクを設け、当該加速試験用半導体ディスクを用い、任意に設定可能な加速係数に応じて加速試験を行い、運用される半導体ディスク内部のキャッシュ構成や書き換えアルゴリズムに沿った書込の様子を加速して加速試験用半導体ディスクにて測定できるようにしたので、より先行した寿命推定を行うことができ、さらに精度よく寿命予測できる。
【0066】
《その他の変形例》
以上の実施例の説明では、半導体ディスクの寿命を監視する装置として説明したが、書換回数制限のある記憶装置であればUSBメモリやSDカードのような記憶装置にも適用することができる。また、それぞれの半導体ディスクを別々のデータ用ディスクとして使用する場合やRAIDとして半導体ディスクを組み合わせて使用している場合にも本発明を適用することができる。