(57)【要約】【課題】  データセンタにおいてはストレージ装置に供給される電源容量に制限があり、記憶容量追加の追加によりストレージ装置の定格消費電力が供給電源容量を超えてしまうおそれがある。【解決手段】本発明のストレージ装置は、複数個のフラッシュメモリおよび前記フラッシュメモリを制御する回路を搭載した１つまたは複数のパッケージで構成され、かつ、供給電源容量情報を有する。前記供給電源容量情報に基づき前記パッケージの各々に対して、同時に書き込みまたは消去または読み出しを行うフラッシュメモリの数を指定する。【選択図】  図１
2010049586.tif 000002
【特許請求の範囲】
【請求項１】
複数のフラッシュメモリと前記複数のフラッシュメモリを制御するフラッシュメモリ制御部と、
ストレージ制御部と、
供給電源容量情報を格納する記憶部とを有し、
前記ストレージ制御部が前記供給電源容量情報に基づき、並列に書き込み、消去または読み出しを行う前記フラッシュメモリの第１の並列処理可能数を決定することを特徴とするストレージ装置。
【請求項２】
上記記憶部は、上記ストレージ装置中の常時稼動部位の消費電力と１の前記フラッシュメモリの消費電力を記憶し、
前記供給電源容量情報、前記常時稼動部位の消費電力と前記フラッシュメモリの消費電力の情報から、前記電源容量を超えない範囲で動作可能な前記第１の並列処理可能数を求めることを特徴とする請求項１記載のストレージ装置。
【請求項３】
前記フラッシュメモリの消費電力は、書き込み時の消費電力、消去時の消費電力または読み出し時の消費電力の少なくとも何れかであることを特徴とする請求項２記載のストレージ装置。
【請求項４】
前記複数のフラッシュメモリと前記複数のフラッシュメモリを制御するフラッシュメモリ制御部はパッケージ化されており、
前記ストレージ制御部は、更に、前記パッケージ毎に前記フラッシュメモリの第２の並列処理可能数を決定することを特徴とする請求項１記載のストレージ装置。
【請求項５】
前記パッケージが複数備えられ、
前記パッケージ内に備えられる前記複数のフラッシュメモリ数に応じて前記複数のパッケージ毎の前記第２の並列処理可能数を決定することを特徴とする請求項４記載のストレージ装置。
【請求項６】
前記パッケージが複数備えられ、
前記パッケージ内でアクセスされる前記複数のフラッシュメモリ数に応じて前記複数のパッケージ毎の前記第２の並列処理可能数を決定することを特徴とする請求項４記載のストレージ装置。
【請求項７】
前記ストレージ装置に接続されるホスト装置からのアクセスごとに、前記ストレージ制御部が前記第２の並列処理可能数の決定を行うことを特徴とする請求項４記載のストレージ装置。
【請求項８】
前記ストレージ装置の電源投入時、前記パッケージの増減時の少なくとも何れかにおいて前記第１の並列処理可能数の決定を行うことを特徴とする請求項４記載のストレージ装置。
【請求項９】
前記パッケージへのライトコマンド又はリードコマンドとともに前記第２の並列処理可能数が発行され、
前記並列処理可能数を受信した前記パッケージのフラッシュメモリ制御部は、該第２の並列処理可能数以下の前記フラッシュメモリが並列に動作するように書き込み動作開始コマンドの転送、リード転送又は消去コマンドの転送のタイミングを制御することを特徴とする請求項４記載のストレージ装置。
【請求項１０】
少なくとも２つの前記複数のパッケージに備えられるフラッシュメモリの種類が異なる場合は、
前記ストレージ制御部は、前記フラッシュメモリの種類ごとに前記第１の並列処理数を決定することを特徴とする請求項１記載のストレージ装置。
【請求項１１】
前記フラッシュメモリ制御部は、
並列に２以上の前記フラッシュメモリに前記書き込み動作開始コマンドの転送、消去コマンドの転送又はリード転送を行う場合には、前記パッケージ内で異なるバスに接続される２以上の前記フラッシュメモリを選択し、
並列に２以上の前記フラッシュメモリに対する前記動作開始コマンドの転送、消去コマンドの転送又はリード転送を待機する場合には、前記パッケージ内で異なるバスに接続される２以上の前記フラッシュメモリを選択することを特徴とする請求項９記載のストレージ装置。
【請求項１２】
前記供給電源容量情報が、前記ストレージ装置に接続されたストレージ管理端末によりあらかじめ設定されることを特徴とする請求項１に記載のストレージ装置。
【請求項１３】
複数のフラッシュメモリと前記複数のフラッシュメモリを制御するフラッシュメモリ制御部とを備えたパッケージを少なくとも１つと、
供給電源容量情報を格納する記憶部とを有し、
前記供給電源容量情報に基づき前記各パッケージに対して、並列に書き込み、消去または読み出しを行う前記フラッシュメモリの並列処理可能数を決定し、
前記パッケージへのライトコマンド又はリードコマンドとともに前記並列処理可能数を発行し、
前記並列処理可能数を受信した前記パッケージのフラッシュメモリ制御部は、前記複数のフラッシュメモリの何れかに対する書き込み動作開始コマンドの転送、リード転送又は消去コマンドの転送のタイミングを待機させ、該並列処理可能数以下の前記フラッシュメモリが並列に動作するように制御することを特徴とするストレージ装置。
【請求項１４】
前記フラッシュメモリ制御部は、上記ライトコマンド又はリードコマンドの対象となるフラッシュメモリを指定する論理アドレスを物理アドレスに変換することを特徴とする請求項１３記載のストレージ装置。
【請求項１５】
複数のフラッシュメモリと前記複数のフラッシュメモリを制御するフラッシュメモリ制御部とを備えたパッケージを少なくとも１つと、
供給電源容量情報を格納する記憶部とを有し、
前記供給電源容量情報に基づいて、並列に書き込み、消去または読み出しを行う前記フラッシュメモリの第１の並列処理可能数を決定し、
受信した前記パッケージへのライトコマンド又はリードコマンドのアクセス対象となる前記フラッシュメモリが前記第１の並列処理可能数を超える場合には、前記パッケージ毎の第２の並列処理可能数を計算し、
前記ライトコマンド又はリードコマンドとともに前記第２の並列処理可能数を発行し、
前記第２の並列処理可能数を受信した前記パッケージのフラッシュメモリ制御部は、前記複数のフラッシュメモリの何れかに対する書き込み動作開始コマンドの転送、リード転送又は消去コマンドの転送のタイミングを待機させ、該第２の並列処理可能数以下の前記フラッシュメモリが並列に動作するように制御することを特徴とするストレージ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶媒体としてフラッシュメモリを搭載したストレージ装置に関し、特に、可用性を向上したストレージ装置に関する。
【背景技術】
【０００２】
従来、ディスクアレイ等のストレージ装置の記憶媒体としてはハードディスクドライブ（以下、ＨＤＤ）の搭載が主流であった。近年、不揮発性半導体メモリであるフラッシュメモリのビットコストの低下が進み、メモリーカードからＨＤＤと同じＩ／Ｆをもつソリッド・ステート・ドライブ（ＳＳＤ）に至るまで用途が拡大している。フラッシュメモリはＨＤＤと比較して、アイドル時の消費電力、ランダムアクセス性能、耐振動性に優れている。そのため将来は、性能指向のストレージ装置や省電力指向のストレージ装置においてフラッシュメモリが記憶媒体として適用されると予想される。
フラッシュメモリは前記のような特長がある反面、記憶領域の単位であるブロックの消去回数に制限があるなど使用上の制約がある。そのため記憶媒体としてフラッシュメモリを用いたストレージ装置に関する従来技術として、例えば、複数のフラッシュメモリに跨りブロックの消去回数を平準化するものがある（例えば、特許文献１）。
【０００３】
フラッシュメモリを搭載したシステムでは、性能を向上させるために複数のフラッシュメモリを並列に動作させるのが一般的である。そのため並列に動作させるフラッシュメモリの数が多いほど消費電力は増大する。このため、並列処理させるフラッシュメモリの数を選択する技術がある（例えば、特許文献２）。
【０００４】
【特許文献１】特開2007-265265号公報
【特許文献２】特開2007-193810号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
データセンタのサービスの一つであるコロケーションサービスは、ラック単位といったスペースに対して電力容量が割り当てられる。ストレージ導入時の設計では消費電力が供給電源容量に対して十分余裕があり問題なかったとしても、記憶容量の追加に伴いストレージ装置の消費電力が供給電源の能力を超える可能性がある。さらに同じ供給電源に他のＩＴ機器が追加される事も予想される。その一方で、データセンタの電力設備は増設されることを想定していないため供給電源容量を増加させる事は一般的に困難である。
フラッシュメモリを記憶媒体として適用したストレージ装置を最大定格消費電力が供給電源容量を超えた状態で使用すると、供給電圧が低下し、フラッシュメモリへのアクセスが正常に終了しないおそれがあり、その結果としてデータが破壊される可能性もある。
【０００６】
本発明は、前述した従来技術の課題を解決し、最大定格消費電力が電源の供給能力を超える場合に可用性を維持するストレージ装置を実現することを目的とする。
【課題を解決するための手段】
【０００７】
本願で開示する代表的な発明は以下の通りである。複数のフラッシュメモリと前記複数のフラッシュメモリを制御するフラッシュメモリ制御部と、ストレージ制御部と、供給電源容量情報を格納する記憶部とを有するストレージ装置であって、ストレージ制御部が記憶されている供給電源容量情報に基づき、並列に書き込み、消去または読み出しを行う前記フラッシュメモリの並列処理可能数を決定するストレージ装置。
【発明の効果】
【０００８】
本発明の一実施形態によれば、記憶媒体としてフラッシュメモリを搭載したストレージ装置において、供給電源が不足する場合でも可用性を維持したストレージ装置を実現することができる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の実施の形態について、図面を参照して説明する。
＜第１の実施形態＞
図１は、本発明の第１の実施の形態のストレージ装置１０の構成図である。ストレージ装置１０は、ホストインターフェース７０、ネットワーク７５を介してホスト計算機８０と接続される。ホスト計算機８０は、ストレージ装置１０にデータの入出力を要求する。  ストレージ装置１０は、コントローラ筐体１１、メディア筐体１２とを備える。
【００１０】
コントローラ筐体１１は、ＣＰＵ２１、ローカルメモリ２２、キャッシュメモリ２５、チャネル制御部２３、ＦＭパッケージ制御部２４、スイッチ部２６、及び管理Ｉ／Ｆ部２７を備える。
【００１１】
ＣＰＵ２１は、ローカルメモリ２２に格納されているプログラムを実行し、コントローラ筐体１１内およびメディア筐体１２内の各部品を制御するプロセッサである。ＣＰＵ２１は、例えば、ホスト計算機８０から要求されたデータの入出力に応答して、メディア筐体内１２に備わるフラッシュメモリへのデータの入出力処理を制御することができる。
ローカルメモリ２２は、ＣＰＵ２１によって実行されるプログラム及び各種データベースを格納する。なお、フラッシュメモリに格納されたプログラム及びデータが必要に応じてローカルメモリ２２にコピーされる。更に、ローカルメモリ２２は、管理Ｉ／Ｆ部２７に接続された管理端末２８により入力された情報を例えば図２、図３、図４、および図５に示すように管理する。図２乃至図５については後述する。
キャッシュメモリ２５は、ホスト計算機８０からストレージ装置１０に入力される書き込みデータ、及び、ストレージ装置１０からホスト計算機８０に出力される読み出しデータを一時的に格納する記憶領域である。キャッシュメモリ２５は、例えば、不揮発性メモリ、又はバッテリーによってバックアップされた揮発性メモリで構成されてもよい。なお、不揮発性メモリによって構成される場合、キャッシュメモリ２５は、電源遮断時でも格納されたキャッシュデータを保持することができる。また、バッテリーによってバックアップされた揮発性メモリによって構成される場合、キャッシュメモリ２５は、電源遮断時でもバッテリー容量に応じた時間だけ格納されたキャッシュデータを保持することができる。
チャネル制御部２３は、ホスト計算機８０に接続されるインターフェースであり、ホスト計算機８０からのデータの入出力要求（例えば、ブロックの入出力要求及びファイルの入出力要求）を受け付ける。ＦＭパッケージ制御部２４は、ＦＭパッケージ３０に接続されるインターフェースであり、所定のプロトコル、例えばＰＣＩ  Ｅｘｐｒｅｓｓプロトコルを用いて、ＦＭパッケージ３０にデータの入出力要求を行う。スイッチ部２６は、ＣＰＵ２１からの指示によってホスト計算機８０とＦＭパッケージ３０との間のデータ転送経路を制御する。
また、コントローラ筐体１１は、図示されないが電源モジュールを搭載し、ストレージ装置の外部より供給されるＡＣ電圧をＤＣ電圧に変換する。ＤＣ電圧は必要に応じてより低い電圧に変換され、コントローラ筐体１１内の各部品に供給される。
メディア筐体12には１つまたは複数のＦＭパッケージ３０が実装されている。ＦＭパッケージ３０は、プログラム及びユーザデータ等を格納する記憶媒体であり、外部インターフェースとしてＰＣＩ  Ｅｘｐｒｅｓｓインターフェースを有する。インターフェースの形態はこれに限らず、例えば、ＨＤＤに採用されているＦＣ（Ｆｉｂｒｅ Ｃｈａｎｎｅｌ）や、ＳＡＳ（Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩ）、あるいはＳＡＴＡ（Ｓｅｒｉａｌ  Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ）でもよい。ＦＭパッケージ３０は、可用性を向上させるために二重の入出力ポートを備え、２のＦＭパッケージ制御部２４とそれぞれ接続されてもよい。
各ＦＭパッケージ３０は、バックプレーン基板１３とコネクタにより接続される。ＦＭパッケージ３０は、バックプレーン基板１３上のＰＣＩ  Ｅｘｐｒｅｓｓスイッチ１４を介してＦＭパッケージ制御部２４と接続される。メディア筐体１２に対してＦＭパッケージ３０の挿抜が可能であり、メディア筐体１２にはＦＭパッケージ３０を装着するための１つまたは複数のスロットを有する。メディア筐体１２の全てのスロットにＦＭパッケージ３０を搭載する必要はなく、記憶容量の追加やフラッシュメモリの代替ブロック領域の追加のために、後からＦＭパッケージ３０を増設することも可能である。バックプレーン基板１３上のロジック回路１５は内部レジスタによりメディア筐体１２に搭載されているＦＭパッケージ３０の位置情報を有する。各スロットにＦＭパッケージ３０が挿入されると、スロットごとに用意されたパッケージ検知信号が反転し、内部レジスタのスロットに対応するビット値を反転させる。レジスタ値が変化するとロジック回路１５はパッケージ制御部２４を介して、ＣＰＵ２１に対して割り込み信号を発行する。ロジック回路１５はＦＭパッケージ３０が増設されたときだけでなく、減設したときもＣＰＵ２１に対して割り込み信号を発行する。ＣＰＵ２１はスイッチ１４を介してロジック回路１５内のレジスタ情報を読み出して、搭載されているＦＭパッケージ３０のスロット位置と数を知ることができる。これにより、メディア筐体１２に対するＦＭパッケージ３０の活線挿抜が可能となる。
メディア筐体１２は、複数のＦＭパッケージ３０により構成された１つまたは複数のＲＡＩＤグループを備える。例えば、図６に示すように、ＲＡＩＤグループ５０は、例えば４枚のＦＭパッケージ３０をＲＡＩＤレベル５（３Ｄ＋１Ｐ）によりグループ化することで構成される。ＲＡＩＤグループ５０は、ストレージ装置１０に接続されるストレージ管理端末２８からの指示に基づいて構成される。さらに、メディア筐体１２は、障害発生時のスペア用ＦＭパッケージとして１つまたは複数の予備のＦＭパッケージ３０を有する。ストレージ装置１０がＲＡＩＤグループにより冗長性を備えることで障害に対する信頼性が向上する。例えば、あるＦＭパッケージ３０に障害が発生してホスト装置８０からアクセスできなくなったとしても、ＣＰＵ２１が同一ＲＡＩDグループ５０に所属する他のＦＭパッケージ３０に格納されたユーザデータおよびパリティデータから、コレクションコピーにより、障害が発生したＦＭパッケージ３０のユーザデータおよびパリティデータをスペア用ＦＭパッケージ内に復旧する。以下、メディア筐体１２はＲＡIDレベル５の複数のＲＡＩDグループを有する場合を説明する。なお、メディア筐体１２へのフラッシュメモリ搭載はパッケージ形態に限られない。例えば、ＨＤＤと同じ形状とインターフェースを有する形態でもよい。または、パッケージやドライブの形態を介さずに、メディア筐体１２が複数のフラッシュメモリと、後述する１つまたは複数のフラッシュメモリ制御部を搭載してもよい。
ＲＡＩＤグループ５０上には１つまたは複数の論理ボリューム６０（以下、ＬＵ）が構成される。図６に示す例では、ＬＵ番号＃１および＃４のＬＵ６０が構成されている。ホスト装置８０はＬＵ番号やＬＵ内の論理アドレスを指定することでホスト装置８０とストレージ装置１０の間でデータの送受信を行う。ローカルメモリ２２は、図７に示すように、ＬＵとＲＡＩＤグループの対応を示すＲＡＩＤ構成管理テーブルを有する。さらに、ローカルメモリ２２は、図１７に示すように、ＬＵの論理アドレスをＦＭパッケージの論理アドレスに変換するＬＵ論理アドレス変換テーブルを有し、図７のＲＡＩＤ構成管理テーブルから生成される。
メディア筐体１２は、図示されないが電源モジュールを搭載し、ストレージ装置の外部より供給されるＡＣ電圧をＤＣ電圧に変換する。ＤＣ電圧はバックプレーン基板１３上の電圧レギュレータＩＣにより、ＦＭパッケージ３０に供給する電圧を生成する。
【００１２】
なお、図１に示す例では、ストレージ装置１０にコントロール筐体１１が１台備わっているが、複数台備わってもよい。また、ストレージ装置１０にメディア筐体１２が１台備わっているが、複数台備わってもよい。また、ストレージ装置１０は、コントロール筐体１１とメディア筐体１２を合わせた１つの筐体で構成されてもよい。
図８は、本発明の第１の形態のＦＭパッケージ３０の内部ブロック図の一例である。プリント基板（図示せず）上に１つのフラッシュメモリ制御部３１および本実施例においては１６個のフラッシュメモリ（１ａ〜４ｄ）が実装されている。フラッシュメモリの数は１６に限らない。フラッシュメモリ１ａおよび１ｂおよび１ｃおよび１ｄはバス３３によりフラッシュメモリ制御部３１と接続される。同様に２ａから４ｄまでのフラッシュメモリもバス３４，３５，３６によってフラッシュメモリ制御部に接続される。本実施例ではバス数が４つの場合について説明しているが、ＦＭパッケージ３０内の全てのフラッシュメモリを１つのバスに接続してもよいし、１つのバスに対して１つのフラッシュメモリを接続する形態でもよい。バス３３は、フラッシュメモリ選択信号およびレディ／ビジー信号を除くフラッシュメモリ制御信号およびデータバスで構成される。フラッシュメモリ制御部３１はフラッシュメモリの制御を司る。フラッシュメモリ制御部３１は例えばＡＳＩＣまたはＦＰＧＡで構成され、ファームウェアを有するＣＰＵを内蔵する。３７は外部Ｉ／Ｆであり、例えばＰＣＩ  Ｅｘｐｒｅｓｓインターフェースである。フラッシュメモリ選択信号およびレディ／ビジー信号（図示せず）は各フラッシュメモリに対して用意され、フラッシュメモリとフラッシュメモリ制御部３１の間で個別に接続される。フラッシュメモリ制御部３１は、フラッシュメモリ選択信号（図示せず）をアクティブにすることによりアクセスするフラッシュメモリを選択する。また、フラッシュメモリのレディ／ビジー信号がビジー状態（例えば、Ｌｏｗレベル）であることにより、対象フラッシュメモリが書き込み中、または、読み出し中、または、消去中であることをフラッシュメモリ制御部３１に知らせる。３２はコネクタであり、メディア筐体１２内のバックプレーン基板１３上のスイッチ１４との接続に使用される。
フラッシュメモリ制御部３１のブロック図を図９に示す。バッファ４１は書き込みデータおよび消去データの一時的な格納や、フラッシュメモリのブロックデータを一時的に退避する際に使用される記憶領域である。バッファ４１は本実施例において接続される１６個のフラッシュメモリを同時に処理できるだけのサイズを有する。ローカルＲＡＭ４５はＣＰＵ４０が実行するプログラムを格納したり、後述するように搭載フラッシュメモリの種類や個数の情報を格納する。さらに、ローカルＲＡＭ４５は図１０に示すようにＦＭパッケージ３０内の論理アドレスと、ＦＭパッケージ３０内のフラッシュメモリ番号、フラッシュメモリ内部のページアドレス、およびページ内物理アドレスを対応させる情報を図１０に示すＦＭパッケージ論理アドレス変換テーブルとして格納する。ＣＰＵ２１によって選択されたＦＭパッケージ３０がコントローラ筐体１１よりライトコマンドまたはリードコマンドを受信すると、ＣＰＵ４０は図１０のＦＭパッケージ論理アドレス変換テーブルを参照して、コントローラ筐体１１から受信したＦＭパッケージ論理アドレスをフラッシュメモリ番号、フラッシュメモリ内部のページアドレス、およびページ内物理アドレスに変換し、アクセスするフラッシュメモリを選択する。その後、ＣＰＵ４０はアクセス対象フラッシュメモリに対するアドレスおよびコマンド転送、および後述する処理の待機を行う。
転送制御部４２は、ＣＰＵ４０の指示により、バス３３乃至３６に接続されたフラッシュメモリに対するアドレスおよびコマンド転送、データ送受信を行う。転送制御部４２は主に論理回路で構成され、ＣＰＵ４０の指示を受けて、バスごとに用意されたステートマシン回路により、バス３３乃至３６に接続されたフラッシュメモリに対してバス間で影響を及ぼす事なく独立して処理することができる。Ｉ／Ｆ回路４３はコントローラ筐体１１内のパッケージ制御部２４とのインターフェースを司る回路で、例えばＰＣＩ  Ｅｘｐｒｅｓｓプロトコルチップで構成される。ＣＰＵ４０、ローカルＲＡＭ４５、バッファ４１、転送制御部４２、およびＩ／Ｆ回路４３は互いに内部バス４４で接続されている。
ストレージ装置１０に電源投入された場合、または図４の供給電源容量の情報が変更された場合、またはメディア筐体１２へのＦＭパッケージ３０の増設によりＦＭパッケージ３０に動作電圧が供給されると、フラッシュメモリ制御部３１のＣＰＵ４０は立ち上げ処理として搭載フラッシュメモリのＩＤデータを収集し、搭載フラッシュメモリの種類と個数の情報をローカルＲＡＭ４５に格納する。具体的には、ＣＰＵ４０の指示により、転送制御部４２が各バスに対してフラッシュメモリ選択信号を順番にアクティブにしてＩＤリードコマンドを発行する。フラッシュメモリが接続されていれば、ＩＤデータをリードすることができ、ローカルＲＡＭ４５に格納される。ＩＤデータはフラッシュメモリの種類に固有なコードで、フラッシュメモリのベンダ、ＳＬＣ／ＭＬＣなどフラッシュメモリの種類、メモリ容量等を識別できる。ローカルメモリ２２は、ストレージ装置１０に搭載される可能性のあるフラッシュメモリのＩＤデータと定格消費電力の関係を、後述する図２のＦＭパッケージ構成部品消費電力管理テーブルで管理する。本実施例においては、ＦＭパッケージ３０の中の搭載フラッシュメモリの種類は一種類とする。一方、容量追加が必要になった場合に、より大きい容量のフラッシュメモリが搭載されたＦＭパッケージを増設するケースもあるので、ＦＭパッケージ３０間で搭載フラッシュメモリの種類が異なる場合はありうる。
図２乃至図５は、ローカルメモリ２２にて管理される情報を説明する図である。図２はメディア筐体１２に備えられるＦＭパッケージ３０の構成部品についての定格消費電力を管理するＦＭパッケージ構成部品消費電力管理テーブルである。具体的には、ＦＭパッケージ３０内に搭載される可能性のあるフラッシュメモリ（例えば１ａ〜４ｄ）１個当たりの定格消費電力と、後述するフラッシュメモリ制御部３１及びＦＭパッケージ３０内における他の構成部品の定格消費電力の情報を管理する。フラッシュメモリ（例えば１ａ〜４ｄ）１個当たりの定格消費電力は、書き込み動作中、または消去動作中、またはリード転送中の消費電力の少なくとも何れかと等価である。ストレージ装置１０の内部に複数種類のフラッシュメモリが搭載されている場合には、フラッシュメモリ種別の毎に定格消費電力が管理される。ＦＭパッケージ構成部品消費電力管理テーブルは、図示されないがリザーブ領域を有し、新規種類のフラッシュメモリが場合には、管理端末２８により追加登録することも可能である。
図３はストレージ装置１０の常時稼働部である、コントローラ筐体１１の定格消費電力とＦＭパッケージ３０以外のメディア筐体１２の定格消費電力の情報を管理するストレージ装置構成部品消費電力管理テーブルである。図４はストレージ装置１０に供給されている電源容量の情報を管理する供給電源容量管理テーブルである。図５は各ＦＭパッケージ３０に搭載されているフラッシュメモリの種類および個数の情報を有するフラッシュメモリ構成管理テーブルである。図２乃至図４の情報は管理端末２８からの入力情報を登録することで管理される。管理の形態はこれに限られない。例えば、図２のフラッシュメモリ制御部３１及びその他構成部品の定格消費電力については、構成部品ごとに定格消費電力の情報を管理してもよい。図３のコントローラ筐体１１の定格消費電力、およびＦＭパッケージ３０以外のメディア筐体１２の定格消費電力については、それぞれの構成部品に分解して定格消費電力の情報を管理してもよいし、逆に、コントローラ筐体１１の定格消費電力とＦＭパッケージ３０以外のメディア筐体１２の定格消費電力を合算した情報を管理してもよい。例えば、図４の供給電源容量については、電源ブレーカの供給電源能力の情報を管理してもよいし、より正確には電源ブレーカの供給電源能力の情報から、同じ電源ブレーカに接続された他の装置の消費電力の情報を差し引いた情報を管理してもよい。
また、図５の情報はＦＭパッケージ３０から自動的に取得し登録することで管理されるフラッシュメモリ構成管理テーブルである。具体的には、ストレージ装置１０の立ち上げ時およびＦＭパッケージ３０の増減設時において、前述のとおり、フラッシュメモリ制御部３１内のＣＰＵ４０が搭載フラッシュメモリの種類と個数の情報をローカルＲＡＭ４５に格納する。また、ＦＭパッケージ３０の増減設時はロジック回路１５内のレジスタ値が変更されるので、ロジック回路１５がＣＰＵ２１に対して割り込み信号を発行する。その結果、ＣＰＵ２１は各ＦＭパッケージ３０にアクセスして、搭載フラッシュメモリの種類や個数の情報を取得することができ、図５の情報として登録することができる。図５の情報の管理の形態は以上に限られず、管理端末２８からの入力情報を登録することでも管理されても良い。図２乃至図５の情報の中で、個別管理が必要な情報は、フラッシュメモリの定格消費電力、およびストレージ装置１０への供給電源容量、およびＦＭパッケージ３０ごとのフラッシュメモリの種類及び搭載数である。尚、情報の管理の仕方は図２乃至図５に限らず、ストレージ装置１０への供給電源容量と、常時電力が消費されている部分の消費電力と、種類毎のフラッシュメモリ部分の消費電力とが管理されていれば良い。
【００１３】
図１１に供給電力が十分である場合のＦＭパッケージ３０に備えられる１６個のフラッシュメモリ１ａ〜４ｄに対してのライト処理について、横軸に時間経過をとって説明する。ここではライトアクセスの対象となるフラッシュメモリのページは消去されているものとする。フラッシュメモリ制御部３１はライトアクセスに際して、アクセス対象となるページのアドレスを書き込み対象のフラッシュメモリに転送する。つづいて、フラッシュメモリ制御部３１はライトイネーブル信号を制御して１ページ（例えば２Ｋバイト）のライトデータを書き込み対象のフラッシュメモリ内のレジスタに１バイトずつ転送する。更に、フラッシュメモリ制御部３１は書き込みコマンドの転送も行い、ライトデータと書き込みコマンドを受信したフラッシュメモリは、レジスタ内のライトデータをメモリに書き込む。ライトデータをメモリに書き込んでいる間はレディ／ビジー信号はビジー状態（例えば、Ｌｏｗレベル）となっており、書き込みが終了するとレディ／ビジー信号がレディ状態（例えば、Ｈｉｇｈレベル）に戻る。これがフラッシュメモリ制御部３１への割り込み信号となり、フラッシュメモリ制御部３１が対象フラッシュメモリへのライトアクセスの終了を検知することができる。ライトデータの転送において、フラッシュメモリ１ａおよび１ｂおよび１ｃおよび１ｄはバス３３を共有しているため、フラッシュメモリ制御部３１は、２以上のフラッシュメモリに同時にライトデータの転送はできない。次の書き込み動作についてはコマンドを発行した後はバスを占有しないので同一バスに接続された複数のフラッシュメモリで同時に処理することが可能である。フラッシュメモリ２ａ〜２ｄはバス３４によってフラッシュメモリ制御部３１に接続されており、フラッシュメモリ１ａ〜１ｄとはバスを共有しない。よって、フラッシュメモリ１ａ〜１ｄへのライト転送とフラッシュメモリ２ａ〜２ｄへのライト転送とは並列に処理することが可能である。バス３５によって接続されるフラッシュメモリ３ａ〜３ｄ、バス３６によって接続されるフラッシュメモリ４ａ〜４ｄについても同様である。これらの事情から、なるべく早くにライト処理を終了させるためには、図１１に示すようなタイミングで処理を行うことが一般的である。
図１２に供給電力が十分である場合のＦＭパッケージ３０に備えられる１６個のフラッシュメモリ１ａ〜４ｄに対してのライト処理について、ライトアクセスの対象となるフラッシュメモリのページは消去されていない場合について説明する。ここでは、同一ブロックに属する他の有効ページデータは予めバッファ４１に退避されているものとする。ライトアクセスさせるページは必ず消去されている必要があるので、フラッシュメモリ制御部３１は各フラッシュメモリに対して順番に消去コマンドを発行する。消去動作は各フラッシュメモリで並列に実行でき、消去動作中はレディ／ビジー信号はビジー状態（例えば、Ｌｏｗレベル）となっている。消去動作が終了するとレディ／ビジー信号がレディ状態（例えば、Ｈｉｇｈレベル）に戻る。これがフラッシュメモリ制御部３１への割り込み信号となり、フラッシュメモリ制御部３１が対象フラッシュメモリの消去動作の終了を検知することができる。各ブロックの消去が終了した後は、フラッシュメモリ制御部３１は図１１での説明と同様な処理によりライト処理を実行することができる。
図１３に横軸に時間経過をとってＦＭパッケージ３０に備えられる１６個のフラッシュメモリへのリード処理について説明する。フラッシュメモリ制御部３１はリードアクセスに際して、アクセス対象となるページのアドレスを読み出し対象のフラッシュメモリに転送する。つづいて、フラッシュメモリ制御部３１が読み出しコマンドの転送を行うと、対象フラッシュメモリはアクセス対象であるメモリ領域から１ページ（例えば２Ｋバイト）のリードデータをフラッシュメモリ内のレジスタへ読みだす。この間、レディ／ビジー信号はビジー状態（例えば、Ｌｏｗレベル）となっており、レジスタへの読み出しが終了するとレディ／ビジー信号がレディ状態（例えば、Ｈｉｇｈレベル）に戻る。これがフラッシュメモリ制御部３１への割り込み信号となり、フラッシュメモリ制御部３１がリードデータ転送の準備完了を検知することができる。つづいて、フラッシュメモリ制御部３１はリードイネーブル信号を制御してレジスタ内のリードデータを１バイトずつ読み出し、フラッシュメモリ制御部３１内のバッファ４１に格納する。
レジスタへの読み出し動作については読み出しコマンドを発行した後はバスを占有しないので同一バスに接続された複数のフラッシュメモリで同時に処理することが可能である。フラッシュメモリ１ａおよび１ｂおよび１ｃおよび１ｄはバス３３を共有しているため、フラッシュメモリ制御部３１は、バス３３に接続された２以上のフラッシュメモリから同時にリードデータを転送することができない。ただし、リード転送が終了したフラッシュメモリに対してコマンド転送により、次のページデータをレジスタへ読み出す処理と並列に、同一バスの他のフラッシュメモリからのリードデータ転送を処理することは可能である。フラッシュメモリ２ａ〜２ｄはバス３４によってフラッシュメモリ制御部３１に接続されており、フラッシュメモリ１ａ〜１ｄとはバスを共有しない。よって、フラッシュメモリ１ａ〜１ｄへのリード転送とフラッシュメモリ２ａ〜２ｄへのリード転送とは並列に処理することが可能である。バス３５によって接続されるフラッシュメモリ３ａ〜３ｄ、バス３６によって接続されるフラッシュメモリ４ａ〜４ｄについても同様である。これらの事情から、なるべく早くにリード処理を終了させるためには、図１３に示すようなタイミングで処理を行うことが一般的である。
通常、ストレージ装置の初期設定時においては、ストレージ装置に備えられるフラッシュメモリを制御するのに十分な電源が供給される環境が保証されている。しかし、ストレージ装置の運用に従って蓄積データが増大することによって、あるいはフラッシュメモリのブロックの消去回数が寿命に達した時に割り当てられる代替ブロック領域が不足することによってＦＭパッケージ３０がメディア筐体１２に増設された場合には、必要となる電力が増えるため、ストレージ装置へ供給される電力が足りなくなる場合も想定される。ストレージ装置が必要とする電力に対して供給電源容量が不足するとストレージ装置への供給電圧が低下する。その結果、フラッシュメモリに供給される電源電圧が低下もしくは遮断される可能性がある。特にフラッシュメモリに対する書き込み動作中に電源電圧の低下や遮断が発生すると、格納データの破壊や消失が起こるおそれがある。一般に、ＮＡＮＤフラッシュメモリでは書き込み動作、消去動作、およびリード転送を行っている時の消費電力が最も大きくなる。そこで、本願では１のＦＭパッケージ３０において同じ時刻に処理させることが可能なフラッシュメモリ数（以降、並列処理可能フラッシュメモリ数）を算出し、それに基づいた制御を行うこととする。ここで、「処理」とは書き込み動作、または消去動作、またはリード転送を指し、以下同様である。
図１４を用いてストレージ装置１０全体の並列処理可能フラッシュメモリ数の計算方法について説明する。この処理は、ストレージ装置１０の立ち上げ時又はメディア筐体１２へＦＭパッケージ３０が増設又は抜かれたことをＣＰＵ２１が検知したときの少なくとも何れかに実行される。ストレージ装置１０のハードウェア構成が不変であれば装置全体に対しての並列処理可能フラッシュメモリ数も不変であるので、上記のタイミングで並列処理可能フラッシュメモリ数を計算することにより、それ以降はホスト装置８０からのアクセスごとに装置全体に対する並列処理可能フラッシュメモリ数を計算する必要はない。ＣＰＵ２１は各ＦＭパッケージ３０にコマンドを送り、フラッシュメモリ制御部３１は搭載されているフラッシュメモリの種類と個数を返信する（Ｓ１０１）。この情報に基づいてＣＰＵ２１は図５のフラッシュメモリ構成管理テーブルを更新する（Ｓ１０２）。つづいて、ＣＰＵ２１はストレージ装置内で並列処理可能なフラッシュメモリの数を図２、図３、および図４の情報を基に計算する（Ｓ１０３）。具体的には以下の計算式を実行する。
並列処理可能フラッシュメモリ数＝（供給電源容量（図４より）
−コントローラ筐体消費電力（図３より）
−メディア筐体消費電力（図３より）
−フラッシュメモリ制御部その他消費電力（図２より）×ＦＭパッケージ数）
÷フラッシュメモリ消費電力（図２より）
計算された並列処理可能フラッシュメモリ数はローカルメモリ２２上に格納される。
ストレージ装置１０内にフラッシュメモリが複数種類ある場合は、フラッシュメモリの種類ごとに並列処理可能フラッシュメモリ数を計算する。例えばフラッシュメモリの種類がＡとＢの２種類ある場合は、
並列処理可能最大フラッシュメモリＡ数＝供給電源容量（図４より）
−コントローラ筐体消費電力（図３より）
−メディア筐体消費電力（図３より）
−フラッシュメモリ制御部その他消費電力（図２より）×ＦＭパッケージ数）
÷フラッシュメモリＡの消費電力  (式１)
並列処理可能最大フラッシュメモリＢ数＝供給電源容量（図４より）
−コントローラ筐体消費電力（図３より）
−メディア筐体消費電力（図３より）
−フラッシュメモリ制御部その他消費電力（図２より）×ＦＭパッケージ数）
÷フラッシュメモリＢの消費電力  （式２）
を計算してローカルメモリ２２上に格納する。尚、図１４に示すストレージ装置１０全体の並列処理可能フラッシュメモリ数の計算処理を行うタイミングは上記で説明したものに限らず、ホスト装置８０からの入出力要求ごとに計算しても良い。
以下、ホスト装置８０がストレージ装置１０に対してライト処理を行う際のＣＰＵ２１の動作フローを図１５および図１６を用いて説明する。ホスト装置８０からライトデータを受信すると、ＣＰＵ２１はライトデータをキャッシュメモリ２５に格納する（Ｓ２０１）。つづいて図１７のＬＵ論理アドレス変換テーブルを参照して、受信したライトデータのＬＵ番号とＬＵ論理アドレスから、ＲＡＩＤレベル５によりライトアクセス対象となるデータ格納ＦＭパッケージ番号、データ格納ＦＭパッケージ論理アドレス、パリティ格納ＦＭパッケージ番号、パリティ格納ＦＭパッケージ論理アドレス、に変換する（Ｓ２０２）。つぎにＣＰＵ２１はアクセス対象なるＦＭパッケージ３０へコマンドを発行して図１０に示すＦＭパッケージ論理アドレス変換テーブルをローカルメモリ２２へ読み出し、アクセスするフラッシュメモリ数を算出する（Ｓ２０３）。こうして得られたストレージ装置１０内でアクセスされるフラッシュメモリの数が上記で計算した並列処理可能フラッシュメモリ数を超える場合は（Ｓ２０４）、図５のフラッシュメモリ構成管理テーブルより本アクセスに対する各ＦＭパッケージ３０に対する並列処理可能フラッシュメモリ数を以下の式により計算する（Ｓ２０５）。
ＦＭパッケージ＃１の並列処理可能フラッシュメモリ数＝
ＦＭパッケージ＃１へアクセスするフラッシュメモリ数
×ストレージ装置１０内の並列処理可能フラッシュメモリ数
÷ストレージ装置１０内でアクセスするフラッシュメモリの数
計算の結果割り切れない場合は、切り捨てにより整数化する。
ストレージ装置１０内にフラッシュメモリの種類がＡとＢの２種類ある場合は、Ｓ２０４での判定に使用する並列処理可能フラッシュメモリ数を
並列処理可能フラッシュメモリＡ数＝並列処理可能最大フラッシュメモリＡ数(式１)
×アクセスするフラッシュメモリＡの数÷アクセスするフラッシュメモリの数
並列処理可能フラッシュメモリＢ数＝並列処理可能最大フラッシュメモリＢ数(式２)
×アクセスするフラッシュメモリＢの数÷アクセスするフラッシュメモリの数
として、
フラッシュメモリＡを搭載するＦＭパッケージ＃１の並列処理可能フラッシュメモリ数＝
ＦＭパッケージ＃１へアクセスするフラッシュメモリ数
×ストレージ装置１０内の並列処理可能フラッシュメモリＡの数
÷ストレージ装置１０内でアクセスするフラッシュメモリＡの数
フラッシュメモリＢを搭載するＦＭパッケージ＃２の並列処理可能フラッシュメモリ数＝
ＦＭパッケージ＃２へアクセスするフラッシュメモリ数
×ストレージ装置１０内の並列処理可能フラッシュメモリＢの数
÷ストレージ装置１０内でアクセスするフラッシュメモリＢの数
を計算すればよい。
この方法によれば、各ＦＭパッケージ３０へアクセスするフラッシュメモリ数に比例した数の並列処理可能フラッシュメモリ数が割り当てられる。並列処理可能フラッシュメモリ数がアクセスするフラッシュメモリ数より小さくなることで、並列処理数が抑制されオーバーヘッドが発生するが、特定のＦＭパッケージ３０にオーバーヘッドが集中することを抑制できるので、ストレージ装置１０全体でのオーバーヘッドを最小限に抑制できる。
尚、ＦＭパッケージ３０の並列処理可能フラッシュメモリの計算方法は上で示したものに限らない。例えば、ＦＭパッケージ３０が搭載するフラッシュメモリの個数に応じて
ＦＭパッケージ＃１の並列処理可能フラッシュメモリ数＝
ＦＭパッケージ＃１に搭載されたフラッシュメモリ数
×ストレージ装置１０内の並列処理可能フラッシュメモリ数
÷ストレージ装置１０内でアクセスするフラッシュメモリの数
と計算してもよい。
ＲＡＩＤレベル５のＲＡＩＤグループへのライトアクセスに対しては、ライトペナルティにより、ＦＭパッケージ３０内のユーザデータとパリティデータを読み出して新しいパリティデータを計算した後、ライトデータとともにＦＭパッケージ３０へライトする必要がある。Ｓ２０４でアクセスされるフラッシュメモリの数が上記で計算した並列処理可能フラッシュメモリ数を超えない場合や、Ｓ２０５で各ＦＭパッケージ３０に対する並列処理可能フラッシュメモリ数を計算した後、ＣＰＵ２１はアクセスするＦＭパッケージ３０に対してリードコマンドと、Ｓ２０５を処理した場合には計算された並列処理可能フラッシュメモリ数を発行してアクセス先のユーザデータとパリティデータをキャッシュメモリ２５へ読み出す（Ｓ２０６）。
図１８にＰＣＩ  ＥｘｐｒｅｓｓプロトコルによるＦＭパッケージ３０の並列処理可能フラッシュメモリ数の指定方法の一例を示す。９０はＰＣＩ  Ｅｘｐｒｅｓｓ規格におけるトランザクション層のパケットヘッダ領域を示す。パケットヘッダ領域９０は４バイトで構成され、Ｕで示した領域は規格によって用途が規定されている領域、Ｒは規格によって用途が規定されていないリザーブ領域を示す。並列処理可能フラッシュメモリ数として１２を指定するには、リザーブ領域に２進数で右詰めで入力する。並列処理可能フラッシュメモリ数を指定する必要がない場合にはリザーブ領域の全ビットに０を入力する。これにより、１回のコマンド発行でライトコマンドまたはリードコマンドと並列処理可能フラッシュメモリ数をＦＭパッケージ３０に送信することができるので、ストレージ装置１０としての性能を落とすことはない。
Ｓ２０６をアクセスする全ＦＭパッケージ３０に対して繰り返したら（Ｓ２０７）、キャッシュメモリ２５内にあるアクセス先のユーザデータとパリティデータとホスト装置８０からのライトデータから新しいパリティデータを計算する（Ｓ２０８）。その後、ＣＰＵ２１はアクセスするＦＭパッケージ３０に対してライトコマンドと、Ｓ２０５を処理した場合には計算された並列処理可能フラッシュメモリ数を発行してキャッシュメモリ２５上のライトデータと新しいパリティデータをＦＭパッケージ３０に書き込む（Ｓ２０９）。更に、Ｓ２０９をアクセスする全ＦＭパッケージ３０に対して繰り返す（Ｓ２１０）。
本実施例ではＰＣＩ  Ｅｘｐｒｅｓｓインターフェースを例に並列処理可能フラッシュメモリ数の指定方法の例を示したが、ＦＭパッケージ３０が他のインターフェース、すなわちＦＣ、ＳＡＳあるいはＳＡＴＡインターフェースを有する場合でも、コマンド発行時にＦＭパッケージ３０に送信されるデータブロック内のリザーブ領域に並列処理可能フラッシュメモリ数を割り当てることで、ライトコマンドあるいはリードコマンドと並列処理可能フラッシュメモリ数を１回のコマンドで送信することができる。
以下、ＣＰＵ２１から並列処理可能フラッシュメモリ数とともにライトコマンドを受信した際のＦＭパッケージ３０におけるフラッシュメモリ制御部３１の動作フローを図１９に示す。フラッシュメモリ制御部３１はコントローラ筐体１１のＣＰＵ２１からのライトコマンドとともに受信したライトデータをバッファ４１に格納する（Ｓ３０１）。つづいて、フラッシュメモリ制御部３１はローカルＲＡＭ４５上のＦＭパッケージ論理アドレス変換テーブルによりライトコマンドで指定されるライト対象となるFMパッケージ論理アドレスからフラッシュメモリ物理アドレス、すなわちフラッシュメモリ番号、フラッシュメモリ内部のページアドレス、およびページ内物理アドレスに変換する（Ｓ３０２）。受信したライトデータのアクセスするフラッシュメモリ数がＦＭパッケージ３０の並列処理可能フラッシュメモリ数を超える場合には（Ｓ３０３）、並列処理フラッシュメモリ数が並列処理可能フラッシュメモリ数以下になるようにライト処理を行う（Ｓ３０４）。受信したライトデータのアクセスするフラッシュメモリ数がＦＭパッケージ３０の並列処理可能フラッシュメモリ数以下である場合には（Ｓ３０３）、通常のライト処理を行う（Ｓ３０５）。
【００１４】
以下、並列処理フラッシュメモリ数が並列処理可能フラッシュメモリ数以下になるように行われる消去動作を伴わないライト処理（Ｓ３０４）の一例を図２０を用いて説明する。本実施例では、１６のフラッシュメモリを備えるＦＭパッケージ３０にＣＰＵ２１よりライトコマンドとともに並列処理可能フラッシュメモリ数として１２を受信した際の各フラッシュメモリへの転送制御の流れを示す。フラッシュメモリ１ａ〜１ｃ、２ａ〜２ｃ、３ａ〜３ｃ、および４ａ〜４ｃに対しては図１１に示した場合と同じくライト転送が終わった後にコマンドを発行して書き込み動作を開始しているが、フラッシュメモリ１ｄ、２ｄ、３ｄ、および４ｄについては、ライト転送が終わった直後の時点ではフラッシュメモリ１ａ〜１ｃ、２ａ〜２ｃ、３ａ〜３ｃ、および４ａ〜４ｃが書き込み動作中であって既に並列処理数が１２であるため、フラッシュメモリ１ｄ、２ｄ、３ｄ、および４ｄに対して書込動作開始コマンドを転送しないことで待機させる（Ｔ２０１）。フラッシュメモリ１ａのレディ／ビジー信号がビジー状態からレディ状態に戻ることで書き込み動作が終わるとフラッシュメモリ１ｄの書き込み動作が可能となるので、転送制御部４２がフラッシュメモリ１ｄに対して書込動作開始コマンドを転送する（Ｔ２０２）。フラッシュメモリ２ｄ、３ｄ、および４ｄについても同様である。Ｔ２０３においては、フラッシュメモリ１ｄ、１ａ、１ｂが書き込み動作中であるので、フラッシュメモリ１ｃの書き込み動作を開始せず待機させる。以上の処理を繰り返すことで、書き込み動作を同時に行うフラッシュメモリの数は常に最大１２個に抑えられる。尚、当然に何れのフラッシュメモリに待機を指示するか図２０に示したものに限らない。
一般的に、並列処理させるフラッシュメモリの個数を並列処理可能フラッシュメモリ数に抑えつつ、オーバーヘッドを抑制するには、以下の方針でライト処理を行えばよい。（１）ライトアクセス対象のフラッシュメモリが２以上のバスに存在すれば、各バスから１つのフラッシュメモリを選択し、ライトデータの転送を並列に行う。（２）並列処理可能フラッシュメモリ数に対して、ライトアクセスするフラッシュメモリ数が２以上多ければ、書き込み動作を待機させるフラッシュメモリを可能な限り異なるバスから選択する。
以下、並列処理フラッシュメモリ数が並列処理可能フラッシュメモリ数以下になるように行われる消去動作を伴うライト処理（Ｓ３０４）の一例を図２１を用いて説明する。本実施例では、１６のフラッシュメモリを備えるＦＭパッケージ３０にＣＰＵ２１よりライトコマンドとともに並列処理可能フラッシュメモリ数として１２を受信した際の１６個のフラッシュメモリ１ａ〜４ｄに対してのライト処理の流れを示す。尚、アクセスされるページと同一ブロックに属する他の有効ページデータは予めバッファ４１に退避されているものとする。まず、フラッシュメモリ１ａ〜１ｃ、２ａ〜２ｃ、３ａ〜３ｃ、および４ａ〜４ｃに対して消去コマンドを発行して、消去動作を並列に処理する。フラッシュメモリ１ａ〜１ｃのいずれかの消去動作が終了すると、フラッシュメモリ１ｄへ消去コマンドを発行して消去動作を開始することができる（Ｔ４０１）。つづけて、フラッシュメモリ１ａ〜１ｃに対してライト転送を行う。フラッシュメモリ２ａ〜２ｃ、３ａ〜３ｃ、および４ａ〜４ｃについても同様である。１ｃ、２ｃ、３ｃおよび４ｃへのライトデータの転送が終わった時点では、フラッシュメモリ１ａ、１ｂ、２ａ、２ｂ、３ａ、３ｂ、４ａ、４ｂが書き込み動作中、フラッシュメモリ１ｄ、２ｄ、３ｄ、４ｄが消去動作中であり、既に並列処理数が１２であるため、フラッシュメモリ１ｃ、２ｃ、３ｃおよび４ｃに対して書込動作開始コマンドを転送しないことで待機させる（Ｔ４０２）。フラッシュメモリ１ａのレディ／ビジー信号がビジー状態からレディ状態に戻ることで書き込み動作が終わるとフラッシュメモリ１ｃの書き込み動作が可能となるので、転送制御部４２がフラッシュメモリ１ｃに対して書込動作開始コマンドを転送する（Ｔ４０３）。フラッシュメモリ２ｃ、３ｃ、および４ｃについても同様である。以上のような処理を繰り返すことで、書き込み動作を消去動作を同時に行うフラッシュメモリの数は常に最大１２個に抑えられる。尚、当然に何れのフラッシュメモリに待機を指示するか図２１に示したものに限らない。
【００１５】
以下、ホスト装置８０がストレージ装置１０に対してリード処理を行う際のＣＰＵ２１の動作フローを図２２を用いて説明する。ＣＰＵ２１は図１７のＬＵ論理アドレス変換テーブルを参照して、リードデータのＬＵ番号とＬＵ論理アドレスから、リードアクセス対象となるデータ格納ＦＭパッケージ番号とデータ格納ＦＭパッケージ論理アドレスに変換する（Ｓ５０１）。つぎにＣＰＵ２１はアクセス対象なるＦＭパッケージ３０へコマンドを発行して図１０に示すＦＭパッケージ論理アドレス変換テーブルをローカルメモリ２２へ読み出し、アクセスするフラッシュメモリ数を算出する（Ｓ５０２）。こうして得られたストレージ装置１０内でアクセスされるフラッシュメモリの数が上記で計算した並列処理可能フラッシュメモリ数を超える場合は（Ｓ５０３）、図５のフラッシュメモリ構成管理テーブルより各ＦＭパッケージ３０に対する並列処理可能フラッシュメモリ数を以下の式により計算する（Ｓ５０４）。
ＦＭパッケージ＃１の並列処理可能フラッシュメモリ数＝
ＦＭパッケージ＃１へアクセスするフラッシュメモリ数
×ストレージ装置１０内の並列処理可能フラッシュメモリ数
÷ストレージ装置１０内でアクセスするフラッシュメモリの数
計算の結果割り切れない場合は、切り捨てにより整数化する。
ストレージ装置１０内にフラッシュメモリの種類がＡとＢの２種類ある場合は、Ｓ５０３での判定に使用する並列処理可能フラッシュメモリ数を
並列処理可能フラッシュメモリＡ数＝並列処理可能最大フラッシュメモリＡ数(式１)
×アクセスするフラッシュメモリＡの数÷アクセスするフラッシュメモリの数
並列処理可能フラッシュメモリＢ数＝並列処理可能最大フラッシュメモリＢ数(式２)
×アクセスするフラッシュメモリＢの数÷アクセスするフラッシュメモリの数
として、
フラッシュメモリＡを搭載するＦＭパッケージ＃１の並列処理可能フラッシュメモリ数＝
ＦＭパッケージ＃１へアクセスするフラッシュメモリ数
×ストレージ装置１０内の並列処理可能フラッシュメモリＡの数
÷ストレージ装置１０内でアクセスするフラッシュメモリＡの数
フラッシュメモリＢを搭載するＦＭパッケージ＃２の並列処理可能フラッシュメモリ数＝
ＦＭパッケージ＃２へアクセスするフラッシュメモリ数
×ストレージ装置１０内の並列処理可能フラッシュメモリＢの数
÷ストレージ装置１０内でアクセスするフラッシュメモリＢの数
を計算すればよい。
この方法によれば、各ＦＭパッケージ３０へアクセスするフラッシュメモリ数に比例した数の並列処理可能フラッシュメモリ数が割り当てられる。並列処理可能フラッシュメモリ数がアクセスするフラッシュメモリ数より小さくなることで、並列処理数が抑制されオーバーヘッドが発生するが、特定のＦＭパッケージ３０にオーバーヘッドが集中することを抑制できるので、ストレージ装置１０全体でのオーバーヘッドを最小限に抑制できる。
尚、ＦＭパッケージ３０の並列処理可能フラッシュメモリの計算方法は上で示したものに限らない。例えば、ＦＭパッケージ３０が搭載するフラッシュメモリの個数に応じて
ＦＭパッケージ＃１の並列処理可能フラッシュメモリ数＝
ＦＭパッケージ＃１に搭載されたフラッシュメモリ数
×ストレージ装置１０内の並列処理可能フラッシュメモリ数
÷ストレージ装置１０内でアクセスするフラッシュメモリの数
と計算してもよい。
Ｓ５０３でアクセスされるフラッシュメモリの数が上記で計算した並列処理可能フラッシュメモリ数を超えない場合や、Ｓ５０４で各ＦＭパッケージ３０に対する並列処理可能フラッシュメモリ数を計算した後、ＣＰＵ２１はアクセスするＦＭパッケージ３０に対してリードコマンドと、Ｓ２０５を処理した場合には計算された並列処理可能フラッシュメモリ数を発行してアクセス先のユーザデータをキャッシュメモリ２５へ読み出す（Ｓ５０５）。更に、Ｓ５０５をアクセスする全ＦＭパッケージ３０に対して繰り返す（Ｓ５０６）。最後にＣＰＵ２１はキャッシュメモリ２５上のリードデータをホスト装置８０に送信する。
リード処理については、リード転送時に消費電力が最大となる。図１３に示すようにリード転送の並列処理数は最大でも４個である。よって並列処理可能フラッシュメモリ数が１２個の場合は処理の変更はない。一方で図１３に示す場合において並列処理可能フラッシュメモリ数が３個以下との情報を受信した場合は、フラッシュメモリ制御部３１はリード転送に対して適宜待機状態を入れる。
以下、ＣＰＵ２１から並列処理可能フラッシュメモリ数とともにリードコマンドを受信した際のＦＭパッケージ３０におけるフラッシュメモリ制御部３１の動作フローを図２３に示す。フラッシュメモリ制御部３１はローカルＲＡＭ４５上のＦＭパッケージ論理アドレス変換テーブルによりFMパッケージ論理アドレスからフラッシュメモリ物理アドレス、すなわちフラッシュメモリ番号およびフラッシュメモリ内部のページアドレスおよびページ内物理アドレスに変換する（Ｓ４０１）。リードデータとしてアクセスするフラッシュメモリ数がＦＭパッケージ３０の並列処理可能フラッシュメモリ数を超える場合には（Ｓ４０２）、並列処理フラッシュメモリ数が並列処理可能フラッシュメモリ数以下になるようにリード処理を行い、リードデータをバッファ４１に格納する（Ｓ４０３）。リードデータとしてアクセスするフラッシュメモリ数がＦＭパッケージ３０の並列処理可能フラッシュメモリ数以下である場合には（Ｓ４０２）、通常のリード処理を行い、リードデータをバッファ４１に格納する（Ｓ４０４）。最後に、フラッシュメモリ制御部３１はバッファ４１からコントローラ筐体１１に対してリードデータを送信する（Ｓ４０５）。
以下、並列処理フラッシュメモリ数が並列処理可能フラッシュメモリ数以下になるように行われるリード処理（Ｓ４０３）の一例を図２４を用いて説明する。本実施例では、１６のフラッシュメモリを備えるＦＭパッケージ３０にＣＰＵ２１よりリードコマンドとともに並列処理可能フラッシュメモリ数として２を受信した際の１６個のフラッシュメモリ１ａ〜４ｄに対してのリード処理の流れを示す。フラッシュメモリ１ａおよび２ａに対しては図１３に示した場合と同じく読み出しが終わった後にリード転送を開始しているが、この既に並列処理数が２であるため、フラッシュメモリ３ａ、および４ａに対してはフラッシュメモリ選択信号を非アクティブにすることで待機させる（Ｔ３０１）。フラッシュメモリ１ａから１ページ分のデータ転送が終了するとフラッシュメモリ３ａからのリード転送が可能となるので、転送制御部４２はフラッシュメモリ３ａに対してリード転送を開始する（Ｔ３０２）。フラッシュメモリ２ａ、および４ａについても同様である。以上の処理を繰り返すことで、リード転送を同時に行うフラッシュメモリの数は常に最大２個に抑えられる。尚、当然に何れのフラッシュメモリに待機を指示するか図２４に示したものに限らない。一般的に、並列処理させるフラッシュメモリの個数を並列処理可能フラッシュメモリ数に抑えつつ、オーバーヘッドを抑制するには、以下の方針でリード処理を行えばよい。（１）リードアクセス対象のフラッシュメモリが２以上のバスに存在すれば、各バスから１つのフラッシュメモリを選択し、リードデータの転送を並列に行う。（２）並列処理可能フラッシュメモリ数に対して、リードアクセスするフラッシュメモリ数が２以上多ければ、リード転送を待機させるフラッシュメモリを、可能な限り、異なるバスから選択する。
以上説明した方法により、ストレージ装置１０全体としてフラッシュメモリの並列処理数が並列処理可能フラッシュメモリ数以下となり、供給電源容量の範囲内で正常に動作することが可能となる。よって、記憶媒体としてフラッシュメモリを搭載したストレージ装置において、ストレージ装置全体の最大定格消費電力に対して供給電源が不足する場合でも可用性を維持することができる。
【図面の簡単な説明】
【００１６】
【図１】ストレージ装置の構成図の一例である。
【図２】ＦＭパッケージ構成部品の定格消費電力を示す表の一例である。
【図３】ストレージ装置の常時稼働部の定格消費電力を示す表の一例である。
【図４】供給電源容量を示す表の一例である。
【図５】搭載フラッシュメモリの構成を示す表の一例である。
【図６】ＲＡＩＤグループとＬＵ構成の一例である。
【図７】ＲＡＩＤ構成管理テーブルの一例である。
【図８】ＦＭパッケージの内部ブロック図の一例である。
【図９】ＦＭパッケージ内のフラッシュメモリ制御部の内部ブロック図の一例である。
【図１０】ＦＭパッケージ論理アドレス変換テーブルの一例である。
【図１１】ＦＭパッケージ内の通常のライト処理の一例を示す図である。
【図１２】ＦＭパッケージ内の消去動作を伴う通常のライト処理の一例を示す図である。
【図１３】ＦＭパッケージ内の通常のリード処理の一例を示す図である。
【図１４】ストレージ装置の並列処理可能フラッシュメモリ数を算出する動作フローの一例である。
【図１５】ライト処理についてのＣＰＵ２１の動作フローの一例である。
【図１６】ライト処理についてのＣＰＵ２１の動作フローの一例である。（つづき）
【図１７】ＬＵ論理アドレス変換テーブルの一例である。
【図１８】ＦＭパッケージの並列処理可能フラッシュメモリ数の指定方法の一例を示す図である。
【図１９】ライト処理についてのフラッシュメモリ制御部の動作フローの一例である。
【図２０】並列処理可能フラッシュメモリ数に基づくＦＭパッケージ内のライト処理の一例を示す図である。
【図２１】並列処理可能フラッシュメモリ数に基づくＦＭパッケージ内の消去動作を伴うライト処理の一例を示す図である。
【図２２】リード処理についてのＣＰＵ２１の動作フローの一例である。
【図２３】リード処理についてのフラッシュメモリ制御部の動作フローの一例である。
【図２４】並列処理可能フラッシュメモリ数に基づくＦＭパッケージ内のリード処理の一例を示す図である。
【符号の説明】
【００１７】
１０…ストレージ装置、１１…コントローラ筐体、１２…メディア筐体、３０…ＦＭパッケージ、８０…ホスト装置
【図１】
2010049586.tif 000003
【図２】
2010049586.tif 000004
【図３】
2010049586.tif 000005
【図４】
2010049586.tif 000006
【図５】
2010049586.tif 000007
【図６】
2010049586.tif 000008
【図７】
2010049586.tif 000009
【図８】
2010049586.tif 000010
【図９】
2010049586.tif 000011
【図１０】
2010049586.tif 000012
【図１１】
2010049586.tif 000013
【図１２】
2010049586.tif 000014
【図１３】
2010049586.tif 000015
【図１４】
2010049586.tif 000016
【図１５】
2010049586.tif 000017
【図１６】
2010049586.tif 000018
【図１７】
2010049586.tif 000019
【図１８】
2010049586.tif 000020
【図１９】
2010049586.tif 000021
【図２０】
2010049586.tif 000022
【図２１】
2010049586.tif 000023
【図２２】
2010049586.tif 000024
【図２３】
2010049586.tif 000025
【図２４】
2010049586.tif 000026