(57)【要約】【課題】停電処理を実施している途中に復電した場合、無駄な停電処理や復電処理を省くこと。【解決手段】制御装置１００が、記憶部１０１のデータを予備記憶部１０２へ退避させている途中に、復電した場合、停止部１０３がデータの退避を途中で停止させる。そして、領域確保部１０５が、復電時の予備記憶部１０２の全面イレースや予備記憶部１０２への書戻し処理を行うことなく、記憶部１０１のデータに応じた記憶領域を予備記憶部１０２に確保する。【選択図】図１
2011018236.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶する記憶部と、
停電発生時に、前記記憶部に記憶されているデータを予備記憶部に退避させる停電処理部と、
復電時に、前記停電処理部が行うデータの退避を停止させる停止部と、
前記停電処理部の処理を停止させた後に、前記記憶部のデータに応じて、前記データを退避させる退避領域を前記予備記憶部に確保する領域確保部と、
を有する制御装置。
【請求項２】
前記領域確保部が、前記予備記憶部に記憶されたデータを消去し、消去した記憶領域と、前記退避領域に使用されなかった記憶領域とに基づき、前記退避領域を前記予備記憶部に確保したと判定した場合に、前記記憶部のデータを用いて、上位装置とデータ通信を行う請求項１に記載の制御装置。
【請求項３】
前記停止部が前記停電処理部の処理を停止させるまでの間に、前記停電処理部が前記データの退避に使用した前記予備記憶部の記憶領域の位置を停止位置とし、前記停電処理部は、前記停止位置に基づき、前記データの退避を開始する請求項１または２に記載の制御装置。
【請求項４】
制御装置が、
停電発生時に、記憶装置に記憶されているデータを予備記憶装置に退避させる停電処理ステップと、
復電時に、前記データの退避を停止させる停止ステップと、
前記データの退避を停止させた後に、前記記憶装置のデータに応じて、前記データを退避させる退避領域を前記予備記憶装置に確保する領域確保ステップと、
を含む制御方法。
【請求項５】
上位装置からアクセスされる記憶装置と、
前記記憶装置へのアクセスを制御する制御装置とを備えたストレージシステムであって、
前記制御装置は、
前記記憶装置に格納されるデータを記憶する記憶部と、
停電発生時に、前記記憶部に記憶されているデータを予備記憶部に退避させる停電処理部と、
復電時に、前記停電処理部が行うデータの退避を停止させる停止部と、
前記停電処理部の処理を停止させた後に、前記記憶部のデータに応じて、前記データを退避させる退避領域を前記予備記憶部に確保する領域確保部と、
を有する事を特徴とするストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置等に関し、例えば、ＲＡＩＤ装置の停電発生に伴う処理に関する。
【背景技術】
【０００２】
一般に、ＲＡＩＤ（Redundant  Arrays  of  Independent（Inexpensive）Disks）装置では、停電発生時に、キャッシュメモリに記憶されているキャッシュデータをＮＡＮＤ型メモリやコンパクトフラッシュ（登録商標）といった半導体の記憶装置にバックアップを行っている。
【０００３】
具体的に、図を用いて説明する。図７によると、通常時は、ＰＳＵ（Power  Supply  Unit）１２からＲＡＩＤ−ｏｎ−Ｃｈｉｐ（以下、単に「ＲｏＣ」とする）１１に電力が供給され、停電が発生すると、ＲｏＣ１１への電力供給がＰＳＵ１２からＳＣＵ（Super  Capacitor  Unit）１３に切り替わる。
【０００４】
そして、ＲＡＩＤ装置１０は、ＳＣＵ１３から供給される電力を使用して、ＦＰＧＡ（Field  Programmable  Gate  Array）１６を起動し、ＤＩＭＭ（Dual  Inline  Memory  Module）１４のキャッシュデータをＮＡＮＤ１５にバックアップする。
【０００５】
なお、ＤＩＭＭ１４は、ＲＡＩＤ１０のキャッシュメモリに相当し、ＮＡＮＤ１５は、上述したＮＡＮＤ型メモリで、ＤＩＭＭ１４のバックアップ用の記憶装置に相当するものとする。
【０００６】
そして、図７の左側に示すように、まず、ＤＩＭＭ１４に一時的に記憶されているキャッシュデータ（図中の斜線部に相当）の退避が、ＮＡＮＤ１５に開始される（ステップＳ１０）。
【０００７】
そして、ＤＩＭＭ１４に記憶されている全キャッシュデータをＮＡＮＤ１５に退避させることでバックアップが完了する（ステップＳ１１）。なお、このステップＳ１０とステップＳ１１に行われる処理を停電処理とする。
【０００８】
その後、ＲＡＩＤ装置１０の停電が解消し、復電した場合、ＮＡＮＤ１５に退避させた全データをリードして、ＮＡＮＤ１５からＤＩＭＭ１４に全キャッシュデータの書込み処理（復電時の書戻し処理）を行い、停電が発生する前の状態に戻す。
【０００９】
そして、書込み終了後に、ＮＡＮＤ１５に記憶されていた全キャッシュデータを消去するイレース処理（全面イレース）を行う（ステップＳ１２）。このように、停電が解消し、復電時に行われる処理を以下、復電処理とする。
【００１０】
なお、論理ドライブ単位でバックアップ動作を中断し、中断時の不揮発性記憶装置のデータ更新を完了することをトリガーとして、バックアップ動作を終了する技術（例えば、特許文献１参照）や、不揮発性記憶装置のデータ消去を行うことなく、書込み処理を行うことを可能としたデータの格納方法（例えば、特許文献２参照）や、外部電力の障害によるキャッシュメモリの内容保持の長期化や復旧時間を短縮させる技術（例えば、特許文献３参照）が知られている。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開平５−１４３２４８号公報
【特許文献２】特開２００２−３０４３２０号公報
【特許文献３】特開２００６−１７２３５５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、上述した従来の技術では、停電処理を実施している途中に復電した場合でも、無駄な停電処理や復電処理が実施されるという問題があった。
【００１３】
例えば、キャッシュデータをＮＡＮＤ型メモリに退避させている途中で、復電した場合でも、停電処理を途中で停止することなく、全キャッシュデータをＮＡＮＤ型メモリに退避させてから復電処理を行っていた。
【００１４】
この場合、停電後は、ＳＣＵからＲｏＣに電力が供給されており、キャッシュに記憶されていたキャッシュデータは、消失することなく、キャッシュ上に残っていることから、
停電処理は必要性に乏しい。
【００１５】
さらに、復電時の停電処理が必要性に乏しいことからも、当然に、停電処理の後に実施される復電時の書戻し処理や全面イレースといった復電処理も、必要性に乏しいことがいえる。
【００１６】
開示の技術は、上記に鑑みてなされたものであって、停電処理を実施している途中に復電した場合に、無駄な停電処理や復電処理を省くことができる制御装置、制御方法およびストレージシステムを提供することを目的とする。
【課題を解決するための手段】
【００１７】
本願の開示する制御装置は、データを記憶する記憶部と、停電発生時に、前記記憶部に記憶されているデータを予備記憶部に退避させる停電処理部と、復電時に、前記停電処理部が行うデータの退避を停止させる停止部と、前記停電処理部の処理を停止させた後に、前記記憶部のデータに応じて、前記データを退避させる退避領域を前記予備記憶部に確保する領域確保部とを備えたことを要件とする。
【発明の効果】
【００１８】
本願の開示する制御装置によれば、停電処理を実施している途中に復電した場合に、無駄な停電処理や復電処理を省くことができる。
【図面の簡単な説明】
【００１９】
【図１】図１は、実施例１の制御装置の構成を示す機能ブロック図である。
【図２】図２は、実施例２のＲＡＩＤ装置の構成を示す機能ブロック図である。
【図３】図３は、実施例２のＮＡＮＤ型メモリのデータ構造の一例を示す図である。
【図４】図４は、実施例２に示すＤＩＭＭのデータ構造の一例を示す図である。
【図５】図５は、実施例２のＲＡＩＤ装置の処理を説明するための図である。
【図６】図６は、実施例２のＲＡＩＤ装置の処理を示すフローチャートである。
【図７】図７は、従来技術を説明するための図である。
【発明を実施するための形態】
【００２０】
以下に、本願の開示する制御装置、制御方法およびストレージシステムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００２１】
図１は、実施例１の制御装置の構成を示す機能ブロック図である。図１の制御装置１００は、記憶部のデータを予備記憶部への退避させている途中で、復電した場合、復電時の全面イレースや書戻し処理を行うことなく、記憶部のデータに応じた記憶領域を予備記憶部に確保する。
【００２２】
そして、制御装置１００は、記憶部１０１と、予備記憶部１０２と、停止部１０３と、停電処理部１０４と、領域確保部１０５とを有する。
【００２３】
記憶部１０１は、ユーザデータを一時的に記憶する記憶部である。予備記憶部１０２は、停電発生時に、記憶部１０１に記憶されているユーザデータがバックアップされる記憶部である。
【００２４】
停止部１０３は、停電が解消し、復電した場合に、後述する停電処理部の処理を停止させる処理部である。停電処理部１０４は、停電発生時に、記憶部１０１に記憶されているユーザデータを予備記憶部１０２に退避する処理部である。
【００２５】
領域確保部１０５は、前記停電処理部の処理を停止させた後に、記憶部１０１のユーザデータに応じて、ユーザデータを退避させる退避領域を予備記憶部１０２に確保する処理部である。
【００２６】
上述してきたように、本実施例１に示した制御装置１００によると、停電処理を実施している途中に復電した場合に、無駄な停電処理や復電処理を省くことができる。
【実施例２】
【００２７】
次に、実施例２に示すＲＡＩＤ装置の概要について説明する。実施例２に示すＲＡＩＤ装置２００は、上位装置（例えば、ホストコンピュータ、以下、ホストとする）からの要求に応じて、ＨＤＤ（Hard  Disk  Drive）に記憶されている各種ユーザデータやプログラムのやり取りを「ライトバック」もしくは「ライトスルー」と呼ばれる方式にて行う。
【００２８】
さらに、停電発生時には、キャッシュメモリに記憶されているユーザデータをＮＡＮＤ型メモリに退避させる停電処理を行い、退避させている途中に復電した場合は、停電処理を中止させる。そして、キャッシュメモリの全ユーザデータに対する書戻し処理や、全面イレースを実施することなく、「装置Ｒｅａｄｙ」の状態にする。
【００２９】
まず、上述した「ライトバック」、「ライトスルー」、「装置Ｒｅａｄｙ」について以下説明する。ライトバックとは、ＨＤＤへの書込みを遅らせる方式で、この方式を用いてユーザデータの書込み処理を行い、アクセス性能を向上させている。
【００３０】
具体的には、まず、ホストからユーザデータの書込み命令を受け付けた場合、キャッシュメモリ（以下、キャッシュとする）にユーザデータを記憶した時点で、書込み処理が完了した旨をホストコンピュータへ通知する。その後、所定条件を満たした時点で、キャッシュに記憶したユーザデータをＨＤＤに記憶させる。
【００３１】
また、キャッシュに記憶されたユーザデータの読込み命令を受け付けた場合に、ＲＡＩＤ装置２００は、ＨＤＤに記憶されているユーザデータをリードせずに、キャッシュに記憶されているユーザデータを読込んで、ホストに返す。
【００３２】
このように、ＲＡＩＤ装置２００は、ホストから、ユーザデータの書込みや、読込み命令を受け付けた場合に、キャッシュを用いて処理することで、ユーザデータの読込み・書込みが高速に処理されることになる。
【００３３】
一方、「ライトスルー」とは、書込み命令を受付けた場合、ＨＤＤまでユーザデータを書込んでから完了通知をホストに応答し、一方、読込み命令を受付けた場合には、ＨＤＤのユーザデータを読込んでから、ホストに返すことから、ライトバックと比較すると、ホストからみたＲＡＩＤ装置２００のレスポンスは低速となる。
【００３４】
「装置Ｒｅａｄｙ」とは、キャッシュに記憶されているユーザデータを記憶するデータ領域が、ＮＡＮＤ型メモリに確保された状態を示し、この場合、停電が発生しても、キャッシュデータの消失を防ぐことが可能となる。
【００３５】
したがって、ＲＡＩＤ装置２００は、装置Ｒｅａｄｙの状態になれば、上述したライトバックにて、ユーザデータのやり取りを行う。一方、キャッシュに記憶されているユーザデータを記憶するデータ領域が、ＮＡＮＤ型メモリに確保されていない場合は、停電発生時に、キャッシュデータの消失を招く恐れがあることから、ライトスルーにて、ユーザデータのやり取りを行う。
【００３６】
次に、実施例２に示すＲＡＩＤ装置２００の構成について、図を用いて説明する。図２は、実施例２のＲＡＩＤ装置の構成を示す機能ブロック図である。図２のＲＡＩＤ装置２００は、本実施例に密接に関連する機能部として、ＣＭ（Controller  Module）２０１と、ＰＳＵ（Power  Supply  Unit）２０２と、ＨＤＤ（Hard  Disk  Drive）２０３ａ〜ＨＤＤ２０３ｚとを有する。
【００３７】
ＣＭ２０１は、キャッシュの管理や、ホストとのインターフェース制御や、各ＨＤＤの制御を行う制御部で、ＮＡＮＤ２１０と、ＤＩＭＭ（Dual  Inline  Memory  Module）２１１と、ＦＰＧＡ（Field  Programmable  Gate  Array）２１２と、ＲｏＣ（ＲＡＩＤ−ｏｎ−Ｃｈｉｐ）２１３と、ＳＣＵ２１４と、ＰＬＤ（Programmable  Logic  Device）２１５と、Ｅｘｐ（エキスパンダ）２１６とを有する。
【００３８】
ＮＡＮＤ２１０は、ＮＡＮＤ型メモリで、ＲＡＩＤ装置２００に停電が発生した場合に、ＤＩＭＭ２１１に記憶されているユーザデータ（以下、キャッシュデータとする）がバックアップされる。
【００３９】
このＮＡＮＤ２１０のデータ構造について具体的に図を用いて説明する。図３は、実施例２のＮＡＮＤ型メモリのデータ構造の一例を示す図である。図３に示したＮＡＮＤ２１０は、ブロック単位でアクセスされる構造を有することから、ランダムアクセスを許可せず、シーケンシャルライトにて、キャッシュデータがブロックごとに書込まれる。
【００４０】
このブロックとは、ＤＩＭＭ２１１のキャッシュデータが記憶されるデータ領域を示し、ＮＡＮＤ２１０の物理的な分割単位を示すもので、このブロックごとに、キャッシュデータが書込まれる。
【００４１】
そして、このブロックは、メイン領域とスペア領域を有し、メイン領域は、ユーザデータが記憶される領域を示し、スペア領域は、ＥＣＣ（error  check and  correct）やデバイス出荷時の不良箇所などを示すデータが記憶される領域を示す。
【００４２】
そして、図３に示したＮＡＮＤ２１０は、ＤＩＭＭ２１１のバックアップ領域として、ブロック１からブロック１０を有する。なお、ブロック１０以降のブロックには、ＮＡＮＤ２１０の不良ブロックを示すテーブル等を記憶するブロックを有するものとし、詳細なデータ構造については省略するものとする。
【００４３】
また、「不良ブロック」とは、ＮＡＮＤ２１０が消耗により、書込みが規定時間内に完了しないブロックを示し、不良ブロックは、キャッシュデータのバックアップに使用されない。なお、説明の便宜上、ブロック１からブロック１０には、不良ブロックは含まれないものとする。
【００４４】
次に、図２に示したＤＩＭＭ２１１について説明する。図４は、実施例２に示すＤＩＭＭのデータ構造の一例を示す図である。図４に示したＤＩＭＭ２１１は、ホストとＨＤＤ２０３ａ〜２０３ｚとの間で転送されるユーザデータを一時的に記憶するキャッシュメモリである。
【００４５】
そして、ＤＩＭＭ２１１は、上述したユーザデータをキャッシュデータとして一時的に記憶するテーブル１〜テーブル８を複数有している。図４の各テーブルは、４Ｍｂｙｔｅに相当するキャッシュデータを保存する容量を有し、さらに、このキャッシュデータは６４ｋのデータ長で、ＲｏＣ２１３に管理されるものとする。
【００４６】
また、キャッシュデータの一例としては、リードデータとライトデータが挙げられる。「リードデータ」とは、既に、ＨＤＤ２０３ａ〜ＨＤＤ２０３ｚに記憶されているユーザデータを示している。
【００４７】
したがって、ホストからＲＡＩＤ装置２００にユーザデータの読込み要求があった場合に、ＲｏＣ２１３が、ＤＩＭＭ２１１を検索し、読込み要求に対応するキャッシュデータを取得した場合は、取得したキャッシュデータをホストに出力する。
【００４８】
一方、ＤＩＭＭ２１１からキャッシュデータを取得しなかった場合、ＲｏＣ２１３は、ＨＤＤ２０３ａ等から、読込み要求に対応するユーザデータを取得し、取得したユーザデータをＤＩＭＭ２１１に複製する。
【００４９】
一方、「ライトデータ」とは、ホストからＲＡＩＤ装置２００へ書込み要求があったユーザデータで、所定の条件を満たした後、各ＨＤＤに書込まれる。特に、このライトデータは、ＨＤＤ２０３ａ〜２０３ｚのいずれのＨＤＤにも記憶されていないユーザデータを示す。
【００５０】
そして、図４に示したＤＩＭＭ２１１は、例えば、テーブル１からテーブル８に、リードデータやライトデータがランダムに記憶されているものとする。
【００５１】
また、ＤＩＭＭ２１１のキャッシュデータを記憶するデータ領域が、ＮＡＮＤ２１０に確保されている場合、ＲＡＩＤ装置２００は、ライトバックにてホストとユーザデータのやり取りを行うものとし、装置Ｒｅａｄｙの状態であることがいえる。
【００５２】
次に、図２の説明に戻り、ＦＰＧＡ２１２について説明する。ＦＰＧＡ２１２は、所定のプログラムによって制御される集積回路を示し、ＤＭＡ（Direct  Memory  Access）エンジンを有する。このＤＭＡは、ＲｏＣ２１３の命令によって、ハードウェア的にデータを転送する。
【００５３】
このＤＭＡとは、ＣＰＵ(Central  Processing  Unit)を介さずに装置とＲＡＭ（Random  Access  Memory）間でデータ転送を行う方式を示し、本実施例では、停電時にキャッシュデータをＮＡＮＤ２１０に退避・復元するために必要な機能を付加したＤＭＡをＦＰＧＡ２１２に搭載している。
【００５４】
そして、本実施例では、一例として、ＴＲＮ２１２ａと、ＲＣＶ２１２ｂと、ＵＣＥ２１２ｃとを有する。ＴＲＮ２１２ａは、停電時に、キャッシュデータを退避するためのライトＤＭＡを示し、ＲＣＶ２１２ｂは、復電時に、退避データをＤＩＭＭ２１１に戻すためのリードＤＭＡを示し、ＵＣＥ２１２ｃは、ＮＡＮＤ２１０に書込まれたキャッシュデータの消去（イレース）やチェックを行うためのコマンド発行ＤＭＡを示す。
【００５５】
ＲｏＣ２１３は、ＣＭ２０１を全体制御する制御装置であり、ＤＩＭＭ２１１のキャッシュデータのバックアップ処理や、ホストとのインターフェース制御や、ＤＩＭＭ２１１の管理を行うファームウェアを有する。
【００５６】
ＲｏＣ２１３のファームウェアは、例えば、ＤＩＭＭ２１１のテーブル１〜テーブル８にキャッシュデータが記憶されている場合、このＤＩＭＭ２１１のバックアップとして、ＮＡＮＤ２１０に８ブロック以上のデータ領域が必要と判定する。
【００５７】
そして、ＲｏＣ２１３のファームウェアは、ＮＡＮＤ２１０のバックアップに使用されなかったブロックと、イレースしたブロックとを合わせたブロックが、ＤＩＭＭ２１１のキャッシュデータが示すデータ領域を超えたと判定した場合に、装置Ｒｅａｄｙとする。
【００５８】
ＳＣＵ２１４は、大容量のコンデンサを示し、ＲＡＩＤ装置２００に停電が発生した際に、バッテリーフリーで、ＲｏＣ２１３に電力を供給する。なお、充電された電力を供給するため、ＰＳＵ２０２とは異なり、供給する電力には、限りがあるものとする。
【００５９】
ＰＬＤ２１５は、ＲＡＩＤ装置２００に停電が発生した場合に、停電を検出し、停電が発生した旨を示す停電情報をＲｏＣ２１３に通知する装置である。さらに、停電が解消し、復電した場合、復電した旨を示す復電情報をＲｏＣ２１３に通知する。
【００６０】
Ｅｘｐ（エキスパンダ）２１６は、ＲｏＣ２１３とＨＤＤ２０３ａ〜ＨＤＤ２０３ｚとの間で送受信されるユーザデータを中継する処理部である。
【００６１】
ＰＳＵ（Power  Supply  Unit）２０２は、ＲＡＩＤ装置２００に停電が発生していない場合、ＣＭ２０１へ電力を供給する装置である。また、停電が発生した場合、ＲＡＩＤ装置２００への電力の供給を停止する。なお、上述したように、この場合、ＳＣＵ２１４の放電により、ＲＡＩＤ装置２００へ電力が供給される。
【００６２】
ＨＤＤ２０３ａ〜ＨＤＤ２０３ｚは、ＲＡＩＤグループを構成し、高速性や安全性のレベルに応じて、ユーザデータが振り分けられており、ユーザデータやプログラムを記憶する記憶媒体（ディスク）等を有する。
【００６３】
次に、ＲＡＩＤ装置２００に停電が発生し、ＲＡＩＤ装置２００が「装置Ｒｅａｄｙ」になるまでに実施される処理と、その後、再度の停電が発生した場合に行われる処理について説明する。
【００６４】
まず、ＲＡＩＤ装置２００に停電が発生すると、ＰＳＵ２０２からＣＭ２０１への電力供給が停止するとともに、ＲｏＣ２１３に、ＳＣＵ２１４による電力が供給される。そして、ＰＬＤ２１５が、停電情報を検出し、検出した停電情報をＲｏＣ２１３に通知する。
【００６５】
そして、ＲｏＣ２１３のファームウェアは、停電情報をＰＬＤ２１５から受け取り、受け取った停電情報をＦＰＧＡ２１２に通知する。その後、ＦＰＧＡ２１２は、ＴＲＮ２１２ａを起動させる。そして、ＴＲＮ２１２ａは、ＤＩＭＭ２１１のキャッシュデータのバックアップをＮＡＮＤ２１０へ開始する。
【００６６】
そして、バックアップの途中に復電した場合、ＰＬＤ２１５は、復電情報をＦＰＧＡ２１２に通知し、ＦＰＧＡ２１２は、ＴＲＮ２１２ａが行っているバックアップを途中で停止させる。
【００６７】
さらに、バックアップされた全キャッシュデータの書戻しや、全面イレースをすることなく、ＤＩＭＭ２１１をバックアップするデータ領域をＮＡＮＤ２１０に確保したとＲｏＣ２１３のファームウェアが判定したら、ＲＡＩＤ装置２００を「装置Ｒｅａｄｙ」の状態にする。
【００６８】
上述した処理について具体的に図を用いて説明する。図５は、実施例２のＲＡＩＤ装置の処理を説明するための図である。図５に示したＤＩＭＭ２１１は、図４に示したＤＩＭＭ２１１に対応し、テーブル１〜テーブル８には、いずれもキャッシュデータが記憶されているものとする。
【００６９】
また、ＮＡＮＤ２１０は、図３に示したＮＡＮＤ２１０に対応し、ブロック１〜ブロック１０は、いずれも不良ブロックでないものとし、ブロック１０をＮＡＮＤ２１０の物理的な最後のアドレスとする。
【００７０】
そして、ＲＡＩＤ装置２００を装置Ｒｅａｄｙにするには、ＤＩＭＭ２１１に記憶されているキャッシュデータを記憶するデータ領域が、ＮＡＮＤ２１０に確保されればよく、この場合、ブロック１〜ブロック８がバックアップのデータ領域に確保されれば良いものとする。
【００７１】
まず、停電が発生すると、ＴＲＮ２１２ａがＤＩＭＭ２１１のキャッシュデータを、テーブル番号順に応じ、ＮＡＮＤ２１０にバックアップを開始する（ステップＳ５０）。このステップＳ５０では、テーブル１〜テーブル３のキャッシュデータがブロック１〜ブロック３に書込まれたものとする。
【００７２】
その後、テーブル４のキャッシュデータが、ブロック４まで書込まれた時に、ＲＡＩＤ装置２００が復電した場合、ＴＲＮ２１２ａは、ＮＡＮＤ２１０に行われているバックアップを停止する。そして、ＲｏＣ２１３のファームウェアがブロック４を識別するＮＡＮＤアドレス（例えば、アドレス４）を保持する（ステップＳ５１）。
【００７３】
そして、ＵＣＥ２１２ｃが、ＮＡＮＤ２１０のブロック１に記憶されているキャッシュデータのイレースを開始する。そして、ＲｏＣ２１３のファームウェアは、ブロック１、２に記憶されているキャッシュデータがイレースされた際に、ＤＩＭＭ２１１に記憶されているキャッシュデータのバックアップ領域を確保したと判定し、ＲＡＩＤ装置２００を装置Ｒｅａｄｙにする（ステップＳ５２）。
【００７４】
これは、ＤＩＭＭ２１１には、キャッシュデータがテーブル１〜８に記憶されており、このキャッシュデータに対応するバックアップ領域として、ＮＡＮＤフラッシュ２１０に
計８ブロックが確保されれば良いからである。
【００７５】
したがって、ステップＳ５２において、ブロック１とブロック２のイレースが行われると、イレースしたブロック１、２と、ステップ５０でバックアップに使用されなかったブロック５〜１０とを合わせると、計８ブロックとなり、キャッシュデータに対応するバックアップ領域が確保されたとＲｏＣ２１３のファームウェアが判定し、ＲＡＩＤ装置２００を装置Ｒｅａｄｙにする。
【００７６】
そして、再び、ＲＡＩＤ装置２００に停電が発生すると、ＲｏＣ２１３は、ステップＳ５２にて保持していたアドレス４を参照し、アドレス５に対応するブロック５から、再度、キャッシュデータのバックアップを開始するようにＦＰＧＡ２１２に命令する。
【００７７】
そして、ＴＲＮ２１２ａが、テーブル１のキャッシュデータをブロック５に書込み、テーブル２のキャッシュデータをブロック６に書込む。その後、テーブル３、４、５をブロック７、８、９に書込みを行う。
【００７８】
そして、ＴＲＮ２１２ａが、テーブル６のキャッシュデータをブロック６に書込み、その後、ブロック１に移行して、テーブル７のキャッシュデータの書込みを行う（ステップＳ５３）。
【００７９】
上述したように、ＮＡＮＤ２１０の先頭アドレスではなく、バックアップを停止したアドレスから、キャッシュデータの書込みを行い、そして、ＮＡＮＤ２１０の物理的な最後のアドレスにキャッシュデータの書込みが行われた後、先頭のアドレスに移行して、書込み処理を行うことをラップアラウンド処理とする。
【００８０】
このように、ＲＡＩＤ装置２００は、停電処理の途中に復電した場合、キャッシュデータの退避を途中で停止させる。さらに、復電時の書戻し処理を実施しないで、ＮＡＮＤ２１０の部分イレースを実施する。
【００８１】
そして、部分イレースしたデータ領域と、停電処理時に使用されなかったデータ領域とを合わせたデータ領域が、ＤＩＭＭ２１１に記憶されているキャッシュデータが有するデータ領域を超えた場合に、ＲｏＣ２１３は、バックアップ領域を確保したと判定し、ＲＡＩＤ装置２００を装置Ｒｅａｄｙにする。
【００８２】
また、再度の停電時には、ラップアラウンド処理を行うことで、キャッシュデータのバックアップを行う。
【００８３】
なお、これまで、ＲＡＩＤ装置２００を装置Ｒｅａｄｙにする条件として、ＤＩＭＭ２１１に記憶されているキャッシュデータのデータ領域が超えた場合を例に挙げて説明してきたが、ＤＩＭＭ２１１がキャッシュデータを記憶する物理的な全データ領域が超えた場合に、ＲＡＩＤ装置２００を装置Ｒｅａｄｙにしても良いし、また、ＲＡＩＤ装置２００の管理者が、あらかじめ定めたデータ領域を超えた場合に、ＲＡＩＤ装置２００を装置Ｒｅａｄｙにしても良いものとする。
【００８４】
次に、実施例２のＲＡＩＤ装置２００の処理について説明する。図６は、実施例２のＲＡＩＤ装置の処理を示すフローチャートである。まず、ＲＡＩＤ装置２００に停電が発生する（ステップＳ２００）。
【００８５】
そして、ＤＩＭＭ２１１のキャッシュデータをＮＡＮＤ２１０にバックアップする（ステップＳ２０１）。その後、ステップＳ２０１にて開始したバックアップの途中に、復電した場合（ステップＳ２０２）、バックアップを停止する（ステップＳ２０３）。
【００８６】
そして、ＦＰＧＡ２１２がＮＡＮＤ２１１に書込まれたキャッシュデータのイレースを行う（ステップＳ２０４）。そして、ステップＳ２０４にてイレースしたデータ領域と、ステップＳ２０１でバックアップに使用されなかったデータ領域を合わせたデータ領域が、ＤＩＭＭ２１１のキャッシュデータを記憶するデータ領域を超えた場合、バックアップのデータ領域を確保したと判定し（ステップＳ２０５、Ｙｅｓ）、ＲＡＩＤ装置２００を装置Ｒｅａｄｙにする（ステップＳ２０６）。
【００８７】
そして、再度の停電がＲＡＩＤ装置２００に発生した場合（ステップＳ２０７）、ラップアラウンド処理を行う（ステップＳ２０８）。その後、復電した場合（ステップＳ２０９）、ＲＡＩＤ装置２００は、通常動作に移行する。
【００８８】
なお、ステップＳ２０４にてイレースしたデータ領域と、ステップＳ２０１でバックアップに使用されなかったデータ領域とを合わせたデータ領域が、ＤＩＭＭ２１１のキャッシュデータを記憶するデータ領域に満たない場合（ステップＳ２０５、Ｎｏ）、ステップＳ２０４へ移行する。
【００８９】
このフローチャートによれば、停電処理の途中に復電した場合、キャッシュデータの退避を途中で停止させることで、無駄な停電処理を省くことができる。そして、退避させたキャッシュデータをＤＩＭＭ２１１に書戻すことなく、イレース処理を部分的に実施することで、無駄な復電処理を省くことができる。
【００９０】
また、ＲｏＣ２１３のファームウェアは、ＮＡＮＤ２１０が有するバックアップのデータ領域が、ＤＩＭＭ２１１に記憶されたキャッシュデータのデータ領域を満たしていない場合、停電時にキャッシュデータを消失する恐れがあるので、ＲＡＩＤ装置２００を装置Ｒｅａｄｙにしない。
【００９１】
したがって、ＲｏＣ２１３のファームウェアは、イレースしたデータ領域と、バックアップに使用されなかったデータ領域を合わせたデータ領域が、キャッシュデータのバックアップに使用されるデータ領域を超えた場合、バックアップのデータ領域を確保したと判定し、ＲＡＩＤ装置２００を装置Ｒｅａｄｙにする。
【００９２】
したがって、復電時の書戻し処理や、全面イレース処理を実施するとなく、ＲＡＩＤ２００を装置Ｒｅａｄｙにすることができ、ＲＡＩＤ装置２００の装置Ｒｅａｄｙに要する処理時間を短縮することができる。
【００９３】
上述してきたように、本実施例２に示したＲＡＩＤ装置２００は、停電処理を実施している途中に復電した場合に、無駄な停電処理や復電処理を省くことができる。
【符号の説明】
【００９４】
１０、２００  ＲＡＩＤ装置
１１、２１３  ＲｏＣ
１２、２０２  ＰＳＵ
１３、２１４  ＳＣＵ
１４、２１１  ＤＩＭＭ
１５、２１０  ＮＡＮＤ
１６、２１２  ＦＰＧＡ
１７、２１６  Ｅｘｐ
１８ａ〜１８ｎ、２０３ａ〜２０３ｚ  ＨＤＤ
１００  制御装置
１０１  記憶部
１０２  予備記憶部
１０３  停止部
１０４  停電処理部
１０５  領域確保部
２０１  ＣＭ
２１２ａ  ＴＲＮ
２１２ｂ  ＲＣＶ
２１２ｃ  ＵＣＥ
２１５  ＰＬＤ
【図１】
2011018236.tif 000003
【図２】
2011018236.tif 000004
【図３】
2011018236.tif 000005
【図４】
2011018236.tif 000006
【図５】
2011018236.tif 000007
【図６】
2011018236.tif 000008
【図７】
2011018236.tif 000009