(57)【要約】  フラッシュメモリを記憶媒体とするストレージシステムで記憶容量を効率的に利用する。  ストレージシステムは、ストレージコントローラと、ストレージコントローラに接続されるフラッシュメモリモジュールとを有する。ストレージコントローラは、フラッシュメモリモジュールが有するフラッシュメモリチップ内の記憶領域の状態を管理している。フラッシュメモリチップ内の一部の記憶領域が書き込み不能となった場合に、ストレージコントローラは、空き記憶領域を書き込み不能となった記憶領域の代替領域とし、書き込み不能となった記憶領域に格納されていたデータを代替領域に格納するよう制御する。
2009130848.tif 000002
【特許請求の範囲】
【請求項１】
ストレージコントローラと、
当該ストレージコントローラに接続される一又は複数のフラッシュメモリモジュールと
を有するストレージシステムであって、
前記一又は複数のフラッシュメモリモジュールは各々、一又は複数のフラッシュメモリチップを有しており、
前記ストレージコントローラは、前記一又は複数のフラッシュメモリモジュールが有する前記フラッシュメモリチップ内の記憶領域の状態を管理しており、
前記一又は複数のフラッシュメモリモジュールが有する前記フラッシュメモリチップ内の一部の記憶領域が書き込み不能となった場合に、前記ストレージコントローラは、当該一又は複数のフラッシュメモリモジュールが有する前記フラッシュメモリチップの中から空き記憶領域を選択して、その空き記憶領域を書き込み不能となった前記一部の記憶領域の代替領域とし、書き込み不能となった前記一部の記憶領域に格納されていたデータを前記代替領域に格納するよう制御することを特徴とする、ストレージシステム。
【請求項２】
請求項１記載のストレージシステムであって、
更に、前記ストレージコントローラと接続され、各々が前記一又は複数のフラッシュメモリモジュールのいずれかと接続されるコネクタを複数有し、当該コネクタを介して接続される前記フラッシュメモリモジュール内の前記フラッシュメモリチップへのアクセスを制御するＬＳＩを搭載したフラッシュメモリパッケージを有しており、
前記フラッシュメモリパッケージが有する前記複数のコネクタのいずれかに、新たなフラッシュメモリモジュールが接続された場合には、前記ストレージコントローラは当該新たなフラッシュメモリモジュールが有する一又は複数のフラッシュメモリチップ内の記憶領域の中から前記代替領域を選択することを特徴とする、ストレージシステム。
【請求項３】
請求項２記載のストレージシステムであって、
前記ストレージコントローラは、前記一又は複数のフラッシュメモリモジュールが有する前記フラッシュメモリチップ内の記憶領域の状態を記録するメモリを有しており、
前記ストレージコントローラは、前記フラッシュメモリパッケージに前記新たなフラッシュメモリモジュールが接続された場合に、当該新たなフラッシュメモリモジュールが有する一又は複数のフラッシュメモリチップ内の記憶領域の状態を示す情報を入手して、当該情報を前記メモリに格納することを特徴とする、ストレージシステム。
【請求項４】
請求項２記載のストレージシステムであって、
前記ストレージコントローラは、前記一又は複数のフラッシュメモリモジュールが有する前記フラッシュメモリチップ内の空き記憶領域の合計サイズを管理しており、
前記合計サイズが予め定められた条件を満たした場合に、前記フラッシュメモリパッケージに前記新たなフラッシュメモリモジュールを増設するよう警告を出力することを特徴とするストレージシステム。
【請求項５】
請求項１記載のストレージシステムであって、
前記ストレージコントローラは、予め定められた条件を満たす記憶領域の中から空き記憶領域を選択して、当該空き記憶領域を書き込み不能となった前記一部記憶領域の代替領域とすることを特徴とするストレージシステム。
【請求項６】
請求項５記載のストレージシステムであって、
前記ストレージコントローラは、書き込み不能となった前記一部の記憶領域の属するフラッシュメモリモジュールが有するフラッシュメモリチップ上の記憶領域の中から、前記代替領域を選択することを特徴とするストレージシステム。
【請求項７】
請求項１記載のストレージシステムであって、
前記ストレージコントローラは、前記一又は複数のフラッシュメモリモジュールが有する前記フラッシュメモリチップ内の記憶領域を、複数のパーティションに分割しており、書き込み不能となった前記一部の記憶領域と同じパーティションに属する空き記憶領域の中から前記代替領域を選択することを特徴とするストレージシステム。
【請求項８】
請求項７記載のストレージシステムであって、
前記ストレージコントローラは、前記パーティション毎に、当該パーティション内の空き記憶領域の合計サイズを管理することを特徴とするストレージシステム。
【請求項９】
請求項１記載のストレージシステムであって、
複数のフラッシュメモリモジュールを有しており、前記ストレージコントローラは当該複数のフラッシュメモリモジュールを用いてＲＡＩＤグループを構成することを特徴とするストレージシステム。
【請求項１０】
請求項９記載のストレージシステムであって、
前記ストレージコントローラに接続され、前記複数のフラッシュメモリモジュールのいずれかと接続されるコネクタと、当該コネクタに接続されたフラッシュメモリモジュール内の前記フラッシュメモリチップへのアクセスを制御するＬＳＩを有するフラッシュメモリパッケージを複数有しており、
前記ストレージコントローラは、各々異なるフラッシュメモリパッケージに接続される前記複数のフラッシュメモリモジュールを用いて、前記ＲＡＩＤグループを構成することを特徴とするストレージシステム。
【請求項１１】
請求項１記載のストレージシステムであって、
前記ストレージコントローラは、管理サーバと接続されており、
前記ストレージコントローラは、前記一又は複数のフラッシュメモリモジュールが有する前記フラッシュメモリチップ内の空き記憶領域の合計サイズを管理し、当該合計サイズを示す情報を前記管理サーバに出力することを特徴とするストレージシステム。
【請求項１２】
請求項１１記載のストレージシステムであって、
前記ストレージコントローラは更に、前記一又は複数のフラッシュメモリモジュールが有する前記フラッシュメモリチップ内の使用中の記憶領域の合計サイズと、書き込み不能となった記憶領域の合計サイズとを管理し、当該使用中の記憶領域の合計サイズ及び書き込み不能となった記憶領域の合計サイズを示す情報を、前記管理サーバに出力することを特徴とするストレージシステム。
【請求項１３】
請求項５記載のストレージシステムであって、
前記ストレージコントローラは、書き込み不能となった前記一部の記憶領域と同じバックエンドパスに接続されたフラッシュメモリパッケージが有するフラッシュメモリチップ上の記憶領域の中から、前記代替領域を選択することを特徴とするストレージシステム。
【請求項１４】
一又は複数のフラッシュメモリモジュールを有するストレージシステムを制御するための方法であって、
前記一又は複数のフラッシュメモリモジュールは各々、一又は複数のフラッシュメモリチップを有しており、
前記一又は複数のフラッシュメモリモジュールが有する前記フラッシュメモリチップ内の記憶領域の状態を管理し、
前記一又は複数のフラッシュメモリモジュールが有する前記フラッシュメモリチップ内の一部の記憶領域が書き込み不能となった場合に、当該一又は複数のフラッシュメモリモジュールが有する前記フラッシュメモリチップの中から空き記憶領域を選択し、
選択された前記空き記憶領域を、書き込み不能となった前記一部の記憶領域の代替領域とし、
書き込み不能となった前記一部の記憶領域に格納されていたデータを前記代替領域に格納させる、
ストレージシステムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
ストレージシステムに関するもので、特にフラッシュメモリなどの不揮発性半導体メモリを用いたストレージシステム及びストレージシステムの制御方法に関する。
【背景技術】
【０００２】
近年、従来のハードディスク装置の代替としてフラッシュメモリなどの不揮発性半導体メモリを記憶媒体とした記憶装置が注目を集めている。フラッシュメモリはハードディスクに比べて高速動作可能で、かつ消費電力が低いという利点を持つが、一方で次のような制限もある。まず、メモリの各ビットの更新は１から０（または０から１）の一方向に限定される。逆の変更が必要な場合は、メモリブロック（以下、「ブロック」と呼ぶ）の消去を行って一旦ブロック全体を１（または０）にする必要がある。また、この消去回数に上限があり、例えばＮＡＮＤ型フラッシュメモリの場合は一万から十万回程度が限度である。【０００３】
そのため、フラッシュメモリをハードディスクの代替として計算機に接続する場合、ブロック毎の書き込み頻度の偏りによって、一部のブロックのみが消去回数の上限に達して使えなくなってしまうおそれがある。例えば一般的なファイルシステムでは、ディレクトリやiノードに割り当てられたブロックは他のブロックに比べて書き換え頻度が高いので、これらのブロックのみ消去回数の上限に達する可能性が高い。【０００４】
この問題に対し、特許文献１に示すように、使えなくなったメモリ領域（不良ブロック）に対して代替となるメモリ領域（代替ブロック）を割り当てることで、記憶装置としての寿命を延ばす技術が知られている。
【特許文献１】特開平５−２０４５６１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし特許文献１に記載された技術を適用しても寿命を無限にすることはできず、記憶装置内に予め用意された、代替ブロックとして割り当て可能なメモリ領域が無くなると、記憶装置としての寿命に達する。【０００６】
このようなフラッシュメモリを用いた記憶装置をハードディスクの代わりに用いてストレージシステムを構成する場合、寿命に達した記憶装置は新しい記憶装置に交換する必要がある。ホスト計算機からの書き込み頻度に偏りがあるため、寿命に達した記憶装置内には使用可能なブロックが多数存在することが想定されるが、交換時にはこれらのブロックも捨てられるため、その分フラッシュメモリ容量が無駄になる。なおストレージシステムとしての運用期間中に代替ブロックとして使用されうる最大量のブロックを記憶装置内に予め余分に搭載しておくことで、半導体ディスクの交換を不要とすることもできるが、初期コストが大きくなるうえ、実際の運用ではブロックが使い切られず無駄になることが懸念される。【０００７】
従って、フラッシュメモリをストレージシステムに適用する上で、上記のような無駄を減らし、フラッシュメモリの容量を効率的に利用することを可能とする技術が望まれている。
【課題を解決するための手段】
【０００８】
ストレージシステムは、ストレージコントローラと、ストレージコントローラに接続されるフラッシュメモリモジュールとを有する。ストレージコントローラは、フラッシュメモリモジュールが有するフラッシュメモリチップ内の記憶領域の状態を管理している。フラッシュメモリチップ内の一部の記憶領域が書き込み不能となった場合に、ストレージコントローラは、空き記憶領域を、書き込み不能となった記憶領域の代替領域として使用し、書き込み不能となった記憶領域に格納されていたデータを代替領域に格納するよう制御する。
【発明の効果】
【０００９】
フラッシュメモリを搭載したストレージシステムにおいて、フラッシュメモリのうち一部の領域が使えなくなったときも、他の領域は捨てずに使い続けることが可能になり、フラッシュメモリの容量を効率的に使うことができる。
【図面の簡単な説明】
【００１０】
【図１】ストレージシステムの構成例を示す図。
【図２】第一の実施の形態におけるブロック管理情報の一例を示す図。
【図３】第一の実施の形態における代替ブロック割り当て方式の一例を表す図。
【図４】第一の実施の形態における管理サーバのＧＵＩの一例を示す図。
【図５】第一の実施の形態において管理サーバがストレージシステム内の空きブロック量を調べて警告メッセージを表示する処理の一例を示すフローチャート。
【図６】第一の実施の形態においてストレージ装置のマイクロプロセッサが空きブロック量を調べて管理サーバへ警告メッセージを送信する処理の一例を示すフローチャートである。
【図７】第二の実施の形態におけるＲＡＩＤ１構成の例を示す概念図。
【図８】第二の実施の形態における代替ブロック割り当て方式の一例を示す図。
【図９】第二の実施の形態における管理サーバのＧＵＩの一例を示す図。
【図１０】第二の実施の形態におけるブロック管理情報の一例を示す図。
【図１１】第二の実施の形態におけるデステージ処理の一例を示すフローチャート。
【図１２】第二の実施の形態におけるリビルド処理の一例を示すフローチャート。
【図１３】ＲＡＩＤ５構成の例を示す概念図。
【図１４】第三の実施の形態におけるストレージシステムの構成例を示す図。
【図１５】第三の実施の形態における代替ブロック割り当て方式の一例を示す図。
【図１６】第三の実施の形態におけるブロック管理情報の一例を示す図である。
【図１７】第三の実施の形態における仮想ボリュームとＬＤＥＶとの関係の一例を示す図である。
【図１８】第三の実施の形態におけるプール管理情報の一例を示す図。
【図１９】第三の実施の形態におけるＬＤＥＶ管理情報の一例を示す図。
【図２０】第三の実施の形態におけるフラッシュメモリパッケージ管理情報の一例を示す図である。
【図２１】第三の実施の形態においてグローバルスペアを使う場合の代替ブロック割り当て方式の一例を示す図。
【図２２】第四の実施形態における代替ブロックの割り当て方式の一例を示す図。
【図２３】第五の実施形態における代替ブロックの割り当て処理のフローチャート。
【符号の説明】
【００１１】
１，１Ａ・・・ストレージシステム
２・・・ホスト計算機
３・・・管理サーバ
４・・・フラッシュメモリモジュール
５・・・フラッシュメモリパッケージ
６・・・キャッシュメモリ
７・・・マイクロプロセッサ（ＭＰ）
８・・・メインメモリ
９・・・ポート
１０・・・内部ネットワーク
１１・・・ブロック管理情報
１３・・・空きブロックリスト
１４・・・ブロック割り当てテーブル
１５・・・物理ブロックＩＤ
１６・・・論理ブロックＩＤ
１７・・・物理ブロックＩＤ
１８・・・空きブロックカウンタ
１９・・・使用中ブロックカウンタ
２０・・・不良ブロックカウンタ
２１・・・ブロック
３０・・・管理ＧＵＩの表示領域
３１・・・フラッシュメモリの全容量
３２・・・使用中ブロックの量
３３・・・不良ブロックの量
３４・・・空きブロックの量
３５・・・メッセージ表示領域
６０・・・更新ブロックビットマップ
８０・・・バックエンドパス
９１・・・プール管理情報
９２・・・ＬＤＥＶ管理情報
９３・・・フラッシュメモリパッケージ管理情報
１００，１００Ａ・・・ストレージコントローラ
１０１・・・仮想ボリューム
１０２・・・ＬＤＥＶ
１１１・・・プール割り当てテーブル
１１２・・・空きチャンクリスト
【発明を実施するための最良の形態】
【００１２】
以下、各図を参照しながら本発明の実施形態の一例を説明する。
【実施例１】
【００１３】
図１は、ストレージシステムの構成例を示す図である。【００１４】
ストレージシステム１は、例えば、複数のフラッシュメモリモジュールを備えるストレージ装置である。ストレージシステム１には、上位装置の一種でありＩ／Ｏ（Input/Output）要求を発行するホスト計算機２や、ストレージシステム１を管理する計算機である管理サーバ３が接続される。ストレージシステム１は、ストレージコントローラ１００とデータを格納する複数のフラッシュメモリモジュール４と、フラッシュメモリモジュール４を複数搭載できる一又は複数のフラッシュメモリパッケージ５とを有する。ストレージコントローラ１００は、データをキャッシュするためのメモリであるキャッシュメモリ６と、ストレージシステム１の制御を行う一つ以上のマイクロプロセッサ（以下、ＭＰと表記）７と、制御を行うためのデータおよびプログラムを保持するメインメモリ８と、ホスト計算機２とデータを授受する一つ以上のポート９と、フラッシュメモリパッケージ５やキャッシュメモリ６、ポート９、ＭＰ７などを相互に接続する内部ネットワーク１０とを備える。【００１５】
フラッシュメモリモジュール４とは、例えばＤＩＭＭ（Dual  Inline  Memory  Module）のような形状の、プリント基板にフラッシュメモリチップを複数搭載したメモリモジュールである。また、フラッシュメモリパッケージ５とは、例えばフラッシュメモリモジュール４を接続するための一以上のスロットと、フラッシュメモリモジュール４内のフラッシュメモリチップへのアクセスを制御する制御部（LSI）と、ストレージシステム１の内部ネットワーク１０に接続するためのコネクタとを備えた基板である。
メインメモリ８は、少なくともフラッシュメモリのブロックを管理するブロック管理情報１１を格納する。ブロック管理情報１１の一例を図２に示す。【００１６】
ブロック管理情報１１は、空きブロックリスト１３と、ブロック割り当てテーブル１４と、空きブロックカウンタ１８と、使用中ブロックカウンタ１９と、不良ブロックカウンタ２０とを含む。ここで、使用中ブロックとはデータの格納領域として割り当てられたブロックのことであり、代替ブロックを含む。また、不良ブロックとは消去回数の上限に達したブロック、または、それ以外の故障などのため使用できないブロックのことである。なお、消去回数の上限に達して不良ブロックとなったブロックにはデータを書き込むことはできないが、データを読み出すことは可能である。空きブロックとはこれら以外のブロック、すなわち使用可能かつ使用されていないブロックのことである。【００１７】
空きブロックリスト１３は、空きブロックの物理ブロックＩＤ１５を並べたリストである。物理ブロックＩＤ１５とは、ブロックをストレージシステム中で一意に特定する識別子であり、例えば、フラッシュメモリパッケージ番号、フラッシュメモリパッケージ内フラッシュメモリモジュール番号、フラッシュメモリモジュール内ブロック番号、の組み合わせで表される。【００１８】
ブロック割り当てテーブル１４は、論理的なアドレス空間におけるブロックの位置を表す論理ブロックＩＤ１６と、その論理ブロックに割り当てられたブロックの物理ブロックＩＤ１７との対応表である。論理ブロックＩＤ１６は、例えばデバイス番号とデバイス内ブロック番号との組み合せで表現される。デバイス内ブロック番号は、例えばデバイス内のアドレスをブロックのサイズで割った商である。【００１９】
空きブロックカウンタ１８、使用中ブロックカウンタ１９、不良ブロックカウンタ２０はそれぞれ、ストレージシステム内の空きブロック数、使用中ブロック数、不良ブロック数を記憶するカウンタである。【００２０】
例えば、データの格納領域として新たにブロックを割り当てるときは、ＭＰ７は、空きブロックカウンタ１８を１減らして使用中ブロックカウンタ１９を１増やす。また、ブロックが１つ使用不能になって、空きブロックを代替ブロックとして割り当てるときは、ＭＰ７は、不良ブロックカウンタ２０を１増やして空きブロックカウンタ１８を１減らす。【００２１】
次に、代替ブロックの割り当て方式について述べる。
本実施の形態では、不良ブロックが発生した場合には、ストレージコントローラが空きブロックを代替ブロックとして割り当て、不良ブロックとなった元のブロックにデータが格納されていた場合は、そのデータを代替ブロックに移す。なお、故障によって不良ブロックが発生した場合などは、元のブロックからデータを読み出せないことがある。その場合、例えばＲＡＩＤ（Redundant Arrays of Independent Disks）構成を組んでいる場合は、ストレージコントローラが、消失したデータを復元する。ストレージコントローラは、正常な他のフラッシュメモリや磁気ディスクなどに格納されたデータやパリティを用いて、元のブロックに格納されていたデータを復元し、代替ブロックに書き込むことができる。また、もしバックアップデータがあれば、バックアップデータを代替ブロックにコピーしてもよい。複数のフラッシュメモリパッケージ５を用いてＲＡＩＤ構成を組む形態については、後に第二の実施の形態として例を示す。【００２２】
本実施の形態では、ストレージシステム全体のフラッシュメモリの制御を、ストレージコントローラのＭＰ７で行うため、図３に示すように、ストレージシステム内の任意の空きブロックを、代替ブロックとして割り当てることが可能となる。即ち図３に記載されている例の様に、不良ブロックが属するフラッシュメモリモジュールとは異なるフラッシュメモリモジュール内のブロックを代替ブロックとしても良いし（ケース１）、不良ブロックが属するフラッシュメモリモジュールと接続されているフラッシュメモリパッケージとは異なるフラッシュメモリパッケージに接続されたフラッシュメモリモジュール内のブロックを代替ブロックとしても良い（ケース２）。図示はされていないが、不良ブロックが属するフラッシュメモリモジュール内から代替ブロックが選択されても良い。尚、フラッシュメモリモジュール４が増設された場合には、ＭＰ７は、増設されたフラッシュメモリモジュールのブロックを空きブロックリスト１３に登録し、追加されたブロック数だけ空きブロックカウンタ１８の値を増やす。その後、代替ブロックを割り当てるときは空きブロックリスト１３に登録されたブロックを割り当てればよい。
次に、空きブロック量の管理について説明する。【００２３】
ストレージシステム内の空きブロックが無くなると、不良ブロックが発生した時に、空きブロックを代替ブロックとして割り当てることができなくなる。そこで、ＭＰ７がシステム内の空きブロックの量を管理し、空きブロックの量が残り少なくなったら警告を発して、管理者にフラッシュメモリの増設を促す。
図４はストレージシステム内のフラッシュメモリ容量を管理するＧＵＩ（Graphical User Interface）の一例である。このＧＵＩでは、ストレージシステム１に搭載したフラッシュメモリの全容量３１と、そのうちデータが格納されたブロック（使用中）の総容量３２と、不良ブロックの総容量３３と、空きブロックの総容量（空き容量）３４とをそれぞれ表示する。そして、空き容量が残り少なくなった場合は、その旨をメッセージ表示領域３５に警告メッセージとして表示する。なお、警告を発する手段は警告メッセージに限定されず、例えば電子メールやｓｙｓｌｏｇなどを用いてもよい。【００２４】
続いて、管理サーバ３がストレージシステム内の空き容量（空きブロック量）３４を調べて警告メッセージを表示する処理の一例を図５に示す。初めに、管理サーバ３は、ＭＰ７からストレージシステム内の空きブロック量３４を取得する（ステップ４０）。次に、管理サーバ３は、空きブロック量３４が予め決められた閾値より少ないか否かを判定する（ステップ４１）。その結果、空きブロック量３４が閾値より少ない場合は、管理サーバ３は、警告メッセージを表示して（ステップ４２）、処理を終了する（ステップ４３）。空きブロック量３４が閾値より少なくなければ（すなわち空きブロック量３４が閾値以上なら）、管理サーバ３はそのまま処理を終了する。【００２５】
なお、例えばストレージ装置のＭＰ７が主体的に空きブロック量３４をチェックし、管理サーバ３へ警告メッセージを送信する形態としてもよい。そのときの処理の一例をフローチャート図６に示す。ＭＰ７は、代替ブロック割り当て処理（ステップ５０）を行った後に、空きブロック量３４が閾値より少ないか否かを判定する（ステップ５１）。空きブロック量３４が閾値より少ない場合、代替ブロック割り当て処理を行う前の空きブロック量３４が閾値以上だったか否かを判定し（ステップ５２）、真であれば警告メッセージを管理サーバ３に送信する（ステップ５３）。なおステップ５２は、警告メッセージが繰り返し送信されることを防ぐための判定である。
【実施例２】
【００２６】
次に、図７〜図１３に基づいて本発明の第二の実施の形態について説明する。
本実施形態におけるストレージシステム１の構成は、実施例１と同様であり、その一例が図１に示す構成である。【００２７】
第一の実施の形態で述べたとおり、ストレージシステム１において代替ブロックの割り当ては、ストレージシステム１内の任意のブロックに対して行うことが可能である。しかし、本実施の形態では、システムとしての信頼性を高めるために、敢えて代替ブロックの割り当て範囲を限定するものとする。一例として、フラッシュメモリパッケージ５の故障に備え、複数のフラッシュメモリパッケージ５でＲＡＩＤを構成する場合を考える。ここでは例として図７のようにフラッシュメモリパッケージ５Ａ，５Ｂを２枚使い、別々のフラッシュメモリパッケージ５Ａ，５Ｂ上の２つのブロックにそれぞれ同一のデータを格納させるという、ＲＡＩＤ１（ミラーリング）構成を組むものとする。【００２８】
この場合、ミラーリングの対となる同一データを格納した２つのブロックが同一フラッシュメモリパッケージ上に配置されると、フラッシュメモリパッケージの故障に対する冗長性が失われる。従って、あるブロックに対して代替ブロックを割り当てる場合は、図８に示すように、元のブロック（故障したブロック）と同じフラッシュメモリパッケージ内の空きブロックを、代替ブロックとして割り当てる。【００２９】
上記のように本実施の形態では、代替ブロックの割り当て範囲を限定するが、増設単位であるフラッシュメモリモジュール４を跨って代替ブロックを割り当てることは可能である。従って、不良ブロックの増加に対応すべく、フラッシュメモリモジュールを増設した場合でも、同一のフラッシュメモリパッケージ内の使用可能なブロックはそのまま使い続けることが可能である。従って、本実施形態でも、第一実施形態と同様に、フラッシュメモリ容量の効率的利用という効果を得られる。【００３０】
図９に、本実施の形態におけるＧＵＩの例を示す。本実施形態では、代替ブロックの割り当てを同一のフラッシュメモリパッケージ内に限定するので、３０Ａ，３０Ｂとして示すように、フラッシュメモリの容量の管理はフラッシュメモリパッケージごとに行う。そして、空きブロック量が残り少なくなった場合の警告メッセージもフラッシュメモリパッケージ毎に出力する。図９では、左側に示すフラッシュメモリパッケージＡの空きブロック量３４Ａが残り少なくなったため、メッセージ表示領域３５Ａに警告メッセージを表示する。【００３１】
なお本実施の形態では、ストレージシステムを稼動させたままストレージシステム１からフラッシュメモリパッケージ５を1枚ずつ抜いて、引き抜いたフラッシュメモリパッケージ５にフラッシュメモリモジュール４を増設することが可能である。【００３２】
例えば、フラッシュメモリパッケージＡ（５Ａ）にフラッシュメモリモジュール４を増設する場合を説明する。フラッシュメモリパッケージＡ（５Ａ）を閉塞させて、ストレージシステム１から取り外している間に、ホスト計算機２からデータＤ１についてのリードコマンドを受けた場合、ＭＰ７は、フラッシュメモリパッケージＢ（５Ｂ）上のデータＤ１を読み出してホスト計算機２へ送ればよい。また、ホスト計算機２からデータＤ１についてのライトコマンドを受け、そのデータをフラッシュメモリに書き込む場合、ＭＰ７は、ホスト計算機２から受信したデータでフラッシュメモリパッケージＢ（５Ｂ）上のデータＤ１を更新すればよい。そして、フラッシュメモリモジュール４の増設が終わったフラッシュメモリパッケージＡ（５Ａ）がストレージシステム１に再装着された場合に、ＭＰ７は、フラッシュメモリパッケージＢ（５Ｂ）上の各ブロックのデータを、フラッシュメモリパッケージＡ（５Ａ）上の対応するブロックへコピーさせる。このコピー処理は、リビルド処理と呼ばれる。【００３３】
なお、このときフラッシュメモリパッケージＡ（５Ａ）には元のデータが残っているので、必ずしもフラッシュメモリパッケージＡ（５Ａ）全体をリビルドする必要はない。例えば、フラッシュメモリ増設中に書き込みが行われたアドレスに対応するブロックを、ＭＰ７がビットマップなどを用いて記録しておき、それらの更新されたブロックのみリビルドを行うようにすることで、リビルド時間を短縮することができる。各ブロックへの書き込みの有無を示す更新ブロックビットマップを追加したブロック管理情報１１Ｂの一例を、図１０に示す。更新ブロックビットマップＡ（６０Ａ）はフラッシュメモリパッケージＡについての更新ブロックビットマップであり、更新ブロックビットマップＢ（６０Ｂ）はフラッシュメモリパッケージＢについての更新ブロックビットマップである。なお、空きブロックカウンタ１８、使用中ブロックカウンタ１９、不良ブロックカウンタ２０についても、フラッシュメモリパッケージＡとフラッシュメモリパッケージＢとで別々のカウンタが用いられる。【００３４】
図１１に、この更新ブロックビットマップに更新箇所を記録する処理を含めた、フラッシュメモリへのデータ書き込み処理（デステージ処理）のフローチャートを示す。始めに、ＭＰ７は、デステージ対象のデータを選択する（ステップ６１）。次にＭＰ７は、ブロック割り当てテーブル１４を用いて、デステージ先のデバイス番号とアドレスから、データを格納すべきデステージ対象のブロックの物理ブロックＩＤを特定する（ステップ６２）。ここでは、ミラーリングを行うため、異なる２個のブロックの物理ブロックＩＤをそれぞれ特定する。【００３５】
続いてＭＰ７は、1つめのデステージ対象のブロックを含むパッケージが閉塞中か否かを判定し（ステップ６３）、閉塞中であれば、更新ブロックビットマップのうち、その1つめのブロックに対応するビットをＯＮにする（ステップ６４）。もし閉塞中でなければ、その１つめのブロックにデータを書き込む（ステップ６５）。【００３６】
次にＭＰ７は、2つめのデステージ対象のブロックを含むパッケージが閉塞中か否かを判定し（ステップ６６）、閉塞中であれば、更新ブロックビットマップのうち、その２つめのブロックに対応するビットをＯＮにする（ステップ６７）。もし閉塞中でなければ、その２つめのブロックにデータを書き込む（ステップ６８）。【００３７】
図１２は、更新ブロックビットマップを用いたリビルド処理のフローチャートである。始めにＭＰ７は、フラッシュメモリモジュール４の増設されたフラッシュメモリパッケージ５に含まれる先頭のブロックを、コピー先ブロックとする（ステップ７１）。そして、更新ブロックビットマップのうち、コピー先ブロックに対応するビットを参照する（ステップ７２）。次にこのビットがＯＮか否かを判定し（ステップ７３）、ビットがＯＮであれば、ミラーリングの対となるコピー元ブロックからコピー先ブロックにデータをコピーさせる（ステップ７４）。ＭＰ７は、更新ブロックビットマップのうちコピー先ブロックに対応するビットをOFFにする（ステップ７５）。もしビットがＯＦＦなら（ステップ７３でNOと判定）、ステップ７４およびステップ７５をスキップしてステップ７６に進む。次にＭＰ７は、現在のコピー先ブロックがフラッシュメモリパッケージ内の最終ブロックか否かを判定し（ステップ７６）、最終ブロックならばリビルド処理を終了する（ステップ７７）。最終ブロックでなければ、次のブロックをコピー先ブロックとして（ステップ７８）ステップ７２に戻り、処理を続ける。【００３８】
以上、本実施の形態ではＲＡＩＤ１の場合について述べたが、本発明の実施形態はこれには限らず、例えばＲＡＩＤ５やＲＡＩＤ６などの構成をとることもできる。例えばＲＡＩＤ５（３Ｄ＋１Ｐ）の場合は、図１３のようにデータ（Ｄ１，Ｄ２、Ｄ３）と、それに対応するパリティ（Ｐ）を、それぞれ別のフラッシュメモリパッケージ５Ａ〜５Ｄに配置すればよい。もちろん、リビルドの処理を行うときや、ホストからのリード・ライトを受けたときは、ＲＡＩＤ１の場合とは違い、パリティ演算によってデータやパリティを作る。【００３９】
また、本実施の形態では、代替ブロックの割り当て範囲の一例としてフラッシュメモリパッケージを挙げたが、本発明の実施形態はこれに限らない。ストレージシステム全体を割り当て範囲とするのに比べて冗長性が高められればよい。従って、ストレージコントローラは、ストレージシステムを任意の条件で複数のパーティションに分割し、代替ブロックの割り当てを各パーティション内のみに制限することができる。例えば電源境界やストレージ装置の筐体などで区切られる範囲を、代替ブロックの割り当て範囲（即ちパーティション）とすることも考えられる。【００４０】
なお、第一の実施の形態および第二の実施の形態ではストレージシステムに対してフラッシュメモリを増設しやすいように、フラッシュメモリモジュール４をフラッシュメモリパッケージ５に搭載する形態としたが、本発明の実施形態はこれに限定されず、例えばフラッシュメモリチップを搭載した基盤を箱状のメモリカートリッジに格納し、このメモリカートリッジをストレージ装置に接続するなどの形態にしてもよい。
【実施例３】
【００４１】
次に図１４〜図２１に基づいて本発明の第三の実施例について説明する。図１４は、本実施例におけるストレージシステムの構成を示す図である。本実施例では、ストレージシステム１の備える複数のデータ転送経路（バックエンドパス８０）に、それぞれ複数のフラッシュメモリパッケージ５を接続可能とする。このような構成にすることで、多量のフラッシュメモリを接続しやすくなり、ストレージシステムの大容量化が容易になる。【００４２】
例えば、基本筐体に増設筐体を接続することにより、ストレージシステム１の記憶容量を段階的に増減可能な構成にすることができる。その場合、基本筐体内には、ストレージコントローラ１０１Ａ（ストレージコントローラ１０１Ａは、例えば、ＭＰ７，メインメモリ８，キャッシュメモリ６，ポート９，内部ネットワーク１０等を含んで構成される。）と、一つまたは複数のフラッシュメモリパッケージ５とが設けられる。一つまたは複数の増設筐体内には、別の複数のフラッシュメモリパッケージ５が設けられる。従って、増設筐体の単位で記憶容量を増減させることができる。さらに、増設筐体内に設けるフラッシュメモリパッケージ５の枚数を調整することにより、フラッシュメモリパッケージ単位で記憶容量を増減させることができる。さらに、フラッシュメモリパッケージ５内のフラッシュメモリチップ４Ａの個数を調整することにより、フラッシュメモリチップ単位で記憶容量を増減させることもできる。【００４３】
本実施例では、２つ以上のバックエンドパス８０からそれぞれ１つずつフラッシュメモリパッケージ５を選び、これら選択されたフラッシュメモリパッケージ５によってＲＡＩＤグループを構成する。なお、図１４では、一例としてバックエンドパス８０を４本とし、各バックエンドパス８０の同じ位置にある４つのフラッシュメモリパッケージ５からＲＡＩＤグループを構成しているが、バックエンドパス８０の本数やフラッシュパッケージ５の位置関係は上記の例に限定されない。また、ここでは例としてＲＡＩＤ５の場合について述べるが、ＲＡＩＤ６やＲＡＩＤ１など、他のＲＡＩＤレベルでも同様の方式を適用できる。【００４４】
図１４において、ホスト計算機２、管理サーバ３、キャッシュメモリ６、ＭＰ７、メインメモリ８、ポート９、内部ネットワーク１０は、図１に示した第一の実施例のものと同様である。本実施例におけるブロック管理情報１１Ａの内容については後で説明する。【００４５】
本実施例では、図１５に示すように、代替ブロックの割り当て範囲を、元のブロック（不良ブロック）が含まれるフラッシュメモリパッケージ５Ｃと同じバックエンドパス８０Ｂに接続されたフラッシュメモリパッケージ５Ｄ内のブロックに限定する。こうすることで、あるバックエンドパス８０が故障した場合でも、不良ブロックに記憶されているデータを、他の正常なブロック内のデータ及びパリティによって復元させて、ホスト計算機２にアクセスさせることが可能となる。【００４６】
上記の例において、不良ブロックを有するフラッシュメモリパッケージ５Ｃ及び代替ブロックを有するフラッシュメモリパッケージ５Ｄがそれぞれ接続されている、バックエンドパス８０Ｂが故障した場合を考える。この場合、代替ブロック内のデータにアクセスすることはできないが、代替ブロック内のデータと同一のストライプ（パリティ列）に属する他の各データ及びパリティにアクセスすることはできる。従って、いわゆるコレクションコピー技術によって、代替ブロックに記憶されているデータを復元させて、ホスト計算機２に提供することができる。【００４７】
不良ブロックを有するフラッシュメモリパッケージ５Ｃが接続されているバックエンドパス８０Ｂとは別のバックエンドパス８０Ａに接続されている、フラッシュメモリパッケージ５Ａ内のブロックを代替ブロックとして使用した場合を考える。この場合、代替ブロックを有するフラッシュメモリパッケージ５Ａの接続先であるバックエンドパス８０Ａが故障すると、その代替ブロック内のデータにアクセスすることはできない。そればかりか、代替ブロック内のデータと同一パリティ列に属する他の各データまたはパリティの一部にもアクセスできないため、いわゆる二重障害が発生し、ＲＡＩＤ５のコレクションコピーでは対応することができない。【００４８】
即ち、同一パリティ列に属する各データ及びパリティは、それぞれ異なるバックエンドパスに接続される各フラッシュメモリパッケージ５に分散して配置される必要がある。もしもそうでなければ、いずれか一つのバックエンドパスに、同一のパリティ列に属する各データまたはパリティが複数対応付けられることになる。そのバックエンドパスに障害が発生した場合は、ＲＡＩＤ５によるデータ回復技術を利用することはできない。なお、ＲＡＩＤ６の場合は、２つのパリティを使用するため、二重障害にも対応できる。しかし、３つ以上のデータまたはパリティの読み出しに障害が発生した場合には、対応することができない。従って、ＲＡＩＤ６の場合も、上述のＲＡＩＤ５の場合を応用することにより、フラッシュメモリを用いるストレージシステム１の信頼性を高めることができる。【００４９】
なお、本実施例では、フラッシュメモリチップ４Ａをフラッシュメモリパッケージ５に直接搭載する例を示すが、第一および第二の実施の形態と同様に、フラッシュメモリモジュール４をフラッシュメモリパッケージ５に接続する構成でもよい。【００５０】
さらに後述のように、フラッシュメモリパッケージ５を跨いで代替ブロック割当を行う場合に、データとパリティの組（以下、パリティ列と呼ぶ）が同一ＲＡＩＤグループに配置されるよう、パリティ列を同時に移動させる構成にしてもよい。こうすることで、あるフラッシュメモリパッケージ５が故障した場合の影響範囲を、その故障したフラッシュメモリパッケージ５の属するＲＡＩＤグループ内に止めることができる。【００５１】
本実施例におけるブロック管理情報１１Ａの一例を図１６に示す。例えば、ブロック管理情報１１Ａは、プール管理情報９１と、ＬＤＥＶ管理情報９２と、フラッシュメモリパッケージ管理情報９３とを含む。【００５２】
本実施例では、図１７に示すように、論理デバイス（ＬＤＥＶ）１０２を小領域（チャンク）に分けて管理し、これらのチャンクに対して仮想ボリューム１０１のチャンクをマッピングする。ホスト計算機２は、この仮想ボリューム１０１をＬＵ（Logical Unit）として認識し、仮想ボリューム１０１に対して読み書きを行う。ストレージシステム１は、ホスト計算機２からの読み書き要求に対応して、アクセスされた仮想ボリューム１０１のアドレスに対応するＬＤＥＶ１０２上のアドレスからデータを読んでホスト計算機２に返送したり、または、ホスト計算機２から受信したライトデータをそのアドレスに書き込んだりする。【００５３】
図１８に、本実施の形態におけるプール管理情報９１の一例を示す。プール管理情報９１は、プール割り当てテーブル１１１と、空きチャンクリスト１１５とを含む。プール割り当てテーブル１１１は、ＬＤＥＶ１０２内のチャンクのマッピングを管理するためのテーブルである。このプール割り当てテーブル１１１は、仮想ボリューム１０１内の各チャンクを識別するための識別子１１２と、仮想ボリューム上の各チャンクがマッピングされたＬＤＥＶの番号１１３と、ＬＤＥＶ内のチャンク番号１１４とを含む。空きチャンクリスト１１５は、仮想ボリューム１０２に割り当てられていないチャンク（つまり、空きチャンク）を管理するためのリストである。この空きチャンクリスト１１５は、ＬＤＥＶ番号１１６およびチャンク番号１１７とを含む。【００５４】
図１９に、ＬＤＥＶ管理情報９２の一例を示す。ＬＤＥＶ管理情報９２は、各ＬＤＥＶ１０１の番号１２１と、各ＬＤＥＶ１０２が含まれるＲＡＩＤグループの番号１２２と、ＲＡＩＤグループにおけるＬＤＥＶの開始アドレス１２３と、ＬＤＥＶの開始位置の論理ブロック番号１２４とを含む。開始アドレス１２３とＬＤＥＶ内の開始位置の論理ブロック番号１２４とは、表現方法が異なっているが、それぞれ同一の場所を示している。ここでは、理解の便宜上、開始アドレス１２３と開始位置の論理ブロック番号１２４とを併記している。【００５５】
図２０に、フラッシュメモリパッケージ管理情報９３の一例を示す。フラッシュメモリパッケージ管理情報９３は、例えば、ブロック割り当てテーブル１３１と、空きブロックリスト１３２と、空きブロックカウンタ１３８と、使用中ブロックカウンタ１３９と、不良ブロックカウンタ１４０とを備える。【００５６】
ブロック割り当てテーブル１３１は、論理的なアドレス空間におけるブロックの位置を表す論理ブロック番号１３３と、その論理ブロックに割り当てられたブロックの属するフラッシュメモリチップの番号１３４と、ブロック番号１３５との対応を示すテーブルである。論理ブロック番号１３３とは、例えばＬＤＥＶ内の論理アドレスをブロックのサイズで割った商である。チップ番号１３４とは、例えばフラッシュメモリパッケージ５内で一意なフラッシュメモリチップ４Ａの番号である。ブロック番号とは、例えばフラッシュメモリチップ４Ａ内のアドレスをブロックのサイズで割った商である。【００５７】
空きブロックカウンタ１３８は、フラッシュメモリパッケージ５内の空いているブロックの数を記憶するためのカウンタである。使用中ブロックカウンタ１３９は、フラッシュメモリパッケージ５内で使用されているブロックの数を記憶するためのカウンタである。不良ブロックカウンタ１４０は、フラッシュメモリパッケージ５内の不良ブロック数を記憶するためのカウンタである。【００５８】
図２１に示すように、ストレージシステムの信頼性を高めるために、予めスペア用のフラッシュメモリパッケージ５Ｄを搭載する構成としてもよい。あるフラッシュメモリパッケージが故障した場合には、その故障したフラッシュメモリパッケージに含まれる全データを、スペア用のフラッシュメモリパッケージ５Ｄに移動させることができる。【００５９】
例えばＲＡＩＤ５の場合は、ＲＡＩＤグループ内の他のフラッシュメモリパッケージに格納されたデータおよびパリティを用いて、故障したフラッシュメモリパッケージに格納されていたデータを復元し、スペア用のフラッシュメモリパッケージに書き込む。または、元のフラッシュメモリパッケージからデータを読み出すことができなくなる前に、当該フラッシュメモリパッケージ内のデータをスペア用フラッシュメモリパッケージにコピーしてもよい。【００６０】
スペア用のフラッシュメモリパッケージは、バックエンドパス８０毎にそれぞれ別々に設けることもできる。但し、その場合は、スペア用のフラッシュメモリパッケージの数が増えるため、ストレージシステムの導入コストが増大する。【００６１】
１つのスペア用フラッシュメモリパッケージを、全てのバックエンドパス８０で共有することもできる。このような方式を、ここではグローバルスペア方式と呼ぶ。グローバルスペア方式を使えば、スペア用フラッシュメモリパッケージの数を少なくして、ストレージシステムの初期導入コストを減らすことができる。【００６２】
グローバルスペア方式を採用する場合、故障したフラッシュメモリパッケージに格納されていたデータを全て格納させることができるように、グローバルスペア用のフラッシュメモリパッケージには、少なくとも通常のフラッシュメモリパッケージ１枚分の空き容量が必要になる。【００６３】
また、ストレージシステムの信頼性を高めるためには、それぞれ異なるバックエンドパスに接続されているフラッシュメモリパッケージに格納されているデータを、グローバルスペア用のフラッシュメモリパッケージに混在させないほうがよい。即ち、それぞれ異なるパリティ列に属するデータ等（データ及びパリティをデータ等と呼ぶ）が、一つのグローバルスペア用のフラッシュメモリパッケージに集まってしまうと、冗長性が失われて、ストレージシステムの信頼性が低下するおそれがある。【００６４】
そのため、本実施例では、図２１に示すように、ストレージコントローラは、グローバルスペア用フラッシュメモリパッケージ内のブロックを、不良ブロックに対する代替ブロックとしては割り当てない。つまり、本実施例では、グローバルスペア用のフラッシュメモリパッケージを、その本来の目的である、通常のフラッシュメモリパッケージの交換用パッケージとして使用する。従って、グローバルスペア用のフラッシュメモリパッケージ内の各空きブロックは、代替ブロックとして選択されないようになっている。【００６５】
故障したフラッシュメモリパッケージが新しいフラッシュメモリパッケージに交換された場合、グローバルスペア用フラッシュメモリパッケージに退避されていたデータを、新しいフラッシュメモリパッケージにコピーする。そして、データのコピーされた新しいフラッシュメモリパッケージを使用する。データコピー完了後、グローバルスペア用フラッシュメモリを、別のフラッシュメモリパッケージのスペアとして使うことができる。このように構成される本実施例も前記各実施例と同様の効果を奏する。さらに、本実施例に特有の構成に基づいて、上述した効果を奏する。
【実施例４】
【００６６】
図２２は、第四実施例に係るストレージシステムにおいて、代替ブロックを割り当てる様子を模式的に示す説明図である。図２２では、便宜上、１つのパリティ列に２つのデータのみが含まれるかのように示しているが、実際には、３個以上のデータ及びパリティが含まれる。本実施例では、あるデータＤ１Ａを記憶するブロック２１Ａに障害（書込み不能障害）が発生した場合、同一バックエンドパス８０Ａ上に存在する別のブロック２１Ｃを代替ブロックとして使用する。【００６７】
さらに、不良ブロック２１Ａに記憶されていたデータＤ１Ａと同一のパリティ列（ストライプ列）に属する他のデータＤ２Ｂを記憶する他のブロック２１Ｂにも、同一バックエンドパス８０Ｂ上に存在する他の代替ブロック２１Ｄを割り当てる。【００６８】
つまり、本実施例では、パリティ列が乱れないように、あるパリティ列に属するデータが代替ブロックに移動された場合は、そのパリティ列に属する他のデータ等も、それぞれ適切な代替ブロックに移動させる。簡単に言えば、パリティ列を平行に移動させる。これにより、フラッシュメモリパッケージが２つ以上故障することによるデータ喪失の発生確率を小さくすることができる。【００６９】
例えば、フラッシュメモリパッケージ５Ｃに障害が発生した場合、そのフラッシュメモリパッケージ５Ｃと同一のＲＡＩＤグループに属する他のフラッシュメモリパッケージ５Ｄを用いて、フラッシュメモリパッケージ５Ｃ内のデータを復元することができる。このとき、もしも、フラッシュメモリパッケージ５Ｃ内のデータの復元が完了する前に他のＲＡＩＤグループに属するフラッシュメモリパッケージ（例えば５Ｂ）に障害が発生しても、フラッシュメモリパッケージ５Ｃ内のデータの復元を継続することができる。【００７０】
これに対し、もしも、パリティ列に属する各データ等を一斉に平行移動させずに、不良ブロック内のデータのみを別のＲＡＩＤグループに属する代替ブロックに移し替える場合を検討する。もしも、その代替ブロックを有するフラッシュメモリパッケージ５Ｃに障害が発生すると、そのフラッシュメモリパッケージ５Ｃと同一のＲＡＩＤグループに属するフラッシュメモリパッケージ５Ｄに加えて、移転元のＲＡＩＤグループに属するフラッシュメモリパッケージ５Ｂにおいても、コレクションコピー等の処理が実行される。このとき、もしも、フラッシュメモリパッケージ５Ｃ内のデータの復元が完了する前にフラッシュメモリパッケージ５Ｂに障害が発生すると、二重障害となりデータが失われる可能性がある。そのため、本実施例では、あるパリティ列に属するデータが代替ブロックに移動された場合は、そのパリティ列に属する他のデータ等も、それぞれ適切な代替ブロックに移動させる。このように構成される本実施例も、第３実施例と同様の効果を奏する。
【実施例５】
【００７１】
図２３に基づいて第五実施例を説明する。図２３は、本実施例に係る代替ブロックの割り当て処理を示すフローチャートである。この処理は、ＭＰ７によって実行される。ＭＰ７は、不良ブロックが発生したか否かを監視している（ステップ２００）。不良ブロックとは、書込み不能になったブロック、または、書込み不能になる可能性の高いブロックである。【００７２】
不良ブロックが検出されると、ＭＰ７は、所定の条件を満たす空きブロックを検出する（ステップ２０１）。所定の条件としては、例えば、以下のようなものを例示的に列挙することができる。
（条件１）同一バックエンドパスに存在する空きブロックであること。
（条件２）新たに取り付けられたフラッシュメモリパッケージ内の空きブロックであること。
（条件３）不良ブロックと同一のフラッシュメモリチップに属する空きブロックであること。
（条件４）不良ブロックと同一のフラッシュメモリモジュールに属する空きブロックであること。
（条件５）不良ブロックと同一のフラッシュメモリパッケージに属する空きブロックであること。
（条件６）グローバルスペア用フラッシュメモリパッケージ内の空きブロックではないこと。【００７３】
ＭＰ７は、上記各条件１−６のうちいずれか一つの条件、または、所定の複数の条件に合致する空きブロックを、代替ブロックとして選択し、不良ブロックに割り当てる（ステップ２０２）。ＭＰ７は、不良ブロック内のデータを代替ブロックにコピーさせる（ステップ２０３）。【００７４】
さらに、ＭＰ７は、第４実施例で述べたように、不良ブロック内のデータと同一のパリティ列に属する他のデータ等を記憶する他の各ブロックについても、それぞれ適切な代替ブロックを選択し、他のデータ等を移動させる（ステップ２０４）。このように構成される本実施例も、前記第３、第４実施例と同様の効果を奏する。【００７５】
なお、第３〜第５実施例では、各フラッシュメモリパッケージを１本ずつのバックエンドパスに接続される構成としたが、さらに信頼性を高めるために、各フラッシュメモリパッケージに複数のバックエンドパスを接続してもよい。【００７６】
さらに、前記各実施例ではキャッシュメモリ６とメインメモリ８を別々のメモリとして示したが、本発明はこれに限定されず、例えば、ホスト計算機２から書き込まれたデータと、プログラムと、制御のためのデータとを、同一のメモリに格納してもよい。  
【図１】
2009130848.tif 000003
【図２】
2009130848.tif 000004
【図３】
2009130848.tif 000005
【図４】
2009130848.tif 000006
【図５】
2009130848.tif 000007
【図６】
2009130848.tif 000008
【図７】
2009130848.tif 000009
【図８】
2009130848.tif 000010
【図９】
2009130848.tif 000011
【図１０】
2009130848.tif 000012
【図１１】
2009130848.tif 000013
【図１２】
2009130848.tif 000014
【図１３】
2009130848.tif 000015
【図１４】
2009130848.tif 000016
【図１５】
2009130848.tif 000017
【図１６】
2009130848.tif 000018
【図１７】
2009130848.tif 000019
【図１８】
2009130848.tif 000020
【図１９】
2009130848.tif 000021
【図２０】
2009130848.tif 000022
【図２１】
2009130848.tif 000023
【図２２】
2009130848.tif 000024
【図２３】
2009130848.tif 000025
【国際調査報告】
2009130848.tif 000026
2009130848.tif 000027