(57)【特許請求の範囲】
【請求項１】
不揮発性メモリをプログラムする方法であって、
１組の不揮発性記憶素子内の少なくともサブセットの不揮発性記憶素子のしきい値電圧が目標しきい値にまだ達していないと検証されている時点で、少なくとも１つの不揮発性記憶素子のしきい値電圧が目標しきい値に達したと検証されるまで、１組の不揮発性記憶素子用にプログラミングプロセスの最初の部分を実行するステップと、
前記少なくともサブセットの不揮発性記憶素子内の個々の不揮発性記憶素子を３またはそれ以上のグループのうちの１つに類別するように少なくとも第１および第２の検証電圧を用いて検証動作を実行するステップであって、しきい値電圧が第１のしきい値電圧よりも小さい前記不揮発性記憶素子の第１のグループ、しきい値電圧が第１のしきい値電圧と第２のしきい値電圧との間にある前記不揮発性記憶素子の第２のグループ、およびしきい値電圧が第２のしきい値電圧よりも大きい前記不揮発性記憶素子の第３のグループを含むものである、検証動作を実行するステップと、
前記少なくともサブセットの不揮発性記憶素子用のプログラミングプロセスを完了するステップであって、それぞれが禁止ビットライン電圧よりも小さい少なくとも第１，第２，第３の異なったビットライン電圧を用いて前記不揮発性記憶素子の第１，第２，第３のグループのしきい値電圧を上げることを含むものである、プログラミングプロセスを完了するステップと、
を含む方法。
【請求項２】
請求項１記載の方法において、
前記プログラミングプロセスの最初の部分を実行するステップが、前記１組の不揮発性記憶素子のコントロールゲートに共通のプログラム電圧信号の第１の部分を印加するステップを含み、
前記プログラミングプロセスを完了するステップが、前記１組の不揮発性記憶素子のコントロールゲートに前記共通のプログラム電圧信号の第２の部分を印加するステップを含む方法。
【請求項３】
請求項２記載の方法において、
個々のグループが、前記プログラミングプロセスの最初の部分中に類似するプログラミングスピードを有する不揮発性記憶素子を含む方法。
【請求項４】
請求項３記載の方法において、
前記第３のビットライン電圧が前記第２のビットライン電圧よりも大きく、前記第２のビットライン電圧が前記第１のビットライン電圧よりも大きい方法。
【請求項５】
請求項４記載の方法において、
前記共通のプログラム電圧信号の前記第１の部分が、第１のレートで上昇し、
前記共通のプログラム電圧信号の前記第２の部分が、前記第１のレートより上のレートで上昇する方法。
【請求項６】
請求項１記載の方法において、
前記プログラミングプロセスの最初の部分を実行するステップと前記プログラミングプロセスを完了するステップとが、前記１組の不揮発性記憶素子に共通のプログラム電圧信号を印加するステップを含む方法。
【請求項７】
請求項１記載の方法において、
前記プログラミングプロセスの最初の部分を実行するステップと前記プログラミングプロセスを完了するステップとが、前記１組の不揮発性記憶素子の個々の不揮発性記憶素子のコントロールゲートに共通のプログラム電圧信号を印加するステップを含む方法。
【請求項８】
請求項１記載の方法において、
前記不揮発性記憶素子が、多状態記憶素子である方法。
【請求項９】
不揮発性メモリをプログラムするシステムであって、
１組の不揮発性記憶素子と、
前記１組の不揮発性記憶素子と通信を行う制御ラインと、
前記制御ラインと通信を行う制御回路であって、前記制御回路が、（ａ）１組の不揮発性記憶素子内の少なくともサブセットの不揮発性記憶素子のしきい値電圧が目標しきい値にまだ達していないと検証されている時点で、少なくとも１つの不揮発性記憶素子のしきい値電圧が目標しきい値に達したと検証されるまで、１組の不揮発性記憶素子用にプログラミングプロセスの最初の部分を実行し、（ｂ）前記少なくともサブセットの不揮発性記憶素子内の個々の不揮発性記憶素子を３またはそれ以上のグループのうちの１つに類別するように少なくとも第１および第２の検証電圧を用いて検証動作を実行し、しきい値電圧が第１のしきい値電圧よりも小さい前記不揮発性記憶素子の第１のグループ、しきい値電圧が第１のしきい値電圧と第２のしきい値電圧との間にある前記不揮発性記憶素子の第２のグループ、およびしきい値電圧が第２のしきい値電圧よりも大きい前記不揮発性記憶素子の第３のグループを含み、（ｃ）それぞれが禁止ビットライン電圧よりも小さい少なくとも第１，第２，第３の異なったビットライン電圧を用いて前記不揮発性記憶素子の第１，第２，第３のグループのしきい値電圧を上げることにより、前記少なくともサブセットの不揮発性記憶素子内の前記不揮発性記憶素子用のプログラミングプロセスを完了するようにした制御回路と、
を備えるシステム。
【請求項１０】
請求項９記載のシステムにおいて、
前記プログラミングプロセスの最初の部分を実行することが、前記１組の不揮発性記憶素子のコントロールゲートに共通のプログラム電圧信号の第１の部分を印加することを含み、
前記プログラミングプロセスを完了することが、前記１組の不揮発性記憶素子のコントロールゲートに前記共通のプログラム電圧信号の第２の部分を印加することを含むシステム。
【請求項１１】
請求項１０記載のシステムにおいて、
個々のグループが、前記プログラミングプロセスの最初の部分中に類似するプログラミングスピードを有する不揮発性記憶素子を含むシステム。
【請求項１２】
請求項１１記載のシステムおいて、
前記第３のビットライン電圧が前記第２のビットライン電圧よりも大きく、前記第２のビットライン電圧が前記第１のビットライン電圧よりも大きいシステム。
【請求項１３】
請求項１２記載のシステムにおいて、
前記共通のプログラム電圧信号の前記第１の部分が、第１のレートで上昇し、
前記共通のプログラム電圧信号の前記第２の部分が、前記第１のレートより上のレートで上昇するシステム。
【請求項１４】
請求項９記載のシステムにおいて、
前記プログラミングプロセスの最初の部分を実行することが、前記１組の不揮発性記憶素子に第１のレートで上昇する共通のプログラム電圧信号の第１の部分を印加することを含み、
前記プログラミングプロセスを完了することが、前記共通のプログラム電圧信号が前記第１のレートより上に上昇している間に、前記１組の不揮発性記憶素子に前記共通のプログラム電圧信号の第２の部分を印加することを含むシステム。
【請求項１５】
請求項９記載のシステムにおいて、
前記不揮発性記憶素子が、多状態記憶素子であるシステム。
【請求項１６】
請求項１０記載のシステムにおいて、
前記不揮発性記憶素子が、多状態ＮＡＮＤフラッシュメモリ素子であるシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、メモリデバイスのプログラミング技術に関する。
【背景技術】
【０００２】
半導体メモリデバイスが、種々の電子デバイスで使用されるポピュラーな記憶装置となっている。例えば、携帯電話、デジタルカメラ、個人用情報機器、携帯用計算機、非携帯用計算機およびその他のデバイスで不揮発性半導体メモリが利用されている。電気的に消去可能でプログラム可能なリードオンリーメモリ（ＥＥＰＲＯＭ）とフラッシュメモリとが最もポピュラーな不揮発性半導体メモリである。
【０００３】
典型的なＥＥＰＲＯＭとフラッシュメモリは、半導体基板のチャネル領域の上方に設けられ、この領域から絶縁されるフローティングゲートを備えたメモリセルを利用する。このチャネル領域は、ソース領域とドレイン領域間のＰウェル内に配置される。コントロールゲートがフローティングゲート上に設けられ、フローティングゲートから絶縁される。メモリのしきい値電圧は、フローティングゲート上に保持されている電荷量により制御される。すなわち、メモリセルにスイッチが入る前にコントロールゲートに印加する必要がある最小量の電圧がフローティングゲートの電荷レベルにより確定され、フローティングゲートのソースとドレイン間の導通が可能となる。
【０００４】
ＥＥＰＲＯＭやフラッシュメモリデバイスのなかには、２つの範囲の電荷の格納に使用するフローティングゲートを備えるものもあるため、２状態間のメモリセルのプログラム／消去を行うことが可能となる。ＥＥＰＲＯＭやフラッシュメモリデバイスのプログラミング時に、プログラム電圧がコントロールゲートに印加され、ビットラインが接地される。チャネルから出る電子がフローティングゲート内へ注入される。電子がフローティングゲートに累積すると、フローティングゲートは負に帯電し、メモリセルのしきい値電圧が上昇する。
【０００５】
一般に、コントロールゲートに印加されるプログラム電圧は、一連のパルスとして印加される。パルスの振幅は、連続するパルス毎に（例えば、０．２ｖなどの）所定のステップサイズだけ増分される。パルス間の時間内に検証動作が実行される。すなわち、同時にプログラムされる１グループのセルの個々のセルのプログラミングレベルが各プログラミングパルス間で読み出されて、各セルをプログラムする検証レベル以上か否かの判定が行われる。プログラミングを検証する１つの手段としてある特定の比較ポイントにおける導通を検査する方法がある。十分にプログラムされたことが検証されたセルは、例えば、０からＶｄｄ（２．５ボルトなど）へビットライン電圧を上げることによりロックされ、当該セルに対するプログラミング処理が停止される。場合によっては、パルス数（２０パルスなど）が制限され、所定のメモリセルが最期のパルスにより完全にプログラムされていない場合、エラーの発生が想定される。実施構成によっては、プログラミングに先行して（ブロック単位であるいは別の単位で）メモリセルの消去が行われる。プログラミングに関するさらに多くの情報については、２００３年３月５日出願の“自己昇圧（セルフブースト）方法”という米国特許出願第１０／３７９，６０８号（特許文献１）および２００３年７月２９日出願の“プログラムされたメモリに対する検出”という米国特許出願第１０／６２９，０６８号（特許文献２）に記載されている。上記出願の双方は、その全体が本願明細書で参照により援用されている。
【０００６】
図１は、フラッシュメモリセルのコントロールゲートに印加されるプログラム電圧信号Ｖｐｇｍを示す。プログラム電圧信号Ｖｐｇｍには時間と共に振幅が大きくなる一連のパルスが含まれる。プログラムパルスの開始時に、プログラム対象のすべてのセルの（例えば、ドレインと接続している）ビットラインが接地され、それによって、ゲートからチャネルへＶｐｇｍ−０Ｖの電圧差が形成される。一旦、セルが目標とする電圧に達する（プログラム検証をパスする）と、それぞれのビットライン電圧がＶｄｄまで上昇し、その結果、メモリセルはプログラム禁止モード（当該セルへのプログラム停止）になる。この高速でプログラムされたセルは低速でプログラムされたセルよりも早めに上記状態に達することは明らかである。例えば、図１に示すように、高速セルのビットライン電圧は低速セルのビットライン電圧よりも先にＶｄｄに上昇する。
【０００７】
マルチビットすなわち多状態フラッシュメモリセルは、デバイス内の複数の、別個のしきい値電圧の範囲の特定により実現される。個々の別個のしきい値電圧の範囲はデータビットのセットの所定値に対応する。メモリセルの中へプログラムされるデータと上記セルのしきい値電圧レベル間の固有の関係は、セルが採用するデータ符号化方式により決められる。例えば、米国特許第６，２２２，７６２号（特許文献３）および２００３年６月１３日出願の“メモリシステム用追跡セル”という米国特許出願第１０／４６１，２４４号（特許文献４）などに多状態フラッシュメモリセルに関連する種々のデータ符号化方式についての記載がある。上記出願の双方は、その全体が本願明細書で参照により援用されている。
【０００８】
多状態セルに対して適切なデータの格納を行うために、多状態メモリセルのしきい値電圧レベルの複数の範囲を十分なマージンを設けて互いに分離し、曖昧性のない方法でメモリセルのレベルのプログラムや消去を行うことができるようにすることが望ましい。さらに、タイトなしきい値電圧の分布が推奨される。タイトなしきい値電圧分布を達成するために、短いプログラムステップが一般に用いられてきたが、これにより、セルのしきい値電圧のプログラミングは低速になる。
【０００９】
１組のメモリセルの自然なしきい値電圧分布とは、１以上の同一パルスの受信時に得られるしきい値電圧の分布である。図２に自然なしきい値電圧分布Ｗ（自然なＶTH）が描かれている。この自然なしきい値電圧分布は、多数のメモリセルの自然な物理的および電気的変動を反映するものである。この変動に影響を与える多くの要因が存在し、そのような要因として、能動層（セル幅）サイズ、チャネル長、トンネル酸化膜厚、トンネル酸化膜の局所的薄化、フローティングゲートの形状、ポリシリコン間ＯＮＯ厚並びにソースドレインオーバーラップ領域などが挙げられる。物理的にさらに小さく、かつ、さらに多数のこのようなセルを全く同一のものにすることは１つのチャレンジである。デバイスがさらに小型になり、多状態セルで使用されるにつれて、自然なしきい値分布が広がり、よりタイトなしきい値分布に対する要望が大きくなる。自然なしきい値電圧分布が広がるので、さらに多くのプログラムステップを必要とし、必要なタイトなしきい値電圧分布の取得が求められる。より多くのプログラムステップを用いるので、プログラミングを行うためにさらに多く時間が必要となる。消費者の視点から見ると、これはこの記憶デバイスが用いられているデジタルカメラや他のデバイスの作動がさらに低速になることを意味する。したがって、プログラミングスピードの上昇を求める要望が存在する。
【特許文献１】米国特許出願第１０／３７９，６０８号
【特許文献２】米国特許出願第１０／６２９，０６８号
【特許文献３】米国特許第６，２２２，７６２号
【特許文献４】米国特許出願第１０／４６１，２４４号
【特許文献５】米国特許第５，５７０，３１５号
【特許文献６】米国特許第５，７７４，３９７号
【特許文献７】米国特許第６，０４６，９３５号
【特許文献８】米国特許第５，３８６，４２２号
【特許文献９】米国特許第６，４５６，５２８号
【特許文献１０】米国特許公開第２００３／０００２３４８号
【特許文献１１】米国特許第５，０９５，３４４号
【特許文献１２】米国特許第５，１７２，３３８号
【特許文献１３】米国特許第５，８９０，１９２号
【特許文献１４】米国特許第６，１５１，２４８号
【特許文献１５】米国特許出願第１０／２５４，４８３号
【発明の開示】
【発明が解決しようとする課題】
【００１０】
本発明は、略述すれば、メモリデバイスのプログラミング技術に関係する発明である。当該メモリセルの振舞いに基づいてプログラミング処理の適合化を行うことにより、メモリデバイスのプログラミング処理の改善が図られる。
【００１１】
本発明の一実施形態では、不揮発性記憶素子の振舞いに基づいて、１組の不揮発性記憶素子を類別して、３またはそれ以上のグループに変え、個々のグループについて異なるプログラミング条件を用いて不揮発性記憶素子のプログラミングを行うステップが含まれる。
【００１２】
本発明の別の実施形態には、少なくとも１つの不揮発性記憶素子が目標しきい値に達するまで、最初のプログラミングを不揮発性記憶素子に適用するステップが含まれる。続いて、目標しきい値に達していない不揮発性記憶素子の少なくともサブセットの振舞いに基づいてプログラミングの調整が行われる。
【００１３】
１つの例示の実施構成には、１組の不揮発性記憶素子と、不揮発性記憶素子と通信する１組の制御ラインと、これらの制御ラインと通信する制御回路とが含まれる。上記制御回路は上述のステップを実行させる。
【００１４】
１つの変形例では、振舞いに基づく不揮発性記憶素子を類別するステップには、上記１組の不揮発性記憶素子に対して１以上の非ゼロ電源電圧を印加するステップが含まれる。非ゼロ電源電圧を印加しながら、上記１組の不揮発性記憶素子のしきい値電圧は、不揮発性記憶素子のゲートを制御する１以上の正の電圧を印加し、不揮発性記憶素子のスイッチが入っているか否かを判定するステップによって特徴づけられる。不揮発性記憶素子のスイッチが入っているか否かを判定するステップによって、不揮発性記憶素子が負電圧比較ポイントよりも大きなしきい値電圧を持っているか否かの表示が行われる。
【００１５】
別の変形例では、振舞いに基づく不揮発性記憶素子を類別するステップには、不揮発性記憶素子用ビットラインを帯電するステップと、コントロールゲート信号を印加するステップと、ビットラインの放電を可能にするステップとが含まれる。不揮発性記憶素子の後続するプログラミングには、ビットラインの放電方法に基づいてビットライン電圧のサブセットを調整するステップが含まれる。
【００１６】
以下の説明により本発明の上記目的並びにその他の目的と利点とがさらに明瞭に現れ、この説明により図面と関連して本発明の好ましい実施形態が記載される。
【発明を実施するための最良の形態】
【００１７】
本発明の実現に適したフラッシュメモリシステムの１つの例では、ＮＡＮＤ構造が利用され、この構造には２つのセレクトゲート間に複数のトランジスタを直列に配設するステップが含まれる。これら直列のトランジスタとセレクトゲートとはＮＡＮＤ列と呼ばれる。図３は、１つのＮＡＮＤ列を示す平面図である。図４は、ＮＡＮＤ列の等価回路である。図３と図４に描かれたＮＡＮＤ列には、直列に４個のトランジスタ１００，１０２，１０４，１０６が含まれ、これらのトランジスタは、第１のセレクトゲート１２０と第２のセレクトゲート１２２との間に挟まれている。セレクトゲート１２０は、ＮＡＮＤ列をビットライン１２６と接続する。セレクトゲート１２２は、ＮＡＮＤ列をソースライン１２８と接続する。セレクトゲート１２０は、ゲート１２０ＣＧを制御する適当な電圧の印加により制御される。セレクトゲート１２２は、ゲート１２２ＣＧを制御する適当な電圧の印加により制御される。トランジスタ１００，１０２，１０４，１０６の各トランジスタには、コントロールゲートとフローティングゲートとが設けられる。トランジスタ１００は、コントロールゲート１００ＣＧとフローティングゲート１００ＦＧとを備えている。トランジスタ１０２は、コントロールゲート１０２ＣＧとフローティングゲート１０２ＦＧとを備えている。トランジスタ１０４は、コントロールゲート１０４ＣＧとフローティングゲート１０４ＦＧとを備えている。トランジスタ１０６は、コントロールゲート１０６ＣＧとフローティングゲート１０６ＦＧとを備えている。コントロールゲート１００ＣＧは、ワード線ＷＬ３と接続され、コントロールゲート１０２ＣＧは、ワード線ＷＬ２と接続され、コントロールゲート１０４ＣＧは、ワード線ＷＬ１と接続され、コントロールゲート１０６ＣＧは、ワード線ＷＬ０と接続される。
【００１８】
図５は、上述のＮＡＮＤ列の断面図を示す。図５に示されているように、ＮＡＮＤ列のトランジスタ（セルまたはメモリセルとも呼ばれる）は、Ｐウェル領域１４０に形成される。個々のトランジスタは、コントロールゲート（１００ＣＧ，１０２ＣＧ，１０４ＣＧ，１０６ＣＧ）と、フローティングゲート（１００ＦＧ，１０２ＦＧ，１０４ＦＧ，１０６ＦＧ）とから構成されるスタックゲート構造を備える。フローティングゲートは、酸化膜上のＰウェルの表面に形成される。コントロールゲートは、フローティングゲートの上方にあり、コントロールゲートとフローティングゲートとを分離するポリシリコン間誘電体層が設けられている。図５が、トランジスタ１２０と１２２用としてコントロールゲートとフローティングゲートとを描いているように見えることに留意されたい。しかし、コントロールゲートとフローティングゲートは、トランジスタ１２０と１２２用として一体に接続されている。メモリセル（１００，１０２，１０４，１０６）のコントロールゲートによりワード線が形成される。Ｎ＋拡散層１３０，１３２，１３４，１３６，１３８は隣接セル間で共有され、この共有によりセルは互いに直列に接続されてＮＡＮＤ列が形成される。これらＮ＋拡散層は、個々のセルのソースとドレインを形成する。例えば、Ｎ＋拡散層１３０は、トランジスタ１２２のドレインおよびトランジスタ１０６のソースとして機能し、Ｎ＋拡散層１３２は、トランジスタ１０６のドレインおよびトランジスタ１０４のソースとして機能し、Ｎ＋拡散領域１３４は、トランジスタ１０４のドレインおよびトランジスタ１０２のソースとして機能し、Ｎ＋拡散領域１３６は、トランジスタ１０２のドレインおよびトランジスタ１００のソースとして機能し、Ｎ＋拡散層１３８はトランジスタ１００のドレインおよびトランジスタ１２０のソースとして機能する。Ｎ＋拡散層１２６はＮＡＮＤ列用のビットラインと接続し、一方、Ｎ＋拡散層１２８は複数のＮＡＮＤ列用の共通ソースラインと接続する。
【００１９】
図３〜図５は、ＮＡＮＤ列における４個のメモリセルを示す図ではあるが、４個のトランジスタの使用は一例として示すものにすぎないことに留意されたい。ＮＡＮＤ列は、４個未満のメモリセルまたは４個以上のメモリセルを備えるものであってもよい。例えば、ＮＡＮＤ列のなかには、８個のメモリセル、１６個のメモリセル、３２個のメモリセルを備えるものもある。本願の解説は、ＮＡＮＤ列内の何らかの特定個数のメモリセルに限定されるものではない。
【００２０】
個々のメモリセルは、アナログ形式あるいはデジタル形式で表されるデータを格納することができる。１ビットのデジタルデータを格納する場合、メモリセルのしきい値電圧の可能な範囲は、論理データ“１”と“０”に割り当てられる２つの範囲に分けられる。ＮＡＮＤ形フラッシュメモリの１つの例では、メモリセルの消去後、しきい値電圧は負であり、論理“１”と定義される。プログラム処理後のしきい値電圧は正になり、論理“０”と定義される。しきい値電圧が負になり、読出しが試みられると、メモリセルにスイッチが入り、論理１が格納されたことが示される。しきい値電圧が正になり、読出しが試みられると、メモリセルのスイッチが入らず、これによって論理０が格納されたことが示される。メモリセルは複数レベルの情報の格納も可能であるため、例えば、マルチビットのデジタルデータの格納が行われる。複数レベルのデータを格納する場合、可能なしきい値電圧の範囲は、記憶レベルの数に分けられる。例えば、４つのレベルの情報を格納する場合、データ値“１１”，“１０”，“０１”，“００”に割り当てられる４個のしきい値電圧の範囲が生じることになる。ＮＡＮＤ形メモリの１つの例では、消去操作後のしきい値電圧は負となり、“１１”と定義される。“１０”，“０１”，“００”の状態に対しては正のしきい値電圧が用いられる。
【００２１】
ＮＡＮＤ形フラッシュメモリとそれらの処理に関連する例については、以下の米国特許／特許出願に記載があり、これらのすべてはその全体が本願明細書で参照により援用されている。これらの米国特許／特許出願とは、米国特許第５，５７０，３１５号（特許文献５）、米国特許第５，７７４，３９７号（特許文献６）、米国特許第６，０４６，９３５号（特許文献７）、米国特許第５，３８６，４２２号（特許文献８）、米国特許第６，４５６，５２８号（特許文献９）および米国特許出願第０９／８９３，２７７号（公開第２００３／０００２３４８号）（特許文献１０）である。本発明の場合、別のタイプのフラッシュメモリデバイスの使用も可能である。例えば、以下の特許にはＮＯＲ形フラッシュメモリについての記載があり、これらのすべてはその全体が本願明細書で参照により援用されている。これらの特許とは、米国特許第５，０９５，３４４号（特許文献１１）、米国特許第５，１７２，３３８号（特許文献１２）、米国特許第５，８９０，１９２号（特許文献１３）、米国特許第６，１５１，２４８号（特許文献１４）である。フラッシュメモリのタイプの別の例が、米国特許第６，１５１，２４８号に見られ、この特許は、その全体が本願明細書で参照により援用されている。
【００２２】
図６は、本発明の実現に使用可能なフラッシュメモリシステムの１つの実施形態のブロック図である。メモリセルアレイ３０２は、コラム制御回路３０４、ロウ制御回路３０６、ｃソース制御回路３１０およびＰウェル制御回路３０８により制御される。コラム制御回路３０４は、メモリセルアレイ３０２のビットラインと接続され、メモリセルに格納されたデータの読出しと、プログラム処理中のメモリセルの状態の確定と、プログラミングの促進やプログラミングの禁止のためのビットラインの電位レベルの制御とを行う。ロウ制御回路３０６は、ワード線と接続され、ワード線のうちの１本の線の選択と、読出し電圧の印加と、プログラム電圧の印加と、消去電圧の印加とを行う。ｃソース制御回路３１０は、メモリセルと接続された共通ソースライン（図７に“Ｃソース”とラベルが付けられている）の制御を行う。Ｐウェル制御回路３０８は、Ｐウェル電圧の制御を行う。
【００２３】
メモリセルに格納されたデータは、コラム制御回路３０４により読み出され、データ入出力用バッファ３１２を介して外部Ｉ／Ｏラインへ出力される。メモリセルに格納されたプログラムデータは、外部Ｉ／Ｏラインを介してデータ入出力用バッファ３１２へ入力され、コラム制御回路３０４へ転送される。外部Ｉ／Ｏラインは、コントローラ３１８と接続される。
【００２４】
フラッシュメモリデバイスを制御するコマンドデータがコントローラ３１８へ入力される。このコマンドデータは、どのような処理が求められているかに関する情報をフラッシュメモリに与える。入力コマンドは状態マシン３１６へ転送され、この状態マシン３１６によって、コラム制御回路３０４、ロウ制御回路３０６、ｃソース制御回路３１０、Ｐウェル制御回路３０８およびデータ入出力用バッファ３１２は制御される。状態マシン３１６は、ＲＥＡＤＹ／ＢＵＳＹ（レディ／ビジー）やＰＡＳＳ／ＦＡＩＬ（パス／フェイル）のようなフラッシュメモリの状態データの出力を行うことができる。
【００２５】
コントローラ３１８は、パーソナルコンピュータ、デジタルカメラ、個人用情報機器などのホストシステムと接続されるか、あるいは接続が可能である。コントローラ３１８は、ホストからコマンドを受信するためにホストと通信を行い、ホストからデータを受け取り、ホストへデータを出力し、ホストへ状態情報を出力する。コントローラ３１８は、ホストからのコマンドを変換して、解釈可能な信号であって、状態マシン３１６と通信を行うコマンド回路３１４が実行できるコマンド信号に変える。コントローラ３１８は、一般に、ユーザデータのメモリアレイへの書き込み、あるいは、メモリアレイからの読出しを行うためのバッファメモリを備える。
【００２６】
１つの例示のメモリシステムは、コントローラ３１８を備えた１つの集積回路と、メモリアレイと、関連する制御回路と、入出力回路および状態マシン回路とをそれぞれが備えた１以上の集積回路チップとを具備する。システムのメモリアレイと制御回路とを１以上の集積回路チップ上に一体に統合化する傾向が見られる。ホストシステムの一部としてメモリシステムを組み込むようにしてもよいし、ホストシステムの中へ取り外し可能に挿入されるメモリカード（または別のパッケージ）にメモリシステムを設けるようにしてもよい。このような取り外し可能なカードの中に、（例えば、コントローラを含む）メモリシステム全体を設けてもよいし、あるいは、（ホストの中にコントローラを組み込んで）メモリアレイと関連する周辺回路のみを設けるようにしてもよい。このようにして、ホスト内にコントローラを組み込むことができるし、あるいは、取り外し可能なメモリシステム内にコントローラを設けることもできる。
【００２７】
図７を参照すると、メモリセルアレイ３０２の例示構造が記載されている。１つの例として、１，０２４個のブロックに分割されるＮＡＮＤフラッシュＥＥＰＲＯＭについて説明する。個々のブロックに格納されたデータは、同時に消去される。一実施形態では、ブロックは同時に消去されるセルの最小単位である。この例では、個々のブロックの中に、８，５１２個のコラムが存在し、このコラムは偶数番号のコラムと奇数番号のコラムとに分けられる。ビットラインも偶数番号のビットライン（ＢＬｅ）と奇数番号のビットライン（ＢＬｏ）とに分けられる。図７は、ＮＡＮＤ列を形成する直列接続の４個のメモリセルを示す図である。個々のＮＡＮＤ列の中に４個のセルを含むように示されているが、４個以上または４個未満のメモリセルを用いてもよい。ＮＡＮＤ列の一方の端子は、第１の選択トランジスタＳＧＤを介して、対応するビットラインと接続され、他方の端子は第２の選択トランジスタＳＧＳを介してｃソースと接続される。
【００２８】
読出し動作とプログラミング動作中に、４，２５６個のメモリセルが同時に選択される。選択されたメモリセルは、同じワード線および同種類のビットライン（例えば、偶数番号のビットラインや奇数番号のビットラインなど）を有する。したがって、５３２バイトのデータの同時読出しまたは同時プログラミングを行うことが可能である。同時読出しまたは同時プログラムミングが行われるこれら５３２バイトのデータにより１論理ページが形成される。したがって、１つのブロックは、少なくとも８論理ページ（奇数番号のページと偶数番号のページをそれぞれが持つ４本のワード線）を格納することができる。個々のメモリセルが、（例えば、マルチレベルセルなどの）２ビットデータを格納する場合、１ブロックには１６論理ページが格納される。本発明の場合、別のサイズのブロックとページも使用可能である。さらに、図６と図７のアーキテクチャ以外のアーキテクチャを用いて、本発明を実現することも可能である。
【００２９】
消去電圧（２０ボルトなど）までＰウェルを上げ、選択されたブロックのワード線の接地によりメモリセルの消去が行われる。ソースラインとビットラインはフロートしている。メモリアレイ全体、個別のブロックあるいは別の単位のセルに対して消去を実行することができる。電子がフローティングゲートからＰウェル領域へ転送され、しきい値電圧は負になる。
【００３０】
読出し動作と検証動作時に、トランジスタをパスゲートとして動作させるために、選択ゲート（ＳＧＤとＳＧＳ）と非選択ワード線（例えば、ＷＬ０、ＷＬ１、ＷＬ３など）とが読出し用パス電圧（例えば、４．５ボルトなど）まで上げられる。選択されたワード線（例えば、ＷＬ２など）は電圧と接続され、この電圧レベルは個々の読出し動作と検証動作に対して特定されて、関係するメモリセルのしきい値電圧がこのようなレベルに達したか否かの判定が意図される。例えば、２レベルのメモリセルの読出し動作時に、選択されたワード線ＷＬ２の接地により、しきい値電圧が０Ｖより高いか否かを検出するようにしてもよい。２レベルのメモリセルの検証動作時に、例えば、選択されたワード線ＷＬ２は２．４Ｖと接続され、その結果、しきい値電圧が少なくとも２．４Ｖに達したか否かの検証が行われる。ソースとＰウェルは０ボルトにセットされる。選択されたビットライン（ＢＬｅ）は、例えば、０．７Ｖなどの或るレベルまでプリチャージされる。しきい値電圧がワード線での読出しレベルや検証レベルよりも高くなった場合、関係するビットライン（ＢＬｅ）の電位レベルにより、非導電性メモリセルに起因する高いレベルが維持される。一方、しきい値電圧が読出しレベルや検証レベルよりも低くなった場合、関係するビットライン（ＢＬｅ）の電位レベルは、導電性メモリセル（Ｍ）に起因して、例えば、０．５Ｖ未満などの低いレベルまで低下する。これによって、ビットラインと接続されたセンス増幅器によりメモリセルの状態が検出される。
【００３１】
上述した消去、読出し動作および検証動作は、当業で周知の技法に基づいて行われる。したがって、その詳細の多くは当業者により変更が可能である。
【００３２】
図８は、図６のコラム制御回路３０４の一部を示す概略ブロック図である。コラム制御回路３０４では、データ記憶回路４４０が２ビットライン毎に設けられ、偶数番号のビットラインＢＬｅと奇数番号のビットラインＢＬｏとが設けられる。コラム制御回路３０４には、データ記憶回路４４０用のセンス増幅器も設けられ、メモリセルへのデータの書込みおよびメモリセルからのデータの読出しが意図される。
【００３３】
図８を参照すると、ｎチャネルＭＯＳ形トランジスタ４４２は、データ記憶回路４４０と偶数番号のビットラインＢＬｅ間でのコラム選択用として接続される。別のｎチャネルＭＯＳ形トランジスタ４４４は、データ記憶回路４４０と奇数番号のビットラインＢＬｏ間でのコラム選択用として接続される。
【００３４】
偶数番号のビットラインＢＬｅまたは奇数番号のビットラインＢＬｏのいずれかを選択して、データの書込み動作またはデータの読出し動作を制御する。さらに詳細には、信号偶数番号ＢＬが論理レベル１にセットされ、かつ、信号奇数番号ＢＬが論理レベル０にセットされている場合、ＭＯＳ形トランジスタ４４２は導電性を生じ、偶数番号のビットラインＢＬｅが選択され、次いで、この偶数番号のビットラインＢＬｅはデータ記憶回路４４０と接続される。一方、信号偶数番号ＢＬが論理レベル０にセットされ、かつ、奇数番号ＢＬが論理レベル１にセットされている場合、トランジスタ４４４は導電性を生じ、奇数番号のビットラインＢＬｏが選択され、次いで、この奇数番号のビットラインＢＬｏはデータ記憶回路４４０と接続される。信号偶数番号ＢＬが、偶数番号のビットラインを介して接続されたコラム選択用のｎチャネルＭＯＳ形トランジスタのすべてに印加されるのに対して、信号奇数番号ＢＬは、奇数番号のビットラインと接続されるコラム選択用のすべてのｎチャネルＭＯＳ形トランジスタに印加されることに留意されたい。
【００３５】
個々のデータ記憶回路４４０は、３個の２進データ格納部ＤＳ１，ＤＳ２，ＤＳ３を備えている。格納部ＤＳ１は、内部のデータ入力／出力ラインによってデータ入出力３１２と接続され、書き込むべき外部からの入力データまたは外部へ出力すべき読出しデータを格納する。データ格納部ＤＳ２は、書込み動作後にメモリセルのしきい値を確認する書込み検証動作の検出結果を格納する。データ格納部ＤＳ３は、メモリセルのデータの書込み時点および／またはメモリセルのデータの読出し時点にメモリセルのデータを一時的に格納する。別の実施形態では、データ格納部は別の機能を持つこともできる。種々の実施形態では、ＤＳ１，ＤＳ２，ＤＳ３は、記憶装置の一部や、１以上のレジスタや、情報の格納が可能な別の任意のデバイスとすることができる。一実施形態では、ＤＳ１，ＤＳ２，ＤＳ３はそれぞれ１ビットである。別の実施形態では、ＤＳ１，ＤＳ２，ＤＳ３の１以上は多数のビットを格納することができる。
【００３６】
図８が偶数番号／奇数番号のビットライン構成を示すことに留意されたい。しかし、本発明は、個々のビットラインがそれ自身のセンス増幅器および／またはデータ記憶装置を備える構成などの多くの異なるビットライン構成の場合にも利用可能である。本発明の実現に適したいくつかの構成では、すべてのビットラインは、奇数と偶数のパスではなく１つのパスでプログラムされる。例えば、２００２年９月２４日出願の“非常にコンパクトな不揮発性メモリおよびその方法”という米国特許出願第１０／２５４，４８３号（特許文献１５）を参照されたい。この特許は、その全体が本願明細書で参照により援用されている。
【００３７】
図９は、２ビットデータ（例えば、４個のデータ状態など）を格納するメモリセルのしきい値電圧分布を示す図である。一実施形態では、分布４６０は、消去状態に在るセル（例えば“１１”が格納されている）のしきい値電圧の分布を表し、上記しきい値電圧は負のしきい値電圧レベルを示す。分布４６２は、“１０”を格納するセルのしきい値電圧の分布を表す。分布４６４は、“００”を格納するメモリセルのしきい値電圧の分布を表す。分布４６６は、“０１”を格納するセルのしきい値電圧の分布を表す。別の実施形態では、これら分布の各々は、上述した以外の異なるデータ状態に対応することができる。さらに、本発明は３以上のビットを格納するメモリセルについても機能することができる。
【００３８】
１つの実施構成では、消去状態（分布４６０）のメモリセルは、プログラム状態（分布４６２，４６４または４６６）のうちのいずれかの状態に合わせてプログラムすることが可能である。別の実施形態では、消去状態のメモリセルは、２ステップ方法論に基づいてプログラムされる。この２ステップ方法論では、データ状態で格納された各ビットは異なる論理ページに対応する。すなわち、メモリセルに格納された個々のビットは、下位の論理ページと上位の論理ページに関係する異なる論理ページアドレスを持つ。例えば、状態“１０では、“１”は下位の論理ページ用として格納され、“０”は上位の論理ページ用として格納される。第１のプログラミングステップで、セルのしきい値電圧レベルは、プログラム対象のビットに基づいて下位の論理ページの中へセットされる。当該ビットが論理“１”であれば、しきい値電圧は、以前に消去された結果、適正な状態にあるので変更されない。これに対して、ビットを論理“０”へプログラムしなければならない場合、しきい値電圧分布４６２内に入るようにセルのしきい値レベルが上げられる。第２のプログラミングステップで、プログラムされたビットに基づいて上位の論理ページの中へセルのしきい値電圧レベルはセットされる。上位の論理ページビットが論理“１”にセットされている場合、セルは、しきい値電圧分布４６０または４６２（双方とも上位ページビット“１”を担持する）に対応する状態のうちの一方の状態にあるため、さらなるプログラミングは行われない。上位の論理ページビットを論理“０”にする必要があり、かつ、第１のステップの結果、セルがしきい値４６０に対応する消去状態のままである場合、プログラミング処理の第２のステップには、しきい値分布４６６の範囲内に入るようにしきい値電圧を上げるステップが含まれる。上位の論理ページビットを論理“０”にする必要があり、かつ、セルがすでにプログラムされて、第１のプログラミングステップの結果、しきい値分布４６２に対応する状態になっている場合、プログラミング処理の第２のステップには、しきい値電圧分布４６４の範囲内に入るようにしきい値電圧を上げるステップが含まれる。２ステップ処理は、多状態メモリのプログラミング方法論の一例にすぎない。１ステップ処理や３以上のステップ処理を含む多くの他の方法論を利用することが可能である。図８は、４状態（２ビット）を示す図であるが、本発明は、８状態、１６状態、３２状態およびその他の状態を含む構造を含む別の多状態構造についても用いることが可能である。
【００３９】
図１０は、１以上のメモリセルの振舞いに基づいてプログラミング処理を適合させるための進行状態を示す一実施形態を記述するフローチャートである。一実施形態では、プログラミング処理の適合に用いられる振舞いは、例えば、メモリセルをプログラムできる速度や、メモリセルのプログラミングの難易度などのプログラム可能性 (programmability)、あるいは、プログラム可能性の別の態様に関係する。さらに、振舞いに係る別の態様の利用も可能である。
【００４０】
ステップ５００で、最初のプログラミングが実行される。例えば、上述したようにプログラミングパルスを用いる場合、１つのプログラミングパルスあるいは少数のプログラミングパルスがワード線（例えば、コントロールゲートなど）に印加される。ステップ５０２で、プログラムされる様々なメモリセルの振舞いが検出される。多くの異なるタイプの振舞いに関するデータについて問い合せを行うことができる。ステップ５０４で、プログラミング処理は、検出されたメモリセルの振舞いに基づいて調整される。ステップ５０６で、ステップ５０４と関連して説明した調整を用いてメモリ処理は終了する。
【００４１】
本発明は、種々のタイプの振舞いに関するデータを用いてプログラミングの調整を行うことが可能である。利用可能な振舞いに関するデータの一例として、メモリセルがそのしきい値電圧（プログラミングのスピード）を調整することができるスピードがある。別の実施形態では、別の振舞いに関するデータの使用が可能である。どのセルプログラムが高速で、どのセルプログラムが低速かが分かっていれば、プログラミング処理中、異なるビットライン電圧を高速セルと低速セルに印加することができる。したがって、一実施形態では、高速および低速のプログラミングセルを用いて、ある程度同様のスピードでのプログラミングが可能となる。これによって自然なしきい値電圧分布を約１／２だけ効果的にカットすることができる。例えば、低速と高速のレベルなどの２より多いグループにメモリセルを分ける場合、しきい値電圧分布をさらに狭くすることが可能である。
【００４２】
１つの例示の実施構成が図１１とに関連して描かれている。最初に、１組の１以上のプログラミングパルス５５０がワード線に印加される。図１０は、２つの初期パルスを示すものであるが、１つのパルスまたは３以上のパルスの使用も可能である。この初期パルスの後、メモリセルスピード検出処理が、以下に説明するように、時点５５２で実行される。どのメモリセルが高速で、どのメモリセルが低速かの判定がシステムにより行われる。低速のメモリセルの場合、ビットライン電圧は０ボルトに保持される。高速プログラミングが行われるメモリセルの場合、ビットライン電圧はＶｂｎとラベルをつけた中間レベルまで上げられる。Ｖｂｎの一例は、１．２ボルトである。Ｖｄｄ（プログラミング禁止電圧）の一例は、２．６ボルトである。プログラミング処理中にビットライン電圧を上げることは、プログラミング処理をスローダウンさせるという効果が生じる。すなわち、コントロールゲートとドレイン間の電圧差が小さくなることに起因して、プログラミング処理がスローダウンする。
【００４３】
条件に応じてビットラインを調整した後、０．２ｖ分だけＶｐｇｍをステップアップする代わりに、直後に続くプログラミングパルス用としてより高いステップが用いられる。より高いステップの電圧の一例として、１．４ボルトがある。別の実施形態では、ステップアップ電圧は、２つに分けられた自然なしきい値分布の幅に等しくされる。図１１は、パルス５５４を示す。第１のパルス５５４は、例えば１．４ボルトなどのさらに大きなステップアップ電圧分だけパルス５５０内の最期のパルスから上げられる。後続するパルスは、０．２ｖだけあるいは別の好適な量だけステップアップされる。パルス５５０と５５４間の時点５５２後、後続するプログラミングパルス５５４中、高速セル用ビットラインが０ボルトからＶｂｎへ上げられることに留意されたい。Ｖｂｎがビットラインに印加されるため、プログラミング中のチャネル電圧がほぼＶｂｎとなり、そのため、このチャネル電圧はプログラム処理をスローダウンさせて、Ｖｐｇｍの大きなジャンプが補償され、それによって、０ボルトがビットラインに印加され、Ｖｐｇｍステップが０．２ｖとなる標準的方法の場合とほぼ同じ時点に高速グループのメモリセルのプログラミングの終了が可能となる。これに対して、Ｖｐｇｍのジャンプに起因して、低速メモリセルは標準的方法よりも高速にプログラムを行い、高速グループとほぼ同時点に終了することになる。したがって、図１１は、プログラム処理を終了し、ビットライン電圧をＶｄｄまで上げることにより描かれているのと比較的同じ時点にプログラム処理を禁止するように為す高速セルと低速セルの両方とを示すものである。さらに大きなプログラムパルスの使用に起因して、より低速のメモリセルのプログラミングにより少数のパルスが必要となる。プログラミングパルスを使用するため、より高速な全体のプログラムスピードが達成される。
【００４４】
図１１を図１０と相関づけてみると、ステップ５００の最初のプログラミングが、図１１のパルス５５０により描かれている。ステップ５０２の振舞いの検出は、図１１の時間５５２中に実行される。プログラミングの調整が、０ボルトからＶｂｎへの高速セルのビットライン電圧を上げることにより図１１に描かれている。ステップ５０６のプログラミングの終了は、図１１のパルス５５４により描かれている。
【００４５】
図１１Ａは、プログラミング処理の第２の例を示す図である。この第２の例において、初期プログラムパルス５６０は図１１の場合よりも高い振幅電圧を持つ。別の実施形態では、さらに大きなまたは小さな初期パルスを用いることができる。重要な点は、低速セルと高速セルとの区別や別の振舞いの区別を行うことができる十分なプログラミングを行うことである。
【００４６】
図１２〜図２４は、振舞いを検出し、その検出された振舞いに基づいてプログラミングの調整が行われる種々の実施形態のさらなる詳細を示す図である。例えば、図１２と図１３とは、メモリセルが高速グループ内に在るか、低速グループ内に在るかの検出を行う実施形態のさらなる詳細を示す図である。図１２は、消去後の電圧分布６００と、第１の組の１以上のプログラミングパルス後の電圧分布６０２とを描く図である。この分布は半分に分けることが可能である。例えば、電圧Ｖ＿ｃｋによりこの分布は半分に分けられる。いくつかの実施形態において、この分割ポイントは必ずしも正確に１／２のポイントである必要はない。分布６０２の範囲内に在り、Ｖ＿ｃｋ未満のしきい値電圧を持つメモリセルは低速メモリセルと見なされる。分布６０２の範囲内に在り、Ｖ＿ｃｋ以上のしきい値電圧を持つメモリセルは高速メモリセルと見なされる。高速メモリセルであると判定されたメモリセルは、上述したようにそのビットライン電圧が上げられる。
【００４７】
Ｖ＿ｃｋは、装置特性、シミュレーションあるいは実験により確定することが可能である。Ｖ＿ｃｋを確定する別の手段を利用することも可能である。装置特性を用いて使用パルス５５０の数を決定して、より高速のプログラミングセルがＶ＿ｃｋよりも大きなしきい値電圧を持つように、また、より低速のプログラミングセルがＶ＿ｃｋよりも低いしきい値電圧を持つように図ることも可能である。一実施形態では、Ｖ＿ｃｋを横切ることにより最も高速のプログラミングセルの検出が可能であり、良好な振舞いを示す分布を仮定して、より高速のプログラミングセルがＶ＿ｃｋよりも大きなしきい値電圧を持つようにするために、また、より低速のプログラミングセルがＶ＿ｃｋ未満のしきい値電圧を持つようにするために、いくつの追加パルスを必要とするかについての予測を行うことが可能である。当業者には周知の他の手段を用いて、印加対象のパルス５５０の数を決定することも可能である。
【００４８】
図１３は、メモリセルが高速か低速かを検出し、適宜ビットラインの調整を行うプロセスを示す一実施形態を記述するフローチャートである。ステップ６３０で、コントロールゲートにおいてＶ＿ｃｋを印加することによりメモリセルが読み出される。メモリセルにスイッチが入っていれば（ステップ６３２）、メモリセルのしきい値電圧はＶ＿ｃｋ未満となり、メモリセルは低速セルとなる。その場合、ステップ６３４で、振舞いに起因してビットライン電圧の調整が行われることはない。ステップ６３０でメモリセルにスイッチが入っていなかった場合、当該セルのしきい値電圧はＶ＿ｃｋ以上になり、当該メモリセルは高速セルとなる。高速メモリセルの場合、ステップ６３６でＶｂｎになるようにビットラインの調整が行われる。
【００４９】
図１２と図１３の実施形態により、メモリセルが高速セルか低速セルかの判別が行われ、それによってメモリセルが２つのグループのうちの一方に類別されることに留意されたい。当該グループのうちの一方は高速メモリセルであり、他方のグループは低速メモリセルである。別の実施形態では、３以上のグループにメモリセルを類別することができる。例えば、図１４は、消去後のメモリセルのしきい値電圧分布６００を描く図である。また、図１４は、１以上の初期プログラムパルス発生後の自然なしきい値分布６７０を示す図でもある。しきい値分布６７０は、ｉ個のグループに分けられる。例えば、第１のグループにはＶ＿ｃｋ＿０未満のしきい値電圧を持つメモリセルが含まれ、第２のグループにはＶ＿ｃｋ＿０より大きくかつＶ＿ｃｋ＿１未満のしきい値電圧を持つメモリセルが含まれる。図１５は、振舞いを検出するプロセスについて記述するフローチャートであり、このプロセスには、ある特定のメモリセルがどのグループに属するかを特徴づけるステップと、上記特定グループに応じてビットラインの調整を行うステップとが含まれる。ステップ６８０で、上記メモリセルは、個々のチェックポイント（例えば、Ｖ＿ｃｋ＿０，Ｖ＿ｃｋ＿１，…Ｖ＿ｃｋ＿ｉなど）で読み出される。セルにスイッチが入った時点、および、セルにスイッチが入らなかった時点に基づいて、ある特定のメモリセルがどのグループに属するかに関する決定がステップ６８２で行われる。電圧検知検証方式の代わりに、上記プロセスは電流検知方式や、別のメモリセルの状態の読出し／検証手段を用いることも可能であることに留意されたい。ステップ６８４で、上記メモリセルが類別されてどのグループに入るかに基づいて上記特定のメモリセルのビットラインが調整される。すなわち、一実施形態では、個々のグループは異なるビットライン電圧の調整に対応することになる。例えば、第１のグループが第１のビットライン電圧を持ち、第２のグループが第２のビットライン電圧を持つことになる、など。メモリセルがどのグループに属するかが決定された後、当該メモリセルはそのビットライン電圧が当該グループ用のビットライン電圧に等しくなるように為される。一実施形態では、最下位のグループ（Ｖ＿ｃｋ＿０未満のしきい値電圧）がビットライン電圧０を持つことになり、第２のグループ（Ｖ＿ｃｋ＿０よりも大きく、かつ、Ｖ＿ｃｋ＿１未満のしきい値電圧）がＷ／ｉのビットライン電圧を持ち、第３のグループが２Ｗ／ｉのビットライン電圧を持ち、第４のグループが３Ｗ／ｉのビットライン電圧を持つことになるなど。Ｗは自然なしきい値電圧分布の幅である。
【００５０】
分布が細分化されればされるほど、グループ数はより多くなり、最終しきい値電圧分布はよりタイトになる。これに対して、より多くのグループ数を使用すればするほど、読出し動作にさらに長い時間が必要となる。さらに、システムは関連するスピード情報とグループ情報との格納にさらに多くのバッファを必要とすることになる。
【００５１】
いくつかの実施形態では、第１の１以上の初期パルスの発生後、自然なしきい値電圧分布の多くが０ボルト未満になることもあり得ることである。すなわち、メモリセルの多くが０ボルト未満のしきい値電圧を持つことになる。このような状況では、チェックポイントが０ボルト未満になる場合があるため、どのしきい値電圧が低速で、どのしきい値電圧が高速であるかの判別を行うことが困難となる場合がある。すなわち、Ｖ＿ｃｋが０未満の場合、メモリセルのコントロールゲートへ負電圧を印加して、どのメモリセルがＶ＿ｃｋ未満か、Ｖ＿ｃｋ以上かの判別を行うことが困難となる場合がある。例えば、図１６は、消去操作後のしきい値電圧分布６００と、最初のプログラミング後のしきい値電圧分布７００とを示す図である。分布７００の多くが０未満であり、Ｖ＿ｃｋが０未満であることに留意されたい。
【００５２】
振舞いの検出とプログラミングの調整とを行うことを意図する別の実施形態では、本体効果を利用する０未満のしきい値電圧と関連する問題が解決される。トランジスタのソースとトランジスタの本体（基板）との間にバイアスが生じるため、本体効果には正方向のしきい値電圧のシフトが含まれる。したがって、ソースへの電圧の印加により、しきい値電圧を上げることが可能となる。ソースへの電圧が高ければ高いほど、しきい値電圧の見かけのシフトはより大きくなる。したがって、ソースへの電圧の印加により負のしきい値電圧の検出を行い、０以上のレベルまで有効しきい値電圧を効果的に上げ、次いで、ワード線に正の電圧の印加を行うことが可能となる。例えば、図１７には、ＮＡＮＤ列が、１６本のワード線（ＷＬ０…ＷＬ１５）の各々と接続された１６個のメモリセルを持つことが示されている。プログラムされたワード線ＷＬｎは０．５ボルトの電圧を受け取ることになるが、これに対してその他のワード線は５ボルトを受け取ることになる。通常０ボルトであるソースラインはＶｄｄ（例えば、２．６ボルトなど）に等しい電圧を受け取る。別のソースライン電圧の使用も可能である。着想としては、ソースラインでの電圧の印加によりメモリセルの見かけのしきい値電圧が上げられ、０．５ボルトでの検査を行って、メモリセルがＶ＿ｃｋ未満か以上か（低速か高速かなど）の判別を行うようにするというものである。すなわち、図１６のＶ＿ｃｋのしきい値電圧を持つメモリセルは、ソースで印加された電圧の結果、その有効しきい値電圧を０．５ボルトまで上げられることになる。０．５ボルト以上のレベルまで上げられたメモリセルは高速セルとみなされ、０．５ボルト未満のその他のメモリセルは低速とみなされる。
【００５３】
図１８は、振舞いを決定するための本体効果を利用するプロセスの一実施形態を記述するフローチャートを描く図である。ステップ７４０で、電圧がソースに印加され、例えば、Ｖｄｄが上述したように印加される。いくつかの実施形態では、メモリセルのすべては、同一または同様の電源電圧を受け取ることも可能である。別の実施形態では、電源電圧が変動する場合もある。ステップ７４２で、ワード線における検査電圧の印加により関心対象の特定セルが読み出される。図１７は、印加された０．５ボルトを示す。セルにスイッチが入っていれば、メモリセルは低速セルとみなされ、ステップ７４６でビットラインの調整は行われない。セルにスイッチが入っていなければ（ステップ７４４）、メモリセルは高速セルとみなされ、ステップ７４８でビットラインはＶｂｎに調整される。図１４と図１５とに関連して記載した技術を用いて、図１８のプロセスを適合して複数のグループにメモリセルの類別を行うことが可能であることに留意されたい。プログラムされたメモリセルを読み出すための０．５ボルトのワード線電圧が装置特性に基づいて選ばれ、上記電圧はチャネルドーピングの関数となる場合もあることに留意されたい。別の値を用いることも可能である。
【００５４】
本願に開示された別の実施形態と関連して振舞いの決定に本体効果を利用するという上記コンセプトを適用することが可能である。例えば、複数グループにメモリセルを類別する実施形態では、振舞いの検出を決定するために本体効果を利用して類別の根拠にすることが可能である。
【００５５】
図１９と図２０とに関連して振舞いを検出し、プログラミングを調整する別の実施形態が示されている。図１９と図２０の実施形態は、独立に個々のセルの分析を企図して、カスタマイズされたビットライン電圧を個々のセルに対して出力するものである。１以上の初期プログラムパルスの発生後、その分布は図１２に示すようなものとなる。ワード線にＶ＿ｃｋを印加することにより検知を行うことが可能となる。しかし、低速ビットと高速ビットを表す２進の“１”または“０”を返す代わりに、プロセスは所定の検知時点におけるアナログ値を返す。この時、個々のビットはメモリセルのしきい値電圧に応じて異なるビット電圧を持つ可能性がある。例えば、より強く消去されたメモリセルはプリチャージされたビットライン電圧をより高速に放電して、さらに小さなビットライン電圧を持つことになるのに対して、さらに強くプログラムされたメモリセルは、放電を行わなくなるか、放電が少なくなる。この放電されたビットライン電圧レベルの検知により、メモリセルがプログラムされる高速または低速の度合が直接測定される。読出し動作中に検知されたビットライン電圧に基づいて、後続のプログラムステップ中にビットラインに印加される新たな電圧を決定することが可能となる。
【００５６】
例えば、図１９は、初期プログラムパルスの組の発生後の検証／読出し動作中のビットライン電圧Ｖｂｌ対時間をグラフ化したものである。この検証／読出し処理には、ビットラインのプリチャージするステップと、ワード線へのＶ＿ｃｋを印加するステップとが含まれる。次いで、このビットラインにより或る時刻ｔ0 の間放電が可能となる。時刻ｔ0 において、ビットラインの電圧が読み出され、この電圧を用いて、次のプログラムステップ中にビットラインへ印加される電圧が決定される。図１９は、６つの異なるスピードで６つの異なるセルプログラミングを表す６本の曲線を示し、曲線７６０は最も低速のプログラミングセルを表し、曲線７６２は最も高速のプログラミングセルを表す。
【００５７】
図２０は、スピードを検出し、ビットラインで検知されたアナログ電圧を用いて適宜ビットラインの調整を行うプロセスを記述するフローチャートである。図２０のプロセスは、図１１の時点５５２で実行される。ステップ７８０で、ビットラインはプリチャージされる。ステップ７８２で、電圧はセルのワード線に印加される。例えば、ワード線にＶ＿ｃｋを印加することができる。ステップ７８４で、ビットラインは所定量の時間（例えばｔ0 まで）放電が可能となる。ステップ７８６で、ビットラインが読み出され、アナログ電圧値が検出される。ステップ７８８で、ステップ７８６で読み出されたビットライン電圧に基づいて、Ｖｂｎ（プログラム中にビットラインに印加された信号）が決定される。一実施形態では、Ｖｂｎは、ステップ７８６で読み出されたビットライン電圧に等しくなる。別の実施形態では、Ｖｂｎはステップ７８６で読み出された電圧の関数となる。デバイスを特性化したり、デバイスをシミュレートしたりすることにより定式化される数式に基づいてＶｂｎを計算することができる。ステップ７９０で、Ｖｂｎの所定値に基づいてビットラインの調整が行われる。
【００５８】
ビットラインでの放電のベースとするメモリセルを特徴づけるというこのコンセプトは、本願に開示される他の実施形態と共に適用が可能である。例えば、複数グループにメモリセルが類別される実施形態では、ビットラインの放電を行うという上述のコンセプトに基づいて類別を行うことができる。
【００５９】
振舞いを検出し、図２１〜図２４とに関連してプログラミングの調整を行う別の実施形態を示す。図２１〜図２４の実施形態では、第１のメモリセル（または別の小さな組のメモリセル）が目標しきい値電圧の範囲に達するまで、通常のようにメモリセルのプログラミングが行われる。その時点で、目標しきい値電圧の範囲に達していない他のメモリセルのすべてが特徴づけられて、高速プログラミングセルか低速プログラミングセルかのいずれかに分けられる。高速プログラミングセルとみなされるセルはそのビットライン電圧が上げられる。低速プログラミングセルとみなされるセルはそのビットライン電圧が上げられることはない。この実施形態では、すべてのセルは、上昇した同一のプログラム電圧信号をワード線上に生じることになり、その結果、低速セルのプログラミングがスピードアップされる。
【００６０】
図２１は、同時の振舞いを説明するために１つの図に合成された３つのグラフが描かれた図である。例えば、図２１はプログラム電圧信号Ｖｐｇｍ８００を示し、このプログラム電圧信号Ｖｐｇｍ８００はメモリセルのコントロールゲートに印加される。このプログラム電圧信号８００には、時間と共に振幅が増加する一連のパルスが含まれる。信号８００は２組のパルス（Ｖｐｇｍ１とＶｐｇｍ２）に分けられる。Ｖｐｇｍ１の組のパルス内で、振幅は前回のパルスから０．２Ｖだけ増分する。Ｖｐｇｍ１での最期のパルスの振幅とＶｐｇｍ２での初期パルスの振幅間の振幅差は０．６Ｖである。Ｖｐｇｍ２の組のパルス内で、パルスの振幅は、０．２Ｖだけ前回のパルスとは異なるものとなる。フラッシュメモリセルのすべては、セルのうちの１つが目標しきい値の範囲に達するまでＶｐｇｍ１からパルスを受け取り続ける。その時点で、コントロールゲートにおける電圧は０．６ボルト分ステップアップされ、Ｖｐｇｍ２の場合のようにパルスの発生が続くことになる。
【００６１】
プログラム電圧信号８００の下は、ビットライン電圧Ｖｂｌ対時間を描くグラフである。ビットライン電圧Ｖｂｌ対時間グラフの下は、しきい値電圧対時間を示すグラフである。このしきい値電圧対時間のグラフには３本の曲線（８０２，８０４，８０６）が描かれている。これら３本の曲線は、３つのメモリセルに対応する様々な時点におけるしきい値電圧のデータに関係する。曲線８０２と対応するメモリセルはより高速なプログラミングメモリセルとなる。曲線８０６に対応するメモリセルはより低速なプログラミングメモリセルである。曲線８０４に対応するメモリセルは、曲線８０２のメモリセルよりも低速にプログラミングを行い、曲線８０６のメモリセルよりも高速にプログラミングを行うメモリセルである。曲線８０２が空の正方形を用いて描かれ、曲線８０４が塗りつぶされ円を用いて描かれ、曲線８０６が塗りつぶされた正方形を用いて描かれていることに留意されたい。曲線８０２，８０４，８０６は、３個のメモリセルのしきい値電圧がプログラム電圧信号８００に応じて時間と共に変動することを示すものである。プログラム電圧信号８００から得られる個々の新たなパルスと共に３個のメモリセルのしきい値電圧は上昇する。
【００６２】
Ｖｐｇｍ１の間、“第２ステップ検証レベル”としてグラフに示されている目標電圧と個々のメモリセルのしきい値電圧との比較が行われる。第１のメモリセルが第２ステップ検証レベルに達すると、Ｖｐｇｍ１は終了する。例えば、図２１は、時刻ｔ1 の直前にその目標とする第２ステップ検証レベルに達する曲線８０２に対応するメモリセルを示す図である。したがって、時刻ｔ1 においてプログラム電圧信号は０，６Ｖだけステップアップされる。さらに、第２ステップ検証レベルに達していないメモリセルの各々は、それらが高速プログラミングメモリセルか、より低速なプログラミングメモリセルかを判別するために検査される。一実施形態では、このメモリセルは、Ｖ＿ｃｋに対して図１２のメモリセルを検査する場合と同様の方法で検査される。１つの実施構成では、検査対象の当該メモリセルのしきい値電圧は、“第１ステップ検証レベル”として図２１に描かれているレベルと比較される。このレベルは、一実施形態では、第２ステップ検証レベル未満の０．６Ｖである。第１ステップ検証レベル未満のしきい値電圧を持つ各メモリセルはより低速なプログラミングメモリセルとみなされる。第１ステップ検証レベル以上のしきい値電圧を持つ個々のメモリセルはより高速なプログラミングメモリセルとみなされる。上述したのとは別に、装置特性、その他の実験および／またはシミュレーションに基づいて異なる第１ステップ検証レベルの決定を行うことが可能である。
【００６３】
時刻ｔ1 で、目標しきい値電圧の範囲（例えば、第２ステップ検証レベルに対して検証された範囲など）に達したメモリセル（あるいは、複数セル）のビットライン電圧はＶｄｄまで上げられる。これらは、ビットライン電圧Ｖｂｌ対時間を示すグラフに見ることができる。このグラフには（曲線８０２に対応する）空の正方形を持つ曲線がＶｄｄまで上げられたビットライン電圧が示されている。目標しきい値電圧に達しなかったセルであり、検査されてより高速なプログラミングメモリセルとされたセルのうちで、当該セルのビットライン電圧が中間電圧（例えば、Ｖｂｎなど）まで上げられる。例えば、ビットライン電圧Ｖｂ１対時間を示すグラフは、曲線８０４（塗りつぶされた円を持つ）に対応するメモリセルのビットライン電圧が０．６ボルトまで上げられたことを示す。検査の結果、より低速なプログラミングメモリセルとされたメモリセルのビットライン電圧は、曲線８０６に対応する正方形のボックスの曲線により描かれているように０ボルト（あるいは別の値）のままである。次いで、プログラミングがＶｐｇｍ２で継続される。いずれのメモリセルも第２ステップ検証レベルに達すると、そのビットラインはＶｄｄまで上げられる。
【００６４】
図２２は、下位の論理ページデータのメモリセルへの書き込み時におけるフラッシュメモリシステムの一実施形態の制御アルゴリズムについて記述するフローチャートである。図９と関連する上述した２ステッププログラミング方法論に対して図２２の固有の方法が適合される。この場合、メモリセルは、２つの論理ページ（下位ページと上位ページ）に関連するデータを格納し、分布４６０は１１状態を表し、分布４６２は１０状態を表し、分布４６４は００状態を表し、分布４６６は０１状態を表す。さらに多くのビット、さらに多くのページ、異なる状態割当てなどを伴う他の実施形態も本発明の範囲内である。しきい値状態の割当てとプログラム方法論に対する別の変形例を適合するために、図２２のプロセスに対する様々な改変を行うことが可能である。さらに、２ステッププログラミング方法論が用いられないシステムで図２１のコンセプトを実現することも可能である。
【００６５】
ステップ８５０で、制御処理は、ホストからのデータ入力コマンドを受信するステップと、状態マシンで当該データ入力コマンドを送信するステップとから開始する。ステップ８５２で、処理は、ホストからアドレスデータを受信するステップと、書込み動作に使用するページを選択するために状態マシンで当該アドレスデータを送信するステップへ進む。ステップ８５４で、処理は、適切なページへ書き込みを行う対象データを受け取り、ＤＳ１の中に当該データを格納するステップへ進む。ステップ８５６で、処理は、ホストから送出される書込みコマンドを受信し、状態マシンで書込みコマンドを送信するステップへ進む。一実施形態では、状態マシンで書込みコマンドを送信するとき、後続するステップの処理は状態マシンにより自動的に開始される。ステップ８５８で、ＤＳ１からのデータはＤＳ２へコピーされる。ステップ８６０で、プログラム電圧Ｖｐｇｍの初期値がセットされる（例えば、１２ボルトなど。但し、別の値も可能である）。さらに、プログラムカウンタ（ＰＣ）は０にセットされ、Ｐ２レジスタも０で初期化される。一実施形態では、Ｐ２レジスタは状態マシンの中にある。別の実施形態では、システムのコラム制御回路またはその他の構成要素の中にＰ２レジスタを配置することも可能である。
【００６６】
ステップ８６２で、ＤＳ１が０に等しく、かつ、ＤＳ２が０に等しいかどうかが判定される。等しければ、セルのビットラインは０ボルトにセットされる。ＤＳ１が０にセットされ、かつ、ＤＳ２が１にセットされていれば、ビットラインは０．６ボルトにセットされる。ＤＳ１が１にセットされていれば、セルのプログラミングを禁止するために、ビットラインはＶｄｄにセットされる。ステップ８６４で、プログラムステップが実行される。すなわち、プログラム電圧信号８００から１つのパルスが印加される。ステップ８６８で、第２ステップ検証動作が状態１０に対して実行される。すなわち、上記プログラムされたセルは、第２ステップ検証レベルに対して検証されるが、この第２ステップ検証レベルはほとんどの実施形態で目標検証チェック値である。メモリセルが第２ステップ検証をパスすれば、ＤＳ１は１にセットされる。ＤＳ１がすでに１であれば、ＤＳ１は１のままであることに留意されたい。ステップ８７０で、Ｐ２レジスタが０にセットされているかどうかが判定される。Ｐ２レジスタが０にセットされている場合、ステップ８７２で、ＤＳ１が１にセットされ、かつ、ＤＳ２が０にセットされているかどうかの判定が行われる。これは、メモリセルが第２ステップのプログラム検証をパスした場合である。そうであるならば、Ｐ２レジスタは１にセットされ、そうでなければ、レジスタＰ２は変更されない。ステップ８７４で、Ｐ２がまだ０のままかどうかの判定が行われる。０のままであれば（これはメモリセルが第２ステップ検証にまだ達していない場合である）、ステップ８７６で、プログラム電圧信号が０．２ボルトだけ上げられる。ステップ８７８で、プログラムカウンタは１だけ増分される。ステップ８８０で、プログラム対象のすべてのメモリセル用のＤＳ１レジスタが１にセットされているかどうかが判定される。１にセットされていれば、それはセルのすべてが適切にプログラムされ、プログラミング処理が完全であり、プログラミング処理が成功したことを意味する。すべてのＤＳ１レジスタが１にセットされていなければ、プログラムカウンタが２０未満であるかどうかがステップ８８２で決定される。２０未満の場合、処理はステップ８６２で続けられる。プログラムカウンタが２０以上ならば、プログラミング処理は失敗する。
【００６７】
第１のメモリセルが第２ステップ検証をパスしたとき、当該メモリセルはそのＤＳ１レジスタを１にセットすることになる。したがって、ステップ８７２で、Ｐ２レジスタが１にセットされ、それによって（ステップ８７４で）図２２のプロセスにステップ８９４を実行させることになる。ステップ８９４で、状態１０に対する第１ステッププログラム検証が実行される。メモリセルがパスすれば、ＤＳ２は１にセットされる。ステップ８９４は、メモリセルが高速プログラミングセルであるか、低速プログラミングセルであるかを判別するための検査である。すなわち、メモリのしきい値電圧セルが第１ステップ検証レベルより大きければ、メモリセルは高速プログラミングメモリセルである。ＤＳ２がすでに１であれば、ＤＳ２は１のままである。第１ステッププログラム検証がパスしなかった場合、ＤＳ２は変更されない。ステップ８９４に後続して、プログラム電圧は、ステップ８９６で０．６ボルトだけ上げられる。これは、図２１の時刻ｔ1 におけるステップサイズの増分に対応し、その結果、プログラム電圧信号はＶｐｇｍ１からＶｐｇｍ２へ移行する。ステップ８７８で、プログラムカウンタは１だけ増分される。ステップ８８０で、メモリセルのＤＳ１レジスタのすべてが１にセットされることで証明されるように、メモリセルのすべてが適切にプログラムされたかどうかが判定される。適切にプログラムされていれば、プロセスは終了する。適切にプログラムされていなければ、プログラムカウンタが２０未満であるかどうかの判定が行われる。プログラムカウンタが２０以上であれば、プロセスは失敗する。プログラムカウンタが２０未満であれば、ステップ８６２が実行される。メモリセルが第１ステッププログラムをパスした場合、そのＤＳ２レジスタは１にセットされ、メモリセルがより高速なプログラミングセルであるため、そのビットラインは０．６ボルトまで上げられる。セルがステップ８９４の第１ステッププログラム検証プロセスをパスしなかった場合、そのＤＳ１レジスタとＤＳ２レジスタとは双方ともそのまま０にセットされ、そのビットラインは適切な実施構成に基づいて０ボルトまたは他の何らかの低い値にセットされたままとなる。
【００６８】
図２２のプロセスは、状態１１から状態１０へメモリセルのプログラミングを行うためのものである。図２３のプロセスは、状態１１から状態０１への、または、状態１０から状態００へのいずれかからメモリセルのプログラミングを行うためのものである。すなわち、図２２は、上位ページデータがメモリセルへ書き込まれる一実施形態の制御アルゴリズムについて記述するフローチャートである。
【００６９】
ステップ９２０で、制御処理は、ホストからのデータ入力コマンドを受信するステップと、状態マシンで当該データ入力コマンドを送信するステップとから開始する。ステップ９２２で、処理は、ホストからアドレスデータを受信するステップと、状態マシンで当該アドレスデータを送信するステップへ進む。ステップ９２４で、書き込み対象データが受信され、ＤＳ１に格納される。ステップ９２６で、書込みコマンドがホストから受信され、状態マシンで送信され、この状態マシンにより（いくつかの実施形態では）後続するプロセスの開始が自動的にトリガーされる。ステップ９２８で、プログラムデータはＤＳ１からＤＳ２へコピーされる。ステップ９３０で、状態１０の読出し動作が実行される。すなわち、状態１１と１０との間に在る読出し比較ポイントを用いて読出し動作が実行され、メモリセルが状態１１にあるか、状態１０にあるかが判定される。メモリセルが状態１０にあると判定された場合、当該メモリセル用ＤＳ３レジスタは１にセットされ、そうでない場合にはＤＳ３レジスタは０にセットされる。ステップ９３２で、電圧プログラム信号Ｖｐｇｍは初期値１３ボルトにセットされる。しかし、別の初期値電圧を使用することも可能である。さらに、プログラムカウンタは初期値０にセットされ、Ｐ２レジスタは初期値０にセットされる。
【００７０】
ステップ９４０で、ＤＳ１レジスタとＤＳ２レジスタが双方とも０にセットされているかどうかの判定が行われる。双方とも０にセットされていれば、ビットラインもまた０にセットされる。ＤＳ１レジスタが０にセットされ、かつ、ＤＳ２レジスタが１にセットされていれば、ビットラインは０．６ボルトにセットされる。ＤＳ１レジスタが１に等しければ、ビットラインはＶｄｄにセットされ、このＶｄｄによりメモリセルのプログラミングは禁止される。ステップ９４２で、プログラムステップが実行される。すなわち、１パルスがメモリセルのコントロールゲートへ出力される。ステップ９４４で、状態００に対する第２ステップ検証が実行される。すなわち、メモリセルのしきい値電圧は、状態００の目標検証ポイントと比較される。この検証プロセスにパスし、ＤＳ３レジスタが１にセットされれば、ＤＳ１レジスタは１にセットされる。ステップ９４６で、状態０１のプログラム検証が実行され、メモリセルが状態０１に達しているかどうかの判定が行われる。検証プロセスがパスし、ＤＳ３が０にセットされていれば、ＤＳ１レジスタは１にセットされる。ステップ９４８で、Ｐ２レジスタが０にセットされているかどうかが判定される。０にセットされていれば、ステップ９５０で処理は続けられる。ステップ９５０で、ＤＳ１レジスタが１にセットされ、ＤＳ２レジスタが０にセットされているかどうかが判定される。０にセットされていれば、Ｐ２レジスタは１にセットされる。ステップ９５２で、Ｐ２レジスタが０にセットされているかどうかの判定が行われる。０にセットされていれば、ステップ９５４で処理は続けられ、その場合、プログラム電圧信号は０．２ボルトだけ増分される（次のステップ）。ステップ９５６で、プログラムカウンタは１だけ増分される。ステップ９５８で、プログラムされたメモリセルのすべてのＤＳ１レジスタが、１にセットされているかどうかの判定が行われる。１にセットされていれば、プログラム処理は終了し、成功する（状態はパスに等しい）。１にセットされていなければ、ステップ９６０で、プログラムカウンタが２０に達したかどうかが判定される。プログラムカウンタが２０に達していれば、プロセスは失敗する。プログラムカウンタが２０に達していなければ、ステップ９４０で処理は継続される。
【００７１】
以上説明したように、第１のセルがその目標しきい値電圧の範囲に達すると、Ｐ２レジスタはステップ９５０で１にセットされる。その場合、ステップ９５２で、Ｐ２が０に等しくないことがプロセスにより判定されるため、図２３の方法がステップ９７４で継続される。ステップ９７４で、状態１０に対する第１ステッププログラム検証検査が行われる。すなわち、状態１０の第１ステッププログラム検証レベルに対するメモリセルのしきい値電圧の検査が行われる。第１ステッププログラム検証プロセスにパスした場合、ＤＳ２は１にセットされる。ＤＳ２がすでに１であれば、ＤＳ２は１のままとなる。ステップ９７４の後、プログラム電圧はステップ９７６で０．６ボルトだけ増分される。ステップ９７６は、図２１の時刻ｔ1 におけるＶｐｇｍ１とＶｐｇｍ２間でのステップサイズの増分に類似している。ステップ９７６でプログラム電圧のステップを上げた後、プログラムカウンタはステップ９５６で１だけ増分され、ステップ９５８で処理は継続される。
【００７２】
図２４は、図２１〜図２３とに関連するいくつかの実施形態の値を示す例を描いた図である。図２１〜図２４の実施形態は、上述したコンセプトを利用し、このコンセプトと組み合わせて利用することができる。この利用には本体効果を用いる複数グループへのメモリセルの類別と、ビットラインの放電とが含まれ、振舞いについてのさらにカスタマイズされた決定および／またはプログラミング処理のさらにカスタマイズされた調整が図られる。
【００７３】
図１０，１３，１５，１８，２０，２２，２３のプロセスは、状態マシン３１６の指示により、または、状態マシン３１６の指示の時点で実行される傾向があることに留意されたい（図６を参照されたい）。しかし、別の実施形態では、制御装置３１８、別の専用回路構成、あるいは、フラッシュメモリシステムの別の構成要素によりこれらのプロセスの部分をすべて実行することが可能である。例えば、１つの実施構成では、図２０のステップ７８６，７８８，７９０は専用回路により実行される。
【００７４】
上述したコンセプトの別の可能な利用の仕方として、ビットの過剰プログラムの回避が挙げられる。すなわち、プログラムパルスＶｐｇｍを図１に描かれているような状態のままにすることが可能である。しかし、高速プログラミングメモリセルの低速化を図るために、高速プログラミングメモリセルはより高いビットライン電圧を受け取ることになる。これによって、プログラム時間が短くなることはなく、高速プログラミングメモリセルを過剰プログラムから防ぐことが可能となる。過剰プログラムビットの処理を行う従来の方法では、より多くのＥＣＣの使用や、プログラム電圧の低減が行われていた。より多くのＥＣＣとプログラム電圧の低減の双方により、プログラミング処理のスピードは低下する。さらに、より多くのＥＣＣには、さらに多くのオンチップハードウェアを必要とする場合がある。
【００７５】
上述した諸例は、ＮＡＮＤ形フラッシュメモリと関連して示したものである。しかし、本発明の原理は、現行のメモリ並びに開発中の新たな技術の利用が意図されるメモリを含む別のタイプのフラッシュメモリと別のタイプの不揮発性メモリにも適用される。
【００７６】
本発明についての上述の詳細な説明は、例示と説明とを目的として記載されたものである。上述した説明は、開示される正確な形態を網羅したり、開示される正確な形態に本発明を限定したりすることを意図するものではない。上述の教示を考慮して多くの改変と変更とを行うことが可能である。本願記載の実施形態は、本発明の原理を最もよく説明するために選ばれたものであり、また、それによって当業者が本発明を実際に適用することが可能となり、種々の実施形態において、また、意図した特定の利用に適するように種々の改変を行うと共に本発明を最も好適に利用できるようにするためのものである。本発明の範囲は、本明細書に添付の請求項により定義される範囲とする。
【図面の簡単な説明】
【００７７】
【図１】例示のプログラミング処理中のワード線とビットラインにかかる信号を示す。
【図２】メモリセルのサンプルの自然な電圧分布の一例を示す。
【図３】ＮＡＮＤ列の平面図である。
【図４】ＮＡＮＤ列の等価回路図である。
【図５】ＮＡＮＤ列の横断面図である。
【図６】不揮発性メモリシステムの一実施形態のブロック図であり、このメモリシステムにおいて本発明の様々な態様が実現される。
【図７】メモリアレイの編成の一例を示す。
【図８】コラム制御回路の一部を示す。
【図９】多状態メモリセルのメモリセルしきい値分布を示す。
【図１０】１以上のメモリセルの振舞いに基づいてプログラミング動作を適合させる或るプロセスの一実施形態を記述するフローチャートである。
【図１１】例示のプログラミング処理中のワード線とビットラインにかかる信号を示す。
【図１１Ａ】第２の例示のプログラミング処理中のワード線とビットラインにかかる信号を示す。
【図１２】消去後、および、１以上のプログラムパルスの発生後の電圧分布の例を示す。
【図１３】１以上のメモリセルの振舞いを検出し、この検出された振舞いに基づいてプログラミングの調整を行う或るプロセスの一実施形態を記述するフローチャートである。
【図１４】消去後、および、１以上のプログラムパルスの発生後の電圧分布の例を示す。
【図１５】１以上のメモリセルの振舞いを検出し、この検出された振舞いに基づいてプログラミングの調整を行う或るプロセスの一実施形態を記述するフローチャートである。
【図１６】消去後、および、１以上のプログラムパルスの発生後の電圧分布の例を示す。
【図１７】ＮＡＮＤ列を示す。
【図１８】１以上のメモリセルの振舞いを検出し、この検出された振舞いに基づいてプログラミングの調整を行う或るプロセスの一実施形態を記述するフローチャートである。
【図１９】ビットライン電圧（Ｖｂｌ）対時間を示すグラフである。
【図２０】１以上のメモリセルの振舞いを検出し、この検出された振舞いに基づいてプログラミングの調整を行う或るプロセスの一実施形態を記述するフローチャートである。
【図２１】１以上のメモリセルの振舞いを検出し、この検出された振舞いに基づいてプログラミングの調整を行う或るプロセスの別の実施形態を示す。
【図２２】図２１の実施形態用として使用可能なプログラミング処理の一例を記述するフローチャートである。
【図２３】図２１の実施形態用として使用可能なプログラミング処理の一例を記述するフローチャートである。
【図２４】図２１〜図２３と関連づけられる種々の実施形態の値の例を示す。
【符号の説明】
【００７８】
３０２  メモリセルアレイ
３０４  コラム制御回路
３０６  ロウ制御回路
３０８  Ｐウェル制御回路
３１０  ｃソース制御回路
３１２  データＩ／Ｏ
３１４  コマンド回路
３１６  状態マシン
３１８  コントローラ
【図１】
0004646534.tif 000002
【図２】
0004646534.tif 000003
【図３】
0004646534.tif 000004
【図４】
0004646534.tif 000005
【図５】
0004646534.tif 000006
【図６】
0004646534.tif 000007
【図７】
0004646534.tif 000008
【図８】
0004646534.tif 000009
【図９】
0004646534.tif 000010
【図１０】
0004646534.tif 000011
【図１１】
0004646534.tif 000012
【図１１Ａ】
0004646534.tif 000013
【図１２】
0004646534.tif 000014
【図１３】
0004646534.tif 000015
【図１４】
0004646534.tif 000016
【図１５】
0004646534.tif 000017
【図１６】
0004646534.tif 000018
【図１７】
0004646534.tif 000019
【図１８】
0004646534.tif 000020
【図１９】
0004646534.tif 000021
【図２０】
0004646534.tif 000022
【図２１】
0004646534.tif 000023
【図２２】
0004646534.tif 000024
【図２３】
0004646534.tif 000025
【図２４】
0004646534.tif 000026