(57)【要約】【課題】  書換え回数を格納するための格納領域が予め設定されていなくても、フラッシュメモリの劣化を監視することが可能な情報処理装置および寿命監視方法を提供する。【解決手段】  判断部１０２ｂは、累計書換え回数管理テーブル２２ｂがフラッシュメモリ２２に存在するか否かを判断する。累計書換え回数管理テーブル２２ｂがフラッシュメモリ２２に存在しない場合、作成部１０２ｃは、累計書換え回数管理テーブル２２ｂをフラッシュメモリ２２に作成し、記録部１０２ｅは、その作成された累計書換え回数管理テーブル２２ｂに累計書換え回数を記録する。監視部１０２ｆは、ストレージ装置２の寿命を、累計書換え回数管理テーブル２２ｂに記録された累計書換え回数と、フラッシュメモリに記録された書換え回数制限値とに基づいて監視する。【選択図】      図１
2006323751.tif 000002
【特許請求の範囲】
【請求項１】
書換え回数制限値が記録されたフラッシュメモリを含むストレージ装置と接続され、該フラッシュメモリに書き込まれた情報を書き換え、また、該書換え回数制限値を用いて該ストレージ装置の寿命を監視する情報処理装置であって、
累計書換え回数を管理するための管理テーブルが前記フラッシュメモリに存在するか否かを判断する判断部と、
前記管理テーブルが前記フラッシュメモリに存在しないと前記判断部が判断すると、前記管理テーブルを前記フラッシュメモリに作成する作成部と、
前記情報が書き換えられた回数を示す累計書換え回数を、前記作成部にて作成された管理テーブルに記録する記録部と、
前記ストレージ装置の寿命を、前記管理テーブルに記録された累計書換え回数と、前記書換え回数制限値と、に基づいて監視する監視部と、を含む情報処理装置。
【請求項２】
請求項１に記載の情報処理装置において、
前記フラッシュメモリは、複数の格納領域を有し、該格納領域ごとに情報を書換え可能であり、
前記記録部は、前記累計書換え回数を前記格納領域ごとに前記管理テーブルに記録し、
前記監視部は、前記ストレージ装置の寿命を、前記管理テーブルに前記格納領域ごとに記録された累計書換え回数と、前記書換え回数制限値と、に基づいて監視する、情報処理装置。
【請求項３】
請求項２に記載の情報処理装置において、
前記フラッシュメモリは、前記情報処理装置と接続可能なストレージ装置の型名と、その型名のストレージ装置が含むフラッシュメモリの書換え回数制限値とを、前記型名ごとに関連づけて格納し、かつ、自己を含むストレージ装置の型名を固定的に格納し、
前記フラッシュメモリから該フラッシュメモリを含むストレージ装置の型名を取得し、その取得されたストレージ装置の型名に関連づけられた書換え回数制限値を前記フラッシュメモリから取得する取得部をさらに含み、
前記監視部は、前記取得部にて取得された書換え回数制限値と、前記管理テーブルに前記格納領域ごとに記録された累計書換え回数と、に基づいて前記ストレージ装置の寿命を監視する、情報処理装置。
【請求項４】
請求項１ないし３のいずれか１項に記載の情報処理装置において、
前記フラッシュメモリは、自己を含むストレージ装置を識別するための識別情報を固定的に格納し、
前記取得部は、前記情報処理装置が起動すると、前記フラッシュメモリから前記識別情報をさらに取得し、
前記判断部は、前記情報処理装置が起動すると、前記管理テーブルが前記フラッシュメモリに存在するか否かを判断し、
前記管理テーブルが前記フラッシュメモリに存在しないと前記判断部が判断すると、前記記録部は、前記作成部にて作成された管理テーブルに、前記取得部にて取得された識別情報を記録し、
前記管理テーブルが前記フラッシュメモリに存在すると前記判断部が判断すると、前記管理テーブルから前記識別情報を入手する入手部と、
前記入手部にて入手された識別情報と、前記取得部にて取得された識別情報と、を比較して、前記ストレージ装置が置換されたか否かを判定する判定部と、をさらに含み、
前記作成部は、前記ストレージ装置が置換されたと前記判定部が判定すると、前記管理テーブルを削除し、その後、新たな管理テーブルを前記フラッシュメモリに作成する、情報処理装置。
【請求項５】
請求項１ないし４のいずれか１項に記載の情報処理装置において、
前記フラッシュメモリに作成された管理テーブルと同じ管理テーブルを格納する不揮発性記憶部をさらに含む、情報処理装置。
【請求項６】
請求項１ないし５のいずれか１項に記載の情報処理装置において、
前記監視部は、前記書換え回数制限値から前記累計書換え回数を引いた値が所定値以下になったか否かを判断し、
前記書換え回数制限値から前記累計書換え回数を引いた値が前記所定値以下になったと前記監視部が判断すると、警告を発する警告部をさらに含む、情報処理装置。
【請求項７】
書換え回数制限値が記録されたフラッシュメモリを含むストレージ装置と接続され、該フラッシュメモリに書き込まれた情報を書き換え、また、該書換え回数制限値を用いて該ストレージ装置の寿命を監視する情報処理装置が行う寿命監視方法であって、
累計書換え回数を管理するための管理テーブルが前記フラッシュメモリに存在するか否かを判断する判断ステップと、
前記管理テーブルが前記フラッシュメモリに存在しないと判断されると、前記管理テーブルを前記フラッシュメモリに作成する作成ステップと、
前記情報が書き換えられた回数を示す累計書換え回数を、前記作成部にて作成された管理テーブルに記録する記録ステップと、
前記ストレージ装置の寿命を、前記管理テーブルに記録された累計書換え回数と、前記書換え回数制限値と、に基づいて監視する監視ステップと、を含む寿命監視方法。
【請求項８】
請求項７に記載の寿命監視方法において、
前記フラッシュメモリは、複数の格納領域を有し、該格納領域ごとに情報を書換え可能であり、
前記記録ステップでは、前記累計書換え回数を前記格納領域ごとに前記管理テーブルに記録し、
前記監視ステップでは、前記ストレージ装置の寿命を、前記管理テーブルに前記格納領域ごとに記録された累計書換え回数と、前記書換え回数制限値と、に基づいて監視する、寿命監視方法。
【請求項９】
請求項８に記載の寿命監視方法において、
前記フラッシュメモリは、前記情報処理装置と接続可能なストレージ装置の型名と、その型名のストレージ装置が含むフラッシュメモリの書換え回数制限値とを、前記型名ごとに関連づけて格納し、かつ、自己を含むストレージ装置の型名を固定的に格納し、
前記フラッシュメモリから該フラッシュメモリを含むストレージ装置の型名を取得し、その取得されたストレージ装置の型名に関連づけられた書換え回数制限値を前記フラッシュメモリから取得する取得ステップをさらに含み、
前記監視ステップでは、前記取得された書換え回数制限値と、前記管理テーブルに前記格納領域ごとに記録された累計書換え回数と、に基づいて前記ストレージ装置の寿命を監視する、寿命監視方法。
【請求項１０】
請求項７ないし９のいずれか１項に記載の寿命監視方法において、
前記フラッシュメモリは、自己を含むストレージ装置を識別するための識別情報を固定的に格納し、
前記取得ステップでは、前記情報処理装置が起動すると、前記フラッシュメモリから前記識別情報をさらに取得し、
前記判断ステップでは、前記情報処理装置が起動すると、前記管理テーブルが前記フラッシュメモリに存在するか否かを判断し、
前記記録ステップでは、前記管理テーブルが前記フラッシュメモリに存在しないと判断されると前記作成された管理テーブルに、前記取得された識別情報を記録し、
前記管理テーブルが前記フラッシュメモリに存在すると前記判断部が判断すると、前記管理テーブルから前記識別情報を入手する入手ステップと、
前記入手された識別情報と、前記取得された識別情報と、を比較して、前記ストレージ装置が置換されたか否かを判定する判定ステップと、をさらに含み、
前記作成ステップでは、前記ストレージ装置が置換されたと判定されると、前記管理テーブルを削除し、その後、新たな管理テーブルを前記フラッシュメモリに作成する、寿命監視方法。
【請求項１１】
請求項７ないし１０のいずれか１項に記載の寿命監視方法において、
前記フラッシュメモリに作成された管理テーブルと同じ管理テーブルを格納する不揮発性記憶部に格納する格納ステップをさらに含む、寿命監視方法。
【請求項１２】
請求項７ないし１１のいずれか１項に記載の寿命監視方法において、
前記監視ステップでは、前記書換え回数制限値から前記累計書換え回数を引いた値が所定値以下になったか否かを判断し、
前記書換え回数制限値から前記累計書換え回数を引いた値が前記所定値以下になったと判断されると、警告を発する警告ステップをさらに含む、寿命監視方法。
【請求項１３】
書換え回数制限値が記録されたフラッシュメモリを含むストレージ装置と接続され、該フラッシュメモリに書き込まれた情報を書き換えるコンピュータに、該書換え回数制限値を用いて該ストレージ装置の寿命を監視する寿命監視処理を実行させるプログラムであって、
累計書換え回数を管理するための管理テーブルが前記フラッシュメモリに存在するか否かを判断する判断処理と、
前記管理テーブルが前記フラッシュメモリに存在しないと判断されると、前記管理テーブルを前記フラッシュメモリに作成する作成処理と、
前記情報が書き換えられた回数を示す累計書換え回数を、前記作成部にて作成された管理テーブルに記録する記録処理と、
前記ストレージ装置の寿命を、前記管理テーブルに記録された累計書換え回数と、前記書換え回数制限値と、に基づいて監視する監視処理と、を含む寿命監視処理を、前記コンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、寿命監視方法およびプログラムに関し、特には、フラッシュメモリを含むストレージ装置の寿命を監視する情報処理装置、寿命監視方法およびプログラムに関する。
【背景技術】
【０００２】
従来、情報処理装置用のストレージ装置として、ハードディスクドライブ装置がよく用いられていた。
【０００３】
しかしながら、ハードディスクドライブ装置の信頼性は高くない。このため、高い信頼性が要求されるシステムでは、ハードディスクドライブ装置を定期的に交換したり、予備のストレージデバイスを情報処理装置に接続したりして、ハードディスクドライブ装置の信頼性を補完する必要があった。
【０００４】
一方、近年、半導体フラッシュメモリの大容量化および価格低下が実現されている。半導体フラッシュメモリを用いたストレージ装置は、ハードディスクドライブ装置より高い信頼性を有する。このため、現在、半導体フラッシュメモリを用いたストレージ装置が、情報処理装置用のストレージ装置として用いられるようになっている。
【０００５】
しかし、フラッシュメモリは、情報の消去および書換えを繰り返すことにより、記憶素子が劣化するという問題点を有する。
【０００６】
特許文献１（特開２０００−５７０００号公報）には、フラッシュメモリの劣化を監視するフラッシュメモリ内蔵マイクロコンピュータが記載されている。
【０００７】
具体的には、フラッシュメモリと異なる不揮発性メモリに、フラッシュメモリの書換え保証回数と、フラッシュメモリの書換え回数とが記録される。フラッシュメモリの書換え回数が、フラッシュメモリの書換え保証回数を超えると、報知信号が出力される。
【０００８】
また、特許文献２（特開平９−３０５４９７号公報）には、フラッシュメモリの劣化をセクタ単位で監視する記録再生装置が記載されている。
【０００９】
具体的には、保証消去回数と累計消去回数とが、セクタごとに、フラッシュメモリに記録される。累計消去回数が保証消去回数を超えると、その旨がマイコンに報告される。
【特許文献１】特開２０００−５７０００号公報
【特許文献２】特開平９−３０５４９７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
特許文献１および２に記載の装置では、書換え回数を格納するための格納領域が予め設定されており、その予め設定されている格納領域に書換え回数が格納される。
【００１１】
このため、特許文献１および２に記載の装置では、その格納領域が予め設定されていない場合、書換え回数を格納することができず、その結果、フラッシュメモリの劣化を監視することができない。
【００１２】
本発明の目的は、書換え回数を格納するための格納領域が予め設定されていなくても、フラッシュメモリの劣化を監視することが可能な情報処理装置、寿命監視方法およびプログラムを提供することである。
【課題を解決するための手段】
【００１３】
上記目的を達成するために、本発明の情報処理装置は、書換え回数制限値が記録されたフラッシュメモリを含むストレージ装置と接続され、該フラッシュメモリに書き込まれた情報を書き換え、また、該書換え回数制限値を用いて該ストレージ装置の寿命を監視する情報処理装置であって、累計書換え回数を管理するための管理テーブルが前記フラッシュメモリに存在するか否かを判断する判断部と、前記管理テーブルが前記フラッシュメモリに存在しないと前記判断部が判断すると、前記管理テーブルを前記フラッシュメモリに作成する作成部と、前記情報が書き換えられた回数を示す累計書換え回数を、前記作成部にて作成された管理テーブルに記録する記録部と、前記ストレージ装置の寿命を、前記管理テーブルに記録された累計書換え回数と、前記書換え回数制限値と、に基づいて監視する監視部とを含む。
【００１４】
また、本発明の寿命監視方法は、書換え回数制限値が記録されたフラッシュメモリを含むストレージ装置と接続され、該フラッシュメモリに書き込まれた情報を書き換え、また、該書換え回数制限値を用いて該ストレージ装置の寿命を監視する情報処理装置が行う寿命監視方法であって、累計書換え回数を管理するための管理テーブルが前記フラッシュメモリに存在するか否かを判断する判断ステップと、前記管理テーブルが前記フラッシュメモリに存在しないと判断されると、前記管理テーブルを前記フラッシュメモリに作成する作成ステップと、前記情報が書き換えられた回数を示す累計書換え回数を、前記作成部にて作成された管理テーブルに記録する記録ステップと、前記ストレージ装置の寿命を、前記管理テーブルに記録された累計書換え回数と、前記書換え回数制限値と、に基づいて監視する監視ステップとを含む。
【００１５】
上記の発明によれば、管理テーブルがフラッシュメモリに存在しない場合、管理テーブルがフラッシュメモリに作成され、その作成された管理テーブルに累計書換え回数が記録される。ストレージ装置の寿命は、管理テーブルに記録された累計書換え回数とフラッシュメモリに記録された書換え回数制限値とに基づいて監視される。
【００１６】
このため、書換え回数を格納するための管理テーブルが予め設定されていなくても、ストレージ装置の劣化を監視することが可能となる。
【００１７】
また、前記フラッシュメモリは、複数の格納領域を有し、該格納領域ごとに情報を書換え可能であり、前記累計書換え回数が前記格納領域ごとに前記管理テーブルに記録され、前記ストレージ装置の寿命が、前記管理テーブルに前記格納領域ごとに記録された累計書換え回数と、前記フラッシュメモリに記録された書換え回数制限値と、に基づいて監視されることが望ましい。
【００１８】
上記の発明によれば、格納領域ごとに情報を書換え可能なフラッシュメモリを含むストレージ装置の寿命を監視することが可能になる。
【００１９】
また、前記フラッシュメモリは、前記情報処理装置と接続可能なストレージ装置の型名と、その型名のストレージ装置が含むフラッシュメモリの書換え回数制限値とを、前記型名ごとに関連づけて格納し、かつ、自己を含むストレージ装置の型名を固定的に格納し、また、前記フラッシュメモリから該フラッシュメモリを含むストレージ装置の型名が取得され、その取得されたストレージ装置の型名に関連づけられた書換え回数制限値が前記フラッシュメモリから取得され、その取得された書換え回数制限値と、前記管理テーブルに前記格納領域ごとに記録された累計書換え回数と、に基づいて、前記ストレージ装置の寿命が監視されることが望ましい。
【００２０】
上記の発明によれば、実際に接続されているストレージ装置に応じた書換え制限値を取得することが可能となる。このため、より正確な寿命監視を行うことが可能となる。
【００２１】
また、前記フラッシュメモリは、自己を含むストレージ装置を識別するための識別情報を固定的に格納し、また、前記情報処理装置が起動すると、前記フラッシュメモリから前記識別情報が取得され、前記情報処理装置が起動すると、前記管理テーブルが前記フラッシュメモリに存在するか否かが判断され、前記管理テーブルが前記フラッシュメモリに存在しないと判断されると、前記作成された管理テーブルに、前記取得された識別情報が記録され、前記管理テーブルが前記フラッシュメモリに存在すると判断されると前記管理テーブルから前記識別情報が入手され、その入手された識別情報と前記取得された識別情報とが比較されて、前記フラッシュメモリが置換されたか否かが判定され、前記フラッシュメモリが置換されたと判定されると、前記管理テーブルが消去され、その後、新たな管理テーブルが前記フラッシュメモリに作成されることが望ましい。
【００２２】
上記の発明によれば、例えば、前記ストレージ装置が新しいストレージ装置に置換される際に、前記ストレージ装置に格納されていた情報（ただし、識別情報を除く）が、その新しいストレージ装置に複写された場合、その新しいストレージ装置に複写された累計書換え回数が初期化される。
【００２３】
このため、前記ストレージ装置に格納されていた情報が、その新しいストレージ装置に複写された場合でも、その新しいフラッシュメモリの寿命を高い精度で監視することが可能になる。
【００２４】
また、前記フラッシュメモリに作成された管理テーブルと同じ管理テーブルを格納する不揮発性記憶部をさらに含むことが望ましい。
【００２５】
上記の発明によれば、フラッシュメモリの故障等により、フラッシュメモリに作成された管理テーブルが参照できなくなった場合でも、不揮発性記憶部に格納された管理テーブルを参照することが可能になる。
【００２６】
また、前記書換え回数制限値から前記書換え回数を引いた値が所定値以下になると、警告が発せられることが望ましい。
【００２７】
上記の発明によれば、ストレージ装置が寿命になったことを、ユーザに知らせることが可能になる。
【００２８】
また、本発明のプログラムは、書換え回数制限値が記録されたフラッシュメモリを含むストレージ装置と接続され、該フラッシュメモリに書き込まれた情報を書き換えるコンピュータに、該書換え回数制限値を用いて該ストレージ装置の寿命を監視する寿命監視処理を実行させるプログラムであって、累計書換え回数を管理するための管理テーブルが前記フラッシュメモリに存在するか否かを判断する判断処理と、前記管理テーブルが前記フラッシュメモリに存在しないと判断されると、前記管理テーブルを前記フラッシュメモリに作成する作成処理と、前記情報が書き換えられた回数を示す累計書換え回数を、前記作成部にて作成された管理テーブルに記録する記録処理と、前記ストレージ装置の寿命を、前記管理テーブルに記録された累計書換え回数と、前記書換え回数制限値と、に基づいて監視する監視処理と、を含む寿命監視処理を、前記コンピュータに実行させる。
【００２９】
上記の発明によれば、上記寿命監視方法をコンピュータに実行させることが可能になる。
【発明の効果】
【００３０】
本発明によれば、書換え回数を格納するための管理テーブルが予め設定されていなくても、フラッシュメモリの劣化を監視することが可能となる。
【発明を実施するための最良の形態】
【００３１】
以下、本発明の実施例について図面を参照して詳細に説明する。
【００３２】
図１は、本発明の一実施例の情報処理装置を示すブロック図である。
【００３３】
図１において、情報処理装置１は、ストレージ装置２と接続される。ストレージ装置２は、情報処理装置１から取り外されることが可能である。なお、ストレージ装置２は、コンパクトフラッシュメモリカードまたはＳＤメモリカードといった規格化されて市販されているストレージ装置でもよい。
【００３４】
情報処理装置１は、主記憶部１０１と、演算器１０２と、表示回路１０３と、表示装置１０４と、入出力回路１０５と、不揮発性記憶装置１０６を含む。ストレージ装置２は、制御回路２１と、フラッシュメモリ２２とを含む。
【００３５】
主記憶部１０１は、コンピュータにて読み取り可能な記録媒体の一例である。主記憶部１０１には、情報処理装置１の動作を規定する実行プログラムが記録されている。
【００３６】
演算器１０２は、コンピュータの一例である。演算器１０２は、主記憶部１０１に記録されている実行プログラムを読み取り、その読み取られた実行プログラムを実行して種々の処理を行う。
【００３７】
例えば、演算器１０２は、その実行プログラムを実行して、取得部１０２ａと、判断部１０２ｂと、作成部１０２ｃと、書換え部１０２ｄと、記録部１０２ｅと、監視部１０２ｆと、入手部１０２ｇと、判定部１０２ｈとを実現する。
【００３８】
表示回路１０３は、表示用信号を表示装置１０４に提供する。
【００３９】
表示装置１０４は、表示回路１０３から表示用信号を受け付けると、その受け付けられた表示用信号に応じた情報を表示する。
【００４０】
入出力回路１０５は、ストレージ装置２、具体的には制御回路２１と接続する。
【００４１】
入出力回路１０５は、演算器１０２によって制御され、制御回路２１に読み出し要求および書込み要求を提供する。換言すると、演算器１０２は、入出力回路１０５を制御して、ストレージ装置２に格納されているファイルデータ等のデータの読み出し、および、ストレージ装置２へのファイルデータ等のデータの書込みを実行する。
【００４２】
なお、ストレージ装置２では、制御回路２１は、その受け付けられた読み出し要求および書込み要求を解釈し、その解釈結果に応じて、フラッシュメモリ２２に対するデータの読み出しおよび書込みを行う。
【００４３】
また、制御回路２１は、演算器１０２によって制御され、表示回路１０３を通じて表示装置１０４に所望のデータを表示する。
【００４４】
不揮発性記憶装置１０６は、情報処理装置１の電源が切れた状態となっても、内部のデータを保持する。演算器１０２は、不揮発性記憶装置１０６に格納されたデータを読み出し、また、不揮発性記憶装置１０６にデータを書き込むことができる。
【００４５】
フラッシュメモリ２２は、「ページ」と呼ばれる一定の大きさの基本管理単位ごとに、データの書込みを管理する。
【００４６】
また、フラッシュメモリ２２は、データを消去する場合、複数ページのデータをまとめて消去する。フラッシュメモリ２２では、この複数ページが基本消去単位となり、この基本消去単位は、「消去ブロック」と呼ばれる。
【００４７】
よって、フラッシュメモリ２２に書き込まれたデータが書き換えられときには、一旦消去ブロック単位でデータが消去された後、更新後のデータがページ単位で書き込まれる。
【００４８】
データの消去とデータの書込みが行われることにより、フラッシュメモリ２２の記憶素子は劣化する。このため、書換えの耐用回数は、限定された回数に規定される。
【００４９】
特定の消去ブロックで、その限定された回数を超えた書換えが行われた場合には、その特定の消去ブロックの記憶素子は故障し、データの読み出し、および、新たなデータの書込みが不可能となる。その結果、制御回路２１は、入出力回路１０５からの読み出し要求および書込み要求に対し、エラーを返す可能性が生じる。
【００５０】
一般的に、フラッシュメモリの記憶容量および消去ブロックの大きさは、規定されたものではなく、使用されるストレージ装置の品種（型名）により異なる。
【００５１】
ストレージ装置２、具体的にはフラッシュメモリ２２には、ストレージ型名パラメータテーブル２２ａと、累計書換え回数管理テーブル２２ｂと、ストレージ装置２の型名（Model number）２２ｃと、ストレージ装置２のシリアル番号（Serial number）２２ｄとが格納される。なお、型名２２ｃおよびシリアル番号２２ｄの書換えは禁止されている。
【００５２】
図２は、ストレージ型名パラメータテーブル２２ａの一例を示した説明図である。
【００５３】
図２において、ストレージ型名パラメータテーブル２２ａでは、ストレージ型名３０１と、消去ブロックサイズ３０２と、ストレージ容量３０３と、書換え耐用回数３０４とが、ストレージ型名３０１ごとに、互いに関連づけられている。
【００５４】
ストレージ型名３０１は、情報処理装置１にて使用される可能性のあるストレージ型名（品種）を示す。
【００５５】
消去ブロックサイズ（BLOCKSIZE）３０２は、消去ブロックサイズ３０２と関連づけられたストレージ型名のストレージ装置に含まれるフラッシュメモリ２０２の消去ブロックサイズを、セクタ数で示す。
【００５６】
なお、「セクタ」は、ストレージ装置のデータ管理単位である。ストレージ装置は、例えば、１ないし複数のセクタを１ページとしてフラッシュメモリにデータを書き込む。
【００５７】
ストレージ容量（CAPACITY）３０３は、ストレージ容量３０３と関連づけられたストレージ型名のストレージ装置の全記憶容量を、セクタ数で示す。
【００５８】
書換え耐用回数（ENDULANCE）３０４は、書換え耐用回数３０４と関連づけられたストレージ型名のストレージ装置における各消去ブロックの書込み回数制限値を示す。
【００５９】
図３は、累計書換え回数管理テーブル２２ｂの一例を示した説明図である。
【００６０】
なお、本実施例では、累計書換え回数管理テーブル２２ｂは、フラッシュメモリ２２の最上位ディレクトリ（ルートディレクトリ）に、“ERASECOUNT.txt”というファイル名で配置される。なお、累計書換え回数管理テーブル２２ｂの格納場所および名称は、上記に限らず、予め決められた格納場所および予め決められた名称であればよい。
【００６１】
図３において、累計書換え回数管理テーブル２２ｂには、ファイル先頭から、ストレージ型名（Model Number）４０１、シリアル番号（SERIAL Number）４０２、テーブル作成年月日（START）４０３、消去ブロック数（CAPACITY）４０４が記録され、その後に、消去ブロックごとの消去書換え回数４０５、４０６、４０７・・・が１行ずつ記録され、最後に、最終行を示す最終行識別行４０８が記録されている。
【００６２】
図３では、ストレージ型名として“STRAGE1”が示され、シリアル番号として“ABCDEFG”が示され、全容量として4000の消去ブロックが示され、消去ブロック１の累計書換え回数が１２回であることが示されている。なお、消去ブロックの番号は、フラッシュメモリ２２の論理アドレス順になっている。
【００６３】
累計書換え回数管理テーブル２２ｂは、ストレージ装置２が初期状態のときには、フラッシュメモリ２２に存在しない。
【００６４】
図１に戻って、シリアル番号２２ｄは、ストレージ装置ごとにユニークに割り当てられている。このため、シリアル番号２２ｄは、ストレージ装置２の識別情報となる。
【００６５】
ストレージ装置２がATAプロトコルに準じたストレージ装置の場合、フラッシュメモリ２２には、ストレージ装置２の型名２２ｃとストレージ装置２のシリアル番号２２ｄとを示したIdentify Device情報２２ｅが格納される。なお、Identify Device情報２２ｅは、IDE-HDD用に標準化されているATAプロトコルで定義されている。また、Identify Device情報２２ｅの書換えは禁止されている。
【００６６】
演算器１０２の取得部１０２ａは、情報処理装置１が起動すると、フラッシュメモリ２２からIdentify Device情報２２ｅを取得する。
【００６７】
取得部１０２ａは、Identify Device情報２２ｅを取得すると、Identify Device情報２２ｅから型名２２ｃおよびシリアル番号２２ｄを取得する。
【００６８】
取得部１０２ａは、型名２２ｃを取得すると、ストレージ型名パラメータテーブル２２ａ上で、その取得された型名２２ｃと関連づけられている、消去ブロックサイズ３０２と、ストレージ容量３０３と、書換え耐用回数３０４とを取得する（図２参照）。
【００６９】
取得部１０２ａは、それら取得された情報、具体的には、型名２２ｃ、シリアル番号２２ｄ、消去ブロックサイズ３０２、および、ストレージ容量３０３を、記録部１０２ｅに提供する。
【００７０】
また、取得部１０２ａは、その取得されたシリアル番号２２ｄを、判定部１０２ｈに提供する。
【００７１】
また、取得部１０２ａは、その取得された書換え耐用回数３０４を、監視部１０２ｆに提供する。監視部１０２ｆは、書換え耐用回数３０４を受け付けると、その受け付けられた書換え耐用回数３０４を格納する。
【００７２】
判断部１０２ｂは、累計書換え回数管理テーブル２２ｂがフラッシュメモリ２２に存在するか否かを判断する。例えば、判断部１０２ｂは、情報処理装置１が起動すると、累計書換え回数管理テーブル２２ｂがフラッシュメモリ２２に存在するか否かを判断する。
【００７３】
本実施例では、判断部１０２ｂは、まず、フラッシュメモリ２２の最上位ディレクトリに、“ERASECOUNT.txt”というファイル名があるか否かを判断する。
【００７４】
判断部１０２ｂは、“ERASECOUNT.txt”というファイル名がフラッシュメモリ２２の最上位ディレクトリにあると、そのファイル名のファイルのデータ構成が図３に示したデータ構成であるか否かを判断する。
【００７５】
判断部１０２ｂは、“ERASECOUNT.txt”というファイル名がフラッシュメモリ２２の最上位ディレクトリにあり、かつ、そのファイル名のファイルのデータ構成が図３に示したデータ構成である場合、累計書換え回数管理テーブル２２ｂがフラッシュメモリ２２に存在すると判断する。その後、判断部１０２ｂは、その判断結果を入手部１０２ｇに提供する。
【００７６】
一方、“ERASECOUNT.txt”というファイル名がフラッシュメモリ２２の最上位ディレクトリにない場合、あるいは、そのファイル名のファイルのデータ構成が図３に示したデータ構成と異なる場合、判断部１０２ｂは、累計書換え回数管理テーブル２２ｂがフラッシュメモリ２２に存在しないと判断する。その後、判断部１０２ｂは、その判断結果を作成部１０２ｃに提供する。
【００７７】
作成部１０２ｃは、累計書換え回数管理テーブル２２ｂがフラッシュメモリ２２に存在しない旨の判断結果を判断部１０２ｂから受け付けると、累計書換え回数管理テーブル２２ｂ（図３参照）をフラッシュメモリ２２に作成する。
【００７８】
なお、作成部１０２ｃにて作成された累計書換え回数管理テーブル２２ｂには、ストレージ装置２に関する情報は記録されていない。
【００７９】
作成部１０２ｃは、累計書換え回数管理テーブル２２ｂを作成すると、記録部１０２ｅに作成通知を提供する。
【００８０】
記録部１０２ｅは、作成通知を受け付けると、作成部１０２ｃにて作成された累計書換え回数管理テーブル２２ｂに、ストレージ装置２に関する情報を記録する。
【００８１】
具体的には、まず、記録部１０２ｅは、取得部１０２ａから受け付けた型名２２ｃを、ストレージ型名４０１として記録する。
【００８２】
続いて、記録部１０２ｅは、取得部１０２ａから受け付けたシリアル番号２２ｄを、シリアル番号４０２として記録する。
【００８３】
続いて、記録部１０２ｅは、現在の日付を不図示の時計部から取得し、その取得された日付を、テーブル作成年月日４０３として記録する。
【００８４】
続いて、記録部１０２ｅは、取得部１０２ａから受け付けたストレージ容量３０３を同じく取得部１０２ａから受け付けた消去ブロックサイズ３０２で除算した値を、消去ブロック数４０４として記録する。なお、この除算で剰余が発生した場合には、記録部１０２ｅは、その除算により算出された商に１を加算した値を、消去ブロック数４０４として記録する。
【００８５】
続いて、記録部１０２ｅは、各消去ブロックの累計書換え回数を、フラッシュメモリの論理アドレス（セクタアドレス）順に記録する。なお、この時点では、記録部１０２ｅは、全消去ブロックの書換え回数として「０」（図３の例では“００００００”）を格納する。
【００８６】
最後に、記録部１０２ｅは、最後に最終行識別行である“ＥＮＤ”を記録する。
【００８７】
記録部１０２ｅは、累計書換え回数管理テーブル２２ｂに“ＥＮＤ”を記録すると、累計書換え回数管理テーブル２２ｂのファイル名を“ERASECOUNT.txt”として、そのファイル名の累計書換え回数管理テーブル２２ｂを、フラッシュメモリ２２の最上位ディレクトリに格納する。
【００８８】
また、記録部１０２ｅは、情報処理装置１が起動すると、主記憶部１０１に、更新用書換え回数テーブルを作成する。
【００８９】
更新用書換え回数テーブルは、フラッシュメモリ２２の消去ブロックごとの書換え回数を、情報処理装置１が起動している間保存する。
【００９０】
なお、更新用書換え回数テーブルが作成された際には、記録部１０２ｅは、各消去ブロックの書換え回数を「０」にして、更新用書換え回数テーブルを初期化する。
【００９１】
また、記録部１０２ｅは、各消去ブロックとその消去ブロックに対応するセクタアドレス（論理アドレス）との対応関係を、書換え部１０２ｄに提供する。
【００９２】
書換え部１０２ｄは、フラッシュメモリ２２に記録されたデータを書き換える。
【００９３】
具体的には、書換え部１０２ｄは、まず、データが書き換えられるセクタの位置を示すセクタアドレスと、そのセクタに新たに書き込むデータとを、入出力回路１０５を介して、制御回路２１に提供する。続いて、書換え部１０２ｄは、データ書込み要求を、入出力回路１０５を介して、制御回路２１に提供する。
【００９４】
制御回路２１は、セクタアドレスとデータとを受け取った後にデータの書込み要求を受けると、フラッシュメモリ２２にデータを書き込む。
【００９５】
具体的には、制御回路２１は、まず、そのセクタアドレスにて特定されるセクタを含む消去ブロックを特定する。
【００９６】
その後、制御回路２１は、その特定された消去ブロックに格納されているデータを読み出し、その後、その特定された消去ブロックに格納されているデータを一旦消去する。
【００９７】
その後、制御回路２１は、その読み出されたデータ中の、入出力回路１０５から受け付けられたセクタアドレスにて特定されるセクタ部分のデータを、入出力回路１０５から受け付けられたデータに更新する。
【００９８】
その後、制御回路２１は、一部のデータが更新されたデータを、その特定された消去ブロックに含まれるページに書き込む。この書込みにより、ストレージ装置２としての書換え動作が完遂する。
【００９９】
また、書換え部１０２ｄは、書換えを行うたびに、主記憶部１０１に作成された更新用書換え回数テーブルを更新する。
【０１００】
具体的には、書換え部１０２ｄは、まず、制御回路２１に提供したセクタアドレスに対応する消去ブロックを特定する。続いて、書換え部１０２ｄは、更新用書換え回数テーブルに記録されている、その特定された消去ブロックに対応する書換え回数を、その回数を１つインクリメントした数値で上書きする。
【０１０１】
また、記録部１０２ｅは、情報処理装置１がシャットダウン指示を受け付けると、累計書換え回数管理テーブル２２ｂを更新する。
【０１０２】
具体的には、記録部１０２ｅは、まず、既に記録されている累計書換え回数管理テーブル２２ｂの各消去ブロックの書換え回数を読み出す。
【０１０３】
続いて、記録部１０２ｅは、主記憶１０２上の更新書換え回数テーブルに記録されている各消去ブロックの書換え回数を読み出す。
【０１０４】
続いて、記録部１０２ｅは、同じ消去ブロックごとに、累計書換え回数管理テーブル２２ｂから読み出された消去ブロックの書換え回数と、更新書換え回数テーブルから読み出された消去ブロックの書換え回数とを加算する。
【０１０５】
続いて、記録部１０２ｅは、その加算された累計書換え回数を、累計書換え回数管理テーブル２２ｂに全て書き戻す。
【０１０６】
なお、記録部１０２ｅは、この更新後の累計書換え回数更新テーブル２２ｂの内容を、不揮発性記憶装置１０６にも保管する。
【０１０７】
記録部１０２ｅは、累計書換え回数管理テーブル２２ｂの更新が終了すると、更新終了通知を監視部１０２ｆに提供する。
【０１０８】
監視部１０２ｆは、更新終了通知を受け付けると、ストレージ装置２の寿命を、累計書換え回数管理テーブル２２ｂに記録された各消去ブロックの累計書換え回数と、取得部１０２ａがフラッシュメモリ２２から取得した書換え耐用回数３０４とに基づいて監視する。
【０１０９】
例えば、監視部１０２ｆは、消去ブロックごとに、書換え耐用回数３０４から消去ブロックの累計書換え回数を引いた値（以下「差」と称する。）が所定値以下になったか否かを判断する。
【０１１０】
なお、この所定値は、０以上の数とすることが望ましい。この場合、いずれかの消去ブロックの累計書換え回数が、書換え耐用回数３０４を超えたか、あるいは超えそうな状況であるか否かが判断される。
【０１１１】
監視部１０２ｆは、いずれかの差が所定値以下になると、表示回路１０３に、警告表示用信号を提供する。
【０１１２】
表示回路１０３は、警告表示用信号を受け付けると、表示装置１０４に、ストレージ装置２が書換えによって寿命に達した旨の警告を表示する。
【０１１３】
入手部１０２ｇは、累計書換え回数管理テーブル２２ｂがフラッシュメモリ２２に存在すると判断部１０２ｂが判断すると、累計書換え回数管理テーブル２２ｂからシリアル番号４０２を入手する（図３参照）。入手部１０２ｇは、その入手されたシリアル番号を判定部１０２ｈに提供する。
【０１１４】
判定部１０２ｈは、入手部１０２ｇにて入手されたシリアル番号と、取得部１０２ａにて取得されたシリアル番号とを比較する。判定部１０２ｈは、入手部１０２ｇにて入手されたシリアル番号と、取得部１０２ａにて取得されたシリアル番号とが異なる場合、ストレージ装置２が置換されたと判断する。
【０１１５】
なお、入手部１０２ｇは、書換え可能な累計書換え回数管理テーブル２２ｂからシリアル番号４０２を入手し、また、取得部１０２ａは、書換えが禁止されているIdentify Device情報２２ｅからシリアル番号２２ｄを取得する。
【０１１６】
ここで、判定部１０２ｈの判定動作を補足する。
【０１１７】
基本的に、累計書換え回数管理テーブル２２ｂに記載されたシリアル番号４０２は、Identify Device情報２２ｅに示されたシリアル番号２２ｄになっているはずであるから、その２つのシリアル番号が異なる状況は、通常発生しない。
【０１１８】
しかしながら、情報処理装置１にてデータが書き込まれたストレージ装置が、寿命等の原因により、新しいストレージ装置に交換される場合、その交換されるストレージ装置に書き込まれたデータが、その新しいストレージ装置に複写される可能性がある。
【０１１９】
このとき、その交換されるストレージ装置に書き込まれた累計書換え回数管理テーブル２２ｂも、その新しいストレージ装置に複写されると、入手部１０２ｇにて入手されたシリアル番号と、取得部１０２ａにて取得されたシリアル番号とが異なる状況が生じる。判定部１０２ｈは、この状況が発生したか否かを判定する。
【０１２０】
判定部１０２ｈは、ストレージ装置２が置換されたと判断すると、作成部１０２ｃに置換通知を提供する。
【０１２１】
作成部１０２ｃは、置換通知を受け付けると、フラッシュメモリ２２に存在している累計書換え回数管理テーブル２２ｂを削除し、その後、新たな累計書換え回数管理テーブル２２ｂをフラッシュメモリ２２に作成する。
【０１２２】
作成部１０２ｃは、累計書換え回数管理テーブル２２ｂを作成すると、記録部１０２ｅに作成通知を提供する。
【０１２３】
記録部１０２ｅは、作成通知を受け付けると、作成部１０２ｃにて作成された累計書換え回数管理テーブル２２ｂに、ストレージ装置２に関する情報を上述したように記録する。
【０１２４】
このとき、記録部１０２ｅは、各消去ブロックの累計書換え回数を初期化して「０」にする。このため、置換されたストレージ装置２の書換え回数を正確にカウントすることが可能になる。
【０１２５】
次に、動作を説明する。
【０１２６】
図４は、情報処理装置１の動作を説明するためのフローチャートである。以下、図４を参照して、情報処理装置１の動作を説明する
まず、ステップ２０１で、情報処理装置１が起動する。
【０１２７】
情報処理装置１が起動すると、演算器１０２は、主記憶部１０１に記録された動作プログラムに従って、以下に示す動作を実行する。
【０１２８】
まず、ステップ２０２では、演算器１０２は、ストレージ装置２に格納されているストレージ型名パラメータ情報を取得する。なお、ストレージ型名パラメータ情報は、ストレージ型名パラメータテーブル２２ａに記録された情報である。
【０１２９】
具体的には、まず、演算器１０２は、ストレージ装置２の型名２２ｃと、ストレージ装置２のシリアル番号２２ｄを取得する。この取得動作は、取得部１０２ａにて実行される。
【０１３０】
例えば、ストレージ装置２が、一般に用いられるATAプロトコルに準じたハードディスクドライブの場合には、取得部１０２ａは、ストレージ装置２の型名２２ｃおよびシリアル番号２２ｄを、Identify Device情報２２ｅから取得する。
【０１３１】
また、取得部１０２ａは、ストレージ装置２にあらかじめ格納されているストレージ型名パラメータテーブル２２ａを読み出す。
【０１３２】
取得部１０２ａは、Identify Device情報２２ｅから取得したストレージ装置２の型名２２ｃと、ストレージ型名パラメータテーブル２２ａとから、ストレージ装置２の消去ブロックサイズ３０２、ストレージ容量（全記憶容量サイズ）３０３、書換え耐用回数（各消去ブロックサイズの書換え許容回数）３０４を得る。
【０１３３】
例えば、取得部１０２ａは、Identify Device情報２２ｅから取得したストレージ装置２の型名２２ｃと関連づけられている、消去ブロックサイズ３０２、ストレージ容量３０３および書換え耐用回数３０４とを、ストレージ型名パラメータテーブル２２ａから取得する。
【０１３４】
取得部１０２ａは、それら取得された情報、具体的には、型名２２ｃ、シリアル番号２２ｄ、消去ブロックサイズ３０２、および、ストレージ容量３０３を、記録部１０２ｅに提供する。
【０１３５】
また、取得部１０２ａは、その取得されたシリアル番号２２ｄを、判定部１０２ｈに提供する。
【０１３６】
また、取得部１０２ａは、その取得された書換え耐用回数３０４を、監視部１０２ｆに提供する。監視部１０２ｆは、書換え耐用回数３０４を受け付けると、その受け付けられた書換え耐用回数３０４を格納する。
【０１３７】
演算器１０２は、ストレージ型名パラメータ情報（消去ブロックサイズ３０２、ストレージ容量３０３および書換え耐用回数３０４）を取得すると、ステップ２０３を実行する。
【０１３８】
ステップ２０３では、演算器１０２は、ストレージ装置２に累計書換え回数管理テーブル２２ｂが存在するか否かを確認する。
【０１３９】
演算器１０２は、ストレージ装置２に累計書換え回数管理テーブル２２ｂが存在する場合にはステップ２０６を実行し、一方、ストレージ装置２に累計書換え回数管理テーブル２２ｂが存在しない場合にはステップ２０４を実行する。なお、この確認は、判断部１０２ｂにて実行される。
【０１４０】
具体的には、判断部１０２ｂは、まず、フラッシュメモリ２２の最上位ディレクトリに、“ERASECOUNT.txt”というファイル名のファイルがあるか否かを判断する。
【０１４１】
判断部１０２ｂは、“ERASECOUNT.txt”というファイル名のファイルがフラッシュメモリ２２の最上位ディレクトリにあると、そのファイル名のファイルのデータ構成が図３に示したデータ構成であるか否かを判断する。
【０１４２】
判断部１０２ｂは、“ERASECOUNT.txt”というファイル名のファイルがフラッシュメモリ２２の最上位ディレクトリにあり、かつ、そのファイル名のファイルのデータ構成が図３に示したデータ構成である場合、累計書換え回数管理テーブル２２ｂがフラッシュメモリ２２に存在すると判断する。その後、判断部１０２ｂは、その判断結果を入手部１０２ｇに提供する。
【０１４３】
一方、“ERASECOUNT.txt”というファイル名のファイルがフラッシュメモリ２２の最上位ディレクトリにない場合、あるいは、そのファイル名のファイルのデータ構成が図３に示したデータ構成と異なる場合、判断部１０２ｂは、累計書換え回数管理テーブル２２ｂがフラッシュメモリ２２に存在しないと判断する。その後、判断部１０２ｂは、その判断結果を作成部１０２ｃに提供する。
【０１４４】
なお、累計書換え回数管理テーブル２２ｂは、ストレージ装置２が初期状態のときには、フラッシュメモリ２２に存在しない。このため、初期状態のストレージ装置２が情報処理装置１に接続された後に演算器１０２が最初に起動したときには、判断部１０２ｂは、累計書換え回数管理テーブル２２ｂを見つけることができない。
【０１４５】
ステップ２０４では、演算器１０２は、「累計書換え回数管理テーブル」ファイルを作成する初期化処理を開始する。演算器１０２は、初期化処理を開始すると、ステップ２０５を実行する。
【０１４６】
ステップ２０５では、演算器１０２は、累計書換え回数管理テーブル２２ｂをストレージ装置２に作成する。なお、累計書換え回数管理テーブル２２ｂの作成は、作成部１０２ｃにて実行され、その作成された累計書換え回数管理テーブル２２ｂへの情報の記録は、記録部１０２ｅにて実行される。
【０１４７】
具体的には、作成部１０２ｃは、累計書換え回数管理テーブル２２ｂをフラッシュメモリ２２に作成する。なお、作成部１０２ｃにて作成された累計書換え回数管理テーブル２２ｂには、ストレージ装置２に関する情報は記録されていない。
【０１４８】
作成部１０２ｃは、累計書換え回数管理テーブル２２ｂを作成すると、記録部１０２ｅに作成通知を提供する。
【０１４９】
記録部１０２ｅは、作成通知を受け付けると、作成部１０２ｃにて作成された累計書換え回数管理テーブル２２ｂに、ストレージ装置２に関する情報を記録する。
【０１５０】
具体的には、まず、記録部１０２ｅは、取得部１０２ａから受け付けた型名２２ｃを、ストレージ型名４０１として、累計書換え回数管理テーブル２２ｂに記録する。続いて、記録部１０２ｅは、取得部１０２ａから受け付けたシリアル番号２２ｄを、シリアル番号４０２として、累計書換え回数管理テーブル２２ｂに記録する。続いて、記録部１０２ｅは、現在の日付を不図示の時計部から取得し、その取得された日付を、テーブル作成年月日４０３として、累計書換え回数管理テーブル２２ｂに記録する。
【０１５１】
続いて、記録部１０２ｅは、取得部１０２ａから受け付けたストレージ容量３０３を、同じく取得部１０２ａから受け付けた消去ブロックサイズ３０２で除算し、その除算結果（商）値を、消去ブロック数４０４として、累計書換え回数管理テーブル２２ｂに記録する。なお、この除算で剰余が発生した場合には、記録部１０２ｅは、その除算により算出された商に１を加算した値を、消去ブロック数４０４として、累計書換え回数管理テーブル２２ｂに記録する。
【０１５２】
続いて、記録部１０２ｅは、各消去ブロックの累計書換え回数を、論理アドレス順に累計書換え回数管理テーブル２２ｂに記録する。なお、この時点では、記録部１０２ｅは、全消去ブロックの書換え回数として「０」を累計書換え回数管理テーブル２２ｂに記録する。
【０１５３】
最後に、記録部１０２ｅは、最後に最終行識別行である“ＥＮＤ”を累計書換え回数管理テーブル２２ｂに記録する。
【０１５４】
記録部１０２ｅは、累計書換え回数管理テーブル２２ｂに“ＥＮＤ”を記録すると、累計書換え回数管理テーブル２２ｂのファイル名を“ERASECOUNT.txt”として、そのファイル名の累計書換え回数管理テーブル２２ｂを、フラッシュメモリ２２の最上位ディレクトリに格納する。
【０１５５】
演算器１０２は、累計書換え回数管理テーブル２２ｂを、フラッシュメモリ２２の最上位ディレクトリに格納すると、ステップ２０７を実行する。
【０１５６】
一方、ステップ２０６では、演算器１０２は、フラッシュメモリ２２に存在する累計書換え回数管理テーブル２２ｂからシリアル番号４０２を入手し、そのシリアル番号４０２が、Identify Device情報から取得されたシリアル番号２２ｄと一致するか否かを判断する。
【０１５７】
演算器１０２は、シリアル番号４０２とシリアル番号２２ｄとが一致すると、ストレージ装置２は置換されていないと判断してステップ２０７を実行する。一方、演算器１０２は、シリアル番号４０２とシリアル番号２２ｄとが異なると、ストレージ装置２は置換されたと判断してステップ２０４を実行する。
【０１５８】
なお、シリアル番号４０２の入手は、入手部１０２ｇにて実行され、両シリアル番号が一致するか否かの判断は、判定部１０２ｈにて実行される。
【０１５９】
具体的には、入手部１０２ｇは、累計書換え回数管理テーブル２２ｂがフラッシュメモリ２２に存在すると判断部１０２ｂが判断すると、累計書換え回数管理テーブル２２ｂからシリアル番号４０２を入手する。入手部１０２ｇは、その入手されたシリアル番号を判定部１０２ｈに提供する。
【０１６０】
判定部１０２ｈは、入手部１０２ｇにて入手されたシリアル番号と、取得部１０２ａにて取得されたシリアル番号とを比較する。判定部１０２ｈは、入手部１０２ｇにて入手されたシリアル番号と、取得部１０２ａにて取得されたシリアル番号とが異なる場合、ストレージ装置２が置換されたと判断する。
【０１６１】
ステップ２０７では、演算器１０２は、主記憶部１０１に更新書換え回数テーブルを作成する。更新書換え回数テーブルは、フラッシュメモリ２２の消去ブロックごとに発生する書換え回数を、情報処理装置１が起動している間保存し、記録部１０２ｅにて作成される。
【０１６２】
記録部１０２ｅは、更新用書換え回数テーブルを作成する際には、各消去ブロックの書換え回数を「０」にして、更新用書換え回数テーブルを初期化する。また、記録部１０２ｅは、各消去ブロックとその消去ブロックに対応するセクタアドレスとの対応関係を、書換え部１０２ｄに提供する。
【０１６３】
演算器１０２は、更新用書換え回数テーブルを作成すると、ステップ２０８を実行する。
【０１６４】
ステップ２０８では、演算器１０２は、ストレージ装置２のデータの書換えが発生したか否かを判断する。ストレージ装置２のデータの書換えは、書換え部１０２ｄにて実行される。
【０１６５】
具体的には、書換え部１０２ｄは、まず、データが書き換えられるセクタの位置を示すセクタアドレスと、そのセクタに新たに書き込むデータとを、入出力回路１０５を介して、制御回路２１に提供する。続いて、書換え部１０２ｄは、データ書込み要求を、入出力回路１０５を介して、制御回路２１に提供する。
【０１６６】
制御回路２１は、セクタアドレスとデータとを受け取った後にデータの書込み要求を受けると、フラッシュメモリ２２にデータを書き込む。
【０１６７】
ストレージ装置２のデータの書換えが発生すると、演算器１０２は、ステップ２０９を実行する。
【０１６８】
ステップ２０９では、演算器１０２は、主記憶部１０１に作成された更新用書換え回数テーブルを更新する。更新用書換え回数テーブルの更新は、書換え部１０２ｄにて実行される。
【０１６９】
具体的には、書換え部１０２ｄは、まず、制御回路２１に提供したセクタアドレスに対応する消去ブロックを特定する。続いて、書換え部１０２ｄは、更新用書換え回数テーブルに記録されている、その特定された消去ブロックに対応する書換え回数を、その回数を１つインクリメントした数値で上書きする。
【０１７０】
演算器１０２は、更新用書換え回数テーブルを更新すると、ステップ２０８を実行する。このため、書換え部１０２ｄは、演算器１０２が継続して動作している間の各消去ブロックの書換え回数を、更新用書換え回数テーブルに記録する。
【０１７１】
次に、情報処理装置１がシャットダウンを行う際の動作を説明する。
【０１７２】
情報処理装置１がシャットダウン指示を受け付けると、演算器１０２は、ステップ２１０を実行する。
【０１７３】
ステップ２１０では、演算器１０２は、シャットダウン動作を開始する。演算器１０２は、シャットダウン動作を開始すると、ステップ２１１を実行する。
【０１７４】
ステップ２１１では、演算器１０２は、累計書換え回数管理テーブル２２ｂを更新する。累計書換え回数管理テーブル２２ｂの更新は、記録部１０２ｅにて実行される。
【０１７５】
具体的には、記録部１０２ｅは、まず、累計書換え回数管理テーブル２２ｂに記録されている各消去ブロックの書換え回数を読み出す。
【０１７６】
続いて、記録部１０２ｅは、主記憶１０２上の更新書換え回数テーブルに記録されている各消去ブロックの書換え回数を読み出す。
【０１７７】
続いて、記録部１０２ｅは、同じ消去ブロックごとに、累計書換え回数管理テーブル２２ｂから読み出された消去ブロックの書換え回数と、更新書換え回数テーブルから読み出された消去ブロックの書換え回数とを加算する。
【０１７８】
続いて、記録部１０２ｅは、その加算された累計書換え回数を、累計書換え回数管理テーブル２２ｂに全て書き戻して累計書換え回数管理テーブル２２ｂを更新する。
【０１７９】
演算器１０２は、累計書換え回数管理テーブル２２ｂを更新すると、ステップ２１２を実行する。
【０１８０】
ステップ２１２では、演算器１０２は、この更新後の累計書換え回数更新テーブル２２ｂの内容を、不揮発性記憶装置１０６に保管する。また、記録部１０２ｅは、累計書換え回数管理テーブル２２ｂの更新が終了すると、更新終了通知を監視部１０２ｆに提供する。
【０１８１】
演算器１０２は、更新後の累計書換え回数更新テーブル２２ｂの内容を、不揮発性記憶装置１０６に保管すると、ステップ２１３を実行する。
【０１８２】
ステップ２１３では、演算器１０２は、ストレージ装置２が寿命になったか否かを確認する。寿命の判断は、監視部１０２ｆにて実行される。
【０１８３】
具体的には、監視部１０２ｆは、ストレージ装置２の寿命を、累計書換え回数管理テーブル２２ｂに記録された各消去ブロックの累計書換え回数と、取得部１０２ａがフラッシュメモリ２２から取得した書換え耐用回数３０４とに基づいて監視する。
【０１８４】
例えば、監視部１０２ｆは、消去ブロックごとに、書換え耐用回数３０４から消去ブロックの累計書換え回数を引いた値（差）が所定値以下になったか否かを判断する。なお、この所定値は、０以上の数とすることが望ましい。この場合、いずれかの消去ブロックの累計書換え回数が、書換え耐用回数３０４を超えたか、あるいは超えそうな状況であるか否かが判断される。
【０１８５】
いずれかの差が所定値以下になると、監視部１０２ｆは、ストレージ装置２が寿命になったと判断する。ストレージ装置２が寿命になったと監視部１０２ｆが判断すると、演算器１０２は、テップ２１４を実行する。
【０１８６】
一方、すべての差が所定値より大きい場合、監視部１０２ｆは、ストレージ装置２は寿命に達していないと判断する。ストレージ装置２は寿命に達していないと監視部１０２ｆが判断すると、演算器１０２は、ステップ２１５を実行する。
【０１８７】
ステップ２１４では、演算器１０２は、アラーム表示による通報を行う。アラーム表示による通報は、監視部１０２ｆにて制御される。
【０１８８】
具体的には、監視部１０２ｆは、表示回路１０３に、警告表示用信号を提供する。表示回路１０３は、警告表示用信号を受け付けると、表示装置１０４に、ストレージ装置２が書換えによって寿命に達した旨の警告を表示して、使用者にストレージ装置２の寿命を通報する。
【０１８９】
演算器１０２は、ストレージ装置２の寿命の通報に対する確認通知を使用者から受け付けると、ステップ２１５を実行する。
【０１９０】
ステップ２１５では、演算器１０２は、シャットダウン処理を実行して情報処理装置１の動作を終了する。
【０１９１】
本実施例によれば、以下の効果を奏する。
【０１９２】
累計書換え回数管理テーブル２２ｂがフラッシュメモリ２２に存在しない場合、作成部１０２ｃは、累計書換え回数管理テーブル２２ｂをフラッシュメモリ２２に作成し、記録部１０２ｅは、その作成された累計書換え回数管理テーブル２２ｂに累計書換え回数を記録する。
【０１９３】
このため、累計書換え回数を格納するための累計書換え回数管理テーブル２２ｂが予め設定されていなくても、ストレージ装置２の劣化を監視することが可能となる。
【０１９４】
また、フラッシュメモリ２２は、複数の消去ブロックを有し、その消去ブロックごとに情報を書換え可能である。記録部１０２ｅは、累計書換え回数を消去ブロックごとに累計書換え回数管理テーブル２２ｂに記録する。監視部１０２ｆは、ストレージ装置２の寿命を、累計書換え回数管理テーブル２２ｂに消去ブロックごとに記録された累計書換え回数と、フラッシュメモリ２２に記録された書換え回数制限値と、に基づいて監視する。
【０１９５】
このため、消去ブロックごとに情報を書換え可能なフラッシュメモリを含むストレージ装置の寿命を監視することが可能になる。よって、フラッシュメモリ２２の消去ブロックごとに書き換え回数が寿命に達しているか否かを管理した上で、情報処理装置１を運用することが可能になる。したがって、ストレージ装置２の書換え回数が書換え制限値を超えることにより、ストレージ装置が故障してしまうことを未然に防止することが可能になる。
【０１９６】
また、フラッシュメモリ２２は、情報処理装置１と接続可能なストレージ装置の型名と、その型名のストレージ装置が含むフラッシュメモリの書換え回数制限値とを、その型名ごとに関連づけて格納するとともに、自己を含むストレージ装置の型名を格納する。
【０１９７】
また、取得部１０２ａは、フラッシュメモリ２２からフラッシュメモリ２２を含むストレージ装置の型名を取得し、その取得されたストレージ装置の型名に関連づけられた書換え回数制限値をフラッシュメモリ２２から取得する。
【０１９８】
監視部１０２ｆは、取得部１０２ａにて取得された書換え回数制限値と、累計書換え回数管理テーブル２２ｂに消去ブロックごとに記録された累計書換え回数と、に基づいて、ストレージ装置２の寿命を監視する。
【０１９９】
フラッシュメモリの消去ブロックサイズおよび書換え耐用回数は、使用されるストレージ装置の型（品種）により様々であるが、本実施例では、実際に接続されているストレージ装置に応じた書換え制限値を取得することが可能となる。このため、より正確な寿命監視を行うことが可能となる。
【０２００】
また、フラッシュメモリ２２は、自己を含むストレージ装置２を識別するためのシリアル番号２２ｄを固定的に格納する。取得部１０２ａは、情報処理装置１が起動すると、フラッシュメモリ２２からシリアル番号２２ｄを取得する。
【０２０１】
判断部１０２ｂは、情報処理装置１が起動すると、累計書換え回数管理テーブル２２ｂがフラッシュメモリ２２に存在するか否かを判断する。
【０２０２】
累計書換え回数管理テーブル２２ｂがフラッシュメモリ２２に存在しないと判断部１０２ｂが判断すると、記録部１０２ｅは、作成部１０２ｃにて作成された累計書換え回数管理テーブル２２ｂに、取得部１０２ａにて取得されたシリアル番号を記録する。
【０２０３】
累計書換え回数管理テーブル２２ｂがフラッシュメモリ２２に存在すると判断部１０２ｂが判断すると、入手部１０２ｇは、累計書換え回数管理テーブル２２ｂからシリアル番号を入手する。
【０２０４】
判定部１０２ｈは、入手部１０２ｇにて入手されたシリアル番号と、取得部１０２ａにて取得されたシリアル番号とを比較して、ストレージ装置２が置換されたか否かを判定する。
【０２０５】
ストレージ装置２が置換されたと判定部１０２ｈが判定すると、作成部１０２ｃは、フラッシュメモリ２２に存在する累計書換え回数管理テーブル２２ｂを削除し、その後、新たな累計書換え回数管理テーブル２２ｂをフラッシュメモリ２２に作成する。
【０２０６】
この場合、演算器１０２は、ストレージ装置２の個体ごとに付与されるシリアル番号を管理することにより、ストレージ装置自体が交換された場合でも、自動的にストレージ装置が交換されたことを判別することが可能になる。また、ストレージ装置が交換されると、交換後のストレージ装置内の各消去ブロック書換え回数を初期化することが可能になる。
【０２０７】
また、不揮発性記憶装置１０６は、フラッシュメモリ２２に作成された累計書換え回数管理テーブル２２ｂと同じ累計書換え回数管理テーブル２２ｂを格納する。
【０２０８】
このため、ストレージ装置２が故障等により、ストレージ装置２に作成された累計書換え回数管理テーブル２２ｂが参照できなくなった場合でも、不揮発性記憶装置１０６に格納された累計書換え回数管理テーブル２２ｂを参照することが可能になる。
【０２０９】
また、警告部としての表示装置１０４は、書換え回数制限値から書換え回数を引いた値が所定値以下になったと監視部１０２ｆが判断すると、警告を発する。
【０２１０】
この場合、各消去ブロックの書換え回数が書換え回数制限値を超えた場合、または、各消去ブロックの書換え回数が書換え回数制限値を近々超える可能性がある状況に至った場合に、ストレージ装置２の書換え寿命に関する警告を通知することが可能となる。
【０２１１】
なお、前述の実施例では、情報処理装置１のシャットダウン時点にて累計書換え回数管理テーブル２２ｂが更新されていた。しかしながら、連続稼動にて使用される情報処理装置では、累計書換え回数管理テーブル２２ｂが長期間更新されないことも想定される。このため、記録部１０２ｅが、シャットダウン時点だけでなく、定期的あるいは所望のタイミングで、累計書換え回数管理テーブル２２ｂを更新することが望ましい。
【０２１２】
以上説明した実施例において、図示した構成は単なる一例であって、本発明はその構成に限定されるものではない。
【図面の簡単な説明】
【０２１３】
【図１】本発明の一実施例の情報処理装置を示したブロック図である。
【図２】ストレージ型名パラメータテーブルの一例を示した説明図である。
【図３】累計書換え回数管理テーブルの一例を示した説明図である。
【図４】情報処理装置の動作を説明するためのフローチャートである。
【符号の説明】
【０２１４】
１        情報処理装置
１０１    主記憶部
１０２    演算器
１０２ａ  取得部
１０２ｂ  判断部
１０２ｃ  作成部
１０２ｄ  書換え部
１０２ｅ  記録部
１０２ｆ  監視部
１０２ｇ  入手部
１０２ｈ  判定部
１０３    表示回路
１０４    表示装置
１０５    入出力回路
１０６    不揮発性記憶装置
２        ストレージ装置
２１      制御回路
２２      フラッシュメモリ
２２ａ    ストレージ型名パラメータテーブル
２２ｂ    累計書換え回数管理テーブル
２２ｃ    型名
２２ｄ    シリアル番号
２２ｅ    Identify Device情報
【図１】
2006323751.tif 000003
【図２】
2006323751.tif 000004
【図３】
2006323751.tif 000005
【図４】
2006323751.tif 000006