(57)【特許請求の範囲】
【請求項１】
フローティングゲートを有し電気的にデータの消去、書込みおよび読出し可能なメモリセルが複数配設されて書込みおよび読出し単位となるページを成し、該ページが複数配設されて消去単位となるブロックを成し、該ブロックが複数配設された不揮発性メモリと、
前記不揮発性メモリへ書き込むデータあるいは前記不揮発性メモリから読み出したデータを一時的に記憶するランダムアクセスメモリと、
前記不揮発性メモリおよび前記ランダムアクセスメモリを制御する制御部とを備え、
前記不揮発性メモリは、論理アドレスによって指定される第１の管理単位によって前記ブロックが分割されたメインメモリ領域と、論理アドレスによって指定され前記第１の管理単位よりも小さな第２の管理単位によって前記ブロックが分割されたキャッシュ領域とを含み、
前記制御部は、前記不揮発性メモリ内において前記メインメモリ領域の前記ブロック数と前記キャッシュ領域の前記ブロック数とを動的に変更することを特徴とするメモリシステム。
【請求項２】
前記制御部は、前記メインメモリ領域に格納されたデータ量が所定値より多い場合に、前記キャッシュ領域の前記ブロック数を減少させかつ前記メインメモリ領域の前記消去ブロック数を増大させることを特徴とする請求項１に記載のメモリシステム。
【請求項３】
前記制御部は、前記不揮発性メモリの外部から受けた書込みデータの容量に基づいて、該書込みデータを前記メインメモリ領域または前記キャッシュ領域のいずれに格納するかを決定することを特徴とする請求項１または請求項２に記載のメモリシステム。
【請求項４】
前記制御部は、前記不揮発性メモリの外部から受けた書込みデータを前記キャッシュ領域に格納するために、前記第２の管理単位に割当てられた第１の論理アドレスを検索し、
前記メインメモリ領域に格納されたデータ量が所定値より多い場合に、前記制御部は、検索する前記第１の論理アドレス数を減少させることによって、前記キャッシュ領域の前記ブロック数を減少させることを特徴とする請求項２に記載のメモリシステム。
【請求項５】
前記メインメモリ領域においてデータは空いているメモリ領域へ追記方式で書き込まれ、
前記キャッシュ領域の一部は前記メインメモリ領域の追記領域として書き込まれることを特徴とする請求項1に記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリシステムに係わり、例えば、フラッシュＥＥＰＲＯＭ型不揮発性メモリを用いたメモリシステムに関する。
【背景技術】
【０００２】
半導体メモリは、大型コンピュータの主記憶から、パーソナルコンピュータ、家電製品、携帯電話等で利用されている。フラッシュＥＥＰＲＯＭ型不揮発性メモリ（以下、ＮＡＮＤ型フラッシュメモリ）は、各種メモリ媒体（ＳＤカード、ＭＭＣ(Marti Media Card)、ＭＳ(Magnetic Stripe)カード、ＣＦ（Compact Flash）カード、ＵＳＢメモリ、ＳＳＤ（Solid-State-Disk）等）に適用される。また、ＮＡＮＤ型フラッシュメモリは、デジタルカメラ、デジタルビデオカメラ、ＭＰ３等の音楽機器、モバイル機器、デジタルテレビ等において、画像、動画、音声、ゲーム等の情報記憶媒体として用いられ、さらに、パーソナルコンピュータのＨＤＤに代わる記憶媒体（ＳＳＤ（Solid State Drive））としても用いられる。
【０００３】
ＮＡＮＤ型フラッシュメモリでは、複数のメモリセルから成るページ単位でデータの書込み／読出し動作が実行され、複数のページから成るブロック単位でデータの消去動作が実行される。
【０００４】
ＮＡＮＤ型フラッシュメモリには、データの読出し回数、書込み回数、あるいは、消去回数に制限がある。通常、ＮＡＮＤ型フラッシュメモリのデータは、１０５乗回程度の読出し回数、書込み回数、あるいは、消去回数で劣化する。ＮＡＮＤ型フラッシュメモリをＳＳＤとして用いた場合、ＮＡＮＤ型フラッシュメモリは、かなりの短期間で寿命が尽きてしまう。
【０００５】
さらに、ブロックの容量よりも小さな小容量データの書込み／読出しが多い場合であっても、データ消去はブロック単位で実行されるため、消去回数が嵩み、メモリの劣化が速くなる。通常、パーソナルコンピュータの使用環境では、画像データまたは音楽ファイル等のようなブロックの容量よりも大きな大容量データばかりではなく、小容量データを扱う場合が多い。
【０００６】
ＤＲＡＭまたはＦｅＲＡＭ等のＲＡＭを、ＮＡＮＤ型フラッシュメモリのバッファまたはキャッシュとして用いることで、ＮＡＮＤ型フラッシュメモリの劣化を抑制することが考えられる。しかし、近年、ＳＳＤ用のＮＡＮＤ型フラッシュメモリは、大容量されており、このようなＮＡＮＤ型フラッシュメモリの劣化を抑制するほど大きな容量のＲＡＭを確保することは困難である。
【特許文献１】特開平１０−１５４１０１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ＮＡＮＤ型フラッシュメモリのアクセス回数による劣化を回避することができるメモリシステムを提供する。
【課題を解決するための手段】
【０００８】
本発明に係る実施形態に従ったメモリシステムは、フローティングゲートを有し電気的にデータの消去、書込みおよび読出し可能なメモリセルが複数配設されて書込みおよび読出し単位となるページを成し、該ページが複数配設されて消去単位となるブロックを成し、該ブロックが複数配設された不揮発性メモリと、前記不揮発性メモリへ書き込むデータあるいは前記不揮発性メモリから読み出したデータを一時的に記憶するランダムアクセスメモリと、前記不揮発性メモリおよび前記ランダムアクセスメモリを制御する制御部とを備え、前記不揮発性メモリは、論理アドレスによって指定される第１の管理単位によって前記ブロックが分割されたメインメモリ領域と、論理アドレスによって指定され前記第１の管理単位よりも小さな第２の管理単位によって前記ブロックが分割されたキャッシュ領域とを含み、前記制御部は、前記不揮発性メモリ内において前記メインメモリ領域の前記ブロック数と前記キャッシュ領域の前記ブロック数とを動的に変更することを特徴とする。
【発明の効果】
【０００９】
本発明によるメモリシステムは、ＮＡＮＤ型フラッシュメモリのアクセス回数による劣化を回避することができる。
【発明を実施するための最良の形態】
【００１０】
以下、図面を参照して本発明に係る実施形態を説明する。本実施形態は、本発明を限定するものではない。
【００１１】
フラッシュＥＥＰＲＯＭ型不揮発性メモリは、主にＮＯＲ型とＮＡＮＤ型とに分けられる。ＮＯＲ型フラッシュメモリは読出し動作が高速であり、読出し可能回数が１０１３乗回程度と多い。よって、ＮＯＲ型フラッシュメモリは、携帯機器の命令コードの記憶装置として用いられる。しかし、ＮＯＲ型フラッシュメモリは、書込みの実効バンド幅が小さく、ファイルの記録には適していない。
【００１２】
一方、ＮＡＮＤ型フラッシュメモリは、アクセス時間が５０μｓ程度と遅い。しかし、ＮＡＮＤ型フラッシュメモリは、ＮＯＲ型フラッシュメモリに比べて集積度が高く、かつ、バーストリード（Burst Read）が可能である。ＮＡＮＤ型フラッシュメモリは、データプログラム（書込み）時間が８００μｓ、データ消去時間が１ｍｓ程度と遅い。しかし、ＮＡＮＤ型フラッシュメモリは、一度に消去可能なビット数が多く、かつ、バーストモードでデータを書き込むことができ、一度に多数のビットをプログラムすることができる。従って、ＮＡＮＤ型フラッシュメモリは、実効バンド幅が大きいメモリである。このような実効バンド幅が大きいＮＡＮＤ型フラッシュメモリは、上述のメモリーカード、ＵＳＢメモリ、ＳＳＤ等のファイルメモリに適している。
【００１３】
以下の本実施形態は、ＮＡＮＤ型フラッシュメモリを用いたメモリシステムである。
【００１４】
図１は、本発明に係る実施形態に従ったメモリシステムの構成を示すブロック図である。本実施形態によるメモリシステムは、ＮＡＮＤ型フラッシュメモリ１０と、ＲＡＭ（Random Access Memory）２０と、ＮＡＮＤ型フラッシュメモリを制御するＮＡＮＤ制御回路３０と、ＲＡＭを制御するＲＡＭ制御回路４０と、ＭＰＵ（Micro Processing Unit）５０とを備えている。本実施形態によるＮＡＮＤ型フラッシュメモリは、例えば、パーソナルコンピュータに内蔵されたＳＳＤである。尚、特許請求の範囲では、ＮＡＮＤ制御回路３０、ＲＡＭ制御回路４０およびＭＰＵ５０をまとめて制御部と呼んでいる。
【００１５】
ＮＡＮＤ型フラッシュメモリ（以下、単にメモリ１０という）は、比較的大きな容量のデータを格納するメインメモリ領域と、比較的小さな容量のデータを格納するキャッシュ領域とを有する。ＲＡＭ２０は、メモリ１０の一部のブロックのデータを消去したときに有効なデータの退避領域として機能する。ＲＡＭ２０は、さらに、メモリ１０へ書き込みデータあるいはメモリ１０から読み出したデータを一時的に記憶するキャッシュ機能を有する。
【００１６】
ＭＰＵ５０は、ＮＡＮＤ制御回路３０およびＲＡＭ制御回路４０に対して命令を送り、これらを制御する。ＭＰＵ５０は、メモリ１０内のキャッシュ領域のブロック数等を管理する。
【００１７】
図２は、メモリ１０のメインメモリ領域１２とキャッシュ領域１１とを示す概念図である。メインメモリ領域１２は、比較的大きな第１の管理単位によってブロックが分割されているメモリ領域である。第１の管理単位は、メモリ１０の論理アドレスごとに割り当てられたメモリ単位であり、メモリ単位ごとにデータは管理される。キャッシュ領域１１は、比較的小さな第２の管理単位によってブロックが分割されたメモリ領域である。第２の管理単位は、メモリ１０の論理アドレスごとに割り当てられたメモリ単位であるが、第１の管理単位よりもメモリ容量の小さなメモリ単位である。従って、キャッシュ領域１１におけるブロックは、メインメモリ領域１２のブロックよりも細分化されており、小容量のデータを格納するのに適している。メモリ１０においてキャッシュ領域１１とメインメモリ領域１２との違いは、管理単位のデータ容量の相違である。
【００１８】
図３は、ＮＡＮＤ型フラッシュメモリの一例としてのＮＡＮＤ型ＥＥＰＲＯＭのセルストリングを示す平面図である。図４は、ＮＡＮＤ型ＥＥＰＲＯＭの２つのメモリセルの断面図である。図５は、図３に示すセルストリングの等価回路図である。セルストリングは、複数のメモリセルを直列に接続して形成されており、直列接続されたメモリセルの両端に設けられた選択トランジスタＳＴを介してソース線ＳＬまたはビット線ＢＬに接続されている。ビット線コンタクトおよびソース線コンタクトは、セルストリングに対して１つずつしか設けられていない。また、メモリセルはワード線とビット線との交点に１個ずつ配置される。このため、ＮＡＮＤ型ＥＥＰＲＯＭは、ＮＯＲ型ＥＥＰＲＯＭに比べて高集積化に適している。図４に示すように、各メモリセルは、基板上にゲート絶縁膜を介して電気的に浮遊状態のフローティングゲートＦＧを有する。フローティングゲートＦＧ上には、ゲート絶縁膜を介してコントロールゲート（ワード線ＷＬ）が設けられている。コントロールゲートを制御することによって、フローティングゲートに電荷を蓄積あるいはフローティングゲートから電荷を放出する。これにより、メモリセルは、データを記憶または消去することができる。
【００１９】
図６は、メモリブロックの一例を示す回路図である。１回の消去を行うメモリ単位は、ビット線ＢＬ方向でみるとメモリセルブロック単位であり、ワード線ＷＬ方向でみると、１つのＭａｔ全部（ＷＬ０〜ＷＬ７）である。従って、本実施形態では、消去ブロック単位のメモリ容量は、５１２ＫＢ程度となる。この消去単位をブロックと呼ぶ。書込み単位／読出し単位（ページ）は、ブロック中の１つのワード線ＷＬに接続されたメモリセルのうち、１本おきのビット線（偶数ビット線または奇数ビット線）に接続されたメモリセルである。従って、１つのワード線ＷＬに接続されたメモリセルは２ページからなる。
【００２０】
図７（Ａ）〜図７（Ｃ）は、それぞれＰＣ（Personal Computer）の論理アドレス、メモリ１０の論理アドレスおよびメモリ１０の物理アドレスを示した概念図である。図７（Ａ）に示すＰＣの論理アドレス（以下、ＰＣ論理アドレスともいう）は、０〜８ｎ−１で表されている。ｎは２以上の整数である。図７（Ｂ）に示すメモリ１０の論理アドレス（以下、ＳＳＤ論理アドレスともいう）は、メインメモリ領域１２の論理アドレス０〜８（ｍ−１）と、キャッシュ領域１１の論理アドレス８ｍ〜８ｐ−１とを含む。ｍは２以上の整数であり、ｐはｍ＋１以上の整数である。図７（Ｃ）に示すメモリ１０の物理アドレス（以下、ＳＳＤ物理アドレスともいう）は、０〜ｒで表されており、各ブロックごとに割当てられている。ｒは正整数である。
【００２１】
メインメモリ領域１２の管理単位は、例えば、（１／２）ブロックである。１ブロックが５１２Ｋビットのデータを格納可能とすれば、メインメモリ領域１２の管理単位は、２５６Ｋビットのメモリ容量となる。キャッシュ領域１１の管理単位は、例えば、（１／１６）ブロックである。１ブロックが５１２Ｋビットのデータを格納可能とすれば、キャッシュ領域１１の管理単位は、６４Ｋビットのメモリ容量となる。本実施形態では、ＰＣ論理アドレスの１アドレスに含まれるデータの容量はキャッシュ領域１１の管理単位と同じ６４Ｋビットとする。
【００２２】
キャッシュ領域１１の管理単位のメモリ容量は、メインメモリ領域１２の管理単位のそれよりも小さい。このため、図７（Ｂ）では、キャッシュ領域１１における１アドレスの領域を、メインメモリ領域１２におけるそれよりも小さく（薄く）示している。各ブロックは、それぞれに対応するＳＳＤ論理アドレスによってメインメモリ領域１２とキャッシュ領域１１とに分けられている。ＰＣ論理アドレスおよびＳＳＤ物理アドレスでは、メインメモリ領域１２とキャッシュ領域１１とを区別することができない。なお、図７（Ｃ）では、メインメモリ領域１２とキャッシュ領域１１とを明確に区別可能とするために、メインメモリ領域１２のブロックをＭＳと示し、キャッシュ領域１１のブロックをＣａと示している。
【００２３】
キャッシュ領域１１には、例えば、頻繁にアクセスされる小容量データ（アクセス確率の高い小容量データ）が格納される。一般に小容量データはキャッシュ領域に格納されるので、キャッシュ領域１１の管理単位は、メインメモリ領域１２の管理単位よりも細分化されている。
【００２４】
メインメモリ領域１２の管理単位は（１／２）ブロックであるため、その一部のデータを更新する場合であっても、（１／２）ブロック全体を更新する必要がある。これに対し、キャッシュ領域１１の管理単位は、（１／１６）ブロックであるため、データの更新は、（１／１６）ブロックの単位で実行することができる。キャッシュ領域１１の管理単位が小さいと、不要な更新領域を減らすことができる。また、キャッシュ領域１１に小容量かつアクセス確率の高いデータを格納しておくことによって、メインメモリ領域１２の更新回数を低減することができる。これは、管理単位の大きいメインメモリ領域１２の消去回数／書込み回数を低減することを意味し、メモリ１０の劣化の抑制につながる。即ち、本実施形態では、メインメモリ領域１２の管理単位よりも小さな管理単位を有するキャッシュ領域１１をメモリ１０内に設けることによって、メモリ１０の寿命を長くすることができる。尚、メインメモリ領域１２およびキャッシュ領域１１の管理単位は、それぞれ（１／２）ブロックおよび（１／１６）ブロックに限定しない。メインメモリ領域１２およびキャッシュ領域１１の管理単位は、それぞれ（１／ｍ）ブロックおよび（１／ｎ）ブロック（ｎ＞ｍ、ｍおよびｎは正数）であればよい。
【００２５】
図８は、ＰＣ論理アドレスとＳＳＤ論理アドレスとの間の論論変換表を示す。論論変換表は、ＰＣ論理アドレスに対応するＳＳＤ論理アドレスを示すテーブルである。メインメモリ領域１２のＳＳＤ論理アドレスは、（１／２）ブロック、即ち、８つのＰＣ論理アドレスに対応する。従って、メインメモリ領域１２における論論変換表は、各ＳＳＤ論理アドレスに対応する８つのＰＣ論理アドレスのうち先頭のアドレスのみを格納する。例えば、メインメモリ領域１２のＳＳＤ論理アドレス“０”は、ＰＣ論理アドレス８〜１５に対応する。しかし、論論変換表では、ＰＣ論理アドレス８〜１５の先頭アドレスであるＰＣ論理アドレス“８”のみが格納されている。尚、“０ｘＦＦ”は、１６進数のＦＦを示し、空き領域（空きアドレス）を意味する。
【００２６】
キャッシュ領域１１では、ＳＳＤ論理アドレスの管理単位とＰＣ論理アドレスの管理単位とが等しく（１／１６）ブロックである。このため、キャッシュ領域１１の論論変換表では、ＳＳＤ論理アドレスとＰＣ論理アドレスとが１対１に対応している。
【００２７】
図９は、ＳＳＤ論理アドレスとＳＳＤ物理アドレスとの間の論物変換表を示す。論物変換表は、ＳＳＤ論理アドレスに対応するＳＳＤ物理アドレスを示すテーブルである。論論変換表および論物変換表を参照することによって、ＰＣ論理アドレスで示されたデータがどのメモリ領域に格納されているかが分かる。論論変換表および論物変換表は、例えば、図１に示すＲＡＭ２０に格納されている。
【００２８】
論論変換表で示すＰＣ論理アドレスとＳＳＤ論理アドレスとの対応関係は、固定されているものではなく、後述のようにメモリの空き領域へデータが書き込まれるごとに更新される。一方、論物変換表で示すＳＳＤ論理アドレスとＳＳＤ物理アドレスとの対応関係は、基本的に更新はされない。しかし、論物変換表はウェアレベリング等により変更される場合はある。
【００２９】
（読出し動作）
図１０は、本実施形態によるメモリ１０の読出し動作を示すフロー図である。図６〜図１０を参照して、データ読出し動作を説明する。読出し動作では、ＲＡＭ制御回路４０は、読出し対象のＰＣ論理アドレスを、キャッシュ領域１１の論論変換表において検索する（Ｓ１０）。読出し対象のＰＣ論理アドレスがキャッシュ領域１１の論論変換表にある場合、ＲＡＭ制御回路４０は、読出し対象のＰＣ論理アドレスに対応するＳＳＤ論理アドレスを、図９に示す論物変換表において検索する（Ｓ２０）。ＮＡＮＤ制御回路３０は論物変換表において検索されたＳＳＤ物理アドレスに基づいてメモリ１０からデータを読み出す（Ｓ３０）。読出し対象のＰＣ論理アドレスがキャッシュ領域１１の論論変換表にある場合、メインメモリ領域１２の論論変換表の検索は実行されない。
【００３０】
読出し対象のＰＣ論理アドレスがキャッシュ領域１１の論論変換表に無い場合に、ＲＡＭ制御回路４０は、読出し対象のＰＣ論理アドレスを、メインメモリ領域１２の論論変換表において検索する（Ｓ４０）。ＲＡＭ制御回路４０は、論論変換表において検索されたＳＳＤ論理アドレスを、図９に示す論物変換表において検索する（Ｓ５０）。ＮＡＮＤ制御回路３０は論物変換表において検索されたＳＳＤ論理アドレスに対応するＳＳＤ物理アドレスに基づいてメモリ１０からデータを読み出す（Ｓ６０）。キャッシュ領域１１には、アクセス可能性の高いデータが格納されているため、ＲＡＭ制御回路４０は、キャッシュ領域１１を最初に検索し、次に、メインメモリ領域１２を検索する。
【００３１】
具体例として、例えば、ＰＣ論理アドレス“４”を読み出す場合、ＲＡＭ制御回路４０は、まず、ＰＣ論理アドレス“４”をキャッシュ領域１１の論論変換表において検索する。図８に示す例では、ＰＣ論理アドレス“４”のデータは、ＳＳＤ論理アドレス“８ｐ−２”に対応するメモリ領域に格納されている。次に、ＲＡＭ制御回路４０は、ＳＳＤ論理アドレス“８ｐ−２”に対応するＳＳＤ物理アドレスを論物変換表において検索する。図９に示す例では、ＳＳＤ論理アドレス“８ｐ−２”に対応するＳＳＤ物理アドレスは、“１”である。
【００３２】
ここで、キャッシュ領域１１のＳＳＤ論理アドレス（管理単位）は、上述の通り１つのブロックに対して１６個のアドレスが割当てられている。つまり、１ブロックを１６個の区分に分けた場合に、キャッシュ領域１１のＳＳＤ論理アドレス（管理単位）は、その１つの区分に対応する。従って、ＭＰＵ５０は、ＳＳＤ論理アドレス“８ｐ−２”がＳＳＤ物理アドレス“１”のブロック内の１６区分のうち何番目の区分に該当するかを計算する必要がある。ブロック内での格納区分は、ＳＳＤ論理アドレス（８ｐ−２）を１６で除算した余りから判明する。例えば、（８ｐ−２）／１６の余りが１４である場合、ＳＳＤ物理アドレス“１”の先頭の区分を０として１４番目の区分がＳＳＤ論理アドレス“８ｐ−２”に該当する。そこで、ＮＡＮＤ制御回路３０は、ＳＳＤ物理アドレス“１”の１４番目の区分（そのブロックの先頭区分を０とする）からデータを読み出す。
【００３３】
他の具体例として、例えば、ＰＣ論理アドレス“９”を読み出す場合、ＲＡＭ制御回路４０は、まず、ＰＣ論理アドレス“９”をキャッシュ領域１１の論論変換表において検索する。図８に示すＰＣ論理アドレス“９”に対応するＳＳＤ論理アドレスは無い。従って、次に、ＲＡＭ制御回路４０は、メインメモリ領域１２の論論変換表を検索する。
【００３４】
ここで、メインメモリ領域１２のＳＳＤ論理アドレス（管理単位）は、８つずつのＰＣ論理アドレスに対応しており、論論変換表は、その先頭のＰＣ論理アドレスのみ格納している。従って、ＭＰＵ５０は、ＳＳＤ論理アドレスを８で除算した整数部分に８を乗算した結果からＳＳＤ論理アドレスを特定する。例えば、ＭＰＵ５０は、除算９／８を計算し、その整数部分１に８を乗算する。ＭＰＵ５０は、その結果として“８”を得る。従って、ＲＡＭ制御回路４０は、論論変換表からＰＣ論理アドレス“８”に対応するＳＳＤ論理アドレスを検索する。これにより、ＰＣ論理アドレス“８”に対応するＳＳＤ論理アドレス“０”を得る。ＰＣ論理アドレス“９”で示されるデータは、ＳＳＤ論理アドレス“０”に対応するメモリ領域に格納されていることがわかる。
【００３５】
さらに、ＲＡＭ制御回路４０は、論物変換表からＳＳＤ論理アドレス“０”に対応するＳＳＤ物理アドレスを検索する。これにより、ＳＳＤ論理アドレス“０” に対応するＳＳＤ物理アドレス“ｑ＋１”を得る。ＰＣ論理アドレス“９”で示されるデータは、ＳＳＤ物理アドレス“ｑ＋１”に対応するメモリ領域に格納されていることがわかる。
【００３６】
ここで、ＭＰＵ５０は、ＰＣ論理アドレス“９”がＳＳＤ物理アドレス“ｑ＋１”のブロック内の１６区分のうち何番目の区分に該当するかを計算する必要がある。ブロック内での格納区分は、ＰＣ論理アドレス“９”を８で除算した余りから判明する。この場合、余りは、１であるので、ＳＳＤ物理アドレス“ｑ＋１”の先頭の区分を０として１番目の区分がＰＣ論理アドレス“９”に該当する。そこで、ＮＡＮＤ制御回路３０は、ＳＳＤ物理アドレス“ｑ＋１”の１番目の区分（そのブロックの先頭区分を０とする）からデータを読み出す。
【００３７】
以上のように、キャッシュ領域１１からデータを読み出す場合には、ブロック内における区分を特定するために、ＭＰＵ５０は、（ＳＳＤ論理アドレス／１６）の余りを算出する。メインメモリ領域１２からデータを読み出す場合には、ＰＣ論理アドレスを特定するために、ＭＰＵ５０は、（（ＰＣ論理アドレス／８の整数部分）＊８）を算出し、ブロック内における区分を特定するために、ＭＰＵ５０は、（ＰＣ論理アドレス／８）の余りを算出する。
【００３８】
（書込み動作）
図１２は、本実施形態によるメモリ１０の書込み動作を示すフロー図である。図６〜図９、図１２を参照して、データ書込み動作を説明する。本実施形態では、メインメモリ領域１２およびキャッシュ領域１１ともに、追記書込み方式を用いてデータが書き込まれる。書込みデータの容量が所定値よりも大きい場合には、データは、メインメモリ領域１２に書き込まれる。書込みデータの容量が所定値以下の場合には、データは、メインメモリ領域１２に書き込まれる。以下、キャッシュ領域１１への書込み動作を説明する。
【００３９】
書込み動作では、ＲＡＭ制御回路４０は、キャッシュ領域１１の論論変換表において空き領域を検索する（Ｓ１１）。空き領域がキャッシュ領域１１の論論変換表にある場合、ＲＡＭ制御回路４０は、その空き領域のＳＳＤ物理アドレスを、図９に示す論物変換表において検索する（Ｓ２１）。ＮＡＮＤ制御回路３０は論物変換表において検索されたＳＳＤ物理アドレスに基づいてメモリ１０へデータを書き込む（Ｓ３１）。空き領域がキャッシュ領域１１の論論変換表にある場合、ＲＡＭ制御回路４０は、メインメモリ領域１２の論論変換表において空き領域を検索しない。空き領域がキャッシュ領域１１の論論変換表に無い場合に、ＲＡＭ制御回路４０は、メインメモリ領域１２の論論変換表において空き領域を検索する（Ｓ４１）。ＲＡＭ制御回路４０は、メインメモリ領域１２内の空き領域のＳＳＤ物理アドレスを、図９に示す論物変換表において検索する（Ｓ５１）。ＮＡＮＤ制御回路３０は論物変換表において検索されたＳＳＤ物理アドレスに基づいてメモリ１０へデータを書き込む（Ｓ６１）。書込み後、ＲＡＭ制御回路４０は論論変換表を更新する（Ｓ７１）。
【００４０】
具体例として、例えば、ＰＣ論理アドレス“９”を書き込む場合、ＲＡＭ制御回路４０は、まず、空き領域をキャッシュ領域１１の論論変換表において検索する。図８に示す例では、空き領域（０ｘＦＦ）は、ＳＳＤ論理アドレス“８（ｐ−１）”にある。次に、ＲＡＭ制御回路４０は、論物変換表からＳＳＤ論理アドレス“８ｐ−１”に対応するＳＳＤ物理アドレスを検索する。図９に示す例では、ＳＳＤ論理アドレス“８ｐ−１”に対応するＳＳＤ物理アドレスは、“１”である。
【００４１】
次に、ＭＰＵ５０は、ＳＳＤ論理アドレス“８ｐ−１”がＳＳＤ物理アドレス“１”のブロック内の１６区分のうち何番目の区分に該当するかを計算する。ブロック内の詳細な格納場所は、ＳＳＤ論理アドレス（８ｐ−２）を１６で除算した余りから判明する。例えば、（８ｐ−１）／１６の余りが１５である場合、ＳＳＤ物理アドレス“１”の先頭の区分を０として１５番目の区分（ＳＳＤ物理アドレス“１”の最後の区分）がＳＳＤ論理アドレス“８ｐ−１”に該当する。そこで、ＮＡＮＤ制御回路３０は、ＳＳＤ物理アドレス“１”の最後の区分へデータを書き込む。
【００４２】
データの書込み後、ＲＡＭ制御回路４０は、ＰＣ論理アドレス“９”をキャッシュ領域１１の論論変換表において検索する。ＰＣ論理アドレス“９”がキャッシュ領域１１の論論変換表に無い場合、ＲＡＭ制御回路４０は、図１１に示すように、キャッシュ領域１１の論論変換表におけるＳＳＤ論理アドレス“８ｐ−１”に対応するＰＣ論理アドレスを“０ｘＦＦ”から“９”に更新する。
【００４３】
ＰＣ論理アドレス“９”がキャッシュ領域１１の論論変換表にある場合、ＲＡＭ制御回路４０は、キャッシュ領域１１の論論変換表において、既存のＰＣ論理アドレス“９”を空きアドレス“０ｘＦＦ”に更新し、かつ、ＳＳＤ論理アドレス“８ｐ−１”に対応するＰＣ論理アドレスを“９”に更新する。尚、図１１に示す具体例では、既存のＰＣ論理アドレス“９”がキャッシュ領域１１の論論変換表に無いので、ＲＡＭ制御回路４０は、ＳＳＤ論理アドレス“８ｐ−１”に対応するＰＣ論理アドレスを“０ｘＦＦ”から“９”に更新するのみである。
【００４４】
例えば、もし、ＰＣ論理アドレス“９” に代えて、ＰＣ論理アドレス“４”をＳＳＤ論理アドレス“８ｐ−１”に書き込んだ場合、ＰＣ論理アドレス“４”はキャッシュ領域１１の論論変換表にある。よって、ＲＡＭ制御回路４０は、図１３に示すように、キャッシュ領域１１の論論変換表において、既存のＰＣ論理アドレス“４”に対応するＳＳＤ論理アドレス“８ｐ−２”を空きアドレス“０ｘＦＦ”に更新し、かつ、空きアドレスのＳＳＤ論理アドレス“８ｐ−１”に対応するＰＣ論理アドレスを“４”に更新する。このように、論論変換表のＰＣ論理アドレスは更新されていく。
【００４５】
（書込み動作：キャッシュ領域１１がフル（full）場合）
図１４は、本実施形態によるメモリ１０の書込み動作（キャッシュ領域１１がフル場合）を示すフロー図である。
【００４６】
キャッシュ領域１１に空き領域が無く、フル状態の場合、キャッシュ領域１１の既存のデータをメインメモリ領域１２へコピーし、キャッシュ領域１１のアドレスを空ける必要がある。図１５は、図１３における更新後の論論変換表を示す。例えば、図１５に示すキャッシュ領域１１のＳＳＤ論理アドレス８ｍ〜８ｍ＋１５を空けるとする。ＳＳＤ論理アドレス８ｍ〜８ｍ＋１５に対応するＳＳＤ物理アドレスは、図９に示す論物変換表から“ｑ”であることが分かる。つまり、図７（Ｃ）に示す物理アドレス“ｑ”で示されたブロック内のデータを移動させる。
【００４７】
まず、ＲＡＭ制御回路４０は、ＳＳＤ論理アドレス８ｍ〜８ｍ＋１５のうち先頭ＳＳＤ論理アドレス８ｍに対応するＰＣ論理アドレスをキャッシュ領域１１の論論変換表から検索する（Ｓ１２）。図１５に示すキャッシュ領域１１の論論変換表から、ＳＳＤ論理アドレス８ｍに対応するＰＣ論理アドレスは、“１３”であることが分かる。
【００４８】
次に、ＲＡＭ制御回路４０は、ＰＣ論理アドレス“１３”に対応するメインメモリ内のＳＳＤ論理アドレスを論論変換表から検索する（Ｓ２２）。図１５に示すメインメモリ領域１２の論論変換表から、ＰＣ論理アドレス“１３”に対応するメインメモリ内のＳＳＤ論理アドレスは、“０”に含まれていることが分かる。ＳＳＤ論理アドレス“０”は、ＰＣ論理アドレス８〜１５に対応するからである。
【００４９】
次に、ＲＡＭ制御回路４０は、論論変換表において検索されたＳＳＤ論理アドレス“０”に対応するＳＳＤ物理アドレスを論物変換表から検索する（Ｓ３２）。図９に示す論物変換表から、ＳＳＤ論理アドレス“０”に対応するＳＳＤ物理アドレスは、“ｑ＋１”であることが分かる。
【００５０】
メインメモリ領域１２内において、空きブロックを検索する（Ｓ４２）。例えば、ＲＡＭ制御回路４０が、論論変換表および論物変換表から空きブロックを検索する。ＳＳＤ論理アドレス８（ｍ−２）に対応するＳＳＤ物理アドレス“ｒ”が空きブロックであるとする。
【００５１】
この場合、ＮＡＮＤ制御回路３０は、メインメモリ領域１２のＳＳＤ物理アドレス“ｑ＋１”で示されるブロック内のデータをＳＳＤ物理アドレス“ｒ”のブロックへコピーする。このとき、図１６に示すように、ＳＳＤ物理アドレス“ｒ”のＰＣ論理アドレス“１３”に対応する区分には、キャッシュ領域１１のＳＳＤ物理アドレス“ｑ”で示されるブロック内のＰＣ論理アドレス“１３”に対応する区分のデータがコピーされる（Ｓ５２）。つまり、メインメモリ領域１２のＳＳＤ物理アドレス“ｑ＋１” とキャッシュ領域１１のＳＳＤ物理アドレス“ｑ”で示されるブロックのＰＣ論理アドレス“１３”とをマージして、空きブロック（ｒ）へコピーする。これは、通常、キャッシュ領域１１のデータは、メインメモリ領域１２のデータよりも新しいからである。
【００５２】
より詳細には、ＭＰＵ５０は、ＰＣ論理アドレス“１３”を８で除算した余りを計算する。これにより、ＰＣ論理アドレス“１３”がキャッシュ領域１１のブロック内において５番目の区分（このブロックの最初の区分を０とする）に対応することが分かる。
【００５３】
次に、論論変換表を更新する（Ｓ６２）。より詳細には、ＲＡＭ制御回路４０は、図１７に示すように、ＳＳＤ論理アドレス“０”に対応するＰＣ論理アドレス“８”を空きアドレス０ｘＦＦに更新する。ＲＡＭ制御回路４０は、ＳＳＤ論理アドレス８ｍに対応するＰＣ論理アドレス“１３” を空きアドレス０ｘＦＦに更新する。さらに、図１７では示さないが、ＳＳＤ物理アドレス“ｒ”に対応するＰＣ論理アドレス（ＳＳＤ論理アドレス８（ｍ−２）に対応するＰＣ論理アドレス）を“８”に更新する。これにより、ＳＳＤ論理アドレス８ｍを空きアドレスにすることができる。
【００５４】
ステップＳ１２〜Ｓ６２をＳＳＤ論理アドレス８ｍ＋１〜８ｍ＋１５について繰り返す。これにより、ＳＳＤ論理アドレス８ｍ〜８ｍ＋１５を空きアドレスにすることができる。
【００５５】
ＲＡＭ制御回路４０がキャッシュ領域１１の論論変換表において空きアドレスを検索する（Ｓ７２）。空きアドレスであるＳＳＤ論理アドレス８ｍ〜８ｍ＋１５へデータを書き込む（Ｓ８２）。
【００５６】
（書込み動作：メインメモリ領域１２のデータ量が閾値を超えた場合）
図１８は、本実施形態によるメモリ１０の書込み動作（メインメモリ領域１２のデータ量が閾値を超えた場合）を示すフロー図である。
【００５７】
メインメモリ領域１２が追記書込み方式である場合には、メインメモリ領域１２に多くのデータが追記的に蓄積される（Ｓ１３）。そのデータ量が所定の閾値を超えた場合、キャッシュ領域１１のＳＳＤ論理アドレスのうち空きアドレスを検索対象から除外することによって、ＲＡＭ制御回路４０が検索する範囲を狭くする（Ｓ２３）。論論変換表のキャッシュ領域１１の検索範囲を狭くすることによって、キャッシュ領域１１のＳＳＤ論理アドレスが実質的に減少する。これにより、キャッシュ領域１１として用いられるブロック数が少なくなり、メインメモリ領域１２として用いられるブロック数が相対的に多くなる。
【００５８】
キャッシュ領域１１がフル状態である場合には、上述のすれＳ１２〜Ｓ８２ようにキャッシュ領域１１の一部のデータをメインメモリ領域１２へ移動する。これにより、空きアドレスとなったキャッシュ領域１１のＳＳＤ論理アドレスを検索対象から除外する（Ｓ３３）。キャッシュ領域１１として用いられるブロックが少なくなり、メインメモリ領域１２として用いられるブロックが相対的に多くなる。
【００５９】
検索対象から除外するＳＳＤ論理アドレスの数は、少なくともメインメモリ領域１２の管理単位に対応する数（例えば、８アドレスずつ）である。より好ましくは、検索対象から除外するＳＳＤ論理アドレスの数は、ブロックに対応する数（１６の倍数）である。管理が容易になるからである。メインメモリ領域１２のデータ量の閾値は、複数個設けられていてもよい。これにより、キャッシュ領域１１を段階的にメインメモリ領域１２へ変更することができる。
【００６０】
図１９〜図２２は、本実施形態によるメモリ１０のキャッシュ領域１１およびメインメモリ領域１２の変化を示す概念図である。図１９に示すように、メインメモリ領域１２内に蓄積されるデータ量が少ないとき、キャッシュ領域１１を増大させる。即ち、キャッシュ領域１１のＳＳＤ論理アドレスの検索範囲を大きくする。これにより、ＲＡＭ制御回路４０が、キャッシュ領域１１において多くのＳＳＤ論理アドレスを検索するため、キャッシュ領域１１の容量が必然的に大きくなる。このとき、ユーザ使用可能領域の一部をキャッシュ領域１１として使用してよい。
【００６１】
図２０に示すように、メインメモリ領域１２内のデータ量が閾値を超えた場合、図１８を参照して上述したように、キャッシュ領域１１を低減させる。このとき、図２０に示すように、複数の閾値を用いてデータ量に応じて段階的にキャッシュ領域１１を減少させてもよい。あるいは、図２１に示すように、データ量が１つの閾値を超えたときに、キャッシュ領域１１であったユーザ使用可能領域を全てメインメモリ領域１２へ変更してもよい。
【００６２】
メインメモリ領域１２がフル状態となった場合、図２２に示すように、キャッシュ領域１１をメインメモリ領域１２へ変更してもよい。即ち、キャッシュ領域１１のＳＳＤ論理アドレスの検索範囲をさらに小さくする。これにより、メインメモリ領域１２は、ユーザ使用可能領域を超えてさらに大きな容量のデータを格納することができる。このようにキャッシュ領域１１の一部をメインメモリ領域１２として使用すれば、消去可能な無効データが多くなる。これにより、消去可能な空きブロックが生じる確率が大きくなる。その結果、後述のように、データの整理動作の頻度を減らすことができるので、メモリ１０の寿命をより長くすることができる。
【００６３】
一般に、メインメモリ領域１２が管理単位での追記書込み方式を採用している場合、データ量が或る所定量（ユーザ使用可能量など）を超えると、メインメモリ領域１２のデータを整理する必要がある。データの整理動作は、有効なデータを他のメモリ領域にコピーし、無効なデータを消去する動作である。データの整理動作は、単なるブロック単位での消去とは異なり、有効なデータを他のメモリ領域にコピーする必要がある。従って、データの整理動作は可及的に減少させることが好ましい。また、頻繁に整理動作を実行すると、メモリ１０が短期間に劣化してしまう。
【００６４】
本実施形態では、メインメモリ領域１２のデータが所定量を超えたとき、キャッシュ領域１１の一部をメインメモリ領域１２に割り当てる。これにより、メインメモリ領域１２の追記領域が増大するので、整理動作の開始を遅らせ、整理動作の周期が長くなる。整理動作の周期を長期化することによって、データ消去および書込みの頻度が低下するので、メモリ１０の劣化を抑制することができる。さらに、整理動作の周期が長くなると、それだけ無効になるデータが多くなる。無効データが多いことは、整理動作において、コピーの必要な有効データが少ないことを意味する。データのコピーが少ないと、整理動作においてデータの消去量を低減することができる。また、無効データが多いことは、ブロック単位でデータを消去する確率が高くなる。消去ブロックが多いと、それだけ、整理動作の周期をさらに長くすることができる。特に、メインメモリ領域１２の管理単位が小さい場合、整理動作で整理されるデータ量が増える。よって、メインメモリ領域１２の管理単位が小さい場合に、上記の効果は大きい。
【００６５】
メインメモリ領域１２のデータ量が閾値以下になった場合に、キャッシュ領域１１の論論変換表の検索領域を増大させてもよい。これにより、キャッシュ領域１１として用いられるブロック数が多くなり、メインメモリ領域１２として用いられるブロック数が少なくなる。
【００６６】
このように、本実施形態では、ＮＡＮＤ制御回路３０は、上述のように、キャッシュ領域１１のデータ量および／またはメインメモリ領域１２のデータ量に応じてメインメモリ領域１２のブロック数とキャッシュ領域１１のブロック数とを動的に変更させる。これにより、整理動作の周期を長期化し、メモリ１０の劣化を抑制することができる。その結果、メモリ１０の寿命を従来よりも長くすることができる。
【図面の簡単な説明】
【００６７】
【図１】本発明に係る実施形態に従ったメモリシステムの構成を示すブロック図。
【図２】メモリ１０のメインメモリ領域１２とキャッシュ領域１１とを示す概念図。
【図３】ＮＡＮＤ型ＥＥＰＲＯＭのセルストリングの平面図。
【図４】ＮＡＮＤ型ＥＥＰＲＯＭの２つのメモリセルの断面図。
【図５】図３に示すセルストリングの等価回路図。
【図６】メモリブロックを示す回路図。
【図７】ＰＣ論理アドレス、メモリ１０の論理アドレスおよびメモリ１０の物理アドレスを示した概念図。
【図８】ＰＣ論理アドレスとＳＳＤ論理アドレスとの間の論論変換表。
【図９】ＳＳＤ論理アドレスとＳＳＤ物理アドレスとの間の論物変換表。
【図１０】本実施形態によるメモリ１０の読出し動作を示すフロー図。
【図１１】書込み動作における更新中の論論変換表。
【図１２】本実施形態によるメモリ１０の書込み動作を示すフロー図。
【図１３】書込み動作における更新中の論論変換表。
【図１４】本実施形態によるメモリ１０の書込み動作（キャッシュ領域１１がフル場合）を示すフロー図。
【図１５】図１３における更新後の論論変換表。
【図１６】キャッシュ領域１１のデータをメインメモリ領域１２へコピーする様子を示す概念図。
【図１７】書込み動作における更新中の論論変換表。
【図１８】本実施形態によるメモリ１０の書込み動作（メインメモリ領域１２のデータ量が閾値を超えた場合）を示すフロー図。
【図１９】本実施形態によるメモリ１０のキャッシュ領域１１およびメインメモリ領域１２の変化を示す概念図。
【図２０】本実施形態によるメモリ１０のキャッシュ領域１１およびメインメモリ領域１２の変化を示す概念図。
【図２１】本実施形態によるメモリ１０のキャッシュ領域１１およびメインメモリ領域１２の変化を示す概念図。
【図２２】本実施形態によるメモリ１０のキャッシュ領域１１およびメインメモリ領域１２の変化を示す概念図。
【符号の説明】
【００６８】
１０…不揮発性メモリ
１２…メインメモリ領域１２
１１…キャッシュ領域１１
２０…ランダムアクセスメモリ
３０…ＮＡＮＤ制御回路
４０…ＲＡＭ制御回路
５０…ＭＰＵ
【図１】
0004558054.tif 000002
【図２】
0004558054.tif 000003
【図３】
0004558054.tif 000004
【図４】
0004558054.tif 000005
【図５】
0004558054.tif 000006
【図６】
0004558054.tif 000007
【図７】
0004558054.tif 000008
【図８】
0004558054.tif 000009
【図９】
0004558054.tif 000010
【図１０】
0004558054.tif 000011
【図１１】
0004558054.tif 000012
【図１２】
0004558054.tif 000013
【図１３】
0004558054.tif 000014
【図１４】
0004558054.tif 000015
【図１５】
0004558054.tif 000016
【図１６】
0004558054.tif 000017
【図１７】
0004558054.tif 000018
【図１８】
0004558054.tif 000019
【図１９】
0004558054.tif 000020
【図２０】
0004558054.tif 000021
【図２１】
0004558054.tif 000022
【図２２】
0004558054.tif 000023