"データを対応する異なる電荷蓄積レベルとして蓄積するタイプの不揮発性電荷蓄積素子を含むメモリシステムをプログラムする方法であって、少なくとも2回のパスで前記電荷蓄積素子をプログラムしてデータを蓄積するための3つ以上の電荷蓄積レベルのうちの1つに変える、プログラムするステップであって、前記電荷蓄積素子をグループ化して、複数のグループに変え、各グループは少なくとも2ビットのフラグデータを蓄積するための少なくとも1つの対応するフラグ電荷蓄積セルを有し、前記フラグデータの各ビットは前記パスのうちの1つと関連する、プログラムするステップを有し、前記プログラムするステップは先のパスと先のパスの後に実施される後のパスを有する少なくとも2回のシーケンシャルなパスで実施され、前記プログラムするステップにより先のパスと関連するフラグデータビット値を先のパスの後にセットする方法。請求項1記載の方法において、先のパスに関連するフラグデータビット値を、後のパスの間にセットする方法。請求項1記載の方法において、前記電荷蓄積素子がグループ化されてページとなり、各ページは2つ以上の前記グループを含み、前記プログラムするステップは、前記ページのうちの1ページ毎に前記電荷蓄積素子をプログラムし、前記ページのうちの1つが、ホストデータに従い後のパス中にプログラムされた電荷蓄積素子の少なくとも第1のグループ、およびプログラムするにはホストデータが不十分なため後のパス中にプログラムされなかった電荷蓄積素子の少なくとも第2のグループを有し、前記第1および第2のグループ内のフラグ電荷蓄積セルの中に蓄積されている先のパスと関連するフラグデータビット値が、十分なホストデータを有する電荷蓄積素子および十分なホストデータを有していない電荷蓄積素子の間の境界を示す方法。請求項1記載の方法において、前記グループ内のフラグ電荷蓄積セルの中に蓄積された先のパスと関連するフラグデータビット値に従い、複数の異なる読み出しシーケンスから選択された読み出しシーケンスに従って、前記グループの電荷蓄積素子内に蓄積されたデータを読み出すステップをさらに有する方法。請求項1記載の方法において、前記プログラムするステップが、複数のグループのうちの1つのグループのフラグ電荷蓄積セルの中に蓄積された先のパスと関連するフラグデータビット値を、前記グループの電荷蓄積素子が後のパス中にプログラムされたかどうかを示すようにセットする方法。請求項5記載の方法において、前記プログラムするステップは、先のパスに関連するフラグデータビット値を、リセット電荷蓄積レベルを示す値から前記リセット電荷蓄積レベルとは異なる値へと変える方法。請求項5記載の方法において、前記グループ内の各電荷蓄積素子の電荷蓄積レベルによって表されるデータが、順序づけられたセットの少なくとも第1の2進値変数と第2の2進値変数とを含み、先のパス中に前記電荷蓄積素子をプログラムする際に従う電荷蓄積レベルを少なくとも第1の変数値に従って決定し、後のパス中に前記電荷蓄積素子をプログラムする際に従う電荷蓄積レベルを少なくとも第2の変数値に従って決定し、前記方法が、前記プログラムするステップの後に、第1の変数値を読み出すために、前記グループ内の各電荷蓄積素子の電荷蓄積レベルと、先のパスと関連するフラグデータビット値を読み出すために、前記グループ内のフラグ電荷蓄積セルの電荷蓄積レベルとを、1つの検知動作で検知するステップをさらに有する方法。請求項7記載の方法において、前記電荷蓄積素子がグループ化されてページとなり、各ページは2つ以上の前記グループを含み、前記プログラムするステップは、前記ページの各ページ毎に前記電荷蓄積素子をプログラムし、前記検知するステップは、1つのみの読み出し電圧を、後のパスにプログラムされた各ページの中の前記電荷蓄積素子に結合して、第1の変数値を出力し、2つの異なる読み出し電圧を、後のパス時にプログラムされなかった少なくとも1つの電荷蓄積素子と、後のパス時にプログラムされた少なくとも1つの電荷蓄積素子とを含む各ページの電荷蓄積素子にシーケンシャルに結合して、第1の変数値を出力する方法。請求項8記載の方法において、後のパス時にプログラムされなかった少なくとも1つの電荷蓄積素子と、後のパス時にプログラムされた少なくとも1つの電荷蓄積素子とを含む各ページを読み出して、第1の変数値を出力するために、さらに多くの時間が割り当てられる方法。請求項9記載の方法において、後のパス時にプログラムされなかった電荷蓄積素子を読み出す際に、さらに多くの呼び出し時間を予期する旨をユーザに示す話中信号を生成するステップをさらに有する方法。請求項9記載の方法において、異なった長さのダミーの時間を使ってさらに多くの時間が割り当てられる方法。記憶装置であって、データを対応する異なる電荷蓄積レベルとして蓄積するタイプの不揮発性電荷蓄積素子と、少なくとも2回のパスで前記電荷蓄積素子をプログラムしてデータを蓄積するための3つ以上の電荷蓄積レベルのうちの1つに変える、プログラムする手段であって、前記電荷蓄積素子をグループ化して、複数のグループに変え、各グループは少なくとも2ビットのフラグデータを蓄積するための少なくとも1つの対応するフラグ電荷蓄積セルを有し、前記フラグデータの各ビットが前記パスのうちの1つと関連する、プログラムする手段と、を備え、前記プログラムする手段により、先のパスと先のパスの後に実施される後のパスを有する少なくとも2回のシーケンシャルなパスで前記電荷蓄積素子をプログラムし、先のパスと関連するフラグデータビット値を先のパスの後にセットする記憶装置。請求項12記載の記憶装置において、先のパスに関連するフラグデータビット値が、後のパスの間にセットされる記憶装置。請求項12記載の記憶装置において、前記電荷蓄積素子がグループ化されてページとなり、各ページは2つ以上の前記グループを含み、前記プログラムする手段は、前記ページのうちの1ページ毎に前記電荷蓄積素子をプログラムし、前記ページのうちの1つが、ホストデータに従い後のパス中にプログラムされた電荷蓄積素子の少なくとも第1のグループ、およびプログラムするにはホストデータが不十分なため後のパス中にプログラムされなかった電荷蓄積素子の少なくとも第2のグループを有し、前記第1および第2のグループ内のフラグ電荷蓄積セルの中に蓄積されている先のパスと関連するフラグデータビット値が、十分なホストデータを有する電荷蓄積素子および十分なホストデータを有していない電荷蓄積素子の間の境界を示す記憶装置。請求項12記載の記憶装置において、前記プログラムする手段が、前記グループ内のフラグ電荷蓄積セルの中に蓄積された先のパスと関連するフラグデータビット値に従い、複数の異なる読み出しシーケンスから選択された読み出しシーケンスに従って、前記グループの電荷蓄積素子内に蓄積されたデータを読み出す記憶装置。請求項12記載の記憶装置において、前記プログラムする手段が、複数のグループのうちの1つのグループのフラグ電荷蓄積セルの中に蓄積された先のパスと関連があるフラグデータビット値を、前記グループの電荷蓄積素子が後のパス中にプログラムされたかどうかを示すようにセットする記憶装置。請求項16記載の記憶装置において、前記プログラムする手段が、先のパスに関連するフラグデータビット値を、リセット電荷蓄積レベルを示す値から前記リセット電荷蓄積レベルとは異なる値へと変える記憶装置。請求項16記載の記憶装置において、前記グループ内の各電荷蓄積素子の電荷蓄積レベルによって表されるデータが、順序づけられたセットの少なくとも第1の2進値変数と第2の2進値変数とを含み、先のパス中に前記電荷蓄積素子をプログラムする際に従う電荷蓄積レベルを少なくとも第1の変数値に従って決定し、後のパス中に前記電荷蓄積素子をプログラムする際に従う電荷蓄積レベルを少なくとも第2の変数値に従って決定し、前記プログラムする手段は、第1の変数値を読み出すために、前記グループ内の各電荷蓄積素子の電荷蓄積レベルと、先のパスと関連するフラグデータビット値を読み出すために、前記グループ内のフラグ電荷蓄積セルの電荷蓄積レベルとを、1つの検知動作で検知する記憶装置。請求項18記載の記憶装置において、前記電荷蓄積素子がグループ化されてページとなり、各ページは2つ以上の前記グループを含み、前記プログラムする手段は、前記ページの各ページ毎に前記電荷蓄積素子をプログラムし、1つのみの読み出し電圧を、後のパスにプログラムされた各ページの中の前記電荷蓄積素子に結合して、第1の変数値を出力し、2つの異なる読み出し電圧を、後のパス時にプログラムされなかった少なくとも1つの電荷蓄積素子と、後のパス時にプログラムされた少なくとも1つの電荷蓄積素子とを含む各ページの電荷蓄積素子にシーケンシャルに結合して、第1の変数値を出力する記憶装置。請求項19記載の記憶装置において、前記プログラムする手段には、後のパス時にプログラムされなかった少なくとも1つの電荷蓄積素子と、後のパス時にプログラムされた少なくとも1つの電荷蓄積素子とを含む各ページを読み出して、第1の変数値を出力するために、さらに多くの時間が割り当てられる記憶装置。請求項20記載の記憶装置において、前記プログラムする手段は、後のパス時にプログラムされなかった電荷蓄積素子を読み出す際に、さらに多くの呼び出し時間を予期する旨をユーザに示す話中信号を生成する記憶装置。請求項20記載の記憶装置において、前記プログラムする手段により異なった長さのダミーの時間を使ってさらに多くの時間が割り当てられる記憶装置。不揮発性メモリセルの対応する異なる電荷レベルとして電荷蓄積素子の中にデータを蓄積するタイプの不揮発性メモリセルのプログラミングを行う方法であって、前記素子の電荷蓄積レベルが、プログラミングに先立って、リセットされた電荷蓄積レベルの分布状態にある方法において、データバッファ内に蓄積されたデータに従って少なくとも2回のパスで前記電荷蓄積素子をプログラムするステップであって、第1のページデータをプログラムするための第1のパス中に前記素子のうちの選択した素子をプログラムして、第1の蓄積レベルの分布状態に変え、第2のページデータをプログラムするための後続する第2のパス中に前記リセットされた電荷蓄積レベルの分布状態にある素子のうちの選択した素子をプログラムして、第2の蓄積レベルの分布状態に変え、前記第1の蓄積レベルの分布状態にある素子のうちの選択した素子をプログラムして、第3の蓄積レベルの分布状態に変え、前記第2の蓄積レベルの分布状態が前記リセットされた蓄積レベルの分布状態と前記第1の蓄積レベルの分布状態との間にあり、前記第1の蓄積レベルの分布状態が前記第2の蓄積レベルの分布状態と前記第3の蓄積レベルの分布状態との間にある、プログラムするステップを有し、前記素子のうちの少なくとも1つの素子のための前記第2のページデータを前記第2のパス中にプログラムするのにホストデータが不十分な場合、少なくとも1つの素子をプログラムして、前記第1のパス中に前記第1の蓄積レベルに変え、前記データバッファ内に蓄積されたデータとは、前記プログラムするステップにより、少なくとも1つの素子の電荷蓄積レベルを、前記第2のパスの後に前記第3の蓄積レベルの分布状態の電荷蓄積レベル未満の値にプログラムするものであり、各素子の蓄積レベルによって表されるデータが、順序づけられたセットの少なくとも第1の2進値変数と第2の2進値変数とを含み、前記第1のパスおよび第2のパス時に前記素子をプログラムするために第1の2進値変数および第2の2進値変数をそれぞれ利用し、前記プログラムするステップが、前記データバッファ内へホストデータをロードするステップと、前記データバッファ内のデータに従って電圧を前記素子と結合して、前記順序づけられたセットの第1の2進値変数と第2の2進値変数とのコード構成に従って、選択した蓄積レベルの分布状態に前記素子をプログラムするステップとを有し、前記コード構成とは、各素子の1つの蓄積レベルによって表される第1の2進値変数と第2の2進値変数とが各素子の隣の蓄積レベルによって表される第1の2進値変数と第2の2進値変数とは異なるものである方法。請求項23記載の方法において、前記プログラムするステップにより、前記第1の蓄積レベルの分布状態の少なくともいくつかの素子を、その蓄積レベルの分布状態が前記第2のパス中に前記第1の蓄積レベルの分布状態よりも高くなるようにプログラムする方法。請求項23記載の方法において、前記第1のパス中に前記素子をプログラムする際に従う前記蓄積レベルを少なくとも第1の変数値に従って決定し、前記第2のパス中に前記素子をプログラムする際に従う蓄積レベルを少なくとも第2の変数値に従って決定し、前記コード構成によって、リセットされた蓄積レベルと、第1の蓄積レベルとを表す第2の変数値とが同じ値となるようにする方法。請求項25記載の方法において、3つの異なる読み出し電圧をそのような素子とシーケンシャルに結合することによって、前記素子に蓄積された蓄積レベルを読み出して、第2の変数値を得るようにするステップをさらに有する方法。請求項23記載の方法において、前記データバッファ内に対応するホストデータを有していない素子の近傍にある素子をプログラムすることが、前記データバッファ内に対応するホストデータを有していない前記素子の電荷蓄積レベルに、前記第1の蓄積レベルの分布状態とは異なる分布状態を電界効果の結合の結果持たせるようにする方法。請求項23記載の方法において、3つの異なる読み出し電圧をそのような素子とシーケンシャルに結合することによって、前記素子に蓄積された蓄積レベルを読み出して、第2の変数値を得るようにするステップをさらに有する方法。記憶装置であって、対応する異なる電荷レベルとして電荷蓄積素子の中にデータを蓄積するタイプのプログラム可能な不揮発性メモリセルであって、前記素子の電荷蓄積レベルが、プログラミングに先立って、リセットされた電荷蓄積レベルの分布状態にあるメモリセルと、データバッファ内に蓄積されたデータに従って少なくとも2回のパスで前記電荷蓄積素子をプログラムする手段であって、第1のページデータをプログラムするための第1のパス中に前記素子のうちの選択した素子をプログラムして、第1の蓄積レベルの分布状態に変え、第2のページデータをプログラムするための後続する第2のパス中に前記リセットされた電荷蓄積レベルの分布状態にある素子のうちの選択した素子をプログラムして、第2の蓄積レベルの分布状態に変え、前記第1の蓄積レベルの分布状態にある素子のうちの選択した素子をプログラムして、第3の蓄積レベルの分布状態に変え、前記第2の蓄積レベルの分布状態が前記リセットされた蓄積レベルの分布状態と前記第1の蓄積レベルの分布状態との間にあり、前記第1の蓄積レベルの分布状態が前記第2の蓄積レベルの分布状態と前記第3の蓄積レベルの分布状態との間にある、プログラムする手段と、を備え、前記素子のうちの少なくとも1つの素子のための前記第2のページデータを前記第2のパス中にプログラムするのにホストデータが不十分な場合、少なくとも1つの素子をプログラムして、前記第1のパス中に前記第1の蓄積レベルに変え、前記データバッファ内に蓄積されたデータとは、前記プログラムする手段により、少なくとも1つの素子の電荷蓄積レベルを、前記第2のパスの後に前記第3の蓄積レベルの分布状態の電荷蓄積レベル未満の値にプログラムするものであり、前記記憶装置がデータバッファを備え、前記プログラムする手段が、データバッファ内へホストデータをロードすることと、前記データバッファ内のデータに従って電圧を前記素子と結合して、コード構成に従って、選択した蓄積レベルの分布状態に前記素子をプログラムすることとを有し、前記コード構成とは、そのようなコード構成によってセットされた前記データバッファ内のデータが、前記データバッファ内に対応するホストデータを有していない素子と、プログラミング電圧とを前記第2のパス中に前記素子間で結合しないようにするものである記憶装置。記憶装置であって、対応する異なる電荷レベルとして電荷蓄積素子の中にデータを蓄積するタイプのプログラム可能な不揮発性メモリセルであって、前記素子の電荷蓄積レベルが、プログラミングに先立って、リセットされた電荷蓄積レベルの分布状態にあるメモリセルと、データバッファ内に蓄積されたデータに従って少なくとも2回のパスで前記電荷蓄積素子をプログラムする手段であって、第1のページデータをプログラムするための第1のパス中に前記素子のうちの選択した素子をプログラムして、第1の蓄積レベルの分布状態に変え、第2のページデータをプログラムするための後続する第2のパス中に前記リセットされた電荷蓄積レベルの分布状態にある素子のうちの選択した素子をプログラムして、第2の蓄積レベルの分布状態に変え、前記第1の蓄積レベルの分布状態にある素子のうちの選択した素子をプログラムして、第3の蓄積レベルの分布状態に変え、前記第2の蓄積レベルの分布状態が前記リセットされた蓄積レベルの分布状態と前記第1の蓄積レベルの分布状態との間にあり、前記第1の蓄積レベルの分布状態が前記第2の蓄積レベルの分布状態と前記第3の蓄積レベルの分布状態との間にある、プログラムする手段と、を備え、前記素子のうちの少なくとも1つの素子のための前記第2のページデータを前記第2のパス中にプログラムするのにホストデータが不十分な場合、少なくとも1つの素子をプログラムして、前記第1のパス中に前記第1の蓄積レベルに変え、前記データバッファ内に蓄積されたデータとは、前記プログラムする手段により、少なくとも1つの素子の電荷蓄積レベルを、前記第2のパスの後に前記第3の蓄積レベルの分布状態の電荷蓄積レベル未満の値にプログラムするものであり、各素子の蓄積レベルによって表されるデータが、順序づけられたセットの少なくとも第1の2進値変数と第2の2進値変数とを含み、前記第1のパスおよび第2のパス時に前記素子をプログラムするために第1の2進値変数および第2の2進値変数をそれぞれ利用し、前記プログラムする手段が、前記データバッファ内へホストデータをロードすることと、前記データバッファ内のデータに従って電圧を前記素子と結合して、前記順序づけられたセットの第1の2進値変数と第2の2進値変数とのコード構成に従って、選択した蓄積レベルの分布状態に前記素子をプログラムすることとを有し、前記コード構成とは、各素子の1つの蓄積レベルによって表される第1の2進値変数と第2の2進値変数とが各素子の隣の蓄積レベルによって表される第1の2進値変数と第2の2進値変数とは異なるものである記憶装置。請求項29または30記載の記憶装置において、前記プログラムする手段により、前記第1の蓄積レベルの分布状態の少なくともいくつかの素子を、その蓄積レベルの分布状態が前記第2のパス中に前記第1の蓄積レベルの分布状態よりも高くなるようにプログラムする記憶装置。請求項30記載の記憶装置において、前記第1のパス中に前記素子をプログラムする際に従う蓄積レベルを少なくとも第1の変数値に従って決定し、前記第2のパス中に前記素子をプログラムする際に従う蓄積レベルを少なくとも第2の変数値に従って決定し、前記コード構成によって、リセットされた蓄積レベルと、第1の蓄積レベルとを表す第2の変数値とが同じ値となるようにする記憶装置。請求項32記載の記憶装置において、前記プログラムする手段が、3つの異なる読み出し電圧をそのような素子とシーケンシャルに結合することによって、前記素子に蓄積された蓄積レベルを読み出して、第2の変数値を得るようにする記憶装置。請求項29または30記載の記憶装置において、前記プログラムする手段が、前記データバッファ内に対応するホストデータを有していない素子の電荷蓄積レベルに、前記第1の蓄積レベルの分布状態とは異なる分布状態を電界効果の結合の結果持たせるようにする記憶装置。請求項29または30記載の記憶装置において、前記プログラムする手段が、3つの異なる読み出し電圧をそのような素子とシーケンシャルに結合することによって、前記素子に蓄積された蓄積レベルを読み出して、第2の変数値を得るようにする記憶装置。不揮発性メモリシステムの例図7は、本発明の好ましい実施形態に従ってコア部分210と共通部分220とに分割された個々の読み出し/書き込みモジュール200の概略ブロック図である。コア部分210は接続されたビットライン211内の導通電流が所定のしきい値レベル以上か未満かを判定するセンスアンプ212を備えている。前述したように、接続されたビットライン211はアレイ内のアドレス指定されたメモリセルのドレインへのアクセスを可能にする。1つの実施形態では、コア部分210もビットラインラッチ214を備えている。このビットラインラッチを利用して接続されたビットライン211にかかる電圧条件がセットされる。1つの実施構成では、ビットラインラッチでラッチされた所定の状態はプログラムの禁止を指定するVddなどの状態へ引っ張られる接続ビットライン211を結果として生じることになる。以下説明するようにこの特徴はプログラム禁止用として利用される。共通部分220は、プロセッサ222と、データラッチセット224およびデータラッチセット224とデータバス231間で結合された入出力インターフェイス226とを備える。プロセッサ222は計算を実行する。例えば、プロセッサ222の機能の1つとして、検知されたメモリセルのメモリ状態の判定などがあり、判定されたデータはデータラッチセットの中へ蓄積される。背景技術の欄で説明したように、メモリセルは電荷範囲を保持することが可能であり、したがって、しきい値電圧ウィンドウ内の任意のしきい値電圧レベルすなわち、所定の導通電流に合わせてセルをオンに転換したばかりのコントロールゲート電圧に合わせてプログラミングを行うことが可能となる。データラッチセット224を利用して、読み出し処理中にセンスアンプが検知した電流から、プロセッサにより判定されたデータビットが蓄積される。このデータラッチセット224は、データバス231からインポートされたユーザデータビットをプログラム処理中にホスト図示せずから蓄積するためにも用いられる。これらのインポートされたデータビットは、メモリの中へプログラムされたデータの書き込みを意図した書き込みデータを表すものである。入出力インターフェイス226はデータラッチセット224とデータバス231間のインターフェイスを提供する。読み出し中や検知中、処理は、アドレス指定したセルへの異なるコントロールゲート電圧の供給を基本的に制御し、種々のデータラッチに対して適当なロードを行うようにプロセッサに指図し、センスアンプを付勢する状態マシン図示せずの制御下にある。メモリがサポートしている種々のメモリ状態に対応する種々の予め定義されたコントロールゲート電圧を通って、処理がステップするにつれて、センスアンプ212はこれらの電圧のうちの1つの電圧でトリップすることになる。その時点で、プロセッサ222は、センスアンプのトリッピングイベント、並びに、状態マシンからの入力ライン223を介して印加されたコントロールゲート電圧に関する情報を考慮することにより、結果として生じるメモリ状態を決定する。次いで、プロセッサ222は、メモリ状態用の2進符号化を計算し、結果として生じるデータビットをデータラッチセット224の中へ蓄積する。状態マシンはモジュール200内の回路ブロックのすべての回路ブロックと通信を行う。SA/ビットラインラッチ214は、センスアンプ212の出力をラッチするラッチとして、および、図7と関連して説明したビットラインラッチとしての2つの任務の双方の役割を果たすことが可能である。したがって、SA/ビットラインラッチ214は、センスアンプか、プロセッサかのいずれかによってセットすることが可能となる。好ましい実施構成では、SA/ビットラインラッチ214からの信号はドライバ図示せずにより駆動されて、選択したビットライン211の電圧によりセットされる。図7を参照してわかるように、プログラム中または検証中、プログラム対象データはデータバス231からデータラッチセット224の中へ入力される。状態マシンの制御下にあるプログラム処理には、アドレス指定されたセルのコントロールゲートに印加された一連のプログラミング電圧パルスが含まれる。個々のプログラミングパルスの後に、セルが所望のメモリ状態にプログラムされたかどうかを判定するリードバックが後続する。プロセッサ222は、所望のメモリ状態と比較しながらメモリ状態のリードバックをモニタする。2つのメモリ状態が一致すると、プロセッサ222はビットラインラッチ214をセットして、プログラミングの禁止を指定する状態へビットラインを引っ張らせるようにする。こうすることによって、たとえ、プログラミングパルスがセルのコントロールゲート上に生じたとしても、セルと結合したビットラインのさらなるプログラミングは禁止されることになる。入出力インターフェイス226は、データラッチのセット224の中で、または、データラッチのセット224の中からデータのトランスポートを可能にする。図8Aと図8Bでわかるように、読み出し/書き込みモジュールのブロックはメモリデバイスの中で同時に使用されて、一度にデータブロックを読み出したり、プログラムしたりする。典型的には、読み出し/書き込みモジュールのブロックには、シフトレジスタの形成のために合成されたモジュールの個々のセットのデータラッチが含まれ、読み出し/書き込みモジュールのブロックによりラッチされたデータをデータバス231へ連続的に転送して外へ出力できるようになっている。同様に、読み出し/書き込みモジュールのブロック用のプログラミングデータをデータバス231から連続的に入力し、それぞれのデータラッチセットの中へラッチすることができる。コンパクトな読み出し/書き込み回路このアーキテクチャの1つの注目すべき特徴として、同時に動作している読み出し/書き込みモジュールのブロックの場合、個々のモジュールを分割して、コア部分と共通部分とに変え、コア部分のブロックに、共通部分の数よりも実質的に少数のブロックを動作させ、共通部分の数よりも実質的に少数のブロックを共有させるようにするという特徴がある。このアーキテクチャにより、個々の読み出し/書き込みモジュールの間の複製回路の構成要素の一部を取り除くことが可能となり、それによって空間および電力の節減が行われる。高密度のメモリチップ設計では、メモリアレイ用の読み出し/書き込み回路全体の50程度まで空間の節減を行うことが可能となる。こうすることによって読み出し/書き込みモジュールを高密度でパックすることが可能となり、その結果、読み出し/書き込みモジュールはメモリアレイの隣接した切れ目なく連続するメモリセル行として機能することが可能となり、それによって行内のセルのすべての同時プログラミングまたは読み出しが可能となる。図8Aは、仕切られた読み出し/書き込みスタックのバンクを有するコンパクトなメモリデバイスを本発明の1つの実施形態に従って概略的に示す。メモリデバイスは、メモリセル300の2次元アレイと、制御回路310と、読み出し/書き込み回路370とを備える。メモリアレイ300は行デコーダ330を介してワードラインにより、並びに、列デコーダ360を介してビットラインによりアドレス可能である。読み出し/書き込み回路370は仕切られた読み出し/書き込みスタック400のバンクとして実現され、メモリセルのブロックの同時読み出しまたは同時プログラミングが可能となる。1つの実施形態では、メモリセル行はマルチブロックに分割され、ブロックマルチプレクサ350が設けられて、個々のブロックへの読み出し/書き込み回路370の多重化が行われる。読み出し/書き込みスタック400間の通信がスタックバスによって行われ、さらにスタックバスコントローラ430によって制御される。制御回路310は、メモリアレイ300でメモリ処理を実行するために読み出し/書き込み回路370と一体に動作する。制御回路310は状態マシン312、チップアドレスデコーダ314およびパワー制御モジュール316を備える。状態マシン312はメモリ処理のチップレベル制御を行う。オンチップアドレスデコーダ314は、ホストが使用するアドレスインターフェイスまたはデコーダ330と370とが使用するハードウェアアドレスとつながるメモリコントローラを提供する。パワー制御モジュール316は、メモリ処理中にワードラインとビットラインとへ供給される電力および電圧を制御する。図8Bは、図8Aに示されているコンパクトなメモリデバイスの好ましい配置構成を例示する。種々の周辺回路によるメモリアレイ300へのアクセスがアレイの対向する側に左右対称に実現され、それによって個々の側部のアクセスラインと回路とが半分に減少するようになっている。この結果、行デコーダは行デコーダ330Aと330Bとに分割され、列デコーダは列デコーダ360Aと360Bとに分割されることになる。メモリセル行がマルチブロックに分割された実施形態では、ブロックマルチプレクサ350はブロックマルチプレクサ350Aと350Bとに分割される。同様に、読み出し/書き込み回路は、最下部からビットラインと接続する読み出し/書き込み回路370Aと、アレイ300の最上部からビットラインと接続する読み出し/書き込み回路370Bとに分割される。このようにして、読み出し/書き込みモジュールの記録密度、したがって、仕切られた読み出し/書き込みスタック400の記録密度は、個々の仕切られた読み出し/書き込みスタック400によって1/2に実質的に低減することになる。図8Aまたは図8Bの個々の仕切られた読み出し/書き込みスタック400には、k個のメモリセルからなるセグメントとして同時に機能する読み出し/書き込みモジュールのスタックが実質的に含まれる。個々のスタックは、図7に示されている態様でコアスタック部分と共通のスタック部分とに分割される。個々の読み出し/書き込みスタック400間の通信はスタックバス図示せずによる相互接続によって行われ、スタックバスコントローラ430によって制御される。制御ライン図示せずは、スタックバスコントローラ430から読み出し/書き込みスタックのコア部分の各々へ制御信号とクロック信号とを出力する。同様に、制御ライン図示せずは、スタックバスコントローラ430から読み出し/書き込みスタック400の共通部分の各々へ制御信号とクロック信号とを出力する。同時に動作している仕切られた読み出し/書き込みスタック400のバンク全体によって行に沿うp個のセルブロックの同時読み出しまたはプログラミングが可能となる。例えば、rがバンク内のスタック数であれば、p=rkとなる。1つの例示のメモリアレイが、p=512バイト512×8ビット、k=8、したがってr=512を有する場合もある。この好ましい実施形態では、ブロックは一続きのセル行全体である。別の実施形態では、ブロックは行内のセルのサブセットである。例えば、セルのサブセットは行全体の1/2若しくは行全体の1/4になることも考えられる。セルのサブセットは、切れ目なく連続する一続きのセルや、1個おきのセル、或いは1個おきの所定数のセルとなる場合も考えられる。図8Aに示されている実施形態では、p個のセルの各々に対してp個の数の読み出し/書き込みモジュールが存在することになる。個々のスタックがk個のメモリセルとして機能しているとき、バンク内の読み出し/書き込みスタックの総数はr=p/kによって示される。p=512バイトおよびk=8の場合の例では、rは512となる。前述したように、高密度でかつ高性能のメモリにおいて遭遇する1つの問題として、隣接した切れ目なく連続するセル行のブロックの同時読み出しと同時プログラミングを行う必要性と、すべてのセルに対する読み出し/書き込みモジュールを適合させる際の困難とが存在する。この適合化問題は、メモリアレイの対向する側に周辺回路が形成される図8Bに示されている好ましい実施形態によって多少とも解決される。読み出し/書き込み回路370A、370Bがメモリアレイ300の対向する側に形成されるとき、p個のセルブロックの1/2が最上部側からアクセスされ、別の1/2がアレイの底部側からアクセスされることになる。したがって、p/2個の数の読み出し/書き込みモジュールが個々の側部に存在することになる。この当然の結果として、個々の側部にある読み出し/書き込みスタック400はp/2個の数のビットラインまたはメモリセルとして同時に機能するだけで十分となり、したがって、バンク内の読み出し/書き込みスタックの総数はr=p/2kによって与えられることになる。p=512バイトでk=8の例では、rは256となる。このことは、図8Aに示されている実施形態と比べて、メモリアレイの個々の側部には読み出し/書き込みスタック400の個数の1/2の個数しか必要でないことを意味することになる。別の実施形態では、この適合化問題や別の考慮事項によって、さらに低い記録密度が決定され、セル行は2以上のインタリービングなセルブロックに分割されることになる。例えば、一方のセルブロックは偶数番号の列から得られるセルから構成され、他方のセルブロックは奇数番号の列から得られるセルから構成される。図8Aと図8Bとに示されているように、ブロックマルチプレクサ350すなわち350Aと350Bとは、偶数または奇数のブロックのいずれかのブロックへ仕切られた読み出し/書き込みスタックのバンクの切替えに利用されることになる。図8Bに示されている実施形態では、p/4個の数の読み出し/書き込みモジュールがアレイの個々の側部に設けられることになる。この場合、対向する側部の各側部にある読み出し/書き込みスタックの個数はr=p/4k個になる。したがって、さらに多くの余地が与えられて、より少数の読み出し/書き込みモジュールをぴったり適合できるようにはなるが、これは性能の低下により行われるものであり、読み出し/書き込みブロックはもはや隣接した切れ目なく連続するブロックではなくなる。部分的プログラム問題を解決する実施形態前述したように、部分的プログラム問題は、図5A~5Cおよび図10A、10Bのコード構成のようなコード構成を用いてメモリセルのプログラミングを行う際に、そして、第2のプログラミングパス中にセルのプログラミングを行うのにユーザデータすなわちホストデータが不十分なときに、状態Bに対して生じるものである。このようなイベント時にデータラッチ内の第2の上位ページデータがデフォルト1の値になるため、以下に説明するようにデフォルト1の値になるイベントの発生が妨げられなければ、このようなセルは、図5A~5C、10A、10Bのコード構成の下で状態Cにプログラムされることになる。次のプログラミング処理時の後続するユーザデータすなわちホストデータによって、このようなセルが状態Bにプログラムされた状態のままであることが求められる場合、そのような状態のままであることはあり得ない。というのは、ブロック消去処理を除いてほとんどの設計がしきい値レベルの低下を許さないからである。本発明の1つの実施形態は、ユーザすなわちホストの上位ページデータが含まれないメモリセルの場合、プログラミング処理時の第1のプログラミングパスの後であって、しかも、第2のプログラミングパスよりも前に、このようなメモリセルのプログラミングに用いられるデータラッチ内の下位ページデータは、適当な代替データによって変位され、第2のプログラミングパス時にこのようなメモリセルのプログラミングを妨げるようにするという認識に基づくものである。この結果、この実施形態の1つの実施構成では、消去状態すなわちリセット状態Eがデータ11を表すか、或いはデータ11に対応する場合、内部データロード処理時に、このようなメモリセルから読み出されたデータラッチ内の第1のページデータすなわち下位ページデータは1によって変位される。このことが以下に参照する図9にさらに詳細に示されている。図9は、図7の回路ブロックのデータラッチの構造をさらに詳細に示す概略ブロック図である。図9に示されているように、図7のデータラッチ224は、少なくとも3つのラッチ224a、224b、224cを備えている。この例のうちの1つの例では、スタックによって使用中のk個のセル間での読み出し/書き込みスタック400内のモジュール200は、対応するメモリセルの読み出しおよび書き込み制御のために用いられる。したがって、ラッチ224a~224cは個々に1ビットのラッチであってもよい。プログラミング処理中、ユーザデータすなわちホストデータはデータバス231と入出力インターフェイス226とを通ってラッチ内へロードされる。1つの実施形態では、第1のデータビットすなわち下位のデータビットはバス231とインターフェイス226とを介してラッチ224aの中へ第1にロードされる。このロードは、図7、図8A、図8Bのスタックのバンク内のスタック400の各スタック内の読み出し/書き込みモジュール200のすべてによって同時に行われて、ページ全体のプログラミングが意図されることになる。ページ全体は1つの行内のメモリアレイ300の中のメモリセルのすべてから構成することも可能である。これとは別に、ページ全体は、1つのセル行内のインタリーブされたページの場合、奇数ページまたは偶数ページのようなメモリアレイ300内の行の一部のメモリセルから構成されるものであってもよい。次いで、ページ内のメモリセルは、スタック400のバンク内のモジュール200のすべてのモジュール内のデータラッチ224a内の下位ページデータすなわち第1のページデータを用いてプログラムされる。ラッチ224a内の第1のページデータすなわち下位ページデータを用いてページ内のメモリセルをプログラムした後、第2のページデータすなわち上位ページデータがバス231とインターフェイス226とを介してラッチ224a内へロードされる。このデータはプロセッサ222によって、メモリセルの第2のパスプログラミングに備えてラッチ224cへシフトされる。前述したように、第2のパスプログラミングを行うより前に、第1のプログラミングパスの後に、第2のパスプログラミングのためのメモリセルのしきい値電圧すなわちしきい値レベルを知っている必要がある。1つの実施形態では、これは内部データロード処理によって行われ、この内部データロード処理時に、ページ内のメモリセル内の電流がスタック400のバンク内モジュール200内のセンスアンプ212により検知される。このようなセルのしきい値電圧すなわち蓄積レベル、並びに、このようなセルに対応するデータはモジュール内のプロセッサ222により判定され、次いで、モジュール内のラッチ224aに蓄積される。第2のパスプログラミング内のページをプログラムするのに十分な上位ページデータすなわち第2のページデータが存在する場合、ラッチ224aに蓄積されたデータ、並びに、ラッチ224c内のユーザすなわちホストの上位ページデータすなわち第2のページデータは、第2のパスプログラミング時のページ内のメモリセルをプログラムするために使用される。これは、以下の例で図6Aのセクタ112内のセルをプログラムする場合である。しかし、ページ全体をプログラムするのに上位ページデータすなわち第2のページデータが不十分な場合、これは制御回路310によって第1に検出される。図6Aおよび図6Bに例示されている例では、メモリセルの第1のページすなわち下位ページをプログラムするのに十分なデータが存在している間、第1のセクタ112用の十分なデータのみが存在することになる。したがって、ホストデータすなわちユーザデータはこのようなセクタで終了し、セクタ114、116、118用の上位ページデータすなわち第2のページデータはそれ以上存在しなくなる。このようなイベント時に、並びに、本発明の1つの実施形態では、この場合データを変位するために、状態マシン312は、メモリセルの読み出しから内部データロード処理の結果生じる代替データをラッチ224aの中へロードさせる。代替データによって内部にロードされた下位ページデータすなわち第1のページデータの変位は、不十分な上位ページデータすなわち第2のページデータが存在するメモリセルのプログラミングを制御するモジュールのデータラッチ用としてのみ生じることになる。図6Aおよび図6Bの例では、この変位は、セクタ114、116、118内のメモリセル用として行われる。セクタ112内のメモリセルのプログラミングを制御するためのモジュール内のデータラッチ224a用として、ラッチ224a内のデータは、前述した内部データのロード処理の結果として生じるデータであり続ける。したがって、データブロック112’、114’、116’、118’間の境界を追跡することによって、そして、これらのセクタのうちのどのセクタがユーザデータすなわちホストデータを有しているかいないかを追跡することによって、内部データロード時に読み出されたデータを置き換える代替データのロード処理が、第2のページデータすなわち上位ページデータを有していないページのセクタ内のセル専用として行われることになる。1つの実施形態では、ページの境界はメモリセルのプログラミングを制御するために、コントローラ回路310によってモニタされる。以下さらに詳細に説明するように、コントローラ回路すなわち回路310は適当なフラグデータを蓄積し、対応するセクタのフラグ電荷蓄積セルの中でフラグデータを適当に変更して、ホストデータが不十分な行のセクタを示すようにする。この実施形態では、対応するセルをプログラムするための第2のデータすなわち上位ページデータが不十分なとき、異なるモジュール内のラッチ224a内へロードされるデータを交換するために代替データが利用される。しかし、第1のプログラミングパス中にB’状態へプログラムされたセルに対してのみ部分的ページプログラム問題が生じることが知られている。第1のプログラミングパスの後、消去状態Eのまま残るセルについては、これらのセルを正確に状態Aへプログラムするか、第2のプログラミングパスの結果として正確に状態Eのまま残るようにするかのいずれかが可能である。したがって、この実施形態では、状態B’にあるセルのプログラミングを行うために代替データ1をラッチ224aの中へのみロードする必要がある。そして、このロードは第1のプログラミングパスの後の状態Eのセルに対しては行われない。このことは、第2のパス中、プログラミング電圧が状態B’のセルと結合するのを防ぐという効果を有するものである。これは、B’の分布状態がBの分布状態の中へさらに移行することを禁止するという効果も有するものであり、セクタ114、116、118の各セクタに対して、後続する上位ページデータが利用可能となる場合、個々のセクタは、状態EまたはB’のいずれかからプログラミングを開始することになる。このようなセルに対して、或いは、対応する第2のページデータすなわち上位ページデータを含まない、すべてのセルの代替セルとして、データラッチの中へ1をロードして、これらのセルをプログラムするようにすることにより、内部ロード処理の交換を行うことも可能となる。このような変形例およびその他の変形例は本発明の範囲に含まれるものである。この実施形態は、消去状態Eがデータ11を表す方式に限定されるものでもない。図5Aと図5Bに関連する前述した場合と同様、この実施形態では、たとえ第2のページデータすなわち上位ページデータを含まないセルのB’の分布状態が広範にわたるユーピン効果に起因して広がったかもしれない場合であっても、後続して隣接するセルをプログラムするとき、このような広がったB’の状態の電荷レベルは次のより高い状態Cの電荷レベル未満のままとなる。ラッチ224aの中へ前述したようにデータをロードして、メモリセルを読み出すことによって、内部データロードの結果として生じるデータの変位を行うことは、状態マシン312を備えた制御回路310によって、ユーザすなわちホストにとって透過的に行うことも可能である。これとは別に、プログラムシーケンスを変えることによってこのような処理の達成が可能である。プログラムアルゴリズムの中に新たなコマンドを追加せずに、ユーザすなわちホストによってどのゾーンまたはセクタがプログラムされているかをゾーン検出回路を用いて検出して、残りの1または複数のセクタまたはゾーンを選択し、包括的なリセット時にラッチ224aと224cの双方にデータ11を充填するようにしてもよい。すべてのこのような変形例は本発明の範囲に属するものである。読み出し処理ページの境界で部分的にプログラムされたページを読み出す際に、読み出しアルゴリズムの修正を行う必要がある場合もある。というのは、完全にプログラムされたメモリセルの読み出しレベルが、完全にはプログラムされなかったメモリセルの読み出しレベルと異なる場合もあるからである。この状況は図10Aと図10Bとに図示されている。図10Aは、図6Aに例示され、前述したメモリアレイ内のメモリセル行のグループすなわちセクタ112におけるしきい値電圧レベルのメモリセルの分布状態を示す図例である。このような例では、グループすなわちセクタ112内のメモリセルのすべては第1および第2のプログラミングパス中にプログラムされたものであり、それによってこれらのセルのしきい値電圧は図5Cと図10Aの分布状態E、A、B、Cを有するようになる。しかし、セクタ114、116、118内のメモリセルの場合、これらのメモリセルは、図5A、図5Bまたは図10Bの状態EまたはB’のいずれかの状態になる。すべての4つのセクタ112、114、116、118内のセルのしきい値電圧によって表される上位ページデータすなわち第2のページデータを得るために、メモリセルが2つの異なる読み出しレベルVaおよびVcで読み出され、電圧検知モードが想定されることになる。図5Cと図10Aに示されている1001の上位ページすなわち第2のページ用のコード構成を得ることを意図して、読み出しレベルVaを採用する際の規定は、Vcが使用される読み出しレベルを用いる際の規定とは異なるそして実際には正反対のものとなる。したがって、図11Aを参照すると、読み出しレベルVaを用いるとき、セルのしきい値電圧がVa未満またはVaよりも大きな負の値であれば、このようなしきい値電圧に対応する上位ページ値は1となる。しかし、読み出しレベルVcの場合には、この読み出しレベルVaの場合とは正反対の事実となる。したがって、読み出しレベルVcの場合、メモリセルのしきい値電圧がVc以上であれば、このようなしきい値電圧は上位ページすなわち第2のページ値1に対応することになるが、しきい値がVc未満であれば、このようなしきい値電圧は上位ページすなわち第2のページ値0に対応することになる。このような規定を用いる場合の、状態E、A、B、Cに対応する上位ページすなわち第2のページ値が図11Aに示されている。読み出しレベルVaおよびVcを含む2つの読み出し値の結果生じる2つの値が論理和の形で組み合わされると、その組み合わせによって、図5Cと図10Aに例示されている第2のページすなわち上位ページ用のコード構成1001が産みだされる。したがって、状態EおよびC用の2つの値の組み合わせの結果生じる2つの読み出し値によって、上位ページすなわち第2のページ値1が結果として生じることになり、一方、状態AおよびBの結果生じる2つの読み出し値の組み合わせによって、上位ページすなわち第2のページ値0が結果として生じることになる。グループすなわちセクタ112内のメモリセルを読み出すための前述した規定と同じ規定も適用して、グループすなわちセクタ114、116、118において部分的にプログラムされたメモリセルを読み出し、それによって通常行われるアルゴリズムを用いて、選択ワードラインに沿ったすべてのセルを同時に読み出すことが可能となる。次いで、読み出し値が論理和で同様に組み合わされ、図11Aに例示されているように上位ページすなわち第2のページ値の出力処理が行われる。次いで、このような上位ページすなわち第2のページ値はラッチ224cに蓄積され、図9のプロセッサ222によって、入出力インターフェイス226を通ってラッチ224aとバス231とへシフトされる。これから観察されることとして、メモリセルが完全にプログラムされているか、単に部分的にのみプログラムされているかにかかわらず、すべてのメモリセル値の上位ページすなわち第2のページの読み出しを行うために、同じ組の読み出しレベルVaおよびVcを利用することも可能であるということが挙げられる。しかし、下位ページすなわち第1のページ値を読み出すとき、ページ内のすべてのメモリセルが完全にプログラムされているか否かに応じて、その結果は異なるものとなる。したがって、グループすなわちセクタ112内のメモリセルの場合、図10Aに示されているようにセルのすべては状態E、A、B、Cへプログラムされ、それによって印加すべき読み出しレベルはVbとなる。グループすなわちセクタ114、116、118内のメモリセルは第1のプログラミングパス時にのみプログラムされ、第2のプログラミングパス時にはプログラムされない。その結果、メモリセルのしきい値電圧の分布状態は図5A、図5Bまたは図10Bに示されているようになる。図5Bを参照して前述したように、図5Bと図10Bの分布状態B’はユーピン効果に起因して広がっている。下位ページデータすなわち第1のページデータがグループすなわちセクタ114、116、118内のセルから読み出されるとき、読み出しレベルはVbではなくVaとすることが望ましい。1つの実施形態では、すべてのセクタ112、114、116、118内のメモリセルは、すべて読み出しレベルVbと共にシーケンシャルに読み出され、次いで、読み出しレベルVaと共に読み出され、図11Bに示されている結果が得られることになる。このVaとVb双方の読み出しの際に用いる規定は、下位ページすなわち第1のページのしきい値電圧がVb未満であれば、ビット値は1とし、下位ページすなわち第1のページのしきい値電圧がVb以上であれば、ビット値は0とするというものである。図11Bから観察されるように、グループすなわちセクタ112内のメモリセルを読み出す場合、読み出しレベルVbを用いる読み出しのみが有効となり、グループすなわちセクタ114、116、118のうちの任意の1つのメモリセルを読み出す場合、読み出しレベルVaを用いる読み出しが有効となる。1つの実施形態では、2つの異なる読み出しレベルを用いて2つの読み出し処理を容易にするために、読み出し電圧Vbを用いる読み出し処理の結果生じる下位ページすなわち第1のページ値はラッチ224cに蓄積され、そして読み出しレベルVaを用いて得られる下位ページすなわち第1のページ値はラッチ224bに蓄積されることになる。次いで、読み出し中のメモリセルが完全にプログラムされたかあるいは単に部分的にのみプログラムされたかに応じて、2つのラッチ224bと224cのうちの一方の値は、このようなセルから読み出された下位ページすなわち第1のページ値として、ラッチ224aへシフトされ、次いで、インターフェイス226を通ってデータバス231へ送信されることになる。完全にプログラムされたセルと、単に部分的にプログラムされたセルとを区別することができるようにするために、フラグ電荷蓄積セルが利用される。前に参照した米国特許出願第10/237,426号特許文献21並びに、シバタらの米国特許第6,657,891号特許文献22に開示されているように、フラグセルはメモリアレイ内のメモリセル行の中に組み込まれ、これらのフラグセルは読み出し処理時にメモリセルと共に読み出される。したがって、米国特許第6,657,891号特許文献22に記載されているアーキテクチャ図3に関して記載したものなどと同じアーキテクチャを採用して、メモリアレイ300内の少なくともいくつかの行の各々の中に対応するフラグ電荷蓄積セルを組み込むようにしてもよい。セクタの各々には少なくとも1つの対応するフラグ電荷蓄積セルが含まれる。セクタ112、114、116、118内の対応するフラグセルの位置は図6Aの矢印FCによって示されている。シバタらの特許に記載されているような1つの実施構成では、第1のプログラミングパス中にフラグセルの第1のページすなわち下位ページビットは状態1のまま残り、0へ変えられることはない。第2のページをプログラムする第2のプログラミングパス中、フラグセルの第2のページすなわち上位ページビットは1から0へ変えられて、第2のプログラミングパスが行われたことが示される。前述したように、第2のプログラミングパス中、メモリセルが読み出されて、この内部データのロード処理時に下位ページのビット値が得られることになる。好ましくは、この内部データのロード処理中、下位のすなわち第1のフラグビットも1から0へ変えられることが望ましい。したがって、第2のプログラミングパスの終了後、上位および下位の第2および第1のフラグセルのフラグビットの双方は11から00へ変えられている。1つの実施形態では、第1および第2の下位および上位ページのビット値の変動は制御回路310によって実行することも可能である。或いは、適当なビット値を単複のフラグセルに制御回路310により蓄積することも可能である。フラグデータの値を用いて、ホストデータすなわちユーザデータの終端部のようなホストデータすなわちユーザデータの境界にマークを付すことも可能である。前述した例では、第2のパス中にプログラムされた単複のフラグセルのセクタすなわちグループ内のフラグデータが値00を有することになるのに対して、第2のパス中のプログラムされなかったフラグセルのセクタすなわちグループ内のフラグデータは値11を有することになる。次いで、単複のフラグセルの2つの隣接するセクタすなわちグループのビット値が11と00の間で変わるとき、2つの隣接するセクタすなわちグループ内の電荷蓄積素子に蓄積されたホストデータすなわちユーザデータの境界が示されることになる。共通のワードラインによって制御される複数のセクタすなわちグループ間の2つのような2つの隣接するセクタすなわちグループ間の連結部でホストデータすなわちユーザデータの終端部を示すようにすることも可能であり、これらの隣接セクタすなわちグループのフラグデータは連結部の両端にわたって11から00へ変化する。フラグデータの値を追跡することによって、以下に説明するような電荷蓄積素子の読み出しのようなエラーを含む結果の防止を図ることが可能となる。読み出し処理時に、読み出しレベルは、読み出し対象のメモリセルが完全にプログラムされているか、或いは単に部分的にプログラムされているかに依って決められる。このことは、読み出し対象のメモリセル行内に組み込まれたフラグビットの読み出しにより確かめることが可能となる。前述したように、第2のプログラミングパスの内部データロードの処理中に、下位のフラグビットすなわち第1のフラグビットも1から0へ変更される。したがって、この下位のフラグビットすなわち第1のフラグビットの読み出しの際に、正確な読み出しレベルの決定が可能となる。すなわち、このビットが1であれば、読み出しレベルはVaとなるが、このビットが0であれば、読み出しレベルはVbとなる。これは、ページが単に部分的にプログラムされているページの境界を除いて、すべてのメモリセルが完全にプログラムされているメモリアレイ300内の行のほとんどでメモリセルの読み出しを行う場合にも真となる。したがって、2つのフラグビットの各々を0にセットすることによって、ページ内のメモリセルから読み出される、読み出しレベルVbを含むページ用の下位ページすなわち第1のページを第1のすなわち下位のフラグビットの読み出しと共に終了することが可能となる。したがって、ページ全体が完全にプログラムされたほとんどのインスタンスでは、フラグビットの検知および状態マシンの調整が可能となり、その結果読み出しレベルVaを用いて第2の読み出し処理を行う必要性がなくなることになる。したがって、フラグデータの読み出し結果に依存して、下位ページすなわち第1のページ値をセルから読み出すための読み出しレベルの別のシーケンスを印加することも可能となる。ページ内のセルのすべてが完全にプログラムされていることがフラグデータによって示された場合、読み出しレベルVbを伴う1回だけの読み出し処理で充分となるのに対して、ページ内のセルのすべてが完全にプログラムされているわけではないことがフラグデータによって示された場合、読み出しレベルVbの後に読み出しレベルVaを伴う2回の読み出し処理が必要とになる。この結果、異なる読み出しシーケンスが利用可能となり、読み出されたフラグデータの値に応じて適当なシーケンスが選択され、利用されることになる。前述したことから、部分的にプログラムされたページを読み出すにはさらに多くの時間が必要となることは明らかである。というのは、完全にはプログラムされていないページ内のセクタ用の2つの異なる読み出しレベルで下位のすなわち第1のページデータがシーケンシャルに読み出されるからである。この目的のために、図8Aおよび図8Bの制御回路310内の状態マシン312は、ページを充填するのにデータが不十分であると判定されると、バス301内の読み出し/話中信号ライン個々には図示せずを介して話中信号をホストコントローラへ送信する。次いで、この状態マシンはそのタイミング信号を調整して、完全にはプログラムされていないメモリセルの読み出し処理用としてさらに多くの時間を許可することになる。制御回路310は、フラッシュメモリからデータの読み出しを行う際にさらに多くの呼出し時間があることをユーザに認知させるように順次ホストコントローラに通知する。ダミーの時間を用いてキャッシュタイミングと共にしきい値電圧または蓄積レベルを読み出す場合、11から00へのフラグビットの変更が検出されると、制御回路310内の状態マシンはしきい値電圧の蓄積レベルを読み出すためのダミーの時間を長くして、2つの異なる読み出しレベル用としてシーケンシャルに読み出しを行うためのさらに多くの時間を許可するようにする。図12は、しきい値電圧の分布状態、並びに、新規の代替のコード構成に従ってこの分布状態により表されたデータの例であり、本発明の別の実施形態を例示するものである。図10Aおよび図12の比較によって、これら2つのコード構成が、図12の新たなコード構成では、しきい値電圧の分布状態Bが10を表し、しきい値電圧の分布状態Cが00を表すという点で異なるものであることは明らかでる。これに対して、図10Aのコード構成では、分布状態Bは00を表し、分布状態Cは10を表している。図10Aおよび図12の比較によって、双方のコード構成における4つの異なる分布状態E、A、B、Cが同じ下位ページすなわち第1のページ値1100を有するものであることも明らかになる。第1のプログラミングパス中に図12の新たなコード構成を用いる場合、メモリセルはプログラムされず、その結果、このメモリセルは、ホストデータが1の場合の状態Eのままとなるか、またはホストデータが0の場合の分布状態B’にプログラムされるかのいずれかとなる。第2のプログラミングパス中、上位ページすなわち第2のページのビット値が1であれば、メモリセルはプログラムされず、その結果、このメモリセルは分布状態Eのままとなるか、或いは分布状態Bへ狭められた状態になる。ユーザデータが0であれば、第1のプログラミングパスの後に、メモリセルの初期分布状態に応じてメモリセルは分布状態AまたはCにプログラムされる。この結果、図5Cおよび図10Aのコード構成のユーピン効果の場合と類似して、図12の新たなコード構成もユーピン効果を小さくすることになる。図12から、第1のプログラミングパスにおける上位ページすなわち第2のページの状態EおよびBの値の双方が1であることが明らかである。このことは、ホストデータすなわちユーザデータがページ全体を充填するのに不十分な場合、データラッチ内のユーザデータを利用して第2のプログラミングパス時にメモリセルをプログラムする際、上位ページデータすなわち第2のページデータが不十分なメモリセルが、エラーを含む分布状態へプログラムされないことを意味することになる。これは、図5Cおよび図10Aのコード構成を使用する状況とは異なり、セルが状態Eまたは状態B’であるかどうかにかかわらず真である。ホストデータが第1のページすなわち下位ページ用のデータ0を有し、しかも、位置122’用の第2のページすなわち上位ページ用のデータが存在しない場合の図6Bの例を再度参照すると、この位置用の第2のページすなわち上位ページ用のデフォルト値は1となり、その結果位置122’は値10で充填されることになる。この値は、図10Aではコード構成に従う分布状態Cへのプログラミングを必要とするが、図12ではコード構成に従う分布状態Bへのプログラミングを必要とする。ホストデータの下位ページすなわち第1のページ値が0であるため、セクタ114内の対応するメモリセルは第1のプログラミングパス時に状態B’へすでにプログラムされていて、状態Bの方へほんのわずかこのメモリセルを動かす必要がある。個々のセクタ114、116、118が状態EまたはB’の状態のまま残っている従来の実施形態とは対照的に、この実施形態では、上位ページデータを用いて第1のセクタ112をプログラムするとすぐに、以前状態B’にあったそのページの他のすべてのセルが状態Bへ動かされることに留意されたい。したがって、新たなホストデータが、ページのセクタ114、116、118内のメモリセルの第2のページすなわち上位ページをプログラムするのに再び利用可能になると、これらのセクタ内のメモリセルはすでに正確なしきい値電圧の分布状態にあることになる。図12に例示するコード構成を利用することによって、前述した部分的ページプログラミングは生じなくなることが観察される。第1のプログラミングパスの後の第2のページすなわち上位ページの同じ値によって、セルに対する2つの可能な蓄積レベルを表す場合、同じ文脈で図12のコード構成とは異なるコード構成を用いて、部分的ページプログラム問題の解決を図ることが可能となる。2つの可能な状態が、図5Cと図10Aの消去すなわち、リセット状態で、かつ、B状態である場合、双方の状態の第2のページ値は同じとなることが望ましい。この場合、部分的ページプログラム問題は生じなくなる。図12ではコード構成に関して部分的ページプログラム問題が生じないため、ページの個々のセクタ用として別個のフラグ記憶セルを設ける必要はなくなる。上位および下位の第1および第2のページビット値の双方の値が、図12のコード構成では分布状態AとBとの間で変動し、その結果、コード構成はグレーコードとはならないことも図12から明らかである。このことは、例えば当業で周知の種々の種類の妨害メカニズムを通じて分布状態がBからAへドリフトした場合、ビットエラーが論理データの2つのページで検知され、次いで、このコード構成を利用する場合、さらに多くの誤り訂正ECCビットが望ましくなる場合が生じることを意味する。さらに、上位すなわち第2のページ値情報をメモリセルから得るために、3つの異なる読み出しレベルで読み出しを行う必要がある場合もある。その結果、この場合の読み出し時間の方が図10Aのコード構成を採用する場合の読み出し時間と比べて長くなる。しかし、図12のコード構成は、図9のデータラッチ224bのような追加のデータラッチを必要としないという点で利点がある。この設計に対する1つの可能な代替例として、独立に制御される読み出し/書き込みモジュールによって、図6Aの4つのセルグループ112、114、116、118を制御することができるようにする例が挙げられる。この代替例は、部分的ページプログラム問題を解決する際にさらなる柔軟性を与えることになるものではあるが、メモリデバイスのダイサイズを大きくするものとなる。図10および図12の双方の方式の1つの利点として、読み出し/書き込みモジュールを簡単に制御することができるため、ダイサイズが大きくならないという利点、或いは、少量だけ増えるという利点が挙げられる。以上、種々の実施形態を参照しながら本発明について説明してきたが、添付の請求項並びにこれらの請求項と均等なものによって画定される本発明の範囲から逸脱することなく、変更並びに修正を行うことも可能であることを理解されたい。例えば、実施形態はNANDアレイでの動作を参照しながら説明することもできるが、この実施形態はNORアレイに対しても同様に適用可能であり、このような変形例およびその他の変形例は本発明の範囲に含まれるものとする。4つのセクタに個々にグループ化されたメモリセル行を参照しながら本発明を例示したが、これらのメモリセル行はさらに多数のまたはさらに少数のセクタにグループ化することも可能であり、このような異なるグループ化方式の場合にも本願明細書で説明した利点と同じ利点を利用することが可能となる。本願明細書で参照したすべての参考文献は参照により援用されている。"