(57)【特許請求の範囲】
【請求項１】
ノイズ耐性の検証機能を有する不揮発性メモリ集積回路であって、
フラッシュ・メモリ・セルを含む複数の不揮発性メモリ・セルから成るアレイ（16）と、
前記セルの内の選択された１つのセルを第１ノード（ノード１）に接続する選択手段（14）と、
第１ノードに接続され、前記選択された１つの不揮発性メモリ・セルの測定閾電圧と基準電圧との間の瞬時的な関係を示す生検証信号を発生するセンス増幅・検出回路（19,22）であり、前記閾電圧がある時点において前記基準電圧に対して所望の関係を有する場合、前記生検証信号が有効になり、該所望の関係が前記選択された１つの不揮発性メモリ・セルに対する前記閾電圧の正しい設定を検証することから成るセンス増幅・検出回路と、
前記生検証信号を処理して、前記閾電圧が、サンプリング期間中、少なくとも選択されたマージンだけ前記基準電圧と異なるか否かを示す検証信号を発生する論理回路（24）であり、前記検証信号が前記サンプリング期間中に前記生検証信号が連続して有効のままであるか否かをも示すことから成る論理回路（24）と、を備え、
前記論理回路が、前記サンプリング期間中に前記生検証信号における任意の変化を検出して前記閾電圧が少なくとも選択された前記マージンだけ前記基準電圧と異なっていないことを前記検証信号に示させるようにしたラッチ回路を更に含み、前記サンプリング期間が、前記生検証信号におけるノイズによる変動の予想される継続期間よりも長くなっていることから成る不揮発性メモリ集積回路。
【請求項２】
前記センス増幅器からの前記生検証信号を受信し、且つ、前記サンプリング期間を含む検証動作中、該生検証信号を前記論理回路へアサートする論理ゲート（22）を更に備える、請求項１に記載の不揮発性メモリ集積回路。
【請求項３】
前記論理回路が、
前記サンプリング期間中、前記生検証信号が無効となるに応じて第１状態から第２状態へ遷移するフリップフロップ回路であり、前記検証信号が、当該フリップフロップ回路が前記サンプリング期間の最後に前記第１状態であるのか或いは前記第２状態であるのかを示すことから成るフリップフロップ回路と、
前記生検証信号が受信し、且つ、前記サンプリング期間中だけ、該生検証信号を前記フリップフロップ回路へアサートする論理手段と、
前記フリップフロップ回路を前記サンプリング期間前に前記第１状態へセットする手段と、
を含む、請求項１に記載の不揮発性メモリ集積回路。
【請求項４】
前記検証動作の実行を制御する制御手段（29）を更に備え、当該制御手段が前記セットアップ期間中、前記センス増幅回路をイネーブルに為す手段と、前記保持期間中、前記検証信号を受信して処理する手段とを含む、請求項１に記載の不揮発性メモリ集積回路。
【請求項５】
不揮発性メモリ集積回路における選択されたフラッシュ・メモリ・セルの状態を検証する検証方法であって、
（ａ）前記フラッシュ・メモリ・セルの測定閾電圧と基準電圧との間の瞬時的な関係を示す生検証信号を受信するステップであり、前記閾電圧がサンプリング期間の任意の時点において前記基準電圧に対して所望の関係を有する場合、前記生検証信号が有効であることから成るステップと、
（ｂ）前記生検証信号を処理して、前記閾電圧が、サンプリング期間中の任意時に少なくとも選択されたマージンだけ前記基準電圧と異なるか否かを示す検証信号を発生し、前記検証信号が前記サンプリング期間中に前記生検証信号が連続して有効のままであるか否かを示し、前記サンプリング期間が前記生検証信号におけるノイズによる変動の予想される継続期間よりも長くなっていることから成るステップと、
（ｃ）前記サンプリング期間中、前記生検証信号が変動しているか否かを示すステップと、
の諸ステップを含む検証方法。
【請求項６】
前記検証方法が、その状態が検証中である前記メモリ・セルに対しての前記センス増幅器の設定時間を許容する部分を含む程に充分な継続期間を有する、請求項５に記載の検証方法。
【請求項７】
前記ステップ（ｂ）が、
前記サンプリング期間前に、フリップフロップを第１状態にセットするステップと、
前記サンプリング期間中に、前記フリップフロップに対して前記生検証信号をアサートして、前記サンプリング期間中に前記生検証信号が無効となるに応じて前記フリップフロップを第２状態に為し、前記第２状態のまま維持するステップであり、前記検証信号が、前記フリップフロップが前記サンプリング期間の最後に前記第１状態であるのか或いは前記第２状態であるのかを示すことから成るステップと、
の諸ステップを含む、請求項５に記載の検証方法。
【発明の詳細な説明】
発明の背景
1.発明の分野
本発明は、メモリ消去動作或いはプログラム動作の１つ或いは複数の各段階中に選択されたメモリ・セルの状態を検証する検証動作を実施する不揮発性メモリ集積回路（好ましくは、フラッシュ・メモリ集積回路）と、そのような検証動作を実施する方法とに関する。本発明の不揮発性メモリ回路は、十分な持続時間のサンプリング期間中に検証信号の連続的な有効性にのみ応答して成功検証データをアサートする論理手段を含んでおり、それにより成功検証データの誤ったアサートを回避する。
2.関連技術の説明
請求の範囲を含めて、本明細書では、「持続」なる語は、（電子構成要素が他の電子構成要素に「持続」されるという文脈内で）構成要素がそのような状況のもとで電気的或いは電磁気的に十分な強度で結合されることを示す広い意味で使用され、電気伝導性要素が２つの構成要素間で物理的に持続されることを必要とする狭い意味では使用されない。
不揮発性メモリ・チップ（集積回路）は、商業的にますます重要になっている。代表的な不揮発性メモリ・チップは、それぞれ半永久的な電荷記憶が可能なフローティング・ゲートを有するトランジスタをそれぞれが含む複数の不揮発性メモリ・セルのアレイを含む。各セルによって引き出される電流は、対応するフローティング・ゲート上に記憶された電荷の量に依存する。したがって、各フローティング・ゲート上に記憶された電荷は、対応するセル内に「半永久的に」記憶されるデータ値を決定する。
１つの特に有用なタイプの不揮発性メモリ・チップは、それぞれがフラッシュ・メモリ・デバイス（トランジスタ）を含むフラッシュ・メモリ・セルのアレイを備える。各フラッシュ・メモリ・デバイスのフローティング・ゲート上に記憶された電荷（したがって各セルによって記憶されたデータ値）は、ゲート及びソースに印加された電圧を（周知の形で）適切に変化させることによって消去できる。
第１図は、従来の不揮発性メモリ・チップの簡略化されたブロック図である。第１図の集積回路３は、（外部デバイスに出力データをアサートするか、或いは、外部デバイスから入力データを受け取る）少なくとも１つの入出力パッド30、入出力パッド30用の入出力バッファ回路10、外部デバイスからメモリ・アドレス・ビットを受け取るアドレス・バッファA0〜Ap、行デコーダ回路（Ｘアドレス・デコーダ）12、列マルチプレクサ回路（Ｙマルチプレクサ）14、並びに（列16Aなど、不揮発性メモリ・セルの列を含む）メモリ・アレイ16を含む。各アドレス・バッファA0〜Apは、アドレス・ビット信号X0〜Xn及びY0〜Ymの異なる１つを（外部デバイスから）受け取るアドレス・ビット・パッドを含む。
入出力バッファ回路10は、「書込み」ブランチ及び「読取り」ブランチを含む。書込みブランチは、入力バッファ18を含む。読取りブランチは、センス増幅器19及び出力バッファ20を含む。チップ３は、入出力パッド30において外部デバイスから（メモリ・アレイ16内に書き込むべき）データを受け取り、データを書込みブランチ内にバッファし、次いでデータを適切なメモリ・セルに書き込むことによって書込み動作を実行する。チップ３はまた、（アレイ16から読み取られた）データを増幅し、読取りブランチ内にバッファし、次いでこのデータを入出力パッド30にアサートする読取り動作を実行するように制御することができる。
ただ１つの入出力パッド（パッド30）が第１図に示されているが、第１図の回路の代表的な実施例は、複数の入出力パッドを含んでおり、各入出力パッドは、回路10と類似の或いは同じ入出力バッファ回路によってバッファされる。例えば、第１図の回路の一実施例は、８つの入出力パッド、回路10と同じ８つのバッファ回路、（８つのデータ・ビットがバッファ20からパッドまで並列に読み取られるように）各バッファ回路の出力バッファ20の出力と入出力パッドの１つとの間に接続された１つの線、（８つのデータ・ビットがパッドからバッファ18まで並列に書き込まれるように）各バッファ回路の入力バッファ18の入力と入出力パッドの１つとの間に接続された１つの線を含む。各入出力パッド（入出力パッド30を含む）は、一般に出力バッファがイネーブルでないときに高いインピーダンスを有する。
メモリ・アレイ回路16の各セル（記憶位置）は、行索引（デコーダ回路12によって決定される「Ｘ」索引）及び列索引（デコーダ回路14によって決定される「Ｙ」索引）によって索引付けされる。第２図は、メモリ・アレイ16のセルの２つの列の簡略化された概略図である（１つの列、例えば右側の列は、第１図の列16Aに対応する）。第２図の左側の列は、それぞれフローティング・ゲートＮチャネル・トランジスタN1、N3、...、Nnの１つによって実施される「ｎ」個のメモリ・セルを含む。各トランジスタN1〜Nnのドレインは、ビット線13に接続され、各トランジスタN1〜Nnのゲートは、異なるワード線（ワード線０〜ワード線ｎの異なる１つ）に接続される。第２図の右側の列も、それぞれフローティング・ゲートＮチャネル・トランジスタN2、N4、...、Nmの１つによって実施される「ｎ」個のメモリ・セルを含む。各トランジスタN2〜Nmのドレインは、ビット線15に接続され、各トランジスタN2〜Nmのゲートは、異なるワード線（ワード線０〜ワード線ｎの異なる１つ）に接続される。各トランジスタN1、N3、...、Nn及びN2、N4、...、Nmのソースは、ソース電位（通常、読取り動作或いはプログラム動作中チップに対してグランド電位である）に保持される。
各メモリ・セルが不揮発性メモリ・セルである場合、各トランジスタN1、N3、...、Nn及びN2、N4、...、Nmは、半永久的な電荷記憶が可能なフローティング・ゲートを有する。各セル（即ち、各トランジスタN1、N3、...、Nn及びN2、N4、...、Nm）によって引き出された電流は、対応するフローティング・ゲート上に記憶された電荷の量に依存する。したがって、各フローティング・ゲート上に記憶された電荷は、対応するセル内に「半永久的に」記憶されるデータ値を決定する。各トランジスタN1、N3、...、Nn、N2、N4、...、Nmが（第２図に各トランジスタN1、N3、...、Nn、N2、N4、...、Nmを示すために使用された記号によって示される）フラッシュ・メモリ・デバイスである場合、各トランジスタのフローティング・ゲート上に記憶された電荷（したがって各セルによって記憶されたデータ値）は、ゲート及びソースに印加された電圧を（周知の形で）適切に変化させることによって消去できる。
アドレス・ビットY0〜Ymに応答して、（第１図の）回路14は、アレイ16のメモリ・セルの列の１つを選択する列アドレスを決定し（選択された列のビット線を第１図のノード１に接続する）、アドレス・ビットX0〜Xnに応答して、（第１図の）回路12は、選択された列内の１つのセルを選択する行アドレスを決定する。列アドレスが第２図の右側の列（ビット線15を含む列）を選択し、かつ行アドレスがワード線０に沿って接続されたセル（トランジスタN2を含むセル）を選択する一例について考えてみる。選択されたセル内に記憶されたデータ値を読み取るためには、そのような値を示す信号（電流信号）がセルのドレイン（この例では、トランジスタN2のドレイン）から、ビット線15及び回路14を介して、第１図のノード１に与えられる。選択されたセルにデータ値を書き込むためには、そのような値を示す信号がセルのゲート及びドレイン（この例では、トランジスタN2のゲート及びドレイン）に与えられる。
より具体的には、第１図の回路は、次のように書込み動作を実行する。各アドレス・バッファA0〜Anは、ビットX0〜Xnの１つをデコーダ回路12にアサートし、各アドレス・バッファAn＋１〜Apは、ビットY0〜Ymの１つをマルチプレクサ回路14にアサートする。これらのアドレス・ビットに応答して、回路14は、列アドレスを決定し（列16Aなど、アレイ16のメモリ・セルの列の１つを選択する）、回路12は、（行アドレスを決定する選択された列内の１つのセルを選択する）。（制御ユニット29、或いは以下で説明する他の回路から供給される）書込みコマンドに応答して、入力バッファ18の出力に現れる（データを示す）信号が回路14を介して行アドレス及び列アドレスによって決定されるアレイ16のセル（例えば、そのようなセルのドレイン）にアサートされる。そのような書込み動作中、出力バッファ20はディスエーブルになる。データ・ラッチ（図示せず）は、一般に入出力パッド30から受け取った（メモリ・セルに書き込むべき）データを記憶するために入力バッファ18と入出力パッド30との間に与えられる。ラッチされたデータが入力バッファ18に送られたとき、入力バッファ18は、選択されたメモリ・セルに印加される電圧をノード１において発生する。入力バッファ18は、一般に読取り動作中に高インピーダンス・モードになる（したがってディスエーブルになる）出力を有する３状態トライバとして実施される。いくつかの実施例では、ラッチ及び入力バッファ18の機能は、単一のデバイス内に結合される。
第１図の回路は、次のように読取り動作を実行する。各アドレス・バッファA0〜Anは、ビットX0〜Xnの１つをアドレス・デコーダ回路12にアサートし、各アドレス・バッファAn＋１〜Apは、ビットY0〜Ymの１つをアドレス・デコーダ回路14にアサートする。これらのアドレス・ビットに応答して、回路14は、列アドレスをメモリ・アレイ16にアサートし（列16Aなど、メモリ・セルの列の１つを選択する）、回路12は、メモリ・アレイ16に行アドレスをアサートする（選択された列内の１つのセルを選択する）。（制御ユニット29、或いは以下で説明する他の回路から供給される）読取りコマンドに応答して、行及び列アドレスによって決定されるアレイ16のセル内に記憶されたデータ値を示す電流信号（「データ信号」）が選択されたセルのドレインから選択されたセルのビット線を介し、次いで回路14を介してセンス増幅器19に供給される。このデータ信号は、増幅器19内で（以下で説明する形で）処理され、増幅器19の出力は、出力バッファ20内にバッファされ、最後に入出力パッド30においてアサートされる。
アレイ16の選択されたセルを読み取るとき、セルが消去状態にある場合、セルは、センス増幅器19内で第１の電圧に変換される第１の電流を伝導する。セルがプログラム状態にある場合、セルは、センス増幅器19内で第２の電圧に変換される第２の電流を伝導する。センス増幅器19は、セルの状態（即ち、セルがそれぞれ１或いは０の２進値に対応するプログラム状態にあるのか、或いは消去状態にあるのか）を、セル状態を示す電圧を基準電圧と比較することによって決定する。この比較の結果は、センス増幅器19が出力バッファ20に送る（１或いは０のデジタル値に対応する）高或いは低である出力であり、出力バッファ20は、対応するデータ信号を（外部デバイスがそこからデータ信号にアクセスすることができる）入出力パッド30にアサートする。
第１図の不揮発性メモリ・チップ３はまた、１つ或いは複数のコマンドのシーケンス（例えば、「消去設定」コマンド、次いで「消去確認」コマンド）に応答して、各セルのフローティング・ゲート上に記憶された一定量の電荷を放電することによってメモリ・アレイ16のセルの全てのセル或いは選択されたセルが消去される消去動作を実行することができる。一般に、アレイ16の全てのセル或いはそのようなセルの大きいなブロックが消去動作中に同時に或いは実質上同時に消去される。各消去動作は、セルが消去動作の１つ或いは複数の各段階において所望の閾電圧を有することを検証（又は検査）する「検証（又は検査」」ステップを含むステップのシーケンスを含む。検証ステップはまた、一般にセル所望の閾電圧を有するようにプログラムされているかどうかを決定するために、（セルが消去処理されたセルの閾電圧と異なる閾電圧を有するようにプログラムされる）セル・プログラム動作中に実施される。
より具体的には、第１図のメモリ・アレイ16のセルを消去する場合、「消去設定」コマンド、次いで「消去確認」コマンドが外部デバイスから入出力パッド30に送られる。そのような各コマンドが並列ビットを含む場合、様々なビットが入出力パッド30及び入出力パッド30と同じ追加の入出力パッドに並列に送られる。コマンドは、入出力パッド30（或いは入出力パッド30及び追加の入出力パッド）から入力バッファ18（或いは入力バッファ18及び他の入出力パッドに接続された入力バッファ）に転送され、次いで制御ユニット29に転送される。制御ユニット29は、一般にコマンド実行論理回路及び状態機械を含んでおり、各コマンドを処理して、命令データを発生し、命令データを回路14及びセンス増幅器19（及び第１図のメモリ・チップ３の他の構成要素）に供給して、アレイ16の指定されたセルを消去するために必要なステップのシーケンスをチップ３に実行させる。これらのステップは、セルが消去動作の１つ或いは複数の各段階において所望の閾電圧を有することを検証する検証ステップ（例えば、以下で第７図に関連して論じる検証ステップ）を含む。
各検証ステップ中、（第１図に「生検証OK」と示される）検証データが（センス増幅器19の出力に応答して）ANDゲート22から出力される。この検証データは、制御ユニット29に戻される。一般に、外部デバイスは、消去動作が完了したかどうか、また消去動作が成功したかどうかを決定するために、チップ３の出力パッドをポーリングする。
次に、従来のメモリ消去動作について、第３図に関連して詳細に説明する。第３図は、チップ３が行うのと本質的には全て同一の機能を果たす第１図のメモリ・チップ３の変形である従来のフラッシュ・メモリ・システム103のブロック図である。第１図のメモリ・チップ３の構成要素に対応するフラッシュ・メモリ・システム103の構成要素は、第１図の場合と同じ参照番号によって識別される。システム103のメモリ・アレイ16は、アレイ内に合計256Kの８つのビット・ワードがある行及び列内に配置された複数のフラッシュ・メモリ・セルから構成される。個々のセル（図示せず）は、18個のアドレス・ビット（A0〜A17）によってアドレス指定され、９個のビットは、ターゲット・セルがその中にあるアレイ16の行を選択するためにＸデコーダ回路12によって使用され、残りの９個のビットは、アレイ16の適切な列を選択するために（Ｙマルチプレクサ14の）Ｙデコーダ回路14Aによって使用される。
メモリ・システム103の内部状態機械120は、プログラム動作、読取り動作並びに消去動作を実施するために必要な様々な個々のステップなど、システム103の詳細な動作を制御する。したがって、状態機械120は、一般にシステム103に関連して使用される外部プロセッサ（図示せず）の必要なオーバヘッドを少なくする役目を果たす。
メモリ・アレイ16を消去する場合（一般に、全てのセルまたはセルの大きいブロックが同時消去される）、プロセッサは、出力イネーブル
0003648534.tif 000002
ピンを非活動（高）にし、チップ・イネーブル
0003648534.tif 000003
ピン及び書込みイネーブル
0003648534.tif 000004
ピンを活動（低）にしなければならない。次いで、プロセッサは、データ入出力ピンDQ0〜DQ7上で、一般に消去設定コマンドと呼ばれる８ビット・コマンド20H（00100000）を発行する（入出力ピンDQ0〜DQ7の１つは、第１図の入出力パッド30に対応する）。この後、一般に消去確認コマンドと呼ばれる第２の８ビット・コマンドD0H（1101  0000）が発行される。意図しない消去動作の可能性を最小限に抑えるために別々の２つのコマンドが使用される。
コマンドは、データ入力バッファ122（第１図の入力バッファ18は、各コマンドの１ビットを受け取るバッファ122の構成要素に対応する）に転送され、次いでコマンドは、コマンド実行論理ユニット124に転送される。次いで、論理ユニット124は、アレイ16を消去する多数の周知のステップの全てを実行するよう状態機械120に命令する。消去シーケンスが完了した後、状態機械120は、８ビット状態レジスタ126を更新し、状態レジスタ126の内容は、メモリ・システムのデータ入出力ピンDQ0〜DQ7に接続されたデータ出力バッファ128に転送される（第１図の出力バッファ18は、レジスタ126から１ビットを受け取るバッファ128の構成要素に対応する）。プロセッサは、消去シーケンスが完了したかどうか、また消去シーケンスがうまく完了したかどうかを決定するために、データ入出力ピンを周期的にポーリングして、状態レジスタ126の内容を読み取る。
第4A図及び第4B図は、状態機械120によって実施されるときの代表的な消去シーケンスを示す流れ図である。消去動作中、アレイ16の１つまたは複数のセルがいわゆる「過消去」状態になる可能性があることに留意されたい。消去シーケンスの目的は、閾電圧が全て指定された電圧範囲内に入るようにアレイ16の全てのセルを消去することである。その範囲は、一般に＋1.5〜＋3.0ボルトなど小さい正の電圧範囲である。消去されたセルがこの範囲内に入る場合、読み取るべきセル（「選択された」セルまたは「ターゲット」セル）は、読取り動作中にセル電流を発生する。セル電流の存在は、セルがプログラム状態（論理「０」）ではなく消去状態（論理「１」）にあることを示す。セル電流は、セルの制御ゲートに印加された電圧が、Ｘデコーダ12に接続されたアレイからのワード線によって、消去されたセルの閾電圧よりも実質量だけ高くなるために消去されたセル内に発生する。さらに、読み取られないセル（「選択解除された」セル）は、そのようなセルが低い閾電圧状態まで消去されている場合でさえセル電流の発生が妨げられている。例えば、選択されたセルと同じ行内にあるセルは、当然、選択されたセルと同じワード線を共用する。しかしながら、選択解除されたセルのドレインは浮動し、それによりセル電流の発生を妨げられる。同じ列内の選択解除されたセルは、そのような選択解除されたセルのワード線が一般に接地されるのでセル電流を伝導しない。したがって、これらのセルのゲート−ソース間電圧は、これらの選択解除されたセルが消去状態にある場合でもそれらをオンにするのに不十分である。
アレイ16が消去された後、そのセルの大部分は、適切な消去閾電圧を有する。しかしながら、数個のセル（１個でも）が消去シーケンスに対して様々に応答し、そのようなセルが過消去状態になる可能性がある。セルが過消去された場合、フローティング・ゲート上の正味の電荷は正になる。その結果、閾電圧はある程度負になる。したがって、そのような過消去された選択解除されたセルに接続されたワード線が接地されたとき、選択解除されたセルは、それでも電流を伝導する。この電流は、選択されたセルの読取りを妨害し、それにより適切なメモリ動作を妨げる。第4A図及び第4B図の消去シーケンスの主要な目的は、過消去状態が生じるのを防ぐことである。
再び第4A図及び第4B図の流れ図に関して、上述の２つの消去コマンドを発行することによって消去シーケンスを開始する（ステップ28）。コマンドが（第３図に示される）コマンド実行論理124によって受け取られた後、状態機械120は、まずアレイ16の全てのセルをプログラムする。これは、全てのセルが後で消去されるときに実質上同じ状態になるように行われる。こうすれば、全てのセルが後の消去シーケンスに対して同じ形で応答する高い傾向を有するようになるので、１つまたは複数のセルが過消去状態になる可能性が低くなる。次いで、ブロック30に示すように、アドレス・カウンタ（第３図の構成要素118）をメモリの第１のアドレスに初期設定する。次に、ブロック32に示すように、プログラムに使用される電圧を適切なレベルに設定する（第３図のVppスイッチ121から状態レジスタ126、Ｘデコーダ12及びＹデコーダ14A、及び第３図の他の構成要素に、高い電圧Vpp、例えば＋12ボルトに等しい電圧を与えるステップを含む）。
電圧を設定した後、第4A図のブロック34に示すように、内部プログラム・パルス・カウンタ（図示せず）を初期設定する。このカウンタは、プログラムされているワード（バイト）のセルに印加されたプログラム・パルスの数を追跡する。次に、ブロック36に示すように、メモリの第１のアドレスにあるワードのセルに１つのプログラム・パルスを印加する。次いで、パルス・カウンタを増分し（ブロック38）、所定の最大数のパルスがセルに印加されたかどうかを決定する（ブロック40）。そうであれば、セルが実際プログラムされているかどうかを決定するためにセルを読み取る（検証動作42）。これは、第３図のブロック100によって示されるセンス増幅器及び関連する構成要素を使用して行われる。
この時点でセルがまだプログラムされていない場合、プログラム・パルスの最大数を超えているので障害が発生している。特定のメモリに応じて、シーケンスを終了するか、または故障したワードを記録し、シーケンスを継続する。その場合、この情報は、プロセッサが読み取ることができるように状態レジスタ126（第３図）に転送される。そのような障害の可能性のある１つの原因は、メモリ耐久力を超えていることである。言い換えれば、メモリの使用回数が非常に多くなっている。
最大カウントを超えていないと仮定して、動作44に示すようにバイトを検証する。バイトがプログラムされていない場合、さらにプログラム・パルスを印加し（ブロック36）、カウンタを増分する（ブロック38）。最大カウントをまだ超えていないと仮定して、再びバイトを検証する（動作44）。このシーケンスは、バイトが最後に検証テストを通過するまで、またはパルス・カウンタが最大になるまで継続する。
第１のバイトが結局うまくプログラムされたと仮定して、アレイ16の最後のアドレスがプログラムされたかどうかを決定する（ステップ46）。そうでなければ、（第３図の）アドレス・カウンタ118を第２のアドレスに増分し（ブロック48）、内部パルス・カウンタをリセットする（ブロック34）。第１のプログラム・パルスを第２のアドレスのバイトに印加し（ブロック36）、シーケンスを繰り返す。このプロセスは、アレイ16の全てのセルがプログラムされるまで、またはプログラム障害が生じていることが決定されるまで継続する。
全てのセルがうまくプログラムされ、検証されたと仮定して、状態機械120は、アドレス・カウンタ118の初期設定（第4B図のブロック49）及び電圧Vppを含む消去用の適切な電圧の設定（ブロック50）を含めて、消去に使用される適切な電圧を設定することによって消去シーケンスを継続する。
次に、内部消去パルス・カウンタをリセットし（ブロック52）、アレイ16の全てのセル（または能力が与えられている場合に消去されるアレイのブロック）に単一の消去パルスを印加する。次いで、全てのセルがうまく消去されているかどうかを決定するために、アレイ16のセルを連続的に読み取る（消去検証ステップ58）。ステップ58の前に、消去検証に必要な条件、即ちセル読取りの条件を設定し（ブロック56）、アレイ16の第１のセルを読み取る。
単一の消去パルスは、消去を達成するのにほとんど不十分であり、したがってテスト（ステップ58）はほとんど常に失敗する。次いで、消去パルス・カウンタの状態を検証し（ステップ60）、最大カウントを超えていないことを決定する。それに応じて、第２の消去パルスをアレイ16全体に印加し（ステップ54）、第１のバイトを再びテストする（ステップ58）。
バイトが十分な数の消去パルスを受け取り、かつ検証テストを通過した後（ステップ58）、アドレスを増分し（ステップ64）、第２のバイトがうまく消去されたかどうかを決定するために第２のバイトをテストする（ステップ56及び58）。セルは常に均一であるとは限らないので、第２のバイトは、第１のバイトによって受け取られた同数の消去パルスを受け取った場合でも消去されていない可能性がある。その場合、さらに消去パルスをアレイ16全体に印加し、再び第２のバイトを適切に消去されているかどうかについてテストする。すでに消去されているバイトを再テストする必要はないので、アドレスはこの時点でリセットされないことに留意されたい。しかしながら、以下で説明するように、前に消去されたバイトは過消去状態になる可能性がある。
第２のバイトが適切に消去されたことが確定された後、アレイ16の最後のアドレスが検証されたかどうかを決定する（ステップ62）。そうでなければ、アドレス・カウンタ118を増分し（ステップ64）、第３のバイトをテストする。必要な場合、追加の消去パルスを印加する。内部消去パルス・カウンタ（ステップ60）は、消去シーケンス内に印加された消去パルスの合計数を監視する。最大数を超えた場合、シーケンスを終了し、消去エラーが発生したことを反映するために状態レジスタ126のビットの１つが設定される。
セルの第２のバイトが適切に消去されていると仮定して、残りのバイトを検証し、必要な追加の消去パルスを印加する。最後のアドレスを検証した後、消去シーケンスを終了し、消去シーケンスがうまく完了したことを示すために状態レジスタ126を更新する。
より高い密度を達成するために、不揮発性メモリ・チップ・メーカは、そのようなチップの素子のサイズ（例えば、各チップ内で実施されるメモリ・アレイの各セルのサイズ）を縮小してきた。サブミクロン・フィーチャ・サイズを有するメモリ・アレイ・セルの場合、製造中の各メモリ・セルごとの処理のわずかな変化は、各セルごとの挙動に大きな差をもたらす。
EPROMメモリ・セルのアレイを含む不揮発性メモリ・チップに勝る、フラッシュ・メモリ・セルのアレイを含む不揮発性メモリ・チップの重要な利点には、システム・プログラム能力がある。EEPROMメモリ・セル・アレイを含む不揮発性メモリ・チップに勝る、フラッシュ・メモリ・セルのアレイを含む不揮発性メモリ・チップの重要な利点には、コストが低いことがある。しかしながら、フラッシュ・メモリ・セル・アレイを含む不揮発性メモリ・チップ（特に非常に小さな素子サイズで製造されたもの）は、各フラッシュ・メモリ・セルの挙動の（回路製造中に生じる）各セルごとの変化のために（「過消去」や「ワイルド・ビット」など）問題があった。これらの問題は、同じゲート電圧（またはドレイン電圧）に対する隣接するセルの応答において広範な変動をもたらし、以下の説明から理解できるように消去動作及びプログラム動作中に特に深刻になる。
不揮発性メモリ・アレイを消去する前に、セルが大きい負の閾値まで消去されてその後にセルからのデータ読取りが妨害されるのを回避するために、アレイのセルをプログラムしなければならない（即ち、データを適切な形でそれらに書き込まなければならない）。そのようなプログラム・サイクルの後、各ビット（１つのセルによって示される記憶された各データ値）が正確な値を有するかどうか（即ち、各セルが十分にプログラムされているかどうか）を検証する必要がある。次いで、消去サイクル（それ自体は準備プログラム・サイクルの後にくる）の後、各セルが十分に消去されているかどうかを決定するために他の検証動作（「再検証」）を実施する。最後に、そのような消去サイクルの後、メモリ要素閾電圧の分布を引き締める又は固定する（例えば、任意のセルの過消去を補正する）ために、しばしば追加の調整手順を実行する。後者の調整手順（非常に複雑になる）の後、通常、各ビットがまだ正確な（消去された）値を有するかどうかを確認するために他の検証動作を実施する必要がある。先に説明したように、（消去動作と共に）メモリ・セル・プログラム動作は、一般に検証ステップを含む。
そのような各検証及び再検証動作では、様々なセルの特性の変化があると仮定している。したがって、各検証及び再検証動作は、各セルに問い合わせステップ、前のプロセス（例えば、プログラム、消去、或いは調整）の後のセルのマージンを評価するステップ、並びに、セルを再プログラムするかまたはさらに消去するかどうかを決定するステップの諸ステップを含む。不揮発性メモリ・チップ内のメモリ要素を読み取るステップは、通常の「読取り」メモリ・アクセス動作中でも非常に雑音が多くかつ困難であることが知られている。しかしながら、（検証再び再検証中）センス増幅器は（以下で説明するように、電圧レベルが通常の「読取り」動作中よりもはるかに小さいマージンを有するので）雑音及びマージンに関する限りはるかに厳しい環境内で動作しなければならないので、検証及び再検証中にそのようなメモリ要素を読み取ることはさらに困難である。
具体的には、検証と共に通常の読取りに使用されるセンス増幅器（例えば、第１図のセンス増幅器19）は、一般に（セルの閾電圧Vthを示す）選択されたセルからの信号と基準閾電圧Vrefに等しい基準信号との２つの信号を受信する差動増幅器である。通常の「読取り」動作では、基準電圧Vrefは一般に４ボルトであり、測定閾電圧Vthは（セルが「１」ビットを記憶するかまたは「０」ビットを記憶するかに応じて）一般に３ボルトまたは5.5ボルトである。したがって、センス増幅器は、通常の「読取り」動作中かなりの雑音マージンを伴って動作する。
しかしながら、検証中、基準電圧Vrefは一般に5.5ボルトであり、適切にプログラムされたセルは5.5ボルトよりも大きい測定閾電圧Vthを有する。この場合、センス増幅器（差動増幅器）の２つの入力は、「通常の」読取り動作中よりもはるかに近接しているので、センス増幅器の出力は、雑音のためエラーにはるかに影響され易く、センス増幅器の応答ははるかに遅くなる。同様に、（消去サイクル後の）再検証中、基準電圧Vrefは一般に３ボルトであり、適切に消去されたセルは、３ボルトよりも小さい測定閾電圧Vthを有する。この後者の場合、センス増幅器（差動増幅器）の２つの入力も「通常の」読取り動作中よりもはるかに近接しており、センス増幅器の出力ははるかに雑音に影響され易い。
より具体的には、しばしば従来の検証（または再検証）中のセンス増幅器動作に対する雑音の影響に起因する深刻な問題は、次の例について考えてみれば理解することができる。従来の検証（または再検証）中、センス増幅器出力は、検証イネーブル信号との「論理積」をとられる。例えば、第１図において、センス増幅器19の出力はANDゲート22の一方の入力に供給され、検証イネーブル信号「検証イネーブル」はANDゲート22の他方の入力に供給され、ANDゲート22は信号「生検証OK」を出力する。ANDゲート22の出力（例えば、信号生検証OK）は、次のチップ動作の実行をトリガするために状態機械（例えば、制御ユニット29内の状態機械）にアサートされる。検証イネーブル信号のレベルは、各検証及び再検証サイクル中のみ論理「１」である。したがって、センス増幅器出力が検証または再検証動作中の任意の時刻において有効（例えば、論理「１」）になった場合、信号生検証OKは、対応する時刻において論理「１」になる（生検証OKのこの瞬時値により状態機械が適切なチップ動作の実行をトリガする）。
しかしながら、説明した従来の回路では、検証中のセルが不十分にプログラムされているかまたは不十分に消去されている場合、深刻なエラーが生じる。例えば、セルが不十分にプログラムされており、5.3ボルトの測定閾電圧Vthしか有せず、かつセルの測定閾電圧が5.5ボルトの基準電圧Vrefよりも高いときにセンス増幅器19が（セルが十分にプログラムされていることを示す）論理「１」にセットされている場合、わずかな雑音（例えば、電源線上の変動に起因するセンス増幅器19のどちらかの入力線上の雑音）によりセンス増幅器出力が正確な論理論理レベル（「０」）と不正解な論理レベル「１」との間で振動する。選択されたセルの検証サイクルの終了時に小さい雑音バーストが偶然生じた場合、そのような瞬間におけるセンス増幅器出力は、誤って論理「１」になり、ANDゲート22の出力における信号生検証OKも誤って論理「１」になり、状態機械は、不適切なチップ動作（例えば、測定閾電圧Vthが基準電圧Vref＝5.5ボルトよりも高いときに、検証中のセルが適切にプログラムされた場合にのみ適切である動作）の実行を誤ってトリガする。（セルを消去する消去サイクルの後の）セルの再検証中、セルの再検証サイクルが終了した時刻においてセルの適切な（消去された）状態を間違って示す生検証OKの誤った値の結果として、同じ望ましくない結果（不適切なチップ動作がトリガされること）が生じる。
本発明まで、不揮発性メモリの検証動作及び再検証動作（以下集合的に「検証」動作と呼ぶ）では、センス増幅器動作に対する雑音の影響のために誤った結果（出力信号生検証OKの誤った値）の上述した問題が生じた。本発明は、（単にサンプリング期間の最後の時刻においてではなく）サンプリング期間中の任意の時刻において、閾値比較がセルの不十分なプログラムまたは消去を示す場合、センス増幅器出力を無効であるとして処理することによってこの問題を削除するものである。
発明の概要
本発明の検証方法は、（一般にメモリの消去動作中またはプログラム動作中）メモリ集積回路の選択された不揮発性メモリ・セルの状態を検証する方法である。本発明の他の実施例は、この検証方法を実施する手段を含む不揮発性メモリ集積回路である。好ましい実施例では、本発明の集積回路の各メモリ・セルは、フラッシュ・メモリ・セルである。
本発明の集積回路は、セルの測定閾電圧が、サンプリング期間中に、少なくとも選択されたマージンだけ基準電圧と異なる場合にのみ成功検証データをアサートする手段を含む。好ましい実施例では、本発明の集積回路は、そのようなサンプリング期間中に検証信号の連続的な有効性にのみ応答して成功検証データをアサートする論理手段を含み、それにより成功検証データの誤ったアサートを回避する。サンプリング期間は、検証信号の（雑音による）変動の予想される持続期間よりも長いことが好ましい。
論理手段は、フリップフロップを含む簡単な論理回路として実施されることが好ましい。検証動作中、論理回路は、メモリ・セルの測定閾電圧と基準電圧との間の瞬時的な関係を示す生検証信号を受信する。生検証信号（一般にANDゲートを介してゲートされるセンス増幅器の出力である）は、閾電圧がある時刻において基準電圧に対して所望の関係を有する場合（例えば、プログラムされたセルの閾電圧がこの時刻において基準電圧を超えた場合）に「有効」になる。フリップフロップは、生検証信号が有効である限り第１の状態のままであるが、検証信号が「無効」になったことに応答して第２の状態に入り、残りのサンプリング期間中第２の状態のままである。論理回路からの出力信号は、サンプリング期間の終了時のフリップフロップの状態を示す。好ましい実施例では、（フリップフロップがサンプリング期間の終了時に第１の状態にあることを示す）出力信号の第１のレベルは「成功検証データ」と解釈され、（フリップフロップがサンプリング期間の終了時に第２の状態にあることを示す）出力信号の第２のレベルは「不成功検証データ」と解釈される。
検証動作は、本発明によれば、メモリ消去動作の２つまたはそれ以上の各段階において（例えば、プログラム・サイクル後に１回、消去サイクル後にもう１回）、メモリ・プログラム動作中に（プログラム中の各セルごとに）少なくとも１回実施されることが好ましい。（選択されたメモリ・セルの）各検証動作は、次の３つの部分を有することが好ましい。セットアップ・サイクル（センス増幅器が電源投入されて、有効な生検証信号をアサートすることができるモードに入る）、サンプリング・サイクル（センス増幅器が、セルの測定閾電圧と基準電圧との間の瞬時的な関係を示す生検証信号をアサートする）、保持サイクル（本発明に従って生成された「成功」検証データまたは「不成功」検証データが、全体的なメモリ消去動作またはメモリ・プログラム動作を制御する状態機械の次のサイクル中有効なままである）。
【図面の簡単な説明】
第１図は、センス増幅器出力を検証する従来の手段を含む（集積回路として実施された）従来のメモリ回路のブロック図である。
第２図は、第１図のメモリ・セル・アレイ16のメモリ・セルの２つの列の簡略化された概略図である。
第３図は、従来のフラッシュ・メモリ・システムのブロック図である。
第4A図及び第4B図は、従来のフラッシュ・メモリの代表的なメモリ消去シーケンスを示す流れ図である。
第５図は、本発明を実現する（集積回路として実施された）メモリ回路のブロック図である。
第６図は、第５図の論理手段24の好適実施例の概略図である。
第７図は、本発明による第５図の回路の動作中に生成された信号のタイミング図である。
第８図は、第５図の回路によって実施される本発明よるデータ消去動作の流れ図である。
発明の詳細な説明
本発明の第１の実施例について、第５図乃至第７図を参照して説明する。この実施例は、不揮発性メモリ・アレイ16、及びメモリ消去動作中にアレイ16の選択されたメモリ・セルの状態を検証（又は検査）する本発明の方法を実施する（論理手段24を含む）手段を含む（参照番号3'によって識別される）メモリ・チップである。
第５図のメモリ・チップ3'は、次の２つの点を除いて第１図の従来のメモリ・チップ３と同じであり、即ち２点とは、チップ3'が、（本発明の検証方法を実施する際に使用される出力信号「検証OK」を発生する）論理手段24を含むことと、チップ3'の制御ユニット29は、チップ3'が（従来の検証動作ではなく）本発明の検証動作を実施するようにプログラムされていることとの２点である。論理手段24以外の（第１図の）チップ３の要素及び（本発明の検証動作以外の）チップ３の動作についての上記の説明は、チップ3'にも十分適用され、以下でそれを繰り返すことは無駄であるので、以下では論理手段24（及びチップ3'入力よって実施される検証動作）についてのみ説明する。本発明の好ましい実施例において、チップの各メモリ・アレイ内の各不揮発性メモリ・セル（例えば、不揮発性アレイ16の各セル）は、フラッシュ・メモリ・セルであることが意図されている。
チップ3'の論理手段24は、入力信号として「生検証OK」、「サンプル」、並びに「検証イネーブル」を受信し、それに応答して出力信号「検証OK」を発生する。
検証信号「生検証OK」を発生するために、ANDゲート22は、センス増幅器19の出力と信号「検証イネーブル」との双方を受信する。信号検証イネーブルは、制御ユニット29からANDゲート22の一方の入力及び論理手段24に供給される。信号検証イネーブルのレベルは、（一般にメモリ消去手順またはメモリ・プログラム手順の一段階として実施される）検証動作中のみ論理「１」である。センス増幅器出力が検証動作中の任意の時刻において有効になった（即ち、論理「１」を示す）場合、信号生検証OKは、対応する時刻において論理「１」になる。
センス増幅器19の出力は、アレイ16の選択されたメモリ・セルの測定閾電圧と基準電圧との関係を示す（センス増幅器19に供給された基準電圧の値は制御ユニット29によって決定される）。したがって、信号生検証OKは、検証動作中の測定閾電圧と基準電圧との瞬時的な関係を示す「検証」信号である。検証動作中の任意の時刻において、閾電圧が基準電圧に対して所望の関係を有する場合（例えば、選択されたセルが、メモリ消去手順のプログラム・サイクル中またはメモリ・プログラム手順中にプログラムされ、かつプログラムされたセルの閾電圧が基準電圧よりも高い場合）、検証信号生検証OKは「有効」になる。
手段24の出力信号「検証OK」は、信号サンプルによって決定される「サンプリング期間」中に検証信号生検証OKの連続的な有効性にのみ応答して成功検証データを示す。各サンプリング期間は、検証動作の（比較的短い）部分である。サンプルは、サンプリング期間中のみ第１の論理レベル（即ち、論理「１」）を有する。各サンプリング期間は、検証信号生検証OK中の（雑音による）変動の予想される持続期間よりもはるかに長いことが好ましい。サンプリング期間の概念、及び全体的な検証動作に対するサンプリング期間の関係について、第７図のタイミング図を参照して以下に詳細に説明する。
検証イネーブル信号は、各検証動作の前に回路24をリセットするために論理手段24に供給される。第６図を参照して説明する手段24の好ましい実施例において、検証イネーブル信号は、手段24内のフリップフロップをリセットする。
論理手段24は、（ソフトウェアまたはファームウェアの形を含めて）様々な形で実施することができるが、第６図に示されるものなど簡単な論理回路としてハードウェアの形で実施することが好ましい。論理手段24の第６図の実施例は、インバータN4（その入力が信号生検証OKを受信する）、NANDゲートN3（その入力がインバータN4の出力及び信号サンプルを受信する）、フリップフロップ回路60'（図示のように接続されたNANDゲートN1及びN2から構成される）、NANDゲートN5（その入力がフリップフロップの出力及び信号検証イネーブルを受信する）、並びにインバータN6（その入力がN5の入力を受信し、その出力が信号検証OKをアサートする）。
次に、第７図を参照して、（チップ3'内に含まれている）論理手段24の第６図の実施例が本発明による検証動作を実施する方法について説明する。（消去動作中の）そのような検証動作は、一般にアレイ16の全てのメモリ・セル（またはその選択されたサブセット）の状態を連続的に検証する。プログラム動作は一般に一度にアレイ16のただ１つのメモリ・セル（またはセルの小さいブロック）をプログラムするので、プログラム動作中の各検証動作は、そのような１つのセル（またはセルの小さいブロック）の状態を検証する。簡潔さを期して、以下の説明を、全体的な検証動作のうち、アレイ16における複数セルの内の単一のセルの状態を検証する部分に限定する。複数のセルを検証する場合、チップ3'は、単に検証すべき各セルごとに記述すべき検証手順を繰り返すことを理解されたい。また、チップ3'は、一般に（後で第８図を参照して説明する形で）単一のメモリ消去動作中に少なくとも２回（アレイ16の全てまたは多数のセルの状態を連続的に検証する）全体的な検証動作を実施することを理解されたい。
アレイ16の単一のセルに対して検証動作を実施するために、チップ3'の制御ユニット29は、この検証動作を次の３つの段階に分割する制御信号を発生する。検証セットアップ・サイクル（第７図に示すように、時刻t1から時刻t2まで実施される）、サンプリング・サイクル（第７図に示すように、信号サンプルが論理レベル「１」を有する間、時刻t2から時刻t4まで実施される）、検証保持サイクル（第７図に示すように、時刻t4から時刻t5まで実施される）。
セットアップ・サイクル中、チップ3'は、センス増幅器19を電源投入し、それが有効な検証信号をアサートすることができるモードに入れる。セットアップ・サイクルは、適切なマージンで消去またはプログラムされる代表的なセルに対してセンス増幅器19の設定時間を考慮する部分が含まれるように十分長くなければならない。
サンプリング・サイクル中、センス増幅器19は、セルの測定閾電圧と基準電圧との関係を示す出力信号を（ANDゲート22に対して）アサートし、（ANDゲート22から出力される行信号検証OKに応答して）論理手段24から出力される信号検証OKは、「成功」検証データまたは「不成功」検証データを示す。保持サイクル中、論理手段24の出力における信号検証OKは、制御ユニット29がそれを処理することができるほど十分長い時間有効なままである（したがって、例えば、チップ3'によって実施される消去動作を制御する制御ユニット29内の状態機械は、信号検証OKに応答するために十分な時間を有する）。
信号検証イネーブルのレベルは、全検証動作（そのセットアップ・サイクル、サンプリング・サイクル、保持サイクル全てを含む）中、論理「１」である。
第６図及び第７図で参照されるように、検証イネーブル信号は、時刻t0の前に低であり、次いで検証動作の開示時（時刻t1）において高になる。時刻t0の前のその低レベルに応答して、フリップフロップ60'の出力は、リセットされて「高」値を有するようになる。これは、検証イネーブルの低値がN2の出力を高にするために起こる（したがって、検証動作の開始の前の時刻において、サンプルが低になり、N3が高になり、N1の出力が低になる）。次いで、検証イネーブルが（検証期間の開示時に）高になったとき、N2の出力は高のままであり、N1の出力は低のままである。
ここではN2の出力が高のときのフリップフロップ60'の状態を「第１」の状態として示す。検証イネーブルが低になる時刻t1の前では、検証OKは低である。検証イネーブルが高になり、かつフリップフロップ60'がその第１の状態になるとき、N6の出力における信号検証OKは「高」である。したがって、全検証動作中（その間中検証イネーブルは高のままである）、フリップフロップ60'が第１の状態にある間（N5への２つの入力が高であり、N5の出力が低であり、N6から出力された信号検証OKは高であるので）、信号検証OKは「高」である。
フリップフロップ60'がリセットされた後、検証動作が始まる（時刻t1）。その後、検証動作のサンプリング・サイクルが始まる（時刻t2。このとき、制御ユニット29は、サンプルを低レベルから高レベルに遷移させる）。サンプリング・サイクル中（その間サンプルは高のまま）、フリップフロップ60'は、信号生検証OKが「高」のままである限り（即ち、生検証OKが、検証中のセルの測定閾電圧がセンス増幅器19にアサートされている基準電圧に対して所望の関係を有することを示す「有効」である限り）その第１の状態のままである。これらの条件下で、検証OKは高のままである。これは、生検証OKが高（サンプルが高）であるとき、N4の出力は低であり、N3の出力は高であり、したがってN2の出力は、それがリセットされた「高」値から変化しない（したがって、N5の出力は低のままであり、検証OKは高のままである）ためである。例えば、第６図の回路は、検証中のセルがプログラム・サイクル中に十分にプログラムされている場合、全サンプリング・サイクル中この状態のままであり、したがってプログラムされたセルの閾電圧は、センス増幅器19の基準電圧よりも十分なマージンだけ高くなり、したがって（雑音などのために関連する回路内で処理された信号レベルの変動が一般に小さいにも関わらず）生検証OKは連続的に高のままである。
検証中のセルが不十分にプログラムされている（または不十分に消去されている）場合、そのような変動は、第７図に示すように、生検証OKのレベルの低下または振動をもたらす。
サンプリング・サイクル中の任意の時刻において、（セルが不十分にプログラムされているまたは不十分に消去されている場合）生検証OKは正確な論理レベル（「低」）まで低下するために「無効」になり、フリップフロップ60'は、その「第２」の状態（N2の出力が低）に変化し、残りのサンプリング・サイクル中（及びその後リセットされるまで）第２の状態のままである。具体的には、N4の出力が高となって、N3の出力が低になり、N1の出力が高になり、したがってN2の出力が低になる（N2は、生検証OKが後でレベル遷移するにも関わらずフリップフロップ60'が検証イネーブル線上の低値によってリセットされるまで低のままである）ので、フリップフロップ60'はこれらの条件下で第２の状態に入る。これらの条件下で（フリップフロップ60'がその「第２」の状態に入ったとき）、出力信号検証OKは（第７図の時刻t3に示すように）低になり、残りのサンプリング・サイクル中（及び次のt4からt5までの保持サイクル中）低のままである。チップ3'（例えば、制御ユニット29）は、（サンプリング・サイクルの終了時及び次の保持サイクル中に現れる）検証OKのこの低レベルを、（例えば、検証動作が消去動作の準備プログラム・サイクルの後に行われる場合）セルが十分にプログラムされていないか、または（検証動作が消去動作の消去サイクルの後に行われる場合）セルが十分に消去されていないことを示す「不成功検証データ」と解釈する。
次に、第８図を参照して、本発明を実施するメモリ消去動作について説明する。この方法は、制御ユニット29の制御下で第５図のチップ3'によって実施される（この実施例では、アレイ16の各セルは、フラッシュ・メモリ・デバイスである）。第８図の消去動作は、準備プログラム・サイクル（ステップ51〜60）、消去サイクル（ステップ63〜71）、最終分配調整サイクル（ステップ73〜79）を含む。
プログラム・サイクル中、消去すべきセルは「プログラム」され（即ち、適切な電荷が各セルのゲート内に記憶される）、主として後でセルが過消去される（セルが負の大きい閾値まで消去される）危険を少なくする。ステップ51中、セルの１つに適切な電圧（高い電圧）を印加する回路がイネーブルに為される。次いで、ステップ53中、セルをそのゲート及びドレインに適切な電圧が印加されることによって「プログラム」する。
次に、セルの状態を検証するために本発明による検証動作を実施する（ステップ55及び57）。ステップ55は、検証動作のセットアップ・サイクル（第７図の時刻t1から時刻t2までのサイクル）であり、ステップ57は、検証動作のサンプル・サイクル及び保持サイクル（第７図の時刻t2から時刻t5までのサイクル）を含む。
検証動作のステップ57で、セルが十分にプログラムされていないことが決定された場合、（セルを再プログラムし、そのような再プログラムの後でセルが十分にプログラムされているかどうかを検証するために）ステップ51、53、55、57を逐次繰り返す。
検証動作のステップ57で、セルが十分にプログラムされていることが決定された場合、（他のセルの消去及びプログラムのためにチップ3'を準備するために）プログラム終結ステップ59を実施する。ステップ59の後、（プログラムすべき次のセルのアドレスを選択するために）セル・アドレス増分ステップ61を実施する。ステップ61で全てのセルがプログラムされたことが決定された場合、ステップ63を実施する。それ以外の場合、ステップ61でプログラムすべき次のセルを選択し、ステップ51、53、55、57をこの新しいセルに対して繰り返す。
消去サイクルの開始時（ステップ61の最後の繰り返しの後）、全てのセルがプログラムされている。この段階でアドレスを増分すると、アドレス・カウンタがリセットされて、ブロックの始まりを示す。消去サイクルの第１のステップ（ステップ63）中、全てのセルに適切な電圧（高い電圧）を印加する回路がイネーブルに為される。次いで、ステップ65中、各セルをそのソース及びゲートに適切な電圧を印加することによって「消去」する。
次に、アドレス・カウンタが示すセルの状態を検証するために本発明による検証動作を実施する（ステップ67及び69）。ステップ67は、検証動作のセットアップ・サイクル（第７図の時刻t1から時刻t2までのサイクル）であり、ステップ69は、検証動作のサンプル・サイクル及び保持サイクル（第７図の時刻t2から時刻t5までのサイクル）を含む。
検証動作のステップ69で、セルが十分に消去されていないことが決定された場合、（他の高電圧サイクルを再トリガし、それにより全てのセルを再消去し、かつそのような差異消去の後でアドレス・カウンタが示すセルが十分に消去されているかどうかを検証するために）ステップ63、65、67、69を逐次繰り返す。
検証動作のステップ69で、アドレス・カウンタが示すセルが十分に消去されていることが決定された場合、（検証すべき次のセルのアドレスを選択するために）セル・アドレス増分ステップ71を実施する。ステップ71で全てのセルが消去されていることが決定された場合、ステップ73を実施する。それ以外の場合、ステップ71で検証すべき次のセルのアドレスを選択し、ステップ67及び69をこの新しいセルに対して繰り返す。
ステップ71の最後の繰り返しの後、チップは、分配調整サイクルを実施する（ステップ73〜79）。このサイクルの目的は、メモリ・セル閾電圧の分配を固定する（例えば、消去サイクル中に任意のセルの過消去を矯正する）ことである。ステップ73中、全てのセルに適切な電圧（高い電圧）を印加する回路がイネーブルに為される。次いで、ステップ75中、各セルのゲートに適切な電圧を印加することによって各セルを同時に（または実質上同時に）調整する。次いで、全てのセルの状態を検証するために本発明による他の検証動作を実施し（ステップ77及び79）、各セルがまだ十分に消去されているかどうかを決定する。ステップ77は、検証動作のセットアップ・サイクル（第７図の時刻t1から時刻t2までのサイクル）であり、ステップ79は、（全てのセルの状態を検証するために十分な回数繰り返して実施される）検証動作のサンプル・サイクル及び保持サイクル（第７図の時刻t2から時刻t5までのサイクル）を含む。
ステップ79の後、チップ（例えば、チップの制御ユニット29）は、（例えば、外部デバイスがアクセスすることができるパッド30など出力パッドに対して）最後の検証動作の結果を示すデータをアサートし、全消去動作が完了したことを示す制御信号（「消去終了」）をアサートする。
以上、本発明の好ましい実施例について、第５図〜第８図を参照して説明した。これらの実施例については、ある程度詳細に説明したが、下記の請求の範囲によって定義される本発明の精神及び範囲から逸脱することなくこれらの実施例のいずれにも変更を加えることができると考えられる。
【図２】
0003648534.tif 000005
【図６】
0003648534.tif 000006
【図１】
0003648534.tif 000007
【図３】
0003648534.tif 000008
【図４Ａ】
0003648534.tif 000009
【図４Ｂ】
0003648534.tif 000010
【図５】
0003648534.tif 000011
【図７】
0003648534.tif 000012
【図８】
0003648534.tif 000013