(57)【要約】  不揮発性記憶システムにおいて、プログラム動作の途中に、使用している長い期間のプログラミングパルスを、短い期間のプログラミングパルスに切り替えることによって、プログラム外乱を削減することができる。切替ポイントは、温度、選択ワードラインの位置及び／又はトリガ状態への記憶素子の追跡調査に基づくことがある。切替ポイントは、温度が高いときほど、及びドレイン側に位置するワードラインの場合ほど、早く行うことができる。トリガ状態は、温度に基づいて選択できる。切り替えをトリガするためにトリガ状態に達することを要求される記憶素子の部分にも、温度の関数を設定できる。短い期間のプログラミングパルスは、禁止された記憶素子のためのチャネルブーストを改善し、それによってこれらの記憶素子のためのプログラム外乱を削減する。
2012531003.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性記憶装置を動作させるための方法であって、
プログラム動作中に、第１のプログラミングパルス列（１３０１）を、一組のワードライン（ＷＬ０からＷＬ６３）のなかの選択されたワードライン（ＷＬｎ）に印加する工程と、
切り替え基準が満たされるのか否かを判断する工程（１５２０）と、
前記切り替え基準が満たされる場合、前記プログラム動作中に、第１のプログラミングパルス列を印加することに代えて、おける第２のプログラミングパルス列（１３０２）を、前記選択されたワードラインに印加することに切り替える工程と、
を有し、
前記一組のワードラインは、一組の記憶素子（７００、７１０）に接続されるとともに、前記選択されたワードラインは、前記一組の記憶素子なかの少なくとも１つの選択された記憶素子及び少なくとも１つの非選択の記憶素子と接続されており、
前記切り替え基準は温度に依存するものであり、
前記第２のプログラミングパルス列のなかの少なくとも一つは、前記第１のプログラミングパルス列のなかの少なくとも一つよりも、短い期間（△ｔ２）を有する、方法。
【請求項２】
前記温度が相対的に高いときほど、プログラム動作において第２のプログラミングパルス列（１３０２）の印加が早期に開始され、
前記温度が相対的に低いときほど、プログラム動作において第２のプログラミングパルス列（１３０２）の印加が遅く開始される、請求項１に記載の方法。
【請求項３】
前記温度が十分に低い（Ｔ２）場合には前記切り替え基準が満たされず、前記第１のプログラミングパルス列の印加から第２のプログラミングパルス列の印加への切り替えは行われず、前記プログラム動作が完了するまで前記第１のプログラミングパルス列が印加され、前記第１のプログラミングパルス列の各々は同じ期間を有する、請求項１又は２に記載の方法。
【請求項４】
前記第１のプログラミングパルス列の各々は、第１の期間（△ｔ１）を有し、
前記第２のプログラミングパルス列の各々は、前記第１の期間よりも短い第２の期間（△ｔ２）を有する、請求項１から３のいずれか一項に記載の方法。
【請求項５】
前記第２の期間は、前記第１の期間の３分の１から２分の１の間である、請求項１から４のいずれか一項に記載の方法。
【請求項６】
前記切り替え基準が満たされるのか否かを判断する工程は、前記一組の記憶素子のなかの一部の記憶素子が、４つ以上の状態のなかの一つの状態へプログラミングされたのか否かを判断することを含み、前記一つの状態は前記温度に基づくものである、請求項１から５のいずれか一項に記載の方法。
【請求項７】
前記温度が相対的に高いとき、前記一つの状態は相対的に低い状態であり、
前記温度が相対的に低いとき、前記一つの状態は相対的に高い状態である、請求項６に記載の方法。
【請求項８】
最低位から最高位まで４つのデータ状態Ｅ、Ａ、Ｂ及びＣがあり、
前記温度がＴ２からＴ３までのとき、前記一つの状態は状態Ｂであり、
前記温度がＴ１からＴ２までのとき、前記一つの状態は状態Ａであり、
Ｔ１＜Ｔ２＜Ｔ３である、請求項６に記載の方法。
【請求項９】
最低位から最高位まで８つのデータ状態Ｅ、Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、及びＧがあり、
前記温度がＴ２からＴ３までのとき、前記一つの状態は状態Ｄであり、
前記温度がＴ１からＴ２までのとき、前記一つの状態は状態Ｆであり、
Ｔ１＜Ｔ２＜Ｔ３である、請求項６に記載の方法。
【請求項１０】
前記切り替え基準が満たされるのか否かを判断する工程は、前記一組の記憶素子のなかの所定の数の記憶素子が、４つ以上の状態のなかの所定の状態へのプログラミングされたのか否かを判断する工程を含み、
前記所定の数は前記温度に基づくものである、請求項６に記載の方法。
【請求項１１】
選択されたＮＡＮＤストリング及び非選択のＮＡＮＤストリングを含む一組のＮＡＮＤストリング（７００、７１０）と、
一組のワードラインに接続された一又は複数の制御回路（５１０、５５０）と、
を備え、
各ＮＡＮＤストリングは複数の記憶素子を含み、前記一組のＮＡＮＤストリングは、一組のワードライン（ＷＬ０からＷＬ６３）に接続されており、一組のワードラインは、一組のワードラインのソース側と一組のワードラインのドレイン側との間に伸びており、
前記一又は複数の制御回路は、前記一組の記憶素子のなかの異なる部分集合を、４以上の状態のなかの異なる状態へそれぞれプログラミングするプログラム動作を実行し、
前記プログラム動作中、前記一又は複数の制御回路は、（ａ）第１のプログラミングパルス列（１３０１）を前記一組のワードラインのなかの選択されたワードラインに印加し、（ｂ）切り替え基準が満たされるのか否かを判断し、ここで前記切り替え基準は温度に依存するものであり、（ｂ）前記切り替え基準が満たされる場合に、第１のプログラミングパルス列を印加することに代えて、前記プログラム動作における第２のプログラミングパルス列（１３０２）を、前記選択されたワードラインに印加することに切り替え、ここで前記第２のプログラミングパルス列の少なくとも一つは、前記第１のプログラミングパルスの少なくとも一つよりも短い期間を有する、不揮発性記憶システム。
【請求項１２】
前記温度が相対的に高いときほど、プログラム動作において第２のプログラミングパルス列（１３０２）の印加が早期に開始され、
前記温度が相対的に低いときほど、プログラム動作において第２のプログラミングパルス列（１３０２）の印加が遅く開始される、請求項１１に記載の不揮発性記憶システム。
【請求項１３】
前記第１のプログラミングパルス列の各々は、第１の期間（△ｔ１）を有し、
前記第２のプログラミングパルス列の各々は、前記第１の期間よりも短い第２の期間（△ｔ２）を有する、請求項１１又は１２に記載の不揮発性記憶システム。
【請求項１４】
前記切り替え基準が満たされるのか否かを判断するために、前記一又は複数の制御回路は、前記一組の記憶素子のなかの一部の記憶素子が、４つ以上の状態のなかの一つの状態へプログラミングされたのか否かを判断し、
前記温度が閾値を超えている場合、前記一つの状態は前記４つ以上の状態のなかの一つの特定のプログラム状態であり、
前記温度が前記閾値未満である場合、前記一つの状態は前記４つ以上の状態のなかの他のより高い特定のプログラム状態である、請求項１１から１３のいずれか一項に記載の不揮発性記憶システム。
【請求項１５】
前記温度が閾値（Ｔ２）を超えている場合、前記一つの状態は前記４つ以上の状態のなかの最低位のプログラム状態（Ａ）であり、
前記温度が前記閾値未満である場合、前記一つの状態は前記４つ以上の状態の内のなかの最低位から二番目のプログラミング状態（Ｂ）である、請求項１４に記載の不揮発性記憶システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、不揮発性メモリに関する。
【背景技術】
【０００２】
半導体メモリは、様々な電子装置に使用されることが一般的になってきている。例えば、不揮発性半導体メモリは、携帯電話、デジタルカメラ、パーソナルデジタルアシスタント、モバイルコンピュータ、非モバイルコンピュータ及び他の装置の中に使用されている。電気的消去・プログラム可能型読取専用メモリ（ＥＥＰＲＯＭ）と、フラッシュメモリは、最も普及している不揮発性半導体メモリの１つである。ＥＥＰＲＯＭの一種であるフラッシュメモリを用いると、従来のフル機能を備えたＥＥＰＲＯＭとは対照的に、メモリアレイ全体のコンテンツ、又はメモリの一部のコンテンツを１つのステップで消去できる。
【０００３】
従来のＥＥＰＲＯＭとフラッシュメモリの何れもが、半導体基板内のチャネル領域上に配置され、そのチャネル領域から絶縁されたフローティングゲートを利用している。フローティングゲートは、ソース領域とドレイン領域の間に配置されている。制御ゲートは、フローティングゲート上に配置されており、そのフローティングゲートから絶縁されている。このように形成されたトランジスタの閾値電圧（ＶＴＨ）は、フローティングゲート上に保持される電荷量によって制御される。つまり、そのソースとドレインの間の導通を可能にするためにトランジスタをオンにする前に制御ゲートに印加しなければならない電圧の最小量は、そのフローティングゲート上の電荷レベルにより制御される。
【０００４】
いくつかのＥＥＰＲＯＭ及びフラッシュメモリ素子は２つの範囲の電荷を記憶するために使用されるフローティングゲートを有するため、メモリエレメントは２つの状態、たとえば消去状態とプログラム状態の間でプログラミング／消去できる。各メモリエレメントは１ビットのデータを記憶できるため、このようなフラッシュメモリ素子はバイナリフラッシュメモリ素子と呼ばれることもある。
【０００５】
マルチ状態（マルチレベルとも呼ばれる）フラッシュメモリ素子が、複数の別個の許可／有効プログラム閾値電圧範囲を識別することによって実現される。各閾値電圧範囲は、メモリ素子内で符号化される一組のデータビットの所定値に相当する。例えば、各メモリエレメントは、そのエレメントを４つの別々の閾値電圧範囲に相当する４つの別々の電荷バンドの内の１つに置くことができ、２ビットのデータを記憶できる。
【０００６】
通常、プログラム動作中に制御ゲートに印加されるプログラム電圧ＶＰＧＭは、経時的に大きさが大きくなる一連のパルスとして印加される。プログラム電圧は、選択されたワードラインに印加され得る。１つの考えられる手法では、パルスの大きさは、例えば０．２から０．４Ｖ等の所定のステップサイズでそれぞれの連続パルスで大きくなる。ＶＰＧＭは、フラッシュメモリエレメントの制御ゲートに印加され得る。プログラミングパルス間の期間では、検証動作が実施される。すなわち、並行してプログラミングされているエレメントのグループの内の各エレメントのプログラミングレベルは、エレメントがプログラミングされている検証レベル以上であるか否かを判断するために、連続プログラミングパルスの間に読み出される。マルチ状態フラッシュメモリエレメントのアレイの場合、検証ステップは、エレメントがそのデータ関連検証レベルに達したのかどうかを判断するために、エレメントの状態ごとに実行され得る。例えば、４つの状態にデータを記憶できるマルチ状態メモリエレメントは、３つの比較点について検証動作を実行する必要がある場合がある。
【０００７】
さらに、ＥＥＰＲＯＭ又はＮＡＮＤストリング内のＮＡＮＤフラッシュメモリ素子等のフラッシュメモリ素子をプログラミングするときには、通常、ＶＰＧＭが制御ゲートに印加され、ビットラインが接地され、例えば記憶素子などのセル又はメモリエレメントのチャネルからの電子がフローティングゲートの中に注入される。電子がフローティングゲート内に蓄積すると、フローティングゲートは負に帯電され、メモリエレメントの閾値電圧は上昇し、メモリエレメントがプログラミングされた状態にあると見なされる。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、困難であり続ける１つの問題は、プログラム外乱である。プログラム外乱は、他の選択されたＮＡＮＤストリングのプログラミング中に、禁止されている選択されていないＮＡＮＤストリングで発生することがある。プログラム外乱は、非選択の不揮発性記憶素子の閾値電圧が、他の不揮発性記憶素子のプログラミングのためにシフトされると発生する。プログラム外乱は、まだプログラミングされていない消去された記憶素子だけではなく、以前にプログラミングされた記憶素子でも発生することがある。
【課題を解決するための手段】
【０００９】
期間の短いプログラミングパルスを使用して、チャネルのブーストを向上し、それによってプログラム外乱を抑制する方法及び不揮発性記憶装置が提供される。
【００１０】
プログラム動作の途中で、使用するプログラミングパルスを、期間の長いプログラミングパルスから、期間の短いプログラミングパルスへ切り替えることにより、プログラム外乱を抑制することができる。切替ポイントは、温度、選択ワードラインの位置、及び／又はトリガ状態に達した記憶素子の追跡調査に基づくことができる。温度が高いときほど、あるいは、選択ワードラインがドレイン側に近いときほど、切替ポイントを早期にすることができる。トリガ状態の選定は、温度に基づいて行うことができる。さらに、どれぐらいの記憶素子がトリガ状態に達したときに切り替えを行うかについても、温度に応じて定めることができる。
【図面の簡単な説明】
【００１１】
【図１ａ】ＮＡＮＤストリングの平面図。
【００１２】
【図１ｂ】ＮＡＮＤストリングの等価回路図。
【００１３】
【図２】ＮＡＮＤストリングの断面図。
【００１４】
【図３】３つのＮＡＮＤストリングを示す回路図。
【００１５】
【図４】ＮＡＮＤフラッシュ記憶素子のアレイのブロック図。
【００１６】
【図５】単一行／列デコーダ及び読み出し／書き込み回路を使用する不揮発性メモリシステムのブロック図。
【００１７】
【図６】検出ブロックの一実施形態を示すブロック図。
【００１８】
【図７】全ビットラインメモリアーキテクチャ用、又は奇数−偶数メモリアーキテクチャ用のブロックへのメモリアレイの編成の例を示す図。
【００１９】
【図８】閾値電圧分布及びワンパスプログラミングの例を示す図。
【００２０】
【図９】閾値電圧分布及びツーパスプログラミングの例を示す図。
【００２１】
【図１０ａ】種々の閾値電圧分布を示し、不揮発性メモリをプログラミングするためのプロセスを説明する図。
【図１０ｂ】種々の閾値電圧分布を示し、不揮発性メモリをプログラミングするためのプロセスを説明する図。
【図１０ｃ】種々の閾値電圧分布を示し、不揮発性メモリをプログラミングするためのプロセスを説明する図。
【００２２】
【図１１】ＮＡＮＤストリングの断面図であり、ブースト中のチャネル接合漏れを示す図。
【００２３】
【図１２ａ】近傍チャネルがブーストされている、及びブーストされていないときのチャネルブースト電位を示す。
【００２４】
【図１２ｂ】温度の関数としてチャネルブースト電位を示す。
【００２５】
【図１２ｃ】プログラミングパルス幅及び選択されたワードラインの位置の関数としてチャネルブースト電位を示す。
【００２６】
【図１２ｄ】プログラミングパルス数に関する切替ポイントを、選択ワードラインの位置と温度の関数として示す。
【００２７】
【図１２ｅ】トリガ状態に関する切替ポイントを、温度の関数として示す。
【００２８】
【図１２ｆ】トリガ状態に達するための記憶素子の数に関する切替ポイントを、温度の関数として示す。
【００２９】
【図１３】プログラム動作でのプログラミングパルスを示し、ここでは、プログラム動作の途中で、プログラミングパルスの期間を短くする切り替えが行われる。
【００３０】
【図１４】記憶素子において見られるプログラミングパルスであって、ワードラインのデコーダ側からの距離に基づいて変化するものを示す。
【００３１】
【図１５】不揮発性メモリをプログラミングする方法の一実施形態を説明するフローチャートであって、プログラミングパルス数に基づいて、プログラミングパルスの期間を短くする切り替えが行われるものを示す。
【００３２】
【図１６】不揮発性メモリをプログラミングする方法の一実施形態を説明するフローチャートであって、トリガ状態に達した記憶素子の数に基づいて、プログラミングパルスの期間を短くする切り替えが行われるものを示す。
【発明を実施するための形態】
【００３３】
本発明の実施に適したメモリシステムの一例は、ＮＡＮＤフラッシュメモリ構造を用いる。そのＮＡＮＤフラッシュメモリ構造は２つの選択ゲートの間に直列に接続された複数のトランジスタを有している。直列に配置されたトランジスタと選択ゲートは、ＮＡＮＤストリングと呼ばれる。図１ａは、１つのＮＡＮＤストリングを示す平面図である。図１ｂはその等価回路である。図示されたＮＡＮＤストリングは、直列に接続されており、第１の選択ゲート１２０と第２の選択ゲート１２２の間に挟まれている４つのトランジスタ１００、１０２、１０４、及び１０６を有する。選択ゲート１２０は、ＮＡＮＤストリングをビットライン１２６に接続する。選択ゲート１２２は、ＮＡＮＤストリングをソースライン１２８に接続する。選択ゲート１２０は、制御ゲート１２０ＣＧに適切な電圧が印加されることによって制御される。選択ゲート１２２は、制御ゲート１２２ＣＧに適切な電圧が印加されることによって制御される。トランジスタ１００、１０２、１０４及び１０６のそれぞれは制御ゲート及びフローティングゲートを有する。トランジスタ１００は、制御ゲート１００ＣＧ及びフローティングゲート１００ＦＧを有する。トランジスタ１０２は制御ゲート１０２ＣＧ及びフローティングゲート１０２ＦＧを有する。トランジスタ１０４は、制御ゲート１０４ＣＧ及びフローティングゲート１０４ＦＧを有する。トランジスタ１０６は、制御ゲート１０６ＣＧおよびフローティングゲート１０６ＦＧを有する。制御ゲート１００ＣＧは、ワードラインＷＬ３に接続されており、制御ゲート１０２ＣＧはワードラインＷＬ２に接続されており、制御ゲート１０４ＣＧはワードラインＷＬ１に接続されており、制御ゲート１０６ＣＧはワードラインＷＬ０に接続されている。一実施形態では、トランジスタ１００、１０２、１０４及び１０６は、それぞれ、メモリセルである。他の実施形態では、メモリセルは、複数のトランジスタを有していることもある。あるいは、図示されているのとは異なることもある。選択ゲート１２０は、選択ラインＳＧＤに接続されている。選択ゲート１２２は、選択ラインＳＧＳに接続されている。
【００３４】
図２は、前述されたＮＡＮＤストリングの断面図を示す。ＮＡＮＤストリングのトランジスタはｐ−ウェル領域１４０に形成されている。ｐ−ウェル領域は、代わりにｐ−タイプ基板１４４のｎ−ウェル領域１４２内にあってよい。各トランジスタは、制御ゲート（１００ＣＧ、１０２ＣＧ、１０４ＣＧ、及び１０６ＣＧ）とフローティングゲート（１００ＦＧ、１０２ＦＧ、１０４ＦＧ、及び１０６ＦＧ）から構成される積層ゲート構造を有している。フローティングゲートは、ｐ−ウェルの表面に、酸化膜又は他の誘電体膜の上に形成される。制御ゲートはフローティングゲートの上にあり、ポリシリコン間の誘電体層が制御ゲート及びフローティングゲートを分離している。メモリセル（１００、１０２、１０４及び１０６）の制御ゲートは、ワードラインを構成している。Ｎ＋ドープ層１３０、１３２、１３４、１３６、及び１３８が、隣接するセルの間で共有され、これによってセルが互いに直列に接続されており、ＮＡＮＤストリングを形成している。これらのＮ＋ドープ層は、各セルのソース及びドレインを構成している。例えば、Ｎ＋ドープ層１３０はトランジスタ１２２のドレイン及びトランジスタ１０６のソースとしての機能を果たし、Ｎ＋ドープ層１３２はトランジスタ１０６のドレイン及びトランジスタ１０４のソースとしての機能を果たし、Ｎ＋ドープ層１３４はトランジスタ１０４のドレイン及びトランジスタ１０２のソースとしての機能を果たし、Ｎ＋ドープ層１３６はトランジスタ１０２のドレイン及びトランジスタ１００のソースとしての機能を果たし、Ｎ＋ドープ層１３８はトランジスタ１００のドレイン及びトランジスタ１２０のソースとしての機能を果たす。Ｎ＋ドープ層１２６は、ＮＡＮＤストリングのためのビットラインに接続する。一方、Ｎ＋ドープ層１２８は複数のＮＡＮＤストリングのための１つの共通ソースラインに接続する。
【００３５】
図１ａ、１ｂおよび図２はＮＡＮＤストリング内の４個のメモリセルを示しているが、本明細書に説明される技術とともに使用されるＮＡＮＤストリングは、４個未満のメモリセル又は４個以上のメモリセルを有することができることに留意されたい。たとえば、いくつかのＮＡＮＤストリングは、８個、１６個、３２個又はそれ以上のメモリセルを含む。
【００３６】
各メモリセルは、アナログ形式又はデジタル形式で表されるデータを記憶できる。１ビットのデジタルデータを記憶するとき、メモリセルの閾値電圧の範囲は、論理データ「１」及び「０」が割り当てられる２つの範囲に分割される。ＮＡＮＤタイプのフラッシュメモリの一例では、電圧閾値は、メモリセルが消去された後に負となり、論理「１」として定義される。プログラム動作後に閾値電圧は正となり、論理「０」として定義される。閾値電圧が負であり、制御ゲートに０ボルトを印加することにより読み出しが試行されると、メモリセルがオンして論理１が記憶されていることが示される。閾値電圧が正であり、制御ゲートに０ボルトを印加することにより読み出し動作が試行されると、メモリセルはオンせず、論理ゼロが記憶されることが示される。
【００３７】
メモリセルは、複数の状態を記憶し、それによって複数ビットのデジタルデータを記憶することもできる。データの複数の状態を記憶するケースでは、閾値電圧ウィンドウは状態の数に分割される。例えば、４つの状態が使用される場合、データ値「１１」、「１０」、「０１」、及び「００」に割り当てられる４つの閾値範囲がある。ＮＡＮＤタイプメモリの一例では、消去動作後の閾値電圧は負であり、「１１」として定義される。正の閾値電圧は「１０」、「０１」、及び「００」の状態のために使用される。いくつかの実施形態では、フローティングゲートの閾値電圧が誤って隣の物理状態にシフトしても、１ビットだけが影響を受けるように、データ値（例えば、論理状態）は、グレーコード割り当てを使用して閾値範囲に割り当てられる。メモリセルにプログラムされたデータと、セルの閾値電圧範囲の間の特殊な関係は、メモリセルのために採用されるデータ符号化方式に依存する。
【００３８】
ＮＡＮＤフラッシュメモリに加えて、他のタイプの不揮発性メモリも使用できる。
【００３９】
フラッシュＥＥＰＲＯＭシステムで役立つ別のタイプのメモリセルは、不揮発的に電荷を蓄えるために、導電性のフローティングゲートの代わりに非導電性の誘電材料を用いる。酸化ケイ素、窒化ケイ素、及び酸化ケイ素（「ＯＮＯ」）から形成される三層誘電体が、導電性の制御ゲートと、メモリセルチャネル上の半導体基板の表面の間に挟まれる。セルは、セルチャネルから窒化物に電子を注入することによってプログラミングされ、電子は限られた領域内に閉じ込められ、蓄えられる。次に、この蓄えられた電荷が、検出可能な態様で、セルのチャネルの一部の閾値電圧を変化させる。セルは、窒化物の中にホットホールを注入することによって消去される。ドープされたポリシリコンゲートがメモリセルチャネルの一部の上に延在していることで別個の選択トランジスタが形成されている分割ゲート構造の類似するセルが提供される。
【００４０】
別の手法では、ＯＮＯ誘電体層がソース拡散とドレイン拡散の間のチャネルを横切って延在する各ＮＲＯＭセルに２ビットが記憶される。１データビットの電荷は、ドレインに隣接する誘電体層に局所化され、他のデータビットの電荷はソースに隣接する誘電体層に局所化される。マルチ状態データ記憶は、誘電体内の空間的に分離された電荷蓄積領域のバイナリ状態を別々に読み出すことによって実現される。
【００４１】
図３は、３つのＮＡＮＤストリングを示す回路図である。ＮＡＮＤ構造を使用するフラッシュメモリシステムの典型的なアーキテクチャは、数個のＮＡＮＤストリングを含む。例えば、３つのＮＡＮＤストリング３２０、３４０、及び３６０は、さらに多くのＮＡＮＤストリングを有するメモリアレイ内に示される。ＮＡＮＤストリングのそれぞれが２個の選択ゲートと４個の記憶素子を含む。図面を簡素化するために４個の記憶素子が示されているが、最新のＮＡＮＤストリングは、例えば、３２個又は６４個の記憶素子を有することもある。
【００４２】
例えば、ＮＡＮＤストリング３２０は、選択ゲート３２２及び３２７、並びに、記憶素子３２３から３２６を含み、ＮＡＮＤストリング３４０は選択ゲート３４２及び３４７、並びに、記憶素子３４３から３４６を含み、ＮＡＮＤストリング３６０は選択ゲート３６２及び３６７、並びに、記憶素子３６３から３６６を含む。各ＮＡＮＤストリングは、その選択ゲート（例えば、選択ゲート３２７、３４７、又は３６７）によってソースラインに接続される。選択ラインＳＧＳは、ソース側選択ゲートを制御するために使用される。多様なＮＡＮＤストリング３２０、３４０及び３６０は、各選択ゲート３２２、３４２、３６２内の選択トランジスタによって、各ビットライン３２１、３４１、及び３６１に接続される。これらの選択トランジスタは、ドレイン選択ラインＳＧＤによって制御される。他の実施形態では、選択ラインは、必ずしもＮＡＮＤストリングの間で共通である必要はない。つまり、異なる選択ラインを、異なるＮＡＮＤストリングのために設けることもできる。ワードラインＷＬ３は、記憶素子３２３、３４３、及び３６３の制御ゲートに接続される。ワードラインＷＬ２は、記憶素子３２４、３４４、及び３６４の制御ゲートに接続される。ワードラインＷＬ１は、記憶素子３２５、３４５、及び３６５の制御ゲートに接続される。ワードラインＷＬ０は、記憶素子３２６、３４６、及び３６６の制御ゲートに接続される。図から分かるように、各ビットライン及びそれぞれのＮＡＮＤストリングは、記憶素子のアレイ又は一組の列を含む。ワードライン（ＷＬ３、ＷＬ２、ＷＬ１、及びＷＬ０）は、アレイ又は一組の行を含む。各ワードラインは、行内の各記憶素子の制御ゲートを接続する。又は、制御ゲートは、ワードライン自体によって提供されてもよい。例えば、ワードラインＷＬ２は、記憶素子３２４、３４４、及び３６４のための制御ゲートを提供する。実際には、１本のワードライン上に数千の記憶素子がある場合がある。
【００４３】
各記憶素子はデータを記憶することができる。例えば、１ビットのデジタルデータを記憶するとき、記憶素子の閾値電圧（ＶＴＨ）の範囲は、論理データ「１」および「０」を割り当てられる２つの範囲に分割される。ＮＡＮＤタイプのフラッシュメモリの一例では、ＶＴＨは、記憶素子が消去された後に負となり、論理「１」として定義される。プログラム動作後のＶＴＨは、正となり、論理「０」として定義される。ＶＴＨが負であるときに読み出しが試行されると、記憶素子はオンして論理「１」が記憶されていることが示される。ＶＴＨが正であるときに読み出しが試行されると、記憶素子はオンせず、論理「０」が記憶されていることが示される。記憶素子は、例えば複数ビットのデジタルデータ等、複数のレベルの情報を記憶することもできる。この場合、ＶＴＨの値の範囲はデータのレベルの数に分けられる。例えば、４レベルの情報が記憶される場合、データ値「１１」、「１０」、「０１」、及び「００」に割り当てられる４つのＶＴＨの範囲がある。ＮＡＮＤタイプメモリの一例では、消去動作後のＶＴＨは負となり、「１１」と定義される。正のＶＴＨは、「１０」、「０１」、及び「００」の状態のために使用される。記憶素子にプログラミングされるデータと、素子の閾値電圧範囲の間の特定の関係は、記憶素子のために採用されるデータ符号化方式に依存する。
【００４４】
フラッシュ記憶素子をプログラミングするとき、プログラム電圧は記憶素子の制御ゲートに印加され、記憶素子と関連付けられたビットラインが接地される。チャネルからの電子がフローティングゲートの中に注入される。電子がフローティングゲート内に蓄積すると、フローティングゲートは負に帯電し、記憶素子のＶＴＨが上昇する。プログラミングされている記憶素子の制御ゲートにプログラム電圧を印加するために、プログラム電圧が適切なワードライン上で印加される。前述されたように、それぞれのＮＡＮＤストリングの中の１個の記憶素子が同じワードラインを共有する。例えば、図３の記憶素子３２４をプログラミングするとき、プログラム電圧は、記憶素子３４４及び３６４の制御ゲートにも印加される。
【００４５】
ただし、プログラム外乱は、他のＮＡＮＤストリングのプログラミング中に禁止されたＮＡＮＤストリング、及び、ときにはプログラミングされたＮＡＮＤストリング自体でも発生することがある。プログラム外乱は、非選択の不揮発性記憶素子の閾値電圧が、他の不揮発性記憶素子のプログラミングのためにシフトされるときに発生する。プログラム外乱は、まだプログラミングされていない消去された記憶素子だけではなく、以前にプログラミングされた記憶素子でも発生することがある。多様なプログラム外乱のメカニズムによって、ＮＡＮＤフラッシュメモリ等の不揮発性記憶素子のための使用可能な動作ウィンドウが制限されることがある。
【００４６】
例えば、ＮＡＮＤストリング３２０が禁止され（例えば、それが、現在プログラミングされている記憶素子を含まない非選択のＮＡＮＤストリングであり）、ＮＡＮＤストリング３４０がプログラミングされている（例えば、それが、現在プログラミングされている記憶素子を含む選択されたＮＡＮＤストリングである）場合、プログラム外乱は、ＮＡＮＤストリング３２０で発生することがある。例えば、パス電圧ＶＰＡＳＳが低い場合、禁止されたＮＡＮＤストリングのチャネルが十分にブーストされず、非選択のＮＡＮＤストリングの選択されたワードラインが意図せずプログラミングされることがある。別の考えられる状況では、ブーストされた電圧が、ゲート誘導ドレインリーク（ＧＩＤＬ）又は他の漏れ機構によって引き下げられ、同じ問題を生じさせることがある。後にプログラミングされる他の隣接する記憶素子との容量結合のための電荷記憶素子のＶＴＨのシフト等の他の影響も、プログラム外乱に寄与することがある。
【００４７】
図４は、図１ａと１ｂに図示されるようなＮＡＮＤ記憶素子のアレイ４００の例を示す。各列に沿って、ビットライン４０６が、ＮＡＮＤストリング４５０のドレイン選択ゲートのドレイン端子４２６に接続されている。ＮＡＮＤストリングの各行に沿って、ソースライン４０４が、ＮＡＮＤストリングのソース選択ゲートの全てのソース端子４２８に接続されている。
【００４８】
記憶素子のアレイは、記憶素子の多数のブロックに分割される。フラッシュＥＥＰＲＯＭシステムでは一般的なように、ブロックは消去の単位である。つまり、各ブロックは、共に消去される最小数の記憶素子を有する。各ブロックは、一般に複数のページに分割される。ページは、プログラミングの最小単位である。１ページまたは複数ページのデータは、通常、記憶素子の１行に記憶される。例えば、１行は、通常、いくつかのインタリーブされたページを含む、あるいは、１行は１ページを構成してよい。ページの全ての記憶素子は、一度に読み出され、または、プログラミングされる。さらに、ページは、１つまたは複数のセクタからユーザデータを記憶できる。セクタは、ユーザデータの便利な単位としてホストによって使用される論理概念である。つまり、セクタは、通常、コントローラに限定されるオーバヘッドデータは含まない。オーバヘッドデータは、セクタのユーザデータから計算されたエラー訂正コード（ＥＣＣ）を含むことができる。（後述される）コントローラの一部は、データがアレイにプログラミングされるときにＥＣＣを計算し、データがアレイから読み出されるときにそれをチェックする。また、ＥＣＣ及び／又は他のオーバヘッドデータは、それらが関連するユーザデータ以外の異なるページに記憶されてもよいし、もしくは、異なるブロックに記憶されてもよい。
【００４９】
ユーザデータのセクタは一般に５１２バイトであり、磁気ディスクドライブ内のセクタのサイズに対応する。オーバヘッドデータは一般に、追加の１６〜２０バイトである。多数のページがブロックを構成し、それは８ページから、例えば最大３２、６４、１２８またはそれ以上のページのいずれであってもよい。いくつかの実施形態では、ＮＡＮＤストリングの列はブロックを含む。
【００５０】
一実施形態では、メモリ記憶素子は、十分な期間に亘ってｐ−ウェルが消去電圧（例えば１４から２２Ｖ）に上昇され、ソースラインとビットラインがフローティングしている間に、選択されたブロックのワードラインを接地させることによって消去される。容量結合のために、非選択ワードライン、ビットライン、選択ライン、及び、ｃ−ソースも消去電圧のかなりの部分まで引き上げられる。従って、強力な電界が選択された記憶素子のトンネル酸化物層に印加され、フローティングゲートの電子が、通常はファウラー−ノードハイムトンネル現象によって基板側に放出されるにつれて選択された記憶素子のデータが消去される。電子がフローティングゲートからｐ−ウェル領域に移されるのにしたがって、選択された記憶素子の閾値電圧は引き下げられる。消去はメモリアレイ全体、別々のブロック、又は、他の記憶素子の単位で実行できる。
【００５１】
図５は、単一行／列デコーダ及び読み出し／書き込み回路を使用する不揮発性メモリシステムのブロック図である。同図は、一実施形態に従って記憶素子のページを同時に読み出し、プログラミングするための読み出し／書き込み回路を有するメモリ素子５９６を示す。メモリ素子５９６は、１つ以上のメモリダイ５９８を有する。メモリダイ５９８は、２次元のアレイの記憶素子４００、制御回路５１０、及び、読み出し／書き込み回路５６５を有する。いくつかの実施形態では、記憶素子のアレイは三次元である場合がある。メモリアレイ４００は行復号部５３０を介してワードラインによって、及び、列復号部５６０を介してビットラインによってアドレスできる。読み出し／書き込み回路５６５は複数の検出ブロック５００を有しており、１ページの記憶素子を並列に読み出し又はプログラムすることができる。一般に、制御部５５０は、１つ以上のメモリダイ５９８のように同じメモリ素子５９６（例えば、取り外し可能なストレージカード）内に含まれる。コマンド及びデータは、ライン５２０を介してホストと制御部５５０の間、及び、ライン５１８を介して制御部と１つ以上のメモリダイ５９８の間で送られる。
【００５２】
制御回路５１０は、読み出し／書き込み回路５６５と協調して、メモリアレイ４００上でメモリ動作を実行する。制御回路５１０は、状態マシン５１２、オンチップアドレスデコーダ５１４、温度検出回路５１５、及び電力制御モジュール５１６を含む。状態マシン５１２は、メモリ動作のチップレベル制御を提供する。オンチップアドレスデコーダ５１４は、ホストまたはメモリコントローラによって使用されるとともに、デコーダ５３０と５６０によって使用されるハードウェアアドレスの間にアドレスインタフェースを提供する。温度検出回路５１５は、さらに後述されるように、プログラム動作で使用するための温度に基づいた信号またはデータを提供するために使用できる。電力制御モジュール５１６は、メモリ動作中、ワードライン及びビットラインに供給される電力及び電圧を制御する。
【００５３】
いくつかの実装例では、図５の構成要素のいくつかを組み合わせることができる。多様な設計では、記憶素子アレイ４００以外の（単独又は組み合わせた）１つまたは複数の構成要素を、管理回路つまり制御回路と見なすことができる。例えば、一又は複数の管理回路又は制御回路は、制御回路５１０、状態マシン５１２、デコーダ５１４／５６０、温度検出回路５１５、電力制御５１６、検出ブロック５００、読み出し／書き込み回路５６５、制御部５５０等の内の任意の一又は組み合わせを含んでよい。
【００５４】
温度検出回路５１５に関して、ＮＡＮＤフラッシュメモリ素子等の現在の不揮発性記憶素子では、温度の変動が、データを読み出し、書き込む上で多様な問題を引き起こす。メモリ素子は、それが位置する環境に基づいて変化する温度にさらされる。例えば、いくつかの現在のメモリ素子は、−３０℃から＋８５℃の間での使用のために定格されている。産業用の用途、軍事用途、及び消費者用途でも素子は大きな温度変動を経験することがある。
【００５５】
温度補償信号を提供するための多様な技法が知られている。これらの技法の一又は複数は、ＶＯＰＴＩＭＡＬに温度依存性を与えるために使用できる。この技法も可能ではあるが、これらの技法の大部分は実際の温度測定値を得ることに依存していない。例えば、本明細書に参照して組み込まれる、「Ｖｏｌｔａｇｅ  Ｇｅｎｅｒａｔｉｏｎ  Ｃｉｒｃｕｉｔｒｙ  Ｈａｖｉｎｇ  Ｔｅｍｐｅｒａｔｕｒｅ  Ｃｏｍｐｅｎｓａｔｉｏｎ」と題する米国特許第６，８０１，４５４号は、温度係数に基づいて、読み出し電圧を不揮発性メモリに出力する電圧生成回路を説明する。回路は、温度から独立した部分、及び、温度が上昇するにつれて増加する温度依存部分を含むバンドギャップ電流を使用する。本明細書に参照して組み込まれる、「Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ  Ｗｉｔｈ  Ｔｅｍｐｅｒａｔｒｅ−Ｃｏｍｐｅｎｓａｔｅｄ  Ｄａｔａ  Ｒｅａｄ」と題する米国特許第６，５６０，１５２号は、データ記憶素子のソース又はドレインに印加される電圧を印加するバイアス発生器回路を使用する。任意の他の既知の技法だけではなく、これらの技法のどれかも、温度検出回路５１５によって使用できる。
【００５６】
別の実施形態では、不揮発性メモリシステムは、二重の行／列デコーダ及び読み出し／書き込み回路を使用する。メモリアレイ４００に対する種々の周辺回路によるアクセスは、アレイの対向する側で対称的に実施され、これによって各側のアクセスライン及び回路の密度が半減される。したがって、行デコーダは２つの行デコーダに分割されており、列デコーダは２つの列デコーダに分割されている。同様に、読み出し／書き込み回路は底部からビットラインに接続する読み出し／書き込み回路と、アレイ４００の上部からビットラインに接続する読み出し／書き込み回路に分割される。このようにして、読み出し／書き込みモジュールの密度は、基本的に２分の１、削減される。
【００５７】
図６は、検出ブロックの一実施形態を示すブロック図である。個々の検出ブロック５００は、検出モジュール５８０と呼ばれるコア部分、及び共通部分５９０に区切られる。一実施形態では、ビットラインごとに別個の検出モジュール５８０、及び、複数の検出モジュールの一組に１つの共通部分５９０がある。一例では、検出ブロックは、１つの共通部分５９０及び８つの検出モジュール５８０を含む。グループ内の検出モジュールのそれぞれが、データバス５７２を介して関連付けられた共通部分と通信する。
【００５８】
検出モジュール５８０は、接続されているビットラインの導通電流が所定の閾値レベルを超えているのか、それとも下回っているのかを判断する検出回路５７０を含む。検出モジュール５８０は、接続されたビットライン上で電圧状態を設定するために使用されるビットラインラッチ５８２も含む。例えば、ビットラインラッチ５８２で所定の状態にラッチされることにより、接続されたビットラインは、プログラム禁止（例えば、１．５から３Ｖ）を指定する状態にプルされることになる。
【００５９】
共通部分５９０は、プロセッサ５９２、一組のデータラッチ５９４、及び、一組のデータラッチ５９４とデータバス５２０の間に結合されているＩ／Ｏインタフェース５９６を含む。プロセッサ５９２は、計算を実行する。例えば、その機能の１つは、検出された記憶素子に記憶されるデータを特定し、一組のデータラッチにその決定されたデータを記憶することである。一組のデータラッチ５９４は、読み出し動作の間にプロセッサ５９２によって決定されるデータビットを記憶するために使用される。それは、プログラム動作中にデータバス５２０からインポートされるデータビットを記憶するためにも使用される。インポートされたデータビットは、メモリの中にプログラミングされるべきことを意味する書き込みデータを表す。Ｉ／Ｏインタフェース５９６は、データラッチ５９４とデータバス５２０の間のインタフェースを提供する。
【００６０】
読み出し又は検出の間、システムの動作は、アドレス指定された記憶素子に対する異なる制御ゲート電圧の供給を制御する状態マシン５１２の制御下にある。メモリによってサポートされる多様なメモリ状態に対応する多様な所定の制御ゲート電圧をステップ単位で実行するにつれ、検出モジュール５８０がこれらの電圧の内の１つでトリップすることがあり、出力がバス５７２を介して検出モジュール５８０からプロセッサ５９２に提供される。その時点で、プロセッサ５９２は、入力回線５９３を介して、検出モジュールのトリップ事象及び状態マシンからの印加制御ゲート電圧についての情報を検討することによって、結果として生じるメモリ状態を決定する。次に、それは、メモリ状態を２進コード化し、結果として生じるデータビットをデータラッチ５９４の中に記憶する。コア部分の別の実施形態では、ビットラインラッチ５８２は、検出モジュール５８０の出力をラッチするためのラッチとして、また、上述されたビットラインラッチとして二重の役割を果たす。
【００６１】
いくつかの実装例は、複数のプロセッサ５９２を含むことがある。一実施形態では、出力ラインのそれぞれがともにワイヤードＯＲ化されるように、各プロセッサ５９２が出力ライン（不図示）を含む。いくつかの実施形態では、出力ラインは、ワイヤードＯＲラインに接続される前に反転される。ワイヤードＯＲを受け取る状態マシンは、プログラミングされている全てのビットがいつ所望されるレベルに達したのかを判断できるため、この構成によって、いつプログラミングプロセスが完了したのかの、プログラム検証プロセスの間の迅速な判断が可能になる。例えば、各ビットがその所望されたレベルに達すると、そのビットの論理ゼロがワイヤードＯＲラインに送られる（またはデータ１が反転される）。全てのビットがデータ０（又は反転されたデータ１）を出力すると、次に状態マシンはプログラミングプロセスを終了しなければならないことを知る。各プロセッサは８つの検出モジュールと通信するため、状態マシンはワイヤードＯＲラインを８度読み出す必要がある。つまり、論理がプロセッサ５９２に追加され、状態マシンがワイヤードＯＲラインを１度だけ読み出せばよいように、関連付けられたビットラインの結果を蓄積する。同様に、論理レベルを正しく選ぶことによって、グローバル状態マシンはいつ第１のビットがその状態を変更するのかを検出し、アルゴリズムを適切に変更する。
【００６２】
プログラミング又は検証の間に、プログラミングされるデータは、データバス５２０から一組のデータラッチ５９４に記憶される。状態マシンの制御下にあるプログラム動作は、アドレス指定された記憶素子の制御ゲートに印加される一連のプログラミング電圧パルスを含む。各プログラミングパルスの後ろには、記憶素子が所望されるメモリ状態にプログラミングされたかどうかを判断するために読み返し（検証）が続く。プロセッサ５９２は、所望されるメモリ状態に関して読み返しメモリ状態を監視する。この２つが一致するとき、ビットラインがプログラム禁止を指定する状態にプルされるように、プロセッサ５９２がビットラインラッチ５８２を設定する。これが、プログラミングパルスがその制御ゲートに出現したとしても、ビットラインに結合された記憶素子がさらにプログラミングされるのを禁止する。他の実施形態では、プロセッサはビットラインラッチ５８２を初期にロードし、検証プロセスの間に検出回路がそれを禁止値に設定する。
【００６３】
データラッチスタック５９４は、検出モジュールに対応するデータラッチのスタックを含む。一実施形態では、検出モジュール５８０ごとに３つのデータラッチがある。（必須ではないが）いくつかの実装例では、データラッチは、その中に記憶される並列データが、データバス５２０用のシリアルデータに変換され、逆の場合も同じとなるように、シフトレジスタとして実装される。好ましい実施形態では、データのブロックをシリアル転送によって入力又は出力できるように、ｍ個の記憶素子の読み出し／書き込みブロックに対応する全てのデータラッチがともにリンクしてブロックシフトレジスタが形成され得る。特に、読み出し／書き込みモジュールのバンクは、一組のデータラッチのそれぞれが、あたかもそれらが読み出し／書き込みブロック全体のためのシフトレジスタの一部であるかのように、データをデータバスの中に又はデータバスの中から次々とシフトするように適応される。
【００６４】
図７は、全ビットラインメモリアーキテクチャ用、又は、奇数−偶数メモリアーキテクチャ用のブロックへのメモリアレイの編成の例を示す。メモリアレイ４００の例示的な構造が説明される。一例として、１０２４個のブロックに区切られるＮＡＮＤフラッシュＥＥＰＲＯＭが説明される。各ブロックに記憶されるデータは、同時に消去され得る。一実施形態では、ブロックは、同時に消去される記憶素子の最小単位である。この例では、各ブロックにビットラインＢＬ０、ＢＬ１、．．．ＢＬ８５１１に対応する８，５１２の列がある。全ビットライン（ＡＢＬ）アーキテクチャ（アーキテクチャ７１０）と呼ばれる一実施形態では、ブロックの全ビットラインは、読み出し動作及びプログラム動作の間に同時に選択され得る。共通ワードラインに沿った、任意のビットラインに接続された記憶素子は、同時にプログラミングされ得る。
【００６５】
提供されている例では、４個の記憶素子が直列で接続され、ＮＡＮＤストリングを形成する。４個の記憶素子が各ＮＡＮＤストリングに含まれるように示されているが、４個以上又は４個未満（例えば、１６、３２、６４、又は別の数）を使用できる。ＮＡＮＤストリングの１つの端子はドレイン選択ゲートを介して対応するビットラインに接続され（ゲートドレインラインＳＧＤを選択するために接続され）、別の端子はソース選択ゲートを介してｃ−ソースに接続される（ゲートソースラインＳＧＳを選択するために接続される）。
【００６６】
奇数−偶数アーキテクチャ（アーキテクチャ７００）と呼ばれる別の実施形態では、ビットラインは偶数ビットライン（ＢＬｅ）及び奇数ビットライン（ＢＬｏ）に分割される。奇数／偶数ビットラインアーキテクチャでは、共通ワードラインに沿った、奇数ビットラインに接続された記憶素子は、一度にプログラミングされる。一方、共通ビットラインに沿った、偶数ビットラインに接続された記憶素子は別のときにプログラミングされる。この例では、各ブロックに偶数列及び奇数列に分割される８，５１２の列があり、６４個の記憶素子が１列内に直列で接続され、ＮＡＮＤストリングを形成するのが示されている。
【００６７】
読み出し動作及びプログラム動作の１つの構成の間に、４，２５６個の記憶素子が同時に選択される。選択された記憶素子は、同じワードライン及び同種のビットライン（例えば、偶数又は奇数）を有する。したがって、論理ページを形成する５３２バイトのデータを同時に読み出す、又はプログラミングすることができ、メモリの１ブロックが少なくとも８論理ページ（奇数ページ及び偶数ページにそれぞれ４ワードライン）を記憶できる。マルチ状態の記憶素子の場合、各記憶素子が２ビットのデータを記憶し、これらの２個のビットのそれぞれが異なるページに記憶されるとき、１ブロックは１６論理ページを記憶できる。また、他のサイズのブロック及びページも使用できる。
【００６８】
ＡＢＬアーキテクチャ又は奇数−偶数アーキテクチャどちらかの場合、記憶素子は、ｐ−ウェルを消去電圧（例えば２０Ｖ）に上昇させ、選択されたブロックのワードラインを接地することによって消去され得る。ソースライン及びビットラインはフローティングしている。消去はメモリアレイ全体、別々のブロック、又はメモリ素子の一部である記憶素子の別の単位で実行され得る。電子は、記憶素子のＶＴＨが負になるように、記憶素子のフローティングゲートからｐ−ウェル領域に転送される。
【００６９】
読み出し動作及び検証動作では、選択ゲート（ＳＧＤ及びＳＧＳ）が２．５から４．５Ｖの範囲の電圧に接続され、非選択のワードライン（例えば、ＷＬ２が選択されたワードラインであるとき、ＷＬ０、ＷＬ１、及びＷＬ３）が読み出しパス電圧ＶＲＥＡＤ（通常、４．５から６Ｖの範囲の電圧）に上昇され、トランジスタをパスゲートとして動作させる。選択ワードラインＷＬ２はある電圧に接続され、その電圧のレベルは、対象の記憶素子のＶＴＨがそのレベルを上回っているのか、それとも下回っているのかを判断するために、各読み出し動作及び検証動作ごとに指定される。例えば、２レベルの記憶素子のための読み出し動作では、選択ワードラインＷＬ２が接地され、ＶＴＨが０ボルトよりも高いかどうかが検出され得る。２レベルの記憶素子のための検証動作では、選択ワードラインＷＬ２は、例えば０．８Ｖに接続され、その結果、ＶＴＨが少なくとも０．８Ｖを超えたかどうかが検証される。ソース及びｐ−ウェルは０Ｖである。偶数ビットライン（ＢＬｅ）であると仮定される選択ビットラインは、例えば０．７Ｖというレベルにプリチャージされる。ＶＴＨがワードラインの読み出しレベル又は検証レベルよりも高い場合には、対象の記憶素子と関連付けられたビットライン（ＢＬｅ）の電位レベルは、非導電性記憶素子のために高レベルに維持される。他方、ＶＴＨが読み出しレベル又は検証レベルよりも低い場合には、関係するビットライン（ＢＬｅ）の電位レベルは、導電性記憶素子がビットラインを放電するため、例えば０．５Ｖ未満等の低レベルに減少する。したがって、記憶素子の状態が、ビットラインに接続されている電圧コンパレータ検出増幅器により検出され得る。
【００７０】
図８は、一組の閾値電圧分布及びワンパスプログラミングの例を示す。記憶素子アレイのための例示の閾値電圧分布は、各記憶素子が２ビットのデータを記憶する場合に提供される。第１の閾値電圧分布８００は、消去された（状態Ｅ）記憶素子に提供される。３つの閾値電圧分布８０２、８０４、及び８０６は、それぞれプログラミングされた状態Ａ、Ｂ及びＣを表す。一実施形態では、Ｅ分布内の閾値電圧は負であり、Ａ、Ｂ及びＣ分布内の閾値電圧は正である。分布８０３、８０５及び８０７は、状態Ａ、Ｂ、Ｃの記憶素子がそれぞれ、最終分布８０２、８０４、８０６に達する前に経験する一時的で過渡的な分布を表す。例えば、分布８０３は、状態ＡにプログラムされるべきＡ状態記憶素子のいくつか又は一部が、すでに状態Ａに達していることを示す。これらの記憶素子は、閾値電圧ＶＴＨ＞Ｖｖａとなっており、Ａ状態に達したと検証される。残りのＡ状態記憶素子は、閾値電圧ＶＴＨ＜Ｖｖａとなっており、未だＡ状態に達していない。
【００７１】
同様に、分布８０５は、状態ＢにプログラムされるべきＢ状態記憶素子のいくつか又は一部が、すでに状態Ｂに達していることを示し、分布８０７は、状態ＣにプログラムされるべきＣ状態記憶素子のいくつか又は一部が、すでに状態Ｃに達していることを示す。特定の状態にある記憶素子の数は、その閾値電圧が対応する検証レベルを上回るとされた記憶素子をカウントすることによって、特定することができる。
【００７２】
それぞれの独立した閾値電圧範囲は、一組のデータビットの所定値に対応する。記憶素子にプログラミングされたデータと記憶素子の閾値電圧レベルの特定の関係は、記憶素子のために採用されるデータ符号化方式に依存する。一実施形態では、フローティングゲートの閾値電圧が誤ってその隣の物理状態にシフトすると、１ビットだけが影響を受けるように、データ値がグレーコード割り当てを使用して閾値電圧範囲に割り当てられる。一例は、閾値電圧範囲Ｅ（状態Ｅ）に「１１」を、閾値電圧範囲Ａ（状態Ａ）に「１０」を、閾値電圧範囲Ｂ（状態Ｂ）に「００」を、及び閾値電圧範囲Ｃ（状態Ｃ）に「０１」を割り当てる。しかしながら、他の実施形態では、グレーコードは使用されない。４つの状態が図示されているが、本技術は、４つの状態より多い又は少ない状態を含む他のマルチ状態構造に使用することもできる。
【００７３】
記憶素子からデータを読み出すための３つの読み出し基準電圧、Ｖｒａ、Ｖｒｂ、及びＶｒｃが提供される。所与の記憶素子の閾値電圧がＶｒａ、Ｖｒｂ、及びＶｒｃを超えているのか、それとも下回っているのかをテストすることによって、システムは、例えば、プログラミング状態等の、記憶素子の状態を特定することができる。
【００７４】
さらに、３つの検証基準電圧Ｖｖａ、Ｖｖｂ、及びＶｖｃが、記憶素子からデータを読み出すために提供される。記憶素子を状態Ａにプログラミングするとき、システムは、それらの記憶素子がＶｖａ以上の閾値電圧を有するかどうかをテストする。記憶素子を状態Ｂにプログラミングするとき、システムは、記憶素子がＶｖｂ以上の閾値電圧を有するかどうかをテストする。記憶素子を状態Ｃにプログラミングするとき、システムは、記憶素子がＶｖｃ以上の閾値電圧を有するかどうかをテストする。
【００７５】
一実施形態では、フルシーケンスプログラミングとして知られるが、記憶素子は、消去状態Ｅからプログラム状態Ａ、Ｂ又はＣの何れかに直接的にプログラミングされる。例えば、まず、プログラミングされる記憶素子の集合中の全ての記憶素子が消去状態Ｅとなるように、当該集合が消去される場合がある。図１３の制御ゲート電圧シーケンスによって示されるような一連のプログラミングパルスは、記憶素子を直接的に状態Ａ、Ｂ、又はＣにプログラミングするために使用される。いくつかの記憶素子は状態Ｅから状態Ａにプログラムされ、他の記憶素子は状態Ｅから状態Ｂに、及び／又は、状態Ｅから状態Ｃにプログラミングされる。ＷＬｎ上で状態Ｅから状態Ｃにプログラミングするときには、ＷＬｎ下のフローティングゲート上の電荷の量の変化が、状態Ｅから状態Ａに、又は、状態Ｅから状態Ｂにプログラミングするときの電荷の変化と比較して最大となるので、ＷＬｎ―１下の隣接フローティングゲートに対する寄生結合の量は最大値に達する。状態Ｅから状態Ｂにプログラミングするときは、隣接フローティングゲートへの結合の量はより少ない。状態Ｅから状態Ａにプログラミングするときは、結合の量はさらに削減される。
【００７６】
図９は、２つの異なるページ（下側ページと上側ページ）に対してデータを記憶するマルチ状態記憶素子をプログラムするツーパス技術の一例を示している。図８の閾値電圧分布８００、８０２、８０４および８０６の繰り返しで４つの状態が示されている。これらの状態およびその示すビットは、状態Ｅ（１１）、状態Ａ（１０）、状態Ｂ（００）及び状態Ｃ（０１）である。状態Ｅの場合、両方のページが「１」を記憶する。状態Ａの場合、下側ページが「０」を記憶し、上側ページが「１」を記憶する。状態Ｂの場合、両方のページが「０」を記憶する。状態Ｃの場合、下側ページが「１」を記憶し、上側ページが「０」を記憶する。なお、各状態に対して特定のビットパターンが割り当てられているが、異なるビットパターンを割り当てることも可能であることに注意する。
【００７７】
第１プログラミングパスでは、記憶素子の閾値電圧レベルは下側の論理ページにプログラムされるビットに従って設定される。そのビットが論理「１」であれば、以前に消去された結果として適切な状態にあるので閾値電圧は変更されない。しかし、プログラムされるビットが論理「０」であれば、矢印９００で示したように、記憶素子の閾値レベルは状態Ａになるように増大される。これによって、第１プログラミングパスを終了する。
【００７８】
第２プログラミングパスでは、記憶素子の閾値電圧レベルは上側論理ページ内にプログラムされるビットに従って設定される。上側論理ページビットが論理「１」を記憶する場合、記憶素子は下側ページビットのプログラミングに依存する状態Ｅ又はＡの一方であり、どちらも上側ページビットは「１」を保持するのでプログラミングは生じない。上側ページビットが論理「０」となる場合、閾値電圧はシフトされる。第１パスによって記憶素子が消去状態Ｅに留まっていれば第２段階で記憶素子をプログラムし、矢印９２０で示したように閾値電圧が状態Ｃ内になるように増大させる。第１プログラミングパスの結果として記憶素子が状態Ａ内にプログラムされれば、記憶素子はさらに第２パスでプログラムされ、矢印９１０で示したように閾値電圧が状態Ｂ内になるように増大させる。第２パスの結果は、下側ページ用のデータを変更することなく、上側ページの論理「０」を記憶するように指定した状態に記憶素子をプログラムすることである。図８および９の両方において、隣接するワードライン上のフローティングゲートへの結合量は最終状態に依存する。
【００７９】
一実施形態では、全ページを充填するのに十分なデータを書き込まれた場合、システムは全シーケンス書き込みを実行するように設定される。十分ではないデータが全ページに書き込まれた場合、プログラミング処理は受け取ったデータを用いて下側ページプログラミングを実行できる。次のデータを受け取ったときは、システムは上側ページをプログラミングする。さらに別の実施形態では、システムは下側ページをプログラムするモードで書き込みを開始し、ワードラインの記憶素子の全体（又は大部分）を充填するために次の十分なデータを受け取った場合、全シーケンスプログラミングモードに変換する。
【００８０】
図９の分布８０２、８０４、８０６はそれぞれ、状態Ａ、Ｂ、Ｃの記憶素子が最終分布８０２、８０４、８０６に達する前に経験する一時的で過渡的な分布（図８に示されている）を伴ってもよい。
【００８１】
図１０ａから図１０ｃは、前のページの隣接記憶素子に書き込んだ後で、特定のページに対してその特定の記憶素子を書き込むことによって、その特定の記憶素子に対するフローティングゲート間結合効果を低減する不揮発性メモリをプログラムする別の方法を開示している。実装形態の一例では、不揮発性記憶素子は、４つのデータ状態を用いて記憶素子毎に２ビットのデータを記憶する。例えば、状態Ｅが消去状態であり、状態Ａ、Ｂ及びＣがプログラム状態であると仮定する。状態Ｅはデータ１１を記憶している。状態Ａはデータ０１を記憶している。状態Ｂはデータ１０を記憶している。状態Ｃはデータ００を記憶している。両方のビットは隣接する状態Ａ及びＢの間で変化するので、これは非グレイ符号化の一例である。データの物理的データ状態への他の符号化を用いることもできる。各記憶素子は２ページ分のデータを記憶する。参照のために、これらのページのデータは上側ページ及び下側ページと呼ばれるが、他のラベルを与えることもできる。状態Ａを参照すると、上側ページはビット０を記憶し、下側ページはビット１を記憶している。状態Ｂを参照すると、上側ページはビット１を記憶し、下側ページはビット０を記憶している。状態Ｃを参照すると、両方のページがビットデータ０を記憶している。
【００８２】
プログラミング処理は、２つのステップの処理である。第１ステップでは、下側ページをプログラムする。下側ページがデータ１のままである場合、記憶素子状態は状態Ｅ（分布１０００）に留まる。データが０にプログラムされる場合、記憶素子の電圧の閾値は、記憶素子が状態Ｂ’（分布１０１０）にプログラミングされるように引き上げられる。状態Ｂ’は、中間状態又はあいまいな状態である。従って、図１０ａは、状態Ｅから状態Ｂ’への記憶素子のプログラミングを示している。状態Ｂ’は暫定的状態Ｂであり、従って、検証点はＶｖｂ’として示され、Ｖｖｂより低い。
【００８３】
分布１０１０は、状態Ｂ’の記憶素子が分布１０１０に達する前に経験する一時的で過渡的な分布（図示されず）を伴ってもよい。
【００８４】
一実施形態では、状態Ｅから状態Ｂ’に記憶素子をプログラムした後、ＮＡＮＤストリング内の隣接記憶素子（ＷＬｎ＋１）をその下側ページに対してプログラムする。例えば、図２を見直すと、記憶素子１０６用の下側ページをプログラムした後、記憶素子１０４の下側ページをプログラムする。記憶素子１０４をプログラムした後、記憶素子１０４が状態Ｅから状態Ｂ’に上昇した閾値電圧を有していた場合、フローティングゲート間結合の影響は記憶素子１０６の見かけの閾値電圧を上昇させる。これは、図１０ｂの閾値電圧分布１０１２に示したように状態Ｂ’の閾値電圧分布を拡大する効果を有する。閾値電圧分布のこの見かけの拡大は、上側ページをプログラムする際に修正される。また、状態Ｅは、分布１００２によって示されるように、より少ない範囲に広げられてもよい。
【００８５】
図１０ｃは、上側ページをプログラムする工程を示している。記憶素子が消去状態Ｅであって上側ページが１に留まる場合、記憶素子は状態Ｅ（分布１００２）に留まる。記憶素子が状態Ｅであり、その上側ページデータが０にプログラムされる場合、記憶素子の閾値電圧は上昇し、記憶素子は状態Ａ（分布１００４）になる。記憶素子が中間の閾値電圧分布１０１２であって上側ページデータが１に留まる場合、記憶素子は最終状態Ｂ（分布１００６）にプログラムされる。記憶素子が中間の閾値電圧分布１０１２であって上側ページデータがデータ０になる場合、記憶素子の閾値電圧は上昇し、記憶素子は状態Ｃ（分布１００８）になる。図１０ａ−ｃに示す工程は、対して、隣接する記憶素子への上側ページのプログラムのみが、特定の記憶素子の明確な閾値電圧に影響を与えるので、フローティングゲートのフローティングゲートカップリングへの影響を低減することができる。選択的な符号化の一例は、分布１０１２を、上側ページが１であれば状態Ｃへ遷移させ、上側ページが０であれば状態Ｂへ遷移させる。
【００８６】
分布１００４、１００６、１００８はそれぞれ、状態Ａ、Ｂ及びＣの記憶素子が最終分布１００４、１００６及び１００８に達する前に経験する一時的で過渡的な分布を伴ってもよい。
【００８７】
図１０ａから図１０ｃは、４つのデータ状態、及び、２ページのデータに関しての例を提供するが、教示される概念は、４つの状態より多い又は少なく、２ページより多い又は少ない他の実装例に適用できる。例えば、記憶素子ごとに８つ又は１６の状態のあるメモリ素子が、現在、計画されている、又は生産中である。
【００８８】
図１１は、ＮＡＮＤストリングの断面図であり、ブースト中のチャネル接合漏れを示す。断面図は、制御ゲート（ＣＧ）、つまり複数の記憶素子を横切って延在する、選択されたワードライン１１００を示す。各記憶素子は、例えばＦＧ１１０２、１１０４、及び１１０６等の、通常はｐ−ウェル内の基板のそれぞれのチャネル領域１１０８、１１１０、１１１２の上方にあるフローティングゲート（ＦＧ）を含む。各チャネル領域は、ページから出現するとして視覚化できるＮＡＮＤストリングの一部である。この例では、チャネル領域１１１０は、禁止されたストリングの領域であり、チャネル領域１１０８及び１１１２はプログラミングされたストリングの領域である。Ｖｂｏｏｓｔ＞０Ｖは、チャネル領域１１１０のブーストされた電圧電位を表す。
【００８９】
図３に関して前述されたように、非選択ＮＡＮＤストリング内にある記憶素子は、プログラミングを禁止し、それによってプログラム外乱を回避するためにプログラム動作中に、それらのチャネルがブーストされる。ブーストは、通常、プログラム電圧Ｖｐｇｍが選択ワードラインに印加されている間に、通過電圧Ｖｐａｓｓを非選択のワードラインに印加することによって達成される。ただし、Ｖｐａｓｓが高すぎることはあってはならず、さもなければＶｐａｓｓは非選択のＮＡＮＤストリングをプログラムしてしまう。ブーストは、フローティングゲート全体の電圧を低下させることによって、フローティングゲートのプログラミングを禁止する。最もプログラム外乱の影響を受けやすい禁止された記憶素子は、選択されたワードライン１１００と連通し、したがって相対的に高いプログラム電圧Ｖｐｇｍを受ける記憶素子である。非選択のワードラインと連通する禁止された記憶素子は、その制御ゲートでプログラム電圧の代わりにより低い通過電圧Ｖｐａｓｓを有し、したがってプログラム外乱の影響を受けにくい。
【００９０】
ＮＡＮＤフラッシュメモリが縮小を続けるにつれ、２つの隣接するチャネルの間の結合がより強くなるため、チャネルブーストはより難しくなる傾向がある。チャネルブースト電位は特定のレベルで飽和又は固定されることがある。このレベルを超えると、たとえＶｐａｓｓがさらに増加されても、チャネルブースト電位は大きく増加できない。禁止されている所与の記憶素子の場合、隣接する記憶素子の両方ともがプログラミングされているときと同様に、このチャネルブースト飽和は、同じワードラインに接続される２つの隣接する記憶素子のチャネルが、０Ｖ等の低電圧に留まるときに最も深刻である。例えば、チャネル１１１０はブースト電圧Ｖｂｏｏｓｔによって禁止され、チャネル１１０８及び１１１２は禁止されておらず、例えば０Ｖを受け取っている。雑／ファインプログラム動作の細かい段階のようないくつかの場合、選択されたＮＡＮＤストリングのチャネルは、プログラミングを減速するために、０．５Ｖへ等、０Ｖをわずかに上回って上げることができる。ただし、このレベルも、数ボルトであり得るＶｂｏｏｓｔより著しく低い。
【００９１】
ブースト電位飽和は、深刻なプログラム外乱問題を引き起こすことがある。例えば、あるワードライン上のいくつかの記憶素子が、記憶素子メモリ素子ごとに３ビット及び４ビットにおいて等、高閾値電圧にプログラミングされると、プログラム電圧は非常に高レベルまで増加できるが、チャネル電位は、ブースト飽和のため十分に増加できない。プログラム外乱は、このプログラミングの状況、及び他のプログラミングの状況で容易に起こり得る。
【００９２】
特に、チャネルブースト飽和は、チャネルブースト電位が高いときに、記憶素子のソース／ドレイン領域内の接合漏れによって引き起こされることがある。ただし、プログラミングパルス幅が削減されるとき、ブースト飽和を改善することができ、したがってブースト電位はより高くなる。これは、接合漏れ期間がより短いためである可能性がある。隣接するチャネルでの電位は、中心ブーストチャネルの側面方向電場εｘを強力に変調し、接合漏れに影響を与えることができる。シャロートレンチアイソレーションをゲート酸化膜として、近傍チャネルをゲートとして見ると、この影響は、漏れがゲート電圧によって強力に変調されるゲート誘導ドレインリークにわずかに類似している。垂直の電場εｙも示されている。電子正孔対１１１１が強力な電場によって生成される。
【００９３】
図１２ａは、近傍チャネルがブーストされている、及びブーストされていないときのチャネルブースト電位を示す。横軸は、非選択ワードラインに印加される通過電圧（Ｖｐａｓｓ）を示し、縦軸は、図１１のチャネル１１１０等、禁止／ブーストされたチャネルのチャネルブースト電位（Ｖｂｏｏｓｔ）を示す。チャネルブースト電位は、隣接するチャネルの電位に左右される。隣接チャネルの両方とも禁止されるとき（曲線１２００）、Ｖｂｏｏｓｔは最高になる。隣接チャネルの内の一方が禁止／ブーストされ、他方の隣接チャネルが通電中である／ブーストされておらず、チャネル電位が０Ｖであるとき（曲線１２０２）、Ｖｂｏｏｓｔは２番目に高くなる。隣接チャネルの両方とも通電中であるとき（曲線１２０４）、Ｖｂｏｏｓｔは、最悪のケースである最低になる。いくつかの場合、曲線１２００及び１２０４は、数ボルトの範囲内でのブーストが使用されるとき、少なくとも２Ｖ、異なることがある。
【００９４】
図１２ｂは、温度の関数としてチャネルブースト電位を示す。ブースト飽和は、強力な温度依存を有する。高温で、ブーストはより難しくなり、チャネル中の高い逆バイアス漏れ電流のために、チャネル電位はより低いレベルで飽和する。低温では逆バイアス漏れ電流がはるかに低くなるので、状況は改善され、より高いＶｂｏｏｓｔが達成できる。示されているグラフでは、所与のチャネルの場合、隣接チャネルの両方共が通電中である。室温の場合は、図１２ａにも示されている曲線１２０４に相当する。曲線１２０６は、−３０℃等のより低温でのＶｐａｓｓの関数としてのＶｂｏｏｓｔを表し、曲線１２０８は、＋８５℃等のより高温でのＶｐａｓｓの関数としてのＶｂｏｏｓｔを表す。言及されたように、Ｖｂｏｏｓｔは、より高温でより低くなる。
【００９５】
図１２ｃは、プログラミングパルス幅及び選択されたワードラインの位置の関数としてチャネルブースト電位を示す。縮小されたプログラミングパルス幅、つまり期間は、ブースト飽和を改善し、より高いブースト電位を達成できるようにする。これは、接合漏れ持続時間がより短くなるためである可能性がある。ここでは、横軸はプログラミングパルス（Ｖｐｇｍ）幅を示し、縦軸はＶｂｏｏｓｔを示す。一般に、短いパルス幅は、より高いＶｂｏｏｓｔと相関する。
【００９６】
プログラミングパルス幅を、名目幅の２分の１又は３分の１等に縮小すると、Ｖｂｏｏｓｔを大量に増加することができ、それによってプログラム外乱を大幅に削減できる。ある場合では、プログラミングパルス幅を２０μｓから１０μｓに削減すると、Ｖｂｏｏｓｔは約０．５Ｖと、かなり増加した。プログラミングパルス幅に対するより低い実際的な限度は、図１４に関連してさらに説明されるように課される。
【００９７】
さらに、チャネルは多くの場合、選択されたワードラインが、中間のワードライン（曲線１２１２）又はソース側ワードライン（曲線１２１０）よりもドレイン側ワードライン（曲線１２１４）であるとき、より早期に飽和し得る。これは、例えば、０Ｖ等の分離電圧が、プログラミングパルス中に選択ワードラインのソース側の少なくとも１つのワードラインに印加されるいくつかのブースト方式の場合に当てはまる。分離電圧は、ドレイン側からチャネルのソース側を切断し、ドレイン側プログラミング中に、ブーストがより低くなるようにチャネル容量はより小さくなることがある。したがって、短いパルス幅への切り替えは、より高いワードラインの場合により早く発生することがある。
【００９８】
すなわち、Ｖｂｏｏｓｔは、ドレイン側の選択ワードラインの場合、所与のＶｐｇｍパルス幅にとってより低い。図７に示されるワードライン番号付け方式を使用すると、最も遠いソース側ワードラインはＷＬ０（ワードライン番号０）であり、ワードライン番号は、この例ではＷＬ６３である、最も遠いドレイン側のワードラインに達するまで増加する。ソース側ワードラインは、最も遠いソース側ワードラインの内の数Ｎｓｓのワードラインの範囲内にあるワードラインを包含することがある。ドレイン側ワードラインは、最も遠いドレイン側ワードラインの数Ｎｄｓのワードラインの範囲内にあるワードラインを包含することがある。中間ワードラインは、ソース側ワードラインとドレイン側ワードラインの間にあるワードラインを包含することがある。プログラミングのために選択されるワードラインがここで参照されていることに留意されたい。
【００９９】
プログラミングパルスの期間を短縮すると、プログラム動作を完了するために必要とされるプログラミングパルス数を増加させることになり、長い期間のパルスが使用される場合よりも、より高い振幅のプログラミングパルスが必要となることもある。しかしながら、より短いパルス期間によれば、記憶素子の閾値電圧はより小さい増分で増加し、きめの細かいプログラム動作を行うことができる。さらに、それぞれの短いパルスの後の検証をパスした記憶素子は早期にロックアウトできるので、全体的なプログラミング時間は、大幅に増加すると予想されない。
【０１００】
図１２ｄは、選択ワードライン位置に基づいて調整された、温度（横軸）の関数としてのプログラミングパルス数（縦軸）に関して切替ポイントを示す。言及されたように、より高いＶｂｏｏｓｔを達成する１つの手法は、所与の禁止チャネルの場合、短縮された期間のプログラミングパルスを使用することである。概念的には、これは、１つの長いプログラミングパルスを、２つ以上の短いパルスに分けることを伴う。長い期間のプログラミングパルスから、短い期間のプログラミングパルスへの切り替えは、一又は複数の基準に基づいたプログラム動作を通してある程度までは起こり得る。１つの考えられる手法は、所定のプログラミングパルス数で、つまりプログラム動作で適用されるあるＮ１番目のプログラミングパルスで切り替えることである。また、さらに以下に説明される図１３も参照すること。パルス数は通常パルス振幅に対応するので、本来、切り替えは、プログラミングパルスの振幅が所定レベルに達すると発生する。
【０１０１】
よりきめの細かい手法は、温度及び／又は選択ワードラインの位置を考慮する。例えば、図１２ｄで、曲線１２２４は、選択ワードラインがドレイン側ワードラインであるときのＮ１対温度を示し、曲線１２２２は、選択ワードラインが中間ワードラインであるときのＮ１対温度を示し、曲線１２２０は、選択されたワードラインがソース側ワードラインであるときのＮ１対温度を示す。温度Ｔ１とＴ２の間の低温から中温までの範囲の温度では、それらの曲線は合致するが、短い期間のプログラミングパルスへの切り替えが、プログラム動作において相対的に遅くなされるように、より高いＮ１を採用することができ、そのときプログラミングパルスは比較的に高い振幅に達している。Ｔ２とＴ３の間のより高温の範囲では、短い期間のプログラミングパルスへの切り替えが、プログラム動作において相対的に早くなされるように、より低いＮ１を採用することができ、そのときプログラミングパルスの振幅は、それほど高くなっていない。この方式を使用することによって、チャネルブースト電位飽和の問題は緩和することができ、したがって高いＶｐｇｍでのプログラム外乱が削減される。
【０１０２】
１つの手法では、図１２ｄに示されるような曲線を作成するために多くのメモリ素子が試験され、メモリ素子の制御回路は、この曲線に基づいて切り替えを実装するように構成される。曲線は、表内のデータ点によって画定されてよい。制御回路は、本明細書中に提供される他の曲線を実装するように同様に構成されてよい。
【０１０３】
図１２ｅは、温度の関数としてのトリガ状態に関して切替ポイントを示す。短い期間のプログラミングパルスへの切り替えを実装するための別の手法は、特定のデータ状態へプログラミングされている記憶素子を追跡することを含む。切り替えは、記憶素子の所定の部分が、その特定のデータ状態に達するために検証されるときにトリガできる。通常、プログラム動作中の各プログラミングパルスの後に発生する検証動作は、追加の検証動作が必要とされないように使用できる。一般に、データは、記憶素子あたり整数Ｎ＞１ビットを使用して（例えば、記憶素子あたり４つ以上の状態及び２つ以上のビット）２Ｎデータ状態に符号化され、ほぼ等しい数の記憶素子がそれぞれの状態にプログラミングされる符号化方式が使用される。例えば、４つの状態、つまりＥ、Ａ、Ｂ及びＣで、選択ワードライン上の記憶素子の約４分の１がＥ状態にプログラミングされ、記憶素子の別の４分の１がＡ状態にプログラミングされ、記憶素子の別の４分の１がＢ状態にプログラミングされ、記憶素子の別の４分の１がＣ状態にプログラミングされる。したがって、記憶素子の異なる部分集合が、異なる状態、つまり１つの状態当たり１つの部分集合にプログラミングされる。
【０１０４】
したがって、例えば使用可能な４つ以上の状態の内の１つ等特定の状態が、トリガ状態として選択できる。切り替えは、その特定の状態にプログラミングされることが意図される記憶素子の所定部分が、その特定のデータ状態に到達するために検証されると、トリガできる。例えば、状態Ａがトリガ状態であり、ワードライン上の１０２４個の記憶素子がプログラミングされており、２５６個の記憶素子がＥ状態に留まり、２５６個の記憶素子がＡ状態にプログラミングされ、２５６個の記憶素子がＢ状態にプログラミングされ、２５６個の記憶素子がＣ状態にプログラミングされると仮定する。切り替えは、選択されたワードラインの２５６個のＡ状態の記憶素子の内の所定の部分がＡ状態に達したと検証されると、トリガできる。所定の部分は、記憶素子の内の数Ｎ２、分数、割合等で表すことができる。例えば、Ｎ２は１２８個の記憶素子であり、Ａ状態の記憶素子の２分の１を表すことがある。
【０１０５】
さらに、切り替え状態は、例えばとり得る４つの状態があるときのＡ状態のような、最低位の状態に固定することもできる。又は、切り替え状態は、温度等の基準に基づき動的に且つ適応的に選択できる。温度が、例えばＴ１からＴ２までといった低温のときよりも、例えばＴ２からＴ３までといった高温のときに、より低い切り替え状態を選択することができる。より低い切り替え状態は、より高い切り替え状態と比較して、プログラミングプロセスにおいて比較的に早期の切り替えを生じさせる。例えば、４つのデータ状態があるとき、切り替え状態は、温度がＴ１からＴ２までの場合、状態Ａであってよく、Ｔ２からＴ３までの場合、状態Ｂであってよい。最低位から最高位まで８つのデータ状態、Ｅ、Ａ、Ｂ，Ｃ、Ｄ、Ｅ、Ｆ、及びＧがある場合、トリガ状態は、より高温の場合、例えばＤ状態であってよく、より低温の場合、Ｆ状態であってよい。２つ以上の切り替え状態も使用され得る。
【０１０６】
例えばドレイン側ワードラインの場合はトリガ状態１、及びソースワードライン及び中間ワードラインの場合はトリガ状態２等、トリガ状態は、各ワードラインに、又はワードラインのグループに合わせることができる。例えば、ドレイン側ワードラインの場合Ｔ２＝温度１、及びソース及び中間ワードラインの場合Ｔ２＝温度２等、例えばＴ２等異なるトリガ状態が示される温度を、各ワードラインに、又はワードラインのグループに合わせることも可能である。
【０１０７】
図１２ｆは、温度の関数として、トリガ状態に達するための記憶素子の数に関して切替ポイントを示す。追加のオプションでは、いったん切り替え又はトリガ状態が、温度を基準にして所定の状態又は動的に選択された状態のどちらかとして判断されると、切替ポイントは温度の関数としてさらに改良できる。特に、所定の部分、つまり記憶素子の数Ｎ２が特定のデータ状態に到達したと検証されると、切り替えをトリガできることが言及された。ここでは、Ｎ２は、温度がより高いときにＮ２がより低くなり、温度がより低いときにＮ２がより高くなるように温度の関数として変化する。水平目盛は、トリガ状態の温度範囲を示す。
【０１０８】
例えば、図１２ｆの温度範囲は、Ｔ１からＴ２に、又はＴ２からＴ３に広がってよい（図１２ｅを参照）。所与のトリガ状態の場合、短い期間のプログラミングパルスへの切り替えは、温度がトリガ状態の温度の範囲内で相対的により高いときに、相対的に早く発生する。同様に、短い期間のプログラミングパルスへの切り替えは、温度がトリガ状態の温度の範囲内で相対的により低いときに、相対的に遅く発生する。例えば、状態Ａがトリガ状態であり、温度がその状態の範囲のハイエンドにある場合、Ｎ２は、状態Ａにプログラミングされている選択されたワードラインの記憶素子の７０％である数を表してよく、例えば、考えられる４つの状態を仮定すると、選択されたワードライン上の記憶素子の７０％×１／４と同じであってよい。温度が状態の範囲のローエンドにある場合、Ｎ２は例えば９０％の比較可能な値を表してよい。
【０１０９】
割合単位で、非常に遅い又は速いプログラミング記憶素子に起因する予期せぬ結果を回避するため、Ｎ２は０％又は１００％に近い値を回避する必要がある。試験又はシミュレーションは、Ｎ２の最適値を識別するために使用できる。例えば、特定の温度でのワードライン上の記憶素子は、Ｎ２の特定の値でプログラミングし、読み戻すことができる。読み出し時、ビットエラー数を決定できる。このプロセスは、最低数のエラーを生じさせる値を見つけるためにＮ２の異なる値で繰り返すことができる。さらに、例えば、ドレイン側ワードラインの場合Ｎ２＝値１、及びソース及び中間ワードラインの場合Ｎ２＝値２等、Ｎ２は、各ワードラインに、又はワードラインのグループに合わせることができる。
【０１１０】
図１３は、プログラム動作でのプログラミングパルスを示し、プログラム動作の途中でプログラミングパルスの期間を短縮する切り替えが行われている。言及されたように、短い期間のプログラミングパルスを使用する分割プログラミングパルス幅手法は、より高いブースト電圧を達成できる。Ｖｐｇｍが特定のレベルに達すると、Ｖｐｇｍレベル及びプログラムサイクルの総プログラム時間を維持しながら、そのプログラミングパルスを２つ以上の短いパルスに分割する。それぞれの短いプログラミングパルスの後、チャネルを放電してから、チャネルを再ブーストし、次の短いプログラミングパルスの間、ブースト電位が高いことを確実にする。それぞれの短いプログラミングパルスの後、検証動作を実行することもできる。これは、プログラミングパルスを印加した後に検証動作が続かないことに比較し、プログラム動作を低速化することになるが、この手法では、それぞれの短いパルスの後に検証に合格したビットをロックアウトし、その両側の禁止されたチャネルがプログラミングされることを抑制することができ、ブーストのための最悪のケースの可能性を削減できる。また、一部の短いプログラミングパルスの後に検証動作を行いつつ、検証動作なしで２つ以上の連続する短いプログラミングパルスを印加することも可能である。
【０１１１】
一般に、プログラム動作は、パルス列を選択されたワードラインに印加することを含み、パルス列は、一又は複数の検証パルスが後に続くプログラミングパルスを含む。プログラミングパルスは、任意の数の異なる波形形状を有することがあることに留意されたい。矩形波が示されているが、マルチレベル形状又は傾斜形状等の他の形状も考えられる。さらに、より長い期間のパルスから、短い期間のパルスへのプログラミングパルス期間の切り替えは、パルス列の間に発生することがある。パルス列１３００は、それぞれ時間ｔ０からｔ９に、プログラミングのために選択されたワードラインに印加される、一連のプログラミングパルス１３０５、１３１０、１３１５、１３２０、１３２５、１３３０、１３３５、１３４０、１３４５、１３５０、．．．を含む。一実施形態では、プログラミングパルスは、１２Ｖで開始し、例えば２０から２５Ｖ等の最大値に達するまで、それぞれの連続プログラミングパルスごとに、例えば０．５Ｖの増分で増加する電圧ＶＰＧＭを有する。プログラミングパルスの間には、検証動作で使用される例えば３つの検証パルス等の検証パルスがある。いくつかの実施形態では、例えば状態Ａ、Ｂ、及びＣ等、データがプログラミングされている状態ごとに検証パルスがある場合がある。他の実施形態では、より多くの又はより少ない検証パルスがある場合がある。各組の検証パルスは、例えば、Ｖｖａ、Ｖｖｂ、及びＶｖｃ（図９）又はＶｖｂ’（図１０ａ）という振幅を有する場合がある。例の検証パルス１３０６が、プログラミングパルス１３０５に続き、例の検証パルス１３０７がプログラミングパルス１３３５に続く。
【０１１２】
切替ポイント１３０３は、プログラミングパルス１３０５、１３１０、１３１５、１３２０、１３２５、及び１３３０等の（期間△ｔｌの）長い期間のプログラミングパルスが使用される第１のプログラミングパルス列１３０１と、プログラミングパルス１３３５、１３４０、１３４５及び１３５０等の（期間△ｔ２＜△ｔ１の）短い期間のプログラミングパルスが使用される第２のプログラミングパルス列１３０２の間の境界を示す。切替ポイントは、温度、選択ワードライン位置、及び／又はトリガ状態までの記憶素子の追跡を含む、本明細書に説明される多様な基準を使用して決定できる。
【０１１３】
図１４は、ワードラインのデコーダ側からのそれらの距離に基づいて、記憶素子に見られるプログラミングパルスを示す。プログラム電圧は、選択されたワードラインの一端であって、ワードラインのデコーダ側に印加される。ワードライン抵抗容量（ＲＣ）遅延のため、プログラミングパルスの形状は、デコーダ側から遠くにある記憶素子と比較して、デコーダ側の近くにある記憶素子の場合は異なる。プログラミングパルス１４００は、△ｔ１という期間を有する切り替え前の長い期間のプログラミングパルスであって、デコーダ側の近くにある記憶素子に見られるものを表す。一方、プログラミングパルス１４０２は、デコーダ側から遠くにある記憶素子に見られる切り替え前のプログラミングパルスを表す。パルス１４０２は、その前縁で減衰するが、パルスはＶｐｇｍの所望される振幅に達する。プログラミングパルス１４１０は、△ｔ２という期間を有する切り替え後の短い期間のプログラミングパルスであって、デコーダ側の近くにある記憶素子に見られるものを表す。一方、プログラミングパルス１４１２は、デコーダ側から遠くにある記憶素子に見られる切り替え後のプログラミングパルスを表す。パルス１４１２は、その前縁で減衰し、Ｖｐｇｍの所望される振幅をわずかに下回るＶｐｇｍ−△のレベルに達する。
【０１１４】
したがって、デコーダ側の近くにある記憶素子に見られるＶｐｇｍは、デコーダ側から遠くにある記憶素子に見られるＶｐｇｍよりも、わずかに高くなる。しかしながら、これはプログラム外乱を悪化させない。なぜなら、ワードラインのデコーダ側に近い記憶素子の場合、プログラミングはより早期に終了できるので、これらの記憶素子は、短い期間のパルスが印加された後に、追加のプログラミングからロックアウトされると、それらのチャネルはプログラミングから禁止されるためである。したがって所与の記憶素子の場合、隣接記憶素子のチャネルが禁止されると、チャネルブースト電位は著しく高くなる。したがって、より期間のプログラミングパルスを使用するとき、デコーダ側に近い記憶素子について、プログラム外乱は悪化しない。
【０１１５】
ワードラインのＲＣ遅延も、パルス幅がどれほど小さくなり得るかに関してより低い実際的な限度を課すことに留意されたい。パルス幅が小さすぎる場合、それは所望される高プログラム電圧レベルに到達できない場合がある。また、パルス幅が小さすぎる場合、記憶素子は、不十分なファウラー−ノルドハイムトンネリング注入のためにプログラミングされない。約３分の１から約２分の１に削減された期間のパルス幅は、現実的であると予想される。ただし、この範囲はメモリ素子に応じて変わることがある。
【０１１６】
図１５は、不揮発性メモリをプログラミングするための方法の一実施形態を説明するフローチャートであり、短い期間のプログラミングパルスへの切り替えはプログラミングパルス数に基づいている。１つの実装例では、プログラミングの前に記憶素子が（ブロック単位又は他の単位で）消去される。ステップ１５００で、「データをロード」コマンドがコントローラによって発行され、入力が制御回路５１０によって受信される。ステップ１５０２で、ページアドレスを指定するアドレスデータが、コントローラ又はホストからデコーダ５１４に入力される。ステップ１５０４で、アドレス指定されたページのプログラムデータのページが、プログラミングのためにデータバッファに入力される。データは、ラッチの適切なセットでラッチされる。ステップ１５０６で、コントローラによって状態マシン５１２に「プログラム」コマンドが発行される。
【０１１７】
「プログラム」コマンドによってトリガされ、ステップ１５０４でラッチされたデータは、適切な選択ワードラインに印加された図１３のパルス列１３００のステップ単位で実行されたプログラミングパルスを使用して、状態マシン５１２によって制御される選択された記憶素子の中にプログラミングされる。ステップ１５０８で、プログラム電圧ＶＰＧＭが開始パルス（例えば、１２Ｖ又は他の値）に初期化され、状態マシン５１２によって維持されるプログラムカウンタ（ＰＣ）はゼロで初期化される。ステップ１５１０で、温度検出回路５１５にアクセスすることによって温度が決定される。ステップ１５１２で、プログラミングのために現在選択されているワードラインのワードライン番号である、ワードライン位置が決定される。ステップ１５１４で、切り替えプログラミングパルス数（Ｎ１）が、図１２ｄに示されるデータにアクセスすることによって等、温度及び／又はワードライン位置に基づいて決定される。ステップ１５１６で、図１３の△ｔ１等、プログラミングパルス幅が設定される。当初、プログラム動作の開始時、長い期間のパルスが使用される。ステップ１５１８で、現在のプログラミングパルス数又はカウントは、１という値に初期化される。決定ステップ１５２０で、現在のプログラミングパルス数がＮ１に等しいか、それともＮ１を超えているのかについて、決定される。現在のプログラミングパルス数がＮ１に等しくない、又はＮ１を超えない場合、△ｔ１という期間のプログラミングパルスがステップ１５２４で印加される。
【０１１８】
このように、最初のプログラミングパルスは、選択されたワードラインと関連付けられた記憶素子をプログラミングし始めるために、選択されたワードラインに印加される。論理「０」が、対応する記憶素子がプログラミングされる必要があることを示す特定のデータラッチに記憶される場合、対応するビットラインが接地される。他方、論理「１」が、対応する記憶素子がその現在のデータ状態に留まる必要があることを示す特定のラッチに記憶される場合、対応するビットラインは１．５から３Ｖに接続され、プログラミングを禁止する。
【０１１９】
ステップ１５２６で、選択された記憶素子の状態は、検証動作で検証される。選択された記憶素子のターゲット閾値電圧が適切なレベルに達したことが検出されると、次に対応するデータラッチに記憶されたデータが論理「１」に変更される。閾値電圧が適切なレベルに達していないことが検出されると、対応するデータラッチに記憶されるデータは変更されない。このようにして、対応するデータラッチに記憶された論理「１」を有するビットラインは、プログラミングされる必要がない。データラッチの全てが論理「１」を記憶しているとき、状態マシンは（上述された結線論理和タイプの機構を介して）、全ての選択された記憶素子がプログラミングされたことを知る。ステップ１５２８で、データラッチの全てが論理「１」を記憶しているかどうかに関してチェックが行われる。全ての選択された記憶素子がプログラミングされ、検証されたため、データラッチの全てが論理「１」を記憶している場合、プログラミングプロセスは完了し、成功である。ステップ１５３０で、「パス」のステータスが報告される。いくつかの実施形態では、全ての選択された記憶素子がプログラミングされているとして検証されなくても、プログラミングプロセスは完了し、成功したと見なされる。かかる場合、以後の読み出し動作中のエラーは、記憶素子が不十分にプログラミングされたために発生することがある。ただし、これらのエラーはＥＣＣによって訂正できる。
【０１２０】
ステップ１５２８で、データラッチの全てが論理「１」を記憶していないと判断されると、プログラミングプロセスは続行する。いくつかの実施形態では、データラッチの必ずしも全てが論理「１」を記憶していないとしても、プログラムプロセスは停止する。ステップ１５３２で、プログラムカウンタＰＣが、プログラム限度値ＰＣｍａｘと照合される。プログラム限度値の一例は２０であるが、他の数も使用できる。プログラムカウンタＰＣがＰＣｍａｘ以上である場合には、プログラムプロセスは不合格となり、「失敗」のステータスがステップ１５３４で報告される。プログラムカウンタＰＣがＰＣｍａｘ未満である場合には、ステップ１５３６が実行され、ＶＰＧＭがステップサイズ分増加され、プログラムカウンタＰＣが１、増分され、現在のプログラミングパルス数が１増分される。次に、プロセスはステップ１５２０にループバックし、現在のプログラミングパルス数がＮ１に等しいか、それともＮ１を超えているかを決定する。現在のプログラミングパルス数がＮ１に等しい、又はＮ１を超えている場合、第２のプログラミングパルス幅△ｔ２＜△ｔ１が設定される。したがって、以後のプログラミングパルスは、比較的に短い期間を有する。次に、プログラミングは、前述されたように続行する。現在のプログラミングパルス数がＮ１に等しくならない、又は超えない場合、ステップ１５２４で、第１のパルス幅△ｔ１のプログラミングパルスがさらに印加される。
【０１２１】
２つ以上のプログラミングパルス期間を使用することも可能であることに留意されたい。例えば、パルス列では、第１の期間△ｔ１のプログラミングパルスの後に、第２の期間△ｔ２＜△ｔ１のプログラミングパルスが続き、その後に、第３の期間△ｔ３＜△ｔ２のプログラミングパルスが続いてもよい。
【０１２２】
図１６は、不揮発性メモリをプログラミングするための方法の別の実施形態を説明するフローチャートであり、短い期間のプログラミングパルスへの切り替えがトリガ状態に達する記憶素子の数に基づく。類似した番号が付けられたステップは、図１５のステップに相当する。
【０１２３】
ステップ１６１２は、図１２ｅの情報を使用することによって等、温度に基づいて追跡調査するトリガ状態を決定することを含む。ステップ１６１４は、温度に基づいて、追跡調査状態で追跡調査する記憶素子Ｎ２のトリガ数を決定することを含む。ステップ１５１６で、図１３の△ｔ１等、プログラミングパルス幅が決定される。ステップ１６１８で、トリガ状態に達した記憶素子のカウントは、ゼロという値に初期化される。決定ステップ１６２０で、カウントがＮ２に等しくなるのか、それともＮ２を超えるのかに関する決定が下される。現在のカウントがＮ２に等しくない、又はＮ２を超えない場合、ステップ１５２４で、期間が△ｔ１のプログラミングパルスが印加される。
【０１２４】
ステップ１５２６で、選択された記憶素子の状態が、説明したように検証される。ステップ１６２７で、トリガ状態に達したと検証された記憶素子ごとに、カウントが１、更新される。ステップ１５２８、１５３０、１５３２及び１５３４は、説明した通りに進む。決定ステップ１５３２で、プログラムカウンタＰＣがＰＣｍａｘ未満である場合には、ＶＰＧＭがステップサイズ分増加され、プログラムカウンタＰＣが１、増分されるステップ１５３６が実行される。
【０１２５】
次にプロセスはステップ１６２０にループバックし、現在のカウントがＮ２に等しいのか、それともＮ２を超えているのかを決定する。現在のカウントが、Ｎ２に等しい又はＮ２を超えている場合、第２のプログラミングパルス幅△ｔ２＜△ｔ１が設定される。したがって、以後のプログラミングパルスは、△ｔ２という短い期間を有する。次に、プログラミングは前述されたように続行する。この場合、短い期間のプログラミングパルスへの切り替えは、閾値電圧がトリガ状態に達する記憶素子を追跡調査することによってトリガされる。トリガ状態が、この例ではビットを符号化するデータ状態であることに留意されたい。データ状態の検証レベルとは異なる指定検証レベルに閾値電圧が達する記憶素子を追跡調査することによって、短い期間のプログラミングパルスへの切り替えをトリガすることも可能である。これは、より大きな柔軟性を提供するが、追加の検証動作を生じさせる。データ状態と関係付けられる既存の検証レベルを使用する手法は、追加の検証動作を要求することなく既存の検証動作を利用するので、より効率的である場合がある。
【０１２６】
記憶素子を追跡調査することによって、短い期間のプログラミングパルスへの切り替えをトリガすることは、メモリ素子内で経時的に発生することがある多様な性能変化を説明する適応手法である。例えば、メモリ素子がより多くのプログラミング−消去サイクルを蓄積するにつれて、記憶素子は、例えばより少ないプログラミングパルスでより迅速にプログラミングし得る。さらに、異なるメモリ素子、つまりメモリアレイ内の記憶素子の異なるブロックが異なる速度でプログラミングできる。適応切り替えは、かかる変形を自動的に説明する。
【０１２７】
本明細書に説明される技術の一実施形態では、不揮発性記憶を操作するための方法は、プログラム動作の第１のプログラミングパルス列を一組のワードラインのなかの選択ワードラインに印加することを含み、一組のワードラインは、一組の記憶素子に接続され、選択ワードラインは、一組の記憶素子のなかの少なくとも一つの選択記憶素子、及び少なくとも一つの非選択記憶素子に接続されている。方法は、切り替え基準が満たされるのか否か判断することをさらに含み、切り替え基準は温度に依存する。切り替え基準が満たされている場合、方法は、プログラム動作中に、第１のプログラミングパルス列を印加することに代えて、第２のプログラミングパルス列（１３０２）を、選択されたワードラインに印加することに切り替えることをさらに含み、第２のプログラミングパルス列の少なくとも一つは、第１のプログラミングパルス列の少なくとも一つよりも、短い期間を有する。
【０１２８】
別の実施形態では、不揮発性記憶システムは、一組の記憶素子、その一組の記憶素子に接続された一組のワードライン、及びその一組のワードラインに接続された一又は複数の制御回路を含む。その一又は複数の制御回路は、（ａ）プログラム動作中、一組のワードラインのなかの選択されたワードラインに、第１のプログラミングパルス列を印加し、ここで、選択されたワードラインは、一組の記憶素子のなかの少なくとも一つの選択された記憶素子及び少なくとも１つの非選択の記憶素子に接続されており、（ｂ）切り替え基準が満たされるのか否かを判断し、ここで切り替え基準は温度に依存するものであり、（ｃ）切り替え基準が満たされる場合、プログラム動作中に、第１のプログラミングパルス列を印加することに代えて、第２のプログラミングパルス列を選択されたワードラインに印加することに切り替え、ここで第２のプログラミングパルス列の少なくとも一つは、第１のプログラミングパルス列の少なくとも一つよりも、短い期間を有する。
【０１２９】
別の実施形態では、不揮発性記憶を操作するための方法は、プログラム動作中、第１のプログラミングパルス列を、一組のワードラインのなかの選択されたワードラインに印加することを含み、一組のワードラインは、一組のワードラインのソース側と一組のワードラインのドレイン側の間に伸びており、一組の記憶素子に接続されており、選択されたワードラインは、一組の記憶素子のなかの少なくとも一つの選択された記憶素子及び少なくとも１つの非選択の記憶素子に接続されている。方法は、切り替え基準が満たされるのか否か判断することをさらに含み、切り替え基準は一組のワードラインのなかの選択されたワードラインの位置に依存する。切り替え基準が満たされると、方法は、プログラム動作中に、第１のプログラミングパルス列を印加することに代えて、第２のプログラミングパルス列を選択されたワードラインに印加することに切り替えることを含み、第２のプログラミングパルス列の少なくとも一つは、第１のプログラミングパルス列の少なくとも一つのよりも、短い期間を有する。
【０１３０】
別の実施形態では、不揮発性記憶システムは、選択されたＮＡＮＤストリング及び非選択のＮＡＮＤストリングを含む一組のＮＡＮＤストリングを含み、各ＮＡＮＤストリングは記憶素子を有し、一組のＮＡＮＤストリングは、一組のワードラインに接続されており、その一組のワードラインは、一組のワードラインのソース側と一組のワードラインのドレイン側の間に伸びている。さらに、一又は複数の制御回路が、一組のワードラインに接続されている。この一又は複数の制御回路は、一組の記憶素子のなかの記憶素子の異なる部分集合が４つ以上の状態のなかの異なる状態にプログラミングされるプログラム動作を実行し、そのプログラム動作中、一又は複数の制御回路は、（ａ）一組のワードラインのなかの選択されたワードラインに第１のプログラミングパルス列を印加し、（ｂ）切り替え基準が満たされるのか否かを判断し、切り替え基準が４つ以上の状態の内の１つの状態へのプログラミングを完了する記憶素子の一部に依存し、一つの状態は温度に基づき選択され、（ｂ）切り替え基準が満たされる場合、プログラム動作中に、第１のプログラミングパルス列を印加することに代えて、第２のプログラミングパルス列を選択されたワードラインに印加することに切り替え、第２のプログラミングパルスの少なくとも一つは、第１のプログラミングパルス列の少なくとも一つよりも短い期間を有する。
【０１３１】
本明細書に示される方法を実行するための、対応する方法、システム及びコンピュータ読み出し可能な記憶装置、又はプロセッサ読み出し可能な記憶装置も提供されてよい。
【０１３２】
前記発明を実施するための形態は、図解及び説明のために提示された。それは、網羅的であること、または開示されている正確な形式に本技術を制限することを意図していない。上記の教示を鑑みて、多くの修正及び変形が考えられる。説明された実施形態は、本技術及びその実践的な用途の原則を最もよく説明し、それによって当業者が多様な実施例において、及び意図された特定の使用に適するような多様な修正をもって本技術を最もよく活用できるようにするために選ばれた。本技術の範囲は、本明細書に添付される特許請求項の範囲により定められることが意図される。
【図１ａ】
2012531003.tif 000003
【図１ｂ】
2012531003.tif 000004
【図２】
2012531003.tif 000005
【図３】
2012531003.tif 000006
【図４】
2012531003.tif 000007
【図５】
2012531003.tif 000008
【図６】
2012531003.tif 000009
【図７】
2012531003.tif 000010
【図８】
2012531003.tif 000011
【図９】
2012531003.tif 000012
【図１０ａ】
2012531003.tif 000013
【図１０ｂ】
2012531003.tif 000014
【図１０ｃ】
2012531003.tif 000015
【図１１】
2012531003.tif 000016
【図１２ａ】
2012531003.tif 000017
【図１２ｂ】
2012531003.tif 000018
【図１２ｃ】
2012531003.tif 000019
【図１２ｄ】
2012531003.tif 000020
【図１２ｅ】
2012531003.tif 000021
【図１２ｆ】
2012531003.tif 000022
【図１３】
2012531003.tif 000023
【図１４】
2012531003.tif 000024
【図１５】
2012531003.tif 000025
【図１６】
2012531003.tif 000026
【国際調査報告】
2012531003.tif 000027
2012531003.tif 000028