(57)【要約】  異なるプロトコルを使用するホストに適合するメモリシステムは、異なるプロトコルのためのプロトコルアダプタを含む。プロトコルアダプタは、異なる形式で提供されるデータに共通のバックエンドシステムを使用できるようにする。プロトコルアダプタは、ホストに対する応答を、バックエンドのためのコマンドを、適宜生成する。
2009518698.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリアレイにデータを記憶するメモリシステムであって、前記メモリシステムは１つ以上のアプリケーションから異なる論理形式でデータを受信し、かつ前記メモリアレイにて共通の論理形式でデータを記憶するメモリシステムにおいて、
第１のアプリケーションから第１のデータを、第１のホストファイルとして、前記第１のホストファイルの長さを指示した後に、受信し、かつ前記第１のデータを前記不揮発性メモリアレイへ送信する第１のプロトコルアダプタであって、前記不揮発性メモリアレイでは第１のファイル識別子を用いて記録される位置に前記第１のデータが記憶される、第１のプロトコルアダプタと、
第２のアプリケーションから第２のデータを、第２のホストファイルのデータとして識別されるデータストリームとして、前記第２のホストファイルの長さを指示せずに受信し、かつ前記第２のデータを前記不揮発性メモリアレイへ送信する第２のプロトコルアダプタであって、前記不揮発性メモリアレイでは第２のファイル識別子を用いて記録される位置に前記第２のデータが記憶される、第２のプロトコルアダプタと、
第３のアプリケーションから第３のデータを、前記メモリシステムのために規定される論理アドレス範囲の中の個別論理アドレスを有する複数のセクタとして受信し、かつ前記第３のデータを前記不揮発性メモリアレイへ送信する第３のプロトコルアダプタであって、前記不揮発性メモリアレイでは第３のファイル識別子を用いて記録される位置に前記第３のデータが記憶される、第３のプロトコルアダプタと、
を備えるメモリシステム。
【請求項２】
請求項１記載のメモリシステムにおいて、
前記メモリシステムは、規格化された接続により着脱可能な状態でホストシステムへ接続できるメモリカードに内蔵されるメモリシステム。
【請求項３】
請求項２記載のメモリシステムにおいて、
前記第１のアプリケーションは第１のホストシステムで実行し、前記メモリカードは第１のときに前記第１のホストシステムへ接続され、
前記第２のアプリケーションは第２のホストシステムで実行し、前記メモリカードは第２のときに前記第２のホストシステムへ接続され、
前記第３のアプリケーションは第３のホストシステムで実行し、前記メモリカードは第３のときに前記第３のホストシステムへ接続されるメモリシステム。
【請求項４】
請求項１記載のメモリシステムにおいて、
前記第１、第２、および第３のデータの前記位置は、前記第１、第２、および第３のファイル識別子の各々に対応する前記メモリアレイ内の１つ以上のブロックを指示する項目により記録されるメモリシステム。
【請求項５】
請求項１記載のメモリシステムにおいて、
前記第１のプロトコルアダプタは、前記第１のホストファイルが受信済みであることを伝える指示を前記ホストに向けて生成するメモリシステム。
【請求項６】
請求項１記載のメモリシステムにおいて、
前記第１のプロトコルアダプタは前記第１のホストファイルの終了の標識を生成し、標識により前記第１のデータはガーベッジコレクションのスケジュールに組み入れられるメモリシステム。
【請求項７】
ホストインターフェイスへ接続しかつ前記ホストインターフェイスを通じて受信するデータを記憶する着脱可能なメモリカードに埋め込まれたメモリシステムであって、
不揮発性メモリアレイと、
前記不揮発性メモリアレイの中でファイルとしてデータを管理するバックエンドメモリ管理システムと、
ホストと通信するインターフェイス層と、
前記インターフェイス層と前記バックエンドメモリ管理システムとの間に位置する翻訳層であって、前記翻訳層は前記インターフェイス層からホストコマンドを受信し、前記ホストコマンドはオブジェクトプロトコルに適合し、前記翻訳層は前記ホストコマンドの受信に応じて前記バックエンドメモリ管理システムに向けて翻訳済みコマンドを生成し、前記翻訳済みコマンドは前記オブジェクトプロトコルに適合しない、翻訳層と、
を備えるメモリシステム。
【請求項８】
請求項７記載のメモリシステムにおいて、
前記オブジェクトプロトコルは、メディアトランスポートプロトコル（ＭＴＰ）であるメモリシステム。
【請求項９】
請求項７記載のメモリシステムにおいて、
ホストはオブジェクトのサイズの指示を含むメタデータを前記オブジェクトを送信する前に送信し、前記翻訳層は前記ホストから前記オブジェクトの全体が受信済みであることを前記指示から判断するメモリシステム。
【請求項１０】
請求項９記載のメモリシステムにおいて、
前記翻訳層は、前記オブジェクトの全体が受信済みとの判断に応じて、前記ホストへ送信される応答を生成し、かつ前記バックエンドメモリ管理システムへ送信されるファイル終了標識を生成するメモリシステム。
【請求項１１】
請求項７記載のメモリシステムであって、
前記翻訳層は、
ホストファイルプロトコルを使用する第２のホストから前記バックエンドファイルプロトコルにかけて通信を翻訳するファイルプロトコルアダプタと、
論理アドレスプロトコルを使用する第３のホストから前記バックエンドファイルプロトコルにかけて通信を翻訳するＬＢＡプロトコルアダプタと、
をさらに備えるメモリシステム。
【請求項１２】
請求項１１記載のメモリシステムにおいて、
前記ＬＢＡプロトコルアダプタは、前記メモリシステムのために規定される論理アドレス空間から前記第３のホストによって割り振られた論理アドレスを有するデータセクタを受信し、かつ前記セクタを前記メモリアレイの１メタブロックの容量にサイズが等しい仮想ファイルにマッピングするメモリシステム。
【請求項１３】
不揮発性メモリアレイにデータを記憶するメモリシステムであって、前記メモリシステムは１つ以上のアプリケーションから異なる論理形式でデータを受信し、かつ前記メモリアレイにて共通の論理形式でデータを記憶するメモリシステムにおいて、
第１のアプリケーションから第１のデータを、第１のホストファイルとして、前記第１のホストファイルの長さを指示した後に、受信し、かつ前記第１のデータを前記不揮発性メモリアレイへ送信する第１のプロトコルアダプタであって、前記不揮発性メモリアレイでは第１のファイル識別子を用いて記録される位置に前記第１のデータが記憶される、第１のプロトコルアダプタと、
第２のアプリケーションから第２のデータを、第２のホストファイルのデータとして識別されるデータストリームとして、前記第２のホストファイルの長さを伝える先行の指示をせずに受信し、かつ前記第２のデータを前記不揮発性メモリアレイへ送信する第２のプロトコルアダプタであって、前記不揮発性メモリアレイでは第２のファイル識別子を用いて記録される位置に前記第２のデータが記憶される、第２のプロトコルアダプタと、
を備えるメモリシステム。
【請求項１４】
請求項１３記載のメモリシステムにおいて、
前記メモリシステムは、規格化された接続により着脱可能な状態でホストシステムへ接続できるメモリカードに内蔵されるメモリシステム。
【請求項１５】
請求項１４記載のメモリシステムにおいて、
前記第１のアプリケーションは第１のホストシステムで実行し、前記メモリカードは第１のときに前記第１のホストシステムへ接続され、
前記第２のアプリケーションは第２のホストシステムで実行し、前記メモリカードは第２のときに前記第２のホストシステムへ接続されるメモリシステム。
【請求項１６】
請求項１３記載のメモリシステムにおいて、
前記第１のデータと第２のデータとの前記位置は、前記第１および第２のファイル識別子の各々に対応する前記メモリアレイ内の１つ以上のブロックを指示する項目により記録されるメモリシステム。
【請求項１７】
請求項１３記載のメモリシステムにおいて、
前記第１のプロトコルアダプタは、前記第１のホストファイルが受信済みであることを伝える指示を前記ホストに向けて生成するメモリシステム。
【請求項１８】
請求項１３記載のメモリシステムにおいて、
前記第１のプロトコルアダプタは前記第１のホストファイルの終了の標識を生成し、標識により前記第１のデータはガーベッジコレクションのスケジュールに組み入れられるメモリシステム。
【請求項１９】
複数のホストプロトコルに適合するようにメモリシステムを操作する方法であって、前記メモリシステムはブロック消去可能なメモリアレイおよびコントローラを備える方法において、
ホストへ接続されるときにホストプロトコルを検出し、検出された前記ホストプロトコルに応じて複数のプロトコルアダプタからプロトコルアダプタを選択するステップであって、前記複数のプロトコルアダプタは少なくとも第１、第２、および第３のプロトコルアダプタを含むステップと、
所定の長さのファイルを、ファイルの長さの標識の後に、送信する第１のホストプロトコルの検出に応じて前記第１のプロトコルアダプタを選択するステップであって、個々のファイルは一意なファイル識別子を有するステップと、
ファイルを、ファイルの長さの標識なしで、送信する第２のホストプロトコルの検出に応じて前記第２のプロトコルアダプタを選択するステップであって、個々のファイルは一意なファイル識別子を有するステップと、
データセクタを送信する第３のホストプロトコルの検出に応じて前記第３のプロトコルアダプタを選択するステップであって、各セクタは前記メモリシステムのために規定される論理アドレス範囲の中の論理アドレスを有するステップと、
を含む方法。
【請求項２０】
請求項１９記載の方法において、
前記第１のプロトコルアダプタを通じて受信する第１のファイルを前記メモリアレイの第１の複数のブロックに記憶し、前記第１のファイル識別子と前記第１の複数のブロックとの間の第１のアソシエーションを記録するステップと、
前記第２のプロトコルアダプタを通じて受信する第２のファイルを前記メモリアレイの第２の複数のブロックに記憶し、前記第２のファイル識別子と前記第２の複数のブロックとの間の第２のアソシエーションを記録するステップと、
前記第３のプロトコルアダプタを通じて受信する複数のセクタを第３の複数のブロックに記憶し、前記第３のファイル識別子と前記第３の複数のブロックとの間の第３のアソシエーションを記録するステップと、
をさらに含む方法。
【請求項２１】
請求項１９記載の方法において、
前記第１のプロトコルアダプタは、前記所定の長さのデータが受信された後に前記第１のホストに向けて応答を生成する方法。
【請求項２２】
請求項１９記載の方法において、
前記第１のプロトコルアダプタは、前記所定の長さのデータの受信に応じてファイル終了標識を生成し、前記標識は、前記ファイルを閉鎖させ、かつガーベッジコレクションのスケジュールに組み入れる方法。
【請求項２３】
請求項１９記載の方法において、
前記第１、第２、または第３のプロトコルアダプタのうちのただひとつのプロトコルアダプタを随時一度に選択するステップをさらに含む方法。
【請求項２４】
請求項１９記載の方法において、
２つ以上のホストアプリケーションによる互い違いのアクセスを可能にするため、前記第１、第２、および第３のプロトコルアダプタのそれぞれをかわるがわるに選択するステップをさらに含む方法。
【請求項２５】
請求項１９記載の方法において、
前記メモリシステムは、着脱可能なメモリカードに埋め込まれる方法。
【請求項２６】
請求項２５記載の方法において、
前記メモリカードは、コンパクトフラッシュ、マルチメディアカード、セキュアデジタル、ミニＳＤ、メモリスティック、スマートメディア、またはトランスフラッシュから選ばれる規格に準拠する方法。
【請求項２７】
着脱可能なメモリカードで不揮発性メモリシステムを操作する方法であって、
オブジェクトの中のデータ量の指示を含むメタデータをホストから受信するステップと、
引き続き前記ホストから前記オブジェクトを受信し、前記ホストから受信したオブジェクトデータの量を前記メタデータによって指示される前記データ量に比較することによって前記オブジェクトの全体が受信済みか否かを判断するステップと、
前記オブジェクトの全体が受信済みとの判断に応じて、前記ホストへ応答を送信し、前記オブジェクトに対応する前記メモリシステム内のファイルを閉鎖するステップであって、前記ファイルは閉鎖の結果としてガーベッジコレクションに向けてマークされるステップと、
を含む方法。
【請求項２８】
請求項２７記載の方法において、
前記不揮発性メモリシステムに前記メタデータを記憶するステップをさらに含む方法。
【請求項２９】
請求項２７記載の方法において、
前記ホストは前記オブジェクトを含む階層を保守し、前記階層の中での前記オブジェクトの位置は前記メタデータによって提供される方法。
【請求項３０】
請求項２９記載の方法において、
前記ファイルは、前記階層におけるその位置にかかわりなく前記メモリシステムに記憶される方法。
【請求項３１】
請求項３０記載の方法において、
前記メタデータは、その後前記ファイルがホストによって要求されるときに、前記階層を再現するために使用される方法。
【請求項３２】
複数のホストプロトコルに適合するように着脱可能なメモリシステムを操作する方法であって、前記メモリシステムはブロック消去可能なメモリアレイおよびコントローラを備える方法において、
ホストへ接続されるときにホストプロトコルを検出し、検出された前記ホストプロトコルに応じて複数のプロトコルアダプタからプロトコルアダプタを選択するステップであって、前記複数のプロトコルアダプタは少なくとも第１のプロトコルアダプタと第２のプロトコルアダプタとを含むステップと、
所定の長さのファイルを、ファイルの長さの標識の後に、送信する第１のホストプロトコルの検出に応じて前記第１のプロトコルアダプタを選択するステップであって、個々のファイルは一意なファイル識別子を有するステップと、
ファイルを、ファイルの長さの標識なしで、送信する第２のホストプロトコルの検出に応じて前記第２のプロトコルアダプタを選択するステップであって、個々のファイルは一意なファイル識別子を有するステップと、
を含む方法。
【請求項３３】
請求項３２記載の方法において、
前記第１のプロトコルアダプタを通じて受信する第１のファイルを前記メモリアレイの第１の複数のブロックに記憶し、第１のファイル識別子と前記第１の複数のブロックとの間の第１のアソシエーションを記録するステップと、
前記第２のプロトコルアダプタを通じて受信する第２のファイルを前記メモリアレイの第２の複数のブロックに記憶し、第２のファイル識別子と前記第２の複数のブロックとの間の第２のアソシエーションを記録するステップと、
をさらに含む方法。
【請求項３４】
請求項３２記載の方法において、
前記第１のプロトコルアダプタは、前記所定の長さのデータが受信された後に前記第１のホストに向けて応答を生成する方法。
【請求項３５】
請求項３２記載の方法において、
前記第１のプロトコルアダプタは、前記所定の長さのデータの受信に応じてファイル終了標識を生成し、前記標識は、前記ファイルを閉鎖させ、かつガーベッジコレクションのスケジュールに組み入れる方法。
【請求項３６】
請求項３２記載の方法において、
前記第１または第２のプロトコルアダプタのうちのただひとつのプロトコルアダプタを随時一度に選択するステップをさらに含む方法。
【請求項３７】
請求項３２記載の方法において、
前記着脱可能なメモリシステムが２つ以上のホストと通信する場合に、前記第１または第２のプロトコルアダプタのそれぞれをかわるがわるに選択するステップをさらに含む方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、半導体フラッシュメモリなどの再プログラム可能な不揮発性メモリシステムの動作に関し、より具体的にはホストデバイスとメモリとのインターフェイスの管理に関する。本願明細書で参照される特許、特許出願、記事、その他の出版物、文書および事柄はいずれもあらゆる目的のためにその全体が本願明細書において参照により援用されている。
【背景技術】
【０００２】
初期世代の商用フラッシュメモリシステムでは、メモリセルからなる矩形のアレイが、標準ディスクドライブセクタのデータ量、すなわち５１２バイトを、各々記憶する多数のセルグループに分割されていた。さらに通常ならば、誤り訂正符号（ＥＣＣ）を記憶し、、ことによるとユーザデータおよび／またはこれを記憶するメモリセルグループに、関係する他のオーバーヘッドデータを記憶するため、１６バイトなどの一定量のデータが各グループに加わる。このような各グループの中にあるメモリセルは、ともに消去可能な最低数のメモリセルである。すなわち、消去単位は事実上、１つのデータセクタを、そしてオーバーヘッドデータが含まれる場合はオーバーヘッドデータを、記憶するメモリセル数である。米国特許第５，６０２，９８７号（特許文献１）および第６，４２６，８９３号（特許文献２）には、このタイプのメモリシステムの例が記載されている。フラッシュメモリの特徴として、メモリセルにデータを再度プログラムする前にメモリセルを消去する必要がある。
【０００３】
フラッシュメモリシステムは多くの場合、パーソナルコンピュータやカメラ等、様々なホストと着脱可能な状態で接続するメモリカードまたはフラッシュドライブの形で提供されるが、このようなホストシステムの中に埋め込まれることもある。ホストは通常、メモリへデータを書き込む場合、メモリシステムの連続する仮想アドレス空間の中でセクタ、クラスタまたはその他のデータ単位に一意な論理アドレスを割り当てる。ホストは、ディスクオペレーティングシステム（ＤＯＳ）のように、メモリシステムの論理アドレス空間の中のアドレスにデータを書き込み、かつこれからデータを読み出す。メモリシステムの中のコントローラは、ホストから受け取った論理アドレスをメモリアレイの中のデータが実際に記憶される物理アドレスに翻訳し、これらのアドレス翻訳の経緯を把握する。メモリシステムのデータ記憶容量は少なくとも、メモリシステムのために設定される論理アドレス空間全体にわたってアドレスされるデータ量に相当する。
【０００４】
後続世代のフラッシュメモリシステムでは、消去単位のサイズが複数セクタのデータを十分に記憶するメモリセルブロックまで拡大した。メモリシステムの接続先にあたるホストシステムがセクタなどの小さな最小単位でデータをプログラムし読み出すとしても、フラッシュメモリの１消去単位には多数のセクタが記憶される。ホストが論理セクタのデータの更新や置き換えを行うときに、ブロック内のいくつかのデータセクタが用済みになることは多々ある。ブロックに記憶されたデータに上書きを行うには事前にブロック全体を消去しなければならないから、新規または更新済みデータは通常、あらかじめ消去されデータのための容量が残っている別のブロックに記憶される。この過程で元のブロックには用済みデータが残り、メモリ内の貴重な空間を取る。しかし、このブロックは、その中に有効データが残っていると消去できない。
【０００５】
したがって、メモリ記憶容量の有効利用を図るため、有効な不完全ブロックのデータ量を消去済みブロックにコピーすることによってこれを整理または回収するのが一般的であり、こうすればデータのコピー元にあたるブロックを消去でき、その記憶容量の全体を再利用できる。ブロック内のデータセクタをそれぞれの論理ブロックの順にグループ分けするためにデータをコピーすることも望ましく、こうすればデータを読み出して、読み出したデータをホストへ転送する速度が上がる。そのようなデータコピーがあまりにも頻繁に行われると、メモリシステムの動作性能が低下することがある。これは特に、メモリの記憶容量が、システムの論理アドレス空間を通じてホストによってアドレス指定可能なデータ量と大差ない場合、つまりよくある場合、メモリシステムの動作に影響する。この場合は、ホストプログラミングコマンドが実行される前にデータを整理または回収する必要がある。そうするとプログラミングの時間が長引く。
【０００６】
所与の半導体エリアに記憶できるデータのビット数を増やすため、ブロックのサイズはメモリシステムの世代交代を通じて拡大している。２５６以上のデータセクタを記憶するブロックが一般的になりつつある。加えてデータのプログラミングと読み出しにあたって並列度を高めるため、アレイまたはサブアレイからなる２つ、４つ、またはそれ以上のブロックがしばしばメタブロックとして論理的にともにリンクされる。そのような大容量操作単位には、それらを効率的に操作するという課題がともなう。
【０００７】
新しい技術革新によってメモリの容量と速度が拡大するにつれ、このような技術革新を使用しつつ、このような技術革新を使用しない製品とも適合する、製品を提供することが一般的に望ましい。これは、新しい製品が技術革新を活かすと同時に後方互換性でもあるので、古い技術を使用する製品とともに使用できることを意味する。このような後方互換性は、特に、様々な構成の中で様々な技術とともに使用される携帯用製品にとって重要である。着脱可能なフラッシュメモリカードはこのような携帯用製品の一例である。
【特許文献１】米国特許第５，６０２，９８７号
【特許文献２】米国特許第６，４２６，８９３号
【特許文献３】米国特許出願第１１／０６０，１７４号
【特許文献４】米国特許出願第１１／０６０，２４８号
【特許文献５】米国特許出願第１１／０６０，２４９号
【特許文献６】米国仮特許出願第６０／７０５，３８８号
【特許文献７】米国特許出願第１０／９１５，０３９号
【特許文献８】米国特許第５，５７０，３１５号
【特許文献９】米国特許第５，７７４，３９７号
【特許文献１０】米国特許第６，０４６，９３５号
【特許文献１１】米国特許第６，３７３，７４６号
【特許文献１２】米国特許第６，４５６，５２８号
【特許文献１３】米国特許第６，５２２，５８０号
【特許文献１４】米国特許第６，７７１，５３６号
【特許文献１５】米国特許第６，７８１，８７７号
【特許文献１６】米国公開特許出願第２００３／０１４７２７８号
【特許文献１７】米国公開特許出願第２００３／０１０９０９３号
【特許文献１８】米国特許第６，７６３，４２４号
【特許文献１９】米国特許出願第１０／７４９，８３１号
【特許文献２０】米国特許出願第１０／７５０，１５５号
【特許文献２１】米国特許出願第１０／９１７，８８８号
【特許文献２２】米国特許出願第１０／９１７，８６７号
【特許文献２３】米国特許出願第１０／９１７，８８９号
【特許文献２４】米国特許出願第１０／９１７，７２５号
【特許文献２５】米国特許出願第１０／７４９，１８９号
【特許文献２６】米国特許出願第１０／８４１，１１８号
【特許文献２７】米国特許出願第１１／０１６，２７１号
【特許文献２８】米国特許出願第１０／８９７，０４９号
【特許文献２９】米国特許出願第１１／０２２，３６９号
【特許文献３０】アラン・Ｗ・シンクレア(Alan W. Sinclair)およびバリー・ライト(Barry Wright)によって出願された「フラッシュメモリにおける直接データファイル記憶(Direct Data File Storage in Flash Memories)」という米国仮特許出願
【特許文献３１】米国特許出願第１１／１９６，８６９号
【特許文献３２】米国特許出願第１１／３０２，７６４号
【発明の開示】
【０００８】
メモリシステムは、ホストと、メモリアレイにデータを記憶するバックエンドと、通信する、インターフェイス層を含む。インターフェイス層とバックエンドとの間にある翻訳層は、ホストで使われている各種プロトコルに従ってインターフェイス層で受信するデータおよびコマンドをバックエンドが認識できる形に変換する。この翻訳層によって、様々なプロトコルを使用する様々なホストに共通のバックエンドを使用することが可能となる。これは特に、着脱可能なメモリカード内のメモリシステムにとって有益である。翻訳層は１つ以上のプロトコルアダプタを収容する。プロトコルアダプタは、ホストで使われているプロトコルに従ってホストから通信（コマンドおよびデータ）を受信し、これに応じてデータおよびコマンドをバックエンド向けに変換する。プロトコルアダプタはホストに対して信号を生成することもでき、ここでこのような信号はホストプロトコルの一部である。
【０００９】
メモリシステムはオブジェクトプロトコルアダプタを含み、このオブジェクトプロトコルアダプタは、オブジェクトプロトコルに従って送信されるデータおよびコマンドを不揮発性メモリにおけるファイル本位記憶に適合する形に変換する。具体的に、オブジェクトプロトコルアダプタはオブジェクトを受信する前にオブジェクトに関するメタデータを受信する。このメタデータにはオブジェクトのサイズが含まれる。オブジェクトプロトコルアダプタは、受信データ量をメタデータ情報によって指示されるサイズに比較することによってオブジェクト全体が受信済みと判断する。オブジェクト全体が受信済みと判断したオブジェクトプロトコルアダプタはホストに向けて応答を生成し、メモリシステムのバックエンドに向けてファイル終了標識を生成し、かくしてファイルはバックエンドによって閉鎖される。これによりバックエンドはそのファイルでガーベッジコレクションのスケジュールを組むことができ、それによりファイルデータの記憶および管理で効率を上げることができる。
【００１０】
メモリシステムはＬＢＡプロトコルアダプタを含み、このＬＢＡプロトコルアダプタは、ＬＢＡプロトコルに従ってデータおよびコマンドを不揮発性メモリにおけるファイル本位記憶に適合するデータおよびコマンドに変換する。一例において、メモリシステムのために規定される論理アドレス空間からホストによって割り当てられた論理アドレスを有する受信データが、論理ファイルにマッピングされる。論理ファイルは、バックエンドによって他のファイルと同様に扱われる。論理ファイルは普通、メタブロック全体を占めるから、他のデータとメタブロックを共用しない。しかし、あるときは論理ファイルのため、またあるときは別のファイルのため、同じブロックを使用することはあり、ファイルのタイプの違いに応じた不動の区画はメモリアレイに存在しない。
【００１１】
メモリシステムはファイルプロトコルアダプタを含み、このファイルプロトコルアダプタは、ファイルプロトコルに従ってデータおよびコマンドを不揮発性メモリにおけるファイル本位記憶に適合するデータおよびコマンドに変換する。バックエンドがホストと同じプロトコルを使用する（例えば、双方が直接データファイルプロトコルを使用する）場合、翻訳は必要ない。しかし、ホストによって異なるファイルプロトコルが使用される場合は、ファイルプロトコルアダプタが適切な翻訳を行う。
【００１２】
メモリシステムは、場合によっては２つ以上のプロトコルアダプタを使用する２つ以上のホストと通信することがある。この場合、翻訳層はバックエンドと通信するために一度に１つのプロトコルアダプタを選択できる。翻訳層は場合によっては、異なるプロトコルアダプタをかわるがわるに選択しながらバックエンドへの交互のアクセスを提供することになり、異なるホスト間で調停を行うことができる。
【００１３】
インターフェイス層は、複数のホストに適合する論理インターフェイスを含む。場合によっては、ホストデバイス側の対応するインターフェイスとの接続のために物理インターフェイスが別途あってもよい。しかし、これは必須ではなく、場合によってはＵＳＢコネクタなどの単一の物理インターフェイスが提供され、全論理インターフェイスによって使用される。インターフェイス層と翻訳層の機能は専用回路によって遂行でき、あるいはコントローラ上のファームウェアによって遂行できる。これは、メモリアレイを管理するメモリコントローラであってよい。メモリアレイはＮＡＮＤメモリアレイであってよく、１つ以上の半導体チップ上に形成されてよい。メモリシステムは、時を異にして異なるホストへ接続される着脱可能なカードに収容されてよい。
【００１４】
バックエンドシステムはデータをファイルとして管理でき、ファイルは、場合によってはホストファイルに相当する（しかし、場合によってはホストファイルとの１対１の対応はない）。米国特許出願第１１／０６０，１７４号（特許文献３）、第１１／０６０，２４８号（特許文献４）、および第１１／０６０，２４９号（特許文献５）と米国仮特許出願第６０／７０５，３８８号（特許文献６）で説明されている直接データファイルバックエンドは、ファイル本位バックエンドシステムの一例である。
【発明を実施するための最良の形態】
【００１５】
フラッシュメモリの概説
現在のフラッシュメモリシステムおよびホストデバイスとの典型的な動作を、図１〜８との関係で説明する。このようなシステムで本発明の様々な態様を実施できる。図１のホストシステム１は、フラッシュメモリ２の中にデータを記憶し、かつフラッシュメモリ２からデータを引き出す。フラッシュメモリはホストの中に埋め込むこともできるが、メモリ２はそれよりも一般的なカードの形で図に示され、このカードは、機械的および電気的コネクタの嵌合部分３および４を通じて着脱可能な状態でホストへ接続される。例えばコンパクトフラッシュ（ＣＦ）、マルチメディアカード（ＭＭＣ）、セキュアデジタル（ＳＤ）、ミニＳＤ、メモリスティック、スマートメディア、トランスフラッシュカード等、様々なフラッシュメモリカードが現在多く市販されている。これらのカードの各々はそれぞれの規格化された仕様に従い独特の機械的および／または電気的インターフェイスを有するが、各々に内蔵されたフラッシュメモリシステムは類似する。これらのカードはいずれも、本願の譲受人であるサンディスク  コーポレイション(SanDisk Corporation) から入手できる。サンディスク  コーポレイションはまた、クルーザー（Ｃｒｕｚｅｒ）という商標のもとで一連のフラッシュドライブを提供し、フラッシュドライブは、ホストのユニバーサル・シリアル・バス（ＵＳＢ）差込口に差し込まれることによってホストと接続するＵＳＢプラグを有する小形の手持ち式メモリシステムである。これらのメモリカードとフラッシュドライブの各々は、ホストと連動して内蔵されたフラッシュメモリの動作を制御するコントローラを内蔵する。
【００１６】
このようなメモリカードとフラッシュドライブとを使用するホストシステムは数多くあり様々である。パーソナルコンピュータ（ＰＣ）、ラップトップおよび他の携帯用コンピュータ、携帯電話、個人用携帯情報端末（ＰＤＡ）、デジタル静止画カメラ、デジタル動画カメラ、携帯形オーディオプレイヤ等が含まれる。ホストは通常ならば１種類以上のメモリカードまたはフラッシュドライブのための一体化された差込口を内蔵するが、一部のホストはメモリカードを差し込むアダプタを要する。
【００１７】
図１のホストシステム１は、メモリ２が接続される限りにおいて、回路とソフトウェアとの組み合わせからなる、２つの主要部分を有するものとみなすことができる。それらはアプリケーション部５と、メモリ２と連動するドライバ部６である。例えばパーソナルコンピュータの場合、アプリケーション部５は、ワープロ、グラフィック、コントロールまたはその他一般的なアプリケーションソフトウェアを実行するプロセッサを含むことがある。カメラ、携帯電話、または専ら１組の機能を遂行するためのその他のホストシステムの場合、アプリケーション部５は、写真を撮影したり記憶したりするためにカメラを動作させる、電話をかけたり受けたりするために携帯電話を動作させる、ソフトウェアを含む。
【００１８】
図１のメモリシステム２はフラッシュメモリ７および回路８を含み、回路はいずれも、データをやり取りし、かつメモリ７を制御するため、カードの接続先にあたるホストと連動する。コントローラ８は通常、データのプログラミングと読み出しの際にホスト１によって使用されるデータの論理アドレスとメモリ７の物理アドレスとの変換を行う。
【００１９】
図２を参照し、図１の不揮発性メモリ２として使用できる典型的フラッシュメモリシステムの回路が説明される。システムコントローラは普通、システムバス１３沿いに１つ以上の集積回路メモリチップと並列で接続される単一集積回路チップ１１上で実施され、図２にはただひとつのこのようなメモリチップ１５が示されている。図に示された特定のバス１３は、データを搬送する１セットの導体１７と、メモリアドレスのためのセット１９と、制御および状態信号のためのセット２１とを含む。あるいは、これらの３機能の間で１セットの導体を時分割共用できる。さらに、２００４年８月９日に出願された米国特許出願第１０／９１５，０３９号「リングバス構造とフラッシュメモリシステムにおけるその使用(Ring Bus Structure and It's 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)」という米国仮特許出願（特許文献３０）では、直接データファイル記憶メモリシステムが説明されている。（これ以降、「直接データファイル記憶アプリケーション(Direct Data File Storage Applications) 」と総称する。）
【００６０】
図９および１０に示された、これらの直接データファイル記憶アプリケーションの直接データファイルインターフェイスは、図７および８に示された、前述した論理アドレス空間インターフェイスよりシンプルであり、メモリシステムの性能を上げるから、直接データファイル記憶は多くの用途にとって好ましい。しかし、現在、ホストシステムは主にＬＢＡインターフェイスで動作するよう構成されているから、直接データファイルインターフェイスを持つメモリシステムはほとんどのホストに適合しない。したがって、両方のインターフェイスで動作できるメモリシステムを提供することが望ましい。
【００６１】
デュアルインターフェイス
一部のメモリシステム、特に様々なホストと連動できる着脱可能なメモリカードに内蔵されたメモリシステムにとって、後方互換性は重要課題である。多くのホストシステムは図７および８に示すものと同様にセクタ本位記憶形式を使用し、これらのホストシステムのいくつかは、図９および１０に示すようなファイル本位記憶に容易く適合できない。したがって、論理アドレスインターフェイスまたはファイル本位インターフェイスのいずれかを使用するホストと連動できるメモリシステムを用意することが望まれる。ＬＢＡインターフェイスとファイル本位バックエンドとの間に置かれたＬＢＡプロトコルアダプタは、論理アドレス指定を使用するホストが、データをファイルとして管理するメモリアレイにデータを記憶することを可能にする。
【００６２】
２００５年８月３日に出願された米国特許出願第１１／１９６，８６９号「論理アドレス空間と直接データファイル方式で動作するインターフェイスシステム(Interfacing systems operating through a logical address space and on a direct data file basis) 」（特許文献３１）は、メモリシステムが論理アドレスインターフェイスまたはファイル本位インターフェイスのいずれかを用いてホストと連動することを可能にするシステムを説明している。図１１はこのようなシステムを示している。この例では、図７のホスト動作に図９のファイル本位メモリ動作が組み合わされ、さらにメモリシステムの中にアドレス変換１７２が加わる。アドレス変換１７２は、メモリ空間１６１にまたがる論理アドレスのグループを、修正アドレス空間１６１’にまたがる個々の論理ファイルａ〜ｊにマッピングする。好ましくは、論理アドレス空間１６１全体がこれらの論理ファイルに分割され、かくして論理ファイルの数は、論理アドレス空間のサイズと個々の論理ファイルのサイズとに依拠する。論理ファイルの各々は、空間１６１にまたがる１グループの連続論理アドレスのデータを収容する。各々の論理ファイルの中のデータの量は好ましくは同じであり、その量は、メモリ１６５の１メタブロックのデータ記憶容量に等しい。論理ファイルの不等サイズおよび／またはメモリのブロックまたはメタブロックの記憶容量とは異なるサイズは、無論可能であるが、好ましくはない。
【００６３】
個々のファイルａ〜ｊの中のデータは、ファイル内の論理オフセットアドレスによって表される。論理ファイルのファイル識別子とデータオフセットは１７３でメモリ１６５内の物理アドレスに変換される。論理ファイルａ〜ｊは、直接データファイル記憶アプリケーションで説明したのと同じプロセスとプロトコルとによってメモリ１６５に直接記憶される。そのプロセスは、図９のデータファイル１〜３をメモリ１６５に記憶するのに使用するのと同じであるが、各論理ファイル内のデータ量は分かっているから、特にその量がメモリのブロックまたはメタブロックの容量に等しければ、プロセスはより簡単なものとなる。図１１には、論理ファイルａ〜ｊの各々がメモリ１６５の別々のメタブロックにマッピングされる様子が示されている。また、ファイル本位データ記憶は、ホストと連動するように設計された現在の論理アドレスメモリシステムと同じかまたは同等のやり方で、ホストとやり取りするのが望ましい。個々の論理ファイルを対応する個々のメモリメタブロックにマッピングすることにより、論理アドレス空間インターフェイスを使用する場合と実質的に同じ性能とタイミング特性とが、直接データファイルインターフェイスメモリシステムで達成される。
【００６４】
図１２は、図１１の方法を異なる形で示している。図１２は、図８の論理アドレスメモリシステム動作と同じであるが、論理アドレス空間を論理ファイルに分割する機能、すなわち直前に説明した図１１のステップ１７２が、加わっている。さらに、図１２の「ファイルデータを物理記憶ブロックにマッピングするためのテーブル」が図８の「論理アドレスを物理記憶ブロックにマッピングするためのテーブル」に取って代わっている。論理アドレス−論理ファイル変換１７２は、ＬＢＡシステムを使用するインターフェイスとファイル本位のバックエンドとの間に位置するＬＢＡプロトコルアダプタの一部とみなすことができる。
【００６５】
従来の論理アドレス空間インターフェイスを通じてホストと連動するように設計された図１１〜１２のデータファイル本位バックエンド記憶システムには、直接データファイルインターフェイスを加えることもできる。ファイルインターフェイスからのホストデータファイルと論理インターフェイスからの論理ファイルはいずれも、メモリメタブロックアドレスに翻訳される。次いで、データは、直接データファイルプロトコルを実行することによってメモリのアドレスに記憶される。このプロトコルには、前述した直接データファイル記憶アプリケーションの直接データファイル記憶手法が盛り込まれる。
【００６６】
携帯用メモリカード、フラッシュドライブ、またはその他の着脱可能なメモリシステムに両タイプのホストインターフェイスを用意すれば、論理アドレス空間インターフェイスで動作する現在のほとんどのホストと、ファイルをメモリに直接引き渡すホストでメモリを使用でき、あるいは両タイプのホスト間でメモリを交換できる。次いで、新しいファイル本位インターフェイスを備えるホストのユーザはメモリを極めて効率的に利用できると同時に、従来の論理アドレス空間インターフェイスとの後方互換性を有することができる。また、同じ１対１の論理ファイル−メタブロックマッピングの結果、実質的に同じ性能とタイミング特性とが達成される。ユーザが新しい直接データファイルインターフェイスを理由に入手するデュアルホストインターフェイスを備えるメモリは、従来の論理アドレス空間インターフェイスを有する多数の既存ホストにも利用できる。これは、現在のインターフェイスから直接データファイルインターフェイスへ移行するための手段となる。
【００６７】
図１３は、デュアルホストインターフェイスを有するメモリシステム３００を示している。メモリシステムは、ファイルインターフェイス３０７を通じてホストから直に提供されるホストデータファイル（ＨＦ１、ＨＦ２．．．ＨＦｎ）と、ＬＢＡプロトコルアダプタ３０１によって変換されるＬＢＡインターフェイス３０５からの論理ファイル（ＬＦａ、ＬＦｂ．．．ＬＦｍ）の両方を記憶する。ファイル本位バックエンド３０３はホストファイルから論理ファイルを区別する必要はなく、むしろ好ましくは、両方のファイルを扱うよう最適化される。かくして、論理ファイルは、ＬＢＡ特許出願で説明されているシステムの論理グループに相当し、したがってホストインターフェイスから見たメモリシステム３００の性能は、ＬＢＡ特許出願で説明されている論理アドレス空間インターフェイスを備えるシステムの性能に一致する。
【００６８】
論理アドレス形式から論理ファイル形式にかけてホストデータを変換することに加え、ＬＢＡプロトコルアダプタ３０１は、特定の条件またはホストから受け取る特定のＬＢＡコマンドに応じて、ファイル本位バックエンド３０３に適合するコマンドを生成できる。以下の表には、このような条件に応じて直接データファイルバックエンド向けにコマンドを生成する例が示されている。
2009518698.tif 000003
【００６９】
オブジェクトインターフェイス
電子デバイス間のデータ転送のために様々なファイル本位インターフェイスを使用できる。一部のプロトコルは、所定のサイズを有するファイルを、そのサイズの指示と併せて提供する。このようなシステムでは通常、ファイルのサイズが変化しないから、このようなシステムは、ファイルの編集が要求される用途にとって相応しくないかもしれない。しかし、あるデバイスから別のデバイスへファイルを転送する場合、このようなプロトコルは有利であり、高度なセキュリティを可能にするかもしれない。サイズの指示は通常、ファイルデータが送信される前に送信される。所定サイズのファイルをファイルサイズの標識と併せて転送するプロトコルはオブジェクトプロトコルとみなすことができる。マイクロソフト  コーポレイション(Microsoft Corporation) によるピクチャ転送プロトコル（ＰＴＰ）は、オブジェクトプロトコルのひとつである。同じくマイクロソフト  コーポレイションによる、メディアトランスポートプロトコル（ＭＴＰ）として知られる、メディア転送プロトコルもまた、このようなプロトコルのひとつである。オブジェクトプロトコルは、デジタル写真やＭＰ３音楽ファイルなどの所定の量のデータを収容するファイルの送信に特に適している。例えば、デジタルカメラとＰＣとの間でデジタル写真を転送したり、あるいはＰＣからＭＰ３プレイヤへＭＰ３音楽ファイルを転送したりするために、このようなプロトコルを使用することができる。
【００７０】
メディア転送プロトコル（ＭＴＰ）が提供するオブジェクトインターフェイスは、既定サイズのファイルオブジェクトの転送をサポートする。その主な目的は、各々かなりの記憶容量を持つ、互いに一時的に接続できる、デバイス間で通信を可能にすることにある。このインターフェイスはデバイス間でバイナリデータオブジェクトの交換を可能にし、さらに一方のデバイスによる他方のデバイスの内容の列挙を可能にする。これ以降、ＭＴＰインターフェイスの特性をいくつか記す。しかし、特性は、ＭＴＰ以外のオブジェクトインターフェイスの場合に異なることがある。ＭＴＰの詳しい説明は、マイクロソフト  コーポレイションの文書「強化メディア転送プロトコル(Media Transfer Protocol Enhanced)」に記載されている。
【００７１】
１．通信プロトコル
１．１イニシエータおよびレスポンダ：交換は必ず一度に２つのデバイスの間で起こり、一方のデバイスはイニシエータとして動作し、他方のデバイスはレスポンダとして動作する。イニシエータは、オペレーションを送信することによってレスポンダを相手にアクションを開始するデバイスである。レスポンダはアクションを開始せず、イニシエータによって送信されたオペレーションに対し応答を送信する。イニシエータとして動作するデバイスは、応答デバイスの内容を列挙でき、これを理解でき、プロトコルの中でオペレーションの流れを制御できなければならない。イニシエータは通常、レスポンダより性能の高いデバイスである。レスポンダの例として、デジタルカメラなどの簡素なコンテンツ製作デバイスや、携帯用オーディオプレイヤなどの簡素なコンテンツ出力デバイスが挙げられる。
【００７２】
１．２セッション：セッションとは、イニシエータとレスポンダとの間で接続が維持している通信状態である。セッションはコンテキストを提供し、このコンテキストの中でオブジェクトが参照され、さらに、イニシエータへの警報を省いてレスポンダデバイスの状態が変化しないことを保証する。セッションはイニシエータによって開放され、イニシエータまたはレスポンダのいずれかによって閉鎖される。１デバイスが複数の開放セッションを同時に維持できる。イニシエータは最初にセッションを開放するときに一意な識別子をこれに割り当て、オペレーションを送信するときにはその識別子を用いてセッションを識別する。
【００７３】
１．３トランザクション：イニシエータから起こるアクションはどれもトランザクションの中で、すなわち入力パラメータを伴うアクション起動、バイナリデータ交換、およびパラメータを伴う応答のためのメカニズムを提供する一連の標準段階で遂行される。各段階におけるデータの流れは一方向である。データはオペレーションを開始するときに専らイニシエータからレスポンダにかけて流れる。要求されたオペレーションに対する応答のとき、データは専らレスポンダからイニシエータにかけて流れる。バイナリデータ交換段階のとき、データはいずれか一方の方向に流れることができるが、決して両方向には流れない。双方向のバイナリデータ交換は必ず複数のオペレーションによって遂行される。イニシエータは各トランザクションに識別子を割り当てる。セッション中に開始する最初のオペレーションには規定の識別子が割り当てられ、その識別子は相継ぐトランザクションのたびに１ずつ増加する。
【００７４】
トランザクションは３つの段階、すなわちオペレーション要求段階と、データ段階と、応答段階とからなる。オペレーション要求段階と応答段階は同じ識別子を共有し、２つの段階の間に必要に応じてオプションのデータ段階が存在する。
【００７５】
オペレーション要求段階はオペレーション要求データセットの送信を含み、これによりイニシエータによって起動されようとしているオペレーションと、オペレーションが実行されるところのコンテキスト（セッションおよびトランザクション）と、所定のパラメータとが明らかになる。
【００７６】
オプションのデータ段階はオペレーション要求段階の後に続く。その存在は、オペレーション要求段階で定まるオペレーションから判明する。そのデータはプロトコルの中で定められた透過データセットであってよく、あるいは交換され受信側デバイスで記憶されるバイナリデータであってよい。データ段階における実際のデータ送信では、使用する特定のトランスポートの要求に応じて、データをコンテナ形式で送信すること、またはデータをパケットに分割することを含むことがある。
【００７７】
応答段階では、成功／失敗など、先行トランザクションに関する情報を報告するため、レスポンダからイニシエータにかけて一定のデータセットが送信される。
【００７８】
１．４イベント：イベントは主に、情報または警報を前もって送信する手段としてレスポンダによって送信される。オペレーションと違って、イベントを承認したり、これに働きかける必要はない。イベントは、データ送信またはオペレーショントランザクションと非同期で通信しなければならない。トランザクションのときにイベントとデータストリームをインターリーブするプロセスはトランスポートによって規定される。
【００７９】
１．５同期および非同期トランザクション：通信プロトコルにおけるトランザクションはどれも同期であり、つまり前のオペレーションが完全に完了するまでは新しいトランザクションを開始できない。オペレーションを開始するイニシエーションと、デバイスでオペレーションがバックグラウンドで実行されているときにレスポンダによって送信されるイベントによるプログレスモニタリングとに、オペレーションを分けることにより、非同期オペレーションを模擬できる。非同期オペレーションの進行中に新しいオペレーションが試みられると、レスポンダはビジー障害状態で応答し、イニシエータは後ほど再び試みなければならない。
【００８０】
２．情報データセット
データの交換にあたっては、データセットと呼ばれる所定の構造の中でデータが回収される。３つの情報データセットがあり、適切なオペレーションを用いてアクセスできる。
【００８１】
２．１デバイス情報データセット：デバイス情報データセットはデバイスの記述を提供するものであり、大抵は静的である。
【００８２】
２．２オブジェクト情報データセット：オブジェクト情報データセットはオブジェクトの中核プロパティの概要を提供する。中核プロパティには、オブジェクトのデータ成分のサイズが含まれる。プロパティにはアソシエーションも含まれ、アソシエーションはデータオブジェクトを関連づけ、デバイス上の階層ファイルシステムを記述するのに使用できる。デバイス上のファイル階層は、ある特定のファイルシステムに特有のパスまたは命名規約に頼らずとも表現できる。オブジェクトプロパティデータセットの中でオブジェクトのプロパティを引き出すこともできる。
【００８３】
２．３記憶情報データセット：記憶情報データセットは、デバイスの記憶内容を記述する。その記述には、最大容量と書き込みのために残っている空きスペースの両方が含まれる他、使用されているファイル命名規約やディレクトリ構造規約が含まれることもある。
【００８４】
３．プロパティ
３．１デバイスプロパティ：デバイスプロパティはデバイスの設定や状態を明らかにするものであり、デバイス上のデータオブジェクトには関連しない。デバイスプロパティは読み出し専用であってよく、または読み出し−書き込みであってもよい。プロパティはデバイスプロパティ記述データセットに収容され、適切なオペレーションを用いて設定できるるか、または引き出すことができる。
【００８５】
３．２オブジェクトプロパティ：オブジェクトプロパティは、オブジェクトを記述するメタデータを、オブジェクトそのものとは別に、交換するためのメカニズムを提供する。オブジェクトプロパティの主な利点として、ファイルシステムにかかわりなく大容量記憶を速やかに列挙できる。デバイス上のオブジェクトに関する情報を提供し、それらに収容できる値を指定する。プロパティはオブジェクトプロパティデータセットに収容され、適切なオペレーションを用いて設定できる、または引き出すことができる。
【００８６】
４．オブジェクトハンドル
オブジェクトハンドルは、デバイス上の論理オブジェクトに対する参照に一貫性を与える識別子であって、１セッションの中で一意である。オブジェクトハンドルの値に特別な意味はない。レスポンダは、イニシエータからのセッション開放オペレーションに応じてデバイス内のオブジェクトのためにオブジェクトハンドルのアレイを作成する。イニシエータはオブジェクトハンドル取得オペレーションによってオブジェクトハンドルを入手し、このオブジェクトハンドル取得オペレーションによってレスポンダはイニシエータへオブジェクトハンドルアレイを送信する。送信されるオブジェクトを規定するためにイニシエータがオブジェクト情報送信オペレーションを使用すると、レスポンダデバイスはオブジェクトハンドルを割り振り、オペレーションの応答段階でこれをイニシエータに返す。セッションが閉鎖されると全てのオブジェクトハンドルが無効となり、イニシエータはこれを改めて入手しなければならない。デバイスは同じオブジェクトハンドルを維持してよく、あるいは次のセッションでオブジェクトハンドルの値を変更してもよい。
【００８７】
５．オブジェクト参照
オブジェクトインターフェイスはファイルシステムに依存しないプロトコルだから、ファイル名を埋め込むことによってオブジェクト間に複雑なリンクが形成されることはない。任意のオブジェクト参照を可能にするために抽象的参照メカニズムが規定されている。参照は一方向であり、デバイス上の全てのオブジェクトで全ての参照を調べない限り、所与のオブジェクトを参照するオブジェクトがどれなのかを判断することはできない。参照は、適切なオペレーションを用いることによって設定できるか、または引き出すことができる。ファイルハンドルによって参照されるオブジェクトはセッションからセッションにかけて一貫しなければならない。削除済みオブジェクトに対する参照が誤って別のオブジェクトを参照することはあってはならない。オブジェクトハンドルは決して再使用してはならず、さもなくばデバイスがオブジェクトに対する全ての参照をオブジェクトと併せて削除しなければならない。
【００８８】
６．オペレーションと応答
トランザクションの中でイニシエータとレスポンダとの間で起こる通信はオペレーションによって決まる。開始されたオペレーションにレスポンダが働きかけるにあたって必要となる情報は、オペレーション要求でパラメータとして引き渡すことができる。５つのパラメータを送信できる。トランザクションのデータ段階では既定のデータセットの中で追加の情報を引き渡すこともできる。レスポンダはオペレーションの後に、最高５つまでのパラメータを伴う応答データセットと、オペレーションの結果を伝える応答コードとを返す。多数のオペレーションが定められている。一連のオペレーションの例として、「オブジェクト情報送信」オペレーションとその後に続く「オブジェクト送信」オペレーションがあり、これによりイニシエータはレスポンダへオブジェクトを送信し、さらに「オブジェクト情報取得」オペレーションとその後に続く「オブジェクト取得」オペレーションがあり、これによりイニシエータはレスポンダからオブジェクトを受信する。
【００８９】
図１４Ａは、イニシエータ４１０とレスポンダ４１２との間のトランザクションの一例を示している。イニシエータ４１０はＰＣであってよく、レスポンダ４１２はＭＰ３音楽プレイヤまたはデジタルカメラであってよい。通信を可能にするため、イニシエータ４１０およびレスポンダ４１２は、例えばＵＳＢケーブルによって接続される。第１に、イニシエータ４１０はオペレーション要求段階で起動しようとするオペレーションを「オブジェクト情報送信」オペレーションとして識別する。第２に、イニシエータ４１０はデータ段階でオブジェクト情報４１４をレスポンダ４１２へ送信する。オブジェクト情報４１４は、イニシエータ４１０によってレスポンダ４１２へ送信されようとしている特定のオブジェクトに関する情報である。オブジェクト情報４１４は、これが参照するオブジェクトが送信される前に、イニシエータ４１０によって送信される。オブジェクトのサイズなど、オブジェクトに関する様々な情報をオブジェクト情報に盛り込むことができる。送信すべきオブジェクトがＭＰ３音楽ファイルなら、ＭＰ３音楽ファイルのサイズがオブジェクト情報の一部として送信される。第３に、レスポンダ４１２は応答段階で（レスポンダ４１２によってオブジェクト情報４１４が受信された後に）、オブジェクト情報４１４が受信済みであることを伝える。トランザクションはこの時点で終了してよい。
【００９０】
図１４Ｂは、図１４Ａのトランザクションの後に続く、イニシエータ４１０とレスポンダ４１２との間の同一セッションの一部をなす、第２のトランザクションを示している。第２のトランザクションは「オブジェクト送信」トランザクションである。第１に、イニシエータ４１０はオペレーション要求段階で起動しようとするオペレーションを「オブジェクト送信」オペレーションとして識別する。第２に、イニシエータはデータ段階でオブジェクト４１６をレスポンダ４１２へ送信する。オブジェクト４１６はＭＰ３音楽ファイルであってよく、あるいはＪＰＥＧ、ＧＩＦ、またはビットマップなどのファイル形式をとるデジタル写真であってもよい。オブジェクト４１６のオブジェクト情報４１４（ファイルサイズを含む）は、図１４Ａとの関係で説明したように、すでにイニシエータ４１０からレスポンダ４１２へ送信されている。第３に、レスポンダ４１２は応答段階で（オブジェクト４１６が受信された後に）、オブジェクト４１６が受信済みであることをイニシエータ４１０に伝える。トランザクションはこの時点で終了してよい。
【００９１】
オブジェクトプロトコルアダプタ
本発明の一実施形態において、前述したようにオブジェクトプロトコルを使用するホストがファイル本位バックエンドを使用するメモリシステムと連動できるようにするオブジェクトプロトコルアダプタがメモリシステムに用意される。オブジェクトプロトコルアダプタはオブジェクトプロトコルに従いオブジェクトインターフェイスを通じてデータおよびコマンドを受信し、データおよびコマンドをバックエンドへ送信する前に適切な翻訳を遂行する。一例において、ホストはＭＴＰを使ってメモリシステムと連動し、メモリシステムは直接データファイルバックエンドを使ってデータを記憶する。オブジェクトプロトコルアダプタは、ホストインターフェイスおよびバックエンドとの間でコマンドとデータの両方で適切な変換を遂行する。
【００９２】
図１５は、オブジェクトインターフェイス５２０とファイル本位バックエンド５２２との間に置かれたオブジェクトプロトコルアダプタの一例を示している。オブジェクトインターフェイス５２０は、所定サイズのファイルオブジェクト、例えばＭＴＰまたはＰＴＰオブジェクトのための、インターフェイスである。オブジェクトのサイズは、ホストによってオブジェクトが送信される前に送信される。オブジェクトプロトコルアダプタ５２４は、メモリシステム５２６がホストと通信する際のプロトコルを管理する。オブジェクトプロトコルアダプタ５２４はまた、ホストとの情報交換のためにトランザクションを管理し、翻訳を遂行する。オブジェクトプロトコルアダプタとファイル本位バックエンドとの間ではファイル本位プロトコルに従ってトランザクションが遂行される。
【００９３】
オブジェクトプロトコルアダプタ５２４は、（オブジェクトプロトコルに従って）新しいファイルオブジェクトがホストによって送信されるときに、適切なコマンドをファイル本位バックエンド５２２へ送信することによってファイルの開放と閉鎖とを管理する。特に、オブジェクトプロトコルではファイルが所定のサイズを有するため、オブジェクトプロトコルアダプタ５２４は、所定の量のファイルデータが受信されたときにファイルの閉鎖を担当する。オブジェクトプロトコルを使用するホストは通常、ファイル終了標識を別途送信しないから、ファイルオブジェクト全体が受信された時点でオブジェクトプロトコルアダプタ５２４がファイル終了標識を生成し、ファイル本位バックエンド５２２へ送信する。このように、オブジェクトプロトコルを使用するホストからメモリシステム５２６が複数のファイルを受信するとき、ファイル本位バックエンド５２２は、（直接データファイルバックエンドでよくあるように）最大開放ファイル数に達するまではファイルを開放状態に保たない。代わりに、各ファイルは完全なオブジェクトとして受信され、ファイル本位バックエンドは完全なファイルが受信された後にオブジェクトプロトコルアダプタ５２４からコマンドを受信するので、ファイル本位バックエンドはファイルを閉鎖する。これは多数の開放ファイルを維持する負担を軽減する。ひとたび閉鎖されたファイルはガーベッジコレクションのスケジュールに組み入れることができる。
【００９４】
オブジェクトプロトコルアダプタはメモリシステムの状態を管理できる。特に、直接データファイルバックエンドを有するメモリシステムの場合には、メモリシステムがそのオペレーションをホストコマンドに応じて変更できるようにするために３つの状態が規定される。３つの状態とは「アイドル」、「スタンバイ」および「シャットダウン」である。ホストが直接データファイルコマンドセットまたはこれと同等のものを使用する場合、３つの状態はホストからの対応する状態コマンドに応じて始まる。ホストがオブジェクトプロトコルを使用する場合、オブジェクトプロトコルアダプタは状態コマンドを生成できる。オブジェクトプロトコルアダプタは状態コマンドを、ホストがこれに対応するコマンドを含むオブジェクトプロトコルを使用しているならば、ホストから受信する同等のコマンドに応じて、ファイル本位バックエンドに送信できる。あるいは、オブジェクトプロトコルアダプタはホストの状態を他の要因からの推測に基づき状態コマンドを生成できる。例えば、ホストは一定期間にわたって電力を解除しないことを何らかの形で伝えることができ、これに応じてオブジェクトプロトコルアダプタは「アイドル」状態コマンドをファイル本位バックエンドへ送信できる。同様に、ホストは電力を解除しようとしていることを伝えることができ、あるいは電力が解除されようとしていることをオブジェクトプロトコルアダプタがホストの挙動に基づき推測でき、これに応じてオブジェクトプロトコルアダプタは「シャットダウン」コマンドをファイル本位バックエンドへ送信できる。
【００９５】
オブジェクトプロトコルアダプタの主要な機能の１つは、（オブジェクトプロトコルに従い）ホストから受信する規定ファイルのホストデータを、ファイル本位バックエンドのためのストリーミングデータに変換することである。オブジェクトプロトコルを使用するホストは（ＭＴＰの中でイニシエータとして動作しながら）既定サイズのファイルを送信し、レスポンダの応答を要求するが、ファイル本位バックエンドは通常、このような応答を提供する形に構成されていない。特に、直接データファイルバックエンドが使われる場合、データは通常ならばストリームされ、ＭＴＰの応答段階に相当するものはない。オブジェクトプロトコルアダプタはホストからのオブジェクトをストリーミングデータに変換し、オブジェクトの全データが受信された時点で適切な応答を生成する。
【００９６】
ＭＴＰなどのオブジェクトプロトコルでは、オブジェクトを読み出すまたは書き込む操作の前に、オブジェクトに関する情報を転送するために別途のオペレーションがある。オブジェクトが書き込まれる場合、このような情報転送オペレーションはオブジェクトプロパティ（オブジェクト情報）の「設定」オペレーションである。オブジェクトが読み出される場合、このような情報転送オペレーションはオブジェクトプロパティの「取得」オペレーションである。オブジェクトプロパティはデータセットの形をとり、ここにはオブジェクトの長さが含まれる。
【００９７】
図１５のメモリシステム５２６へオブジェクトが書き込まれる場合はまず、オブジェクトプロトコルアダプタ５２４がホストからオブジェクトのデータセットを受け取る。ホストはＭＴＰの中ではイニシエータとしてみなされる。データセットの中の情報は、書き込みオペレーションを実施する以降のトランザクションを制御するために使われる。データセットはまた、メタデータとしてメモリシステム５２６に記憶される。書き込みオペレーションの際に、オブジェクトプロトコルアダプタ５２４は書き込みオペレーションのデータ段階でイニシエータから転送されるデータ量をカウントする。オブジェクトプロトコルアダプタ５２４は、このカウントからオブジェクトデータの終わりを識別する。次いで、オブジェクトプロトコルアダプタは、ホストへ送信される応答を生成する。オブジェクトプロトコルアダプタ５２４はまた、ファイルを閉鎖するためのコマンドをファイル本位バックエンド５２２へ送信する。
【００９８】
図１５のメモリシステム５２６からオブジェクトを読み出す場合はまず、オブジェクトプロトコルアダプタ５２４がファイル本位バックエンド５２２からオブジェクトのメタデータを入手する。オブジェクトのメタデータは、読み出しオペレーションを実施する以降のトランザクションを制御するために使われる。オブジェクトプロトコルアダプタ５２４はまた、メモリシステム５２６に記憶されたメタデータをオブジェクトのデータセットとしてホストへ送信する。オブジェクトプロトコルアダプタ５２６は、読み出しオペレーションのデータ段階でファイル本位バックエンド５２２から転送されるデータ量をカウントする。オブジェクトプロトコルアダプタ５２４は、このカウントからデータの終わりを識別する。オブジェクトプロトコルアダプタ５２４は応答を生成し、この応答はオブジェクトが送信された後にホストへ送信される。
【００９９】
オブジェクトプロトコルアダプタは、ＭＴＰなどのオブジェクトプロトコルで使われるオブジェクト情報データセットと、直接データファイルバックエンドを使用するファイル本位メモリシステムに記憶されたメタデータとの間で翻訳を行う。「メタデータ」はオブジェクトに関するデータを指す用語であり、オブジェクトとは別に記憶され、別個に管理される。よって、ＭＴＰにおけるオブジェクト情報データセットはメタデータの一例である。直接データファイルバックエンドはメタデータを、オブジェクトプロトコルで使われるものと同じ形式で、または異なる形式で記憶できる。用語「ファイル情報」は直接データファイルシステムのメタデータにも使われる。オブジェクトプロトコルアダプタ５２４はホストからメタデータ関係コマンドを受信する場合に、そのコマンドをファイル本位バックエンド５２２に適合する形式に翻訳できる。しかし、オブジェクトプロトコルでメタデータのために使われるコマンドはファイル本位バックエンド５２２に適合するから、翻訳は、場合によっては必要ない。
【０１００】
メタデータは、ホストによって生成されるファイル関連情報である。メタデータの性質と内容はホストによって決定され、通常ならばファイルとメタデータとを記憶するデバイスによって解析されない。メタデータコマンドは、直接データファイルバックエンドによって記憶される特定のファイルについてメタデータ入出力オペレーションを開始し、メタデータの中でオフセットアドレス値を規定するために使用される。メタデータコマンドは、ＭＴＰデータセットに関する対応するコマンドをホストから受信するときに、オブジェクトプロトコルアダプタによって生成される。以下の表には直接データファイルバックエンドシステムによって使用されるメタデータコマンドの例が示されている。
2009518698.tif 000004
【０１０１】
Metadata_write ：metadata_write_pointer の現在値によって決まるオフセットアドレスにある指定ファイルのメタデータは、metadata_write コマンドの受信後にデバイスへストリームされるメタデータによって上書きされる。指定ファイルのメタデータの内容と長さはホストによって決定される。metadata_write コマンドは、他の何らかのコマンドの受信をもって終了する。
【０１０２】
Metadata_read：metadata_readコマンドの受信後、metadata_read_pointer の現在値によって決まるオフセットアドレスにある指定ファイルのメタデータはデバイスからストリームされる。メタデータのストリーミングはメタデータの終わりに達すると終了し、ホストはこの状況をステータスコマンドによって識別できる。metadata_readコマンドは、他の何らかのコマンドの受信をもって終了する。
【０１０３】
Metadata_write_pointer ：metadata_write_pointer コマンドは、指定ファイルのmetadata_write_pointer を指定されたオフセットアドレスに設定する。metadata_write_pointer は、metadata_write コマンドを受けてメタデータがデバイスへストリームされるにつれデバイスによって増加される。
【０１０４】
Metadata_read_pointer ：metadata_read_pointer コマンドは、指定ファイルのmetadata_read_pointer を指定されたオフセットアドレスに設定する。metadata_read_pointer は、metadata_readコマンドを受けてメタデータがデバイスからストリームされるにつれデバイスによって増加される。
【０１０５】
ホストは、階層オブジェクト配置を有する場合がある。例えば、ファイルは、ディレクトリとサブディレクトリとに記憶されることがある。直接データファイルバックエンドは通常、階層構造なしでファイルを（つまり論理的にフラットな配置で）記憶する。２つのシステムを両立させるため、オブジェクトプロトコルアダプタは、記憶オブジェクトの階層構造を、オブジェクトに関連するメタデータを用いて再現できる。ホストが階層を保守する場合は、ファイルが記憶されるときに、階層におけるファイルの状態に関する情報がメタデータとして記憶される。メモリシステムがホストによってアクセスされるときには、最初にこのメタデータを読み出すことができ、これによりオブジェクトプロトコルアダプタは階層構造を判断でき、この情報をホストへ返すことができる。かくして、オブジェクトプロトコルアダプタは、たとえメモリシステムにて階層情報を顧慮せずファイルが記憶される場合でも、この階層情報を再現できる。例えば、ホストの階層の中でファイルが位置するディレクトリとサブディレクトリは、ファイルが記憶されるときにメタデータとして記憶できる。後ほどホストがメモリシステムの内容へアクセスを試みるときには、ホストへ返される情報にディレクトリおよびサブディレクトリの情報が反映される。
【０１０６】
マルチプロトコルインターフェイス
本発明の一実施形態では、所定のサイズを有するオブジェクトと（例えば、ＭＴＰプロトコルに準拠）、所定のサイズを有さないストリーミングファイルとして受信されるファイルと、メモリシステムのために規定された論理アドレス空間の論理アドレスを持つデータセクタとを、受信でき記憶できるメモリシステムが提供される。プロトコルアダプタはこれらの３つのプロトコルに合わせて構成され、ホストで使われるプロトコルに応じて選択される。
【０１０７】
図１６は、共通の直接データファイルインターフェイス６３６へ接続された３つのプロトコルアダプタ６３０、６３２、６３４を有するメモリシステム６２９を示している。直接データファイルインターフェイス６３６および直接データファイル記憶６３８はファイル本位バックエンド６４０の中にあり、このファイル本位バックエンドは直接データファイルバックエンドとみなすことができる。よって、メモリシステム６２９は、ファイルインターフェイスのいずれかから受信するデータのための共通のバックエンドを使用する。このようなシステムにおいてメモリの区画化は必須ではないから、メモリアレイの使用可能な空間は効率的に使用される。よって、ファイルインターフェイスと、オブジェクトインターフェイスと、ＬＢＡインターフェイスとから別々のときに受信するデータを記憶するためにアレイ内のブロックを使用できる。しかし、ＬＢＡインターフェイスから受信するデータは、そのときＬＢＡインターフェイスから受信したデータだけを記憶しているブロックに記憶できる。ファイルインターフェイスとオブジェクトインターフェイスから受信するデータは、そのファイル構造を概ね反映する形で管理されるから、ガーベッジコレクションは減る。
【０１０８】
図１６は、ＬＢＡプロトコルアダプタ６３４を通じてファイル本位バックエンド６４０へ接続されたＬＢＡインターフェイス６３９を示している。ＬＢＡプロトコルアダプタ６３４はＬＢＡデータを論理ファイルに変換でき、あるいは他の何らかの方法を用いてファイル本位バックエンドによる受信に適した形式にＬＢＡデータを変換できる。
【０１０９】
オブジェクトインターフェイス６４２はオブジェクトプロトコルアダプタ６３２を通じてファイル本位バックエンド６４０へ接続されている。通常、オブジェクトプロトコルアダプタ６３２は、オブジェクトプロトコルを使用するホストがファイル本位バックエンドにアクセスできるようにするため、ある１つのプロトコルから別のプロトコルにかけてデータおよびコマンドを変換する。これはオブジェクトプロトコルコマンドからファイル本位コマンドへの１対１の翻訳ですむこともあるが、場合によっては他方のプロトコルに対応するコマンドがないこともある。この場合、オブジェクトプロトコルアダプタは単なる翻訳以上のことを果たす。例えば、ＭＴＰホストがオブジェクトのサイズを含むメタデータを送信してからオブジェクトを送信する場合、オブジェクトプロトコルアダプタはそのオブジェクトの終わりを認識し、ＭＴＰホストに向けて応答を生成する。このときオブジェクトプロトコルアダプタは、ファイル本位バックエンドに向けてファイル閉鎖コマンドをも生成する。
【０１１０】
ファイルインターフェイス６４４はファイルプロトコルアダプタ６３０を通じてファイル本位バックエンド６４０へ接続する。ホストは適切なファイル本位プロトコルを使用しながらファイル本位バックエンドと直接通信する場合もあり、翻訳は必要ない。しかし、ホストは、ファイル本位のプロトコルではあってもファイル本位バックエンドのそれとは同じでないプロトコルを使ってファイルを送信する場合もある。この場合、ファイルプロトコルアダプタ６３０が必要とされる翻訳を遂行する。
【０１１１】
図１６のメモリシステムは、少なくとも３通りのプロトコルを使用するホストに適合する。メモリシステムはまた、さらなるプロトコルアダプタが用意されるなら、別のホストにも適合する。
【０１１２】
図１７は図１６のメモリシステム６２９を示し、ファイルプロトコルアダプタ６３０と、オブジェクトプロトコルアダプタ６３２と、ＬＢＡプロトコルアダプタ６３４とがまとめて翻訳層７５０とみなされる。各々のプロトコルアダプタは、特定のホストプロトコルとファイル本位バックエンド６４０との間で必要とされる翻訳を行う。メモリシステム６２９は、場合によっては一度に２つ以上のホストと通信することがある。例えば、メモリシステム６２９は、複数のホストが取り付けられたネットワークへ接続されることがある。別の例では、１つのホストが、あたかも別々のホストのようにそれぞれ動作するアプリケーションを実行し、異なるプロトコルを使用しながらメモリシステムと通信することがある。この場合、翻訳層７５０は各種ホスト間の不一致を解決しなければならない。翻訳層７５０は、ファイル本位バックエンド６４０が相反するコマンドを受け取らないようにするため、各種ホスト間の調停を行う。これは、ある１つのホストアクセスを、別のホストがある特定のタスクを完了するまで拒否することを意味する場合がある。例えば、オブジェクトプロトコルアダプタ６３２がオブジェクトまたはメタデータを転送している場合、翻訳層７５０は、そのオペレーションが完了するまで、ＬＢＡプロトコルアダプタ６３４とファイルプロトコルアダプタ６３０がファイル本位バックエンド６４０と通信するのを阻止する。これは、メモリシステムへのアクセスを試みているホストへ、ＬＢＡインターフェイス６３９またはファイルインターフェイス６４４を通じてビジー信号を送信することを意味することがある。いくつかの例では、別々のホストが互い違いのトランザクションにより同じ期間にわたってファイル本位バックエンド６４０にアクセスできる。この場合、翻訳層７５０がホスト間の調停を行う。
【０１１３】
図１７は、ファイルインターフェイス６４４と、オブジェクトインターフェイス６４２と、ＬＢＡインターフェイス６３９とを含むインターフェイス層７５２を示している。ファイルインターフェイス６４４と、オブジェクトインターフェイス６４２と、ＬＢＡインターフェイス６３９とは別個の構成要素として図に示されているが、これはメモリシステム６２９の論理インターフェイスを示す論理的表現であって、必ずしも３つの別々の物理インターフェイスがあるとは限らない。いくつかの例において、ファイルインターフェイス６４４、オブジェクトインターフェイス６４２、およびＬＢＡインターフェイス６３９にとって、ならびに使用される他の何らかのインターフェイスにとって共通の、単一の物理インターフェイス（ＵＳＢコネクタまたはＳＤコネクタなど）がある。使用するインターフェイス、したがって使用するプロトコルアダプタは、ホストで使用されるプロトコル次第で決まる。ホストは、メモリシステムが最初にホストへ接続されるときに、ハンドシェイクルーチンの一部としてホストプロトコルを指示する場合がある。ホストによって送信されるコマンドからメモリシステム６２９がホストプロトコルを推定する場合もある。インターフェイス層７５２は、ホストによって送信される指示から、または他の何らかの方法により、使用されているホストプロトコルを検出でき、そのホストプロトコルに準じた通信のための適切なインターフェイスを選択する。したがって、ホストでＭＴＰプロトコルが使われていることをメモリシステムが検出する場合には、オブジェクトインターフェイス６４２とオブジェクトプロトコルアダプタ６３２とが選択される。通常は一度にただひとつのプロトコルアダプタが選択される。しかし、２つ以上のホストによる互い違いのアクセスを可能にするため、プロトコルアダプタがかわるがわるに選択されることもある。
【０１１４】
図１７の構成要素がメモリシステム６２９の論理コンポーネントに相当するが、必ずしも別々の物理構成要素に相当しないことが理解される。したがって、インターフェイス層７５２と翻訳層７５０の機能は専用回路によって達成でき、あるいはコントローラ上で動作する適切なファームウェアを用いて達成できる。一例において、メモリコントローラによって単一の物理インターフェイスが管理され、このメモリコントローラは、データとコマンドを共通バックエンドに適合する形式に変換するために、メモリコントローラ上で実行するプロトコルアダプタを選択する。図１７は３つのプロトコルアダプタのみを示しているが、現実のメモリシステムに備わるプロトコルアダプタは３つを上回るか、または下回ることがある。場合によっては２つ以上のオブジェクトプロトコルアダプタがあってよい。例えば、ＭＴＰのためのオブジェクトプロトコルアダプタのほかに、別のオブジェクトプロトコル（例えば、ＰＴＰ）のためのオブジェクトプロトコルアダプタがあってよい。同様に、別々のファイルプロトコルのための２つ以上のファイルプロトコルアダプタがあってよく、別々のＬＢＡプロトコルのための別々のＬＢＡプロトコルアダプタがあってよい。例えば、アラン・Ｗ・シンクレア(Alan W. Sinclair)による米国特許出願第１１／３０２，７６４号「論理アドレスファイル記憶方法(Logically-Addressed File Storage Methods)」（特許文献３２）には代替のＬＢＡプロトコルの例が記載されている。
【０１１５】
結論
これまで本発明の様々な態様をその代表的な実施形態との関係で説明してきたが、添付の特許請求の範囲の全範囲内においてその権利が保護されるべきであることが理解できよう。
【図面の簡単な説明】
【０１１６】
【図１】現在実施されているホストと接続された不揮発性メモリシステムとを概略的に示す。
【図２】図１の不揮発性メモリとして使用されるフラッシュメモリシステムの例のブロック図である。
【図３】図２のシステムに使用できるメモリセルアレイの代表的な回路図である。
【図４】図２のシステムの物理メモリの編制例を示す。
【図５】図４の物理メモリの一部分の拡大図を示す。
【図６】図４および５の物理メモリの一部分のさらなる拡大図を示す。
【図７】ホストと再プログラム可能なメモリシステムとの間の一般的な先行技術の論理アドレスインターフェイスを示す。
【図８】ホストと再プログラム可能なメモリシステムとの間の一般的な先行技術の論理アドレスインターフェイスを図７とは異なる形で示す。
【図９】本発明によるホストと再プログラム可能なメモリシステムとの間の直接ファイル記憶インターフェイスを示す。
【図１０】本発明によるホストと再プログラム可能なメモリシステムとの間の直接ファイル記憶インターフェイスを図９とは異なる形で示す。
【図１１】メモリのために規定された共通論理アドレス空間の論理アドレスを有するセクタとしてホストから受信するホストファイルを記憶する方式を示し、このセクタは論理ファイルへマッピングされ、論理ファイルはメモリアレイにて１メタブロックにつき１論理ファイルずつ記憶される。
【図１２】論理的にアドレスされるデータをメモリアレイ内の論理ファイルに記憶する方式を図１１とは異なる形で示す。
【図１３】ファイルインターフェイスと、ファイル本位バックエンドと通信するＬＢＡインターフェイスの両方を有し、ＬＢＡインターフェイスとファイル本位バックエンドとの間にＬＢＡプロトコルアダプタを置く、メモリシステムを示す。
【図１４Ａ】ＭＴＰ「オブジェクト情報送信」トランザクションを示す。
【図１４Ｂ】ＭＴＰ「オブジェクト送信」トランザクションを示す。
【図１５】オブジェクトインターフェイスとファイル本位バックエンドの両方を有し、それらの間にオブジェクトプロトコルアダプタを置く、メモリシステムを示す。
【図１６】インターフェイスとファイル本位バックエンドとの通信を促進するため、ファイルインターフェイスと、オブジェクトインターフェイスと、ＬＢＡインターフェイスとを、ファイルプロトコルアダプタと、オブジェクトプロトコルアダプタと、ＬＢＡプロトコルアダプタとともに有する、メモリシステムを示す。
【図１７】ファイルインターフェイスと、オブジェクトインターフェイスと、ＬＢＡインターフェイスとがインターフェイス層の一部とみなされ、ファイルプロトコルアダプタと、オブジェクトプロトコルアダプタと、ＬＢＡプロトコルアダプタとが翻訳層の一部とみなされる、図１６のメモリシステムの代替図を示す。
【図１】
2009518698.tif 000005
【図２】
2009518698.tif 000006
【図３】
2009518698.tif 000007
【図４】
2009518698.tif 000008
【図５】
2009518698.tif 000009
【図６】
2009518698.tif 000010
【図７】
2009518698.tif 000011
【図８】
2009518698.tif 000012
【図９】
2009518698.tif 000013
【図１０】
2009518698.tif 000014
【図１１】
2009518698.tif 000015
【図１２】
2009518698.tif 000016
【図１３】
2009518698.tif 000017
【図１４Ａ】
2009518698.tif 000018
【図１４Ｂ】
2009518698.tif 000019
【図１５】
2009518698.tif 000020
【図１６】
2009518698.tif 000021
【図１７】
2009518698.tif 000022
【国際調査報告】
2009518698.tif 000023
2009518698.tif 000024
2009518698.tif 000025