(57)【特許請求の範囲】
【請求項１】
集積回路メモリにおいて、
複数ブロックの浮遊ゲートメモリセルを含むメモリアレイと、
前記メモリアレイに接続され、ブロック消去手順を実行するようにされ、ブロック消去命令に応答して、前記メモリセルの選択されたブロックを消去するブロック消去論理回路と、
を備え、
前記ブロック消去論理回路は、
プログラミング電位を印加して選択されたブロックをプリプログラムし、次いで前記ブロックのプリプログラミングを検査する前記ブロック消去手順の前処理段階を実行するために設けられたプリプログラミング論理回路と、
消去電位を印加して前記選択されたブロックを消去し、次いで前記ブロックの消去を検査する前記ブロック消去手順の消去段階を実行するために設けられた消去論理回路と、
前記ブロック消去論理回路に接続され、消去中断手続きを実行するために設けられ、消去中断命令に応答して、前記ブロック消去手順を中断する消去中断論理回路と、
を有し、
前記消去中断論理回路は、
前記ブロック消去手順のチェックポイントのセット内のチェックポイント中に、前記消去中断命令を受信した後に前記ブロック消去手順に割り込むために設けられた中断論理回路と前記消去手順に復帰するために設けられた消去再開論理回路とを有し、前記セットは、前記前処理段階中に割り込みを可能にする第１のチェックポイントと、前記消去の検査中に割り込みを可能にする第３のチェックポイントとを有しており、且つ、
前記集積回路メモリは、
前記ブロック消去手順におけるチェックポイントのセットは、前記中断論理回路が消去電位の印加中に前記ブロック消去手順への割り込みを可能にする第２のチェックポイントを有し、
前記ブロック消去論理回路は、消去される複数のブロックにおけるブロックを示す複数のブロック消去フラッグと実行された消去の試行回数を示す消去再試行カウンタを有し、前記ブロック消去論理回路によって実行された前記ブロック消去手順は、ブロック消去命令に応答して、前記複数のブロック消去フラッグによって示されたメモリセルの選択されたブロックを消去するために設けられ、前記消去段階において、ブロック消去フラッグをセットしたブロックは、消去電位を印加することによって消去され、且つ、ブロック消去フラッグをセットしたブロックの消去は、順番に検査され、もし、前記順番における現在のブロックが首尾よく消去されたなら、前記現在のブロックに対するブロック消去フラッグがリセットされ、且つ、前記順番が完了した後、いずれかのフラッグがセットされたままであるなら、前記消去段階が再試行され、
前記中断論理回路は、消去の検査中に割り込みが生じたら、前記順番における現在のブロック及び前記現在のブロックの次のブロックから最後のブロックまでの全てのブロックのブロック消去フラッグがリセットされないように設けられており、且つ、
前記消去再開論理回路は、前記消去再試行カウンタをリセットすることなく、前記ブロック消去手順に戻るために設けられることを特徴とする集積回路メモリ。
【請求項２】
前記第１のチェックポイントは、プログラミング電位を印加した後に、及び前記プリプログラミングを検査する前に前記割り込みを可能にすることを特徴とする請求項１に記載の集積回路メモリ。
【請求項３】
前記複数のブロック内のブロックは、複数のマルチビットセグメントのデータを含み、前記前処理段階は、プログラム電位を１つのマルチビットセグメントに順次印加し、前記マルチビットセグメントの前記プリプログラミングを検査し、そして前記ブロックがプリプログラムされるまで前記ブロック内の次のマルチビットセグメントへ進むことによって、選択されたブロックをマルチビットセグメント毎にプリプログラムする論理回路を含み、且つ、前記第１チェックポイントは１つのマルチビットセグメントへプログラム電位を印加した後で、前記マルチビットセグメントの前記プリプログラミングを検査する前に前記割り込みを可能にすることを特徴とする請求項１または請求項２に記載の集積回路メモリ。
【請求項４】
前記複数のブロック内のブロックは、複数のマルチビットデータセグメントを含み、前記消去段階は、消去電位を前記複数のマルチビットセグメントに印加する論理回路を含み、且つ、前記第２のチェックポイントは、前記消去電位の印加中に割り込みを可能にすることを特徴とする請求項１に記載の集積回路メモリ。
【請求項５】
前記複数のブロック内のブロックは複数のマルチビットセグメントのデータを含み、前記消去段階は、マルチビットセグメントを順次試験し、前記ブロックの消去が検査されるまで次のマルチビットセグメントへ進むことによって、前記消去を検査する論理回路を含み、且つ、前記第３のチェックポイントは、前記マルチビットセグメントの試験の後で、次のマルチビットセグメントへ進む前に割り込みを可能にすることを特徴とする請求項１に記載の集積回路メモリ。
【請求項６】
前記消去手順の割り込みと前記消去手順への復帰との間に、前記複数のブロック内の前記選択されたブロック以外のブロックへの読み出しアクセスを実行する制御論理回路を含むことを特徴とする請求項１に記載の集積回路メモリ。
【請求項７】
前記メモリアレイは、
複数のグローバルビットラインと、
複数のブロック選択トランジスタのセットとを備え、前記ブロック選択トランジスタの各セットは、前記複数のグローバルビットライン内の対応するグローバルビットラインに接続されており、
更に、複数のローカルビットラインのセットを備え、前記ローカルビットラインの各セットは、対応するセットのブロック選択トランジスタを通して対応するグローバルビットラインに接続されており、前記アレイ内のメモリセルは、前記複数のローカルビットラインのセット内の１つのローカルビットラインに接続されているドレイン端子を有しており、
更に、複数のローカルソースラインのセットを備え、前記ローカルソースラインの各セットは、前記アレイ内のメモリセルを通して対応するセットのローカルビットラインに接続され、またソース電位供給回路に接続されており、且つ
更に、前記アレイ内のメモリセルに接続されている複数のワードラインを備え、
前記アレイ内の前記複数のブロックの浮遊ゲートセル内の１つのブロックは、複数の列のメモリセルを含み、前記複数の列内の列は、特定のグローバルビットラインに接続されている特定のローカルビットラインのセット内の全てのローカルビットラインより少ない数からなるサブセットに接続されていることを特徴とする請求項１に記載の集積回路メモリ。
【請求項８】
前記複数のローカルビットライン内には、各グローバルビットラインに接続されている２つのローカルビットラインのセットが存在していることを特徴とする請求項７に記載の集積回路メモリ。
【請求項９】
前記複数のローカルビットラインのセット内には、前記複数のローカルソースラインのセット内の各ソースラインに接続されている２つのローカルビットラインが存在していることを特徴とする請求項７または８に記載の集積回路メモリ。
【請求項１０】
前記ブロック消去手順の前記前処理段階と前記消去段階との間に割り込みを可能にする別のチェックポイントを含むことを特徴とする請求項１に記載の集積回路メモリ。
【請求項１１】
前記ブロック消去手順の前記消去段階において、前記消去パルスを印加した後で、前記ブロックを検査する前に割り込みを可能にする別のチェックポイントを含むことを特徴とする請求項１に記載の集積回路メモリ。
【請求項１２】
前記ブロック消去手順の前記前処理段階と前記消去段階との間に割り込みを可能にする第４チェックポイントと、前記ブロック消去手順の前記消去段階において、前記消去パルスを印加した後で、前記ブロックを検査する前に割り込みを可能にする第５チェックポイントを含んでいる請求項１に記載の集積回路メモリ。
【請求項１３】
前記前処理段階と前記ブロック消去手順の消去段階の間に別のチェックポイントを含むことを特徴とする請求項１に記載の集積回路メモリ。
【請求項１４】
前記ブロック消去手順の消去段階において、前記消去パルスを印加した後で、前記ブロックの検査の前に別のチェックポイントを含むことを特徴とする請求項１に記載の集積回路メモリ。
【請求項１５】
前記前処理段階と前記ブロック消去手順の消去段階の間に第４のチェックポイントを含み、且つ、前記ブロック消去手順の消去段階において、前記消去パルスを印加した後で、前記ブロックの検査の前に第５のチェックポイントを含むことを特徴とする請求項１に記載の集積回路メモリ。
【請求項１６】
前記メモリアレイは、複数のビットラインを含み、前記複数ブロックの浮遊ゲートメモリセルは、前記複数のビットラインに接続されており、前記複数ブロックにおけるブロックは、複数のマルチビットセグメントのデータを含み及び前記複数ブロックにおける少なくとも２つのブロックは、前記複数のビットラインにおけるビットラインの単一のセットに接続されており、
前記プリプログラミング論理回路は、前記前処理段階において、プログラミング電位をマルチビットセグメントに順次印加して選択されたブロックをプリプログラミングし、前記マルチビットセグメントのプリプログラミングを検査し、及び前記ブロックがプリプログラムされるまで、前記ブロックにおける次のマルチビットセグメントに進むようにされ、
前記消去論理回路は、前記消去段階において、消去電位を前記ブロックに印加して前記選択されたブロックを消去し、次いで、前記ブロックにおける前記マルチビットセグメントを順次検査して前記ブロックの消去を検査するようにされ、
チェックポイントのセットにおける第１のチェックポイントは、プログラミング電位をマルチビットセグメントに印加した後で、前記マルチビットセグメントのプリプログラミングを検査する前に前記中断論理回路が前記ブロック消去手順を中断するようにし、且つ
前記消去再開論理回路は、再開命令に応答してブロック消去手順に戻るために設けられていることを特徴とする請求項１に記載の集積回路メモリ。
【請求項１７】
前記第３のチェックポイントは、マルチビットセグメントの試験後で、次のマルチビットセグメントに進む前に、割り込みを可能にすることを特徴とする請求項１に記載の集積回路メモリ。
【請求項１８】
前記ブロック消去手順の割り込みと前記ブロック消去手順への戻りの間に前記選択されたブロック以外の複数のブロックにおける一つのブロックへの読み取りアクセスを実行する制御論理回路を含むことを特徴とする請求項１６に記載の集積回路メモリ。
【請求項１９】
前記メモリアレイは、
複数の、ブロック選択トランジスタのセットであって、前記ブロック選択トランジスタの各セットは、複数のグローバルビットラインにおける対応するグローバルビットラインに接続されている複数の、ブロック選択トランジスタのセットと、
複数の、ローカルビットラインのセットであって、前記ローカルビットラインの各セットは、対応するブロック選択トランジスタのセットを通して対応するグローバルビットラインに接続されている複数の、ローカルビットラインのセットとを備え、
前記アレイ内のメモリセルは、前記複数のローカルビットラインのセット内の１つのローカルビットラインに接続されているドレイン端子を有しており、且つ
複数のローカルソースラインのセットであって、前記ローカルソースラインの各セットは、前記アレイ内のメモリセルを通して対応するローカルビットラインのセットに接続され、且つソース電位供給回路に接続されている複数の、ローカルソースラインのセットと、
前記アレイ内のメモリセルに接続された複数のワードラインと、
を備え、
前記アレイにおける前記複数の浮遊ゲートセルのブロックにおける一つのブロックは、複数の、メモリセルの列を含み、前記複数の列における列は、特定のグローバルビットラインに接続されたローカルビットラインの特定のセットにおける全てのローカルビットラインより少ない数から成るサブセットに接続されていることを特徴とする請求項１６に記載の集積回路メモリ。
【請求項２０】
前記複数のローカルビットラインのセットに、各グローバルビットラインに接続されたローカルビットラインの２つのセットがあることを特徴とする請求項１９に記載の集積回路メモリ。
【請求項２１】
前記複数のローカルソースラインのセットにある各ローカルソースラインに接続されている、複数の、ローカルビットラインのセットに２つのローカルビットラインがあることを特徴とする請求項１９または２０に記載の集積回路メモリ。
【請求項２２】
前記前処理段階と前記ブロック消去手順の前記消去段階の間に、別のチェックポイントを含むことを特徴とする請求項１６に記載の集積回路メモリ。
【請求項２３】
前記ブロック消去手順の消去段階において、前記消去パルス後で、前記ブロックの検査前に別のチェックポイントを含むことを特徴とする請求項１６に記載の集積回路メモリ。
【請求項２４】
前記ブロック消去手順の前記前処理段階と前記消去段階との間にある第４チェックポイントと、前記ブロック消去手順の前記消去段階において、前記消去パルスを印加した後で、前記ブロックの検査前に、第５チェックポイントを含むことを特徴とする請求項１６に記載の集積回路メモリ。
【発明の詳細な説明】
発明の背景
発明の分野
本発明は、不揮発性半導体メモリの分野に関し、詳述すれば、フラッシュメモリデバイスの自動化された消去シーケンスを中断させるプロセスに関する。
関連技術の説明
フラッシュメモリデバイスは、浮遊ゲートトランジスタのメモリアレイを基礎としており、現在の多くのアーキテクチャではこれらのトランジスタは、複数のメモリセルのブロックに編成されており、セルのアレイのプログラミング及び消去をブロック毎に支援するようになっている。Linらの米国特許第5,414,664号“FLASH EPROM WITH BLOCK ERASE FLAGS FOR OVER-ERASE PROTECTION”を参照されたい。典型的なフラッシュメモリセルの場合、論理「１」は消去（された）状態に対応し、この状態では僅かな電子がセルの浮遊ゲート内に蓄積されるので消去されたセルは低しきい値を有している。消去されたセルの制御ゲートに読み出し電圧が印加されるとセルは導通する。これに対して、論理「０」はプログラム（された）状態に対応し、この状態では浮遊ゲートはより多くの電子を蓄積する。プログラム状態ではセルは高いしきい値を有しており、ワードラインに読み出し電位が印加されてもセルは導通しない。（勿論、プログラム状態及び消去状態の論理値は、所与の実施に最適となるように割当てることができる。）フラッシュメモリセルは、単一のメモリセルをビット毎に論理０状態、即ちプログラム状態から、論理１状態、即ち消去状態へ上書きできないことが特徴である。従って、セルを所望の状態にセットするためには、先ずブロック全体を消去し、次いで、それらの中の論理０にすることを望むセルを個々にプログラムしなければならない。
消去手順は、典型的には、デバイス上の内部状態マシンによって自動的に制御される。この手順は比較的長い時間がかかる。例えば、従来技術の消去手順は、ブロック内の全てのバイトをプリプログラムし、このプリプログラミングを検査し、ブロック全体を消去し、ブロック内の全てのバイトの消去を検査することを含む複数のステップからなっている。
消去手順中に、消去中のブロック以外のブロックに記憶されているデータを読み出すことをユーザが望むことがあり得る。この読み出しを達成するためには、進行中の消去手順を中断させて読み出しアクセスを進めることができるようにし、読み出しアクセスが完了した後に消去手順を再開することが望ましい。
消去を中断させる従来技術プロセスの１つは、Fandrichらの米国特許第5,355,464号“CIRCUITRY AND METHOD FOR SUSPENDING THE AUTOMATED ERASURE OF A NON-VOLATAILE SEMICONDUCTOR MEMORY”である。Fandrichらの特許に記載されているように、ユーザは消去中断命令を何時でも発行することができる。しかしながら、Fandrichらによる消去手順は、消去手順中のある場所においてのみ中断させることができる（Fandrichらの特許の図５を参照されたい）。例えば、消去手順の前処理段階（プリコンディションフェーズ：プリプログラミングが遂行される）中、状態マシンは、プリプログラム中の現バイトのプリプログラミングが成功した後に限って消去中断命令に応答する。あるバイトをプリプログラムするためには、プログラムパルスをそのバイトに印加し、検査試験を遂行する。もし検査に不合格であれば別のプログラムパルスを印加し、再び検査する。このパルス及び検査ループは、そのバイトのプログラムに成功するか、またはアルゴリズムが失敗するまで複数回にわたって続けられる。プリプログラミング手順を受けている現バイトのプリプログラミングが成功するまでユーザは待機させられるので、消去プロセス中にアレイ内の別のブロックへアクセスを行おうとしているユーザはかなりの遅れを被ることになる。
Fandrichらの特許において消去手順が中断命令に応答する第２の点は、プロセスの消去段階中である。Fandrichらの特許では、消去段階は比較的長い（ミリ秒程度）消去パルスを印加することを含む。消去パルスの後に、ブロックはバイト毎に消去検査プロセスを受ける。Fandrichらの特許によれば、消去パルス全体が終了するまでは消去手順を中断させることはできない。明らかに、このアプローチは、消去中断命令が発行された時点から、状態マシンが実際に中断してユーザが別のブロックにアクセスできるようになるまでに、かなりの長さの時間がかかることが欠点である。
高性能処理システムでは、フラッシュメモリデバイスに記憶されているデータへのアクセスの遅れがクリティカルであり得る。従って、消去手順中の中断プロセスを可能な限りスピードアップすることが望ましい。
発明の概要
本発明は、多重チェックポイント消去中断アルゴリズムを含むフラッシュメモリデバイスを提供する。ユーザは、消去プロセス中に何時でも消去中断命令を発行することができる。本発明によれば、複数のチェックポイントの中で最初に出現するチェックポイントにおいて消去手順を中断させることができるようにしたことによって、可能な限り早く消去手順が中断される。チェックポイントは、消去中断命令の発行から、消去が中断されてメモリアレイへのアクセスが実行されるまでにユーザが待機しなければならない時間の長さを最短にするように選択されている。
従って、本発明は、複数のメモリセルのブロックからなるメモリアレイを含む（フラッシュメモリ集積回路のような）集積回路メモリとして特徴付けることができる。ブロック消去論理回路がメモリアレイに結合され、ブロック消去命令に応答してメモリセルの選択されたブロックを消去するブロック消去手順を実行する。ブロック消去手順は、プログラム電位を印加して選択されたブロックをプリプログラムし、次いで、そのブロックのプリプログラミングを検査する前処理段階（プリプログラミング段階ともいう）を含む。典型的には、プリプログラミング及びプリプログラム検査は、多重ビットセグメント毎に（例えば、バイト毎にのように）実行される。前処理段階の後に、消去電位を印加して選択されたブロックに対する消去段階を実行し、次いで、その選択されたブロックを試験してそのブロックの消去を検査する。本発明によれば、消去中断論理回路が消去論理回路に結合され、消去中断命令に応答してブロック消去手順を中断させる消去中断手順を実行する。消去中断手順は、ブロック消去手順中、消去中断命令を受信した後のチェックポイントのセットの中の通常は最初に出現するチェックポイントにおいてブロック消去手順に割り込むことを含む。ここにチェックポイントとは、その手順内のイベントとイベントとの間に入っているか、またはその手順内の１つまたはそれ以上のイベントを包含する時間間隔のことである。チェックポイントのセットは、前処理段階中に割り込みを可能にする第１のチェックポイントと、消去電位をブロックに印加する消去パルス中に割り込みを可能にする第２のチェックポイントと、消去ステップの検査中に割り込みを可能にする第３のチェックポイントとからなる。ブロック消去手順に割り込んだ後の消去中断手順は、ブロック消去を完了させるためにブロック消去手順へ復帰することを含む。
前述したように、複数のブロック内のブロックは、複数のデータのバイトを含む。前処理段階は、選択されたブロックをバイト毎にプリプログラムする論理回路を含んでいる。この論理回路は、プログラム電位をバイトに順次に印加し、プログラム電位を印加するためにそのブロック内の次のバイトへ進む前に、そのバイトのプリプログラミングを検査する。この順次プロセスは、そのブロックがプリプログラムされるか、またはエラーが発生するまで実行される。本発明の他の特徴によれば、第１のチェックポイントは、ブロック内のバイトのプリプログラミングの間にある。詳述すれば、本発明の１つの好ましい実施例によれば、第１のチェックポイントは、ブロック内のバイトにプログラム電位を印加した後に、且つ同一バイトのプログラミングを検査する前にブロック消去手順の割り込みを可能にする。以上のように、本発明のアルゴリズムは、プリプログラムパルスを受けるバイトがプリプログラムに成功したか否かに拘わらず、中断命令が発行された後の、プリプログラムパルスの終わりに消去手順に割り込むことができる。
本発明の他の特徴によれば、消去手順内の箏２のチェックポイントは、消去パルスの印加中にある。もし、消去パルスがフラッシュメモリセルに印加されている時間中に、または消去パルスが活動になる前に中断命令が発行されれば、消去手順に直ちに割り込む。一般的に言えば、消去パルスは比較的長く、プリプログラムパルスよりも遙かに長い。例えば、メモリセルの１つのブロックを消去するための消去パルスは10ｍｓ程度であるのに対して、プリプログラムパルスの長さは10μｓ程度である。従って、レスポンス時間を短縮し、中断アルゴリズムの効率を増加させるには、消去パルスの消去電位の印加中に状態マシンを中断できるようにすることが有用である。
更に、本発明の特徴によれば第３のチェックポイントは、消去検査ステージ中に発生する。もし中断命令が消去検査中に発行されれば、状態マシンは消去検査を不合格にし、迅速にこのステージから退去させる。
更に、本発明の他の特徴によれば、ブロック選択トランジスタを通してグローバルビットラインに相互接続されているローカルビットライン及びローカルソースラインを基礎とする本発明の消去中断論理回路は、セグメント化可能なフラッシュアーキテクチャに結合されている。消去中断プロセスとの独特なアーキテクチャの組合せが、消去中断命令に極めて効率的に応答することを可能にする効率的な高速集積回路メモリデバイスを提供する。
更に、本発明の他の特徴によれば、ブロック消去論理回路は、複数のブロック内の各ブロック毎に１つ宛の複数のブロック消去フラグを含んでいる。ブロック消去手順は、消去すべく選択されたブロックのブロック消去フラグをセットすることを含む。もしあるブロックの消去に成功すれば、そのブロックのブロック消去フラグは消去検査ステージ中にリセットされる。これにより、消去検査に合格しなかったブロックだけに再び消去パルスが印加される（前記米国特許第5,414,664号参照）。本発明のこの面によれば、消去検査中に消去中断命令が受信されると消去検査は不合格にされ、現ブロックの消去フラグはリセットされない。次いで制御論理回路は次のブロックへジャンプする。もし次のブロックの消去フラグがセットされていなければ、それはスキップされる。一方、もし消去フラグがセットされていれば消去検査は再び不合格にされる。これは、フラグのリセットを防ぎ、状態マシンは、残りのフラグの全てが処理されてしまうまで、複数のブロック消去フラグを通って進行する。再開命令が発行された後、消去検査手順は、そのブロックのブロック消去フラグを監視することによって、最初のブロック内の最初のバイトの始まりから再開する。一方、消去再試行カウンタは、消去中断の流れの間はリセットもされず、増加もされない。そのため、ブロック消去手順の中央において消去中断プロセスが実行されても、再試行カウントの数を正しく保持することができる。
以上のように、消去中断命令がユーザによって発行された後に、可能な限り迅速に消去手順を中断することができる消去中断論理回路を有するフラッシュメモリデバイスが提供される。これは、従来技術において可能であったよりも遙かに効率的にフラッシュメモリデバイスの使用を可能にする。
本発明の他の面及び長所は、添付図面、以下の詳細な説明、及び請求の範囲を検討することによって明白になるであろう。
【図面の簡単な説明】
図１は、本発明の多重チェックポイント消去中断論理回路を含むフラッシュメモリデバイスの簡易ブロック図である。
図２は、図１のシステムにおいて使用するのに好ましい集積回路メモリアーキテクチャの一例を示す回路図である。
図３は、図１のシステムにおいて使用するのに好ましい別の集積回路メモリアーキテクチャを示す回路図である。
図４は、本発明の消去中断論理回路を含む集積回路フラッシュメモリデバイスの簡易ブロック図である。
図５は、本発明の消去中断チェックポイントを含むブロック消去手順の前処理段階の流れ図である。
図６は、本発明の消去中断チェックポイントを含むブロック消去手順の消去段階の流れ図である。
図７は、図５及び６の手順内において実行される消去中断プロセスの流れ図である。
図８は、本発明の別の実施例によるブロック消去フラグを含むブロック消去手順を示す流れ図である。
図９、１０、及び１１Ａ−１１Ｂは、図５のブロック５０４に対応する消去中断動作を示す簡易論理図及びタイミング図である。
図１２、１３、１４、１５、及び１６Ａ−１６Ｂは、図６のブロック６０１のチェックポイント中に「消去中断可」信号を生成するための論理及びタイミングを示す図である。
図１７及び１８は、図６のチェックポイント６０６における消去中断プロセスの論理を示す図である。
詳細な説明
以下に、添付図面を参照して本発明の好ましい実施例を詳細に説明する。
図１は、本発明を組み込んだフラッシュメモリ集積回路の基本的構造を示している。この回路は、フラッシュメモリアレイ１０を含み、このアレイ１０は複数のブロック（図では32ブロック）に分割されている。フラッシュメモリアレイは、図２または図３に示し、以下に説明するように、セグメント化可能なアーキテクチャを有している。
アレイ１０に接続されているのは、読み出し／プログラム制御回路１１、及びブロック消去／消去検査制御回路１２である。ブロック消去／消去検査制御回路１２は、複数のブロック消去フラグ１３、及び消去検査シーケンスのためにメモリセルを通してインクリメントするアドレスカウンタ１４を含んでいる。
チップは、アドレス、データ、及び出力可能化／チップ可能化信号のような他の制御ラインに結合されている命令論理回路１５を含んでいる。命令論理回路１５は入力を解釈し、読み出し／プログラム制御論理１１、及びブロック消去／消去検査制御論理１２の動作モードをセットする。本発明による命令論理回路１５は、多重チェックポイント消去中断プロセスを認識し、実行する論理回路を含んでいる。
命令論理回路１５は、本発明によるブロック消去及び消去中断のための付加的な命令を使用して標準フラッシュメモリ集積回路（カリフォルニア州サニーベールのAdvanced Micro Devices, Inc. 製Am28F020のような）で実現することができる。命令論理回路１５によって発行された命令に応答し、組込んであるブロック消去動作がブロック消去／消去検査制御論理回路１２内の状態マシンによって実行される。ユーザは、ホストＣＰＵその他を通して、アドレス及びデータ信号を命令論理回路１５へ供給し、好ましい動作モードを指示させる。本発明に関連のあるモードには、アレイ１０内の全てのブロックを消去するチップ消去モード、及びアレイ１０内の選択されたブロックを消去するブロック消去モードが含まれる。消去されるブロックは、ブロック消去フラグ１３によって識別される。チップ及びブロック消去モードは、以下に説明するように消去中断を効果的に行う多重チェックポイントを含む。
フラッシュメモリアレイ１０のアーキテクチャの故に、アレイ内のブロックは消去動作のためにセグメント化することができる。図２に示すようなアレイを参照して、制御論理回路がブロック消去動作をどのように実行できるのかを以下に説明する。
図２は、Yiuらの米国特許第5,399,891号に記載されているフラッシュメモリ回路のドレイン・ソース・ドレイン構成を使用するセグメント化可能なアレイアーキテクチャを示している。
この回路は、第１ローカルビットライン７９及び第２ローカルビットライン８０を含むアレイのセグメント化可能な区分（例えば、区分７７）を含んでいる。また、埋没された拡散導体によって実現されたローカル仮想接地ライン７８も含まれている。ゲート、ドレイン、及びソースを有する複数の浮遊ゲートトランジスタが、ローカルビットライン７９、８０及びローカル仮想接地ライン７８に結合されている。これらの複数のトランジスタのソースが、ローカル仮想接地ライン７８に接続されている。第１列のトランジスタ７５−１乃至７５−Ｎのドレインは、第１ローカルビットライン７９に結合され、第２列のトランジスタ７６−１乃至７６−Ｎのドレインは、第２ローカルビットライン８０に結合されている。浮遊ゲートトランジスタのゲートは、ワードラインＷＬ0乃至ＷＬNに結合されている。即ち、各ワードライン（例えば、ＷＬ1）は第１ローカルビットライン７９内のトランジスタ（例えば、トランジスタ７５−２）のゲートと、第２ローカルビットライン８０内のトランジスタ（例えば、トランジスタ７６−２）のゲートとに結合されている。従って、トランジスタ７５−２及び７６−２は、ソース拡散を共用する２つのトランジスタセルと見做すことができる。
浮遊ゲートを充電する動作を、メモリセルの消去ステップと呼ぶ。これは、浮遊ゲートとソースとの間（ソース消去）、または浮遊ゲートと基体との間（チャネル消去）のＦ−Ｎ（ファウラ、ノルトハイム）トンネリングメカニズムを通して達成される。ソース消去は、ゲートを接地するか、または−７Ｖのような負にバイアスし、ソースに12Ｖまたは７Ｖのような正バイアスを印加することによって遂行される。ブロック毎のチャネル消去は、ゲートに負バイアスを、及び／または基体に正バイアスを印加することによって遂行される。Ｆ−Ｎトンネリングは、プログラムステップのためにも使用することができる。
第１グローバルビットライン８３及び第２グローバルビットライン８４が、ドレイン・ソース・ドレインブロックに組合されている。第１グローバルビットライン８３は、金属・拡散接触５７を通して上側ブロック選択トランジスタ８１のソースに結合されている。同様に、第２グローバルビットライン８４は、金属・拡散接触５８を通して上側ブロック選択トランジスタ８２のソースに結合されている。上側ブロック選択トランジスタ８１、８２のドレインは、第１及び第２ローカルビットライン８３及び８４にそれぞれ結合されている。上側ブロック選択トランジスタ８１、８２のゲートは、上側ブロック選択信号ＴＢＳＥＬAによって制御される。
ローカル仮想接地ライン７８は、下側ブロック選択トランジスタ８５を通して導体５４Ａに接続され、導体５４Ａは仮想接地端子金属ライン５９に接続されている。下側ブロック選択トランジスタ８５のドレインは、ローカル仮想接地ライン７８に結合されている。下側ブロック選択トランジスタ８５のソースは、導体５４Ａに結合されている。下側ブロック選択トランジスタ８５のゲートは、下側ブロック選択信号ＢＢＳＥＬAによって制御される。好ましいシステムでは、導体５４Ａは、アレイを通って水平方向に変位した位置にある金属・拡散接触６０Ａ（垂直金属仮想接地バス５９への接触を与える）まで伸びている埋没された拡散導体である。
グローバルビットライン（８３、８４）は、アレイを通って垂直にそれぞれの列選択トランジスタ７０、７１まで伸び、これらのトランジスタを通してセンス増幅器及びプログラムデータ回路（図示してない）に結合されている。即ち、列選択トランジスタ７０のソースはグローバルビットライン８３に結合され、列選択トランジスタ７０のゲートは列デコード信号Ｙn(M-1)に結合され、そして列選択トランジスタ７０のドレインは導体９０に結合されている。
図２は、大きい集積回路内の２つのサブアレイを示している。これらのサブアレイは破線５０によって概ね分割され、線５０から上のサブアレイ５１Ａと、線５０から下のサブアレイ５１Ｂとを含んでいる。第１グループ５２のセルは、所与のビットライン対（例えば、ビットライン９１、９２）に沿って、第２グループ５３のセルと鏡像に配列されている。上側のビットライン対を見れば分かるように、メモリサブアレイは、仮想接地導体５４Ａ、５４Ｂ（埋没された拡散）及び金属・拡散接触５５、５６、５７、５８を共用するようにフリップ（flip）されている。仮想接地導体５４Ａ、５４Ｂはアレイを横切って垂直仮想接地金属線５９まで水平方向に伸び、金属・拡散接触６０Ａ、６０Ｂに達している。サブアレイは金属仮想接地ライン５９の両側において繰り返され、隣接するサブアレイが金属仮想接地ライン５９を共用している。金属仮想接地ライン５９は、アレイ接地及び消去高電圧回路に結合されている。従って、サブアレイのレイアウトは、グローバルビットラインのために２つのトランジスタセルの列当たり２つの金属接触ピッチと、金属仮想接地ライン５９のためにサブアレイ当たり１つの金属接触ピッチだけでよい。
更に、図２に示すように、上側及び下側選択信号ＴＢＳＥＬＡ、ＴＢＳＥＬＢ、ＢＢＳＥＬＡ、及びＢＢＳＥＬＢによって付加的なデコーディングが行われるので、図示のように２つまたはそれ以上のサブアレイがワードライン信号を共用することができる。好ましいシステムでは、各ブロックは、ある列の中に４つのサブアレイを含み、各サブアレイ内には１つの行があり、この行は他の３つのサブアレイ内の行と共通ワードラインドライバを共用する。４つのサブアレイの間のデコーディングは、ＴＢＳＬＥＡ及びＴＢＳＥＬＢに応答する上側ブロック選択トランジスタを使用して実行される。各サブアレイは32のワードラインと、１Ｋ（1,024）のビットラインとを含んでいる。以上のように、４つのサブアレイでは、32ワードラインの深さと、１Ｋビットライン幅と、128Ｋセルのブロックが得られる。32ブロックが４メガバイトのメモリを作る。
明らかに、図２のアーキテクチャはセクタ化されたフラッシュメモリアレイを提供する。これは、読み出し、プログラム、または消去サイクル中に選択されなかったサブアレイ内のトランジスタのソース及びドレインを、ビットライン及び仮想接地ライン上の電流及び電圧から絶縁することができるので有益である。従って、読み出し動作中、選択されなかったサブアレイからの漏洩電流がビットライン上の電流に影響することはないので、センシングが改善される。消去動作中の仮想接地ラインの高電圧は、ＢＢＳＥＬトランジスタによって、選択されなかったブロックから絶縁される。ＢＢＳＥＬは高電圧で駆動され、ブロック消去フラグがセットされている時にはアレイへ高電圧を印加し、ブロック消去フラグがリセットされている時には０Ｖを印加する。これによりブロック消去動作が可能になる。
図３は、本発明によるフラッシュメモリアレイの代替アーキテクチャを示しており、フラッシュメモリセルの２つの列が単一の金属ビットラインを共用している。図３はアレイの４つのセグメントを示しており、各セグメントはドレイン・ソース・ドレイン構成のフラッシュメモリセルの列の対を含んでいる。
即ち、第１セグメント１２０は、第１ドレイン拡散ライン１２１、ソース拡散ライン１２２、及び第２ドレイン拡散ライン１２３を含む。ワードラインＷＬ０乃至ＷＬ６３は各々、複数の列対の第１の列対内のセル、及び複数の列対の第２の列対内のセルの浮遊ゲートを覆っている。図示のように、複数の列対の第１の列対は、セル１２４、セル１２５、セル１２６、及びセル１２７を含む。ワードラインＷＬ２乃至ＷＬ６１に結合れているセルは図示してない。複数の列対の第２の列対は、セル１２８、セル１２９、セル１３０、及びセル１３１を含む。アレイの同一列に沿って、第２セグメント１３５が示されている。これは、鏡像に配列されていることを除いて、セグメント１２０と類似アーキテクチャを有している。
以上から明白なように、複数の列対の第１の列対内のトランジスタ（例えば、セル１２５）は、ドレイン拡散ライン１２１内のドレインと、ソース拡散ライン１２２内のソースとを含んでいる。浮遊ゲートが、第１ドレイン拡散ライン１２１とソース拡散ライン１２２との間のチャネル領域を覆っている。ワードラインＷＬ１はセル１２５の浮遊ゲートを覆ってフラッシュセルを確立している。
セグメント１２０及びセグメント１３５は、アレイ仮想接地拡散１３６を共用する。従って、セグメント１２０のソース拡散ライン１２２は、拡散ライン１３６に結合されている。同様に、セグメント１３５のソース拡散ライン１３７はソース拡散ライン１３６に結合されている。
前述したように、所与のセグメント（例えば、セグメント１２０）内のセルの各列対は、単一の金属ラインを共用している。従って、ブロック右選択トランジスタ１３８及びブロック左選択トランジスタ１３９が含まれている。トランジスタ１３９は、ドレイン拡散ライン１２１内のソースと、金属接触１４０に結合されているドレインと、ライン１４１上の制御信号ＢＬＴＲ１に結合されているゲートとを含んでいる。同様に、右選択トランジスタ１３８は、ドレイン拡散ライン１２３内のソースと、金属接触１４０に結合されているドレインと、ライン１４２上の制御信号ＢＬＴＲ０に結合されているゲートとを含んでいる。従って、トランジスタ１３８及び１３９を含む選択回路は、金属接触１４０を通して、第１ドレイン拡散ライン１２１及び第２ドレイン拡散ライン１２３を金属ライン１４３に選択的に接続する。セグメント１３５は左選択トランジスタ１４４及び右選択トランジスタ１４５を含み、これらが同じように金属接触１４６に接続されていることは明白である。接触１４６は、セグメント１２０に結合されている接触１４０と同じように、同一金属ライン１４３に結合されている。
セグメントは水平及び垂直方向に配列され、Ｍワードライン及び２Ｎ列からなるフラッシュセルのアレイを構成している。前述したように、アレイは、各々が選択回路を通してフラッシュセルの１つの列対に結合されているＮ金属ビットラインを必要とするだけである。
図には２つの金属ライン１４３及び１５２に結合された４つのセグメント１２０、１３５、１５０、及び１５１だけを示してあるが、アレイは、大規模フラッシュメモリアレイを確立するために、必要に応じて、水平方向及び垂直方向に繰り返される。仮想接地構成、レイアウトの縮小した金属ピッチ要求の故に、及び異なるセグメント内の複数の行の間でワードラインドライバを共用する能力によって、アレイのレイアウトはコンパクトである。即ち、ワードラインＷＬ６３’は、ワードラインＷＬ６３とワードラインドライバを共用することができる。例示システムでは、８つのワードラインが１つのワードラインドライバを共用している。従って、８行のセルの各セット毎に１つのワードラインドライバ回路のピッチを必要とするだけである。左及び右選択トランジスタ（セグメント１２０の場合、１３９、１３８）が付加的なデコーディングを行うので、共有ワードライン構成が可能になるのである。共用ワードライン構成は、ブロック消去動作中に８行のセルの全てが同じワードライン電圧を受け、消去することを望まないセル内にワードライン妨害をもたらす欠陥を有している。もしそれが所与のアレイにとって問題であれば、共用されるワードラインドライバに結合されている全ての行のセルを含むセグメントに対してブロック消去動作デコードを完全に行うことによって、この妨害問題を排除することができる。１つのドライバを８つのワードラインが共用する場合、最小で８行のブロック消去が要求される。
図４は、本発明の消去中断論理回路を含むフラッシュメモリ集積回路の簡易図である。この集積回路は、上述した図２または３に示すようなアーキテクチャを有するフラッシュメモリアレイ４００を含んでいる。フラッシュメモリアレイ４００には、フラッシュメモリアレイ４００内のワードライン及びビットラインセレクタを駆動するためのＸデコーダ４０１及びＹデコーダ４０２が結合されている。また、好ましいシステムでは、消去手順の目的でブロックを選択するブロックデコーダ４０３もフラッシュメモリアレイ４００に結合されている。
Ｘデコーダ４０１、Ｙデコーダ４０２、及びブロックデコーダ４０３は、アドレスバッファ／ラッチ回路４０４に結合されている。アドレスバッファ／ラッチ回路４０４は、チップ（図示してない）上のアドレスパッド、並びにアドレスカウンタ４０５に結合することが好ましい。
またフラッシュメモリアレイ４００には、センス増幅器４０６のセットにも結合されている。センス増幅器は、データ出力ラッチ４０７を通してデータパッド４０８に結合されている。
１つの好ましいシステムでは、データパッド４０８はデータ入力ラッチ４０９に結合され、データ入力ラッチ４０９はデータデコーダ４１０に接続されている。データデコーダ４１０は、命令レジスタ４１１に結合されていて入力データシーケンスを翻訳して命令を検出し、命令レジスタ４１１へ供給する。チップ可能化／出力可能化制御パッド４１２が、チップ可能化／出力可能化制御論理回路４１３に結合されている。チップ可能化／出力可能化制御論理回路４１３は、命令をデコードするために使用される命令レジスタ４１１にも結合されている。
データ入力ラッチ４０９は、読み出し／書き込み制御論理回路４１５にも結合されている。読み出し／書き込み制御論理回路は、命令レジスタ４１１内の読み出し／書き込み命令に応答し、フラッシュメモリアレイ４００の読み出し／書き込みを管理する。読み出し／書き込み制御回路は、矢印４１６によって表してあるように、集積回路内の複数の要素に結合されている。
図４に示すように、本発明の集積回路は消去中断制御論理回路４２０を含む。消去中断制御論理回路は、消去再開制御論理回路４２１に結合されている。またチップ上には消去制御論理回路４２２も含まれている。消去制御論理回路４２２、消去再開制御論理回路４２１、及び消去中断論理回路４２０は、ライン４２３上の命令レジスタ４１１に結合されている。好ましいシステム内の消去制御論理回路４２２は、図１に関して説明した複数のブロック消去フラグを含んでいる。しかし簡易化のために、ブロック消去フラグは図４には示されていない。
消去制御論理回路４２２は、ライン４２３上の消去命令に応答してブロック消去手順を開始する。ブロック消去手順は、消去制御論理回路４２２に結合されているプリプログラム制御論理回路ブロック４２４によって実行される前処理段階を含む。プリプログラム制御論理回路ブロック４２４は、プログラム検査制御論理回路ブロック４２５に結合されている。前処理段階のプログラム検査プロセスの一部として、データ比較ステップがデータ比較論理回路４２６内で実行される。データ比較論理回路４２６はセンス増幅器４０６に結合され、フラッシュメモリアレイ４００におけるデータのプリプログラミングが成功したか否かをバイト毎に検査する。アレイのプリプログラムに成功すると、消去制御は消去パルスをフラッシュメモリアレイ内の選択されたブロックへ印加する。消去制御ブロック４２２の制御の下に消去パルスを印加した後に、消去検査制御論理回路ブロック４２７が可能化される。消去検査制御論理回路ブロック４２７は、データ比較論理回路４２６に結合され、フラッシュメモリアレイ内のブロックの消去が成功したか否かをバイト毎に検査する。
プログラム／消去再試行カウンタ４２８が、消去制御ブロック４２２及びプリプログラム制御ブロック４２４に結合されている。プログラム／消去再試行カウンタ４２８は、あるブロックの消去を試みた回数、及びそのブロック内のあるバイトのプリプログラムを試みた回数を追跡する。もしこれらの試みがしきい値より多く実行されれば、エラーが指示される。
消去中断制御論理回路４２２は、読み出し／書き込み制御論理回路４１５、消去検査制御ブロック、消去制御ブロック、及びプリプログラム制御ブロックに結合され、消去中断命令の発行後の効率的且つ可能な限り迅速な消去手順の中断を管理する。
消去再開制御論理回路４２１はライン４２３上の命令に応答し、消去中断プログラムが実行されていた場所に依存して適切な点から消去手順を再開させる。
本発明によるブロック消去論理回路に含まれる手順の詳細に関しては、以下の図５−８を参照しての説明から理解されよう。図５−７は、本発明によるブロック消去プロセスに含まれる前処理、消去、及び中断手順を示している。図５に示すように、論理回路はスタンバイモードで待機している（ステップ５００）。ユーザが消去命令を発行すると、それはステップ５０１において論理回路によって検出される。この点において、状態マシンは消去の流れの実行を開始する。消去の流れの始めに、アドレスカウンタが０にセットされる（ステップ５０２）。次に、プリプログラムパルスがアドレス０のバイトに印加される（ステップ５０３）。ステップ５０３におけるプリプログラムパルスの印加後に、消去中断チェックポイントが現れる。従って、アルゴリズムは、制御論理回路が消去中断命令を受信したか否かを検査する（ステップ５０４）。もし命令を受信していれば消去中断の流れが実行される（ステップ５０５）。消去中断プロセスが完了するか、またはステップ５０４において消去中断命令が受信されていなければ、パルスを受信したバイトに対してプリプログラム検査プロセスが実行される（ステップ５０６）。次に、アルゴリズムは、そのバイトをプリプロセス検査ステップに合格したか否かを決定する（ステップ５０７）。もし合格していなければ、プログラムカウンタがプログラム再試行限度より小さいか、または等しい数を記憶しているか否かを決定する。もしプログラムカウンタがプログラム再試行限度より小さければ、アルゴリズムはステップ５０４へループバックし、そのバイトのプリプログラミングを再び試みる。もしプログラムカウンタがしきい値を超えれば消去失敗状態が発生する。
ステップ５０７において、もしバイトがプリプログラムに合格していれば、アドレスカウンタがインクリメントされる（ステップ５０９）。次に、アルゴリズムは、これが消去手順を受けるブロック内の最後のアドレスか否かを決定する。もしそれが最後のアドレスでなければ、アルゴリズムはステップ５０３へループバックし、次のバイトをプリプログラムする。もしそれが最後のアドレスであればアルゴリズムは点１００へ進んで、ブロック消去手順の消去段階に対応する図６のプロセスを開始する。本発明の一実施例によれば、点１００も消去中断チェックポイントに対応する。
技術的に言えば、プリプログラム段階内には４つの期間、即ちプログラム、プログラム回復、プログラム検査、及びプログラム検査回復が存在する。プログラム及びプログラム検査の両期間はある高電圧で動作している。従って、回路が内部ノードを放電する等のために高電圧モードから回復できるように、プログラム及びプログラム検査動作の後にある回復間隔を設ける必要がある。好ましいシステムでは、状態マシンの中断は、回復間隔の後に、従って回路が高電圧動作から回復してから発生する。これにより、チップは消去再開プロセスの後に正しく機能することが保証される。
図５からの点１００が図６に示されており、これがブロック消去手順の消去段階の始まりである。消去段階の最初のステップは、消去すべきブロックに消去パルスを印加することである（ステップ６００）。ステップ６０１に示すように、消去中断チェックポイントは消去パルスの印加中に発生する。もし消去パルスが始まった後に、そして消去パルスが終わってタイムアウトになる前に（ステップ６０２）消去中断命令が受信されなければ、アルゴリズムは、消去パルスが終わるまでループし続ける。もし消去中断命令が受信されれば（ステップ６０１）、消去中断の流れが実行される（ステップ６０３）。ステップ６０３の消去中断の流れの後に、または消去パルスが終わった後に、アルゴリズムは、アドレスカウンタを０にリセットする（ステップ６０４）ことによって消去検査ステージに入る。消去検査プロセスは、バイト毎に実行される（ステップ６０５）。ステップ６０１の消去中断チェックポイントは、消去パルスが終わった後から、ステップ６０７における消去検査プロセスにおける最初のバイトの試験前まで付加的に拡張することが好ましい。ステップ６０４においてアドレスカウンタが０にリセットされる時点は、消去検査前のプロセス内の何処にあることもできる。またカウンタのこのリセットは、消去中断命令の監視と並行して行うことができる。
消去中断チェックポイントは、ステップ６０６に示すように、バイト毎に行われる消去検査ステージ中に発生する。ステップ６０６において、もし消去中断命令が受信されていなければ、アルゴリズムは現バイトが消去検査プロセスに合格したか否かを決定する（ステップ６０７）。もし合格していなければ、ステップ６０８において消去再試行カウンタが試験される。もし消去試行カウンタが、消去再試行限度より小さいか、または等しい値を記憶していれば、アルゴリズムはステップ６００へループバックして消去パルスを再印加する（もし１ブロックだけしか含んでいなければ、その場合はアルゴリズムは次のブロックへ進む）。もし消去再試行限度を超えていれば、消去失敗状態になる。
ステップ６０７において、もし現バイトが消去検査試験に合格すれば、アドレスカウンタがインクリメントされる（ステップ６０９）。次に、アルゴリズムはそのブロック内の最後のアドレスが通過したか否かを決定する（ステップ６１０）。もし否であれば、アルゴリズムはステップ６０５へループバックしてバイト毎の消去検査を続行する。もし最後のアドレスが通過していれば、論理は消去手順の終わりにスタンバイ状態へ復帰する（ステップ６１１）。
もし、ステップ６０６において、消去中断チェックポイントが消去中断命令を検出すれば、アルゴリズムはステップ６１２へ進んで現ブロックの消去検査を不合格にする。次に、ステップ６１３において、ブロックアドレスカウンタがインクリメントされる。ステップ６１４において、アルゴリズムはこれが最後のブロックか否かを試験する。もし否であれば、アルゴリズムはステップ６１２へループバックして全てのブロックの消去検査を不合格にする。最後のブロックの後に、消去中断の流れが実行される（ステップ６１５）。ステップ６１５における消去中断の流れの後に、アルゴリズムは点６０４へ戻り、消去検査プロセスを再び試みる。
消去中断の流れを図７に示す。消去中断の流れに入ると、論理回路は初期化され、中断可（レディ）信号が発行される（ステップ７００）。中断可の後に、ユーザは消去手順を受けている１つ、または複数のブロック以外のブロックへのアレイ読み出し命令、または別の型のアクセスのための命令を発行する（ステップ７０１）。ステップ７０２において、手順は、ステップ７０１のアクセスが安全ブロックへのアクセスであるか否かを決定する（ステップ７０２）。もし否であれば、エラーが指示される（ステップ７０３）。もしそのアクセスが安全ブロックへのアクセスであれば、読み出しアクセスまたは他のアクセスが実行される（ステップ７０３）。消去中断プロセスは、ステップ７０５においてユーザが消去再開命令を発行すると終了する。
図８は、図１のフラグ１３及びアドレスカウンタ１４を使用して制御論理回路１２が実行する組込み型消去アルゴリズムを示しており、ブロック消去フラグの動作を説明している。ブロック消去動作の詳細に関しては、前記米国特許第5,414,664号に記載されている。
組込まれている消去アルゴリズムのこの好ましいバージョンによれば、消去動作は１つまたはそれ以上のフラグのセットから開始される。チップ消去の場合、全てのフラグがセットされ、アドレスカウンタがアドレス０に初期化される。もしブロック消去動作を実行するのであれば、選択されたブロックのためのフラグだけがセットされる。消去手順を開始させるために、バイト・境界消去中断能力を有する（図５に関連して説明したような）プリプログラム段階が、選択されたブロックに対して実行される（ステップ８００）。
次のステップでは、セットフラグを有する全てのブロックが、消去パルスの印加によって消去される（ステップ８０１）。次いで、選択されたブロックのセット全体が、前述したセグメント化におけるように下側ブロック選択トランジスタの制御の下に、付勢電圧を印加することによって消去される。消去パルスの印加中、論理回路は消去中断命令に関して命令インタフェースを監視している（ステップ８０２）。もしパルスがタイムアウトする前に命令が発生しなければ（ステップ８０３）、アルゴリズムは消去検査電圧をセットアップすることによって消去検査プロセスへ進む（ステップ８０４）。
ステップ８０２において、もし消去中断命令が検出されれば、アルゴリズムは図８のステップ８０５によって表されている消去中断プロセスを実行する。ステップ８０５は消去再開命令を探索し、命令が受信されるとステップ８０１へ復帰する。
ステップ８０４から始まる消去検査プロセスは、消去検査電圧がセットアップされるとタイムアウトする（ステップ８０８）。消去検査電圧がセットアップされた後に、論理回路は消去中断命令に関して命令インタフェースを監視する（ステップ８０９）。もし命令が受信されると、アルゴリズムは、図８のステップ８１０によって表されている消去中断プロセスを実行する。ステップ８１０においては、命令インタフェースの消去再開命令を注視する。もし命令が受信されればアルゴリズムはステップ８０４へ復帰する。
ブロック８０９において、もし消去中断命令が受信されれば、現ブロックのためのフラグが試験される（ステップ８１３）。もしフラグがセットされていなければ、アルゴリズムはステップ８１４へ分岐し、それがチップ内の最後のブロックであるか否かが試験される。もしそれが最後のブロックでなければ、次のブロックへ進むために最上位ビットアドレスが増加され、最下位ビットアドレスがリセットされる（ステップ８１５）。ステップ８１５の後に、アドレスはステップ８０９へループバックして中断命令を監視する。
ブロック８１３において、もしフラグがセットされていれば、アルゴリズムは現バイトが消去検査に合格したか否かを決定し、また現バイトがそのブロック内の最後のバイトでないか否かを決定する（ステップ８１６）。もしそれが合格しており、且つ最後のバイトでなければ、次のバイトへ進むために下位ビットアドレスがインクリメントされ（ステップ８１７）、アルゴリズムはステップ８０９へループバックして再び中断命令を監視する。
ステップ８１６において、もしそれがブロック内の最後のバイトであれば、アルゴリズムはステップ８１８へ進み、そのバイトが消去検査に合格したか、且つそれがそのブロック内の最後のバイトであるかが再度決定される。もしそれが合格しており、且つそれが最後のバイトであったならば、ブロック消去フラグがリセットされ（ステップ８１９）、アルゴリズムはステップ８１４へ進んで最後のブロックが試験されたか否かを決定する。もしそのバイトがブロック８１８における検査に合格しなければ、アルゴリズムは８１４へ進んで最後のブロックが試験されたか否かを決定し、全てのブロックが試験されるまでステップ８１５及び８０９を通ってループし続ける。
ステップ８１４において、もし最後のブロックが検出されれば、アルゴリズムはステップ８２０において全てのフラグがリセットされたか否かを試験する。もしこの点においてフラグの全てがリセットされていなければ、アルゴリズムはステップ８０１へループバックし、未だセットフラグを有しているブロックを消去する。
図９、１０及び１１Ａ−１１Ｂは、図５のブロック５０４に対応する消去中断動作を示す簡易論理図及びタイミング図である。図１２、１３、１４、１５、及び１６Ａ−１６Ｂは、図６のブロック６０１に対応する消去中断動作を示す簡易論理図及びタイミング図である。図１７及び１８は、図６のブロック６０６における消去中断プロセスに対応する簡易倫理図である。図９−１８の論理及びタイミングは、消去中断プロセスのタイミングの例、及びタイミングを制御するために状態マシンを使用する簡易論理を提供している。本発明の消去中断アルゴリズムの特定の実施に依存して他の技術及びタイミングを使用することもできる。
図９は、プログラム回復制御信号ＰＧＭＲＥＣ、及びプログラム検査制御信号ＰＧＭＶＦＹが生成された時の消去中断信号の動作を示す論理図である。この論理回路は、ライン９０１上に出力ＰＧＭＲＥＣを生成するセット／リセットラッチ（ＳＲラッチ）９００を含んでいる。ライン９０１上の出力ＰＧＭＲＥＣは、プログラムパルス中に使用される高電圧を回復するためのタイミングウィンドウを確立する。ＳＲラッチ９００への入力は、ライン９０２上のＴＰＧＭＲＥＣ１信号と、ライン９０３上のＴＰＲＣＥＮＤ信号とを含む。ＴＰＧＭＲＥＣ１信号は、プログラム回復をトリガするために状態マシンが生成する制御信号である。ライン９０３上のＴＰＲＣＥＮＤ信号は、プログラム回復間隔を終わらせるために状態マシンが生成するトリガ信号である。
図９の論理回路は、ライン９１１上にＰＧＭＶＦＹ信号を生成してプログラム検査間隔を表すＳＲラッチ９１０を更に含む。リセット入力は、ライン９１３上のＴＰＧＭＲＥＣ２信号である。ＳＲラッチ９１０へのセット入力は、ＮＯＲゲート９１２の出力である。ＮＯＲゲート９１２への入力は、ライン９０３上のＴＰＲＣＥＮＤ信号を入力とするインバータ９１４の出力と、ライン９１５上のＥＲＳＰＥＮＤ信号とである。ライン９１５上のＥＲＳＰＥＮＤ信号は、消去中断間隔中にプログラム検査シーケンスを不能化するために、状態マシンが生成する消去中断信号である。ライン９１３上のＴＰＧＭＲＥＣ２信号は、プログラム検査間隔を終わらせるためにプログラム検査ＳＲラッチ９１０をリセットするために使用される制御信号である。
図１０は、消去中断が成功裏に達成され、読み出し動作を実行できることをユーザに信号する「消去中断可」信号を生成するために使用される論理回路を示している。この論理回路は、ＳＲラッチ１０００を含み、「消去中断可」信号をライン１００１上に生成する。ＳＲラッチ１０００への入力は、セット入力へのＮＯＲゲート１００２の出力と、リセット入力へのライン１００３上の「消去再開」信号とを含む。ＮＯＲゲート１００２への入力は、ライン１００４上のＰＧＭＶＦＹ信号と、ＮＡＮＤゲート１００５の出力とを含む。ＮＡＮＤゲート１００５への入力は、ライン１００６上のＴＰＲＣＥＮＤ信号と、ライン１００７上のＥＲＳＰＥＮＤ信号とを含む。
図９及び１０の論理回路の動作は、図１１Ａ及び１１Ｂのタイミング図を参照すると理解し易い。図１１Ａを参照すると、プログラムタイミングシーケンスが理解できる。先ず、点１１００においてプログラム間隔が始まる。プログラムパルスサイクルは、点１１０１においてプログラム信号が終わるまで持続する。点１１０２におけるＴＰＧＭＲＥＣ１パルスに応答して、点１１０１にプログラム回復間隔が開始される。プログラム回復間隔中に、プログラムパルスサイクル中に生成された高電圧が整定される。プログラム回復間隔の終わりは、点１１０３におけるＴＰＲＣＥＮＤパルスによって信号される。プログラム回復シーケンスの後に、プログラム検査が開始される。この間隔も、点１１０３におけるＴＰＲＣＥＮＤパルスによって開始される。検査間隔の終わりは、点１１０４におけるＴＰＧＭＲＥＣ２パルスによって信号される。パルス１１０５によって表されるプログラム検査回復間隔の後に、別のプログラムシーケンスが開始される。
図１１Ｂは、図５のブロック５０４におけるチェックポイントでの消去中断を示している。図１１Ｂの最初の４つのトレースは、図１１Ａの同一の４つのトレースに対応し、同じ参照番号が付されている。しかしながら、図１１Ｂのタイミング図では、消去中断信号が点１１１０に発行される。消去中断信号が高になると、点１１０３におけるＴＰＲＣＥＮＤ信号に応答して、ライン１１０１上に「消去中断可」信号が生成される。プログラム検査及びプログラム検査回復シーケンスは発生しない。図１１Ｂから理解されるように、消去中断命令は、もし点１１００と１１０１との間のプログラムパルス中に中断命令が発行されれば、点１１０３における回復の後と、プログラミング検査動作の始まりとの間にプリプログラミングプロセスへの割り込みをもたらす。またもし中断命令が点１１０１と１１０３との間のプログラム回復間隔中に受信されれば、同じ効果が得られる。もしライン１１０６上のＴＰＲＣＥＮＤ信号の後に消去中断命令が発生すれば、この例示実施例においては、次のプログラムサイクルまで「消去中断可」は発行されない。
通常の状態では、プリプログラミング間隔内のプログラムパルスの後に、電気パルスＴＰＧＭＲＥＣ１がタイマによって送出され、状態マシンをプログラム回復期間（この期間中に、関連回路及びプログラムされたセルが高電圧応力状態から通常電圧状態へ回復する）にセットする。プログラム回復期間の後に、タイマは電気パルスＴＰＲＣＥＮＤを送出してプログラム回復信号を低状態にリセットし、ＰＧＭＶＦＹ信号を高状態にセットしてプログラム検査を開始させる。もしプリプログラミングステップにおける自動消去プロセス中にユーザが消去中断命令を発行すれば、この中断命令はプログラム回復状態からプログラム検査状態への移行を阻止する。もしＰＧＭＶＦＹ信号が高になった後に消去中断命令が発行されれば、次のプログラム回復間隔が完了するまでプログラム検査シーケンスは停止されない。
プリプログラミングステップ中は、「消去中断可」信号は、もし消去中断命令が発行され、且つプログラム回復間隔が経過して回路が通常の電圧状態に到達できる場合に限って有効である。消去再開命令は、「消去中断可」信号を低状態にリセットする。消去再開が発行されると、状態マシンはＴＰＲＣＥＮＤ信号を高状態にし、ＰＧＭＶＦＹ信号をトリガしてプログラム検査からの流れを再開させる。
図１２、１３、１４、１５、及び１６Ａ−１６Ｂは、図６のブロック６０１におけるチェックポイント中に「消去中断可」信号を生成するための論理回路及びタイミングを示している。図１２から、ライン１２００上の「消去」命令の生成が理解されよう。ライン１２００上の「消去」命令は、ＳＲラッチ１２０１の出力に生成される。ＳＲラッチ１２０１のセット入力は、ＯＲゲート１２０２の出力である。ＳＲラッチ１２０１のリセット入力は、ライン１２０３上の「消去割り込み」信号である。ＯＲゲート１２０２への入力は、「プリプログラム完了」信号と、「消去再試行開始」信号とを含む。図１３は、ライン１３００及び１３０５上に「消去タイマ可能化」及び「消去タイマリセット」信号をそれぞれ生成する回路を示している。これらの信号は、ＳＲラッチ１３０１を使用して生成される。ＳＲラッチ１３０１へのセット入力は、図１２に示すようにして生成された「消去」信号である。ＳＲラッチ１３０１へのリセット入力は、ＯＲゲート１３０３の出力である。ＯＲゲート１３０３への入力は、「消去割り込み」信号と「消去回復」信号とを含む。
消去間隔は、図１４に示すようにして生成される「消去割り込み」信号の制御の下に終了する。ＡＮＤゲート１４００は、ライン１４０２上の「消去割り込み」信号と、ライン１４０２上の消去中断プロセスのための「消去回復開始」信号とを生成する。ＡＮＤゲート１４００への入力は、図１２に示すようにして生成された「消去」信号と、ユーザが生成する「消去中断」信号とを含む。
図１５は、ライン１５００上の「消去中断可」信号の生成を示している。ライン１５００上の信号は、ＳＲラッチ１５０１の出力に生成される。ＳＲラッチ１５０１のセット入力は、ＡＮＤゲート１５０２の出力である。ＡＮＤゲート１５０２への入力は、「消去回復終了」信号及び「消去中断」信号を含む。ＳＲラッチ１５０１のリセット入力は「消去再開」信号を受信する。
図１６Ａ及び１６Ｂは、図６のチェックポイント６０１における消去中断プロセスのためのタイミングを示している。図１６Ａに示すように、消去間隔は点１６００に開始される。消去間隔１６００の終わりに、点１６０１で消去回復開始信号が生成される。これは、消去回復間隔を開始させる。点１６０２において、タイマに応答して消去回復終了信号が発行される。これは、消去検査間隔を開始させ、消去回復間隔を終わらせる。消去検査シーケンスが終わった後に、点１６０３にシーケンス検査回復間隔が開始される。シーケンス検査完了パルスは、点１６０４に状態マシンによって生成され、別の消去シーケンスの始まりをマークする。
もし図６の点６０１に消去中断プロセスが発生すれば、タイミングは図１６Ｂに示すように変更される。詳しく述べると、もし消去パルス中の点１６１０に消去中断信号が発行されれば、消去割り込み信号が点１６１１に生成される。これは消去間隔を終了させ、消去回復開始プロセスを開始させる。消去回復開始信号は、図示のように消去回復間隔を開始させる。消去回復間隔の終わりに、点１６１２に消去回復終了パルスが生成される。これは消去中断可信号を活動化させ、消去中断信号を活動のままにする。この信号は、消去再開信号が図１５のラッチ１５０１をリセットするまで高に留まる。
この例では、消去信号が、ある消去パルスサイクルに対して消去制御タイマを10ｍｓのカウントにセットする。そのパルスサイクルの後に、状態マシンが生成する消去回復信号が消去期間をリセットし、消去回復期間をトリガする。消去回復期間の目的は、消去パルスサイクル中に使用された高電圧を弛緩させることである。消去回復期間が完了すると、消去シーケンスは消去検査シーケンスに入る。もし、消去パルス中にユーザが消去中断命令を発行すれば、図１３に示すような消去割り込み信号によって消去タイマは直ちに不能化される。消去割り込み信号によって、消去パルス幅も短縮される。この状態は、消去回復をもトリガする。消去中断可は、点１６１２における消去回復間隔の完了の後に発生する。
図１７及び１８は、図６のチェックポイントブロック６０６における消去中断プロセスのための論理回路である。図１７に示すように、「消去中断開始」信号は、ＳＲラッチ１７００の出力に生成される。ＳＲラッチ１７００へのセット入力は、ＡＮＤゲート１７０１の出力である。ＡＮＤゲート１７０１への入力は、「消去検査」信号と、「消去中断」信号とを含む。ＳＲラッチ１７００へのリセット入力は、「消去再開」信号である。ＳＲラッチ１７００の出力が、「消去中断開始」信号である。ＳＲラッチ１７０２は、「消去中断可」信号を生成するために使用される。ＳＲラッチ１７０２へのリセット入力は、「消去再開」信号である。ＳＲラッチ１７０２へのセット入力は、ＡＮＤゲート１７０３の出力である。ＡＮＤゲート１７０３への入力は、「消去検査完了」信号と「消去中断」信号とを含む。
図１８においては、図８のプロセスの場合、ブロック消去フラグをリセットする目的に使用される一致信号が生成される。一致信号は、ＮＯＲゲート１８００の出力に生成される。ＮＯＲゲート１８００の入力は、「消去中断開始」信号とインバータ１８０２の出力とである。インバータ１８０２の入力は、検査コンパレータによって生成された「データ比較一致」信号である。
通常は、消去検査ステップ中に状態マシンは消去されたセルを調べて、それが成功裏に消去されたか否かを「データ比較一致」動作によって決定する。この手順は、セルが検査に不合格になるか、または最後に消去されたセルが検査されるまで実行される。消去されたセルの比較結果が、現ブロックに対して消去パルス及び消去検査シーケンスを含む別の消去再試行消去が必要か否かを決定する。
消去検査ステップ中に、もしユーザが消去中断命令を発行すれば、図１８から理解できるように「消去中断開始」信号が高にセットされ、「データ比較一致」信号を低状態にする。この状態は、消去中断が発行された直後に、最後の消去セルが不一致状態にされることを表している。これにより状態マシンはセットフラグを有する次のブロックへスキップさせられ、そのような動作は最終ブロックに到達するまで続けられる。そこで「消去検査完了」信号が高にセットされ、「消去中断可」信号が活動にされる。
図９−１８の論理図は、消去中断及び再開動作の全体タイミングを示すのに役立つ簡易図である。実際の実施では、競合条件を防ぐために同期非並行クロックが使用される。明らかに、本発明を実施する特定のシステムに依存して多くの変形論理を使用することができる。
以上のように、本発明は消去中断動作のために、消去手順内に多重チェックポイントを提供する。消去手順をできる限り早く中断させるために、本発明のアルゴリズムは、最初のプリプログラムパルスの終わりに、そしてプリプログラミングを受けるバイトがプログラムに成功したか否かには関係なく、中断命令が発行された後に消去手順に割り込むことができる。これは、所与のバイトがプリプログラムされる時に、何回も再試行が行われて中断アルゴリズムの実行が長時間待たされることを防ぐ。更に、本発明によれば、消去パルスサイクル中に消去手順に割り込むことができる。これは、特に長い消去パルスを含むシステムにおいては、消去中断命令の効率及び実行を実質的に改善する。最後に、本発明の消去検査中の消去中断チェックポイントは、ブロックのセット内の１つより多いブロックのブロック消去を可能にするブロック消去手順と共に、効率的に動作するようになっている。
以上の本発明の好ましい実施例の説明は、単なる例示に過ぎない。この説明が本発明を余すところなく開示したものでも、または精密な形状に限定するものでもない。明らかに、当分野に精通していれば、多くの変更及び変形が明白であろう。本発明の範囲は、以下の請求の範囲によってのみ限定されることを意図している。
【図１】
0004015701.tif 000002
【図２】
0004015701.tif 000003
【図３】
0004015701.tif 000004
【図４】
0004015701.tif 000005
【図５】
0004015701.tif 000006
【図６】
0004015701.tif 000007
【図７】
0004015701.tif 000008
【図８】
0004015701.tif 000009
【図９】
0004015701.tif 000010
【図１０】
0004015701.tif 000011
【図１１Ａ】
0004015701.tif 000012
【図１１Ｂ】
0004015701.tif 000013
【図１２】
0004015701.tif 000014
【図１３】
0004015701.tif 000015
【図１４】
0004015701.tif 000016
【図１５】
0004015701.tif 000017
【図１６Ａ】
0004015701.tif 000018
【図１６Ｂ】
0004015701.tif 000019
【図１７】
0004015701.tif 000020
【図１８】
0004015701.tif 000021