(57)【要約】【課題】フラッシュメモリを効率よく用いるためのファイルシステムを提供する。【解決手段】ファイルに関する各種の情報を貯蔵するメタブロック、実際にデータが貯蔵されるデータブロック及び前記データブロックに関する情報を貯蔵しているインフォブロックを備えてなるファイルシステム。よって、　従来の方法とは異なって、一つのファイルが特定のメモリ領域を継続的に用いないことから、フラッシュメモリ内の特定のブロックの寿命が他のブロックより早く尽きることを防止でき、メモリ領域の全体を均一に用いることから、フラッシュメモリ内の全てのブロックの寿命を同一に保持できる。【選択図】　図３
2004013895.tif 000002
【特許請求の範囲】
【請求項１】
（ａ）フラッシュメモリに貯蔵されるファイルの名前とファイルの内容及びファイル貯蔵命令を入力される段階と、
（ｂ）前記入力されたファイルを管理するのに用いられる情報であるファイル管理情報を新しく発生させ、この発生されたファイル管理情報を貯蔵するメタブロックを割り当てる段階と、
（ｃ）前記発生されたファイル管理情報を前記割り当てたメタブロックに貯蔵する段階と、
（ｄ）前記メタブロックに対応し、前記入力されたファイルの内容を貯蔵するデータブロックを管理するデータブロック管理情報が貯蔵されているインフォブロックを割り当てる段階と、
（ｅ）前記入力されたファイルの内容を前記インフォブロックに対応するデータブロックに貯蔵する段階と
を含むフラッシュメモリにおけるファイル貯蔵方法。
【請求項２】
前記ファイル管理情報は、貯蔵されているファイルの名前に関する情報、ファイルの大きさに関する情報、ファイルの論理アドレスに関する情報、メタブロックが使用中であるか否かに関する情報及びメタブロックが無効であるとの情報を含むことを特徴とする請求項１に記載のフラッシュメモリにおけるファイル貯蔵方法。
【請求項３】
前記データブロック管理情報は、ファイルの内容を貯蔵しているデータブロックが使用中であるか否かに関する情報及び前記データブロックが無効であるとの情報を含むことを特徴とする請求項１に記載のフラッシュメモリにおけるファイル貯蔵方法。
【請求項４】
前記（ｂ）段階は、
前記フラッシュメモリの複数のメタブロックのファイル管理情報を順次に読ん込んで、使用可能なメタブロックを割り当てて、前記発生させた新しいファイル管理情報を貯蔵することを特徴とする請求項１に記載のフラッシュメモリにおけるファイル貯蔵方法。
【請求項５】
前記（ｂ）段階は、
使用可能な前記メタブロックが存在しなければ、ガーベージコレクションを行うことを特徴とする請求項１に記載のフラッシュメモリにおけるファイル貯蔵方法。
【請求項６】
前記（ｃ）段階は、
前記フラッシュメモリの複数のインフォブロックを順次に読み込んで使用可能なデータブロックを探し、探されたデータブロックの位置情報を読み込んで対応するデータブロックに前記データを貯蔵する段階を含む請求項１に記載のフラッシュメモリにおけるファイル貯蔵方法。
【請求項７】
前記（ｄ）段階は、
書き込もうとするファイルを外部に存在するＳＤＲＡＭに先に貯蔵した後、貯蔵作業が終了したならば、前記データブロックに書込み作業を行うことを特徴とする請求項１に記載のフラッシュメモリにおけるファイル貯蔵方法。
【請求項８】
（ａ）フラッシュメモリに貯蔵されているファイルのうちから読み出されたファイルの名前に関する情報を含むファイル管理情報を入力される段階と、
（ｂ）前記名前に関する情報に基づき前記貯蔵されているファイルのファイル管理情報を記録しているメタブロック及び前記貯蔵されているファイルのファイル管理情報及びデータが貯蔵されているデータブロックにおける位置情報を連繋させて貯蔵しているインフォブロックを検索して前記読み出すファイルのファイル管理情報と前記読み出すファイルのデータが貯蔵されているデータブロックの位置情報とを検出する段階と、
（ｃ）前記位置情報に対応するデータブロックから前記読み出されたファイルのデータを読み込んで出力する段階と
を含むフラッシュメモリにおけるファイル読出し方法。
【請求項９】
前記（ｂ）段階は、
前記メタブロックから読み出そうとするファイルの名前を探せなかった場合、読み込むファイルの名前が存在しない旨のエラーメッセージを出力する段階を含むことを特徴とする請求項８に記載のフラッシュメモリにおけるファイル読出し方法。
【請求項１０】
（ａ）ファイルの内容を修正せよとの命令と共に、修正しようとするファイルの名前及び内容を入力される段階と、
（ｂ）前記入力されたファイルの名前に関する情報、ファイルの大きさに関する情報、ファイルの論理アドレスに関する情報、メタブロックが使用中であるか否かに関する情報及びメタブロックが無効であるとの情報が貯蔵されるメタブロック及び前記貯蔵しようとするファイルの実際内容がが貯蔵されるデータブロック及びデータブロックの位置情報を貯蔵しているインフォブロックを新しく割り当てる段階と、
（ｃ）前記入力されたファイルの名前に対応するメタブロックが無効であるとの情報に無効である旨を記録し、前記メタブロックに対応するデータブロックも無効である旨を記録する段階と、
（ｄ）前記新しく割り当てたメタブロック、データブロック及びインフォブロックに、入力されたファイルの内容及び管理情報を貯蔵する段階と
を含むフラッシュファイルシステムにおけるブロック取替え方法。
【請求項１１】
（ａ）貯蔵しようとするファイルの名前に関する情報、ファイルの大きさに関する情報、ファイルの論理アドレスに関する情報、メタブロックが使用中であるか否かに関する情報及びメタブロックが無効であるとの情報が貯蔵されるメタブロック及び前記貯蔵しようとするファイルの実際内容がが貯蔵されるデータブロックを新しく割り当てる場合、割当て可能な前記メタブロック及び前記データブロックがそれ以上存在しなければ、現在使用中のメタブロックの内容及びデータブロックの内容を読み込んで臨時記憶場所に貯蔵する段階と、
（ｂ）メタブロックのうちからメタブロックが無効であるとの情報及びデータブロックがそれ以上有効でないとの情報を有しているインフォブロックを読み込んで無効のメタブロック及びデータブロックの内容を削除する段階と、
（ｃ）前記臨時記憶場所に貯蔵されているデータを読み込んで前記削除されたメタブロック及び前記削除されたデータブロックに書き換える段階と
を含むフラッシュファイルシステムにおけるガーベージコレクション方法。
【請求項１２】
請求項１に記載された方法をコンピュータにて実行するためのプログラムを記録したコンピュータにて読取り可能な記録媒体。
【請求項１３】
貯蔵しようとするファイルの名前に関する情報、ファイルの大きさに関する情報、ファイルの論理アドレスに関する情報、メタブロックが使用中であるか否かに関する情報及びメタブロックが無効であるとの情報が貯蔵されるメタブロック及び前記貯蔵しようとするファイルの実際内容がが貯蔵されるデータブロックの内容を検索するブロック検索部と、
前記検索部における検索の結果に基づき使用可能なメタブロック及びデータブロックを探して割り当て、探されたデータブロックに関する情報を貯蔵しているインフォブロックを探して前記探されたメタブロックに対応づけるブロック割当て部と、
前記検索部において読み込もうとするファイルの名前に関する情報が貯蔵されているメタブロックを探してこれに対応するインフォブロックを読み込んで実際のデータが貯蔵されている物理的なブロックの内容の読込みを行う読込み部と、前記ブロック割当て部において割り当てた前記メタブロック、前記インフォブロック、前記データブロックに貯蔵しようとするファイルの書込み作業を行う書込み部と、
前記書込み部において、ファイルを修正せよとの命令を行う場合、前記修正すべきファイルの内容が貯蔵されているメタブロック及びデータブロックを新しいメタブロック及びデータブロックに取り替えるブロック取替え部と、
前記ブロック割当て部において新しいメタブロック、データブロック及びインフォブロックを割り当てようとする場合に使用可能なメタブロック及びデータブロックが存在しない場合、無効のメタブロック及びデータブロックの内容をいずれも削除するガーベージコレクション部と
を備えるフラッシュファイルシステムの管理装置。
【請求項１４】
フラッシュメモリに記録されているファイルを管理するのに用いられる情報であるファイル管理情報が貯蔵されているメタブロックと、
前記ファイル管理情報に対応し、ファイルの内容が貯蔵されているブロックに関する管理情報が貯蔵されているインフォブロックと、
前記インフォブロックに貯蔵されている管理情報に対応し、ファイルの内容が貯蔵されているデータブロックと
を備えるフラッシュファイルシステムのデータ構造。
【請求項１５】
前記ファイル管理情報は、貯蔵されているファイルの名前に関する情報、ファイルの大きさに関する情報、ファイルの論理アドレスに関する情報、メタブロックが使用中であるか否かに関する情報及びメタブロックが無効であるとの情報を含むことを特徴とする請求項１４に記載のフラッシュファイルシステムのデータ構造。
【請求項１６】
前記管理情報は、ファイルの内容を貯蔵しているデータブロックが使用中であるか否かに関する情報及び前記データブロックが無効であるとの情報を含むことを特徴とする請求項１４に記載のフラッシュファイルシステムのデータ構造。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はフラッシュメモリのファイルシステムに係り、具体的には、フラッシュメモリの特性及び制限事項を考慮してフラッシュメモリを効率よく用いるために、特定のブロックを集中的に用いることなく、メモリ領域の全体を均一に用いるためのファイルシステムに関する。
【０００２】
【従来の技術】
記憶された情報を時間が過ぎても変わらない分野に用いるために、電源を印加しなくてもその内容が消去されないメモリが必要であるが、これを不揮発性メモリと呼ぶ。不揮発性メモリには読込み専用のメモリであるＲＯＭ（Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）があり、書込みが可能なＥＰＲＯＭ（ＥｒａｓａｂｌｅＰｒｏｇｒａｍｍａｂｌｅ　Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ　Ｅｒａｓａｂｌｅ　Ｐｒｏｇｒａｍｍａｂｌｅ　Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）、フラッシュメモリ及びＦＲＡＭ（Ｆｅｒｒｏ−ｅｌｅｃｔｒｉｃ　Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）などがある。
【０００３】
中でもフラッシュメモリは、高い安定性、大容量、及び相対的に安い値段から、現在内蔵機器に一般的に用いられている。しかし、フラッシュメモリは、ＲＡＭなどの通常のメモリとは異なる特性を有し、且つ、使用法及び動作にも制限がある。
通常のフラッシュメモリ用ファイルシステムは、特定のファイルを識別し得る論理アドレスが貯蔵されている論理アドレス貯蔵ブロックと、実際にデータが貯蔵される物理的なブロック及びこれら両者の関係を貯蔵しているマップを備えてなる。応用プログラムにファイルに対する作業要請が入れば、ファイルシステムはファイルの論理アドレスを決定した後、マップを介して物理的なブロックに接近する。
【０００４】
しかしながら、このように構成された従来のファイルシステムでは、ファイルの内容を修正しまたは更新する時、削除ユニット単位で作業を行う。すなわち、フラッシュメモリは、一般的に、約１２８ＫＢのブロック単位で削除ユニットが構成されており、あるところに書込みが行われたならば、そこに他の内容を書き込むためには削除ユニットの全体を削除してから再び書込みを行わなければならない。このような不揮発性メモリは、既に貯蔵されている情報を更新する場合、削除サイクルを必要とする。
【０００５】
フラッシュメモリの寿命はこの削除周期によって決定されるが、約１００，０００回の削除を行えばその寿命が尽きる。従って、フラッシュメモリが正常に活用されるためには、この削除命令をフラッシュメモリの全体の領域において均一に実行する必要がある。
【０００６】
【発明が解決しようとする課題】
従って、従来のファイルシステムにおいては、ファイルの修正が多い場合、同じところにある内容を削除して書き込む過程を繰り返し続けるため、この部分の寿命が他の部分より先に尽きてしまい、メモリが全体的に使えなくなる。また、フラッシュメモリが用いられるほとんどの内蔵機器の潜在的な電源損失の問題が前記の如き過程（削除及び書き換え）中に発生すれば、ファイルの内容が無くなることもある。
【０００７】
従って、各ブロックの寿命を平均的に一定に保持するためには、一つのファイルが占める領域を可変的にフラッシュメモリ領域の全体に均一に分布させる方法が必要である。また、潜在的な電源損失の問題に備えて復旧方法も講じられなければならない。
前記問題を解決するために、本発明では、フラッシュメモリの特性及び制限事項を考慮し、フラッシュメモリを効率よく用いるためのファイルシステムを提供することを目的とする。
さらに、フラッシュメモリの各ブロックの寿命管理のためにフラッシュメモリを論理的な３部分に分け、ブロック取替え方法によりデータを更新するガーベージコレクション方法を提供することを目的とする。
【０００８】
【課題を解決するための手段】
前記目的を達成するために、本発明では、フラッシュメモリに貯蔵されるファイルの名前とファイルの内容及びファイル貯蔵命令を入力される段階と、前記入力されたファイルを管理するのに用いられる情報であるファイル管理情報を新しく発生させ、この発生されたファイル管理情報を貯蔵するメタブロックを割り当てる段階と、前記発生されたファイル管理情報を前記割り当てたメタブロックに貯蔵する段階と、前記メタブロックに対応し、前記入力されたファイルの内容を貯蔵するデータブロックを管理するデータブロック管理情報が貯蔵されているインフォブロックを割り当てる段階と、前記入力されたファイルの内容を前記インフォブロックに対応するデータブロックに貯蔵する段階とを含むフラッシュメモリにおけるファイル貯蔵方法を提供する。
【０００９】
前記目的を達成するために、本発明では、フラッシュメモリに貯蔵されているファイルのうちから読み出されたファイルの名前情報を含むファイル管理情報を入力される段階と、前記名前情報に基づき前記貯蔵されているファイルのファイル管理情報を記録しているメタブロック、及び前記貯蔵されているファイルのファイル管理情報及びデータが貯蔵されているデータブロックにおける位置情報を連繋させて貯蔵しているインフォブロックを検索して前記読み出すファイルのファイル管理情報と前記読み出すファイルのデータが貯蔵されているデータブロックの位置情報とを検出する段階と、前記位置情報に対応するデータブロックから前記読み出されたファイルのデータを読み込んで出力する段階とを含むフラッシュメモリにおけるファイル読出し方法を提供する。
【００１０】
前記目的を達成するために、本発明では、ファイルの内容を修正せよとの命令と共に、修正しようとするファイルの名前及び内容を入力される段階と、前記入力されたファイルの名前に関する情報、ファイルの大きさに関する情報、ファイルの論理アドレスに関する情報、メタブロックが使用中であるか否かに関する情報及びメタブロックが無効であるとの情報が貯蔵されるメタブロックと、前記貯蔵しようとするファイルの実際内容がが貯蔵されるデータブロック及びデータブロックの位置情報を貯蔵しているインフォブロックを新しく割り当てる段階と、前記入力されたファイルの名前に対応するメタブロックが無効であるとの情報に無効である旨を記録し、前記メタブロックに対応するデータブロックも無効である旨を記録する段階と、前記新しく割り当てたメタブロック、データブロック及びインフォブロックに入力されたファイルの内容及び管理情報を貯蔵する段階とを含むフラッシュファイルシステムにおけるブロック取替え方法を提供する。
【００１１】
前記目的を達成するために、本発明では、貯蔵しようとするファイルの名前に関する情報、ファイルの大きさに関する情報、ファイルの論理アドレスに関する情報、メタブロックが使用中であるか否かに関する情報及びメタブロックが無効であるとの情報が貯蔵されるメタブロック及び前記貯蔵しようとするファイルの実際内容がが貯蔵されるデータブロックを新しく割り当てる場合、割当て可能な前記メタブロック及び前記データブロックがそれ以上存在しなければ、現在使用中のメタブロックの内容及びデータブロックの内容を読み込んで臨時記憶場所に貯蔵する段階と、メタブロックのうちからメタブロックが無効であるとの情報及びデータブロックがそれ以上有効でないとの情報を有しているインフォブロックを読み込んで無効のメタブロック及びデータブロックの内容を削除する段階と、前記臨時記憶場所に貯蔵されているデータを読み込んで前記削除されたメタブロック及び前記削除されたデータブロックに再び書き込む段階とを含むフラッシュファイルシステムにおけるガーベージコレクション方法を提供する。
【００１２】
前記目的を達成するために、本発明では、貯蔵しようとするファイルの名前に関する情報、ファイルの大きさに関する情報、ファイルの論理アドレスに関する情報、メタブロックが使用中であるか否かに関する情報及びメタブロックが無効であるとの情報が貯蔵されるメタブロック及び前記貯蔵しようとするファイルの実際内容がが貯蔵されるデータブロックの内容を検索するブロック検索部と、前記検索部における検索の結果に基づき使用可能なメタブロック及びデータブロックを探して割り当て、探されたデータブロックに関する情報を貯蔵しているインフォブロックを探して前記探されたメタブロックに対応づけるブロック割当て部と、前記検索部において読み込もうとするファイルの名前に関する情報が貯蔵されているメタブロックを探してこれに対応するインフォブロックを読み込んで実際のデータが貯蔵されている物理的なブロックの内容の読込みを行う読込み部と、前記ブロック割当て部において割り当てた前記メタブロック、前記インフォブロック、前記データブロックに貯蔵しようとするファイルの書込み作業を行う書込み部と、前記書込み部において、ファイルを修正せよとの命令を行う場合、前記修正すべきファイルの内容が貯蔵されているメタブロック及びデータブロックを新しいメタブロック及びデータブロックに取り替えるブロック取替え部と、前記ブロック割当て部において新しいメタブロック、データブロック及びインフォブロックを割り当てようとする場合に使用可能なメタブロック及びデータブロックが存在しない場合、無効のメタブロック及びデータブロックの内容をいずれも削除するガーベージコレクション部とを備えるフラッシュファイルシステムの管理装置を提供する。
【００１３】
前記目的を達成するために、本発明では、フラッシュメモリに記録されているファイルを管理するのに用いられる情報であるファイル管理情報が貯蔵されているメタブロックと、前記ファイル管理情報に対応し、ファイルの内容が貯蔵されているブロックに関する管理情報が貯蔵されているインフォブロックと、前記インフォブロックに貯蔵されている管理情報に対応し、ファイルの内容が貯蔵されているデータブロックとを備えるフラッシュファイルシステムのデータ構造を提供する。
【００１４】
前記目的を達成するために、本発明では、　前記方法をコンピュータにて実行するためのプログラムを記録したコンピュータにて読取り可能な記録媒体を提供する。
【００１５】
【発明の実施の形態】
以下、添付した図面に基づき、本発明による好適な一実施の形態について詳細に説明する。
図１は、通常のフラッシュファイルシステムの構成図である。
通常のファイルシステムは、特定のファイルを識別し得る論理アドレスが貯蔵されている論理アドレス貯蔵ブロック１１０と、実際にデータが貯蔵される物理的なブロック１３０及びこれら両者の関係を貯蔵しているマップ１２０を備えてなる。
【００１６】
応用プログラムにファイルに対する作業要請が入れば、ファイルシステムはファイルの論理アドレスを決定した後、マップ１２０を介して物理的なブロック１３０に接近する。ファイルに対する作業要請としては、読込み、書込み、更新などがある。
フラッシュメモリの特性上、更新作業を行う場合、通常のディスク媒体であればしなくても良い作業を必要とする、まず、該当ファイルが位置している削除ユニットの内容の全体を読み込む。これは、フラッシュメモリが削除ユニット単位で削除されるからである。その後、該当ファイルを更新し、更新される内容を書き換える前に削除ユニットの全体を削除する。次に、削除ユニットに更新される内容を書き込む。
【００１７】
図１に示されている論理アドレスには、ファイルの大きさなどのファイルに関するメタデータも共に貯蔵されているが、これもまたフラッシュメモリに貯蔵されているため、ファイルの更新作業時にメタデータの更新も上述の如き方法により行わなければならない。
フラッシュメモリの特性上、一定の位置を占めているファイルを修正するためは、そのファイルが占めているフラッシュメモリ上の削除ユニットの全体を削除しなければ、書き換えができない。このため、修正しようとする部分が属している削除ユニットの全体の内容を読み込んで貯蔵した後、削除ユニットの全体を削除した後に修正された内容を書き換える。
【００１８】
従って、従来の方法においては、一つのファイルが占める領域が決定されてからには、その領域が変わらないために、ファイルの継続的な修正が必要である時に特定の領域の寿命が他のブロックより遥かに早く尽き、結果的に、全体の領域の安定性にも問題が生じる。また、予想外の電源問題によりファイルの内容を損失する恐れもある。
【００１９】
図２は、通常のファイルシステムにおけるファイル更新方法を示すフローチャートである。
まず、ファイルに対する更新作業の要請を受ければ（２１０）、ファイルが貯蔵されている削除ユニットの全体の内容を読み込む（２２０）。そして、読み込まれた内容のうち修正された部分を更新する（２３０）。更新されたファイルを書き込む前に、削除ユニットの全体を削除する（２４０）。最後に、更新されたファイルを削除ユニット内に貯蔵する（２５０）。
【００２０】
図３は、本発明のフラッシュファイルシステムの構成図である。
本発明のファイルシステムは、ファイルに関する各種の情報を貯蔵するメタブロック３１０と、実際にデータが貯蔵されるデータブロック３２０及びデータブロックに関する情報を貯蔵するインフォブロック３３０を備えてなる。
データブロック３２０は一定の大きさに区分されており、各ブロックの情報はインフォブロック３３０の各細部領域に貯蔵されている。データブロック３２０は、フラッシュメモリを一定の大きさの論理的なパーティションに分けたものである。
【００２１】
メタブロック３１０には、ファイルの名前、ファイルの大きさ、ファイルの論理アドレス、メタブロックが使用中であるか否かに関する情報及びメタブロックが無効であるとの情報が貯蔵されている。
インフォブロック３３０は、一定の大きさに分けられているそれぞれのデータブロックに関する情報を貯蔵している。ここには、データブロックの位置情報、前記データブロックが使用中であるか否かに関する情報及び前記データブロックが無効であるとの情報が貯蔵されている。
【００２２】
図４は、ブロック割当て方法を示す図面である。
すなわち、下記のようにブロック割当てが行われる。ファイルシステムの目的は、論理的な客体であるファイルと物理的な媒体とを連結させることにある。従って、ブロック割当て命令を受ければ（４１０）、ファイルの情報が貯蔵されるメタブロックを割り当てる（４２０）。メタブロックを割り当てるために順次的なスキャンを行い、使用可能なメタブロックを探す。メタブロックにはファイルの名前に関する情報、ファイルの大きさに関する情報、ファイルの論理アドレスに関する情報、メタブロックが使用中であるか否かに関する情報及びメタブロックが無効であるとの情報がある。このため、メタブロックが使用中であるか否かに関する情報を読み込めば、該当メタブロックが使用可能であるか否かが分かる。このようにして使用可能なメタブロックを割り当てることができる。
【００２３】
次に、ファイルの内容が貯蔵されるデータブロック４３０を割り当てる。データブロックの情報はインフォブロックにおいて管理するため、インフォブロックを順次的にスキャンして使用可能なデータブロックを捜し出す。インフォブロックにもデータブロックの位置情報と、前記データブロックが使用中であるか否かに関する情報及び前記データブロックが無効であるとの情報が貯蔵されているため、これらのうちデータブロックが使用中であるか否かに関する情報を読み込めば、該当データブロックが使用可能であるか否かが分かる。
【００２４】
そして、このようにしてメタブロック及びデータブロックを割り当てたならば、該メタブロックが使用中である旨をメタブロックが使用中であるか否かに関する情報に記録し、該データブロックが使用中である旨をインフォブロック内のデータブロックが使用中であるか否かに関する情報に記録する（４４０）。
【００２５】
図５は、読出し過程を示す図面である。
応用プログラムに読出し作業の要請が入れば（５１０）、ファイルの名前をメタブロックから捜し出す（５２０）。もし、メタブロックに読み込むファイルの名前が存在しなければエラーとし（５５０）、存在すれば、メタブロックの情報に基づき読み込もうとするファイルの内容が貯蔵されているデータブロックに関する位置情報を貯蔵しているインフォブロックの情報を読み込んで（５３０）、実際にファイルの内容が存在するデータブロックの内容を読み込む（５４０）。
【００２６】
図６は、書込み過程を示す図面である。
応用プログラムに書込み作業の要請が入れば（６１０）、使用可能なメタブロック及びデータブロックが存在するか否かを判断し（６２０）、使用可能なメタブロック及びデータブロックが存在すれば、上述したブロック割当てが先に行われる（６３０）。もし、使用可能なメタブロック及びデータブロックが存在しなければ、後述するガーベージコレクションが行われる（６６０）。一応、要請されたファイルに対してメタブロック及びデータブロックを割り当てたならば、書込み作業が行われる。
【００２７】
書込み作業は、最初からフラッシュメモリにおいて行われることはない。まず、外部のＳＤＲＡＭに書込み作業を行った後（６４０）、書込み作業が終了すれば、フラッシュメモリへの書込み作業を行う（６５０）。もし、ファイルが一つのデータブロックより大きければ、一つのデータブロックに見合う分だけフラッシュメモリに書込みを行い、残りはＳＤＲＡＭに作業を行った後、書込み作業が終わればフラッシュメモリに書込みを行う。
要請された書込み作業が新しいファイルではなく、既に存在するファイルに対する要請であれば、例えばオーバライトであれば、次のブロック取替えを行う。
【００２８】
図７は、ブロック取替えの過程を示す図面である。
既に存在する名前のファイルに対する書込み作業の要請がある場合、この作業がオーバライトのようにファイルを完全に変えるものであるか、それともアペンドのように既存のファイルに内容を付け加えるものであるかによって、ブロック取替えを行う。
【００２９】
オーバライトである場合（７１０）、既存のメタブロック及びデータブロックをいずれも新しいメタブロック及びデータブロックに取り替える。上述した如きブロック割当て方法により新しいメタブロック及びデータブロックを割り当て（７２０）、オーバライトするファイルが貯蔵されているメタブロック及びデータブロックは無効であるとの情報をメタブロック及びインフォブロックに貯蔵する（７３０）。最後に、前記新しく割り当てたメタブロック、データブロック及びインフォブロックに、入力されたファイルの内容及び管理情報を貯蔵する（７４０）。
【００３０】
既存の方法においては、フラッシュメモリの特性上、既存の情報を修正するためには該当情報が位置している削除ユニットの全体を削除しなければなかったが、このように削除ユニットの全体を毎回削除することがフラッシュメモリの寿命をブロック別に異ならせる原因となった。しかし、本発明においては、このように新しいメタブロック及びデータブロックを割り当てる方法を用いる。従って、新しいブロックを割り当てて用いることにより、削除命令の実行がフラッシュメモリの全体のブロックに亘って均一になされる。
【００３１】
図８は、ガーベージコレクション過程を示す図面である。
新しいメタブロック及びデータブロックを割り当てようとする時、使用可能なメタブロック及びデータブロックがそれ以上存在しない場合、ガーベージコレクションを行う。ガーベージコレクション命令を受ければ（８１０）、まず、現在使用中であるメタブロック及びデータブロックを探してその内容を臨時記憶場所に移した後（８２０）、フラッシュメモリ上においてそれ以上有効ではないメタブロック及びデータブロックを削除した後（８３０）、臨時記憶場所に貯蔵された有効なデータをフラッシュメモリに書き込む（８４０）。
【００３２】
ガーベージコレクションが行われれば、メタブロック、インフォブロックの内容も変更されたデータブロック値を正確に反映するように変更されなければならない。
【００３３】
図９は、本発明のフラッシュファイルシステムの管理装置の構成図である。
ブロック検索部９１０は、貯蔵しようとするファイルの名前に関する情報、ファイルの大きさに関する情報、ファイルの論理アドレスに関する情報、メタブロックが使用中であるか否かに関する情報及びメタブロックが無効であるとの情報が貯蔵されるメタブロック及び前記貯蔵しようとするファイルの実際内容が貯蔵されるデータブロックの内容を検索する。
【００３４】
ブロック割当て部９２０は、前記ブロック検索部９１０における検索の結果に基づき使用可能な前記メタブロックを探し、そのうち使用可能な一つのメタブロックを割り当て、これに対応する前記データブロックに関する位置情報を読み込んでデータブロックを割り当てる。
読込み部９３０は、前記ブロック検索部９１０において読み込もうとするファイルの名前に関する情報が貯蔵されているメタブロックを探し、実際にデータが貯蔵されているデータブロックの内容を読み込む。
【００３５】
書込み部９４０は、前記ブロック割当て部９２０において割り当てた前記メタブロック及び前記データブロックに貯蔵しようとするファイルの書込み作業を行う。
ブロック取替え部９５０は、前記書込み部９４０において読み込もうとするファイルを上書きせよとの命令を行う場合、既存に存在していたメタブロック及びデータブロックを新しいメタブロック及びデータブロックに取り替える。
【００３６】
ガーベージコレクション部９６０は、前記ブロック割当て部９２０において新しいメタブロック及びデータブロックを割り当てるのに有効なメタブロック及びデータブロックが存在しない場合、有効ではないメタブロック及びデータブロックの内容をいずれも削除する。
一方、上述した本発明の実施の形態はコンピュータにて実行可能なプログラムにて作成でき、コンピュータにて読取り可能な記録媒体を用いて前記プログラムを動作させる汎用のデジタルコンピュータにおいて具現できる。
【００３７】
また、上述した本発明の実施の形態において用いられたデータの構造は、コンピュータにて読取り可能な記録媒体に各種の手段を通じて記録できる。
前記コンピュータにて読取り可能な記録媒体は、マグネチック貯蔵媒体（例えば、ＲＯＭ、フロッピー（登録商標）ディスク、ハードディスク等）、光学的な判読媒体（例えば、ＣＤ−ＲＯＭ、ＤＶＤ等）及びキャリアウェーブ（例えば、インターネットを介した伝送）などの貯蔵媒体を含む。
【００３８】
以上、本発明についてその好適な実施の形態を中心として説明した。本発明が属する技術分野における当業者であれば、本発明が本発明の本質的な特性から逸脱しない範囲内において変形された形に具現できることを理解できるであろう。よって、開示された実施の形態は限定的な観点ではなく、説明的な観点から考慮されなければならない。本発明の範囲は前述した説明ではなく、特許請求の範囲に示されており、それと同等な範囲内にある全ての違いは本発明に含まれていると解釈されなければならない。
【００３９】
【発明の効果】
上述したように、本発明は、従来の方法とは異なって、一つのファイルが特定のメモリ領域を継続的に用いないことから、フラッシュメモリ内の特定のブロックの寿命が他のブロックより早く尽きることを防止でき、メモリ領域を全体に亘って均一に用いることから、フラッシュメモリ内の全てのブロックの寿命を同一に保持できる。
【図面の簡単な説明】
【図１】通常のフラッシュファイルシステムの構成図である。
【図２】通常のファイルシステムにおけるファイル更新方法を示すフローチャートである。
【図３】本発明のフラッシュファイルシステムの構成図である。
【図４】ブロック割当て方法を示す図である。
【図５】読出し過程を示す図面である。
【図６】書込み過程を示す図面である。
【図７】ブロック取替えの過程を示す図面である。
【図８】ガーベージコレクションの過程を示す図面である。
【図９】本発明のフラッシュファイルシステムの管理装置の構成図である。
【符号の説明】
９１０…ブロック検索部
９２０…ブロック割当て部
９３０…読込み部
９４０…書込み部
９５０…ブロック取替え部
９６０…ガーベージコレクション部
【図１】
2004013895.tif 000003
【図２】
2004013895.tif 000004
【図３】
2004013895.tif 000005
【図４】
2004013895.tif 000006
【図５】
2004013895.tif 000007
【図６】
2004013895.tif 000008
【図７】
2004013895.tif 000009
【図８】
2004013895.tif 000010
【図９】
2004013895.tif 000011