(57)【特許請求の範囲】
【請求項１】
揮発性半導体記憶素子と、
不揮発性半導体記憶素子と、
前記揮発性半導体記憶素子と前記不揮発性半導体記憶素子との間のデータ転送を制御するコントローラと、を備え、
前記コントローラは、
前記不揮発性半導体記憶素子に当該メモリシステム内部の動作状態に関する統計情報を含む第１の内部情報を書き込み、
前記揮発性半導体記憶素子内の管理情報保存領域に含まれる内部情報領域に前記第１の内部情報と同一内容である第２の内部情報を書き込み、
所定の条件が成立した場合に、前記管理情報保存領域に含まれるデータをスナップショットとして前記不揮発性半導体記憶素子に保存し、
起動時に前記不揮発性半導体記憶素子から前記スナップショットを読み出して前記管理情報保存領域に復元し、
前記不揮発性半導体記憶素子から前記第１の内部情報の読み出しが失敗した場合に、前記スナップショットから取得した前記第２の内部情報によって前記内部情報領域を初期化し、
前記不揮発性半導体記憶素子から前記第１の内部情報の読み出しが成功した場合に、前記不揮発性半導体記憶素子から取得した前記第１の内部情報によって前記内部情報領域を初期化する、
ことを特徴とするメモリシステム。
【請求項２】
前記コントローラは、
前記揮発性半導体記憶素子および前記不揮発性半導体記憶素子の少なくとも一方に書き込まれたデータの格納位置を含む管理情報を前記管理情報保存領域に含まれる管理情報領域に書き込み、
前記所定の条件が成立した場合に、前記管理情報保存領域に含まれる前記管理情報および前記第２の内部情報を、前記スナップショットとして前記不揮発性半導体記憶素子に保存する、
ことを特徴とする請求項１に記載のメモリシステム。
【請求項３】
前記コントローラは、前記統計情報として、更に、当該メモリシステム内での警告イベント履歴および時刻情報の少なくとも一方を管理することを特徴とする請求項１に記載のメモリシステム。
【請求項４】
前記コントローラは、前記統計情報が更新される場合に、前記第１の内部情報を前記不揮発性半導体記憶素子に書き込み、前記第２の内部情報を前記管理情報保存領域に書き込むことを特徴とする請求項１に記載のメモリシステム。
【請求項５】
前記コントローラは、前記統計情報の更新量が所定量を超えた場合に、前記第１の内部情報を前記不揮発性半導体記憶素子に書き込み、前記第２の内部情報を前記管理情報保存領域に書き込むことを特徴とする請求項１に記載のメモリシステム。
【請求項６】
前記コントローラは、前記統計情報の重要度に応じたタイミングで、前記第１の内部情報を前記不揮発性半導体記憶素子に書き込み、前記第２の内部情報を前記管理情報保存領域に書き込むことを特徴とする請求項１に記載のメモリシステム。
【請求項７】
前記コントローラは、前記管理情報の更新差分であるログの記憶量が所定量を超えた場合に、前記管理情報保存領域に含まれる前記管理情報および前記第２の内部情報を前記スナップショットとして前記不揮発性半導体記憶素子に保存することを特徴とする請求項２に記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性半導体記憶装置を用いて構成されるメモリシステムに関する。
【背景技術】
【０００２】
ハードディスク装置を２次記憶装置として用いたパーソナルコンピュータにおいては、ハードディスク装置に格納されるデータが何らかの障害によって無効なデータとなってしまうことを防ぐためにバックアップをとる技術が知られている。たとえば、ハードディスク装置中のデータの変更を検出すると、そのデータの変更前のバックアップコピーであるスナップショットをとり、そのデータに対する更新を記録したログをとる。その後、所定の時間ごとにスナップショットをとるとともに、スナップショットをとる前の過去のログを無効にし、新しいログを生成するという処理が繰り返し行われる（たとえば、特許文献１参照）。そして、データが無効になってしまった場合には、スナップショットとログを基にそのデータを復元することができる。
【０００３】
ところで、近年では、不揮発性半導体記憶装置であるＮＡＮＤ型フラッシュメモリの大容量化が進行し、このＮＡＮＤ型フラッシュメモリを有するメモリシステムを２次記憶装置とするパーソナルコンピュータが製品化されている。このような、パーソナルコンピュータでは、ＮＡＮＤ型フラッシュメモリが、ホスト装置からのコマンド（Readコマンド／Writeコマンドなど）によってアクセス可能な領域と、ホスト装置から発出される通常のコマンドではアクセスすることができない特殊領域（メモリシステムの内部に展開されるファームウェアを構成するモジュールが発出するコマンドによってアクセスできる領域）とを有している。
【０００４】
ＮＡＮＤ型フラッシュメモリ内の領域のうち、特殊領域には、例えば警告イベントの履歴などの重要な情報が格納される。そして、メモリシステムが電源ＯＮした際などには、メモリシステムの初期化処理として、特殊領域内の情報が読み出されて、電源ＯＦＦされた際のメモリシステムの状態に関する情報（管理情報）をメモリシステム上で復元する。
【０００５】
しかしながら、メモリシステムの初期化処理を行なう際、特殊領域に保存しておいたデータが何らかのエラーなどによって読み出せなかった場合には、メモリシステムが電源ＯＦＦされた際の管理情報をメモリシステム上で復元することはできず、管理情報の復元処理の信頼性が低いという問題があった。
【０００６】
【特許文献１】米国特許出願公開第２００６／０２２４６３６号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、メモリシステムの初期化処理を行なう際の管理情報の復元の信頼性を向上させることができるメモリシステムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一態様によれば、揮発性半導体記憶素子と、不揮発性半導体記憶素子と、前記揮発性半導体記憶素子と前記不揮発性半導体記憶素子との間のデータ転送を制御するコントローラと、を備え、前記コントローラは、前記不揮発性半導体記憶素子に当該メモリシステム内部の動作状態に関する統計情報を含む第１の内部情報を書き込み、前記揮発性半導体記憶素子内の管理情報保存領域に含まれる内部情報領域に前記第１の内部情報と同一内容である第２の内部情報を書き込み、所定の条件が成立した場合に、前記管理情報保存領域に含まれるデータをスナップショットとして前記不揮発性半導体記憶素子に保存し、起動時に前記不揮発性半導体記憶素子から前記スナップショットを読み出して前記管理情報保存領域に復元し、前記不揮発性半導体記憶素子から前記第１の内部情報の読み出しが失敗した場合に、前記スナップショットから取得した前記第２の内部情報によって前記内部情報領域を初期化し、前記不揮発性半導体記憶素子から前記第１の内部情報の読み出しが成功した場合に、前記不揮発性半導体記憶素子から取得した前記第１の内部情報によって前記内部情報領域を初期化する、ことを特徴とするメモリシステム、が提供される。 
【発明の効果】
【０００９】
本発明によれば、メモリシステムの初期化処理を行なう際の管理情報の復元の信頼性を向上させることができるという効果を奏する。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施形態について添付図面を参照して説明する。以下の説明において、同一の機能及び構成を有する要素については、同一符号を付し、重複説明は必要な場合にのみ行う。なお、以下の実施形態により本発明が限定されるものではない。
【００１１】
（実施の形態）
このメモリシステムは、不揮発性半導体記憶装置を含み、たとえば、パーソナルコンピュータなどのホスト装置の２次記憶装置（ＳＳＤ：Solid  State  Drive）として使用され、ホスト装置から書込要求を出されたデータを記憶し、またホスト装置から読出要求のあったデータを読み出してホスト装置に出力する機能を有する。図１は、本発明の実施の形態にかかるメモリシステムの構成の一例を示すブロック図である。このメモリシステム１０は、第１の記憶部としてのＤＲＡＭ（Dynamic  Random  Access  Memory）１１と、第２の記憶部としてのＮＡＮＤ型フラッシュメモリ（以下、ＮＡＮＤメモリという）１２と、電源回路１３と、コントローラとしてのドライブ制御部１４と、を備える。
【００１２】
ＤＲＡＭ１１は、データ転送用、管理情報記録用または作業領域用の記憶部として使用される。具体的には、データ転送用の記憶部としては、ホスト装置から書込要求があったデータをＮＡＮＤメモリ１２に書き込む前に一時的に保存したり、ホスト装置から読出要求があったデータをＮＡＮＤメモリ１２から読み出して一時的に保存したりするために使用される。また、管理情報記録用の記憶部としては、ＤＲＡＭ１１およびＮＡＮＤメモリ１２に記憶されるデータの格納位置を管理するための管理情報を格納するために使用される。さらに、作業領域用の記憶部としては、管理情報を復元する際に用いるログの展開時などに使用される。
【００１３】
ＮＡＮＤメモリ１２は、データ保存用の記憶部として使用される。具体的には、ホスト装置側によって指定されたデータを記憶したり、ＤＲＡＭ１１で管理される管理情報をバックアップ用に記憶したりする。この図１では、ＮＡＮＤメモリ１２が４つのチャネル１２０Ａ〜１２０Ｄによって構成されている場合が示されている。１つのチャネル１２０Ａ〜１２０Ｄは、所定のサイズの記憶容量を有する８個のチップ１２２が１つにまとめられたパッケージ１２１を２つ含んでいる。また、各チャネル１２０Ａ〜１２０Ｄは、ドライブ制御部１４とバス１５を介して接続されている。
【００１４】
電源回路１３は、外部電源を受け、この外部電源を用いてメモリシステム１０の各部に供給するための複数の内部電源を生成する。また、電源回路１３は、外部電源の立ち上がりまたは立ち下りを検知して、パワーオンリセット信号を生成する。このパワーオンリセット信号は、ドライブ制御部１４に送られる。
【００１５】
ドライブ制御部１４は、ＤＲＡＭ１１とＮＡＮＤメモリ１２を制御する。詳細は後述するが、たとえば、電源回路１３からのパワーオンリセット信号に応じて、管理情報の復元処理や管理情報の保存処理を行う。また、ドライブ制御部１４は、ＡＴＡインタフェース（図中では、ＡＴＡ  Ｉ／Ｆと表記）を介して、ホスト装置との間でデータを送受信し、ＲＳ２３２Ｃインタフェース（図中では、ＲＳ２３２Ｃ  Ｉ／Ｆと表記）を介して、デバッグ用機器との間でデータを送受信する。さらに、ドライブ制御部１４は、メモリシステム１０の外部に設けられる状態表示用ＬＥＤを制御するための制御信号を出力する。
【００１６】
ここで、ＮＡＮＤメモリ１２の構成について説明する。ＮＡＮＤメモリ１２は、データ消去の単位であるブロックを基板上に複数配列して構成される。図２は、ＮＡＮＤメモリに含まれる１個のブロックの構成の一例を示す回路図である。なお、この図２において、紙面上の左右方向をＸ方向とし、紙面上のＸ方向に垂直な方向をＹ方向としている。
【００１７】
ＮＡＮＤメモリ１２の各ブロックＢＬＫは、Ｘ方向に沿って順に配列された（ｍ＋１）個（ｍは０以上の整数）のＮＡＮＤストリングＮＳを備えている。各ＮＡＮＤストリングＮＳは、Ｙ方向に隣接するメモリセルトランジスタＭＴ間で拡散領域（ソース領域またはドレイン領域）を共有してＹ方向に直列に接続された（ｎ＋１）個（ｎは０以上の整数）のメモリセルトランジスタＭＴ０〜ＭＴｎと、この（ｎ＋１）個のメモリセルトランジスタＭＴ０〜ＭＴｎの列の両端に配置される選択トランジスタＳＴ１，ＳＴ２と、を有する。
【００１８】
各メモリセルトランジスタＭＴ０〜ＭＴｎは、半導体基板上に形成された積層ゲート構造を有するＭＯＳＦＥＴ（Metal  Oxide  Semiconductor  Field  Effect  Transistor）から構成される。ここで、積層ゲート構造には、半導体基板上にゲート絶縁膜を介在して形成された電荷蓄積層（浮遊ゲート電極）と、この電荷蓄積層上にゲート間絶縁膜を介在して形成された制御ゲート電極と、が含まれる。メモリセルトランジスタＭＴ０〜ＭＴｎは、浮遊ゲート電極に蓄えられる電子の数に応じて閾値電圧が変化し、この閾値電圧の違いに応じて２ビット以上のデータを記憶することができる多値メモリである。なお、以下に示す実施の形態では、メモリセルトランジスタＭＴはこの多値メモリである場合を例に挙げて説明するが、１ビット（２値）を記憶するように構成した構造であってもよい。
【００１９】
ＮＡＮＤストリングＮＳを構成するメモリセルトランジスタＭＴ０〜ＭＴｎの制御ゲート電極には、それぞれワード線ＷＬ０〜ＷＬｎが接続されており、また各ＮＡＮＤストリングＮＳ中のメモリセルトランジスタＭＴｉ（ｉ＝０〜ｎ）間は、同一のワード線ＷＬｉ（ｉ＝０〜ｎ）によって共通接続されている。つまり、ブロックＢＬＫ内において同一行にあるメモリセルトランジスタＭＴｉの制御ゲート電極は、同一のワード線ＷＬｉに接続される。この同一のワード線ＷＬｉに接続される（ｍ＋１）個のメモリセルトランジスタＭＴｉの列は１ページとして取り扱われ、ＮＡＮＤメモリ１２では、このページ単位でデータの書き込みと読み出しが行われる。
【００２０】
１つのブロックＢＬＫ内の（ｍ＋１）個の選択トランジスタＳＴ１のドレインにはそれぞれビット線ＢＬ０〜ＢＬｍが接続され、ゲートには選択ゲート線ＳＧＤが共通接続されている。また、選択トランジスタＳＴ１のソースはメモリセルトランジスタＭＴ０のドレインと接続されている。同様に、１つのブロックＢＬＫ内の（ｍ＋１）個の選択トランジスタＳＴ２のソースにはソース線ＳＬが共通接続され、ゲートには選択ゲート線ＳＧＳが共通接続されている。また、選択トランジスタＳＴ２のドレインはメモリセルトランジスタＭＴｎのソースと接続されている。
【００２１】
なお、図示されていないが、１つのブロックＢＬＫ内のビット線ＢＬｊ（ｊ＝０〜ｍ）は、他のブロックＢＬＫのビット線ＢＬｊとの間で、選択トランジスタＳＴ１のドレインを共通に接続している。つまり、複数のブロックＢＬＫ内において同一列にあるＮＡＮＤストリングＮＳ間は、同一のビット線ＢＬｊによって接続される。また、本実施形態では、ＮＡＮＤメモリ１２へのデータの書き込みは追記方式（シーケンシャル方式）で行われる。
【００２２】
ＮＡＮＤメモリ１２では、上記したように、書込／読出の最小単位が同一のワード線ＷＬｉに接続されたメモリセルトランジスタＭＴｉ群内の１つのページであり、消去の最小単位が所定の数のページからなる１つのブロック（以下、物理ブロックともいう）である。また、このブロックが複数集まってプレーンを構成し、プレーンが複数集まって１つのチャネル対応記憶領域１２０Ａ〜１２０Ｄを構成する。そして、このチャネル対応記憶領域１２０Ａ〜１２０Ｄが複数集まって、１つのＮＡＮＤメモリ１２が構成される。以下の例では、チャネル数が４であり、プレーン数が２であるものとする。
【００２３】
このメモリシステムにおいては、チャネル対応記憶領域１２０Ａ〜１２０Ｄが複数並列してドライブ制御部１４に接続される構成となっているため、複数チャネルを並行して動作させたり、１チャネルのみを動作させたりすることが可能である。
【００２４】
なお、ドライブ制御部１４の設定によって、所定の数の物理ブロックを単位として書込／読出処理を行ったり、消去を行ったりする場合があるが、この場合の所定の数の物理ブロックの集まりを論理ブロックというものとする。
【００２５】
つぎに、ＤＲＡＭ１１とＮＡＮＤメモリ１２の機能構成について説明する。図３は、ＤＲＡＭとＮＡＮＤメモリの機能構成を模式的に示す図であり、（ａ）はＤＲＡＭ１１の機能構成を示し、（ｂ）はＮＡＮＤメモリ１２の機能構成を示している。
【００２６】
図３（ａ）に示されるように、ＤＲＡＭ１１は、ホスト装置から書込要求のあったデータを記憶するライトキャッシュ領域ＷＣと、ホスト装置から読出要求のあったデータを記憶するリードキャッシュ領域ＲＣと、ＤＲＡＭ１１およびＮＡＮＤメモリ１２に記憶されるデータの格納位置を管理するための管理情報を記憶する管理情報格納領域（一時記憶領域）１１１と、管理情報を復元する際に使用される作業領域１１２と、を有する。
【００２７】
図３（ｂ）に示されるように、ＮＡＮＤメモリ１２は、ホスト装置から書込要求のあったデータを格納するデータ格納領域１２５と、ＤＲＡＭ１１の管理情報格納領域１１１で管理される管理情報を保存する管理情報保存領域１２６と、を有する。この例では、ＮＡＮＤメモリ１２でのデータの書込／読出単位をページサイズ単位とし、消去の単位をブロックサイズ単位（たとえば５１２ＫＢ単位）とするものとする。そのため、ブロックサイズ単位で管理されるＮＡＮＤメモリ１２の各ブロックを記憶するための領域を、さらにページサイズ単位の領域に分割する。このとき、ページサイズを４ＫＢとし、ブロックサイズを５１２ＫＢとすると、１ブロック内には１２８個のページが形成される。
【００２８】
ここで、ＤＲＡＭ１１の管理情報格納領域１１１で管理される管理情報について説明する。図４は、メモリシステムで記憶されるデータを管理する層構造の一例を示す図である。なお、ここで、データとは、ホスト装置から書込要求／読出要求のあったデータのことをいうものとする。このメモリシステム１０では、キャッシュの役割をするＤＲＡＭ１１でのデータ管理を行うＤＲＡＭ管理層３１と、ＮＡＮＤメモリ１２での論理的なデータ管理を行う論理ＮＡＮＤ管理層３２と、ＮＡＮＤメモリ１２での物理的なデータ管理やＮＡＮＤメモリ１２の延命処理などを行う物理ＮＡＮＤ管理層３３の３層構造でデータ管理が行われる。
【００２９】
ＤＲＡＭ１１のライトキャッシュ領域ＷＣとリードキャッシュ領域ＲＣでは、ホスト装置のアドレス管理方法によって管理される論理アドレス（以下、ＬＢＡ（Logical  Block  Address）という）で指定されたデータを、ＤＲＡＭ１１上の所定の範囲の物理アドレス（以下、ＤＲＡＭ内物理アドレスという）に記憶する。また、ＤＲＡＭ管理層３１内でのデータは、格納されるデータのＬＢＡとＤＲＡＭ内物理アドレスとの対応関係と、ページ中のセクタサイズ単位のデータの有無を示すセクタフラグと、を含むキャッシュ管理情報４１によって管理される。
【００３０】
図５は、キャッシュ管理情報テーブルの一例を示す図である。ここでは、キャッシュ管理情報４１は、ＤＲＡＭ１１の１ページサイズの領域１つに対して１エントリとし、エントリ数はライトキャッシュ領域ＷＣとリードキャッシュ領域ＲＣに収まるページ数以下とする。各エントリには、ページサイズのデータのＬＢＡと、ＤＲＡＭ内物理アドレスと、このページをセクタサイズで分割した各領域における有効データの位置を示すセクタフラグと、が関連付けられている。
【００３１】
ＮＡＮＤメモリ１２では、ＤＲＡＭ１１から受け取ったデータをＮＡＮＤメモリ１２上の所定の範囲の物理アドレス（以下、ＮＡＮＤ内物理アドレスという）に格納するが、上記したように、ＮＡＮＤメモリ１２では、データの書込／読出はページ単位で行われ、データの消去はブロック単位で行われる。また、多値メモリからなるＮＡＮＤメモリ１２では、書換可能回数に制約があるため、ＮＡＮＤメモリ１２を構成する各ブロック間での書換回数が均等化するようにドライブ制御部１４で制御されている。つまり、ドライブ制御部１４は、ＮＡＮＤメモリ１２内のあるＮＡＮＤ内物理アドレスに書き込まれたデータの更新を行う場合に、そのデータが含まれるブロックのうち更新が必要な部分を反映させたデータを、元のブロックとは異なるブロックに書き込み、元のブロックは無効化するようにして、ＮＡＮＤメモリ１２を構成するブロック間での書換回数が均等化するように制御している。
【００３２】
このように、ＮＡＮＤメモリ１２では、データの書込／読出処理と消去処理とでは処理単位が異なるとともに、データの更新処理においては、更新前のデータの位置（ブロック）と更新後のデータの位置（ブロック）とが異なるため、この実施の形態では、ＮＡＮＤ内物理アドレスのほかにＮＡＮＤメモリ１２内で独自に使用されるＮＡＮＤ内論理アドレス（以下、ＮＡＮＤ内論理アドレスという）を設けることにする。
【００３３】
そこで、論理ＮＡＮＤ管理層３２内でのデータは、ＤＲＡＭ１１から受け取ったページサイズ単位のデータのＬＢＡと、受け取ったデータを格納するＮＡＮＤメモリ１２の論理的なページ位置を示すＮＡＮＤ内論理アドレスとの間の関係と、ＮＡＮＤメモリ１２における消去単位のブロックとサイズが一致する論理的なブロック（以下、論理ブロックという）のアドレス範囲を示す関係と、を示す論理ＮＡＮＤ管理情報４２によって管理される。なお、この論理ブロックを複数まとめたものを論理ブロックとしてもよい。また、物理ＮＡＮＤ管理層３３でのデータは、ＮＡＮＤメモリ１２におけるＮＡＮＤ内論理アドレスとＮＡＮＤ内物理アドレスとの対応関係を含むＮＡＮＤ内論物変換情報４３によって管理される。
【００３４】
図６は、論理ＮＡＮＤ管理情報テーブルの一例を示す図であり、図７は、ＮＡＮＤ内論理アドレス−物理アドレス変換情報（以下、論物変換情報という）テーブルの一例を示す図である。図６に示されるように、論理ＮＡＮＤ管理情報４２は、論理ページ管理情報４２ａと論理ブロック管理情報４２ｂとを含む。論理ページ管理情報４２ａは、１ページサイズの論理的な領域１つに対して１エントリとし、各エントリには、１ページサイズのデータのＬＢＡと、ＮＡＮＤ内論理アドレスと、このページが有効か否かを示すページフラグと、を含む。また、論理ブロック管理情報４２ｂは、ＮＡＮＤメモリ１２の１ブロックサイズの論理的な領域に対して設定されるＮＡＮＤ内論理アドレスを含む。また、図７に示されるように、ＮＡＮＤ内論物変換情報４３は、ＮＡＮＤメモリ１２のＮＡＮＤ内物理アドレスとＮＡＮＤ内論理アドレスとが対応付けられている。
【００３５】
これらの管理情報によって、ホスト装置で使用されるＬＢＡと、ＮＡＮＤメモリ１２で使用されるＮＡＮＤ内論理アドレスと、ＮＡＮＤメモリ１２で使用されるＮＡＮＤ内物理アドレスとの間を対応付けることができ、ホスト装置と当該メモリシステム１０との間のデータのやり取りを行うことが可能となる。
【００３６】
なお、以下では、ＤＲＡＭ管理層３１で管理される管理情報は、電源オフなどによって消失するので、揮発性テーブルともいい、論理ＮＡＮＤ管理層３２および物理ＮＡＮＤ管理層３３で管理される管理情報は、電源オフなどによって消失した際にメモリシステム１０の次回起動時に支障を与え、保存しておくことが必要なので、不揮発性テーブルともいう。
【００３７】
この不揮発性テーブルは、ＮＡＮＤメモリ１２に格納されているデータを管理するものであり、この不揮発性テーブルがなければＮＡＮＤメモリ１２に格納されている情報にアクセスできなかったり、既に記憶した領域内のデータを消してしまったりするので、不意の電源オフなどに備えて最新の情報に保存しておく必要がある。そのため、この実施の形態では、ＮＡＮＤメモリ１２の管理情報保存領域１２６には、少なくとも不揮発性テーブルを含む管理情報を最新の状態で保存している。そこでつぎに、ＮＡＮＤメモリ１２の管理情報保存領域１２６に保存される管理情報保存情報について説明する。なお、以下では、不揮発性テーブルのみを管理情報保存領域１２６に保存する場合を例に挙げる。
【００３８】
図８は、管理情報保存領域１２６に記憶される管理情報保存情報の内容の一例を模式的に示す図である。この管理情報保存情報２００には、ある時点における不揮発性テーブルの内容であるスナップショット２１０と、不揮発性テーブルの内容に変化があった場合に内容を変更した後の不揮発性テーブルとスナップショット２１０（またはスナップショット２１０と既に取られたログ）との差分情報であるログ２２０と、スナップショット２１０とこのスナップショット２１０に関する一番目に取得されたログ２２０の位置を示す管理情報位置指示情報（以下ポインタと呼ぶ）２３０と、が格納される。ここで、スナップショット２１０とは、ＤＲＡＭ１１の管理情報格納領域１１１に記憶される管理情報のうち、少なくとも不揮発性テーブルを含む管理情報を所定の時点で保存した情報のことをいう。
【００３９】
この図８において、スナップショット２１０、ログ２２０およびポインタ２３０は、それぞれ異なるブロックに格納される。スナップショット２１０は、スナップショット格納用ブロックに格納される。スナップショット２１０には、ＮＡＮＤメモリ１２の管理情報保存領域１２６内の不揮発性テーブルである論理ＮＡＮＤ管理情報４２とＮＡＮＤ内論物変換情報４３とが含まれる。新しいスナップショット２１０が保存されると、以前に保存されていたスナップショット２１０とは別のブロックに保存される。
【００４０】
ログ２２０は、ログ格納用ブロックに格納される。このログ２２０は、スナップショットの世代が変わっても、同じログ格納用ブロックに連続して書き込まれる。図９は、ログの一例を示す図である。ログ２２０は、変更対象の管理情報となる対象情報と、その対象情報中の変更対象となるエントリである対象エントリと、その対象エントリ中の変更対象となる項目である対象項目と、その対象項目の変更の内容である変更内容と、を含む。
【００４１】
ポインタ２３０は、指示情報格納用ブロックに格納される。ポインタ２３０は、スナップショット２１０とログ２２０の格納位置を示すブロックの先頭アドレスを示すものであればよい。ただし、ポインタ２３０のうちスナップショット２１０の格納位置を示す部分は、スナップショット２１０に含まれる各管理情報の先頭アドレスを示すものであってもよい。また、ポインタ２３０は、スナップショット２１０が新たに保存された場合や、スナップショット格納用ブロックとログ格納用ブロックが変更された場合に更新される。なお、ログ２２０のポインタは、指示情報格納用ブロック内ではなく、スナップショット２１０の中に格納されていてもよい。
【００４２】
つぎに、ドライブ制御部１４の機能について説明する。図１０は、ドライブ制御回路の機能構成の一例を示すブロック図である。ドライブ制御部１４は、ＤＲＡＭ１１−ＮＡＮＤメモリ１２間のデータ転送やＮＡＮＤメモリ１２に関する各種機能の制御を行うデータ管理部１４１と、ＡＴＡインタフェースから受けた指示に基づいてデータ管理部１４１と協働してデータ転送処理を行うＡＴＡコマンド処理部１４２と、データ管理部１４１およびＡＴＡコマンド処理部１４２と協動して各種のセキュリティ情報を管理するセキュリティ管理部１４３と、電源オン時に、各管理プログラム（ＦＷ）をＮＡＮＤメモリ１２から図示しないメモリ（たとえば、ＳＲＡＭ（Static  RAM））にロードするブートローダ１４４と、ドライブ制御部１４内の各コントローラや回路の初期化を行う初期化管理部１４５と、外部からＲＳ２３２Ｃインタフェースを介して供給されたデバッグ用データを処理するデバッグサポート部１４６と、を備える。
【００４３】
図１１は、データ管理部の機能構成の一例を示すブロック図である。データ管理部１４１は、ＤＲＡＭ１１とＮＡＮＤメモリ１２との間でデータ転送を行うデータ転送処理部１５１と、ＤＲＡＭ１１およびＮＡＮＤメモリ１２に記憶されるデータの変更に伴って管理情報の変更や保存を行う管理情報管理部１５２と、電源オン時などに保存された管理情報に基づいて最新の管理情報を復元する管理情報復元部１５５と、をさらに備える。
【００４４】
また、管理情報管理部１５２は、管理情報書込部１５３と、管理情報保存部１５４と、を備える。管理情報書込部１５３は、データ転送処理部１５１によるＤＲＡＭ１１またはＮＡＮＤメモリ１２で記憶されるデータの変更処理によって管理情報の更新が必要な場合に、ＤＲＡＭ１１に記憶されている管理情報の更新を行う。
【００４５】
管理情報保存部１５４は、メモリシステム１０が所定の条件を満たしたとき、管理情報をスナップショット２１０として、または管理情報中の更新された分の情報をログ２２０として、ＮＡＮＤメモリ１２の管理情報保存領域１２６に保存する。また、このスナップショット２１０またはログ２２０の保存に伴ってポインタ２３０が書き込まれる位置が変更される場合には、このポインタ２３０に対する更新処理も行う。
【００４６】
管理情報保存部１５４によるスナップショット２１０の保存は、ＮＡＮＤメモリ１２の管理情報保存領域１２６中のログ２２０を記憶するために設けられたログ記憶領域が埋まってしまった（領域がデータで満杯）になった場合など、本メモリシステムの所定の状況に応じて実行される。
【００４７】
また、管理情報管理部１５２によるログ２２０の保存は、ＤＲＡＭ１１に記憶されている管理情報（不揮発性テーブル）の更新を伴うＮＡＮＤメモリ１２上のデータ更新時（ＮＡＮＤメモリ１２へのデータ書込みが必要な場合）に行われる。
【００４８】
管理情報復元部１５５は、メモリシステム１０が起動されると、ＮＡＮＤメモリ１２の管理情報保存領域１２６に保存されている管理情報保存情報に基づいた管理情報の復元処理を行う。具体的には、ポインタ２３０、スナップショット２１０、ログ２２０へと順にたどっていき、最新のスナップショット２１０に対するログ２２０が存在するか否かを判定する。ログ２２０が存在しない場合には、スナップショット格納用ブロックのスナップショット２１０を管理情報としてＤＲＡＭ１１に復元する。また、ログ２２０が存在する場合には、プログラムエラーや瞬断などの異常終了であった場合であるので、スナップショット格納用ブロックからスナップショット２１０を取得し、ログ格納用ブロックからログ２２０を取得して、ＤＲＡＭ１１上でスナップショット２１０にログ２２０を反映させて管理情報（不揮発性テーブル）の復元を行う。
【００４９】
ここで、管理情報管理部１５２によるメモリシステム１０の管理情報の保存の処理について説明する。図１２は、メモリシステムの管理情報の保存処理手順の一例を示すフローチャートである。なお、ここでは、メモリシステム１０がホスト装置と接続され、ホスト装置の２次記憶装置として動作しているとともに、ホスト装置が起動状態にあり、また、この起動状態の前のメモリシステム１０の停止前にスナップショット２１０が保存されているものとする。
【００５０】
まず、ホスト装置の前回終了時に保存されたスナップショット２１０を基に、ホスト装置が起動された状態にある（ステップＳ１１）。ついで、管理情報管理部１５２は、スナップショット保存条件を満たすか否かを判定する（ステップＳ１２）。スナップショット保存条件を満たさない場合（ステップＳ１２でＮｏの場合）には、管理情報の更新を伴う指示を受けたか否かを判定する（ステップＳ１３）。管理情報の更新を伴う指示を受けなかった場合（ステップＳ１３でＮｏの場合）には、再びステップＳ１２へと戻る。
【００５１】
また、管理情報の更新を伴う指示を受けた場合（ステップＳ１３でＹｅｓの場合）には、その指示を実行することによって管理情報がどのように更新されるか更新計画を決定し（ステップＳ１４）、その更新計画をＮＡＮＤメモリ１２の管理情報保存領域１２６のログ格納用ブロックにログ２２０として保存する（ステップＳ１５）。この更新計画（ログ）は、ログ格納用ブロックにログ２２０が格納されていない場合には、現時点の不揮発性テーブルとスナップショット格納用ブロックに保存されているスナップショット２１０との間の差分情報であり、ログ格納用ブロックにログ２２０（以下、過去ログという）が既に格納されている場合には、現時点の不揮発性テーブルと、スナップショット２１０と過去ログとを合わせたものとの間の差分情報である。なお、このログ２２０は、たとえば、ログ２２０（更新計画）をＤＲＡＭ１１上に記録した後、ＮＡＮＤメモリ１２の管理情報保存領域１２６に保存される。
【００５２】
ついで、論理ＮＡＮＤ管理層は、ステップＳ１３で受けた指示を実行する（ステップＳ１６）。このような指示として、たとえばユーザデータのＮＡＮＤメモリ１２のデータ保存領域の所定のブロックへの書込処理が挙げられる。その後、ステップＳ１２へと戻る。
【００５３】
また、ステップＳ１２でスナップショット保存条件を満たす場合（ステップＳ１２でＹｅｓの場合）には、ＤＲＡＭ１１の管理情報格納領域１１１内の少なくとも不揮発性テーブルを含む管理情報をスナップショット２１０としてＮＡＮＤメモリ１２の管理情報保存領域１２６に保存する（ステップＳ１７）。そして、メモリシステム１０の終了指示があるか否かを判定し（ステップＳ１８）、終了指示がない場合には再びステップＳ１２へと戻り、終了指示がある場合には、そのまま処理が終了する。
【００５４】
つぎに、管理情報復元部１５５によるメモリシステム１０の管理情報の復元処理について説明する。図１３は、メモリシステムの管理情報の復元処理手順の一例を示すフローチャートである。なお、ここでも、メモリシステム１０がホスト装置と接続され、ホスト装置の２次記憶装置として動作しているものとする。
【００５５】
まず、ホスト装置の電源がオンされ、メモリシステム１０に対して起動指示が出されると（ステップＳ３１）、管理情報復元部１５５は、ＮＡＮＤメモリ１２の管理情報保存領域１２６中のポインタを読込み（ステップＳ３２）スナップショット２１０が格納されているブロックのアドレスと、ログ２２０が格納されているブロックのアドレスを取得する（ステップＳ３３）。
【００５６】
ついで、管理情報復元部１５５は、ステップＳ３３で取得したＮＡＮＤメモリ１２中のアドレスからスナップショット２１０を読込み、ＤＲＡＭ１１の一時記憶領域１１１に復元する（ステップＳ３４）。
【００５７】
その後、管理情報復元部１５５は、ＮＡＮＤメモリ１２中のログ２２０を参照して、瞬断が発生したか否かを判定する（ステップＳ３５）。瞬断が発生していない場合（ステップＳ３５でＮｏの場合）には、管理情報復元部１５５は、ステップＳ３４でＤＲＡＭ１１の一時記憶領域１１１に復元したスナップショット２１０から管理情報を復元し（ステップＳ３６）、復元処理が終了する。
【００５８】
一方、瞬断が発生した場合（ステップＳ３５でＹｅｓの場合）には、管理情報復元部１５５は、ステップＳ３３で取得した格納位置にあるログ２２０をＤＲＡＭ１１の作業領域１１２に展開し（ステップＳ３７）、スナップショット２１０に古いログ２２０から順に反映させて管理情報を復元し（ステップＳ３８）、復元処理が終了する。
【００５９】
つぎに、本実施の形態の要部について説明する。本実施の形態では、ＤＲＡＭ１１上の記憶領域のうちスナップショット２１０として保存される領域の一部を、ＡＭがバックアップしたいデータ（テーブルや変数など）を保存するための領域として確保しておく。なお、以下の説明では、図１０で説明したデータ管理部１４１、ブートローダ１４４、デバッグサポート部１４６をＤＭ（データマネージャ）といい、ＡＴＡコマンド処理部１４２をＡＭ（ＡＴＡマネージャ）といい、初期化管理部１４５をＩＭ（イニシャライズマネージャ）という。
【００６０】
図１４は、ドライブ制御部１４のハードウェア的な内部構成例を示すブロック図である。ドライブ制御部１４は、データアクセス用バス３０１、第１の回路制御用バス３０２、および第２の回路制御用バス３０３を備えている。第１の回路制御用バス３０２には、ドライブ制御部１４全体を制御するプロセッサ３０４が接続されている。第１の回路制御用バス３０２には、ＮＡＮＤメモリ１２に記憶された各管理プログラム（ＦＷ：ファームウエア）をブートするブート用プログラムが格納されたブートＲＯＭ３０５がＲＯＭコントローラ３０６を介して接続されている。また、第１の回路制御用バス３０２には、図１に示した電源回路１３からのパワーオンリセット信号を受けて、リセット信号およびクロック信号を各部に供給するクロックコントローラ３０７が接続されている。
【００６１】
第２の回路制御用バス３０３は、第１の回路制御用バス３０２に接続されている。第２の回路制御用バス３０３には、温度センサからのデータを受けるためのＩ２Ｃ回路３０８、状態表示用のＬＥＤにステータス表示用信号を供給するパラレルＩＯ（ＰＩＯ）回路３０９、ＲＳ２３２Ｃ  Ｉ／Ｆを制御するシリアルＩＯ（ＳＩＯ）回路３１０が接続されている。
【００６２】
ＡＴＡインタフェースコントローラ（ＡＴＡコントローラ）３１１、第１のＥＣＣ（Error Checking and Correction）回路３１２、ＮＡＮＤコントローラ３１３、およびＤＲＡＭコントローラ３１４は、データアクセス用バス３０１と第１の回路制御用バス３０２との両方に接続されている。ＡＴＡコントローラ３１１は、ＡＴＡインタフェースを介してホスト装置との間でデータを送受信する。データアクセス用バス３０１には、データ作業領域作業領域およびファームウェア展開領域として使用されるＳＲＡＭ３１５がＳＲＡＭコントローラ３１６を介して接続されている。ＮＡＮＤメモリ１２に記憶されているファームウェアは起動時、ブートＲＯＭ３０５に記憶されたブート用プログラムによってＳＲＡＭ３１５に転送される。
【００６３】
ＮＡＮＤコントローラ３１３は、ＮＡＮＤメモリ１２とのインタフェース処理を行うＮＡＮＤ  Ｉ／Ｆ３１７、第２のＥＣＣ回路３１８、およびＮＡＮＤメモリ１２−ＤＲＡＭ１１間のアクセス制御を行うＤＭＡ転送制御用ＤＭＡコントローラ３１９を備えている。第２のＥＣＣ回路３１８は第２の訂正符号のエンコードを行い、また、第１の誤り訂正符合のエンコードおよびデコードを行う。第１のＥＣＣ回路３１２は、第２の誤り訂正符号のデコードを行う。第１の誤り訂正符号、第２の誤り訂正符号は、例えば、ハミング符号、ＢＣＨ（Bose Chaudhuri Hocqenghen）符号、ＲＳ(Reed Solomon)符号、或いはＬＤＰＣ（Low Density Parity Check）符号等であり、第２の誤り訂正符号の訂正能力は、第１の誤り訂正符号の訂正能力よりも高いとする。
【００６４】
図１０に示したドライブ制御部１４によってＤＲＡＭ１１−ＮＡＮＤメモリ１２間のデータ転送が行なわれる際には、ＮＡＮＤコントローラ３１３、第１のＥＣＣ回路３１２を介してデータ転送が行なわれる。また、ＡＴＡコマンド処理部１４２によってＤＲＡＭ１１−ホスト装置間のデータ転送処理が行なわれる際には、ＡＴＡコントローラ３１１、ＤＲＡＭコントローラ３１４を介してデータ転送が行なわれる。
【００６５】
つぎに、ＮＡＮＤメモリ１２の記憶領域について説明する。
図１５は、ホスト装置から見たＮＡＮＤメモリ１２の記憶領域の区分を模式的に示す図である。ＮＡＮＤメモリ１２の記憶領域は、図１５に示すように、通常ＬＢＡ領域１６０と、特殊ＬＢＡ領域１６２と、に区分される。ここで、通常ＬＢＡ領域１６０は、ホスト装置１からのコマンド（Readコマンド／Writeコマンドなど）によってアクセス可能な領域であるのに対し、特殊ＬＢＡ領域１６２は、ホスト装置１から発出される通常のコマンドではアクセスすることができないＬＢＡ領域（ホストアクセス禁止領域）である。図３（ｂ）に示したデータ格納領域１２５および管理情報保存領域１２６は、通常ＬＢＡ領域１６０内の領域である。なお、特殊ＬＢＡ領域１６２は、メモリシステム１０の内部に展開されるファームウェア（ＦＷ）を構成するモジュールが発出するコマンドによってアクセスすることが可能である。
【００６６】
これらの通常ＬＢＡ領域１６０および特殊ＬＢＡ領域１６２について、具体例を用いて説明する。いま、メモリシステム１０の領域のサイズ（いわゆるディスク容量）を、例えば１２８ＧＢとすると、この１２８ＧＢの領域はユーザ領域である。一方、メモリシステム１０には、ホスト装置１からアクセスできる当該１２８ＧＢの領域（ユーザ領域）以外に、ＳＳＤ１００の内部情報を保存するための領域として、所定サイズ（例えば、１論理ブロック分程度）の領域（非ユーザ領域）がＬＢＡ上にマップされる。この１２８ＧＢの領域が通常ＬＢＡ領域であり、所定サイズの領域が特殊ＬＢＡ領域である。
【００６７】
特殊ＬＢＡ領域１６２は、メモリシステム１０を管理する管理データを保存するとともに、起動時には管理データがＤＲＡＭ１１に展開される。なお、この特殊ＬＢＡ領域１６２は、ホスト装置１からのコマンドによって誤ってアクセスできないように、通常、ユーザデータ領域の後ろ側に追加される形で実装される。ただし、この特殊ＬＢＡ領域１６２は、通常ＬＢＡ領域１６０に格納されるユーザデータと同じ管理方式でハンドリングされ、通常ＬＢＡ領域１６０がマップされ得る全てのＮＡＮＤブロックに割り当てが可能である。すなわち、論理ＮＡＮＤ管理層３２から見れば、論理アドレスの違いを除いて、処理の違いはない。また、当然のことながら、特殊ＬＢＡ領域１６２は、ウェアレベリングの対象にもなる。
【００６８】
ここで、上記のような特殊ＬＢＡ領域１６２を設けた趣旨について説明する。前述したように、ハードディスクを用いた二次記憶装置では、物理フォーマットおよび論理フォーマットを用いて、ユーザ領域の初期化処理が行われる。本実施の形態にかかるメモリシステム１０においても、これらの物理フォーマットおよび論理フォーマットの機能を実現すべく、上記特殊ＬＢＡ領域１６２という概念を導入し、当該概念に基づく領域をＮＡＮＤメモリ１２に設けるようにしたものである。
【００６９】
つぎに、ＤＲＡＭ１１からスナップショット２１０としてＮＡＮＤメモリ１２に保存される領域（スナップショット領域）について説明する。図１６は、スナップショット領域の区分を模式的に示す図である。
【００７０】
ＤＲＡＭ１１上において、スナップショット領域１７０は、例えば８ＭＢの領域で構成されている。本実施の形態では、このスナップショット領域１７０が、管理情報領域１７１とＡＭ管理情報領域１７２とを有している。
【００７１】
管理情報領域１７１は、図４に示したキャッシュ管理情報４１、論理ＮＡＮＤ管理情報４２、ＮＡＮＤ内論物変換情報４３などの種々の管理情報を格納する領域である。ＡＭ管理情報領域１７２は、ＡＭ（ＡＴＡマネージャ）がバックアップしたいテーブルや変数などをＡＭ管理情報（メモリシステム１０の動作状態に関する内部情報）として格納する領域である。ＡＭがバックアップしたいＡＭ管理情報は、ＮＡＮＤメモリ１２の特殊ＬＢＡ領域１６２に格納されるデータ（ＡＭ管理情報）である。
【００７２】
ＡＭが管理する特殊ＬＢＡ領域１６２は、メモリシステム１０上で重要なデータを記憶する領域である。したがって、本実施の形態では、特殊ＬＢＡ領域１６２内のデータを誤り訂正（後述のＬ２−ＥＣＣエラーの誤り訂正）できなかった場合であっても、バックアップとして保存しておいたスナップショット２１０を用いてＡＭ管理情報を復元する。
【００７３】
つぎに、ＡＭ管理情報の保存処理と初期化処理の処理手順について説明する。図１７は、ＡＭ管理情報の保存処理を示すフローチャートである。ＡＭは、ＤＭ（データマネージャ）から提供されるWriteコマンド等を利用してＤＲＡＭ１１上にあるＡＭ管理情報を特殊ＬＢＡ領域１６２に保存する。具体的には、ＡＭは、メモリシステム１０の内部的な統計情報（温度情報等）、警告イベント履歴、時刻情報などが更新された場合や、更新された情報の量が所定量を超えた場合に、これらの統計情報、警告イベント履歴、時刻情報などを、ＡＭ管理情報として特殊ＬＢＡ領域１６２に保存する（ステップＳ５１）。例えば、警告イベント履歴などの重要な情報は、逐次、特殊ＬＢＡ領域１６２に保存され、統計情報などの重要度の低い情報は、更新差分が所定量を超えた際に特殊ＬＢＡ領域１６２に保存される。さらに、ＡＭは、特殊ＬＢＡ領域１６２に保存したＡＭ管理情報をコピーしてＤＲＡＭ１１のＡＭ管理情報領域１７２に保存する（ステップＳ５２）。
【００７４】
このように、本実施の形態では、ＤＭが所定のタイミングで保存することになっているスナップショット２１０の対象となっているＤＲＡＭ領域の一部がＡＭに開放されており、この領域にＡＭ管理情報がコピーされる。
【００７５】
この後、スナップショット２１０を保存する条件が成立すると、ＤＭはＤＲＡＭ１１（ＡＭ管理情報領域１７２）内のＡＭ管理情報を、スナップショット２１０の一部としてＮＡＮＤメモリ１２に保存する（ステップＳ５３）。換言すると、ＤＭはスナップショット２１０として、管理情報領域１７１に格納されるキャッシュ管理情報４１などの管理情報と、ＡＭ管理情報領域１７２に格納されるＡＭ管理情報と、をＮＡＮＤメモリ１２に保存する。
【００７６】
図１８は、初期化処理の処理手順を示すフローチャートである。メモリシステム１０の初期化処理としては、まずＩＭの起動処理が行なわれる（ステップＳ７１）。ＩＭは、起動処理として、ドライブ制御部１４内の各コントローラや回路へ初期化の指示を送る。
【００７７】
次に、ＤＭの起動処理が行なわれる（ステップＳ７２）。ＤＭは、起動処理として、ＮＡＮＤメモリ１２に格納されているスナップショット２１０をＤＲＡＭ１１に復元する。これにより、スナップショット２１０内のＡＭ管理情報領域１７２に保存されていたＡＭ管理情報がＤＲＭＡ１１上に復元される（ステップＳ７３）。
【００７８】
次に、ＡＭの起動処理が行なわれる（ステップＳ７４）。ＡＭは、起動処理として、ＤＭから提供されるReadコマンドを利用して特殊ＬＢＡ領域１６２からＡＭ管理情報を読み出す（ステップＳ７５）。このとき、ＡＭは、ＡＭ管理情報の特殊ＬＢＡ領域１６２からの読み出しに成功したか否かを判断する（ステップＳ７６）。
【００７９】
Ｌ２−ＥＣＣエラー（第２のＥＣＣ回路３１７および第１のＥＣＣ回路３１１によって誤り訂正を行なえないエラー）（読み出せないエラー）の発生によってＡＭ管理情報の特殊ＬＢＡ領域１６２からの読み出しに失敗した場合（ステップＳ７６でＮｏの場合）、ＡＭはＤＲＡＭ１１上へ復元したＡＭ管理情報を、ＡＭ管理情報領域１７２から読み出す（ステップＳ７７）。換言すると、Ｌ２−ＥＣＣエラーなどが発生して特殊ＬＢＡ領域１６２からＡＭ管理情報を読み出せなかった場合には、特殊ＬＢＡ領域１６２から読み出すＡＭ管理情報によってＡＭ管理情報領域１７２を初期化する代わりに、ＤＭがスナップショット２１０から取得したＡＭ管理情報によってＡＭ管理情報領域１７２を初期化する。
【００８０】
一方、ＡＭ管理情報の特殊ＬＢＡ領域１６２からの読み出しに成功した場合（ステップＳ７６でＹｅｓの場合）、ＡＭはＤＲＡＭ１１へのアクセスは行なわない。このように、ＡＭは、ＮＡＮＤメモリ１２の特殊ＬＢＡ領域１６２またはＤＲＡＭ１１のＡＭ管理情報領域１７２の何れかからＡＭ管理情報を読み出す。
【００８１】
このように、ＤＭは電源ＯＮ時にスナップショット領域１７０に関しては、ＮＡＮＤメモリ１２からのデータをそのままＤＲＡＭ１１上に展開して初期化するので、ＡＭ起動時にはＡＭ管理情報もバックアップデータによって初期化されていることが保証される。
【００８２】
なお、本実施の形態では、特殊ＬＢＡ領域１６２に保存したＡＭ管理情報をコピーしてＤＲＡＭ１１のＡＭ管理情報領域１７２に保存する場合について説明したが、ＡＭ管理情報の保存方法はこの方法に限られない。例えば、ＤＲＡＭ１１のＡＭ管理情報領域１７２を、ＡＭ管理情報を特殊ＬＢＡ領域１６２へ保存する際のライトキャッシュとして用い、このＡＭ管理情報領域１７２にＡＭ管理情報をマップしてもよい。換言すると、ＡＭ管理情報は、一旦ＡＭ管理情報領域１７２に保存し、その後、特殊ＬＢＡ領域１６２に保存してもよい。
【００８３】
また、本実施の形態では、スナップショット２１０に管理情報領域１７１を設け、キャッシュ管理情報４１などの管理情報もスナップショット２１０として保存する場合について説明したが、スナップショット２１０として保存する情報はＡＭ管理情報のみであってもよい。
【００８４】
また、スナップショット２１０として保存する情報は、キャッシュ管理情報４１などの管理情報やＡＭ管理情報などに限らず、他の情報をスナップショット２１０として保存してもよい。
【００８５】
このように本実施の形態によれば、ＡＭ管理情報を特殊ＬＢＡ領域１６２に保存するとともに、スナップショット２１０としてＮＡＮＤメモリ１２の通常ＬＢＡ領域１６０にも保存しておくので、メモリシステム１０の初期化処理を行なう際のＡＭ管理情報の復元の信頼性を向上させることが可能となる。
【００８６】
なお、電荷蓄積層は浮遊ゲート型に限らず、ＭＯＮＯＳ（Metal-Oxide-Nitride-Oxide-Semiconductor）構造のようなシリコン窒化膜を用いた電荷トラップ型やその他の方式であってもよい。
【図面の簡単な説明】
【００８７】
【図１】本発明の実施の形態にかかるメモリシステムの構成の一例を示すブロック図である。
【図２】ＮＡＮＤメモリに含まれる１個のブロックの構成の一例を示す回路図である。
【図３】ＤＲＡＭとＮＡＮＤメモリの機能構成を模式的に示す図である。
【図４】メモリシステムで記憶されるデータを管理する層構造の一例を示す図である。
【図５】キャッシュ管理情報の一例を示す図である。
【図６】論理ＮＡＮＤ管理情報の一例を示す図である。
【図７】ＮＡＮＤ内論物変換情報の一例を示す図である。
【図８】管理情報保存領域に記憶される管理情報保存情報の内容の一例を模式的に示す図である。
【図９】ログの一例を示す図である。
【図１０】ドライブ制御回路の機能構成の一例を示すブロック図である。
【図１１】実施の形態に係るデータ管理部の機能構成の一例を示すブロック図である。
【図１２】メモリシステムの管理情報の保存処理手順の一例を示すフローチャートである。
【図１３】メモリシステムの管理情報の復元処理手順の一例を示すフローチャートである。
【図１４】ドライブ制御回路のハードウェア的な内部構成例を示すブロック図である。
【図１５】ＮＡＮＤメモリの記憶領域の区分を模式的に示す図である。
【図１６】スナップショット領域の区分を模式的に示す図である。
【図１７】ＡＭ管理情報の保存処理を示すフローチャートである。
【図１８】初期化処理の処理手順を示すフローチャートである。
【符号の説明】
【００８８】
１０…メモリシステム、１１…ＤＲＡＭ、１２…ＮＡＮＤメモリ、１３…電源回路、１４…ドライブ制御部、１５…バス、３１…ＤＲＡＭ管理層、３２…論理ＮＡＮＤ管理層、３３…物理ＮＡＮＤ管理層、４１…キャッシュ管理情報、４２…管理情報、４２ａ…論理ページ管理情報、４２ｂ…論理ブロック管理情報、４３…ＮＡＮＤ内論物変換情報、１１１…一時記憶領域、１１２…作業領域、１２５…データ格納領域、１２６…管理情報保存領域、１４１…データ管理部、１４２…ＡＴＡコマンド処理部、１４３…セキュリティ管理部、１４４…ブートローダ、１４５…初期化管理部、１４６…デバッグサポート部、１５１…データ転送処理部、１５２…管理情報管理部、１５３…管理情報書込部、１５４…管理情報保存部、１５５…管理情報復元部、１６０…通常ＬＢＡ領域、１６２…特殊ＬＢＡ領域、１７１…管理情報領域、１７２…ＡＭ管理情報領域、２１０…スナップショット、２２０…ログ、２３０…ポインタ、３０４…プロセッサ。
【図１】
0004675984.tif 000002
【図２】
0004675984.tif 000003
【図３】
0004675984.tif 000004
【図４】
0004675984.tif 000005
【図５】
0004675984.tif 000006
【図６】
0004675984.tif 000007
【図７】
0004675984.tif 000008
【図８】
0004675984.tif 000009
【図９】
0004675984.tif 000010
【図１０】
0004675984.tif 000011
【図１１】
0004675984.tif 000012
【図１２】
0004675984.tif 000013
【図１３】
0004675984.tif 000014
【図１４】
0004675984.tif 000015
【図１５】
0004675984.tif 000016
【図１６】
0004675984.tif 000017
【図１７】
0004675984.tif 000018
【図１８】
0004675984.tif 000019