(57)【要約】  本発明は、メモリシステムがプログラミングプロセスを中断し、追加データを含めてそれを再開する手法を提供する。より具体的には、メモリシステムがデータをプログラミング単位としてのセルのグループに同時にプログラムするとき、プログラミングは、そのグループが保持できるデータ内容全体より少ないデータ内容で始まることができる。一実施形態では、本発明は上側データページおよび下側データページの重複プログラミングを可能にし、その場合、メモリが下側論理データページをプログラムし始めると、同じ物理的ページに割り当てられた上側ページのためのデータが受け取られたならば、プログラミングは中断され、そして上側ページおよび下側ページの両方の同時プログラミングで再開される。相補的な実施形態では、１つのページがデータの複数のセクタを含むとき、物理的ページのプログラミングは、対応する論理ページを形成するセクタのうちの全部よりは少ない１つ以上のセクタが受け取られたときに始まることができ、停止され、そのページの追加セクタを含むように再開され得る。
2008523542.tif 000002
【特許請求の範囲】
【請求項１】
プログラミング動作中、１つの物理的ページを成すように形成された複数の多状態記憶ユニットにデータが書き込まれる、不揮発性メモリをプログラムする方法において、
１つの物理的ページに割り当てられた第１のデータ内容を受け取るステップであって、前記第１のデータ内容が前記物理的ページの記憶ユニットに格納可能なデータ内容の全てよりは少ないデータ内容を特定するステップと、
前記物理的ページへの前記第１のデータ内容のプログラミング動作を始めるステップと、
前記第１のデータ内容を受け取るステップの後、前記第１のデータ内容のプログラミング動作を完了する前に、前記物理的ページの前記記憶ユニットのための追加のデータ内容を受け取るステップと、
前記追加のデータ内容を受け取るステップの後、前記第１のデータ内容のプログラミング動作を完了する前に、前記第１のデータ内容のプログラミング動作を中断するステップと、
前記物理的ページへの前記第１のデータ内容および前記追加のデータ内容の同時プログラミング動作を始めるステップと、
を含む不揮発性メモリをプログラムする方法。
【請求項２】
請求項１記載の方法において、
前記第１のデータ内容は、下側データページであり、前記追加の内容は上側データページである方法。
【請求項３】
請求項１記載の方法において、
前記第１のデータ内容のプログラミング動作を中断する前に、前記追加のデータ内容が前記第１のデータ内容と同じ物理的ページに割り当てられていることを判定するステップをさらに含む方法。
【請求項４】
請求項１記載の方法において、
前記第１のデータ内容のプログラミング動作を中断した後、前記第１のデータ内容および前記追加のデータ内容の同時プログラミング動作を始める前に、前記物理的ページの前記記憶ユニットの状態をベリファイするステップをさらに含む方法。
【請求項５】
請求項４記載の方法において、
前記第１のデータ内容のプログラミング動作を中断した後、前記第１のデータ内容および前記追加のデータ内容の同時プログラミング動作を始める前に、１つ以上のプログラミングパラメータをリセットするステップをさらに含む方法。
【請求項６】
請求項５記載の方法において、
前記プログラミング動作は、マグニチュードが増大するパルスの系列を含むプログラミング波形を使用する方法。
【請求項７】
請求項６記載の方法において、
前記１つ以上のプログラミングパラメータは、前記プログラミング波形の振幅を含む方法。
【請求項８】
請求項６記載の方法において、
前記１つ以上のプログラミングパラメータは、パルスの最大数を含む方法。
【請求項９】
請求項６記載の方法において、
前記第１のデータ内容のプログラミング動作を中断した後、前記第１のデータ内容および前記追加のデータ内容の同時プログラミング動作を始める前に、前記物理的ページの前記記憶ユニットの状態をベリファイする動作をさらに含み、前記プログラミングパラメータは前記記憶ユニットの前記状態に基づいてセットされる方法。
【請求項１０】
請求項１記載の方法において、
前記物理的ページへの前記第１のデータ内容のプログラミング動作は、前記物理的ページの特定されていないデータ内容のために空白データを書き込むことを含む方法。
【請求項１１】
請求項１記載の方法において、
前記第１のデータ内容を受け取るステップの後、前記物理的ページへの前記第１のデータ内容および前記追加のデータ内容の同時プログラミング動作を完了する前に、前記メモリの前記物理的ページの外側の部分で別のプログラミング動作を開始するステップをさらに含む方法。
【請求項１２】
プログラミング動作中、複数の記憶ユニットを有する物理的ページにデータが書き込まれる、不揮発性メモリをプログラムする方法において、
物理的ページに割り当てられた第１のデータ内容を受け取るステップであって、前記第１のデータ内容が前記物理的ページを形成する前記記憶ユニットのうちの全てよりは少ない記憶ユニットのためのデータ内容を特定するステップと、
前記物理的ページへの前記第１のデータ内容のプログラミング動作を始めるステップと、
前記第１のデータ内容を受け取るステップの後、前記第１のデータ内容のプログラミング動作を完了する前に、前記物理的ページの、前記第１のデータ内容によりデータが特定されていない１つ以上の追加の記憶ユニットのための追加のデータ内容を受け取るステップと、
前記追加のデータ内容を受け取るステップの後、前記第１のデータ内容のプログラミング動作を完了する前に、前記第１のデータ内容のプログラミング動作を中断するステップと、
その後、前記物理的ページへの前記第１のデータ内容および前記追加のデータ内容の同時プログラミング動作を始めるステップと、
を含む不揮発性メモリをプログラムする方法。
【請求項１３】
請求項１２記載の方法において、
前記ページは複数のセクタを含み、前記第１のデータ内容は前記ページの１つ以上で全部よりは少ないセクタを含み、前記追加のデータ内容は前記ページの１つ以上のセクタを含む方法。
【請求項１４】
請求項１２記載の方法において、
前記物理的ページは、前記不揮発性メモリの複数のプレーンに分散されている方法。
【請求項１５】
請求項１２記載の方法において、
前記第１のデータ内容のプログラミング動作を中断する前に、前記追加のデータ内容が前記第１のデータ内容と同じ物理的ページに割り当てられていることを判定するステップをさらに含む方法。
【請求項１６】
請求項１２記載の方法において、
前記第１のデータ内容のプログラミング動作を中断した後、前記第１のデータ内容および前記追加のデータ内容の同時プログラミング動作を始める前に、前記物理的ページの前記記憶ユニットの状態をベリファイするステップをさらに含む方法。
【請求項１７】
請求項１６記載の方法において、
前記物理的ページの前記記憶ユニットの状態をベリファイした後、前記第１のデータ内容および前記追加のデータ内容の同時プログラミング動作を始める前に、１つ以上のプログラミングパラメータをリセットするステップをさらに含む方法。
【請求項１８】
請求項１７記載の方法において、
前記プログラミング動作は、マグニチュードが増大するパルスの系列を含むプログラミング波形を使用する方法。
【請求項１９】
請求項１８記載の方法において、
前記１つ以上のプログラミングパラメータは、前記プログラミング波形の振幅を含む方法。
【請求項２０】
請求項１８記載の方法において、
前記１つ以上のプログラミングパラメータは、パルスの最大数を含む方法。
【請求項２１】
請求項１２記載の方法において、
前記物理的ページへの前記第１のデータ内容のプログラミング動作は、データが特定されていない前記物理的ページの前記記憶ユニットのために空白データを書き込むことを含む方法。
【請求項２２】
請求項１２記載の方法において、
前記第１のデータ内容を受け取るステップの後、前記物理的ページへの前記第１のデータ内容および前記追加のデータ内容の同時プログラミング動作を完了する前に、前記メモリの前記物理的ページの外側の部分で別のプログラミング動作を開始するステップをさらに含む方法。
【請求項２３】
プログラミング動作中、複数の記憶ユニットにデータが書き込まれる、不揮発性メモリをプログラムする方法において、
前記複数の記憶ユニットに割り当てられた第１のデータ内容を受け取るステップであって、前記記憶ユニットが含むことのできるデータ内容の全てよりは少ないデータ内容のためのデータ内容を前記第１のデータ内容が特定するステップと、
前記複数の記憶ユニットへの前記第１のデータ内容のプログラミング動作を始めるステップと、
前記第１のデータ内容を受け取るステップの後、前記第１のデータ内容のプログラミング動作を完了する前に、前記複数の記憶ユニットに含まれ得る追加のデータ内容を受け取るステップと、
前記追加のデータ内容を受け取るステップの後、前記第１のデータ内容のプログラミング動作を完了する前に、前記第１のデータ内容のプログラミング動作を中断するステップと、
その後、前記複数の記憶ユニットへの前記第１のデータ内容および前記追加のデータ内容の同時プログラミング動作を始めるステップと、
を含む不揮発性メモリをプログラムする方法。
【請求項２４】
請求項２３記載の方法において、
前記複数の記憶ユニットは多状態記憶ユニットであり、複数の論理ページを記憶する物理的ページを成すように形成され、前記第１のデータ内容は前記複数のページのうちの全てよりは少ないページのためのデータ内容を特定する方法。
【請求項２５】
請求項２３記載の方法において、
前記第１のデータ内容は前記記憶ユニットのうちの全てよりは少ない記憶ユニットのためのデータ内容を特定し、前記追加のデータ内容は前記記憶ユニットのうちの前記第１のデータ内容によりデータが特定されていない１つ以上の追加の記憶ユニットのためのデータ内容を特定する方法。
【請求項２６】
請求項２３に記載の方法において、
前記第１のデータ内容のプログラミング動作を中断した後、前記第１のデータ内容および前記追加のデータ内容の同時プログラミング動作を始める前に、前記複数の記憶ユニットの状態をベリファイするステップをさらに含む方法。
【請求項２７】
請求項２６記載の方法において、
前記複数の記憶ユニットの状態をベリファイした後、前記第１のデータ内容および前記追加のデータ内容の同時プログラミング動作を始める前に、１つ以上のプログラミングパラメータをリセットするステップをさらに含む方法。
【請求項２８】
請求項２７記載の方法において、
前記プログラミング動作は、マグニチュードが増大するパルスの系列を含むプログラミング波形を使用する方法。
【請求項２９】
請求項２８記載の方法において、
前記１つ以上のプログラミングパラメータは、前記プログラミング波形の振幅を含む方法。
【請求項３０】
請求項２８記載の方法において、
前記１つ以上のプログラミングパラメータは、パルスの最大数を含む方法。
【請求項３１】
請求項２３記載の方法において、
前記複数の記憶ユニットへの前記第１のデータ内容のプログラミング動作は、前記記憶ユニットの特定されていないデータ内容のために空白データを書き込むことを含む方法。
【請求項３２】
請求項２３記載の方法において、
前記第１のデータ内容を受け取るステップの後、前記複数の記憶ユニットへの前記第１データ内容および前記追加のデータ内容の同時プログラミング動作を完了する前に、前記複数の記憶ユニットを含まない前記メモリの部分で別のプログラミング動作を開始するステップをさらに含む方法。
【請求項３３】
１つの物理的ページを成すように形成された複数の記憶ユニットに複数のデータバッファから同時にデータをプログラムすることのできる、不揮発性メモリを操作する方法において、
データが前記複数のバッファから前記物理的ページに書き込まれるプログラミング動作を実行するステップと、
前記複数のバッファのうちの、全てよりは少ない１つ以上のバッファに対応する記憶ユニットのデータ内容が首尾良く書き込まれているかをベリファイする動作と、
前記複数のバッファのうち、内容が首尾良く書き込まれているとベリファイされた記憶ユニットに対応するもの以外のバッファに対応する記憶ユニットのために前記プログラミング動作を続行するステップと、
前記プログラミング動作を続行するステップと同時に、内容が首尾良く書き込まれているとベリファイされた記憶ユニットに対応するバッファに新しいデータ内容を受け取るステップと、
を含む不揮発性メモリを操作する方法。
【請求項３４】
請求項３３記載の方法において、
前記記憶ユニットは、バイナリデータを記憶する方法。
【請求項３５】
請求項３３記載の方法において、
前記記憶ユニットは、多状態データを記憶する方法。
【請求項３６】
請求項３３記載の方法において、
前記物理的ページは、前記不揮発性メモリの複数のプレーンに分散されている方法。
【請求項３７】
請求項３３記載の方法において、
前記バッファの各々は、データの１つ以上のセクタを記憶する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリおよびその操作に関し、特に、プログラミングが開始される時点で完全なデータが当初存在しないときに多状態メモリのプログラミング速度を改善するための技術に関する。
【背景技術】
【０００２】
本発明の原理は、種々のタイプの不揮発性メモリ、現存するもの、および開発中の新技術を用いるために熟考されているもの、に応用される。しかし、本発明の実施例は、代表例として、記憶素子がフローティングゲートであるフラッシュ形式の電気的に消去可能でプログラム可能な読み出し専用メモリ（ＥＥＰＲＯＭ）に関して説明される。
【０００３】
現在の商業製品では、普通、フラッシュＥＥＰＲＯＭアレイの各フローティングゲート記憶素子はバイナリモードで動作することによって１ビットのデータを記憶し、フローティングゲートトランジスタのしきい値レベルの２つの範囲が記憶レベルとして定義される。フローティングゲートトランジスタのしきい値レベルは、それらのフローティングゲートに蓄積された電荷レベルの範囲に対応する。メモリアレイのサイズの縮小に加えて、各フローティングゲートトランジスタに２ビット以上のデータを蓄積することによってそのようなメモリアレイのデータ蓄積密度をさらに高めることが趨勢となっている。これは、各フローティングゲートトランジスタについて３つ以上のしきい値レベルを記憶状態として定めることにより達成され、今では４つのそのような状態（フローティングゲート記憶素子あたりに２ビットのデータ）が商業製品に含まれている。記憶素子あたりに１６状態など、より多くの記憶状態が考えられている。各フローティングゲートメモリトランジスタは、それがその中で実用的に操作され得るしきい値電圧の一定の総範囲（ウィンドウ）を有し、この範囲は、それについて定められた数の状態と、それらを互いに明瞭に区別することを可能にするそれらの状態の間のマージンとに分割される。
【０００４】
各メモリセルに蓄積される状態の数が増えるにつれて、フローティングゲート記憶素子上にプログラムされた電荷レベルにおけるシフトの許容誤差が減少する。各メモリセル記憶素子に記憶される状態の数が増えるにつれて各記憶状態のために指定される電荷の範囲は必然的により狭くされかつ互いにより近くに置かれなければならなくなるので、プログラミングはより高い精度で行われなければならず、蓄積された電荷レベルにおける許容される実際のまたは見かけ上のプログラミング後のシフトの大きさは小さくなる。１つのセルに蓄積された電荷における実際のシフトは、そのセルと或る程度の電気的結合を有する、同じ列または行内のセル、および線またはノードを共有するセルなどの他のセルを読み出し、プログラムおよび消去するときに、乱され得る。
【０００５】
蓄積された電荷における見かけ上のシフトは、記憶素子同士のフィールド結合の故に生じる。この結合の程度は、メモリセルアレイのサイズが小さくされてゆくにつれて、また集積回路製造技術の向上の結果として、必然的に大きくなりつつある。問題は、別々のときにプログラムされた隣り合うセルの２つのセット間で最も顕著に発生する。セルの一方のセットは、データの１つのセットに対応する電荷のレベルをそれらのフローティングゲートに加えるようにプログラムされる。セルの第２のセットがデータの第２のセットでプログラムされた後、セルの第１のセットのフローティングゲートから読み出される電荷レベルは、フローティングゲートの第２のセット上の電荷が第１のセットと結合されていることの効果のために、しばしば、プログラムされたものとは異なるように見える。これは米国特許第５，８６７，４２９号（特許文献１）および第５，９３０，１６７号（特許文献２）に記載され、これらの特許はその全体が本願明細書において参照により援用されている。これらの特許は、フローティングゲートの２つのセットを互いに物理的に隔離すること、または第１のそれを読み出すときにフローティングゲートの第２のセット上の電荷の効果を考慮に入れることを記述している。さらに、米国特許第５，９３０，１６７号（特許文献２）は、データを初めにプログラムするために必要な時間を短縮するために、多状態メモリの部分をキャッシュメモリとして、２状態にまたは縮減されたマージンで、選択的にプログラムする方法を記述している。このデータは、後に読み出されて３つ以上の状態に、または増大されたマージンで、メモリに再プログラムされる。
【０００６】
この効果は種々のタイプのフラッシュＥＥＰＲＯＭセルアレイに存在する。１つの設計のＮＯＲアレイのメモリセルは隣り合うビット（列）線間に接続され、コントロールゲートはワード（行）線に接続されている。個々のセルは、それと直列に選択トランジスタが形成されるか、或いは形成されていない１つのフローティングゲートトランジスタ、または単一の選択トランジスタにより分離された２つのフローティングゲートトランジスタのいずれかを含む。記憶システムにおけるそのようなアレイとその使用との例が、サンディスク  コーポレイションの米国特許第５，０９５，３４４号（特許文献３）、第５，１７２，３３８号（特許文献４）、第５，６０２，９８７号（特許文献５）、第５，６６３，９０１号（特許文献６）、第５，４３０，８５９号（特許文献７）、第５，６５７，３３２号（特許文献８）、第５，７１２，１８０号（特許文献９）、第５，８９０，１９２号（特許文献１０）、および第６，１５１，２４８号（特許文献１１）、並びに２０００年２月１７日に出願された米国特許出願第０９／５０５，５５５号（特許文献１２）、および２０００年９月２２日に出願された米国特許出願第０９／６６７，３４４号（特許文献１３）で説明されている。これらの特許および特許出願は、その全体が本願明細書において参照により援用されている。
【０００７】
１つの設計のＮＡＮＤアレイは、両端の選択トランジスタを通してビット線と基準電位との間に直列ストリングをなして接続された数個（８個、１６個または３２個など）のメモリセルを有する。ワード線は、別の直列ストリングをなしてセルのコントロールゲートと接続される。そのようなアレイとその動作との関連する例が、米国特許第５，５７０，３１５号（特許文献１４）、第５，７７４，３９７号（特許文献１５）、および第６，０４６，９３５号（特許文献１６）で説明されている。これらの特許は、その全体が本願明細書において参照により援用されている。簡単に述べれば、（しばしば、入ってくるデータの別々の論理ページからの）２ビットのデータが２ステップで、すなわち初めに１ビットのデータに応じて１つのセルを１つの状態にプログラムし、その後にそのデータが必要とするならば、入ってくるデータの第２のビットに応じてそのセルをそれらの状態のうちの他の１つに再プログラムするステップで、個々のセルの４つの状態のうちの１つにプログラムされる。
【０００８】
これらの特許に記載されているように、これらの多状態（或いはＭＬＣ）メモリに記憶されているデータを符号化するための普通の手法は、データの上側ページとデータの下側ページとを共にマルチレベルセルの同じセットに格納することである。この手法には、ＭＬＣフラッシュメモリの物理的ページが下側ページデータでプログラムされるのであれば、実際に下側ページデータおよび上側ページデータの両方が同じ物理的ページにプログラムされるときには、ユーザ（コントローラ）はプログラミングが終了して上側ページデータのプログラミングを開始できるようになるまで待たなければならないという短所がある。また、これらの設計では、複数のデータ転送単位に対応する量のデータを含む１つのページにデータを書き込むことも普通である。これは、多数のセクタのページまたは多数のプレーンのページが例えば単一セクタのデータだけでプログラムされるときなどのようにフラッシュメモリが部分的にプログラムされるのであれば、ユーザ（コントローラ）は、同じページの別の部分的プログラミングを開始できるようになるために、プログラミングが終了するまで待たなければならないという短所をもたらす。これらの短所を縮減するか、或いはなくすことができれば不揮発性メモリシステムの性能を改善することができる。
【特許文献１】米国特許第５，８６７，４２９号
【特許文献２】米国特許第５，９３０，１６７号
【特許文献３】米国特許第５，０９５，３４４号
【特許文献４】米国特許第５，１７２，３３８号
【特許文献５】米国特許第５，６０２，９８７号
【特許文献６】米国特許第５，６６３，９０１号
【特許文献７】米国特許第５，４３０，８５９号
【特許文献８】米国特許第５，６５７，３３２号
【特許文献９】米国特許第５，７１２，１８０号
【特許文献１０】米国特許第５，８９０，１９２号
【特許文献１１】米国特許第６，１５１，２４８号
【特許文献１２】米国特許出願第０９／５０５，５５５号
【特許文献１３】米国特許出願第０９／６６７，３４４号
【特許文献１４】米国特許第５，５７０，３１５号
【特許文献１５】米国特許第５，７７４，３９７号
【特許文献１６】米国特許第６，０４６，９３５号
【特許文献１７】米国特許第６，５２２，５８０号
【特許文献１８】米国公開特許出願第２００３／０１１２６６３号
【特許文献１９】米国特許第６，０４６，９３５号
【特許文献２０】米国特許第６，６５７，８９１号
【特許文献２１】米国特許第５，８９０，１９２号
【特許文献２２】米国特許第６，４２６，８９３号
【特許文献２３】米国特許出願第１０／７５０，１５７号
【特許文献２４】米国特許出願第１０／７５０，１５５号
【特許文献２５】米国特許第６，６４３，１８８号
【特許文献２６】米国特許出願第１０／８４１，３７９号
【特許文献２７】米国特許第５，８５１，８８１号
【特許文献２８】米国特許出願第１０／２８０，３５２号
【非特許文献１】論文“マルチレベルＮＡＮＤ  ＥＥＰＲＯＭのための高速で正確なプログラミング方法”，ＶＬＳＩ技術に関する１９９５年のシンポジウムの要約，１２９〜１３０頁
【非特許文献２】チャンら，“真の単一トランジスタ酸化物−窒化物−酸化物ＥＥＰＲＯＭデバイス”，ＩＥＥＥ電子デバイスレターズ，第ＥＤＬ−８巻，第３号，１９８７年３月，９３〜９５頁
【非特許文献３】ノザキら，“半導体ディスク用途のためのＭＯＮＯＳメモリセルを有する１Ｍｂ  ＥＥＰＲＯＭ”，ＩＥＥＥ固体回路ジャーナル，第２６巻，第４号，１９９１年４月，ｐ４９７〜５０１頁
【非特許文献４】エイタンら、“ＮＲＯＭ：新規な局所トラッピング、２ビットの不揮発性メモリセル”，ＩＥＥＥ電子デバイスレターズ，第２１巻，第１１号，２０００年１１月，５４３〜５４５頁
【非特許文献５】ディマリアら，“Ｓｉに富むＳＩＯ2 インジェクタとフローティング多結晶ケイ素記憶層を使用する電気的に可変な読み出し専用メモリ”，応用物理学ジャーナル５２（７），１９８１年７月，４８２５〜４８４２頁
【非特許文献６】ホリら，“不揮発性メモリ用途のためのＳｉ打ち込みゲート−ＳｉＯ２絶縁体を有するＭＯＳＦＥＴ”，ＩＥＤＭ９２，１９９２年４月，４６９〜４７２頁
【発明の開示】
【０００９】
手短にかつ一般的に述べると、本発明は、メモリシステムがプログラミングプロセスを中断し、追加データを含めてそれを再開する手法を提供する。より具体的には、メモリシステムがデータをプログラミング単位としてのセルのグループに同時にプログラムするとき、プログラミングは、そのグループが保持できるデータ内容全体より少ないデータ内容で始まることができる。プログラミングが進行している間にそのグループに割り当てられた追加データが到着すれば、プログラミングは中断され、メモリセルの現在の状態が判定される。その追加データは、完了時までまたはそのグループに割り当てられた更なる追加データがメモリに到着するまで、プログラムされるデータに組み込まれ、そしてプログラミングが再開される。これは性能向上を可能にする。なぜならば、追加データのプログラミングは、進行中の部分的内容のプログラミングが完了するまで待つのではなくて、それが到着し次第始まることができるからである。
【００１０】
本発明の１つの副次的態様において、本発明は上側データページおよび下側データページの重複プログラミングを可能にする。マルチパスプログラミングを用いる多状態システムにおいて、メモリの物理的ページに割り当てられた下側論理データページがプログラミングを開始する。同じ物理的ページに割り当てられた上側論理データページがメモリに転送されると、下側ページのプログラミングは中断され、下側ページプログラミングのステータスが確立される。メモリは、その後に多状態プログラミングモードに転換して上側ページデータおよび下側ページデータを同時に書き込む。これは、関連する上側ページを待つことなく下側ページデータが利用可能になり次第下側ページデータがプログラミングを開始することを可能にする。また、これは、第１のプログラミングパスが下側ページにおける書き込みを終えるのを待たずに上側ページが利用可能になり次第上側ページがプログラミングを開始することをも可能にする。
【００１１】
本発明の別の副次的態様において、所与の物理的ページに割り当てられたデータが転送されたならば、たとえそのページを構成するプレーンの全量に満たない量に対応するとしても、物理的ページへのプログラミングが始まることができる。例えば、１つのページが複数のセクタのデータを含むとき、その物理的ページのプログラミングは、対応する論理ページを形成するセクタのうちの全部には満たない１つ以上が受け取られたときに、始まることができる。その部分的ページのプログラミングが始まると、プログラムされつつあるページに割り当てられた追加データ（例えば、追加のセクタ）がメモリに転送されれば、その部分的ページプログラミングは中断され、その部分的ページのステータスが確立される。メモリはその後その追加データを書き込むことに加えてプログラミングを再開する。これは、そのページを完成させるのに必要とされる追加データを待たずに、初めに転送されたデータが、それが利用可能になり次第、プログラミングを開始することを可能にする。それは、追加データが、ページの初めに転送された部分の部分的ページプログラミングが書き込みを終えるのを待たずに、それが転送され次第プログラミングを始めることをも可能にし、パイプライン形の部分的ページプログラミングプロセスをもたらす。さらに、物理的ページはメモリの複数のプレーンに分散され得る。
【００１２】
これらの態様の特定の実施形態は階段プログラミング波形を用いる。追加データが受け取られたとき、階段のレベルと他の関連パラメータとは、その時点までのプログラミングの進捗に応じてリセットされる必要がある。
【００１３】
本発明の付加的な態様、特徴、利点および応用が、添付図面と関連させて検討されるべきである代表的な実施形態についての次の記述に含まれる。
【発明を実施するための最良の形態】
【００１４】
不揮発性メモリシステムの例
図１〜７を参照して、明確な例を提供するために、その中で本発明の種々の態様が実現される特定の不揮発性メモリシステムについて説明する。図１は、フラッシュメモリシステムのブロック図である。マトリックスに配置された複数のメモリセルＭを含むメモリセルアレイ１は、列制御回路２、行制御回路３、ｃソース制御回路４およびｃ−ｐウェル制御回路５によって制御される。列制御回路２は、メモリセル（Ｍ）に蓄積されているデータを読み出し、プログラミング動作中にメモリセル（Ｍ）の状態を判定し、プログラミングを促進するか、或いはプログラミングを抑制するようにビット線（ＢＬ）の電位レベルを制御するためにメモリセルアレイ１のビット線（ＢＬ）に接続されている。行制御回路３は、ワード線（ＷＬ）のうちの１つを選択し、読み出し電圧を印加し、列制御回路２により制御されるビット線電位レベルと結合されたプログラミング電圧を印加し、メモリセル（Ｍ）がその上に形成されているｐ形領域（図３において“ｃ−ｐウェル”１１と称されている）の電圧と結合された消去電圧を印加するようにワード線（ＷＬ）に接続されている。ｃソース制御回路４は、メモリセル（Ｍ）に接続された共通ソース線（図２において“ｃソース”と称されている）を制御する。ｃ−ｐウェル制御回路５は、ｃ−ｐウェル電圧を制御する。
【００１５】
メモリセル（Ｍ）に格納されたデータは、列制御回路２により読み出され、Ｉ／Ｏ線およびデータ入出力バッファ６を介して外部Ｉ／Ｏ線に出力される。メモリセルに格納されるべきプログラムデータは、外部Ｉ／Ｏ線を介してデータ入出力バッファ６に入力され、列制御回路２に転送される。外部Ｉ／Ｏ線はコントローラ２０に接続される。
【００１６】
フラッシュメモリデバイスを制御するためのコマンドデータは、コントローラ２０と接続された外部制御線に接続されたコマンドインターフェイスに入力される。コマンドデータは、どんな動作が要求されているかをフラッシュメモリに知らせる。入力されたコマンドは、列制御回路２、行制御回路３、ｃソース制御回路４、ｃ−ｐウェル制御回路５およびデータ入出力バッファ６を制御する状態マシン８に転送される。状態マシン８は、ＲＥＡＤＹ／ＢＵＳＹ（レディ／ビジー）またはＰＡＳＳ／ＦＡＩＬ（パス／フェイル）のようなフラッシュメモリのステータスデータを出力できる。
【００１７】
コントローラ２０は、パーソナルコンピュータ、デジタルカメラ、または個人用携帯情報端末（ＰＤＡ）のようなホストシステムと接続されるかまたは接続可能である。メモリアレイ１にデータを格納し或いはメモリアレイ１からデータを読み出すなどのコマンドを開始し、そしてそのようなデータを提供し或いは受け取るのはホストである。コントローラは、そのようなコマンドを、コマンド回路７により解釈され実行され得るコマンド信号に変換する。コントローラは、通例、メモリアレイに書き込まれ或いはメモリアレイから読み出されるユーザデータのためのバッファメモリも含む。代表的なメモリシステムは、コントローラ２０を含む１つの集積回路チップ２１と、メモリアレイおよび関連する制御回路、入出力回路および状態マシン回路を各々含む１つ以上の集積回路チップ２２とを含む。もちろん、システムのメモリアレイとコントローラ回路とを１つ以上の集積回路チップに統合することが趨勢である。メモリシステムは、ホストシステムの一部として組み込まれてよく、或いはホストシステムの差込ソケットに取り外し可能に挿入され得るメモリカードに含まれてもよい。そのようなカードはメモリシステム全体を包含することができ、或いはコントローラおよびメモリアレイは、関連する周辺回路と共に、別々のカードに設けられてもよい。
【００１８】
図２を参照して、メモリセルアレイ１の構造例を説明する。ＮＡＮＤタイプのフラッシュＥＥＰＲＯＭが例として記載される。特定の例では、メモリセル（Ｍ）は１，０２４個のブロックに分けられる。各ブロックに蓄積されたデータは同時に消去される。従ってブロックは、同時に消去可能な１つの数のセルの最小単位である。各ブロックにおいて、この例では、偶数列および奇数列に分けられる８，５１２列がある。ビット線も偶数ビット線（ＢＬｅ）と奇数ビット線（ＢＬｏ）とに分けられる。各ゲート電極においてワード線（ＷＬ０からＷＬ３まで）に接続された４つのメモリセルが直列に接続されて１つのＮＡＮＤセルユニットまたはＮＡＮＤストリングを形成する。ＮＡＮＤセルユニットの１つの端子は、そのゲート電極が第１の選択ゲート線（ＳＧＤ）に接続されている第１の選択トランジスタを介して対応するビット線（ＢＬ）に接続され、他の１つの端子はそのゲート電極が第２の選択ゲート線（ＳＧＳ）に接続されている第２の選択トランジスタを介してｃソースに接続されている。簡略化のために各セルユニットに４つのフローティングゲートトランジスタが含まれるように図に示されているが、より多く（８個、１６個或いは３２個も）のトランジスタが使用される。
【００１９】
ユーザデータ読み出しおよびプログラミング動作の間、この例では４，２５６個のセル（Ｍ）が同時に選択される。選択されるセル（Ｍ）は同じワード線（例えば、ＷＬ２）と、同じ種類のビット線（ＢＬ）（例えば、偶数ビット線ＢＬｅ０からＢＬｅ４２５５まで）とを有する。従って、５３２バイトのデータが同時に読み出されまたはプログラムされ得、データのこのユニットはページと称される。この例では各ＮＡＮＤストリングは４個のセルを含み、センス増幅器あたりに２つのビット線があるので、１つのブロックは少なくとも８ページを記憶することができる。各メモリセル（Ｍ）が２ビットのデータを記憶するとき、すなわちマルチレベルセルであるとき、１つのブロックは１６ページを記憶する。この実施形態では、メモリセルの各々の記憶素子、この場合にはメモリセルの各々のフローティングゲートは２ビットのユーザデータを記憶する。
【００２０】
図３は、図２に略図示されているタイプのＮＡＮＤセルユニットの、ビット線（ＢＬ）の方向における横断面図を示す。ｐ形半導体基板９の表面に、ｐ形領域ｃ−ｐウェル１１が形成され、このｃ−ｐウェルは、このｃ−ｐウェルをｐ形基板から電気的に絶縁するためにｎ形領域１０によって囲まれている。ｎ形領域１０は、第１の接点穴（ＣＢ）およびｎ形拡散層１２を介して第１の金属ＭＯから成るｃ−ｐウェル線に接続されている。ｐ形領域ｃ−ｐウェル１１も第１の接点穴（ＣＢ）およびｐ形拡散層１３を介してｃ−ｐウェル線に接続されている。ｃ−ｐウェル線は、ｃ−ｐウェル制御回路５（図１）に接続される。
【００２１】
各メモリセルは、そのセルに記憶されるデータに対応する量の電荷を蓄積するフローティングゲート（ＦＧ）と、ゲート電極を形成するワード線（ＷＬ）と、ｎ形拡散層１２から成るドレイン電極およびソース電極とを有する。フローティングゲート（ＦＧ）は、トンネル酸化膜（１４）を介してｃ−ｐウェルの表面上に形成されている。ワード線（ＷＬ）は、絶縁膜（１５）を介してフローティングゲート（ＦＧ）上に積み重ねられている。ソース電極は、第２の選択トランジスタ（Ｓ）および第１の接点穴（ＣＢ）を介して第１の金属（ＭＯ）から成る共通ソース線（ｃソース）に接続される。共通ソース線は、ｃソース制御回路（４）に接続される。ドレイン電極は、第１の選択トランジスタ（Ｓ）、第１の接点穴（ＣＢ）、第１の金属（ＭＯ）の中間布線および第２の接点穴（Ｖ１）を介して第２の金属（Ｍ１）から成るビット線（ＢＬ）に接続される。ビット線は列制御回路（２）に接続される。
【００２２】
図４および５は、ワード線（ＷＬ２）の方向におけるメモリセル（図３の断面４−４）および選択トランジスタ（図３の断面５−５）の横断面図を各々示す。各列は、基板に形成されてシャロー・トレンチ・アイソレーション (shallow trench isolation) （ＳＴＩ）として知られている絶縁材料で満たされたトレンチによって隣接する列から絶縁される。フローティングゲート（ＦＧ）はＳＴＩと絶縁膜１５とワード線（ＷＬ）とによって他のフローティングゲートから分離されている。フローティングゲート（ＦＧ）間のスペースは０．１μｍ程度であり得、フローティングゲート間の容量結合は顕著であり得る。選択トランジスタのゲート電極（ＳＧ）は、フローティングゲート（ＦＧ）およびワード線（ＷＬ）と同じ形成プロセスステップで形成されるので、積み重ねゲート構造を示す。これら２つの選択ゲート線（ＳＧ）は、ワード線の端部で互いに電気的に短絡される。
【００２３】
図６の表１は、１つの特定の例において、メモリセルアレイ１を操作するために印加される電圧を要約し、各メモリセルのフローティングゲートは２ビットを記憶し、状態“１１”、“１０”、“０１”、“００”のうちの１つを有する。この表は、読み出しおよびプログラミングのためにワード線“ＷＬ２”と“ＢＬｅ”のビット線とが選択される場合を示す。ｃ−ｐウェルを２０Ｖの消去電圧に高め、選択されたブロックのワード線（ＷＬ）を接地することによって、選択されたブロックのデータが消去される。選択されないブロックのワード線（ＷＬ）、ビット線（ＢＬ）、選択線（ＳＧ）およびｃソースの全てはフローティング状態にされるので、これらも、ｃ−ｐウェルとの容量結合のために殆ど２０Ｖまで高められる。従って、強い電界が選択されたメモリセル（Ｍ）のトンネル酸化膜１４（図４および５）だけに加わり、トンネル酸化膜１４を横断してトンネル電流が流れるので選択されたメモリセルのデータは消去される。消去されたセルは、この例では、４つの可能なプログラムされた状態のうちの１つ、すなわち“１１”である。
【００２４】
プログラミング動作中にフローティングゲート（ＦＧ）に電子を蓄積するために、選択されたワード線ＷＬ２はプログラミングパルスＶｐｇｍに接続され、選択されたビット線ＢＬｅは接地される。一方、プログラミングが生じるべきでないメモリセル（Ｍ）でのプログラミングを禁止するために、対応するビット線ＢＬｅは、選択されていないビット線ＢＬｏの全てと同じく正電圧Ｖｄｄ（例えば、３Ｖ）に接続される。選択されていないワード線ＷＬ０，ＷＬ１およびＷＬ３は１０Ｖに接続され、第１の選択ゲート（ＳＧＤ）はＶｄｄに接続され、第２の選択ゲート（ＳＧＳ）は接地される。その結果、プログラムされるメモリセル（Ｍ）のチャネル電位は０Ｖにセットされる。禁止されているセルのチャネル電位は、ワード線（ＷＬ）との容量結合によりチャネル電位が引き上げられる結果として、約６Ｖに高められる。前述したように、プログラミング中はメモリセル（Ｍ）のトンネル酸化膜１４だけに強い電界が加わり、トンネル電流がトンネル酸化膜１４を横断して消去とは逆の方向に流れ、論理状態は“１１”から他の状態“１０”、“０１”、または“００”のうちの１つに変更される。これらの状態を表すために他の種々の符号化方式を選択することができるので、以降の議論では記号Ｅ（消去）、Ａ（最低しきい値・プログラミング状態）、Ｂ（Ａより高いしきい値）、およびＣ（最高しきい値・プログラミング状態）が使用される。
【００２５】
読み出し動作およびベリファイ動作では、選択ゲート（ＳＧＤおよびＳＧＳ）と選択されないワード線（ＷＬ０，ＷＬ１およびＷＬ３）とは、ビット線と共通ソース線との間の電流がそれらを通過し得ることを保証するために４．５Ｖの読み出しパス電圧に高められる。選択されたワード線（ＷＬ２）は１つの電圧に接続され、その１つのレベルが、関係するメモリセルのしきい値電圧がそのようなレベルに到達したか否かを判定するために、各読み出しおよびベリファイ動作のために指定される。例えば、読み出し（ＲＥＡＤ）１０動作（状態Ａ）では、選択されたワード線ＷＬ２は接地されるので、しきい値電圧が０Ｖより高いか否かが検出される。この読み出しの場合には、読み出しレベルは０Ｖであると言うことができる。ベリファイ０１動作（状態Ｃ）では、選択されたワード線ＷＬ２は２．４Ｖに接続されるので、しきい値電圧が２．４Ｖに達したか否かがベリファイされる。このベリファイの場合には、ベリファイレベルは２．４Ｖであると言うことができる。
【００２６】
選択されたビット線（ＢＬｅ）は高レベル、例えば０．７Ｖにプリチャージされる。しきい値電圧が読み出しレベルまたはベリファイレベルより高ければ、関係するビット線（ＢＬｅ）の電位レベルは、非導電性メモリセル（Ｍ）の故に高レベルを維持する。一方、しきい値電圧が読み出しレベルまたはベリファイレベルより低ければ、関係するビット線（ＢＬｅ）の電位レベルは、導電性メモリセル（Ｍ）の故に低レベル（例えば０．５Ｖ未満）に低下する。読み出し動作およびベリファイ動作について以下でさらに詳しく説明する。
【００２７】
図７は、図１の列制御回路２の一部を示す。ビット線の各対（ＢＬｅおよびＢＬｏ）は、１ビットのデータを各々記憶することのできる２つのデータ記憶（ＤＳ１およびＤＳ２）レジスタを含むデータ記憶部分１６に接続される。データ記憶部分１６は、読み出しまたはベリファイ動作中に選択されたビット線（ＢＬ）の電位レベルを感知し、その後にデータをバイナリ式に記憶し、プログラミング動作の間ビット線電圧を制御する。データ記憶部分１６は、“ＥＶＥＮＢＬ”および“ＯＤＤＢＬ”の信号のうちの一方を選択することによって、選択されたビット線（ＢＬ）に選択的に接続される。データ記憶部分１６は、読み出しデータを出力しプログラムデータを記憶するためにＩ／Ｏ線にも接続されている。図１に関して前に説明したように、Ｉ／Ｏ線はデータ入出力バッファ６に接続されている。
【００２８】
記憶素子あたりに２より多い状態を有するメモリシステムの動作
図８Ａは、各フローティングゲート記憶素子が各メモリセル（Ｍ）に２ビットのデータ、すなわち４つのデータ状態を記憶するときのメモリセルアレイ１についてのしきい値電圧分布を示す。曲線３３は、消去された状態（Ｅデータ状態）であるアレイ１内のセルのしきい値レベルＶT の分布を表し、負のしきい値電圧レベルである。ＡユーザデータおよびＢユーザデータを各々記憶したメモリセルのしきい値電圧分布３４および３５は、０Ｖと１Ｖの間および１Ｖと２Ｖの間にあるように示されている。曲線３６は、Ｃデータ状態にプログラムされたセルの分布を示し、２Ｖより高くかつ読み出しパス電圧の４．５Ｖより低くセットされた最高しきい値電圧レベルである。
【００２９】
単一のメモリセル（Ｍ）に記憶される２ビットの各々は、この例において、異なる論理ページからのものである。すなわち、各メモリセルに記憶される２ビットの各ビットは、他方とは異なる論理ページアドレスを有する。図８Ａに示されている下側ページビットは、偶数ページアドレス（＝０，２，４，．．．，Ｎ／２）が入力されたときにアクセスされ、このＮはメモリの論理ページ容量である。上側ページビットは、奇数ページアドレス（＝１，３，５，．．．，［Ｎ／２］＋１）が入力されたときにアクセスされる。図８Ａに示されている符号化の例を用いると、状態Ｅは“１１”状態として表され得、状態Ａは“１０”状態として表され得、状態Ｂは“００”状態として表され得、状態Ｃは“０１”状態として表され得、ここで第１の二進数字は上側ページに記憶される値を表し、第２の二進数字は下側ページに記憶される値を表す。
【００３０】
改善された信頼性を提供するためには、個々の分布が引き締まっている（しきい値分布が狭い）ほうがよい。なぜならば、より引き締まった分布はより広い読み取りマージン（それらの間の距離）をもたらすからである。本発明によれば、プログラミング速度の顕著な低下を伴うことなく引き締まったままである。
【００３１】
本願明細書において参照により援用されている論文“マルチレベルＮＡＮＤ  ＥＥＰＲＯＭのための高速で正確なプログラミング方法”，ＶＬＳＩ技術に関する１９９５年のシンポジウムの要約，１２９〜１３０頁 (the article “Fast and Accurate Programming Method for Multi-level NAND EEPROMs", Digest of 1995 Symposium on VLSI Technology, pp. 129-130)（非特許文献１）によれば、大体において、分布を０．２Ｖ幅に制限するためには普通の繰り返しプログラミングパルスをステップ間で０．２Ｖ増分する必要がある。図９は、現在のプログラミングパルス手法を示す。プログラミング電圧Ｖｐｇｍ波形が示されている。プログラミング電圧Ｖｐｇｍは多数のパルスに分割されていて、パルスごとに０．２Ｖ高められる。Ｖｐｇｍの始動レベルは、この特定の例では、１２Ｖである。
【００３２】
パルス間の期間には、ベリファイ（読み出し）動作が実行される。すなわち、並列にプログラムされる各セルのプログラムされたレベルは、それがそのレベルへプログラムされるところのベリファイレベルに等しいかまたはそれより高いか判定するために、各プログラミングパルスの間に読み出される。所与のメモリセルのしきい値電圧がベリファイレベルを超えていると判定されたならば、その所与のセルの直列セルユニットが接続されているビット線の電圧を０ＶからＶｄｄに高めることによって、そのビットについてのプログラミングが停止または禁止される。同じページ上の並列にプログラムされるセルのうちの他のセルのプログラミングは、それらがそれらのベリファイレベルに到達するまで、続行される。しきい値電圧がセルの最後のプログラミングパルスの間にベリファイレベルの下からその上へ移るとき、しきい値電圧のシフトは０．２ＶのＶｐｇｍステップサイズに等しい。従って、しきい値電圧は０．２Ｖ幅以内に調節される。
【００３３】
図８Ｂおよび８Ｃは、前述したタイプのアレイにおいて４状態ＮＡＮＤメモリセルをプログラムする１つの具体的な現在の手法を示す。第１のプログラミングパスにおいて、セルのしきい値レベルは下側論理ページからのビットに従ってセットされる。そのビットが“１”であれば、それは前に消去されたことの結果としてその状態にあるから、何も行われない。しかし、そのビットが“０”であれば、それ以上のプログラミングを禁止するためにベリファイ電圧としてＶVAを用いてセルのレベルがＡプログラミング済み状態３４に高められる。これで第１のプログラミングパスは終了する。
【００３４】
第２のプログラミングパスでは、セルのしきい値レベルは、上側論理ページからそのセルに記憶されるビットに従ってセットされる。“１”ならば、プログラミングは行われない。なぜならば、セルは、下側ページビットのプログラミングに応じて状態３３または３４の一方であり、その両方が“１”の上側ページビットを有するからである。しかし、その上側ページビットが“０”であれば、そのセルは２回目のプログラミングを受ける。第１のパスの結果としてセルが消去状態すなわちＥ状態３３にとどまれば、そのセルは、図８Ｃの上側矢印により示されているようにその状態から最高しきい値状態３６（状態Ｃ）にプログラムされ、それ以上のプログラミングを禁止するベリファイ条件としてＶVCが使用される。第１のプログラミングパスの結果としてセルが状態３４（状態Ａ）にプログラムされていたならば、図８Ｃの下側矢印により示されているように、そのセルは、ベリファイ条件としてＶVBを用いて第２のパスでその状態から状態３５（状態Ｂ）にさらにプログラムされる。第２のパスの結果は、第１のパスのプログラミング中に書き込まれた論理値を変更することなく上側ページからの“０”を記憶するように指定された状態にセルをプログラムすることである。この第２のプログラミングサイクル中に、セルのしきい値分布は状態ＥまたはＡにとどまり得、或いは状態ＢまたはＣに移行し得る。同じプログラミングサイクル中に同時に別々のセルに２つの異なる目標しきい値状態が存在するので、各プログラミングパルス後に２つの異なるベリファイレベルＶVBおよびＶVCが検査されなければならない。或るシステムでは、プログラミングサイクル全体を高速化するためにＶVCは後の電圧パルスの間に検査されるだけでよい。
【００３５】
もちろん、メモリが４つより多い状態で操作されるのであれば、メモリセルの確定された電圧しきい値ウィンドウの中に状態数に等しい数の分布がある。さらに、各分布に特定のビットパターンが割り当てられたけれども、別のビットパターンがそのように割り当てられてもよく、その場合には、その間でプログラミングが行われる状態は図８Ｂおよび８Ｃに示されているものとは異なり得る。ＮＡＮＤシステムについて背景技術の欄で前に言及された特許において、そのような変形例が幾つか論じられている。さらに、複数状態で操作されるＮＡＮＤおよび他のタイプのメモリアレイにおける隣接するセルの結合の重要性を低下させるための手法が米国特許第６，５２２，５８０号（特許文献１７）に記載され、これも、その全体が本願明細書において参照により援用されている。
【００３６】
メモリセルアレイからデータを読み出すために、分布３３〜３６のうちの隣接するもののほぼ中ほどに位置する電圧ＶRA，ＶRBおよびＶRCが使用される。これらは、読み出される各セルのしきい値電圧状態と比較されるしきい値電圧である。これは、セルからの測定される電流または電圧を基準電流または電圧と各々比較することによって成し遂げられる。これらの読み出し電圧とプログラムされたしきい値電圧分布との間にはマージンが存在し、従ってこの分布が読み出し電圧ＶRA，ＶRBおよびＶRCのいずれとも重ならない限りは、前に論じられたように、外乱等からのこの分布のある程度の広がりを許す。しかし、記憶状態分布の数が増えるとこのマージンは縮減され、プログラミングはそのような広がりを防止するために好ましくはより正確に行われる。
【００３７】
前の説明は、２つの論理ページが１つの物理的ページの中に存在するということ、および所与のプログラミングサイクル中に下側論理ページ、上側論理ページの両方ではなくて一方だけがプログラムされるということが想定されている。“マルチレベル不揮発性メモリセルをプログラムし、また抑止する方法およびシステム”という米国公開特許出願第２００３／０１１２６６３号（特許文献１８）は、１つのプログラミング動作中にページの物理的状態の全てをプログラムすることを記載している。図８に示されているセルあたりに４状態の場合には、プログラミング状態Ａ，ＢまたはＣのいずれかにプログラムされるセルは全て前述したように始めに状態Ａにプログラムされる。これらの状態のいずれかにプログラムされるべき全てのセルが状態Ａに達したとベリファイされた後、上側状態ＢおよびＣのためのデータが図７のデータラッチＤＳ１およびＤＳ２に既に存在するので、プログラミングサイクルは中断や新しいデータの再ロードなしで続行することができ、状態ＢおよびＣにプログラムされるべきセルは状態Ｂにプログラムされ続け得る。全てのセルがこのレベルに達すると、Ｃへを必要とするセルだけがその状態へ移行し続けることができる。その特許出願に記載されているように、一定のビット（“高速ビット”）は他（“低速ビット”）より速くプログラムするということが観察され、実際には、状態Ａから状態Ｂへの、また同様に状態Ｂから状態Ｃへのプログラミングからの遷移時にワード線電圧の或る程度の低下が望ましい。プログラミング電圧のこの低下を取り入れた代表的な電圧波形が図１１に示されている。
【００３８】
図８Ｂ〜８Ｃを用いて特定のプログラミング方式が記載されているが、用いることのできる他の可能なものがある。例えば、米国特許第６，０４６，９３５号（特許文献１９）は１つのプログラミング方法を記載し、その方法では、第１のプログラミングサイクル中に選択されたセルが状態Ｅから状態Ｂにプログラムされる。第２のプログラミングサイクル中に、セルは状態Ｅから状態Ａに、また状態Ｂから状態Ｃにプログラムされる。米国特許第６，６５７，８９１号（特許文献２０）は、状態Ｂの最初の分布が下側しきい値限界まで広がってもよく、第１のプログラミングサイクルの終了時には最終状態Ａと重なってもよく、第２のプログラミングサイクル中に図８Ｃに示されているその分布に引き締められるに過ぎないということを教示することによって、この方法を巧妙化している。さらに、状態Ｅ，Ａ，ＢおよびＣを表すように採用されるバイナリ符号化は、図８Ａ〜Ｃに示されているものとは異なるように選択されてよい。米国特許第６，０４６，９３５号（特許文献１９）および第６，６５７，８９１号（特許文献２０）の両方が、本願明細書において参照により援用されている。
【００３９】
同じページにおける複数のデータ部分の重複プログラミング
前述したように、プログラミングの単位或いは“物理的ページ”は、同時にプログラムされ得るセルから構成される。多状態メモリの場合、各物理的ページは２つ以上の論理ページを記憶することができ、代表的な実施形態は各物理的ページに上側論理ページおよび下側論理ページを格納する。従来技術の２パスのプログラミングプロセスでは、所与の物理的ページに割り当てられた下側ページデータがプログラミング動作をいったん開始したならば、プログラミング動作を成功させるためにプロセスは完了するまでやり通されなければならない。同じ物理的ページに割り当てられた上側ページデータはメモリレジスタ内に存在してもよいけれども、従来技術は、この物理的ページのためのデータ内容の全てを含ませるために第１のプログラミングパスを中断し、後に再開することを許さない。従って、１つの所与の物理的ページにプログラムされるべきデータの全てがメモリ上に存在してもよいが、プログラミングプロセスは完全プログラミングシーケンスに移行できず、上側ページデータは下側ページが第１のパスのプログラミングプロセスを終えるまで待たなければならない。
【００４０】
従来技術において、本願明細書において参照により援用されている米国特許第５，８９０，１９２号（特許文献２１）および第６，４２６，８９３号（特許文献２２）により詳しく説明されているように、１つ以上のメモリチップに分散されている、プレーン（またはカッド）として知られている複数の半自律的メモリアレイにおいてプログラミングが同時に実行され得ることも知られている。メモリはバイナリまたは多状態であり得る。この場合、物理的ページは数個のプレーンから成っていて、１つのプログラミング動作はこれらプレーンの各々に１つのセクタ（または他の量のデータ）を同時にプログラムする。その複数のアレイのうちの全部よりは少ない一部のためのデータがメモリに転送されたならば、ページ全体をプログラムするためにメモリはそのページの残りの部分のためのデータを待たなければならない。或いは、メモリは、メモリ自身が持っているデータを部分的ページプログラミング動作でプログラムすることができ、この場合には欠けている部分はプログラムされないかまたはあたかもそのデータがすべて消去された状態であるかのように取り扱われる。そのページに属する追加データがその部分的ページプログラミング中に到着しても、従来技術は、プログラミング動作を中断してその追加データを組み入れて再開することを許さない。
【００４１】
これらの場合の両方とも、物理的ページが包含し得るデータの全量より少ない量のデータでプログラミング動作が開始される点で、類似している。この事情は、物理的ページを水平方向に（プレーンに）または垂直方向に（上側ページおよび下側ページ）に細分することとして概念化され得る。それらの区分のうちの全部よりは少ない区分のためにデータが提供されたとき、利用可能なデータに基づく部分的プログラミングが開始され得る。しかし、物理的ページはプログラミングの１つの単位を形成するので、プログラミングを中断し再開するための備えがなかったならば、後の追加プログラミング動作を用いる以外に追加データを組み入れる方法はない。本発明の主な態様は、この能力を提供する。
【００４２】
上側ページ／下側ページ構成では、これは上側および下側の多状態メモリページの重複プログラミングという結果をもたらす。多数のプレーンの場合には、これはパイプライン形部分的ページプログラミングという結果をもたらす。これら２つの副次的態様の代表的な実施形態では、プログラミングプロセスは、図９に示されているような階段プログラミング波形を使用する。追加データが物理的ページの利用可能な内容未満でのプログラミング動作（下側ページまたは部分的ページプログラミングなど）を受ける物理的ページに対応するとき、プログラミング動作は中断され、セルのデータ内容がベリファイされ、プログラミング動作はリセットされて、その追加データを組み入れて再開される。
【００４３】
上側ＭＬＣページおよび下側ＭＬＣページの重複プログラミング
背景技術の欄で説明したように、ＭＬＣフラッシュメモリの物理的ページが下側ページデータでプログラムされるときには、実際に下側ページデータおよび上側ページデータの両方が結局同じ物理的ページにプログラムされるとき、ユーザ（コントローラ）はプログラミングが終了して上側ページデータのプログラミングを開始できるようになるまで待たなければならない。これが、代表的な４状態セルの実施形態の図１０Ａに示されている。
【００４４】
図１０Ａにおいて、第１の行（ホスト転送）はホストからコントローラ２０へのデータの転送を示し、第２の行（フラッシュ転送）はその後のこのデータのコントローラからデータ記憶部分１６への転送を示す。下側ページとしてプログラムされるべきデータの各セクタ（または他の転送単位）は初めにコントローラに、その後にメモリに転送される。下側ページ全体が転送され終わると、下側ページプログラミングが始まり、ここで図１０Ａの第３のラインはどのデータがプログラムされるかを示す。下側ページの第１のプログラミングパスは状態Ｅから状態Ａへプログラムするだけなので、この遷移だけがアクティブとして示されている（１Ｅ−＞Ａライン）。Ｅ−＞Ａプログラミングは時点ｔ１で始まり、時点ｔ３で終了する。
【００４５】
下側ページデータがコントローラからメモリに転送された後、上側ページデータがコントローラに、次にフラッシュメモリに転送される。この転送は、下側ページのプログラミングの間に行われ、時点ｔ２で完了する。上側ページデータは時点ｔ２においてチップ上にあるけれども、従来技術は下側ページプログラミングを完了前に終結させてその後に再開することを許さないので、下側ページプログラミングが完了する時点ｔ３までは上側ページデータをプログラムすることはできない。次に、時点ｔ３から、図１０Ａに示されているように、上側ページデータがプログラムされ始め、Ａ−＞Ｂ遷移およびＥ−＞Ｃ遷移がアクティブとなる。プロセス全体が時点ｔ４において終了する。
【００４６】
本発明の第１の態様によれば、上側ページデータがメモリ上に存在するようになったならば時点ｔ２で下側ページプログラミングは中断される。プロセスは、その後に再開されて、下側ページデータと上側ページデータとを同時にプログラムする。これは、下側ページデータだけのために当てられていた時点ｔ２と時点ｔ３との間のプログラミング時間をなくし、本質的にプログラミング時間をこの量だけ短縮する。
【００４７】
図１０Ｂは、図１０Ａのプロセスについて付加的な詳細を示している。第１のライン（キャッシュ・ビジー）はデータを転送するためのイネーブル信号に対応する。これがローだった後にハイに転じるとき、プログラミングが実際に完了したことを示すのではなくて、次のデータを保持できるデータレジスタがあることを示す。第２のライン（真ビジー）は、チップ内で実際に起こっていることに対応する。キャッシュ・ビジー信号は、ローになった後に再びハイになって上側ページをロードする前に、ハイになっていてデータの下側ページをロードする。それは、その後、後のデータがロードされるまでローにとどまる。下側ページがロードされると、プログラミングがイネーブルされて下側ページがプログラムされる。データは最低の非消去状態にプログラムされるだけなので、Ａ状態だけがベリファイされることを必要とする。Ａ状態にプログラムされるセルの全てがベリファイするならば（またはパルスの最大数に達したならば）、上側ページのプログラミングが始まる。初めに、Ｅ−＞Ｃ遷移をこうむる状態は、それらのターゲット値に到達するのにより長い時間を要するので、ベリファイはＢ状態だけについて行われる。結局、ｐｖｆｙＢ／Ｃにより示されているように、ＢおよびＣの両方の状態を検査することが必要になる。Ｂ状態のために割り当てられた数のパルスが完了すると、Ｂターゲット状態を有するセルはロックアウトされて、ターゲット状態としてＣを有するセルの全てがベリファイするかまたはパルスの最大数に達するまでＣ状態だけがベリファイされる。
【００４８】
本発明の第１の態様において、図１０Ａの時点ｔ２とｔ３の間の時間（上側ページデータがメモリに転送され終わってはいるがプログラムされてはいない時間）は、多状態メモリにおいて上側ページおよび下側ページの重複プログラミングを許すことによって大部分は除去される。これは、如何なる状況下でもメモリがその最大プログラミング帯域幅でプログラムされることを可能にする。コントローラは、新しいデータで上側ページをプログラムできるようになる前に下側ページプログラミングが完了するのを待たなくてもよい。この方法に基づく、プログラミングをなるべく早く開始する方針は、特にホストがクラスタをなすようにまたは不連続的に書き込みを行う用途における多状態メモリの性能を顕著に向上させることができる。
【００４９】
従来技術の構成では、図１０Ａの制約は、上側ページデータが転送されるまで下側ページデータをフラッシュメモリのデータレジスタにキャッシングしておき、その後に両方のページを同時にプログラムするキャッシュタイプのコマンドを有するプログラムを用いることによってのみ、回避され得る。この解決策は長い連続的ホスト書き込み動作のために最大プログラミング帯域幅を保つけれども、ホストが小さなクラスタをなすようにまたは不連続的に書き込みを行うのであれば、ゼロまたは役に立たない利点を与える。ホストが長い連続的チャンクをなすデータセクタを書き込まなくて、次のデータ部分が前のものに連続すると期待することが間違っているのであれば、付加的な遅延がもたらされる。
【００５０】
本発明のこの態様において、この方法は、上側ページデータが利用できるようになる前に下側ページのプログラミングを開始することから始まる。上側ページデータが利用可能になったとき、下側ページプログラミングが完了する前にこのプログラミング動作は停止され得る。新しいデータが他の物理的ページに書き込まれるべきであるならば、コントローラは進行中の下側ページプログラミング動作の終了を待つだけでよい。しかし、新しいデータがプログラムされつつある現在の下側ページデータと同じ物理的ページに対応する上側ページデータであるならば、プログラムされつつあるメモリセルのステータスがベリファイされ、その後にメモリのその物理的ページは下側ページデータおよび上側ページデータの両方で並列にプログラムされ得る。その結果として、コントローラは、上側ページのデータを待つ必要がある場合にあり得る性能低下なしでなるべく早く下側ページプログラミングを開始することができる。この方法は図１１Ａ〜１１Ｃに略図示されている。
【００５１】
図１０Ａと同様に、図１１Ａのプロセスは下側ページデータのホストからコントローラへの、そしてその後のホストからメモリへの転送から始まり、この時点（ｔ１）で下側ページデータのプログラミングが始まる。下側ページデータが転送されると、上側ページデータがメモリに転送され、時点ｔ２で終了する。この時点まで、このプロセスは図１２に関して説明したものと本質的に同じである。
【００５２】
データの第２のセットが受け取られたならば、メモリのプログラムされている下側ページと同じ物理的セルに対応する上側ページのためのデータであるのか否かが調べられなければならない。より一般的には、現在プログラムされているものと同じセルのセットに記憶されるデータ状態の追加セットに対応するか否かが調べられる。例えば、１つの物理的ページに３ページが格納されるならば、それはプログラミング中の下側ページに対応する中央のページであり得る。新しい上側ページデータが現在プログラミング中の下側ページに加えられるのが適切であると判定されたときには、“完全シーケンスプログラミング”への変更が開始される。完全シーケンスプログラミングは、２つのバイナリビットが同時にプログラムされることを意味する。これはプログラミング速度を高めるけれども、各プログラミングパルス後に各ビットについてのプログラミングを何時終了するべきかを判定する１つ以上の追加のベリファイステップを必要とし得る。下側ページプログラミングから完全シーケンスプログラミングへの変更を開始するには、幾つかの条件を調べることが必要である。第１に、下側ページプログラミングが実際に完了しているか或いは殆ど完了しているかが判定されなければならない。そうならば、完全シーケンスプログラミングへの変更は起こらず、下側ページプログラミングは普通に完了し、プログラミングは標準的プログラミングアルゴリズムを用いることにより上側ページプログラミングで続行される。第２に、完全シーケンスプログラミングへの変更は、現在のプログラミングベリファイサイクルの完了時にのみ起こる。図９に示されているもののような階段プログラミング電圧波形を用いる実施形態については、プログラミング電圧の新しい開始レベルは時点ｔ２でリセットされる必要があり得る。事情は３つの場合に分類され得る。すなわち、第１の場合には、上側ページデータを受け取った後に下側ページデータプログラミングが完了していることが分かったならば、上側ページデータは、上側ページデータのための標準的な第２のプログラミングパス波形を用いてプログラムされる。第２の場合、上側ページデータが十分早く存在しかつ下側ページ波形が完全シーケンス波形の出発点を超えるほどには進んでいなければ、波形は単調に上昇し続けて完全シーケンス波形に移行することができるが、最大パルス数のカウンタおよび他のパラメータがリセットされる必要があり得る。第３の、下側ページがプログラミングを完了していないがプログラミング電圧波形がその出発完全シーケンス値を超えている場合には、波形は図１１Ｂに示されているように完全シーケンスルーチンを開始するために戻る必要がある。これは、それ以上の下側ページプログラミングから現在ロックアウトされている高速プログラミングビットが第１の完全シーケンスプログラミング電圧パルス後に所望の次のしきい値状態を通り越さないことを保証するために必要である。
【００５３】
図１１Ｂは、図１１Ａのプロセスのためのプログラミング波形の例を示す。図１１Ａは、下側ページデータのプログラミング中の或る点での波形を拾い、その物理的ページの中のセルは標準的な第１のパスのパルス／ベリファイサイクルを受けている。イベント時点ｔ２はパルス１０３またはその後のベリファイ読み出しのあたりで現れると解される。パルス１０３が偶然に下側ページの第１のプログラミングパスのための最大パルス数に対応するならば、プロセスはその後、上側ページの標準的な第２のプログラミングパスで続行される。パルス１０３が下側ページの最大パルス数より少なければ、プロセスは多状態プログラミングモードでの完全シーケンスプログラミングに転換する。その最終ターゲット状態としてＡ状態を持っていて正しくベリファイしたセルはロックアウトし、他の全てのセルはそれ以上のプログラミングを受ける。そのターゲット状態を通り越すのを防止するために、代表的な実施形態は、下側ページの最大値より低い値から完全シーケンス波形を開始する。図１１Ｂにおいて、これは、前のパルス１０３より低いパルス１０５として示されている。完全シーケンスプログラミングへの転換時に、幾つかの波形パラメータが変更され得る。開始Ｖｐｇｍ値のほかに、これは最大Ｖｐｇｍ値、パルスの最大数、およびステップサイズを含むが、この例は同じまたはより低いページのステップサイズとしての完全シーケンスのステップサイズを採用している。これらのパラメータは、固定されてもよく、或いは好ましくは設定可能である。
【００５４】
イベントｔ２がパルス１０１より前に現れれば、下側ページから完全シーケンスへの転換はパルス振幅が完全シーケンス開始値１０５に達する前に行われる。この場合、階段はこのレベルに達するまで一定ステップレベルずつ上昇し続けることができて、１０１と１０５との間のパルスは除去され、これら２つのパルスは基本的に合体して図９に示されているもののような単一の階段を形成する。下側ページから完全シーケンスへの転換に関連する種々のパラメータもリセットされる。
【００５５】
図１１Ｃは、図１０Ｂの図１１Ａの実施形態と同等物である。図１０Ｂの場合と同じく、第１のライン（キャッシュ・ビジー）は、データを転送するためのイネーブル信号に対応し、下側ページのロードとその後の上側ページのロードとを示し、この上側ページおよび下側ページは同じ物理的ページに対応する。キャッシュ・ビジー信号は、ローになる前にデータの下側ページをロードするハイであり、その後に再び、上側ページをロードするハイになる。それは、その後、次のデータ（ここでは、次のワード線上の下側ページデータ）がロードされるまでローにとどまる。下側ページがロードされると、プログラミングがイネーブルされて下側ページがプログラムされ、第２のライン（真ビジー）はプログラミングがイネーブルされていることに対応する。
【００５６】
下側ページだけがプログラムされている間、ｐｖｆｙＡにより示されているように、Ａ状態だけがベリファイされなければならない。上側ページデータがロードされると、ｐｖｆｙＡ／Ｂにより示されているようにＢ状態もベリファイされる。Ａ状態に割り当てられたパルスの数の後、Ａ状態をそのターゲット状態として有するベリファイされていないセルについてプログラミングは停止することができ、それらは誤り訂正方法によって処理され得る。Ａ状態のベリファイが停止されてから或る程度の時間の後、ｐｖｆｙＢ／Ｃにより示されているように、Ｃ状態のベリファイがＢ状態のベリファイに加えられる。Ｂ状態のために割り当てられた数のパルスが使用され終わると、ｐｖｆｙＣにより示されているようにＣ状態だけがベリファイされ続ける。線４１は、全てのセルが状態Ｂでベリファイされて状態Ｃのプログラミングだけが残っているときに、状態Ｃについてプログラミングが続行されている間に次のページのための新しいデータが受け取られて現れることができることを示す。これは、プログラミング時間をさらに改善する本発明のもう一つの実施形態である。図８Ａにおいて前に参照された状態符号化を仮定すると、状態Ｂは“００”として表され、状態Ｃは“０１”として表され、そしてプログラミングが続けて行われれば、このセルのための上側ページデータが０であることは分かっている。従って、上側ページバッファレジスタを一時的に解放して次のページのための下側ページデータをこのバッファにロードすることができる（そのデータは、新しいページについてプログラミングが始まるときに下側ページバッファに転送される）。状態Ｃのその後のプログラミングの間にプログラミング障害があってデータを書き直す必要があったとしても、コントローラはページｎのための新しいデータをメモリに転送しなくてもよい。下側ページデータを依然として持っていて、ＶRBしきい値を用いてセルの状態を単に読み出すことによって上側ページデータを回復することができる（図１０Ｃを参照）。このイベントのとき、エラーがコントローラに報告され、下側ページｎ＋１のための受け取られたデータは捨てられ、ページｎのための回復されたデータはコントローラにより指示された新しい記憶位置に書き込まれる。前述した米国特許第６，０４６，９３５号（特許文献１６）または第６，６５７，８９１号（特許文献２０）に記載されているような代わりの符号化を用いれば下側ページバッファを解放することができるが、基本原理は同じままである。
【００５７】
パイプライン形部分的ページプログラミング
背景技術の欄で説明したように、フラッシュまたは他のメモリにおいて１つのページが部分的にプログラムされるとき、例えば多数のセクタページまたは多数のプレーンのページが単一のセクタのデータだけでプログラムされるとき、ユーザ（コントローラ）は、同じページの別の部分的プログラミングを開始できるようになるために、プログラミングが終了するまで待たなければならない。このプロセスが図１２に示されている。
【００５８】
図１２の始めの２つのラインは、転送の単位が完全な上側ページデータまたは下側ページデータではなくて１つのページの部分であることを除いて、図１０Ａのそれと同様である。プログラムの単位または（プログラミング）ページは、同時にプログラムされ得る転送の複数のそのような単位（この例ではセクタと解される）から成ると考えられる。組み合わされて１つのページをなすこれらのセクタの各々は、メモリの１つの独立した半自律的アレイ、或いはプレーン、に属すると解される。プレーンは、全て同じメモリチップ上に存在することができ、或いは複数のチップに分散され得る。数個のアレイの部分をつなぎ合わせて複合論理構造を形成するプロセスが、共に２００３年１２月３０日に出願された米国特許出願第１０／７５０，１５７号（特許文献２３）および第１０／７５０，１５５号（特許文献２４）により充分に説明され、その両方が本願明細書において参照により援用されている。図１２の例は、メモリシステムが部分的ページプログラミングを許すこと、４セクタまでが４プレーンに同時にプログラムされ得ること、対応するセクタがここでは０〜３と称されること、を想定している。本発明のこの態様において、メモリセルはバイナリまたはマルチレベルセルであり得る。マルチレベルデータの場合には、データは、単一論理ページに属する多状態データとして或いは前述した上側ページ／下側ページ構成のような多数のページフォーマットで符号化され得る。最後の場合、このセクションで説明されている本発明のパイプライン形の部分的ページプログラミングの態様は前のセクションで説明された上側ページおよび下側ページの重複プログラミングと組み合され得る。
【００５９】
図１２の下側の４つのラインは、どのプレーンが何時どのデータでプログラムされるのかを示す。この例では、ホストはセクタ０，１を順に転送し、メモリはプログラミングを開始する前に両方を蓄積するために待つ。それ以上のデータが到来すると直ぐに示されなければ、或いはシステムが別様にそれ以上のデータを待たないと決定したならば、時点ｔ１でセクタ０，１の部分的ページはプレーン０，１へのプログラミングを開始する。プログラミングは、全てのセルがベリファイするかまたは最大パルス数に達するまで続く。
【００６０】
セクタ０，１の部分的ページがプログラムされている間にこのページに対応するデータの残りの部分が到着し、セクタ２のデータおよびセクタ３のデータが各々時点ｔ２およびｔ３においてメモリに転送される。従来技術はプログラミングが完了する前にプログラミングを中断し後に再開することに配慮していないので、メモリは、セクタ２，３のデータが第２の部分的プログラミング動作でプレーン２，３にプログラムされ得るようになる前にセクタ０，１が時点ｔ４でプログラミングを終えるのを待たなくてはならない。セクタ２および３をプログラムしている間に、セクタ４〜７が転送され、セクタ２，３の部分的ページプログラミングが終わる時点ｔ５から開始して１つの完全なページとして一緒にプログラムされ得る。これはいろいろなセクタが転送されるタイミングの単なる例に過ぎないということに留意すべきである。より一般的には、これらの考慮事項は、ギャップがあって、１つの完全なページを構成するセクタの全部よりは少ない部分が間を置かずに次々に現れ、その後に、その部分的ページがなおプログラムしている間にそのページに属する追加セクタが到着する場合には、何時でも当てはまる。
【００６１】
セクタ２のためのデータは時点ｔ２で存在し、セクタ３のためのデータは時点ｔ３で存在するのであるが、従来技術によればセクタ０，１の部分的ページはこのページのこれらの追加部分を含むように途中で中断された後に再開されることはできなくて、時点ｔ４で終わらなければならず、その後に第２の部分的ページプログラミングが行われなければならない。本発明の１つの態様は、メモリがどのような状況下でもその最大プログラミング帯域幅でプログラムされ得るようにフラッシュメモリにおいてメモリページのパイプライン形の部分的プログラミングを可能にする方法である。１つの特定の方策は、なるべく早くプログラミングを開始することであり、この方法に基いて、ホストが小さなクラスタをなすようにまたは不連続的に書き込みを行う用途においてシステム性能を顕著に高めることができる。
【００６２】
従来技術におけるこれらの問題に対処するためにいろいろな方法があり、その主要なアイデアはページプログラミングのためになるべく多量のデータを集めることである。この場合、いろいろなセクタのためのデータはそのページのための全てのデータが完全ページプログラミングのために集められるまでコントローラバッファまたはメモリデータレジスタにキャッシングされるので、図１２に示されている転送についてはセクタ０〜３の全てが転送されたかまたはホストが不連続的セクタを書き込んでデータが部分的ページプログラミングにより書き込まれるべきであるようになるまで、プログラミングは始まらない。これらの解決策は、長い連続的ホスト書き込み動作の間、最大のプログラミング帯域幅を保つけれども、ホストが小さなクラスタをなすようにまたは不連続的に書き込みを行うのであればゼロまたは役に立たない利点を与える。ホストが長い連続的チャンクをなすデータセクタを書き込まなくて、次のデータ部分が前のものに連続すると期待することが間違っているのであれば、これは付加的な遅延を生じさせる。さらに、この方法は、コントローラが全てのデータをコントローラのバッファに集めるのであれば、より多くのバッファスペースを必要とする。
【００６３】
最初の部分的ページプログラミングは、幾つかのセクタを空白にしたまま、第１のデータ部分で始まる。この最初の部分的ページプログラミングは、次のホストコマンドが受け取られる前に、次のコマンドが連続的セクタ書き込みであるか否かが不明であるときに、始まる。最初の部分的ページプログラミング動作は、その後のコマンドがそのページの空白セクタのためのデータに関するならばその新しいデータ部分が受け取られた直後に完了前に停止され得る。新しいデータが他のページに対応するならば、コントローラは、進行中のプログラミング動作の終了を待つだけでよい。その後にメモリセルのステータスがベリファイされ、そのページはオリジナルデータとその新しいデータとの両方で並列にプログラムされ得る。コントローラが既にプログラムされたセクタのためのデータを含むバッファを解放できるように、メモリは、プログラムされているページの全てのセクタ／プレーンについてのステータスを示すことができる。コントローラは１つのプレーンにおいて次のセクタのプログラミングを他のプレーンにおいて進行中の動作から独立に開始することができ、多数のプレーンメモリは他のプレーンに先んじてプログラミングが完了したプレーンにおいてプログラミングを開始することができる。
【００６４】
これらの種々の副次的態様によれば、コントローラは、後により多くのデータを同じページにプログラムすることを望む場合にありそうな性能ペナルティなしで、始めに部分的プログラミング動作をなるべく早く開始することができる。これは、コントローラが、第１の部分のためのデータを含んでいたデータバッファを、第２の部分のデータプログラミングが完了する前に、解放することをも可能にする。さらに、メモリ構造が許す場合には、コントローラはアクティブでないプレーンでの別のプログラミング動作を開始することができる。
【００６５】
パイプライン形の部分的ページプログラミング動作の第１の実施形態が図１３の線図に示されている。図１１Ａに関して前に論じられたプロセスと同様に、この第１の実施形態は、ページの中断された部分についてプログラミングサイクルが同じ箇所から再開され得ることを想定している。これは、例えば一定パルス振幅を有するパルスプログラミング波形が使用されるとき或いはプログラミングのために一定バイアスが加えられるときには、事実であり得る。各プレーンがそれ自体の階段を持ち得る場合、図９に示されているような階段プログラミング波形にも当てはまり得る。（プレーンの全てが同じ波形を共有する階段プログラミング波形の場合は、以下で図１４Ａおよび１４Ｂに関して記述される。）
【００６６】
図１３において時点ｔ１の前に、セクタ０，１のためのデータがコントローラにより受け取られる。コントローラは、コマンドの実行が成功したこと（書き込みキャッシュがイネーブルされる）およびそれが別のコマンドを実行できることを報告する。セクタ０，１が４プレーンのフラッシュメモリに転送される。その後、部分的ページプログラミングが始まり、プレーン０，１はそれに応じてセクタ０のデータおよびセクタ１のデータでプログラムされ、プレーン２，３は空白データ（ＦＦ）でプログラムされるかまたは全くプログラムされない。本発明は４セクタの単一プレーンメモリに適用され、その場合ＦＦがプログラムされるべきである。単一プレーンデバイスにおいてもプログラミング回路はセルのどのグループ（例えば、セクタ）がプログラムされるかということに関する情報を提供できるので、それらのセルのデータを含むバッファが解放され得る。
【００６７】
時点ｔ２で、新しいコマンドによりセクタ２のためのデータが受け取られる（他の例の場合と同じくこれはどのセクタであってもよく、それは後に同じページの一部としてセクタ０および１に書き込まれる）。コントローラはコマンド実行の成功を報告し、セクタ２はフラッシュメモリに転送される。物理的ページプログラミングは停止され、後に全てのセルについて正しいプログラミングモード（例えば、粗または精密）を選択できるように物理的ページの状態がベリファイされる。その後、部分的ページプログラミングが再開され、プレーン０，１，２が対応的にセクタ０，１，２のデータでプログラムされ、プレーン３は空白データ（ＦＦ）でプログラムされるかまたは全くプログラムされない。粗／精密プログラミングモードの１つの実施例が、米国特許第６，６４３，１８８号（特許文献２５）において開示され、本願明細書において参照により援用されている。
【００６８】
時点ｔ３で、セクタ３のためのデータが新しいコマンドにより受け取られる。コントローラは、利用できるデータバッファがないので、コマンド実行の成功を報告しない。セクタ３はフラッシュメモリに転送される。物理的ページプログラミングは再び停止され、後に全てのセルについて正しいプログラミングモードを選択できるように物理的ページの状態がベリファイされる。その後、完全ページプログラミングが始まることができ、そのときプレーン０，１，２，３は対応的にセクタ０，１，２，３のデータでプログラムグされる。
【００６９】
この実施形態では、時点ｔ４で、プレーン０，１へのセクタ０，１のデータのプログラミングは終わり、コントローラはセクタ０，１のためのデータを含んでいたバッファを解放し、コントローラは最後のコマンドの実行の成功を報告する。時点ｔ４の後、時点ｔ５の前に、セクタ４，５のためのデータがコントローラにより受け取られて４プレーンのフラッシュメモリに転送される。メモリが独立プレーンのプログラミングを許すならば、プレーン０，１のプログラミングが始まることができ、そのときプレーン０，１は対応的にセクタ４，５のためのデータでプログラムされ、プレーン２，３は依然として空白データ（ＦＦ）でプログラムされるかまたは全くプログラムされない。メモリプレーンが独立にプログラムされ得ないのであれば、物理的ページプログラミングは停止され得、後に全てのセルについて正しいプログラミングモードを選択できるように物理的ページの状態がベリファイされ、全てのプレーンのためのプログラミングがセクタ２，３，４，５のためのデータで開始され得る。
【００７０】
時点ｔ６の前に、プレーン２のプログラミングが終わり、コントローラはセクタ２のためのデータを含んでいたバッファを解放し、コントローラは最後のコマンドの実行の成功を報告する。その後、セクタ６のためのデータがコントローラにより受け取られる。コントローラは、利用できるデータバッファがないので、コマンド実行の成功を報告しない。セクタ６はフラッシュメモリに転送される。メモリが独立プレーンのプログラミングを許すならば、プレーン２のプログラミングがセクタ６のデータで始まり、プレーン０，１，３は各々セクタ４，５，３のデータでプログラミングを再開する。メモリプレーンが独立にプログラムされ得ないのであれば、物理的ページプログラミングは停止されるべきであり、後に全てのセルについて正しいプログラミングモードを選択できるように物理的ページの状態がベリファイされ、全てのプレーンのためのプログラミングがセクタ３，４，５，６のためのデータで開始され得る。
【００７１】
時点ｔ７で、プレーン３のプログラミングは終わり、コントローラはセクタ３のためのデータを有するバッファを解放することができる。セクタ４，５，６のプログラミングがまだ開始されていなければ、部分的ページプログラミングが始まることができ、そのときプレーン０，１，２は対応的にセクタ４，５，６のデータでプログラムされ、プレーン３は空白データ（ＦＦ）でプログラムされるかまたは全くプログラムされない。時点ｔ８で、セクタ７のデータが新しいコマンドにより受け取られる。コントローラは、利用できるデータバッファがないのでコマンド実行の成功を報告しない。セクタ７はフラッシュメモリに転送される。物理的ページプログラミングは停止され、後に全てのセルについて正しいプログラミングモードを選択できるようにその状態がベリファイされる。完全プログラミングが始まり、そのときプレーン０，１，２，３は対応的にセクタ４，５，６，７のデータでプログラムされる。
【００７２】
図１４Ａおよび１４Ｂは、パイプライン形の部分的ページプログラミングのための第２の実施形態を示す。この実施形態は、付け加えられたページの追加部分のためのデータでプログラミングが再開されるときにプログラミングプロセスがリセットされなければならない場合を含む点において図１３のそれと異なる。これは、物理的ページのプレーンの全てが同じプログラミング電圧（Ｖpgm ）を共有し、プログラミング波形が図９のそれのような階段である構造において、生じる。この構成では、プレーンのいずれかにおいてワード線のプログラミングサイクルが始まるとそれを不完全に終わらせることができるが、追加データがその物理的ページの他のプレーンに付け加えられるならばＶpgm はその新しいデータのためにリセットされなければならない。従って、同じ電荷ポンプがそのワード線全体に供給をするので、その物理的ページの残りの部分においてもリセットされる。この構成では、例えば、セクタ１をプログラムする動作は必ずしも図１３に示されているようにセクタ２より前に終わるわけではない。図１４Ａおよび１４Ｂの実施形態では、プログラミングが中断されるとき、Ｖpgm はリセットされ、データレジスタは、不完全にプログラムされたセルの状態を読み出すことによってリセットされる。これらの詳細の多くにおいて、図１１Ａ〜１１Ｃの実施形態が図１０の実施形態に関連するのと全く同様に図１４Ａおよび１４Ｂの実施形態は図１３の実施形態に関連する。
【００７３】
時点ｔ２まで、図１４Ａのプロセスは図１３の場合と同じである。セクタ２のデータが転送されると、パルス／ベリファイプロセスの現在のサイクルは完了され、セルの状態がベリファイされ、プログラミング波形はリセットされる。そのリセットは、時点ｔ２においてＶpgm 波形を、それが時点ｔ１で始まったときと同じレベルから、開始させる。パルスの最大数などの、プロセスに関連する適切なパラメータもリセットされる。従って、セクタ３のためのデータが充分早く到着しなければ、セクタ０，１のプログラミングはセクタ２のプログラミングと共にｔ７より早いどこかの時点で終了する。
【００７４】
しかし、この例では、セクタ３のデータが到着して時点ｔ３で転送される。プレーン０〜２の部分的ページのプログラミングは中断され、プログラミングプロセスは時点ｔ２の場合と同じく再びリセットされ、プログラミングは完全ページで再開する。そのリセットの故に、完全ページは時点ｔ７で終わる。これは、データが利用できるようになり次第各セクタのプログラミングがパイプライン形の部分的ページプロセスで始まることを可能にする。セクタ２，３の両方がプログラミングを開始するために時点ｔ４まで待つのではなくて、これらは各々ｔ２およびｔ３から開始することができる。
【００７５】
セクタ０〜３がプログラムされている間に、セクタ４，５が時点ｔ５まで転送され、セクタ６は時点ｔ６まで転送される。第１のページが時点ｔ７で終了すると、第１のページと同じプロセスに従って各々のセクタデータ４〜６でのプレーン０〜２の部分的ページプログラミングが始まる。これは、セクタ０〜３がプログラミングを終える前にバッファスペースが利用可能であることを想定している。そうでなければ、この第１のページのプログラミングが終了し次第、セクタ４〜６がイベント時点ｔ４後に転送される。それらがメモリ上に存在すれば、プレーン０〜２へのセクタ４〜６の部分的ページのプログラミングが始まる。セクタ７のデータが到着したとき、プレーン０〜２の部分的ページプログラミングは中断され、プロセスはリセットされ、イベント時点ｔ８において完全ページプログラミングが再開する。
【００７６】
図１４Ｂは、時点ｔ１から時点ｔ５付近の何処かの時点までの図１４Ａのプロセスのための代表的な波形である。このＶpgm 波形は、図９のそれを目指すように開始し、プレーン０，１の部分的（物理的）ページにプログラムされるべきセクタ０，１の部分的（論理的）ページのために使用される。セクタ２のための追加データはパルス２０１と関連するパルス／ベリファイサイクルの何処かの時点で現れる。プログラミングは中断され、セルの状態が判定され、プログラミングはリセットされてセクタ０〜２のために再開される。同様に、そのページのための残りのデータがパルス２０５に関連するパルス／ベリファイサイクルの何処かの時点で現れたとき、部分的ページプログラミングは中断されて２０７において完全ページで再開され、そして以降、いまや標準的な完全ページプログラミングプロセスで同様である。
【００７７】
前述した実施形態の全てにおいて、上側ＭＬＣページおよび下側ＭＬＣページのパイプライン形部分的ページプログラミングおよび重複プログラミングの両方について（すなわち、同じページにおけるデータ部分の重複プログラミングの“水平”の実施例および“垂直”の実施例の両方について）、“現在のプログラミング動作”または、より簡単には、“同時にプログラムする”という言い方は、１つのページの中の全てのデータのための全てのプログラミングパルスが完全に同時に起こることを必ずしも示唆しないことに留意するべきである。これは、１つのページが複数のプレーンにわたる場合（“メタページ”）にも当てはまる。例えば、１つのメタページが複数のチップにわたる場合、最初のチップにおけるプログラミング動作のプログラミングパルスが先に開始され、その後に第２のチップにおける同じプログラミング動作のためのものが開始されてよい。このような広範囲にわたるメタページは、或るマルチチップ並列構成で便宜上用いられる。これらが利益を提供できる領域は、アドレス変換である、１つのメタページの複数の部分のプログラミングが同時ではない場合、複数のプログラミングのために充分なデータが集められているならば、プログラミングパルスを短い時間を置いて次々に開始させることが出来る場合にオーバーヘッドを最小にするとき（極端な場合、メモリチップの中でデータが１ビットずつプログラムされ得る）、および／または電力消費を最小にするときを含む。
【００７８】
誘電体記憶素子の代替使用
フラッシュＥＥＰＲＯＭメモリセルの前述した例は、電荷記憶素子として伝導性フローティングゲートを利用するタイプのセルに関して説明してきた。しかし、本発明の種々の態様は、本願明細書において参照により援用されている２００４年５月７日に出願された米国特許出願第１０／８４１，３７９号（特許文献２６）に記載されている種々のメモリ技術と関連して使用され得る。例えば、本発明は、フローティングゲートの代わりに個々のメモリセルにおいて記憶素子として電荷捕獲誘電体を使用するシステムにおいても実施され得る。誘電体記憶素子はセルのチャネル領域内で伝導性コントロールゲートと基板との間に挟まれる。この誘電体はフローティングゲートと同じサイズおよび位置を有する個々の素子に分離され得るけれども、そのようにすることは、電荷がそのような誘電体によって局所的に捕獲されるので、普通は不要である。電荷捕獲誘電体は、選択トランジスタ等により占められる領域を除いてアレイ全体に広がることができる。
【００７９】
誘電体記憶素子メモリセルは次の技術論文および特許に一般的に説明されている。すなわち、チャンら，“真の単一トランジスタ酸化物−窒化物−酸化物ＥＥＰＲＯＭデバイス”，ＩＥＥＥ電子デバイスレターズ，第ＥＤＬ−８巻，第３号，１９８７年３月，９３〜９５頁 (Chan et al., “A True Single-Transistor Oxide-Nitride-Oxide EEPROM Device," IEEE Electron Device Letters, Vol. EDL-8, No. 3, March 1987, pp. 93-95)（非特許文献２）、ノザキら，“半導体ディスク用途のためのＭＯＮＯＳメモリセルを有する１Ｍｂ  ＥＥＰＲＯＭ”，ＩＥＥＥ固体回路ジャーナル，第２６巻，第４号，１９９１年４月，４９７〜５０１頁 (Nozaki et al., “A 1-Mb EEPROM with MONOS Memory Cell for Semiconductor Disk Application,” IEEE Journal of Solid State Circuits, Vol. 26, No. 4, April 1991, pp. 497-501) （非特許文献３）、エイタンら、“ＮＲＯＭ：新規な局所トラッピング、２ビットの不揮発性メモリセル”，ＩＥＥＥ電子デバイスレターズ，第２１巻，第１１号，２０００年１１月，５４３〜５４５頁 (Eitan et al., “NROM: A Novel Localized Trapping, 2-Bit Nonvolatile Memory Cell," IEEE Electron Device Letters, Vol. 21, No. 11, November 2000, pp. 543-545) （非特許文献４）、および米国特許第５，８５１，８８１号（特許文献２７）である。これらの論文および特許は、その全体が本願明細書において参照により援用されている。
【００８０】
実用的な電荷捕獲誘電体材料および構成が２つある。１つは、最初に基板上に成長した二酸化ケイ素、その上に堆積された窒化ケイ素、およびその窒化ケイ素層上に成長しかつ／または堆積された酸化ケイ素のもう一つの層を有する３層誘電体（“ＯＮＯ”）である。第２のものは、ゲートと半導体基板表面との間に挟まれたケイ素に富む二酸化ケイ素の単一の層である。この後者の材料は、次の２つの論文で説明されている。すなわち、ディマリアら，“Ｓｉに富むＳＩＯ2 インジェクタとフローティング多結晶ケイ素記憶層を使用する電気的に可変な読み出し専用メモリ”，応用物理学ジャーナル５２（７），１９８１年７月，４８２５〜４８４２頁 (DiMaria et al., “Electrically-alterable read-only-memory using Si-rich SIO2 injectors and a floating polycrystalline silicon storage layer," J. Appl. Phys. 52(7), July 1981, pp. 4825-4842)（非特許文献５）、およびホリら，“不揮発性メモリ用途のためのＳｉ打ち込みゲート−ＳｉＯ２絶縁体を有するＭＯＳＦＥＴ”，ＩＥＤＭ９２，１９９２年４月，４６９〜４７２頁 (Hori et al., “A MOSFET with Si-implanted Gate-SiO2 Insulator for Nonvolatile Memory Applications," IEDM92, April 1992, pp. 469-472) （非特許文献６）である。誘電体記憶素子は、２００２年１０月２５日に出願された米国特許出願第１０／２８０，３５２号（特許文献２８）においてさらに論じられ、本願明細書において参照により援用されている。
【００８１】
本発明は特定の例とその変形例とに関して説明してきたが、本発明が添付されている特許請求の範囲の全範囲内においてその権利が保護されるべきであることが理解できよう。
【図面の簡単な説明】
【００８２】
【図１】本発明の種々の態様が実施されると記載される不揮発性メモリシステムのブロック図である。
【図２】メモリセルアレイがＮＡＮＤタイプのものであるときの図１のメモリアレイの現存する回路および組織を示す。
【図３】半導体基板上に形成されたＮＡＮＤタイプのメモリアレイの、列に沿っての横断面図を示す。
【図４】図３のメモリアレイの、その断面４−４において描かれた横断面図である。
【図５】図３のメモリアレイの、その断面５−５において描かれた横断面図である。
【図６】図２〜５のＮＡＮＤメモリセルアレイの動作電圧の例の表１を提供する。
【図７】図２〜５のＮＡＮＤメモリセルアレイの他の特徴を示す。
【図８Ａ】４状態で操作されたときの図２〜５のＮＡＮＤメモリセルアレイのしきい値電圧の現在の分布例を示す。
【図８Ｂ】図２〜５のメモリセルアレイをプログラムするための多状態手法を示す電圧しきい値レベル分布である。
【図８Ｃ】図２〜５のメモリセルアレイをプログラムするための多状態手法を示す電圧しきい値レベル分布である。
【図９】図２〜５のメモリセルアレイで使用され得るプログラミング電圧信号の例を示す。
【図１０Ａ】従来技術で実行される上側ＭＬＣページおよび下側ＭＬＣページのプログラミングを表す。
【図１０Ｂ】従来技術で実行される上側ＭＬＣページおよび下側ＭＬＣページのプログラミングを表す。
【図１１Ａ】上側ＭＬＣページおよび下側ＭＬＣページのプログラミングを重ねるためのプロセスの第１の実施形態を表す。
【図１１Ｂ】上側ＭＬＣページおよび下側ＭＬＣページのプログラミングを重ねるためのプロセスの第１の実施形態を表す。
【図１１Ｃ】上側ＭＬＣページおよび下側ＭＬＣページのプログラミングを重ねるためのプロセスの第１の実施形態を表す。
【図１２】従来技術で実行され得る部分的ページプログラミングを表す。
【図１３】パイプライン形部分的ページプログラミングプロセスの第１の実施形態を示す。
【図１４Ａ】パイプライン形部分的ページプログラミングプロセスの第２の実施形態を示す。
【図１４Ｂ】パイプライン形部分的ページプログラミングプロセスの第２の実施形態を示す。
【図１】
2008523542.tif 000003
【図２】
2008523542.tif 000004
【図３】
2008523542.tif 000005
【図４】
2008523542.tif 000006
【図５】
2008523542.tif 000007
【図６】
2008523542.tif 000008
【図７】
2008523542.tif 000009
【図８Ａ】
2008523542.tif 000010
【図８Ｂ】
2008523542.tif 000011
【図８Ｃ】
2008523542.tif 000012
【図９】
2008523542.tif 000013
【図１０Ａ】
2008523542.tif 000014
【図１０Ｂ】
2008523542.tif 000015
【図１１Ａ】
2008523542.tif 000016
【図１１Ｂ】
2008523542.tif 000017
【図１１Ｃ】
2008523542.tif 000018
【図１２】
2008523542.tif 000019
【図１３】
2008523542.tif 000020
【図１４Ａ】
2008523542.tif 000021
【図１４Ｂ】
2008523542.tif 000022
【国際調査報告】
2008523542.tif 000023
2008523542.tif 000024