(57)【要約】  不揮発性集積メモリデバイス内の、プログラムしにくい記憶素子を迅速かつ効率的にプログラムするシステムと方法が提供される。第１のレベルに制限される記憶素子を流れる電流により、多数の記憶素子が同時にプログラミング処理を受ける。これら記憶素子の一部が所定の状態に達すると、それらはプログラムされるセルのセットから取り除かれ、引き続きプログラムされる素子に関する電流制限が引き上げられる。これらのプログラムしにくい電流レベルは、第２のさらに高い限界に引き上げられるか、または無制限となる。別の態様によれば、プログラミング動作中、セルに許される電流限界はセルがプログラムされる目標状態に応じて決まる。
2009503763.tif 000002
【特許請求の範囲】
【請求項１】
多状態記憶素子を初期状態から複数のデータ状態のうちの１つへプログラムする方法であって、
複数の状態から目標状態を選択するステップと、
前記記憶素子をバイアスするステップと、を含み、
前記記憶素子の第１の端子と第２の端子との間の電流は、前記選択された目標状態に依存する値を超えないように制限される方法。
【請求項２】
請求項１記載の方法において、
前記記憶素子は、ビット線に沿っておよびワード線に接続される１つ以上の行に沿って、１つ以上の列で接続される多状態記憶素子のアレイを含む不揮発性メモリに属し、
プログラムするための前記記憶素子を前記アレイから選択するステップをさらに含み、
前記記憶素子をバイアスするステップは、前記記憶素子が接続されるビット線上の前記電流を、前記選択された目標状態に依存する前記値に制限するステップを含む方法。
【請求項３】
請求項１記載の方法において、
前記記憶素子をバイアスするステップが、前記選択された目標状態に依存した電圧差を前記第１の端子と第２の端子との間に与えるステップを含む方法。
【請求項４】
請求項３記載の方法において、
前記記憶素子は、ビット線に沿っておよびワード線に接続される１つ以上の行に沿って、１つ以上の列で接続される多状態記憶素子のアレイを含む不揮発性メモリに属し、
プログラムするための前記記憶素子を前記アレイから選択するステップをさらに含み、
前記記憶素子をバイアスするステップは、前記記憶素子が接続されるビット線上の前記電流を、前記選択された目標状態に依存する前記値に制限するステップを含み、前記電圧差は、前記記憶素子が接続される前記ビット線の前記選択された目標状態に依存して電圧レベルを設定することによって決定される方法。
【請求項５】
請求項１記載の方法において、
前記第１および第２の端子が前記記憶素子のソースおよびドレインであり、前記記憶素子をバイアスするステップは、プログラミング波形を前記記憶素子のコントロールゲートに印加するステップを含む方法。
【請求項６】
請求項５記載の方法において、
前記プログラミング波形が、一連のパルスである方法。
【請求項７】
請求項１記載の方法において、
前記記憶素子が、電荷を格納するデバイスである方法。
【請求項８】
請求項７記載の方法において、
前記記憶素子がフローティングゲートトランジスタであり、前記第１および第２の端子が前記記憶素子のソースおよびドレインである方法。
【請求項９】
不揮発性メモリにおいて、
ビット線に沿ったおよびワード線に接続された１つ以上の行に沿った１つ以上の列に接続された多状態記憶素子のアレイと、
選択された記憶素子を前記多状態のうちの目標状態にプログラムするための電圧セットをプログラミング処理中に印加するための、前記ビット線および前記ワード線に接続できるプログラミング回路と、
前記選択された素子を流れる電流が前記選択された目標状態に依存する値を超えないように前記プログラミング処理中に制限するための、前記ビット線に接続できる電流制限回路と、
を備える不揮発性メモリ。
【請求項１０】
請求項９記載の不揮発性メモリにおいて、
前記電圧セットが、前記選択された目標状態に依存したソース−ドレイン電圧差を与えることを含む不揮発性メモリ。
【請求項１１】
請求項９記載の不揮発性メモリにおいて、
前記電圧セットが、プログラミング波形を前記記憶素子のコントロールゲートに印加することを含む不揮発性メモリ。
【請求項１２】
請求項１１記載の不揮発性メモリにおいて、
前記プログラミング波形が、一連のパルスである不揮発性メモリ。
【請求項１３】
請求項９記載の不揮発性メモリにおいて、
前記記憶素子が、電荷を格納するデバイスである不揮発性メモリ。
【請求項１４】
請求項１３記載の不揮発性メモリにおいて、
前記記憶素子が、フローティングゲートトランジスタである不揮発性メモリ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、全般的には不揮発性集積メモリデバイスに関し、特に、不揮発性集積メモリデバイスへのプログラミング中に電流レベルを制御するためのシステムと方法に関する。
【背景技術】
【０００２】
多くの不揮発性コンピュータメモリでは、しばしばデータ記憶機能が、プログラミング処理中に特定の記憶ユニットを流れる電流量に関係している。不揮発性メモリの特定例の１つは、フローティングゲートに蓄えられた電荷量によってメモリ内の記憶ユニットの状態が決まるフラッシュメモリすなわちＥＥＰＲＯＭメモリである。大まかに言うと、特定のユニットを流れる電流が大きければ大きいほど、そのユニットへ速やかにプログラムすることができ、またはそのユニットにプログラムできるレベル範囲が広くなり、あるいはその両方が可能となる。しかし、多数化に向かう傾向により、一般に多数の記憶ユニットに同時にプログラムされ、これにより平均電流レベルおよび瞬間電流レベルとも高くなるが、これはデバイス低電力化の傾向に対立するものである。
【０００３】
電気的に消去可能でプログラム可能な読み出し専用メモリ（ＥＥＰＲＯＭ）すなわちフラッシュメモリをはじめとする不揮発性データ記憶デバイスは、大容量データ記憶デバイスや固定電源のない、携帯電話、ハンドヘルド形パソコン（ＰＣ）、携帯音楽プレーヤ、デジタルカメラなどの携帯形デバイスに広く用いられている。
【０００４】
一般にフラッシュメモリは多数の記憶素子を有する半導体電界効果トランジスタであり、フローティングゲートに電荷を注入してトランジスタのしきい値電圧を変更することによって情報を記憶するように１つまたはそれより多い隔離フローティングゲート毎にプログラムされる。注入された電荷は、蓄えられた電荷量に比例した量によってしきい値電圧を固有しきい値電圧から変化させる。トランジスタの新しいしきい値電圧は、１ビット以上のプログラムされたデータまたは情報を表す。例えば、１ビットのデータを記憶する簡素なメモリセルの場合、トランジスタのしきい値電圧はしきい値電圧空間の高位端付近の値に引き上げられるか、または低位端付近の値に維持される。プログラムされたこれら２つのしきい値電圧は論理１または論理０を表し、論理１であればオンとなり、論理０であればオンにならないようにメモリセルをプログラムする。読み出し条件が確立されると、それによりメモリセルに記憶されているデータが論理１であるのかまたは論理０であるのかを読み出し動作によって判断できる。
【０００５】
全般的に不揮発性メモリについて、特にフラッシュＥＥＰＲＯＭデバイスについて、種々のアーキテクチャおよびセル構造に関する数多くの特許および特許出願にさらに詳述されている。ある設計のＮＯＲアレイでは、そのメモリセルは隣接するビット（列）線間に接続され、コントロールゲートはワード（行）線に接続される。個々のセルは、１つのフローティングゲートトランジスタ（直列に形成された選択トランジスタが付いている場合もあるし、付いていない場合もある）かまたは１個の選択トランジスタで分離された２つのフローティングゲートトランジスタを備えている。そのようなアレイの例および記憶システムにおけるその使用法は、サンディスク  コーポレイションの米国特許第５，０９５，３４４号（特許文献１）、第５，１７２，３３８号（特許文献２）、第５，６０２，９８７号（特許文献３）、第５，６６３，９０１号（特許文献４）、第５，４３０，８５９号（特許文献５）、第５，６５７，３３２号（特許文献６）、第５，７１２，１８０号（特許文献７）、第５，８９０，１９２号（特許文献８）、第６，１５１，２４８号（特許文献９）、２０００年２月１７日出願の米国特許出願第０９／５０５，５５５号（特許文献１０）、２０００年９月２２日出願の米国特許出願第０９／６６７，３４４号（特許文献１１）に記載されている。これら米国特許および係属中の特許出願は、その全体が本願明細書において参照により援用されている。
【０００６】
ある設計のＮＡＮＤアレイは８個、１６個または３２個もの多数のメモリセルを備え、これらのメモリセルは両端で選択トランジスタを通ってビット線と基準電位の間に直列ストリングで接続される。ワード線は異なる直列ストリングのセルのコントロールゲートと接続される。そのようなアレイおよびその動作の関連例は、２００１年７月２７日出願の米国特許出願第０９／８９３，２７７号（特許文献１２）に記載され、その全体が本願明細書において参照により援用され、本願明細書に含まれる参考文献である。
【０００７】
ＥＥＰＲＯＭのプログラミング機構は、コントロールゲートの高電圧とドレインの他の高電圧によってホットエレクトロンをチャネルのドレイン側からフローティングゲートへ酸化物薄層を横切らせるドレイン側チャネルのホットエレクトロン注入と、ソース側注入と含む。ソース側注入の場合、選択ゲートすなわち側壁の存在を用いて、選択トランジスタをフローティングゲートと直列に形成できる。ソース側注入では、選択トランジスタのしきい値電圧よりわずかに大きい電圧が選択ゲートに印加され、コントロールゲートに高電圧をかけることによって高電圧がフローティングゲートに容量結合され、フローティングゲートトランジスタのドレインに高電圧がかけられる。選択ゲートの電圧は、選択ゲートの下のチャネル部分をオンにするに十分な電圧である。ソースとドレインの間の電圧差によって、選択ゲートとフローティングゲートの間のギャップにチャネルホットエレクトロンが生じ、これらのチャネルホットエレクトロンは、フローティングゲートのソース側付近のギャップ酸化物の好適な電場によってフローティングゲートへ掃引される。
【０００８】
最新世代のフラッシュメモリは、１２８〜６４ｋバイトのサイズの範囲のセクタ単位すなわちプログラミングブロック単位でプログラムが書き込まれたり消去されたりする数百万個のメモリセルから構成されるアレイを備えることができるが、ここで消去ブロックとプログラミングブロックは同じサイズでないことが多い。多数のメモリセルに対するプログラミングについては、例えば、２００２年２月２２日出願のKevin M. Conley およびYoram Cedar による「Pipelined Parallel Programming Operation in a Non-Volatile Memory System」という米国特許出願（特許文献１３）に記載され、その全体が本願明細書において参照により援用され、本願明細書に含まれる参考文献である。セクタ内の多数のメモリセルへのプログラミングで消費される電力は、従来のフラッシュメモリで重大な問題となっていた。これは、電池に依存し、電気容量が限られているオンチップ電圧電源すなわち電荷ポンプを一般に有する携帯形デバイスにとって特に問題である。また、携帯電話およびデジタルカメラなどの多くの携帯形デバイスの動向は、より小形のデバイスすなわちより小さいフォームファクタへ向かっている。したがって、携帯形デバイスにおけるメモリセル数の増加および電池サイズの縮小は、多数のメモリセルへの同時プログラミング機能に一層の制限を課すものであった。
【０００９】
フラッシュメモリおよび他の不揮発性メモリにおける他の関心事は、性能、特に多状態メモリへプログラムする速度である。不揮発性メモリへの高速・高性能プログラムに現在使用されている主流のマルチレベルのデータ条件付きプログラミング方法論は、被制御バイアス（例えば、階段状の電圧パルストレインを介した）ステアリング（すなわち、制御）電極を実装することである。最短の時間で正確なプログラムが行われるように対応する目標状態の範囲にプログラムする（およびセル間のプログラミング特性の相違に対応する）のに必要な全範囲の電圧条件を網羅できるので、これは一般に好まれる方法であった。ホットエレクトロンによるプログラムをベースとするフラッシュセルおよびＥＥＰＲＯＭセルのほとんどでこの方法が有効であるが、これは、印加されるステアリング電圧によって高い非線形プログラミングレートを処理でき、電圧とともに指数的にプログラミング速度が増加するからである（低電圧読み出し／記憶状態の下で長期間の保持要件を同時に適えるための本質的な特徴）。また、固定された電圧と変化する時間を使用することは一般につまらないと考えられている。目標状態に対して電圧が低すぎると、プログラミングは受け入れ難いほど低速となるが、電圧が高すぎると、プログラミング速度が早すぎて多重レベルの記憶に要求される精度でプログラムされたレベルを適切に制御できなくなる。
【００１０】
このデータ書き込み条件付きステアリング方法論の好ましい実施形態の１つは、ある時点でプログラムされる一群のセルのそれぞれに、目標状態に応じた個別のステアリング条件を与えることである。これには、データに依存するセルへのプログラム条件／刺激を、（主としてこの機構へのプログラミングを有効または無効にするオン／オフスイッチとして作用する）ビット線だけではなく、セルのステアリングゲートにもセルごとに与えられるようにする「列指向 (column-oriented)」のステアリングに対応するセル／アレイを要する。そのような方法は、米国特許第６，３１７，３６３号（特許文献１４）に記載され、その全体が本願明細書において参照により援用されている。また、これにより、書き込まれる単位セルブロック内のすべてのステアリングゲートがつなぎ合わされているセル／アレイでは、共通の条件セットをすべてのセルに（すなわち、個々のセル目標データとは無関係に）強制するのではなく、各状態に最適な条件を使えるようにすることによって、マルチレベルの書き込み性能が向上する。
【００１１】
この列指向ステアリングの価格は、同時にプログラムされる数千のセルに対して個別のステアリング条件ニーズを提供するのに必要な大きなオーバーヘッド（ダイエリアおよび回路の複雑さ）となる。データ依存形記憶素子という条件がなければ、多状態のプログラミングはバイナリプログラミングより低速である。また、データ依存形プログラミングの実施形態の中には不経済なものがあったり、より大きな消去ブロック対してデータ依存形のプログラミングを実施する回路に必要な余分の領域を償却するために、最適な消去ブロックよりも大きな消去ブロックを使う必要があるものもある。動作速度および記憶容量の重要性が増せば、多状態不揮発性メモリのデータ依存形プログラミングの必要が高まるものの、オーバーヘッド領域や追加される列指向ステアリングの実施の複雑さがないことが好ましい。
【００１２】
本発明は、前述した問題および他の問題に対する解決策を提供するものであり、従来技術を上回る他の利点をもたらすものである。
【特許文献１】米国特許第５，０９５，３４４号
【特許文献２】米国特許第５，１７２，３３８号
【特許文献３】米国特許第５，６０２，９８７号
【特許文献４】米国特許第５，６６３，９０１号
【特許文献５】米国特許第５，４３０，８５９号
【特許文献６】米国特許第５，６５７，３３２号
【特許文献７】米国特許第５，７１２，１８０号
【特許文献８】米国特許第５，８９０，１９２号
【特許文献９】米国特許第６，１５１，２４８号
【特許文献１０】米国特許出願第０９／５０５，５５５号
【特許文献１１】米国特許出願第０９／６６７，３４４号
【特許文献１２】米国特許出願第０９／８９３，２７７号
【特許文献１３】２００２年２月２２日出願のKevin M. Conley およびYoram Cedar による「Pipelined Parallel Programming Operation in a Non-Volatile Memory System」という米国特許出願
【特許文献１４】米国特許第６，３１７，３６３号
【特許文献１５】米国特許出願第０９／８６５，３２０号
【特許文献１６】米国特許出願第１０／２５４，８３０号
【特許文献１７】米国特許第６，１０３，５７３号
【特許文献１８】２０００年９月２２日に出願されたJack H. YuanおよびJacob Haskell による「Non-Volatile Memory Cell Array Having Discontinuous Drain and Source Diffusions Contacted by Continuous Bit Line Conductors and Methods of Forming」という米国特許出願
【特許文献１９】米国特許第５，７６８，１９２号
【特許文献２０】米国特許第４，６３０，０８６号
【特許文献２１】２００２年１０月２５日に出願されたEliyahou Harari, George Samachisa, Jack H. Yuan,およびDaniel C. Gutermanによる「Multi-State Non-Volatile Integrated Circuit Memory Systems That Employ Dielectric Storage Elements」という米国特許出願
【特許文献２２】２００２年１月１８日に出願されたNima Mokhlesi, Daniel C. Guterman,およびGeoff Gongwer による「Noise Reduction Technique for Transistors and Small Devices Utilizing an Episodic Agitation 」という米国特許出願
【特許文献２３】米国特許出願第０９／７９３，３７０号
【特許文献２４】米国特許出願第１０／３１４，０５５号
【特許文献２５】米国特許第５，２７２，６６９号
【特許文献２６】米国特許出願第１０／７６６，２１７号
【特許文献２７】米国特許出願第１０／７６６，７８６号
【特許文献２８】米国特許出願第１０／７６６，１１６号
【特許文献２９】米国特許第６，２６６，２７０号
【特許文献３０】米国特許第５，５２１，８６５号
【特許文献３１】米国特許出願第１０／６００，９８８号
【非特許文献１】Hiromi Nobukata らによる論文「A 144Mb 8-Level NAND Flash Memory with Optimized Pulse Width Programming」，１９９９年発表，Symposium on VLSI Circuits Digest of Technical Papers,３９〜４０頁
【非特許文献２】Masayoshi Ohkawaらによる「A 98mm2 3.3V 64Mb Flash Memory with FN-NOR Type 4-level Cell」，１９９６年発表，IEEE International Solid-State Circuits Conference, ３６〜３７頁
【発明の開示】
【００１３】
本発明の目的は、不揮発性集積メモリデバイス内の、プログラムしにくい記憶素子を迅速かつ効率的にプログラムするシステムと方法を提供することである。本発明の主要な態様によれば、第１のレベルに制限される記憶素子を流れる電流により、多数の素子が同時にプログラミング処理を受ける。これら記憶素子の一部が所定の状態に達すると、それらはプログラムされるセルのセットから取り除かれ、引き続きプログラムされる素子に関する電流制限が引き上げられる。これにより、１素子あたりに流れる電流の量が増加するが、電流が流れる素子の数が減少するため、プログラムしにくい記憶素子には依然として大きな電流を印加しつつ、流れる累積電流を低レベルに維持できる。
【００１４】
フラッシュＥＥＰＲＯＭメモリを用いる一実施形態では、プログラム可能なメモリデバイス内のメモリセルを迅速かつ効率的にプログラムするための回路が設けられ、この回路はプログラミング速度をほとんどもしくは全く下げずに瞬間的および平均的なプログラミング電流を減少させる。一般に、その方法は、選択したメモリセルの各々を通るドレイン−ソース間電流（ＩDS）を、ソース電圧を上昇させること（ソースデバイアス）により所定レベルに制限しながらプログラムすることを目標とするメモリセルの種々のゲートおよびドレインに電圧波形のセットを印加することと、少なくとも１つのプログラミングパルスをメモリセルに印加することとを含む。さらにプログラムする必要があるセルに対して、制限されたＩDSを上昇させ、さらなるプログラミングパルスを印加する。
【００１５】
一連の実施形態において、本発明は、粗密(coarse-to-fine)プログラミング技術に適用される。一般に、その方法は、プログラミングブロックに属するすべてのセルを個々の粗い目標しきい値に対して同時にベリファイし、それぞれの粗いプログラミングしきい値を既に超えているしきい値を持つセルをロックアウトするステップと、その粗いプログラミングしきい値に達していないこれらのセルにプログラミングパルスを印加するステップとを含む。この処理を繰り返すが、繰り返されるプログラミングステップの各々は、コントロールゲート（ステアリングゲート）プログラミング電圧パルスを所定の粗い増分値ずつ増加させる。これは、プログラミングブロック内のすべてのセルをそれぞれの粗いしきい値にプログラムするまで或いは粗いパルスの所定最大数に達するまで継続できる。
【００１６】
一実施形態では、ある所定数の粗いパルスが消耗され、それぞれの粗い目標にプログラムされていないいくつかのセルがまだ残っていれば、この時点でソースデバイアス条件を緩和または引き上げることができ、また、すべてのセルがそれらの粗い目標に達するか、または許容される粗いパルスの別の所定最大数に達するまで、プログラム−ベリファイ処理を繰り返すことができる。
【００１７】
この時点で、プログラミングブロックに属するすべてのセルを、その個々の細かいプログラミング目標しきい値に対して同時にベリファイすることによって細かいプログラミングフェーズが開始される。しきい値がその細かいプログラミングしきい値を既に超えているこれらセルをロックアウトし、細かいプログラミングしきい値に達していないこれらセルにプログラミングパルスを印加する。（各セルのコントロールゲートに印加される最初の細かいプログラミングパルスは、各セルに印加される最後の粗いプログラミング電圧パルスから、粗密ステップバック電圧と呼ばれる所定量だけ少なくできる。）プログラム−ベリファイステップを繰り返すが、繰り返されるプログラミングステップの各々は、プログラミングブロック内のすべてのセルがそれぞれの細かいしきい値にプログラムされるまで、または細かいパルスの所定最大数に達するまで、プログラミングパルスを所定の細かい増分値だけ増大する。最大数の細かいパルスが消耗され、それぞれの細かい目標にプログラムされていないいくつかのセルがまだ残っていれば、その場合も、この時点でソースデバイアス条件を緩和または引き上げることができ、またすべてのセルがそれらの細かい目標に達するか、またはデバイアスでない許容される細かいパルスの別の所定の最大数を超えるまで、プログラム−ベリファイ処理を繰り返す。
【００１８】
この方法は、不十分にプログラムされている各メモリセルにさらに高いＩDSを供給するステップの前に、プログラムされているメモリセルをオフにする別のステップを含むことが好ましい。
【００１９】
一実施形態において、ＩDSを制限するステップは電流制限器を用いて行われ、プログラミング中のメモリセル内の各記憶ユニットにさらに高いＩDSを供給するステップは、電流制限器を無効にすることを含む。あるいは、電流制限器は、多くの所定のレベルのうちの１つにＩDSを制限することができ、不十分にプログラムされた各メモリセル内の各ＦＥＴにさらに高いＩDSを供給するステップは、不十分にプログラムされた各メモリセル内の各ＦＥＴを通るＩDSを所定のレベルのうちの高いレベルに制限するステップを含む。
【００２０】
別の実施形態では、記憶ユニットを通る電流を電流制限器によって制限しながら、所定の最大数以下のインテリジェントに定められた個数のプログラミングパルスをプログラミングブロック内の各セルに印加する。その後、他の所定の最大数以下の、第２のインテリジェントに定められた数のプログラミングパルスを、さらに高い電流を供給する必要があるプログラミングブロック内の、プログラムしにくい各セルに印加する。さらに別の実施形態では、所定数のメモリセルがプログラムされるまで、選択された各メモリセルにプログラミングパルスを印加する。その後、さらに高いＩDSが供給される残りのプログラムしにくいメモリセルに対して、多数のプログラミングパルスを印加する。あるいは、その最終目標しきい値電圧に完全にプログラムされない最後の数個の極めてプログラムしにくいセルを残して、少なくとも第２の所定数のメモリセルがプログラムされるまで、さらに高い電流が供給される各メモリセルにプログラミングパルスを印加できる。これら最後の数個のセルの起こりうる存在によって生じる誤りを訂正するために、誤り訂正符号に依拠することができる。
【００２１】
本発明の方法および回路は、多くの不揮発性記憶ユニットを有する不揮発性メモリデバイスに特に有用である。一般に、この回路は、（ｉ）選択された記憶ユニットの一対の端子に電圧差を印加できる電圧電源と、（ｉｉ）選択された各記憶ユニットを通る電流（ＩDS）を所定のレベルに制限できる電流制限器と、（ｉｉｉ）選択された記憶ユニットにプログラミングパルスを印加できるプログラミング支回路と、（ｉｖ）少なくとも所定数のプログラミングパルスを選択された記憶ユニットに印加した後、プログラムしにくい記憶ユニットの各々にさらに高い電流レベルを許可するように電流制限器を制御できるメモリチップ内の周辺回路セットとを含む。一実施形態では、内部メモリチップの周辺回路は、電流制限器を無効にすることにより、プログラムしにくい記憶ユニットの各々にさらに高い電流を供給するように構成されている。あるいは、電流制限器は多くの所定レベルの１つに電流を制限でき、内部メモリチップの周辺回路は、電流制限器が、所定数のプログラミングパルスを選択されたメモリセルに印加した後、多くの所定レベルのうちの高いレベルの電流をプログラムしにくいメモリセルの各々に供給するような制御を行うように構成されている。
【００２２】
さらに別の実施形態では、内部メモリチップの周辺回路は、所定数のプログラミングパルスを選択されたメモリセルに印加した後、プログラムしにくいメモリセルの各々に高電流を供給するために電流制限器を制御するように構成されている。
【００２３】
さらに別の実施形態では、内部メモリチップの周辺回路は、所定数の選択されたメモリセルをプログラムした後、プログラムしにくいメモリセルの各々に高電流を供給するために電流制限器を制御するように構成されている。さらに別の実施形態では、消去回復という別名で知られているソフトプログラミング処理に本発明の様々な態様を適用できる。なお、論理セクタから既にマップアウトされ、ソースデバイアス状況下でソフトプログラムしにくい欠陥メモリセルが存在する場合がある。（オフにされるべき）選択解除された過剰消去メモリセルが実際に導通する際に読み出しエラーを招く寄生電流経路を取り除くために、これらメモリセルを接地されたソースでソフトプログラムしてもよい。
【００２４】
本発明の別の態様において、電流ベースの手法は、選択された記憶素子を流れる電流を、素子の目標状態に基づいてプログラミング処理中に制限する。この態様によれば、プログラミング処理中にセルを流れる電流の限界は、記憶素子をプログラムする目標値の関数である。より高い状態にプログラムされる素子の許容電流は、その状態をより高速に変更できるようにする、より高い限界に設定される。これにより、同じ共通ステアリング（コントロール）ゲートプログラミング電圧を使いながら、任意の目標状態にプログラムするのに必要とされるパルス数を収束させることが可能となる。変形例では、システムは目標状態に基づいてプログラミング中にビット線電圧を設定することもできる。
【００２５】
一連の実施形態において、これらの態様は、ソース電極に接続された定電流シンクを使ったソース側電流制限を用いることによって実施でき、電流値は各セルをプログラムすべき状態の関数である。特定の実施例は、粗い−細かいプログラミング技術に基づくものであり、ここで、細かいプログラミングフェーズの限界は、１つまたは２つのデータ状態でオフセットされることを除き、粗いプログラミングフェーズの限界と同じである。前述した「限界」という用語は、プログラム−ベリファイフェーズ中にステアリング（コントロール）ゲートに印加される電圧のことを言う。すなわち、本発明の別の態様によれば、状態Ｎの細かいベリファイ動作のベリファイ電圧を、状態（Ｎ＋１）の粗いベリファイ動作のベリファイ電圧と同じ電圧値とすることができ、それによって種々の粗いおよび細かい電圧をセンス増幅器コンパレータに供給するのに要するバス線の本数が減り、それらを個々のセンス増幅器に復号化する複雑さも減る。  
【００２６】
本発明の他の態様、特徴および利点は、添付図面と組み合わせて読まれるべき例示的な実施形態の以下の説明に含まれる。
【００２７】
本発明の前述した、および他の種々の特徴および利点は、添付図面とともに以下の詳細な説明を読めば明らかになるであろう。
【発明を実施するための最良の形態】
【００２８】
図１は、不揮発性メモリアレイ１００の一部の例示的な実施形態を示す。この特定の実施形態において、各記憶ユニットは、ソース側注入によってプログラムされるデュアルフローティングゲートＥＥＰＲＯＭユニットである。例えば、個々の記憶ユニット１０１は、仮想接地構造のビット線ＢＬα3 ，ＢＬα4 の間に接続される選択ゲートトランジスタの両側にフローティングゲートトランジスタα6 ，α7 を有する。図１には、アレイ１００の選択線０および１に接続される２つの行と、２つのブロック、すなわちα領域およびβ領域が示されているが、実際のアレイは概してもっと大きい。個々のフローティングゲートトランジスタは、それぞれが２つ以上のデータ状態を記憶できる。
【００２９】
本発明の種々の態様は図１に示されている特定タイプのアレイにこだわらないが、本発明の多くの態様を簡単に示すことができるため、例示的な実施形態としてこの構造を少なからず用いる。背景技術のセクションで説明したように、現在の不揮発性メモリシステムは極めて多数の記憶ユニットを同時にプログラムすることが多い。例えば、大規模な並列プログラミングは、２００２年２月２２日出願のKevin M. Conley およびYoram Cedar による「Pipelined Parallel Programming Operation in a Non-Volatile Memory System」という米国特許出願（特許文献１３）であり、本願明細書において参照により援用され、本願明細書に含まれる参考文献である。これら記憶ユニットの各々をどの程度迅速にかつどのレベルまでプログラムできるか、すなわちそれらの「プログラマビリティ」は、以下に説明するように、プログラミング処理中にトランジスタのチャネルを流れる電流の量に依存する。すべての累積電流を制御するために、平均でもピークレベルでも、電流制限デバイスをプログラムされるセルのソース線上に配置することができる。これが図１に示され、ここで電流制限器１０３がトランジスタα0 およびトランジスタα3 の一方または両方に対してＩα1,lim の最大電流レベルを設定し、電流制限器１０５がトランジスタβ0 およびトランジスタβ3 の一方または両方に対してＩβ1,lim の最大電流レベルを設定し、プログラムされる（図示せず）その他のセルは同様に制限される。
【００３０】
これを達成するための方法の１つは、ソースのデバイアスによるものであり、ソース電圧を上昇させることによりドレイン−ソース間のプログラミング電流を制限するように作用する。これによって、ソースとそれに対応するドレインとの間に直列に入っている（記憶データを含む）すべてのトランジスタのしきい値電圧が基板効果によって増加し、また、ドレイン−ソース間電圧が減少し、それによってプログラミング電流が小さくなる。従前のソースデバイアスはオンまたはオフのいずれかであると考えられた。それまでの設計を越える改善であるが、この方法は十分ではない。
【００３１】
欠点の１つは、各セクタ内に、プログラムするのに高いプログラミング電流または長い時間を要する少数のメモリセルが一般に存在するということである。このようにプログラムしにくいメモリセルが存在する根本的原因は多々あり、限定的にではないが、例えば、１）セル容量結合比に影響を及ぼすセルの相違、２）ドレイン／ソース接合特性、３）セル酸化物の厚さのばらつき、４）種々の材料界面の粗さ、５）酸化物、チャネルおよびセルトランジスタの接合部における精密な欠陥／結合切断などが挙げられる。したがって、満足できる大きさのメモリおよび満足できる短さのプログラミング時間を得るには、これらセルを高電圧でプログラムすることが望ましい。しかし、従前のソースデバイアスは工場内で設定され、チップ寿命への関与は変わらない。
【００３２】
一実施形態では、一定の電流シンクを用いてドレイン−ソース間電流をソースから取り出すことによってソースデバイアスを達成する。理想的な一定の電流シンク（ソース）は、定電流を維持するために、時変負荷に瞬時に適合し、（限られた範囲に制限された）ソースに可変電圧を印加する。ｎ形トランジスタにおいて、デバイアスは、正電圧をソースに印加することを指す。この正電圧は１つのプログラミングパルス中でも変化する。従って、この実施形態では、デバイアスの電圧レベルが一定の電流源により動的に制御されるという意味でデバイアスは一定ではない。しかし、同じ実施形態では、デバイアスの電流レベルは一定であるので、この意味では、デバイアスを一定であると言うことができる。
【００３３】
前述したソースデバイアス方法では、このオプションは、工場でオンまたはオフのいずれかに設定され、すべてのチップついてチップの寿命の間、Ｉα1,lim ＝Ｉβ1,lim ＝Ｉγ1,lim ＝．．．＝Ｉlim で変わらないままである。刷新事項は、プログラム／ソフトプログラムされるべきセルがいくつか残っている場合に、種々のＩ-,lim ｓ（Ｉα1,lim ，Ｉβ1,lim ，．．．）を独立して変更することにより、各セクタのプログラミングの終結に向かってソースデバイアスを動的にオフに転換することである。プログラムされるべきごくわずかなセルが残っている場合にだけ、接地にされたソースのプログラミングが用いられるため、電流を引き込むのはほんの少しのセルでしかないので、１セルあたりの過電流によって過度のチップ電流消費が生じることはない。一例として、接地にされたソースのプログラミングがプログラミング電流に１０倍の増大をもたらせば、各プログラミングユニットのセルの１０％まで、または「かなりの量（チャンク）」を、接地にされたソースを用いて同時にプログラムすることができ、このときにセルの残りの９０％はロックアウトされている。
【００３４】
本発明は図１に示されるアレイおよび記憶ユニット構造体に限定されるものではないが、この構造体は、他のＥＥＰＲＯＭおよびフラッシュシステムに見られる多くの特徴を含むので例示的な実施形態として有用である。図１は、各々が複数のフローティングゲートを持つ多状態記憶ユニットの仮想接地アレイを示す。このように、記憶ユニット自体がＮＯＲ形アーキテクチャ内に配置され、各記憶ユニットは小形ＮＡＮＤアレイとの類似点が多々ある。一般に、メモリは、前に参照により援用されている種々の参考文献に記載されている種々のＮＡＮＤまたはＮＯＲアーキテクチャであれば、いずれを用いることもできる。（１０１内のα6 などの）各記憶ユニット内のフローティングゲートトランジスタの１つを無視することにより、記憶ユニットは選択ゲートを有する従来のフローティングゲートトランジスタに降格される。この考察は、選択ゲートがないかまたは側壁構造体により置き換えられている場合、仮想接地アレイ以外の構造が用いられている場合、および記憶ユニットがソース側注入以外の技術によりプログラムされる場合にまで、容易に展開される。記憶ユニットを、どちらか一方の端部が選択トランジスタと直列接続される多数のフローティングゲートトランジスタを有するＮＡＮＤストリングとすることもできる。例示的な実施形態のデュアルフローティングゲート構造体でさえも多くの変形例が可能であり、例えば、フローティングゲートの消去はチャネルを通して行うこともできる。本願明細書で使用する、フローティングゲートの実施形態における「記憶ユニット」という用語は、一連の１つ以上のフローティングゲートトランジスタのことを指し、場合によっては１つ以上の選択ゲートトランジスタのことを言う。これらの様々な構造の詳細については、背景技術のセクションで援用されている参考文献に記載されている。ソース側注入および仮想接地アレイの双方に関係する種々の問題点は、２００１年５月２５日出願の米国特許出願第０９／８６５，３２０号（特許文献１５）に記載されている。この特許出願は、その全体が本願明細書において参照により援用され、本願明細書で引用される参考文献である。
【００３５】
本発明の種々の態様は、個々の記憶ユニットを流れる電流にプログラマビリティが依存している多数の記憶ユニットを並列にプログラムすることに関するものであるので、これら態様は、電流に依存するプログラマビリティを有する他の形態の記憶ユニットの並列プログラミングにも適用できる。また、読み出し処理における電流制限は、本願明細書において参照により援用されている２００２年９月２４日出願の米国特許出願第１０／２５４，８３０号（特許文献１６）に記載されている。以下では、「記憶ユニット」および「アレイ」がこれら構造のいずれかを指す場合があるが、図１の動作が参照されることが多いのでこれを手短に詳述する。
【００３６】
図１の構造を持つ不揮発性メモリは、米国特許第５，７１２，１８０号（特許文献７）、第６，１０３，５７３号（特許文献１７）および２０００年２月１７日出願の米国特許出願第０９／５０５，５５５号（特許文献１０）および２０００年９月２２日に出願されたJack H. YuanおよびJacob Haskell による「Non-Volatile Memory Cell Array Having Discontinuous Drain and Source Diffusions Contacted by Continuous Bit Line Conductors and Methods of Forming」という米国特許出願（特許文献１８）に記載されている。これら特許および特許出願は、いずれもサンディスク  コーポレイションに譲渡され、本願明細書において参照により援用されている。これらセルは、物理的フローティングゲート記憶トランジスタ１個あたり５つ以上の論理ビットを記憶できる。多くの考察は、セルの構造でなく、アレイの構造に基づくので、フローティングゲートを有しない不揮発性メモリを用いる別の実施形態を用いることもできる。例えば、いずれも本願明細書において参照により援用されているEitan による米国特許第５，７６８，１９２号（特許文献１９）およびSatoらによる米国特許第４，６３０，０８６号（特許文献２０）に記載されたＮＲＯＭまたはＭＮＯＳセルなどのＮＲＯＭまたはＭＮＯＳセルも用いることができ、同様に、本願明細書において参照により援用されている２００２年１０月２５日に出願されたEliyahou Harari, George Samachisa, Jack H. Yuan,およびDaniel C. Gutermanによる「Multi-State Non-Volatile Integrated Circuit Memory Systems That Employ Dielectric Storage Elements」という米国特許出願（特許文献２１）に記載された誘電記憶素子などの誘電記憶素子を用いることもできる。図２Ａおよび２Ｂは、複数のフローティングゲートを有するメモリセル構造体の一実施形態の上面図および断面図をそれぞれ示すが、これらの図は、前に参照により含まれている米国特許第５，７１２，１８０号（特許文献７）から採用されたものである。図２Ｂの断面図に示されているように、ビット線（ＢＬ１）７１１および（ＢＬ２）７１２の２つのソース／ドレイン領域間に記憶ユニットのチャネルが形成されている。このチャネルは、左フローティングゲート（ＦＧＬ１２）７８１および左コントロールゲート（ＣＧＬ２）７７１の下にある左フローティングゲートチャネル７６１と、右フローティングゲート（ＦＧＲ１２）７８３および右コントロールゲート（ＣＧＲ２）７７３の下にある右フローティングゲートチャネル７６３と、これらの間に位置しかつ選択トランジスタ（Ｔ１２）７７２の下にある選択チャネル７６２という３つの領域に細分される。
【００３７】
図２Ａに示されているように、この構造体では、（ＳＧ１）７２０などのワード線が、（ＢＬ１）７１１および（ＢＬ２）７１２などのビット線を横断してアレイを形成している。この場合、アレイ内のメモリセルの位置はこれら線の交点によって定められる。例えば、選択トランジスタ（Ｔ１２）７７２を備える図２Ｂのセルは、ワード線（ＳＧ１）７２０に沿って（ＢＬ１）７１１と（ＢＬ２）７１２との間にある。コントロールゲートは、一般的な構造体のように行に沿っているのではなく、ビット線に平行な列に沿って接続される。したがって、電圧をコントロールゲート線（ＣＧＬ２）７７１に印加することにより、トランジスタ（Ｔ１２）７７２を含むセルのゲートに印加されるだけでなく、ビット線（ＢＬ１）７１１と（ＢＬ２）７１２との間の列内にあるすべてのセルの左コントロールゲートにもこの電圧が印加される。
【００３８】
図３Ｂは、図２Ａおよび２Ｂのメモリセルをはじめとするメモリセルのアレイの一実施形態を示す回路図であり、図３Ａは、これらメモリセルの等価回路である。セルのフローティングゲート７８１および７８３は、独立にプログラムしかつ読み出すことができる。例えば図３Ａの右フローティングゲート７８３をプログラムするために、例えば８ボルトのオーバードライブ電圧が左コントロールゲート７７１に印加される。実際の値は決定的なものではなく、フローティングゲートに記憶されるデータ状態と無関係に左フローティングゲートトランジスタＴFGL を満足にオンに転換するのに足る値が取られる。左フローティングゲートトランジスタＴFGL が回路から効果的に取り除かれると、単独フローティングゲートのトランジスタをソース側注入法でプログラムするのとほぼ同じように右フローティングゲートトランジスタＴFGR をプログラムできる。
【００３９】
規則的なプログラミング動作において、ドレインは約５ボルト、概して４〜７ボルトに再び設定され、ソースは接地に設定されおよび／または電流制限装置を介して接地接続される。列内のすべてのセルは同じ状態となる。選択された行に対し、選択ゲートに１．５〜５ボルトの電圧がかけられることにより、選択トランジスタがオンに転換される。これによりチャネルを通る電流が生じ、ソース側から電子が入る。選択されていない行では、選択ゲート線またはワード線は接地に保たれ、これら選択トランジスタはオフのままである。次に、例えば５〜１０ボルトのプログラミング電圧が右コントロールゲートに印加される。これら値は、選択トランジスタと右フローティングゲートトランジスタとの間のチャネル領域内に高い電場を発生させる。その結果、ソースから入った電子は、プログラミング電圧を受けて（右）フローティングゲートに注入される。左フローティングゲートをプログラムするために、ソースおよびドレインのように、左コントロールゲートおよび右コントロールゲートの役割が入れ替えられる。
【００４０】
図１に示されるように、隣接する記憶ユニットを同時にプログラムできるようにアレイをバイアスできる。例えば、フローティングゲートトランジスタα0 およびα3 は、いずれもプログラミング中にビット線ＢＬα1 をソース線として用いる。これにより、種々の線をどのようにバイアスしたかに基づいて、また、速度および精度要件に従って、これら２つのトランジスタを一緒にプログラムすることもできるし、異なる実施例で別々にプログラムすることもできる。
【００４１】
Ｃ31L およびＣ31R のそれぞれの結合によりまたはチャネル消去をはじめとする別の方法により、左フローティングゲートおよび右フローティングゲートの両方を消去するように消去電圧を選択ゲートに印加することによってフローティングゲートトランジスタを消去できる。消去およびその他の動作に関する詳細は、前に参照により援用されている米国特許第５，７１２，１８０号（特許文献７）に記載されている。そこで記載されているように、読み出しまたはベリファイ動作の感知処理では、感知されていない記憶ユニット内のトランジスタは完全にオンに転換されるが、感知された状態にあるトランジスタは当業者には周知の種々の技術によって処理可能である。チャネル消去については、ＮＡＮＤアーキテクチャを背景としたものであるが、前に援用されている米国特許出願第０９／８９３，２７７号（特許文献１２）に詳述されている。２００２年１月１８日に出願されたNima Mokhlesi, Daniel C. Guterman,およびGeoff Gongwer による「Noise Reduction Technique for Transistors and Small Devices Utilizing an Episodic Agitation 」という米国特許出願（特許文献２２）に数多くの感知技術が記載されている。例えば二分探索によってセルがどの可能データ状態に属するかを判断するのではなく、セルの状態を表すパラメータと目標値とを検証処理によって比較するという点で、ベリファイ処理とデータ読出処理は異なっている。
【００４２】
プログラムしにくいセルへの応用
本発明に戻ると、本発明の種々の態様は、１）複数の記憶ユニットの大規模な並列書き込み、２）記憶ユニット１個あたりの比較的低い速度またはプログラマビリティの可能費用でピークおよび平均累積出力を管理するために、各記憶ユニット書き込中の電流を制限すること、３）各記憶ユニットが目標状態に達したら、プログラミングを終了した各記憶ユニットと記憶ユニットの電流引き込みとをロックアウトすること、４）まだプログラム対象のこのような記憶ユニットの個数が所定の限界値を下回った後および／またはプログラミングパルスの数を超えた後、電流制限の大きさを減少させて（すなわち、記憶ユニット電流を増加させて）、プログラミング速度／プログラマビリティを増大させることを含む。記憶ユニット数が進捗目標値よりも少なくなるにつれて、これら概念を漸次適用できる。
【００４３】
記憶ユニット１個あたりの瞬間的および平均的なプログラミング電流を制限するために、一定の電流シンクがプログラミング電流を制限する役割を果たす。図１〜３の例では、この電流シンクはソース電圧を効果的に上昇させることによってドレイン−ソース間のプログラミング電流を制限する。この正のソース電圧はドレイン−ソース間の電位差ＶDSを減少させ、各記憶ユニットのソースとドレインとの間で直列に存在する３つのトランジスタ（２つのフローティングゲートトランジスタと１つの選択トランジスタ）のすべてのしきい値電圧を基板効果によって増大させ、これによりプログラミング電流を減少させる。そうすることで、記憶ユニットの最大の達成可能なコントロールゲートしきい値電圧またはステアリングゲートしきい値電圧も制限する。各プログラミングユニット内（例えば、セクタまたはプログラミングブロック）では、プログラムしにくい少数のセルが存在する場合がある。大きいメモリしきい値ウィンドウを有するために、このようなセルを高いしきい値電圧にプログラムすることが可能である。
【００４４】
一実施形態では、ある数の最大コントロールゲートプログラミングパルスが既に印加された後でまだプログラミングからロックアウトされていない最後のいくつかの記憶ユニットに印加される最後の数個のパルスに対する定電流条件を動的に引き上げることにより、これらプログラムしにくい記憶ユニットを、必要とされる高いしきい値電圧にプログラムすることが可能となる。ソースデバイアスに依存してプログラミング阻害条件に対応するのであれば、接地ソースによるプログラミングの周波数を限定して阻害メカニズムを最小限に抑えることができる。接地にされたソースのプログラミング事象の周波数監視にイベントカウンタを適用することもできる。図４Ａは、図１の実施形態による記憶ユニット４０１および電流制限器４０３の第１の例示的な実施形態を示す。この例では、記憶ユニット４０１はビット線４３３，４３１間にノードＡ，Ｄでそれぞれ接続され、介在する選択トランジスタ４１３にノードＢ，Ｃを介してそれぞれ接続されたフローティングゲートトランジスタ４１１および４１５により構成されている。あるいは、前述したように、ＮＡＮＤストリングなどの別のフローティングゲート記憶ユニットタイプまたはより一般的に非フローティングゲート技術に基づくユニットで記憶ユニット４０１を構成することもできる。本発明の態様を提供するために例示的な記憶素子４０１を用いる。これら種々の変更例の対応する動作は、前述した対応する参考文献に詳述されている。
【００４５】
図４Ａに記載されているように、プログラムされるかまたは読み出されるフローティングゲートはトランジスタ４１５であり、スイッチ４２１，４６１の位置は通常のプログラミングの場合が示されている。トランジスタ４１５の読み出しまたはベリファイを行うとき、ノードＡは接地された読み出し用のソースであり、ノードＤはセンス増幅器によって駆動される読み出し用のドレインであり、電流制限器４０３はノードＤから切断され、このことは、読み出し／ベリファイモードではスイッチ４２１が浮動位置にあることを意味する。単極／３投スイッチ４２１をボックス４０３内に示す。通常のプログラミング中、スイッチ４２１はノードＤをトランジスタ４４３のドレイン（図４Ａに示す位置）に接続し、最後のわずかなプログラミングパルス中に電流制限条件が引き上げられると、ノードＤは接地（右側の位置）に接続され、読み出し／ベリファイ中にノードＤは、電流シンクをノードＤから事実上切断する（中央位置で示される）スイッチ４２１のフローティングレッグに接続される。センス増幅器とノードＤとの間に接続される単極／単投スイッチ４６１は、読み出し中は閉じ、プログラミング中は開いている。したがって、プログラミング中、ノードＤはプログラミング用のソースとなり、センス増幅器はノードＤから切断され、電流シンク４０３がノードＤに接続される。
【００４６】
トランジスタ４１５のフローティングゲートへのソース側注入によるメモリセル４１５の典型的なプログラミング処理では、ビット線４３３上のレベルを上昇させることによってノードＡが高電圧に設定される。トランジスタ４１１および４１５は、そのそれぞれのコントロールゲートに前述した電圧を用いてオンに転換される。トランジスタ４１３は、そのしきい値電圧を０．５ボルト〜数ボルトだけ超えるレベルでこの選択トランジスタをオンに転換するに十分な高さのワード線（すなわち、選択ゲート）電圧を印加することによってオンに転換される。プログラミング中、ノードＤ（すなわち、プログラミング用のソース）は、通常、電流制限器４０３に接続されているが、電流制限器を回避すべきとき、ノードＤは接地される。記憶ユニット全体の両端の電圧はＶA −ＶD であり、プログラムされるトランジスタ４１５のチャネルの両端の電圧は、トランジスタ４１１，４１３にわたる降下に起因してＶA −ＶB に対して幾分少ない。スイッチ４２１がノードＤを接地接続している場合、全電圧ＶA は記憶ユニット４０１の両端間に設定される（この考察では、接地からＶDに維持する実際の回路で見られる他の電圧降下および過渡は無視する）。トランジスタ４１５をプログラムするために、そのチャネルに電流ＩDSを流し、電荷をそのフローティングゲート内に蓄えさせるプログラミング電圧でそのコントロールゲートにパルスが印加される。ノードＤがスイッチ４２１を介して接地に接続されている場合、ＩDSは一般に規制されない。
【００４７】
前述したように、回路に流れる電流の量を制御するために電流制限器４０３が用いられる。ノードＤがスイッチ４２１によってトランジスタ４１３を介して接地される場合、ＩDSは値Ｉprogを越えないように制限される。電流が制限されると、ノードＤ上の電圧は上昇し、基板効果が、選択ゲート４１３を通る電流を妨げることにより、３つのトランジスタのすべての電流を制限することになる。２つのフローティングゲートトランジスタ４１１および４１５は、電流の妨げを生じるよう、プログラミング中にそれぞれのしきい値をかなり上回ってバイアスされる。一定の電流シンク４０３の電流制限動作は、基板効果によって選択ゲートトランジスタのしきい値電圧を主として上昇させることによって達成される。電流制限の関与の有無にかかわらず、選択トランジスタは、ノードＡからノードＤまで電流を制限するトランジスタである。
【００４８】
例示的な実施形態では、ＮＭＯＳトランジスタ４４３および４４５の電流ミラーが用いられる。スイッチ４２１および４６１の配置はブロックＲ／Ｗ４５１によって制御される。実際の実施例では、スイッチ４２１は２つのトランジスタで構成できる。一方のトランジスタはノードＤと接地との間に位置し、４５０によってゲートが制御され、他方のトランジスタはノードＤと４４３のドレインとの間に位置し、やはり４５０によりゲートが制御される。スイッチ４６１は、ノードＤとセンス増幅器との間のトランジスタでもあり、このトランジスタのゲートも４５０によって制御される。２つのノード間にスイッチが配置されている場合、このスイッチは２つのノードに接続される置換え可能なソースおよびドレインである。コンテンションを生じさせないため、これらトランジスタをオンに転換するタイミングは、一方がオンに転換される前に他方がオフに転換されるようになっていなければならない。記憶ユニット４０１を通る電流は、スイッチ４２１の配置に応じて、Ｉprogを越えないように制限されたり、制限されなかったりする。一般に、接続接地または最大許容流を表すＩprog,nのいずれかに有効な幾つかの制限Ｉprog,1≦Ｉprog,2≦．．．≦Ｉprog,nが存在し得る。これにより、記憶ユニット中の電流は、これらｎまたはｎ＋１個の値のうちのいずれかとなることができる。
【００４９】
記憶ユニット４０１は、例えばα2 およびα3 を含む図１の記憶ユニットのいずれかに対応することができ、その場合、ビット線４３１および４３３はそれぞれＢＬα1 ，ＢＬα2 に対応し、電流制限器４０３は電流制限器Ｉα1,lim １０３に対応する。このような電流制限器がプログラミング用のソースとして作用するとき、アレイの各ビット線はこのような電流制限器に接続可能である。読み出し、書き込みおよび対応する制御回路ならびに電流制限器へのそれら接続は、図１には示されていない。
【００５０】
４０３をはじめとする電流制限器は、複数のビット線に同時に使用することができるようにする多くのレッグをそれぞれ有することができる。各ソース線の最大レベルを独立に制御できるように、各レッグは独立して制御できる。説明したように、多数の記憶ユニット、場合によっては数千個もの記憶ユニットが並列にプログラムされる。個々の記憶ユニットで見られるこの処理を図４に対して説明する。通常、電流ミラーは１つの入力トランジスタ４４５と、４４３のような何千もの出力トランジスタとを備え、ここで同時にプログラムされる多数のセルの各々が１つの出力トランジスタを有する。このように、例えば１μＡの入力電流は数千のセルで償却される。しかし、各セルがそれ自体の入力および出力トランジスタを備えていれば、ダイ寸法が増加するだけでなく、個別のミラーの入力トランジスタの１μＡの累積効果のために電流消費も上昇する。
【００５１】
図４Ａに戻って、プログラミング処理の開始時、プログラムするために記憶ユニットをバイアスし、電流レベルを制限器４０３によってＩprog（あるいは、２つ以上の制限を用いる場合はＩprog,1）に制限する。次に、センス増幅器４５３を用いて感知動作で散らばったトランジスタ４１５のフローティングゲートを同じ水準にする追加の電荷を蓄えるためにトランジスタ４１５のコントロールゲートにパルスを印加して、記憶ユニットの状態を目標値に対して比較する。記憶ユニットが目標値に対してベリファイすれば、例えば、ノードＤ上の電圧レベルを大きく上昇させることによって、さらなるプログラミングから記憶ユニットをロックアウトすることができる。記憶ユニットがベリファイしない場合は、処理が続行する。記憶ユニットがベリファイし、ロックアウトされれば、プログラムされる記憶ユニットの数と、対応する消費プログラミング電流が減少する。絶対数または割合、または（イベントカウンタ４５１により測定されるような）特定数のパルスの後、またはこれら２つの組み合わせに基づき、まだプログラム対象であるセルの数が特定数を下回ると、これら残りのプログラムしにくいセルへの電流制限を上昇させることができる。対応する電流制限器４０３内のスイッチ４２１はノードＤを接地接続できる。その後、プログラミングが終了するまで、またはプログラム不可能で欠陥のある記憶ユニットが見つかるまで処理が続く。後者の場合、この記憶ユニットはマップアウトされる。複数の限度を用いれば、電流制限のこの動的な上昇をＩprog,1，Ｉprog,2，．．．，Ｉprog,nによって漸次進めることができる。
【００５２】
図４Ｂは、図４Ａの実施形態の変更例である他の実施形態を示す。この場合、いくつかの電流値Ｉprog,iは制限回路４０３に利用可能であり、ここでｉ＝１，．．．，ｎであり、ｎ≧２、Ｉprog,1≦Ｉprog,2≦．．．≦Ｉprog,nである。ノードＤはプログラミング中は常にトランジスタ４４３のドレインに接続され、スイッチ４２１は単極／単投スイッチであるだけでよい。一定の電流シンクを用いる通常のプログラミングから接地にされたノードＤへの移行は、トランジスタの４４５のドレインノードに供給される、Ｉprog,iで示されるミラー入力電流を増分に増加させることによって、より漸進的に行うことができる。例えば、コントロールゲート電圧がパルス間で階段状になっていれば、Ｉprog,1を１μＡに設定することができる。しかし、プログラミングコントロールゲート電圧が、例えば１２Ｖという最大値に達したときに、充分にプログラムされていないセルがまだいくつか残っている場合には、次のプログラミングパルスを同じ最大コントロールゲート電圧とすることができるが、電流制限を１セルあたりＩprog,1＝１μＡから１セルあたりＩprog,2＝２μＡへ緩和でき、次のパルスを例えば１セルあたりＩprog,3＝４μＡの電流シンク値で印加できる。これにより、電流制限をすべて一度に完全に引き上げる移行よりも漸次的な移行が行われる。漸次的な方法の利点は、電流制限されていないプログラミングパルスの最初の印加時のオーバープログラミングの可能性が少なくなることである。同時にプログラムされるセルはすべて同時に最大コントロールゲート状態に達するが、これは独立に駆動されるコントロールゲートアーキテクチャには該当しないため、図４Ｂの漸次的な移行方法は、（独立に駆動されるコントロールゲートアーキテクチャとは対照的に）共通に駆動されるコントロールゲートを用いるアーキテクチャのほうが実施しやすい。
【００５３】
図４Ａおよび４Ｂにおいて、スイッチ４２１および４６１の制御は、コントローラによって、またはブロック４５１および４５３で略記されているようなメモリチップ上の内部周辺回路によって行われる。高速動作では、コントローラは、プログラムしにくいセルの存在に気付かないのはもとより、そのようなセルをプログラムしようとしないことが通常望ましい。このように、コントローラは、このコントローラにトランスペアレントなすべてのその後の活動により、プログラムされるべきデータと、このデータが行くべきアドレスと、プログラミングを開始するためのメモリチップへの命令とを変えるだけよい。メモリチップの内部周辺回路は、プログラミングが行われるまでは独立しているが、プログラミングが終了すると、メモリチップはＲＥＡＤＹ／ＢＵＳＹ（レディ／ビジー）信号の状態を変更することによってプログラミングの終了をコントローラに伝える。
【００５４】
図５は本発明の例示的な実施形態に関するフローチャートであり、この場合は図１〜４に示されるタイプの記憶素子を備えるメモリに粗い−細かいプログラミング技術を用いる。粗いモードおよび細かいモードを有するプログラミング技術の使用法は、本願明細書において参照により援用されている２００１年２月２６日出願の米国特許出願第０９／７９３，３７０号（特許文献２３）に記載されている。
【００５５】
プログラミングブロックに属するすべてのセルを、その個々の粗い目標しきい値に対して並列にベリファイするオプションのステップ５０１で処理が始まる。共通に駆動されるステアリングアーキテクチャでは、このベリファイおよびその後のベリファイを一連の下位ベリファイに細分する必要があり、それぞれの下位ベリファイが、セルのグループを同じ目標状態に対してベリファイする。同一プログラミングブロックに属するセルのグループのステアリングゲートのすべてが相互に接続されているとき、例えば、状態４にプログラムされるべき幾つかに２ボルトを印加しながら同時に、状態２にプログラムするように定められた別の幾つかに１ボルトを印加することは不可能である。したがって、各プログラミングパルスの後で、下位ベリファイのすべてまたは少なくとも１つのサブセットを実施しなければならない。１セルあたりに８状態という設計では、各プログラミングパルスに続いて７つのベリファイ動作を行う必要があり、最初のベリファイ動作は状態０と１とを区別し、２番目のベリファイ動作は状態１と２とを区別し、・・・７番目のベリファイ動作は状態６と７とを区別する。適切なプログラム−ベリファイ技術は、本願明細書において参照により援用されている２００２年１２月５日出願の米国特許出願第１０／３１４，０５５号（特許文献２４）にさらに詳述されている。セルの状態を示すパラメータ値、一般に電流または電圧は、前に参照により援用されている「Noise Reduction Technique for Transistors and Small Devices Utilizing an Episodic Agitation 」という米国特許出願（特許文献２２）に記載されているように、その目標値に対して比較される。ブロックが予めプログラムされている場合には、先行して消去処理が行われている。実施形態によっては、消去処理に続いて以下にさらに詳述されるようなソフトプログラミング処理が行われる。記憶ユニットが粗い基準値に対してベリファイすると、処理はステップ５２５の細かいモードに切り替わり、ベリファイしないとステップ５０３へ進む。
【００５６】
プログラミングを必要とする記憶ユニットが、例えばフローティングゲートトランジスタセルのソースおよびドレインの両側に電圧をかけることによってバイアスされ、電流が第１のレベルに制限され、ステップ５０５で、フローティングゲートセルのコントロールゲートにパルスを印加するなどのプログラミングが生じる。この後、別の粗いベリファイ（５０５）が続き、この場合も目標の基準が満たされればステップ５２５へ進む。セルをベリファイしなければ、コントロールゲートのプログラミング電圧を増加させ、別のパルスを印加し（５０９）、その後、ベリファイステップ５０５に戻る。ステップ５０５と５０９との間で、ステップ５０７が、最大コントロールゲートプログラミング電圧に達したかをチェックする。ステップ５０５，５０７，５０９のループはベリファイするまで、または、最大コントロールゲートプログラミング電圧に達するまで続き、ベリファイした場合はステップ５２５に進み、最大コントロールゲートプログラミング電圧に達した場合はステップ５１１に進む。
【００５７】
ステップ５１１，５１３および５１５は、コントロールゲートプログラミング電圧を最大値に保ちながら電流制限を引き上げるループを形成している。別の実施形態では、電圧を引き下げ、ステップ５０５〜５０９のループ中のようなステップにおける最大値まで再び上昇させることができ、所定の電流制限／最大電圧の組み合わせのパルスを２つ以上用いることもできるし、これらの組み合わせを用いることもできる。ステップ５１１で最初に電流シンクの値をチェックし、より高い値が有効であるならステップ５１３で増分させ、引き続きステップ５１５で別の粗いベリファイを行う。ステップ５１１で最大電流シンク値に達していれば、ステップ５１７に進む。
【００５８】
ステップ５１７，５１９，５２１および５２３により、最大コントロールゲートプログラミング電圧および最大プログラミング電流のパルスを記憶素子に多数回（ＮCmax）印加することが可能となる。ステップ５１７で、このようなパルスの数ＮCを増分させ、その後、パルスの数ＮC が最大値ＮCmaxを超えたかどうかをチェックし（５１９）、超えていなければ、パルスを印加する（５２１）。セルをベリファイするか、またはこれらの条件でパルスの最大数に達すると、ステップ５２５へ進む。
【００５９】
ステップ５２５は、細かい目標パラメータ値における最初のベリファイであり、省略可能なステップである。セルをベリファイしなければ、コントロールゲート電圧を下げ、ステップ５２９で微細プログラミング処理を開始する。ステップ５３１〜５５１は、粗いプログラミングフェーズでの対応するステップと同じである。しかし、セルを細かいベリファイステップ（ステップ５２５，５３１，５４１，５５１）のいずれかでベリファイした場合には、ステップ５２７でセルをロックアウトする。また、ステップ５４５で、最大コントロールゲートプログラミング電圧および最大プログラミング電流におけるパルスの最大数（ＮF ）が限界（ＮFmax）を超えていると、プログミングは失敗に終わり、対応するセルまたはこのセルが属するすべてのセクタをステップ５４７でマップアウトする。
【００６０】
消去回復という別名で知られているソフトプログラミングに本発明の様々な態様を適用できる。基本的にフラッシュセル消去は、セルの少なくなくともセクタ全体（通常はワード線）を消去する必要がある。この共通ワード線の種々セルの消去速度の相違により、確実に消去状態を示すのに必要とされる最小の下側しきい値電圧を超えてセルを消去することがしばしばある。ソフトプログラミングは、実際のデータプログラミングに先立って、過剰消去されたセルのしきい値を徐々に上昇させるのに用いられる技術である。これら技術のいくつかに関する詳細は、米国特許第５，１７２，３３８号（特許文献２）および第５，２７２，６６９号（特許文献２５）に記載されているが、いずれもサンディスク  コーポレイションに譲渡され、本願明細書において参照により援用されている。図１〜４の例示的な実施形態に特に適用できるソフトプログラミングの態様は、前に本願明細書において参照により援用されている２００１年５月２５日出願の米国特許出願第０９／８６５，３２０号（特許文献１５）に示されている。
【００６１】
メモリアレイでは、論理セクタから既にマップアウトされ、電源制限が関与するソースデバイアス状況下でソフトプログラムしにくい欠陥メモリセルが存在する場合がある。このようなセルが、過剰消去された状態でアレイ内に存在すれば、これらはデータでプログラムされない。セルが過剰消去されると、寄生電流経路を生じる可能性がある。これらセルがプログラムしにくい場合、最低レベルの電流制限を持つ標準のソフトプログラミング動作では、セルを過剰消去された状況から満足に取り出せないかも知れない。これらセルのしきい値を十分に引き上げるために、本発明をソフトプログラミング処理に適用できる。（オフにされるべき）選択解除された過剰消去メモリセルが実際に導通する際に読み出しエラーを招く寄生電流経路を取り除くために、これらメモリセルを接地されたソースでソフトプログラムしてもよい。本発明の他の実施例のように、第１の制限および接地にされたソース間で１つ以上の中間電流制限を用いることができる。
【００６２】
目標状態に応じた電流レベルのプログラミング
本発明の前述した態様は、記憶素子がプログラムしにくいかどうかに基づき、プログラミング中に記憶素子を流れる電流に複数の限界を設定する。プログラミング中に複数の電流限界を用いることは、他の用途に使うことも可能である。様々な限界を用いる一例は、いずれも２００４年１月２７日に出願され、本願明細書において参照により援用されている米国特許出願第１０／７６６，２１７号（特許文献２６）、第１０／７６６，７８６号（特許文献２７）、第１０／７６６，１１６号（特許文献２８）に記載されているように、粗い−細かいプログラミング方法の一環として存在し、ここで、限界は、セルが粗いプログラミングモードにあるかまたは細かいプログラミングモードにあるかに基づく。プログラミング中に様々な限界を用いる別の例は、限界を、セルの目標状態の関数（以下に記載される本発明の態様）とすることである。
【００６３】
背景技術のセクションの後半部分で先行技術に関して記載された問題に鑑み、本発明では、既存の列指向であるビット線を用いるのではなく、同じような「ステアリング」の役割にデータ依存形セル制御線を用い、それによってオーバーヘッド領域と、追加される列指向ステアリング実施の複雑さを取り除くことを考える。本発明は、データプログラミングの許可／禁止を可能にするものというビット線の従来の役割を拡張するものであり、また、そのための正確なプログラミングレベル制御を達成する手段を提供するものである。ホットエレクトロンプログラミングまたは他の技術では、ビット線電圧による制御は極端に非線形となる傾向があるので、そのような手段を開発することが課題である。（はるかに広範囲の電圧状態にわたるプログラミング速度の制御を要する）魅力のない高精度マルチレベルプログラミングのビット線電圧生成−電圧制御のごく小さい増加を越え、帰結プログラミングの速度は非常に急速に成長する。
【００６４】
本発明の原理は、既存のものおよびこれから開発される新技術の使用が考えられているものなど、種々のタイプの不揮発性メモリに適用できる。しかし、本発明の実施例は、記憶素子がフローティングゲートであるフラッシュ式の電子的に消去可能でプログラム可能な読み出し専用メモリ（ＥＥＰＲＯＭ）について説明する。前出したセクションでは、基本記憶素子としてデュアルフローティングゲートセルを用いて説明を行った。以下の記載では単一フローティングゲートセルについて説明するが、この単一フローティングゲートセルは、ＮＯＲアレイの一部でもよいし、前述した４０１などのＮＡＮＤストリングすなわちデュアルフローティングゲート素子の単一フローティングゲートであってもよい。
【００６５】
図６は３つの端子Ｘ，Ｙ，Ｚを備える不揮発性メモリ記憶素子６０１、この場合は単一トランジスタフローティングゲートＥＥＰＲＯＭセルを示す。端子Ｘはフローティングゲート６２１の上のコントロールゲート６１１に接続され、端子ＹおよびＺはソース／ドレイン領域に接続されている。より概括的には、ＥＥＰＲＯＭすなわちフラッシュメモリの場合、記憶素子は、１つ以上のフローティングゲートトランジスタと、ことによると直列接続された複数の選択ゲートとから構成され、これにより種々のコントロールゲートに複数の追加端子が必要となることがある。種々のアレイタイプおよび他タイプの記憶素子にわたるそのようなフラッシュセルの変形例の例については、いくつかの例示的な実施形態の後で説明する。
【００６６】
フローティングゲートメモリセル６０１をプログラムする標準的な方法は、端子ＹとＺに電圧差を与え、端子Ｘでコントロールゲート６２１にパルスを印加し、その結果、チャネルを流れる電荷のいくつかがフローティングゲートへ移される。背景技術のセクションに記載されているように、一般に、階段状電圧パルスがコントロールゲートに印加され、ベリファイステップを交互し、セルがその目標状態のしきい値以上であることをベリファイすると停止される。消去されたセルをプログラムするか否かのバイナリメモリセルを用いるいくつかの例は別にして、プログラミング処理中の端子ＹおよびＺ間の電圧差および電流はデータ依存形ではない。端子Ｘ，Ｙの一方または両方は一般に、不揮発性セルのアレイのビット線に沿って接続される。本発明は主として、記憶素子が３以上のデータ状態を記憶する場合に関する。本発明の主要な態様によれば、図６のセル６０１などの多状態記憶ユニットに対してビット線管理データ依存形プログラミング技術が使用される。ビット線データ依存形プログラミング技術は、いずれも本願明細書において参照により援用されている米国特許第６，２６６，２７０号（特許文献２９）、米国特許第５，５２１，８６５号（特許文献３０）、Hiromi Nobukata らによる論文「A 144Mb 8-Level NAND Flash Memory with Optimized Pulse Width Programming」，１９９９年発表，Symposium on VLSI Circuits Digest of Technical Papers,３９〜４０頁（非特許文献１）、およびMasayoshi Ohkawaらによる「A 98mm2 3.3V 64Mb Flash Memory with FN-NOR Type 4-level Cell」，１９９６年発表，IEEE International Solid-State Circuits Conference, ３６〜３７頁（非特許文献２）に記載されているような電圧ベースの実施例を基礎とすることができる。以下の説明では電流ベースの手法を示すが、電圧ベースの実施例と組み合わせることもできる。電流ベースと電圧ベースは相補的だからである。
【００６７】
ターゲット状態に依存するプログラミング電流レベルの設定態様は、本願明細書において参照により援用されている米国特許出願第１０／６００，９８８号（特許文献３１）記載のものと多くの点で正反対で相補的である。この方法では、プログラミング中、記憶素子を流れる電流は一定値に保持されるが、ソースとドレインの間にかけられる電圧は目標状態に依存する。
【００６８】
電流ベースのプログラミング技法の目的は、繰り返すが、プログラミング特性の自然分布およびセルしきい値動作ウィンドウの全範囲をカバーする値から、自然分布だけをカバーする値へ、階段状のプログラミングパスルの数を減少させることである。既に述べたように、これらのプログラミング技術は、いずれも前に参照により援用されている米国特許出願第０９／７９３，３７０号（特許文献２３）、第１０／７６６，２１７号（特許文献２６）、第１０／７６６，７８６号（特許文献２７）、第１０／７６６，１１６号（特許文献２８）に記載されているものをはじめとする種々の粗い／細かいプログラミング技法と組み合わせることができる。
【００６９】
図６の例示的なメモリセルに戻って、ドレイン側注入プログラミングの場合、任意期間のプログラミング処理中にフローティングゲート６２１に移される電荷の量は、端子ＹおよびＺの間を流れる電流のみならず、フローティングゲート６２１とチャネルとの間に生じる電圧差に依存する。従来、プログラミング処理は、データに依存しないバイアス条件セットを端子に適用しながらプログラミング期間ごとにコントロールされた。前出したセクションでは、これは、端子Ｘでセルのコントロールゲート６１１にパルスを印加しながら目標データ状態の関数である端子ＹおよびＺ間の電圧差を用い、各プログラミングパルス後にベリファイ動作が続く共通ゲートに一連の階段状パルスを印加することによって展開された。この電流セクションは、目標データ状態に基づいて端子ＹおよびＺ間を流れる電流を制限する相補的な手法を採用する。
【００７０】
この電流ベースの手法では、端子Ｚと接地との間に電流制限デバイス６０３が配置される。初期状態（接地（通常は消去された）状態の場合もあるし接地状態でない場合もある、消去後状態か、または、処理が進んでいれば何らか他の状態または中間状態）のセルから開始し、目標データ状態が選択される。次に、端子ＹとＺとの間を流れることを許可される最大電流レベルが素子６０３によってレベルＩ＝Ｉ（目標状態）にセットされる。トランジスタ６４５を流れる電流は、端子ＹとＺとの間の電流を決定するトランジスタ６４３によって反映されるからである。例えば、電流制限デバイス６０３は電流ミラーを基礎とすることが可能である。次に、電荷をフローティングゲート６２１に移すためにコントロールゲート６１１にパルスが印加されると、端子Ｙをバイアスしてセルに電圧（前述したように、場合によってはデータ依存形）をかけることができる。（スイッチ６２１および６６１ならびにセンス増幅器６５３は、図４Ａおよび４Ｂの対応する素子と同じ機能を果たす。）
【００７１】
前出したセクションでは、しきい値が所望の目標値に達した記憶素子をロックアウトし、しきい値がまだ所望の目標値に達していないセルについては、ソース電圧を上昇させることによってその定電流を達成する定プログラミング電流シンクを用いてプログラムし続けるために、ソース側データ依存形のバイナリ式の電流制限を用いることを説明した。そこに記載したように、この処理では、セルのソース電圧を、プログラミング中にセルごとに変更する。これにより、そのソース電圧を例えば２．５Ｖに上昇させることによって、いくつかのセルはプログラム可能となり、他のセルはロックアウトされる。ここでは、すべてのセルは任意のプログラミングパルス中に同じコントロールゲートパルスでプログラムされるが、高い状態にプログラムされるセルと比較して、（コントロールゲート電圧の階段中に）低いしきい値目標に漸近的に接近するように低い状態にプログラムされるべきセルを許可するように、もっとアナログ的にこの制御の度合いを利用することによって、いろいろな態様でこの研究を展開する。
【００７２】
図６の例示的な記憶ユニットでは、セルがそのドレイン−ソース電流ＩDSとしきい値電圧ＶT の間にｌｏｇ（ＩDS）＝ｍ×ＶT ＋ｂの関係を有していることが分かる。傾きｍは、測定データから計算できるデバイス特性であり、切片ｂはコントロールゲートパルス電圧の関数である。コントロールゲートパルス電圧の開始値が選択できると、ｂの値を選ぶことができる。
【００７３】
ソース電極に接続された定電流シンクを使うことによりソース側電流制限を用いる実施例の表を示すために、この処理を特定のデバイス例について記載するが、電流値は各セルをプログラムする状態の関数である。デバイス例は、ｌｏｇ（ＩDS）＝ｍ×ＶT ＋ｂというふるまい(behavior)を有し、ここで、傾きｍは測定データから０．７７５と計算され、切片ｂは、１０Ｖで終わるコントロールゲートプログラミング電圧階段の場合は−０．６３３となる。コントロールゲートパルス電圧の開始値は制御可能であるので、５００ｍｖの状態間分離の場合に表１の値を得るには、０．２８６というｂの値が選択される。
2009503763.tif 000003
【００７４】
最初の欄はデータ状態であり、２番目の欄は対応するしきい値である。ここでは、しきい値０Ｖに対応する状態“０”から開始すると仮定している。３番目の欄は、ソース電極（図６の端子Ｚ）に接続された定電流シンクの例示的な値に対応する。その他の欄については以下に記載する。
【００７５】
例示的な実施形態は、目標状態ごとに異なる限界を用いる。一般に、この方法は少数の限界を使用できるので、いくつかの異なる目標状態が、ある限界を共用する場合がある。簡単な例として、状態１〜４がある１つの限界を共用でき、状態５〜７が別の限界を共用できる。この構成は本発明を最大限に活用するものではないが、オーバーヘッドを簡素化する。また、あるレベルを共用する状態を、処理の進行に伴って再グループ化することができる。
【００７６】
考慮中の種々の手法は、いずれも、プログラムされたしきい値電圧を緊密に分布させることを目的とするものであるので、これは、そうでない場合に可能であるよりも緊密となるプログラムされた分布を生じさせるために使用でき、同じ数の状態を小さいしきい値電圧ウィンドウにフィットさせることができ、したがってデバイスを低電力で作動させることができ、プログラム時間を短縮でき、および／または、より多くの状態を同一サイズのしきい値電圧ウィンドウに安全に格納できる。比較のために、比較される任意の２つの手法について状態間のマージンを同一に維持しながら、プログラミング分布が緊密化され得る同程度まで状態間分離を減少させることができる。この目的のため、状態間分離４００ｍＶの７つの状態をプログラムするのに必要な定電流シンク値の範囲を表２に示す。
2009503763.tif 000004
【００７７】
表２の各欄は表１のものと同じであるが、より狭い間隔に対応する値となっている。両表の右側にある付加的な２つの欄は、前に援用されている米国特許出願第０９／７９３，３７０号（特許文献２３）、第１０／７６６，２１７号（特許文献２６）、第１０／７６６，７８６号（特許文献２７）、第１０／７６６，１１６号（特許文献２８）に記載されているものなど、粗い−細かいプログラミング方法で用いられるものである。両方の場合とも、中央の欄が粗いプログラミングフェーズに用いられ、右側の２つの欄のうちの一方が細かいプログラミングフェーズに使用されるが、どちらが選択されるかは、細かいフェーズが、粗いフェーズに対してどのくらい細かくなるように設計されているかに依存する。
【００７８】
表１および２は一般的なセルに基づくものであるが、一般からの変動は例えば増分量２００ｍＶを有するコントロールゲート電圧を階段状に吸収し、特定のセルが粗いプログラミングを終了し細かいプログラミングを開始すると、任意の目標状態値を下回るＮ通りの状態に対応する電流シンキング値に動的に切り換えることによって細かいプログラミングを達成する。細かいプログラミングのオプション１はＮ＝１に対応し、細かいプログラミングのオプション２はＮ＝２に対応する。表１を参照し、セルを状態５にプログラムするためにオプション１を採用すると、粗いプログラミング中、電流シンク値が２４０ｎＡに設定され、細かいプログラミングフェーズの電流シンク値の場合は１１７ｎＡに切り換えられる。この低いプログラミング電流は、最初の数個の細かいプログラミングパルスの間、フローティングゲートに注入される電荷のパケットの大きさを減少させる。粗いおよび細かいフェーズのそれぞれに対して様々な値のセットを用いることが可能であるが、値を共有することで細かいフェーズの複雑さが緩和される。例えば、いずれかの表の状態５の粗いプログラミングを再び参照すると、この同じ値がオプション１の状態６の細かいプログラミングとオプション２の状態７の細かいプログラミングで共用されている。
【００７９】
前に参照により援用されている、いずれも２００４年１月２７日出願の米国特許出願第１０／７６６，２１７号（特許文献２６）、第１０／７６６，７８６号（特許文献２７）、第１０／７６６，１１６号（特許文献２８）にさらに十分に記載されている粗い−細かいへの移行のベリファイに関する種々の論点は本発明の手法に適用可能である。例えば、１５０ｍＶの「ルックアヘッド」デルタは、粗いベリファイ動作中のセルの読み出しソース（隣接するビット線）へ１００ｍＶ印加して、細かいプログラミングフェーズの接地された読み出しソースに切り換えることによって実現される。この手法では、開始コントロールゲート電圧は、例えば８Ｖといった高い値である。定電流シンクがソースビット線に印加する種々のソース電圧が、より低い状態の過剰プログラミングを止める。１段階あたり２００ｍＶの例を続けると、それぞれのセルをその最終しきい値電圧目標にプログラムするのには、通常、１６個のパルスが必要となる。測定値に基づき、１セクタのブラインドプログラミングの自然分布により、０．９２３ＶのＶＴ分散すなわち１３６ｍＶという１σ値が生じる。８状態２Ｇビットのセル数は８２９，０３０，４００個で、これは±６．０８σ＝１２．１６σに相当する。したがって、正規分布のセルの母集団を仮定すると、２Ｇビットのチップ全体にわたるセルＶＴの自然分布の分散は、１２．１６×ｌ３６ｍＶ＝１６５４ｍＶとなる。
【００８０】
増分量２００ｍＶの９個の粗いパルスは１．８Ｖの範囲をカバーする。５個以下の細かいプログラミングパルスの追加セットがジョブを終了させる。最初のパルスに関するオーバーシュートの可能性をほぼ排除するために、コントロールゲートパルスは、平均より６．０８σ下に対応する値で開始できる。したがって、一般のセルが１つの９．０Ｖのパルスによりその目標値ＶＴにプログラムされると、９．０Ｖから６．０８σ戻されて８２７ｍＶとなる。開始コントロールゲート電圧は８．２Ｖとなる。非常に珍しい場合では、最終コントロールゲート電圧は８．２＋１４×０．２＝１１．０Ｖとなる。一般的なセクタは６．０８σ＋３．４σ＝９．４８σ＝９．４８×ｌ３６ｍＶ＝１．２９Ｖを要し、これは１回のセクタ書き込みあたりＩＮＴ（１．２９／０．２）＋１＝８で８つの粗いパルスと付加的な５つの細かいパルスで合計１３のパルスに変換する粗いパルスステップに相当する。
【００８１】
本発明の種々の態様は、本願明細書において援用されている種々の参考文献に記載されているようなＮＯＲまたは他のアーキテクチャで実施可能であり、ここでプログラミング速度はソース−ドレイン電流レベルに依存する。また、一般に本発明の種々の態様は、フラッシュすなわちＥＥＰＲＯＭメモリだけでなく、プログラミング速度が電流量に依存するあらゆるメモリ技術に応用可能である。ＮＯＲアレイでは、素子６０１の電流制限器が、ソース端子Ｚに接続されたビット線ＢＬ１に配置され、ビット線バイアス電圧がビット線ＢＬ２に供給されるが、他の技術またはアーキテクチャは対応する構造を用い得る。
【００８２】
図７は、いくつかの周辺素子に加えて記憶素子アレイを含むメモリの概略図である。アレイ７５０は記憶素子を含み、一部は図２または図３に示される形態を取り得る。ワード線ＷＬ１−ＷＬＭは行デコーダ７３０に接続され、ビット線ＢＬ１−ＢＬＮは列デコーダ７１０に接続されている。両デコーダ７１０および７３０はアドレス信号発生器７２０に接続され、アドレス信号発生器７２０を介してプログラミングまたは他の処理のために記憶素子が選択される。列デコーダは、所望のビット線を実際に選択するデコーダツリーと、適切なバイアスレベルを設定するためにデコーダツリーを介してそれぞれビット線に接続可能な一連のビット線ドライバＤ１−ＤＭとを備えているように示されている。本発明の主要な態様によれば、プログラミング動作中、選択されたビット線に接続されたビット線ドライバは、選択された記憶素子をプログラムする目標データ状態に応じてバイアスレベルを設定する。種々の制限器が図７の７０３−１〜７０３−Ｎに概略的に示されている。前述したように、これは、本発明に関する基本素子を示すための概略図である。この回路の多くは、いずれも前に参照により援用されている米国特許出願第１０／７６６，２１７号（特許文献２６）、第１０／７６６，７８６号（特許文献２７）、第１０／７６６，１１６号（特許文献２８）でさらに明らかにされている。そこでは粗い−細かいプログラミング技術を背景に記載しているが、その多くをここに適用できる。
【００８３】
一実施形態において、この技法では、１つ１つのプログラミングパルスの後で７回の状態ベリファイをすべて実行する必要がある。というのは、最初のプログラミングパルスは、状態１にプログラムされるべきセルの最後に要求される粗いプログラミングパルスとなるので、状態７にプログラムされるべきセルの最後に要求される粗いパルスとなりやすいからである。また、最後のプログラミングパルスは、状態７にプログラムされるべきセルの最後の細かいプログラミングパルスとなるので、状態１にプログラムされるべきセルの最後の細かいプログラミングパルスとなりやすい。したがって、前に参照により援用されている米国特許出願第１０／３１４，０５５号（特許文献２４）に示されているようなスマートベリファイ方法は、この技法に直接適用できない。これにより、プログラム−ベリファイ処理のベリファイ部分に比較的長い時間を要するが、その目標状態と無関係に多かれ少なかれ同数のパルスですべての記憶素子を同時プログラムする機能により、シミュレーションによれば、行性能を約２５％増加させることが可能である。
【００８４】
そのような低レベルの電流における定電流ソ―スの動作に関する問題の１つは、電流シンクが遮断状態から所望電流レベルに対応するソースの電圧まで動くのに要する時間である。電流シンク値と、電流シンクがソース電圧を遮断状態から所望の電流シンキング値に対応する値へ下げるのに要する時間の間には、逆相関関係がある。かなり一般的な値である容量２ｐＦのビット線は、０．４Ｖ下げるのに電流シンキング値１，０００ｎＡで０．８μｓかかり、電流シンキング値が１０ｎＡの場合、整定時間は８０μｓとなり、これは望まれるよりも長い。
【００８５】
この作用を最小限にするために、電流ベースの手法を、前述した電圧ベースの手法と組み合わせることができる。この別の手法では、プログラミング中に状態依存形のソースバイアス電圧を印加することによって、様々な状態に要求される電流制限を提供する。サンプル素子の測定によれば、ソースへの電圧を１００ｍＶ増やすごとに、同じプログラミングパルスのメモリセルのしきい値電圧が７５０ｍＶずつ減少した。したがって、５００ｍＶの状態間分離には、連続２状態間のソース電圧差６７ｍＶを要する。したがって、プログラミング状態１対プログラミング状態７のソース電圧では、６×６７＝４００ｍＶの差が必要とされる。すなわち、状態１にプログラムされるべきセルは、状態７にプログラムされるべきセルのソースよりも４００ｍＶ高いプログラミングソース電圧を有することになる。この場合の課題は、同時にプログラムされるセルのソースと関係のある伝導電流負荷状態で正確に機能する安定した正確な電圧源を提供することである。低い状態にプログラムされるセルのソースを駆動するための電圧源は、高い状態にプログラムされるセルのソースを駆動する電圧源と比較して、必要な電流がはるかに少ないという点に留意することが重要である。したがって、種々のソース電源を同じ強さで設計する必要がない。
【００８６】
同時にプログラムされる全セクタのあらゆるセルを状態７にプログラムするという極端な状況を仮定し、状態７にプログラムされるべきセルではセル１個あたりの平均電流が１，０００ｎＡであると仮定すると、１，４７２×８／２＝５，８８８個のこれらすべてをプログラムするための電圧源は、５．９ｍＡの電流に対応するように設計される必要がある。これが実用的でない場合には、一般的なセルの電流を例えば１００ｎＡに制限するために、より高いソースバイアスまたはより低いワード線バイアスをこれらのセルに印加することが可能である。これは、状態ごとに高いソースバイアスまたは低い選択ゲート電圧を要する。階段状のコントロールゲート電圧のプログラム／ベリファイの最後に最大可能プログラミングコントロールゲート電圧に達しないことが往々にして生じるのであれば、プログラミング速度の低下を、より高いプログラミングコントロールゲート電圧で補償できる。
【００８７】
本発明の様々な態様を具体的な例示の実施形態について説明してきたが、本発明は添付の特許請求の範囲の全範囲内でその権利が保護されるべきであることが理解されよう。
【図面の簡単な説明】
【００８８】
【図１】本発明を採用したメモリアレイの例示的な実施形態である。
【図２Ａ】図１の実施形態のメモリアレイをさらに詳細に示す。
【図２Ｂ】図１の実施形態のメモリアレイをさらに詳細に示す。
【図３Ａ】図１の実施形態のメモリアレイをさらに詳細に示す。
【図３Ｂ】図１の実施形態のメモリアレイをさらに詳細に示す。
【図４Ａ】図１の記憶ユニットおよび電流制限器の詳細を示す。
【図４Ｂ】図１の記憶ユニットおよび電流制限器の詳細を示す。
【図５】本発明の一実施形態の動作のフローチャートである。
【図６】記憶素子の目標状態に基づいたプログラミング電流限界の使用を示す概略図である。
【図７】図６に示された態様を実施するためのメモリアレイおよびその周辺回路のいくつかを示す概略図である。
【図１】
2009503763.tif 000005
【図２Ａ】
2009503763.tif 000006
【図２Ｂ】
2009503763.tif 000007
【図３Ａ】
2009503763.tif 000008
【図３Ｂ】
2009503763.tif 000009
【図４Ａ】
2009503763.tif 000010
【図４Ｂ】
2009503763.tif 000011
【図５】
2009503763.tif 000012
【図６】
2009503763.tif 000013
【図７】
2009503763.tif 000014
【手続補正書】
【提出日】平成18年12月8日(2006.12.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ビット線に沿っておよび対応するワード線にそれぞれ接続される１つ以上の行に沿って、複数の列で接続される多状態記憶素子のアレイを含む不揮発性メモリで、共通ワード線に沿って接続される複数の記憶素子を、初期状態から複数のデータ状態のうちの１つに同時にプログラムする方法であって、
前記共通ワード線に沿って接続される前記複数の記憶素子ごとに、前記複数のデータ状態から対応する目標状態を提供するステップと、
前記複数の記憶素子をバイアスするステップと、を含み、前記バイアスするステップは、
個々の前記記憶素子の前記対応する目標状態に依存した値を超えないように、前記複数の前記記憶素子が接続される個々の前記ビット線のそれぞれの電流を制限するステップと、
プログラミング波形を前記共通ワード線に印加するステップと、
を含む方法。
【請求項２】
請求項１記載の方法において、
前記個々のビット線のそれぞれの前記電流が前記対応する記憶素子のソース−ドレイン電流であり、前記共通ワード線が前記プログラミング波形を前記複数の記憶素子のそれぞれのコントロールゲートに供給する方法。
【請求項３】
請求項２記載の方法において、
前記プログラミング波形が、一連のパルスである方法。
【請求項４】
請求項１記載の方法において、
前記記憶素子が、電荷を格納するデバイスである不揮発性メモリ。
【請求項５】
請求項４記載の方法において、
前記記憶素子が、フローティングゲートトランジスタである方法。
【請求項６】
不揮発性メモリであって、
ビット線に沿ったおよび対応するワード線にそれぞれが接続された１つ以上の行に沿った１つ以上の列に接続された多状態記憶素子のアレイと、
共通ワード線に沿って接続される複数の前記記憶素子を、初期状態から複数のデータ状態のうちの１つからの対応する目標状態に同時にプログラムするために電圧セットを印加するための、前記ビット線および前記ワード線に接続可能なプログラミング回路と、
前記個々の記憶素子の前記対応する目標状態に依存した値を超えないように前記複数の記憶素子を通る電流を個別に制限する、前記ビット線に接続可能な電流制限回路と、
を備える不揮発性メモリ。
【請求項７】
請求項６記載の不揮発性メモリにおいて、
前記電圧セットが、プログラミング波形を共通ワード線に印加することを含む不揮発性メモリ。
【請求項８】
請求項７記載の不揮発性メモリにおいて、
前記プログラミング波形が、一連のパルスである不揮発性メモリ。
【請求項９】
請求項６記載の不揮発性メモリにおいて、
前記記憶素子が、電荷を格納するデバイスである不揮発性メモリ。
【請求項１０】
請求項９記載の不揮発性メモリにおいて、
前記記憶素子が、フローティングゲートトランジスタである不揮発性メモリ。
【国際調査報告】
2009503763.tif 000015
2009503763.tif 000016
2009503763.tif 000017