(57)【要約】  雑／ファインプログラミング技術が下位状態をプログラムするために用いられるとともに、既知の技術（雑／ファインプログラミング技術ではない）が最高位状態をプログラムするために用いられる。しかしながら、下位状態のプログラムが終了したときに、プログラムパルス数は最高位状態をプログラムするために必要である。プログラミング速度を改善するために、下位状態のプログラムが完了した瞬間からより大きなステップサイズ及びより長いプログラミングパルスが使用可能である。同時に、最高位状態のプログラミング技術は雑／ファインプログラミング技術に変更することが可能である。
2010508615.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性記憶素子のセットをプログラミングする方法であって、
不揮発性記憶素子に一連のプログラミングパルスを印加する工程であり、断続的なパルスのそれぞれが下位状態のプログラミングが完了するまで第１のステップサイズで増分され、次に断続的なパルスのそれぞれが第２のステップサイズで増分される工程と、
下位状態のプログラミングが完了するとプログラミングパルスのパルス長を増加する工程と、を備える方法。
【請求項２】
前記一連のプログラミングパルスを印加する工程は、
下位状態のプログラミングが完了するまで、雑／ファインプログラミングを使用しない従来の技法を使用して最高位状態に向けてプログラミングすることと、
下位状態のプログラミングが完了した後に、雑／ファイン技法を使用して最高位状態に向けてプログラミングすることと、を有する請求項１に記載の方法。
【請求項３】
前記従来の技法を使用するプログラミングは、単一の検証レベルを使用することを有しており、
前記雑／ファイン技法を使用するプログラミングは、少なくとも２つの検証レベルを使用することを有する請求項２に記載の方法。
【請求項４】
前記雑／ファイン技法は、第１検証レベルを超えるが第２検証レベル未満である閾値電圧を有する記憶素子に中間ビットライン電圧を印加することを有する請求項３に記載の方法。
【請求項５】
前記雑／ファイン技法は、第２検証レベルを超える閾値電圧を有する記憶素子に高ビットライン電圧を印加することを有する請求項３に記載の方法。
【請求項６】
各記憶素子は、空の状態及び３つのプログラム状態にプログラミングでき、そのプログラム状態の１つが最高位状態であり、
下位状態がプログラミングされるまで記憶素子に検証パルスの第１セットを印加し、次に記憶素子に検証パルスの第２セットを印加する工程をさらに備えており、
検証パルスの第１セットが下位状態用の少なくとも２つの検証レベルと、最高位状態用の単一の検証レベルとを有しており、
検証パルスの第２セットが最高位状態用の少なくとも２つの検証レベルを有している請求項１に記載の方法。
【請求項７】
前記一連のプログラミングパルスを印加する工程は、下位状態のプログラミングが完了するまで第１のステップサイズで断続的なパルスを増分し、次に第３のステップサイズで単一のパルスを増分し、次に第２のステップサイズで断続的なパルスを増分する請求項６に記載の方法。
【請求項８】
増加したパルス長を有する第１のプログラミングパルスが第３のステップサイズで増分され、増加したパルス長を有する以後のプログラミングパルスが第２のステップサイズで増分される請求項１に記載の方法。
【請求項９】
不揮発性記憶システムであって、
複数の不揮発性記憶素子と、
不揮発性記憶素子と通信する少なくとも１つの管理回路と、を備えており、
管理回路が一連のプログラミングパルスを記憶素子に印加し、
断続的なパルスのそれぞれは下位状態のプログラミングが完了するまで第１のステップサイズで増分され、次に断続的なパルスのそれぞれは第２のステップサイズで増分され、
管理回路が、下位状態のプログラミングが完了するとプログラミングパルスのパルス長を増加する不揮発性記憶システム。
【請求項１０】
管理回路は、下位状態のプログラミングが完了するまで第１技法を使用して最高位状態をプログラミングし、次に下位状態のプログラミングが完了した後に第２技法を使用して最高位状態をプログラミングする請求項９に記載のシステム。
【請求項１１】
第１技法が単一検証レベルを有し、第２技法が少なくとも２つの検証レベルを有する請求項１０に記載のシステム。
【請求項１２】
第１技法が雑／ファインプログラミングを使用せず、第２技法が雑／ファインプログラミングを使用する請求項１１に記載のシステム。
【請求項１３】
第２技法では、管理回路が、目標検証レベルを超える閾値電圧を有する記憶素子に高ビットライン電圧を印加する請求項１１に記載のシステム。
【請求項１４】
各記憶素子が空の状態と３つのプログラム状態にプログラミングすることができ、プログラム状態の１つが最高位状態であり、
管理回路は、下位状態がプログラミングされるまで検証パルスの第１セットを記憶素子に印加し、次に検証パルスの第２セットを記憶素子に印加し、
検証パルスの第１セットは下位状態用の少なくとも２つの検証レベルと、最高位状態用の単一の検証レベルを有しており、
検証パルスの第２セットは最高位状態用の少なくとも２つの検証レベルを有している請求項９に記載のシステム。
【請求項１５】
管理回路は、下位状態のプログラミングが完了するまで第１のステップサイズで断続的なパルスのそれぞれを増分し、次に第３のステップサイズで単一のパルスを増分し、次に第２のステップサイズで断続的なパルスのそれぞれを増分する請求項１４に記載のシステム。
【請求項１６】
第３のステップサイズ及び第２のステップサイズが第１のステップサイズより大きい請求項１５に記載のシステム。
【請求項１７】
第３のステップサイズが第２のステップサイズより大きい請求項１６に記載のシステム。
【請求項１８】
管理回路は、増加したパルス長を有する第１のプログラミングパルスのシリーズを第３のステップサイズで増分し、以後のプログラミングパルスのシリーズが第２のステップサイズで増分する請求項９に記載のシステム。
【請求項１９】
管理回路は、下位状態のプログラミングが完了するとパルス長を２倍にする請求項９に記載のシステム。
【請求項２０】
管理回路は、雑／ファイン技法を使用して下位状態をプログラミングし、下位状態のプログラミングが完了するまで従来の技法を使用して高位状態をプログラミングし、下位状態のプログラミングが完了した後に雑／ファイン技法を使用して高位状態をプログラミングする請求項９に記載のシステム。
【請求項２１】
管理回路は、下位状態のプログラミングが完了するまで断続的なパルスのそれぞれを第１のステップサイズで増分し、次に第３のステップサイズで単一のパルスを増分し、次に断続的なパルスのそれぞれを第２のステップサイズで増分する請求項２０に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、不揮発性メモリのプログラミングに関する。
【背景技術】
【０００２】
半導体メモリは、様々な電子装置に使用されることが一般的になってきている。例えば、不揮発性半導体メモリは、携帯電話、デジタルカメラ、パーソナルデジタルアシスタント、モバイルコンピュータ、非モバイルコンピュータ及び他のデバイスの中に使用されている。電気的消去・プログラム可能な読取専用メモリ（ＥＥＰＲＯＭ）と、フラッシュメモリは、最も普及している不揮発性半導体メモリの１つである。
【０００３】
ＥＥＰＲＯＭとフラッシュメモリはいずれも、半導体基板内のチャネル領域上に配置されているとともにそのチャネル領域から絶縁されたフローティングゲートを利用している。フローティングゲートは、ソース領域とドレイン領域の間に配置されている。制御ゲートは、フローティングゲートの上方に設けられており、そのフローティングゲートから絶縁されている。トランジスタの閾値電圧Ｖｔは、フローティングゲートに保持される電荷量によって制御される。つまり、そのソースとドレインの間の導通を可能にするためにトランジスタをオンにする前に制御ゲートに印加すべき電圧の最小量は、そのフローティングゲートの電荷レベルにより制御される。
【０００４】
フローティングゲートは、電荷を２つの範囲に蓄積することができる。これにより、トランジスタは、２つの予想される状態、例えば、消去状態とプログラム状態を持つメモリ素子を提供する。そのようなフラッシュメモリデバイスは、それぞれのメモリ素子がデータの１ビットを蓄積することができるので、バイナリフラッシュメモリデバイスと称される。
【０００５】
マルチ状態又はマルチレベルフラッシュメモリデバイスは、区別可能な複数の許可／有効なプログラム閾値電圧範囲を特定することによって実現される。区別可能な閾値電圧範囲のそれぞれは、メモリデバイス内に符号化されたデータビットのセットのための所定値に対応している。例えば、素子が４つの分離された閾値電圧範囲に対応する４つの分離された電荷帯の１つに置かれたときに、メモリ素子のそれぞれはデータの２ビットを蓄積することが可能である。
【０００６】
一般的に、プログラムが動作している間に制御ゲートに印加されるプログラム電圧（Ｖｐｇｍ）は、経時的に大きさが増加する一連のパルス又は波形として印加される。可能な一実施形態では、これらパルスの大きさは、連続するパルスごとに、０．２−０．４Ｖの所定のステップサイズだけ増加する。プログラムパルス間の期間に、検証動作が実行される。すなわち、並列にプログラムされている素子群内の各素子のプログラミングレベルは、連続するプログラミングパルス間で読み取られ、素子がプログラムすべき検証レベル以上であるか否かが判定される。マルチ状態フラッシュメモリ素子アレイの場合、メモリ素子のそれぞれの状態に対して検証ステップを実行し、メモリ素子自身のデータに関連する検証レベルに到達したかを判定してもよい。例えば、データを４つの状態で記憶することが可能なマルチ状態メモリ素子は、３つの比較ポイントに対して検証動作を実行する必要があるであろう。
【０００７】
さらに、ＥＥＰＲＯＭデバイス、又はＮＡＮＤストリング内のＮＡＮＤフラッシュメモリデバイスなどのフラッシュメモリデバイスをプログラムするとき、一般的には、Ｖｐｇｍが制御ゲートに印加されるとともにビットラインを接地される。すると、セル又はメモリ素子（例えば、記憶素子）のチャネルからの電子が浮遊ゲートに注入される。電子が浮遊ゲート内に蓄積されると、浮遊ゲートは負に帯電して、メモリ素子の閾値電圧が引き上げられ、これによって、メモリ素子はプログラムされた状態になる。このようなプログラミングに関するさらなる情報は、双方ともそれらの全体を参照して本明細書に組み込む「Source Slide Self Boosting Technique For Non-Volatile Memory」という名称の米国特許第６，８５９，３９７号および「Detecting Over Programmed Memory」という名称の米国特許公開第２００５／００２４９３９号に見受けられる。
【０００８】
マルチレベル記憶装置では、より狭いプルグラム閾値電圧分布を実現するため及びより高速なプログラミング速度を実現するために、様々なプログラミング技術が用いられている。例えば、最終検証電圧以下の特定の検証電圧に到達した記憶素子に印加される中間ビットライン電圧において、雑／ファインプログラミング技術が利用される。これは、プログラミングを減速させることにより、閾値電圧分布をより正確に制御する。
【０００９】
他の電子装置と同様に、メモリ装置をできるだけ早くプログラムしたいという需要者の要求がある。例えば、フラッシュメモリカードに画像を記憶するデジタルカメラの使用者は、写真と写真の間の不必要な長い時間を待つことができない。適度な速度でプログラミングすることに加えて、マルチ状態メモリセルに適切なデータを記憶させるために、マルチ状態メモリセルの複数の閾値電圧の範囲が互いに十分な余裕を持って分離され、この結果、メモリセルのレベルが明白な手順でプログラム及び読み出し可能となるべきである。密接な閾値電圧分布が望ましい。密接な閾値電圧分布を実現するために、小さなプログラミングステップが一般的には利用されており、これにより、セルの閾値電圧のプログラミングはより減速する。より密接な閾値電圧分布を望む場合、ステップはより小さくなり、プログラミングプロセスはより減速する。
【発明の概要】
【発明が解決しようとする課題】
【００１０】
通常、妥当なプログラミング回数を維持するために、雑／ファインプログラミングアルゴリズムは最高位のメモリ状態（最大の正の閾値電圧範囲に対応する状態）には適用されない。高位状態から最高位状態を区別する必要はない。通常、次の最下位状態と区別するために、最小閾値レベルを超えて最高位状態のためにセルをプログラミングすることだけが必要である。したがって、これらのセルの分布は、装置性能に悪影響を及ぼすことなくより広い閾値電圧範囲を占めることができる。雑／ファインプログラミング方法論は、前述したようにさらに多くの検証ステップを必要とする。さらに、雑／ファインプログラミング方法論を使用すると、必要とされるプログラミングパルスの総数が増加する可能性がある。最高位の閾値電圧状態は、大部分のケースで密接な閾値電圧分布を必要としない。このため、通常、全般的なプログラミング回数を減少させるために、雑／ファインプログラミングは使用されない。
【００１１】
プログラミング回数の増加に加えて、最高位の閾値電圧状態に雑／ファインプログラミング方法論を使用すると、（以下でさらに詳しく説明する）ＮＡＮＤアーキテクチャで実現されるフラッシュメモリ素子内でのプログラム妨害（Program disturb）の発生が増加する場合がある。選択したＮＡＮＤストリングの選択したセルの制御ゲートにプログラム電圧を印加するために、プログラム電圧は適切なワードラインに印加される。また、このワードラインは、選択したメモリセルのブロック内の他の全てのＮＡＮＤストリング上のメモリセルにも接続される。これらのメモリセルのいくつかがプログラミングを意図していない可能性がある。同じワードラインに接続されている他のセルをプログラミングすることなく、ワードライン上の1つのセルをプログラミングしようとすると問題が発生する。プログラム電圧はワードラインに接続されている全てのセルに印加されるため、ワードラインに接続されている未選択のセル（プログラミングされることのないセル）が不注意にプログラミングされることになる。選択したワードライン上での未選択セルの意図的ではないプログラミングが「プログラム妨害」と呼ばれる。
【００１２】
プログラム妨害を排除するあるいは制限するための多様な技法が存在するが、プログラム妨害の可能性を減少するために、最高位の閾値電圧メモリ状態のために雑／ファインプログラミングアルゴリズムを使用することを選ばない装置の設計者もいる。プログラム妨害は、ワードラインに大きなプログラム電圧が印加されている場合に最も頻繁に発生する。雑／ファインプログラミングが必要とするプログラミングパルス数が増加すると、プログラム電圧が、雑／ファインプログラミングが使用されないならば到達するであろうよりも高いレベルに到達することがある。従って、ＮＡＮＤアーキテクチャのいくつかの応用例は、プログラム妨害の発生を最小限に抑えるために最高位の閾値電圧状態に雑／ファインプログラミングを適用しない。
【課題を解決するための手段】
【００１３】
最高位状態（複数の場合がある）をプログラミングするために標準技法（雑／ファインプログラミングではない）を使用しながら、雑／ファインプログラミング技法は下位状態をプログラミングするために使用される。しかしながら、下位状態のプログラミングが終了しても、最高状態をプログラミングするために多くのプログラミングパルスが必要とされる。プログラミング速度を改善するために、最下位状態がプログラミングされた瞬間から、より大きなステップサイズ及びより長いプログラミングパルスを使用できる。同時に、最高位状態のためのプログラミング技法は、雑／ファインプログラミング技法に変更できる。
【００１４】
本発明の特徴及び利点のさらなる理解は、本発明の原則が活用される例示的な実施形態を説明する以下の本発明の詳細な説明及び添付図面を参照することにより得られる。
【図面の簡単な説明】
【００１５】
【図１】ＮＡＮＤストリングの平面図である。
【図２】ＮＡＮＤストリングの等価回路図である。
【図３】ＮＡＮＤフラッシュメモリセルのアレイの一部のブロック図である。
【図４】不揮発性メモリシステムのブロック図である。
【図５】不揮発性メモリシステムのブロック図である。
【図６】検出ブロックの一実施形態を示すブロック図である。
【図７】メモリアレイのブロック図である。
【図８】閾値電圧の分布の例のセットを示す図である。
【図９】ツーパスプログラミング技術用の閾値電圧の分布のセットを示す図である。
【図１０Ａ】フローティングゲートのフローティングゲートカップリングを抑制するプログラミング技術用の閾値電圧の分布のセットを示す図である。
【図１０Ｂ】フローティングゲートのフローティングゲートカップリングを抑制するプログラミング技術用の閾値電圧の分布のセットを示す図である。
【図１０Ｃ】フローティングゲートのフローティングゲートカップリングを抑制するプログラミング技術用の閾値電圧の分布のセットを示す図である。
【図１１Ａ】従来のプログラミング技術における閾値電圧と時間の関係を示す図である。
【図１１Ｂ】図１１Aに関連し、ビットライン電圧と時間の時間の関係を示す図である。
【図１２Ａ】雑／ファインプログラミングプロセスにおける閾値電圧と時間の関係を示す図である。
【図１２Ｂ】図１２Aに関連し、ビットライン電圧と時間の時間の関係を示す図である。
【図１３Ａ】改良された雑／ファインプログラミングプロセスにおける閾値電圧と時間の関係を示す図である。
【図１３Ｂ】図１３Aに関連し、ビットライン電圧と時間の時間の関係を示す図である。
【図１４】マルチレベル不揮発性記憶素子をプログラムするための一連のプログラミングパルスを示す図である。
【図１５】マルチレベル不揮発性記憶素子をプログラムするための一連のプログラミングパルスを示す図である。
【図１６】最下位状態のプログラミング完了前に記憶素子のプログラミングを検証するために用いられる一連の検証パルスを示す図である。
【図１７】最下位状態のプログラミング完了後に記憶素子のプログラミングを検証するために用いられる一連の検証パルスを示す図である。
【図１８】図１４−１５の実施形態に基づいて、不揮発性記憶素子をプログラミングするためのプロセスを表すフローチャートを示す図である。
【図１９】図１４−１５の実施形態に基づいて、不揮発性記憶素子をプログラミングするためのプロセスを表すフローチャートを示す図である。
【発明を実施するための形態】
【００１６】
半導体メモリシステムの一実施形態は、ＮＡＮＤフラッシュメモリ構造を用いる。そのＮＡＮＤフラッシュメモリ構造は、ＮＡＮＤストリング内の２つの選択ゲート間に直列に接続された複数のトランジスタを含む。図１は、そのようなＮＡＮＤストリング１５０の１つを示す平面図である。図２は、その等価回路である。図１と図２に示すＮＡＮＤストリングは、第１選択ゲート１２０と第２選択ゲート１２２の間に挟まれているとともに直列に接続されている４つのトランジスタ１００、１０２、１０４及び１０６を有する。第１選択ゲート１２０は、ＮＡＮＤストリング１５０のビットライン１２６への接続をゲート制御する。第２選択ゲート１２２は、ＮＡＮＤストリング１５０のソースライン１２８への接続をゲート制御する。第１選択ゲート１２０は、制御ゲート１２０ＣＧに適切な電圧を印加することで制御される。第２選択ゲート１２２は、制御ゲート１２２ＣＧに適切な電圧を印加することで制御される。トランジスタ１００、１０２、１０４、及び１０６のそれぞれは、制御ゲートとフローティングゲートを有している。トランジスタ１００は、制御ゲート１００ＣＧとフローティングゲート１００ＦＧを有している。トランジスタ１０２は、制御ゲート１０２ＣＧとフローティングゲート１０２ＦＧを有している。トランジスタ１０４は、制御ゲート１０４ＣＧとフローティングゲート１０４ＦＧを有している。トランジスタ１０６は、制御ゲート１０６ＣＧとフローティングゲート１０６ＦＧを有している。
【００１７】
制御ゲート１００ＣＧはワードラインＷＬ３に接続されており、制御ゲート１０２ＣＧはワードラインＷＬ２に接続されており、制御ゲート１０４ＣＧはワードラインＷＬ１に接続されており、制御ゲート１０６ＣＧはワードラインＷＬ０に接続されている。一実施形態では、トランジスタ１００、１０２、１０４及び１０６はメモリセルとして利用される。他の実施形態では、メモリセルは複数のトランジスタを有していてもよく、あるいは図１または図２に示されているものと異なってもよい。第１選択ゲート１２０はドレイン選択ラインＳＧＤに接続されている。第２選択ゲート１２２はソース選択ラインＳＧＳに接続されている。
【００１８】
図１及び図２はＮＡＮＤストリング内の４個のメモリセルを示しているが、４つのトランジスタの使用は例としてのみ示されており、８個のメモリセル、１６個のメモリセル、３２個のメモリセル、６４個のメモリセル等の共通の形態を含む他の形態も容易に提供可能であることに注意する。
【００１９】
図３は、図１−２に示したようなＮＡＮＤセルのアレイの一例を示している。各列に沿って、ビットライン２０６はＮＡＮＤストリング１５０のドレイン選択ゲートのドレイン端子１２６に接続している。ＮＡＮＤストリングの各行に沿って、ソースライン２０４はＮＡＮＤストリングのソース選択ゲートのソース端子１２８のそれぞれに接続できる。ＮＡＮＤ型フラッシュメモリ及びその動作の類似した例は、米国特許第５，３８６，４２２号、第５，５７０，３１５号、第５，７７４，３９７号、第６，０４６，９３５号、第６，４５６，５２８号、及び第６，５２２、５８０号に記載されている。
【００２０】
メモリセルのアレイは、メモリセルの多数のブロックに分割される。フラッシュＥＥＰＲＯＭシステムでは一般的なように、ブロックは消去のユニットである。つまり、各ブロックは、共に消去される最小数のメモリセルを有する。各ブロックは、一般に複数のページに分割される。ページはプログラミングの単位である。一実施形態では、個々のページはセグメントに分割され、セグメントは基本プログラミング動作として一度に書き込まれる最小数のセルを有することができる。一般に、メモリセルの１行に１ページ以上のデータを記憶する。１ページは１つ以上のセクタを記憶できる。１つのセクタは、ユーザデータとオーバヘッドデータを有する。オーバヘッドデータは一般に、そのセクタのユーザデータから計算された誤り訂正符号（ＥＣＣ）を有する。制御部（後に説明）の一部は、データがアレイ内にプログラムされるときにＥＣＣを計算し、さらにデータがアレイから読み出されるときにそれをチェックする。また、ＥＣＣ及び／又は他のオーバヘッドデータは、それらが関連するユーザデータ以外の異なるページもしくは異なるブロックにさえ記憶される。ユーザデータのセクタは一般に５１２バイトであり、磁気ディスクドライブ内のセクタのサイズに対応する。オーバヘッドデータは一般に、追加の１６〜２０バイトである。多数のページがブロックを構成し、それは８ページから、例えば最大３２、６４，１２８またはそれ以上のページのいずれであってもよい。
【００２１】
図４は、本発明の一実施形態による１ページのメモリセルを並列に読み出し及びプログラミングする読み出し／書き込み回路を備えたメモリ装置２９６を示している。メモリ装置２９６は、１つ以上のメモリダイ２９８を有する。メモリダイ２９８は、２次元のアレイのメモリセル３００、制御回路３１０、及び読み出し／書き込み回路３６５を有する。いくつかの実施形態では、メモリセルのアレイは３次元であり得る。メモリアレイ３００は、行復号部３３０を介してワードラインによって、及び、列復号部３６０を介してビットラインによってアドレスできる。読み出し／書き込み回路３６５は、複数の検出ブロック４００を有しており、１ページのメモリセルを並列に読み出し又はプログラムすることができる。一般に、制御部３５０は、１つ以上のメモリダイ２９８のように同じメモリ装置２９６（例えば、取り外し可能なストレージカード）内に含まれる。コマンド及びデータは、ライン３２０を介してホストと制御部３５０の間、及び、ライン３１８を介して制御部と１つ以上のメモリダイ２９８の間で送られる。
【００２２】
制御回路３１０は、読み出し／書き込み回路３６５と協調して、メモリアレイ３００上でメモリ動作を実行する。制御回路３１０は、状態マシン３１２、オンチップアドレス復号部３１４及び電力制御モジュール３１６を有している。状態マシン３１２は、メモリ動作のチップレベル制御を提供する。オンチップアドレス復号部３１４は、ホスト又はメモリ制御部によって用いられるとともに、復号部３３０及び３６０によって用いられるハードウェアアドレスの間のアドレスインタフェースを提供する。電力制御モジュール３１６は、メモリ動作中にワードライン及びビットラインに供給される電力及び電圧を制御する。
【００２３】
いくつかの実装形態では、図４の構成要素のいくつかを結合することができる。多様な設計では、メモリセルアレイ３００以外の図４の構成要素の１つまたは複数を（単独でまたは組み合わせて）１つの管理回路と見なすことができる。例えば、管理回路は、制御回路３１０、状態マシン３１２、復号部３１４／３６０、電力制御３１６、検出ブロック４００、読み出し／書き込み回路３６５、制御部３５０等の内の１つ、または組み合わせを有してよい。
【００２４】
図５は、図４に示したメモリ装置２９６の別の構成を示している。様々な周辺回路によるメモリアレイ３００へのアクセスはアレイの両側で対称的に実装されており、各側のアクセスライン及び回路の密度が半分に低減されている。したがって、行復号部は行復号部３３０Ａと３３０Ｂに分割され、列復号部は列復号部３６０Ａと３６０Ｂに分割されている。同様に、読み出し／書き込み回路は、アレイ３００の底部からのビットラインに接続する読み出し／書き込み回路３６５Ａと、アレイ３００の上部からのビットラインに接続する読み出し／書き込み回路３６５Ｂに分割されている。この方法により、読み出し／書き込みモジュールの密度は本質的に二分の一に低減される。図５の装置は、図４の装置で上述したような制御部を有することもできる。
【００２５】
図６は、検出モジュール３８０と呼ばれるコア部、及び共通部３９０に分割された個々の検出ブロック４００のブロック図である。一実施形態では、各ビットラインに対して別個の検出モジュール３８０と、複数の検出モジュール３８０の集合に対して１つの共通部３９０があってもよい。一例では、検出ブロックは、１つの共通部３９０と８つの検出モジュール３８０を有することができる。グループ内の各検出モジュールは、データバス３７２を介して関連する共通部と通信できる。さらなる詳細としては、米国特許公開第２００６／０１４０００７号、「Non-Volatile Memory & Method with Shared Processing for an Aggregate on Sense Amplifiers」を参照する。その全体は参照することにより本明細書に組み込まれる。
【００２６】
検出モジュール３８０は、検出回路３７０を有している。検出回路３７０は、接続されたビットライン内の伝導電流が所定の閾値レベルより高いか低いかを判定する。検出モジュール３８０はさらに、ビットラインラッチ３８２を有している。ビットラインラッチ３８２は、接続されたビットライン上の電圧条件を設定するために用いられる。例えば、ビットラインラッチ３８２内にラッチされる所定の状態によって、接続されたビットラインはプログラム禁止を指定する状態（例えば、Ｖｄｄ）とされる。
【００２７】
共通部３９０は、プロセッサ３９２と、１セットのデータラッチ３９４と、１セットのデータラッチ３９４とデータバス３２０の間を接続するＩ／Ｏインタフェース３９６を有する。プロセッサ３９２は計算を実行する。例えば、その機能の１つは、検出されたメモリセル内に記憶されているデータを判定し、判定したデータを１セットのデータラッチ内に記憶することである。１セットのデータラッチ３９４は、読み出し動作中に、プロセッサ３９２によって判定されたデータビットを記憶するために用いられる。１セットのデータラッチ３９４はまた、プログラム動作中に、データバス３２０から取り込まれたデータビットを記憶するためにも用いられる。取り込まれたデータビットは、メモリ内にプログラムする予定の書き込みデータを表す。Ｉ／Ｏインタフェース３９６は、データラッチ３９４とデータバス３２０の間のインタフェースを提供する。
【００２８】
読み出し又は検出中には、システムの動作は状態マシン３１２の制御下にあり、状態マシン３１２はアドレスされたセルへの異なる制御ゲート電圧の供給を制御する。メモリによってサポートされた様々なメモリ状態に対応する様々な既定制御ゲート電圧のステップを進む際に、検出モジュール３８０はこれらの電圧の１つに移動し、バス３７２を介して検出モジュール３８０からプロセッサ３９２に出力が提供される。その時点で、プロセッサ３９２は、検出モジュールの移動イベントと状態マシンから入力ライン３９３を介して印加された制御ゲート電圧についての情報を考慮することによって、メモリ状態を決定する。それから、メモリ状態に対するバイナリ符号化を計算し、データビットをデータラッチ３９４に記憶する。コア部の別の実施形態では、ビットラインラッチ３８２は、検出モジュール３８０の出力をラッチするラッチ、及び、上記のようなビットラインラッチの両方の二役をこなす。
【００２９】
当然のことながら、いくつかの実装形態では複数のプロセッサ３９２を有することができる。一実施形態では、各プロセッサ３９２は出力ライン（図６には示されていない）を有し、各出力ラインは共にワイヤードＯＲ接続される。いくつかの実施形態では、出力ラインは、ワイヤードＯＲラインに接続する前に反転される。この構成はプログラミング処理がいつ完了するかについてのプログラム検証処理中の素早い決定を可能にする。なぜなら、ワイヤードＯＲを受け取る状態マシンは、プログラム中の全てのビットがいつ所望のレベルに到達するかを決定できるからである。例えば、各ビットがその所望のレベルに到達すると、そのビット用の論理０がワイヤードＯＲラインに送られる（又はデータ１を反転させる）。全てのビットがデータ０を出力する（又はデータ１を反転させる）と、状態マシンはプログラミング処理を終了することを認識する。各プロセッサが８つの検出モジュールと通信する実施形態では、状態マシンはワイヤードＯＲラインを８回読み出す必要があるか、あるいは、状態マシンがワイヤードＯＲラインを一度だけ読み出せばいいようにするために、関連するビットラインの結果を集積するために論理がプロセッサ３９２に追加される。
【００３０】
プログラム又は検証中に、プログラムされるデータは、データバス３２０から１セットのデータラッチ３９４内に記憶される。状態マシンの制御下のプログラム動作は、以下の詳細されるように、アドレスされるメモリセルの制御ゲートに印加される一連のプログラミング電圧パルスを有する。各プログラミングパルスに続いて検証が実行され、メモリセルが所望の状態にプログラムされたかどうかを特定する。プロセッサ３９２は、所望のメモリ状態に対する検証メモリ状態を監視する。その２つが一致する場合、プロセッサ３９２はビットラインラッチ３８２を設定し、プログラム禁止を指定する状態にビットラインを設定する。これにより、たとえプログラミングパルスがその制御ゲートに現れても、ビットラインに接続したセルがさらにプログラムされないようにする。他の実施形態では、プロセッサが最初にビットラインラッチ３８２をロードし、検出回路が検証処理中に禁止値にそれを設定する。
【００３１】
データラッチスタック３９４は、検出モジュールに対応するデータラッチのスタックを有する。一実施形態では、検出モジュール３８０毎に３つのデータラッチが存在する。いくつかの実装形態では（必須ではないが）、データラッチはシフトレジスタとして実装され、内部に記憶されたパラレルデータをデータバス３２０のシリアルデータに変換したり、その逆を行ったりする。好適な実施形態では、ｍ個のメモリセルの読み出し／書き込みブロックに対応する全てのデータラッチを共にリンクさせてブロックシフトレジスタを構成し、シリアル転送によってデータのブロックを入力または出力できるようにする。特に、ｒ個の読み出し／書き込みモジュールのバンクを調整し、そのセットのデータラッチが読み出し／書き込みブロックの全体のシフトレジスタの一部であっても、そのセットのデータラッチのそれぞれが順にデータバスの内外にデータをシフトできるようにする。
【００３２】
不揮発性記憶装置の多様な実施形態の構造及び／または動作についての追加情報は、米国特許第７，０２３，７３６号、「Non-Volatile Memory And Method with Improved Sensing」、米国特許第７，０４６，５６８号、「Improved Memory Sensing Circuit And Method For Low Voltage Operation」、米国特許公開第２００４／００５７２８７号、「Non-Volatile Memory And Method with Reduced Source Line Bias Errors」、米国特許公開第２００６／０１５８９４７号、「Reference Sense Amplifier For Non-Volatile Memory」、及び米国特許出願第１１／０９９，１３３号、「Compensating for Coupling During Read Operations of Non-Volatile Memory」に記載されている。これらの全ては、その全体を参照することにより本明細書に組み込まれる。
【００３３】
図７を参照し、メモリセルアレイ３０２の例示的な構造を説明する。一例として、１，０２４個のブロックに区切られるＮＡＮＤフラッシュＥＥＰＲＯＭを説明する。各ブロックに記憶されるデータは同時に消去できる。一実施形態では、ブロックは、同時に消去されるメモリセルの最小単位である。この例では、各ブロックにＢＬ０、ＢＬ１、．．．、ＢＬ８５１１に相当する８，５１２の列がある。一実施形態では、ブロックの全てのビットラインは、読み出し動作及びプログラム動作の間に同時に選択できる。１つの共通したワードラインに沿っているとともに任意のビットラインに接続されたメモリセルは、同時にプログラムできる。
【００３４】
別の実施形態では、ビットラインは偶数のビットラインと奇数のビットラインに分割される。奇数／偶数ビットラインアーキテクチャでは、共通ワードラインに沿っているとともに奇数ビットラインに接続されたメモリセルはあるときにプログラムされる。それに対し、共通ワードラインに沿っているとともに偶数ビットラインに接続されたメモリセルは別のときにプログラムされる。
【００３５】
図７の下側部分は、既に説明したように、直列に接続されているとともにＮＡＮＤストリングを形成する４個のメモリセルを示す。４個のセルはそれぞれのＮＡＮＤストリング内に含まれるとして示されているが、４個より多い、または少ない数（例えば、８、１６、３２、６４または別の数）を使用できる。ＮＡＮＤストリングの１つの端子は、ドレイン選択ゲートＳＧＤを介して対応するビットラインに接続され、別の端子はソース選択ゲートＳＧＳを介して共通ソースに接続される。
【００３６】
各メモリセルは、アナログまたはデジタル形式で表されたデータを記憶することができる。１ビットのデジタルデータを記憶する場合、メモリセルの可能な閾値電圧の範囲は、論理データ「１」と「０」が割り当てられる２つの範囲に分割される。ＮＡＮＤ型フラッシュメモリの一例では、電圧閾値は、メモリセルが消去された後には負になり、論理「１」と定義される。閾値電圧はプログラム動作後には正となり、論理「０」と定義される。閾値電圧が負であるときに、制御ゲートに０ボルトを印加することによって読み出しが試みられると、メモリセルがオンして論理１が記憶されていることを示す。閾値電圧が正のときに、制御ゲートに０ボルトを印加することにより読み出し動作が試みられると、メモリセルはオンにならずに論理０が記憶されていることを示す。１ビットのデジタルデータを記憶するメモリセルはバイナリメモリセルと呼ばれる。
【００３７】
メモリセルは、複数ビットのデジタルデータを記憶することもできる。このようなメモリセルは、マルチ状態又はマルチレベルセルと呼ばれる。マルチ状態メモリセルの閾値電圧ウィンドウは多くの状態に分割される。例えば、４つの状態が使用される場合、データ値「１１」、「１０」、「０１」、及び「００」に割り当てられる４つの閾値電圧範囲がある。ＮＡＮＤ型メモリの一例では、消去動作後の閾値電圧は負であり「１１」と定義される。正の閾値電圧は「１０」、「０１」及び「００」の状態に使用される。
【００３８】
通常、本願に開示される技術は、ファウラーノルドハイムトンネリング（Fowler-Nordheim tunneling）によってプログラム及び消去されるデバイスに用いることができる。本開示はまた、フローティングゲートに代えて、酸化シリコン、窒化シリコン及び酸化シリコン（「ＯＮＯ」）で形成された誘電体に電荷を蓄積する窒化物層の３層誘電体を用いたデバイスに適用可能である。「ＯＮＯ」からなる三層誘電体は、導電性制御ゲートと、メモリセルチャネル上の半導体基板の表面の間に挟持される。３層以上の誘電体が用いられることもある。その他の層としては、酸化アルミニウムも同様に用いられる。後者の例は、酸化シリコンと窒化シリコンと酸化アルミニウムの３層が用いられたＴＡＮＯＳ構造（Si−Oxide−SiN−Al２O３−TaN）である。本開示はまた、フローティングゲートに代えて、例えば、電荷記憶領域としてナノ結晶のような導電性材料の小さな島を用いたデバイスにも適用可能である。そのようなメモリデバイスは、ＮＡＮＤフラッシュ装置に基づくフローティングゲートと同様な方法でプログラム及び消去が可能である。
【００３９】
成功したプログラム処理の最後では、メモリセルの閾値電圧はプログラムしたメモリセルの閾値電圧の１つの分布内、又は、必要に応じて消去したメモリセルの閾値電圧分布内にあるべきである。図８は、各記憶素子が２ビットのデータを記憶している場合の記憶素子アレイの閾値電圧分布を示している。閾値電圧分布は、消去したメモリセル用の第１の閾値電圧分布Ｅ、プログラムしたメモリセルの３つの閾値電圧分布Ａ、Ｂ及びＣを含んでいる。一実施形態では、分布Ｅ内の閾値電圧は負であり、分布Ａ、Ｂ及びＣ内の閾値電圧は正である。
【００４０】
図８の区別可能な閾値電圧範囲の各々は、データビットのセットの所定の値に対応する。記憶素子にプログラムされるデータと記憶素子の閾値電圧レベルの間の具体的な関係は、記憶素子に対して採用されるデータ符号化方式に依存する。例えば、米国特許第６，２２２，７６２号、「Novel Multi-State Memory」、及び米国特許公開第２００４／０２５５０９０号、「Tracking Cells For A Memory System」はいずれも、全体として参照によって本明細書に組み込まれており、マルチ状態フラッシュ記憶素子の様々なデータ符号化方式を説明している。一実施形態では、データ値はグレイ符号割り当てを用いて閾値電圧範囲に割り当てられ、フローティングゲートの閾値電圧がその隣接する物理状態に誤ってシフトしても、１ビットだけが影響を受けるようにする。一例では、「１１」を閾値電圧範囲Ｅ、「１０」を閾値電圧範囲Ａ、「００」を閾値電圧範囲Ｂ、「０１」を閾値電圧範囲Ｃに割り当てる。しかし、他の実施形態ではグレイ符号は用いられない。図８は４つの状態を示しているが、本発明は４つの状態より多い、又は少ない状態を含む他のマルチ状態構造及び形態と共に用いることもできる。
【００４１】
図８はさらに、メモリセルからデータを読み出すための３つの読み出し基準電圧Vra、Vrb及びVrcと、６つの検証電圧Vva、Vva-L、Vvb、Vvb-L、Vvc、Vvc-Lを示している。読み出し動作では、記憶素子がどの状態にいるかを特定するために、記憶素子の閾値電圧が測定され、関連する参照電圧と比較される。記憶素子が状態Ａにプログラムされる標準的なプログラム動作では、閾値電圧が測定され、検証電圧Vvaと比較される。閾値電圧が検証電圧Vvaよりも低い限り、その素子に対するプログラミングが続行される。雑／ファインプログラミング技術を用いると、より低い検証電圧Vva-Lもまた用いられ、閾値電圧が２つの検証電圧間にある場合、プログラミングが減速される（部分的に禁止される）。同様に、記憶素子が状態Ｂにプログラムされる標準的なプログラム動作では、閾値電圧が測定され、検証電圧Vvbと比較される。閾値電圧が検証電圧Vvbよりも低い限り、その素子に対するプログラミングが続行される。雑／ファインプログラミング技術を用いると、より低い検証電圧Vvb-Lもまた用いられ、閾値電圧が２つの検証電圧間にある場合、プログラミングが減速される（部分的に禁止される）。また同様に、記憶素子が状態Ｃにプログラムされる標準的なプログラム動作では、閾値電圧が測定され、検証電圧Vvcと比較される。閾値電圧が検証電圧Vvcよりも低い限り、その素子に対するプログラミングが続行される。雑／ファインプログラミング技術を用いると、より低い検証電圧Vvc-Lもまた用いられ、閾値電圧が２つの検証電圧間にある場合、プログラミングが減速される（部分的に禁止される）。
【００４２】
全シーケンスプログラミングとして知られる一実施形態では、メモリセルは、消去状態Ｅから、プログラム状態Ａ、ＢまたはＣのどれかに直接的にプログラムできる。例えば、プログラムされる記憶素子の集団が最初に消去され、集団内の全ての記憶素子が消去状態Ｅになる。いくつかのメモリセルは状態Ｅから状態Ａにプログラムされるが、他のメモリセルは状態Ｅから状態Ｂに、及び／または、状態Ｅから状態Ｃにプログラムされる。
【００４３】
図９は、２つの異なるページ（下側ページと上側ページ）に対してデータを記憶するマルチ状態記憶素子をプログラムする二経路技術の一例を示している。状態Ｅ（１１）、状態Ａ（１０）、状態Ｂ（００）及び状態Ｃ（０１）の４つの状態が示されている。状態Ｅの場合、両方のページが「１」を記憶する。状態Ａの場合、下側ページが「０」を記憶し、上側ページが「１」を記憶する。状態Ｂの場合、両方のページが「０」を記憶する。状態Ｃの場合、下側ページが「１」を記憶し、上側ページが「０」を記憶する。なお、各状態に対して特定のビットパターンが割り当てられているが、異なるビットパターンを割り当てることも可能であることに注意する。
【００４４】
第１プログラミング経路では、記憶素子の閾値電圧レベルは下側の論理ページにプログラムされるビットに従って設定される。そのビットが論理「１」であれば、以前に消去された結果として適切な状態にあるので閾値電圧は変更されない。しかし、プログラムされるビットが論理「０」であれば、矢印５００で示したように、記憶素子の閾値レベルは状態Ａになるように増大される。
【００４５】
第２プログラミング経路では、記憶素子の閾値電圧レベルは上側論理ページ内にプログラムされるビットに従って設定される。上側論理ページビットが論理「１」を記憶する場合、記憶素子は下側ページビットのプログラミングに依存する状態Ｅ又はＡの一方であり、どちらも上側ページビットは「１」を保持するのでプログラミングは生じない。上側ページビットが論理「０」となる場合、閾値電圧はシフトされる。第１経路によって記憶素子が消去状態Ｅに留まっていれば第２段階で記憶素子をプログラムし、矢印５２０で示したように閾値電圧が状態Ｃ内になるように増大させる。第１プログラミング経路の結果として記憶素子が状態Ａ内にプログラムされていれば、記憶素子はさらに第２経路でプログラムされ、矢印５１０で示したように閾値電圧が状態Ｂ内になるように増大させる。第２経路の結果は、下側ページ用のデータを変更することなく、上側ページの論理「０」を記憶するように指定した状態に記憶素子をプログラムすることである。
【００４６】
一実施形態では、ワードラインを充填するのに十分なデータが書き込まれた場合、システムは全シーケンス書き込みを実行するように設定される。十分ではないデータが書き込まれた場合、プログラミング処理は受け取ったデータを用いて下側ページプログラミングを実行できる。次のデータを受け取ったとき、システムは上側ページをプログラムする。さらに別の実施形態では、システムは下側ページをプログラムするモードで書き込みを開始し、ワードラインのメモリセルの全体（又は大部分）を充填するために次の十分なデータを受け取った場合、全シーケンスプログラミングモードに変換する。このような実施形態のさらなる詳細は、米国特許公開第２００６／０１２６３９０号、「Pipelined Programming of Non-Volatile Memories Using Early Data」に開示されている。その全体は参照することによって本明細書に組み込まれる。
【００４７】
図１０Ａ−Ｃは、前のページの隣接メモリ素子に書き込んだ後で、特定のページに対してその特定のメモリ素子を書き込むことによって、その特定のメモリ素子に対するフローティングゲート間結合影響を低減する不揮発性メモリをプログラムする別の方法を開示している。実装形態の一例では、不揮発性メモリ素子はそれぞれ、４つのデータ状態を用いて２ビットのデータを記憶する。例えば、状態Ｅが消去状態であり、状態Ａ、Ｂ及びＣがプログラム状態であると仮定する。状態Ｅはデータ１１を記憶している。状態Ａはデータ０１を記憶している。状態Ｂはデータ１０を記憶している。状態Ｃはデータ００を記憶している。両方のビットは隣接する状態Ａ及びＢの間で変化するので、これは非グレイ符号化の一例である。データの物理的データ状態への他の符号化を用いることもできる。各メモリ素子は、２ページ分のデータを記憶する。参照目的のために、これらのページのデータは上側ページ及び下側ページと呼ばれるが、他のラベルを与えることもできる。状態Ａでは、上側ページはビット０を記憶し、下側ページはビット１を記憶している。状態Ｂでは、上側ページはビット１を記憶し、下側ページはビット０を記憶している。状態Ｃでは、両方のページがビットデータ０を記憶している。ワード線ＷＬｎにおけるメモリセルの下側ページデータは図１０Ａに示される第１ステップでプログラムされ、セルの上側ページは図１０Ｃに示される第２ステップでプログラムされる。下側ページがデータ１のままである場合、メモリ素子の閾値電圧は第１ステップを通して状態Ｅに留まる。データが０にプログラムされる場合、メモリセルの閾値電圧Ｖｔは状態Ｂ’まで上昇する。状態Ｂ’は、検証レベルＶｖｂ’を有する暫定的状態Ｂであり、その検証レベルＶｖｂ’は検証レベルＶｖｂより低い。
【００４８】
一実施形態では、状態Ｅから状態Ｂ’にメモリ素子の下側ページデータをプログラムした後、隣接ワード線ＷＬｎ＋１の隣接メモリ素子がその下側ページに対してプログラムされる。例えば、ワード線ＷＬ２のメモリセルの下側ページは、ワード線ＷＬ１のメモリセルの下側ページの後にプログラムされてもよい。対象とするメモリセルのプログラミングの後に隣接するメモリセルの閾値電圧が状態Ｅから状態Ｂ’に上昇した場合、フローティングゲート間結合は対象とするメモリセルの見かけの閾値電圧を上昇させることがある。このワード線ＷＬｎにおけるメモリセルの蓄積された結合効果は、図１０Ｂに示されるように、セルの閾値電圧の見かけの閾値電圧を拡大させる。閾値電圧分布のこの見かけの拡大は、上側ページをプログラムする際に修正される。
【００４９】
図１０Ｃは、メモリ素子ＷＬｎの上側ページをプログラムする処理を示している。メモリ素子が消去状態Ｅであって上側ページが１に留まる場合、メモリ素子は状態Ｅに留まる。メモリ素子が状態Ｅであり、その上側ページデータが０にプログラムされる場合、メモリ素子の閾値電圧は上昇し、メモリ素子は状態Ａになる。メモリ素子が中間の閾値電圧分布５５０を有する状態Ｂ’であって上側ページデータが１に留まる場合、メモリ素子は最終的な状態Ｂにプログラムされる。メモリ素子が中間の閾値電圧分布５５０を有する状態Ｂ’であって上側ページデータがデータ０になる場合、メモリ素子の閾値電圧は上昇し、メモリ素子は状態Ｃになる。隣接メモリ素子の上側ページプログラミングだけが所定のメモリセルの見かけの閾値電圧に影響を与えるので、図１０Ａ−Ｃで示した処理はフローティングゲート間結合影響を低減する。別の状態符号化の一例は、上側ページデータが１であるとき中間状態Ｂ’から状態Ｃに移動させ、上側ページデータが０であるとき状態Ｂに移動させる。図１０Ａ−Ｃは４つのデータ状態と２つのページデータに対する一例を提供するが、教示される概念は４つより多い、又は少ない状態、及び２つのページとは異なるページを備えた他の実装形態に適用することもできる。様々なプログラミングスキームとフローティングゲート間結合の詳細は、米国特許出願第１１／０９９，１３３、「Compensating For Coupling During Read Operations Of Non-Volatile Memory」に見受けられる。
【００５０】
図１１から図１３は、図８から図１０のプログラミングプロセスを実現するために使用できる３つの異なるプログラミング技法の間の閾値電圧及びビットライン電圧を示す。図１１Ａ及び図１１Ｂは標準つまり従来のプログラミングプロセスを示し、図１２Ａ及び図１２Ｂは第1の雑／ファインプログラミングプロセスを示し、図１３Ａ及び図１３Ｂは改良された雑／ファインプログラミングプロセスを示す。雑／ファイン技法は、マルチレベルＮＡＮＤ記憶素子をプログラミングするために使用されるが、バイナリデバイスでも使用できる。
【００５１】
図１１Ａは、標準プログラミングプロセスにおける閾値電圧と時間の関係を示す。前述したように、一連のプログラミングパルスが選択した制御ゲートに印加される。プログラミングの間の特定の時間間隔または検証ポイント、ｔ１、ｔ２、ｔ３等で、記憶素子の閾値電圧Ｖｔを測定する検証動作が実施される。選択した記憶素子の測定した閾値電圧Ｖｔが所定の検証レベルＶｖｅｒ１より低い場合には、プログラミングはその記憶素子について続行し、ビットライン電圧Ｖｂｌは図１１Ｂに示されるように通常０Ｖで低く留まる。時間ｔ３で、記憶素子はＶｖｅｒ１を超える閾値電圧レベルに達し、記憶素子の追加のプログラミングを完全に禁止するためにビットライン電圧Ｖｂｌを禁止電圧Ｖｉｎｈｉｂｉｔに上げる。禁止電圧Ｖｉｎｈｉｂｉｔは、通常は電源電圧Ｖｄｄのように相対的に高い電圧である。この標準プログラミング手法は、このようにして単一の検証レベルを使用し、記憶素子のプログラミングはその閾値電圧Ｖｔが検証レベルＶｖｅｒ１に到達するまで続行し、到達後、ビットライン間電圧を高い禁止電圧Ｖｉｎｈｉｂｉｔに上げることによって追加のプログラミングが禁止される。
【００５２】
図１２Ａは、雑／ファインプログラミングプロセスにおける閾値電圧と時間の関係を示す。この技法では２つの検証レベルが使用され、記憶素子は、上側検証レベルＶｖｅｒ１と下側検証レベルＶｖｅｒ２の中間である閾値電圧レベルに到達する時間ｔ３で部分的にプログラミングを禁止される。従って、ビットライン電圧を高い電圧レベルに上げるのではなく、むしろビットラインが中間電圧レベルＶ１、通常は約０．５から１．０Ｖに上げられ、図１２Ｂに示されるように記憶素子のプログラミングを部分的に禁止する。プログラミングの間のチャネル電圧もＶ１とほぼ同じとなる。時間ｔ４では、閾値電圧Ｖｔは依然として上側検証レベルと下側検証レベルの間にあるため、ビットライン電圧Ｖｂｌは中間電圧Ｖ１のままである。しかしながら、時間ｔ５では、閾値電圧Ｖｔは上側検証レベルＶｖｅｒ１を超えた電圧まで増加し、その時点でビットライン電圧はプログラミングを完全に禁止するためにＶｉｎｈｉｂｉｔに上げられる。いったん閾値電圧Ｖｔが所望のプログラミング状態の目標閾値電圧値に近づくと、記憶素子の閾値電圧シフトが抑制されるため、雑／ファインプログラミングプロセスを使用することにより、プログラミングされたＶｔ分布は標準プログラミングプロセスを用いる場合より狭くなる。
【００５３】
図１３Ａは、別の部分的な禁止電圧Ｖ２がビットライン上で使用される改良された雑／ファインプログラミングプロセスにおける閾値電圧と時間の関係を示す。この例では、図１２Ａのように、記憶素子は、Ｖｖｅｒ１とＶｖｅｒ２の中間のＶｔ状態に到達する時間ｔ３で部分的にプログラミングを禁止される。そのときビットライン電圧は中間電圧Ｖ２に上げられる。Ｖ２の値は、時間ｔ４で、１つの追加のプログラミングパルスが印加された後に、記憶素子がＶｖｅｒ１を超えるＶｔに到達するように選ばれる。記憶素子がＶｖｅｒ１を超えるＶｔに到達すると、Ｖｂ１はプログラミングを完全に禁止するためにＶ２からＶｉｎｈｉｂｉｔに上げられる。改良された雑／ファインプログラミングについての詳細は、米国特許公開第２００５／０１５７５５２号、「Programming Non-Volatile Memory」に記載されている。
【００５４】
改良された雑／ファインプログラミング技法を使用して最良の性能を得るために、好ましくは、次のプログラミングパルスの間の記憶素子の閾値電圧Ｖｔのシフトが△Ｖｐｇｍ／２に等しくなるように、中間禁止電圧Ｖ２を選ぶ必要がある。検証限度Ｖｖｅｒ１とＶｖｅｒ２が適切に選ばれる場合には、記憶素子のＶｔは、ただ１個の追加プログラミングパルスの後にＶｖｅｒ１（目標値）より高くならなくてはならない。従って、その１つの追加パルスの後の記憶素子の閾値電圧Ｖｔが最終的な目標レベルＶｖｅｒ１よりも高い、あるいは低いかに関係なく、ただ１つの追加プログラミングパルスが提供される。改良された雑／ファインプログラミングプロセスの利点は、特に最高位のプログラミングＶｔ状態に使用される場合に、従来の雑／ファインプログラミングプロセスを用いる場合よりも必要とされるプログラミングパルスが少なくなり、結果的にプログラミング時間が短縮され、プログラム妨害が削減されるという点である。
【００５５】
一実施形態において、最高位状態（複数の場合がある）（例えば、状態Ｃ）へプログラミングするために標準技法（雑／ファインプログラミングではない）を使用しながら、下位状態（例えば状態Ａ及びＢ）へプログラミングするために雑／ファインプログラミング技法が使用される。しかしながら、下位状態のプログラミングが終了しても、最高位状態（例えば状態Ｃ）へプログラミングするために多くのプログラミングパルスが必要とされる。プログラミング速度を改善するために、最下位状態（例えば状態Ａ及びＢ）がプログラミングされた瞬間から、より大きなステップサイズ及びより長いプログラミングパルスを使用できる。同時に、最高位状態のためのプログラミング技法は、前述した、あるいは既知の雑／ファインプログラミング技法の１つに変更できる。したがって、好ましくは、プログラミング方法は、下位状態がプログラミングを終了したときに、より高速の技法に切り替わる。これは、最高位状態の閾値電圧分布を不当に広げるであろう。しかしながら、雑／ファインプログラミングへの切り替えは、電圧分布の最高位状態のこのような広がりを制限する。また、全てのメモリセルがＡ状態またはＢ状態に到達するまで待つことが必要ではないケースもあることに注意しなければならない。実際に、いくつかのメモリセルはＡ状態またはＢ状態に無事にプログラミングできない可能性がある。したがって、より高速なプログラミング方法への切り替えは、メモリセルの全てがＡ状態またはＢ状態に到達したとき、あるいは所定の最大数の異常なメモリセルを除く全てのメモリセルがＡ状態またはＢ状態に到達したときに開始する必要がある。エラー訂正の使用は、所定の最大数より多くないと想定して、適切にプログラミングできなかった異常なメモリセルを効果的に訂正できる。したがって、本開示においては、Ｂ状態は、全てのメモリセルまたは所定の最大数の異常なメモリセルを除く全てのメモリセルがＢ状態に到達したときにプログラミングを終了または完了する。
【００５６】
図１４は、すぐ直前に説明したように、マルチレベル不揮発性記憶素子の最高位レベル（複数の場合がある）のより高速なプログラミングを達成するために使用されるプログラミングパルスのシーケンスを示す。これらの図は、他の方法を使用できるであろうが、４状態デバイスの完全シーケンスプログラミングのためのプログラミングパルスを示す。「Ｂ−レベルプログラミング」と表示されるシーケンスの部分は、メモリセルが状態Ｂにプログラミングされているときに関する。これは状態Ａ及びＣ（少なくともそのときの一部）にもプログラミングされてよい。「Ｃ−レベルプログラミング」と表示されるシーケンスの部分は、メモリセルが状態Ｃにプログラミングされているときに関する。「Ｂ−レベルプログラミング」は、時間ｔ１２の後に終了する。ｔ１２の時点では、状態ＡまたはＢにプログラミングされることになる全ての記憶素子が最終的な目標閾値電圧レベルに到達し、追加のプログラミングがこの時点で禁止される。この時点での追加のプログラミングは、状態Ｃ、つまり最高位状態にプログラミングされる記憶素子に対してだけである。
【００５７】
初期プログラムパルスＶｐｇｍは、選択した記憶素子に印加される。その後のパルスはそれぞれ、パルスステップ△Ｖｐｇｍ１分増分される。各プログラミングパルスの間では、１つまたは複数の検証動作が実施され、それにより例えば図１６に図示されるような一連の検証パルスが記憶素子に印加され、閾値電圧Ｖｔが、対象のセルのプログラミングを続行するのか、あるいは禁止するのかを決定するために適切な検証レベルと比較される。
【００５８】
状態Ｂがプログラミングを完了した（例えば、状態ＡまたはＢにプログラミングされることになる記憶素子の全てあるいはほぼ全てが最終的な目標閾値電圧レベルに達し、この時点で追加のプログラミングから禁止される）と判断されると、Ｃ状態へのより高速なプログラミングを可能にするパルスシーケンスが適用される。図１４を参照すると、次のパルスのステップサイズは△Ｖｐｇｍ１（通常０．４Ｖ）から△Ｖｐｇｍ２（通常０．８Ｖ）に増加する。好ましくは、△Ｖｐｇｍ２は△Ｖｐｇｍ１の約２倍である。加えて、ステップサイズが調整されるのと同時に、プログラミングパルスの長さが増加する。これらの値は応用例に基づいて変化するが、例えば、従来のプログラミング方法の典型的なパルス長は１０μｓｅｃであり、増加したパルス長は２０μｓｅｃとなるだろう。さらに、図１６に示されるように、Ｃ状態プログラミングにおいて従来のプログラミング方法（単一の検証レベルを用いた標準書き込み方法）を使用する代わりに、図１７に示されるように、２つの検証レベルを用いる雑／ファインプログラミング方法を使用できる。したがって、Ｃ状態にプログラミングされている素子について、閾値電圧Ｖｔは検証レベルＶｖｃ及びＶｖｃ−Ｌ（Ｖｖｃ＞Ｖｖｃ−Ｌである）と比較される。Ｖｔ＜Ｖｖｃ−Ｌである場合は、プログラミングは続行する。Ｖｖｃ＞Ｖｔ＞Ｖｖｃ−Ｌの場合は、プログラミングを減速するために中間電圧がビットラインに印加される。Ｖｔ＞Ｖｖｃであるときには、追加のプログラミングを禁止するために高い電圧がビットラインに印加される。いくつかの実施形態では、パルス長及びパルス幅が増加したのと同時に雑／ファインプログラミング方法に切り替える必要がないことに注意する。Ｃ状態が幅広いＶｔ分布で構わない場合があるので、単一の検証レベルを使用し続けてもよいこともある。このようにして、検証動作の数を削減し、それによってより高速なプログラミングを生じさせることができる。
【００５９】
図１５は、Ｂ状態のプログラミングを終了した後に、次のパルスがステップサイズ△Ｖｐｇｍ３（通常１．２Ｖ）分増加したが、その後にステップサイズ△Ｖｐｇｍ２（通常０．８Ｖ）のパルスが続くという以外、図１４に類似している。好ましくは、△Ｖｐｇｍ３は△Ｖｐｇｍ２より大きい。Ｂ状態のプログラミング中に、最速セルのいくつかがすでにＣ状態に到達することに注意する。したがって、それらのＣ状態セルは小さなステップサイズ△Ｖｐｇｍ１でプログラミングされ、これらのセルには雑／ファイン方法は必要とされない。しかしながら、Ｂ状態セルの全てまたはほぼ全てがプログラミングを終了すると、ステップサイズと検証方法の両方が変更される。ステップサイズは増加し、図１６のように単一の検証レベルを用いる通常の書き込み方法を使用する代わりに、プログラミングは図１７に示されるように２つの検証レベルを使用する雑／ファイン方法に切り替わる。プログラミングパルスの数だけではなくプログラム妨害も制限するために、改良されたクイックパス書き込み方法を使用し、Ｃ状態を書き込むことが好ましい。しかしながら、前述したように、いくつかの実施形態では、Ｃ状態が幅広いＶｔ分布で構わない場合であれば、検証方法を変更する必要がない場合がある。
【００６０】
時間間隔ｔ１−ｔ１１の間、図１６に示される検証パルスのセットが印加される。この例では、検証パルスのセットは５個のパルスを含む。第１のパルス５９１は、Ａ状態のための下側検証レベルをチェックするために大きさＶｖａ−Ｌを有する。第２のパルス５９２は、Ａ状態のための上側検証レベルをチェックするために大きさＶｖａを有する。第３のパルス５９３は、Ｂ状態のための下側検証レベルをチェックするために大きさＶｖｂ−Ｌを有する。第４のパルス５９４は、Ｂ状態のための上側検証レベルをチェックするために大きさＶｖｂを有する。第５のパルス５９５は、Ｃ状態のための単一検証レベルをチェックするために大きさＶｖｃを有する。したがって、最高位状態Ｃをプログラミングするためには単一検証レベルを用いる標準技法が使用される一方、下位状態がプログラミングされている間、２つの検証レベルを用いる雑／ファイン技法が下位状態Ａ及びＢをプログラミングするために使用される。いくつかのケースでは、各プログラミングパルスの後に５つ全ての検証動作が実行されるわけではない。例えば、ｔ１での第１のプログラミングパルスの後にあらゆるセルがＣ状態に到達することは起こりそうにないため、Ｃ検証動作は所定数のパルスの間延期され、所定数のプログラミングパルスが終了後に開始されてよい。検証動作の必要とされる総数を削減するために、多様な技法を使用できる。
【００６１】
間隔ｔ１２では、システムが下位状態Ａ及びＢのプログラミングを完了したことを確認し、検証パルスの別のセットが、図１７に図示されるように状態Ｃをプログラミングするための雑／ファイン検証技法を実現するために印加される。Ａ状態及びＢ状態がプログラミングを完了したため、検証パルスが状態Ｃのみをチェックする必要があるので、検証パルスの改良されたセットは、Ｃ状態のための下側検証レベルをチェックするために大きさＶｖｃ−Ｌの第１のパルス５９６と、Ｃ状態の上側検証レベルをチェックするために大きさＶｖｃの第２のパルス５９７とを含む。前述したように、いくつかの実施形態では、Ｃ状態の下側検証レベルをチェックするための第１のパルス５９６を省略してもよいので、パルス５９７を用いてＣ状態だけを検証することに注意する。これにより必要とされる検証動作の総数が削減され、ひいてはより広いＣ状態のＶｔ分布を犠牲にして総プログラミング時間が短縮される。
【００６２】
各プログラミングパルスの後に複数の検証動作を実行すると、プログラミングプロセスが減速する。検証する時間負担を削減する１つの手段は、より効率的な検証プロセスを使用することである。例えば、その全体を参照することにより本明細書に組み込まれる「Smart Verify for Multi-State Memories」と題される米国特許第７，０７３，１０３号では、いわゆる「スマート検証」プロセスが開示されている。スマート検証プロセスを使用するプログラム／検証シーケンスの間のマルチ状態メモリのための書き込みシーケンスの例示的な実施形態においては、プロセスの始まりに、選択されたメモリセルがプログラミングされているマルチ状態範囲の最下位状態（例えば状態Ａ）だけが検証段階の間にチェックされる。メモリセルの１つまたは複数によっていったん第１の記憶状態（例えば状態Ａ）に到達すると、マルチ状態のシーケンスでの次の状態（例えば状態Ｂ）が検証プロセスに追加される。この次の状態は、最速セルがシーケンスのこの先行する状態に到達するとすぐに、あるいは、メモリが一般的にいくつかのプログラミングステップを状態によって移動させるように設計されているため、いくつかのサイクルの遅延後のどちらかに追加できる。遅延の量は、固定することができる、あるいは遅延量を装置特性に従って設定することができるパラメータに基づいた応用例を使用することができるかのどちらかである。検証段階でチェックされているセットに状態を追加することは、最高値状態が追加されるまで前記に従って続行する。同様に、これらのレベル向けのメモリセルの全てがそれらの目標値に対して無事に検証し、追加プログラミングから締め出されるので、下位状態は検証セットから削除できる。
【００６３】
図１４及び図１５では、Ｂ状態へのプログラミング中、最速セルのいくつかはすでにＣ状態に達し、それらのＣ状態のセルはより小さなステップサイズ△Ｖｐｇｍ１でプログラミングされる。したがって、これらのセルには雑／ファイン方法は必要とされない。しかしながら、これらの新しい技法のカギは、全てのＢ状態セルがプログラミングを終了したときに、パルスステップサイズ及びパルス長が増加し、好ましくはプログラミングが、従来の技術の方法を用いるのとほぼ同じＣ状態Ｖｔ分布を維持するために、２つの検証レベルを使用する雑／ファイン方法に切り替わることである。前述したように、いくつかの実施形態では、幅広いＣ状態Ｖｔ分布がいくつかのケースでは許容できるので、雑／ファイン方法に切り替えることは必要ない場合がある。
【００６４】
図１８は、例えば、図１４に開示されているように不揮発性メモリをプログラミングするための方法の一実施形態を説明するフローチャートである。いくつかの応用例においては、メモリセルはプログラミングの前に（ブロックまたは他の単位で）消去される。通常、メモリセルは、十分な時間、ｐ−ウェルを消去電圧（例えば１８ボルト）に上げ、ソースライン及びビットラインが浮遊している間に選択したブロックのワードラインを接地することによって消去される。容量結合によって未選択のワードライン、ビットライン、選択ライン、及びｃソースも消去電圧のかなりの程度に上げられる。したがって、強力な電場が選択したメモリセルのトンネル酸化物層に適用され、選択したメモリセルのデータは、フローティングゲートの電子が通常はファウラーノルドハイムトンネリング機構によって基板側に放出されるにつれ消去される。電子がフローティングゲートからｐ−ウェル領域に移動するにつれ、選択したセルの閾値電圧が引き下げられる。消去はメモリアレイ全体、別々のブロック、またはセルの別の単位で実行できる。
【００６５】
図１８のステップ６０１では、「データロード」命令が制御装置によって発行され、制御回路３１０によって受信される。ステップ６０３では、ページアドレスを指定するアドレスデータが制御装置またはホストからデコーダ３１４に入力される。ステップ６０５では、アドレス指定されたページの１ページのプログラムデータがプログラミングのためにデータバッファに入力される。データはラッチの適切なセットでラッチされる。ステップ６０７では、制御装置によって「プログラム」命令が状態マシン３１２に発行される。
【００６６】
「プログラム」命令によってトリガされ、ステップ６０５でラッチされたデータは、適切な選択ワードラインに印加されるステップパルスを使用して状態マシン３１２によって制御される選択メモリセルにプログラミングされる。ステップ６０９では、プログラミング方法が設定される。例えば、雑／ファインプログラミング方法がメモリセルを状態Ａ及び状態Ｂにプログラミングするように設定され、標準方法（雑／ファインプログラミングではない）がメモリセルを状態Ｃにプログラミングするように設定される。ステップ６１１では、プロセス変数が初期化される。従って、プログラム電圧Ｖｐｇｍは開始パルスの大きさ（例えば１２Ｖまたは他の値）に初期化され、パルスＰＷの長さは初期値（例えば１０μｓｅｃ）に設定され、パルスステップサイズ△Ｖｐｇｍは△Ｖｐｇｍ１（例えば０．４Ｖ）に設定され、状態マシン３１２によって維持されるプログラムカウンタＰＣは０に初期化される。
【００６７】
ステップ６１３では、プログラミングパルスＶｐｇｍは、図１４に従って選択したワードラインに印加される。メモリセルがプログラミングされる必要がある場合には、対応するビットラインが接地される。他方、メモリセルが現在のデータ状態に留まる必要がある場合は、対応するビットラインがプログラミングを抑制するためにＶｄｄに接続される。
【００６８】
ステップ６１５では、選択したメモリセルが、完全にプログラミングされたかどうかを判断するために検証される。選択したセルの目標閾値電圧が適切なレベルに達したことが検出されると、メモリセルは追加のプログラミングから締め出される。閾値電圧が適切なレベルに到達していないことが検出されると、メモリセルは追加のプログラミングから締め出されない。ステップ６１７では、システムは、下位状態がプログラミングされたかどうかを確かめるためにチェックする。一実施形態において、下位状態は、最高位状態を除きすべてのプログラミングされた状態である。図８の例では、下位状態は状態Ａ及び状態Ｂである。したがって、システムは、状態Ａ及び状態Ｂにプログラミングされることになる全てのメモリセルまたはほぼ全てのメモリセルがそのプログラミングを完了したかどうかを判断する。他の実施形態では、下位状態のセットが別の状態のセットを含むことができる。下位状態にプログラミングされることになる全てのメモリセルまたはほぼ全てのメモリセルがそのプログラミングを完了していないと判断される場合には、ステップ６１８において、プログラムカウンタＰＣがＰＣＭＡＸと比較される。プログラムカウンタＰＣがＰＣＭＡＸ未満である場合には、ステップ６１９で、プログラミングパルスＶｐｇｍの大きさがステップサイズ分増加され、プログラムカウンタＰＣが一分増加される。ステップ６１９の後、プロセスはステップ６１３にループバックし、別のプログラムパルスが選択ワードラインに印加される。プログラムカウンタＰＣがＰＣＭＡＸ未満ではない場合には、プログラミングプロセスは失敗している。
【００６９】
下位状態にプログラミングされることになる全てのメモリセルまたはほぼ全てのメモリセルがそのプログラミングを完了したと判断されると、ステップ６２１では、１つまたは複数の上位状態（例えば図１８の状態Ｃ）にプログラミングされているそれらのメモリセルに対して雑／ファインプログラミング方法が使用されるように、プログラミング方法が変更される。前述したように、このステップはオプションであり、全ての実施形態において必要とされない可能性がある。ステップ６２３では、プロセス変数が変更され、パルスの幅ＰＷが増加し（例えば、２０μｓｅｃに増加し）、ステップサイズ△Ｖｐｇｍが（例えば０．４ｖの代わりに０．８ｖ等の△Ｖｐｇｍ２に）増加する。ステップ６２５では、メモリセルの全てまたはほぼ全てがプログラミングを完了したと検証されたかどうかが判断される。検証された場合、プログラミングプロセスは無事に完了している。検証されなかった場合、プログラミングプロセスは、プログラムカウンタＰＣがプログラム制限値ＰＣＭＡＸと比較されるステップ６２７を続行する。プログラム制限値の一例は２０である。ただし、他の数も使用できる。プログラムカウンタＰＣが２０未満ではない場合、プログラムプロセスは失敗している。多くの実施形態では、最大数のループに到達後、システムは、所定数未満のセルがプログラムを終了していないかどうかを確かめるためにチェックする。所定数未満のセルがプログラミングを終了していない場合には、プログラミングプロセスは依然として合格と見なされる。プログラムカウンタＰＣがＰＣＭＡＸ未満である場合には、ステップ６２９で、プロセス変数が更新される。プログラム電圧Ｖｐｇｍはステップサイズ△Ｖｐｇｍ２分増加する。プログラムカウンタＰＣが増分される。ステップ６３１では、次のプログラミングパルスが印加され、ステップ６３３では、メモリセルがプログラミングを完了したかどうかの判断が検証される。ステップ６３３の後、プロセスはステップ６２５にループバックする。ステップ６２９では、プログラムカウンタＰＣが１分増加される。しかしながら、プログラム電圧Ｖｐｇｍはより大きなステップサイズ分増加するため、いくつかの実施形態では、Ｖｐｇｍステップサイズでの変化を反映するために２（またはさらに大きい数）でプログラムカウンタＰＣを増加することが好ましい場合がある。
【００７０】
図１９は、図１５に開示されているように不揮発性メモリをプログラミングするための方法の実施形態を説明するフローチャートである。ステップ６０１から６１９は図１８にと同じである。ステップ６１７で、下位状態にプログラミングされることになる全てのメモリセルまたはほぼ全てのメモリセルがそのプログラミングを完了したと判断される場合は、ステップ６４５で、メモリセルの全てまたはほぼ全てがプログラミングを完了したと検証されたかどうかが判断される。検証された場合、プログラミングプロセスは無事に完了している。検証されなかった場合、ステップ６４７を続行する。ステップ６４７では、プログラミングプロセスが、１つまたは複数の高位状態（例えば、図８の状態Ｃ）にプログラミングされているそれらのメモリセルに対して雑／ファインプログラミング方法が使用されるように、プログラミング方法を変更する。前述したように、これはオプションのステップであり、全ての実施形態で必要とされない可能性がある。ステップ６４９では、プロセス変数が変更され、パルスの幅ＰＷが増加し（例えば２０μｓｅｃに増加し）、ステップサイズ△Ｖｐｇｍが（例えば、０．４ｖの代わりに１．２ｖ等の△Ｖｐｇｍ３に）増加する。ステップ６５１では、プロセス変数は更新される。プログラム電圧Ｖｐｇｍがステップサイズ△Ｖｐｇｍ２分増加する。プログラムカウンタＰＣが増分される。ステップ６５１では、プログラムカウンタＰＣが１、増加することに注意する。しかしながら、プログラム電圧Ｖｐｇｍはより大きなステップサイズ分増加するので、いくつかの実施形態では、Ｖｐｇｍステップサイズの変更を反映するために２（またはさらに大きな数）でＰＣを増加することが好ましい場合がある。ステップ６５３では、（新しい大きさの）次のプログラム電圧パルスが選択ワードラインに印加される。ステップ６５５では、選択されたメモリセルは、それらが完全にプログラミングされたかどうかを判断するために検証される。ステップ６５７では、メモリセルの全てまたはほぼ全てがプログラミングを完了したと検証されたかどうかが判断される。検証された場合、プログラミングプロセスは無事に完了している。検証されなかった場合、プログラミングプロセスは、プログラムカウンタＰＣがプログラム制限値ＰＣＭＡＸと比較されるステップ６５９を続行する。プログラムカウンタＰＣがＰＣＭＡＸ未満ではない場合、プログラムプロセスは失敗している。プログラムカウンタＰＣがＰＣＭＡＸ未満である場合は、ステップ６６１でプロセス変数が更新される。プログラム電圧Ｖｐｇｍは、ステップサイズ△Ｖｐｇｍ２分増加する。プログラムカウンタＰＣが増分する。ステップ６６１では、プログラムカウンタＰＣが１分増加することに注意する。しかしながら、プログラム電圧Ｖｐｇｍがさらに大きなステップサイズ分増加するため、いくつかの実施形態では、Ｖｐｇｍステップサイズの変更を反映するために２（またはさらに大きい数）でＰＣを増加することが好ましい場合がある。ステップ６６１の後、プロセスはステップ６５３にループバックし、次のプログラムパルスが印加される。
【００７１】
本発明の前記の詳細な説明は図解及び説明のために提示された。網羅的となる、あるいは本発明を開示されている正確な形式に制限することは意図されていない。前記教示を鑑みて多くの変型及び変更が可能である。説明された実施形態は、本発明及びその実際的な応用を最もよく説明し、それにより当業者が多様な実施形態において、及び意図されている特定の使用に適するように多様な変型を用いて本発明を最もよく活用できるようにするために選択された。本発明の範囲がここに添付される請求項により定められることが意図される。
【図１】
2010508615.tif 000003
【図２】
2010508615.tif 000004
【図３】
2010508615.tif 000005
【図４】
2010508615.tif 000006
【図５】
2010508615.tif 000007
【図６】
2010508615.tif 000008
【図７】
2010508615.tif 000009
【図８】
2010508615.tif 000010
【図９】
2010508615.tif 000011
【図１０Ａ】
2010508615.tif 000012
【図１０Ｂ】
2010508615.tif 000013
【図１０Ｃ】
2010508615.tif 000014
【図１１Ａ】
2010508615.tif 000015
【図１１Ｂ】
2010508615.tif 000016
【図１２Ａ】
2010508615.tif 000017
【図１２Ｂ】
2010508615.tif 000018
【図１３Ａ】
2010508615.tif 000019
【図１３Ｂ】
2010508615.tif 000020
【図１４】
2010508615.tif 000021
【図１５】
2010508615.tif 000022
【図１６】
2010508615.tif 000023
【図１７】
2010508615.tif 000024
【図１８】
2010508615.tif 000025
【図１９】
2010508615.tif 000026
【手続補正書】
【提出日】平成21年5月28日(2009.5.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
不揮発性記憶素子のセットをプログラミングする方法であって、
不揮発性記憶素子（１５０）に一連のプログラミングパルス（Vpgm）を印加する工程であり、断続的なパルスのそれぞれが下位状態（A,B）のプログラミングが完了するまで第１のステップサイズ（ΔVpgm1）で増分され、次に断続的なパルスのそれぞれが第２のステップサイズ（ΔVpgm2）で増分される工程と、
下位状態のプログラミングが完了するとプログラミングパルスのパルス長（PW）を増加する工程と、を備える方法。
【請求項２】
前記一連のプログラミングパルスを印加する工程は、
下位状態のプログラミングが完了するまで、雑／ファインプログラミングを使用しない従来の技法を使用して最高位状態に向けてプログラミングすることと、
下位状態のプログラミングが完了した後に、雑／ファイン技法を使用して最高位状態に向けてプログラミングすることと、を有する請求項１に記載の方法。
【請求項３】
前記従来の技法を使用するプログラミングは、単一の検証レベルを使用することを有しており、
前記雑／ファイン技法を使用するプログラミングは、少なくとも２つの検証レベルを使用することを有する請求項２に記載の方法。
【請求項４】
前記雑／ファイン技法は、第１検証レベルを超えるが第２検証レベル未満である閾値電圧を有する記憶素子に中間ビットライン電圧を印加することを有する請求項３に記載の方法。
【請求項５】
前記雑／ファイン技法は、第２検証レベルを超える閾値電圧を有する記憶素子に高ビットライン電圧を印加することを有する請求項３又は４に記載の方法。
【請求項６】
各記憶素子は、空の状態及び３つのプログラム状態にプログラミングでき、そのプログラム状態の１つが最高位状態であり、
下位状態がプログラミングされるまで記憶素子に検証パルスの第１セットを印加し、次に記憶素子に検証パルスの第２セットを印加する工程をさらに備えており、
検証パルスの第１セットが下位状態用の少なくとも２つの検証レベルと、最高位状態用の単一の検証レベルとを有しており、
検証パルスの第２セットが最高位状態用の少なくとも２つの検証レベルを有している請求項１〜５のいずれか一項に記載の方法。
【請求項７】
不揮発性記憶システムであって、
複数の不揮発性記憶素子（１５０）と、
不揮発性記憶素子と通信する少なくとも１つの管理回路（３１０）と、を備えており、
管理回路が一連のプログラミングパルス（Vpgm）を記憶素子に印加し、
断続的なパルスのそれぞれは下位状態（A,B）のプログラミングが完了するまで第１のステップサイズ（ΔVpgm1）で増分され、次に断続的なパルスのそれぞれは第２のステップサイズ（ΔVpgm2）で増分され、
管理回路が、下位状態のプログラミングが完了するとプログラミングパルスのパルス長（PW）を増加する不揮発性記憶システム。
【請求項８】
管理回路は、下位状態のプログラミングが完了するまで第１技法を使用して最高位状態をプログラミングし、次に下位状態のプログラミングが完了した後に第２技法を使用して最高位状態をプログラミングする請求項７に記載のシステム。
【請求項９】
第１技法が雑／ファインプログラミングを使用せず、第２技法が雑／ファインプログラミングを使用する請求項８に記載のシステム。
【請求項１０】
各記憶素子が空の状態と３つのプログラム状態にプログラミングすることができ、プログラム状態の１つが最高位状態であり、
管理回路は、下位状態がプログラミングされるまで検証パルスの第１セットを記憶素子に印加し、次に検証パルスの第２セットを記憶素子に印加し、
検証パルスの第１セットは下位状態用の少なくとも２つの検証レベルと、最高位状態用の単一の検証レベルを有しており、
検証パルスの第２セットは最高位状態用の少なくとも２つの検証レベルを有している請求項７〜９のいずれか一項に記載のシステム。
【請求項１１】
管理回路は、下位状態のプログラミングが完了するまで第１のステップサイズで断続的なパルスのそれぞれを増分し、次に第３のステップサイズで単一のパルスを増分し、次に第２のステップサイズで断続的なパルスのそれぞれを増分する請求項７〜１０のいずれか一項に記載のシステム。
【請求項１２】
第３のステップサイズ及び第２のステップサイズが第１のステップサイズより大きい請求項１１に記載のシステム。
【請求項１３】
第３のステップサイズが第２のステップサイズより大きい請求項１１又は１２に記載のシステム。
【請求項１４】
管理回路は、下位状態のプログラミングが完了するとパルス長を２倍にする請求項７〜１３のいずれか一項に記載のシステム。
【請求項１５】
管理回路は、雑／ファイン技法を使用して下位状態をプログラミングし、下位状態のプログラミングが完了するまで従来の技法を使用して高位状態をプログラミングし、下位状態のプログラミングが完了した後に雑／ファイン技法を使用して高位状態をプログラミングする請求項７〜１４のいずれか一項に記載のシステム。
【国際調査報告】
2010508615.tif 000027
2010508615.tif 000028