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