(57)【要約】  １つ又は複数のプログラミング動作を不揮発性記憶要素の組に実行する。プログラミング動作では、例えばプログラミングパルスの組を印加する。ベリファイ処理を実行し、不揮発性記憶要素のなかから、中間ベリファイしきい値に到達しているとともに最終ベリファイしきい値に到達していないものを特定する。中間ベリファイしきい値に到達しているとともに最終ベリファイしきい値に到達していない不揮発性記憶要素に、１つの追加プログラミング動作を低減したレベルで実行する。次に、それらの不揮発性記憶要素には、さらなるプログラミングを禁止する。中間ベリファイしきい値に到達していない不揮発性記憶要素には、プログラミングを継続する。最終ベリファイしきい値に到達した不揮発性記憶要素には、プログラミングを禁止する。【選択図】図１２
2007519161.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリをプログラミングする方法であって、
不揮発性記憶要素に一回又は複数回のプログラミング動作を実行する工程と、
前記不揮発性記憶要素が、最終ベリファイしきい値とは異なる中間ベリファイしきい値に到達しているのか否かを判定する工程と、
前記判定工程に応じて、前記不揮発性記憶要素に一回のみの追加プログラミング動作を低減したレベルで実行する工程と、
前記一回のみの追加プログラミング動作を実行した後に、追加プログラミング動作による前記不揮発性記憶要素のしきい値の変化に関わらず、前記不揮発性記憶要素へのプログラミングを禁止する工程と、
を備える方法。
【請求項２】
前記一回又は複数回のプログラミング動作では、その大きさが所定のステップサイズずつ増大する複数のプログラム用パルスを印加し、
前記一回の追加プログラミング動作は、前記不揮発性記憶要素のしきい値を、前記ステップサイズの略半分だけ意図的に変化させることを特徴とする請求項１に記載の方法。
【請求項３】
前記中間ベリファイしきい値は、前記最終ベリファイしきい値よりも所定量だけ低く、
前記一回の追加プログラミング動作は、前記中間ベリファイしきい値に到達した前記不揮発性記憶要素を、前記最終ベリファイしきい値に実質的に到達させることを特徴とする請求項１に記載の方法。
【請求項４】
前記一回又は複数回のプログラミング動作は、前記不揮発性記憶要素のビット線電圧を所定のプログラム用レベルにして実行され、
前記不揮発性記憶要素へのプログラミングを禁止する工程は、前記不揮発性記憶要素の前記ビット線電圧を所定の禁止用レベルにして実行され、
前記一回の追加プログラミング動作は、前記不揮発性記憶要素の前記ビット線電圧を前記プログラム用レベルと前記禁止用レベルとの間の所定の中間レベルにして実行されるとともに、前記不揮発性記憶要素の前記ビット線電圧は、正確に一回のプログラミング動作期間にわたって前記中間レベルとされることを特徴とする請求項１に記載の方法。
【請求項５】
前記一回の追加プログラミング動作では、前記不揮発性記憶要素のビット線電圧を引き上げることによって、そのレベルを低減させることを特徴とする請求項１に記載の方法。
【請求項６】
前記一回又は複数回のプログラミング動作では、複数のプログラム用パルスを印加し、
前記一回の追加プログラミング動作では、印加するプログラム用パルスの幅を縮小することによって、そのレベルを低減させることを特徴とする請求項１に記載の方法。
【請求項７】
前記一回又は複数回のプログラミング動作では、複数のプログラム用パルスを印加し、
前記一回のみの追加プログラミング動作を実行する工程では、一つのプログラム用パルスを印加し、
前記禁止する工程は、前記一つのプログラム用パルスを印加した後で実行されることを特徴とする請求項１に記載の方法。
【請求項８】
不揮発性メモリをプログラミングする方法であって、
不揮発性記憶要素群に一回又は複数回のプログラミング動作を実行する工程と、
前記不揮発性記憶要素群のなかで、中間ベリファイしきい値に到達しているとともに最終ベリファイしきい値に到達していないものを特定する工程と、
前記中間ベリファイしきい値に到達しているとともに前記最終ベリファイしきい値に到達していない前記不揮発性記憶要素に、一回の追加プログラミング動作を低減したレベルで実行する工程と、
前記一回の追加プログラミング動作の後に、前記中間ベリファイしきい値に到達しているとともに最終ベリファイしきい値に到達していない前記不揮発性記憶要素へのプログラミングを自動的に禁止する工程と、
前記中間ベリファイしきい値に到達していない不揮発性記憶要素へのプログラミングを継続する工程と、
を備える方法。
【請求項９】
前記一回又は複数回のプログラミング動作では、その大きさが所定のステップサイズずつ増大する複数のプログラム用パルスを印加し、
前記一回の追加プログラミング動作は、前記中間ベリファイしきい値電圧に到達しているとともに前記最終ベリファイしきい値電圧に到達していない前記不揮発性記憶要素のしきい値電圧を、前記ステップサイズの略半分だけ意図的に変化させることを特徴とする請求項８に記載の方法。
【請求項１０】
前記中間ベリファイしきい値は、前記最終ベリファイしきい値よりも所定量だけ低く、
前記一回の追加プログラミング動作が、前記中間ベリファイしきい値に到達した前記不揮発性記憶要素を、前記最終ベリファイしきい値に実質的に到達させることを特徴とする請求項８に記載の方法。
【請求項１１】
前記一回又は複数回のプログラミング動作は、前記不揮発性記憶要素のビット線電圧を所定のプログラム用レベル範囲にして実行され、
前記プログラミングを禁止する工程は、ビット線電圧を所定の禁止用レベルにして実行され、
前記一回の追加プログラミング動作は、ビット線電圧を、前記プログラム用レベルと前記禁止用レベルとの間の所定の中間レベルにして実行されることを特徴とする請求項８に記載の方法。
【請求項１２】
前記一回又は複数回のプログラミング動作では、複数のプログラム用パルスを印加し、
前記一回の追加プログラミング動作を実行する工程では、一つのプログラム用パルスを印加し、
前記禁止する工程は、前記一つのプログラム用パルスを印加した後で実行されることを特徴とする請求項１１に記載の方法。
【請求項１３】
前記一回又は複数回のプログラミング動作では、複数のプログラム用パルスを印加し、
前記一回の追加プログラミング動作を実行する工程では、一つのプログラム用パルスを印加し、
前記禁止する工程は、前記一つのプログラム用パルスを印加した後で実行されることを特徴とする請求項８に記載の方法。
【請求項１４】
前記一回又は複数回のプログラミング動作では、複数のプログラム用パルスを印加し、
前記一回の追加プログラミング動作では、印加するプログラム用パルスの幅を縮小することによって、そのレベルを低減させることを特徴とする請求項８に記載の方法。
【請求項１５】
不揮発性記憶要素群のアレイと、
前記不揮発性記憶要素群と通信を行う制御回路とを備え、前記制御回路は、
前記不揮発性記憶要素群に一回又は複数回のプログラミング動作を実行する処理と、
前記不揮発性記憶要素群のなかで、中間ベリファイしきい値に到達しているとともに最終ベリファイしきい値に到達していないものを特定する処理と、
前記中間ベリファイしきい値に到達しているとともに前記最終ベリファイしきい値に到達していない前記不揮発性記憶要素に、一回の追加プログラミング動作を低減したレベルで実行する処理と、
前記一回の追加プログラミング動作の後に、前記中間ベリファイしきい値に到達している前記不揮発性記憶要素へのプログラミングを禁止する処理と、
前記中間ベリファイしきい値に到達していない不揮発性記憶要素へのプログラミングを継続する処理を実行し、
前記制御回路は、前記一回の追加プログラミング動作の後、かつ、さらなるプログラミング動作の前に、前記中間ベリファイしきい値に到達している前記不揮発性記憶要素へのプログラミングを禁止することを特徴とする不揮発性記憶システム。
【請求項１６】
前記制御回路は、コントローラを含むことを特徴とする請求項１５に記載の不揮発性記憶システム。
【請求項１７】
前記制御回路は、状態マシンを含むことを特徴とする請求項１５に記載の不揮発性記憶システム。
【請求項１８】
前記制御回路は、センス増幅回路の組と、コントローラと、状態マシンとを含むことを特徴とする請求項１５に記載の不揮発性記憶システム。
【請求項１９】
前記一回又は複数回のプログラミング動作では、その大きさが所定のステップサイズずつ増大する複数のプログラム用パルスを印加し、
前記一回の追加プログラミング動作は、前記中間ベリファイしきい値電圧に到達しているとともに前記最終ベリファイしきい値電圧に到達していない前記不揮発性記憶要素のしきい値電圧を、前記ステップサイズの略半分だけ意図的に変化させることを特徴とする請求項１５に記載の不揮発性記憶システム。
【請求項２０】
前記一回又は複数回のプログラミング動作は、前記不揮発性記憶要素のビット線電圧を所定のプログラム用レベル範囲にして実行され、
前記プログラミングを禁止する処理は、ビット線電圧を所定の禁止用レベル範囲にして実行され、
前記一回の追加プログラミング動作は、ビット線電圧を、前記プログラム用レベル範囲と前記禁止用レベル範囲との間の所定の中間レベル範囲にして実行されることを特徴とする請求項１５に記載の不揮発性記憶システム。
【請求項２１】
前記一回又は複数回のプログラミング動作では、複数のプログラム用パルスを印加し、
前記一回の追加プログラミング動作では、一つのプログラム用パルスを印加することを特徴とする請求項１５に記載の不揮発性記憶システム。
【請求項２２】
不揮発性メモリをプログラミングする方法であって、
不揮発性記憶要素にプログラミング動作を実行する工程と、
前記不揮発性記憶要素が、１つ又は複数の中間ベリファイしきい値の組のなかのいずれの中間ベリファイしきい値電圧に到達しているのかを判定する工程と、
前記判定工程に応じて、前記不揮発性記憶要素に一回の追加プログラミング動作を実行する工程と、
前記一回の追加プログラミング動作を実行した後に、前記不揮発性記憶要素へのプログラミングを禁止する工程を備え、
前記プログラミング動作では、所定の増分サイズで増大していくプログラム電圧を印加し、
前記一回の追加プログラミング動作では、前記不揮発性記憶要素のしきい値電圧を、前記増分サイズの一部に相当する部分量であって、到達したと判定した中間ベリファイしきい値に依存する部分量だけ変化させ、
前記禁止する工程は、前記一回の追加プログラミング動作の後、かつ、さらなるプログラミング動作の前に実行されることを特徴とする方法。
【請求項２３】
前記増分サイズの前記部分量は、前記増分サイズの半分に相当し、
前記一つ又は複数の中間ベリファイしきい値の組は、一つの中間ベリファイしきい値を含むことを特徴とする請求項２２に記載の方法。
【請求項２４】
前記増分サイズの前記部分量は、前記増分サイズの３分の１に相当し、
前記中間ベリファイしきい値の組は、２つの中間ベリファイしきい値を含むことを特徴とする請求項２２に記載の方法。
【請求項２５】
前記増分サイズの前記部分量は、前記増分サイズの３分の２であり、
前記中間ベリファイしきい値の組は、２つの中間ベリファイしきい値を含むことを特徴とする請求項２２に記載の方法。
【請求項２６】
前記中間ベリファイしきい値の組は、３つ以上の中間ベリファイしきい値を含むことを特徴とする請求項２２に記載の方法。
【請求項２７】
前記プログラミング動作は、前記不揮発性記憶要素のビット線電圧を所定のプログラム用レベルにして実行され、
前記プログラミングを禁止する工程は、前記ビット線電圧を所定の禁止用レベルにして間に実行され、
前記一回の追加プログラミング動作は、前記ビット線電圧を、前記プログラム用レベルと前記禁止用レベルとの間の所定の中間レベルにして実行されることを特徴とする請求項２２に記載の方法。
【請求項２８】
前記プログラミング動作では、複数のプログラム用パルスを印加し、
前記一回の追加プログラミング動作では、１つのプログラム用パルスを印加し、
前記禁止する工程は、前記１つのプログラム用パルス電圧を印加した後で実行されることを特徴とする請求項２２に記載の方法。
【請求項２９】
不揮発性記憶要素群のアレイと、
前記不揮発性記憶要素群と通信を行う制御回路とを備え、前記制御回路は、
前記不揮発性記憶要素群に一回又は複数回のプログラミング動作を実行する処理と、
前記不揮発性記憶要素群のなかで、中間ベリファイしきい値に到達しているとともに最終ベリファイしきい値に到達していないものを特定する処理と、
前記中間ベリファイしきい値に到達しているとともに前記最終ベリファイしきい値に到達していない前記不揮発性記憶要素に、一回の追加プログラミング動作を低減したレベルで実行する処理と、
前記一回の追加プログラミング動作の後で、前記中間ベリファイしきい値に到達している前記不揮発性記憶要素へのプログラミングを自動的に禁止する処理を実行し、
前記一回又は複数回のプログラミング動作では、所定の増分サイズで増大していくプログラム電圧を印加し、
前記一回の追加プログラミング動作では、前記不揮発性記憶要素のしきい値電圧を、前記増分サイズの一部に相当する部分量であって、前記中間ベリファイしきい値に基づく部分量だけ、変化させることを特徴とする不揮発性記憶システム。
【請求項３０】
前記一回又は複数回のプログラミング動作は、前記不揮発性記憶要素のビット線電圧を所定のプログラム用レベル範囲にして実行され、
前記プログラミングの禁止処理は、前記ビット線電圧を禁止用レベル範囲にして実行され、
前記一回の追加プログラミング動作は、前記ビット線電圧を、前記プログラム用レベル範囲と前記禁止用レベル範囲との間の所定の中間レベル範囲にして実行されることを特徴とする請求項２９に記載の方法。
【請求項３１】
前記一回又は複数回のプログラミング動作では、複数のプログラム用パルスを印加し、
前記一回の追加プログラミング動作では、一つのプログラム用パルスを印加し、
前記禁止処理は、前記一つのプログラム用パルスを印加した後で実行されることを特徴とする請求項２９に記載の方法。
【請求項３２】
不揮発性メモリをプログラミングする方法であって、
不揮発性記憶要素に１回又は複数回のプログラミング動作を実行する工程と、
前記不揮発性記憶要素が中間ベリファイしきい値に到達しているのか否かを判定する工程と、
前記判定工程に応じて、前記不揮発性記憶要素に一回の追加プログラミング動作を実行する工程を備え、
前記中間ベリファイしきい値は、最終ベリファイしきい値に対して、前記不揮発性記憶要素が前記一回の追加プログラミング動作によって前記最終ベリファイしきい値電圧に実質的に到達するように設定されていることを特徴とする方法。
【請求項３３】
不揮発性メモリシステムを製造する方法であって、
不揮発性記憶要素群のアレイを作成する工程と、
プログラミング処理で用いる最終ベリファイしきい値を設定する工程と、
前記プログラミング処理で用いる中間ベリファイしきい値を、その中間ベリファイしきい値に到達した前記１つ又は複数の不揮発性記憶要素の組が１回の追加プログラミング動作によって前記最終ベリファイしきい値に実質的に到達するように、設定する工程と、
を備える方法。
【請求項３４】
前記プログラミング処理では、複数のプログラミング動作を実行し、
各プログラミング動作では、前記プログラミング処理が所定のステップサイズずつ増大する複数のプログラム用パルスを印加するように、一つのプログラム用パルスを印加し、
前記最終ベリファイしきい値は、前記中間ベリファイしきい値から、前記ステップサイズの一部に相当する部分量だけ相違することを特徴とする請求項３３に記載の方法。
【請求項３５】
前記プログラミング処理では、複数のプログラミング動作を実行し、
各プログラミング動作では、前記プログラミング処理が所定のステップサイズずつ増大する複数のプログラム用パルスを印加するように、一つのプログラム用パルスを印加し、
前記最終ベリファイしきい値は、前記中間ベリファイしきい値から、前記ステップサイズの半分だけ異なることを特徴とする請求項３３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、メモリデバイスのプログラミングのための技術に関する。
【背景技術】
【０００２】
半導体メモリデバイスは、さまざまな電子装置内で、ますます多く使用されるようになっている。例えば、不揮発性半導体メモリは、携帯電話、デジタルカメラ、パーソナルデジタルアシスタント、モバイルコンピューティング装置、非モバイルコンピューティング装置、およびその他の装置の中で使用されている。電気的に消去可能でプログラム可能な読み出し専用メモリ（ＥＥＰＲＯＭ）およびフラッシュメモリは、特に普及している不揮発性半導体メモリである。
【０００３】
一般的なＥＥＰＲＯＭおよびフラッシュメモリは、浮遊ゲートを有するメモリセルを利用する。浮遊ゲートは、半導体基板内のチャネル領域の上に、チャネル領域から絶縁されて設けられている。チャネル領域は、ソース領域とドレイン領域との間のｐ−ウェル内に位置している。浮遊ゲートの上には、浮遊ゲートから絶縁されている制御ゲートが配置されている。メモリセルのしきい値電圧は、浮遊ゲートに保持される電荷の量によって制御される。即ち、メモリセルをソースとドレインとが導通するオン状態にするために制御ゲートへ印加する電圧の最小値は、浮遊ゲートに保持される電荷のレベルによって決まる。
【０００４】
一部のＥＥＰＲＯＭおよびフラッシュメモリデバイスは、２つの範囲で電荷を保持可能な浮遊ゲートを有している。この場合、メモリセルは、２つの状態の間でプログラム／消去されることが可能である。マルチビット又はマルチステートのフラッシュメモリセルは、複数の異なるしきい値電圧範囲をデバイス内で識別することにより実装される。異なるしきい値電圧範囲のそれぞれは、データビットの組の、所定の値に対応する。メモリセル内にプログラムされるデータと、セルのしきい値電圧レベルとの間の特定の関係は、セルのために採用されるデータ符号化方式に依存する。例えば、米国特許第６，２２２，７６２号明細書、および２００３年６月１３日出願の「Ｔｒａｃｋｉｎｇ  Ｃｅｌｌｓ  Ｆｏｒ  Ａ  Ｍｅｍｏｒｙ  Ｓｙｓｔｅｍ」と題した米国特許出願第１０／４６１，２４４号明細書（これらの両方は、それらの全体が参照により本明細書に援用されるものとする）には、マルチステートフラッシュメモリセルのためのさまざまなデータ符号化方式が記載されている。マルチステートセルで適切にデータを記憶するためには、マルチステートメモリセルの複数のしきい値電圧レベルの範囲を、十分な差を持って互いに分離しておく必要がある。それにより、メモリセルを各レベルに明確にプログラム又は消去することができる。
【０００５】
ＥＥＰＲＯＭ又はフラッシュメモリデバイスをプログラミングする場合、制御ゲートにプログラム電圧を印加し、ビット線を接地される。浮遊ゲート内には、チャネルから電子が注入される。浮遊ゲート内に電子が蓄積すると、浮遊ゲートは負に帯電し、メモリセルのしきい値電圧が上昇する。
【０００６】
通常、制御ゲートに印加されるプログラム電圧Ｖｐｇｍは、図１に示すような一連のパルスが用いられる。パルスの大きさは、連続するパルス毎に、所定のステップサイズ（例えば０．２Ｖ）ずつ増加する。パルスとパルスとの間の期間に、ベリファイ動作が実行される。即ち、平行してプログラムされるセル群の各セルのプログラミングレベルをプログラム電圧の各パルス間に読み出し、プログラムされるベリファイレベル以上であるのか否かを判定する。プログラミングをベリファイする一方法は、特定の比較点において導通をテストすることである。セルが十分にプログラムされたとベリファイされると、例えばビット線電圧を０からＶｄｄに引き上げることによってロックアウトし、そのセルへのプログラミング処理を停止する。例えば図２は、しきい値電圧（Ｖｔｈ）と時間との関係、およびビット線電圧（Ｖｂｌ）と時間との関係を示すグラフである。図１のプログラム電圧Ｖｐｇｍをメモリセルに印加している間、メモリセルのしきい値電圧は増加していく。メモリセルのしきい値電圧がベリファイレベル（例えばＶｖｅｒ１）に到達すると、ビット線電圧はＶｉｎｈｉｂｉｔ（例えば、Ｖｄｄ）に引き上げられる。上記の技術、および本明細書に記載するその他の技術は、さまざまな自己昇圧技術（例えば２００３年３月５日出願の「Ｓｅｌｆ  Ｂｏｏｓｔｉｎｇ  Ｔｅｃｈｎｉｑｕｅ」と題した米国特許出願第１０／３７９，６０８号明細書（その全体が参照により本明細書に援用されるものとする）に記載されているようなもの）と組み合わせて使用されてもよい。さらに、２００２年１２月５日出願の「Ｓｍａｒｔ  Ｖｅｒｉｆｙ  ｆｏｒ  Ｍｕｌｔｉ−Ｓｔａｔｅ  Ｍｅｍｏｒｉｅｓ」と題した米国特許出願第１０／３１４，０５５号明細書（その全体が参照により本明細書に援用されるものとする）に記載されているような、効率的なベリファイ技術が使用されてもよい。
【０００７】
図２に示すようなプログラミングの際には、プログラミングの速度と、プログラミングの精度との間にトレードオフが存在する。プログラミングの精度は、プログラミング処理によるプログラム後のメモリセルのしきい値電圧の分布に関連する。しきい値電圧の分布が緊密であるほど、メモリセルの正確な読み出し処理を容易に行うことができる。マルチステートメモリセルでは、読み出し処理時に異なるしきい値電圧の分布を確実に区別する必要があることから、緊密なしきい値電圧の分布がより重要となる。緊密なしきい値電圧の分布を得るためには、小さなステップサイズのプログラム電圧Ｖｐｇｍを使用すればよい。しかしながら、小さなステップサイズを採用するほど、プログラミング処理の速度は低下する。
【０００８】
図３に、従来のプログラミング処理を改良したものを示す。図３の処理では、図１のプログラム電圧信号Ｖｐｇｍを、プログラムするメモリセルの制御ゲートに印加する。プログラムパルスとプログラムパルスとの間には、ベリファイ動作が実行される。プログラムするメモリセルのしきい値電圧がＶｖｅｒ２よりも小さい場合は、ビット線電圧がロー（例えば０ボルト）に維持され、そのセルへのプログラミングが継続される。プログラムするメモリセルのしきい値電圧がＶｖｅｒ２よりも高く、Ｖｖｅｒ１よりも低い場合は、中間ビット線電圧（例えば１ボルト）を印加する。中間ビット線電圧に起因して、チャネル電圧が増加し（例えば１ボルト）、各プログラムパルスによるしきい値電圧の変化量が減少し、メモリセルのプログラミングが減速する。メモリセルのしきい値電圧が最終目標のＶｖｅｒ１に到達するまで、多数のパルスにわたって、ビット線を中間ビット線電圧に維持する。メモリセルのしきい値電圧がＶｖｅｒ１に到達したら、ビット線の電圧を引き上げ、さらなるプログラミングを禁止する（例えばビット線電圧をＶｉｎｈｉｂｉｔ（例えばＶｄｄ）に引き上げる）。
【０００９】
図３のアプローチを使用することによって、プログラム後のしきい値電圧の分布を、図２に示す処理よりも狭くすることができる。なぜなら、しきい値電圧が目標値に接近すると（例えば、しきい値電圧がＶｖｅｒ２よりも大きく、Ｖｖｅｒ１よりも小さくなった場合）、しきい値電圧のパルス毎の変化量が減少するためである。ただし、図３のプログラミング処理は改良の余地がある。その理由は、中間ビット線バイアスがメモリセルのプログラミングを減速させるために、プログラミングプロセスを終了するには、複数の追加のパルス（例えば通常は２〜３パルス）が必要とされる場合があるためである。
【００１０】
従来のメモリシステムのもう１つの問題は、電力に関連している。多くの従来のシステムは、３ボルトのＶｄｄを使用する。Ｖｄｄを低くするほど、メモリシステムが消費する電力は少なくなる。そのことから、より低いＶｄｄを使用することは有利である。メモリシステムが使用する電力がより少なければ、ホスト装置（例えば、デジタルカメラ）のバッテリー持続時間はより長くなる。Ｖｄｄを（例えば、１．８ボルトに）減らした場合、メモリセルは１ボルトの中間ビット線電圧を使用できないことがある。例えば、選択ゲートトランジスタを有するＮＡＮＤチェーン（後述の説明を参照）において、選択ゲートトランジスタをオンにするために、選択ゲートトランジスタのゲートにより低いＶｄｄ（例えば、１．８ボルト）を印加した場合、１Ｖのビット線電圧が選択トランジスタのソース側に完全に伝達されないことがある。ソース側に伝達されることが可能な電圧は、選択ゲートトランジスタのしきい値電圧に依存する。例えば、選択ゲートが１．２Ｖのしきい値電圧を有する場合、選択ゲートのソース側における電圧は、０．６Ｖの値（１．８Ｖ（ゲート電圧）−１．２Ｖ（しきい値電圧））にしか到達しない。選択ゲートトランジスタのしきい値電圧を低下させることによって、１Ｖをソース側に伝達することも可能となるが、選択ゲートがオフ（選択ゲートを０Ｖ）された場合のリークが増加する。別の解決方法は、選択ゲートのゲート電圧を、例えば２．４Ｖに増加することである。しかしながらこの方法では、プログラミング中のいわゆる自己昇圧動作の間に１．８Ｖがビット線に印加され、選択されたＮＡＮＤストリングの下のチャネル領域が高い電圧に昇圧されると、チャネル領域からビット線に向けてリークが発生する可能性がある。
【発明の開示】
【課題を解決するための手段】
【００１１】
本発明は、概して、メモリデバイスのプログラミング技術に関する。より具体的には、本発明は、より高速であって、そしてより緊密なしきい値電圧分布を実現するプログラミング処理を提供する。一部の実施形態では、改良されたプログラミング処理は、より低い中間ビット線電圧を使用し、それによって、より低いＶｄｄを使用することを可能とする。
【００１２】
本発明の一実施形態は、不揮発性記憶要素に一回又は複数回のプログラミング動作を実行する工程と、前記不揮発性記憶要素が、最終ベリファイしきい値とは異なる中間ベリファイしきい値に到達しているのか否かを判定する工程と、前記判定工程に応じて、前記不揮発性記憶要素に一回のみの追加プログラミング動作を低減したレベルで実行する工程と、前記一回のみの追加プログラミング動作を実行した後に、追加プログラミング動作による前記不揮発性記憶要素のしきい値の変化に関わらず、前記不揮発性記憶要素へのプログラミングを禁止する工程を備える。実施の一例では、上記の各プログラミング動作で一つのパルスを印加することによって、プログラムするメモリセルの制御ゲートに時間とともに増大する複数のパルスを印加するプログラミング処理を行うことができる。
他の実施形態では、プログラミング動作は、パルスの印加以外であってもよく、特定のメモリ技術に適した動作であってもよい。例えば、（固定された増分サイズを使用して、又は使用せずに）増加する信号、あるいは増加しない信号を用いるものでもよい。パルス以外のプログラム信号が使用されてもよい。
【００１３】
本発明の別の実施形態は、不揮発性記憶要素にプログラミング動作を実行する工程と、前記不揮発性記憶要素が、１つ又は複数の中間ベリファイしきい値の組のなかのいずれの中間ベリファイしきい値電圧に到達しているのかを判定する工程と、前記判定工程に応じて、前記不揮発性記憶要素に一回の追加プログラミング動作を実行する工程と、前記一回の追加プログラミング動作を実行した後に、前記不揮発性記憶要素へのプログラミングを禁止する工程を備えている。ここで、前記プログラミング動作では、所定の増分サイズで増大していくプログラム電圧を印加する。前記一回の追加プログラミング動作では、前記不揮発性記憶要素のしきい値電圧を、前記増分サイズの一部に相当する部分量であって、到達したと判定した中間ベリファイしきい値に依存する部分量だけ変化させる。
【００１４】
一部の実施形態では、一つを超えて（例えば、２つ、３つ、又はそれよりも多く）の中間しきい値が存在していてもよい。
【００１５】
実施の一例は、不揮発性記憶要素群のアレイと、不揮発性記憶要素群と通信する制御回路を備える。制御回路は、前記不揮発性記憶要素群に一回又は複数回のプログラミング動作を実行する処理と、前記不揮発性記憶要素群のなかで、中間ベリファイしきい値に到達しているとともに最終ベリファイしきい値に到達していないものを特定する処理と、前記中間ベリファイしきい値に到達しているとともに前記最終ベリファイしきい値に到達していない前記不揮発性記憶要素に、一回の追加プログラミング動作を低減したレベルで実行する処理と、前記一回の追加プログラミング動作の後に、前記中間ベリファイしきい値に到達している前記不揮発性記憶要素へのプログラミングを禁止する処理と、前記中間ベリファイしきい値に到達していない不揮発性記憶要素へのプログラミングを継続する処理を実行する。
【００１６】
本発明の別の実施形態は、不揮発性記憶要素群のアレイを作成する工程と、プログラミング処理で用いる最終ベリファイしきい値を設定する工程と、プログラミング処理で用いる中間ベリファイしきい値を設定する工程を備える。中間ベリファイしきい値は、その中間ベリファイしきい値に到達した前記１つ又は複数の不揮発性記憶要素の組が、一回のプログラミング動作によって前記最終ベリファイしきい値に実質的に到達するように設定する。
【００１７】
本発明の上記およびその他の目的と利点は、本発明の好ましい実施形態を図面と合わせて開示する下記の説明によってより明確になる。
【発明を実施するための最良の形態】
【００１８】
本発明の実施に適したフラッシュメモリシステムの一例では、ＮＡＮＤ構造を使用する。ＮＡＮＤ構造では、２つの選択ゲートの間に複数のトランジスタが直列に配置されている。直列のトランジスタと選択ゲートは、ＮＡＮＤストリングと呼ばれる。図４は、１つのＮＡＮＤストリングを示す上面図である。図５は、その等価回路である。図４および図５に示すＮＡＮＤストリングは、第１の選択ゲート１２０と第２の選択ゲート１２２との間に挟まれている直列の４つのトランジスタ１００、１０２、１０４、１０６を備えている。選択ゲート１２０は、ＮＡＮＤストリングをビット線１２６に接続する。選択ゲート１２２は、ＮＡＮＤストリングをソース線１２８に接続する。選択ゲート１２０は、制御ゲート１２０ＣＧに適切な電圧を印加することによって制御される。選択ゲート１２２は、制御ゲート１２２ＣＧに適切な電圧を印加することによって制御される。トランジスタ１００、１０２、１０４、１０６のそれぞれは、制御ゲートと浮遊ゲートを有する。トランジスタ１００は、制御ゲート１００ＣＧと浮遊ゲート１００ＦＧを有する。トランジスタ１０２は、制御ゲート１０２ＣＧと浮遊ゲート１０２ＦＧとを有する。トランジスタ１０４は、制御ゲート１０４ＣＧと浮遊ゲート１０４ＦＧを有する。トランジスタ１０６は、制御ゲート１０６ＣＧと浮遊ゲート１０６ＦＧを有する。制御ゲート１００ＣＧは、ワード線ＷＬ３に接続されている。制御ゲート１０２ＣＧは、ワード線ＷＬ２に接続されている。制御ゲート１０４ＣＧは、ワード線ＷＬ１に接続されている。制御ゲート１０６ＣＧは、ワード線ＷＬ０に接続されている。一実施形態では、トランジスタ１００、１０２、１０４、１０６のそれぞれがメモリセルとなる。他の実施形態では、メモリセルが複数のトランジスタを含んでいてもよく、図４および図５に示した構成と異なっていてもよい。
【００１９】
図６は、上記のＮＡＮＤストリングの断面図を示す。図６に示すように、ＮＡＮＤストリングのトランジスタはｐ−ウェル領域１４０に形成される。各トランジスタは、制御ゲート（１００ＣＧ、１０２ＣＧ、１０４ＣＧ、および１０６ＣＧ）と浮遊ゲート（１００ＦＧ、１０２ＦＧ、１０４ＦＧ、および１０６ＦＧ）からなるスタックゲート構造を含む。浮遊ゲートは、ｐ−ウェルの表面上の酸化膜上に形成される。制御ゲートは、浮遊ゲートの上に位置している。制御ゲートと浮遊ゲートは、ポリシリコン間誘電体層によって分離されている。図６は、トランジスタ１２０および１２２について、制御ゲートと浮遊ゲートを示しているように見えることに留意されたい。しかし、トランジスタ１２０および１２２では、制御ゲートと浮遊ゲートは互いに接続されている。他の実施形態として、従来浮遊ゲートと考えられていたゲートを接続し、その上のゲートを接続しなくてもよい。メモリセル（１００、１０２、１０４、１０６）の制御ゲートは、ワード線を形成する。Ｎ＋拡散層１３０、１３２、１３４、１３６、１３８は隣接するセル間で共有されており、それによりセルは相互に直列に接続されてＮＡＮＤストリングを形成する。これらのＮ＋拡散層は、各セルのソースおよびドレインを形成する。例えば、Ｎ＋拡散層１３０は、トランジスタ１２２のドレイン、およびトランジスタ１０６のソースとして働く。Ｎ＋拡散層１３２は、トランジスタ１０６のドレイン、およびトランジスタ１０４のソースとして働く。Ｎ＋拡散層１３４は、トランジスタ１０４のドレイン、およびトランジスタ１０２のソースとして働く。Ｎ＋拡散層１３６は、トランジスタ１０２のドレイン、およびトランジスタ１００のソースとして働く。Ｎ＋拡散層１３８は、トランジスタ１００のドレイン、およびトランジスタ１２０のソースとして働く。Ｎ＋拡散層１２６は、ＮＡＮＤストリングのビット線につながっており、Ｎ＋拡散層１２８は、複数のＮＡＮＤストリングの共通ソース線につながっている。
【００２０】
図４〜図６では、ＮＡＮＤストリング内に４つのメモリセルを示しているが、４つのトランジスタの使用する構成は、一例であることに留意されたい。ＮＡＮＤストリングは、４つ未満のメモリセルを有していてもよく、又は、４つを超えるメモリセルを有していてもよい。例えば、一部のＮＡＮＤストリングは、８つのメモリセル、１６のメモリセル、３２のメモリセルなどを含むことができる。本明細書における説明は、ＮＡＮＤストリング内のメモリセルがいかなる数でも有効である。
【００２１】
各メモリセルは、アナログ又はデジタル形式で表されたデータを記憶することが可能である。１ビットのデジタルデータを記憶する場合、メモリセルの可能なしきい値電圧の範囲は、論理データ「１」および「０」が割り当てられる２つの範囲に分割される。ＮＡＮＤ型フラッシュメモリの一例では、メモリセルの消去された後のしきい値電圧は負となり、論理「１」と定義される。プログラム後のしきい値電圧は正となり、論理「０」と定義される。しきい値電圧が負の状態で読み出しが試みられた場合、メモリセルはオンになり、論理１が記憶されていることを示す。しきい値電圧が正の状態で読み出し動作が試みられた場合、メモリセルはオンにならず、これは論理「０」が記憶されていることを示す。また、メモリセルは、複数のレベルの情報を記憶することも可能であり、それにより例えば複数ビットのデジタルデータを記憶することも可能である。複数のレベルのデータを記憶する場合、可能なしきい値電圧の範囲は、記憶するレベルの数に分割される。例えば、４つのレベルの情報が記憶される場合、４つのしきい値電圧範囲が存在し、それぞれにデータ値「１１」、「１０」、「０１」、「００」が割り当てられる。ＮＡＮＤ型メモリの一例では、消去動作の後のしきい値電圧は負となり、「１１」と定義される。正のしきい値電圧は、「１０」、「０１」、「００」の状態のために使用される。
【００２２】
ＮＡＮＤ型フラッシュメモリおよびそれらの動作に関連する例は、次の米国特許／特許出願（それらのすべては、それらの全体が参照により本明細書に援用されるものとする）で提供されている。米国特許第５，５７０，３１５号明細書、米国特許第５，７７４，３９７号明細書、米国特許第６，０４６，９３５号明細書、米国特許第５，３８６，４２２号明細書、米国特許第６，４５６，５２８号明細書、および米国特許出願第０９／８９３，２７７号明細書（公開番号ＵＳ２００３／０００２３４８）。自己昇圧技術を含む、ＮＡＮＤフラッシュメモリのプログラミングに関する情報は、２００３年３月５日出願の「Ｓｅｌｆ  Ｂｏｏｓｔｉｎｇ  Ｔｅｃｈｎｉｑｕｅ」と題した米国特許出願第１０／３７９，６０８号明細書、および２００３年７月２９日出願の「Ｄｅｔｅｃｔｉｎｇ  Ｏｖｅｒ  Ｐｒｏｇｒａｍｍｅｄ  Ｍｅｍｏｒｙ」と題した米国特許出願第１０／６２９，０６８号明細書（両方の出願は、それらの全体が参照により本明細書に援用されるものとする）に記載されている。他のタイプのフラッシュメモリデバイスも、本発明とともに使用されてもよい。例えば、次の特許（それらの全体が参照により本明細書に援用されるものとする）にはＮＯＲ型のフラッシュメモリが記載されている。米国特許第５，０９５，３４４号明細書、米国特許第５，１７２，３３８号明細書、米国特許第５，８９０，１９２号明細書、および米国特許第６，１５１，２４８号明細書。別のフラッシュメモリタイプの例は、米国特許第６，１５１，２４８号明細書（その全体が参照により本明細書に援用されるものとする）に記載されている。
【００２３】
図７は、本発明を実施したフラッシュメモリシステムの一実施形態のブロック図である。メモリセルアレイ３０２は、列制御回路３０４と、行制御回路３０６と、ｃ−ソース制御回路３１０と、ｐ−ウェル制御回路３０８によって制御される。列制御回路３０４は、メモリセル内に記憶されたデータを読み出すために、プログラム動作中のメモリセルの状態を判定するために、およびビット線の電位レベルを制御してプログラミングを促進又はプログラミングを抑止するために、メモリセルアレイ３０２のビット線に接続されている。行制御回路３０６は、ワード線のうちのいずれかを選択するために、読み出し電圧を印加するために、プログラム電圧を印加するために、および消去電圧を印加するために、ワード線に接続されている。Ｃ−ソース制御回路３１０は、メモリセルに接続された共通ソース線（図８に「Ｃ−ソース」として示す）を制御する。Ｐ−ウェル制御回路３０８は、ｐ−ウェル電圧を制御する。
【００２４】
メモリセル内に記憶されたデータは、列制御回路３０４によって読み出され、データ入力／出力バッファ３１２を経由して、外部Ｉ／Ｏ線に出力される。メモリセル内に記憶されるプログラムデータは、外部Ｉ／Ｏ線を経由してデータ入力／出力バッファ３１２に入力され、列制御回路３０４に転送される。外部Ｉ／Ｏ線は、コントローラ３１８に接続される。
【００２５】
フラッシュメモリデバイスを制御するためのコマンドデータは、コントローラ３１８に入力される。コマンドデータは、どのような動作が要求されているのかをフラッシュメモリに通知する。入力コマンドは、列制御回路３０４と、行制御回路３０６と、ｃ−ソース制御３１０と、ｐ−ウェル制御回路３０８と、データ入力／出力バッファ３１２とを制御する状態マシン３１６に転送される。状態マシン３１６は、さらに、レディ（ＲＥＡＤＹ）／ビジー（ＢＵＳＹ）や、パス（ＰＡＳＳ）／フェイル（ＦＡＩＬ）などの、フラッシュメモリのステータスデータを出力してもよい。
【００２６】
コントローラ３１８は、パーソナルコンピュータ、デジタルカメラ、パーソナルデジタルアシスタントなどのホストシステムに接続されている、又は、接続可能である。コントローラ３１８は、ホストからコマンドを受信するために、ホストからデータを受信するために、ホストにデータを提供するために、およびホストにステータス情報を提供するために、ホストと通信を行う。コントローラ３１８は、ホストからのコマンドを、状態マシン３１６と通信するコマンド回路３１４が解読して実行可能なコマンド信号に変換する。コントローラ３１８は、通常、メモリアレイに書き込まれる、又はメモリアレイから読み出されるユーザデータのためのバッファメモリを有している。
【００２７】
一例のメモリシステムは、コントローラ３１８を含む１つの集積回路と、１つ又は複数の集積回路チップ（それぞれがメモリアレイと、関連する制御、入力／出力、および状態マシン回路とを含む）を備える。メモリアレイとシステムのコントローラ回路は、１つ又は複数の集積回路チップ上に一緒に統合される傾向にある。メモリシステムは、ホストシステムの一部として組み込まれていてもよく、又は、ホストシステムに着脱可能に挿入されるメモリカード（又はその他のパッケージ）内に含まれていてもよい。そのような着脱可能なカードは、メモリシステム全体（例えば、コントローラを含む）を含んでいてもよく、又は、メモリアレイおよび関連する周辺回路のみを含んでいてもよい（コントローラはホスト内に組み込まれる）。このように、コントローラは、ホスト内に組み込まれることも、又は着脱可能なメモリシステム内に含まれることも可能である。
【００２８】
本発明を実施する際には、図７の構成要素のいくつかを一体化してもよい。様々な設計変更が可能であり、メモリセルアレイ３０２以外については、図７の構成要素のすべて又はいくつかを、一つ又は複数の制御回路とみなすことができる。
【００２９】
図８を参照して、メモリセルアレイ３０２の構造の一例を説明する。一例として、１０２４個のブロックに分割されたＮＡＮＤフラッシュＥＥＰＲＯＭについて説明する。各ブロックに記憶されたデータは、同時に消去される。一実施形態では、ブロックが、同時に消去されるセル群の最小単位となる。本実施例では、各ブロック内に、偶数列と奇数列とに分けられた８５１２の列がある。ビット線も、偶数ビット線（ＢＬｅ）と奇数ビット線（ＢＬｏ）とに区分されている。図８は、直列に接続されてＮＡＮＤストリングを形成する４つのメモリセルを示す。各ＮＡＮＤストリング内に４つのセルが含まれるように示されているが、４つよりも多い、又は４つよりも少ないメモリセルが使用されてもよい。ＮＡＮＤストリングの一方のターミナルは、第１の選択トランジスタＳＧＤを介して、対応するビット線に接続されている。他方の１つのターミナルは、第２の選択トランジスタＳＧＳを介して、ｃ−ソースに接続される。
【００３０】
読み出しおよびプログラミング動作の間は、４２５６のメモリセルが同時に選択される。選択されるメモリセルは、同じワード線と、同じ種類のビット線（例えば、偶数ビット線又は奇数ビット線）とを有する。したがって、５３２バイトのデータが同時に読み出し又はプログラムされることが可能である。同時に読み出し又はプログラムされるこれらの５３２バイトのデータは、一つの論理ページを形成する。したがって、１つのブロックは、少なくとも８つの論理ページを記憶することが可能である（４本のワード線、それぞれが奇数および偶数ページを有する）。各メモリセルが２ビットのデータを記憶する場合（例えば、マルチレベルセル）、１つのブロックは１６の論理ページを記憶する。他のサイズのブロックおよびページも、本発明とともに使用されてもよい。さらに、図７および図８に示す構造以外の構造を、本発明を実施するために使用することもできる。
【００３１】
メモリセルの消去は、ｐ−ウェルを消去電圧（例えば、２０ボルト）まで引き上げるとともに、選択されたブロックのワード線を接地することによって行われる。ソースおよびビット線はフローティングとする。消去は、メモリアレイ全体、独立したブロック、又は別の単位のセルに対して実行することができる。浮遊ゲートから電子がｐ−ウェル領域に移動し、しきい値電圧は負になる。
【００３２】
読み出しおよびベリファイ動作では、トランジスタをパスゲートとして動作させるために、選択ゲート（ＳＧＤおよびＳＧＳ）と、選択されないワード線（例えば、ＷＬ０、ＷＬ１、およびＷＬ３）が、読み出しパス電圧（例えば、４．５ボルト）まで引き上げられる。選択されるワード線（例えば、ＷＬ２）は、各読み出しおよびベリファイ動作について指定されたレベルの電圧に接続され、関連するメモリセルのしきい値電圧が指定されたレベルの電圧に到達しているのか否かが判定される。例えば、２レベル型のメモリセルの読み出し動作では、選択されるワード線ＷＬ２を接地してもよく、それによってしきい値電圧が０Ｖよりも高いのか否かを検出することができる。２レベル型のメモリセルのベリファイ動作では、選択されるワード線ＷＬ２を例えば０．８Ｖに接続し、それによってしきい値電圧が少なくとも０．８Ｖに到達しているのか否かをベリファイすることができる。ソースおよびｐ−ウェルは０ボルトである。選択されるビット線（ＢＬｅ）は、例えば０．７Ｖのレベルに、プリチャージされる。しきい値電圧が、ワード線上の読み出し又はベリファイレベルよりも高い場合、関連するビット線（ＢＬｅ）の電位レベルは、非導電性のメモリセルのため、ハイレベルを維持する。他方、しきい値電圧が、読み出し又はベリファイレベルよりも低い場合、関連するビット線（ＢＬｅ）の電位レベルは、導電性のメモリセル（Ｍ）によって、例えば０．５Ｖ未満のローレベルに減少する。メモリセルの状態は、それによって、ビット線に接続されたセンス増幅器により検出される。
【００３３】
上記の消去、読み出し、およびベリファイ動作は、当業界で知られた技術に従って実行される。したがって、説明した詳細の多くについては、当業者によって変更されることが可能である。当業界で知られた他の読み出しおよびベリファイ技術を使用することもできる。
【００３４】
図９は、図７に示した列制御回路３０４の一部の概略ブロック図である。列制御回路３０４内では、偶数番号のＢＬｅと奇数番号のビット線ＢＬｏとを含む２本のビット線のそれぞれに対して、データ記憶回路４４０が配置される。列制御回路３０４内には、メモリセル内にデータを書き込むために、およびメモリセルからデータを読み出すために、データ記憶回路４４０に対するセンス増幅器も配置される。
【００３５】
ｎ−チャネルＭＯＳトランジスタ４４２が、列選択のために、データ記憶回路４４０と偶数番号のビット線ＢＬｅとの間に接続されている。もう１つのｎ−チャネルＭＯＳトランジスタ４４４が、列選択のために、データ記憶回路４４０と奇数番号のビット線ＢＬｏとの間に接続されている。偶数番号のビット線ＢＬｅ又は奇数番号のビット線ＢＬｏのいずれかが、データの書き込み又はデータの読み出しの動作を制御するために選択される。より具体的には、信号ｅｖｅｎＢＬが論理レベル「１」であり、信号ｏｄｄＢＬが論理レベル「０」である場合は、ＭＯＳトランジスタ４４２が導通して偶数番号のビット線ＢＬｅが選択され、偶数番号のビット線ＢＬｅがデータ記憶回路４４０に接続される。他方、信号ｅｖｅｎＢＬが論理レベル「０」であり信号ｏｄｄＢＬが論理レベル「１」である場合は、トランジスタ４４４が導通して奇数番号のビット線ＢＬｏが選択され、奇数番号のビット線ＢＬｏがデータ記憶回路４４０に接続される。ここで、信号ｅｖｅｎＢＬは、偶数番号のビット線によって接続されている列選択用のすべてのｎ−チャネルＭＯＳトランジスタに印加される。一方、信号ｏｄｄＢＬは、奇数番号のビット線に接続されている列選択用のすべてのｎ−チャネルＭＯＳトランジスタに印加される。
【００３６】
各データ記憶回路４４０は、３つのバイナリデータ記憶部ＤＳ１、ＤＳ２、ＤＳ３を含む。記憶部ＤＳ１は、内部データ入力／出力線を経由してデータ入力／出力３１２に接続されており、書き込まれるべき外部入力データ、又は外部に出力されるべき読み出しデータを記憶する。データ記憶部ＤＳ２は、書き込み動作後のメモリセルのしきい値を確認するために、書き込みベリファイ動作の検出結果を記憶する。データ記憶部ＤＳ３は、メモリセルのデータを、その書き込み時および／又は読み出し時に、一時的に記憶する。他の実施形態では、データ記憶部が、他の機能を有していてもよい。様々な実施形態では、ＤＳ１、ＤＳ２、ＤＳ３が、メモリユニットや、１つ又は複数のレジスタや、あるいは情報を記憶可能な他の任意のデバイスであってもよい。一実施形態では、ＤＳ１、ＤＳ２、ＤＳ３を各１ビットとすることができる。あるいは、ＤＳ１、ＤＳ２、ＤＳ３のうちの１つ又は複数が、複数のビットを記憶できるものであってもよい。図９に示した回路以外の回路が、ビット線を制御するために使用されてもよい。
【００３７】
図９は、偶数／奇数ビット線構成を示していることに留意されたい。しかし、本発明は、例えば各ビット線が独自のセンス増幅器および／又はデータ記憶を有する構成など、多くの異なるビット線構成とともに実施することができる。本発明の実施に適した一部の構成では、すべてのビット線が、奇数および偶数のパスではなく、１つのパスでプログラムされる。例えば、２００２年９月２４日出願の「Ｈｉｇｈｌｙ  Ｃｏｍｐａｃｔ  Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ  ａｎｄ  Ｍｅｔｈｏｄ  Ｔｈｅｒｅｏｆ」と題した米国特許出願第１０／２５４，４８３号明細書（その全体が参照により本明細書に援用されるものとする）を参照されたい。
【００３８】
図１０は、２ビットのデータ（例えば、４つのデータ状態）を記憶するメモリセルのしきい値電圧分布を示す。この例において、分布４６０は、負のしきい値電圧レベルを示し、消去状態にある（例えば、「１１」を記憶している）セルのしきい値電圧の分布を表す。分布４６２は、「１０」を記憶しているセルのしきい値電圧の分布を表す。分布４６４は、「００」を記憶しているメモリセルのしきい値電圧の分布を表す。分布４６６は、「０１」を記憶しているセルのしきい値電圧の分布を表す。他の実施形態では、各分布が、上記と異なるデータ状態に対応していてもよい。さらに、本発明は、２以上のビットを記憶するメモリセルを対象とすることもできる。
【００３９】
一実施形態では、消去状態にあるメモリセル（分布４６０）を、任意のプログラム状態（分布４６２、４６４、又は４６６）にプログラムすることが可能である。別の実施形態では、消去状態にあるメモリセルを、２ステップの方法に従ってプログラムすることが可能である。この２ステップの方法では、各データ状態で記憶されるビットのそれぞれが、異なる論理ページに対応する。即ち、メモリセル内に記憶される各ビットは、下位論理ページおよび上位論理ページに属する、異なる論理ページアドレスを有する。例えば、状態「１０」において、「０」は下位論理ページに対して記憶され、「１」は上位論理ページに対して記憶される。第１のプログラミングステップでは、下位論理ページ内のプログラムされるべきビットに従って、セルのしきい値電圧レベルを設定する。例えばそのビットが論理「１」である場合、しきい値電圧は、以前に消去された結果として適切な状態にあるため、変更されない。しかし、そのビットが論理「０」にプログラムされるべきである場合は、そのセルのしきい値電圧レベルは、しきい値電圧分布４６２内となるように引き上げられる。
【００４０】
第２のプログラミングステップでは、上位論理ページ内にプログラムされるビットに従って、セルのしきい値電圧レベルが設定される。上位論理ページビットが論理「１」となるべき場合、セルは、しきい値電圧分布４６０又は４６２に対応する状態（両方とも、上位ページビット「１」を保持する）にあるため、さらなるプログラミングは発生しない。上位論理ビットが論理「０」となるべき場合であって、第１のステップでしきい値電圧分布４６０に対応する消去状態にセルが留まっている場合は、プログラミングプロセスの第２ステップにおいて、セルのしきい値電圧がしきい値分布４６６内となるように引き上げられる。上位論理ページビットが論理「０」となるべき場合であって、第１のプログラミングステップによってしきい値分布４６２に対応する状態にセルがプログラムされている場合は、プログラミングプロセスの第２ステップにおいて、セルのしきい値電圧が、しきい値電圧分布４６４内になるように引き上げられる。この２ステップの方法は、マルチステートメモリをプログラミングする方法の一例にすぎない。１ステップのプロセス又は３ステップ以上のプロセスを含む、他の多くの方法が使用されてもよい。図８は４つの状態（２ビット）を示しているが、本発明は、８状態、１６状態、３２状態、およびその他を含むマルチステート構造を含む、他のマルチステート構造とともに使用されてもよい。
【００４１】
図１１は、本発明の一実施形態によるプログラミングプロセスを説明する。図１１は、しきい値電圧（Ｖｔｈ）と時間の関係、およびビット線電圧（Ｖｂｌ）と時間の関係を示すグラフである。水平アクセスは、ｔ１、ｔ２、ｔ３、ｔ４、ｔ５を示す。これらの時点のそれぞれは、プログラムパルスとプログラムパルスとの間に実行されるベリファイ手順に対応している。図１１で説明するプロセスは、メモリセルを複数の状態のいずれかにプログラムするために使用されてもよく、又は、バイナリメモリセルをプログラムするために使用されてもよい。
【００４２】
図１のプログラムパルスに類似した複数のプログラミングパルスをメモリセルに印加するにつれて、図１１の時間ｔ１とｔ２の間に示すように、メモリセルのしきい値電圧は増大する。一部の実施形態では、プログラミングの前であって消去動作に続くときの初期しきい値電圧が、負のしきい値電圧となる。メモリセルのしきい値電圧が、下位中間しきい値電圧ベリファイ点Ｖｖｅｒ２に到達すると、ビット線電圧が０ボルトから中間電圧Ｖ１に引き上げられる。図１１では、時点ｔ２の後であって時点ｔ３の前に、しきい値電圧がＶｖｅｒ２よりも大きくなることに留意されたい。その時点ｔ３において、メモリセルのしきい値電圧が、Ｖｖｅｒ２よりも大きくなっていると判定される。しきい値電圧がＶｖｅｒ２よりも大きいと判定されると、ビット線電圧は中間電圧Ｖ１に引き上げられる。一実施形態では、中間電圧Ｖ１を、従来技術で使用されている中間電圧よりも低くすることができる。例えば、一実施形態では、中間電圧Ｖ１を０．４ボルト又は０．５ボルトとすることができる。本発明では、メモリセルのビット線を、正確に１プログラミングパルスにわたって中間電圧Ｖ１にする。１プログラミングパルスに続いて、ビット線は禁止電圧（例えば、Ｖｄｄ）に引き上げられる。従って、しきい値電圧がＶｖｅｒ２に到達すると、プログラム処理は１プログラミングパルス期間にわたって減速され、その後、禁止される。最後のパルス期間においてプログラミングプロセスを減速し、その最後のパルス期間におけるしきい値電圧の変化量を減らすことによって、このプログラミング処理はより緊密なしきい値電圧分布を実現する。その上、より大きなステップサイズを使用することが可能になる。例えば、多くの従来技術のプロセスでは、Ｖｐｇｍのステップサイズに０．２ボルトを使用している。本発明では、０．４ボルトのステップサイズを企図している。
【００４３】
一部の実施形態では、中間電圧Ｖ１を、次のプログラミングパルス期間におけるメモリセルのしきい値電圧の変化量が、プログラム電圧のステップサイズの半分に等しくなるように選択することができる。即ち、プログラムステップが０．４ボルトである場合、中間電圧Ｖ１を、メモリセルのしきい値電圧の前記変化量が０．２ボルトに等しくなるように選択する。Ｖｖｅｒ１およびＶｖｅｒ２の値は、メモリセルのしきい値電圧がＶｖｅｒ２に到達した後に一つの追加プログラミングパルスによってＶｖｅｒ１（目標値）又はそれ以上となるように、適宜選択することができる。従って、一部の実施形態では、Ｖｖｅｒ２を、プログラム電圧のステップサイズの半分（例えば、０．２ボルト）だけ、Ｖｖｅｒ１から相違させる必要がある。上記した方法は、図２の処理と比較して、必要とされるプログラミングパルスがより少なく、結果として、プログラミング時間がより短くなるという利点を有する。
【００４４】
図１２は、図１１に関連して説明した上記の思想を使用したメモリをプログラミングする普遍的な方法を説明するフローチャートである。
ステップ５００では、システムは、メモリをプログラムするためのコマンドおよびデータを受信する。
ステップ５０２では、初期化が実行される。例えば、一部の実施形態では、プログラミングの前にメモリセルの消去が行われる。さらに、消去されたすべてのメモリセルが狭い消去しきい値電圧分布内のしきい値電圧を有するように、消去されたメモリセルのいくつかにソフトプログラミング処理を実行する。さらに、ステータスレジスタが初期化される。
ステップ５０４では、プログラミングパルスが印加される。例えば、適切なＮＡＮＤチェーン内のトランジスタの制御ゲートでは、それらの制御ゲートにプログラミングパルスが印加させる。
ステップ５０６では、ベリファイ動作が実行される。このベリファイ動作では、メモリセルのしきい値電圧が、Ｖｖｅｒ２（図１１を参照）に到達しているのか否かが判定される。
ステップ５０８では、ベリファイ動作が実行される。このベリファイ動作では、メモリセルのしきい値電圧が、Ｖｖｅｒ１（図１１を参照）に到達しているのか否かが判定される。バイナリメモリセルでは、１つのＶｖｅｒ１および１つのＶｖｅｒ２のみが存在する。マルチステートメモリセルでは、各状態に対してＶｖｅｒ１およびＶｖｅｒ２が存在する。即ち、一部の実施形態では、各状態に対してベリファイ動作の組が存在する。従って、８状態型のメモリセルでは、７組のベリファイ動作が存在し、それぞれのベリファイ動作の組は、Ｖｖｅｒ２のためのベリファイ動作と、Ｖｖｅｒ１のためのベリファイ動作とを有する。
【００４５】
ステップ５０６のベリファイ動作が成功し、ステップ５０８のベリファイプロセスが成功しなかった場合（ステップ５１０を参照）、メモリセルのしきい値電圧は、Ｖｖｅｒ２よりも大きく、Ｖｖｅｒ１よりも小さいと見なされる。この場合、ステップ５２０で、さらに一つのプログラミングパルスがメモリセルに印加される。ただし、この一つのプログラミングパルスは、低減したレベルで印加される。例えば、一実施形態では、メモリのビット線を、上述したように中間電圧Ｖ１に引き上げる。別の実施形態では、ビット線電圧を引き上げるのではなく、そのメモリセルに印加するプログラミングパルスの期間を短縮してもよい。その一実施形態は、プログラミングパルスの開始時ではビット線にＶｄｄを印加する。その後、プログラミングパルスの期間にいくらかのプログラミングを許可するために、ビット線電圧をＶｄｄから０ボルトに減少する。通常、プログラミングパルスは８〜１０マイクロ秒である。この場合、プログラミングパルスを５マイクロ秒に減少してもよい。ここで、ステップ５２０では、プログラムするメモリセルにパルスを一つだけ印加することに留意されたい。その１つのパルスが印加された後は、ステップ５２２に進み、そのメモリセルはさらなるプログラミングからロックアウトされる。
【００４６】
ステップ５０８のベリファイ動作が成功した場合（ステップ５１０を参照）、メモリセルのしきい値電圧はＶｖｅｒ１よりも大きいと判断できる。この場合、ステップ５１２に進み、メモリセルはさらなるプログラミングからロックアウトされる。
【００４７】
ステップ５０６のベリファイプロセスが成功せず、ステップ５０８のベリファイプロセスも成功しなかった場合（ステップ５１０を参照）、メモリセルのしきい値電圧は、Ｖｖｅｒ２よりも小さいと判断できる。この場合、次のプログラムパルスを印加するために、プロセスはステップ５０４にループバックされる。
【００４８】
上記したように、マルチステートメモリセルは、様々な形態を有することができる。一実施形態では、マルチステートメモリセルを、消去状態から任意のプログラム状態にプログラムすることが可能である。例えば図１０において、状態４６０にあるメモリセルを、状態４６２、４６４、４６６のいずれにも直接プログラムすることが可能である。別の実施形態では、複数の論理ページを使用して、メモリセルを上述した２ステップのプログラミング処理に従ってプログラムすることができる。図１３は、上記した複数論理ページメモリセルの下位論理ページをプログラミングする処理の一例を説明するフローチャートである。より多くのビット、より多くのページ、異なる状態割り当てなどを有する、他の実施形態も、本発明の範囲内である。しきい値状態割り当ておよびプログラム方法の他の変形に対応するために、図１３のプロセスへのさまざまな変更が行われてもよい。図１３の処理は、バイナリメモリセルに使用することもできる。
【００４９】
図１３のステップ５５０では、ホストからデータ入力コマンドを受信し、そのデータ入力コマンドを状態マシン内に入力することによって、動作が開始される。
ステップ５５２では、書き込み動作に使用するページを選択するために、アドレスデータがホストから受信され、状態マシン内に記憶される。
ステップ５５４では、書き込まれるデータが受信され、ＤＳ１内に記憶される。
ステップ５５６では、書き込みコマンドがホストから受信され、その書き込みコマンドが状態マシンに入力される。一実施形態では、書き込みコマンドが状態マシン内に記憶された後に、後続のステップを状態マシンによって自動的に開始させてもよい。
ステップ５５８では、ＤＳ１のデータがＤＳ２にコピーされる。
ステップ５６０では、プログラム電圧Ｖｐｇｍの初期値が設定される（例えば、１２ボルト。ただし、他の値が使用されてもよい）。さらに、プログラムカウンタ（ＰＣ）が０に初期化される。
【００５０】
一実施形態では、消去状態を論理データ「１」に対応させ、プログラム状態を論理データ「０」に対応させることができる。従って、データをＤＳ１およびＤＳ２内にロードする際に、それらのレジスタ内に「０」をロードする場合、メモリセルはプログラムされることになる。論理データ「１」がＤＳ１およびＤＳ２内にロードされる場合、メモリセルはすでに消去状態にあるため、メモリセルをプログラムする必要はない。２ステップのプログラミング処理の中で２つの論理ページを使用するマルチステートメモリセルの実施形態では、下位状態が状態４６０から状態４６２に変更されるべきである場合、「０」がＤＳ１およびＤＳ２内にロードされる。メモリセルが状態４６０に留まるべきである場合、「１」がＤＳ１およびＤＳ２内にロードされる。
【００５１】
ステップ５７０では、ＤＳ１が「０」に等しく、かつ、ＤＳ２が「０」に等しいかどうかが判定される。そうである場合、ビット線が０ボルトに設定される。これは、メモリセルが次の状態にプログラムされるべきであり、かつ、しきい値電圧がＶｖｅｒ２よりも小さい場合である。
【００５２】
ＤＳ１が「０」に等しく、かつ、ＤＳ２が「１」に等しい場合、ビット線は中間ビット線電圧Ｖ１に設定される。これは、しきい値電圧がＶｖｅｒ２よりも大きく、かつ、Ｖｖｅｒ１よりも小さい場合である。
【００５３】
ＤＳ１が「１」に等しい場合、メモリセルのしきい値電圧はＶｖｅｒ１よりも大きいと見なされる。その場合は、さらなるプログラミングを禁止するために、ビット線はＶｄｄに設定される。
【００５４】
ステップ５７２では、次のプログラムパルスが、メモリセルの制御ゲートに印加される。
ステップ５７４では、ＤＳ２が「１」に等しいのか否かが判定される。そうである場合、ＤＳ１も「１」に設定される。このステップ５７４は、ＤＳ２が「１」に設定された後に（メモリセルのしきい値電圧がＶｖｅｒ２よりも大きいが、Ｖｖｅｒ１よりも小さいことから）、メモリセルをさらに一つのプログラミングパルスによってプログラムするために実行される。
ステップ５７６では、メモリセルに、Ｖｖｅｒ２についてのベリファイ処理を実行する。このベリファイ処理に成功した場合（即ち、しきい値電圧がＶｖｅｒ２以上であることから）、ＤＳ２は「１」に設定される。ＤＳ２がすでに「１」である場合は、「１」が維持される。
ステップ５７８では、メモリセルに、Ｖｖｅｒ１についてのベリファイ処理を実行する。このベリファイ処理に成功した場合（即ち、しきい値電圧がＶｖｅｒ１に到達していることから）、ＤＳ１は「１」に設定される。ＤＳ１がすでに「１」である場合は、「１」が維持される。
ステップ５８０では、プログラム電圧がステップサイズだけ増加される。一実施形態では、ステップサイズを０．４ボルトとすることができる。従って、次のプログラミングパルスは、前のパルスよりも０．４ボルト高くなる。ステップサイズは、０．２Ｖやその他の値とすることもできる。
ステップ５８２では、プログラムカウンタが１だけ増分される。
ステップ５８４では、プログラムするすべてのメモリセルについて、それらのＤＳ１レジスタが「１」に等しくなっているのか否かが判定される。そうである場合、プログラミング処理は正常に完了している。そうでない場合は、プログラミング処理が継続される。
ステップ５８６では、プログラムカウンタが２０未満であるのか否かが判定される。そうでない場合、プログラミング処理は失敗している。プログラムカウンタが２０未満である場合、プロセスはステップ５７０にループバックされる。
【００５５】
一部の実施形態では、プログラムカウンタを必ずしも２０と比較する必要はない。２レベルの処理であれば、４又は５という低い値とすることもできる。マルチレベルの場合には、下位ページについて１２程度、上位ページについて１６程度とすることができる。これらの値は、使用するステップサイズにも依存する。一部の実施形態では、プログラムカウンタが最大値に到達したとしても、プログラミング処理が必ずしも失敗したことにはならない。プログラムカウンタが最大値に到達した後、システムがページ内のベリファイレベルに到達していないメモリセルの数をチェックする。そのセルの数が例えば１などの所定数未満である場合、その１ビットを訂正するためにエラー訂正（例えば、ＥＣＣ）を使用することが可能であり、プログラミング処理は成功したと見なすことができる。さらに、多くの場合では、ベリファイ電圧にパスしていないセルであっても、より低いゲート電圧によって実行される通常の読み出し動作に対しては、それをパスする十分な高さのしきい値電圧を有している。
【００５６】
上述のように、２つの論理ページと２ステップのプログラミング処理を使用するマルチステートメモリセルの一実施形態では、状態４６０は「１１」に相当し、状態４６２は「１０」に相当し、状態４６４は「００」に相当し、状態４６６は「０１」に相当する。本実施形態では、状態「１１」から状態「１０」にセルをプログラミングするために、図１３のプロセスが使用される。図１４に示すプロセスは、状態「１１」から状態「０１」に、又は状態「１０」から状態「００」に、メモリセルをプログラミングするためのものである。即ち、図１４は、メモリセルに上位ページデータを書き込む一実施形態のための制御アルゴリズムを説明するフローチャートである。
【００５７】
図１４のステップ６２０では、ホストからデータ入力コマンドを受信し、そのデータ入力コマンドを状態マシン内に入力すると、動作が開始される。
ステップ６２２では、ホストからアドレスデータを受信し、状態マシン内に入力される。
ステップ６２４では、書き込まれるデータを受信し、ＤＳ１内に記憶する。
ステップ６２６では、書き込みコマンドをホストから受信し、状態マシン内に入力する。それにより、状態マシンは（一部の実施形態では）後続の処理の開始を自動的にトリガする。
ステップ６２８では、プログラムデータがＤＳ１からＤＳ２にコピーされる。
ステップ６３０では、状態「１１」と「１０」との間にある読み出し比較点を使用して、状態「１０」の読み出し動作が実行され、メモリセルが状態「１１」又は「１０」のいずれにあるのかが判定される。メモリセルが状態「１０」にあると判定された場合は、そのメモリセルのＤＳ３レジスタが「１」に設定される。それ以外の場合は、ＤＳ３レジスタが「０」に設定される。
ステップ６３２では、プログラム電圧が１６Ｖ〜１８Ｖの範囲内の値（テストに基づいて決定される）に初期設定される。ただし、他の初期電圧が使用されてもよい。さらに、プログラムカウンタが０に初期設定される。
【００５８】
ステップ６４０では、ＤＳ１レジスタおよびＤＳ２レジスタが両方とも「０」に設定されているのか否かが判定される。そうである場合、プログラムされるメモリセルのしきい値電圧は、プログラムされるのに適切な状態であるＶｖｅｒ２よりも小さくなっていると見なされる。従って、ビット線は０ボルトに設定される。
【００５９】
ＤＳ１が「０」に設定され、かつ、ＤＳ２が「１」に設定されている場合、メモリセルのしきい値電圧はＶｖｅｒ２よりも大きく、Ｖｖｅｒ１よりも小さいと見なされる。従って、ビット線は中間電圧のＶ１に設定される。
【００６０】
ＤＳ１が「１」に設定されている場合は、メモリセルのしきい値電圧はＶｖｅｒ１よりも大きいと見なされる。従って、さらなるプログラミングを禁止するために、ビット線電圧はＶｄｄに設定される。
ステップ６４２では、次のプログラミングパルスが印加される。
ステップ６４４では、ＤＳ２レジスタが「１」に設定されているのか否かが判定される。そうである場合は、ＤＳ１レジスタも「１」に設定される。ステップ６４４は、メモリセルがＶｖｅｒ２に到達した後は、メモリセルのプログラムにさらに１つだけのパルスが使用されることを確実にするために行われる。
ステップ６４６では、状態「００」のＶｖｅｒ２についてベリファイ処理が実行される。ＤＳ３が「１」に等しく、このベリファイ処理にパスした場合は、ＤＳ２レジスタが「１」に設定される。
ステップ６４８では、状態「００」のＶｖｅｒ１についてベリファイ処理が実行される。ＤＳ３が「１」に設定されており、このベリファイ処理にパスした場合は、ＤＳ１レジスタが「１」に設定される。
ステップ６５０では、状態「０１」のＶｖｅｒ２についてベリファイ処理が実行される。ＤＳ３レジスタが「０」に設定されており、このベリファイ処理にパスした場合は、ＤＳ１レジスタが「１」に設定される。
ステップ６５２では、状態「０１」のＶｖｅｒ１についてベリファイ処理が実行される。ＤＳ３レジスタが「０」に設定されており、このベリファイ処理にパスした場合は、ＤＳ１レジスタが「１」に設定される。
ステップ６５４では、プログラム電圧がステップサイズだけ増加される。
【００６１】
一部の実施形態では、ステップ６５０を実行しなくてもよい。即ち、システムは、プログラミング時間を節約するために、最も高いプログラム状態（例えば状態「０１」）についてのみ、Ｖｖｅｒ１をチェックする。また一部の実施形態では、最も高いプログラム状態（例えば状態「０１」）については、より広いしきい値電圧分布が許容されてもよい。
【００６２】
ステップ６５６では、プログラムカウンタが１だけ増加される。
ステップ６５８では、プログラムされるすべてのメモリセルについて、それらのＤＳ１レジスタが「１」に設定されているのか否かが判定される。そうである場合、プログラムプロセスは正常に完了している。それ以外の場合は、ステップ６６０において、プログラムカウンタが２０未満であるのか否かが判定される。そうでない場合、プログラムプロセスは失敗している。プログラムカウンタが２０未満である場合、プロセスはステップ６４０にループバックされる。
【００６３】
上記の実施形態では、次のプログラミングパルスによるしきい値電圧の変化量がステップサイズの半分に等しくなるように、ビット線の中間電圧が設定されている。ただし、他の実施形態では、変化量がステップサイズの半分よりも多少大きくてもよいし小さくてもよい。Ｖｖｅｒ１とＶｖｅｒ２との間の差は、時間ｔｎにおいてＶｖｅｒ２レベルにパスしたばかりのセルが、ｔｎ＋１においてＶｖｅｒ１よりもわずかに上の（又は場合によっては、Ｖｖｅｒ１に近い）しきい値電圧を有するような方法で選択される。ビット線の中間電圧Ｖ１は、（特定の時点ｔｎにおける）しきい値電圧が、Ｖｖｅｒ２よりも高いがＶｖｅｒ１よりも低いセルのみに印加され、また、１プログラミングパルス期間のみにわたって印加される。その１プログラミングパルスの後は、さらなるプログラミングは禁止される。したがって、図７に示すような不揮発性記憶要素のアレイおよびメモリシステムを製造するプロセスでは、特定の状態又はすべての状態に対する最終ベリファイしきい値（例えばＶｖｅｒ１）と中間ベリファイしきい値（例えばＶｖｅｒ２）を、中間ベリファイしきい値に到達したメモリセルが１プログラミング動作（例えば、１プログラミングパルス）によって最終ベリファイしきい値に到達（又はほぼ到達）するような値に設定するとよい。いくつかのメモリセルは、Ｖｖｅｒ１のレベルに到達しない可能性がある。上記のプロセスでは、Ｖｖｅｒ１のレベルに到達しなかったメモリセルのプログラムに、追加のプログラミングパルスは使用されない。Ｖｖｅｒ１レベルに到達しない理由は、Ｖｖｅｒ１および／又はＶｖｅｒ２ステップの間の読み出しノイズによるものであるか、又は、最後のプログラミングパルスによるしきい値電圧の変化量が予定よりも小さなものであった可能性がある。このように、場合によっては、上記の技術を使用した特定のメモリセルが、Ｖｖｅｒ１よりわずかに低いしきい値電圧を有していることもありえる。
【００６４】
上記の実施形態では、最終ベリファイ点と中間ベリファイ点の２つのベリファイ点を企図している。本発明の別の実施形態では、３つのベリファイレベルを使用する。他の実施形態では、３つよりも多くのベリファイレベルが使用されてもよい。
【００６５】
図１５および図１６は、３つのベリファイレベルを使用する実施形態を示す。図１５および図１６は、しきい値電圧（Ｖｔｈ）と時間の関係、およびビット線電圧（Ｖｂｌ）と時間の関係を示すグラフである。３つのベリファイレベルを有する本実施形態では、ベリファイ動作中に目標電圧Ｖｖｅｒ１よりも高いしきい値電圧を有するメモリセルは、ビット線電圧をＶｉｎｈｉｂｉｔに引き上げることによって、完全に禁止される。Ｖｖｅｒ１とＶｖｅｒ２との間のしきい値電圧を有するメモリセルは、それに続くプログラミングステップの間、中間ビット線電圧Ｖ１を印加することによって減速され、その後は完全に禁止される（それにより、Ｖ１のビット線で１つのプログラムパルスのみが実行される）。Ｖ１およびＶｖｅｒ２の値は、ｔｎにおいてＶｖｅｒ２にパスしたセルが、ｔｎ＋１においてＶｖｅｒ１に到達するか、又はほとんど到達するような方法で設定されるべきである。ベリファイ動作中にＶｖｅｒ３とＶｖｅｒ２との間のしきい値電圧を有するメモリセルは、それに続くプログラミングステップの間、中間ビット線電圧Ｖ２を印加することによって減速され、その後は完全に禁止される（それにより、Ｖ２のビット線で１つのプログラミングパルスのみが実行される）。Ｖ２およびＶｖｅｒ３の値は、ｔｎにおいてＶｖｅｒ３レベルにパスしたばかりのセルが、ｔｎ＋１においてＶｖｅｒ１にちょうど到達するか、又はほとんど到達するような方法で設定されるべきである。本実施形態では、Ｖ２およびＶ１は、次のプログラミングパルスでのしきい値電圧シフトが、メモリセルがＶｖｅｒ２にパスしたばかりの場合は、プログラムステップの１／３に等しく、メモリステップがＶｖｅｒ３にパスしたばかりの場合は、プログラムステップの２／３に等しくなるような方法で選択される。
【００６６】
図１５は、メモリセルのしきい値電圧がｔ２とｔ３との中間でＶｖｅｒ２よりも高くなるようにプログラムされたメモリセルを示す。しきい値電圧は、また、ｔ２とｔ３との中間でＶｖｅｒ３を超えて増加する。したがって、ｔ３においてベリファイ動作が実行された場合、メモリセルは、Ｖｖｅｒ２よりも大きく、Ｖｖｅｒ１よりも小さいと判定される。そのため、ビット線電圧は、１プログラミングパルスにわたって、中間電圧Ｖ１に引き上げられる。１プログラミングパルスの後で、ビット線電圧はＶｉｎｈｉｂｉｔに引き上げられ、メモリセルはさらなるプログラミングからロックアウトされる。
【００６７】
図１６の例は、しきい値電圧がｔ２とｔ３との中間でＶｖｅｒ３を横切るメモリセルを示す。ベリファイ動作がｔ３において実行された場合、メモリセルのしきい値電圧はＶｖｅｒ３よりも大きく、Ｖｖｅｒ２よりも小さいと判定される。従って、メモリセルのビット線電圧は、１パルスにわたって、中間電圧Ｖ２に引き上げられる。１プログラミングパルスの後で、ビット線電圧はＶｉｎｈｉｂｉｔに引き上げられる。
【００６８】
ベリファイレベルがより多ければ、より多くのベリファイ動作が必要とされる。より多くのベリファイ動作が実行される場合、プログラミングプロセスに要する時間はより長くなる。
【００６９】
図３のプロセスと比較して、本発明の１つの利点は、ビット線電圧の引き上げに続く１プログラムパルスの後では、追加のプログラミングパルスは必要とされないということである。したがって、プログラミング時間はより短くなる。
【００７０】
図２の書き込みプロセスに比較して、はるかに大きなステップサイズを、同じしきい値電圧分布を維持しながら使用することができる。これは、プログラミングプロセスの最後のステップが効果的に半分のサイズにされるためである。したがって、必要とされるプログラミングパルスの数を（例えば、場合によっては、ほぼ５０％に）減らすことができる。
【００７１】
上述の本発明の詳細な説明は、例示および説明を目的として提示されたものであり、網羅的であることを意図したものではなく、また、開示された正確な形態に本発明を限定することを意図したものでもない。上記の教示内容を考慮すれば、多くの変更および変形が可能である。説明した実施形態は、本発明の原理およびその実際的な適用を最も良く説明し、それによって、当業者が本発明をさまざまな実施形態で、および企図された特定の用途に適したさまざまな変更とともに、最良に利用することを可能にするために選択された。本発明の範囲は、添付の特許請求の範囲によって定義されることを意図している。
【図面の簡単な説明】
【００７２】
【図１】プログラム電圧信号を示す図。
【図２】しきい値電圧（Ｖｔｈ）と時間との関係、およびビット線電圧（Ｖｂｌ）と時間との関係を示すグラフ。
【図３】しきい値電圧（Ｖｔｈ）と時間との関係、およびビット線電圧（Ｖｂｌ）と時間との関係を示すグラフ。
【図４】ＮＡＮＤストリングの上面図。
【図５】ＮＡＮＤストリングの等価回路図。
【図６】ＮＡＮＤストリングの断面図。
【図７】本発明のさまざまな態様を実施する不揮発性メモリシステムの一実施形態のブロック図。
【図８】メモリアレイの構成の例を示す図。
【図９】列制御回路の部分を示す図。
【図１０】マルチステートメモリセルのメモリセルしきい値分布を示す図。
【図１１】しきい値電圧（Ｖｔｈ）と時間との関係、およびビット線電圧（Ｖｂｌ）と時間との関係を示すグラフ。
【図１２】本発明の思想を実施するメモリのプログラミング方法を説明するフローチャート。
【図１３】本発明のさまざまな実施形態に従ってプログラミングするための方法を説明するフローチャート。
【図１４】本発明のさまざまな実施形態に従って論理ページをプログラミングするための方法を説明するフローチャート。
【図１５】しきい値電圧（Ｖｔｈ）と時間の関係、およびビット線電圧（Ｖｂｌ）と時間の関係を示すグラフ。
【図１６】しきい値電圧（Ｖｔｈ）と時間の関係、およびビット線電圧（Ｖｂｌ）と時間の関係を示すグラフ。
【図１】
2007519161.tif 000003
【図２】
2007519161.tif 000004
【図３】
2007519161.tif 000005
【図４】
2007519161.tif 000006
【図５】
2007519161.tif 000007
【図６】
2007519161.tif 000008
【図７】
2007519161.tif 000009
【図８】
2007519161.tif 000010
【図９】
2007519161.tif 000011
【図１０】
2007519161.tif 000012
【図１１】
2007519161.tif 000013
【図１２】
2007519161.tif 000014
【図１３】
2007519161.tif 000015
【図１４】
2007519161.tif 000016
【図１５】
2007519161.tif 000017
【図１６】
2007519161.tif 000018
【手続補正書】
【提出日】平成18年12月19日(2006.12.19)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
不揮発性メモリをプログラミングする方法であって、
不揮発性記憶要素に一回又は複数回のプログラミング動作を実行する工程と、
前記不揮発性記憶要素が、最終ベリファイしきい値とは異なる中間ベリファイしきい値に到達しているのか否かを判定する工程と、
前記判定工程に応じて、前記不揮発性記憶要素に一回のみの追加プログラミング動作を低減したレベルで実行する工程と、
前記一回のみの追加プログラミング動作を実行した後に、追加プログラミング動作による前記不揮発性記憶要素のしきい値の変化に関わらず、前記不揮発性記憶要素へのプログラミングを禁止する工程と、
を備える方法。
【請求項２】
前記一回又は複数回のプログラミング動作では、その大きさが所定のステップサイズずつ増大する複数のプログラム用パルスを印加し、
前記一回の追加プログラミング動作は、前記不揮発性記憶要素のしきい値を、前記ステップサイズの略半分だけ意図的に変化させることを特徴とする請求項１に記載の方法。
【請求項３】
前記中間ベリファイしきい値は、前記最終ベリファイしきい値よりも所定量だけ低く、
前記一回の追加プログラミング動作は、前記中間ベリファイしきい値に到達した前記不揮発性記憶要素を、前記最終ベリファイしきい値に実質的に到達させることを特徴とする請求項１に記載の方法。
【請求項４】
前記一回又は複数回のプログラミング動作は、前記不揮発性記憶要素のビット線電圧を所定のプログラム用レベルにして実行され、
前記不揮発性記憶要素へのプログラミングを禁止する工程は、前記不揮発性記憶要素の前記ビット線電圧を所定の禁止用レベルにして実行され、
前記一回の追加プログラミング動作は、前記不揮発性記憶要素の前記ビット線電圧を前記プログラム用レベルと前記禁止用レベルとの間の所定の中間レベルにして実行されるとともに、前記不揮発性記憶要素の前記ビット線電圧は、正確に一回のプログラミング動作期間にわたって前記中間レベルとされることを特徴とする請求項１に記載の方法。
【請求項５】
前記一回の追加プログラミング動作では、前記不揮発性記憶要素のビット線電圧を引き上げることによって、そのレベルを低減させることを特徴とする請求項１に記載の方法。
【請求項６】
前記一回又は複数回のプログラミング動作では、複数のプログラム用パルスを印加し、
前記一回の追加プログラミング動作では、印加するプログラム用パルスの幅を縮小することによって、そのレベルを低減させることを特徴とする請求項１に記載の方法。
【請求項７】
前記一回又は複数回のプログラミング動作では、複数のプログラム用パルスを印加し、
前記一回のみの追加プログラミング動作を実行する工程では、一つのプログラム用パルスを印加し、
前記禁止する工程は、前記一つのプログラム用パルスを印加した後で実行されることを特徴とする請求項１に記載の方法。
【請求項８】
不揮発性記憶要素群のアレイと、
前記不揮発性記憶要素群と通信を行う制御回路とを備え、前記制御回路は、
前記不揮発性記憶要素群に一回又は複数回のプログラミング動作を実行する処理と、
前記不揮発性記憶要素群のなかで、中間ベリファイしきい値に到達しているとともに最終ベリファイしきい値に到達していないものを特定する処理と、
前記中間ベリファイしきい値に到達しているとともに前記最終ベリファイしきい値に到達していない前記不揮発性記憶要素に、一回の追加プログラミング動作を低減したレベルで実行する処理と、
前記一回の追加プログラミング動作の後に、前記中間ベリファイしきい値に到達している前記不揮発性記憶要素へのプログラミングを禁止する処理と、
前記中間ベリファイしきい値に到達していない不揮発性記憶要素へのプログラミングを継続する処理を実行し、
前記制御回路は、前記一回の追加プログラミング動作の後、かつ、さらなるプログラミング動作の前に、前記中間ベリファイしきい値に到達している前記不揮発性記憶要素へのプログラミングを禁止することを特徴とする不揮発性記憶システム。
【請求項９】
前記制御回路は、コントローラを含むことを特徴とする請求項８に記載の不揮発性記憶システム。
【請求項１０】
前記制御回路は、状態マシンを含むことを特徴とする請求項８に記載の不揮発性記憶システム。
【請求項１１】
前記制御回路は、センス増幅回路の組と、コントローラと、状態マシンとを含むことを特徴とする請求項８に記載の不揮発性記憶システム。
【請求項１２】
前記一回又は複数回のプログラミング動作では、その大きさが所定のステップサイズずつ増大する複数のプログラム用パルスを印加し、
前記一回の追加プログラミング動作は、前記中間ベリファイしきい値電圧に到達しているとともに前記最終ベリファイしきい値電圧に到達していない前記不揮発性記憶要素のしきい値電圧を、前記ステップサイズの略半分だけ意図的に変化させることを特徴とする請求項８に記載の不揮発性記憶システム。
【請求項１３】
前記一回又は複数回のプログラミング動作は、前記不揮発性記憶要素のビット線電圧を所定のプログラム用レベル範囲にして実行され、
前記プログラミングを禁止する処理は、ビット線電圧を所定の禁止用レベル範囲にして実行され、
前記一回の追加プログラミング動作は、ビット線電圧を、前記プログラム用レベル範囲と前記禁止用レベル範囲との間の所定の中間レベル範囲にして実行されることを特徴とする請求項８に記載の不揮発性記憶システム。
【請求項１４】
前記一回又は複数回のプログラミング動作では、複数のプログラム用パルスを印加し、
前記一回の追加プログラミング動作では、一つのプログラム用パルスを印加することを特徴とする請求項８に記載の不揮発性記憶システム。
【国際調査報告】
2007519161.tif 000019
2007519161.tif 000020