(57)【特許請求の範囲】
【請求項１】
制御ゲート、ソース及びドレインを有するフローティングゲートセルのプログラム方法であって、
前記セルがオーバープログラムされないように第１パルス高及び第１パルス幅を有する第１プログラムパルスをセルに供給し、
前記第１プログラムパルスに応答して前記セルがプログラムされたか否か判断し、プログラムされていない場合、
前記セルにプログラムリトライパルスを供給し、
前記プログラムリトライパルスに応答して前記セルがプログラムされたか否か判断し、プログラムされていない場合、
前記セルがプログラムされたと判断されるまで、又はリトライが最大回数行われるまで、前記セルに他のプログラムリトライパルスを反復して供給し、前記セルがプログラムされたか否か判断する工程を含み、
前記第１プログラムパルス及び前記プログラムリトライパルスは、可変電圧を前記ドレインに供給しFowler-Nordheim tunnelingが前記フローティングゲートセルを放電するために生成されるように、前記制御ゲートにマイナスの電圧を供給することにより発生され、
前記リトライパルスはパターンに従って各々変化するパルス幅及びパルス高を有し、前記パターンは前記第１パルス幅より広いパルス幅及び前記第１パルス高より高いパルス高を有する少なくとも１パルスを含み、前記セルがリトライの最大数より少ない所定数のリトライを含むパターンの第１フェーズ以内でプログラムされるよう前記パターンは選択されることを特徴とする、フローティングゲートメモリセルのプログラム方法。
【請求項２】
前記パターン内のリトライパルスは、パルス高及びパルス高により各々決定されるエネルギを各々有し、前記パルスの各エネルギは前記パターンの第１フェーズにおいて一定又は増加することを特徴とする請求項１記載の方法。
【請求項３】
前記第１フェーズ中の前記パルス高は一定で前記第１パルス高より高く、前記第１フェーズ中のパルス幅は連続的に増加することを特徴とする請求項２記載の方法。
【請求項４】
前記第１フェーズ後のパルスは、前記第１フェーズの最終パルスより大きなエネルギを有することを特徴とする請求項３記載の方法。
【請求項５】
複数のフローティングゲートセルを有するメモリアレイと、
前記メモリアレイに接続され、前記複数のフローティングゲートセルに電圧を供給し、前記メモリアレイ内の前記複数のフローティングゲートセルをプログラムするための供給回路と、
前記メモリアレイ内のビットラインに接続され、前記メモリアレイ内のフローティングゲートセルの行の１部を少なくとも含むセットにデータを格納するためのバッファを提供する複数のビットラッチと、及び
前記メモリアレイ、前記供給回路及び複数のビットラッチに接続され、前記ビットラッチに接続される選択されたワードライン及びビットライン上のセルをプログラムし、プログラム値を格納する自動プログラム回路とを具備し、このプログラム回路は、
前記セルがオーバープログラムされないように、第１パルス高及び第１パルス幅を有する第１プログラムパルスを供給し、
前記第１プログラムパルスに応答して前記セルがプログラムされたか否か判断し、プログラムされた場合、対応するビットラッチをリセットし、プログラムされていない場合、前記セルにプログラムリトライパルスを供給し、
前記セルが前記プログラムリトライパルスに応答してプログラムされたか判断し、プログラムされた場合、対応するビットラッチをリセットし、プログラムされていない場合、
他のプログラムリトライパルスを前記セルに反復して供給し、該セルがプログラムされたか否か判断し、プログラムされたセルのビットラッチをリセットし、前記複数のビットラッチ内の全ビットラッチがリセットされるか、又は最大回数のリトライが行われるまで前記リトライパルスの供給を行う回路を含み、
前記プログラムリトライパルスはパターンに従って変化するパルス幅とパルス高を各々有し、該パターンは第１パルス幅より広いパルス幅を有し、前記第１パルス高より高いパルス高を有する少なくとも１つのパルスを含むことを特徴とするデータ格納装置。
【請求項６】
前記複数のフローティングセルの各行は、第１ページ及び第２ページを含み、前記セットはフローティングゲートセルの１ページを含むことを特徴とする請求項５記載の装置。
【請求項７】
前記メモリアレイは前記複数のフローティングゲートセルに接続される少なくともＭワードラインとＮビットラインを含み、及び
前記複数のビットラッチは前記Ｎ（Ｎは３２より大きい）ビットラインの各々に用いられるビットラッチを含むことを特徴とする請求項５記載の装置。
【請求項８】
前記リトライの最大回数より少ない所定数のリトライを含むパターンの第１フェーズ以内で前記セルがプログラムされるよう前記パターンは選択され、Ｎは５００より大きく、前記パターンの前記第１フェーズは１ミリ秒以下で完了することを特徴とする請求項７記載の装置。
【請求項９】
前記Ｎは１０００より大きいことを特徴とする請求項８記載の装置。
【請求項１０】
前記リトライの最大回数より少ない所定数のリトライを含むパターンの第１フェーズ以内で前記セルがプログラムされるよう前記パターンは選択され、前記パターン内のリトライパルスはパルス高及びパルス幅で各々決定するエネルギを有し、前記パルスの各エネルギは前記パターンの第１フェーズ中に一定を保つか又は増加することを特徴とする請求項５記載の装置。
【請求項１１】
前記第１フェーズ中の前記パルス高は一定で前記第１パルス高より大きく、前記第１フェーズ中のパルス幅は連続的に増加することを特徴とする請求項１０記載の装置。
【請求項１２】
前記第１フェーズ後の前記パルスのエネルギは、前記第１フェーズの最終パルスより大きいことを特徴とする請求項１０記載の装置。
【請求項１３】
前記第１プログラムパルス及びプログラムリトライパルスは、可変電圧をドレインに供給しFowler-Nordheim tunnelingが前記フローティングゲートセルを放電するために生成されるように、前記制御ゲートにマイナスの電圧を供給することにより発生されることを特徴とする請求項５記載の装置。
【請求項１４】
Ｍ行Ｎ列のフローティングゲートメモリセルを有する集積回路上のメモリアレイ内にデータを格納する方法であって、
入力データ行を前記集積回路上のページバッファにロードし、
前記メモリセルの行に対する前記入力データをプログラムするためのメモリセル行を選択し、
ページバッファ内のプログラム値を有する入力データに対応する前記メモリセル行内のセルに第１プログラムパルスを供給し、
前記メモリセル行内のベリファイをパスしたメモリセルのページバッファ内入力データをリセットし、プログラム値を有するデータが前記ページバッファ内に残っている場合、
前記ページバッファ内のプログラム値を有する入力データに対応する前記メモリセル行内のセルにプログラムリトライパルスを供給し、
前記メモリセル行を読み込み、前記メモリセル行に対する前記入力データのプログラミングをベリファイし、
前記メモリセル行内でベリファイにパスしたメモリセルのページバッファ内入力データをリセットし、
前記セルに他のプログラムリトライパルスを供給し、プログラムされたセルに関する前記入力データを読み込み、プログラムされたセルに対応する前記入力データをリセットし、前記行がプログラムされたと判断されるまで、又は最大回数のリトライが行われるまで前記リトライパルスを供給する工程を含み、
前記プログラムリトライパルスはパターンに従って変化するパルス幅とパルス高を各々有し、該パターンは前記第１パルス幅より広いパルス幅及び前記第１パルス高より高いパルス高を有する少なくとも１パルスを含むことを特徴とする方法。
【請求項１５】
前記入力データをプログラムするために前記メモリセルの行内にＮ列のサブセットを選択する工程を更に含むことを特徴とする請求項１４記載の方法。
【請求項１６】
前記メモリセルの行をプログラムする工程は、あるデータプログラム状態が前記ページバッファ内に格納されたとき、前記フローティングゲートメモリセル内に格納された充電状態を変化させる工程を含むことを特徴とする請求項１４記載の方法。
【請求項１７】
前記リトライの最大回数より少ない所定数のリトライを含むパターンの第１フェーズ以内で前記セルがプログラムされるよう前記パターンは選択され、前記パターン内のリトライパルスはパルス高及びパルス幅で各々決定するエネルギを有し、前記パルスの各エネルギは前記パターンの第１フェーズ中に一定を保つか又は増加することを特徴とする請求項１４記載の方法。
【請求項１８】
前記第１フェーズ中の前記パルス高は一定で前記第１パルス高より高く、前記第１フェーズ中のパルス幅は連続的に増加することを特徴とする請求項１７記載の方法。
【請求項１９】
前記第１フェーズ後のパルスエネルギは前記第１フェーズの最終パルスより大きいことを特徴とする請求項１７記載の方法。
【請求項２０】
前記フローティングゲートセルは制御ゲート、ソース及びドレインを有し、前記第１プログラムパルス及びプログラムリトライパルスは、可変電圧をドレインに供給しFowler-Nordheim tunnelingが前記フローティングゲートセルを放電するために生成されるように、前記制御ゲートにマイナスの電圧を供給することにより発生されることを特徴とする請求項１４記載の方法。
【請求項２１】
前記メモリアレイは前記複数のフローティングゲートセルに接続された少なくともＭワードライン及び少なくともＮビットラインを含むことを特徴とする請求項１４記載の方法。
【請求項２２】
前記リトライの最大回数より少ない所定数のリトライを含むパターンの第１フェーズ以内で前記セルがプログラムされるよう前記パターンは選択され、Ｎは５００より大きく、前記パターンの前記第１フェーズは１ミリ秒以下で完了することを特徴とする請求項２１記載の装置。
【請求項２３】
Ｎは１０００より大きいことを特徴とする請求項２２記載の方法。
【発明の詳細な説明】
発明の背景
発明の技術分野
本発明はフラッシュＥＥＰＲＯＭメモリ技術に関し、特に制御されたプログラミング電圧による自動プログラミング用の効率及び速度が改良されたフラッシュＥＥＰＲＯＭメモリ構成に関する。
従来の技術
フラッシュＥＥＰＲＯＭは不揮発性記憶集積回路の中で著しく発展している。メモリフラッシュＥＥＰＲＯＭ内のメモリセルは、いわゆるフローティングゲートトランジスタを用いて形成され、フローティングゲートを充電または放電することによりデータはセル内に格納される。フローティングゲートはポリシリコン等の導電材料で、薄い酸化膜または他の絶縁材料によってトランジスタのチャンネルから絶縁されており、絶縁材料の第２層によりトランジスタのコントロールゲートから絶縁されている。
フローティングゲートはFowler-Nordheim tunneling機構を用いてゲート及びソース又はドレイン間に大きなプラス電圧をかけてることにより充電できる。これにより電子は薄い絶縁膜を介してフローティングゲートに注入される。又は、電位を与え高エネルギ電子をセルのチャンネル内に誘起することにより、ホットエレクトロン注入と呼ばれる雪崩注入機構を用いることができ、こ機構は絶縁膜を介してフローティングゲートに電子を注入する。フローティングゲートが充電されると、メモリセルを導通させるための閾値電圧は、リード(read)動作の時にワードラインに与えられた電圧以上に上昇する。従って、充電されたセルがリード動作のときにアドレスされた場合、セルは導通しない。セルの非導通状態はセンス回路の極性に応じてバイナリの１又は０として示される。
フローティングゲートは放電して逆のメモリ状態をとる。この機能はトランジスタのフローティングゲートとソース又はドレイン間、又はフローティングゲートと基板間のＦ−Ｎトンネル機構により一般に行われる。例えばフローティングゲートはドレインからゲートへ大きなプラス電圧を与えることにより、ドレインを介して放電する。このときソースはフローティング電位のままである。
フローティングゲートを充電及び放電するために用いる高電圧は、特にセルサイズ及び処理仕様の減少に伴って、フラッシュメモリ装置に著しい設計的制限を与える。
更に、フローティングゲートを充電及び放電する動作は、特にＦ−Ｎトンネル機構を用いる場合に比較的低速な処理で、速度が要求される用途でフラッシュメモリ装置の適用範囲を制限することがある。
従来のサブミクロン技術を用いるフローティングゲートメモリ構成において、物理的材料上のパターン内の問題となる大きさのばらつきは約１０％以内である。フラッシュＥＥＰＲＯＭセル又は他のフローティングメモリについて、このような大きさのばらつきによりプログラミング速度のばらつきはFowler Nordheimトンネル方法を使用して二次まで生じる。更にアレイ内のバイアス電圧の変動が考慮されるとき、プログラミング速度の変動は、現在の装置において４次まで変化することがある。
フラッシュメモリをプログラムする一般的な方法は、各プログラミングパルスの後に実行されるプログラムベリファイループを有する固定パルス幅及び固定バイアスを用いている。ベリファイに失敗すると、他のパルスが反復して供給される。プログラミングパルスのエネルギが大きすぎると、オーバープログラムのセルが生じる。パルスのエネルギが小さすぎると、不十分な数のセルが第１サイクルにおいてプログラムされることになる。オーバープログラムされたセルは、装置のフローティングゲートから多すぎる電荷を移動し、そのセルの動作はアレイに特定される動作範囲外となる。これはコーディングエラーとなることがある。従って、アルゴリズムはオーバープログラミングを避けるよう注意されなければならず、同時にメモリ内の特定バイトをプログラムするのに長時間を要してはならない。メモリアレイ内のセルについてのプログラミング速度がマグニチュードの単位で２から４だけ変化するとき、オーバープログラミングの問題又は非常に多くのプログラミングパルスが必要になることの検討は重要である。これは従来のフラッシュメモリ装置の動作を低速にした。
プログラム速度を増加し、同時に短時間でプログラムされるセルのオーバープログラミングを避けるための従来の対策は、連続する各リトライパルス(retry pulse)のパルス高を徐々に増加することであった。この方法はパルス高のステップが十分であれば、高速プログラミングを達成する。しかし、これを導入するための回路は非常に複雑なものになる。更に、シーケンス内後部のパルスの高いパルス高により、プログラムしないセルへの妨害が増加することになる。
増加したパルス高の増加を用いない他の構成は、リトライ経路内の連続パルスのパルス幅を増加するものである。この方法はパルス高を増加するアルゴリズムの前記妨害の問題を生ずることはないが、プログラミング時間が非常に長くなり、様々のパルス幅を全て実現するための回路は比較的複雑となる。
従って、従来の速度の問題及びオーバープログラミング不良の問題を克服するセルプログラミング用のフラッシュＥＥＰＲＯＭセル構造及び方法を提供することが望まれている。
発明の概要
本発明は、オーバープログラミングを生じることなくアレイ内の実質的に全てのセルの高速プログラミングを保証するフラッシュメモリアレイプログラミング用の方法及び装置を提供する。本発明はプログラムリトライパルスのパターンの提供に基づき、このリトライパルスは、あるパターンに従って変化するパルス幅及びパルス高を各々有する。このパターンは第１のフェーズを含み、アレイ内の実質的に全セルがこの第１のフェーズ内でプログラムされるように、第１のフェーズは所定数のリトライを含む特定時間で完了する。パターンの第２フェーズはアレイ内で最も低速なセルをプログラムするように高エネルギパルスシーケンスを含む。このパターンは増加パルス幅及び増加パルス高の組み合わせである。容易にプログラムされる各セルが、引き続きパルスを受信しないページプログラムアレイに用いられる場合、非常に速く信頼性のあるプログラミング方式が達成され、従来の方式が著しく改善される。
従って本発明はフローティングゲートメモリセルをプログラムする方法に特徴があり、この方法は第１プログラムパルスをセルがオーバープログラムされることのないよう選択される第１パルス高及び第１パルス幅を有するパルスをセルに供給する。次にアルゴリズムはそのセルが前記第１プログラムパルスに応答してプログラムされたか否か判断し；もしそうでなければ、プログラムリトライパルスをセルに供給する。プログラムリトライパルスの後、アルゴリズムはセルがそのパルスに応答してプログラムされたか否かを判断し、そうでなければ他のプログラムリトライパルスをそのセルがプログラムされたと判断されるまで、又はリトライが最大回数行われるまでセルに反復して供給する。プログラムリトライパルスは或パターンに従って変化するパルス幅及びパルス高を各々有し、このパターンは少なくとも前記第１パルスの幅より広く、第１パルスの高さより高いパルスを含む。このパターンはセルが前記パターンの第１フェーズ以内でプログラムされるよう選択され、前記リトライの最大回数より少ない所定数のリトライを含む。
本発明の特徴によれば、パターン内のリトライパルスはそのパルス高及びパルス幅により決まるエネルギを有し、これらはパターンの第１フェーズの間に一定に保たれるか又は増加し、パターンの第２フェーズ中は少なくともパターンの第１フェーズの最後のパルスと同一のエネルギを有する。
本発明の他の特徴によれば、フローティングゲートメモリセルの複数の行及び列を有する集積回路上のメモリアレイ内にデータを格納する方法として特徴づけられる。この方法では、集積回路上のページバッファに入力データの行をロードし（プログラムパルスを受信するビットをプログラム値に設定する）、入力データをプログラムするための行を選択する。前述のプログラムリトライパターンはメモリセルの行の中にあるセルに供給され、このセルはページバッファ内のプログラム値を有する入力データに対応する。各ベリファイシーケンスの後、ページバッファ内でのベリファイをパスした各ビットに関する入力データは、プログラムしない値にリセットされる。
このようにして、ページデータを５００セル以上（本発明の特徴によれば１０００以上）含む行にロードできる。本発明によるプログラムリトライパターンの第１フェーズは、１ミリ秒以下で完了する。１０００のセル行について、セルプログラミングインターバルあたり１マイクロ秒の速度を提供する。本発明によれば、前述したパターンの第１フェーズが１ミリ秒以下で完了するよう設計され、多くのページがほぼ１ミリ秒以下で完了することになる。従って、パターンを第１フェーズから第２フェーズに延長することが必要な低速セルを有するページについて、装置の総合的平均プログラミング速度は、本発明より大部分の行が１ミリ秒以下でプログラムを完了する速度に維持される。
本発明は本願によるビット単位の自動ベリファイを有するページプログラム構成に特に適している。ホストの介入を必要としない完全自動アルゴリズムでフラッシュメモリ装置の高効率、高速プログラミングを提供する。
この発明の他の特徴及び効果は、図面、実施例の説明、及び請求の範囲より明らかとなる。
【図面の簡単な説明】
図１は本発明による可変パルス幅及びパルス高を用いる自動プログラミングを導入したフローティングゲート集積回路の概略構成を示す。
図２はプログラム動作を説明するためのフローティングゲートメモリセルの概略構成を示す。
図３はリトライパルスパターンを示し、このパルス形状はパターン内で幅と高さが変化する。
図４は本発明によるリトライパルスパターンを発生するために用いられるロジックのブロック図。
図５はパルス幅のみの増加を用いた方法と、パルス高とパルス幅を用いる本発明の方法との比較を示すグラフ。
図６はパルス幅のみの増加を用いた方法と、パルス高とパルス幅を用いる本発明の方法との性能を比較するためのグラフ。
図７は図８〜１１に示す構成に適用される本発明の方法の性能を示すグラフ。
図８は本発明に用いられるフラッシュＥＥＰＲＯＭアレイの概略ブロック図。
図９は本発明によるページプログラム、及び自動ベリファイリトライ回路を有するフラッシュＥＥＰＲＯＭアレイの概略ブロック図。
図１０はフラッシュＥＥＰＲＯＭアレイ内の２つのメモリセルについてのページプログラム部及び自動ベリファイ回路を示す概略図。
図１１はリトライパルス形状パターンを用いた本発明によるページプログラム及び自動ベリファイ動作を示すフローチャート。
詳細な説明
本発明の好適実施例を図面を参照して詳細に説明する。図１はパルス高及びパルス幅制御ロジックによる自動プログラミングアルゴリズムを用いたフローティングゲートメモリ装置の概念的構成を示す。従って図１に示す集積回路は、フラッシュメモリ即ちＥＥＰＲＯＭのようなフローティングメモリアレイ１０を含む。アレイ１０にはｘデコーダ１１、ｙデコーダ１２、及びｙディメンションパスゲート１３が接続され、このパスゲート１３はアレイのビットラインへのアクセスを提供する。アドレス信号はアドレスラッチ及びバッファ１５の入力ピン１４に供給される。アドレスラッチ及びバッファ１５はライン１６を駆動し、これらのラインはｘデコーダ１１及びｙデコーダ１２に接続されている。データ信号は入出力ピン１７を介してデータ入出力回路１８に供給される。データ入出力回路１８は、プログラムデータバッファ１９及びｙパスゲート１３を介して入力データをアレイに供給する。アレイからの出力データはｙバスゲート１３を介してセンスアンプ２０に供給され、センスアンプからデータ入出力回路１８に供給される。装置の他の入力には制御信号が含まれ、この制御信号はチップイネーブルＣＥ、出力イネーブルＯＥ、及びライトイネーブルＷＥを含み、これら信号はピン２１に供給される。これらの信号は制御ロジック２２に接続され、このロジックはモードロジック及びステートマシン２３が結合されている。本発明によるこのステートマシンは、以下に詳細に示す自動プログラムアルゴリズムを含む。
このモードロジックは、アドレス及びデータライン１４及び１７を介して受信されるコマンドに応答する。従ってデータライン２４上のＩ／Ｏ回路の出力は、プログラムデータバッファ１９のみならず、モードロジック及びステートマシン２３にも接続されている。又、ライン１６からのアドレス信号はモードロジック及びステートマシン２３にも接続されている。
本発明の一実施例によれば、フローティングゲートメモリアレイ１０は、フラッシュＥＥＰＲＯＭセルにより構成され、これらのセルは消去及びプログラムすることができる。これらの処理を達成するために、プログラム及び消去電圧源２５が含まれ、これらのソースは高いプラス又はマイナスの電圧を、フローティングゲートセルのプログラム及び消去を目的として、フローティングゲートセルに供給する。本発明によれば、パルス高及びパルス幅制御ロジック２６が含まれこれはチップの自動プログラムシーケンス中に用いられる。このロジック２６の目的はオーバープログラミングすることなく、アレイ内セルの高効率、高速プログラミングの達成である。プログラム及び消去電圧源２５は、パルス高及びパルス幅制御ロジック２６の制御の下、ライン２７を介してｘデコーダ１１に結合され、フローティングゲートメモリアレイ１０内のワードラインに接続され、ライン２８を通りｙパスゲート１３を介してアレイのビットラインに接続され、及びライン２９を通りアレイソース電圧ノードに接続される。
マイナスの昇圧回路(charge pump)が図１のプログラム電圧源に用いられ、前述のようにアレイのワードラインを駆動する。
昇圧回路及び分圧器として用いられる各回路の構成は、関連する特許出願Ｎｏ．ＰＣＴ／ＵＳ／１３１６９（出願日：１９９５年３月９日、名称：直列コンデンサ昇圧回路）に説明されており、その内容は本願に含まれている。
図１のブロック図は本発明に従って改良された集積回路メモリ装置を示し、パルス高及びパルス幅制御ロジック２６を用いた自動プログラムアルゴリズムが導入されている。従って本発明を適用できるチップ制御構造及びメモリ構成に関する詳細は、市販の集積回路を参照して判断できる。
本発明によれば、プログラミングアルゴリズムはパルス高及びパルス幅制御ロジックを用いてフローティングゲートメモリアレイ１０について改良されている。好適システムにおいて、プログラミング処理は図２を参照して説明されるようにフローティングゲートセル内のフローティングゲートの放電を含む。
図２はフローティングゲートメモリセルの概略構成を示し、このセルは制御ゲート４０、ソース４１、ドレイン４２、及びフローティングゲート４３を含む。プログラミングのとき、プログラムされる本発明によるセルの制御ゲートは、ワードラインに接続され、このワードラインは−８Ｖのワードライン電圧を受信する。ソース電極４１はアレイ参照電圧ＶＳＳに接続され、この参照電圧はプログラム動作中にグランドに接続されるか又はフローティングされる。ドレイン４２はビットラインに接続され、このビットラインは本発明によるセルの自動プログラミング用パルスパターンを受信する。このパルスパターンは本実施例において５．５〜６．５ボルトのプラスパルスを提供し、これにより、Fowler-Nordheimトンネリングとして知られる矢印４４に示すフローティングゲートからドレインへの電子的処理が行われる。電子がフローティングゲート４３から除かれるにつれ、フローティングゲートセルのターンＯＮ閾値が減少する。従って、放電フローティングゲートをプログラムされた状態として用いるフローティングゲートメモリアレイ１０において、選択されたセルはリード電圧に応答して導通する。このリード電圧は選択されたときにそれが接続されるビットラインをプルダウンする。代替えのシステムにおいて、逆の状態をプログラムされた状態として用いることができ、この場合、その閾値を上昇するためにフローティングゲートは充電される。上昇した閾値がフローティングゲートメモリアレイについてプログラムされた状態として用いられる場合、セルはそれがアクセスされたとき非導通で、対応するビットラインをプルダウンしない。
前述したように、パルスパターンは本発明に従ってプログラムされるフローティングゲートセルのドレイン４２に供給される。図３は各パルスパターンを示す。即ち、図３に示す本実施例によれば、プログラムされるセルの制御ゲートは−８ボルトに設定され、一方ドレインはそのセルをプログラムするために１つ又は一連の複数プログラムパルスを受信する。第１のプログラムパルス６０は、プログラムされるフローティングゲートセルのドレインに供給される。この第１プログラムパルスの幅は１００マイクロ秒で、パルス高は５ボルトである。第１パルス６０の後、プログラムベリファイ動作が間隔６１内で行われる。セルが間隔６１で行われたベリファイテストにパスすると、そのセルに更なるパルスが提供されることはない。しかし、ベリファイにパスしなかった場合、プログラムリトライパルス(program retry pulse)６２がそのドレインに供給される。図３に示す実施例では、プログラムリトライパルス６２のパルス幅は１００マイクロ秒、パルス高は５．５ボルトである。従って次の第２パルスのパルス高は増加するが、パルス幅は増加しない。前のように、第２パルスの後にベリファイアルゴリズムが実行される。そのセルがパスするとパルスが更に供給されることはない。セルがパスしないと、第２のリトライパルス６３が供給される。この実施例において第２リトライパルスのパルス幅は２００マイクロ秒、パルス高は５．５ボルトである。従って、パルス幅を第１リトライパルス６２の２倍にすることによりパルスエネルギは増加するが、パルス高の変化はない。第２リトライパルス６３の後でベリファイアルゴリズムが失敗した場合、第３のリトライパルス６４が供給される。第３リトライパルス６４のパルス幅は４００マイクロ秒、パルス高は５．５ボルトである。従って、第２リトライパルス６３に比べてパルス幅を２倍にすることにより、パルスエネルギは再び２倍となる。しかしパルス高はこの段階では増加しない。第３リトライパルス６４の後、ベリファイアルゴリズムが実行される。セルがベリファイを依然としてバスしない場合、第４リトライパルス６５がそのドレインに供給される。第４リトライパルスのパルス高は６ボルト、パルス幅は８００マイクロ秒である。従って第４リトライパルスは第３リトライパルス６４に比べ２倍のパルス幅で、より高いパルス高を有する。再びベリファイループが第４リトライパルスの後に実行される。セルがベリファイをパスしない場合、パルス６６のような追加のリトライパルスのシーケンスが、セルがパスするまで、又は最大再試行数になるまで実行される。一実施例によれば、パルス６５の後のリトライパルスは全て８００マイクロ秒の幅で、６ボルトのパルス高である。８つの８００マイクロ秒パルスシーケンスが供給される。これら８つの８００マイクロ秒パルスの後もセルがパスしないと、エラーが通知される。
図３に示すように、このパルスリトライパターンは、幅が１０００マイクロ秒以下の第１フェーズと第２フェーズを含む。実質的にアレイ内の全セルが第１フェーズ以内でプログラムされることが期待できるようにパターンは選択され、アレイ内のセルの平均プログラミング速度は、第１フェーズの幅（この例では１０００マイクロ秒）を提供し、プログラミングサイクル中に並列にプログラムされたセルの数により決定する。第１フェーズ中にプログラムされなかったセルがあると、その特定セルのために長いプログラムサイクルが必要となる。しかし、全アレイについての平均プログラミング速度は、プログラミングサイクルの第１フェーズの長さにより決定される設計仕様の値に維持される。
更に、第１フェーズ中のプログラミングサイクルは”高速(fast)”セルのオーバープログラミングを防止するように設計される一方で、”遅い(slow)”セルのプログラミングを保証している。従って、第１プログラムパルス６０は、そのパルスを受信する如何なる特定セルもオーバープログラムされることがないように設計される。これにより、第１ベリファイアルゴリズム６１中に、ベリファイをパスしないセルが多く発生する。同様に、リトライパルス６２は第１パルス６１に比べ僅かに増加したエネルギを有し、第１パルスの後にベリファイをパスしなかったセルが第２パルスによりオーバープログラムされることがないように選択される。図３で判るように、第１フェーズ中のリトライパルスのエネルギは、パルス高の増加又はパルス幅の増加により全て増加している。セルの各構成に応じて、パルス高とパルス幅を組み合わせて用いることもできる。本発明は、パルス高の増加はパルス幅の増加よりプログラミング速度に大きな影響を持っていることの認識に基づいており、これはパルス幅に対するパルス高の積分の用語において等価である。例えば、後述する図８の実施例構成において、プログラミング速度はワードライン電圧の各２ボルト増加についてほぼマグニチュードの単位で増加し、ビットラインバイアスの各１．２ボルト増加についてプログラミング速度はほぼマグニチュードの単位で増加する。しかし、時間スケールのみの増加は、与えられたパルス高で約２ボルト低いＶｔに対して、マグニチュードの単位で広いパルス幅が必要となる。
以下に詳述するように、本発明のパルス高及びパルス幅制御は、従来システムに比べ実質的に改良された性能を提供する。
図４は本発明のプログラム及び消去電圧源２５と共に用いられるパルス高及びパルス幅制御ロジックを示す。この制御ロジックは、クロック信号ＣＬＫを分周期７１に供給するクロック発生器７０を含む。分周期７１の出力は、タイマ７２に接続された制御信号のセットＯＳＣＭＵＸであり、タイマ７２はプログラムパルス用のタイミング信号をライン７３上に供給する。プログラムリトライカウンタ７４がこのロジックに含まれ、これはリトライ数つまりパルス数を複合ロジック７５に供給する。複合ロジック７５は制御信号を分周期７１に供給し、この分周期は各パルスのパルス幅を特定する。複合ロジック７５は又、昇圧回路及びデバイダ７６を駆動し、これはドレインにプラス電圧を供給する。このデバイダは電圧制御信号ＶＴＥＮを参照発生器７７に供給する。参照発生器７７は参照電圧ＢＬＩＳＯＢを制御トランジスタ７８に供給し、このトランジスタはライン７９上のアレイ内のビットラインに接続されている。トランジスタ７０の他端はデータラインパワー信号８０に接続されている。パルスのレベルは、トランジスタ７８のゲートでの信号ＢＬＩＳＯＢにより定義される。この信号は所望パルス高を越える閾値電圧に設定される。ライン８０上のデータラインパワーは最高パルス高以上に設定され、システムの昇圧回路により一定に保持される。
本発明に従ってアレイにプログラミング電圧を駆動する入出力回路の好適構成を図１０に示す。図４のトランジスタ７８は図１０のトランジスタ５０２及び５０８に対応する。図４のアレイビットライン７９は図１０の金属ビットライン１４３及び１５２に対応する。図４のライン８０上のデータラインパワーは、図１０のライン５７４及び５７６に対応し、これらラインはトランジスタ５２８と５３０、及び５３８と５４０を各々介してライン５８６上の信号ＤＬＰＷＲからパワーを受信する。ライン７３上の制御信号ＴＰＧＭＥＮＤは、図１０の制御信号ＢＬＩＳＯＢ、ＤＬＣＴＬ、及びＤＭＷＬのタイミングを制御するために用いられる。プログラミングパルスはＤＬＣＴＬを０ボルトに駆動することにより終結し、これはライン５８６上の信号ＤＬＰＷＲをライン５７４から切り離し、同時にＤＭＷＬをハイレベルに駆動し、これはデータライン５７４を０ボルトにし、プログラミングパルスを終結する。同時に、図４の参照発生器７７にいより供給されるＢＬＩＳＯＢ信号は、プログラムシーケンスの準備のためにＶＣＣに切り替わる。
図５〜７は本発明による制御されたパルス高及びパルス幅自動プログラムアルゴリズムにより提供される性能面の向上を示す。先ず、図５はパルス幅のみが変化する従来のアルゴリズムと、パルス高及びパルス幅の両方が変化する本発明のアルゴリズムとの比較を示す。ここで使用されるパルス幅とパルス高パターンは、連続するパルス間でエネルギがほぼ等しくなるように選択された。
水平軸は時間をマイクロ秒及びログスケールで示す。水平軸はセルに対する結果的な閾値である。これは間にベリファイ間隔のないパルスシーケンスを示す。又、目標プログラムＶＴは約３ボルトに選択されている。オーバープログラム条件は、ＶＴが約０．５ボルトに達したときに存在すると考えられる。
この性能は５つのセル条件について示されている。変化するパルス高及びパルス幅についてトレース２００上、及び変化するパルス幅のみについてトレース２００’に示される第１セルの条件は、速やかにプログラムされ”高速回路”を有するセルについてのものである。高速回路とは、このセルに接続されているビットライン上のバイアスが、アレイ上の通常バイアスより高い（この例では１．５ボルト）ことを意味する。これにより非常に高速なプログラミングセルとなり、これは最近の高密度構造で時々生じることがある。本発明を用いたトレース２０１上及び変化するパルス幅のみについてのトレース２０１’上の第２の条件は、通常バイアスで速やかにプログラムされるセルについてのものである。トレース２０２及びトレース２０２’上の第３の条件は、アレイ内の代表的セルについて提供されている。トレース２０５及び２０５’上の最後の条件は、アレイ内のゆっくりプログラムされるセルのプログラム性能を示し、このセルは”低速回路”に接続されている。ここで低速回路とは、ビットラインがアレイ内の通常のビットラインより低い（約１．５ボルト）電圧を受信することを意味する。
図５のチャートに関する変化するパルス高及びパルス幅条件を表１に示す。
0003807744.tif 000002
変化するパルス幅アルゴリズムについての曲線は、−８ボルトのゲート電圧で６ボルトの一定ドレイン電圧を仮定する。従って、パルス高は、この比較で用いられるパルス高／パルス幅アルゴリズムにおいて、変化するパルス幅アルゴリズムのパルス高（６ボルト／−８ボルト）の場合より低い電圧（５ボルト／−８ボルト）で始まる。
高速回路を有する高速セルについて、変化するパルス幅アルゴリズム２００’は、本発明の変化するパルス幅及びパルス高アルゴリズム２００より、著しく速いプログラミング（高い初期パルス高）となり、オーバープログラミングの危険が増すことが判る。
僅かにより遅くプログラムする本発明のアルゴリズムにより、代表的なセル（２０２、２０２’）の性能は同様である。アレイ内の低速セル（２０３、２０３’）について、変化するパルス高及びパルス幅アルゴリズムにより、変化するパルス幅のみを用いる低速セルより著しく高速にプログラムされたセルが生じることになる。低速プログラミングが特性と低速回路（２０４、２０４’）の両方を有するセルについて、パルス幅のみを変化する従来の方法は許容できないほど低速で、動作不能として破棄されることとなる。
図６は変化するパルス高のみの性能と本発明の変化した幅及びパルス高の性能の比較を示すグラフである。前のように水平軸は時間をログスケールで示す。垂直軸は結果的閾値電圧である。
この比較で用いられる変化するパルス高及びパルス幅も表１に示されている。変化するパルス高アルゴリズムについて、各パルスは１００マイクロ秒幅、ドレイン電圧は０．３ボルトステップで５ボルトから７．４ボルトに変化し、ゲート電圧は０．４ボルトステップで−８ボルトから−１１．２ボルトである。変化するパルス高／パルス幅アルゴリズムにおいて、高速セル高速回路についてはトレース２１０により示され、トレース２１１は高速セルの性能を示し、トレース２１２は代表的セルの性能を示し、トレース２１３は低速セルの性能を示す。トレース２１４は低速回路を有する低速セルの性能を示す。変化するパルス高のみのアルゴリズムに対応するトレースは、高速セル及び高速回路に関するトレース２１０’、高速回路に関するトレース２１１’、代表的セルに関するトレース２１２’、低速セルに関するトレース２１３’、及び低速回路を有する低速セルに関するトレース２１４’を含む。
変化するパルス高のみのアルゴリズムは、低速セル及び低速回路（２１４’）についても比較的速やかにプログラミング出来ることが判る。しかし、この結果を提供するために用いられる範囲はワードライン及び（又は）ドレイン上に非常に高い電圧を必要とする。これら高電圧はプログラムしないセルを妨害する危険がある。この例におけるサイクルを終了するために、ワードラインは約−１１ボルトを必要とする。選択されていないセルのドレインがグランドに落ちていても、これは選択されなかったセル上に実質的なフィールドを生成する。このことは、この変化するパルス高アルゴリズムにおける第１パルスは、−１３ボルトのフィールドを生成し、この電圧は列内の後のパルスに対するワードライン電圧に非常に近いことが理解されると、評価できることである。更に、パルス高アルゴリズムは、本発明による変化するパルス高及びパルス幅アルゴリズムに比べ、その導入にはより複雑な回路を必要とする。変化するパルス高及びパルス幅アルゴリズムのプログラムサイクル速度の性能は、図６に示すように、非常に高い電圧を用いる増加パルス高アルゴリズムに比べても、依然として優れている。
図７は本発明による変化するパルス幅及びパルス幅アルゴリズムの他の例の性能を示す。この実施例によるパターンを表２に示す。
0003807744.tif 000003
図７の水平軸はプログラム時間をログスケール及びマイクロ秒で示す。垂直軸は目標閾値３ボルトでの結果的な閾値、及び０．５ボルトでのオーバープログラム仕様を示す。表２に示すパターンを用いて、トレース２２０上に示す高速回路の高速セルは、第１パルスではオーバープログラム閾値に達していない。トレース２２１上に示す高速セルはオーバープログラム閾値を僅かに越える。トレース２２２上に示す代表的セルは、最初の１００マイクロ秒パルスにより、まだプログラムされない（３ボルト以上のＶＴ）。しかし、２番目の１００マイクロ秒パルスの後、代表的セルは３ボルトの目標ＶＴ以下にプログラムされるが、オーバープログラムされていない。トレース２２３上に示す低速セルは、３ボルトのＶＴ閾値を１０００マイクロ秒付近で交差している。トレース２２４に示す低速回路の低速セルは、約５０００マイクロ秒まで目標ＶＴ閾値に到達していない。
変化するパルス高及びパルス幅アルゴリズムは、特定用途に関する必要に応じて調節することが出来、低速セルの性能を向上し、オーバープログラミングの可能性を減少し、同時に総合的な平均プログラム速度を、導入し易く高速な最適値に維持し、従来より隣接セルを妨害することは殆どない。
図８は本発明の一実施例によるフラッシュＥＥＰＲＯＭアレイの構成を示し、フラッシュＥＥＰＲＯＭセルの２つの列は単一金属ビットラインを共用している。図８はアレイ列の４対を示し、列の各対はフラッシュＥＥＰＲＯＭセルをドレイン・ソース・ドレイン構成で含んでいる。
従って、第１列対１２０は第１ドレイン拡散ライン１２１、ソース拡散ライン１２２、及び第２ドレイン拡散ライン１２３を含む。ワードラインＷＬ０〜ＷＬ６３は各々、列対の第１列の中のセルのフローティングゲート及び列対の第２列の中のセルのフローティングゲートを覆っている。図に示すように、第１列対は、セル１２４、セル１２５、セル１２６、及びセル１２７を含む１つの列を含む。ワードラインＷＬ２〜ＷＬ６１に接続されたセルは示されていない。列対１２０の第２列は、セル１２８、セル１２９、セル１３０、及びセル１３１を含む。アレイの同一列に沿って、第２列対１３５が示されている。これは鏡像に配置されていることを除き、列対１２０と同一構成である。
このように、セル１２５のような第１列対内のトランジスタは、ドレイン拡散ライン１２１内のドレイン及びソース拡散ライン１２２内のソースを含む。フローティングゲートは、第１ドレイン拡散ライン１２１とソース拡散ライン１２２の間のチャンネル領域を覆っている。ワードラインＷＬ１はセル１２５のフローティングゲートを覆い、フラッシュＥＥＰＲＯＭセルを形成している。
列対１２０及び列対１３５はアレイバーチャルグランド拡散１３６（ＡＲＶＳＳ）を共用している。従って、列対１２０のソース拡散ライン１２２はグランド拡散１３６に接続されている。同様に、列対１３５のソース拡散ライン１３７はグランド拡散１３６に接続されている。
前述したように、セル列の各対１２０は単一金属ラインを共用している。従って、ブロック右選択トランジスタ１３８及びブロック左選択トランジスタ１３９が含まれている。トランジスタ１３９はドレイン拡散ライン１２１内のドレイン、金属接点１４０に接続されたソース、及びライン１４１上の制御信号ＢＬＴＲ１に接続されたゲートを含んでいる。同様に右選択トランジスタ１３８は、ドレイン拡散ライン１２３内のソース、金属接点１４０に接続されたドレイン、及びライン１４２上の制御信号ＢＬＴＲ０に接続されたゲートを含んでいる。従って、トランジスタ１３８及び１３９を含む選択回路は、第１ドレイン拡散ライン１２１と第２ドレイン拡散ライン１２３の、金属接点１４０を介した金属ライン１４３（ＭＴＢＬ０）に対する選択的接続を提供する。同様に、列対１３５は右選択トランジスタ１４４及び右選択トランジスタ１４５を含み、これらトランジスタは金属接点１４６に同様に接続されている。接点１４６は接点１４０のように同一金属ライン１４３に接続され、接点１４０は列対１２０に接続されている。この金属ラインは２列以上のセルにより、追加の選択回路を用いて共用することが出来る。
図３の構成は、２列のセルを形成するドレイン・ソース・ドレインユニットに基づいており、これらのセルは隣接する列のドレイン・ソース・ドレインユニットから分離され、隣接する列のセルからの漏れ電流を防止している。この構成は、センス回路の漏れ電流に対する適当な許容により、又は非選択セルからの漏れ電流に対する他の制御により、３列以上のユニットに拡張できる  従って、例えば与えられた分離領域内に第４及び第５拡散ラインを追加し、４列のセルを提供するドレイン・ソース・ドレイン・ソース・ドレイン構造を構成できる。
列対は水平及び垂直に配置され、Ｍワードライン及び２Ｎ列を具備するフラッシュＥＥＰＲＯＭのアレイを提供する。このアレイはＮ本の金属ビットラインのみを必要とし、各ラインは前述したように選択回路を介してフラッシュＥＥＰＲＯＭの列対に接続される。
図では２つの金属ビットライン１４３及び１５２（ＭＴＢＬ０、ＭＴＢＬ１）に接続された４つの列対１２０、１３５、１５０、及び１５１のみが示されているが、アレイは必要に応じて水平及び垂直に繰り返し、大規模フラッシュＥＥＰＲＯＭメモリアレイを構成できる。従って、１つのワードラインを共用する列対１２０及び１５０は水平に繰り返され、アレイの１セグメントを提供する。セグメントは垂直に繰り返される。共用ワードドライバに接続される複数ワードラインを各々有するセグメントグループ（例えば８セグメント）は、アレイのセクタと考えることができる。
バーチャルグランド構成と、配置に要求される減少した金属ピッチ、及び異なるセグメント内の複数行の中にワードラインドライバを共用できる能力により、アレイの配置はコンパクトである。従ってワードラインＷＬ６３’はワードラインドライバをワードラインＷＬ６３と共用することができる。好適システムにおいて、８つのワードラインが単一のワードラインドライバを共用できる。従って、１つのワードラインドライバ回路のピッチのみが８行のセルセットに各々必要となる。左及び右選択トランジスタ（セグメント１２０用の１３９、１３８）によって提供される追加デコードにより、共用ワードライン構成を達成できる。共用ワードライン構成は、セクター消去動作中、８行のセル全てが同一ワードライン電圧を受信し、消去されるべきではないセル内にワードライン干渉を発生するという欠点を有している。与えられたアレイに関してこれが問題となる場合、全てのセクタ消去動作が、共用されたワードラインドライバに接続されたセルの全行を含むセグメントに関してデコードされることを保証することにより、この干渉の問題は解決できる。単一ドライバを共用する８ワードラインについて、８セグメントの最小セクタ消去が望ましい。
図９は本発明の特徴を説明するためのフラッシュＥＥＰＲＯＭアレイの概略ブロック図である。従って図９に示すフラッシュＥＥＰＲＯＭメモリモジュールは、セクタ１７０−１、１７０−２、１７０−３、１７０−Ｎを含むメインフラッシュＥＥＰＲＯＭアレイを含み、各セクタは８セグメント（例えばＳＥＧ０〜ＳＥＧ７）を含む。共用ワードラインドライバ１７１−１、１７１−２、１７１−３、１７１−Ｎの複数セットは、各セクタ内の８セグメントの共用ワードラインを駆動するのに用いられる。共用ワードラインドライバ１７１−１について示されているように、セクタ１７０−１について６４個の共用ドライバがある。６４個のドライバのそれぞれがライン１７２上に出力を供給する。これら各出力は６４ラインの８セットに分割された区分により示されるように、セクタ１７０−１の各セグメント内の８本のワードラインを駆動するのに用いられる。
アレイには複数のブロック選択ドライバ１７３−１、１７３−２、１７３−３、１７３−Ｎも接続されている。各ブロック選択ドライバは、各セグメント用の左及び右ブロック選択信号を駆動する。図８に示すようにセグメントは構成され、６４ワードラインの各セットに対して供給されるＢＬＴＲ１及びＢＬＴＲ０ブロック選択信号対がある。
更に、フラッシュＥＥＰＲＯＭアレイ内にはＮ本のグローバルビットラインがある。データ入力回路及びセンスアンプ１９１について、アレイ内のフラッシュＥＥＰＲＯＭセルの２Ｎ列に対してアクセスできるようにＮビットラインが用いられる。列選択デコーダ１７５はページプログラムビットラッチ１９０に接続され、これらラッチは各Ｎビットラインについて少なくとも１ビットラッチを含む。又、列選択デコーダ１７５はデータ入力回路及びセンスアンプ１９１に接続されている。データバスライン１９２は１６ビット幅で、入力データをデータ入力回路及びセンスアップ１９１に提供する。データバスライン１９２は又、１６ビットの出力データを供給する。これらの回路はフラッシュＥＥＰＲＯＭアレイに使用するデータ入出力回路を提供する。
Ｎビットライン１７４は列選択デコーダ１７５に接続される。好適システムにおいて、全１０２４ビットラインについてＮ＝１０２４である。ブロック選択ドライバ１７３−１〜１７３−Ｎは、ブロックデコーダ１７６に接続されている。共用ワードラインドライバ１７１−１〜１７１−Ｎは行デコーダ１７７に接続されている。列選択デコーダ１７５、ブロックデコーダ１７６、及び行デコーダ１７７はライン１７８内のアドレス上のアドレス信号を受信する。
列選択デコーダ１７５にはページプログラムビットラッチ／ベリファイブロック１９０が接続されている。ページプログラムビットラッチ／ベリファイブロック１９０はＮ個のラッチを含み、Ｎビットラインの各々に１つのラッチが用いられる。従って、１ページデータはＮビット幅と考えられ、セルの各行は２ページ、即ちページ０及びページ１の幅である。与えられた行内のページは前述のように左及び右のデコーディングを用いて選択される。ページプログラムビットラッチ／ベリファイブロック１９０は、アレイ内の選択された行のセルに対してプログラムされたデータのＮビット幅ページ及びＮビットラッチ内に格納されたデータのベリファイ用回路を含む。
選択可能電圧源１７９は図中に概念的に示されるように、ワードラインドライバ１７１−１〜１７１−Ｎ及びビットラインを介してフラッシュＥＥＰＲＯＭアレイのリード、プログラム、及び消去モード用の参照電位を供給するのに用いられる。
アレイ内のバーチャルグランドラインはバーチャルグランドドライバ１８１に接続され、アレイ内のバーチャルグランド端子に様々なモードでの電位を提供する。又、ｐ−ウェル及びｎ−ウェル参照電圧源１９９はアレイの各ウェルに接続されている。
従って、図９から判るように、ワードラインドライバ１７１−１のような６４個のワードラインドライバは、アレイ内の５１２（６４×８）行に用いられる。ブロック選択ドライバ（例えば１７３−１）により提供される追加デコーディングにより、この共用ワードライン配置を達成できる。
好適実施例におけるセルはセクタ消去動作用に構成され、この消去動作により消去されたセルの検知直後、そのセルが非導通になり、センスアンプの出力がハイになるようにフローティングゲートの充電（フローティングゲートへの電子注入）が行われる。又この構造は検知直後、プログラムされたセルが導通しフローティングゲートの放電（フローティングゲートからの電子放出）が行われるページプログラム用に構成される。
プログラミング動作での動作電圧は、低（データ＝０）閾値状態にプログラムされるセルのドレインに対してプラス５．５〜６．５ボルト、ゲートに対してマイナス８ボルト、ソース端子に０ボルト又はフローティングである。基板又はセルのｐ−ウェルは接地される。この結果、フローティングゲートを放電するためのFowler-Nordheim tunneling機構が達成される。
消去動作はソースにマイナス８ボルト、ゲートにプラス１２ボルトを供給し、ドレインはフローティングにすることにより行われる。ｐ−ウェルはマイナス８ボルトにバイアスされる。この結果、フローティングゲートを充電するためのFowler-Nordheim tunneling機構が達成される。読み出し電位はドレインで１．２ボルト、ゲートで５ボルト、及びソースで０ボルトである。
これは、消去されるセルを選択するワードラインデコーディングを使用したセクタ消去をする能力を設定する。１つのセグメント内の非選択セルに関する消去干渉状態により、ドレイン上で−８ボルト、ゲート上で０ボルト、ソース上で−８ボルトが生じる。これは十分にセルの許容範囲内の値で、セルはセル内の電荷の著しい干渉を生じること無くこれらの電位を耐える。
同様に、プログラム干渉状態は同一セグメント内で同一ビットラインを共用するセルについて、ドレイン上で最高６．５ボルト、ゲート上で０ボルト（又は場合により１ボルト）、及びソース上の０ボルト又はフローティングである。この状態でゲートからドレインへの駆動はなく、これはセルを著しく妨害することはない。
同一ワードラインを共用し同一ビットラインを共用しないセル、又はハイ状態を維持するアドレスされたセルに関して、干渉状態はドレイン上で０ボルト、ゲート上で−８ボルト、及びソース上で０ボルト又はフローティングである。又、この状態は非選択セル内の電荷の著しい劣化を生じない。
図９において、ページプログラムビットラッチ／ベリファイブロック１９０はプログラムベリファイ回路を含み、この回路はベリファイをパスするページバッファ内のデータのビット単位リセットを行う。
図１０は２ビットラインＭＴＢＬ０  １４３及びＭＴＢＬ１  １５２に関する自動ベリファイ回路及びページプログラム部を概略示す図である。図１０の金属ライン１４３（ＭＴＢＬ０）は図８の金属ライン１４３（ＭＴＢＬ０）に対応する。金属ライン１５２（ＭＴＢＬ１）は図８の金属ライン１５２（ＭＴＢＬ１）に対応する。図１０のアレイバーチャルグランド１３６（ＡＲＶＳＳ）は図８のアレイバーチャルグランド１３６（ＡＲＶＳＳ）に対応する。ライン５０１上の信号ＰＷＩはトランジスタ５０２、５０４、５０６、及び５０８のｐ−ウェルに接続されている。アレイ内の各ビットライン対はこれと同一構造を有する。
図１０において、トランジスタ５０２のドレイン及びトランジスタ５０４のドレインは金属ライン１４３（ＭＴＢＬ０）に接続されている。トランジスタ５０６のドレイン及びトランジスタ５０８のドレインは金属ライン１５２（ＭＴＢＬ１）に接続されている。トランジスタ５０４のソース及びトランジスタ５０６のソースはアレイバーチャルグランド１３６（ＡＲＶＳＳ）に接続されている。ライン５７０上の信号ＤＭＷＬＸがアクティブのとき、アレイバーチャルブランドライン１３６（ＡＲＶＳＳ）はトランジスタ５０４及びトランジスタ５０６を介して金属ライン１４３（ＭＴＢＬ０）及び金属ライン１５２（ＭＴＢＬ１）に各々接続される。
データＩ／Ｏライン５７４はトランジスタ５０２のソースに接続されている。データＩ／Ｏライン５７６はトランジスタ５０８のソースに接続されている。ライン５７２上の信号ＢＬＩＳＯＢはゲートトランジスタ５０２及びトランジスタ５０８のゲートに接続されている。信号ＢＬＩＳＯＢがハイのとき、金属ライン１４３はトランジスタ５０２を介してデータＩ／Ｏライン５７４に接続され、金属ライン１５２はトランジスタ５０８を介してデータＩ／Ｏライン５７６に接続される。
データＩ／Ｏライン５７４はトランジスタ５４２のドレインに接続されている。トランジスタ５４２のソースはグランドに接続され、トランジスタ５４２のゲートはライン５８８上の信号ＤＭＷＬに接続されれている。データＩ／Ｏライン５７４は信号ＤＭＷＬがハイのときプルダウン(pull down)される。
データＩ／Ｏライン５７４は更に列選択トランジスタ５４４のドレインに接続される。トランジスタ５４４のソースはノード５５１に接続される。トランジスタ５４４のゲートはライン５９０上の信号Ｙ０に接続される。
バッファ５５０内のデータはパスゲート５２２のソースに接続されている。パスゲート５５２のドレインはノード５５１に接続されている。バスゲート５５２はライン５９２上の信号ＤＩＮＬにより制御される。
センスアンプ５５４は又、ノード５５１に接続されている。センスアンプ５５４はライン５９４上の信号ＳＡＥＢにより制御される。センスアンプ５５４の出力はパスゲート５５６のドレインに接続されている。パスゲート５５６のソースはラッチ回路５５７に接続されている。パスゲート５５６はライン５９６上の信号ＳＡＲＤにより制御される。
ラッチ回路はインバータ５５８及び５６０を含む。インバータ５５８の入力はパスゲート５５６のソースに接続される。インバータ５５８の出力はインバータ５６０の入力に接続され、インバータ５６０の出力はパスゲート５５６のソースに接続されている。ラッチ回路５５７の出力は又、ＮＯＲゲート５６２の第１入力に接続されている。ＮＯＲゲート５６２の第２入力はライン５９８上の信号ＲＥＳＬＡＴＢに接続される。ＮＯＲゲート５６２の出力はトランジスタ５６４のゲートに接続されている。トランジスタ５６４のドレインはノード５５１に接続され、そのソースは接地されている。
トランジスタ５０８を介してビットライン１５２に接続されるデータＩ／Ｏライン５７６は同様に接続されている。従ってライン５７６はトランジスタ５４８のドレインに接続されている。トランジスタ５４８のソースは接地され、そのゲートはライン５８８上の信号ＤＭＷＬに接続される。トランジスタ５４６のドレインは又、データＩ／Ｏライン５７６に接続されている。信号Ｙ０はトランジスタ５４６のゲートに接続される。トランジスタ５４６のソースはノードＤＡＴＡ１  ５９１に接続され、この５９１は他の側のノード５５１に対応する。簡単のため、ＤＩＮバッファ５５０の対応するセット、センスアンプ５５４、ラッチ回路５５７及びノードＤＡＴＡ１  ５９１に接続される関係する回路は示していない。動作に関して、ＤＩＮバッファ５５０、パスゲート５５２、センスアンプ５５４、パスゲート５５６、ラッチ回路５５７、ＮＯＲゲート５６２及びトランジスタ５６４に類似する回路は同様に構成され、ノードＤＡＴＡ１  ５９１に接続される。
各データＩ／Ｏライン５７４、５７６は、それに接続されるビットラッチ／ベリファイロジック回路を有し、このロジック回路はデータＩ／Ｏライン５７４についてＮＡＮＤゲート５２４及びインバータ５２６、及びデータラインＩ／Ｏ５７６についてＮＡＮＤゲート５３４及びインバータ５３６を一般に具備している。データＩ／Ｏライン５７４について、パスゲート５２２のドレインはデータＩ／Ｏライン５７４に接続され、パスゲート５２２のソースはＮＡＮＤゲート５２４の第１入力に接続される。ＮＡＮＤゲート５２４の第２入力はライン５８２上の信号ＢＬＡＴＥＮに接続される。ＮＡＮＤゲート５２４の出力はインバータ５２６の入力に接続される。ＮＡＮＤゲート５２４及びインバータ５２６の入力パワーはライン５８０上の信号ＬＡＴＣＨＰＷＲに接続される。ライン５７８上の信号ＬＡＴＣＨＢはパスゲート５２２のゲートに接続される。インバータ５２６の出力はＮＡＮＤゲート５２４の第１入力、トランジスタ５１０のゲート、及びトランジスタ５３０のゲートに接続されている。トランジスタ５１０のドレインはライン５７７上の信号ＡＢＬＲＥＳ１に接続される。トランジスタ５１０のソースは接地されている。トランジスタ５３０のドレインはライン５８６上の信号ＤＬＰＷＲに接続される。トランジスタ５３０のソースはトランジスタ５２８のドレインに接続されている。トランジスタ５２８のゲートはライン５８４上の信号ＤＬＣＴＬに接続され、トランジスタ５２８のソースはデータＩ／Ｏライン５７４に接続されている。
ラッチ回路５２４及び５２６内でラッチされたデータ＝１状態は、ライン５７７上の信号ＡＢＬＲＥＳをプルダウンする。この論理１レベルはトランジスタ５１０をイネーブル(enable)とし、これによりライン５７７上に論理０レベルが生じる。トランジスタ５１０がイネーブルとなると、ライン５７７は接地され、これにより信号ＡＢＬＲＥＳは論理０レベルになる。トランジスタ５１４及び５１６はインバータを具備し、このインバータはトランジスタ５１０及び５１２と共にＮＯＲロジック機能を提供する。トランジスタ５１４はｐ−チャンネルトランジスタで、そのソースはＶCCに接続され、ドレインはｎ−チャンネルトランジスタ５１６のドレインに接続されている。ライン５７７はトランジスタ５１４及び５１６のドレインに接続されている。ｎ−チャンネルトランジスタ５１６のソースは接地され、トランジスタ５１４及び５１６のゲートライン５９９上の信号ＰＧＰＶＢに接続される。インバータ５１８及び５２０は直列に接続されている。ライン５７７はインバータ５１８に入力を提供する。インバータ５１８の出力はインバータ５２０の入力を与え、インバータ５２０の出力はライン５７９上の信号ＡＢＬＲＥＳを提供する。従って、ラッチ回路５２４及び５２６がロジック１レベルを格納しているときは常に、信号ＡＢＬＲＥＳは論理０レベルである。トランジスタ５１４はライン５７７のプルアップを提供し、これはトランジスタ５１０またはトランジスタ５１２をイネーブルにすることにより論理０レベルに駆動することができる。
トランジスタ５１６の目的は、ライン５９９上のデフォルト状態のＰＧＦＶＢが”ハイ”の期間中、トランジスタ５１０、５１２…の全ゲートをローにすることである。トランジスタ５１６がない場合、ライン５７７上のＡＢＬＲＥＳ１がフローティングとなる。この場合トランジスタ５１６はライン５７７がプルダウンされるように追加されている。アクティブモード中（ページプログラムモード中のプログラムベリファイ期間）、ライン５９９上のＰＧＰＶＢはアクティブ”ロー”で、トランジスタ５１６はオフ、トランジスタ５１４はライン５７７のプルアップを提供する。
信号ＬＡＴＣＨＢ、ＬＡＴＣＨＰＷＲ、ＢＬＡＴＥＮ及びＤＬＣＴＬにより制御される回路のミラー構成は、データＩ／Ｏライン５７６に接続されている。パスゲート５３２のゲートはライン５７８上の信号ＬＡＴＣＨＢに接続されている。パスゲート５３２のソースはＮＡＮＤゲート５３４の第１入力に接続される。ＮＡＮＤゲート５３４の第２入力はライン５８２上のＢＬＡＴＥＮに接続される。ＮＡＮＤゲート５３４の出力はインバータ５３６の入力に接続される。ライン５８０上の信号ＬＡＴＣＨＰＷＲはＮＡＮＤゲート５３４及びインバータ５３６に入力パワーを提供する。インバータ５３６の出力はＮＡＮＤゲート５３４の第１入力、トランジスタ５１２のゲート、及びトランジスタ５３８のゲートに接続されている。トランジスタ５３８のソースはトランジスタ５４０のドレインに接続される。トランジスタ５４０のゲートはライン５８４上の信号ＤＬＣＴＬに接続され、トランジスタ５４０のソースはデータＩ／Ｏライン５７６に接続されている。トランジスタ５１２のソースは接地され、トランジスタ５１２のドレインはライン５７７に接続されている。
ラッチ回路５２４及び５２６の出力はトランジスタ５３０のゲート及びトランジスタ５２２のソースに接続される。ライン５８６上の信号ＤＬＰＷＲはトランジスタ５３０のソースに接続される。トランジスタ５３０のドレインはトランジスタ５２８のソースに接続される。トランジスタ５２８のゲートはライン５８４上の信号ＤＬＣＴＬに接続される。トランジスタ５２８のドレインはデータＩ／Ｏライン５７４に接続される。トランジスタ５３０及びトランジスタ５２８の幅は６ミクロンで、長さは１．２ミクロンである。
トランジスタ５１０のドレインはライン５７７上に出力信号ＡＢＬＲＥＳ１を提供する。トランジスタ５１０のソースは接地され、トランジスタ５１０のゲートはノード６３０に接続されている。従って、ビットラッチの状態に依存して、信号ＡＢＬＲＥＳ１はグランドに短絡するか、又はトランズミッタ５１４によりプルアップされる。トランジスタ５１０の幅は３ミクロンで、長さは０．８ミクロンである。
トランジスタ５４４のドレインはデータＩ／Ｏライン５７４に接続され、ソースはデータライン６５０に接続されている。ライン５９０上の信号ＹＳＥＬはライン５９０上のトランジスタ５４４のゲートに接続される。ＤＩＮバッファ５５０はデータライン６５０に接続されている。センスアンプ５５４はデータライン６５０に接続され、トランジスタ５６４のゲートに制御信号を提供する。トランジスタ５６４のドレインはデータライン６５０に接続され、トランジスタ５６４のソースは接地される。従って、センスアンプ５５４の出力に応じて、トランジスタ５６４はデータライン６５０をグランドに接続する。
動作において、図１０に示されるフラッシュＥＥＰＲＯＭのページプログラム及び自動ベリファイ回路は、一連の動作段階(stages)においてページプログラム及びプログラムベリファイを実行する。動作段階は（１）データローディング段、（２）データプログラム段、（３）アレイデータリード段、（４）ビットラッチ段のリセット、及び（５）再試行段として一般化できる。フラッシュＥＥＰＲＯＭアレイのページプログラム及び自動ベリファイの動作は、データＩ／Ｏライン５７４を参照して説明される。ページプログラム及び自動ベリファイは、他のメモリセルに接続されているデータＩ／Ｏライン５７６を用いて同様に実行される。更に、ページプログラム及び自動ベリファイ回路は、フラッシュＥＥＰＲＯＭアレイ内のメモリセルのページをプログラムするのに必要な全てのデータＩ／Ｏラインについて同様な回路を含む。
データローディング段において、ライン５８０上の信号ＬＡＴＣＨＰＷＲ、ライン５７８上の信号ＬＡＴＣＨＢ、及びライン５８２上の信号ＢＬＡＴＥＮには、データラッチ回路５２４及び５２６の動作を活性化するために５ボルトが供給される。ライン５８０上の信号ＬＡＴＣＨＰＷＲはＮＡＮＤゲート５２４及びインバータ５２６に動作用電圧を供給する。ライン５８２上の信号ＢＬＡＴＥＮによりラッチ回路５２４及び５２６が入力を受信可能となる。ライン５７８上の信号ＬＡＴＣＨＢはパスゲート５２２をイネーブルとし、パスゲート５２２はデータＩ／Ｏライン５７４とＮＡＮＤゲート５２４の第１入力を接続する。ライン５７２上の信号ＢＬＩＳＯＢは論理０レベルでトランジスタ５０２をディセーブル(disable)とする。トランジスタ５０２をディセーブルとすることにより、データＩ／Ｏライン５７４をメタルライン１４３（ＭＴＢＬ０）から分離する。ライン５８４上の信号ＤＬＣＹＬは論理０レベルでパスゲート５２８をディセーブルとする。信号ＤＬＰＷＲは論理１レベルでＶCCの電圧を有し、これは約５ボルトである。ライン５８８上の信号ＤＭＷＬは論理０レベルで、トランジスタ５４２がデータＩ／Ｏライン５７４をグランドに接続するのを防止する。ライン５９０上の信号Ｙ０は論理１レベルでトランジスタ５４４をイネーブルとしトランジスタ５４４を導通する。信号Ｙ０はデコードされた信号で、この信号によりデータＩ／Ｏライン５７４はイネーブルとされ、データローディング段動作期間中、１６個のＤＩＮバッファの対応する１つ（例えばバッファ５５０）がアクセス可能となる。ライン５９２上の信号ＤＩＮＬは論理１レベルでパスゲート５５２をイネーブルとする。ＤＩＮバッファ５５０からの入力データはバスゲート５５２を介してデータＩ／Ｏライン５７４に転送される。
入力データがデータＩ／Ｏライン５７４に転送されると、ＤＩＮバッファ５５０からのデータはＮＡＮＤゲート５２４の第１入力に転送される。ＤＩＮバッファ５５０からのデータが論理１レベルの場合、ＮＡＮＤゲート５２４の第１入力に受信された論理１レベルにより論理０レベルが生じる。ＮＡＮＤゲート５２４の論理０レベル出力は、インバータ５２６への入力を提供し、インバータ５２６は論理１出力を提供する。ＮＡＮＤゲート５２４及びインバータ５２６はビットラッチ回路５２４及び５２６を有し、これはＮＡＮＤゲート５２４に第１入力に受信したデータをラッチする。インバータ５２６の出力での論理１レベルにより、パスゲート５３０をイネーブルとし、ライン５８６上の信号ＤＬＰＷＲをパスゲート５２８に転送する。しかしデータローディング段動作期間中、ライン５８４上の信号ＤＬＣＴＬは論理０で、これによりパスゲート５２８は信号ＤＬＰＷＲのデータＩ／Ｏライン５７４にを導通を不可能とする。
他の場合、ＤＩＮバッファ５５０からのデータが論理０レベルのとき、ＮＡＮＤゲート５２４の第１入力に受信した論理０レベルにより論理１出力が発生する。ＮＡＮＤゲート５４の論理１レベルはインバータ５２６への入力を提供し、インバータ５２６は論理０出力を提供し、この出力はラッチ回路５２４及び５２６に格納される。インバータ５２６の出力での論理０レベルはパスゲート５３０をディセーブとし、パスゲート５２８を介したライン５８６上の信号ＤＬＰＷＲのデータＩ／Ｏライン５７４への転送を禁止する。従って、ＮＡＮＤゲート５２４及びインバータ５２６のビットラッチ回路は、ＤＩＮバッファ５５０からの転送データに対応する入力データの論理１レベル又は論理０レベルを格納する。
１０２４ビットの全ページ用のビットラッチは一度に１６ビットがロードされる。ＤＩＮバッファ５５０からの入力データが、全ビットラインについてのデータローディング段の実行の後にビットラッチ回路５２４及び５２６にロードされると、ベリファイシーケンスが実行され、データライト段がそれに続く。予備ライトベリファイループ（これは後述のシーケンスに従う）は、ユーザがページを同一データで２回プログラムするようなプログラミングセルの消耗を防止する。論理１がラッチ回路５２４及び５２６に格納されたときにデータライトが起こる。論理１レベルデータ＝１状態がＤＩＮバッファ５５０から受信されると、データライト段の期間に論理１レベルがフラッシュＥＥＰＲＯＭアレイの１セルにプログラムされる。論理０レベル（データ＝０）がＤＩＮバッファ５５０から受信され、ラッチ回路５２４及び５２６に格納された場合、データライト段はフラッシュＥＥＰＲＯＭのメモリセルをプログラムしない。
本実施例において、論理１レベル（データ＝１）はＤＩＮバッファ５５０から転送され、ビットラッチ回路５２４及び５２６に格納される。データライト段の実行中、ライン５８７上の信号ＬＡＴＣＨＢはディセーブルとなる。ライン５７８上の信号ＬＡＴＣＨＢは論理０に設定され、ラッチ回路５２４及び５２６への入力をディセーブルとする。信号ＬＡＴＣＨＰＷＲは高い電圧に設定され、ラッチ回路５２４及び５２６に電力を供給する。信号ＬＡＴＣＨＰＷＲは高い電圧に設定され、ラッチ回路５２４及び５２６に電力を供給する。ライン５２８上の信号ＢＬＡＴＥＮは高い電圧レベルに設定され、ラッチ回路５２４及び５２６の出力をイネーブルにする。ライン５７２上の信号ＢＬＩＳＯＢは高い電圧レベルに設定されトランジスタ５０２をイネーブルにする。トランジスタ５０２はデータＩ／Ｏライン５７４をメタルライン１４３に接続する。ライン５８４上の信号ＤＬＣＵＬは高い電圧レベルに設定されパスゲート５２８をイネーブルとする。ライン５８６上の信号ＤＬＰＷＲは高い電圧に設定される。ライン５９０上の信号Ｙ０は論理０レベルでありトランジスタ５４４をディセーブルとする。信号ＤＩＮＬは論理０レベルで、ＤＩＮバッファ５５０からの入力データをデータＩ／Ｏライン５７４から切り離す。信号ＳＡＥＢは論理０レベルでセンスアンプ５５４をディセーブルとする。
制御信号が正常に初期化され、データプログラム段を実行すると、ライン５８６上の信号ＤＬＰＷＲはデータＩ／Ｏライン５７４に転送される。信号ＤＬＰＷＲはプログラムパワーを提供し、フラッシュＥＥＰＲＯＭアレイ内のメモリセルをプログラムする。従ってラッチ回路５２４及び５２６がデータ＝１状態でラッチされると、パスゲート５３０はイネーブルとなり、信号ＤＬＰＷＲをパスゲート５２８を介して通過させる。ライン５７２上の信号ＢＬＩＳＯＢは適切な高さのパルスによりトランジスタ５０２をイネーブルとし、信号ＤＬＰＷＲをメタルライン１４３に接続する。
図８において、ライン１４１又はＢＬＴＲ０上の信号ＢＬＴＲ１をイネーブルとすることで、セルの列をメタルライン１４３に接続し、信号ＤＬＰＷＲからプログラム電圧を提供し、８ボルトに変化したワードライン上の特定メモリセル１２５又は１２９をプログラムする。例えば、ライン１４１上のＢＬＴＲ１が選択され、ワードラインＷＬ１が選択された場合、信号ＤＬＰＷＲからのプログラミング電圧はメモリセル１２５に方向付けられる。
ラッチ回路５２４及び５２６からのデータがメモリセルにプログラムされた後、その回路はデータがデータライト段において適切にプログラムされたことを自動的にベリファイする準備が整う。これはビットラッチをリセットするかを決定するために、以下のような５ステップシーケンス（Ａ〜Ｅ）を含む。
ステップＡ
関係するセンスアンプを介して不揮発性ビットから実データをリード（１６個のセンスアンプは全て同時に活性化される。即ち１６ビットが同時にリードされる）。検知結果は図１０のラッチ５５７内に格納される。例えば図１０において、特定されたワードラインから、選択されたセルをベリファイするには、ＢＬＩＳＯＢ（５７２）はハイ（ＯＮ）でなければならず、選択されたＹ（５４４、５４６及び１４個より多いそれらデバイス）はオン、センスアンプ（ＳＡ）５５４（及び１５個の他のＳＡ）は活性化され、ＳＡＲＤ（５９６）がハイとなることにより、検知結果はラッチ（５５７）まで到達し、このリードステップ期間中に５２４及び５２６から構成されるビットラッチが妨害されないように、ＬＡＴＣＨＢ（５７８）、ＤＬＣＴＬ（５８４）は低電圧（ＯＦＦ）である。選択されたセルの閾値電圧はＳＡ（５５４）がセンスを行うために十分な時間の後、ＳＡ（５５４）によりデータライン５７４を介して検知され、ラッチ５５７に格納される。プログラミングの後、セルの閾値電圧（ＶＴ）は（ＳＡ５５４がそのセルが低いＶＴ状態であると知らせることができる程度に）十分低く、インバータの出力（５６０又は５５８の入力）は低レベルを反映することになり、ＳＡＲＤ（５９６）はオフ、そしてＳＡ（５４４）はディセーブルとなる。低レベルがラッチ（５５７）に格納され、次の４ステップにどんなリードがその結果起きたかは、新たなロケーションの再リードが必要となるまで問題ではない。プログラミングの後、選択されたセルＶＴはまだハイがリードされ、インバータ５６０の出力はハイレベル、即ち論理１レベルがラッチ５５７にラッチされる。いづれにせよデバイス５６４はオフであるから、ハイ又はローにラッチされたラッチ５５７がデバイス（５６４）に影響しないように、ＲＥＳＬＡＴＢ（５９８）はこのステップでハイである。
ステップＢ
データライン（選択又は非選択のライン全てを含む）を放電する。このステップの目的はステップ（Ｄ）において説明される。データライン５７４の放電の仕方は、全てのセンスアンプがディセーブル状態で、ＤＭＷＬ（５８８）をハイに活性化し、ＬＡＴＣＨＢをローにし、ＤＬＣＴＬをローにし、５６４及び５５２をオフにする。トランジスタ５８８はデータライン５７４に格納された電荷を放電する。放電シーケンスが高速に行われるように、ＢＬＩＳＯＢ（５７２）はローレベルで長いメタルビットライン（ＭＴＢＬ０）をデータライン（５７４）から分離する。
ステップＣ
データラインを（関係するビットラッチに応じて選択的に）プリチャージする。このステップの目的はステップＤ）において説明される。このステップ中、ＤＭＷＬはローレベル、ＢＬＩＳＯＢはまだローレベルであり、同一ワードラインの選択された１６データライン及び他の非選択データラインを高い電圧レベルにプリチャージすべきか否かは、そのビットラッチに格納されたデータにより決定される。例えば図１０において、このステップ中、ＬＡＴＣＨＢ（５７８）はまだオフ、ＤＬＣＴＬ（５８４）はローからハイに切り替わり、データライン５７４はインバータ５２６の出力（これは５３０のゲート）がハイレベルにラッチされている場合、ＤＬＰＷＲ（この例ではＶCCレベル電源）をデバイス５３０及び５２８を介してデータライン（５７４）に接続することによりハイレベルにプリチャージされる。さもでなければ、ＤＬＰＷＲはデータライン５７４をハイレベルにプリチャージできず、データライン５７４はステップＢのために依然として低電圧レベルとなる。
ステップＤ
ビットラッチをリセットするか否か。このステップ中、ＬＡＴＣＨＢはローレベルからハイレベルに切り替わり、ビットラッチ（これはインバータ５２４及び５３６により構成される）をリセットするために、ＲＥＳＬＡＴＢ（５９８）はインバータ５６０の出力が（ステップＡから）ロー（にラッチされていれば）であれば、５６４をオンにすることによりハイからローに切り替わる。選択されたセルは既にローＶＴであるから、次のプログラミングの高い電圧パルスシーケンスのために、ビットラッチの内容はリセットされるべきであり、ローＶＴであるセルはローＶＴに再びプログラムされるべきではない。ビットラッチが以前のベリファイループステップ（Ｄ）からリセットされているか、又は第１プログラミングシーケンスの前でもリセット状態であったときがある。このような場合、次のリセットビットラッチステップは前者の場合ではビットラッチに何等影響することはなく、後者の場合では選択されたセルが高ＶＴであるか否かはそのビットラッチに影響しない。なぜなら、セルが高ＶＴの場合、ビットラッチをリセットするものはなく（ステップＡ及びＤから５６４はオフである）、ビットラッチはリセット状態であるからである。セルがローＶＴの場合、ビットラッチを再びリセットしてもビットラッチの内容に何等変化を与えない。この構成には比較回路は必要とならない。
ＬＡＴＣＨＢはフラッシュＥＥＰＲＯＭの設計にて全てのビットラッチに対するグローバル信号であり、５２２、５３２…のゲートでのハイレベルにより、全てのビットラッチが、関係するデータラインにトーク(talking)することになる。つまり、インバータ５２６の出力ノードが、関係するデータライン（例えば５７４）と電荷を分け合うことになる。インバータ５２６の駆動能力は、適切なデータがビットラッチに設定できるように（インバータ５２６に対して勝るように）弱いデバイスとして設計されている。従って、ＬＡＴＣＨＢ（５２８）がハイのとき、弱いインバータ（５２６）には、ビットラッチの存在性が曖昧となる問題が発生する。
ステップ（Ｂ）及び（Ｃ）の目的は、ステップ（Ｄ）に移行する前に、即ちＬＡＴＣＨＢ（５７８）がローからハイへ切り替わる前に適切な電圧レベルをデータラインに与え、この回路が前述したように無くとも正常な動作を保証するように設計された場合でも、あらゆる”電荷共有の問題を避けることである。ステップ（Ｂ）の期間中、全データラインはローレベルに放電され、ステップ（Ｃ）では、関係するビットラッチがハイレベルを”格納している”データラインのみがハイレベルにプリチャージされる。従ってステップ（Ｂ）及び（Ｃ）は、ここでは安全を見込んだ設計による追加ステップである。
ステップＥ
全データラインを再び放電する。プログラミングベリファイイングについて次のワードに移行する前に（つまり、新たなワードを充電しステップ（Ａ）からステップ（Ｄ）を繰り返す前に）プログラムベリファイ動作は、この時点で首尾良く完了しており、ロジック制御は残りの電荷を全データラインから取り除き、新たなワードに切り替わる。例えばこのステップで、ＬＡＴＣＨＢ（５７８）はローレベルで、ＲＥＳＬＡＴＢ（５９８）はハイレベル，ＤＭＷＬ（５９８）はハイレベル、そしてＢＬＩＳＯＢ（５７２）はハイレベルである。
従って、本発明のページプログラム及び自動ベリファイ回路は、プログラムされたメモリセルの自動ベリファイという固有の特徴を提供する。ラッチ回路５２４及び５２６はＤＩＮバッファ５５０から受信した入力データを格納する。ラッチ回路５２４及び５２６に格納されたデータはＡＢＬＲＥＳ１を制御する。このＡＢＬＲＥＳ１はプログラムする必要のあるセルが１つまたは複数ある場合に論理０レベルに設定される。信号ＡＢＬＲＥＳ１は、そのメモリセルがプログラムベリファイシーケンス中にベリファイされるまで（このシーケンスはラッチ回路５２４及び５２６が論理０レベルにリセットし、信号ＡＢＬＲＥＳ１を正常にプログラムされたメモリセルを示す論理１レベルにリセットする）、論理０レベルを維持する。プログラムベリファイシーケンスは自動である。
ライン５９９上の信号ＰＧＰＶＢは論理０レベルで、自動ベリファイシーケンス中にライン５７７に電荷を与える。ラッチ回路５２６及び５２４がリセットされるとき、トランジスタ５１０はディセーブルにされ、ライン５７７上の電荷はすぐさまグランドに放電される。ライン５７７上の信号ＡＢＬＲＥＳ１は論理１レベルとなる。この論理１レベルはインバータ５１８に入力を与え、このインバータはインバータ５２９に対する入力を提供するための出力を発生し、インバータ５２０はライン５７９上に信号ＡＢＬＲＥＳの論理１レベル出力を供給する。ライン５７９上の信号ＡＢＬＲＥＳの論理１レベルは、ページプログラムドベリファイ信号を提供し、この信号はメモリセルのページがプログラムベリファイを合格したことを意味する。
アレイのメモリセルページ内の各メモリセルはトランジスタ５１０を活性化し、これによりライン５７７上の信号ＡＢＬＲＥＳ１はローレベルとなる。従って、アレイのメモリセルページ内でのプログラムベリファイを合格しなかったメモリセルは、何れも出力信号ＡＢＬＲＥＳを論理０レベルにする。ライン５７９上のＡＢＬＲＥＳの論理０レベルは、そのアレイのメモリセルのページ内の少なくとも１つのメモリセルが、正常にプログラムされずにベリファイされたことを意味する。従って、正常にベリファイされたなかったメモリセルは何れも、ライン５７９上の信号ＡＢＬＲＥＳを論理０レベルにする。全メモリセルが正常にプログラム及びベリファイされると、ライン５７９上の信号ＡＢＬＲＥＳは論理１レベルになる。
動作において、プログラムに失敗したセルは信号ＡＢＬＲＥＳが論理１レベルになるまで、再プログラム及びベリファイされる。再試行回数は、あるページがプログラムベリファイで繰り返し不良の場合に、プログラムシーケンスのルーピング(looping)を防ぐために制限されている。
図１１は図８のフラッシュＥＥＰＲＯＭ回路のプログラムフローを説明するためのフローチャートである。処理はデータがプログラムされるセクタ（例えばセクタ１７０−１）を消去することにより開始する（ブロック７００）。そのセクタを消去した後、消去ベリファイ動作が行われる（ブロック７０１）。次に、０か１のページ番号、及び１〜８のセグメント番号が入力アドレスに応じてホストコンピュータにより設定される（ブロック７０２）。
ページ番号及びセグメント番号を設定した後、ページバッファにはそのページのデータがロードされる（ブロック７０３）。このページバッファには特定用途のプログラムに応じてＮビットデータ、又は単一バイトデータをロードできる。次に、ユーザが予備消去しない場合、即ち同一データを再プログラムして、どのセルがプログラミングを必要とするかを判断しない場合、ベリファイ動作が行われる（ブロック７０４）。ブロック７０４での初期ベリファイの後、アルゴリズムはインデックス”ｉ”を１に設定することにより、プログラムリトライパターンの設定に進む（ブロック７０５）。プログラム（ＰＧＭ）パルスが図１０で説明したように供給される（ブロック７０６）。ここでパルスはインデックス”ｉ”により定義される形状を有する。前述したように、この形状は前述したように特定用途に応じて選択されたパターンに従って、パルス高とパルス幅の両方で制御される。形状”ｉ”を有するプログラムパルスの後、アルゴリズムはページバッファのパスしたビットをベリファイしリセットする（ブロック７０７）。ベリファイループの後、アルゴリズムはバッファ内の全ページビットがリセットされたかを判断する（ブロック７０８）。リセットされていないビットがあれば、アルゴリズムはインデックス”ｉ”をテストすることにより、最大数のリトライが行われたか判断する（ブロック７０９）。最大数に達していない場合は”ｉ”がインクリメントされ（ブロック７１０）、アルゴリズムはブロック７０６に戻り、リトライパターンにおける次の形状を有する次のプログラムパルスを供給する。アルゴリズムはこのようにして、ページバッファ内の全ページビットがオフされるまでループする。このとき、ブロック７０８でアルゴリズムはブロック７１１に分岐し、そこでプログラムされるセクタが完了したか判断する。完了している場合、アルゴリズムは終了する。完了していない場合、アルゴリズムは図示するように点Ａにループし、そしてブロック７０２に戻り、プログラムされる次のページのページ番号及びセグメント番号を設定する。
最大数のリトライの後もページがプログラムされなかった場合、ブロック７０９でのテストはこの状況を検出しエラーを通知する（ブロック７１３）。アルゴリズムはブロック７１２で終了する。
以上、新たなプログラミング手法及び新たなフラッシュＥＥＰＲＯＭセル及びアレイ構成が提供された。この構成は独特のセル配置により得られる高集積度アレイを提供する。隣接する２つの局部ドレインビットラインは１つの共通ソースビットラインを共用する。また、この配置はアレイ内の各２列のセルについて単一のメタルラインの使用を可能とする。更にこの配置は共用ワードラインを用いることにより縮小され、、ワードラインのピッチはメインアレイのサイズ決定に影響しない。セクタ消去は本発明の区分けできる構成を用いて容易にできる。また、ページプログラム及び自動ベリファイ回路は、メモリセルの高効率で正確なプログラムを提供する。従って、信頼性の高い高性能フラッシュメモリアレイがこれらの技術を使用することにより達成できる。
プログラムリトライに可変パルス高及びパルス幅のパルスパターンを使用することで、フラッシュＥＥＰＲＯＭアレイの性能は実質的に増加する。特にオーバープログラミングが減少し、平均プログラミング時間が向上され、非選択セルに対する妨害が制限され、プログラミングが遅すぎる又は速すぎるアレイ内のセルによる不良はより少ない。大きさが問題となる現在の状況では、僅かな大きさの変更により、フローティングゲートセルのプログラミング速度は大きく異なる。本発明のアルゴリズムはアレイ内トランジスタの駆動特性における問題となる性能を、設計規則として実質的に１／３ミクロン以下に改善する。
前述の本発明による好適実施例は単に説明を目的として示された。以上の説明は本発明を開示された形式に精細に限定する意図はない。当業者は他の様々な修正や変更を施すことができる。本発明は以下に示す請求の範囲により定義される。
【図１】
0003807744.tif 000004
【図２】
0003807744.tif 000005
【図３】
0003807744.tif 000006
【図４】
0003807744.tif 000007
【図５】
0003807744.tif 000008
【図６】
0003807744.tif 000009
【図７】
0003807744.tif 000010
【図８】
0003807744.tif 000011
【図９】
0003807744.tif 000012
【図１０】
0003807744.tif 000013
【図１１】
0003807744.tif 000014