(57)【要約】  不揮発性メモリは、１つ以上のアドレス指定されたページの指定されたグループに、データラッチの対応するセットに保存された最初の１セットのデータを使用し、最初の操作（例えば、書き込み操作）を実行できる。また、これらの対応するデータラッチを使用する２番目の１セットのデータの２番目の操作（例えば、読み出し操作）の要求を受け取ることもできる。最初の操作の間、対応したそれぞれのセットの少なくとも１個のラッチが２番目の操作に利用可能になり、データラッチの対応するセットに十分な数があると、メモリでは最初の操作の間に、２番目の操作が実行される。そうでない場合には、２番目の操作が遅れることになる。最初の操作の間に十分な数のラッチが利用可能になると、メモリは続いて２番目の操作を実行できる。２番目の操作を実行するために対応するセットの十分な数のデータラッチがあるかどうかの判断に応じて、十分な数があることが判断されると、最初の操作の間に２番目の操作が実行される。
2011515786.tif 000002
【特許請求の範囲】
【請求項１】
アドレス可能なページのメモリセルを有する不揮発性メモリを操作する方法であって、
アドレス指定されているページの各メモリセルに、既定のビット数をラッチする容量を有する対応するデータラッチのセットを供給するステップと、
１つまたは複数のアドレス指定されているページの指定されたグループに、データラッチの対応するセットに保存された最初のデータセットを使用して、最初の操作を実行するステップと、
メモリアレイ上で１つまたは複数の後続するメモリ操作に関連するデータと共に、データラッチの対応するセットの幾つかを使用する２番目の操作を求める要求を受け取るステップと、
最初の操作の間に、データラッチのそれぞれのセットの少なくとも１つのラッチが、２番目の操作に利用可能であることを判断するステップと、
続いて、最初の操作の間に、２番目の操作を実行するために十分な数のデータラッチの対応するセットがあるかどうかを判断するステップと、
２番目の操作を実行するためのデータラッチの対応するセットに十分な数がないことを判断することに対応して、２番目の操作を遅らせるステップと、
を含む方法。
【請求項２】
請求項１記載の方法であって、
十分な数のラッチが利用可能になるとき、続いて、最初の操作の間に、２番目の操作を実行するステップをさらに含む方法。
【請求項３】
請求項１記載の方法であって、
２番目の操作を実行するために十分な数のデータラッチの対応するセットがあることを判断することに対応して、最初の操作の間に、２番目の操作を実行するステップをさらに含む方法。
【請求項４】
請求項１記載の方法であって、
最初の操作が、消去操作のソフトプログラムフェーズである方法。
【請求項５】
請求項１記載の方法であって、
最初の操作が、プログラム操作である方法。
【請求項６】
請求項５記載の方法であって、
２番目の操作が、読み出し操作である方法。
【請求項７】
請求項６記載の方法であって、
読み出し操作が、プログラム操作における使用のためのルックアヘッド読み出し操作である方法。
【請求項８】
請求項１記載の方法であって、
最初の操作が交互プログラムとベリファイフェーズを有する書き込み操作であり、データの最初のセットがメモリセルの最初のグループに書き込まれるデータである方法。
【請求項９】
請求項１記載の方法であって、
前記メモリセルはＮが１以上であるＮビットのデータを保存する多値メモリセルであり、前記データラッチのそれぞれのセットはＮ個のデータラッチを含み、前記最初のデータセットはＮビットデータである方法。
【請求項１０】
請求項１記載の方法であって、
最初の操作の実行中に２番目の操作を求める要求を受け取る方法。
【請求項１１】
請求項１記載の方法であって、
最初の操作の実行を始める前に、２番目の操作を求める要求がある方法。
【請求項１２】
請求項１記載の方法であって、
データラッチのそれぞれのセットの少なくとも１つのラッチが２番目の操作に利用可能であるという判断がＲｅａｄｙ／Ｂｕｓｙ信号に基づいている方法。
【請求項１３】
不揮発性メモリであって、
アドレス可能なページのメモリセルと、
アドレス指定されているページの各メモリセルは既定のビット数をラッチする容量を有する対応するデータラッチのセットを有する複数のデータラッチと、を備え、
データラッチの対応するセットに保存された最初のデータセットを使用して、１つまたは複数のアドレス指定されているページの指定されたグループに対する最初の操作の間に、メモリは、メモリアレイ上で１つまたは複数の後続するメモリ操作に関連するデータと共に対応するデータラッチのセットを使用して、２番目の要求された操作にデータラッチのそれぞれのセットの少なくとも１つのラッチが利用可能であるかを判断でき、次に、最初の操作の間に、２番目の操作を実行するために十分な数のデータラッチの対応するセットがあるかどうか判断し、そして、２番目の操作を実行するための十分な数のデータラッチの対応するセットがないことを判断することに対応して、２番目の操作を遅らせる不揮発性メモリ。
【請求項１４】
請求項１３記載の不揮発性メモリであって、
十分な数のラッチが利用可能になると、続いてメモリが最初の操作の間に、２番目の操作を実行する不揮発性メモリ。
【請求項１５】
請求項１３記載の不揮発性メモリであって、
２番目の操作を実行するために十分な数のデータラッチの対応するセットがあることを判断することに対応して、メモリが最初の操作の間に、２番目の操作を実行する不揮発性メモリ。
【請求項１６】
請求項１３記載の不揮発性メモリであって、
最初の操作が、消去操作のソフトプログラムフェーズである不揮発性メモリ。
【請求項１７】
請求項１３記載の不揮発性メモリであって、
最初の操作が、プログラム操作である不揮発性メモリ。
【請求項１８】
請求項１７記載の不揮発性メモリであって、
２番目の操作が、読み出し操作である不揮発性メモリ。
【請求項１９】
請求項１８記載の不揮発性メモリであって、
読み出し操作が、プログラム操作における使用のためのルックアヘッド読み出し操作である不揮発性メモリ。
【請求項２０】
請求項１３記載の不揮発性メモリであって、
最初の操作が交互プログラムとベリファイフェーズを有する書き込み操作であり、データの最初のセットがメモリセルの最初のグループに書き込まれるデータである不揮発性メモリ。
【請求項２１】
請求項１３記載の不揮発性メモリであって、
前記メモリセルはＮが１以上であるＮビットのデータを保存する多値メモリセルであり、前記データラッチのそれぞれのセットはＮ個のデータラッチを含み、前記最初のデータセットはＮビットデータである不揮発性メモリ。
【請求項２２】
請求項１３記載の不揮発性メモリであって、
最初の操作の実行中に２番目の操作を求める要求を受け取る不揮発性メモリ。
【請求項２３】
請求項１３記載の不揮発性メモリであって、
最初の操作の実行を始める前に、２番目の操作を求める要求がある不揮発性メモリ。
【請求項２４】
請求項１３記載の不揮発性メモリであって、
データラッチのそれぞれのセットの少なくとも１つのラッチが２番目の操作に利用可能であるという判断が、Ｒｅａｄｙ／Ｂｕｓｙ信号に基づいている不揮発性メモリ。
【請求項２５】
請求項１３記載の不揮発性メモリであって、
データラッチのそれぞれのセットの少なくとも１つのラッチが２番目の要求された操作に利用可能であるという前記判断と、最初の操作の間に、２番目の操作を実行するために十分な数のデータラッチの対応するセットがあるかどうかの前記判断と、前記２番目の操作を遅らせることを実行するステートマシンをさらに備える不揮発性メモリ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的には電気的に消去可能でプログラム可能な読み出し専用メモリ（ＥＥＰＲＯＭ）やフラッシュＥＥＰＲＯＭなどの不揮発性半導体メモリに関し、特にメモリ操作のオーバーラッピングを可能とする共有ラッチの構造に基づくキャッシュ操作に関する。
【背景技術】
【０００２】
フラッシュメモリなどの不揮発性メモリのデザインには、それらの記憶密度を増大させること、性能を向上させること、および消費電力を削減することなどによって、これらのメモリを改良していく継続的プロセスがある。これらの要求事項の１つにおける改良はしばしば否定的に他の要求事項に影響を与えることがある。例えば、記憶密度を改良するならば、１セルあたり２つの値のチップを置き替えるのに１セルあたり複数のレベルを有するフラッシュメモリを使用することができる。しかし、複数状態記憶ではデータを書き込む場合などのように各状態間の許容誤差がより厳しくなり、操作のスピードはより遅くなる場合がある。そのため、複数レベルのセルを有するメモリの性能水準には改良の余地が多く残っている。
【０００３】
これらの問題および関連する問題は、追加の背景技術情報と一緒に、米国公開特許出願第２００６／０２２１７０４号（特許文献１）と米国公開特許出願第２００７／０１０９８６７号（特許文献２）の背景技術の欄で挙げられている。また、米国公開特許出願第２００６／０２３３０２３号（特許文献３）、米国公開特許出願第２００６／０２３３０２１号（特許文献４）、米国公開特許出願第２００６／０２２１６９６号（特許文献５）、米国公開特許出願第２００６／０２３３０１０号（特許文献６）、米国公開特許出願第２００６／０２３９０８０号（特許文献７）、および米国公開特許出願第２００７／０００２６２６号（特許文献８）は、追加の背景技術情報を提供している。以下に記述するように、これらすべての特許出願が本願明細書において参照により援用されている。
【０００４】
したがって、高性能および大容量不揮発性メモリの一般的な必要性がある。特に、改良されたプロセッサを有するエンハンスされた読み出しおよびプログラム性能のコンパクトな不揮発性メモリの必要性があり、それはコンパクトで効率的でありながらさらに読み出し／書き込み回路中のデータ処理に対して非常に多用途である。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国公開特許出願第２００６／０２２１７０４号
【特許文献２】米国公開特許出願第２００７／０１０９８６７号
【特許文献３】米国公開特許出願第２００６／０２３３０２３号
【特許文献４】米国公開特許出願第２００６／０２３３０２１号
【特許文献５】米国公開特許出願第２００６／０２２１６９６号
【特許文献６】米国公開特許出願第２００６／０２３３０１０号
【特許文献７】米国公開特許出願第２００６／０２３９０８０号
【特許文献８】米国公開特許出願第２００７／０００２６２６号
【特許文献９】米国特許出願第１１／０９９，０４９号
【特許文献１０】米国特許出願第１１／６１８，５６９号
【特許文献１１】米国特許出願第１１／６１８，５７８号
【特許文献１２】Yan Liにより２００８年３月１９日に出願された「Different Combinations of Wordline Order and Look-Ahead read to improve Non-Volatile Memory performance 」という米国特許出願
【発明の概要】
【０００６】
不揮発性メモリおよび対応する操作方法を開示する。メモリはメモリセルのアドレス指定可能なページを有し、そして、アドレス指定されるページの各メモリセルは既定のビット数のデータをラッチできる対応するデータラッチのセットと共に提供される。メモリは対応するデータラッチのセットに保持された最初のデータのセットを使用して、１つ以上のアドレス指定されたページの指定されたグループに最初の操作（例えば、書き込み操作）を実行し、また、２番目のデータのセットで、これらに対応するデータラッチを使用する２番目の操作（例えば、読み出し操作）の要求を受け取ることができる。最初の操作の間に、対応するそれぞれのセットの少なくとも１個のラッチが２番目の操作に利用可能になると、最初の操作中に２番目の操作を実行するための対応する十分な数のデータラッチのセットがあるかどうかが判断される。十分な数ではない場合には２番目の操作は遅れることになる。追加の態様として、十分な数のラッチが利用可能になると、次に、メモリは最初の操作を行っている間に２番目の操作を実行する。２番目の操作を実行するために十分な数のデータラッチのセットがあるかどうかを判断することに対応して、十分な数があると判断され、最初の操作の間に２番目の操作を実行する。
【０００７】
本願発明の種々の態様、利点、特徴、および実施例は例示された以下の説明に含まれ、その説明は添付の図面と共に扱われるべきである。本願発明にて参照されているすべての特許、特許出願、記事、その他の刊行物、ドキュメント、および事物はその全体がすべての目的のために本願発明において参照により援用されている。援用されているいずれの刊行物、ドキュメントまたは事物と本願発明との間での定義や用語の使用におけるどのような矛盾や不整合の範囲にも、本願発明は及んでいるものとする。
【図面の簡単な説明】
【０００８】
【図１】キャッシュプログラム操作で読み出しの挿入を示す図である。
【図２】キャッシュ消去操作で読み出しの挿入を示す図である。
【図３】ページに対する特定のプログラムの順序と対応するルックアヘッド読み出しを示す図である。
【図４】利用可能なラッチが不十分であるときの、キャッシュプログラム操作で読み出しの挿入を示す図である。
【図５】利用可能なラッチが不十分であるときの、キャッシュ消去操作で読み出しの挿入を示す図である。
【図６】利用可能なラッチが不十分であるときの、キャッシュプログラム操作で読み出しの挿入の別の実施例を示す図である。
【図７】様々なキャッシュポイントがどのように起こるかを図式的に示す図である。
【図８】適応型アルゴリズムの１つの基本的な実施例のためのフローチャートである。
【発明を実施するための形態】
【０００９】
１セルあたり多値レベルを有するＮＡＮＤフラッシュメモリなどの不揮発性メモリが２値のチップを置き替えるのに使用され、性能改善の必要性が一般に賛同されている。性能強化の１つのセットは同時に並列操作を行う複雑なキャッシュアルゴリズムを利用するのに基づいている。そのようないくつかの強化の実施例は、米国公開特許出願第２００６／０２２１７０４号（特許文献１）と米国公開特許出願第２００７／０１０９８６７号（特許文献２）に挙げられている。また、米国公開特許出願第２００６／０２３３０２３号（特許文献３）、米国公開特許出願第２００６／０２３３０２１号（特許文献４）、米国公開特許出願第２００６／０２２１６９６号（特許文献５）、米国公開特許出願第２００６／０２３３０１０号（特許文献６）、米国公開特許出願第２００６／０２３９０８０号（特許文献７）、および米国公開特許出願第２００７／０００２６２６号（特許文献８）も参照され、これらは多くの態様に関する追加の詳細を明らかにする。これらの参照のすべてがそこに引用された文献と共に前述したように完全に本願明細書において参照により援用されている。引き続きの展開の文脈を提供するために以下で技術のいくつかについて説明するが、さらなる詳細のためにこれらの先願が再び参照される。この点で、以下のものがそこで説明されたことに関するさらなる展開であることがある程度考慮できる。
【００１０】
前述した特許文献では、データラッチの利用と読み出しのような１つの操作をプログラムのようなより長い２番目の操作に挿入する際にどのようにこれらを使用できるかを説明するセクションに特定の参照がされている。前の議論の多くが主としてセルあたり２ビットの実施例としてされているが、ここでの議論の多くは１セルあたり３ビット以上のケースで最も適切な態様に関連している。
【００１１】
ルックアヘッド読み出しは次のワードのデータに関係する修正読み出しを使用する１つのアルゴリズムである。ＬＡ（ルックアヘッド）修正を有する読み出しは基本的に、隣接しているワード線のセルの中にプログラムされたメモリ状態を調べて、現在のワード線で読み出されるメモリセル上に発生するどのような摂動効果も修正する。ページが引用されている特許文献に記載されている好ましいプログラム方法通りにプログラムされているのならば、隣接しているワード線は現在のワード線のすぐ上のワード線となる。ＬＡ修正方法は、現在のページの前の隣接しているワード線に関する読み出しデータを必要とする。
【００１２】
ＬＡ読み出しをするのに必要となるデータラッチの数は必要となる修正の数に依存する。いくつかの場合には、これは１ビット修正になるであろうし、他の場合には２ビットまたは３ビットの修正を使用することになる。各ページに必要となる修正は、そのページと隣接ページで実施されたプログラムシーケンスに依存する。いくつかの場合には、１ページは１ビット修正だけを必要とするが、場合によっては別の１ページが２ビットの修正を使用する。これらの異なった修正レベルは、ＬＡ読み出しを扱うのに異なった数のデータラッチを使用する。コピー機能のためにキャッシュプログラムに読み出しを挿入するかまたはキャッシュ消去操作に読み出しを挿入するなどの複雑なキャッシュ操作をするとき、望ましくは、読み出しのためのデータラッチの要求数の変動はキャッシュアルゴリズムに任される。また、ユーザ（例えば、コントローラまたはホスト）がアドレスを発行する前もデータラッチの要求数は未知である。これらの複雑さをよりよく扱うために、以下の適応型アルゴリズムと呼ばれる新しいキャッシュアルゴリズムを導入する。
【００１３】
文脈を提供するために、これらの技術は多値状態データへの「ルックアヘッド」（ＬＡ）読み出しと「Ｌｏｗｅｒ  Ｍｉｄｄｌｅ」（ＬＭ）コーディングを使用した実施例として以下に記載されている。このような処理が、前述した米国公開特許出願第２００６／０２３９０８０号（特許文献７）中で、例えば、段落［０２９５］から始まる「Cache Read Algorithm for LM code with LA Correction 」と題するセクションなどにさらに詳細に開示されている。簡潔にそこで説明されているように、キャッシュ読み出しデータのための方法は、まさに読み出し操作における修正が物理的に隣接しているページまたはワード線からのデータに依存するように実装され、データラッチとＩ／Ｏバスは現在のページがメモリコアからセンスされている間、前に読み出されたページを切り変えるのに効率的に使用される。１つの好ましい読み出し操作が「ルックアヘッド」（ＬＡ）読み出しであり、そして、メモリ状態のための好ましいコーディングは「Ｌｏｗｅｒ  Ｍｉｄｄｌｅ」（ＬＭ）コードである。現在のワード線上の現在のページの読み出し時には、隣接しているワード線上のデータの必須の読み出しが先行しなければならない。前に読み出されるページが入出力アクセスでビジー状態であっても、現在のページの読み出しを実行できるようにするために、入出力アクセスと共に必須の読み出しが前のページを読み出すサイクル中に先行的に行われる。ＬＡ読み出し方法が、その全体が本願明細書において参照により援用されている、２００５年４月５日に出願された「Read Operations for Non-Volatile Storage that Includes Compensation for Coupling」という米国特許出願第１１／０９９，０４９号（特許文献９）で開示されている。ＬＡ（ルックアヘッド）修正を有する読み出しは基本的に、隣接しているワード線のセルの中にプログラムされたメモリ状態を調べて、現在のワード線で読み出されるメモリセル上に発生するどのような摂動効果も修正する。ページが前に説明した好ましいプログラム方法通りにプログラムされているのならば、隣接しているワード線は現在のワード線のすぐ上のワード線となる。ＬＡ修正方法は現在のページの前の隣接しているワード線に関する読み出しデータを必要とする。
【００１４】
ここで開示するこの例の実施例のさらなる展開に戻ると、データラッチの要求数がＬＭフラグに関連するとき、次にユーザコマンドが実行可能となり、コマンドの実行を終了することができるだけのデータラッチがないことが内部的に判断できるということである。適応型アルゴリズムはユーザコマンドを記憶しておき、十分な数のデータラッチが利用可能になるのを待ち、データラッチが操作の過程の間に利用可能になるとコマンドを実行する。
【００１５】
図１と２は、それぞれキャッシュプログラム操作とキャッシュ消去操作に読み出しを挿入する実施例を出す。図１のコピー操作を有するキャッシュプログラムでは１０１で始まるプログラム操作でプロセスは始まる。これは最初のラッチが１０３でデータラッチの対応するスタック中で解放されるまで続く。プロセスのさらなる詳細が、米国公開特許出願第２００６／０２２１７０４号（特許文献１）と米国公開特許出願第２００７／０１０９８６７号（特許文献２）で説明されている。このポイント１０５で読み出しをプログラム操作に挿入でき、その後書き込み操作は１０７で引き続き行われる。プログラムの過程で２番目のラッチは再び１０９で利用可能になる。この２番目のラッチは１０３での同じラッチであるかもしれないし、または同じスタックの別のラッチであるかもしれない。一方、このプロセスがページレベルで一般に実装されるとき、典型的な実施例はページの各セルのために対応するラッチを必要とし得る。どのような場合でも、読み出しは再び１１１で挿入され、その後プログラム操作が１１３で引き続き行われる。
【００１６】
図２は、読み出しを有するキャッシュ消去のための対応する処理である。ここでソフトプログラム操作を含んだ消去プロセスが２０１で始められる。２０３ではデータラッチは挿入された操作のために利用可能である。ソフトプログラム操作を一種のバイナリのプログラム操作であると考慮できるので、Ｎ−状態記憶セルに関して通常これは（Ｎ−１）個の利用可能なラッチの存在を結果としてもたらす。そして、２０５で読み出し操作を挿入でき、その後ソフトプログラムフェーズを引き続き行うことができる。
【００１７】
挿入読み出し操作（図１の１０５または１１１、図２の２０５）がルックアヘッド読み出し操作であるときに、データラッチの要求数は使用される修正の量に依存する。１つのアルゴリズムで１ビット修正はワード線ｎ（ＷＬｎ）にルックアヘッド読み出しを実行するのに２個のデータラッチを使用し、１つのデータラッチはＷＬｎ＋１のデータ用で、１つはＷＬｎのデータの１ページ用のものである。同様に、２ビットの修正で３個のデータラッチ（２つがＷＬｎ＋１のデータ用で、１つがＷＬｎのデータの１ページ用）が使用され、３ビットの修正で４個のデータラッチ（３つがＷＬｎ＋１のデータ用で、１つがＷＬｎのデータの１ページ用）が使用されている。すべてのＬＡ修正のために２個のラッチだけを必要とする代替の実施例は、米国特許出願第１１／６１８，５６９号（特許文献１０）と米国特許出願第１１／６１８，５７８号（特許文献１１）に記載されている。
【００１８】
次に、Ｌｏｗｅｒ  Ｍｉｄｄｌｅ（ＬＭ）ページ命令と対応するラッチの要求数を包含することはＬＡ読み出しと一緒になるときに考慮される。Yan Liにより２００８年３月１９日に出願された「Different Combinations of Wordline Order and Look-Ahead read to improve Non-Volatile Memory performance 」という米国特許出願（特許文献１２）に処理のさらなる詳細が展開されている。セルあたり３ビットを扱う場合、ページは下側と中央が連続して一緒にプログラムされるように配置され得る。しかし、上側のページプログラムが中央ページから中央ページへのＷＬ−ＷＬ結合効果を排除する傾向のあるやり方で上側のページが跳ばされる。上側のページは次のワード線の中央ページプログラムの後にプログラムされる。
【００１９】
プロセスが図３に示されている。そこではページ０と１は最初のワード線（ＷＬ０）の下側と中央のページとして一緒にプログラムされ、引き続きページ２と３が次のワード線（ＷＬ１）の下側と中央のページとして一緒にプログラムされる。次にプロセスは１ページ（ＷＬ０への）後退させて、上側のページ（ページ４）をプログラムし、次にワード線を２つ（ＷＬ２への）前方に跳んで、下側と中央のページ（ページ５と６）をプログラムする。上側のページへのこの後退と下側の２ページへの前方ジャンプはデータセットの残りの部分に続き、ａ、ｂとｃは１６進法で１０、１１と１２ページであることを表している。このように、事実上ＷＬ−ＷＬとＢＬ−ＢＬ結合効果の多くが上側のページプログラムで修正される。上側のページプログラムの間に、下側と中央のページがＬＡ読み出しで読み出されてメモリセルからのデータの修正読み出しが行われる。このページ処理では、上側のページが次のＷＬの上側のページプログラムと結合されるだけであるので、上側のページの読み出しは１ビットのみの修正を必要とする。一方、中央ページ読み出しは下側と中央のページが前のワード線の中央ページの電圧しきい値と結合できるので、ＬＡ読み出し修正に２ビットを使用する。
【００２０】
動的データラッチの要求に対処する適応型アルゴリズム
開示した実施例から理解することができるように、このようなキャッシュ操作のためのデータラッチの要求数は状況に依存して可変である。ここに開示された適応型アルゴリズムはこのことを考慮に入れている。
コピーの場合の挿入読み出しのキャッシュプログラムの実施例に戻ると、これを図４に示し、そこではプログラム操作が４０１で始まる。操作が継続し、幾つかのポイントでページ中の各セルの１組のラッチが４０３で解放される。このポイントで４０５に示されているように読み出しを挿入できる。これはラッチが解放されるのを待って、ステートマシンが既に保持していた読み出し、または、ラッチが解放された後に読み出しが入るまでプログラムが続くであろう読み出し要求のどちらかであり得る。どちらかの場合でも、読み出しがいったん挿入されると２個のラッチではこの読み出しを完了できないことが判断され得る。２つのデータラッチが利用可能であるときに読み出しコマンドを入力することができるが、上側のページの読み出しが１ビットのみのＬＡ読み出しを使用すると仮定することによって実行できるだけである。しかし、ページで上側のページをプログラムしなければＬＡ読み出しに２ビットを要する。通常、ラッチはプログラムデータで満たされてしまうだろうが、さらにラッチが必要であることがいったん判断されると読み出しデータは無効として扱われる。このような状況ではより多くのデータラッチが利用可能になるまで、ユーザ（すなわち、コントローラ）が発行した読み出しコマンドは完了できない。この実施例では、３つのデータラッチが利用可能になるまで読み出しを実行できない。一旦メモリが、ラッチが不十分であると判断し、読み出しが完了できないと、必要なラッチが利用可能になるまで、矢印で示されるようにコマンドは保持される。
【００２１】
この間、４０９で別のラッチが解放されるまで書き込みプロセスは４０７で持続する。読み出しが次に再び挿入されて４１１で完了し、その後書き込みは４１３で継続される。これは多くの要求数の変動を持つことができるプロセスの単なる１つの一般例であることに留意すべきである。例えば、このケースでは書き込みがステップ４１３の前に完了しないと仮定している。
同様の状況は図５に示されているように、読み出しを挿入するキャッシュ消去でも起こり得る。ソフトプログラムによる消去は５０１で始まる。１セルあたりＮ＝３ビットのデータのために、１ビットのＬＡ読み出しを扱うことができるソフトプログラム（５０３における）で利用可能な２つのデータラッチがある。しかし、２ビットのＬＡ読み出しが必要であるなら、読み出しは全体のソフトプログラム完了状態の後に実行されなければならない。その結果、読み出しが５０５で挿入されても、首尾よく読み出しを完了するためのラッチの必要な数がなければ保持され、ソフトプログラムは５０７で再開されて５０９で完了し、その後、読み出しは５１１で再び挿入される。
【００２２】
図６は、別の状況を示す。ここでは制御をするために適応型キャッシュ操作が複雑になっている。図６は前述した特許文献のような利用可能なラッチより多くのラッチを参照する必要がない最初の読み出しが６０１〜６０７で実行される実施例を示している。この読み出しページはＥＣＣがチェックされ、次に別の位置へプログラムされるのに準備される。上側のページプログラム（６０７の一部）の間、６１１で２番目の読み出しを挿入できる。十分な数のデータラッチが使用可能ではないために２番目の読み出しを実行できない場合には、２番目の読み出しはすぐには実行され得ずに上側のページの処理が終了（６１３）するまでプログラムの終了を待っている。
【００２３】
上側のページプログラムの最後のときには、（まだプログラムされていない）最初の読み出しデータは正しい位置に転送されるべくまだデータラッチの中に残っている。上側のページプログラムが完了した後に、２番目の読み出しコマンドを実行できる。一旦プログラムが再始動されなければならなくなると（６１５）、図４に関して多くを説明したように、再度不完了となっていた読み出しを実行できる（６１７）。
【００２４】
適応型アルゴリズムのための全般的な制御
図７と８に一般的な適応型キャッシュ操作アルゴリズムを示すことができる。キャッシュ操作には、別の操作を挿入できることを示す複数のキャッシュポイントがある。図７は概念的にこれを示している。ここでは時間軸は右に向かって流れ、進行中の書き込みコマンドの操作中に多かれ少なかれ幾つかの任意ポイントが図中で選択される。様々な利用可能なキャッシュポイントは７０１、７０３、…７１３で示すとおりであり、図７では書き込み操作は処理中に７３１で終了し、その後次の書き込みが始められる。
【００２５】
図８は、１つの実施例のフローチャートである。操作のためのコマンドが発行され、キャッシュポイント（例えば、Ｒｅａｄｙ／Ｂｕｓｙ信号で示される）でコマンドが入力される。ユーザコマンド発行後に、８０３でステートマシンはこのコマンドを実行するのに十分なデータラッチがあるかどうかをチェックする。十分なデータラッチあれば（８０５からＹｅｓで抜ける）、次にユーザコマンドはすぐに８０７で実行され、８０１に戻ることができる。
【００２６】
利用可能な十分なデータラッチがない（８０５からＮｏで抜ける）か、または前のキューイングしているキャッシュがまだパイプラインにあると、キャッシュポインタが次の利用可能なキャッシュポイントを取得するために追跡されている間に、古い操作が再開される（８０９）。次のキャッシュポイントでは、前のユーザコマンドの実行は、再度（１）パイプラインのキャッシュキューと（２）データラッチの利用可能性という２つの要因に基づいて評価される（８１１）。一旦コマンドがキューの先頭にあって十分なラッチがあれば、次に８０７でコマンドを実行できる。すべてのキャッシュ操作では、アドレスおよびコマンドはＦＩＦＯパイプラインに保存されなければならない。
【００２７】
ある特定の実施例に関して本発明の種々の態様について説明したが、本発明が添付された特許請求の範囲の完全な範囲の中の保護の権利を与えられることが理解されよう。
【図１】
2011515786.tif 000003
【図２】
2011515786.tif 000004
【図３】
2011515786.tif 000005
【図４】
2011515786.tif 000006
【図５】
2011515786.tif 000007
【図６】
2011515786.tif 000008
【図７】
2011515786.tif 000009
【図８】
2011515786.tif 000010
【国際調査報告】
2011515786.tif 000011
2011515786.tif 000012