(57)【要約】  メモリの読み出しまたは書き込み操作の待ち時間の一部は、Ｉ／Ｏバスを通じてメモリのデータラッチで行われるデータの入出力によるものである。メモリコアが読み出し操作でビジー状態にあるときに、メモリがこれらのデータキャッシング操作と転送操作の一部をバックグラウンドで実行することにより不揮発性メモリ装置の性能を向上させる方法および回路がある。読み出しデータキャッシュ方式の実施にあたって、現在のワード線における現在のページの読み出しに先立ち前もって必要なデータ読み出しを近傍のワード線で実行しなければならない場合でも、前もって必要な読み出しとそれにともなうＩ／Ｏアクセスを前のページを読み出しサイクル中に先回りして実行すれば、読み出し済みのページでＩ／Ｏアクセスが行われている間に現在の読み出しを実行できる。
2009536424.tif 000002
【特許請求の範囲】
【請求項１】
アドレス指定可能なメモリセルのページを関連するワード線上に具備する不揮発性メモリ装置であって、
アドレス指定可能なページの各メモリセルについて用意され、一定数のビットをラッチする容量を持つ１組のデータラッチと、
指定されたページ群に対する読み出し操作を制御する状態マシンと、を備え、
前記状態マシンは、一連の読み出しサイクルの各サイクルでページデータを感知しかつラッチし、現在の読み出しサイクルにおける感知とラッチは、現在のワード線上の現在のページデータを対象とし、近傍のワード線からの摂動を補正するために近傍のワード線からの前もって必要なデータに応じて実行され、
前記状態マシンは、現在の読み出しサイクルに先立ち現在のページのために前もって必要なデータを先制的に感知しかつラッチし、
前記状態マシンは、第１の読み出しサイクルとは別の現在の読み出しサイクルで現在のページの前記感知およびラッチを実行し、その間に直前の読み出しサイクルで感知しラッチした前のページを出力するメモリ装置。
【請求項２】
請求項１記載のメモリ装置において、
メモリセルは、１ビットのデータを各々蓄積するメモリ装置。
【請求項３】
請求項１記載のメモリ装置において、
メモリセルは、２ビット以上のデータを各々蓄積し、ワード線上の各メモリセルのページには、各メモリセルの個々のビットに対応する２ページ以上のバイナリデータが関連するメモリ装置。
【請求項４】
請求項３記載のメモリ装置において、
前記現在のページのために前もって必要なデータを感知しかつラッチする状態マシンは、
前記前もって必要な感知からの前もって必要なデータの一部として入手する第１のフラグを出力し、
第１のフラグに応じて前もって必要なデータを調整し、
現在のページについて補正が必要か否かを指示するために調整済みの前もって必要なデータをラッチするメモリ装置。
【請求項５】
請求項４記載のメモリ装置において、
第１のフラグは、近傍のワード線上の前もって必要なメモリセルのページが全てのビットでプログラム済みか否かを指示するメモリ装置。
【請求項６】
請求項５記載のメモリ装置において、
近傍のワード線が全てのビットでプログラムされていないことを第１のフラグが指示する場合、補正が不要であることを指示するために前もって必要なデータが調整されるメモリ装置。
【請求項７】
請求項５記載のメモリ装置において、
近傍のワード線が全てのビットでプログラムされていることを第１のフラグが指示する場合、補正が必要であることを指示するために前もって必要なデータが調整されるメモリ装置。
【請求項８】
請求項３記載のメモリ装置において、
前記現在のページを感知しかつラッチする状態マシンは、
前記調整済みの前もって必要なデータからの補正により現在のページの感知を実行し、
現在のページの一部として入手する第２のフラグを状態マシンのために出力し、
第２のフラグに応じ、状態マシンはページを変えずに残すことにより、またはページを所定の値まで調整することにより、または１組の別の感知条件下で現在のページの前記感知を繰り返して得た新たなページに置き換えることにより、現在のページをリフレッシュし、
リフレッシュされた現在のページを次の読み出しサイクルで出力するためにラッチするメモリ装置。
【請求項９】
請求項８記載のメモリ装置において、
前記調整済みの前もって必要なデータの指示により補正を必要とするメモリセルでの状態マシンによる現在のページの感知は、所定のブーストによるワード線電圧で実行されるメモリ装置。
【請求項１０】
請求項８記載のメモリ装置において、
第２のフラグは、現在のワード線上の現在のメモリセルのページが全てのビットでプログラム済みか否かを指示するメモリ装置。
【請求項１１】
請求項１０記載のメモリ装置において、
前記状態マシンは、近傍のワード線が全てのビットでプログラムされていることを第２のフラグが指示する場合、現在のページを変えずに残すことにより現在のページをヌル操作でリフレッシュするメモリ装置。
【請求項１２】
請求項１０記載のメモリ装置において、
メモリセルは２ビットのデータを各々蓄積し、
メモリセルのページは下位ビットページと上位ビットページとから構成され、
近傍のワード線が全てのビットでプログラムされていないことを第２のフラグが指示し、かつ感知の対象となる現在のページが上位ビットページである場合、前記現在のページのリフレッシュは、上位ビットページがプログラムされていないことを指示する所定のビットに現在のページをすべてリセットすることによって行われるメモリ装置。
【請求項１３】
請求項１０記載のメモリ装置において、
メモリセルは２ビットのデータを各々蓄積し、
メモリセルのページは下位ビットページと上位ビットページとから構成され、
近傍のワード線が全てのビットでプログラムされていないことを第２のフラグが指示し、かつ感知の対象となる現在のページが下位ビットページである場合、前記現在のページのリフレッシュは、別の所定の基準に対して現在のページを感知することによって行われるメモリ装置。
【請求項１４】
アドレス指定可能なメモリセルのページを関連するワード線上に具備する不揮発性メモリ装置であって、
アドレス指定可能なページの各メモリセルについて用意され、一定数のビットをラッチする容量を持つ１組のデータラッチと、
指定されたページ群に対する読み出し操作を制御する手段と、
一連の読み出しサイクルの各サイクルでページデータを感知しかつラッチする手段であって、現在の読み出しサイクルで感知しかつラッチする前記手段は、現在のワード線上の現在のページデータを対象とし、近傍のワード線からの摂動を補正するために近傍のワード線からの前もって必要なデータに応答する手段と、
現在の読み出しサイクルに先立ち現在のページのために前もって必要なデータを先制的に感知しかつラッチする手段と、を備え、
第１の読み出しサイクルとは別の現在の読み出しサイクルで感知しかつラッチする前記手段は、直前の読み出しサイクルで感知しラッチした前のページを出力しているときに現在のページを感知しかつラッチするメモリ装置。
【請求項１５】
アドレス指定可能なメモリセルのページを関連するワード線上に具備する不揮発性メモリ装置であって、
２つのバイナリページ群を一斉に感知し、かつ２つのバイナリページを別々にラッチする手段と、
最初の２サイクルを除く全ての動作サイクルでラッチされたバイナリページのデータを出力する手段と、を備え、
感知しかつラッチする前記手段は２動作サイクルおきに作動し、その間にラッチされたバイナリページを出力する前記手段もまた作動するメモリ装置。
【請求項１６】
アドレス指定可能なメモリセルのページを関連するワード線上に具備する不揮発性メモリ装置を読み出す方法であって、
一連の読み出しサイクルの各サイクルでページデータを感知しかつラッチするステップであって、現在の読み出しサイクルで感知しかつラッチする前記ステップは、現在のワード線上の現在のページデータを対象とし、近傍のワード線からの摂動を補正するために近傍のワード線からの前もって必要なデータに応じて実行されるステップと、
現在の読み出しサイクルに先立ち現在のページのために前もって必要なデータを先制的に感知しかつラッチするステップと、
第１の読み出しサイクルとは別の現在の読み出しサイクルで現在のページを感知しかつラッチする前記ステップを実行し、その間に直前の読み出しサイクルで感知しラッチした前のページを出力するステップと、
を含む方法。
【請求項１７】
請求項１６記載の方法において、
メモリセルは、１ビットのデータを各々蓄積する方法。
【請求項１８】
請求項１６記載の方法において、
メモリセルは、２ビット以上のデータを各々蓄積し、ワード線上の各メモリセルのページには、各メモリセルの個々のビットに対応する２ページ以上のバイナリデータが関連する方法。
【請求項１９】
請求項１８記載の方法において、
前記現在のページのために前もって必要なデータを感知しかつラッチするステップは、
前記前もって必要な感知からの前もって必要なデータの一部として入手する第１のフラグを出力するステップと、
第１のフラグに応じて前もって必要なデータを調整するステップと、
現在のページについて補正が必要か否かを指示するために調整済みの前もって必要なデータをラッチするステップと、
をさらに含む方法。
【請求項２０】
請求項１９記載の方法において、
第１のフラグは、近傍のワード線上の前もって必要なメモリセルのページが全てのビットでプログラム済みか否かを指示する方法。
【請求項２１】
請求項２０記載の方法において、
近傍のワード線が全てのビットでプログラムされていないことを第１のフラグが指示する場合、補正が不要であることを指示するために前もって必要なデータを調整する方法。
【請求項２２】
請求項２０記載の方法において、
近傍のワード線が全てのビットでプログラムされていることを第１のフラグが指示する場合、補正が必要であることを指示するために前もって必要なデータを調整する方法。
【請求項２３】
請求項１８記載の方法において、
前記現在のページを感知しかつラッチするステップは、
前記調整済みの前もって必要なデータからの補正により現在のページを感知するステップを実行するステップと、
現在のページの一部として入手する第２のフラグを出力するステップと、
第２のフラグに応じ、ページを変えずに残すことにより、またはページを所定の値まで調整することにより、または１組の別の感知条件下で現在のページを感知する前記ステップを繰り返して得た新たなページに置き換えることにより、現在のページをリフレッシュするステップと、
リフレッシュされた現在のページを次の読み出しサイクルで出力するためにラッチするステップと、
をさらに含む方法。
【請求項２４】
請求項２３記載の方法において、
前記調整済みの前もって必要なデータの指示により補正を必要とするメモリセルで現在のページを感知するステップは、所定のブーストによるワード線電圧で実行される方法。
【請求項２５】
請求項２３記載の方法において、
第２のフラグは、現在のワード線上の現在のメモリセルのページが全てのビットでプログラム済みか否かを指示する方法。
【請求項２６】
請求項２５記載の方法において、
近傍のワード線が全てのビットでプログラムされていることを第２のフラグが指示する場合、現在のページをリフレッシュする前記ステップは、現在のページを変えずに残すヌル操作である方法。
【請求項２７】
請求項２５記載の方法において、
メモリセルは２ビットのデータを各々蓄積し、
メモリセルのページは下位ビットページと上位ビットページとから構成され、
近傍のワード線が全てのビットでプログラムされていないことを第２のフラグが指示し、かつ感知の対象となる現在のページが上位ビットページである場合、現在のページをリフレッシュする前記ステップは、上位ビットページがプログラムされていないことを指示する所定のビットに現在のページをすべてリセットすることによって行われる方法。
【請求項２８】
請求項２５記載の方法において、
メモリセルは２ビットのデータを各々蓄積し、
メモリセルのページは下位ビットページと上位ビットページとから構成され、
近傍のワード線が全てのビットでプログラムされていないことを第２のフラグが指示し、かつ感知の対象となる現在のページが下位ビットページである場合、現在のページをリフレッシュする前記ステップは、別の所定の基準に対して現在のページを感知することによって行われる方法。
【請求項２９】
アドレス指定可能なメモリセルのページを関連するワード線上に具備する不揮発性メモリ装置を読み出す方法であって、
２つのバイナリページ群を一斉に感知し、かつ２つのバイナリページを別々にラッチするステップと、
最初の２サイクルを除く全ての動作サイクルでラッチされたバイナリページのデータを出力するステップと、を含み、
感知しかつラッチする前記ステップは２動作サイクルおきに実行され、その間に前の動作サイクルからのラッチされたバイナリページを前記出力するステップもまた実行される方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的に電気的に消去可能でプログラム可能な読み出し専用メモリ（ＥＥＰＲＯＭ）やフラッシュＥＥＰＲＯＭをはじめとする不揮発性半導体メモリに関し、具体的には重複メモリ操作を可能にする共有ラッチ構造に基づくキャッシュ操作に関する。
【背景技術】
【０００２】
不揮発性電荷蓄積が可能な固体メモリ、特に形状因子が小さいカードにパッケージされたＥＥＰＲＯＭやフラッシュＥＥＰＲＯＭの形をとるものが最近、情報家電や家庭用電化製品を中心に様々なモバイルおよびハンドヘルド装置の記憶装置として盛んに選ばれている。同じく固体メモリであるＲＡＭ（ランダムアクセスメモリ）と違って、フラッシュメモリは不揮発性であって、電源を切った後にも蓄積されたデータを保持する。フラッシュメモリはコストが高くつくにもかかわらず、大容量記憶用途で使われることが多くなっている。ハードドライブやフロッピーディスク等、回転する磁気媒体を基礎とする従来の大容量記憶は、モバイル／ハンドヘルド環境に不向きである。なぜならば、ディスクドライブはかさばり、機械的な故障が起きやすく、待ち時間が長く、電力を食うからである。このような望ましくない属性を持つディスク方式の記憶装置は、ほとんどのモバイル／ポータブルな用途において実用的でない。他方、埋め込み形で着脱可能なカードの形をとるフラッシュメモリは、その小さなサイズと、低消費電力と、高速度と、高い信頼性ゆえにモバイル／ハンドヘルド環境に理想的にマッチする。
【０００３】
ＥＥＰＲＯＭと電気的にプログラム可能な読み出し専用メモリ（ＥＰＲＯＭ）は、消去が可能で、そのメモリセルに新しいデータを書き込める、すなわち「プログラム」できる、不揮発性メモリである。いずれも半導体基板のソース領域とドレイン領域との間のチャネル領域上に配置された電界効果トランジスタ構造による導電性フローティング（非接続）ゲートを利用する。さらにこのフローティングゲートの上にコントロールゲートを設ける。トランジスタのしきい値電圧特性は、フローティングゲート上に保持される電荷量によって制御される。つまり、フローティングゲート上の所与のレベルの電荷に応じてコントロールゲートに印加すべき対応する電圧（しきい値）があり、これが印加されることによりトランジスタは「オン」に切り替わり、ソース領域とドレイン領域との導通が可能となる。
【０００４】
フローティングゲートは一定範囲の電荷を保持でき、しきい値電圧ウィンドウ内の任意のしきい値電圧レベルまでプログラムできる。しきい値電圧ウィンドウのサイズは装置の最小しきい値レベルと最大しきい値レベルによって決まり、これはフローティングゲートにプログラムできる電荷の範囲に相当する。しきい値ウィンドウは通常、メモリ装置の特性と、動作条件と、履歴とに左右される。セルの記憶状態は、基本的にはウィンドウ内の個々の分解可能なしきい値電圧レベル範囲によって限定される。
【０００５】
メモリセルとして機能するトランジスタは通常、２通りの方法のいずれか一方によって「プログラム済み」状態までプログラムされる。「ホットエレクトロン注入法」では、ドレインに印加される高電圧によって基板チャネル領域上の電子が加速する。同時に、コントロールゲートに印加される高電圧は、薄いゲート誘電体を通じてフローティングゲートまでホットエレクトロンを引き寄せる。「トンネル注入法」では、基板に比べて高い電圧をコントロールゲートに印加する。かくして、電子は基板から介在するフローティングゲートまで引き寄せられる。
【０００６】
メモリ装置の消去にはいくつか方法がある。ＥＰＲＯＭの場合、紫外線によってフローティングゲートから電荷を取り除くことによってメモリをまとめて消去できる。ＥＥＰＲＯＭの場合、コントロールゲートに比べて高い電圧を基板に印加し、フローティングゲートの電子を薄い酸化物を通じて基板チャネル領域まで誘導することによってメモリセルを電気的に消去できる（すなわち、ファウラ・ノルドハイム・トンネリング）。通常、ＥＥＰＲＯＭはバイト単位で消去可能である。フラッシュＥＥＰＲＯＭの場合、メモリが一度にまるごと、または一度に１ブロック以上が電気的に消去され、ブロックは５１２バイト以上のメモリを構成することがある。
【０００７】
不揮発性メモリセルの例
メモリ装置は通常、１つ以上のメモリチップをカード上に実装させる。それぞれのメモリチップは、復号器や消去、書き込み、および読み出し回路等の周辺回路によって支援されるメモリセルアレイを備える。より精緻なメモリ装置には、知的で高度なメモリ操作とインターフェイスを実行するコントローラも付属される。現在、商業的に成功を収めた不揮発性の固体メモリ装置が数多く使われている。これらのメモリ装置には様々なタイプのメモリセルが採用され、各種のメモリセルは１つ以上の電荷蓄積素子を持つ。
【０００８】
図１Ａ〜図１Ｅは、様々な不揮発性メモリセルの例を概略的に示すものである。
図１Ａは、フローティングゲートで電荷を蓄積するＥＥＰＲＯＭセルの形をとる不揮発性メモリを概略的に示す。電気的に消去可能でプログラム可能な読み出し専用メモリ（ＥＥＰＲＯＭ）はＥＰＲＯＭに似た構造を持つほか、適度の電圧が印加されたときにフローティングゲートで電気的に電荷を装填し除去するメカニズムが用意され、紫外線に晒す必要はない。米国特許第５，５９５，９２４号（特許文献１）には、そのようなセルの例とこの製造方法が記載されている。
【０００９】
図１Ｂは、選択ゲートとコントロールゲートまたはステアリングゲートの両方を具備するフラッシュＥＥＰＲＯＭセルを概略的に示す。メモリセル１０は、ソース１４およびドレイン１６拡散層間に「分割チャネル」１２を具備する。セルは、２つの直列トランジスタＴ１およびＴ２によって事実上形成される。Ｔ１は、フローティングゲート２０とコントロールゲート３０とを具備するメモリトランジスタとして機能する。フローティングゲートで選択可能な電荷量を蓄積できる。チャネルのＴ１部分を流れる電流量は、コントロールゲート３０の電圧と介在するフローティングゲート２０に存在する電荷量とに左右される。Ｔ２は、選択ゲート４０を具備する選択トランジスタとして機能する。選択ゲート４０の電圧によってＴ２がオンに切り替わると、チャネルのＴ１部分の電流はソースおよびドレイン間を通過できる。選択トランジスタは、コントロールゲートの電圧から独立したスイッチをソース−ドレインチャネル沿いに提供する。１つの利点として、フローティングゲートにおける電荷空乏（正）のためにゼロコントロールゲート電圧でなお導通するセルをオフに切り替えるのにこれを役立てることができる。もう１つの利点として、ソース側の注入プログラミングの実施がより容易になる。
【００１０】
分割チャネルメモリセルのシンプルな実施形態では、図１Ｂにて点線で概略的に示すように、選択ゲートとコントロールゲートを同じワード線へ接続する。それには、チャネルの一部分の上に電荷蓄積素子（フローティングゲート）を配置し、もう１つのチャネル部分と電荷蓄積素子の上にはコントロールゲート構造（ワード線の一部）を配置する。これにより２つの直列トランジスタを持つセルが事実上形成され、一方のトランジスタ（メモリトランジスタ）は、電荷蓄積素子上の電荷量とワード線上の電圧との組み合わせによりチャネルのこの部分を流れる電流量を制御し、他方のトランジスタ（選択トランジスタ）はゲートとして機能するワード線だけを持つ。米国特許第５，０７０，０３２号（特許文献２）、第５，０９５，３４４号（特許文献３）、第５，３１５，５４１号（特許文献４）、第５，３４３，０６３号（特許文献５）、および第５，６６１，０５３号（特許文献６）には、そのようなセルの例と、メモリシステムにおけるその使用と、製造方法とが記載されている。
【００１１】
図１Ｂに示された分割チャネルセルのより精緻な実施形態では、選択ゲートとコントロールゲートが独立し、点線で結ばれていない。一実施例では、ワード線に対し垂直の制御（またはステアリング）線へ接続されたセルアレイに１列のコントロールゲートを具備する。その効果として、選択されたセルの読み出しやプログラミングにあたってワード線が２つの機能を同時に果たさずにすむ。２つの機能とは（１）選択トランジスタのゲートとしての役割を果たすことであって、選択トランジスタをオンおよびオフに切り替えるにあたって適度の電圧を必要とし、（２）ワード線と電荷蓄積素子との電界（容量）結合を通じて電荷蓄積素子の電圧を所望のレベルまで持っていくことである。多くの場合、これらの機能の両方を１つの電圧で適切に遂行するのは困難である。コントロールゲートと選択ゲートの個別制御により、ワード線は機能（１）を果たすだけでよく、機能（２）は追加の制御線が果たす。この能力により、対象となるデータにプログラミング電圧を適合させる高性能プログラミング設計が可能となる。フラッシュＥＥＰＲＯＭアレイにおける独立のコントロール（ステアリング）ゲートの使用は、例えば米国特許第５，３１３，４２１号（特許文献７）および第６，２２２，７６２号（特許文献８）に記載されている。
【００１２】
図１Ｃは、二重フローティングゲートと独立の選択ゲートおよびコントロールゲートとを具備するもう１つのフラッシュＥＥＰＲＯＭセルを概略的に示す。メモリセル１０は図１Ｂのものに類似するが、３つの直列トランジスタを事実上具備する。この種のセルでは、ソースおよびドレイン拡散層間のチャネル上に２つの蓄積素子（すなわちＴ１−左とＴ１−右）があり、その間には選択トランジスタＴ１がある。メモリトランジスタはフローティングゲート２０’および２０”とコントロールゲート３０’および３０”をそれぞれ具備する。選択トランジスタＴ２は選択ゲート４０によって制御される。読み出しや書き込みにあたって、一度に１対のメモリトランジスタのいずれか一方のみにアクセスする。蓄積単位Ｔ１−左にアクセスするときにはＴ２とＴ１−右の両方がオンになり、チャネルのＴ１−左部分の電流はソースおよびドレイン間を通過できる。同様に、蓄積単位Ｔ１−右にアクセスするときにはＴ２とＴ１−左がオンに転換される。消去は、選択ゲートポリシリコンの一部分をフローティングゲートに近づけ、十分な正電圧（例えば、２０Ｖ）を選択ゲートに印加し、フローティングゲートの中に蓄積された電子を選択ゲートポリシリコンへ抜けさせることによって達成する。
【００１３】
図１Ｄは、ＮＡＮＤセルの形に構成された一連のメモリセルを概略的に示す。ＮＡＮＤセル５０は、ソースおよびドレインによってデイジーチェーン方式で接続された一連のメモリトランジスタＭ１，Ｍ２・・・Ｍｎ（ｎ＝４，８，１６またはそれ以上）からなる。１対の選択トランジスタＳ１、Ｓ２は、ＮＡＮＤセルのソース端子５４とドレイン端子５６を通じて外部に至るメモリトランジスタチェーンの接続を制御する。メモリアレイにおいてソース選択トランジスタＳ１がオンに転換されると、ソース端子はソース線へ結合される。同様に、ドレイン選択トランジスタＳ２がオンに転換されると、ＮＡＮＤセルのドレイン端子はメモリアレイのビット線へ結合される。チェーンの中の各メモリトランジスタは、所与の電荷量を蓄積して目的の記憶状態を表現する電荷蓄積素子を具備する。各メモリトランジスタのコントロールゲートは読み出し操作と書き込み操作を制御する。選択トランジスタＳ１、Ｓ２のコントロールゲートは、それぞれのソース端子５４とドレイン端子５６を介したＮＡＮＤセルへのアクセスを制御する。
【００１４】
ＮＡＮＤセルの中でアドレス指定されたメモリトランジスタを読み出したりプログラミング中にベリファイしたりするときには、そのコントロールゲートに適切な電圧を供給する。同時に、ＮＡＮＤセル５０の中でアドレス指定されていない残りのメモリトランジスタは、それぞれのコントロールゲートに印加される十分な電圧によって完全にオンに転換される。かくして、個々のメモリトランジスタのソースからＮＡＮＤセルのソース端子５４にかけて導電経路ができあがり、個々のメモリトランジスタのドレインからセルのドレイン端子５６にかけても同様である。米国特許第５，５７０，３１５号（特許文献９）、第５，９０３，４９５号（特許文献１０）、第６，０４６，９３５号（特許文献１１）には、そのようなＮＡＮＤセル構造を持つメモリ装置が記載されている。
【００１５】
図１Ｅは、誘電体層で電荷を蓄積する不揮発性メモリを概略的に示す。前述した導電性フローティングゲート素子の代わりに誘電体層を使用している。エイタンらの「ＮＲＯＭ：新しい局限トラッピング、２ビット不揮発性メモリセル」，ＩＥＥＥ電子デバイスレター，２１巻，１１号，２０００年１１月，５４３〜５４５ページ(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) には、このような誘電性蓄積素子を利用するメモリ装置が記載されている。ソースおよびドレイン拡散層間のチャネルにまたがってＯＮＯ誘電体層が延在する。１データビットのための電荷はドレインに近い誘電体層に局在し、他のデータビットのための電荷はソースに近い誘電体層に局在する。例えば、米国特許第５，７６８，１９２号（特許文献１２）および第６，０１１，７２５号（特許文献１３）は２つの二酸化ケイ素層間にトラッピング誘電体をはさむ不揮発性メモリを開示している。多状態データ記憶は、誘電体の中で空間的に隔てられた電荷蓄積領域のバイナリ状態を別々に読み出すことによって実現する。
【００１６】
メモリアレイ
メモリ装置は通常、行列に配置されワード線とビット線によってアドレス指定できる二次元メモリセルアレイを含む。このアレイはＮＯＲタイプかＮＡＮＤタイプのアーキテクチャに従って形成できる。
【００１７】
ＮＯＲアレイ
図２は、ＮＯＲメモリセルアレイの一例を示す。これまでＮＯＲタイプのアーキテクチャを持つメモリ装置は、図１Ｂまたは図１Ｃに描かれたタイプのセルを用いて実装されてきた。各メモリセル行はそれぞれのソースとドレインによってデイジーチェーン方式で接続される。この設計は仮想接地設計と呼ばれることがある。各々のメモリセル１０はソース１４と、ドレイン１６と、コントロールゲート３０と、選択ゲート４０とを具備する。行内のセルの選択ゲートはワード線４２へ接続される。列内のセルのソースおよびドレインは選択されたビット線３４および３６へそれぞれ接続する。メモリセルのコントロールゲートと選択ゲートを別々に制御する実施例では、ステアリング線３６によって列内のセルのコントロールゲートが接続される。
【００１８】
多くのフラッシュＥＥＰＲＯＭ装置は、コントロールゲートと選択ゲートがともに接続されたメモリセルを用いて実装される。この場合、ステアリング線が必要なく、ワード線が各行の全セルのコントロールゲートと選択ゲートを単に接続する。米国特許第５，１７２，３３８号（特許文献１４）および第５，４１８，７５２号（特許文献１５）にはこれらの設計の例が開示されている。これらの設計ではワード線は基本的に２つの役割、すなわち行選択の役割と、読み出しやプログラミングにあたって行内の全セルにコントロールゲート電圧を供給する役割とを果たす。
【００１９】
ＮＡＮＤアレイ
図３は、メモリセルの、例えば図１Ｄに示されたような、ＮＡＮＤアレイの一例を示す。ビット線は各ＮＡＮＤセル列に沿ってＮＡＮＤセルのドレイン端子５６へ結合する。ソース線はＮＡＮＤセル行の全ソース端子５４へ接続する。さらに、行沿いのＮＡＮＤセルのコントロールゲートは一連の対応するワード線へ接続する。接続されたワード線を通じてコントロールゲートに適切な電圧をかけて１対の選択トランジスタ（図１Ｄ参照）をオンに転換することにより、１行のＮＡＮＤセル全体をアドレス指定できる。ＮＡＮＤセルからなるチェーンの中である１つのメモリトランジスタを読み出すときには、チェーンの中の残りのメモリトランジスタがそれぞれの関連するワード線を通じて強くオンに転換されるため、チェーンの中を流れる電流は基本的に、読み出し対象セルに蓄積される電荷レベルに左右される。米国特許第５，５７０，３１５号（特許文献９）、第５，７７４，３９７号（特許文献１６）、および第６，０４６，９３５号（特許文献１１）には、ＮＡＮＤアーキテクチャアレイの例とメモリシステムの一部としてのこの動作が記載されている。
【００２０】
ブロック消去
電荷蓄積メモリ装置のプログラミングではさらに電荷を電荷蓄積素子に加える。このためプログラミング操作にあたって、電荷蓄積素子に既に存在する電荷を事前に除去（または消去）しなければならない。１つ以上のメモリセルブロックを消去するために消去回路（図示せず）を設ける。セルアレイ全体あるいはかなりのアレイのセル群を電気的に一斉に（すなわち、瞬時に）消去するＥＥＰＲＯＭ等の不揮発性メモリは、「フラッシュ」ＥＥＰＲＯＭと呼ばれる。消去の後にはセル群をプログラムできる。一斉に消去できるセル群は１つ以上のアドレス指定可能な消去単位からなる。消去単位またはブロックは通常１ページ以上のデータを蓄積し、このページがプログラミングと読み出しの単位となるが、１回の操作で２ページ以上をプログラムしたり読み出したりする場合もある。各ページは通常１セクタ以上のデータを格納し、このセクタのサイズはホストシステムによって決まる。磁気ディスクドライブの規格に従い５１２バイトのユーザデータからなるセクタはその一例であり、さらにここにユーザデータに関する、および／またはこれを格納するブロックに関する、何バイトかのオーバーヘッド情報が加わる。
【００２１】
読み出し／書き込み回路
通常の２状態ＥＥＰＲＯＭセルでは、１つ以上の電流区切りレベルを設定して伝導ウィンドウを２つの領域に分割する。予め決められた一定の電圧を印加することによってセルを読み出すときには、そのソース／ドレイン電流を区切りレベル（または基準電流ＩREF ）に比較することによって記憶状態を決定する。読み出される電流が区切りレベルのものより高ければ、セルは１つの論理状態（例えば、「０」状態）にあると判断する。他方、電流が区切りレベルのものに満たなければ、セルはもう１つの論理状態（例えば、「１」状態）にあると判断する。そのような２状態セルは１ビットのデジタル情報を蓄積する。外部からプログラムできる基準電流源は多くの場合、メモリシステムの一部として用意され、区切りレベル電流を生成する。
【００２２】
メモリ容量を増やすため、フラッシュＥＥＰＲＯＭ装置の実装密度は半導体技術の進歩にともないどんどん高くなっている。各メモリセルで３状態以上を蓄積することによって蓄積容量を増やす方法もある。
【００２３】
多状態またはマルチレベルＥＥＰＲＯＭメモリセルの場合、伝導ウィンドウを複数の区切り点で３つ以上の領域に分割し、各セルで２ビット以上のデータを蓄積できる。したがって、ＥＥＰＲＯＭアレイで蓄積できる情報は、各セルで蓄積できる状態数にともない増加する。米国特許第５，１７２，３３８号（特許文献１４）には、多状態またはマルチレベルメモリセルを備えるＥＥＰＲＯＭまたはフラッシュＥＥＰＲＯＭが記載されている。
【００２４】
実際には、コントロールゲートに基準電圧が印加されるときにセルのソース電極とドレイン電極にかけて伝導電流を感知することによってセルの記憶状態を読み出すのが普通である。セルのフローティングゲート上の各電荷につき、一定の基準コントロールゲート電圧に対応する伝導電流を検出できる。同様に、対応するしきい値電圧ウィンドウや伝導電流ウィンドウはフローティングゲートにプログラムできる電荷の範囲によって決まる。
【００２５】
分割された電流ウィンドウの中で伝導電流を検出する代わりに、コントロールゲートで検査の対象となる所与の記憶状態に対してしきい値電圧を設定し、伝導電流がしきい値電流より低いかまたは高いかを検出することも可能である。一実施例において、ビット線の静電容量を通じて放電する伝導電流のレートを調べることによってしきい値電流に対する伝導電流の検出を果たす。
【００２６】
図４は、フローティングゲートが一度に選択的に蓄積できる４通りの電荷Ｑ１〜Ｑ４でソース−ドレイン電流ＩD とコントロールゲート電圧ＶCGとの関係を示すものである。実線で描かれた４本のＩD 対ＶCG曲線はメモリセルのフローティングゲートにプログラムできる４通りの電荷レベルを表し、４通りの記憶状態にそれぞれ相当する。一例として、セル集団のしきい値電圧ウィンドウの範囲は０．５Ｖから３．５Ｖにおよぶ。しきい値ウィンドウをそれぞれ０．５Ｖの間隔で５つの領域に分割することにより、６通りの記憶状態に区切ることができる。例えば、図に示されたように、２μＡの基準電流ＩREF を使用するなら、Ｑ１でプログラムされるセルは、その曲線がＶCG＝０．５Ｖおよび１．０Ｖで区切られたしきい値ウィンドウの領域内でＩREF と交差するため、記憶状態「１」にあるとみなされる。同様に、Ｑ４は記憶状態「５」にある。
【００２７】
前の説明から分かるように、メモリセルで蓄積する状態が多ければ多いほどしきい値ウィンドウは細かく分割される。この場合、所要の分解能を達成するためにプログラミング操作と読み出し操作の精度を上げる必要がある。
【００２８】
米国特許第４，３５７，６８５号（特許文献１７）には２状態ＥＰＲＯＭをプログラムする方法が開示され、この方法ではセルが特定の状態までプログラムされるときに相継ぐプログラミング電圧パルスを受け、その都度フローティングゲートに電荷が加わる。パルスの合間にセルの読み返しまたはベリファイを行い、区切りレベルに対するソース−ドレイン電流を確認する。所望の状態に達した電流がベリファイされるとプログラミングは停止する。使用するプログラミングパルストレインの周期または振幅は上げることができる。
【００２９】
従来技術のプログラミング回路は、単純に消去または接地状態から目標状態に達するまでプログラミングパルスを印加しながらしきい値ウィンドウを通過していく。実際、十分な分解能を実現するには、分割された、または区切られた、各領域につき少なくとも５ステップ程度のプログラミングステップを踏む必要がある。２状態メモリセルならこの性能で許容される。しかし、多状態セルの場合、必要なステップ数が分割数にともない増加するため、プログラミングの精度または分解能を上げなければならない。例えば、１６状態セルで目標状態までプログラムするには少なくとも平均４０のプログラミングパルスが必要となる。
【００３０】
図５は、読み出し／書き込み回路１７０から行デコーダ１３０と列デコーダ１６０とを通じて典型的なメモリアレイ構成１００にアクセスするメモリ装置を概略的に示す。図２および図３との関係で説明したように、メモリアレイ１００にあるメモリセルのメモリトランジスタは、選択されたワード線とビット線との組を通じてアドレス指定できる。アドレス指定されたメモリトランジスタのそれぞれのゲートに適切な電圧を印加するにあたって、行デコーダ１３０は１つ以上のワード線を選択し、列デコーダ１６０は１つ以上のビット線を選択する。読み出し／書き込み回路１７０は、アドレス指定されたメモリトランジスタの記憶状態を読み出すため、または書き込むため（プログラムするため）にある。読み出し／書き込み回路１７０は、ビット線を通じてアレイ内の記憶素子へ接続するいくつかの読み出し／書き込みモジュールを備える。
【００３１】
図６Ａは、個々の読み出し／書き込みモジュール１９０の概略的ブロック図である。読み出しやベリファイのときには基本的に、選択されたビット線を通じて接続するアドレス指定されたメモリトランジスタのドレインを流れる電流をセンス増幅器で判定する。この電流は、メモリトランジスタに蓄積された電荷とそのコントロールゲート電圧に左右される。例えば、多状態ＥＥＰＲＯＭセルでは数通りのレベルの１つまでフローティングゲートを荷電できる。４レベルセルならこれを使って２ビットのデータを蓄積できる。センス増幅器によって検出されたレベルはレベル−ビット変換ロジックによって１組のデータビットに変換されて、データラッチに蓄積される。
【００３２】
読み出し／書き込み性能および精度に影響する要因
読み出しとプログラミングの性能を上げるために、アレイの中にある複数の電荷蓄積素子またはメモリトランジスタが並行して読み出されるか、またはプログラムされる。したがって、記憶素子からなる論理「ページ」の読み出しまたはプログラミングは一斉に行われる。既存のメモリアーキテクチャでは通常、１行の中にいくつかの交互ページがある。１ページの全記憶素子の読み出しまたはプログラミングは一斉に行われる。列デコーダは交互ページの各々を対応する読み出し／書き込みモジュールへ選択的に接続する。例えば、一実施例において、５３２バイト（５１２バイトにオーバーヘッドの２０バイトを加えたもの）のページサイズでメモリアレイを設計する。各列にドレインビット線があって各行につき２つの交互ページがあるなら列は８，５１２列になり、各ページには４，２５６列が関連している。全ての偶数ビット線か奇数ビット線のいずれかを並行して読み出すかまたは書き込むために、接続可能な４，２５６個のセンスモジュールがある。こうして、１ページ４，２５６ビット（すなわち、５３２バイト）のデータを並行して記憶素子のページから読み出すかまたはページへプログラムする。読み出し／書き込み回路１７０を形成する読み出し／書き込みモジュールは様々なアーキテクチャに組むことができる。
【００３３】
図５を参照し、読み出し／書き込み回路１７０は列をなす読み出し／書き込みスタック１８０に編成されている。それぞれの読み出し／書き込みスタック１８０は読み出し／書き込みモジュール１９０を積み重ねたものである。メモリアレイにおける列の間隔は、これを占有する１つまたは２つのトランジスタのサイズによって決まる。しかし、図６Ａから見てとれるように、読み出し／書き込みモジュールの回路はさらに多くのトランジスタと回路素子で実装され、多数の列にわたってスペースを占めることが見込まれる。占有された列の中で２つ以上の列を処理するため、多数のモジュールを互いに積み重ねる。
【００３４】
図６Ｂは、読み出し／書き込みモジュール１９０の積み重ねによって従来どおりに実装された図５の読み出し／書き込みスタックを示す。例えば、読み出し／書き込みモジュールが１６列にわたって延在するなら、１スタック８読み出し／書き込みモジュールの読み出し／書き込みスタック１８０を使って８列を並列処理できる。この読み出し／書き込みスタックは列デコーダを通じて一群に沿って８つの奇数（１，３，５，７，９，１１，１３，１５）列か８つの偶数（２，４，６，８，１０，１２，１４，１６）列に結合できる。
【００３５】
既に述べたように、従来のメモリ装置は一度に全ての偶数ビット線または全ての奇数ビット線に対して大掛かりな並列処理を行うことによって読み出し／書き込み操作を向上させる。この１行２交互ページのアーキテクチャは、読み出し／書き込み回路ブロックの整合問題の緩和に役立つ。これはビット線間の容量結合をいかにコントロールするかにも左右される。１組の読み出し／書き込みモジュールを偶数ページまたは奇数ページのいずれかに多重化するにはブロックデコーダを使用する。こうすれば１組のビット線で読み出しかプログラミングが行われているときに互い違いの組のビット線を接地でき、隣接する結合は最小限に抑えられる。
【００３６】
しかし、交互ページアーキテクチャは少なくとも３つの点で不利である。第１に、追加の多重化回路を必要とする。第２に、性能は遅い。ワード線によって接続されたメモリセルまたは１行のメモリセルで読み出しまたはプログラミングを完了するには、２回の読み出し操作か２回のプログラミング操作が必要となる。第３に、２つの隣接する電荷蓄積素子が別々のときにプログラムされる、例えば奇数ページと偶数ページとで別々にプログラムされる場合のフローティングゲートレベルにおける隣接する電荷蓄積素子間の電界結合等、好ましくない影響に対処するにあたって最適ではない。
【００３７】
隣接する電界結合の問題はメモリトランジスタの間隔が狭まるにつれて顕著となる。メモリトランジスタではチャネル領域とコントロールゲートとの間に電荷蓄積素子が挟まれている。チャネル領域を流れる電流は、電荷蓄積素子とコントロールゲートの電界がもたらす最終的な電界と相関関係にある。メモリトランジスタは密度の増加にともない互いに接近する。隣接する電荷素子からの電界は影響を受けるセルの最終的な電界に大きく影響する。隣接する電界は、隣接する電荷蓄積素子にプログラムされる電荷に左右される。この摂動を招く電界には、隣接する電荷蓄積素子のプログラミング状態に応じて変化する動的な性質がある。隣接する電荷蓄積素子の状態の変化によっては、影響を受けるセルの読み出しに時間によってばらつきが生じるおそれがある。
【００３８】
従来の交互ページアーキテクチャでは、隣接するフローティングゲート結合によって生じるエラーが激化する。偶数ページと奇数ページのプログラミングと読み出しは別々に行われるため、介在するページの状況次第では、ページがプログラムされるときの条件とページの読み返しが行われるときの条件がまったく異なることがある。多状態の実施例では、密度の増加にともない読み出しエラーが深刻化し、読み出し操作の精度を上げてしきい値ウィンドウの分割を粗くする必要がある。性能は損なわれ、多状態の実施例の潜在的な容量は制限される。
【００３９】
米国公開特許出願第２００４−００６００３１号（特許文献１８）では、大きな読み出し／書き込み回路ブロックで対応するメモリセルブロックを並行して読み書きする、高性能でありながらコンパクトな不揮発性メモリ装置が開示されている。特に、このメモリ装置のアーキテクチャは読み出し／書き込み回路ブロックにおける冗長性を最小限に抑える。時分割方式で実質的に少数の共通部分とやり取りしながら並行して動作するブロック読み出し／書き込みモジュールの中核部分に読み出し／書き込みモジュールブロックを再配分することにより、スペースと電力を大幅に節約する。特に、複数のセンス増幅器とデータラッチとの間にある読み出し／書き込み回路の中では共通のプロセッサによってデータ処理が行われる。
【００４０】
このように高性能・高容量の不揮発性メモリが一般に求められている。特に、読み出しとプログラミングの性能が高く、コンパクトで効率的でありながら読み出し／書き込み回路におけるデータ処理に幅広く対応する改良されたプロセッサを備えるコンパクトな不揮発性メモリが求められている。
【特許文献１】米国特許第５，５９５，９２４号
【特許文献２】米国特許第５，０７０，０３２号
【特許文献３】米国特許第５，０９５，３４４号
【特許文献４】米国特許第５，３１５，５４１号
【特許文献５】米国特許第５，３４３，０６３号
【特許文献６】米国特許第５，６６１，０５３号
【特許文献７】米国特許第５，３１３，４２１号
【特許文献８】米国特許第６，２２２，７６２号
【特許文献９】米国特許第５，５７０，３１５号
【特許文献１０】米国特許第５，９０３，４９５号
【特許文献１１】米国特許第６，０４６，９３５号
【特許文献１２】米国特許第５，７６８，１９２号
【特許文献１３】米国特許第６，０１１，７２５号
【特許文献１４】米国特許第５，１７２，３３８号
【特許文献１５】米国特許第５，４１８，７５２号
【特許文献１６】米国特許第５，７７４，３９７号
【特許文献１７】米国特許第４，３５７，６８５号
【特許文献１８】米国公開特許出願第２００４−００６００３１号
【特許文献１９】米国公開特許出願第２００４−０１０９３５７号
【特許文献２０】米国特許出願第１１／０２６，５３６号
【特許文献２１】“Use of Data Latches in Multi-Phase Programming of Non-Volatile Memories" という米国特許出願
【特許文献２２】２００５年３月１６日に出願された“Non-Volatile Memory and Method with Power-Saving Read and Program-Verify Operations" という米国特許出願
【特許文献２３】米国特許出願第１１／０１３，１２５号
【特許文献２４】米国特許出願第１０／８４６，２８９号
【特許文献２５】米国特許出願第１１／０２２，４６２号
【特許文献２６】米国特許出願第１０／９１５，０３９号
【特許文献２７】米国特許第６，２６６，２７３号
【特許文献２８】米国公開特許出願第２００４−０１０９３６２号
【特許文献２９】米国特許第６，６５７，８９１号
【特許文献３０】米国特許出願第１１／３２３，５９６号
【特許文献３１】米国特許第７，０１２，８３５号
【特許文献３２】米国特許出願第１１／０９９，０４９号
【非特許文献１】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)
【発明の開示】
【００４１】
本発明の一態様に従い、内部メモリが読み出し、プログラミング、消去といった別の操作に従事しているときにメモリでデータを出し入れできるキャッシュ操作を提示する。特に、そのようなキャッシュ操作を可能にするデータラッチの構成とその使用方法を説明する。
【００４２】
データラッチをいくつかの物理ページで共用するアーキテクチャを説明する。例えば、読み出し／書き込みスタックはメモリのビット線と関連し、多数のワード線によって共用される。メモリである１つの操作が進行しているときに、これらのラッチのいずれかが空いているなら、それらのラッチを使って同じワード線か別のワード線における先々の操作に向けてデータをキャッシュでき、転送は別の操作の背後に潜在化し時間の節約になる。これは、異なる操作または操作段階をパイプラインする量を増やすことによって性能を上げることができる。一例において、キャッシュプログラミング操作で、ある１つのページデータをプログラムしているときに別のページデータをロードすることによって転送時間を節約できる。もう１つの例として、代表的な実施形態において、ある１つのワード線に対する読み出し操作を別のワード線に対する書き込み操作に挿し込むことにより、データの書き込みが継続しているときには読み出しデータをメモリから出すことができる。
【００４３】
種々の態様によると、第１のページデータで書き込み等の操作が進行しているときには、（例えば、ＥＣＣ操作を行うため）同じブロックでワード線が異なる別のページからデータをトグルアウトできる。この操作段階間パイプラインにより、データ転送に要する時間を第１のページデータに対する操作の背後に潜在化させることができる。より一般的に、ある１つの操作の一部分を、通常ならばこれよりも長い、別の操作の段階の合間に差し込むことが可能となる。もう１つの例として、例えば消去操作の段階の合間に、例えば消去パルスの前に、あるいは消去の後半部分として使われるソフトプログラミング段階の前に、感知操作を挿し込む。
【００４４】
主要な態様において、様々な段階をともなう比較的長い操作を実行する場合、読み出し／書き込みスタックの共用ラッチが使用可能であれば、これを使って短い操作を割り込ませる。例えば、プログラミング操作や消去操作の中に読み出しを挿し込んだり、消去中にバイナリプログラミングを挿し込んだりすることができる。主要な代表的な実施形態において、同じ読み出し／書き込みスタックを共用するページのプログラミング操作のときに別のページデータをトグルイン／アウトし、例えばトグルアウトされ修正されるデータの読み出しは、データ書き込みのベリファイ段階に挿し込まれる。
【００４５】
空きデータラッチを利用できる機会は数多くある。一般的に、１セル当たりｎビットを蓄積するメモリの場合、各ビット線につきｎ個のデータラッチが必要となるが、これらのラッチの全てが常に必要となるわけではない。例えば、上位ページ／下位ページ形式でデータを蓄積する１セル当たり２ビットのメモリでは、下位ページをプログラムしているときに１つのデータラッチが必要となる（クイックパス書き込みを実施する場合、もう１つのラッチを使用する）。上位ページをプログラムしているときには２つのデータラッチが必要となる（クイックパス書き込みを実施する場合、第３のラッチを使用する）。より一般的に、多数のページを蓄積するメモリで全てのラッチが必要となるのは最上位ページをプログラムするときだけである。これにより、他のラッチはキャッシュ操作に利用できる。また、最上位ページの書き込み中でも、書き込み操作のベリファイ段階から種々の状態が排除されるにつれてラッチは解放される。具体的に、ベリファイすべき状態が最上位状態だけになると、ベリファイに必要なラッチは１つだけであり、他のラッチはキャッシュ操作に使うことができる。
【００４６】
代表的な実施形態は、１セル当たり２ビットを蓄積し、各ビット線のデータにつき２つのラッチを具備し、さらにクイックパス書き込み用に１つのラッチを具備する４状態メモリに基づくものである。下位ページを書き込む操作、または消去する操作、または消去後にソフトプログラミングを行う操作は、基本的にはバイナリ操作であり、データラッチの一方は空いていてデータをキャッシュするために使うことができる。同様に、上位ページかフルシーケンスの書き込みを行う場合、最上位レベル以外はすべてベリファイ済みでベリファイすべき状態がただ１つになると、メモリはラッチを解放でき、解放されたラッチはデータのキャッシュに使うことができる。例えば、コピー操作等で１ページをプログラムする場合、例えば同じ組のビット線上の別のワード線で同じ組のデータラッチを共用する別のページの読み出しは、書き込みのプログラミングパルスとベリファイとの間に差し挟むことができる。アドレスは書き込み対象のページに切り替えることができ、書き込みプロセスは中断したところから再開でき、やり直しの必要はない。書き込みが継続しているときには、割り込ませた読み出しのときにキャッシュしたデータをトグルアウトし、チェックまたは修正し、元に戻し、先行する書き込み操作が完了した時点で書き戻すことができる。この種のキャッシュ操作では、最初のページのプログラミングの背後に２番目のページデータのトグルアウトと修正を潜在化させることができる。
【００４７】
読み出し中のキャッシュ操作−バックグラウンド読み出し・書き込み操作
本発明の一態様に従い、多状態メモリセルでメモリセル間の摂動（ユーピン効果）を最小限に抑える必要がある場合、読み出しキャッシュ方式を提供する。読み出しデータのキャッシュ方式では、近接する物理ページまたはワード線からのデータに補正が左右される読み出し操作であっても、メモリコアから現在のページを感知しているときにデータラッチとＩ／Ｏバスを効率よく使用して、読み出し済みのページをトグルアウトする。
【００４８】
好適な実施例において、「ＬＭ」符号化によって符号化され読み出しにあたってルックアヘッド（「ＬＡ」）補正を行うメモリに効率的な読み出しキャッシング方式を使用する。「ＬＭ」符号化と「ＬＡ」補正にはいずれも、読み出しデータの単なるトグル操作のほかに追加のラッチおよびバス活動が必要となる。現在のワード線における現在のページの読み出しに先立ち前もって必要なデータの読み出しを近傍のワード線で実行しなければならない場合でも、前もって必要な読み出しとそれにともなうＩ／Ｏアクセスを前のページを読み出すサイクル中に先回りして実行すれば、読み出し済みのページでＩ／Ｏアクセスが行われている間に現在の読み出しを実行できる。
【００４９】
本発明のもうひとつの態様によると、複数のビットを一斉に感知するマルチビットのメモリセルページで読み出しキャッシング方式を実装する。好適な実施例において、全てのマルチビットを一斉に感知する。感知されたマルチビットのメモリセルページは各マルチビットにつき１つずつの複数のバイナリページに対応する。複数のサイクルでマルチビット感知が行われている間に各サイクルでバイナリページを出力する。この複数のページ数とマルチビットのビット数とは同じである。
【００５０】
本発明のさらなる特徴と利点は、本発明の好適な実施形態に関する以降の説明を添付の図面と併せて解釈することによって理解される。
【発明を実施するための最良の形態】
【００５１】
図７Ａは、一群の分割読み出し／書き込みスタックを具備し本発明の改良されたプロセッサを実装するコンパクトなメモリ装置を概略的に示す。このメモリ装置は二次元のメモリセルアレイ３００と、制御回路３１０と、読み出し／書き込み回路３７０とを含む。メモリアレイ３００は、行デコーダ３３０を通じてワード線により、そして列デコーダ３６０を通じてビット線により、アドレス指定することができる。読み出し／書き込み回路３７０は一群の分割読み出し／書き込みスタック４００として実装され、メモリセルからなるブロック（「ページ」とも呼ぶ）の読み出しまたはプログラミングを並行して行うことができる。ページは好適な実施形態において一連のメモリセル行から構成される。１行のメモリセルを多数のブロックまたはページに分割する別の実施形態において、個々のブロックに向けて読み出し／書き込み回路３７０を多重化するためのブロックマルチプレクサ３５０を設ける。
【００５２】
制御回路３１０は読み出し／書き込み回路３７０と協働しながらメモリアレイ３００でメモリ操作を遂行する。制御回路３１０は状態マシン３１２と、オンチップアドレスデコーダ３１４と、電力制御モジュール３１６とを含む。状態マシン３１２はメモリ操作のチップレベル制御を提供する。オンチップアドレスデコーダ３１４は、ホストまたはメモリコントローラで使われるアドレスとデコーダ３３０および３６０で使われるハードウェアアドレスとの間でアドレスインターフェイスを提供する。電力制御モジュール３１６は、メモリ操作中にワード線とビット線へ供給される電力と電圧を制御する。
【００５３】
図７Ｂは、図７Ａに示されたコンパクトなメモリ装置の好適な構成を示す。様々な周辺回路によるメモリアレイ３００へのアクセスは、アレイの両側で対称的に行われるため、アクセス線と回路はそれぞれの側で半分に減る。行デコーダは行デコーダ３３０Ａおよび３３０Ｂに分かれ、列デコーダは列デコーダ３６０Ａおよび３６０Ｂに分かれる。メモリセル行を多数のブロックに分割する実施形態では、ブロックマルチプレクサ３５０がブロックマルチプレクサ３５０Ａおよび３５０Ｂに分かれる。同様に、読み出し／書き込み回路は、下からビット線へ接続する読み出し／書き込み回路３７０Ａと、アレイ３００の上からビット線へ接続する読み出し／書き込み回路３７０Ｂとに分かれる。かくして、読み出し／書き込みモジュールの密度、したがって分割読み出し／書き込みスタック４００の密度は、基本的には半減する。
【００５４】
図８は、図７Ａに示された読み出し／書き込みスタックにおける基本コンポーネントの一般的な構成を概略的に示す。本発明の一般的なアーキテクチャによると、読み出し／書き込みスタック４００は、ｋ本のビット線を感知するセンス増幅器２１２のスタックと、Ｉ／Ｏバス２３１を通じてデータを入出力するＩ／Ｏモジュール４４０と、入出力データを蓄積するデータラッチ４３０のスタックと、読み出し／書き込みスタック４００でデータを処理し蓄積する共通プロセッサ５００と、スタックコンポーネント間で通信を行うためのスタックバス４２１とを備える。読み出し／書き込み回路３７０間のスタックバスコントローラは、線４１１を通じて読み出し／書き込みスタック内の様々なコンポーネントを制御するための制御信号とタイミング信号とを提供する。
【００５５】
図９は、図７Ａおよび図７Ｂに示された読み出し／書き込み回路における読み出し／書き込みスタックの好適な構成を示す。各々の読み出し／書き込みスタック４００はｋ本のビット線からなるグループに同時に働きかける。ページがｐ＝ｒ＊ｋ本のビット線を持つならば、ｒ個の読み出し／書き込みスタック４００−１・・・４００−ｒがある。
【００５６】
分割読み出し／書き込みスタック４００からなる一群全体が並行して動作することにより、行に沿ってｐ個のセルからなるブロック（またはページ）の読み出しまたはプログラミングを並行して行うことができる。よって、セルの行全体に対してｐ個の読み出し／書き込みモジュールがある。各スタックでｋ個のメモリセルを処理するなら、バンク内の合計読み出し／書き込みスタックの数はｒ＝ｐ／ｋで求められる。例えば、バンク内のスタック数がｒならｐ＝ｒ＊ｋである。一例として、メモリアレイはｐ＝５１２バイト（５１２×８ビット）、ｋ＝８を保持し、したがってｒ＝５１２を保持する。好適な実施形態において、ブロックはセルの行全体である。別の実施形態において、ブロックは行内のセルの小集団である。セルの小集団は、例えば行全体の２分の１であったり、行全体の４分の１であったりする。セルの小集団は連続するセルであったり、１つおきのセルであったり、所定のセル数おきのセルであったりする。
【００５７】
それぞれの読み出し／書き込みスタックには、例えば４００−１の中には、基本的にｋ個のメモリセルからなるセグメントを並行して処理する２１２−１から２１２−ｋまでのセンス増幅器からなるスタックがある。米国公開特許出願第２００４−０１０９３５７号（特許文献１９）には好適なセンス増幅器が開示され、その全体が本願明細書において参照により援用されている。
【００５８】
スタックバスコントローラ４１０は線４１１を通じて読み出し／書き込み回路３７０へ制御信号とタイミング信号を提供する。スタックバスコントローラそのものは線３１１を介してメモリコントローラ３１０に従属する。読み出し／書き込みスタック４００内の通信は相互接続スタックバス４３１によって行われ、スタックバスコントローラ４１０によって制御される。制御線４１１は、スタックバスコントローラ４１０から読み出し／書き込みスタック４００−１のコンポーネントにかけて制御信号とクロック信号を提供する。
【００５９】
スタックバスは、好適な実施形態において、共通プロセッサ５００とセンス増幅器のスタック２１２との間の通信のためのＳＡＢｕｓ４２２と、プロセッサとデータラッチのスタック４３０との間の通信のためのＤＢｕｓ４２３とに分かれる。
【００６０】
データラッチのスタック４３０は、４３０−１から４３０−ｋまでのデータラッチを含み、各メモリセルにつき１つずつスタックに関連付けられている。Ｉ／Ｏモジュール４４０は、データラッチがＩ／Ｏバス２３１を通じて外部とデータをやり取りできるようにする。
【００６１】
共通プロセッサは、エラー状態をはじめとするメモリ操作のステータスを伝えるステータス信号を出力する出力５０７をも含む。このステータス信号は、Ｗｉｒｅｄ−Ｏｒ構成でＦＬＡＧ  ＢＵＳ  ５０９へ結合されたｎ−トランジスタ５５０のゲートを駆動するために使われる。ＦＬＡＧ  ＢＵＳは好ましくは、コントローラ３１０によって予め荷電され、いずれかの読み出し／書き込みスタックによってステータス信号がアサートされるときにプルダウンされる。
【００６２】
図１０は、図９に示された共通プロセッサの改良された実施形態を示す。共通プロセッサ５００は外部回路との通信のためのプロセッサバスＰＢＵＳ  ５０５と、入力ロジック５１０と、プロセッサラッチＰＬａｔｃｈ  ５２０と、出力ロジック５３０とを備える。
【００６３】
入力ロジック５１０はＰＢＵＳからデータを受信し、信号線４１１を通じてスタックバスコントローラ４１０から届く制御信号に応じて論理状態「１」、「０」、または「Ｚ」（浮遊）のいずれか１つに変換されたデータをＢＳＩノードへ出力する。セット／リセットラッチＰＬａｔｃｈ  ５２０はＢＳＩをラッチし、ＭＴＣＨおよびＭＴＣＨ* として一対の相補出力信号をもたらす。
【００６４】
出力ロジック５３０はＭＴＣＨ信号とＭＴＣＨ* 信号を受信し、信号線４１１を通じてスタックバスコントローラ４１０から届く制御信号に応じて論理状態「１」、「０」、または「Ｚ」（浮遊）のいずれか１つに変換されたデータをＰＢＵＳ  ５０５に出力する。
【００６５】
共通プロセッサ５００は所与のメモリセルに関係するデータを常に処理する。例えば、図１０は、ビット線１へ結合されたメモリセルの場合を示している。対応するセンス増幅器２１２−１はノードを備え、ここにセンス増幅器データが現れる。このノードは好適な実施形態において、データを蓄積するＳＡラッチ２１４−１の形をとるものとする。同様に、対応する１組のデータラッチ４３０−１はビット線１へ結合されたメモリセルに関連する入力または出力データを蓄積する。好適な実施形態において、１組のデータラッチ４３０−１はｎビットのデータを蓄積するにあたって十分なデータラッチ４３４−１・・・４３４−ｎを備える。
【００６６】
共通プロセッサ５００のＰＢＵＳ  ５０５は、一対の相補信号ＳＡＰおよびＳＡＮによって転送ゲート５０１がイネーブルになるとＳＢＵＳ  ４２２を通じてＳＡラッチ２１４−１にアクセスする。同様に、一対の相補信号ＤＴＰおよびＤＴＮによって転送ゲート５０２がイネーブルになると、ＰＢＵＳ  ５０５はＤＢＵＳ  ４２３を通じて１組のデータラッチ４３０−１にアクセスする。信号ＳＡＰ、ＳＡＮ、ＤＴＰ、およびＤＴＮは、スタックバスコントローラ４１０からの制御信号の一部として明示されている。
【００６７】
図１１Ａは、図１０に示された共通プロセッサの入力ロジックの好適な実施形態を示す。入力ロジック５２０はＰＢＵＳ  ５０５でデータを受信し、出力ＢＳＩは制御信号次第で同じになるか、反転するか、浮遊する。出力ＢＳＩノードは基本的に、転送ゲート５２２の出力か、Ｖｄｄにかけて直列するｐトランジスタ５２４および５２５を備えるプルアップ回路か、接地にかけて直列するｎトランジスタ５２６および５２７を備えるプルダウン回路に左右される。プルアップ回路のゲートは、信号ＰＢＵＳおよびＯＮＥによってそれぞれ制御されるｐトランジスタ５２４および５２５へ至る。プルダウン回路のゲートは、信号ＯＮＥＢ＜１＞およびＰＢＵＳによってそれぞれ制御されるｎトランジスタ５２６および５２７へ至る。
【００６８】
図１１Ｂは、図１１Ａの入力ロジックの真偽表を示す。ロジックは、ＰＢＵＳと制御信号ＯＮＥ、ＯＮＥＢ＜０＞、ＯＮＥＢ＜１＞とによって制御され、これらの制御信号はスタックバスコントローラ４１０からの制御信号の一部である。基本的には３つの転送モードＰＡＳＳＴＨＲＯＵＧＨ、ＩＮＶＥＲＴＥＤ、およびＦＬＯＡＴＥＤをサポートする。
【００６９】
ＢＳＩが入力データと同じになるＰＡＳＳＴＨＲＯＵＧＨモードの場合、信号ＯＮＥは論理「１」、ＯＮＥＢ＜０＞は「０」、ＯＮＥＢ＜１＞は「０」となる。これによりプルアップまたはプルダウンはディスエーブルになるが転送ゲート５２２はイネーブルになり、データはＰＢＵＳ  ５０５のデータが出力５２３へ引き渡される。ＢＳＩが入力データの逆になるＩＮＶＥＲＴＥＤモードの場合、信号ＯＮＥは「０」、ＯＮＥＢ＜０＞は「１」、ＯＮＥＢ＜１＞は「１」となる。これにより転送ゲート５２２はディスエーブルになる。また、ＰＢＵＳが「０」ならプルダウン回路はディスエーブルになり、プルアップ回路はイネーブルになり、結果的にＢＳＩは「１」になる。同様に、ＰＢＵＳが「１」なら、プルアップ回路はディスエーブルになり、プルダウン回路はイネーブルになり、結果的にＢＳＩは「０」になる。最後に、ＦＬＯＡＴＥＤモードの場合、信号ＯＮＥが「１」、ＯＮＥＢ＜０＞が「１」、ＯＮＥＢ＜１＞が「０」となって出力ＢＳＩを浮遊させることができる。ＦＬＯＡＴＥＤモードは完全を期するために記載されているが、実際には使われない。
【００７０】
図１２Ａは、図１０に示された共通プロセッサの出力ロジックの好適な実施形態を示す。入力ロジック５２０からＢＳＩノードに至る信号はプロセッサラッチＰＬａｔｃｈ  ５２０でラッチする。出力ロジック５３０はＰＬａｔｃｈ  ５２０の出力からデータＭＴＣＨおよびＭＴＣＨ* を受信し、制御信号に応じてＰＡＳＳＴＨＲＯＵＧＨモードか、ＩＮＶＥＲＴＥＤモードか、ＦＬＯＡＴＥＤモードのいずれかでＰＢＵＳに出力する。換言すると、４つのブランチはＰＢＵＳ  ５０５の駆動装置として機能し、これをＨＩＧＨ、ＬＯＷ、またはＦＬＯＡＴＥＤ状態まで能動的に引き上げる。これはＰＢＵＳ  ５０５の４つのブランチ回路によって、具体的には２つのプルアップ回路と２つのプルダウン回路とによって、達成する。第１のプルアップ回路はＶｄｄにかけて直列するｐトランジスタ５３１および５３２を備え、ＭＴＣＨが「０」のときにＰＢＵＳをプルアップできる。第２のプルアップ回路は接地にかけて直列するｐトランジスタ５３３および５３４を備え、ＭＴＣＨが「１」のときにＰＢＵＳをプルダウンできる。同様に、第１のプルダウン回路はＶｄｄにかけて直列するｎトランジスタ５３５および５３６を備え、ＭＴＣＨが「０」のときにＰＢＵＳをプルダウンできる。第２のプルアップ回路は接地にかけて直列するｎトランジスタ５３７および５３８を備え、ＭＴＣＨが「１」のときにＰＢＵＳをプルアップできる。
【００７１】
本発明の一特徴として、プルアップ回路はＰＭＯＳトランジスタで構成し、プルダウン回路はＮＭＯＳトランジスタで構成する。ＮＭＯＳによるプルはＰＭＯＳのものより遥かに強いため、どんな競合においてもプルダウンは常にプルアップに勝る。換言すると、ノードまたはバスはデフォルトとして常にプルアップまたは「１」状態にでき、必要とあらば、常にプルダウンにより「０」状態に反転させることができる。
【００７２】
図１２Ｂは、図１２Ａの出力ロジックの真偽表を示す。ロジックは、入力ロジックからラッチされるＭＴＣＨ、ＭＴＣＨ* と、制御信号ＰＤＩＲ、ＰＩＮＶ、ＮＤＩＲ、ＮＩＮＶとによって制御され、これらの制御信号はスタックバスコントローラ４１０からの制御信号の一部である。４つの動作モードＰＡＳＳＴＨＲＯＵＧＨ、ＩＮＶＥＲＴＥＤ、ＦＬＯＡＴＥＤ、およびＰＲＥＣＨＡＲＧＥをサポートする。
【００７３】
ＦＬＯＡＴＥＤモードでは４つのブランチがすべてディスエーブルになる。これは信号ＰＩＮＶ＝１、ＮＩＮＶ＝０、ＰＤＩＲ＝１、ＮＤＩＲ＝０によって達成され、これらはデフォルト値でもある。ＰＡＳＳＴＨＲＯＵＧＨモードでＭＴＣＨ＝０ならば、ＰＢＵＳ＝０が要求される。ｎトランジスタ５３５および５３６を備えるプルダウンブランチだけをイネーブルし、ＮＤＩＲ＝１以外の制御信号はどれもデフォルト値とする。ＭＴＣＨ＝１ならば、ＰＢＵＳ＝１が要求される。ｐトランジスタ５３３および５３４を備えるプルアップブランチだけをイネーブルし、ＰＩＮＶ＝０以外の制御信号はどれもデフォルト値とする。ＩＮＶＥＲＴＥＤモードでＭＴＣＨ＝０ならば、ＰＢＵＳ＝１が要求される。ｐトランジスタ５３１および５３２を備えるプルアップブランチだけをイネーブルし、ＰＤＩＲ＝０以外の制御信号はどれもデフォルト値とする。ＭＴＣＨ＝１ならば、ＰＢＵＳ＝０が要求される。ｎトランジスタ５３７および５３８を備えるプルダウンブランチだけをイネーブルし、ＮＩＮＶ＝１以外の制御信号はどれもデフォルト値とする。ＰＲＥＣＨＡＲＧＥモードでは、ＰＤＩＲ＝０とＰＩＮＶ＝０の制御信号設定でＭＴＣＨ＝１ならば、ｐトランジスタ５３１および５３２を備えるプルアップブランチをイネーブルするか、またはＭＴＣＨ＝０ならば、ｐトランジスタ５３３および５３４を備えるプルアップブランチをイネーブルする。
【００７４】
２００４年１２月２９日に出願された米国特許出願第１１／０２６，５３６号（特許文献２０）では共通プロセッサの動作がより詳しく説明されている。この特許出願は、その全体が本願明細書において参照により援用されている。
【００７５】
キャッシュ操作におけるデータラッチの使用
本発明のいくつかの態様において、読み出し、書き込み、消去といった他の作業に内部メモリが従事しているときにデータを出し入れするキャッシュ操作にあたって、図１０で前述した読み出し／書き込みスタックのデータラッチを利用する。前述したアーキテクチャではデータラッチを多数の物理ページで共用する。例えば、ビット線の読み出し／書き込みスタックを全てのワード線で共用すれば、ある１つの操作が進行しているときにこれらのラッチのいずれかが空いているなら、それらのラッチを使って同じワード線か別のワード線における先々の操作に向けてデータをキャッシュでき、転送は別の操作の背後に潜在化できるため時間の節約になる。異なる操作または操作段階をパイプラインする量を増すことによって性能を上げることができる。例えば、キャッシュプログラミング操作では、１ページデータをプログラムしているときに別のページデータをロードして転送時間を節約できる。もう１つの例として、代表的な実施形態において、ある１つのワード線における読み出し操作が別のワード線における書き込み操作に挿入され、データの書き込みを継続しながら読み出しデータをメモリから転送することができる。
【００７６】
このため、第１のページデータで書き込み、または他の操作が進行しているときには、（例えば、ＥＣＣ操作を行うため）同じブロックでワード線が異なる別のページからデータをトグルアウトできる。この操作段階間パイプラインにより、データ転送に要する時間は第１のページデータに対する操作の背後に潜在化させることができる。より一般的に、ある１つの操作の一部分を、通常ならばこれよりも長い、別の操作の段階の合間に差し込むことが可能となる。もう１つの例として、例えば消去操作の段階の合間に、例えば消去パルスの前に、あるいは消去の後半として使われるソフトプログラミング段階の前に、感知操作を挿し込む。
【００７７】
一部の操作に要する相対的な時間を説明するため、前述したシステムにおける代表的な時間値のセットを、
データ書き込み：〜７００μｓ（下位ページ〜６００μｓ、上位ページ８００μｓ）
バイナリデータ書き込み：〜２００μｓ
消去：〜２，５００μｓ
読み出し：〜２０−４０μｓ
読み出しとデータのトグルアウト：２ＫＢデータ、〜８０μｓ、
４ＫＢ〜１６０μｓ、８ＫＢ〜３２０μｓ
とする。
これ以降、タイミング図にかかわる相対的な時間を説明する際には、これらの値を基準として使うことができる。主要な態様において、様々な段階をともなう長い操作を実行する場合、読み出し／書き込みスタックの共用ラッチが使用可能であれば、これを使って短い操作を割り込ませる。例えば、プログラミング操作や消去操作の中に読み出しを挿し込んだり、消去中にバイナリプログラミングを挿し込んだりすることができる。主要な代表的な実施形態において、同じ読み出し／書き込みスタックを共用するページのプログラミング操作のときに別のページデータをトグルイン／アウトし、例えばトグルアウトされ修正されるデータの読み出しは、データ書き込みのベリファイ段階に挿し込む。
【００７８】
空きデータラッチを利用できる機会は数多くある。一般的に、１セル当たりｎビットを蓄積するメモリの場合、各ビット線につきｎ個のデータラッチが必要となるが、これらのラッチの全てが常に必要となるわけではない。例えば、上位ページ／下位ページ形式でデータを蓄積する１セル当たり２ビットのメモリでは、下位ページをプログラムしているときに２つのデータラッチが必要となる。より一般的に、多数のページを蓄積するメモリで全てのラッチが必要となるのは最上位ページをプログラムするときだけである。これにより、他のラッチはキャッシュ操作に利用できる。また、最上位ページの書き込み中でも、書き込み操作のベリファイ段階から種々の状態が排除されるにつれてラッチは解放される。具体的に、ベリファイすべき状態が最上位状態だけになると、ベリファイに必要なラッチは１つだけであり、他のラッチはキャッシュ操作のために使うことができる。
【００７９】
以降の説明は、１セル当たり２ビットを蓄積し、各ビット線のデータにつき２つのラッチを具備し、さらにクイックパス書き込み用に１つのラッチを具備する４状態メモリに基づくものであり、このメモリは本願と同時に出願され、前に援用されている「不揮発性メモリの多段階プログラミングにおけるデータラッチの使用 (Use of Data Latches in Multi-Phase Programming of Non-Volatile Memories)」という米国特許出願（特許文献２１）で説明されている。下位ページを書き込む操作、または消去する操作、または消去後にソフトプログラミングを行う操作は、基本的にはバイナリ操作であり、データラッチの一方は空いていてデータをキャッシュするために使うことができる。同様に、上位ページかフルシーケンスの書き込みを行う場合、最上位レベル以外はすべてベリファイ済みでベリファイすべき状態がただ１つになると、メモリはラッチを解放でき、解放されたラッチはデータのキャッシュに使うことができる。例えば、コピー操作等で１ページをプログラムする場合、例えば同じ組のビット線上の別のワード線で同じ組のデータラッチを共用する別のページの読み出しは、書き込みのベリファイ段階に差し挟むことができる。アドレスは書き込み対象のページに切り替えることができ、書き込みプロセスは中断したところから再開でき、やり直しの必要はない。書き込みが継続しているときには、割り込ませた読み出しのときにキャッシュしたデータをトグルアウトし、チェックまたは修正し、元に戻して、先行する書き込み操作が完了した時点で書き戻すことができる。この種のキャッシュ操作では、最初のページのプログラミングの背後に２番目のページデータのトグルアウトと修正を潜在化させることができる。
【００８０】
第１の例として、２ビットメモリのキャッシュプログラミング操作は単独ページ（下位ページ／上位ページ形式）プログラミングモードで行われる。図１３は、図１０を簡素化したものであって、２ビットの実施形態の説明にかかわるいくつかの特定の要素を示し、説明を簡潔にするためにその他の要素は省いてある。これはデータＩ／Ｏ線２３１へ接続されたデータラッチＤＬ０  ４３４−０と、線４２３によって共通プロセッサ５００へ接続されたデータラッチＤＬ１  ４３４−１と、線４３５によって他のデータラッチとともに接続されたデータラッチＤＬ２  ４３４−２と、線４２２により共通プロセッサ５００へ接続されたセンス増幅器データラッチＤＬＳ  ２１４とを含む。図１３の種々の要素には、下位ページをプログラムするときの処理に従ってラベル付けされている。ラッチＤＬ２４３４−２は、本願と同時に出願された「不揮発性メモリの多段階プログラミングにおけるデータラッチの使用 (Use of Data Latches in Multi-Phase Programming of Non-Volatile Memories)」という米国特許出願（特許文献２１）で説明されているクイックパス書き込みモードにおける下位ベリファイ（ＶＬ）に使われ、レジスタの使用と、これを使用する場合のクイックパス書き込みの使用は任意であるが、この代表的な実施形態ではレジスタを使用する。
【００８１】
下位ページのプログラミングは、以下のステップを含む。
（１）プロセスはデータラッチＤＬ０  ４３４−０をデフォルト値「１」にリセットすることから始まる。これは部分ページプログラミングを簡素化するための慣例であり、行の中で非プログラム対象セルとして選択されたセルのプログラミングは禁止される。
（２）Ｉ／Ｏ線２３１に沿ってＤＬ０  ４３４−０へプログラムデータを供給する。
（３）ＤＬ１  ４３４−１とＤＬ２  ４３４−２へプログラムデータを転送する（このラッチを使用し、クイックパス書き込みを実施する場合）。
（４）ＤＬ１  ４３４−１へプログラムデータを転送したら、データラッチＤＬ０  ４３４−０を「１」にリセットでき、プログラミング中はＩ／Ｏ線２３１に沿ってＤＬ０  ４３４−０へ次のデータページをロードでき、第１のページが書き込まれているときには第２のページをキャッシュできる。
（５）ＤＬ１  ４３４−１に第１のページがロードされたらプログラミングを開始できる。ＤＬ１  ４３４−１のデータはセルをロックアウトしてそれ以上プログラムできなくするために使用する。本願と同時に出願された「不揮発性メモリの多段階プログラミングにおけるデータラッチの使用 (Use of Data Latches in Multi-Phase Programming of Non-Volatile Memories)」という米国特許出願（特許文献２１）で説明されているように、ＤＬ２  ４３４−２のデータは、クイックパス書き込みの第２段階への移行を左右する下位ベリファイロックアウトに使用する。
（６）プログラミングが始まると、プログラミングパルスの後に下位ベリファイの結果を使用してＤＬ２  ４３４−２を更新し、上位ベリファイの結果を使用してＤＬ１  ４３４−１を更新する。（これは、下位ページプログラミングがＡ状態に至る「従来の」符号化に基づく説明である。本願と同時に出願された「不揮発性メモリの多段階プログラミングにおけるデータラッチの使用 (Use of Data Latches in Multi-Phase Programming of Non-Volatile Memories)」という米国特許出願（特許文献２１）と２００５年３月１６日に出願された「節電読み出しおよびプログラム−ベリファイ操作を備える不揮発性メモリと方法 (Non-Volatile Memory and Method with Power-Saving Read and Program-Verify Operations)」という米国特許出願（特許文献２２）では、この符号化とその他の符号化が詳しく説明されている。この説明を他の符号化へ敷衍することは容易い。）
（７）プログラミングが完了したか否かの判断にあたっては、セルの行（または適切な物理的プログラミング単位）のＤＬ１  ４３４−１レジスタだけをチェックする。
【００８２】
下位ページを書き込んだら上位ページをプログラムできる。図１４には図１３と同じ要素が見られるが、下位ページデータの読み込みが行われる上位ページプログラミングのためのラッチ割り当てを示している。（この説明も従来の符号化に使用するもので、上位ページのプログラミングはＢおよびＣ状態に至る。）上位ページのプログラミングは、以下のステップを含む。
（１）下位ページのプログラミングが終了したら、（実行されない）キャッシュプログラミングコマンドを保持する状態マシンコントローラからの信号により上位ページ（次のページ）の書き込みが始まる。
（２）ＤＬ０  ４３４−０（下位ページ書き込みのステップ（３）でプログラムデータをロードしたところ）からＤＬ１  ４３４−１およびＤＬ２  ４３４−２へプログラムデータを転送する。
（３）アレイから下位ページデータを読み込み、ＤＬ０  ４３４−０に入れる。
（４）ＤＬ１  ４３４−１とＤＬ２  ４３４−２をそれぞれベリファイハイおよびベリファイローロックアウトデータとして再び使用する。プログラム基準データとしてラッチＤＬ０  ４３４−０（下位ページデータを保持）をチェックするが、ベリファイ結果によってこれを更新することはない。
（５）Ｂ状態のベリファイの一部として、下位ベリファイＶＢＬでの感知の後にはＤＬ２  ４３４−２でデータが更新され、ＤＬ１  ４３４−１のデータはハイベリファイＶＢＨ結果によって更新される。同様に、ＣベリファイにもＶＣＬ結果とＶＣＨ結果によりラッチＤＬ２  ４３４−２およびＤＬ１  ４３４−１を更新するための対応するコマンドがある。
（６）Ｂデータが完了したらＣ状態をベリファイするだけでよいので、下位ページデータ（基準としてＤＬ０  ４３４−０に保持されたもの）は必要ない。ＤＬ０  ４３４−０を「１」にリセットし、Ｉ／Ｏ線２３１から別のページのプログラムデータをロードし、ラッチＤＬ０  ４３４−０にキャッシュできる。共通プロセッサ５００はＣ状態のみのベリファイを指示できる。
（７）Ｂ状態について上位ページのプログラミングが完了したか否かを判断するにあたって、ラッチＤＬ１  ４３４−１およびＤＬ０  ４３４−０を両方ともチェックする。セルがＢ状態までプログラムされ、ベリファイするのがＣ状態だけになったら、ラッチＤＬ１  ４３４−１のデータだけをチェックし、プログラムされていないビットの有無を確認すればよい。
【００８３】
このやり方のステップ６でラッチＤＬ０  ４３４−０がもはや必要でなく、次のプログラミング操作のためのデータをキャッシュするのに使えることに留意されたい。加えて、クイックパス書き込みを使用する実施形態で、第２の遅いプログラミング段階に入ったらラッチＤＬ２  ４３４−２もデータのキャッシュに使うことができるが、実際面でこれを使えるのはかなり短い時間に限られ、この特徴の実装にかかる追加のオーバーヘッドに見合わない。
【００８４】
図１５は、直前の数段落で説明した単一ページモードにおける数々のキャッシュプログラミングの態様を説明するのに使用することができる。図１５は、メモリの内部で起こるイベント（下の「Ｔｒｕｅ  Ｂｕｓｙ」線）とメモリの外側から見たもの（上の「Ｃａｃｈｅ  Ｂｕｓｙ」線）の相対的なタイミングを示している。
【００８５】
時間ｔ0 には、選択されたワード線（ＷＬｎ）にプログラムする下位ページをメモリにロードする。ここでは第１の下位ページデータが予めキャッシュされていないと仮定するが、後続のページについてはキャッシュが行われる。下位ページのロードは時間ｔ1 で完了し、メモリはこれの書き込みに着手する。この時点ではバイナリ操作と同じであり、ベリファイの必要があるのは状態Ａだけであり（「ｐｖｆｙＡ」）、データラッチＤＬ０
４３４−０は次のページデータを受け付けることができ、これは時間ｔ2 にＷＬｎにプログラムする上位ページとして受け取られ、下位ページのプログラミング中にラッチＤＬ０  ４３４−０にキャッシュされる。時間ｔ3 には上位ページのロードが完了し、ｔ4 で下位ページのプログラミングが終わり次第直ちにこれをプログラムできる。このやり方では全てのデータ（下位および上位ページ）が物理的なプログラミング単位（ここではワード線ＷＬｎ）に書き込まれるが、以下に説明するフルシーケンスの実施形態と違って、メモリは上位ページデータの書き込みに先立ち時間ｔ3 から時間ｔ4 まで待たなければならない。
【００８６】
上位ページのプログラミングはｔ4 で始まり、当初Ｂ状態だけをベリファイし（「ｐｖｆｙＢ」）、ｔ5 にはＣ状態が加わる（「ｐｖｆｙＢ／Ｃ」）。ｔ6 でＢ状態のベリファイが終わるとベリファイはＣ状態だけとなり（「ｐｖｆｙＣ」）、ラッチＤＬ０  ４３４−０は解放される。これにより、次のデータセットをキャッシュできるようになり、その一方で上位ページのプログラミングは完了する。
【００８７】
指摘したように、図１５に示されたキャッシュプログラミングをともなう単一ページアルゴリズムによると、たとえ時間ｔ3 で上位ページデータが入手可能であっても、メモリは時間ｔ4 まで待ったうえでこのデータの書き込みに着手しなければならない。例えば、米国特許出願第１１／０１３，１２５号（特許文献２３）で詳しく説明されているフルシーケンスのプログラミング動作に転換すれば、上位ページが入手可能となった時点で上位ページと下位ページデータを同時にプログラムできる。
【００８８】
フルシーケンス（下位からフルへの転換）の書き込みにおけるキャッシュプログラミングアルゴリズムも前述したものと同様に、下位ページのプログラミングから始まる。したがって、ステップ（１）〜（４）は単一ページプログラミングモードにおける下位ページプロセスと同じになる。
（１）プロセスはデータラッチＤＬ０  ４３４−０をデフォルト値「１」にリセットすることから始まる。これは部分ページプログラミングを簡素化するための慣例であり、行の中で非プログラム対象セルとして選択されたセルのプログラミングは禁止される。
（２）Ｉ／Ｏ線２３１に沿ってＤＬ０  ４３４−０へプログラムデータを供給する。
（３）ＤＬ１  ４３４−１とＤＬ２  ４３４−２へプログラムデータを転送する（このラッチを使用し、クイックパス書き込みを実施する場合）。
（４）ＤＬ１  ４３４−１へプログラムデータを転送したら、データラッチＤＬ０  ４３４−０を「１」にリセットでき、プログラミング中はＩ／Ｏ線２３１に沿ってＤＬ０  ４３４−０へ次のデータページをロードでき、第１のページが書き込まれているときには第２のページをキャッシュできる。
第２のページデータがロードされた時点で、書き込みが行われている下位ページの上位に一致し、下位ページのプログラミングがまだ終わっていなければ、フルシーケンス書き込みへの転換を実施できる。ここでの説明はそのようなアルゴリズムにおけるデータラッチの使用に注目するものであり、詳細の多くは同一出願人による同時係属出願中の米国特許出願第１１／０１３，１２５号（特許文献２３）で詳しく説明されている。
（５）上位ページデータがラッチＤＬ０  ４３４−０にロードされた後にはアドレスブロックで判定を行い、２つのページが同じワード線と同じブロックにあって、一方のページが下位ページであり、他方のページが上位ページであるか否かをチェックする。そのとおりであり、下位ページプログラミングからフルシーケンスプログラミングへの転換が可能であれば、プログラミング状態マシンがこの転換をトリガする。移行は未決のベリファイが完了した後に行われる。
（６）プログラミングシーケンスが下位ページからフルシーケンスへ変化する場合、通常ならばいくつかの操作パラメータを変更する。代表的な実施形態において、以下のものを含む。
（ｉ）下位ページデータがロックアウトされていなければ、パルスベリファイサイクル数の最大プログラムループが下位ページアルゴリズムのものからフルシーケンスのものに変更されるが、完了プログラムループ数は転換によりリセットされない。
（ｉｉ）図１６に示されたように、プログラミング波形は下位ページプログラミングプロセスで使われる値ＶＰＧＭ＿Ｌで始まる。プログラミング波形が進展して、フルシーケンスへの転換で上位ページプロセスで使う初期値ＶＰＧＭ＿Ｕを超えると、階段はＶＰＧＭ＿Ｕまで戻り、そこから上昇を続ける。
（ｉｉｉ）プログラミングパルスの最大値とステップサイズを決定するパラメータは変更されない。
（７）マルチレベル符号化で正確なデータのプログラミングを保証するため、現在のメモリセル状態のフルシーケンス読み出しを行うべきである。こうすれば、フルシーケンスが始まるときに、下位ページのプログラミングで既にロックアウトされていて上位ページデータを考慮に入れるためさらなるプログラミングを必要とする状態のプログラミングが確保される。
（８）クイックパス書き込みを行う場合、上位ページのプログラムデータを反映させるため、Ａ状態のみの下位ベリファイに前は基づいていたラッチＤＬ２４３４−２のデータも更新する。
（９）マルチレベル、フルシーケンスのプログラミングアルゴリズムによるプログラミングが再開する。図１６に示されたように、下位ページプロセスのプログラミング波形が上位ページの初期レベルを超えた場合、波形は転換時にこのレベルに戻される。
【００８９】
図１７は、下位ページからフルシーケンスへ転換する書き込みプロセスにかかわる相対的な時間を概略的に示す。そのプロセスは、時間ｔ3 までは図１５のプロセスで前述したとおりである。時間ｔ3 で上位ページデータがロードされてフルシーケンスアルゴリズムへ移行するときにはベリファイプロセスが切り替わり、Ａ状態にＢ状態が加わる。Ａ状態がすべてロックアウトされると、ベリファイプロセスは時間ｔ4 でＢ状態とＣ状態のチェックに切り替わる。ｔ5 でＢ状態がベリファイ済みになるとチェックの必要があるのはＣ状態だけとなり、レジスタを解放することができて、プログラムする次のデータ、例えばＣａｃｈｅ  Ｂｕｓｙ線に示すように次のワード線の下位ページ（ＷＬn+1 ）を、ロードできる。この次のデータセットは時間ｔ6 でキャッシュ済みであり、ｔ7 で前のセットのＣデータのプログラミングが終わったら、この次のデータセットのプログラミングが始まる。また、ワード線ＷＬn+1 上の下位ページ（ここでは下位ページ）をプログラムしているときには、空いているラッチＤＬ０  ４３４−０に次のデータ（対応する上位ページデータ等）をロードできる。
【００９０】
フルシーケンス書き込みのときには、下位ページと上位ページの状態を個別に伝えるステータス報告を実施する。プログラミングシーケンスの終わりに未完了ビットがある場合、物理ページの走査を実行できる。第１の走査ではラッチＤＬ０  ４３４−０で未完了上位ページデータをチェックでき、第２の走査ではＤＬ１  ４３４−１で未完了下位ページデータをチェックできる。Ｂ状態のベリファイによってＤＬ０  ４３４−０とＤＬ１  ４３４−１のデータは両方とも変化するため、Ａ状態のベリファイでビットのしきい値がＡベリファイレベルより高い場合、ＤＬ１  ４３４−１データ「０」は「１」に変更される。この事後ベリファイはプログラミングが不十分なＢレベルがＡレベルで合格するか否かをチェックするものであり、Ａレベルで合格するならば、エラーは上位ページだけにあって下位ページにはなく、Ａレベルで合格しないならば、下位ページと上位ページの両方にエラーがある。
【００９１】
キャッシュプログラミングアルゴリズムを使用する場合、ＡおよびＢデータがプログラムされた後にプログラミングを完了するためにラッチＤＬ１  ４３４−１へＣ状態が転送される。この場合、下位ページは既に合格したプログラミングを具備していて不良ビットはないため、下位ページについてラッチを走査する必要はない。
【００９２】
本発明の別の代表的な実施形態は、ある１つの場所から別の場所へデータセットを移動するページコピー操作に関係する。２００４年５月１３日に出願された米国特許出願第１０／８４６，２８９号（特許文献２４）、２００４年１２月２１日出願された米国特許出願第１１／０２２，４６２号（特許文献２５）、２００４年８月９日に出願された米国特許出願第１０／９１５，０３９号（特許文献２６）、そして米国特許第６，２６６，２７３号（特許文献２７）ではデータ再配置操作の様々な態様が説明されている。これらの特許出願および特許はいずれも、本願明細書において参照により援用されている。ある１つの場所から別の場所へコピーされるデータは多くの場合、チェックのため（例えば、エラーチェック）、更新のため（ヘッダ更新等）、または両方のため（検出されたエラーの訂正等）にトグルアウトされる。そのような転送によってガーベッジコレクション操作の日付も整理される。本発明の主要な態様において、空きレジスタへのデータの読み出しを書き込み操作のベリファイ段階に挿し込み、書き込み操作の継続中にこのキャッシュデータをメモリ装置の外に転送することにより、データをトグルアウトする時間を書き込み操作の背後に潜在化させることができる。
【００９３】
これよりキャッシュページコピー操作の２つの代表的な実施形態を紹介する。いずれの場合でも、クイックパス書き込みを使用する実施例を説明する。図１８は、プロセスの進行にともなうラッチの代表的な実施形態の処理を示す。
【００９４】
下位ページに書き込みを行うキャッシュページコピーの第１のバージョンは以下のステップを含み、読み出しアドレスにはＭ，Ｍ＋１・・・とラベル付けをし、書き込みアドレスにはＮ，Ｎ＋１・・・とラベル付けをする。
（１）コピーするページ（「ページＭ」）をラッチＤＬ１  ４３４−１に読み込む。これは上位ページか下位ページのいずれかのデータとなる。
（２）次にページＭをＤＬ０  ４３４−０へ転送する。
（３）次にＤＬ０  ４３４−０のデータをトグルアウトし、修正した上でラッチに戻す。
（４）ここでプログラミングシーケンスを開始できる。下位ページＮに書き込むデータをＤＬ１  ４３４−１とＤＬ２  ４３４−２に転送した後、ラッチＤＬ０  ４３４−０はデータをキャッシュできる状態になる。この下位ページはプログラムされる。この実施形態の場合、プログラミング状態マシンはここで停止する。
（５）コピーする次のページをＤＬ０  ４３４−０に読み込む。ここでプログラミングを再開できる。ステップ（４）の終わりに停止した状態マシンはプログラミングシーケンスを最初から再開する。
（６）プログラミングは下位ページが完了するまで続く。
【００９５】
下位ページに対する書き込みか上位ページに対する書き込みかは、コピー先ページアドレスによって決まる。プログラミングアドレスが上位ページアドレスなら、プログラミングシーケンスはプログラミングが完了するまで停止せず、ステップ（５）の読み出しは書き込みが完了した後に行われる。
【００９６】
第２のキャッシュページコピー方法では、プログラム−ベリファイプロセスを中断して読み出し操作を挿し込み、その後書き込み操作は中断したところから再開できる。この交互感知操作の間に読み出されたデータは、再開した書き込み操作の継続中にトグルアウトできる。また、この第２のプロセスでベリファイの対象がＣ状態だけとなり、各ビット線で１つのラッチが解放されると、上位ページかフルシーケンスの書き込みプロセスでページコピーメカニズムを使用できる。第２のキャッシュページコピー操作の最初の３つのステップは第１の場合と同じだが、その後は異なる。これは以下のステップを含む。
（１）コピーするページ（「ページＭ」）をラッチＤＬ１  ４３４−１に読み込む。これは上位ページか下位ページのいずれかのデータとなる。
（２）次にページＭのデータをＤＬ０  ４３４−０へ転送する。（前と同様、Ｎ等は書き込みアドレスを表し、Ｍ等は読み出しアドレスを表す。）
（３）次にＤＬ０  ４３４−０のデータをトグルアウトし、修正した上でラッチに戻す。
（４）状態マシンプログラミングは読み出しコマンドが入力されるまで無限待機状態に入り、その後には別のページ、例えば次のページＭ＋１の、ラッチＤＬ０  ４３４−０への読み込みが始まる。
（５）ステップ（４）の読み込みが完了したら、アドレスはステップ（１−３）のデータをページＮ（ここでは下位ページ）にプログラムするためのワード線とブロックアドレスに戻り、プログラミングが再開する。
（６）ページＭ＋１の読み出しが完了した後にはデータをトグルアウトし、修正し、元に戻すことができる。処理が完了し、２つのページが同じＷＬ上の対応する上位および下位ページなら、フルシーケンス書き込み操作に転換できる。
（７）フルシーケンス書き込みでＡレベルとＢレベルが終了したら、前に説明した通常のキャッシュプログラミングと同様、ＤＬ０  ４３４−０のデータをＤＬ１  ４３４−１へ転送し、別のページ（例えば、ページＭ＋２）の読み出しコマンドを発行できる。単一ページからフルシーケンスへの転換がない場合、下位ページの書き込みが完了し、上位ページが始まる。Ｂレベル状態が完了した後にはＤＬ０  ４３４−０からＤＬ１  ４３４−１への同じデータ転送が行われ、状態マシンはページＭ＋２の読み出しコマンドを待機する状態に入る。
（８）読み出しコマンドが届いたらアドレスが読み出しアドレスに切り替わり、次のページ（ページＭ＋２）を読み出す。
（９）読み出しが完了したら、アドレスは書き込みが終了するまで以前の上位ページアドレス（プログラミングアドレスＮ＋１）に戻される。
【００９７】
前に指摘したように、代表的な実施形態ではそれぞれのメモリセルにプログラムされ得るデータ（ここでは２ビット）を保持するラッチＤＬ０  ４３４−０およびＤＬ１  ４３４−１に加えて、クイックパス書き込み手法の下位ベリファイにラッチＤＬ２  ４３４−２を使用する。下位ベリファイに合格したらラッチＤＬ２  ４３４−２も解放され、データのキャッシュに使うことができるが、代表的な実施形態では使わない。
【００９８】
図１９Ａおよび図１９Ｂは第２のキャッシュページコピー方法の相対的なタイミングを示すものであり、図１９Ｂのアルゴリズムにはフルシーケンス書き込み転換があり、図１９Ａのアルゴリズムにはこれがない。（図１９Ａおよび図１９Ｂはいずれも２つの部分からなり、第１の上部分はｔ0 に一致する縦の破線Ａから始まってｔ5 に一致する縦の破線Ｂで終わり、第２の下部分は上部分の続きであって、ｔ5 に一致する縦の破線Ｂから始まる。いずれにせよ、時間ｔ5 のところにある線Ｂは上部分と下部分とで同じであって、２つの部分を２本の線で表示するための継ぎ目に過ぎない。）
【００９９】
図１９Ａに示すプロセスは第１のページ（ページＭ）から始まり、これはこの例において下位ページとし、予めデータはキャッシュされていないものと仮定し、単一ページモードで動作し、下位ページの書き込みが終わるのを待ってから上位ページの書き込みが始まる。プロセスは時間ｔ0 にページＭの読み出しから始まり（ページＭ（Ｌ）感知）、これは、この符号化でＡおよびＣレベルの読み出しによって感知される下位である。時間ｔ1 では読み出しが完了し、ページＭをトグルアウトしてチェックまたは修正できる。時間ｔ2 からはＢレベルの読み出しによって次のページ（ここではページＭ＋１、同じ物理下位ページＭに対応する上位ページ）を感知し、プロセスは時間ｔ3 で完了する。このとき、第１のページ（ページＭからのもの）（下位）はメモリのページＮに戻すことができ、ページＭ＋１から読み出されたデータはラッチに保持され、外に転送して修正／チェックできる。これらのプロセスはいずれも同じ時間に、ここではｔ3 で、始めることができる。前述した典型的な時間値を使用すると、ページＭ＋１のデータは時間ｔ4 までにトグルアウトされ、修正されるが、フルシーケンス転換を実施しない実施形態の場合、メモリは時間ｔ5 にページＮが終了するのを待ってから、ページＮ＋１への第２の読み出しページデータ（ページＭ＋１からのもの）の書き込みを開始する。
【０１００】
ページＮ＋１は上位ページであり、この書き込みは当初Ｂレベルでのベリファイで始まるが、ｔ6 にはＣレベルが加わる。目標状態Ｂになった蓄積素子が時間ｔ7 でロックアウトされると（または最大カウントに達すると）、Ｂ状態のベリファイはなくなる。前述したように、本発明のいくつかの主要な態様によると、このときデータラッチは解放され、進行中の書き込み操作は中断し、読み出し操作（中断したプログラム−ベリファイ操作とは異なるアドレスでの読み出し操作）を割り込ませ、その後書き込みは中断したところから再開し、再開した書き込み操作が進行しているときには割り込み書き込み操作を感知したデータをトグルアウトできる。
【０１０１】
時間ｔ7 では割り込み書き込み操作を下位ページＭ＋２のために実行する。この感知は時間ｔ8 に終了し、ページＮ＋１の書き込みは再開し、これと同時にページＭ＋２のデータをトグルアウトし、修正する。この例ではページＮ＋１のプログラミングが時間ｔ9 に終了してから時間ｔ10にページＭ＋２が完了する。時間ｔ10にはページＭ＋２からのデータの書き込みを始めることもできるが、この実施形態では代わりにページＭ＋３の読み出しを先に実行することにより、このページデータのトグルアウトと修正は、時間ｔ11に始まるページＮ＋２へのページＭ＋２からのデータの書き込みの背後に潜在化させることができる。そして、プロセスは図の初期部分のとおりに継続するが、ページ番号はずれ、時間ｔ11は時間ｔ3 に相当し、時間ｔ12は時間ｔ4 に相当し、最後にコピープロセスは停止する。
【０１０２】
図１９Ｂに示すプロセスも下位ページ、すなわち下位ページとして解釈するページＭの読み出しから始まり、予めデータはキャッシュされていないものと仮定する。図１９Ｂは、時間ｔ4 にフルシーケンス書き込みへの転換を実施する点が図１９Ａと異なる。これによりプロセスはざっと図１９Ａの時間（ｔ5 〜ｔ4 ）の分だけ速くなる。時間ｔ4 （図１９Ａではｔ5 ）には、前述したように、フルシーケンス転換にかかわる様々な変更を実施する。さもなくば、プロセスは図１９Ａのものに類似し、時間ｔ7 およびｔ12間に見られる本発明の態様を含む。
【０１０３】
ページコピープロセスと、ここで説明するデータの書き込みをともなうその他の手法で、ある所与の時間にベリファイする状態を合理的に選ぶことができ、このことは米国公開特許出願第２００４−０１０９３６２号（特許文献２８）で説明されている。この公開特許出願は、本願明細書において参照により援用されている。例えばフルシーケンス書き込みで、書き込みプロセスはＡレベルのみのベリファイから始めることができる。Ａベリファイの後には、ビットをチェックして合格ビットの有無を確認する。合格したビットがあるなら、Ｂレベルをベリファイ段階に加えることができる。Ａレベルベリファイは、これを目標値とする全蓄積単位のベリファイの後に解除される（または設定可能パラメータに基づく最大カウントを除く）。同様に、Ｂレベルベリファイの後にはＣレベルのベリファイを加えることができ、Ｂレベルベリファイは、これを目標値とする全蓄積単位のベリファイの後に解除される（または設定可能パラメータに基づく最大カウントを除く）。
【０１０４】
プログラミング操作中のデータラッチにおけるキャッシュ操作
プログラミング操作とこれにともなう他の操作のためのバックグラウンドデータキャッシングを、好適な多状態の符号化との関係で説明する。
【０１０５】
４状態メモリのための好適な代表的「ＬＭ」符号化
図２０Ａ〜図２０Ｅは、２ビット論理符号（「ＬＭ」符号）で符号化される４状態メモリのプログラミングと読み出しを示す。この符号は耐障害性を提供し、ユーピン効果による隣接するセル結合を緩和する。図２０Ａは、ＬＭ符号を使って各メモリセルで２ビットのデータを蓄積する場合の４状態メモリアレイのしきい値電圧分布を示す。ＬＭ符号化は、上位および下位ビットが状態「Ａ」および「Ｃ」とで逆になる点が従来のグレイコードと異なる。米国特許第６，６５７，８９１号（特許文献２９）に開示された「ＬＭ」符号は、電荷の大きな変化を要するプログラミング操作を回避することによって隣接するフローティングゲート間の電界効果結合を抑えるのに有利である。図２０Ｂおよび図２０Ｃに見られるように、それぞれのプログラミング操作は電荷蓄積ユニットの電荷に穏かな変化をもたらし、そのことはしきい値電圧ＶT の穏かな変化から明らかである。
【０１０６】
符号化は、下位および上位２ビットのプログラミングと読み出しを別々に行うようにする。下位ビットをプログラムするときのセルのしきい値レベルはプログラムされていない領域にとどまるか、またはしきい値ウィンドウの「下位中間」領域まで進む。上位ビットをプログラムするときには、これらの２領域のいずれかにあるしきい値レベルがさらにしきい値ウィンドウの４分の１に満たない若干高いレベルまで進む。
【０１０７】
図２０Ｂは、ＬＭ符号を使用する既存の２ラウンドプログラミング方式における下位ページプログラミングを示す。耐障害性ＬＭ符号は基本的に、中間状態を通過するために上位ページプログラミングを回避する。したがって、第１ラウンドの下位ページプログラミングでは、広い分布の中でＤA より高くＤC より低いプログラムしきい値電圧により「プログラムされていない」記憶状態「Ｕ」を（ｘ，０）で表される「中間」状態までプログラムすることによって論理状態（１，１）を中間状態（ｘ，０）に推移させる。プログラミング中は境界ＤＶA に対して中間状態をベリファイする。
【０１０８】
図２０Ｃは、ＬＭ符号を使用する既存の２ラウンドプログラミング方式における上位ページプログラミングを示す。上位ページビットを「０」までプログラムする第２ラウンドで、下位ページビットが「１」ならば、「プログラムされていない」記憶状態「Ｕ」を「Ａ」までプログラムすることにより論理状態（１，１）は（０，１）へ推移する。「Ａ」までのプログラミング中のベリファイはＤＶA に対するベリファイである。下位ページビットが「０」なら、「中間」状態から「Ｂ」までプログラムすることによって論理状態（０，０）を得る。そのプログラム−ベリファイは境界ＤＶB に対するベリファイである。同様に、下位ページが「０」までプログラムされるときに上位ページが「１」にとどまるならば、「中間」状態から「Ｃ」までプログラムすることによって「中間」状態から（１，０）へ推移する必要がある。そのプログラム−ベリファイは境界ＤＶC に対するベリファイである。上位ページのプログラミングでは隣接する次の記憶状態までプログラムするだけなので、１つのラウンドから他のラウンドにかけて大量の電荷が変化することはない。「Ｕ」から大まかな「中間」状態に至る下位ページプログラミングは時間を節約するためのものである。
【０１０９】
好適な実施形態では前のセクションで言及されている「クイックパス書き込み」プログラミング手法を実施する。例えば、図２０Ｃで当初のプログラム−ベリファイ（「ｐｖｆｙＡL 」）はＤＶA より低いマージンに設定されたＤＶALに対するプログラム−ベリファイである。ＤＶALでセルのプログラム−ベリファイが終わると、以降のプログラミングのステップが細かくなり、プログラムベリファイ（ｐｖｆｙＡ）はＤＶA に対するプログラム−ベリファイになる。そこで、セルがＤALまでプログラム−ベリファイ済みであることを指示するため、さらなる遷移状態ＡLOW をプログラミング操作中にラッチしなければならない。同様に、「Ｂ」状態までのプログラミングでＱＰＷを実施する場合、さらなる遷移状態ＢLOW をラッチする。ＢLOW のプログラム−ベリファイは境界ＤＶBLに対するプログラム−ベリファイであり、「Ｂ」のプログラム−ベリファイは境界ＤＶB に対するプログラム−ベリファイである。ＡLOW 状態かＢLOW 状態にあるときに、対象となるメモリセルのプログラミングは、ビット線電圧の適切なバイアスにより、またはプログラミングパルスの修正により、より遅い（より細かい）モードに切り替わる。このように、最初は大きいプログラミングステップを使って速やかに収束でき、目標状態を通り越す危険はない。「ＱＰＷ」プログラミングアルゴリズムは２００５年１２月２９日に出願された「不揮発性メモリにおける改良されたプログラム−ベリファイ操作方法 (Methods for Improved Program-Verify Operations in Non-Volatile Memories)」という米国特許出願第１１／３２３，５９６号（特許文献３０）に開示されている。この特許出願は、その全体が本願明細書において参照により援用されている。
【０１１０】
図２０Ｄは、ＬＭ符号によって符号化される４状態メモリの下位ビットを識別するにあたって必要となる読み出し操作を示す。復号化は上位ページがプログラムされたか否かに左右される。上位ページがプログラム済みなら、下位ページの読み出しにあたって境界しきい値電圧ＤB に対して１回の読み出し行程ｒｅａｄＢが必要になる。他方、上位ページがまだプログラムされていなければ、下位ページは「中間」状態（図２０Ｂ）までプログラムされ、ｒｅａｄＢによってエラーが生じる。下位ページを読み出すには、境界しきい値電圧ＤA に対して１回の読み出し行程ｒｅａｄＡが必要になる。２通りの場合を区別するため、上位ページがプログラムされているときには上位ページ（通常はオーバーヘッドまたはシステム領域）にフラグ（「ＬＭ」フラグ）を書き込む。読み出しのときにはまず、上位ページがプログラム済みと仮定し、ｒｅａｄＢ操作を実行する。ＬＭフラグが読み出されるならこの仮定は正しく、読み出し操作は完了する。他方、最初の読み出しでフラグが生成されなかった場合、これは上位ページがプログラムされていないことを意味し、ｒｅａｄＡ操作により下位ページを読み出されなければならない。
【０１１１】
図２０Ｅは、ＬＭ符号によって符号化される４状態メモリの上位ビットを識別するにあたって必要となる読み出し操作を示す。この図から明らかなように、上位ページの読み出しにあたっては境界しきい値電圧ＤA およびＤC に対して２行程の読み出しｒｅａｄＡおよびｒｅａｄＣがそれぞれ必要となる。同様に、上位ページの復号化も上位ページがまだプログラムされていなければ「中間」状態によって混乱する。ここでもＬＭフラグで上位ページがプログラム済みか否かを指示する。上位ページがプログラムされていなければ、上位ページデータがプログラムされていないことを意味する「１」に読み出しデータをリセットする。
【０１１２】
ＬＭ符号とＱＰＷをともなうプログラミング操作中のラッチ使用
図１０に示すように、読み出し／書き込みモジュールは各ビット線を通じて選択されたメモリアレイの行に沿って所与のメモリセルにアクセスする。ｐ個の読み出し／書き込みモジュールが行内のメモリセルページに同時に働きかける。それぞれの読み出し／書き込みモジュールは、共通プロセッサ５００に結合されたデータラッチ４３０−１とセンス増幅器２１２−１とを備える。センス増幅器２１２−１はビット線を通じてメモリセルの伝導電流を感知する。データは共通プロセッサ５００によって処理され、データラッチ４３０−１に蓄積される。メモリアレイの外でのデータ交換はデータラッチに結合されたＩ／Ｏバス２３１によって行われる（図１３および図１４参照）。好適なアーキテクチャにおいて、行に沿って同じワード線を共有し、メモリアレイのｐ個の連続するビット線によってアクセスされる一連のｐ個のメモリセルによってページが形成される。代替のアーキテクチャでは、行沿いの偶数または奇数メモリセルのいずれかによってページが形成される。データラッチ４３０−１は、様々な必要なメモリ操作を実行するにあたって十分なＤＬ１からＤＬｎまでの最低ｎ個のラッチを用いて実装する。図１３および図１４は、３つのラッチＤＬ０〜ＤＬ２がある４状態メモリの好適な構成を示している。
【０１１３】
現在のページプログラミング中の次のページのプログラムデータのロード
図２１は、下位ページプログラミングの概略的タイミング図であって、次のページのプログラムデータを未使用データラッチへロードするバックグラウンド操作を示している。ホストと、Ｉ／Ｏバスと、データラッチと、メモリコアの活動は同時進行で描かれている。ＬＭ符号による下位ページプログラミングは図２０Ｂに示され、消去済みまたはプログラムされていない状態（１，１）は「下位中間」または中間状態（Ｘ，０）までプログラムされる。この場合、中間「０」状態からプログラムされていない「１」状態を区別するにあたっては１つのビット、すなわち下位ビットで十分である。例えば、下位ビットはＤＬ２（図１３および図１４参照）を使って蓄積できる。
【０１１４】
Ｎ番目のページデータを書き込む場合、ホストは最初にそのページデータを特定のアドレスに書き込むための書き込みコマンドをメモリに向けて発行する。その後には、メモリにプログラムするページデータを送信する。プログラムデータはＩ／Ｏバスを通じてトグルされ、各読み出し／書き込みモジュールのＤＬ２にラッチされる。よって、Ｉ／Ｏバスはこのトグルイン期間中に一時的にビジー状態になり、これは例えば３００μｓの長さにおよぶ。
【０１１５】
下位ページプログラミングはバイナリであり、ＤＶA しきい値レベルによって区切られる「中間状態」から「Ｕ状態」を区別するだけでよい（図２０Ｂ参照）。ワード線へ印加される各プログラミングパルスの後には読み返しまたはプログラム−ベリファイが続き、プログラムデータを表す目標状態にセルが達しているか否かを判断する。この場合のプログラム−ベリファイはＤＶA に対する（「ｐｖｆｙＡ」）である。したがって、各セルにつき１ビットを蓄積するにあたって必要となるのは各読み出し／書き込みモジュールの１ラッチだけである。
【０１１６】
データラッチについて、メモリアレイまたはメモリコアで行われている目下の下位ビットプログラミング操作で盛んに使われるのは、プログラムデータを収容するＤＬ２である。したがって、コアによって使われているラッチの数は１つであり、残りの２つのラッチ、具体的にはＤＬ０とＤＬ１は、遊んだ状態になる。
【０１１７】
コアでプログラミングが続いている間は、２つの遊んでいるラッチと空いているＩ／Ｏバスを次のページのプログラムデータの準備に使用することができる。（Ｎ＋１）番目のページデータを書き込むためにさらなるコマンドを発行するホストは、Ｉ／Ｏバスを通じてデータをトグルし、これを２つの空いているラッチの一方、例えばＤＬ０に、ラッチできる。かくして、コアは、Ｎ番目のページのプログラミングを終えた後に３００μｓかけてデータがトグルインされるのを待たずとも（Ｎ＋１）番目のページのプログラミングを開始できる。
【０１１８】
このとき使われているラッチは２つであり（例えば、ＤＬ２とＤＬ０）、１つは現在進行しているＮ番目のページ（下位ページ）のプログラミングに使われ、もう１つは（Ｎ＋１）番目のページのプログラムデータのキャッシュに使われている。そこで、もう１つのラッチは空いているわけだが、これの使い方は、既にキャッシュされている（Ｎ＋１）番目のページが上位ページか下位ページかによって異なる。
【０１１９】
好適な実施形態において、（Ｎ＋１）番目のページが同じページセルまたはワード線に通常属する上位ページならば、上位ページの以降のプログラミングを最適化するために最後の空きラッチを取っておかなければならない。なぜならば、（前のセクションで言及されている）「クイックパス書き込み」（「ＱＰＷ」）プログラミングアルゴリズムの実施例では、セルが目標状態付近までプログラムされているか否かを指示するフラグを蓄積するためのラッチが追加で必要となるからである。
【０１２０】
（Ｎ＋１）番目のページが別のページセルまたはワード線に属する下位ページならば、ホストから提示される場合、別の（Ｎ＋２）番目の（下位または上位）ページデータを最後の空きラッチで任意にキャッシュすることもできる。
【０１２１】
図２２の表は、ＱＷＰを使用する４状態上位ページまたはフルシーケンスプログラミングの様々な段階で追跡する必要のある状態の数を示している。ＬＭ符号における上位ページまたはフルシーケンスプログラミングを示す図２０Ｃで、下位ページ状態「Ｕ」または（１，１）の一部と「中間」状態（Ｘ，０）はさらに、状態「Ａ」または（０，１）、「Ｂ」または（０，０）、および「Ｃ」または（１，０）までそれぞれプログラムされる。具体的に、状態「Ａ」は「Ｕ」からプログラムされ、状態「Ｂ」および「Ｃ」は「中間」からプログラムされる。「Ｃ」ではなく「Ａ」および「Ｂ」状態で実施するＱＷＰ手法のプログラミングで当初識別の必要があるのは、基本状態「Ａ」、「Ｂ」、および「Ｃ」に加えて「ＡLOW 」および「ＢLOW 」と、全部で５状態になる。３ラッチに３ビットで符号は２3 または９通りあり、６つの状態を識別するにあたって十分である。
【０１２２】
プログラミングの進行と共に発生するプログラミング中のいくつかの段階
「Ａ」完了−「Ａ」状態を目標とするページ内の全セルがＤA 境界についてプログラム−ベリファイ済みである。そのために、ＤAL境界についてプログラム−ベリファイ済みを先に完了する必要がある。４つの状態「Ｌ」（プログラムロックアウト）、「ＢL 」、「Ｂ」、および「Ｃ」を追跡する。そのために、符号表２ビット２ＣＴ（「Ａ」）による所定の符号化で２ビットを蓄積する２つのラッチが必要となる。
【０１２３】
「Ｂ」完了−「Ｂ」状態を目標とするページ内の全セルがＤB 境界についてプログラム−ベリファイ済みである。そのために、ＤBL境界についてプログラム−ベリファイ済みを先に完了する必要がある。４つの状態「Ｌ」、「ＡL 」、「Ａ」、および「Ｃ」を追跡する。そのために、２ビット符号表２ＣＴ（「Ｂ」）による所定の符号化で２ビットを蓄積する２つのラッチが必要となる。
【０１２４】
「Ｃ」完了−「Ｃ」状態を目標とするページ内の全セルがＤC 境界についてプログラム−ベリファイ済みである。５つの状態「Ｌ」、「ＡL 」、「Ａ」、「ＢL 」および「Ｂ」を追跡する。そのために、３ビット符号表３ＣＴ（「Ｃ」）による所定の符号化で３ビットを蓄積する３つのラッチが必要となる。
【０１２５】
「Ａ」＋「Ｂ」完了−「Ａ」状態と「Ｂ」状態を目標とするページ内の全セルがそれぞれＤA 境界とＤB 境界についてプログラム−ベリファイ済みである。２つの状態「Ｌ」および「Ｃ」を追跡する。そのために、１ビット符号表１ＣＴ（「Ａ」＋「Ｂ」）による所定の符号化で１ビットを蓄積する１つのラッチが必要となる。
【０１２６】
「Ａ」＋「Ｃ」完了−「Ａ」状態と「Ｃ」状態を目標とするページ内の全セルがそれぞれＤA 境界とＤC 境界についてプログラム−ベリファイ済みである。３つの状態「Ｌ」、「ＢL 」、および「Ｂ」を追跡する。そのために、２ビット符号表２ＣＴ（「Ａ」＋「Ｃ」）による所定の符号化で２ビットを蓄積する２つのラッチが必要となる。
【０１２７】
「Ｂ」＋「Ｃ」完了−「Ｂ」状態と「Ｃ」状態を目標とするページ内の全セルがそれぞれＤB 境界とＤC 境界についてプログラム−ベリファイ済みである。３つの状態「Ｌ」、「ＡL 」、および「Ａ」を追跡する。そのために、２ビット符号表２ＣＴ（「Ｂ」＋「Ｃ」）による所定の符号化で２ビットを蓄積する２つのラッチが必要となる。
【０１２８】
「Ａ」＋「Ｂ」＋「Ｃ」完了−「Ａ」状態と「Ｂ」状態と「Ｃ」状態を目標とするページ内の全セルがそれぞれＤA 境界とＤB 境界とＤC 境界についてプログラム−ベリファイ済みである。ページの目標状態はどれもプログラム−ベリファイ済みであり、ページのプログラミングは完了している。ラッチは必要でなくなる。
【０１２９】
図２３は、上位ページまたはフルシーケンスプログラミングの概略的タイミング図であって、次のページのプログラムデータを未使用データラッチにロードするバックグラウンド操作を示している。ホストと、Ｉ／Ｏバスと、データラッチと、メモリコアの活動は同時進行で描かれている。
【０１３０】
Ｎ番目のページの上位ページデータを書き込むときには、既にプログラム済みの下位ページデータを参照しなければならない。この既にプログラム済みの下位ページは既に各読み出し／書き込みモジュールのＤＬ２にラッチされている。ホストはＮ番目のページの上位ページデータにあたって、まずはページデータを特定のアドレスに書き込むための書き込みコマンドをメモリに向けて発行する。その後には、メモリにプログラムするページデータを送信する。プログラムデータはＩ／Ｏバスを通じてトグルされ、各読み出し／書き込みモジュールのＤＬ０にラッチされる。よって、Ｉ／Ｏバスはこのトグルイン期間中に一時的にビジー状態になり、これは例えば３００μｓの長さにおよぶ。
【０１３１】
上位ページまたはフルシーケンスプログラミングはそれぞれ、ＤA 、ＤB 、およびＤC によって状態「Ａ」、「Ｂ」、および「Ｃ」が区切られる多状態である（図２０Ｃ参照）。ワード線へ印加される各プログラミングパルスの後には読み返しまたはプログラム−ベリファイが続き、プログラムデータを表す目標状態にセルが達しているか否かを判断する。
【０１３２】
図２２に示すように、プログラミング中の必要ラッチ数はプログラミングがどの段階まで進んだかによって異なる。例えば、最初は全３ラッチを使用する。「Ａ」状態がすべてプログラム−ベリファイ済み（「Ａ」完了）になると、メモリコアが以降のプログラミングで４つの状態を蓄積するにあたって必要となるラッチは２つだけである（例えば、ＤＬ２とＤＬ１）。残りの１ラッチ（例えば、ＤＬ０）は空いているので、キャッシュ操作に使える。
【０１３３】
コアでプログラミングが続いている間は、空いているラッチと空いているＩ／Ｏバスを次のページのプログラムデータの準備に使用することができる。（Ｎ＋１）番目のページデータ（下位ページデータ）を書き込むためのさらなるコマンドを発行するホストは、Ｉ／Ｏバスを通じてデータをトグルして、これを空いているラッチＤＬ０にラッチできる。かくして、コアは、Ｎ番目のページのプログラミングを終えた後に３００μｓかけてデータがトグルインされるのを待たずとも（Ｎ＋１）番目のページのプログラミングを開始できる。図２２に示すように、他のプログラミング段階で少なくとも１つの空きラッチがある場合にも同じことが当てはまる。
【０１３４】
必要なラッチが１つだけで、２つの空きラッチをキャッシュ操作に使えるプログラミング段階に入ることもある。例えば、図２２に示すように、「Ａ」状態と「Ｂ」状態の両方がプログラム−ベリファイ済みになったときがこれにあたる。このとき２つのラッチを使用できる。（Ｎ＋１）下位ページデータのロードのためにいずれか一方が既に使われているなら、残りのラッチを使って（Ｎ＋２）上位または下位ページデータをロードできる。
【０１３５】
好適な実施形態において、（Ｎ＋１）番目のページが同じページセルまたはワード線に通常属する上位ページならば、上位ページの以降のプログラミングを最適化するために最後の空きラッチを取っておかなければならない。なぜならば、前のセクションで言及されている「クイックパス書き込み」（「ＱＰＷ」）プログラミングアルゴリズムの実施例では、セルが目標状態付近までプログラムされているか否かを指示する１つまたは２つのフラグを蓄積するためのラッチが追加で必要となるからである。
【０１３６】
（Ｎ＋１）番目のページが別のページセルまたはワード線に属する別の下位ページならば、ホストから提示される場合、別の（Ｎ＋２）番目の（下位または上位）ページデータを最後の空きラッチで任意にキャッシュすることもできる。
【０１３７】
本発明の一態様によると、追跡する状態の数に応じて多数の書き込み操作段階が変化する場合、段階依拠形符号化によって使用可能なデータラッチを効率的に利用し、余っているラッチはバックグラウンドキャッシュ操作に最大限役立てることができる。
【０１３８】
図２４は、本発明の一般的な実施形態に従い目下の多段階メモリ操作と同時進行するラッチ操作を示すフローチャートである。
ステップ６００：メモリセルからなるアドレス指定可能なページをメモリアレイに具備するメモリの操作を開始する。
ステップ６１０：一定数のビットをラッチする容量を持つ１組のデータラッチを、アドレス指定されたページの各メモリセルに提供する。
メモリアレイにおける目下の多段階メモリ操作
ステップ６２０：メモリアレイに対して目下のメモリ操作を実行し、メモリ操作には１つ以上の段階があり、各段階には所定の一連の動作状態が関連付けられている。
効率的な段階依拠形符号化によるラッチの解放
ステップ６２２：各段階に段階依拠形符号化を提供することにより、少なくともいくつかの段階では実質上最低限のビットによって一連の動作状態を符号化し、一連のデータラッチを有効利用し、空きデータラッチの一部を解放する。
同時進行ラッチ操作
ステップ６２４：目下のメモリ操作と同時進行で、メモリアレイに対する１つ以上の後続するメモリ操作に関係するデータを用いて空きデータラッチの一部に対して操作を実行する。
【０１３９】
現在のプログラミング中の読み出し割り込み
図２５は、下位ページプログラミングの概略的タイミング図であって、使用可能なラッチを使った読み出し割り込み操作を示している。ホストと、Ｉ／Ｏバスと、データラッチと、メモリコアの活動は同時進行で描かれている。
【０１４０】
Ｎ番目のページデータを書き込む場合、ホストは最初にそのページデータを特定のアドレスに書き込むための書き込みコマンドをメモリに向けて発行する。その後には、メモリにプログラムするページデータを送信する。プログラムデータはＩ／Ｏバスを通じてトグルされ、各読み出し／書き込みモジュールのＤＬ２にラッチされる（図１３および図１４参照）。よって、Ｉ／Ｏバスはこのトグルイン期間中に一時的にビジー状態になり、これは例えば３００μｓの長さにおよぶ。
【０１４１】
下位ページプログラミングはバイナリであり、ＤA しきい値レベルによって区切られる「Ｕ」状態から「中間状態」を区別するだけでよい（図２０Ａ参照）。ワード線へ印加される各プログラミングパルスの後には読み返しまたはプログラム−ベリファイが続き、プログラムデータを表す目標状態にセルが達しているか否かを判断する。この場合のプログラム−ベリファイはＤA に対する（「ｐｖｆｙＡ」）である。したがって、各セルにつき１ビットを蓄積するにあたって必要となるのは各読み出し／書き込みモジュールの１ラッチだけである。
【０１４２】
データラッチについて、メモリアレイまたはメモリコアで行われている目下の下位ビットプログラミング操作で盛んに使われるのは、プログラムデータを収容するＤＬ２である。したがって、コアによって使われているラッチの数は１つであり、残りの２つのラッチ、具体的にはＤＬ０とＤＬ１は、遊んだ状態になる。
【０１４３】
コアでプログラミングが続いている間、２つの遊んでいるラッチと空いているＩ／Ｏバスを読み出し操作に使用することができる。読み出し操作にあたっては、目下のプログラミング操作で既に埋まっているメモリコア（すなわち、メモリアレイ）そのもので感知を行う必要がある。しかし、実際の読み出し操作の感知段階は通常ならばプログラミング操作より遥かに短く（通常、プログラミング時間の１０分の１）、プログラミング操作に割り込んで感知操作を差し込んでも性能が大きく損なわれることはない。感知の後には１つ以上の空きデータラッチに読み出しデータをラッチする。そして、ユーザはＩ／Ｏバスへ読み出しデータをトグルアウトできる。これはメモリアレイにおけるプログラミング操作と同時に行われるから、時間を節約できる。
【０１４４】
したがって、ホストは下位ページのプログラミング中に読み出しコマンドを発行してプログラミングに割り込むことができ、この中断のときにプログラミング状態がデータラッチに保存される。さらなるページデータが感知され、２つの空きラッチの一方、例えばＤＬ０にラッチされる。そして、保存されたプログラミング状態でプログラミングを再開できる。再開したプログラミングによってメモリアレイが埋まっているときには、データラッチの中にある読み出しデータをＩ／Ｏバスへトグルアウトできる。
【０１４５】
前に述べたように、４状態（２ビット）メモリの例で好適なラッチ数はページの各メモリセルにつき３つである。下位ページプログラミングの場合、下位ページプログラムデータを蓄積するのに必要なラッチは１つだけである。そのため、２つの空きラッチが残る。典型的な読み出し操作で感知データビットをラッチするのに必要な空きラッチは１つだけである。好適なルックアヘッド（「ＬＡ」）読み出し操作では２つの空きラッチが必要となる。これは以降のセクションでさらに詳しく説明する。
【０１４６】
図２６は、上位ページプログラミングの概略的タイミング図であって、使用可能なラッチを使った読み出し割り込み操作を示している。ホストと、Ｉ／Ｏバスと、データラッチと、メモリコアの活動は同時進行で描かれている。多段階プログラミングについては図２３との関係で説明済みであり、種々の段階にはいくつかの空きデータラッチを使用できる。例えば、状態「Ａ」がプログラム−ベリファイ済みになった後には１つのデータラッチが空き、状態「Ａ」と状態「Ｂ」の両方がプログラム−ベリファイ済みになった後には２つのデータラッチが空く。
【０１４７】
よって、状態「Ａ」がプログラム−ベリファイ済みになった後には、従来の読み出しから１つの空きラッチを使って感知データをラッチできる。他方、状態「Ａ」と状態「Ｂ」の両方がプログラム−ベリファイ済みになった後には、前述したＬＡ読み出しを２つの使用可能なラッチでサポートできる。
【０１４８】
キャッシュされる複数コマンドの管理
メモリのコアである１つのメモリ操作が実行中のときに、保留になっている別のメモリ操作をデータラッチにキャッシュしたり、Ｉ／Ｏバスを通じて転送するキャッシュ操作をサポートしたりするには、同時メモリ操作を管理する必要がある。通常、従来のメモリ装置にはキャッシュ操作を実行するにあたって十分な数の空きデータラッチが用意されていない。たとえ十分な数の空きデータラッチが用意されていたとしても、キャッシュにデータがある保留のメモリ操作は目下のメモリ操作が完了した後でないと実行されない。
【０１４９】
図２７は、典型的なメモリ操作に関連する情報一式を示す。メモリ操作の実行要請を受けるメモリは、指定されたメモリ操作の開始を告げるプリコマンドを受け取る。この後には、操作が行われるメモリアレイのアドレスが続く。消去操作の場合のアドレスは、消去するメモリセルブロックである。プログラミング操作または読み出し操作の場合のアドレスは、操作の対象となるメモリセルページである。指定された操作がプログラミング操作なら、プログラムデータが供給されてデータラッチにラッチされる。プログラムデータが用意されたら実行コマンドが発行されて、その使用可能なプログラムデータに対してプログラミング操作が実行される。指定された操作が読み出し操作なら、メモリにデータは送信されない。実行コマンドが発行されて、読み出し操作が実行される。アドレス指定されたメモリセルのページは感知され、感知されたデータはデータラッチにラッチされ、後ほどＩ／Ｏバスを通じてトグルアウトされる。
【０１５０】
図２８は、シンプルなキャッシュ操作をサポートする従来のメモリシステムを示す。このメモリシステムは、メモリコントローラ８を介してメモリチップ３０１を制御するメモリコントローラ８を含む。メモリチップのメモリアレイ１００は、オンチップホストインターフェイス／制御回路３１０によって制御される。この制御回路の状態マシンは、メモリアレイの基本的なメモリ動作を管理する。ホスト６は、マッピングやメンテナンスといった高度なメモリ機能を遂行するメモリコントローラ８を通じてメモリシステムと連動する。
【０１５１】
ホストまたはメモリコントローラは、メモリチップがビジーでないときにステータス信号Ｒｅａｄｙ／Ｂｕｓｙ* をもとにメモリ操作を要請できる。要請されたメモリ操作はバッファ３２２に保持され、状態マシンが別のメモリ操作を実行していないときには状態マシン３１２へ放出されて、実行される。例えば、メモリアレイでは状態マシンによる制御のもとでメモリ操作ＭＥＭ  ＯＰ０が実行されている。使用できる空きデータラッチがあるならば、コントローラはその合図を受け、保留のメモリ操作ＭＥＭ  ＯＰ１はメモリチップへ送られ、バッファ３２２にバッファされる。同時に、ＭＥＭ  ＯＰ１に関係するデータはメモリチップへトグルインされ、データラッチにラッチされる。状態マシンは、ＭＥＭ  ＯＰ０の実行が完了すると直ちにバッファ内のＭＥＭ  ＯＰ１を解放し、これの実行を開始する。このように、従来のメモリシステムでは目下のメモリ操作が完了した後に保留のメモリ操作を実行する。
【０１５２】
図２８に示す例で、それぞれのコマンドは実行を開始する前に前回のコマンドが完了するまで待たなければならないが、そのデータは前回のコマンドの実行中にキャッシュされている。したがって、メモリコアでＭＥＭ  ＯＰ０が実行している間はＭＥＭ  ＯＰ１と関連するデータ１がラッチされる。ＭＥＭ  ＯＰ１は、ＭＥＭ  ＯＰ０が完了した後にキャッシュされたデータ１に働きかける。同様に、メモリコアでＭＥＭ  ＯＰ１が実行している間は、ＭＥＭ  ＯＰ２と関連するデータ２がラッチされる。このやり方では、同じワード線の下位および上位論理ページの両方をロードして同じプログラミング操作でマルチビットを効率よくプログラムすることはできない。
【０１５３】
プログラミング操作の性能、特に逐次プログラミングの性能は、２つの要因に左右される。最初のものはプログラムデータをロードする時間に関係がある。フラッシュメモリの容量拡大にともない、そのページサイズも世代交代のたびに拡大している。プログラムするページデータが大きくなれば、データラッチにロードする時間が長くなる。プログラミング性能を高めるには、このデータロードの時間をどこかに潜在化させるのが望ましい。そのために、フォアグラウンドでメモリコアがプログラミング操作で忙しいので、データラッチとＩ／Ｏバスが遊んでいるときに、できるだけ多くのプログラムデータをバックグラウンドでキャッシュする。
【０１５４】
本発明の一特徴として、この第１の要因には、プログラミング中により多くのページをバックグラウンドでデータラッチにロードすることによって対処し、データラッチは使用可能になった時点で直ちに保留のプログラムデータのキャッシュに使われる。これは、同じフォアグラウンド操作のときには、２つ以上のコマンドに関連するデータをバックグラウンドでキャッシュできる。
【０１５５】
プログラミング性能を左右する第２の要因は、ページをプログラムする時間、特に同じワード線を持つマルチビットセルのページをプログラムする時間に関係する。既に述べたように、マルチビットセルのページは単独シングルビットページの集まりとして扱うことができる。例えば、２ビットページのプログラミングと読み出しは、ある程度独立した２つのシングルビットページとして、具体的には下位ビットページと上位ビットページとして、行うことができる。特に、下位ビットページは、下位ビットページのプログラムデータが使用可能となった時点で直ちにプログラムできる。上位ビットページは第２の行程で同じメモリセルページにプログラムされ、そのプログラミングは、セルにプログラム済みの下位ページの値に左右される。このように２つのビットを２つの異なる時間に２つの別々の行程でプログラムできる。しかし、「オールビット」または「フルシーケンス」プログラミングとして知られているやり方で２つのビットを１つの行程でプログラムしたほうがより効率的かつ正確である（プログラミングの混乱も少ない）。これは、プログラミング中に全てのデータビットが入手可能である場合に限り可能である。したがって、オールビットプログラミングは、実際には、全てのビットが入手可能である場合に実行するのが好ましい。一方、下位ページデータだけが入手可能なら、下位ページを先にプログラムする。同じワード線に属する上位ページデータが後ほど入手可能となる場合、そのページのセルを第２の行程でプログラムする。下位ページのプログラミングが完了する前に上位ページデータが入手可能となる場合、下位ページのプログラミングを止めて、オールビットプログラミングの実行に転換するのが望ましい。
【０１５６】
図２８に示すやり方ではバックグラウンドで２つ以上のコマンドをキューに入れることはできないため、２ページ以上のページデータはキャッシュできない。さらに、これは、全てのビットが入手可能となったときに下位ページのプログラミングを途中で終了して異なる「オールビット」プログラミングの実行に転換する状況に対処できない。
【０１５７】
本発明のもう１つの特徴として、この第２の要因には、オールビットプログラミングに必要な全てのビットをキャッシュしてオールビットプログラミングを実行することによって対処する。さらに、多数の保留のコマンドを管理するコマンドキュー管理部は、コマンドに関係するデータの状態に応じて、特定のコマンドを、次の保留のコマンドを優先させて、完了する前に終了させる。
【０１５８】
本発明の２つの特徴を１つにまとめ、より多くのプログラムデータをキャッシュし、より効率的なプログラミングアルゴリズムの使用を可能にすることにより、プログラミング性能を向上させる。
【０１５９】
本発明の一態様によると、目下のメモリ操作が実行中のときに、それ以外の多数の保留のメモリ操作をキューに入れる。さらに、一定の条件が満たされる場合、個別のメモリ操作に対するコマンドのいくつかを併合して１つの合同操作にまとめることができる。一例において、目下のメモリ操作の実行中にキューの中にある１つ以上の多数の保留のメモリ操作を併合する条件が満たされる場合、目下のメモリ操作が終了し、併合された操作がこれに取って代わる。別の例において、キューの中にある２つ以上の多数の保留のメモリ操作を併合する条件が満たされる場合、現在実行中の操作が完了した後に併合操作を開始する。
【０１６０】
共通のワード線を共用するマルチビットページのメモリセルをプログラムする一例を挙げる。各々のマルチビットはバイナリ論理ページのビットを形成すると考えることができる。かくして、２ビットメモリセルからなるページには下位論理ページと上位論理ページがある。３ビットメモリセルからなるページには中間論理ページが加わる。バイナリ論理ページはそれぞれ別々にプログラムできる。よって、２ビットメモリセルの場合、第１の行程で下位論理ページをプログラムでき、上位論理ページは第２の行程でプログラムできる。さらに効率的に、２ビットのプログラムデータが入手可能なら、好ましくは１回の行程でマルチビットページをプログラムする。
【０１６１】
多重バイナリプログラミングや併合単一行程マルチビットプログラミングでは、何ビットのプログラムデータが入手可能かによって数通りのシナリオが考えられる。理想的には、プログラミングの前に全てのビットが入手可能なら、マルチビットのメモリセルページを１回の行程でプログラムする。前に述べたように、下位論理ページのプログラムデータだけが入手可能なら、下位論理ページのシングルビットプログラミングを開始できる。その後、上位論理ページのプログラムデータが入手可能になったら、第２の行程で同じメモリセルページをプログラムできる。このほかに、下位ページのプログラミングが完了する前に上位ページデータが入手可能になることもある。この場合、効率的な単一行程マルチビットプログラミングまたは「フルシーケンス」プログラミングを活かすため、下位ページのプログラミングを終了し、マルチビットプログラミングに差し替える。この場合、下位論理ページと上位ページのプログラミングがあたかも併合されたか、あるいは合同されたかのようになる。
【０１６２】
マルチビットセルを持つメモリで、ホストによって送信される論理プログラムデータページは下位論理ページ、上位論理ページ、または何らかの他の中間論理ページが入り混じったものになることがある。このため通常ならば、データラッチが許す範囲でできるだけ多くのプログラムデータページをキャッシュするのが望ましい。こうすれば、同じメモリセルページに属する論理ページを併合してマルチビットプログラミングを実行する見込みが高まる。
【０１６３】
図２９は、複数メモリ操作のキュー操作と併合を示すフローチャートである。コアアレイと、アレイでアドレス指定されたページの関連するデータをラッチするデータラッチとを具備するメモリに、複数のメモリ操作を併合するアルゴリズムを適用する。
ステップ７１０：コアアレイで実行する着信メモリ操作を順序付けするために先入れ先出しキューを設ける。
ステップ７２０：データラッチを使って着信メモリ操作のデータをキャッシュできるときに、着信メモリ操作をキューに入れる。
ステップ７３０：コアアレイにおけるメモリ操作の実行とキューの中にあるメモリ操作に併合の見込みがあるか否かを判断する。併合の見込みがあるならステップ７４０へ進み、さもなくば、ステップ７５０へ進む。
（「併合の見込みがある」とは、同じメモリセルのページに関連する少なくとも２つの論理ページを１つの行程でまとめてプログラムできることを意味する。例えば、２ビットメモリセルを備えるメモリで、下位論理ページと上位論理ページにそれぞれプログラムする２つの操作には併合の見込みがある。同様に、３ビットメモリセルを備えるメモリで下位論理ページと中間ページにプログラムする操作には併合の見込みがある。下位、中間、および上位論理ページに対するプログラミング操作にも併合の見込みがある。２ビットセルの例に戻り、コアアレイで下位論理ページが実行中で、キューの中で保留になっている次のプログラミング操作が同じメモリセルのページに属する上位論理ページをプログラムするものならば、併合の見込みはある。他方、コアアレイで上位ページが実行中なら、次にプログラムする保留のページは異なるメモリセルのページに属することになるため、併合の見込みはない。メモリ操作が読み出し操作である場合も同様である。）
【０１６４】
ステップ７４０：キューの中にある１つ以上の次のメモリ操作がコアアレイにおけるメモリ操作に併合可能である場合、コアにおけるメモリ操作の実行を終了し、代わりに併合メモリ操作の実行を開始し、さもなくば、コアにおけるメモリ操作の完了を待ってからキューの中にある次のメモリ操作を実行する。ステップ７２０へ進む。
（「併合可能」とは、併合が可能な条件が満たされていることを意味する。この例では、データラッチにラッチされた下位論理ページと上位論理ページの両方のプログラムデータが使用可能である。同様に、「併合メモリ操作」とは、下位論理ページと上位論理ページの両方を一緒にプログラムすることまたは感知することに相当する。）
ステップ７５０：コアにおけるメモリ操作が完了するまで待ち、キューの中にある２つ以上の次のメモリ操作が併合可能なら、コアアレイで併合メモリ操作を実行し、さもなくば、キューの中にある次のメモリ操作をコアアレイで実行する。ステップ７２０へ進む。
【０１６５】
複数のコマンドの管理は、メモリ操作キュー管理部によって制御されるメモリ操作キューを用意することによって達成する。このメモリ操作キュー管理部は好ましくは、メモリアレイにおけるメモリ操作の実行を制御する状態マシンの１モジュールとして実装する。
【０１６６】
図３０は、メモリ操作キューとメモリ操作キュー管理部が組み込まれた好適なオンチップ制御回路の概略的ブロック図を示す。オンチップ制御回路３１０’はメモリアレイ１００の基本的動作を制御する働きをする有限状態マシン３１２’を含む。（図２８も併せて参照）。メモリ操作キュー３３０は、着信メモリ操作要請を保持する先入れ先出しスタックメモリによって実装する。通常、メモリ操作要請はホストかメモリコントローラから発行される（図２８参照）。
【０１６７】
複数の保留の操作と実行中のメモリ操作を管理するため、状態マシン３１２’の１モジュールとしてメモリ操作キュー管理部３３２を実装する。キュー管理部３３２は基本的に、状態マシン３１２’に向けて放出され実行されるキュー３３０内の保留のメモリ操作のスケジュールを組む。
【０１６８】
メモリ操作、例えばＭＥＭ  ＯＰ０が、キューから状態マシンのプログラムレジスタ３２４へ放出されると、状態マシンによる制御のもとでＭＥＭ  ＯＰ０がメモリアレイで実行される。状態マシンは使用可能な空きデータラッチ数を常に把握し、このステータスは信号Ｒｅａｄｙ／Ｂｕｓｙ* によってホスト／メモリコントローラへ伝達される。ホストは、１つ以上の空きデータラッチが使用可能である場合、プログラミングや読み出し等、さらなるメモリ操作を要請できる。かくして、ホストによって送信されるＭＥＭ  ＯＰ１、ＭＥＭ  ＯＰ２等がキュー３３０に入れられる。キュー内の最大メモリ操作数は、使用可能な空きデータラッチ数によって決まる。
【０１６９】
キュー管理部３３２は、キュー３３０から状態マシンのプログラムレジスタ３２４にかけて、キュー３３０の中で保留になっているメモリ操作の放出を制御する。さらに、これは、図２９との関係で説明したように、いずれかのメモリ操作を併合して１つの合同操作にまとめることができるか否かを判断する。キュー管理部３３２は、キューの中にある２つ以上の操作が併合可能である場合、それらの併合可能な操作をキュー３３０から放出し、その合同操作は、状態マシンにおける現在の操作の実行が完了した後に状態マシン３１２’によって実行される。キュー管理部は、キューの中にある１つ以上の操作が状態マシンによって実行されている操作と併合可能である場合、状態マシンに現在実行中の操作を終了させ、代わりに合同操作を実行させる。このように、メモリ操作管理部３３２は状態マシン３１２’の残りの部分と協働しながら複数のメモリ操作のスケジュールを組み、場合によってはそれらを併合する。
【０１７０】
これまで２ビットメモリの例を挙げて本発明を説明してきた。目下のメモリ操作の最中にデータラッチが解放されるなら、それらを使ってどんな保留のメモリ操作のデータをもキャッシュできる。こうすることでより多くのデータビットを使用可能なデータラッチにロードできるばかりでなく、メモリ操作を併合する見込みも高くなる。当業者なら、２ビットより多くのデータをそれぞれ蓄積できるセルを備えるメモリ、例えば３ビットまたは４ビットメモリに、同じ原理を容易く応用できる。例えば、３ビットメモリのページには、３つの単独ビットページ、具体的には下位、中位、および上位ビットページが、あるとみなすことができる。これらのページは、同じメモリセルのページで異なる時間に別々にプログラムできる。あるいは、全ての３ビットが使用可能な場合、オールビットプログラミングモードで一斉にプログラムすることができる。そのために、多数のページに応じてキャッシュプログラミングコマンドをキューに入れる必要がある。２ビットメモリでフルシーケンス転換が可能なら、２つのプログラムコマンドを一斉に実行できる。同様に、３ビットメモリでオールビットまたはフルシーケンスモードへ転換する場合、３つの相継ぐプログラムコマンドを一斉に実行できる。ここでもコマンドキュー管理部は、完了または終了したコマンドがどれかを、そして次に実行するコマンドはどれかを、追跡する。そして、プログラミング中に特定の記憶状態マイルストーン (milestones) に達するといくつかのデータラッチが解放され、保留のプログラムデータのキャッシュに効率よく利用することができる。
【０１７１】
消去中のキャッシュ操作−バックグラウンド読み出し・書き込み操作
消去操作の待ち時間は、フラッシュ記憶システムの全体的な性能オーバーヘッドを大きく左右する要因の１つである。例えば、消去操作にかかる時間はプログラミング操作の４または５倍の長さになることがあり、読み出し操作の１０倍の長さになることがある。フラッシュメモリの性能を向上させるには、消去操作の完了を待つ時間を利用するキャッシュ操作等のバックグラウンド操作が極めて重要となる。本発明は、メモリがメモリコアにおける消去操作で埋まり、ビジー状態のときにデータラッチとＩ／Ｏバスを利用するものである。例えば、次のプログラミング操作のデータまたは読み出し操作からの出力データは消去操作と同時進行で実行できる。このようにして、次のプログラミング操作または読み出し操作が行われないときに、当該操作のデータ入力または出力部分は既に完了しているため、プログラミングまたは読み出しの待ち時間は低下し、性能は上がる。
【０１７２】
消去操作の実施にあたっては数通りの方法がある。米国特許第５，１７２，３３８号（特許文献１４）で開示されている一方法では、交互消去パルスとその後に続くベリファイによって消去を行う。ひとたび消去されベリファイされたセルに対するさらなる消去パルスは禁じられる。ＮＡＮＤメモリにとって好適なもう１つの消去操作には２つの段階がある。第１段階における消去では、所定の「消去済み」または「接地」状態を下回る程度のしきい値レベルになるまでメモリセルの電荷素子から電荷を除去する。第２段階では、所定の「消去済み」しきい値に対する一連のソフトプログラミング／ベリファイによって確立されたしきい値分布の中に消去済みセルのしきい値線を締め付ける。
【０１７３】
本発明の一般的な態様によると、消去操作が行われているときには空きデータラッチを使って別の保留のメモリ操作に関係するデータをキャッシュできる。
【０１７４】
図３１は、消去操作中のバックグラウンドキャッシュ操作を示す概略的フローチャートである。
ステップ７６０：一定数のビットをラッチする容量を持つ１組のデータラッチを、アドレス指定されたページの各メモリセルに用意する。
ステップ７７０：指定されたページ群に対して消去操作を実行する。
ステップ７８０：消去操作と同時進行で、メモリアレイに対する１つ以上の後続するメモリ操作に関係するデータを用いて１組のデータラッチに対して操作を実行する。
【０１７５】
本発明の一態様によると、消去操作が行われているときには保留になっているプログラミング操作のプログラムデータをＩ／Ｏバスを通じてデータラッチにロードする。特に、電荷を除去する消去操作の第１段階では全てのデータラッチをプログラムデータのキャッシュに使うことができる。ソフトプログラミングのベリファイに合格した後にはプログラムロックアウト状態を蓄積するためにデータラッチのいずれか１つが必要となるため、ソフトプログラミングが行われる消去操作の第２段階では、この１つのデータラッチを除く全てのデータラッチをプログラムデータのキャッシュに使用することができる。１セル当たり２ビットをサポートするメモリアーキテクチャの場合、少なくとも各ビットにつき１つずつ、合わせて２つのデータラッチがある。好適な実施形態において、操作中に発生する特定の状態を蓄積するための追加のデータラッチを使用する。したがって、メモリのアーキテクチャにもよるが、２ビットセルの場合、少なくとも２つのデータラッチがあって、さらに好ましくは３つのデータラッチを各セルにつき用意する。消去の第１段階ではこれらのデータラッチの全てをキャッシュ用に使用でき、消去操作の第２段階では１つのデータラッチを除く全てのデータラッチをキャッシュ用に使用できる。したがって、消去段階とメモリアーキテクチャに応じて使用可能なデータラッチに１つ以上のページのプログラムデータをロードできる。
【０１７６】
図３２は、メモリアレイに対する消去操作の概略的タイミング図であって、消去操作の第１の消去段階におけるプログラムデータのロード操作を示している。ホストと、Ｉ／Ｏバスと、データラッチと、メモリコアの活動は同時進行で描かれている。この図に見られるように、メモリコアにおける消去操作には第１の消去段階とその後に続く第２のソフトプログラミング／ベリファイ段階とがある。
【０１７７】
消去操作の第１段階でメモリアレイまたはコアは既に埋まっているが、データラッチとＩ／Ｏバスは空いていてバックグラウンド操作に使える。このときＩ／Ｏバスを通じてデータラッチにプログラムデータをロードできる。例えば、各セルにつき３つのデータラッチがある好適な実施形態において、第１の消去段階のキャッシュ操作にこれらのラッチを全て使用することができる。
【０１７８】
例えば、Ｎ番目のページデータを書き込む場合、ホストは最初にそのページデータを指定のアドレスに書き込むための書き込みコマンドをメモリに向けて発行する。その後には、メモリにプログラムするページデータを送信する。プログラムデータはＩ／Ｏバスを通じてトグルされ、各読み出し／書き込みモジュールのＤＬ２にラッチされる（図１３および図１４参照）。よって、Ｉ／Ｏバスはこのトグルイン期間中に一時的にビジー状態になり、これは例えば３００μｓの長さにおよぶ。使用可能なデータラッチが３つあるなら、原理上は最高３ページのプログラムデータをキャッシュできる。例えば、消去操作が進行中のときにはＮ番目のページの下位ページ部分を、またはＮ番目のページの下位ページ部分と上位ページ部分の両方を、順次ロードできる。
【０１７９】
図３３は、メモリアレイに対する消去操作の概略的タイミング図であって、消去操作のソフトプログラミング／ベリファイ段階におけるプログラムデータのロード操作を示している。ホストと、Ｉ／Ｏバスと、データラッチと、メモリコアの活動は同時進行で描かれている。
【０１８０】
消去操作の第２のソフトプログラミング／ベリファイ段階でもメモリアレイまたはコアは予め埋まっている。しかし、前述したように、１つのデータラッチを除く全てのデータラッチとＩ／Ｏバスは空いている。消去操作に使われていないデータラッチにはプログラムデータをロードできる。例えば、各セルにつき３つのデータラッチがある好適な実施形態でソフトプログラミング／ベリファイ操作に使われるラッチは１つだけである。したがって、空きラッチは２つ残っていてキャッシュ操作に使える。
【０１８１】
例えば、Ｎ番目のページデータを書き込む場合、ホストは最初にそのページデータを指定のアドレスに書き込むための書き込みコマンドをメモリに向けて発行する。その後には、メモリにプログラムするページデータを送信する。プログラムデータはＩ／Ｏバスを通じてトグルされ、各読み出し／書き込みモジュールのＤＬ２にラッチされる（図１３および図１４参照）。よって、Ｉ／Ｏバスはこのトグルイン期間中に一時的にビジー状態になり、これは例えば３００μｓの長さにおよぶ。使用可能なデータラッチが２つあるなら、原理上は最高２ページのプログラムデータをキャッシュできる。例えば、消去操作が進行中のときにはＮ番目のページの下位ページ部分を、またはＮ番目のページの下位ページ部分と上位ページ部分の両方を、順次ロードできる。
【０１８２】
一般的に、データラッチにロードできる最大ページ数は、メモリアーキテクチャのほかに、並行してプログラムされているチップ／ダイの数とプレーン／バンクの数とデータ転送速度次第で決まる。
【０１８３】
本発明のもう１つの態様によると、消去操作が行われているときには読み出し操作を挿し込むことができ、データラッチの中にある得られた読み出しデータは消去操作中に出力できる。好ましくは、ソフトプログラミング／ベリファイ操作の合間に読み出し操作を挿し込み、ソフトプログラミングパルスそのものは中断させない。感知され未使用データラッチにラッチされたデータは、アレイ内で消去が進行しているときにＩ／Ｏバスを通じてホストシステムへ出力できる。これはシステムオーバーヘッドを潜在化させるにあたって、例えば読み出しスクラブ操作および他のシステムメンテナンスを実行するにあたって、理想的な特徴である。
【０１８４】
先行技術のシステムで消去操作が中断すると、サイクルの頭からやり直さなければならない。これは、特にＮＡＮＤメモリで多大な時間を必要とする。
【０１８５】
読み出し操作は、ソフトプログラミングパルスと消去ベリファイパルスとの間に挿し込むことができる。消去操作には、ソフトプログラミングパルスの数だけ読み出しを挿し込むことができる。感知時間は追加時間ではあるが、ソフトプログラミング／ベリファイ操作全体の時間と比較すると短い。読み出しデータのトグルアウトは進行中のプログラミング／ベリファイ操作と並行して行われるので有利である。内部制御やデータ管理でバックグラウンド操作を実行する場合にも読み出し操作を利用することができる。
【０１８６】
フラッシュ記憶システムにおける消去中の読み出しは、蓄積データを良好な状態に保つために行われる読み出しスクラブ操作に役立てることができる。データが蓄積されたメモリ部分を定期的に読み出し、セルにプログラムされた電荷の時間の経過にともなうずれや周囲の変化をチェックする。ずれや周囲の変化がある場合、適切なマージによるセルの再プログラミングによって補正する。米国特許第７，０１２，８３５号（特許文献３１）では様々な読み出しスクラブ方式が開示されている。この特許は、その全体が本願明細書において参照により援用されている。読み出しスクラブはホストの操作とは無関係のシステム操作であるため、メモリがビジー状態になるときには他の何らかの操作の背後にこれを潜在化させるのが最善である。この場合、消去操作の最中に読み出しスクラブ操作を挿し込むことにより、読み出しの待ち時間を潜在化させることができる。
【０１８７】
図３４は、メモリアレイに対する消去操作の概略的タイミング図であって、読み出し操作の挿し込みと、使用可能なラッチを使う、得られたデータの出力操作とを示している。ホストと、Ｉ／Ｏバスと、データラッチと、メモリコアの活動は同時進行で描かれている。この図に見られるように、消去操作の第２段階における操作はソフトプログラミング／ベリファイである。好ましくはソフトプログラミングパルスの完了は中断させずに１つ以上の読み出し操作を挿し込む。
【０１８８】
チップが消去操作の第２段階に入っているときにはソフトプログラミング／ベリファイのアルゴリズムを実行する。ステータス信号、例えばＢＵＳＹ／ＲＥＡＤＹ* は、メモリが内部消去操作のためにビジー状態にあることを知らせる。同時に、もう１つのステータス信号、例えばＣＡＣＨＥＢＵＳＹ／ＣＡＣＨＥＲＥＡＤＹ* （図示せず）は、読み出しコマンド入力を受け付けるためにビジーからレディに推移する。読み出しコマンドが入力されるとすぐにＣＡＣＨＥＢＵＳＹ／ＣＡＣＨＥＲＥＡＤＹ* はビジーに推移して、他のコマンドの入力は阻止される。そして、読み出しコマンドは、目下のソフトプログラミングパルスが内部で完了するのを待ってから、同一チップでアドレス指定された別のブロックで実行される。読み出しが終わるとアドレスは以前の操作の対象であった消去ブロックに戻される。消去ブロックではソフトプログラミング／ベリファイ操作を再開できる。
【０１８９】
その一方でデータラッチの中にある読み出しデータはトグルアウトできる。このトグルアウト時間は普通、読み出し時間よりも遥かに長い。例えば、読み出し時間が約２５μｓであるのに対しトグルアウト時間は約２００μｓである。したがって消去操作に読み出しを挿し込めば、消去の完了を待ちながら浪費する時間から約２００μｓが浮いて有利である。
【０１９０】
この消去中のキャッシュ読み出しは、消去の時間が許す限り何度でも挿し込むことができる。しかし、読み出しが多すぎると総消去時間が長くなり、読み出しが消去操作に招く時間的なペナルティと読み出しから浮かせるトグル時間との間でバランスをとらなければならない。消去中に１つ以上の読み出しを挿し込んだ後になお空いている時間が残っているなら、前のセクションで説明したように使用可能なデータラッチを使ってプログラムデータをキャッシュできる。プログラムデータがロードされても、プログラミング操作は消去操作全体が完了した後でないと開始できない。ほとんどの場合、プログラムデータがロードされた後には他のキャッシュ操作は不可能になるため、プログラミング操作の適正な実行のための十分な空きラッチを確保しなければならない。
【０１９１】
図３５は、図３１のステップ７８０における消去操作のときにバックグラウンドによる読み出しスクラブのための特定のキャッシュ操作を示す概略的フローチャートである。
図３１に示すステップ７８０をさらに以下のとおりに説明する。
ステップ７８２：指定ページを感知するために消去操作を中断する。
ステップ７８４：指定ページのデータがデータラッチにラッチされた後に消去操作を再開する。
ステップ７８６：消去操作中に指定ページのデータを出力する。
ステップ７８８：出力データにエラーがある場合、再プログラミングのために指定ページのスケジュールを組む。
【０１９２】
これまでのキャッシュ読み出しの説明は大部分、好適な消去操作の第２段階に関するものだった。好適な消去操作の第１段階では、所定のしきい値を下回る程度のしきい値レベルまで全てのセルを消去し、第２段階ではセルを所定のしきい値までソフトプログラムする。この消去方式は、前述したように、かなり正確な接地状態を必要とし、Ｎウェルにバイアスをかけることによってメモリを消去するにあたって多大な時間を要するので、ＮＡＮＤ構造を持つフラッシュメモリに好適である。したがって、消去はソフトプログラミングの前に一斉に行うのが好ましい。消去パルス／ベリファイ／禁止方式を採用する他のメモリアーキテクチャでもキャッシュ操作は企図される。例えば、サイクルのベリファイ部分のときに読み出し操作を挿し込むことができる。
【０１９３】
図３６は、消去中の先行バックグラウンド読み出しを示す。これは、読み出しが消去操作の直前に行われ、消去操作に割り込ませる必要がない場合により好適なキャッシュ読み出しである。これは、消去操作が始まる前に読み出し操作が分かっている場合に可能である。例えば、ホストが読み出し要請を保留にしていた場合、または何らかの読み出し操作がメモリシステムで予定されている場合はあり得る。あるいは、インテリジェントアルゴリズムは次に見込まれる読み出しを予想し、そのような読み出しのスケジュールを組むことができる。たとえこれが外れても深刻なペナルティは被らない。当たる場合、消去時間を利用して読み出しデータをトグルアウトできる。
【０１９４】
消去操作中に読み出しデータをキャッシュする態様とプログラムデータをキャッシュする態様の２つを組み合わせればさらなる柔軟性が提供されて、システム全体またはメモリのオーバーヘッドを最小限に抑えることができる。複数のプレーンとマルチチップデータ入力操作をもってしても、消去操作にともなうビジー時間をデータ入力時間に十分に活かせないことはある。そのような場合、読み出し操作とプログラミング操作を加えれば、消去時間を最大限に活用できる。
【０１９５】
読み出し中のキャッシュ操作−バックグラウンド読み出し・書き込み操作
キャッシュ読み出しは普通、多数のページが順次読み出されるときの時間を節約するために実施する。ページの感知は、既に感知済みのページをトグルアウトする時間に潜在化さることができるため、ユーザにとって感知の時間に余計な待ち時間は発生しない。一般的なやり方では、現在のページをトグルアウトしているときに次のページを感知する。
【０１９６】
図３７は、典型的な読み出しキャッシュ方式を概略的に示す。（ｎ−１）番目のページは前のサイクルで感知され、データラッチにラッチされている。Ｔ（ｎ−１）に示すように、時間ｔ０にはデータラッチからＩ／Ｏバスを通じて（ｎ−１）番目のページがトグルアウトされる。Ｓ（ｎ）に示すように、トグルが行われているときにはｎ番目のページを感知し、ラッチできる。ｔ２には（ｎ−１）番目のページのトグルが終わっているため、Ｔ（ｎ）に示すように、これに続けてｎ番目のページデータをデータラッチからトグルできる。同様に、ｎ番目のページがトグルアウトされているときには、Ｓ（ｎ＋１）に示すように（ｎ＋１）番目のページデータを感知し、ラッチできる。この（ｎ＋１）番目のページは、ｎ番目のページのトグルが終わった直後にトグルできる。理想的には読み出しキャッシングの全体を通じてデータラッチとＩ／Ｏバスをフルに従事させることによって、遊んでいる時間を最小限に抑える。
【０１９７】
本発明の一態様に従い、多状態メモリセルでメモリセル間の摂動（ユーピン効果）を最小限に抑える必要がある場合、読み出しキャッシュ方式を提供する。好適な実施例において、「ＬＭ」符号化によって符号化されるメモリとルックアヘッド（「ＬＡ」）補正をともなう読み出しに読み出しキャッシング方式を使用する。「ＬＭ」符号化と「ＬＡ」補正にはいずれも、読み出しデータの単なるトグル操作のほかに追加のラッチおよびバス活動が必要となる。図３７との関係で説明した従来方式をそのまま応用すると、最適な読み出しキャッシングは得られない。
【０１９８】
半導体メモリで集積の度合いが高まるにつれ、蓄積電荷によるメモリセル間の電界効果摂動（ユーピン効果）はセル間の間隔が狭まるほど顕著になる。メモリの多状態メモリセルはＬＭ符号化を使って符号化し、メモリでは最適な順序でページをプログラムし、プログラムされたページはＬＡ補正を用いて読み出すのが好ましい。読み出し操作の改良によって最適なキャッシュ操作を実現する。
【０１９９】
ＬＭ符号のためのキャッシュ読み出しアルゴリズム
読み出すページが多状態なら、使用する多状態の符号化の所要条件を読み出しキャッシュの実施例で満たさなければならない。図２０Ａ〜図２０Ｅとの関係で既に述べたように、多状態メモリのためのＬＭ符号化は基本的に、プログラミングの様々な行程から行程にかけてメモリセルにプログラムされる電荷の変化を最小限に抑える。３通りの境界しきい値（例えば、ＤA 、ＤB 、ＤC ）によって区切られる４通りの記憶状態（例えば、「Ｕ」、「Ａ」、「Ｂ」、「Ｃ」）を各セルで符号化する２ビットメモリの例を紹介する。例えば、２ビットメモリセルで、下位論理ページに対するプログラミングによりしきい値レベルはセルのしきい値ウィンドウの中間を非常に僅かに下回るところまで進む。その後の上位論理ページのプログラミングにより、既存のしきい値レベルはさらに進路の４分の１程度進む。したがって、第１の下位プログラミング行程から第２の最終上位プログラミング行程にかけて、正味の変化は最大でしきい値ウィンドウの４分の１程度であり、これはセルがワード線沿いの隣接するセルから被る最大摂動量となる。
【０２００】
ＬＭ符号化の一特徴として、２つのビットの各々、すなわち下位ビットと上位ビットは、分けて考えることができる。しかし、下位ビットページの復号化は上位ページがプログラムされたか否かに左右される。上位ページがプログラム済みなら、下位ページの読み出しにあたって境界しきい値電圧ＤB に対して１回の読み出し行程ｒｅａｄＢが必要になる。上位ページがプログラムされていなければ、下位ページの読み出しにあたって境界しきい値電圧ＤA に対して１回の読み出し行程ｒｅａｄＡが必要になる。２通りの場合を区別するため、上位ページがプログラムされているときには上位ページ（通常はオーバーヘッドまたはシステム領域）にフラグ（「ＬＭ」フラグ）を書き込む。下位ビットページの読み出しのときにはまず、上位ページがプログラム済みと仮定し、ｒｅａｄＢ操作を実行する。ＬＭフラグが読み出されるならこの仮定は正しく、読み出し操作は完了する。他方、最初の読み出しでフラグが生成されなかった場合、これは上位ページがプログラムされていないことを意味し、ｒｅａｄＡ操作により下位ページを再度読み出されなければならない。
【０２０１】
上位ビットページ読み出しの復号化にあたっては、境界しきい値電圧ＤA およびＤC に対して操作ｒｅａｄＡおよびｒｅａｄＣがそれぞれ必要となる。同様に、上位ページの復号化も上位ページがまだプログラムされていなければ混乱する。ここでもＬＭフラグで上位ページがプログラム済みか否かを指示する。上位ページがプログラムされていなければ、上位ページデータがプログラムされていないことを意味する「１」に読み出しデータをリセットする。
【０２０２】
ＬＭ符号を使用するメモリでキャッシュ読み出しを実施する場合、データと同じ領域に保存されるＬＭフラグのチェックの必要性も考慮する。状態マシンにＬＭフラグをチェックさせるには、これをデータラッチからＩ／Ｏバスを通じて出力しなければならない。そのために、キャッシングをともなう読み出し操作中の感知データのトグルに加えて、ＬＭフラグを出力するためのＩ／Ｏバスを割り当てる必要がある。
【０２０３】
図３８Ａは、ＬＭ符号によって符号化される論理ページでキャッシュ読み出しを行う概略的タイミング図である。目下のページを感知しているときに前回のページデータをトグルする一般的な方法は、図３７に示された従来の読み出しの方法とほぼ同じである。しかし、ＬＭ符号における感知は２つの感知行程とその間に行われるＬＭフラグのチェックを行う可能性によって込み入ったものとなる。
【０２０４】
時間ｔ０には、前回のサイクルで感知した（ｎ−１）番目の論理ページがＴ（ｎ−１）に示すようにデータラッチからＩ／Ｏバスへトグルアウトされる。これと同時に、Ｓ1 （ｎ）は次の論理ページ（ｎ）を感知する。ＬＭ符号化では２通りの場合、すなわち下位ビット論理ページの読み出しと、上位ビット論理ページの読み出しとを区別する必要がある。
【０２０５】
下位ビット論理ページの読み出しの場合、好適な感知は上位論理ページがプログラム済みとする仮定から始まり、第１の感知Ｓ1 （ｎ）は境界しきい値電圧ＤB に対するｒｅａｄＢになる。ｔ１でＳ1 （ｎ）は終わり、ＬＭフラグが生成される。しかし、これは、Ｉ／Ｏバスが（ｎ−１）番目のページのトグルを完了した後でないとｔ２で出力できない。ＬＭフラグが状態マシンに伝達されたらこれをチェックして、上位ページの有無を判断する。ＬＭフラグが設定されているなら仮定は正しく、下位ビットページは正常に読み出されたことになる。ラッチされているページ（ｎ）データは次のサイクルでトグルアウトできる。
【０２０６】
上位ビット論理ページの読み出しの場合、Ｓ1 （ｎ）はそれぞれ境界しきい値電圧ＤA およびＤC に対してｒｅａｄＡおよびｒｅａｄＣを通過する。上位ビットページの感知データはＤＬ２に蓄積され、データラッチＤＬ０はデータのトグルアウトに使われる（図１３および図１４参照）。ｔ２ではＤＬ２の感知データがＤＬ０へ転送される。ここでも、（ｎ−１）番目のページのトグルの終わりに出力されたＬＭフラグをチェックする。上位ページがプログラムされているなら問題なく、ラッチの中にある感知データ（ページ（ｎ））は次のサイクルでトグルアウトできる。
【０２０７】
上位ビット論理ページを読み出すときにＬＭフラグが設定されていないことが判明する場合、これは上位ページがプログラムされていないことを意味する。ＬＭ符号化にきっちり準拠するため、Ｓ1 （ｎ）の感知データは「１」にリセットされる。続いて、感知データは出力できる状態になる。そして、第１のバイトがプリフェッチされ、次のサイクルが始まるときにはページ全体のトグルアウトが行われる。
【０２０８】
図３８Ｂは、上位ビット論理ページがまだプログラムされていないときに下位ビット論理ページを読み出す特殊な場合でＬＭ符号を用いるキャッシュ読み出しの概略的タイミング図である。ここでもｔ０で第１の感知Ｓ1 （ｎ）が始まり、ｔ１にはＬＭフラグが読み出される。ｔ２にはＬＭフラグがチェックのために出力される。ＬＭフラグが設定されていないことが判明する場合、Ｓ1 （ｎ）はｒｅａｄＢで下位ビットページを誤って読み出されたことになる。ｔ３で、第２の感知Ｓ2 （ｎ）が始まって、ｒｅａｄＡで実行される。しかし、この追加の感知（ｔ４で終了）は（ｎ−１）番目のページをトグルする時間、例えばＴ（ｎ−１）の背後に潜在化させることはできない。なぜならば、第２の感知に先立つＳ1 （ｎ）からのフラグのチェックにあたってはＩ／Ｏバスにアクセスする必要があり、Ｔ（ｎ−１）のトグルが終わるのを待たなければならないからである。
【０２０９】
オールビット感知をともなうキャッシュ読み出しアルゴリズム
代替方式で、読み出すワード線上のページがマルチビットで複数の論理ページが同じ物理ページ上にある場合、全てのマルチビットを１回の感知操作でまとめて感知して電力を節約できる。
【０２１０】
図３９は、２ビットメモリでオールビット感知をともなうキャッシュ読み出しの概略的タイミング図を示す。２ビットの場合、４つの記憶状態を表す２つのビットを同じ操作で感知する。そのために、ｒｅａｄＡと、ｒｅａｄＢと、ｒｅａｄＣにおける感知で４つの状態を区別する必要がある。この場合の感知は１サイクルおきに行われる。例えば、感知は奇数サイクルだけで行い、偶数サイクルでは省略する。１回の感知で得た２つの論理ページは各サイクルで順次トグルアウトする。
【０２１１】
８つの状態、例えば「Ｕ」、「Ａ」、「Ｂ」、「Ｃ」、「Ｄ」、「Ｅ」、「Ｆ」、および「Ｇ」がある３ビットの場合のオールビット感知では、８つの状態を区別するためにｒｅａｄＡ、ｒｅａｄＢ、ｒｅａｄＣ、ｒｅａｄＤ、ｒｅａｄＥ、ｒｅａｄＦ、およびｒｅａｄＧでの感知が必要となる。
【０２１２】
一般的に、オールビットに満たないマルチビットの感知は、ページの全てのビットの読み出しに必要な感知数を減らし、電力の節約に役立つ。図３０との関係で説明したメモリ操作キューとキュー管理部を使えば、２つ以上のバイナリページ感知を併合しながらオールビット感知操作を管理できる。オールビット感知方式はＬＭ符号を用いるメモリに応用できるほか、ＬＡ補正を用いるメモリにも応用でき、これは以降のセクションで説明する。
【０２１３】
ＬＡ補正をともなうＬＭ符号のためのキャッシュ読み出しアルゴリズム
隣接するワード線上のメモリセル間の摂動は、好適なプログラミング方式を用いてプログラミング中に軽減できる。これにより摂動は事実上半分に減る。残りの半分も好適なＬＡ読み出し方式を用いることによって読み出し中に補正できる。
【０２１４】
好適なプログラミング方式では、ワード線に関連するページを最適な順序でプログラムする。例えば、全ての物理ページでバイナリデータのページを保持するバイナリメモリの場合、好ましくは一定の方向に沿って、例えば下から上へ、順次ページをプログラムする。この場合、ある特定のページがプログラムされているときに、これの下側にあるページはプログラム済みである。現在のページに対する摂動影響は何であれ、摂動の観点から現在のページをプログラム−ベリファイするときに計上する。基本的には、プログラムされている現在のページがプログラムされた後にその周囲で遭遇する変化を最小限にとどめるような順序でページをプログラムしなければならない。こうすればプログラム済みのページに摂動を与えるページはそのページの上側にあるページだけとなり、ワード線からワード線にかけてのユーピン効果はこのプログラミング順序により事実上半減する。
【０２１５】
メモリセルの物理ページが多状態になるメモリの場合の順序はさほど単純ではなくなる。例えば、２ビットメモリで、ワード線に関連する各物理ページは、２ビットデータの単一ページとみなすか、下位および上位ビットでそれぞれ１ビットデータの２つの別々の論理ページとみなすことができる。したがって、物理ページは、２つのビットによる１回の行程でプログラムでき、さもなくば、下位ビットページによる最初の行程と、上位ビットページによるその後の行程の２回に分けてプログラムできる。それぞれの物理ページを２回の行程に分けてプログラムする場合、修正を加えた最適順序が可能である。
【０２１６】
図４０は、２ビットメモリセルを具備し、ページを最適順序でプログラムすることにより隣接するワード線におけるメモリセル間のユーピン効果を最小限に抑えるメモリの一例を示す。表記にあたっては便宜上、物理ページＰ０，Ｐ１，Ｐ２・・・がそれぞれワード線Ｗ０，Ｗ１，Ｗ２・・・上に存在するものとする。２ビットメモリの場合、各物理ページには２つの論理ページ、具体的にはバイナリデータをそれぞれともなう下位ビット論理ページと上位ビット論理ページとが関連する。概して、ある特定の論理ページはＬＰ（Ｗｏｒｄｌｉｎｅ．ｌｏｇｉｃａｌ＿ｐａｇｅ）と記す。例えば、Ｗ０上のＰ０の下位ビットページと上位ビットページはそれぞれＬＰ（０．０）とＬＰ（０．１）とラベル付けし、対応するＷ２上のものはＬＰ（２．０）とＬＰ（２．１）とラベル付けする。
【０２１７】
基本的に、論理ページのプログラミングは順序ｎに従い、プログラムされている現在のページがプログラムされた後にその周囲で遭遇する変化を最小限に抑えるようにする。この場合でも下から上にかけて一定の方向で徐々に進むことにより片側からの摂動の解消を助長する。さらに、プログラミング行程は各物理ページにつき２回になることがあるため、物理ページのプログラミングが上に進むときに、現在の上位ビットページは隣接する下位ビットページがプログラムされた後にプログラムしたほうがよく、こうすれば現在の上位ビットページをプログラムするときに摂動効果が計上される。よって、プログラミングがＬＰ（０．０）から始まるならば、その順序はページプログラミング順序０，１，２・・・ｎ・・・によって指定され、ＬＰ（０．０），ＬＰ（１．０），ＬＰ（０．１），ＬＰ（２．０），ＬＰ（１．１），ＬＰ（３．０），ＬＰ（２．１）・・・となる。
【０２１８】
ＬＡ補正をともなうＬＭ符号のためのキャッシュ読み出しアルゴリズム
本発明の一態様によると、読み出しデータのキャッシュ方式では、近接する物理ページまたはワード線からのデータに補正が左右される読み出し操作であっても、メモリコアから現在のページを感知しているときにデータラッチとＩ／Ｏバスを効率よく使用して、既に読み出し済みのページをトグルアウトする。特に、好適な読み出し操作は「ルックアヘッド」（「ＬＡ」）読み出しであり、好適な記憶状態の符号化は「下位中間」（「ＬＭ」）符号である。現在のワード線における現在のページの読み出しに先立ち、前もって必要なデータの読み出しを隣接するワード線で実行しなければならない場合でも、前もって必要な読み出しとそれにともなうＩ／Ｏアクセスを前のページの読み出しサイクルの中で先回りして実行すれば、既に読み出し済みのページでＩ／Ｏアクセスが行われている間に現在の読み出しを実行できる。
【０２１９】
ＬＡ読み出し方式は、２００５年４月５日に出願された「結合補償を含む不揮発性記憶装置の読み出し操作 (Read Operations for Non-Volatile Storage that Includes Compensation for Coupling) 」という米国特許出願第１１／０９９，０４９号（特許文献３２）に開示されている。この特許出願は、その全体が本願明細書において参照により援用されている。ＬＡ（「ルックアヘッド」）補正をともなう読み出しでは基本的に、隣接するワード線上でセルにプログラムされた記憶状態を調べ、それらが現在のワード線で読み出されているメモリセルに与える摂動影響を補正する。ページが前述した好適なプログラミング方式でプログラムされていたならば、この隣接するワード線は現在のワード線のすぐ上のワード線となる。ＬＡ補正方式では、隣接するワード線のデータを現在のページより前に読み出す必要がある。
【０２２０】
図４０を参照し、例えば読み出しの対象となる現在のページ（ｎ）がＷＬｍ（例えば、ＷＬ１）にあるなら、ＳLA（ｎ）と表示するＬＡ読み出しは次のワード線ＷＬｍ＋１（例えば、ＷＬ２）を先に読み出し、そのデータ結果を１つのデータラッチに保存する。次に、ＳLA（ｎ）の結果に照らして現在のページを感知するが、これはＳ1 ’（ｎ）と表示される。
【０２２１】
図４０との関係で前に述べたように、好適なプログラミング順序によるＬＭ符号では下位ページ（例えば、ＬＰ（１．０））がＤB まで、またはＤB の近くまで（中間状態）、プログラムされる。上位ページ（例えば、ＬＰ（１．１））は、ＷＬｍ＋１の下位ページ（例えば、ＬＰ（２．０））がプログラムされた後に限りプログラムされる。かくして、下位ページのワード線間ユーピン効果は完全になくなる。したがって、データ依拠形補正は「Ａ」状態と「Ｃ」状態だけで行われ、「Ｕ」状態や「Ｂ」状態については行われない。
【０２２２】
ＬＡ読み出しの好適な実施例では、ＬＡ読み出しで「Ａ」または「Ｃ」状態、あるいは「Ｕ」または「Ｂ」状態が、確認されたか否かを指示するためにラッチを使用する。前者の場合は補正が必要であり、後者の場合は補正の必要はない。現在の読み出しＳ1 （ｎ）における該当セルは、感知パラメータを適当に調整することによって、例えば感知中にワード線電圧を上げることによって、補正される。これは、調整がある感知を行い、調整がない感知をさらに行うことによって現在のページの全体で行う。ラッチが補正を指示するか否かに従って、これらの２つの感知からページの各セルについてデータが選択される。
【０２２３】
ＬＭ符号による読み出しでは、（第２行程の読み出しにより、または読み出しデータをリセットすることにより）読み出し結果がまとまる前にＬＭフラグをチェックする必要がある。ＬＡ補正では、現在のワード線を読み出す前に次のワード線の読み出しを先に行う必要がある。したがって、状態マシンは、次のワード線の読み出しからのＬＭフラグと現在のワード線からのＬＭフラグの両方をチェックする必要がある。２つのＬＭフラグは、読み出しデータのトグルに使われていないＩ／Ｏバスを通じて状態マシンへ出力する必要がある。
【０２２４】
図４１は、図３７に示された従来の方式に従いＬＡ補正をともなうＬＭ符号のための読み出しキャッシングの一実施例を示す。従来の方式では基本的に、前の感知済みページのデータトグルアウト時間の中に現在のページの感知を潜在化させる。しかし、この場合、ＷＬｍにおける現在のページ感知Ｓ1 ’（ｎ）の前に、ＷＬｍ＋１における追加のルックアヘッド読み出しＳLA（ｎ）を行わなければならない。これらの感知のＬＭフラグは感知済みデータがアサートされる前にＩ／Ｏバスを通じて出力しなければならない。現在のページ感知Ｓ1 ’（ｎ）はＳLA（ｎ）からのデータに照らして行われて、現在のページのための補正済みデータが生成される。ｎが下位ビットページであって、図３８Ｂに示すように、上位ビットページがまだプログラムされていなければ、Ｓ1 ’（ｎ）の後にさらなるＳ2 ’（ｎ）が続くことが理解できる。
【０２２５】
ｔ０に始まる次のサイクルでは、Ｔ（ｎ）に示すようにページｎの補正済み感知データをトグルアウトする。同時に、現在の感知はＳ1 ’（ｎ＋１）による次のページまで進み、これの前にはＳLA（ｎ＋１）を実行しなければならない。しかし、これらの感知からのＬＭフラグの出力はページｎのトグルＴ（ｎ）が終わるまで待たなければならない。さらに、Ｓ1 （ｎ＋１）はＳLA（ｎ＋１）の結果が確定した後でないと実行できない。したがって、Ｓ1 ’（ｎ＋１）はデータトグル期間外でしか実行されず、そのためデータトグル期間の背後に潜在化することができない。このためラッチとＩ／Ｏバスがフルに使われていない状態で感知時間が増し、時間の浪費は以降の全サイクルで繰り返される。この実施例でＬＡ補正を使用するとユーザにとっての読み出し性能は低下する。
【０２２６】
ＬＡ補正をともなうＬＭ符号における好適なキャッシュ読み出しの実施例では、次のワード線感知と現在のワード線感知をパイプラインすることによって全ての感知をデータトグルの中に潜在化させる。次のワード線感知は常に現在のワード線感知より前に実行する。データトグルの各群内では現在のワード線感知を実行し、次の次のワード線感知がその後に続く。データ群のトグルアウトが完了してＩ／Ｏバスが使える状態になると、次の次のワード線のＬＭフラグをまず取り出し、チェックする。上位ページがプログラムされていないことを伝える状態にＬＭフラグがなっている場合、次の次のワード線の感知データを「１」（補正なし）にリセットする。その後に現在のワード線のＬＭフラグをチェックする。現在のワード線のＬＭフラグ次第では、感知データを維持し、または別の感知を実行する必要があり（下位ページ読み出しの場合）、またはデータを全て「１」にリセットする（上位ページ読み出しの場合）。２ビットメモリセルを具備するメモリなら、これらの感知とデータのトグルアウトを３つのデータラッチで管理できる。
【０２２７】
図４２は、ＬＭ符号とＬＡ補正をともなう改良された読み出しキャッシング方式を示す。−ｔ５からｔ０にかけての最初のサイクルではＷＬｍで現在のページ（ｎ）を読み出し、残りのサイクルとは異なっている。前と同じく、ＬＡ補正にはＳLA（ｎ）の先行読み出しが必要であり、ｒｅａｄＡと、ｒｅａｄＢと、ｒｅａｄＣはＷＬｍ＋１でセル状態を感知する。この読み出しからのＬＭフラグＦLA（ｎ）は−ｔ４に出力され、チェックされる。ＷＬｍ＋１で上位ページがプログラムされていないことをフラグが伝える場合、感知されているデータが全て「１」にリセットされ、補正がないことを指示する。上位ページがプログラムされていることをフラグが伝える場合、補正の有無を伝えるラッチされたデータが現状のまま保たれる。−ｔ３では、前に説明したＬＭ符号とＬＡ補正に従い、ＷＬｍ上の現在のページをＳ1 ’（ｎ）により、さらにことによるとＳ2 ’（ｎ）により、感知する。図４１に示す方式とは対照的に、次のページ（ｎ＋１）でも先行ルックアヘッド読み出しが行われる。したがって、−ｔ２にはＳLA（ｎ＋１）を実行し、−ｔ１にはこれのＬＭフラグを出力し、チェックする。
【０２２８】
最初のサイクルの後、次のサイクルが始まるｔ０には、Ｓ1 ’（ｎ）で既に感知しＬＡ補正が行われたデータがＴ（ｎ）に示すようにトグルアウトされる。まずは、図３８に示す順序によって決まるワード線上の（ｎ＋１）までページアドレスを増加させる。前もって必要なルックアヘッドＳLA（ｎ＋１）は前のサイクルで完了しているため、時間ｔ０にはＴ（ｎ）の開始と併せて（ｎ＋１）番目のページの感知Ｓ1 ’（ｎ＋１）を直ちに着手できる。ｔ１でＳ1 ’（ｎ＋１）が終わるとＬＭフラグＦ（ｎ＋１）を取り出し、これをチェックし、ＬＭフラグ次第ではこの後に何らかの追加操作が続く。補正されたページ（ｎ＋１）データは次のサイクルでトグルできる。その一方で、ページ（ｎ）のトグルアウトが行われているときには、次のページのルックアヘッド感知ＳLA（ｎ＋２）をＴ（ｎ）のトグル期間内に前もって実行できる。
【０２２９】
Ｔ（ｎ）、すなわちページ（ｎ）のトグルが、完了すると直ちに次のサイクルが始まり、Ｔ（ｎ＋１）を実行し、ＬＡ補正済みのページ（ｎ＋１）データをトグルアウトする。ページ（ｎ＋１）のサイクルはページ（ｎ）と同様に継続する。重要な特徴として、ある所与のページのルックアヘッド読み出しは先行サイクル中に先回りして実行される。
【０２３０】
図４３は、改良された読み出しキャッシングを示す概略的フローチャートである。
ステップ８１０：メモリから一連のページを感知するそれぞれの読み出しサイクルで、前回のサイクルで感知した前のページを現在のサイクルで出力する。
ステップ８３０：前のページの出力中に現在のページを感知するが、現在のページの感知は現在のワード線で行われ、隣接するワード線のデータからの摂動効果を補正するために隣接するワード線の感知が前もって必要となる。
ステップ８５０：現在のページに関係する隣接するワード線の前もって必要な感知を、現在のサイクルに先行するサイクル中に先回りして実行する。
【０２３１】
図４４は、図４１のステップ８５０をより明確に示す概略的フローチャートである。
ステップ８５２：前もって必要な感知からのデータの一部として入手する第１のフラグを出力する。
ステップ８５４：第１の出力フラグに従って前もって必要な感知からのデータを調整する。
ステップ８５６：現在のページの感知にあたって補正の必要があるか否かを伝えるデータをラッチする。
【０２３２】
図４５は、図４１のステップ８３０をより明確に示す概略的フローチャートである。
ステップ８３２：前もって必要な感知からの補正をともなうかまたは補正をともなわず、現在のページの感知を実行する。
ステップ８３４：現在の感知からのデータの一部として入手する第２のフラグを出力する。
ステップ８３６：第２のフラグに応じて、現在の感知からのデータを変えずに残すことにより、またはデータを所定の値に調整することにより、または現在のページの感知を別の一連の感知条件下で繰り返して新たなデータを入手することにより、修正する。
ステップ８３８：前もって必要な感知からのデータが補正を指示するか否かに応じて補正が施されているかまたは施されていない修正データをラッチする。
これまで前述したアルゴリズムを２ビットＬＭ符号を用いて説明してきた。このアルゴリズムは３ビット以上のＬＭ符号にも等しく応用できる。
【０２３３】
これまで本発明の様々な態様を特定の実施形態との関係で説明してきたが、本発明が添付の特許請求の範囲の全範囲内においてその権利が保護されるべきであることが理解できよう。
【図面の簡単な説明】
【０２３４】
【図１Ａ】不揮発性メモリセルの例を概略的に示す。
【図１Ｂ】不揮発性メモリセルの他の例を概略的に示す。
【図１Ｃ】不揮発性メモリセルの他の例を概略的に示す。
【図１Ｄ】不揮発性メモリセルの他の例を概略的に示す。
【図１Ｅ】不揮発性メモリセルの他の例を概略的に示す。
【図２】ＮＯＲメモリセルアレイの一例を示す。
【図３】図１Ｄに示されたメモリセル等のＮＡＮＤアレイの一例を示す。
【図４】フローティングゲートが一度に蓄積できる４通りの電荷Ｑ１〜Ｑ４でソース−ドレイン電流とコントロールゲート電圧との関係を示す。
【図５】読み出し／書き込み回路から行デコーダと列デコーダとを通じてアクセスする典型的なメモリアレイ構成を概略的に示す。
【図６Ａ】個々の読み出し／書き込みモジュールの概略的ブロック図である。
【図６Ｂ】読み出し／書き込みモジュールの積み重ねによって従来どおりに実装された図５の読み出し／書き込みスタックを示す。
【図７Ａ】一群の分割読み出し／書き込みスタックを具備し本発明の改良されたプロセッサを実装するコンパクトなメモリ装置を概略的に示す。
【図７Ｂ】図７Ａに示されたコンパクトなメモリ装置の好適な構成を示す。
【図８】図７Ａに示された読み出し／書き込みスタックにおける基本コンポーネントの一般的な構成を概略的に示す。
【図９】図７Ａおよび図７Ｂに示された読み出し／書き込み回路における読み出し／書き込みスタックの好適な構成を示す。
【図１０】図９に示された共通プロセッサの改良された実施形態を示す。
【図１１Ａ】図１０に示された共通プロセッサの入力ロジックの好適な実施形態を示す。
【図１１Ｂ】図１１Ａの入力ロジックの真偽表を示す。
【図１２Ａ】図１０に示された共通プロセッサの出力ロジックの好適な実施形態を示す。
【図１２Ｂ】図１２Ａの出力ロジックの真偽表を示す。
【図１３】図１０を簡素化したものであって、本発明の２ビットの実施形態の説明にかかわるいくつかの特定の要素を示す。
【図１４】下位ページデータの読み出しが行われる上位ページプログラミングで図１３と同じ要素のラッチ割り当てを示す。
【図１５】単一ページモードにおけるキャッシュプログラミングの態様を示す。
【図１６】下位ページからフルシーケンスへの転換に使用できるプログラミング波形を示す。
【図１７】フルシーケンス転換をともなうキャッシュプログラミング操作における相対的なタイミングを示す。
【図１８】キャッシュページコピー操作におけるラッチの処理を示す。
【図１９Ａ】キャッシュページコピー操作における相対的なタイミングを示す。
【図１９Ｂ】キャッシュページコピー操作における相対的なタイミングを示す。
【図２０Ａ】ＬＭ符号を使って各メモリセルで２ビットのデータを蓄積する場合の４状態メモリアレイのしきい値電圧分布を示す。
【図２０Ｂ】ＬＭ符号を使用する既存の２ラウンドプログラミング方式における下位ページプログラミングを示す。
【図２０Ｃ】ＬＭ符号を使用する既存の２ラウンドプログラミング方式における上位ページプログラミングを示す。
【図２０Ｄ】ＬＭ符号によって符号化される４状態メモリの下位ビットを識別するにあたって必要となる読み出し操作を示す。
【図２０Ｅ】ＬＭ符号によって符号化される４状態メモリの上位ビットを識別するにあたって必要となる読み出し操作を示す。
【図２１】下位ページプログラミングの概略的タイミング図であって、次のページのプログラムデータを未使用データラッチへロードするバックグラウンド操作を示す。
【図２２】ＱＷＰを使用する４状態上位ページまたはフルシーケンスプログラミングの様々な段階で追跡する必要のある状態の数を示す表である。
【図２３】上位ページまたはフルシーケンスプログラミングの概略的タイミング図であって、次のページのプログラムデータを未使用データラッチにロードするバックグラウンド操作を示す。
【図２４】本発明の一般的な実施形態に従い目下の多段階メモリ操作と同時進行するラッチ操作を示すフローチャートである。
【図２５】下位ページプログラミングの概略的タイミング図であって、使用可能なラッチを使った読み出し割り込み操作を示す。
【図２６】上位ページプログラミングの概略的タイミング図であって、使用可能なラッチを使った読み出し割り込み操作を示す。
【図２７】典型的なメモリ操作に関連する情報一式を示す。
【図２８】シンプルなキャッシュ操作をサポートする従来のメモリシステムを示す。
【図２９】複数のメモリ操作のキュー操作と併合を示すフローチャートである。
【図３０】メモリ操作キューとメモリ操作キュー管理部が組み込まれた好適なオンチップ制御回路の概略的ブロック図を示す。
【図３１】消去操作中のバックグラウンドキャッシュ操作を示す概略的フローチャートである。
【図３２】メモリアレイに対する消去操作の概略的タイミング図であって、消去操作の第１の消去段階におけるプログラムデータのロード操作を示す。
【図３３】メモリアレイに対する消去操作の概略的タイミング図であって、消去操作のソフトプログラミング／ベリファイ段階におけるプログラムデータのロード操作を示す。
【図３４】メモリアレイに対する消去操作の概略的タイミング図であって、読み出し操作の挿し込みと、使用可能なラッチを使って得られたデータの出力操作とを示す。
【図３５】図３１のステップ７８０における消去操作のときにバックグラウンドによる読み出しスクラブのための特定のキャッシュ操作を示す概略的フローチャートである。
【図３６】消去中の先行バックグラウンド読み出しを示す。
【図３７】典型的な読み出しキャッシュ方式を概略的に示す。
【図３８Ａ】ＬＭ符号によって符号化される論理ページでキャッシュ読み出しを行う概略的タイミング図である。
【図３８Ｂ】上位ビット論理ページがまだプログラムされていないときに下位ビット論理ページを読み出す特殊なケースでＬＭ符号を用いるキャッシュ読み出しの概略的タイミング図である。
【図３９】２ビットメモリでオールビット感知をともなうキャッシュ読み出しの概略的タイミング図を示す。
【図４０】２ビットメモリセルを具備し、ページを最適順序でプログラムすることにより隣接するワード線におけるメモリセル間のユーピン効果を最小限に抑えるメモリの一例を示す。
【図４１】図３７に示された従来の方式に従いＬＡ補正をともなうＬＭ符号のための読み出しキャッシングの一実施例を示す。
【図４２】ＬＭ符号とＬＡ補正をともなう改良された読み出しキャッシング方式を示す。
【図４３】改良された読み出しキャッシングを示す概略的フローチャートである。
【図４４】図４３のステップ８５０をより明確に示す概略的フローチャートである。
【図４５】図４３のステップ８３０をより明確に示す概略的フローチャートである。
【図１Ａ】
2009536424.tif 000003
【図１Ｂ】
2009536424.tif 000004
【図１Ｃ】
2009536424.tif 000005
【図１Ｄ】
2009536424.tif 000006
【図１Ｅ】
2009536424.tif 000007
【図２】
2009536424.tif 000008
【図３】
2009536424.tif 000009
【図４】
2009536424.tif 000010
【図５】
2009536424.tif 000011
【図６Ａ】
2009536424.tif 000012
【図６Ｂ】
2009536424.tif 000013
【図７Ａ】
2009536424.tif 000014
【図７Ｂ】
2009536424.tif 000015
【図８】
2009536424.tif 000016
【図９】
2009536424.tif 000017
【図１０】
2009536424.tif 000018
【図１１Ａ】
2009536424.tif 000019
【図１１Ｂ】
2009536424.tif 000020
【図１２Ａ】
2009536424.tif 000021
【図１２Ｂ】
2009536424.tif 000022
【図１３】
2009536424.tif 000023
【図１４】
2009536424.tif 000024
【図１５】
2009536424.tif 000025
【図１６】
2009536424.tif 000026
【図１７】
2009536424.tif 000027
【図１８】
2009536424.tif 000028
【図１９Ａ】
2009536424.tif 000029
【図１９Ｂ】
2009536424.tif 000030
【図２０Ａ】
2009536424.tif 000031
【図２０Ｂ】
2009536424.tif 000032
【図２０Ｃ】
2009536424.tif 000033
【図２０Ｄ】
2009536424.tif 000034
【図２０Ｅ】
2009536424.tif 000035
【図２１】
2009536424.tif 000036
【図２２】
2009536424.tif 000037
【図２３】
2009536424.tif 000038
【図２４】
2009536424.tif 000039
【図２５】
2009536424.tif 000040
【図２６】
2009536424.tif 000041
【図２７】
2009536424.tif 000042
【図２８】
2009536424.tif 000043
【図２９】
2009536424.tif 000044
【図３０】
2009536424.tif 000045
【図３１】
2009536424.tif 000046
【図３２】
2009536424.tif 000047
【図３３】
2009536424.tif 000048
【図３４】
2009536424.tif 000049
【図３５】
2009536424.tif 000050
【図３６】
2009536424.tif 000051
【図３７】
2009536424.tif 000052
【図３８Ａ】
2009536424.tif 000053
【図３８Ｂ】
2009536424.tif 000054
【図３９】
2009536424.tif 000055
【図４０】
2009536424.tif 000056
【図４１】
2009536424.tif 000057
【図４２】
2009536424.tif 000058
【図４３】
2009536424.tif 000059
【図４４】
2009536424.tif 000060
【図４５】
2009536424.tif 000061
【手続補正書】
【提出日】平成21年3月12日(2009.3.12)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００４９
【補正方法】変更
【補正の内容】
【００４９】
本発明のもうひとつの態様によると、複数のビットを一斉に感知するマルチビットのメモリセルページで読み出しキャッシング方式を実装する。好適な実施例において、全てのマルチビットを一斉に感知する。感知されたマルチビットのメモリセルページは各マルチビットにつき１つずつの複数のバイナリページに対応する。複数のサイクルでマルチビット感知が行われている間に各サイクルでバイナリページを出力する。この複数のデータビットのページ数とマルチビットのビット数とは同じである。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００５８
【補正方法】変更
【補正の内容】
【００５８】
スタックバスコントローラ４１０は線４１１を通じて読み出し／書き込み回路３７０へ制御信号とタイミング信号を提供する。スタックバスコントローラそのものは線３１１を介してメモリコントローラ３１０に従属する。読み出し／書き込みスタック４００内の通信はＳＡＢｕｓ４２２とＤＢｕｓ４２３を含むスタックバスによって行われ、スタックバスコントローラ４１０によって制御される。制御線４１１は、スタックバスコントローラ４１０から読み出し／書き込みスタック４００−１のコンポーネントにかけて制御信号とクロック信号を提供する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００７０
【補正方法】変更
【補正の内容】
【００７０】
図１２Ａは、図１０に示された共通プロセッサの出力ロジックの好適な実施形態を示す。入力ロジック５２０からＢＳＩノードに至る信号はプロセッサラッチＰＬａｔｃｈ  ５２０でラッチする。出力ロジック５３０はＰＬａｔｃｈ  ５２０の出力からデータＭＴＣＨおよびＭＴＣＨ* を受信し、制御信号に応じてＰＡＳＳＴＨＲＯＵＧＨモードか、ＩＮＶＥＲＴＥＤモードか、ＦＬＯＡＴＥＤモードのいずれかでＰＢＵＳに出力する。換言すると、４つのブランチはＰＢＵＳ  ５０５の駆動装置として機能し、これをＨＩＧＨ、ＬＯＷ、またはＦＬＯＡＴＥＤ状態まで能動的に引き上げる。これはＰＢＵＳ  ５０５の４つのブランチ回路によって、具体的には２つのプルアップ回路と２つのプルダウン回路とによって、達成する。第１のプルアップ回路はＶｄｄにかけて直列するｐトランジスタ５３１および５３２を備え、ＭＴＣＨが「０」のときにＰＢＵＳをプルアップできる。第２のプルアップ回路は接地にかけて直列するｐトランジスタ５３３および５３４を備え、ＭＴＣＨが「１」のときにＰＢＵＳをプルアップできる。同様に、第１のプルダウン回路はＶｄｄにかけて直列するｎトランジスタ５３５および５３６を備え、ＭＴＣＨが「０」のときにＰＢＵＳをプルダウンできる。第２のプルダウン回路は接地にかけて直列するｎトランジスタ５３７および５３８を備え、ＭＴＣＨが「１」のときにＰＢＵＳをプルダウンできる。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００７３
【補正方法】変更
【補正の内容】
【００７３】
ＦＬＯＡＴＥＤモードでは４つのブランチがすべてディスエーブルになる。これは信号ＰＩＮＶ＝１、ＮＩＮＶ＝０、ＰＤＩＲ＝１、ＮＤＩＲ＝０によって達成され、これらはデフォルト値でもある。ＰＡＳＳＴＨＲＯＵＧＨモードでＭＴＣＨ＝０ならば、ＰＢＵＳ＝０が要求される。ｎトランジスタ５３５および５３６を備えるプルダウンブランチだけをイネーブルし、ＮＤＩＲ＝１以外の制御信号はどれもデフォルト値とする。ＭＴＣＨ＝１ならば、ＰＢＵＳ＝１が要求される。ｐトランジスタ５３３および５３４を備えるプルアップブランチだけをイネーブルし、ＰＩＮＶ＝０以外の制御信号はどれもデフォルト値とする。ＩＮＶＥＲＴＥＤモードでＭＴＣＨ＝０ならば、ＰＢＵＳ＝１が要求される。ｐトランジスタ５３１および５３２を備えるプルアップブランチだけをイネーブルし、ＰＤＩＲ＝０以外の制御信号はどれもデフォルト値とする。ＭＴＣＨ＝１ならば、ＰＢＵＳ＝０が要求される。ｎトランジスタ５３７および５３８を備えるプルダウンブランチだけをイネーブルし、ＮＩＮＶ＝１以外の制御信号はどれもデフォルト値とする。ＰＲＥＣＨＡＲＧＥモードでは、ＰＤＩＲ＝０とＰＩＮＶ＝０の制御信号設定でＭＴＣＨ＝０ならば、ｐトランジスタ５３１および５３２を備えるプルアップブランチをイネーブルするか、またはＭＴＣＨ＝１ならば、ｐトランジスタ５３３および５３４を備えるプルアップブランチをイネーブルする。
【手続補正５】
【補正対象書類名】図面
【補正対象項目名】図１Ｃ
【補正方法】変更
【補正の内容】
【図１Ｃ】
2009536424.tif 000062
【手続補正６】
【補正対象書類名】図面
【補正対象項目名】図１０
【補正方法】変更
【補正の内容】
【図１０】
2009536424.tif 000063
【国際調査報告】
2009536424.tif 000064
2009536424.tif 000065