(57)【特許請求の範囲】
【請求項１】
不揮発性半導体記憶装置を用いたメモリシステムであって、
頻繁に書き換えを行う第１データ領域および殆ど書き換えを行わない第２データ領域を含む不揮発性メモリ部と、
上記頻繁に書き換えを行う第１データ領域の新しい書き換え先の物理ブロックアドレスを、上記殆ど書き換えを行わない第２データ領域の論理ブロックアドレスを順次選択し、当該選択した論理ブロックアドレスに対応する物理ブロックアドレスに更新する制御部と、を有し、
上記制御部は、
特定物理アドレスブロックに書き換えが集中しないウェアー・レベリング（Wear-leveling）制御を行う際、書き換えを行わない物理アドレスブロックは、そのまま放置しておくパッシブ・ウェアー・レベリング（Passive-wear-leveling）制御と、書き換えを行わない物理アドレスブロックも全ての物理アドレスブロックの書き換え回数が平均化されるように書き換えを行うアクティブ・ウェアー・レベリング（Active-wear-leveling）制御とが可能であり、
上記不揮発性メモリ部には、
上記パッシブ・ウェアー・レベリング制御および上記アクティブ・ウェアー・レベリング制御の方式選択、若しくは、両ウェアー・レベリングの条件設定値が格納されている
メモリシステム。
【請求項２】
上記制御部は、
上記不揮発性メモリ部の半分以上のブロックに書き換えを頻繁に行わないデータを格納する場合には、上記アクティブ・ウェアー・レベリング制御方式を選択し、
上記不揮発性メモリ部の半分以上のブロックには、書き換えを頻繁に行うデータを格納する場合には、上記パッシブ・ウェアー・レベリング制御方式を選択する
請求項１記載のメモリシステム。
【請求項３】
ページバッファを有し、
上記パッシブ・ウェアー・レベリング制御および上記アクティブ・ウェアー・レベリング制御の方式選択、若しくは、両ウェアー・レベリングの条件設定値は、上記不揮発性メモリ部の第一のページに格納され、電源投入時に自動的にページバッファに読み出される
請求項１記載のメモリシステム。
【請求項４】
ページバッファを有し、
上記パッシブ・ウェアー・レベリング制御および上記アクティブ・ウェアー・レベリング制御の方式選択、若しくは、両ウェアー・レベリングの条件設定値は、上記不揮発性メモリ部の第一のページに格納され、電源投入時に自動的にページバッファに読み出される
請求項２記載のメモリシステム。
【請求項５】
上記パッシブ・ウェアー・レベリング制御および上記アクティブ・ウェアー・レベリング制御の方式選択、および、両ウェアー・レベリングの条件設定値は任意に設定可能である
請求項１記載のメモリシステム。
【請求項６】
上記パッシブ・ウェアー・レベリング制御および上記アクティブ・ウェアー・レベリング制御の方式選択、および、両ウェアー・レベリングの条件設定値は任意に設定可能である
請求項３記載のメモリシステム。
【請求項７】
上記制御部は、前記殆ど書き換えを行わない第２データ領域の論理ブロックアドレスに格納されたデータを、消去済みのブロックにコピーした後、コピー元のブロックは消去しておく
請求項１記載のメモリシステム。
【請求項８】
上記制御部は、上記殆ど書き換えを行わないデータを格納している論理ブロックアドレス、および、上記頻繁に書き換えを行うデータを格納している論理ブロックアドレスの少なくともいずれかに一方に識別用フラグを設けている
請求項７記載のメモリシステム。
【請求項９】
上記制御部は、消去済みのブロックに消去後、直ちに消去済み論理ブロックアドレスを書き込み、書き換えを行うブロックは、上記消去済み論理ブロックアドレスに従って、順次書き換えを行う
請求項１から８のいずれか一項に記載のメモリシステム。
【請求項１０】
上記不揮発性半導体記憶装置は、書き換え可能な不揮発性メモリセルを複数個直列接続したＮＡＮＤ型フラッシュメモリを含む
請求項１から９のいずれか一項に記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性半導体記憶装置を用いたメモリメモリシステムに係り、特に頻繁に書き換えを行うデータ領域と殆ど書き換えを行わないデータ領域が混在するメモリシステムにおけるウェアー・レベリング（Wear-leveling）制御方式の改善技術に関するものである。
【背景技術】
【０００２】
半導体記憶装置の一つとして、電気的書き換えを可能としたフラッシュメモリが知られている。なかでも、メモリセルを複数個直列接続してＮＡＮＤセル・ブロックを構成するＮＡＮＤ型フラッシュメモリは、高集積化ができるものとして注目されている。
【０００３】
ＮＡＮＤ型フラッシュメモリの１つのメモリセルは、半導体基板上に絶縁膜を介して浮遊ゲート（電荷蓄積層）と制御ゲートが積層されたＦＥＴＭＯＳ構造を有し、複数個のメモリセルが隣接するもの同士でソース・ドレインを共有する形で直列接続されてＮＡＮＤセルを構成する。このようなＮＡＮＤセルがマトリクス配列されてメモリセルアレイが構成される。
メモリセルアレイの列方向に並ぶＮＡＮＤセルの一端側のドレインは、それぞれ選択ゲートトランジスタを介してビット線に共通接続され、他端側ソースはやはり選択ゲートトランジスタを介して共通ソース線に接続されている。メモリセルトランジスタのワード線及び選択ゲートトランジスタのゲート電極は、メモリセルアレイの行方向にそれぞれワード線（制御ゲート線）、選択ゲート線として共通接続されている。
【０００４】
このようなＮＡＮＤ型フラッシュメモリは、たとえば非特許文献１，２に開示されている。
【０００５】
図１は、２値２ＧbitＮＡＮＤ型フラッシュメモリのブロックおよびページ配置を示す図である。
図１に示すように、２Ｇbitチップには、１２８ＫＢのブロックＢＬＫが２０４８個あり、２Ｇｂ＝２５６ＭＢ＝１２８ＫＢ×２０４８で構成されている。また、各ブロックＢＬＫ０〜ＢＬＫ２０４７には、２ＫＢのページが６４個あり、１２８ＫＢ＝２ＫＢ×６４で構成されている。
【０００６】
また、上記のようなＮＡＮＤ型フラッシュメモリを用いたシステムとしては、たとえば特許文献１，２，３に開示されたシステムが知られている。
【０００７】
フラッシュメモリを用いたメモリシステムにおいて、特定物理アドレスブロックに書き換えが集中しないようにウェアー・レベリング（Wear-leveling）制御を行っている。
フラッシュメモリは、記憶データを書き換える際に書き込みの前に消去を行わないとならない。そして、既に不必要となった古いブロックを予め消去しておき、その消去されたブロックに新しいデータを書き込み、そのブロックの論理ブロックアドレスを更新する。
一方、ＮＡＮＤ型フラッシュメモリの書き換え回数寿命は、一つのメモリセルに１ビットのデータを格納する２値品で、０．３〜１×１０６回と言われている。
したがって、ウェアー・レベリング制御とは、ある特定の物理アドレスのブロックに書き換えが集中しないように制御することを目的としている。
【０００８】
ウェアー・レベリング制御には、大きくは二通りの方式がある。
書き換えを行わない物理アドレスのブロックは、そのまま放置しておき、書き換えを行う物理アドレスのブロックのみを書き換えを行う際に消去済みの任意の物理アドレスのブロックと交換して行き、自動的にウェアー・レベリング制御が行えるようにしたパッシブ・ウェアー・レベリング（Passive-wear-leveling）制御方式と、書き換えを行わない物理アドレスのブロックも含め、全ての物理アドレスのブロックにおいて、書き換え回数が平均化されるように書き換えを行うアクティブ・ウェアー・レベリング（Active-wear-leveling）制御方式と、がある。
アクティブ・ウェアー・レベリング制御に関しては、たとえば、特許文献４に開示されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】E. Harari et al., “Flash EEPROM System,” USP5,602,987, Feb. 11, 1997.
【特許文献２】P. Estakhri et al., “Moving Sectors Within A Block Of Information In A Flash Memory Mass Storage Architecture,” USP5,907,856, May 25, 1999.
【特許文献３】D. Moran et al., “Flash Memory System Providing Both Bios and User Storage Capability,” USP5,519,843, May 21, 1996.
【特許文献４】K. M. J. Lofgren al., “Wear Leveling Techniques for Flash EEPROM Systems,” USP6,594,183 B1, Jul. 15, 2003.
【非特許文献】
【００１０】
【非特許文献１】K.-D. Suh et al., “A 3.3V 32Mb NAND Flash Memory with Incremental Step Pulse Programming Scheme,” IEEE J. Solid-State Circuits, vol.30, pp.1149-1156, Nov. 1995.
【非特許文献２】Y. Iwata et al., “A 35ns Cycle Time 3.3V Only 32Mb NAND Flash EEPROM,” IEEE J. Solid-State Circuits, vol.30, pp.1157-1164, Nov. 1995.
【発明の概要】
【発明が解決しようとする課題】
【００１１】
ところで、特許文献４においては、「書き換えを重ねるうちに、書き換え回数の不均一性が生じる不揮発性メモリシステムにおいて、互いに消去可能な複数のメモリセルグループに分かれた構成で、ホストから第１の論理アドレスとデータを受け取り、第１の論理アドレスを第１の物理アドレスへの論物変換を行い、第１の物理アドレスへデータを書き込む。さらに第２のデータと第１の論理アドレスをホストから受けた際に、第１の消去単位があらかじめ定めた書き換え回数を上回っているときに、第１の論理アドレスを異なるメモリセルグループの第２の物理アドレスへ変換する。」という定義がある。
【００１２】
したがって、アクティブ・ウェアー・レベリング制御においては、書き換えを行う必要の無いブロックにおいても平均的に書き換えが行われる。これは、結果として、不必要に多くの書き換えを行ってしまう場合がある。
【００１３】
図２および図３は、ＮＡＮＤ型フラッシュメモリの実使用の例を示す図である。そして、図２は、ＮＡＮＤ型フラッシュメモリ容量の大半のブロックが、頻繁に書き換えを行うブロックＷＢＬＫで占められている場合を、また、逆に図３は、ＮＡＮＤ型フラッシュメモリ容量の大半のブロックが、殆ど書き換えを行わないブロックＲＥＷＢＬＫで占められている場合をそれぞれ示している。
【００１４】
図２の場合は、アクティブ・ウェアー・レベリング制御を行ってしまうと、大半のブロックが書き換えを頻繁に行って自動的にウェアー・レベリング制御を行っているにもかかわらず、さらに全てのブロックにおいて書き換え回数を平均化するために不必要な書き換えを行ってしまい、この結果、書き換え回数寿命に全体のブロックが早く到達してしまう。
【００１５】
一方、図３の場合は、パッシブ・ウェアー・レベリング制御を行ってしまうと、自動的にウェアー・レベリングが行われるのは、頻繁に書き換えを行う数少ないブロックに対してであり、これらのブロックは直ぐに書き換え回数寿命に達してしまう。
【００１６】
したがって、図２の場合には、パッシブ・ウェアー・レベリング制御が、また、図３の場合には、アクティブ・ウェアー・レベリング制御が最適と言える。
【００１７】
また、図４は、たとえば２０４８個のブロックがあり、その幾つかが消去済みブロックＥＲＤＢＬＫになっている場合を示す図である。
この際、データ書き換えを行う場合、まず消去済みブロックＥＲＤＢＬＫを探すのであるが、物理ブロックのアドレスが小さい順に探していくため、どうしても物理ブロックのアドレスが小さいブロックに書き換えが集中し、書き換え回数が多くなってしまう不利益がある。
【００１８】
本発明の目的は、頻繁に書き換えを行うデータ領域と殆ど書き換えを行わないデータ領域とが混在するデータを格納している際にも常に最適なウェアー・レベリング制御が行うことが可能となり、システムの書き換え回数の実効的な寿命を大幅に改善することが可能なメモリシステムを提供することにある。
【課題を解決するための手段】
【００１９】
本発明の第１の観点は、不揮発性半導体記憶装置を用いたメモリシステムであって、頻繁に書き換えを行う第１データ領域および殆ど書き換えを行わない第２データ領域を含む不揮発性メモリ部と、制御部と、を有し、上記制御部は、上記頻繁に書き換えを行う第１データ領域の新しい書き換え先の物理ブロックアドレスを、上記殆ど書き換えを行わない第２データ領域の論理ブロックアドレスを順次選択し、当該選択した論理ブロックアドレスに対応する物理ブロックアドレスに更新する。
【００２０】
好適には、上記制御部は、前記殆ど書き換えを行わない第２データ領域の論理ブロックアドレスに格納されたデータを、消去済みのブロックにコピーした後、コピー元のブロックは消去しておく。
【００２１】
好適には、上記制御部は、上記殆ど書き換えを行わないデータを格納している論理ブロックアドレス、および、上記頻繁に書き換えを行うデータを格納している論理ブロックアドレスの少なくともいずれかに一方に識別用フラグを設けている。
【００２２】
好適には、制御部は、消去済みのブロックに消去後、直ちに消去済み論理ブロックアドレスを書き込み、書き換えを行うブロックは、上記消去済み論理ブロックアドレスに従って、順次書き換えを行う。
【００２３】
本発明の第２の観点は、不揮発性半導体記憶装置を用いたメモリシステムにおいて、頻繁に書き換えを行う第１データ領域および殆ど書き換えを行わない第２データ領域を含む不揮発性メモリ部と、上記頻繁に書き換えを行う第１データ領域の新しい書き換え先の物理ブロックアドレスを、上記殆ど書き換えを行わない第２データ領域の論理ブロックアドレスを順次選択し、当該選択した論理ブロックアドレスに対応する物理ブロックアドレスに更新する制御部と、を有し、上記制御部は、特定物理アドレスブロックに書き換えが集中しないウェアー・レベリング（Wear-leveling）制御を行う際、書き換えを行わない物理アドレスブロックは、そのまま放置しておくパッシブ・ウェアー・レベリング（Passive-wear-leveling）制御と、書き換えを行わない物理アドレスブロックも全ての物理アドレスブロックの書き換え回数が平均化されるように書き換えを行うアクティブ・ウェアー・レベリング（Active-wear-leveling）制御とが可能であり、上記不揮発性メモリ部には、上記パッシブ・ウェアー・レベリング制御および上記アクティブ・ウェアー・レベリング制御の方式選択、若しくは、両ウェアー・レベリングの条件設定値が格納されている。
【００２４】
好適には、上記制御部は、上記不揮発性メモリ部の半分以上のブロックに書き換えを頻繁に行わないデータを格納する場合には、上記アクティブ・ウェアー・レベリング制御方式を選択し、上記不揮発性メモリ部の半分以上のブロックには、書き換えを頻繁に行うデータを格納する場合には、上記パッシブ・ウェアー・レベリング制御方式を選択する。
【００２５】
好適には、ページバッファを有し、上記パッシブ・ウェアー・レベリング制御および上記アクティブ・ウェアー・レベリング制御の方式選択、若しくは、両ウェアー・レベリングの条件設定値は、上記不揮発性メモリ部の第一のページに格納され、電源投入時に自動的にページバッファに読み出される。
【００２６】
好適には、上記パッシブ・ウェアー・レベリング制御および上記アクティブ・ウェアー・レベリング制御の方式選択、および、両ウェアー・レベリングの条件設定値は任意に設定可能である。
【発明の効果】
【００２７】
本発明によれば、頻繁に書き換えを行う第１データ領域と殆ど書き換えを行わない第２データ領域とが混在するデータを格納している際にも常に最適なウェアー・レベリング制御が行うことが可能となり、不揮発性半導体記憶装置を用いたメモリシステムの書き換え回数の実効的な寿命を大幅に改善することができる。
システムの書き換え回数が増加することにより、より信頼性の高いシステムを提供できることは言うまでも無く、さらに書き換え回数寿命が延びたことにより、システムの低コスト化に繋がる。
【図面の簡単な説明】
【００２８】
【図１】一般的な２値２ＧbitＮＡＮＤ型フラッシュメモリのブロックおよびページ配置例を示す図である。
【図２】ＮＡＮＤ型フラッシュメモリの実使用の例を示す図であって、ＮＡＮＤ型フラッシュメモリ容量の大半のブロックが、頻繁に書き換えを行うブロックで占められている場合を示す図である。
【図３】ＮＡＮＤ型フラッシュメモリの実使用の例を示す図であって、ＮＡＮＤ型フラッシュ、メモリ容量の大半のブロックが、殆ど書き換えを行わないブロックで占められている場合を示すである。
【図４】一般的なフラッシュメモリにおける消去済みブロックの例を示す図である。
【図５】本発明の実施形態に係るメモリシステム（記憶装置）を示す構成図である。
【図６】本実施形態に係るＮＡＮＤ型フラッシュメモリにおけるデータ領域の構成例を示す図である。
【図７】図６の対応する論理ブロックアドレスＬＡを物理ブロックアドレスＰＡに変換して見た例を示す図である。
【図８】殆ど書き換えを行わないデータを格納している論理ブロックアドレスＬＡ２にフラグ＊を設けた例を示す図である。
【図９】頻繁に書き換えを行うデータを格納している論理ブロックアドレスＬＡ１にフラグ＊を設けた例を示す図である。
【図１０】殆ど書き換えを行わないデータを格納している論理ブロックアドレスＬＡ２および頻繁に書き換えを行うデータを格納している論理ブロックアドレスＬＡ１にフラグ＊を設けた例を示す図である。
【図１１】消去済み論理ブロックアドレスに従って、順次書き換えを行い、特定の物理ブロックに書き換えが集中し、特定の物理ブロックの書き換え回数のみが増加しないように平均化されるようにした例を示す図である。
【図１２】本実施形態に係るＮＡＮＤ型フラッシュメモリの１ブロックにおけるメモリセルアレイおよびロウデコーダを示す図である。
【図１３】アクティブ・ウェアー・レベリングおよびパッシブ・ウェアー・レベリングの条件設定値をＮＡＮＤ型フラッシュメモリに格納しておく例を示す図である。
【図１４】第１データ領域への書き換え時に毎回アクティブ・ウェアー・レベリングを行う場合を説明するためのフローチャートである。
【図１５】図１４の処理フローにおいて、第１データ領域Ｂ（１１１）の論理ブロックＢ−３に書き換えがあった場合の書き換え前と後の状態を示す図である。
【図１６】図１４の処理フローにおいて、図１５のように第１データ領域Ｂ（１１１）の論理ブロックＢ−３に書き換え後に、論理ブロックＢ−４に書き換えがあった場合の書き換え前と後の状態を示す図である。
【図１７】第１データ領域への書き換え時にＮ回に１回アクティブ・ウェアー・レベリングを行う場合を説明するためのフローチャートである。
【図１８】書き換え時にホストコマンドによりアクティブ・ウェアー・レベリングを行う場合を説明するためのフローチャートである。
【発明を実施するための形態】
【００２９】
以下、本発明の実施形態を図面に関連付けて説明する。
【００３０】
図５は、本発明の実施形態に係るメモリシステム（記憶装置）を示す構成図である。
【００３１】
図５のメモリシステム（記憶装置）１０は、不揮発性メモリ部としてのＮＡＮＤ型フラッシュメモリ１１、ページバッファ１２、制御部１３、インターフェース回路（Ｉ／Ｆ）１４、および内部データバス１５を、主構成要素として有している。
【００３２】
メモリシステム１０は、内部データバス１５には、たとえば１６ビットの入出力を持つ１チップのＮＡＮＤ型フラッシュメモリ１１が並列接続されている。
ページバッファ１２は、アクセスされたページデータを内部バス１５を介して一時記憶するものであり、外部とのインターフェース回路１４に接続されている。
【００３３】
制御部１３は、改善したウェアー・レベリング制御方式に基づき、フラッシュメモリ１１へのアクセス制御を行い、後で説明するように、フラッシュメモリ１１における頻繁に書き換えを行う第１データ領域と、殆ど書き換えを行わない第２データ領域とが混在するデータを格納している際にも常に最適なウェアー・レベリング制御を実現している。
【００３４】
本実施形態のＮＡＮＤ型フラッシュメモリ１１は、頻繁に書き換えを行う第１データ領域１１１と殆ど書き換えを行わない第２データ領域１１２とを有する。
そして、フラッシュメモリ１１は、制御部１３により、頻繁に書き換えを行うデータ領域の新しい書き換え先の物理ブロックアドレス（ＰＡ：ＰＨＩＳＩＣＡＬ  ＡＤＤＲＥＳＳ）は、殆ど書き換えを行わない第２データ領域の論理ブロックドレス（ＬＡ：ＬＯＧＩＣＡＬ  ＡＤＤＲＥＳＳ）が順次選択され、その論理ブロックアドレスＬＡに対応する物理ページアドレスＰＡに更新される。
【００３５】
図６は、本実施形態に係るＮＡＮＤ型フラッシュメモリにおけるデータ領域の構成例を示す図である。
【００３６】
図６に示すように、本実施形態のフラッシュメモリ１１は、頻繁に書き換えを行う第１データ領域１１１、および殆ど書き換えを行わない第２データ領域１１２を有している。
図６の例では、フラッシュメモリ１１の記憶容量の大半のブロックが、殆ど書き換えを行わないブロックで占められている場合を示している。なお、図２は、論理ブロックアドレスＬＡで示した例である。
【００３７】
図７は、図６の対応する論理ブロックアドレスＬＡを物理ブロックアドレスＰＡに変換して見た例を示す図である。
図７においては、頻繁に書き換えを行う第１データ領域１１１の新しい書き換え先の物理ブロックアドレスＰＡは、殆ど書き換えを行わない第２データ領域１１２の論理ブロックアドレスＬＡを順次選択し、その論理ブロックアドレスＬＡに対応する物理ブロックアドレスＰＡに更新される様子が示されている。
【００３８】
また、本実施形態のＮＡＮＤ型フラッシュメモリ１１は、殆ど書き換えを行わない第２データ領域１１２の論理ブロックアドレスＬＡに格納されたデータは、消去済みのブロックにコピーされた後、コピー元のブロックは消去しておくように制御され、管理される。
そして、本実施形態のＮＡＮＤ型フラッシュメモリ１１は、殆ど書き換えを行わないデータを格納している第２データ領域１１２の論理ブロックアドレスＬＡ２、若しくは、頻繁に書き換えを行うデータを格納している第１領域１１１の論理ブロックアドレスＬＡ１、若しくは、それぞれにはフラグを設けており、それぞれを識別可能にしている。
【００３９】
また、図８は、殆ど書き換えを行わないデータを格納している論理ブロックアドレスＬＡ２にフラグ＊を設けた例を示しており、図９は、頻繁に書き換えを行うデータを格納している論理ブロックアドレスにＬＡ１フラグ＊を設けた例を示しており、図１０は、それぞれにはフラグを設けた例を示している。
【００４０】
また、本実施形態のＮＡＮＤ型フラッシュメモリ１１において、消去済みのブロックに消去後、直ちに消去済み論理ブロックアドレスを書き込み、書き換えを行うブロックは、消去済み論理ブロックアドレスに従って、順次書き換えを行い、特定の物理ブロックに書き換えが集中し、特定の物理ブロックの書き換え回数のみが増加しないように平均化される。
【００４１】
図１１は、消去済みのブロックに消去後すぐに消去済み論理ブロックアドレスを書き込み、書き換えを行うブロックは、消去済み論理ブロックアドレスに従って、順次書き換えを行い、特定の物理ブロックに書き換えが集中し、特定の物理ブロックの書き換え回数のみが増加しないように平均化されるようにした例を示している。
【００４２】
図１１は、２値２ＧbitＮＡＮＤ型フラッシュメモリのブロックおよびページ配置を示している。
図１１に示すように、２Ｇbitチップには、１２８ＫＢのブロックＢＬＫが２０４８個あり、２Ｇｂ＝２５６ＭＢ＝１２８ＫＢ×２０４８で構成されている。また、各ブロックＢＬＫ０〜ＢＬＫ２０４７には、２ＫＢのページが６４個あり、１２８ＫＢ＝２ＫＢ×６４で構成されている。
【００４３】
ここで、以上のようにデータ領域が第１データ領域１１１と第２データ領域１１２とを有し、制御部１３の制御下でアクセスされるＮＡＮＤ型フラッシュメモリ１１の具体的な構成例について説明する。
【００４４】
図１２は、本実施形態に係るＮＡＮＤ型フラッシュメモリの１ブロックにおけるメモリセルアレイおよびロウデコーダを示す図である。
【００４５】
メモリセルアレイ１１３は、図１２に示すように、直列に接続された複数、たとえば１６個のメモリセルトランジスタＭ０〜Ｍ１５およびその両端に直列に接続された２個の選択ゲートトランジスタＳＴ０，ＳＴ１により構成されたメモリセルユニット（メモリセルユニット）ＭＣＵＴ００，ＭＣＵＴ０１，ＭＣＵＴ０４２２３がマトリクス状に配置されている。
なお、図１２では、図面の簡単化のため、１行４２２４列の４２２４個のメモリセルユニットＭＣＵＴ００〜ＭＣＵＴ０４２２３が配列された１行のブロックＢＬＫ０のみについて示しているが、実際には、ブロックＢＬＫ０と同様の構成を有する複数（ｍ個）のブロックＢＬＫ１〜ＢＬＫｍがさらに配列される。
また、図１２の例では、ビット線本数は、通常５１２バイトに予備の１６バイトを加えた５２８バイト、つまり４２２４本としている。
【００４６】
メモリセルユニットＭＣＵＴ００のメモリセルトランジスタＭ０のドレインに接続された選択ゲートトランジスタＳＴ０がビット線ＢＬ０に接続され、メモリセルユニットＭＣＵＴ０１のメモリセルトランジスタＭ０のドレインがビット線ＢＬ１に接続され、同様にして、メモリセルユニットＭＣＵＴ０４２２３のメモリセルトランジスタＭ０のドレインがビット線ＢＬ４２２３に接続されている。
また、各メモリセルユニットＭＣＵＴ００〜０４２２３のメモリセルトランジスタＭ１５のソースが接続された選択ゲートトランジスタＳＴ１が共通のソース線ＳＲＬに接続されている。
【００４７】
また、同一行に配置されたメモリセルユニットＭＣＵＴ００，ＭＣＵＴ０１〜ＭＣＵＴ０４２２３のメモリセルトランジスタのゲート電極が共通のワード線ＷＬ０〜ＷＬ１５に接続され、選択ゲートトランジスタＳＴ０のゲート電極が共通の選択ゲート線ＤＳＧに接続され、選択ゲートトランジスタＳＴ１のゲート電極が共通の選択ゲート線ＳＳＧに接続されている。
【００４８】
ロウデコーダ１１４は、ブロックアドレスデコーダ１１５により導通状態が制御される転送ゲート群１１４１、図示しないワード線デコーダから供給されるワード線および選択ゲート線用駆動電圧供給線ＶＣＧ０〜ＶＣＧ１５，ＶＤＳＧ，ＶＳＳＧを有している。
なお、図１２では、図面の簡単化のため、ブロックＢＬＫ０に対応するブロックアドレスデコーダ部分並びに転送ゲート群を示しているが、実際には、複数配列される図示しないブロックに対応してブロックアドレスデコーダ部分並びに転送ゲート群が設けられる。
【００４９】
ロウデコーダ１１４は、ワード線（制御ゲート線）を選択する機能を有し、リード（読み出し）、ライト（書き込み、プログラム）、あるいはイレーズ（消去）の動作を示すコントロール信号に応じて、アドレスレジスタに保持されたアドレスから動作に応じて図示しない昇圧回路により昇圧されたあるいは昇圧されていない電源電圧Ｖｃｃまたはそれ以下の駆動電圧が駆動電圧供給線ＶＣＧ０〜ＶＣＧ１５，ＶＤＳＧ，ＶＳＳＧに供給する。
【００５０】
転送ゲート群１１４１は、転送ゲートＴＷ０〜ＴＷ１５，ＴＤ０およびＴＳ０により構成されている。
転送ゲート群１１１４１は、ブロックアドレスデコーダ１１５でデコードされたブロックアドレスに応答して生成され、対応するブロックの選択ゲート線およびワード線を駆動するための信号ＢＳＥＬによって導通状態に保持させる。
具体的には、ブロックＢＬＫ０がアドレス指定されていた場合、各転送ゲートＴＷ０〜ＴＷ１５は、それぞれブロックアドレスデコーダ１１５の出力信号ＢＳＥＬ０に応じてワード線ＷＬ０〜ＷＬ１５と駆動電圧供給線ＶＣＧ０〜ＶＣＧ１５とを作動的に接続し、転送ゲートＴＤ０，ＴＳ０は同じくブロックアドレスデコーダ１９の出力信号ＢＳＥＬ０に応じて選択ゲート線ＤＳＧ，ＳＳＧと駆動電圧供給線ＶＤＳＧ，ＶＳＳＧとを作動的に接続する。
【００５１】
ブロックアドレスデコーダ１１５は、図示しないアドレスレジスタの保持されたアドレスからブロックアドレスをデコードし、デコードしたブロックアドレスに応答して、ロウデコーダ１１４の対応するブロックの選択ゲート線およびワード線を駆動するための転送ゲート群２２２１を信号ＢＳＥＬによって導通状態に保持させる。
【００５２】
図１のページバッファ１２は、フラッシュメモリ１１のメモリセルアレイ１１３からのリードデータ（読み出しデータ）あるいはメモリセルアレイ１１へのライトデータ（書き込みデータ）をページ単位でラッチする。
そして、ページバッファ１２には、このパッシブ・ウェアー・レベリング制御およびアクティブ・ウェアー・レベリング制御の方式選択、若しくは、両ウェアー・レベリングの条件設定値は、フラッシュメモリ１１の第一のページに格納され、電源投入時に自動的に読み出される。
【００５３】
本実施形態のメモリシステム１０において、制御部１３は、特定物理アドレスブロックに書き換えが集中しないウェアー・レベリング（Wear-leveling）制御を行う際、書き換えを行わない物理アドレスブロックは、そのまま放置しておくパッシブ・ウェアー・レベリング（Passive-wear-leveling）制御と、書き換えを行わない物理アドレスブロックも全ての物理アドレスブロックの書き換え回数が平均化されるように書き換えを行うアクティブ・ウェアー・レベリング（Active-wear-leveling）制御とを行う。
パッシブ・ウェアー・レベリング制御およびアクティブ・ウェアー・レベリン制御の方式選択、若しくは、両ウェアー・レベリングの条件設定値をフラッシュメモリ１１に格納しておき、ユーザが自由に両ウェアー・レベリング制御の方式選択および条件設定を行えるように構成される。
そして、このパッシブ・ウェアー・レベリング制御およびアクティブ・ウェアー・レベリング制御の方式選択、若しくは、両ウェアー・レベリングの条件設定値は、フラッシュメモリ１１の第一のページに格納され、電源投入時に自動的にページバッファ１２に読み出される。
【００５４】
制御部１３は、フラッシュメモリに対して特定物理アドレスブロックに書き換えが集中しないウェアー・レベリング（Wear-leveling）制御を行う際、フラッシュメモリ１１の半分以上のブロックに、書き換えを頻繁に行わないデータを格納する場合には、アクティブ・ウェアー・レベリング制御方式を選択する。
一方、制御部１３は、フラッシュメモリ１１の半分以上のブロックには、書き換えを頻繁に行うデータを格納する場合には、パッシブ・ウェアー・レベリング制御方式を選択する。
【００５５】
図１３は、アクティブ・ウェアー・レベリングおよびパッシブ・ウェアー・レベリングの条件設定値をＮＡＮＤ型フラッシュメモリに格納しておく例を示す図である。
【００５６】
たとえば、ＮＡＮＤ型フラッシュメモリ１１の半分以上のブロックには、書き換えを頻繁に行わないデータを格納する場合には、アクティブ・ウェアー・レベリング制御方式を選択し、一方、ＮＡＮＤ型フラッシュメモリ１１の半分以上のブロックには、書き換えを頻繁に行うデータを格納する場合には、パッシブ・ウェアー・レベリング制御方式を選択されるように両ウェアー・レベリングの条件設定値をＮＡＮＤ型フラッシュメモリ１１に格納しておく。
また、図１３において、パッシブ・ウェアー・レベリング制御およびアクティブ・ウェアー・レベリング制御の方式選択、若しくは、両ウェアー・レベリングの条件設定値は、ＮＡＮＤ型フラッシュメモリの第一のページに格納され、電源投入時に自動的にページバッファ１３に読み出されることを示している。
【００５７】
次に、制御部１３におけるウェアー・レベリング（Wear-leveling）制御動作について説明する。
ここでは、第１データ領域１１１への書き換え時に毎回アクティブ・ウェアー・レベリングを行う場合、第１データ領域１１１への書き換え時にＮ回に１回アクティブ・ウェアー・レベリングを行う場合、および書き換え時にホストコマンドによりアクティブ・ウェアー・レベリングを行う場合を例について順を追って説明する。
【００５８】
まず、第１データ領域１１１への書き換え時に毎回アクティブ・ウェアー・レベリングを行う場合を説明する。
図１４は、第１データ領域１１１への書き換え時に毎回アクティブ・ウェアー・レベリングを行う場合を説明するためのフローチャートである。
なお、以下は、第１データ領域１１１をデータ領域Ｂとし、第２データ領域１１２をデータ領域Ａとして説明する。
【００５９】
この場合、処理済物理ブロックＸを取得し（ＳＴ１）、データ書き換えはデータ領域Ｂ（第１データ領域１１１）であるか否かの判別を行う（ＳＴ２）。
ステップＳＴ２において、データを書き換えるべき領域がデータ領域Ｂ（第１データ領域１１１）であると判別すると、データ領域Ａ（第２データ領域１１２）に対応する物理ブロックＹのデータを消去済物理ブロックＸへ移動する（ＳＴ３）。
次に、物理ブロックＹを消去する（ＳＴ４）、書き換えデータを物理ブロックＹへ書き込む（ＳＴ５）。
一方、ステップＳＴ２において、データを書き換えるべき領域がデータ領域Ｂ（第１データ領域１１１）でないと判別すると、書き換えデータを物理ブロックＸへ書き込む（ＳＴ６）。
ステップＳＴ５またはステップＳＴ６の処理後、書き換えデータに対応した物理ブロックＺを消去する（ＳＴ７）。
【００６０】
図１５は、図１４の処理フローにおいて、第１データ領域Ｂ（１１１）の論理ブロックＢ−３に書き換えがあった場合の書き換え前と後の状態を示す図である。
【００６１】
図１５の例においては、第１データ領域Ｂ（１１１）が論理ブロックＢ−１〜Ｂ−ｍを含み、第２データ領域Ａ（１１２）が論理ブロックＡ−１〜Ａ−ｎを含む場合である。
第２データ領域Ａ（１１２）の論理ブロックＡ−１〜Ａ−ｎが物理ブロック１〜ｎとなり、第１データ領域Ｂ（１１１）が論理ブロックＢ−１〜Ｂ−ｍが物理ブロック（ｎ＋１）〜（ｎ＋ｍ）となり、開き領域が物理ブロック（ｎ＋ｍ＋１）〜（ｎ＋ｍ＋ｋ）となっている。
この書き換え前の状態から、第１データ領域Ｂ（１１１）の論理ブロックＢ−３を書き換えする場合には、第２データ領域Ａ（１１２）の論理ブロックＡ−１に対応する物理ブロックも一緒に入れ替える。
この例の書き換え後の状態では、消去済物理ブロックＸは（ｎ＋ｍ＋１）であり、第２データ領域Ａ（１１２）の物理ブロックは１であり、書き換えデータに対応していた物理ブロックＺは（ｎ＋３）であり、この物理ブロック（ｎ＋３）は空領域となる。
【００６２】
図１６は、図１４の処理フローにおいて、図１５のように第１データ領域Ｂ（１１１）の論理ブロックＢ−３に書き換え後に、論理ブロックＢ−４に書き換えがあった場合の書き換え前と後の状態を示す図である。
【００６３】
図１５の書き換え後に生じた書き換え前の状態から、第１データ領域Ｂ（１１１）の論理ブロックＢ−４を書き換えする場合には、第２データ領域Ａ（１１２）の論理ブロックＡ−２に対応する物理ブロックも一緒に入れ替える。
この例の書き換え後の状態では、消去済物理ブロックＸは（ｎ＋ｍ＋２）であり、第２データ領域Ａ（１１２）の物理ブロックは２であり、書き換えデータに対応していた物理ブロックＺは（ｎ＋４）であり、この物理ブロック（ｎ＋４）は空領域となる。
【００６４】
次に、第１データ領域１１１への書き換え時にＮ回に１回アクティブ・ウェアー・レベリングを行う場合を説明する。
図１７は、第１データ領域１１１への書き換え時にＮ回に１回アクティブ・ウェアー・レベリングを行う場合を説明するためのフローチャートである。
【００６５】
この場合、処理済物理ブロックＸを取得し（ＳＴ１１）、データ書き換えはデータ領域Ｂ（第１データ領域１１１）であるか否かの判別を行う（ＳＴ１２）。
ステップＳＴ１２において、データを書き換えるべき領域がデータ領域Ｂ（第１データ領域１１１）であると判別すると、所定数Ｊが０になったか否かの判別を行う（ＳＴ１３）。
ステップＳＴ１３においてＪが０に達したと判別すると、Ｊから１をデクリメントして次の処理に移行する。
ステップＳＴ１３においてＪが０に達したと判別すると、データ領域Ａ（第２データ領域１１２）に対応する物理ブロックＹのデータを消去済物理ブロックＸへ移動する（ＳＴ１５）。
次に、物理ブロックＹを消去する（ＳＴ１６）、書き換えデータを物理ブロックＹへ書き込む（ＳＴ１７）。そして、ＪをＮとする（ＳＴ１８）。
一方、ステップＳＴ１２において、データを書き換えるべき領域がデータ領域Ｂ（第１データ領域１１１）でないと判別した場合、またはステップＳＴ１４でＪから１からデクリメントした場合には、書き換えデータを物理ブロックＸへ書き込む（ＳＴ１９）。
ステップＳＴ１８またはステップＳＴ１９の処理後、書き換えデータに対応した物理ブロックＺを消去する（ＳＴ２０）。
【００６６】
次に、書き換え時にホストコマンドによりアクティブ・ウェアー・レベリングを行う場合を説明する。
図１８は、書き換え時にホストコマンドによりアクティブ・ウェアー・レベリングを行う場合を説明するためのフローチャートである。
【００６７】
この場合、処理済物理ブロックＸを取得し（ＳＴ２１）、データ書き換えはアクティブ・ウェアー・レベリングであるか否かの判別を行う（ＳＴ２２）。
ステップＳＴ２２において、データ書き換えがアクティブ・ウェアー・レベリングであると判別すると、データ領域Ａ（第２データ領域１１２）に対応する物理ブロックＹのデータを消去済物理ブロックＸへ移動する（ＳＴ２３）。
次に、物理ブロックＹを消去する（ＳＴ２４）、書き換えデータを物理ブロックＹへ書き込む（ＳＴ２５）。
一方、ステップＳＴ２２において、データ書き換えがアクティブ・ウェアー・レベリングでないと判別すると、書き換えデータを物理ブロックＸへ書き込む（ＳＴ２６）。
ステップＳ２Ｔ５またはステップＳＴ２６の処理後、書き換えデータに対応した物理ブロックＺを消去する（ＳＴ２７）。
【００６８】
以上説明したように、本実施形態によれば、頻繁に書き換えを行う第１データ領域および殆ど書き換えを行わない第２データ領域を含むフラッシュメモリ１１と、頻繁に書き換えを行う第１データ領域の新しい書き換え先の物理ブロックアドレスを、殆ど書き換えを行わない第２データ領域の論理ブロックアドレスを順次選択し、この選択した論理ブロックアドレスに対応する物理ブロックアドレスに更新する制御部１３と、を有し、制御部１３は、特定物理アドレスブロックに書き換えが集中しないウェアー・レベリング（Wear-leveling）制御を行う際、書き換えを行わない物理アドレスブロックは、そのまま放置しておくパッシブ・ウェアー・レベリング（Passive-wear-leveling）制御と、書き換えを行わない物理アドレスブロックも全ての物理アドレスブロックの書き換え回数が平均化されるように書き換えを行うアクティブ・ウェアー・レベリング（Active-wear-leveling）制御とが可能であり、フラッシュメモリ１１には、パッシブ・ウェアー・レベリング制御および上記アクティブ・ウェアー・レベリング制御の方式選択、若しくは、両ウェアー・レベリングの条件設定値が格納されていることから、以下の効果を得ることができる。
【００６９】
すなわち、不揮発性半導体記憶装置を用いたシステムにおいて、ウェアー・レベリング制御方式を大幅に改善することができ、頻繁に書き換えを行うデータ領域と殆ど書き換えを行わないデータ領域とが混在するデータを格納している際にも常に最適なウェアー・レベリング制御が行うことが可能となり、不揮発性半導体記憶装置を用いたメモリシステムの書き換え回数の実効的な寿命を大幅に改善することができる利点がある。
メモリシステムの書き換え回数が増加することにより、より信頼性の高いシステムを提供できることは言うまでも無く、さらに書き換え回数寿命が延びたことにより、システムの低コスト化に繋がる。
【符号の説明】
【００７０】
１０・・・メモリシステム、１１・・・不揮発性メモリ部としてのＮＡＮＤ型フラッシュメモリ１２・・・ページバッファ、１３・・・制御部、１４・・・インターフェース回路（Ｉ／Ｆ）、１５・・・内部データバス。
【図１】
0005299493.tif 000002
【図２】
0005299493.tif 000003
【図３】
0005299493.tif 000004
【図４】
0005299493.tif 000005
【図５】
0005299493.tif 000006
【図６】
0005299493.tif 000007
【図７】
0005299493.tif 000008
【図８】
0005299493.tif 000009
【図９】
0005299493.tif 000010
【図１０】
0005299493.tif 000011
【図１１】
0005299493.tif 000012
【図１２】
0005299493.tif 000013
【図１３】
0005299493.tif 000014
【図１４】
0005299493.tif 000015
【図１５】
0005299493.tif 000016
【図１６】
0005299493.tif 000017
【図１７】
0005299493.tif 000018
【図１８】
0005299493.tif 000019