(57)【要約】  不揮発性メモリアレイにおいて、消去済みブロックの不足が生じる前に行われる再生操作のスケジューリングは、制限時間の超過を招く長期間の再生を回避する。メモリコントローラは、メモリアレイに記憶されるデータに関する情報をもとに、プログラムされ得る追加のホストデータと遂行される再生操作とを推定し、メモリが満杯になるまで書き込み操作の合間に再生操作が均一に分散するようにスケジュールを組む。
2009503744.tif 000002
【特許請求の範囲】
【請求項１】
ブロックの消去単位を有する不揮発性メモリで空間を管理する方法であって、前記不揮発性メモリは有効データで部分的に満たされたブロックを有する方法において、
（ａ）ホストから受信するホストデータを前記不揮発性メモリにプログラムすることと、（ｂ）ある１つのブロックから別のブロックにかけて記憶済み有効データをコピーすることとを、前記メモリアレイで空間を再生するためにコピーされる有効データの量の推定から導き出される交互比に従い、交互に行うステップを含む方法。
【請求項２】
請求項１記載の方法において、
前記交互に行うステップは、前記ホストから受信するホストデータを前記不揮発性メモリに一定のレートでプログラムすることを提供する方法。
【請求項３】
請求項２記載の方法において、
前記交互比は、前記不揮発性メモリが有効データで満たされるまで前記一定のレートでプログラムすることを継続するように計算される方法。
【請求項４】
請求項１記載の方法において、
前記交互比は、ホストコマンドに応じて再計算される方法。
【請求項５】
請求項１記載の方法において、
前記交互比は、前記メモリアレイに記憶され得る追加データの推定から導き出される方法。
【請求項６】
請求項５記載の方法において、
前記メモリアレイに記憶され得る追加データの量の推定は、ホストファイルが用済みであることを伝えるホストからの受信情報から導き出される方法。
【請求項７】
請求項１記載の方法において、
前記交互に行うステップは、記憶済みデータをコピーすることを禁じる再生オフモードと、ホストデータをプログラムせず記憶済みデータをコピーすることを可能にする再生オンモードとを含む複数のモードから交互モードを選択するホストコマンドに応じて起こる方法。
【請求項８】
ページのプログラミング単位とブロックの消去単位とを有するメモリアレイで空間を再生する方法であって、１ブロックは２つ以上のページを収容し、前記メモリアレイは完全にではなく部分的に有効データで各々満たされた複数のブロックを収容する方法において、
前記複数のブロックに記憶される有効データの量に依拠するレートで前記複数のブロックに記憶される有効データをコピーするステップと、
前記複数のブロックの個々のブロックを、前記個々のブロックにある全有効データがコピーされた後に、消去するステップと、
を含む方法。
【請求項９】
請求項８記載の方法において、
前記コピーするステップは、ホスト書き込み操作と交互に行われ、前記レートは、ホスト書き込み操作に許される時間内にコピーされる有効データの量によって設定される方法。
【請求項１０】
請求項９記載の方法において、
前記レートは、反復サイクルの１サイクルで書き込まれるホストデータのページ数に対するコピーされる有効データのページ数の比によって設定される方法。
【請求項１１】
請求項１０記載の方法において、
前記比は、等式ｒ＝ｘ／ｙから計算され、
ここで、ｘは、前記複数のブロックにて空間を再生するためにコピーしなければならない前記複数のブロックに収容された有効データの量の推定であり、
ｙは、前記メモリアレイが満杯になる前に前記メモリアレイに記憶され得る追加のホストデータの量である方法。
【請求項１２】
請求項９記載の方法において、
前記レートは、前記メモリアレイが前記ホスト書き込み操作によって満たされていくにつれ、有効データをコピーすることを、前記ホスト書き込み操作の合間に均一に分配するように計算される方法。
【請求項１３】
請求項８記載の方法において、
前記複数のブロックは、代替のデータを提供することなく用済みデータを識別するホストコマンドによって用済みと識別される前記用済みデータを収容する方法。
【請求項１４】
ブロックの消去単位を有する不揮発性メモリで空間を管理する方法であって、
（ａ）ホストから受信するホストデータを前記不揮発性メモリにプログラムすることと、（ｂ）ある１つのブロックから別のブロックにかけて記憶済み有効データをコピーすることとを、前記メモリがホストデータで満ちるにつれ複数のサイクルにわたり一定のレートでホストデータがプログラムされるように、交互比に従い、反復サイクルにて、交互に行うステップを含む方法。
【請求項１５】
請求項１４記載の方法において、
前記交互比は、前記メモリアレイにプログラムできる追加のホストデータの総量の推定と、前記メモリアレイにて全ての再生可能な空間を再生するために、ある１つのブロックから別のブロックにかけてコピーしなければならない記憶済み有効データの総量の推定とから計算される方法。
【請求項１６】
請求項１５記載の方法において、
前記コピーしなければならない記憶済み有効データの推定は、有効データで部分的に満たされた全ブロックにわたって有効データが均一に分散していると仮定することによって得られる方法。
【請求項１７】
メモリシステムであって、
複数のブロックを含む不揮発性メモリアレイであって、１ブロックは最小消去単位である不揮発性メモリアレイと、
前記不揮発性メモリアレイに記憶されるホストデータのために論理−物理マッピングの記録を保守するメモリコントローラであって、前記記録は複数の項目を有し、個々の項目は一意なファイル識別子およびオフセットによって論理アドレスを指示し、前記メモリコントローラはホストによって供給される情報に従い記憶データが有効または用済みかを判断し、前記メモリコントローラは、残りの再生可能な空間を再生するためにコピーされるデータの量と、前記メモリアレイが満杯になる前に書き込まれる追加のホストデータの総量とに依拠するレートで、有効データをコピーするメモリコントローラと、
を備えるメモリシステム。
【請求項１８】
請求項１７記載のメモリシステムにおいて、
前記レートは、ホストコマンドに応じて再計算されるメモリシステム。
【請求項１９】
請求項１７記載のメモリシステムにおいて、
前記レートは、前記メモリが有効ホストデータで満たされるまで一定レートのホストデータプログラミングを提供するように計算されるメモリシステム。
【請求項２０】
請求項１７記載のメモリシステムにおいて、
前記メモリシステムは、標準インターフェイスを通じて前記ホストと通信する着脱可能なメモリカードにて具現化されるメモリシステム。
【請求項２１】
請求項１７記載のメモリシステムにおいて、
前記ホストは、ホストファイルを参照するための一意なファイル識別子を用いてホストファイルに関する情報を提供するメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、半導体フラッシュメモリなどの再プログラム可能な不揮発性メモリシステムの操作に関し、より具体的にはこのようなメモリの中の使用可能な空間の管理に関する。本願明細書で参照される特許、特許出願、記事、その他の出版物、文書、事柄はどれも、あらゆる目的のためにその全体が本願明細書において参照により援用されている。
【背景技術】
【０００２】
初期世代の商用フラッシュメモリシステムでは、メモリセルからなる矩形のアレイが、標準ディスクドライブセクタのデータ量、すなわち５１２バイトを、各々記憶する多数のセルグループに分割されていた。さらに通常ならば、誤り訂正符号（ＥＣＣ）を記憶し、、ことによるとユーザデータおよび／またはこれを記憶するメモリセルグループに、関係する他のオーバーヘッドデータを記憶するため、１６バイトなどの一定量のデータが各グループに加わる。このような各グループの中にあるメモリセルは、ともに消去可能な最低数のメモリセルである。すなわち、消去単位は事実上、１つのデータセクタを、そしてオーバーヘッドデータが含まれる場合はオーバーヘッドデータを、記憶するメモリセル数である。米国特許第５，６０２，９８７号（特許文献１）および第６，４２６，８９３号（特許文献２）には、このタイプのメモリシステムの例が記載されている。フラッシュメモリの特徴として、メモリセルにデータを再度プログラムする前にメモリセルを消去する必要がある。
【０００３】
フラッシュメモリシステムは多くの場合、パーソナルコンピュータやカメラ等、様々なホストと着脱可能な状態で接続するメモリカードまたはフラッシュドライブの形で提供されるが、このようなホストシステムの中に埋め込まれることもある。ホストは通常、メモリへデータを書き込む場合、メモリシステムの連続する仮想アドレス空間の中でセクタ、クラスタまたはその他のデータ単位に一意な論理アドレスを割り当てる。ホストは、ディスクオペレーティングシステム（ＤＯＳ）のように、メモリシステムの論理アドレス空間の中のアドレスにデータを書き込み、かつこれからデータを読み出す。メモリシステムの中のコントローラは、ホストから受け取った論理アドレスをメモリアレイの中のデータが実際に記憶される物理アドレスに翻訳し、これらのアドレス翻訳の経緯を把握する。メモリシステムのデータ記憶容量は少なくとも、メモリシステムのために設定される論理アドレス空間全体にわたってアドレスされるデータ量に相当する。
【０００４】
後続世代のフラッシュメモリシステムでは、消去単位のサイズが複数セクタのデータを十分に記憶するメモリセルブロックまで拡大した。メモリシステムの接続先にあたるホストシステムがセクタなどの小さな最小単位でデータをプログラムし読み出すとしても、フラッシュメモリの１消去単位には多数のセクタが記憶される。ホストが論理セクタのデータの更新や置き換えを行うときに、ブロック内のいくつかのデータセクタが用済みになることは多々ある。ブロックに記憶されたデータに上書きを行うには事前にブロック全体を消去しなければならないから、新規または更新済みデータは通常、あらかじめ消去されデータのための容量が残っている別のブロックに記憶される。この過程で元のブロックには用済みデータが残り、メモリ内の貴重な空間を取る。しかし、このブロックは、その中に有効データが残っていると消去できない。
【０００５】
したがって、メモリ記憶容量の有効利用を図るため、有効な不完全ブロックのデータ量を消去済みブロックにコピーすることによってこれを整理または回収するのが一般的であり、こうすればデータのコピー元にあたるブロックを消去でき、その記憶容量の全体を再利用できる。ブロック内のデータセクタをそれぞれの論理ブロックの順にグループ分けするためにデータをコピーすることも望ましく、こうすればデータを読み出して、読み出したデータをホストへ転送する速度が上がる。そのようなデータコピーがあまりにも頻繁に行われると、メモリシステムの動作性能が低下することがある。これは特に、メモリの記憶容量が、システムの論理アドレス空間を通じてホストによってアドレス指定可能なデータ量と大差ない場合、つまりよくある場合、メモリシステムの動作に影響する。この場合は、ホストプログラミングコマンドが実行される前にデータを整理または回収する必要がある。そうするとプログラミングの時間が長引く。
【０００６】
所与の半導体エリアに記憶できるデータのビット数を増やすため、ブロックのサイズはメモリシステムの世代交代を通じて拡大している。２５６以上のデータセクタを記憶するブロックが一般的になりつつある。加えてデータのプログラミングと読み出しにあたって並列度を高めるため、アレイまたはサブアレイからなる２つ、４つ、またはそれ以上のブロックがしばしばメタブロックとして論理的にともにリンクされる。そのような大容量操作単位には、それらを効率的に操作するという課題がともなう。
【０００７】
したがって、不揮発性メモリの記憶されたデータ管理の改善が求められている。有効データを収容しておらず、新規な有効データを記憶するために現在使用できないメモリ空間を効率的に再生するシステムもまた求められている。ホストデータのプログラミングなどの他のメモリ操作への影響がごく僅かかまたは皆無となるように再生操作を遂行するシステムもまた求められている。
【特許文献１】米国特許第５，６０２，９８７号
【特許文献２】米国特許第６，４２６，８９３号
【特許文献３】米国特許出願第１０／９１５，０３９号
【特許文献４】米国特許第５，５７０，３１５号
【特許文献５】米国特許第５，７７４，３９７号
【特許文献６】米国特許第６，０４６，９３５号
【特許文献７】米国特許第６，３７３，７４６号
【特許文献８】米国特許第６，４５６，５２８号
【特許文献９】米国特許第６，５２２，５８０号
【特許文献１０】米国特許第６，７７１，５３６号
【特許文献１１】米国特許第６，７８１，８７７号
【特許文献１２】米国公開特許出願第２００３／０１４７２７８号
【特許文献１３】米国公開特許出願第２００３／０１０９０９３号
【特許文献１４】米国特許出願第１０／７４９，１８９号
【特許文献１５】米国特許出願第１０／８４１，１１８号
【特許文献１６】米国特許出願第１１／０１６，２７１号
【特許文献１７】米国特許第６，７６３，４２４号
【特許文献１８】米国特許出願第１０／７５０，１５５号
【特許文献１９】米国特許出願第１０／７４９，８３１号
【特許文献２０】米国特許出願第１０／９１７，８８８号
【特許文献２１】米国特許出願第１０／９１７，８６７号
【特許文献２２】米国特許出願第１０／９１７，８８９号
【特許文献２３】米国特許出願第１０／９１７，７２５号
【特許文献２４】米国特許出願第１０／８９７，０４９号
【特許文献２５】米国特許出願第１１／０２２，３６９号
【特許文献２６】米国特許出願第１１／０４０，３２５号
【特許文献２７】米国特許出願第１１／０６０，２４９号
【特許文献２８】米国特許出願第１１／０６０，１７４号
【特許文献２９】米国特許出願第１１／０６０，２４８号
【特許文献３０】米国仮特許出願第６０／７０５，３８８号
【発明の開示】
【０００８】
メモリが消去済みブロックを使い果たす前にメモリアレイの空間を再生すれば、ホストデータのプログラミングがひどく遅れて制限時間の超過を招くリスクは回避できる。メモリにホストデータが入るにつれ、メモリが満杯になるまでに消去済みブロックが使い果たされないようにメモリアレイの空間を再生する。再生は、消去済みブロックが不足するかなり前に再生が始まるスケジュールに従って行うことができる。再生操作は交互比に従ってホストデータの書き込みと交互に行われるから、再生操作は、長時間かけて一気に行われる代わりに長期間にわたって分散する。この交互比は、残りの全再生書き込みに対する残りの全ホスト書き込みの比となるように算出される。
【０００９】
ファイル本位ホストインターフェイスがメモリをホストへ接続する場合、メモリコントローラは、メモリアレイに記憶されるデータについて正確で最新の情報を得ることができ、メモリが満杯になる前にメモリに書き込むことができる追加のホストデータの量と、メモリが満杯になる前に必要とされる再生の量とから、適切な交互比を推定できる。再生操作を残りの時間の全体にわたって均一に分散することにより、一定レートのホストデータプログラミングを達成する。セクタ本位インターフェイスやその他のインターフェイスを有するメモリの場合、このような推定を果たすための情報がホストから提供されるため、交互比を同様に計算できる。
【００１０】
交互比は間隔を置いて計算でき、あるいはホストによるある程度の記憶データの削除などのトリガイベントがあるときに計算できる。このようにして交互比は適宜更新され、状況の変化に適応する。
【００１１】
再生は様々なモードで様々に管理できる。書き込まれるホストデータと果たされる再生操作との推定に基づく適応再生に加えて、ある程度の低い（またはゼロの）レートで空間を再生する最小再生モードがあってよい。最小再生モードは通常、再生可能な空間に比べて十分な消去済みブロックがある場合に適用する。ある程度の最大レートで空間を交互に再生する最大再生モードもあってよい。最大再生モードは通常、消去済みブロックがほとんどない場合に、つまりメモリがほぼ満杯のときによくある状況に適用する。加えて、ホストコマンドに応じて（交互にではなく）連続的に再生を果たすことができる。ホストコマンドに応じて再生を禁じることもできる。
【発明を実施するための最良の形態】
【００１２】
フラッシュメモリの概説
現在のフラッシュメモリシステムおよびホストデバイスとの典型的な動作を、図１〜８との関係で説明する。このようなシステムで本発明の様々な態様を実施できる。図１のホストシステム１は、フラッシュメモリ２の中にデータを記憶し、かつフラッシュメモリ２からデータを引き出す。フラッシュメモリはホストの中に埋め込むこともできるが、メモリ２はそれよりも一般的なカードの形で図に示され、このカードは、機械的および電気的コネクタの嵌合部分３および４を通じて着脱可能な状態でホストへ接続される。例えばコンパクトフラッシュ（ＣＦ）、マルチメディアカード（ＭＭＣ）、セキュアデジタル（ＳＤ）、ミニＳＤ、メモリスティック、スマートメディア、トランスフラッシュカード等、様々なフラッシュメモリカードが現在多く市販されている。これらのカードの各々はそれぞれの規格化された仕様に従い独特の機械的および／または電気的インターフェイスを有するが、各々に内蔵されたフラッシュメモリシステムは類似する。これらのカードはいずれも、本願の譲受人であるサンディスク  コーポレイション(SanDisk Corporation) から入手できる。サンディスク  コーポレイションはまた、クルーザー（Ｃｒｕｚｅｒ）という商標のもとで一連のフラッシュドライブを提供し、フラッシュドライブは、ホストのユニバーサル・シリアル・バス（ＵＳＢ）差込口に差し込まれることによってホストと接続するＵＳＢプラグを有する小形の手持ち式メモリシステムである。これらのメモリカードとフラッシュドライブの各々は、ホストと連動して内蔵されたフラッシュメモリの動作を制御するコントローラを内蔵する。
【００１３】
このようなメモリカードとフラッシュドライブとを使用するホストシステムは数多くあり様々である。パーソナルコンピュータ（ＰＣ）、ラップトップおよび他の携帯用コンピュータ、携帯電話、個人用携帯情報端末（ＰＤＡ）、デジタル静止画カメラ、デジタル動画カメラ、携帯形オーディオプレイヤ等が含まれる。ホストは通常ならば１種類以上のメモリカードまたはフラッシュドライブのための一体化された差込口を内蔵するが、一部のホストはメモリカードを差し込むアダプタを要する。
【００１４】
図１のホストシステム１は、メモリ２が接続される限りにおいて、回路とソフトウェアとの組み合わせからなる、２つの主要部分を有するものとみなすことができる。それらはアプリケーション部５と、メモリ２と連動するドライバ部６である。例えばパーソナルコンピュータの場合、アプリケーション部５は、ワープロ、グラフィック、コントロールまたはその他一般的なアプリケーションソフトウェアを実行するプロセッサを含むことがある。カメラ、携帯電話、または専ら１組の機能を遂行するためのその他のホストシステムの場合、アプリケーション部５は、写真を撮影したり記憶したりするためにカメラを動作させる、電話をかけたり受けたりするために携帯電話を動作させる、ソフトウェアを含む。
【００１５】
図１のメモリシステム２はフラッシュメモリ７および回路８を含み、回路はいずれも、データをやり取りし、かつメモリ７を制御するため、カードの接続先にあたるホストと連動する。コントローラ８は通常、データのプログラミングと読み出しの際にホスト１によって使用されるデータの論理アドレスとメモリ７の物理アドレスとの変換を行う。
【００１６】
図２を参照し、図１の不揮発性メモリ２として使用できる典型的フラッシュメモリシステムの回路が説明される。システムコントローラは普通、システムバス１３沿いに１つ以上の集積回路メモリチップと並列で接続される単一集積回路チップ１１上で実施され、図２にはただひとつのこのようなメモリチップ１５が示されている。図に示された特定のバス１３は、データを搬送する１セットの導体１７と、メモリアドレスのためのセット１９と、制御および状態信号のためのセット２１とを含む。あるいは、これらの３機能の間で１セットの導体を時分割共用できる。さらに、２００４年８月９日に出願された米国特許出願第１０／９１５，０３９号「リングバス構造とフラッシュメモリシステムにおけるその使用(Ring Bus Structure and It's Use in Flash Memory Systems) 」（特許文献３）で説明されているリングバスなど、これとは別のシステムバス構成を使用できる。
【００１７】
典型的コントローラチップ１１は、インターフェイス回路２５を通じてシステムバス１３と連動する独自の内部バス２３を有する。このバスへ通常接続される主要機能には、プロセッサ２７（例えば、マイクロプロセッサまたはマイクロコントローラ）と、システムを初期化（「ブート」）するためのコードを収容する読み出し専用メモリ（ＲＯＭ）２９と、主にメモリとホストとの間で転送されるデータをバッファするために使われるランダムアクセスメモリ（ＲＡＭ）３１と、コントローラを通じてメモリとホストとの間を行き来するデータのために誤り訂正符号（ＥＣＣ）を計算し検査する回路３３とがある。コントローラバス２３は回路３５を通じてホストシステムと連動し、これは、メモリカードに収容される図２のシステムの場合、コネクタ４の一部をなすカードの外部接点３７を通じて果たされる。クロック３９は、コントローラ１１の他のコンポーネントの各々に接続され、他のコンポーネントの各々によって利用される。
【００１８】
メモリチップ１５と、システムバス１３に接続される他のメモリチップは通常、複数のサブアレイまたはプレーンに編制されたメモリセルアレイを収容し、簡潔を図るために２つのこのようなプレーン４１および４３が図に示されているが、これよりも多い、例えば４つ、または８つの、このようなプレーンを代わりに使用することもできる。あるいは、チップ１５のメモリセルアレイはプレーンに分割しなくともよい。しかし、分割するなら、各々のプレーンは互いに独立して動作できる独自の列制御回路４５および４７を有する。回路４５および４７は、システムバス１３のアドレス部１９からそれぞれのメモリセルアレイのアドレスを受け取り、それぞれのビット線４９および５１のうちの、特定の１つ以上のビット線をアドレス指定するため、それらを復号化する。ワード線５３は、アドレスバス１９で受け取るアドレスに応じて行制御回路５５を通じてアドレス指定される。ソース電圧制御回路５７および５９もまたそれぞれのプレーンに接続され、ｐウェル電圧制御回路６１および６３も同様である。メモリチップ１５がただひとつのメモリセルアレイを有し、２つ以上のこのようなチップがシステムに存在する場合、各チップのアレイは、前述したマルチプレーンチップ内のプレーンまたはサブアレイと同様に動作させることができる。
【００１９】
データは、システムバス１３のデータ部１７に接続されたそれぞれのデータ入出力回路６５および６７を通じてプレーン４１および４３を出入りする。回路６５および６７は、それぞれの列制御回路４５および４７を通じてプレーンへ接続する線６９および７１を通じて、メモリセルの中にデータをプログラムし、かつそれぞれのプレーンのメモリセルからデータを読み出すためにある。
【００２０】
コントローラ１１は、データをプログラムし、読み出し、消去し、かつ様々なハウスキーピング作業に応対するためにメモリチップ１５の動作を制御するが、各々のメモリチップもまた、このような機能を遂行するためにコントローラ１１からのコマンドを実行する何らかの制御回路を収容する。インターフェイス回路７３はシステムバス１３の制御および状態部２１へ接続される。コントローラからのコマンドは状態マシン７５へ提供され、状態マシンは、これらのコマンドを実行するために他の回路の特定の制御も提供する。制御線７７〜８１は、図２に示す他の回路に状態マシン７５を接続する。状態マシン７５からの状態情報は、バス部２１に沿ってコントローラ１１へ送信するため、ライン８３に沿ってインターフェイス７３へ伝達される。
【００２１】
現在はメモリセルアレイ４１および４３のＮＡＮＤアーキテクチャが好まれているが、ＮＯＲなどの他のアーキテクチャを代わりに使用することもできる。ＮＡＮＤフラッシュメモリおよびメモリシステムの一部としてのこれの動作の例が、米国特許第５，５７０，３１５号（特許文献４）、第５，７７４，３９７号（特許文献５）、第６，０４６，９３５号（特許文献６）、第６，３７３，７４６号（特許文献７）、第６，４５６，５２８号（特許文献８）、第６，５２２，５８０号（特許文献９）、第６，７７１，５３６号（特許文献１０）、および第６，７８１，８７７号（特許文献１１）ならびに米国公開特許出願第２００３／０１４７２７８号（特許文献１２）を参照することによって得られる。
【００２２】
図２のメモリシステムのメモリセルアレイ４１の一部分にあたる図３の回路図には、ＮＡＮＤアレイの例が示されている。多数のグローバルビット線が提供されるが、説明の簡潔を図るため、図３には４つのこのような線９１〜９４だけが示されている。これらのビット線の１ビット線と基準電位との間には、いくつかの直列接続メモリセルストリング９７〜１０４が接続される。メモリセルストリング９９を代表として使用し、ストリングの両端にある選択トランジスタ１１１および１１２には複数の電荷記憶メモリセル１０７〜１１０が直列で接続される。１ストリングの選択トランジスタが通電すると、ストリングがそのビット線と基準電位との間で接続される。次いで、そのストリングの中で一度に１つのメモリセルがプログラムされ、または読み出される。
【００２３】
図３のワード線１１５〜１１８は、数々のメモリセルストリングの各々で１つのメモリセルの電荷記憶素子にわたって個別に延在し、ゲート１１９および１２０は、ストリングの各末端にある選択トランジスタの状態を制御する。共通のワードおよびコントロールゲート線１１５〜１２０を共用するメモリセルストリングは、ともに消去されるメモリセルのブロック１２３を形成する。このセルからなるブロックは、一度に物理的に消去できる最小数のセルを収容する。ワード線１１５〜１１８の１ワード線沿いの１行のメモリセルが一度にプログラムされる。通常、ＮＡＮＤアレイの行は規定の順序でプログラムされ、この場合は、接地または共通電位へ接続されたストリングの末端に最も近いワード線１１８沿いの行から始まる。次にワード線１１７沿いのメモリセル行がプログラムされ、ブロック１２３の全体を通じて同様に進むなどである。最後にワード線１１５沿いの行がプログラムされる。
【００２４】
第２のブロック１２５は類似し、そのメモリセルストリングは第１のブロック１２３のストリングと同じグローバルビット線へ接続されるが、異なる１組のワード線およびコントロールゲート線を有する。ワード線およびコントロールゲート線は、行制御回路５５によって適切な動作電圧まで駆動される。図２のプレーン１および２のような、２つ以上のプレーンまたはサブアレイがシステムにある場合、それらの間に延在する共通ワード線を１つのメモリアーキテクチャで使用する。代わりに、共通ワード線を共用する３つ以上のプレーンまたはサブアレイがあってもよい。別のメモリアーキテクチャでは、個々のプレーンまたはサブアレイのワード線が別々に駆動される。
【００２５】
前に参照されているＮＡＮＤ特許および公開特許出願のいくつかで説明されているように、３つ以上の検出可能な電荷レベルを各電荷記憶素子または領域に記憶するようメモリシステムを動作させることができ、これにより２ビット以上のデータを各々に記憶する。メモリセルの電荷記憶素子は一般的には導電性フローティングゲートであるが、代わりに米国公開特許出願第２００３／０１０９０９３号（特許文献１３）で説明される非導電性誘電性電荷捕獲材であってもよい。
【００２６】
図４は、以降のさらなる説明で一例として使用するフラッシュメモリセルアレイ７（図１）の編制を概念的に示している。１つの集積メモリセルチップ、２つのチップ（各チップ上のプレーンのうちの２つ）、または４つの別々のチップの上に、メモリセルの４つのプレーンまたはサブアレイ１３１〜１３４があってよい。具体的な配置は以降の説明にとって重要でない。もちろん、１、２、８、１６以上などの、これ以外の数のプレーンがシステムの中にあってもよい。プレーンは、それぞれのプレーン１３１〜１３４に位置するブロック１３７、１３８、１３９、および１４０の矩形によって図４に示すメモリセルブロックに各々分割される。各プレーンには何十、何百ものブロックがあってよい。前述したように、メモリセルのブロックは消去の単位、すなわちともに物理的に消去できる最小数のメモリセルである。しかし、並列性を高めるためには、これよりも大きいメタブロック単位でブロックを操作する。各プレーンから１つのブロックが論理的にリンクされることによってメタブロックを形成する。４つのブロック１３７〜１４０によって１つのメタブロック１４１が形成される様子が図に示されている。通常ならば、１メタブロック内の全てのセルが一緒に消去される。ブロック１４５〜１４８からなる第２のメタブロック１４３に見られるように、メタブロックを形成するように使用されるブロックを、それぞれのプレーンの中の同じ相対的位置に制限する必要はない。通常は全てのプレーンにわたってメタブロックを延在させるのが好ましいが、高いシステム性能のためには、異なるプレーンにある１つ、２つ、または３つのブロックのいずれかまたは全部からなるメタブロックを動的に形成する能力を用いてメモリシステムを操作することができる。これにより、１回のプログラミング操作で記憶のために使用できるデータ量にメタブロックのサイズをより近づけることが可能となる。
【００２７】
個々のブロックはさらに、動作上の目的のため、図５に示すようにメモリセルのページに分割される。例えば、ブロック１３１〜１３４の各々のメモリセルは８つのページＰ０〜Ｐ７に各々分割されている。代わりに、１６、３２、またはそれ以上のメモリセルページが各ブロックの中にあってよい。ページは、ブロックの中でデータをプログラムし読み出す単位であり、一度にプログラムされる、または読み出される、最少量のデータを収容する。図３のＮＡＮＤアーキテクチャでは、ブロックの中でワード線沿いのメモリセルからページが形成されている。しかし、メモリシステムの動作上の並列性を高めるために、２つ以上のブロックの中にあるこのようなページをメタページの中に論理的にリンクできる。図５には、４つのブロック１３１〜１３４の各々にある１つの物理ページから形成されたメタページ１５１が示されている。メタページ１５１は、例えば４つのブロックの各々にあるページＰ２を含むが、メタページのページは、ブロックの各々の中で同じ相対的位置になくてもよい。全４つのプレーンにわたって最大量のデータを並行してプログラムし読み出すことが望ましいが、高いシステム性能のため、異なるプレーンの中にある別々のブロックの１つ、２つ、または３つのページのいずれかまたは全てからメタページを形成するべくメモリシステムを操作することもできる。これにより、並行して簡便に扱えるデータ量にプログラミングおよび読み出し動作を適合させることができ、さらにデータがプログラムされない部分がメタページに残る機会は減る。
【００２８】
図５に示す複数のプレーンの物理ページからなるメタページは、それらの複数のプレーンのワード線行に沿ってメモリセルを収容する。１つのワード線行にある全てのセルを同時にプログラムするよりは、２つ以上のインターリーブされたグループでそれらを交互にプログラムするほうがむしろ一般的であり、各グループは、（単一ブロック内の）１ページのデータまたは（複数のブロックにまたがる）１メタページのデータを記憶する。交互のメモリセルを一度にプログラムすることにより、データレジスタやセンス増幅器を含むひとまとまりの周辺回路を各ビット線のために用意する必要はなく、むしろ隣接するビット線の間で時分割共用される。これは、周辺回路に要する基板空間の量を節約し、メモリセルの行沿いの実施密度を増やすことができる。さもなくば、所与のメモリシステムから最大限の並列性を引き出すために、行沿いの全セルを同時にプログラムするのが望ましい。ほとんどのデータ管理目的で、メタブロックおよびメタページはブロックおよびページと同様に扱うことができる。メタブロックおよびメタページに関して本願に提示される例は概して、消去およびプログラミングの単位としてブロックとページとをそれぞれ使用するメモリにも当てはまる。同様に、ブロックとページに関して提示される例は概して、メタブロックとメタページとを使用するメモリにも当てはまる。
【００２９】
非常に大きい消去ブロックを伴うメモリアレイの操作を効率的に制御するにあたって１つの課題となるのは、所与の書き込み操作のときに記憶されるデータセクタの数を、メモリのブロックの容量に一致させ、その境界に整合させることである。１つのアプローチでは、メタブロック全体を埋め尽くす量に満たない一定量のデータを記憶するのに必要なため、ホストからの新規データの記憶するのに使うメタブロックを、最大ブロック数未満で適宜構成する。適応メタブロックの使用が、２００３年１２月３０日に出願された米国特許出願第１０／７４９，１８９号「適応メタブロック(Adaptive Metablocks) 」（特許文献１４）で説明されている。データブロック間の境界とメタブロック間の物理的境界の整合は、２００４年５月７日に出願された米国特許出願第１０／８４１，１１８号（特許文献１５）、２００４年１２月１６日に出願された米国特許出願第１１／０１６，２７１号「データランプログラミング(Data Run Programming)」（特許文献１６）で説明されている。
【００３０】
図３を参照し、行沿いの互い違いのメモリセルへのデータの同時プログラミングを最も簡便に果たすには、ＮＡＮＤストリングの少なくとも一端に沿って２行の選択トランジスタ（図示せず）を、図に示された１行の代わりに、提供することである。この場合、一方の行の選択トランジスタは、１つの制御信号に応じてブロック内の互い違いのストリングをそれぞれのビット線へ接続し、他方の行の選択トランジスタは、別の制御信号に応じて介在する互い違いのストリングをそれぞれのビット線へ接続する。したがって、メモリセルの各行には２ページ分のデータが書き込まれる。
【００３１】
各論理ページのデータ量は通常、１つ以上の整数のデータセクタ数であって、各セクタは慣例上５１２バイトのデータを収容する。図６は、１ページまたはメタページの、２つのデータのセクタ１５３および１５５からなる論理データページを示している。各セクタは普通、５１２バイトのユーザデータまたはシステムデータが記憶される部分１５７と、部分１５７にあるデータまたはこれを記憶する物理ページまたはブロックに関係するオーバーヘッドデータのための別のバイト数１５９を収容する。オーバーヘッドデータのバイト数は通常ならば１６バイトであり、セクタ１５３および１５５の各々につき合計５２８バイトになる。オーバーヘッド部分１５９は、プログラミング中にデータ部分１５７から算出されるＥＣＣ、その論理アドレス、ブロックが消去され再プログラムされる回数の経験カウント、１つ以上の制御フラグ、動作電圧レベル等に加え、このようなオーバーヘッドデータ１５９から算出されるＥＣＣを収容できる。代わりに、オーバーヘッドデータ１５９またはオーバーヘッドデータ１５９の一部分は、他のブロックの別のページに記憶できる。
【００３２】
メモリの並列性が高まるにつれメタブロックのデータ記憶容量は増し、その結果、データページおよびメタページのサイズも増す。データページは３セクタ以上のデータを収容できる。１データページ内に２つのセクタと、各メタページにつき２つのデータページとで、１メタページ内のセクタは４つになる。よって、各メタページは２，０４８バイトのデータを記憶する。これは高度な並列性であり、行内のメモリセル数の増加にともないさらに高めることができる。このため、ページおよびメタページ内のデータ量を増やすために、フラッシュメモリの幅が拡大されつつある。前述した物理的に小さい再プログラム可能な不揮発性メモリカードおよびフラッシュドライブは市販され、データ記憶容量は５１２メガバイト（ＭＢ）、１ギガバイト（ＧＢ）、２ＧＢ、４ＧＢ以上になる。
【００３３】
図７は、ホストとこのような大容量メモリシステムとの間の一般的なインターフェイスを示している。ホストは、ホストによって実行されるアプリケーションソフトウェアまたはファームウェアプログラムによって生成または使用されるデータファイルを処理する。ワープロデータファイルはその一例であり、コンピュータ支援設計（ＣＡＤ）ソフトウェアの描画ファイルもこれにあたり、主にＰＣ、ラップトップコンピュータ等、一般的なコンピュータホストに見られる。ｐｄｆ形式の文書もこのようなファイルである。静止画デジタルビデオカメラは各写真につきデータファイルを生成し、データファイルはメモリカードに記憶される。携帯電話は、電話帳などの内蔵メモリカード上のファイルからデータを利用する。ＰＤＡは、住所ファイル、カレンダーファイル等、数通りのファイルを記憶し使用する。このような用途において、メモリカードはホストを操作するソフトウェアを収容することもある。
【００３４】
図７で、連続する論理アドレス空間１６１は、メモリシステムに記憶される全データのためのアドレスを提供するにあたって十分に大きい。通常、論理アドレス空間はメモリアレイの物理アドレス空間よりいくぶん小さいから、メモリアレイにはある程度の余分な空間がある。ホスト論理アドレス空間は通常、データクラスタの単位に分割される。所与のホストシステムにおいて、いくつかのデータセクタを収容するように各クラスタを設計でき、４から６４セクタあたりが一般的である。標準的なセクタは５１２バイトのデータを収容する。
【００３５】
図７の例では、３つのファイル１，２，および３が作成されたものとして示されている。ホストシステムで実行するアプリケーションプログラムは、整列された１組のデータとして各ファイルを作成し、一意な名前またはその他の参照符によってこれを識別する。ファイル１にはホストによって、他のファイルにまだ割り振られていない十分に使用可能な論理アドレス空間が、割り当てられる。ファイル１は、一連の使用可能な論理アドレス範囲が割り当てられた状態で示されている。このほかに通常ならば、ホストオペレーティングソフトウェアのための特定の範囲などの、特定の目的のためにアドレス範囲が割り振られ、これらのアドレス範囲は、たとえホストがデータに論理アドレスを割り当てようとするときに、これらのアドレスがまだ利用されていなくとも、データの記憶にあたって回避される。
【００３６】
ホストは同様に、後ほどホストによってファイル２が作成されるときに、論理アドレス空間１６１の中の２つの異なる連続アドレス範囲を、図７に示すように割り当てる。ファイルに連続する論理アドレスを割り当てる必要はなく、すでに他のファイルに割り振られているアドレス範囲の間にあるアドレスの断片であってもよい。この例はさらに、ホストによって作成されたもうひとつのファイル３に、ファイル１および２やその他のデータにまだ割り振られていないホストアドレス空間の別の部分が割り振られる様子を示している。この例で、ファイル１、ファイル２、およびファイル３にはいずれも、共通論理アドレス空間（論理アドレス空間１６１）の一部分が割り当てられる。
【００３７】
ホストは、ファイルアロケーションテーブル（ＦＡＴ）を保守することによってメモリ論理アドレス空間を絶えず把握し、このファイルアロケーションテーブルでは、ホストが様々なホストファイルに割り当てる論理アドレスが保守される。ＦＡＴテーブルは通常、ホストメモリと同様に不揮発性メモリに記憶され、新しいファイルが記憶されるとき、他のファイルが削除されるとき、ファイルが修正されるとき等に、ホストによって頻繁に更新される。ホストは、例えばホストファイルが削除されるときに、ＦＡＴテーブルを更新することによって削除ファイルに前に割り振られていた論理アドレスを解除して、それらの論理アドレスを別のデータファイルに使用できることを明らかにする。
【００３８】
ホストは、メモリシステムコントローラがファイルを記憶するために選択する物理位置を顧慮しない。典型的なホストは、その論理アドレス空間と、これがその各種ファイルに割り振った論理アドレスだけを認識する。他方、メモリシステムは、典型的なホスト／カードインターフェイスを通じて、データが書き込まれた論理アドレス空間部分だけを認識し、特定のホストファイルへ割り振られる論理アドレスは認識せず、ホストファイルの数すら認識しない。メモリシステムコントローラは、データの記憶や引き出しのためのホストから提供される論理アドレスを、ホストデータが記憶されるフラッシュメモリセルアレイの中の一意の物理アドレスに変換する。ブロック１６３は、メモリシステムコントローラによって保守される論理−物理アドレス変換の作業テーブルを表している。
【００３９】
メモリシステムコントローラは、システムの性能を高い水準に維持しながらメモリアレイ１６５のブロックおよびメタブロックの中でデータファイルを記憶する形にプログラムされる。この例証では４つのプレーンまたはサブアレイが使われている。データは好ましくは、各プレーンのブロックから形成されたメタブロック全体にわたってシステムが許容する最大限の並列度でプログラムされ、読み出される。通常は、メモリコントローラによって使用されるオペレーティングファームウェアおよびデータを記憶する予約ブロックとして、少なくとも１つのメタブロック１６７が割り振られる。そして、ホストオペレーティングソフトウェアやホストＦＡＴテーブル等の記憶のため、別のメタブロック１６９または複数のメタブロックを割り振ることができる。物理記憶空間のほとんどはデータファイルの記憶のために残る。しかし、メモリコントローラは、様々なファイルオブジェクトの中で受信データがホストによってどのように割り振られたかを認識しない。通常、メモリコントローラがホストとのやり取りを通じて知ることの全ては、ホストによって特定の論理アドレスに書き込まれるデータが対応する物理アドレスに記憶されるということだけであり、これはコントローラの論理−物理アドレステーブル１６３によって保守される。
【００４０】
典型的なメモリシステムにおいては、アドレス空間１６１の中でデータを記憶する必要があるのとは別に数ブロック分の記憶容量が余分に用意される。メモリの寿命の中で他のブロックが欠陥となった場合に代用される冗長ブロックとして、これらの余分なブロックを１つ以上用意することができる。当初メタブロックに割り当てられていた欠陥ブロックのための冗長ブロックを代用する等、個々のメタブロックの中に収容されるブロックの論理的グループ分けは通常、様々な理由から変更される。消去済みブロックのプールでは、メタブロック１７１などの、１つ以上の補助的ブロックが通常保守される。ホストがメモリシステムにデータを書き込む場合、コントローラはホストによって割り当てられた論理アドレスを、消去済みブロックプールにあるメタブロックの中の物理アドレスに変換する。次いで、論理アドレス空間１６１の中でデータを記憶するために使われていない他のメタブロックは消去され、以降のデータ書き込み操作のときに使用するため消去済みプールブロックとして指定される。
【００４１】
特定のホスト論理アドレスに記憶されたデータは、新規のデータによって頻繁に上書きされ、当初の記憶データが用済みになる。これに応じてメモリシステムコントローラは新規のデータを消去済みブロックに書き込み、データを論理アドレスに記憶する新しい物理ブロックを明らかにするために、それらの論理アドレスの論理−物理アドレステーブルを変更する。次いで、それらの論理アドレスのところで当初のデータを収容するブロックは消去され、新規のデータの記憶のために使用できるようになる。通常、書き込みが始まるときに消去ブロックプールの事前に消去済みのブロックに十分な記憶容量がない場合は、この消去を進行中のデータ書き込み操作が完了する前に行わなければならない。これはシステムのデータプログラミング速度を損なうおそれがある。メモリコントローラは通常、ある特定の論理アドレスにあるデータが用済みになっていることを、ホストがそれと同じ論理アドレスに新しいデータを書き込むときに初めて知る。したがって、メモリのブロックの多くは、そのような無効データを暫くの間記憶している可能性がある。
【００４２】
集積回路メモリチップの領域を効率よく運用するためにブロックとメタブロックのサイズは拡大している。その結果、個々のデータ書き込みの大部分で記憶されるデータの量はメタブロックの記憶容量に満たなく、多くの場合、ブロックの記憶容量にすら満たない。メモリシステムコントローラは普通、新規のデータを消去済みプールのメタブロックに誘導するから、メタブロックには埋まらない部分が生じる。新規のデータが別のメタブロックに記憶されたデータの更新である場合、別のメタブロックにある、新規のデータメタページの論理アドレスと連続する論理アドレスを持つ、残りの有効データメタページもまた、望ましくは論理アドレスの順序で新しいメタブロックにコピーされる。古いメタブロックは、他の有効データメタページを保持することがある。その結果、個々の特定のメタブロックのメタページのデータはいずれ用済み、無効になり、新規のデータによって置き換えられ、同じ論理アドレスが異なるメタブロックに書き込まれることになる。
【００４３】
論理アドレス空間１６１の全体にわたってデータを記憶するのに十分な物理メモリ空間を維持するため、用済みデータで占められたメモリ部分はガーベッジコレクション操作で再生できる。有効データを収容するブロックに消去済みの空間がある場合には、整理統合によって消去済みの空間を再生することもでき、その有効データをより少数のブロックに整理統合することにより消去済みブロックプールにブロックを加えることができる。こうしてブロックは、メモリ空間を再使用に向けて再生するため、ガーベッジコレクションまたは整理統合の対象となる。メタブロックの中でデータセクタをできる限り論理アドレスと同じ順序に保つことも望ましい。というのは、こうすれば連続する論理アドレスでデータをより効率的に読み出すことができる。よって、通常は、このさらなる目的のためにもデータの整理統合とガーベッジコレクションとが行われる。米国特許第６，７６３，４２４号（特許文献１７）には、不完全ブロックデータ更新を受け取るときのメモリ管理とメタブロック使用の態様がいくつか記載されている。本願ではガーベッジコレクションと整理統合を「再生」と総称し、ガーベッジコレクションまたは整理統合の一部として遂行される操作を「再生操作」と呼ぶ。
【００４４】
再生の例
ガーベッジコレクションのときには、論理アドレス範囲が連続しているかまたはほぼ連続している有効データのページが、用済みデータを収容する１つ以上のコピー元ブロックから回収され、コピー先ブロックへ再度書き込まれる。このコピー先ブロックは消去済みブロックプールの中にあるものであってよく、またはある程度の有効データを収容するものであってよい。１つ以上のコピー元ブロックから全ての有効データメタページがコピーされたら、先々の使用に向けてそれらを消去できる。図８Ａおよび８Ｂは代表的なガーベッジコレクション操作を示している。図８Ａは、ブロック１のページ０〜２にある有効データＸ、Ｘ＋１、およびＸ＋２がブロック１からブロック３へコピーされ、ブロック２のページ１から有効データＸ＋３がブロック３へコピーされる様子を示している。データＸ、Ｘ＋１、Ｘ＋２、およびＸ＋３がブロック３へコピーされた後、ブロック１および２は、直ちに消去できるブロックのプールへ加えることができ、通常ならばその後間もなく消去される。図８Ｂはこのガーベッジコレクションの後の状況を示し、ブロック１および２は消去され、ブロック３にはデータが入っている。このガーベッジコレクション操作の結果、ブロック１および２は消去済みブロックプールに加わるが、ブロック３はもはや消去済みブロックプールにないから、消去済みブロックプールは１ブロック分増加する。これを果たすため、データＸ、Ｘ＋１、Ｘ＋２、およびＸ＋３はコピーされる。この例のデータ単位はページの内容に等しく、１つ以上のデータセクタを収容できる。代わりに、データは論理的なセクタ単位になってなくともよく、その場合、ページの内容は均一サイズの個別にアドレス指定可能な単位を有さなくてよい。同様に、他の再生操作の例は、論理的にアドレス指定可能なセクタ単位になったデータ、または他の何らかの形式になったデータに当てはまる。この例で、データＸ、Ｘ＋１、Ｘ＋２、およびＸ＋３は、それらがブロック３にて順次に記憶されるようにコピーされる。これとは別の例では、データのコピー先にあたるブロックでデータは順次に記憶されない。
【００４５】
図９Ａおよび９Ｂはもうひとつのガーベッジコレクションの例を示している。ここでは、ページ０および２に用済みデータを収容するブロック２から、有効データだけを収容するブロック１にかけて有効データＹがコピーされる。Ｙがコピーされた後、ブロック２には用済みデータだけが残るから、ブロック２は消去される。図９Ｂはガーベッジコレクションの後の状況を示し、データＹはブロック１の予め消去されていたブロック１のページ３に記憶され、ブロック２は消去されている。よって、この例では、消去済みブロックプールのブロックは必要とされない。データＹがメモリアレイの１ページを満たすデータ量なら、この操作でただひとつのページがコピーされ、１つのブロックが消去され、結果的に１つの追加の消去ブロックが消去済みブロックプールに加わる。この例で、データＹとデータＸ、Ｘ＋１、Ｘ＋２に論理的な関係はない。これ以外の例では、データを、論理的に関係するデータを収容するブロックへコピーできる。
【００４６】
データ圧縮はガーベッジコレクションの特定の形であり、通常ならばブロックから全ての有効データページを読み出し、それらを新しいブロックへ書き込み、その過程で無効データを含むページは無視する。また、有効データを含むページは好ましくは、そこに記憶されるデータの論理アドレスの順序に一致する物理アドレス順で配置される。非順次（無秩序）形式でデータを記憶するブロックにデータ圧縮を行うので、圧縮後にデータを順次形式で記憶することもできる。用済みデータを収容するページは新しいブロックへコピーされないから、新しいブロックに占めるページ数は古いブロックに占めるページ数を下回る。次いで、古いブロックは消去され、新規データの記憶のために使用できるようになる。この整理統合によって得られる追加のページ容量は、他のデータの記憶に役立てることができる。
【００４７】
図１０Ａおよび１０Ｂはデータ圧縮の一例を示している。図１０Ａはデータで満たされたブロック１を示し、データのいくつかは用済みであり、いくつかは有効である。ブロック１に記憶されるデータは順番に並んでいない。ブロック１は、米国特許出願第１０／７５０，１５５号（特許文献１８）で説明されているものなど、一部のメモリ設計で使われている無秩序(chaotic) 更新ブロックの典型である。ブロック１のページ２および３は有効データのコピーＺ＋１およびＺ＋２を収容し、ページ０および１は用済みデータのコピーを収容する。無秩序更新ブロックが限られた論理アドレス範囲にマッピングされる場合、ブロックは満杯になると圧縮されるので、そのブロックの論理アドレス範囲の中でさらなる更新が可能となる。図１０Ｂは圧縮後の状況を示している。ブロック１のページ２および３の有効データＺ＋１およびＺ＋２はブロック２へコピーされ、順次に記憶されるように配置される。データを順次に記憶することの一利点として、異なるセクタ位置のインデックスを保守する必要はなく、このようなインデックスの保守にともなうオーバーヘッドは抑えられる。ブロック２は、追加データの記憶に使用できる消去済みの空間をページ２および３に収容する。有効データが全てブロック２へコピーされ、消去された後のブロック１が図に示されている。圧縮の結果、消去済みブロックプールの消去済みブロック数に変わりはないが、前にはなかった空間がブロック２にあり、データの書き込みに使用できる。この圧縮を達成するために２つのページからデータがコピーされる。
【００４８】
データの記憶空間を用意するためにデータの整理統合を使用できる。一部のメモリシステムでは、メモリの消去済みの空間が、有効データをも収容するブロックの中で細かく分散してすべては使えない場合がある。受信する新規のデータが、データをプログラムするための十分な空間があるブロックの記憶データと論理的な関係を持たない場合には、部分的に満たされたブロックではなく消去済みブロックにこれをプログラムするのが望ましい。記憶済みのデータと論理的な関係を持たないこのような新規データは通常、消去済みブロックプールにある消去済みブロックに記憶される。ある程度の時間が経つと、論理的に無関係な新規のデータには使用できない消去済みの空間を有する複数のブロックが発生することがある。これは空間の浪費を招く。このような部分的に書き込まれたブロックの有効データは併合できる。例えば、消去済みの空間を持つ２つのブロックの有効データを併合できるので、併合された消去済みの空間から消去済みブロックが形成される。
【００４９】
図１１Ａはページ０〜２にデータＸ、Ｘ＋１、およびＸ＋２を収容するブロック１を示し、ブロック２はページ０にデータＹを収容する。データＹは、データＸ、Ｘ＋１、およびＸ＋２に対し論理的な関係を持たない。ブロック１のデータＸ＋２に連続する、またはブロック２のデータＹに連続する、さらなるデータが受信されるか否かを確かめるため、ブロック１および２は、暫くの間消去済みの空間をある状態に保つことができる。さらなる連続するデータが受信されずに何らかのしきい値時間が過ぎると、または他の何らかの条件が満たされると、整理統合に向けてブロック１および２をマークできる。整理統合にまわせるブロックのリストを保守でき、それらのブロックに収容された有効データの量に従ってリストからブロックを選択できるので、それらの有効データが併合されることにより、１ブロックが満たされるかまたは満たされた状態に近づく。図１１Ｂは、整理統合後のブロック１および２を示している。データＹはブロック１へコピーされ、ブロック２は消去されている。この整理統合では、消去済みブロックプールへブロックを加えるために、１ページ分のデータ（ブロック２のページ０にあるデータＹ）をコピーするだけでよい。通常はコピー数を抑える形で整理統合を行うのが望ましいから、データＸ、Ｘ＋１、およびＸ＋２をブロック２へコピーする代わりに、データＹをブロック１にコピーする。
【００５０】
データの整理統合とガーベッジコレクションには時間がかかり、データの整理統合またはガーベッジコレクションをホストからのコマンドを実行する前に行う必要がある場合は特に、メモリシステムの性能に影響する。メモリシステムコントローラは普通、このような操作を可能な限りバックグラウンドで行うようスケジュールするが、これらの操作を遂行する必要から、コントローラは、このような操作が完了するまではビジー状態信号をホストに提供しなければならない。例えば、ホストがメモリに書き込もうとするデータの全てを記憶するにあたって十分な事前に消去済みのメタブロックが消去済みブロックプールにない場合には、ホストコマンドの実行が延期されるから、まずはデータの整理統合またはガーベッジコレクションで１つ以上の有効データのメタブロックを片づける必要があり、その後にそれらのメタブロックを消去できる。したがって、このような混乱を最小限に抑えるためにメモリ制御の管理に注意を払わなければならない。以下の米国特許出願では、このような手法が数多く説明されている。これらの米国特許出願とは、２００３年１２月３０日に出願された米国特許出願第１０／７４９，８３１号「大きい消去ブロックを有する不揮発性メモリシステムの管理(Management of Non-Volatile Memory Systems Having Large Erase Blocks) 」（特許文献１９）、２００３年１２月３０日に出願された米国特許出願第１０／７５０，１５５号「ブロック管理システムを伴う不揮発性メモリおよび方法(Non-Volatile Memory and Method with Block Management System) 」（特許文献１８）、２００４年８月１３日に出願された米国特許出願第１０／９１７，８８８号「メモリプレーンアラインメントを伴う不揮発性メモリおよび方法(Non-Volatile Memory and Method with Memory Planes Alignment) 」（特許文献２０）、２００４年８月１３日に出願された米国特許出願第１０／９１７，８６７号（特許文献２１）、２００４年８月１３日に出願された米国特許出願第１０／９１７，８８９号「段階的プログラム障害処理を伴う不揮発性メモリおよび方法(Non-Volatile Memory and Method with Phased Program Failure Handling) 」（特許文献２２）、および２００４年８月１３日に出願された米国特許出願第１０／９１７，７２５号「制御データ管理を伴う不揮発性メモリおよび方法(Non-Volatile Memory and Method with Control Data Management) 」（特許文献２３）である。
【００５１】
メモリコントローラはまた、ホストによって不揮発性メモリに記憶されるＦＡＴテーブルのデータをメモリシステムの効率的な動作に役立てることもできる。例えば、論理アドレスの解除によりホストによってデータが用済みと識別されたことを知るのに役立てる。メモリコントローラは、通常ならばホストがその論理アドレスに新規データを書き込むことで、データが用済みと識別されたことを事前に知ることができ、このような無効データを収容するブロックの消去スケジュールを立てることができる。これは、２００４年７月２１日に出願された米国特許出願第１０／８９７，０４９号「不揮発性メモリシステムでデータを保守する方法および装置(Method and Apparatus for Maintaining Data on Non-Volatile Memory Systems)」（特許文献２４）で説明されている。この他の手法として、ホストがメモリに新規のデータを書き込むパターンを監視することにより、所与の書き込み操作が単一ファイルか否かを、または複数のファイルである場合にはファイル間のどこに境界があるかを推定する。２００４年１２月２３日に出願された米国特許出願第１１／０２２，３６９号「最適逐次クラスタ管理のためのＦＡＴ解析(FAT Analysis for Optimized Sequential Cluster Management)」（特許文献２５）では、この種の手法の使用が説明されている。
【００５２】
メモリシステムを効率よく操作するには、ホストによって個々のファイルのデータに割り当てられる論理アドレスについて、コントローラができるだけ多くのことを知ることが望ましい。かくしてデータファイルは、ファイルの境界が分からなければ多数のメタブロックに散在するところを、コントローラによって１つのメタブロックまたは１グループのメタブロックの中で、記憶することができる。その結果、データの整理統合およびガーベッジコレクション操作の回数と複雑さは抑えられる。結果的にメモリシステムの性能は向上する。しかし、前述したように、ホスト／メモリインターフェイスが論理アドレス空間１６１（図７）を含む場合、メモリコントローラがホストデータファイル構造について多くを知ることは困難である。
【００５３】
論理アドレス本位インターフェイスを伴う再生
図１２は、図７のホスト／メモリインターフェイスの、ファイルが削除されるときの動作を示している。ホストシステムで実行するアプリケーション２０１は、メモリにてファイル２を削除するべきと判断する。例えば、ＰＣで実行するアプリケーション２０１は、ユーザ入力に基づき、または他の理由により、ファイル２がもはや必要でないと判断する。その結果、アプリケーションはファイル２を削除する命令をホストのドライバ部へ送信する。この場合は、メモリに記憶される各ファイルに使われる論理アドレスを指示するためにＦＡＴを用いてデータ記憶が管理される。例えば、２つの別々の論理アドレス範囲２０３および２０５を有するものとしてファイル２が図に示されている。各々の論理アドレス範囲２０３および２０５は、複数の連続するクラスタを含むことがある。ファイル２は２つの別々の論理アドレス範囲２０３および２０５を有するものとして図に示されているが、ファイルが多数の論理アドレス範囲に断片化され、介在する論理アドレスに他のファイルがマッピングされることは多々ある。ファイル２を削除する命令の結果としてＦＡＴは修正されるので、ファイル２に割り振られていた論理アドレス範囲２０３および２０５のクラスタは解除され、ホストによる以降の割り振りに使用できるようになる。しかし、通常、ホストのＦＡＴにおけるこれらのクラスタの解除にともない、メモリコントローラによって使用されるメモリ管理構造は変更されない。論理−物理アドレス翻訳１６３はメモリコントローラによって保守されるテーブルを含み、テーブルには、データクラスタを記憶する物理アドレスが記録される。アドレス範囲２０３および２０５は物理アドレス範囲２０９および２１１へそれぞれマッピングされる。この記録は、アプリケーションからの「ファイル２削除」コマンドの結果として変更されない。よって、テーブルは、論理アドレス範囲２０３および２０５の項目を維持する。また、対応する物理位置２０９および２０７はデータで埋められた状態を保つが、このデータはアプリケーションによってもはや必要とされない。メモリコントローラは通常、論理アドレス範囲２０３および２０５の論理−物理アドレス翻訳を、これらのアドレスを持つ新規のデータがホストによって送信されるときに限り、変更する。メモリコントローラはクラスタの解除を知らないから、通常ならば各論理アドレスにつき少なくとも１つの項目は維持し、それ故、論理アドレス範囲全体を占拠されたものとみなす。通常、メモリの論理アドレス範囲より多くの物理空間があるから、たとえ見かけ上の有効なデータで論理アドレス範囲全体が満たされていても、消去済みの空間または用済みデータで占められた空間は余分にある。
【００５４】
図１３は、メモリにホストデータが書き込まれるにつれてメモリアレイの物理空間がどのように管理されるかを例示するものである。物理空間は有効データでほぼ満たされたものとして扱われ、これは全論理アドレス範囲に相当する。メモリに残された空間は、消去済みの空間および用済みデータで占められた空間とからなる。メモリアレイへホストデータがプログラムされるにつれ、用済みデータで占められる空間の量は図に示されたように増加する。というのは、ある特定の論理アドレスとともに受信された新規セクタは新しい物理位置に記憶され、論理−物理アドレス翻訳１６３に記録されるからである。これは、同じ論理アドレスを持つ記憶済みセクタに取って代わる。次いで、記憶済みセクタは用済みとなり、記憶済みセクタの物理位置は用済みデータを収容するものとして記録される。用済みデータの量が増えるにつれて消去済みの空間は減る。ある時点で、ホストデータのプログラミングを続行するのに十分な消去済みの空間はなくなる。図１３は、時点ｔ１でメモリに消去済みの空間が残っていない状態を示している。よって、時点ｔ１で、メモリアレイにはそれ以上ホストデータをプログラムできない。これとは別の例では、メモリアレイに残る消去済みの空間がある程度の最小量になった時点でプログラミングが停止する。時点ｔ１では、用済みデータで占められた空間を再生するためにガーベッジコレクション操作が始まる。この操作は、時点ｔ２で全ての用済みの空間が再生されて消去済みの空間になったときに終了する。これとは別の例では、全ての可能な空間が再生される前に、例えばホストデータのプログラミングを続行するのに十分な空間が再生された時点で、ガーベッジコレクション操作が終了する。時点ｔ２でホストデータのプログラミングは再び始まり、時点ｔ３ではホストデータの書き込みが止まり、もう一度ガーベッジコレクション操作が始まる。図１３に示す視点は、メモリコントローラの視点から見たメモリにおけるデータの状態であって、必ずしもホストの視点と同じではない。メモリコントローラが論理空間を満杯とみなしても、ホストが同じ空間を大方空いているとみなすことはある。
【００５５】
図１３に示すようにメモリを管理することの欠点として、時点ｔ１およびｔ２の間にホストにとってメモリは使用不能となる。したがって、ｔ１からｔ２までの期間中、ホストデータは書き込まれない。多数のページをコピーしなければならないため、ｔ１からｔ２までの時間はかなりの長さになることがある。場合によってはこの時間があまりに長いため、ホストはタイムアウトとなる。つまりホストにはデータの一部分を書き込むにあたって最大時間があり、消去済みの空間が不足しているときに新規のデータの書き込みを可能にするために必要とされるガーベッジコレクションがこの最大時間を超過することがある。
【００５６】
図１４は、ホストデータを書き込むにあたって十分な消去済みの空間が残っている状態でガーベッジコレクションを遂行する、代替のメモリ管理方法を示している。この例で、ガーベッジコレクションは、これが絶対に必要となる前に遂行される。ガーベッジコレクションは、米国特許出願第１１／０４０，３２５号（特許文献２６）で説明されているように、ホストデータの書き込みの合間に交互に行うことができる。消去済みブロック数がある程度のしきい値に達することでこのような交互のガーベッジコレクションを開始するためのトリガとしてよい。交互のガーベッジコレクション操作によってメモリへのホストデータプログラミングは減速する。しかし、このガーベッジコレクション操作により、ホストデータが書き込み不能となる程度まで消去済みブロック数が減少するのを防ぐことができる。よって、ホストがタイムアウトしたりプログラミングを中断したりするリスクは低下または解消する。プログラミング速度が不必要に損なわれることがないよう、十分な消去済みブロックが使用可能となった時点で交互のガーベッジコレクションを止めることができる。よって、交互のガーベッジコレクションがオン／オフに切り替わるにつれ、または交互のガーベッジコレクションのレートが変化するにつれ、消去済みの空間の量は変化する。
【００５７】
図１５は、ホストデータの書き込みと交互に行われるガーベッジコレクションのタイミング図を示している。Ｎ３ページ分のホストデータが書き込まれた後、ガーベッジコレクション操作の一部としてＮ４ページ分のデータが書き込まれるか、またはｘ個のブロックが消去される。このサイクルは繰り返される。こうしてガーベッジコレクションにともなうオーバーヘッドは、一度に集中してタイムアウトを招く代わりに、時間の経過に沿って分散される。整理統合、他の再生操作、または他のハウスキーピング操作もまたこのやり方で交互に行うことができる。この文脈におけるハウスキーピング操作は、メモリコントローラがメモリアレイの中でデータを保守するために着手する操作を指す。このような操作には損耗レベル化操作とデータスクラブ操作とが含まれることがある。
【００５８】
ファイル本位インターフェイスを伴う再生
一部のメモリインターフェイスでは、より効率的な再生を可能にするため、メモリコントローラがさらなる情報を入手できる。いずれも２００５年２月１６日に出願された米国特許出願第１１／０６０，２４９号「フラッシュメモリにおける直接データファイル記憶(Direct Data File Storage in Flash Memories)」（特許文献２７）、米国特許出願第１１／０６０，１７４号「フラッシュメモリにおける直接ファイルデータプログラミングおよび削除(Direct File Data Programming and Deletion in Flash Memories) 」（特許文献２８）、米国特許出願第１１／０６０，２４８号「フラッシュメモリにおける直接データファイル記憶の実施手法(Direct Data File Storage Implementation Techniques in Flash Memories)」（特許文献２９）、ならびに２００５年８月３日に出願された仮特許出願第６０／７０５，３８８号「フラッシュメモリにおける直接データファイル記憶(Direct Data File Storage in Flash Memories)」（特許文献３０）では、このようなメモリインターフェイスの例が説明されている。ファイルは、メモリのために規定された論理アドレス範囲の論理アドレスへマッピングされずにホストからメモリへ送信される。このようなメモリは、ファイル本位インターフェイスを有するとみなすことができる。ファイルは主に、メモリの中でそのファイルにとって専用のメタブロックに記憶される。ファイルの記憶位置はファイル識別子とオフセットとを用いて記録される。図１６は、このような直接データファイル記憶を使用するメモリインターフェイスを示し、ファイルはメモリへ送信され、メモリではファイル／オフセット−物理アドレス翻訳１７３が行われる。このようなメモリは断片化を抑える形でファイルを保守でき、かくしてほとんどのメタブロックはただひとつのファイルのデータを収容する。このようなメモリのメモリコントローラは、記憶されるデータについてより多くの情報を得る。具体的に、データをファイルによって識別するメモリコントローラは、ファイル本位のやり方でファイルを記憶できる。
【００５９】
図１７は、図１６のインターフェイスを使用するメモリシステムに記憶されるファイルをアプリケーションが削除するときに何が起こるかを示している。アプリケーション２２５は、ファイル２を削除すべきと指示するコマンドを送信する。このコマンドはホストからメモリへ送信され、その際、論理セクタアドレスによってファイルを識別する必要はない。ホストはファイル識別子を用いてファイルを識別できる。ファイル２はブロックａ、ｂ、およびｃへマッピングされ、そのマッピングはファイル／オフセット−物理翻訳１７３によって記録されている。このコマンドにより、ファイル／オフセット−物理翻訳１７３はファイル２の削除を反映するべく更新される。その結果、ブロックａ、ｂ、およびｃは新規のデータのために再使用できるようにするためのガーベッジコレクションのスケジュールに組み入れられる。よって、論理セクタアドレスを使用するメモリの場合のように代わりのデータがメモリアレイに記憶されるまで待つ代わりに、アプリケーションによるファイルの削除によりガーベッジコレクションに着手できる。この場合、メモリコントローラは全論理アドレス空間を見るとは限らない。代わりに、メモリコントローラは、メモリに記憶されるデータの有効性について正確な情報を得る。ある時点で、メモリコントローラは、メモリアレイの中で有効データがほとんどないかまたは皆無と認識することがある。それとは別の時点で、メモリコントローラは、メモリアレイが有効データで満杯かまたはほぼ満杯と認識することもある。メモリアレイにおける有効および用済みデータに関するこのような情報により、再生はこれまで以上に効率的に管理できる。
【００６０】
図１８は、直接データファイルインターフェイスを使用するメモリで動作するメモリ再生システムの一例を示している。図１８は、ホストデータの書き込みにともなうメモリアレイの状態を示している。図に示す視点はコントローラの視点を表し、この場合の視点はホストの視点に一致する。ここで、有効データを収容するメモリ部分が比較的小さいことが分かり、メモリの残りの部分は消去済みブロックと再生可能な空間とからなる。再生可能な空間は、用済みデータで占められた空間の他に、消去済みブロックの中にない消去済みの空間からなる。メモリによってはそのように散らばった消去済みの空間を追加データの記憶に使用するものもあるが、このような消去済みの空間を消去済みブロックに整理統合した上でデータの記憶に使用するシステムもある。図１８は、時点ｔ５まで有効データの量が着実に増加する様子を示している。この間、再生操作は遂行されないから、再生可能な空間の量は一定に保たれる。この期間中には消去済みブロックに有効データが書き込まれるにつれて消去済みブロックの空間が減少する。時点ｔ５で１つ以上のファイルが削除され、メモリアレイに記憶されるそれらのファイルのデータは用済みになる。したがって、有効データで占められた空間の量は減少し、再生可能な空間の量は相応に増加する。次いで、時点ｔ５からｔ６にかけてさらなるデータがメモリアレイにプログラムされ、有効データの量は再び増加し、消去済みブロックの空間は減少する。メモリは時点ｔ６で、さらなるデータのプログラミングに再生操作が必要とみなされる地点にまで到達する。この地点は、消去済みブロックの空間がある程度のしきい値に達するときに到達してよく、または他の何らかの基準に依拠してよい。時点ｔ６からｔ７にかけて、再生可能な空間の一部を消去済みブロックに変換するために再生操作が遂行される。これらの再生操作のときにはメモリアレイに新規のデータが書き込まれないから、有効データで占められる空間の量は一定に保たれる。時点ｔ７で再生操作は終わり、新規のデータのプログラミングが再び始まる。このシステムは、再生操作を必要なときにだけ遂行する前述したシステムに類似する。このようなシステムの一欠点として、ｔ６からｔ７までの時間が制限時間を超過するので、ホストが書き込み操作を中断するおそれがある。再生操作を必要なときにだけ遂行する代わりに、これが必要となる前に、ホストの書き込み操作に大きく影響しない形で、遂行することは可能である。直接データファイル記憶システムを使用するメモリなど、メモリアレイに記憶される用済みデータの量についてより充実した情報を得るメモリでは特に、ホストの書き込み操作にほとんど影響しないように、再生操作のスケジュールを巧みに組むことは可能である。
【００６１】
図１９は、メモリアレイの中で空間をいかに管理できるかの模範を示している。有効データは、メモリアレイが有効データで満たされるまで一定の割合で増加する。同時に、再生操作によって再生可能な空間が消去済みブロックに変換されるにつれて再生可能な空間は減少する。このようにしてメモリアレイの空間を管理するシステムはスケジュールに従って再生操作を遂行するので、個々の再生操作が個々のホスト書き込み操作の合間に分散されることにより、一定速度のホストデータ書き込みが提供される。これを果たすために、コントローラは、メモリアレイを埋め尽くすのにこのような追加の有効データ量を推定でき、さらにメモリが満杯になる前に必要とされる再生操作の数を推定できる。次いで、残りの時間にわたって再生操作を均一に分散するレートで再生操作のスケジュールを組む。これにより、メモリが時期尚早に消去済みブロックを使い果たすことはなくなる。再生操作は、これまでどおりメモリアレイに新規のデータをプログラムする操作の合間にはさみ込むことができる。再生操作は、あるブロックから別のブロックにかけてデータの一部をコピーすることと、有効データを収容していないブロックを消去することとを含む。空間を再生するレートは交互比によって、すなわちホスト書き込み操作数に対する再生操作数の比によって、求めることができる。場合によっては、消去操作より遥かに多くのコピー操作があるため、この比の計算にあたってブロック消去操作が無視される。この場合の比は、新規のデータのための書き込み操作に対する再生のための書き込み操作の比となる。
【００６２】
図２０は、このようなシステムにおいて時点ｔ１０に１つ以上のファイルが削除されるときに何が起こるかを示している。時点ｔ１０までは、有効データで占められた空間が増加し、再生可能な空間と消去済みブロックの空間はいずれも、有効データ量の増加にともない減少する。破線で示されているように、再生可能な空間は、メモリが満杯になるときに全ての再生可能な空間の再生を保証するレートで再生される。時点ｔ１０では１つ以上のファイルが削除されるので、かつて有効データで占められていた空間は用済みデータで占められ、それ故、再生可能な空間となる。ｔ１０の後にメモリアレイはさらなる有効データを記憶できるが、これを果たすには追加の再生操作を要する。したがって、コントローラは、再生操作を遂行すべきレートを再計算する。これは、メモリアレイに記憶されるデータの状態変化に対応する適応スケジューリングシステムを提供する。その結果、再生レートは修正され、さらに再生レートは有効データをプログラムするレートに影響するから、有効データをプログラムするレートも変更される。適応再生スケジューリングシステムは、周期的に、さもなくばホストコマンドによってトリガされるとき、または他の何らかのイベントによってトリガされるときに、交互比を再計算できる。
【００６３】
図２１は、３通りの再生モードがあるメモリ管理のもうひとつの例を示している。第１のモードでは、ｔ１２より前のホストデータ書き込み中に再生操作は遂行されない。有効データの量は、消去済みブロックの空間の量が減少するのと同じ割合で増加する。この間、用済みとなるデータはないから、再生可能な空間の量はほぼ同じに保たれる。いくつかのブロックは、消去され使われずにいるブロックの部分を残しながら有効データを記憶することがある。これらの消去済み部分は、消去済みの空間を１つ以上の消去済みブロックに統合する形に有効データを整理統合することによって再生できる。よって、このモードでは、たとえ用済みになるデータがなくとも再生可能な空間がある程度増加することがある。いくつかの例では、再生レートが決してゼロにならないようにするため、この第１のモードで最小再生レートを保守できる。再生レートは低い、またはゼロのため、この第１のモードでホストデータをプログラムするレートは高い。
【００６４】
第２のモードでは、ｔ１２からｔ１３にかけて、図１９および２０に示された適応スケジュールに従って再生操作を遂行する。この場合、再生レートが計算され、新規のデータのプログラミングの合間に再生操作がはさみ込まれるので、メモリが満たされるにつれて再生可能な空間は減少する。この交互の再生操作のため、第２のモードで新規のデータをプログラムするレートは第１のモードより若干低い。第２のモードは、メモリ内の有効データがしきい値を超過するときに、消去済みブロックの空間がしきい値を下回るときに、または他の何らかの基準に基づき、開始できる。
【００６５】
第３のモードでは、新規のデータを書き込むことが可能な消去済みブロックを用意するため、ｔ１３の後に、最大レートで再生操作が遂行される。再生操作のレートの増加によってホストデータをプログラムするレートは減少する。第３のモードは、有効データの量がしきい値を超過するときに、消去済みブロックの空間量がしきい値を下回るときに、または他の何らかの基準に基づき、開始できる。
【００６６】
適応スケジューリング−詳細例
これより、ホストデータをプログラムするレートを一定に保ちながら適応スケジューリングシステムに従って再生操作を遂行する不揮発性メモリの管理を、直接データファイル記憶インターフェイスを持つメモリの例を用いて詳しく説明する。この例では、メモリコントローラによって監視されるパラメータから適切な交互比を計算する方法を明らかにする。図２２には、このようなメモリで時間の経過にともなうメモリ空間のページの様々な状態が詳しく示されている。メモリアレイのページまたはブロックで起こり得る数々の遷移も示されている。メモリアレイはブロックからなり、各ブロックは複数のページを収容する。この例では用語「ブロック」および「ページ」を使用するが、この例は、消去とプログラミングの単位としてそれぞれメタブロックとメタページとを有するメモリにも通用する。ブロックは、３通りの状態のいずれかひとつとして随時扱われ、これらのブロックの中にあるページは、５つの状態のいずれかひとつとして扱われる。図２２には、時間の経過にともないこれらの５つの状態の各々をとるページの番号が示されている。
データ記憶にあたってのブロック分類
ファイルブロック：ファイルブロックはホストデータで満たされ、用済みデータを収容しない。実際には、最低限のプログラムされていないページを、例えば２ページを、ファイルブロックに収容できる場合がある。
不完全ブロック：不完全ブロックはある程度のホストデータを収容し、またある程度の消去済みページおよび／または用済みページを収容する。
消去済みブロック：消去済みブロックプールの中にある完全に消去されたブロック。
【００６７】
これらの３つのカテゴリに加え、いくつかのブロックは用済みデータで満たされることがある。例えば、ホストによって削除または消去されるファイルが指示された直後に、そのファイルを収容するブロックがガーベッジコレクションのスケジュールに組み入れられる。これらのブロックのいくつかはデータで満たされている。しかし、このようなブロックは多大なリソースを要することなく速やかに消去されるから、この計算の目的では考慮されない。
【００６８】
データ記憶にあたってのページ分類
ページおよび同一ブロック内の他のページの状態に従ってメモリアレイのページを分類するための用語を以下の一覧に示す。図２２には各々の状態をとるページの番号が示されている。
ファイルブロックページ（ＦＢＰ）：これは、ファイルブロックに収容された有効ホストデータページ数である。
データページ（ＤＰ）：これは、不完全ブロックに収容された有効ホストデータページ数である。
用済みページ（ＯＰ）：これは、不完全ブロックに収容された用済みホストデータページ数である。
消去済みページ（ＥＰ）：これは、不完全ブロックに収容された消去済みページ数である。用済みページ（ＯＰ）および消去済みページ（ＥＰ）とによってメモリアレイに再生可能な空間が形成されると考えることができる。
消去済みブロックページ（ＥＢＰ）：これは、消去済みブロックに収容された消去済みページ数である。
用済みデータだけを収容するブロックの中に存在するページは、長時間にわたって存在せず、それらの再生の要するガーベッジコレクションの点で多大な負担をかけないから、この一覧で無視されている。
【００６９】
前に記載された５つの、相互排他的なカテゴリに加えて、メモリアレイ内のページに関係する２つの数として総ページ数と総データページ数とがある。これらの用語は前述したカテゴリに該当するページを表す。これらの数はメモリコントローラによって追跡される。
総ページ（ＴＰ）：これは、データ記憶に使用できるデバイス内の総ページ数であり、デバイスのデータ容量に相当する。
総データページ（ＴＤＰ）：これは、任意の時点で有効ホストデータを収容するページ数である。データページはファイルブロックまたは不完全ブロックのいずれかの中にある。
データコピー操作の段階：データコピー操作には２つの段階があるが、以下の適応スケジューリングの分析にあたってそれらを別々に考慮する必要はない。
（１）ガーベッジコレクション段階：デバイスに用済みページが存在し、それらをなくすためにガーベッジコレクション操作が遂行される。
（２）ブロック整理統合段階：不完全ブロックの中で拘束されている消去済み容量を回復させるためにブロック整理統合操作が遂行される。
【００７０】
ホストが有効データとして同じファイルにデータを書き込む場合、整理統合がなくとも有効な空間と消去済みの空間だけを収容するブロックを引き続き使用できるから、通常は、ガーベッジコレクションを先に行い、ブロック整理統合はあとまわしにしたほうがよい。ファイルが閉じられている場所でも、ファイルは再び開き、データはプログラムブロックに書き込まれる。用済みデータを含むブロックを再び使用するには、その前にガーベッジコレクションを行わなければならないから、このようなガーベッジコレクションをあとまわしにすることに利点はない。
【００７１】
デバイス操作に起因するページ遷移
図２２には、以下のページ遷移が示されている。
用済みページから消去済みブロックページ（１）：用済みページを収容するブロックから有効データページがコピーされた後に、このブロックが消去されるときに起こる。
データページからデータページ（２）：コピー元ブロックからコピー先ブロックへコピーされるデータページに関係する。
消去済みページから消去済みブロックページ（３）：コピー元ブロックからコピー先ブロックへ全ての有効データページがコピーされた後にコピー元ブロックが消去されると、コピー先ブロックにプログラムされていた消去済みページは事実上、コピー元ブロック内の消去済みブロックページとなる。
消去済みブロックページから消去済みページ（４）：コピー元ブロックから消去済みブロックへ有効データページがコピーされた後、消去済みブロックの中の残りの消去済みブロックページは消去済みページになる。
データページからファイルブロックページ（５）：不完全ブロックの中にある有効データページは、ブロックが満杯になるとファイルブロックページになる。
消去済みブロックページからファイルブロックページ（６）：消去済みブロックページは、ブロックがホストによって書き込まれるデータで満たされるとファイルブロックページになる。
【００７２】
図２３は、メモリアレイのブロックでこれらの遷移がどのように起こるかを例示するものである。図２３Ａはメモリアレイの中の４つのブロックＡ〜Ｄを示し、データの量と状態はブロックによって異なる。ブロックＡのページ０〜３は有効データ（網掛けにより指示）を各々収容するから、ブロックＡは有効データで満たされている。したがって、ブロックＡはファイルブロックとみなされる。ブロックＢは、有効データ（データＸ）を収容するページ０と、用済みデータ（斜線により指示）を収容するページ１および２と、消去済み状態にあるページ３とを含む。ブロックＢは、ある程度の有効データを収容するが、有効データで満たされているわけではないから、不完全ブロックとみなされる。ブロックＣは、有効データで満たされたページ０および１と、消去済み状態にあるページ２および３とを有する。ブロックＣもまた、ある程度の有効データを収容するが、有効データで満たされているわけではないから、不完全ブロックとみなされる。ブロックＤは完全に消去され、データを収容していないから、消去済みブロックとみなされる。
【００７３】
図２３ＡのブロックＡは唯一のファイルブロックだから、ファイルブロックページ（ＦＢＰ）数はブロックＡにあるページ数に、すなわち４に等しい。データページ（ＤＰ）数はブロックＢおよびＣにある有効ページ数であり、したがって３に等しい。用済みページ（ＯＰ）数はブロックＢおよびＣにて用済みデータで満たされているページ数であり、２に等しい。消去済みページ（ＥＰ）数はブロックＢおよびＣで消去済み状態にあるページ数であり、３に等しい。ブロックＤは唯一の消去済みブロックだから、消去済みブロックページ（ＥＢＰ）数はブロックＤにあるページ数であり、４に等しい。この例で、総ページ（ＴＰ）は要するに全ブロックの総ページ数であり、ここでは１６ページである。総データページ（ＴＤＰ）は、有効データを収容するページ数であり、ここでは７ページである。
【００７４】
図２３Ａは、ブロックＢのページ０からブロックＣのページ２にかけて有効データＸがコピーされる様子を示している。これは、ＤＰからＤＰに至るタイプ（２）遷移の一例である。その後、図２３ＢのブロックＢには用済みデータだけが残るから、ブロックＢはこの時点で消去のキューに入れることができる。図２３ＢのブロックＤには新規の有効データＹが書き込まれ、かくしてブロックＤのページ０はデータページになる。ブロックＤのページ１〜３は、タイプ（４）遷移で消去済みブロックページから消去済みページに変化する。図２３Ｃは、ブロックＢが消去された後のブロックＡ〜Ｄを示している。ページ０〜２は、タイプ（１）遷移で用済みページから消去済みブロックページに変わる。ブロックＢのページ３は、不完全ブロックの中の消去済みページから、図２３Ｃの消去済みブロックの中の消去済みブロックページに変わる。これはタイプ（３）遷移の一例である。図２３Ｃではまた、ブロックＤのページ０からブロックＣのページ３へ有効データＹがコピーされ、その結果、ブロックＣは図２３Ｄに示すように有効データで一杯になる。よって、図２３ＤのブロックＣはファイルブロックとみなされる。かつてデータページだったブロックＣのページ０〜２は、ブロックＣがタイプ（５）遷移でファイルブロックになるときにファイルブロックページになる。図２３Ｄではまた、ブロックＢに有効データがプログラムされてブロックＢを満たす。ブロックＢのページは、タイプ（６）遷移で消去済みブロックページからファイルブロックページに変化する。
【００７５】
この適応スケジューリング方式の一目的は、一定レートのホストデータプログラミングを提供するため、ホスト書き込み操作と再生操作とを交互に行うことにある。よって、総データページ（ＴＤＰ）が増加する割合は、総データページ（ＴＤＰ）が総ページ（ＴＰ）に等しくなるまで、すなわちメモリが満杯になるまで一定である。この例では、様々なパラメータの計算にあたってある程度の概算を行う。しかし、他の例ではこれとは別の仮定に基づくことができ、あるいはこれとは別のやり方で計算を行うことができる。この計算では、コピーされるデータのデータグループ構造を無視する。したがって、データグループはコピーのときに分割されることがある。コピー元ブロックからデータページをコピーしてコピー先ブロックの使用可能な消去済みページが満たされたら、残りのデータページを別のコピー先ブロックにコピーできる。
【００７６】
コントローラは、再生操作と新規のデータ書き込みとの適切な交互比の計算にあたって使用される特定のパラメータ値を保守する。本願明細書で紹介する計算では計算の基本データ単位としてページを使用するが、ブロックやメタブロックなどの、別の単位を使用することもできる。交互比は、コントローラによって保守されるパラメータ値だけを、すなわち総ページ（ＴＰ）、総データページ（ＴＤＰ）、不完全ブロックページ（ＰＢＰ）、および消去済みブロックページ（ＥＢＰ）だけを用いて以下に示すように計算できる。
【００７７】
（ホストデータ）：（コピーデータ）交互比の導出
デバイスが満杯になる前にデバイスに書き込むことができる追加のホストデータページ数は以下の式によって求められる。
書き込まれるホストデータ＝ＴＰ−ＴＤＰ
【００７８】
消去済みページ（ＥＰ）およびデータページ（ＤＰ）の数もまた、コントローラによって監視されるパラメータを用いて以下のように書くことができる。
消去済みページ（ＥＰ）＝ＴＰ−ＴＤＰ−ＯＰ−ＥＢＰ
データページ（ＤＰ）＝ＰＢＰ−ＥＰ−ＯＰ
＝ＰＢＰ−（ＴＰ−ＴＤＰ−ＯＰ−ＥＢＰ）−ＯＰ
＝ＴＤＰ＋ＰＢＰ＋ＥＢＰ−ＴＰ
【００７９】
コピーしなければならない有効データの量は、全ての不完全ブロックが同数の有効データページを収容するとする概算に基づいて求める。１ブロック内の総ページ数をＮとすると、不完全ブロック内の平均有効ページ数はＮ＊ＤＰ／ＰＢＰである。
【００８０】
不完全ブロックの中にあるデータページのごく僅かをコピーするだけでよい。データがコピーされるコピー先ブロックになる不完全ブロックには残余が存在する。全てのコピーで不完全ブロックがコピー先ブロックとして使われ、消去済みブロックを使用する必要はないと仮定する。消去される各不完全ブロックにある有効データは消去に先駆けコピーされるから、データのコピー元にあたるブロックの数は、作ろうとする消去済みブロックの数に等しい。作られる消去済みブロックの数＝（ＰＢＰ−ＤＰ）／Ｎである。
【００８１】
よって、消去されるブロック数にブロック当たりの平均有効ページ数を掛けることにより、メモリアレイで全再生可能な空間を再生するためにコピーされるデータ量の概算が得られる。
コピーされるデータ  ＝｛Ｎ＊ＤＰ／ＰＤＰ｝＊｛（ＰＢＰ−ＤＰ）／Ｎ｝
＝ＤＰ＊（ＰＢＰ−ＤＰ）／ＰＢＰ
＝（ＴＤＰ＋ＰＢＰ＋ＥＢＰ−ＴＰ）＊（ＰＢＰ−ＴＤＰ−ＰＢＰ−ＥＢＴ＋ＴＰ）／ＰＢＰ
＝（ＴＤＰ＋ＰＢＰ＋ＥＢＰ−ＴＰ）＊（ＴＰ−ＴＤＰ−ＥＢＰ）／ＰＢＰ
実際にはコピーされる有効データの量が最も少ないブロックがコピー操作のためのコピー元ブロックとして選択されるから、これが、コピーされるデータ量を多めに見積もるという点に留意されたい。したがって、全ての不完全ブロックが同じ割合でデータページを収容するとする単純化に基づくデータコピーのレートは、必要なレートよりいくぶん高くなる。
（ホストデータ）：（コピーデータ）交互比
＝（書き込まれるホストデータ）／（コピーされるデータ）
＝（ＴＰ−ＴＤＰ）＊ＰＢＰ／（ＴＤＰ＋ＰＢＰ＋ＥＢＰ−ＴＰ）／（ＴＰ−ＴＤＰ−ＥＢＰ）
【００８２】
これは、メモリが満杯になるまでホストデータのプログラミングを一定のレートで継続することを可能にする交互比を与える。この比は周期的に更新でき、あるいは何らかのトリガイベントに応じて更新できる。この比は、一定レートのホストデータプログラミングを可能にするように再生操作のスケジュールを組むのに使用できる式の一例である。これとは別の式を使用することもできる。交互比を計算するための式は、前述した計算などに基づいてよく、あるいは実際のメモリにおける経験に基づいてよい。計算にあたって無視すべきファクタについて仮定を加えることによって式は単純化できる。代わりに、より複雑な式では、ブロックの消去にこのような時間、またはガーベッジコレクションのコピー先ブロックとして消去済みブロックが必要となる可能性などのさらなるファクタを考慮に入れることができる。
【００８３】
前述した例のメモリはファイル本位のホストインターフェイスを有するが、本発明の態様は、セクタ本位のホストインターフェイス、または他の何らかのホストインターフェイスを使用するメモリにも応用できる。セクタ本位インターフェイスを持つ一部のメモリは、説明している手法の応用から大いに利益を受けるには十分な情報を欠くが、ある程度の性能の向上は達成できる。加えて、セクタ本位インターフェイスを有する一部のメモリはＦＡＴを解析するか、さもなくば記憶データの状態についてさらなる情報を入手する。一部のホストは、さらなるコマンドを用いて記憶データに関する情報をコントローラに提供する。再生のスケジュールを早期に組むため、このような情報を役立てることができる。
【００８４】
ホスト操作
いくつかの例において、不揮発性メモリにおける再生操作を各種モードで各様に管理できる。前述したように、再生操作は第１のモードにおいてある程度の最小レート（いくつかの例ではゼロを含む）で動作でき、第２のモードにおいて適応的に動作でき、第３のモードにおいて最大レートで動作できる。再生モードは、メモリコントローラが所定の基準に従って選択できる。いくつかの例では、ホストが再生モードを制御できる。ホストは、前述した３モードのどれが選択されるかを判断できる。加えて、ホストは、現在のホスト活動または予期されるホスト活動に基づき、適切な再生モードを選択するコマンドを有することができる。ホストシステムは、図１に示すようにメモリシステムから物理的に分離してよい。代わりに、オンカードアプリケーションを実行するメモリカード内のプロセッサをホストとみなすこともできる。米国仮特許出願第６０／７０５，３８８号（特許文献３０）ではこのような構成が説明されている。
【００８５】
メモリの再生モードに関する第１のホストコマンドは、交互操作の代わりに連続再生操作を可能にする「再生オン（Ｒｅｃｌａｉｍ＿ｏｎ）」コマンドである。このようにして行われる再生操作は、ホストコマンドの実行に遅れを生じさせず、ホストにとって透過であるから、バックグラウンド操作とみなされる。「再生オン」は、ホストが暫くの間追加のコマンドを送信しないことをメモリに告げる「アイドル（ｉｄｌｅ）」コマンドに相当する。一部のシステムにおいて、これらは同じコマンドである。これがもたらす再生オンモードは、別のホストコマンドの受信時に終了する。
【００８６】
「再生ノーマル（Ｒｅｃｌａｉｍ＿ｎｏｒｍａｌ）」コマンドは、メモリのデフォルト再生モードでの動作を可能にする。これは、適応スケジュールに従って再生することを意味することがあり、あるいは再生モード選択の制御権をメモリコントローラに与え、メモリコントローラが何らかの所定の基準に基づき再生モードを選択することを意味することがある。メモリは、再生オンモードを終了させるホストコマンドの受信時に、デフォルトでこのモードに入ることができる。
【００８７】
「再生オフ（Ｒｅｃｌａｉｍ＿ｏｆｆ）」コマンドは、再生操作を禁じ、ホスト操作だけを遂行させる。最大のホストデータ書き込み性能を提供するためにこのモードを選ぶことができる。このモードは、再生オンコマンドまたは再生ノーマルコマンドによって終了する。
【００８８】
再生レートの降順による可能な再生モード階層は以下のとおりである。
再生オン：デバイスは、別のコマンドが受信されるまで連続再生操作を遂行する。
最大交互：再生操作は、一定の最大交互比でホストデータ書き込み操作と交互に行われる。これは、適応交互比の上限である。
適応交互：再生操作は、適応交互比に従ってホストデータ書き込み操作と交互に行われる。
最小交互：再生操作は、一定の最小交互比でホストデータ書き込み操作と交互に行われる。これは、適応交互比の下限である。
再生オフ：再生操作は禁じられ、ホストデータ書き込み操作だけが遂行される。
【００８９】
前述した説明が一定レートのホストデータ書き込みに言及している点に留意すべきである。交互再生によって提供される一定レートは複数のサイクルにわたって看取される。個々のサイクルのレベルで見た場合、再生操作を交えた周期的なホスト書き込み操作の中でホストデータの書き込みが行われる。しかし、サイクル当たりまたは多数のサイクルにわたる、ホストデータ書き込みレートは、推定されたレートで一定に保ったままにすることができるから、メモリアレイが満杯になるまでこれを維持できる。
【００９０】
前述した説明では、メモリアレイの中で再生可能な空間が消去済みブロックに変換されるレートが一定であることが分かる。しかし、たとえサイクル当たりまたは単位時間当たりの再生操作数が一定でも、再生操作によって消去済みブロックが作られるレートが一定になるとは限らない。というのは、再生の対象となるブロックは、再生が容易なブロックから先に再生されるように選択されるからである。したがって、適応再生が始まるときに、再生の対象となるブロックにＲページ分の有効データがあると、ブロックはコピーされるデータのＲページずつ再生される。その後、２Ｒページ分の有効データを有するブロックを再生するには、消去済みブロックを作るたびに２Ｒ回のコピー操作を要する。したがって、再生によって消去済みブロックが作られるレートは、以前のレートの半分まで減少する。消去済みブロックが作られるレートは、これとは別の例では、ブロックの再生順序に応じて別様に変動する。ブロックがそこに収容された有効データの量にかかわりなく再生されるならば、再生によって消去済みブロックが作られるレートはそこそこ一定となる。
【００９１】
これまで本発明の様々な態様をその代表的な実施形態との関係で説明してきたが、添付の特許請求の範囲の全範囲内においてその権利が保護されるべきであることが理解できよう。
【図面の簡単な説明】
【００９２】
【図１】現在実施されているホストと接続された不揮発性メモリシステムとを概略的に示す。
【図２】図１の不揮発性メモリとして使用されるフラッシュメモリシステムの例のブロック図である。
【図３】図２のシステムに使用できるメモリセルアレイの代表的な回路図である。
【図４】図２のシステムの物理メモリの編制例を示す。
【図５】図４の物理メモリの一部分の拡大図を示す。
【図６】図４および５の物理メモリの一部分のさらなる拡大図を示す。
【図７】ホストと再プログラム可能なメモリシステムとの間の一般的な先行技術の論理アドレスインターフェイスを示す。
【図８Ａ】不揮発性メモリにおけるガーベッジコレクションの一例を示す。
【図８Ｂ】不揮発性メモリにおけるガーベッジコレクションの一例を示す。
【図９Ａ】不揮発性メモリにおけるガーベッジコレクションのもうひとつの例を示す。
【図９Ｂ】不揮発性メモリにおけるガーベッジコレクションのもうひとつの例を示す。
【図１０Ａ】不揮発性メモリにおける圧縮の一例を示す。
【図１０Ｂ】不揮発性メモリにおける圧縮の一例を示す。
【図１１Ａ】不揮発性メモリにおける整理統合の一例を示す。
【図１１Ｂ】不揮発性メモリにおける整理統合の一例を示す。
【図１２】図７のインターフェイスを使用する不揮発性メモリに記憶されるファイルのホストアプリケーションによるファイルの削除を示す。
【図１３】不揮発性メモリの空間がどのように管理されるかの一例を示す。
【図１４】不揮発性メモリの空間がどのように管理されるかのもうひとつの例を示す。
【図１５】交互のホスト書き込み操作とガーベッジコレクション操作とを示す。
【図１６】ホストに対しファイル本位インターフェイスを有する不揮発性メモリを示す。
【図１７】図１６のインターフェイスを使用する不揮発性メモリに記憶されるファイルのホストアプリケーションによるファイルの削除を示す。
【図１８】ファイル本位インターフェイスを有する不揮発性メモリにおける空間管理の一例を示す。
【図１９】メモリアレイが満杯になるまで一定レートのホストデータプログラミングを提供する、ファイル本位インターフェイスを有する不揮発性メモリにおける空間管理のもうひとつの例を示す。
【図２０】ファイルの削除に適応する適応再生スケジューリングを有する、ファイル本位インターフェイスを有する不揮発性メモリにおける空間管理のもうひとつの例を示す。
【図２１】３つのモード、すなわち最小再生レートを有する初期モードと、適応的にスケジュールされる再生レートを有する適応モードと、および最大再生レートを有する最終モードとにおける、ファイル本位インターフェイスを有する不揮発性メモリにおける空間管理のもうひとつの例を示す。
【図２２】様々な状態にあるメモリアレイ部分とそれらの状態間の可能なデータ遷移とを含む、ファイル本位インターフェイスを有する不揮発性メモリにおける空間管理の詳細図を示す。
【図２３Ａ】収容されたデータが図２２の遷移に一致する遷移をたどるメモリアレイのブロックを示す。
【図２３Ｂ】収容されたデータが図２２の遷移に一致する遷移をたどるメモリアレイのブロックを示す。
【図２３Ｃ】収容されたデータが図２２の遷移に一致する遷移をたどるメモリアレイのブロックを示す。
【図２３Ｄ】収容されたデータが図２２の遷移に一致する遷移をたどるメモリアレイのブロックを示す。
【図１】
2009503744.tif 000003
【図２】
2009503744.tif 000004
【図３】
2009503744.tif 000005
【図４】
2009503744.tif 000006
【図５】
2009503744.tif 000007
【図６】
2009503744.tif 000008
【図７】
2009503744.tif 000009
【図８Ａ】
2009503744.tif 000010
【図８Ｂ】
2009503744.tif 000011
【図９Ａ】
2009503744.tif 000012
【図９Ｂ】
2009503744.tif 000013
【図１０Ａ】
2009503744.tif 000014
【図１０Ｂ】
2009503744.tif 000015
【図１１Ａ】
2009503744.tif 000016
【図１１Ｂ】
2009503744.tif 000017
【図１２】
2009503744.tif 000018
【図１３】
2009503744.tif 000019
【図１４】
2009503744.tif 000020
【図１５】
2009503744.tif 000021
【図１６】
2009503744.tif 000022
【図１７】
2009503744.tif 000023
【図１８】
2009503744.tif 000024
【図１９】
2009503744.tif 000025
【図２０】
2009503744.tif 000026
【図２１】
2009503744.tif 000027
【図２２】
2009503744.tif 000028
【図２３Ａ】
2009503744.tif 000029
【図２３Ｂ】
2009503744.tif 000030
【図２３Ｃ】
2009503744.tif 000031
【図２３Ｄ】
2009503744.tif 000032
【国際調査報告】
2009503744.tif 000033
2009503744.tif 000034