(57)【要約】      （修正有）【課題】メモリセルアレイのブロックに対する書き換え回数を自動的に分散させることが可能な不揮発性メモリを提供する。【解決手段】入力されたデータが記憶可能な第１のデータビット領域１ａと第１のフラグビット領域１ｃとを含む対象ブロックＡと、入力されたデータが記憶可能な第２のデータビット領域１ｂと第２のフラグビット領域１ｄとを含む冗長ブロックＢと、対象ブロックの対象ブロックアドレスが記憶可能な特殊ビット領域１ｅを含む特殊ブロックＣと、を有するメモリセルアレイ１と、対象ブロックアドレスを保持する対象ブロック保持部１０４と、第１のフラグ情報を記憶する対象ブロックフラグ記憶部１０７と、第２のフラグ情報を記憶する冗長ブロックフラグ記憶部１０８と、入力されたブロックアドレスと対象ブロックアドレスとが一致するか否かを検知する一致検知回路１１０と、ブロック選択を制御するブロック切替回路１１１と、を備える。【選択図】図２
2011198409.tif 000002
【特許請求の範囲】
【請求項１】
入力されたデータが記憶可能な第１のデータビット領域と第１のフラグ情報が記憶可能な第１のフラグビット領域とを含む対象ブロックと、入力されたデータが記憶可能な第２のデータビット領域と第２のフラグ情報が記憶可能な第２のフラグビット領域とを含む冗長ブロックと、前記対象ブロックの対象ブロックアドレスが記憶可能な特殊ビット領域を含む特殊ブロックと、を有するメモリセルアレイと、
前記対象ブロックアドレスを保持するための対象ブロック保持部と、
前記第１のフラグ情報を記憶する対象ブロックフラグ記憶部と、
前記第２のフラグ情報を記憶する冗長ブロックフラグ記憶部と、
入力されたブロックアドレスと前記対象ブロック保持部に保持された前記対象ブロックアドレスとが一致するか否かを検知する一致検知回路と、
入力されたブロックアドレスと前記対象ブロックアドレスとが一致することを前記一致検知回路が検知した場合に、前記第１、第２のフラグ情報に基づいて、前記対象ブロックまたは前記冗長ブロックの何れか一方に対する選択を制御するブロック切替回路と、を備える
ことを特徴とする不揮発性メモリ。
【請求項２】
前記メモリセルアレイのブロックを選択するブロックデコーダをさらに備え、
前記ブロック切替回路は、入力されたブロックアドレスと前記対象ブロックアドレスとが一致することを前記一致検知回路が検知した場合に、前記第１、第２のフラグ情報に基づいて、前記対象ブロックまたは前記冗長ブロックの何れか一方を前記ブロックデコーダに選択させる
ことを特徴とする請求項１に記載の不揮発性メモリ。
【請求項３】
前記冗長ブロックアドレスを保持するための冗長ブロック保持部をさらに備え、
前記特殊ブロックは、前記冗長ブロックの冗長ブロックアドレスを前記特殊ビット領域に記憶可能であり、
前記ブロック切替回路は、入力されたブロックアドレスと前記対象ブロックアドレスとが一致することを前記一致検知回路が検知した場合に、前記第１、第２のフラグ情報に基づいて、前記対象ブロックアドレスまたは前記冗長ブロックアドレスを用いて、前記対象ブロックまたは前記冗長ブロックの何れか一方に対する選択を制御する
ことを特徴とする請求項１または２に記載の不揮発性メモリ。
【請求項４】
前記対象ブロックまたは前記冗長ブロックの一方に対する消去動作時に、次に前記対象ブロックまたは前記冗長ブロックの他方を前記ブロックデコーダに選択させるように、前記第１のフラグビット領域に記憶された前記第１のフラグ情報または前記第２のフラグビット領域に記憶された前記第２のフラグ情報を、書き換える
ことを特徴とする請求項２に記載の不揮発性メモリ。
【請求項５】
前記第１のフラグビット領域に記憶された前記第１のフラグ情報または前記第２のフラグビット領域に記憶された前記第２のフラグ情報を書き換えた後、書き換えられた前記第１のフラグビット領域に記憶された前記第１のフラグ情報または前記第２のフラグビット領域に記憶された前記第２のフラグ情報を、前記対象ブロックフラグ記憶部または前記冗長ブロックフラグ記憶部に記憶する
ことを特徴とする請求項４に記載の不揮発性メモリ。
【請求項６】
前記対象ブロックまたは前記冗長ブロックの一方に対する書き込み動作時に、前記第１のフラグビット領域に記憶された前記第１のフラグ情報または前記第２のフラグビット領域に記憶された前記第２のフラグ情報を、書き換える
ことを特徴とする請求項１ないし３のいずれかに記載の不揮発性メモリ。
【請求項７】
電源オン時に、前記第１のフラグビット領域に記憶された前記第１のフラグ情報または前記第２のフラグビット領域に記憶された前記第２のフラグ情報を、書き換えるとともに、前記対象ブロックフラグ記憶部または前記冗長ブロックフラグ記憶部に、前記書き換えられた前記第１のフラグ情報または前記第２のフラグ情報を記憶する
ことを特徴とする請求項６に記載の不揮発性メモリ。
【請求項８】
前記第１、第２のフラグ情報を生成するフラグ生成回路をさらに備えること特徴とする請求項１に記載の不揮発性メモリ。
【請求項９】
前記冗長ブロックは、外部からアドレス指定できないようになっていることを特徴とする請求項１に記載の不揮発性メモリ。
【請求項１０】
前記不揮発性メモリは、ＮＡＮＤ型フラッシュメモリであることを特徴とする請求項１に記載の不揮発性メモリ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを書き換え可能なフラッシュメモリ等の不揮発性メモリに関する。
【背景技術】
【０００２】
近年、コンピュータが高性能化するにしたがって、扱われるデータは大容量化、多様化が進んでいる。
【０００３】
そして、これらのデータは、その性質に応じて、高信頼性や長期の使用寿命を要求される。データは、記憶媒体としてフラッシュメモリに代表される不揮発メモリに記憶される場合がある。
【０００４】
一般にフラッシュメモリは、記憶構造として浮遊ゲートにトンネル酸化膜層を通して電子を注入する。このため、書き換えを行う毎にトンネル酸化膜が劣化していく。このように、劣化したセルを含むブロックは、不良ブロックとなる。よって、特定のブロックに対して書き込み消去が集中するような使用状況の場合、早く製品寿命を迎えることにもなりかねない。
【０００５】
このような状況を回避する方法として、ウェアレベリングがある。例えば、メモリコントローラ側で、ブロック単位での書き換え回数を管理し、集中を避けるアルゴリズムによって書き換えの分散を行う方法（例えば、特許文献１、２参照。）や、リングバッファとして管理し、平均的にブロックを使用する方法などがある。また、従来の不揮発性メモリには、消去動作の経過時間を管理して、この経過時間に応じて、不良セルを冗長セルに置き換えるものがある（例えば、特許文献３参照。）。
【０００６】
書き換え回数や経過時間を管理する場合、その情報を記憶するための書き換え頻度が高くなる。このため、管理情報だけは書き換え制限のない記憶媒体に保存しなければならない問題がある。
【０００７】
またリングバッファの場合は、一定期間の履歴以外は上書きされてもかまわないようなログ管理などの利用が限られる問題がある。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００８-１１７００３号公報
【特許文献２】特許第２５８４１２０号明細書
【特許文献３】特開２００６−２９４１４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本発明は、メモリセルアレイのブロックに対する書き換え回数を自動的に分散させることが可能な不揮発性メモリを提供する。
【課題を解決するための手段】
【００１０】
本発明の一態様に係る実施例に従った不揮発性メモリは、
入力されたデータが記憶可能な第１のデータビット領域と第１のフラグ情報が記憶可能な第１のフラグビット領域とを含む対象ブロックと、入力されたデータが記憶可能な第２のデータビット領域と第２のフラグ情報が記憶可能な第２のフラグビット領域とを含む冗長ブロックと、前記対象ブロックの対象ブロックアドレスが記憶可能な特殊ビット領域を含む特殊ブロックと、を有するメモリセルアレイと、
前記対象ブロックアドレスを保持するための対象ブロック保持部と、
前記第１のフラグ情報を記憶する対象ブロックフラグ記憶部と、
前記第２のフラグ情報を記憶する冗長ブロックフラグ記憶部と、
入力されたブロックアドレスと前記対象ブロック保持部に保持された前記対象ブロックアドレスとが一致するか否かを検知する一致検知回路と、
入力されたブロックアドレスと前記対象ブロックアドレスとが一致することを前記一致検知回路が検知した場合に、前記第１、第２のフラグ情報に基づいて、前記対象ブロックまたは前記冗長ブロックの何れか一方に対する選択を制御するブロック切替回路と、を備える
ことを特徴とする。
【発明の効果】
【００１１】
本発明に係る不揮発性メモリによれば、メモリセルアレイのブロックに対する書き換え回数を自動的に分散させることができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の一態様である実施例１に係る不揮発性メモリ（ＮＡＮＤ型フラッシュメモリ）１００の構成の一例を示すブロック図である。
【図２】図１に示す不揮発性メモリ１００の書き換え回数を自動的に分散させるための構成に注目したブロック図である。
【図３】専用コマンド（セット用コマンド）の冗長ブロックを指定する書式の一例を示す図である。
【図４】専用コマンド（セット用コマンド）の冗長ブロックを指定しない書式の一例を示す図である。
【図５】冗長ブロックを指定する場合の専用コマンド（クリア用コマンド）の書式の一例を示す図である。
【図６】冗長ブロックを指定しない場合の専用コマンド（クリア用コマンド）の書式の一例を示す図である。
【図７】電源オン時の初期設定情報となるブロック切替情報のデータ列の書式の一例を示す図である。
【図８】電源オン時の初期設定情報となるブロック切替情報のデータ列の書式の他の例を示す図である。
【図９】電源オン時におけるブロック切替情報およびフラグ情報の読み出しシーケンスの一例を示す図である。
【図１０】メモリセルアレイ１のフラグビット領域１ｃに記憶されたフラグ情報を読み出す時の電圧関係を示す図である。
【図１１】消去動作時におけるフラグ情報のセットのシーケンスの一例を示す図である。
【図１２】フラグラッチの論理とアクセスするブロックとの関係の一例を示す図である。
【図１３】ブロックのデータの消去時に、フラグ情報を生成して、ブロックおよびフラグラッチに書き込む方法のシーケンスを示す図である。
【図１４】書き込み動作時におけるフラグ情報の選択されたブロックへのセットのシーケンスの一例を示す図である。
【図１５】消去動作時におけるフラグ情報のフラグラッチへのセットのシーケンスの一例を示す図である。
【図１６】フラグラッチの論理とアクセスするブロックとの関係の一例を示す図である。
【図１７】ブロックのデータの書き込み時に、フラグ情報を生成して、ブロックに書き込む方法のシーケンスを示す図である。
【発明を実施するための形態】
【００１３】
本発明に係る不揮発性メモリにおいては、例えば、メモリセルを搭載しているシステムの特定のブロックに使用頻度が偏る場合、頻度の高いブロックと未使用ブロックに対して、回路的にアドレスの切り替えを行い、ブロック当たりの書き換えを半分にする。
【００１４】
例えば、使用頻度の高い対象ブロックＡと切り替え対象としての未使用の冗長ブロックＢを設定する。該対象ブロックＡに対するデータの書き換えは、書き込みと消去を交互に行うので、消去を行った時に、再度対象ブロックＡについて書き換えを行う場合は、該冗長ブロックＢに回路的に切り替えを行う。
【００１５】
メモリセルを使用する外部回路側から見た場合は、対象ブロックＡに対してのみ書き換えを行っているが、実際は、消去を行う毎に書き換えブロックが切り替わる。このため、メモリセルの書き換え頻度は半分に抑えられる。
【００１６】
以下、本発明に係る各実施例について図面に基づいて説明する。
【実施例１】
【００１７】
図１は、本発明の一態様である実施例１に係る不揮発性メモリ（ＮＡＮＤ型フラッシュメモリ）１００の構成の一例を示すブロック図である。
【００１８】
図１に示すように、不揮発性メモリ１００は、メモリセルアレイ１と、ビット線制御回路２と、カラムデコーダ３と、データ入出力バッファ４と、データ入出力端子５と、ロウデコーダ６と、制御回路７と、制御信号入力端子８と、ソース線制御回路９と、ウェル制御回路１０と、を備える。
【００１９】
メモリセルアレイ１は、複数のビット線と複数のワード線とソース線を含む。このメモリセルアレイ１は、例えば、ＥＥＰＲＯＭセルからなる電気的にデータを書き換え可能なメモリセルトランジスタがマトリクス状に配置された複数のブロックで構成されている。
【００２０】
このメモリセルアレイ１には、ビット線の電圧を制御するためのビット線制御回路２と、ワード線の電圧を制御するためのロウデコーダ６とが接続されている。データの消去動作時には、何れかのブロックがロウデコーダ６により選択され、残りのブロックが非選択とされる。
【００２１】
ビット線制御回路２は、メモリセルアレイ１内のビット線の電圧をセンス増幅するセンスアンプと、書き込みを行うためのデータをラッチするためのページバッファとを含む。
【００２２】
このビット線制御回路２は、ビット線を介してメモリセルアレイ１中のメモリセルトランジスタのデータを読み出したり、ビット線を介して該メモリセルトランジスタの状態を検出したり、ビット線を介して該メモリセルトランジスタに書き込み制御電圧を印加して該メモリセルトランジスタに書き込みを行う。
【００２３】
また、ビット線制御回路２には、カラムデコーダ３、データ入出力バッファ４が接続されている。ビット線制御回路２内の該データ記憶回路は、カラムデコーダ３により選択され、このデータ記憶回路に読み出されたメモリセルトランジスタのデータは、データ入出力バッファ４を介してデータ入出力端子５から外部へ出力される。
【００２４】
また、外部からデータ入出力端子５に入力された書き込みデータは、データ入出力バッファ４を介して、カラムデコーダ３によって選択された該データ記憶回路に記憶される。データ入出力端子５からは、書き込みデータの他に、書き込み、読み出し、消去、およびステータスリード等の各種コマンド、アドレスも入力される。
【００２５】
ロウデコーダ６は、メモリセルアレイ１に接続されている。このロウデコーダ６は、メモリセルアレイ１のワード線に、読み出し或いは書き込み或いは消去に必要な電圧を、印加する。
【００２６】
ソース線制御回路９は、メモリセルアレイ１に接続されている。このソース線制御回路９は、ソース線の電圧を制御するようになっている。
【００２７】
ウェル制御回路１０は、メモリセルアレイ１に接続されている。このウェル制御回路１０は、メモリセルトランジスタが形成される半導体基板（ウェル）の電圧を制御するようになっている。
【００２８】
制御回路７は、メモリセルアレイ１、ビット線制御回路２、カラムデコーダ３、データ入出力バッファ４、ロウデコーダ６、ソース線制御回路９、および、ウェル制御回路１０を、制御するようになっている。
【００２９】
ここでは、この制御回路７には、電源電圧を昇圧する昇圧回路（図示せず）が含まれているものとする。制御回路７は、該昇圧回路により電源電圧を必要に応じて昇圧し、ビット線制御回路２、カラムデコーダ３、データ入出力バッファ４、ロウデコーダ６、ソース線制御回路９、および、ウェル制御回路１０に、供給するようになっている。
【００３０】
この制御回路７は、外部から制御信号入力端子８を介して入力される制御信号（コマンドラッチイネーブル信号ＣＬＥ、アドレスラッチイネーブル信号ＡＬＥ、レディ／ビジー信号ＲＹ／ＢＹ等）およびデータ入出力端子５からデータ入出力バッファ４を介して入力されるコマンドに応じて制御動作する。すなわち、制御回路７は、該制御信号およびコマンドに応じて、データのプログラム、ベリファイ、読み出し、消去時に、所望の電圧を発生し、メモリセルアレイ１の各部に供給する。
【００３１】
ここで、図２は、図１に示す不揮発性メモリ１００の書き換え回数を自動的に分散させるための構成に注目したブロック図である。
【００３２】
図２において、アドレスラッチ１０１と、コマンド解析回路１０２と、マルチプレクサ１０３と、対象ブロックレジスタ１０４と、マルチプレクサ１０５と、冗長ブロックレジスタ１０６と、対象ブロックフラグラッチ１０７と、冗長ブロックフラグラッチ１０８と、マルチプレクサ１０９と、一致検知回路１１０と、ブロック切替回路１１１と、フラグ生成回路１１２と、カウンタ１１３と、主制御回路１１４とは、図１の制御回路７に含まれる。
【００３３】
なお、メモリセルアレイ１は、ブロックＡと、ブロックＢと、特殊ブロックＣと、を有する。
【００３４】
ブロックＡは、ここでは、例えば、書き換え回数に制限があり、入力されたデータが記憶可能なデータビット領域１ａとフラグ情報が記憶可能なフラグビット領域１ｃとを含む対象ブロックとして定義される。
【００３５】
ブロックＢは、ここでは、例えば、入力されたデータが記憶可能なデータビット領域１ｂとフラグ情報が記憶可能なフラグビット領域１ｄとを含む冗長ブロックとして定義される。なお、この冗長ブロックＢは、例えば、外部からアドレス指定できないようになっている。
【００３６】
ブロックＣは、対象ブロックＡの対象ブロックアドレスおよび冗長ブロックの冗長ブロックアドレスが記憶可能な特殊ビット領域１ｅとインデックス情報が記憶可能な特殊ビット領域１ｆとを含む特殊ブロックとして定義される。
【００３７】
対象ブロックレジスタ（対象ブロック保持部）１０４は、対象ブロックアドレスを保持するようになっている。
【００３８】
冗長ブロックレジスタ（冗長ブロック保持部）１０６は、冗長ブロックアドレスを保持するようになっている。
【００３９】
対象ブロックフラグラッチ（対象ブロックフラグ記憶部）１０７は、対象ブロックの選択に関するフラグ情報をラッチする（記憶する）ようになっている。
【００４０】
冗長ブロックフラグラッチ（冗長ブロックフラグ記憶部）１０８は、冗長ブロックの選択に関するフラグ情報をラッチする（記憶する）ようになっている。
【００４１】
一致検知回路１１０は、入力されたブロックアドレスと対象ブロックレジスタ１０４に保持された前記対象ブロックアドレスとが一致するか否かを検知するようになっている。
【００４２】
ブロックデコーダ１１５は、メモリセルアレイ１のブロックを選択するようになっている。
【００４３】
ブロック切替回路１１１は、入力されたブロックアドレスと対象ブロックアドレスとが一致することを一致検知回路１１０が検知した場合に、該フラグ情報に基づいて、該対象ブロックアドレスまたは該冗長ブロックアドレスを用いて、対象ブロックＡまたは冗長ブロックＢの何れか一方に対する選択を制御する（ブロックデコーダ１１５に選択させる）ようになっている。
【００４４】
フラグ生成回路１１２は、フラグ情報を生成し、対象ブロックフラグラッチ１０７および冗長ブロックフラグラッチ１０８にラッチし、また、ページバッファ２ｂに転送するようになっている。
【００４５】
また、図２において、ブロックデコーダ１１５は、図１のロウデコーダ６に含まれる。
【００４６】
また、図２において、センスアンプ２ａと、ページバッファ２ｂとは、ビット線制御回路２に含まれる。
【００４７】
ここで、図３は、専用コマンド（セット用コマンド）の冗長ブロックを指定する書式の一例を示す図である。また、図４は、専用コマンド（セット用コマンド）の冗長ブロックを指定しない書式の一例を示す図である。また、図５は、冗長ブロックを指定する場合の専用コマンド（クリア用コマンド）の書式の一例を示す図である。また、図６は、冗長ブロックを指定しない場合の専用コマンド（クリア用コマンド）の書式の一例を示す図である。
【００４８】
図３に示す書式により、セット用コマンドにより高頻度使用となる対象ブロックと、冗長ブロックとをセットする。
【００４９】
すなわち、コマンド解析回路１０２によりセット用コマンドが解析され、高頻度使用となる対象ブロックの対象ブロックアドレスがマルチプレクサ１０３を介して、対象ブロックレジスタ１０４に入力されて保持される。この対象ブロックアドレスは、アクセスしたいブロックが対象ブロックか否かを判定するために対象ブロックレジスタ１０４に保持される。さらに、切り替え先として指定した冗長ブロックの冗長ブロックアドレスがマルチプレクサ１０５を介して、冗長ブロックレジスタ１０６に入力されて保持される。
【００５０】
なお、セット用コマンドでセットされるブロック数は、有限個のセット数分入力可能とする。
【００５１】
さらに、対象ブロックアドレス、冗長ブロックアドレス、およびインデックス情報を含むブロック切替情報は、書き込みデータを溜め込むページバッファ２ｂに転送される。そして、ページバッファ２ｂに転送されたブロック切替情報は、センスアンプ２ａを介して、専用コマンドによって選択されているメモリセルアレイ１の特殊ブロック（普通のブロックアドレスで選択されないブロック）の特殊ビット領域１ｅ、１ｆに記憶される。
【００５２】
このブロック切替情報は、電源オン時に設定を復元させるために用いられる。
【００５３】
一方、図４に示すように、冗長ブロックを指定しない書式の場合は、冗長ブロックアドレスは省略される。
【００５４】
また、図５に示すように、ブロック消去コマンドを独立に設けて、このブロック消去コマンドに応じてブロックアドレスが消去される場合や、また、図６に示すように、クリア用コマンドに応じてブロックアドレスが消去される場合が想定される。
【００５５】
なお、図３、４において、書き込みコマンドは、後述の図１４から図１７で説明する動作で使用される、ブロック切替情報のフラグを書き込むためのコマンドである。
【００５６】
ここで、図７は、電源オン時の初期設定情報となるブロック切替情報のデータ列の書式の一例を示す図である。また、図８は、電源オン時の初期設定情報となるブロック切替情報のデータ列の書式の他の例を示す図である。
【００５７】
図７に示すように、例えば、書き込むデータは、３セットの対象ブロックアドレスと冗長ブロックアドレスと、使用セット数を示すインデックス情報（ビットデータ）と、を含む。なお、ビットデータ００は、“３”セットを示す。
【００５８】
また、図８に示すように、例えば、書き込むデータは、１セットの対象ブロックアドレスと冗長ブロックアドレスと、使用セット数を示すインデックス情報（ビットデータ）と、を含む。なお、ビットデータ１０は、“１”セットを示す。また、アドレスが指定されていない列には、すべてデータ“１”が設定される。
【００５９】
なお、該インデックス情報は、不揮発性メモリ１００内の回路により付加される。
【００６０】
なお、図４に示す冗長ブロックを指定しないタイプの場合は、アドレス指定されたブロックと対象ブロックとが一致することを一致検知回路１１０が検知して出力した信号に基づいて、ブロック切替回路１１１は、ブロックデコーダ１１５の動作を無効にさせて、冗長に用意した専用の冗長ブロックの選択信号を制御するようにしてもよく、また、ブロック切替回路１１１は、ブロックデコーダ１１５により、該冗長ブロックを選択するようにしてもよい。
【００６１】
これにより、対象ブロックから切り替えて、冗長ブロックに対応する該専用ブロックに対してプログラム動作が実行される。
【００６２】
ここで、電源オン時のセットアップの一例について説明する。ここでは、対象ブロックと冗長ブロックが設定されている場合について説明する。
【００６３】
該ブロック切替情報およびフラグ情報は、電源遮断後の再起動時を想定し、電源オンの時に読み出す必要がある。
【００６４】
図９は、電源オン時におけるブロック切替情報およびフラグ情報の読み出しシーケンスの一例を示す図である。
【００６５】
図９に示すように、最初に、電源オン時の初期設定情報であるブロック切替情報を特殊ブロックの特殊ビット領域１ｅ、１ｆから読み出す。この読み出されたブロック切替情報のうち、対象ブロックアドレスは対象ブロックレジスタ１０４にセットされ、冗長ブロックアドレスは冗長ブロックレジスタ１０６にセットされ、インデックス情報はカウンタ１１３にセットされる。
【００６６】
次に、図９に示すように、対象ブロックのフラグ情報、冗長ブロックのフラグ情報を読み出す。このフラグ情報は、外部から見た対象ブロックの消去動作毎に、プログラムする対象を対象ブロックと冗長ブロックとの間で切り替えるために使用する履歴情報であり、ビットデータで表される。
【００６７】
ここで、図１０は、図２のメモリセルアレイ１のブロックＡのフラグビット領域１ｃに記憶されたフラグ情報を読み出す時の電圧関係を示す図である。なお、図２のメモリセルアレイ１のブロックＢのフラグビット領域１ｄに記憶されたフラグ情報を読み出す時の電圧関係も同様である。
【００６８】
通常のデータ読み出しは、ブロック内の選択ワード線に接続されたメモリセルトランジスタＭに対して読み出すため、読み出したいワード線に読み出し電圧、それ以外のワード線を非選択電圧にする。
【００６９】
一方、フラグ情報はブロックに対する情報である。このため、図１０に示すように、全ワード線ＷＬ０〜ＷＬｍに選択読み出し電圧を印加し、且つ、選択ゲート線Ｓ１、Ｓ２に選択用電圧を印加する。これにより、フラグ記憶用のビット線ＢＬｊに接続されたメモリセルトランジスタＭに1つでもフラグ情報（ビット）が書き込まれているか否かを読み出すことができる。
【００７０】
対象ブロックから読み出したフラグ情報は、センスアンプ２ａ、ページバッファ２ｂ、および、フラグ生成回路１１２を経由して、対象ブロックフラグラッチ１０７にセットされる。
【００７１】
また、冗長ブロックから読み出したフラグ情報は、センスアンプ２ａ、ページバッファ２ｂ、および、フラグ生成回路を経由して、冗長ブロックフラグラッチ１０８にセットされる。
【００７２】
このフラグ情報に基づいて、電源遮断時に最後に書き込まれているブロックが、対象ブロックか冗長ブロックかの情報を、電源オン時に復帰させることが可能となる。
【００７３】
ここで、カウンタ１１３にセットした値（インデックス情報）は、セット数を意味するため、ブロック情報とフラグ情報のセットがカウンタ１１３にセットした値だけ繰り返し行われる。カウンタ１１３にセットした値は、対象ブロックと冗長ブロックのセット数を示す。したがって、セットした値からデクリメントし０になるまで、或いは、カウンタ値をインクリメントした値とインデックス情報に基づいてセットした値と比較して、一致するまで、上述の動作が実行される。なお、図２の例では、セットした値は、３セットである。
【００７４】
なお、既述の冗長ブロックを指定しないタイプの場合は、対象ブロックフラグラッチ１０７にのみ、対象ブロックフラグがセットされる。
【００７５】
ここで、ブロックを替える方法の一例について説明する。なお、例えば、ブロックＡが対象ブロックに指定され、ブロックＢが冗長ブロックに指定されているものとする。さらに、冗長ブロックＢに書き込みがされている（あるは、書き込み対象となっている）ものとする。
【００７６】
外部から対象ブロックＡのアドレスが入力された場合に、一致検知回路１１０が活性化する。そして、一致検知回路１１０は、どのセットの対象ブロックアドレスと入力されたブロックアドレスが一致するか否かに応じた信号（セット数分の信号数）をブロック切替回路１１１へ出力する。これにより、ブロック切替回路１１１は、入力されたブロックアドレスと対象ブロックＡのアドレスとが一致しているか否かの情報を得る。
【００７７】
さらに、フラグ生成回路１１２は、対象ブロックＡと冗長ブロックＢのどちらを使用するかを示す信号を、対象ブロックフラグと冗長ブロックフラグの論理に基づいて生成し、ブロック切替回路１１１へ出力する。
【００７８】
また、冗長ブロックレジスタ１０６は、ブロック切替回路１１１に、冗長ブロックＢのアドレスを出力する。
【００７９】
そして、ブロック切替回路１１１は、これらの信号からブロックデコーダ１１５に出力する冗長ブロックＢのアドレスとこの冗長ブロックＢのアドレスを選択して切り替えるための制御信号とをマルチプレクサ１０９に出力する。これにより、ブロックデコーダ１１５に、冗長ブロックＢのアドレスが入力され、冗長ブロックＢに対してプログラム動作等が実行されることになる。
【００８０】
主制御回路１１４は、コマンド解析回路１０２から送られてくる動作毎のコマンド信号に応じて、メモリセルアレイ１の動作を管理するとともに、ブロック切替回路１１１、フラグ生成回路１１２、およびカウンタ１１３の動作を制御する。この主制御回路１１４は、該コマンド信号に応じて、メモリセルアレイ１の動作を制御しつつ、フラグ生成回路１１２に対してフラグ情報を切り替えるタイミングの制御を行う。
【００８１】
ここで、フラグ情報の生成は、ブロックへのデータの書き込み時に生成する場合と、ブロックのデータの消去時に生成する場合で異なる制御となる。この生成の違いによる2つ例について説明する。
【００８２】
まず、ブロックのデータの消去時に、フラグ情報の生成と書き込みを行う方法の一例について説明する。
【００８３】
この方法は、電源オンと電源オフの前後における、対象ブロックと冗長ブロックとの切り替え状況が完全に復元できるものである。すなわち、消去動作を行う時にフラグ情報を変更する。
【００８４】
図１１は、消去動作時におけるフラグ情報のセットのシーケンスの一例を示す図である。また、図１２は、フラグラッチの論理とアクセスするブロックとの関係の一例を示す図である。
【００８５】
図１１に示すように、現状選択しているブロック（対象ブロックまたは冗長ブロック）の消去動作が実行されると（ステップＳ１）、フラグ生成回路１１２は、該選択しているブロックのフラグラッチ（対象ブロックフラグラッチまたは冗長ブロックフラグラッチ）が“１”か否かを判断する（ステップＳ２）。
【００８６】
ステップＳ２において、フラグラッチにラッチされたフラグ情報が“１”ではない場合には、フラグ生成回路１１２は、現状選択ブロックに対するフラグラッチを“１”にセットする（ステップＳ３）。
【００８７】
一方、ステップＳ２において、フラグラッチにラッチされたフラグ情報が“１”である場合には、フラグ生成回路１１２は、ページバッファ２ｂのフラグビットにフラグ情報として“０”をセットする（ステップＳ４）。そして、このページバッファ２ｂにセットされたフラグ情報を、現状選択しているブロックのフラグビット領域にプログラムする（ステップＳ５）。
【００８８】
次に、現状選択ブロックに対するフラグラッチを“０”にセットする（ステップＳ６）。
【００８９】
以上のフローにより、消去動作時において、フラグ情報がブロックのフラグビット領域およびフラグラッチにセットされる。
【００９０】
このようにセットされるフラグ情報とアクセスブロックとの関係を示すテーブル（図１２）に基づいて、ブロック切替回路１１１は、アクセスするべきブロックの選択を制御する。
【００９１】
ここで、図１３は、ブロックのデータの消去時に、フラグ情報を生成して、ブロックおよびフラグラッチに書き込む方法のシーケンスを示す図である。
【００９２】
なお、図１３において、フラグ情報は、フラグ生成回路１１２で生成される論理で表され、メモリセルアレイ（メモリ）とラッチに記憶される場合に分けて記載している。
【００９３】
図１３に示すように、初期状態では、メモリセルアレイの対象ブロックＡ、冗長ブロックＢに記憶されたフラグ情報は“１１”に設定されており、対象ブロックフラグラッチ１０７、冗長ブロックフラグラッチ１０８に記憶されたフラグ情報は“１１”に設定されている。
【００９４】
このように、対象ブロックフラグラッチと冗長ブロックフラグラッチにラッチされるフラグ情報が“１１”であるので、図１２の関係より、ブロック切替回路１１１は、対象ブロックＡにアクセスするようにブロックデコーダ１１５の選択を制御する（Ｉｎｉｔｉａｌ）。
【００９５】
次に、選択された対象ブロックＡに対してプログラム動作が実行される（１ｓｔ  Ｐｒｏｇ）。
【００９６】
次に、選択された対象ブロックＡに対して読み出し動作が実行される（Ｒｅａｄ）。
【００９７】
次に、選択された対象ブロックＡに対して消去動作が実行される。このとき、“１”が消去状態を表すので、対象ブロックＡ、冗長ブロックＢに記憶されたフラグ情報は“１１”のままである。そして、フラグ生成回路１１２は、図１１のシーケンスに従って、対象ブロックのフラグ情報“０”を生成してページバッファ２ｂに転送する。このページバッファ２ｂにセットされたフラグ情報“０”を対象ブロックＡのフラグビット領域にプログラムする。そして、対象ブロックフラグラッチ１０７にフラグ情報“０”をラッチする（１ｓｔ  Ｅｒａｓｅ）。
【００９８】
次に、メモリセルアレイの対象ブロックＡ、冗長ブロックＢに記憶されたフラグ情報は“０１”に設定されており、対象ブロックフラグラッチ１０７、冗長ブロックフラグラッチ１０８に記憶されたフラグ情報は“０１”に設定されている。
【００９９】
このように、対象ブロックフラグラッチ１０７と冗長ブロックフラグラッチ１０８にラッチされるフラグ情報が“０１”であるので、図１２の関係より、ブロック切替回路１１１は、冗長ブロックＢにアクセスするようにブロックデコーダ１１５の選択を制御する（２ｎｄ  Ｒｒｏｇ前）。
【０１００】
次に、選択された冗長ブロックＢに対してプログラム動作が実行される（２ｓｔ  Ｐｒｏｇ）。
【０１０１】
次に、選択された冗長ブロックＢに対して読み出し動作が実行される（Ｒｅａｄ）。
【０１０２】
次に、選択された冗長ブロックＢに対して消去動作が実行される。このとき、“１”が消去状態を表すので、対象ブロックＡ、冗長ブロックＢに記憶されたフラグ情報は“０１”のままである。そして、フラグ生成回路１１２は、図１１のシーケンスに従って、冗長ブロックＢのフラグ情報“０”を生成してページバッファ２ｂに転送する。このページバッファ２ｂにセットされたフラグ情報“０”を冗長ブロックＡのフラグビット領域にプログラムする。そして、冗長ブロックフラグラッチ１０８にフラグ情報“０”をラッチする（２ｎｄ  Ｅｒａｓｅ）。
【０１０３】
次に、メモリセルアレイの対象ブロックＡ、冗長ブロックＢに記憶されたフラグ情報は“００”に設定されており、対象ブロックフラグラッチ１０７、冗長ブロックフラグラッチ１０８に記憶されたフラグ情報は“００”に設定されている。
【０１０４】
このように、対象ブロックフラグラッチ１０７と冗長ブロックフラグラッチ１０８にラッチされるフラグ情報が“００”であるので、図１２の関係より、ブロック切替回路１１１は、対象ブロックＡにアクセスするようにブロックデコーダ１１５の選択を制御する（３ｒｄ  Ｒｒｏｇ前）。
【０１０５】
次に、選択された対象ブロックＡに対してプログラム動作が実行される（３ｒｄ  Ｐｒｏｇ）。
【０１０６】
次に、選択された対象ブロックＡに対して読み出し動作が実行される（Ｒｅａｄ）。
【０１０７】
次に、選択された対象ブロックＡに対して消去動作が実行される。このとき、“１”が消去状態を表すので、対象ブロックＡ、冗長ブロックＢに記憶されたフラグ情報は“１０”になる。そして、フラグ生成回路１１２は、フラグラッチにラッチされているフラグ情報が“００”の場合、図１１のシーケンスに従って、ページバッファ２ｂにフラグ情報を転送しない。そして、フラグ生成回路１１２は、対象ブロックフラグラッチ１０７にフラグ情報“１”をラッチする（３ｎｄ  Ｅｒａｓｅ）。
【０１０８】
次に、メモリセルアレイの対象ブロックＡ、冗長ブロックＢに記憶されたフラグ情報は“１０”に設定されており、対象ブロックフラグラッチ１０７、冗長ブロックフラグラッチ１０８に記憶されたフラグ情報は“１０”に設定されている。
【０１０９】
このように、対象ブロックフラグラッチ１０７と冗長ブロックフラグラッチ１０８にラッチされるフラグ情報が“１０”であるので、図１２の関係より、ブロック切替回路１１１は、冗長ブロックＢにアクセスするようにブロックデコーダ１１５の選択を制御する（４ｔｈ  Ｒｒｏｇ前）。
【０１１０】
次に、選択された冗長ブロックＢに対してプログラム動作が実行される（４ｔｈ  Ｐｒｏｇ）。
【０１１１】
次に、選択された冗長ブロックＢに対して読み出し動作が実行される（Ｒｅａｄ）。
【０１１２】
次に、選択された冗長ブロックＢに対して消去動作が実行される。このとき、“１”が消去状態を表すので、対象ブロックＡ、冗長ブロックＢに記憶されたフラグ情報は“１１”になる。そして、フラグ生成回路１１２は、フラグラッチにラッチされているフラグ情報が“１０”の場合、図１１のシーケンスに従って、ページバッファ２ｂにフラグ情報を転送しない。そして、冗長ブロックフラグラッチ１０８にフラグ情報“１”をラッチする（４ｔｈ  Ｅｒａｓｅ）。
【０１１３】
以後は同様のシーケンスが繰り返し実行される。
【０１１４】
このような方法で、ブロックのデータの消去時に、フラグ情報を生成して、ブロックのフラグデータ領域に書き込む。すなわち、対象ブロックＡまたは冗長ブロックＢの一方に対する消去動作時に、次に対象ブロックＡまたは冗長ブロックＢの他方をブロックデコーダ１１５に選択させるように、フラグビット領域１ｃに記憶されたフラグ情報またはフラグビット領域１ｄに記憶されたフラグ情報を、書き換える。さらに、フラグビット領域１ｃに記憶されたフラグ情報またはフラグビット領域１ｄに記憶されたフラグ情報を書き換えた後、書き換えられたフラグビット領域１ｃに記憶されたフラグ情報またはフラグビット領域１ｄに記憶されたフラグ情報を、対象ブロックフラグラッチ１０７または冗長ブロックフラグラッチ１０８にラッチする。
【０１１５】
これにより、対象ブロックと冗長ブロックとの切替の状態を、該フラグデータ領域に記憶されたフラグ情報に基づいて、ブロック切替回路１１１は、判断することができる。
【０１１６】
すなわち、ブロックの切替状態を電源オフ前の状態に復元できる。
【０１１７】
なお、上記方法では、ブロック内の書き込み回数は、データの書き込み回数とフラグ書き込み回数との和になる。
【０１１８】
そして、上記方法により、対象ブロックと冗長ブロックとのアクセスの割合が等しくなる。すなわち、各ブロックの書き換え回数を自動的に分散させて、不揮発性メモリの寿命を延ばすことができる。
【０１１９】
次に、ブロックのデータの書き込み時にフラグ情報の生成と書き込みを行う方法の一例について説明する。
【０１２０】
この方法は、消去動作にフラグの書き込み動作が必要なく、データの書き込み時にフラグを書き込むものである。この方法では、後述のように、ブロック内の書き込み回数は、データ書き込み回数のみになる。
【０１２１】
図１４は、書き込み動作時におけるフラグ情報の選択されたブロックへのセットのシーケンスの一例を示す図である。図１５は、消去動作時におけるフラグ情報のフラグラッチへのセットのシーケンスの一例を示す図である。また、図１６は、フラグラッチの論理とアクセスするブロックとの関係の一例を示す図である。
【０１２２】
図１４に示すように、プログラム動作の実行前に、フラグ生成回路１１１は、現状選択しているブロック（対象ブロックまたは冗長ブロック）のフラグ情報“０”を生成し、ページバッファ２ｂに転送する（ステップＳ１１）。
【０１２３】
次に、現状選択しているブロックに対してフラグ情報“０”をプログラムする（ステップＳ１２）。
【０１２４】
以上のフローにより、プログラム動作時において、フラグ情報がブロックのフラグビット領域にセットされる。
【０１２５】
また、消去動作時におけるフラグ情報のフラグラッチへのセットにおいては、先ず、図１５に示すように、現状選択しているブロックの消去動作を実行する（ステップＳ２１）。これにより、現状選択されたブロックのフラグデータ領域に記憶されたフラグ情報が消去状態である“１”になる。
【０１２６】
次に、対象ブロックフラグラッチおよび冗長ブロックフラグラッチ保持されたフラグ情報の論理をそれぞれ反転する（ステップＳ２２）。
【０１２７】
以上のフローにより、消去動作時において、現状選択されたブロックが対象ブロックＡである場合には次に選択されるブロックが冗長ブロックＢになるように、または、現状選択されたブロックが冗長ブロックＢである場合には次に選択されるブロックが対象ブロックＡになるように、対象ブロックフラグラッチ１０７および冗長ブロックフラグラッチ１０８にラッチされるフラグ情報がセットされる。
【０１２８】
このようにセットされるフラグ情報とアクセスブロックとの関係を示すテーブル（図１６）に基づいて、ブロック切替回路１１１は、アクセスするべきブロックの選択を制御する。
【０１２９】
なお、対象ブロックＡの消去実行後の次の書き込みの前に電源オフした場合、図１６のテーブルにより、冗長ブロックＢが書き込み対象にならない。このため、既述の図３、４に示す書き込みコマンドに応じて、フラグ情報をメモリセルアレイ１の対象ブロックと冗長ブロックのそれぞれのフラグビット領域に書き込む。書き込みデータとなるフラグ情報は、フラグ生成回路１１２よりページバッファ２ｂへ転送される。
【０１３０】
フラグ情報を図３、４に示す専用コマンドで書き込む動作は、コマンド解析回路１０２により認識した信号を主制御回路１１４が受け取り、ブロック切替回路とフラグ生成回路、カウンタを制御する。
【０１３１】
カウンタ１１３は、フラグ情報を書き込むためのセットを示す動作が行われる。1セット分の書き込み動作としては、対象ブロックと冗長ブロックのアドレスをブロック切替回路１１１よりブロックデコーダの入力として選択し、書き込みデータは、フラグ生成回路１１２からページバッファ２ｂへ転送される。
【０１３２】
フラグ情報がページバッファ２ｂにセットされると、主制御回路１１４は通常書き込みと同じ制御（電圧制御等）を行い、メモリセルアレイ１のフラグデータ領域１ｃ、１ｄにフラグ情報が書き込まれる。
【０１３３】
なお、1セット分の書き込みは、対象ブロックと冗長ブロックそれぞれ行われるため、1セットに対して２回書き込みが行われる。
【０１３４】
また、電源オン時には、フラグビット領域１ｃに記憶されたフラグ情報またはフラグビット領域１ｄに記憶されたフラグ情報を、書き換えるとともに、対象ブロックフラグラッチ１０７または冗長ブロックフラグラッチ１０８に、書き換えられたフラグ情報をラッチする。
【０１３５】
ここで、図１７は、ブロックのデータの書き込み時に、フラグ情報を生成して、ブロックに書き込む方法のシーケンスを示す図である。
【０１３６】
なお、図１７において、フラグ情報は、フラグ生成回路１１２で生成される論理で表され、メモリセルアレイ（メモリ）とラッチに記憶される場合に分けて記載している。
【０１３７】
図１７に示すように、初期状態では、メモリセルアレイの対象ブロックＡ、冗長ブロックＢに記憶されたフラグ情報は“１１”に設定されており、対象ブロックフラグラッチ１０７、冗長ブロックフラグラッチ１０８に記憶されたフラグ情報は“１１”に設定されている。
【０１３８】
このように、対象ブロックフラグラッチと冗長ブロックフラグラッチにラッチされるフラグ情報が“１１”であるので、図１６の関係より、ブロック切替回路１１１は、対象ブロックＡにアクセスするようにブロックデコーダ１１５の選択を制御する（Ｉｎｉｔｉａｌ）。
【０１３９】
次に、選択された対象ブロックＡに対してプログラム動作が実行される（１ｓｔ  Ｐｒｏｇ）。このとき、図１４のシーケンスに従って、フラグ生成回路１１２により生成されたフラグ情報“０”が対象ブロックＡのフラグビット領域におよび対象ブロックフラグラッチ１０７に記憶される。
【０１４０】
すなわち、対象ブロックＡまたは冗長ブロックＢの一方に対する書き込み動作時に、フラグビット領域１ｃに記憶されたフラグ情報またはフラグビット領域１ｄに記憶された前フラグ情報を、書き換える。
【０１４１】
これにより、現状選択されている対象ブロックＡにアクセスするためのフラグ情報が第１、第２のフラグビット領域１ｃ、１ｄに記憶されることになる。
【０１４２】
次に、選択された対象ブロックＡに対して読み出し動作が実行される（Ｒｅａｄ）。
【０１４３】
次に、選択された対象ブロックＡに対して消去動作が実行される。このとき、“１”が消去状態を表すので、対象ブロックＡ、冗長ブロックＢに記憶されたフラグ情報は“１１”になる。そして、フラグ生成回路１１２は、図１５のシーケンスに従って、対象ブロックフラグラッチ１０７および冗長ブロックフラグラッチ１０８にラッチされたフラグ情報の論理を反転する（１ｓｔ  Ｅｒａｓｅ）。
【０１４４】
次に、メモリセルアレイの対象ブロックＡ、冗長ブロックＢに記憶されたフラグ情報は“１１”に設定されており、対象ブロックフラグラッチ１０７、冗長ブロックフラグラッチ１０８に記憶されたフラグ情報は“１０”に設定されている。
【０１４５】
このように、対象ブロックフラグラッチ１０７と冗長ブロックフラグラッチ１０８にラッチされるフラグ情報が“１０”であるので、図１６の関係より、ブロック切替回路１１１は、冗長ブロックＢにアクセスするようにブロックデコーダ１１５の選択を制御する（２ｎｄ  Ｒｒｏｇ前）。
【０１４６】
次に、選択された冗長ブロックＢに対してプログラム動作が実行される（２ｎｄ  Ｐｒｏｇ）。このとき、図１４のシーケンスに従って、フラグ生成回路１１２により生成されたフラグ情報“０”が冗長ブロックＢのフラグビット領域におよび冗長ブロックフラグラッチ１０８に記憶される。
【０１４７】
すなわち、対象ブロックＡまたは冗長ブロックＢの一方に対する書き込み動作時に、フラグビット領域１ｃに記憶されたフラグ情報またはフラグビット領域１ｄに記憶された前フラグ情報を、書き換える。
【０１４８】
これにより、現状選択されている冗長ブロックＢにアクセスするためのフラグ情報が第１、第２のフラグビット領域１ｃ、１ｄに記憶されることになる。
【０１４９】
次に、選択された冗長ブロックＢに対して読み出し動作が実行される（Ｒｅａｄ）。
【０１５０】
次に、選択された冗長ブロックＢに対して消去動作が実行される。このとき、“１”が消去状態を表すので、対象ブロックＡ、冗長ブロックＢに記憶されたフラグ情報は“１１”になる。そして、フラグ生成回路１１２は、図１５のシーケンスに従って、対象ブロックフラグラッチ１０７および冗長ブロックフラグラッチ１０８にラッチされたフラグ情報の論理を反転する（２ｓｔ  Ｅｒａｓｅ）。
【０１５１】
次に、メモリセルアレイの対象ブロックＡ、冗長ブロックＢに記憶されたフラグ情報は“１１”に設定されており、対象ブロックフラグラッチ１０７、冗長ブロックフラグラッチ１０８に記憶されたフラグ情報は“０１”に設定されている。
【０１５２】
このように、対象ブロックフラグラッチ１０７と冗長ブロックフラグラッチ１０８にラッチされるフラグ情報が“０１”であるので、図１６の関係より、ブロック切替回路１１１は、対象ブロックＡにアクセスするようにブロックデコーダ１１５の選択を制御する（３ｒｄ  Ｒｒｏｇ前）。
【０１５３】
次に、選択された対象ブロックＡに対してプログラム動作が実行される（３ｒｄ  Ｐｒｏｇ）。このとき、図１４のシーケンスに従って、フラグ生成回路１１２により生成されたフラグ情報“０”が対象ブロックＡのフラグビット領域におよび対象ブロックフラグラッチ１０７に記憶される。
【０１５４】
すなわち、対象ブロックＡまたは冗長ブロックＢの一方に対する書き込み動作時に、フラグビット領域１ｃに記憶されたフラグ情報またはフラグビット領域１ｄに記憶された前フラグ情報を、書き換える。
【０１５５】
これにより、現状選択されている対象ブロックＡにアクセスするためのフラグ情報が第１、第２のフラグビット領域１ｃ、１ｄに記憶されることになる。
【０１５６】
次に、選択された対象ブロックＡに対して読み出し動作が実行される（Ｒｅａｄ）。
【０１５７】
次に、選択された対象ブロックＡに対して消去動作が実行される。このとき、“１”が消去状態を表すので、対象ブロックＡ、冗長ブロックＢに記憶されたフラグ情報は“１１”になる。そして、フラグ生成回路１１２は、図１５のシーケンスに従って、対象ブロックフラグラッチ１０７および冗長ブロックフラグラッチ１０８にラッチされたフラグ情報の論理を反転する（３ｒｄ  Ｅｒａｓｅ）。
【０１５８】
次に、メモリセルアレイの対象ブロックＡ、冗長ブロックＢに記憶されたフラグ情報は“１１”に設定されており、対象ブロックフラグラッチ１０７、冗長ブロックフラグラッチ１０８に記憶されたフラグ情報は“１０”に設定されている。
【０１５９】
このように、対象ブロックフラグラッチ１０７と冗長ブロックフラグラッチ１０８にラッチされるフラグ情報が“１０”であるので、図１６の関係より、ブロック切替回路１１１は、冗長ブロックＢにアクセスするようにブロックデコーダ１１５の選択を制御する（４ｔｈ  Ｒｒｏｇ前）。
【０１６０】
次に、選択された冗長ブロックＢに対してプログラム動作が実行される（４ｔｈ  Ｐｒｏｇ）。このとき、図１４のシーケンスに従って、フラグ生成回路１１２により生成されたフラグ情報“０”が冗長ブロックＢのフラグビット領域におよび冗長ブロックフラグラッチ１０８に記憶される。
【０１６１】
すなわち、対象ブロックＡまたは冗長ブロックＢの一方に対する書き込み動作時に、フラグビット領域１ｃに記憶されたフラグ情報またはフラグビット領域１ｄに記憶された前フラグ情報を、書き換える。
【０１６２】
これにより、現状選択されている冗長ブロックＢにアクセスするためのフラグ情報が第１、第２のフラグビット領域１ｃ、１ｄに記憶されることになる。
【０１６３】
次に、選択された冗長ブロックＢに対して読み出し動作が実行される（Ｒｅａｄ）。
【０１６４】
次に、選択された冗長ブロックＢに対して消去動作が実行される。このとき、“１”が消去状態を表すので、対象ブロックＡ、冗長ブロックＢに記憶されたフラグ情報は“１１”になる。そして、フラグ生成回路１１２は、図１５のシーケンスに従って、対象ブロックフラグラッチ１０７および冗長ブロックフラグラッチ１０８にラッチされたフラグ情報の論理を反転する（４ｔｈ  Ｅｒａｓｅ）。
【０１６５】
以後は同様のシーケンスが繰り返し実行される。
【０１６６】
なお、この例では、電源オフにならない限り、対象ブロックと冗長ブロックとのアクセスの割合が等しくなる。すなわち、各ブロックの書き換え回数を自動的に分散させて、不揮発性メモリの寿命を延ばすことができる。
【０１６７】
以上のように、本実施例に係る不揮発性メモリによれば、メモリセルアレイのブロックに対する書き換え回数を自動的に分散させることができる。
【符号の説明】
【０１６８】
１  メモリセルアレイ
２  ビット線制御回路
３  カラムデコーダ
４  データ入出力バッファ
５  データ入出力端子
６  ロウデコーダ
７  制御回路
８  制御信号入力端子
９  ソース線制御回路
１０  ウェル制御回路
１００  ＮＡＮＤ型フラッシュメモリ
【図１】
2011198409.tif 000003
【図２】
2011198409.tif 000004
【図３】
2011198409.tif 000005
【図４】
2011198409.tif 000006
【図５】
2011198409.tif 000007
【図６】
2011198409.tif 000008
【図７】
2011198409.tif 000009
【図８】
2011198409.tif 000010
【図９】
2011198409.tif 000011
【図１０】
2011198409.tif 000012
【図１１】
2011198409.tif 000013
【図１２】
2011198409.tif 000014
【図１３】
2011198409.tif 000015
【図１４】
2011198409.tif 000016
【図１５】
2011198409.tif 000017
【図１６】
2011198409.tif 000018
【図１７】
2011198409.tif 000019