NANDフラッシュメモリデバイスのためのマルチページプログラミングの方法であって、前記NANDフラッシュメモリデバイスに、Mを1より大きい整数とするMページのデータを記憶するステップと、前記NANDフラッシュメモリデバイスにおいて、前記NANDフラッシュメモリデバイスのメモリセルに最大2M通りまでの状態を記憶するためのマルチページプログラミング動作を開始するステップと、を含む方法。前記マルチページプログラミング動作の完了状態を検査するステップをさらに含む請求項1に記載の方法。前記完了状態がマルチページプログラミング動作の完了に対応するときに、前記マルチページプログラミング動作に成功したかどうか判定するステップをさらに含む請求項2に記載の方法。前記記憶するステップが、Mページのそれぞれを、前記NANDフラッシュメモリデバイスの個々のM個のページバッファへ繰り返しロードするステップを含む請求項1に記載の方法。前記Mページのそれぞれをロードする前記ステップが、前記NANDフラッシュメモリデバイスにおいて、後に入力データが続くデータロードコマンドを受け取るステップを含む請求項4に記載の方法。前記入力データが前記データおよびアドレス情報を含む請求項5に記載の方法。前記データロードコマンドが第1のデータロードコマンドであり、前記第1のデータロードコマンドに対応する前記入力データが受け取られた後で第2のデータロードコマンドが受け取られる請求項5に記載の方法。前記第1のデータロードコマンドに対応する前記入力データが受け取られた後で、前記第2のデータロードコマンドが受け取られる前にデータ終了コマンドが受け取られる請求項7に記載の方法。前記Mページの最後のページについてのデータ終了コマンドが、前記Mページの最後のページに対応する入力データが受け取られた後で受け取られる請求項7に記載の方法。前記データ終了コマンドがマルチページプログラムコマンドを含む請求項9に記載の方法。前記マルチページプログラミング動作が、最大2M-1通りまでの状態をプログラムするために2M-1回のプログラミング反復を実行するステップを含み、前記2M通りの状態のうちの1つが消去状態である請求項1に記載の方法。各プログラミング反復が、各ビット線に対応する前記Mページのデータのビットの組み合わせに応答してプログラミングを可能にし、または抑止するように前記各ビット線をバイアスするステップを含む請求項11に記載の方法。各プログラミング反復が、前記ビット線がプログラミングを可能にし、または抑止するようにバイアスされている間に、各プログラミング反復に特有のプログラミングプロファイルを用いて選択されるワード線を駆動するステップを含む請求項12に記載の方法。ワード線に接続され、ビット線に結合されたフラッシュメモリセルを有するメモリアレイと、Mを最低でも2の整数とするMページのデータを記憶し、前記Mページからの各ビット線に対応するビットの組み合わせに応答して、2M-1回のプログラミング反復のそれぞれについてプログラミングを可能にし、または抑止するように前記ビット線をバイアスするためのビット線アクセス回路と、前記ビット線がプログラミングを可能にし、または抑止するようにバイアスされている間に、前記2M-1回のプログラミング反復のそれぞれについてプログラミングプロファイルを用いて選択されるワード線を駆動するための行回路と、を備えるフラッシュメモリデバイス。前記ビット線アクセス回路が、それぞれ前記Mページの1つを記憶するためのM個のデータバッファを含む請求項14に記載のフラッシュメモリデバイス。前記ビット線アクセス回路が、各ビット線に対応する前記M個のデータバッファに記憶された前記Mページのビットの組み合わせに応答してプログラミングを可能にし、または抑止するように前記各ビット線をバイアスするためのビット線バイアス回路を含む請求項15に記載のフラッシュメモリデバイス。前記M個のデータバッファのそれぞれが、1ページのデータの1ビットを記憶するためのデータ記憶回路を含む請求項16に記載のフラッシュメモリデバイス。前記M個のデータバッファの各ビット位置が、各ビット線に対応する前記M個のデータバッファに記憶された前記Mページの前記ビットを受け取るためのデータ検証デコーダと、前記データデコーダの選択される出力に応答して前記ビットを反転させるための反転回路と、を含む請求項17に記載のフラッシュメモリデバイス。それぞれ、消去状態、第1の状態、第2の状態および第3の状態の1つに対応するしきい値電圧を有するようにプログラムすることができる、ワード線に接続され、ビット線に結合されたフラッシュメモリセルを有するメモリアレイと、データの2ページからのビットの特定の組み合わせに応答して、前記第1の状態、前記第2の状態および前記第3の状態のそれぞれについてプログラミングを可能にし、または抑止するように前記ビット線をバイアスする、前記第1の状態、前記第2の状態および前記第3の状態を所定の順序でプログラムするように前記ビット線をバイアスするためのビット線アクセス回路と、前記ビット線が、前記第1の状態、前記第2の状態および前記第3の状態をそれぞれプログラムするようにバイアスされている間に、前記第1の状態、前記第2の状態および前記第3の状態に対応するプログラミングプロファイルを用いて選択されるワード線を駆動するための行回路と、を備えるフラッシュメモリデバイス。フラッシュメモリデバイスをプログラムするための方法であって、データの少なくとも2ページを前記フラッシュメモリデバイスのページバッファへロードするステップと、前記フラッシュメモリデバイスのビット線を、データの前記少なくとも2ページのデータビットの論理状態に応答して、前記ビット線に結合されたフラッシュメモリセルへの異なるしきい値電圧のプログラミングを抑止すること、およびプログラミングを可能にすることの一方を有効にする電圧レベルへバイアスするステップと、前記フラッシュメモリデバイスのワード線を、前記ワード線に並列に接続されている前記フラッシュメモリセルへ前記異なるしきい値電圧をプログラムするために、ある期間にわたって駆動するステップと、を含む方法。複数のフラッシュメモリセルへ異なる状態を並列にプログラムするための方法であって、前記フラッシュメモリセルのそれぞれについて、Mを最低でも2の整数とするMビットのデータを受け取るステップと、前記Mビットに応答して、前記複数のフラッシュメモリセルのそれぞれに記憶すべき2M通りの可能な状態のうちの1状態を決定するステップと、前記複数のフラッシュメモリセルに接続されたビット線を、それぞれが2M通りの可能な状態のそれぞれに対応する所定の電圧レベルを用いてバイアスするステップと、前記複数のフラッシュメモリセルに最大2M通りまでの異なる状態を並列にプログラムするために選択されるワード線を駆動するステップと、を含む方法。フラッシュメモリセルの物理ページへのデータのページの多状態プログラミングのためのビット線変調器回路であって、Mを最低でも2の整数とし、各ビットがデータの前記ページの1つと関連付けられているデータのMビットを受け取り、データの前記Mビットの論理組み合わせに応答して復号選択信号を提供するためのプログラムデータデコーダと、前記復号選択信号に応答して、ビット線を2M段階の電圧レベルのうちの1つへバイアスするためのビット線バイアス回路と、を備えるビット線変調器回路。ワード線に接続され、ビット線に結合されたフラッシュメモリセルを有するメモリアレイと、Mを最低でも2の整数とするMページのデータを記憶するためのM個のページバッファと、それぞれが、データの前記Mページのそれぞれからのデータビットの組み合わせに応答して、2M段階の電圧レベルの1つを対応するビット線に印加する、前記ビット線のそれぞれと、前記M個のページバッファとに結合されたビット線変調器と、データの前記Mページをフラッシュメモリセルの行へプログラムするためのプログラミングプロファイルを用いて、選択されるワード線を駆動するための行回路と、を備えるフラッシュメモリデバイス。したがって、2ビット以上のデータを記憶するセルをプログラムするのに必要とされる時間を短縮し、それによってセルを内部で使用するシステムの全般的性能を向上させることが望ましい。第1の態様によれば、NANDフラッシュメモリデバイスのためのマルチページプログラミングの方法が提供される。方法は、NANDフラッシュメモリデバイスに、Mを1より大きい整数とするMページのデータを記憶するステップと、本態様の一実施形態によれば、方法は、マルチページプログラミング動作の完了状態を検査するステップと、完了状態がマルチページプログラミング動作の完了に対応するときに、マルチページプログラミング動作に成功したかどうか判定するステップとをさらに含むことができる。NANDフラッシュメモリデバイスにおいて、NANDフラッシュメモリデバイスのメモリセルに最大2M通りまでの状態を記憶するためのマルチページプログラミング動作を開始するステップと、を含む。本態様の別の実施形態によれば、記憶するステップは、Mページのデータのそれぞれを、NANDフラッシュメモリデバイスの個々のM個のページバッファへ繰り返しロードするステップを含むことができ、Mページのデータのそれぞれをロードするステップは、NANDフラッシュメモリデバイスにおいて、後に入力データが続くデータロードコマンドを受け取るステップを含むことができる。本実施形態では、入力データは、データおよびアドレス情報を含む。また、本実施形態では、データロードコマンドは第1のデータロードコマンドであり、第1のデータロードコマンドに対応する入力データが受け取られた後で第2のデータロードコマンドが受け取られる。この実施形態では、第1のデータロードコマンドに対応する入力データが受け取られた後で、第2のデータロードコマンドが受け取られる前に、データ終了コマンドが受け取られる。あるいは、Mページのデータの最後のページについてのデータ終了コマンドが、Mページのデータの最後のページに対応する入力データが受け取られた後で受け取られ、データ終了コマンドはマルチページプログラムコマンドを含む。別の実施形態では、マルチページプログラミング動作は、最大2M-1通りまでの状態をプログラムするために2M-1回のプログラミング反復を実行するステップを含み、2M通りの状態のうちの1つは消去状態である。各プログラミング反復は、各ビット線に対応するMページのデータのビットの組み合わせに応答して、プログラミングを可能にし、または抑止するように各ビット線をバイアスするステップを含む。さらに、各プログラミング反復は、ビット線がプログラミングを可能にし、または抑止するようにバイアスされている間に、各プログラミング反復に特有のプログラミングプロファイルを用いて選択されるワード線を駆動するステップを含む。第2の態様では、フラッシュメモリデバイスが提供される。フラッシュメモリデバイスは、メモリアレイと、ビット線アクセス回路と、行回路とを含む。メモリアレイは、ワード線に接続され、ビット線に結合されたフラッシュメモリセルを有する。ビット線アクセス回路は、Mページのデータを記憶し、Mページのデータからの各ビット線に対応するビットの組み合わせに応答して、2M-1回のプログラミング反復のそれぞれについてプログラミングを可能にし、または抑止するようにビット線をバイアスし、Mは最低でも2の整数である。行回路は、ビット線がプログラミングを可能にし、または抑止するようにバイアスされている間に、2M-1回のプログラミング反復のそれぞれについてプログラミングプロファイルを用いて選択されるワード線を駆動する。第2の態様の一実施形態によれば、ビット線アクセス回路は、それぞれMページのデータの1つを記憶するためのM個のデータバッファと、各ビット線に対応するM個のデータバッファ内に記憶されたMページのデータのビットの組み合わせに応答して、プログラミングを可能にし、または抑止するように各ビット線をバイアスするためのビット線バイアス回路とを含む。この実施形態では、M個のデータバッファのそれぞれが、1ページのデータの1ビットを記憶するためのデータ記憶回路を含み、M個のデータバッファの各ビット位置がデータ検証デコーダおよび反転回路を含む。データ検証デコーダは、各ビット線に対応するM個のデータバッファに記憶されたMページのデータのビットを受け取る。反転回路は、データデコーダの選択される出力に応答してビットを反転させる。第3の態様では、フラッシュメモリデバイスが提供される。フラッシュメモリデバイスは、メモリアレイと、ビット線アクセス回路と、行回路とを含む。メモリアレイは、ワード線に接続され、ビット線に結合されたフラッシュメモリセルを有し、各フラッシュメモリセルは、消去状態、第1の状態、第2の状態および第3の状態のうちの1つに対応するしきい値電圧を有するようにプログラムすることができる。ビット線アクセス回路は、第1の状態、第2の状態および第3の状態を所定の順序でプログラムするようにビット線をバイアスする。ビット線アクセス回路は、2ページのデータからのビットの特定の組み合わせに応答して、第1の状態、第2の状態および第3の状態のそれぞれについてプログラミングを可能にし、または抑止するようにビット線をバイアスする。行回路は、ビット線が、第1の状態、第2の状態および第3の状態をそれぞれプログラムするようにバイアスされている間に、第1の状態、第2の状態および第3の状態に対応するプログラミングプロファイルを用いて選択されるワード線を駆動する。第4の態様では、フラッシュメモリデバイスをプログラムするための方法が提供される。方法は、少なくとも2ページのデータをフラッシュメモリデバイスのページバッファへロードするステップと、フラッシュメモリデバイスのビット線をバイアスするステップと、フラッシュメモリデバイスのワード線を駆動するステップとを含む。フラッシュメモリデバイスのビット線は、少なくとも2ページのデータのデータビットの論理状態に応答して、ビット線に結合されたフラッシュメモリセルへの異なるしきい値電圧のプログラミングを抑止すること、およびプログラミングを可能にすることの一方を有効にする電圧レベルへバイアスされる。ワード線は、ワード線に並列に接続されているフラッシュメモリセルへ異なるしきい値電圧をプログラムするために、ある期間にわたって駆動される。第5の態様では、複数のフラッシュメモリセルへ異なる状態を並列にプログラムするための方法が提供される。方法は、フラッシュメモリセルのそれぞれについて、Mを最低でも2の整数とするMビットのデータを受け取るステップと、Mビットのデータに応答して、複数のフラッシュメモリセルのそれぞれに記憶すべき2M通りの可能な状態のうちの1状態を決定するステップと、複数のフラッシュメモリセルに接続されたビット線を、それぞれが2M通りの可能な状態のそれぞれに対応する所定の電圧レベルを用いてバイアスするステップと、複数のフラッシュメモリセルに最大2M通りまでの異なる状態を並列にプログラムするために選択されるワード線を駆動するステップと、を含む。第6の態様では、フラッシュメモリセルの物理ページへのページデータの多状態プログラミングのためのビット線変調器回路が提供される。ビット線変調器回路は、プログラムデータデコーダと、ビット線バイアス回路とを含む。プログラムデータデコーダはMビットのデータを受け取り、Mビットのデータの論理組み合わせに応答して復号選択信号を提供し、Mは最低でも2の整数であり、Mビットのデータのそれぞれはページのデータの1つと関連付けられている。ビット線バイアス回路は、復号選択信号に応答して、ビット線を2M段階の電圧レベルのうちの1つへバイアスする。第7の態様では、フラッシュメモリデバイスが提供される。フラッシュメモリデバイスは、メモリアレイと、M個のページバッファと、ビット線変調器と、行回路とを含む。メモリアレイは、ワード線に接続され、ビット線に結合されたフラッシュメモリセルを有する。M個のページバッファはMページのデータを記憶し、Mは最低でも2の整数である。ビット線変調器は、ビット線のそれぞれと、M個のページバッファとに結合されている。ビット線変調器のそれぞれは、Mページのデータのそれぞれからのデータビットの組み合わせに応答して、2Mの電圧レベルの1つを対応するビット線に印加する。行回路は、Mページのデータをフラッシュメモリセルの行へプログラムするためのプログラミングプロファイルを用いて、選択されるワード線を駆動する。本発明の他の態様および特徴は、以下の本発明の具体的実施形態の説明を添付の図と併せて考察すれば、当業者には明らかになるであろう。本発明は、一般に、フラッシュメモリにおいて1つのプログラミングサイクルでデータの複数の論理ページをセルの1物理ページへプログラムする方法に関するものである。特に、1つのプログラム動作サイクルにおいて複数ビットのデータをフラッシュメモリセルへプログラムするための回路および方法を説明する。フラッシュメモリアレイの1物理ページへプログラムされるべきデータの複数のページが、メモリデバイス上のページバッファまたは他の記憶手段に記憶される。プログラムされるべきセルに接続された選択されるワード線は、異なる時間間隔で所定のプログラムプロファイルを用いて駆動され、各所定のプログラムプロファイルは、消去しきい値電圧を特定の論理状態に対応する特定のしきい値電圧へシフトさせるように構成される。ビット線は、当該の個々のビット線と関連付けられているデータの各ページに属するビットの特定の論理状態の組み合わせに応答して、各時間間隔の間に特定の状態へバイアスされる。好ましい実施形態はNANDフラッシュメモリにおいて実施されるが、本発明は、例えば、NORフラッシュメモリなどといった別種のフラッシュメモリに適用されてもよい。各実施形態を論じるに先立ち、次に現在のMLCプログラミング方式を説明する。一般的なMLCフラッシュメモリアーキテクチャは1セルあたり2ビットのフラッシュメモリである。したがって、現在の1セルあたり2ビットのプログラミング方式を説明する。1セルあたり2ビット方式では、NANDセルストリング内の各ワード線が、第1のページ下位ページおよび第2のページ上位ページとして2論理ページへ復号される。図5を参照すると、論理ページ0を下位ページとすることができ、論理ページ1を上位ページとすることができる。この例では、下位ページが最初にプログラムされ、続いて上位ページがプログラムされる。このシーケンスは図6Aおよび図6Bに例示されている。図6Aは、2ビットフラッシュメモリセルに記憶されるべきデータの第1のビット1または0に対応する論理状態を示すしきい値電圧分布グラフである。プログラミングの前に、メモリブロックのすべてのセルが消去される。図6Aには、消去状態が状態0として示されており、これは本例では負のしきい値電圧である。第1のプログラム動作サイクルで、対応するビットは、記憶されるべきビットの論理状態に応じて、状態1にプログラムされ、または状態0のままに留まる。図6Bは、図6Aでプログラムされたセルへ、上位ページのビットともいう第2のビットのデータ1または0をプログラムするための可能なシーケンスを示すしきい値電圧分布グラフである。後続のプログラミングサイクルで、上位ページに対応するこの第2のビットがプログラムされる。この第2のビットの論理状態は、状態2および状態3がプログラムされるかどうか、ならびにどのようにプログラムされるかを決定する。例えば、状態0および状態1が図4に示した2値割り当てを有し、プログラムされるべき第2のビット最も左のビットが論理1である場合には、状態0も状態1も論理1に割り当てられた上位ビットを有するために、状態2も状態3もプログラムされる必要がない。他方、プログラムされるべき第2のビットが論理0である場合には、状態2または状態3のプログラミングが必要となる。本例の状態2または状態3をプログラムするに際して、最初にプログラムされた下位ビットの論理状態は保持される。したがって、図6Bに示すように、状態0に対応するしきい値電圧が状態3に対応するしきい値電圧へシフトされ、または状態1に対応するしきい値電圧が状態2に対応するしきい値電圧へシフトされる。したがって、図示の論理状態、状態0から状態3までは、上位ビットと下位ビットとの異なる論理組み合わせを符号化する。図6Aおよび図6Bには、1セルあたりデータの2ビットをプログラムするための2サイクルプログラミング方式が示されている。図7に、論理状態ごとのビット割り当てに応じて、しきい値電圧を異なるレベルへシフトさせることができることを示すために、代替の2サイクルプログラミング方式を例示するしきい値電圧分布グラフを示す。図示のどちらの例でも、1セルあたり2ビットをプログラムするために2つの別個のプログラミングサイクルが必要とされる。各プログラミングサイクルは、アドレス情報およびデータのページと共にコマンドを受け取ること、ならびにメモリデバイスに第1のページのデータをプログラムさせ、続いて、データビットが適正にプログラムされていることを保証するためにプログラム検証動作を行うことを伴う。1物理ページあたり2ビットのデータを記憶するように構成された従来のMLCNANDフラッシュメモリでは、下位ページと上位ページとの総ページプログラム時間が異なることに留意すべきである。典型的には、下位ページのページプログラム時間は、以下の理由で、上位ページのページプログラム時間よりもおおよそ30速い。下位ページのプログラミングサイクルは状態0から状態1へのセルプログラミングだけで済むが、上位ページのプログラミングサイクルは、状態2と状態3のどちらのプログラミングが必要とされるか判定するための下位ページデータの読み出し動作をさらに含む。さらに、状態2および状態3についてのプログラミングプロファイルは、より複雑であり、状態1のプログラミングよりも多くの時間を要する。したがって、MLCメモリにおいて複数のページを1物理ページへプログラムするには、SLCメモリにおいて同数の複数のページをそれぞれの物理ページへプログラムするのと比べて、著しく長い時間量を要することになる。フラッシュメモリセルにより長いプログラミング時間をかけると、セルのゲート酸化物を劣化させ、それによってセルの信頼性が低下するおそれがあることは当業者には公知である。この問題は、プロセス技術の絶えざる小型化によってさらに悪化する。最小加工寸法がより小型化し、ゲート酸化物がより薄くなると、より長いプログラミング時間によるプログラムスループットの低下が深刻な問題になる。加えて、デバイス信頼性に影響を及ぼし、デバイス寿命を短縮するプログラムストレスも重大な問題となる。現在の複数ページプログラミング方式の不都合点に対処するための、1つのプログラム動作サイクルにおいてデータの複数のビットをフラッシュメモリセルへプログラムするための回路および方法を説明する。フラッシュメモリアレイの1物理ページへプログラムされるべき複数のページのデータが、メモリデバイス上のページバッファまたは他の記憶手段に記憶される。プログラムされるべきセルに接続された選択されるワード線は、異なる時間間隔で所定のプログラムプロファイルを用いて駆動され、各所定のプログラムプロファイルは、消去しきい値電圧を特定の論理状態に対応する特定のしきい値電圧へシフトさせるように構成される。ビット線は、各時間間隔の間に駆動される選択されるワード線に接続されたメモリセルのプログラミングを可能にし、または抑止するように作用する電圧レベルへバイアスされる。ビット線に印加すべき特定の電圧レベルは、当該の個々のビット線と関連付けられているデータの各ページに属するビットの特定の論理状態の組み合わせに依存する。各実施形態は、1セルあたりmビットのMLCメモリに適用することができ、mは任意の整数とすることができる。1セルあたりmビットのMLCメモリとは、セルの各物理ページがm論理ページを記憶し得ることを意味することに留意する。図8は、本発明の一実施形態による、フラッシュメモリデバイスのブロック図である。図8は、ここで説明するマルチページプログラミングの実施形態に使用される回路ブロックを図示するだけに限定されている。省略された回路ブロックには、先に図1に示したブロックが含まれ得ることを当業者は理解するはずである。図8のメモリデバイスは、複数ページのデータを記憶し、それらのページを1つのプログラムサイクルにおいて選択される物理ページへプログラムする。メモリデバイス100は、メモリアレイ102と、行回路104と、高電圧発生器106と、制御回路108と、ビット線アクセス回路110とを含む。メモリアレイ102は、ビット線とワード線とに結合され、NANDセルストリング構成またはNOR構成で配置されたフラッシュメモリセルを含む。メモリアレイ102はビット線BL[1]~BL[j]を有し、BL[j]はメモリアレイ内の最後のビット線であり、jは整数である。メモリアレイ100はバンクまたはサブアレイとして編成することができる。行回路104は、ワード線を選択するためのバンク、ブロックおよび行アドレスデコーダといったアドレス復号回路と、読み出し、プログラムおよび消去の各動作の間にワード線へ様々な電圧を印加するためのドライバとを含む。高電圧発生器106は、行回路へ外部から提供される電源電圧よりも大きい1つまたは複数の正および/または負の電圧を提供する。これらの高電圧は、メモリデバイス100の他の回路へ提供することができる。制御回路108は、フラッシュメモリデバイス100の様々なアルゴリズムを実行し、フラッシュメモリデバイス100の回路を制御するための適切なタイミングで制御信号をアサートする役割を果たす。特に、制御回路108は、本発明の各実施形態による、マルチページプログラミングのための行回路104およびビット線アクセス回路110の制御を調整するように構成された論理を含む。本発明の各実施形態によれば、ビット線アクセス回路110は、各ビット線を、別々のときに所定の順序で、特定のプログラミングプロファイルを用いて駆動されるワード線と連動して、ビット線アクセス回路110に接続されたメモリセルのすべての可能な状態をプログラムするようにバイアスする。各ビット線は、メモリデバイス100に記憶されたデータの各ページの対応するビット位置からのビットの特定の組み合わせに応答して、特定の時刻にプログラミングを可能にし、または抑止するようにバイアスされる。データのこれらのページは、ビット線アクセス回路110に記憶される。ビット線アクセス回路110は、ページバッファ112と、少なくとも1つのマルチページプログラムバッファ114とを含む。ページバッファ112は、センス増幅器、列復号回路、プログラム検証論理といった回路を有する任意の周知のページバッファとすることができる。あるいは、プログラムされるべきデータのページを記憶するのにデータレジスタを使用することもできる。ページバッファ112は、プログラムされるべき第1のページのデータを記憶するのに使用される。ビット線アクセス回路110は、各ビット線に接続されたメモリセルが、特定の論理状態に対応する最終しきい値電圧へプログラムされていることを保証するためのマルチページプログラミング論理回路を含む。本例では、メモリデバイス100は、1セルあたり2ビットのデータ記憶のために構成されており、よって、プログラムされるべき第2のページのデータを記憶するための1つのマルチページプログラムバッファ114がある。2ページより多いページのデータがメモリデバイス100の物理ページに記憶されることになる代替の実施形態では、さらに多くのマルチページプログラムバッファ114を含めることができる。またバッファ114は、第2のページのデータの第1のビットが記憶されるべき開始列アドレスを受け取るための列復号論理も含む。ページバッファ112および114はどちらも同サイズであり、ページバッファ112は、それぞれ個々のビット線BL[1]~BL[j]に対応する第1のページのデータのデータビットDATA1_[1]~DATA1_[j]を記憶し、jはバッファ112の最後のビット位置を表す整数である。ページバッファ114は、それぞれ個々のビット線BL[1]~BL[j]に対応する第2のページのデータのデータビットDATA2_[1]~DATA2_[j]を記憶する。以下は、本発明の一実施形態による、マルチページプログラミングのために構成されたフラッシュメモリデバイスを制御する方法の考察である。図9は、前述のマルチページプログラム動作のために構成されたフラッシュメモリデバイスを動作させる方法の流れ図であり、この方法は、それだけに限らないが、メモリコントローラまたはメモリコントローラ機能を有するコンピュータシステムを含むホストシステムによって実行することができる。ここで説明する方法に従って制御することができるフラッシュメモリデバイスの一例は、図8に示した構成を有するものとすることができる。図9の方法は300から開始し、そこで、フラッシュメモリデバイスによって認識される適切なコマンドにより、データの最大mページまでが、フラッシュメモリデバイスのページバッファへ繰り返しロードされる。例えば図8の回路実施形態を参照すると、第1のページのデータがページバッファ112に記憶され、第2のページバッファがページバッファ114に記憶される。ステップ302で、1物理ページへプログラムされるべきデータのすべてのページがフラッシュメモリデバイスへロードされた後で、マルチページプログラミング動作がフラッシュメモリデバイスにおいて開始される。マルチページプログラミング動作の開始は、フラッシュメモリデバイスにより認識されるコマンドによって行うことができる。次に、フラッシュメモリデバイスは、論理ページを1物理ページへプログラムするための内部動作を実行する。本発明の各実施形態のメモリデバイスの内部マルチページプログラミング動作については、後でさらに詳細に説明する。ホストシステムは、ステップ304で、状態要求コマンドによって、フラッシュメモリデバイスのプログラミング状態を検査するために、フラッシュメモリデバイスをポーリングする。状態要求コマンドに応答して、フラッシュメモリデバイスは、そのデータ出力ポートから、プログラミング動作が完了されたか否かを示す状態ビットを出力する。ステップ306で、ホストシステムは、戻される状態信号により、フラッシュメモリデバイスによるプログラミングが終了したか否か判定する。プログラミングが完了している場合には、方法はステップ308に進み、そうでない場合、ホストシステムは、その状態要求を後で再発行し、方法はステップ304へ戻る。フラッシュメモリデバイスのマルチページプログラミング動作の成功または失敗の判定がステップ308で行われ、この判定は、ホストシステムによる別の要求を通じて行うことができる。この要求に応答して、フラッシュメモリデバイスは、マルチページプログラミングの成功または失敗を示す別の信号を出力することができる。プログラミングに成功した場合には、方法はステップ310に進み、ホストシステムは、例えば次のマルチページプログラム動作といった、フラッシュメモリデバイスでの別の動作を開始することができる。他方、マルチページプログラミングに失敗した場合には、方法はステップ312に進む。この時点で、データを異なる行アドレスへ、または異なるフラッシュメモリデバイスへ再度プログラムすることができ、あるいはホストシステムは単に、エラーが発生し、データがフラッシュメモリデバイスへ書き込まれなかったという通知を提供する。フラッシュメモリデバイスによって提供される状態信号はフラッシュメモリデバイスのレジスタへ書き込まれ、この信号は特定のコマンドに応答して出力され得ることに留意する。図9の方法は、データのm論理ページをメモリデバイスの1物理ページへプログラムするようにメモリデバイスを制御するための一般的な方法である。多くの現在利用可能なフラッシュメモリデバイスは、データの2論理ページをメモリデバイスの1物理ページへ記憶することができる。図10に、本発明の一実施形態による、2ページプログラム動作のためのフラッシュメモリデバイスを動作させる方法を示す。次に、図10に示す方法を、本発明の各実施形態のメモリデバイスの動作の一般的なシーケンス図を示す図11を参照して説明する。図11には、メモリデバイス入力出力ポートI/O、メモリデバイスの選択されるワード線WL、およびビット線BL[1:j]についての信号トレースが示されている。図10の方法はステップ350から開始し、そこで、第1のページのデータがメモリデバイスへ提供され、メモリデバイスの第1のページバッファに記憶される。図11に示すように、データページ1は、360でI/Oポートにおいて受け取られる。そのすぐ後に、第2のページのデータがステップ352でメモリデバイスへ提供され、メモリデバイスの第2のページバッファに記憶される。図11に示すように、データページ2は、362でI/Oポートにおいて受け取られる。これ以降、ステップ302からステップ312までは、図9について図示し、説明したステップと同じである。マルチページプログラミングが、図11のマルチページプログラム開始コマンド364により、ステップ302で開始される。マルチページプログラミングがメモリデバイス内で開始された後で、選択されるワード線WLは、それぞれ所定のプログラミングプロファイルを用いて、3つの異なる期間において駆動される。状態のうちの1つはデフォルトの消去状態であるため、1セルあたりの4つの可能な状態のうちの3つだけがプログラムされることに留意すべきである。図11では、3つの期間は、ワード線WLが366、368および370においてハイ論理レベルへ駆動されることによって示されている。メモリデバイスにおいては、ワード線WLを、各期間中に特定の時間量にわたって異なる電圧レベルへ駆動することができることに留意すべきである。一実施形態では、各セルへプログラムされたばかりのしきい値電圧を確認するために、各期間の後でプログラム検証動作を実行することができる。図11には、期間366、368および370の間に、それぞれ、状態1、状態2および状態3をプログラムするためにビット線がバイアスされることが示されている。本例示的実施形態では、期間366の終わりにあるメモリセルは状態1ST1に対応する最終しきい値電圧を有することになり、期間368の終わりにあるメモリセルは状態2ST2に対応する最終しきい値電圧を有することになり、期間370の終わりにあるメモリセルは状態3ST3に対応する最終しきい値電圧を有することになる。期間370が経過した後で、ステップ304からステップ312までが実行され、プログラムサイクルは図11の372で終了し、メモリデバイスはその状態レジスタによってメモリコントローラへ、マルチページプログラミング動作に成功したか否かを報告する。図12Aは、本発明の各実施形態によるフラッシュメモリデバイスのためのコマンドおよびデータ入力シーケンスの一例を示すシーケンス図である。新しい図11Aには、メモリデバイスの入力/出力ポートI/Oおよびメモリデバイスによって提供されるレディ/ビジー信号R/Bについての信号トレースが示されている。本例のコマンドおよびデータ入力シーケンスは、2ページマルチページプログラム動作について示されている。図12Aに示すコマンドは、メモリデバイスによって、ここで説明するのと同じ機能を有すると理解される任意の形式で提供することができる。新しい図11Aの左側から開始して、受け取られるべき第1のコマンドは、データロードコマンド380であり、その後に、アドレス情報382および書き込みデータ384を含む入力データが続く。アドレス情報382は、バンク、行および列アドレス情報を含むことができ、書き込みデータ384は、メモリデバイスへプログラムされるべきデータのページである。入力データの終わりを示すためにデータ終了コマンド386が受け取られる。この時点まで、R/B信号は、メモリデバイスがレディ状態にあり、I/Oポート上に現れる情報を受け取ることができることを示すためにハイ論理レベルにある。データ終了コマンド386が受け取られた後で、メモリデバイスは、R/Bがごく短期間にわたってロー論理レベルに下がるビジー状態に入ることができる。R/Bがハイ論理レベルに上がった後で、メモリコントローラは、別のデータロードコマンド388を発行することによりマルチページプログラミング動作を再開することができる。その後にアドレス情報390および書き込みデータ392を含む入力データの第2のセットが続く。アドレス情報は、アドレス情報382の場合と同じ列アドレスを含むことができるが、書き込みデータを第2の論理ページとして指定するために異なる行アドレスを有するはずである。書き込みデータ392の終わりを指示し、メモリデバイスの内部マルチページプログラミング動作を開始するために、最後のデータ終了およびマルチページプログラムコマンド394が受け取られる。コマンド394は、別個のデータ終了コマンドおよび別個のマルチページプログラムコマンドとして提供することができる。その後、R/Bは、論理ページをメモリデバイスの物理ページへプログラムするのに必要とされる期間にわたってロー論理レベルに下がる。図12Bに、図12Aのコマンドおよびデータ入力シーケンスの変形を示す。この実施形態では、メモリデバイスは、コマンド386とコマンド388との間に短いビジー期間を持たなくてよく、データ終了コマンド386の受け取りは不要である。したがって、第2のデータロードコマンド388は、書き込みデータ384のデータ終了コマンドも兼ねることができる。図12Aおよび図12Bは、マルチページプログラミングが可能なメモリデバイスを制御するためのコマンドおよびデータ入力シーケンスの例であるが、メモリデバイスのページバッファのロードに続いて内部マルチページプログラミングが行われることになる任意のコマンドおよびデータ入力シーケンスを使用することができる。前述のように、すべてのビット線に接続されたメモリセルが、1つのプログラミングサイクルにおいてその個々の論理状態へプログラムされ、それによって、データの両方のページを同じ物理ページへプログラムするための後続のプログラミングサイクルを開始する前に、前のプログラミングサイクルにおいて前にプログラムされたデータのページを読み出す必要が回避される。以下は、すべての可能な論理状態をメモリデバイスのメモリセルへプログラムするための異なる技法の考察である。図13は、本発明の一実施形態による、データの複数のページをメモリの1物理ページへプログラムするための方法の概要を示す流れ図である。マルチページプログラミング動作においてプログラムされるべきすべてのページは、メモリデバイスのページバッファへロードされているものと仮定する。さらに、すべてのメモリセルは現在消去状態にあり、例えば、負のしきい値電圧を有し得るものと仮定する。この消去状態を、図14Bに示すように、ST0と呼ぶ。異なる状態が、対応するしきい値電圧の増加の順にプログラムされる。本例では、第1のプログラム状態ST1がプログラムされ、続いて第2のプログラム状態ST2がプログラムされ、次いで第3のプログラム状態ST3がプログラムされる。図13のマルチページプログラミングの方法を、1セルあたり2ビットのプログラミングシナリオの例を参照して説明する。選択されるワード線WLと、4本のビット線BL1、BL2、BL3およびBL4についての信号トレースを示すタイミング図である図14Aと、選択されるワード線と、ビット線BL1、BL2、BL3およびBL4のそれぞれとに接続されたセルについてのしきい値電圧のプログラミングを示す図14Bとを参照する。このシナリオでは、BL1、BL2、BL3およびBL4に接続されたメモリセルは、それぞれ、ST2、ST1、ST3およびST2に対応するしきい値電圧を記憶する。方法はステップ400から開始し、そこで、プログラムされるべき第1の状態ST1n=1についてのビット線バイアスが、すべてのビット線について決定される。より具体的には、ビット線は、ロー論理レベルVSSといったプログラミングを可能にするのに十分な第1の電圧へ、またはハイ論理レベルVDDといったメモリセルのプログラミングを抑止するのに十分な第2の電圧へバイアスされる。図14Aのt1に先行する時間に、選択されるワード線WLは、VSSのイナクティブレベルに維持される。ステップ402に進み、ビット線は、第1のプログラム状態ST1n=1をプログラムし、またはプログラミングを抑止するようにバイアスされる。状態ST2および状態ST3は、状態ST1に対応するしきい値電圧より大きい最終しきい値電圧を有するため、ビット線BL1、BL3およびBL4は、BL2と一緒にVSSへバイアスされる。続いてステップ404で、選択されるワード線は、ロー論理レベルへバイアスされたビット線に接続された任意のフラッシュメモリセルをプログラムするように駆動される。図14Aで、選択されるワード線WLは、時刻t1において、ハイ論理を表すレベルへ駆動される。このハイ論理を表すレベルは、n=1プログラム状態に対応するしきい値電圧をプログラムするよう作用するプログラミングプロファイルの適用を示すのに使用される。実際の使用に際しては、ワード線は、高電圧レベルへ駆動することもでき、公知のワード線プログラミング制御方式に従って段をつけることもできるはずである。状態n=1のためのプログラミングは、状態n=1についての特定のプログラミングプロファイルによって決定される時刻に終了し、そのときに、選択されるワード線はステップ406においてリセットされる。図14Aで、WLのVSSへのリセットは時刻t2に行われる。t1とt2とによって範囲が定められる期間は、プログラムサイクルの第1の反復である。図13には示されていないが、プログラム検証動作時刻t2の後で、メモリセルに記憶されたST1のしきい値電圧を確認するためにプログラム検証動作が実行される。この例では、すべてのメモリセルは適正なしきい値電圧を用いて正常にプログラムされるものと仮定する。理想的には、BL2に接続されたフラッシュメモリセルは、図14Bに示すように、ST1に対応する最終しきい値電圧を有することになる。しかし、BL1、BL3およびBL4に接続されたメモリセルは、この場合、図14Bの破線のしきい値電圧分布曲線で示されるように、ST1に対応する中間のしきい値電圧を有するはずであり、これらの電圧はこれらのビット線に接続されたセルの最終しきい値電圧ではない。図13に戻って、ステップ408で、プログラムされた状態がプログラムされるべき最終状態であるかどうかが判定される。そうである場合、方法はステップ410で終了する。そうでない場合、プログラムされるべき次の状態があり、方法はステップ412に進み、そこでnは、後続の反復においてプログラムされるべき次の状態を示すために増分されるn=2。次いで方法はステップ400に戻り、そこで、ステップST2のためのビット線バイアスが決定される。BL2に接続されたメモリセルはST1の最終状態を有することが意図されているため、プログラム検証回路は、BL2が、現在のプログラミングサイクルにおいてすべての後続のプログラミング反復についてのプログラミングを可能にするためのVSS電圧を受け取ることを抑止する。ST2に対応する第2のプログラム状態n=2をプログラムするために、第2の反復においてステップ402、404および406が繰り返される。図14Aの例では、この第2の反復は、BL1、BL3およびBL4がプログラミングのためにバイアスされる時刻t3とt4との間に行われる。図14Bに示すように、BL1およびBL4に接続されたフラッシュメモリセルは、ST2に対応する最終しきい値電圧を有し、BL3に接続されたメモリセルは、今度は、ST2に対応する中間しきい値電圧を有する。ステップ406でワード線がリセットされた後で、BL1およびBL4は、後続のプログラミング反復においてそれ以上VSS電圧を受け取ることを抑止される。というのは、これらの2本のビット線に接続されたメモリセルは、ST2の最終状態を有することが意図されているからである。ST3に対応するプログラム状態はまだプログラムされていないため、ST3に対応する第3のプログラム状態n=3をプログラムするために、第3の反復においてステップ400、402、404および406の第3の反復が繰り返される。図14Aの例では、この第3の反復は、BL3がプログラミングのためにVSSへバイアスされる時刻t5とt6との間に行われる。図14Bに示すように、BL3に接続されたフラッシュメモリセルは、ST3に対応する最終しきい値電圧を有する。プログラム状態n=3はプログラムされるべき最終状態であるため、プログラミングサイクルはステップ410で終了する。したがって、上記のマルチページプログラミングの方法では、プログラムされている現在のしきい値電圧より大きい最終しきい値電圧を有するメモリセルは、そのしきい値電圧を同時に増加させることになる。したがって、製造プロセス、デバイス形状および状態ごとの所望のしきい値電圧に基づき、特定のプログラム反復についての各ワード線プログラミングプロファイルが、メモリセルのしきい値電圧を所望のしきい値電圧へ変更するような追加的な作用を有するように設計される。例えば図14Aの実施形態では、BL1についての時刻t3とt4との間のプログラム反復は、メモリセルのしきい値電圧を、中間状態ST1から最終状態ST2に対応するしきい値電圧へシフトさせる。代替の実施形態によれば、各ワード線プログラミングプロファイルは、消去しきい値電圧を、最終状態に対応するしきい値電圧へ直接シフトさせ、または変更するように設計することができる。この実施形態は図15Aおよび図15Bに示されている。図14Aおよび図14Bに示した例の場合と同様に、BL1、BL2、BL3およびBL4に接続されたメモリセルには同じ状態がプログラムされるものと仮定する。図15Aおよび図15Bのこの実施形態では、ビット線は、ワード線が特定のプログラミングプロファイルを用いて駆動される1プログラム反復の期間についてプログラミングを可能にするための電圧レベルにバイアスされるにすぎない。図15Aに示すように、BL1は、ワード線が時刻t3において駆動される直前にVSSのロー論理レベルへ駆動され、次いで、ワード線が時刻t4においてデアサートされた直後にVDDのハイ論理レベルへ再度駆動される。図15Bに示すように、ビット線BL1に接続されたメモリセルの消去しきい値電圧は、状態ST2に対応するしきい値電圧へ直接シフトされる。状態ST1、ST2およびST3をそれぞれプログラムするためのビット線BL2、BL3およびBL4についての同様のバイアスシーケンスが図15Aに示されている。したがって、消去しきい値電圧をST1、ST2およびST3に対応する各しきい値電圧へシフトさせるようにそれぞれ作用する3つの特定のワード線プログラミングプロファイルがあり、各ビット線は、他のすべての状態についてのプログラミングを抑止するようにバイアスされながら、当該の特定の状態についてのプログラミングを可能にするようにバイアスされる。図14Aおよび図15Aのマルチページプログラミングの実施形態のための様々なプログラミングプロファイルについての選択されるワード線のタイミングおよび電圧レベルの制御は、高電圧発生器106および行回路104を介して、図8の制御回路108によって提供される。どちらの実施形態でも、ビット線をバイアスするためのタイミングは、制御回路108によって、ページバッファに記憶されたデータのページに応答して制御される。図14Aおよび図15Aに示したマルチページプログラミング方式においてデータをプログラムし、またはデータのプログラミングを抑止するための各ビット線のバイアスは、図8のページバッファ112および114に記憶されたビットの論理状態に応答して行うことができる。例えば、あるビット線に対応するページバッファ112および114に記憶された1対のビットの特定の論理状態は、そのビット線が、選択されるメモリセルのプログラミングを可能にするように作用する電圧レベルへバイアスされるべきことを示す。例えば図4を参照すると、状態1、状態2および状態3はそれぞれ、ビットの少なくとも1つが論理0である1対のビットを有する。したがって、この例では、あるビット線に対応する1対のビットの少なくとも1つの論理0ビットの存在を、プログラミングを可能にするように作用する電圧レベルへビット線をバイアスするために検出することができる。そうではなく、ビットの対の両方が論理1である場合には、ビット線は、当該ビット線に接続された選択されるメモリセルのプログラミングを抑止するように作用する電圧レベルへバイアスされる。図4の状態0ではどちらのビットも論理1であることに留意する。状態0はデフォルトの消去状態であるため、状態0と関連付けられた2進値11を有するビット線は、プログラミングを抑止するようにバイアスされる。図4の状態0、状態1、状態2および状態3に割り当てられた2進値の例は、有利には、図14Aに示したマルチページプログラミング方式においてビット線を制御するのに使用することができる。より具体的には、あるビット線は、当該ビット線についての最後の所望のプログラム状態が特定のプログラミング反復後に検証されている場合には、後続のプログラミング反復においてさらなるプログラミングを抑止するために、各プログラミング反復後にハイ論理レベルへバイアスされる。他方、この特定のプログラミング反復の結果として中間状態の正常なプログラミングが行われる場合には、ビット線は、後続のプログラミング反復においてさらにプログラムするためにバイアスされたままとすべきである。これは、各ビット線に対応するビットの対の論理状態を異なる値へ切り換えることによって行うことができる。一例では、1対のビットの論理状態を、最終状態がプログラムされていることを示す11の2進値へ、または中間状態がプログラムされていることを示す少なくとも1つの論理0を含む2進値へ切り換えることができる。データが最初のデータ状態から1つまたは複数の中間状態へ、最終的には最終状態へ遷移することを確実にするために、データ状態遷移規則を実施することができる。図4に示した2進値割り当ての例と、プログラミングを可能にするための1対のビットにおける少なくとも1つの論理0ビットの存在とを使用して、以下のデータ遷移規則の例を策定することができる。110から11へ200から10へ301から00へ以下の表1に、図14Aに示したビット線BL1、BL2およびBL3についてのこれらのデータ遷移規則の適用の一例を示す。表1には、3回のプログラム反復が、PGM1、PGM2およびPGM3として示されている。各プログラム反復は、個々のビット線に対応するデータバッファに記憶された初期2進値初期値で開始し、これらの値は、プログラム検証に成功した後に新しい2進値新しい値へ切り換えられる。図16は、本発明の一実施形態による、図8に示したビット線アクセス回路110の機能ブロック図である。図16は、特定のビット線と関連付けられた、または特定のビット線に対応するページバッファに記憶されたデータに応答して、選択されるメモリセルのプログラミングを可能にし、または抑止するようにビット線をバイアスするための一般原理を示すためのものであり、適正な動作を可能にするための、ビット線センス増幅器やプログラム検証回路といった他の回路が存在するものと仮定する。そのような他の回路は、回路図を簡略化するために図示されていない。図16には第1のビット線BL[1]および最後のビット線BL[j]と関連付けられた回路だけが示されている。各ビット線は、異なる時間間隔で駆動されるワード線と協調して、ビット線アクセス回路110によってバイアスされる。ページバッファ112は、それぞれ、第1のページのデータの1ビットを記憶するための、複数のデータ記憶回路500を含む。ページバッファ114は、それぞれ、第2のページのデータの1ビットを記憶するための、複数のデータ記憶回路502を含む。AND論理ゲート504に接続されたデータ記憶回路500とデータ記憶回路502との各対は、個々のビット線と関連付けられている。第1のページのデータおよび第2のページのデータのビットを記憶することに加えて、ビット線アクセス回路110は、ビット線に対応するデータの両方のページからのビットの特定の論理状態に応答して、プログラム抑止電圧またはプログラムイネーブル電圧へ各ビット線をバイアスするためのデータ復号回路も含む。ビット線ごとのデータ復号回路は、AND論理ゲート504とデータ検証デコーダ506とを含む。プログラム反復の開始前に、AND論理ゲート504は、データ記憶回路500および502に記憶された論理状態を受け取り、論理AND演算に応答してビット線をバイアスする。ここで説明する例では、データ記憶回路500および502の少なくとも1つが論理0を記憶しているときにビット線がVSSへバイアスされる。データ検証デコーダ506は、データ記憶回路500および502に記憶された論理状態を復号し、データ記憶回路500、502が、プログラミングの成功を示すビット線の検出状態に応答して、新しい2進値を記憶するように、どちらかに記憶された論理状態を選択的に反転するための論理回路を含む。これをプログラム検証回路とみなすことができる。データ記憶回路500および502のどちらかに記憶された論理状態の選択的反転は、所定のデータ遷移規則に従って行われる。本実施形態では、データ記憶回路500および502の反転が、完了されたプログラム反復のプログラム検証に成功したことに応答して実行される。メモリセルが所望のしきい値電圧を有するように正常にプログラムされていない場合には、プログラミングが繰り返される。本例では、任意のプログラム状態についての正常にプログラムされたメモリセルがVSSへの電流路を形成し、それによって、VDDへプリチャージされたビット線をプログラム検証動作の間にVSSへ放電する。そうでない場合、ビット線は、当該ビット線に接続されたメモリセルについてプログラミング反復を繰り返す必要があることを示すために、実質的にプリチャージVDDレベルのままに留まる。したがって本実施形態では、ビット線がプログラム検証動作時にVSSでデータ遷移規則による選択的データ反転が実行される。それ以外の場合は、選択的データ反転は実行されない。図17に、本発明の実施形態による、データ検証デコーダ506、ならびにそのデータ記憶回路500および502との相互接続のさらなる詳細を示す。データ記憶回路500は、論理0反転回路600および論理1反転回路602を含む。データ記憶回路502は、論理0反転回路604および論理1反転回路606を含み、どちらも、それぞれ、回路600および602と同じである。論理0反転回路600は、データ検証デコーダ506から受け取られる復号データ信号に応答して、データ記憶回路500に記憶されたあらゆる論理0状態を論理1状態へ反転する。論理1反転回路602は、データ検証デコーダ506から受け取られる復号データ信号に応答して、データ記憶回路500に記憶されたあらゆる論理1状態を論理0状態へ反転する。反転回路604および606は、反転回路600および602について前述したのと同じ機能を果たす。図17に示すように、反転回路600、602、604および606は異なる復号データ信号を受け取る。データ検証デコーダ506は、AND論理ゲート604、606および608を含む。各AND論理ゲートは、データ記憶回路500から記憶された論理状態を受け取る第1の入力と、データ記憶回路502から記憶された論理状態を受け取る第2の入力とを有する。各AND論理ゲートは反転および非反転の第1および第2の入力の異なる組み合わせを有し、各AND論理ゲートの出力は特定の反転回路600、602、604および606へ提供されることに留意すべきである。反転および非反転の第1および第2の入力の異なる組み合わせのこの構成は、前述のデータ遷移規則の実装形態の一具体例である。図示されていないが、各ビット線は、プログラム検証の間にビット線の低電圧レベルを検出し、データ検証デコーダ506を使用可能にするための検出回路を含む。そうではなく、ビット線の高電圧レベルが検出される場合には、プログラミングに成功しなかったものであり、データ検証デコーダ506は、反転回路600、602、604および606が動作しないように使用不可とされる。次に、図17の回路の動作例を、01の初期2進値がデータ記憶回路500および502に記憶される、前述の表1のBL3のシナリオの例を使用して続ける。したがって、データ記憶回路500は論理0を記憶し、データ記憶回路502は論理1を記憶することを理解すべきである。最初のプログラム反復PGM1に続いて、プログラム検証に成功したと仮定すると、01の初期2進値は、ANDゲート612に、論理1反転回路606へ論理1を出力させる。これに応答して、論理1反転回路606は、データ記憶回路502を切り換え、最初に記憶された論理1が論理0へ変更される。論理0反転回路600はANDゲート608から論理0を受け取っており、したがって、データ記憶回路500を切り換えない。したがって、新しい2進値はデータ記憶回路500および502内の00記憶であり、対応するビット線は、後続のプログラム反復PGM2についてのプログラミングを可能にするためにバイアスされたままである。PGM2のプログラム検証に成功した後で、データ検証デコーダ506は、データ記憶回路500および502からの00の2進値を復号することができる。次に、AND論理ゲート608は論理1を論理0反転回路600へ出力し、論理0反転回路600は、データ記憶回路を切り換えて記憶された論理0を論理1へ変更する。AND論理ゲート610および612の出力はイナクティブな論理0状態であり、したがって、データ記憶回路502には変更が加えられない。ここでは、10の新しい2進値がデータ記憶回路500および502に記憶されており、対応するビット線は、後続のプログラム反復PGM3についてのプログラミングを可能にするためにバイアスされたままである。PGM3のプログラム検証に成功した後で、データ検証デコーダ506は、データ記憶回路500および502からの10の2進値を復号することができる。AND論理ゲート604は論理1を論理0反転回路604へ出力し、論理0反転回路604は、データ記憶回路502を切り換えて記憶された論理0を論理1へ変更する。ここで、データ記憶回路500および502はどちらも論理1を記憶しており、ビット線はプログラミングを抑止するためのVDDへバイアスされている。本例のデータ検証デコーダ506およびその反転回路への接続は、データ記憶回路500および502に記憶された図4のどんな初期プログラマブル状態も、データ遷移規則に従って、次の中間状態または最終状態へ遷移されることを保証する。ここで説明するデータ遷移規則および図16および図17に示した回路実施形態の例は、図4に示した2進値割り当てについてなど、可能な記憶状態についての特定の2進値割り当てに基づくビット線バイアスの背後にある原理を示すために提示するものである。これら4つ状態についての異なる2進値の割り当てを使用することができ、異なるデータ遷移規則のセットを策定することができる。したがって、データ検証デコーダ506およびその反転回路への接続の構成は、そのような代替の2進値割り当ておよびデータ遷移規則に対応するように適応させることができる。ここで説明する実施形態は、1セルあたり2ビットの構成を対象とするが、説明する原理に基づく1セルあたり3ビット以上の構成のために容易に拡張することができる。同じ所望の結果を得るために他の回路技術を使用することもできる。さらに、本例では、論理0を使用してプログラミングを可能にするためのビット線のさらなるバイアスがどのように指示されるかを説明したが、代替の実施形態では、代わりに論理1を使用することもできる。したがって、マルチページプログラミング回路および前述の各実施形態で説明した方法では、データの各論理ページを1物理ページへプログラムするのに複数のプログラムサイクルが必要とされる先行技術と比べて、総プログラム時間が短縮される。これは、すべての論理ページが1つのプログラミングサイクル内でプログラムされるために、本発明のマルチページプログラミングの実施形態では、異なるプログラミングサイクルにおいて異なる論理ページをプログラムするために通常必要とされるタイミングオーバーヘッドがなくなることによるものである。さらに、各論理ページをプログラムするのに別々のプログラミングサイクルを使用するのと比べて、フラッシュメモリセルのプログラミングストレスも低減される。加えて、この能力は、先行技術のプログラミング技術に対して、本明細書で説明するマルチページプログラミングの実施形態を使用するときのプログラミングにも必要である。前述の各実施形態は、すべての状態を1つのプログラミングサイクルにおいてプログラムするのに必要とされる全体時間を短縮するようにさらに改善することができる。例えば、本明細書で説明する図11の実施形態では、複数回のプログラミング反復が、当該の特定の反復について各状態を選択されるセルへプログラムするように順次に実行される。より具体的には、複数の状態またはページをメモリセルへプログラムするための1つのプログラミングサイクルは、異なるビット線電圧を順次に印加し、特定の状態/しきい値電圧をプログラムするための特定のプログラミングプロファイルを用いて選択されるワード線を駆動することを伴う。したがって、プログラミングサイクルの総使用時間は、各プログラミング反復に必要とされる時間の総和である。本代替実施形態によれば、すべての可能な状態を1回のプログラミング反復においてセルへプログラムすることにより、プログラミングサイクル時間を大幅に短縮することができる。言い換えると、各状態をプログラムするための順次のプログラミング反復の代わりに、選択されるワード線がプログラミングプロファイルを用いて駆動されるときに、すべての状態が並列にプログラムされる。これを並列多状態プログラミングという。図18Aは、本発明の一実施形態による、フラッシュメモリデバイスの2ページ並列多状態プログラム動作の例を示すシーケンス図である。このシーケンス図は、データページ1が360でI/Oポートにおいて受け取られ、データページ2が362でI/Oポートにおいて受け取られるという点で、図11に示したシーケンス図と同様のものである。マルチページプログラミングは、図11の場合と同様にマルチページプログラム開始コマンド364により開始されるが、これは、プログラムサイクルが372で終了しているというメモリコントローラへの指示であり、メモリデバイスは、マルチページプログラミング動作に成功したか否かをその状態レジスタによりメモリコントローラへ報告する。しかし、すべての状態をプログラムするのに必要とされる3つの期間366、368および370ではなく、ただ1つの期間700だけで済む。選択されるワード線が所定のプログラミングプロファイルを用いて駆動されるこの期間700の間、ビット線BL[1:j]は、異なる状態に対応するしきい値電圧をプログラムするための特定の電圧レベルへバイアスされ、各電圧レベルは特定の製造プロセスについて較正されている。ワード線のプログラミングプロファイルは、特定の製造プロセスについてのしきい値電圧の有効なプログラミングのために最適化されている。図18Aに示すように、状態ST1、ST2およびST3は、ワード線が期間700において駆動されている間に、特定のビット線電圧レベルに応答してメモリセルへ同時にプログラムされる。図18Bは、ビット線BL1、BL2、BL3およびBL4に接続された、図18Aでプログラムされた4つのフラッシュセルのしきい値電圧の例を示すしきい値電圧を示す分布グラフである。図18Bに示すように、各メモリセルは、期間700の間に、ST0から、ST1、ST2およびST3に対応するそれぞれの最終プログラムしきい値電圧へシフトされる。図19Aおよび図20Aは、フラッシュメモリデバイスの2ページの順次と並列混合のマルチページプログラム動作の例を示す代替のシーケンス図である。これらの実施形態では、複数回のプログラム反復が使用され、プログラムされるべき可能な状態の一部がある反復において並列にプログラムされ、残りの1つまたは複数の状態が第2の反復においてプログラムされる。図19Aにおいて、参照番号360、362、364および372は、図18Aおよび図11について前述したのと同じである。この代替の実施形態では、ある状態ST1が期間702においてプログラムされ、続いて、期間704において状態ST2およびST3の並列多状態プログラミングが順次に行われる。期間702で行われる第1のプログラミング反復の後で、状態ST2およびST3を記憶するように指定されたメモリセルは、状態ST1に対応する同じしきい値電圧を有することになることに留意する。続く期間704で、状態ST1に対応するしきい値電圧を有するセルは、状態ST2およびST3に対応するようにさらに調整される。図19Bのしきい値電圧分布グラフに示すように、ST0の状態に対応する消去しきい値電圧から開始するメモリセルは、期間702でST1に対応するプログラムしきい値電圧へシフトされる。期間704において、ビット線BL1、BL3およびBL4に接続されたメモリセルは、ST2およびST3に対応する最終しきい値電圧へシフトされるST1に対応するそれぞれの中間しきい値電圧を有する。図20Aの実施形態では、状態ST1およびST2の並列多状態プログラミングが期間706において行われ、続いて、期間708において残りの状態ST3の多状態プログラミングが順次に行われる。期間706で行われる第1のプログラミング反復の後で、状態ST3を記憶するように指定されたメモリセルは、この例では状態ST2であるより高いしきい値電圧を有する状態に対応する同じしきい値電圧を有することになることに留意する。続く期間708で、ST2に対応するしきい値電圧を有するセルは、状態ST3に対応するようにさらに調整される。図20Bのしきい値電圧分布グラフに示すように、BL2に接続されたメモリセルは、期間706において、その消去しきい値電圧をST1に対応するしきい値電圧へシフトさせる。また期間706には、BL1、BL3およびBL4に接続されたメモリセルも、それぞれの消去しきい値電圧を、ST2に対応するしきい値電圧へシフトさせ、これにはBL3に接続されたメモリセルも含む。期間708において、ビット線BL3に接続されたメモリセルは、ST2に対応するその中間しきい値電圧を、ST3に対応する最終しきい値電圧へシフトさせる。図19A、図19B、図20Aおよび図20Bに示すどちらの代替の実施形態においても、少なくとも2つの状態が並列にプログラムされる。これらの実施形態は非限定的であり、代替の実施形態は、第1のプログラム反復で少なくとも2つの状態を並列にプログラムさせ、続いて、第2のプログラム反復で少なくとも別の2つ状態を並列にプログラムさせることを含み得ることに留意すべきである。さらに、並列多状態プログラミング反復と単一状態プログラミング反復との組み合わせを使用することもできる。図18A、図19Aおよび図20Aに示す実施形態について、図12Aおよび図12Bに示したコマンドおよびデータ入力シーケンスを使用して、メモリデバイスにデータのページをロードし、多状態並列プログラミング動作または2つの順次と並列混合の多状態プログラム動作のうちの1つを開始することができる。本明細書で開示する並列多状態プログラミングの実施形態は、ビット線電圧変調と呼ばれる、ビット線を特定の電圧へバイアスすることによって実現される。前述のように、ビット線に接続されたメモリセルは、ビット線がバイアスされている、すなわち設定されている論理レベルに応じて、プログラミングを抑止され、または選択されるワード線によるプログラミングを可能とされる。参照により本明細書に組み込まれる同一出願人が所有する米国特許第7511996号明細書には、メモリセルのプログラミングを抑止するための実施形態が記載されており、これらの実施形態では、プログラミングのために選択されるメモリセルはそのビット線を、例えば0Vなどといったプログラム電圧へバイアスさせ、プログラムされるべきでないメモリセルは、そのビット線を、例えばVCCなどのプログラム抑止電圧へバイアスさせる。米国特許第7511996号明細書記載されているそのような一実施形態の記述は、まず、ビット線に印加されるプログラム抑止電圧がどのようにして選択されるメモリセルのプログラミングを抑止し得るかの理解を容易にするために提供されるものである。図21は、米国特許第7511996号明細書のプログラム抑止方法の一実施形態を示す流れ図である。本考察において、上位ワード線とは、選択されるメモリセルとビット線との間のワード線およびメモリセルをいい、下位ワード線とは、選択されるメモリセルと電源線との間のワード線およびメモリセルをいう。図21のプログラム抑止方法はステップ800から開始し、そこで、ビット線は抑止電圧またはプログラム電圧を用いてバイアスされる。ここで説明する例では、ビット線はVCCの抑止電圧へ駆動されるものとする。ステップ802で、選択されるワード線および上位ワード線は第1のパス電圧へ駆動される。第1のパス電圧は、上位ワード線に対応する各メモリセルを、それがプログラム状態であるかそれとも非プログラム状態であるかにかかわらず、オンにするのに十分な高さである。ステップ802と同時に、下位ワード線はステップ804で第2のパス電圧へ駆動される。本方法の実施形態によれば、第1のパス電圧と第2のパス電圧とは相互に同一とすることもでき、第2のパス電圧を第1のパス電圧より低くすることもできる。次いでステップ806で、選択されるワード線はプログラミング電圧へ駆動され、続いてステップ808で、選択されるメモリセルをNANDストリングの非選択のメモリセルから分断するための隔離動作が行われる。図22AはNANDストリング900の簡略化した断面図であり、これは当業者には周知のはずである。NANDストリング900は、ワード線WL0~WL31に接続されたゲートを有するメモリセル902と、NANDストリング900をビット線906に結合するためのストリング選択トランジスタ904と、NANDストリング900を電源線910に結合するための接地選択トランジスタ908とを含む。NANDストリング900はPPウェル内に形成され、PPウェルはそれ自体P基板のNウェル内に形成される。NANDストリングメモリセルトランジスタのソース/ドレイン領域はn拡散領域である。図22Aには、本発明の一実施形態による、特定のワード線に印加される相対電圧レベルを示す注釈が含まれている。物理的NANDストリングは先行技術と変更されないままであることに留意する。図22Aに示す例では、WL29に接続されたメモリセルはプログラミングのために選択され、プログラムされるべきデータは論理1状態であるものと仮定されている。消去状態は論理1であるため、プログラミングは抑止される。図22Bは、図22Aにおいて電圧が印加されるシーケンスをさらに示すシーケンス図である。期間T1は初期状態であり、そこですべてのメモリセル902のゲート、信号SSL、および信号GSLは0Vへバイアスされ、メモリセルをプログラムするためのビット線電圧およびメモリセルのプログラミングを抑止するためのビット線電圧が印加される。CSLは、0VまたはVCCへバイアスすることができるが、本例では漏れを最小限に抑えるために好ましくはVCCへバイアスすることができる。本例では、ビット線906はプログラミングを抑止するようにVCCへバイアスされる。期間T2において、信号SSLは、ビット線電圧をNANDストリング900へ結合するためにVCCへバイアスされる。図22Aに示すNANDストリング900では、ストリング選択トランジスタ904は、ビット線906に接続されたそのドレイン端子およびそのゲートがどちらもVCCへバイアスされるために、電気的にオフになる。より具体的には、ストリング選択トランジスタ904は、そのソースが、おおよそVCCからトランジスタのしきい値電圧を引いた電圧まで上がった後でオフになる。期間T3の間に、すべてのワード線上位、下位および選択されるワード線はパス電圧V2へ駆動され、V2はVCCより高くなるように選択される。これは、NANDストリング900の全チャネルを1次昇圧電圧へ昇圧する作用を有する。期間T4の最初に、選択されるワード線WL29はプログラミング電圧V1まで上げられ、隣接するワード線WL28およびWL30は、分断電圧V3まで下げられる。これらはそれぞれ、図5のステップ104とステップ106とに対応する。V1の電圧レベルはV2より高くなるように設定され、V3の電圧レベルはV1およびV2より低くなるように設定される。WL28およびWL30のワード線電圧をV3まで下げることの別の利点は、WL29に接続された制御ゲートとWL28およびWL30に結合された浮遊ゲートとの間の容量結合を補償することである。WL29がV1へ駆動される際に、容量結合の作用により浮遊ゲート電圧が増加し、それによって、選択されるメモリセルに隣接したメモリセルにおけるパス妨害の確率が高まる可能性がある。したがって、ワード線電圧のV3への低減により浮遊ゲート電圧が低減されることになる。図22Aに示す実施形態では、V1、V2およびV3の電圧レベルを以下の基準に従って選択することができる。V1は、0Vへバイアスされるビット線に結合されたメモリセルにおけるF-Nトンネリングを促進するのに十分な高さの電圧レベルであるべきである。V2の電圧レベルは、以下の3つの基準を満たすように選択されるべきである。第1に、V2は、非選択のセルのチャネルが導通状態とされるよう保証するのに十分な高さであるべきである。第2に、電圧V2が期間T4の間にWL28およびWL30について電圧V3に下がるときに、WL28およびWL30に接続されたメモリセルはオフになり、期間T4の間中オフのままに留まる。これが達成される局所的分断効果である。第3に、選択されるワード線WL29が電圧V2からプログラム電圧V1へ上がるときに、選択されるセルのチャネルを所望の電圧へ、すなわち、2次昇圧電圧レベルへ昇圧することができる。V3は、0Vビット線電圧を、非選択のセルを経て選択されるセルのドレインまで通すのに十分な高さの電圧レベルであると同時に、WL29に接続された選択されるセルに隣接するWL28およびWL30に接続されたメモリセルのチャネルを実質的にオフにするのに十分な低さであるべきである。ここで説明するプログラム抑止方式は、プログラム反復時にワード線を駆動する前にビット線に印加される電圧を変動させることにより、前述の並列多状態プログラミングのために変更することができる。前述のプログラム抑止実施形態では、VCCのプログラム抑止電圧の印加は、ビット線がVCCへバイアスされるときに、V1へ駆動される選択されるワード線と選択されるセルのチャネルとの間の電界強度を最小化する。本実施形態によれば、ビット線をVCCとVSSとの間の電圧へバイアスすることにより、この電界強度は完全なVCC抑止状況と比べて増大され、それによって、セルのしきい値電圧を正にシフトさせることができる。しかし、しきい値電圧がシフトするシフト量は、ビット線がVSSへバイアスされた場合のシフト量よりも小さくなる。したがって、セルの一部が完全にプログラムされることを抑止される。図23は、1セルあたり2ビットの記憶方式についての並列多状態プログラミング実施形態のためのビット線の電圧バイアスの例を示す、4つのフラッシュメモリのNANDセルストリングの回路図である。図23に示すNANDセルストリングの各要素は、前に図22Aに示したNANDセルストリングについて説明したものであり、したがって、同じ要素を指定するのに同じ参照番号を使用する。各NANDセルストリングはそれぞれのビット線BL0、BL1、BL2およびBL3に接続されている。図示している例では、BL0はVCCへバイアスされ、BL1はVBL1へバイアスされ、BL2はVBL3へバイアスされ、BL3はVSSへバイアスされる。本実施形態によれば、すべてのビット線は、ワード線が駆動される前に、これら4つの電圧のうちの1つを用いて同時にバイアスされる。次いで、ワード線は、例えば、前述のプログラム抑止方式について図22Bに概要を示した電圧とシーケンスとを用いて、プログラミングを実施するために駆動される。ある電圧がプログラミングを抑止するのに使用され、別の電圧がプログラミングを可能にするように使用される原理の下で動作する他のプログラム抑止方式を、本実施形態で教示する並列多状態プログラミングのために適応させることができる。1セルあたり2ビットの記憶方式の一例では、ビット線を、VCCのプログラム抑止電圧、およびVSS、VBL1、VBL2のプログラム電圧のうちの1つへバイアスすることができ、VBL1およびVBL2はどちらもVSSより大きく、VCCより小さい。例えば、VBL1を1ボルトとすることができ、VBL2を2ボルトとすることができる。VBL1およびVBL2についての具体的な電圧レベルは、製造プロセス、所望のしきい値電圧、選択されるワード線についてのプログラミングプロファイルといった要因に基づいて決定することができる。前述のものと同じ原理を、2ビットより多くのビットがメモリセルに記憶される実施形態に適用することができる。ビット線の特定の電圧レベルへのバイアスは、特定のビット線に対応するデータの各ページの各ビットの論理状態に依存する。図24は、本発明の一実施形態による、並列多状態プログラミングのためにビット線電圧レベルを変調するためのビット線アクセス回路のブロック図である。ビット線アクセス回路1000は、ページバッファ1002と、少なくとも1つのマルチページプログラムバッファ1004とを含む。ページバッファ1002は、それぞれ、第1のページのデータの1ビットを記憶するための、複数のデータ記憶回路1006を含む。ページバッファ1004は、それぞれ、第2のページのデータの1ビットを記憶するための、複数のデータ記憶回路1008を含む。BL変調器1010に接続されたデータ記憶回路1006とデータ記憶回路1008との各対は、個々のビット線と関連付けられている。ビット線ごとのデータ復号回路は、BL変調器1010とデータ検証デコーダ1012とを含む。要素1002、1006、1008および1012は、図16に示した要素112、114、504、502および506と実質的に同じである。図24の実施形態と図16の実施形態との主な違いはBL変調器1010であり、BL変調器1010は、特定のビット線と関連付けられたデータの2ページのデータビットを復号し、ビット線を所定の電圧を用いてバイアスし、データ検証デコーダ1012の論理を復号する役割を果たす。メモリアレイ内のあらゆるBL変調器1010が、プログラム反復が開始される前に、同時にそれぞれのビット線をバイアスする。図25は、BL変調器1010の機能ブロックを示す概略図である。BL変調器1010は、プログラムデータデコーダ1100と、ビット線バイアス回路1102とを含む。プログラムデータデコーダ1100はDATA1_[1]と呼ばれる第1のページバッファからのデータビットと、DATA2_[1]と呼ばれる第2のページバッファからのデータのビットとを受け取る。DATA1という用語はそのビットが第1のページバッファからのものであることを指示し、DATA2という用語はそのビットが第2のページバッファからのものであることを示す。[1]という用語はデータのページ内のビット位置を示す。プログラムデータデコーダ1100は、データの2ビットを復号して選択信号S0、S1、S2およびS3を提供し、その場合、DATA1_[1]とDATA2_[1]との任意の組み合わせについてただ1つの選択信号だけがアクティブ論理レベルにある。これらの選択信号は、ビット線バイアス回路1102によって、所定の電圧VCC、VSS、VBL1またはVBL2のうちの1つをビット線BL[1]へ通すために使用され、VCC>VBL2>VBL1>VSSである。本実施形態では、各選択信号は対応する所定の電圧へマップされる。ここで示す実施形態は、1セルあたり2ビットの記憶方式のために構成されており、この方式は1セルあたり3ビット以上の記憶方式のために拡張することができる。したがって、DATA1_[1]とDATA2_[1]との可能な組み合わせごとに、BL変調器1010はそのビット線を選択し、所定の電圧VCC、VSS、VBL1またはVBL2のうちの1つへバイアスする。各電圧は電圧発生器によって発生させることができる。図26は、図25に示したプログラムデータデコーダ1100の一実施形態を示す回路図の例である。プログラムデータデコーダ1100は、それぞれ、ページバッファデータビットDATA1_[1]およびDATA2_[1]を受け取るための第1の入力および第2の入力を有する、AND論理ゲート1200、1202、1204および1206を含む。各AND論理ゲートは選択信号S0、S1、S2およびS3のうちの1つを提供する。AND論理ゲートの第1入力と第2の入力とは、DATA1_[1]とDATA2_[1]とのどんな組み合わせについても選択信号のうちのただ1つだけがアクティブハイ論理レベルへ駆動されることを保証するために異なった構成とされる。図26に示す論理ゲート構成の例は、使用され得る可能な構成の1つである。異なる種類の論理ゲートおよび入力構成を使用して、ビット線へ印加するための特定の電圧を選択するためのものである、図26のAND論理ゲート構成によって示されるのと同じ結果を得ることもできる。図27は、図25に示したビット線バイアス回路1102の一実施形態を示す回路図の例である。ビット線バイアス回路1102は、pチャネルトランジスタ1300と、nチャネルトランジスタ1302、1304および1306とを含む。pチャネルトランジスタ1300は、インバータ1308による、ハイ論理レベルにあるS0に応答してビット線BLをVCCへ接続する。nチャネルトランジスタ1302は、ハイ論理レベルにあるS1に応答してビット線BLをVBL1へ接続する。nチャネルトランジスタ1304は、ハイ論理レベルにあるS2に応答してビット線BLをVBL2へ接続する。nチャネルトランジスタ1306は、ハイ論理レベルにあるS3に応答してビット線BLをVSSへ接続する。したがって、プログラムデータデコーダ1100によって提供される選択信号S0、S1、S2およびS3を介して、所定の電圧のうちの1つをビット線BLへ印加することができる。異なる回路構成を使用して、選択信号に応答して異なる電圧をビット線へ提供することもできる。図26に示した回路実施形態は、図18Aの並列多状態プログラミングの実施形態のために使用することができるが、別の実施形態によれば、回路の変更バージョンが、図19Aの順次と並列混合のマルチページプログラムの実施形態のために使用されるはずである。そのような代替の実施形態では、プログラムデータデコーダ1100の論理は、状態ST1をプログラムするための第1のプログラミング反復において、状態ST2またはST3を記憶するように指定された任意のメモリセルがその個々のビット線を、本例ではVBL1であるST1に対応する同じビット線電圧へバイアスさせるように構成されるはずである。これは、この所望の結果達成するように論理回路を設計することによって行うこともでき、あるいは、ビット線バイアス回路1102のトランジスタ1304および1306を、第1のプログラミング反復において、それぞれ、VBL2およびVSSの代わりにVBL1を受け取るように構成することもできる。状態ST2およびST3を並列にプログラムするための次のプログラミング反復においては、図26の回路を前述のように使用することができる。図20Aの順次と並列混合のマルチページプログラムの実施形態は、プログラムデータデコーダ1100の論理への同様の変更を必要とするはずである。この場合には、状態ST1およびST2が最初のプログラム反復においてプログラムされる。しかし、状態ST3を記憶するように指定されたメモリセルは、第1のプログラム反復において、中間のST2状態へプログラムされるはずである。したがって、プログラムデータデコーダ1100の論理は、状態ST1およびST2をプログラムするための第1のプログラミング反復において、状態ST3を記憶するように指定された任意のメモリセルがその個々のビット線を、本例ではVBL2であるST2に対応する同じビット線電圧へバイアスさせるように構成されるはずである。この場合もやはり、論理復号回路をこの所望の結果を達成するように設計することもでき、あるいは、ビット線バイアス回路1102のための電圧レベル切り換えを使用することもできる。本明細書で説明するビット線アクセス回路1000の実施形態は、すべての可能な状態が同時にプログラムされる図18Aに示した完全並列多状態プログラミングの実施形態を実行するのに使用することができる。他の1つの状態がプログラムされる別のプログラミング反復の前または後に、並列多状態プログラミングがいくつかの状態について実行される図19Aおよび図20Aの実施形態について、ビット線アクセス回路1000の前述の実施形態を、図16および図17の実施形態の教示に従って変更することができる。そのような変更は、図18Aに示した完全並列多状態プログラミングの実施形態と、図19Aおよび図20Aに示した順次と並列混合のマルチページプログラムの実施形態とに特有のプログラム検証動作のための回路を適応させる。以下は、ここで説明する多状態プログラミングの実施形態のためのプログラム検証の考察である。各プログラミング反復において1つの状態がプログラムされる前述の実施形態では、所望のしきい値電圧がメモリセルへ適正にプログラムされていることを保証するために、各反復後にプログラム検証動作が実行される。ここで説明する多状態プログラミングの実施形態では、1回のプログラミング反復において少なくとも2つの状態が同時にプログラムされる。したがって、少なくとも2つの状態に対応するしきい値電圧が個々のセルへプログラムされていることを検証するのに、新しいプログラム検証方式が使用される。図18Aの実施形態では、すべての状態が並列にプログラムされるが、プログラム検証は状態ごとに順次に実行される。本実施形態では、ビット線に接続されたメモリセルが正常にプログラムされていると検証されたときに、当該ビット線に対応する2つのデータバッファビットは、それ以上のプログラミングを抑止するための消去状態に対応する2進値11へ変更される。しかし、検証されているプログラム状態についてのデータバッファビットだけが消去状態に切り換えられるべきである。言い換えると、検証されていない状態についてのデータバッファビットは、別のプログラム状態についてのプログラム検証動作の間に消去状態に切り換えられるべきではない。図16の実施形態について前述したように、データ検証デコーダ506はプログラム検証動作においてデータバッファのレジスタビットを切り換える。したがって、この回路は、それについてのプログラム検証動作が現在実行されている状態へのプログラミングの間にバイアスされるビット線について使用可能とされるべきである。図28に、図18Aの多状態プログラミングの実施形態について、図24の実施形態のデータ検証デコーダ1012を選択的に使用可能にし、または使用不可にするための制御回路の回路図実施形態を示す。プログラム検証制御回路1400は、AND論理ゲート1402、1404および1406と、OR論理ゲート1408とを含む。各AND論理ゲートは、図26に示したプログラムデータデコーダ1100によって提供される選択信号S1、S2またはS3のうちの1つを受け取るための第1の入力を有する。各AND論理ゲートは、選択信号S1、S2およびS3にそれぞれ対応する検証制御信号検証S1、検証S2および検証S3を受け取るための第2の入力を有する。AND論理ゲート1402、1404および1406の出力は、対応するデータ検証デコーダ1012を使用可能にする出力を提供するために、ゲート1408によってその論理和ORが取られる。状態S0はプログラム検証される必要のない消去状態であるため、状態S0についてのAND論理ゲートは不要であることに留意する。データ検証デコーダ1012は、プログラム検証制御回路1400からのイネーブル信号に応答するように構成されているものと仮定する。動作に際して、プログラム検証制御回路1400は、それぞれ特定の状態についてのプログラム検証動作に対応する異なる期間にアクティブハイ論理レベルにある検証制御信号検証S1、検証S2および検証S3を受け取る。例えば、状態S1を検証するためにまず検証S1をアサートし、続いて状態S2を検証するために検証S2をアサートすることができる。前述のように、プログラムデータデコーダ1100は、DATA1_[1]とDATA2_[1]との任意の所与の論理状態の組み合わせについて選択信号S0、S1、S2およびS3のうちのただ1つだけをアサートする。したがって、各検証制御信号検証S1、検証S2および検証S3が特定の状態を検証するためにアサートされる際には、当該の特定の状態をプログラムするためにバイアスされたビット線と関連付けられたデータ検証デコーダ1012だけが使用可能とされ、他のすべてのデータ検証デコーダ1012は使用不可とされる。図28に示す特定の論理ゲート構成は1つの可能な構成の例である。同じ結果を達成するために、他の制御信号と組み合わせた選択信号を使用してデータデコーダ1012を使用可能にするための代替の論理ゲート構成を使用することもできる。使用可能にされた後で、データ検証デコーダ1012は、ビット線に対応するページバッファのデータビットの対を、当該の特定の状態のプログラミングに成功したとみなされる場合には、消去状態へ切り換えるように構成される。そうでない場合、データビットの対は変更されない。したがって、正常にプログラムされなかったメモリセルは、再度プログラムするために、それらに対応するビット線を、選択信号S1、S2およびS3によって選択される特定の電圧レベルへバイアスさせることになる。本実施形態では、データ検証デコーダ1012は、状態ST1、ST2およびST3に対応するデータビットの対を、例えば11などといった、消去状態に対応する論理レベルへ切り換えるように構成された論理回路を含む。並列多状態プログラミング実施形態のプログラム検証のための技法が説明されたので、図19Aおよび図20Aの順次並列混合のマルチページプログラミングの実施形態のためのプログラム検証の技法は、図16の順次プログラミングの実施形態で使用されるプログラム検証の実施形態と、図22の並列多状態プログラミングの実施形態についてのプログラム検証の実施形態との組み合わせであることが認められる。図19Aの実施形態から開始すると、プログラムされるべき最初の状態は状態ST1であり、続いて、状態ST2およびST3の並列プログラミングが行われる。しかし、状態ST2およびST3を記憶するように指定されたメモリセルは第1のプログラミング反復においてプログラムされ、したがって、中間状態として状態ST1を記憶している。この第1のプログラミング反復は、すべてのセルが、最終状態として、または中間状態として状態ST1を記憶するようにプログラムされる図14Bに示したプログラミング反復と同様のものである。したがって、前述の図14Bについてのプログラム検証の技法を使用することができる。次のプログラミング反復において、中間状態は最終状態へシフトされる。したがって、第1のプログラミング反復についての正常なプログラム検証動作の一部として、データ検証デコーダ1012の論理回路は、i状態ST1に対応するデータビットを消去状態へ切り換え、または、ii状態ST2に対応するデータビットを、ビット線電圧VBL2を選択するための組み合わせへ切り換え、または、iii状態ST3に対応するデータビットを、ビット線電圧VSSを選択するための組み合わせへ切り換えるように構成される。したがって各ビット線は、第2のプログラミング反復で状態ST2およびST3を並列にプログラムするための新しい電圧レベルへバイアスされる。図18Aの実施形態に用いられるプログラム検証の技法を、第2のプログラミング反復に使用することができる。図20Aの実施形態では、状態ST1およびST2が第1のプログラミング反復において並列にプログラムされ、続いて、第2のプログラミング反復において状態ST3がプログラムされる。第1のプログラム反復には、図18Aの実施形態について説明したプログラム検証の技法を使用することができる。第1のプログラミング反復についての正常なプログラム検証動作の一部として、データ検証デコーダ1012の論理回路は、i状態ST1またはST2に対応するデータビットを消去状態へ切り換え、またはii状態ST3に対応するデータビットを、ビット線電圧VSSを選択するための組み合わせへ切り換えるように構成される。したがって各ビット線は、第2のプログラミング反復で状態ST3をプログラムするための新しい電圧レベルへバイアスされる。図14Bの実施形態に用いられるプログラム検証の技法を、第2のプログラミング反復に使用することができる。以上で開示し、説明した回路および論理構成は、様々な多状態プログラミングの実施形態および対応するプログラム検証の実施形態を実施するのに使用することができるはずの実施形態の例として提示するものである。同じ所望の結果を得るために代替の回路および論理構成を使用することもできる。図29は、本発明の一実施形態による、並列多状態プログラミングのための方法の概要を示す流れ図である。この方法は、図9の方法のブロック302において使用することができる。図28の方法は、1500で、プログラムすべき状態を決定するために、前述の回路実施形態において説明したように、各ビット線に対応するデータの各ページの各ビットを復号することから開始する。1502で、ビット線は、プログラムすべき異なる状態のそれぞれに対応する電圧レベルへバイアスされる。各ビット線がそれぞれの電圧レベルへバイアスされた後で、選択されるワード線が、1504で、メモリセルへの異なる状態の同時プログラミングのためのプログラミングプロファイルを用いて駆動され、異なる状態はそれぞれ、対応するしきい値電圧を有する。プログラミングが完了した後、1506で、前述の実施形態によるプログラム検証動作を実行することができる。要素1500、1502、1504および1506は、すべての可能な状態の完全並列多状態プログラミングに使用することもでき、すべての可能な状態の一部の並列多状態プログラミングに使用することもできる。例えば、1500でデータを復号する前に、1510の対応するプログラム検証動作を伴って、1508で、ある状態をプログラムするために第1のプログラミング反復を実行し、それによって、残りの可能な状態を1500、1502および1504第2のプログラミング反復で並列にプログラムさせることもできる。1500、1502、1504および1506で実行されるプログラミング動作は、第1のプログラミング反復としての1つの状態を除くすべての可能な状態をプログラムするのに使用することができる。残りの状態は、1514で対応するプログラム検証動作を伴って、第2のプログラミング反復1512においてプログラムすることもできる。ここで説明する実施形態は、第1のプログラミング反復において1つの状態をプログラムし、続いて、第2のプログラム反復において残りの状態を並列にプログラムすること、またはその逆を行うことだけに限定されるものではない。プログラムされるべき多くの状態がある状況では、少なくとも2つの状態が各プログラミング反復においてプログラムされる複数のプログラミング反復を使用することができる。前述の各実施形態では、簡潔にするために、デバイスの各要素および回路は、相互に接続されているものとして各図に示されている。本発明の実際の応用に際しては、要素、回路などが相互に直接接続されてもよい。また、要素、回路などが、デバイスおよび装置の動作に必要な他の要素、回路などを介して相互に間接的に接続されてもよい。よって、実際の構成においては、回路要素および回路は、直接的に、または間接的に、相互と結合され、または相互に接続される。本発明の上記の実施形態は例示のためのものにすぎない。当業者によれば、添付の特許請求の範囲によってのみ定義される本発明の範囲を逸脱することなく、個々の実施形態への変更、改変および変形が実施され得る。