(57)【要約】【課題】ファイルの容量によって、そのファイルを記憶するクラスタを動的に変更することで、記憶装置の容量を有効に使用できるファイル記憶装置を提供することを目的とする。【解決手段】第１の容量を有する複数のクラスタに分割された記憶媒体を有するファイル記憶装置であって、少なくとも１つのクラスタが、第１の容量よりも小さい第２の容量を有するサブクラスタに分割された、小ファイル用クラスタであるように、ファイル記憶装置を構成する。【選択図】図２
2010079593.tif 000002
【特許請求の範囲】
【請求項１】
第１の容量を有する複数のクラスタに分割された記憶媒体を有するファイル記憶装置であって、
少なくとも１つの前記クラスタが、前記第１の容量よりも小さい第２の容量を有するサブクラスタに分割された、小ファイル用クラスタであることを特徴とする、ファイル記憶装置。
【請求項２】
少なくとも１つの前記クラスタに、前記記憶媒体に含まれる各クラスタの管理情報であるＦＡＴ情報が記憶されており、
少なくとも１つの前記サブクラスタに、前記小ファイル用クラスタに含まれる各サブクラスタの管理情報であるクラスタＦＡＴ情報が記憶されていることを特徴とする、請求項１に記載のファイル記憶装置。
【請求項３】
前記ＦＡＴ情報に、システム情報を示す識別子、前記小ファイル用クラスタであることを示す識別子、後続するクラスタの識別子、または未使用であることを示す識別子のいずれか一が記憶され、前記クラスタＦＡＴ情報に、システム情報を示す識別子、後続するサブクラスタの識別子、または未使用であることを示す識別子のいずれか一が記憶されていることを特徴とする、請求項２に記載のファイル記憶装置。
【請求項４】
少なくとも１つの前記クラスタに、前記記憶媒体に記憶されるファイルの管理情報であるエントリ情報が記憶されていることを特徴とする、請求項２または３に記載のファイル記憶装置。
【請求項５】
前記エントリ情報に、ファイルの先頭が記憶されているクラスタまたはサブクラスタの識別子が含まれることを特徴とする、請求項４に記載のファイル記憶装置。
【請求項６】
前記小ファイル用クラスタのうち先頭のものの識別子を記憶する小ファイル用先頭クラスタ記憶部をさらに有することを特徴とする、請求項１ないし５に記載のファイル記憶装置。
【請求項７】
記憶されるべきファイルの容量が所定値よりも小さいかを判断する容量判断ステップと、
容量判断ステップで所定値よりも小さくないと判断されたときに、前記ファイルを、第１の容量を有するクラスタに記憶する通常ファイル記憶ステップと、
容量判断ステップで所定値よりも小さいと判断されたときに、前記ファイルを、前記クラスタに含まれ、かつ、前記第１の容量よりも小さい第２の容量を有するサブクラスタに記憶する小ファイル記憶ステップとを有することを特徴とする、ファイル記憶方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイル記憶装置に関し、詳細には記録媒体をサイズの異なる複数種類のクラスタに分割し、ファイルの容量により記憶するクラスタの種類を変更するファイル記憶装置に関する。
【背景技術】
【０００２】
ファイル記憶装置にファイルを記録するときには、高速なランダムアクセスを可能にするために、記録媒体に所定長のクラスタを構成してクラスタ単位で行われることがある。こうしたクラスタ単位で管理されるファイル記憶装置にファイルを記録する場合、あるクラスタの先頭からファイルを構成するデータを記録し、そのクラスタの容量を使い切ると、次に使用するクラスタを特定してそのクラスタに続きのデータを記録し、ファイルを構成するデータがなくなるまでこれを続ける。
【０００３】
そのようなファイル記憶装置では、図８に示すファイルシステムでファイル管理が行われる。図８において、（ａ）は所定長のクラスタで構成される記憶媒体、（ｂ）は記憶媒体を構成するクラスタＣＬ１に記憶される、ファイル記憶装置内の各クラスタの管理情報、（ｃ）は記憶媒体を構成するクラスタＣＬ２に記憶される、ファイル記憶装置に記憶される各ファイルの管理情報をそれぞれ表している。
【０００４】
このようにクラスタ単位で管理されるファイル記憶装置では、クラスタを小さくすると、ファイルを構成するクラスタのうち最後の１つに残る未使用領域の容量を減らすことができる。一方、クラスタを大きくすると、記録媒体へのアクセス回数が減るため、アクセス速度を上げることができる。したがって、容量の小さなファイルを多く扱うファイルシステムではクラスタを比較的小さく、容量の大きなファイルを多く扱うファイルシステムではクラスタを比較的大きくすることが一般的に行われている。
【０００５】
例えば動画をファイル記憶装置に記録する場合、動画をコード化したファイルの容量は一般に、非常に大きいものになる。このとき、クラスタを小さくすると、１つのファイルの記録ないし読み出しごとのアクセス回数が多くなるため、動画の記録ないし再生が途切れてしまう。よって、動画を記録するためには、クラスタを大きくするのが好ましい。
【０００６】
しかし、動画記憶用にクラスタを大きく構成したファイル記憶装置に、動画以外の比較的容量の小さいファイルを記憶するようにシステムを構成する場合がある。例えば、時間、情報元、出演者といった、記憶した動画に関連する情報を同一のファイル記憶装置に記憶するような場合である。このとき、動画以外の比較的容量の小さいファイルについては、一部を使っただけで大きなクラスタ全体を使用してしまうので、記憶装置の容量を有効に使用することができない。
【０００７】
かかる問題を解決するために、特許文献１では、記憶媒体を複数のパーティションに区切り、それぞれのクラスタの大きさを異ならせて、記憶されるファイルの容量に応じて格納先を変更するファイルシステムドライバが開示されている。
【０００８】
【特許文献１】特開２０００−３５７１１２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
特許文献１に記載のファイルシステムドライバを使用すると、容量の大きいファイルと小さいファイルとを効率的に格納することが可能となる。しかし、クラスタの大きさの異なる領域は最初に設定されており、例えばクラスタを小さく設定された領域をすべて使用してしまった後は、容量の小さいファイルを、クラスタを大きく設定された領域に記憶することになり、記憶装置の容量を有効に使用することができなくなるという問題を生ずる。
【００１０】
そこで、本発明は、ファイルの容量によって、そのファイルを記憶するクラスタを動的に変更することで、記憶装置の容量を有効に使用できるファイル記憶装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明のファイル記憶装置は、第１の容量を有する複数のクラスタに分割された記憶媒体を有するファイル記憶装置であって、少なくとも１つのクラスタが、第１の容量よりも小さい第２の容量を有するサブクラスタに分割された、小ファイル用クラスタであることを特徴とする。
【００１２】
本発明のファイル記憶方法は、記憶されるべきファイルの容量が所定値よりも小さいかを判断する容量判断ステップと、容量判断ステップで所定値よりも小さくないと判断されたときに、ファイルを、第１の容量を有するクラスタに記憶する通常ファイル記憶ステップと、容量判断ステップで所定値よりも小さいと判断されたときに、ファイルを、クラスタに含まれ、かつ、第１の容量よりも小さい第２の容量を有するサブクラスタに記憶する小ファイル記憶ステップとを有することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、ファイルの容量によって、そのファイルを記憶するクラスタを動的に変更し、記憶装置の容量を有効に使用できるファイル記憶装置を提供することができる。
【発明を実施するための最良の形態】
【００１４】
以下、図面を参照して本発明を実施するための最良の形態について詳細に説明する。本発明のファイル記憶装置の概略を説明すると、ファイル記憶装置は、図１に示すように記憶媒体を有し、図２に示すように記憶媒体にファイル情報を記憶させて、図３ないし図７に示す処理を行うことにより、容量の大きなファイルであっても小さなファイルであっても効率よく記憶することができるものである。
【００１５】
図１は、本発明のファイル記憶装置の構成を示す図である。図１を参照すると、本発明のファイル記憶装置１は、記憶媒体２、書込部３、読出部４、入出力部５、制御部６および小ファイル用先頭クラスタ記憶部７を有する。ファイル記憶装置１は、例えば図示しない情報処理装置に接続され、情報処理装置で作成される情報をファイルとして記憶する外付けハードディスクドライブ装置であるが、情報処理装置と連携して動作するよう一体に構成してもよい。
【００１６】
記憶媒体２は、情報をファイルとして記憶し、要求されたファイルの情報を返す。具体的には、ハードディスク、光ディスク、磁気テープ、フラッシュメモリといった不揮発性メモリにより構成可能である。書込部３は、記憶媒体２にファイルを書き込み、読出部４は記憶媒体２からファイルを読み出す。具体的には、ハードディスクや磁気テープといった記憶媒体においては磁気ヘッド、光ディスクにおいては光ピックアップ、フラッシュメモリにおいてはコントローラが該当する。
【００１７】
入出力部５は、書込部３が記憶媒体２に書き込むべき情報の入力を受け、読出部４が記憶媒体２から読み出した情報を出力する。入出力部５は、具体的には、専用ＬＳＩや所定のプログラムを実行するマイクロプロセッサにより構成可能である。制御部６は、ファイル記憶装置１の全体の動作を制御し、特に書込部３による記憶媒体２への書き込みにあたって、どのような情報をどのクラスタに書き込むかを制御する。制御部６は、具体的には、専用ＬＳＩや所定のプログラムを実行するマイクロプロセッサにより構成可能である。
【００１８】
小ファイル用先頭クラスタ記憶部７は、後述する小ファイル記憶用クラスタのうち、先頭のもののクラスタに対してアクセスするための情報を記憶する。小ファイル用先頭クラスタに対してアクセスするための情報とは、例えば対象となるクラスタのクラスタ番号や、記憶媒体２において当該クラスタを示す番地などである。小ファイル用先頭クラスタ記憶部７は、具体的には、読み出し専用メモリ（ＲＯＭ）、フラッシュメモリ、ハードディスクドライブ装置などの不揮発性メモリによって構成可能である。
【００１９】
次に、図２を参照して、ファイル記憶装置１において記憶される情報とその配置について説明する。図２は、本発明のファイル記憶装置１の記憶媒体２におけるクラスタの記憶内容を示す図である。ここで、（ａ）は所定長のクラスタで構成される記憶媒体２、（ｂ）は記憶媒体２を構成するクラスタＣ―１に記憶される、ファイル記憶装置１内の各クラスタの管理情報、（ｃ）は記憶媒体２を構成するクラスタＣ―２に記憶される、ファイル記憶装置に記憶される各ファイルの管理情報、（ｄ）は小ファイル記憶用クラスタＣ―４、（ｅ）は小ファイル記憶用クラスタＣ―４を構成するサブクラスタＳＣ４−１に記憶される、クラスタＣ−４内の各サブクラスタの管理情報をそれぞれ表している。
【００２０】
図２（ａ）を参照すると、記憶媒体２は、所定長のクラスタＣ−１からＣ−nまでのn個のクラスタに分割されている。図２（ａ）を見ると、各クラスタの管理情報（ＦＡＴ情報）がクラスタＣ−１に、ファイル管理情報（エントリ情報）がクラスタＣ−２およびＣ−３に書き込まれていることがわかる。また、クラスタＣ−４は小ファイル用に確保されており、ファイル２の内容はクラスタＣ−５とＣ−６にわたって書き込まれており、クラスタＣ−n-1およびＣ−nは未使用であって新たな情報を書き込み可能であることを示している。
【００２１】
図２（ｂ）は、クラスタＣ−１に書き込まれたＦＡＴ情報の内容を示している。図２（ｂ）を見ると、クラスタＣ−１からＣ−３までに対応する領域には、書き込まれたデータがファイルデータでないことを示す「システム情報」というデータが書き込まれているため、これらのクラスタにはファイルデータでないデータが書き込まれていることがわかる。本実施形態のファイル記憶装置において、システム情報とは、ＦＡＴ情報とエントリ情報とを指す。
クラスタＣ−４およびＣ−６に対応する領域にはファイル末尾を示す「ＥＯＦ」というデータが書き込まれているため、これらのクラスタにはファイルデータが書き込まれており、かつ、その続きの書き込まれたクラスタがないことがわかる。クラスタＣ−５に対応する領域にはクラスタ番号「６」というデータが書き込まれているため、このクラスタにはファイルデータが書き込まれていてその続きがクラスタＣ−６にあることがわかる。クラスタＣ−n-1およびＣ−nに対応する領域にはクラスタが使用されていないことを示す「未使用」というデータが書き込まれているため、これらのクラスタは未使用であって新たな情報を書き込み可能であることがわかる。
【００２２】
図２（ｃ）は、クラスタＣ−２に書き込まれたエントリ情報の内容を示している。図２（ｃ）を見ると、ファイル１は小ファイルであって５０ＫＢｙｔｅの容量をもち、２００８／０９／０５  １０：００：００に作成され、その先頭がサブクラスタＳＣ４−２にあることがわかり、ファイル２以降も同様に記憶されている。
【００２３】
図２（ｄ）は、小ファイル記憶用のクラスタであるクラスタＣ−４の内容を示している。図２（ｄ）を参照すると、クラスタＣ４は、所定長のサブクラスタＳＣ４−１からＳＣ４−mまでのm個のサブクラスタに分割されている。図２（ｄ）を見ると、サブクラスタＳＣ４−１に含まれるサブクラスタの管理情報であるクラスタＦＡＴ情報がサブクラスタＳＣ４−１に書き込まれている。また、ファイル１の内容はサブクラスタＳＣ４−２とＳＣ４−３にわたり、ファイル６の内容はサブクラスタＳＣ４−４に、ファイル８の内容はサブクラスタＳＣ４−５とＳＣ４−６にわたり書き込まれており、サブクラスタＳＣ４−m-1およびＳＣ４−mは未使用であって新たな情報を書き込み可能であることを示している。
【００２４】
図２（ｅ）は、サブクラスタＳＣ４−１に記憶される、クラスタＦＡＴ情報を示している。図２（ｅ）を参照すると、サブクラスタＳＣ４−１に対応する領域には「システム情報」というデータが書き込まれているため、このサブクラスタにファイルデータでないデータが書き込まれていることがわかる。
【００２５】
サブクラスタＳＣ４−２に対応する領域にはクラスタ番号とサブクラスタ番号とを併記して特定のサブクラスタを示す「４−３」というデータが書き込まれているため、このサブクラスタにはファイルデータが書き込まれていてその続きがサブクラスタＳＣ４−３にあることがわかる。
【００２６】
本実施形態では、サブクラスタの特定をクラスタ番号とサブクラスタ番号との併記によって行っているが、これに限らず、例えば小ファイル用クラスタのうちの先頭クラスタから数えた順番と、そのクラスタにおけるサブクラスタ番号との併記によってもよい。この特定方式によると、クラスタＣ−４は小ファイル用クラスタのうちの先頭であるため、サブクラスタＳＣ４−２に対応する領域には、「１−３」というデータが書き込まれることになる。この場合、クラスタＣ−２における、ファイル１のエントリ情報に含まれる先頭サブクラスタの位置は、「１−２」として書き込まれる。
【００２７】
サブクラスタＳＣ４−３、ＳＣ４−４およびＳＣ４−６に対応する領域には「ＥＯＦ」というデータが書き込まれているため、これらのサブクラスタにはファイルデータが書き込まれていてその続きの書き込まれたサブクラスタがないことがわかる。サブクラスタＳＣ４−５に対応する領域には「４−６」というデータが書き込まれているため、ファイルデータが書き込まれていてその続きがサブクラスタＳＣ４−６にあることがわかる。サブクラスタＳＣ４−m-1およびＳＣ４−mに対応する領域にはサブクラスタが使用されていないことを示す「未使用」というデータが書き込まれているため、これらのサブクラスタは未使用であって新たな情報を書き込み可能であることがわかる。
【００２８】
続いて、図３ないし図７を参照して、本実施形態のファイル記憶装置１のファイルデータ書込および読出動作を説明する。図３および図４は、クラスタ単位で記憶される標準ファイルの書込および読出動作を示し、図５ないし図７は、クラスタをさらに分割したサブクラスタ単位で記憶される小ファイルの書込および読出動作を示す。
【００２９】
まず、図３を参照して、標準ファイルの書込動作を説明する。ファイル記憶装置１の制御部６は、記憶すべきファイルが入出力部５に入力されると、指定されたファイル名でファイルをオープンする（ステップＳ１０１）。続いて、書込部３は、記憶すべきファイルに対応する情報をクラスタＣ−２に記憶されたエントリ情報に、追加して書き込む（ステップＳ１０２）。
【００３０】
次に、制御部６は、読出部４が読み出したＦＡＴ情報に基づいて、未使用クラスタを検索する（ステップＳ１０３）。ＦＡＴ情報は、本実施形態のファイル記憶装置１では、クラスタＣ−１に記憶される。続いて、書込部３は、ファイルの先頭クラスタを示すべき領域を、ステップＳ１０３で検索された未使用クラスタを特定する番号に更新された、記憶すべきファイルに対応するエントリ情報をクラスタＣ−２に書き込む（ステップＳ１０４）。
【００３１】
次に、書込部３は、検索された未使用クラスタに対応する領域のデータを「ＥＯＦ」に変更されたＦＡＴ情報をクラスタＣ−１に書き込む（ステップＳ１０５）。続いて、書込部３は、記憶すべきファイルの内容を、検索された未使用クラスタに書き込む（ステップＳ１０６）。
【００３２】
制御部６は、入力された記憶すべきファイルの内容がすべて書き込まれたかどうかを判断する（ステップＳ１０７）。ステップＳ１０７ですべて書き込まれたと判断されたとき、制御部６はファイルをクローズし（ステップＳ１０８）、書込処理を終了する。
【００３３】
ステップＳ１０７で、すべて書き込まれていないと判断されたとき、制御部６は、読出部４が読み出したＦＡＴ情報に基づいて、残りのファイル内容を書き込むための未使用クラスタを検索する（ステップＳ１０９）。続いて、書込部３は、ステップＳ１０６で書き込まれたクラスタに対応するＦＡＴ情報を、検索された未使用クラスタを特定する番号に更新してクラスタＣ−１に書き込む（ステップＳ１１０）。
【００３４】
その後、ステップＳ１０５からＳ１０７までの処理を、ステップＳ１０９で検索された新たな未使用クラスタについて行い、以下記憶すべきファイルの内容がすべて書き込まれるまで繰り返す。
【００３５】
次に、図４を参照して、標準ファイルの読出動作を説明する。ファイル記憶装置１の制御部６は、読み出すべきファイルが入出力部５に入力されると、指定されたファイル名でファイルをオープンする（ステップＳ２０１）。続いて、読出部４は、クラスタＣ−２からエントリ情報を読み出す（ステップＳ２０２）。
【００３６】
次に、読出部４は、読み出したエントリ情報で指定された、読み出すファイルの先頭クラスタの情報を読み出す（ステップＳ２０３）。続いて、読出部４は、読み出したクラスタに対応するＦＡＴ情報をクラスタＣ−１から読み出し、これが「ＥＯＦ」かどうかを判断する（ステップＳ２０４）。
【００３７】
ステップＳ２０４で、ＦＡＴ情報が「ＥＯＦ」であるとき、制御部６はファイルをクローズし(ステップＳ２０５)、読出処理を終了する。ステップＳ２０４でＦＡＴ情報が「ＥＯＦ」でないとき、ステップＳ２０３の処理を、読み出したＦＡＴ情報で指定された、続きのファイル内容の記憶されたクラスタについて行い、以下読み出したクラスタに対応するＦＡＴ情報が「ＥＯＦ」になるまで繰り返す。
【００３８】
次に、小ファイルの書込動作を説明する。図５を参照すると、小ファイルの書込動作は、書き込まれる単位がクラスタでなくサブクラスタであって、サブクラスタに対応するＦＡＴ情報がクラスタ単位に設けられるクラスタＦＡＴ情報である点を除くと、標準ファイルの書込動作とほぼ共通しているため、図５の説明は省略する。
【００３９】
図６は、図５のステップＳ３０３およびＳ３０９で行う未使用サブクラスタ検索を詳細に説明する図である。まず、読出部４は、小ファイル用先頭クラスタ記憶部７から、小ファイル用クラスタのうち先頭のものにアクセスする情報を読み出し、該当する小ファイル用クラスタを読み出す（ステップＳ４０１）。続いて、読出部４は、該当する小ファイル用クラスタからクラスタＦＡＴ情報を読み出す（ステップＳ４０２）。
【００４０】
次に、制御部６は、ステップＳ４０２で読み出したクラスタＦＡＴ情報に「未使用」と記憶された領域があるかどうかを判断する（ステップＳ４０３）。ステップＳ４０３で「未使用」と記憶された領域があったときは、制御部６は、その領域を未使用サブクラスタとして特定し、検索処理は終了する。
【００４１】
ステップＳ４０３で「未使用」と記憶された領域がないときは、読出部４は、次の小ファイル用クラスタを検索する（ステップＳ４０４）。具体的には、読出部４は、クラスタＦＡＴ情報に「未使用」と記憶された領域のない小ファイル用クラスタに対応するＦＡＴ情報を読み出し、そこに記憶されたクラスタ番号によって、次の小ファイル用クラスタを特定する。その後、新たに特定された小ファイル用クラスタに対してステップＳ４０２の処理を行う。
【００４２】
次に、小ファイルの読出動作を説明する。図７を参照すると、小ファイルの読出動作は、書き込まれる単位がクラスタでなくサブクラスタであって、サブクラスタに対応するＦＡＴ情報がクラスタ単位に設けられるクラスタＦＡＴ情報である点を除くと、標準ファイルの読出動作とほぼ共通しているため、図７の説明は省略する。
【００４３】
なお、ステップＳ１０３、Ｓ１０９における未使用クラスタ検索や、ステップＳ４０４における小ファイル用クラスタ検索において、記憶媒体２を検索しても該当クラスタが見つからなかった場合は、ファイル書込可能なクラスタがないことを意味する。このとき、制御部６がエラー処理を行うよう構成すると、ファイル記憶装置１の異常を検出することができて好適である。
【００４４】
以上のようにすることで、標準ファイルの小ファイルとの割合を事前に設定しなくても、両方のファイルを効率よく記憶するファイル記憶装置を構成することができる。
【図面の簡単な説明】
【００４５】
【図１】本発明のファイル記憶装置の構成を示す図である。
【図２】本発明のファイル記憶装置の記憶媒体におけるクラスタの記憶内容を示す図である。
【図３】本発明のファイル記憶装置における標準ファイルの書込動作を示す図である。
【図４】本発明のファイル記憶装置における標準ファイルの読出動作を示す図である。
【図５】本発明のファイル記憶装置における小ファイルの書込動作を示す図である。
【図６】本発明のファイル記憶装置における未使用サブクラスタ検索動作を示す図である。
【図７】本発明のファイル記憶装置における小ファイルの読出動作を示す図である。
【図８】従来技術のファイル記憶装置の記憶媒体におけるクラスタの記憶内容を示す図である。
【符号の説明】
【００４６】
１  ファイル記憶装置
２  記憶媒体
３  書込部
４  読出部
５  入出力部
６  制御部
７  小ファイル用先頭クラスタ記憶部
【図１】
2010079593.tif 000003
【図２】
2010079593.tif 000004
【図３】
2010079593.tif 000005
【図４】
2010079593.tif 000006
【図５】
2010079593.tif 000007
【図６】
2010079593.tif 000008
【図７】
2010079593.tif 000009
【図８】
2010079593.tif 000010