(57)【要約】【課題】  ハードウェア資源の増量を抑えつつ、記録媒体に対して効率的なデータの書き込みが可能な情報処理装置を提供することを目的とする。【解決手段】  記録媒体にクラスタ単位でデータを書き込む情報処理装置であって、前記記録媒体の最後の使用クラスタを示すクラスタ番号を保持する保持手段と、前記データの種別に応じて、前記最後の使用クラスタを示すクラスタ番号を用いて前記データを前記記録媒体に書き込むか否かを判定する判定手段と、前記判定手段の判定の結果に基づき、前記データを前記記録媒体に書き込む制御手段と、を有することを特徴とする。【選択図】  図６
2016009274.tif 000002
【特許請求の範囲】
【請求項１】
記録媒体にクラスタ単位でデータを書き込む情報処理装置であって、
前記記録媒体の最後の使用クラスタを示すクラスタ番号を保持する保持手段と、
前記データの種別に応じて、前記最後の使用クラスタを示すクラスタ番号を用いて前記データを前記記録媒体に書き込むか否かを判定する判定手段と、
前記判定手段の判定の結果に基づき、前記データを前記記録媒体に書き込む制御手段と、を有することを特徴とする情報処理装置。
【請求項２】
前記判定手段は、前記データが動画データである場合は、前記最後の使用クラスタを示すクラスタ番号を用いて前記データを前記記録媒体に書き込むと判定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記保持手段は、前記記録媒体の最初の空きクラスタを示すクラスタ番号と、前記最後の使用クラスタを示すクラスタ番号とを保持し、
前記判定手段は、前記データの種別に応じて、前記最初の空きクラスタを示すクラスタ番号を用いて前記データを前記記録媒体に書き込むか、前記最後の使用クラスタを示すクラスタ番号を用いて前記データを前記記録媒体に書き込むかを判定することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記判定手段は、前記データが動画データである場合は、前記最後の使用クラスタを示すクラスタ番号を用いて前記データを前記記録媒体に書き込むと判定し、前記データが静止画データである場合は、前記最初の空きクラスタを示すクラスタ番号を用いて前記データを前記記録媒体に書き込むと判定することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記判定手段は、前記データが高速記録用のデータである場合は、前記最後の使用クラスタを示すクラスタ番号を用いて前記データを前記記録媒体に書き込むと判定し、前記データが低速記録用のデータである場合は、前記最初の空きクラスタを示すクラスタ番号を用いて前記データを前記記録媒体に書き込むと判定することを特徴とする請求項３に記載の情報処理装置。
【請求項６】
前記制御手段は、前記データの記録に必要な空きクラスタを確保するまで、前記記録媒体の空きクラスタを検索することを特徴とする請求項１に記載の情報処理装置。
【請求項７】
前記制御手段により前記データの記録に必要な空きクラスタが確保された場合、前記保持手段に保持されているクラスタ番号を更新する更新手段を更に有することを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
前記記録媒体の中で使用されていたクラスタが解放された場合、前記保持手段に保持されているクラスタ番号を更新する更新手段を更に有することを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項９】
記録媒体にクラスタ単位でデータを書き込む情報処理装置であって、
前記データの種別に応じて、前記記録媒体の最初の空きクラスタを示すクラスタ番号を用いて前記データを前記記録媒体に書き込むか、前記記録媒体の最後の使用クラスタを示すクラスタ番号を用いて前記データを前記記録媒体に書き込むか、を選択する選択手段と、
前記選択手段の選択の結果に基づき、前記データを前記記録媒体に書き込む制御手段と、を有することを特徴とする情報処理装置。
【請求項１０】
記録媒体にクラスタ単位でデータを書き込む情報処理方法であって、
前記記録媒体の最後の使用クラスタを示すクラスタ番号を保持する保持工程と、
前記データの種別に応じて、前記最後の使用クラスタを示すクラスタ番号を用いて前記データを前記記録媒体に書き込むか否かを判定する判定工程と、
前記判定工程の判定の結果に基づき、前記データを前記記録媒体に書き込む制御工程と、を有することを特徴とする情報処理方法。
【請求項１１】
コンピュータを、
記録媒体にクラスタ単位でデータを書き込む情報処理装置であって、
前記記録媒体の最後の使用クラスタを示すクラスタ番号を保持する保持手段と、
前記データの種別に応じて、前記最後の使用クラスタを示すクラスタ番号を用いて前記データを前記記録媒体に書き込むか否かを判定する判定手段と、
前記判定手段の判定の結果に基づき、前記データを前記記録媒体に書き込む制御手段と、を有することを特徴とする情報処理装置として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記録媒体にクラスタ単位でデータを書き込む情報処理装置に関する。
【背景技術】
【０００２】
近年のデジタルカメラなどの組込み機器の記録媒体には、小型かつ軽量な半導体記録媒体が用いられることが多い。
【０００３】
半導体記録媒体の内部は、ブロックと呼ばれる単位毎にデータが管理されている。そのため、同じサイズのデータの書込みであれば複数のブロックへ別々に書込むよりは、同一のブロックに連続して書込みを行う方が高速に実行することができる。
【０００４】
また、組込み機器上で半導体記録媒体に記録するデータを管理するためには、所定のファイルシステムが必要になる。記録されるデータはパーソナルコンピュータ上でも管理できることが求められるため、パーソナルコンピュータが認識できるデータフォーマットに準拠した形式で記録する必要がある。
【０００５】
以上の理由から、組込み機器のファイルシステムのフォーマットとして、ＦＡＴファイルシステムが多く採用されている。
【０００６】
ＦＡＴファイルシステムでは、最小のアクセス単位はセクタである。そして、セクタの集合であるクラスタから構成されるデータ領域と、各クラスタの連結状況や使用中、未使用などの状態を管理するＦＡＴ（Ｆｉｌｅ  Ａｌｌｏｃａｔｉｏｎ  Ｔａｂｌｅ）  を含むシステム領域とで構成される。データ領域にはファイルの実データと、ファイルのインデックス情報などのメタデータを管理するディレクトリなどが記録される。
【０００７】
一般的に、半導体記録媒体の管理単位であるブロックの容量と、ＦＡＴファイルシステムの管理単位であるクラスタの容量とを比較した場合、ブロックの記憶容量の方が大きい。
【０００８】
そのため、クラスタ単位で管理されたデータによる半導体記録媒体へのアクセスは、半導体記録媒体にとって効率の悪いアクセスになることがある。
【０００９】
近年では、組込み機器で動画コンテンツを記録するケースが多くなっている。動画コンテンツをリアルタイムで記録する場合、記録媒体へ効率の悪いアクセスが続くと十分な記録速度を確保することができない場合がある。よって、動画コンテンツの記録をし損ねてしまうケースもあり得る。
【００１０】
特許文献１には、記録領域を複数のクラスタを含むブロック単位で管理し、新たな空き領域にデータを記録する必要がある場合は、所定の閾値以上の未使用クラスタを含むブロックを検索することが開示されている。
【００１１】
そして、検索されたブロックに対して優先的にデータの書込み処理を行う方法が開示されている。この手法では空き領域が断片化された半導体記録媒体に対する書込み処理においても、記録速度が極端に低下することを避けることができ、動画用コンテンツのリアルタイム記録に必要な最低書込み速度を保証することが可能となっている。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】ＷＯ０５／０５５０６４
【発明の概要】
【発明が解決しようとする課題】
【００１３】
上記の特許文献１の技術においては、動画コンテンツのリアルタイム記録に必要な最低書込み速度を保証することができる。一方で、ブロック中の未使用クラスタ数を管理する必要があるため、ＲＡＭ  （Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）  上にブロック毎の未使用クラスタをカウントしたテーブルを配置する手法が採用されている。
【００１４】
しかし、通常、組込み機器においては、ＲＡＭなどのハードウェア資源は、必要最小限の容量で構成されている。これは、組込み機器においては、ハードウェア資源の増量が困難であることを示している。
【００１５】
特許文献１の技術においては、上述の通り、未使用クラスタをカウントしたテーブルを配置するため、ＲＡＭの増量が必要になる。一方で、ハードウェア資源の増量が難しい状況もあり、そのような状況下においては、特許文献１の技術を採用することは難しい。
【００１６】
しかしながら、特許文献１に開示されている技術の採用が難しい場合でも、動画コンテンツのリアルタイム記録が中断されるような事態を避けるために、記録媒体に対して効率の良いアクセスをすることが求められている。
【００１７】
本発明は、上記のような状況を想定し、ＲＡＭなどのハードウェア資源の増量を抑えつつ、記録媒体に対して効率的なデータの書き込みが可能な情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１８】
上記目的を達成するための本発明に係る情報処理装置は、記録媒体にクラスタ単位でデータを書き込む情報処理装置であって、前記記録媒体の最後の使用クラスタを示すクラスタ番号を保持する保持手段と、前記データの種別に応じて、前記最後の使用クラスタを示すクラスタ番号を用いて前記データを前記記録媒体に書き込むか否かを判定する判定手段と、前記判定手段の判定の結果に基づき、前記データを前記記録媒体に書き込む制御手段と、を有することを特徴とする。
【発明の効果】
【００１９】
本発明によれば、ハードウェア資源の増量を抑えつつ、記録媒体に対して効率的なデータの書き込みが可能な情報処理装置を提供することが出来る。
【図面の簡単な説明】
【００２０】
【図１】本実施形態におけるハードウェア構成の概略を示すブロック図である。
【図２】ＦＡＴファイルシステムの構成図である。
【図３】ＦＡＴ上の空きクラスタ候補番号について例示する図である。
【図４】空きクラスタ候補番号を示すブロック図である。
【図５】空きクラスタ候補番号を登録するためのフローチャートである。
【図６】データを記録するための空きクラスタ番号の検索方法を示すフローチャートである。
【図７】空きクラスタ候補番号更新処理のフローチャートである。
【図８】空きクラスタ候補番号更新処理のフローチャートである。
【発明を実施するための形態】
【００２１】
本実施形態における情報処理装置の構成について説明する。尚、以下の説明において、本実施形態における情報処理装置はデジタルカメラ１００としている。しかしながら、記憶媒体を装着可能な携帯電話、ＰＤＡ、ＰＣ、スマートフォン等の情報機器でも同様の処理を行うことが可能である。
【００２２】
（本実施形態における情報処理装置（デジタルカメラ１００）の構成）
図１は、本実施形態におけるデジタルカメラ１００の内部構成を示すブロック図である。本実施形態におけるデジタルカメラ１００は、撮像部１０１、操作部１０２、表示部１０３、ＣＰＵ１０５、ＲＯＭ１０６、ＲＡＭ１０７及びメモリカード制御部１０８から構成されている。これらは、図１に示すように内部バス１０４によって相互に接続されている。
【００２３】
ＣＰＵ１０５は、ＲＯＭ１０６またはＲＡＭ１０７に格納されているコンピュータプログラムに基づき、デジタルカメラ１００の各構成部を制御する。ＲＯＭ１０６は、デジタルカメラ１００を制御するコンピュータプログラム等を予め格納した不揮発性メモリである。
【００２４】
ＲＡＭ１０７は、ＲＯＭ１０６などから供給されるコンピュータプログラムやデータを一時的に記憶する領域である。また、ＲＡＭ１０７は、撮像部１０１から出力されるデジタル画像データを、メモリカード制御部１０８を通して装着されたメモリカード１０９へ書込むために、一時的にバッファリングするためにも利用される。
【００２５】
メモリカード制御部１０８は、メモリカード１０９と物理的かつ電気的に接続され、撮影したデジタル画像データやその管理データなどをメモリカード１０９に書込む。また、メモリカード１０９に格納された画像データや管理データを読出す。
【００２６】
ＣＰＵ１０５は、メモリカード制御部１０８にメモリカード１０９が装着された際に、以下の動作を行う。すなわち、メモリカード制御部１０８を通じてメモリカード１０９から容量に関する情報として、総クラスタ数、記憶容量、１セクタのバイト数、１クラスタあたりのセクタ数などの情報を取得する。
【００２７】
尚、上述した実施形態ではＦＡＴファイルシステムを前提として説明を行ったが、本実施形態における処理は、クラスタ単位で管理されるデータ領域を持つファイルシステムにも適用することができる。
【００２８】
（ＦＡＴファイルシステムの構成）
図２は、本実施形態におけるＦＡＴファイルシステムの構成図である。尚、本実施形態においては、ファイルシステムとしてＦＡＴファイルシステムを採用しているが、ＥＸＴなどの他のファイルシステムを用いることも可能である。
【００２９】
ＦＡＴファイルシステムは、ブートセクタ２０３とＦＡＴ（Ｆｉｌｅ  Ａｌｌｏｃａｔｉｏｎ  Ｔａｂｌｅ）２０２を含むシステム情報領域２０５と、クラスタ単位で管理されているデータ記憶領域２０１とで構成されている。
【００３０】
データ記憶領域２０１を構成する各クラスタ２０６に対しては、一意に決まる管理番号（以下、クラスタ番号と呼ぶ）が割り当てられている。各クラスタには「２」から順番に番号が割り当てられる（割り当てられた番号をクラスタ番号と呼ぶ）。
【００３１】
また、各クラスタはクラスタ番号に対応しており、ＦＡＴ２０２に対応した領域を有する。各クラスタには、ファイルのメタデータを記録するための領域であるディレクトリと、ファイルの実データが記録されている。尚、ディレクトリ、ファイルの実データは、単一のクラスタではなく、複数のクラスタで構成されてもよい。ディレクトリ、ファイルの実データを複数のクラスタで構成する場合は、ＦＡＴ２０２を用いて、複数クラスタの連結状況を表すことになる。ディレクトリ、ファイルの実データが複数のクラスタで構成されている場合、ＦＡＴ２０２のクラスタ番号に対応するＦＡＴエントリには、そのクラスタの次のクラスタ番号が記録されている。
【００３２】
また、複数クラスタの末端のクラスタに対応するＦＡＴエントリには終端であることを示す値（すべてのビットが１である値）が記録される。クラスタが使われていない場合、そのクラスタに対応するＦＡＴエントリには「０」が記録されている。
【００３３】
メモリカード１０９へ新しくディレクトリやファイルの実データを記録する場合、データを記録するために必要なクラスタを確保する。新しいデータを記録するクラスタには、対応するＦＡＴエントリに「０」が記録されているクラスタ（以降、空きクラスタと表記）を使用する。
【００３４】
（空きクラスタ候補番号の例）
次に、本実施形態におけるＦＡＴ２０２の空きクラスタ候補番号について説明する。図３は、本実施形態における空きクラスタ候補番号の例を示したものである。
【００３５】
図示の通り、クラスタ番号３０１は０番からＥＯＣ（Ｅｎｄ  Ｏｆ  Ｃｌｕｓｔｅｒｓ）３０５まであり、各クラスタの状態はＦＡＴエントリ３０２によって表されている。
【００３６】
図３において、最初の空きクラスタは５番クラスタ３０３であるので、低速記録用ヒント４０２は「５」となる。また、最後の使用クラスタは１６番クラスタ３０４であるので、高速記録用ヒント４０３は「１６」となる。
【００３７】
ここで、低速記録用ヒント４０２とは、静止画ファイル（静止画データ）や文書ファイルなどの書き込み速度を要求されないデータを記録するためのクラスタ番号の候補を示すものである。
【００３８】
また、高速記録用ヒント４０３とは、動画ファイル（動画データ）などの書き込み速度を要求されるデータを記録するためのクラスタ番号の候補を示すものである。つまり、書き込み速度を要求されないデータを取得した際には、低速記録用ヒント４０２を用いた書き込み処理を行えばよい。一方で、書き込み速度を要求されるデータを取得した際には、高速記録用ヒント４０３を用いた書き込み処理を行えばよい。
【００３９】
空きクラスタ候補番号４０１の取得は、デジタルカメラ１００にメモリカード１０９が装着された状態で電源が投入された際に、メモリカード１０９の空き容量カウントと同時に実行するようにしてもよい。
【００４０】
（空きクラスタ候補番号をＲＡＭ上で記録している状態）
図４は、本実施形態における空きクラスタ候補番号がＲＡＭに記録されている状態を示すブロック図である。図に示す通り、前述の低速記録用ヒント４０２と高速記録用ヒント４０３とがＲＡＭに記録されている。前述の通り、低速記録用空きクラスタ候補番号４０２（以降、低速記録用ヒントと表記）は、メモリカード１０９の最初の空きを示すクラスタ番号を記憶する。高速記録用空きクラスタ候補番号４０３（以降、高速記録用ヒントと表記）は、メモリカード１０９の最後の使用クラスタを示すクラスタ番号を記憶する。
【００４１】
データ記録のために空きクラスタを検索する際には、ＲＡＭ１０７上に記憶した空きクラスタ候補番号４０１を使用する。空きクラスタ候補番号４０１を使用することにより、使用クラスタであることが既知のエントリを再検索することによる検索速度の低下を防止することが出来る。
【００４２】
また、図示の通り、空きクラスタ候補番号４０１として、低速記録用４０２と高速記録用４０３との二つが記憶されている。そして、書き込みデータの種別に応じた、低速記録用４０２と高速記録用４０３との使い分けることによって、適切なクラスタにデータを書き込みことが出来る。以上の処理によって、まず、低速記録用４０２の空きクラスタを有効活用することによってメモリカード１０９のフラグメントを抑制することが出来る。そして、高速な書き込みが必要とされる場合は、高速記録用４０３の空きクラスタを利用することによって記録媒体へのアクセスを効率化することができる。
【００４３】
（空きクラスタ候補番号の登録の方法）
次に、データ記憶用の空きクラスタ候補番号４０１を登録する具体的な処理フローを説明する。図５は、本実施形態における空きクラスタ候補番号４０１を登録するためのフローチャートである。以下、図５に沿って具体的な処理について説明する。尚、以下の各処理は、図１に示したＣＰＵ１０５が、コンピュータプログラムに基づき処理するものとする。また、必要に応じて、ＲＯＭ１０６やＲＡＭ１０７にアクセスして処理を行う。
【００４４】
（Ｓ５０１）ステップＳ５０１では、登録するための調査対象クラスタのクラスタ番号、低速記録用ヒント４０２、高速記録用ヒント４０３、にそれぞれ「２」をセットする。「２」は初期化を示す。
【００４５】
（Ｓ５０２）ステップＳ５０２では、調査対象クラスタは空クラスタであるか否かを判定する。空クラスタであると判定された場合は（Ｙの場合）、ステップＳ５０５に処理を進める。また、空クラスタでないと判定された場合は（Ｎの場合）、ステップＳ５０３に処理を進める。
【００４６】
（Ｓ５０３）ステップＳ５０３では、調査対象クラスタの値を１増加させる。
【００４７】
（Ｓ５０４）ステップＳ５０４では、ステップＳ５０３における増加によって、調査対象クラスタは最終クラスタ番号を超えたか否かを判定する。最終クラスタ番号を超えた場合（Ｙの場合）、処理を終了するめにＥＮＤに処理を進める。最終クラスタ番号を超えていない場合（Ｎの場合）、次の調査対象クラスタを調査するため、ステップＳ５０２に処理を戻す。
【００４８】
（Ｓ５０５）ステップＳ５０５では、ステップＳ５０２において空きクラスタと判定されたクラスタの番号を用いて、低速記録用ヒント４０２と高速記録用ヒント４０３とを更新する。更新後、ステップＳ５０６に処理を進める。
【００４９】
（Ｓ５０６）ステップＳ５０６では、調査対象クラスタの値を１増加する。
【００５０】
（Ｓ５０７）ステップＳ５０７では、調査対象クラスタは最終クラスタ番号を超えたか否かを判定する。判定の結果、最終クラスタ番号を超えた場合（Ｙの場合）、処理を終了するめにＥＮＤに処理を進める。最終クラスタ番号を超えていない場合（Ｎの場合）、ステップＳ５０８に処理を進める。
【００５１】
（Ｓ５０８）ステップＳ５０８では、調査対象のクラスタは使用中クラスタであるか否かを判定する。判定の結果、使用中クラスタであると判定された場合（Ｙの場合）、ステップＳ５０９に処理を進める。また、使用中クラスタでないと判定された場合（Ｎの場合）、ステップＳ５０６に処理を戻す。
【００５２】
（Ｓ５０９）ステップＳ５０９では、高速記録用ヒントに、調査対象クラスタ番号をセットする。クラスタ番号のセット後、ステップＳ５０６に処理を戻す。
【００５３】
以上が本実施形態における空きクラスタ候補番号の登録の方法である。次に、所得したデータを記録するために、空きクラスタ候補番号４０１を検索し、登録する処理について説明する。
【００５４】
（空きクラスタ検索の方法）
図６は、本実施形態におけるデータを記録するための空きクラスタ番号の検索方法を示すフローチャートである。空きクラスタを検索する際には、図５の処理で登録した空きクラスタ候補番号４０１を利用する。空きクラスタ候補番号４０１は、前述の通り、ＲＡＭに保持されている。尚、以下の各処理は、図１に示したＣＰＵ１０５が、コンピュータプログラムに基づき処理するものとする。また、必要に応じて、ＲＯＭ１０６やＲＡＭ１０７にアクセスして処理を行う。
【００５５】
（Ｓ６０１）ステップＳ６０１では、取得した記録すべきデータは高速に記録すべきデータであるか否かを判定する。判定の結果、高速に記録する必要があると判定された場合は（Ｙの場合）、ステップＳ６０２に処理を進める。高速に記録する必要がないと判定された場合は（Ｎの場合）、ステップＳ６０３に処理を進める。高速に記録する必要があるデータとしては、動画コンテンツや連写時の静止画コンテンツがある。それ以外のデータとしては、ディレクトリや通常の静止画、管理ファイルなどがある。書き込まれるデータが動画コンテンツや連写時の静止画コンテンツかどうかは、例えば、デジタルカメラ１００のモード等から判断する。また、あらかじめ、各データのメタデータに高速に記録する必要があるデータか否かを示す情報を付加しておいても良い。
【００５６】
（Ｓ６０２）ステップＳ６０２では、空クラスタ検索番号に高速記録用ヒントをセットする（高速記録用の空きクラスタ番号を選択する）。セット後、ステップＳ６０４に処理を進める。
【００５７】
（Ｓ６０３）ステップＳ６０３では、空クラスタ検索番号に低速記録用ヒントをセットする（低速記録用の空きクラスタ番号を選択する）。セット後、ステップＳ６０４に処理を進める。
【００５８】
（Ｓ６０４）ステップＳ６０４では、ステップＳ６０２、ステップ６０３、後述するステップＳ６０８、ステップＳ６１０のいずれかでセットされた空きクラスタ検索番号が空きクラスタか否かを判定する。判定の結果、空きクラスタであると判定された場合（Ｙの場合）は、ステップＳ６０５に処理を進める。
【００５９】
（Ｓ６０５）ステップＳ６０５では、ステップＳ６０４において空きクラスタであると判定された空きクラスタをデータ記録用に確保する。確保後、ステップＳ６０６に処理を進める。
【００６０】
（Ｓ６０６）ステップＳ６０６では、記録すべきデータの記録用として必要な空きクラスタを確保することが出来たか否かを判定する。判定の結果、必要な空きクラスタを確保することが出来た場合（Ｙの場合）、当該空きクラスタにデータを記録するため空きクラスタの検索を終了する（ＥＮＤに処理を進める）。
【００６１】
（Ｓ６０７）ステップＳ６０７では、空きクラスタ検索番号を１増加させる。増加後、ステップＳ６０８に処理を進める。
【００６２】
（Ｓ６０８）ステップＳ６０８では、ステップＳ６０７の増加により空きクラスタ番号が最終クラスタ番号を超えたか否かを判定する。判定の結果、最終クラスタ番号を超えたと判定された場合（Ｙの場合）、ステップＳ６０９に処理を進める。最終クラスタ番号を超えていないと判定された場合（Ｎの場合）、ステップＳ６０４に処理を戻す。
【００６３】
（Ｓ６０９）ステップＳ６０９では、記録媒体上にまだ確保していない空きクラスタがあるかどうかを判定する。判定の結果、空きクラスタがない場合（Ｙの場合）、データを記録することが出来ないものとして処理を終了する（ＥＮＤに処理を進める）。空きクラスタがある場合（Ｎの場合）、ステップＳ６１０に処理を進める。
【００６４】
（Ｓ６１０）ステップＳ６１０では、空きクラスタ検索番号に「２」をセットする。「２」をセットした後、クラスタの先頭から空きクラスタ検索を行うため、ステップＳ６０４に処理を戻す。
【００６５】
以上の処理によって、データ記録用の空きクラスタがあれば、データ記録することが出来る。
【００６６】
データの書き込み後、空きクラスタ候補番号を更新する必要がある。次に、次回の空きクラスタ検索のために、空きクラスタ候補番号４０１を更新する方法について説明する。
【００６７】
図７は、本実施形態における空きクラスタ候補番号４０１を更新する方法を示すフローチャートである。
【００６８】
（クラスタ確保後における空きクラスタ候補番号４０１の更新）
（ステップＳ７０１）ステップＳ７０１では、更新候補番号を設定する。具体的な処理としては、前述のデータ記録の確保した空きクラスタ列の中で、最大のクラスタ番号を更新候補番号とする。
【００６９】
（ステップＳ７０２）ステップＳ７０２では、前述のデータ記録の空きクラスタの確保のために利用したヒント情報が高速記録用ヒント４０３であったか否かを判定する。判定の結果、高速記録用ヒント４０３であった場合（Ｙの場合）、ステップＳ７０３に処理を進める。また、高速記録用ヒント４０３でなかった場合（Ｎの場合）、ステップＳ７０４に処理を進める。
【００７０】
（ステップＳ７０３）ステップＳ７０３では、設定されている更新候補番号を高速記録用ヒント４０３にセットする。
【００７１】
（ステップＳ７０４）ステップＳ７０４では、設定されている更新候補番号が高速記録用ヒントよりも大きいか否かを判定する。判定の結果、大きいと判定された場合（Ｙの場合）、ステップＳ７０５に処理を進める。大きいと判定されなかった場合（Ｎの場合）、ステップＳ７０６に処理を進める。
【００７２】
（ステップＳ７０５）ステップＳ７０５では、設定されている更新候補番号を高速記録用ヒントにセットする。
【００７３】
（ステップＳ７０６）ステップＳ７０６では、低速記録用ヒントに更新候補番号をセットする。
【００７４】
（クラスタが解放された際のヒント更新方法）
空きクラスタ候補番号４０１は、クラスタが解放された時にも更新する必要がある。クラスタは、メモリカード１０９上のファイルやディレクトリを削除した際や、ファイルのデータを短く編集する際などに解放される。クラスタ解放時の空きクラスタ候補番号４０１を更新する方法を、図８のフローチャートを用いて説明する。
【００７５】
（ステップＳ８０１）ステップＳ８０１では、更新候補番号を特定する。具体的な処理としては、一連の操作で解放されたクラスタの最低のクラスタ番号を更新候補番号とする。特定した後、ステップＳ８０２に処理を進める。
【００７６】
（ステップＳ８０２）ステップＳ８０２では、更新候補番号が低速記録用ヒントより小さいか否か判定する。判定の結果、低速記録用ヒントより小さいと判定された場合（Ｙの場合）、ステップＳ８０３に処理を進める。一方、更新候補番号が低速記録用ヒントより小さいと判定されなかった場合（Ｎの場合）、処理を終了させる（ＥＮＤに処理を進める）。これは、高速記録用ヒント４０３はクラスタ解放時には更新しないというものである。
【００７７】
（ステップＳ８０３）ステップＳ８０３では、低速記録用ヒントに更新候補番号をセットする。以上が、本実施形態におけるクラスタが解放された際のヒント更新方法である。
【００７８】
上述の通り、本実施形態では、空きクラスタを検索するためのヒント情報を書き込むデータの種別によって使い分ける。よって、メモリカード１０９の前方のフラグメントしやすい領域とメモリカード１０９の後方のフラグメントが無い領域とを使い分けることになる。
【００７９】
フラグメントしやすい領域ではメモリカード１０９へのアクセスは非効率になるため、アクセス効率を考慮しなくてよいデータを記録するために用いる。一方、フラグメントが無い領域ではアクセスが効率的に行えるので、アクセス効率を考慮すべきデータを記録するために用いる。これにより、アクセス効率を考慮すべきデータについては記録媒体に対して効率的なアクセスを可能にし、それ以外のデータについては記録媒体のフラグメントを抑制するように記録することが可能になる。コンピュータに上述の各機能を実現させるコンピュータプログラムによって実現することも可能である。
【００８０】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
2016009274.tif 000003
【図２】
2016009274.tif 000004
【図３】
2016009274.tif 000005
【図４】
2016009274.tif 000006
【図５】
2016009274.tif 000007
【図６】
2016009274.tif 000008
【図７】
2016009274.tif 000009
【図８】
2016009274.tif 000010