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