(57)【要約】      （修正有）【課題】  マルチメディア・データを高速に読み出せるよう独自のファイル形式でデータを保持している大容量記憶デバイスのデータを、ホスト機器から迅速かつ的確に読み出す事ができる、デバイス機器及びファイル形式変換方法を提供する。【解決手段】  ホスト機器２０から大容量記憶デバイス１０へのファイルデータの読み出しアドレスはＦＡＴファイルシステムでのＬＢＡ番号Ｓで与えられる。デバイス１０側はデータを独自ファイルシステム１５で保持しており、このＬＢＡ番号Ｓを独自ファイル形式でのアドレス番号に変換しつつ、変換後のアドレスからデータを呼びだしてホスト機器２０に送る。この方式により、ホスト機器２０側はソフトに大きな改修を行わないで大容量記憶デバイス１０からのマルチメディア・データの高速呼び出しを実現できる。【選択図】  図１
2005122439.tif 000002
【特許請求の範囲】
【請求項１】
独自ファイルシステムによって管理された記録装置を備え、マスストレージ接続されたホスト機器から該独自ファイルシステムとは異なるファイルシステムによって与えられるＬＢＡ番号を指定した読み取り要求に相当する記録内容を、前記記録装置から読み取って前記ホスト機器に転送するデバイス機器であって、
前記独自ファイルシステムによって管理されている前記記録装置の記録内容を前記ホスト機器のファイルシステムに反映するための仮想ファイル空間と、
前記ホスト機器から与えられた読み取り要求のＬＢＡ番号が、該仮想ファイル空間におけるいずれの領域の記録内容の読み取りに該当するかを判断する判断手段と、
前記記録装置には実際に保持されていない前記仮想ファイル空間の領域の記録内容に該当する場合は、メモリ上に前記ホスト機器から与えられた読み取り要求のＬＢＡ番号に相当する記録内容を生成する第１の処理手段と、
前記記録装置に実際に保持されている前記仮想ファイル空間の領域の記録内容に該当する場合は、前記ホスト機器から与えられた読み取り要求のＬＢＡ番号を、当該読み取り要求のＬＢＡ番号に相当する記録内容が保持されている前記記録装置の実際のＬＢＡ番号に変換し、前記記録装置から該変換されたＬＢＡ番号で指定される実際に保持されている記録内容を読み取って、メモリ上に展開する第２の処理手段と
備えていることを特徴とするデバイス機器。
【請求項２】
前記仮想ファイル空間は、仮想管理領域及び仮想データ領域を有し、該仮想データ領域は、前記記録装置のデータ領域と同容量に設定され、さらに仮想ディレクトリエントリ領域と該仮想ディレクトリエントリ領域に続く仮想ファイル領域とに分割され、
前記判断手段は、前記ホスト機器から与えられた読み取り要求のＬＢＡ番号が、該仮想ファイル空間における仮想管理領域及び仮想データ領域の仮想ディレクトリエントリ領域の記録内容の読み取りに該当するか、又は仮想データ領域の仮想ファイル領域に該当するかを判断し、
前記第１の処理手段は、前記ホスト機器から与えられた読み取り要求のＬＢＡ番号が前記仮想ＦＡＴ空間の仮想管理領域又は仮想ディレクトリエントリ領域の記録内容に該当する場合は、メモリ上に前記ホスト機器から与えられた読み取り要求のＬＢＡ番号に相当する記録内容を生成し、
前記第２の処理手段は、前記ホスト機器から与えられた読み取り要求のＬＢＡ番号が仮想データ領域の仮想ファイル領域に該当する場合は、前記ホスト機器から与えられた読み取り要求のＬＢＡ番号を、当該読み取り要求のＬＢＡ番号に相当する記録内容が保持されている前記記録装置の実際のＬＢＡ番号に変換し、前記記録装置から該変換されたＬＢＡ番号で指定される実際に保持されている記録内容を読み取って、メモリ上に展開する
ことを特徴とする請求項１記載のデバイス機器。
【請求項３】
前記独自ファイルシステムによって管理される前記記録装置の実際のディレクトリエントリのグループ毎に、当該グループについての情報を記録するディレクトリエントリ生成用中間テーブルを生成／更新するとともに、前記独自ファイルシステムによって管理される前記記録装置の実際のファイル毎に、当該ファイルについての情報が記録されるファイル用中間テーブルを生成／更新する中間テーブル生成／更新手段を備え、
前記第１の処理手段及び第２の処理手段は、該中間テーブル生成／更新手段によって生成／更新されたディレクトリエントリ生成用中間テーブル及び該ファイル用中間テーブルからなる中間テーブルを参照しながら、それぞれ処理を行う
ことを特徴とする請求項１又は２記載のデバイス機器。
【請求項４】
前記該中間テーブル生成／更新手段は、前記独自ファイルシステムによる前記記録装置のファイル関連処理の発生が検出されると、リアルタイムで前記中間テーブルを生成／更新する
ことを特徴とする請求項３記載のデバイス機器。
【請求項５】
前記該中間テーブル生成／更新手段は、前記ホスト機器とのマスストレージ接続が確立される段階で、一括して前記中間テーブルを生成／更新する
ことを特徴とする請求項３記載のデバイス機器。
【請求項６】
マスストレージ接続されたホスト機器からデバイス機器に与えられる、該デバイス機器が記録装置を管理する独自ファイルシステムとは異なるファイルシステムによる読み取り要求のＬＢＡ番号を、該記録装置の相当する記録内容に変換するデバイス機器の記録装置のフォーマット変換方法であって、
前記ホスト機器から与えられた読み取り要求のＬＢＡ番号が、前記独自ファイルシステムによって管理されている前記記録装置の記録内容を前記ホスト機器のファイルシステムに反映するための仮想ファイル空間の、いずれの領域の記録内容の読み取りに該当するかを判断する判断ステップと、
前記ホスト機器から与えられた読み取り要求のＬＢＡ番号が前記記録装置には実際に保持されていない前記仮想ファイル空間の領域の記録内容に該当すると判断した場合は、メモリ上に前記ホスト機器から与えられた読み取り要求のＬＢＡ番号に相当する記録内容を生成する第１の処理ステップと、
前記ホスト機器から与えられた読み取り要求のＬＢＡ番号が前記記録装置に実際に保持されている前記仮想ファイル空間の領域の記録内容に該当すると判断した場合は、前記ホスト機器から与えられた読み取り要求のＬＢＡ番号を、当該読み取り要求のＬＢＡ番号に相当する記録内容が保持されている前記記録装置の実際のＬＢＡ番号に変換し、前記記録装置から該変換されたＬＢＡ番号で指定される実際に保持されている記録内容を読み取って、メモリ上に展開する第２の処理ステップと
からなることを特徴とするデバイス機器の記録装置のフォーマット変換方法。
【請求項７】
前記仮想ファイル空間は、仮想管理領域及び仮想データ領域を有し、該仮想データ領域は、前記記録装置のデータ領域と同容量に設定され、さらに仮想ディレクトリエントリ領域と該仮想ディレクトリエントリ領域に続く仮想ファイル領域とに分割され、
前記ホスト機器から与えられた読み取り要求のＬＢＡ番号が、該仮想ファイル空間における仮想管理領域及び仮想データ領域の仮想ディレクトリエントリ領域の記録内容の読み取りに該当するか、又は仮想データ領域の仮想ファイル領域に該当するかを判断する判断ステップと、
前記ホスト機器から与えられた読み取り要求のＬＢＡ番号が前記仮想ＦＡＴ空間の仮想管理領域又は仮想ディレクトリエントリ領域の記録内容に該当する場合は、メモリ上に前記ホスト機器から与えられた読み取り要求のＬＢＡ番号に相当する記録内容を生成する第１の処理ステップと、
前記第２の処理手段は、前記ホスト機器から与えられた読み取り要求のＬＢＡ番号が仮想データ領域の仮想ファイル領域に該当する場合は、前記ホスト機器から与えられた読み取り要求のＬＢＡ番号を、当該読み取り要求のＬＢＡ番号に相当する記録内容が保持されている前記記録装置の実際のＬＢＡ番号に変換し、前記記録装置から該変換されたＬＢＡ番号で指定される実際に保持されている記録内容を読み取って、メモリ上に展開する第２の処理ステップと
からなることを特徴とする請求項６記載のデバイス機器の記録装置のフォーマット変換方法。
【請求項８】
前記独自ファイルシステムによって管理される前記記録装置の実際のディレクトリエントリのグループ毎に、当該グループについての情報を記録するディレクトリエントリ生成用中間テーブルを生成／更新するとともに、前記独自ファイルシステムによって管理される前記記録装置の実際のファイル毎に、当該ファイルについての情報が記録されるファイル用中間テーブルを生成／更新する中間テーブル生成／更新ステップを備え、
前記第１の処理ステップ及び第２の処理ステップは、該中間テーブル生成／更新手段によって生成／更新されたディレクトリエントリ生成用中間テーブル及び該ファイル用中間テーブルからなる中間テーブルを参照しながら、それぞれ処理を行う
ことを特徴とする請求項６又は７記載のデバイス機器の記録装置のフォーマット変換方法。
【請求項９】
前記該中間テーブル生成／更新ステップを、前記独自ファイルシステムによる前記記録装置のファイル関連処理の発生が検出される毎に、リアルタイムで実行する
ことを特徴とする請求項８記載のデバイス機器の記録装置のフォーマット変換方法。
【請求項１０】
前記該中間テーブル生成／更新ステップを、前記ホスト機器とのマスストレージ接続が確立される段階で、一括して実行する
ことを特徴とする請求項８記載のデバイス機器の記録装置のフォーマット変換方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マスストレージ接続されたホスト機器に、大容量記録メディアに記録されているマルチメディアデータを転送可能なデバイス機器、及びこのデバイス機器の記録装置のフォーマット変換方法に関する。
【背景技術】
【０００２】
従来、例えばデジタルスチルカメラ，ビデオカメラ装置，ＰＤＡ（Personal Digital Assistant）等のデバイス機器では、デバイス機器毎に、ＨＤＤ（Hard Disk Drive），ＣＤ（Compact Disc），ＤＶＤ（Digital Versatile  Disk），ＭＯ（Magnet Optical Disc），メモリカード等といった大容量記録メディア（記録媒体）が備えられている。これらデバイス機器の中には、ＵＳＢ（Universal Serial Bus），ＵＳＢ２，ＩＥＥＥ１３９４等といった物理接続路によってＰＣ（Personal Computer）等のホスト機器にマスストレージ接続され、記録メディアに記録されているマルチメディアデータをホスト機器側に転送できるものがある。
【０００３】
図２６は、この種のデバイス機器とホスト機器との物理接続を示した図である。
この場合、ＰＣ等のホスト機器２０にＵＳＢ，ＵＳＢ２，ＩＥＥＥ１３９４等といった物理接続路３０を介してマスストレージ接続されるデジタルスチルカメラ等のデバイス機器１１０では、そのＨＤＤ，ＣＤドライブ，ＤＶＤドライブ等といった記録装置１１が、ホスト機器２０側から、ホスト機器２０自身に備えられている記録装置（例えばＨＤＤ）２１と同様なドライブ２１'として認識される構成になっている。そのため、この種のデバイス機器１１０では、ホスト機器２０のＯＳ（operating system）でファイルシステムとして使用されているＦＡＴ（File Allocation Table）ファイルシステム２５を用いて、その記録装置１１の管理を行う構成になっている。
【０００４】
このＦＡＴファイルシステム２５は、ディスクオペレーティングシステム（ＤＯＳ）におけるブロックデバイス（ディスク）上のファイルを管理するためのものであって、ユーザが論理的に扱うファイルやディレクトリを、記録装置１１，２１の記録媒体における実際の物理的な記録領域上に対応させて記録管理するシステムである。
【０００５】
例えば、ホスト機器２０の記録装置２１に適用されるＨＤＤの場合、記録媒体としてのディスクは、所定の記録容量（例えば一般的なＩＤＥ（Integrated Drive Electronics）・ＨＤＤの場合は、５１２バイト）からなるセクタを基礎単位とする物理的な記録領域に分割されている。この分割されたセクタそれぞれには、絶対的な通し番号（セクタ番号、すなわちＬＢＡ（Logical Block Address）番号）が付され、ディスク上に記録されているファイルやディレクトリへのアクセスは、このセクタを単位にして行われる。
【０００６】
ところが、ディスクにおけるセクタ総数は膨大であるため、ユーザが論理的に扱うファイルやディレクトリをディスク上のセクタに割り当てる場合は、ファイルやディレクトリを記録する構成単位としてのクラスタによって、ディスク上の実際の物理的なセクタに対応させて管理するようになっている。このクラスタの記録領域サイズは、物理セクタの２の累乗倍となるように、ディスクの種別や容量によって決まっている。例えば、１クラスタを３２セクタとして扱うファイルシステムでは、１クラスタ当たりの記録容量は１６ＫＢになる。
【０００７】
これにより、ホスト機器２０では、デバイス機器１１０の記録装置２１，２１'（１１）に記録されているファイルやディレクトリへの実際のアクセスは前述したようにセクタ単位で行うが、ファイルやディレクトリに対してディスク上の物理セクタを割り当てる場合は、セクタ単位ではなく、クラスタ単位でその割り当てが行われる。この割り当てでは、１つのファイルに対して複数のクラスタが割り当てられる場合もあり、この場合、割り当てられた複数のクラスタそれぞれのディスク上における物理的な位置は、ディスク上で常に連続して配置されているとは限らない。
【０００８】
そこで、ＦＡＴファイルシステム２５では、ファイルを構成する単位としてのクラスタがどのような順につながって１つのファイルを構成しているかを、ファイルアロケーションテーブル（ＦＡＴ）２６にＦＡＴ情報として記録し、管理する構成になっている。
【０００９】
図２７は、従来のホスト機器とデバイス機器との論理接続を示した図である。
図に示すように、デバイス機器１１０は、前述したＨＤＤ，ＣＤドライブ，ＤＶＤドライブ等といった機器内蔵の記録装置１１に加えて、デバイス機器１１０の動作を制御するアプリケーション１４、記録装置１１の記録媒体上のファイルを管理するＦＡＴファイルシステム２５、このＦＡＴファイルシステム２５に基づいて記録装置１１を作動させる記録装置用ドライバ１７、及び物理接続路３０を介して接続されたホスト機器２０との間の通信制御を行う通信ドライバ１９を備える。
【００１０】
一方、ホスト機器２０は、前述したＨＤＤ，ＣＤドライブ，ＤＶＤドライブ等といった機器内蔵の記録装置２１に加えて、ホスト機器２０の動作を制御するアプリケーション２４、記録装置２１の記録媒体上のファイルを管理するＦＡＴファイルシステム２５、ＦＡＴファイルシステム２５に基づいて記録装置２１を作動させる記録装置用ドライバ２７、物理接続路３０を介してマスストレージ接続されたデバイス機器１１０の記録装置１１をホスト機器２０自身の記録装置２１'として取り扱うためのマスストレージドライバ２８、及びマスストレージ接続されたデバイス機器１１０との間の通信制御を行う通信ドライバ２９を備える。
【００１１】
ホスト機器２０は、デバイス機器１１０の記録装置１１に記録されたファイルやディレクトリを読み取る際、その記録装置１１がホスト機器２０の記録装置２１と同様にＦＡＴファイルシステム２５によって管理されていることに基づいて、マスストレージドライバ２８からＬＢＡ番号（絶対セクタ番号）を指定し、通信ドライバ２９からマスストレージ接続されたデバイス機器１１０の記録装置１１に読み取り要求を発行する（図２７中のステップＳ1001）。デバイス機器１１０は、通信ドライバ１９がこのホスト機器２０からの読み取り要求を受け取ると、記録装置用ドライバ１７が、このＬＢＡ番号により指定された記録領域の記録内容を記録装置１１の記録媒体から読み出す（ステップＳ1002〜Ｓ1005）。そして、デバイス機器１１０は、ＬＢＡ番号により指定された記録領域の記録内容を読み取って、通信ドライバ１９によって物理接続路３０に出力し、ホスト機器２０に対してデータ転送する（ステップＳ1006）。
【００１２】
これにより、ホスト機器２０は、デバイス機器１１０の記録装置１１を、ホスト機器２０自身に備えられている記録装置２１と同様の記録装置２１'として認識し、その記録装置１１に記録されているファイルやディレクトリの読み取りができる構成になっている。
【特許文献１】特開平５−２６５８４０号公報
【特許文献２】特開２００２−１０８５６８号公報
【特許文献３】特開平３−２１４３１０号公報
【特許文献４】特開２００２−２５１８２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
ところで、上述したデバイス機器１１０では、その記録装置１１に記録されているマルチメディアデータをデバイス機器１１０自身の表示装置等にストリーミングによって表示する場合等のために、記録装置１１の特性上から生じざるを得ないフラグメンテーション、すなわち１つのファイルが記録媒体（ディスク）上で物理的に連続配置されて保存されずに断片化されて散在して記録されてしまう状態を極力避け、記録装置１１の記録媒体に記録されているマルチメディアデータを所定のビットレート以上の速度で読み出しできるようにしておく必要がある。
【００１４】
そのため、上述したデバイス機器１１０の記録装置１１の場合は、ホスト機器２０の場合と同様なＦＡＴファイルシステム２５によるのではなく、機器独自のファイルシステム１５（例えば、ＵＤＦ（Universal Disk Format）等）によって管理するのが好ましい。
【００１５】
そして、このような機器独自のファイルシステム１５を備えたデバイス機器１１０では、１回に読み書きする基本単位であるブロックサイズは、ＦＡＴファイルシステム２５の基本単位であるクラスタサイズ（最大でも６４ＫＢ）に比べて遥かに大きく（例えば、５１２ＫＢ、１ＭＢ、２ＭＢ）なっており、上述したフラグメンテーションの発生を最低限に抑えて、所定のビットレート以上の速度で記録装置１１に記録されているマルチメディアデータの読み出しができるようになっている。
【００１６】
しかし、このような機器独自のファイルシステム１５を備えたデバイス機器１１０は、ＦＡＴファイルシステム２５によりその記録装置２１が管理されているホスト機器２０にＵＳＢ（Universal Serial Bus），ＵＳＢ２，ＩＥＥＥ１３９４等といった物理接続路３０を介してマスストレージ接続されても、デバイス機器１１０の記録装置１１の独自ファイルシステム１５及びブロックサイズは、ホスト機器２０の記録装置２１のＦＡＴファイルシステム２５及びクラスタサイズと異なるため、デバイス機器１１０のファイルシステム１５は、ホスト機器２０からのマスストレージドライバ２８を介したＬＢＡ番号を指定した読み取り要求に、的確に対処することができない虞があった。
【００１７】
また、その対策として、このホスト機器２０からのＬＢＡ番号を指定した読み取り要求に的確に対処できるように、独自ファイルシステム１５を備えたデバイス機器１１０側で、例えば、記録装置１１に記録され、独自ファイルシステム１５で管理されている全ファイルの開始ブロック位置とリンクをたどり、デバイス機器１１０において独自のファイルシステム１５で管理されている全ファイルの開始ブロック位置とリンクを、ホスト機器２０におけるＦＡＴファイルシステム２５によるクラスタ番号に変換し、この変換したクラスタ番号を記録装置１１のＦＡＴ情報として全部登録することも考えられる。
【００１８】
しかし、この作業を行うためには、デバイス機器１１０側で記録装置１１の独自ファイルシステム１５による全ファイルのリンクをたどる必要があり、処理能力が非力なデジタルスチルカメラ等といったデバイス機器１１０の機器システムには不向きであり、その要する時間も、ＰＣでＨＤＤにデータが正しく書き込まれているか否かを検査するチェックディスクやスキャンディスクを行う場合と同じくらいの長時間がかかる。
【００１９】
本発明は、上記した問題点を鑑み、独自ファイルシステムを備えたデバイス機器であっても、マスストレージ接続されたホスト機器からの読み取り要求に迅速かつ的確に対処することができるデバイス機器、及びデバイス機器の記録装置のフォーマット変換方法を提供することを目的とする。
【課題を解決するための手段】
【００２０】
本発明に係るデバイス機器は、独自ファイルシステムによって管理された記録装置を備え、マスストレージ接続されたホスト機器から該独自ファイルシステムとは異なるファイルシステムによって与えられるＬＢＡ番号を指定した読み取り要求に相当する記録内容を、前記記録装置から読み取って前記ホスト機器に転送するデバイス機器であって、前記独自ファイルシステムによって管理されている前記記録装置の記録内容を前記ホスト機器のファイルシステムに反映するための仮想ファイル空間と、前記ホスト機器から与えられた読み取り要求のＬＢＡ番号が、該仮想ファイル空間におけるいずれの領域の記録内容の読み取りに該当するかを判断する判断手段と、前記記録装置には実際に保持されていない前記仮想ファイル空間の領域の記録内容に該当する場合は、メモリ上に前記ホスト機器から与えられた読み取り要求のＬＢＡ番号に相当する記録内容を生成する第１の処理手段と、前記記録装置に実際に保持されている前記仮想ファイル空間の領域の記録内容に該当する場合は、前記ホスト機器から与えられた読み取り要求のＬＢＡ番号を、当該読み取り要求のＬＢＡ番号に相当する記録内容が保持されている前記記録装置の実際のＬＢＡ番号に変換し、前記記録装置から該変換されたＬＢＡ番号で指定される実際に保持されている記録内容を読み取って、メモリ上に展開する第２の処理手段とを備えていることを特徴とする。
【００２１】
また、本発明に係るデバイス機器では、前記仮想ファイル空間は、仮想管理領域及び仮想データ領域を有し、該仮想データ領域は、前記記録装置のデータ領域と同容量に設定され、さらに仮想ディレクトリエントリ領域と該仮想ディレクトリエントリ領域に続く仮想ファイル領域とに分割され、前記判断手段は、前記ホスト機器から与えられた読み取り要求のＬＢＡ番号が、該仮想ファイル空間における仮想管理領域及び仮想データ領域の仮想ディレクトリエントリ領域の記録内容の読み取りに該当するか、又は仮想データ領域の仮想ファイル領域に該当するかを判断し、前記第１の処理手段は、前記ホスト機器から与えられた読み取り要求のＬＢＡ番号が前記仮想ＦＡＴ空間の仮想管理領域又は仮想ディレクトリエントリ領域の記録内容に該当する場合は、メモリ上に前記ホスト機器から与えられた読み取り要求のＬＢＡ番号に相当する記録内容を生成し、前記第２の処理手段は、前記ホスト機器から与えられた読み取り要求のＬＢＡ番号が仮想データ領域の仮想ファイル領域に該当する場合は、前記ホスト機器から与えられた読み取り要求のＬＢＡ番号を、当該読み取り要求のＬＢＡ番号に相当する記録内容が保持されている前記記録装置の実際のＬＢＡ番号に変換し、前記記録装置から該変換されたＬＢＡ番号で指定される実際に保持されている記録内容を読み取って、メモリ上に展開することを特徴とする。
【００２２】
また、本発明に係るデバイス機器では、前記独自ファイルシステムによって管理される前記記録装置の実際のディレクトリエントリのグループ毎に、当該グループについての情報を記録するディレクトリエントリ生成用中間テーブルを生成／更新するとともに、前記独自ファイルシステムによって管理される前記記録装置の実際のファイル毎に、当該ファイルについての情報が記録されるファイル用中間テーブルを生成／更新する中間テーブル生成／更新手段を備え、前記第１の処理手段及び第２の処理手段は、該中間テーブル生成／更新手段によって生成／更新されたディレクトリエントリ生成用中間テーブル及び該ファイル用中間テーブルからなる中間テーブルを参照しながら、それぞれ処理を行うことを特徴とする。
【００２３】
また、本発明に係るデバイス機器の記録装置のフォーマット変換方法は、マスストレージ接続されたホスト機器からデバイス機器に与えられる、該デバイス機器が記録装置を管理する独自ファイルシステムは異なるファイルシステムによる読み取り要求のＬＢＡ番号を、該記録装置の相当する記録内容に変換するデバイス機器の記録装置のフォーマット変換方法であって、前記ホスト機器から与えられた読み取り要求のＬＢＡ番号が、前記独自ファイルシステムによって管理されている前記記録装置の記録内容を前記ホスト機器のファイルシステムに反映するための仮想ファイル空間の、いずれの領域の記録内容の読み取りに該当するかを判断する判断ステップと、前記ホスト機器から与えられた読み取り要求のＬＢＡ番号が前記記録装置には実際に保持されていない前記仮想ファイル空間の領域の記録内容に該当すると判断した場合は、メモリ上に前記ホスト機器から与えられた読み取り要求のＬＢＡ番号に相当する記録内容を生成する第１の処理ステップと、前記ホスト機器から与えられた読み取り要求のＬＢＡ番号が前記記録装置に実際に保持されている前記仮想ファイル空間の領域の記録内容に該当すると判断した場合は、前記ホスト機器から与えられた読み取り要求のＬＢＡ番号を、当該読み取り要求のＬＢＡ番号に相当する記録内容が保持されている前記記録装置の実際のＬＢＡ番号に変換し、前記記録装置から該変換されたＬＢＡ番号で指定される実際に保持されている記録内容を読み取って、メモリ上に展開する第２の処理ステップとからなることを特徴とする。
【００２４】
また、本発明に係るデバイス機器の記録装置のフォーマット変換方法では、前記仮想ファイル空間は、仮想管理領域及び仮想データ領域を有し、該仮想データ領域は、前記記録装置のデータ領域と同容量に設定され、さらに仮想ディレクトリエントリ領域と該仮想ディレクトリエントリ領域に続く仮想ファイル領域とに分割され、前記ホスト機器から与えられた読み取り要求のＬＢＡ番号が、該仮想ファイル空間における仮想管理領域及び仮想データ領域の仮想ディレクトリエントリ領域の記録内容の読み取りに該当するか、又は仮想データ領域の仮想ファイル領域に該当するかを判断する判断ステップと、前記ホスト機器から与えられた読み取り要求のＬＢＡ番号が前記仮想ＦＡＴ空間の仮想管理領域又は仮想ディレクトリエントリ領域の記録内容に該当する場合は、メモリ上に前記ホスト機器から与えられた読み取り要求のＬＢＡ番号に相当する記録内容を生成する第１の処理ステップと、前記第２の処理手段は、前記ホスト機器から与えられた読み取り要求のＬＢＡ番号が仮想データ領域の仮想ファイル領域に該当する場合は、前記ホスト機器から与えられた読み取り要求のＬＢＡ番号を、当該読み取り要求のＬＢＡ番号に相当する記録内容が保持されている前記記録装置の実際のＬＢＡ番号に変換し、前記記録装置から該変換されたＬＢＡ番号で指定される実際に保持されている記録内容を読み取って、メモリ上に展開する第２の処理ステップとからなることを特徴とする。
【００２５】
また、本発明に係るデバイス機器の記録装置のフォーマット変換方法では、前記独自ファイルシステムによって管理される前記記録装置の実際のディレクトリエントリのグループ毎に、当該グループについての情報を記録するディレクトリエントリ生成用中間テーブルを生成／更新するとともに、前記独自ファイルシステムによって管理される前記記録装置の実際のファイル毎に、当該ファイルについての情報が記録されるファイル用中間テーブルを生成／更新する中間テーブル生成／更新ステップを備え、前記第１の処理ステップ及び第２の処理ステップは、該中間テーブル生成／更新手段によって生成／更新されたディレクトリエントリ生成用中間テーブル及び該ファイル用中間テーブルからなる中間テーブルを参照しながら、それぞれ処理を行うことを特徴とする。
【発明の効果】
【００２６】
本発明のデバイス機器、及びデバイス機器の記録装置のフォーマット変換方法によれば、デバイス機器は、その記録装置に記録され、独自ファイルシステムで管理されている全ファイルの開始ブロック位置とリンクをたどり、デバイス機器において独自のファイルシステムで管理されている全ファイルの開始ブロック位置とリンクを、ホスト機器におけるファイルシステムによるクラスタ番号に変換し、この変換したクラスタ番号を記録装置のＦＡＴ情報として全部登録しておく必要もなくなる。
【００２７】
そして、デバイス機器は、ホスト機器から与えられる読み取り要求の「先頭のＬＢＡ番号」が仮想ＦＡＴ空間（仮想ファイル空間）上のどの仮想領域の記録部分に該当するかに基づき、迅速かつ的確にホスト機器が要求する独自ファイルフォーマットによって管理された記録装置の記録内容を特定することができる。
【００２８】
また、ホスト機器からの１回の読み取り要求で与えられる「読み取り個数」の上限も、最高でも２５６個であるから、デバイス機器は、ホスト機器から読み取り要求された該当する記録内容を展開するために“２５６×５１２バイト＝１２８ＫＢ”のメモリ空間を用意すれば、ホスト機器からの全ての読み取り要求に答えることが可能になる。
【００２９】
さらに、独自ファイルフォーマットによって管理された記録装置のディレクトリ及びファイルに関しての情報が記録された中間テーブルを生成し、ホスト機器から与えられるＬＢＡ番号を指定した読み取り要求に対する処理を、この中間テーブルを参照して対処することにより、さらにその処理を迅速かつ効率的に行うことができる。
【発明を実施するための最良の形態】
【００３０】
以下、本発明に係るデバイス機器、及びデバイス機器の記録装置のフォーマット変換方法について、その実施の形態を図面とともに説明する。
なお、ホスト機器２０と本発明の一実施の形態に係るデバイス機器１０との物理接続については、図２６に示した従来の接続構成と変わりがないので、その説明は省略する。
【００３１】
図１は、ホスト機器と本発明の一実施の形態に係るデバイス機器との論理接続を示した図である。
本発明の一実施の形態に係るデバイス機器１０の構成は、図２７に示した従来のデバイス機器１１０の構成に対し、記録装置１１のファイルシステムがＦＡＴファイルシステム２５から独自ファイルシステム１５に変更され、ＦＡＴエミュレータ部１８が新たに備えられている点が相異する。
【００３２】
ホスト機器２０は、このデバイス機器１０の記録装置１１に記録されたファイルやディレクトリを読み取る際、自身の記録装置２１がＦＡＴファイルシステム２５によって管理されていることに基づき、通信ドライバ２９を介してマスストレージ接続されたデバイス機器１０の記録装置１１に対しても、マスストレージドライバ２８からＦＡＴファイルシステム２５に基づいたＬＢＡ番号（絶対セクタ番号）を指定した読み取り要求を発行する（ステップＳ101）。
この読み取り要求に対して、デバイス機器１０の通信ドライバ１９は、ホスト機器２０により指定されたＬＢＡ番号をＦＡＴエミュレータ部１８に渡す（ステップＳ102）。
【００３３】
ＦＡＴエミュレータ部１８は、通信ドライバ１９から受け取ったホスト機器２０により指定されたＬＢＡ番号のＬＢＡ変換処理を行う。ＦＡＴエミュレータ部１８は、ＬＢＡ変換処理として、ホスト機器２０により指定されたＬＢＡ番号から判断し、独自ファイルシステム１５によって管理されている記録装置１１に該当データが実際に記録されていない場合には、該当データを生成したり、記録装置１１に該当データが実際に記録されている場合には、独自ファイルシステム１５によって管理する該当データの実際のＬＢＡ番号に変換したりする。
【００３４】
その上で、ＦＡＴエミュレータ部１８は、ホスト機器２０により指定されたＬＢＡ番号を、ＬＢＡ変換処理によって、独自ファイルシステム１５によって管理する該当データの実際のＬＢＡ番号に変換した場合は、その実際のＬＢＡ番号を記録装置用ドライバ１７に渡す（ステップＳ103）。
【００３５】
そして、記録装置用ドライバ１７は、このＦＡＴエミュレータ部１８によって変換された実際のＬＢＡ番号の記録内容（データ）を独自ファイルシステム１５によって管理された記録装置１１の記録媒体から読み取る（ステップＳ104，Ｓ105）。
【００３６】
通信ドライバ１９には、ＦＡＴエミュレータ部１８がＬＢＡ変換処理によって生成した該当データや、記録装置用ドライバ１７を介して独自ファイルシステム１５によって管理された記録装置１１から読み取った実際のＬＢＡ番号の記録内容が供給され（ステップＳ106）、通信ドライバ１９は、これをホスト機器２０によって指定されたＬＢＡ番号で記録装置１１に記録されているデータとして、ホスト機器２０に転送する（ステップＳ107）。
【００３７】
このように、ホスト機器２０がＬＢＡ番号で指定した記録内容と、デバイス機器１０の記録装置１１で独自ファイルシステム１５により同じＬＢＡ番号で管理された記録内容とが異なるとしても、デバイス機器１０は、ホスト機器２０が指定したＬＢＡ番号を常にＦＡＴエミュレータ部１８によってＬＢＡ変換して、独自ファイルシステム１５により管理されているデバイス機器１０の記録装置１１から、このホスト機器２０が指定したＬＢＡ番号と同じＬＢＡ番号の記録内容を読み取ったようにして、ホスト機器２０がＬＢＡ番号で指定した記録内容に相当する記録内容を出力する。そのため、ホスト機器２０側としては矛盾なく、ＦＡＴファイルシステム２５に基づくＬＢＡ番号を指定した記録内容の読み取り処理を進行できる。
【００３８】
次に、上述したＦＡＴエミュレータ部１８、及びこのＦＡＴエミュレータ部１８を備えたデバイス機器１０の詳細について説明する。
図２は、本発明の一実施の形態に係るデバイス機器の記録装置における記録媒体の独自ファイルフォーマットと仮想ＦＡＴファイルフォーマットとの対比図である。
【００３９】
図２（ａ）は、本実施の形態のデバイス機器１０の記録装置１１に係り、その独自ファイルシステム１５による記録媒体のファイルフォーマット４０の一実施例を示したものである。
記録装置１１の独自ファイルシステム１５は、デバイス機器１０の特性上、決められたビットレートでのデータの記録・再生を必要とする。そのため、記録装置１１が１回に読み書きする基本単位としてのブロックは、フラグメンテーションを避けるため、ホスト機器２０のＦＡＴファイルシステム２５における基本単位としてのクラスタのサイズ（最大でも６４ＫＢ）に比べて遥かに大きいサイズ（例えば、５１２ＫＢ、１ＭＢ、又は２ＭＢ）になっている。
【００４０】
この独自ファイルシステム１５による独自ファイルフォーマット４０は、ＦＡＴファイルシステム２５のＦＡＴ情報にとらわれない、独自の管理領域４１とデータ領域４２とを備えている。その上で、例示した独自ファイルフォーマット４０では、階層化ディレクトリ構造もサポートしている。
【００４１】
図２（ａ）において、そのデータ領域４２内のブロック４３は、ファイルが配置されているファイルブロック部分４３ｆ、及び階層化ディレクトリのエントリを意味するディレクトリ（フォルダ）が配置されているディレクトリブロック部分４３ｄ、さらに、デバイスの都合上、記録装置１１に保持せねばならないデータであってホスト機器２０に対しては不可視として扱う不可視コンテンツが配置されている不可視ブロック部分４３ｃに大別される。これら、ファイル，ディレクトリエントリ，及び不可視コンテンツは、独自ファイルフォーマット４０の都合上、物理的に不連続な複数のブロック４３に分割されて配置される場合もある。
【００４２】
そして、本実施の形態のデバイス機器１０では、ＦＡＴエミュレータ部１８によって、図２（ａ）に示した如くの独自ファイルフォーマット４０を備えた記録装置１１は、図２（ｂ）に示すような仮想ＦＡＴファイルフォーマット５０を備えた仮想記録装置２１'に偽装されて、ホスト機器２０に対して取り扱われる。
【００４３】
図２（ｂ）は、本実施の形態のデバイス機器１０の記録装置１１をホスト機器２０に対して仮想記録装置２１'に見せかけるための仮想ＦＡＴファイルフォーマットの一実施例を示したものである。
【００４４】
仮想ＦＡＴファイルフォーマット５０は、仮想管理領域５１と、仮想データ領域５２とを備え、さらに仮想データ領域５２は、仮想ディレクトリエントリ領域５３と、仮想ファイル領域５４とを備えている。
【００４５】
この仮想ＦＡＴファイルフォーマット５０において、実際に必要であるのは、仮想クラスタ番号が“０”及び“１”のクラスタＣ(0)，Ｃ(1)によって構成される仮想管理領域５１であり、デバイス機器１０のＦＡＴエミュレータ部１８によってこの仮想管理領域５１がデバイス機器１０の記録装置１１を含むメモリ上に生成される。
【００４６】
この仮想クラスタ番号が“０”のクラスタＣ(0)の記録内容は、独自ファイルフォーマット４０の管理領域４１の記録内容から生成される。ＦＡＴファイルシステム２５を備えるホスト機器２０側からの読み取り要求は、最低で５１２バイト、最高でも１２８ＫＢに満たないので、少なくとも仮想管理領域５１に属するこのクラスタＣ(0)の記録内容については、デバイス機器１０の記録装置１１を含むメモリ上に展開した上で、ホスト機器２０側にデータとして渡せる構成になっている。このクラスタＣ(0)の記録内容は、ＦＡＴファイルシステム２５に基づくＭＢＲ（Master Boot Record），ＤＰＢ（Drive Parameter Block），ＦＳＩＮＦＯ（File System Information） 等に相当する。
【００４７】
また、仮想クラスタ番号が“１”のクラスタＣ(1)は、記録装置１１の記録媒体上のファイルデータの記録領域間の繋がりを認識できるようにするための繋がり情報（ＦＡＴ情報）を記録するファイルアロケーションテーブル２６としてのＦＡＴ１，ＦＡＴ２に相当する。このＦＡＴ１とＦＡＴ２との内容は、ＦＡＴファイルシステム２５の規定によれば全く同じで、一方のＦＡＴ１が破壊されたときに、他方のＦＡＴ２の内容を代替で使用できるようになっている。
【００４８】
そして、このＦＡＴ１，ＦＡＴ２では、記録装置１１の先頭の２クラスタ分に該当する領域のＦＡＴ情報は固定値となっている。この固定値部分のＦＡＴ情報については、図２（ｂ）中に示したＦＡＴ１，ＦＡＴ２の具体例では、“ＦＩＸ”で図示してある。
【００４９】
ファイルアロケーションテーブル２６としてのＦＡＴ１，ＦＡＴ２は、独自ファイルフォーマット４０において例示した、ファイル“１（1-1〜1-3）”，ファイル“２（2-1〜2-5）”，ディレクトリエントリ“Ａ（A-1〜A-4）”，ディレクトリエントリ“Ｂ（B-1,B-2）”が、ＦＡＴファイルシステム２５の基礎管理単位であるクラスタ単位ではどのような形でリンクされているかを示すものである。実際に、記録装置２１の記録媒体上では、図２（ａ）の独自ファイルフォーマット４０におけるファイル“２（2-1〜2-5）”やディレクトリエントリ“Ａ（A-1〜A-4）”で例示したように、複数のクラスタを使用するファイルやディレクトリエントリは、その使用した複数のクラスタが不連続になることが多い。
【００５０】
そこで、本実施例の仮想ＦＡＴファイルフォーマット５０では、仮に独自ファイルシステム１５の独自ファイルフォーマット４０上における配置が非連続であったとしても、その仮想ディレクトリエントリ領域５３や仮想ファイル領域５４上では、全てのファイル及びディレクトリエントリを、図２（ｂ）に示すように連続して配置する構成を採用する。これにより、デバイス機器１０側の処理負荷の軽減がはかれることになる。このように、独自ファイルシステム１５の独自ファイルフォーマット４０上における配置が非連続であったとしても、仮想ＦＡＴファイルフォーマット５０上では、全てのファイル並びにディレクトリエントリを「連続して配置する」ことを、以下、「シリアライズ展開」と称することにする。
【００５１】
また、図２（ｂ）に示すように、本実施例のＦＡＴエミュレータ部１８によるＦＡＴエミュレーションでは、例外的に、仮想ＦＡＴファイルフォーマット５０における仮想ディレクトリエントリ領域５３の最終のディレクトリエントリ“Ｂ（B-1,B-2）”と、仮想ファイル領域５４の最初のファイル“１（1-1〜1-3）”との間には、ファイル“１”，“２”の仮想クラスタ番号の算出を容易にするために、敢えて不連続な領域が定義されている。
【００５２】
仮想ＦＡＴファイルフォーマット５０では、ファイルアロケーションテーブル２６としてのＦＡＴ１，ＦＡＴ２にしたがって、以降、仮想ディレクトリエントリ領域５３と仮想ファイル領域５４とにデータを配置する。ここで、両領域５３，５４にデータを配置するといっても、実際に記録装置１１の記録媒体上に両領域５３，５４を設けてデータを配置するのではなく、デバイス機器１０の記録装置１１を含むメモリ上を使用して、記録装置１１にあたかも両領域５３，５４があってデータが配置されているように、ホスト機器２０に対して見せかけるだけである。
【００５３】
実際のＦＡＴファイルシステム２５においては、ディレクトリエントリのみが、記録装置２１の記録媒体上のクラスタ番号が“２”のクラスタＣ(2)から始まるデータ領域に、先頭側から固まって実際に配置され、ディレクトリエントリ領域５３を形成して存在するとは限らない。
【００５４】
しかしながら、本実施例の仮想ＦＡＴファイルフォーマット５０のエミュレートでは、ディレクトリエントリのみを、クラスタ番号が“２”のクラスタＣ(2)から始まる仮想データ領域５２に、その先頭クラスタ方向に連続して配置する。図２（ｂ）に示した実施例では、２つのディレクトリエントリ“Ａ（A-1〜A-4）”，“Ｂ（B-1,B-2）”が、クラスタ番号が“２”のクラスタＣ(2)から始まる仮想データ領域５２の先頭クラスタ側に存在することになる。この場合、ディレクトリエントリ“Ａ”は、いわゆるルートディレクトリに相当する。
【００５５】
このルートディレクトリに存在するファイルやディレクトリの総数については、ＦＡＴの種類によって異なる。具体的には、ルートディレクトリに存在するファイルやディレクトリの総数は、その種類が「ＦＡＴ３２」システムでは特に制限がないが、「ＦＡＴ１６」システム，「ＦＡＴ１２」システムでは、それぞれ５１２個，１,０２４個といった制限がある。そのため、仮に「ＦＡＴ１６」システムや「ＦＡＴ１２」システムのエミュレートを行う場合、この制限を超えたものについてはサブディレクトリを生成して、その中のファイルとしてホスト機器２０に見せる必要がある。なお、デバイス機器１０側の仮想ＦＡＴファイルフォーマット５０でルートディレクトリ“Ａ”に生成するファイルやディレクトリエントリの数を制限するように実装を行えば、この問題の発生を防ぐことができる。
【００５６】
したがって、実施例の「ＦＡＴ３２」システムによる仮想ＦＡＴファイルフォーマット５０では、仮想ディレクトリエントリ領域５３のディレクトリエントリ“Ｂ”の後、しばらく仮想の空き領域が続いた上で、仮想ファイル領域５４が配置される。
【００５７】
図２（ｂ）に示した実施例では、仮想ファイル領域５４には、説明簡便のため、ファイル“１（1-1〜1-3）”とファイル“２（2-1〜2-5）”との２つのファイルだけしか存在していない状況が図示されている。そして、ファイル“１（1-1〜1-3）”が３ブロック、ファイル“２（2-1〜2-5）”が５ブロックを使用している状況が図示されている。
【００５８】
このような構成からなる仮想ＦＡＴファイルフォーマット５０を、デバイス機器１０のＦＡＴエミュレータ部１８により生成するにあたっては、後述する中間テーブル７０を生成してから行われる。この中間テーブル７０は、図２（ａ）に破線で示したように、デバイス機器１０における記録装置１１の実際の管理領域４１又はデータ領域４２に、不可視コンテンツの場合と同様に不可視に生成されて保持されている構成でもよいし、又はデバイス機器１０に備えられた記録装置１１とは別の記録装置、例えば揮発性メモリ（ＲＡＭ）や不揮発性メモリ（例えば、フラッシュメモリ等）に保持する構成でもよい。
【００５９】
次に、上述した仮想ＦＡＴファイルフォーマット５０による仮想ＦＡＴ空間５０ｓの構成について、実施例に基づき説明する。
この仮想ＦＡＴファイルフォーマット５０によって記録装置１１を含むデバイス機器１０に構成される仮想ＦＡＴ空間５０ｓは、独自ファイルシステム１５の定義により実装依存である。そこで、一例として、次のようなデバイス機器１０における独自ファイルシステム１５及び記録装置１１の構成を便宜的に想定し、上述した仮想ＦＡＴファイルフォーマット５０による仮想ＦＡＴ空間５０ｓの構成及び生成方法の一実施例について説明する。
【００６０】
本実施例で想定するデバイス機器１０における実際の記録装置１１の諸元は、例えば、その記憶容量が２０ＧＢで、その中、１０％に該当する２ＧＢを管理領域４１として使用し、実際のデータ領域４２は１８ＧＢであるものとする。また、記録装置１１が１回に読み書きする基本単位としてのブロック（ホスト機器２０の記録装置２１が１回に読み書きする基本単位としてのクラスタに対応）のサイズは、独自ファイルシステム１５によって２種類が混在し、第１のブロックサイズは１ブロック当たり１６ＫＢとし、第２のブロックサイズは１ブロック当たり１ＭＢ（＝１０２４ＫＢ）であるものとする。また、このデータ領域４２における第１のブロックサイズによるデータ領域と第２のブロックサイズによるデータ領域との混在比率は、ダイナミックに変化するものとし、その情報は管理領域４１に記録されるものとする。
【００６１】
これに対し、ＦＡＴエミュレータ部１８によってエミュレートされて構成される仮想記録装置２１'の諸元は、例えば、仮想記録装置２１'自体は「ＦＡＴ３２」システムのエミュレートを行うものであって、その１回に読み書きする基本単位としてのクラスタのサイズは１６ＫＢ（＝４２セクタ）であるものとする。仮想記録装置２１'では、仮想データ領域５２として、実際の記録装置１１のデータ領域３２の１８ＧＢをそのまま使用するが、ＦＡＴファイルシステム２５の特性上、１ＧＢを仮想ディレクトリエントリ領域５３として固定し、残り１７ＧＢを仮想ファイル領域５４とする。なお、この仮想ディレクトリエントリ領域５３と仮想ファイル領域５４との比率は、独自ファイルシステム１５の構成により実装依存であるので、常にこのようになるとは限らない。
【００６２】
以上の条件から、算出した仮想ＦＡＴ空間５０ｓのマッピングを図３に示し、図２に示したデバイス機器１０の記録装置１１の独自ファイルフォーマット４０と仮想ＦＡＴファイルフォーマット５０との関係を参照しながら、この仮想ＦＡＴ空間５０ｓについて説明する。
【００６３】
図３は、本発明の一実施の形態に係るデバイス機器に関し、実際の記録装置及び仮想記録装置それぞれの記憶空間におけるマッピングの一実施例を示した図である。
図３において、仮想記録装置２１'の仮想ディレクトリエントリ領域５３と仮想ファイル領域５４と合わせた仮想データ領域５２は、実際の記録装置１１のデータ領域４２そのものを反映していることを意味している。ただし、仮想記録装置２１'では、実際の記録装置１１のデータ領域４２中のディレクトリエントリについては、そのまま仮想記録装置２１'の仮想ＦＡＴ空間５０ｓの仮想ディレクトリエントリ領域５３にデータが反映されるのではなく、ＦＡＴファイルシステム２５に合わせた変更が施されている。それ以外の仮想ＦＡＴ空間５０ｓの領域５１，５４は、実際の記録装置１１には存在しない部分であり、ホスト機器２０からのＦＡＴファイルシステム２５に基づく読み取り要求に応じてデバイス機器１０の記録装置１１を含むメモリ上に展開された上、ホスト機器２０に対してデータ転送される部分である。
【００６４】
ここで、本実施例における仮想ＦＡＴ空間５０ｓを生成するための計算例について説明する。
まず、仮想ＦＡＴ空間５０ｓを生成するに当たっては、実際の記録装置１１のデータ領域４２の大きさである１８ＧＢ分が何セクタに該当するか、そのセクタ総数Ｓdfを計算する。
Ｓdf = 18GB÷512Byte = 18×1024×1024×1024÷512 = 37748736      (1)
【００６５】
同様にして、仮想ＦＡＴ空間５０ｓにおける１ＧＢの仮想ディレクトリエントリ領域５３部分のセクタ数Ｓdを計算する。
Ｓd = 1GB÷512Byte = 1×1024×1024×1024÷512 = 2097152          (2)
【００６６】
同様にして、仮想ＦＡＴ空間５０ｓにおける１７ＧＢの仮想ファイル領域５４部分のセクタ数Ｓfを計算する。
Ｓf = 17GB÷512Byte = 17×1024×1024×1024÷512 = 35651584       (3)
【００６７】
この結果、実際の記録装置１１におけるデータ領域４２の１８ＧＢ分の仮想ＦＡＴ空間５０ｓにおける仮想データ領域５２の仮想クラスタ総数Ｃdfは、
Ｃdf = 37748736÷32 = 1179648                                    (4)
になることが求められる。
【００６８】
そこで、仮想データ領域５２のクラスタ総数Ｃdfが“１,１７９,６４８”である仮想ＦＡＴ空間５０ｓを仮想した場合、仮想ＦＡＴファイルシステム２５としての管理領域が２クラスタ分あるので、仮想ＦＡＴ空間５０ｓにおけるクラスタ総数Ｃtは、
Ｃt = 1179648+2 = 1179650                                        (5)
になる。
【００６９】
同様して、仮想ディレクトリエントリ領域５３及び仮想ファイル領域５４それぞれのクラスタ総数Ｃd，Ｃfは、
Ｃd = 2097152÷32 = 65536                                        (6)
Ｃf = 35651584÷32 = 1114112                                     (7)
になることが求められる。
【００７０】
その上で、仮想ＦＡＴ空間５０ｓおけるクラスタ総数Ｃtである“１,１７９,６５０”クラスタをサポートする仮想ファイルアロケーションテーブル２６としての仮想ＦＡＴに必要なセクタ数Ｃfatを求める。本実施例では、仮想ＦＡＴは「ＦＡＴ３２」システムのため、１クラスタの管理に必要な記録容量は“３２ビット＝４バイト”であり、１セクタは５１２バイトのため、１セクタ当たり“５１２÷４＝１２８”個のクラスタが管理可能である。
【００７１】
したがって、１つのＦＡＴに必要なセクタ数Ｃfatは、
Ｃfat = 1179650÷128 = 9216.0156255                              (8)
になる。これを正規化すると１つの仮想ＦＡＴ当たり、９,２１７セクタが必要なことを求めることができる。
【００７２】
しかし、実際には、仮想ＦＡＴとして、ＦＡＴ１及びＦＡＴ２の２つの仮想ファイルアロケーションテーブル２６が必要なので、仮想ＦＡＴだけに必要なセクタ総数Ｃtfatは、
Ｃtfat = 9217×2 = 18434                                         (9)
になる。
【００７３】
次に、上述した仮想記録装置２１'の仮想ＦＡＴ空間５０ｓにおける各部の配置について説明する。
まず、仮想ＦＡＴ空間５０ｓにおける仮想ＭＢＲの配置とその仮想ＬＢＡ番号について説明する。
【００７４】
ＭＢＲは、いわゆる記録装置１１の物理セクタ“０”に配置され、ホスト機器２０は最初にここを読み、デバイス機器１０の記録装置１１における記録媒体の物理的な情報、及びパーティションの切られ方を判断する。また、ＭＢＲには、ＩＰＬ（Initial Program Loader）も記載されている。そして、このＭＢＲの領域は、１セクタ(５１２バイト)サイズしかないので、実際には記録装置１１の記録媒体に記載されていてもよいし、ホスト機器２０側から読み取り要求があった場合、記録装置１１を含むデバイス機器１０の記録装置１１を含むメモリ上に仮想的に生成してホスト機器２０に返しても、どちらでもよい。
【００７５】
本実施例では、ＭＢＲは、ホスト機器２０側からＬＢＡ番号が“０”の読み取り要求があった際に、デバイス機器１０のメモリ上の、記録装置１１とは別の記録装置（例えば、ＲＡＭ，フラッシュメモリ等）に仮想的に生成する構成になっている。そのため、本実施例では、ＭＢＲの仮想ＦＡＴ空間５０ｓおける仮想ＬＢＡ番号は“０”で固定である。また、バックアップ用のＭＢＲ(2)の仮想ＬＢＡ番号は“１”で、同じく固定である。
【００７６】
次に、仮想ＦＡＴ空間５０ｓにおけるＤＰＢ（Drive Parameter Block）の配置とその仮想ＬＢＡ番号について説明する。
このＤＰＢは、ＢＰＢ（Bios Parameter Block）と称する場合もあり、記録媒体のパーティションの開始位置を示すもので、仮想ＦＡＴ空間５０ｓおける仮想クラスタ番号“０”を意味する。このＤＰＢの位置情報は、ＭＢＲに「領域開始位置」として記載されており、自由に設定が可能である。このＤＰＢは、ＭＢＲの直後に配置してもよいが、通常は、ＭＢＲの直後に配置されることはなく、数セクタ後に配置されている。
【００７７】
本実施例では、仮想ＦＡＴ空間５０ｓの仮想ＬＢＡ番号“６３”をＤＰＢの配置位置としている。そのため、仮想ＦＡＴ空間５０ｓおける仮想ＬＢＡ番号“２”〜“６２”のセクタは、未使用領域になっている。
【００７８】
そして、このＤＰＢの領域も１セクタサイズしかないので、実際には記録装置１１の記録媒体に記載されていてもよいし、ホスト機器２０からの読み取り要求があった場合、デバイス機器１０のメモリ上に仮想的に展開してからホスト機器２０に返してもよい。本実施例では、ＤＰＢは、ＭＢＲの場合と同様に、ホスト機器２０から読み取り要求があった際に、デバイス機器１０のメモリ上の、記録装置１１とは別の記録装置（例えば、ＲＡＭ，フラッシュメモリ等）に仮想的に生成する構成になっている。
【００７９】
次に、仮想ＦＡＴ空間５０ｓにおけるＦＳＩＮＦＯ（File System Information）の配置とその仮想ＬＢＡ番号について説明する。
このＦＳＩＮＦＯには、記録媒体の残りクラスタ数や、最後にアクセスしたクラスタ番号が情報として保持される。通常、ＦＳＩＮＦＯは、ＤＰＢの直後に配置されるので、仮想ＦＡＴ空間５０ｓの仮想ＬＢＡ番号“６４”を割り当てる。なお、「ＦＡＴ３２」システム以外のＦＡＴファイルシステム２５をエミュレートする場合は、特にＦＳＩＮＦＯは設定しなくてもよい。本実施例では、「ＦＡＴ３２」システムを採用しているので、ＦＳＩＮＦＯは、ＭＢＲ，ＤＰＢの場合と同様に、デバイス機器１０のメモリ上の、記録装置１１とは別の記録装置（例えば、ＲＡＭ，フラッシュメモリ等）に仮想的に生成する構成になっている。
【００８０】
次に、仮想ＦＡＴ空間５０ｓにおけるファイルアロケーションテーブル２６としての仮想ＦＡＴの配置とその仮想ＬＢＡ番号について説明する。
この仮想ＦＡＴも、仮想ＦＳＩＮＦＯの直後の仮想ＦＡＴ空間５０ｓに配置してもかまわないのであるが、本実施例では便宜上から、仮想ＦＡＴ空間５０ｓの仮想ＬＢＡ番号“６５〜９５”の仮想クラスタを未使用とし、仮想ＬＢＡ番号“９６”を仮想ＦＡＴのスタートセクタとしている。そして、この仮想ＦＡＴは、仮想ＦＡＴ１に続いて仮想ＦＡＴ２が配置されている構成になっている。
【００８１】
そこで、本実施例では、１つのＦＡＴ当たりに必要なセクタ数Ｃfatとして、９,２１７セクタが必要なことは、式（８）に示すようにして求められるので、仮想ＦＡＴ１のスタート仮想ＬＢＡ番号である“９６”にこの１つのＦＡＴに必要なセクタ数Ｃfatである“９,２１７”を加え、仮想ＦＡＴ２のスタート仮想ＬＢＡ番号には“９,３１３”を割り当てる。
【００８２】
次に、仮想ＦＡＴ空間５０ｓにおける仮想ディレクトリエントリ領域５３の配置とその仮想ＬＢＡ番号について説明する。
ファイルアロケーションテーブル２６としてのＦＡＴ２はＦＡＴ１と同じで、その記録領域として９,２１７セクタが必要であることから、仮想ディレクトリエントリ領域５３のスタート仮想ＬＢＡ番号は、仮想ＦＡＴ２のスタート仮想ＬＢＡ番号“９,３１３”に、１つのＦＡＴに必要なセクタ数Ｃfatである“９,２１７”を加えた、仮想ＬＢＡ番号“１８,５３０”を割り当てる。
【００８３】
次に、仮想ＦＡＴ空間５０ｓにおける仮想ファイル領域５４の配置とその仮想ＬＢＡ番号について説明する。
本実施例の場合、仮想ディレクトリエントリ領域５３に必要なセクタ数Ｓdは、式（２）に示したように、２,０９７,１５２セクタ（１ＧＢ）であるので、仮想ファイル領域５４のスタート仮想ＬＢＡ番号は、仮想ディレクトリエントリ領域５３のスタート仮想ＬＢＡ番号“１８,５３０”に、仮想ディレクトリエントリ領域５３に必要なセクタ数Ｓdである“２,０９７,１５２”を加えた、仮想ＬＢＡ番号“２,１１５,６８２”を割り当てる。
その上で、仮想ＦＡＴ空間５０ｓの最終仮想ＬＢＡ番号と仮想ＦＡＴ空間５０ｓ全体としてのセクタ総数Ｓtを求める。
【００８４】
本実施例の場合、仮想ファイル領域５４に必要なセクタ数Ｓfは、式（３）に示したように３５,６５１,５８４セクタ（１７ＧＢ）であるので、仮想ＦＡＴ空間５０ｓの最終仮想ＬＢＡ番号は、仮想ファイル領域５４のスタート仮想ＬＢＡ番号“２,１１５,６８２”に、仮想ファイル領域５４に必要なセクタ数Ｓfである“３５,６５１,５８４”を加えて、“１”セクタ分を引いた仮想ＬＢＡ番号“３７,７６７,２６５”になる。そして、仮想ＦＡＴ空間５０ｓにおけるセクタ総数Ｓtは、仮想ＬＢＡ番号が“０”のセクタ分を含めて、３７,７６７,２６６セクタになる。
【００８５】
さらに、パーティション１（本実施例では、ＤＰＢから仮想ＦＡＴ空間５０ｓの最終セクタまでが該当）の総セクタ数を求めると、先に求めた仮想ＦＡＴ空間５０ｓにおけるセクタ総数Ｓtである“３７,７６７,２６６”から、ＤＰＢ開始位置までに存在するセクタ数“６３”を引いた、３７,７６７,２０３セクタになる。
【００８６】
したがって、上述の仮想ＬＢＡ番号を求めた場合と同様の方法を用いて、仮想ＦＡＴ空間５０ｓにおける各部の先頭仮想クラスタ番号を求めると次のようになる。
ＤＰＢ：                          仮想クラスタ番号  “０”
ＦＡＴ１／２：                    仮想クラスタ番号  “１”
ディレクトリエントリ：            仮想クラスタ番号  “２”
ファイル領域：                    仮想クラスタ番号  “６５,５３８”
最終クラスタ：                    仮想クラスタ番号  “１,１７９,６４９”
クラスタ総数：                  “１１,７９６,９５０”クラスタ
【００８７】
この結果、図３に示した如くの仮想ＦＡＴ空間５０ｓのマッピングを経て、仮想ＦＡＴ空間５０ｓにおける仮想ＬＢＡ番号（セクタ番号）と仮想クラスタ番号との間には、次の変換式が成立することになる。
【００８８】
この変換式により、ホスト機器２０からデバイス機器１０に発行されたＬＢＡ番号（絶対セクタ番号）Ｓを指定した読み取り要求に対して、ホスト機器２０から指定されたこの要求ＬＢＡ番号Ｓが、仮想ＦＡＴ空間５０ｓおけるどの仮想クラスタに含まれるかを、変換式１に基づき求めることができる。
【００８９】
＜変換式１＞
０≦Ｓ≦６２                      仮想クラスタ  該当なし
６３≦Ｓ≦９５                    仮想クラスタ番号  “０”
９６≦Ｓ≦９３１２                仮想クラスタ番号  “１”（ＦＡＴ１）
９３１３≦Ｓ≦１８５２９          仮想クラスタ番号  “１”（ＦＡＴ２）
１８５３０≦Ｓ                    仮想クラスタ番号  “ｘ”
ｘ＝(Ｓ-１８５３０)￥３２＋２
※￥は、除算の結果の小数点以下切捨てを行う演算子。
【００９０】
よって、ホスト機器２０からデバイス機器１０に与えられる読み取り要求が指定するＬＢＡ番号（絶対セクタ番号）Ｓを、この仮想ＦＡＴ空間５０ｓの仮想ＬＢＡ番号に該当させるようにすれば、ホスト機器２０からデバイス機器１０に対して発行されるＬＢＡ番号Ｓを指定した読み取り要求が、デバイス機器１０の独自ファイルシステム１５によって管理された記録装置１１のどのクラスタ（ブロック）に相当するものであるかを、デバイス機器１０側で仮想ＦＡＴ空間５０ｓから容易に推定することができる。
【００９１】
また、例えば、デバイス機器１０からホスト機器２０に、デバイス機器１０の独自ファイルシステム１５によって管理された記録装置１１の所望のクラスタ（ブロック）の記憶内容を読み取らせたい場合は、デバイス機器１０は、仮想ＦＡＴ空間５０ｓにおけるこの所望のクラスタ（ブロック）に該当する仮想クラスタ番号の仮想ＬＢＡ番号を、ＬＢＡ番号Ｓとして指定する読み取り要求を、ホスト機器２０に発行させればよい。
【００９２】
この場合、仮想クラスタ番号と仮想ＬＢＡ番号との対応関係は、次の＜変換式２＞に示すようになる。
【００９３】
＜変換式２＞
仮想クラスタ番号  “０”          仮想ＬＢＡ番号  “６３〜９５”
仮想クラスタ番号  “１”          仮想ＬＢＡ番号  “９６〜１８５２９”
仮想クラスタ番号  “ｘ（≧２）”  仮想ＬＢＡ番号
“(ｘ−２)×３２＋１８５３０〜(Ｃ−２)×３２＋１８５３０＋３２−１”
【００９４】
次に、本発明の一実施の形態に係るデバイス機器１０による、仮想記録装置２１'の仮想ＦＡＴ空間５０ｓにおける各部の構成及び生成方法について説明する。
仮想ＦＡＴファイルシステム２５の仮想ＦＡＴ空間５０ｓ上に、ファイルアロケーションテーブル（ＦＡＴ）２６，仮想ディレクトリエントリ領域５３，仮想ファイル領域５４をマッピングするには、独自ファイルシステム１５中に存在する記録装置１１の全ファイル／全ディレクトリをシリアルに展開してから行う必要がある。
【００９５】
そのため、本実施の形態のデバイス機器１０では、図２及び図３に示した仮想ＦＡＴ空間５０ｓの各部を生成する際に、予め中間テーブル７０を生成し、この中間テーブル７０を使用して独自ファイルシステム１５中に存在する記録装置１１の全ファイル／全ディレクトリをシリアルに展開してから、仮想ＦＡＴ空間５０ｓの各部を生成する構成を採用している。これにより、記録装置１１の独自ファイルシステム１５による全ファイル／全ディレクトリのリンクをたどる必要もなく、ＰＣに比べて処理能力が劣るデバイス機器１０であっても、この中間テーブル７０を使用することによって、容易にかつ短時間で仮想記録装置２１'の仮想ＦＡＴ空間５０ｓの各部が生成可能になっている。
【００９６】
そこで、まず、この中間テーブル７０の構成及び生成方法について説明する。
本実施例の場合は、中間テーブル７０として、ディレクトリエントリ生成用中間テーブルと、ファイル用中間テーブルとが生成される。この中間テーブル７０の構成及び生成方法を説明するに当たっては、図４に示すようなディレクトリツリーが記録装置１１を管理する独自ファイルシステム１５中に存在するものと仮定して説明する。
【００９７】
図４は、デバイス機器の実際の記録装置を管理する独自ファイルシステム中に存在するディレクトリツリーの一例を示した図である。
ここで、「ディレクトリに存在するファイルとディレクトリ」を１まとめにして「グループ」と称する。この「グループ」は、「ディレクトリエントリ」の包含内容と等価になる。
【００９８】
本実施例では、デバイス機器１０は、そのＦＡＴエミュレータ部１８が、記録装置１１の管理領域４１の管理情報をもとに、各グループにつき、まず図５に示すようなディレクトリエントリ生成用中間テーブル７１を生成する。
【００９９】
図５は、ディレクトリエントリ生成用中間テーブルの一実施例の構成図である。
ディレクトリエントリ生成用中間テーブル７１には、「グループ番号」Ｇn，「ホスト機器２０上で表示したいグループの名称」Ｎg，「グループに存在するファイルとグループ（エントリ）の総計」Ｇfg，「グループに存在する最初のグループ番号」Ｇsg，「グループに存在する最後のグループ番号」Ｇeg，「グループに存在する最初のファイル番号」Ｇsf，及び「グループに存在する最後のファイル番号」Ｇefからなる情報が記録される。
【０１００】
独自ファイルシステム１５のデータ領域４２に、グループやファイルが存在しない場合は、上記ディレクトリエントリ生成用中間テーブル７１には、“−１”を設定する（２バイトアサインのため、実際は“０ｘＦＦＦＦ”）。よって、グループに存在しうる最大のグループ番号、又は最大のファイル番号は、前述した仮想ＦＡＴ空間５０ｓにおける１ＧＢの仮想ディレクトリエントリ領域５３の関係から、“６５,５３４”となる。
【０１０１】
なお、この上限は、ディレクトリエントリ生成用中間テーブル７１の定義の仕方によって変動する。つまり、ファイル数やディレクトリ数が極端に多い独自ファイルフォーマット４０をエミュレートする場合は、ディレクトリエントリ生成用中間テーブル７１に割り当てるバイト数を増やして対応する。また、本実施例では、仮想ＦＡＴ空間５０ｓの生成時に、仮想ディレクトリエントリ領域５３の上限を１ＧＢに設定したが、この設定によっても各グループに存在しうる下位グループやファイルの数の上限も制限が加わる。独自ファイルフォーマット４０の仕様によっては、仮想ＦＡＴ空間５０ｓの仮想ディレクトリエントリ領域５３のサイズを調整する。
【０１０２】
このような定義にしたがって、図４に示したディレクトリツリーを例に、独自ファイルシステム１５中におけるグループ番号“０”のディレクトリエントリ生成用中間テーブル７１を生成すると、図６に示すようになる。
【０１０３】
図６は、グループ番号“０”のディレクトリエントリ生成用中間テーブルの構成図である。
図６に示したディレクトリエントリ生成用中間テーブル７１では、「グループ番号」Ｇnは“０”、「ホスト機器２０上で表示したいグループの名称」Ｎgは“￥（ルートディレクトリ）”になる。また、「グループに存在するファイルとグループ（エントリ）の総計」Ｇfgは、グループ番号“０”のグループには、グループ番号“１”，“２”の２つのエントリ“Ｄir１”，“Ｄir２”が存在し、ファイル番号“０”〜“２”の３つのファイル“Ｆile０”〜“Ｆile２”が存在するので、“５”になる。また、「グループに存在する最初のグループ番号」Ｇsnは“１”、「最後のグループ番号」Ｇenは“２”、「最初のファイル番号」Ｇsfは“０”、「最後のファイル番号」Ｇefは“２”になる。
【０１０４】
同様に、グループ番号“１”のテーブルを生成すると、図７に示すようになる。
図７は、グループ番号“１”のディレクトリエントリ生成用中間テーブルの構成図である。
【０１０５】
以上のようにして生成したディレクトリエントリ生成用中間テーブル７１は、１グループ当たり２４バイトで形成される。また、グループ毎に生成されるディレクトリエントリ生成用中間テーブル７１のグループ総数は、仮想ＦＡＴ空間５０ｓの仮想ディレクトリエントリ領域５３のサイズが１ＧＢである関係から、後述のように約２,７００になる。したがって、ディレクトリエントリ生成用中間テーブル７１は、全体でも６４,８００バイト（24×2700）に過ぎない。
【０１０６】
このように、ディレクトリエントリ生成用中間テーブル７１は、全体でもサイズが小さいので、前述したＭＢＲ、ＤＰＢ、ＦＳＩＮＦＯの場合と同様に、デバイス機器１０の記録装置１１を含むメモリ上に展開する。
【０１０７】
本実施例では、前述した仮想ＭＢＲ、仮想ＤＰＢ、仮想ＦＳＩＮＦＯの場合とは異なり、図２に示すように、記録装置１１の独自ファイルフォーマット４０中の管理領域４１又はデータ領域４２の中間テーブル退避領域に展開して不可視に生成するものとする。
【０１０８】
また、本実施例では、デバイス機器１０は、そのＦＡＴエミュレータ部１８が、記録装置１１の管理領域４１の管理情報をもとに、各グループのファイルにつき、図８に示すようなファイル用中間テーブル７２を生成する。
【０１０９】
図８は、ファイル用中間テーブルの一実施例を示した図である。
ファイル用中間テーブル７２には、「所属するグループ番号」Ｇn，「ファイルシリアル番号」Ｆn，「ホスト機器２０上で表示したいファイル名」Ｎf，「ブロックサイズ」Ｂs，「作成時刻」Ｔt，「作成日時」Ｔd，「更新時刻」Ｔut，「更新日時」Ｔud，「ファイル先頭の物理ＬＢＡアドレス」Ａd，「ファイル長」Ｌf，「ファイル開始仮想クラスタ番号」Ｃfs，「ファイル終了仮想クラスタ番号」Ｃfe，「特殊フラグ」flgといった情報が含まれている。
【０１１０】
「所属するグループ番号」Ｇnには、図５に示したディレクトリエントリ用の中間テーブル７１の作成時に説明した、所属するグループ番号Ｇn（図４参照）が記載される。例えば、本実施例ではルートディレクトリに存在するファイル“Ｆile０”〜“Ｆile２”の場合、「所属するグループ番号」Ｇnは“０”となる。
【０１１１】
「ファイルシリアル番号」Ｆnには、ディレクトリエントリ生成用中間テーブル７１の作成時に付されるファイルにユニークなシリアル番号が記載される。
「ホスト機器上で表示したいファイル名」Ｎfには、ディレクトリエントリに記載するファイル名が記載される。このファイル名Ｎfは、独自ファイルフォーマット４０の管理領域４１からリンクをたどり、その独自管理情報から生成されたものでも、新たに生成し直されたものでもかまわない。本実施例では、ＤＯＳ形式でのファイル名しか許していないので、１２バイトとしているが、ＬＦＮ（Long File Name＝長いファイル名）対応させる場合には拡張が施される。
【０１１２】
「ブロックサイズ」Ｂsには、ファイルが使用している基本ブロックサイズが記載される。本実施例の場合には、その諸元により、ブロックサイズは、１ＭＢか、１６ＫＢかのいずれかが記載される。
【０１１３】
「作成時刻」Ｔt，「作成日付」Ｔd，「更新時刻」Ｔut，及び「更新日付」Ｔudといった履歴情報には、ディレクトリエントリ生成用中間テーブル７１の生成時は、ホスト機器２０の接続要求の日付、時間を記載したが、ファイル用中間テーブル７２の生成時には、独自ファイルフォーマット４０の管理領域４１中にある該当ファイルの生成日付、生成時間等のデータが、ＦＡＴファイルシステム２５のディレクトリエントリに記載可能な２バイトのフォーマットに変換した上で記載される。
【０１１４】
「ファイル先頭の物理ＬＢＡアドレス」Ａdには、デバイス機器１０で、その独自ファイルフォーマット４０が管理する記録装置１１の実際のファイル開始ＬＢＡ番号が記憶される。すなわち、デバイス機器１０の記録装置１１は、独自ファイルフォーマット４０で管理されていても、ファイルである以上、その記憶内容は必ず記録装置１１内のどこかの物理セクタから開始するはずで、このセクタ番号は、何らかの形で独自ファイルフォーマット４０が管理しているはずである。したがって、「ファイル先頭の物理ＬＢＡアドレス」Ａdには、この実際の記録装置１１におけるファイルの開始ＬＢＡ番号が記載される。
【０１１５】
「ファイル長」Ｌfには、独自ファイルフォーマット４０の管理領域４１から該当ファイルのファイル長が取得され、記載される。本実施例では、「ファイル長」Ｌfは、８バイト確保されている。「ファイル長」Ｌfが８バイト以上の長さが必要な場合、そのファイルはファイル長が４ＧＢ以上ファイルであり、特殊処理が必要となる。
【０１１６】
「ファイル開始仮想クラスタ番号」Ｃfsは、該当ファイルに対してファイルシリアル番号が１つ前のファイルについての、仮想ＦＡＴ空間５０ｓの仮想ファイル領域５４における「ファイル終了仮想クラスタ番号」Ｃfeに“１”を加えた値が記載される。該当ファイルのファイルシリアル番号Ｆnが“０”で、１つ前のファイルが存在しない場合は、自動的に図３に示した仮想ＦＡＴ空間５０ｓの仮想ファイル領域（ファイル領域）５４の先頭クラスタ番号“６５,５３８”が、ファイル開始仮想クラスタ番号Ｃfsとして記載されることになる。
「ファイル終了仮想クラスタ番号」Ｃfeは、ファイル開始仮想クラスタ番号Ｃfsとファイル長Ｌfとから求められたファイル終了仮想クラスタ番号が記載される。
【０１１７】
このように構成されたファイル用中間テーブル７２において、ファイル開始仮想クラスタ番号Ｃfs及びファイル終了仮想クラスタ番号Ｃfeの算出は、例えば次のようにして行われる。
【０１１８】
まず、ファイルシリアル番号Ｆnが“０”のファイルのファイル仮想開始クラスタ番号Ｃfs(0)とファイル仮想終了クラスタ番号Ｃfe(0)の算出を行う。この場合、ファイルシリアル番号Ｆnが“０”のファイルのファイル仮想開始クラスタ番号Ｃfs(0)は、前述したように、仮想ＦＡＴ空間５０ｓにおける仮想ファイル領域５４先頭の仮想ＬＢＡ番号で、“６５,５３８”で固定である。
【０１１９】
したがって、ファイルシリアル番号Ｆnが“０”のファイルのファイル長をＬf(0)とすると、本実施例では仮想クラスタの１クラスタは１６ＫＢなので、このファイルに必要なクラスタ総数Ｃffは、
Ｃff(0)＝［Ｌf(0)÷（１６×１０２４）]＋１になる。
【０１２０】
したがって、ファイルシリアル番号“０”のファイルのファイル仮想終了クラスタ番号Ｃfe(0)は、
Ｃfe(0)＝Ｃfs(0)＋Ｃff(0)−１
で求めることができる。
【０１２１】
同様にして、ファイルシリアル番号“１”のファイルのファイル仮想開始クラスタ番号Ｃfs(1)と仮想終了クラスタ番号Ｃfe(1)との算出について説明する。
このファイルのファイル長がＬf(1)であれば、本実施例では１クラスタは１６ＫＢなので、その必要なクラスタ総数Ｃff(1)は、
Ｃff(1)＝［Ｌf(1)÷（１６×１０２４）]＋１
で求めることができる。
【０１２２】
したがって、ファイルシリアル番号“１”のファイルのファイル仮想開始クラスタ番号Ｃfs(1)は、前のファイル、すなわちファイルシリアル番号“０”のファイルのファイル仮想終了クラスタ番号Ｃfe(0)より、
Ｃfs(1)＝Ｃfe(0)＋１
になる。
【０１２３】
また、そのファイル仮想終了クラスタ番号Ｃfe(1)は、
Ｃfe(1)＝Ｃfs(1)＋Ｃff(1)−１
で求めることができる。
【０１２４】
これにより、ファイルシリアル番号“ｐ（≠0）”のファイル仮想開始クラスタ番号Ｃfs(p)とファイル仮想終了クラスタ番号Ｃfe(p)との算出は、次のようになる。
【０１２５】
この場合、ファイルシリアル番号“ｐ”のファイルのファイル長をＬf(p)とすると、このファイルに必要なクラスタ総数Ｃff(p)は、
Ｃff(p)＝［Ｌf(p)÷（１６×１０２４）]＋１                    (10)
で求めることができる。なお、式中の“［  ］”はガウス記号を示し、ある値を超えない最大の整数値を表す。
【０１２６】
そして、このファイルシリアル番号“ｐ”のファイルのファイル仮想開始クラスタ番号Ｃfs(p)は、前のファイル、すなわちファイル番号“ｐ-１”の仮想終了クラスタ番号Ｃfe(p-1)であれば、
Ｃfs(p)＝Ｃfe(p-1)＋１                                          (11)
である。
【０１２７】
また、このファイルシリアル番号“ｐ”のファイルのファイル仮想終了クラスタ番号Ｃfe(p)は、
Ｃfe(p)＝Ｃfs(p)＋Ｃff(p)−１                                 (12)
で求めることができる。
【０１２８】
また、「特殊フラグ」には、ホスト機器２０のＯＳに応じてどのような処理を行うかが定義される。
例えば、対象となるホスト機器２０のＯＳのバージョンによっては、ファイル長が２ＧＢや４ＧＢを超えるファイルが扱えない場合がある。このような場合に備え、本実施例では、デバイス機器１０側の記録装置１１のこのようなファイル長が２ＧＢを超えるファイルを、ホスト機器２０のＯＳが取り扱うことができる上限（４ＧＢや２ＧＢ）のファイルとしてホスト機器２０に認識させ、デバイス機器１０外部に対してそのまま見せないこととし、記録装置１１の４ＧＢや２ＧＢのファイルを分割して、例えば複数（２つ以上）のファイルとしてホスト機器２０に見せる構成になっている。ただし、この場合、分割して切り取られたファイルがどのように振舞うかについては、ファイルを扱うホスト機器２０のアプリケーション２４に依存する。そのため、この「特殊フラグ」では、デバイス機器１０側の記録装置１１に２ＧＢや４ＧＢを超えるファイルサイズのファイルが存在したときに、上記のような処理の中、ホスト機器２０のＯＳに応じてどのような処理を行うかが定義される。また、ファイルが分割されたファイルだった場合は、サブシリアル番号が独自ファイルフォーマット４０の管理領域４１に定義されることになる。当然、仮想ＦＡＴ空間５０ｓのファイルのメインのシリアル番号は増えるし、ディレクトリエントリも増えることになる。
【０１２９】
このようなファイル用中間テーブル７２の生成のために、ファイル仮想開始クラスタ番号Ｃfsの算出処理、及びファイル仮想終了クラスタ番号Ｃfeの算出処理を行うには、ファイルのファイルシリアル番号順に先頭から処理を繰り返す必要がある。そのためには、実際の記録装置１１における階層化ディレクトリ構造の解析も同時に平行して行わなければならない。そのため、このファイル用中間テーブル７２の生成は、前述したディレクトリエントリ生成用中間テーブル７１の生成と、同時に処理される。
【０１３０】
上述した構成のディレクトリエントリ生成用中間テーブル７１及びファイル用中間テーブル７２からなる中間テーブル７０の生成／更新については、デバイス機器１０の記録装置１１でファイル関連処理が発生した場合にリアルタイムに生成／更新する方法と、ホスト機器２０からデバイス機器１０にマスストレージ接続に基づく接続要求が生じた場合に生成／更新する方法との２通りの処理方法がある。
【０１３１】
次に上記処理方法それぞれによる中間テーブル７０の生成／更新について説明する。
図９は、ディレクトリエントリ生成用及びファイル用の中間テーブルをリアルタイムに生成する場合の処理概要を示したフローチャートである。
【０１３２】
デバイス機器１０の記録装置１１では、例えば、新規書込み，既存ファイルの消去，既存ファイルに対するデータの追加，既存ファイルの部分消去，既存ファイルの読み取りといったファイル関連処理の発生を検出すると（ステップＳ210）、そのファイル関連処理が、新規書込み，既存ファイルの消去，既存ファイルに対するデータの追加，既存ファイルの部分消去といったファイル情報の変更を伴う処理であるか、既存ファイルの読み取りといったファイル情報の変更を伴わない処理であるかを確認し、該当のファイル関連処理を行う（ステップＳ221〜Ｓ225）。
【０１３３】
その上で、そのファイル関連処理が、上述したファイル情報の変更を伴う処理である場合は、まず、デバイス機器１０の記録装置１１は、その独自ファイルフォーマット４０による管理領域４１の管理情報を更新する（ステップＳ230）。
【０１３４】
そして、記録装置１１のＦＡＴエミュレータ部１８は、更新された管理情報をもとに、ＦＡＴエミュレート用の中間テーブル７０、すなわちディレクトリエントリ生成用中間テーブル７１及びファイル用中間テーブル７２を生成／更新する（ステップＳ240）。
【０１３５】
続いて、デバイス機器１０の記録装置１１は、ファイル関連処理以外の非ファイル関連処理を行った上で（ステップＳ250）、これら処理の間にホスト機器２０からのマスストレージ接続による接続要求が生じているか否かの確認を行う（ステップＳ260）。
【０１３６】
以後、ホスト機器２０からの接続要求が生じるまで、デバイス機器１０は、上述したステップＳ210〜Ｓ260に示した処理を繰り返す一方、ホスト機器２０からの接続要求が生じているのが確認された場合には、ホスト機器２０とのマスストレージ接続処理を行う。
【０１３７】
この中間テーブル７０の生成／更新方法のメリットとしては、どのようなタイミングで、ホスト機器２０からマスストレージ接続による接続要求が発生しても、常に中間テーブル７０の情報は最新のものに更新されているため、ホスト機器２０との間でマスストレージ接続が実現するまでの処理時間が短くなることがある。なお、この中間テーブル７０をリアルタイムに生成／更新する方法では、中間テーブル７０用の記録領域は、記録装置１１を含むデバイス機器１０のメモリ上で常時確保されている。したがって、本実施例の場合は、独自ファイルフォーマット４０中の管理領域４１又はデータ領域４２に常時の中間テーブル退避領域として不可視に確保されているものとする。
【０１３８】
図１０は、ディレクトリエントリ生成用及びファイル用の中間テーブルをホスト機器からの接続要求時に生成する場合の処理概要を示したフローチャートである。
【０１３９】
デバイス機器１０の記録装置１１では、例えば、新規書込み，既存ファイルの消去，既存ファイルに対するデータの追加，既存ファイルの部分消去，既存ファイルの読み取りといったファイル関連処理の発生を検出すると（ステップＳ210）、そのファイル関連処理が、新規書込み，既存ファイルの消去，既存ファイルに対するデータの追加，既存ファイルの部分消去といったファイル情報の変更を伴う処理であるか、既存ファイルの読み取りといったファイル情報の変更を伴わない処理であるかを確認し、該当のファイル関連処理を行う（ステップＳ221〜Ｓ225）。
【０１４０】
その上で、そのファイル関連処理が、上述したファイル情報の変更を伴う処理である場合には、デバイス機器１０の記録装置１１は、デバイス機器１０の独自ファイルフォーマット４０中の管理情報４１を更新する（ステップＳ230）
続いて、デバイス機器１０の記録装置１１は、ファイル関連処理以外の非ファイル関連処理を行った上で（ステップＳ250）、これら処理を行う間にホスト機器２０からのマスストレージ接続による接続要求が生じているか否かの確認を行う（ステップＳ260）。
【０１４１】
以後、ホスト機器２０からの接続要求が生じるまで、上述したステップＳ210〜Ｓ260に示した処理（図９にステップＳ240で示した中間テーブル７０の生成／更新処理は除く）を繰り返す一方、ホスト機器２０からの接続要求が生じているのが確認された場合には、以下の処理を行う。
【０１４２】
デバイス機器１０の記録装置１１では、ホスト機器２０からの接続要求が生じているのが確認された場合には、独自ファイルフォーマット４０中の管理領域４１の管理情報を解析し（ステップＳ270）、記録装置１１内部又はデバイス機器１０のメモリ上にその解析結果に基づいて、中間テーブル７０、すなわちディレクトリエントリ生成用中間テーブル７１及びファイル用中間テーブル７２を生成する（ステップＳ280）。
その上で、デバイス機器１０の記録装置１１は、ホスト機器２０とのマスストレージ接続処理を行う。
【０１４３】
この中間テーブル７０の生成／更新方法のメリットとしては、中間テーブル７０用の記録領域は、ホスト機器２０とのマスストレージ接続時にのみデバイス機器１０の記録装置１１を含むメモリ上に確保すればよい。例えば、デバイス機器１０がデジタルスチルカメラである場合、撮像用のメモリを搭載しているが、このメモリを流用し、中間テーブル７０を配置するといったことが可能になる。また、ファイル関連処理に伴って、中間テーブル７０の生成／更新処理のオーバーヘッドが伴わないというメリットもある。
【０１４４】
なお、この方式では、ホスト機器２０からのマスストレージ接続の要求発生から、実際にホスト機器２０との間でのマスストレージ接続が実現するまでに、中間テーブル７０を生成するための処理時間が必要とされる。そのため、ホスト機器２０側の仕様によっては、マスストレージ接続による接続要求からマスストレージ接続実現までにタイムアウト値が設けられている場合で、デバイス機器１０側がこのタイムアウト値を超えない範囲の時間で中間テーブル７０を生成／更新処理できない可能性がある場合は、この中間テーブル７０の生成／更新方法を用いることはできないため、図９により説明したリアルタイムに生成する方法等、タイムアウト値が超えない範囲の時間で生成可能な方法を適用する。
【０１４５】
次に、上述した図９のステップＳ240、及び図１０のステップＳ280に示した中間テーブル７０の生成／更新処理の詳細について、図１１により説明する。
なお、図１１では、図１０に示した、ホスト機器２０からの接続要求時に中間テーブル７０を一括生成／更新する手法の場合を例に説明する。なお、図９に示した、リアルタイムによる中間テーブル７０の生成／更新の場合については、図１１に示したその生成／更新処理が分断されるだけであり、図１１に示した中間テーブルの生成／更新の手続きとは本質的な生成手法で違いはないので、その説明は省略する。
【０１４６】
図１１は、ディレクトリエントリ生成用及びファイル用の中間テーブルの生成／更新の手続きのフローチャートである。
図１１に示すように、デバイス機器１０は、ホスト機器２０からの接続要求に基づいて、中間テーブル７０を一括生成／更新するに当たり、独自ファイルシステム１５の独自ファイルフォーマット４０によりデータ領域４２内に存在するファイル及びディレクトリについて、そのグループ番号Ｇn及びファイル番号Ｆnの初期化（Ｇn＝０，Ｆn＝０）を行う（ステップＳ311）。
【０１４７】
その上で、デバイス機器１０は、その記録装置１１を管理する独自ファイルシステム１５中に存在するファイル及びディレクトリを解析し、その階層化に基づき、例えば図４に示した如くのディレクトリツリーのような、ディレクトリ中に存在するファイルとディレクトリとを１まとめにしたグループを生成する。
【０１４８】
そして、デバイス機器１０は、この生成されたグループの中、設定されたグループ番号Ｇnの着目グループについて、まだ図８に示した如くのファイル用中間テーブル７２の生成／更新の手続きが行われていないファイルが存在するか否かを確認する（ステップＳ312）。
【０１４９】
すなわち、当初は、初期化されたグループ番号“０（Ｇn＝０）”のグループを着目グループとして、ファイル用中間テーブル７２の生成／更新の手続きが行われていないファイルが存在するか否かが確認される。
【０１５０】
これにより、デバイス機器１０は、ファイル用中間テーブル７２の生成／更新の手続きが行われていないファイルがこの着目グループ内に存在する場合、次のステップＳ313に示すファイル用中間テーブル７２の生成／更新処理を行う一方、ファイル用中間テーブル７２の生成／更新の手続きが行われていないファイルが存在しない場合は、この着目グループにおいて、ディレクトリエントリ生成用中間テーブル７１の生成／更新処理が行われていないディレクトリが存在するか否かの確認処理を行う（ステップＳ316）。
【０１５１】
ここで、ステップＳ313に示すファイル用中間テーブル７２の生成／更新処理では、デバイス機器１０は、図８示した、「所属するグループ番号」Ｇn，「ファイルシリアル番号」Ｆn，「ホスト機器上で表示したいファイル名」Ｎf，「ブロックサイズ」Ｂs，「作成時刻」Ｔt，「作成日時」Ｔd，「更新時刻」Ｔut，「更新日時」Ｔud，「ファイル先頭の物理ＬＢＡアドレス」Ａdf，「ファイル長」Ｌf，「ファイル開始仮想クラスタ番号」Ｃfs，「ファイル終了仮想クラスタ番号」Ｃfe，「特殊フラグ」flgといった情報が含まれるファイル用中間テーブル７２の生成を行う。これにより、着目グループ内におけるファイル用中間テーブル７２が生成されていなかった１つのファイルについて、ファイルシリアル番号Ｆnが付され、ファイル用中間テーブル７２が生成されることになる。
【０１５２】
そして、デバイス機器１０は、このファイルシリアル番号Ｆnによって特定されるファイル用中間テーブル７２の生成に関連し、この着目グループについて、図５に示した「グループ番号」Ｇn，「ホスト機器２０上で表示したいグループの名称」Ｎg，「グループに存在するファイルとグループ（エントリ）の総計」Ｇfg，「グループに存在する最初のグループ番号」Ｇsg，「グループに存在する最後のグループ番号」Ｇeg，「グループに存在する最初のファイル番号」Ｇsf，及び「グループに存在する最後のファイル番号」Ｇefといった情報が含まれるディレクトリエントリ生成用中間テーブル７１の生成／更新処理を行う（ステップＳ314）。
【０１５３】
すなわち、当初は、初期化されたグループ番号“０（Ｇn＝０）”のグループについて、ファイル用中間テーブル７２の生成／更新の手続きが行われていないファイル“Ｆile０”が確認されると、このファイル“Ｆile０”についてのファイル用中間テーブル７２が生成される（ステップＳ314）。これに加え、「グループ番号」Ｇnを“０”とするディレクトリエントリ生成用中間テーブル７１が生成され、図６に示した「グループ番号」Ｇnを“０”とするディレクトリエントリ生成用中間テーブル７１が、「ホスト機器２０上で表示したいグループの名称」Ｎgは“￥（ルートディレクトリ）”、「グループに存在するファイルとグループ（エントリ）の総計」Ｇfgは未だファイル“Ｆile０”しか確認されていないため“１”、「グループに存在する最初のグループ番号」Ｇsn及び「最後のグループ番号」Ｇenは未だグループ内に存在するディレクトリは確認されていないため“−１”、「最初のファイル番号」Ｇsf及び「最後のファイル番号」Ｇefは未だファイル“Ｆile０”しか確認されていないため“０”として、生成されることになる。
【０１５４】
その後、ファイルシリアル番号Ｆnがインクリメントされ（ステップＳ315）、ファイル用中間テーブル７２の生成されていない、次のファイルに対するファイル用中間テーブル７２の生成／更新、及びこれに基づくディレクトリエントリ生成用中間テーブル７１の生成／更新についての準備がなされる。
【０１５５】
そして、着目グループの中に、図８に示したファイル用中間テーブル７２が生成／更新されていないファイルがなくなるまで、ステップＳ312〜ステップＳ315に示すファイル用中間テーブル７２の生成／更新処理、及びこれに基づくディレクトリエントリ生成用中間テーブル７１の生成／更新処理が続けられることになる。
【０１５６】
したがって、例えば図４に示した如くのディレクトリツリーの場合、前述したグループ番号“０”のルートディレクトリについて、ファイル“Ｆile０”，“Ｆile１”，“Ｆile２”の３つのファイルそれぞれについてファイル用中間テーブル７２が生成され、図６に示した「グループ番号」Ｇnを“０”とするディレクトリエントリ生成用中間テーブル７１が、「ホスト機器２０上で表示したいグループの名称」Ｎgは“￥（ルートディレクトリ）”、「グループに存在するファイルとグループ（エントリ）の総計」Ｇfgは未だグループ内に存在するエントリ“Ｄir１”，“Ｄir２”が未だ確認されていないため“３”、「グループに存在する最初のグループ番号」Ｇsn及び「最後のグループ番号」Ｇenは未だグループ内に存在するエントリ“Ｄir１”，“Ｄir２”が確認されていないため“−１”、「最初のファイル番号」Ｇsf及び「最後のファイル番号」Ｇefはそれぞれ“０”及び“２”として、生成／更新されることになる。
【０１５７】
これに対し、ステップＳ312の確認処理で、この着目グループ内の全てのファイルについて、ファイル用中間テーブル７２の生成／更新、及びこれに基づくディレクトリエントリ生成用中間テーブル７１の生成／更新が終わったならば、今度は、デバイス機器１０は、この着目グループ内に、ディレクトリエントリ生成用中間テーブル７１の生成／更新がされていないディレクトリが存在するか否かを調べる（ステップＳ316）。
【０１５８】
ステップＳ316において、着目グループ内に、ディレクトリエントリ生成用中間テーブル７１の生成／更新が行われていないディレクトリが存在する場合には、このディレクトリに関して、上述のステップＳ314で生成／更新された着目グループのディレクトリエントリ生成用中間テーブル７１の中、「グループに存在するファイルとグループ（エントリ）の総計」Ｇfg、「グループに存在する最初のグループ番号」Ｇsn、及び「最後のグループ番号」Ｇenについての更新処理が行われる（ステップＳ317）。
【０１５９】
例えば、図４に示した如くのディレクトリツリーの場合、前述した「グループ番号」Ｇnを“０”とするディレクトリエントリ生成用中間テーブル７１が、「グループに存在するファイルとグループ（エントリ）の総計」Ｇfgが“３”、「グループに存在する最初のグループ番号」Ｇsn及び「最後のグループ番号」Ｇenが“−１”とするグループ内のエントリ“Ｄir１”，“Ｄir２”の確認が未だ行われていない状態から、グループ内にグループ番号“１”，“２”の２つエントリ“Ｄir１”，“Ｄir２”が存在することが確認されることにより、「グループに存在するファイルとグループ（エントリ）の総計」Ｇfgはこの２つエントリ“Ｄir１”，“Ｄir２”分を加えた“５”に、「グループに存在する最初のグループ番号」Ｇn及び「最後のグループ番号」Ｇenは“１”及び“２”に更新されて、図６に示したとおりとなる。
【０１６０】
その上で、デバイス機器１０は、グループ番号Ｇnをインクリメントして着目グループを更新し（ステップＳ318）、先の着目グループに対して階層が１つ下の更新したグループ番号Ｇnのディレクトリについて、ステップＳ312の確認処理に立ち戻り、前述したステップＳ312以降のファイル用中間テーブル７２の生成／更新処理、及びこれに基づくディレクトリエントリ生成用中間テーブル７１の生成／更新処理を繰り返し行う。
【０１６１】
例えば、図４に示した如くのディレクトリツリーの場合は、次に「グループ番号」Ｇnが“１”のディレクトリについてファイル用中間テーブル７２及びディレクトリエントリ生成用中間テーブル７１の生成／更新処理が行われ、以下、順次、「グループ番号」Ｇnが“６”のディレクトリについてまで、グループ毎にファイル用中間テーブル７２及びディレクトリエントリ生成用中間テーブル７１の生成／更新処理が行われる。
【０１６２】
その一方で、この更新した着目グループの中に、図８に示したファイル用中間テーブル７２が生成／更新されていないファイルがなく（ステップＳ312）、図５に示したディレクトリエントリ生成用中間テーブル７１の生成／更新処理をしていないディレクトリもない場合には（ステップＳ316）、デバイス機器１０は、この着目グループのグループ番号Ｇnをデクリメントして着目グループを前回の着目グループに戻し（ステップＳ319）、着目グループのグループ番号Ｇnが初期値（Ｇn＝０）になっているか否かを確認する（ステップＳ320）。このとき、前回の着目グループのグループ番号Ｇnが初期値（Ｇn＝０）になっていない場合には、その着目グループの中にディレクトリエントリ生成用中間テーブル７１の生成／更新処理が行われていないディレクトリが存在するか否かの確認を行う（ステップＳ316）。
【０１６３】
この結果、着目グループ内に、ディレクトリエントリ生成用中間テーブル７１の生成／更新処理をしていないディレクトリが存在しない場合は、デバイス機器１０は、着目グループのグループ番号Ｇnが初期値（Ｇn＝０）になるまで、ステップＳ316，Ｓ319，Ｓ320の処理を繰り返す。この一連の処理により、着目グループのグループ番号Ｇnが初期値（Ｇn＝０）になって（ステップＳ320）、全てのグループのファイル及びディレクトリについて、ファイル用中間テーブル７２の生成／更新処理、及びこれに基づくディレクトリエントリ生成用中間テーブル７１の生成／更新処理が終わったことが確認されると、デバイス機器１０は、中間テーブル７０の生成／更新処理を終了する。
【０１６４】
これに対し、上述したステップＳ316の確認処理で、着目グループの中にディレクトリエントリ生成用中間テーブル７１の生成／更新処理をしていないディレクトリが存在するのが確認された場合は、デバイス機器１０は、このディレクトリについてディレクトリエントリ生成用中間テーブル７１の生成／更新処理を行った後（ステップＳ317）、グループ番号Ｇnをインクリメントして着目グループを元に戻し（ステップＳ318）、この階層が１つ下のグループ番号Ｇnのディレクトリから、ファイル用中間テーブル７２の生成／更新の手続きが行われていないファイルが存在するか否か、ディレクトリエントリ生成用中間テーブル７１の生成／更新処理をしていないディレクトリが存在するか否かの再確認を行う。
【０１６５】
このようにして生成されるディレクトリエントリ生成用中間テーブル７１及びファイル用中間テーブル７２からなる中間テーブル７０は、本実施例の場合は、図２（ａ）における不可視コンテンツのように不可視な領域として、記録装置１１の記録媒体上に保持される。そして、この記録装置１１の記録媒体上の中間テーブル７０を保持すべき領域は、中間テーブル７０の生成の方法により変動する。図２（ａ）では、この中間テーブル７０の退避領域については、点線で囲まれる部分で示してある。
【０１６６】
次に、マスストレージ接続されたホスト機器２０からデバイス機器１０に発行されたＬＢＡ番号（絶対セクタ番号）Ｓを指定した読み取り要求に対して、上述のように生成／更新されるディレクトリエントリ生成用中間テーブル７１及びファイル用中間テーブル７２にもとにして、デバイス機器１０が行う処理概要について、図１２により説明する。
【０１６７】
図１２は、ホスト機器にマスストレージ接続されたデバイス機器の処理概要のフローチャートである。
まず、ユーザは、デバイス機器１０とホスト機器２０とを、ＵＳＢ，ＵＳＢ２，ＩＥＥＥ１３９４等といった物理接続路３０を介してマスストレージ接続し、デバイス機器１０とホスト機器２０との間の物理接続を確立する（ステップＳ411）。なお、この状態では、デバイス機器１０とホスト機器２０との間のＵＳＢ接続は、まだアクティブな状態にはなっておらず、つまり両者間は論理接続が確立されていない状態になっている。
【０１６８】
そして、例えば、ユーザがデバイス機器１０を所定操作すること等によって、デバイス機器１０は、物理接続路３０を介して接続されたホスト機器２０のターミナルスロットをアクティブな状態にする。これにより、ホスト機器２０のＯＳに備えられているプラグアンドプレイ（Plug and Play）機能が起動し、デバイス機器１０の物理接続を認識し、ホスト機器２０からデバイス機器１０に接続要求が発行され、デバイス機器１０とホスト機器２０との間の論理接続が確立される（ステップＳ412）。
【０１６９】
なお、前述したように、デバイス機器１０が、図５に示したディレクトリエントリ生成用及中間テーブル７１、及び図８に示したファイル用中間テーブル７２からなる中間テーブル７０を、図９に示したように記録装置１１によるファイル関連処理の発生の度にリアルタイムで生成／更新するものではなく、図１０に示したようにホスト機器２０からの接続要求時に中間テーブル７０を一括生成／更新するものである場合には、デバイス機器１０のＦＡＴエミュレータ部１８は、このホスト機器２０から発行された接続要求に基づき、例えば図１１で説明したようにして、ディレクトリエントリ生成用中間テーブル７１及びファイル用中間テーブル７２を一括生成／更新することになる。
【０１７０】
そして、デバイス機器１０は、ホスト機器２０との物理接続及び論理接続が確立されると、ホスト機器２０から接続解除要求が供給されているか否か、及びデータ読み取り要求が供給されているか否かの確認を行う（ステップＳ413，Ｓ414）。そして、ホスト機器２０から接続解除要求があった場合には（ステップＳ413）、デバイス機器１０は、接続終了処理に移行する。
【０１７１】
一方、ホスト機器２０から、ＬＢＡ番号Ｓを指定したデバイス機器１０の記録装置１１に記録された記録内容の読み取り要求があった場合は（ステップＳ414）、デバイス機器１０は、そのＦＡＴエミュレータ部１８が、図３に示した仮想ＦＡＴ空間５０ｓに基づいて、ホスト機器２０により指定されたＬＢＡ番号ＳのＬＢＡ変換処理を行う（ステップＳ415）。
【０１７２】
ここで、ホスト機器２０によるデバイス機器１０の記録装置１１の読み取り要求は、そのＦＡＴファイルシステム２５によってマスストレージドライバ２８を介し、読み取りたい記録内容のＬＢＡ（セクタ）番号Ｓ、このＬＢＡ番号Ｓから連続して読み取るセクタ数ｎを指定して行われる。この場合に、ホスト機器２０から要求されるセクタ数の読み取り個数ｎの上限は、最高でも２５６個である。
【０１７３】
また、デバイス機器１０のＦＡＴエミュレータ部１８が行うＬＢＡ変換処理の内容は、ホスト機器２０からの読み取り要求によって与えられたＬＢＡ番号Ｓから判断して、デバイス機器１０の記録装置１１に実際に保持されていないデータを、デバイス機器１０のメモリ上に生成する第１の処理と、ホスト機器２０からの読み取り要求によって与えられたＬＢＡ番号Ｓを、デバイス機器１０の記録装置１１の実際のＬＢＡ番号Ｓ'に変換する第２の処理との、２種類に分類される。
【０１７４】
ＬＢＡ変換処理として、第１の処理を行う場合としては、次のような場合が該当する。
まず、ホスト機器２０からの読み取り要求によって与えられたＬＢＡ番号Ｓが、図３に示した仮想ＦＡＴ空間５０ｓの仮想管理領域５１に相当し、かつ管理領域５１の中のＭＢＲ（Master Boot Record）であると想定される場合が該当する。この場合、ホスト機器２０からのデータ読み取り要求によって与えられるＬＢＡ番号Ｓが“０”である場合が相当する。
【０１７５】
また、別の場合として、ホスト機器２０からの読み取り要求によって与えられたＬＢＡ番号Ｓが、図３に示した仮想ＦＡＴ空間５０ｓの仮想管理領域５１に相当し、かつ仮想管理領域５１の中のＤＰＢ（＝ＢＰＢ）であると想定される場合が該当する。なお、この場合、ホスト機器２０から与えられるＬＢＡ番号Ｓは、上述したＭＢＲの構成で変化する。
【０１７６】
また、別の場合として、ホスト機器２０からの読み取り要求によって与えられたＬＢＡ番号Ｓが、図３に示した仮想ＦＡＴ空間５０ｓの仮想管理領域５１に相当し、かつ仮想管理領域５１の中のＦＳＩＮＦＯであると想定される場合が該当する。この場合も、ホスト機器２０から与えられるＬＢＡ番号Ｓは、上述したＤＰＢの場合と同様に、ＭＢＲの構成で変化する。
【０１７７】
また、別の場合として、ホスト機器２０からの読み取り要求によって与えられたＬＢＡ番号Ｓが、図３に示した仮想ＦＡＴ空間５０ｓの仮想管理領域５１に相当し、かつ仮想管理領域５１の中のＦＡＴ１/ＦＡＴ２であると想定される場合が該当する。この場合も、ホスト機器２０から与えられるＬＢＡ番号Ｓは、上述したＤＰＢ，ＦＳＩＮＦＯの場合と同様に、ＭＢＲの構成で変化する。
【０１７８】
また、別の場合として、ホスト機器２０からの読み取り要求によって与えられたＬＢＡ番号Ｓが、図３に示した仮想ＦＡＴ空間５０ｓの仮想ディレクトリエントリ領域５３である場合が該当する。この場合、ホスト機器２０から与えられるＬＢＡ番号Ｓは、上述したＤＰＢ，ＦＳＩＮＦＯ，ＦＡＴ１/ＦＡＴ２の場合と同様に、ＭＢＲの構成で変化する。
【０１７９】
また、その他の例として、ホスト機器２０からの読み取り要求によって与えられたＬＢＡ番号Ｓが、図３に示した仮想ＦＡＴ空間５０ｓにおける、特に意味を持たない領域である場合が該当する。
【０１８０】
これに対し、ＬＢＡ変換処理として、第２の処理を行う場合としては、ホスト機器２０からの読み取り要求によって与えられたＬＢＡ番号Ｓが、図３に示した仮想ＦＡＴ空間５０ｓの仮想ファイル領域５４である場合が該当する。
【０１８１】
なお、図１２においてステップＳ415で示したＬＢＡ変換処理には、上述した２種類の処理の中、ホスト機器２０からの読み取り要求によって与えられたＬＢＡ番号Ｓを、デバイス機器１０の記録装置１１の実際のＬＢＡ番号Ｓ'に変換する第２の処理だけが、代表して例示されている。
【０１８２】
そして、ホスト機器２０からの読み取り要求によって与えられたＬＢＡ番号Ｓが上述した例のいずれに該当する場合であっても、デバイス機器１０は、ホスト機器２０側の読み書きする基本単位である５１２バイトずつ、与えられたＬＢＡ番号Ｓに相当する読み取りデータとしてホスト機器２０に転送する（ステップＳ416，Ｓ417）。
【０１８３】
なお、ホスト機器２０から与えられたＬＢＡ番号Ｓが、仮想ＦＡＴ空間５０ｓ中の特に意味を持たない領域に相当する場合であっても、デバイス機器１０は、読み取りデータとして５１２バイト分の無意味なデータを用意し、ホスト機器２０に転送する。本実施例では、この５１２バイト分の無意味なデータとして、５１２バイト分“０ｘ００”で埋めている。
【０１８４】
したがって、ＬＢＡ変換処理が、ステップＳ415に図示したように、ホスト機器２０からの読み取り要求によって与えられたＬＢＡ番号Ｓをデバイス機器１０の記録装置１１の実際のＬＢＡ番号Ｓ'に変換する第２の処理である場合には、記録装置１１からＬＢＡ番号Ｓ'を先頭に実際に記録されている５１２バイト分のデータを読み取り、これをホスト機器２０に転送する。これとともに、ホスト機器２０から読み取り要求されたセクタ数ｎをデクリメント“ｎ＝ｎ-１”して、ホスト機器２０からの読み取り要求によって与えられたセクタ数ｎと更新するとともに、ステップＳ415で変換したＬＢＡ番号Ｓ'を１セクタ（５１２バイト）分だけ増加（“Ｓ'＝Ｓ'＋１”）させて、これを変換した新たなＬＢＡ番号Ｓ'として更新する（ステップＳ416）。
【０１８５】
その上で、デバイス機器１０は、読み取り要求されたセクタ数ｎが“０”になり、当初ステップＳ415でデバイス機器１０から読み取り要求されたｎ個分のセクタ数だけ、記録装置１１からＬＢＡ番号Ｓ'を先頭に実際に記録されているデータを読み取ってホスト機器２０に転送終了したか否かを判別する（ステップＳ417）。
【０１８６】
そして、この判別結果に基づいて、この読み取り要求されたセクタ数ｎが“０”になり、ホスト機器２０からの読み取り要求どおりに、ＬＢＡ番号Ｓを先頭にセクタ数でｎ個分のデータ全てがホスト機器２０に転送されるまで、デバイス機器１０は、上述したステップＳ416，Ｓ417の処理を繰り返すことになる。
【０１８７】
次に上述したステップＳ415に示したＬＢＡ変換処理の詳細について、図１３に基づき説明する。
本実施の形態のデバイス機器１０では、前述した図３に示した如くの仮想ＦＡＴ空間５０ｓのマッピング、及び図５〜図１１によりその構成及び生成方法を説明したディレクトリエントリ生成用中間テーブル７１及びファイル用中間テーブル７２からなる中間テーブル７０に基づいて、ホスト機器２０からデバイス機器１０に発行されたＬＢＡ番号（絶対セクタ番号）Ｓを指定した読み取り要求に対して、図１３に示す如くのＬＢＡ変換処理を行う。
【０１８８】
図１３は、本実施の形態のデバイス機器のＦＡＴエミュレータ部によるＬＢＡ変換処理の概要を示したフローチャートである。
デバイス機器１０は、ホスト機器２０からデバイス機器１０に発行された読み取り要求を通信ドライバ１９を介して受信すると（ステップＳ500）、デバイス機器１０のＦＡＴエミュレータ部１８は、この読み取り要求によって与えられたＬＢＡ番号（絶対セクタ番号）Ｓが図３に示した仮想ＦＡＴ空間５０ｓのどの領域部分についての読み取り要求であるかを、前述した＜変換式１＞，＜変換式２＞により判別する。
【０１８９】
すなわち、ＦＡＴエミュレータ部１８は、読み取り要求によって与えられたＬＢＡ番号Ｓが、前述した仮想ＦＡＴ空間５０ｓの仮想管理領域５１に相当する読み取り要求であるか否か（ステップＳ510）、仮想ディレクトリエントリ領域５３に相当する読み取り要求であるか否か（ステップＳ560）、仮想ファイル領域５４に相当する読み取り要求であるか否か（ステップＳ570）、を判定する。
【０１９０】
そして、ＦＡＴエミュレータ部１８は、この読み取り要求によって与えられたＬＢＡ番号Ｓが前述した仮想管理領域５１に相当する読み取り要求である場合は、この仮想管理領域５１のＭＢＲに相当する読み取り要求であるか否か（ステップＳ520）、ＤＰＢに相当する読み取り要求であるか否か（ステップＳ530）、ＦＳＩＮＦＯに相当する読み取り要求であるか否か（ステップＳ540）、仮想ＦＡＴに相当する読み取り要求であるか否か（ステップＳ550）をさらに判定する。
【０１９１】
その上で、この読み取り要求によって与えられたＬＢＡ番号（絶対セクタ番号）Ｓが、仮想ＦＡＴ空間５０ｓの仮想管理領域５１に相当し（ステップＳ510）、かつ仮想ＭＢＲに相当する場合は（ステップＳ520）、ＦＡＴエミュレータ部１８は、メモリ上に、転送データとして仮想ＭＢＲを生成する（ステップＳ521）。
【０１９２】
そして、この場合は、ＦＡＴエミュレータ部１８は、読み取り要求によって与えられたＬＢＡ番号Ｓを実際のＬＢＡ番号Ｓ'にＬＢＡ変換せず、記録装置１１の記録装置用ドライバ１７に対しては“Ｓ'＝ＮＵＬＬ”にして、読み取り要求によって与えられたＬＢＡ番号Ｓ'に相当する読み取りを行わないようにし、メモリ上に生成された仮想ＭＢＲを読み取り要求に対する出力データとして用意して、ＬＢＡ変換処理を終了する（ステップＳ591）。
【０１９３】
同様に、この読み取り要求によって与えられたＬＢＡ番号（絶対セクタ番号）Ｓが、仮想ＦＡＴ空間５０ｓの仮想管理領域５１に相当し（ステップＳ510）、かつ仮想ＤＰＢに相当する場合は（ステップＳ530）、ＦＡＴエミュレータ部１８は、そのメモリ上に、転送データとして仮想ＤＰＢを生成する（ステップＳ531）。
【０１９４】
そして、この場合も、ＦＡＴエミュレータ部１８は、読み取り要求によって与えられたＬＢＡ番号Ｓを実際のＬＢＡ番号Ｓ'にＬＢＡ変換せず、記録装置１１の記録装置用ドライバ１７に対しては“Ｓ'＝ＮＵＬＬ”にして、読み取り要求によって与えられたＬＢＡ番号Ｓに対応する読み取りを行わないようにし、メモリ上に生成された仮想ＤＰＢを読み取り要求に対する出力データとして用意して、ＬＢＡ変換処理を終了する（ステップＳ591）。
【０１９５】
同様に、この読み取り要求によって与えられたＬＢＡ番号（絶対セクタ番号）Ｓが、仮想ＦＡＴ空間５０ｓの仮想管理領域５１に相当し（ステップＳ510）、かつ仮想ＦＳＩＮＦＯに相当する場合は（ステップＳ540）、ＦＡＴエミュレータ部１８は、そのメモリ上に、転送データとして仮想ＦＳＩＮＦＯを生成する（ステップＳ541）。
【０１９６】
そして、この場合も、ＦＡＴエミュレータ部１８は、読み取り要求によって与えられたＬＢＡ番号Ｓを実際のＬＢＡ番号Ｓ'にＬＢＡ変換せず、記録装置１１の記録装置用ドライバ１７に対しては“Ｓ'＝ＮＵＬＬ”にして、読み取り要求によって与えられたＬＢＡ番号Ｓに対応する読み取りを行わないようにし、メモリ上に生成された仮想ＦＳＩＮＦＯを読み取り要求に対する出力データとして用意して、ＬＢＡ変換処理を終了する（ステップＳ591）。
【０１９７】
同様に、この読み取り要求によって与えられたＬＢＡ番号（絶対セクタ番号）Ｓが、仮想ＦＡＴ空間５０ｓの仮想管理領域５１に相当し（ステップＳ510）、かつ仮想ＦＡＴに相当する場合は（ステップＳ550）、ＦＡＴエミュレータ部１８は、前述のメモリ上に生成した中間テーブル７０を参照して、仮想ＦＡＴ（ＦＡＴ１）を生成する（ステップＳ551）。
【０１９８】
そして、ＦＡＴエミュレータ部１８は、読み取り要求によって与えられたＬＢＡ番号Ｓが仮想管理領域５１のＦＡＴ２に相当する場合は、この指定ＬＢＡ番号Ｓから仮想ＦＡＴ空間においてＦＡＴ２が占めるセクタ数“９,２１７”を減算し、読み取り要求によって与えられたＬＢＡ番号Ｓをこの算出値に更新する（ステップＳ552）。
【０１９９】
その上で、ＦＡＴエミュレータ部１８は、この読み取り要求によって与えられたＬＢＡ番号Ｓに該当する、仮想ＦＡＴ中の５１２バイト部分を求め、これをメモリ上に展開する（ステップＳ553）。
【０２００】
そして、この場合も、ＦＡＴエミュレータ部１８は、読み取り要求によって与えられたＬＢＡ番号Ｓを実際のＬＢＡ番号Ｓ'にＬＢＡ変換せず、記録装置１１の記録装置用ドライバ１７に対しては“Ｓ'＝ＮＵＬＬ”にして、読み取り要求によって与えられたＬＢＡ番号Ｓに対応する読み取りを行わないようにし、メモリ上に展開された仮想ＦＡＴ中のＬＢＡ番号Ｓに該当する５１２バイト部分を読み取り要求に対する出力データとして用意して、ＬＢＡ変換処理を終了する（ステップＳ591）。
【０２０１】
一方、読み取り要求によって与えられたＬＢＡ番号Ｓが、仮想ＦＡＴ空間５０ｓの仮想管理領域５１に相当するものの（ステップＳ510）、仮想管理領域５１の仮想ＭＢＲ，仮想ＤＰＢ，仮想ＦＳＩＮＦＯ，仮想ＦＡＴのいずれにも相当せず、仮想管理領域５１の無意味な部分に相当する場合は（ステップＳ550）、ＦＡＴエミュレータ部１８は、メモリ上に、転送データとして無意味なデータを意味する“０ｘ００”を５１２バイト分生成する（ステップＳ580）。
【０２０２】
そして、この場合も、ＦＡＴエミュレータ部１８は、読み取り要求によって与えられたＬＢＡ番号Ｓを実際のＬＢＡ番号Ｓ'にＬＢＡ変換せず、記録装置１１の記録装置用ドライバ１７に対しては“Ｓ'＝ＮＵＬＬ”にして、読み取り要求によって与えられたＬＢＡ番号Ｓに対応する読み取りを行わないようにし、メモリ上に生成した無意味なデータを意味する５１２バイト分の“０ｘ００”を読み取り要求に対する出力データとして用意して、ＬＢＡ変換処理を終了する（ステップＳ591）。
【０２０３】
これらに対し、読み取り要求によって与えられたＬＢＡ番号Ｓが、仮想データ領域５２の仮想ディレクトリエントリ領域５３に相当する読み取り要求である場合には（ステップＳ560）、ＦＡＴエミュレータ部１８は、メモリ上に、前述した中間テーブル７０を参照して、仮想ディレクトリエントリ領域５３の記録内容を生成する（ステップＳ561）。そして、この読み取り要求によって与えられたＬＢＡ番号Ｓに該当する５１２バイト部分の仮想ディレクトリエントリ領域５３における記録内容を求めて、メモリ上に展開する（ステップＳ562）。
【０２０４】
そして、ＦＡＴエミュレータ部１８は、読み取り要求によって与えられたＬＢＡ番号Ｓを実際のＬＢＡ番号Ｓ'にＬＢＡ変換せず、記録装置１１の記録装置用ドライバ１７に対しては“Ｓ'＝ＮＵＬＬ”にして、読み取り要求によって与えられたＬＢＡ番号Ｓに対応する読み取りを行わないようにした上で、メモリ上に生成したこのＬＢＡ番号Ｓに該当する５１２バイト部分の仮想ディレクトリエントリ領域５３における記録内容を読み取り要求に対する出力データとして用意して、ＬＢＡ変換処理を終了する（ステップＳ591）。
【０２０５】
また、読み取り要求によって与えられたＬＢＡ番号Ｓが、仮想データ領域５２の仮想ファイル領域５４に相当する読み取り要求である場合には（ステップＳ570）、ＦＡＴエミュレータ部１８は、前述した中間テーブル７０を参照して、ホスト機器２０がこの読み取り要求で求めている、独自ファイルフォーマット４０によって記録装置１１に記録されているファイルのファイル番号Ｆnを特定する（ステップＳ571）。
【０２０６】
そして、ＦＡＴエミュレータ部１８は、再び中間テーブル７０を参照して、この読み取り要求によって与えられたＬＢＡ番号（絶対セクタ番号）Ｓに関して、この特定したファイルのファイル先頭からのオフセットを特定する（ステップＳ572）。
【０２０７】
その上で、ＦＡＴエミュレータ部１８は、これらファイル番号Ｆnと後述するオフセット値とから、記録装置１１における実際のＬＢＡ番号Ｓ'を算出し（ステップＳ573）、この算出したＬＢＡ番号Ｓ'を記録装置用ドライバ１７に読み取りＬＢＡ番号（出力セクタ番号）として供給し、ＬＢＡ変換処理を終了する（ステップＳ592）。
【０２０８】
上述したＬＢＡ変換処理において、メモリ上に、仮想ＭＢＲ，仮想ＤＰＢ，仮想ＦＳＩＮＦＯを生成して用意したり（ステップＳ521，Ｓ531，Ｓ541）、メモリ上に仮想ＦＡＴ，仮想ディレクトリエントリを生成して展開する処理（ステップＳ551〜Ｓ553，Ｓ561〜Ｓ562）が、ホスト機器２０からの読み取り要求によって与えられたセクタ番号Ｓから判断して、デバイス機器１０の記録装置１１に実際に保持されていないデータを、デバイス機器１０のメモリ上に生成するＬＢＡ変換処理の第１の処理に該当する。
【０２０９】
また、読み取り要求によって与えられたＬＢＡ番号Ｓが仮想ＦＡＴ空間５０ｓの仮想ファイル領域５４に相当する読み取り要求である場合の、ステップＳ571〜ステップＳ573及びステップＳ592に示した処理が、ホスト機器２０からの読み取り要求によって与えられたセクタ番号Ｓをデバイス機器１０の記録装置１１の実際のＬＢＡ番号Ｓ'に変換するＬＢＡ変換処理の第２の処理に該当する。
【０２１０】
次に、上述したＬＢＡ変換処理の各処理内容について、さらに具体的かつ詳細に説明する。
まず、図１３のステップＳ521で説明した、ＬＢＡ変換処理の第１の処理としての仮想ＭＢＲの生成について説明する。
【０２１１】
ホスト機器２０からの読み取り要求によって与えられたＬＢＡ番号Ｓが“０”で、記録装置１１に対応した仮想記録装置２１'の仮想ＬＢＡ番号“０”の読み取り要求があった場合、デバイス機器１０のＦＡＴエミュレータ部１８は、ＬＢＡ変換処理として、本実施例の場合は記録装置１１とは別の記録装置（例えば、ＲＡＭ，フラッシュメモリ等）に仮想ＭＢＲを生成する。
【０２１２】
この場合、デバイス機器１０のＦＡＴエミュレータ部１８は、図３に示したようなマッピングがされた仮想ＦＡＴ空間５０ｓを備えた仮想記録装置２１'として、記録装置１１をマスストレージ接続されているホスト機器２０に対して仮想するため、仮想ＭＢＲとして５１２バイト（１セクタ）分の領域を、そのメモリ上に生成する。その際、仮想ＭＢＲは、ブートストラップローダ，パーティションテーブル，マジックナンバーを備えて生成される。
【０２１３】
ブートストラップローダは、１セクタ（５１２バイト）の仮想ＭＢＲの中の４４６バイトを有し、ホスト機器２０のＰＣ−ＡＴ起動時に係り最初に実行するイニシャルプログラムをロードするためのコードであるＩＰＬが記載される。このＩＰＬは、現在では、デバイス機器１０の記録装置１１の読み取り開始以前に、ホスト機器２０が起動してしまうため、実際は無用の領域となりつつある。そのため、ＩＰＬに各ＯＳ独自のファイルシステムが記載されていたりもする。
【０２１４】
本実施例では、この部分の内容が不適切だと、ホスト機器２０が記録装置１１を仮想記録装置２１'としてではなく、「フォーマットされていないメディア」として認識する可能性が否定できないので、ブートストラップローダとして標準的なＰＣのＩＰＬが記載される。
【０２１５】
パーティションテーブルは、仮想ＭＢＲの中の６４バイトを有し、仮想記録装置２１'すなわち記録装置１１を最大で４分割して使用できるようにするため、それぞれ１６バイトから成る４つのテーブルを備えている。
【０２１６】
本実施例では、記録装置１１はパーティションとしては１つしか使用しないので、第１テーブル以外のテーブルは“０”で便宜的に埋められて記載される。なお、第１テーブルの１６バイト分には、「ブートフラグ」，「領域開始位置」，「パーティションタイプ」，「領域終了位置」，「領域開始位置」，及び「領域サイズ」が定義される。
【０２１７】
「ブートフラグ」は、第１テーブルの中の１バイトを有し、ホスト機器２０の起動ディスクとして記録装置１１を使うか否かを記録する。本実施例では、記録装置１１はホスト機器２０の起動ディスクとしては使用されないので、“０ｘ００”が記載される。
【０２１８】
「領域開始位置」は、第１テーブルの中の３バイトを有し、第１パーティションの開始位置、すなわち本実施例では、ＤＰＢのスタートセクタがＣＨＳ（Cylinder/Head/Sector ）系単位系で記載される。本実施例では、第１パーティションの開始位置、すなわち仮想記録装置２１'の論理ドライブの先頭セクタを仮想ＬＢＡ番号“６３”にしているため、この３バイト部分に“０ｘ０１”、“０ｘ０１”、“０ｘ００”が順に記載される。
【０２１９】
「パーティションタイプ」は、第１テーブルの中の１バイトを有し、仮想記録装置２１'がどのようなファイルフォーマットを使用しているかを示す。このタイプＩＤは規格化されているので、エミュレートするＦＡＴファイルシステム２５、すなわち「ＦＡＴ３２」システムに応じたＩＤがこの規格に基づき記載される。
【０２２０】
「領域終了位置」は、第１テーブルの中の３バイトを有し、第１パーティション、すなわち仮想ＦＡＴ空間５０ｓ全体の終了セクタ番号がＣＨＳ単位系で記載される。本実施例では、仮想ＦＡＴ空間５０ｓ全体の終了セクタ番号“３７,７６７,２６５”がＣＨＳ単位系の限界をすでに超えているので、この３バイト部分に“０ｘＦＥ”、“０ｘＦＦ”、“０ｘＦＦ”の固定値が順に記載される。
【０２２１】
「領域開始位置」は、第１テーブルの中の４バイトを有し、仮想ＬＢＡ番号でパーティションの開始位置、すなわちＤＰＢのセクタ番号が記載される。本実施例では、仮想ＤＰＢの仮想ＬＢＡ番号は“６３（＝０ｘ３Ｆ）”であるが、ビッグエンディアン表記のため、この４バイト部分に“０ｘ３Ｆ”、“０ｘ００”、“０ｘ００”、“０ｘ００”が順に記載される。
【０２２２】
「領域サイズ」は、第１テーブルの中の４バイトを有し、第１パーティションの総セクタ数がビッグエンディアン表記で記載される。本実施例の場合、この第１パーティションの総セクタ数には、仮想ＦＡＴ空間５０ｓにおける仮想ＤＰＢ以前の６３セクタ分は含まれず、３７,７６７,２０３セクタとなる。これを、１６進数に変換し、この４バイト部分に“０ｘ６１”、“０ｘ４８”、“０ｘ４０”、“０ｘ０２”が順に記載される。
また、「マジックナンバー」は、仮想ＭＢＲの中の２バイトを有し、セクタの最後の２バイトを表わす“０ｘ５５”、“０ｘＡＡ”が記載される。
【０２２３】
なお、ホスト機器２０から記録装置１１に対して、仮想ＬＢＡ番号“１”に関する読み取り要求があった場合は、バックアップ用のＭＢＲ（２）の読み取り要求であるので、上述したＭＢＲと全く同等の内容が、仮想記録装置２１'の仮想ＦＡＴ空間５０ｓにおける仮想ＭＢＲとして、メモリ上に生成される構成になっている。
【０２２４】
次に、図１３のステップＳ531，Ｓ541で説明した、ＬＢＡ変換処理の第１の処理としての仮想ＤＰＢ、仮想ＦＳＩＮＦＯの生成について説明する。
【０２２５】
ホスト機器２０からの読み取り要求によって与えられたＬＢＡ番号Ｓが“６３≦Ｓ≦９５”で、記録装置１１に対応した仮想記録装置２１'の仮想クラスタ番号“０”に対応する読み取り要求があった場合、デバイス機器１０のＦＡＴエミュレータ部１８は、ＬＢＡ変換処理として、本実施例の場合は記録装置１１とは別の記録装置（例えば、ＲＡＭ，フラッシュメモリ等）に仮想ＤＰＢを生成する。
【０２２６】
実際には、前述したホスト機器２０からのＬＢＡ番号“０”を先頭とする読み取り要求に対して、デバイス機器１０からホスト機器２０に転送される仮想ＭＢＲに含まれた「領域開始位置」に基づき、ホスト機器２０からＬＢＡ番号Ｓが“６３”を先頭とする読み取り要求、すなわち仮想ＦＡＴ空間５０ｓの仮想クラスタ番号“０”の記憶内容の読み取り要求があった場合に、デバイス機器１０のＦＡＴエミュレータ部１８は、ＬＢＡ変換処理として、メモリ上に仮想ＤＰＢを生成する。
【０２２７】
この場合、デバイス機器１０のＦＡＴエミュレータ部１８は、図３に示したようなマッピングがされた仮想ＦＡＴ空間５０ｓを備えた仮想記録装置２１'として、記録装置１１をマスストレージ接続されているホスト機器２０に対して仮想するため、仮想ＤＰＢ及び仮想ＦＳＩＦＯとして５１２バイト（１セクタ）分の領域を、そのメモリ上に生成する。
【０２２８】
ＦＡＴファイルシステム２５においては、仮想ＤＰＢは、仮想記録装置２１'の記録媒体のパラメータ（属性）が認識できるように、仮想ＦＡＴ空間５０ｓの仮想クラスタ番号“０”の領域先頭に設けられる。この仮想ＤＰＢには、例えば、「ジャンプ命令」，「ＯＥＭラベル／装置名」，「１セクタ当たりのバイト数」，「１クラスタ当たりのセクタ数」，「予約セクタ数」，「ファイルアロケーションテーブル（ＦＡＴ）２６の個数」，「ルートディレクトリエントリの最大数」，「パーティションの総セクタ数」，「メディアディスクリプタ」，「ＦＡＴのセクタ数」，「１トラックあたりのセクタ数」，「ドライブのヘッド数」，「不可視セクタ数」，「全セクタ数」，「ＦＡＴのセクタ数」，「ルートディレクトリの開始クラスタ」，「ファイルシステム情報のセクタ番号」，「ブートセクタのコピーのセクタ番号」，「物理ドライブ番号」，「ブートシグネチャ」，「ボリュームシリアルＩＤ」，「ボリュームラベル」，「ファイルシステムタイプ」といった情報が記載される。
【０２２９】
「ジャンプ命令」には、ホスト機器２０としてマスストレージ接続可能な、過去のＰＣ／ＡＴアーキテクチャのＰＣのブート領域へのジャンプ命令が記載される。現在は必要ないので、本実施例では、標準的なジャンプ命令“０ｘＥＢ”、“０ｘ５８”、“０ｘ９０”が記載される。
【０２３０】
「ＯＥＭラベル／装置名」には、一般的なアプリケーション２４によってのホスト機器２０からのアクセス時には見られることはないため、本実施例では、コントロールコード等は置かずに、適当な名称（文字列）が設定される。
【０２３１】
「１セクタあたりのバイト数」には、本実施例では、５１２バイトで固定であることが記載される。
「１クラスタあたりのセクタ数」には、本実施例では、１６ＫＢクラスタを採用しているので、セクタ数“３２”が記載される。本実施例の場合は、最大でセクタ数“１２８”まで設定可能である。
【０２３２】
「予約セクタ数」には、仮想記録装置２１'の記録媒体の絶対的な通し番号“０”のセクタから仮想ＦＡＴ領域の直前までのセクタ数が記載される。すなわち、仮想ＦＡＴ空間５０ｓにおけるメインＦＡＴとしてのＦＡＴ１の開始セクタ番号を表し、本実施例では“９６”が記載される。
【０２３３】
「ファイルアロケーションテーブルの個数」には、本実施例では、ＦＡＴ１及びＦＡＴ２の２つのファイルアロケーションテーブル２６が存在するので、“２”が記載される。
「ルートディレクトリエントリの最大数」は、「ＦＡＴ１２」システム／「ＦＡＴ１６」システム用に、ルートディレクトリエントリに存在するファイルやディレクトリの総数を定義するもので、本実施例に適用された「ＦＡＴ３２」システムでは、常に“０”となる。
【０２３４】
「パーティションの総セクタ数」は、全セクタ数が１６ビットの範囲（０〜６５５３５）で表わせる場合にのみ使用されるもので、それを超える場合は、“０”が記載される。そのため、本実施例に適用された「ＦＡＴ３２」システムでは常に“０”であり、本実施例でも、“０”が記載される。
【０２３５】
「メディアディスクリプタ」は、メディア（記録媒体）の種類を示すフラグであり、本実施例では、ホスト機器２０に記憶装置１１をＨＤＤからなる仮想記録装置２１'として認識させるため、ＨＤＤに対応する“０ｘＦ８”が記載される。
【０２３６】
「ＦＡＴのセクタ数」には、１つのＦＡＴ当たりが占めるセクタ数が記載される。ただし、本実施例に適用される「ＦＡＴ３２」システムでは常に“０”となる。
「１トラックあたりのセクタ数」には、本実施例では、上述の「メディアディスクリプタ」で仮想させたＨＤＤの１トラック当たりのセクタ数が記載される。
「ドライブのヘッド数」は、ドライブ（記録装置）の物理的な情報を表すパラメータであり、ファイルシステム的な情報とは異なり現在は使われることはない。本実施例では、便宜的に、実際の記録装置１１のデバイス情報をもとに記載される。
【０２３７】
「不可視セクタ数」は、論理ドライブの先頭セクタ（すなわち、ＤＰＢ開始位置）直前までの仮想記録装置２１'の物理ドライブのセクタ数で、本実施例では、“６３”が記載される。
「全セクタ数」は、「ＦＡＴ３２」システムの際に用いるもので、本実施例では、仮想ＦＡＴ空間５０ｓの全セクタ数“３７,７６７,２６６”が記載されている。
「ＦＡＴのセクタ数」は、「ＦＡＴ３２」システムの際に用いるもので、１つのＦＡＴ当たりが占めるセクタ数が記載される。本実施例では、式（８）で説明したように“９,２１７”が記載される。
【０２３８】
「ルートディレクトリの開始クラスタ」は、「ＦＡＴ３２」システムの際に用いるもので、特に意図的に移動しない限りは、クラスタ番号“２”が記載される。すなわち、仮想ＦＡＴ空間５０ｓにおけるＦＡＴ領域（クラスタ番号“１”）の直後の、仮想ディレクトリエントリ領域５３の仮想開始クラスタ番号が記載される。
【０２３９】
「ファイルシステム情報のセクタ番号」は、「ＦＡＴ３２」システムの際に用いるもので、仮想ＦＳＩＮＦＯのセクタ番号を示すものである。本実施例では、仮想ＦＳＩＮＦＯは仮想ＤＰＢの直後のセクタに配置されるため、仮想ＬＢＡ番号“６４”が記載される。
【０２４０】
「ブートセクタのコピーのセクタ番号」は、「ＦＡＴ３２」システムの際に用いるもので、論理ドライブの先頭セクタとしてのＬＢＡ番号“０”のセクタが壊れているときに使われる、ブートセクタ（ＭＢＲ）のコピーの位置を示すものである。本実施例では、仮想ＦＡＴ空間５０ｓ上で、バックアップ用のＭＢＲ（２）が記憶されている仮想ＬＢＡ番号“１”が記載される。
【０２４１】
「物理ドライブ番号」には、本実施例の場合は、ＨＤＤの場合に対応する“８０ｈ”が記載される。
「ブートシグネチャ」には、ボリュームシリアル番号を持つことを意味する“０ｘ２９”が記載される。
「ボリュームシリアルＩＤ」には、上記ブートシグネチャが“０ｘ２９”の場合には、ランダムに割り当てられるシリアル番号が記載される。この「ボリュームシリアルＩＤ」は、実装依存なので省略可能であるが、同一機種のデバイス機器１０に対しては、常に同じ値が設定される。
【０２４２】
「ボリュームラベル」には、ＦＡＴファイルシステム２５としてのボリューム名が、合計で１１文字まで記載される。
「ファイルシステムタイプ」には、ＦＡＴファイルシステム２５の種別（「ＦＡＴ３２」システム，「ＦＡＴ１６」システム，「ＦＡＴ１２」システムの中のいずれのシステムか）が記載される。本実施例では、「ＦＡＴ３２」システムが記載される。
【０２４３】
続いて、ＦＡＴエミュレータ部１８による仮想ＦＳＩＮＦＯのメモリ上への生成の実施例について説明する。
ＦＳＩＮＦＯは、ＤＰＢの直後に存在する１セクタ分（５１２バイト）の領域で、ＦＡＴファイルシステム２５が「ＦＡＴ３２」システムである場合のみ存在する。ＦＳＩＮＦＯに使用されるのは、１８バイトである。その中、６バイトは予約エリアなので、実際には、１２バイト(４バイト×３）しか記載する必要がない。このＦＳＩＮＦＯには、例えば、「ファイルシステムシグネチャ」，「空きクラスタ数」，「最終書き込みクラスタ番号」といった情報が記載される。
【０２４４】
「ファイルシステムシグネチャ」には、“ｒｒＡａ”が記載され、固定である。
「空きクラスタ数」には、後述する中間テーブル７０から、仮想ＦＡＴファイルシステム２５としての空きクラスタ数が算出され記載される。ただし、実装側の負荷が大きい場合、“−１”を記載してもかまわない。
【０２４５】
「最終書き込みクラスタ番号」には、最終的に書き込んだＦＡＴファイルシステム２５としての空きクラスタ番号が記載されるべきであるが、ルートディレクトリエントリに移動し更新したと仮定し、常にルートディレクトリエントリに該当するクラスタ番号“２”が記載される。
【０２４６】
以上のように、デバイス機器１０は、ＦＡＴエミュレータ部１８により、仮想ＦＡＴ空間５０ｓのマッピングをもとに、実際の記録装置１１には存在しないものであっても、仮想ＭＢＲ、仮想ＤＰＢ、仮想ＦＳＩＮＦＯといったＦＡＴファイルシステム２５中の必須の管理領域を、メモリ上に展開することが可能になる。
【０２４７】
次に、図１３のステップＳ561，Ｓ562で説明した、ＬＢＡ変換処理の第１の処理としての仮想ディレクトリエントリの生成について説明する。
ホスト機器２０からの読み取り要求によって与えられたＬＢＡ番号Ｓが“１８５３０≦Ｓ≦２１１５６８１”で、記録装置１１に対応した仮想記録装置２１'の仮想クラスタ番号“２”〜“６５,５３７”に対応する読み取り要求である場合、デバイス機器１０のＦＡＴエミュレータ部１８は、ＬＢＡ変換処理として、そのメモリ上に仮想ディレクトリエントリを生成して展開し、この読み取り要求によって与えられたＬＢＡ番号Ｓによって生成されて展開された仮想ディレクトリエントリの中、該当する５１２バイト部分の仮想ディレクトリエントリの記録内容を出力データとして用意する。
【０２４８】
この場合、本実施例では、図４に例示した独自ファイルシステム１５のディレクトリエントリツリーのディレクトリエントリの包含内容と等価のグループは、図５に示したディレクトリエントリ生成用中間テーブル７１をもとに、仮想ＦＡＴ空間５０ｓの仮想ディレクトリエントリ領域５３の仮想ディレクトリエントリとして、図１４に示すように、記録装置１１とは別の記録装置（例えば、ＲＡＭ，フラッシュメモリ等）上に展開する。
【０２４９】
図１４は、仮想ＦＡＴ空間の仮想ディレクトリエントリ領域における仮想ディレクトリエントリの配置方法の実施例を示したものである。
本実施例では、独自ファイルシステム１５によるディレクトリ／ファイルについての、仮想ＦＡＴ空間５０ｓの仮想ディレクトリエントリ領域５３におけるディレクトリエントリの割り当ては、１グループ当たり、仮想ＦＡＴ空間５０ｓの仮想ディレクトリエントリ領域５３における２４クラスタを仮想して割り当てている。
【０２５０】
この２４クラスタは、３９３,２１６バイト（512×32×24）に相当し、ディレクトリエントリ中、１エントリは「ＦＡＴ３２」システムのため３２バイトを必要とするので、１グループに割り当てられるディレクトリエントリの総数（すなわち、図５に示したディレクトリエントリ生成用中間テーブル７１の「グループに存在するファイルとグループ（エントリ）の総計」Ｇfgに対応）の最大値は、“１２,２８８（393216÷32）”になる。
【０２５１】
ただし、ルートディレクトリエントリ以外のグループは、後述するようにディレクトリトップに２エントリ分を必要とするため、ルートディレクトリエントリ以外の実際の１グループに割り当てられるディレクトリエントリの総数Ｇfgの上限は、“１２,２８６”になる。
【０２５２】
また、この１グループのディレクトリエントリの総数Ｇfgが上限“１２,２８６”に満たなくても、仮想ディレクトリエントリ領域５３における、これら各グループのディレクトリエントリの先頭位置は、図１４に示すように、固定されている。
【０２５３】
なお、仮想ディレクトリエントリ領域５３は、本実施例では記録装置１１とは別の記録装置（例えば、ＲＡＭ，フラッシュメモリ等）の、擬似ディレクトリエントリ展開領域において生成／展開される。
【０２５４】
図１４では、グループ番号“０”のディレクトリエントリの先頭位置は、仮想ディレクトリエントリ領域５３が生成されるＦＡＴエミュレータ部１８のメモリ上の擬似ディレクトリエントリ展開領域の“０”番目のクラスタ（先頭クラスタ）から記録されていることを示し、同様にグループ番号“１”のディレクトリエントリの先頭位置はメモリ上の擬似ディレクトリエントリ展開領域の“２４”番目、グループ番号“１”のディレクトリエントリの先頭位置はメモリ上の擬似ディレクトリエントリ展開領域の“４８”番目のクラスタから記録されていることを示している。
【０２５５】
これにより、対象とするディレクトリエントリが属するグループ番号Ｇnがわかれば、仮想ＦＡＴ空間５０ｓの仮想ディレクトリエントリ領域５３において、グループ番号Ｇnに対応して割り当てられているディレクトリエントリの仮想クラスタ位置（仮想ＬＢＡ番号）が自動的に算出可能になっている。
【０２５６】
ところで、図３に示したように、仮想ＦＡＴ空間５０ｓにおける仮想ディレクトリエントリ領域５３への割り当てバイト数は“１ＧＢ＝６５５３６クラスタ”であるので、実際に登録可能なグループ（ディレクトリエントリ）の総数は、“６５５３６÷２４≒２７３０”となる。
【０２５７】
そして、上述した構成からなる仮想ＦＡＴ空間５０ｓの仮想ディレクトリエントリ領域５３は、前述した図５〜図７に示したごとくのディレクトリエントリ生成用中間テーブル７１、図８に示したごとくのファイル用中間テーブル７２が生成できたならば、これらをもとにその生成が可能になる。
【０２５８】
そこで、図１３のステップＳ561で説明した、ディレクトリエントリ生成用中間テーブル７１をもとにした仮想ＦＡＴ空間５０ｓの仮想ディレクトリエントリ領域５３の生成について説明する。
【０２５９】
前述したように１つのディレクトリエントリには、３２バイトが必要である。この３２バイトの１つのディレクトリエントリは、本実施例の場合、図１５に示すような「ファイル名及び拡張子」Ｎd，「ファイル属性」Ｎp，「作成時刻」Ｔt，「作成日付」Ｔd，「更新時刻」Ｔut，「更新日付」Ｔud，「エントリの先頭クラスタ番号」Ｃgsと言った情報が含まれる構成になっている。
【０２６０】
図１５は、仮想ＦＡＴ空間の仮想ディレクトリエントリ領域における１つのディレクトリエントリの実施例を示した図である。なお、図１５に示した実施例の内容は、ＤＯＳ互換のものであり、ＬＦＮには対応していない。
【０２６１】
本実施例の場合、「ファイル名及び拡張子」Ｎdは、それぞれ８文字及び３文字で記載される。「ファイル属性」Ｎpには、ディレクトリ又はファイル何れのエントリかを示す属性が記載される。「作成時刻」Ｔtには、そのエントリが最初に作成された時刻が記載される。「作成日付」Ｔdには、そのエントリが最初に作成された日付が記載される。「更新時刻」Ｔutには、そのエントリが最新に更新された時刻が記載される。「更新日付」Ｔudには、そのエントリが最新に更新された日付が記載される。
【０２６２】
図５〜図７に示したディレクトリエントリ生成用中間テーブル７１から、これらの情報を生成するのであるが、対象となるエントリがディレクトリのエントリか、ファイルのエントリかで、本実施例の場合は処理方法が異なる。
【０２６３】
対象となるエントリがディレクトリのエントリの場合、図１６に示す記載内容で、仮想ディレクトリエントリ領域５３におけるディレクトリエントリを生成する。
図１６は、仮想ＦＡＴ空間の仮想ディレクトリエントリ領域における、ディレクトリのディレクトリエントリ記載内容の実施例を示した図である。
【０２６４】
この場合、「ファイル名と拡張子」Ｎdは、ディレクトリエントリ生成用中間テーブル７１のグループ番号Ｇnから、逆に独自ファイルフォーマット４０の管理領域４１におけるリンクをたどり、その独自管理情報から生成される。この「ファイル名と拡張子」Ｎdは、独自ファイルシステム１５で管理している名称と一致している必要はなく、ホスト機器２０側に認識させたい名前が設定される。
【０２６５】
「ファイル属性」Ｎpには、ディレクトリ属性が付加される。「作成時刻」Ｔt，「作成日付」Ｔd，「更新時刻」Ｔut，及び「更新日付」Ｔudといった履歴情報は、実際には、この仮想ＦＡＴ空間５０ｓの仮想ディレクトリエントリ領域５３におけるディレクトリエントリ自体がＦＡＴエミュレータ部１８によってメモリ上の擬似ディレクトリエントリ展開領域に形成される仮想のものであるから、ホスト機器２０が読み取り要求を発生した日付、日時が設定される。「エントリの先頭クラスタ番号」Ｃneは、エントリ先のグループ番号から一義的に定まる。
【０２６６】
これに対し、対象となるエントリがファイルのエントリである場合、図１７に示す記載内容で、仮想ディレクトリエントリ領域５３のファイルの情報を生成する。
図１７は、仮想ＦＡＴ空間の仮想ディレクトリエントリ領域における、ファイルのディレクトリエントリ記載内容の実施例を示した図である。
【０２６７】
この場合、「ファイル名と拡張子」Ｎdは、図８に示したファイル用中間テーブル７２に定義されたファイル名Ｎfがそのまま採用される。「ファイル属性」Ｎpには、ファイル属性が付加される。「作成時刻」Ｔt，「作成日付」Ｔd，「更新時刻」Ｔut，及び「更新日付」Ｔudといった履歴情報は、ファイル用中間テーブル７２に定義された日付や時刻がそのまま採用される。「エントリの先頭クラスタ番号」Ｃgsは、同じくファイル用中間テーブル７２から一義的に定められる。すなわち、「エントリの先頭クラスタ番号」Ｃgsには、図８に示したファイル用中間テーブル７２に定義された「ファイル開始仮想クラスタ番号」Ｃfsがそのまま採用される。
【０２６８】
以上のようにして、図６に示したグループ番号“０”のルートディレクトリのディレクトリエントリを生成し、メモリ上の擬似ディレクトリエントリ展開領域に展開すると、図１８のようになる。
【０２６９】
図１８は、仮想ＦＡＴ空間の仮想ディレクトリエントリ領域におけるルートディレクトリのディレクトリエントリの実施例を示した図である。
このグループ番号が“０”のルートディレクトリ（図４参照）の場合は、ＦＡＴエミュレータ部１８により、メモリ上の擬似ディレクトリエントリ展開領域に、仮想ディレクトリエントリ領域５３が次のように生成されて展開される。
【０２７０】
まず、メモリ上の擬似ディレクトリエントリ展開領域における領域先頭からのオフセットを“０”バイトとして、グループ番号が“０”の最初のエントリ“Ｄir１”（図４参照）が生成される。この場合、エントリ“Ｄir１”には、その属性として“ディレクトリ”が記載され、開始クラスタ番号Ｃgsとしては、そのサブディレクトリであるグループ番号が“１”のディレクトリの擬似ディレクトリエントリ展開領域における開始クラスタ番号（すなわち、メモリ上の擬似ディレクトリエントリ展開領域の領域先頭からのクラスタ番号）である“２４”が記載される。なお、この場合、メモリ上の擬似ディレクトリエントリ展開領域の領域先頭は、仮想ＦＡＴ空間５０ｓにおける仮想クラスタ番号“１８,５３０”に対応する。
【０２７１】
また、メモリ上の擬似ディレクトリエントリ展開領域の領域先頭からのオフセットを“３２”バイトとして、グループ番号が“０”の次のエントリ“Ｄir２”（図４参照）が生成される。この場合、エントリ“Ｄir２”には、その属性として“ディレクトリ”が記載され、開始クラスタ番号Ｃgsとして、そのサブディレクトリであるグループ番号が“２”のディレクトリの擬似ディレクトリエントリ展開領域における開始クラスタ番号である“４８”が記載される。
【０２７２】
また、メモリ上の擬似ディレクトリエントリ展開領域の領域先頭からのオフセットを“６４”バイトとして、グループ番号が“０”のその次のエントリ“Ｆile０”（図４参照）が生成される。この場合、エントリ“Ｆile０”には、その属性として“ファイル”が記載され、開始クラスタ番号Ｃgsとして、その開始クラスタ番号である“Ｘ０”が記載される。
【０２７３】
同様にして、仮想ディレクトリエントリ領域５３を形成するメモリ上の擬似ディレクトリエントリ展開領域の先頭からのオフセットを“９６”バイトとして、グループ番号が“０”における次のエントリ“Ｆile１”（図４参照）が生成される。この場合、エントリ“Ｆile１”には、その属性として“ファイル”が記載され、開始クラスタ番号Ｃgsとして、その開始クラスタ番号である“Ｘ１”が記載される。
【０２７４】
また、仮想ディレクトリエントリ領域５３を形成するメモリ上の擬似ディレクトリエントリ展開領域の先頭からのオフセットを“１２８”バイトとして、グループ番号が“０”の最後のエントリ“Ｆile２”（図４参照）が生成される。この場合、エントリ“Ｆile２”には、その属性として“ファイル”が記載され、開始クラスタ番号として、その開始クラスタ番号である“Ｘ２”が記載される。
【０２７５】
これに対し、グループ番号が“１”以降のグループのディレクトリは、仮想ディレクトリエントリ領域５３を形成するメモリ上の擬似ディレクトリエントリ展開領域の先頭から、それ以前のグループのディレクトリ領域分だけオフセットされたクラスタ番号から記載される。例えば、グループ番号が“１”のディレクトリは、図１４に示すように、グループ番号が“０”のディレクトリ領域分である２４クラスタ分だけオフセットされた、メモリ上の擬似ディレクトリエントリ展開領域のクラスタ番号“２４”のクラスタを開始クラスタとして、その先頭から生成される。
【０２７６】
そして、このグループ番号が“１”以降のグループのディレクトリエントリの生成に当たっては、開始クラスタ番号のクラスタ先頭から、ディレクトリトップ専用の内容を表わした２つの特殊なエントリが記載された後に、グループに含まれるエントリが生成される。
【０２７７】
図１９は、仮想ＦＡＴ空間の仮想ディレクトリエントリ領域におけるグループ番号が“１”のディレクトリのエントリの実施例を示した図である。
図１９に示すように、仮想ディレクトリエントリ領域５３を生成／展開するためにメモリ上に形成された擬似ディレクトリエントリ展開領域において、グループ番号が“１”のディレクトリは、ルートディレクトリではないので、開始クラスタ番号“２４”のクラスタ先頭から、ディレクトリトップ専用の内容を表わした２つの特殊なエントリが存在する。そのため、開始クラスタ番号“２４”のクラスタ先頭からのオフセットを“６４”バイトとして、グループ番号が“１”のディレクトリにおける最初のエントリ“Ｄir３”（図４参照）が生成される。同様にして、開始クラスタ番号“２４”のクラスタ先頭からのオフセットを“９６”バイトとして、次のエントリ“Ｄir４”（図４参照）が生成され、またオフセットを“１２８”バイトとして、グループ最後のエントリ“Ｆile３”が生成される。
【０２７８】
なお、図１８及び図１９に示したファイルのエントリ“Ｆile０〜Ｆile３”の開始クラスタ番号“Ｘ１〜Ｘ４”については、ファイル用中間テーブル７２を参照した演算が必要となる。また、今回の方法はＬＦＮ非対応であるが、若干の拡張を施すことでＬＦＮへの対応も可能である。なお、ファイルのエントリ“Ｆile０〜Ｆile３”の開始クラスタ番号“Ｘ１〜Ｘ４”についての、ファイル用中間テーブル７２を参照した演算については、後述する。
【０２７９】
したがって、仮想クラスタ番号“２”から仮想クラスタ番号“６５,５３７”に該当する、仮想ＬＢＡ番号“１８,５３０”のから仮想ＬＢＡ番号“２,１１５,６８１”の読み取り要求Ｓが発生した場合、これは、仮想ＦＡＴ空間５０ｓの仮想ディレクトリエントリ領域５３に対する読み取り要求が発生したとデバイス機器１０のＦＡＴエミュレータ部１８は判別し、上述した如くの仮想ディレクトリエントリ領域５３の生成手法に基づいて、ＦＡＴエミュレータ部１８は、次に説明するような処理を行う。
【０２８０】
仮想ディレクトリエントリ領域５３は、記録装置１１の独自ファイルシステム１５による１グループ（ディレクトリ）のディレクトリエントリ当たり、２４クラスタを用いるため、ホスト機器２０は、後述する仮想ＦＡＴを参照しながら、例えば、グループ番号が“０”のルートディレクトリであれば、図３に示した仮想ＦＡＴ空間５０ｓの仮想ディレクトリエントリ領域５３における仮想クラスタ番号“２”を先頭に最大２４クラスタ分の読み取り要求を、また、グループ番号が“１”のディレクトリであれば同様に仮想クラスタ番号“２６”を先頭に最大２４クラスタ分の読み取り要求を発行してくることになる。
【０２８１】
したがって手続きとしては、ホスト機器２０からの読み取り要求のＬＢＡ番号Ｓが、仮想クラスタ番号“２〜６５５３７”に対応する“１８５３０≦Ｓ≦２１１５６８１”の仮想ディレクトリエントリ領域５３についてである場合には、デバイス機器１０のＦＡＴエミュレータ部１８は、ホスト機器２０からの読み取り要求のＬＢＡ番号Ｓから、次式によって、仮想ＦＡＴ空間５０ｓの仮想ディレクトリエントリ領域５３における仮想クラスタ番号Ｃを求める。
Ｃ＝(Ｓ-１８５３０)￥３２＋２                                    (13)
【０２８２】
そして、この仮想クラスタ番号Ｃから、そのエントリが管理するであろうグループ番号Ｇnを次式により求める。
Ｇsn＝[(Ｃ−２)÷２４]                                           (14)
【０２８３】
その上で、ディレクトリエントリ生成用中間テーブル７１を参照し、該当するグループ番号Ｇnのディレクトリエントリを、最大２４クラスタ分だけ生成し（図１２のステップＳ415，図１３のステップＳ461が対応）、上述したようにして、ＦＡＴエミュレータ部１８によってメモリ上の擬似ディレクトリエントリ展開領域に展開し（図１２のステップＳ415，図１３のステップＳ462が対応）、ホスト機器２０からの読み取り要求で要求されたセクタ長分を、通信ドライバ１９を介してホスト機器２０に返す（図１２のステップＳ416〜Ｓ417，図１３のステップＳ491が対応）。
【０２８４】
ただし、一度に処理される可能性としては、本実施例としては、１グループ当たり、仮想ＦＡＴ空間５０ｓの仮想ディレクトリエントリ領域５３における仮想の“２４クラスタ”を割り当てているため、“２４クラスタ分＝１６ＫＢ×２４＝３８４ＫＢ”が最大である。したがって、もし、ＦＡＴエミュレータ部１８を備えたデバイス機器１０のメモリ上に余裕があるのであれば、擬似ディレクトリエントリ展開領域として３８４ＫＢをキャッシングすると効率的である。ただし、ホスト機器２０側の両ドライバ２７，２８の制約により、ホスト機器２０から一度に発生する読み取り要求は最大でも前述したように１２８ＫＢ分であるから、キャッシュ容量は後述する仮想ＦＡＴと同じく１２８ＫＢに固定してもかまわない。
【０２８５】
また、メモリに余裕がないのであれば、キャッシングを行わず、ホスト機器２０からの仮想ディレクトリエントリ領域５３を指定したＬＢＡ番号Ｓの読み取り要求の都度、このＬＢＡ番号Ｓに対応したグループ番号Ｇnのディレクトリエントリのテーブルを５１２バイト分、すなわち１エントリは３２バイト必要とするのでグループ番号Ｇnにおける１６個のエントリ分をメモリ上の擬似ディレクトリエントリ展開領域で生成／展開しては、返すという方式でもかまわない。
【０２８６】
次に、図１３のステップＳ551〜Ｓ553で説明した、ＬＢＡ変換処理の第１の処理としての仮想ＦＡＴの生成について説明する。
ホスト機器２０からの読み取り要求によって与えられたＬＢＡ番号Ｓが“９６≦Ｓ≦２１８５２９”で、記録装置１１に対応した仮想記録装置２１'の仮想クラスタ番号“１”に対応する仮想ＦＡＴの読み取り要求があった場合、デバイス機器１０のＦＡＴエミュレータ部１８は、ＬＢＡ変換処理として、そのメモリ上に仮想ＦＡＴを生成して展開し、この読み取り要求によって与えられたＬＢＡ番号Ｓによって生成されて展開されたＦＡＴの中、該当する５１２バイト部分の仮想ディレクトリエントリの記録内容を出力データとして用意する。
【０２８７】
この場合、本実施例では、図５に示したディレクトリエントリ生成用中間テーブル７１及び図８に示したファイル用中間テーブル７２をもとに、仮想ＦＡＴ空間５０ｓの仮想管理領域５１の仮想ＦＡＴとして、記録装置１１とは別の記録装置（例えば、ＲＡＭ，フラッシュメモリ等）上に展開する。
【０２８８】
なお、仮想ＦＡＴは、本実施例では、記録装置１１とは別の記録装置（例えば、ＲＡＭ，フラッシュメモリ等）上の、擬似ＦＡＴ展開領域に準備される。
ここで、図３に示した仮想ＦＡＴ空間５０ｓの仮想管理領域５１に形成される仮想ＦＡＴへの、仮想ディレクトリエントリ領域５３の反映方法について説明する。
【０２８９】
ＦＡＴエミュレータ部１８は、仮想ディレクトリエントリ領域５３のディレクトリを仮想ＦＡＴ空間５０ｓの仮想管理領域５１の仮想ＦＡＴに反映する場合、ホスト機器２０からのアクセス手順の関係から、ディレクトリエントリ生成用中間テーブル７１を参照して、仮想ＦＡＴを必要部分について生成／更新する。
【０２９０】
本実施例の場合、仮想ディレクトリエントリ領域５３は、図３に示したように、仮想ＦＡＴ空間５０ｓの仮想クラスタ番号“２”〜“６５,５３７”にわたって存在し、各グループの開始クラスタ番号Ｃgsは、仮想ディレクトリエントリ領域５３において１グループ当たりのエントリに２４クラスタを割り当てていることから一義的に定まるため、後は、各グループのディレクトリエントリが実際に占有するクラスタサイズが求まれば、仮想ディレクトリエントリ領域５３を仮想ＦＡＴに反映することが可能となる。
【０２９１】
まず、図５に示したディレクトリエントリ生成用中間テーブル７１からグループのディレクトリエントリのクラスタサイズを算出する方法について、独自ファイルシステム１５中のディレクトリツリーが図４に示したようになっている場合を例に、説明する。
【０２９２】
図４に示したディレクトリツリーにおいて、グループ番号“０”のルートディレクトリが仮想ＦＡＴに反映する対象のエントリである場合、図６に示したグループ番号“０”のディレクトリエントリ生成用中間テーブル７１から、このルートディレクトリに含まれるエントリの総計（図６に示す「グループ存在するファイルとグループの総計」Ｇfgが対応）を求めることができる。
【０２９３】
一方、本実施例のデバイス機器１０の記録装置１１では、１クラスタは１６ＫＢ（512×32）で、１エントリには３２バイトが必要なので、１クラスタ当たり、５１２個のエントリを設定可能である。
【０２９４】
これより、「グループのディレクトリエントリのために必要なクラスタ総数」Ｃgは、
Ｃg ＝［Ｇfg÷５１２］＋１                                       (15)
で求めることができる。なお、式中の“［  ］”はガウス記号を示し、ある値を超えない最大の整数値を表す。
【０２９５】
したがって、図４に示したディレクトリツリーのグループ番号“０”のルートディレクトリの場合、グループのディレクトリエントリのために必要なクラスタ総数Ｃgは“５”であるから、グループ番号“０”のルートディレクトリのために必要なクラスタ総数Ｃg(0)は“１”になる。
【０２９６】
次に、対象となるエントリがルートディレクトリではない場合について、グループのディレクトリエントリのクラスタサイズを算出する方法を、図７に示したグループ番号“１”のディレクトリエントリ生成用中間テーブル７１を例に、説明する。
【０２９７】
この場合、図７に示したグループ番号“１”のディレクトリエントリ生成用中間テーブル７１から、対象となるエントリが含まれるグループのエントリの総計（図７に示す「グループ存在するファイルとグループの総計」Ｇfgが対応）を求めることができる。
【０２９８】
ところで、この場合におけるグループ番号“１”のディレクトリエントリは、ルートディレクトリではないので、図１８に示したように、ディレクトリトップの２個の専用エントリを考慮しなければならない。
【０２９９】
以上のことから、グループ番号“１”以降のグループのディレクトリエントリのために必要なクラスタ総数Ｃgは、同様にして
Ｃg ＝［（Ｓｕｍ＋２）÷５１２］＋１                             (16)
で求めることができる。
【０３００】
したがって、図４に示したディレクトリツリーのグループ番号“１”のディレクトリの場合、対象となるエントリが含まれるグループのエントリの総計Ｇfg(1)は“３”であるので、グループ番号“１”のディレクトリのために必要なクラスタ総数Ｃg(1)は“１”になる。
【０３０１】
以上のような演算を経て、各グループのディレクトリエントリにおいて、各グループの先頭クラスタ番号Ｃgs、各グループの占有クラスタサイズ（必要なクラスタ総数）Ｃgが、それぞれ求まる。
【０３０２】
例えば、デバイス機器１０における想記録装置１１（すなわち、仮想記録装置２１'）の仮想ＦＡＴ空間５０ｓのディレクトリエントリの構成が、図２０に示すようになっていたならば、仮想ＦＡＴ空間５０ｓの仮想ＦＡＴ先頭部についての内容は、図２１に示すとおりになる。
【０３０３】
図２０は、グループ番号“０”から“３”までのディレクトリエントリにおいて、各グループ毎の占有クラスタサイズの例を示した図である。
なお、図２０に示したディレクトリエントリの例は、図４にディレクトリツリーを例示したディレクトリエントリとは異なるものになっている。図２０に示した例では、グループ番号が“０”のディレクトリの占有クラスタサイズＣg(0)が“５”、グループ番号が“１”のディレクトリの占有クラスタサイズＣg(1)が“３”、グループ番号が“２”のディレクトリの占有クラスタサイズＣg(2)が“１０”、グループ番号が“３”のディレクトリの占有クラスタサイズＣg(3)が“１”であることを示している。
【０３０４】
図２１は、図２０に示したディレクトリエントリの例について、仮想ＦＡＴの先頭部の内容を示した図である。
図２１は、仮想ＦＡＴ空間５０ｓの仮想ＦＡＴ先頭部について、メモリ上の擬似ＦＡＴ展開領域に生成／展開した内容を表形式に示したもので、１クラスタ当たりのＦＡＴ情報が４バイトで記載され、図中、４つに区分けされている部分が、各グループに割り当てられた２４クラスタ分のディレクトリエントリ領域の仮想ＦＡＴを意味する。
【０３０５】
例えば、占有クラスタサイズＣg(0)が“５”で、グループ番号が“０”のディレクトリエントリ（ルートディレクトリエントリ）について見ていくと、仮想ＦＡＴにおける、仮想ＦＡＴ空間５０ｓのディレクトリエントリ領域５３の先頭クラスタである仮想クラスタ番号“２”に対応する記録領域には、その次にリンクすべき仮想ＦＡＴ空間５０ｓの記録領域のＦＡＴ情報として、仮想クラスタ番号“３”が記載される。以下、同様にして、グループ番号が“０”のディレクトリエントリに関し、残りのリンクすべき４クラスタ分についてのＦＡＴ情報が記載される。すなわち、仮想ＦＡＴの仮想クラスタ番号“３”に対応する記録領域には仮想クラスタ番号“４”が記載され、仮想ＦＡＴの仮想クラスタ番号“４”に対応する記録領域には仮想クラスタ番号“５”が記載され、仮想ＦＡＴの仮想クラスタ番号“５”に対応する記録領域には仮想クラスタ番号“６”が記載され、グループ番号が“０”のディレクトリエントリの最終クラスタである仮想クラスタ番号“６”に対応する仮想ＦＡＴの記録領域には、ＦＡＴ情報の終端記号である“ＦＦＦＦＦＦＦＦｈ（−1）”が記載される。
【０３０６】
そして、本実施例では、前述したように、仮想ＦＡＴ空間５０ｓの仮想ディレクトリエントリ領域５３では、１グループのディレクトリエントリ当たり、２４クラスタを仮想的に割り当て確保しているため、仮想ＦＡＴの仮想クラスタ番号“７”から仮想クラスタ番号“２３”に対応する記録領域までは、「空き」であることを示す“０”が記載される。
【０３０７】
以下、同様な方法で、グループ番号“１〜３”のディレクトリエントリのリンクが、仮想ＦＡＴに割り当てられていることが示されている。
本実施例は、「リードオンリー」、すなわちホスト機器２０からデバイス機器１０の記録装置１１へのファイルの書き込みを許さない事例なので、このように「エントリ間に空きクラスタを挟む」形式を採用している。
【０３０８】
しかしながら、ホスト機器２０からデバイス機器１０の記録装置１１へのファイル書き込みを許す形式での実装が必要になった場合、例えば、仮想ＦＡＴの仮想クラスタ番号“７”に対応する記録領域が「空き」であるとホスト機器２０側で判断され、何かのデータが埋め込まれてしまう可能性がある。したがって、リードオンリー以外の実装を行う場合は、ディレクトリエントリ生成用中間テーブル７１の生成方法も含め、さらなる拡張が必要となる。
【０３０９】
これに対し、ＦＡＴエミュレータ部１８は、仮想ファイル領域５４のディレクトリを仮想ＦＡＴ空間５０ｓの仮想管理領域５１の仮想ＦＡＴに反映する場合、ホスト機器２０からのアクセス手順の関係から、ファイル用ディレクトリエントリ生成用中間テーブル７２を参照して、仮想ＦＡＴを必要部分についてメモリ上の擬似ＦＡＴ展開領域に生成／更新する。
【０３１０】
仮想ファイル領域５４を仮想ＦＡＴに反映する方法は、仮想ディレクトリエントリ領域５３を仮想ＦＡＴに反映する方法とほぼ同じである。ただし、次の点が仮想ディレクトリエントリ領域５３を仮想ＦＡＴに反映する場合と異なっている。
【０３１１】
まず、メモリ上の擬似ＦＡＴ展開領域の領域先頭は、仮想ＦＡＴ空間５０ｓにおける仮想ファイル領域５４の開始クラスタ番号である仮想クラスタ番号“６５,５３８”になる。また、仮想ディレクトリエントリ領域５３の場合に存在した、「空きクラスタ」は存在せず、全てのクラスタは頭詰めで存在する。これらの例を示したのが、図２２、図２３である。
【０３１２】
図２２は、仮想ファイル領域に存在する３つのファイルそれぞれの占有クラスタサイズの例を示した表である。
この例では、便宜的に、最初のファイルの占有クラスタサイズが“３”、次のファイルの占有クラスタサイズが“６”、その次のファイルの占有クラスタサイズが“９”であるものとし、ファイルは３つしか存在していないものとなっている。
【０３１３】
図２３は、図２２に示した仮想ＦＡＴ空間の仮想ファイル領域の内容を示した仮想ＦＡＴの説明図である。
図２３中、区分けされているメモリ上の擬似ＦＡＴ展開領域の領域部分が、仮想ＦＡＴ空間５０ｓで各ファイルに割り当てられた仮想ＦＡＴを意味する。
【０３１４】
例えば、仮想ファイル領域５４の最初のファイル番号が“０”のファイルについて見ていくと、仮想ＦＡＴの仮想クラスタ番号“６５,５３８”に対応する擬似ＦＡＴ展開領域の領域先頭の４バイト分には、ＦＡＴ情報としてその次にリンクすべき仮想クラスタ番号“６５,５３９”が記載され、以下、ファイル番号が“０”のファイルの残りのリンクすべき２クラスタ分のＦＡＴ情報が８バイト分だけ続く。仮想ＦＡＴにおけるこのファイル番号が“０”のファイルの最終クラスタであるクラスタ番号“６５,５４０”に対応する擬似ＦＡＴ展開領域の領域部分には、ファイル番号が“０”のファイルの終端記号である“ＦＦＦＦＦＦＦＦｈ（−1）”が記載される。
【０３１５】
このように、図２３に示した仮想ファイル領域５４の仮想ＦＡＴの場合は、図２１に示した仮想ディレクトリエントリ領域５３の仮想ＦＡＴの場合とは異なり、この直後の仮想クラスタ番号“６５,５４１”に対応する擬似ＦＡＴ展開領域の領域部分から次のファイル番号が“１”のファイルが割り当てられ、クラスタ番号“６５,５４１”に対応する擬似ＦＡＴ展開領域には、ファイル番号が“１”のファイルについて、その次にリンクすべきクラスタ番号“６５,５４２”が記載され、以下、ファイル番号が“１”のファイルのリンクすべき５クラスタ分のＦＡＴ情報が２０バイト分だけ続く。仮想ＦＡＴにおけるファイル番号が“１”のファイルの最終クラスタであるクラスタ番号“６５,５４６”に対応する擬似ＦＡＴ展開領域の領域部分には、ファイル番号が“１”のファイルの終端記号である“ＦＦＦＦＦＦＦＦｈ（−1）”が記載される。
【０３１６】
同様にして、この直後の仮想クラスタ番号“６５,５４７”に対応する擬似ＦＡＴ展開領域の領域部分からその次のファイル番号が“２”のファイルが割り当てられ、クラスタ番号“６５,５４７”に対応する擬似ＦＡＴ展開領域には、ファイル番号が“２”のファイルについて、その次にリンクすべきクラスタ番号“６５,５４８”が記載され、以下、ファイル番号が“２”のファイルのリンクすべき８クラスタ分のＦＡＴ情報が３２バイト分だけが続く。仮想ＦＡＴにおけるファイル番号が“２”のファイルの最終クラスタであるクラスタ番号“６５,５５５”に対応する擬似ＦＡＴ展開領域の領域部分には、ファイル番号が“２”のファイルの終端記号である“ＦＦＦＦＦＦＦＦｈ（−1）”が記載される。なお、本実施例の場合では、クラスタ番号“６５５,５５６”以降の擬似ＦＡＴ展開領域の領域部分には、仮想ファイル領域５４にファイルが記録されていないことを示す“０”が記載される。
【０３１７】
次に、このような構成からなる仮想ＦＡＴが、仮想ＦＡＴ空間５０ｓ中の領域をどのように管理しているかについて説明する。
図２４は、仮想ＦＡＴ空間中の仮想ＦＡＴが、仮想ＦＡＴ空間中の領域をどのように管理しているかを示している説明図である。
【０３１８】
ＦＡＴエミュレータ部１８は、ホスト機器２０からの読み取り要求によって与えられたＬＢＡ（セクタ）番号Ｓ（９６≦Ｓ≦１８５２９）に基づいて、ホスト機器２０が仮想ＦＡＴ空間５０ｓの仮想クラスタ番号“１”の仮想ＦＡＴ領域の参照を要求していることがわかった場合には、ホスト機器２０が参照を要求しているのがＦＡＴ１であるか、ＦＡＴ２であるかを判断する構成になっている。
【０３１９】
仮に、読み取り要求によって与えられたＬＢＡ番号ＳがＦＡＴ２を参照するものであった場合には（ＬＢＡ番号Ｓが、“９３１３≦Ｓ≦１８５２９”の場合）、ＦＡＴエミュレータ部１８は、このＬＢＡ番号Ｓから、ＦＡＴ１の占有セクタサイズ分“９,２１７”を減算することで、ＦＡＴ１に対応する新たなＬＢＡ番号Ｓを求め、ＦＡＴ１にアクセスしているものと仮定して処理を進める構成になっている。
【０３２０】
本実施例では、「ＦＡＴ３２」システムのため、１クラスタの管理に必要な記録容量は“３２ビット＝４バイト”であり、１セクタは５１２バイトのため、１セクタ当たり、“５１２÷４＝１２８個”のクラスタが管理可能である。
【０３２１】
例えば、ホスト機器２０からの読み取り要求によって与えられたＬＢＡ番号Ｓが“９６”の場合、ＦＡＴエミュレータ部１８は、仮想ＦＡＴ空間５０ｓの仮想クラスタ番号“０”に対応する管理部２クラスタ（ＤＰＢ，ＦＳＩＮＦＯ）分の仮想ＦＡＴ、及びディレクトリエントリ領域５２の６５,５３６クラスタ分のＦＡＴの中の先頭部の１２６クラスタ分の仮想ＦＡＴを、図２１で説明したような構成でメモリ上の擬似ＦＡＴ展開領域に生成／展開して、ホスト機器２０に返すようになっている。
【０３２２】
また、読み取り要求によって与えられたＬＢＡ番号Ｓが“９７”〜“６０７”の場合、ＦＡＴエミュレータ部１８は、ディレクトリエントリ領域５２の６５,５３６クラスタ分のＦＡＴの中、与えられたＬＢＡ番号Ｓから１２８クラスタ分のＦＡＴを、図２１で説明したような構成でメモリ上の擬似ＦＡＴ展開領域に生成／展開して、ホスト機器２０に返すようになっている。
【０３２３】
すなわち、本実施例では、このＬＢＡ番号Ｓの“６０７”は、ＬＢＡ番号Ｓの“９７”から５１２セクタ目に相当し、この仮想ＬＢＡ番号が“９７”〜“６０７”の５１２セクタによって、６５,５３６（１２８×５１２）個のクラスタが管理可能であり、仮想ディレクトリエントリ領域５３のクラスタ総数である６５,５３６クラスタ分のＦＡＴの管理ができる。
【０３２４】
また、読み取り要求によって与えられたＬＢＡ番号Ｓが“６０８”（仮想ＬＢＡ番号“６０７＋１”）の場合、本実施例では、仮想ディレクトリエントリ領域５３の最終部の２クラスタ分に対応するＦＡＴと、クラスタ総数が１,１１４,１１２クラスタある仮想ファイル領域５４分のＦＡＴの中、先頭部の１２６クラスタ分に対応するＦＡＴの内容を、図２１及び図２３で説明したような構成でメモリ上の擬似ＦＡＴ展開領域に生成／展開して、ホスト機器２０に返すようになっている。
【０３２５】
すなわち、本実施例では、このＬＢＡ番号Ｓの“６０８”は、ＬＢＡ番号Ｓの“９７”から５１３セクタ目に相当し、ここから仮想ファイル領域５４のクラスタのＦＡＴの管理が始まる。そのため、上述のようになっている。
【０３２６】
また、読み取り要求によって与えられたＬＢＡ番号Ｓが“６０９”〜“９,３１２”の場合、仮想ファイル領域５４の残りの１,１１３,９８６クラスタ分のＦＡＴの中から要求ＬＢＡ番号Ｓに対応した１２８クラスタ分のＦＡＴの内容を、図２３で説明したような構成でメモリ上の擬似ＦＡＴ展開領域に生成／展開して、ホスト機器２０に返すようになっている。
【０３２７】
以上が、本実施例の場合のＦＡＴエミュレータ部１８による仮想ＦＡＴ生成のための基本手続きである。この基本手続きに従い、ＦＡＴエミュレータ部１８は、仮想ＦＡＴを、ディレクトリエントリ生成用中間テーブル７１及びファイル用中間テーブル７２からなる中間テーブル７０を参照して生成する。
【０３２８】
ところで、実際には、仮想ディレクトリエントリ領域５３及び仮想ファイル領域５４全ての、クラス総数“１,１７９,６４８”全部のＦＡＴが、ホスト機器２０から一連して要求されることはなく、ホスト機器２０では、記録装置１１のＦＡＴは全部ではなく、あくまでも部分的な管理となるはずである。
【０３２９】
そこで、ホスト機器２０により一回に連続して読み取られる可能性がある容量は、“２５６セクタ分＝１２８ＫＢ”なので、デバイス機器１０のメモリ上に１２８ＫＢのバッファを擬似ＦＡＴ展開領域として用意し、このバッファにホスト機器２０から与えられた読み取り要求の先頭ＬＢＡ番号Ｓから２５６セクタ分（１２８ＫＢ）に該当する３２,７６８個のクラスタ分のＦＡＴを生成し、展開しておけば、ホスト機器２０からの読み取り要求の都度、最初からＦＡＴを生成する手間が省ける。
【０３３０】
ここで、ホスト機器２０から与えられたＬＢＡ番号Ｓ（９６≦Ｓ）から、ＦＡＴで管理する最初の仮想クラスタ番号Ｃfsを算出する式は、１セクタ当たり１２８個のクラスタが管理可能であるため、次式になる。
Ｃfs＝(Ｓ−９６)×１２８                                         (17)
【０３３１】
上記の１２８ＫＢのバッファを用いた場合、３２,７６８個（=128×1024÷4）のクラスタが管理可能であるから、
Ｃfs 〜 Ｃfs＋３２７６８−1
にいたる仮想クラスタ番号のクラスタを管理する仮想ＦＡＴのキャッシングが可能となる。以上の手続きの流れは、次のようになる。
【０３３２】
まず、デバイス機器１０の記録装置１１に、ＬＢＡ番号ＣＳの次にＬＢＡ番号Ｓがホスト機器２０から与えられた場合に、
Ｓ≦ＣＳ+２５６                                                  (18)
が成立すれば、先にメモリ上のバッファにＬＢＡ番号ＣＳの読み取り要求に基づき展開した仮想ＦＡＴの一部であると考えられるから、ＬＢＡ番号Ｓの読み取り要求に基づき仮想ＦＡＴの生成を行わなくても、該当する部分５１２バイト分（ＬＢＡ番号Ｓから１２８クラスタ分）の仮想ＦＡＴを切り出して、ホスト機器２０に返すことで処理が終わる。
【０３３３】
つまり、最初に与えられたＬＢＡ番号を“ＣＳ”、次に与えられたＬＢＡ番号を“Ｓ”とし、“ＣＳ”から展開したデバイス機器１０におけるメモリ領域の先頭アドレスを“ＡＤＲ”、かつ最初に与えられたＬＢＡ番号ＣＳと次に与えられたＬＢＡ番号Ｓとの間で、式（１８）の“Ｓ≦ＣＳ+２５６”が成立するとした場合、ホスト機器２０から与えられた読み取り要求のＬＢＡ番号Ｓに対して、デバイス機器１０からホスト機器２０に返すべき５１２バイト（１２８クラスタ分）の先頭位置ＲＡは、１セクタは５１２バイトのため、
ＲＡ ＝ (ＡＤＲ＋(Ｓ−ＣＳ))×５１２                             (19)
で求めることが可能であり、ホスト機器２０から与えられる２回目以降の読み取り要求の際、与えられた読み取り要求のＬＢＡ番号Ｓから中間テーブル７０を参照してＦＡＴを生成する手間が省ける。
【０３３４】
次に、上述した仮想ＦＡＴ生成方法に基づく、図１３のステップＳ461，Ｓ462で示したＦＡＴ読み取り要求発生時の処理の流れの詳細を、図２５により説明する。
図２５は、デバイス機器におけるホスト機器からのＦＡＴ読み取り要求発生時のＦＡＴエミュレータ部による処理を示したフローチャートである。
【０３３５】
ホスト機器２０からＬＢＡ番号Ｓ（すなわち、９６≦Ｓ≦９,３１２）のＦＡＴ読み取り要求発生が生じた場合（ステップＳ601）、ＬＢＡ番号Ｓは仮想ＦＡＴ空間５０ｓのＦＡＴ１であるかＦＡＴ２であるかを、そのＬＢＡ番号Ｓに基づいて前述のようにして判断する（ステップＳ602）。
【０３３６】
この判断の結果、ＬＢＡ番号ＳがＦＡＴ２に対するＦＡＴ読み取り要求発生である場合は、ＬＢＡ番号ＳからＦＡＴ１の占有セクタサイズ分である“９,２１７”を減算することで、ＦＡＴ１に対応する新たなＬＢＡ番号Ｓを求める（ステップＳ603）。
【０３３７】
その上で、ＦＡＴエミュレータ部１８を含むデバイス機器１０におけるメモリ上の擬似ＦＡＴ展開領域としてのバッファに、今回のＬＢＡ番号ＳのＦＡＴ読み取り要求発生が生じる前に、ホスト機器２０からＦＡＴ読み取り要求が既に生じており、かつ、今回発生したＬＢＡ番号ＳのＦＡＴ読み取り要求が既に生じたＬＢＡ番号ＣＳのＦＡＴ読み取り要求から２５６セクタ分の範囲内のものであるか否かを判定する（ステップＳ604）。
【０３３８】
この判定の結果、今回発生したＬＢＡ番号ＳのＦＡＴ読み取り要求が既に生じたＦＡＴ読み取り要求のＬＢＡ番号ＣＳから２５６セクタ分の範囲内のものである場合には、デバイス機器１０の先頭アドレスを“ＡＤＲ”とする１２８ＫＢ（“２５６”セクタ分）のバッファに、前のＬＢＡ番号ＣＳのＦＡＴ読み取り要求に基づいて既に生成されている仮想ＦＡＴ空間５０ｓの仮想クラスタ“３２,７６８”個分のＦＡＴの中から、今回発生したＬＢＡ番号ＳのＦＡＴ読み取り要求に対応してホスト機器２０に返すべき５１２バイト分（仮想クラスタ“１２８”個分）のＦＡＴ情報の先頭アドレス“ＲＡ”を、
ＲＡ＝ＡＤＲ＋(Ｓ−ＣＳ)×５１２                                 (20)
に基づいて演算する。そして、バッファに記憶されているＦＡＴ情報記憶内容から、この求められたアドレスＲＡを先頭とする５１２バイト分のＦＡＴ情報記憶内容をホスト機器２０に返す（ステップＳ614）。
【０３３９】
これに対し、先の判定の結果が、今回発生したＬＢＡ番号ＳのＦＡＴ読み取り要求が既に生じたＦＡＴ読み取り要求のＬＢＡ番号ＣＳから２５６セクタ分を超える範囲外である場合は、ＦＡＴ情報生成済の仮想クラスタ数ｉを“０”にして初期化する（ステップＳ605）。
【０３４０】
その上で、今回発生したＦＡＴ読み取り要求のＬＢＡ番号Ｓが、仮想ＦＡＴ空間５０ｓにおける仮想管理部（ＭＢＲ，ＤＰＢ，ＦＳＩＮＦＯ）、仮想ＦＡＴ領域、仮想ディレクトリエントリ領域５３、及び仮想ファイル領域５４の中のいずれの領域のクラスタの管理を行うものか否かを判断する（ステップＳ606）。
【０３４１】
本実施例では、この判断は、前述したように、ＬＢＡ番号Ｓが、仮想ＦＡＴ領域及び仮想ディレクトリエントリ領域５３のクラスタの管理を行うための“９６≦Ｓ≦６０７”に該当するか、仮想ディレクトリエントリ領域５３及び仮想ファイル領域５４のクラスタの管理を行うための“Ｓ＝６０８”に該当するか、仮想ファイル領域５４のクラスタの管理を行うための“６０９≦Ｓ≦９,３１２”に該当するか、を判別することにより行う。
【０３４２】
この判別結果に基づき、デバイス機器１０のメモリ上に用意した１２８ＫＢのバファに、ＦＡＴ情報を記憶して、仮想ＦＡＴの生成を行う。
今回発生したＦＡＴ読み取り要求のＬＢＡ番号Ｓが“９６≦Ｓ≦６０７”で、管理部及び仮想ディレクトリエントリ領域５３のクラスタの管理を行うためのものである場合は、前述したようにして、仮想ＦＡＴの生成を行う。
【０３４３】
今回発生したＦＡＴ読み取り要求のＬＢＡ番号Ｓが“９６”である場合は、管理領域５１の２クラスタ分のＦＡＴ情報と、クラスタ総数Ｃdが６５,５３６個のディレクトリエントリ領域５２の中の先頭の１２６クラスタ分のＦＡＴ情報とからなる計１２８個のクラスタ分のＦＡＴ情報（５１２バイト）を生成する（ステップＳ607）。
【０３４４】
また、今回発生したＦＡＴ読み取り要求のＬＢＡ番号Ｓ(m)が９７≦Ｓ≦６０７である場合は、クラスタ総数Ｃdが“６５,５３６”個のディレクトリエントリ領域５２の中、式（１７）により示した仮想クラスタ番号Ｃfsを先頭に計１２８個のクラスタ分のＦＡＴ情報（５１２バイト）を生成する（ステップＳ607）。
【０３４５】
また、今回発生したＦＡＴ読み取り要求のＬＢＡ番号Ｓが“６０８”である場合は、クラスタ総数Ｃdが６５,５３６個のディレクトリエントリ領域５２の中の最終部の２クラスタ分に対応するＦＡＴ情報と、クラスタ総数Ｃfが１,１１４,１１２個の仮想ファイル領域５４の中の先頭の１２６クラスタ分のＦＡＴ情報とからなる計１２８個のクラスタ分のＦＡＴ情報（５１２バイト）を生成する（ステップＳ608）。
【０３４６】
また、今回発生したＦＡＴ読み取り要求のＬＢＡ番号Ｓが“６０８≦Ｓ≦９３１２”である場合は、クラスタ総数Ｃdが“１,１１４,１１２”個の仮想ファイル領域５４の中、式（１７）により示した仮想クラスタ番号Ｃfsを先頭に計１２８個のクラスタ分のＦＡＴ情報（５１２バイト）を生成する（ステップＳ609）。
【０３４７】
そして、これらステップＳ607〜Ｓ609のいずれかにより生成されたＦＡＴ読み取り要求のＬＢＡ番号Ｓに対応して求められた計１２８個分のＦＡＴ情報（５１２バイト）を、デバイス機器１０のメモリ上に先頭アドレスをＡＤＲとして用意した１２８ＫＢのバッファに格納する。その格納にあたっては、格納先頭アドレスＷＡを次式により求め、この格納先頭アドレスＷＡを先頭に計１２８個のクラスタ分のＦＡＴ情報（５１２バイト）をアドレス順に格納する（ステップＳ610）。
ＷＡ＝ＡＤＲ＋（ｉ×５１２）                                     (21)
【０３４８】
そして、ＦＡＴ情報生成済の仮想クラスタ数ｉをインクリメントし、ＦＡＴ読み取り要求のＬＢＡ番号Ｓに“１”を加えて新たなＬＢＡ番号Ｓとし（ステップＳ611）、その上で仮想クラスタ数ｉが２５５となって、デバイス機器１０のメモリ上に先頭アドレスをＡＤＲとして用意した１２８ＫＢのバッファ全域についてＦＡＴ情報の格納が終了したか否かを判定する（ステップＳ612）。
【０３４９】
この判定の結果、デバイス機器１０のメモリ上に先頭アドレスをＡＤＲとして用意した１２８ＫＢのバッファ全域についてＦＡＴ情報の格納が終了していないならば、ステップＳ611で更新したＬＢＡ番号Ｓについて、上述したステップＳ606〜Ｓ612の処理を繰り返し、バッファ全域にＦＡＴ情報を格納する。
【０３５０】
一方、この判定の結果、バッファ全域にＦＡＴ情報を格納が終了した場合は、デバイス機器１０のメモリ上に用意した１２８ＫＢのバッファからその先頭アドレスＡＤＲから５１２バイト分に格納されているＦＡＴ情報をホスト機器２０に返す（ステップＳ613）。
【０３５１】
最後に、図１３のステップＳ551〜Ｓ553で説明した、ＬＢＡ変換処理の第２の処理としての仮想ファイルの生成について説明する。
ホスト機器２０からデバイス機器１０に、仮想クラスタ番号が“６５,５３８”〜“１,１７９,６４９”に該当する、仮想ＬＢＡ番号Ｓが“２,１１５,６８２”〜“３７,７６７,２６５”の読み取り要求が与えられた場合、これは、仮想ＦＡＴ空間５０ｓの仮想ファイル領域５４に対する読み取り要求が発生したものと、ＦＡＴエミュレータ部１８は判断する。
【０３５２】
仮想ファイル領域５４の生成手法は既に述べた通りであり、１グループ（ディレクトリ）あたり、２４クラスタを用いるため、図２３に示したように、仮想ディレクトリエントリ領域５３のような「空きクラスタ」は存在せず、全てのクラスタは頭詰めで存在する。
【０３５３】
そして、仮想ファイル領域５４に対してのアクセスのみは、他の領域に対する読み取り要求と異なり、記録装置１１に実際に記録されている内容を返す必要がある。ただし、その際には、ファイル全体ではなく、ホスト機器２０から与えられた読み取り要求のＬＢＡ番号Ｓとファイル用中間テーブル７２により、着目しているファイル中のどの５１２バイトに相当するかを判断する必要がある。
【０３５４】
以下、その際のＦＡＴエミュレータ部１８による処理の流れを説明する。
この場合も、まず、ホスト機器２０からの読み取り要求のＬＢＡ番号Ｓが、“１８５３０≦Ｓ≦２１１５６８２”である場合には、読み取り要求のＬＢＡ番号Ｓから仮想クラスタ番号Ｃを求める。
この仮想クラスタ番号Ｃは、次式により求めることができる。
Ｃ＝(Ｓ−２１１５６８２)￥３２＋６５５３８２                     (22)
【０３５５】
また、読み取り要求のＬＢＡ番号Ｓから、仮想クラスタ番号Ｃ中の仮想ＬＢＡ番号Ｓのオフセット位置ＶＳＯを求める。
ＶＳＯ＝（Ｓ−Ｃ×３２）×５１２                                 (23)
【０３５６】
例えば、読み取り要求のＬＢＡ番号Ｓが“２,１１５,６８２”である場合、仮想クラスタ番号Ｃは“６５５,３８２”、仮想クラスタ番号“６５５,３８２”中の読み取り要求の仮想ＬＢＡ番号“２,１１５,６８２”のオフセット位置ＶＳＯは、“０”バイトになる。
【０３５７】
また、読み取り要求のＬＢＡ番号Ｓが“２,１１６,１９４（＝２１１５６８２＋５１２）”の場合、仮想クラスタ番号Ｃは“６５５,３８２”、仮想クラスタ番号“６５５,３８２”中の読み取り要求の仮想ＬＢＡ番号“２,１１６,１９４”のオフセット位置ＶＳＯは、“５１２”バイトになる。
【０３５８】
そして、図８に示したファイル用中間テーブル７２を参照し、そのファイル開始仮想クラスタ番号Ｃfs及びファイル終了仮想クラスタ番号Ｃfeから、仮想クラスタ番号Ｃが参照する記録装置１１に実際に記録されているファイルのファイルシリアル番号Ｆnのファイル用中間テーブル７２を求める。
【０３５９】
そして、このファイルシリアル番号Ｆnのファイル用中間テーブル７２から、実際の記録装置１１における独自ファイルフォーマット４０により管理される当該ファイル先頭の物理ＬＢＡアドレスＡdを求める。
【０３６０】
読み取り要求のＬＢＡ番号Ｓ、仮想クラスタ番号Ｃ、開始仮想クラスタ番号Ｃfs、オフセット位置ＶＳＯより、ホスト機器２０からのＬＢＡ番号Ｓの読み取り要求で読み取ろうとしている情報が、実際の記録装置１１におけるファイルシリアル番号Ｆnのファイルのファイル先頭の物理ＬＢＡアドレスＡdから何バイト目の記録内容に該当するかを求める。
【０３６１】
以上で、ホスト機器２０が読み取ろうとしている実際の記録装置１１における独自ファイルフォーマット４０により管理されるファイル、すなわちファイルシリアル番号Ｆsnのファイルの情報が判明し、ホスト機器２０が読み取ろうとしている実際の記録装置１１における独自ファイルフォーマット４０により管理されるファイルの先頭の物理ＬＢＡアドレスＡdからのオフセット位置の情報が判明するので、あとは、記録装置１１の独自ファイルフォーマット４０中のリンクをたどり、ファイルシリアル番号Ｆnのファイルの該当する領域の５１２バイト分を返すことになる。
【０３６２】
なお、このとき、独自ファイルフォーマット４０によって管理される記録装置１１の実際のクラスタ(ブロック)サイズが、どのような大きさであっても、基本的に処理内容は変わらない。また、仮想ファイルの生成に関してのＬＢＡ変換処理についても、仮想ＦＡＴの生成で言及した「キャッシング」の手法を用いることも可能であるが、これは実装依存であるので、ここでは省略する。
【０３６３】
以上説明したように、デバイス機器１０のＦＡＴエミュレータ部１８によるＬＢＡ変換処理は、ホスト機器２０から与えられた読み取り要求のＬＢＡ番号Ｓに対し、その都度、デバイス機器１０の独自ファイルシステム１５により管理された記録装置１１のＬＢＡ番号Ｓ'を対応する算出したり、又はこのＬＢＡ番号Ｓ'の５１２バイト分のデータを用意したりするものではない。
【０３６４】
すなわち、ホスト機器２０から与えられる読み取り要求は、「先頭のＬＢＡ番号Ｓ」と「読み取り個数ｎ」の２つのパラメータで定義されることに基づき、デバイス機器１０とホスト機器２０とのマスストレージ接続の当初に、独自ファイルシステム１５により管理されたデバイス機器１０の記録装置１１の独自ファイルフォーマット４０による記録内容を、ホスト機器２０が記録装置２１を管理するＦＡＴファイルシステム２５と同様の、仮想ＦＡＴ空間５０ｓ上で見せることにより、次に述べるような特長を有する。
【０３６５】
まず、デバイス機器１０は、その記録装置１１に記録され、独自ファイルシステム１５で管理されている全ファイルの開始ブロック位置とリンクをたどり、デバイス機器１１０において独自のファイルシステム１５で管理されている全ファイルの開始ブロック位置とリンクを、ホスト機器２０におけるＦＡＴファイルシステム２５によるクラスタ番号に変換し、この変換したクラスタ番号を記録装置１１のＦＡＴ情報として全部登録しておく必要もなくなる。
【０３６６】
そして、デバイス機器１０は、ホスト機器２０から与えられるの読み取り要求の「先頭のＬＢＡ番号Ｓ」が仮想ＦＡＴ空間５０ｓ上のどの仮想領域５１〜５４の記録部分に該当するかを基づき、迅速かつ的確にホスト機器２０が要求する独自ファイルフォーマット４０によって管理された記録装置１１の記録内容を特定することができる。
【０３６７】
また、ホスト機器２０からの１回の読み取り要求で与えられる「読み取り個数ｎ」の上限も、最高でも２５６個であるから、デバイス機器１０は、ホスト機器２０から読み取り要求された該当する記録内容を展開するために“２５６×５１２バイト＝１２８ＫＢ”のメモリ空間を用意すれば、ホスト機器２０からの全ての読み取り要求に答えることが可能になる。
【０３６８】
さらに、独自ファイルフォーマット４０によって管理された記録装置１１のディレクトリ及びファイルに関しての情報が記録された中間テーブルを生成し、ホスト機器２０から与えられるＬＢＡ番号Ｓを指定した読み取り要求に対する処理を、この中間テーブルを参照して対処することにより、さらにその処理を迅速かつ効率的に行うことができる。
【０３６９】
加えて、ホスト機器２０から与えられるＬＢＡ番号Ｓを指定した読み取り要求に対するＬＢＡ変換処理は、今回読み取り要求に対するＬＢＡ変換処理の処理結果が、前回読み取り要求があった際に行ったＬＢＡ変換処理の処理結果に含まれていることが判断される場合は、今回読み取り要求に対してＬＢＡ変換処理を行わずとも、前回読み取り要求があった際に行ったＬＢＡ変換処理の処理結果の中の、今回読み取り要求に対して適合する処理結果を返す「キャッシング」も可能であるので、より一層その処理を迅速かつ効率的に行うことができる。
【０３７０】
なお、本実施の形態のデバイス機器、及びデバイス機器の記録装置のフォーマット変換方法は以上説明したとおりであるが、各部の具体的な構成及び方法については、種々の変形例が可能である。
【０３７１】
例えば、本実施の形態のデバイス機器、及びデバイス機器の記録装置のフォーマット変換方法では、仮想ＭＢＲ，仮想ＤＰＢ，仮想ＦＳＩＮＦＯは、ホスト機器２０側からそれぞれについての読み取り要求があった際に、その都度、デバイス機器１０のメモリ上の、記録装置１１とは別の記録装置（例えば、ＲＡＭ，フラッシュメモリ等）にＦＡＴエミュレータ部１８が生成する構成としたが、これらは容量も小さく、記録媒体の残りクラスタ数や、最後にアクセスしたクラスタ番号が情報として保持され、ダイナミックに変化する仮想ＦＳＩＮＦＯを除いては、そのデータもほぼ固定なので、次のように構成することもできる。
【０３７２】
例えば、予め記憶装置１１以外の不揮発性メモリに仮想ＭＢＲ，仮想ＤＰＢの初期データを用意し、ホスト機器２０からの読み取り要求の発生とは関係なく、予めメモリ（例えば、ＳＤＲＡＭ：Synchronous DRAM）上でその初期データを適宜修正可能に保持するようにし、ホスト機器２０からの読み取り要求が発生した場合には、既に修正保持されている仮想ＭＢＲ，仮想ＤＰＢをメモリからホスト機器２０側に返すことや、記憶装置１１のデータ領域４２に、独自ファイルシステム１５の管理外にある領域を予め作成しておき、仮想ＭＢＲ，仮想ＤＰＢ，仮想ＦＳＩＮＦＯの初期データを記録しておき、ホスト機器２０からの読み取り要求が発生した場合には、ここから仮想ＭＢＲ，仮想ＤＰＢ，仮想ＦＳＩＮＦＯを読み取って適宜修正を行ってホスト機器２０側に返すこと等も可能である。なお、後者の場合、仮想ＭＢＲ，仮想ＤＰＢ，仮想ＦＳＩＮＦＯの初期データが記録されている記憶装置１１のデータ領域４２の部分は、デバイス機器１０単体をそのアプリケーション１０で使用する場合、一切アクセスされることはなく、マスストレージ接続するときだけ参照可能な構成になっている。また、上記構成の仮想ＭＢＲ，仮想ＤＰＢも修正可能としたのは、デバイス機器１０の記録装置１１では、マスストレージ接続されたホスト機器２０に対する見せかけの容量が変化したらその初期データも変化する場合に備えてのものである。具体的には、デバイス機器１０の記録装置１１のパーティションの設定が変更される等に起因して、ホスト機器２０に対する記録装置１１の見せかけの容量が変化する場合に対応するためである。
【０３７３】
また、上述した実施例では、仮想ＦＡＴ，仮想ディレクトリエントリ領域５３それぞれを生成するための擬似ＦＡＴ展開領域，擬似ディレクトリエントリ展開領域は、記録装置１１とは別の記録装置（例えば、ＲＡＭ，フラッシュメモリ等）に設ける構成で説明したが、記録装置１１のホスト機器２０からは不可視の領域に形成してもよい。
【０３７４】
これら擬似ＦＡＴ展開領域，擬似ディレクトリエントリ展開領域は、独自ファイルシステム１５の管理外の領域を設けるには容量が大きすぎるため、中間テーブル７０と仮想ＦＡＴ空間５０ｓにおけるエントリのシリアライズの概念を用いることで、必要最低限用意された中間テーブル７０の情報をもとに、ホスト機器２０から読み出し要求があった、仮想ＦＡＴや、ディレクトリエントリ領域５３のディレクトリエントリを、プログラム的に擬似的に生成して展開し、読み出し要求に応えてホスト機器２０に返す処理を行うためのものである。
【０３７５】
そこで、これら擬似ＦＡＴ展開領域，擬似ディレクトリエントリ展開領域についても、デバイス機器１０にこれらのために用意されているメモリの容量、性能パフォーマンスに応じて、メモリ上のそれぞれ別の領域に別に形成することも、メモリ上の少なくとも一部の領域を擬似ＦＡＴ展開領域又は擬似ディレクトリエントリ展開領域として共用できるように形成することも可能である。
【０３７６】
具体的には、メモリの容量が擬似ＦＡＴ展開領域及び擬似ディレクトリエントリ展開領域の両方を同時展開しておくために必要な容量より少ない場合には、ＦＡＴ読み取り要求があった際には、メモリ上に擬似ＦＡＴ展開領域を生成／展開し、ディレクトリエントリ読み取り要求があった場合には、メモリ上に擬似ディレクトリエントリを代わりに生成／展開することも可能である。
【図面の簡単な説明】
【０３７７】
【図１】ホスト機器と本発明の一実施の形態に係るデバイス機器との論理接続を示した図である。
【図２】本発明の一実施の形態に係るデバイス機器の記録装置における記録媒体の独自ファイルフォーマットと仮想ＦＡＴファイルフォーマットとの対比図である。
【図３】本発明の一実施の形態に係るデバイス機器に関し、実際の記録装置及び仮想記録装置それぞれの記憶空間におけるマッピングの一実施例を示した図である。
【図４】デバイス機器の実際の記録装置を管理する独自ファイルシステム中に存在するディレクトリツリーの一例を示した図である。
【図５】ディレクトリエントリ生成用中間テーブルの一実施例の構成図である。
【図６】グループ番号“０”のディレクトリエントリ生成用中間テーブルの構成図である。
【図７】グループ番号“１”のディレクトリエントリ生成用中間テーブルの構成図である。
【図８】ファイル用中間テーブルの一実施例を示した図である。
【図９】ディレクトリエントリ生成用及びファイル用の中間テーブルをリアルタイムに生成する場合の処理概要を示したフローチャートである。
【図１０】ディレクトリエントリ生成用及びファイル用の中間テーブルをホスト機器からの接続要求時に生成する場合の処理概要を示したフローチャートである
【図１１】ディレクトリエントリ生成用及びファイル用の中間テーブルの生成／更新の手続きのフローチャートである。
【図１２】ホスト機器にマスストレージ接続されたデバイス機器の処理概要のフローチャートである。
【図１３】本実施の形態のデバイス機器のＦＡＴエミュレータ部によるＬＢＡ変換処理の概要を示したフローチャートである。
【図１４】仮想ＦＡＴ空間の仮想ディレクトリエントリ領域における仮想ディレクトリエントリの配置方法の実施例を示したものである。
【図１５】仮想ＦＡＴ空間の仮想ディレクトリエントリ領域における１つのディレクトリエントリの実施例を示した図である。
【図１６】仮想ＦＡＴ空間の仮想ディレクトリエントリ領域における、ディレクトリのディレクトリエントリ記載内容の実施例を示した図である。
【図１７】仮想ＦＡＴ空間の仮想ディレクトリエントリ領域における、ファイルのディレクトリエントリ記載内容の実施例を示した図である。
【図１８】仮想ＦＡＴ空間の仮想ディレクトリエントリ領域におけるルートディレクトリのディレクトリエントリの実施例を示した図である。
【図１９】仮想ＦＡＴ空間の仮想ディレクトリエントリ領域におけるグループ番号が“１”のディレクトリのディレクトリエントリの実施例を示した図である。
【図２０】グループ番号“０”から“３”までのディレクトリエントリにおいて、各グループ毎の占有クラスタサイズの例を示した図である。
【図２１】図２０に示したディレクトリエントリの例について、仮想ＦＡＴの先頭部の内容を示した図である。
【図２２】仮想ファイル領域に存在する３つのファイルそれぞれの占有クラスタサイズの例を示した表である。
【図２３】図２２に示した仮想ＦＡＴ空間の仮想ファイル領域の内容を示した仮想ＦＡＴの説明図である。
【図２４】仮想ＦＡＴ空間中の仮想ＦＡＴが、仮想ＦＡＴ空間中の領域をどのように管理しているかを示している説明図である。
【図２５】デバイス機器におけるホスト機器からのＦＡＴ読み取り要求発生時のＦＡＴエミュレータ部による処理を示したフローチャートである。
【図２６】デバイス機器とホスト機器との物理接続を示した図である。
【図２７】従来のホスト機器とデバイス機器との論理接続を示した図である。
【符号の説明】
【０３７８】
１０  デバイス機器
１１  記録装置
１４  アプリケーション
１５  機器独自ファイルシステム
１７  記録装置用ドライバ
１８  ＦＡＴエミュレータ部
１９  通信ドライバ
２０  ホスト機器
２１，２１'  記録装置
２４  アプリケーション
２５  ＦＡＴファイルシステム
２６  ファイルアロケーションテーブル（ＦＡＴ）
２７  記録装置用ドライバ
２８  マスストレージドライバ
２９  通信ドライバ
３０  物理接続路
４０  独自ファイルフォーマット
４１  管理領域
４２  データ領域
４３  ブロック
４３ｆ  ファイルブロック部分
４３ｄ  ディレクトリブロック部分
４３ｃ  不可視ブロック部分
５０  仮想ＦＡＴファイルフォーマット
５０ｓ  仮想ＦＡＴ空間
５１  仮想管理領域
５２  仮想データ領域
５３  仮想ディレクトリエントリ領域
５４  仮想ファイル領域
７０  中間テーブル
７１  ディレクトリエントリ生成用中間テーブル
７２  ファイル用中間テーブル
１１０  デバイス機器
【図１】
2005122439.tif 000003
【図２】
2005122439.tif 000004
【図３】
2005122439.tif 000005
【図４】
2005122439.tif 000006
【図５】
2005122439.tif 000007
【図６】
2005122439.tif 000008
【図７】
2005122439.tif 000009
【図８】
2005122439.tif 000010
【図９】
2005122439.tif 000011
【図１０】
2005122439.tif 000012
【図１１】
2005122439.tif 000013
【図１２】
2005122439.tif 000014
【図１３】
2005122439.tif 000015
【図１４】
2005122439.tif 000016
【図１５】
2005122439.tif 000017
【図１６】
2005122439.tif 000018
【図１７】
2005122439.tif 000019
【図１８】
2005122439.tif 000020
【図１９】
2005122439.tif 000021
【図２０】
2005122439.tif 000022
【図２１】
2005122439.tif 000023
【図２２】
2005122439.tif 000024
【図２３】
2005122439.tif 000025
【図２４】
2005122439.tif 000026
【図２５】
2005122439.tif 000027
【図２６】
2005122439.tif 000028
【図２７】
2005122439.tif 000029