(57)【要約】【課題】記憶媒体へのデータの書込処理の処理効率を向上するのに好適なデータアクセスシステム、データアクセスプログラム及びデータアクセス方法を提供する。【解決手段】データアクセスシステム１００を、空きクラスタ領域検出部１８で検出された第２記憶装置３００における空きクラスタ領域のアドレス連続性を解析するクラスタ連続性解析部１０と、第１記憶装置２００からデータファイルを読み出す読出部１２と、第２記憶装置３００の機種を特定する機種特定部１４と、第２記憶装置３００のメモリ容量値と所定閾値とを比較するメモリ容量比較部１６と、前記特定結果及び前記比較結果に基づき、第２記憶装置３００における、前記読み出したデータファイルのデータ量分の空きクラスタ領域を検出する空きクラスタ領域検出部１８と、前記検出結果又は前記解析結果に基づき、前記空きクラスタ領域にデータファイルを書き込む書込部２０とを含んだ構成とした。【選択図】図１
2008009688.tif 000002
【特許請求の範囲】
【請求項１】
複数の所定サイズの小メモリ領域に分割されたメモリ領域を有する記憶媒体の当該小メモリ領域毎のデータ記憶状態を示すメモリ管理情報に基づき、当該記憶媒体に対してデータアクセスを行うデータアクセスシステムであって、
第１記憶媒体の前記メモリ管理情報と、当該第１記憶媒体から読み出すデータの情報とに基づき、当該第１記憶媒体における前記データの格納された小メモリ領域のアドレスの連続性を解析する第１連続性解析手段と、
前記第１連続性解析手段の解析結果に基づき、前記第１記憶媒体から前記データの読み出しを行う読出手段と、
第２記憶媒体の前記メモリ管理情報と、前記読出手段で読み出したデータのデータ量の情報とに基づき、前記第２記憶媒体における前記データ量に応じた数の空き小メモリ領域を検出する空き小メモリ領域検出手段と、
前記空き小メモリ領域検出手段で検出した前記データ量に応じた数の空き小メモリ領域のアドレスの連続性を解析する第２連続性解析手段と、
前記第２連続性解析手段の解析結果に基づき、前記第２記憶媒体に前記データの書き込みを行う書込手段と、を備え、
前記読出手段は、前記第１記憶媒体における前記データの格納されたアドレスの連続する複数の小メモリ領域に対しては、最小アクセス回数となるデータ容量毎に当該複数の小メモリ領域分の前記データの読み出しを行うと共に、前記第１記憶媒体における他の小メモリ領域のアドレスと不連続となるアドレスの前記データの格納された小メモリ領域に対しては、当該小メモリ領域のサイズ毎に前記データの読み出しを行い、
前記書込手段は、前記データ量に応じた数の空き小メモリ領域におけるアドレスの連続する複数の空き小メモリ領域に対しては、最小アクセス回数となるデータ容量毎に当該複数の空き小メモリ領域分の前記データの書き込みを行うと共に、前記データ量に応じた数の空き小メモリ領域における、他の空き小メモリ領域のアドレスと不連続となるアドレスの空き小メモリ領域に対しては、当該小メモリ領域のサイズ毎に前記データの書き込みを行うことを特徴とするデータアクセスシステム。
【請求項２】
前記第２記憶媒体のメモリ容量に係る値と、所定閾値とを比較する比較手段を備え、
前記空き小メモリ領域検出手段は、前記第２記憶媒体のメモリ容量に係る値が前記所定閾値以上のときは、前記第２記憶媒体の空き小メモリ領域のうち前記データ量分のアドレスの連続した複数の空き小メモリ領域を検出するようになっており、
前記書込手段は、前記比較により、前記記憶媒体のメモリ容量に係る値が、前記所定閾値未満のときは、前記データ量に応じた数の空き小メモリ領域における前記アドレスの連続する複数の空き小メモリ領域に対して最小アクセス回数となるデータ容量毎に当該複数の空き小メモリ領域分の前記データの書き込みを行うと共に、前記データ量に応じた数の空き小メモリ領域における、他の空き小メモリ領域のアドレスと不連続となるアドレスの空き小メモリ領域に対して当該小メモリ領域のサイズ毎に前記データの書き込みを行い、前記所定閾値以上のときは、前記データ量分のアドレスの連続した複数の空き小メモリ領域に対して最小アクセス回数となるデータ容量毎に前記データの書き込みを行うことを特徴とする請求項１記載のデータアクセスシステム。
【請求項３】
前記第２記憶媒体の種類を特定する特定手段を備え、
前記書込手段は、前記特定手段で特定された前記第２記憶媒体の種類が、特定種類のものであるときに、前記比較処理の処理結果に基づき前記第１書込処理又は前記第２書込処理を選択的に実行し、前記特定種類以外のものであるときに、その種類に応じて、前記第１書込処理又は前記第２書込処理を固定的に実行することを特徴とする請求項２記載のデータアクセスシステム。
【請求項４】
前記記憶媒体は、その記憶領域を所定メモリサイズのセクタ単位に分割すると共に、１つ以上のセクタから構成されるクラスタ単位で区分けするＦＡＴ（File Allocation Table）型のフォーマットがされたものであり、
前記メモリ管理情報は、前記記憶媒体の有する、前記クラスタ単位のデータ記憶状態の情報から構成されるＦＡＴ（File Allocation Table）であり、
前記小メモリ領域は、前記クラスタ単位のメモリ領域であることを特徴とする請求項１乃至請求項３のいずれか１項に記載のデータアクセスシステム。
【請求項５】
複数の所定サイズの小メモリ領域に分割されたメモリ領域を有する記憶媒体の当該小メモリ領域毎のデータ記憶状態を示すメモリ管理情報に基づき、当該記憶媒体に対してデータアクセスを行うデータアクセスプログラムであって、
第１記憶媒体の前記メモリ管理情報と、当該第１記憶媒体から読み出すデータの情報とに基づき、当該第１記憶媒体における前記データの格納された小メモリ領域のアドレスの連続性を解析する第１連続性解析ステップと、
前記第１連続性解析ステップの解析結果に基づき、前記第１記憶媒体から前記データの読み出しを行う読出ステップと、
第２記憶媒体の前記メモリ管理情報と、前記読出ステップで読み出したデータのデータ量の情報とに基づき、前記第２記憶媒体における前記データ量に応じた空き小メモリ領域を検出する空き小メモリ領域検出ステップと、
前記空き小メモリ領域検出ステップで検出した空き小メモリ領域のアドレスの連続性を解析する第２連続性解析ステップと、
前記第２連続性解析ステップの解析結果に基づき、前記第２記憶媒体に前記データの書き込みを行う書込ステップとからなる処理をコンピュータに実行させるためのプログラムを含み、
前記読出ステップは、前記第１記憶媒体における前記データの格納されたアドレスの連続する複数の小メモリ領域に対しては、最小アクセス回数となるデータ容量毎に当該複数の小メモリ領域分の前記データの読み出しを行うと共に、前記第１記憶媒体における他の小メモリ領域のアドレスと不連続となるアドレスの前記データの格納された小メモリ領域に対しては、当該小メモリ領域のサイズ毎に前記データの読み出しを行い、
前記書込ステップは、前記データ量に応じた数の空き小メモリ領域における前記アドレスの連続する複数の空き小メモリ領域に対しては、最小アクセス回数となるデータ容量毎に当該複数の空き小メモリ領域分の前記データの書き込みを行うと共に、前記データ量に応じた数の空き小メモリ領域における、他の空き小メモリ領域のアドレスと不連続となるアドレスの空き小メモリ領域に対しては、当該小メモリ領域のサイズ毎に前記データの書き込みを行うことを特徴とするデータアクセスプログラム。
【請求項６】
複数の所定サイズの小メモリ領域に分割されたメモリ領域を有する記憶媒体の当該小メモリ領域毎のデータ記憶状態を示すメモリ管理情報に基づき、当該記憶媒体に対してデータアクセスを行うデータアクセス方法であって、
第１記憶媒体の前記メモリ管理情報と、当該第１記憶媒体から読み出すデータの情報とに基づき、当該第１記憶媒体における前記データの格納された小メモリ領域のアドレスの連続性を解析する第１連続性解析ステップと、
前記第１連続性解析ステップの解析結果に基づき、前記第１記憶媒体から前記データの読み出しを行う読出ステップと、
第２記憶媒体の前記メモリ管理情報と、前記読出ステップで読み出したデータのデータ量の情報とに基づき、前記第２記憶媒体における前記データ量に応じた空き小メモリ領域を検出する空き小メモリ領域検出ステップと、
前記空き小メモリ領域検出ステップで検出した空き小メモリ領域のアドレスの連続性を解析する第２連続性解析ステップと、
前記第２連続性解析ステップの解析結果に基づき、前記第２記憶媒体に前記データの書き込みを行う書込ステップと、を含み、
前記読出ステップは、前記第１記憶媒体における前記データの格納されたアドレスの連続する複数の小メモリ領域に対しては、最小アクセス回数となるデータ容量毎に当該複数の小メモリ領域分の前記データの読み出しを行うと共に、前記第１記憶媒体における他の小メモリ領域のアドレスと不連続となるアドレスの前記データの格納された小メモリ領域に対しては、当該小メモリ領域のサイズ毎に前記データの読み出しを行い、
前記書込ステップは、前記データ量に応じた数の空き小メモリ領域における前記アドレスの連続する複数の空き小メモリ領域に対しては、最小アクセス回数となるデータ容量毎に当該複数の空き小メモリ領域分の前記データの書き込みを行うと共に、前記データ量に応じた数の空き小メモリ領域における、他の空き小メモリ領域のアドレスと不連続となるアドレスの空き小メモリ領域に対しては、当該小メモリ領域のサイズ毎に前記データの書き込みを行うことを特徴とするデータアクセス方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶媒体とのデータアクセスを行うシステムに係り、特に、効率の良いデータアクセスを行うのに好適なデータアクセスシステム、データアクセスプログラム及びデータアクセス方法に関する。
【背景技術】
【０００２】
従来、ディスク型の記憶媒体（以下、記憶ディスクと称す）へのデータアクセス技術として、ＦＡＴ型のフォーマットを採用したＦＡＴファイルシステムがある。ＦＡＴファイルシステムでは、記憶ディスクの記憶領域を、数百〜数千バイトのセクタと呼ばれる単位で分割する。そして、１つ以上の連続したセクタを１つにまとめたクラスタと呼ばれる単位を基本のアクセス単位としている。記憶ディスクの記憶容量（メモリサイズ）によって、ＦＡＴのタイプ（ＦＡＴ１２、ＦＡＴ１６、ＦＡＴ３２など）とクラスタサイズが決められる。また、ＦＡＴ型のフォーマットがされた記憶ディスクには、特定位置に、ＦＡＴ（File Allocation Table）が格納される。ＦＡＴは、ファイルを格納するのに、記憶ディスク上のどのクラスタがどのような順番で利用されているかをファイル１つ１つについて記憶したデータテーブルである。
【０００３】
このＦＡＴファイルシステムにおいては、記憶ディスクに対してデータ（ファイル）の読み出し及び書き込みをクラスタ単位で行うため、クラスタサイズが小さく且つファイルサイズが大きいような場合に、アクセス回数が多くなるため、処理効率が低下してしまうという問題があった。
このような問題を解決する技術として、特許文献１に記載のファイルシステムなどがある。
【０００４】
特許文献１のファイルシステムは、記憶メディアのファイルのデータ配置をクラスタ単位で管理する管理エリアの情報（ＦＡＴ）に基づき、記憶メディアの連続する空きクラスタの領域を予め検索してその位置情報（先頭アドレスなど）をデータテーブル化する。そして、記憶メディアにファイル（データ）の書き込みを行う際には、前記データデーブルを参照して、記憶するファイルの容量を満たす連続する空きクラスタ領域を検出し、当該検出したクラスタ領域にファイルを連続して書き込みする。
【特許文献１】特開２００２−９１８０６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記特許文献１の従来技術においては、ファイルの書込時において、連続している空きクラスタの領域のみにデータを書き込むため、不連続となっている空きクラスタの領域が使用されないことになる。そのため、不連続となる空きクラスタが多いような場合や、メモリサイズの比較的小さい記憶メディアにおいては、メモリの使用効率が大幅に悪化してしまうといった問題が生じる。この問題については、特許文献１の中でも述べられており、この問題に対して、高速アクセスを必要としないときは通常のクラスタ単位のアクセスで処理を行うと記載されている。
【０００６】
また、上記特許文献１の従来技術においては、記憶メディアの容量に関係なく上記したデータの連続書込処理を行うため、例えば、メモリ容量が比較的小さい記憶メディアについては、連続する空きクラスタがほとんど無い状態にも関わらず、上記したテーブル化処理や、構造体の更新処理等の処理が行われるため、処理効率が低下する恐れがある。
そこで、本発明は、このような従来の技術の有する未解決の課題に着目してなされたものであって、記憶媒体へのデータの書込処理の処理効率を改善すると共に、メモリの使用効率を考慮した適切な書込処理方法でデータの書込処理を行うことが可能なデータアクセスシステム、データアクセスプログラム及びデータアクセス方法を提供することを目的としている。
【課題を解決するための手段】
【０００７】
〔形態１〕  上記目的を達成するために、形態１のデータアクセスシステムは、
複数の所定サイズの小メモリ領域に分割されたメモリ領域を有する記憶媒体の当該小メモリ領域毎のデータ記憶状態を示すメモリ管理情報に基づき、当該記憶媒体に対してデータアクセスを行うデータアクセスシステムであって、
第１記憶媒体の前記メモリ管理情報と、当該第１記憶媒体から読み出すデータの情報とに基づき、当該第１記憶媒体における前記データの格納された小メモリ領域のアドレスの連続性を解析する第１連続性解析手段と、
前記第１連続性解析手段の解析結果に基づき、前記第１記憶媒体から前記データの読み出しを行う読出手段と、
第２記憶媒体の前記メモリ管理情報と、前記読出手段で読み出したデータのデータ量の情報とに基づき、前記第２記憶媒体における前記データ量に応じた数の空き小メモリ領域を検出する空き小メモリ領域検出手段と、
前記空き小メモリ領域検出手段で検出した前記データ量に応じた数の空き小メモリ領域のアドレスの連続性を解析する第２連続性解析手段と、
前記第２連続性解析手段の解析結果に基づき、前記第２記憶媒体に前記データの書き込みを行う書込手段と、を備え、
前記読出手段は、前記第１記憶媒体における前記データの格納されたアドレスの連続する複数の小メモリ領域に対しては、最小アクセス回数となるデータ容量毎に当該複数の小メモリ領域分の前記データの読み出しを行うと共に、前記第１記憶媒体における他の小メモリ領域のアドレスと不連続となるアドレスの前記データの格納された小メモリ領域に対しては、当該小メモリ領域のサイズ毎に前記データの読み出しを行い、
前記書込手段は、前記データ量に応じた数の空き小メモリ領域におけるアドレスの連続する複数の空き小メモリ領域に対しては、最小アクセス回数となるデータ容量毎に当該複数の空き小メモリ領域分の前記データの書き込みを行うと共に、前記データ量に応じた数の空き小メモリ領域における、他の空き小メモリ領域のアドレスと不連続となるアドレスの空き小メモリ領域に対しては、当該小メモリ領域のサイズ毎に前記データの書き込みを行うことを特徴としている。
【０００８】
このような構成であれば、第１連続性解析手段によって、第１記憶媒体の前記メモリ管理情報と、当該第１記憶媒体から読み出すデータの情報とに基づき、当該第１記憶媒体における前記データの格納された小メモリ領域のアドレスの連続性を解析することが可能であり、読出手段によって、前記第１連続性解析手段の解析結果に基づき、前記第１記憶媒体における前記データの格納されたアドレスの連続する複数の小メモリ領域に対しては、最小アクセス回数となるデータ容量毎に当該複数の小メモリ領域分の前記データの読み出しを行うと共に、前記第１記憶媒体における他の小メモリ領域のアドレスと不連続となるアドレスの前記データの格納された小メモリ領域に対しては、当該小メモリ領域のサイズ毎に前記データの読み出しを行うことが可能である。
【０００９】
また、空き小メモリ領域検出手段によって、第２記憶媒体の前記メモリ管理情報と、前記読出手段で読み出したデータのデータ量の情報とに基づき、前記第２記憶媒体における前記データ量に応じた数の空き小メモリ領域を検出することが可能であり、第２連続性解析手段によって、前記空き小メモリ領域検出手段で検出した前記データ量に応じた数の空き小メモリ領域のアドレスの連続性を解析することが可能であり、前記書込手段によって、前記第２連続性解析手段の解析結果に基づき、前記データ量に応じた数の空き小メモリ領域におけるアドレスの連続する複数の空き小メモリ領域に対しては、最小アクセス回数となるデータ容量毎に当該複数の空き小メモリ領域分の前記データの書き込みを行うと共に、前記データ量に応じた数の空き小メモリ領域における、他の空き小メモリ領域のアドレスと不連続となるアドレスの空き小メモリ領域に対しては、当該小メモリ領域のサイズ毎に前記データの書き込みを行うことが可能である。
【００１０】
従って、読出対象のデータがアドレスの連続する小メモリ領域に格納されている場合に、その領域のデータ量分のデータが最小アクセス回数で読み出されるので、データの読み出し効率を向上することができる。また、データ量に応じた数の空き小メモリ領域における、アドレスの連続する複数の空き小メモリ領域に対しては、その領域のデータ量分のデータが最小アクセス回数で書き込まれる。また、データ量に応じた数の空き小メモリ領域における、他の空き小メモリ領域のアドレスと不連続となるアドレスの空き小メモリ領域に対しては、小メモリ領域のデータサイズ毎のデータの書込みが行われる。
【００１１】
これによって、小メモリ領域のデータサイズごとにデータのアクセスを行うシステム（例えば、ＦＡＴファイルシステムなど）に本形態を適用することで、アドレスの連続する複数の空き小メモリ領域（例えば、クラスタ領域）ではデータの読出及び書込におけるアクセス回数を減らすことができるので、第１記憶媒体からのデータの読出処理効率及び第２記憶媒体への当該読み出したデータの書込処理効率を向上することができるという効果が得られる。また、アドレスが不連続となる孤立した空き小メモリ領域に対してもデータの書込みを行うので、メモリの使用効率を悪化させずに、書込処理の処理効率を向上することができるという効果が得られる。つまり、第１記憶媒体から第２記憶媒体へのデータ複写処理の効率を向上することができる。
【００１２】
ここで、記憶媒体は、ＲＡＭ等の半導体記憶媒体、ＦＤ、ＨＤ等の磁気記憶型記憶媒体、ＤＶＤＲＡＭ等の光学的記憶型／光学的読取方式記憶媒体、ＭＯ等の磁気記憶型／光学的読取方式記憶媒体であって、電気的、磁気的、光学的等の書き込み方法／読み取り方法のいかんにかかわらず、あらゆる記憶媒体を含むものである。以下のデータアクセスプログラムの形態及びデータアクセス方法の形態について同じである。
【００１３】
また、メモリ管理情報は、例えば、公知のＦＡＴファイルシステムなどにおけるＦＡＴなどであり、各小メモリ領域の位置情報と、データの格納された各小メモリ領域の接続情報（例えば、ＦＡＴファイルシステムにおけるＦＡＴエントリ値）などを含んで構成されるものである。以下のデータアクセスプログラムの形態及びデータアクセス方法の形態について同じである。
【００１４】
また、最小アクセス回数とは、記憶媒体へのデータ読出処理及びデータ書込処理において、本形態を適用するシステムが一度に転送できる最大データ転送量以内のデータ量によるアクセスで、対象データの読み出し又は書き込みが完了するのに必要なアクセス回数のうち最小となるものである。例えば、書込手段は、各小メモリ領域が５１２バイトで連続する４つの小メモリ領域が検出され、且つ対象データが１Ｍバイトで、最大データ転送量が２０４８バイトである場合に、この連続する４つの小メモリ領域に対しては、対象データの２０４８バイト分のデータを１回のアクセス（最小アクセス回数）で書き込むこととなる。なお、読み出しについても同様である。以下のプログラムの形態及び方法の形態において同じである。以下のデータアクセスプログラムの形態及びデータアクセス方法の形態について同じである。
【００１５】
また、アドレスの連続性を解析するとは、例えば、１つのデータファイルが、複数の小メモリ領域に渡って分割して格納されているときに、これら小メモリ領域の位置を管理するアドレス（番号）が、連続したアドレスとなっているか否か等を当該小メモリ領域のアドレス値から演算等によって判定することである。この解析結果としては、例えば、データファイルを書き込む各小メモリ領域のアドレスの連続、不連続の情報の他、当該各小メモリ領域に対する書き込み方法の情報などとなる。以下のデータアクセスプログラムの形態及びデータアクセス方法の形態について同じである。
【００１６】
〔形態２〕  更に、形態１のデータアクセスシステムは、形態１のデータアクセスシステムにおいて、
前記第２記憶媒体のメモリ容量に係る値と、所定閾値とを比較する比較手段を備え、
前記空き小メモリ領域検出手段は、前記第２記憶媒体のメモリ容量に係る値が前記所定閾値以上のときは、前記第２記憶媒体の空き小メモリ領域のうち前記データ量分のアドレスの連続した複数の空き小メモリ領域を検出するようになっており、
前記書込手段は、前記比較により、前記記憶媒体のメモリ容量に係る値が、前記所定閾値未満のときは、前記データ量に応じた数の空き小メモリ領域における前記アドレスの連続する複数の空き小メモリ領域に対して最小アクセス回数となるデータ容量毎に当該複数の空き小メモリ領域分の前記データの書き込みを行うと共に、前記データ量に応じた数の空き小メモリ領域における、他の空き小メモリ領域のアドレスと不連続となるアドレスの空き小メモリ領域に対して当該小メモリ領域のサイズ毎に前記データの書き込みを行い、前記所定閾値以上のときは、前記データ量分のアドレスの連続した複数の空き小メモリ領域に対して最小アクセス回数となるデータ容量毎に前記データの書き込みを行うことを特徴としている。
【００１７】
このような構成であれば、比較手段によって、前記記憶媒体のメモリ容量に係る値と、所定閾値とを比較することが可能であり、前記空き小メモリ領域検出手段は、前記記憶媒体のメモリ容量に係る値が前記所定閾値以上のときは、前記記憶媒体の空き小メモリ領域のうち前記データ量分のアドレスの連続した複数の空き小メモリ領域を検出することが可能である。
【００１８】
更に、前記書込手段は、前記比較により、前記記憶媒体のメモリ容量に係る値が、前記所定閾値未満のときは、前記データ量に応じた数の空き小メモリ領域における前記アドレスの連続する複数の空き小メモリ領域に対して最小アクセス回数となるデータ容量毎に当該複数の空き小メモリ領域分の前記データの書き込みを行うと共に、前記データ量に応じた数の空き小メモリ領域における、他の空き小メモリ領域のアドレスと不連続となるアドレスの空き小メモリ領域に対して当該小メモリ領域のサイズ毎に前記データの書き込みを行う第１書込処理を実行し、前記所定閾値以上のときは、前記データ量分のアドレスの連続した複数の空き小メモリ領域に対して最小アクセス回数となるデータ容量毎に前記データの書き込みを行う第２書込処理を実行することが可能である。
【００１９】
従って、例えば、記憶媒体の総メモリ容量（あるいは残りメモリ容量）が８Ｇバイト以下のときは、上記第１書込処理を実行してメモリの使用効率を考慮し、総メモリ容量が８Ｇバイトよりも大きいときは、上記第２書込処理を実行して書込処理の効率を高めることが可能である。これによって、記憶媒体の総メモリ容量（あるいは残りメモリ容量）に応じた適切な書込処理方法でデータの書き込みを行うことができるという効果が得られる。
ここで、メモリ容量に係る値は、前述したように、記憶媒体の総メモリ容量、記憶媒体の記憶可能な残りメモリ容量などである。以下のプログラム及び方法の形態についても同様である。
【００２０】
また、所定閾値は、書込対象の記憶媒体のメモリ容量に係る値によって変わり、例えば、大容量の記憶媒体を書込対象とする場合は、第２書込処理を適用するのに適切なメモリ容量を基準に、例えば、８Ｇバイト〜１０Ｇバイトなどのメモリ容量を示す値となる。つまり、書き込むデータ量が大きいときには、上記第２書込処理を用いた方が書込処理にかかる時間が大幅に低減するので、例えば、ＨＤＤなどの１０Ｇバイト以上の大容量の記憶媒体に対しては、そのメモリ容量に余裕があることから、メモリの使用効率よりも書込効率を重視して上記第２書込処理を実行するようにする。一方、例えば、カード型の記憶媒体や組込系の製品システムに搭載される記憶媒体などの１０Ｇバイトよりも小さいメモリ容量（例えば、数Ｋバイト〜数Ｇバイト）の記憶媒体に対しては、上記第１書込処理を用いることで、書込効率だけでなくメモリの使用効率も考慮した書込処理を実行するようにする。以下のプログラム及び方法の形態についても同様である。
【００２１】
〔形態３〕  更に、形態３のデータアクセスシステムは、形態２のデータアクセスシステムにおいて、
前記第２記憶媒体の種類を特定する特定手段を備え、
前記書込手段は、前記特定手段で特定された前記第２記憶媒体の種類が、特定種類のものであるときに、前記比較処理の処理結果に基づき前記第１書込処理又は前記第２書込処理を選択的に実行し、前記特定種類以外のものであるときに、その種類に応じて、前記第１書込処理又は前記第２書込処理を固定的に実行することを特徴としている。
【００２２】
このような構成であれば、特定手段によって、前記記憶媒体の種類を特定することが可能であり、前記書込手段は、前記特定手段で特定された記憶媒体の種類が、特定種類のものであるときに、前記比較処理の処理結果に基づき前記第１書込処理又は前記第２書込処理を選択的に実行し、前記特定種類以外のものであるときに、その種類に応じて、前記第１書込処理又は前記第２書込処理を固定的に実行することが可能である。
【００２３】
従って、例えば、特定種類以外で且つメモリ容量の比較的多いＨＤＤなどであれば、上記第２書込処理を固定的に実行し、例えば、特定種類以外で且つ組込系の製品システムに搭載される記憶媒体などのメモリ容量の比較的小さいもの（例えば、数Ｋバイト〜数Ｍバイト）などであれば、上記第１書込処理を固定的に実行することが可能である。更に、例えば、記憶媒体が特定種類のリムーバブルディスク（例えば、メモリ容量が数Ｋバイト〜数Ｇバイトの中間的な容量のもの）などである場合は、そのメモリ容量に応じて、上記第１書込処理及び第２書込処理のいずれか一方を選択して実行することが可能である。
これによって、記憶媒体の種類及び容量に応じて、上記第１書込処理及び上記第２書込処理を固定的及び選択的に実行することができるので、より効率的な書込み処理を実行することができるという効果が得られる。
【００２４】
〔形態４〕  更に、形態４のデータアクセスシステムは、形態１のデータアクセスシステムにおいて、
前記記憶媒体は、その記憶領域を所定メモリサイズのセクタ単位に分割すると共に、１つ以上のセクタから構成されるクラスタ単位で区分けするＦＡＴ（File Allocation Table）型のフォーマットがされたものであり、
前記メモリ管理情報は、前記記憶媒体の有する、前記クラスタ単位のデータ記憶状態の情報から構成されるＦＡＴ（File Allocation Table）であり、
前記小メモリ領域は、前記クラスタ単位のメモリ領域であることを特徴としている。
このような構成であれば、公知のＦＡＴファイルシステムに対応した記憶媒体に対して、より効率的な書込処理を実行できるという効果が得られる。
【００２５】
〔形態５〕  一方、上記目的を達成するために、形態５のデータアクセスプログラムは、
複数の所定サイズの小メモリ領域に分割されたメモリ領域を有する記憶媒体の当該小メモリ領域毎のデータ記憶状態を示すメモリ管理情報に基づき、当該記憶媒体に対してデータアクセスを行うデータアクセスプログラムであって、
第１記憶媒体の前記メモリ管理情報と、当該第１記憶媒体から読み出すデータの情報とに基づき、当該第１記憶媒体における前記データの格納された小メモリ領域のアドレスの連続性を解析する第１連続性解析ステップと、
前記第１連続性解析ステップの解析結果に基づき、前記第１記憶媒体から前記データの読み出しを行う読出ステップと、
第２記憶媒体の前記メモリ管理情報と、前記読出ステップで読み出したデータのデータ量の情報とに基づき、前記第２記憶媒体における前記データ量に応じた空き小メモリ領域を検出する空き小メモリ領域検出ステップと、
前記空き小メモリ領域検出ステップで検出した空き小メモリ領域のアドレスの連続性を解析する第２連続性解析ステップと、
前記第２連続性解析ステップの解析結果に基づき、前記第２記憶媒体に前記データの書き込みを行う書込ステップとからなる処理をコンピュータに実行させるためのプログラムを含み、
前記読出ステップは、前記第１記憶媒体における前記データの格納されたアドレスの連続する複数の小メモリ領域に対しては、最小アクセス回数となるデータ容量毎に当該複数の小メモリ領域分の前記データの読み出しを行うと共に、前記第１記憶媒体における他の小メモリ領域のアドレスと不連続となるアドレスの前記データの格納された小メモリ領域に対しては、当該小メモリ領域のサイズ毎に前記データの読み出しを行い、
前記書込ステップは、前記データ量に応じた数の空き小メモリ領域における前記アドレスの連続する複数の空き小メモリ領域に対しては、最小アクセス回数となるデータ容量毎に当該複数の空き小メモリ領域分の前記データの書き込みを行うと共に、前記データ量に応じた数の空き小メモリ領域における、他の空き小メモリ領域のアドレスと不連続となるアドレスの空き小メモリ領域に対しては、当該小メモリ領域のサイズ毎に前記データの書き込みを行うことを特徴としている。
【００２６】
このような構成であれば、コンピュータによってプログラムが読み取られ、読み取られたプログラムに従ってコンピュータが処理を実行すると、請求項１記載のデータアクセスシステムと同等の作用及び効果が得られる。
【００２７】
〔形態６〕  一方、上記目的を達成するために、形態６のデータアクセス方法は、
複数の所定サイズの小メモリ領域に分割されたメモリ領域を有する記憶媒体の当該小メモリ領域毎のデータ記憶状態を示すメモリ管理情報に基づき、当該記憶媒体に対してデータアクセスを行うデータアクセス方法であって、
第１記憶媒体の前記メモリ管理情報と、当該第１記憶媒体から読み出すデータの情報とに基づき、当該第１記憶媒体における前記データの格納された小メモリ領域のアドレスの連続性を解析する第１連続性解析ステップと、
前記第１連続性解析ステップの解析結果に基づき、前記第１記憶媒体から前記データの読み出しを行う読出ステップと、
第２記憶媒体の前記メモリ管理情報と、前記読出ステップで読み出したデータのデータ量の情報とに基づき、前記第２記憶媒体における前記データ量に応じた空き小メモリ領域を検出する空き小メモリ領域検出ステップと、
前記空き小メモリ領域検出ステップで検出した空き小メモリ領域のアドレスの連続性を解析する第２連続性解析ステップと、
前記第２連続性解析ステップの解析結果に基づき、前記第２記憶媒体に前記データの書き込みを行う書込ステップと、を含み、
前記読出ステップは、前記第１記憶媒体における前記データの格納されたアドレスの連続する複数の小メモリ領域に対しては、最小アクセス回数となるデータ容量毎に当該複数の小メモリ領域分の前記データの読み出しを行うと共に、前記第１記憶媒体における他の小メモリ領域のアドレスと不連続となるアドレスの前記データの格納された小メモリ領域に対しては、当該小メモリ領域のサイズ毎に前記データの読み出しを行い、
前記書込ステップは、前記データ量に応じた数の空き小メモリ領域における前記アドレスの連続する複数の空き小メモリ領域に対しては、最小アクセス回数となるデータ容量毎に当該複数の空き小メモリ領域分の前記データの書き込みを行うと共に、前記データ量に応じた数の空き小メモリ領域における、他の空き小メモリ領域のアドレスと不連続となるアドレスの空き小メモリ領域に対しては、当該小メモリ領域のサイズ毎に前記データの書き込みを行うことを特徴としている。
これによって、形態１のデータアクセスシステムと同等の作用及び効果が得られる。
【発明を実施するための最良の形態】
【００２８】
以下、本発明の実施の形態を図面に基づき説明する。図１〜図１１は、本発明に係るデータアクセスシステム、データアクセスプログラム及びデータアクセス方法の実施の形態を示す図である。
まず、本発明に係るデータアクセスシステムの構成を図１に基づき説明する。図１は、本発明に係るデータアクセスシステム１００の機能構成を示すブロック図である。
【００２９】
データアクセスシステム１００は、図１に示すように、データファイルを読み出す側の記憶装置であるＦＡＴ（File Allocation Table）型のフォーマットがされた第１記憶装置２００と、当該第１記憶装置２００から読み出したデータファイルを書き込む側の記憶装置である同じくＦＡＴ型のフォーマットがされた第２記憶装置３００とそれぞれデータ授受可能に接続されており、第１記憶装置２００に格納されたデータファイルを読み出し、当該読み出したデータファイルを第２記憶装置３００に書き込む複写処理を実行する機能を有している。
【００３０】
第１記憶装置２００は、その記憶領域がクラスタと呼ばれる所定メモリ量単位の複数の小メモリ領域に分割される公知のＦＡＴ型のフォーマットが施された構成をしており、その特定のクラスタ領域に、第１ＦＡＴが格納されている。ここで、第１ＦＡＴは、記憶領域に格納されたデータファイルが各クラスタにどのように格納されているかを示す情報から構成されるデータテーブルである。この第１ＦＡＴを参照することで、複数クラスタ分のデータ量のファイル（データ）が、どのようなクラスタアドレスのクラスタ領域に格納されているかを簡易に知ることが可能である。これにより、前記ファイルがそれぞればらばらのクラスタアドレスのクラスタ領域に格納されているか、その一部又は全部が連続するクラスタアドレスのクラスタ領域に格納されているかなどが解る。
【００３１】
第２記憶装置３００は、第１記憶装置２００と同様に、公知のＦＡＴ型のフォーマットが施された構成をしており、その特定のクラスタ領域に、第２ＦＡＴが格納されている。第２ＦＡＴは、第１ＦＡＴと同様に、記憶領域に格納されたデータファイルが各クラスタにどのように格納されているかを示す情報から構成されるデータテーブルである。
ここで、上記第１記憶装置２００及び上記第２記憶装置３００は、それぞれ、メモリ容量に関する情報（以下、メモリ容量情報と称す）を記憶領域の特定クラスタに有している。なお、本実施の形態において、メモリ容量情報は、総メモリ容量の情報、空きメモリ容量の情報などを含む。
【００３２】
また、図１に示す各ブロック間の各種データの流れは、第１記憶装置２００をデータファイルの複写元（データファイルの読み出し先）とし、第２記憶装置３００をデータファイルの複写先（前記読み出したデータファイルの書き込み先）とした場合の流れを示すものである。従って、例えば、データアクセスシステム１００の組み込まれたデバイスのオンボードメモリ等の記憶装置から、例えば、外部接続されたカード型メモリへとデータファイルを複写する場合は、オンボードメモリが第１記憶装置２００となり、カード型メモリが第２記憶装置３００となる。これとは逆に、外部接続されたカード型メモリからオンボードメモリへとデータファイルを複写する場合は、カード型メモリが第１記憶装置２００となり、オンボードメモリが第２記憶装置３００となる。
【００３３】
また、この例に限らず、データアクセスシステム１００の組み込まれたデバイスの有する２つの記憶装置間や、データアクセスシステム１００の組み込まれたデバイスに外部接続された２つの記憶装置間であっても、データアクセスシステム１００によってデータアクセス処理が実行されるのであれば、データファイルの複写元が第１記憶装置２００となり、データファイルの複写先が第２記憶装置３００となる。
【００３４】
データアクセスシステム１００は、更に、第１記憶装置２００における読出対象データファイルの格納されたクラスタ領域のアドレス連続性を解析すると共に、後述する空きクラスタ領域検出部１８で検出された第２記憶装置３００における空きクラスタ領域のアドレス連続性を解析するクラスタ連続性解析部１０と、クラスタ連続性解析部１０の解析結果に基づき、第１記憶装置２００に格納された読出対象データファイルを読み出す読出部１２とを含んだ構成となっている。
【００３５】
クラスタ連続性解析部１０は、第１記憶装置２００の有する第１ＦＡＴ（File Allocation Table）に基づき、読出対象データファイルの格納されたクラスタ領域のクラスタアドレスの連続性を解析する機能を有している。具体的には、読出対象データファイルの格納された複数のクラスタ領域について、第１ＦＡＴに基づいて、各クラスタのアドレスが連続しているか否かを解析（判定）し、その解析結果の情報を生成する。解析結果の情報は、読出部１２に渡される。
【００３６】
読出部１２は、クラスタ連続性解析部１０の解析結果に基づき、第１記憶装置２００の読出対象データファイルの格納されたクラスタ領域から当該読出対象データファイルを読み出す機能を有している。具体的には、クラスタのアドレスが連続する領域に対しては、アクセス回数が最小となるクラスタ数分のデータ量毎にデータを読み出し、クラスタのアドレスが不連続となる孤立したクラスタ領域からは、各クラスタのデータ量毎に格納データを読み出す。
【００３７】
データアクセスシステム１００は、更に、第２記憶装置３００の機種を特定する機種特定部１４と、第２記憶装置３００のメモリ容量値と所定閾値とを比較するメモリ容量比較部１６と、前記特定結果及び前記比較結果に基づき、第２記憶装置３００における読出部１２で読み出したデータファイルのデータ量分の空きクラスタ領域を検出する空きクラスタ領域検出部１８と、空きクラスタ領域検出部１８の検出結果又はクラスタ連続性解析部１０の解析結果に基づき、前記検出した空きクラスタ領域に前記読み出したデータファイルを書き込む書込部２０とを含んだ構成となっている。
【００３８】
機種特定部１４は、第２記憶装置３００を駆動するデバイスドライバから、当該第２記憶装置３００の機種に関する情報（以下、機種情報と称す）を取得し、当該取得した機種情報に基づき、第２記憶装置３００のメモリの種類を特定する機能を有している。ここで、機種情報は、ＨＤＤ、ＳＤカード、ＣＦ（コンパクトフラッシュ（登録商標））カード、ＳＭＴメディア（登録商標）、ＯＦＭ（Onboard Flash Memory）などの第２記憶装置３００のメモリの種類を示す情報などが含まれる。
【００３９】
メモリ容量比較部１６は、機種特定部１４の特定結果に基づき、第２記憶装置３００が特定機種（以下、機種１（例えば、３２Ｍバイト〜数Ｇバイトクラスのメモリ）と称す）であるときに、当該第２記憶装置３００の有するメモリ容量情報を取得し、当該取得した情報に基づき、第２記憶装置３００のメモリの総容量（またはメモリ残量）が所定閾値以上となるか否かを判定する機能を有している。
【００４０】
空きクラスタ領域検出部１８は、第２記憶装置３００の有する第２ＦＡＴを取得し、機種特定部１４の特定結果が、機種１ではなく、機種２（例えば、数Ｋバイト〜数Ｍバイトクラスのメモリ）であるときは、前記取得した第２ＦＡＴに基づき、前述した読出部１２で読み出したデータ量分の空きクラスタ領域を、空いているアドレス順に、連続、不連続に関係なく検出する。また、機種特定部１４の特定結果が、機種１ではなく、機種３（例えば、数１０Ｇバイト〜数１００Ｇバイトクラスのメモリ）であるときは、前記取得した第２ＦＡＴに基づき、前述した読出部１２で読み出したデータ量分の空きクラスタ領域を、空いているアドレスのうち、前記データ量分のアドレスの連続する空きクラスタ領域を検出する（データ量分に満たない不連続なアドレスの空きクラスタ領域は飛ばす）。
【００４１】
また、空きクラスタ領域検出部１８は、機種特定部１４の特定結果が、機種１で且つ第２記憶装置３００が所定閾値未満のメモリ容量であるときは、前述した機種２と同様の方法で空きクラスタ領域を検出し、機種特定部１４の特定結果が、機種１で且つ第２記憶装置３００が所定閾値以上のメモリ容量であるときは、前述した機種３と同様の方法で空きクラスタ領域を検出する。
【００４２】
なお、本実施の形態においては、上記特定結果が機種１で且つ上記判定結果が所定閾値以上のときと、上記特定結果が機種３のときは、検出した空きクラスタの情報をクラスタ連続性解析部１０を介さずに書込部２０に渡すようになっている。
書込部２０は、クラスタ連続性解析部１０からの解析結果に基づき、読出部１２で読み出したデータファイルを、アドレスの連続する空きクラスタには、最小アクセス回数となるデータ量毎に書き込みを行い、アドレスの不連続となる孤立した空きクラスタには、クラスタのデータ量毎に書き込みを行う。また、空きクラスタ領域検出部１８から直接空きクラスタの情報を受け取ったときは、読出部１２で読み出したデータファイルを、アドレスの連続する空きクラスタに最小アクセス回数となるデータ量で書き込みを行う。
【００４３】
ここで、データアクセスシステム１００は、上記クラスタ連続性解析部１０、読出部１２、機種特定部１４、メモリ容量比較部１６、空きクラスタ領域検出部１８、書込部２０などにおける各処理をソフトウェア上で実現するためのコンピュータシステムを備えており、そのハードウェア構成は、図２に示すように、各種制御や演算処理を担う中央演算処理装置であるＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）６０と、主記憶装置（Ｍａｉｎ  Ｓｔｏｒａｇｅ）を構成するＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）６２と、読み出し専用の記憶装置であるＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）６４との間を各種内外バス６８で接続すると共に、このバス６８に入出力インターフェース（Ｉ／Ｆ）６６を介して、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）やカード型メモリなどの外部記憶装置（Ｓｅｃｏｎｄａｒｙ  Ｓｔｏｒａｇｅ）２００，３００や、ＣＲＴ、ＬＣＤモニター等の出力装置７２、操作パネルやマウス、キーボード、スキャナなどの入力装置７４、および図示しない外部装置などと通信するためのネットワークＬなどを接続したものである。
【００４４】
そして、電源を投入すると、ＲＯＭ６４等に記憶されたＢＩＯＳ等のシステムプログラムが、ＲＯＭ６４に予め記憶された各種専用のコンピュータプログラム、あるいは、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）などの記憶媒体を介して、またはインターネットなどの通信ネットワークＬを介して記憶装置２００，３００にインストールされた各種専用のコンピュータプログラムを同じくＲＡＭ６２にロードし、そのＲＡＭ６２にロードされたプログラムに記述された命令にしたがってＣＰＵ６０が各種リソースを駆使して所定の制御および演算処理を行うことで前述したような各部の各機能をソフトウェア上で実現できるようになっている。
【００４５】
次に、このような構成をしたデータアクセスシステム１００を用いたデータ複写処理の流れの一例を図３のフローチャート図に基づき説明する。ここで、図３は、データアクセスシステム１００におけるデータ複写処理を示すフローチャートである。
データ複写処理は、図３に示すように、まずステップＳ１００に移行し、データアクセスシステム１００において、第１記憶装置２００のデータファイルを第２記憶装置３００に複写（コピー）するコマンドである複写コマンドを受信したか否かを判定し、受信したと判定された場合(Yes)は、ステップＳ１０２に移行し、そうでない場合(No)は、受信するまで判定処理を繰り返す。
【００４６】
ステップＳ１０２に移行した場合は、クラスタ連続性解析部１０及び読出部１２において、第１記憶装置２００からの指定データファイルの読出処理を実行してステップＳ１０４に移行する。
ステップＳ１０４では、クラスタ連続性解析部１０、機種特定部１４、メモリ容量比較部１６、空きクラスタ領域検出部１８及び書込部２０において、読出部１２で読み出したデータファイルの第２記憶装置３００への書込処理を実行してステップＳ１０６に移行する。
【００４７】
ステップＳ１０６では、データアクセスシステム１００において、指定された全てのデータファイルの複写処理が終了したか否かを判定し、終了したと判定された場合(Yes)は、ステップＳ１００に移行し、そうでない場合(No)は、ステップＳ１０２に移行する。
更に、図４に基づき、データアクセスシステム１００におけるデータファイル読出処理の流れを説明する。ここで、図４は、データアクセスシステム１００におけるデータファイル読出処理を示すフローチャートである。
【００４８】
データファイル読出処理が実行されると、図４に示すように、まずステップＳ２００に移行し、クラスタ連続性解析部１０において、第１記憶装置２００の有する第１ＦＡＴを取得してステップＳ２０２に移行する。
ステップＳ２０２では、クラスタ連続性解析部１０において、指定された読出対象データ（データファイル）の格納されたクラスタアドレスの連続性を解析してステップＳ２０４に移行する。
【００４９】
ステップＳ２０４では、読出部１２において、ステップＳ２０２の解析結果に基づき、クラスタアドレスの連続するクラスタ領域については、最小アクセス回数となるデータ量毎にデータを読み出す最適読み出しを行い、クラスタアドレスの連続しない孤立したクラスタ領域については、当該クラスタのデータ量分毎にデータを読み出す通常読み出しを行ってステップＳ２０６に移行する。
【００５０】
ステップＳ２０６では、読出部１２において、読出対象データファイルの読み出しが完了したか否かを判定し、完了したと判定された場合(Yes)は、読み出したデータファイルを書込部２０に渡し、一連の処理を終了して元の処理に復帰する。
更に、図５に基づき、データアクセスシステム１００におけるデータファイル書込処理の流れを説明する。ここで、図５は、データアクセスシステム１００におけるデータファイル書込処理を示すフローチャートである。
【００５１】
データファイル書込処理が実行されると、図５に示すように、まずステップＳ３００に移行し、機種特定部１４において、第２記憶装置３００を駆動するデバイスドライバから機種情報を取得し、メモリ容量比較部１６において、第２記憶装置３００からメモリ容量情報を取得してステップＳ３０２に移行する。具体的に、第２記憶装置３００を駆動するために実行されるデバイスドライバ（ソフトウェア）に対して、機種情報を取得するためのコマンドを送信して、機種情報を取得する。
【００５２】
ステップＳ３０２では、機種特定部１４において、ステップＳ３００で取得した機種情報から第２記憶装置３００のメモリ種類を特定し、当該特定結果をメモリ容量比較部１６及び空きクラスタ領域検出部１８に渡してステップＳ３０４に移行する。
ステップＳ３０４では、メモリ容量比較部１６において、ステップＳ３０２の特定結果に基づき、第２記憶装置３００が特定種類（機種１）のメモリか否かを判定し、機種１であると判定された場合(Yes)は、ステップＳ３０６に移行し、そうでない場合（No)は、ステップＳ３２８に移行する。
【００５３】
ステップＳ３０６に移行した場合は、メモリ容量比較部１６において、ステップＳ３００で取得したメモリ容量情報と所定の閾値とを比較し、当該比較結果を空きクラスタ領域検出部１８に渡してステップＳ３０８に移行する。
ステップＳ３０８では、空きクラスタ領域検出部１８において、ステップＳ３０６の比較結果が所定の閾値以上である場合(Yes)は、ステップＳ３１０に移行し、そうでない場合(No)は、ステップＳ３１８に移行する。
【００５４】
ステップＳ３１０に移行した場合は、空きクラスタ領域検出部１８において、第２記憶装置３００から第２ＦＡＴを取得して、ステップＳ３１２に移行する。
ステップＳ３１２では、空きクラスタ領域検出部１８において、第２記憶装置３００に書き込むデータファイルのデータ量分のクラスタアドレスの連続する空きクラスタ領域を検出し、当該検出したクラスタアドレスの情報を書込部２０に渡してステップＳ３１４に移行する。
【００５５】
ステップＳ３１４では、書込部２０において、ステップＳ３１２で検出した空きクラスタ領域のクラスタアドレス情報に基づき、クラスタアドレスの連続する空きクラスタ領域に対して、最小アクセス回数となるデータ量毎にデータを書き込む最適書き込みを行って読出部１２で読み出されたデータファイルを空きクラスタ領域に書き込んでステップＳ３１６に移行する。
【００５６】
ステップＳ３１６では、書込部２０において、ステップＳ３１２で検出した空きクラスタ領域へのデータファイルの書き込みが完了したか否かを判定し、完了したと判定された場合(Yes)は、一連の処理を終了して元の処理に復帰し、そうでない場合(No)は、ステップＳ３１４に移行する。
一方、ステップＳ３０８において第２記憶装置３００のメモリ容量が閾値未満であるか、又はステップＳ３２８において第２記憶装置３００が機種２でありステップＳ３１８に移行した場合は、空きクラスタ領域検出部１８において、第２記憶装置３００から第２ＦＡＴを取得して、ステップＳ３２０に移行する。
【００５７】
ステップＳ３２０では、空きクラスタ領域検出部１８において、第２記憶装置３００に書き込むデータファイルのデータ量分の空きクラスタ領域を、クラスタアドレスの順番に検出し、当該検出したクラスタアドレスの情報をクラスタ連続性解析部１０に渡してステップＳ３２２に移行する。具体的には、データ量分を満たすまで、クラスタアドレスが連続するしないに関わらず、アドレスの順番に空きクラスタ領域を検出する。
【００５８】
ステップＳ３２２では、クラスタ連続性解析部１０において、ステップＳ３２０で検出した空きクラスタのクラスタアドレス情報に基づき、クラスタアドレスの連続性を解析し、当該解析結果を書込部２０に渡してステップＳ３２４に移行する。本実施の形態において、解析結果は、例えば、空きクラスタの各クラスタアドレスと書込方法（通常書き込み又は最適書き込み）とを対応付けた情報となる。
【００５９】
ステップＳ３２４では、書込部２０において、ステップＳ３２２の解析結果に基づき、クラスタアドレスの連続する２つ以上の空きクラスタ領域に対しては、上記最適書き込みを行い、クラスタアドレスの不連続となる孤立した空きクラスタ領域に対しては、当該クラスタのデータ量分毎にデータを書き込む通常書き込みを行って、読出部１２で読み出されたデータファイルを、ステップＳ３２０で検出した空きクラスタ領域に書き込んでステップＳ３２６に移行する。
【００６０】
ステップＳ３２６では、書込部２０において、ステップＳ３２０で検出した空きクラスタ領域へのデータファイルの書き込みが完了したか否かを判定し、完了したと判定された場合(Yes)は、一連の処理を終了して元の処理に復帰し、そうでない場合(No)は、ステップＳ３２４に移行する。
一方、ステップＳ３０４において、第２記憶装置３００が特定種類（機種１）のメモリではなくてステップＳ３２８に移行した場合は、メモリ容量比較部１６において、ステップＳ３０２の特定結果に基づき、第２記憶装置３００が低容量メモリ機種（機種２）のメモリか否かを判定し、機種２であると判定された場合(Yes)は、ステップＳ３１８に移行し、そうでない場合（No)は、ステップＳ３１０に移行する。
【００６１】
次に、図６〜図１１に基づき、本実施の形態の動作を説明する。
ここで、図６は、記憶装置の種類（機種）及びディスク容量に対する、書込処理方法（アルゴリズム）の一例を示す図である。また、図７は、第１記憶装置２００の第１ＦＡＴの一例を示す図である。また、図８は、第２記憶装置３００の第２ＦＡＴの一例を示す図である。また、図９は、連続及び不連続なクラスタ領域が混在したクラスタ領域への書込処理後の第２ＦＡＴの一例を示す図である。また、図１０は、全て不連続となるクラスタ領域への書込処理後の第２ＦＡＴの一例を示す図である。また、図１１は、全て連続となるクラスタ領域への書込処理後の第２ＦＡＴの一例を示す図である。
【００６２】
なお、ここでは、第１記憶装置２００のクラスタ領域のメモリサイズと、第２記憶装置３００のクラスタ領域のメモリサイズとが同一サイズであるとする。例えば、第１記憶装置２００が各クラスタ領域のサイズを「１０２４バイト」としてフォーマットしている場合は、第２記憶装置３００も各クラスタ領域のサイズを「１０２４バイト」としてフォーマットしているとする。
【００６３】
以下、第２記憶装置が機種１で且つそのメモリ容量が所定閾値以上であるとき、及び第２記憶装置が機種３であるときに行われる、クラスタアドレスの連続する空きクラスタ領域を検出し、当該検出した空きクラスタ領域に上記最適書き込みを行う書込処理アルゴリズムをアルゴリズムＡとする。また、第２記憶装置が機種１で且つそのメモリ容量が所定閾値未満であるとき、及び第２記憶装置が機種２であるときに、アドレス順に検出した空きクラスタ領域における、クラスタアドレスの連続する空きクラスタ領域に上記最適書き込みを行い、クラスタアドレスが不連続の孤立した空きクラスタ領域に上記通常書き込みを行う書込処理アルゴリズムをアルゴリズムＢとする。
【００６４】
ここでは、図６に示すように、記憶装置の機種と、そのメモリ容量に対して、アルゴリズムＡ及びアルゴリズムＢを固定的に用いるのか選択的に用いるのかが予め設定されている。各機種毎に設定されている、図６中の○がその機種に対してアルゴリズムＡ又はＢを固定的に用いることを示し、△がその機種に対してアルゴリズムＡ及びＢのいずれかを記憶装置のメモリ容量に応じて選択的に用いることを示し、×はその機種に対してアルゴリズムＡ又はＢを適用しないことを示す。
【００６５】
以下、上記のことを踏まえて、データアクセスシステム１００におけるデータファイル複写処理の実際の動作を説明する。
データアクセスシステム１００は、第１記憶装置２００の所定クラスタ位置に格納されたデータファイルを、第２記憶装置３００に複写するコマンドを受信すると（ステップＳ１００の「Ｙｅｓ」の分岐）、まず、複写コマンドで指定されたクラスタアドレス位置に格納されたデータファイルの読出処理に移行する（ステップＳ１０２）。
【００６６】
読出処理が開始されると、まず、クラスタ連続性解析部１０において、第１記憶装置２００の特定クラスタ領域に格納された第１ＦＡＴを取得する。
ここで、第１ＦＡＴは、図７に示すように、クラスタ番号（クラスタアドレス）と、各クラスタの連鎖関係を示すＦＡＴエントリの値とで構成されている。なお、ここでは、ＦＡＴの１エントリを１６ビットとしている。即ち、第１記憶装置２００は、ＦＡＴ１６の形式でフォーマットされていることとなる。
【００６７】
また、ＦＡＴエントリ値は、例えば、図７に示すように、クラスタ番号「０２ｈ」に対する値を見ると「ＥＯＦ（データファイルの最後を示す値で、実際のエントリ値は「ＦＦＦＦｈ」となる）」となっている。これは、データファイルが１クラスタだけで格納されていることを示す。また、クラスタ番号「０６ｈ〜０９ｈ」のＦＡＴエントリ値は、「０６ｈ」が「０７ｈ」となっているが、これは、クラスタ番号「０６ｈ」のクラスタに続くクラスタがクラスタ番号「０７ｈ」のクラスタであることを示している。また、クラスタ番号「０７ｈ」のＦＡＴエントリ値が「０８ｈ」、クラスタ番号「０８ｈ」のＦＡＴエントリ値が「０９ｈ」、クラスタ番号「０９ｈ」のＦＡＴエントリ値が「ＥＯＦ」となっているので、クラスタ番号「０７ｈ」のクラスタに「０８ｈ」のクラスタが、クラスタ番号「０８ｈ」のクラスタに「０９ｈ」のクラスタが続いており、クラスタ番号「０９ｈ」のクラスタがデータファイルの最後となることを示す。つまり、ＦＡＴエントリ値から、「０６ｈ〜０９ｈ」のクラスタ番号の連続する４つのクラスタ領域に１つのデータファイルが格納されていることが解る。
【００６８】
また、図７に示すように、「１Ａｈ」「１Ｃｈ」及び「１Ｅｈ」のＦＡＴエントリ値は、それぞれ、「１Ｃｈ」、「１Ｅｈ」及び「ＥＯＦ」となっている。この場合は、これら３つのクラスタが続いていることを示し、これら３つのクラスタに１つのデータファイルが格納されていることを示す。つまり、１つのデータファイルの格納されているクラスタ領域のクラスタ番号が不連続（ここでは１つ飛びとなっているが、１つ以上飛ぶこともある）となっている。これは、ＦＡＴ型フォーマットのファイルシステムにおいて特有の現象であり、クラスタ単位でデータの書き込みが行われるため、不定サイズのデータファイルの書き込み及び削除を何度も繰り返すことで、１つのデータファイルが、不連続なクラスタ番号のクラスタ領域に飛び飛びに格納されてしまう現象である。
【００６９】
なお、図７に示す、ＦＡＴエントリ値の設定されていないクラスタ番号（エントリ値が「−」となっているクラスタ番号）は、そのクラスタ領域が空き領域（未使用）であることを示す。
クラスタ連続性解析部１０は、第１ＦＡＴを取得すると、複写コマンドで指定された読出対象のデータファイルのクラスタアドレス値と第１ＦＡＴとに基づき、そのクラスタアドレスの連続性を解析する（ステップＳ２０２）。ここでは、図９に示すように、クラスタ番号「０６ｈ〜０９ｈ」のクラスタ領域に格納されたデータファイルを読み出すこととする。
【００７０】
図７に示す第１ＦＡＴにおけるクラスタ番号「０６ｈ〜０９ｈ」のクラスタ領域は、前述したように、そのＦＡＴエントリ値からアドレス番号が連続したクラスタ領域となっていることがわかる。従って、このクラスタ領域に対しては、上記したデータの最適読み出しが可能であることが解る。そこで、クラスタ連続性解析部１０は、読出対象データファイルの格納位置を示すクラスタ番号「０６ｈ〜０９ｈ」の情報と、このクラスタ番号のクラスタ領域に対して最適読み出しが可能であることを示す情報とを解析結果として生成し、これを読出部１２に渡す。
【００７１】
読出部１２は、クラスタ連続性解析部１０からの解析結果を受け取ると、この解析結果に基づき、図８（ａ）に示すように、第１記憶装置２００のクラスタ領域における、クラスタ番号「０６ｈ〜０９ｈ」に対応するクラスタ領域に格納されたデータを最適読み出しする（ステップＳ２０４）。ここでは、説明の便宜上、第１記憶装置２００から１度にデータ伝送可能な最大容量を８クラスタ分のデータ量とする。この場合は、読出対象のデータファイルが４クラスタ分のデータ量となるので、この４クラスタ分のデータを一括で読み出し、読み出し処理を完了する（ステップＳ２０６の「Ｙｅｓ」の分岐）。
このようにして、第１記憶装置２００から複写対象のデータファイルが読み出されると、データアクセスシステム１００は、次に、読み出したデータファイルの書込処理に移行する（ステップＳ１０４）。
【００７２】
書込処理が開始されると、機種特定部１４において、第２記憶装置３００を駆動するために実行されているデバイスドライバから機種情報を取得し、メモリ容量比較部１６において、第２記憶装置３００からメモリ容量情報を取得する（ステップＳ３００）。これらの情報は、デバイスドライバが予め機種を特定する明確な情報を有しており、且つ第２記憶装置３００の特定位置に予めメモリ容量を特定する明確な情報が記憶されている場合はそれらの情報を取得する。一方、明確な情報を有していない場合は、機種を特定可能な製品番号等の情報を取得したり、メモリ容量を解析する処理などを行ってその解析結果の情報を取得したりする。
【００７３】
ここでは、デバイスドライバが第２記憶装置３００の機種を特定する明確な情報を有しており、且つ第２記憶装置３００の特定アドレス位置にメモリ容量を特定する明確な情報が記憶されているとする。
機種特定部１４は、第２記憶装置３００から機種情報を取得すると、当該機種情報から第２記憶装置３００の機種を特定する（ステップＳ３０２）。
【００７４】
ここでは、第２記憶装置３００の機種を、図６に示すように、ＨＤＤ等の固定型の大容量記憶装置、ＣＦカード（登録商標）、ＳＤカード等の持ち運び可能な中間容量のカード型記憶装置、ＳＭＴメディア（登録商標）等の持ち運び可能な小容量記憶装置、ＯＦＭ（ＮＡＮＤ型、ＮＯＲ型）などの固定型の小容量記憶装置のいずれかに特定するようになっている。そして、上記した特定種類（機種１）の記憶装置を、ＣＦカード（登録商標）、ＳＤカード等の持ち運び可能な中間容量のカード型記憶装置とする。また、上記した機種２の記憶装置を、ＳＭＴメディア（登録商標）等の持ち運び可能な小容量記憶装置、及びＯＦＭ（ＮＡＮＤ型、ＮＯＲ型）などの固定型の小容量記憶装置とする。また、上記した機種３の記憶装置を、ＨＤＤ等の固定型の大容量記憶装置とする。
【００７５】
第２記憶装置３００が機種１であると特定されると（ステップＳ３０４の「Ｙｅｓ」の分岐）、次いで、メモリ容量比較部１６において、メモリ容量情報の示すメモリ容量（メモリの総容量またはメモリ残量）と、所定の閾値とを比較する（ステップＳ３０６）。例えば、メモリ容量情報の示すメモリ容量が２５６（単位はＭバイト）で、所定の閾値が５１２であるとする。この場合、メモリ容量情報の示すメモリ容量「２５６」は、所定の閾値である５１２より小さい値（所定の閾値未満）となるので（ステップＳ３０８の「Ｎｏ」の分岐）、空きクラスタ領域検出部１８は、アルゴリズムＡ及びＢのうち、アルゴリズムＢを用いた書込処理を選択し、まず、第２記憶装置３００から第２ＦＡＴを取得する（ステップＳ３１８）。
【００７６】
ここで、現在の第２ＦＡＴの状態は、図８に示すようになっているとする。
空きクラスタ領域検出部１８は、上記取得した第２ＦＡＴに基づき、読出部１２で読み出したファイルデータ（以下、書込対象データファイルと称す）のデータ量分の空きクラスタを検出する（ステップＳ３２０）。空きクラスタ領域検出部１８は、前述したようにアルゴリズムＢを選択しているので、図８に示す第２ＦＡＴの空きクラスタから、クラスタ番号の若い順に、書込対象データファイルのデータ量分（４クラスタ分）の空きクラスタを検出する。ここでは、図８に示す第２ＦＡＴから、クラスタ番号の若い順に、「０５ｈ」、「０７ｈ」、「０Ａｈ」及び「０Ｂｈ」の４つのクラスタ番号に対応する空きクラスタ領域を検出する。そして、この検出した空きクラスタ領域のクラスタ番号の情報をクラスタ連続性解析部１０に渡す。
【００７７】
クラスタ連続性解析部１０は、空きクラスタ領域検出部１８から、空きクラスタ領域のクラスタ番号（上記４つのクラスタ番号）の情報を受け取ると、当該クラスタ番号の情報に基づき、クラスタ番号の連続性を解析する（ステップＳ３２２）。
この場合は、空きクラスタ領域に対応する「０５ｈ」、「０７ｈ」、「０Ａｈ」及び「０Ｂｈ」の４つのクラスタ番号のうち、「０５ｈ」及び「０７ｈ」は、クラスタ番号が不連続となっており、「０Ａｈ」及び「０Ｂｈ」は、クラスタ番号が連続していることが解る。そこで、クラスタ連続性解析部１０は、クラスタ番号「０５ｈ」及び「０７ｈ」の情報と、これらのクラスタ領域に対してそれぞれ通常書き込みが可能であることを示す情報と、クラスタ番号「０Ａｈ」及び「０Ｂｈ」の情報と、これらのクラスタ領域に対して最適書き込みが可能であることを示す情報とを解析結果として生成し、これを書込部２０に渡す。
【００７８】
書込部２０は、クラスタ連続性解析部１０から上記解析結果を取得すると、当該解析結果に基づき、第２記憶装置３００の上記検出した空きクラスタ領域に対して、アルゴリズムＢを用いたデータファイルの書き込みを行う（ステップＳ３２４）。
具体的に、書込部２０は、第２記憶装置３００のクラスタ領域における、クラスタ番号「０５ｈ」及び「０７ｈ」に対応するクラスタ領域に対しては、各クラスタのメモリ容量分のデータ量毎（各クラスタ毎）にデータを書き込む。
【００７９】
一方、書込部２０は、第２記憶装置３００のクラスタ領域における、クラスタ番号「０Ａｈ」及び「０Ｂｈ」に対応するクラスタ領域に対しては、最小アクセス回数となるデータ量毎にデータを書き込む。ここでは、第２記憶装置３００に対して１度に最大８クラスタ分のデータ量のデータを伝送できるとする。従って、書き込むデータは２クラスタ分となるので、２クラスタ分のデータを１度のアクセスでクラスタ番号「０Ａｈ」及び「０Ｂｈ」に対応するクラスタ領域に書き込む。なお、ここでは、最大データ伝送量を８クラスタとしたが、これは、例えば、上位アプリケーションが確保しているデータ転送用バッファのサイズがいくつか（何クラスタ分あるか）によって決まるものである。従って、上位アプリケーションの種類やその他の条件によっては、８クラスタに限らず、４クラスタ、１６クラスタ、３２クラスタなどの他の伝送量となる。
【００８０】
このようにして、書込対象データ（４クラスタ分のデータ）の第２記憶装置３００への書き込みが完了する（ステップＳ３２６の「Ｙｅｓ」の分岐）。この書込処理によって、第２記憶装置３００の第２ＦＡＴが、図９に示す状態へと更新される。つまり、以前は空きクラスタ領域であったクラスタ番号「０５ｈ」、「０７ｈ」、「０Ａｈ」及び「０Ｂｈ」に対して、ＦＡＴエントリ値「０７ｈ」、「０Ａｈ」、「０Ｂｈ」及び「ＥＯＦ」がそれぞれ設定される。
【００８１】
データアクセスシステム１００は、書込対象データの書き込みが完了すると、他に複写するデータがある場合（ステップＳ１０６の「Ｎｏ」の分岐）は、第１記憶装置２００から複写対象のデータを読み出す処理に移行し（ステップＳ１０２に移行）、そうでない場合（ステップＳ１０６の「Ｙｅｓ」の分岐）は、次の複写コマンドを受信するまで受信判定処理を繰り返す（ステップＳ１００に移行）。
なお、上記アルゴリズムＢを用いた書込処理は、第２記憶装置３００が機種２と特定された場合も同様の処理となる。異なるのは、メモリ容量情報を用いた比較処理がなく、且つアルゴリズムの選択処理がない点であり、機種２の場合は、固定的にアルゴリズムＢを用いた書込処理が実行される。
【００８２】
次に、クラスタ番号が全て不連続となるクラスタ領域に格納されたデータファイルを読み出し、当該読み出したデータファイルを、第２記憶装置３００のクラスタ番号が全て不連続となるクラスタ領域に書き込む場合の動作を説明する。なお、ここでは、第２記憶装置３００は、機種１と特定され且つメモリ容量が所定閾値未満と判定されたこととする。従って、上記アルゴリズムＡ及びＢからアルゴリズムＢを選択し、このアルゴリズムＢを用いて書込処理が行われることになる。以下、重複部分の説明を適宜省略して具体的な動作を説明する。
【００８３】
ここでは、読出部１２は、図７に示すように、クラスタ番号「１Ａｈ」、「１Ｃｈ」及び「１Ｅｈ」の３つのクラスタ番号に対応するクラスタ領域に格納されたデータファイルを読み出すこととする。この場合、クラスタ連続性解析部１０においては、これらクラスタ番号「１Ａｈ」、「１Ｃｈ」及び「１Ｅｈ」の情報と、これらクラスタ番号の領域に対して、上記した通常読み出しが可能であることを示す情報とを解析結果として読出部１２に渡すこととなる（ステップＳ２０２）。
【００８４】
従って、読出部１２は、この解析結果に基づき、クラスタ番号「１Ａｈ」、「１Ｃｈ」及び「１Ｅｈ」に対応したクラスタ領域から各クラスタ領域毎にデータの読み出しを行う（ステップＳ２０４）。この場合は、３度のアクセスでデータファイルの読み出しが完了する（ステップＳ２０６）。
一方、空きクラスタ領域検出部１８は、第２記憶装置３００から取得した図９に示す状態の第２ＦＡＴに基づき、上記読み出したデータファイル（３クラスタ分）を書き込むことができる空きクラスタ領域として、クラスタ番号「０Ｄｈ」、「０Ｆｈ」及び「１２ｈ」に対応する空きクラスタ領域を検出する（ステップＳ３２０）。
【００８５】
クラスタ連続性解析部１０は、この検出されたクラスタ番号「０Ｄｈ」、「０Ｆｈ」及び「１２ｈ」に対応する空きクラスタ領域は、全てクラスタ番号が不連続となるので、これらクラスタ番号の情報と、これらクラスタ番号に対応するクラスタ領域に対して上記した通常書き込みが可能であることを示す情報とを解析結果として生成し、これを書込部２０に渡す（ステップＳ３２２）。
【００８６】
書込部２０は、この解析結果に基づき、第２記憶装置３００のクラスタ領域におけるクラスタ番号「０Ｄｈ」、「０Ｆｈ」及び「１２ｈ」に対応する空きクラスタ領域に対して、各クラスタ領域毎にデータを書き込む（ステップＳ３２４）。
この書込処理によって、第２記憶装置３００の第２ＦＡＴが、図１０に示す状態へと更新される。つまり、以前は空きクラスタ領域であったクラスタ番号「０Ｄｈ」、「０Ｆｈ」及び「１２ｈ」に対して、ＦＡＴエントリ値「０Ｆｈ」、「１２ｈ」及び「ＥＯＦ」がそれぞれ設定される。
【００８７】
次に、クラスタ番号が全て連続となるクラスタ領域に格納されたデータファイルを読み出し、当該読み出したデータファイルを、第２記憶装置３００のクラスタ番号が全て連続となるクラスタ領域に書き込む場合の動作を説明する。なお、ここでは、第２記憶装置３００が機種１と特定され且つメモリ容量が所定閾値以上であると判定されたこととする。従って、上記アルゴリズムＡ及びＢからアルゴリズムＡを選択し、このアルゴリズムＡを用いて書込処理が行われることになる。以下、重複部分の説明を適宜省略して具体的な動作を説明する。
【００８８】
ここでは、読出部１２は、図７に示すように、クラスタ番号「２０ｈ」〜「２６ｈ」までの連続する７つのクラスタ番号に対応するクラスタ領域に格納されたデータファイルを読み出すこととする。この場合、クラスタ連続性解析部１０においては、これらクラスタ番号「２０ｈ」〜「２６ｈ」（あるいは先頭アドレス「２０ｈ」及びＯｆｆｓｅｔ「００〜０Ｄ」）の情報と、これらクラスタ番号の領域に対して、上記した最適読み出しが可能であることを示す情報とを解析結果として読出部１２に渡すこととなる（ステップＳ２０２）。
【００８９】
従って、読出部１２は、この解析結果に基づき、クラスタ番号「２０ｈ」〜「２６ｈ」に対応したクラスタ領域のうち、最大データ伝送量となる８クラスタ以下で最小アクセス回数となるデータ量毎にデータの読み出しを行う（ステップＳ２０４）。この場合は、「２０ｈ」〜「２６ｈ」の７クラスタ分のデータに対して、１度のアクセスでデータファイルの読み出しが完了する（ステップＳ２０６）。
【００９０】
一方、空きクラスタ領域検出部１８は、第２記憶装置３００から図１０に示す状態の第２ＦＡＴを取得し（ステップＳ３１０）、この取得した第２ＦＡＴに基づき、第２記憶装置３００に対して１度に行える最大データ転送量が８クラスタ分であることから、上記読み出したデータファイル（７クラスタ分）を書き込むことができる空きクラスタ領域として、クラスタ番号が全て連続する「４０ｈ」〜「４６ｈ」に対応する空きクラスタ領域を検出する（ステップＳ３１２）。つまり、第２記憶装置３００は、比較的メモリ容量の大きい記憶装置であるので、メモリの使用効率よりもメモリの書込効率を重視した書込処理を実行する。従って、図１０に示すように、クラスタ番号「４０ｈ」〜「４６ｈ」よりも若い番号に空きクラスタがあっても、データファイルのクラスタ数である７未満の連続するクラスタ番号及び不連続のクラスタ番号に対応する空きクラスタ領域を無視して、その先のクラスタ番号からデータファイル分（７クラスタ分）のクラスタ番号の連続する空きクラスタ領域を検出する。また、アルゴリズムＡにおいては、この検出した空きクラスタ領域のクラスタ番号の情報を、クラスタ連続性解析部１０には渡さず、直接書込部２０へと渡す。
【００９１】
なお、本実施の形態においては、前述したように、第２記憶装置３００に対して１度に行える最大データ転送量が８クラスタ分であるので、例えば、３２クラスタ分のデータファイルなどの８クラスタよりも多いクラスタ数のデータファイルの書き込みを行う場合は、８クラスタ分毎にクラスタ番号が連続する空きクラスタ領域を検出するようにしても良い。また、この場合は、例えば、検出した空きクラスタ領域に対応するクラスタ番号の情報をクラスタ連続性解析部１０に渡して、分析結果を生成するようにしても良い。
【００９２】
書込部２０は、空きクラスタ領域検出部１８からの空きクラスタ領域のクラスタ番号の情報に基づき、第２記憶装置３００のクラスタ領域におけるクラスタ番号「４０ｈ」〜「４６ｈ」に対応する空きクラスタ領域に対して、１度のアクセスでデータファイルを書き込む（ステップＳ３１４）。
この書込処理によって、第２記憶装置３００の第２ＦＡＴが、図１１に示す状態へと更新される。つまり、以前は空きクラスタ領域であったクラスタ番号「４０ｈ」〜「４６ｈ」に対して、ＦＡＴエントリ値「４１ｈ」、「４２ｈ」、「４３ｈ」、「４４ｈ」、「４５ｈ」、「４６ｈ」及び「ＥＯＦ」がそれぞれ設定される。
【００９３】
なお、上記アルゴリズムＡを用いた書込処理は、第２記憶装置３００が機種３と特定された場合も同様の処理となる。異なるのは、メモリ容量情報を用いた比較処理がなく、且つアルゴリズムの選択処理がない点であり、機種３の場合は、固定的にアルゴリズムＡを用いた書込処理が実行される。
以上、本実施の形態のデータアクセスシステム１００によれば、データファイルの複写先（書き込み先）となる第２記憶装置３００が上記機種１であり且つそのメモリ容量（総メモリ容量又はメモリ残量）が所定閾値未満であるとき（比較的低メモリ容量であるとき）、又は第２記憶装置３００が上記機種２（比較的低メモリ容量の記憶装置）であるときは、データ書込処理効率及びデータ使用効率の双方を考慮した上記アルゴリズムＢを用いた書込処理を行うことが可能である。これによって、クラスタ番号の連続する空きクラスタ領域に対する書き込みにおいてアクセス回数を低減することができるので、メモリの使用効率を低下させずに、データの書込処理効率を向上することができる。
【００９４】
また、本実施の形態のデータアクセスシステム１００によれば、データファイルの複写先（書き込み先）となる第２記憶装置３００が上記機種１であり且つそのメモリ容量（総メモリ容量又はメモリ残量）が所定閾値以上であるとき（比較的大メモリ容量であるとき）、又は第２記憶装置３００が上記機種３（ＨＤＤ等の比較的大メモリ容量の記憶装置）であるときは、データ書込処理効率を重視した上記アルゴリズムＡを用いた書込処理を行うことが可能である。これによって、データファイルのデータ量分又は最大データ転送量分のクラスタ番号の連続する空きクラスタ領域を検出し、このクラスタ番号の連続する空きクラスタ領域に対して最適書き込みを行うので、データファイルの書き込みに必要なアクセス回数を最大限低減することができるので、データの書込処理効率を向上することができる。
【００９５】
上記実施の形態において、第１記憶装置２００及び第２記憶装置３００は、形態１〜６のいずれか１の記憶媒体に対応し、クラスタ連続性解析部１０は、形態１の第１連続性解析手段及び第２連続性解析手段に対応し、読出部１２は、形態１の読出手段に対応し、機種特定部１４は、形態３の特定手段に対応し、メモリ容量比較部１６は、形態２の比較手段に対応し、空きクラスタ領域検出部１８は、形態１又は２の空き小メモリ領域検出手段に対応し、書込部２０は、形態１〜３のいずれか１の書込手段に対応する。
【００９６】
なお、上記実施の形態においては、ＦＡＴ型フォーマットのファイルシステムを例に説明しているが、これに限らず、同様な形式でデータアクセスの行われるシステムであれば、どのようなシステムに本発明を適用しても良い。
また、上記実施の形態においては、ＨＤＤ、ＳＤカード、ＣＦ（コンパクトフラッシュ（登録商標））カード、ＳＭＴメディア（登録商標）、ＯＦＭ（Onboard Flash Memory）などの記憶装置を例として説明したが、これに限らず、ＭＯ、ＤＶＤ、ＦＤ等の他の記憶装置に本発明を適用しても良い。
【００９７】
また、上記実施の形態においては、ＦＡＴ１６のフォーマットを例として、具体的な動作を説明したが、ＦＡＴ１６に限らず、本発明は、ＦＡＴ１２、ＦＡＴ３２、ＶＦＡＴ等の他のＦＡＴ型のフォーマットにも適用可能であると共に、同様の形式であれば、ＦＡＴ型以外のフォーマットにも適用可能である。
【図面の簡単な説明】
【００９８】
【図１】本発明に係るデータアクセスシステム１００の機能構成を示すブロック図である。
【図２】データアクセスシステム１００のハードウェア構成図である。
【図３】データアクセスシステム１００におけるデータファイル複写処理を示すフローチャートである。
【図４】データアクセスシステム１００におけるデータファイル読出処理を示すフローチャートである。
【図５】データアクセスシステム１００におけるデータファイル書込処理を示すフローチャートである。
【図６】記憶装置の種類（機種）及びディスク容量に対する、書込処理方法（アルゴリズム）の一例を示す図である。
【図７】第１記憶装置２００の第１ＦＡＴの一例を示す図である。
【図８】第２記憶装置３００の第２ＦＡＴの一例を示す図である。
【図９】連続及び不連続なクラスタ領域が混在したクラスタ領域への書込処理後の第２ＦＡＴの一例を示す図である。
【図１０】全て不連続となるクラスタ領域への書込処理後の第２ＦＡＴの一例を示す図である。
【図１１】全て連続となるクラスタ領域への書込処理後の第２ＦＡＴの一例を示す図である。
【符号の説明】
【００９９】
１００…データアクセスシステム、２００…第１記憶装置、３００…第２記憶装置、１０…クラスタ連続性解析部、１２…読出部、１４…機種特定部、１６…メモリ容量比較部、１８…空きクラスタ領域検出部、２０…書込部
【図１】
2008009688.tif 000003
【図２】
2008009688.tif 000004
【図３】
2008009688.tif 000005
【図４】
2008009688.tif 000006
【図５】
2008009688.tif 000007
【図６】
2008009688.tif 000008
【図７】
2008009688.tif 000009
【図８】
2008009688.tif 000010
【図９】
2008009688.tif 000011
【図１０】
2008009688.tif 000012
【図１１】
2008009688.tif 000013