論理アドレスと物理アドレスとの間の第1のマッピングを含む第1のメタデータを有する第1のルックアップテーブルLUTを格納する第1のメモリと、前記論理アドレスと前記物理アドレスとの間の第2のマッピングを含む第2のメタデータを有する第2のLUTを格納する第2のメモリと、前記第1のメタデータを更新し、前記第1のメタデータに基づいて、其々所定の時点に前記第2のメタデータの部分を更新する制御モジュールとを備え、前記部分は、前記第2のLUTの所定数の入力のことである、システム。前記第1のメモリは揮発性メモリであり、前記第2のメモリは不揮発性メモリである、請求項1に記載のシステム。前記制御モジュールは、所定の間隔で第3のメタデータを更新し、前記第3のメタデータは、前記第1のメタデータまたは前記第2のメタデータの少なくとも一方に依存しており、前記第3のメタデータは、ユーザデータのポインタ、システムデータのポインタ、メモリのブロックに格納されているデータ量、または不良情報のうち、少なくとも1つを含む、請求項1に記載のシステム。前記第3のメタデータは、前記第2のLUTのタイムコヒーレントなバージョンに依存している、請求項3に記載のシステム。前記制御モジュールは、前記第2のメタデータを更新したときに基づいて前記第3のメタデータを更新する、請求項3に記載のシステム。前記制御モジュールは、前記第1のメモリ内の前記第1のメタデータの部分を、前記第2のメモリ内の前記第1のメタデータの他の部分をバックアップしている間に更新する、請求項1に記載のシステム。前記制御モジュールは、前記第2のメモリ内の前記第1のLUTの第2の部分をバックアップしている間に、前記第2のメモリにユーザデータを書き込んで、前記第1のメモリ内の前記第1のLUTの第1の部分を更新する、請求項1に記載のシステム。電力ONイベント中に、前記制御モジュールは、イベントログの入力に基づいて前記第1のメモリの部分を更新して、前記第1のメモリに前記第2のメモリの部分をアップロードして、前記イベントログの前記入力には、前記システムのドライブの電力が失われる前に実行された前記物理アドレスおよび前記論理アドレスのうち選択されたものの間のメタデータの変更が含まれる、請求項1に記載のシステム。前記制御モジュールは、前記第1のメタデータの部分のフラッシュ時間を決定して、フラッシュイベント間であるフラッシュ期間分待ち、前記フラッシュ時間のうちの対応する時間において、前記第1のメモリから前記第2のメモリに前記第1のメタデータをコピーすることで、前記第1のメタデータの前記部分をフラッシュする、請求項1に記載のシステム。論理アドレスと物理アドレスとの間の第1のマッピングを含む第1のメタデータを有する第1のルックアップテーブルLUTを格納する第1のメモリと、前記論理アドレスと前記物理アドレスとの間の第2のマッピングを含む第2のメタデータを有する第2のLUTを格納する第2のメモリと、電力ONイベント中に、前記第2のメモリの部分を前記第1のメモリにアップロードして、イベントログの入力に基づいて前記第1のメモリの部分を更新する制御モジュールとを備え、前記イベントログの前記入力には、前記電力ONイベントの前に実行された前記物理アドレスおよび前記論理アドレスのうち選択されたものの間のメタデータの更新が含まれる、システム。前記電力ONイベント中であって、LUT依存メタデータが前記第2のメモリに格納されていないときに、前記制御モジュールは、前記第2のメモリから前記第1のメモリに、少なくとも前記部分の完全なサイクル1つ分をアップロードする、請求項10に記載のシステム。前記電力ONイベント中に、前記制御モジュールは、前記システムの正常な電力停止が行われたかを判断して、正常な電力停止とは、前記第1のLUTが、前記システムの最後の電力停止イベントの前に前記第2のメモリにフラッシュされることであり、前記システムの正常な電力停止が行われたときには、前記第2のメタデータを前記第2のメモリから前記第1のメモリに転送して、前記イベントログにウォーク処理を行わず、前記システムの正常な電力停止が行われなかったときには、前記第2のメタデータを前記第2のメモリから前記第1のメモリに転送して、前記イベントログにウォーク処理を行う、請求項10に記載のシステム。前記制御モジュールは、ソリッドステートドライブの電力が失われる前に更新された前記部分の少なくとも完全なフラッシュサイクル1つをアップロードして、前記部分の前記少なくとも完全なフラッシュサイクル1つは、前記第2のメモリから前記第1のメモリにアップロードされ、前記第1のメタデータは、前記部分の前記少なくとも完全なフラッシュサイクル1つを含み、前記制御モジュールは、前記部分の前記少なくとも完全なフラッシュサイクル1つの第1の部分がフラッシュされたときから、前記ソリッドステートドライブの前記電力が失われたときの前記イベントログのタイムスロットへと、前記第1のメタデータを更新するべく、前記イベントログにウォーク処理を行い、前記電力ONイベントは、前記ソリッドステートドライブの前記電力が失われた後に行われる、請求項10に記載のシステム。前記制御モジュールは、前記部分を前記第2のメモリから前記第1のメモリにアップロードして、前記第1のメタデータは、前記アップロードされた部分を含み、前記アップロードされた部分は、LUT依存メタデータのフラッシュイベントの前の、および、ソリッドステートドライブの電力が失われたときの前記イベントログのタイムスロットの前の、前記部分の少なくとも完全なフラッシュサイクル1つを含み、前記制御モジュールは、前記部分の前記完全なフラッシュサイクル1つの第1の部分のタイムスロットから、前記ソリッドステートドライブの前記電力が失われたときの前記イベントログの前記タイムスロットへと、前記第1のメタデータを更新するべく、前記イベントログにウォーク処理を行い、前記電力ONイベントは、前記ソリッドステートドライブの前記電力が失われた後に行われる、請求項10に記載のシステム。前記電力ONイベント中に、前記制御モジュールは、前記部分の完全なフラッシュサイクル1つの第1の部分を前記第2のメモリから前記第1のメモリにアップロードして、前記イベントログの入力に基づいて、前記第1のメモリの前記部分の前記完全なサイクル1つのロードおよび更新を含む、ソリッドステートドライブの電力停止サイクルに関連付けられたタイムスロットまで第1のタイムスロットから、前記イベントログにウォーク処理を行い、前記第1のタイムスロットから前記部分の前記完全なサイクル1つのタイムスロットまで前記イベントログにウォーク処理を行っている間、前記制御モジュールは、イベントログ入力を省いて、前記省いたイベントログ入力に関連付けられている前記第1のメモリの入力を更新しない、請求項10に記載のシステム。論理アドレスと物理アドレスとの間の第1のマッピングを含む第1のメタデータを有する第1のルックアップテーブルLUTを第1のメモリに格納する段階と、前記論理アドレスと前記物理アドレスとの間の第2のマッピングを含む第2のメタデータを有する第2のLUTを第2のメモリに格納する段階と、制御モジュールを通じて前記第1のメタデータを更新し、前記第1のメタデータに基づいて、其々所定の時点に前記第2のメタデータの部分を更新する段階とを備え、前記部分は、前記第2のLUTの所定数の入力のことである、方法。前記第2のメモリに、第3のメタデータを格納する段階をさらに備え、前記第3のメタデータは、前記第1のメタデータまたは前記第2のメタデータのうち少なくとも一方に依存しており、前記其々所定の時点において、前記第3のメタデータを更新する段階をさらに備える、請求項16に記載の方法。以下の記載は、本質的に例示にすぎず、本開示、用途、または利用を制限する意図はない。明瞭を期す目的から、図面における同じ参照番号は同様の部材を示すこととする。ここでA、B、およびCという言い回しは、非排他的論理和を利用した、論理的AまたはBまたはCという意味に捉えられたい。ある方法における各段階は、本開示の原理において順序を入れ替えて実行してもよいことと理解されたい。ここでは、モジュールを、コードを実行する特定用途向け集積回路ASIC、電子回路、統合論理回路、フィールドプログラマブルゲートアレイFPGA、プロセッサ共有、専用、グループを含む、記載する機能を提供するのに適したその他のコンポーネント、または、システムオンチップ等におけるような上述した部材の一部または全ての組み合わせであってよい、とする。モジュールという用語は、プロセッサが実行するコードを格納するメモリ共有、専用、グループを含むも含んでよい。上でも利用したコードという用語は、ソフトウェア、ファームウェア、およびまたは、マイクロコードを含んでよく、プログラム、ルーチン、機能、クラス、および/またはオブジェクトのことであってよい。上でも利用した共有という用語は、複数のモジュールの一部または全てのコードが、単一の共有プロセッサによる実行が可能であることを意味する。加えて、複数のモジュールの一部または全てのコードは、単一の共有メモリに格納されてもよい。上でも利用したグループという用語は、単一のモジュールの一部または全てのコードが、一群のプロセッサを利用して実行可能であることを示す。加えて、単一のモジュールの一部または全てのコードが、一群のメモリに格納されてもよい。ここで記載する装置および方法は、1以上のプロセッサが実行する1以上のコンピュータプログラムにより実装することができる。コンピュータプログラムには、一時的でない有形のコンピュータ可読媒体に格納されるプロセッサ実行可能命令が含まれてよい。コンピュータプログラムには、格納されているデータが含まれてよい。一時的でない有形のコンピュータ可読媒体の非制限的な例には、不揮発性メモリ、磁気ストレージ、および光ストレージがある。ソリッドステートドライブSSDは、各論理ユニットおよびデータブロックのメモリにおける物理格納位置をトラックするためにルックアップテーブルLUTを利用することができる。LUTは、論理アドレスによりインデックス化される物理位置を有する、アレイまたはその他の適切なデータ群のことを指してよい。LUTは、メモリに対して読み出しおよび/または書き込みを行うときに、論理アドレスを物理アドレスに変換するために利用することができる。メモリの物理位置で陳腐になった古くなったデータは、その物理位置に更新した新しいデータを書き込む前に、無効化することができる。LUTは、古くなったデータは無効になると修正され、更新されたデータが同じ位置に、古いデータの置き換えとして書き込まれる、または新たな物理位置に書き込まれる。メモリの各書き込み処理中に、論理アドレスは物理アドレスに動的マッピングされる。動的マッピングとは、書き込み処理中に物理アドレスを論理アドレスに割り当てる処理のことである。各時間データがメモリに書き込まれ、データの論理アドレスおよび対応する物理アドレスがLUTに記録される。動的マッピングによって、データの物理位置を計算する決定論的な方法がなくなる。この結果、格納済みのデータにアクセスするためには更新済みの正確なLUTが必要となる。SSDのLUTは、SSDの電源投入時電力ON時に、揮発性メモリに格納され、揮発性メモリからアクセスすることができるようになる。LUTは、パフォーマンス面の観点からつまり、アクセス時間を短くするために揮発性メモリに格納される。LUTは、SSDの電源停止時電源OFFに、揮発性メモリから不揮発性メモリに転送されてよい。LUTは、SSDがOFF状態になる前に不揮発性メモリに格納される。SSDの動作中に、電力が失われると、揮発性メモリに格納されているLUTの更新済みメタデータが失われることがある。電源喪失前にLUTを更新してバックアップをとるためのデータ格納システムを以下に提供する。さらにこのデータ格納システムは、電源喪失時に、電源が失われた時点前の状態にLUTを復元する。図1に示すデータ格納システム10は、ホスト12とSSD14とを含む。ホスト12は、コンピュータ、メディアプレーヤ、形態電話、携帯情報端末、その他のSSDインタフェース15を含むデバイスであってよい。SSD14は、ホスト12に着脱可能であってよい。SSD14の一例は、フラッシュドライブである。ホストはSSD14のメモリに、SSDインタフェースを介してアクセスする。SSD14は、制御モジュール17、読み出し専用メモリROM18、揮発性メモリ20、およびフラッシュ不揮発性メモリ22を含む固体システム16を含む。制御モジュール17は、SSD14のソフトウェアおよびファームウェアの命令を実行する。例えば、制御モジュール17は、ROM18に格納されているファームウェアの命令を実行する。制御モジュール17は、揮発性メモリ20に格納されている命令の読み出しおよび実行も行う。揮発性メモリ20の一例は、ランダムアクセスメモリRAMである。データ格納システム10は、入力デバイス24、出力デバイス26、および、ハードディスクドライブHDD28もさらに含んでよい。入力デバイス24は、キーボードまたはキーパッド、マウス、タッチスクリーン、タッチパッド、マイクロフォン、およびまたは、その他の入力デバイスを含んでよい。出力デバイス26は、ディスプレイ、スピーカ、および/または、その他の出力デバイスを含んでよい。データ格納システム10は、SSD14にデータを格納する。SSD14は、HDDHDD28をエミュレートする。例えばHDD28に格納されるデータを、SSD14フラッシュメモリ22にも格納する、としてよい。データは、物理割り当てアドレスPAAに対応する論理割り当てアドレスLAAに従ってフラッシュメモリ22に格納される。LAAとは、ホスト12が、フラッシュメモリ22のメモリ位置を参照する際に利用する際に利用するアドレスである。PAAは、フラッシュメモリ22の物理位置のアドレスであり、制御モジュール17が物理位置にアクセスする際に利用する。制御モジュール17は、ROM18に格納されているファームウェアに従いコマンドを処理することで、フラッシュメモリ22に対してデータを読み書きする。例えば、ホスト12がユーザデータをフラッシュメモリ22のLAAに書き込む場合、制御モジュール17は、ROM18のファームウェアを介して、対応するPAAを選択する。制御モジュール17は、PAAにより特定されたフラッシュメモリ22の位置にユーザデータを格納して、対応するメタデータを、揮発性メモリ20および/またはフラッシュメモリ22に格納する。メタデータは、LAAと対応するPAAとの関係またはマッピングを示すものである。メタデータは、非LUT依存メタデータと、LUT依存メタデータとを含む。非LUT依存メタデータは、1以上のLUTを、LAAとPAAとの関連付けとともに含む。LAAをPAAに関連付ける一次LUT50は、揮発性メモリ20に格納されている。一次LUT50のバックアップ版はバックアップまたは二次LUT52と称される、フラッシュメモリ22に格納される。一次LUT50は、フラッシュメモリ22の各LAAを、割り当てられたPAAと関連付けている。あるLAAにPAAが割り当てられていない場合、このLAAは、明らかに無効なPAA値に関連付けられる。一次LUT50は、SSD14への電源停止前に揮発性メモリ20からフラッシュメモリ22にフラッシュされる。フラッシュフラッシュされたフラッシュする等の用語は、LUTの少なくとも一部を揮発性メモリ20からフラッシュメモリ22にダウンロードまたはセーブすることを言う。LAAとPAAとの間のマッピングを提供するメタデータが、非LUT依存メタデータと称される。LUT依存メタデータは、非LUT依存メタデータに依拠dependentuponしているメタデータのことである。LUT依存メタデータは、さらに、それぞれ参照番号56、58で特定される揮発性メモリ20およびフラッシュメモリ22の両方に格納することができる。LUT依存メタデータ56、58は、ユーザデータおよび/またはシステムデータ、データ記述、不良情報、メモリブロック内のデータ量例えばフラッシュメモリ22のブロックのデータ量等へのポインタを含む。ユーザデータとは、ホスト12から提供されるデータのことであってよく、フラッシュメモリ22に格納されてよい。システムデータとは、ROM18に格納されているファームウェアを実行する際に生成されるデータのことであってよい。データ記述とは、例えば、あるデータがユーザデータからシステムデータかを示す情報であってよい。不良情報とは、フラッシュメモリ22のブロック内の不良位置等であってよい。アクセスイベント読み出しイベントまたは書き込みイベントにおいて、ホスト12は、フラッシュメモリ22内の位置にアクセスするべく、LAAを制御モジュール17に提供する。制御モジュール17は、一次LUT50にアクセスして、LAAをPAAに変換する。例えば、読み出しコマンドが、あるLAAに関するデータを要求している場合、実際にはこのデータは、対応するPAAから取得される。次に、制御モジュール17は、フラッシュメモリ22のPAAにアクセスする。制御モジュール17は、フラッシュメモリ22にデータを書き込む際には、未使用PAAをLAAに割り当てることができる。一次LUT50が、LAAとPAAとの関連を反映するよう更新される。揮発性メモリ20に格納されている非LUT依存メタデータ一次LUT50は、データ例えばユーザデータがフラッシュメモリ22に書き込まれると、更新される。データ格納システム10の電源が停止される前に、揮発性メモリ20に格納されているメタデータをフラッシュメモリ22に転送フラッシュする。フラッシュされるメタデータには、LUT依存メタデータと非LUT依存メタデータとが含まれてよい。メタデータのフラッシュは、定期的、および/または、所定の時に実行されてもよいし、データ格納システム10および/またはSSD14に対する電源を停止する前に実行されてもよい。バックアップLUT52およびイベントログ54は、電源喪失の後に、一次LUT50をアップロードして復元するために利用される。フラッシュメモリ22には、イベントログ54が格納されていてよい。イベントログとは、LUTに対して行われたアドレスマッピングの変更の経時的な記録のことである。例えば一次LUT50は、フラッシュメモリ22の物理アドレスへの論理アドレスのマッピングを含む。フラッシュメモリ22のセルおよび/またはブロックにアクセスが行われると、論理-物理アドレス関連付けが変更される場合がある。イベントログ54を利用して、経時的なアドレスマッピングの変更をトラックすることができ、これを利用して、電源喪失時例えば停電時に一次LUT50の最新状態の復元を試みることができる。イベントログ54の各入力は、特定の時間またはタイムスロットについて論理-物理アドレスマッピングの変更に関連付けられてよい。一例として、イベントログ54の入力には、論理アドレスと、この論理アドレスに割り当てられた物理アドレスとが含まれてよい。イベントログ入力の例を図3および図4に示す。メタデータをフラッシュする頻度は、所定のバックアップ時間、イベントログサイズ、ロードアップloadup時間、および/または、復元または再構築時間要件に基づいて調節することができる。バックアップ時間は、メタデータ非LUT依存メタデータおよび/またはLUT依存メタデータを、揮発性メモリ20からフラッシュメモリ22にフラッシュするのにかかる時間である。メタデータを揮発性メモリ20からフラッシュメモリ22にフラッシュされる頻度が低いほど、イベントログが非LUT依存メタデータを修復するのにかかる時間は長くなる。一次LUT50を修復するために必要なイベントログ入力量が多いほど、一次LUT50を復元するのにかかる時間も長くなる。一例では、イベントログ54のサイズを、フラッシュメモリ22に格納されるLAA-PAAマッピングの変更の入力数としてもよいし、および/または、LAA-PAAマッピングの変更の格納専用に利用される1以上のアレイの長さであってもよい。フラッシュメモリ22の一部を、イベントログ54に割り当ててよい。この部分のサイズは、イベントログ54のサイズまたは所定の数のイベントログ入力の数と等しくなるようにすると、確実に一次LUT50を復元することができる。ロードアップ時間とは、SSD14への電源投入時の、フラッシュメモリ22から揮発性メモリ20へのメタデータ非LUT依存メタデータおよびLUT依存メタデータの転送時間のことであってよい。復元時間には、ロードアップ時間と、イベントログをウォークする時間とが含まれてよい。イベントログにウォーク処理を行うwalkingtheeventlog等の言い回しは、イベントログ54の入力に従って揮発性メモリ20のバックアップLUT52を更新することを指す。これに関しては後で詳述する。SSD14の電源投入処理中に、非依存および依存LUTメタデータを、フラッシュメモリ22から揮発性メモリ20に転送アップロードして、LAAとPAAとの間の正常に更新された関連付けを構築する。SSD14の動作中に、揮発性メモリ20に格納されているメタデータに対する変更を、イベントログ54でトラックする。フラッシュメモリ22に格納されているメタデータは、揮発性メモリ20に格納されているメタデータに対する同じ変更を反映するように更新される。フラッシュメモリ22のメタデータは、所定の時、および、SSD14の電源OFF前に、分割されて更新される。例えば、フラッシュメモリ22のメタデータを、メタデータセーブコマンドに応じて更新することができる。メタデータセーブコマンドは、ROM18のファームウェアに従って、定期的、および/または、所定の時に生成することができる。SSD14の電源停止中には、制御モジュール17が、一次LUT50を含む揮発性メモリ20全体をフラッシュメモリ22にフラッシュすることができる。SSD14の電源投入時に、制御モジュール17は、バックアップLUT52を揮発性メモリ20にアップロードして、バックアップLUT52のフラッシュイベント時から、イベントログ54の最後の入力までイベントログ54にウォーク処理を行うことで、バックアップLUTを確実に最新の変更で更新するようにしてよい。SSD14の動作中に予期せず電源が喪失すると、揮発性メモリ20に格納されているメタデータに対する変更が失われる場合がある。フラッシュメモリ22に格納されているメタデータは、SSD14の電源OFF前には更新されないので、フラッシュメモリ22のメタデータには、一次LUT50に対する最新の変更が含まれないことになる。この理由から、フラッシュメモリ22のメタデータは少なくとも一部が古かったり、陳腐であったりすることがある。電源喪失の後の電源投入期間に、古いメタデータがフラッシュメモリ22から揮発性メモリ20に転送されてしまうことがある。この場合、フラッシュメモリ22のユーザデータの割り当ておよび取得が不正確となりうる。揮発性メモリ20内のメタデータを修正するために、制御モジュール14がイベントログ54のウォーク処理を行う。イベントログ54のウォーク処理において、制御モジュールは、揮発性メモリ20に格納されているメタデータを更新する。SSD14は、さらにアップロードタイマ60を含んでよい。アップロードタイマ60は、イベントログ54のウォーク処理で利用されてよい。アップロードタイマ60は、イベントログ54のウォーク処理中のイベントログ54の現在の入力のこと、またはこれを指すものであってよい。このことはさらに図8の方法を参照しながら説明する。図1および図2を参照すると、ルックアップテーブルLUT状態ダイアグラム100が、割り当てられたタイムスロット実装ごとの全サイクルフラッシュを示している。全サイクルフラッシュとは、少なくとも一度LUTの各入力をフラッシュすることを称する。LUT状態ダイアグラム100は、タイムスロット1から14を含む様々な時点における、一次LUT50およびイベントログ54の状態例を示している。時間は、タイムスロット1からタイムスロット14へと進む。一次LUT50の状態例が、各タイムスロット1から14について示されている。タイムスロット11-14の入力は、タイムスロット10中に電力が失われないことを条件とした入力例として示されている。もしもタイムスロット10中に電力が失われる場合には、タイムスロット11から14が存在しなくなる。図示されている一次LUT50は、6個の入力104を含むが、一次LUT50は任意の数の入力を含むことができる。6個の入力それぞれ104には、LAAおよびPAAが関連付けられている。LAAは、番号1から6で表され、テーブルの一列106に示されている。PAAは、タイムスロット1から14におけるそれぞれの一次LUT50の入力として示されている。例えばPAAは、タイムスロット1では1、2、7、4、5、6として示されている。同様に、タイムスロット10では、PAAは、10、14、15、16、5、13となっている。PAAがLAAについて更新されると、一次LUT50の対応する入力も、この更新を反映するよう変更される。例えばタイムスロット2では、第2LAAについてのPAAが2から8へと更新されている。一次LUT50の入力は、フラッシュメモリ22に、定期的、および/または、所定の時にフラッシュされてよい。一次LUT50は、フラッシュイベントごとに、揮発性メモリ20からフラッシュメモリ22にその全体がフラッシュされてよい。図2には3つのフラッシュイベントA-Cが示されている。一例として電力投入時に、PAA1-6で一次LUT50を始動する。タイムスロット1で、LAA3についてPAA3をPAA7で置き換える。次に、タイムスロット2で、LAA2についてPAA8でPAA2を置き換える。タイムスロット1から14各々について1以上の入力を更新することができる。第1のフラッシュFLUSHAでは、一次LUTがPAA入力1、2、3、4、5、6を有している。第2のフラッシュFLUSHBでは、一次LUTがPAA入力10、8、12、9、5、および11を有している。第3のフラッシュFLUSHCでは、一次LUTが、PAA入力18、14、15、17、5、および13を有している。タイムスロット10中に電力が喪失すると破線110で示されている、一次LUT50は、SSD14の次の電力ON時に復元されてよい。最後にセーブした一次LUTのバージョン10、8、12、9、5、および11を、フラッシュメモリ22から揮発性メモリ20にアップロードすることができる。制御モジュール17は、イベントログ54を、一次LUT50が最後にセーブされた時点からタイムスロット10までウォークして、一次LUT50を再構築する。一次LUT50は、イベントログ54における各入力に従って更新される。イベントログ54のウォーク処理の最終結果が、電力が喪失したときに存在している入力を有する一次LUTになるたとえば10、14、15、16、5、13。1つのフラッシュイベント中に一次LUT全体をバックアップすることで、ホスト12の処理は中断される。ホスト12からフラッシュメモリ22への書き込みは、バックアップLUT52の更新中に中断される。ホスト12を中断することで、一次LUT50をフラッシュしてバックアップLUT52全体を更新する間に、一次LUT50が修正されないようにしている。制御モジュール17は、分割フラッシュを実行することで、フラッシュイベント中のホスト12の中断時間を最小限に抑えることができる。分割フラッシュの例は、図3から図8を参照して後で詳述する。図1および図3のLUT状態ダイアグラム120は、分割されたフラッシュサイクル実装に基づくLUT状態シーケンスを示している。分割されたフラッシュとは、フラッシュイベント中に、一次LUT50の一部からバックアップLUT52へとフラッシュすることを称する。分割される部分には、一次LUT50の1以上の入力が含まれていて良い。一次LUT50を任意の数の分割部分に分割することができ、各部分の頻度および更新順序は調節可能である。LUT状態ダイアグラム120は、タイムスロット1から14を含む様々な時間における一次LUT50の状態を示す。一次LUT50は、6個の入力104を含むものとして示されている。6入力それぞれには、LAAとPAAとが関連付けられている。LAAは、番号1から6で表され、テーブルの一列106に示されている。PAAは、タイムスロット1-14それぞれにおける一次LUT50として示されている。図3のLUT状態ダイアグラム120は、図2の状態ダイアグラム100に類似しているが、LUT状態ダイアグラム120は、分割されたフラッシュイベントを含んでいる。図示されている各分割フラッシュイベントは、一次LUT50の1/3をフラッシュメモリ22へとフラッシュすることを含んでいる。4つのフラッシュイベント完了後の図3の一次LUT50は、2つのフラッシュイベント完了後の図2の一次LUT50と同じであるつまり、図2のFLUSHBと、図3のFLUSHDとが、10、8、12、9、5、11という一次LUT入力を有している。分割されたフラッシュイベントFLUSHA-Gは、それぞれタイムスロットの間に示されている。図示の実装例では、フラッシュイベントが、各2つのタイムスロットの組について行われているまたは2つのタイムスロットごとに1回フラッシュイベントを行っている。各フラッシュイベントにおいて6つの一次LUT入力のうち2つがフラッシュされている。例えば、フラッシュイベントFLUSHAでは、LAA1、2およびPAA1、2を有する部分をフラッシュしている。これにより、フラッシュメモリにはフラッシュされた部分の更新されたバックアップが提供される。一次LUT50を分割フラッシュすることによって、フラッシュイベント中のホストのパフォーマンスが瞬間的に落ちることを防止することができる。全サイクルフラッシュを、複数の小さいサイズの、または分割されたフラッシュイベントに分解することで、各フラッシュイベントにおいてホストが中断する時間を低減させたり、なくしたりすることができる。さらに、より少ないフラッシュ部分でホストの平均スループットを維持することができるようになり、同時に、ホストのパフォーマンス低下を最小限に抑えることができるようになる。図3の実装例において各部分をフラッシュする頻度は、図2の実装例において全サイクルまたは全LUTをフラッシュする頻度よりも多い。フラッシュされる部分に関連付けられていない論理および物理アドレスへのホスト書き込み要求は、フラッシュイベント中に行うことができる。例えば、バックアップLUT52の各部分は、バックアップLUTの他の部分のLAAおよび/またはPAAにメタデータを書き込み、ユーザデータをフラッシュメモリ22に書き込んでいる間に更新することができる。言い換えると、対応するバックアップLUT入力が、フラッシュイベントによる更新を受けていないフラッシュメモリ22のLAAおよび/または対応するPAAにはデータを書き込むことができる。例えば、フラッシュメモリ22のLAAおよびPAA3-6には、フラッシュイベントFLUSHA中にも書き込みができる。フラッシュされる部分に関連する論理および物理アドレスへのホスト書き込み要求は、その部分がフラッシュされている間中断される。ホスト12は、フラッシュイベントの間にバックアップ中であるフラッシュメモリ22のLAAおよび/またはPAAには書き込みができない。こうすることで、LAAおよびPAAのマッピング関連付けをバックアップLUT52でバックアップしている間は、一定のLAAおよびPAAをフラッシュメモリ22に書き込めなくなる。例えばタイムスロット10で電力が喪失すると破線110で示す、一次LUT50を再構築する。一次LUT50は、次の電力ONイベント中に、バックアップLUT52とイベントログ54とに基づいて再構築される。制御モジュール17が、イベントログ54をウォークすることなくフラッシュメモリ22から揮発性メモリ20に、セーブされている部分をアップロードした場合には、結果生じるLUTは、それぞれ異なる時点の入力の組み合わせとなる例えば、FLUSHC、D、Eの入力10、8、12、9、5、6。このLUTは、どのタイムスロットも正確に表していないつまり、LUTはタイムコヒーレントではない。タイムコヒーレントではないLUTは、LUT依存メタデータの再構築プロセスで利用できない。この問題を解決するために、一次LUT50の更新された入力の履歴および/またはフラッシュされた部分の履歴を、イベントログ54経由で維持しておく。制御モジュールは、復元アルゴリズムに基づいてイベントログ54を利用して、タイムコヒーレントに一次LUT50を再構築する。一次LUT50は、一次LUT50を利用する前にLUT依存メタデータを再構築するためにタイムコヒーレント状態に更新される。復元アルゴリズムは、フラッシュメモリ22に格納されていて、電力ONイベント中に揮発性メモリ20にアップロードされてもよいし、および/または、ROM18に格納されてもよい。復元アルゴリズムは、復元モジュール17により実行される。一次LUT50の再構築においては、バックアップLUT52が揮発性メモリ20にアップロードされ、一次LUT50が提供される。バックアップLUT52の各部分は、それぞれ異なるタイムスロットでフラッシュされるので、これら部分は、それぞれ異なる時点のLUTのそれぞれ異なる部分の状態を表している。この結果、一次LUT50は、最初にアップロードされた時点ではタイムコヒーレントではない。一次LUT50の状態をタイムコヒーレント状態に変更するために、制御モジュール17は、イベントログ54にウォーク処理を行い、一次LUT50の入力を更新する。イベントログ54は、フラッシュメモリ22に格納されていてよく、前の変更の順序で、LAA-PAA関連付けの変更を含んでいる。一次LUT50の入力は、イベントログ54に従って変更されるので、電力が喪失する前に入力が更新された順序で変更される。イベントログ54の各入力は、特定のLAAに対して新たなPAAを含む。新たなPAAは、対応するタイムスロットにおいて一次LUT50の対応する更新された状態で示される。図2および図3は、一次LUT入力または非LUT依存メタデータのフラッシュを示している。非LUT依存メタデータに加えて、LUT依存メタデータまたは時変メタデータもまた、SSD14の動作中にフラッシュされる。LUT依存メタデータのフラッシュイベントの例を図5および図6に示す。LUT依存メタデータは、電力喪失後に復元することができ、イベントログ54をウォークすることを含んでよい。イベントログ54はウォーク処理を受けることで揮発性メモリ20のタイムコヒーレントなLUTを構築した後で、LUT依存メタデータを復元することができる。タイムコヒーレントなLUTは、イベントログ54のウォーク処理の開始時間を決定して少なくとも分割部分サイクル全体をアップロードすることで、構築される。制御モジュール17は、開始時間からイベントログをウォーク処理することで、LUT依存メタデータをアップロードする前に、揮発性メモリ20にタイムコヒーレントなLUTを提供する。タイムコヒーレントなLUTは、イベントログ54の少なくとも分割部分サイクル全体にウォーキング処理をしたとき提供される。一例としては、この開示時間がFLUSHCに関連付けられていてよい。イベントログのウォーク処理をFLUSHEに関連付けられている時間まで行うと、一次LUT50をタイムコヒーレントな状態とすることができる。イベントログ54のウォーク処理中に、制御モジュール17は、イベントログ54の入力に基づいて、および/または、バックアップLUT52の分割部分に基づいて、一次LUT50の入力を更新する。一次LUT50の入力は、これら入力がイベントログ54で前に更新された順序で更新される。ひとたびタイムコヒーレントなLUTが構築されると、タイムコヒーレントなLUTが構築された後のイベントログの各入力に基づいてLUT依存メタデータを更新することができる。例えば、タイムコヒーレントなLUTがFLUSHEという時点に構築されたとすると、制御モジュール17は、FLUSHEの後からイベントログ54に対するウォーク処理を続けて、一次LUT入力およびLUT依存メタデータを修正する。図1および図4のLUT状態ダイアグラム150は、分割されたフラッシュサイクル実装のためのタイムコヒーレントなLUT時間を示している。LUT状態ダイアグラム150は、タイムスロット1から14を含む様々な時点における一次LUT50の状態を示している。図示されている一次LUT50は、6個の入力104を含むが、一次LUT50は任意の数の入力を含むことができる。6個の入力それぞれ104には、LAAおよびPAAが関連付けられている。LAAは、番号1から6で表され、テーブルの一列106に示されている。非LUT依存メタデータを、分割されたLUTのフラッシュの助けを得てフラッシュする方法は幾つかある。方法はいずれも、それぞれに一次LUT50の再構築プロセスに影響を及ぼす可能性がある。図4は、6つの入力を有する一次LUTのLUT依存メタデータを復元するためにタイムコヒーレントなLUTを提供するために格納されるLUT分割部分およびイベントログ入力の最大数を示す。LUT依存メタデータがフラッシュイベントの完全なサイクル1つおきにまたは、5個のフラッシュ分割部分ごとに復元される、と仮定すると、イベントログ入力のうち、少なくとも5つの分割されたフラッシュイベントまたは全サイクルの分割部分を二倍したものから1を引いた数がセーブされることになる。言い換えると、FLUSHA-Eという部分は、FLUSHAからFLUSHEの間のタイムスロットにおいて、一次LUT変更を含むフラッシュメモリ22にセーブされる。FLUSHA-Eの後であって、電力が喪失したときのタイムスロットタイムスロット10の前の一次LUTの変更もフラッシュメモリ22にセーブする。5つの分割された入力の格納は、3個の部分を有するLUTテーブルの最悪のケースの例として考えることができよう。分割された入力の数は、LUT依存メタデータが最後にフラッシュされたときに基づいて、5未満であってよい。制御モジュール17は、再構築アルゴリズムおよび/または再構築ファームウェアを利用して、イベントログ54のウォーク処理を開始する開始点としてFLUSHAに戻ることができる。制御モジュール17は、FLUSHAの部分をフラッシュメモリ22から揮発性メモリ20にアップロードしてから、タイムスロット1からイベントログ54にウォーク処理を行い、一次LUT50の入力を修正することができる。FLUSHAは、イベントログの最後または電力が喪失したときから、2つの完全フラッシュサイクル後から1つの分割部分を引いた時となる。フラッシュアルゴリズムは、SSD14の処理中に、フラッシュメモリ22の2つの全サイクルから少なくとも1つの部分を差し引いた分を格納するものであってよい。フラッシュアルゴリズムは、フラッシュメモリ22に格納されていて、電力ONイベント中に揮発性メモリ20にアップロードされてもよいし、および/または、ROM18に格納されてもよい。FLUSHAの部分のアップロードに続いて、制御モジュール17が、イベントログ54のウォーク処理を行って、次の変更タイムスロット1、2におけるLAA2、3からPAA8、7へのアドレス変更の関連付けをロードアップloadupする。次に、イベントログ54内にウォーク処理を行ってタイムスロット4、3におけるLAA1、4からPAA10、9へのアドレス変更の関連付けを見つけて、FLUSHBの部分をアップロードする。各部分がアップロードされ、一次LUT50への変更がイベントログ54に基づいて実行されると、一次LUT50またはRAMの入力が上書きされる。全サイクルを完了するために、一次LUT50のFLUSHCに対する部分を上書きする。この時点では破線152で示されている、一次LUT50がタイムコヒーレントとなっており、10、8、7、9、5、6という入力値を有する。タイムコヒーレントなLUTに基づいてLUT依存メタデータを復元することができる。LUT依存メタデータはさらに、FLUSHCの時点またはFLUSHCに隣接する、またはその後のタイムスロットから始まるイベントログ入力に基づいて更新されてもよい。LUT依存メタデータは、例えばタイムスロット5からタイムスロット10のイベントログ54にウォーク処理を行うことで更新することができる。FLUSHDおよびEの各部分は、イベントログ54の残りにウォーク処理を行って一次LUT50を更新している間は、アップロードされない。例えば、FLUSHDおよびEの各部分は、FLUSHDおよびEの前のタイムスロットに関するイベントログ54から得られたFLUSHDおよびEに関するアドレスとしてはアップロードされない例えばタイムスロット2、3、4、および6が、FLUSHDおよびEに反映させる変更を提供している。この理由から、FLUSHDおよびEをアップロードするという処理は、イベントログ54のウォーク処理と重複する場合がある。LUT依存メタデータが存在しない場合には、電力ONイベント中に、分割部分の完全なフラッシュサイクルを1つだけセーブ、アップロードする。例えばFLUSHC、D、およびEは、タイムスロット10で電力が失われたときには、既に電力ONイベント中に格納、アップロードされていてよい。これにより、一次LUTを再構築するフラッシュ部分の完全なサイクル1つが提供される。FLUSH部分Cより前のフラッシュ部分FLUSHA、Bは、LUT依存メタデータが存在していない場合には不要である。図1および図5のLUT状態ダイアグラム160は、分割されたフラッシュサイクル実装について、非LUT依存のメタデータおよびLUT依存のメタデータのフラッシュタイミングを同期させたLUT状態ダイアグラムである。LUT状態ダイアグラム160は、タイムスロット1-14を含む様々な時点における一次LUT50の状態を示す。一次LUT50は、6つの入力104を含むものとして示されている。6つの入力104それぞれに、LAAとPAAとが関連付けられている。LAAは、番号1から6で表され、テーブルの一列106に示されている。LUT依存メタデータボックス162で示すは、各分割されたフラッシュイベント中にフラッシュされる。LUT依存メタデータをフラッシュイベントごとにフラッシュすることで、制御モジュール17は、一次LUT50の復元中の部分の完全なフラッシュサイクル1つだけ戻って参照することで、タイムコヒーレントなLUTを提供することができる。LUT依存メタデータは、例えばFLUSHEの部分の時点で利用可能となるので、タイムコヒーレントなLUTを構築することができる。タイムコヒーレントなLUTは、FLUSHCからFLUSHEという部分をロードして、FLUSHCからイベントログ54の最後までまたは電源喪失に関連付けられたイベントログ入力までイベント54にウォーク処理を行うことで、構築することが可能である。図1および図6のLUT状態ダイアグラム170は、分割されたフラッシュサイクル実装について、専用の依存メタデータのフラッシュタイミングを示すLUT状態ダイアグラムである。LUT状態ダイアグラム170は、タイムスロット1-14を含む様々な時点における一次LUT50の状態を示す。一次LUT50は、6つの入力104を含むものとして示されている。6つの入力104それぞれに、LAAとPAAとが関連付けられている。LAAは、番号1から6で表され、テーブルの一列106に示されている。図6の実装例は、排他的時間にLUT依存メタデータをフラッシュすることを含んでいるボックス172参照。LUT依存メタデータは、一次LUT50または非LUT依存メタデータの特定のLAAとPAAとのアドレス関連付けまたは、タイムスロット6の行3から6における関連付けがフラッシュされず、一次LUT50の他のLAAとPAAとのアドレス関連付け例えば、タイムスロット6の行1および2における関連付けがフラッシュされたようなとき、フラッシュされてよい。または、非LUT依存メタデータおよびLUT依存メタデータにそれぞれのフラッシュ時間を与えても良い。一例では、非LUT依存メタデータを、LUT依存メタデータのフラッシュ前または後にフラッシュしてもよい。非LUT依存メタデータまたはLUT依存メタデータに専用のフラッシュ時間を与えることにより、各フラッシュを行う時間が低減される。示した実装例では、制御モジュール17が、再構築アルゴリズムを利用してFLUSHAの部分から一次LUT50の再構築を始めることで、FLUSHDによりタイムコヒーレントなLUTが構築される。これにより、FLUSHDの時点から始まるLUT依存メタデータを再構築するためのタイムコヒーレントなLUTが提供される。FLUSHDは、電力または電力サイクルが喪失してから一番最近に行ったLUT依存メタデータのフラッシュのことである。別の実装例では、LUT依存メタデータがフラッシュメモリ22に存在しているとき、LFUSHA-Cの各部分が、同じ期間および/または同時にアップロードされてよい。イベントログ54は、FLUSHAの時点であって、FLUSHA-Cの部分のアップロードの後に、ウォーク処理を行われて良い。一次LUTは、部分FLUSHA-Cをアップロードした当初は不正確であるかもしれないが、イベントログ54のウォーク処理によって、FLUSHCの時点からタイムコヒーレントなLUTが提供され、一次LUT50の入力が補正されて、タイムスロット10で復元されたLUTが提供される。イベントログ54は、上述したように、特定の時間の論理-物理アドレスマッピングに対する変更を含んでいる。イベントログのウォーク処理には、イベントログ54の入力で、一次LUT50の入力を更新するまたは置き換えることが含まれる。LUT依存メタデータの値は、一次LUT50における更新された入力に基づいて更新されてよい。更新された値には、ユーザデータおよび/またはシステムデータ、データ記述子、不良情報、メモリブロック内のデータ量等へのポインタを含む。時間およびリソースを節約するための別の実装例として、一次LUT50を再構築するときにイベントログの入力を省く、というものがある。例えば図6では、FLUSHAの部分のアップロードの後に、タイムスロット1の変更を省いてもよい。FLUSHBの部分のアップロードによってLAA3が上書きされ、PAAが3から7に変更されるので、タイムスロット1に関する変更は省くことができる。別の例として、枠で囲った領域180も省くことができるが、これは、この部分がFLUSHBおよびFLUSHCにより説明がつくからである。電力損失前であってLUT依存メタデータを最後にフラッシュしたとき以降に更新されたイベントログ入力は、省くことができない。例えばタイムスロット7-10中に更新されたイベントログ入力を省くことができないが、これは、LUT依存メタデータが、タイムスロット7-10それぞれにおける一次LUT50の変更に基づいて更新されることがあるからである。これらイベントログ入力のいずれかを省いた場合、結果生じるLUT依存メタデータが全ての変更を反映せず、不正確になる場合がある。図1のデータ格納システム10は、幾つもの方法で実行することが可能であり、例示的な方法として図7および図8の方法が挙げられる。図7は、LUTを更新、バックアップする方法を示している。以下の処理は、主に図1、および図5-図6を参照して説明されるが、処理を変更して、本開示の他の実装例に応用することも容易である。処理は繰り返し実行することができる。方法は200から始まる。204で、制御モジュール17は、LUTフラッシュ時間を決定する。LUTフラッシュ時間とは、バックアップLUT52に一次LUT50の一部分を次にフラッシュする時間のことであってよい。制御モジュール17は、定期的なフラッシュ間隔またはフラッシュ期間に基づいてフラッシュ時間を決定することができる。フラッシュ期間とは、分割されたフラッシュイベントの間の時間のことを指す。フラッシュ時間および/またはフラッシュ期間は、完全なフラッシュサイクル1つにおけるLUTの分割部分の数、起動復元時間、最大ホスト待ち時間等に基づいて決定されてよい。起動復元時間とは、電源が喪失した後であって、電力ONイベント中に、一次LUT50を復元する時間のことである。フラッシュ期間が長くなると、一次LUT50を復元するためにイベントログ54にセーブする入力数も多くなる。一次LUT50を復元するために処理が必要なイベントログ54の入力数が増えると、起動復元時間も長くなる。さらに、フラッシュ期間が長くなると、フラッシュを行う機会が減る。フラッシュを行う頻度が少なくなると、一回のフラッシュイベントにフラッシュする一次LUT50の入力数が増えたり、および/または、一次LUT50を復元するために処理するイベントログ54の入力数が増えたりする。1つのフラッシュイベント中にフラッシュする一次LUT50の入力数が多くなると、あるフラッシュイベント中に生じうるホスト待ち時間または、ホストが停止する時間も長くなる。204では、LUT依存メタデータのフラッシュ時間および/またはフラッシュ期間も決定されてよい。LUT依存メタデータのフラッシュ時間および/またはフラッシュ期間は、非LUT依存メタデータのフラッシュ時間および/またはフラッシュ期間に基づいて決定されてよい。例えば、LUT依存メタデータのフラッシュ時間は、非LUT依存メタデータのフラッシュ時間と同じに設定されても、異なるように設定されてもよい。206で、制御モジュール17は、処理208の前に、非LUT依存メタデータのフラッシュ期間および/またはLUT依存メタデータのフラッシュ期間を待ってよい。208で、制御モジュール17は、フラッシュする1以上のLUT部分、および/または、LUT依存メタデータをフラッシュするか否か、を判断してよい。制御モジュール17は、一定の順序で一次LUT50の各部分を循環してよく、前にフラッシュした部分に基づいて次にフラッシュする部分を決定してよい。210で、制御モジュール17は、選択した部分および/またはLUT依存メタデータをフラッシュする。LUT依存メタデータは、図5に示すように、非LUT依存メタデータがフラッシュされたときにフラッシュされてよい。212で、図6の実装例に基づいて、制御モジュール17は、一次LUT50の全ての部分がフラッシュされたかを判断する。処理214は、全ての部分のフラッシュが終了したところで実行され、さもなくば処理220が実行される。処理214で、制御モジュール17は、フラッシュすべきLUT依存メタデータがあるかを判断する。処理216は、フラッシュすべきLUT依存メタデータがあるときに行われ、ないときには処理220が実行される。216で、制御モジュール17は、処理218の前にLUT依存メタデータのフラッシュ期間を待つ。処理218では、LUT依存メタデータをフラッシュする。220で、制御モジュール17は、電力停止要求があるかを判断する。処理222は、電力停止要求を受けたときに実行され、受けていない場合には制御モジュール17は処理204に戻る。222で、電力停止イベント前に、LUT部分全てを揮発性メモリ20からフラッシュメモリ22にフラッシュして、バックアップLUT52を更新する。224で、SSD14の電力をOFFにする。方法は226で終了してよい。図8は、LUTを復元する方法を示す。以下の処理は、図1、図5から図6の実装に関するものであるが、これら処理は本開示の他の実装例に利用可能なように変更することも容易である。処理は繰り返し実行することができる。方法は300から始まる。302で、SDD14の電源をONにする。304で、制御モジュール17は、SSD14の電力が正常に停止されたかを判断する。SSD14は、SSD14の電源停止前に一次LUT50全体のフラッシュメモリ52へのフラッシュダウンロードが完了して、ダウンロードの後に一次LUTになんら変更がなかったときに、正常に停止されたと判断する。制御モジュール17は、イベントログ54の入力の、バックアップLUT52の入力との比較に基づいて、正常な電力停止が行われたかを判断する。例えば、イベントログ54の最後の所定数の入力例えばフラッシュされた部分の完全な1サイクルに関連付けられている入力数が、バックアップLUT52に反映されているとき、SSD14の正常な電源停止が行われたということでよい。処理306は、SSD14が正常電力停止したときに行われ、さもなくば処理310が実行される。306で、制御モジュール17は、非LUT依存メタデータおよびLUT依存メタデータを、フラッシュメモリ22から揮発性メモリ20にアップロードする。方法は308で終了してよい。310で、制御モジュール17は、LUT依存メタエータが存在しているかを判断する。処理312は、LUT依存メタデータがないときに実行され、あるときには処理320を実行する。312で、制御モジュール17は、バックアップLUT52の第1の部分をアップロードして、第1アップロード部分が最後にフラッシュされた時点からイベントログ54のウォーク処理を開始する。第1の部分とは、イベントログ54の最後から、少なくとも完全な1つのフラッシュサイクル分前の部分のこととする。313で、アップロードタイマ60は、イベントログ54の現在の入力を指し示すために設定、または利用されてよい。アップロードタイマ60の最初のアップロード時間は、第1の部分の時間および/または、第1の部分に隣接する、またはその後のタイムスロットに対応していてよい。314で、一次LUT50の論理-物理アドレス関連付けを、アップロード時間について、イベントログ54に基づいて更新する、および/または、次のLUT部分を、フラッシュメモリ22から揮発性メモリ20にアップロードする。316で、制御モジュール17は、イベントログ54の最後に到達したかを判断する。イベントログ54の最後に到達していない場合には、処理317を実行し、到達した場合には、処理318を実行する。317で、アップロード時間を増分して、次のタイムスロットまたはフラッシュ部分の時間を参照させるようにする。処理320で、制御モジュール17は、電力が喪失する前に最後にLUT依存メタデータがフラッシュされた時間またはタイムスロットを判断する。この時点は、最後の依存メタデータタイムスロットとして称される場合がある。322で、制御モジュール17は、最後の依存メタデータタイムスロットの前の、少なくとも完全なフラッシュサイクル1つ分であるタイムスロットを決定する。このタイムスロットは、完全なフラッシュサイクルタイムスロットと称される場合がある。324で、制御モジュール17は、完全なフラッシュサイクルタイムスロットの前の最初の部分をアップロードして、完全なフラッシュサイクルタイムスロットでイベントログ54のウォーク処理を始めてよい。325で、アップロードタイマ60を利用、セットすることで、イベントログ54の現在の入力を指し示す。アップロードタイマ60の最初のアップロード時間は、第1の部分の時間および/または第1の部分に隣接する、またはその後のタイムスロットに対応していてよい。326で、一次LUT50の論理-物理アドレス関連付けを、アップロード時間について、イベントログ54に基づいて更新する、および/または、次のLUT部分を、フラッシュメモリ22から揮発性メモリ20にアップロードする。328で、制御モジュール17は、複数の部分からなる完全なサイクル1つをアップロードしたかを判断する。処理327は、部分の完全なサイクル1つがアップロードされていない場合に行われ、アップロードされている場合には処理320が実行される。タイムコヒーレントなLUTは、部分の完全なサイクル1つがアップロードされ、制御モジュール17が第1の部分から、部分の完全なサイクル1つまで、イベントログ54にウォーク処理を行ったところで、揮発性メモリ20に存在することになる。例えば図6では、第1の部分がFLUSHAに関連付けられていてよく、最後の部分がFLUSHCに関連付けられていてよい。FLUSHAの時点からFLUSHCの時点までイベントログ54にウォーク処理を行った結果得られる一次LUT50がタイムコヒーレントなLUTとなる。330で、LUT依存メタデータを、タイムコヒーレントなLUTに基づいてアップロードする。332で、制御モジュール17は、イベントログ54の最後に到達したかを判断する。処理334は、イベントログ54の最後に到達していないときに実行され、到達した場合には方法は336で終了してよい。334で、制御モジュール17は、一次LUT50内の論理-物理アドレス関連付けを、イベントログ54に基づいて更新して、および/または、イベントログ54に基づいてLUT依存メタデータを更新する。335で、アップロードタイマ60を増分する。図7および図8における上述した処理は、例示を意図しており、処理は、連続して実行してもよいし、同期させてもよいし、同時に行っても良いし、重複する期間に継続実行も可能であり、用途に応じては別の順序で行うこともできる。上述した実装例により、RAMにLUTが格納される。LUTのデータは、電力が失われると消去され、および/または、失われる。LUTのデータを復元するために、上述した実装例は、不揮発性メモリにバックアップLUTおよびイベントログを維持する。バックアップLUTは、電力が失われる前に定期的に更新されてよい。LUTは、バックアップLUTおよびイベントログに基づいてRAMに復元される。LUTは、イベントログにウォーク処理を行うことで電力喪失前にLUTの最新の状態でRAMに復元される。これにより、LUTのバックアップを取る間に不揮発性メモリにデータを書き込むことに関するホスト待ち時間を最小限にすることができる。LUTに対するバックアップおよび復元に加えて、他のメタデータLUT依存メタデータをバックアップして復元することもできる。本開示について広義の教義を様々な形態で実装することができる。従って、本開示では特定の例が含まれているとしても、本開示の真の範囲は、これに限定はされず、他の変形例も図面、明細書、および以下の請求項を読むことで明らかとなる。