(57)【要約】  メモリシステムにおいて、鋸歯形を有する複数セットの複数の隣接サブパルスを使用することによって、プログラミング波形がプログラムノイズを低減する。１セットにおいて、初回サブパルスが、０Ｖなどの初回レベルからピークレベルへとステップアップし、その後、初回レベルよりも高い中間レベルへとステップダウンする。そのセットの中のその後の一つ以上のサブパルスは、中間レベルからピークレベルへとステップアップし、その後中間レベルへと再びステップダウンすることができる。そのセットの中の最終サブパルスは、中間レベルからピークレベルへとステップアップし、その後初回レベルへと再びステップダウンすることができる。その１セットのサブパルスの後に、検証動作が実行される。プログラミング動作の終わりにかけて孤立パルスが印加されるまで、１セットあたりのサブパルスの数は連続するセットで減少することができる。【選択図】図９ａ
2013524400.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性記憶システムにおけるプログラミングの方法であって、
１セットの不揮発性記憶素子（３００）うちの選択された不揮発性記憶素子に関するプログラミング動作において、複数セット（９１０、９２０、９３０、９４０、９５０及び９６０）のプログラムサブパルス（９１２、９１４、９１６、９１８、９２２、９２４、９２６、９２８；９３２、９３４、９３６；９４２、９４４、９４６；９５２、９５４；９６２、９６４）を前記選択された不揮発性記憶素子に印加するステップであって、前記１セットの不揮発性記憶素子が、１セットのワードライン（ＷＬ０〜ＷＬ６３）と通信し、前記複数セットのプログラムサブパルスが、前記１セットのワードラインのうちの選択されたワードラインを介して前記選択された不揮発性記憶素子に印加され、各セットのプログラムサブパルスが、共通の開始レベル（Ｖｉｎｉｔｉａｌ）からそれぞれのピークレベル（Ｖｐｅａｋ）に移行し、その後、前記共通の開始レベルに戻らずに前記共通の開始レベルと前記それぞれのピークレベルとの間にあるそれぞれの中間レベル（Ｖｉｎｔ）に移行する初回サブパルス（９１２、９２２、９５２、９６２）と、それぞれの中間レベル（Ｖｉｎｔ）からそれぞれのピークレベル（Ｖｐｅａｋ）に移行し、その後前記共通の開始レベル（Ｖｉｎｉｔｉａｌ）に移行する最終サブパルス（９１８、９２８、９４６、９５４、９６４）とを備えることを特徴とするステップと、
前記複数セットのプログラムサブパルスのうちの少なくとも一つに続き、前記選択された不揮発性記憶素子のうちの少なくとも一つに対する前記プログラミング動作中に検証動作を実行するステップと、
を含む方法。
【請求項２】
前記各セットのプログラムサブパルスの中の前記初回サブパルスと前記最終サブパルスとの間で、前記選択された不揮発性記憶素子に対する検証動作が実行されない請求項１に記載の方法。
【請求項３】
前記複数セットのプログラムサブパルスのうちの少なくとも一つが、前記初回サブパルスと前記最終サブパルスとの間に追加サブパルス（９１４、９１６；９２４、９２６；９３４；９４４）を備えており、前記追加サブパルスが、それぞれの中間レベルからそれぞれのピークレベルに移行し、その後前記追加サブパルスの前記それぞれの中間レベルに戻る請求項１又は２に記載の方法。
【請求項４】
前記複数セットのプログラムサブパルスのうちの少なくとも一つが、Ｎ＞１である整数Ｎ個のサブパルス（９１４、９１６；９２４、９２６）を備えており、前記複数セットのプログラムサブパルスのうちのその後の他の少なくとも一つが、整数Ｍ個のサブパルス（９３４；９４４）を備えており、１＜Ｍ＜Ｎである請求項１〜３のいずれか一項に記載の方法。
【請求項５】
目標データ状態（Ｖｖａ、Ｖｖｂ、Ｖｖｃ）へのプログラミングの完了度に基づき、前記複数セットのプログラムサブパルスのうちの前記少なくとも一つから、前記複数セットのプログラムサブパルスのうちの他の少なくとも一つに移行するステップをさらに含む請求項１〜４のいずれか一項に記載の方法。
【請求項６】
前記複数セットのプログラムサブパルスのうちの指定された数が前記プログラミング動作において印加されたときに、前記複数セットのプログラムサブパルスのうちの前記少なくとも一つから、前記複数セットのプログラムサブパルスのうちの他の少なくとも一つに移行するステップさらに含む請求項１〜５のいずれか一項に記載の方法。
【請求項７】
各セットのプログラムサブパルスにおけるサブパルスの数が、前記プログラミング動作中に時間の経過に伴って定量的に減少する請求項１〜６のいずれか一項に記載の方法。
【請求項８】
各セットのプログラムサブパルスの中のサブパルスの振幅（Ｖｐｅａｋ１、Ｖｐｅａｋ２、Ｖｐｅａｋ３）が、前記プログラミング動作中に時間の経過に伴って定量的に増大する請求項１〜７のいずれか一項に記載の方法。
【請求項９】
前記プログラミング動作に関して、
前記選択された不揮発性記憶素子に複数セットのプログラムサブパルスを前記印加するステップから、少なくとも一つの孤立パルスを印加するステップに移行するステップと、
前記少なくとも一つの孤立パルスに続いて、前記選択された不揮発性記憶素子のうちの前記少なくとも一つに対する検証動作を実行するステップ、
をさらに含む請求項１〜８のいずれか一項に記載の方法。
【請求項１０】
前記移行するステップが、目標データ状態に対するプログラミングの完了度に基づいて行われる請求項９に記載の方法。
【請求項１１】
前記移行するステップが、印加された前記複数セットのプログラムサブパルスの数に基づいて行われる請求項９に記載の方法。
【請求項１２】
不揮発性記憶システムであって、
１セットの不揮発性記憶素子（３００）と、
前記１セットの不揮発性記憶素子のうちの選択された不揮発性記憶素子と通信する選択されたワードラインを含んでおり、前記１セットの不揮発性記憶素子と通信する１セットのワードライン（ＷＬ０〜ＷＬ６３）と、
前記選択された不揮発性記憶素子に関わるプログラミング動作に関して、前記１セットのワードラインと通信する少なくとも一つの制御回路（４１０）と、
を備えており、
前記少なくとも一つの制御回路が、
前記選択されたワードラインを介して、複数セット（９１０、９２０、９３０、９４０、９５０及び９６０）のプログラムサブパルス（９１２、９１４、９１６、９１８；９２２、９２４、９２６、９２８；９３２、９３４、９３６；９４２、９４４、９４６；９５２、９５４；９６２、９６４）を前記選択された不揮発性記憶素子に印加するステップであって、各セットのプログラムサブパルスが、共通の開始レベル（Ｖｉｎｉｔｉａｌ）からそれぞれのピークレベル（Ｖｐｅａｋ）に移行し、その後、前記共通の開始レベルに戻らずに前記共通の開始レベルと前記それぞれのピークレベルとの間にあるそれぞれの中間レベル（Ｖｉｎｔ）に移行する初回サブパルス（９１２、９２２、９５２、９６２）と、それぞれの中間レベル（Ｖｉｎｔ）からそれぞれのピークレベル（Ｖｐｅａｋ）に移行し、その後前記共通の開始レベル（Ｖｉｎｉｔｉａｌ）に移行する最終サブパルス（９１８、９２８、９４６、９５４、９６４）とを備えることを特徴とするステップと、
前記複数セットのプログラムサブパルスのうちの少なくとも一つに続き、前記選択された不揮発性記憶素子のうちの少なくとも一つに対する前記プログラミング動作中に検証動作を実行するステップ、
を実行する不揮発性記憶システム。
【請求項１３】
前記各セットのプログラムサブパルスの中の前記初回サブパルスと前記最終サブパルスとの間で、前記選択された不揮発性記憶素子に対する検証動作が実行されない請求項１２に記載の不揮発性記憶システム。
【請求項１４】
各セットのプログラムサブパルスにおけるサブパルスの数が、前記プログラミング動作中に時間の経過に伴って定量的に減少する請求項１２又は１３に記載の不揮発性記憶システム。
【請求項１５】
各セットのプログラムサブパルスの中のサブパルスの振幅（Ｖｐｅａｋ１、Ｖｐｅａｋ２、Ｖｐｅａｋ３）が、前記プログラミング動作中に時間の経過に伴って定量的に増大する請求項１２〜１４のいずれか一項に記載の不揮発性記憶システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、不揮発性メモリに関する。
【背景技術】
【０００２】
半導体メモリは、様々な電子デバイスで次第に広く使用されるようになってきている。例えば、不揮発性半導体メモリは、携帯電話、デジタルカメラ、パーソナル・デジタル・アシスタント、モバイル・コンピュータ・デバイス、非モバイル・コンピュータ・デバイス、及び、他の装置に使用されている。Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ（ＥＥＰＲＯＭ）及びフラッシュメモリは、不揮発性半導体メモリの中で最もよく使用されるものである。フラッシュメモリに関しては、ある種のＥＥＰＲＯＭもそうであるが、通常のフル装備のＥＥＰＲＯＭとは異なり、全メモリアレイ又は一部分のメモリの内容は、１ステップで消去することができる。
【０００３】
従来のＥＥＰＲＯＭ及びフラッシュメモリはともに、半導体基板内のチャネル領域上に配置され、そのチャネル領域から絶縁されたフローティングゲートを利用する。フローティングゲートは、ソース領域とドレイン領域の間に配置されている。フローティングゲートの上に、そのフローティングゲートから絶縁されている制御ゲートが設けられている。このように形成されているトランジスタの閾値電圧（Ｖｔｈ）は、フローティングゲート上に保持されている電荷量によって制御される。即ち、そのソースとドレインの間の導通を可能にするためにトランジスタをオンする前に制御ゲートに印加すべき電圧の最小量は、そのフローティングゲート上の電荷量レベルにより制御される。
【０００４】
ＥＥＰＲＯＭとフラッシュ・メモリ・デバイスには、２つの電荷量範囲を蓄える目的で使用されるフローティングゲートを備える記憶素子又はセルを有するものがあり、その記憶素子は、消去状態とプログラムされた状態等の２つの状態の間でプログラム／消去することができる。このようなフラッシュ・メモリ・デバイスは、各記憶素子が１ビットのデータを記憶できることから、バイナリ・フラッシュ・メモリ・デバイスと呼ばれることがある。
【０００５】
マルチステート（マルチレベルとも呼ばれる）フラッシュ・メモリ・デバイスは、複数、例えば４つ以上の許可された／有効な個別のプログラム済閾値電圧範囲を特定することによって実現される。各々の個別の閾値電圧範囲は、メモリデバイス内で符号化される１セットトのデータビットに対する予め決められた値に対応する。例えば、各記憶素子は、４つの個別の閾値電圧範囲に対応する４つの個別の電荷バンドのうちの一つの状態に置かれることにより、２ビットのデータを記憶することができる。
【０００６】
通常、プログラム動作時に制御ゲートに印加されるプログラム電圧Ｖｐｇｍは、時間の経過に伴って大きさが増加する一連のパルスとして印加される。このプログラム電圧は、選択されたワードラインに印加することができる。一つの可能なアプローチとしては、パルスの大きさは、連続するパルスの一つ毎に、例えば０．２〜０．４Ｖの既定のステップサイズずつ増加する。Ｖｐｇｍは、フラッシュメモリ素子の制御ゲートに印加することができる。プログラムパルスの間の期間に検証動作が実行される。即ち、並列にプログラムされている記憶素子グループの各素子のプログラムレベルは、連続するプログラムパルスの間に読み出され、素子がプログラムされている検証レベルと等しいかあるいはそれ以上であるかどうかが判定される。マルチステート・フラッシュ・メモリ素子のアレイでは、素子の状態毎に検証ステップが実行され、データに対応する検証レベルにその素子が達したか否かが判定される。例えば、４つの状態のいずれかにデータを記憶可能なマルチステートメモリ素子では、３つの比較点での検証動作を実行する必要がある。
【０００７】
さらに、ＮＡＮＤストリングにおけるＮＡＮＤフラッシュ・メモリ・デバイスなど、ＥＥＰＲＯＭ又はフラッシュ・メモリ・デバイスをプログラムする場合、通常は、制御ゲートにＶｐｇｍが印加されると共にビットラインが接地され、記憶素子のチャネルからフローティングゲートに電子が注入される。フローティングゲートに電子が蓄積されると、フローティングゲートが負値に帯電し、記憶素子の閾値電圧が上昇して、記憶素子がプログラムされた状態になると考えられる。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、メモリデバイスの小型化が進むと、正確なプログラミングが困難になる。
【課題を解決するための手段】
【０００９】
複数セットのサブパルスを使用するプログラミング波形を提供することによってプログラムノイズを低減する方法及び不揮発性記憶システムが提供される。
【図面の簡単な説明】
【００１０】
【図１ａ】ＮＡＮＤストリングの上面図である。
【００１１】
【図１ｂ】図１ａのＮＡＮＤストリングの等価回路図である。
【００１２】
【図１ｃ】図１ａのＮＡＮＤストリングの断面図である。
【００１３】
【図２】ＮＡＮＤフラッシュ・メモリ・セルの１ブロックを示し、ブロックは、図１ａ〜図１ｃに示すようなＮＡＮＤストリングで構成される。
【００１４】
【図３】図２のブロックなど複数のブロックを備えるメモリアレイを示す。
【００１５】
【図４】図３のメモリアレイを含み、一つの行／列デコーダと読み出し／書き込み回路とを使用する不揮発性メモリシステムのブロック図である。
【００１６】
【図５】閾値電圧区分のセット及びワンパスプログラミングの一例を示す。
【００１７】
【図６】閾値電圧区分のセット及び２パスプログラミングの一例を示す。
【００１８】
【図７ａ】様々な閾値電圧区分を示し、不揮発性メモリをプログラムするためのプロセスを示す。
【図７ｂ】様々な閾値電圧区分を示し、不揮発性メモリをプログラムするためのプロセスを示す。
【図７ｃ】様々な閾値電圧区分を示し、不揮発性メモリをプログラムするためのプロセスを示す。
【００１９】
【図８】プログラムノイズによって拡張された閾値電圧区分に加えて、図５の閾値電圧区分のセットの一例を示す。
【００２０】
【図９ａ】図８に示すプログラムノイズの低減を達成するために、プログラム動作時に選択されたワードラインに対して印加される複数セットのサブパルスを含むプログラミング波形例を示す。
【００２１】
【図９ｂ】図９ａに示すサブパルスのセット９１０のさらなる詳細を示す。
【００２２】
【図９ｃ】図９ａに示す複数セットのサブパルスの代替としての代替セットのサブパルスを示す。
【００２３】
【図９ｄ】図９ａに示す複数セットのサブパルスの代替としての別の代替セットのサブパルスを示す。
【００２４】
【図１０】図９ａなどに記載された複数セットのサブパルスを使用して不揮発性メモリをプログラムするための方法の一実施形態を記載したフローチャートである。
【発明を実施するための形態】
【００２５】
メモリシステムでは、プログラミング動作時に、ワードラインなどを介して、選択された１セットの不揮発性記憶素子にプログラミング波形が印加される。プログラミング波形は、鋸歯形を有する複数セットのサブパルスを含む。例えば、各々のセットは、複数の隣接サブパルスを含み得る。そこでは、あるセットにおけるサブパルス間で検証動作が実行されない。初回サブパルスは、０Ｖなどの初回レベルからピークレベルへとステップアップし、その後、初回レベルよりも高い中間レベルへとステップダウンする。そのセットの一つ以上の後続サブパルスが、中間レベルからピークレベルへとステップアップし、その後中間レベルへと再びステップダウンすることができる。そのセットの最終サブパルスは、中間レベルからピークレベルへとステップアップし、その後初回レベルへと再びステップダウンすることができる。そのセットのサブパルスが印加された後に検証動作が実行される。繰り返されるサブパルスを使用することで、初回レベルよりも高い中間レベルからステップアップ及びステップダウンすることによって実現される時間の節約により、性能への影響を最小限に抑えながらプログラムノイズを低減することができる。さらに、連続するセットにおいて、１セットあたりのサブパルスの数が減少し得る。そして、プログラミング動作の終わりにかけて孤立パルスが印加される。このようなことが受け入れられるのは、プログラミング動作の終わりにかけて、プログラミングを完了する上位の状態記憶素子の方がプログラムノイズに対して寛大であることが理由である。
【００２６】
本発明を実装するのに適したメモリシステムの一例は、ＮＡＮＤフラッシュメモリ構造を使用するものであり、この構造は、２つの選択ゲート間に複数のトランジスタを直列に配置する。直列に配置されたトランジスタ及び選択ゲートは、ＮＡＮＤストリングと呼ばれる。
【００２７】
図１ａは、一つのＮＡＮＤストリングを示す上面図である。図１ｂは、図１ａのＮＡＮＤストリングの等価回路図である。図１ａ、図１ｂに図示されたＮＡＮＤストリングは、直列に接続されており、第１の選択ゲート１２０と第２の選択ゲート１２２の間に挟まれている４つのトランジスタ１００、１０２、１０４、及び１０６を含む。選択ゲート１２０は、ＮＡＮＤストリングをビットライン１２６に接続する。選択ゲート１２２は、ＮＡＮＤストリングをソースライン１２８に接続する。選択ゲート１２０は、制御ゲート１２０ＣＧに適切な電圧が印加されることによって制御される。選択ゲート１２２は、制御ゲート１２２ＣＧに適切な電圧が印加されることによって制御される。トランジスタ１００、１０２、１０４及び１０６のそれぞれは制御ゲート及びフローティングゲートを有する。トランジスタ１００は、制御ゲート１００ＣＧ及びフローティングゲート１００ＦＧを有する。トランジスタ１０２は制御ゲート１０２ＣＧ及びフローティングゲート１０２ＦＧを有する。トランジスタ１０４は、制御ゲート１０４ＣＧ及びフローティングゲート１０４ＦＧを有する。トランジスタ１０６は、制御ゲート１０６ＣＧ及びフローティングゲート１０６ＦＧを有する。制御ゲート１００ＣＧは、ワードラインＷＬ３に接続されており、制御ゲート１０２ＣＧはワードラインＷＬ２に接続されており、制御ゲート１０４ＣＧはワードラインＷＬ１に接続されており、制御ゲート１０６ＣＧはワードラインＷＬ０に接続されている。一実施形態では、トランジスタ１００、１０２、１０４及び１０６は、それぞれ、メモリセルである。他の実施形態では、メモリセルは、複数のトランジスタを有していることも、あるいは、図示されているのとは異なることもある。選択ゲート１２０は、選択ラインＳＧＤに接続されている。選択ゲート１２２は、選択ラインＳＧＳに接続されている。
【００２８】
図１ｃは、図１ａのＮＡＮＤストリングの断面図である。ＮＡＮＤストリングのトランジスタはｐ−ウェル領域１４０に形成されている。ｐ−ウェル領域は、代わりにｐ−タイプ基板１４４のｎ−ウェル領域１４２内にあってもよい。各トランジスタは、制御ゲート（１００ＣＧ、１０２ＣＧ、１０４ＣＧ、及び１０６ＣＧ）とフローティングゲート（１００ＦＧ、１０２ＦＧ、１０４ＦＧ、及び１０６ＦＧ）から構成される積層ゲート構造を有している。フローティングゲートは、ｐ−ウェルの表面に、酸化膜又は他の誘電体膜の上に形成される。制御ゲートはフローティングゲートの上にあり、ポリシリコン間の誘電体層が制御ゲート及びフローティングゲートを分離している。メモリセル（１００、１０２、１０４及び１０６）の制御ゲートは、ワードラインを形成している。Ｎ＋ドープ層１３０、１３２、１３４、１３６、及び１３８が、隣接するセルの間で共有され、これによってセルが互いに直列に接続されており、ＮＡＮＤストリングを形成している。これらのＮ＋ドープ層は、各セルのソース及びドレインを構成している。例えば、Ｎ＋ドープ層１３０はトランジスタ１２２のドレイン及びトランジスタ１０６のソースとしての機能を果たし、Ｎ＋ドープ層１３２はトランジスタ１０６のドレイン及びトランジスタ１０４のソースとしての機能を果たし、Ｎ＋ドープ層１３４はトランジスタ１０４のドレイン及びトランジスタ１０２のソースとしての機能を果たし、Ｎ＋ドープ層１３６はトランジスタ１０２のドレイン及びトランジスタ１００のソースとしての機能を果たし、Ｎ＋ドープ層１３８はトランジスタ１００のドレイン及びトランジスタ１２０のソースとしての機能を果たす。Ｎ＋ドープ層１２６は、ＮＡＮＤストリングに対するビットラインに接続される。一方、Ｎ＋ドープ層１２８は、複数のＮＡＮＤストリングに対する一つの共通ソースラインに接続される。
【００２９】
なお、図１ａ〜図１ｃは、ＮＡＮＤストリングにおける４つのメモリセルを示しているが、４つのトランジスタを使用することは、一例として提供されているに過ぎない。本明細書に記載されている技術で使用されるＮＡＮＤストリングのメモリセルは、４つより多い場合も少ない場合もあり得る。例えば、ＮＡＮＤストリングによっては、最大６４個以上のメモリセルを含む。
【００３０】
各メモリセルは、アナログ形式又はデジタル形式で表されるデータを記憶できる。１ビットのデジタルデータを記憶するとき、メモリセルの可能な閾値電圧の範囲は、論理データ「１」及び「０」が割り当てられる２つの範囲に分割される。ＮＡＮＤタイプのフラッシュメモリの一例では、電圧閾値は、メモリセルが消去された後に負となり、論理「１」として定義される。プログラム動作後に閾値電圧は正となり、論理「０」として定義される。閾値電圧が負であり、制御ゲートに０ボルトを印加することにより読み出しが試行されると、メモリセルがオンして論理１が記憶されていることが示される。閾値電圧が正であり、制御ゲートに０ボルトを印加することにより読み出し動作が試行されると、メモリセルはオンせず、論理ゼロが記憶されることが示される。
【００３１】
メモリセルは、複数の状態を記憶し、それによって複数ビットのデジタルデータを記憶することもできる。データの複数の状態を記憶するケースでは、閾値電圧のウィンドウは状態の数に分割される。例えば、４つの状態が使用される場合、データ値「１１」、「１０」、「０１」、及び「００」に割り当てられる４つの閾値範囲がある。ＮＡＮＤタイプメモリの一例では、消去動作後の閾値電圧は負であり、「１１」として定義される。正の閾値電圧は「１０」、「０１」、及び「００」の状態のために使用される。いくつかの実装例では、フローティングゲートの閾値電圧が誤って隣の物理状態にシフトしても、１ビットだけが影響を受けるように、データ値（例えば、論理状態）は、グレーコード割り当てを使用して閾値範囲に割り当てられる。メモリセルにプログラムされたデータと、セルの閾値電圧範囲の間の特殊な関係は、メモリセルのために採用されるデータ符号化方式に依存する。
【００３２】
ＮＡＮＤフラッシュメモリに加え、他のタイプの不揮発性メモリを本発明で使用することもできる。
【００３３】
フラッシュＥＥＰＲＯＭシステムで役立つ別のタイプのメモリセルは、不揮発的に電荷を蓄えるために、導電性のフローティングゲートの代わりに非導電性の誘電材料を用いる。酸化ケイ素、窒化ケイ素、及び酸化ケイ素（「ＯＮＯ」）から形成される三層誘電体が、導電性の制御ゲートと、メモリセルチャネル上の半導体基板との表面の間に挟まれる。セルは、セルチャネルから窒化物に電子を注入することによってプログラムされ、電子は限られた領域内に閉じ込められ、蓄えられる。次に、この蓄えられた電荷が、検出可能な態様で、セルのチャネルの一部の閾値電圧を変化させる。セルは、窒化物の中にホットホールを注入することによって消去される。ドープされたポリシリコンゲートがメモリセルチャネルの一部の上に延在していることで別個の選択トランジスタが形成されている分割ゲート構造の類似するセルが提供される。
【００３４】
別のアプローチでは、ＯＮＯ誘電体層がソース拡散とドレイン拡散との間のチャネルを横切って延在する各ＮＲＯＭセルに２ビットが記憶される。１データビットの電荷は、ドレインに隣接する誘電体層に局所化され、他のデータビットの電荷はソースに隣接する誘電体層に局所化される。マルチ状態データ記憶は、誘電体内の空間的に分離された電荷蓄積領域のバイナリ状態を別々に読み出すことによって実現される。
【００３５】
図２は、ＮＡＮＤフラッシュ・メモリ・セルの１ブロックを示し、ブロックは、図１ａ〜図１ｃに示すようなＮＡＮＤストリングで構成される。ブロックは、いくつかのＮＡＮＤストリングと、それぞれのビットライン、例えばＢＬ０、ＢＬ１、．．．と、を含む。各ＮＡＮＤストリングは、一端でドレイン選択ゲート（ＳＧＤ）に接続されており、ドレイン選択ゲートの制御ゲートは共通のＳＧＤラインを介して接続されている。ＮＡＮＤストリングは、他端でソース選択ゲートに接続されており、これによって共通ソースラインに接続されている。任意のダミー・ワード・ラインを含むいくつかのワードラインが、ソース選択ゲートとドレイン選択ゲートとの間に延在している。一ブロック例では、ビットラインＢＬ０、ＢＬ１、．．．ＢＬ８５１１に対応する８，５１２の列が存在する。
【００３６】
図３は、図２のブロックなど複数のブロックを備えるメモリアレイ３００を示す。一例として、Ｍ＝１，０２４個のブロックに区分け割されるＮＡＮＤフラッシュＥＥＰＲＯＭが記載されている。各ブロックに記憶されたデータは同時に消去することができる。一実施形態において、ブロックは、同時に消去される記憶素子の最小単位である。記憶素子は、ソースライン及びビットラインをフローティングさせている間に、ｐ−ウェルを消去電圧（例えば１４〜２２Ｖ）に引き上げ、選択されたブロックのワードラインを接地することによって消去することができる。消去は、メモリアレイ全体、別々のブロック、又はメモリデバイスの一部分である記憶素子の別の単位で実行できる。消去中に、電子が記憶素子のフローティングゲートからｐ−ウェル領域に移され、記憶素子のＶｔｈが負となる。選択された記憶素子のトンネル酸化物層に強力な電界が印加され、ファウラ−ノルドハイム・トンネル・メカニズムによってフローティングゲートの電子が基板側に放出されるにつれて、選択された記憶素子のデータが消去される。電子がフローティングゲートからｐ−ウェル領域に移されるにつれて、選択された記憶素子の閾値電圧が引き下げられる。
【００３７】
図４は、単一行／列デコーダ及び読み出し／書き込み回路を使用する不揮発性メモリシステムのブロック図である。同図は、一実施形態に従って記憶素子のページを同時に読み出し、プログラムするための読み出し／書き込み回路を有するメモリ素子４９６を示す。メモリ素子４９６は、一つ以上のメモリダイ４９８を有する。メモリダイ４９８は、図３に示すような記憶素子の二次元アレイ３００と、制御回路４１０と、読み出し／書き込み回路４６５とを含む。いくつかの実施形態では、記憶素子のアレイは三次元である場合がある。メモリアレイ３００は行デコーダ４３０を介してワードラインによって、及び列デコーダ４６０を介してビットラインによってアドレスできる。読み出し／書き込み回路４６５は複数の検出ブロック４００を有しており、１ページの記憶素子を並列に読み出し又はプログラムすることができる。一般に、制御部４５０は、一つ以上のメモリダイ４９８のように同じメモリ素子４９６（例えば、取り外し可能なストレージカード）内に含まれる。コマンド及びデータは、ライン４２０を介してホストと制御部４５０の間及びライン４１８を介して制御部と一つ以上のメモリダイ４９８との間で送られる。
【００３８】
制御回路４１０は、読み出し／書き込み回路４６５と協調して、メモリアレイ３００上でメモリ動作を実行する。制御回路４１０は、状態マシン４１２、オンチップ・アドレス・デコーダ４１４、及び電力制御モジュール４１６を含む。状態マシン４１２は、メモリ動作のチップレベル制御を提供する。オンチップ・アドレス・デコーダ４１４は、ホスト又はメモリコントローラによって使用されるとともに、デコーダ４３０と４６０によって使用されるハードウェアアドレスの間にアドレスインタフェースを提供する。電力制御モジュール４１６は、メモリ動作中、ワードライン及びビットラインに供給される電力及び電圧を制御する。
【００３９】
いくつかの実装例では、図４の構成要素のいくつかを組み合わせることができる。多様な設計では、記憶素子アレイ３００以外の（単独又は組み合わせた）一つ又は複数の構成要素を、管理回路つまり制御回路と見なすことができる。例えば、一又は複数の管理回路又は制御回路は、制御回路４１０、状態マシン４１２、デコーダ４１４／４６０、電力制御４１６、検出ブロック４００、読み出し／書き込み回路４６５、制御部４５０等のうちの任意の一又は組み合わせを含んでもよい。本明細書に述べられるように、一つ以上の管理回路又は制御回路が消去動作を提供することができる。
【００４０】
別の実施形態では、不揮発性メモリシステムは、二重の行／列デコーダ及び読み出し／書き込み回路を使用する。メモリアレイ３００に対する種々の周辺回路によるアクセスは、アレイの対向する側で対称的に実施され、これによって各側のアクセスライン及び回路の密度が半減される。したがって、行デコーダは２つの行デコーダに分割されており、列デコーダは２つの列デコーダに分割されている。同様に、読み出し／書き込み回路は底部からビットラインに接続する読み出し／書き込み回路と、アレイ３００の上部からビットラインに接続する読み出し／書き込み回路に分割される。このようにして、読み出し／書き込みモジュールの密度は、基本的に２分の１、削減される。
【００４１】
図５は、１セットの閾値電圧分布及びワンパスプログラムの例を示す。記憶素子アレイのための例示の閾値電圧分布は、各記憶素子が２ビットのデータを記憶する場合に提供される。第１の閾値電圧分布５００は、消去された（状態Ｅ）記憶素子を表す。３つの閾値電圧分布５０２、５０４、及び５０６は、それぞれプログラムされた状態Ａ、Ｂ及びＣを表す。一実施形態では、Ｅ分布内の閾値電圧は負であり、Ａ、Ｂ及びＣ分布内の閾値電圧は正である。
【００４２】
特定の状態にある記憶素子の数は、その閾値電圧が対応する検証レベルを上回るとされた記憶素子をカウントすることによって、特定することができる。
【００４３】
それぞれの独立した閾値電圧範囲は、１セットのデータビットの所定値に対応する。記憶素子にプログラムされたデータと記憶素子の閾値電圧レベルの特定の関係は、記憶素子のために採用されるデータ符号化方式に依存する。一実施形態では、フローティングゲートの閾値電圧が誤ってその隣の物理状態にシフトすると、１ビットだけが影響を受けるように、データ値がグレーコード割り当てを使用して閾値電圧範囲に割り当てられる。一例は、閾値電圧範囲Ｅ（状態Ｅ）に「１１」を、閾値電圧範囲Ａ（状態Ａ）に「１０」を、閾値電圧範囲Ｂ（状態Ｂ）に「００」を、及び閾値電圧範囲Ｃ（状態Ｃ）に「０１」を割り当てる。しかしながら、他の実施形態では、グレーコードは使用されない。４つの状態が図示されているが、本技術は、４つの状態より多い又は少ない状態を含む他のマルチ状態構造に使用することもできる。
【００４４】
記憶素子からデータを読み出すための３つの読み出し基準電圧、Ｖｒａ、Ｖｒｂ、及びＶｒｃが提供される。所与の記憶素子の閾値電圧がＶｒａ、Ｖｒｂ、及びＶｒｃを超えているのか、それとも下回っているのかをテストすることによって、システムは、例えば、プログラム状態等の、記憶素子の状態を特定することができる。
【００４５】
さらに、３つの検証基準電圧Ｖｖａ、Ｖｖｂ、及びＶｖｃが、提供される。記憶素子を状態Ａにプログラムするとき、システムは、それらの記憶素子がＶｖａ以上の閾値電圧を有するかどうかをテストする。記憶素子を状態Ｂにプログラムするとき、システムは、記憶素子がＶｖｂ以上の閾値電圧を有するかどうかをテストする。記憶素子を状態Ｃにプログラムするとき、システムは、記憶素子がＶｖｃ以上の閾値電圧を有するかどうかをテストする。一般に、目標データ状態に達していない記憶素子が少ない場合でも、所与の目標データ状態（例えば、Ａ、Ｂ又はＣ）にパスするために検証動作を検討することができる。これらはビット無視記憶素子と呼ばれ、区分５０２、５０４及び５０６の領域５０１、５０３及び５０５によってそれぞれ表される。制御により、あるデータ状態に対するビット無視記憶素子の数が指定レベルよりも少ないかどうかを判定し、検証パスを宣言することができる。あるいは、制御により、あるデータ状態に対するビット無視記憶素子の数が別の指定レベルよりも多いかどうかを判定し、検証パスを宣言することができる。また、特定のデータ状態と関連付けられていない検証レベルを使用して、具体的な制御アクションをトリガーすることもできる。例えば、指定された数の記憶素子のＶｔｈが検証レベルを超えたかどうかに基づいて、異なるプログラムモードを設定することができる。
【００４６】
一実施形態では、フルシーケンスプログラムとして知られるが、記憶素子は、消去状態Ｅからプログラム状態Ａ、Ｂ又はＣの何れかに直接的にプログラムされる。例えば、まず、プログラムされる記憶素子の集合中の全ての記憶素子が消去状態Ｅとなるように、当該集合が消去される場合がある。図９ａに示される一連のプログラムパルスは、記憶素子を直接的に状態Ａ、Ｂ、又はＣにプログラムするために使用される。いくつかの記憶素子は状態Ｅから状態Ａにプログラムされ、他の記憶素子は状態Ｅから状態Ｂに、及び／又は、状態Ｅから状態Ｃにプログラムされる。ＷＬｎ上で状態Ｅから状態Ｃにプログラムするときには、ＷＬｎ下のフローティングゲート上の電荷の量の変化が、状態Ｅから状態Ａに、又は、状態Ｅから状態Ｂにプログラムするときの電荷の変化と比較して最大となるので、ＷＬｎ―１下の隣接フローティングゲートに対する寄生結合の量は最大値に達する。状態Ｅから状態Ｂにプログラムするときは、隣接フローティングゲートへの結合の量はより少ない。状態Ｅから状態Ａにプログラムするときは、結合の量はさらに削減される。
【００４７】
さらに、全ビット・ライン・プログラミング又は奇数−偶数プログラミングを使用することができる。全ビット・ライン・プログラミングの場合、例えば全てのビットラインなど、選択されたワードラインの全ての記憶素子が、プログラムパルスの同じパルス列を使用して同時にプログラムされる。奇数−偶数プログラミングの場合には、奇数のビットラインと関連付けられた選択されたワードラインの記憶素子が、偶数のビットラインと関連付けられた選択されたワードラインの記憶素子とは別にプログラムされる。
【００４８】
図６は、２つの異なるページ（下側ページと上側ページ）に対してデータを記憶するマルチ状態記憶素子をプログラムするツーパス技術の一例を示している。図５の閾値電圧分布５００、５０２、５０４及び５０６の繰り返しで４つの状態が示されている。これらの状態及びその示すビットは、状態Ｅ（１１）、状態Ａ（１０）、状態Ｂ（００）及び状態Ｃ（０１）である。状態Ｅの場合、両方のページが「１」を記憶する。状態Ａの場合、下側ページが「０」を記憶し、上側ページが「１」を記憶する。状態Ｂの場合、両方のページが「０」を記憶する。状態Ｃの場合、下側ページが「１」を記憶し、上側ページが「０」を記憶する。なお、各状態に対して特定のビットパターンが割り当てられているが、異なるビットパターンを割り当てることも可能であることに注意する。
【００４９】
第１プログラムパスでは、記憶素子の閾値電圧レベルが、下側の論理ページにプログラムされるビットに応じて設定される。そのビットが論理「１」であれば、以前に消去された結果として適切な状態にあるので閾値電圧は変更されない。しかし、プログラムされるビットが論理「０」であれば、矢印６００で示したように、記憶素子の閾値レベルは状態Ａになるように増大される。これによって、第１プログラムパスを終了する。
【００５０】
第２プログラムパスでは、記憶素子の閾値電圧レベルが、上側論理ページ内にプログラムされるビットに応じて設定される。上側論理ページビットが論理「１」を記憶する場合、記憶素子は下側ページビットのプログラムに依存する状態Ｅ又はＡの一方であり、どちらも上側ページビットは「１」を保持するのでプログラムは生じない。上側ページビットが論理「０」となる場合、閾値電圧はシフトされる。第１パスによって記憶素子が消去状態Ｅに留まっていれば第２段階で記憶素子をプログラムし、矢印６２０で示したように閾値電圧が状態Ｃ内になるように増大させる。第１プログラムパスの結果として記憶素子が状態Ａ内にプログラムされれば、記憶素子はさらに第２パスでプログラムされ、矢印６１０で示したように閾値電圧が状態Ｂ内になるように増大させる。第２パスの結果は、下側ページ用のデータを変更することなく、上側ページの論理「０」を記憶するように指定した状態に記憶素子をプログラムすることである。図５及び図６の両方において、隣接するワードライン上のフローティングゲートへの結合量は最終状態に依存する。
【００５１】
一実施形態では、全ページを充填するのに十分なデータを書き込まれた場合、システムは全シーケンス書き込みを実行するように設定される。十分ではないデータが全ページに書き込まれた場合、プログラム処理は受け取ったデータを用いて下側ページプログラムを実行できる。次のデータを受け取ったときは、システムは上側ページをプログラムする。さらに別の実施形態では、システムは下側ページをプログラムするモードで書き込みを開始し、ワードラインの記憶素子の全体（又は大部分）を充填するために次の十分なデータを受け取った場合、全シーケンスプログラムモードに変換する。
【００５２】
図６には、ビット無視記憶素子が示されていない。
【００５３】
図７ａ〜図７ｃは、前のページの隣接記憶素子に書き込んだ後で、特定のページに対してその特定の記憶素子を書き込むことによって、その特定の記憶素子に対するフローティングゲート間結合効果を低減する不揮発性メモリをプログラムする別の方法を開示している。実装形態の一例では、不揮発性記憶素子は、４つのデータ状態を用いて記憶素子毎に２ビットのデータを記憶する。例えば、状態Ｅが消去状態であり、状態Ａ、Ｂ及びＣがプログラム状態であると仮定する。状態Ｅはデータ１１を記憶している。状態Ａはデータ０１を記憶している。状態Ｂはデータ１０を記憶している。状態Ｃはデータ００を記憶している。両方のビットは隣接する状態Ａ及びＢの間で変化するので、これは非グレイ符号化の一例である。データの物理的データ状態への他の符号化を用いることもできる。各記憶素子は２ページ分のデータを記憶する。参照のために、これらのページのデータは上側ページ及び下側ページと呼ばれるが、他のラベルを与えることもできる。状態Ａを参照すると、上側ページはビット０を記憶し、下側ページはビット１を記憶している。状態Ｂを参照すると、上側ページはビット１を記憶し、下側ページはビット０を記憶している。状態Ｃを参照すると、両方のページがビットデータ０を記憶している。
【００５４】
プログラム処理は、２つのステップの処理である。第１ステップでは、下側ページをプログラムする。下側ページがデータ１のままである場合、記憶素子状態は状態Ｅ（分布７００）に留まる。データが０にプログラムされる場合、記憶素子の電圧の閾値は、記憶素子が状態Ｂ’（分布７１０）にプログラムされるように引き上げられる。したがって、図７ａは、状態Ｅから状態Ｂ’への記憶素子のプログラムを示している。状態Ｂ’は暫定的状態Ｂであり、したがって、検証点はＶｖｂ’として示され、Ｖｖｂより低い。
【００５５】
一実施形態では、状態Ｅから状態Ｂ’に記憶素子をプログラムした後、ＮＡＮＤストリング内の隣接記憶素子（ＷＬｎ＋１）をその下側ページに対してプログラムする。これは、図７ｂの閾値電圧分布７１２に示したように状態Ｂ’の閾値電圧分布を拡大する効果を有する。閾値電圧分布のこの見かけの拡大は、上側ページをプログラムする際に修正される。また、状態Ｅは、分布７０２によって示されるように、広げられてもよい。
【００５６】
図７ｃは、上側ページをプログラムする工程を示している。記憶素子が消去状態Ｅであって上側ページが１に留まる場合、記憶素子は状態Ｅ（分布７０２）に留まる。記憶素子が状態Ｅであり、その上側ページデータが０にプログラムされる場合、記憶素子の閾値電圧は上昇し、記憶素子は状態Ａ（分布７０４）になる。記憶素子が中間の閾値電圧分布７１２であって上側ページデータが１に留まる場合、記憶素子は最終状態Ｂ（分布７０６）にプログラムされる。記憶素子が中間の閾値電圧分布７１２であって上側ページデータがデータ０になる場合、記憶素子の閾値電圧は上昇し、記憶素子は状態Ｃ（分布７０８）になる。図７ａ〜図７ｃに示す工程は、隣接する記憶素子への上側ページのプログラムのみが、所与の記憶素子の明確な閾値電圧に影響を与えるようになるので、フローティングゲートのフローティングゲートカップリングへの影響を低減することができる。選択的な符号化の一例は、分布７１２を、上側ページデータが１であれば状態Ｃへ遷移させ、上側ページデータが０であれば状態Ｂへ遷移させる。
【００５７】
図１０ａから図１０ｃは、４つのデータ状態、及び、２ページのデータに関しての例を提供するが、教示される概念は、４つの状態より多い又は少なく、２ページより多い又は少ない他の実装例に印加できる。例えば、記憶素子毎に８つ又は１６の状態のあるメモリ素子が、現在、計画されている、又は生産中である。
【００５８】
図７ａ〜図７ｃには、ビット無視記憶素子が示されていない。
【００５９】
図８は、プログラムノイズによって拡張された閾値電圧区分に加えて、図５の閾値電圧区分のセットの一例を示す。同じ番号の構成要素は、図５と同じである。また、プログラムノイズによってもたらされる状態Ａ、Ｂ及びＣに対する拡張区分８０２、８０４及び８０６がそれぞれ示されている。
【００６０】
一般に、ＮＡＮＤフラッシュメモリが小型化するにつれて、プログラムノイズが徐々に制御し難くなる。プログラムノイズの一つの主因は、フローティングゲート・制御ゲート間の静電容量の減少であり、これによって電子あたりのＶｔｈシフトが決定される。静電容量が小さくなると、各々のプログラムパルスの印加時にフローティングゲートに注入される電子の平均数が減少する（Ｖｔｈの増加が同じ場合）。その結果、プログラミング中のプログラムノイズなどのΔＶｔｈ変動が大きくなる。拡張したＶｔｈ区分８０２、８０４及び８０６によって示されるように、大きなプログラムノイズにより、Ｖｔｈ区分の幅が広がる。これにより、マルチレベル記憶素子のデータ状態間のＶｔｈマージンが厳しく制限される。以下に詳述するマルチパルスプログラミング技法によって、プログラムノイズを大きく低減することができる（特に、小型メモリデバイスの場合）。
【００６１】
図９ａは、図８に示すプログラムノイズの低減を達成するために、選択されたワードラインに対してプログラム動作時に印加される複数セットのサブパルスを含むプログラミング波形例を示す。マルチパルスプログラミング技法において、各プログラム電圧（Ｖｐｇｍ）レベルで、一つのプログラムパルスを使用するのではなく、複数セットの複数のプログラムパルス又はサブパルスが繰り返し印加される。一般に、１セットあたりの使用サブパルスを増やすと、プログラムノイズが大きく低減され、その結果、Ｖｔｈ区分が狭まり得る。ただしこのメリットは、１セットあたりに使用されるサブパルスの数が一定数を超えると限界に達する。いくつかの実装例では、１セットあたりに使用されるサブパルスが約５を超えると、このメリットが限界に達する。
【００６２】
例えば、１セットの記憶素子におけるメモリアレイ又はブロックといった共通ワードラインと関連付けられた記憶素子など選択された不揮発性記憶素子に、プログラミング波形９００が印加され得る。プログラミング波形９００は、連続するセット９１０、９２０、９３０、９４０、９５０及び９６０を含み、各々のセットは、１セットの２つ以上の隣接サブパルスである。例えば、セット９１０及び９２０は４つのサブパルスを各々含み、セット９３０及び９４０は３つのサブパルスを各々含み、セット９５０及び９６０は各々２つのサブパルスを含む。具体的には、セット９１０はサブパルス９１２、９１４、９１６及び９１８を含み、セット９２０はサブパルス９２２、９２４、９２６及び９２８を含む。セット９３０は、サブパルス９３２、９３４及び９３６を含み、セット９４０はサブパルス９４２、９４４及び９４６を含む。セット９５０はサブパルス９５２及び９５４を含み、セット９６０はサブパルス９６２及び９６４を含む。各々のセットは、初回サブパルス及び最終サブパルス、そして任意で初回サブパルスと最終サブパルスとの間にある一つ以上の中間のサブパルスを含む。
【００６３】
そのため、複数セットのプログラムサブパルスのうちの少なくとも一つが整数Ｎ＞１個のサブパルスを備え、以降、複数セットのプログラムサブパルスのうちの他の少なくとも一つが、整数Ｍ個のサブパルスを備える。ここで、１＜Ｍ＜Ｎである。例えば、Ｎ＝４であればＭ＝２又は３であり、Ｎ＝３であればＭ＝２である。各セットのプログラムサブパルスにおけるサブパルスの数は、プログラミング動作時に時間の経過に伴って定量的に減少する。
【００６４】
一般に、１セットのプログラムサブパルスは、セット９１０、９２０、９３０、９４０、９５０及び９６０のうちのいずれかであり得る。そして別のセットのプログラムサブパルスは、セット９１０、９２０、９３０、９４０、９５０及び９６０のうちのその他いずれかであり得る。いくつかの実施形態では、１セットのプログラムサブパルスだけが使用される。
【００６５】
これらのセットの各々に対し、その後、４状態メモリデバイスにおけるＡ、Ｂ及びＣ状態など、一つ以上の目標データ状態に対する検証動作が行われる。例えばセット９１０に対し、検証電圧９１９が続く。少なくとも１セットのサブパルスに続き、一つ以上の孤立パルス９７０、９８０及び９９０が印加され得る。孤立パルスとは、初回レベルから始まり、いかなる中間レベルでも止まることなくピークレベルにステップアップし、その後初回レベルにステップダウンする単一のプログラムパルスのことである。孤立プログラム電圧に続いて、検証電圧を印加することもできる。場合によっては、初期の複数セットのサブパルスについては低位のデータ状態（例えば状態Ａ）に対してのみ、中間の複数セットのサブパルスについては中位のデータ状態（例えば状態Ａ及びＢ）に対してのみ、及び高い複数セットのサブパルス及び孤立パルスについては中位及び高位のデータ状態（例えば状態Ｂ及びＣ）に対してのみ、検証動作が実行される。なお、場合によっては、孤立パルスが印加される前に、プログラミング動作が完了し得る。
【００６６】
一実施態様例では、第１のセットで４つ又は５つのサブパルスが使用される。セット内には検証電圧が存在しない。そのため、あるセットの最初のサブパルスと最終サブパルスとの間では検証動作が実行されない。プログラム時間を節約するために、サブパルスは、０Ｖなどの初回レベルに下がる必要がない。代わりに、サブパルスの後、プログラム電圧を放電すること、あるいは中間レベルまでステップダウンすることができ、そこから直ちに再び上昇させたり、ステップアップしたりすることができる。この方式を用いた結果、各セットのサブパルスは鋸形になり、各サブパルスが鋸の歯のように見える。
【００６７】
プログラミング電圧９００は、プログラミング動作が進むに従い、時間の経過に伴って１セットにおけるサブパルスの数を定量的に減らすことにより、プログラムディスターブを最小限に抑えながら、十分なチャネルブーストを許容するよう最適に調整することができる。定量的減少とは、減少がもたらされない複数のセットの後に減少がもたらされるように単調に減少することであり得る。具体的には、プログラムパルスの持続時間が比較的長いと、チャネルブーストが弱まり、その結果、不十分なブーストによるプログラムディスターブが比較的発生しやすい。ただし、プログラム電圧振幅が比較的低いときには、プログラムディスターブが脅威にならない。そのため、１セットあたり複数のサブパルスを使用することがブーストをある程度弱める場合であっても、プログラム電圧が高い振幅に達する前のプログラム動作の初期段階における低い振幅パルスには許容される。
【００６８】
一つのオプションは、指定されたセット数のプログラムサブパルスがプログラミング動作時に印加されたときに、サブパルスが少ないセットに移行することである。例えば、４番目のセットで１セットあたり４つのサブパルスから１セットあたり３つのサブパルスに移行し、８番目のセットで１セットあたり３つのサブパルスから１セットあたり２つのサブパルスに移行するように判定され得る。さらに、指定されたセット数のプログラムサブパルスがプログラミング動作時に印加されたときに、孤立パルスへの移行が起こり得る。各々の移行は、例えば、サブパルスが一つ少ないセットへの移行であり得る。
【００６９】
具体的には、プログラミング動作中にサブパルスが少ないセットに移行するための一実施態様例では、一定のプログラムセット（パルス）数が使用される。４状態の実施形態（状態Ｅ、Ａ、Ｂ及びＣ）であれば、ステップサイズ又はΔＶｐｇｍ＝０．３Ｖと仮定する。これが、連続する複数セットのサブパルス間でのステップアップ量である。各々のセットは、例えば前のセットからステップアップすることができる。そのため、各セットのプログラムサブパルスにおけるサブパルスの振幅は、プログラミング動作時に時間の経過に伴って定量的に増大する。また、上側ページのプログラム時に全４状態のプログラミングを終了するのに、約２０〜２４セットのサブパルスが必要であることも合わせて仮定する。この場合、多数のサブパルスから少数のサブパルスへの移行は、以下のようにして行うことができる。複数セットの４つのサブパルスからプログラミングを開始する。８番目のセットで、複数セットの３つのサブパルスに切り替える。１４番目のセットで、複数セットの２つのサブパルスに切り替える。２０番目のセットで、孤立パルスに切り替える。
【００７０】
８番目及び１４番目のセットでの移行は、指定されたセット数のプログラムサブパルスがプログラミング動作時に印加されたときに行われる、少なくとも１セットのプログラムサブパルスから他の少なくとも１セットのプログラムサブパルスへの移行であるとみなすことができる。２０番目のセットでの移行は、少なくとも１セットのプログラムサブパルスから少なくとも一つの孤立パルスへの移行であるとみなすことができる。
【００７１】
別のオプションは、サブパルスが少ないセット、あるいは孤立パルスに適合的に移行することである。例えば、適合的な移行は、目標データ状態へのプログラミングの完了度に基づき得る。プログラム動作が進むにつれて、多数の記憶素子又はビットが検証をパスし、通常は、関連付けられたビットライン電圧を引き上げることにより、それ以上プログラミングされないようにロックアウト又は禁止される。検証をパスする記憶素子の数に基づいて、少数のサブパルスへの移行、あるいは孤立パルスへの移行をトリガーすることができる。あるいは、検証をパスしていない記憶素子の数が、ビット無視レベル又は他の指定レベルよりも小さい場合に移行をトリガーすることができる。
【００７２】
具体的には、プログラミング動作中にサブパルスが少ないセットに移行するための一実施態様例では、適合的な移行を一定のプログラムセット（パルス）数の移行と組み合わせて使用する。繰り返しになるが、４状態の実施形態（状態Ｅ、Ａ、Ｂ及びＣ）であれば、ステップサイズ又はΔＶｐｇｍ＝０．３Ｖと仮定する。この場合、多数のサブパルスから少数のサブパルスへの移行は、以下のようにして行うことができる。複数セットの４つのサブパルスからプログラミングを開始する。８番目のセットで、複数セットの３つのサブパルスに切り替える。全てのＡ状態記憶素子（例えば、Ａ状態のビット無視記憶素子を除く全て）、あるいはＡ状態記憶素子のその他一部の指定部分Ｖｖａで検証をパスした後、複数セットの２つのサブパルスに切り替える。全てのＢ状態記憶素子（例えば、Ｂ状態ビット無視記憶素子を除く全て）、あるいはＢ状態記憶素子のその他一部の指定部分がＶｖｂで検証をパスした後、孤立パルスに切り替える。
【００７３】
全てのＡ状態記憶素子がそれぞれの検証レベルをパスした場合の移行は、目標データ状態（Ａ状態）へのプログラミングの完了度に基づく、少なくとも１セットのプログラムサブパルスから他の少なくとも１セットのプログラムサブパルスへの移行とみなすことができる。全てのＢ状態記憶素子がそれぞれの検証レベルをパスしたときに行われる移行は、目標データ状態（Ｂ状態）へのプログラミングの完了度に基づく、少なくとも１セットのプログラムサブパルスから少なくとも一つの孤立プログラムパルスへの移行とみなすことができる。
【００７４】
記憶素子を追跡することによってサブパルスが少ないセット、あるいは孤立パルスへの移行をトリガーすることは、メモリデバイスにおいて時間の経過に伴って発生し得る様々な動作上の変化を説明する適合的なアプローチである。例えば、メモリデバイスが蓄積するプログラム−消去サイクルが増えていくにつれて、記憶素子が、例えば少数のプログラムパルスで速くプログラムされ、その結果、移行が早く行われ得る。さらに、様々なメモリデバイス、あるいはメモリアレイ内の様々な記憶素子ブロック、場合によっては様々なワードラインまでもが、様々な速度でプログラムすることができる。適合的な移行は、かかる変化を自動的に調節する。
【００７５】
一般に、選択されたワードラインと通信する記憶素子の目標データ状態は、均一に分布する。例えば４つのデータ状態の場合、記憶素子の約４分の１はＥ状態のままであり、約４分の１はＡ状態にプログラムされ、約４分の１はＢ状態にプログラムされ、約４分の１はＣ状態にプログラムされる。そのため、状態Ｂがトリガー状態であり、Ｖｖｂが対応する目標検証レベルであれば、Ｂ状態に達すると期待される記憶素子の数がわかる。トリガー状態の記憶素子の任意の所望部分に基づいて移行を行うことができる。さらに、プログラム動作時に移行をトリガーするのを早めるには、トリガー状態の記憶素子の小さい部分を使用すればよい。同様に、プログラム動作時に移行をトリガーするのを遅らせるには、トリガー状態の記憶素子の大きな部分を使用すればよい。また、データ状態と関連付けられていないトリガー検証レベルを、サブパルスが少ないセット、あるいは孤立パルスに移行するためのトリガーとして使用することも可能である。これにより、移行の開始時期を判断する際の柔軟性を高めることができる。
【００７６】
さらに、１セットあたりＮ個のサブパルスからＮ−１またそれ以下のサブパルスに移行する際に、元の定常状態が崩れる。移行中、Ｖｔｈの変化（ΔＶｔｈ）は、あるセットから次のセットまでのステップ増分（ΔＶｐｇｍ）よりも少し小さいであろう。この小さなΔＶｔｈは、移行中の過剰プログラミングを防ぐ傾向がある。一般に、各々のセットにおけるサブパルスの振幅は、プログラミング動作が進むに従い、時間の経過に伴ってそのセットで定量的に増大し得る。一定又は可変ステップサイズを使用することができる。
【００７７】
移行という観点から、１セットあたりのサブパルスは段階的に減らしてもよい。さらに、プログラム動作の終了段階で孤立パルスに移行してもよい。最終段階では、最高位の状態にある少数のビットだけが、依然としてロックアウトされていない。孤立パルスプログラミングを用いることにより、プログラムノイズが高い場合であっても、この時点では、最高位の状態を少し広げることしかできない可能性が高い。また、高いＶｐｇｍに達したら、強いブーストのためにはプログラム期間が短い方が好ましいため、プログラムの最後に孤立パルスを使用することが、プログラムディスターブのリスクを低減するのに役立ち得る。
【００７８】
全体として、マルチパルスプログラミングを用いることにより、プログラム時間を過度に増やすことなくプログラムノイズを低減することができる。さらに、記憶素子が、不十分なブーストディスターブに対して脆弱にならない。
【００７９】
図９ｂは、図９ａに示すサブパルスのセット９１０のさらなる詳細を示す。セット９１０は、共通の開始又は初回レベル（例えば０Ｖ）からそれぞれのピークレベル（例えばＶｐｇｍ＝Ｖｐｅａｋ）に、その後、初回レベルに戻らずに、初回レベルとそれぞれのピークレベルとの間にあるそれぞれの中間レベル（例えばＶｉｎｔ）に移行する初回サブパルス９１２を含む。このセットはまた、それぞれの中間レベルからからそれぞれのピークレベルに、その後共通の開始レベルに移行する最終サブパルス９１８も含む。一つのアプローチでは、初回サブパルス及び最終サブパルスのそれぞれの中間レベルが同じである。このセットは、初回サブパルス９１２と最終サブパルス９１８との間に少なくとも一つの追加サブパルスをさらに含む。追加サブパルスは、それぞれの中間レベル（Ｖｉｎｔ）からそれぞれのピークレベル（Ｖｐｅａｋ）に移行し、その後追加サブパルスのそれぞれの中間レベル（Ｖｉｎｔ）に戻る。
【００８０】
図９ｃは、図９ａに示す複数セットのサブパルスの代替としての代替セットのサブパルスを示す。図９ａに示すプログラミング波形例９００の一態様は、１セットにおける各サブパルスのピーク振幅及び中間振幅が同じであるということである。さらに、各サブパルスの期間が同じである。別のオプションでは、１セットにおけるサブパルスの期間が異なり得る。例えば図９ｃでは、サブパルス９９１が最長期間を有し得るのに対し、サブパルス９２２は次に長い期間を有し、サブパルス９９３は最短期間を有する。
【００８１】
図９ｄは、図９ａの複数セットのサブパルスの代替としての別の代替セットのサブパルスを示す。ここでは、１セットにおける各サブパルスのピーク振幅及び中間振幅が様々である。例えば、サブパルス９９５が最も低い振幅（Ｖｐｅａｋ１）を有し得るのに対し、サブパルス９９６はそれよりも高い振幅（Ｖｐｅａｋ２）を有し、サブパルス９９７は最も高い振幅（Ｖｐｅａｋ３）を有する。さらに、サブパルス９９５は、ＶｉｎｉｔｉａｌからＶｐｅａｋ１にステップアップし、その後、それぞれの中間レベルであるＶｉｎｔ１にステップダウンする。サブパルス９９６は、それぞれの中間レベルであるＶｉｎｔ１からＶｐｅａｋ２にステップアップし、その後、別のそれぞれの中間レベルであるＶｉｎｔ２にステップダウンする。サブパルス９９７は、それぞれの中間レベルであるＶｉｎｔ２からＶｐｅａｋ３にステップアップし、その後Ｖｉｎｉｔｉａｌにステップダウンする。Ｖｉｎｔ１＝Ｖｉｎｔ２である場合など、他のバリエーションもあり得る。
【００８２】
図１０は、図９ａなどに記載された複数セットのサブパルスを使用して不揮発性メモリをプログラムするための方法の一実施形態を記載したフローチャートである。ステップ１０００で、コントローラによって「データロード」コマンドが発行され、入力が制御回路４１０（図４）によって受信される。ステップ１００２で、ページアドレスを指定するアドレスデータが、コントローラ又はホストからデコーダ４１４に入力される。ステップ１００４で、アドレス指定されたページ用のプログラムデータのページが、プログラミングのためにデータバッファに入力される。そのデータは、適切な１セットのラッチでラッチされる。ステップ１００６で、コントローラによって「プログラム」コマンドが状態マシン４１２に発行される。
【００８３】
ステップ１００４でラッチされたデータは、「プログラム」コマンドによってトリガーされ、例えば適切な選択されたワードラインに印加される図９ａのプログラミング波形９００に示す複数セットのステップ変動プログラムパルスを使用して、状態マシン４１２によって制御された選択された記憶素子にプログラムされる。ステップ１００８で、プログラム電圧Ｖｐｇｍが初期値（例えば１２Ｖ又は他の値）に初期化され、状態マシン４１２によって維持されるプログラムカウンタ（ＰＣ）がゼロに初期化される。ＰＣは、印加された複数セットのサブパルスと孤立パルスとの総数である。ステップ１０１０で、１セットあたりのサブパルスの初期数が設定される。図９ａの実施例では、これが１セットあたり４つのサブパルスである。ステップ１０１６で、選択されたワードラインに１セットのプログラムサブパルスを印加して、選択されたワードラインと関連付けられた記憶素子のプログラミングを開始する。対応する記憶素子がプログラムされる必要があることを示す特定のデータラッチに論理「０」が記憶されている場合には、対応するビットラインが接地される。その一方で、対応する記憶素子が自身の現在のデータ状態に留まる必要があることを示す特定のラッチに論理「１」が記憶されている場合には、対応するビットラインがプログラミングを禁止するために１．５〜３Ｖに接続される。
【００８４】
ステップ１０２０で、選択された記憶素子の状態が検証動作で検証される。選択された記憶素子の目標閾値電圧が適切な検証レベルに達したことが検出されると、対応するデータラッチに記憶されたデータが論理「１」に変更される。閾値電圧が適切な検証レベルに達していないことが検出された場合には、対応するデータラッチに記憶されたデータが変更されない。このように、自身の対応するデータラッチに記憶された論理「１」を有するビットラインは、プログラムされる必要がない。データラッチの全てが論理「１」を記憶しているとき、状態マシンは、全ての選択された記憶素子がプログラムされたことを把握する。ステップ１０２２で、目標データ状態に達した記憶素子が追跡される。上記のとおり、これは、サブパルスが少ないセットへの移行及び／又は孤立パルスへの移行をトリガーする目的で使用される一つ以上のトリガーデータ状態に対して行われ得る。例えば、ステップ１０２２で、トリガー検証レベルに達していることが検証された追加記憶素子、あるいはトリガー検証レベルに達していることが検証されなかった追加記憶素子の数に基づいてカウントが更新され得る。このようにして、目標データ状態に対するプログラミングの完了度が判定される。ステップ１０２３で、ステップ１０２２に基づき、１セットあたりのサブパルスの数の変化、あるいは図９ａに関して述べたような孤立パルスへの切り替えをトリガーする適合的基準が満たされたかどうかが判定される。４状態の実装例において、これは、例えば、検証レベルをパスしたＡ状態又はＢ状態記憶素子の数を含み得る。
【００８５】
ステップ１０２４で、データラッチの全てが論理「１」を記憶しているかどうかが確認される。データラッチの全てが論理「１」を記憶していれば、検証動作にパスしたということであり、全ての選択された記憶素子がプログラムされ、かつ検査されたことから、プログラミング処理は完了し、成功している。「パス」という状態がステップ１０２６で報告される。いくつかの実施形態では、図５におけるビット無視領域に関して述べたとおり、一部の選択された記憶素子がプログラミング中であると検証されなかった場合であっても、プログラミング処理は完了し、成功したとみなされる。このような場合には、不十分にプログラムされた記憶素子が原因で、以降の読み込み動作中にエラーが発生し得る。ただし、これらのエラーはＥＣＣによって訂正することができる。
【００８６】
ステップ１０２４で、データラッチの一部が論理「１」を記憶していないと判定された場合には、プログラミング処理が続行する。いくつかの実施形態では、データラッチの一部が論理「１」を記憶していない場合であっても、プログラム処理が停止する。判定ステップ１０２８で、プログラムカウンタＰＣがプログラム制限値ＰＣｍａｘと照合される。プログラム制限値の一例は２０だが、他の数を使用することもできる。プログラムカウンタＰＣがＰＣｍａｘよりも大きければ、プログラム動作は失敗しており、「失敗」という状態がステップ１０３０で報告される。プログラムカウンタＰＣがＰＣｍａｘ未満であれば、ステップ１０３２が実行され、プログラムカウンタＰＣが１増分されて、ＶｐｇｍがステップサイズΔＶｐｇｍだけ増分される。この処理はステップ１０１１でも続行し、ＰＣが１セットあたりのサブパルスの数の変化、あるいは孤立パルスへの切り替えをトリガーするかどうかが判定される。なお、１セットあたりの数が少ないサブパルスに切り替える時期及び／又は孤立パルスに切り替える時期を判定するにあたっては、固定的基準と適合的基準の両方が使用されるか、固定的基準だけが使用されるか、あるいは適合的基準だけが使用されるように、ステップ１０１１及び１０２２／１０２３が組み合わせて使用され得る。
【００８７】
判定ステップ１０１２で、１セットのサブパルスを印加すべきか、あるいは孤立プログラムパルスを印加すべきかが判定される。このステップは、例えばステップ１０１１及び／又は１０２２／１０２３に応答することができる。
【００８８】
判定ステップ１０１２で、別の１セットのサブパルスが印加されるべきと判定された場合には、ステップ１０１４でそのセットにおけるサブパルスの数が設定される。例えば、あるセットにおけるサブパルスの数は、前回のループから一定に保つか、あるいは変更することができる。ステップ１０１６で、次のセットのサブパルスが印加される。判定ステップ１０１２で、孤立パルスが印加されるべきと判定された場合には、ステップ１０１８で、選択されたワードラインに孤立パルスが印加される。どちらの場合でも、ステップ１０２０で検証動作が再度実行される。
【００８９】
したがって、一実施形態では、不揮発性記憶システムにおけるプログラミングの方法が提供される。本方法は、１セットの不揮発性記憶素子のうちの選択された不揮発性記憶素子に関するプログラミング動作において、複数セットのプログラムサブパルスを選択された不揮発性記憶素子に印加することを含む。そのセットの不揮発性記憶素子は、１セットのワードラインと通信し、複数セットのプログラムサブパルスは、そのセットのワードラインのうちの選択されたワードラインを介して、選択された不揮発性記憶素子に印加される。各セットのプログラムサブパルスは、共通の開始レベル（０Ｖ）からそれぞれのピークレベルに移行し、その後、開始レベルに戻らずに開始レベルとそれぞれのピークレベルとの間にあるそれぞれの中間レベルに移行する初回サブパルスと、それぞれの中間レベルからそれぞれのピークレベルに移行し、その後共通の開始レベルに移行する最終サブパルスと、を備える。本方法は、複数セットのプログラムサブパルスの少なくとも一つに続き、選択された不揮発性記憶素子のうちの少なくとも一つに対するプログラミング動作中に検証動作を実行することをさらに含む。
【００９０】
別の実施形態では、不揮発性記憶システムが、１セットの不揮発性記憶素子と、そのセットの不揮発性記憶素子のうちの選択された不揮発性記憶素子と通信する選択されたワードライン等、そのセットの不揮発性記憶素子と通信する１セットのワードラインとを含む。少なくとも一つの制御回路が、そのセットのワードラインと通信する。少なくとも一つの制御回路は、選択された不揮発性記憶素子に関わるプログラミング動作に関して、選択されたワードラインを介して、複数セットのプログラムサブパルスを選択された不揮発性記憶素子に印加するステップを実施する。各セットのプログラムサブパルスは、共通の開始レベル（０Ｖ）からそれぞれのピークレベルに移行し、その後、開始レベルに戻らずに、開始レベルとそれぞれのピークレベルとの間にあるそれぞれの中間レベルに移行する初回サブパルスと、それぞれの中間レベルからそれぞれのピークレベルに移行し、その後共通の開始レベルに移行する最終サブパルスを備える。少なくとも一つの制御回路はまた、それら複数セットのプログラムサブパルスのうちの少なくとも一つに続き、選択された不揮発性記憶素子のうちの少なくとも一つに対するプログラミング動作中に検証動作も実行する。
【００９１】
別の実施形態では、不揮発性記憶システムにおけるプログラミングの方法が、１セットのプログラムサブパルスを１セットの不揮発性記憶素子のうちの選択された不揮発性記憶素子に印加するステップを含む。その１セットのプログラムサブパルスは、共通の開始レベル（０Ｖ）からそれぞれのピークレベルに移行し、その後、開始レベルに戻らずに、開始レベルとそれぞれのピークレベルとの間にあるそれぞれの中間レベルに移行する初回サブパルスと、それぞれの中間レベルからそれぞれのピークレベルに移行し、その後共通の開始レベルに移行する最終サブパルスとを含むそれぞれの振幅を有する複数のサブパルスを備える。その後、本方法は、選択された不揮発性記憶素子に別のセットのプログラムサブパルスを印加することを含む。別のセットのプログラムサブパルスは、それぞれの振幅を有する複数のサブパルスを備えるが、前の１セットのプログラムサブパルスよりもサブパルスが少ない。別のセットのプログラムサブパルスの複数のサブパルスは、共通の開始レベル（０Ｖ）からそれぞれのピークレベルに移行し、その後、開始レベルに戻らずに、開始レベルとそれぞれのピークレベルとの間にあるそれぞれの中間レベルに移行する初回サブパルスと、それぞれの中間レベルからそれぞれのピークレベルに移行し、その後共通の開始レベルに移行する最終サブパルスと、を含む。本方法は、１セットのプログラムサブパルスと別のセットのプログラムサブパルスとの間に、選択された不揮発性記憶素子のうちの少なくとも一つに対するプログラミング動作中に検証動作を実行することをさらに含む。
【００９２】
本明細書で提供される方法を実施するための対応する方法、システム及びコンピュータ又はプロセッサ可読記憶デバイスを説明した。
【００９３】
前述の詳細な説明は、例示及び説明を目的として提示されている。これは、網羅的なものでなく、開示されたとおりの形態に限定されるものでもない。上記の教示に照らした多くの修正例及び変形例が考えられる。記載した実施形態は、技術及びその実際的応用の原理を最もよく説明し、当業者が様々な実施形態で、検討される特定の使用に適するように様々に修正して技術を最もよく利用しうるように選定された。技術の範囲は、本明細書に添付される特許請求の範囲によって規定されるものとする。
【図１ａ】
2013524400.tif 000003
【図１ｂ】
2013524400.tif 000004
【図１ｃ】
2013524400.tif 000005
【図２】
2013524400.tif 000006
【図３】
2013524400.tif 000007
【図４】
2013524400.tif 000008
【図５】
2013524400.tif 000009
【図６】
2013524400.tif 000010
【図７ａ】
2013524400.tif 000011
【図７ｂ】
2013524400.tif 000012
【図７ｃ】
2013524400.tif 000013
【図８】
2013524400.tif 000014
【図９ａ】
2013524400.tif 000015
【図９ｂ】
2013524400.tif 000016
【図９ｃ】
2013524400.tif 000017
【図９ｄ】
2013524400.tif 000018
【図１０】
2013524400.tif 000019
【国際調査報告】
2013524400.tif 000020
2013524400.tif 000021
2013524400.tif 000022