(57)【要約】      （修正有）【課題】復電処理中に停電が発生した場合に、キャッシュデータのロストを精度よく防止する。【解決手段】復電処理におけるフラッシュメモリのイレース実行中に停電が発生した場合には、イレースを停止させる。イレースを停止した時点で、フラッシュメモリが有するテーブル域（制御情報記憶域）の途中までイレースが進んでいる場合には、テーブル域の全域を消去する。テーブル域の全域の消去が完了した後、テーブル域から消去されたデータをキャッシュメモリからフラッシュメモリへ再退避する。また、イレースを停止した時点で、フラッシュメモリが有するキャッシュ域までイレースが進んでいる場合には、フラッシュメモリからイレースされたデータをキャッシュメモリからフラッシュメモリへ直ぐに再退避する。【選択図】図１
2010271793.tif 000002
【特許請求の範囲】
【請求項１】
停電発生時に、第１の記憶部に記憶されているデータを第２の記憶部に退避する停電処理部と、
停電からの復帰に伴って、前記第２の記憶部に退避されたデータを前記第１の記憶部にリストアするとともに、前記第２の記憶部に記憶されたデータを消去する消去処理を実行する復電処理部と、
前記復電処理部による前記消去処理の実行中に停電が発生した場合には、前記消去処理を停止させる消去処理停止部と、
前記消去処理停止部により前記消去処理が停止された時点で、前記第２の記憶部が有する制御情報記憶域の途中まで前記消去処理が進んでいる場合には、前記制御情報記憶域の全域を消去する制御情報記憶域消去部と、
前記制御情報記憶域消去部による前記制御情報記憶域の全域の消去が完了した後、前記制御情報記憶域から消去されたデータを前記第１の記憶部から前記第２の記憶部へ再退避する再退避実行部と
を有することを特徴とする記憶装置。
【請求項２】
前記消去処理停止部により前記消去処理が停止された時点で、前記第２の記憶部が有するキャッシュ域まで前記消去処理が進んでいる場合には、前記再退避実行部は、前記消去処理が停止されるまでの間に前記第２の記憶部から消去されたデータを前記第１の記憶部から前記第２の記憶部へ再退避することを特徴とする請求項１に記載の記憶装置。
【請求項３】
前記再退避実行部による前記再退避が完了した後、停電から復帰した場合には、前記第２の記憶部に再退避されたデータを前記第１の記憶部にリストアするとともに、前記第２の記憶部を全領域に渡って消去する消去処理を実行することを特徴とする請求項１または２に記載の記憶装置。
【請求項４】
停電発生時に、第１の記憶部に記憶されているデータを第２の記憶部に退避する停電処理ステップと、
停電からの復帰に伴って、前記第２の記憶部に退避されたデータを前記第１の記憶部にリストアするとともに、前記第２の記憶部に記憶されたデータを消去する消去処理を実行する復電処理ステップと、
前記復電処理ステップによる前記消去処理の実行中に停電が発生した場合には、前記消去処理を停止させる消去処理停止ステップと、
前記消去処理停止ステップにより前記消去処理が停止された時点で、前記第２の記憶部が有する制御情報記憶域の途中まで前記消去処理が進んでいる場合には、前記制御情報記憶域の全域を消去する制御情報記憶域消去ステップと、
前記制御情報記憶域消去ステップによる前記制御情報記憶域の全域の消去が完了した後、前記制御情報記憶域から消去されたデータを前記第１の記憶部から前記第２の記憶部へ再退避する再退避実行ステップと
を含んだことを特徴とするデータ保存方法。
【請求項５】
停電発生時に、第１の記憶部に記憶されているデータを第２の記憶部に退避する停電処理手順と、
停電からの復帰に伴って、前記第２の記憶部に退避されたデータを前記第１の記憶部にリストアするとともに、前記第２の記憶部に記憶されたデータを消去する消去処理を実行する復電処理手順と、
前記復電処理手順による前記消去処理の実行中に停電が発生した場合には、前記消去処理を停止させる消去処理停止手順と、
前記消去処理停止手順により前記消去処理が停止された時点で、前記第２の記憶部が有する制御情報記憶域の途中まで前記消去処理が進んでいる場合には、前記制御情報記憶域の全域を消去する制御情報記憶域消去手順と、
前記制御情報記憶域消去手順による前記制御情報記憶域の全域の消去が完了した後、前記制御情報記憶域から消去されたデータを前記第１の記憶部から前記第２の記憶部へ再退避する再退避実行手順と
をコンピュータに実行させることを特徴とするデータ保存プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、記憶装置、データ保存方法およびデータ保存プログラムに関する。
【背景技術】
【０００２】
従来より、停電などにより電力の供給が遮断されてしまった記憶装置において、例えば、揮発性のメモリに書き込まれているデータの消失を防止する技術が種々提案されている。例えば、停電による電源供給遮断時であっても、コンデンサの放電作用を利用して、揮発性メモリからデータを退避するための電力を得る技術が提案されている。
【０００３】
また、データの消失を防止する技術に関連して、例えば、複数の記憶装置で構成されるＲＡＩＤ（Redundant Arrays of Inexpensive Disks）装置などのコンピュータシステムでは、停電の発生に伴うデータ消失を防止するために、停電処理および復電処理が実行される。
【０００４】
停電処理とは、停電の発生に伴って、キャッシュメモリ上のデータをフラッシュメモリなどに退避（バックアップ）する処理をいう。復電処理とは、停電からの復帰に伴って、フラッシュメモリ内のバックアップデータをキャッシュメモリにリストアして、停電発生前の状態にシステムを復旧する処理をいう。
【０００５】
ここで、図を参照しつつ、停電処理および復電処理について簡単に説明する。なお、図１６〜図２２は、従来技術を説明するための図である。図１６に示すように、従来のコンピュータシステムは、システム内の動作を制御するモジュール「ＣＭ」を搭載した筐体「ＣＥ」と、複数のＤｉｓｋを搭載した筐体「ＤＥ」とを有する。
【０００６】
まず、停電処理について説明すると、「ＣＭ」は、停電を検出すると、「ＳＣＵ（Super Capacitor Unit）」からの電源供給を受けて、キャッシュメモリ内のキャッシュデータをフラッシュメモリに退避し、電源を切断するという手順で停電処理を実行する。
【０００７】
図１７に示すように、キャッシュメモリ内はシステム域、テーブル域、キャッシュ域に分かれている。テーブル域には、退避データのうち装置制御情報が書き込まれ、キャッシュ域には退避データのうちユーザデータが書き込まれている。フラッシュメモリは、停電発生時に備えて、装置起動時に初期化を実施し、データが書き込まれていない空の状態である。そして、図１８および図１９に示すように、上述した停電処理が実行されると、キャッシュメモリ内のテーブル域およびキャッシュ域に書き込まれているデータがフラッシュメモリに退避される。なお、システム域は、プログラムが書き込まれる領域であるので退避は不要となる。
【０００８】
次に、復電処理について説明すると、「ＣＭ」は、停電からの復帰により電源が投入されると、図２０および図２１に示すように、フラッシュメモリへ退避したキャッシュデータをキャッシュメモリにコピー（リストア）する。キャッシュデータのコピー完了後、「ＣＭ」は、図２２に示すように、フラッシュメモリの先頭から全域領域を消去するイレース処理を実行するという手順で復電処理を実行する。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開平６−２３１０５３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
ところで、上記した停電処理および復電処理によりデータ消失を防止する技術は、以下のような問題がある。すなわち、復電処理においてフラッシュメモリ上のテーブル域またはキャッシュ域をイレースしているタイミングで再度停電が発生した場合には、まず、フラッシュメモリ上の全領域のイレースを完了させなくてはならない（図２３の（１）および（２）参照）。そして、フラッシュメモリのイレース完了後に、続いて、キャッシュメモリ上のデータをフラッシュメモリに退避させることとなる。
【００１１】
しかしながら、フラッシュメモリのイレース完了後では、キャッシュメモリからフラッシュメモリへのデータ退避を完了させるのに十分な電力が「ＳＣＵ」に蓄えられていないケースが考えられる（図２３の（３）参照）。このため、フラッシュメモリへのキャッシュデータの退避を完了させることができず、キャッシュメモリ上の最新データ(テーブル域)が消失してしまう場合がある。
【００１２】
また、図２４の（１）に示すように、冗長構成された「ＣＭ」間で、フラッシュメモリのイレース処理のタイミングをずらすようにシーケンスを組むことで、最新データの消失を防止する技術も提案されている。すなわち、一方の「ＣＭ」が制御するフラッシュメモリのイレース処理中に停電が発生しても、他方の「ＣＭ」が制御するフラッシュメモリで最新データを保持されるので、最新データの消失を防止できる。しかしながら、この技術では、図２４の（２）に示すように、「ＣＭ」が単一で構成されている場合には、適用できないという問題がある。図２３および図２４は、従来技術の問題点を説明するための図である。
【００１３】
開示の技術は、上記に鑑みてなされたものであって、復電処理中に停電が発生した場合に、キャッシュデータのロストを精度よく防止することが可能な記憶装置、データ保存方法およびデータ保存プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
本願の開示する技術は、一つの態様において、停電発生時に、第１の記憶部に記憶されているデータを第２の記憶部に退避する停電処理部と、停電からの復帰に伴って、前記第２の記憶部に退避されたデータを前記第１の記憶部にリストアするとともに、前記第２の記憶部に記憶されたデータを消去する消去処理を実行する復電処理部と、前記復電処理部による前記消去処理の実行中に停電が発生した場合には、前記消去処理を停止させる消去処理停止部と、前記消去処理停止部により前記消去処理が停止された時点で、前記第２の記憶部が有する制御情報記憶域の途中まで前記消去処理が進んでいる場合には、前記制御情報記憶域の全域を消去する制御情報記憶域消去部と、前記制御情報記憶域消去部による前記制御情報記憶域の全域の消去が完了した後、前記制御情報記憶域から消去されたデータを前記第１の記憶部から前記第２の記憶部へ再退避する再退避実行部とを有することを特徴とする。
【発明の効果】
【００１５】
本願の開示する技術の一つの態様によれば、復電処理中に停電が発生した場合に、キャッシュデータのロストを精度よく防止できる。
【図面の簡単な説明】
【００１６】
【図１】図１は、実施例１に係る記憶装置の構成を示す図である。
【図２】図２は、実施例１に係る制御情報管理テーブルで管理される情報を説明するための図である。
【図３】図３は、実施例１に係る記憶装置による処理の流れを示す図である。
【図４】図４は、実施例１に係る記憶装置による処理の流れを示す図である。
【図５】図５は、実施例１に係る記憶装置による処理の流れを示す図である。
【図６】図６は、実施例１に係る記憶装置による処理を説明するための図である。
【図７】図７は、実施例１に係る記憶装置による処理を説明するための図である。
【図８】図８は、実施例１に係る記憶装置による処理を説明するための図である。
【図９】図９は、実施例１に係る記憶装置による処理を説明するための図である。
【図１０】図１０は、実施例１に係る記憶装置による処理を説明するための図である。
【図１１】図１１は、実施例１に係る記憶装置による処理を説明するための図である。
【図１２】図１２は、実施例１に係る記憶装置による処理を説明するための図である。
【図１３】図１３は、実施例１に係る記憶装置による処理を説明するための図である。
【図１４】図１４は、実施例２に係る予備ブロックを説明するための図である。
【図１５】図１５は、データ保存プログラムを実行するコンピュータを示す図である。
【図１６】図１６は、従来技術を説明するための図である。
【図１７】図１７は、従来技術を説明するための図である。
【図１８】図１８は、従来技術を説明するための図である。
【図１９】図１９は、従来技術を説明するための図である。
【図２０】図２０は、従来技術を説明するための図である。
【図２１】図２１は、従来技術を説明するための図である。
【図２２】図２２は、従来技術を説明するための図である。
【図２３】図２３は、従来技術の問題点を説明するための図である。
【図２４】図２４は、従来技術の問題点を説明するための図である。
【発明を実施するための形態】
【００１７】
以下に、図面を参照しつつ、本願の開示する記憶装置、データ保存方法およびデータ保存プログラムの一実施形態について詳細に説明する。なお、記憶装置、データ保存方法およびデータ保存プログラムの一実施形態として後述する実施例により、本願が開示する技術が限定されるものではない。
【実施例１】
【００１８】
実施例１に係る記憶装置は、キャッシュメモリ内のキャッシュデータをフラッシュメモリに退避する停電処理を行う。また、停電からの復帰に伴って、フラッシュメモリへ退避したキャッシュデータをキャッシュメモリにコピー（リストア）し、フラッシュメモリの全領域をイレースする復電処理を行う。これらの停電処理および復電処理によって、揮発性のメモリに書き込まれているデータの消失を防止することを概要とする。
【００１９】
そして、実施例１に係る記憶装置の骨子は、以下に説明する点にある。すなわち、復電処理におけるフラッシュメモリのイレース実行中に停電が発生した場合には、イレースを停止させる。イレースを停止した時点で、フラッシュメモリが有するテーブル域の途中までイレースが進んでいる場合には、テーブル域の全域を消去する。テーブル域の全域の消去が完了した後、テーブル域から消去されたデータをキャッシュメモリからフラッシュメモリへ再退避する。
【００２０】
また、イレースを停止した時点で、フラッシュメモリが有するキャッシュ域までイレースが進んでいる場合には、フラッシュメモリからイレースされたデータをキャッシュメモリからフラッシュメモリへ直ぐに再退避する。以下、実施例１に係る記憶装置について具体的に説明する。
【００２１】
［記憶装置の構成（実施例１）］
図１は、実施例１に係る記憶装置の構成を示す図である。同図に示すように、実施例１に係る記憶装置２００は、複数のディスク２１０および管理モジュール部２２０を有する。
【００２２】
管理モジュール部２２０は、図１に示すように、キャッシュメモリ２２１と、フラッシュメモリ２２２と、制御情報管理テーブル２２３と、制御情報管理部２２４と、イレース処理管理部２２５と、ＦＰＧＡ２２６とを有する。
【００２３】
キャッシュメモリ２２１は、管理モジュール部２２０の処理において使用される頻度の高いデータを蓄え、高速なデータの読出しを可能とする。フラッシュメモリ２２２は、キャッシュメモリ２２１から退避されたキャッシュデータを保持する。
【００２４】
制御情報管理テーブル２２３は、フラッシュメモリ２２２のイレース処理に必要な情報を管理する。例えば、フラッシュメモリ２２２が有するテーブル域のサイズ（図２の（１）参照）、キャッシュ域のサイズ（図２の（２）参照）、テーブル域の先頭ブロックのアドレス（図２の（３）参照）を管理する。図２は、実施例１に係る制御情報管理テーブルで管理される情報を説明するための図である。
【００２５】
制御情報管理部２２４は、フラッシュメモリ２２２のイレース処理時に、フラッシュメモリ２２２のどの領域までイレースを完了しているか、イレースの進行状況を管理する。
【００２６】
イレース処理管理部２２５は、ＦＰＧＡ２２６へ指示を送出して、フラッシュメモリ２２２のイレースを行わせる。また、イレース処理管理部２２５は、制御情報管理テーブル２２３に管理されている情報に基づいて、フラッシュメモリ２２２のイレース処理を実行および停止を制御する。なお、イレース処理管理部２２５による具体的な処理内容については、以下に説明する記憶装置２００による処理の説明で詳述する。
【００２７】
ＦＰＧＡ(Field Programmable Gate Array)２２６は、停電処理におけるフラッシュメモリ２２２へのキャッシュデータの退避を実行する。また、復電処理におけるフラッシュメモリ２２２に退避されたデータのキャッシュメモリ２２１へのコピー（リストア）、フラッシュメモリ２２２の全域のイレースを実行する。
【００２８】
そして、ＦＰＧＡ２２６は、図１に示すように、アドレス情報管理部２２６ａおよびイレース処理部２２６ｂを有する。アドレス情報管理部２２６ａは、フラッシュメモリ２２２のイレース処理時のアドレスを管理する。
【００２９】
イレース処理部２２６ｂは、フラッシュメモリ２２２のイレースを実行する。なお、イレース処理部２２６ｂによる具体的な処理内容については、以下に説明する記憶装置２００による処理の説明で詳述する。
【００３０】
［記憶装置の処理（実施例１）］
以下では、記憶装置２００が有する管理モジュール部２２０（特に、イレース処理管理部２２５およびＦＰＧＡ２２６）による処理の流れを説明する。
【００３１】
図３〜図５は、実施例１に係る記憶装置による処理の流れを示す図である。図６〜図１３は、実施例１に係る記憶装置による処理を説明するための図である。
【００３２】
［イレース処理管理部２２５による処理］
まず、図３を参照しつつ、イレース処理管理部２２５による処理の流れを説明する。同図に示すように、イレース処理管理部２２５は、キャッシュメモリ２２１へのキャッシュデータのコピー（リストア）を完了すると、イレース処理部２２６ｂにイレース処理の実行指示を送出する（ステップＳ１）。
【００３３】
図６および図７に示すように、ＦＰＧＡ２２６によるイレース処理が停電の発生により停止すると、イレース処理管理部２２５は、イレース停止時にイレース処理が実行されていたフラッシュメモリのアドレスをＦＰＧＡ２２６から取得する（ステップＳ２）。
【００３４】
さらに、イレース処理管理部２２５は、制御情報管理テーブル２２３から管理情報（テーブル域の先頭ブロックアドレス、テーブル域のサイズ等）を取得して、ＦＰＧＡ２２６から取得したアドレスと比較する。そして、イレース処理管理部２２５は、停電の発生により停止したイレース処理が、全テーブル域について完了しているか否かを判定する（ステップＳ３）。
【００３５】
判定の結果、フラッシュメモリ２２２の全テーブル域のイレースが完了していない場合には（ステップＳ３否定）、イレース処理管理部２２５は、全テーブル域をイレースするように、イレース処理の実行指示をＦＰＧＡ２２６へ送出する（ステップＳ４）。フラッシュメモリ２２２の全テーブル域のイレースが完了後、イレース処理管理部２２５は、フラッシュメモリ２２２からイレースされたデータに対応するデータをキャッシュメモリ２２１から直ぐに退避させるように、再退避指示をＦＰＧＡ２２６へ送出する（ステップＳ５）。
【００３６】
これとは反対にフラッシュメモリ２２２の全テーブル域のイレースが完了している場合には（ステップＳ３肯定）、図１１および図１２に示すように、停電の発生により停止したイレース処理はキャッシュ領域をイレース中であるため、イレース処理管理部２２５は、上述したステップＳ５と同様に、フラッシュメモリ２２２からイレースされたデータに対応するデータをキャッシュメモリ２２１から直ぐに退避させるように、再退避指示をＦＰＧＡ２２６へ送出する（ステップＳ５）。
【００３７】
なお、ＦＰＧＡ２２６によるキャッシュデータの再退避が完了した後に、停電から復帰した場合には、管理モジュール部２２０は、通常の復電処理を実行する。すなわち、図１０に示すように、フラッシュメモリ２２２へ退避したキャッシュデータをキャッシュメモリ２２１にコピー（リストア）し、フラッシュメモリ２２２の全領域をイレースする。
【００３８】
［ＦＰＧＡ２２６による処理］
次に、図４および図５等を参照しつつ、ＦＰＧＡ２２６（特に、イレース処理部２２６ｂ）による処理の流れを説明する。まず、図４を用いて、フラッシュメモリ２２２の全テーブル域のデータをイレースする場合の処理の流れを説明する。ＦＰＧＡ２２６は、イレース処理管理部２２５からイレース処理の実行指示を受け付けると（ステップＳ１）、フラッシュメモリ２２２のイレース処理を実行する（ステップＳ２）。
【００３９】
そして、停電が発生すると、ＦＰＧＡ２２６は、実行中であるフラッシュメモリ２２２のイレース処理を停止する（ステップＳ３）。そして、ＦＰＧＡ２２６は、イレース処理管理部２２５から、フラッシュメモリ２２２の全テーブル域についてのイレース処理の実行指示を受け付けると（ステップＳ４）、図８に示すように、フラッシュメモリ２２２の全テーブル域のイレース処理を実行する（ステップＳ５）。全テーブル域のイレースが完了すると、ＦＰＧＡ２２６は、図９に示すように、フラッシュメモリ２２２からイレースした全テーブル域のデータに対応するデータを、キャッシュメモリ２２１から再退避して（ステップＳ６）、処理を終了する。
【００４０】
続いて、図５を用いて、停止したイレース処理がキャッシュ域まで進んでいる場合の処理の流れを説明する。なお、同図に示すステップＳ１からステップＳ３までの処理は、上述した図４に示すステップＳ１からステップＳ３までの処理と同様であるので、説明を省略する。
【００４１】
ＦＰＧＡ２２６は、フラッシュメモリ２２２からイレースされたデータをキャッシュメモリ２２１から再退避するように、イレース処理管理部２２５から指示を受け付ける（ステップＳ４）。そして、ＦＰＧＡ２２６は、図１３に示すように、イレース処理管理部２２５からの指示に応じて、フラッシュメモリ２２２からイレースされたデータをキャッシュメモリ２２１から再退避し（ステップＳ５）、処理を終了する。
【００４２】
なお、以降、停電から復帰した場合には、上述した復電処理（図１０）が実行される。
【００４３】
［実施例１による効果］
上述してきたように、実施例１によれば、復電処理におけるフラッシュメモリのイレース実行中に停電が発生した場合には、イレースを停止させる。イレースを停止した時点で、フラッシュメモリが有するテーブル域の途中までイレースが進んでいる場合には、テーブル域の全域を消去する。テーブル域の全域の消去が完了した後、テーブル域から消去されたデータをキャッシュメモリからフラッシュメモリへ再退避する。
【００４４】
すなわち、フラッシュメモリ２２２におけるテーブル域のブロック先頭アドレスおよびテーブル域のサイズを制御情報管理テーブル２２３により管理しておく。そして、テーブル域の途中までイレースが進んでいる場合には、全テーブル域を全削除してから、テーブル域のブロック先頭アドレスおよびテーブル域のサイズの情報を利用して、ＳＣＵから供給される電力内で、再度テーブル域のデータのみを迅速に再退避する。
【００４５】
なお、データを再退避する前に、フラッシュメモリ２２２が有するテーブル域の全域をイレースするのは、復電処理によって、キャッシュメモリ２２１を停電が発生する前の最新の状態に復旧するためである。
【００４６】
すなわち、フラッシュメモリ２２２が有するテーブル域に書き込まれる記憶装置２００の制御情報は、復電処理中に更新されることがある。このため、復電処理中の停電の発生に伴い、フラッシュメモリ２２２のテーブル域のイレースが進んだところまで、キャッシュメモリ２２１からフラッシュメモリ２２２へデータを再退避すると、復電処理実行中にキャッシュメモリ側で更新された制御情報の全てがフラッシュメモリへ退避されない事態が発生する。そこで、復電処理のイレース実行中の停電が発生した時点で、フラッシュメモリ２２２のテーブル域の途中までイレースが進んでいる場合には、一旦、テーブル域の全域をイレースした後に、テーブル域に書き込むべきキャッシュデータを再退避する。
【００４７】
イレースを停止した時点で、フラッシュメモリが有するキャッシュ域までイレースが進んでいる場合には、フラッシュメモリ２２２からイレースされたデータをキャッシュメモリ２２１からフラッシュメモリ２２２へ直ぐに再退避する。
【００４８】
すなわち、テーブル域のブロック先頭アドレスおよびサイズ、イレース停止時のフラッシュメモリのアドレスから、イレースされたキャッシュ領域のサイズを特定する。そして、ＳＣＵから供給される電力内で、フラッシュメモリ２２２からイレースされたデータ（テーブル域のデータおよびキャッシュ域のデータ）をキャッシュメモリ２２１からフラッシュメモリ２２２へ直ぐに再退避する。
【００４９】
このようなことから、「ＣＭ」が単一で構成されていても、復電処理中に停電が発生した場合に、キャッシュデータを最新の状態に復旧できるとともに、キャッシュデータのロストを精度よく防止できる。
【実施例２】
【００５０】
以下、本願の開示する記憶装置、データ保存方法およびデータ保存プログラムの他の実施形態を説明する。
【００５１】
（１）予備ブロック
図１４に示すように、フラッシュメモリ２２２に予備ブロックを用意しておいて、フラッシュメモリ２２２において異常が発生したブロックの代わりに使用するようにしてもよい。キャッシュメモリ２２１からデータを退避する場合に、異常が発生しているブロックのサイズ分だけ、予備ブロックを使用する。これにより、キャッシュデータの退避をより確実に行えるようにする。なお、同図には示されてはいないが、異常が発生したブロックの情報は、フラッシュメモリ２２２内の用意された情報格納用のブロックに格納されている。図１４は、実施例２に係る予備ブロックを説明するための図である。
【００５２】
（２）装置構成等
図１に示した記憶装置２００の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、記憶装置２００の分散・統合の具体的形態は図示のものに限られず、例えば、制御情報管理テーブル２２３と、制御情報管理部２２４と、イレース処理管理部２２５とを機能的あるいは物理的に統合する。
【００５３】
このように、記憶装置２００の全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、記憶装置２００にて行なわれる各処理機能（図３〜５参照）は、その全部または任意の一部が、例えば、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００５４】
（３）データ保存方法
上記の実施例１で説明した記憶装置２００により、以下のようなデータ保存方法が実現される。
【００５５】
すなわち、停電発生時に、第１の記憶部に記憶されているデータを第２の記憶部に退避する停電処理ステップと、停電からの復帰に伴って、第２の記憶部に退避されたデータを第１の記憶部にリストアするとともに、第２の記憶部に記憶されたデータを消去する消去処理を実行する復電処理ステップと、復電処理ステップによる消去処理の実行中に停電が発生した場合には、消去処理を停止させる消去処理停止ステップと（例えば、図４のステップＳ３参照）、消去処理停止ステップにより消去処理が停止された時点で、第２の記憶部が有するテーブル域（制御情報記憶域）の途中まで消去処理が進んでいる場合には、テーブル域の全域を消去するテーブル域消去ステップと（例えば、図４のステップＳ４およびＳ５参照）、テーブル域消去ステップによるテーブル域の全域の消去が完了した後、テーブル域から消去されたデータを第１の記憶部から前記第２の記憶部へ再退避する再退避実行ステップと（例えば、図４のステップＳ６参照）を含んだデータ保存方法が実現される。
【００５６】
（４）データ保存プログラム
また、上記の実施例で説明した記憶装置２００の各種の処理（例えば、図３〜図５等参照）は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、図１５を用いて、上記の実施例で説明した記憶装置２００と同様の機能を有するデータ保存プログラムを実行するコンピュータの一例を説明する。図１５は、データ保存プログラムを実行するコンピュータを示す図である。
【００５７】
同図に示すように、記憶装置２００としてコンピュータ３００は、入出力制御部３１０、ＨＤＤ３２０、ＲＡＭ３３０およびＣＰＵ３４０をバス４００で接続して構成される。
【００５８】
ここで、入出力制御部３１０は、各種情報の入出力を制御する。ＨＤＤ３２０は、ＣＰＵ３４０による各種処理の実行に必要な情報を記憶する。ＲＡＭ３３０は、各種情報を一時的に記憶する。ＣＰＵ３４０は、各種演算処理を実行する。
【００５９】
そして、ＨＤＤ３２０には、図１５に示すように、図１に示した記憶装置２００の各処理部と同様の機能を発揮するデータ保存プログラム３２１と、データ保存用データ３２２とがあらかじめ記憶されている。なお、このデータ保存プログラム３２１を適宜分散させて、ネットワークを介して通信可能に接続された他のコンピュータの記憶部に記憶させておくこともできる。
【００６０】
そして、ＣＰＵ３４０が、このデータ保存プログラム３２１をＨＤＤ３２０から読み出してＲＡＭ３３０に展開することにより、図１５に示すように、データ保存プログラム３２１はデータ保存プロセス３３１として機能するようになる。
【００６１】
すなわち、データ保存プロセス３３１は、データ保存用データ３２２等をＨＤＤ３２０から読み出して、ＲＡＭ３３０において自身に割り当てられた領域に展開し、この展開したデータ等に基づいて各種処理を実行する。なお、データ保存プロセス３３１は、図１に示した記憶装置２００の管理モジュール部２２０（イレース処理管理部２２５およびＦＰＧＡ２２６等）において実行される処理に対応する。
【００６２】
なお、上記したデータ保存プログラム３２１については、必ずしも最初からＨＤＤ３２０に記憶させておく必要はなく、例えば、コンピュータ３００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」、さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ３００に接続される「他のコンピュータ（またはサーバ）」などに各プログラムを記憶させておき、コンピュータ３００がこれらから各プログラムを読み出して実行するようにしてもよい。
【００６３】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００６４】
（付記１）停電発生時に、第１の記憶部に記憶されているデータを第２の記憶部に退避する停電処理部と、
停電からの復帰に伴って、前記第２の記憶部に退避されたデータを前記第１の記憶部にリストアするとともに、前記第２の記憶部に記憶されたデータを消去する消去処理を実行する復電処理部と、
前記復電処理部による前記消去処理の実行中に停電が発生した場合には、前記消去処理を停止させる消去処理停止部と、
前記消去処理停止部により前記消去処理が停止された時点で、前記第２の記憶部が有する制御情報記憶域の途中まで前記消去処理が進んでいる場合には、前記制御情報記憶域の全域を消去する制御情報記憶域消去部と、
前記制御情報記憶域消去部による前記制御情報記憶域の全域の消去が完了した後、前記制御情報記憶域から消去されたデータを前記第１の記憶部から前記第２の記憶部へ再退避する再退避実行部と
を有することを特徴とする記憶装置。
【００６５】
（付記２）前記消去処理停止部により前記消去処理が停止された時点で、前記第２の記憶部が有するキャッシュ域まで前記消去処理が進んでいる場合には、前記再退避実行部は、前記消去処理が停止されるまでの間に前記第２の記憶部から消去されたデータを前記第１の記憶部から前記第２の記憶部へ再退避することを特徴とする付記１に記載の記憶装置。
【００６６】
（付記３）前記再退避実行部による前記再退避が完了した後、停電から復帰した場合には、前記第２の記憶部に再退避されたデータを前記第１の記憶部にリストアするとともに、前記第２の記憶部を全領域に渡って消去する消去処理を実行することを特徴とする付記１または２に記載の記憶装置。
【００６７】
（付記４）停電発生時に、第１の記憶部に記憶されているデータを第２の記憶部に退避する停電処理ステップと、
停電からの復帰に伴って、前記第２の記憶部に退避されたデータを前記第１の記憶部にリストアするとともに、前記第２の記憶部に記憶されたデータを消去する消去処理を実行する復電処理ステップと、
前記復電処理ステップによる前記消去処理の実行中に停電が発生した場合には、前記消去処理を停止させる消去処理停止ステップと、
前記消去処理停止ステップにより前記消去処理が停止された時点で、前記第２の記憶部が有する制御情報記憶域の途中まで前記消去処理が進んでいる場合には、前記制御情報記憶域の全域を消去する制御情報記憶域消去ステップと、
前記制御情報記憶域消去ステップによる前記制御情報記憶域の全域の消去が完了した後、前記制御情報記憶域から消去されたデータを前記第１の記憶部から前記第２の記憶部へ再退避する再退避実行ステップと
を含んだことを特徴とするデータ保存方法。
【００６８】
（付記５）前記消去処理停止ステップにより前記消去処理が停止された時点で、前記第２の記憶部が有するキャッシュ域まで前記消去処理が進んでいる場合には、前記再退避実行ステップは、前記消去処理が停止されるまでの間に前記第２の記憶部から消去されたデータを前記第１の記憶部から前記第２の記憶部へ再退避することを特徴とする付記４に記載のデータ保存方法。
【００６９】
（付記６）停電発生時に、第１の記憶部に記憶されているデータを第２の記憶部に退避する停電処理手順と、
停電からの復帰に伴って、前記第２の記憶部に退避されたデータを前記第１の記憶部にリストアするとともに、前記第２の記憶部に記憶されたデータを消去する消去処理を実行する復電処理手順と、
前記復電処理手順による前記消去処理の実行中に停電が発生した場合には、前記消去処理を停止させる消去処理停止手順と、
前記消去処理停止手順により前記消去処理が停止された時点で、前記第２の記憶部が有する制御情報記憶域の途中まで前記消去処理が進んでいる場合には、前記制御情報記憶域の全域を消去する制御情報記憶域消去手順と、
前記制御情報記憶域消去手順による前記制御情報記憶域の全域の消去が完了した後、前記制御情報記憶域から消去されたデータを前記第１の記憶部から前記第２の記憶部へ再退避する再退避実行手順と
をコンピュータに実行させることを特徴とするデータ保存プログラム。
【００７０】
（付記７）前記消去処理停止手順により前記消去処理が停止された時点で、前記第２の記憶部が有するキャッシュ域まで前記消去処理が進んでいる場合には、前記再退避実行手順は、前記消去処理が停止されるまでの間に前記第２の記憶部から消去されたデータを前記第１の記憶部から前記第２の記憶部へ再退避することを特徴とする付記６に記載のデータ保存プログラム。
【符号の説明】
【００７１】
２００  記憶装置
２１０  ディスク
２２０  管理モジュール部
２２１  キャッシュメモリ
２２２  フラッシュメモリ
２２３  制御情報管理テーブル
２２４  制御情報管理部
２２５  イレース処理管理部
２２６  ＦＰＧＡ
２２６ａ  アドレス情報管理部
２２６ｂ  イレース処理部
３００  コンピュータ
３１０  入出力制御部
３２０  ＨＤＤ（Hard Disk Drive）
３２１  データ保存プログラム
３２２  データ保存用データ
３３０  ＲＡＭ（Random Access Memory）
３３１  データ保存プロセス
３４０  ＣＰＵ（Central Processing Unit）
４００  バス
【図１】
2010271793.tif 000003
【図２】
2010271793.tif 000004
【図３】
2010271793.tif 000005
【図４】
2010271793.tif 000006
【図５】
2010271793.tif 000007
【図６】
2010271793.tif 000008
【図７】
2010271793.tif 000009
【図８】
2010271793.tif 000010
【図９】
2010271793.tif 000011
【図１０】
2010271793.tif 000012
【図１１】
2010271793.tif 000013
【図１２】
2010271793.tif 000014
【図１３】
2010271793.tif 000015
【図１４】
2010271793.tif 000016
【図１５】
2010271793.tif 000017
【図１６】
2010271793.tif 000018
【図１７】
2010271793.tif 000019
【図１８】
2010271793.tif 000020
【図１９】
2010271793.tif 000021
【図２０】
2010271793.tif 000022
【図２１】
2010271793.tif 000023
【図２２】
2010271793.tif 000024
【図２３】
2010271793.tif 000025
【図２４】
2010271793.tif 000026