(57)【要約】【課題】大量の画像データを効率よく保存し、大量のデータファイルの追加・削除を行いつつ、同時にフラッシュメモリの劣化や破損を回避可能なデータファイル管理方法の提供。【解決手段】複数のデータファイルとそのデータファイルに対応するインデックスファイルを用いるデータファイル管理方法であって、履歴ファイルを作成するステップと、該作成された履歴ファイルの所在を記録するステップと、データファイルの更新を履歴ファイルに記録するステップと、履歴ファイルに記録された操作履歴に従ってインデックスファイルを一括して更新するステップとを含むことを特徴とする。【選択図】        図３
2004234188.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータファイルとそのデータファイルに対応するインデックスファイルを用いるデータファイル管理方法であって、履歴ファイルを作成するステップと、該作成された履歴ファイルの所在を記録するステップと、データファイルの更新を履歴ファイルに記録するステップと、履歴ファイルに記録された操作履歴に従ってインデックスファイルを一括して更新するステップとを含むことを特徴とするデータファイル管理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、フラッシュメモリの消耗を避けると同時に大量のデータを保存することのできるフラッシュメモリカードを用いた画像管理等のデータファイル管理方法に関する。
【０００２】
【従来の技術】
近年、ディジタルカメラの普及に伴って、大容量で安価なメモリカードが普及している。こうしたメモリカードではフラッシュメモリが用いられており、可動部分がなく消費電力も少ないため、各種機器の二次記憶装置としても使われるようになっている。具体的には、監視装置における画像記録媒体としての利用である。
【０００３】
一例として、フラッシュメモリでのデータ破壊を確実に防止することができる電子スチルカメラが提案されている。即ち、カメラ本体の電源のオンオフ回数をフラッシュメモリのワークメモリブロックテーブル中のラストメモリブロックの電源ＯＮ／ＯＦＦカウンタでカウントし、このカウンタのカウント値が所定値に達すると、フラッシュメモリ中の読み出し専用である管理情報ブロックのデータを一時ＤＲＡＭに退避させ、フラッシュメモリ中の管理情報ブロックのデータを消去すると共に、ＤＲＡＭの退避データをフラッシュメモリ中の書き戻すというものである（例えば、特許文献１参照。）。
【０００４】
また、他の例として、フラッシュメモリの書き換え寿命を長くする提案がある。即ち、データの書換えが行われないプログラム記憶エリアを形成するフラッシュメモリと、データの書換えが行われる画像情報記憶エリアを形成するフラッシュメモリとを備える場合に、ＣＰＵが司るメモリマップ上で、前記各記憶エリアが変らないように、ＣＰＵからの入替指示信号に応じて、前記各フラッシュメモリの記憶エリアを互いに入れ替えることで、一方のフラッシュメモリの寿命が来て書き換え速度が遅くなった場合に、他方のフラッシュメモリの記憶エリアを用いることが出来るというものである（例えば、特許文献２参照。）。
【０００５】
【特許文献１】
特開平８−２０５０７０号公報
【特許文献２】
特開２０００−２０４０５号公報
【０００６】
【発明が解決しようとする課題】
しかしながら従来のフラッシュメモリカードを用いて、上記監視画像の記録等にみられる大量のデータファイルを扱う場合、フラッシュメモリカードの消耗が激しいという問題があった。すなわちデータファイルを多数記録する際、それらを効率よく検索するためにインデックスファイルが設けられる。インデックスファイルは、一連のデータファイルの識別子を一つまたは複数の検索キーと組合わせて管理したもので、基本的にはデータファイルの追加または削除する際に、対応する項目の追加または削除が行われる。この結果、インデックスファイルが属するディレクトリエントリの特定セクタに対する書き込みが発生する。これが繰返されると、フラッシュメモリの特定部位への書き込みが集中することになり、フラッシュメモリの寿命が短くなることになる。
【０００７】
例えば、図５に示したファイル階層のように、一連データファイルＦＩＬＥ１１、ＦＩＬＥ１２…が、サブディレクトリＤＩＲ１、ＤＩＲ２…に分けて保存されているとする。図６は、一連のデータファイルを管理するインデックスファイルＩＮＤＥＸの内容であって、タイムスタンプや検索キーがファイルＩＤ毎に記録されている。一方図７は、インデックスファイルＩＮＤＥＸが置かれているディレクトリファイルの内容である。ディレクトリファイルには、ディレクトリ中に含まれる各ファイルについて、データブロック先頭位置、ファイルサイズ、タイムスタンプなどが記録されている。
【０００８】
以上において、新たにデータファイルが追加されると、新しいエントリが追加されることによってインデックスファイルが更新される。この結果、インデックスファイルのサイズやタイムスタンプが変化するので、それが置かれているディレクトリファイルも更新される。ディレクトリファイル中のＩＮＤＥＸに対応するブロックは固定されているので、最終的に当該ブロックが属するフラッシュメモリへの書き込みが集中することになり、寿命が短くなる。
【０００９】
上記問題を公知の方法によって回避することも部分的には可能である。
【００１０】
第一の方法は、ファイルシステムのバッファキャッシュに依存するもので、バッファリングによって実際の書き込み回数を減らすというものである。しかしこの方法では、バッファリングの時間によっては信頼性が損なわれることがあり、また大量データを扱うとバッファが溢れて効果が乏しくなるという問題がある。
【００１１】
第二の方法は、インデックスファイルを分割するもので、インデックスファイルのディレクトリエントリの更新が集中しないようにするものである。しかしこの方法でも部分的に更新が集中するのは避けられず、またデータ管理が複雑化するという問題がある。
【００１２】
第三の方法は、ジャーナルファイルシステムのようにフラッシュメモリに適したファイルシステムの構造を用いることである。この方法はフラッシュメモリに対しては非常に有効であるが、標準的ファイルシステムではないため、パーソナルコンピュータなどで直接扱うことができないという問題がある。
【００１３】
本発明は、上述の点に着目して成されたもので、大量の画像データを効率よく保存し、大量のデータファイルの追加・削除を行いつつ、同時にフラッシュメモリの劣化や破損を回避可能なデータファイル管理方法を提供することを目的とする。
【００１４】
【課題を解決するための手段】
本発明は、下記構成を備えることにより上記課題を解決できるものである。
【００１５】
（１）複数のデータファイルとそのデータファイルに対応するインデックスファイルを用いるデータファイル管理方法であって、履歴ファイルを作成するステップと、該作成された履歴ファイルの所在を記録するステップと、データファイルの更新を履歴ファイルに記録するステップと、履歴ファイルに記録された操作履歴に従ってインデックスファイルを一括して更新するステップとを含むことを特徴とするデータファイル管理方法。
【００１６】
（２）前項（１）記載のデータファイル管理方法において、履歴ファイルに記録された履歴エントリが所定の個数に達したときにインデックスファイルを一括して更新することを特徴とするデータファイル管理方法。
【００１７】
（３）前項（１）または（２）記載のデータファイル管理方法において、履歴ファイルの先頭エントリに対応するデータファイルの追加または削除操作から、所定の時間が経過したときにインデックスファイルを一括して更新することを特徴とするデータファイル管理方法。
【００１８】
（４）前項（１）乃至（３）いずれか記載のデータファイル管理方法において、ファイルシステムマウント時に履歴ファイルが存在すれば、その内容に基づいてインデックスファイルを一括して更新することを特徴とするデータファイル管理方法。
【００１９】
（５）前項（１）乃至（４）いずれか記載のデータファイル管理方法において、フラッシュメモリ上のファイルシステムを用いることを特徴とするデータファイル管理方法。
【００２０】
即ち、本発明は、データファイルの追加・削除において直接インデックスファイルを更新する代りに、一連の追加・削除操作を記録する履歴ファイルに記録し、インデックスファイルの更新を纏めて行うことによって、インデックスファイルに対応するディレクトリエントリへの書き込み集中を防ぎ、特定部位への集中的な書き込みを回避可能としたデータファイル管理方法である。
【００２１】
【発明の実施の形態】
以下、本発明に係るデータファイル管理方法の実施の形態を説明する。
【００２２】
図１は、実施例１におけるフラッシュメモリ内のディレクトリ階層を示す図、図２は、実施例１における履歴ファイルの内容を示す図、図３は、実施例１におけるデータファイルの追加と削除の処理手順を示すフローチャート、図４は、実施例２におけるファイルシステムマウント時の処理手順を示すフローチャートである。
【００２３】
以下、本発明の実施例について、図を用いて説明する。
【００２４】
（実施例１）
図１は、本実施例１におけるフラッシュメモリ内のディレクトリ階層を示す図である。図５に対して履歴ファイルＨＩＳＴＯＲＹ、および履歴ファイルの所在を示す履歴ＩＤファイルＨＩＳＴＩＤが追加されている。本実施例ではデータファイルを追加・削除する際、インデックスファイルＩＮＤＥＸを直に更新するかわりに、インデックス操作履歴を履歴ファイルＨＩＳＴＯＲＹに記録しておき、所定の履歴を纏めてインデックスに反映させている。履歴ファイルＨＩＳＴＯＲＹの更新頻度は高いため、履歴ファイルＨＩＳＴＯＲＹのフラッシュメモリ内の置き場所を固定位置とすることはできない。そのため履歴ファイルをサブディレクトリのいずれかに置くとともに、履歴ＩＤファイルＨＩＳＴＩＤによって履歴ファイルＨＩＳＴＯＲＹの所在を示すようにする。履歴ＩＤファイルの更新頻度は低いので、固定位置においてもよい。またインデックスファイルの構造を修正して、インデックスファイル中に履歴ファイルの所在を示すレコードを置くようにしてもよい。
【００２５】
図２は、実施例１における履歴ファイルＨＩＳＴＯＲＹの内容を示す図である。履歴ファイルのエントリは、少なくともデータファイルの追加または削除を示す「操作」と「ファイルＩＤ」を含み、他にタイムスタンプや検索キーなど、図６に示したインデックスファイルのエントリに含まれる要素を含んでよい。ただしインデックスファイル更新時に、インデックスファイルエントリの必要な情報がデータファイルから得られるものについては、必ずしも履歴ファイルに記録する必要はない。なお、インデックスファイルはフラッシュメモリ内のある領域に集中して格納している。
【００２６】
図３は、実施例１におけるフラッシュメモリ内の複数のデータファイルのうちあるデータファイルの追加と削除の処理手順を示すフローチャートである。初めにデータファイル（ＦＩＬＥ１１，ＦＩＬＥ１２…）の追加または削除が行われる（ステップＳ３０１）。続いてステップＳ３０１の更新に対応する履歴ファイルＨＩＳＴＯＲＹへの「操作」，「ファイルＩＤ」に関する記録を行うが、履歴ファイルが存在しなければ（ステップＳ３０２）、新たに履歴ファイルを作成する（ステップＳ３０３）。続いて履歴エントリを現在のエントリ数に対して「１」を加算し（ステップＳ３０４）、インデックス更新の必要があるかどうかを判断し（ステップＳ３０５）、必要があればインデックスファイル（ＦＩＬＥ２１，ＦＩＬＥ２２）を更新して（ステップＳ３０６）、履歴ファイルＨＩＳＴＯＲＹを消去し、履歴エントリをリセットする（ステップＳ３０７）。以上で処理は終了である。
【００２７】
上記手順においてステップＳ３０５のインデックス更新判定は、履歴エントリ数の個数で行う。例えば履歴エントリ数が１００であれば、データファイルの追加削除を１００回行われるごとに、インデックスファイルのディレクトリエントリに対応するフラッシュメモリへの書き込みを行えばよいので、特定部位への書き込み集中を抑制することができる。ただし一般には、インデックスの更新判定を履歴エントリ数のみで行う必要はなく、目的に応じてデータファイル追加・削除以降の経過時間、サブディレクトリ変更と履歴ファイルの切替え、ファイルシステムのアンマウント、およびそれらの任意の組合わせによって行ってもよい。
【００２８】
（実施例２）
ところでファイルシステムによっては、メモリカードのアンマウント時に履歴ファイルの内容をインデックスファイルに反映させることはできないため、メモリカードをマウントするとインデックスファイル以外に履歴ファイルも存在する場合がある。続けてデータファイルの追加・削除を行う場合は、その履歴ファイルをそのまま用いてもよいが、収集したデータに対する検索等の処理を行う場合は、予め履歴ファイルの内容をインデックスに反映させておく必要がある。この処理は、基本的にはファイルシステムマウント時に行えばよい。
【００２９】
図４は、実施例２におけるファイルシステムマウント時の処理手順を示すフローチャートである。初めに履歴ＩＤファイルを用いて履歴ファイルを参照する（ステップＳ４０１）。履歴ファイルが存在すれば（ステップＳ４０２）、インデックスファイルを更新して（ステップＳ４０３）、履歴ファイルを消去する（ステップＳ４０４）。
【００３０】
即ち、フラッシュメモリのような書き込み回数に制限のある記録媒体を用いて、大量の画像データを効率よく保存すると共に、画像の追加・削除操作を履歴ファイルに記録しておき、一定回数または一定時間を超えた時点で纏めてインデックスファイルを更新し、更にインデックスファイルの更新回数を削減し、インデックスファイルのディレクトリエントリに対応するセクタへの書き込み集中を避けることによって、フラッシュメモリの特定部位の消耗を防ぐことが出来る。
【００３１】
【発明の効果】
以上説明したように、本発明によれば、履歴ファイルを作成するステップと、該作成された履歴ファイルの所在を記録するステップと、データファイルの追加や削除を履歴ファイルに記録するステップと、履歴ファイルに記録された操作履歴に従ってインデックスファイルを一括して更新するステップとを設けることによって、大量のデータファイル追加・削除を行いつつ、同時にフラッシュメモリの劣化や破損を避けることが可能であるという効果を呈する。
【図面の簡単な説明】
【図１】実施例１におけるディレクトリ階層を示す図
【図２】実施例１における履歴ファイルの内容を示す図
【図３】実施例１におけるデータファイルの追加と削除の処理手順を示すフローチャート
【図４】実施例２におけるファイルシステムマウント時の処理手順を示すフローチャート
【図５】従来例におけるファイル階層を示す図
【図６】従来例における一連のデータファイルを管理するインデックスファイルＩＮＤＥＸの内容を示す図
【図７】インデックスファイルＩＮＤＥＸが置かれているディレクトリファイルの内容を示す図
【図１】
2004234188.tif 000003
【図２】
2004234188.tif 000004
【図３】
2004234188.tif 000005
【図４】
2004234188.tif 000006
【図５】
2004234188.tif 000007
【図６】
2004234188.tif 000008
【図７】
2004234188.tif 000009