(57)【要約】【課題】  フラッシュメモリとそれによるファイルシステムを提供すること。【解決手段】  フラッシュメモリと、ホストシステムとインターフェースするホストシステムインターフェース、一定数のデータユニット記憶容量を有しホストシステムに伝送のためのデータを記憶するキャッシュメモリシステム、ホストシステムから受信した論理アドレスをフラッシュメモリの物理アドレスにマッピングするフラッシュ変換階層ユニット、フラッシュ変換階層ユニットから受信した物理アドレスに基づきデータをキャッシュメモリシステムからフラッシュメモリに伝送し、フラッシュ変換階層ユニットから受信した物理アドレスに基づきデータをフラッシュメモリからキャッシュメモリシステムに伝送するためにフラッシュメモリとインターフェースするフラッシュメモリインターフェースとを含むフラッシュメモリとホストシステム間をインターフェースするサブシステムとから構成される。【選択図】      図１
2004288150.tif 000002
【特許請求の範囲】
【請求項１】
フラッシュファイルシステムであって、
フラッシュメモリと、
前記フラッシュメモリとホストシステムとの間をインターフェースするサブシステムと、
を備え、
前記サブシステムが、
ホストシステムとインターフェースするホストシステムインターフェースと、
キャッシュメモリと、
を有し、
前記キャッシュメモリは、
一定数のデータユニット記憶容量を有するとともに、前記ホストシステムインターフェースを通じて前記ホストシステムに（又はから）伝送するためのデータを記憶し、また、
前記サブシステムはさらに、
前記ホストシステムインターフェースとキャッシュメモリとを通じて、前記ホストシステムから受信した論理アドレスを、フラッシュメモリの物理アドレスにマッピングするフラッシュ変換階層ユニットと、
前記フラッシュメモリとインターフェースする前記フラッシュメモリインターフェースと、
を備えており、
前記フラッシュメモリインターフェースは、
前記フラッシュ変換階層ユニットから受信した物理アドレスに基づいて、前記キャッシュメモリシステムから前記フラッシュメモリにデータを伝送し、また、
前記フラッシュ変換階層ユニットから受信した物理アドレスに基づいて、前記フラッシュメモリから前記キャッシュメモリシステムにデータを伝送することを特徴とするフラッシュファイルシステム。
【請求項２】
請求項１に記載のフラッシュファイルシステムにおいて、
前記サブシステムがフラッシュメモリの物理的構成から独立したマッピングフォーマットを有することを特徴とするフラッシュファイルシステム。
【請求項３】
請求項１に記載のフラッシュファイルシステムにおいて、
前記マッピングフォーマットはホストシステムのデータ伝送ユニットと同じサイズであることを特徴とするフラッシュファイルシステム。
【請求項４】
請求項３に記載のフラッシュファイルシステムにおいて、
前記マッピングフォーマットはホストシステムのクラスタサイズを有することを特徴とするフラッシュファイルシステム。
【請求項５】
請求項４に記載のフラッシュファイルシステムにおいて、
前記マッピングフォーマットのサイズが４KBであることを特徴とするフラッシュファイルシステム。
【請求項６】
請求項１に記載のフラッシュファイルシステムにおいて、
前記キャッシュメモリシステムは、前記ホストシステムにより要求されたデータがキャッシュメモリシステムに常駐している場合、フラッシュメモリにアクセスせずに、ホストシステムに伝送するデータを出力することを特徴とするフラッシュファイルシステム。
【請求項７】
請求項６に記載のフラッシュファイルシステムにおいて、
前記キャッシュメモリシステムは、ホストシステムによって用いられる論理アドレスに従ってデータを記憶することを特徴とするフラッシュファイルシステム。
【請求項８】
請求項６に記載のフラッシュファイルシステムにおいて、
前記キャッシュメモリシステムは、
一定数のデータ伝送ユニットの記憶容量を有するバッファメモリと、
ルックアップテーブルメモリと、
を備え、また、
前記ルックアップテーブルメモリは前記バッファメモリの各データユニットと関連のエントリを有し、
各エントリが、関連データユニットの論理アドレスとデータユニットでのデータの有効／無効を示すことを特徴とするフラッシュファイルシステム。
【請求項９】
請求項８に記載のフラッシュファイルシステムにおいて、
前記各エントリが、データユニット中のどのデータ部分がホストシステムによって変更されたデータを含むのかを示すことを特徴とするフラッシュファイルシステム。
【請求項１０】
請求項８に記載のフラッシュファイルシステムにおいて、
前記各エントリが、全データユニットがホストシステムによって変更されたデータを含むか否かを示すことを特徴とするフラッシュファイルシステム。
【請求項１１】
請求項１に記載のフラッシュファイルシステムにおいて、
前記フラッシュ変換階層ユニットが物理アドレステーブルと論理アドレステーブルとを記憶し、また、
前記物理アドレステーブルが、
論理アドレスをインデックスとし、
各論理アドレスに対応する物理アドレスを示し、
前記論理アドレスと物理アドレスとの関連が有効であるか否かを示し、さらに、
前記論理アドレステーブルが、
物理アドレスをインデックスとし、
各物理アドレスに対応する論理的アドレスを示し、
前記物理アドレスと論理アドレスとの関連が有効であるか否かを示し、
各物理アドレスに対し、フラッシュメモリのこの部分が消去されたか否かを示すことを特徴とするフラッシュファイルシステム。
【請求項１２】
請求項１１に記載のフラッシュファイルシステムにおいて、
前記論理アドレステーブルが、少なくともエラー補正コードデータを含む各物理アドレスインデックスに関連するその他のフィールドを含むことを特徴とするフラッシュファイルシステム。
【請求項１３】
請求項１１に記載のフラッシュファイルシステムにおいて、
前記フラッシュ変換階層ユニットが、
マッピングテーブルキャッシュと、
データのデータユニットの論理アドレスを含む前記マッピングテーブルキャッシュ内の各エントリと、
前記データのデータユニットと関連する物理アドレスと、
前記論理アドレスと物理アドレスとの関連が有効であるか否かを示す有効性インジケータと、
前記物理アドレスと関連する前記フラッシュメモリの一部分が消去されたか否かを示す消去インジケータと、
を記憶することを特徴とするフラッシュファイルシステム。
【請求項１４】
フラッシュファイルシステムであって、
フラッシュメモリと、
前記フラッシュメモリとホストシステム間をインターフェースするサブシステムと、
を備え、
前記サブシステムがキャッシュメモリシステムを含み、また、
前記キャッシュメモリは、
前記ホストシステムにより用いられる論理アドレスに従って前記フラッシュメモリに伝送するデータを記憶し、
前記ホストシステムにより要求されたデータが前記キャッシュメモリ内に常駐している場合に、前記フラッシュメモリにアクセスせずに、前記ホストシステムにデータを伝送するための出力を行うことを特徴とするフラッシュファイルシステム。
【請求項１５】
請求項１４に記載のフラッシュファイルシステムにおいて、
前記キャッシュメモリシステムは、
一定数のデータユニットの記憶容量を有するバッファメモリと、
ルックアップテーブルメモリと、
を備え、前記ルックアップテーブルメモリが、
前記バッファメモリ内の各データユニットと関連するエントリと、
関連するデータユニットの論理アドレス及びデータユニットにおいてデータが有効であるか否かを示すエントリと、
を有することを特徴とするフラッシュファイルシステム。
【請求項１６】
請求項１５に記載のフラッシュファイルシステムにおいて、
前記各エントリが、前記データユニット内のどのデータ部分が、前記ホストシステムにより変更されたデータを含むのかを示すことを特徴とするフラッシュファイルシステム。
【請求項１７】
請求項１５に記載のフラッシュファイルシステムにおいて、
前記各エントリが、全データユニットが前記ホストシステムにより変更されたデータを含むか否かを示すことを特徴とするフラッシュファイルシステム。
【請求項１８】
フラッシュファイルシステムであって、
フラッシュメモリと、
前記フラッシュメモリとホストメモリ間をインターフェースするサブシステムと、
を備え、
前記サブシステムが、
ホストシステムにより受信した論理的アドレスをフラッシュメモリの物理アドレスにマッピングするフラッシュ変換階層ユニットを有し、
前記フラッシュ変換階層ユニットは、物理アドレステーブル及び論理アドレステーブルを記憶し、
前記物理アドレステーブルは、
論理アドレスをインデックスとし、
各論理アドレスに対応する物理アドレスを示し、
前記論理アドレスと前記物理アドレスとの関連が有効であるか否かを示し、
各物理アドレスに対して前記フラッシュメモリのこの部分が消去されたか否かを示すことを特徴とするフラッシュファイルシステム。
【請求項１９】
請求項１８に記載のフラッシュファイルシステムにおいて、
前記論理アドレステーブルが、少なくともエラー補正コードデータを含む各物理アドレスインデックスに関連するその他のフィールドを含むことを特徴とするフラッシュファイルシステム。
【請求項２０】
請求項１８に記載のフラッシュファイルシステムにおいて、
前記フラッシュ変換階層ユニットが、
マッピングテーブルキャッシュと、
データのデータユニットの論理アドレスを含む前記マッピングテーブルキャッシュ内の各エントリと、
前記データのデータ伝送ユニットと関連する物理アドレスと、
前記論理アドレスと物理アドレスとの関連が有効であるか否かを示す有効性インジケータと、
前記物理アドレスと関連するフラッシュメモリの一部分が消去されたか否かを示す消去インジケータと、
を記憶することを特徴とするフラッシュファイルシステム。
【請求項２１】
フラッシュファイルシステムであって、
フラッシュメモリと、
フラッシュメモリとホストシステムとの間をインターフェースするサブシステムと、
を備え、
前記サブシステムが、前記ホストシステムのデータユニットと同一サイズのマッピングフォーマットを有することを特徴とするフラッシュファイルシステム。
【請求項２２】
請求項２１に記載のフラッシュファイルシステムにおいて、
前記マッピングフォーマットは前記フラッシュメモリの物理的構成から独立していることを特徴とするフラッシュファイルシステム。
【請求項２３】
請求項２１に記載のフラッシュファイルシステムにおいて、
前記マッピングフォーマットが前記ホストシステムのクラスタサイズを有することを特徴とするフラッシュファイルシステム。
【請求項２４】
請求項２３に記載のフラッシュファイルシステムにおいて、
前記マッピングフォーマットのサイズが４KBであることを特徴とするフラッシュファイルシステム。
【請求項２５】
フラッシュメモリのためのフラッシュファイル方法であって、
一定数のデータユニット記憶容量を有するキャッシュメモリシステムにおいて、データをホストシステムに（又は、から）伝送するために記憶する段階と、
前記ホストシステムから受信した論理アドレスをフラッシュメモリの物理アドレスにマッピングする段階と、
前記フラッシュメモリとインターフェースして、書き込みモードマッピング段階から受信した物理アドレスに基づいてキャッシュメモリシステムからフラッシュメモリへデータを伝送する段階と、
読み出しモードでマッピング段階から受信した前記物理アドレスに基づいて前記フラッシュメモリから前記キャッシュメモリシステムにデータを伝送する段階と、
を備えることを特徴とするフラッシュファイル方法。
【請求項２６】
請求項２５に記載のフラッシュファイル方法において、
前記マッピング段階で用いられたマッピングフォーマットはフラッシュメモリの物理的構成から独立していることを特徴とするフラッシュファイル方法。
【請求項２７】
請求項２５に記載のフラッシュファイル方法において、
前記マッピング段階で用いられたマッピングフォーマットは、前記ホストシステムのデータ伝送ユニットと同一サイズであることを特徴とするフラッシュファイル方法。
【請求項２８】
請求項２７に記載のフラッシュファイル方法において、
前記マッピングフォーマットは前記ホストシステムのクラスタサイズを有することを特徴とするフラッシュファイル方法。
【請求項２９】
請求項２５に記載のフラッシュファイル方法において、
前記ホストシステムにより要求されたデータが前記キャッシュメモリに常駐している場合に、前記フラッシュメモリにアクセスせずに前記ホストシステムにデータを伝送するために出力を行う段階を含むことを特徴とするフラッシュファイル方法。
【請求項３０】
請求項２５に記載のフラッシュファイル方法において、
物理アドレステーブルと論理アドレステーブルとを記憶し、
前記物理アドレステーブルは、
論理アドレスをインデックスとし、
各論理アドレスに対応する物理アドレスを示し、
前記論理アドレスと物理アドレスとの関連が有効であるか否かを示し、
前記論理アドレステーブルは、
物理アドレスをインデックスとし、
各物理アドレスに対応する論理アドレスを示し、
前記物理アドレスと論理アドレスとの対応関係が有効であるか否かを示し、
各物理アドレスに対し前記フラッシュメモリのこの部分が消去されたか否かを示し、
前記物理及び論理アドレステーブルに基づいたマッピング動作を実行するマッピング段階を備えることを特徴とするフラッシュファイル方法。
【請求項３１】
請求項３０に記載のフラッシュファイル方法において、
マッピングテーブルキャッシュと、
データのデータユニットに対する論理アドレスを含む前記マッピングテーブルキャッシュ内の各エントリと、
データのデータユニットと関連する物理アドレスと、
前記論理アドレスと物理アドレスとの対応関係が有効であるか否かを示す有効性インジケータと、
物理アドレスに対応するフラッシュメモリの一部分が消去されたか否かを示す消去インジケータと、
を記憶し、
前記マッピング段階が、物理アドレステーブルと、論理アドレステーブルと、マッピングテーブルキャッシュとに基づいたマッピング動作を実行することを特徴とするフラッシュファイル方法。
【請求項３２】
フラッシュメモリのためのフラッシュファイル方法であって、
前記ホストシステムの使用する論理アドレスに従って、キャッシュメモリシステムにおいてデータをフラッシュメモリに伝送するために記憶し、
前記ホストシステムにより要求されたデータがキャッシュメモリシステムに常駐している場合に、フラッシュメモリにアクセスせずにデータをホストシステムに伝送するために出力することを特徴とするフラッシュファイル方法。
【請求項３３】
請求項３２に記載のフラッシュファイル方法において、
前記記憶段階が、キャッシュメモリの前記バッファメモリ内にフラッシュメモリに伝送するデータを記憶し、
前記バッファメモリは一定数のデータユニットの記憶容量を有しており、
前記出力段階が、前記バッファメモリの各データユニットに関連するエントリを有するルックアップテーブルメモリにアクセスして、前記バッファメモリからホストシステムに伝送するデータを出力し、
各エントリが、関連するデータユニットの論理アドレスとデータユニットでデータが有効であるか否かを示すことを特徴とするフラッシュファイル方法。
【請求項３４】
フラッシュメモリのためのフラッシュファイル方法において、
物理アドレステーブルと論理アドレステーブルを記憶し、
前記物理アドレステーブルが論理アドレスをインデックスとし、前記論理アドレスと物理アドレスの関連の有効／無効を示し、
前記論理アドレステーブルが物理アドレスをインデックスとし、前記物理アドレスと論理アドレスの関連の有効／無効を示し、
各物理アドレスに対し、前記フラッシュメモリのこの部分が消去されたか否かを示し、さらに、
前記ホストシステムから受信した論理アドレスを、前記物理及び論理アドレステーブルに基づいた前記フラッシュメモリの物理アドレスにマッピングすることを特徴とするフラッシュファイル方法。
【請求項３５】
請求項３４に記載のフラッシュファイルシステムにおいて、
マッピングテーブルキャッシュと、
データのデータユニットの論理アドレスを含む前記マッピングテーブルキャッシュ内に各エントリと、
データのデータユニットと関連する物理アドレスと、
前記論理アドレスと物理アドレスの関連の有効／無効を示す有効性インジケータと、
前記物理アドレスに関連する前記フラッシュメモリの一部分が消去されたか否かを示す消去インジケータと、
を記憶しており、
前記マッピング段階が、前記物理アドレステーブル、論理アドレステーブル及び前記マッピングテーブルキャッシュに基づいたマッピング動作を実行することを特徴とするフラッシュファイルシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は電子記憶装置の分野に関するもので、より詳細には、フラッシュメモリとファイルシステムとに関する。
【背景技術】
【０００２】
近年、フラッシュメモリが用いられる範囲は益々拡大している。これは、フラッシュメモリに記憶された情報は、フラッシュメモリに電源が供給されなくても保持されるためである。また、フラッシュメモリはソリッドステート装置であり、携帯用コンピュータやデジタルスチルカメラなどの携帯用デバイスに非常に有用である。フラッシュメモリの消費電力は少なく、ハードディスクなど、様々な形態の磁気記憶媒体と比較してショックに強い。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
フラッシュメモリには、NAND型とNOR型の２つの型がある。NOR型のフラッシュメモリはランダムアクセスを提供するが、生産コストが高い。反対に、NAND型フラッシュメモリは比較的安価であるが、書き出し操作が非効率的であるという問題を抱えている。
【０００４】
フラッシュメモリの一部に以前データがプログラムされていた（すなわち書き込まれていた）ことがある場合、フラッシュメモリのその一部にデータを再プログラム（すなわち上書き）するには、書き込み可能にするための消去操作を行う必要がある。この書き込み前の消去、すなわちＥＢＷ処理は非効率的である上、フラッシュメモリの寿命を制限する。
【０００５】
フラッシュメモリはトランジスタメモリセルである。このトランジスタメモリセルは、ホットエレクトロン、ソース注入、トンネルを通じてプログラム可能であるとともに、ファウラー・ノルドハイムトンネルメカニズムを通じて消去可能である。このようなメモリセルのプログラム及び消去を行うには、フローティングゲートを囲む誘電体を通過するための電流が必要とされる。よって、いつかは誘電体が劣化してしまうので、こうした型のメモリが有する消去−書き込み周期の回数は限られる。
【０００６】
EBW問題を緩和させるために、いくつかの技術が提案されてきた。その一つの方法は、論理又は仮想アドレス方式を用いることである。例えば、ホストシステムが読み出し又は書き込み操作の論理アドレスをフラッシュメモリに提供すると、この論理アドレスはフラッシュメモリの物理アドレスにマッピングされる。この過程の間、データはフラッシュメモリの物理的空き領域に書き込まれる。そうすれば、消去操作を実行する必要がない。この技術は、物理アドレスに対して論理アドレスのマッピングテーブルを保持することを含む。通常、このマッピング操作には、変換とマッピング操作の両方が必要である。例えば、ホスト装置はクラスタと呼ばれる４KBのユニットデータに基づいた論理アドレスを供給することになる。言い換えれば、コンピュータなど、ホスト装置のファイルシステムは、クラスタサイズフォーマットを有する。
【０００７】
しかし、フラッシュメモリの物理アドレスはデータユニットに基づいて定められる。このユニットは一般的に16KB以上であり、一度に消去される可能性がある。また、従来のフラッシュメモリシステムにおけるフラッシュメモリのコントローラにより用いられるファイルシステムは、フラッシュメモリの物理的構造に基づいている。その結果、論理アドレスを物理アドレスにマッピングするためには、ホスト装置ファイルシステムをフラッシュメモリのファイルシステムに変換する作業も必要となる。
【０００８】
フラッシュメモリのためのマッピング情報は、フラッシュメモリを内蔵する装置に電源が供給されないときにも保持されていなければならない。フラッシュメモリ自体にこの情報を記憶することによって、フラッシュメモリの記憶容量が減少する。その結果、フラッシュメモリの構造は取り扱い困難なものになってしまう。
【０００９】
また、こうした従来のシステムにおけるフラッシュメモリのコントローラは、インターフェース構造を含む。インターフェース構造は、ホストインターフェース機能とフラッシュメモリインターフェース機能とを一体化させるので、フラッシュメモリにおける変更や、ホストインターフェースにおける変更、あるいはインターフェース構造の一部分における変更には、フラッシュメモリシステム全体の再設計が必要となる。
【００１０】
本発明によるフラッシュファイルシステムは階層構造を有する。この階層構造は、フラッシュファイルシステム全体を再設計せずに、ホストシステム、フラッシュメモリ又はフラッシュファイルシステムの一部分を再設計することを可能にする。従って、本発明のフラッシュファイルシステムは特定の用途に対して極めてフレキシブルで、且つ容易に適用することができる。
【課題を解決するための手段】
【００１１】
本発明の一実施例によるフラッシュファイルシステムは、フラッシュメモリとフラッシュメモリサブシステムを含む。フラッシュメモリサブシステムは、ホストシステムインターフェースと、キャッシュメモリシステムと、フラッシュ変換階層（FTL）部、及びフラッシュメモリインターフェースを含む。ホストシステムインターフェースはホストシステムとインターフェースする。キャッシュメモリシステムは一定数のデータユニットの記憶容量を有し、ホストシステムインターフェースを通じてホストシステムに（又はから）伝送するデータを記憶する。フラッシュ変換階層ユニットは、ホストシステムインターフェースとキャッシュメモリシステムを通じてホストシステムから受信された論理アドレスを、フラッシュメモリの物理アドレスにマッピングする。フラッシュメモリインターフェースはフラッシュメモリとインターフェースし、フラッシュ変換階層ユニットから受信した物理アドレスに基づいて、キャッシュメモリシステムからフラッシュメモリにデータを伝送するとともに、フラッシュ変換階層ユニットから受信した物理アドレスに基づいて、フラッシュメモリからキャッシュメモリにデータを伝送する。
【００１２】
他の一実施例において、キャッシュメモリシステムは、ホストシステムが使用する論理アドレスに従ってフラッシュメモリに伝送するデータを記憶し、ホストシステムに要求されたデータがキャッシュメモリシステムに常駐している場合には、フラッシュメモリにアクセスせずにホストシステムに伝送するデータを出力する。また、他の実施例においては、キャッシュメモリシステムは、ホストシステムと同一のファイルシステムを用いる。従って、キャッシュメモリシステムにおいては、ホストシステムから受信した論理アドレスの変換は必要とされない。
【００１３】
また、他の実施例において、フラッシュ変換階層ユニットはホストシステムと同じファイルシステムを用いる。従って、ホストシステムの受信した論理アドレスをフラッシュメモリの物理アドレスにマッピングするとき、フラッシュ変換階層ユニット（FTL）は、ホストシステムの論理アドレスを一つのマッピングフォーマット又はファイルシステムから別のマッピングフォーマット又はファイルシステムに変換する必要がない。より具体的には、フラッシュメモリサブシステムのファイルシステム及びマッピングフォーマットは、ホストシステムのファイルシステム及びマッピングフォーマットと同じデータユニットサイズに基づいている。従って、マッピングフォーマットは、フラッシュメモリの物理的構成からは独立している。一実施例においては、ファイルシステムとマッピングフォーマットは4KBのクラスタに基づいている。
【００１４】
さらに他の実施例においては、フラッシュ変換階層ユニットは、物理アドレステーブルと論理アドレステーブルとを含む。物理アドレステーブルは論理アドレスをインデックスとし、各論理アドレスに対応する物理アドレスを示すとともに、論理アドレスと物理アドレスとの対応関係が有効であるか否かを示す。論理アドレステーブルは物理アドレスをインデックスとし、各物理アドレスに対応する論理アドレスを示すと共に、物理アドレスと論理アドレスとの対応関係が有効であるか否かを示す。また、各物理アドレスに対しては、フラッシュメモリのその部分が消去されたか否かが示される。論理アドレステーブルはさらに、エラー補正コード（ECC）データなどのデータを記憶するその他のフィールドを含む。
【発明の効果】
【００１５】
本発明によるフラッシュファイルシステムは階層的構成を有し、これによってフラッシュファイルシステム全体を再設計することなく、ホストシステム、フラッシュメモリ又はフラッシュファイルシステムの一部分だけを再設計できるようになっている。従って、本発明のフラッシュファイルシステムは極めてフレキシブルで、且つ特定の応用例に容易に適用することができる。
【００１６】
キャッシュメモリシステムはホストシステムと同一のファイルシステムを用いるため、キャッシュメモリシステムにおいてはホストシステムから受信した論理アドレスの変換が要求とされない。
【００１７】
さらに、FTLはホストシステムと同一のファイルシステムを用いる。結果的に、ホストシステムが受信した論理アドレスをフラッシュメモリの物理アドレスにマップする際、FTLは、ホストシステムの論理アドレスを一つのマッピングフォーマット又はファイルシステムから他のマッピングフォーマット又はファイルシステムに変換する必要がない。より具体的には、フラッシュメモリサブシステム１４のファイルシステム及びマッピングフォーマットは、ホストシステムのファイルシステム及びマッピングフォーマットと同一のデータユニットサイズに基づいている。従って、マッピングフォーマットは、フラッシュメモリ６の物理的構成からは独立している。
【発明を実施するための最良の形態】
【００１８】
本発明の実施形態について、以下に図面を用いて詳しく説明する。図面の対応する部分には同じ符号を付する。
【００１９】
図１は、本発明の一実施例によるフラッシュファイルシステム４に連結されたホストシステム２を示す。図示したように、フラッシュファイルシステム４はフラッシュメモリサブシステム１４に連結されたフラッシュメモリ６を含む。フラッシュメモリ６はNAND型フラッシュメモリである。フラッシュメモリサブシステム１４は、ホストシステム２とフラッシュメモリ６との間のインターフェースとなる。
【００２０】
図２はフラッシュメモリサブシステム１４の詳細図である。図示したように、フラッシュメモリサブシステム１４は階層的構成を有する。その結果、フラッシュメモリ６又はホストシステム２を再設計する場合、フラッシュメモリサブシステム１４全体を再設計する必要がなくなる。すなわち、図示したように、フラッシュメモリサブシステム１４は、ホストシステム２とインターフェースするホストシステムインターフェース２２を含む。擬似RAM２４はホストシステムインターフェース２２に連結され、キャッシュの一形態として動作するとともに、フラッシュメモリ６に書き込まれるデータとフラッシュメモリ６から読み出されるデータを一時的に記憶する。フラッシュ変換階層ユニット（FTL）２６は、ホストシステム２から受信した論理アドレスを、フラッシュメモリ６の物理アドレスにマッピングする。フラッシュメモリインターフェース２８は、擬似RAM２４より受信したデータをFTL２６により供給されたアドレスでフラッシュメモリ６に書き込み、FTL２６により供給されたアドレスでフラッシュメモリ６からデータを読み込むことによって、フラッシュメモリ６とインターフェースする。
【００２１】
以下、フラッシュメモリサブシステム１４の各階層を詳しく説明する。
【００２２】
ホストシステムインターフェース
ホストシステムインターフェース２２はインターフェースプロトコルに従いホストシステム２とインターフェースする。インターフェースプロトコルとしては、多くの公知プロトコルを適用可能である。本発明は、コンパクトフラッシュ（登録商標）のような並列プロトコルと、マルチメディアカード（MMC）、SD（Secure Digital）、及びメモリスティックのような直列プロトコルの全てに適用可能である。また、さらに多目的なインターフェースを用いることも可能である。
【００２３】
図３は、本発明によるホストシステムインターフェース２２の一実施例を示す。図示したように、ホストリンク３２はホストシステム２と通じている。ホストリンク３２は特定のホストインターフェースタイミングプロトコルを含む。ホストリンク３２を再設計するだけで、本発明によるホストシステムインターフェース２２を用いる多様なインターフェースプロトコルを支援することができる。周知のように、レジスタファイル３４はホストシステムインターフェース２２の状態と動作パラメータとを記憶する。ホストシステム２に（又はから）伝送されるデータは、データバッファ３６によりホストシステムインターフェース２２に一時的に記憶される。データバッファ３６は、ホストリンク３２と直接メモリアクセス（DMA）３８とに連結されている。DMA３８はレジスタファイル３４にも連結されており、ホストシステム２からフラッシュメモリサブシステム１４の下位層に入力/出力要求を伝達する。特に、DMA３８はデータバッファ３６に記憶されたライト要求及び関連データを擬似RAM２４に伝達するか、又はリード要求に従って擬似RAM２４からデータを読み出し、そのデータをデータバッファ３６に記憶する。
【００２４】
一実施例によると、DMA３８は５１２ビット×ｎｓ（ｎｓ＝１，２，４，８，１６）でデータを伝送し、従来の磁気ディスク記憶装置システムに由来するホストインターフェース方式を支援する。DMA３８とホストリンク３２との間のデータ伝送効率を高めるため、データバッファ３６はｎ×バス幅の構成を有する。ここで、ｎはデータバッファ３６のFIFOの寸法で、２，４，８，１６・・・に等しく、そのバス幅は８，１６，３２，６４・・・に等しい。
【００２５】
擬似RAM２４
擬似RAM２４は、ホストシステムインターフェース２２が標準的なRAMに類似する形態でデータにアクセスできるようにする。図４に示されるように、擬似RAM２４は、フラッシュメモリ６より読み出されたか又は書き込まれた最新のデータを記憶するバッファRAM４４を含む。バッファRAM４４に対応するルックアップテーブル（LUT）４２は、バッファRAM４４に記憶されているデータのディレクトリを保持する。データがフラッシュメモリ６に書き込まれるとき、又はフラッシュメモリ６から読み出されるとき、データフィル/フラッシュコントローラ４８は、バッファRAM４４とフラッシュメモリサブシステム１４の下位層との間でインターフェースとして機能する。擬似RAMマネージャ４６は、ホストシステムインターフェース２２から受信したリード及びライト要求に基づいて、LUT４２、バッファRAM４４及びデータフィル／フラッシュコントローラ４８の動作をコントロールする。
【００２６】
図５はLUT４２に記憶されたディレクトリエントリのフィールド構成を示す。LUT４２は、バッファRAM４４に記憶された各データユニットのためのエントリ５２を含む。本発明の一実施例においては、バッファRAM４４に記憶されたデータユニットは、ホストシステム２でファイルシステムの基礎を形成するデータユニットと同一である。以下の記述からわかるように、フラッシュメモリサブシステム１４は、ホストシステム２のファイルシステムと同じデータユニットに基づいたファイルシステムを採用している。例えば、本発明の一実施例において、ホストシステム２はクラスタと呼ばれる４KBのデータユニットを基本とするファイルシステムを有する。従って、バッファRAM４４はクラスタユニット単位でデータを記憶し、LUT４２は各クラスタのためのエントリ５２を含む。以下により詳しく説明するように、バッファRAM４４のファイルシステムはホストシステム２の使用しているファイルシステムと適合しているため、ホストシステム２からフラッシュメモリサブシステム１４に供給される論理アドレスは、変換されることなくバッファRAM４４から（又はバッファRAMに）直接データを読み出したり書き込んだりするのに用いられることになる。言い換えれば、フラッシュメモリサブシステム１４のマッピングフォーマットはホストシステム２のそれと同一である。従って、フラッシュメモリサブシステム１４のマッピングフォーマットとファイルシステムとは、フラッシュメモリ６の物理的構成からは独立している。
【００２７】
図５を参照すると、LUT４２においてエントリ５２は、バッファRAM４４内の対応するデータユニットの論理アドレス、有効フィールドV、更新フィールドU及び書き込みフィールドWを含む。有効フィールドVは、エントリ５２の論理アドレスに対応するデータが有効であるかどうかを示す。更新フィールドUはバッファRAMでデータがホストシステム２により更新されたか否かを示す。実施例において、更新フィールドUはｋサブフィールド（U0-Uk-1）から構成される。ここで、ｋはデータのサブユニットを示す。例えば、フラッシュメモリ６は通常それぞれ５１２バイトのページ又はセクタに編成される。ページサイズによってバッファRAM４４に記憶されたデータユニットのサイズを分割すると、ｋ個のデータサブユニットが得られる。バッファRAM４４に記憶されたデータユニットを４KBのクラスタとする例に戻り、フラッシュメモリ６がそれぞれ５１２バイトのページに編成されたと仮定すると、更新フィールドUは８つ（即ち、ｋ＝８）のサブフィールド（U０−U７）から構成される。更新された各サブフィールド（U０−U７）は、バッファRAM４４に記憶されたデータのサブユニットが更新されたか否かを示す。
【００２８】
書き込みフィールドWは、バッファRAM４４に記憶されたデータユニット内の全てのサブユニットが更新されたか否かを示す。上記の例を前提とすると、U0-Uk-1が全て１に設定されて、対応するサブユニットが更新されたことを示す場合、書き込みフィールドWもやはり１に設定される。以下に詳述するように、擬似RAMマネージャ４６は書き込みフィールドＷを監視して、バッファRAM４４からフラッシュメモリ６にデータを書き込むタイミングを決定する。
【００２９】
図６は、リード要求をホストシステムインターフェース２２から受信する場合の擬似RAM２４の動作を示す。図示したように、S９０２において、擬似RAMマネージャ４６はホストシステムインターフェース２２からリード要求を受信する。ホストシステム２から伝送されたリード要求には、論理アドレスが含まれている。続いて、擬似RAMマネージャ４６はLUT４２にアクセスし、LUT４２が（i）受信した論理アドレスと同一の論理アドレスを有するエントリ５２を含むか否かを判断するとともに、(ii)その論理アドレスの有効性フィールドVが、バッファＲＡＭ４４内にある対応するデータが有効であることを示すか否かを判断する（S９０４）。
【００３０】
擬似RAMマネージャ４６が、バッファRAM４４に記憶されたデータが有効であると判断すると、擬似RAMマネージャ４６はバッファRAM４４から有効データを読み出し、ホストシステムインターフェース２２を通じてこのデータをホストシステム２に直接送る（S９０６）。従って、この方法において擬似RAM２４はフラッシュメモリ６に対してキャッシュの形で動作し、一層効率的な読み出し動作を行うことが可能になる。
【００３１】
S９０４において、受信した論理アドレスに対して有効なエントリ５２を見つけることにRAMマネージャ４６が失敗すると、擬似RAMマネージャ４６はデータフィル／フラッシュコントローラ４８を制御し、FTL２６を通じてリード要求を伝送する（S９０８）。リード要求はホストシステムインターフェース２２から受信した論理アドレスを含む。以下詳細に説明するように、FTL２６は論理アドレスをフラッシュメモリ６の物理アドレスにマップして、この物理アドレスをリード要求と一緒にフラッシュメモリインターフェース２８に供給する。フラッシュメモリインターフェース２８は受信した物理アドレスとリード要求とに基づいてフラッシュメモリ６からデータを読み出し、読み出されたデータをデータフィル／フラッシュコントローラ４８に返す。従って、S９１０において、データフィル／フラッシュコントローラ４８はリード要求に応じてフラッシュメモリにインターフェース２８からデータを受信する。次いで、受信したデータはバッファRAM４４に記憶され、ホストシステムインターフェース２２を通じてホストシステム２に送られる（S９１２）。
【００３２】
受信したデータをバッファRAM４４に記憶する際、擬似RAMマネージャ４６はLUT４２を更新し（S９１４）、新しく記憶されたデータのエントリ５２を含ませる。エントリ５２はリード要求と共に受信した論理アドレスを含み、有効性フィールドVは有効データを示すよう設定され（例えばV=1）、更新フィールドU及び書き込みフィールドWには未更新データが設定される（例えば、U0-Uk-1=0やＷ＝0）。
【００３３】
次に、ライト要求をホストシステムインターフェース２２から受信したときの擬似RAM２４の動作について、図７を参照して説明する。S１００２に示すように、擬似RAMマネージャ４６は、ホストシステムインターフェース２２を通じてホストシステム２からライト要求とデータを受信する。ライト要求に含まれるのは、受信したデータを書き込むための論理アドレスである。続いて、擬似RAMマネージャ４６はLUT４２にアクセスし、論理アドレスと同じ論理アドレスをエントリ５２が有するか否か、そして、その論理アドレスの有効フィールドVが有効データを示すか否かを判断する（S１００４）。受信した論理アドレスに適合する有効な論理アドレスを擬似RAMマネージャ４６が見つけた場合、擬似RAMマネージャ４６は受信したデータをバッファRAM４４内に書き込み（S１００６）、エントリ５２の対応する更新サブフィールドを更新する（S１００８）。
【００３４】
S１００４において、受信した論理アドレスに適合する有効な論理アドレスが見つからない場合、擬似RAMマネージャ４６はバッファRAM４４で新しいエントリを作成し（S１０１０）、受信したデータをバッファRAM４４に書き込む（S１０１２）。バッファRAM４４に新しいエントリを作成することは、LUT４２に無効のエントリ５２を設置することを含む。フラッシュメモリサブシステム１４が最初に動作を開始するとき、LUT４２の各エントリ５２は無効のものとして初期化される。しかし、一定時間経過後であれば、LUT４２に含まれるエントリが全部有効となる場合もある。このようにして、新しいエントリ５２を作成する必要ができた場合、LUT４２は更新サブフィールドセットを持たないエントリ５２を設置し、このエントリ５２に対応するバッファRAM４４にデータを書き込む。（i）有効なエントリが存在しない場合、また、（ii）無効且つ未更新のエントリが存在する場合、バッファRAMマネージャ４６は、データフィル／フラッシュコントローラ４８にバッファRAM４４の一部又は全てを放出するよう指示する。これは、放出されたバッファRAM４４の内容を、フラッシュメモリ６に書き込むことを意味する。すると、放出されたデータに対応するエントリ５２は、書き込み動作が実行される無効エントリとして設定される。続いて、擬似RAMマネージャ４６はLUT４２を更新し、新しく書き込まれたデータの新しいエントリ５２を反映する（S１０１４）。新しいエントリ５２はライト要求とともに受信した論理アドレスを含み、有効性ビットは有効なデータを示すように設定され、また、更新フィールドは更新データを示すように設定される。例えば、データのクラスタ全てが書き込まれるのであれば、書き込みフィールドWは、完全に更新されたエントリ５２を示すようにセットされる（例えばW=1）。それ以外の場合、書き込みフィールドは、エントリ５２が完全に更新されてはいないことを示すように設定される。
【００３５】
上述したように、擬似RAMマネージャ４６はLUT４２のエントリ５２を監視する。エントリが書き込みフィールドＷを有し、その書き込みフィールドWが、バッファRAM４４において完全に更新されたデータユニットを示す場合、擬似RAMマネージャ４６はデータフィル／フラッシュコントローラ４８に指示を送り、フラッシュメモリ６にデータが書き込まれるようにする。特に、この指示に応答して、データフィル／フラッシュコントローラ４８は、ライト要求とそれに対応する論理アドレスとをFTL２６に送るとともに、関連データをフラッシュメモリインターフェース２８に送る。以下に詳しく説明するように、FTL２６は受信した論理アドレスを物理アドレスにマップし、物理アドレスはライト要求と一緒にフラッシュメモリインターフェース２８に供給される。次いで、フラッシュメモリインターフェース２８は受信した物理アドレスを用いて受信したデータをフラッシュメモリ６に書き込む。
【００３６】
フラッシュ変換階層ユニット（FTL）２６
読み出し及び書き込み動作のため、FTL２６は、受信した論理アドレスを物理アドレスにマップする。フラッシュメモリ６のようなNAND型フラッシュメモリで書き込み動作をする前には、データ消去が必要とされる。このデータ消去は非効率性を引き起こす。マッピング動作は、この非効率性を緩和するために実行される。また、FTL２６はホストシステム２が使用したものと同一のファイルシステムを採用する。これによって、ホストシステム２から受信した論理アドレスの変換をすることなく、論理アドレスから物理アドレスへの直接のマッピングが可能になる。例えば、ホストシステムがデータユニットとしてクラスタに基づいたファイルシステムを使用するのであれば、FTL２６の論理アドレスもクラスタに基づく。従って、FTL２６は、フラッシュメモリ６の物理的構成から独立して設計される。
【００３７】
図８は、本発明によるFTL２６の他の実施例を示す。図示したように、FTL２６はマッピングテーブルメモリ６２を含む。これは、実施例においては、NOR型フラッシュメモリのような不揮発性メモリである。マッピングテーブルメモリ６２は、物理アドレステーブルと論理アドレステーブルとを含む。なお、論理アドレステーブルについては、図９と関連して以下に詳しく説明する。物理アドレステーブルは論理アドレスを物理アドレスにマップするためのもので、論理アドレステーブルは物理アドレスを論理アドレスにマップするためのものである。
【００３８】
図８にさらに示したように、FTL２６はマッピングテーブルキャッシュ６４を含む。マッピングテーブルキャッシュ６４は、マッピングテーブルメモリ６２に対してキャッシュとして動作するので、論理及び物理アドレスを互いにマップする際に、より高い効率性を提供することができる。マッピングテーブルメモリ６２とマッピングテーブルキャッシュ６４とは、マッピングコントローラ６６によって制御され、擬似RAM２４からリード及びライト要求を受信する。
【００３９】
図９に、マッピングテーブルメモリ６２とマッピングテーブルキャッシュ６４とを詳しく示す。図示したように、マッピングテーブルメモリ６２は、物理アドレステーブル７２と論理アドレステーブル７４とを含む。物理アドレステーブル７２は使用可能な論理アドレスによってインデックスされる。言い換えれば、物理アドレステーブルの各エントリは、使用可能な論理アドレスにそれぞれ対応する。論理アドレスと対応する各アドレスは、割当フィールドAと物理アドレスフィールドとを含む。割当フィールドAは物理アドレスが論理アドレスと対応しているか否かを示し、物理アドレスフィールドは対応する物理アドレスを示す。
【００４０】
論理アドレステーブル７４は使用可能な物理アドレスをインデックスとする。すなわち、論理アドレステーブル７４の各エントリは、フラッシュメモリ６の使用可能な物理アドレスにそれぞれ対応する。論理アドレステーブル７４の各エントリは、割当フィールドA、消去フィールドE、論理アドレスフィールド及びその他のフィールドを含む。割当フィールドAは、論理アドレスが物理アドレスと対応しているか否かを示す。消去フィールドEは、対応する物理アドレスが現在消去されているか否かを示す。論理アドレスフィールドは、物理アドレスに対応する論理アドレスを含み、その他のフィールドはエラー補正コードECCデータなどのデータを記憶する。
【００４１】
図９にさらに示したように、マッピングテーブルキャッシュ６４のキャッシュテーブル７６は複数のエントリを含む。各エントリは、論理アドレスフィールド、割当フィールドA、消去フィールドE、及び物理アドレスフィールドを含む。論理アドレスフィールドは、物理アドレスフィールドの物理アドレスに対応する論理アドレスのアクセスタグを含む。割当フィールドAは、論理アドレスと物理アドレスとの間の対応関係が有効であるか否かを示し、消去フィールドは、物理アドレスフィールドの物理アドレスが現在消去されているか否かを示す。
【００４２】
図１０は、擬似RAM２４からリード要求が受信される場合のFTL２６の動作を示す。S１２０２に示すように、マッピングコントローラ６６は擬似RAM２４からリード要求と論理アドレスとを受信する。これに応じてマッピングコントローラ６６はマッピングテーブルキャッシュ６４にアクセスし、キャッシュテーブル７６がエントリ内に受信した論理アドレスのタグ部分を含むか否か、そして、受信した論理アドレスと物理アドレスとの間に有効な対応関係が存在するか否かを判断する（S１２０４）。キャッシュテーブル７６において受信した論理アドレスと物理アドレスとの間に有効な対応関係が存在するのであれば、マッピングコントローラ６６はマッピングテーブルキャッシュ６４に、対応する物理アドレスとリード要求とをフラッシュメモリインターフェース２８へ出力する（S１２０６）。
【００４３】
受信した論理アドレスがキャッシュテーブル７６の物理アドレスと対応していないのであれば、マッピングテーブルキャッシュ６４は物理アドレステーブル７２から受信した論理アドレスに対応する物理アドレスにアクセスする（S１２０８）。即ち、マッピングテーブルキャッシュ６４は受信した論理アドレスをインデックスとして用いて、対応する物理アドレス７２を得る。何らかの理由によって、論理アドレスが対応関係の無効な物理アドレスを含む場合（A=0）、受信した論理アドレスに対応する有効なデータは存在しないことになる。また、エラー状態がマッピングコントローラ６６によって擬似RAM２４に返される。このエラーは、ホストシステムインターフェース２２を通じてホストシステム２に伝達される。
【００４４】
マッピングテーブルキャッシュ６４は、物理アドレスをフラッシュメモリインターフェース２８に出力するだけでなく、キャッシュテーブル７６を更新して、受信した論理アドレスを含ませた後、物理アドレスをキャッシュテーブル７６のエントリとして出力する。その際、マッピングテーブルキャッシュ６４は、論理アドレステーブル７４にもアクセスし、対応する物理アドレスの消去インジケータEの状態を取得する。
【００４５】
次に、図１１を参照して、RAM２４から受信したライト要求に関するFTL２６の動作を説明する。図示したように、マッピングコントローラ６６は擬似RAM２４からライト要求、論理アドレス及び関連データを受信する（S１３０２）。マッピングコントローラ６６は、マッピングテーブルキャッシュ６４を通じてマッピングテーブル６２にアクセスし、論理アドレステーブル７２から、受信した論理アドレスが物理アドレスと対応しているか否かを判断する（S１３０４）。
【００４６】
すなわち、マッピングコントローラ６６は、受信した論理アドレスをインデックスとして用い、エントリのA=1が受信した論理アドレスに対応するか否かを判断する。対応するのであれば、マッピングコントローラは物理アドレステーブル７２から対応する物理アドレスにアクセスし、S１３０６で、検索した物理アドレスに対応するフラッシュメモリ６の一部分が消去されたか否かを判断する。特に、マッピングコントローラ６６は、検索した物理アドレスをインデックスとして用いて、論理アドレステーブルで物理アドレスに対応する消去フィールドEが１であるかを判断する。その結果がE＝１の場合は、論理アドレスと物理アドレスとの間の対応関係が有効であり、物理アドレスは消去状態にあって、書き込み動作が実行可能であることを示す。そして、マッピングコントローラ６６はマッピングテーブルキャッシュ６４に、検索した物理アドレスとライト要求とをフラッシュメモリインターフェース２８に出力するよう命令する（S１３０８）。
【００４７】
マッピングテーブルキャッシュ６４が検索した物理アドレスを有していないのであれば、マッピングコントローラ６６は物理アドレステーブル７２に指示して、検索した物理アドレスを出力させる。また、マッピングコントローラ６６はマッピングテーブルメモリ６２を更新するとともに（S１３１４）、マッピングテーブルキャッシュを更新する（S１３１６）。特に、論理アドレステーブル７４では、割当フィールドが設定され（例えばA＝１）、出力物理アドレスに対応する消去フィールドEが変更されて、物理アドレスが現在消去されていないことを示す。また、受信した論理アドレスは論理アドレスフィールドに入力される。物理アドレステーブル７２において、受信した論理アドレスの割当フィールドが設定され、出力物理アドレスは物理アドレスフィールドに入力される。キャッシュテーブル７６に、物理アドレスに対応する受信した論理アドレスのエントリが存在するのであれば、類似の変更がなされる。キャッシュテーブル７６にこのようなエントリが存在しないのであれば、エントリが作成される。
【００４８】
S１３０６で検索した物理アドレスに対してE＝１でない場合、検索した物理アドレスに対応するフラッシュメモリ６の記憶域は消去されていない。従って、書き込み前の消去動作が実行されない限り、この記憶域にデータを書き込むことはできない。そのため、マッピングコントローラ６６は検索した物理アドレスを消去リスト上に載せる（S１３１０）。消去リストとは、消去する物理アドレスのリストである。この消去は定期的に行ってもよいし、効率性に影響を与えないイベント駆動時（例えば、プロセシングリソースやフラッシュメモリ６の読み出し/書き込み時）に行ってもよい。
【００４９】
次に、マッピングコントローラ６６は論理アドレステーブル７４にアクセスし、消去状態の物理アドレスを見つける（S１３１２）。この物理アドレスは、ライト要求とともにフラッシュメモリインターフェース２８に出力される。そして、マッピングコントローラ６６はマッピングテーブルメモリ６２とマッピングテーブルキャッシュ６４とを更新する（S１３１４、S１３１６）。マッピングテーブルメモリ６２を更新する際、物理アドレステーブル７２を以下のように変更する。
【００５０】
まず、受信した論理アドレスの割当フィールドAが設定されていない場合には設定し、論理アドレスの割当を示す。次に、受信した論理アドレスの物理アドレスフィールドに出力物理アドレスを入力する。論理アドレステーブル７４で、受信した論理アドレスに以前対応していた物理アドレスの割当フィールドAを設定し（A=0）、物理アドレスが論理アドレスと対応しないことを示す。また、論理アドレステーブル７４では、出力物理アドレスのエントリを以下のように変更する。割当フィールドを設定して割当を示し（A=1）、消去フィールドを設定して非消去状態を示す（E=0）。受信した論理アドレスは論理アドレスフィールドに入力する。マッピングテーブルキャッシュ６４を更新する際には、受信した論理アドレス及び出力物理アドレスのエントリを作成するか、あるいは論理又は物理アドレスを含む任意のエントリ（または、更新されて無効となったことを示すエントリ）を上書きする。
【００５１】
S１３０４に戻って説明すると、受信した論理アドレスの物理アドレステーブル７２でA＝１でなければ、論理アドレスには物理アドレスが割当てられていない。すると、処理はS１３１２まで行われ、そこから先は上述されたように進行する。
【００５２】
図１２は、FTL２６がライト要求を処理する前後の物理アドレステーブル７２と論理アドレステーブル７４との一部分を示したものである。図１２のテーブル１１０２と１１０４とは、ライト要求を受ける前の物理アドレステーブル７２と論理アドレステーブル７４とをそれぞれ示す。また、テーブル１１０６と１１０８とは、ライト要求を処理した後の物理アドレステーブル７２と論理アドレステーブル７４とをそれぞれ示す。図１２に示した例では、ライト要求は論理アドレス＃０に新しいデータを書き込む。図１１に対応して上述した過程に従うと、S１３０４において、マッピングコントローラ６６は、論理アドレス＃０に対しA=1を決定する(図１２の１１０２参照)。それに合わせ、マッピングアドレスは、論理アドレス＃０に対応する物理アドレスの消去状態を判断する（S１３０６）。図１２の１１０２に示したように、論理アドレス＃０に対応する物理アドレスは、物理アドレス＃３１である。また、同図の１１０４に示したように、物理アドレス＃３１の消去状態は０であり、消去されていないことを示す。従って、マッピングコントローラ６６は、消去状態の新しい物理アドレスを見つける（S１３０８）。
【００５３】
図１２を再度参照すると、マッピングコントローラ６６は物理アドレス＃３２の位置を確認する。物理アドレス＃３２は、図１２の１１０４に示したように消去状態にある。
従って、S１３０８において、マッピングテーブルキャッシュ６４すなわち物理アドレステーブル７２からの物理アドレス出力は、物理アドレス＃３２である。
【００５４】
S１３１４において、マッピングコントローラ６６はマッピングテーブルメモリ６２を更新する。図１２の１１０６にある物理アドレステーブル７２は更新され、物理アドレス＃３２が論理アドレス＃０と対応することを示す。図１２の１１０８にある論理アドレステーブル７４に対応して、物理アドレス＃３１の割当フィールドAは変更され、割当を示さない。物理アドレス＃３２の割当フィールドAは変更され、物理アドレスが割当てられることを示す。物理アドレス＃３２の消去状態は変更され、物理アドレス＃３２が消去状態ではないことを示す。また、物理アドレス＃３２に対応して論理アドレス＃０が書き込まれる。
【００５５】
フラッシュメモリインターフェース
図１３は、フラッシュメモリサブシステム１４の最下位層であるフラッシュメモリインターフェース２８を示す。具体的には、フラッシュメモリインターフェース２８は、フラッシュメモリ６にデータを直接書き込んだり、フラッシュメモリ６からデータを直接読み出したりする。これは周知の通りである。
【００５６】
図１３に示したように、フラッシュメモリインターフェース２８は、フラッシュアクセスコントロール８２とフラッシュメモリコントローラ８６とを含む。フラッシュアクセスコントロール８２は、フラッシュメモリサブシステム１４の上位層とのインターフェースとして機能する。また、フラッシュメモリコントローラ８６はフラッシュメモリ６との直接インターフェースとして機能する。フラッシュアクセスコントロール８２とフラッシュメモリコントローラ８６との間に配置されるのは、データFIFO８４である。これは、フラッシュアクセスコントロール８２とフラッシュメモリコントローラ８６との間で伝送するデータを記憶する。
【００５７】
フラッシュアクセスコントロール８２は、インターフェースとしての役割を果たす際に、データや命令ハンドシェイク信号を処理する。また、ECCの結果や、以前に書き込まれたECC値などを記憶するレジスタを含む。これは周知の通りである。フラッシュアクセスコントロール８２の受信したライト又はリード要求がフラッシュメモリコントローラ８６に直接伝送される一方で、書き込み動作の間に受信したデータはFIFO８４を通じてフラッシュメモリコントローラ８６に供給される。さらに、フラッシュアクセスコントロール８２は、リード及びライト要求に対応して、フラッシュメモリコントローラ８６に論理アドレスを直接供給する。
【００５８】
フラッシュメモリコントローラ８６は、フラッシュメモリコントロール信号を送出して読み出し（書き込み）プログラムと消去動作とを実行する。本発明の一実施例では、フラッシュメモリコントローラ８６は、フラッシュメモリサブシステムと連結したフラッシュメモリ６に依存しており、最も効率的な方法で動作するよう設計されている。また、効率を高めるために、FIFO８４はｎ×ｂｓビットのサイズを有するように構成される。ここで、ｎはFIFOの寸法を、ｂｓはバスサイズを表す。
【００５９】
フラッシュメモリインターフェース２８の構成及び動作は周知である。従って、簡潔にするために、この装置の構成と動作に対するさらに詳しい説明は省略する。
【産業上の利用可能性】
【００６０】
本発明は、上記説明のフラッシュファイルシステムに限定されず、様々なメモリ管理システムに利用することができる。
【図面の簡単な説明】
【００６１】
【図１】本発明の一実施例によるフラッシュファイルシステムに連結したホストシステムのブロック図である。
【図２】図１のフラッシュメモリサブシステムの詳細なブロック図である。
【図３】図２のホストシステムインターフェースの詳細なブロック図である。
【図４】図２の擬似RAMの詳細なブロック図である。
【図５】図４でルックアップテーブルに記憶されたディレクトリエントリのフィールド構成図である。
【図６】図４の擬似RAMにより実行される読み出し過程のフローチャートである。
【図７】図４の擬似RAMにより実行される書き込み過程のフローチャートである。
【図８】図２のフラッシュ変換階層ユニットの詳細なブロック図である。
【図９】図８のマッピングテーブルメモリとマッピングテーブルキャッシュの詳細なブロック図である。
【図１０】図８のFTLにより実行される読み出し過程のフローチャートである。
【図１１】図９のFTLにより実行される書き込み過程のフローチャートである。
【図１２】書き込み動作例の前後のマッピングテーブルメモリ部分を示したブロック図である。
【図１３】図２のフラッシュメモリインターフェースの詳細なブロック図である。
【符号の説明】
【００６２】
２    ホストシステム
４    フラッシュファイルシステム
６    フラッシュメモリ
１４    フラッシュメモリサブシステム
２２    ホストシステムインターフェース
２６    フラッシュ変換階層ユニット
２８    フラッシュメモリインターフェース
【図１】
2004288150.tif 000003
【図２】
2004288150.tif 000004
【図３】
2004288150.tif 000005
【図４】
2004288150.tif 000006
【図５】
2004288150.tif 000007
【図６】
2004288150.tif 000008
【図７】
2004288150.tif 000009
【図８】
2004288150.tif 000010
【図９】
2004288150.tif 000011
【図１０】
2004288150.tif 000012
【図１１】
2004288150.tif 000013
【図１２】
2004288150.tif 000014
【図１３】
2004288150.tif 000015