(57)【要約】  メモリセルをさらに正確にプログラムするために、不揮発性メモリセルのグループをプログラムする間に、一時的なロックアウトが実行される。メモリセルの閾値電圧がその目的の状態のレベルに到達したことが正しく検証された後に、グループの他のメモリセルのプログラミングを完了するために必要とされるプログラミング処理の追加の反復中に、閾値電圧が検証レベルより低い値に低下する可能性がある。メモリセルは、目標閾値電圧に到達したことが既に検証された後に、検証レベルを下回ったかどうかを判定するために（例えば各反復後に）、監視される。検証に合格し、その後の検証で不合格になったセルは、追加のプログラミングを受けることができる。例えば、対象のメモリセルのビットライン電圧は、その後の各プログラミングパルスによって達成されるプログラミングの量を減速、または、低減するために適切な高い電圧にセットされてよい。このようにして、検証から外れたメモリセルを、セルの過剰プログラミングの危険を冒すことなく、通常のプログラミングフローに戻すことができる。
2009522703.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリをプログラムする方法であって、
１または複数の目標状態のうちの１つへプログラムされる対象である不揮発性記憶素子のセットをプログラムするステップと、
プログラムされる対象である不揮発性記憶素子の目標状態に対応するそれぞれの検証レベルに到達している各不揮発性記憶素子へのプログラミングを禁止するステップと、
プログラムされる対象である不揮発性記憶素子の目標状態に対応するそれぞれの検証レベルに到達し、その後、プログラムされる対象である不揮発性記憶素子の目標状態に対応するそれぞれの検証レベルを下回った各不揮発性記憶素子のプログラミングの第１速度を有効にするステップと、
プログラムされる対象である不揮発性記憶素子の目標状態に対応するそれぞれの検証レベルに未だ到達していない各不揮発性記憶素子のプログラミングの第２速度を有効にするステップと、
を備えていることを特徴とする方法。
【請求項２】
プログラミングを禁止するステップが、プログラムされる対象である不揮発性記憶素子の目標状態に対応するそれぞれの検証レベルに到達している各不揮発性記憶素子のビットラインにプログラム禁止電圧を印加するステップを備えており、
プログラミングの第１速度を有効にするステップが、プログラムされる対象である不揮発性記憶素子の目標状態に対応するそれぞれの検証レベルに到達し、その後、プログラムされる対象である不揮発性記憶素子の目標状態に対応するそれぞれの検証レベルを下回った各不揮発性記憶素子のビットラインに第１プログラム有効電圧を印加するステップを備えており、
プログラミングの第２速度を有効にするステップが、プログラムされる対象である不揮発性記憶素子の目標状態に対応するそれぞれの検証レベルに未だ到達していない各不揮発性記憶素子のビットラインに、第１プログラム有効電圧より低い第２プログラム有効電圧を印加するステップを備えている、
ことを特徴とする請求項１に記載の方法。
【請求項３】
前記セットの不揮発性記憶素子の所定数のそれぞれが、プログラムされる対象である不揮発性記憶素子の目標状態に対応するそれぞれの検証レベルに到達するときに、プログラミングが成功したことを検証するステップ、
をさらに備えていることを特徴とする請求項１に記載の方法。
【請求項４】
前記１つまたは複数の目標状態が、少なくとも第１目標状態と第２目標状態を含んでおり、第１検証レベルが第１目標状態に対応し、第２検証レベルが第２目標状態に対応し、
禁止する前記ステップが、第１検証レベルに到達する第１目標状態にプログラムされる対象である各不揮発性記憶素子のプログラミングを禁止するステップと、第２検証レベルに到達する第２状態にプログラムされる対象である各不揮発性記憶素子のプログラミングを禁止するステップを備えている、
ことを特徴とする請求項１に記載の方法。
【請求項５】
プログラムされる対象である不揮発性記憶素子の目標状態に対応するそれぞれの検証レベルに到達し、その後、プログラムされる対象である不揮発性記憶素子の目標状態に対応するそれぞれの検証レベルを下回った各不揮発性記憶素子を除く前記セットの全ての不揮発性記憶素子のプログラミングを完了した後に、プログラミングの第１速度を有効にする前記ステップが実行されることを特徴とする請求項１に記載の方法。
【請求項６】
プログラミングの完了が、前記各不揮発性記憶素子を除く前記セットの全ての不揮発性記憶素子のうちの所定数のそれぞれが、プログラムされる対象である不揮発性素子の目標状態に対応するそれぞれの検証レベルに到達したことを判定するステップを備えていることを特徴とする請求項５に記載の方法。
【請求項７】
プログラミングの第１速度を有効にする前記ステップが、
最初に、不揮発性記憶素子のサブセットのそれぞれが、プログラムされる対象である不揮発性素子の目標状態に対応する目標閾値電圧レベル以上の閾値電圧を有することを判定するステップと、
その後に、サブセットの１つまたは複数の不揮発性記憶素子のそれぞれが、プログラムされる対象である不揮発性記憶素子の目標状態に対応する目標閾値電圧レベルを下回る閾値電圧を有することを判定するステップと、
前記１つまたは複数の不揮発性記憶素子のプログラミングの第１速度を有効にするステップ、
を備えていることを特徴とする請求項１に記載の方法。
【請求項８】
不揮発性記憶素子のセットをプログラムする前記ステップが、プログラム電圧パルスのシリーズを印加するステップを備えており、
その後に判定する前記ステップが、前記シリーズのうちの第１電圧パルスを印加した後に判定するステップを備えており、
プログラミングの第１速度を有効にする前記ステップが、第１電圧パルスより大きく、第１電圧パルスの直後に続く次の電圧パルスに対して、前記１つまたは複数の不揮発性記憶素子のプログラミングの第１速度を有効にするステップを備えている、
ことを特徴とする請求項７に記載の方法。
【請求項９】
不揮発性記憶素子の前記セットをプログラムするステップが、データの第１ページをプログラムするステップを備えていることを特徴とする請求項１に記載の方法。
【請求項１０】
不揮発性記憶素子の前記セットをプログラムするステップが、データの第１のページとデータの第２のページをプログラムするステップを備えていることを特徴とする請求項１に記載の方法。
【請求項１１】
前記セットの不揮発性記憶素子が、連続ビットラインに結合されていることを特徴とする請求項１に記載の方法。
【請求項１２】
前記セットの不揮発性記憶素子が、ビットラインのグループの１つおきのビットラインに接続されていることを特徴とする請求項１に記載の方法。
【請求項１３】
前記セットの不揮発性記憶素子が、フラッシュメモリ装置であることを特徴とする請求項１に記載の方法。
【請求項１４】
前記セットの不揮発性記憶素子が、ＮＡＮＤフラッシュメモリ装置であることを特徴とする請求項１に記載の方法。
【請求項１５】
前記セットの不揮発性記憶素子が、マルチ状態フラッシュメモリ装置であることを特徴とする請求項１に記載の方法。
【請求項１６】
前記セットの前記不揮発性記憶素子が、ＮＯＲフラッシュメモリ装置であることを特徴とする請求項１に記載の方法。
【請求項１７】
それぞれの検証レベルに到達している各不揮発性記憶素子のプログラミングを禁止するステップが、プログラムされる対象である不揮発性記憶素子の目標状態に対応するそれぞれの検証閾値電圧レベル以上の閾値電圧を有すると判定された各不揮発性記憶素子のプログラミングを禁止するステップを備えていることを特徴とする請求項１に記載の方法。
【請求項１８】
前記１つまたは複数の目標状態が、消去状態を含んでおり、
前記プログラムするステップが、消去状態にプログラムされる対象である各不揮発性記憶素子のプログラミングを禁止するステップを備えていることを特徴とする請求項１に記載の方法。
【請求項１９】
不揮発性記憶素子のセットと、
複数のビットラインであって、各不揮発性記憶素子が前記セットの１つのビットラインと通信するように構成されているビットラインと、
不揮発性記憶素子の前記セットと前記複数のビットラインと通信する管理回路であって、前記セットの各不揮発性記憶素子を１つまたは複数の目標状態の１つにプログラムされる対象とする処理で不揮発性記憶素子の前記セットをプログラムし、プログラムされる対象の不揮発性記憶素子の目標状態に対応するそれぞれの検証レベルに到達している各不揮発性記憶素子のビットラインに第１電圧を印加し、プログラムされる対象である不揮発性記憶素子の目標状態に対応するそれぞれの検証レベルに到達し、その後、それぞれの検証レベル未満にあると判定された各不揮発性記憶素子のビットラインに第２電圧を印加し、プログラムされる対象である不揮発性記憶素子の目標状態に対応するそれぞれの検証レベルに未だ到達していないそれぞれの不揮発性記憶素子のビットラインに第３電圧を印加する管理回路、
を備えていることを特徴とする不揮発性メモリシステム。
【請求項２０】
管理回路が、プログラムされる対象である不揮発性記憶素子の目標状態に対応するそれぞれの検証レベルに到達し、その後、それぞれの検証レベル未満にあると判定された各不揮発性記憶素子を除く全ての不揮発性記憶素子のプログラミングを完了した後に、第２電圧を印加することを特徴とする請求項１９に記載の不揮発性メモリシステム。
【請求項２１】
管理回路が、第１電圧を印加して、プログラムされる対象である不揮発性記憶素子の目標状態に対応するそれぞれの検証レベルに到達していると判定された各不揮発性記憶素子のプログラミングを禁止し、
管理回路が、第２電圧を印加して、プログラムされる対象である不揮発性記憶素子の目標状態に対応するそれぞれの検証レベルに到達し、その後、それぞれの検証レベル未満にあると判定された各不揮発性記憶素子のプログラミングを有効とし、
管理回路が、第３電圧を印加して、プログラムされる対象である不揮発性記憶素子の目標状態に対応するそれぞれの検証レベルに未だ到達していない不揮発性記憶素子のプログラミングを有効とする、
ことを特徴とする請求項１９に記載の不揮発性メモリシステム。
【請求項２２】
第２電圧が第３電圧より大きく、
管理回路が、第２電圧を印加して、プログラムされる対象である不揮発性記憶素子の目標状態に対応するそれぞれの検証レベルに到達し、その後、それぞれの検証レベル未満にあると判定された各不揮発性記憶素子の第１速度でのプログラミングを有効とし、
管理回路が、第３電圧を印加して、プログラムされる対象である不揮発性記憶素子の目標状態に対応するそれぞれの検証レベルに未だ到達していない各不揮発性記憶素子の第２速度でのプログラミングを有効とし、
第１速度が第２速度より低速である、
ことを特徴とする請求項１９に記載の不揮発性メモリシステム。
【請求項２３】
第１電圧がプログラム禁止電圧であり、
第２電圧が低減されたプログラム有効電圧であり、
第３電圧がプログラム有効電圧であり、
第３電圧が第２電圧よりも低い、
ことを特徴とする請求項１９に記載の不揮発性メモリシステム。
【請求項２４】
管理回路が、不揮発性記憶素子の前記セットに対してデータの第１ページをプログラムすることを特徴とする請求項１９に記載の不揮発性メモリシステム。
【請求項２５】
前記セットの不揮発性記憶素子が、前記複数のビットラインの連続ビットラインに接続されていることを特徴とする請求項１９に記載の不揮発性メモリシステム。
【請求項２６】
前記セットの不揮発性記憶素子が、ＮＡＮＤマルチ状態フラッシュメモリ装置であることを特徴とする請求項１９に記載の不揮発性メモリシステム。
【請求項２７】
管理回路が、列制御回路及び４つのデータレジスタを備えていることを特徴とする請求項１９に記載の不揮発性メモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、不揮発性メモリ装置をプログラムするための半導体技術に関する。
【背景技術】
【０００２】
半導体メモリ装置は、様々な電子装置に使用されることが一般的になっている。例えば、不揮発性半導体メモリは、携帯電話、デジタルカメラ、パーソナルデジタルアシスタント、モバイルコンピュータ、非モバイルコンピュータ置、及び他の装置に使用されている。最も普及している不揮発性半導体メモリは、フラッシュＥＥＰＲＯＭを含む電気的消去プログラム可能読取専用メモリ（ＥＥＰＲＯＭ)と電気的プログラム可能読取専用メモリ（ＥＰＲＯＭ）である。
【０００３】
一例のフラッシュメモリシステムは、２個の選択ゲート間で直列に配置された複数のトランジスタを内蔵したＮＡＮＤ構造を採用している。直列のトランジスタと選択ゲートはＮＡＮＤストリングと呼ばれる。図１は、１個のＮＡＮＤストリングを示す平面図である。図２はその等価回路である。図１、図２に示すＮＡＮＤストリングは、第１選択ゲート１２０と第２選択ゲート１２２の間で直列に配置された４個のトランジスタ１００、１０２、１０４、１０６を備えている。選択ゲート１２０はＮＡＮＤストリングをビットライン１２６に接続する。選択ゲート１２２はＮＡＮＤストリングをソースライン１２８に接続する。選択ゲート１２０は、選択ラインＳＧＤを介して制御ゲート１２０ＣＧに適切な電圧が印加されることで制御される。選択ゲート１２２は、選択ラインＳＧＳを介して制御ゲート１２２ＣＧに適切な電圧が印加されることで制御される。各トランジスタ１００、１０２、１０４、１０６は、メモリセルのゲート素子を形成する制御ゲートとフローティングゲートを有している。例えば、トランジスタ１００は、制御ゲート１００ＣＧとフローティングゲート１００ＦＧを有している。トランジスタ１０２は、制御ゲート１０２ＣＧとフローティングゲート１０２ＦＧを有している。トランジスタ１０４は、制御ゲート１０４ＣＧとフローティングゲート１０４ＦＧを有している。トランジスタ１０６は、制御ゲート１０６ＣＧとフローティングゲート１０６ＦＧを有している。制御ゲート１００ＣＧはワードラインＷＬ３に接続されており、制御ゲート１０２ＣＧはワードラインＷＬ２に接続されており、制御ゲート１０４ＣＧはワードラインＷＬ１に接続されており、制御ゲート１０６ＣＧはワードラインＷＬ０に接続されている。
【０００４】
図３は、上述のＮＡＮＤストリングの断面図を示す。図３に示すように、ＮＡＮＤストリングのトランジスタはｐウェル領域１４０内に形成される。各トランジスタは、制御ゲート（１００ＣＧ、１０２ＣＧ、１０４ＣＧ及び１０６ＣＧ）とフローティングゲート（１００ＦＧ、１０２ＦＧ、１０４ＦＧ及び１０６ＦＧ）からなる積層ゲート構造を有している。フローティングゲートは、酸化膜の上部のｐウェルの表面に形成される。制御ゲートはフローティングゲート上にあり、ポリシリコン間誘電体層が制御ゲートとフローティングゲートを分離している。メモリセル（１００、１０２、１０４、１０６）の制御ゲートは、ワードラインを形成する。Ｎ＋拡散層１３０、１３２、１３４、１３６及び１３８は、隣接しているセルの間で共用され、それによってセルは互いに直列に接続され、ＮＡＮＤストリングを形成する。これらのＮ＋拡散層はセルのそれぞれのソースとドレインを形成する。例えば、Ｎ＋拡散層１３０はトランジスタ１２２のドレインとトランジスタ１０６のソースとして機能し、Ｎ＋拡散層１３２はトランジスタ１０６のドレインとトランジスタ１０４のソースとして機能し、Ｎ＋拡散層１３４はトランジスタ１０４のドレインとトランジスタ１０２のソースとして機能し、Ｎ＋拡散層１３６はトランジスタ１０２のドレインとトランジスタ１００のソースとして機能し、Ｎ＋拡散層１３８はトランジスタ１００のドレインとトランジスタ１２０のソースとして機能する。Ｎ＋拡散層１２６はＮＡＮＤストリングのビットラインに接続している。また、Ｎ＋拡散層１２８は複数のＮＡＮＤストリングの共通ソースラインに接続している。
【０００５】
図１から３はＮＡＮＤストリング内の４個のメモリセルを示しているが、４個のトランジスタは、単に一例として提供されていることに注意すべきである。ＮＡＮＤストリングは、４個未満または４個より多いメモリセルを有していてもよい。例えば、ＮＡＮＤストリングが、８個、１６個、３２個、その他の個数のメモリセルを有していてもよい。ここでの説明は、ＮＡＮＤストリング内のメモリセルを特定の数に限定するものではない。ＮＡＮＤ構造を使用したフラッシュメモリシステムの一般的な構造は、複数のＮＡＮＤストリングを有している。例えば、図４は、より多くのＮＡＮＤストリングを有するメモリアレイのうちの３つのＮＡＮＤストリング２０２、２０４、２０６を示している。図３の各ＮＡＮＤストリングは、２個の選択トランジスタまたはゲートと４個のメモリセルを有している。例えば、ＮＡＮＤストリング２０２は、選択トランジスタ２２０、２３０と、メモリセル２２２、２２４、２２６、２２８を有している。ＮＡＮＤストリング２０４は、選択トランジスタ２４０、２５０と、メモリセル２４２、２４４、２４６、２４８を有している。各ストリングは、１つの選択ゲート（例えば選択ゲート２３０、２５０）によってソースラインに接続されている。選択ラインＳＧＳは、ソース側選択ゲートの制御に使用される。種々のＮＡＮＤストリングは、選択ラインＳＧＤによって制御される選択ゲート２２０、２４０等によって、各ビットラインに接続されている。他の実施形態においては、選択ラインは必ずしも共通化されている必要はない。ワードラインＷＬ３は、メモリセル２２２、２４２の制御ゲートに接続されている。ワードラインＷＬ２は、メモリセル２２４、２４４の制御ゲートに接続されている。ワードラインＷＬ１は、メモリセル２２６、２４６の制御ゲートに接続されている。ワードラインＷＬ０は、メモリセル２２８、２４８の制御ゲートに接続されている。図に見られるように、ビットラインと各ＮＡＮＤストリングはメモリセルアレイの列を備えている。ワードライン（ＷＬ３，ＷＬ２，ＷＬ１，ＷＬ０）はアレイの行を備えている。各ワードラインは、行内の各メモリセルの制御ゲートを接続している。例えば、ワードラインＷＬ２はメモリセル２２４、２４４、２５２の制御ゲートに接続されている。
【０００６】
各メモリセルはデータ（アナログまたはデジタル）を記憶できる。１ビットのデジタルデータを記憶する場合、メモリセルの使用可能な閾電圧の範囲が、論理データ「１」と「０」に割り当てられた２つの範囲に分割される。ＮＡＮＤ型フラッシュメモリの一例では、メモリセルの消去後に閾電圧が負になり、論理値「１」と定義される。プログラム動作後の閾電圧は正になり、論理値「０」と定義される。閾電圧が負であるときに制御ゲートに０ボルトが印加されて読み出しが試みられた場合、メモリセルがオンになり、論理値１が記憶されていることが示される。閾電圧が正であるときに制御ゲートに０ボルトが印加されて読み出し動作が試みられた場合は、メモリセルがオンにならず、このことは論理値０が記憶されたことを示す。メモリセルは、例えば、複数ビットのデジタルデータのような複数レベルの情報を記憶することもできる。複数レベルのデータを記憶する場合には、使用可能な閾値電圧の範囲が多数のデータのレベルに分割される。例えば、４つのレベルの情報を記憶する場合には、データ値「１１」，「１０」，「０１」，「００」の４つの閾電圧範囲が割り当てられる。ＮＡＮＤ型メモリの一例では、消去動作後の閾電圧は負であり、「１１」と定義される。異なる３個の正の閾電圧が、「１０」，「０１」，「００」に使用される。
【０００７】
ＮＡＮＤ型フラッシュメモリとその動作に関する例が、以下の米国特許／特許出願によって提供されている。米国特許第５，５７０，３１５号、米国特許第５，７７４，３９７号、米国特許第６，０４６，９３５号、米国特許第６，４５６，５２８号、米国特許出願番号第０９／８９３２７７号（公報第ＵＳ２００３／０００２３４８号）：これら出願の全体は、参照することにより本願明細書に組み込まれる。
【０００８】
フラッシュメモリセルをプログラミングする場合、プログラム電圧が制御ゲートに（選択したワードラインを介して）印加され、ビットラインが接地される。ｐ−ウェルからの電子がフローティングゲートに注入される。電子がフローティングゲートに蓄積されると、フローティングゲートは負にチャージされ、セルの閾電圧が上昇する。メモリセルの閾値電圧がその目的とする状態の目標検証電圧に到達すると、適切な量の負の電荷がそのフローティングゲートに蓄積されているため、セルは追加のプログラミングからロックアウトされる。フローティングゲートの電荷及びセルの閾値電圧は、記憶されているデータに対応するある特定の状態を示すことができる。
【０００９】
別の種類のメモリセルは、導電性フローティングゲートの代わりに非導電性誘電体材料を利用して、不揮発的な方法で電荷を蓄積する。このようなセルはChanらによる論文「A True Single-Transistor Oxide-Nitride-Oxide EEPROM Device」、IEEE Electron Device Letters、Vol.EDL-8、No.3、１９８７年３月、９３〜９５ページに記載されている。酸化シリコン、窒化シリコン、および酸化シリコン（「ＯＮＯ」）から形成される三層誘電体は、メモリセルチャネル上の半導体基板の表面と導電性制御ゲートの間に挟持される。セルチャネルから窒化物の中に電子を注入することによってセルがプログラムされる。その電子は制限領域内に捕捉されて蓄積される。それから、この蓄積された電荷は、セルチャネルの一部の閾値電圧を検出可能なように変化させる。窒化物内にホットホールを注入することによって、セルが消去される。Nozakiらの「A1-Mb EEPROM with MONOS Memory Cell for Semiconductor Disk Applicaton」、IEEE Journal of Solid-State Circuits、第２６巻、第４号、１９９１年４月、４９７〜５０１ページを参照すると、分割ゲート構造内の同様のセルを説明しており、ここではドープされたポリシリコンゲートがメモリセルチャネルの一部上に延び、別個の選択トランジスタを形成している。以上２つの論文は、その全体を参照することにより本明細書に組み込まれる。William D.Brown及びJoe E.Brewerによって編集された「Nonvolatile Semiconductor Memory Technology」、IEEE Press、１９９８のセクション１．２に言及されているプログラミング技術（参照によって本明細書に組み込まれる）も、誘電体電荷捕獲装置にも適用可能であることをそのセクションで説明している。
【００１０】
各セルに２つのビットを記憶する別の方式は、Eitanら、「NROM:A Novel Localized Trapping, 2-Bit Nonvolatile Memory Cell」、IEEE Electron Device Letters、Vol.21、no.11、２０００年１１月、５４３〜５４５ページに説明されている。ＯＮＯ誘電体層は、ソース及びドレイン拡散部の間のチャネルに亘って延びている。１つのデータビットの電荷はドレインに隣接する誘電体層内に局所化され、他のデータビットの電荷はソースに隣接する誘電体層内に局所化される。マルチ状態データストレージは、誘電体内の空間的に分離した電荷ストレージ領域のバイナリ状態を別個に読み出すことによって得られる。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
装置の寸法及び隣接する閾値分布の間のマージンが減少し続け、メモリ容量が拡大し続けるので、プログラミング及びプログラムされたデータの読み戻しのエラーと精度不足がさらに問題となることがある。例えば、状態間のマージンが最小であるため、プログラミング完了後のメモリセルの電荷の僅かなシフトが、その中に記憶されているデータの誤った読み出しにつながることがある。装置が縮小されるにつれて、プログラミング後の電荷のシフトは発生し易くなる傾向にある。ある特定のメモリセルのフローティングゲートに蓄積される電荷の意図せずに生じる変化が、誤った読み出しにつながり、メモリシステムのエラー訂正符号（ＥＣＣ）のニーズにつながる。
【課題を解決するための手段】
【００１２】
本明細書に説明する技術は、より確実な読み出し、及び、対象のセル内における必要な電荷レベルのより適切な維持を実現するように不揮発性メモリ装置をプログラムする技術に関する。一実施形態では、既に検証されたメモリセルの再検証と、メモリセルが目標状態に対応する適切なプログラム検証レベル未満に低下しているかどうかの判定を断続的に実行するように、プログラム検証が実行される。低下している場合には、このようなセルへの追加のプログラミングを実行できる。
【００１３】
メモリセルをさらに正確にプログラムするために、不揮発性メモリセルのグループをプログラムする間に、一時的なロックアウトが行われる。メモリセルの閾値電圧が目的の状態のレベルまで正しく到達していることを検証した後に、グループの他のメモリセルのプログラミングを完了するために必要とされるプログラミング処理の追加の反復中に、閾値電圧が検証レベル未満に減少する可能性がある。メモリセルは、目標閾値電圧に到達したことを検証した後にそれらのメモリセルが検証レベルを下回るかどうかを判断するために（例えば、各反復後に）監視される。検証を合格し、その後の検証で不合格となったセルは、追加のプログラミングを受けることがある。例えば、対象のメモリセルのビットライン電圧を適度な高圧に設定して、その後のプログラミングパルスのそれぞれによって達成されるプログラミングの量を低速化、または、低下させることができる。このようにして、検証で不合格とされたメモリセルは、セルの過剰プログラミングの危険を冒さなくても、通常のプログラミングフローに戻すことができる。
【００１４】
一実施形態では、不揮発性記憶素子のセットをプログラムするステップを備えた不揮発性メモリをプログラムする方法が提供される。セットの各不揮発性記憶素子は、１つまたは複数の目標状態の１つにプログラムされる。プログラミングは、プログラムする目的の目標状態に対応するそれぞれの検証レベルに到達している各不揮発性記憶素子に対して禁止されている。プログラミングの第１速度は、プログラムする目的の目標状態に対応するそれぞれの検証レベルに到達し、その後、プログラムする目的の目標状態に対応するそれぞれの検証レベルを下回った各不揮発性記憶素子に対して有効とされる。プログラミングの第２速度は、プログラムする目的の目標状態に対応するそれぞれの検証レベルにまだ到達していない各不揮発性記憶素子に対して有効とされる。
【００１５】
一実施形態では、不揮発性記憶素子のセットをプログラムするステップを備えた不揮発性メモリをプログラムする方法が提供される。各不揮発性記憶素子は、１つまたは複数の目標状態の１つにプログラムされる。この方法は、プログラムする目的の目標状態に対応するそれぞれの検証レベルに到達している各不揮発性記憶素子のビットラインに第１電圧を印加するステップと、プログラムする目的である目標状態に対応するそれぞれの検証レベルに到達し、その後、その検証レベルを下回ったと判定された各不揮発性記憶素子のビットラインに第２電圧を印加するステップと、プログラムされる目的である目標状態に対応するそれぞれの検証レベルにまだ到達していない各不揮発性記憶素子のビットラインに第３の電圧を印加するステップを有する。
【００１６】
本発明の他の特長、態様及び目的は、明細書、図、及び請求項を検討することから達成できる。
【発明を実施するための最良の形態】
【００１７】
図５は、本開示の１つまたは複数の実施形態を実現するために使用できるフラッシュメモリシステムの一実施形態のブロック図である。他のシステム及び実装形態も使用できる。メモリセルアレイ３０２は列制御回路３０４、行制御回路３０６、ｃ−ソース制御回路３１０、ｐ−ウェル制御回路３０８によって制御される。列制御回路３０４は、メモリセルに記憶されたデータを読み出すため、プログラム動作中におけるメモリセルの状態を判定するため、及び、プログラミング及び消去を促進または禁止するビットラインの電位レベルを制御するために、メモリセルアレイ３０２のビットラインに接続されている。行制御回路３０６は、ワードラインから１つを選択するため、読み出し電圧を印加するため、列制御回路３０４により制御されたビットライン電位レベルと組み合わせたプログラム電圧を印加するため、及び、消去電圧を印加するために、ワードラインに接続されている。ｃ−ソース制御回路３１０は、メモリセルに接続されている共有ソースライン（図６中に「ｃ−ソース」として示す）を制御する。ｐ−ウェル制御回路３０８はｐ−ウェル電圧を制御する。
【００１８】
メモリセルに記憶されたデータは、列制御回路３０４によって読み出され、データＩ／Ｏバッファ３１２を介して外部Ｉ／Ｏラインへ出力される。メモリセルに記憶されるべきプログラムデータは、外部Ｉ／Ｏラインを介してデータＩ／Ｏバッファ３１２に入力され、列制御回路３０４へ転送される。外部Ｉ／Ｏラインは制御部３１８に接続されている。
【００１９】
フラッシュメモリ装置を制御するためのコマンドデータは、制御部３１８に入力される。コマンドデータは、どの動作が要求されたかをフラッシュメモリに通知する。入力されたコマンドは、制御回路３１５の一部である状態マシン３１６に転送される。状態マシン３１６は、列制御回路３０４、行制御回路３０６、ｃ−ソース制御３１０、ｐウェル制御回路３０８、及びデータＩ／Ｏバッファ３１２を制御する。状態マシン３１６は、ＲＥＡＤＹ／ＢＵＳＹまたはＰＡＳＳ／ＦＡＩＬといったフラッシュメモリの状態データを出力することもできる。
【００２０】
制御部３１８は、パーソナルコンピュータ、デジタルカメラ、パーソナルデジタルアシスタント等のホストシステムに接続されているか、または接続可能となっている。制御部３１８は、メモリアレイ３０２に対するデータの保存または読み出しを行ったり、このようなデータの提供または受信を行うコマンドを開始するホストと通信する。制御部３１８はこのようなコマンドを、制御回路３１５の一部であるコマンド回路３１４で読み取り及び実行可能なコマンド信号に変換する。コマンド回路３１４は、状態マシン３１６と通信する。一般的に、制御部３１８は、メモリアレイに対する書き込みまたは読み出しが行われるユーザデータのためのバッファメモリを内蔵している。
【００２１】
１つの例示的なメモリシステムは、制御部３１８を備えた１つの集積回路と、メモリアレイと関連する制御をそれぞれ備えた１つまたは複数の集積回路チップと、入力／出力と、状態マシン回路とを備えている。メモリアレイとシステムの制御部回路は、１つまたは複数の集積回路チップ上に一緒に搭載されることが多い。メモリシステムはホストシステムの一部として組み込まれてもよいし、ホストシステム内に取り外し可能に挿入されるメモリカード（若しくは他のパッケージ）内に内蔵されていてもよい。このようなカードは、メモリシステム全体（例えば、制御部を含む）や、関連する周辺回路を備えた（１または複数の）メモリアレイ（ホスト内に制御部または制御機能が組み込まれたもの）を備えていてもよい。したがって、制御部を、ホスト内に組み込んだり、取り外し可能なメモリシステム内に搭載することが可能である。
【００２２】
図６には、メモリセルアレイ３０２の構造の一例が示されている。一例として、１０２４個のブロックに区分されたＮＡＮＤフラッシュＥＥＰＲＯＭについて説明する。各ブロックに記憶されたデータは、同時に消去することができる。一実施形態では、ブロックが、同時に消去されるセルの最小単位である。この例では、各ブロック内に、８５１２個の列が存在する。各ブロックは、通常、プログラミングの単位となる多くのページに分割される。プログラミングのためのデータの他の単位も可能であり、考慮される。一実施形態では、個々のページはセグメントに分割され、セグメントが基本的なプログラミング動作として一度に書き込まれる最小数のセルを含んでいてもよい。データの１または複数のページは、通常、一行のメモリセルに記憶される。
【００２３】
図６の例の各ブロックでは、偶数の列と奇数の列に区分された８，５１２の列がある。ビットラインは、偶数ビットライン（ＢＬｅ）と奇数ビットライン（ＢＬｏ）に分けられている。奇数／偶数ビットラインアーキテクチャでは、共通のワードラインに沿った、奇数ビットラインに接続されているメモリセルは、所定のタイミングでプログラムされる。一方、共通ワードラインに沿った、偶数ビットラインに接続されるメモリセルは、別のタイミングでプログラムされる。図５は、直列で接続され、ＮＡＮＤストリングを形成している４個のメモリセルを示す。４個のセルが各ＮＡＮＤストリングに含まれて示されているが、４個より多いメモリセルまたは４個未満のメモリセルを使用することもできる（例えば、１６、３２またはその他の数）。ＮＡＮＤストリングの１つの端子は、第１の選択トランジスタまたはゲートを介して、対応するビットラインに接続されており（選択ゲートドレインラインＳＧＤに接続されており）、もう一つの端子は、第２の選択トランジスタを介して、ｃ−ソースに接続されている（選択ゲートソースラインＳＧＳに接続されている）。
【００２４】
他の実施形態では、ビットラインは偶数ビットラインと奇数ビットラインに分けられない。このようなアーキテクチャは、全ビットラインアーキテクチャと一般的に呼ばれている。全ビットラインアーキテクチャでは、ブロックの全てのビットラインが読み出し動作及びプログラム動作の間に同時に選択される。共通ワードラインに沿った、任意のビットラインに接続されているメモリセルは同時にプログラムされる。全体が参照することにより本明細書に組み込まれる米国特許第１１／０９９，１３３号「COMPENSATING FOR COUPLING DURING READ OPERATIONS OF NON-VOLATILE 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」、出願日２００５年１０月２７日に記載されている。その全ては参照することにより本明細書に組み込まれる。
【００２９】
上述した読み出し及び検証動作は公知の技術に応じて実施される。そのため、説明した詳細の多くは、当業者が変更することが可能である。
【００３０】
図８は、図５の列制御回路３０４の一部の概略ブロック図である。列制御回路３０４では、データ記憶回路３４０は、偶数番号のＢＬｅと奇数番号のビットラインＢＬｏを含む２つのビットラインごとに配置されている。列制御回路３０４では、メモリセルにデータを書き込み、メモリセルからデータを読み出すために、検出増幅器もデータ記憶回路３４０に対して配置されている。
【００３１】
ｎ−チャネルＭＯＳトランジスタ３４２は、データストレージ回路３４０と偶数番号のビットラインＢＬｅの間の列選択のために接続されている。別のｎ−チャネルＭＯＳトランジスタ３４４は、データストレージ回路３４０と奇数番号のラインＢＬｏの間の列選択のために接続されている。偶数番号のビットラインＢＬｅと奇数番号のビットラインＢＬｏの何れかは、データの書き込み、または、データを読み出し動作を制御するために選択される。さらに詳細には、信号ｅｖｅｎＢＬが論理レベル１であり、信号ｏｄｄＢＬが論理レベル０であるときは、次にデータストレージ回路３４０に接続される偶数番号のビットラインＢＬｅを選択するために、ＭＯＳトランジスタ３４２が電気的に導電される。他方、信号ｅｖｅｎＢＬが論理レベル０であり、ｏｄｄＢＬが論理レベル１であるときは、次にデータストレージ回路３４０に接続される奇数番号のビットラインＢＬｏを選択するために、トランジスタ３４４が電気的に導電される。なお、信号ｅｖｅｎＢＬは偶数番号のビットラインを通して接続されている列選択のためにｎ−チャネルＭＯＳトランジスタの全てに印加されるのに対し、信号ｏｄｄＢＬは奇数番号のビットラインに接続されている列選択のために全てのｎ−チャネルＭＯＳトランジスタに印加される。
【００３２】
各データストレージ回路３４０は、バイナリデータストレージセクションＤＳ１、ＤＳ２、ＤＳ３、及びＤＳ４を有している。ストレージセクションＤＳ１は、内部データ入出力ラインを介してデータ入出力３１２に接続されており、外部に入力されている書き込みデータまたは外部に出力される読み出しデータを記憶する。データストレージセクションＤＳ２は、書き込み動作後のメモリセルの閾値を確認するための書き込み検証動作の検出結果を記憶する。データストレージセクションＤＳ３は、書き込み時、及び／または、読み出し時に、メモリセルのデータを一時的に記憶する。ＤＳ４は、プログラミングのために回路３４０に初期にロードされるデータのコピーを記憶する。他の実施形態では、データストレージセクションは、他の機能を備えることもでき、様々に構成できる。多様な実施形態では、ＤＳ１、ＤＳ２、ＤＳ３及びＤＳ４は記憶装置、１つまたは複数のレジスタ、あるいは情報を記憶できる他の装置の部分であってもよい。一実施形態では、ＤＳ１、ＤＳ２、ＤＳ３及びＤＳ４はそれぞれ１ビットである。他の実施形態では、ＤＳ１、ＤＳ２、ＤＳ３、及びＤＳ４の内の１つまたは複数が、複数のビットを記憶できる。図８に示されている回路以外の回路も、ビットラインを制御するために使用できる。
【００３３】
なお、図８は偶数／奇数ビットライン構成を示している。しかしながら、本発明は、各ビットラインが専用の検出増幅器及び／またはデータストレージを有する構成等の、多くの異なるビットライン構成と共に使用できる。本発明を実現するために適したいくつかの構成では、全ビットラインは、奇数パスと偶数パスではなく、１回のパスでプログラムされる。例えば、米国特許出願番号第１０／２５４，４８３号「Highly Compact Non-Volatile Memory and Method Thereof」、提出日２００２年９月２４日を参照されたい。その全体は参照することにより本明細書に組み込まれる。
【００３４】
成功したプログラム処理の最後で、メモリセルの閾値電圧は、プログラムされたメモリセルに対する閾値電圧の１つ以上の分布内、または、消去されたメモリセルに対する閾値電圧の分布内に適切に存在している必要がある。図９は、各メモリセルが２ビットのデータを記憶している場合のメモリセルアレイの閾値電圧分布を示している。図９は、消去されたメモリセルに対する第１閾値電圧分布Ｅを示している。プログラムされたメモリセルに対する３つの閾値電圧分布Ａ、Ｂ及びＣも示している。一実施形態では、分布Ｅの閾値電圧は負であり、分布Ａ、Ｂ、Ｃの閾値電圧は正である。
【００３５】
図９の異なる閾値電圧範囲の各々は、データビットのセットの所定の値に対応する。メモリセルにプログラムされたデータとセルの閾値電圧レベルの間の特殊な関係性は、セルのために採用されるデータ符号化方式に依存する。例えば、全体を参照することにより本明細書に組み込まれる米国特許第６，２２２，７６２号及び米国特許出願番号第１０／４６１，２４４号「Tracking Cells For A Memory Systems」、出願日２００３年６月１３日は、マルチ状態フラッシュメモリセルの多様なデータ符号化方式を説明している。一実施形態では、データ値は、グレイコード割り当てを使用して閾値電圧範囲に割り当てられ、フローティングゲートの閾値がその隣接する物理状態に誤ってシフトしても、影響を受けるのが１ビットだけとなるようする。一例では、「１１」を閾値電圧範囲Ｅ（状態Ｅ）、「１０」を閾値電圧範囲Ａ（状態Ａ）、「００」を閾値電圧範囲Ｂ（状態Ｂ）、「０１」を閾値電圧範囲Ｃ（状態Ｃ）に割り当てる。しかし、他の実施形態では、グレイコードは用いられない。図９は４つの状態を示しているが、本発明は４つより多い、または少ない状態を含む他のマルチ状態構造と共に使用することもできる。
【００３６】
図９は、メモリセルからデータを読み出すための３つの読み出し基準電圧Ｖｒａ、Ｖｒｂ及びＶｒｃを示している。所定のメモリセルの閾値電圧がＶｒａ、Ｖｒｂ及びＶｒｃより高いか低いかをテストすることによって、システムはメモリセルがどの状態にあるのかを判定できる。図９は、３つの検証基準電圧、Ｖｖａ、Ｖｖｂ及びＶｖｃを示している。メモリセルを状態Ａにプログラムする場合、システムはそれらのメモリセルがＶｖａ以上の閾値電圧を有するか否かをテストする。メモリセルを状態Ｂにプログラムする場合、システムはメモリセルがＶｖｂ以上の閾値電圧を有するか否かをテストする。メモリセルを状態Ｃにプログラムする場合、システムはメモリセルがＶｖｃ以上の閾値電圧を有するか否かを判定する。粗／密プログラミング中における適用について、追加の検証基準電圧Ｖｖａ１、Ｖｖｂ１、及びＶｖｃ１を後述する。
【００３７】
完全シーケンスプログラミングとして知られる図９に示されている一実施形態では、メモリセルは消去状態Ｅからプログラム状態Ａ、ＢまたはＣのどれかに直接的にプログラムすることができる。例えば、プログラムするメモリセルの集団が最初に消去されることによって、集団内の全てのメモリセルが消去状態Ｅになるようにする。次に、図７に示す制御ゲート電圧シーケンスを使用する図９に示す処理は、メモリセルを状態Ａ、ＢまたはＣに直接的にプログラムするために使用される。いくつかのメモリセルが状態Ｅから状態Ａにプログラムされる一方で、他のメモリセルは状態Ｅから状態Ｂに、及び／または、状態Ｅから状態Ｃにプログラムされる。このような実施形態では、メモリセルの特定のメモリ状態に符号化された両方のビットは、データの１ページの一部と見なすことができる。
【００３８】
図１０は、２つの異なるページ（下側ページと上側ページ）に対してデータを記憶するマルチ状態メモリセルをプログラムする二経路技術の一例を示している。状態Ｅ（１１）、状態Ａ（１０）、状態Ｂ（００）及び状態Ｃ（０１）の４つの状態が示されている。状態Ｅの場合、両方のページが「１」を記憶する。状態Ａの場合、下側ページが「０」を記憶し、上側ページが「１」を記憶する。状態Ｂの場合、両方のページが「０」を記憶する。状態Ｃの場合、下側ページが「１」を記憶し、上側ページが「０」を記憶する。なお、各状態に対して特定のビットパターンが割り当てられているが、異なるビットパターンを割り当てることもできる。第１プログラミング経路では、セルの閾値電圧レベルは下側の論理ページにプログラムされるビットに従って設定される。そのビットが論理「１」であれば、以前に消去された結果として適切な状態にあるので閾値電圧は変更されない。しかし、プログラムされるビットが論理「０」であれば、矢印３５０で示したように、セルの閾レベルは状態Ａになるように増大される。これが、第１プログラミング経路である。
【００３９】
第２プログラミング経路では、セルの閾値電圧レベルは上側論理ページ内にプログラムされるビットに従って設定される。上側論理ページビットが論理「１」を記憶する場合、セルは下側ページビットのプログラミングに依存する状態ＥまたはＡの一方であり、どちらも上側ページビットは「１」を保持するのでプログラミングは生じない。上側ページビットが論理「０」となる場合、閾値電圧はシフトされる。第１経路によってセルが消去状態Ｅに留まっていれば第２段階でセルをプログラムし、矢印３５４で示したように閾値電圧が状態Ｃ内になるように増大させる。第１プログラミング経路の結果としてセルが状態Ａ内にプログラムされれば、メモリセルはさらに第２経路でプログラムされ、矢印３５２で示したように閾値電圧が状態Ｂ内になるように増大させる。第２経路の結果は、下側ページ用のデータを変更することなく、上側ページの論理「０」を記憶するように指定した状態にセルをプログラムすることである。
【００４０】
一実施形態では、ページ全体を充填するのに十分なデータを書き込まれた場合、システムは全シーケンス書き込みを実行するように設定される。全ページに対して十分ではないデータが書き込まれた場合、プログラミング処理は受け取ったデータを用いて下側ページプログラミングを実行できる。次のデータを受け取ったとき、システムは上側ページをプログラムする。さらに別の実施形態では、システムは下側ページをプログラムするモードで書き込みを開始し、ワードラインのメモリセルの全体（または大部分）を充填するために次の十分なデータを受け取った場合、全シーケンスプログラミングモードに変換する。このような実施形態のさらなる詳細は、発明者Sergy Anatolievich Gorobets及びYan Liの米国特許出願第１１／０１３，１２５号、「Pipelined Programming of Non-Volatile Memories Using Early Data」、出願日２００４年１２月１４日で開示されている。その全体は参照することによって本明細書に組み込まれる。
【００４１】
図９及び図１０に示されている以外のプログラミング方法を実施形態に従って使用することができる。例えば、全体を参照することにより本明細書に組み込まれるShibataらによる米国特許番号第６,６５７，８９１号、「Semiconductor Memory Device for Storing Multivalued Data」は、使用できる代替プログラミング方法を説明している。ここに説明されている技術は、ある特定のメモリセルに対して、前のページのために隣接メモリセルへの書き込み後に、特定のページに関する別の特定のメモリセルに書き込むことによって、フローティングゲート間結合を低減させる不揮発性メモリ用のプログラミング方法を説明している。一実施形態においては、不揮発性メモリセルは、４つのデータ状態を使用して、メモリセルごとに２ビットのデータを記憶できる。消去状態Ｅは、データ１１を記憶し、第１のプログラム状態Ａはデータ０１を記憶し、状態Ｂはデータ１０を記憶し、状態Ｃはデータ００を記憶することができる。各メモリセルは、図１０のように上側ページ及び下側ページと呼ばれる２ページのデータを記憶する。中間状態の使用を含む方法は、後にプログラムされる隣接セルに起因するフローティングゲート間結合の影響を低減させることができる。
【００４２】
いくつかの実施形態では、２段階プログラミング処理を使用することによって、プログラミング処理を不当に低速化することなく、密な閾値電圧分布を達成する。第１の段階（粗プログラミング段階）では、密な閾値電圧分布を得ることにあまり注意を払わずに閾値電圧を高速で上昇させることを試行する。第２段階（密プログラミング段階）では、目標閾値電圧に到達達させるためにゆっくりと閾値電圧を上昇させて、より密な閾値電圧分布を得る。粗／密プログラミング方法論の一例は、全体を参照することにより本明細書に組み込まれる米国特許第６，６４３，１８８号に記載されている。
【００４３】
メモリセルを目標状態にプログラムするとき、２つの検証レベルが使用される。例えば、Ｖｖａ、Ｖｖｂ、Ｖｖｃ等に相当する最終検証レベルＶｖｅｒ１を使用できる。例えば、状態Ａにプログラムされるメモリセルの閾値電圧が最終検証レベルＶｖａに到達すると、そのメモリセルに対応するビットラインに禁止電圧が印加されて、メモリセルがさらにプログラムされることが禁止される。例えば、ビットライン電圧がＶｄｄに高められる。しかしながら、メモリセルが最終目標レベルＶｖａに近い（がそれより低い）閾値電圧に到達すると、後のプログラミングパルスの間のメモリセルの閾値電圧のシフトは、特定のバイアス電圧（例えばＶ１）がビットラインに印加されることによって減速される。Ｖ１は、通常、約０．３Ｖから０．８Ｖである。閾値電圧シフトの割合は後のいくつかのプログラミングパルスの間に低減されるため、従来の方法より最終閾値電圧分布を狭めることができる。この方法を実現するために、Ｖｖｅｒ１より低い第２の検証レベルが使用される。第２の検証レベルＶｖｅｒ２は、図９及び図１０にＶｖａ１、Ｖｖｂ１、及びＶｖｃ１として示されている。状態Ａにプログラムされるメモリセルの閾値電圧がＶｖａ１より大きいがＶｖａより小さいときは、メモリセルへの閾値電圧シフトはビットラインバイアスＶ１を印加することにより後のプログラミングパルスに対して低減される。なお、このケースでは、２つの検証動作が状態ごとに必要とされる。粗／密プログラミング方法による状態ごとの対応する最終検証レベル（例えば、Ｖｖａ）での１つの検証動作が実行され、状態ごとの対応する第２の検証レベル（例えば、Ｖｖａ１）での１つの検証動作が実行される。このため、メモリセルをプログラムするために要する総時間が増加する場合がある。ただし、処理を加速するためにより大きな△Ｖｐｇｍステップサイズを使用できる。
【００４４】
妥当なプログラミング時間を維持するために、いくつかの実施形態では、粗／密プログラミングアルゴリズムは最高のメモリ状態（最大の正の閾値電圧範囲に対応する状態）に適用してはならない。図１０の状態Ｃのような最高の状態は、さらに高い状態から区別される必要はない。通常は、最小の閾値レベルより高いこの状態が、次に低い状態（例えば、分布１２によって表される状態Ｂ）から区別されるようにセルをプログラムすることが必要になるだけである。したがって、これらのセルの分布は、装置性能に悪影響を及ぼさずに広い閾値電圧範囲を占めることができる。
【００４５】
いくつかの例では、プログラミング動作の間に意図された状態について成功裏に検証するメモリセルは、その後、意図された状態の閾値電圧範囲から脱落する（最終検証レベルを下回る）可能性がある。これは、読み出しエラーを生じさせ、及び／または、エラー訂正符号（ＥＣＣ）の使用のように補償技術の要求を生じさせることがある。セルは、より多くのメモリ容量を提供するために絶えず縮小されている。この縮小は、制御ゲートとフローティングゲートの間の誘電体（ゲート間またはポリ間の誘電体と呼ばれる）の厚さ（実際または有効）を減少させる場合がある。加えて、例えば、一般的なＯＮＯ誘電体より漏れの影響を受けやすい傾向がある高誘電率（高Ｋ）の材料が使用される。大きな電位差がメモリセルの制御ゲートとフローティングゲートの間に存在すると、負の電荷がフローティングゲートから制御ゲートに向かって引き出され、意図しない閾値電圧の変化を生じさせることがある。例えば、図２及び図３を参照すると、電子はフローティングゲート１０６ＦＧから制御ゲート１０６ＣＧに向かって引き出され、メモリセル１０６の閾値電圧を変化させる場合がある。例えば、セルがロックアウトされてプログラムを禁止されている状態で、プログラム電圧がロックアウトされたセルと同じワードラインに接続されている他のセルをプログラムするために印加されると、ロックアウトされたセルの制御ゲートとフローティングゲートの間には大きな電位差が生じる。電子がフローティングゲートから漏れ、ロックアウトされたセルの閾値電圧が意図された状態の最終検証レベルより低いレベルに低下することがある。例えば図４では、ＷＬ２にプログラム電圧を印加することによってメモリセル２４４のプログラミングが実行されている間は、メモリセル２２４はロックアウトされる。メモリセル２２４の制御ゲートでの大きな電位によって、メモリセル２２４のフローティングゲートから電子が引き出される場合がある。
【００４６】
典型的なプログラム動作では、セルは、意図された状態に対する検証動作に合格した後に、追加のプログラミングから恒久的にロックアウトされる。これらのセルは、無事に検証された後は追加の検証を受けない。従って、これらのセルが無事に検証されとしても、プログラミングの最後においてこれらのセルが意図された状態の検証レベルを下回る閾値電圧を有することがある。
【００４７】
一実施形態によれば、検証後に負の電荷を失う可能性のあるセルを検出するために、メモリセルはプログラミング中に検証される。例えば、メモリセルは、目標状態について正しく検証されたかどうかに関係なく、各プログラミングパルス（プログラム動作）の後に検証を受けることがある。以前に検証されたメモリセルが、プログラミング処理のさらなる反復で検証できない場合、追加のプログラミングを受けることができる。
【００４８】
図１１Ａから図１１Ｃ及び図１２Ａから図１２Ｃは、一実施形態に係るプログラミング処理を示している。図１１Ａ及び図１２Ａは、制御ゲートに印加されるプログラミングパルスＶｐｇｍを示している。図１１Ｂ及び図１２Ｂは、プログラムされているメモリセルのビットライン電圧を示している。図１１Ｃ及び図１２Ｃは、プログラムされているメモリセルの閾値電圧を示す。図１１Ａから図１１Ｃ及び図１２Ａから図１２Ｃの処理は、粗／密プログラミングを使用して実行される。他の実施形態では、粗／密プログラミングは使用されない。
【００４９】
図１１Ａから図１１Ｃに示されているメモリセルは、大きさが増す４つのプログラム電圧パルスの印加後の時間ｔ４でその目標状態のＶｖｅｒ２レベルに到達したと判定される。例えば、Ｖｖｅｒ２は、Ｖｖａ１、Ｖｖｂ１等に相当する。セルのビットライン電圧は、時間ｔ４でＶ１に上昇し、第１プログラミング段階のメモリセルのプログラミング速度が減速される。時間ｔ５で、１つの追加パルスの後、セルはその目標状態のＶｖｅｒ１レベルに到達したと判定される。すると、ビットライン電圧は、セルがさらにプログラムされるのを禁止するためにＶｄｄに上昇される。メモリセルは、プログラムされているワードラインの全体的なプログラミング処理メモリ動作が完了するまで検証を受け続ける。図１１Ｃは、メモリセルの閾値電圧が、プログラミングの残りにおいてＶｖｅｒ１レベルより高い値に維持されていることを示している。従って、ビットライン電圧は、プログラミングを禁止するためにＶｄｄのまま維持される。
【００５０】
図１２Ａから図１２Ｃに示すメモリセルも、時間ｔ４で意図された状態のＶｖｅｒ２レベルに到達する。ビットライン電圧はＶ１に上昇され、閾値電圧が時間ｔ６でＶｖｅｒ１レベルに達する前に、さらに２個のパルスが印加される。すると、ビットライン電圧は、プログラミングを禁止するためにＶｄｄに上昇される。時間ｔ７では、閾値電圧は依然としてＶｖｅｒ１を超えており、したがって、ビットライン電圧はＶｄｄに維持される。しかしながら、時間ｔ８で、閾値電圧はＶｖｅｒ１レベルを僅かに下回る。制御回路（例えば、列制御回路３０４のプロセッサ）はこの変化を検出し、ｔ８でビットライン電圧をＶ２に引き下げて、追加のプログラミングを可能とする。時間ｔ９で、閾値電圧はＶｖｅｒ１より高い値に戻り、ビットライン電圧は再びＶｄｄに上昇する。閾値電圧は、プログラミングの残りにおいてＶｖｅｒ１より高い値に維持される。
【００５１】
図１２Ａ〜図１２Ｃが示すように、メモリセルは、プログラミング処理中に一時的にロックアウトされるだけでさらに正確にプログラムされる。他のメモリセルをプログラムすることに起因する後の閾値電圧の低下は、すでに検証されたセルがさらにプログラムされるように検出される。一実施形態では、Ｖ２は、最終検証レベルより高い値にセルをゆっくりとプログラムし直すために、Ｖ１より大きい電圧である場合がある。このようにして、過剰プログラミングを最小限に抑えること、または、排除することができる。ビットライン電圧の上昇による減速したプログラミング（各パルスによる閾値電圧の小さいシフト）は、低減プログラミングと呼ばれることがある。低ビットライン電圧（例えば０Ｖ）が印加される場合、セルが過剰にプログラムされる可能性がある。プログラム電圧は、前回の検証の成功以降、数回に亘ってステップサイズで上昇する場合がある。セルが完全プログラミング（ＢＬ＝０Ｖ）においてロックされないと、セルの閾値電圧は禁止ゾーンまたは隣接する状態の閾値電圧範囲で終わる可能性がある。しかしながら、他の実施形態では、Ｖ２はＶ１未満またはＶ１に等しくてもよい。
【００５２】
図１３は、図１１Ａから図１１Ｃ及び図１２Ａから図１２Ｃに関して説明するような概念を使用してメモリをプログラムする一般的な方法を説明するフローチャートである。ステップ５０２では、システム（例えば、図４）はコマンドと、メモリにプログラムするデータを受け取る。ステップ５０４で、初期化が実行される。いくつかの実施形態では、メモリセルはプログラミングの前に消去される。消去されたメモリセルのそれぞれが狭い消去閾値電圧分布の範囲内で閾値電圧を有するように、ソフトプログラミングを実行してもよい。ステータスレジスタも初期化されてよい。ステップ５０６では、プログラミングパルスが印加される。特定のワードラインに接続されている各制御ゲートは、パルスを受信する。ステップ５０８で、セルが検証されることによって、その閾値電圧が意図された状態に対応する検証レベルＶｖｅｒ２に達したかどうかが判定される。ステップ５１０では、セルが検証されることによって、その閾値電圧がその意図された状態に対応する検証レベルＶｖｅｒ１に到達したかどうかが判定される。
【００５３】
処理は、以前の反復（ｎ−１，ｎ−２等）において、セルが意図された状態のＶｖｅｒ１レベルで正しく検証されたかどうかに基づいてステップ５１２で分岐する。メモリセルが、目標状態のＶｖｅｒ１レベルで検証されていない場合、処理はステップ５２０に分岐し、処理は２つの電流（ｎ）検証動作のステータスに基づいて分岐する。セルがＶｖｅｒ２で検証できなかった場合（ステップ５０８）、処理はステップ５２８に進み、プログラミング電圧はステップサイズ単位で増加され、処理用のカウンタＰＣがインクリメントされる。カウンタは、プログラミング動作の反復数を制限するために使用できる。例えば、カウンタ値は、続行するのか、不合格なのか、合格なのかを判定するために、ステップ５２８の前にチェックされる。
【００５４】
メモリセルが検証レベルＶｖｅｒ１で検証された場合（ステップ５１０）、処理はステップ５１８に続行し、次のプログラミング反復ｎ＋１の間においてロックアウトされ、プログラムが禁止される。メモリセルが、Ｖｖｅｒ２レベルで検証され、Ｖｖｅｒ１レベルで検証されない場合、そのビットラインはステップ５２２でＶ１にセットされ、次のプログラミング反復の間は閾値電圧の増加が減速される。ページのプログラミング処理がステップ５２４で判定されるように成功する場合、合格のステータスがステップ５２６で報告される。全てのまたは所定数のセルが意図された状態のＶｖｅｒ１に到達すると、処理は成功したと見なすことができる。
【００５５】
メモリセルが電流反復の以前に無事に検証されている場合、処理はステップ５１２からステップ５１４に分岐する。セルが再び検証レベルＶｖｅｒ１で検証すると、そのロックアウトつまり禁止ステータスはステップ５１８で維持される。しかしながら、セルがＶｖｅｒ１レベルの検証で不合格となる場合、追加のプログラミングを受ける。ステップ５１６では、そのビットラインが次の反復中のプログラミングを可能にするためにＶ２にセットされる。一実施形態では、密プログラミングＶ１よりも小さい各プログラム電圧パルスの閾値電圧の上昇を可能とするために、Ｖ２はＶ１未満である。他の実施形態では、異なる値を使用できる。一実施形態では、メモリセルが以前にＶｖｅｒ１で検証した後にＶｖｅｒ２で検証できない場合、閾値電圧の大幅な低下のためにＶ１を印加できる。過剰プログラミングは回避すべきである。
【００５６】
図１４は、図９に図示される完全シーケンスプログラミングの一実施形態に係るプログラミング処理を例示するフローチャートである。図１４は、図５に関して説明されるが、他の実装形態に用いることができる。ステップ６０２では、データロードコマンドまたはデータ入力コマンドがホストから受信され、状態マシンに格納される。ステップ６０４では、アドレスデータがホストから受信され、書き込み動作に使用されるページを選択するために状態マシンに記憶される。ステップ６０６では、書き込まれるデータが受信され、ＤＳ１に記憶される。ステップ６０８では、書き込みまたはプログラムコマンドがホストから受信され、状態マシンに格納される。ステップ６１０では、ＤＳ１からの入力データが、ＤＳ２及びＤＳ４にコピーされる。この実施形態では、各セルが１論理ページのために２ビットのデータを記憶する場合でも、ＤＳ２とＤＳ４にはデータの単一のビットだけが必要とされる。ＤＳ２及びＤＳ４は、状態１０、００、または０１にプログラムされるセルに対して、それぞれ０に設定される。ＤＳ２及びＤＳ４は、消去状態１１に維持されるセルに対して、それぞれ１に設定される。異なるレジスタ構成を使用できることが理解される。
【００５７】
ステップ６１２では、プログラム電圧Ｖｐｇｍがその開始値（例えば１２Ｖ）に初期化され、プログラムカウンタＰＣがその開始値（例えば０）に初期化される。ステップ６１４で、ビットライン電圧がリーチメモリセルにセットされる。ＤＳ４及びＤＳ２がともに０にセットされている場合は、メモリセルは意図される状態のＶｖｅｒ２とＶｖｅｒ１レベルの何れにもまだ到達しておらず、ビットライン電圧は０Ｖにセットされる。ＤＳ４が０にセットされ、ＤＳ２が１にセットされている場合は、粗／密プログラミング方式で密プログラミングを可能にするためにビットライン電圧はＶ１にセットされる。ＤＳ４が１にセットされ、ＤＳ２が０にセットされている場合は、それは、以前に検証されたが、いまは検証されていないメモリセルであることを示す。ビットライン電圧は、密プログラミングよりも遅いまたは低下されたプログラミングを可能にするためにＶ２にセットされる。ＤＳ４とＤＳ２がともに１にセットされている場合は、ビットライン電圧がプログラミングを禁止するためにＶｄｄにセットされる。一実施形態では、粗／密プログラミングは使用されない。検証は、最終検証レベルＶｖｅｒ１で実行されるにすぎない。このようなケースでは、ビットラインは、完全プログラミングを可能にするために０Ｖにセットされるか、プログラミングを禁止するためにＶｄｄにセットされるか、または、検証レベルを下回った以前に検証されたセルを徐々にプログラムするためにＶ２にセットされるかの何れかである。
【００５８】
ステップ６１６では、プログラム電圧パルスが選択されたワードラインに印加される。ステップ６１８では、状態１０に対する検証が、Ｖｖｅｒ２レベル（Ｖｖａ１）を使用して実行される。ステップ６１８は、状態１０にプログラムされるべきセルに対してのみ実行される。セルがＶｖｅｒ２レベルの検証に合格の場合、ＤＳ２が１にセットされる。セルが不合格の場合、ＤＳ２は０にセットまたは維持される。ステップ６２０では、状態１０に対する検証がＶｖｅｒ１レベル（Ｖｖａ）を使用して実行される。セルが合格の場合、ＤＳ４は１にセットまたは維持される。不合格であり、電流反復ｎを開始する前（つまりｎ−１反復の最後で）においてＤＳ４が０に等しかった場合、ＤＳ４は０に維持される。しかしながら、セルが不合格であり、電流反復をｎ開始する前にＤＳ４が１に等しかった場合は、ＤＳ４は１に維持され、ＤＳ２は０にセットされる。この組み合わせは、以前に検証されたが、その後検証から脱落したメモリセルを示す。この組み合わせにより、メモリセルのビットラインは、Ｖｖｅｒ１検証レベルに徐々にプログラムして戻るために、次の反復中にＶ２に引き下げられる。前述したように、他の実施形態は、均一な密レベルの精度を提供できる。例えば、セルがＶｖｅｒ１検証レベルだけではなくＶｖｅｒ２以下に低下した場合、Ｖ２の印加の結果生じる速度よりプログラミング速度を増加させるために、ビットラインをＶ１または別の値に引く組み合わせを使用できる。
【００５９】
ステップ６２２では、状態００に対する検証がＶｖｅｒ２レベル（Ｖｖｂ１）を使用して実行される。ステップ６２２は、状態００にプログラムすべきセルに対してのみ実行される。セルがＶｖｅｒ２レベル検証に合格の場合、ＤＳ２は１にセットされる。セルが不合格の場合、ＤＳ２は０にセットまたは維持される。ステップ６２４では、状態００に対する検証がＶｖｅｒ１レベル（Ｖｖｂ）を使用して実行される。セルが合格の場合、ＤＳ４は１にセットまたは維持される。不合格であり、電流反復ｎを開始する前にＤＳ４が０に等しかった場合には、ＤＳ４は０に維持される。しかしながら、セルが不合格であり、ＤＳ４が電流反復を開始する前に１に等しかった場合は、ＤＳ４は１に維持され、ＤＳ２は０にセットされる。
【００６０】
ステップ６２６では、状態０１に対する検証がＶｖｅｒ２レベル（Ｖｖｃ１）を使用して実行される。ステップ６２６は、状態０１にプログラムすべきセルに対してのみ実行される。セルがＶｖｅｒ２レベルの検証に合格の場合、ＤＳ２は１にセットされる。セルが不合格の場合、ＤＳ２は０にセットまたは維持される。ステップ６２８では、状態００に対する検証がＶｖｅｒ１レベル（Ｖｖｃ）を使用して実行される。セルが合格の場合、ＤＳ４は１にセットまたは維持される。セルが不合格であり、電流反復ｎを開始する前にＤＳ４が０に等しかった場合には、ＤＳ４は０に維持される。しかしながら、セルが不合格であり、ＤＳ４が電流反復ｎを開始する前に１に等しくなかった場合は、ＤＳ４が１に維持され、ＤＳ２は０にセットされる。
【００６１】
ステップ６３０では、プログラムされているページの全てのセルがそのＤＳ２レジスタとＤＳ４レジスタに「１」を記憶しているか否かが判定される。記憶している場合には、ステップ６３２のプログラミング処理について合格のステータスが報告される。一実施形態では、所定数のメモリセルがそのＤＳ２とＤＳ４レジスタに「１」を記憶させている場合に、合格のステータスが報告される。全てのメモリセル（または所定数のメモリセル）がＤＳ２及びＤＳ４に「１」を記憶しているわけではない場合には、プログラムカウンタが最大値未満であるかどうかが判定される。未満でない場合、プログラム処理がその最終反復を完了した旨を示し、そのＶｖｅｒ１目標レベルに到達できなかったメモリセルの数が所定数以下であるか否かが判定される。以下である場合は、ステップ６３２で合格のステータスが報告される。プログラムカウンタＰＣがまだ最大値に到達していない場合には、ステップ６３６でプログラム電圧がステップサイズ単位で増加され、カウンタはインクリメントされる。プログラム電圧を増加した後は、処理はステップ６１４に戻り、適切なビットライン条件がセットされる。以前に検証したが、説明された反復ｎの間に検証に不合格となったセルは、セルの閾値電圧の小さな段階的な増加を可能にするために、そのビットラインがＶ２にセットされる。以前に検証しなかったが、Ｖｖｅｒ２レベルに到達したセルは、密プログラミングを可能にするために、そのビットラインがＶ１にセットされる。Ｖｖｅｒ１レベルで検証に合格したセルは、次の反復の間のプログラミングを禁止するために、そのビットラインがＶｄｄにセットされる。
【００６２】
従来技術の恒久的なロックアウト方法と比較して、セルをロックアウト、つまりプログラムされるのを禁止することが一時的にすぎないということが重要である。検証は、すでに正しく検証されたセルで実行され、それらのセルは後に追加のプログラミングを受ける可能性がある。これを達成するために、プログラミングのためにロードされるオリジナルデータのコピーは、ＤＳ１によるプログラム処理を通して維持される。
【００６３】
図１５は、図１０に示されるような上側／下側ページ方式が使用されるときにデータの下側ページをプログラムするための一実施形態に係るプログラミング処理を示すフローチャートである。ここでも、粗／密プログラミングの併用は任意である。図１５は、バイナリプログラム処理でも使用できる。ステップ６５２では、データ入力コマンドがホストから受信され、状態マシンに格納される。ステップ６５４では、アドレスデータがホストから受信され、書き込み動作に使用されるページを選択するために状態マシンに記憶される。ステップ６５６では、書き込むデータが受信され、ＤＳ１に記憶される。ステップ６５８では、書き込みまたはプログラムコマンドがホストから受信され、状態マシンに格納される。ステップ６６０では、ＤＳ１からの入力データがＤＳ２及びＤＳ４にコピーされる。ステップ６６２では、プログラム電圧がその開始値（例えば１２Ｖ）に初期化され、プログラムカウンタＰＣがその開始値（例えば０）に初期化される。ビットライン電圧は、ステップ６６４で各メモリセルにセットされる。ＤＳ４及びＤＳ２がともに０にセットされている場合は、メモリセルは意図された状態のＶｖｅｒ２またはＶｖｅｒ１レベルの何れにも達しておらず、ビットライン電圧は０Ｖにセットされる。ＤＳ４が０にセットされ、ＤＳ２が１にセットされている場合は、ビットライン電圧は、粗／密プログラミング方式の密プログラムを可能にするためにＶ１にセットされる。ＤＳ４が１にセットされ、ＤＳ２が０にセットされている場合は、それは、以前に検証されたが、その前回の検証の後に不合格となったメモリセルであることを示す。ビットライン電圧は、密プログラミングよりも遅いプログラミングを可能にするためにＶ２にセットされる。ＤＳ４及びＤＳ２がともに１にセットされている場合は、ビットライン電圧はプログラミングを禁止するためにＶｄｄにセットされる。
【００６４】
ステップ６６６では、プログラム電圧パルスが選択されたワードラインに印加される。ステップ６６８では、検証が状態１０Ｖｖｅｒ２レベル（Ｖｖａｌ）を使用して実行される。セルがＶｖｅｒ２レベルの検証に合格の場合、ＤＳ２は１にセットされる。セルが不合格の場合、ＤＳ２は０にセットまたは維持される。ステップ６７０では、検証が状態１０Ｖｖｅｒ１レベル（Ｖｖａ）を使用して実行される。セルが合格の場合、ＤＳ４は１にセットまたは維持される。不合格であり、電流反復ｎを開始する前にＤＳ４が０に等しかった場合は、ＤＳ４は０に維持される。しかしながら、セルが不合格であり、電流反復ｎを開始する前にＤＳ４が１に等しく、ＤＳ１＝０である場合は、ＤＳ４は１に維持され、ＤＳ２は０にセットされる。組み合わせにより、メモリセルのビットラインは、Ｖｖｅｒ１検証レベルに徐々にプログラムして戻すために次の反復の間においてＶ２に引き下げられる。
【００６５】
ステップ６７２では、プログラムされているページの全てのセルがそのＤＳ２レジスタ及びＤＳ４レジスタに「１」を記憶しているか否かが判定される。記憶している場合には、ステップ６７４でプログラミング処理について合格のステータスが報告される。一実施形態では、所定数のメモリセルがそのＤＳ２レジスタ及びＤＳ４レジスタに「１」を記憶している場合に、合格のステータスが報告される。全てのメモリセル（または所定数のメモリセル）がＤＳ２とＤＳ４に「１」を記憶しているわけではない場合は、プログラムカウンタが最大値未満であるかどうかが判定される。未満ではない場合、プログラム処理がその最終反復を完了したことを示し、Ｖｖｅｒ１目標レベルに達することができなかったメモリセルの数が所定数以下であるか否かが判定される。以下である場合は、合格のステータスがステップ６７４で報告される。その数が所定数に達していない場合、不合格のステータスがステップ６８２で報告される。プログラムカウンタＰＣが最大値に到達していない場合は、ステップ６７８でプログラム電圧がステップサイズ単位で増加され、カウンタがインクリメントされる。プログラム電圧を増加した後、処理はステップ６６４に戻り、次の反復のための適切なビットライン条件がセットされる。
【００６６】
図１６は、図１０に示す上側／下側ページ方式が使用されるときに上側ページをプログラムするための一実施形態に係るプログラミング処理を示すフローチャートである。ステップ７０２では、データ入力コマンドがホストから受信され、状態マシンに格納される。ステップ７０４では、アドレスデータがホストから受信され、書き込み動作に使用されるページを選択するために状態マシンに格納される。ステップ７０６で、書き込まれるデータが受け取られ、ＤＳ１に記憶される。ステップ７０８では、書き込みまたはプログラムコマンドがホストから受信され、状態マシンに格納される。ステップ７１０では、ＤＳ１からの入力データが、ＤＳ２とＤＳ４にコピーされる。ステップ７１２では、読み出し動作が実行され、各メモリセルの下側ページビットの値が判定される。読み出し動作は、Ｖｒａ読み出しレベルを使用して実行される。セルが導通した場合は、セルが現在は状態１１にあることを意味するので、ＤＳ３は０にセットされる。セルが導通しない場合は、セルが現在は状態１０にあることを意味するので、ＤＳ３は１にセットされる。
【００６７】
ステップ７１４で、プログラム電圧が開始値に初期化され、プログラムカウンタが開始値に初期化される。ステップ７１６では、ビットライン電圧が各メモリセルにセットされる。ＤＳ４とＤＳ２がともに０にセットされると、ビットライン電圧は０Ｖにセットされる。ＤＳ４が０にセットされ、ＤＳ２が１にセットされると、ビットライン電圧はＶ１にセットされる。ＤＳ４が１にセットされ、ＤＳ２が０にセットされると、ビットライン電圧はＶ２にセットされる。ＤＳ４とＤＳ２がともに１にセットされると、ビットライン電圧はプログラミングを禁止するためにＶｄｄにセットされる。
【００６８】
ステップ７１８では、第１プログラミングパルスが印加される。ステップ７２０では、状態００に対するプログラム検証動作が、Ｖｖｅｒ２検証レベル（Ｖｖｂ１）を使用して実行される。ＤＳ３＝１であり、セルが検証に合格の場合は、ＤＳ２は１にセットまたは維持される。ＤＳ３＝１であり、セルが検証に不合格の場合は、ＤＳ２は０にセットまたは維持される。ステップ７２２では、状態００に対するプログラム検証動作がＶｖｅｒ１検証レベル（Ｖｖｂ）を使用して実行される。ＤＳ３＝１であり、セルが検証に合格の場合は、ＤＳ４は１にセットまたは維持される。ＤＳ３＝１であり、ＤＳ４が以前の反復後に０にセットされており、セルが検証に不合格となった場合は、ＤＳ４は０に維持される。しかしながら、セルが検証に不合格となり、ＤＳ３＝１であり、ＤＳ４が前回の反復の後に１にセットされており、ＤＳ１＝０である場合は、ＤＳ４は１に維持され、ＤＳ２は０にセットまたは維持される。
【００６９】
ステップ７２４では、状態０１に対するプログラム検証動作がＶｖｅｒ２検証レベル（Ｖｖｃ１）で実行される。セルが合格し、ＤＳ３＝０である場合は、ＤＳ２は０にセットまたは維持される。セルが不合格になり、ＤＳ３＝０である場合は、ＤＳ２は１にセットまたは維持される。ステップ７２６では、状態０１に対するプログラム検証動作がＶｖｅｒ１検証レベル（Ｖｖｃ）で実行される。セルが合格し、ＤＳ３＝０である場合は、ＤＳ４は１にセットまたは維持される。セルが不合格になり、ＤＳ３＝０であり、ＤＳ４が前回の反復後に０にセットされている場合は、ＤＳ４は０に維持される。セルが不合格になり、ＤＳ３＝０であり、ＤＳ１＝０であり、ＤＳ４が前回の反復後に１にセットされている場合は、ＤＳ４は１に維持され、７２６でＤＳ２は０にセットまたは維持される。
【００７０】
ステップ７２８では、プログラムされているページの全てのセルが、そのＤＳ２レジスタ及びＤＳ４レジスタに「１」を記憶しているか否かが判定される。記憶されている場合には、ステップ７３０でプログラミング処理について合格のステータスが報告される。一実施形態では、所定数のメモリセルがそのＤＳ２レジスタ及びＤＳ４レジスタに「１」を記憶している場合に、合格のステータスが報告される。全てのメモリセル（または所定数のメモリセル）がＤＳ２及びＤＳ４に「１」を記憶しているわけではない場合は、プログラムカウンタが最大値未満であるか否かが判定される。未満ではない場合は、プログラム処理が最終反復を完了したことが示され、ステップ７３４において、Ｖｖｅｒ１目標レベルに到達することができなかったメモリセルの数が所定数以下であるか否かが判定される。以下である場合は、合格のステータスがステップ７３０で報告される。数が所定数に到達していない場合は、不合格のステータスがステップ７３６で報告される。プログラムカウンタＰＣが最大値に到達していない場合は、ステップ７３８でプログラム電圧がステップサイズ単位で増加され、カウンタがインクリメントされる。プログラム電圧を増加した後に、処理はステップ７１６に戻り、次の反復のために適切なビットライン条件がセットされる。
【００７１】
これまで説明された実施形態では、その目標状態について以前に検証されたが、後にその最終検証レベルを下回ったと判定されたメモリセルは、追加のプログラム電圧信号の適用中に即座に追加のプログラミングを受ける。これは、プログラム処理の次の反復中の追加のプログラミングを可能にするためにメモリセルのビットライン電圧を変更することによって達成される。一実施形態では、メモリセルは即座の追加のプログラミングは受けない。例えば、一実施形態では、適切な検証レベルより高い値にメモリセルを徐々にプログラムし直すために、ページプログラミングシーケンスの最後に穏やかなプログラムパルスが印加される。これは、プログラム電圧信号を初期値にリセットして再度印加することによって達成できる。一実施形態では、プログラム電圧信号は、通常のページプログラミングシーケンスを開始するときに使用される初期値未満の値にリセットされる。別の実施形態では、穏やかなプログラムパルスがすでに説明されていた方式に類似した方式でプログラミングシーケンスの最後で適用される。メモリセルは即座の再プログラミングを受けるのではなく、シーケンスが終わるまで待機する。プログラム電圧信号はリセットされるのではなく、前述されたように増加し続ける。セルのビットライン電圧は、シーケンスの最後に穏やかに高い値にセットすることができ、メモリセルは継続的なプログラム電圧信号を使用して徐々にプログラムされる。
【００７２】
メモリセルのグループをプログラムする一実施形態では、メモリセルは、目標閾値電圧レベルに達したとして検証されるとロックアウトされる。ロックアウトされたセルは、目標閾値電圧レベルにまだ到達していないメモリセルについてのプログラミングが続行している間、追加の検証を受けない。全てのまたは所定数のメモリセルがその目標閾値レベルに到達したときに、検証は再び全てのメモリセルについて実行される。いずれかのセルがその目標閾値電圧レベルを下回った場合には、それらのセルはその時点で追加のプログラミングを受けることができる。プログラム電圧は、これらのセルをその目標閾値電圧レベルに徐々にプログラムし直すために、（過剰プログラミングを回避するためにその開始値にまたはさらに低い開始値に）リセットできる。代わりに、プログラム電圧が増加し続け、過剰にプログラミングするのを回避するために、追加のプログラミングを受けるセルのビットラインに電圧が印加されてもよい。
【００７３】
上記例は、ＮＡＮＤタイプのフラッシュメモリに関して提供された。しかしながら、本開示の原則は、それらの既存の不揮発性メモリ及び開発されている新しい技術を使用する不揮発性メモリを含む他のタイプの不揮発性メモリに適用できる。一実施形態では、本書に説明されている技法がＮＯＲタイプのメモリとともに使用される。ＮＯＲメモリでは、チャネル領域はプログラミング中に昇圧されないため、プログラミング動作中に制御ゲートとフローティングゲートの間にさらに高い電位が存在する可能性がある。典型的なＮＯＲフラッシュメモリは、ホットエレクトロン注入でプログラムされる。高いドレイン電圧及びゲート電圧が印加される。ゲート電圧は、ＮＡＮＤ型メモリについて前述されたように徐々に増加される。以前に検証されたが、その後に最終検証レベルを下回ったＮＯＲメモリセルを検出した後に、同じプログラム電圧をゲートに印加されたままの状態で、僅かに低いドレイン電圧が印加できる。低下したドレイン電圧により、セルを検証レベルより高い値に徐々にプログラムし直すことができる。別の実施形態では、プログラム電圧信号は、印加される初期値以下にリセットされ、ページプログラミングシーケンスの最後に印加される。
【００７４】
本開示は、前述したような誘電電荷蓄積領域を利用する装置にも適用されてよい。これらの装置では、電子は、導電性のフローティングゲートの中から引き出されるのと同様に誘電電荷蓄積領域の中から不注意に引き出されることがある。例えば、説明した検証技術及びプログラミング技術は、フローティングゲートの代わりに電荷を蓄積する誘電体層を有するＮＲＯＭセルと共に使用できる。全体を参照することにより本明細書に組み込まれる米国特許番号第５，７６８，１９２号及び第６，０１１，７２５号は、捕捉誘電体層が２つの二酸化ケイ素の層の間に挟持されるこのような不揮発性メモリセルを開示している。
【００７５】
本発明の前記の詳細な説明は、図解及び説明の目的で提示されてきた。網羅的になること、または開示されている正確な形式に本発明を制限することを目的としていない。前記教示を鑑みて多くの変型及び変形が可能である。説明した実施形態は、本発明の原理及びその実際的な応用例を最もよく説明し、それにより当業者が、意図された特定の使用に適するように、多様な実施形態において、及び多様な変型とともに本発明を最も利用できるようにするために選ばれた。本発明の範囲が、本明細書に添付される請求項により明示されることが意図される。
【図面の簡単な説明】
【００７６】
【図１】ＮＡＮＤストリングの平面図。
【図２】図１に示すＮＡＮＤストリングの等価回路図。
【図３】図１のＮＡＮＤストリングの断面図。
【図４】３個のＮＡＮＤストリングを示す回路図。
【図５】本発明の種々の実施形態うちの一実施形態の不揮発性メモリシステムのブロック図。
【図６】メモリアレイの構成例。
【図７】実施形態による選択ワードラインに印加できるプログラミング／検証電圧信号の例を示す図。
【図８】列制御回路の一部。
【図９】マルチ状態不揮発性メモリセルのセットの例示的な閾値電圧分布、及び、セルのセットをプログラムするプログラミング処理を示す図。
【図１０】マルチ状態不揮発性メモリセルのセットの例示的な閾値電圧分布、及び、セルのセットをプログラムするプログラミング処理を示す図。
【図１１Ａ】粗／密プログラミングを利用する一実施形態に係るプログラミング処理。
【図１１Ｂ】粗／密プログラミングを利用する一実施形態に係るプログラミング処理。
【図１１Ｃ】粗／密プログラミングを利用する一実施形態に係るプログラミング処理。
【図１２Ａ】粗／密プログラミングを利用する一実施形態に係るプログラミング処理。
【図１２Ｂ】粗／密プログラミングを利用する一実施形態に係るプログラミング処理。
【図１２Ｃ】粗／密プログラミングを利用する一実施形態に係るプログラミング処理。
【図１３】一実施形態に係るプログラミングの一般化された方法を説明するフローチャート。
【図１４】一実施形態に係る完全シーケンスプログラミングの方法を説明するフローチャート。
【図１５】上側／下側ページプログラミングを利用する一実施形態に係る下側ページのプログラム方法を説明するフローチャート。
【図１６】上側／下側ページプログラミングを利用する一実施形態に係る上側ページのプログラム方法を説明するフローチャート。
【図１】
2009522703.tif 000003
【図２】
2009522703.tif 000004
【図３】
2009522703.tif 000005
【図４】
2009522703.tif 000006
【図５】
2009522703.tif 000007
【図６】
2009522703.tif 000008
【図７】
2009522703.tif 000009
【図８】
2009522703.tif 000010
【図９】
2009522703.tif 000011
【図１０】
2009522703.tif 000012
【図１１Ａ】
2009522703.tif 000013
【図１１Ｂ】
2009522703.tif 000014
【図１１Ｃ】
2009522703.tif 000015
【図１２Ａ】
2009522703.tif 000016
【図１２Ｂ】
2009522703.tif 000017
【図１２Ｃ】
2009522703.tif 000018
【図１３】
2009522703.tif 000019
【図１４】
2009522703.tif 000020
【図１５】
2009522703.tif 000021
【図１６】
2009522703.tif 000022
【手続補正書】
【提出日】平成20年8月22日(2008.8.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
不揮発性メモリをプログラムする方法であって、
１または複数の目標状態のうちの１つへプログラムされる対象である不揮発性記憶素子のセットをプログラムするステップと、
プログラムされる対象である不揮発性記憶素子の目標状態に対応するそれぞれの検証レベルに到達している各不揮発性記憶素子へのプログラミングを禁止するステップと、
プログラムされる対象である不揮発性記憶素子の目標状態に対応するそれぞれの検証レベルに到達し、その後、プログラムされる対象である不揮発性記憶素子の目標状態に対応するそれぞれの検証レベルを下回った各不揮発性記憶素子のプログラミングの第１速度を有効にするステップと、
プログラムされる対象である不揮発性記憶素子の目標状態に対応するそれぞれの検証レベルに未だ到達していない各不揮発性記憶素子のプログラミングの第２速度を有効にするステップと、
を備えていることを特徴とする方法。
【請求項２】
プログラミングを禁止するステップが、プログラムされる対象である不揮発性記憶素子の目標状態に対応するそれぞれの検証レベルに到達している各不揮発性記憶素子のビットラインにプログラム禁止電圧を印加するステップを備えており、
プログラミングの第１速度を有効にするステップが、プログラムされる対象である不揮発性記憶素子の目標状態に対応するそれぞれの検証レベルに到達し、その後、プログラムされる対象である不揮発性記憶素子の目標状態に対応するそれぞれの検証レベルを下回った各不揮発性記憶素子のビットラインに第１プログラム有効電圧を印加するステップを備えており、
プログラミングの第２速度を有効にするステップが、プログラムされる対象である不揮発性記憶素子の目標状態に対応するそれぞれの検証レベルに未だ到達していない各不揮発性記憶素子のビットラインに、第１プログラム有効電圧より低い第２プログラム有効電圧を印加するステップを備えている、
ことを特徴とする請求項１に記載の方法。
【請求項３】
前記セットの不揮発性記憶素子の所定数のそれぞれが、プログラムされる対象である不揮発性記憶素子の目標状態に対応するそれぞれの検証レベルに到達するときに、プログラミングが成功したことを検証するステップ、
をさらに備えていることを特徴とする請求項１に記載の方法。
【請求項４】
前記１つまたは複数の目標状態が、少なくとも第１目標状態と第２目標状態を含んでおり、第１検証レベルが第１目標状態に対応し、第２検証レベルが第２目標状態に対応し、
禁止する前記ステップが、第１検証レベルに到達する第１目標状態にプログラムされる対象である各不揮発性記憶素子のプログラミングを禁止するステップと、第２検証レベルに到達する第２状態にプログラムされる対象である各不揮発性記憶素子のプログラミングを禁止するステップを備えている、
ことを特徴とする請求項１に記載の方法。
【請求項５】
プログラムされる対象である不揮発性記憶素子の目標状態に対応するそれぞれの検証レベルに到達し、その後、プログラムされる対象である不揮発性記憶素子の目標状態に対応するそれぞれの検証レベルを下回った各不揮発性記憶素子を除く前記セットの全ての不揮発性記憶素子のプログラミングを完了した後に、プログラミングの第１速度を有効にする前記ステップが実行されることを特徴とする請求項１に記載の方法。
【請求項６】
プログラミングの完了が、前記各不揮発性記憶素子を除く前記セットの全ての不揮発性記憶素子のうちの所定数のそれぞれが、プログラムされる対象である不揮発性素子の目標状態に対応するそれぞれの検証レベルに到達したことを判定するステップを備えていることを特徴とする請求項５に記載の方法。
【請求項７】
プログラミングの第１速度を有効にする前記ステップが、
最初に、不揮発性記憶素子のサブセットのそれぞれが、プログラムされる対象である不揮発性素子の目標状態に対応する目標閾値電圧レベル以上の閾値電圧を有することを判定するステップと、
その後に、サブセットの１つまたは複数の不揮発性記憶素子のそれぞれが、プログラムされる対象である不揮発性記憶素子の目標状態に対応する目標閾値電圧レベルを下回る閾値電圧を有することを判定するステップと、
前記１つまたは複数の不揮発性記憶素子のプログラミングの第１速度を有効にするステップ、
を備えていることを特徴とする請求項１に記載の方法。
【請求項８】
不揮発性記憶素子のセットをプログラムする前記ステップが、プログラム電圧パルスのシリーズを印加するステップを備えており、
その後に判定する前記ステップが、前記シリーズのうちの第１電圧パルスを印加した後に判定するステップを備えており、
プログラミングの第１速度を有効にする前記ステップが、第１電圧パルスより大きく、第１電圧パルスの直後に続く次の電圧パルスに対して、前記１つまたは複数の不揮発性記憶素子のプログラミングの第１速度を有効にするステップを備えている、
ことを特徴とする請求項７に記載の方法。
【請求項９】
不揮発性記憶素子のセットと、
複数のビットラインであって、各不揮発性記憶素子が前記セットの１つのビットラインと通信するように構成されているビットラインと、
不揮発性記憶素子の前記セットと前記複数のビットラインと通信する管理回路であって、前記セットの各不揮発性記憶素子を１つまたは複数の目標状態の１つにプログラムされる対象とする処理で不揮発性記憶素子の前記セットをプログラムし、プログラムされる対象の不揮発性記憶素子の目標状態に対応するそれぞれの検証レベルに到達している各不揮発性記憶素子のビットラインに第１電圧を印加し、プログラムされる対象である不揮発性記憶素子の目標状態に対応するそれぞれの検証レベルに到達し、その後、それぞれの検証レベル未満にあると判定された各不揮発性記憶素子のビットラインに第２電圧を印加し、プログラムされる対象である不揮発性記憶素子の目標状態に対応するそれぞれの検証レベルに未だ到達していないそれぞれの不揮発性記憶素子のビットラインに第３電圧を印加する管理回路、
を備えていることを特徴とする不揮発性メモリシステム。
【請求項１０】
管理回路が、プログラムされる対象である不揮発性記憶素子の目標状態に対応するそれぞれの検証レベルに到達し、その後、それぞれの検証レベル未満にあると判定された各不揮発性記憶素子を除く全ての不揮発性記憶素子のプログラミングを完了した後に、第２電圧を印加することを特徴とする請求項９に記載の不揮発性メモリシステム。
【請求項１１】
管理回路が、第１電圧を印加して、プログラムされる対象である不揮発性記憶素子の目標状態に対応するそれぞれの検証レベルに到達していると判定された各不揮発性記憶素子のプログラミングを禁止し、
管理回路が、第２電圧を印加して、プログラムされる対象である不揮発性記憶素子の目標状態に対応するそれぞれの検証レベルに到達し、その後、それぞれの検証レベル未満にあると判定された各不揮発性記憶素子のプログラミングを有効とし、
管理回路が、第３電圧を印加して、プログラムされる対象である不揮発性記憶素子の目標状態に対応するそれぞれの検証レベルに未だ到達していない不揮発性記憶素子のプログラミングを有効とする、
ことを特徴とする請求項９に記載の不揮発性メモリシステム。
【請求項１２】
第２電圧が第３電圧より大きく、
管理回路が、第２電圧を印加して、プログラムされる対象である不揮発性記憶素子の目標状態に対応するそれぞれの検証レベルに到達し、その後、それぞれの検証レベル未満にあると判定された各不揮発性記憶素子の第１速度でのプログラミングを有効とし、
管理回路が、第３電圧を印加して、プログラムされる対象である不揮発性記憶素子の目標状態に対応するそれぞれの検証レベルに未だ到達していない各不揮発性記憶素子の第２速度でのプログラミングを有効とし、
第１速度が第２速度より低速である、
ことを特徴とする請求項９に記載の不揮発性メモリシステム。
【請求項１３】
第１電圧がプログラム禁止電圧であり、
第２電圧が低減されたプログラム有効電圧であり、
第３電圧がプログラム有効電圧であり、
第３電圧が第２電圧よりも低い、
ことを特徴とする請求項９に記載の不揮発性メモリシステム。
【請求項１４】
前記セットの不揮発性記憶素子が、ＮＡＮＤマルチ状態フラッシュメモリ装置であることを特徴とする請求項９に記載の不揮発性メモリシステム。
【国際調査報告】
2009522703.tif 000023
2009522703.tif 000024
2009522703.tif 000025