(57)【要約】  不揮発性大容量記憶装置からデータを読み出す方法およびシステムが提供される。その方法は、不揮発性大容量記憶装置のために論理構成を行うステップを含み、ここで、ファイルデータは、仮想論理アドレス空間中の割当アドレスであり、仮想論理アドレスによって特定されたデータは、ホストシステムによって読み出される。そのシステムは、ファイルバイファイル形式でデータを読み出しおよび書き込んで、ホストシステムがファイルインターフェイスフォーマットを使用して不揮発性大容量記憶装置からデータにアクセスすることを可能にするファイル記憶セグメントと、ホストシステムが論理アドレッシングを使用してデータにアクセスすることを可能にする論理インターフェイスセグメントと、を含み、ホストシステムは、ファイルバイファイル形式でデータが記憶される記憶フォーマットを認識しない。
2009503730.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性大容量記憶装置からデータを読み出す方法であって、
ファイルバイファイル形式でファイルデータを記憶する不揮発性大容量記憶装置のために論理構成を行い、論理構成の間に、論理インデックスが、ファイルディレクトリで特定される各ファイルのためのエントリを含み、各エントリは、不揮発性大容量記憶装置のための仮想論理アドレス空間内でファイルのためのアドレスおよびファイルディレクトリ内の対応するエントリ位置を指定する場合には、論理インデックスが生成されるステップと、
仮想論理アドレスによって特定されるデータが、ホストシステムによって読み出される不揮発性大容量記憶装置を作動するステップと、
を含む方法。
【請求項２】
請求項１記載の方法において、
論理読み出し専用モードの間に、ファイルオフセットアドレスが論理インデックス中のエントリから得られるとともに、ホストシステムからの論理セクタアドレスに関係するエントリは、ファイルディレクトリ中のエントリアドレスに変換される方法。
【請求項３】
請求項２記載の方法において、
セクタデータは、直接データファイル記憶マネージャによって読み出される方法。
【請求項４】
請求項１記載の方法において、
各ＦＡＴセクタのためのリストを含むとともに、各ＦＡＴセクタ番号のためのエントリ番号を提供するファイルアロケーションテーブル（「ＦＡＴ」）インデックスが、論理構成の間に生成される方法。
【請求項５】
請求項４記載の方法において、
論理読み出し専用モードの間に、ＦＡＴセクタに関係するエントリは、ホストシステムに送られる前に、ＦＡＴインデックス中のエントリに基づいて更新される方法。
【請求項６】
請求項１記載の方法において、
ホストシステムは、データが不揮発性大容量記憶装置によってファイルバイファイル形式で記憶されることを可能にする記憶フォーマットを認識しない方法。
【請求項７】
不揮発性大容量記憶装置中のデータを読み出すためのシステムであって、
ホストシステムがファイルバイファイル形式で不揮発性大容量記憶装置からデータにアクセスすることを可能にする直接データファイルアクセスモードで作動する直接データファイル記憶セグメントと、
ホストシステムが論理アドレッシングを使用してデータにアクセスすることを可能にする論理インターフェイスセグメントと、を備え、
ホストシステムは、データがファイルバイファイル形式で記憶される記憶フォーマットを認識しないシステム。
【請求項８】
請求項７記載のシステムにおいて、
論理インターフェイスは、ディレクトリインデックスと、ファイルアロケーションテーブル（「ＦＡＴ」）インデックスと、論理構成モードの間に生成される論理インデックスとを含むシステム。
【請求項９】
請求項８記載のシステムにおいて、
ディレクトリインデックスでは、仮想論理アドレスが、ファイルディレクトリ中の各エントリに割り当てられるシステム。
【請求項１０】
請求項８記載のシステムにおいて、
論理インデックスは、ファイルディレクトリ中で特定される各ファイルのためのエントリを含み、各エントリは、仮想論理アドレス空間およびファイルディレクトリ中で対応するエントリ位置を指定するシステム。
【請求項１１】
請求項８記載のシステムにおいて、
ＦＡＴインデックスは、各ＦＡＴセクタのためのリストを含み、各ＦＡＴセクタ番号のためのエントリ番号を提供するシステム。
【請求項１２】
請求項８記載のシステムにおいて、
論理読み出し専用モードの間に、ディレクトリセクタに関係するエントリは、ファイルディレクトリから読み出され、ディレクトリインデックスからのエントリによって訂正されるシステム。
【請求項１３】
請求項８記載のシステムにおいて、
論理読み出し専用モードの間に、ファイルオフセットアドレスが論理インデックス中のエントリから得られるとともに、ホストシステムからの論理セクタアドレスに関係するエントリは、ファイルディレクトリ中のエントリアドレスに変換されるシステム。
【請求項１４】
請求項８記載のシステムにおいて、
論理読み出し専用モードの間に、ＦＡＴセクタに関係するエントリは、ホストシステムに送られる前に、ＦＡＴインデックス中のエントリに基づいて更新されるシステム。
【請求項１５】
ファイルバイファイル形式でデータを記憶する不揮発性大容量記憶装置からデータを読み出す方法であって、
不揮発性大容量記憶装置のために論理構成を行うステップを含み、
ファイルデータは、仮想論理アドレス空間中の割当アドレスであり、
仮想論理アドレスによって特定されたデータは、ホストシステムによって読み出される方法。
【請求項１６】
請求項１５記載の方法において、
論理読み出し専用モードの間に、ファイルオフセットアドレスが論理インデックステーブル中のエントリから得られるとともに、ホストシステムからの論理セクタアドレスに関係するエントリは、ファイルディレクトリ中のエントリアドレスに変換される方法。
【請求項１７】
請求項１６記載の方法において、
セクタデータは、直接データファイル記憶マネージャによって読み出される方法。
【請求項１８】
請求項１５記載の方法において、
各ＦＡＴセクタのためのリストを含むとともに、各ＦＡＴセクタ番号のためのエントリ番号を提供するファイルアロケーションテーブル（「ＦＡＴ」）インデックスが、論理構成の間に生成される方法。
【請求項１９】
請求項１８記載の方法において、
論理読み出し専用モードの間に、ＦＡＴセクタに関係するエントリは、ホストシステムに送られる前に、ＦＡＴインデックス中のエントリに基づいて更新される方法。
【請求項２０】
請求項１５記載の方法において、
ホストシステムは、データが不揮発性記憶装置によってファイルバイファイル形式で記憶される記憶フォーマットを認識しない方法。
【請求項２１】
不揮発性大容量記憶装置からデータを読み出すためのシステムであって、
ファイルバイファイル形式でデータを読み出しおよび書き込んで、ホストシステムがファイルベースのプロトコルを使用して不揮発性大容量記憶装置からデータにアクセスすることを可能にするファイル記憶セグメントと、
ホストシステムが論理アドレッシングを使用してデータにアクセスすることを可能にする論理インターフェイスセグメントと、を備え、
ホストシステムは、データがファイルバイファイル形式で記憶される記憶フォーマットを認識しないシステム。
【請求項２２】
請求項２１記載のシステムにおいて、
論理インターフェイスセグメントは、ディレクトリインデックスと、ファイルアロケーションテーブル（「ＦＡＴ」）インデックスと、論理構成モードの間に生成される論理インデックスとを含むシステム。
【請求項２３】
請求項２２記載のシステムにおいて、
ディレクトリインデックスでは、仮想論理アドレスが、ファイルディレクトリ中の各エントリに割り当てられるシステム。
【請求項２４】
請求項２２記載のシステムにおいて、
論理インデックスは、ファイルディレクトリ中で特定される各ファイルのためのエントリを含み、各エントリは、仮想論理アドレス空間およびファイルディレクトリ中で対応するエントリ位置を指定するシステム。
【請求項２５】
請求項２２記載のシステムにおいて、
ＦＡＴインデックスは、各ＦＡＴセクタのためのリストを含み、各ＦＡＴセクタ番号のためのエントリ番号を提供するシステム。
【請求項２６】
請求項２２記載のシステムにおいて、
ディレクトリセクタに関係するエントリは、ファイルディレクトリから読み出され、ディレクトリインデックスからのエントリによって訂正されるシステム。
【請求項２７】
請求項２２記載のシステムにおいて、
ファイルオフセットアドレスが論理インデックス中のエントリから得られるとともに、ホストシステムからの論理セクタアドレスに関係するエントリは、ファイルディレクトリ中のエントリアドレスに変換されるシステム。
【請求項２８】
請求項２２記載のシステムにおいて、
ＦＡＴセクタに関係するエントリは、ホストシステムに送られる前に、ＦＡＴインデックス中のエントリに基づいて更新されるシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、半導体フラッシュメモリなどの再プログラム可能な不揮発性メモリシステムの操作に関し、より詳細には、ホスト素子とメモリとの間のインターフェイスの管理に関する。
【背景技術】
【０００２】
関連出願の相互参照
本願は、その全体が本願明細書において参照により援用されている以下の同時係属中の米国特許出願に関する。これらの特許出願とは、２００５年２月１６日に出願されたアラン・Ｗ・シンクレアおよびピーター・Ｊ・スミスが発明者である「フラッシュメモリにおける直接データファイル記憶」という米国特許出願第１１／０６０，２４９号（代理人整理番号：ＳＤＫ０３８０．ＵＳ０）（特許文献１）、２００５年２月１６日に出願されたアラン・Ｗ・シンクレアおよびピーター・Ｊ・スミスが発明者である「フラッシュメモリにおける直接データファイルプログラミングおよび削除」という米国特許出願第１１／０６０，１７４号（代理人整理番号：ＳＤＫ０３８０．ＵＳ１）（特許文献２）、２００５年２月１６日に出願されたアラン・Ｗ・シンクレアおよびピーター・Ｊ・スミスが発明者である「フラッシュメモリにおける直接データファイル記憶実行技術」という米国特許出願第１１／０６０，２４８号（代理人整理番号：ＳＤＫ０３８０．ＵＳ２）（特許文献３）、およびアラン・Ｗ・シンクレアおよびバリー・ライトによる「フラッシュメモリにおける直接データファイル記憶」という米国仮特許出願（特許文献４）（以下、前述したものは、「直接データファイル記憶アプリケーション」としてまとめて称せられる）である。
【０００３】
従来のコンピュータシステムは、典型的には、いくつかの機能構成要素を含んでいる。これらの構成要素は、中央処理装置（ＣＰＵ）、メインメモリ、入出力（「Ｉ／Ｏ」）装置、大容量記憶装置を含んでいてもよい。従来のシステムでは、メインメモリは、システムバスまたはローカルメモリバスを介してＣＰＵに接続されている。メインメモリは、実行時間でメインメモリに記憶されるデータおよび／またはプログラム情報にＣＰＵアクセスを提供するために使用されている。典型的には、メインメモリは、ランダムアクセスメモリ（ＲＡＭ）回路から構成されている。ＣＰＵおよびメインメモリを有するコンピュータシステムは、しばしば、ホストシステムと称せられる。
【０００４】
ホストシステムは、インターフェイスを介して、大容量記憶装置、例えば、不揮発性メモリシステム（本願明細書全体にわたって「フラッシュ素子」、「フラッシュ」、または「フラッシュカード」とも交換可能に称してもよい）とインターフェイスをとる。
【０００５】
商業用フラッシュメモリシステムの初期世代では、メモリセルの長方形アレイは、標準ディスクドライブセクタ、すなわち、５１２バイトのデータ量をそれぞれ記憶した多くのグループのセルに分割されていた。１６バイトなどのデータの追加量も、ユーザデータおよび／またはそれが記憶されるメモリセルグループに関係する誤り訂正コード（ＥＣＣ）と、あるいは他のオーバーヘッドデータとを記憶するために、各グループに通常含まれている。そのような各グループ中のメモリセルは、ともに消去可能なメモリセルの最小数である。すなわち、消去装置は、有効に、１つのデータセクタおよび含まれている任意のオーバーヘッドデータを記憶するメモリセルの数である。この種のメモリシステムの例は、米国特許第５，６０２，９８７号（特許文献５）および第６，４２６，８９３号（特許文献６）に説明されている。それらをデータで再プログラムする前にメモリセルを消去する必要があることは、フラッシュメモリの特徴である。
【０００６】
フラッシュメモリシステムは、パソコン、カメラなどの様々なホストと取り外し可能に接続されるメモリカードまたはフラッシュドライブの形態で、最も一般的に提供されるが、そのようなホストシステム内に組み込まれていてもよい。
【０００７】
典型的には、ホストシステムは、ファイルディレクトリを維持し、論理クラスタにファイルデータを割り当てる。データへのアクセスのために論理インターフェイスを使用するホストシステムは、レガシーホストシステムと称してもよい。この状況で用語のホストシステムは、レガシーフラッシュメモリカードリーダおよびデジタルカメラなどを含む。
【０００８】
従来のシステムでは、ホストは、ファイルシステムを維持し、論理クラスタにファイルデータを割り当て、ここで、クラスタサイズは、典型的には固定されている。フラッシュ素子は、複数の論理セクタに分割され、ホストは、複数の論理セクタを含むクラスタ内の空間を割り当てる。クラスタは、論理アドレスの細分であり、クラスタマップは、ファイルアロケーションテーブル（「ＦＡＴ」）として指定される。ＦＡＴは、記憶装置自体に通常記憶される。
【０００９】
従来のシステムで、メモリにデータを書き込む場合、ホストは、典型的には、メモリシステムの連続仮想アドレス空間内に、データのセクタ、クラスタまたは他のユニットに固有の論理アドレスを割り当てる。ディスクオペレーティングシステム（ＤＯＳ）のように、ホストは、メモリシステムの論理アドレス空間内のアドレスにデータを書き込み、アドレスからデータを読み出す。メモリシステム内のコントローラは、メモリアレイ内の物理アドレス中にホストから受けられる論理アドレスを変換し、ここで、データは、実際に記憶され、次いで、これらのアドレス変換のトラックを続ける。メモリシステムのデータ記憶容量は、メモリシステムのために定義された論理アドレス空間全体にわたってアドレス可能なデータ量と少なくとも同じくらいである。
【００１０】
ホストが論理アドレスマッピングに対してファイルを行う必要がないように、他のファイル記憶システム（またはフォーマット）が開発されている。しかし、これらの新しいファイルシステムは、データを読み出すために、レガシーホストシステムと共に使用されなければならない可能性がある。
【００１１】
したがって、ホストシステムが慣習的でないファイル記憶フォーマットを使用するフラッシュ素子中のファイルに効率的にアクセスすることを可能にする方法およびシステムの必要性がある。
【特許文献１】米国特許出願第１１／０６０，２４９号
【特許文献２】米国特許出願第１１／０６０，１７４号
【特許文献３】米国特許出願第１１／０６０，２４８号
【特許文献４】アラン・Ｗ・シンクレアおよびバリー・ライトによる「フラッシュメモリにおける直接データファイル記憶」という米国仮特許出願
【特許文献５】米国特許第５，６０２，９８７号
【特許文献６】米国特許第６，４２６，８９３号
【特許文献７】米国特許第５，５７０，３１５号
【特許文献８】米国特許第５，７７４，３９７号
【特許文献９】米国特許第６，０４６，９３５号
【特許文献１０】米国特許第６，３７３，７４６号
【特許文献１１】米国特許第６，４５６，５２８号
【特許文献１２】米国特許第６，５２２，５８０号
【特許文献１３】米国特許第６，７７１，５３６号
【特許文献１４】米国特許第６，７８１，８７７号
【特許文献１５】米国公開特許出願第２００３／０１４７２７８号
【特許文献１６】米国特許第６，７６３，４２４号
【特許文献１７】米国特許出願第１１／０６０，２４９号
【発明の開示】
【００１２】
本発明の１つの態様では、不揮発性大容量記憶装置からデータを読み出すためのシステムを提供する。システムは、ファイルバイファイル形式でデータを読み出しおよび書き込んで、ホストシステムがファイルベースのプロトコルを使用して不揮発性大容量記憶装置からデータにアクセスすることを可能にするファイル記憶セグメントと、ホストシステムが論理アドレッシングを使用してデータにアクセスすることを可能にする論理インターフェイスセグメントと、を含み、ホストシステムは、ファイルバイファイル形式でデータが記憶される記憶フォーマットを認識しない。
【００１３】
他の態様では、ファイルバイファイル形式でデータを記憶する不揮発性大容量記憶装置からデータを読み出す方法を提供する。その方法は、不揮発性大容量記憶装置のために論理構成を行うステップを含み、ここで、ファイルデータは、仮想論理アドレス空間中の割当アドレスであり、仮想論理アドレスによって特定されたデータは、ホストシステムによって読み出される。
【００１４】
本発明のさらに他の態様では、不揮発性大容量記憶装置からデータを読み出す方法を提供する。その方法は、ファイルバイファイル形式でファイルデータを記憶する不揮発性大容量記憶装置のために論理構成を行い、論理構成の間に、論理インデックスがファイルディレクトリ中で特定される各ファイルのためのエントリを含み、各エントリは、不揮発性大容量記憶装置のための仮想論理アドレス空間内のファイルのためのアドレスおよびファイルディレクトリ中で対応するエントリ位置を指定する論理インデックスが生成されるステップと、仮想論理アドレスによって特定されるデータがホストシステムによって読み出される不揮発性大容量記憶装置を操作するステップと、を含む。
【００１５】
本発明のさらに他の態様では、不揮発性大容量記憶装置中のデータを読み出すためのシステムを提供する。そのシステムは、直接データファイルアクセスモードで作動して、ホストシステムがファイルバイファイル形式で不揮発性大容量記憶装置からデータにアクセスすることを可能にする直接データファイル記憶セグメントと、ホストシステムが論理アドレッシングを使用してデータにアクセスすることを可能にする論理インターフェイスセグメントと、を含み、ホストシステムは、データがファイルバイファイル形式で記憶される記憶フォーマットを認識しない。
【００１６】
本発明の本質がすぐに理解されるように、この概要を提供する。本発明についてのより完全な理解を、添付の図面に関連して、本発明の好ましい実施形態についての以下の詳細な説明を参照して得ることが可能である。
【００１７】
本発明の前述した特徴および他の特徴を、好ましい実施形態の図面を参照して以下に説明する。図面において、同じ構成要素は、同じ参照数字を有する。例示する実施形態は、例示することを意図し、本発明を限定しない。
【発明を実施するための最良の形態】
【００１８】
好ましい実施形態についての理解を促進するために、ホストシステム／不揮発性大容量記憶システムの一般的なアーキテクチャおよび操作を説明する。次いで、好ましい実施形態の具体的なアーキテクチャおよび操作を、一般的なアーキテクチャを参照して説明する。
【００１９】
ホストシステム／メモリシステム：
図１Ａは、システムバス１０１Ａに接続された中央処理装置（「ＣＰＵ」）（またはマイクロプロセッサ）１０１を含む典型的なホストシステム１００のブロック図を示す。ランダムアクセスメインメモリ（「ＲＡＭ」）１０３は、また、システムバス１０１Ａに接続され、ＣＰＵ１０１に記憶装置へのアクセスを備えさせる。プログラム命令を実行する場合、ＣＰＵ１０１は、ＲＡＭ１０３内にこれら工程段階を記憶し、ＲＡＭ１０３からの記憶された工程段階を実行する。
【００２０】
読み出し専用メモリ（「ＲＯＭ」）１０２は、スタートアップ指示シーケンスまたは基本的な入出力オペレーティングシステム（ＢＩＯＳ）シーケンスなどの不変命令シーケンスを記憶するために設けられている。
【００２１】
入出力（「Ｉ／Ｏ」）装置１０２Ａ、例えば、キーボード、ポインティングデバイス（「マウス」）、モニタ、モデムなども設けられている。
【００２２】
大容量記憶装置（フラッシュ素子）１０５は、また、ＣＰＵ１０１のために不揮発性メモリを備える。フラッシュ素子１０５は、コントローラモジュール１０６（「メモリシステムコントローラ」と称してもよい）および固体メモリモジュール１０７、１０８（メモリモジュール＃１およびメモリモジュール＃Ｎとして示されている）を含む。コントローラモジュール１０６は、バスインターフェイス１０４を介して、またはシステムバス１０１Ａまたは他の周辺機器用バス（図示せず）を直接介して、ホストシステム１００とインターフェイスをとる。
【００２３】
市販の様々なフラッシュメモリカード、例えば、コンパクトフラッシュ（ＣＦ）、マルチメディアカード（ＭＭＣ）、セキュアデジタル（ＳＤ）、ミニＳＤ、メモリスティック、スマートメディアおよびトランスフラッシュカードなどが現在ある。これらの各カードは、その標準化された規格によって固有の機械的および／または電気的インターフェイスを有するが、各々に含まれたフラッシュメモリは、非常に類似している。これらのカードは、すべて、本願の譲受人であるサンディスク  コーポレイションから入手可能である。サンディスク  コーポレイションは、クルーザー（Ｃｒｕｚｅｒ）という商標で、フラッシュドライブのラインも提供し、それは、ホストのＵＳＢレセプタクルに差し込むことによりホストに接続するためのユニバーサル・シリアル・バス（ＵＳＢ）プラグを有する小さなパッケージ中の携帯用メモリシステムである。これらの各メモリカードおよびフラッシュドライブは、それらの中のフラッシュメモリのホストおよび制御操作とインターフェイスをとるコントローラを含む。
【００２４】
そのようなメモリカードおよびフラッシュドライブを使用するホストシステムは、多く、多様である。それらとしては、パソコン（ＰＣ）、ラップトップおよび他の携帯形コンピュータ、携帯電話、個人用携帯情報端末（ＰＤＡ）、デジタル静止カメラ、デジタル動画カメラ、およびポータブルオーディオプレイヤが挙げられる。ホストとして、典型的には、１つまたは複数のタイプのメモリカードまたはフラッシュドライブ用の内蔵レセプタクルが挙げられるが、メモリカードが差し込まれるアダプタを必要とするものもある。
【００２５】
ＮＯＲなどの他のアーキテクチャを代わりに使用することができるが、メモリセルアレイ１０７、１０８のＮＡＮＤアーキテクチャが現在好ましい。ＮＡＮＤフラッシュメモリおよびメモリシステムの一部としてのそれらの操作の例として、米国特許第５，５７０，３１５号（特許文献７）、第５，７７４，３９７号（特許文献８）、第６，０４６，９３５号（特許文献９）、第６，３７３，７４６号（特許文献１０）、第６，４５６，５２８号（特許文献１１）、第６，５２２，５８０号（特許文献１２）、第６，７７１，５３６号（特許文献１３）、第６，７８１，８７７号（特許文献１４）、および米国公開特許出願第２００３／０１４７２７８号（特許文献１５）を参照して挙げることができる。
【００２６】
本発明の適応できる態様は、フラッシュ素子１０５に限定されず、任意の不揮発性大容量記憶システムに使用されることができることに注目すべきである。
【００２７】
図１Ｂは、コントローラモジュール１０６の内部アーキテクチャのブロック図を示す。コントローラモジュール１０６は、インターフェイスロジック１１１を介して様々な他の構成要素とインターフェイスをとるマイクロコントローラ１０９を含む。メモリ１１０は、フラッシュ素子１０５の操作を制御するために、マイクロコントローラ１０９によって使用されるファームウェアおよびソフトウェアの命令を記憶する。メモリ１１０は、揮発性再プログラム可能なランダムアクセスメモリ（「ＲＡＭ」）、フラッシュ式の再プログラム可能でない不揮発性メモリ（「ＲＯＭ」）、一回限りプログラム可能なメモリ、または再プログラム可能な電気的に消去可能でプログラム可能な読み出し専用メモリ（「ＥＥＰＲＯＭ」）であってもよい。
【００２８】
ホストインターフェイス１１３は、ホストシステム１００とインターフェイスをとる一方で、フラッシュインターフェイス１１２は、メモリモジュール１０７、１０８とインターフェイスをとる。
【００２９】
図１Ｃは、以下のさらなる説明で例として使用されるフラッシュメモリセルアレイ（１０７、１０８）の構成を概念的に説明する。メモリセルの４つのプレーンまたはサブアレイ１３１〜１３４は、単一の集積メモリセルチップ、２つのチップ（各チップ上の２つのプレーン）、または４つの別個のチップ上にあってもよい。具体的な配置は、以下の説明では重要ではない。もちろん、１、２、８、１６またはそれ以上などの他のプレーンの数が、システム内に存在していてもよい。プレーンは、それぞれのプレーン１３１〜１３４内に位置するブロック１３７、１３８、１３９、１４０などの長方形によって、図１Ｃで示すメモリセルのブロックに個々に分割される。各プレーン内に、数十または数百のブロックがあってもよい。
【００３０】
メモリセルのブロックは、消去のユニットであり、最も少数のメモリセルが、物理的にともに消去可能である。しかし、並列処理の増加について、ブロックは、より大きなメタブロックユニット中で操作される。各プレーンからの１つのブロックは、メタブロックを形成するために論理上ともに結合されている。４つのブロック１３７〜１４０は、１つのメタブロック１４１を形成するために示されている。メタブロック内のすべてのセルは、通常ともに消去される。メタブロックを形成するために使用されるブロックは、ブロック１４５〜１４８から構成された第２のメタブロック１４３に示すように、それぞれのプレーン内の同じ相対位置に限定される必要はない。
【００３１】
高いシステム性能のために、プレーンのすべてにわたってメタブロックを拡大することが通常好ましいが、メモリシステムは、異なるプレーンで１つ、２つのまたは３つのブロックのいずれかまたはすべてのメタブロックをダイナミックに形成する性能で操作することができる。これは、メタブロックのサイズが、１つのプログラミング操作において記憶のために利用可能なデータの量とより緊密に適合されることを可能にする。
【００３２】
個々のブロックは、図１Ｄで例示するように、操作上の目的のためにメモリセルのページに順に分割されている。各ブロック１３１〜１３４のメモリセルは、例えば、８ページＰ０〜Ｐ７に分割されている。また、各ブロック内に１６、３２またはそれ以上のページのメモリセルがあってもよい。ページは、ブロック内でプログラムし、読み出し、一度にプログラムされるデータの最小量を含むデータのユニットである。ＮＡＮＤアーキテクチャでは、ページは、ブロック内のワード線に沿ってメモリセルから形成されている。しかし、メモリシステム操作上の並列処理を増加させるために、２つ以上のブロック内のそのようなページは、メタページに論理的に結合されてもよい。メタページ１５１は、図１Ｄで例示され、４つの各ブロック１３１〜１３４からの１つの物理ページから形成されている。メタページ１５１は、例えば、４つの各ブロックにページＰ２を含むが、メタページのページは、必ずしも、各ブロック内の同じ相対位置を有する必要がない。
【００３３】
高いシステム性能のために、４つのプレーンすべてにわたって平行にデータの最大量をプログラムし読み出すことが好ましいが、メモリシステムは、異なるプレーン中の個別のブロック中で１、２または３ページのいずれかまたはすべてのメタページを形成するために操作することもできる。これは、プログラミングおよび読み出し操作が、便利に平行に扱われてもよいデータの量と適応して一致することを可能にし、メタページの一部が、データでプログラムされないままである場合を低減する。
【００３４】
多数のプレーンの物理ページから形成されたメタページは、図１Ｄで例示するように、それらの多数のプレーンのワード線の列に沿ってメモリセルを含む。同時に１つのワード線の列でセルのすべてをプログラムするのではなく、それらは、より一般には、２つ以上のインターリーブされたグループ中で交互にプログラムされ、各グループは、データ（単一ブロック中）のページ、またはデータ（多数のブロックにわたる）のメタページを記憶する。一度に代替のメモリセルをプログラムすることによって、データレジスタおよびセンス増幅器を含む周辺回路の１つのユニットを、各ビット線毎に設ける必要はなく、むしろ隣接するビット線間で時分割方式である。これは、周辺回路に必要な基板空間の量を効率よく利用し、メモリセルが、列に沿って密度が増加して包装されることを可能にする。そうでなければ、所定のメモリシステムから利用可能な並列処理を最大にするために、列に沿ってすべてのセルを同時にプログラムすることが好ましい。
【００３５】
図１Ｅは、ページまたはメタページのデータの２つのセクタ１５３、１５５の論理データページを示す。各セクタは、通常、ユーザの５１２バイトの部分１５７、または記憶されているシステムデータ、および部分１５７中のデータまたはそれが記憶されている物理ページまたはブロックに関連するオーバーヘッドデータ用のバイト１５９の他の数を含む。オーバーヘッドデータのバイトの数は、典型的には、１６バイトであり、各セクタ１５３、１５５のために合計５２８バイトとする。オーバーヘッド部１５９は、そのようなオーバーヘッドデータ１５９から計算されたＥＣＣを加えて、プログラミングの間にデータ部１５７から計算されたＥＣＣ、その論理アドレス、ブロックが消去され再プログラムされた回数の経験カウント、１つまたは複数以上の制御フラグ、操作電圧レベル等を含んでいてもよい。または、オーバーヘッドデータ１５９またはその一部は、他のブロック中の異なるページに記憶されていてもよい。
【００３６】
メモリの並列処理が増加するので、メタブロックのデータ記憶容量が増加し、その結果、データページおよびメタページのサイズも増加する。次いで、データページは、データの２つより多いセクタを含んでいてもよい。データページ中の２つのセクタおよびメタページ当たり２つのデータページで、メタページには４つのセクタがある。このように、各メタページは、２，０４８バイトのデータを記憶する。これは、高度な並列処理であり、列中のメモリセルの数が増加されるので、さらに増加することができる。この理由で、フラッシュメモリの幅は、ページおよびメタページ中でデータの量を増加させるために拡大される。
【００３７】
前に特定された物理的に小さな再プログラム可能な不揮発性メモリカードおよびフラッシュドライブは、５１２メガバイト（ＭＢ）、１ギガバイト（ＧＢ）、２ＧＢおよび４ＧＢのデータ記憶容量で市販され、より高くなってもよい。
【００３８】
図１Ｆは、ホストとそのような大容量メモリシステムとの間の最も一般的なインターフェイスを説明する。ホストによって実行されたアプリケーションソフトウェアまたはファームウェアプログラムによって生成または使用されるデータファイルを処理する。文書処理データファイルは一例であり、コンピュータを使った設計（ＣＡＤ）ソフトウェアのドローファイルは他の例であり、主として、ＰＣ、ラップトップコンピュータ等の一般的なコンピュータのホストで見られる。ｐｄｆフォーマット中の文書も、そのようなファイルである。さらに、デジタルビデオカメラは、メモリカードに記憶される各画像のためのデータファイルを生成する。携帯電話は、電話帳などの内部記憶カード上のファイルからデータを利用する。ＰＤＡは、アドレスファイル、カレンダーファイル等のいくつかの様々なファイルを記憶し使用する。任意のそのようなアプリケーションでは、メモリカードもホストを操作するソフトウェアを含んでいてもよい。
【００３９】
ホストとメモリシステムとの間の共通の論理インターフェイスを図１Ｆに例示する。連続論理アドレス空間１６１は、メモリシステムに記憶されることができるすべてのデータのためにアドレスを提供することができるほど十分に大きい。ホストアドレス空間は、典型的には、データのクラスタのインクリメントに分割されている。各クラスタは、データの多くのセクタを含むために、所定のホストシステムで設計されてもよく、４〜６４のセクタが典型的である。標準セクタは、５１２バイトのデータを含む。
【００４０】
３つのファイル１、２、３は、図１Ｃの例で示され、生成された。ホストシステム上で作動するアプリケーションプログラムは、データの順序集合として各ファイルを生成し、固有の名前または他の参照によってそれを特定する。他のファイルにまだ割り当てられていない十分に利用可能な論理アドレス空間は、ファイル１にホストによって割り当てられる。ファイル１は、利用可能な論理アドレスの連続範囲を割り当てられるために示される。アドレスの範囲も、ホストオペレーティングソフトウェアのための特有の範囲などの具体的な目的のために一般的に割り当てられ、次いで、これらのアドレスは、ホストがデータに論理アドレスを割り当てているときに利用されていないとしても、データを記憶するために回避される。
【００４１】
ファイル２が、後にホストによって生成される場合、ホストは、図１Ｆに示すように、同様に、論理アドレス空間１６１内の連続アドレスの２つの異なる範囲を割り当てる。ファイルは、割り当てられた連続論理アドレスである必要はないが、他のファイルに既に割り当てられたアドレス範囲間でアドレスのフラグメントとすることができる。次いで、この例は、ホストによって生成されたさらに他のファイル３が、予め、ファイル１、２および他のデータに割り当てられないホストアドレス空間の割り当てられた他の部分であることを示す。
【００４２】
ホストは、ファイルアロケーションテーブル（ＦＡＴ）の維持によりメモリ論理アドレス空間のトラックを保持し、ここで、ホストが様々なホストファイルに割り当てる論理アドレスが維持される。ＦＡＴテーブルは、ホストメモリと同様に、不揮発性メモリに典型的には記憶され、新しいファイルが記憶される場合、ホストによって頻繁に更新され、他のファイルは削除され、ファイルは訂正されるなどである。ホストファイルが削除される場合、例えば、ホストは、次いで、それらが、ここで、他のデータファイルとともに使用するために利用可能であることを示すために、ＦＡＴテーブルを更新することにより、削除されたファイルに予め割り当てられた論理アドレスの割り当てを解除する。
【００４３】
ホストは、メモリシステムコントローラがファイルを記憶するために選択する物理位置について注意していない。典型的なホストは、単に、その論理アドレス空間、およびそれがその様々なファイルに割り当てられた論理アドレスを知っている。他方、メモリシステムは、典型的なホスト／カードインターフェイスを介して、データが書かれている論理アドレス空間の一部のみを知っているが、具体的なホストファイルに割り当てられた論理アドレス、またはホストファイルの数さえ知らない。メモリシステムコントローラ１０６は、ホストデータが記憶されるフラッシュメモリセルアレイ内の固有の物理アドレス中へのデータの記憶または検索のためにホストによって提供される論理アドレスを変換する。ブロック１６３は、これらの論理−物理アドレス変換の作業テーブルを表し、メモリシステムコントローラ１０６によって維持される。
【００４４】
メモリシステムコントローラ１０６は、ハイレベルでシステムの性能を維持する方法で、メモリアレイ１６５のブロックおよびメタブロック内にデータファイルを記憶するようにプログラムされている。４つのプレーンまたはサブアレイがこの実例で使用されている。データは、各プレーンからブロックから形成されたメタブロック全体にわたってシステムが可能とする並列処理の最大限で、プログラムされ、読み出されることが好ましい。少なくとも１つのメタブロック１６７は、予備のブロックとして、メモリコントローラによって使用される操作ファームウェアおよびデータを記憶するために通常割り当てられる。他のメタブロック１６９または多数のメタブロックは、ホストオペレーティングソフトウェア、ホストＦＡＴテーブル等の記憶に割り当てられてもよい。物理記憶空間のほとんどは、データファイルの記憶のために残る。
【００４５】
しかし、メモリシステムコントローラ１０６は、受けたデータが、その様々なファイルオブジェクトの中のホストによってどのように割り当てられたかは分からない。メモリコントローラ１０６が、典型的にホストと情報をやりとりすることから分かるすべては、コントローラの論理−物理アドレステーブル１６３によって維持されるように、対応する物理アドレスに、ホストによって具体的な論理アドレスに書き込まれたデータが記憶されるということである。
【００４６】
典型的なメモリシステムでは、アドレス空間１６１内でデータの量を記憶するのに必要であるよりも、記憶容量の２、３の別のブロックが設けられている。これらの別のブロックの１つまたは複数は、メモリの寿命の間に不良になってもよい他のブロックのための代用に、余分のブロックとして設けられてもよい。個々のメタブロック内に含まれたブロックの論理グループ分けは、通常、メタブロックにもともと割り当てられた不良ブロックのための余分のブロックの代用を含めて、様々な理由で変更されてもよい。メタブロック１７１などの１つまたは複数のブロックが、消去されたブロックプール中に典型的に維持される。
【００４７】
ホストが、メモリシステムにデータを書き込む場合、コントローラ１０６は、ホストによって、消去されたブロックプール中のメタブロック内の物理アドレスに割り当てられた論理アドレスを変換する。次いで、論理アドレス空間１６１内にデータを記憶するために使用されない他のメタブロックは、結果生じるデータ書き込み操作の間の使用のために、消去されたプールブロックとして消去され、指定される。
【００４８】
元の記憶されたデータが使用されなくなるので、具体的なホスト論理アドレスで記憶されたデータは、新しいデータによって頻繁に上書きされる。メモリシステムコントローラ１０６は、それに応じて、消去されたブロック中に新しいデータを書き込み、次いで、それらの論理アドレスでのデータが記憶される新しい物理ブロックを特定するために、それらの論理アドレスと論理−物理アドレステーブルを交換する。次いで、それらの論理アドレスで元のデータを含むブロックは、消去され、新しいデータの記憶に利用可能になる。書き込み開始で、消去ブロックプールからの予め消去されたブロック中に十分な記憶容量がないなら、現在のデータ書き込み操作が完了される前に、そのような消去は、しばしば起こるに違いない。これは、速度をプログラムするシステムデータに悪影響を及ぼす可能性がある。メモリコントローラ１０６は、典型的には、ホストが、それらの同じ論理アドレスに新しいデータを書き込む場合に限り、所定の論理アドレスでのデータが、ホストによって使用されなくなったことが分かる。したがって、メモリの多くのブロックは、一時的に、そのような無効データを記憶することができる。
【００４９】
ブロックおよびメタブロックのサイズは、集積回路メモリチップの領域を効率的に使用するために増加している。これは、個々のデータの書き込みの大部分がメタブロックの記憶容量未満であり、多くの場合、ブロック未満であるデータの量を記憶することをもたらす。メモリシステムコントローラ１０６が、新しいデータを消去されたプールメタブロックに通常導くので、これは、満たされなくなるメタブロックの一部をもたらす可能性がある。新しいデータが、他のメタブロック中に記憶されたいくつかのデータの更新であるなら、新しいデータメタページと接触する論理アドレスを有する他のメタブロックからのデータの残りの有効なメタページは、論理アドレス順に新しいメタブロックにコピーされることが望ましい。古いメタブロックは、他の有効データメタページを保持してもよい。これは、使用されず無効であり、異なるメタブロックに書き込まれる同じ論理アドレスで新しいデータと取り替えられる個々のメタブロックのあるメタページのデータをいずれもたらす。
【００５０】
論理アドレス空間１６１全体にわたってデータを記憶するのに十分な物理メモリ空間を維持するために、そのようなデータは、周期的に圧縮または集約される（ガーベッジコレクション）。これは、連続論理アドレスでデータを読み取ることをより効率的にするので、実際と同様に、それらの論理アドレスと同じ順に、メタブロック内のデータのセクタを維持することも望ましい。したがって、データ圧縮およびガーベッジコレクションは、典型的には、この追加目標で行われる。部分ブロックデータの更新を受ける場合にメモリを管理するいくつかの態様およびメタブロックの使用が、米国特許第６，７６３，４２４号（特許文献１６）に記載されている。
【００５１】
直接データファイル記憶：
図２Ａは、２００５年２月１６日に出願された「フラッシュメモリでの直接データファイル記憶」という同時係属中の米国特許出願第１１／０６０，２４９号（代理人整理番号：ＳＤＫ０３８０．ＵＳ０）（特許文献１７）、および前に援用されている直接データファイル記憶アプリケーションに開示された、直接データファイル記憶（「ＤＦＳ」）方法／システムのためにフラッシュ素子１０５によって使用されるシステム２００のブロック図を示す。
【００５２】
ＤＦＳ装置では、データは、前述した特許出願に記載するように、ファイルバイファイル形式（ファイルベースプロトコル）でホストシステム１００によってアクセスされ、すなわち、データは、ファイル内のファイル識別子およびオフセットアドレスによって特定される。論理アドレス空間は、装置のために定義されない。ホストシステム１００は、論理クラスタにファイルデータを割り当てず、ファイルのためのディレクトリ／インデックステーブル情報は、フラッシュ素子１０５によって生成される。
【００５３】
ホストは、ファイル内の固有のファイルＩＤ（または他の固有の基準）、およびデータ（バイトなど）のユニットのオフセットアドレスによって、各ファイルをアドレス指定する。このファイルアドレスは、メモリシステムコントローラ１０６に直接付与され、次いで、各ホストファイルのデータが、物理的に記憶されることに関するそれ自身のテーブルを維持する。
【００５４】
このファイルベースインターフェイスは、図１Ｇに例示され、図１Ｆの論理アドレスインターフェイスと比較されるべきである。各ファイル１、２、３の特定および図１Ｇのファイル内のデータのオフセットは、メモリコントローラに直接渡される。次いで、この論理アドレス情報は、メモリコントローラ機能１７３によって、メモリ１６５のメタブロックおよびメタページの物理アドレスに変換される。
【００５５】
ファイルベースインターフェイスも、図１Ｌに例示され、図１Ｈの論理アドレスインターフェイスと比較されるべきである。論理アドレス空間および図１Ｈのホスト維持ＦＡＴテーブルは、図１Ｌに存在しない。もっと正確に言えば、ホストによって生成されたデータファイルは、ファイル内のデータのファイル番号およびオフセットによってメモリシステムに特定される。次いで、メモリシステムは、直接、メモリセルアレイの物理ブロックにファイルを位置づける。
【００５６】
図１Ｍを参照して、本願明細書で説明されている大容量記憶システムの機能層の一例を説明する。「直接データファイル記憶バックエンドシステム」は、「直接データファイルインターフェイス」および「ファイルベースフロントエンドシステム」を介して、ファイルベースインターフェイスチャンネルにわたってホストシステムと通信する。各ホストファイルは、ファイル名によってなど、一意的に特定される。ファイル内のデータは、ファイルに特有の線形アドレス空間内のオフセットアドレスによって特定される。
【００５７】
ＤＦＳ装置は、ホストシステムによって有利に使用されるが、さらに、データファイルを読み出すために、論理インターフェイスを使用する必要のあるレガシーホストシステムがある。本発明の１つの態様では、ＤＦＳ装置は、レガシーホストシステムによって読み出し専用モードでアクセスされることができる。フラッシュ素子１０５は、それが従来のホストシステムに挿入されたことを検知する場合、それは、ＤＯＳ基準によってディレクトリおよびＦＡＴデータ構造をエミュレートし、仮想論理アドレス空間の連続領域としてファイルデータアドレスを表す。レガシーホストシステムは、論理インターフェイスを有する従来のフラッシュ素子であるように、ＤＦＳ可能フラッシュ素子１０５とインターフェイスをとる。
【００５８】
本発明の他の実施形態では、ホストシステムは、ファイルベースインターフェイスと論理インターフェイスの両方を使用して、フラッシュ素子１０５にアクセスすることを望んでもよい。例えば、ホスト上のレガシーアプリケーションソフトウェアは、論理インターフェイスを、論理インターフェイスでのみ作動するレガシーメモリ素子との互換性のために使用してもよい一方で、他のアプリケーションは、ＤＦＳ装置にファイルベースインターフェイスを使用してもよい。
【００５９】
図２Ａを再び参照すると、システム２００は、仮想論理アドレス空間中の断片化されていないデータとして、フラッシュ素子１０５に記憶されたファイルを表すために、ディレクトリおよびＦＡＴ情報を生成することにより、論理セクタインターフェイスをエミュレートする。システム２００は、ＤＦＳセグメント２００Ａおよび論理セグメント２００Ｂを含む。データを読み出すために論理インターフェイスを使用するレガシーホストと共に論理セグメント２００Ｂが使用されていることをフラッシュ素子１０５が検知する場合、論理セグメント２００Ｂが可能とされる。
【００６０】
フラッシュ素子１０５のための様々な作動モードに関して、セグメント２００Ａ、２００Ｂを以下に説明する。
【００６１】
直接データファイルアクセスモード（または「ＤＦＳモード」）：
ＤＦＳモードの間に、フラッシュ素子１０５は、前述した同時係属中の特許出願に詳細に説明される直接データファイルアクセスモードで作動する。このモードの間に、ホストシステムは、直接データファイルインターフェイス２０１に、ファイル識別子およびオフセットアドレスを送る。論理アドレス空間は、このモードの間に必要ではない。ファイルディレクトリ２０３およびファイルインデックステーブル（「ＦＩＴ」と称してもよい）２０４は、フラッシュ素子１０５によって生成される。
【００６２】
ファイルディレクトリ２０３は、ファイルインデックステーブル２０４中の第１のデータグループエントリに対してポインタでファイル属性情報を記録する。ファイルインデックステーブル２０４は、連続ファイルオフセットアドレスを有するファイル内の各有効データグループのためのエントリを含む。データグループのためのエントリは、ファイルオフセットアドレスおよび物理アドレスを含む。
【００６３】
図２Ｅは、本発明の１つの態様によって使用される直接データファイル記憶システムのインデックススキームのブロック図を示す。ホスト１００は、フラッシュ素子１０５にパス、ファイル名およびオフセット２０３Ａを提供する。パスは、ディレクトリ情報、例えば、ディレクトリＡ、Ｂを記憶するファイルディレクトリ２０３を指し示す。
【００６４】
ディレクトリ中のすべてのファイルは、ＦＩＴ２０４（例えば、２０３Ｂは２０４Ｄを指し示す）中のエントリを指し示す。ＦＩＴ２０４は、すべてのデータグループのためのエントリを含み、各エントリ（例えば、２０４Ｄ）は、オフセット値２０４Ａ、ブロック値２０４Ｂ、およびバイト値２０４Ｃを含む。オフセット値２０４Ａは、データグループ（例えば、フラッシュブロック２０５Ｂ中の２０５Ａ）の開始に対応するファイル内のオフセットアドレスを示す。ブロック値２０４Ｂは、データブロックの実際の物理アドレスを提供し、バイト値２０４Ｃは、データグループが開始するバイトを指し示す。
【００６５】
論理構成モード：
フラッシュ素子１０５が、データを読み出すために論理インターフェイスを必要とするレガシーホストシステムに挿入される（またはレガシーホストシステムと通信する／操作上レガシーホストシステムと結合される）ことを検知する場合、論理構成操作は、本発明の１つの態様によって行われる。
【００６６】
論理構成は、コントローラ１０６によって、またはホストインターフェイス１１３で受けたコマンドに応じて決定されてもよいなど、別のときに行われてもよい。
【００６７】
図２Ｂに示すように、論理構成操作中に、ファイルディレクトリ２０３のコンテンツを使用して、ディレクトリインデックス２０６、ＦＡＴインデックス２０７、および論理インデックス２０８を生成して、ホストシステム１００で結合される論理インターフェイス２１０に応答する。ファイルディレクトリ２０３は、論理データ読み出しマネージャ２０９によって走査され、情報を使用して、前述したインデックステーブルを生成する。
【００６８】
ディレクトリインデックス２０６：
ディレクトリインデックス２０６は、各ファイルディレクトリ２０３エントリのために割り当てられる仮想論理アドレスを含む。ファイルディレクトリ２０３エントリは、サブディレクトリまたはファイルを定義し、ファイルディレクトリ２０３またはＦＩＴ２０４へのポインタを含む。ＤＯＳディレクトリ中のポインタが、素子のアドレス空間中で論理アドレスに関係することに注目すべきである。ディレクトリインデックス２０６は、ファイルディレクトリ２０３中でポインタの代わりになるために使用される仮想論理アドレスを含み、ＤＯＳ基準に一致するディレクトリを生成する。
【００６９】
ＦＡＴインデックス２０７：
ＦＡＴインデックス２０７は、フラッシュ素子１０５のための仮想アドレス空間のためにＦＡＴがエミュレートされることを可能にする情報を含む（図２Ｆ参照）。フラッシュ素子１０５中のファイルは、論理順次クラスタの連続セットを占めることとしてエミュレートされる。ＦＡＴは、フラッシュ素子１０５のための仮想論理アドレス空間中で各エミュレートされたクラスタのための１つのエントリを含む。ファイルのためのデータに割り当てられ、エミュレートされたクラスタは、＜エンドオブファイル＞コードを含む最後のクラスタ以外に、次のクラスタを指し示すＦＡＴエントリを有する。
【００７０】
本発明は、ＦＡＴセクタがホストによって読み出される場合に、アルゴリズムで生成されることができるようなＦＡＴエントリを明確に記憶することに限定されないことに注目すべきである。ＦＡＴエントリを＜エンドオブファイル＞コードで特定する記録が記憶される。ＦＡＴエントリ（２０７Ａ）の各セクタについて、ＦＡＴインデックス２０７は、＜エンドオブファイル＞コードを含むエントリのリストを含む（図２Ｆ参照）。
【００７１】
論理インデックス２０８：
論理読み出し専用モードの間に、フラッシュ素子１０５からのファイルデータは、論理アドレスを使用することによりアクセスされる。論理インデックス２０８は、ファイルデータ２０５Ｃ（図２Ｄ）がレガシーホスト（または任意の他のホストシステム）によって読み出されるように、論理アドレスをファイルディレクトリ２０３エントリアドレスおよびファイルアドレスオフセットに変換するために使用される。論理インデックス２０８は、ファイルディレクトリ２０３中で特定される各ファイルのための１つのエントリを含む。各論理インデックス２０８エントリは、仮想論理アドレス空間中でアドレスを特定し、ファイルディレクトリ２０３中で関係のあるエントリ位置を指定する。
【００７２】
図２Ｄは、本発明の１つの態様による論理インデックステーブル２０８を例示する。論理インデックス２０８中のエントリは、２つのフィールド、ＸおよびＹを含む。フィールドＹは、ファイルディレクトリの位置Ｘでエントリを有するファイルの開始に割り当てられた論理アドレスである。エミュレートされた論理アドレスマップは、２０８Ａとして示される一方で、２０８Ｂは、ファイルエントリＸがＦＩＴテーブル２０４エントリをどのように指し示すかを示す。
【００７３】
ホストは、ターゲット論理アドレスＹ’（図示せず）を提供し、論理インデックス２０８は、論理アドレスＹ’が位置するファイルの開始のために論理アドレスＹを見つけるために探索される。（Ｙ’−Ｙ）は、ファイル内のターゲット論理アドレスのオフセットアドレスを定義する。論理インデックス２０８は、論理アドレスＹに対応する位置Ｘを提供する。これは、ファイルデータ２０５が論理インターフェイスを使用して、レガシーホストに提供されることを可能にする。
【００７４】
図２Ｇは、データ構造が表されるフラッシュ素子１０５のための仮想論理アドレス空間２１１を示す。ＤＯＳ基準によれば、ＦＡＴ 1、ＦＡＴ２およびルートディレクトリ構造は、パーティションブート記録に続く１セットの論理アドレスによって表される。従来のシステムでは、クラスタ化されたデータ空間は、ルートディレクトリの後に開始する。
【００７５】
フラッシュ素子１０５は、データ空間の開始で連続クラスタドレスにあるとしてサブディレクトリを表す。ファイルは、アドレスの断片化なしで、およびファイル（連続ファイル２１１Ａとして示される）間の割り付けられていないクラスタなしで、データ空間中で連続クラスタを占めることとして表される。
【００７６】
論理読み出し専用モード：
フラッシュ素子１０５が、論理読み出し専用操作のために構成される場合、図２Ｃに示すように、論理インターフェイス２１０を使用して読み出されてもよい。ホストセクタドレスは、仮想論理アドレス空間内のその範囲に基づいて、ディレクトリセクタ、ＦＡＴセクタまたはデータセクタに関係すると認められる。
【００７７】
ディレクトリセクタに関係するエントリは、ファイルディレクトリ２０３から読み出され、ホストシステムに戻される前に、ディレクトリインデックス２０６から対応するエントリを使用することにより訂正される。
【００７８】
ＦＡＴセクタに関係するエントリは、１セットのインクリメントクラスタアドレスとして生成され、ＦＡＴインデックス２０７中のセクタのためのエントリによって、＜エンドオブファイル＞コードに更新される。その後、エントリは、ホストシステムに戻される。図２Ｆは、各エントリが＜エンドオブファイル＞コードを含むＦＡＴエントリ（２０７Ａ）のＦＡＴセクタエントリ番号（２０７Ｃ）およびＦＡＴセクタエントリ番号（２０７Ｂ）を特定するＦＡＴインデックス２０７の例を示す。
【００７９】
ホストシステムからの論理セクタアドレスは、論理インデックス２０８中のエントリを探索することによりファイルオフセットアドレスを有するファイルディレクトリ２０３中のエントリアドレスに変換される。セクタデータは、直接データファイル記憶マネージャ２０２を使用して読み出される。
【００８０】
メモリ１１０は、ディレクトリインデックス２０６、ＦＡＴインデックス２０７および論理インデックス２０８の記憶およびアクセスに使用されてもよいことに注目すべきである。ＤＦＳマネージャ２０２は、メモリ１１０中のバッファのプールおよびファイルのための消去ブロックのプールを使用し、データ記憶を制御してもよい。これらのバッファ（図示せず）は、論理読み出し専用操作の間に使用されず、その結果、先のインデックスを記憶するために使用されてもよい。しかし、インデックスは、メモリ１１０中のコピーでまたはコピーなしで、フラッシュメモリモジュール１０７、１０８に記憶されていてもよい。
【００８１】
処理フロー：
図３は、本発明の１つの態様によるフラッシュ素子１０５から情報を読み出すためのフローチャートを示す。詳細に図３を参照して、ステップＳ３００でプロセスを開始する。ステップＳ３０２では、コントローラ１０６は、論理構成が必要かどうかを判断する。構成が必要でないなら、プロセスはステップＳ３１４に進み、以下に詳細に説明する。
【００８２】
ステップＳ３０４では、論理構成が必要なら、コントローラ１０６は、次のファイルディレクトリエントリを読み出し、ステップＳ３０６Ａでディレクトリインデックス２０６のための対応するエントリを生成する。次いで、ファイルディレクトリエントリが、ファイル用であるなら、コントローラ１０６は、ステップＳ３０６で判断する。ファイルディレクトリエントリが、ファイルのためでないなら、プロセスは、ステップＳ３１２（以下に説明される）に進む。
【００８３】
ステップＳ３０６でファイルディレクトリエントリがファイル用であるなら、次いで、ステップＳ３０８では、ＦＡＴインデックスエントリ２０７Ｂが生成され、ステップＳ３０８Ａでは、論理インデックスエントリ（例えば、図２Ｄで示すように）が生成される。
【００８４】
ステップＳ３１２では、コントローラ１０６は、ファイルディレクトリ中の最後のエントリが到達されたかどうかを判断する。ファイルディレクトリ中の最後のエントリが、到達されていないなら、プロセスは、次いで、ステップＳ３０４に戻る。ステップＳ３１４では、ファイルディレクトリ中の最後のエントリが到達されるなら、コントローラ１０６は、読み取りコマンドが論理インターフェイス２１０で受けられたかどうかを判断する。
【００８５】
読み取りコマンドが受けられないなら、プロセスは、次いで、ステップＳ３０２に戻る。
【００８６】
ステップＳ３１６では、読み取りコマンドが受けられるなら、プロセスは、論理アドレスがディレクトリセクタ用であるかどうかを判断する。論理アドレスが、ディレクトリセクタ用であるなら、次いで、ステップＳ３１８では、ディレクトリインデックス２０６が読み出され、ステップＳ３２０では、ファイルディレクトリ２０３が読み出される。ステップＳ３２２では、ディレクトリセクタが生成され、情報がステップＳ３２４においてホスト１００に戻される。
【００８７】
ステップＳ３１６であれば、論理アドレスは、ディレクトリセクタのためでなく、次いで、ステップＳ３３０では、プロセスは、論理アドレスがＦＡＴセクタ用であるかどうか判断する。それがＦＡＴセクタ用であるなら、次いで、ステップＳ３３２では、ＦＡＴインデックス２０７が読み出される。ＦＡＴセクタは、ステップＳ３３４で生成され、ステップＳ３２４でホスト１００に戻される。
【００８８】
ステップＳ３３０であるなら、論理アドレスは、ＦＡＴセクタ用ではなくファイルデータ用であり、次いで、ステップＳ３３６では、プロセスは、論理アドレスがファイルデータ用であるかどうかを判断する。そうでなければ、次いで、そのプロセスは、ステップＳ３０２に戻る。
【００８９】
論理アドレスがファイルデータ用である場合、次いで、ステップＳ３３８では、論理インデックス２０８が読み出される。ファイルディレクトリエントリはステップＳ３４０で特定され、データはステップＳ３４２で直接データファイル記憶セグメントから読み出される。したがって、ファイルデータは、ステップＳ３２４でホストに戻される。
【００９０】
ステップＳ３２６では、プロセスは、ステップＳ３１４で受けられた読み取りコマンドの結果として読み出されることになる任意の他の論理アドレスがあるかどうかを判断する。そうでなければ、次いで、プロセスはステップＳ３０２に戻る。他の論理アドレスがあるなら、プロセスはステップＳ３１６に戻る。
【００９１】
本発明の１つの態様では、レガシーホストシステムは、直接データファイル記憶装置からデータを読み出すために、全くアップグレードをする必要はない。
【００９２】
本発明を具体的な実施形態を参照して説明してきたが、これらの実施形態は、単に実例であり、限定されない。本発明の他の多くの用途および実施形態は、この開示および添付の特許請求の範囲の観点から明らかになる。
【図面の簡単な説明】
【００９３】
【図１Ａ】フラッシュ素子を使用するホストシステムのブロック図を示す。
【図１Ｂ】本発明の１つの態様によって使用される、フラッシュ素子コントローラのブロック図を示す。
【図１Ｃ】フラッシュメモリシステムのための物理メモリ構成の例を示す。
【図１Ｄ】図１Ｄの物理メモリの一部の拡大図を示す。
【図１Ｅ】図１Ｃ、１Ｄの物理メモリの一部のさらなる拡大図を示す。
【図１Ｆ】ホストと再プログラム可能なメモリシステムとの間の従来の論理アドレスインターフェイスを示す。
【図１Ｇ】本発明の１つの態様による、ホストと再プログラム可能なメモリシステムとの間の直接データファイル記憶インターフェイスを示す。
【図１Ｈ】ホストと再プログラム可能なメモリシステムとの間の従来の論理アドレスインターフェイスを図１Ｆとは異なる方法で示す。
【図１Ｌ】本発明の１つの態様による、ホストと再プログラム可能なメモリシステムとの間の直接データファイル記憶インターフェイスを図１Ｇとは異なる方法で示す。
【図１Ｍ】例のメモリシステムの機能階層を示す。
【図２Ａ】本発明の１つの態様による、フラッシュ素子によって使用されるシステムのトップレベル論理ブロック図を示す。
【図２Ｂ】本発明の１つの態様による、論理構成モードのために、図２Ａにおけるシステムの複数の構成要素間の相互接続を示す。
【図２Ｃ】本発明の１つの態様による、論理読み出し専用モードのための、図２Ａにおけるシステムの複数の構成要素間の相互接続を示す。
【図２Ｄ】本発明の１つの態様によって使用される、論理インデックステーブルのブロック図を示す。
【図２Ｅ】本発明の１つの態様による、直接データファイル記憶システムのインデックススキームを示す。
【図２Ｆ】本発明の１つの態様によって使用される、ＦＡＴインデックステーブルのブロック図を示す。
【図２Ｇ】本発明の１つの態様による、論理アドレスマップのブロック図を示す。
【図３】本発明の１つの態様による、ファイルバイファイル形式でデータを記憶するフラッシュ素子からデータを読み出すための工程段階のフローチャートを示す。
【図１Ａ】
2009503730.tif 000003
【図１Ｂ】
2009503730.tif 000004
【図１Ｃ】
2009503730.tif 000005
【図１Ｄ】
2009503730.tif 000006
【図１Ｅ】
2009503730.tif 000007
【図１Ｆ】
2009503730.tif 000008
【図１Ｇ】
2009503730.tif 000009
【図１Ｈ】
2009503730.tif 000010
【図１Ｌ】
2009503730.tif 000011
【図１Ｍ】
2009503730.tif 000012
【図２Ａ】
2009503730.tif 000013
【図２Ｂ】
2009503730.tif 000014
【図２Ｃ】
2009503730.tif 000015
【図２Ｄ】
2009503730.tif 000016
【図２Ｅ】
2009503730.tif 000017
【図２Ｆ】
2009503730.tif 000018
【図２Ｇ】
2009503730.tif 000019
【図３（ｉ）】
2009503730.tif 000020
【図３（ｉｉ）】
2009503730.tif 000021
【図３（ｉｉｉ）】
2009503730.tif 000022
【国際調査報告】
2009503730.tif 000023
2009503730.tif 000024