(57)【要約】【課題】キャッシュデータのバックアップ処理に要する処理時間を短縮すること。【解決手段】記憶部１０１に記憶されているキャッシュデータの中で、予備記憶部１０２に退避させるキャッシュデータと、退避させないキャッシュデータを管理する判定テーブル１０３を設け、ＲＡＩＤ装置に停電が発生した場合に、停電処理部１０４が、判定テーブル１０３に基づいて、退避させるキャッシュデータを記憶部１０１から予備記憶部１０２に退避させる。【選択図】図１
2011018241.tif 000002
【特許請求の範囲】
【請求項１】
記憶部に記憶されているデータの中で、予備記憶部に退避させるデータと、退避させないデータを管理する判定テーブルと、
停電発生時に、前記判定テーブルに基づき、退避させるデータを前記記憶部から前記予備記憶部に退避させる停電処理部と
を有する退避処理装置。
【請求項２】
前記判定テーブルが、前記記憶部に記憶されているデータを、ＨＤＤへ書込対象となるライトデータもしくは、ＨＤＤから読込んだリードデータかを管理し、前記停電処理部は、前記判定テーブルに基づき、前記ライトデータを前記予備記憶部に退避させる請求項１に記載の退避処理装置。
【請求項３】
退避処理装置が、
記憶装置に記憶されているデータの中で、予備記憶装置に退避させるデータと、退避させないデータを管理する判定テーブルを有し、
前記データを前記記憶装置に記憶する記憶ステップと、
停電発生時に、前記判定テーブルに基づき、退避させるデータを前記記憶装置から前記予備記憶装置に退避させる停電処理ステップと
を含む退避処理方法。
【請求項４】
前記判定テーブルが、前記記憶装置に記憶されているデータを、ＨＤＤへ書込対象となるライトデータもしくは、ＨＤＤから読込んだリードデータかを管理し、前記停電処理ステップは、前記判定テーブルに基づき、前記ライトデータを前記予備記憶装置に退避させる請求項３に記載の退避処理方法。
【請求項５】
上位装置からアクセスされる記憶装置と、
前記記憶装置へのアクセスを制御する制御装置とを備えたストレージシステムであって、
前記制御装置は
データが記憶される記憶部と、
前記記憶部に記憶されたデータの退避先となる予備記憶部と、
前記記憶部に記憶されているデータの中で、前記予備記憶部に退避させるデータと、退避させないデータを管理する判定テーブルと、
停電発生時に、前記判定テーブルに基づき、退避させるデータを前記記憶部から前記予備記憶部に退避させる停電処理部と
を有する事を特徴とするストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、退避処理装置に関し、例えば、ＲＡＩＤ装置の停電発生に伴う、バックアップ処理に要する処理時間を短縮する退避処理装置等に関する。
【背景技術】
【０００２】
複数のＨＤＤ（Hard  Disk  Drive）を組み合わせ、高速・大容量・高信頼性に優れたディスクシステムを構築する技術としてＲＡＩＤ（Redundant  Arrays  of  Independent（Inexpensive）Disks）が広く知られている。
【０００３】
一般に、ＲＡＩＤ装置は、その上位装置（例えば、ホストコンピュータ、以下、ホストとする）からのデータアクセスに要する処理時間を短縮するために、キャッシュメモリを用いたユーザデータのリード・ライトが行われている。
【０００４】
このキャッシュメモリには、通常、ＤＲＡＭ（Dynamic  Random  Access  Memory）・ＳＲＡＭ（Static  Random  Access  Memory）といった半導体の記憶装置が利用されている。
【０００５】
そして、ＲＡＩＤ装置は、ホストからユーザデータのリード要求を受け付けた場合に、キャッシュメモリ（以下、単にキャッシュとする）からユーザデータを検索し、リード要求に対応するユーザデータを取得したら、取得したキャッシュデータをホストに通知する。
【０００６】
一方、キャッシュからユーザデータを取得しなかった場合、ハードディスク装置（以下、単にディスクとする）に記憶されているユーザデータを取得し、キャッシュに書込みを行う。
【０００７】
また、ユーザデータのライト要求を受け付けた場合には、キャッシュにユーザデータを記憶した時点で、ライト処理が完了した旨をホストへ通知する。その後、所定の条件を満たした時点で、キャッシュに記憶したユーザデータをディスクに記憶する。
【０００８】
ところで、上述したキャッシュは、揮発性の半導体の記憶装置が利用されていることから、キャッシュへの電源供給がなくなれば、キャッシュのユーザデータが消去されてしまう。このため、停電発生時には、キャッシュ上の全データを不揮発性の記憶装置(例：ＮＡＮＤフラッシュ、コンパクトフラッシュ（登録商標）等)に退避させ、バックアップする必要がある。
【０００９】
例えば、図１２に示すように、停電発生時に、ＲＡＩＤ装置２０は、キャッシュ２４に記憶されているキャッシュデータ２４ａを、リードデータおよびライトデータを区別することなく、ＮＡＮＤフラッシュ２３に退避させる。
【００１０】
また、停電が発生すると、ＲＡＩＤ装置２０への電力供給が、ＰＳＵ（Power  Supply  Unit）２８からＳＣＵ（Super  Capacitor  Unit）２７に切替えられ、ＲＡＩＤ装置２０は、ＳＣＵ２７に蓄えられている電力を使用して、上述した退避処理を行う。
【００１１】
なお、停電発生時のライトバック（ライトデータのハードディスクへの書込み）処理を効率的に行うとともに、停電時の省電力化を図る技術（例えば、特許文献１参照）や、ディスクのアクセス情報に基づき、論理ディスク装置における物理ディスク装置への再配置を行う技術が知られている（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開平９−３３０２７７号公報
【特許文献２】特開２００６−５９３７４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
しかしながら、上述した従来の技術では、全てのキャッシュデータをバックアップの対象としており、バックアップ処理に、必要以上の処理時間が掛かってしまう場合があった。
【００１４】
例えば、図１２に示したキャッシュ２４に、膨大なキャッシュデータ２４ａが記憶されている状況で、ＲＡＩＤ装置２０に停電が発生した場合、バックアップ処理に、必要以上の処理時間が掛かってしまう場合があった。
【００１５】
この場合、ＳＣＵ２７の電力供給時間内に、キャッシュデータ２４ａのＮＡＮＤフラッシュ２３への退避が完了せず、一部のキャッシュデータが消失してしまう場合がある。
【００１６】
開示の技術は、上記に鑑みてなされたものであって、バックアップに要する処理時間を短縮する退避処理装置等を提供することを目的とする。
【課題を解決するための手段】
【００１７】
本願の開示する退避処理装置は、記憶部に記憶されているデータの中で、予備記憶部に退避させるデータと、退避させないデータを管理する判定テーブルと、停電発生時に、前記判定テーブルに基づき、前記データを前記記憶部から前記予備記憶部に退避させる停電処理部とを備えたことを要件とする。
【発明の効果】
【００１８】
本願の開示する退避処理装置によれば、停電発生におけるキャッシュメモリのバックアップに要する処理時間を短縮し、バックアップ速度を向上させるという効果を奏する。
【図面の簡単な説明】
【００１９】
【図１】図１は、実施例１の退避処理装置の構成を示す機能ブロック図である。
【図２】図２は、実施例２に示すＲＡＩＤ装置の構成を示す機能ブロック図である。
【図３】図３は、実施例２のＮＡＮＤフラッシュのデータ構造の一例を示す図である。
【図４】図４は、実施例２に示すキャッシュメモリのデータ構造の一例を示す図である。
【図５】図５は、実施例２に示すＦＰＧＡの構成を示す機能ブロック図である。
【図６】図６は、実施例２に示すＳｋｉｐ管理テーブルのデータ構造の一例を示す図である。
【図７】図７は、実施例２に示すＴＢＭのデータ構造の一例を示す図である。
【図８】図８は、バックアップの処理を説明するための図である。
【図９】図９は、実施例２のＲｏＣの処理を説明するための図である。
【図１０】図１０は、停電時の処理を示すフローチャートである。
【図１１】図１１は、実施例２のＲＡＩＤ装置の処理を示すフローチャートである。
【図１２】図１２は、従来技術を説明するための図である。
【発明を実施するための形態】
【００２０】
以下に、本願の開示する退避処理装置、退避処理方法およびストレージシステムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００２１】
図１は、実施例１の退避処理装置の構成を示す機能ブロック図である。図１に示した退避処理装置１００は、停電発生時に、バックアップに必要とされるデータを退避させる装置で、記憶部１０１と、予備記憶部１０２と、判定テーブル１０３と、停電処理部１０４とを有する。
【００２２】
記憶部１０１は、上位装置とのデータ通信に使用されるキャッシュデータを記憶する記憶部である。予備記憶部１０２は、停電発生時に、記憶部１０１に記憶されているキャッシュデータがバックアップされる記憶部である。
【００２３】
判定テーブル１０３は、停電発生時に、記憶部１０１に記憶されているキャッシュデータの中で、予備記憶部１０２に退避させるデータと、退避させないデータを管理するテーブルである。
【００２４】
停電処理部１０４は、判定テーブル１０３に基づいて、キャッシュデータを記憶部１０１から予備記憶部１０２退避させる処理部である。
【００２５】
本実施例１に示した退避処理装置１００によれば、停電発生におけるキャッシュメモリのバックアップに要する処理時間を短縮し、バックアップ速度を向上させることができる。
【実施例２】
【００２６】
次に、実施例２に示すＲＡＩＤ装置（Redundant  Arrays  of  Independent（Inexpensive）Disks）について説明する。図２は、実施例２に示すＲＡＩＤ装置の構成を示す機能ブロック図である。
【００２７】
図２のＲＡＩＤ装置２００は、複数の上位装置（例えば、ホストコンピュータＡ、Ｂ、Ｃ・・・以下、単にホストとする）からの要求に応じて、ＨＤＤ（Hard  Disk  Drive）に記憶されている各種ユーザデータやプログラムのやり取りを行い、さらに、停電発生時には、バックアップに必要とされるキャッシュデータをＮＡＮＤ型メモリに退避する。
【００２８】
そして、ＲＡＩＤ装置２００は、本実施例に密接に関連する機能部として、ＣＭ（Controller  Module）２０１と、ＰＳＵ（Power  Supply  Unit）２０２と、ＨＤＤ（Hard  Disk  Drive）２０３ａ〜２０３ｚとを有する。
【００２９】
ＣＭ２０１は、キャッシュメモリの管理や、ホストとのインターフェース制御や、各ＨＤＤの制御を行う制御部で、ＮＡＮＤフラッシュ２０１ａと、キャッシュ２０１ｂ、ＦＰＧＡ（Field  Programmable  Gate  Array）２０１ｃと、ＲｏＣ（ＲＡＩＤ−ｏｎ−Ｃｈｉｐ）２０１ｄと、ＳＣＵ（Super  Capacitor  Unit）２０１ｅと、Ｅｘｐ（エキスパンダ）２０１ｆとを有する。
【００３０】
ＮＡＮＤフラッシュ２０１ａは、ＮＡＮＤ型メモリで、ＲＡＩＤ装置２００に停電が発生した場合に、キャッシュ２０１ｂに記憶されているキャッシュデータがバックアップされる。
【００３１】
そして、ＮＡＮＤフラッシュ２０１ａは、ブロック単位でアクセスされる構造を有することから、ランダムアクセスを許可せず、シーケンシャルライトにて、キャッシュ２０１ｂのキャッシュデータが書込まれる。
【００３２】
具体的に図を用いて説明する。図３は、実施例２のＮＡＮＤフラッシュのデータ構造の一例を示す図である。図３のＮＡＮＤフラッシュ２０１ａは、ブロック１からブロックＭを有している。
【００３３】
このブロックとは、キャッシュデータを記憶するデータ領域を示し、ＮＡＮＤフラッシュ２０１ａの物理的な分割単位を示すもので、このブロックごとに、キャッシュデータが書込まれる。なお、ＮＡＮＤフラッシュ２０１の１ブロック当たりのデータ領域は、シーケンシャルライトを行う上で都合の良い４Ｍｂｙｔｅとする。
【００３４】
そして、このブロックは、メイン領域とスペア領域を有し、メイン領域は、ユーザデータ等が記憶される領域を示し、スペア領域は、ＥＣＣ（error  check and  correct）やデバイス出荷時の不良箇所などを示すデータが記憶される領域を示す。
【００３５】
そして、図３に示したブロック１からブロック１３、ブロック１３からブロックＮ１は、キャッシュ２０１ｂのキャッシュデータがバックアップされるブロックを示し、その中で、ブロック３、５〜７は不良ブロックを示し、ブロック９は、Ｄｉｒｔｙ状態にあるユーザデータがバックアップされたことを示す。
【００３６】
「不良ブロック」とは、ＮＡＮＤフラッシュ２０１ａの消耗により、キャッシュデータの書込みが規定時間内に完了しないブロックを示す。そして、不良ブロックは、キャッシュデータのバックアップに使用されない。
【００３７】
「Ｄｉｒｔｙ（ダーティ）」とは、バックアップ時に、キャッシュデータの転送エラーが発生し、ＮＡＮＤフラッシュ２０１ａへの書込みが正常に終了しなかった場合を示す。なお、転送エラーの発生原因としては、不良ブロックとは異なり、ＮＡＮＤフラッシュ２０１ａの物理的な故障に依存するものではなく、例えば、ユーザデータに依存するものとする。
【００３８】
ブロックＭは、ＩｎｖａｌｉｄＴａｂｌｅの格納領域を示し、この「ＩｎｖａｌｉｄＴａｂｌｅ」とは、バックアップを行ったユーザデータが、Ｄｉｒｔｙか否かを示す情報や、ＮＡＮＤフラッシュ２０１ａが有する不良ブロックを示す情報が記憶され、ＲｏＣ２０１ｄによって各種データが管理されている。
【００３９】
また、ＩｎｖａｌｉｄＴａｂｌｅを格納する予備領域として、ブロックＮ１からブロックＮ１０がＮＡＮＤフラッシュ２０１ａに設けられており、ＩｎｖａｌｉｄＴａｂｌｅの詳細なデータ構造については後述するものとする。
【００４０】
次に、図２のキャッシュ２０１ｂについて説明する。キャッシュ２０１ｂは、ホストとＨＤＤ２０３ａ〜２０３ｚとの間で転送が行われるユーザデータを一時的に記憶するキャッシュメモリである。なお、上述してきたようにキャッシュ２０１ｂに記憶されているユーザデータをキャッシュデータとする。
【００４１】
図４は、実施例２に示すキャッシュメモリのデータ構造の一例を示す図である。図４に示したキャッシュ２０１ｂは、キャッシュデータを一時的に記憶するテーブルを複数有している。
【００４２】
なお、図４に示した各テーブルは、４Ｍｂｙｔｅに相当するユーザデータを保存する容量を有し、さらに、このユーザデータは６４ｋのデータ長で、ＲｏＣ２０１ｄに管理されるものとする。
【００４３】
また、ユーザデータの一例としては、リードデータとライトデータが挙げられる。「リードデータ」とは、既に、ＨＤＤ２０３ａからＨＤＤ２０３ｚに記憶されているユーザデータを示している。
【００４４】
したがって、ホストからＲＡＩＤ装置２００にユーザデータのリード要求があった場合に、ＣＭ２０１が、キャッシュ２０１ｂを検索し、リード要求に対応するキャッシュデータを取得した場合は、取得したキャッシュデータをホストに出力する。
【００４５】
一方、キャッシュ２０１ｂからキャッシュデータを取得しなかった場合、ＣＭ２０１は、ＨＤＤ２０３ａ等から、リード要求に対応するユーザデータを取得し、取得したユーザデータをキャッシュ２０１ｂに複製する。このように、ＨＤＤ２０３ａ等から、リード要求に対応するユーザデータを取得することを以下、「ステージング」とする。
【００４６】
一方、「ライトデータ」とは、ホストからＲＡＩＤ装置２００へ書込み要求があったユーザデータで、所定の条件を満たした後、各ＨＤＤに書込まれる。特に、このライトデータは、ＨＤＤ２０３ａ〜２０３ｚのいずれのＨＤＤにも記憶されていないユーザデータを示し、停電発生時には、ＮＡＮＤフラッシュ２０１ａへ積極的にバックアップされることが望まれる。
【００４７】
そして、図４に示したキャッシュ２０１ｂは、例えば、テーブル１からテーブル５、テーブル７、テーブル８にライトデータが記憶され、テーブル６にはリードデータが記憶されているものとする。
【００４８】
次に、図２の説明に戻り、ＦＰＧＡ２０１ｃについて説明する。ＦＰＧＡ２０１ｃは、所定のプログラムによって制御される集積回路を示し、ＤＭＡ（Direct  Memory  Access）エンジンを有する。
【００４９】
このＤＭＡとは、ＣＰＵ(Central  Processing  Unit)を介さずに装置とＲＡＭ（Random  Access  Memory）間でデータ転送を行う方式を示し、本実施例では、停電時にキャッシュデータをＮＡＮＤフラッシュ２０１ａに退避・復元するために必要な機能を付加したＤＭＡをＦＰＧＡ２０１ｃに搭載している。
【００５０】
なお、ＤＭＡの一例として、停電時に、キャッシュデータを退避するライトＤＭＡ(ＴＲＮ)、退避データをキャッシュ２０１ｂに戻すリードＤＭＡ(ＲＣＶ)、ＮＡＮＤフラッシュ２０１ａのイレースやチェックを行うためのコマンド発行ＤＭＡ(ＵＣＥ)といったＤＭＡが挙げられる。そして、このＤＭＡは、ＲｏＣ２０１ｄの命令によって、ハードウェア的にデータを転送する。
【００５１】
このＦＰＧＡ２０１ｃについて図を用いて説明する。図５は、実施例２に示すＦＰＧＡの構成を示す機能ブロック図である。停電発生時に、ＦＰＧＡ２０１ｃは、キャッシュ２０１ｂの所定データをＮＡＮＤフラッシュ２０１ａに退避させる。
【００５２】
そして、復電時には、停電時にＮＡＮＤフラッシュ２０１ａへ退避させたデータをキャッシュ２０１ｂに戻す。そして、ＦＰＧＡ２０１ｃは、ＩＦ（Interface）制御部２１１と、アクセスコントローラ２１２と、アクセス管理テーブル２１３と、ＴＲＮ２１４と、ＩＦ制御部２１５とを有する。
【００５３】
ＩＦ制御部２１１は、ＲｏＣ２０１ｄとＴＲＮ２１４との各種データのやり取りや、ＲｏＣ２０１ｄとアクセスコントローラ２１２との各種データのやり取りを制御するインターフェースである。
【００５４】
アクセスコントローラ２１２は、ＩＦ制御部２１１を介して、アクセス管理テーブル２１３ａと、ＲｏＣ２０１ｄとの各種データのやり取りを制御する制御部である。
【００５５】
アクセス管理テーブル２１３は、Ｓｋｉｐ管理テーブル２１３ａと、上述した不良ブロックを管理するＴＢＭ（不良ブロック管理テーブル）２１３ｂと有する。まず、Ｓｋｉｐ管理テーブル２１３ａのデータ構造について説明する。
【００５６】
図６は、Ｓｋｉｐ管理テーブルのデータ構造の一例を示す図である。図６に示したＳｋｉｐ管理テーブル２１３ａは、停電発生時に、ＮＡＮＤフラッシュ２０１ａへ退避させるか否かを示すＳｋｉｐフラグを記憶するテーブルで、ＲｏＣ２０１ｄのファームウェアによって管理される。
【００５７】
そして、図６に示したように、０もしくは１の値が、ｓｋｉｐフラグに該当し、ｓｋｉｐフラグが０の場合は、停電発生時に、対応するキャッシュデータが、ＮＡＮＤフラッシュ２０１ａに積極的にバックアップされ、ｓｋｉｐフラグが１に対応するキャッシュデータは、スキップされ、ＮＡＮＤフラッシュ２０１ａにバックアップされない。
【００５８】
次に、このｓｋｉｐフラグとキャッシュデータの対応関係について図４を用いて説明する。テーブル１に対応するｓｋｉｐフラグは、Ｓｋｉｐフラグ管理テーブル２１３ａの最上位に記憶されている「０」となる。
【００５９】
テーブル２〜テーブル８についても同様に、Ｓｋｉｐフラグ管理テーブル２１３ａに記憶されているＳｋｉｐフラグが順々に対応する。したがって、テーブル２〜テーブル５、テーブル７、テーブル８のＳｋｉｐフラグは「０」となり、テーブル６のＳｋｉｐフラグは「１」となる。
【００６０】
したがって、テーブル１〜テーブル５、テーブル７、テーブル８のキャッシュデータが、ＮＡＮＤフラッシュ２０１ａに積極的にバックアップされ、テーブル６のキャッシュデータは、バックアップされない。
【００６１】
また、ステージングが開始される場合に、Ｓｋｉｐフラグ１に対応するキャッシュ２０１ｂのテーブルが、リードデータのデータ領域として、優先して使用される。なお、Ｓｋｉｐフラグ１に対応するテーブルが存在しない場合、リードデータを記憶するデータ領域が確保された時に、確保された領域に対応するＳｋｉｐフラグが１となる。
【００６２】
次に、図５に示したＴＢＭ２１３ｂについて説明する。ＴＢＭ２１３ｂは、図２に示したＮＡＮＤフラッシュ２０１ａの劣化によるライト失敗（Program  Fail）、消去失敗（Erace  Fail）、リード不可（Load  Fail）が発生する不良ブロックを管理するテーブルで、上述したＩｎｖａｌｉｄＴａｂｌｅに相当する。そして、ＲｏＣ２０１ｄのファームウェアにて各データが管理される。
【００６３】
具体的に図を用いて説明する。図７は、実施例２に示すＴＢＭのデータ構造の一例を示す図である。図７のＴＢＭ２１３ｂは、「Ｄｉｒｔｙ」と「Ｉｎｖａｌｉｄ」の項目を有する。
【００６４】
このＤｉｒｔｙとは、上述したように、バックアップ時に、ユーザデータの転送エラーが発生し、ＮＡＮＤフラッシュ２０１ａへの書込みが正常に終了しなかった場合を示している。
【００６５】
そして、図７に示したＤｉｒｔｙには、０もしくは１のフラグが記憶されており、図７に示すようにフラグ１が立っている場合は、Ｄｉｒｔｙ（ダーティ）な状態を示し、フラグ０の場合は、正常にユーザデータの転送が終了した場合を示す。
【００６６】
このように、ＴＢＭ２１３ｂのＤｉｒｔｙに記憶されているフラグを以下、Ｄｉｒｔｙフラグとする。なお、Ｄｉｒｔｙフラグが１に対応するキャッシュデータは、ＲｏＣ２０１ｄにより、定期的にＨＤＤ２０３ａ等に書込まれる。
【００６７】
「Ｉｎｖａｌｉｄ」は、各ＮＡＮＤフラッシュ２０１のブロックが「不良ブロック」であることを示す。したがって、キャッシュデータのバックアップに使用することができない領域を示す。なお、ＴＢＭ２１３ｂのＩｎｖａｌｉｄに記憶されているフラグを以下、不良ブロックフラグとする。
【００６８】
次に、上述した不良ブロックフラグとＮＡＮＤフラッシュ２０１ａの対応関係について図３を用いて説明する。まず、ブロック１に対応する不良ブロックは、ＴＢＭ２１３ｂの最上位に記憶されている「０」となる。
【００６９】
ブロック２以降についても同様に、ＴＢＭ２１３ｂに記憶されている不良ブロックフラグが順々に対応する。したがって、例えば、ブロック２、ブロック４の不良ブロックフラグは「０」となり、ブロック３、ブロック５〜ブロック７の不良ブロックフラグは「１」となる。
【００７０】
そして、ブロック９に対応するＤｉｒｔｙフラグは「１」であることから、ブロック９にキャッシュデータを書込む場合に、キャッシュデータの転送エラーが発生したことを示す。一方、ブロック９以外のＤｉｒｔｙフラグは「０」であるから、キャッシュデータの書込みが正常に終了したことを示している。
【００７１】
次に、図５の説明に戻り、ＴＲＮ２１４について説明する。ＴＲＮ２１４は、キャッシュ２０１ｄのユーザデータを退避するＤＭＡを示し、メイン制御部２１４ａと、リード部２１４ｂと、エラー制御部２１４ｃと、バッファ部２１４ｄと、ＮＡＮＤライト制御部２１４ｅとを有する。
【００７２】
メイン制御部２１４ａは、ＴＢＭ２１３ｂのアドレス管理や、ＴＢＭ２１３ｂに記憶されている不良ブロックフラグや、Ｄｉｒｔｙフラグの更新を行う処理部である。そして、停電発生時に、キャッシュ２０１ｂのリード開始をリード部２１４ｂに要求する。
【００７３】
リード部２１４ｂは、停電発生時に、キャッシュ２０１ｂのキャッシュデータを読込み、読込んだキャッシュデータに対し、ｓｋｉｐフラグを用いて、ＮＡＮＤフラッシュ２０１ａに退避させるか否かを判定し、所定のキャッシュデータをエラー制御部２１４ｃ、バッファ部２１４ｄに出力する制御部である。
【００７４】
そして、リード部２１４ｂは、フラグ判定部２２０と、キャッシュアドレス管理部２２１と、リード制御部２２２とを有する。
【００７５】
フラグ判定部２２０は、Ｓｋｉｐ管理テーブル２１３ａを参照し、参照したｓｋｉｐフラグを使用して、リード部２１４ｂが取得したキャッシュデータをＮＡＮＤフラッシュ２０１ａに退避させるか否かを判定し、判定結果をリード制御部２２２に出力する。
【００７６】
例えば、参照したｓｋｉｐフラグが０である場合、リード部２１４ｂが取得したキャッシュデータをＮＡＮＤフラッシュ２０１ａへの退避が必要なキャッシュデータと判定する。一方、参照したｓｋｉｐフラグが１である場合、ＮＡＮＤフラッシュ２０１ａへの退避が必要でないキャッシュデータと判定する。
【００７７】
キャッシュアドレス管理部２２１は、キャッシュデータのキャッシュ２０１ｂにおける位置を示すキャッシュアドレスを管理し、管理しているキャッシュアドレスをフラグ判定部２２１に出力する処理部である。
【００７８】
なお、上述したキャッシュアドレスにより、キャッシュ２０１ｂが有する各テーブルが識別され、所定のテーブルにキャッシュデータが一時的に記憶される。
【００７９】
リード制御部２２２は、フラグ判定部２２０が、ＮＡＮＤフラッシュ２０１ａへの退避が必要と判定したキャッシュデータをエラー制御部２１４ｃとバッファ制御部２１４ｄとに出力する。
【００８０】
エラー制御部２１４ｃは、転送エラーが発生した場合、転送エラーが発生したＮＡＮＤブロックを識別するアドレスをメイン制御部２１４ａに通知し、ＴＢＭ２１３ｂのＤｉｒｔｙフラグの更新を要求する。
【００８１】
バッファ部２１４ｄは、リード制御部２２２から入力されたキャッシュデータのデータ化け防止のために、ＸＯＲ（排他的論理和）演算を行って、パリティデータを生成し、キャッシュデータにＸＯＲパリティを付加する。
【００８２】
さらに、ＣＲＣ(Cyclical  Redundancy  Check)とＡＩＤ(AreaID)からなる冗長ビットをユーザデータに付加して、付加したユーザデータを保持するためのバッファを有し、そのバッファに記憶されているユーザデータをＮＡＮＤライト制御部２１４ｅに出力する。
【００８３】
ＮＡＮＤライト制御部２１４ｅは、ＮＡＮＤフラッシュ２０１ａの各ブロックが識別されるアドレスを有し、さらに、ＩＦ制御部２１５を介して、バッファ部２１４ｄから入力されたユーザデータをＮＡＮＤフラッシュ２０１ａに出力し、書込みを行う。
【００８４】
さらに、ＮＡＮＤライト制御部２１４ｅは、キャッシュデータをＮＡＮＤフラッシュ２０１ａに書込む際に、転送エラーが発生し、書込みに失敗した場合、対応するブロックの識別データをエラー制御部２１４ｃに出力する。
【００８５】
ＩＦ制御部２１５は、ＴＲＮ２１４とＮＡＮＤフラッシュ２０１ａとの各種データのやり取りを制御するインターフェースである。
【００８６】
次に、これまで説明してきたキャッシュ２０１ｂと、Ｓｋｉｐ管理テーブル２１３ａと、ＴＢＭ２１３ｂと、ＮＡＮＤフラッシュ２０１ａを用いて、停電発生時に、ＲＡＩＤ装置２００で行われる処理について図を用いて説明する。
【００８７】
図８は、バックアップの処理を説明するための図である。まず、キャッシュ２０１ｂは図４と同様に、ユーザデータを記憶するテーブルとして、テーブル１〜テーブル８を有し、テーブル６には、リードデータが記憶され、テーブル６以外の各テーブルには、ライトデータが記憶されているものとする。
【００８８】
そして、テーブル１〜テーブル８に記憶されているキャッシュデータに基づいて、ＲｏＣ２０１ｄのファームウェアが、Ｓｋｉｐ管理テーブル２１３ａにｓｋｉｐフラグを記憶する。この場合、テーブル６に対応するｓｋｉｐフラグは「１」となり、テーブル６以外の各テーブルに対応するｓｋｉｐフラグは「０」となる。
【００８９】
そして、図５に示したＦＰＧＡ２０１ｃが、ＴＢＭ２１３ｂに基づいて、ＮＡＮＤフラッシュの各ブロックに対するＤｉｒｔｙとＩｎｖａｌｉｄについて管理しているものとする。
【００９０】
そして、上述した場合において、停電が発生すると、ＴＡＮ２１４は、ＲｏＣ２０１ｄからの命令を受けて、キャッシュ２０１ｂのキャッシュデータを、ｓｋｉｐフラグに基づき、ＮＡＮＤフラッシュ２０１ａに書込みを行う。以下、詳細に説明する。
【００９１】
まず、ＦＰＧＡ２０１ｃが、ＮＡＮＤフラッシュ２０１ａのブロック１に対応する不良ブロックフラグをＴＢＭ２１３ｂからリードして、不良ブロックフラグ「０」を取得する。
【００９２】
そして、ＦＰＧＡ２０１ｃが、キャッシュ２０１ｂのテーブル１に対応するｓｋｉｐフラグをＳｋｉｐ管理テーブル２１３ａからリードする。この場合、ｓｋｉｐフラグは「０」であるから、テーブル１に記憶されているキャッシュデータをＮＡＮＤフラッシュ２０１ａのブロック１へ書込む。
【００９３】
そして、ブロック１への書込みが、転送エラーを発生することなく終了したことをＴＲＮ２１４が確認した後、テーブル２に記憶されているキャッシュデータのバックアップを開始する。
【００９４】
そして、テーブル２のバックアップ領域に対応するブロック２の不良ブロックフラグ「０」をＴＢＭ２１３ｂから取得し、ＦＰＧＡ２０１ｃが、キャッシュ２０１ｂのテーブル２に対応するｓｋｉｐフラグをＳｋｉｐ管理テーブル２１３ａからリードする。
【００９５】
この場合、ｓｋｉｐフラグは「０」であるから、テーブル２に記憶されているキャッシュデータをＮＡＮＤフラッシュ２０１ａのブロック２へ書込む。
【００９６】
そして、ブロック２への書込みが、転送エラーを発生することなく終了したことをＴＲＮ２１４が確認した後、テーブル３に記憶されているキャッシュデータのバックアップを開始する。
【００９７】
そして、テーブル３のバックアップ領域に対応するブロック３の不良ブロックフラグ「１」をＴＢＭ２１３ｂから取得する。上述したようにブロック３は、不良ブロックになることから、バックアップのデータ領域として使用されず、テーブル３のキャッシュデータは、ブロック３以降のブロックに記憶されることになり、ブロック４が記憶されるブロックの候補となる。
【００９８】
したがって、ＦＰＧＡ２０１ｃは、ＮＡＮＤフラッシュ２０１ａのブロック４に対応する不良ブロックフラグをＴＢＭ２１３ｂからリードし、この場合、ＮＡＮＤフラッシュ２０１ａのブロック４に対応する不良ブロックフラグ「０」を取得する。
【００９９】
そして、ＦＰＧＡ２０１ｃは、キャッシュ２０１ｂのテーブル３に対応するｓｋｉｐフラグをＳｋｉｐ管理テーブル２１３ａからリードする。この場合、ｓｋｉｐフラグは「０」であるから、テーブル３に記憶されているキャッシュデータをＮＡＮＤフラッシュ２０１ａのブロック４へ書込む。
【０１００】
そして、ブロック４への書込みが、転送エラーを発生することなく終了したことをＴＲＮ２１４が確認した後、テーブル４に記憶されているキャッシュデータのバックアップを開始する。
【０１０１】
そして、テーブル４のバックアップ領域に対応するブロック５の不良ブロックフラグ「１」をＴＢＭ２１３ｂから取得する。ブロック５は、不良ブロックであるから、バックアップのデータ領域として使用されず、テーブル４のキャッシュデータは、ブロック６以降のブロックに記憶されることになり、ブロック６が記憶されるブロックの候補となる。
【０１０２】
したがって、ＦＰＧＡ２０１ｃは、ＮＡＮＤフラッシュ２０１ａのブロック６に対応する不良ブロックフラグをＴＢＭ２１３ｂからリードし、この場合、ＮＡＮＤフラッシュ２０１ａのブロック６に対応する不良ブロックフラグ「１」を取得する。
【０１０３】
ブロック５と同様に、ブロック６も不良ブロックであるから、ＦＰＧＡ２０１ｃは、ＮＡＮＤフラッシュ２０１ａのブロック７に対応する不良ブロックフラグをＴＢＭ２１３ｂからリードし、この場合、ＮＡＮＤフラッシュ２０１ａのブロック７に対応する不良ブロックフラグ「１」を取得する。
【０１０４】
ブロック６と同様に、ブロック７も不良ブロックであるから、ＦＰＧＡ２０１ｃは、ＮＡＮＤフラッシュ２０１ａのブロック８に対応する不良ブロックフラグをＴＢＭ２１３ｂからリードし、この場合、ＮＡＮＤフラッシュ２０１ａのブロック８に対応する不良ブロックフラグ「０」を取得する。
【０１０５】
そして、ＦＰＧＡ２０１ｃは、キャッシュ２０１ｂのテーブル４に対応するｓｋｉｐフラグをＳｋｉｐ管理テーブル２１３ａからリードする。この場合、ｓｋｉｐフラグは「０」であるから、テーブル４に記憶されているキャッシュデータをＮＡＮＤフラッシュ２０１ａのブロック８へ書込む。
【０１０６】
そして、ブロック８への書込みが、転送エラーを発生することなく終了したことをＴＲＮ２１４が確認した後、テーブル５に記憶されているキャッシュデータのバックアップを開始する。
【０１０７】
そして、テーブル５のバックアップ領域に対応するブロック９の不良ブロックフラグ「０」をＴＢＭ２１３ｂから取得する。そして、ＦＰＧＡ２０１ｃは、キャッシュ２０１ｂのテーブル５に対応するｓｋｉｐフラグをＳｋｉｐ管理テーブル２１３ａからリードする。この場合、ｓｋｉｐフラグは「０」であるから、テーブル５に記憶されているキャッシュデータをＮＡＮＤフラッシュ２０１ａのブロック９へ書込む。
【０１０８】
そして、ブロック９へテーブル５のキャッシュデータを書込む際、転送エラーをＴＲＮ２１４が確認したとする。この場合、ＴＲＮ２１４は、ブロック９に対応するＴＢＭ２１３ｂのＤｉｒｔｙフラグを「１」にする。
【０１０９】
そして、再び、テーブル５のキャッシュデータのバックアップをブロック１０に対して開始する。この場合、対応する不良ブロックフラグは「０」であることから、テーブル５のキャッシュデータがＮＡＮＤフラッシュ２０１ａのブロック１０へ書込まれる。
【０１１０】
なお、このブロック９は、不良ブロックではなく、ＮＡＮＤフラッシュ２０１ａのハード的な故障は発生していないことから、次回のイレース処理後に、ＦＰＧＡ２０１ｃがブロック９に記憶されているキャッシュデータを自動的にクリアする。
【０１１１】
そして、ブロック１０への書込みが、転送エラーを発生することなく終了したことをＴＲＮ２１４が確認した後、テーブル６に記憶されているキャッシュデータのバックアップを開始する。
【０１１２】
そして、テーブル６のバックアップ領域に対応するブロック１１の不良ブロックフラグ「０」をＴＢＭ２１３ｂから取得する。そして、ＦＰＧＡ２０１ｃは、キャッシュ２０１ｂのテーブル６に対応するｓｋｉｐフラグをＳｋｉｐ管理テーブル２１３ａからリードする。
【０１１３】
この場合、テーブル６に記憶されているデータは、リードデータが記憶されているから、テーブル６に対応するｓｋｉｐフラグとして「１」をリードすることになる。その結果、ＴＲＮ２１４は、テーブル６に記憶されているキャッシュデータのバックアップをスキップさせる。
【０１１４】
そして、テーブル７に記憶されているキャッシュデータのバックアップの開始へ移る。
この場合、ＦＰＧＡ２０１ｃは、テーブル７に対応するｓｋｉｐフラグをリードし、ｓｋｉｐフラグ「０」が記憶されていることから、キャッシュ２０１ｂのテーブル７に記憶されているキャッシュデータをＮＡＮＤフラッシュ２０１ａのブロック１１へ書込む。
【０１１５】
そして、ブロック１１への書込みが、転送エラーを発生することなく終了したことをＴＲＮ２１４が確認した後、テーブル８に記憶されているキャッシュデータのバックアップを開始する。
【０１１６】
そして、テーブル８のバックアップ領域に対応するブロック１２の不良ブロックフラグ「０」をＴＢＭ２１３ｂから取得する。そして、ＦＰＧＡ２０１ｃは、テーブル８に対応するｓｋｉｐフラグをリードし、ｓｋｉｐフラグ「０」が記憶されていることから、キャッシュ２０１ｂのテーブル８に記憶されているキャッシュデータをＮＡＮＤフラッシュ２０１ａのブロック１２へ書込む。
【０１１７】
このように、停電発生時にキャッシュデータをＮＡＮＤフラッシュ２０１ａへバックアップする際、ｓｋｉｐフラグに基づいて、バックアップするキャッシュデータを判定し、判定結果に基づき、キャッシュデータのバックアップを行っている。
【０１１８】
なお、キャッシュ２０１ｂのテーブル８のキャッシュデータのバックアップが終了した後、例えば、バックアップに要する処理時間に支障がない場合は、テーブル６に記憶されているリードデータについても、ＮＡＮＤフラッシュ２０１ａへバックアップされても良いものとする。
【０１１９】
次に、図２の説明に戻り、ＲｏＣ２０１ｄについて説明する。ＲｏＣ２０１ｄは、ＣＭ２０１を全体制御する制御装置であり、キャッシュ２０１ｂのバックアップ処理や、ホストとのインターフェース制御や、キャッシュ２０１ｂの管理を行うファームウェアを有する処理部である。
【０１２０】
そして、ホストからユーザデータの書込み命令を受け付けた場合、ｓｋｉｐフラグ１に対応するキャッシュ２０１ｂのテーブルを、ユーザデータの書込まれるデータ領域とはせずに、ｓｋｉｐフラグ０に対応するテーブルにユーザデータの書込み行う。
【０１２１】
一方、ホストからユーザデータの読込み命令を受け付けた場合、ｓｋｉｐフラグ１に対応するキャッシュ２０１ｂのテーブルをリードデータの領域に使用し、ユーザデータを記憶する。
【０１２２】
また、ステージング時には、リードデータのデータ領域を確保するが、ｓｋｉｐフラグ１に対応するキャッシュ２０１ｂのテーブルがない場合、所定のテーブルをリードデータのデータ領域とし、対応するｓｋｉｐフラグを１にする。
【０１２３】
次に、ＲｏＣ２０１ｄが行うキャッシュ２０１ｂの管理について図を用いて説明する。図９は、実施例２のＲｏＣの処理を説明するための図である。図９に示したキャッシュ管理テーブル２３１は、ＲｏＣ２０１ｄのファームウェアが、キャッシュ２０１ｂを管理するために使用するためのテーブルである。
【０１２４】
例えば、ＲＡＩＤ装置２００に対して、複数の上位装置（例えば、ホストＡ、ホストＢ、ホストＣとする）からＩＯ接続の要求があり、ホストＡ、ホストＢ、ホストＣがＲＡＩＤ装置２００にアクセスされていたとする。
【０１２５】
この場合、例えば、キャッシュ２０１ｂのテーブル６がリードデータの領域に使用されていた時、テーブル６に対応するｓｋｉｐフラグは「１」となる。そして、キャッシュ管理テーブル２３１により、テーブル６に使用されるデータ領域が詳細に管理される。
【０１２６】
この時、「使用中」は、ホストＡ、ホストＢ、ホストＣのうちいずれかのホストが、ｓｋｉｐフラグ１に対応するキャッシュ２０１ｂのテーブルをリードデータの領域として使用しているか否かを示すものとする。
【０１２７】
図９の例では、キャッシュ２０１ｂのテーブル６が、リードデータの領域に使用されており、「使用中」に記憶されているフラグは１となり、さらに、「Ｒｅａｄ中」は、ホストＡ、ホストＢ、ホストＣのいずれかのホストが、リードデータをキャッシュ２０１ｂから読込んでいる状態を示すものとする。
【０１２８】
そして、ホストＡ、Ｂ、Ｃが、キャッシュ２０１ｂのテーブル６の使用を終了した場合、ＲｏＣ２０１ｄのファームウェアが、Ｓｋｉｐ管理テーブル２１３ａに記憶されているｓｋｉｐフラグ「１」を開放する。
【０１２９】
次に、図２の説明に戻り、ＳＣＵ（Super  Capacitor  Unit）２０１ｅについて説明する。ＳＣＵ２０１ｅは、大容量コンデンサを示し、ＲＡＩＤ装置２００に停電が発生した際に、バッテリーフリーで、ＲｏＣ２０１ｄに電力を供給する。なお、充電された電力を供給するため、ＰＳＵ２０２とは異なり、供給する電力には、限りがあるものとする。
【０１３０】
ＳＣＵ２０１ｅは、「電気二重層」(導体に絶縁体をはさみ、電圧をかけると電荷が蓄積する)を利用して物理的に電荷の蓄電が行っている。したがって、化学的に蓄電するバッテリーに比べて充電や、放電による劣化が少なく、電荷の移動速度で充電が行われる。
【０１３１】
ＥＸＰ（エキスパンダ）２０１ｆは、ＲｏＣ２０１ｄとＨＤＤ２０３ａ〜ＨＤＤ２０３ｚとの間で送受信されるユーザデータを中継する処理部である。
【０１３２】
ＰＳＵ（Power  Supply  Unit）２０２は、ＲＡＩＤ装置２００へ電力を供給する装置で、停電が発生していない場合、ＲＡＩＤ装置２００への電力の供給を停止する。なお、上述したように、この場合、ＳＣＵ２０１ｅの放電により、ＲＡＩＤ装置２００へ電力が供給される。
【０１３３】
ＨＤＤ２０３ａ〜ＨＤＤ２０３ｚは、ＲＡＩＤグループを構成し、高速性や安全性のレベルに応じて、データが振り分けられており、ユーザデータの書込みやプログラムを記憶する記憶媒体（ディスク）等を有する。
【０１３４】
次に、実施例２に示すＲＡＩＤ装置２００の停電時の処理について説明する。図１０は停電時の処理を示すフローチャートである。
【０１３５】
まず、ＲＡＩＤ装置２００に停電が発生し、ＲｏＣ２０１ｄへの電力の供給が、ＰＳＵ２０２からＳＣＵ２０１ｅに切り替わる（ステップＳ１００）。そして、ＲｏＣ２０１から命令を受けて、ＴＲＮ２１４が、ＴＢＭ２１３ｂのリードを行う（ステップＳ１０１）。
【０１３６】
そして、バックアップ対象となるブロックの不良ブロックフラグが１でない場合（ステップＳ１０２、Ｎｏ）、Ｓｋｉｐ管理テーブル２１３ａのリードを行う（ステップＳ１０３）。
【０１３７】
この場合、ｓｋｉｐフラグが１でない場合（ステップＳ１０４、Ｎo）、ｓｋｉｐフラグ１に対応するキャッシュデータをＮＡＮＤフラッシュ２０１ａに転送する（ステップＳ１０５）。
【０１３８】
その後、ステップＳ１０５にて転送したキャッシュデータに転送エラーが発生しなかった場合（ステップＳ１０６、Ｎｏ）、ステップＳ１０５にて転送したキャッシュデータの次のアドレスに記憶されているキャッシュデータを取得する（ステップＳ１０７）。
【０１３９】
そして、ステップＳ１０１でリードしたＮＡＮＤフラッシュ２０１ａのブロックからインクリメントした次のブロックに対応するアドレスを取得する（ステップＳ１０８）。
【０１４０】
なお、ステップＳ１０１において、ＴＲＮ２１４が、キャッシュ２０１ｂに対応するＴＢＭ２１３ｂのリードを行った際、ＴＢＭ２１３ｂの不良ブロックフラグが１である場合（ステップＳ１０２、Ｙｅｓ）、ステップＳ１０８に移行する。
【０１４１】
また、転送エラーが発生した場合（ステップＳ１０６、Ｙｅｓ）、ＴＢＭ２１３ｂのＤｉｒｔｙフラグを０から１にする（ステップＳ１０９）。
【０１４２】
このフローチャートによれば、停電発生時にキャッシュデータをＮＡＮＤフラッシュ２０１ａへバックアップする際、ｓｋｉｐフラグに基づいて、バックアップするキャッシュデータを判定し、所定のキャッシュデータについてバックアップを行っていることから、キャッシュデータのバックアップに要する処理時間の短縮することができる。
【０１４３】
次に、実施例２のＲＡＩＤ装置の処理について説明する。まず、実施例２のＲＡＩＤ装置２００は、ホストからＩＯ（Input／Output:アクセス）接続の要求を受け付ける（ステップＳ２００）。そして、ＲＡＩＤ装置２００は、ＩＯ接続の要求に対する応答をホストに行う（ステップＳ２０１）。
【０１４４】
その後、ホストは、ＲＡＩＤ装置２００に対し、ユーザデータのリードを要求する（ステップＳ２０２）。そして、ＲＡＩＤ装置２００は、ホストから送信されるディスクアドレスを受信する（ステップＳ２０３）。
【０１４５】
そして、ＲＡＩＤ装置２００は、ステップＳ２０３にて受信したディスクアドレスに基づき、キャッシュ２０１ｂのキャッシュデータの検索を行い（ステップＳ２０４）、ホストから要求されているリードデータが、キャッシュ２０１ｂから取得できた場合（ステップＳ２０５、Ｙｅｓ）、ステップＳ２１４へ移行する。
【０１４６】
一方、キャッシュ２０１ｂからリードデータを取得しなかった場合（ステップＳ２０５、Ｎｏ）、キャッシュ２０１ｂにステップＳ２０２に対応するリードデータを記憶するデータ領域を確保し（ステップＳ２０６）、ステージングを開始する（ステップＳ２０７）。
【０１４７】
この際、キャッシュ２０１ｂのテーブルに対応するｓｋｉｐフラグが１となる。その後、ＲＡＩＤ装置２００は、ＨＤＤ２０３ａ〜ＨＤＤ２０３ｚからリードデータに対応するユーザデータを取得する（ステップＳ２０８）。
【０１４８】
そして、ＲＡＩＤ装置２００は、ステップＳ２０８にて取得したユーザデータをキャッシュ２０１ｂにコピーし、ステージングを完了させる（ステップＳ２０９）。
【０１４９】
そして、ＲＡＩＤ装置２００は、ホストに対して、ＩＯ接続における準備が完了した旨の通知を行う（ステップＳ２１０）。その後、ＲＡＩＤ装置２００は、ホストから再びリード要求を受信し（ステップＳ２１１）、さらに、ディスクアドレスを受信する（ステップＳ２１２）。
【０１５０】
そして、ステップＳ２１２にて受信したディスクアドレスに基づき、リード要求に対応するキャッシュデータをキャッシュ２０１ｂから検索する（ステップＳ２１３）。そして、ステップＳ２０８に取得したユーザデータに対応するキャッシュデータを取得し、ステップＳ２１１にて受信したリード要求の応答を行う（ステップＳ２１４）。
【０１５１】
そして、ホストは、ＲＡＩＤ装置２００に対して、リードデータの読込み要求を行い（ステップＳ２１５）、読込み要求を受信したＲＡＩＤ装置２００は、ホストに対し、ステップＳ２１３にて取得したキャッシュデータを送信する（ステップＳ２１６）。
【０１５２】
そして、他のホストがステップＳ２０６にて確保したキャッシュ２０１ｂのキャッシュ領域を使用していなければ、ｓｋｉｐフラグを開放する（ステップＳ２１７）。
【０１５３】
上述してきたように、本実施例２では、ｓｋｉｐフラグに基づいて、バックアップするキャッシュデータを判定し、所定のキャッシュデータについてバックアップを行っていることから、キャッシュデータのバックアップに要する処理時間を短縮することができる。
【符号の説明】
【０１５４】
１０  ホスト
２０、２００  ＲＡＩＤ装置
２１、２０１ｄ  ＲｏＣ
２２、２０１ｃ  ＦＰＧＡ
２３、２０１ａ  ＮＡＮＤフラッシュ
２４、２０１ｂ  キャッシュ
２５、２０１ｆ  Ｅｘｐ
２６ａ〜２６ｚ、２０３ａ、２０３ｂ〜２０３ｚ  ＨＤＤ
２７、２０１ｅ  ＳＣＵ
２８、２０２  ＰＳＵ
１００  退避処理装置
１０１  記憶部
１０２  予備記憶部
１０３  判定テーブル
１０４  停電処理部
２０１  ＣＭ
２１１、２１５  ＩＦ制御部
２１２  アクセスコントローラ
２１３  アクセス管理テーブル
２１３ａ  Ｓｋｉｐ管理テーブル
２１３ｂ  ＴＢＭ
２１４  ＴＲＮ
２１４ａ  メイン制御部
２１４ｂ  リード部
２１４ｃ  エラー制御部
２１４ｄ  バッファ部
２１４ｅ  ＮＡＮＤライト制御部 
【図１】
2011018241.tif 000003
【図２】
2011018241.tif 000004
【図３】
2011018241.tif 000005
【図４】
2011018241.tif 000006
【図５】
2011018241.tif 000007
【図６】
2011018241.tif 000008
【図７】
2011018241.tif 000009
【図８】
2011018241.tif 000010
【図９】
2011018241.tif 000011
【図１０】
2011018241.tif 000012
【図１１】
2011018241.tif 000013
【図１２】
2011018241.tif 000014