(57)【要約】  ホストによって論理アドレス範囲にマッピングされるファイルは、メモリシステムへ送信される前に論理的に断片化される。その後、論理的に断片化した部分はメモリシステムのブロックに格納されるときに再度組み立てられる。ホストはデータの送信に先立ち、データのファイル−論理マッピングに関する情報をメモリシステムに提供する。メモリは、データが属するファイルに基づきデータの格納位置を選択する。
2009519555.tif 000002
【特許請求の範囲】
【請求項１】
複数のファイルのデータセクタを不揮発性メモリアレイに格納する方法であって、前記複数のファイルの各々のセクタはホストによって共通の論理アドレス空間にマッピングされる方法において、
ホストデータセクタが割り当てられたファイルを伝えるファイル割り当て情報を前記ホストから受信するステップと、
その後、前記不揮発性メモリアレイに格納する前記ホストデータセクタを前記ホストから受信するステップと、
その後、前記ホストからの前記ファイル割り当て情報に基づきこれが割り当てられた前記ファイルに応じて決定される前記不揮発性メモリアレイ内の物理位置に前記ホストデータセクタを格納するステップと、
を含む方法。
【請求項２】
請求項１記載の方法において、
前記ホストからのファイル割り当て情報は、ファイルアロケーションテーブル情報のセクタを含む方法。
【請求項３】
請求項２記載の方法において、
前記ホストデータセクタは、セクタからなるクラスタ内にあり、前記ファイルアロケーションテーブル情報のセクタは、前記クラスタを指し示すファイルアロケーションテーブル項目を含む方法。
【請求項４】
請求項１記載の方法において、
前記ホストからのファイル割り当て情報は、前記ファイル項目を収容するディレクトリ情報のセクタを含む方法。
【請求項５】
請求項１記載の方法において、
前記セクタは、前記ファイルからのセクタの格納に専らあてがわれた消去ブロックに格納される方法。
【請求項６】
請求項５記載の方法において、
前記ホストデータセクタを格納した後に、前記セクタが前記ファイルにおける最終セクタであることを伝える追加情報を前記ホストから受信し、これに応じて前記ファイルは閉じられ、再生スケジュールに組み入れられる方法。
【請求項７】
請求項１記載の方法において、
前記ホストから２つ以上の同じ制御データのセクタを受信するステップと、これに応じて前記ホストへステータス標識を提供しつつ再生操作を遂行するステップとをさらに含む方法。
【請求項８】
請求項１記載の方法において、
２つ以上の同じ制御データセクタを受信するステップと、これに応じて前記メモリアレイを停電に向けて準備するステップとをさらに含む方法。
【請求項９】
最小消去単位としてメタブロックを有する不揮発性メモリアレイにホストファイルからのホストデータセクタを格納する方法であって、前記ホストファイルのセクタと他のファイルのセクタは共通の論理アドレス空間にマッピングされる方法において、
前記ホストファイルの第１の複数のデータセクタを受信するステップであって、前記第１の複数のセクタは前記論理アドレス空間の第１の部分を占めるステップと、
その後、前記ホストファイルのものではない第２の複数のセクタを受信するステップであって、前記第２の複数のセクタは前記論理アドレス空間の第２の部分を占めるステップと、
その後、前記ホストファイルの第３の複数のセクタを受信するステップであって、前記第３の複数のセクタは前記論理アドレス空間の第３の部分を占め、前記論理アドレス空間の前記第１の部分は前記論理アドレス空間の前記第３の部分から間隔をおくステップと、
前記論理アドレス空間の前記第１および第３の部分を前記ホストファイルに割り当てられたものとして識別する情報に応じて、前記第１の複数のセクタと前記第３の複数のセクタを前記メモリアレイの第１のメタブロックに格納するステップと、
前記第２の複数のセクタを前記メモリアレイの第２のメタブロックに格納するステップと、
を含む方法。
【請求項１０】
請求項９記載の方法において、
前記第１のメタブロックは、前記ホストファイルのデータの格納に専らあてがわれる方法。
【請求項１１】
請求項９記載の方法において、
前記論理アドレス空間の前記第１および第３の部分は、前記ホストによって送信されるディレクトリおよびファイルアロケーションテーブルセクタにより、前記ホストファイルに割り当てられたものとして識別される方法。
【請求項１２】
請求項９記載の方法において、
前記論理アドレス空間の前記第２の部分は、前記論理アドレス空間の前記第１の部分から前記論理アドレス空間の前記第３の部分まで延在し、前記第２の複数のセクタを受信することに先立ち、前記第２の複数のセクタの第１のクラスタが前記ホストファイルに割り当てられていないことを伝えるディレクトリセクタを受信するステップをさらに含む方法。
【請求項１３】
請求項１２記載の方法において、
前記第３の複数のセクタを受信することに先立ち、前記第３の複数のセクタの第１のクラスタが前記ホストファイルへ割り当てられていることを伝えるファイルアロケーションテーブルセクタを受信するステップをさらに含む方法。
【請求項１４】
最小消去単位としてメタブロックを有する不揮発性メモリアレイにホストデータファイルを格納する方法であって、
前記ホストデータファイルの第１の複数のデータセクタを受信するステップであって、前記第１の複数のセクタの各々は前記メモリアレイのために設定された論理アドレス空間の論理アドレスを有し、前記複数のセクタは前記論理アドレス空間の２つ以上の不連続部分を占める論理アドレスを有するステップと、
前記ホストデータファイルのものではない第２の複数のデータセクタを受信するステップであって、前記第２の複数のセクタの各々は前記論理アドレス空間の論理アドレスを有し、前記第２の複数のセクタは前記第１の複数のセクタの受信を交えながら受信されるステップと、
前記論理アドレス空間の前記２つ以上の不連続部分の前記データを、前記ホストデータファイルのデータだけを収容するメタブロックに格納するステップと、
を含む方法。
【請求項１５】
請求項１４記載の方法において、
前記第１の複数のセクタの各々の受信に先立ち、前記第１の複数のセクタの各々に関するファイル割り当て情報を受信するステップをさらに含み、前記ファイル割り当て情報は前記第１の複数のセクタの各々を前記ホストデータファイルに属するものとして識別する方法。
【請求項１６】
請求項１５記載の方法において、
前記ファイル割り当て情報は、ファイルアロケーションテーブルおよびディレクトリセクタの形をとる方法。
【請求項１７】
請求項１４記載の方法において、
前記ホストデータファイルの終端の前記論理アドレスを伝えるファイル終端情報を受信するステップと、これに応じて前記ホストデータファイルを閉じるステップと、ガーベッジコレクションに向けて前記ホストデータファイルのスケジュールを組むステップとをさら含む方法。
【請求項１８】
メモリシステムを、ホストデータファイルのセクタを共通の論理アドレス空間に割り当てるホストと連係する方法であって、
前記メモリシステムが、前記ホストから複数のホストデータセクタを受信し、前記複数のセクタはホストファイルに割り当てられ、前記複数のホストデータセクタは前記ホストによって割り当てられた隣接しない論理アドレスを有し、
前記メモリシステムが、前記複数のセクタが前記ホストファイルに割り当てられているか否かを判定し、かつ前記メモリシステムが、前記複数のセクタが前記ホストファイルに割り当てられているとする判定に応じて、前記複数のセクタが隣接して配置されるように前記メモリアレイの一部に前記複数のセクタを格納する方法。
【請求項１９】
請求項１８記載の方法において、
前記メモリシステムは、前記ホストから受信するファイル割り当て情報を用いて前記複数のセクタの各々が前記ホストファイルに割り当てられているか否かを判定する方法。
【請求項２０】
請求項１９記載の方法において、
前記ホストから受信する前記ファイル割り当て情報は、１つ以上のファイルアロケーションテーブルセクタを含む方法。
【請求項２１】
請求項１９記載の方法において、
前記ホストから受信する前記ファイル割り当て情報は、１つ以上のディレクトリセクタを含む方法。
【請求項２２】
請求項１８記載の方法において、
前記メモリシステムは、さらに、前記ホストファイルの終端が受信済みと判定し、これに応じて前記ファイルを閉じ、かつガーベッジコレクションに向けて前記ファイルのスケジュールを組む方法。
【請求項２３】
ホストデータファイルのセクタを共通の論理アドレス空間に割り当てるホストと連係する不揮発性メモリシステムであって、
ホストファイルに割り当てられた複数のホストデータセクタを受信するメモリインターフェイスであって、前記複数のホストデータセクタは前記ホストによって割り当てられた隣接しない論理アドレスを有するメモリインターフェイスと、
前記複数のセクタが前記ホストファイルに割り当てられているか否かを判定し、かつ前記複数のセクタが前記ホストファイルに割り当てられているとする判定に応じて、前記複数のセクタが隣接して配置されるように前記メモリアレイの一部に前記複数のセクタを格納するメモリコントローラと、
を備える不揮発性メモリシステム。
【請求項２４】
請求項２３記載の不揮発性メモリシステムにおいて、
前記メモリコントローラは、前記ホストから受信するファイル割り当て情報を用いて前記複数のセクタの各々が前記ホストファイルに割り当てられているか否かを判定する不揮発性メモリシステム。
【請求項２５】
請求項２４記載の不揮発性メモリシステムにおいて、
前記ホストから受信する前記ファイル割り当て情報は、１つ以上のファイルアロケーションテーブルセクタを含む不揮発性メモリシステム。
【請求項２６】
請求項２４記載の不揮発性メモリシステムにおいて、
前記ホストから受信する前記ファイル割り当て情報は、１つ以上のディレクトリセクタを含む揮発性メモリシステム。
【請求項２７】
請求項２３記載の不揮発性メモリシステムにおいて、
前記メモリコントローラは、さらに、前記ホストファイルの終端が受信済みと判定し、これに応じて前記ファイルを閉じ、かつガーベッジコレクションに向けて前記ファイルのスケジュールを組む不揮発性メモリシステム。
【請求項２８】
ホストから受信するデータを不揮発性メモリアレイに格納する不揮発性メモリシステムであって、
前記メモリシステムのために設定される論理アドレス空間から割り当てられた論理アドレスを有するデータセクタとして複数のホストファイルを受信し、前記複数のホストファイルの前記論理アドレス空間への割り当てに関する割り当て情報を受信するインターフェイスと、
論理アドレスを有するデータセクタの格納位置を判定する論理−物理翻訳回路であって、前記位置は、前記割り当て情報をもとに前記複数のホストファイルのどれが前記論理アドレスに割り当てられているかに従って決定する論理−物理翻訳回路と、
を備える不揮発性メモリシステム。
【請求項２９】
請求項２８記載の不揮発性メモリシステムにおいて、
前記論理−物理翻訳回路は、メモリコントローラの一部である不揮発性メモリシステム。
【請求項３０】
請求項２８記載の不揮発性メモリシステムにおいて、
前記インターフェイスは、前記セクタを受信することに先立ち、前記セクタに関する割り当て情報を受信する不揮発性メモリシステム。
【請求項３１】
請求項２８記載の不揮発性メモリシステムにおいて、
前記論理−物理翻訳回路は、前記セクタを、前記ホストファイルの別のセクタの格納位置に物理的に隣接する位置に格納する不揮発性メモリシステム。
【請求項３２】
請求項２８記載の不揮発性メモリシステムにおいて、
前記論理−物理翻訳回路は、前記複数のホストファイルの各々のセクタを、個別のブロックが前記ホストファイルのセクタだけを収容するように不揮発性メモリアレイの別々のブロックに格納する不揮発性メモリシステム。
【請求項３３】
請求項２８記載の不揮発性メモリシステムにおいて、
前記割り当て情報は、前記不揮発性メモリアレイにおいて、前記複数のホストファイルのセクタの格納には使われないブロックに格納される不揮発性メモリシステム。
【請求項３４】
請求項２８記載の不揮発性メモリシステムにおいて、
前記インターフェイスは、ホストファイルの終端の指示を受信し、これに応じて前記メモリアレイに格納される前記ホストファイルのセクタは別のホストファイルのセクタと同じブロックに格納される不揮発性メモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、半導体フラッシュメモリ等の再プログラム可能な不揮発性メモリシステムの動作に関し、より具体的にはそのようなメモリ内におけるデータの管理に関する。本願明細書で参照する特許、特許出願、記事、その他の出版物、文書、事柄はいずれも、あらゆる目的のためにその全体が本願明細書において参照により援用されている。
【背景技術】
【０００２】
初期世代の商用フラッシュメモリシステムでは、メモリセルからなる矩形のアレイが、標準的なディスクドライブセクタのデータ量、すなわち５１２バイトを各々格納する多数のセルグループに分割されていた。さらに通常ならば、誤り訂正符号（ＥＣＣ）を格納するため、そしてことによるとユーザデータおよび／またはこれを格納するメモリセルグループに関係する他のオーバーヘッドデータを格納するため、１６バイト等、さらなる量のデータが各グループに加わる。そのような各グループ内のメモリセルは、ともに消去可能な最小数のメモリセルである。すなわち消去単位は事実上、１つのデータセクタ、およびオーバーヘッドデータが含まれる場合はオーバーヘッドデータを格納するメモリセル数である。米国特許第５，６０２，９８７号（特許文献１）および第６，４２６，８９３号（特許文献２）には、この種のメモリシステムの例が記載されている。フラッシュメモリの特徴として、メモリセルは、これにデータを再度プログラムする前に消去する必要がある。
【０００３】
フラッシュメモリシステムは多くの場合、パーソナルコンピュータやカメラ等、様々なホストに着脱可能な状態で接続するメモリカードまたはフラッシュドライブの形で提供されるが、そのようなホストシステムの中に埋め込まれることもある。ホストは通常、メモリへデータを書き込むときに、メモリシステムの連続する仮想アドレス空間の中でセクタ、クラスタ、またはその他のデータ単位に一意な論理アドレスを割り当てる。ホストは、ディスクオペレーティングシステム（ＤＯＳ）のように、メモリシステムの論理アドレス空間の中のアドレスにデータを書き込み、かつこれからデータを読み出す。メモリシステムの中のコントローラは、ホストから受け取った論理アドレスをメモリアレイの中のデータが実際に格納される物理アドレスに翻訳し、これらのアドレス翻訳の経緯を把握する。メモリシステムのデータ格納容量は少なくとも、メモリシステムのために設定される論理アドレス空間全体にわたってアドレスされるデータ量に相当する。
【０００４】
後続世代のフラッシュメモリシステムでは、消去単位のサイズが複数のセクタのデータを十分に格納するメモリセルブロックまで拡大した。メモリシステムの接続先にあたるホストシステムがセクタ等の小さな最小単位でデータをプログラムし読み出すとしても、フラッシュメモリの１消去単位には多数のセクタが格納される。ホストが論理セクタのデータの更新や置き換えを行うにつれ、ブロック内のいくつかのデータセクタが用済みになることは多々ある。ブロックに格納されたデータに上書きを行うには事前にブロック全体を消去しなければならないから、新規または更新済みデータは通常、あらかじめ消去されデータのための容量が残っている別のブロックに格納される。この過程で元のブロックには用済みデータが残り、メモリ内の貴重な空間を取る。しかし、このブロックは、その中に有効データが残っているならば、消去できない。
【０００５】
したがって、メモリ格納容量の有効利用を図るため、有効部分的ブロックのデータ量を消去済みブロックにコピーすることによってこれを整理または回収するのが一般的であり、こうすればデータのコピー元にあたるブロックは消去でき、その格納容量の全体を再利用できる。ブロック内のデータセクタをそれぞれの論理アドレスの順にグループ分けするためにデータをコピーすることも望ましく、こうすればデータを読み出し、読み出したデータをホストへ転送する速度が上がる。そのようなデータコピーがあまりにも頻繁に行われると、メモリシステムの動作性能が低下することがある。これは特に、メモリの格納容量が、システムの論理アドレス空間を通じてホストによってアドレスされるデータ量と大差ない場合、つまりよくある場合では、メモリシステムの動作に影響する。この場合、ホストプログラミングコマンドが実行される前にデータを整理または回収する必要がある。そうするとプログラミングの時間が長引く。
【０００６】
所与の半導体領域に格納できるデータのビット数を増やすため、ブロックのサイズはメモリシステムの世代交代を通じて拡大している。２５６以上のデータセクタを格納するブロックが一般的になりつつある。加えて、データのプログラミングと読み出しにあたって並列度を高めるため、異なるアレイまたはサブアレイからなる２つ、４つ、またはそれ以上のブロックがしばしばメタブロックとして論理的にともにリンクされる。そのような大容量操作単位には、メモリシステムを効率的に動作させるという課題が伴う。
【０００７】
従来の一般的なホストとメモリシステムとの間のインターフェイスは、メモリによって格納されるデータセクタに論理アドレス方式を使用する。しかし、ホストファイルは論理アドレス空間にマッピングされるときにしばしば論理的に断片化し、その結果、メモリアレイの中で広く分散する。この場合、メモリアレイ内のブロックは多数のファイルの部分を収容し、しばしば有効データと用済みデータがそこに混在するから、メモリアレイの管理はより困難となる。用済みデータで占められた空間を再生するため、場合によっては大量の有効データをコピーする必要がある。
【特許文献１】米国特許第５，６０２，９８７号
【特許文献２】米国特許第６，４２６，８９３号
【特許文献３】米国特許出願第１０／９１５，０３９号
【特許文献４】米国特許第５，５７０，３１５号
【特許文献５】米国特許第５，７７４，３９７号
【特許文献６】米国特許第６，０４６，９３５号
【特許文献７】米国特許第６，３７３，７４６号
【特許文献８】米国特許第６，４５６，５２８号
【特許文献９】米国特許第６，５２２，５８０号
【特許文献１０】米国特許第６，７７１，５３６号
【特許文献１１】米国特許第６，７８１，８７７号
【特許文献１２】米国公開特許出願第２００３／０１４７２７８号
【特許文献１３】米国公開特許出願第２００３／０１０９０９３号
【特許文献１４】米国特許第６，７６３，４２４号
【特許文献１５】米国特許出願第１０／７４９，８３１号
【特許文献１６】米国特許出願第１０／７５０，１５５号
【特許文献１７】米国特許出願第１０／９１７，８８８号
【特許文献１８】米国特許出願第１０／９１７，８６７号
【特許文献１９】米国特許出願第１０／９１７，８８９号
【特許文献２０】米国特許出願第１０／９１７，７２５号
【特許文献２１】米国特許出願第１０／７４９，１８９号
【特許文献２２】米国特許出願第１０／８４１，１１８号
【特許文献２３】米国特許出願第１１／０１６，２７１号
【特許文献２４】米国特許出願第１０／８９７，０４９号
【特許文献２５】米国特許出願第１１／０２２，３６９号
【特許文献２６】米国特許出願第１１／０６０，１７４号
【特許文献２７】米国特許出願第１１／０６０，２４８号
【特許文献２８】米国特許出願第１１／０６０，２４９号
【特許文献２９】仮米国特許出願第６０／７０５，３８８号
【特許文献３０】米国特許出願第１１／１９６，８６９号
【特許文献３１】米国特許出願第１１／２５９，４２３号
【発明の開示】
【０００８】
本発明の一実施形態によるメモリシステムは、論理アドレス方式を使用するホストからデータを受信する。ホストはまず、ホストファイルを論理アドレス空間にマッピングする。次いで、ホストは、ある特定のホストデータセクタが割り当てられたファイルがどれかを指示する信号をメモリシステムに提供する。その後、ホストデータセクタを受信したメモリシステムは、あらかじめ受信しておいた割り当て情報をもとにホストデータセクタの格納位置を判断する。具体的に、メモリシステムは同じホストファイルのセクタをメモリアレイの同じメタブロックに格納する。かくして、ファイルは複数のメタブロックを占めることがある。また、ホストは、ホストファイルの終端が送信済みであることを合図し、これを受けてメモリシステムはファイルを閉じ、ファイルの格納効率を上げるための操作を遂行できる。
【０００９】
ホストがデータセクタの割り当てをメモリシステムに通知する通知方式ではディレクトリセクタとＦＡＴセクタを使用するので、この通知方式の信号は従来の論理インターフェイスに適合する。具体的に、新規ファイルの先頭はファイルの第１のクラスタを指示するディレクトリセクタによって識別される。次いで、そのクラスタのセクタが送信され、新規メタブロックに格納される。前の受信済みクラスタに論理的に連続するクラスタは、前のクラスタと同じファイルのものと仮定できる。ホストは、前のクラスタと同じファイルのものではない新規クラスタを送信するときに、その変化を指示する。新規クラスタが新規ホストファイルのものならば（これまでこのファイルのセクタは送信されたことがなく、したがってファイルのための開放メタブロックは存在しない）、ホストは新規ファイルの先頭を指示するディレクトリセクタを送信する。新規クラスタが開放ファイルのものならば（これまでこのファイルのセクタは送信されたことがあり、ファイルのための１つ以上のメタブロックに格納されている）、ホストは開放ファイルの前のクラスタのＦＡＴ項目と新規クラスタのポインタを含むＦＡＴセクタを送信する。ホストはファイル割り当て情報を伝える信号を送信するほかに、ファイルの終端を指示するＦＡＴセクタを送信できる。そのようなＦＡＴセクタはファイルの最終クラスタの項目を含み、ファイルの終端を指示する。ＦＡＴおよびディレクトリ情報を不揮発性メモリに格納する従来の方式と違い、この方式は、割り当て情報を、それが言及するところのホストデータを送信する前に送信する。ほとんどの従来方式は、ホストからＦＡＴセクタとディレクトリセクタとして送信される割り当て情報をメモリシステムで使用するようにはなっていない。
【００１０】
メモリシステムはある特定のホストファイルのデータの結び付きを保つため、ホストから提供されるファイル割り当て情報を役立てることができる。ホストファイルはホストによって論理アドレス範囲にマッピングされるときに論理的に断片化することがあるが、メモリシステムはこのマッピングに関する情報をもとにファイルのデータを専用ブロックに格納できる。この場合、ホストが新規ファイルの先頭を指示すると新規ブロックが開放する。その後、そのブロックのものと指示されるデータは同じメタブロックに格納される。必要に応じ、そのファイルのためのさらなるメタブロックを開放する。最終的にはホストがファイルの終端を指示するか、さもなくばメモリシステムが他の何らかの理由によりファイルを閉じる。この時点で、ホストファイルのデータで部分的にのみ満たされたメタブロックがあるならば、共通ブロックにて、その残余のデータを他のファイルの同様の残余データと併合できる。ファイルの大半は専用メタブロックの中にあるから、その後ホストがファイルを削除する場合は（ディレクトリセクタ、またはその他によって指示される）、有効データをほんのわずかコピーするだけでファイルで占められた空間を容易に回復できる。また、ホストは、電力が間もなく停止することを通知方式によってメモリシステムに知らせることができるから、メモリシステムは停電に向けて準備できる（例えば、揮発性メモリの中にあるデータを不揮発性メモリに格納する）。また、ホストは、電力が維持されることを通知方式によってメモリシステムに知らせることができるから、メモリシステムは再生操作等のハウスキーピング操作を遂行できる。
【発明を実施するための最良の形態】
【００１１】
フラッシュメモリの概説
現在のフラッシュメモリシステムと、ホストデバイスとの典型的な動作とを、図１〜図７との関係で説明する。そのようなシステムで本発明の様々な態様を実装できる。図１のホストシステム１は、フラッシュメモリ２の中にデータを格納し、フラッシュメモリ２からデータを引き出す。フラッシュメモリはホストの中に埋め込むこともできるが、メモリ２はそれよりも一般的なカードの形で示され、このカードは、機械および電気コネクタの嵌合部分３および４を通じて着脱可能な状態でホストへ接続される。例えばコンパクトフラッシュ（ＣＦ）、マルチメディアカード（ＭＭＣ）、セキュアデジタル（ＳＤ）、ミニＳＤ、メモリスティック、スマートメディア、トランスフラッシュカード等、様々なフラッシュメモリカードが現在市販されている。これらのカードの各々はそれぞれの規格化された仕様に従い独特の機械的および／または電気的インターフェイスを有するが、各々に内蔵されたフラッシュメモリシステムはよく似ている。これらのカードはいずれも、本願の譲受人であるサンディスク  コーポレイションから入手できる。また、サンディスク
コーポレイションは、そのクルーザー（Ｃｒｕｚｅｒ）という商標のもとで一連のフラッシュドライブを提供し、フラッシュドライブは、ホストのユニバーサル・シリアル・バス（ＵＳＢ）差込口に差し込まれることによってホストと接続するＵＳＢプラグを有する小形の手持ち式メモリシステムである。これらのメモリカードとフラッシュドライブの各々は、ホストと連係して内蔵されたフラッシュメモリの動作を制御するコントローラを内蔵する。
【００１２】
そのようなメモリカードとフラッシュドライブとを使用するホストシステムは数多くあり様々である。これにはパーソナルコンピュータ（ＰＣ）、ラップトップをはじめとする携帯用コンピュータ、携帯電話機、個人用携帯情報端末（ＰＤＡ）、デジタル静止画カメラ、デジタル動画カメラ、携帯用オーディオプレイヤ等が含まれる。ホストは通常ならば１種類以上のメモリカードまたはフラッシュドライブのための一体化された差込口を内蔵するが、メモリカードを差し込むアダプタを必要とするものもある。
【００１３】
図１のホストシステム１は、メモリ２が考慮される限りにおいて、回路とソフトウェアとの組み合わせからなる、２つの主要部分を有するものとみなすことができる。それらはアプリケーション部５と、メモリ２と連係するドライバ部６である。例えばパーソナルコンピュータの場合、アプリケーション部５は、ワープロ、グラフィック、コントロール、その他一般的なアプリケーションソフトウェアを実行するプロセッサを含むことがある。カメラ、携帯電話機、または専ら１セットの機能を遂行するその他のホストシステムの場合、アプリケーション部５は、写真を撮影したり格納したりするためのカメラを動作させるソフトウェアや、電話をかけたり受けたりするための携帯電話機を動作させるソフトウェア等を含む。
【００１４】
図１のメモリシステム２はフラッシュメモリ７と回路８とを含み、それら回路はいずれも、データをやり取りするため、そしてメモリ７を制御するため、カードの接続先にあたるホストと連係する。コントローラ８は通常、データのプログラミングと読み出し中にホスト１によって使用されるデータの論理アドレスとメモリ７の物理アドレスとの変換を行う。
【００１５】
図２を参照すると、図１の不揮発性メモリ２として使用できる典型的なフラッシュメモリシステムの回路が記載されている。システムコントローラは通常、システムバス１３沿いに１つ以上の集積回路メモリチップと並列に接続される単一集積回路チップ１１上で実装され、図２にはただ１つのそのようなメモリチップ１５が示されている。図に示された特定のバス１３は、データを搬送する別個の１セットの導体１７と、メモリアドレスのためのセット１９と、制御および状態信号のためのセット２１とを含む。あるいは、これらの３機能の間で１セットの導体を時分割共用できる。さらに、２００４年８月９日に出願された「Ring Bus Structure and Its Use in Flash Memory Systems」という米国特許出願第１０／９１５，０３９号（特許文献３）に記載されているリングバス等、これとは別のシステムバス構成を使用できる。
【００１６】
典型的なコントローラチップ１１は、インターフェイス回路２５を通じてシステムバス１３と連係する独自の内部バス２３を有する。このバスへ通常接続される主要機能には、プロセッサ２７（マイクロプロセッサまたはマイクロコントローラ）と、システムを初期化（「ブート」）するためのコードを収容する読み出し専用メモリ（ＲＯＭ）２９と、主にメモリとホストとの間で転送されるデータをバッファするために使われるランダムアクセスメモリ（ＲＡＭ）３１と、コントローラを通じてメモリとホストとの間を行き来するデータのための誤り訂正符号（ＥＣＣ）を計算し検査する回路３３とがある。コントローラバス２３は回路３５を通じてホストシステムと連係し、これは、メモリカードに内蔵される図２のシステムの場合、コネクタ４の一部をなすカードの外部接点３７を通じて果たされる。クロック３９は、コントローラ１１の他のコンポーネントの各々に接続され、他のコンポーネントの各々によって利用される。
【００１７】
メモリチップ１５と、システムバス１３に接続される他のメモリチップは通常、複数のサブアレイまたはプレーンに編制されたメモリセルアレイを収容し、簡潔を図るため２つのそのようなプレーン４１および４３が示されているが、これよりも多い、例えば４つ、または８つのそのようなプレーンを代わりに使用することもできる。あるいは、チップ１５のメモリセルアレイはプレーンに分割しなくともよい。しかし、分割するなら、各々のプレーンは互いに独立して動作できる独自の列制御回路４５および４７を有する。回路４５および４７は、システムバス１３のアドレス部１９からそれぞれのメモリセルアレイのアドレスを受け取り、それぞれのビット線４９および５１のうちの特定の１つ以上のビット線をアドレスするため、それらを復号化する。ワード線５３は、アドレスバス１９で受け取るアドレスに応じて行制御回路５５を通じてアドレスされる。ソース電圧制御回路５７および５９もまたそれぞれのプレーンに接続され、ｐウェル電圧制御回路６１および６３もしかりである。メモリチップ１５がただ１つのメモリセルアレイを有し、２つ以上のそのようなチップがシステムに存在する場合、各チップのアレイは、前述したマルチプレーンチップ内のプレーンまたはサブアレイと同様に動作させることができる。
【００１８】
データは、システムバス１３のデータ部１７に接続されたそれぞれのデータ入出力回路６５および６７を通じてプレーン４１および４３を出入りする。回路６５および６７は、それぞれの列制御回路４５および４７を通じてプレーンへ接続する線６９および７１を通じてそれぞれのプレーンのメモリセルの中にデータをプログラムするため、そしてメモリセルからデータを読み出すためにある。
【００１９】
コントローラ１１は、データをプログラムしたり、読み出したり、消去したり、かつ様々なハウスキーピング作業に応対したりするため、メモリチップ１５の動作を制御するが、各々のメモリチップも、そのような機能を遂行するためにコントローラ１１からのコマンドを実行する何らかの制御回路を収容する。インターフェイス回路７３はシステムバス１３の制御／状態部２１へ接続される。コントローラからのコマンドは状態マシン７５へ提供され、この状態マシンは、これらのコマンドを実行するために他の回路の特定の制御を提供する。制御線７７〜８１は、図２に示す他の回路に状態マシン７５を接続する。状態マシン７５からの状態情報は、バス部２１に沿ってコントローラ１１へ送信するため、線８３に沿ってインターフェイス７３へ伝達される。
【００２０】
現在はメモリセルアレイ４１および４３のＮＡＮＤアーキテクチャが好まれているが、ＮＯＲ等の他のアーキテクチャを代わりに使用することもできる。ＮＡＮＤフラッシュメモリの例とメモリシステムの一部としてのその動作は、米国特許第５，５７０，３１５号（特許文献４）、第５，７７４，３９７号（特許文献５）、第６，０４６，９３５号（特許文献６）、第６，３７３，７４６号（特許文献７）、第６，４５６，５２８号（特許文献８）、第６，５２２，５８０号（特許文献９）、第６，７７１，５３６号（特許文献１０）、および第６，７８１，８７７号（特許文献１１）と米国公開特許出願第２００３／０１４７２７８号（特許文献１２）とを参照することによって得ることができる。
【００２１】
図２のメモリシステムのメモリセルアレイ４１の一部分にあたる図３の回路図には、ＮＡＮＤアレイの例が示されている。多数のグローバルビット線が提供されるが、説明の簡潔を図るため、図２では４つのそのような線９１〜９４だけが示されている。これらのビット線のうちの１ビット線と基準電位との間には、いくつかの直列に接続されたメモリセルストリング９７〜１０４が接続される。メモリセルストリング９９を代表として使用し、ストリングの両端で選択トランジスタ１１１および１１２には複数の電荷蓄積メモリセル１０７〜１１０が直列に接続される。１ストリングの選択トランジスタが通電すると、ストリングはそのビット線と基準電位との間で接続される。次いで、そのストリングの中で一度に１つのメモリセルがプログラムされるか、または読み出される。
【００２２】
図３のワード線１１５〜１１８は、数あるメモリセルストリングの各々で１つのメモリセルの電荷蓄積素子にわたって個別に延在し、ゲート１１９および１２０は、ストリングの各末端にて選択トランジスタの状態を制御する。共通のワードおよびコントロールゲート線１１５〜１２０を共用するメモリセルストリングは、ともに消去されるメモリセルのブロック１２３を形成する。このセルからなるブロックは、一度に物理的に消去できる最小数のセルを収容する。ワード線１１５〜１１８の１ワード線沿いの１行のメモリセルが一度にプログラムされる。通常、ＮＡＮＤアレイの行は規定の順序でプログラムされ、この場合、接地等の共通電位へ接続されたストリングの末端に最も近いワード線１１８沿いの行から始まる。次いで、ワード線１１７沿いのメモリセル行がプログラムされ、ブロック１２３の全体を通じて同様に進む。最後にワード線１１５沿いの行がプログラムされる。
【００２３】
第２のブロック１２５は類似し、そのメモリセルストリングは第１のブロック１２３のストリングと同じグローバルビット線へ接続するが、異なるワードおよびコントロールゲート線のセットを有する。ワードおよびコントロールゲート線は、行制御回路５５によって適当な動作電圧まで駆動される。図２のプレーン１および２等、２つ以上のプレーンまたはサブアレイがシステムにある場合、それらの間に延在する共通ワード線を１つのメモリアーキテクチャで使用する。あるいは、共通ワード線を共用する３つ以上のプレーンまたはサブアレイがあってもよい。別のメモリアーキテクチャでは、個別のプレーンまたはサブアレイのワード線が別々に駆動される。
【００２４】
前に参照したＮＡＮＤ特許および公開特許出願のいくつかで説明されているように、各電荷蓄積素子または領域にて３つ以上の検出可能な電荷レベルを格納するようにメモリシステムを動作させることができ、これにより２ビット以上のデータを各々に格納する。メモリセルの電荷蓄積素子は一般的には導電性フローティングゲートだが、米国公開特許出願第２００３／０１０９０９３号（特許文献１３）で記載されている非導電性誘電性電荷捕獲材であってもよい。
【００２５】
図４は、以降のさらなる説明で一例として使用するフラッシュメモリセルアレイ７（図１）の編制を概念的に示している。１つの集積メモリセルチップ、２つのチップ（各チップ上のプレーンのうちの２つ）、または４つの別々のチップの上に、メモリセルの４つのプレーンまたはサブアレイ１３１〜１３４があってよい。具体的な配置は以降の論述にとって重要でない。もちろん、１、２、８、１６またはそれ以上等、これ以外の数のプレーンがシステム内にあってもよい。プレーンは、プレーン１３１〜１３４にそれぞれ位置するブロック１３７、１３８、１３９、および１４０等、図４にて矩形で示されたメモリセルブロックに個別に分割される。各プレーンには何十、または何百ものブロックがあってよい。前述したように、メモリセルのブロックは消去の単位、すなわち物理的にともに消去できる最小数のメモリセルである。しかし、並列性を高めるためには、これよりも大きいメタブロック単位でブロックを操作する。各プレーンから１つのブロックが論理的にともにリンクされることによってメタブロックが形成される。４つのブロック１３７〜１４０によって１つのメタブロック１４１が形成される様子が示されている。通常ならば、１メタブロック内の全てのセルがともに消去される。ブロック１４５〜１４８からなる第２のメタブロック１４３に見られるように、メタブロックを形成するのに使用するブロックを、それぞれのプレーンの中で同じ相対的位置に制限する必要はない。通常は全てのプレーンにわたってメタブロックを延在させるのが好ましいが、高いシステム性能のため、異なるプレーンにある１つ、２つ、または３つのブロックのいずれかまたは全部からなるメタブロックを動的に形成する能力を用いてメモリシステムを操作することができる。これにより、１回のプログラミング操作で格納できるデータ量にメタブロックのサイズをより近づけることが可能となる。
【００２６】
個別のブロックはさらに、動作上の目的のため、図５に示すようにメモリセルのページに分割される。例えば、ブロック１３１〜１３４の各々のメモリセルは８つのページＰ０〜Ｐ７に各々分割されている。あるいは、１６、３２、またはそれ以上のメモリセルのページが各ブロックの中にあってよい。ページは、ブロックの中でデータをプログラムし読み出す単位であり、一度にプログラムされる、最少量のデータを収容する。図３のＮＡＮＤアーキテクチャでは、ブロックの中でワード線沿いのメモリセルからページが形成されている。しかし、メモリシステムの動作上の並列性を高めるため、２つ以上のブロックの中にあるそのようなページをメタページに論理的にリンクすることもできる。図５には、４つのブロック１３１〜１３４の各々にある１つの物理ページから形成されたメタページ１５１が示されている。メタページ１５１は、例えば４つのブロックの各々にあるページＰ２を含むが、メタページのページが必ずしも各ブロックの中で同じ相対的位置を占める必要はない。４つのプレーン全てにわたって最大量のデータを並行してプログラムし読み出すことが望ましいが、高いシステム性能のため、異なるプレーンの中にある別々のブロックの１つ、２つ、または３つのページのいずれかまたは全てからメタページを形成するべくメモリシステムを操作することもできる。これにより、並行して簡便に扱えるデータ量にプログラミングおよび読み出し操作を適合させることができ、さらにデータがプログラムされない部分がメタページに残る機会は減る。
【００２７】
図５に示す複数のプレーンの物理ページから形成されるメタページは、それらの複数のプレーンのワード線行に沿ってメモリセルを収容する。１つのワード線行にある全てのセルを同時にプログラムするよりも、２つ以上の互い違いのグループでそれらをかわるがわるにプログラムするほうがむしろ一般的であり、各グループは、（単一ブロック内の）１ページのデータまたは（複数のブロックにまたがる）１メタページのデータを格納する。交互のメモリセルを一度にプログラムすることにより、データレジスタやセンス増幅器を含むひとまとまりの周辺回路を各ビット線のために用意する必要はなく、むしろそれらは隣接するビット線によって時分割共用される。これにより周辺回路に要する基板空間の量を節約し、メモリセルの行沿いの実装密度を増すことができる。さもなくば、所与のメモリシステムから最大限の並列性を引き出すため、行沿いの全セルを同時にプログラムするのが望ましい。
【００２８】
図３を参照すると、行沿いの互い違いのメモリセルへのデータの同時プログラミングを最も簡便に果たすには、ＮＡＮＤストリングの少なくとも一端に沿って２行の選択トランジスタ（図示せず）を、図に示された１行の代わりに設ける。この場合、一方の行の選択トランジスタは、１つの制御信号に応じてブロック内の互い違いのストリングをそれぞれのビット線へ接続し、他方の行の選択トランジスタは、別の制御信号に応じて介在する互い違いのストリングをそれぞれのビット線へ接続する。したがって、メモリセルの各行には２ページ分のデータが書き込まれる。
【００２９】
各論理ページのデータ量は通常、整数にして１セクタ数以上のデータであり、各セクタは慣例上５１２バイトのデータを収容する。図６は、１ページまたはメタページのデータの、２つのセクタ１５３および１５５からなる論理データページを示している。各セクタは通常、格納される５１２バイトのユーザまたはシステムデータの部分１５７と、部分１５７にあるデータまたはこれを格納する物理ページまたはブロックのいずれかに関係するオーバーヘッドデータのため、さらなるバイト数１５９とを収容する。オーバーヘッドデータのバイト数は通常ならば１６バイトであり、セクタ１５３および１５５の各々につき合計５２８バイトになる。オーバーヘッド部分１５９は、プログラミング中にデータ部分１５７から算出されるＥＣＣ、その論理アドレス、ブロックが消去され再プログラムされた回数の経験カウント、１つ以上の制御フラグ、動作電圧レベル、および／またはその他に加え、そのようなオーバーヘッドデータ１５９から算出されるＥＣＣを収容できる。あるいは、オーバーヘッドデータ１５９またはこれの一部分は、他のブロックの別のページに格納できる。
【００３０】
メモリの並列性が高まるにつれメタブロックのデータ格納容量は増加し、その結果、データページおよびメタページのサイズも増す。かくして、データページは３セクタ以上のデータを収容する場合がある。１データページ内に２セクタ、そして各メタページにつき２データページで、１メタページ内のセクタは４つになる。よって、各メタページは２，０４８バイトのデータを格納する。これは高度な並列度であり、行内のメモリセル数の増加にともないさらに高めることができる。このため、ページおよびメタページ内のデータ量を増やすため、フラッシュメモリの幅は拡大しつつある。本願で説明する多くの例では、消去とプログラミングの単位としてメタブロックとメタページをそれぞれ使用するが、記載されている手法のほとんどは、ブロックとページとが消去とプログラミングの単位となる場合にも等しく当てはまる。同様に、ブロックとページとを使用するメモリシステムに適用される手法は一般に、メタブロックとメタページにも当てはめることができる。
【００３１】
前に特定した物理的に小さい再プログラム可能な不揮発性メモリカードおよびフラッシュドライブは市販され、データ格納容量は５１２メガバイト（ＭＢ）、１ギガバイト（ＧＢ）、２ＧＢ、４ＧＢまたはそれ以上にもなる。図７は、ホストとそのような大容量メモリシステムとの間の最も一般的なインターフェイスを示す。ホストは、ホストによって実行されるアプリケーションソフトウェアまたはファームウェアプログラムによって生成または使用されるデータファイルを処理する。ワープロデータファイルはその一例であり、コンピュータ支援設計（ＣＡＤ）ソフトウェアの描画ファイルもこれにあたり、主にＰＣ、ラップトップコンピュータ等、一般的なコンピュータホストに見られる。ｐｄｆ形式の文書もそのようなファイルである。静止画デジタルビデオカメラは写真ごとにデータファイルを生成し、データファイルはメモリカードに格納される。携帯電話機は、電話帳等、内蔵メモリカード上のファイルからデータを利用する。ＰＤＡは、住所ファイル、カレンダーファイル等、数通りのファイルを格納し使用する。そのような用途において、メモリカードはホストを操作するソフトウェアを収容することもある。
【００３２】
メモリシステム、特に着脱可能なカードに埋め込まれるメモリシステムは、標準インターフェイスを通じて様々なホストと通信することができる。メモリシステムとの通信にあたってホストが使用するインターフェイスはホストによって異なることがある。インターフェイスには、共通論理アドレス空間を有する論理アドレシングシステムを使用するものと、ファイル本位アドレシングシステムを使用するものとの２種類がある。
【００３３】
論理アドレシング
図７には、ホストとメモリシステムとの間の一般的な論理インターフェイスが示されている。連続する論理アドレス空間１６１は、メモリシステムに格納される全てのデータのためのアドレスを提供するにあたって十分に大きい。ホストアドレス空間は通常、データクラスタの単位に分割される。所与のホストシステムにおいて、数セクタのデータを収容するように各クラスタを設計でき、４〜６４セクタあたりが一般的である。標準的なセクタは５１２バイトのデータとある程度のオーバーヘッドデータとを収容する。
【００３４】
図７の例では、３つのデータファイル１、２、および３が作成されたものとして示されている。ホストシステムで実行するアプリケーションプログラムは、整列された１セットのデータとして各ファイルを作成し、一意な名前またはその他の参照符によってこれを識別する。ファイル１にはホストによって、他のファイルにまだ割り振られていない十分に使用可能な論理アドレス空間が割り当てられる。ファイル１は、一連の使用可能な論理アドレス範囲が割り当てられた状態で示されている。この他に通常ならば、ホストオペレーティングソフトウェアのための特定の範囲等、特定の目的のためにアドレス範囲が割り振られ、それらは、たとえホストがデータに論理アドレスを割り当てるときにこれらのアドレスがまだ利用されていなくとも、データの格納にあたって回避される。
【００３５】
ホストは同様に、後ほどホストによってファイル２が作成されるときに、論理アドレス空間１６１の中の２つの異なる隣接したアドレス範囲を、図７に示すように、割り当てる。隣接する論理アドレスをファイルに割り当てる必要はなく、既に他のファイルに割り振られているアドレス範囲の間にあるアドレスの断片であってもよい。この例はさらに、ホストによって作成されたもう１つのファイル３に、ファイル１および２やその他のデータにまだ割り振られていないホストアドレス空間の別の部分が割り振られる様子を示している。この例で、ファイル１と、ファイル２と、ファイル３はいずれも、共通の論理アドレス空間（論理アドレス空間１６１）の一部分に割り当てられる。
【００３６】
ホストは、ファイルアロケーションテーブル（ＦＡＴ）とディレクトリを保守することによってメモリ論理アドレス空間を絶えず把握し、ホストが様々なホストファイルに割り当てる論理アドレスは保守される。ディレクトリとＦＡＴは通常、ホストメモリのほかに不揮発性メモリにも格納され、新規ファイルが格納されたり、他のファイルが削除されたり、ファイルが修正されたりするとき等に、ホストによって頻繁に更新される。ホストは、例えばホストファイルが削除されるときにディレクトリとＦＡＴテーブルを更新することによって削除ファイルに割り振られていた論理アドレスを解除して、それらの論理アドレスを別のデータファイルに使用できることを明らかにする。場合によってはファイルが削除されるときにディレクトリだけが更新され、用済みデータクラスタのＦＡＴ項目は存続する。ＦＡＴで使われる論理アドレスは論理ブロックアドレス（ＬＢＡ）と呼ばれることがあり、異なるファイルのデータにとって共通に使用される論理アドレス空間にわたってそのような論理アドレシングを使用するインターフェイスはＬＢＡインターフェイスと呼ばれることがある。
【００３７】
ホストは、メモリシステムコントローラがファイルを格納するために選択する物理位置を顧慮しない。典型的なホストは、その論理アドレス空間と、これがその各種ファイルに割り振った論理アドレスだけを認識する。他方、メモリシステムは、典型的なホスト／カードインターフェイスを通じて、データが書き込まれた論理アドレス空間部分だけを認識し、特定のホストファイルへ割り振られる論理アドレスは認識せず、ホストファイルの数すら認識しない。メモリシステムコントローラは、データの格納や引き出しのためのホストから提供される論理アドレスを、ホストデータが格納されるフラッシュメモリセルアレイの中の一意な物理アドレスに変換する。ブロック１６３は、メモリシステムコントローラによって保守されるこれらの論理−物理アドレス変換の作業テーブルを表している。
【００３８】
メモリシステムコントローラは、システムの性能を高い水準に維持しながらメモリアレイ１６５のブロックおよびメタブロックの中でデータファイルを格納するようにプログラムされる。この例証では４つのプレーンまたはサブアレイが使われている。データは好ましくは、各プレーンのブロックから形成されたメタブロック全体にわたって、システムが許す最大限の並列度でプログラムされ、読み出される。通常は、メモリコントローラによって使用されるオペレーティングファームウェアおよびデータを格納する予約ブロックとして、少なくとも１つのメタブロック１６７が割り振られる。ホストオペレーティングソフトウェアやホストＦＡＴテーブル等の格納のため、別のメタブロック１６９または複数のメタブロックを割り振ることができる。物理格納空間のほとんどはデータファイルの格納のために残る。しかし、メモリコントローラは、様々なファイルオブジェクトにおいて受信データがホストによってどのように割り振られたかを通常認識しない。通常、メモリコントローラがホストとのやり取りを通じて認識することの全ては、ホストによって特定の論理アドレスに書き込まれるデータが対応する物理アドレスに格納されるということだけであり、これはコントローラの論理−物理アドレステーブル１６３によって保守される。
【００３９】
典型的なメモリシステムにおいて、アドレス空間１６１の中のデータ量を格納する必要があるのとは別に数ブロック分の格納容量が余分に用意される。メモリの寿命の中で他のブロックが故障した場合に代用される冗長ブロックとして、これらの余分のブロックを１つ以上用意することができる。当初メタブロックに割り当てられていた欠陥ブロックのための冗長ブロックを代用する等、個別のメタブロックに収容されるブロックの論理的グループ分けは通常、様々な理由から変化する。消去済みブロックプールでは通常、メタブロック１７１等、１つ以上の追加的ブロックが保守される。ホストがメモリシステムにデータを書き込む場合、コントローラはホストによって割り当てられた論理アドレスを、消去済みブロックプールにあるメタブロックの中の物理アドレスに変換する。次いで、論理アドレス空間１６１の中でデータ格納のために使われていない他のメタブロックは消去され、以降のデータ書き込み操作のときに使用するための消去済みプールブロックとして指定される。
【００４０】
特定のホスト論理アドレスに格納されたデータは、元の格納データが用済みになると、新規データによって頻繁に上書きされる。これに応じてメモリシステムコントローラは新規データを消去済みブロックに書き込み、論理アドレスでデータを格納する新規の物理ブロックを明らかにするため、それらの論理アドレスの論理−物理アドレステーブルを変更する。次いで、それらの論理アドレスで元のデータを収容するブロックは消去され、新規データの格納のために使用できるようになる。通常、書き込みが始まるときに消去ブロックプールの消去済みブロックに十分な格納容量がない場合、この消去はしばしば、最新のデータ書き込み操作が完了する前に行わなければならない。これはシステムのデータプログラミング速度を損なうおそれがある。メモリコントローラは通常、ある所与の論理アドレスにあるデータが用済みになっていることを、ホストがそれと同じ論理アドレスに新規データを書き込むときに初めて知る。したがって、メモリのブロックの多くは、そのような無効データを暫くの間格納することがある。
【００４１】
集積回路メモリチップの領域を効率よく使用するためのブロックとメタブロックのサイズは拡大している。その結果、個別データ書き込みの大部分で格納されるデータ量はメタブロックの格納容量に満たなく、多くの場合、ブロックの格納容量にすら満たない。メモリシステムコントローラは通常、新規データを消去済みプールのメタブロックへ誘導するから、メタブロックには埋まらない部分が生じる。新規データが別のメタブロックに格納されたデータの更新にあたる場合、その別のメタブロックにある、新規データメタページの論理アドレスと隣接する論理アドレスを持つ、残りの有効データメタページもまた、望ましくは論理アドレスの順序で新規メタブロックにコピーされる。古いメタブロックは他の有効データメタページを保持することがある。その結果、個別メタブロックの一部のメタページのデータはいずれ用済み、無効となり、同じ論理アドレスを持つ新規データに置き換えられ、別のメタブロックに書き込まれる。
【００４２】
論理アドレス空間１６１の全体にわたってデータ格納のために十分な物理メモリ空間を維持するため、そのようなデータは定期的に圧縮または整理される（ガーベッジコレクション）。メタブロックの中でデータセクタをできる限り論理アドレスと同じ順序に保つことも望ましく、なぜならこうすれば連続する論理アドレスでデータをより効率的に読み出すことができるからである。よって、通常は、このさらなる目的のためにもデータの圧縮とガーベッジコレクションが行われる。米国特許第６，７６３，４２４号（特許文献１４）には、部分的ブロックデータ更新を受け取るときのメモリ管理とメタブロック使用の態様がいくつか記載されている。
【００４３】
データ圧縮では通常、メタブロックから有効データメタページを全て読み出し、それらを新規メタブロックに書き込み、その過程で無効データを含むメタページは無視する。また、有効データを含むメタページは好ましくは、そこに格納されたデータの論理アドレスの順序に一致する物理アドレスの順序に配置される。無効データを収容するメタページは新規メタブロックへコピーされないから、新規メタブロックに占めるメタページ数は古いメタブロックにおけるメタページ数を下回る。次いで、古いブロックは消去され、新規データの格納のために使用できるようになる。この整理によって得られる追加メタページ容量は、他のデータの格納に役立てることができる。
【００４４】
ガーベッジコレクション中に、論理アドレスが隣接するかほぼ隣接する有効データのメタページが２つ以上のメタブロックから回収され、別のメタブロック、通常ならば消去済みブロックプールのメタブロックに書き換えられる。元の２つ以上のメタブロックから全ての有効データメタページがコピーされたら、先々の使用に向けてそれらを消去できる。
【００４５】
データの整理とガーベッジコレクションには時間がかかり、データの整理またはガーベッジコレクションをホストからのコマンドを実行する前に行う必要がある場合は特に、メモリシステムの性能に影響する。メモリシステムコントローラは通常、そのような操作を可能な限りバックグラウンドで行うようにスケジュールするが、これらの操作を遂行する必要から、コントローラは、そのような操作が完了するまではビジーステータス標識をホストに提供しなければならない。ホストコマンドの実行を延期する一例として、ホストがメモリに書き込もうとするデータの全てを格納するにあたって十分な消去済みメタブロックが消去済みブロックプールにない場合、まずはデータの整理またはガーベッジコレクションで１つ以上の有効データメタブロックを片づける必要があり、その後それらのメタブロックを消去できる。これまで、そのような混乱を最小限に抑えるためにメモリ制御の管理に注意が払われてきた。そのような手法が、２００３年１２月３０日に出願された「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 」という米国特許出願第１０／９１７，７２５号（特許文献２０）に数多く記載されている。
【００４６】
非常に大きい消去ブロックを伴うメモリアレイの動作を効率的に制御するにあたって１つの課題となるのは、所与の書き込み操作中に格納されるデータセクタの数を、メモリのブロックの容量に一致させ、その境界に整合させることである。１つのアプローチでは、ホストからの新規データの格納に使うメタブロックを、メタブロック全体を埋め尽くす量に満たない一定量のデータを格納する必要があるように最大ブロック数未満で適宜構成する。適応メタブロックの使用が、２００３年１２月３０日に出願された「Adaptive Metablocks」という米国特許出願第１０／７４９，１８９号（特許文献２１）に記載されている。データブロック間の境界とメタブロック間の物理的境界の整合が、２００４年５月７日に出願された米国特許出願第１０／８４１，１１８号（特許文献２２）、および２００４年１２月１６日に出願された「Data Run Programming」という米国特許出願第１１／０１６，２７１号（特許文献２３）に記載されている。
【００４７】
また、メモリコントローラは、ホストによって不揮発性メモリに格納されるＦＡＴテーブルのデータをメモリシステムをより効率的に動作させるのに役立てることができる。例えば、論理アドレスの解除によりホストによってデータが用済みと識別されたことを知るのに役立てる。メモリコントローラは、通常ならばホストがその論理アドレスに新規データを書き込むことから知るこれを、事前に知ることにより、そのような無効データを収容するブロックの消去スケジュールを立てることができる。これは、２００４年７月２１日に出願された「Method and Apparatus for Maintaining Data on Non-Volatile Memory Systems」という米国特許出願第１０／８９７，０４９号（特許文献２４）に記載されている。この他の手法として、ホストがメモリに新規データを書き込むホストパターンを監視することにより、所与の書き込み操作が単一ファイルか否かを、または複数のファイルである場合にはファイル間の境界がどこにあるかを推定する。２００４年１２月２３日に出願された「FAT Analysis for Optimized Sequential Cluster Management」という米国特許出願第１１／０２２，３６９号（特許文献２５）には、この種の手法の使用が記載されている。
【００４８】
メモリシステムを効率よく操作するには、ホストによって個別のファイルのデータに割り当てられる論理アドレスについて、コントローラができるだけ多くのことを知ることができるのが望ましい。しかし、前述したように、ホスト／メモリインターフェイスが論理アドレス空間１６１（図７）を含む場合、メモリコントローラがホストデータファイル構造について多くを知ることは困難である。
【００４９】
ファイル本位アドレシング
大量データ格納のためのホスト−メモリシステム間の代替のインターフェイスは、論理アドレス空間の使用を解消する。あるいは、ホストは、一意なファイルＩＤ（またはその他の一意な参照符）と、ファイル内でのデータ単位（バイト等）のオフセットアドレスとによって各ファイルを論理的にアドレスする。このファイルアドレスはメモリシステムコントローラへ直接提供され、メモリシステムコントローラは、各ホストファイルのデータが物理的に格納される位置について独自のテーブルを保管する。この新規インターフェイスは、図２〜図６に関して前述したのと同じメモリシステムで実装できる。図２〜図６で説明したものとの主な違いは、メモリシステムがホストシステムと通信することにある。
【００５０】
図８にはファイル本位インターフェイスが示され、これは図７の論理アドレスインターフェイスと比較するべきものである。ファイル１、２、および３の各々の識別と図８のファイルの中でのデータのオフセットは、メモリコントローラへ直接引き渡される。次いで、この論理アドレス情報はメモリコントローラ機能１７３によってメモリ１６５のメタブロックおよびメタページの物理アドレスに翻訳される。
【００５１】
メモリシステムは、各ファイルを構成するデータの位置を認識しているため、これらのデータは、ホストがファイルを削除した後直ちに消去できる。典型的な論理アドレスインターフェイスでは通常、このようにならない。さらに、論理アドレスを使用する代わりにファイルオブジェクトによってホストデータを識別することにより、メモリシステムコントローラは、頻繁なデータの整理および回収の必要性を抑える方法でデータを格納できる。したがって、データコピー操作の頻度とコピーされるデータ量は大幅に低下し、これによりメモリシステムのデータプログラミングおよび読み出し性能は向上する。
【００５２】
ファイル本位インターフェイスの例として、直接データファイル記憶を使用するものがある。いずれも２００５年２月１６日に出願された、Alan W. Sinclairのみによる、または同人と併せてPeter J. Smithによる同時係属中の米国特許出願第１１／０６０，１７４号（特許文献２６）、第１１／０６０，２４８号（特許文献２７）、および第１１／０６０，２４９号（特許文献２８）、およびAlan W. SinclairとBarry Wrightにより出願された「Direct Data File Storage in Flash Memories」という仮米国特許出願第６０／７０５，３８８号（特許文献２９）（これ以降「直接データファイル記憶出願」と総称する）では、直接データファイル記憶メモリシステムが記載されている。
【００５３】
図８に示された、これらの直接データファイル記憶出願の直接データファイルインターフェイスは、図７に示された前述した論理アドレス空間インターフェイスよりシンプルであり、メモリシステムの性能を上げるため、直接データファイル記憶は多くの用途にとって好ましい。しかし、現在、ホストシステムは主に論理アドレス空間インターフェイスで動作するように構成されているから、直接データファイルインターフェイスを有するメモリシステムはほとんどのホストに適合しない。したがって、どちらのインターフェイスとでも動作できるメモリシステムを提供するのが望ましい。
【００５４】
論理−仮想ファイルマッピング
２００５年８月３日に出願された「Interfacing systems operating through a logical address space and on a direct data file basis」という米国特許出願第１１／１９６，８６９号（特許文献３０）は、メモリシステムが論理アドレス形インターフェイスまたはファイル本位インターフェイスのいずれかを用いてホストと連係することを可能にするシステムを記載している。図９は、そのようなシステムを示す。この例は、図７のホスト動作に図８のファイル本位メモリ動作を組み合わせ、さらにメモリシステムの中にアドレス変換１７２を加えるものである。アドレス変換１７２は、メモリ空間１６１にまたがる論理アドレスのグループを、修正されたアドレス空間１６１’にまたがる個別の論理ファイルａ〜ｊにマッピングする。好ましくは論理アドレス空間１６１全体がこれらの論理ファイルに分割され、かくして論理ファイルの数は、論理アドレス空間および個別の論理ファイルのサイズに依拠する。論理ファイルの各々は、空間１６１にまたがる１グループの連続論理アドレスのデータを収容する。各々の論理ファイルの中のデータ量は好ましくは同じであり、その量は、メモリ１６５の１メタブロックのデータ格納容量に等しい。論理ファイルの不等サイズおよび／またはメモリのブロックまたはメタブロックの格納容量とは異なるサイズは、確かに可能ではあるが、好ましくはない。
【００５５】
個々のファイルａ〜ｊの中のデータは、ファイル内の論理オフセットアドレスによって表される。論理ファイルのファイル識別子とデータオフセットは１７３でメモリ１６５内の物理アドレスに変換される。論理ファイルａ〜ｊは、直接データファイル記憶出願で記載されているのと同じプロセスとプロトコルとによってメモリ１６５に直接格納される。そのプロセスは、図９のデータファイル１〜３をメモリ１６５に格納するプロセスと同じであるが、各論理ファイル内のデータ量は分かっているから、特にその量がメモリのブロックまたはメタブロックの容量に等しければ、プロセスはより簡単なものとなる。図９は、論理ファイルａ〜ｊの各々がメモリ１６５の異なるメタブロックの１つにマッピングされる様子を示している。ファイル本位データ記憶が、ホストの本来の相手方にあたる現在の論理アドレスメモリシステムと同じか同等のやり方で、ホストとやり取りすることもまた望ましい。個別の論理ファイルを対応する個別のメモリメタブロックにマッピングすることにより、論理アドレス空間インターフェイスを使用する場合と実質的に同じ性能とタイミング特性が直接データファイルインターフェイスメモリシステムで達成される。
【００５６】
従来の論理アドレス空間インターフェイスを通じてホストと連係するように設計された図９のデータファイル本位バックエンド記憶システムには、直接データファイルインターフェイスを加えることもできる。ファイルインターフェイスからのホストデータファイルと論理インターフェイスによって変換される論理ファイルはいずれも、メモリメタブロックアドレスに翻訳される。次いで、データは、直接データファイルプロトコルを実行することによってそれらのメモリアドレスに格納される。このプロトコルには、前述した直接データファイル記憶出願の直接データファイル記憶手法が盛り込まれる。
【００５７】
論理アドレス形ファイル記憶
前述したように、メモリシステムにおいて、隣接するメモリアレイ領域に格納されファイル本位の方法で管理されるファイルとしてデータを保守することには利点がある。しかし、多くのホストは、論理アドレスを有するデータセクタの形でデータをメモリシステムに提供する。そのようなシステムでホストファイルは論理的に断片化することがあり、その結果、１ホストファイルが多数の論理アドレス範囲を占め、介在する論理アドレス範囲は他のデータによって占められることとなる。論理アドレス空間を所定の方法で仮想ファイルにマッピングすることにより、論理的にアドレスされたデータをファイル本位バックエンドで処理できるが、仮想ファイルは論理アドレス空間の論理的に断片化したパターンをとどめるから、１つの仮想ファイルを収容するメタブロックが多数のホストファイルからのデータを収容することになる。メモリシステムにとっては、論理的にアドレスされたデータをホストから受け取り、１ホストファイルのデータを、多くのまたは他のファイルのデータが入っていない１つ以上のブロックにまとめておく方法でこれを格納するのが望ましい。こうすれば、たとえホストが全ファイルに共通の論理アドレス空間の論理アドレスを持つセクタの形でデータを送る場合でも、ファイル本位記憶の利点のいくつかは実現できる。
【００５８】
一実施形態において、ホストは、データセクタの送信に先立ちそのデータセクタに関する情報をメモリシステムへ送信する。この情報は、メモリシステムがそのセクタを同じファイルの他のセクタとともに格納する際に役立てることができる。かくして、同じファイルのセクタを、そのファイルだけを格納する特定のブロックにまとめておくことができる（しかし、複数のファイルのデータを格納するブロックもある）。ホストによって送信される情報は、送信されようとするセクタの割り当て情報を提供するＦＡＴセクタとディレクトリセクタの形をとってよい。これは、ホストがデータセクタを送信した後にＦＡＴセクタとディレクトリセクタの形で割り当て情報を送信する通常の順序とは逆の順序にあたる。また、従来のシステムのメモリシステムは通常、ＦＡＴセクタとディレクトリセクタの内容をもとにその動作を修正することはしない。
【００５９】
論理アドレス形ファイル記憶方式の一目的は、論理的に断片化したデータをホストから受け取り、断片化の度合いが論理的配置より低い物理的配置でファイルを格納することにある。かくして、論理アドレス空間の隣接しない２箇所以上にマッピングされるファイル（２箇所の間に他の論理アドレスがある）は、物理メモリアレイの中で隣接して格納される。ファイルを物理的に隣接するように格納するということは、１ファイルの全データが１つのブロックに収まることを意味し、あるいはファイルのデータが１ブロックの容量を超える場合には、そのファイルのデータだけで１つ以上のブロックが独占的に占有され、そのファイルのデータとそのファイル以外のデータを収容するブロックがただ１つとなることを意味する。そのファイルのデータを格納するブロックは特定の配置になっていなくてもよい。したがって、この文脈における「隣接」は、ファイルを収容するブロックが寄り集まっていることを意味するのではなく、個別のブロック内でのデータの配置を指す。
【００６０】
図１０は、本発明の一実施形態に従い論理アドレス形ファイル記憶方式を示す。ファイル１、ファイル２、およびファイル３は、メモリアレイ１８０に格納するためにホストによって送信される。ファイル−論理アドレス変換１６０はホストによって図７に示すものと同様に行われ、その結果ファイル１、２、および３は共通の論理アドレス空間１６１へマッピングされる。このマッピングによってファイルはデータファイル２に見られるように論理的に断片化することがあり、データファイル２は論理アドレス空間１６１の２つの部分を占め、２つの部分は、ファイル２のデータによって占有されていない中間部分によって隔てられている。データファイル３も同様に２つの部分に分かれている。メモリシステムによってはファイルはさらに断片化し、ファイルは多数の分離された論理アドレス空間部分を占めることがある。ファイル−論理アドレス変換情報１８２は、ファイル−論理アドレス変換１６０によってデータファイル１、２、および３が論理アドレス空間にマッピングされるときに生成される。ファイル−論理アドレス変換情報１８２はメモリへ引き渡される。しかし、多くの従来のシステムと違って、この場合のファイル−論理変換情報１８２は、これが言及するところのデータより前にメモリへ送信される。したがって、論理アドレス空間１６１の２つの異なる論理アドレス範囲へのファイル２のマッピングを反映する情報は、それらの論理アドレス範囲のデータセクタが送信される前にメモリへ送信される。論理−物理アドレス翻訳１８４は、個別のセクタを格納する物理位置の判定にあたってファイル−論理アドレス変換情報１８２を役立てることにより行うことができる。
【００６１】
図１０は、予約ブロックとして割り当てられたメタブロック１６７と、ホストオペレーティングシステム、ホストＦＡＴテーブル、その他の格納のために割り当てられたメタブロック１６９と、これまでどおり消去済みブロックプールで保守されるメタブロック１７１とを示している。また、図１０は、１つのメタブロックに格納されたファイル１と、別のメタブロックにあるファイル２と、前述した以外の２つのメタブロックを占めるファイル３とを示している。ファイル２は論理アドレス空間１６１の２つの別々の部分にマッピングされているが、論理−物理アドレス翻訳１８４の結果、ファイル２の２つの部分は一緒に格納される。同様に、ファイル３は２つの部分に論理的に断片化され、論理アドレス空間１６１の互いに隔てられた２つの部分を占めている。論理アドレス空間の介在部分にはファイル３以外のさらなるデータがマッピングされている。しかし、ファイル３の論理的に分離した部分は、他のファイルのデータが入っていない２つのメタブロックに一緒に格納される。ただ１つのファイルのデータだけを収容するこのメタブロックのファイルの配置は、ファイルが用済みになるときにメタブロック全体が用済みとなり、通常ならばガーベッジコレクション中に行う有効データのコピーが必要でなくなるから、有利である。ファイルは整数個のメタブロックを埋め尽くすとは限らず、メタブロックの不使用部分を維持するとメモリ容量が減少するから、全てのメタブロックが１ファイルのデータだけを格納するのは効率的でないかもしれない。しかし、たとえいくつかのメタブロックが複数のファイルのデータを収容する場合でも、メモリアレイにおけるファイルの断片化の度合いは従来のシステムに比べて抑えることができる。
【００６２】
図１１は、論理アドレス空間１６１へマッピングされ、このマッピングにより４つの部分に論理的に断片化されるファイルＡの例を示す。このマッピングに関するファイル−論理アドレス変換情報１８２は、メモリへデータが送信される前にメモリへ送信される。このようにファイルＡの各部がマッピングされる論理アドレスは、ファイル−論理アドレス情報１８２によってファイルＡと識別される。ファイルＡのデータがメモリへ送信されるとき、メモリへ送信されたファイルＡのデータの格納位置が、ファイルＡとしての識別によって決まる。図１１は、メモリで行われる論理−物理翻訳１８４を示している。論理アドレス空間１６１の別々の部分にマッピングされたファイルＡの各部は、物理メモリアレイ１８０の隣接する部分にマッピングされる。この例で、メタブロック４はファイルＡのデータで満たされ、メタブロック７はファイルＡのデータで部分的に満たされている。メタブロック７のデータには後ほど他のファイルのデータを併合できるから、メモリアレイ空間は浪費されない。しかし、メタブロック４は専らファイルＡのデータだけを格納し続ける。ファイルＡが閉じると、メモリはメタブロック７のデータを他のファイルの同様のデータとともに整理できる。複数のファイルからの残余のファイルデータを１つの共通ブロックで効率的に併合する直接データファイル出願には、そのような部分的メタブロックの整理の仕方が記載されている。
【００６３】
通知方式
ホストからメモリへファイル−論理アドレス変換情報を送信するには、様々な通知方式が可能である。一例において、使用する通知方式の形式はメモリに制御情報を格納するときに一般的に使われるものと同じである。この方式ではＦＡＴセクタとディレクトリセクタを使って不揮発性メモリでＦＡＴおよびディレクトリ情報を更新するので、その情報を後ほどリカバリに役立てることができる。図１２は、ファイル割り当て情報がどのように格納されるかを示す。ファイルＡおよびＢはメモリに格納される。ディレクトリは、ファイルＡとファイルＢの項目の両方を収容する。ディレクトリ項目は、ファイルの第１のクラスタのアドレス等、ファイルについて様々な情報を収容する。ファイルＡの場合、ディレクトリ項目はクラスタ２が第１のクラスタであることを伝えているから、ファイルＡの第１のＦＡＴ項目はクラスタ２の項目である。ファイルＢの場合、ディレクトリ項目は第１のクラスタがクラスタ０であることを伝えている。ＦＡＴ内のクラスタ項目はそのファイルの次のクラスタを指示する。したがって、あるファイルの第１のＦＡＴ項目の位置をディレクトリから入手したら、そのファイルに割り当てられた前のクラスタのＦＡＴ項目によって後続のＦＡＴ項目が指示される。ＦＡＴ項目は、ある特定のファイルで１つのＦＡＴ項目が次のＦＡＴ項目の位置を指示することから「連なっている」と見ることができる。ファイルＡの場合、ディレクトリが指示する第１のクラスタはクラスタ２である。クラスタ２の項目は、ファイルＡの次のクラスタがクラスタ３であると伝えている。クラスタ３の項目は、ファイルＡの次のクラスタがクラスタ４であると伝えている。クラスタ４の項目はファイルの終端（ＥｏＦ）を伝えている。したがって、ファイルＡに割り当てられた最後のクラスタはクラスタ４である。ファイルＢの場合、ディレクトリが指示する第１のクラスタはクラスタ０である。クラスタ０の項目は、ファイルＢの次のクラスタがクラスタ１であると伝えている。クラスタ１の項目は、ファイルＢの次のクラスタがクラスタ５であると伝えている。クラスタ５の項目はファイルＢの次のクラスタがクラスタ６であると伝え、クラスタ６の項目はファイルの終端を伝えている。したがって、ファイルＢの最後のクラスタはクラスタ６である。通常、ＦＡＴとディレクトリの情報はホストによって保守され、ＦＡＴセクタとディレクトリセクタの送信によって定期的に不揮発性メモリに格納される。
【００６４】
以前の方式では、ファイル−論理アドレス情報の格納にディレクトリおよびＦＡＴ構造を役立てていた。しかし、本発明の一実施形態による方式は以前の方式と違って、メモリへデータを送信する前にファイル−論理アドレス情報を送信する。典型的な従来のシステムで、ＦＡＴセクタとディレクトリセクタは、それらが言及するところのデータが送信されメモリに格納された後にだけ送信されていた。ＦＡＴセクタとディレクトリセクタの送信を遅らせることには、データが書き込まれる前に停電があった場合に不揮発性メモリに誤った情報が記録されるのを防ぐという理由がある。一実施形態における方式は、ファイルのＦＡＴの一部を、それが言及するところのファイルが格納される前にただ書き込むことによってこの問題を回避する。こうすれば、停電が生じた場合に、ファイルの書き込みが完了しなかったことと、ファイルデータが使用できないかもしれないこととが、不完全なＦＡＴから分かる。
【００６５】
例示的な通知方式において、ホストによって送信されるデータセクタのファイル割り当てをメモリに通知するため、ＦＡＴセクタとディレクトリセクタがホストによって送信される。通常、送信されるホストデータのクラスタごとにファイル割り当て情報を送信する必要はない。メモリは通常、ホストが連続するセクタのクラスタを送信する場合に、それらのクラスタが同じファイルに属するものと仮定する。したがって、ホストは、１つのファイルを連続クラスタのストリームとして送信する場合に、第１のクラスタを送信する前にそのファイルを識別し、最後のセクタの後にファイル終端標識を送信するだけでよい。図１３は、ホストが図１２のファイルＡをメモリへ送信する例を示す。まずは、ファイルＡの第１のクラスタがクラスタ２であることを伝えるディレクトリセクタ３０１が送信される。次いで、クラスタ２のセクタが送信されるが、これは新規ホストファイルの先頭にあたるから、メモリによってメモリアレイの新規ブロック３０２に格納される。その後、クラスタ３および４のセクタが順次受信され、クラスタ２のセクタと同じブロックに格納される。ホストはクラスタ４が受信された後に、これがファイルＡの最後のクラスタであることを伝えるクラスタ４のファイル終端項目を含むＦＡＴセクタ３０３を送信する。この時点でファイルＡの全体は格納済みだから、ファイルＡのＦＡＴ情報一式を送信することもできる。メモリはこの時点でファイルＡを閉じることができ、さらに必要とあらば再生操作を遂行できる。これは、ファイルを他のファイルの書き込みを介さずに論理的に連続する方法で送信する例である。
【００６６】
図１４は、ホストが図１２のファイルＢを送信する例を示している。まずは、ファイルＢの第１のクラスタがクラスタ０であることを伝えるディレクトリセクタ４１０が送信される。次いで、クラスタ０のセクタが送信されるが、これらは新規ファイルの第１のセクタだから、新規ブロック４１２に格納される。次いで、クラスタ１のセクタを受信するが、これらはクラスタ０のセクタの続きだから、これらもまたファイルＢのものと仮定されるので、ブロック４１２に格納される。次いで、クラスタ１のＦＡＴ項目を含むＦＡＴセクタ４１４を受信し、この項目のポインタがファイルＢの次のクラスタがクラスタ５であることを伝える。この時点でクラスタ５はまだホストによって送信されていないから、ＦＡＴセクタ４１４にクラスタ５の項目はなくてよい。ＦＡＴセクタ４１４は、クラスタ１からクラスタ５にかけて論理アドレスの飛躍はあってもクラスタ１の後に次ぐファイルＢの次のデータがクラスタ５のセクタにあることを、メモリコントローラに知らせる。次いで、クラスタ５のセクタが受信され、クラスタ１のセクタとともにブロック４１２に格納される。次いで、クラスタ６を受信するが、これはクラスタ５の続きだから、これもブロック４１２に格納される。その後、クラスタ６のファイル終端項目を含むＦＡＴセクタ４１６を受信する。ここでファイルＢを閉じることができ、さらに必要とあらばファイルＢを収容するブロックで再生操作を遂行できる。メモリは、論理アドレスに飛躍があるときに、ホストが同じファイルの次のクラスタの書き込みを継続すると仮定する場合がある。そのようなメモリシステムにおいて、論理アドレスの飛躍をともないながら同じファイルからのデータの書き込みをホストが継続するにあたって、具体的な通知は必要とされない。クラスタ１のセクタとクラスタ５のセクタとの間には論理アドレスの飛躍があるが、ホストは、ファイルＢの送信に専らあてがわれた期間にわたってファイルＢを送信するから（つまりこの期間内に他のファイルからデータセクタは送信されないから）、図１４は、他のファイルの書き込みを介さない、論理的に連続しない、ファイル書き込みの例とみなすことができる。
【００６７】
図１５Ａは、ホストによって論理アドレス空間の一部にマッピングされた２つのファイルＣおよびＤを示している。この場合、２つのファイルＣおよびＤは論理アドレス空間の中で断片化するばかりでなく、一時的に断片化した状態で送信される。ファイルＣおよびＤのクラスタはホストによって論理的な順序で送信されるから、最初にクラスタ１０が送信され、次にクラスタ１１、次にクラスタ１２というふうに続く。この場合、クラスタは論理的に連続する順序で送信されるが、あるファイルから別のファイルにかけてある程度の変更を伴う。メモリはファイル間の変更の通知をホストから受ける。
【００６８】
図１５Ｂは、ホストが別のファイルの書き込みを開始することをどのようにメモリに通知するかを示す。まずは、ファイルＣの第１のクラスタがクラスタ１０であることを伝えるディレクトリセクタ５２０が送信される。次いで、クラスタ１０のセクタがホストによって送信され、それらは新規ファイルの第１のセクタであるから、メモリアレイ内の新規ブロック５２２に格納される。次いで、ホストは、ファイルＤの第１のクラスタがクラスタ１１であることを伝える別のディレクトリセクタ５２４を送信する。その後、クラスタ１１が送信され、別の新規ブロック５２６に格納される。次いで、クラスタ１２が受信され、クラスタ１１とともにブロック５２６に格納される。メモリシステムは、クラスタ１２がクラスタ１１の続きであってホストから別段の指示は受けていないから、クラスタ１２がクラスタ１１と同じファイルに属するものと仮定する。次いで、クラスタ１０の項目を含むＦＡＴセクタがホストによって送信される。このクラスタ１０の項目は、クラスタ１０のファイル（ファイルＣ）の次のクラスタへのポインタを含む。この場合、そのポインタが指示するファイルＣの次のクラスタはクラスタ１３である。次いで、クラスタ１３を受信すると、メモリシステムは、たとえこれが論理的には最後に受信したクラスタ（クラスタ１２）の続きであっても、クラスタ１３がファイルＣに割り当てられたものであることを承知しているから、クラスタ１３のセクタはクラスタ１０のセクタとともにブロック５２２に格納される。
【００６９】
下の表は、前述した例のファイルデータ割り当てを識別する通知方式を要約したものである。
2009519555.tif 000003
【００７０】
クラスタが割り当てられたファイルを伝える前述した信号に加えて、ホストは、クラスタがある特定のファイルの最後のクラスタであることを伝える指示を、そのクラスタのファイル終端項目を含むＦＡＴセクタによって、送信できる。これによりファイルを閉じることができ、メモリシステムは、そのファイルを収容するブロックで後述する再生操作を遂行できる。
【００７１】
メモリ操作
一例において、ホストによってファイルが閉じられると、そのファイルデータを収容するメタブロックは再生操作の対象としてマークされる。本発明の手法を使用するメモリシステムでメモリ空間を再生するために用いられる手法は、直接データファイル記憶出願に記載されているものに類似している。具体的に、ファイルが閉じた時点でそのファイルのデータで満たされたメタブロックが１つ以上存在するかもしれないが、大抵はそのファイルのデータで部分的に満たされただけのメタブロックが１つある。ホストは、これらの残余のファイルデータを効率よく格納するため、ある１つのファイルの残余のファイルデータを、別のファイルの残余のファイルデータを収容するメタブロックへ、コピーすることができる。移動する残余のファイルデータとその移動先は、不使用のメモリ空間の量を低く抑える形で選ばれる。したがって、メタブロックの３０％を占める残余のファイルデータを残してファイルが閉じるならば、メモリシステムは、メタブロックに占める残余のファイルデータの割合が７０％（または、ほぼ７０％）のメタブロックを探す。複数のファイルのデータ部分を収容するメタブロックは共通ブロックとみなすことができる。直接データファイル記憶手法に本願の手法を組み合わせることもできるが、本発明の実施形態は通常、メモリアレイ内でのデータ管理にあたって、直接データファイル記憶で使われるファイル識別子ではなく、論理アドレスを使用する。
【００７２】
本発明の一実施形態によるメモリシステムは、別の例において、メモリアレイの中で１つ以上の専用メタブロックと１つの共通ブロックとにファイルを格納するから、ホストにとってファイルがもはや必要でなくなったら、専用メタブロックを再利用のために直ちに消去でき、共通ブロックはガーベッジコレクションのスケジュールに組み入れることができる。ホストによって送信されるディレクトリおよびＦＡＴ情報では通常、ホストがファイルを削除したことを、そのファイルのディレクトリ項目を除去することによって伝える。場合によっては、この削除がＦＡＴ項目に反映される。メモリシステムは、ファイルがホストによって削除されたことをディレクトリから判断できるから、そのファイルのデータだけを収容するメタブロックは消去できる。この時点でそのようなメタブロックは、継続的再生操作の一部として、消去されるメタブロックのキューに加えることができる。同様に、そのファイルのデータを収容する共通ブロックはガーベッジコレクションされるメタブロックのキューに加えることができるので、用済みデータで占められた空間は再生できる。メモリシステムがホストのファイル削除を把握し、それらのファイルがメタブロックの中で隣接して格納され、多くのメタブロックがただ１つのファイルのデータだけを収容するなら、再生操作のスケジュールを効率よく組むことができる。２００５年１０月２５日に出願された「Scheduling of reclaim operations in non-volatile memory」という米国特許出願第１１／２５９，４２３号（特許文献３１）には、そのようなスケジューリングの例が記載されている。
【００７３】
ＦＡＴセクタとディレクトリセクタに基づく通知方式には、これがＬＢＡインターフェイスで既に一般的に使われている信号を使用するという利点がある。ＦＡＴセクタとディレクトリセクタは送信のタイミングが多くの従来のシステムと異なるが、有効な情報を収容し、一般に従来のＬＢＡインターフェイスに適合する。よって、本発明の一実施形態による通知方式を使用するホストは、そのような通知方式を使用しないメモリシステムに適合する。そのようなメモリシステムはＦＡＴセクタとディレクトリセクタを格納するが、ホストデータセクタの格納位置を判断するにあたってそれらを役立てない。このようにして格納されたＦＡＴセクタは既に格納済みデータクラスタの項目を含むから、有効である。したがって、予期せぬ停電が起こる場合に、不揮発性メモリに格納されたＦＡＴデータに誤りはない。あるファイルのＦＡＴ情報が不完全であることから、停電が起きたときにメモリシステムがそのファイルのデータ格納を完了しなかったことが分かる。
【００７４】
前述した例では制御データのセクタ（ＦＡＴとディレクトリ）を使って割り当て情報を送信するが、既存の論理インターフェイスに適合する信号を使ってホストから他の情報を送信することもできる。２つ以上の同じＦＡＴセクタを送信することにより、その後のホスト挙動をメモリシステムに伝えることができる。ホストは、一例において、メモリシステムに直ちにアクセスする必要がないこと、そして電力が維持されることを、メモリシステムに伝えることができる。これは、重複するＦＡＴセクタを相次いで送信することによって指示できる。これらのセクタの一方だけがメモリシステムによって書き込まれる場合と、両方が書き込まれる場合とがある。重複ＦＡＴセクタを受信することに応じて、メモリシステムは、電力が維持されホストが即座のアクセスを求めていないと判断しているので、アイドル状態に入ることができる。アイドル状態に入ったメモリシステムは、再生操作等のハウスキーピング操作を遂行して、用済みデータを収容するメタブロックのガーベッジコレクションを行ったり、未書き込み部分があるメタブロックを整理したりできる。アイドル状態は、別のホストコマンドを受信することにより終了する。メモリシステムは、アイドルモードでハウスキーピング操作を遂行している最中にホストに対しビジーステータスを伝えることができる。ビジーステータス標識はメモリシステムがハウスキーピング操作を遂行していることをホストに知らせるが、ホストがハウスキーピング操作を終了し新たなコマンドの実行を開始するためのコマンドを送信することを阻止するものではない。ホストは、別の例において、同じＦＡＴセクタを３回送信することによって間近に迫った電力停止を伝えることができる。メモリシステムは、シャットダウン状態に入ることによってそのような信号に対応できる。この状態に入ったメモリシステムは、まだ格納されていないデータを不揮発性メモリに格納し、電力を無事停止するための他の何らかの操作を遂行するまでは、ホストに対しビジーステータスを指示する。ホストはメモリシステムがビジーでなくなるまで待った上で電力を停止させる。また、ホストは、複数の同じＦＡＴまたはディレクトリセクタを送信することによって他のホスト挙動を伝えることができる。また、ホストは、制御情報セクタの繰り返しによって削除の対象となる特定のファイルを識別できる。ある特定のファイルが削除されるべきであるという指示をメモリシステムがホストから受け取ると、そのファイルはガーベッジコレクションのキューに投入される。同様に、ホストは制御情報セクタの繰り返しによって消去の対象となる特定のファイルを識別できる。ある特定のファイルが消去されるべきであるという指示をメモリシステムがホストから受け取ると、メモリシステムは、そのファイルをガーベッジコレクションのキューに投入し、直ちにガーベッジコレクションに取りかかって、そのファイルの全データを不揮発性メモリアレイから除去する。
【００７５】
通知信号を使用できるメモリシステムがそのような通知信号を提供しないホストへ接続される場合、このメモリシステムはホストが通知信号を提供しないと判断し、次いでそのような信号を必要としない方法でデータを格納する。メモリシステムは、ホストから最初に連絡を受けるときにこの判断を下すことができる。例えば、メモリシステムは、ＦＡＴまたはディレクトリセクタを省いて書き込まれるデータセクタを受信する場合に、ホストがそのような信号を提供できないと判断でき、格納位置の選択にあたってセクタのファイル割り当てを無視するデータ格納方式を選ぶことができる。ホストは、一例において、ホストからの「ドライブ識別(identify drive)」コマンドによりメモリシステムが通知信号を使用できるか否かを判断できる。メモリシステムは「ドライブ識別」コマンドに応じてこの能力の有無を含む情報を返す。通知信号をサポートしないホストへ接続されたメモリシステムによって使われるデフォルトのデータ格納方式では、特定のセクタのファイル割り当てにかかわりなく図７に示すようにデータを格納できる。２００３年１２月３０日に出願された米国特許出願第１０／７５０，１５５号（特許文献１６）、２００４年８月１３日に出願された米国特許出願第１０／９１７，８８８号（特許文献１７）、第１０／９１７，８６７号（特許文献１８）、第１０／９１７，８８９号（特許文献１９）、および米国特許出願第１０／９１７，７２５号（特許文献２０）には、そのような格納方式の例が記載されている。
【００７６】
別の実施形態において、通知方式は既存のインターフェイスに準拠する通信に限定されない。ホストからメモリシステムへ割り当て情報を提供するため、既存のインターフェイスに適合しない追加的なコマンドを定義できる。そのような追加的なコマンドを使用するホストとカードは通常、最初に接続されるときにハンドシェークルーティンを必要とし、その上でそのような追加的なコマンドの使用が可能であることを確認できる。通常、そのような追加的なコマンドを使用できるホストとカードは、追加的なコマンドを使用できないホストまたはカードへ接続された場合に、追加的なコマンドなしでも動作できる。よって、そのような新規コマンドを使用するホストとメモリシステムにとって下位互換性は維持される。ファイル割り当て情報を伝えることに関係しない追加的なコマンドも供給される。例えば、ホストがある特定のファイルを消去または削除するための明示的なコマンドを定義できる。
【００７７】
これまで本発明の様々な態様をその例示的な実施形態との関係で説明してきたが、本発明が添付の特許請求の範囲の全範囲内においてその権利が保護されるべきであることが理解できよう。
【図面の簡単な説明】
【００７８】
【図１】現在実装されているホストと接続された不揮発性メモリシステムとを概略的に示す。
【図２】図１の不揮発性メモリとして使用するフラッシュメモリシステム例のブロック図である。
【図３】図２のシステムに使用できるメモリセルアレイの代表的な回路図である。
【図４】図２のシステムの物理メモリの編制例を示す。
【図５】図４の物理メモリの一部分の拡大図を示す。
【図６】図４および５の物理メモリの一部分のさらなる拡大図を示す。
【図７】ホストと再プログラム可能なメモリシステムとの間の共通論理アドレスインターフェイスを示す。
【図８】ホストと再プログラム可能なメモリシステムとの間のファイルインターフェイスを示す。
【図９】メモリシステムによる論理アドレス−論理ファイル変換に使用される論理アドレスインターフェイスを示す。
【図１０】メモリシステムにおける論理−物理アドレス翻訳がホストから受信するファイル−論理アドレス情報に依拠する、ホストとメモリシステムとの間の論理インターフェイスを示す。
【図１１】ファイルがホストによって論理的に断片化し、その後ファイルが格納されるときにメモリシステムによって断片化が解消する、図１０の論理インターフェイスを示す。
【図１２】ディレクトリとファイルアロケーションテーブル（ＦＡＴ）を用いたメモリシステムにおけるファイルＡおよびＢのファイル割り当て情報の格納を示す。
【図１３】ホストファイルＡが論理的に連続するホストデータクラスタとして送信される場合の通知方式の動作を示す。
【図１４】ホストファイルＢが論理アドレスの飛躍を含むホストデータクラスタとして送信される場合の通知方式の動作を示す。
【図１５Ａ】ディレクトリとファイルアロケーションテーブル（ＦＡＴ）を含むメモリシステムにおけるファイルＣおよびＤのファイル割り当て情報の格納を示す。
【図１５Ｂ】ファイルＣとファイルＤとでセクタのクラスタを交替しながらホストファイルＣおよびＤが論理的に連続するクラスタとして送信される場合の通知方式を示す。
【図１】
2009519555.tif 000004
【図２】
2009519555.tif 000005
【図３】
2009519555.tif 000006
【図４】
2009519555.tif 000007
【図５】
2009519555.tif 000008
【図６】
2009519555.tif 000009
【図７】
2009519555.tif 000010
【図８】
2009519555.tif 000011
【図９】
2009519555.tif 000012
【図１０】
2009519555.tif 000013
【図１１】
2009519555.tif 000014
【図１２】
2009519555.tif 000015
【図１３】
2009519555.tif 000016
【図１４】
2009519555.tif 000017
【図１５Ａ】
2009519555.tif 000018
【図１５Ｂ】
2009519555.tif 000019
【国際調査報告】
2009519555.tif 000020
2009519555.tif 000021
2009519555.tif 000022