(57)【要約】【解決課題】フラッシュメモリモジュールの低消費電力動作から通常動作へ瞬時に復帰させる。【解決手段】フラッシュメモリチップの論理ページアドレスと物理ページアドレスを変換するアドレス変換テーブルを格納するメモリ備えるフラッシュメモリコントローラは、通常動作と、動作停止、電源電圧低下及び動作周波数低減のいずれかにより通常動作より低消費電力で動作する低消費電力動作とを制御する。このフラッシュメモリコントローラを有するフラッシュメモリモジュールは、低消費電力動作時の設定がされているときに（ＳＴ１０５）、にアドレス変換テーブルのデータ検証を行う（ＳＴ１０６）。【選択図】図１３
2008171163.tif 000002
【特許請求の範囲】
【請求項１】
フラッシュメモリコントローラと少なくとも一個のフラッシュメモリチップと、
からなり、
前記フラッシュメモリコントローラは、
前記フラッシュメモリチップの論理ページアドレスと物理ページアドレスを変換するアドレス変換テーブルを格納するメモリ備え、
前記フラッシュメモリコントローラは、データの読み書き時の第１の動作と、動作停止、電源電圧低下及び動作周波数低減のいずれかにより前記第１の動作より低消費電力で動作する待機状態時の第２の動作とを制御する
フラッシュメモリモジュールにおいて、
前記第２の動作時に前記アドレス変換テーブルのデータ検証を行うことを特徴とするフラッシュメモリモジュール。
【請求項２】
請求項１記載のフラッシュメモリモジュールにおいて、
前記第２の動作時は、前記フラッシュメモリコントローラは、前記アドレス変換テーブルのデータ検証を行う第１の期間と、前記フラッシュメモリコントローラの動作を停止させる第２の期間を交互に実行し、
前記第１の期間が前記第２の期間より短いことを特徴とするフラッシュメモリモジュール。
【請求項３】
請求項１記載のフラッシュメモリモジュールにおいて、
前記論理ページアドレスと前記物理ページアドレスは、エラー訂正情報を付加して前記アドレス変換テーブルに格納し、
前記アドレス変換テーブルのデータ検証時には、前記アドレス変換テーブルに格納されている前記論理ページアドレスと前記物理ページアドレスと前記エラー訂正情報を検証することによりエラー有無を判定し、
前記アドレス変換テーブルにエラーが有りと判定された場合に、
前記エラー訂正情報により訂正可能なエラーならば、前記エラー訂正情報から訂正した値を前記アドレス変換テーブルに格納し、
前記エラー訂正情報のみで訂正不能ならば、前記フラッシュメモリチップから必要なデータを読み出し、前記アドレス変換テーブルを再構築することを特徴とするフラッシュメモリモジュール。
【請求項４】
請求項１記載のフラッシュメモリモジュールにおいて、
前記フラッシュメモリコントローラと接続された上位装置からの指示により前記第１の動作から前記第２の動作へ移行することを特徴とするフラッシュメモリモジュール。
【請求項５】
請求項１記載のフラッシュメモリモジュールにおいて、
前記フラッシュメモリコントローラ内の制御により前記第１の動作から前記第２の動作へ移行することを特徴とするフラッシュメモリモジュール。
【請求項６】
請求項１記載のフラッシュメモリモジュールにおいて、
前記第２の動作時に前記アドレス変換テーブルのデータ検証を行うか否かを設定すること特徴とするフラッシュメモリモジュール。
【請求項７】
請求項１記載のフラッシュメモリモジュールにおいて、
前記フラッシュメモリコントローラの消去回数平準化処理完了を待って、前記第１動作から前記第２の動作への移行及び前記アドレス変換テーブルのデータ検証を開始することを特徴とするフラッシュメモリモジュール。
【請求項８】
請求項１記載のフラッシュメモリモジュールにおいて、
前記メモリは、ＳＲＡＭであることを特徴とするフラッシュメモリモジュール。
【請求項９】
フラッシュメモリチップと、前記フラッシュメモリチップへのデータの読み書きを制御するフラッシュメモリコントローラとを備えるフラッシュメモリモジュールと、
前記フラッシュメモリチップへ読み書きされるデータを一時的に格納するキャッシュメモリを備えるストレージコントローラと、
を備え、
前記フラッシュメモリコントローラは、
前記フラッシュメモリチップの論理ページアドレスと物理ページアドレスを変換するアドレス変換テーブルを格納するメモリを備え、
データの読み書き時の第１の動作と、動作停止、電源電圧低下及び動作周波数低減のいずれかにより前記第１の動作より低消費電力で動作する待機状態時の第２の動作とを制御する、
ストレージ装置において、
前記フラッシュメモリコントローラは、前記第２の動作時に前記アドレス変換テーブルのデータ検証を行うことを特徴とするストレージ装置。
【請求項１０】
請求項９記載のストレージ装置において、
前記ストレージコントローラからのコマンド受信により前記フラッシュメモリコントローラは前記第１の動作から前記第２の動作へ移行する
ことを特徴とするストレージ装置。
【請求項１１】
請求項９記載のストレージ装置において、
前記フラッシュメモリコントローラ内部の制御により、前記フラッシュメモリコントローラは前記第１の動作から前記第２の動作へ移行する
ことを特徴とするストレージ装置。
【請求項１２】
請求項９記載のストレージ装置において、
複数の前記フラッシュメモリモジュールを組み合わせてＲＡＩＤグループを構成し、
前記ＲＡＩＤグループ内の１つのフラッシュメモリモジュールが前記第１の動作から前記第２の動作へ移行すると、前記ＲＡＩＤグループ内の他のフラッシュメモリモジュールも前記第２の動作へ移行するように、前記ストレージコントローラがコマンドを発行することを特徴とするストレージ装置。
【請求項１３】
請求項１２記載のストレージ装置において、
前記ストレージコントローラへの接続時にアドレス変換テーブルを構築後、前記第２の動作で前記構築されたアドレス変換テーブルのデータ検証を行うスペアのフラッシュメモリモジュールを備え、
前記複数のフラッシュメモリモジュールのいずれかに障害が生じたときは、その障害の生じたフラッシュメモリモジュールに代えて、その障害が発生したフラッシュメモリモジュールと同じＲＡＩＤグループのフラッシュメモリモジュールから前記スペアのフラッシュメモリモジュールへデータをリビルドすることを特徴とするストレージ装置。
【請求項１４】
請求項１３記載のストレージ装置において、
前記フラッシュメモリモジュールは、
前記論理ページアドレスと前記物理ページアドレスは、エラー訂正情報を付加して前記アドレス変換テーブルに格納し、
前記アドレス変換テーブルのデータ検証時に、前記アドレス変換テーブルに格納されている前記論理ページアドレスと前記物理ページアドレスと前記エラー訂正情報を検証することによりエラー有無を判定し、
前記アドレス変換テーブルにエラーが有りと判定された場合に、
前記エラー訂正情報により訂正可能なエラーならば、前記エラー訂正情報から訂正した値を前記アドレス変換テーブルに格納し、
前記エラー訂正情報のみで訂正不能ならば、前記フラッシュメモリチップから必要なデータを読み出し、前記アドレス変換テーブルを再構築するように構成され、
前記フラッシュメモリモジュールに障害が生じたか否かは、前記エラー訂正情報のみで訂正不能なエラーが、前記データ検証時に所定回以上あったか否かで判定されることを特徴とするストレージ装置。
【請求項１５】
請求項９記載のストレージ装置において、
前記フラッシュメモリモジュールは、前記フラッシュメモリチップへ読み書きするデータを送受信するための第１のネットワークと、前記第２の動作を行う消費電力制御のためのデータを送受信するための第２のネットワークで、前記ストレージコントローラと接続することを特徴とするストレージ装置。
【請求項１６】
フラッシュメモリチップと、このフラッシュメモリチップの論理ページアドレスと物理ページアドレスを変換するアドレス変換テーブルを格納するメモリを備え、前記フラッシュメモリチップへのデータの読み書きを制御するとともに、前記データの読み書き時の第１の動作と、動作停止、電源電圧低下及び動作周波数低減のいずれかにより前記第１の動作より低消費電力で動作する待機状態時の第２の動作とを制御するフラッシュメモリコントローラとを備えるフラッシュメモリモジュールと、
前記フラッシュメモリチップへ読み書きされるデータを一時的に格納するメモリを備えるストレージコントローラと、
を備えるストレージ装置のデータ検証方法において、
前記第２の動作時に前記アドレス変換テーブルのデータ検証を行うステップを
備えることを特徴とするストレージ装置のデータ検証方法。
【請求項１７】
請求項１６記載のストレージ装置のデータ検証方法において、
前記ストレージコントローラからのコマンド受信により前記第１の動作から前記第２の動作へ移行するステップを
備えることを特徴とするストレージ装置のデータ検証方法。
【請求項１８】
請求項１６記載のストレージ装置のデータ検証方法において、
前記フラッシュメモリコントローラ内部の制御により、前記第１の動作から前記第２の動作へ移行するステップを
備えることを特徴とするストレージ装置のデータ検証方法。
【請求項１９】
請求項１６記載のストレージ装置のデータ検証方法において、
複数の前記フラッシュメモリモジュールを組み合わせて構成されたＲＡＩＤグループ内の１つのフラッシュメモリモジュールが前記第１の動作から前記第２の動作へ移行すると、前記ＲＡＩＤグループ内の他のフラッシュメモリモジュールも前記第２の動作へ移行するステップを
備えることを特徴とするストレージ装置。
【請求項２０】
請求項１９記載のストレージ装置のデータ検証方法において、
前記複数のフラッシュメモリモジュールのいずれかに障害が生じたときは、その障害の生じたフラッシュメモリモジュールに代えて、その障害が発生したフラッシュメモリモジュールと同じＲＡＩＤグループのフラッシュメモリモジュールからアドレス変換テーブルの構築後前記第２の動作でそのアドレス変換テーブルのデータ検証を行うスペアのフラッシュメモリモジュールへデータをリビルドするステップを
備えることを特徴とするストレージ装置のデータ検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュメモリモジュール、そのフラッシュメモリモジュールを記録媒体として用いたストレージ装置及びそのフラッシュメモリモジュールのアドレス変換テーブル検証方法に関し、特に、フラッシュメモリモジュール内に記録されたデータにアクセスするために使用するアドレス変換テーブルを検証するものに適用しても好適なものである。
【背景技術】
【０００２】
ストレージ装置は、一般的に、ランダムアクセス可能な不揮発性記録媒体を備える。このランダムアクセス可能な不揮発性記録媒体として、例えば、磁気ディスク又は光ディスク等が用いられる。
【０００３】
また、半導体技術の進歩に伴って、例えば、フラッシュメモリのような一括消去可能な不揮発性半導体記録媒体が開発されている。フラッシュメモリモジュールは、モジュール内のフラッシュメモリコントローラが論理ページアドレスを物理ページアドレスにアドレス変換テーブルを参照し変換してフラッシュメモリチップにデータを記録する。このフラッシュメモリモジュールを記録媒体とするストレージ装置は、磁気ディスクのような小型ディスクドライブを多数備えるストレージ装置と比べ、寿命、省電力及びアクセス時間等に優れていると考えられている。
【０００４】
なお、フラッシュメモリモジュールにおけるアドレス変換テーブルの不正マッピンク防止方法が知られている（特許文献１参照）。この従来技術は、有効な論理ページアドレスが無効な論理ページアドレスにデータ化けした場合の、不正マッピングを防止する技術である。
【特許文献１】特開２００３−３３７７５７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
フラッシュメモリモジュールを記録媒体として用いたストレージ装置は、既述のように磁気ディスク等を用いたストレージ装置に比べ、省電力を図ることができると考えられている。しかしながら、現在市販されている２．５インチのハードディスクドライブと、２．５インチハードディスクドライブ互換フラッシュメモリモジュールの消費電力値の例を比較すると、データ読み書き動作時（Ｒ／Ｗ時）は、フラッシュメモリモジュールの消費電力値が２．９ワット、ハードディスクドライブの消費電力値が２．３ワットであり、フラッシュメモリモジュールの消費電力値がハードディスクドライブの消費電力値より少し大きい。また、アイドル時は、フラッシュメモリモジュールの消費電力値が２．２ワット、ハードディスクドライブの消費電力値が１．２ワットであり、フラッシュメモリモジュールの消費電力値がハードディスクドライブの消費電力値の約２倍となっているという結果が得られている。
【０００６】
フラッシュメモリチップ自体は、アイドル時のチップ当たりの消費電力値はサブミリワット級であり、非常に低消費電力である。従って、アイドル時のフラッシュメモリモジュールの消費電力の大部分は、フラッシュメモリコントローラによるものであると考えられる。このため、フラッシュメモリチップの低消費電力特性を活かすためには、アイドル時のフラッシュメモリコントローラの低消費電力化が必須となる。
【０００７】
フラッシュメモリコントローラは、通常、ＣＭＯＳ  ＬＳＩ（Complementary Metal Oxide Semiconductor Large Scale Integration）である。ＣＭＯＳ  ＬＳＩは、電源電圧あるいは動作周波数を下げることにより、低消費電力化が可能である。従って、フラッシュメモリコントローラの低消費電力化を行うには、フラッシュメモリコントローラの電源低電圧化、動作停止あるいは動作周波数の低下が考えられる。
【０００８】
一方、フラッシュメモリコントローラ内のアドレス変換テーブルはＲＡＭに格納されるが、このＲＡＭは高速アクセス特性が要求されるため例えばＳＲＡＭ（Static Random Access Memory）が用いられる。ＳＲＡＭは、非常に小さい確率ではあるが、放射線等の影響によりソフトエラーが発生する場合がある。メモリコントローラの低消費電力化を図ると、その低消費電力動作時には、アドレス変換テーブルに書き込まれたデータのソフトエラーの発生率は増加する。
【０００９】
このように発生するソフトエラーに対処するため、一般的には、アドレス変換テーブルに格納されるデータにエラー訂正情報を付加し、データの読み出し時にアドレスデータとそのデータに付加されたエラー訂正情報を検証することにより、ソフトエラーからデータを保証している。言い換えると、ＳＲＡＭ内のアクセスしたデータに関しては、エラー訂正情報によりデータ保証されるが、アクセスしないデータに関しては、エラー保証がされないことになる。したがって、フラッシュメモリコントローラにおいて、動作停止による低消費電力動作時には、ＳＲＡＭに格納したアドレス変換テーブルにアクセスしないため、低消費電力動作時に発生したソフトエラーを検出・訂正するデータ検証を行うことができない。また、動作周波数を低下させた低消費電力動作の場合も、アドレス変換テーブル内のデータにアクセスしない限り、ソフトエラーは検出できない。
【００１０】
低消費電力動作時に発生したソフトエラーは、通常動作に復帰後に、アドレス変換テーブル内のエラーデータにアクセスして初めて検出することができる。このため低消費電力動作が長期間に及ぶ場合は、アドレス変換テーブル内にソフトエラーが蓄積し、エラー訂正情報からはエラー訂正ができなくなる場合もある。このような場合、フラッシュメモリコントローラに接続されているフラッシュメモリチップにアクセスしてアドレス情報を読み出し、アドレス変換テーブルをＳＲＡＭ内に再構築する必要がある。このアドレス変換テーブルを再構築するためにはフラッシュメモリ１チップ当たり１〜２秒程度は必要となる。このため、フラッシュメモリコントローラに多数のチップを接続している場合は、アドレス変換テーブルの再構築に長時間要することになる。低消費電力動作から通常動作への復帰にアドレス変換テーブルの再構築のための時間がかかることは、高速アクセスを必要とされるストレージ装置にとって許容できない。
【００１１】
上述の特許文献１では、低消費電力化に対する考慮がない。さらに、アドレス変換テーブル内に起こりうる一般的なソフトエラーに対処できない。つまり、特許文献１に記載された技術は有効な論理ページアドレスが無効な論理ページアドレスにデータ化けした場合の不正マッピングを防止する技術であるが、一般的には有効な論理ページアドレスが無効な論理ページアドレスにデータ化けするとは限らない。例えば、有効な論理ページアドレスが別の有効な論理ページアドレスにデータ化けすることも考えられる。この場合、特許文献１の技術では、アドレス変換テーブルのエラーを検証することができない。
【００１２】
本発明は、以上の点を考慮してなされたもので、低消費電力動作時にフラッシュメモリモジュール内のアドレス変換テーブルのデータを検証することにより、低消費電力動作から通常動作へ瞬時に復帰が可能なフラッシュメモリモジュール、そのフラッシュメモリモジュールを記録媒体として用いたストレージ装置及びそのフラッシュメモリモジュールのアドレス変換テーブル検証方法を提案しようとするものである。
【課題を解決するための手段】
【００１３】
本発明は、フラッシュメモリコントローラと少なくとも一個のフラッシュメモリチップとからなり、フラッシュメモリコントローラは、フラッシュメモリチップの論理ページアドレスと物理ページアドレスを変換するアドレス変換テーブルを格納するメモリ備えるとともにフラッシュメモリコントローラは、データの読み書き時の第１の動作と、動作停止、電源電圧低下及び動作周波数低減のいずれかにより第１の動作より低消費電力で動作する待機状態時の第２の動作とを制御するフラッシュメモリモジュールにおいて、第２の動作時にアドレス変換テーブルのデータ検証を行うことを特徴とするものである。
【００１４】
このフラッシュメモリモジュールにおいては、動作停止、電源電圧低下及び動作周波数低減のいずれかによる低消費電力動作時にアドレス変換テーブルのデータの検証を行うことにより、アドレス変換テーブル内のデータエラーを検出・訂正することができ、エラー訂正情報により訂正不可能なエラーの発生を防止して低消費電力動作から通常動作へ瞬時に復帰ができる。
【発明の効果】
【００１５】
本発明によれば、低消費電力動作時にフラッシュメモリモジュール内のアドレス変換テーブルのデータを検証することにより、低消費電力動作から通常動作へ瞬時に復帰が可能なフラッシュメモリモジュール、そのフラッシュメモリモジュールを記録媒体として用いたストレージ装置及びそのフラッシュメモリモジュールのアドレス変換テーブル検証方法を提供できる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明を適用したフラッシュメモリモジュール、ストレージ装置及びフラッシュメモリモジュールのアドレス変換テーブル検証方法についての一実施の形態について図面を参照して説明する。
【００１７】
図１は、ストレージ装置１００の構成を示すブロック図である。ストレージ装置１００は、ストレージコントローラＳＣ及びフラッシュメモリモジュールＰ００からＰ３３を備える。
【００１８】
ストレージコントローラＳＣは、チャネルアダプタＣＡ０、ＣＡ１、キャッシュメモリＣＭ０、ＣＭ１、ストレージアダプタＳＡ０、ＳＡ１及び相互接続網ＮＷ０、ＮＷ１を備える。なお、チャネルアダプタＣＡ０、ＣＡ１、キャッシュメモリＣＭ０、ＣＭ１及びストレージアダプタＳＡ０、ＳＡ１は、二つずつを図示しているが、いくつ備えられていてもよい。
【００１９】
相互接続網ＮＷ０及びＮＷ１は、例えばスイッチ等であり、ストレージコントローラＳＣを構成する装置を相互に接続する。具体的には、相互接続網ＮＷ０及びＮＷ１は、チャネルアダプタＣＡ０、キャッシュメモリＣＭ０及びストレージアダプタＳＡ０を相互に接続する。同様に、相互接続網ＮＷ０、ＮＷ１は、チャネルアダプタＣＡ１、キャッシュメモリＣＭ１及びストレージアダプタＳＡ１を相互に接続する。
【００２０】
チャネルアダプタＣＡ０は、図２で後述するが、チャネルＣ００、Ｃ０１、Ｃ０２、Ｃ０３を介して、外部の上位装置（図示省略）に接続されている。同様に、チャネルアダプタＣＡ１は、チャネルＣ１０、Ｃ１１、Ｃ１２、Ｃ１３を介して、外部の上位装置（図示省略）に接続されている。なお、上位装置は、例えば、本実施の形態のストレージ装置１００にデータを読み書きする計算機である。
【００２１】
キャッシュメモリＣＭ０、ＣＭ１は、チャネルアダプタＣＡ０、ＣＡ１及びストレージアダプタＳＡ０、ＳＡ１から受信したデータを一時的に記憶する。
【００２２】
ストレージアダプタＳＡ０は、図３で後述するが、フラッシュメモリモジュールＰ００等に接続されている。具体的には、ストレージアダプタＳＡ０は、チャネルＤ００を介して、フラッシュメモリモジュールＰ００〜Ｐ０３に接続されている。また、ストレージアダプタＳＡ０は、チャネルＤ０１を介して、フラッシュメモリモジュールＰ１０〜Ｐ１３に接続されている。また、ストレージアダプタＳＡ０は、チャネルＤ０２を介して、フラッシュメモリモジュールＰ２０〜Ｐ２３に接続されている。また、ストレージアダプタＳＡ０は、チャネルＤ０３を介して、フラッシュメモリモジュールＰ３０〜Ｐ３３に接続されている。
【００２３】
同様に、ストレージアダプタＳＡ１は、フラッシュメモリモジュールＰ００等に接続されている。具体的には、ストレージアダプタＳＡ１は、チャネルＤ１０を介して、フラッシュメモリモジュールＰ００〜Ｐ０３に接続されている。また、ストレージアダプタＳＡ１は、チャネルＤ１１を介して、フラッシュメモリモジュールＰ１０〜Ｐ１３に接続されている。また、ストレージアダプタＳＡ１は、チャネルＤ１２を介して、フラッシュメモリモジュールＰ２０〜Ｐ２３に接続されている。また、ストレージアダプタＳＡ１は、チャネルＤ１３を介して、フラッシュメモリモジュールＰ３０〜Ｐ３３に接続されている。
【００２４】
チャネルアダプタＣＡ０、ＣＡ１及びストレージアダプタＳＡ０、ＳＡ１は、保守端末ＳＶＰに接続されている。保守端末ＳＶＰは、ストレージ装置１００の管理者から入力された設定情報を、チャネルアダプタＣＡ０、ＣＡ１及び／又はストレージアダプタＳＡ０、ＳＡ１に送信する。
【００２５】
なお、ストレージ装置１００は、ストレージアダプタＳＡ０及びチャネルアダプタＣＡ０に代わって、一つのアダプタを備えていても良い。この場合、当該一つのアダプタが、ストレージアダプタＳＡ０及びチャネルアダプタＣＡ０の処理を行う。
【００２６】
ＶＤＥＶ０〜ＶＤＥＶ３は、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）グループである。例えばＲＡＩＤグループＶＤＥＶ０は、フラッシュメモリモジュールＰ００、Ｐ１０、Ｐ２０、Ｐ３０からなる。ＲＡＩＤグループに属するフラッシュメモリモジュールの一つ、例えばフラッシュメモリモジュールＰ００でエラーが発生してデータを読み出せなくなった場合は、同じＲＡＩＤグループに属する他のフラッシュメモリモジュールＰ１０、Ｐ２０、Ｐ３０からデータをリビルドすることができる。
【００２７】
フラッシュメモリモジュールＰ００〜Ｐ３３はネットワークＮ００を介してストレージアダプタＳＡ０と接続している。同様に、フラッシュメモリモジュールＰ００〜Ｐ３３はネットワークＮ０１を介してストレージアダプタＳＡ１と接続している。ストレージコントローラＳＣは、ネットワークＮ００及びＮ０１を介して、フラッシュメモリモジュールＰ００〜Ｐ３３の電力制御を行う。また、ストレージアダプタＳＡ０及びＳＡ１は、フラッシュメモリモジュールＰ００〜Ｐ３３の低消費電力動作の条件設定及び低消費電力動作状況の監視を行うことができる。
【００２８】
図２は、チャネルアダプタＣＡ０の構成を示すブロック図である。チャネルアダプタＣＡ０は、ホストチャネルインターフェース２１、キャッシュメモリインターフェース２２、ネットワークインターフェース２３、プロセッサ２４、ローカルメモリ２５及びプロセッサ周辺制御部２６を備える。
【００２９】
ホストチャネルインターフェース２１は、チャネルＣ００、Ｃ０１、Ｃ０２、Ｃ０３を介して、外部の上位装置（図示省略）と接続するインターフェースである。また、ホストチャネルインターフェース２１は、チャネルＣ００、Ｃ０１、Ｃ０２、Ｃ０３上のデータ転送プロトコルと、ストレージコントローラＳＣの内部のデータ転送プロトコルとを相互に変換する。
【００３０】
キャッシュメモリインターフェース２２は、相互結合網ＮＷ０、ＮＷ１と接続するインターフェースである。ネットワークインターフェース２３は、保守端末ＳＶＰと接続するインターフェースである。なお、ホストチャネルインターフェース２１とキャッシュメモリインターフェース２２とは、信号線２７によって接続されている。
【００３１】
プロセッサ２４は、ローカルメモリ２５に記憶されているプログラムを実行することによって、各種処理を行う。具体的には、プロセッサ２４は、上位装置（図示省略）と相互結合網ＮＷ０、ＮＷ１との間のデータ転送を制御する。
【００３２】
ローカルメモリ２５は、プロセッサ２４によって実行されるプログラムを記憶する。また、ローカルメモリ２５は、プロセッサ２４によって参照されるテーブルを記憶する。なお、当該テーブルは、管理者によって設定又は変更される。
【００３３】
この場合、管理者は、テーブルの設定又はテーブルの変更に関する情報を、保守端末ＳＶＰに入力する。保守端末ＳＶＰは、入力された情報を、ネットワークインターフェース２３を介してプロセッサ２４に送信する。プロセッサ２４は、受信した情報に基づいて、当該テーブルを作成又は変更する。そして、プロセッサ２４は当該テーブルをローカルメモリ２５に格納する。
【００３４】
プロセッサ周辺制御部２６は、ホストチャネルインターフェース２１、キャッシュメモリインターフェース２２、ネットワークインターフェース２３、プロセッサ２４及びローカルメモリ２５間のデータ転送を制御する。プロセッサ周辺制御部２６は、例えば、チップセット等である。なお、チャネルアダプタＣＡ１も、チャネルアダプタＣＡ０と同一の構成である。よって、説明を省略する。
【００３５】
図３は、ストレージアダプタＳＡ０の構成を示すブロック図である。ストレージアダプタＳＡ０は、キャッシュメモリインターフェース３１、ストレージチャネルインターフェース３２、ネットワークインターフェース３３、プロセッサ３４、ローカルメモリ３５及びプロセッサ周辺制御部３６を備える。
【００３６】
キャッシュメモリインターフェース３１は、相互結合網ＮＷ０、ＮＷ１と接続するインターフェースである。
【００３７】
ストレージチャネルインターフェース３２は、チャネルＤ００、Ｄ０１、Ｄ０２、Ｄ０３と接続するインターフェースである。また、ストレージチャネルインターフェース３２は、チャネルＤ００、Ｄ０１、Ｄ０２、Ｄ０３上のデータ転送プロトコルと、ストレージコントローラＳＣの内部のデータ転送プロトコルとを相互に変換する。なお、キャッシュメモリインターフェース３１とストレージチャネルインターフェース３２とは、信号線３７によって接続されている。
【００３８】
ネットワークインターフェース３３は、ストレージアダプタＳＡ０と保守端末ＳＶＰとフラッシュメモリモジュールＰ００〜Ｐ３３とを接続するインターフェースである。
【００３９】
プロセッサ３４は、ローカルメモリ３５に記憶されているプログラムを実行することによって、各種処理を行う。
【００４０】
ローカルメモリ３５は、プロセッサ３４によって実行されるプログラムを記憶する。また、ローカルメモリ３５は、プロセッサ３４によって参照されるテーブルを記憶する。なお、当該テーブルは、管理者によって設定又は変更される。
【００４１】
この場合、管理者は、テーブルの設定又はテーブルの変更に関する情報を、保守端末ＳＶＰに入力する。保守端末ＳＶＰは、入力された情報を、ネットワークインターフェース３３を介してプロセッサ３４に送信する。プロセッサ３４は、受信した情報に基づいて、テーブルを作成又は変更する。そして、プロセッサ３４は当該テーブルをローカルメモリ３５に格納する。
【００４２】
プロセッサ周辺制御部３６は、キャッシュメモリインターフェース３１、ストレージチャネルインターフェース３２、ネットワークインターフェース３３、プロセッサ３４及びローカルメモリ３５間のデータ転送を制御する。プロセッサ周辺制御部３６は、例えば、チップセット等である。なお、ストレージアダプタＳＡ１も、ストレージアダプタＳＡ０と同一の構成である。よって、説明を省略する。
【００４３】
図４は、フラッシュメモリモジュールＰ００の構成を示すブロック図である。フラッシュメモリモジュールＰ００は、フラッシュメモリコントローラＭＣ、フラッシュメモリＭＥＭ及び電源（ＰＳ）４０８を備える。フラッシュメモリＭＥＭはデータを記憶する。フラッシュメモリコントローラＭＣは、フラッシュメモリＭＥＭに対してデータを読み書きあるいは消去する。電源４０８は、フラッシュメモリモジュールＰ００外部から供給された電力を、フラッシュメモリモジュールＰ００内部で使用する電圧に変換または調整して、フラッシュメモリコントローラＭＣ、フラッシュメモリＭＥＭ等へ供給する。
【００４４】
フラッシュメモリコントローラＭＣは、プロセッサ（μＰ）４０１、インターフェース部（ＤＫＣＩ／Ｆ）４０２、内部バス（ＢＵＳ）４０３、メモリ（ＲＡＭ）４０４、メモリ（ＲＯＭ）４０７、電力制御部（ＰＣＴＬ）４０９、フラッシュメモリインターフェース部（ＦＭＩ／Ｆ）４１０及びデータ転送部（ＤＭＡ）４１１を備える。
【００４５】
フラッシュメモリＭＥＭは、複数のフラッシュメモリチップ４０５を備える。フラッシュメモリチップ４０５は、複数のブロック４０６を含み、データを記憶する。ブロック４０６は、図５で後述するが、フラッシュメモリコントローラＭＣがデータを一括消去する単位である。
【００４６】
インターフェース部４０２は、チャネルＤ００を介して、ストレージコントローラＳＣ内のストレージアダプタＳＡ０に接続されている。また、インターフェース部４０２は、チャネルＤ１０を介して、ストレージコントローラＳＣ内のストレージアダプタＳＡ１に接続されている。
【００４７】
インターフェース部４０２は、ストレージアダプタＳＡ０及びストレージアダプタＳＡ１からの命令を受信する。ストレージアダプタＳＡ０及びストレージアダプタＳＡ１からの命令は、例えば、Ｓｅｒｉａｌ−ＡＴＡコマンドヤＳＣＳＩコマンドである。具体的には、インターフェース部４０２は、ストレージアダプタＳＡ０及びストレージアダプタＳＡ１からデータを受信する。そして、インターフェース部４０２は、受信したデータをメモリ４０４に格納する。また、インターフェース部４０２は、メモリ４０４に格納されているデータを、ストレージアダプタＳＡ０及びストレージアダプタＳＡ１へ送信する。
【００４８】
メモリ４０４は、例えば、ＳＲＡＭであり、高速に読み書きできる。メモリ４０４は、インターフェース部４０２が送受信するデータを一時的に記憶する。また、メモリ４０７は不揮発性メモリであり、プロセッサ４０１によって実行されるプログラムを記憶する。当該プログラムは、プロセッサ４０１が実行可能となるように、ストレージ装置１００の起動時にメモリ４０７からメモリ４０４へコピーされる。また、メモリ４０４は、プロセッサ４０１によって参照されるテーブルを記憶する。
【００４９】
当該テーブルは、例えば、フラッシュメモリＭＥＭの論理ページアドレスと物理ページアドレスとの変換テーブルである。論理ページアドレスは、フラッシュメモリモジュールＰ００外から（例えばストレージアダプタＳＡ０から）、フラッシュメモリＭＥＭの読み書きする単位であるページにアクセスするためのアドレスである。物理ページアドレスは、フラッシュメモリコントローラＭＣが、フラッシュメモリＭＥＭの読み書きする単位であるページにアクセスするためのアドレスである。
【００５０】
内部バス４０３は、プロセッサ４０１、インターフェース部４０２、メモリ４０４、メモリ４０７、データ転送部４１１及びフラッシュメモリインターフェース部４１０を相互に接続し、データの転送路として機能する。
【００５１】
電力制御部４０９は、フラッシュメモリコントローラＭＣの消費電力を制御する。電力制御部４０９は、ネットワークＮ００及びＮ０１を介してストレージアダプタＳＡ０及びＳＡ１と接続している。
【００５２】
フラッシュメモリインターフェース部４１０は、フラッシュメモリコントローラＭＣとフラッシュメモリチップＭＥＭを接続するインターフェースである。
【００５３】
データ転送部４１１は、プロセッサ４０１の命令により、フラッシュメモリチップＭＥＭに対する読み書きデータの転送を制御する。なお、データ転送部４１１の機能をプロセッサ４０１が実行する場合は、データ転送部４１１を省略することができる。
【００５４】
プロセッサ４０１は、メモリ４０４に格納されているプログラムを実行することによって、各種処理を行う。例えば、プロセッサ４０１は、メモリ４０４に格納されているフラッシュメモリＭＥＭの論理ページアドレスとフラッシュメモリＭＥＭの物理ページアドレスとのアドレスを変換するアドレス変換テーブル（図７を参照して後述する。）を参照して、フラッシュメモリＭＥＭにデータを読み書きする。
【００５５】
図７は、メモリ４０４に格納するアドレス変換テーブルを示す図である。論理ページアドレス７０１と、各論理ページアドレス７０１に対応する物理ページアドレス７０２と、エラー訂正情報７０３が、アドレス変換テーブルＴ１を構成する。エラー訂正情報７０３は、例えばハミングコード（Hamming code）であり、アドレス変換テーブルＴ１に格納した論理ページアドレス７０１と物理ページアドレス７０２とエラー訂正情報７０３により発生したエラーの検出と訂正が可能である。
【００５６】
また、プロセッサ４０１は、フラッシュメモリモジュールＰ００内のブロック４０６に対して、後述するリクラメーション処理（ブロック再生処理）及び後述するウエアレベリング処理（消去回数平準化処理）を行う。
【００５７】
なお、他のフラッシュメモリモジュールＰ０１〜Ｐ３３も、フラッシュメモリモジュールＰ００と同一の構成である。よって、説明を省略する。
【００５８】
図５は、フラッシュメモリモジュールＰ００のブロック４０６の説明図である。ブロック４０６は、複数のページ５０１を含む。ブロック４０６は、一般的に、数十程度のページ５０１（例えば６４ページ等）を含む。
【００５９】
ページ５０１は、フラッシュメモリコントローラＭＣがデータを読み出しあるいは書き込む単位である。例えば、ＮＡＮＤ型フラッシュメモリでは、フラッシュメモリコントローラＭＣは、（２０〜３０μｓ弱／ページ）の速度でデータを読み出し、（０.２〜０.３ｍｓ／ページ）の速度でデータを書き込む。また、フラッシュメモリコントローラＭＣは、（２〜４ｍｓ／ブロック）の速度でデータを消去する。
【００６０】
ページ５０１は、データ部５０２及び冗長部５０３を含む。ページ５０１は、例えば、ページ当たり容量が２１１２バイトであり、２０４８バイトのデータ部５０２及び６４バイトの冗長部５０３を含む。データ部５０２は、通常のデータを記憶する。冗長部５０３は、当該ページ５０１の管理情報及びエラー訂正情報を記憶する。
【００６１】
管理情報は、オフセットアドレス及びページステータスを含む。なお、オフセットアドレスは、当該ページ５０１が属するブロック４０６内における相対的なアドレスである。また、ページステータスは、当該ページ５０１が有効ページ、無効ページ、未使用ページ又は処理中のページのいずれであるかを示す。
【００６２】
エラー訂正情報は、当該ページ５０１のエラーを検出及び訂正するための情報であり、例えば、ハミングコードである。
【００６３】
ページ内冗長部５０３は、通常、フラッシュメモリコントローラＭＣのみがアクセス可能であり、ストレージアダプタＳＡ０、ＳＡ１からは、ページデータ部５０２のみがアクセス可能である。言い換えると、論理ページアドレスはページ内データ部５０２のメモリ空間をマッピングする。
【００６４】
なお、フラッシュメモリモジュールＰ００は、特性上、ブロック４０６内のデータ「１」を「０」に書き換えることはできるが、「０」を「１」に書き換えることができない。つまり、データを直接書き換えることができない。フラッシュメモリコントローラＭＣは、ブロック内の未使用ページにデータを書き込む。未使用ページが無くなり書き込みができなくなったブロックの有効データを他のブロックへ退避させ、該ブロックを消去して再びデータを書き込める状態にすることを、リクラメーション処理（ブロック再生処理）という。
【００６５】
このように、フラッシュメモリモジュールＰ００におけるデータの書換えは、ブロック４０６の消去が伴う。しかし、ブロック４０６を１つ消去するのにかかる時間は、１ページ５０１の書込みにかかる時間に比べて約１桁長い。従って、ページ５０１のデータの書換えのために毎回ブロック４０６を１つ消去すると、フラッシュメモリモジュールＰ００のデータ書換え性能は悲観的に悪くなる。つまりフラッシュメモリモジュールＰ００では、消去時間を隠蔽できるアルゴリズムでデータを書き込むことが必要である。
【００６６】
また、フラッシュメモリモジュールＰ００において、上記ブロック４０６を消去する回数には制限がある。例えば、ブロック４０６は、１つ当たりの消去回数は、１０万回までしか保証されていない。したがって、データの書換えが集中して消去回数が増大したブロック４０６は、データ消去ができなくなり使用不能となる。このため、フラッシュメモリモジュールＰ００を記録媒体として使用するストレージ装置１００では、特定のブロック４０６に消去が集中しないように消去回数平準化処理が行われている。
【００６７】
以上述べた消去時間隠蔽と消去回数平準化のため、フラッシュメモリモジュールＰ００内ではデータ書込みの際に、論理ページアドレスから物理ページアドレスにアドレスを変換するアドレス変換処理が行われている。具体的には、フラッシュメモリコントローラＭＣは、特定の物理ページアドレスに書き込みが集中するのをさけるため、上位装置（図示省略）からデータ書込み先アドレスとして受信した論理ページアドレスを、アドレス変換テーブルＴ１を参照して実際のフラッシュメモリチップ４０５での書き込み先アドレスである物理ページアドレスへ変換している。このため、フラッシュメモリモジュールＰ００では、アドレス変換テーブルＴ１のデータ保証が常に求められている。
【００６８】
上述のリクラメーション処理やウエアレベリング処理のため、フラッシュメモリモジュールＰ００に書き込んだデータは、ストレージコントローラＳＣからの指示とは独立に、フラッシュメモリモジュールＰ００内で移動することがある。このデータ移動の結果を、フラッシュメモリコントローラＭＣが前述の論理ページアドレスと物理ページアドレスのアドレス変換テーブルに正しく反映しないと、ストレージコントローラＳＣが正しいデータにアクセスできなくなる。
【００６９】
ところが、放射線等によるアドレス変換テーブルＴ１のデータ化けにより、アドレス変換テーブルＴ１のデータにソフトエラーが生じると、フラッシュメモリモジュールＰ００内において、データを書き込む先あるいは読出し先のアドレスにエラーが発生することになり、ストレージコントローラＳＣが正しいデータを読み出すことができなくなる。
【００７０】
次にフラッシュメモリコントローラＭＣの消費電力制御について説明する。図６は、フラッシュメモリコントローラＭＣの消費電力制御に関わる構成要素の説明図である。電力制御部４０９は、低消費電力化時の動作条件を設定するレジスタ６０６を有する。レジスタ６０６に格納するデータは後述する（図８、図９）。レジスタ６０６に格納するデータは、ネットワークＮ００とＮ０1を介して、ストレージアダプタＳＡ０とＳＡ１から設定及び監視が可能である。
【００７１】
電源４０８は、レジスタ６０６に格納された設定条件を、信号線６０４を介して読み取り、その設定条件に従ってフラッシュメモリコントローラＭＣ内のプロセッサ４０１、インターフェース部４０２、メモリ４０４、メモリ４０７、フラッシュメモリインターフェース部４１０、データ転送部４１１へ、チップ電源配線６０１を介して電力を供給する。また電源４０８は、基板バイアス制御部６０８へ、チップ電源配線６０３を介して基板バイアス用電力を供給する。そして、基板バイアス制御部６０８は、レジスタ６０６に格納された設定条件を、信号線６０７を介して読み取り、その設定条件に従ってフラッシュメモリコントローラＭＣ内のプロセッサ４０１、インターフェース部４０２、メモリ４０４、メモリ４０７、フラッシュメモリインターフェース部４１０、データ転送部４１１へ、チップ電源配線６０５を介して基板バイアス用電力を分配する。
【００７２】
クロック制御部６１５は、レジスタ６０６に格納された設定条件を、信号線６１１を介して読み取り、その設定条件に従って信号線６１６から入力した基準クロック信号を変換し、フラッシュメモリコントローラＭＣ内のプロセッサ４０１、インターフェース部４０２、電力制御部４０９、フラッシュメモリインターフェース部４１０、データ転送部４１１へ、信号線６１２、６１３、６１４を介して変換したクロック信号を分配する。
【００７３】
プロセッサ４０１は、電力制御部４０９に対して割込み許可あるいは不許可を判定するための信号を、信号線６１０を介して伝送する。また、電力制御部４０９は、信号線６０９を介してプロセッサ４０１に対して動作停止信号あるいは動作再開信号を伝送する。
【００７４】
インターフェース部４０２は、インターフェース部４０２に対する低消費電力化コマンド、例えばＳｅｒｉａｌ−ＡＴＡのＳｌｕｍｂｅｒコマンド等を受信した場合に、信号線６０２を介して低消費電力化コマンド受信を電力制御部４０９へ通知する。
【００７５】
図８と図９は、電力制御部（ＰＣＴＬ）４０９内のレジスタ６０６に格納するデータを説明する図である。電力制御部４０９内のレジスタ６０６は、詳細にはレジスタＡ（図８）とレジスタＢ（図９）の２種類がある。
【００７６】
図８は、レジスタＡに格納するデータを説明する図である。レジスタＡは、主に、フラッシュメモリモジュールＰ００〜Ｐ３３の低消費電力動作への移行条件を制御するパラメータを格納する。パラメータ８０１は、フラッシュメモリモジュールＰ００〜Ｐ３３が自発的に低消費電力動作に移行するか、あるいはストレージアダプタＳＡ０，ＳＡ１等からのコマンド受信により低消費電力動作に移行するか、あるいはそれら両方を低消費電力化動作の契機とするか、を設定する。
【００７７】
パラメータ８０２は、低消費電力動作時に、アドレス変換テーブルＴ１のデータ検証を行うか否かを設定する。アドレス変換テーブルＴ１のデータ検証を行わない場合は、データ検証を行う場合よりも低消費電力となるが、通常動作に復帰する際には、フラッシュメモリチップ４０５からのアドレス情報再読み込みが必要となる。
【００７８】
パラメータ８０３は、パラメータ８０１において低消費電力動作への移行を自発モードと設定した場合の、移行条件を格納する。例えば、パラメータ８０３に格納した時間内にフラッシュメモリモジュールＰ００〜Ｐ３３へのアクセスが無く、且つパラメータ８０１が自発モードに設定されていた場合に、フラッシュメモリモジュールＰ００〜Ｐ３３は自動的に低消費電力動作へ移行する。
【００７９】
パラメータ８０４は、現状の動作が通常動作あるいは低消費電力動作かを示す。パラメータ８０４を調べることにより、ストレージアダプタＳＡ０，ＳＡ１等は、フラッシュメモリモジュールＰ００〜Ｐ３３の動作状態を知ることができる。また、パラメータ８０５は、アドレス変換テーブルＴ１に発生した、エラー訂正情報７０３だけでは訂正不能なエラーの発生回数を示す。
【００８０】
図９は、レジスタＢに格納するデータを説明する図である。レジスタＢは、フラッシュメモリモジュールＰ００〜Ｐ３３の低消費電力時の動作条件を制御するパラメータを格納する。レジスタＢにおける項目９０１から９０６は、フラッシュメモリコントローラＭＣ内部の電力制御対象を示す。また、項目９０７から９０９は、低消費電力化のために変化させる動作条件を示す。項目９０７と９０８は、低消費電力化時にプロセッサ４０１、インターフェース部４０２、メモリ４０４、メモリ４０７、フラッシュメモリインターフェース部４１０、データ転送部４１１へ供給する電源電圧と基板バイアスの条件を示す。電源電圧と基板バイアスに関しては後述する。項目９０９は、低消費電力化時のプロセッサ４０１、インターフェース部４０２、メモリ４０４、メモリ４０７、フラッシュメモリインターフェース部４１０、データ転送部４１１の動作周波数を示す。動作周波数は低くするほど低消費電力化効果が大きいが、動作を停止させる場合には周波数を“０”と設定する。項目９０２と９０３は、メモリ（ＲＡＭ４０４，ＲＯＭ４０７）に対する制御パラメータである。メモリ（ＲＡＭ４０４，ＲＯＭ４０７）に対しては、アクセスする信号の周波数で動作周波数が決まるため、低消費電力化時の動作周波数の設定は不要である。
【００８１】
図１０は、電源電圧と基板バイアスの説明図である。インバータ回路ＩＮＶには、正のチップ内電源ＶＤＤ１あるいはＶＤＤ２と、負のチップ内電源ＶＳＳ１あるいはＶＳＳ２と、正の基板バイアスＶＳＵＢ１あるいはＶＳＵＢ２と、負の基板バイアスＶＳＵＢ３あるいはＶＳＵＢ４を供給する。ここで、ＶＤＤ１、ＶＳＳ１、ＶＳＵＢ１、ＶＳＵＢ３は、通常動作時に回路へ供給する電源電圧を表すこととする。そしてＶＤＤ２、ＶＳＳ２、ＶＳＵＢ２、ＶＳＵＢ４は、低消費電力動作時に回路へ供給する電源電圧を表すこととする。
【００８２】
例えば、通常動作時は、ＶＤＤ１＝ＶＳＵＢ１、ＶＳＳ１＝ＶＳＵＢ３となる所定の電圧で電力を回路へ供給する。それに対して低消費電力動作時は、ＶＤＤ１＞ＶＤＤ２かつＶＤＤ２＜ＶＳＵＢ２、ＶＳＳ２≧ＶＳＳ１かつＶＳＳ２＞ＶＳＵＢ４となる条件の電圧で電力を供給する。電源電圧低下は回路の動作電力を低下させ、適切な基板バイアス印加は、リーク電流低減による消費電力を低下させる効果がある。
【００８３】
図１１は、ストレージアダプタＳＡ０あるいはＳＡ１内で管理するフラッシュメモリモジュール管理テーブルＴ２を説明する図である。ストレージアダプタＳＡ０とＳＡ１は、ネットワークＮ００またはＮ０１を介してフラッシュメモリモジュールＰ００〜Ｐ３３へアクセスし、レジスタＡ、Ｂの内容を監視または設定変更することができる。図１１のフラッシュメモリモジュール管理テーブルＴ２は、各フラッシュメモリモジュールＰ００〜Ｐ３３のレジスタＡ、Ｂ内に格納したパラメータを管理するため、フラッシュメモリモジュール識別子１００１、各フラッシュメモリモジュールのレジスタＡの内容１００２、及び各フラッシュメモリモジュールのレジスタＢの内容１００３を格納する。
図１２は、ストレージアダプタＳＡ０あるいはＳＡ１内で管理するＲＡＩＤグループ管理テーブルＴ３を説明する図である。
【００８４】
図１２のＲＡＩＤグループ管理テーブルＴ３は、ＲＡＩＤグループ識別子１２０１と、各ＲＡＩＤグループを構成するフラッシュメモリモジュール識別子の集合１２０２を格納する。このＲＡＩＤグループ管理テーブルＴ３は、図１７，図１８を用いて説明するフローチャートにおいて使用する。
【００８５】
図１３は、フラッシュメモリモジュールＰ００の低消費電力動作を説明するフローチャートである。なお、他のフラッシュメモリモジュールＰ０１〜Ｐ３３については、フラッシュメモリモジュールＰ００と同様な動作を行うために説明を省略する。図１３のフローチャートでは、フラッシュメモリモジュールＰ００の低消費電力動作への移行条件が、外部からのコマンド受信を契機とする場合を示す。
【００８６】
ステップＳＴ１０１において、インターフェース部４０２は、例えばストレージアダプタＳＡ０あるいはＳＡ１から、低消費電力化コマンドを受信する。このコマンドは、例えばＳ−ＡＴＡのＳｌｕｍｂｅｒコマンドである。インターフェース部４０２は、低消費電力化コマンド受信を電力制御部４０９へ通知する。
【００８７】
ステップＳＴ１０２において、電力制御部４０９は、プロセッサ４０１が割込み許可状態か否かを信号線６１０によりチェックする。
【００８８】
ステップＳＴ１０３において、割込み不許可ならば（ＳＴ１０３：ＮＯ）、再びステップＳＴ１０２に戻り割込み許可を待つ。割込み不許可の要因としては、例えば、プロセッサ４０１がフラッシュメモリチップ４０５の消去回数平準化処理を実行中であることがある。なぜならば、プロセッサ４０１が読み書きのアクセスが無い期間において、消去回数平準化処理を実行する場合があるからである。本実施の形態のフラッシュメモリモジュールＰ００は、消去回数平準化処理の実行中は、低消費電力動作へ移行せず、消去回数平準化処理完了まで待機する。すなわち、以下で説明するように、フラッシュメモリモジュールＰ００は、消去回数平準化処理が完了した後、通常動作から低消費電力動作への移行及びアドレス変換テーブルＴ１のデータ検証が行われる。
【００８９】
ステップＳＴ１０３において、プロセッサ４０１が割込み許可であった場合は（ＳＴ１０３：ＹＥＳ）、ステップＳＴ１０４に進む。ステップ１２０４において、電力制御部４０９はプロセッサ４０１に対して動作停止指示を、信号線６０９を介して送信する。
【００９０】
ステップＳＴ１０５において、電力制御部４０９は、レジスタ６０６の設定内容に従い、電源電圧、基板バイアス電圧、クロック周波数を変更する。
【００９１】
ステップＳＴ１０６において、プロセッサ４０１はアドレス変換テーブルＴ１のデータ検証を実行する。このステップＳＴ１０６の内容の詳細は図１４のフローチャートを用いて後述する。
【００９２】
ステップＳＴ１０７において、インターフェース部４０２が低消費電力動作から通常動作への復帰コマンド（アクティヴコマンド）を受信したか否かをチェックする。アクティヴコマンドを受信した場合は（ＳＴ１０７：ＹＥＳ）、ステップＳＴ１０９へ進む。
【００９３】
ステップＳＴ１０９において、電力制御部４０９は電源電圧、基板バイアス電圧、クロック周波数を通常動作のための状態へ戻す。ステップＳＴ１１０において、電力制御部４０９はプロセッサ４０１に対して動作再開を指示する。
【００９４】
ステップＳＴ１０７においてアクティヴコマンドの受信がなかった場合は（ＳＴ１０７：ＮＯ）、ステップＳＴ１０８において、所定時間待機する。所定時間内はステップＳＴ１０７を繰り返し、一定の周期でステップＳＴ１０６のアドレス変換テーブルＴ１のデータ検証を実行する。電力制御部４０９の消費電力がプロセッサ４０１の消費電力より十分小さい場合に、プロセッサ４０１によるアドレス変換テーブルＴ１のデータチェックのための動作期間の割合を少なくすることで、フラッシュメモリコントローラＭＣの低消費電力化を図ることができる。
【００９５】
図１５は、アドレス変換テーブルＴ１のデータ検証の低デューティ実行を説明するタイムチャートである。プロセッサ４０１は、アドレス変換テーブルＴ１のデータ検証を一部分ずつ（１／ｎ）、テーブル検証期間より停止期間の方が長くなるように、つまり、低デューティで実行する。
【００９６】
図１５に示すように、プロセッサ４０１がアドレス変換テーブルＴ１のデータ検証を所定範囲ずつ行う周期をＴとする。そして、その周期Ｔの内、プロセッサ４０１がアドレス変換テーブルＴ１の所定範囲をデータ検証する期間をｔとする。周期Ｔと期間ｔ、あるいは周期Ｔと所定範囲は、以下の３つの条件が成立するように設定する。
【００９７】
先ず、１つ目の条件である周期Ｔの設定条件について説明する。本実施の形態のフラッシュメモリモジュールＰ００〜Ｐ３３が、アドレス変換テーブルＴ１のデータ検証を伴う低消費電力動作から通常動作へ移行するのに要する時間は、周期Ｔと、プロセッサ４０１動作時にフラッシュメモリモジュールＰ００〜Ｐ３３がアクディヴコマンドを受信してから通常動作へ移行するのに要する時間の和である。その和が、ストレージ装置１００の仕様として許容できる待ち時間以下となるように、周期Ｔを設定する。
【００９８】
次に、２つ目の条件である期間ｔあるいは期間ｔ内データ検証範囲の設定条件ａについて説明する。プロセッサ４０１が所定範囲のデータ検証に要する時間と消費する電力を考慮して、アドレス変換テーブルＴ１のデータの検証を伴う低消費電力動作中の平均消費電力がストレージ装置１００として許容できる消費電力以下となるように、周期Ｔと期間ｔ、あるいは周期Ｔと期間ｔ内にプロセッサ４０１が実行するデータ検証の範囲を決定する。
【００９９】
次に、３つ目の条件である期間ｔあるいは期間ｔ内データ検証範囲の設定条件ｂについて説明する。ストレージ装置１００に搭載した全てのフラッシュメモリモジュールＰ００〜Ｐ３３内のアドレス変換テーブルＴ１に、統計的に１ビットのソフトエラーが起こりうると予想される期間内に、アドレス変換テーブルＴ１内の全データの検証を少なくとも１回完了するように、周期Ｔと期間ｔ、あるいは周期Ｔと期間ｔ内にプロセッサ４０１が実行するデータ検証の範囲を決定する。
【０１００】
図１４は、本発明の実施の形態のフラッシュメモリモジュールＰ００が、低消費電力動作中に行うアドレス変換テーブルＴ１のデータ検証（ステップＳＴ１０６）を説明するフローチャートである。
【０１０１】
ステップＳＴ２０１において、電力制御部４０９はプロセッサ４０１とメモリ４０４の動作条件を通常動作に変更し、プロセッサ４０１へ動作再開を指示する。なお、プロセッサ４０１とメモリ４０４が低消費電力動作のままでもアドレス変換テーブルＴ１のデータ検証が可能ならば、動作条件を変更しなくても良い。ステップＳＴ２０２において、プロセッサ４０１はデータ検証のアドレス変換テーブルＴ１内データへのポインタを、レジスタへセットする。
【０１０２】
ステップＳＴ２０３においてテーブルに格納されている論理ページアドレスと物理ページアドレスとエラー訂正情報をチェックし、ステップＳＴ２０４においてエラーの有無を判定する。このステップＳＴ２０４においてエラーが無い場合は（ＳＴ２０４：ＮＯ）ステップＳＴ２０８へ進む。ステップＳＴ２０８において、所定のデータ量のチェックが完了した場合は（ＳＴ２０８：ＹＥＳ）ステップＳＴ２０９へ進む。
【０１０３】
本実施の形態のフラッシュメモリモジュールＰ００では、一度にアドレス変換テーブルＴ１内全てのデータを連続して検証するのではなく、複数回に分けてデータ検証を行うことにより、平均的な消費電力を低減している。ステップＳＴ２０９において、電力制御部４０９はプロセッサ４０１へ対して、動作停止を指示する。このとき、ステップＳＴ２０１においてプロセッサ４０１とメモリ４０４を通常動作へ変更していた場合は、再びプロセッサ４０１とメモリ４０４を低消費電力動作へ変更する。
【０１０４】
ステップＳＴ２０８において所定量のデータ検証が完了していない場合は（ＳＴ２０８：ＮＯ）、ステップＳＴ２１０において、次のアドレス変換テーブルＴ１内のデータを指すポインタをレジスタにセットし、ステップＳＴ２０３に戻る。
【０１０５】
ステップＳＴ２０４においてエラーが検出された場合は（ＳＴ２０４：ＹＥＳ）、ステップＳＴ２０５においてエラー訂正可能性を判定する。データに付加しているエラー訂正情報からエラーが訂正可能な場合は（ＳＴ２０５：ＹＥＳ）、ステップＳＴ２０７へ進み、エラー訂正を実行する。
【０１０６】
エラー訂正情報からではエラー訂正不能な場合は、例えばエラー発生ビット数が多い場合は（ＳＴ２０５：ＮＯ）、ステップＳＴ２０６のテーブル再構成処理を実行する。そして、処理は、ステップＳＴ２０２へ戻る。
【０１０７】
次に、テーブル再構成処理（ステップＳＴ２０６）について説明する。図１６はテーブル再構成処理を説明するフローチャートである。
【０１０８】
ステップＳＴ３０１において、電力制御部４０９はレジスタＡのパラメータ８０５の、訂正不能エラー発生回数をインクリメントする。そして、ステップＳＴ３０２において、パラメータ８０２の値が所定の値以下であるか否かを判定する。エラー発生回数が所定回数に達した場合は（ＳＴ３０２：ＹＥＳ）、処理はステップＳＴ３０３へ進む。
【０１０９】
ステップＳＴ３０３は、エラー発生回数が所定回数に達したフラッシュメモリモジュール（障害モジュール）を交換し、スペアのフラッシュメモリモジュール（図示を省略）にデータをリビルドする。このリビルドは、障害モジュールと同じＲＡＩＤグループに属するフラッシュメモリモジュールのデータを、ストレージアダプタＳＡ０又はＳＡ１が読み出して排他的論理和計算を行い、障害モジュールに格納されていたデータを再生する処理である。
【０１１０】
また、スペアのフラッシュメモリモジュールは、予めストレージアダプタＳＡ０、ＳＡ１に接続しておくと、リビルドを早く実行できる。スペアのフラッシュメモリモジュールは、ストレージアダプタＳＡ０、ＳＡ１へ接続した際に、そのフラッシュメモリモジュール内のフラッシュメモリコントローラにアドレス変換テーブルＴ１を作成しておき、作成後は図１３のアドレス変換テーブルＴ１のデータ検証（ＳＴ１０６，図１４）の実行を伴う低消費電力動作で待機状態にしておく。このようにスペアのフラッシュメモリモジュールを待機状態にしておくことにより、必要になったときに直ぐに使用可能となる。
【０１１１】
ステップＳＴ３０２でエラー回数が所定回数以下の場合は（ＳＴ３０２：ＮＯ）、処理はステップＳＴ３０４へ進む。ステップＳＴ３０４において、プロセッサ４０１は、フラッシュメモリモジュールＰ００の先頭物理ページアドレスへのポインタをレジスタにセットする。
【０１１２】
ステップＳＴ３０５において、プロセッサ４０１は該当物理ページアドレスから論理ページアドレス情報を読み出し、アドレス変換テーブルＴ１へアドレス情報を格納する。
【０１１３】
ステップＳＴ３０７において、プロセッサ４０１のポインタが、最終物理ページアドレスに達したかを判定する。ステップＳＴ３０７において最終物理ページアドレスへ達していない場合は（ＳＴ３０７：ＮＯ）、ステップＳＴ３０６で、次の物理ページアドレスにアクセスするため、ポインタを進める。
【０１１４】
ステップＳＴ３０７において、最終物理ページアドレスまでアドレス調査が完了した場合は（ＳＴ３０７：ＹＥＳ）、処理を完了する。
【０１１５】
また、レジスタＡのパラメータ８０５のエラー回数が所定回数に達する場合としては、過去のデータ検証結果を含む累積で所定の回数に達する場合と、あるいは一回のチェックで複数のエラーが発生し所定回数に達する場合が考えられる。
【０１１６】
次に、本実施の形態のストレージ装置１００が、ＲＡＩＤグループ（ＶＤＥＶ０〜ＶＤＥＶ３）内の全フラッシュメモリモジュールに対して低消費電力動作へ移行させる方法を説明する。図１７はこの方法を説明するフローチャートである。
【０１１７】
ストレージアダプタＳＡ０又はＳＡ１は、ＲＡＩＤグループ内の複数フラッシュメモリモジュール（例えば、ＶＥＤＶ０：フラッシュメモリモジュールＰ００，Ｐ１０，Ｐ２０，Ｐ３０）に対して、ほぼ同期してデータの読み書きを実行する。従って、低消費電力化するか否かもＲＡＩＤグループ内のフラッシュメモリモジュールは同期する。例えば、フラッシュメモリモジュールＰ００の低消費電力化が自発モードに設定されていた場合を考える。
【０１１８】
ステップＳＴ４０１においてストレージアダプタＳＡ０又はＳＡ１は、あるフラッシュメモリモジュール、例えばフラッシュメモリモジュールＰ００の低消費電力動作への移行を検出する。これは、ストレージアダプタＳＡ０，ＳＡ１が各フラッシュメモリモジュールＰ００〜Ｐ３３のレジスタＡを監視することにより可能となる。
【０１１９】
ステップＳＴ４０２においてストレージアダプタＳＡ０又はＳＡ１は、図１２で説明したＲＡＩＤグループ管理テーブルＴ３にアクセスして、低消費電力動作へ移行したフラッシュメモリモジュールＰ００と同じＲＡＩＤグループ（ＶＤＥＶ０）に属するフラッシュメモリモジュールＰ１０，Ｐ２０，Ｐ３０を調査する。
【０１２０】
ステップＳＴ４０３において、該当ＲＡＩＤグループ（ＶＤＥＶ０）内で低消費電力動作へ移行していないフラッシュメモリモジュールの有無を判定する。
【０１２１】
ステップＳＴ４０３において、低消費電力動作へ移行していないフラッシュメモリモジュールがある場合は（ＳＴ４０３：ＹＥＳ）、ステップＳＴ４０４へ進み、ストレージアダプタＳＡ０又はＳＡ１は、該当ＲＡＩＤグループ内の低消費電力動作へ移行していないフラッシュメモリモジュールに対して、低消費電力化コマンドを発行する。そして、処理はステップＳＴ４０３へ戻る。
【０１２２】
ステップＳＴ４０３において、低消費電力動作へ移行していないフラッシュメモリモジュールがない場合、すなわち、ＲＡＩＤグループ（ＶＤＥＶ０）内全てのフラッシュメモリモジュールＰ１０，Ｐ２０，Ｐ３０が低消費電力動作へ移行した場合は（ＳＴ４０３：ＮＯ）、処理を終了する。
【０１２３】
低消費電力動作時から通常動作へ復帰する場合についても、ＲＡＩＤグループ（ＶＤＥＶ０〜ＶＤＥＶ３）内のフラッシュメモリモジュールは同期する。従って、図１７と実質的に同様のフローチャートで、ＲＡＩＤグループ内全てのフラッシュメモリモジュールの通常動作への復帰が可能となる。
【０１２４】
続いて、ＲＡＩＤグループ単位で低消費電力動作から通常動作へ移行する方法について説明する。図１８はこの方法を示すフローチャートである。
【０１２５】
ステップＳＴ５０１においてストレージアダプタＳＡ０又はＳＡ１は、ＲＡＩＤグループのあるフラッシュメモリモジュール（例えば、ＶＥＤＶ０：フラッシュメモリモジュールＰ００）に対して低消費電力動作から通常動作への移行を指示する。つまり、ストレージアダプタＳＡ０又はＳＡ１がフラッシュメモリモジュールＰ００へアクティヴコマンドを発行する。
【０１２６】
ステップＳＴ５０２において、ストレージアダプタＳＡ０又はＳＡ１は、図１２で説明したＲＡＩＤグループ管理テーブルＴ３にアクセスして、通常動作への移行を指示したフラッシュメモリモジュールと同じＲＡＩＤグループに属するフラッシュメモリモジュールを調査する。例えば、フラッシュメモリモジュールＰ００が通常動作への移行を指示されたのであれば、フラッシュメモリモジュールＰ１０，Ｐ２０，Ｐ３０が調査される。
【０１２７】
ステップＳＴ５０３において、当該ＲＡＩＤグループ内で低消費電力動作から通常動作へ移行していないフラッシュメモリモジュールの有無を判定する。
【０１２８】
ステップＳＴ５０３において、当該ＲＡＩＤグループ内で低消費電力動作から通常動作へ移行していないフラッシュメモリモジュールがある場合は（ＳＴ５０３：ＹＥＳ）、ステップＳＴ５０４において、ストレージアダプタＳＡ０又はＳＡ１は、該当ＲＡＩＤグループ内の低消費電力動作から通常動作へ移行していないフラッシュメモリモジュールに対してアクティヴコマンドを発行する。そして、処理はステップＳＴ５０３へ戻る。
【０１２９】
ステップＳＴ５０３において、当該ＲＡＩＤグループ内で低消費電力動作から通常動作へ移行していないフラッシュメモリモジュールがない場合は、すなわち、ＲＡＩＤグループ内全てのフラッシュメモリモジュールＰ１０，Ｐ２０，Ｐ３０が通常動作へ移行した場合は（ＳＴ５０３：ＮＯ）、処理を終了する。
【０１３０】
このように、ＲＡＩＤグループ内の複数のフラッシュメモリモジュールを同期して低消費電力化することにより、ストレージアダプタＳＡ０又はＳＡ１はＲＡＩＤグループ単位でフラッシュメモリモジュールの電力を管理できるので、消費電力低減効果が大きく、またストレージアダプタＳＡ０又はＳＡ１の管理付加が軽減する。
【０１３１】
以上説明したように、本実施の形態のフラッシュメモリモジュールＰ００〜Ｐ３３は、フラッシュメモリコントローラＭＣとフラッシュメモリチップ４０５からなり、フラッシュメモリコントローラＭＣは、フラッシュメモリチップ４０５の論理ページアドレスと物理ページアドレスを変換するアドレス変換テーブルＴ１を格納するメモリ（ＳＲＡＭ）４０４を備え、フラッシュメモリコントローラＭＣは、データの読み書き時の通常動作である第１の動作と、動作停止、電源電圧低下及び動作周波数低減のいずれかによりデータ読み書き時の通常動作より低消費電力で動作する待機状態時の低消費電力動作とを制御する。
【０１３２】
このフラッシュメモリモジュールＰ００〜Ｐ３３は、低消費電力動作時にアドレス変換テーブルＴ１のデータの検証を行うことにより、低消費電力動作時にアドレス変換テーブルＴ１内のデータに発生したソフトエラーを検出・訂正することができる。すなわち、低消費電力動作時にフラッシュメモリモジュールＰ００〜Ｐ３３の低消費電力化とフラッシュメモリコントローラＭＣ内のアドレス変換テーブルＴ１のデータ保護が可能となる。このため、低消費電力動作から通常動作に復帰する際に、エラーが蓄積した場合に必要となるアドレス変換テーブルＴ１の再構成を行う必要がなくなり、低消費電力動作しているフラッシュメモリモジュールＰ００〜Ｐ３３が通常動作へ瞬時に復帰することができる。
【０１３３】
また、フラッシュメモリコントローラＭＣは、アドレス変換テーブルＴ１のデータ検証を行うデータ検証期間ｔと、フラッシュメモリコントローラＭＣの動作を停止させる動作停止期間を交互に実行し、データ検証期間ｔを動作停止期間より短くしている。このため、データの検証は低デューティで実行される。
【０１３４】
また、スペアのフラッシュメモリモジュールをストレージアダプタＳＡ０又はＳＡ１を接続させておくことにより、フラッシュメモリモジュールＰ００〜Ｐ３３のいずれかにエラー訂正情報によってはエラー訂正不可能なフラッシュメモリモジュール（障害モジュール）が生じた場合にも、同じＲＡＩＤグループの他のフラッシュメモリモジュールからデータをスペアのフラッシュメモリモジュールに移行してリビルドを行うことができ、直ぐに通常動作へ復帰することができる。
【０１３５】
なお、上述の実施の形態においては、本発明を図５及び図６のように構成されたフラッシュメモリモジュールＰ００〜Ｐ３３及びそのフラッシュメモリモジュールＰ００〜Ｐ３１を用いたストレージ装置１００に適用するようにして説明した場合について述べたが、本発明はこれに限られず、この他種々の構成のフラッシュメモリモジュール、そのフラッシュメモリモジュールを記録媒体として用いたストレージ装置及びそのフラッシュメモリモジュールのアドレス変換テーブル検証方法に広く適用することができる。
【産業上の利用可能性】
【０１３６】
本発明は、種々のフラッシュメモリモジュール、そのフラッシュメモリモジュールを記録媒体として用いたストレージ装置及びそのフラッシュメモリモジュールのアドレス変換テーブル検証方法に広く適用することができる。
【図面の簡単な説明】
【０１３７】
【図１】本発明に係わるストレージ装置の構成を示すブロック図。
【図２】本発明に係わるチャネルアダプタの構成を示すブロック図。
【図３】本発明に係わるストレージアダプタの構成を示すブロック図。
【図４】本発明に係わるフラッシュメモリモジュールの構成を示すブロック図。
【図５】本発明に係わるフラッシュメモリモジュールにおけるブロックの説明図。
【図６】本発明に係わるフラッシュメモリコントローラの消費電力制御に係わる構成要素の説明図。
【図７】本発明に係わるアドレス変換テーブルを示す図。
【図８】本発明に係わるレジスタに格納するデータの一例を示す図。
【図９】本発明に係わるレジスタに格納するデータの一例を示す図。
【図１０】本発明に係わる電源電圧と基板バイアスの説明図。
【図１１】本発明に係わるフラッシュメモリモジュール管理テーブルを示す図。
【図１２】本発明に係わるＲＡＩＤグループ管理テーブルを示す図。
【図１３】本発明に係わるフラッシュメモリモジュールの低電力動作を説明するフローチャート。
【図１４】本発明に係わる低電力動作中に行うアドレス変換テーブルのデータ検証を説明するフローチャート。
【図１５】本発明に係わるアドレス変換テーブルのデータ検証の低デューティ実行を説明する図。
【図１６】本発明に係わるテーブル再構成処理について説明するフローチャート。
【図１７】本発明に係わるＲＡＩＤグループ内の全てのフラッシュメモリモジュールを低消費電力動作へ移行させる方法を説明するフローチャート。
【図１８】本発明に係わるＲＡＩＤグループ内の全てのフラッシュメモリモジュールを通常動作へ移行させる方法を説明するフローチャート。
【符号の説明】
【０１３８】
ＳＣ…ストレージコントローラ、
ＣＡ０、ＣＡ１…チャネルアダプタ
ＣＭ、ＣＭ０、ＣＭ１…キャッシュメモリ
ＳＡ、ＳＡ０、ＳＡ１…ストレージアダプタ
Ｐ００、Ｐ０１、Ｐ０２、Ｐ０３、Ｐ１０、Ｐ１１、Ｐ１２、Ｐ１３、Ｐ２０、Ｐ２１、Ｐ２２、Ｐ２３、Ｐ３０、Ｐ３１、Ｐ３２、Ｐ３３…フラッシュメモリモジュール
ＭＣ…フラッシュメモリコントローラ
ＭＥＭ…フラッシュメモリ
Ｃ００、Ｃ０１、Ｃ０２、Ｃ０３、Ｃ１０、Ｃ１１、Ｃ１２、Ｃ１３、Ｄ００、Ｄ０１、Ｄ０２、Ｄ０３、Ｄ１０、Ｄ１１、Ｄ１２、Ｄ１３…チャネル
ＶＤＥＶ０、ＶＤＥＶ０、ＶＤＥＶ０、ＶＤＥＶ０…ＲＡＩＤグループ
Ｎ００、Ｎ０１…ネットワーク
ＮＷ０、ＮＷ１…相互結合網
ＳＶＰ…保守端末
２１…ホストチャネルインターフェース
２２…キャッシュメモリインターフェース
２３…ネットワークインターフェース
２４…プロセッサ
２５…ローカルメモリ
２６…プロセッサ周辺制御部
２７…信号線
３１…キャッシュメモリインターフェース
３２…ストレージチャネルインターフェース
３３…ネットワークインターフェース
３４…プロセッサ
３５…ローカルメモリ
３６…プロセッサ周辺制御部
３７…信号線
１００…ストレージ装置
４０１…プロセッサ
４０２…インターフェース部
４０３…内部バス
４０４、４０７…メモリ
４０５…フラッシュメモリチップ
４０６…ブロック
４０８…電源
４０９…電力制御部
４１０…フラッシュメモリインターフェース部
４１１…データ転送部
５０１…ページ
５０２…ページデータ部
５０３…ページ冗長部
６０１、６０３、６０５…チップ電源配線
６０２、６０４、６０７、６０９、６１０、６１１、６１２、６１３、６１４…信号線
６０８…基板バイアス制御部
６０６…レジスタ
６１５…クロック制御部
６１６…基準クロック配線
ＶＤＤ、ＶＳＳ…チップ内電源
ＶＳＵＢ１、ＶＳＵＢ２…基板バイアス
ＩＮＶ…インバータ回路
Ｔ１…アドレス変換テーブル
Ｔ２…フラッシュメモリモジュール管理テーブル
Ｔ３…ＲＡＩＤグループ管理テーブル
【図１】
2008171163.tif 000003
【図２】
2008171163.tif 000004
【図３】
2008171163.tif 000005
【図４】
2008171163.tif 000006
【図５】
2008171163.tif 000007
【図６】
2008171163.tif 000008
【図７】
2008171163.tif 000009
【図８】
2008171163.tif 000010
【図９】
2008171163.tif 000011
【図１０】
2008171163.tif 000012
【図１１】
2008171163.tif 000013
【図１２】
2008171163.tif 000014
【図１３】
2008171163.tif 000015
【図１４】
2008171163.tif 000016
【図１５】
2008171163.tif 000017
【図１６】
2008171163.tif 000018
【図１７】
2008171163.tif 000019
【図１８】
2008171163.tif 000020