(57)【要約】【課題】ユーザデータの消失を防ぐことができる情報処理装置を実現する。【解決手段】実施形態によれば、情報処理装置は、電源回路と、プロセッサとを具備する。電源回路は、電源消失のイベントに応答して、バックアップパワーソースからの電力を使用して複数のストレージデバイスに電力を供給する。プロセッサは、電源消失のイベントの後に、ユーザデータを不揮発性記憶媒体に保存すべきことを指示する第１の保存指示を複数のストレージデバイスに送信する。プロセッサは、ユーザデータの保存の完了を示す応答が複数のストレージデバイスの全てから受信された場合、更新されたアドレス変換情報を不揮発性記憶媒体に保存すべきことを指示する第２の保存指示を複数のストレージデバイスの全て又は一つ以上のストレージデバイスに送信する。【選択図】図８
2018156131.tif 000002
【特許請求の範囲】
【請求項１】
揮発性メモリと不揮発性記憶媒体とを備え論理アドレスそれぞれと前記不揮発性記憶媒体の物理アドレスそれぞれとの間のマッピングをアドレス変換テーブルを使用して管理するように構成された複数のストレージデバイスに接続可能な情報処理装置であって、
電源消失のイベントに応答して、バックアップパワーソースからの電力を使用して前記情報処理装置のコンポーネントおよび前記複数のストレージデバイスに電力を供給する電源回路と、
プロセッサとを具備し、
前記プロセッサは、
前記電源消失のイベントの後に、前記不揮発性記憶媒体に書き込まれていないユーザデータを前記揮発性メモリから前記不揮発性記憶媒体に保存すべきことを指示する第１の保存指示を前記複数のストレージデバイスに送信し、
前記不揮発性記憶媒体へのユーザデータの保存の完了を示す応答が前記複数のストレージデバイスの全てから受信された場合、前記アドレス変換テーブルの更新内容を示し且つ前記不揮発性記憶媒体に書き込まれていない更新されたアドレス変換情報を前記揮発性メモリから前記不揮発性記憶媒体に保存すべきことを指示する第２の保存指示を、前記複数のストレージデバイスの全て又は前記複数のストレージデバイス内の一つ以上のストレージデバイスに送信するように構成されている情報処理装置。
【請求項２】
前記プロセッサは、
前記ユーザデータの保存の完了を示す応答が前記複数のストレージデバイスの全てから受信された場合、前記複数のストレージデバイスのうち、前記アドレス変換テーブルの再構築に要する時間がより長い一つ以上の第１のストレージデバイスに、前記第２の保存指示を送信し、
前記更新されたアドレス変換情報の保存の完了を示す応答が前記一つ以上の第１のストレージデバイスの全てから受信された場合、残りの各ストレージデバイスに前記第２の保存指示を送信するように構成されている請求項１記載の情報処理装置。
【請求項３】
前記プロセッサは、
前記更新されたアドレス変換情報の保存の完了を示す応答が前記一つ以上の第１のストレージデバイスの全てから受信された場合、前記バックアップパワーソースの残り電力量が閾値以上であるか否かを判定し、
前記残り電力量が前記閾値以上である場合、前記残りの各ストレージデバイスに前記第２の保存指示を送信するように構成されている請求項２記載の情報処理装置。
【請求項４】
前記プロセッサは、前記複数のストレージデバイスそれぞれの記憶容量、または前記複数のストレージデバイスにそれぞれ対応する論理物理アドレス変換用の管理サイズの少なくとも一方に基づいて、前記複数のストレージデバイスから前記一つ以上の第１のストレージデバイスを選択するように構成されている請求項２記載の情報処理装置。
【請求項５】
前記プロセッサは、
前記ユーザデータの保存の完了を示す応答が前記複数のストレージデバイスの全てから受信された場合、前記複数のストレージデバイスから選択される一つ以上の第１のストレージデバイスに、前記第２の保存指示を送信し、
前記更新されたアドレス変換情報の保存の完了を示す応答が前記一つ以上の第１のストレージデバイスの全てから受信された場合、残りの各ストレージデバイスに前記第２の保存指示を送信するように構成されている請求項１記載の情報処理装置。
【請求項６】
前記プロセッサは、前記電源消失のイベントが起こる前の通常稼動期間中に、前記電源消失のイベント後に供給可能な電力量それぞれを前記複数のストレージデバイスに通知するように構成されている請求項１記載の情報処理装置。
【請求項７】
ホスト装置に接続可能で、電源消失が起きた時に前記ホスト装置から供給される電力によって動作するストレージデバイスであって、
揮発性メモリと、
不揮発性記憶媒体と、
論理アドレスそれぞれと前記不揮発性記憶媒体の物理アドレスそれぞれとの間のマッピングをアドレス変換テーブルを使用して管理するコントローラとを具備し、
前記コントローラは、
前記電源消失のイベントの後に前記ホスト装置から送信される第１の保存指示を受信した場合、前記不揮発性記憶媒体に書き込まれていないユーザデータを前記揮発性メモリから前記不揮発性記憶媒体に保存し、
前記ユーザデータの保存完了を前記ホスト装置に通知し、
第２の保存指示を前記ホスト装置から受信した場合、前記アドレス変換テーブルの更新内容を示し且つ前記不揮発性記憶媒体に書き込まれていない更新されたアドレス変換情報を前記揮発性メモリから前記不揮発性記憶媒体に保存するように構成されているストレージデバイス。
【請求項８】
前記第１の保存指示を前記ホスト装置から受信した場合、前記コントローラは、前記ユーザデータと、前記アドレス変換テーブルを再構築するためのアドレス情報とを前記不揮発性記憶媒体に保存するように構成され、前記アドレス変換テーブルを再構築するためのアドレス情報は、前記ユーザデータに対応する論理アドレスを含む請求項７記載のストレージデバイス。
【請求項９】
前記コントローラは、前記電源消失のイベントが起こる前の通常稼動期間中に、前記電源消失のイベント後に供給可能な電力量を示す通知を前記ホスト装置から受信した場合、前記電力量に基づいて、前記揮発性メモリに蓄積可能な未書き込みのユーザデータの量を制限するように構成されている請求項７記載のストレージデバイス。
【請求項１０】
前記コントローラは、前記電源消失のイベントが起こる前の通常稼動期間中に、前記電源消失のイベント後に供給可能な電力量を示す通知を前記ホスト装置から受信した場合、前記電力量に基づいて、前記揮発性メモリに蓄積可能な未書き込みのユーザデータの量、および前記揮発性メモリに蓄積可能な未書き込みの更新されたアドレス変換情報の量を制限するように構成されている請求項７記載のストレージデバイス。
【請求項１１】
前記不揮発性記憶媒体は、複数のページを各々が含む複数のブロックを含む不揮発性メモリであり、
前記第１の保存指示を前記ホスト装置から受信した場合、前記ユーザデータ内に含まれる一つ以上のデータ部と前記アドレス変換テーブルを再構築するためのアドレス情報とを前記不揮発性メモリのブロック内の同一ページに書き込むように構成され、前記アドレス変換テーブルを再構築するためのアドレス情報は、前記一つ以上のデータ部に対応する一つ以上の論理アドレスを含む請求項７記載のストレージデバイス。
【請求項１２】
ホスト装置と前記ホスト装置に接続された複数のストレージデバイスとを含む情報処理システムであって、
前記ホスト装置は、
電源消失のイベントに応答して、バックアップパワーソースからの電力を使用して前記ホスト装置のコンポーネントおよび前記複数のストレージデバイスに電力を供給し、
前記電源消失のイベントの後に、ユーザデータの保存を指示する第１の保存指示を前記複数のストレージデバイスに送信し、
ユーザデータの保存の完了を示す応答が前記複数のストレージデバイスの全てから受信された場合、第２の保存指示を、前記複数のストレージデバイスの全て又は前記複数のストレージデバイス内の一つ以上のストレージデバイスに送信するように構成され、
前記ストレージデバイスの各々は、
揮発性メモリと、
不揮発性記憶媒体と、
論理アドレスそれぞれと前記不揮発性記憶媒体の物理アドレスそれぞれとの間のマッピングをアドレス変換テーブルを使用して管理するコントローラとを具備し、
前記コントローラは、
前記第１の保存指示を前記ホスト装置から受信した場合、前記不揮発性記憶媒体に書き込まれていないユーザデータを前記揮発性メモリから前記不揮発性記憶媒体に保存し、前記ユーザデータの保存完了を前記ホスト装置に通知し、
前記第２の保存指示を前記ホスト装置から受信した場合、前記アドレス変換テーブルの更新内容を示し且つ前記不揮発性記憶媒体に書き込まれていない更新されたアドレス変換情報を前記揮発性メモリから前記不揮発性記憶媒体に保存するように構成されている情報処理システム。
【請求項１３】
前記ホスト装置は、
前記ユーザデータの保存の完了を示す応答が前記複数のストレージデバイスの全てから受信された場合、前記複数のストレージデバイスの内、前記アドレス変換テーブルの再構築に要する時間がより長い一つ以上の第１のストレージデバイスに、前記第２の保存指示を送信し、
前記更新されたアドレス変換情報の保存の完了を示す応答が前記一つ以上の第１のストレージデバイスの全てから受信された場合、残りの各ストレージデバイスに前記第２の保存指示を送信するように構成されている請求項１２記載の情報処理システム。
【請求項１４】
前記ホスト装置は、
前記更新されたアドレス変換情報の保存の完了を示す応答が前記一つ以上の第１のストレージデバイスの全てから受信された場合、前記バックアップパワーソースの残り電力量が閾値以上であるか否かを判定し、
前記残り電力量が前記閾値以上である場合、前記残りの各ストレージデバイスに前記第２の保存指示を送信するように構成されている請求項１３記載の情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、情報処理装置、ストレージデバイスおよび情報処理システムに関する。
【背景技術】
【０００２】
サーバコンピュータのような情報処理装置においては、その入出力性能を改善するために複数のストレージデバイスが搭載される場合がある。これらストレージデバイスとしては、ソリッドステートドライブ（ＳＳＤ）、またはハードディスクドライブ（ＨＤＤ）が使用される。
【０００３】
これらストレージデバイスの多くは、パワーロスプロテクション（ＰＬＰ）機能を有している。ＰＬＰ機能を有するストレージデバイスの多くは、停電のような予期しない電源消失に起因するユーザデータの消失を防止するためにキャパシタを備えている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−２８９０１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、個々のストレージデバイスにキャパシタを搭載するというシステム構成は、システムのコストアップを招く要因となる。
【０００６】
本発明が解決しようとする課題は、ユーザデータの消失を防ぐことができる情報処理装置、ストレージデバイスおよび情報処理システムを提供することである。
【課題を解決するための手段】
【０００７】
実施形態によれば、揮発性メモリと不揮発性記憶媒体とを備え論理アドレスそれぞれと前記不揮発性記憶媒体の物理アドレスそれぞれとの間のマッピングをアドレス変換テーブルを使用して管理するように構成された複数のストレージデバイスに接続可能な情報処理装置は、電源回路と、プロセッサとを具備する。前記電源回路は、電源消失のイベントに応答して、バックアップパワーソースからの電力を使用して前記情報処理装置のコンポーネントおよび前記複数のストレージデバイスに電力を供給する。前記プロセッサは、前記電源消失のイベントの後に、前記不揮発性記憶媒体に書き込まれていないユーザデータを前記揮発性メモリから前記不揮発性記憶媒体に保存すべきことを指示する第１の保存指示を前記複数のストレージデバイスに送信する。前記プロセッサは、前記不揮発性記憶媒体へのユーザデータの保存の完了を示す応答が前記複数のストレージデバイスの全てから受信された場合、前記アドレス変換テーブルの更新内容を示し且つ前記不揮発性記憶媒体に書き込まれていない更新されたアドレス変換情報を前記揮発性メモリから前記不揮発性記憶媒体に保存すべきことを指示する第２の保存指示を、前記複数のストレージデバイスの全て又は前記複数のストレージデバイス内の一つ以上のストレージデバイスに送信する。
【図面の簡単な説明】
【０００８】
【図１】実施形態に係る情報処理システムの構成例を示すブロック図。
【図２】同実施形態の情報処理システム内のホスト計算機のＰＬＰマネージャの構成例を示す図。
【図３】同実施形態の情報処理システム内のＳＳＤの構成例を示すブロック図。
【図４】ホスト計算機とＳＳＤとによって実行されるライト動作の処理シーケンスを示す図。
【図５】不揮発性メモリ内のブロック内の同一ページに書き込まれるユーザデータとＬＢＡとの関係と、ブロック内の特定のページに書き込まれるＬＢＡリストとを示す図。
【図６】同実施形態の情報処理システム内のＳＳＤによって実行される第１の保存動作の処理シーケンスを示す図。
【図７】第１の保存動作によって不揮発性メモリ内のブロック内の同一ページに書き込まれるユーザデータとＬＢＡとの関係と、このブロック内の特定のページに書き込まれるＬＢＡリストとを示す図。
【図８】ホスト計算機と複数のＳＳＤとによって実行される第１の保存動作および第２の保存動作の処理シーケンスを示す図。
【図９】ホスト計算機と複数のＳＳＤとによって実行される第１の保存動作および第２の保存動作の別の処理シーケンスを示す図。
【図１０】ホスト計算機によって実行される、第１の保存指示を送信する処理の手順を示すフローチャート。
【図１１】ホスト計算機によって実行される、第２の保存指示を送信する処理の手順を示すフローチャート。
【図１２】ホスト計算機によって実行される、第２の保存指示を送信する処理の別の手順を示すフローチャート。
【図１３】電源消失のイベントが起こる前の通常稼動期間中にホスト計算機と複数のＳＳＤとによって実行される処理の処理シーケンスを示す図。
【図１４】ＳＳＤ内の揮発性メモリに蓄積可能な、ユーザデータの量および更新されたアドレス変換情報の量を制限する処理シーケンスを示す図。
【図１５】不揮発性メモリに書き込まれていないユーザデータを不揮発性メモリの複数のブロックに保存する動作を示す図。
【図１６】アドレス変換テーブルを再構築する動作を示す図。
【図１７】ＳＳＤによって実行されるアドレス変換テーブル再構築処理の手順を示すフローチャート。
【図１８】ホスト計算機に接続可能なＨＤＤの構成例を示す図。
【図１９】図１８のＨＤＤによって実行される更新データ書き込み動作を示す図。
【図２０】ホスト計算機として機能するコンピュータの構成例を示す図。
【発明を実施するための形態】
【０００９】
以下、図面を参照して、実施形態を説明する。  
まず、図１を参照して、実施形態に係る情報処理装置を含む情報処理システム１の構成を説明する。
【００１０】
この情報処理システム１は、ホスト計算機（ホスト装置）２と、複数のストレージデバイス３−１、３−２、３−３、３−４、３−５とを含む。ホスト計算機２は、複数のストレージデバイス３−１、３−２、３−３、３−４、３−５をアクセスする情報処理装置（コンピューティングデバイス）である。ホスト計算機２は、大量且つ多様なデータを複数のストレージデバイス３−１、３−２、３−３、３−４、３−５に格納するストレージサーバであってもよいし、パーソナルコンピュータであってもよい。
【００１１】
ストレージデバイス３−１、３−２、３−３、３−４、３−５の各々は、ホスト計算機２として機能する情報処理装置に内蔵されてもよいし、この情報処理装置にケーブルを介して接続されてもよい。
【００１２】
ホスト計算機２とストレージデバイス３−１、３−２、３−３、３−４、３−５の各々とを相互接続するためのインタフェースとしては、ＳＣＳＩ、Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩ（ＳＡＳ）、ＡＴＡ、Ｓｅｒｉａｌ  ＡＴＡ（ＳＡＴＡ）、ＰＣＩ  Ｅｘｐｒｅｓｓ（ＰＣＩｅ）、Ｅｔｈｅｒｎｅｔ（登録商標）、Ｆｉｂｒｅ  ｃｈａｎｎｅｌ、ＮＶＭ  Ｅｘｐｒｅｓｓ（ＮＶＭｅ）（登録商標）等を使用し得る。
【００１３】
ストレージデバイス３−１、３−２、３−３、３−４、３−５の各々は、ＤＲＡＭのような揮発性メモリと、不揮発性記憶媒体とを備え、論理アドレスそれぞれと不揮発性記憶媒体の物理アドレスそれぞれとの間のマッピングをアドレス変換テーブルを使用して管理する。揮発性メモリは、ホスト計算機２からの書き込みデータを一時的に格納するライトバッファとして使用される。また、不揮発性記憶媒体内のアドレス変換テーブルを高速にアクセスできるようにするために、アドレス変換テーブルの少なくとも一部分は不揮発性記憶媒体から揮発性メモリにロードされる。ある論理アドレスに対応するデータが不揮発性記憶媒体に書き込まれた場合、このデータが書き込まれた不揮発性記憶媒体の物理記憶位置を示す物理アドレスがこの論理アドレスにマッピングされるように、揮発性メモリに保持されているアドレス変換テーブル（アドレス変換情報）が更新される。更新されたアドレス変換情報は、後に、不揮発性記憶媒体に書き戻される。これによってアドレス変換情報の更新内容が不揮発性記憶媒体内のアドレス変換テーブルに反映される。
【００１４】
このようなストレージデバイスの例は、ＮＡＮＤフラッシュ技術ベースのソリッドステートドライブ（ＳＳＤ）、瓦記録（Ｓｈｉｎｇｌｅｄ  ｍａｇｎｅｔｉｃ  ｒｅｃｏｒｄｉｎｇ：ＳＭＲ）技術を使用したハードディスクドライブ（ＨＤＤ）を含む。以下では、ストレージデバイス３−１、３−２、３−３、３−４、３−５の各々がＳＳＤによって実現されている場合を例示して説明するが、これらストレージデバイスはＳＳＤ、ＳＭＲ技術を使用したＨＤＤのいずれであってもよい。
【００１５】
ＳＳＤ３−１は、コントローラ４および不揮発性メモリ（ＮＡＮＤ型フラッシュメモリ）５を備える。ＳＳＤ３−１は、ランダムアクセスメモリ、例えば、ＤＲＡＭ６も備えていてもよい。ＤＲＡＭ６は上述の揮発性メモリとして機能し、ＮＡＮＤ型フラッシュメモリ５は上述の不揮発性記憶媒体として機能する。ＳＳＤ３−１は、さらに、ホスト計算機２に接続するためのコネクタ８を有する。
【００１６】
ＮＡＮＤ型フラッシュメモリ５は、マトリクス状に配置された複数のメモリセルを含むメモリセルアレイを含む。ＮＡＮＤ型フラッシュメモリ５は、２次元構造のＮＡＮＤ型フラッシュメモリであってもよいし、３次元構造のＮＡＮＤ型フラッシュメモリであってもよい。コントローラ４は、論理アドレスそれぞれとＮＡＮＤ型フラッシュメモリ５の物理アドレスそれぞれとの間のマッピングをアドレス変換テーブルを使用して管理する。このアドレス変換テーブルは、論理物理アドレス変換テーブル（Ｌｏｇｉａｌ−ｔｏ−ｐｈｙｓｉｃａｌ  ａｄｄｒｅｓｓ  ｔｒａｎｓｌａｔｉｏｎ  ｔａｂｌｅ）としても参照される。
【００１７】
ＳＳＤ３−１は、コネクタ８を介してホスト計算機２から供給される電力ＶＣＣによって動作する。ＳＳＤ３−２〜３−５も、ＳＳＤ３−１と同様の構成を有している。本実施形態においては、停電のような予期しない電源消失のイベントが起きた場合、ホスト計算機２からＳＳＤ３−１〜３−５にバックアップ用の電力がある限られた期間だけ供給される。このため、ＳＳＤ３−１〜３−５は、パワーロスプロテクション（ＰＬＰ）のためのキャパシタ等を含む必要は無い。
【００１８】
ホスト計算機２は、プロセッサ（ＣＰＵ）４０、メモリ４１、システムコントローラ４２、電源回路４３、およびバックアップ電源４４等を含む。
【００１９】
プロセッサ４０は、このホスト計算機２の各コンポーネントの動作を制御するように構成されたＣＰＵである。このプロセッサ４０は、複数のＳＳＤ３−１〜３−５のいずれか１つからメモリ４１にロードされる様々なプログラムを実行する。メモリ４１は、ＤＲＡＭのようなランダムアクセスメモリから構成される。プロセッサ４０によって実行されるプログラムは、様々なアプリケーションプログラム（ＡＰＬ）６１、オペレーティングシステム（ＯＳ）６２、ＳＳＤ３−１〜３−５を制御するためのデバイスドライバ６３を含む。
【００２０】
ＯＳ６２は、ＰＬＰマネージャ６４を含んでいてもよい。ＰＬＰマネージャ６４は、停電のような予期しない電源消失のイベントが起きた場合に全てのＳＳＤ３−１〜３−５のユーザデータを安全に保護するための様々な命令を含む。ホスト計算機２から供給可能なバックアップ用の電力量は限られている。したがって、もしＳＳＤ３−１〜３−５の一部のＳＳＤがユーザデータの保存を完了した後に無条件にメタデータ（更新されたアドレス変換情報）の保存を開始すると、これによってより多くの電力が一部のＳＳＤによって消費される。この場合、他のＳＳＤがユーザデータの保存を完了する前に、ホスト計算機２からのバックアップ用の電力が途絶えてしまう可能性がある。この結果、ユーザデータの一部が消失または破壊されてしまう。
【００２１】
ユーザデータの一部の消失または破壊を防止するため、プロセッサ４０は、ＰＬＰマネージャ６４の命令群を実行することによって、以下の処理を実行する。
【００２２】
プロセッサ４０は、電源消失のイベントの後に、第１の保存指示をＳＳＤ３−１〜３−５にそれぞれ送信する。第１の保存指示は、ＳＳＤ３−１〜３−５に対し、ＮＡＮＤ型フラッシュメモリ５に書き込まれていないユーザデータをＤＲＡＭ６からＮＡＮＤ型フラッシュメモリ５に保存すべきことを指示する。各ＳＳＤは、ユーザデータのみをＮＡＮＤ型フラッシュメモリ５に保存し、更新されたアドレス変換情報をＮＡＮＤ型フラッシュメモリ５に保存する動作は実行しない。
【００２３】
ＮＡＮＤ型フラッシュメモリ５へのユーザデータの保存の完了を示す応答がＳＳＤ３−１〜３−５の全てから受信された場合、プロセッサ４０は、第２の保存指示を、ＳＳＤ３−１〜３−５の全て又はＳＳＤ３−１〜３−５内の一つ以上のＳＳＤに送信する。第２の保存指示は、各ＳＳＤに対し、アドレス変換テーブルの更新内容を示し且つＮＡＮＤ型フラッシュメモリ５に書き込まれていない更新されたアドレス変換情報をＤＲＡＭ６からＮＡＮＤ型フラッシュメモリ５に保存すべきことを指示する。第２の保存指示を受信した各ＳＳＤは、更新されたアドレス変換情報をＮＡＮＤ型フラッシュメモリ５に保存する。これによって、ＮＡＮＤ型フラッシュメモリ５を高速にアクセスするためのアドレス変換テーブルを最新の状態に維持することができる。よって、更新されたアドレス変換情報をＮＡＮＤ型フラッシュメモリ５に保存したＳＳＤにおいては、電源が回復された時、このアドレス変換テーブルを再構築する必要はない。よって、更新されたアドレス変換情報をＮＡＮＤ型フラッシュメモリ５に保存したＳＳＤは、ホスト計算機２からの電源の回復後に直ちに通常動作可能状態となり得る。
【００２４】
ＳＳＤ３−１〜３−５内の一つ以上のＳＳＤに第２の保存指示を送信するケースにおいては、プロセッサ４０は、アドレス変換テーブルの再構築により多くの時間を要する一つ以上のＳＳＤにのみ第２の保存指示を送信してもよい。そして、更新されたアドレス変換情報の保存の完了を示す応答がこれら一つ以上のＳＳＤの全てから受信された場合、プロセッサ４０は、残りの各ＳＳＤに第２の保存指示を送信してもよい。これにより、アドレス変換テーブルの再構築により多くの時間を要するＳＳＤが、更新されたアドレス変換情報の保存を完了することを保証することが可能となる。このことは、電源回復後に全てのＳＳＤ３−１〜３−５が通常動作状態に回復されるまでに要する時間を短縮することを可能にする。
【００２５】
あるいは、ＳＳＤ３−１〜３−５内の一つ以上のＳＳＤに第２の保存指示を送信するケースにおいては、プロセッサ４０は、高いアクセス頻度を有するデータを格納している一つ以上のＳＳＤ、またはより重要度が高いユーザデータを格納している一つ以上のＳＳＤを選択し、これら選択された一つ以上のＳＳＤにのみ第２の保存指示を送信してもよい。そして、更新されたアドレス変換情報の保存の完了を示す応答がこれら一つ以上のＳＳＤの全てから受信された場合、プロセッサ４０は、残りの各ＳＳＤに第２の保存指示を送信してもよい。これにより、高いアクセス頻度を有するデータまたはより重要度が高いユーザデータを格納しているＳＳＤを、より迅速に通常動作状態に回復させることができる。
【００２６】
システムコントローラ４２は、様々な周辺デバイスを制御するように構成されたコントローラとして機能する。システムコントローラ４２は、ＳＡＳ  ｅｘｐａｎｄｅｒ、ＰＣＩｅ  Ｓｗｉｔｃｈ、ＰＣＩｅ  ｅｘｐａｎｄｅｒ、フラッシュアレイコントローラ、またはＲＡＩＤコントローラを含んでいてもよい。
【００２７】
電源回路４３は、外部電源５０およびバックアップ電源（バックアップパワーソース）４４に接続されている。電源回路４３は、停電のような予期しない電源消失のイベントに応答してパワーソースを外部電源５０からバックアップ電源（バックアップパワーソース）４４に切り替え、バックアップ電源（バックアップパワーソース）４４からの電力を使用してホスト計算機２内のコンポーネントおよびＳＳＤ３−１〜３−５に電力（バックアップ用電力）を供給する。この電源回路４３は、外部電源５０から供給される電源電圧を監視し、この電源電圧が低下した時に電源消失イベントが起きたことを検出する。電源消失イベントが起きた時、この電源回路４３は、プロセッサ４０への割り込み信号を発生することによって、電源消失イベントが起きたことをプロセッサ４０に通知してもよい。
【００２８】
図２は、ＰＬＰマネージャ６４の構成例を示す。
【００２９】
ＰＬＰマネージャ６４は、電力量通知モジュール６４Ａ、パワーロス検出モジュール６４Ｂ、第１の保存指示送信モジュール６４Ｃ、第１の保存完了通知受信モジュール６４Ｄ、第２の保存指示送信モジュール６４Ｅ、第２の保存完了通知受信モジュール６４Ｆを含む。
【００３０】
電力量通知モジュール６４Ａは、予期しない電源消失のイベントが起こる前の通常稼動期間中に、電源消失のイベント後に供給可能な電力量（バックアップ電力量）をＳＳＤ３−１〜３−５に通知するための命令群を含む。電源消失のイベント後に供給可能な電力量は、例えば、１台のＳＳＤ当たりに供給可能な電力量を示す。この電力量は個々のＳＳＤ毎に異なっていてもよい。例えば、消費電力の大きいＳＳＤに対してはより多くの電力量が配分されてもよい。この電力量は、単位時間当たりの電力［Ｗ］と、電力を供給可能な期間［秒］とによって表されてもよい。
【００３１】
パワーロス検出モジュール６４Ｂは、電源回路４３と通信することによって、予期しない電源消失のイベントを検出するための命令群を含む。
【００３２】
第１の保存指示送信モジュール６４Ｃは、上述の第１の保存指示をＳＳＤ３−１〜３−５に送信するための命令群を含む。第１の保存完了通知受信モジュール６４Ｄは、ユーザデータの保存完了を示す応答をＳＳＤ３−１〜３−５から受信し、ユーザデータの保存完了／未完了を示すステータスをユーザデータ保存管理テーブル７１に登録するための命令群を含む。ユーザデータ保存管理テーブル７１は、複数のストレージデバイス（ここではＳＳＤ）それぞれに対応する複数のエントリを含む。各エントリには、ユーザデータの保存未完了を示す値“０”、またはユーザデータの保存完了を示す値“１”がセットされる。
【００３３】
第２の保存指示送信モジュール６４Ｅは、ユーザデータ保存管理テーブル７１を参照して、ユーザデータの保存完了を示す応答がＳＳＤ３−１〜３−５の全てから受信されたか否かを判定するための命令群と、上述の第２の保存指示をＳＳＤ３−１〜３−５の全てまたはＳＳＤ３−１〜３−５の少なくとも一つに送信するための命令群を含む。第２の保存指示が送信されるべきＳＳＤは、ストレージデバイス管理情報テーブル７２の内容に基づいて決定される。このストレージデバイス管理情報テーブル７２は、複数のストレージデバイス（ここではＳＳＤ）それぞれに対応する複数のエントリを含む。各エントリには、対応するストレージデバイスの記憶容量、アドレス変換管理サイズ、データ種別、ストレージデバイス種別等が登録されている。アドレス変換管理サイズは、論理物理アドレス変換用の管理サイズを示す。例えば、論理物理アドレスそれぞれと物理アドレスそれぞれとの間のマッピングを４Ｋバイト単位で管理するように構成されたストレージデバイスに関しては、４Ｋバイトがアドレス変換管理サイズとなる。データ種別は、対応するストレージデバイスに格納されているユーザデータの重要度を示す。あるいは、データ種別は、アクセス頻度を示す統計値であってもよい。
【００３４】
本実施形態では、アドレス変換テーブルの再構築により多くの時間を要する一つ以上のＳＳＤに対して第２の保存指示を優先的に送信することができる。通常、記憶容量が大きいほど、必要なアドレス変換テーブルのサイズは増加する。また、論理物理アドレス変換用の管理サイズが小さいほど、必要なアドレス変換テーブルのサイズは増加する。したがって、第２の保存指示送信モジュール６４Ｅは、記憶容量またはアドレス変換管理サイズの少なくとも一方に基づいて、ＳＳＤ３−１〜３−５から、アドレス変換テーブルの再構築により多くの時間を要する一つ以上のＳＳＤを選択するための命令群を含んでいてもよい。
【００３５】
また、重要度の高いユーザデータを格納している一つ以上のＳＳＤに対して第２の保存指示を優先的に送信してもよい。この場合、第２の保存指示送信モジュール６４Ｅは、データ種別によって示されるユーザデータの重要度に基づいて、ＳＳＤ３−１〜３−５から、重要度の高いユーザデータを格納している一つ以上のＳＳＤを選択するための命令群を含んでいてもよい。
【００３６】
また、高いアクセス頻度を有するユーザデータを格納している一つ以上のＳＳＤに対して第２の保存指示を優先的に送信してもよい。
【００３７】
第２の保存完了通知受信モジュール６４Ｆは、更新されたアドレス変換情報（メタデータ）の保存完了を示す応答をＳＳＤ３−１〜３−５から受信し、メタデータの保存完了／未完了を示すステータスをメタデータ保存管理テーブル７３に登録するための命令群を含む。メタデータ保存管理テーブル７３は、複数のストレージデバイス（ここではＳＳＤ）それぞれに対応する複数のエントリを含む。各エントリには、メタデータの保存未完了を示す値“０”、またはメタデータの保存完了を示す値“１”がセットされる。
【００３８】
さらに、第２の保存指示送信モジュール６４Ｅは、メタデータ保存管理テーブル７３を参照して、メタデータの保存完了を示す応答が第２の保存指示が優先的に送信された幾つかのＳＳＤの全てから受信されたか否かを判定するための命令群と、メタデータの保存完了を示す応答が第２の保存指示が優先的に送信された幾つかのＳＳＤの全てから受信された場合に、残りのＳＳＤそれぞれに第２の保存指示を送信するための命令群とを含んでいてもよい。
【００３９】
図３は、ＳＳＤ３−１の構成例を示す。
【００４０】
他のＳＳＤも、ＳＳＤ３−１と同様の構成を有している。
【００４１】
ＳＳＤ３−１は、上述したように、コントローラ４、ＮＡＮＤ型フラッシュメモリ５、およびＤＲＡＭ６を含む。
【００４２】
ＮＡＮＤ型フラッシュメモリ５のメモリセルアレイは、複数のブロックＢ０〜Ｂｍ−１を含む。ブロックＢ０〜Ｂｍ−１の各々は多数のページ（ここではページＰ０〜Ｐｎ−１）によって編成される。ブロックＢ０〜Ｂｍ−１は、消去単位として機能する。ブロックは、「消去ブロック」、または「物理ブロック」と称されることもある。ページＰ０〜Ｐｎ−１の各々は、同一ワード線に接続された複数のメモリセルを含む。ページＰ０〜Ｐｎ−１は、データ書き込み動作およびデータ読み込み動作の単位である。
【００４３】
ブロックＢ０〜Ｂｍ−１は限られた消去回数を有している。消去回数は、プログラム／消去サイクル（Ｐｒｏｇｒａｍ／Ｅｒａｓｅ  ｃｙｃｌｅｓ）の数によって表されてもよい。あるブロックの一つのプログラム／消去サイクル（Ｐｒｏｇｒａｍ／Ｅｒａｓｅ  ｃｙｃｌｅｓ）は、このブロック内の全てのメモリセルを消去状態にするための消去動作と、このブロックのページそれぞれにデータを書き込む書き込み動作（プログラム動作）とを含む。
【００４４】
コントローラ４は、Ｔｏｇｇｌｅ、Ｏｐｅｎ  ＮＡＮＤ  Ｆｌａｓｈ  Ｉｎｔｅｒｆａｃｅ（ＯＮＦＩ）のようなＮＡＮＤインタフェース１３を介して、不揮発性メモリであるＮＡＮＤ型フラッシュメモリ５に電気的に接続されている。ＮＡＮＤインタフェース１３は、ＮＡＮＤ型フラッシュメモリ５を制御するように構成されたＮＡＮＤ制御回路として機能する。ＮＡＮＤ型フラッシュメモリ５は、複数のＮＡＮＤ型フラッシュメモリチップを含んでいてもよい。この場合、ＮＡＮＤインタフェース１３は、複数のチャンネルＣｈを介してこれらＮＡＮＤ型フラッシュメモリチップに接続されてもよい。一つのチャンネルには、一つ以上のＮＡＮＤ型フラッシュメモリチップが接続される。
【００４５】
コントローラ４は、ＮＡＮＤ型フラッシュメモリ５のデータ管理およびブロック管理を実行するように構成されたフラッシュトランスレーション層（ＦＴＬ）として機能してもよい。このＦＴＬによって実行されるデータ管理には、（１）論理アドレスそれぞれとＮＡＮＤ型フラッシュメモリ５の物理アドレスそれぞれとの間の対応関係を示すマッピング情報の管理、（２）ページ単位のリード／ライトとブロック単位の消去動作とを隠蔽するための処理、等が含まれる。論理アドレスは、ＳＳＤ３−１をアドレス指定するためにホスト計算機２によって使用されるアドレスである。この論理アドレスとしては、ＬＢＡ（logical block address(addressing)）が使用され得る。
【００４６】
論理アドレスそれぞれと物理アドレスそれぞれとの間のマッピングの管理は、アドレス変換テーブル（論理物理アドレス変換テーブル）として機能するルックアップテーブル（ＬＵＴ）３２を用いて実行される。コントローラ４は、ルックアップテーブル（ＬＵＴ）３２を使用して、論理アドレスそれぞれと物理アドレスそれぞれとの間のマッピングを所定の管理サイズ単位で管理する。ある論理アドレスに対応する物理アドレスは、この論理アドレスのデータがライトされたＮＡＮＤ型フラッシュメモリ５内の最新の物理記憶位置を示す。アドレス変換テーブル（ＬＵＴ３２）は、ＳＳＤ３の電源オン時にＮＡＮＤ型フラッシュメモリ５からＤＲＡＭ６にロードされてもよい。
【００４７】
ページへのデータ書き込みは、１消去サイクル当たり１回のみ可能である。このため、コントローラ４は、ある論理アドレスに対応する更新データを、この論理アドレスに対応する以前のデータが格納されている物理記憶位置ではなく、別の物理記憶位置に書き込む。そして、コントローラ４は、ルックアップテーブル（ＬＵＴ）３２を更新してこの論理アドレスをこの別の物理記憶位置に関連付けると共に、以前のデータを無効化する。
【００４８】
ブロック管理には、バッドブロックの管理と、ウェアレベリングと、ガベージコレクション等が含まれる。ウェアレベリングは、ブロックそれぞれの消耗を均一化するための動作である。ガベージコレクションは、データを書き込むことが可能なフリーブロックの個数を増やすため、有効データと無効データとが混在する幾つかの対象ブロック内の有効データを別のブロック（例えばフリーブロック）に移動する。ここで、有効データとは、ＬＵＴ３２から参照されているデータ(すなわち論理アドレスから最新のデータとして紐付けられているデータ)であって、後にホスト計算機２からリードされる可能性があるデータを意味する。無効データとは、もはやホスト計算機２からリードされる可能性が無いデータを意味する。例えば、ある論理アドレスに関連付けられているデータは有効データであり、どの論理アドレスにも関連付けられていないデータは無効データである。
【００４９】
そして、コントローラ４は、ルックアップテーブル（ＬＵＴ）３２を更新して、移動された有効データの論理アドレスそれぞれを移動先の物理アドレスにマッピングする。有効データが別のブロックに移動されることによって無効データのみになったブロックはフリーブロックとして解放される。これによって、このブロックはその消去後に再利用することが可能となる。
【００５０】
コントローラ４は、ホストインタフェース１１、ＣＰＵ１２、ＮＡＮＤインタフェース１３、ＤＲＡＭインタフェース１４等を含んでいてもよい。これらＣＰＵ１２、ＮＡＮＤインタフェース１３、ＤＲＡＭインタフェース１４は、バス１０を介して相互接続されていてもよい。
【００５１】
ホストインタフェース１１は、ホスト計算機２から様々なコマンド（例えば、ライトコマンド、リードコマンド、アンマップ（ＵＮＭＡＰ）／トリム（Ｔｒｉｍ）コマンド、第１の保存指示のためのコマンド、第２の保存指示のためのコマンド等）を受信する。ライトコマンドは、ライトデータの論理アドレス（開始ＬＢＡ）と、転送長とを含む。リードコマンドは、読み出すべきデータの最初の論理ブロックを示す論理アドレス（開始ＬＢＡ）と、データ長とを含む。
【００５２】
ＣＰＵ１２は、ホストインタフェース１１、ＮＡＮＤインタフェース１３、およびＤＲＡＭインタフェース１４を制御するように構成されたプロセッサである。ＣＰＵ１２は、ＳＳＤ３の電源オンに応答して、ＮＡＮＤ型フラッシュメモリ５に格納されている制御プログラム（ファームウェア）をＤＲＡＭ６上にロードし、このファームウェアを実行することによって様々な処理を行う。このＣＰＵ１２は、例えば、上述のＦＴＬの処理に加え、ホスト計算機２からの様々なコマンドを処理するためのコマンド処理等を実行することができる。ＣＰＵ１２の動作は、ＣＰＵ１２によって実行される上述のファームウェアによって制御される。なお、ＦＴＬ処理およびコマンド処理の一部または全部は、コントローラ４内の専用ハードウェアによって実行してもよい。
【００５３】
ＣＰＵ１２は、バックアップ電力量判定部２１、第１の保存部２２、第１の保存完了通知部２３、第２の保存部２４、第２の保存完了通知部２５、およびアドレス変換テーブル再構築部２６として機能することができる。
【００５４】
電源消失のイベント後に供給可能な電力量を示す通知を通常稼動期間中にホスト計算機２から受信した場合、バックアップ電力量判定部２１は、この通知された電力量に基づいて、ＤＲＡＭ６内のライトバッファ（ＷＢ）３１に蓄積可能な未書き込みのユーザデータの量、およびＤＲＡＭ６に蓄積可能な未書き込みの更新されたアドレス変換情報の量（つまり、ルックアップテーブル（ＬＵＴ）３２内に保持可能なダーティーデータの量）を制限する。ダーティーデータは、論理アドレスそれぞれに対応する更新された物理アドレスの集合である。また、バックアップ電力量判定部２１は、この通知された電力量でユーザデータの保存が可能か否か、つまりこの通知された電力量がユーザデータの保存のために必要な十分な電力量であるか否かを判定する。バックアップ電力量判定部２１は、この判定結果を示すメッセージをホスト計算機２に返す。もし通知された電力量がユーザデータの保存に必要な電力量に満たないならば、バックアップ電力量判定部２１は、ユーザデータを保存できない旨をホスト計算機２に返す。ホスト計算機２のＰＬＰマネージャ６４は、ＳＳＤ３−１〜３−５からのメッセージに基づき、ＳＳＤ３−１〜３−５の全てが少なくともユーザデータを保存できるようにＳＳＤ３−１〜３−５への電力量の配分を調整してもよい。
【００５５】
第１の保存部２２は、上述の第１の保存指示をホスト計算機２から受信した場合、ＮＡＮＤ型フラッシュメモリ５に書き込まれていないライトバッファ（ＷＢ）３１内のユーザデータをＮＡＮＤ型フラッシュメモリ５に保存し、これによって未完了の書き込みを完了させる。なお、第１の保存部２２は、ユーザデータと、アドレス変換テーブルを再構築するためのアドレス情報との双方をＮＡＮＤ型フラッシュメモリ５に保存してもよい。このアドレス情報は、アドレス変換テーブルの再構築を可能にするために、このユーザデータに対応する論理アドレスを含む。第１の保存部２２は、ライトバッファ（ＷＢ）３１から１ページ分の容量に対応する一つ以上のユーザデータ部をリードし、これら一つ以上のユーザデータ部と、これら一つ以上のユーザデータ部に対応するアドレス情報（これら一つ以上のユーザデータ部に対応する一つ以上の論理アドレス）とを同一ページに書き込んでもよい。各ページは、ユーザデータ領域と冗長領域とを含んでいてもよい。この場合、１ページ分の容量に対応する一つ以上のユーザデータ部はページ内のユーザデータ領域に書き込まれ、一つ以上の論理アドレスは、このページ内の冗長領域に書き込まれる。
【００５６】
ＮＡＮＤ型フラッシュメモリ５に書き込まれていないライトバッファ（ＷＢ）３１内の全てのユーザデータの保存が完了した場合、第１の保存完了通知部２３は、ユーザデータの保存完了をホスト計算機２に通知する。
【００５７】
第２の保存部２４は、上述の第２の保存指示をホスト計算機２から受信した場合、ＮＡＮＤ型フラッシュメモリ５に書き込まれていない更新されたアドレス変換情報（ルックアップテーブル（ＬＵＴ）３２内のダーティーデータ）をＮＡＮＤ型フラッシュメモリ５に保存し、これによって、更新されたアドレス変換情報をＮＡＮＤ型フラッシュメモリ５内のアドレス変換テーブルに反映させる。ＮＡＮＤ型フラッシュメモリ５に書き込まれていない更新されたアドレス変換情報の全ての保存が完了した場合、第２の保存完了通知部２５は、更新されたアドレス変換情報の保存完了をホスト計算機２に通知する。
【００５８】
ホスト計算機２からの電力が電源消失から回復された場合、アドレス変換テーブル再構築部２６は、各ページに書き込まれているアドレス情報を使用して、アドレス変換テーブルを再構築する。なお、更新されたアドレス変換情報の全てをＮＡＮＤ型フラッシュメモリ５内のアドレス変換テーブルに反映することができたならば、アドレス変換テーブルの再構築は不要となる。
【００５９】
図４は、ホスト計算機２とＳＳＤ３−１とによって実行されるライト動作の処理シーケンスを示す。
【００６０】
ＳＳＤ３−１がホスト計算機２からライトコマンドを受信し、さらにホスト計算機２からライトデータを受信すると、ＳＳＤ３−１は、受信したライトデータをライトバッファ（ＷＢ）３１に一時的に格納する（ステップＳ１０１）。ライトデータがライトバッファ３１に格納されると、ＳＳＤ３−１は、コマンド完了のレスポンスをホスト計算機２へ返す。
【００６１】
続いて、ＳＳＤ３−１は、ライトバッファ３１内のライトデータをＮＡＮＤ型フラッシュメモリ５内のブロックにページ単位で書き込む（ステップＳ１０２）。この場合、ＳＳＤ３−１は、ライトデータに対応する論理アドレス（ＬＢＡ）それぞれをページ内の冗長領域にアドレス変換テーブル再構築用のアドレス情報として書き込む。つまり、ＳＳＤ３−１は、１ページ分のライトデータとこの１ページ分のライトデータに対応するＬＢＡそれぞれとを同一ページに書き込む。
【００６２】
ライトデータが書き込まれると、ＳＳＤ３−１は、アドレス変換テーブル（ＬＵＴ）３２を更新して、ライトデータに対応するＬＢＡそれぞれにライトデータが書き込まれた物理記憶位置を示す物理アドレスをマッピングする（ステップＳ１０３）。
【００６３】
その後、ＳＳＤ３−１は、ステップＳ１０２でライトデータが書き込まれたページの次の書き込み先ページがブロック内の最終ページであるか否かを判定する（ステップＳ１０４）。ライトデータが書き込まれたページの次の書き込み先ページがブロック内の最後のページであるならば（ステップＳ１０４のＹＥＳ）、ＳＳＤ３−１は、ＬＢＡリストをブロックの最終ページに書き込んでもよい（ステップＳ１０５）。このＬＢＡリストは、アドレス変換テーブルを高速に再構築できるようにするための追加のアドレス情報である。あるブロックの最終ページに書き込まれたＬＢＡリストは、このブロック内にページそれぞれに書き込まれたユーザデータそれぞれに対応するＬＢＡの集合である。
【００６４】
図５は、ＮＡＮＤ型フラッシュメモリ５内のブロック内の同一ページに書き込まれるユーザデータとＬＢＡとの関係と、ブロック内の特定のページに書き込まれるＬＢＡリストとを示す。
【００６５】
図５では、図示の簡単化のために、ブロックＢＬＫが８つのページ（ページ０〜７）を含む場合が想定されている。また、各ページのユーザデータ領域のサイズが１６Ｋバイト、論理物理アドレス変換用の管理サイズが４Ｋバイトである場合が想定されている。
【００６６】
ページ０において、ユーザデータ領域にはデータｄ１、データｄ２、データｄ３、およびデータｄ４が書き込まれ、冗長領域にはＬＢＡ１〜４が書き込まれる。ＬＢＡ１〜４は、データｄ１〜ｄ４に対応する論理アドレス（論理ブロックアドレス）である。
【００６７】
ページ１において、ユーザデータ領域にはデータｄ５、データｄ６、データｄ７、およびデータｄ８が書き込まれ、冗長領域にはＬＢＡ５〜８が書き込まれる。ＬＢＡ５〜８は、データｄ５〜ｄ８に対応する論理アドレス（論理ブロックアドレス）である。
【００６８】
ページ２において、ユーザデータ領域にはデータｄ９、データｄ１０、データｄ１１、およびデータｄ１２が書き込まれ、冗長領域にはＬＢＡ９〜１２が書き込まれる。ＬＢＡ９〜１２は、データｄ９〜ｄ１２に対応する論理アドレス（論理ブロックアドレス）である。
【００６９】
ページ３において、ユーザデータ領域にはデータｄ１３、データｄ１４、データｄ１５、およびデータｄ１６が書き込まれ、冗長領域にはＬＢＡ１３〜１６が書き込まれる。ＬＢＡ１３〜１６は、データｄ１３〜ｄ１６に対応する論理アドレス（論理ブロックアドレス）である。
【００７０】
ページ４において、ユーザデータ領域にはデータｄ１７、データｄ１８、データｄ１９、およびデータｄ２０が書き込まれ、冗長領域にはＬＢＡ１７〜２０が書き込まれる。ＬＢＡ１７〜２０は、データｄ１７〜ｄ２０に対応する論理アドレス（論理ブロックアドレス）である。
【００７１】
ページ５において、ユーザデータ領域にはデータｄ２１、データｄ２２、データｄ２３、およびデータｄ２４が書き込まれ、冗長領域にはＬＢＡ２１〜２４が書き込まれる。ＬＢＡ２１〜２４は、データｄ２１〜ｄ２４に対応する論理アドレス（論理ブロックアドレス）である。
【００７２】
ページ６において、ユーザデータ領域にはデータｄ２５、データｄ２６、データｄ２７、およびデータｄ２８が書き込まれ、冗長領域にはＬＢＡ２５〜２８が書き込まれる。ＬＢＡ２５〜２８は、データｄ２５〜ｄ２８に対応する論理アドレス（論理ブロックアドレス）である。
【００７３】
ブロックの最終ページ、つまり、図５のページ７には、ＬＢＡリストが書き込まれてもよい。ＬＢＡリストは、データｄ１〜ｄ２８に対応するＬＢＡ１〜２８を含む。このＬＢＡリストの書き込み先ページは、必ずしもブロックの最終ページでなくてもよい。
【００７４】
図６は、ＳＳＤ３−１によって実行される第１の保存動作の処理シーケンスを示す。
【００７５】
ＳＳＤ３−１がホスト計算機２から第１の保存指示を受信した場合、ＳＳＤ３−１は、ＮＡＮＤ型フラッシュメモリ５に書き込まれていないライトバッファ３１内のライトデータをＮＡＮＤ型フラッシュメモリ５内の書き込み先ブロックにページ単位で書き込む（ステップＳ２０１）。この場合、ＳＳＤ３−１は、ライトデータに対応する論理アドレス（ＬＢＡ）それぞれをページ内の冗長領域にアドレス変換テーブル再構築用のアドレス情報として書き込む。つまり、ＳＳＤ３−１は、１ページ分のライトデータとこの１ページ分のライトデータに対応するＬＢＡそれぞれとを同一ページに書き込む。
【００７６】
ライトデータが書き込み先ブロックに書き込まれると、ＳＳＤ３−１は、アドレス変換テーブル（ＬＵＴ）３２を更新して、ライトデータに対応するＬＢＡそれぞれにライトデータが書き込まれた物理記憶位置を示す物理アドレスをマッピングする（ステップＳ２０２）。
【００７７】
次に、ＳＳＤ３−１は、ライトバッファ３１からＮＡＮＤ型フラッシュメモリ５への全ての未書き込みライトデータの保存が完了したか否かを判定する（ステップＳ２０３）。ライトバッファ３１からＮＡＮＤ型フラッシュメモリ５への全ての未書き込みライトデータの保存が完了するまで、ステップＳ２０１〜Ｓ２０２の処理が繰り返される。
【００７８】
全ての未書き込みライトデータの保存が完了したならば（ステップＳ２０４）、ＳＳＤ３−１は、現在の書き込み先ブロックをデータで満たすためのパディング処理が必要か否かを判定する（ステップＳ２０４）。現在の書き込み先ブロックにデータが書き込まれていない空き領域が存在する場合には、パディング処理が必要と判定される。
【００７９】
パディング処理が必要と判定されたならば（ステップＳ２０４のＹＥＳ）、ＳＳＤ３−１は、現在の書き込み先ブロックの空き領域にダミーデータを書き込む（ステップＳ２０５）。そして、ＳＳＤ３−１は、ＬＢＡリストを現在の書き込み先ブロックの最終ページに書き込む（ステップＳ２０６）。
【００８０】
ＬＢＡリストの書き込みが完了すると、ＳＳＤ３−１は、ユーザデータの保存完了を示す第１の保存完了通知をホスト計算機２に送信する。
【００８１】
図７は、第１の保存動作によってＮＡＮＤ型フラッシュメモリ５内のブロックＢＬＫ内の同一ページに書き込まれるユーザデータとＬＢＡとの関係と、このブロック内の特定のページに書き込まれるＬＢＡリストとを示す。
【００８２】
図７においては、ＮＡＮＤ型フラッシュメモリ５に書き込まれていないライトバッファ３１内のライトデータがデータｄ１〜ｄ１４である場合が想定されている。また、図５で説明したケースと同様に、ブロックＢＬＫが８つのページ（ページ０〜７）を含み、各ページのユーザデータ領域のサイズが１６Ｋバイト、論理物理アドレス変換用の管理サイズが４Ｋバイトである場合が想定されている。
【００８３】
ページ０において、ユーザデータ領域にはデータｄ１、データｄ２、データｄ３、およびデータｄ４が書き込まれ、冗長領域にはデータｄ１〜ｄ４に対応するＬＢＡ１〜４が書き込まれる。
【００８４】
ページ１において、ユーザデータ領域にはデータｄ５、データｄ６、データｄ７、およびデータｄ８が書き込まれ、冗長領域にはデータｄ５〜ｄ８に対応するＬＢＡ５〜８が書き込まれる。
【００８５】
ページ２において、ユーザデータ領域にはデータｄ９、データｄ１０、データｄ１１、およびデータｄ１２が書き込まれ、冗長領域にはデータｄ９〜ｄ１２に対応するＬＢＡ９〜１２が書き込まれる。
【００８６】
ページ３において、ユーザデータ領域にはデータｄ１３、データｄ１４が書き込まれ、冗長領域にはデータｄ１３〜ｄ１４に対応するＬＢＡ１３〜１４が書き込まれる。ページ３のユーザデータ領域内の残りの領域には、ダミーデータが書き込まれる（パディング処理）。ダミーデータに対応するＬＢＡは、ページ３の冗長領域に書き込まれない。
【００８７】
ページ４〜６については、ライトバッファ３１に書き込むべきデータが存在しないため、ユーザデータ領域および冗長領域にはダミーデータが書き込まれる（パディング処理）。これにより、ブロックＢＬＫのページ０〜６をデータで満たすことができる。もしダミーデータを書き込まなかったならば、書き込み先ブロックＢＬＫ内の消去状態の空き領域に対するデータの書き込みが長い間発生しなくなる可能性がある。このような場合、消去状態の空き領域の信頼性が低下する可能性がある。
【００８８】
ページ７（ブロックの最終ページ）には、ＬＢＡリストが書き込まれてもよい。
【００８９】
図８は、ホスト計算機２とＳＳＤ３−１〜３−４とによって実行される第１の保存動作および第２の保存動作を示す。
【００９０】
ホスト計算機２のプロセッサ４０は、停電のような予期しない電源消失のイベントが起きたか否かを判定する（ステップＳ３０１）。予期しない電源消失のイベントが起きたならば（ステップＳ３０１のＹＥＳ）、プロセッサ４０は、ＳＳＤ３−１〜３−４に第１の保存指示を送信する。
【００９１】
ＳＳＤ３−１のコントローラ４は、第１の保存指示を受信すると、ＮＡＮＤ型フラッシュメモリ５に書き込まれていないライトバッファ（ＷＢ）３１内のユーザデータをＮＡＮＤ型フラッシュメモリ５に保存する（ステップＳ３０２）。そして、ユーザデータの保存が完了すると、ＳＳＤ３−１のコントローラ４は、ユーザデータの保存完了を示す第１の保存完了通知をホスト計算機２に送信する。
【００９２】
ＳＳＤ３−２も同様に、第１の保存指示を受信すると、ＳＳＤ３−２内のＮＡＮＤ型フラッシュメモリ５に書き込まれていないユーザデータをＮＡＮＤ型フラッシュメモリ５に保存する（ステップＳ３０３）。そして、ユーザデータの保存が完了すると、ＳＳＤ３−２は、ユーザデータの保存完了を示す第１の保存完了通知をホスト計算機２に送信する。
【００９３】
ＳＳＤ３−３も同様に、第１の保存指示を受信すると、ＳＳＤ３−３内のＮＡＮＤ型フラッシュメモリ５に書き込まれていないユーザデータをＮＡＮＤ型フラッシュメモリ５に保存する（ステップＳ３０４）。そして、ユーザデータの保存が完了すると、ＳＳＤ３−３は、ユーザデータの保存完了を示す第１の保存完了通知をホスト計算機２に送信する。
【００９４】
ＳＳＤ３−４も同様に、第１の保存指示を受信すると、ＳＳＤ３−４内のＮＡＮＤ型フラッシュメモリ５に書き込まれていないユーザデータをＮＡＮＤ型フラッシュメモリ５に保存する（ステップＳ３０５）。そして、ユーザデータの保存が完了すると、ＳＳＤ３−４は、ユーザデータの保存完了を示す第１の保存完了通知をホスト計算機２に送信する。
【００９５】
ホスト計算機２のプロセッサ４０は、第１の保存指示を送信した全ストレージデバイス（ここでは、ＳＳＤ３−１〜３−４）から第１の保存完了通知を受信したか否かを判定する（ステップＳ３０６）。第１の保存指示を送信した全ストレージデバイスから第１の保存完了通知を受信したならば（ステップＳ３０６のＹＥＳ）、プロセッサ４０は第２の保存指示をＳＳＤ３−１〜３−４の全てまたはＳＳＤ３−１〜３−４内の少なくとも一つのＳＳＤに送信する。図８では、第２の保存指示がＳＳＤ３−１〜３−４の全てに送信される場合が例示されている。
【００９６】
ＳＳＤ３−１のコントローラ４は、第２の保存指示を受信すると、ＮＡＮＤ型フラッシュメモリ５に書き込まれていない更新されたアドレス変換情報をＮＡＮＤ型フラッシュメモリ５に保存する（ステップＳ３０７）。そして、更新されたアドレス変換情報の保存が完了すると、ＳＳＤ３−１のコントローラ４は、更新されたアドレス変換情報の保存完了を示す第２の保存完了通知をホスト計算機２に送信する。
【００９７】
ＳＳＤ３−２も同様に、第２の保存指示を受信すると、ＳＳＤ３−２内のＮＡＮＤ型フラッシュメモリ５に書き込まれていない更新されたアドレス変換情報をＮＡＮＤ型フラッシュメモリ５に保存する（ステップＳ３０８）。そして、更新されたアドレス変換情報の保存が完了すると、ＳＳＤ３−２は、更新されたアドレス変換情報の保存完了を示す第２の保存完了通知をホスト計算機２に送信する。
【００９８】
ＳＳＤ３−３も同様に、第２の保存指示を受信すると、ＳＳＤ３−３内のＮＡＮＤ型フラッシュメモリ５に書き込まれていない更新されたアドレス変換情報をＮＡＮＤ型フラッシュメモリ５に保存する（ステップＳ３０９）。そして、更新されたアドレス変換情報の保存が完了すると、ＳＳＤ３−３は、更新されたアドレス変換情報の保存完了を示す第２の保存完了通知をホスト計算機２に送信する。
【００９９】
ＳＳＤ３−４も同様に、第２の保存指示を受信すると、ＳＳＤ３−４内のＮＡＮＤ型フラッシュメモリ５に書き込まれていない更新されたアドレス変換情報をＮＡＮＤ型フラッシュメモリ５に保存する（ステップＳ３１０）。そして、アドレス変換情報の保存が完了すると、ＳＳＤ３−４は、更新されたアドレス変換情報の保存完了を示す第２の保存完了通知をホスト計算機２に送信する。
【０１００】
図９は、ホスト計算機２とＳＳＤ３−１〜３−４とによって実行される第１の保存動作および第２の保存動作の別の処理シーケンスを示す。
【０１０１】
ホスト計算機２のプロセッサ４０は、停電のような予期しない電源消失のイベントが起きたか否かを判定する（ステップＳ３１１）。予期しない電源消失のイベントが起きたならば（ステップＳ３１１のＹＥＳ）、プロセッサ４０は、ＳＳＤ３−１〜３−４に第１の保存指示を送信する。
【０１０２】
ＳＳＤ３−１のコントローラ４は、第１の保存指示を受信すると、ＮＡＮＤ型フラッシュメモリ５に書き込まれていないライトバッファ（ＷＢ）３１内のユーザデータをＮＡＮＤ型フラッシュメモリ５に保存する（ステップＳ３１２）。そして、ユーザデータの保存が完了すると、ＳＳＤ３−１のコントローラ４は、ユーザデータの保存完了を示す第１の保存完了通知をホスト計算機２に送信する。
【０１０３】
ＳＳＤ３−２も同様に、第１の保存指示を受信すると、ＳＳＤ３−２内のＮＡＮＤ型フラッシュメモリ５に書き込まれていないユーザデータをＮＡＮＤ型フラッシュメモリ５に保存する（ステップＳ３１３）。そして、ユーザデータの保存が完了すると、ＳＳＤ３−２は、ユーザデータの保存完了を示す第１の保存完了通知をホスト計算機２に送信する。
【０１０４】
ＳＳＤ３−３も同様に、第１の保存指示を受信すると、ＳＳＤ３−３内のＮＡＮＤ型フラッシュメモリ５に書き込まれていないユーザデータをＮＡＮＤ型フラッシュメモリ５に保存する（ステップＳ３１４）。そして、ユーザデータの保存が完了すると、ＳＳＤ３−３は、ユーザデータの保存完了を示す第１の保存完了通知をホスト計算機２に送信する。
【０１０５】
ＳＳＤ３−４も同様に、第１の保存指示を受信すると、ＳＳＤ３−４内のＮＡＮＤ型フラッシュメモリ５に書き込まれていないユーザデータをＮＡＮＤ型フラッシュメモリ５に保存する（ステップＳ３１５）。そして、ユーザデータの保存が完了すると、ＳＳＤ３−４は、ユーザデータの保存完了を示す第１の保存完了通知をホスト計算機２に送信する。
【０１０６】
ホスト計算機２のプロセッサ４０は、第１の保存指示を送信した全ストレージデバイス（ここでは、ＳＳＤ３−１〜３−４）から第１の保存完了通知を受信したか否かを判定する（ステップＳ３１６）。第１の保存指示を送信した全ストレージデバイスから第１の保存完了通知を受信したならば（ステップＳ３１６のＹＥＳ）、プロセッサ４０は第２の保存指示をＳＳＤ３−１〜３−４の全てまたはＳＳＤ３−１〜３−４内の少なくとも一つのＳＳＤに送信する。図９では、第１のグループに属する一つ以上のＳＳＤ（ここでは、ＳＳＤ３−１、ＳＳＤ３−２）にのみ第２の保存指示が送信される場合が例示されている。第１のグループに属するＳＳＤは、例えば、アドレス変換テーブルの再構築に要する時間が他のＳＳＤよりも長いＳＳＤである。第１のグループに属する幾つかのＳＳＤに優先的に第２の保存指示を送信することにより、電源回復後に全てのＳＳＤが通常動作状態に回復されるまでに要する時間を短縮することができる。
【０１０７】
ホスト計算機２のプロセッサ４０は、ＳＳＤ３−１、ＳＳＤ３−２にのみ第２の保存指示を送信する。
【０１０８】
ＳＳＤ３−１のコントローラ４は、第２の保存指示を受信すると、ＮＡＮＤ型フラッシュメモリ５に書き込まれていない更新されたアドレス変換情報をＮＡＮＤ型フラッシュメモリ５に保存する（ステップＳ３１７）。そして、更新されたアドレス変換情報の保存が完了すると、ＳＳＤ３−１のコントローラ４は、更新されたアドレス変換情報の保存完了を示す第２の保存完了通知をホスト計算機２に送信する。
【０１０９】
ＳＳＤ３−２も同様に、第２の保存指示を受信すると、ＳＳＤ３−２内のＮＡＮＤ型フラッシュメモリ５に書き込まれていない更新されたアドレス変換情報をＮＡＮＤ型フラッシュメモリ５に保存する（ステップＳ３１８）。そして、更新されたアドレス変換情報の保存が完了すると、ＳＳＤ３−２は、更新されたアドレス変換情報の保存完了を示す第２の保存完了通知をホスト計算機２に送信する。
【０１１０】
ホスト計算機２のプロセッサ４０は、第１のグループ内の全ストレージデバイス（ここでは、ＳＳＤ３−１およびＳＳＤ３−２）から第２の保存完了通知が受信されたか否かを判定する（ステップＳ３１９）。第１のグループ内の全ストレージデバイス（ここでは、ＳＳＤ３−１およびＳＳＤ３−２）から第２の保存完了通知が受信されたならば（ステップＳ３１９のＹＥＳ）、プロセッサ４０は、第２の保存指示を、残りのストレージデバイス（ここでは、ＳＳＤ３−３、ＳＳＤ３−４）に送信する。
【０１１１】
ＳＳＤ３−３は、第２の保存指示を受信すると、ＳＳＤ３−３内のＮＡＮＤ型フラッシュメモリ５に書き込まれていない更新されたアドレス変換情報をＮＡＮＤ型フラッシュメモリ５に保存する（ステップＳ３２０）。そして、更新されたアドレス変換情報の保存が完了すると、ＳＳＤ３−３は、更新されたアドレス変換情報の保存完了を示す第２の保存完了通知をホスト計算機２に送信する。
【０１１２】
ＳＳＤ３−４も同様に、第２の保存指示を受信すると、ＳＳＤ３−４内のＮＡＮＤ型フラッシュメモリ５に書き込まれていない更新されたアドレス変換情報をＮＡＮＤ型フラッシュメモリ５に保存する（ステップＳ３２１）。そして、アドレス変換情報の保存が完了すると、ＳＳＤ３−４は、更新されたアドレス変換情報の保存完了を示す第２の保存完了通知をホスト計算機２に送信する。
【０１１３】
図１０のフローチャートは、ホスト計算機２によって実行される第１の保存指示を送信する処理の手順を示す。
【０１１４】
ホスト計算機２のプロセッサ４０が電源消失のイベントを検出すると（ステップＳ４０１）、プロセッサ４０は、現在の指示モードが第１のモードまたは第２のモードのいずれであるかを判定する（ステップＳ４０２）。
【０１１５】
第１のモードとは、電源消失のイベントの検出後直ちに全てのストレージデバイスに第１の保存指示を送信するモードである。第２のモードとは、バックアップ電源４４の残り電力量が閾値以下に低下した場合に、全てのストレージデバイスに第１の保存指示を送信するモードである。バックアップ電源４４の残り電力量が閾値以下に低下する前に外部電源５０が復帰した場合には、第１の保存指示はどのストレージデバイスにも送信されない。これにより、瞬時的な電源消失が発生した場合には、第１の保存指示はどのストレージデバイスにも送信されないので、各ストレージデバイスは通常動作を継続することができる。
【０１１６】
現在の指示モードが第１のモードであったならば（ステップＳ４０２のＹＥＳ）、プロセッサ４０は、全ストレージデバイスに第１の保存指示を送信する（ステップＳ４０３）。
【０１１７】
他方、現在の指示モードが第１のモードではなかったならば、つまり第２のモードであったならば（ステップＳ４０２のＮＯ）、プロセッサ４０は、バックアップ電源４４の残りの電力量が閾値Ｘ１以下する前に外部電源５０が復帰したか否かを判定する（ステップＳ４０４、Ｓ４０５）。バックアップ電源４４の残りの電力量が閾値Ｘ１以下する前に外部電源５０が復帰したならば（ステップＳ４０５のＹＥＳ）、プロセッサ４０は、処理を終了する。一方、バックアップ電源４４の残りの電力量が閾値Ｘ１以下する前に外部電源５０が復帰せず（ステップＳ４０５のＮＯ）、バックアップ電源４４の残りの電力量が閾値Ｘ１以下に低下したならば（ステップＳ４０４のＹＥＳ）、プロセッサ４０は、全ストレージデバイスに第１の保存指示を送信する（ステップＳ４０６）。
【０１１８】
図１１のフローチャートは、ホスト計算機２によって実行される第２の保存指示を送信する処理の手順を示す。
【０１１９】
ホスト計算機２のプロセッサ４０が全ストレージデバイスから第１の保存完了通知を受信したならば（ステップＳ５０１のＹＥＳ）、プロセッサ４０は、アドレス変換テーブル（ＬＵＴ）３２の再構築に要する時間に基づいて、第１のグループに属するストレージデバイスを特定する（ステップＳ５０２）。ステップＳ５０２では、プロセッサ４０は、ストレージデバイス（ここでは、ＳＳＤ３−１〜３−５）に対応する記憶容量およびアドレス変換管理サイズに基づいて、アドレス変換テーブル（ＬＵＴ）３２の再構築に要する時間がより長い一つ以上のストレージデバイス（一つ以上のＳＳＤ）を第１のグループに属するストレージデバイスとして決定する。
【０１２０】
そして、プロセッサ４０は、第１のグループに属するストレージデバイスそれぞれに第２の保存指示を送信する（ステップＳ５０３）。
【０１２１】
次に、プロセッサ４０は、第１のグループに属する全てのストレージデバイスから第２の保存完了通知を受信したか否かを判定する（ステップＳ５０４）。
【０１２２】
第１のグループに属する全てのストレージデバイスから第２の保存完了通知を受信したならば（ステップＳ５０４のＹＥＳ）、プロセッサ４０は、バックアップ電源４４の残り電力量（例えば、残り容量）が閾値Ｘ２（＜Ｘ１）以上であるか否かを判定する（ステップＳ５０５）。
【０１２３】
バックアップ電源４４の残り電力量が閾値Ｘ２未満であるならば（ステップＳ５０５のＮＯ）、プロセッサ４０は、残りの全てのストレージデバイス（第１のグループに属するストレージデバイス以外のストレージデバイス）に第２の保存指示を送信することなくホスト計算機２をシャットダウンするための処理を実行する（ステップＳ５０８）。これにより、ホスト計算機２はパワーオフ状態となり、各ストレージデバイスもパワーオフ状態となる。
【０１２４】
バックアップ電源４４の残りの電力量が閾値Ｘ２以上であるならば（ステップＳ５０５のＹＥＳ）、プロセッサ４０は、残りの全てのストレージデバイスに第２の保存指示を送信する（ステップＳ５０６）。プロセッサ４０は、残りの全てのストレージデバイスから第２の保存完了通知を受信したか否かを判定する（ステップＳ５０７）。
【０１２５】
プロセッサ４０は、残りの全てのストレージデバイスから第２の保存完了通知を受信したならば（ステップＳ５０７のＹＥＳ）、ホスト計算機２をシャットダウンするための処理を実行する（ステップＳ５０８）。
【０１２６】
図１２のフローチャートは、ホスト計算機２によって実行される第２の保存指示を送信する処理の別の手順を示す。
【０１２７】
ホスト計算機２のプロセッサ４０が全ストレージデバイスから第１の保存完了通知を受信したならば（ステップＳ６０１のＹＥＳ）、プロセッサ４０は、格納されているユーザデータの重要度に基づいて、第１のグループに属するストレージデバイスを特定する（ステップＳ６０２）。ステップＳ６０２では、プロセッサ４０は、より重要度の高いユーザデータを格納している一つ以上のストレージデバイス（一つ以上のＳＳＤ）を第１のグループに属するストレージデバイスとして決定する。
【０１２８】
そして、プロセッサ４０は、第１のグループに属するストレージデバイスそれぞれに第２の保存指示を送信する（ステップＳ６０３）。
【０１２９】
次に、プロセッサ４０は、第１のグループに属する全てのストレージデバイスから第２の保存完了通知を受信したか否かを判定する（ステップＳ６０４）。
【０１３０】
第１のグループに属する全てのストレージデバイスから第２の保存完了通知を受信したならば（ステップＳ６０４のＹＥＳ）、プロセッサ４０は、バックアップ電源４４の残り電力量（例えば、残り容量）が閾値Ｘ２（＜Ｘ１）以上であるか否かを判定する（ステップＳ６０５）。
【０１３１】
バックアップ電源４４の残り電力量が閾値Ｘ２未満であるならば（ステップＳ６０５のＮＯ）、プロセッサ４０は、残りの全てのストレージデバイス（第１のグループに属するストレージデバイス以外のストレージデバイス）に第２の保存指示を送信することなくホスト計算機２をシャットダウンするための処理を実行する（ステップＳ６０８）。これにより、ホスト計算機２はパワーオフ状態となり、各ストレージデバイスもパワーオフ状態となる。
【０１３２】
バックアップ電源４４の残りの電力量が閾値Ｘ２以上であるならば（ステップＳ６０５のＹＥＳ）、プロセッサ４０は、残りの全てのストレージデバイスに第２の保存指示を送信する（ステップＳ６０６）。プロセッサ４０は、残りの全てのストレージデバイスから第２の保存完了通知を受信したか否かを判定する（ステップＳ６０７）。
【０１３３】
プロセッサ４０は、残りの全てのストレージデバイスから第２の保存完了通知を受信したならば（ステップＳ６０７のＹＥＳ）、ホスト計算機２をシャットダウンするための処理を実行する（ステップＳ６０８）。
【０１３４】
なお、ステップＳ６０２では、高いアクセス頻度を有するユーザデータを格納している
一つ以上のストレージデバイス（一つ以上のＳＳＤ）を第１のグループに属するストレージデバイスとして決定してもよい。
【０１３５】
図１３は、電源消失のイベントが起こる前の通常稼動期間中にホスト計算機２とＳＳＤ３−１〜３−５とによって実行される処理シーケンスを示す。
【０１３６】
予期しない電源消失のイベントが起こる前の通常稼動期間中に、ホスト計算機２のプロセッサ４０は、バックアップ電源４４からストレージデバイス（ここでは、ＳＳＤ３−１〜３−５）それぞれに供給可能な電力量を推定する（ステップＳ９０１）。この電力量はストレージデバイス毎に推定されてもよい。そして、プロセッサ４０は、推定された電力量それぞれをストレージデバイスに通知する。
【０１３７】
ＳＳＤ３−１のコントローラ４は、ＳＳＤ３−１に供給可能な電力量の通知を受けると、通知された電力量と、ユーザデータの保存に必要な電力量とを比較する（ステップＳ９０２）。ユーザデータの保存に必要な電力量は、ライトバッファ（ＷＢ）３１に蓄積可能なユーザデータの最大量に基づいて推定されてもよい。通常、ライトバッファ（ＷＢ）３１に蓄積可能なユーザデータの最大量が大きい程、書き込み性能は向上する。なぜなら、複数のＮＡＮＤ型フラッシュメモリチップに対するデータ書き込み動作を並列に実行することができるからである。
【０１３８】
通知された電力量がユーザデータの保存に必要な電力量以上であるならば、ＳＳＤ３−１のコントローラ４は、ホスト計算機２から供給されるバックアップ電力でユーザデータの保存が可能であると判定する。一方、通知された電力量がユーザデータの保存に必要な電力量未満であるならば、ＳＳＤ３−１のコントローラ４は、ホスト計算機２から供給されるバックアップ電力でユーザデータを保存することができないと判定する。そして、ＳＳＤ３−１のコントローラ４は、ユーザデータの保存の可否（判定結果）をホスト計算機２に通知する。
【０１３９】
ＳＳＤ３−２も同様に、ＳＳＤ３−２に供給可能な電力量の通知を受けると、通知された電力量と、ユーザデータの保存に必要な電力量とを比較する（ステップＳ９０３）。ここでは、通知された電力量でユーザデータを保存することができるか否かが判定される。そして、ＳＳＤ３−２は、ユーザデータの保存の可否（判定結果）をホスト計算機２に通知する。
【０１４０】
ＳＳＤ３−３も同様に、ＳＳＤ３−３に供給可能な電力量の通知を受けると、通知された電力量と、ユーザデータの保存に必要な電力量とを比較する（ステップＳ９０４）。ここでは、通知された電力量でユーザデータを保存することができるか否かが判定される。そして、ＳＳＤ３−３は、ユーザデータの保存の可否（判定結果）をホスト計算機２に通知する。
【０１４１】
ＳＳＤ３−４も同様に、ＳＳＤ３−４に供給可能な電力量の通知を受けると、通知された電力量と、ユーザデータの保存に必要な電力量とを比較する（ステップＳ９０５）。ここでは、通知された電力量でユーザデータを保存することができるか否かが判定される。そして、ＳＳＤ３−４は、ユーザデータの保存の可否（判定結果）をホスト計算機２に通知する。
【０１４２】
ホスト計算機２のプロセッサ４０は、全ストレージデバイスからユーザデータの保存の可否の通知を受信すると、ストレージデバイスそれぞれに供給すべき電力量を調整する（ステップＳ９０６）。
【０１４３】
例えば、ホスト計算機２のプロセッサ４０がＳＳＤ３−２〜ＳＳＤ３−４からユーザデータの保存が可能であることの通知を受け、ＳＳＤ３−１からユーザデータを保存できないことの通知を受けた場合、プロセッサ４０は、ＳＳＤ３−１への供給すべき電力量を増やし、ＳＳＤ３−２〜ＳＳＤ３−４への供給すべき電力量を減らす調整を行ってもよい。
【０１４４】
なお、図１３では、電源消失後に供給可能な電力量を全てのストレージデバイスに通知する例を説明したが、ホスト計算機２のプロセッサ４０は、電源消失後に電力を供給可能な期間を全てのストレージデバイスに通知してもよい。各ストレージデバイスは、通知された期間に基づいて、ユーザデータをＮＡＮＤ型フラッシュメモリ５に保存することができるか否かを判定することができる。
【０１４５】
図１４は、ＳＳＤ３−１内のＤＲＡＭ６に蓄積可能な未書き込みのユーザデータの量およびＤＲＡＭ６に蓄積可能な未書き込みの更新されたアドレス変換情報の量を制限するための処理シーケンスを示す。
【０１４６】
予期しない電源消失のイベントが起こる前の通常稼動期間中に、ホスト計算機２のプロセッサ４０は、バックアップ電源４４からストレージデバイス（ここでは、ＳＳＤ３−１〜３−５）それぞれに供給可能な電力量を推定する（ステップＳ１００１）。そして、プロセッサ４０は、推定された電力量それぞれをストレージデバイスに通知する。
【０１４７】
ＳＳＤ３―１のコントローラ４は、ＳＳＤ３−１に供給可能な電力量の通知を受けると、通知された電力量に基づいて、ＤＲＡＭ６に蓄積可能な未書き込みのユーザデータの量およびＤＲＡＭ６に蓄積可能な未書き込みの更新されたアドレス変換情報の量を算出する（ステップＳ１００２）。
【０１４８】
その後、ＳＳＤ３−１のコントローラ４がホスト計算機２からライトコマンドを受信し、さらにホスト計算機２からライトデータを受信すると、ＳＳＤ３−１のコントローラ４は、受信したライトデータをライトバッファ３１に一時的に格納する（ステップＳ１００３）。ライトデータがライトバッファ３１に格納されると、ＳＳＤ３−１のコントローラ４は、コマンド完了のレスポンスをホスト計算機２へ返す。
【０１４９】
続いて、コントローラ４は、ライトバッファ３１内に格納されている未書き込みのライトデータの量が制限値に達したか否かを判定する（ステップＳ１００４）。この制限値は、ステップＳ１００２で算出されたＤＲＡＭ６に蓄積可能な未書き込みのユーザデータの量を示す。ライトバッファ３１内に格納されている未書き込みのライトデータの量が制限値に達するまで、コントローラ４は、ライトバッファ３１内のライトデータをＮＡＮＤ型フラッシュメモリ５に書き込むことなく、ホスト計算機２から受信される新たなライトデータをライトバッファ３１に蓄積することができる。
【０１５０】
ライトバッファ３１内に格納されている未書き込みのライトデータの量が制限値に達したならば（ステップＳ１００４のＹＥＳ）、コントローラ４は、ライトバッファ３１内のライトデータをＮＡＮＤ型フラッシュメモリ５に書き込む（ステップＳ１００５）。そして、コントローラ４は、ＬＵＴ３２を更新して、ライトデータに対応するＬＢＡそれぞれにライトデータが書き込まれた物理記憶位置を示す物理アドレスをマッピングする（ステップＳ１００６）。
【０１５１】
次に、コントローラ４は、ＬＵＴ３２内の更新されたアドレス変換情報の量が制限値に達したか否かを判定する（ステップＳ１００７）。この制限値は、ステップＳ１００２で算出されたＤＲＡＭ６に蓄積可能な未書き込みの更新されたアドレス変換情報の量を示す。ＬＵＴ３２内の未書き込みの更新されたアドレス変換情報の量が制限値に達するまで、コントローラ４は、未書き込みの更新されたアドレス変換情報をＮＡＮＤ型フラッシュメモリ５に書き込むことなく、ＬＵＴ３２の更新を継続することができる。
【０１５２】
未書き込みの更新されたアドレス変換情報の量が制限値に達したならば（ステップＳ１００７のＹＥＳ）、コントローラ４は、未書き込みの更新されたアドレス変換情報をＮＡＮＤ型フラッシュメモリ５に書き込む（ステップＳ１００８）。
【０１５３】
なお、図１４では、ＤＲＡＭ６に蓄積可能な未書き込みのユーザデータの量およびＤＲＡＭ６に蓄積可能な未書き込みの更新されたアドレス変換情報の量の双方を制限する場合を説明したが、通知された電力量に基づいて、ＤＲＡＭ６に蓄積可能な未書き込みのユーザデータの量のみを制限してもよい。
【０１５４】
次に、図１５および図１６を参照して、アドレス変換テーブルを再構築する処理について説明する。
【０１５５】
図１５は、ＮＡＮＤ型フラッシュメモリ５に書き込まれていないユーザデータをＮＡＮＤ型フラッシュメモリ５の複数のブロックＢＬＫ１１〜ＢＬＫ１３に保存する動作を示す。
【０１５６】
第１の保存指示をホスト計算機２から受信した場合、コントローラ４は、ＮＡＮＤ型フラッシュメモリ５に書き込まれていないライトバッファ３１内のユーザデータと、ＬＵＴ３２を再構築するためのアドレス情報（ユーザデータのＬＢＡ）とをＮＡＮＤ型フラッシュメモリ５に保存する。
【０１５７】
図１５では、ＢＬＫ１１においては、ユーザデータｄ１〜ｄ４とユーザデータｄ１〜ｄ４に対応するＬＢＡ１〜４とがページ０に書き込まれ、ユーザデータｄ５〜ｄ８とユーザデータｄ５〜ｄ８に対応するＬＢＡ５〜８とがページ１に書き込まれ、ユーザデータｄ９〜ｄ１２とユーザデータｄ９〜ｄ１２に対応するＬＢＡ９〜１２とがページ２に書き込まれ、ユーザデータｄ１３〜ｄ１６とユーザデータｄ１３〜ｄ１６に対応するＬＢＡ１３〜１６とがページ３に書き込まれる。
【０１５８】
ＢＬＫ１２においては、ユーザデータｄ２１〜ｄ２４とユーザデータｄ２１〜ｄ２４に対応するＬＢＡ２１〜２４とがページ０に書き込まれ、ユーザデータｄ２５〜ｄ２８とユーザデータｄ２５〜ｄ２８に対応するＬＢＡ２５〜２８とがページ１に書き込まれ、ユーザデータｄ２９〜ｄ３２とユーザデータｄ２９〜ｄ３２に対応するＬＢＡ２９〜３２とがページ２に書き込まれ、ユーザデータｄ３３〜ｄ３６とユーザデータｄ３３〜ｄ３６に対応するＬＢＡ３３〜３６とがページ３に書き込まれる。
【０１５９】
ＢＬＫ１３においては、ユーザデータｄ４１〜ｄ４４とユーザデータｄ４１〜ｄ４４に対応するＬＢＡ４１〜４４とがページ０に書き込まれ、ユーザデータｄ４５〜ｄ４８とユーザデータｄ４５〜ｄ４８に対応するＬＢＡ４５〜４８とがページ１に書き込まれ、ユーザデータｄ４９〜ｄ５２とユーザデータｄ４９〜ｄ５２に対応するＬＢＡ４９〜５２とがページ２に書き込まれ、ユーザデータｄ５３〜ｄ５６とユーザデータｄ５３〜ｄ５６に対応するＬＢＡ５３〜５６とがページ３に書き込まれる。
【０１６０】
図１６は、アドレス変換テーブルを再構築する動作の例を示す。
【０１６１】
アドレス変換テーブルは、複数のＬＢＡそれぞれに対応する物理アドレスを保持する。ＳＳＤ３−１のコントローラ４は、ユーザデータが格納されている各ブロック内のページそれぞれに格納されているアドレス変換テーブル再構築用のアドレス情報（ＬＢＡ）をリードする。
【０１６２】
例えば、コントローラ４は、ブロックＢＬＫ１１のページ０からＬＢＡ１〜４をリードし、ＬＢＡ１に対応する物理アドレスをデータｄ１が格納されている物理記憶位置を示す物理アドレス（ＢＬＫ１１、Ｐａｇｅ０、Ｏｆｆｓｅｔ０）に変更し、ＬＢＡ２に対応する物理アドレスをデータｄ２が格納されている物理記憶位置を示す物理アドレス（ＢＬＫ１１、Ｐａｇｅ０、Ｏｆｆｓｅｔ１）に変更し、ＬＢＡ３に対応する物理アドレスをデータｄ３が格納されている物理記憶位置を示す物理アドレス（ＢＬＫ１１、Ｐａｇｅ０、Ｏｆｆｓｅｔ２）に変更し、ＬＢＡ４に対応する物理アドレスをデータｄ３が格納されている物理記憶位置を示す物理アドレス（ＢＬＫ１１、Ｐａｇｅ０、Ｏｆｆｓｅｔ３）に変更する。
【０１６３】
次いで、コントローラ４は、ブロックＢＬＫ１１のページ１からＬＢＡ５〜８をリードし、ＬＢＡ５に対応する物理アドレスをデータｄ５が格納されている物理記憶位置を示す物理アドレス（ＢＬＫ１１、Ｐａｇｅ１、Ｏｆｆｓｅｔ０）に変更し、ＬＢＡ６に対応する物理アドレスをデータｄ６が格納されている物理記憶位置を示す物理アドレス（ＢＬＫ１１、Ｐａｇｅ１、Ｏｆｆｓｅｔ１）に変更し、ＬＢＡ７に対応する物理アドレスをデータｄ７が格納されている物理記憶位置を示す物理アドレス（ＢＬＫ１１、Ｐａｇｅ１、Ｏｆｆｓｅｔ２）に変更し、ＬＢＡ８に対応する物理アドレスをデータｄ８が格納されている物理記憶位置を示す物理アドレス（ＢＬＫ１１、Ｐａｇｅ１、Ｏｆｆｓｅｔ３）に変更する。
【０１６４】
次いで、コントローラ４は、ブロックＢＬＫ１１のページ２からＬＢＡ９〜１２をリードし、ＬＢＡ９に対応する物理アドレスをデータｄ９が格納されている物理記憶位置を示す物理アドレス（ＢＬＫ１１、Ｐａｇｅ２、Ｏｆｆｓｅｔ０）に変更し、ＬＢＡ１０に対応する物理アドレスをデータｄ１０が格納されている物理記憶位置を示す物理アドレス（ＢＬＫ１１、Ｐａｇｅ２、Ｏｆｆｓｅｔ１）に変更し、ＬＢＡ１１に対応する物理アドレスをデータｄ１１が格納されている物理記憶位置を示す物理アドレス（ＢＬＫ１１、Ｐａｇｅ２、Ｏｆｆｓｅｔ２）に変更し、ＬＢＡ１２に対応する物理アドレスをデータｄ１２が格納されている物理記憶位置を示す物理アドレス（ＢＬＫ１１、Ｐａｇｅ２、Ｏｆｆｓｅｔ３）に変更する。
【０１６５】
次いで、コントローラ４は、ブロックＢＬＫ１１のページ３からＬＢＡ１３〜１６をリードし、ＬＢＡ１３に対応する物理アドレスをデータｄ１３が格納されている物理記憶位置を示す物理アドレス（ＢＬＫ１１、Ｐａｇｅ３、Ｏｆｆｓｅｔ０）に変更し、ＬＢＡ１４に対応する物理アドレスをデータｄ１４が格納されている物理記憶位置を示す物理アドレス（ＢＬＫ１１、Ｐａｇｅ３、Ｏｆｆｓｅｔ１）に変更し、ＬＢＡ１５に対応する物理アドレスをデータｄ１５が格納されている物理記憶位置を示す物理アドレス（ＢＬＫ１１、Ｐａｇｅ３、Ｏｆｆｓｅｔ２）に変更し、ＬＢＡ１６に対応する物理アドレスをデータｄ１６が格納されている物理記憶位置を示す物理アドレス（ＢＬＫ１１、Ｐａｇｅ３、Ｏｆｆｓｅｔ３）に変更する。
【０１６６】
同様にして、コントローラ４は、ブロックＢＬＫ１２に格納されているＬＢＡ２１〜３６をリードし、ＬＢＡ２１〜３６に対応する物理アドレスを、データｄ２１〜ｄ３６が格納されている物理記憶位置を示す物理アドレスに変更する。
【０１６７】
さらに、コントローラ４は、ブロックＢＬＫ１３に格納されているＬＢＡ４１〜５６をリードし、ＬＢＡ４１〜５６に対応する物理アドレスを、データｄ４１〜ｄ５６が格納されている物理記憶位置を示す物理アドレスに変更する。
【０１６８】
図１７のフローチャートは、ＳＳＤ３−１によって実行されるアドレス変換テーブル３２を再構築する処理の手順を示す。
【０１６９】
ホスト計算機２からＳＳＤ３−１に供給される電力が回復された場合、ＳＳＤ３−１のコントローラ４は、電源消失時に第２の保存動作（更新されたアドレス変換情報の保存）が完了しているか否かを判定する（ステップＳ１１０１）。更新されたアドレス変換情報がＮＡＮＤ型フラッシュメモリ５に保存されているならば（ステップＳ１１０１のＹＥＳ）、コントローラ４は、更新されたアドレス変換情報が反映されているアドレス変換テーブルの全てまたは一部をＮＡＮＤ型フラッシュメモリ５から読み出し、アドレス変換テーブルの全てまたは一部をＤＲＡＭ６にルックアップテーブル（ＬＵＴ）３２として格納する（ステップＳ１１０２）。
【０１７０】
更新されたアドレス変換情報がＮＡＮＤ型フラッシュメモリ５に保存されていないならば（ステップＳ１１０１のＮＯ）、コントローラ４は、ユーザデータが格納されている各ブロック内のページそれぞれに格納されているアドレス変換テーブル再構築用のアドレス情報（ＬＢＡ）をリードする（ステップＳ１１０３）。そして、コントローラ４は、リードされたＬＢＡそれぞれとこれらＬＢＡに対応するページそれぞれの物理アドレスとに基づいてアドレス変換テーブルを再構築する（ステップＳ１１０４）。なお、各ブロックの最終ページにＬＢＡリストが格納されている場合には、コントローラ４は、各ブロックのＬＢＡリストを使用して、アドレス変換テーブルを再構築してもよい。
【０１７１】
以上の説明では、ホスト計算機２に接続可能な複数のストレージデバイスとしてＳＳＤ３−１〜３−５を使用する場合を主として説明したが、これらストレージデバイスは、上述したように、瓦記録（Ｓｈｉｎｇｌｅｄ  ｍａｇｎｅｔｉｃ  ｒｅｃｏｒｄｉｎｇ：ＳＭＲ）技術を使用したハードディスクドライブ（ＨＤＤ）であってもよい。
【０１７２】
図１８は、ＳＭＲ技術を使用したハードディスクドライブ（ＨＤＤ）の構成例を示す。
【０１７３】
図１８に示されるＨＤＤは、ディスク（磁気ディスク）１１１と、ヘッド（磁気ヘッド）１１２と、スピンドルモータ（ＳＰＭ）１１３と、アクチュエータ１１４と、ドライバＩＣ１１５と、ヘッドＩＣ１１６と、コントローラ１１７と、ＤＲＡＭ１１８とを備えている。
【０１７４】
このＨＤＤでは、論理アドレスに割り当てられるディスク１１１上の物理位置（例えば、セクタ位置）が固定ではないアドレッシング方式を適用される。
【０１７５】
ディスク１１１は、例えばその一方の面に、データが磁気記録される記録面を備える記録媒体（不揮発性記憶媒体）である。ディスク１１１はＳＰＭ１１３によって高速に回転させられる。ＳＰＭ１１３は、ドライバＩＣ１１５から供給（印加）される駆動電流（電圧）により駆動される。ディスク１１１（より詳細には、ディスク１１１の記録面）は、例えば、複数の同心円状の記憶領域に区分される。つまり、ディスク１１１は複数の同心円状の記憶領域を備えている。記憶領域の数がｎであるものとする。ｎ個の記憶領域の各々は、一般にゾーンと呼ばれ、複数のトラックを備えている。各ゾーンは、例えばデータ追記型アクセス領域として用いられる。つまり、ディスク１１１上のゾーンを単位にデータが書き換えられる。また、ゾーンを単位にデータが消去される。
【０１７６】
ヘッド１１２はディスク１１１の記録面に対応して配置される。ヘッド１１２は、ディスク１１１からのデータの読み出しに用いられるリード素子と、ディスク１１１へのデータの書き込みに用いられるライト素子とを備えている。リード素子及びライト素子は、それぞれ、リーダー及びライターとも呼ばれる。ライト素子の幅は、リード素子の幅よりも大きいものとする。ディスク１１１上のゾーンへのデータの書き込みに、シングルド磁気記録（ＳＭＲ）が用いられる。シングルド磁気記録では、ゾーン内の先頭のトラックから最終のトラックまでに順にデータが書き込まれる。そして、１トラック分のデータがゾーンに書き込まれる毎に、ライト素子（ヘッド１１２）は、リード素子がトレースする軌跡（リードトラック）に対応するピッチだけ、ディスク１１１の半径方向に移動される。
【０１７７】
ヘッド１１２は、アクチュエータ１１４の先端に取り付けられている。ヘッド１１２は、ディスク１１１が高速に回転することにより当該ディスク１１１上を浮上する。アクチュエータ１１４は、当該アクチュエータ１１４の駆動源となるボイスコイルモータ（ＶＣＭ）１４０を有している。ＶＣＭ１４０は、ドライバＩＣ１１５から供給（印加）される駆動電流（電圧）により駆動される。ヘッド１１２は、アクチュエータ１１４がＶＣＭ１４０によって駆動されることにより、ディスク１１１上を当該ディスク１１１の半径方向に、円弧を描くように移動する。
【０１７８】
なお、図１８に示される構成と異なって、ＨＤＤが複数のディスクを備えていても構わない。また、図１８に示されるディスク１１１が、その両方の面に記録面を備え、当該記録面のそれぞれに対応してヘッドが配置されていても構わない。
【０１７９】
ドライバＩＣ１１５は、コントローラ１１７（より詳細には、コントローラ１１７内のＣＰＵ１７３）の制御に従い、ＳＰＭ１１３とＶＣＭ１４０とを駆動する。ヘッドＩＣ１１６はリードアンプを含んでおり、ヘッド１１２により再生された信号（つまり再生信号）を増幅する。ヘッドＩＣ１１６は更にライトドライバを含んでおり、コントローラ１１７内のＲ／Ｗチャネル１７１から送出されるライトデータをライト電流に変換して、当該ライト電流をヘッド１１２に送出する。
【０１８０】
コントローラ１１７は、例えば、複数の素子が単一チップに集積されたsystem-on-a-chip（ＳＯＣ）と呼ばれる大規模集積回路（ＬＳＩ）を用いて実現される。コントローラ１１７は、リード／ライト（Ｒ／Ｗ）チャネル１７１、ハードディスクコントローラ（ＨＤＣ）１７２、およびＣＰＵ１７３を備えている。
【０１８１】
Ｒ／Ｗチャネル１７１は、リード／ライトに関連する信号を処理する。Ｒ／Ｗチャネル１７１は、再生信号（リード信号）をアナログ−デジタル変換器によってデジタルデータに変換し、デジタルデータからリードデータを復号する。Ｒ／Ｗチャネル１７１はまた、デジタルデータからヘッド１１２の位置決めに必要なサーボデータを抽出する。Ｒ／Ｗチャネル１７１はまた、ライトデータを符号化する。
【０１８２】
ＨＤＣ１７２は、ホスト（ホスト装置）と接続されている。ＨＤＣ１７２は、ホストから転送されるコマンド（ライトコマンド、リードコマンド等）を受け取る。ＨＤＣ１７２は、ホストとＤＲＡＭ１１８との間のデータ転送及びＤＲＡＭ１１８とＲ／Ｗチャネル１７１との間のデータ転送を制御する。
【０１８３】
ＣＰＵ１７３は、図１８に示されるＨＤＤの主コントローラとして機能する。ＣＰＵ１７３は制御プログラムに従って、ＨＤＣ１７２を含む、ＨＤＤ内の少なくとも一部の要素を制御する。
【０１８４】
ＤＲＡＭ１１８の記憶領域の一部は、ホスト計算機２から受信されるライトデータを一時的に格納するためのライトバッファ（ＷＢ）１１８Ａとして用いられる。また、ＤＲＡＭ１１８の記憶領域の他の一部は、アドレス変換テーブル１１８Ｂを格納するために用いられる。さらに、ＤＲＡＭ１１８の記憶領域の他の一部は、様々なシステム管理情報３３を格納するために用いられてもよい。
【０１８５】
アドレス変換テーブル１１８Ｂは、論理アドレスと物理アドレスとの対応を、データが書き込まれたセクタを単位に管理するために用いられる。ここで、ある論理アドレス（例えばＬＢＡ）に対応したデータのゾーンへの新たな書き込みを想定する。この場合、データは、そのＬＢＡに対応したゾーンに書き込まれず、空きのゾーンに書き込まれる。ＨＤＣ１７２は、ゾーンへの書き込みが完了した時に、アドレス変換テーブル１１８ＢにおけるＬＢＡと物理アドレスとの対応を示す情報を更新する。
【０１８６】
図１９は、更新データの書き込み動作を示す。
【０１８７】
図１９では、図示を簡単にするために、２つのゾーンを示している。各ゾーンは、多数のトラック（例えば、Ｔｒａｃｋ０〜４）を有する。
【０１８８】
ゾーン１に記録されたユーザデータの一部を書き換える場合、更新データは、ゾーン１とは別のゾーンである新ゾーンに記録される。このとき、アドレス変換テーブル１１８Ｂが更新され、更新前のデータに対応するＬＢＡに更新データの物理記憶位置を示す物理アドレスがマッピングされる。
【０１８９】
図２０は、ホスト計算機２として機能するコンピュータの構成例を示す。
【０１９０】
このコンピュータは、ラックに収容可能な薄い箱形の筐体２０１を備える。多数のＳＳＤ３は筐体２０１内に配置されてもよい。この場合、各ＳＳＤは筐体２０１の前面２０１Ａに設けられたスロットに取り外し可能に挿入されてもよい。
【０１９１】
システムボード（マザーボード）２０２は筐体２０１内に配置される。システムボード（マザーボード）２０２上においては、プロセッサ４０、メモリ４１、システムコントローラ４２、電源回路４３を含む様々な電子部品が実装されている。これら電子部品がホスト計算機（ホスト装置）２として機能する。
【０１９２】
以上説明したように、本実施形態によれば、ホスト計算機２は、電源消失のイベントの後に、ＮＡＮＤ型フラッシュメモリ５のような不揮発性記憶媒体に書き込まれていないユーザデータをＤＲＡＭ６のような揮発性メモリから不揮発性記憶媒体に保存すべきことを指示する第１の保存指示を複数のストレージデバイスに送信する。そして、ホスト計算機２は、不揮発性記憶媒体へのユーザデータの保存の完了を示す応答が複数のストレージデバイスの全てから受信された場合、更新されたアドレス変換情報を揮発性メモリから不揮発性記憶媒体に保存すべきことを指示する第２の保存指示を、複数のストレージデバイスの全て又は複数のストレージデバイス内の一つ以上のストレージデバイスに送信する。これにより、全てのストレージデバイスがユーザデータの保存を完了した後に、更新されたアドレス変換情報を保存する追加の保存処理に移行することができる。これにより、ユーザデータを保存中のストレージデバイスが存在するにもかかわらず、幾つかのストレージデバイスが追加の保存処理を開始してしまうことを防止することができる。よって、あるストレージデバイスがユーザデータの保存を完了する前に、ホスト計算機２からのバックアップ用の電力が途絶える可能性を大幅に低減できる。
【０１９３】
また、ホスト計算機２は、アドレス変換テーブルの再構築に要する時間がより長い一つ以上の第１のストレージデバイスに第２の保存指示を優先的に送信することができる。そして、更新されたアドレス変換情報の保存の完了を示す応答が一つ以上の第１のストレージデバイスの全てから受信された場合、ホスト計算機２は、残りの各ストレージデバイスに前記第２の保存指示を送信する。これにより、電源回復後に全てのストレージデバイスが通常動作状態に回復されるまでに要する時間を短縮することができる。
【０１９４】
なお、本実施形態では、不揮発性メモリとしてＮＡＮＤ型フラッシュメモリを例示した。しかし、本実施形態の機能は、例えば、ＭＲＡＭ（Ｍａｇｎｅｔｏｒｅｓｉｓｔｉｖｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＰＲＡＭ（Ｐｈａｓｅ  ｃｈａｎｇｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲｅＲＡＭ（Ｒｅｓｉｓｔｉｖｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、又は、ＦｅＲＡＭ（Ｆｅｒｒｏｅｌｅｃｔｒｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）のような他の様々な不揮発性メモリにも適用できる。
【０１９５】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１９６】
２…ホスト計算機、３−１〜３−５…ＳＳＤ、４…コントローラ、５…ＮＡＮＤ型フラッシュメモリ、６…ＤＲＡＭ、２１…バックアップ電力量判定部、２２…第１の保存部、２３…第１の保存完了通知部、２４…第２の保存部、２５…第２の保存完了通知部、２６…アドレス変換テーブル再構築部、４０…プロセッサ、４３…電源回路、４４…バックアップ電源（バックアップパワーソース）、６４…ＰＬＰマネージャ、６４Ａ…電力量通知モジュール、６４Ｂ…パワーロス検出モジュール、６４Ｃ…第１の保存指示送信モジュール、６４Ｄ…第１の保存完了通知受信モジュール、６４Ｅ…第２の保存指示送信モジュール、６４Ｆ…第２の保存完了通知受信モジュール。
【図１】
2018156131.tif 000003
【図２】
2018156131.tif 000004
【図３】
2018156131.tif 000005
【図４】
2018156131.tif 000006
【図５】
2018156131.tif 000007
【図６】
2018156131.tif 000008
【図７】
2018156131.tif 000009
【図８】
2018156131.tif 000010
【図９】
2018156131.tif 000011
【図１０】
2018156131.tif 000012
【図１１】
2018156131.tif 000013
【図１２】
2018156131.tif 000014
【図１３】
2018156131.tif 000015
【図１４】
2018156131.tif 000016
【図１５】
2018156131.tif 000017
【図１６】
2018156131.tif 000018
【図１７】
2018156131.tif 000019
【図１８】
2018156131.tif 000020
【図１９】
2018156131.tif 000021
【図２０】
2018156131.tif 000022