(57)【要約】【課題】磁気ディスク等へのアクセス回数を抑えることにより、処理速度の向上を図ることができるＦＡＴ領域のキャッシュ方法を提供する。【解決手段】磁気ディスク１０の管理情報領域のＦＡＴ１３の情報を記憶する内部ＲＡＭ２０内に、磁気ディスク１０のＭセクタ分記憶可能なキャッシュ領域２１を設け、このキャッシュ領域２１にＦＡＴ１３からＭセクタ単位で読み出した連続するＭセクタの情報を記憶させ、このキャッシュ領域２１の情報に基づいて磁気ディスク１０のデータ領域１５に対するアクセスを行う。これにより、１セクタ単位でＦＡＴ１３を読み出す処理に比べて記憶媒体へのアクセス回数が減少し、処理速度が向上する【選択図】図１
2008134777.tif 000002
【特許請求の範囲】
【請求項１】
保存するデータを格納するデータ領域と該データ領域に保存されたデータの格納位置を管理するファイル割当テーブルとを有する記憶媒体に対して、前記データ領域に格納されたデータにアクセスするためにキャッシュメモリを設け、前記ファイル割当テーブルの情報を前記キャッシュメモリに記憶するファイル割当テーブルのキャッシュ方法であって、
前記記憶媒体の最小アクセス単位であるセクタのデータをＭ（但し、Ｍは複数）セクタ分記憶可能な記憶領域を有するキャッシュメモリを設け、前記ファイル割当テーブルにアクセスするときに、アクセス対象の情報が格納されるセクタから連続してＭ個のセクタにアクセスすることを特徴とするファイル割当テーブルのキャッシュ方法。
【請求項２】
前記キャッシュメモリは、Ｍセクタ分記憶できる記憶領域を、同時に処理する複数のファイルに応じてＮ（但し、Ｎは複数）個有することを特徴とする請求項１記載のファイル割当テーブルのキャッシュ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、磁気ディスク装置等の記憶媒体に格納するデータを管理するＦＡＴ(File  Allocation  Table：ファイル割当テーブル)のキャッシュ方法に関するものである。
【背景技術】
【０００２】
磁気ディスク等の記憶媒体の記憶領域に格納するデータの管理は、ファイルシステムによって実現されている。従来のファイルシステムの１つであるＦＡＴファイルシステムは、パーソナルコンピュータ等の情報処理装置で一般的に用いられているもので、ファイルを構成するデータの物理的な格納位置をＦＡＴと呼ばれるテーブルで管理するという特徴を持っている。
【０００３】
ＦＡＴファイルシステムでは、記憶媒体の物理的な最小アクセス単位をセクタと呼び、連続する複数のセクタをまとめたクラスタと呼ぶ単位で、ファイルを構成するデータを管理している。このクラスタの状態を記憶しておくために、記憶媒体上のクラスタと１：１に対応するエントリ（開始位置）を持つ管理テーブルが用意されており、これをＦＡＴと呼んでいる。
【０００４】
図２（ａ）〜（ｄ）は、従来のＦＡＴファイルシステムにおける記憶領域内のデータ構造の一例を示す図である。
【０００５】
図２（ａ）に示すように、このＦＡＴファイルシステムでは、磁気ディスク等における記憶領域の論理アドレスの先頭に管理情報領域を設け、その後方にデータ領域を設けている。管理情報領域は、ＭＢＲ(Master  Boot  Record)，ＢＰＢ(BIOS  Parameter  Block)，ＦＡＴ１，ＦＡＴ２，及びディレクトリエントリで構成されている。
【０００６】
ＭＢＲは、ＯＳ(Operating System)を磁気ディスクから読み込んで起動するプログラムであるブート・ローダを読み出すプログラムが書き込まれた領域である。ＢＰＢは、システム起動時に最初に読み込まれる領域（ブートセクタ）に書き込まれた、１クラスタ当たりのセクタ数等のその磁気ディスクの物理的な属性が記述された領域である。ＦＡＴ１，ＦＡＴ２は、ファイルに含まれるデータの物理的な格納位置を示す重要な領域であることから、同一内容が二重化されて格納されるようになっている。
【０００７】
ディレクトリエントリは、図２（ｂ）に示すように、ファイル毎にそのファイルサイズやファイルを構成するデータの先頭部分が格納されているクラスタのクラスタ番号（開始クラスタ番号）等の情報を格納したものである。図２（ｂ）に例示したディレクトリエントリは、“ＦＩＬＥ１．ＴＸＴ”というファイル名と、“１０”という開始クラスタ番号と、“６０ｋＢ（キロバイト）”というファイルサイズで構成されている。これは、ＦＩＬＥ１．ＴＸＴという名前のファイルを構成するデータの先頭は、１０番のクラスタに格納されており、ファイルを構成する全データのサイズの合計が６０ｋＢであることを示している。
【０００８】
ファイルサイズが大きくて１つのクラスタでは格納しきれない場合、開始クラスタ番号で示されるクラスタに続くクラスタの番号を特定するための情報は、図２（ｃ）に示すように、ＦＡＴ上のリンク情報で示される。
【０００９】
図２（ｃ）のＦＡＴには、各クラスタ番号に対応したフィールドであるＦＡＴエントリが設けられており、各ＦＡＴエントリには、対応するクラスタが既にデータの記憶領域として使用されているか否かの区分と、使用されている場合には、そのデータに続く次のデータが記憶されているクラスタの番号が格納される。なお、後続先のクラスタがない場合、ＦＡＴエントリには、終端を意味する値として例えば０ｘＦＦＦ（但し、０ｘは１６進数を意味する）が格納される。
【００１０】
図２（ｃ）の例では、１０番のクラスタに対応するＦＡＴエントリに“１１”が格納されているので、１０番のクラスタは、１１番のクラスタにリンクしていることになる。同様に、１１番のクラスタに対応するＦＡＴエントリには“１２”が、１２番のクラスタに対応するＦＡＴエントリには“１３”がそれぞれ格納されており、１０番、１１番、１２番、１３番のクラスタが、この順にリンクされていることになる。１３番のクラスタに対応するＦＡＴエントリには０ｘＦＦＦが格納されているが、これはリンクの終端を意味しているので、この１３番のクラスタでファイルのデータが終了することになる。
【００１１】
また、１４番のクラスタに対応するＦＡＴエントリには“０”が格納されているが、これはそのクラスタがデータの記憶領域として使用されておらず、空き領域であることを意味している。
【００１２】
これにより、磁気ディスク等のデータ領域には、図２（ｄ）に示すように、ＦＩＬＥ１．ＴＸＴという名前のファイルを構成するデータが、４つのクラスタ１０〜１３に分割され、データ１、データ２、データ３及びデータ４として格納されていることが示される。
【００１３】
このようなＦＡＴファイルシステムでは、磁気ディスク等の記憶媒体にファイルを保存する場合、１セクタ単位でＦＡＴにアクセスし、空き領域となっているクラスタ番号を探し、データ領域の該当するクラスタにファイルのデータを保存すると共に、管理情報領域のディレクトリエントリとＦＡＴの情報を更新する。
【００１４】
【特許文献１】特開２００４−０１３２７６号公報
【特許文献２】特開２００４−１５７９９７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１５】
しかしながら、近年、デジタルオーディオやデジタルカメラで操作するファイルサイズは数ＭＢから数十ＭＢと巨大化しており、従来のような１セクタ単位でのＦＡＴの管理方法では、１つのファイルを保存する度に、ＦＡＴを更新するために磁気ディスク等へのアクセスが頻発する。このため、ファイルを保存したり読み出したりする処理に長大な時間がかかり、処理速度が低下するという課題があった。
【００１６】
本発明は、巨大化したファイルを処理する場合でも、磁気ディスク等へのアクセス回数を抑えることにより、処理速度の向上を図ることができるＦＡＴ領域のキャッシュ方法を提供することを目的としている。
【課題を解決するための手段】
【００１７】
本発明は、保存するデータを格納するデータ領域と該データ領域に保存されたデータの格納位置を管理するファイル割当テーブルとを有する記憶媒体に対して、前記データ領域に格納されたデータにアクセスするためにキャッシュメモリを設け、前記ファイル割当テーブルの情報を前記キャッシュメモリに記憶するファイル割当テーブルのキャッシュ方法において、前記記憶媒体の最小アクセス単位であるセクタのデータをＭ（但し、Ｍは複数）セクタ分記憶可能な記憶領域を有するキャッシュメモリを設け、前記ファイル割当テーブルにアクセスするときに、アクセス対象の情報が格納されるセクタから連続してＭ個のセクタにアクセスすることを特徴としている。
【発明の効果】
【００１８】
本発明では、ファイル割当テーブルの情報を記憶するキャッシュメモリにＭセクタ分記憶することができる記憶領域を設け、この記憶領域にファイル割当テーブルの連続するＭセクタ分の情報を記憶させるようにしている。これにより、従来の１セクタ単位の処理に比べて記憶媒体へのアクセス回数が減少し、処理速度が向上するという効果がある。
【発明を実施するための最良の形態】
【００１９】
この発明の前記並びにその他の目的と新規な特徴は、次の好ましい実施例の説明を添付図面と照らし合わせて読むと、より完全に明らかになるであろう。但し、図面は、もっぱら解説のためのものであって、この発明の範囲を限定するものではない。
【実施例１】
【００２０】
図１は、本発明の実施例を示す磁気ディスクのＦＡＴファイルシステムの構成図である。このＦＡＴファイルシステムは、磁気ディスク１０と、この磁気ディスク１０のＦＡＴ情報をコピーしてキャッシュとして使用するための内部ＲＡＭ(Random  Access  Memory)２０を有している。
【００２１】
磁気ディスク１０の記憶領域の論理アドレスの先頭には、ＭＢＲ１１、ＢＰＢ１２、ＦＡＴ１３、及びディレクトリエントリ１４で構成された管理情報領域が設けられ、その後方にデータ領域１５が設けられている。データ領域１５は、磁気ディスク１０の総記憶容量に応じて予め定められたセクタ数単位に区分され、その区分毎にクラスタ番号が順番に付与されている。
【００２２】
ＦＡＴ１３には、データ領域１５に設定されたクラスタ番号に対応するＦＡＴエントリが設けられており、各ＦＡＴエントリには、対応するクラスタがファイルのデータ記憶領域として使用されているか否かの区分と、使用されている場合には、そのデータに続く次のデータが記憶されているクラスタの番号が格納されるようになっている。なお、後続先のクラスタがない終端のクラスタの場合、そのＦＡＴエントリには、終端を意味する値として、０ｘＦＦＦが格納される。また、ファイルのデータの記憶領域として使用されていない、空き領域のクラスタに対応するＦＡＴエントリには、０ｘ０００が格納されている。
【００２３】
全クラスタを管理するためのＦＡＴエントリの情報量は１セクタに収まらないので、ＦＡＴ１３は、連続する複数のセクタにまたがって格納されているが、ＦＡＴ１３は、１セクタ単位でも連続した複数セクタ単位でも、任意にアクセスできるようになっている。なお、図１中には、ＦＡＴ１３を１セクタ単位に分割して、ＦＡＴ１３−１，ＦＡＴ１３−２，…，ＦＡＴ１３−ｎと記載している。
【００２４】
一方、内部ＲＡＭ２０は、データ処理のための作業用の記憶領域として使用されるものであるが、その一部の領域がＦＡＴ１３の情報をコピーしてキャッシュとして用いるためのキャッシュ領域２１として割り当てられている。このキャッシュ領域２１は、複数セクタ分のＦＡＴ１３の情報を記憶できる容量を有している。
【００２５】
次に、このようなＦＡＴファイルシステムを用いたＦＡＴ領域のキャッシュ方法について説明する。
【００２６】
先ず、システム起動時の初期設定により、磁気ディスク１０のＦＡＴ領域にアクセスするときに１回のアクセスで連続して読み書きするセクタ数Ｍ（但し、Ｍは２以上の整数）を設定すると共に、磁気ディスク１０のＦＡＴ領域に対応するＦＡＴ情報を、内部ＲＡＭ２０中に記憶しておくためのキャッシュ領域２１を確保する。なお、キャッシュ領域２１は、Ｍ×Ｎ（但し、Ｎは１以上の整数）セクタ分のＦＡＴ情報を記憶できる容量に設定する。
【００２７】
次に、磁気ディスク１０にファイルを保存する場合、磁気ディスク１０のＦＡＴ領域をＭセクタ単位で読み出してキャッシュ領域２１に記憶し、そのＦＡＴエントリから空き領域のクラスタを探す。探し出したデータ領域１５の空き領域のクラスタにファイルのデータを格納し、キャッシュ領域２１の該当するＦＡＴエントリには、格納したデータ領域に対応するクラスタ番号を書き込む。保存するファイルサイズが１クラスタで収まらない場合には、更に空き領域のクラスタに残りのデータを保存し、キャッシュ領域２１の該当するＦＡＴエントリにリンク情報を書き込む。
【００２８】
キャッシュ領域２１に記憶されたＦＡＴ情報により、対応するクラスタがすべてデータ記憶領域として使用されている状態となった時点で、このキャッシュ領域２１のＦＡＴ情報を、磁気ディスク１０の対応するＦＡＴ領域に書き戻す。更に、保存すべきデータが残っているときには、書き戻したＦＡＴ領域に続くＭセクタのＦＡＴ領域を磁気ディスク１０から読み出してキャッシュ領域２１に記憶し、同様の処理を継続する。
【００２９】
そして、保存対象のファイルのデータを磁気ディスク１０にすべて格納した後、この磁気ディスク１０の管理情報領域のディレクトリエントリ１４に、保存したファイルのファイル名、開始クラスタ番号、及びファイルサイズ等の情報を登録する。
【００３０】
磁気ディスク１０からファイルを読み出す場合、磁気ディスク１０の管理情報領域のディレクトリエントリ１４を読み出し、該当するファイルの開始クラスタ番号を調べる。この開始クラスタ番号に対応するＦＡＴエントリを有するＦＡＴ領域を先頭にして、磁気ディスク１０からＭセクタ分のＦＡＴ領域を読み出し、キャッシュ領域２１に記憶する。そして、キャッシュ領域２１に記憶されたＦＡＴエントリのリンク情報に基づいて、磁気ディスク１０のデータ領域１５から、目的のファイルのデータを読み出す。なお、磁気ディスク１０からキャッシュ領域２１に読み出したＭセクタ分のＦＡＴ領域のリンク情報で、目的のファイルをすべて読み出すことができない場合には、リンク情報に基づいて後続するＭセクタ分のＦＡＴ領域を読み出し、同様の処理を継続する。
【００３１】
磁気ディスク１０からファイルを削除する場合、磁気ディスク１０の管理情報領域のディレクトリエントリ１４を読み出し、該当するファイルの開始クラスタ番号を調べる。この開始クラスタ番号に対応するＦＡＴエントリを有するＦＡＴ領域を先頭にして、磁気ディスク１０からＭセクタ分のＦＡＴ領域を読み出し、キャッシュ領域２１に記憶する。そして、キャッシュ領域２１に保持されたＦＡＴエントリの内の該当するＦＡＴエントリを０ｘ０００に書き換えることにより、該当するファイルが格納されているクラスタ番号をＦＡＴエントリから消去する。その後、消去対象のファイルが格納されているクラスタ番号が消去されたキャッシュ領域２１の情報を、磁気ディスク１０の対応するＦＡＴ領域に書き戻す。
【００３２】
なお、磁気ディスク１０からキャッシュ領域２１に読み出したＭセクタ分のＦＡＴ領域のリンク情報で目的のファイルが格納されているクラスタ番号をすべて消去することができない場合には、リンク情報に基づいて後続するＭセクタ分のＦＡＴ領域を読み出し、同様の処理を継続する。そして、削除対象のファイルのＦＡＴ情報をすべて削除した後、磁気ディスク１０の管理情報領域のディレクトリエントリ１４から、削除したファイルのファイル名、開始クラスタ番号、及びファイルサイズ等の情報を抹消する。
【００３３】
なお、既存ファイルの更新は、更新後のファイルを保存し、その後、更新前のファイルを削除することで行うことができる。
【００３４】
以上のように、本実施例の磁気ディスクのＦＡＴファイルシステムは、磁気ディスク１０のＦＡＴ情報をコピーしてキャッシュとして使用するための内部ＲＡＭ２０に、複数セクタ（Ｍセクタ）分のＦＡＴ情報を記憶できる容量を有するキャッシュ領域２１を設け、複数セクタ単位で磁気ディスク１０のＦＡＴ１３にアクセスするようにしている。これにより、１セクタ単位に磁気ディスク１０のＦＡＴ１３にアクセスする場合に比べて、磁気ディスク１０へのアクセス回数が激減され、処理の高速化ができるという利点がある。
【００３５】
また、キャッシュ領域２１は、Ｍセクタ分のＦＡＴ情報をＮ個同時に保持できるように、Ｍ×Ｎセクタ分の容量に設定しているので、例えば同時にＮ個のファイルに対する処理を行うことができるという利点がある。
【００３６】
なお、本発明は、上記実施例に限定されず、種々の変形が可能である。この変形例としては、例えば、次のようなものがある。
（ａ）  ファイルの記憶媒体として磁気ディスク１０を例に説明したが、ＮＡＮＤ型フラッシュメモリやメモリスティック、ＳＤ(Secure  Digital)メモリカード等にも同様に適用可能である。
（ｂ）  磁気ディスク１０の管理情報領域のＦＡＴ１３やディレクトリエントリ１４の構成は、例示したものに限定されない。
【図面の簡単な説明】
【００３７】
【図１】本発明の実施例を示す磁気ディスクのＦＡＴファイルシステムの構成図である。
【図２】従来のＦＡＴファイルシステムにおける記憶領域内のデータ構造の一例を示す図である。
【符号の説明】
【００３８】
１０    磁気ディスク
１３    ＦＡＴ
１４    ディレクトリエントリ
１５    データ領域
２０    内部ＲＡＭ
２１    キャッシュ領域
【図１】
2008134777.tif 000003
【図２】
2008134777.tif 000004