(57)【要約】  不揮発性メモリの雑／高精度プログラミングが提供される。そのプログラミングでは、メモリセルは、それらの目標とする状態に対する雑検証レベルに到達するのに先立ってプログラミングの第１速度でプログラムされ、それらの目標とする状態に対する雑検証レベルに到達した後であって最終検証レベルに到達する前はプログラミングの第２速度でプログラムされる。小さいメモリセルに関する大きな閾値下スイングファクタは、特に、異なるセンシングの間でビットラインをプリチャージすることなく雑検証レベルにて計測した後に高精度検証レベルでセンシングするときに、センス動作の精度に影響する。雑検証レベルと最終検証レベルでのセンシングのときに異なる参照電位が用いられる。参照電位の差は雑レベルセンシングにおけるビットラインの放電による電圧低下を補償する。
2010532541.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリをプログラムする方法であり、
一組の不揮発性記憶素子の１以上の記憶素子を特定状態にプログラムするために前記一組の不揮発性記憶素子へ１以上のプログラミングパルスを印加すること、
各プログラミングパルスを印加した後に、前記一組の記憶素子に第１電圧を印加し、前記１以上の記憶素子の夫々のビットライン電圧を第１参照電位と比較することによって、前記特定状態に対応した中間検証レベルへの前記１以上の記憶素子のプログラミングを検証すること、
各プログラミングパルスを印加した後に、前記一組の記憶素子に第２電圧を印加し、前記１以上の記憶素子の夫々の前記ビットライン電圧を第２参照電位と比較することによって、前記特定状態に対応した最終検証レベルへの前記１以上の記憶素子のプログラミングを検証すること、を含み、
前記第２参照電位は、前記「中間参照レベルへのプログラミングを検証すること」から生じる、前記１以上の記憶素子の夫々の前記ビットライン電圧の低下を補償することを特徴とする方法。
【請求項２】
前記第２参照電位は、前記１以上の記憶素子が前記中間検証レベル以上のときに、前記「中間参照レベルへのプログラミングを検証すること」から生じる、前記１以上の記憶素子の夫々の前記ビットライン電圧の低下を補償するレベルで供給されることを特徴とする請求項１の方法。
【請求項３】
前記第２参照電位は、前記第１電圧が印加された前記１以上の記憶素子が前記中間検証レベル以上のときに前記１以上の不揮発性記憶素子のビットラインが放電する電荷量に本質的に等しい分だけ、前記第１参照電圧よりも低いことを特徴とする請求項１の方法。
【請求項４】
前記第２参照電位は、前記第１電圧が印加されたときに前記中間検証レベル以上である記憶素子のビットライン放電の電荷量に本質的に等しい分だけ、前記第１参照電圧よりも低いことを特徴とする請求項１の方法。
【請求項５】
各プログラミングパルスを印加した後であって前記中間検証レベルへのプログラミングを検証する前に、前記１以上の記憶素子と接続している一組のビットラインをプリチャージすること、
をさらに備え、前記中間検証レベルへのプログラミングを検証することは、
前記一組のビットラインと前記１以上の記憶素子と接続している一組の選択ゲートを開放すること、
前記一組の選択ゲートを開放することに続く既定時間の間前記１以上の記憶素子の夫々の前記ビットライン電圧をセンシングすること、を含み、
前記最終検証レベルへのプログラミングを検証することは、
前記一組の選択ゲートを開放することに続く異なる既定時間の間前記１以上の記憶素子の夫々の前記ビットライン電圧をセンシングすることを含む、
ことを特徴とする請求項１の方法。
【請求項６】
前記一組の不揮発性記憶素子は、第１ワードラインと接続されており、前記一組のビットラインは、ビットラインのグループ内の一つおきのビットラインを含むことを特徴とする請求項５の方法。
【請求項７】
各プログラミングパルスを印加した後であって前記中間検証レベルへのプログラミングを検証する前に、前記１以上の記憶素子と接続している一組のビットラインをプリチャージすること、をさらに備え、
前記最終検証レベルへのプログラミングを検証することは、前記中間検証レベルへのプログラミングを検証することの後に前記一組のビットラインをプリチャージすることを含まない、
ことを特徴とする請求項１の方法。
【請求項８】
前記一組のビットラインは、ビットラインのグループ内の一つおきのビットラインを含むことを特徴とする請求項７の方法。
【請求項９】
前記一組の１以上の異なる記憶素子を異なる状態にプログラムするために前記一組へ１以上の付加的なプログラミングパルスを印加すること、
各付加的なプログラミングパルスを印加した後に、前記異なる状態に対応した異なる最終検証レベルへの前記１以上の記憶素子のプログラミングを検証すること、を含み、
前記異なる最終検証レベルは、前記特定状態に対する前記最終検証レベルと前記中間検証レベルよりも高い、
ことを特徴とする請求項１の方法。
【請求項１０】
前記中間検証レベルは雑検証電圧であることを特徴とする請求項１の方法。
【請求項１１】
不揮発性メモリシステムであり、
一組の不揮発性記憶素子と、
前記一組の記憶素子と接続している管理回路とを備え、
前記管理回路は、
前記一組の１以上の記憶素子を特定状態にプログラムするために前記一組へ１以上のプログラミングパルスを印加し、
各プログラミングパルスを印加した後に、前記管理回路は、前記一組の記憶素子に第１電圧を印加し、前記１以上の記憶素子の夫々のビットライン電圧を第１参照電位と比較することによって、前記特定状態に対応した中間検証レベルへの前記１以上の記憶素子のプログラミングを検証し、
各プログラミングパルスを印加した後に、前記管理回路は、前記一組の記憶素子に第２電圧を印加し、前記１以上の記憶素子の夫々の前記ビットライン電圧を第２参照電位と比較することによって、前記特定状態に対応した最終検証レベルへの前記１以上の記憶素子のプログラミングを検証し、
前記第２参照電位は、前記「中間参照レベルへのプログラミングを検証すること」から生じる、前記１以上の記憶素子の夫々の前記ビットライン電圧の低下を補償することを特徴とする不揮発性メモリシステム。
【請求項１２】
前記管理回路は、前記１以上の記憶素子が前記中間検証レベル以上のときに、前記「中間参照レベルへのプログラミングを検証すること」から生じる、前記１以上の記憶素子の夫々の前記ビットライン電圧の低下を補償するレベルでの第２参照電位を供給することを特徴とする請求項１１の不揮発性メモリシステム。
【請求項１３】
前記第２参照電位は、前記第１電圧が印加された前記１以上の記憶素子が前記中間検証レベル以上のときに前記１以上の不揮発性記憶素子のビットラインが放電する電荷量に本質的に等しい分だけ、前記第１参照電圧よりも低いことを特徴とする請求項１１の不揮発性メモリシステム。
【請求項１４】
前記第２参照電位は、前記第１電圧が印加されたときに前記中間検証レベル以上である記憶素子のビットライン放電の電荷量に本質的に等しい分だけ、前記第１参照電圧よりも低いことを特徴とする請求項１１の不揮発性メモリシステム。
【請求項１５】
前記１以上の記憶素子と前記管理回路と接続している一組のビットラインと、
前記一組のビットラインと前記１以上の記憶素子と接続している一組の選択ゲートと、をさらに備えており、
前記管理回路は、各プログラミングパルスを印加した後であって前記中間検証レベルへのプログラミングを検証する前に、前記一組のビットラインをプリチャージし、
前記管理回路は、前記一組の選択ゲートを開放し、前記一組の選択ゲートを開放することに続く既定時間の間前記１以上の記憶素子の夫々の前記ビットライン電圧をセンシングすることによって、前記中間検証レベルへのプログラミングを検証し、
前記管理回路は、前記一組の選択ゲートを開放することに続く異なる既定時間の間前記１以上の記憶素子の夫々の前記ビットライン電圧をセンシングすることによって、前記最終検証レベルへのプログラミングを検証する、
ことを特徴とする請求項１１の不揮発性メモリシステム。
【請求項１６】
前記一組の不揮発性記憶素子と接続している第１ワードラインをさらに備えており、前記一組のビットラインは、ビットラインのグループ内の一つおきのビットラインを含むことを特徴とする請求項１５の不揮発性メモリシステム。
【請求項１７】
前記１以上の記憶素子と接続している一組のビットラインをさらに備えており、
前記管理回路は、各プログラミングパルスを印加した後であって前記中間検証レベルへのプログラミングを検証する前に、前記一組のビットラインをプリチャージし、
前記管理回路は、前記最終検証レベルへのプログラミングを検証するために、前記中間検証レベルへのプログラミングを検証した後に前記一組のビットラインをプリチャージしない、
ことを特徴とする請求項１１の不揮発性メモリシステム。
【請求項１８】
前記一組のビットラインは、ビットラインのグループ内の一つおきのビットラインを含むことを特徴とする請求項１７の不揮発性メモリシステム。
【請求項１９】
前記一組の不揮発性記憶素子は、一組のＮＡＮＤフラッシュメモリセルであることを特徴とする請求項１１の不揮発性メモリシステム。
【請求項２０】
前記中間検証レベルは雑検証電圧であることを特徴とする請求項１１の不揮発性メモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリにおけるプログラミングに関する。
【背景技術】
【０００２】
半導体メモリデバイスは、様々な電子デバイスに使用されることが一般的になってきている。例えば、不揮発性半導体メモリは、携帯電話、デジタルカメラ、パーソナルデジタルアシスタント、モバイルコンピュータ、非モバイルコンピュータ及び他の装置に使用されている。フラッシュＥＥＰＲＯＭを含む電気的消去・再書込み可能型読取専用メモリ（EEPROM）と電気的書込み可能読取専用メモリ（EPROM）は、最も普及している不揮発性半導体メモリの一つである。
【０００３】
ＥＥＰＲＯＭとＥＰＲＯＭメモリは、半導体基板内のチャネル領域上に配置され、そのチャネル領域から絶縁されているフローティングゲートを採用している。フローティングゲートは、ソース領域とドレイン領域の間に配置されている。フローティングゲートの上に、そのフローティングゲートから絶縁されている制御ゲートが設けられている。トランジスタの閾値電圧は、フローティングゲート上に保持されている電荷量によって制御される。即ち、そのソースとドレインの間の導通を可能にすべくトランジスタをオンするために制御ゲートに印加すべき電圧の最小量は、そのフローティングゲート上の電荷量レベルにより制御される。
【０００４】
フラッシュメモリデバイスをプログラミングする場合、典型的には、ビットラインが接地されるとともに、制御ゲートにプログラム電圧が加えられる。電子がチャネルからのフローティングゲートへ注入される。フローティングゲートに電子が蓄積されると、フローティングゲートが負値に帯電し、メモリセルの閾値電圧が上昇し、メモリセルがプログラム状態となる。
【０００５】
幾つかのＥＥＰＲＯＭとフラッシュメモリデバイスは、２つの帯電範囲を格納するために用いられるフローティングゲートを有しており、それゆえ、そのようなメモリセルは、２つの状態（消去状態とプログラム状態）の間でプログラム／消去を行うことができる。
例えば、図１は、２つの閾値電圧区分を示すグラフである。ｘ軸は、閾値電圧を示しており、ｙ軸はメモリセルの数を示している。区分２の閾値電圧はゼロボルトより小さい。一実施形態では、閾値電圧区分２は、消去状態のメモリセルに相当し、データ「１」を記憶する。区分４の閾値電圧は、ゼロボルトより大きい。一実施形態では、閾値電圧区分４は、プログラム状態のメモリセルに相当し、データ「０」を記憶する。
【０００６】
マルチステートフラッシュメモリセルは、禁止電圧範囲で分離された複数の区分された許可閾値電圧範囲を特定することによって、実現される。区別される閾値電圧範囲の夫々は、一組のデータビットに対する予め決められた値に対応する。図２は、４つのデータ状態を使って２ビットデータを記憶するメモリセルの閾値電圧区分を示している。一実施形態では、閾値電圧区分２は、（例えば「１１」を記憶する）消去状態にあるメモリセルを表しており、負の閾値電圧レベルを有する。閾値電圧区分１０は、データ「１０」を記憶するメモリセルを示しており、正の閾値電圧レベルを有する。閾値電圧区分１２は、データ「００」を記憶するメモリセルを示している。閾値電圧区分１４、データ「０１を記憶するメモリセルを示している。（上記例示したように）幾つかの実装形態では、それらのデータ値（例えば論理状態）は、グレイコード割り当てを用いて閾値電圧群に割り当てられ、フローティングゲートの閾値電圧が誤って隣の物理状態にシフトしてしまった場合でも、その影響が１つの論理ビットにだけ及ぶようにすることができる。他の実施形態では、各区分は上述したデータ状態とは異なるデータ状態に対応することができる。メモリセルにプログラムされるデータとセルの閾値電圧範囲の特定の関係は、メモリセルに適用されるデータ符号化技法に依存する。例えば、米国特許第６，２２２，７６２号、及び、２００３年６月１３日出願の米国特許出願第１０／４６１，２４４、“Tracking Cells For A Memory System”、は、マルチステートフラッシュメモリセルの様々な符号化技法を開示しており、その両者は、その全体を参照することにより本明細書に組み込まれる。また、本明細書の開示に基づいた実施形態は、２データビット以上のデータビットを記憶するメモリセルに適用することができる。
【０００７】
閾値電圧区分２と４は、検証動作が用いられないときの消去された電圧区分とプログラムされた電圧区分を示している。これらの区分は、一つのプログラミングパルス或いは消去パルスでメモリセルをプログラミング或いは消去することによって得られる。メモリアレイサイズと生産プロセスの変動に依存して、閾値電圧区分４は、ナテュラルＶｔｈ幅と呼ばれる、ある程度の幅を持つ。
【０００８】
図２に示されているとおり、（マルチステートデバイスに対するプログラミングに相当する）区分１０、１２、及び、１４は、区分４のナテュラルＶｔｈ幅よりもずっと狭帯であることを必要である。狭い閾値電圧区分を得るために、図３Ａ、３Ｂ、及び３Ｃに示されるような、複数のプログラミングパルスと検証動作を用いた工程が用いられる。
【０００９】
図３Ａは、一連のパルス列として制御ゲートに印加されるプログラミング電圧信号Ｖｐｇｍを示している。パルスの大きさは、連続するパルス毎に、予め定められたステップサイズ（例えば０．２Ｖ−０．４Ｖ）ずつ増大する。図３Ａでは、ステップサイズはΔＶｐｇｍで示されている。パルスとパルスの間の期間において、検証動作が実行される。プログラムすることができる状態数の増加に伴って、検証動作の数も増加し、より長い所要時間が必要となる。時間的負荷を低減する一つの手法は、より効率的な検証動作を採用することである。その一例が、２００２年１２月５日出願の米国特許出願第１０／３１４，０５５、“Smart Verify For Multi-State Memories”に開示されている。その内容の全ては参照により本明細書に組み込まれる。実際、図３Ａに示すパルス群は、所定の時間期間で分離されており、その時間期間の間に検証動作が実行される。しかしならが、図３を理解し易くするために、検証のための時間間隔は図示を省略してある。
【００１０】
図３Ｂは、プログラムされるメモリセルに対応するビットラインに印加される電圧信号を示している。図３Ｃは、プログラムされるメモリセルの閾値電圧を示している。図３Ｃのグラフは、理解を助けるために平滑化されていることに留意されたい。夫々のプログラミングパルスの後に、検証動作が実行される（不図示）。検証動作において、プログラムされるべきメモリセルの閾値電圧がチェックされる。そのメモリセルの閾値電圧が目標値（例えば、Ｖｖｅｒｉｆｙ）よりも大きい場合、（例えば、時刻ｔ４で）ビットライン電圧を０ＶからＶｉｎｈｉｂｉｔに引き上げることによって、次のサイクルにおけるそのメモリセルへのプログラミングが禁止される。
【発明の概要】
【発明が解決しようとする課題】
【００１１】
他の電子デバイスと同様に、メモリデバイスに対してはできるだけ早くプログラムできることが望まれている。例えば、フラッシュメモリに画像を記憶するデジタルカメラのユーザは、写真と写真の間に無用に長い時間がかかることは望まない。加えて、相応の速度でプログラミングするためには、マルチステートメモリセルの適切なデータ記憶装置を実現するためには、マルチステートメモリセルの閾値電圧の複数の範囲は、十分なマージンを持って相互に分離されていなければならない。そうでなければ、メモリセルのレベルは、明確な方法でプログラミングしたり読み出したりすることができない。狭い閾値電圧区分が望まれている。狭帯域の閾値電圧区分を得るために、典型的には小さなプログラムステップが採用される。そのため、セルの閾値電圧をプログラミングすることが遅くなる。閾値電圧区分を狭くすることは、ステップを小さくすることにつながり、プログラミングプロセスを遅くすることにつながる。
【００１２】
プログラミングプロセスを不用意に遅くすることなく、狭帯の閾値電圧区分を得る一つの方法は、２フェイズプログラミングプロセスを用いることである。第１フェイズ、雑プログラミングフェイズは、狭帯の閾値電圧区分を得ることにはさほど注意を払わず、より早く閾値電圧を引き上げようとするものである。第２フェイズ、高精度（ファイン）プログラミングフェイズは、目的の閾値電圧に到達するためにより遅い手法で閾値電圧を引き上げる。その結果、狭帯域氏閾値電圧区分が得られる。雑／高精度プログラミング技法の一例は、米国特許第６，６４３，１８８に開示されており、その全体は参照により本明細書に組み込まれる。
【００１３】
図４と５は、雑／高精度プログラミング技法の一例の詳細を示す図である。図４Ａと５Ａは、制御ゲートに印加されるプログラミングパルスＶｐｇｍを示している。図４Ｂと５Ｂは、プログラムされるメモリセルのビットライン電圧を示している。図４Ｃと５Ｃは、プログラムされるメモリセルの閾値電圧を示している。図４と５の例は、図中ＶｖＡ１、ＶｖＡ２で示される２つの検証レベルを使った、状態Ａへのメモリセルのプログラミングを示している。最終的な目標レベルはＶｖＡ２である。メモリセルの閾値電圧がＶｖＡ２に到達すると、そのメモリセルに対応するビットラインに禁止電圧を印加することによって、そのメモリセルはそれ以上のプログラミングが禁止される。例えば、ビットライン電圧はＶｉｎｈｉｂｉｔに引き上げられる（図４Ｂ、５Ｂを参照）。しかしながら、メモリセルが目標値ＶｖＡ２に近づくと（しかし目標値よりは低い）、ビットラインに所定の大きさ、典型的には０．３Ｖから０．８Ｖのオーダーのバイアス電圧が印加され、その後のプログラミングパルスの間のそのメモリセルの閾値電圧シフトは遅くなる。次のいくつかのプログラミングパルスの間は閾値電圧シフトの速度が遅くなるので、最終的な閾値電圧区分は図３に示した方法の場合よりも狭くすることができる。この方法を実装する場合、ＶｖＡ２よりも低い第２検証レベルが用いられる。この第２検証レベルは、図４と５に、ＶｖＡ１として示されている。メモリセルの閾値電圧がＶｖＡ１よりも大きく、しかしまだＶｖＡ２より小さい場合、ビットラインバイアスＶｓ（図５Ｂ）を印加することによって、その後のプログラミングパルスにおけるメモリセルの閾値電圧シフトが小さくなる。この場合、各状態に対して２つの検証動作が必要であることに留意されたい。雑／高精度プログラミング技法が適用される各状態に対する最終検証レベル（例えば、ＶｖＡ２）に対応する検証動作が一つであり、各状態に対する第２検証レベル（例えばＶｖＡ１）に対応する検証レベルが一つである。このことは、メモリセルをプログラムするために必要とされる総時間を増加させる。しかしながら、このプロセスをスピードアップするために、より大きいΔＶｐｇｍステップサイズを用いることができる。
【００１４】
図４Ａ、４Ｂ、４Ｃは、一つのプログラミングパルスで閾値電圧がＶｖＡ１とＶｖＡ２を超えて移動するメモリセルの振る舞いを示している。例えば、図４Ｃでは、ｔ２とｔ３の間でＶｖＡ１とＶｖＡ２を通過する閾値電圧が示されている。従って、ｔ３以前は、メモリセルは雑フェイズにある。ｔ３の後、メモリセルは禁止モードとなる。
【００１５】
図５Ａ、５Ｂ、５Ｃは、雑／高精度プログラミングフェイズの双方に入るメモリセルを示している。メモリセルの閾値電圧は、時刻ｔ２と時刻ｔ３の間にＶｖＡ１を超える。
ｔ３以前はメモリセルは雑フェイズにある。ｔ３の後、ビットライン電圧はＶｓに引き上げられ、メモリセルは高精度フェイズに入る。ｔ３とｔ４の間で、メモリセルの閾値電圧は、ＶｖＡ２を超える。そのため、ビットライン電圧がＶｉｎｈｉｂｉｔに引き上げられ、メモリセルはそれ以降のプログラミングが禁止される。
【００１６】
通常、適切なプログラミング時間を維持するために、雑／高精度プログラミングアルゴリズムは、最高位のメモリセル（最高の正値の閾値電圧範囲）には適用されない。図２の区分１４で表されている状態Ｃのような最高位の状態は、それよりも高い状態と区別する必要がないからである。一般的に、最低の閾値レベルを超える状態にセルをプログラムする場合、次に低い状態（例えば、区分１２で表される状態Ｂ）と区別することが必要である。それゆえ、デバイスパフォーマンスに悪影響を及ぼすことなく、それらのセルの区分は、より広い閾値電圧範囲を占めることができる。しかしながら、幾つかの実装形態では、最高位レベルの状態へプログラミングする場合でも雑／高精度プログラミング技法を使うことがある。
【課題を解決するための手段】
【００１７】
本明細書で説明する技術は、雑／高精度プログラミングを用いるときに、プログラミング検証における不揮発性記憶素子の閾値電圧のより正確な検出（センシング）を提供する。
【００１８】
不揮発性記憶素子の雑／高精度プログラミングでは、メモリセルは、目標の状態に対する雑検証レベルに達するまでは第１プログラミング速度でプログラムされ、目標の状態に対する雑検証レベルを超した後であって最終検証レベルに達する前は第２プログラミング速度でプログラムされる。より小さいメモリセルに関連した大きな閾値下スイングファクタが検出（センシング）動作の精度に影響し得る。特に、異なるセンシングの間でビットラインをプリチャージすることなしに雑検証におけるセンシングの後の高精度検証レベルにおけるセンシングの際に影響し得る。雑検証レベルと高精度検証レベルにおけるセンシングの際に異なる参照電位が用いられる。参照電位の差が、雑レベルセンシングにおけるビットラインのいかなる放電についても補償することができる。
【００１９】
一実施形態は、不揮発性メモリのプログラミング方法を含む。その方法は、一組の特定状態の１以上の記憶素子をプログラムするために一組の不揮発性記憶素子に１以上のプログラムパルスを印加することを含む。各プログラミングパルスを印加したのち、１以上の記憶素子の前記特定状態に対応する中間検証レベルへのプログラミングが、前記一組の記憶素子に第１電圧を印加し、前記１以上の記憶素子の夫々のビットライン電圧を第１参照電位と比較することによって、検証される。各プログラミングパルスを印加した後、前記１以上の記憶素子の前記特定状態に対応する最終検証レベルへのプログラミングの検証が、前記一組の記憶素子に第２電圧を印加し、前記１以上の記憶素子の夫々のビットライン電圧を第２参照電位と比較することによって、実行される。前記第２参照電位は、前記中間検証レベルへのプログラミングの検証に起因して生じた、前記１以上の記憶素子の夫々のビットライン電圧の低下を補償する。
【００２０】
他の実施形態では、次の処理を含む不揮発性記憶素子のプログラミング検証が提供される；不揮発性記憶素子に対応したビットラインを充電（チャージ）すること、前記不揮発性記憶素子についての目標状態に対応する中間検証電圧を前記不揮発性記憶素子に印加すること、前記中間検証電圧を印加している間に前記ビットラインの電圧をセンシング（検出）すること、前記ビットラインの前記電圧を第１参照電位と比較すること、前記不揮発性記憶素子についての前記目標状態に対応する最終検証電圧を前記不揮発性記憶素子に印加すること。前記最終検証電圧が印加されている間であって前記ビットラインがチャージ状態から完全に放電する前に前記ビットラインの電圧をセンシングすること、前記最終検証電圧が印加されている間に前記ビットラインの前記電圧を第２参照電位と比較すること。
【００２１】
一例の実装形態は、一組の不揮発性記憶素子と、その一組の不揮発性記憶素子と通信する１以上の管理回路を含む。その１以上の管理回路は、上述した処理を実行することができる。
【図面の簡単な説明】
【００２２】
【図１】２つの閾値電圧区分を示すグラフである。
【図２】４つの閾値電圧区分を示すグラフである。
【図３Ａ】不揮発性記憶素子の制御ゲートに印加されるプログラミング電圧信号を示す。
【図３Ｂ】ＮＡＮＤストリングのビットラインに印加される電圧信号を示す。
【図３Ｃ】プログラムされる不揮発性記憶素子の閾値電圧を示す。
【図４Ａ】雑／高精度プログラミングの一部として実行されるプログラミングプロセスの一例を示す。
【図４Ｂ】雑／高精度プログラミングの一部として実行されるプログラミングプロセスの一例を示す。
【図４Ｃ】雑／高精度プログラミングの一部として実行されるプログラミングプロセスの一例を示す。
【図５Ａ】雑／高精度プログラミングの一部として実行されるプログラミングプロセスの一例を示す。
【図５Ｂ】雑／高精度プログラミングの一部として実行されるプログラミングプロセスの一例を示す。
【図５Ｃ】雑／高精度プログラミングの一部として実行されるプログラミングプロセスの一例を示す。
【図６】ＮＡＮＤストリングの平面図を示す。
【図７】図６のＮＡＮＤストリングの等価回路を示す。
【図８】不揮発性メモリシステムの一例のブロック図を示す。
【図９】メモリアレイの構造の一例を示す。
【図１０】一実施例で用いられる、検証パルスを含むプログラム電圧信号を示す。
【図１１】一実施例で用いられる、不揮発性メモリをプログラミングする方法のフローチャート図である。
【図１２】フルシーケンスプログラミングプロセスと閾値電圧区分の組の一例を示す。
【図１３】２パスプログラミングプロセスと閾値電圧区分の組の一例を示す。
【図１４Ａ】他の２パスプログラミングプロセスと閾値電圧区分の組の一例を示す。
【図１４Ｂ】他の２パスプログラミングプロセスと閾値電圧区分の組の一例を示す。
【図１４Ｃ】他の２パスプログラミングプロセスと閾値電圧区分の組の一例を示す。
【図１５】プログラムとプログラム検証動作の間にメモリデバイスに印加される種々の信号を示す図である。
【図１６】メモリセルが小さな閾値下スイングファクタを有する場合の検証動作における異なるメモリセルのビットライン電位のグラフである。
【図１７】メモリセルが大きな閾値下スイングファクタを有する場合の検証動作における異なるメモリセルのビットライン電位のグラフである。
【図１８】一実施例の検証動作における異なるメモリセルのビットライン電位のグラフである。
【図１９】一実施例の雑／高精度プログラミングにおけるメモリセルの検証を示すフローチャート図である。
【図２０】一実施例で用いられるメモリデバイスの列制御回路の一部の図である。
【発明を実施するための形態】
【００２３】
本明細書が開示する実施例を実装するのに適したフラッシュメモリシステムの一例は、ＮＡＮＤ構造を用いる。ＮＡＮＤ構造は、２つの選択ゲートの間に直列に配置された複数のトランジスタを備える。直列のトランジスタと選択ゲートは、ＮＡＮＤストリングと呼ばれる。図６は、一つのＮＡＮＤストリングの平面図である。図７は、その等価回路図である。図５と図６が示すＮＡＮＤストリングは、選択ゲート１２０と第２選択ゲート１２２に挟まれている直列に接続された４つのトランジスタ１００、１０２、１０４、及び、１０６を含む。選択ゲート１２０は、ＮＡＮＤストリングをビットラインコンタクト１２６に接続する。選択ゲート１２２は、ＮＡＮＤストリングをソースラインコンタクト１２８に接続する。選択ゲート１２０は、制御ゲート１２０ＣＧに印加される適切な電圧によって制御される。選択ゲート１２２は、制御ゲート１２２ＣＧに印加される適切な電圧によって制御される。トランジスタ１００、１０２、１０４、及び、１０６の夫々は、制御ゲートとフローティングゲートを有する。トランジスタ１００は、制御ゲート１００ＣＧとフローティングゲート１００ＦＧを有する。トランジスタ１０２は、制御ゲート１０２ＣＧとフローティングゲート１０２ＦＧを有する。トランジスタ１０４は、制御ゲート１０４ＣＧとフローティングゲート１０４ＦＧを有する。トランジスタ１０６は、制御ゲート１０６ＣＧとフローティングゲート１０６ＦＧを有する。制御ゲート１００ＣＧはワードラインＷＬ３に接続されており、制御ゲート１０２ＣＧはワードラインＷＬ２に接続されており、制御ゲート１０４ＣＧはワードラインＷＬ１に接続されており、制御ゲート１０６ＣＧはワードラインＷＬ０に接続されている。一実施形態では、トランジスタ１００、１０２、１０４、１０６が夫々メモリセルである。他の実施形態では、メモリセルは複数のトランジスタを含んでおり、図６と７に示すものとは異なっている。選択ゲート１２０は選択ラインＳＧＤに接続されており、選択ゲート１２２は選択ラインＳＧＳに接続されている。
【００２４】
図６と７は、ＮＡＮＤストリング内に４つのメモリセルを示しているが、４つのトランジスタの使用は一例として提供されていることに留意されたい。一つのＮＡＮＤストリングは４個未満のメモリセルを有していてよいし、４個以上のメモリセルを有していてもよい。例えば、ある種のＮＡＮＤストリングは、８個のメモリセル、１６個のメモリセル、３２個のメモリセルを有している、などである。本明細書の技術は、ＮＡＮＤストリング内に特定数のメモリセルを有するものに限定されるものではない。
【００２５】
ＮＡＮＤタイプフラッシュメモリとその動作についての関連する事例は、次の米国特許／特許出願に記載さている。それらの文献の全ては、それらの全体を参照することにより本明細書に組み込まれる：米国特許第５，５７０，３１５、米国特許第５，７７４，３９７、米国特許第６，０４６，９３５、米国特許第５，３８６，４２２、米国特許第６，４５６，５２８、米国特許出願第０９/８９３，２７７（公開番号第ＵＳ２００３/０００２３４８）。自己ブースト技術を含む、ＮＡＮＤフラッシュメモリのプログラミングについての情報は、米国特許出願第１０/３７９，６０８、名称“Self Boosting Technique”、２００３年３月５日出願、及び、米国特許出願第１０/６２９，０６８、名称“Detecting Over Programmed Memory”、２００３年７月２９日出願、に見出される。両方の米国特許出願は、その全体を参照することにより本明細書に組み込まれる。他のタイプのフラッシュメモリデバイスであっても、本発明とともに用いることができる。例えば、次の特許はＮＯＲタイプのフラッシュメモリを記述しており、それらの全体は参照により本明細書に組み込まれる：米国特許第５，０９５，３４４、５，１７２，３３８、５，８９０，１９２、及び、６，１５１，２４８。フラッシュメモリタイプの他の例は、米国特許第６，１５１，２４８で見出すことができ、その全体は参照により本明細書に組み込まれる。
【００２６】
本明細書で説明する技術は、フローティングゲートタイプのメモリに限定されるものではない。例えば、本明細書で説明する技術は、制御ゲート（又はワードライン）と基板の間に存する様々な種類の蓄電（チャージ）領域／層、例えば、非導電誘電性蓄電領域や、ナノ結晶とよばれている小シリコンアイランドを用いるメモリデバイスに適用することができる。
【００２７】
図８は、本明細書が開示する１以上の実施例の実装に用いることができるフラッシュメモリシステムの一実施形態のブロック図である。図８は、一つの例示であり、他のシステムや実装を用いることもできる。メモリセルアレイ３０２は、列制御回路３０４、行制御回路３０６、Ｃ−ソース制御回路３１０、及び、ｐウエル制御回路３０８によって制御される。列制御回路３０４はメモリセルアレイ３０２のビットライン群に接続されており、メモリセルに記憶されているデータを読み出したり、プログラム動作中にメモリセルの状態を決定したり、及び、プログラミングと消去を許容／禁止するためにビットラインの電位レベルを制御するために用いられる。行制御回路３０６は、ワードライン群に接続されており、ワードライン群のひとつを選択したり、読み出し電圧を印加したり、列制御回路３０４が制御するビットライン電位レベルと組み合わされるプログラム電圧を印加したり、消去電圧を印加したりするために用いられる。Ｃ−ソース制御回路３１０は、メモリセルに接続されている共通ソースライン（図９では「Ｃ−ソース」という名称が付されている）を制御する。Ｐウエル制御回路３０８は、ｐ−ウエル電圧を制御する。
【００２８】
メモリセルに記憶されているデータは、列制御回路３０４によって読み出され、データ入力／出力バッファ３１２を介して外部Ｉ／Ｏ線に出力される。メモリセルに記憶すべきプログラムデータ（書込みデータ）は、外部Ｉ／Ｏ線を介してデータ入力／出力バッファ３１２に入力され、列制御回路３０４に転送される。外部Ｉ／Ｏ線は、コントローラ３１８に接続されている。
【００２９】
フラッシュメモリデバイスを制御するための命令データはコントローラ３１８に入力される。命令データは、要求されている動作をフラッシュメモリに伝えるものである。入力命令は、制御回路３１５の一部であるステートマシン３１６に転送される。ステートマシン３１６が、列制御回路３０４、行制御回路３０６、Ｃ−ソース制御３１０、ｐウエル制御回路３０８、及び、データ入力／出力バッファ３１２を制御する。ステートマシン３１６はまた、成功／失敗、或いは、ＲＥＡＤＹ／ＢＵＳＹといった、フラッシュメモリのステータスデータを出力する。
【００３０】
コントローラ３１８は、パーソナルコンピュータ、デジタルカメラ、或いはパーソナルデジタルアシスタントなどのホストシステムと接続される、或いは接続可能である。コントローラ３１８は、上記ホストと通信する。ホストは、メモリアレイ３０２へデータを記憶する命令、或いは、メモリアレイ３０２からデータを読み出す命令を発信し、コントローラ３１８がそのデータを受信する、或いは、提供する。コントローラ３１８は、そのような命令を命令信号に変換し、制御回路３１５の一部である命令回路３１４によってその命令信号が解釈され実行される。命令回路３１４は、ステートマシン３１６と通信することができる。コントローラ３１８は、通常、メモリアレイから読み出すユーザデータ或いはメモリアレイに書き込むユーザデータのためのバッファメモリを有している。
【００３１】
一つの例示的なメモリシステムは、コントローラ３１８を含む一つの集積回路と、夫々がメモリアレイとそれに関連する制御と入出力とステートマシンマシンを含む１以上の集積回路チップを備えている。メモリアレイ群とシステムの制御回路を１以上の集積回路チップに集積する傾向にある。メモリシステムは、ホストシステムの一部として組み込まれることもあり、また、ホストシステムに着脱可能に差し込むことができるメモリカード（或いは他のパッケージ）に含まれることもある。そのようなカードは、メモリシステム全体を含むこともあれば（例えばコントローラを含む）、メモリアレイとそれに関連する周辺回路だけを含むこともある（その場合はホストに組み込まれているコントローラや制御機能と一緒になって機能する）。このように、コントローラは、ホストに組み込まれていてもよいし、着脱可能なメモリシステムに含まれていてもよい。
【００３２】
幾つかの実装形態では、図８の構成要素の幾つかは結合される。様々な設計において、メモリセルアレイ３０２を除く図８の１以上の構成要素は、メモリシステムの管理回路と呼ばれることがある。例えば、１以上の管理回路は、命令回路、ステートマシン、行制御回路、列制御回路、ウエル制御回路、ソース制御回路、データＩ／Ｏ回路、コントローラのいずれか一つ或いはそれらの組み合わせを含んでよい。
【００３３】
図９を参照し、メモリセルアレイ３０２の一例の構造を説明する。この例では、１０２４ブロックに分割されているＮＡＮＤフラッシュＥＥＰＲＯＭを説明する。各ブロックに記憶されているデータは一度に消去される。一実施形態では、ブロックは、一度に消去されるセルの最小単位である。各ブロックは、典型的には、プログラミングの単位となる複数のページに分割される。プログラミングの単位として他の単位を採用することも可能である。一実施形態では、個々のページは複数のセグメントに分割されており、セグメントは、基本的なプログラミング動作として一度に書き込まれる最小数のセル群を含んでいる。通常は、１以上のページのデータが、メモリセルの一つの行に記憶される。
【００３４】
図９の例における各ブロックでは、８５１２列があり、それらは偶数列と奇数列に分割されている。ビットライン群もまた、偶数ビットライン（ＢＬｅ）と奇数ビットライン（ＢＬｏ）に分けられている。奇数／偶数ビットラインアーキテクチャでは、共通ワードラインに沿っており奇数ビットラインに接続されているメモリセル群が一度にプログラムされ、共通ワードラインに沿っており偶数ビットラインに接続されているメモリセル群が別の時刻にプログラムされる。図９では各ＮＡＮＤストリングに４個のセルが含まれるように示されているが、メモリセルは４個以上あるいは４個以下であってもよい。ＮＡＮＤストリングの一端は第１選択トランジスタを介して対応するビットラインに接続されており、その第１選択トランジスタはドレイン選択ゲート制御ラインＳＧＤに接続されている。ＮＡＮＤストリングの他端は第２選択トランジスタを介してＣソースに接続されており、その第２選択トランジスタはソース選択ゲート制御ラインＳＧＳに接続されている。
【００３５】
他の実施形態では、ビットライン群は奇数と偶数のビットラインに分けられていなくともよい。そのようなアーキテクチャは、一般に全ビットラインアーキテクチャと呼ばれている。全ビットラインアーキテクチャでは、読み出し動作とプログラム動作においてブロックの全てのビットラインが同時に選択される。共通ワードラインに沿っておりいずれのビットラインに接続されているメモリセル群も、同時にプログラムされる。
【００３６】
奇数／偶数ビットラインアーキテクチャにおける読み出し動作とプログラミング動作の一実施形態では、４２５６メモリセルが同時に選択される。選択されたメモリセル群は、同一のワードラインと同種のビットライン（即ち、偶数ビットライン又は奇数ビットライン）を有する。それゆえ、５３２バイトのデータを同時に読み出し得る、或いは、プログラムし得る。それら同時に読み出され或いはプログラムされる５３２バイトのデータは、一論理ページを構成する。それゆえ、一ブロックは少なくとも８論理ページ（４ワードラインの夫々が偶数ページと奇数ページを有する）を記憶し得る。各メモリセルが２ビットデータを記憶するとき（即ちマルチステートメモリセルの場合）、２ビットの夫々が異なるページに記憶され、一ブロックが１６論理ページを記憶する。本発明は、他のブロックサイズやページ数であっても適用し得る。また、図８や図９に示した以外のアーキテクチャであっても本明細書が開示する技術の実施形態に用いることができる。
【００３７】
メモリセルは、ｐウエルを消去電圧（例えば２０ボルト）まで上げるとともに、選択ブロックのワードラインをグランドに落とすことによって消去される。ソースとビットラインはフローティング状態とする。消去は、メモリアレイ全体、分割されたブロック、或いは他のセル単位で実行されることができる。電子がフローティングゲートからｐウエルに移動し、（一実施形態において）閾値電圧が負値となる。
【００３８】
メモリセルをプログラミングする際、一例では、ドレインとｐウエルが０Ｖの供給を受けたまま、制御ゲートが、大きさが増加していく一連のプログラミングパルスを受ける。一実施形態では、一連のパルスの大きさは１２Ｖから２４Ｖの範囲である。他の実施形態では、一連のパルスの範囲はそれとは異なっていてもよく、例えば、１２Ｖよりも高いレベルから開始してもよい。メモリセルのプログラミングにおいて、プログラミングパルスの間の期間に検証動作が実行される。即ち、並行してプログラムされるべき一群のセルの各々のセルのプログラミングレベルは、各プログラミングパルスの間に読み出され、現在のプログラミングに相当する検証レベルに達したか或いは超えたかが判定される。プログラミングを検証する一つの手段は、特定の比較ポイントにおいて導通をテストすることである。十分にプログラムされたことが検証されたセルは、例えばＮＡＮＤセルでは後続の全てのプログラミングパルスに対してビットライン電圧が０からＶＤＤ（例えば２．５Ｖ）に引き上げられて除外（ロックアウト）され、それらのセルについてはプログラミング処理が完了する。幾つかの場合では、パルス数が（例えば２０パルスに）制限され、最後のパルスでも対象のメモリセルが十分にプログラムされない場合は、エラーとされる。幾つかの実装形態では、メモリセルは（ブロック単位或いは他の単位で）プログラミングに先立って消去される。
【００３９】
図１０は、一実施例におけるプログラム電圧信号を示している。この信号は、大きさが増加していく一連のパルス群を含む。パルスの大きさは、パルス毎に予め定められたステップサイズで増加する。複数ビットのデータを記憶するメモリセルを含む一実施例では、一例としてのステップサイズは０．２Ｖ（或いは０．４Ｖ）である。各プログラムパルスの間には検証パルスがある。図１０の信号は、４状態メモリセルを想定しており、そのため、３つの検証パルスを含む。例えば、プログラミングパルス３３０と３３２に間において、３個の連続する検証パルスがある。第１検証パルス３３４は、ゼロボルト検証電圧レベルで描かれている。第２検証パルス３３６は第１検証パルスに続いており、第２検証電圧レベルである。第３検証パルス３３８は、第２検証パルス３３６に続いており、第３検証電圧レベルである。データを８状態で記憶することができるマルチステートメモリセルは、７個の比較ポイントで検証動作を実行する必要がある。それゆえ、２つの連続するプログラミングパルスの間で、７個の検証パルスが順次に印加され、７つの検証レベルで７つの検証動作が実行される。７つの検証動作に基づいて、システムはそのメモリセルの状態を判定する。検証の時間的負荷を軽減する一つの手段は、より効率的な検証処理を用いることであり、それは例えば、次の文献に開示されている：米国特許出願第１０／３１４，０５５号、発明の名称は“Smart Verify for Multi-State Memories,”、２００２年１２月５日出願；米国特許出願第１１／２５９，７９９、発明の名称は“Method for Programming of Multi-State Non-Volatile Memory Using Smart Verify”、２００５年１０月２７日出願；米国特許出願第１１／２６０，６５８、発明の名称は“Apparatus for Programming of Multi-State Non-Volatile Memory Using Smart Verify”、２００５年１０月２７日。それら全ての文献は、それらの全体を参照することにより本明細書に組み込まれる。
【００４０】
図１１は、不揮発性メモリを書き込むための方法の一実施形態を示すフローチャートである。書き込み対象のメモリセルはステップ３４０にて消去される。ステップ３４０は、プログラム対象のメモリセルよりも多くのメモリセル（例えばブロック単位、又は他の単位）を消去することを含んでいてよい。ステップ３４２では、消去されたメモリセルに対して消去した閾値電圧の区分を狭めるソフトプログラムが実行される。消去処理の結果、いくつかのメモリセルが必要以上に深く消去されてしまう可能性がある。ソフトプログラムは、小さなプログラミングパルスを印加して、消去されたメモリセルの閾値電圧を消去検証レベルに近付ける。図１１のステップ３５０では、「データロード」命令がコントローラ３１８によって発行され、命令回路３１４に入力されることで、データ入力／出力バッファ３１２にデータを入力することが可能となる。入力されたデータは命令として認識され、命令回路３１４に入力された命令ラッチ信号（図示せず）を介しステートマシン３１６によってラッチされる。ステップ３５２では、コントローラ又はホストから、ページアドレスを指定するアドレスデータが行コントローラ又はデコーダ３０６に入力される。入力されたデータは、命令回路３１４に入力されたアドレスラッチ信号の影響を受けながら、ステートマシン３１６を介してページアドレスとして認識されてラッチされる。ステップ３５４では、アドレス指定されたページ用の１ページのプログラムデータが、プログラミングのためにデータ入力／出力バッファ３１２に入力される。一実施形態では、例えば、５３２バイトのデータを入力することができる。このデータは、選択ビットラインのための適切なレジスタ内にラッチされる。いくつかの実施形態では、データは、検証動作で使用するために、選択されたビットラインのための第２レジスタ内にもラッチされる。ステップ３５６では、「プログラム」命令がコントローラによって発行され、データ入力／出力バッファ３１２に入力される。この命令は、命令回路３１４に入力された命令ラッチ信号を介してステートマシン３１６によってラッチされる。
【００４１】
ステップ３５４でラッチされたデータは、「プログラム」命令でトリガされることにより、適切なワードラインに印加した図６のステップ状のパルスを使用して、ステートマシン３１６によって制御される選択されたメモリセル内にプログラムされる。ステップ３５８では、選択されたワードラインに印加されるプログラミングパルス電圧レベルＶｐｇｍが開始パルス（例えば１２Ｖ）に初期化され、ステートマシン３１６によって維持されているプログラムカウンタＰＣが０に初期化される。ステップ３６０では、選択されたワードラインに第１Ｖｐｇｍパルスが印加される。特定のデータラッチに論理「０」が格納されている場合には（論理「０」はそのデータラッチに対応するメモリセルをプログラムすべきことを示す）、対応するビットラインが接地される。一方、特定のデータラッチに論理「１」が格納されている場合（論理「１」はそのデータラッチに対応するメモリセルを現在のデータ状態に維持すべきことを示す）は、対応するビットラインにＶＤＤが接続されてプログラミングが禁止される。
【００４２】
ステップ３６２では、選択されたメモリセルの状態が検証される。選択されたセルの対象の閾値電圧が適切なレベルに達したことが検知されると、対応するデータラッチに格納されているデータが論理「１」に変更される。閾値電圧が適切なレベルに達していないことが検知された場合には、対応するデータラッチに格納されているデータは変更されない。こうすることで、対応するデータラッチに論理「１」が格納されているビットラインはプログラムする必要がなくなる。全てのデータラッチが論理「１」を格納したとき、ステートマシンは、全ての選択されたセルがプログラムされたことを認識する。ステップ３６４では、全てのデータラッチが論理「１」を格納しているかどうかがチェックされる。全てのデータラッチが論理「１」を格納している場合には、全ての選択されたメモリセルが目標の状態にプログラムされ、検証されたので、プログラミング処理は無事完了する。ステップ３６６にて、「成功」ステータスが通知される。
【００４３】
ステップ３６４にて全てのデータラッチが論理「１」を格納してはいないと判定された場合には、プログラミング処理が継続する。ステップ３６８では、プログラムカウンタＰＣがプログラム限度値に対してチェックされる。プログラム限度値の一例は２０であるが、様々な実装において、これ以外の値の使用も可能である。プログラムカウンタＰＣが２０未満でない場合には、ステップ３６９にて、プログラムに成功しなかったビットの数が既定数以下かどうかが判定される。プログラムに成功しなかったビットの数が既定数以下の場合には、ステップ３７１にて、プログラミング処理に成功のフラグが立てられ、成功のステータスが通知される。プログラムに失敗したビットは、読み出し処理においてエラー修正を使用して修正することができる。しかし、プログラムに失敗したビットの数が既定数よりも多い場合には、ステップ３７０にて、プログラム処理に失敗したことを示すフラグが立てられ、失敗ステータスが通知される。プログラムカウンタＰＣが２０未満である場合には、ステップ３７２にて、Ｖｐｇｍレベルがステップサイズだけ増加され、プログラムカウンタＰＣがインクリメントされる。ステップ３７２の後、処理はステップ３６０へ戻り、次のＶｐｇｍパルスを印加する。
【００４４】
成功したプログラム処理の最後では、メモリセルの閾値電圧は、適切に、プログラム済みメモリセルの１又は複数の閾値電圧区分内、あるいは、消去済みメモリセルの閾値電圧区分内にあるはずである。図１２は、各メモリセルが２ビットデータを記憶するメモリセルアレイに対する閾値電圧区分を示す。図１２は、消去されたメモリセルに対応する第１閾値電圧区分Ｅを示している。プログラム済みメモリセルに対応する３個の閾値電圧区分Ａ、Ｂ、及び、Ｃもまた示されている。
一実施形態では、区分Ｅ内の閾値電圧は負値であり、区分Ａ、Ｂ、及び、Ｃ内の閾値電圧は正値である。
【００４５】
図１２の個々の閾値電圧範囲のそれぞれは、一組のデータビットの予め定められた値に対応する。メモリセルにプログラムされるデータとセルの閾値電圧レベルとの間の特定の関係は、セルに採用されるデータ符号化の方法に依存する。一実施形態では、データ値は、グレイコード割当を用いて閾値電圧範囲に割り当てられる。グレイコード割当を採用することによって、フローティングゲートの閾値電圧がそれに隣接する物理状態へ誤ってシフトした場合であってもその影響が１ビットだけに留まるようにすることができる。しかしながら、他の実施形態では、グレイコード法を用いずともよい。一例として、「１１」が閾値電圧範囲Ｅ（状態Ｅ）に割り当てられ、「１０」が閾値電圧範囲Ａ（状態Ａ）に割り当てられ、「００」が閾値電圧範囲Ｂ（状態Ｂ）に割り当てられ、「０１」が閾値電圧範囲Ｃ（状態Ｃ）に割り当てられる。図１２は４個の状態の場合を示しているが、本明細書が開示する実施形態は、４個以外の状態数を取り得る他のマルチステート構造を含むことも可能である。
【００４６】
図８はまた、フルシーケンスプログラミングを活用した実施形態を示している。フルシーケンスプログラミングでは、メモリセルに、消去状態Ｅからプログラム状態Ａ、Ｂ、或いはＣのいずれへもダイレクトに書き込むことができる。例えば、プログラムされるべきメモリセルの集団は、最初に、集団内の全メモリセルが消去状態Ｅとなるように消去される。選択されたメモリセルの制御ゲートに印加される一連のプログラム電圧パルスを使った図１１に示した処理が、メモリセルを直接に状態Ａ、Ｂ、又はＣにプログラムするために用いられる。幾つかのメモリセルを状態Ｅから状態Ａにプログラムするとともに、他のメモリセルを状態Ｅから状態Ｂへ、及び／又は、状態Ｅから状態Ｃへとプログラムすることができる。
【００４７】
図１３は、２つの異なるページ（下位ページと上位ページ）にデータを記憶するマルチステートメモリセルをプログラムする２パス技術の一例を示す。４つの状態：状態Ｅ（１１）、状態Ａ（１０）、状態Ｂ（００）、及び、状態Ｃ（０１）、が示されている。状態Ｅでは、両ページが「１」を記憶する。状態Ａでは、下位ページが「０」を記憶し、上位ページが「１」を記憶する。状態Ｂでは、両ページが「１」を記憶する。状態Ｃでは、下位ページが「１」を記憶し、上位ページが「０」を記憶する。複数の状態のそれぞれに特定のビットパターンが割り当てられるが、異なるビットパターンを割り当てることも可能であることに留意されたい。第１プログラミングパスでは、下位の論理ページへプログラムすべきビットに従って、セルの閾値電圧レベルを設定する。そのビットが論理「１」ならば、状態は先の消去された結果のときのままでよいので、閾値電圧を変更する必要はない。他方、プログラムすべきビットが論理「０」ならば、矢印４０２が示すように、状態Ａとなるようにセルの閾値レベルを増加させる。こうして第１プログラミングパスが終了する。
【００４８】
第２プログラミングパスでは、上位の論理ページにプログラムすべきビットに従って、セルの閾値電圧レベルを設定する。上位論理ページビットが論理「１」ならば、そのセルは状態ＥとＡのいずれかであるので、プログラムする必要はない。状態ＥとＡは、下位ページビットへのプログラミングに依存するが、これは両者ともに上位ページビットが「１」のままだからである。上位ページビットが論理「０」の場合、閾値電圧をシフトする。第１パスの結果セルが消去状態Ｅのままであるならば、矢印４０６で示すように、第２パスでは、状態Ｃ内となるまで閾値電圧が増加するようにセルをプログラムする。第１プログラミングパスの結果でセルが状態Ａにプログラムされている場合、矢印４０４で示すように、第２パスでは、状態Ｂ内となるまで閾値電圧が増加するようにセルをさらにプログラムする。第２パスの結果、下位ページのデータを変えることなく上位ページに論理「０」を記憶するように指定された状態へセルがプログラムされる。２パスプログラミング方法においては、複数のプログラミングもしくは検証ステップが、図１１に記述された方法の１回の繰り返しにおいて用いられる。プログラミング動作の各パスにおいてステップ３５８−３７２が実行される。第１パスでは、１以上のプログラムパルスが印加され、その結果が検証されて、セルが適切な中間状態にあるか否かが判定される。第２パスでは、１以上のプログラムパルスが印加され、その結果が検証されて、セルが適切な最終状態にあるか否かが判定される。幾つかの実施形態では、この手法は、ステップ３５０−３５６に示すようにアドレスとプログラムデータが別々に入力されるのと同様に、別々のデータロードとプログラムの命令を含んでよい。
【００４９】
図１４Ａ−１４Ｃは、不揮発性記憶素子をプログラミングするための他の処理を示す。ここでのプログラミング処理は、特定のメモリセルについて、前のページでの隣接するメモリセルへの書込みに続く特定のページに関するその特定のメモリセルに書き込むことによって、フローティングゲート間のカップリングを低減するものである。図１３Ａ−１３Ｃで示される処理の実装形態の一例においては、不揮発性メモリセルは、４つのデータ状態を用いて１メモリセルあたり２ビットデータを記憶する。例えば、状態Ｅが消去状態であり、状態Ａ、Ｂ、及びＣが、プログラム状態であると仮定する。状態Ｅがデータ１１を記憶する。状態Ａはデータ０１を記憶する。状態Ｂはデータ１０を記憶する。状態Ｃはデータ００を記憶する。データを物理的なデータ状態に符号化する他の符号化方法が採用されてもよい。各メモリセルは、２ページのデータを記憶する。理解をし易くするために、それらのデータページを上位ページと下位ページと称する。ただし、他の呼称を用いてもよい。図１４Ａ−１４Ｃの処理において状態Ａに関していえば、上位ページがビット０を記憶し、下位ページがビット１を記憶する。状態Ｂに関していえば、上位ページがビット１を記憶し、下位ページがビット０を記憶する。状態Ｃについては、両ページがビット０を記憶する。図１４Ａ−１４Ｃのプログラミング処理は２パス処理である。第１のステップでは、下位ページがプログラムされる。下位ページがデータ１のままである場合、そのメモリセルは状態Ｅに維持される。０にプログラムされるべきデータである場合、メモリセルが中間状態Ｂ’にプログラムされるようにそのメモリセルの閾値電圧を上げる。図１４Ｂは、メモリセルの状態Ｅから状態Ｂ’へのプログラミングを示している。図１４Ａで示されている状態Ｂ’は、中間状態Ｂ’である。それゆえ、検証ポイントは、ＶｖＢよりも低いＶｖＢ’で示されている。
【００５０】
一実施形態では、メモリセルを状態Ｅから状態Ｂへプログラムした後、ＮＡＮＤストリングにおける隣接メモリセルをその下位ページに関してプログラムする。例えば、図７に戻り、メモリセル１０６の下位ページをプログラムした後、メモリセル１０４の下位ページをプログラムする。メモリセル１０４のプログラムの後、メモリセル１０４の閾値電圧が状態Ｅから状態Ｂへと引き上げられた場合には、フローティングゲート間カップリングの影響によりメモリセル１０６のみかけの閾値電圧が上昇する。このことは、図１４Ｂの閾値電圧区分３２０として示されているように、状態Ｂの閾値電圧区分を広げる影響をもたらす。閾値電圧区分のこのみかけの拡張は、上位ページをプログラムする際に修正される。
【００５１】
図１４Ｃは、上位ページのプログラムの処理を示している。メモリセルが消去状態Ｅにあり上位ページは１のままにすべきである場合は、そのメモリセルは状態Ｅのままである。メモリセルが状態Ｅにあり上位ページデータは０にプログラムすべきである場合は、そのメモリセルが状態Ａとなるように、そのメモリセルの閾値電圧は引き上げられる。メモリセルが中間閾値電圧区分３２０にあり、上位ページデータが１のままにすべきである場合、メモリセルは最終状態Ｂへプログラムされる。メモリセルが中間閾値電圧区分３２０にあり、上位ページデータが０にすべきである場合、メモリセルの閾値電圧はメモリセルが状態Ｃとなるように引き上げられる。図１４Ａ−１４Ｃに示される処理は、現在のメモリセルのみかけの閾値電圧に影響を与えるのが隣接メモリセルの上位プログラムだけであるから、フローティングゲート間カップリングの影響を低減する。
【００５２】
図１４Ａ−１４Ｃは、４データ状態２データページに関する例を提供するが、図１４Ａ−１４Ｃが教示するコンセプトは、４以外のデータ状態、異なるページ数での実装にも適用することができる。
【００５３】
図１２、１３、及び、１４Ａ−１４Ｃは、メモリセルからデータを読み出すための読み出し参照電圧ＶｒＡ、ＶｒＢ、及び、ＶｒＣを示している。メモリセルの閾値電圧がＶｒＡ、ＶｒＢ、及び、ＶｒＣより高いか低いかをテストすることによって、システムはそのメモリセルがどの状態にあるかを判定する。ＶｒＡの制御ゲート電圧（Ｖｃｇ）が供給されていて導通するセルは状態Ｅにあり、ＶｒＡでは導通せずＶｒＢで導通するセルは状態Ａにあり、ＶｒＢでは導通せずＶｒＣで導通するセルは状態Ｂにあり、ＶｒＡ、ＶｒＢ、ＶｒＣで導通しないセルは状態Ｃにある。
【００５４】
読み出しと検証動作では、選択ブロックの選択ゲートは１以上の選択電圧に引き上げられ、非選択ワードライン（例えば、ＷＬ０、ＷＬ２、及び、ＷＬ３）は、そのトランジスタをパスゲートとして機能させるために読み出しパス電圧Ｖｒｅａｄ（例えば４．５ボルト）に引き上げられる。ソースとｐウエルはゼロボルトに保持される。選択ビットライン群（ＢＬｅ）は、例えば０．７ボルトである所定のレベルにプリチャージされる。選択ワードライン（例えばＷＬ１）は、読み出し又は検証電圧に保持され、そのレベルは各読み出し又は検証動作に応じて指定され、接続されているメモリセルの閾値電圧がそのレベルより高いか低いかが判定される。閾値電圧がそのワードラインに保持されている読み出し又は検証レベルよりも高い場合、そのメモリセルは非導通となるからそのセルに対応するビットライン（ＢＬｅ）の電位レベルは高いレベルに保持される。他方、閾値電圧が読み出し又は検証レベルよりも低い場合、そのメモリセルは導通してビットライン上の電荷を放電するからそのセルに対応するビットライン（ＢＬｅ）の電位レベルは低いレベル、例えば、０．５ボルト未満、に低下する。従って、そのメモリセルの状態は、そのビットラインに接続されそのビットライン電圧を計測する（センスする）電圧比較センスアンプによって検出される。
【００５５】
上述した消去、読み出し、及び、検証動作は、現在の技術として知られている技法に基づいて実行される。それゆえ、上記説明された詳細の多くは当業者によって変更され得る。現在知られている他の消去、読み出し、及び、検証の技法も採用され得る。
【００５６】
図１２、１３、及び、１４Ａ−１４Ｃはまた、ＶｖＡ２、ＶｖＢ２、及び、ＶｖＣ２、を含む検証電圧を示している。メモリセル群を状態Ａへプログラミングする際、システムはそれらのメモリセルがＶｖＡ２以上の閾値電圧を有しているか否かをテストし、それらのメモリセルが最終目標レベルに到達したことを検証する。メモリセル群を状態Ｂへプログラミングする際、システムはそれらのメモリセルがＶｖＢ２以上の閾値電圧を有しているか否かをテストし、それらのメモリセルが最終目標レベルに到達したことを検証する。メモリセル群を状態Ｃへプログラミングする際、システムはそれらのメモリセルがＶｖＣ２以上の閾値電圧を有しているか否かをテストし、それらのメモリセルが最終目標レベルに到達したことを検証する。
【００５７】
前述したように、雑／高精度プログラムは、１以上のプログラム可能な状態に対して２種類の検証電圧群を用い、そのメモリセルがプログラムの最終レベルにあることを検証するとともに、加えて、そのセルが目標とする状態の最終検証レベルに到達はしないが近づいたときに雑プログラムフェイズから高精度プログラムフェイズへ切り換える。図１２、１３、及び、１４Ａ−１４Ｃには、各プログラム状態に対して２種類の検証レベルが示されている。検証レベルＶｖＡ１、ＶｖＢ１、及び、ＶｖＣ１は、メモリセルが雑検証レベルに到達したことを検証するのに用いられ、検証レベルＶｖＡ２、ＶｖＢ２、及び、ＶｖＣ２は、メモリセルが目標とする状態の最終検証レベルに到達したことを検証するのに用いられる。目的とする状態に対していずれの検証レベルにも到達していないセルは、プログラム処理の次の繰り返しにおいてフルプログラミング又は雑プログラミングを受けることになる。目的とする状態に対して雑検証レベルには到達したが最終検証レベルには達していないセルは、次のプログラミング繰り返しにおいて減縮又は高精度プログラミングを受けることになる。目的とする状態に対して最終検証レベルに到達したセルは、次のプログラミング繰り返しにおいてプログラムを禁止される。図１２、１３、及び、１４Ａ−１４Ｃでは、各プログラム可能状態に対して２種類の検証レベルを示したが、いくつの実施形態では、１以上の状態に対して雑検証レベルを用いずともよい場合がある。例えば、幾つかの実装形態では、最高位のプログラム可能状態に対しては、読み出しにおいて区別すべきそれ以上の状態が存在しないので、雑検証レベルは用いない。そのような実施例を検討する。
【００５８】
図１５は、雑／高精度プログラムを含む典型的なプログラミング処理の一部において不揮発性メモリデバイスに印加される種々の信号を示すタイミングチャート図である。「プログラミング」と付された第１期間は選択ワードラインWL_selの１以上のメモリセルをプログラムするのに印加される信号を含んでいる。このプログラミング期間は、一般化され、ワードラインに印加される第１プログラミングパルス、又は、第２、或いは、後のプログラミングパルスに対応する。この期間は、図１１のステップ３６０に相当する。このプログラミング期間は、ソースラインを１ボルトオーダーの低い正値の電圧に引き上げることで始まる。次に、ドレイン選択ゲートラインＳＧＤにＶＳＧ（例えば３．５ボルト）を印加することによって、ドレイン選択ゲートを開放（或いはオン）する。ドレイン選択ゲートを開放した後、禁止電圧Ｖｉｎｈｉｂｉｔを非選択ワードライン群に印加する。図１５では、偶数／奇数プログラミング手法或いはアーキテクチャを想定している。ビットラインＢＬｎは選択ビットラインを表している。それゆえ、そのブロックの隣接ビットライン群ＢＬｎ＋１、ＢＬｎ＋３等、及び、ＢＬｎ−１、ＢＬｎ−３等は、このプログラミング動作中は非選択となる。典型的には、全ビットラインＢＬｎ、ＢＬｎ＋２等にはＢＬｎに印加されるのと同じ信号が供給されるので、全種のビットライン群（例えば偶数又は奇数）は同時に読み出されプログラムされる。
【００５９】
非選択ビットラインは禁止電圧Ｖｉｎｈｉｂｉｔに引き上げられ、第１プログラミング期間を通じてその値に保持される。選択ビットラインＢＬｎは、その特定のビットラインで選択ワードラインのメモリセルへプログラムすべきデータに応じて設定あるいはバイアスをかけられる。ビットラインＢＬｎのメモリセルがプログラミングから禁止されるべきである場合、ＢＬｎは電圧レベルＶｉｎｈｉｂｉｔまで引き上げられる。一実施形態では、ＶｉｎｈｉｂｉｔはＶＤＤ（即ち１．８Ｖ−３．３Ｖ）に等しい。ビットラインＢＬｎのメモリセルがフルもしくは雑プログラムを許可されるべきである場合、ＢＬｎは許可電圧Ｖｅｎａｂｌｅまで引き上げられる。一実施形態では、Ｖｅｎａｂｌｅはグランドレベルあるいは０Ｖに等しい。ビットラインＢＬｎのメモリセルがプログラムすべき目標の状態に対する雑検証レベルに到達したがまだその状態に対する最終検証レベルには到達していない場合、そのビットラインは中間レベルＶＳへ引き上げられる。一実施形態ではＶＳは約２．０Ｖである。ＶＳの値は、Ｖｉｎｈｉｂｉｔのレベルや他のデバイス特性に依存し、実施形態ごとに変えられる。図１５における実線４５０は、ビットラインＢＬｎがＶｉｎｈｉｂｉｔへ引き上げられ、その選択ワードラインにおけるメモリセルのプログラミングが禁止される状態を示している。点線４５２は、ビットラインＢＬｎがＶＳへ引き上げられ、その選択ワードラインにおけるメモリセルの部分的または高精度レベルのプログラミングが許容される状態を示している。破線４５４は、ビットラインＢＬｎがＶｅｎａｂｌｅ電圧を供給され、その選択ワードラインにおけるメモリセルのフルまたは雑レベルのプログラミングが許容される状態を示している。
【００６０】
そのメモリセルに印加すべきプログラミングの量に応じて選択ビットライン群の夫々がバイアスをかけられた後、そのワードラインがバイアスをかけられる。WL_unselと付された非選択ワードラインは、パス電圧Vｐａｓｓへ引き上げられる。電圧Ｖｐａｓｓは、このプログラミング期間においてプログラムを禁止すべきメモリセルを含むＮＡＮＤストリングに対してＮＡＮＤストリングチャネルのブーストを可能にする。選択ワードラインWL_selもまた電圧Ｖｐａｓｓに引き上げられ、プログラミングを受けないＷＬｎのメモリセルを含むＮＡＮＤストリングに対するチャネルのブーストが可能となる。各ワードラインをＶｐａｓｓレベルまで引き上げた後、その選択ワードラインはプログラム電圧パルスレベルＶｐｇｍ１へ引き上げられる。選択ワードラインへプログラムパルスを印加した後、全てのワードラインは０Ｖへと下げられる。ワードラインを０Ｖまで低下させたのち、非選択と選択ビットラインは、それぞれ０Ｖへ引き下げる。ドレイン側選択ゲートは、ドレイン選択ゲートラインＳＧＤへ０Ｖを印加することによって、（ターン）オフされる。ソースライン電圧を１Ｖから０Ｖへ低下させることによって、プログラミング期間は終了する。
【００６１】
図１５の第１プログラミング期間に続いて、電圧パルスＶｐｇｍ１の印加の後に検証動作が始まる。図１５に示すように、検証動作は雑レベル検証と高精度レベル検証に分けられている。雑レベル検証は、選択ビットラインＢＬｎを予め定められた電圧レベルＶｃｌａｍｐにプリチャージすることから始まる。一実施形態ではＶｃｌａｍｐは約０．７Ｖに等しい。ビットラインが一旦プリチャージされると、ワードラインは雑レベルセンシングのためにバイアスがかけられる。非選択ワードラインには読み出しパス電圧Ｖｒｅａｄが供給される。Ｖｒｅａｄは、パス電圧である。パス電圧は、非選択メモリセルがプログラムされた状態に関わらずに検証処理においてそのセルが確実にオン或いは導通する電圧である。このことは、ワードラインWL_selのメモリセルについての検証を可能にする。非選択ワードラインにＶｒｅａｄを印加するのと同時に、選択ワードラインに雑レベル検証電圧Ｖｖ１を印加する。各ワードラインに適切なバイアス状態を加えた後、ドレイン選択ゲートラインＳＧＤとソース選択ゲートラインＳＧＳにＶＳＧを印加することによって、ドレイン側選択ゲートとソース側選択ゲートの双方をオンする。図１５では、セルの特定の状態に依存しない一般的な説明がなされている点に留意されたい。それゆえ、Ｖｖ１は、状態Ａ、状態Ｂ、状態Ｃ、或いは他の状態に対する雑検証レベルに相当し得る。
【００６２】
選択ビットラインをプリチャージし、ワードラインにバイアスをかけ、選択ゲートをオンした後、その選択ビットラインは、選択ワードラインWL_selに接続されたそのビットラインのメモリセルの状態に応じて放電し得る状態となる。破線４５４は、閾値電圧Vｔｈが雑検証レベルＶｖ１よりも低いメモリセルを示している。そのメモリセルは雑検証レベルより低い閾値電圧を有しているため、検証レベルの印加によってオンし、ＮＡＮＤストリングを通じてビットラインとソースラインを導通させる。従って、そのようなメモリセルのビットラインは放電し、その電圧はプリチャージレベルＶｃｌａｍｐから、実装に応じて、約０．５Ｖ或いはそれ以下へと低下する。図１５では、放電によって０Ｖへ低下する様子が示されている。実線４５０は、ＢＬｎのメモリセルでありその閾値電圧が雑検証レベルＶｖ１よりも高いメモリセルを示している。雑検証レベルよりも高い閾値電圧を有するメモリセルは、オンせず、ビットライン電圧は基本的にＶｃｌａｍｐを維持する。ドレイン側選択ゲートを開放してから予め定められた時間の後、選択ビットラインに対してセンシング（検出）が実行される。センス（検出）動作は、そのビットラインの電圧をセンス（検出）し、それを参照電位Ｖｓｅｎｓｅと比較する。各選択ビットラインのセンスアンプは、この比較に基づいて、WL_selのメモリセルの閾値電圧が検証レベルＶｖ１よりも高いか否かを判定する。ビットライン電圧がＶｓｅｎｓｅよりも低い電圧まで放電している場合、そのことは、そのメモリセルがＶｖ１よりも低い閾値電圧を有していることを示している。ビットライン電圧がＶｓｅｎｓｅよりも低い電圧まで放電しない場合は、そのことは、そのメモリセルがＶｖ１よりも高い閾値電圧を有していることを示している。ビットライン電圧をセンス（検出）しそれをＶｓｅｎｓｅと比較すると、雑レベル検証処理は終了する。
【００６３】
図１５の実施形態では、ビットラインは、雑レベル検証の後は再びプリチャージはされない。選択ワードラインは、雑検証レベルから最終或いは高精度検証レベルＶｖ２へとダイレクトに引き上げられる。雑検証レベルと同様に、Ｖｖ２は一般論的な説明として提供されており、状態Ａや状態Ｂなどに対する最終検証レベルを含んでよい。この技術は、選択ビットラインをプリチャージするのに必要な時間を省くことによって効率的な検証を可能にしている。この技術はまた、ビットラインを再びチャージするのに要するエネルギを生成する必要性を省いている。選択ワードラインに最終検証レベルＶｖ２を印加した後、選択ビットラインはワードラインWL_selのメモリセルの状態に応じて放電する。図１５における点線４５２は、閾値電圧が最終検証レベルＶｖ２よりは低いが雑検証レベルＶｖ１よりは高いメモリセルを表している。そのようなメモリセルは、雑検証レベルの印加では放電を引き起こされないが、最終検証レベルの印加によってビットラインを放電する。それらのメモリセルのビットライン電圧は、高精度検証において、放電によって、プリチャージレベルから略０．５Ｖあるいはそれ以下へ低下する。実線４５０は、最終検証レベルＶｖ２と雑検証レベルよりも低い閾値電圧を有するメモリセルを表している。
【００６４】
ビットライン電圧は、Ｖｖ２の印加に続いて、予め定められた時間が経過したのち、再びセンス（検出）される。この予め定められた時間は、雑レベルセンシングにおける選択ゲートの開放に続く時間期間、或いは、最終検証レベルの印加に続く時間期間として設定あるいは表現することができる。センス（検出）された電圧は、参照電位Ｖｓｅｎｓｅと比較される。ビットライン電圧がＶｓｅｎｓｅ以下となるまで放電していない場合、メモリセルの閾値電圧は最終検証レベルＶｖ２より高いと判定される。ビットライン電圧がＶｓｅｎｓｅ以下となるまで放電している場合、メモリセルの閾値電圧は最終検証レベルＶｖ２より低いと判定される。センス（検出）の後、選択ビットラインは０Ｖへ下げられ、続いてワードラインが０Ｖへ下げられる。次いで、ドレイン及びソース選択ゲートラインが０Ｖに下げられ、高精度検証処理が終了する。
【００６５】
マルチステートメモリデバイスを用いる場合、雑レベル検証と高精度レベル検証は、対応する状態に対して必要な数だけ繰り返されることに留意されたい。例えば、４状態のデバイスの場合、雑レベル検証と高精度レベル検証は、状態Ａ検証レベルで１回、状態Ｂ検証レベルで１回、及び、状態Ｃ検証レベルで１回、の３回の実行が必要とされる。状態Ａの高精度レベル検証が完了した後、ビットラインは再びプリチャージされ、処理が繰り返される。状態Ｂの高精度レベル検証が完了した後、ビットラインは再びプリチャージされ、状態Ｃのための雑レベル検証が開始される。幾つかの実施形態では、各処理の際に必ずしも各状態検証レベルでセンス（検出）する必要はない。例えば、図１３に示したメモリセルの上位ページデータの読み出しにおいては、状態Ｂ件レベルでのセンシング（検出）だけが要求される。
【００６６】
図１５は、ソース電位を１ボルトに引き上げた後にその最終検証レベルに到達していない、さらなるメモリセルのプログラムのために用いられる、プログラム処理の付加的な繰り返しを示している。ドレインソース選択ゲートラインＳＧＤにＶＳＧを印加することによって、ドレイン側選択ゲートがオンされる。非選択ビットラインＢＬｎ＋１／ＢＬｎ−１は、Ｖｉｎｈｉｂｉｔへ引き上げられる。選択ビットラインＢＬｎは、そこへプログラムすべきデータと前回の検証動作の結果に応じてバイアスがかけられる。図１５の矢印は、この次のプログラム繰り返しの際に印加される各ビットライン電圧レベルを示している。雑検証レベルの印加の下でビットラインを放電したメモリセル（破線４５４）は、許可電圧Ｖｅｎａｂｌｅが印加され、次の繰り返しにおいてフルプログラミングを受けることになる。雑検証レベルと最終検証レベルの夫々の印加の下でもビットラインを放電しなかったメモリセル（実線４５０）は、最終検証レベルに到達したメモリセルを示している。従って、そのメモリセルのビットラインはＶｉｎｈｉｂｉｔとなるようにバイアスがかけられる。雑検証レベルの下ではビットラインを放電しなかったが最終検証レベルの下では放電したメモリセル（点線４５２）は、中間電圧レベルＶＳに引き上げられ、次のプログラム繰り返しにおいて高精度プログラムを受けることになる。
【００６７】
各選択ビットラインにバイアスをかけた後、非選択及び選択ワードラインは、それらのパス電圧レベルＶｐａｓｓへ引き上げられる。選択ワードラインは、次いで、第２プログラム電圧パルスレベルＶｐｇｍ２に引き上げられる。第２パルスの大きさは、典型的には、前回のパルスよりステップサイズＶｐｇｍだけ大きい。Ｖｐｇｍ２を印加した後、ワードラインはゼロボルトへ戻される。選択及び非選択ビットラインもまたゼロボルトへ戻され、ドレイン選択ゲートがオフする。そしてソースライン電位がゼロボルトへ引き下げられる。図１５に示した例は、典型的な実装形態におけるプログラムと検証処理のほんの一部を示しているものであることに留意されたい。各パルスの印加の間に実行される適切なレベルでの雑レベル及び高精度レベル検証とともに、各選択メモリセルをその目標レベルへプログラムするために１以上のプログラムパルスが印加される。
【００６８】
図１６は、図１１のステップ３６２と図１５において実行される、特定状態に対する雑レベルと高精度レベルのセンス（検出）動作の詳細を示すグラフである。図１６のグラフは、ビットライン電圧ＶＢＬの時間変化を示している。図１６のタイミングチャートは、２つの異なるメモリセルについて示している。実線４６０は、センス動作に先立ってプログラムすべき状態に対する最終検証レベルより高い閾値電圧を有するメモリセルを示している。図１２を参照すると、例えば、実線は、状態Ｂを目標とするメモリセルであり最終検証レベルＶｖＢ２を超える閾値電圧を有するメモリセルを示している。破線４６２は、プログラムすべき状態に対する最終検証レベルより低い閾値電圧を有するメモリセルを示している。例えば、破線は、最終検証レベルＶｖＢ２より低い閾値電圧を有するメモリセルを示している。図に示されたメモリセルは両方とも、プログラムされるべき目標の状態に対する雑検証レベルより高い閾値電圧を有している。
【００６９】
双方のメモリセルのビットラインは、予め定められたレベルＶｃｌａｍｐにプリチャージされる。次に雑検証レベルＶｖ１（例えばＶｃｇ＝ＶｖＢ１）が選択ワードラインに印加される。次にドレイン選択ゲートをオンし、各ＮＡＮＤストリングをそのビットラインに接続する。図１６が示しているように、各メモリセルが雑検証レベルより高い閾値電圧を有している場合であっても、ビットラインは多少は放電する。それらの閾値電圧よりも低い制御ゲート電圧（Ｖｃｇ）の印加に関わらず、トランジスタベースのメモリセルは、そのトランジスタのソースとドレインの間に僅かながら電流を通す。メモリセル、特に、最新デバイス用の小型化されたメモリセルでは、正値のゲートバイアスの下では必ずしも完全な非道通状態とはならないことがある。トランジスタが閾値電圧よりも低いゲート電圧印加の下で電流を流してしまうその度合いは、デバイスの閾値下スイングファクタ（Ｓファクタ）と呼ばれている。
【００７０】
従来は、商品として実用化されたメモリセルは低い閾値下スイングファクタを示していた。図１６は、閾値下スイングファクタが低いメモリデバイスを示しており、その閾値電圧よりも低い制御ゲート電圧の印加の下で流れてしまう電流がさほど多くはないメモリセルを示している。メモリセルの閾値電圧は、通常、ゲート電圧が閾値電圧よりも低い場合であっても、導通のレベルに影響する。それゆえ、最終検証レベルよりも高い閾値電圧を有する図１６のメモリセル（実線４６０）は、最終検証レベルよりも低い閾値電圧を有するメモリセル（破線４６２）よりも放電する電荷量が少ない。
【００７１】
ドレイン選択ゲートの開放に続いて予め定められた時間が経過した後、雑検証レベルでのセンス動作が実行される。ビットライン電圧をセンス（検出）し、それを参照電位Ｖｓｅｎｓｅと比較する。図１６に示される双方のセルについて、雑レベルセンシングにおいて、ビットライン電圧ＶＢＬがセンス電圧Ｖｓｅｎｓｅよりも高いか否かを判定する。次いで、各メモリセルが雑検証レベルＶｖ１よりも高い閾値電圧を有しているか否かをセンスアンプが判定する。
【００７２】
雑検証レベルでセンシングした後、最終検証レベルが選択ワードラインに印加される。各メモリセルの制御ゲートに最終検証レベルＶｖ２（例えば、Ｖｃｇ＝ＶｖＢ２）が印加される。最終検証レベルより高い閾値電圧を有しているメモリセルはオンせず、従って、この最終検証レベルの印加の下では、そのセルのビットライン電圧は放電によってさほど低下しない。繰り返すが、ビットライン電圧は閾値下スイングファクタにより多少は放電によって低下するが、その低下量はセンシング（検出）の精度には大きな影響は与えない。最終検証レベルＶｖ２より低い閾値電圧を有するメモリセルはオンし、最終検証レベルの印加の下で導通する。従って、そのメモリセルのビットラインは、最終検証レベルの印加によって顕著に放電し電圧低下する。
【００７３】
最終検証レベルの印加に続く既定時間の後、各メモリセルのビットライン電圧をセンス（検出）する。繰り返すが、この既定時間は、雑レベルセンシングのためのドレイン選択ゲートの開放に基づいて、或いは、最終検証電圧の印加に基づいて定められる。実線４６０で表されるメモリセルは、Ｖｓｅｎｓｅよりも高いと判定されるべきビットライン電圧を有している。従って、センスアンプは、そのセルの閾値電圧が最終検証レベルＶｖ２よりも高いと判定する。そのようなセルは、他のセルには必要な以降の繰り返しプログラムの間、さらなるプログラミングが禁止される。破線４６２で表されるメモリセルは、上記既定時間の後に参照電位Ｖｓｅｎｓｅより低い対応ビットライン電圧を有している。このセルのセンスアンプは、ビットライン電圧が参照電位Ｖｓｅｎｓｅより低いと判定し、従って、メモリセルの閾値電圧が最終検証レベルＶｖ２よりも低いと判定する。
【００７４】
図１７は、閾値下スイングファクタが大きいメモリデバイスを示すグラフである。ここでも同様に、最終検証レベルよりも高い閾値電圧を有するメモリセルは実線４６０で示されており、最終検証レベルよりも低い閾値電圧を有するメモリセルは破線４６２で示されている。各メモリセルのビットライン電圧はプリチャージされ、選択ワードラインには雑検証レベルが印加される。雑検証レベルの印加の後、ドレイン側選択ゲートをオンし、ビットラインをセルのＮＡＮＤストリングに接続する。図１７のデバイスは大きなＳファクタを有しているため、両方のメモリセルは、雑検証レベルＶｖ１よりも高い閾値電圧を有していても、それらのビットライン電圧は顕著に低下する。既定時間の後、ビットライン電圧をセンスし、センスした電圧を参照電位Ｖｓｅｎｓｅと比較する。ビットラインＶｓｅｎｓｅを下回るほどには放電していないため、各セルのセンスアンプは、両方のメモリセルが雑検証レベルＶｖ１より高い閾値電圧を有していると判定する。
【００７５】
雑レベルセンシングの後、選択ワードラインに最終検証レベルＶｖ２を印加する。最終検証レベルよりも高い閾値電圧を有しているセル（実線４６０）は、最終検証レベルよりも低い閾値電圧を有しているセル（破線４６２）ほどには高い導電性を有しない。それでも、図１７に示されているように、大きなＳファクタによって、最終検証レベルよりも高い閾値電圧を有しているセルのビットライン電圧が放電によりＶｓｅｎｓｅよりも低下してしまう。最終検証レベルよりも低い閾値電圧を有するメモリセルもまた、放電によりそのビットライン電圧がＶｓｅｎｓｅよりも低くなる。高精度レベルセンシングにおいて、最終検証レベルよりも高い閾値電圧を有しているメモリセルのセンスアンプは、そのセルのビットライン電圧が放電によりＶｓｅｎｓｅよりも低くなっていると判定する。従って、センスアンプは、そのメモリセルは最終検証レベルよりも低い閾値電圧を有していると判定する。このことは、センス動作でエラーが発生することを示している。センス回路（検出回路）は、誤って、メモリセルがまだ最終目標レベルまでプログラムされていないと判定し、その結果セルがさらにプログラムされてしまうことがある。破線で示されているメモリセルもまた、センスされたビットライン電圧はＶｓｅｎｓｅよりも下である。このセルのセンスアンプは、そのセルの閾値電圧は最終検証レベルＶｖ２よりも低いと正しく判定する。
【００７６】
図１８は、本明細書が開示する一実施形態に基づく雑検証及び高精度検証とセンシングアプローチのグラフであり、大きなＳファクタに起因するビットラインの放電による電圧低下に対処する手法を示している。ここでも、実線４６０は最終検証レベル（例えばＶｖＡ２）よりも高い閾値電圧を有するメモリセルを表している。破線４６２は、最終検証レベルよりも低い閾値電圧を有するメモリセルを表している。各メモリセルのビットライン電圧は既定レベルＶｃｌａｍｐにプリチャージされる。両方のビットラインをプリチャージした後、選択ワードラインに雑検証レベルＶｖ１を印加する（例えばＶｃｇ＝ＶｖＡ１）。ドレイン側選択ゲートがオンし、ビットラインの放電が許容される。最終検証レベルよりも高い閾値電圧を有しているメモリセルは、大きなＳファクタによってビットライン電圧がある程度低下する。同様に、最終検証レベルよりも低い閾値電圧を有しているメモリセルもビットライン電圧がある程度低下する。既定時間の後、各メモリセルのビットライン電圧をセンスし参照電位と比較する。雑レベルセンシングにおいて、センスされたビットライン電圧は中間参照電位Ｖｓｅｎｓｅ１と比較される。両方のメモリセルのセンスアンプは、そのビットライン電圧が雑検証レベルＶｓｅｎｓｅ１よりも高いか否かを判定する。その結果、センスアンプは、各メモリセルの閾値電圧が雑検証レベルＶｖ１よりも高いことを正しく判定する。
【００７７】
雑検証レベルのセンシングの後、選択ワードラインに最終検証レベルＶｖ２を印加する。繰り返すが、最終検証レベルよりも高い閾値電圧を有しているメモリセルはそのデバイスのＳファクタによってある程度の電流を流す。最終検証レベルよりも低い閾値電圧を有しているメモリセルは、最終検証レベルよりも高い閾値電圧を有しているメモリセルよりも高い導通性を示し、ビットラインが顕著な量を放電して相当量の電圧低下を生じる。
【００７８】
既定時間の後、各メモリセルのビットライン電圧をセンスし参照電位と比較する。高精度レベルセンシングにおいては、異なる参照電位が用いられる。センスされたビットライン電圧は最終参照電位Ｖｓｅｎｓｅ２と比較される。Ｖｓｅｎｓｅ２はＶｓｅｎｓｅ１よりも低い。Ｖｓｅｎｓｅ１より低い参照電位は、雑検証レベルの印加の下で生じるビットライン放電（による電圧低下）を補償する。この補償は、メモリデバイスに関連した大きなＳファクタを考慮する。その大きなＳファクタは、メモリセルが検証レベルよりも高い閾値電圧を有する場合であってもそのビットラインを相当量放電させ電圧低下を起こさせるものである。図１８は、最終検証レベルよりも高い閾値電圧を有するメモリセルのセンス（検出）されたビットライン電圧とＶｓｅｎｓｅ２との比較を示している。このケースでは、センスアンプは、ビットライン電圧が最終参照電位Ｖｓｅｎｓｅ２よりも高いと判定する。従って、センスアンプはそのメモリセルの閾値電圧が最終検証レベルＶｖ２よりも高いと正しく判断する。最終検証レベルよりも低い閾値電圧を有するメモリセルに対して、センスアンプはそのセンスしたビットライン電圧を最終参照電圧Ｖｓｅｎｓｅ２と比較する。そのセルのビットラインに対するセンスアンプは、そのビットライン電圧が最終参照電位Ｖｓｅｎｓｅ２よりも低いと判定する。センスアンプは、再び、そのメモリセルは最終検証レベルＶｖ２よりも低い閾値電圧を有していると正しく判定する。従って、雑レベルセンシング動作と高精度レベルセンシング動作の間でビットラインが再びプリチャージされない場合に、雑レベルセンシングと高精度レベルセンシングの間で参照電位のレベルを調整することによって、メモリセルの状態を正確にセンシングすることができる。この参照電位レベルの違いは、雑レベルセンシングにおいて放電される電荷量に対する補償を提供する。
【００７９】
一実施形態では、最終参照電位Ｖｓｅｎｓｅ２は、中間参照電位Ｖｓｅｎｓｅ１より所定量だけ低い。その所定量とは、雑レベルセンシングにおいてメモリセルのワードラインに雑検証レベルＶｖ１を印加したときのＶｖ１よりも高い閾値電圧を有するメモリセルのビットラインにて予想される電圧低下量（放電される電荷量）に相当する。適用している検証レベル下では理論的には非導通であるメモリセルは、デバイスの大きいＳファクタに起因してそのセルに対応するビットラインが放電による電圧低下を生じる。中間参照電位と最終参照電位との差は、概ね、ビットラインのプリチャージレベルと、雑検証レベルをワードラインに印加した結果で生じるビットライン電圧との差に設定される。このようにして、最終参照電位Ｖｓｅｎｓｅ２は、大きいＳファクタによって生じるビットライン放電（による電圧低下量）を補償する。実装態様の要求に応じて、中間参照電位Ｖｓｅｎｓｅ１と最終参照電位Ｖｓｅｎｓｅ２は別の値も採用し得る。例えば、Ｖｓｅｎｓｅ２は、Ｖｓｅｎｓｅ１よりも所定量だけ小さい値に設定されてよい。ここでの所定量は、ワードラインに雑検証レベルを印加したときにメモリセルのビットラインに予定される「放電による電圧低下量」よりも小さくともよい。Ｖｓｅｎｓｅ１に対するＶｓｅｎｓｅ２の小さめのオフセットは、それでも、雑レベルセンシングにおけるビットライン放電（による電圧低下量）のレベルに対応する。一実施形態では、中間参照電位Ｖｓｅｎｓｅ１は、デバイスが通常の、或いは通常より低いＳファクタを有する場合に用いられる通常のＶｓｅｎｓｅのレベルとほぼ等しくてよい。そのような場合、最終参照電位Ｖｓｅｎｓｅ２は、Ｖｓｅｎｓｅ１に対して所定量だけ調整したものとなる。ここでの所定量は、雑レベルセンシングにおけるビットライン電圧の降下量を補償できる量に相当する。
【００８０】
一実施形態では、メモリアレイは、その製造工程においてテストされる。そのテストは、そのメモリセルの特性を特定することを含む。例えば、メモリアレイについて、メモリセルの閾値電圧が雑検証レベルよりも高い状態でワードラインに雑検証レベルを印加したときにビットラインが放電する電荷量（電圧低下量）を特定できるような試験が行われる。一実施形態では、デバイスの複数のビットラインに関連した放電による電荷量は、単一の適切な量に平均化される。製造工程において、Ｖｓｅｎｓｅ１に対するＶｓｅｎｓｅ２の相対量は、雑検証レベルの印加の下でのビットライン電圧の計測された降下量に合わせて設定される。さらに、中間参照電位Ｖｓｅｎｓｅ１は、そのメモリセルデバイスの特定に基づいて設定される。幾つかの実施形態では、一組のメモリデバイスの中からサンプルを幾つかを選択し、選択されたサンプルについてテストし特性を特定し、得られた特性を使って、そのサンプルを含む一組のグループのメモリデバイスに対してＶｓｅｎｓｅ１とＶｓｅｎｓｅ２のレベルを設定する。他の実施形態では、製造工程において、各々のメモリデバイスについて個別にテストして特性を特定し、その結果に基づいて各メモリデバイスのＶｓｅｎｓｅ１とＶｓｅｎｓｅ２のレベルを設定する。また、雑レベルセンシングにおける精度を高めるように、選択ゲートのオンと雑レベルセンシングの実行との間の時間間隔も設定され得る。このように、選択ワードラインへの最終検証レベルの印加とそのレベルでのセンシングとの間の時間間隔は、両レベルでのより正確なセンシングを提供するためにテストと特定の特定に基づいて選定される。前述したように、高精度レベルセンシングにおけるセンシング前の時間は、雑レベルセンシングにおいて選択ゲートがオンする時間に基づいて、或いは、選択ワードラインへ高精度検証レベルを印加する時間に基づいて、設定される。特性を特定した後は、これらの値を設定するのに様々な手法を採用し得る。例えば、デバイスの動作に関連してデータを記憶するメモリデバイスの中に、一組のアンチヒューズ、電子的プログラム可能ヒューズなどが提供され得る。これらのヒューズは、Ｖｓｅｎｓｅの値、及び／又は、センシングに関する時間間隔を示すデータを記憶するために設定される。
【００８１】
図１９は、１以上のメモリセルのプログラミングを検証するための処理を記したフローチャートである。一実施形態では、図１９の処理は、図１１において、ステップ３６０での各プログラムパルスの印加の後にステップ３６２にて実行される。ステップ４０２での開始にて、選択ビットラインをプリチャージする。偶数ビットラインと奇数ビットラインにおいてプログラミングと検証が異なるタイミングで行われる偶数奇数アーキテクチャにおいては、ステップ４０２におけるプリチャージは、偶数ビットライン又は奇数ビットラインにプリチャージすることを含む。これとは異なる他のアーキテクチャでは全ビットラインシステムを採用し、その場合、ステップ５０２ではメモリセル群の選択されたブロックの各ビットラインにプリチャージすることを含む。ビットラインを既定レベルまでプリチャージした後、ステップ５０４にて各非選択ワードラインに読み出しパス電圧Ｖｒｅａｄを印加する。ステップ４０４は、検証処理において各非選択メモリセルを導通させ、選択ワードラインに接続されているメモリセルだけを検証の対象とする。ステップ５０６では、選択ワードラインに雑プログラム検証電圧を印加する。ステップ５０６は、プログラムされているメモリデバイスの状態に応じてＶｖＡ１、Ｖｖｂ１、或いは、ＶｖＣ１のいずれかの雑検証レベルを印加することを含む。ステップ５１０では、ＳＧＤに正値の電圧を印加し、ドレイン側選択ゲートを開放或いはオンする。ドレイン側選択ゲートが開放されると、選択ビットラインがＮＡＮＤストリングに接続され、選択ワードラインに接続されているメモリセルのプログラム状態に応じて放電が許容される。既定時間の後、ステップ５１０にて選択ビットラインの電圧をセンスする。ステップ５１０は、メモリデバイスに対する雑レベルセンシングを表している。各選択ビットラインのビットライン電圧をセンスしたら、ステップ５１２にて、そのビットライン電圧を中間参照電位Ｖｓｅｎｓｅ１と比較する。ステップ５１４では、検証対象のメモリセルの状態に応じてＶｖＡ２、ＶｖＢ２、または、ＶｖＣ２の最終検証電圧を選択ワードラインに印加する。ステップ５１６では、各選択ビットラインの電圧をセンスする。ステップ５１６のセンシングが最終又は高精度レベルセンシングを表している。ステップ５１８では、センスされたビットライン電圧を最終参照電位Ｖｓｅｎｓｅ２と比較する。
【００８２】
ステップ５２０では、各選択ビットラインのセンスアンプは、ステップ５１８での比較結果を用いて、センスしたビットライン電圧ＶＢＬが中間参照電位Ｖｓｅｎｓｅ１より高いか否かを判定する。センスしたビットライン電圧が中間参照電位よりも低かった場合、そのことはそのメモリセルの閾値電圧が雑検証レベルに到達していないことを示しており、従ってプログラミング処理の次の繰り返しにおいてステップ５２２にてそのメモリセルにはフルプログラミングが行われる。ステップ５２２は、次のプログラミングパルスの間にそのメモリセルのビットラインにＶｅｎａｂｌｅ電圧（即ちグランドレベル）を印加することを含む。ステップ５２０にてビットライン電圧がＶｓｅｎｓｅ１よりも高いと判定された場合、処理はステップ５２４へ移行する。ステップ５１６における高精度レベルセンシングでのセンスされたビットライン電圧は、最終参照電位Ｖｓｅｎｓｅ２と比較される。ビットラインのセンスアンプが、ビットライン電圧が最終参照電位Ｖｓｅｎｓｅ２よりも低いと判断した場合、次のプログラミング繰り返しにおいてステップ５２６にてそのメモリセルのビットラインに中間電圧ＶＳが印加される。ビットラインのセンスアンプが、高精度レベルセンシングにおけるビットライン電圧が最終参照電位Ｖｓｅｎｓｅ２よりも高いと判断した場合、センスアンプは、次のプログラミング繰り返しにおいてステップ５２８にてそのビットラインにＶｉｎｈｉｂｉｔを印加する。
【００８３】
図１９のステップ５０２から５２８は、メモリデバイスが取り得る状態の数に応じて必要とされる検証動作の回数と同数回繰り返されることに留意されたい。２ビットでデータを記憶する４状態メモリデバイスの場合、ステップ３６２の検証は図１９の方法の３回の繰り返しを含む。雑検証動作と高精度検証動作は状態Ａの検証レベルに対して１回、状態Ｂの検証レベルに対して１回、及び、状態Ｃの検証レベルに対して１回、それぞれ行われる。現在検証中の状態よりも高い状態へプログラムされる予定の選択ビットラインに対しては、特定の状態の検証レベルでのセンシングの結果は無視され得ることに留意されたい。
【００８４】
図２０は、センスアンプを含む、図８の列制御回路３０４の一部を示している。ビットラインの各ペア（例えばＢＬｅとＢＬｏ）は、センスアンプ６００と接続している。
センスアンプは、３個のデータラッチ：第１データラッチ６０２、第２データラッチ６０４、及び、第３データラッチ６０６と接続している。３個のデータラッチの夫々は、１ビットデータを記憶できる。センスアンプは、読み出しと検証動作の際に、選択ビットラインの電位レベルをセンス（検出）し、センスしたデータをバイナリ値で記憶し、プログラム動作の際にビットライン電圧を制御する。センスアンプは、「偶数ＢＬ」と「奇数ＢＬ」の信号の一つを選択することによって、選択されたビットラインに選択的に接続される。データラッチ６０２、６０４、及び、６０６は、読み出したデータを出力し、或いは、プログラムデータを記憶するためにＩ／Ｏ線６０８に接続される。Ｉ／Ｏ線６０８は、図８のデータ入力／出力バッファ３１２に接続されている。データラッチ６０２、６０４０、及び、６０６はまた、ステータス情報を受信或いは送信するためにステータス線（６１０）に接続される。一実施形態では、ビットラインの各ペア（偶数および奇数ビットライン）に対して、線アンプ、第１データラッチ６０２、第２データラッチ６０４、及び、第３データラッチ６０６が用意される。読み出しデータとプログラムデータを記憶することに加えて、データラッチはセンシングの結果を記憶することができる。そのことによって、雑検証レベルと最終検証レベルを含む、目標とする状態に関連して記憶素子のセンスされた状態に応じて、ビットラインに許可電圧、禁止電圧、或いは、中間電圧が提供される２ビットデータを記憶する一実施形態では、メモリセルへプログラムすべきデータを記憶するために２つのデータラッチが用いられる。残りのデータラッチは、セルが現在高精度プログラムモードにあるのか雑プログラムモードにあるのかを示すデータを記憶するために用いられる。センスアンプ６００は、雑レベル検証動作（Ｖｓｅｎｓｅ１）と高精度検証動作（Ｖｓｅｎｓｅ２）の夫々に対する補償に際して用いられる参照電位の異なる値を受信する。上記した残りのデータラッチに記憶されているデータに基づいて、適切な補償レベルが選択され得る。
【００８５】
本発明の前術の詳細な説明は、図解及び説明のために提示された。網羅的となること、あるいは本発明を開示されている正確な形式に制限することは意図されていない。上記の提示を鑑みて多くの変型及び変形が可能である。説明した実施形態は、本発明の原理及びその実際的な応用例を最もよく説明し、それにより当業者が多様な実施形態で、及び意図された特定の用途に適するような多様な変型で本発明を最もうまく活用できるようにするために選ばれた。本発明の範囲が本明細書に添付される請求項により定められることが意図される。
【図１】
2010532541.tif 000003
【図２】
2010532541.tif 000004
【図３Ａ】
2010532541.tif 000005
【図３Ｂ】
2010532541.tif 000006
【図３Ｃ】
2010532541.tif 000007
【図４Ａ】
2010532541.tif 000008
【図４Ｂ】
2010532541.tif 000009
【図４Ｃ】
2010532541.tif 000010
【図５Ａ】
2010532541.tif 000011
【図５Ｂ】
2010532541.tif 000012
【図５Ｃ】
2010532541.tif 000013
【図６】
2010532541.tif 000014
【図７】
2010532541.tif 000015
【図８】
2010532541.tif 000016
【図９】
2010532541.tif 000017
【図１０】
2010532541.tif 000018
【図１１】
2010532541.tif 000019
【図１２】
2010532541.tif 000020
【図１３】
2010532541.tif 000021
【図１４Ａ】
2010532541.tif 000022
【図１４Ｂ】
2010532541.tif 000023
【図１４Ｃ】
2010532541.tif 000024
【図１５】
2010532541.tif 000025
【図１６】
2010532541.tif 000026
【図１７】
2010532541.tif 000027
【図１８】
2010532541.tif 000028
【図１９】
2010532541.tif 000029
【図２０】
2010532541.tif 000030
【手続補正書】
【提出日】平成22年2月25日(2010.2.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
不揮発性メモリをプログラムする方法であり、
一組の不揮発性記憶素子の１以上の記憶素子を特定状態にプログラムするために前記一組の不揮発性記憶素子へ１以上のプログラミングパルスを印加すること、
各プログラミングパルスを印加した後に、前記一組の記憶素子に第１電圧を印加し、前記１以上の記憶素子の夫々のビットライン電圧を第１参照電位と比較することによって、前記特定状態に対応した中間検証レベルへの前記１以上の記憶素子のプログラミングを検証すること、
各プログラミングパルスを印加した後に、前記一組の記憶素子に第２電圧を印加し、前記１以上の記憶素子の夫々の前記ビットライン電圧を第２参照電位と比較することによって、前記特定状態に対応した最終検証レベルへの前記１以上の記憶素子のプログラミングを検証すること、を含み、
前記第２参照電位は、前記「中間参照レベルへのプログラミングを検証すること」から生じる、前記１以上の記憶素子の夫々の前記ビットライン電圧の低下を補償することを特徴とする方法。
【請求項２】
前記第２参照電位は、前記１以上の記憶素子が前記中間検証レベル以上のときに、前記「中間参照レベルへのプログラミングを検証すること」から生じる、前記１以上の記憶素子の夫々の前記ビットライン電圧の低下を補償するレベルで供給されることを特徴とする請求項１の方法。
【請求項３】
前記第２参照電位は、前記第１電圧が印加された前記１以上の記憶素子が前記中間検証レベル以上のときに前記１以上の不揮発性記憶素子のビットラインが放電する電荷量に本質的に等しい分だけ、前記第１参照電圧よりも低いことを特徴とする請求項１又は２の方法。
【請求項４】
前記第２参照電位は、前記第１電圧が印加されたときに前記中間検証レベル以上である記憶素子のビットライン放電の電荷量に本質的に等しい分だけ、前記第１参照電圧よりも低いことを特徴とする請求項１又は２の方法。
【請求項５】
各プログラミングパルスを印加した後であって前記中間検証レベルへのプログラミングを検証する前に、前記１以上の記憶素子と接続している一組のビットラインをプリチャージすること、
をさらに備え、前記中間検証レベルへのプログラミングを検証することは、
前記一組のビットラインと前記１以上の記憶素子と接続している一組の選択ゲートを開放すること、
前記一組の選択ゲートを開放することに続く既定時間の間前記１以上の記憶素子の夫々の前記ビットライン電圧をセンシングすること、を含み、
前記最終検証レベルへのプログラミングを検証することは、
前記一組の選択ゲートを開放することに続く異なる既定時間の間前記１以上の記憶素子の夫々の前記ビットライン電圧をセンシングすることを含む、
ことを特徴とする請求項１から４のいずれか１項に記載の方法。
【請求項６】
各プログラミングパルスを印加した後であって前記中間検証レベルへのプログラミングを検証する前に、前記１以上の記憶素子と接続している一組のビットラインをプリチャージすること、をさらに備え、
前記最終検証レベルへのプログラミングを検証することは、前記中間検証レベルへのプログラミングを検証することの後に前記一組のビットラインをプリチャージすることを含まない、
ことを特徴とする請求項１から４のいずれか１項に記載の方法。
【請求項７】
前記一組の１以上の異なる記憶素子を異なる状態にプログラムするために前記一組へ１以上の付加的なプログラミングパルスを印加すること、
各付加的なプログラミングパルスを印加した後に、前記異なる状態に対応した異なる最終検証レベルへの前記１以上の記憶素子のプログラミングを検証すること、を含み、
前記異なる最終検証レベルは、前記特定状態に対する前記最終検証レベルと前記中間検証レベルよりも高い、
ことを特徴とする請求項１から６のいずれか１項に記載の方法。
【請求項８】
不揮発性メモリシステムであり、
一組の不揮発性記憶素子と、
前記一組の記憶素子と接続している管理回路とを備え、
前記管理回路は、
前記一組の１以上の記憶素子を特定状態にプログラムするために前記一組へ１以上のプログラミングパルスを印加し、
各プログラミングパルスを印加した後に、前記管理回路は、前記一組の記憶素子に第１電圧を印加し、前記１以上の記憶素子の夫々のビットライン電圧を第１参照電位と比較することによって、前記特定状態に対応した中間検証レベルへの前記１以上の記憶素子のプログラミングを検証し、
各プログラミングパルスを印加した後に、前記管理回路は、前記一組の記憶素子に第２電圧を印加し、前記１以上の記憶素子の夫々の前記ビットライン電圧を第２参照電位と比較することによって、前記特定状態に対応した最終検証レベルへの前記１以上の記憶素子のプログラミングを検証し、
前記第２参照電位は、前記「中間参照レベルへのプログラミングを検証すること」から生じる、前記１以上の記憶素子の夫々の前記ビットライン電圧の低下を補償することを特徴とする不揮発性メモリシステム。
【請求項９】
前記管理回路は、前記１以上の記憶素子が前記中間検証レベル以上のときに、前記「中間参照レベルへのプログラミングを検証すること」から生じる、前記１以上の記憶素子の夫々の前記ビットライン電圧の低下を補償するレベルでの第２参照電位を供給することを特徴とする請求項８の不揮発性メモリシステム。
【請求項１０】
前記第２参照電位は、前記第１電圧が印加された前記１以上の記憶素子が前記中間検証レベル以上のときに前記１以上の不揮発性記憶素子のビットラインが放電する電荷量に本質的に等しい分だけ、前記第１参照電圧よりも低いことを特徴とする請求項８又は９の不揮発性メモリシステム。
【請求項１１】
前記第２参照電位は、前記第１電圧が印加されたときに前記中間検証レベル以上である記憶素子のビットライン放電の電荷量に本質的に等しい分だけ、前記第１参照電圧よりも低いことを特徴とする請求項８又は９の不揮発性メモリシステム。
【請求項１２】
前記１以上の記憶素子と前記管理回路と接続している一組のビットラインと、
前記一組のビットラインと前記１以上の記憶素子と接続している一組の選択ゲートと、をさらに備えており、
前記管理回路は、各プログラミングパルスを印加した後であって前記中間検証レベルへのプログラミングを検証する前に、前記一組のビットラインをプリチャージし、
前記管理回路は、前記一組の選択ゲートを開放し、前記一組の選択ゲートを開放することに続く既定時間の間前記１以上の記憶素子の夫々の前記ビットライン電圧をセンシングすることによって、前記中間検証レベルへのプログラミングを検証し、
前記管理回路は、前記一組の選択ゲートを開放することに続く異なる既定時間の間前記１以上の記憶素子の夫々の前記ビットライン電圧をセンシングすることによって、前記最終検証レベルへのプログラミングを検証する、
ことを特徴とする請求項８から１１のいずれか１項に記載の不揮発性メモリシステム。
【請求項１３】
前記１以上の記憶素子と接続している一組のビットラインをさらに備えており、
前記管理回路は、各プログラミングパルスを印加した後であって前記中間検証レベルへのプログラミングを検証する前に、前記一組のビットラインをプリチャージし、
前記管理回路は、前記最終検証レベルへのプログラミングを検証するために、前記中間検証レベルへのプログラミングを検証した後に前記一組のビットラインをプリチャージしない、
ことを特徴とする請求項８から１１のいずれか１項に記載の不揮発性メモリシステム。
【請求項１４】
前記一組の不揮発性記憶素子は、一組のＮＡＮＤフラッシュメモリセルであることを特徴とする請求項８から１３のいずれか１項に記載の不揮発性メモリシステム。
【請求項１５】
前記中間検証レベルは雑検証電圧であることを特徴とする請求項８から１４のいずれか１項に記載の不揮発性メモリシステム。
【国際調査報告】
2010532541.tif 000031
2010532541.tif 000032