本発明の種々の態様が好適に実行されるメモリアレイを作る際に利用可能な特殊なEprom、EEprom半導体集積回路の構造が多く存在する。
「分離チャンネル」EEpromセル
好適なEEpromの構造が一般的に、集積回路の断面図である図1および図2に示されている。この好適な構造を簡単に説明すると、2つのメモリセル11と13は薄くpドープされた基板15上に形成されている。濃くnドープされた埋込み領域17はセル11と13の間にあり、セル11のドレインとセル13のソースとして働く。同様にして、別のnドープされた埋込み領域19はセル11のソースおよび隣接するセルのドレインであり、そして別のnドープされた領域21においても同様である。
各メモリセル11と13は、それぞれ導電性のフローティングゲート23と25を含んでおり、それは一般的にはポリシリコン材料からなる。これらのフローティングゲートの各々は、誘電体材料により囲まれることで、互いにそして別の構造の導電性の要素から絶縁されている。コントロールゲート27は、セル11とセル13の両方にフローティングゲートと基板自体から絶縁されるように伸びている。図2に示されているように、導電性の帯29と31は、互いにそして他の構造の導電性の要素から絶縁されるように付加的に設けられており、消去ゲートとして働く。そのような一対の消去ゲートは、各メモリセルのフローティングゲートを囲み、そしてそれらは消去用の誘電体層により分離されている。セルは、厚いフィールド酸化領域、例えば領域33,35,37として図1の断面図、および領域39や41として図2に示されているように分離されている。
メモリセルは、基板15からフローティングゲートに、例えばメモリセル13のフローティングゲート25へ、電子を移動させることによってプログラムされている。フローティングゲート25上の電荷は、濃くpドープされた領域43から誘電体を横切って、フローティングゲートへ電子を移動させることによって増加させられる。電荷は、フローティングゲートからそれと消去ゲート29と31間の誘電体を介して、フローティングゲートから除去される。この好適なEEpromの構造とその製造プロセスは、同時係属出願中の米国特許出願第323,779号(特許文献2)、ジャック エイチ.ユアンとエリヤホウ ハラリの出願であって、1989年3月15日に出願されたものに詳細に記載されており、それはここにおいて参照として合体されている。
図1と図2に図示されたEEprom構造は、「分離チャンネル」形である。各セルは、2つのトランジスタT1とT2が図3に示すように直列に接続されている独立したトランジスタとして見ることができる。T1トランジスタ11aは、図1のセル11のチャンネルの長さL1に沿って形成されている。それは可変しきい値電圧VT1を持つ。T1トランジスタ11aに直列にT2トランジスタ11bがあり、それはチャンネルL2の部分に形成されている。これは約1Vの固定しきい値電圧VT2を持つ。図3の等価回路の要素は、図1および図2の対応する参照番号にプライム(′)を付加して用いてある。
図3の等価回路から最も良く理解されるように、EEpromセルのT1のフローティングゲート23′の電荷レベルは、コントロールゲート27′で動作するとき、T1トランジスタ11aのしきい値電圧VT1に影響する。かくして、1つのセルの中にいくつかのメモリ状態がフローティングゲート上の適量の電荷により、セルの中にプログラムされた良く規定されたしきい値電圧に対応して規定される。プログラミングは、ある一定の時間、セルのコントロールゲート27′と同様にドレイン17′とソース19′に適切な電圧を印加することによって実行される。
アドレス可能なフラッシュEEpromアレイ
本発明の種々の態様は、集積回路チップ中のフラッシュEEpromセルのアレイに通常応用される。図4は、個々のアドレス可能なEEpromセル60のアレイを略図的に示したものである。各セルは図3に示されたものと同等のものであって、1つのコントロールゲート、ソースとドレインおよび消去ゲートを持つものである。複数の個々のメモリセルは、行および列で作られている。各セルは選択的にその行と列を同時に付勢することでアドレスされる。列62は、例えば、第1のメモリセル63、隣接する第2のメモリセル65を含み、以下同様である。第2の列72は、メモリセル73,75を含み、以下同様である。セル63と73は行76に位置しており、セル65と71は別の隣接する行に位置し、以下同様である。
各々の行に沿ってワードラインがその行のすべてのセルのコントロールゲートに接続されている。例えば、行76はワードライン77を持ち、次の行はワードライン79を持つ。行デコーダ81は、入力ライン83上のコントロールゲート電圧VCGを行の選択したワードラインに沿ってすべてコントロールゲートに接続する。
各列に沿って、すべてのセルは、ソースライン、例えば91等によって接続されたソースと、ドレインライン、例えば93等によって接続されたドレインをもつ。行に沿ったセルは、それらのソースとドレインによって直列に接続されているので、1つのセルのドレインは隣接するラインのソースでもある。かくして、ライン93は列62のドレインラインと同様に列72のソースラインである。列デコーダ101は、入力ライン103上のソース電圧VS をすべてのソースに接続し、入力ライン105のドレイン電圧VD を選択した列に沿ったすべてのドレインに接続する。
各セルはそれが位置する行と列によってアドレスされる。例えば、セル75がプログラミングまたは読み出し用にアドレスされる場合、適当なプログラミングまたは読み出し電圧が、セルのコントロールゲート、ソースおよびドレインに供給されなければならない。内部アドレスバス111上の1つのアドレスが、セル75のコントロールゲートに接続されているワードライン79にVCGを接続するための行レコーダ81をデコードするために用いられる。同じアドレスは、VS をソースライン93に、VD をドレインライン95に接続するための列デコーダ101をデコードするために用いられ、それらはそれぞれセル75のソースとドレインに接続される。
以下に詳細に記載する本発明の1つの態様は、複数のメモリセルの並列プログラムミングおよび読み出しの実行である。複数の列を同時に選別するためには、列デコーダは、ソースマルチプレクサ107とドレインマルチプレクサ109の切換えを制御する。このように、選択された複数の列は、それらのソースラインとドレインラインをVS とVD にそれぞれ接続されることになる。
各セルの消去ゲートへのアクセスは、コントロールゲートのそれと類似している。1つの実施形態において、例えば、113,115または117等の消去ラインは、行の各セルの消去ゲートに接続される。消去デコーダ119は、内部アドレスバス111上のアドレスをデコードし、入力ライン121上の消去電圧VEGを選択的に消去ラインに接続する。これにより各セルの行を個々にアドレスすることが可能になり、例えば、適切な電圧を消去ライン113を介して消去ゲートに印加することにより、行76を同時に(フラッシュ)消去することができる。この場合、フラッシュセルはメモリセルの1つの行からなる。しかしながら、他のフラッシュセルの実施形態が可能であって、多くの応用においては、一度に多くのセルの行の同時消去がなされる。
フラッシュEEpromシステム
図4に示したアドレス可能なEEpromアレイ60は、図5に示す本発明の大形の多状態フラッシュEEpromシステムの部分を形成している。この大形のシステムにおいて、EEprom集積回路チップ130は、インターフェース150を介してコントローラ140によって制御される。コントローラ140それ自身は、中央マイクロプロセッサ装置160と通信状態である。
EEpromチップ130は、アドレス可能なEEpromアレイ60、シリアルプロトコルロジック170、ローカルパワー制御回路180と種々のプログラミングおよび読み出し回路190,200,210,220,230および240からなる。
コントローラ140は、適当な電圧とコントロール信号およびタイミングを供給することによって、EEpromチップ130の機能を制御する。表1および2は、EEpromセルの種々の動作モードの電圧条件の典型的な例を示している。アドレス可能なEEpromアレイ60は、コントローラ140により直接的電力供給されるか、図5に示されているように、ローカルパワー制御180によってチップ上でさらに調整されている。コントローラ140とチップ130間のコントロールとデータのリンクは、シリアルインライン251とシリアルアウトライン253を介して行われる。クロックタイミングは、ライン255を介してコントローラから供給される。
EEpromチップ130の通常の動作では、コントローラ140はチップ130にシリアルインライン251を介して直列の信号の流れを供給する。前記信号は制御、データ、アドレスとタイミング情報を含んでおり、シリアルプロトコールロジック170によってソートされる。適当なタイムシーケンスに、ロジック170は、種々の制御信号257をチップ130上の種々の回路を制御するために出力する。それは内部アドレスバス111を介して、アドレスされたセルをコントローラからの電圧に接続するためにアドレスを送る。その間に、動作がプログラミングであれば、データはアドレスされたセルをプログラムするために、シリアルデータライン259を介して一連の読み出し/プログラムラッチとシフトレジスタ190に送られ、用いられる。
参照セルを用いる読み出し回路および技術
EEpromの動作において、セルのメモリ状態を正確かつ高い信頼性で決定することは極めて重要である。その理由は、すべての基本的な機能、例えば、読み出し、消去ベリファイおよびプログラムベリファイはそれに左右されるからである。本発明のEEpromチップ130の改良された新規の読み出し回路220と技術により、柔軟性をもつ多状態EEpromが可能となる。
図3に関連して議論したように、フローティングゲート23′上のプログラムされた電荷は、そのセルのプログラムされたしきい値電圧VT1を決定する。一般的に、VT1は、フローティングゲート23′上の負の電荷量にしたがって増減する。前記電荷は、VT1がVT2より減少しさらに負になる場合、正の値(デプレッションモード)まで減少させることも可能である。VT1の最大および最小の値は、その装置材料の誘電体の強度によるものである。VT1の広がりは、メモリ状態が形成されるであろうしきい値電圧ウィンドを規定する。
同時係属出願中の米国特許出願第204,175号には、しきい値電圧VT1の最大ウィンド内に規定されるメモリ状態を持つEEpromセルが開示されている。全しきい値電圧ウィンドは、しきい値電圧の負の領域を含むものであり、さらに通常の正の領域を含む。増大されたウィンドにより、EEpromセルの多状態を形成するメモリスペースがさらに大きくなる。
図6と図7は、それぞれ、しきい値ウィンドが2状態のメモリおよび4状態のメモリセルに区分けされるように示している。(もちろん、前記ウィンドを3状態メモリに区分けしたり、またはディジタルメモリではなくアナログの連続モードのウィンドに区分けすることも可能である。)
まず、最初に図6を参照すると、実線343はプログラミング時間の関数としてのVT1を示している。しきい値電圧ウィンドは、VT1の最小と最大値によって決められるものであり、その最大と最小は消去状態レベル345と完全にプログラムされたレベル347の各々によって規定される。2状態メモリは、ウィンドをブレイクポイントしきい値レベル349を用いる2つの2等分する346と348を区分けすることによって設けられる。かくして、セルは、領域346(もしくは領域348)内のそれぞれにVT1でプログラムされる場合、メモリ状態は0(もしくは状態1)になると考えられる。
通常の消去/プログラムサイクルは、セルのしきい値電圧をその消去状態レベル345に下げる消去から開始する。引き続く繰り返しプログラミングは、しきい値電圧VT1を望ましいレベルに増加させるように用いられる。そのセルがプログラムされようとする状態に対応する一定の時間アドレスされたセルに連続的にプログラミング電圧を印加するよりも、各パルス後に生じる読み出し動作で繰り返しの短いパルスのプログラミング電圧を印加し、それが望ましいしきい値電圧レベルにプログラムされた時を決定し、その時間にプログラミングが終了することが好ましい。プログラミング電圧とパルスの接続時間は、前記パルスが種々の領域を敏速にVT1の電圧に進ませるが、各パルスはどの領域でも行き過ぎないように充分に精巧なものである。これにより電圧や電界に関連するセルに加えられるストレスが最小になり、したがって、その信頼性を向上させることになる。
図7Aは、4状態の場合が示されており、ここにおいてしきい値電圧ウィンドは、ブレイクポイントレベル352,354,356により4つの領域351,353,355,357に各々区分けされている。セルは、そのVT1がそれぞれ対応する領域351,353,355もしくは357内にあるようにプログラムされれば、状態「3」,「2」,「1」もしくは「0」になるとされる。4状態のセルは、2ビットデータを蓄積することができる。かくして、4つの状態はそれぞれ、(1,1)、(1,0)、(0,1)および(0,0)にコード化することができる。
一般的に、各EEpromセルがKの状態を蓄積すれば、しきい値ウィンドは少なくともK−1のしきい値レベルをもつK領域に区分けされる。かくして、1つのみのブレクポイントレベルには2状態のメモリが必要であり、3つのブレイクポイントレベルには4状態のセルが必要である。
原理的には、しきい値電圧ウィンドは多数のメモリ状態に分割される。例えば、最大16Vのしきい値ウィンドを持つEEpromには、ほぼ1/2V間隔で32に分割することができるであろう。実際、従来のEEprom装置は、2つの状態または各セルあたり1ビットを蓄積するのみであって、信頼性も低く寿命も短いものである。より小さいしきい値ウィンドで動作するものとは別にしても、従来の装置は、EEprom装置特有の他の2つの問題を解決できないでいる。どちらの問題とも、フローティングゲートの電荷量に不確実性に関するものであり、よってセルにプログラムされるしきい値電圧VT1の不確実性になる。
第1の問題は、装置が消去/書き込みのサイクルを行う度に装置が受ける耐久性に関連するストレスに関するものである。フラッシュEEprom装置の耐久性は、所定の回数のプログラム/消去サイクルに対する抵抗力である。従来のフラッシュEEprom装置の耐久性を制限する物理的現象は、装置の活性化誘電体フィルムの電子の捕獲である。プログラミング中に、電子は基板からフローティングゲートに誘電体のインターフェースを介して注入される。同様に、消去中、電子は誘電体のインターフェースを介してフローティングゲートから消去ゲートに引き出される。どちらの場合も、いくつかの電子は誘電体インターフェースにより捕獲される。捕獲された電子は引き続くプログラム/消去サイクルにおいて印加された電界に反対することにより、プログラムされたVT1を低い値にまたは消去されたVT1を高い値にシフトさせる。これは、図8Aに示されているように、従来の装置の状態「0」と「1」間の電圧「ウィンド」をしだいに閉じていくことが理解できる。約1×104 のプログラム/消去サイクルを越えると、ウィンドが狭くなるということは、読み出し回路が誤動作を招くようになる。このようなサイクルが続けば、最終的に装置は次第に誘電体の損傷に起因する突然の損傷を受けることになる。これは通常、1×106 および1×107 サイクルの間に発生し、装置の本来備わるブレイクダウンとして知られている。従来のEEprom装置においては、ウィンドが狭くなることは、約1×104 のプログラム/消去サイクルに実際の耐久性を制限することになる。この問題は、多状態メモリが実行される場合、VT1をより正確に設定することが必要とされるため、より重要な問題となる。
第2の問題は、フローティングゲートにおける電荷の維持に関するものである。フローティングゲート上の電荷は、一定期間にわたる漏洩によってある程度減少する傾向にある。これによりしきい値電圧VT1は時間経過にしたがってより低い値にもシフトされることになる。図8Bは、VT1の減少を時間の関数として図示している。装置の寿命期間に、VT1は1V程度シフトする。多状態装置において、これはメモリを1または2状態シフトさせることになる。
本発明はこれらの問題を解決し、多状態の実施形態においても種々の状態を確実にプログラムおよび読み出しする回路および技術を提供する。
あるセルのメモリ状態は、そこにプログラムされているしきい値電圧VT1を測定することによって決定されるであろう。それと代替的に、同時係属出願中の米国特許出願第204,175号に述べられているように、メモリ状態は、それぞれ異なった状態におけるソース−ドレイン電流IDSの異なった導通を計測することによっても決定することができることであろう。4状態の例として、図7Aはしきい値電圧ウィンドの区分けを示している。これに対して、図7Bは、コントロールゲート電圧VCGの関数として4つの状態の通常の値IDS(実線)を示している。5VのVCGでは、各4つの導通状態の値IDSは、4つの対応する電流検知増幅器で並列に検知することで区別できる。各増幅器に関連するものは、対応する参照導通状態IREF レベル(図7Bに破線で示す)である。ブレイクポイントしきい値レベル(図6と図7Aを参照)がしきい値電圧ウィンドの中の異なる領域を区別するのに用いられるように、IREF レベルは対応するソース−ドレイン電流ウィンドで同じことをするために用いられる。IREF で比較することによって、メモリセルの導通状態が決定される。同時係属出願中の米国特許出願第204,175号で、プログラミングと読み出しの両方に同じ電流検知増幅器とIREF を用いることを提案している。これにより参照レベル(図7Bの破線)およびプログラミングレベル(図7Bの実線)間でのトラッキングが優れたものとなる。
本発明による改良された方式において、IREF は同じチップ上に存在する一連のEEpromセルのソース−ドレイン電流によって提供されるものであり、それらはこの目的のためのみにとっておかれる。かくして、それらは、同じチップ上の他のすべてのEEpromセルの読み出しおよびプログラミングの参照レベルとして用いられるIREF をもつマスタ参照セルとして作用する。EEpromセルと同じ装置を参照セルとして働かせることによって、温度と電圧と製造過程における変動に関する優れたトラッキングが達成される。さらに、多状態の実施形態において重要な電荷保存の問題も緩和される。
図9Aを参照すると、マスタ参照セル400が、そのプログラムおよび読み出しの経路とともに示されている。前記参照セルの消去およびプログラムモジュール4100は、そのような各参照セル400をプログラムもしくは再プログラムする。前記モジュール4100はプログラム経路4130を有するプログラムおよび消去回路4110を含み、プログラム経路4130はマスタ参照セル400のドレインに接続されている。プログラムおよび消去回路4110は、プログラムデコーダ4150と消去デコーダ417の各々によって、内部バス111からのデコードされたアドレスによって起動される。したがって、プログラム電圧または消去電圧は、各々の参照セル、例えばセル400、に選択的に供給される。このようにして、各々の参照セルの参照レベルは、独立して設定もしくは再プログラムされる。通常、各参照セルのしきい値レベルは、チップが製造された各バッチに適した最適なレベルに工場内でプログラムされる。これは外部の標準的な参照レベルと比較することによってなされる。ソフトウェア制御により、ユーザにも参照しきい値レベルをリセットするオプションが与えられている。
参照しきい値電圧VT1もしくは参照ドレイン−ソース電流IREF が各参照セル400にプログラムされると、セル420等のアドレスされたメモリセルの読み出し用の参照として作用する。参照セル400は、クロックが供給されているスイッチ413経由で電流検知増幅器410の第1の脚403に接続されている。増幅器の第2の脚415は、アドレスされたメモリセル420に実質的に接続されており、そのセルのプログラムされた導通状態が確立される。セル420が読み出されるとき、制御信号READは、スイッチ421をセルのドレインが第2の脚415に接続されるようにする。電流検知増幅器410は、マスタ参照セル400とアドレスされたセル420の両方のドレインにVCC経由で電圧を供給する。好適な実施形態において、増幅器はカレントミラー回路をもち、その結果、2本の脚403と415に存在する電流の差が第2の脚415の電圧がVCCの方向に上がるかもしくはVs の方向に下がることになる。かくして、第2の脚のノード415は、アドレスされたセル420のソース−ドレイン電流IDSがマスタ参照セル400を通るIREF よりも小(または大)のときに、それぞれHIGH(またはLOW)となる。クロックが接続されているスイッチ423によって制御されている適当な時間で、第2の脚415で検知された結果はラッチ425により保持されて、出力ライン427で利用可能にされる。IDSがIREF よりも少ないときには、出力ライン427でHIGHが生じ、アドレスされたセル420は、マスタ参照セル400と同じ導通状態にあるものと見なされる。
好ましい実施例において、電圧クランプと高速プルアップ回路430は、前記第2の脚415とアドレスされたセルのドレイン431の間に挿入される。回路430は、それがより低いIDSの場合に充電されるときには、ドレイン電圧VD を1.5Vから2.0Vの最大値に保持するように働く。またそれによって、より高いIDSの場合にVD が低くなりすぎないようにしている。
一般的にいって、各メモリセルがK状態を記憶するとするならば、少なくともK−1、または好ましくはKの参照レベルが必要となる。1つの実施例において、アドレスされたセルは、k個の検知増幅器を並列に設けてKの参照セルと比較される。これは速度の点からは2状態の場合に好ましいものであるが、多状態の場合には少なすぎる場合においても有効電流を拡大できる。かくして、多状態の場合においては、アドレスされたセルをKの参照セルと1つずつ逐次比較されることが好ましい。
図9Bは、多状態読み出しの形態をより詳細に示したものである。Kの参照セル、例えば431,433,435が検知増幅器440に増幅器の第1の脚441を介して接続されている。この接続は、クロックが接続されているスイッチ、例えば451,453,455の各々によって時分割的に接続されるものである。検知増幅器の第2の脚457は、図9Aに示されるアドレスされたセルに接続されている。第2の脚457における検知信号は、クロックが接続されているスイッチ、例えば461,463,465により、ラッチ471,473,475に時間選択的にラッチさせられる。
図9C(1)から図9C(8)は、多状態読み出しのタイミングを示している。信号READがHIGHのとき、スイッチ421はイネーブルになり、アドレスされたメモリセルは検知増幅器440(図9C(1))の第2の脚457に接続される。クロックタイミングは、図9C(2)から図9C(4)に示されている。したがって、各クロック信号において検知増幅器は、逐次的にアドレスされたセルを各参照セルと比較して、各々の結果をラッチする。検知増幅器のラッチされた出力は、図9C(5)から図9C(7)に示されている。検知増幅器440のK個の出力状態のすべてがラッチされた後、それらはK−Lデコーダ480(2L ≧K)(図9C(8))によりL個の2進ビットにコード化される。
かくして、多段階のしきい値レベルは、マスタ参照セルとして働く一連のメモリセルによって提供される。マスタ参照セルは、独立して外部から消去およびプログラムが可能であり、それは製造者またはユーザのいずれにおいて可能である。この特徴により最大の柔軟性が得られ、いつでも装置のしきい値ウィンド内にブレイクポイントしきい値を個々に設定できる。装置がメモリセルのものと同じ装置であることにより、参照セルは、製造工程,動作状況,および電荷保留の問題からの同じような変動をほぼたどる。随意に各しきい値レベルを独立してプログラムできることによって、しきい値ウィンドの区分けを最適化および微調整することで多状態メモリを可変にすることができる。さらに、それによって製造後においても同じ装置について2状態かまたは多状態のメモリの形態にするかを、ユーザの必要性やそのときの特性にしたがって形成できる。
本発明の他の態様は、アドレスされたメモリセルの改良された多状態検知方法を提供することである。多状態メモリの検知に関して上述してきたが、セルの導通電流をすべての参照導通電流レベル(しきい値レベル)と同時的にまたは並列に比較することが好ましい。例えば、4状態のメモリセルは、少なくとも4つの状態を区別するために3つの参照電流レベルを持っている。セルの状態の並列検知は、セルの導通電流ICELLを各3つの参照電流レベルに対して比較することを意味する。これは各3つの参照導通レベルを逐次的に比較するよりも速いことになる。しかしながら前述したより簡単な実施例においては、アドレスされたセルの導通電流を各参照レベルの比較用に3つのブランチに分けると、導通電流が弱まることになる。したがって、特に多状態が含まれる場合においては、検知システムの信号対雑音比の必要性の見地から禁止されるものである。
図9Dから図9Iは、検知されたセルの導通電流を低下させる欠点をもたずに、同時に多状態検知を行ういくつかの実施例を示している。各実施例において、1対多のカレントミラーが、電流を多数のコピーに再生するために用いられ、各コピーは参照電流レベルと同時に比較するように使用される。
図9Dは、同時多状態検知方法の第1の実施例を示している。1対多のカレントミラーは、第1の脚920上の第1のトランジスタ910および第2の脚の各ブランチ921,922,・・・,925にそれぞれある第2のトランジスタ911,912,・・・,915からなる。第1の脚920に第1の電流が流れると、第2の脚の各ブランチにある第2のトランジスタは電流源として作用し、再生された電流をそのブランチに流す。第1の電流に対する再生された電流の比は、第1のトランジスタ910に対する第2のトランジスタ911,912,・・・,915の相対的な大きさによって割合が決められる。
本発明の実施例において、すべてのトランジスタは、図9Dに示されている記号「X」が示すように、同じサイズのものである。これにより、第1の脚920の第1の電流が第2のすべてのブランチ921,922,・・・,925に同一に再生される1対多のカレントミラーになる。かくして、アドレスされたメモリセル420の導通電流ICELLが第1の脚920の読み出しイネーブルスイッチ421を介して流れると、同じ電流ICELLは、第2の脚のブランチ921,922,・・・,925に再生される。これにより、ICELLを弱めることなく実現できる。
ICELLが各ブランチに再生されると、それは関連する参照電流レベルと比較される。これは、第1の電流源911,912,・・・,915とそれぞれインラインの第2の電流源931,932,・・・,935をもつ各ブランチをドライブすることによってなされる。各第2の電流源または各IREF 回路931,932,・・・,935は、それぞれ予め決められた参照電流レベル、例えば、第1のブランチのライン941にあるIREF1、第2のブランチのライン942にあるIREF2,・・・,k番目のブランチのライン953にあるIREFKを供給する。その後、メモリ状態は、前記IREF に対するICELLレベルの位置を検知することによって決定される。図9DにSA1,SA2,・・・,SAkとして示された各状態の検知された出力はそれぞれ、第1のブランチのノード951,第2のブランチのノード952,・・・およびk番目のブランチのノード953からのものである。各ブランチのノードは、第1と第2の電流源の間に設けられる。一般的に、前記2つの電流源はそれぞれ反対の極性を持つものである。第2の電流源931,932,・・・,935が、一端ではVS に接続されたnチャンネルのトランジスタであれば、第1の電流源は、他端ではVCCに接続されたpチャンネルのトランジスタ911,912,・・・,915である。2つの電流源のICELL とIREF の相対レベルに応じて、各ノードは、VCC(通常、5V)より上に引き上げられるか、もしくはVs (通常、0V)に引き下げられる。例えば、第1のブランチにおいて、電流ICELLがライン921に再生されて、電流IREF1がライン941に供給されたとする。ノード951はそれぞれ、ICELLがIREF よりも大きい(または小さい)とき、HIGH(またはLOW)となる。かくして、IREF1とIREF2の間にあるICELLをもつメモリ状態は、ノード951をHIGHのみに保つことによって、多状態出力(SA1,SA2,・・・,SAK)=(0,1,・・・,1)になる。
一般的に、各IREF 回路931,932,・・・,935は、種々の参照電流レベルIREF1とIREF2,・・・,IREF3を供給するように事前に調整された電流源回路の場合がある。
図9Eは、EEpromの応用における1つの実施例を示しており、各IREF 回路931,932,・・・,935は、各参照セル431,432,・・・,435によってそれぞれ設けられており、各参照セルはそれ自体が図9Aと図9Bに関連して説明したものと同様のEEpromセルである。かくして、参照セルは、マスタ参照セルまたはローカル参照セルとして適用可能であって、ここでの参照導通電流レベルはプログラムされるものである。
図9Fは、好適な実施例を示すものであって、ここにおいてIREF 回路は、参照セルによって直接提供されるものではなく、その再生により提供されるものである。これにより、メモリセルのチャンク(例えば、64)が、同時検知用に同じ参照セルを共有することができる。IREF 回路931,932,・・・,935にそれぞれあるトランジスタ961,962,・・・,965は、各参照セル431,432,・・・,435からの再生された参照電流の電流源として作用する。各トランジスタは、そのゲートで参照電圧REF1,REF2,・・・,REFkによって制御され、必要な参照電流レベルIREF1, IREF2, ・・・,IREF3を発生させる。各参照電圧は、REF回路971,・・・,・・・,975によって供給される。1つの代替として、各トランジスタ961,962,・・・,965およびそれと関連するREF回路971,・・・,・・・,975は、二重カレントミラー回路を形成し、それによって各参照セル431,432,・・・,435の参照電流は、トランジスタ961,962,・・・,965の導通電流として再生される。IREF1回路931を例として考慮すると、それは、IREF1の電流源としてトランジスタ961からなる。IREF1レベルは、参照セル431の導通電流の再生として得られる。参照セル431は、参照電流IREF1を第1のカレントミラーの第1の脚976に供給するが、その電流はその第2の脚977で再生されるものである。第1のカレントミラーの第2の脚977は、第2のカレントミラーの第1の脚に相互接続されている。かくして、再生された参照電流は、トランジスタ961により第2のミラーの第2の脚941の中に再生される。一般的に、2つのカレントミラーは反対の極性のものである。例えば、REF1セル431がnチャンネルのトランジスタであったとすると、前記第1のカレントミラーは、同じ大きさ「X」の2つのpチャンネルのトランジスタ981と982であり、そして第2のカレントミラーは、同じ大きさ「W」の2つのnチャンネルトランジスタ983と961からなる。
図9Gは、さらに他の実施例を示すものであって、ここで各ブランチの第2の電流源によって供給される異なったIREF レベルはすべて、1つの参照回路976により発生させられるものである。参照回路976は、各ブランチのトランジスタ961,962,・・・,965のすべてのゲートにそれぞれ印加される参照電圧を供給する。図9Fに示されている実施例にあるように、参照電圧はトランジスタをオンにするように作用する。しかしながら、ブランチでのIREF の異なったレベルは、トランジスタ961,962,・・・,965の大きさを調整することによって得られる。例えば、図9Gに図示されているように、トランジスタ961,962,965はそれぞれ、I*W,J*W,・・・,K*Wの大きさを持つものであり、ここにおいてI:J:・・・:Kはそれぞれ、IREF1:IREF2:・・・IREFkとの比が同じである。1つの参照回路976は、一定の電圧源または回路であって、図9FのREF回路971に類似した参照セルを含んでいる。これは通常のカレントミラー状態において当てはまり、ここでMB1や961等の各ブランチにあるトランジスタは飽和領域にバイアスされる。
図9Hは、他の実施例を示すものであって、ここですべての第2の電流源は、ブランチでは共通しているが、ICELLは、第1の電流源により参照レベルの傾きに対応する率のレベルで各ブランチに再生される。この割合は、各第2のトランジスタ911,912,・・・,915の大きさを調整することによって決定される。例えば、図9Hに示されているように、第2のトランジスタ911,912,・・・,915はそれぞれ、I*X,J*X・・・,K*Xの大きさを持つものであって、ここでXは第1の脚920にある第1のトランジスタ910の大きさであって、I:J:・・・:Kはそれぞれ、IREF1:IREF2:・・・:IREEkと同じ比である。したがって、1つのみのREF回路976が全ブランチで用いられており、さらにすべてのトランジスタ961,962,・・・,965の大きさは同じものである。1つの参照回路976は、一定の電圧源であるか、または図9FのREF回路971と同様の参照セルを含む回路とすることもできる。1つの実施形態において、参照回路976は、各々の第2の電流源961,962,・・・,965が最も高い参照電流レベルIREFkと等しい電流を供給するようになされている。ノードからの出力の順序は、図9Dから図9Gに示された実施例に対して反対になっている。
図9Iは、図9Gと同様な回路を用いた同時多状態検知方法の他の実施例を示しているが、図9Gと異なる点は、アドレスメモリセルとIREF回路の特性が入れ替わっていることである。言い換えれば、各ブランチにおいて、第2の電流源、例えば931,932,・・・,935が今度は再生されたICELLを供給している。これは、各ブランチのトランジスタ961,962,・・・,965のすべてのゲートへ参照電圧MCをそれぞれ供給するアドレスされたメモリセル回路977により達成される。回路977は、図9FのREF1回路971に類似しているが、異なる点は、REF1セル431が今度はアドレスされたメモリセル420により置き換えられていることである。同様に、第1の電流源、例えば、911,912,・・・,915が今度はIREF1, IREF2, ・・・, IREFkをそれぞれ供給する。種々のIREF は、IREF0回路978の電流の段階的な再生により得られる。この割合は、1対多のカレントミラーの各第2のトランジスタ911,912,・・・,915の大きさを調整することによって決定される。例えば、図9Iに図示されているように、第2のトランジスタ911,912,・・・,915はそれぞれ、I*X,J*X,・・・,K*Xの大きさをもち、ここにおいてXは第1の脚920の第1のトランジスタ910の大きさであって、そして1対I:J:・・・:Kはそれぞれ、IREF0:IREF1:IREF2:・・・:IREFKの比と同じである。一般的に、IREF0回路978は、IREF0の電流レベルを供給する電流源であればよい。1つの実施例において、IREF0回路は、参照電流レベルによってプログラム可能なEEpromセルであって、それは図9Aと図9Bに関連して記載されるものと同様のものである。
本発明の他の重要な特徴は、耐久性に関するストレスの問題を克服することに役立つことである。すでに説明したように、各メモリセルの消去,プログラムおよび読み出し特性は、セルが受けたプログラム/消去サイクルの数に耐える蓄積されたストレスに左右されるものである。一般的に、メモリセルは、マスタ参照セルよりもより多くのプログラム/消去のサイクルに曝される。当初の理想的な参照レベルは、次第にずれて読み出しエラーの原因となる。本発明に存在する概念は、参照レベルにもメモリセルが受けるものと同じサイクルを反映させることである。これは、マスタ参照セルに加えてローカル参照セルを構成することによって達成される。ローカル参照セルは、メモリセルと同じプログラム/消去のサイクルに曝される。消去動作が終わる度に、マスタ参照セルの参照レベルは対応するローカル参照セルのセットに再コピーされる。その後、メモリセルは、密接にトラッキングするローカル参照セルの参照レベルに対して読出される。このように、各プログラム/消去サイクル後のセルの特性における誤差は、自動的に補償される。したがって、メモリ状態を多数回のサイクル後でも正確に読み出しができるように、変形するしきい値ウィンドの区分けは適切に維持される。
図10は、フラッシュEEpromのためのローカルセルの参照実施形態を示している。フラッシュEEpromアレイ60(図4)において、各メモリセルのグループは集合的に消去されるかもしくはプログラムされ、セクタと呼ばれる。用語「フラッシュセクタ」は、磁気ディスク記憶装置で用いられる用語「セクタ」に類似するものであって、それらはここにおいては同様に用いられるものである。EEpromアレイは、フラッシュセクタ、例えば501,503および505のようにグループ化される。フラッシュセクタのすべてのメモリセルは同じサイクルを受けるが、異なるフラッシュセクタは異なるサイクルを受ける。各フラッシュセクタを適切にトラッキングするために、各フラッシュセクタの1セットのメモリセルは、ローカル参照セルとして使用するためにとっておかれる。例えば、フラッシュセクタ503が消去された後、マスタ参照セル507の参照レベルは、フラッシュセクタ503に関連するローカル参照セルに再プログラムされる。次の消去サイクルに至るまで、読み出し回路513は、再プログラムされた参照レベルに対してフラッシュセクタ503内のメモリセルを持続的に読み出す。
図11(1)から図11(7)は、セクタの参照セルを再プログラムするアルゴリズムを図示している。特に、図11(1)から図11(3)は、セクタのローカル参照セルをそれらの「消去された状態」に消去することに関するものである。かくして、図11(1)において、消去電圧のパルスは、ローカル参照セルを含むすべてのセクタのメモリセルに印加される。その後、図11(2)において、すべてのローカル参照セルは、マスタ参照セルに対して読み出され、それらが「消去された状態」のすべて消去されているかをベリファイする。1つのセルがそうでないと見なされた場合には、消去電圧パルスがさらにすべてのセルに印加される。このプロセスは、セクタ中のすべてのローカル参照セルが「消去された」状態になったことがベリファイされるまで続けられる(図11(3))。
図11(4)から図11(7)は、セクタのローカル参照セルをプログラムすることに関する。セクタのすべてのローカル参照セルが「消去された」状態にあることがベリファイされた後、プログラム電圧のパルスは、図11(4)において、すべてのローカル参照セルに印加される。これに引き続き図11(5)において、マスタ参照セルに対してローカル参照セルが読み出され、そのローカル参照セルのそれぞれが対応するマスタ参照セルと同じ状態にプログラムされているかどうかをベリファイする。ローカル参照セルがそのようにベリファイされなければ、さらにプログラム電圧がそれらのみに選択的に印加される(図11(6))。このプロセスは、すべてのローカル参照セルがしきい値ウィンドの種々のブレイクポイントしきい値レベルにプログラムされたことがベリファイされるまで繰り返される(図11(7))。
セクタのローカル参照セルが再プログラムされると、それらは直接的または間接的に、セクタのアドレスされたメモリセルを消去ベリファイ、プログラムベリファイまたは読み出すために用いられる。
図12Aは、ローカル参照セルがセクタのメモリセルを読み出しもしくはプログラム/消去ベリファイするために直接用いられる実施例を示している。かくして、この動作において、並列の対のスイッチ525はREAD信号によってイネーブルにされ、検知増幅器440は各セクタのローカル参照セル525に対してセクタのアドレスされたメモリセル523を読み出す。ローカル参照セルのプログラム/消去ベリファイの間(図11に示されているように)、別の並列の対のスイッチ527は、マスタ参照セル529に対するローカル参照セル525の読み出しを可能にする。
図12Bは、セクタのアドレスされたメモリセルを読み出しもしくはプログラム/消去ベリファイするのにローカル参照セルを直接用いる場合のアルゴリズムを示している。
図13Aは、ローカル参照セルがアドレスされたメモリセルを読み出すために間接的に用いられる実施例を示している。まず、マスタ参照セルは、しきい値ウィンドの望ましい多数のブレイクポイントしきい値の1つにそれぞれ消去およびプログラムされる。これらのマスタ参照しきい値を用いて、消去されたセルのセクタ内のローカル参照セルは、同じ望ましい多数のブレイクポイントのうちの1つにそれぞれプログラムされる。次に、セクタのアドレスされたセルは、望ましいデータでプログラムされ(書き込まれ)る。その後、セクタのアドレスされたセルの読み出しシーケンスは、図13Aに示されているステップを含む。
まず第1に、各ローカル参照セル525は、対応するマスタ参照セル531に対して読み出される。これは、検知増幅器440の第2の脚457にローカル参照セル525を接続するREAD1信号をイネーブルにするスイッチ533と、検知増幅器の第1の脚441に接続されるマスタ参照セル531によって行われる。ここで各マスタ参照セルに関する補助電流源回路が用いられて、検知増幅器の第1の脚441を流れる電流を最適にバイアスし、第2の脚457の電流と合わせる。すべてのブレイクポイントしきい値レベルに対してバイアス調整動作が完了すると、セクタのアドレスされたセルは、バイアス調整されたマスタ参照セルに対して読み出される。これは、READ1信号をディスエーブルにするスイッチ533およびREAD信号をイネーブルにするスイッチ535により行われる。このようなアプローチの利点は、長時間たつとマスタ参照セルとアドレスされたセルの間にしきい値偏差をもたらすVCC、温度、サイクル疲労または他の影響による変化が、読み出し前に削除され、それはローカル参照セル(アドレスされたセルのしきい値偏差をトラックするもの)がマスタ参照セルのブレイクポイントしきい値を効果的に再調整するのに用いられるためである。例えば、このスキームにより、マスタ参照セルがVCC=5.5Vで動作されるときアドレスされたセルのプログラムが可能となり、続いてマスタ参照セルがVCC=4.5Vで動作されるときアドレスされたセルの読み出しが可能となる。通常ブレイクポイントしきい値の値に変化をもたらすVCCでの1ボルトの違いは、ローカル参照セルを用いることでなくなり、読み出し時にこの変化をなくすようにマスタ参照セルをバイアス調整する。
図13Bと図13Cは、マスタ参照セル551,553,555に対する電流バイアス回路、例えば,541,543,545の実施例をより詳細に示すものである。各バイアス回路は、マスタ参照セルの電流シャントとして働く。例えば、回路541は、ライン561を介してマスタ参照セル551のドレインに電力供給されている。それは検知増幅器(第1の脚)へのライン562の電流を修正するものであって、VCCからのソース電流またはVSSへのドレイン電流によって行われる。前者の場合、ライン562の電流は減少させられ、また後者の場合はその逆である。マスタ参照セル551にバイアスが確立されているので、検知増幅器の2つの脚の電流の不均衡はチップ外に伝達される。これはコントローラ(図5を参照)により検出され、そのコントローラはバイアス回路541を内部アドレスバス111を介してプログラムし、ローカル参照セルを均衡化するためにライン562の電流を減算もしくは加算する。
図13Cは、回路541等のバイアス回路の実施例を示している。並列トランジスタ、例えば、571,573,575のバンクは、それらのドレインVCCおよびスイッチ、例えば、581,583,585を介してライン561へのそれらのソースすべてに接続されている。スイッチを選択的にイネーブルすることにより、異なる数のトランジスタが、ライン562からの種々の電流の量を減算するために用いられる。同様にして、他の並列トランジスタ、例えば、591,593,595のバンクは、それらのソースVSSおよびスイッチ、例えば、601,603,605を介してライン561へのそれらのドレインすべてに接続されている。スイッチを選択的にイネーブルすることにより、異なる数のトランジスタが、ライン562からの種々の電流の量を加算するために用いられる。デコーダ609は、内部アドレスバス111からのアドレスをデコードして、選択的にスイッチをイネーブルさせる。イネーブル信号は、ラッチ611,613に蓄積される。このようにして、1つのセクタが読み出されるたびに、マスタ参照セルはローカル参照セルに対して再度バイアスされて、セクタのメモリセルを読み出すために使用される。
図13D(1)から図13D(4)は、代替実施例の読み出しのアルゴリズムを図示している。セクタは予め、マスタ参照セルに対してローカル参照セルをプログラムおよびベリファイする必要がある(図13D(1))。したがって、各マスタ参照セルは、ローカル参照セルに対して読み出される(図13D(2))。マスタ参照セルは、対応するローカル参照セルに対して電流を均等化するためにバイアスされる(図13D(3))。引き続き、セクタのメモリセルは、バイアスされたマスタ参照セルに対して読み出される(図13D(4))。
上述した読み出し回路および動作は、メモリセルのプログラムおよび消去においても利用でき、特に、その動作のベリファイ部分において利用できる。前述したように、プログラミングは、望ましい状態が達成されたことをベリファイする間にプログラムされた状態を読みだす小さなステップで実行される。プログラム状態が正確にベリファイされると、プログラムは終了する。同様にして、消去は、「消去された」状態が達成されたことをベリファイする間に消去の状態を読み出す小さなステップで実行される。「消去された」状態が正確にベリファイされると、消去は終了する。
前述したように、しきい値ウィンドをKの領域に区分けするには、K−1のブレイクポイントしきい値レベルのみが必要であり、これによってメモリセルはK状態を記憶できる。しかしながら、本発明の1つの態様によれば、しきい値ウィンドがより細かく区分けされている多状態の場合では、Kの状態にKのしきい値レベルを設けることが好ましい。余分なしきい値レベルは、「消去された」状態を最も低いしきい値レベルをもつ状態と区別するために用いられる。これにより過度の消去がなくなり、したがって、「消去された」状態が達成されると消去が終了することからセルに過度のストレスを与えることもなくなる。選択的に個々のセルの消去を禁止するということは、少なくともセクタが毎回消去されなければならないフラッシュEEpromの場合には適しない。メモリセルが個々に消去用にアドレスされる場合それらのEEromアレイに適している。
本発明のさらなる他の特徴によれば、メモリセルが「消去された」状態に消去された後、セルを「消去された」状態に近接する最も低いしきい値レベルの状態(アース状態)にするように僅かなプログラムがなされる。これには2つの利点がある。まず第1に、すべてのメモリセルのアース状態のしきい値レベルは、同じ2つのブレイクポイントしきい値レベルの間に限定されているもので、明確に限定され広範囲に広がっていない。これにより、セルを引き続きプログラムするさいの開始点が一定になる。第2に、すべてのセルはあるプログラミングをえることで、それらにアース状態を記憶させる傾向にあるセルが、例えば、プログラム/消去サイクルや耐久履歴に関する残りのトラックを失わないようにする。
オンチッププログラムベリファイ
前述したように、EEpromの望ましい状態へのプログラミングは、「消去された」状態から開始する小さいステップで実行されることが好ましい。各プログラミングステップ後、プログラム中のセルは、望ましい状態が達成されたかをベリファイするために読み出される。達成されていなければ、そのようにベリファイされるまでさらにプログラムとベリファイが繰り返される。
図5に示されているシステム図を参照すると、EEpromチップ130はコントローラ140の制御下にある。それらは、シリアルインライン251とシリアルアウトライン253により直列接続される。従来のEEprom装置において、各プログラムステップ後、プログラム中のセルに形成された状態が読み出され、コントローラ140またはCPU160に送り戻されて、それが望ましい状態にあるかをベリファイする。このスキームでは、特にシリアルリンクの場合において、速度に関してかなりの不利益が生じる。
本発明においては、プログラムのベリファイは、セルのチャンク(通常、数バイト)を並列的にプログラムして、並列およびチップ上でベリファイして利用される。並列プログラムは、すでに正確にベリファイされた状態をもつチャンクのセルのプログラミングをディスエーブルにする選択プログラム回路により実行される。この特徴は、多状態実施形態において必須のものであり、なぜならば、セルの中には他のものよりも早く望ましい状態に達するものもあり、停止しなければ望ましい状態を越えてしまうことになるからである。すべてのセルのチャンクが正確にベリファイされた後、チップ上のロジックがこの事実をコントローラに伝達し、それによって、次のセルのチャンクのプログラミングが開始される。このようにして各プログラミングステップ間において、データはEEpromチップとコントローラの間を往復する必要はなく、プログラムのベリファイ速度も格段に速くなる。
図14は、n個のセルのチャンクを並列にプログラムおよびベリファイする経路を図示している。図5のシステム図では、対応するモジュールには同じ参照番号を用いている。EEpromアレイ60は、一時にNセルずつアドレスされる。例えば、Nは64セル幅である。1024セル4列からなる512バイトのフラッシュセクタでは、64セルの64チャンクが存在することになる。ソースマルチプレクサ107は、1つのアドレスされたセルのNソースをライン103のソース電圧VS に選択的に接続する。同様にして、ドレインマルチプレクサ109は、選択的に、チャンクのNドレインをNチャンネルデータ経路105を介してアクセス可能にする。データ経路105は、プログラム中禁止機能を有するプログラム回路210によって、そして読み出し、プログラムベリファイもしくは消去ベリファイ中読み出し回路220によってアクセスされる。
再度図5のシステム図を参照すると、プログラムはコントローラ140の制御下にある。セクタにプログラムされるべきデータは、チャンクごとに送られる。コントローラはまず初めに、N*Lシリアルデータビットの第1のチャンクをアドレス、制御およびタイミング情報とともにEEpromチップ130に送る。Lは、メモリセルごとにコード化された2進ビットの数である。例えば、L=1は2状態のセルで、L=2は4状態のセルである。かくして、N=64でL=2であれば、データビットのチャンクは128ビット幅になることになる。シリアルビットがN*Lパラレルビットに変換される場合、N*Lデータビットはラッチに蓄積され、そしてレジスタ190にシフトされる。これらのデータは、読み出し回路220、ビットデコーダ230、比較回路220および禁止機能を有するプログラム回路210とともにプログラムベリファイに必要なものである。
Nセルのチャンク用のプログラムのアルゴリズムは、図5のシステム図とアルゴリズム自体を示す図15(1)から図15(7)の両方を参照することで最適に記載される。既に説明したように、セクタをプログラムする前に、すべてのセクタは消去され、その中のすべてのセクタは「消去された」状態であるかをベリファイされなければならない(図15(1))。これに引き続いて図15(2)に示されているように、セクタのローカル参照セルのプログラミングが行われる(図11(1)から図11(3))。図15(3)において、N*Lビットのパラレルデータは、ラッチ190でラッチされる。図15(4)において、読み出し回路220は、セルのNチャンクの状態を読み出すために、Nチャンネルのデータ経路105にアクセスする。読み出しアルゴリズムはすでに、図12Bまたは13Dに関連して記載されている。Nセルの読み出しは、N*K(K=セル毎の状態の数)の出力状態を発生する。これらは、ビットデコーダ230によってN*Lの2進ビットにデコードされる。図15(5)において、N*Lの読み出しビットはビットごとに比較回路200によって、ラッチ190からのN*Lプログラムデータビットと比較される。図15(6)において、任意の読み出しビットがプログラムデータビットと比較できなかった場合には、プログラム電圧パルスがさらにプログラム回路210から同時にセルのチャンクに印加される。しかしながら、プログラム回路内の禁止回路210は、プログラムされたデータビットで正確にベリファイされたビットをもつセルにプログラムすることを選択的にブロックする。かくして、ベリファイされなかったセルのみが毎回プログラムされることになる。図15(7)では、すべてのセルが正しくベリファイされるまで、プログラムとベリファイが繰り返される。
図16は、図5の比較回路200の実施例をより詳細に示したものである。回路200は、Nセル比較モジュール、例えば、701,703からなり、各モジュールはチャンクにあるNセルからなる。各セル比較モジュールにおいて、L読み出しビット(L=各セルのコード化された2進ビットの数)はビット毎に対応するプログラムデータビットと比較される。これは、LのXORゲート、例えば、711,713,715によって行われる。これらのXORゲートの出力は、NORゲート717を通過して、すべてのLビットがベリファイされれば「1」がNORゲートの出力に生じ、そして逆であれば「0」が生じる。制御信号VERIFYが真である場合には、この結果はラッチ721にラッチされ、NORゲート717の出力と同じ結果がセル比較モジュールの出力725で得られる。比較回路200はLビットの比較を並列に行う。N比較モジュールの出力、例えば、725,727は、図5の禁止機能を有するプログラム回路210に供給されるべきNチャンネル出力ライン731で利用される。
同時に、Nの出力、例えば、725,727は、ANDゲート733を通過することで、その信号出力735はすべてのNセルがベリファイされたとき「1」になり、そうでなければ「0」になる。再度図5を参照すると、1つの出力735は、データのチャンクにあるすべてのNセルが正しくベリファイされたことをコントローラ140に知らせるために用いられる。出力735の信号は、VERIFY動作中、ANDゲート240を介してシリアルアウトライン253を取って送信される。
電力供給時もしくはデータのチャンクのプログラム/ベリファイの終了時に、すべてのセル比較モジュールの出力、例えば、725,727は、「0」の「ベリファイされていない」状態にリセットされる。これは、トランジスタへのラインのRESET信号727により、ノード726をVSS(0V)に引き下げることで達成される。
図17は、図5の禁止機能を有するプログラム回路210をより詳細に示した図である。プログラム回路210は、801,803のような禁止モジュールを持つNプログラムからなる。表1と2に示されているように、Nセルをプログラムするためには、VPDの電圧が各Nセルのドレインに印加され、電圧VPGがコントロールゲートに印加されなければならない。各プログラムモジュール801等は、ライン805上のVPDをNチャンネルのデータ経路105のうちの1つを通ってドレインの1つに選択的に供給するように作用する。VPDは通常、VCCよりも高い約8Vから9Vのため、後者はトランジスタスイッチ807をオンにするために用いることができない。むしろより高い電圧VCG(約12V)がスイッチ807をイネーブルするために用いられる。ライン801上のVCG自体は、ライン813のプログラム制御信号PGMが真であり、かつライン731の信号が「0」であるとき、ANDゲートによりイネーブルされる。ライン731上の信号が図16に示されているセル比較モジュール701の出力からのものであるから、VPDは未だベリファイされていないセルに選択的に供給することになる。このようにして、プログラムパルスが印加されるたびに、まだ希望する状態に達していないセルにのみ供給されることになる。この選択的なプログラムの特徴は、特に多状態の場合の並列プログラムの実施形態とオンチップのベリファイに必要なことである。
コントロールゲートへの可変電圧制御
図18の表1および2とともに図5のシステム図は、EEpromの基本的な機能を実行するためのEEpromアレイ60への種々の電圧の印加方法を示している。従来のEEpromの装置では、コントロールゲートVCGに供給される電圧は、2つの電圧のうちの1つであるとすることができ、すなわち、VCCまたはより高い約12Vのプログラミング電圧とすることができる。
本発明の他の態様によれば、コントロールゲートに供給される電圧VCGは、広範囲の電圧で個々にかつ持続的に可変のものである。これは、コントロール140からのVPGによって提供される。特に、ライン83上のVCGは、ライン901からコントローラによって供給されるVPGから供給される。表2は、EEpromの異なる機能での種々の電圧を想定したVPGを示している。
種々のVCGは、特にプログラムと消去マージンのスキームにおいて有利である。プログラムマージンでは、プログラムベリファイ中の読み出しは、標準電圧VCCよりもわずかに高いVCGによってなされる。これにより、プログラムによて僅かにマージンをもってブレイクポイントしきい値レベルを越えた状態にプログラムされたしきい値を置くのに適している。消去のベリファイにおいて、セルはわずかに減少したVCGによってベリファイされ、セルを「消去された」状態の中に置く。さらに、上述した電荷保留の問題(図8)を補うためにマージンが利用できる。
前述したように、従来のEEpromでは通常、プログラムまたは消去ベリファイ中にVCCをVCGに供給するために用いる。マージンを設けるために、VCC自体を引き上げたりまたは引き下げたりする必要がある。これを行うと、それらがVCCによりドライブされるため、読み出し回路の結果が不正確になる。
本発明において、読み出し回路に供給された電圧とは独立した種々のVCGは、より正確で信頼性の高い結果が得られる。
さらに、広範囲のVCGは、EEpromのテストや診断中に有益である。プログラムされたセルのしきい値の全領域をVCGを連続的に増加(装置の接合の故障により制限される最大の値まで)させることで容易に測定できる。
以上説明した本発明の実施例は好適な実施形態であるが、当業者にはその変形もまた可能であることを理解されたい。したがって、本発明は添付の請求の全範囲内で保護をされるべきものである。