(57)【要約】【課題】複数のメモリカードに対しても、データの書き込み作業を、高速、かつ容易に行う。【解決手段】ホストコンピュータ１は、内蔵されているＲＡＭに、メモリスティック５に記憶するデータを、メモリスティック５において記憶される場合と同様のファイルフォーマットで保持し、ユーザの指示に基づいて、保持しているデータを、ＵＳＢケーブル３を介して、メモリスティック書き込み装置２に供給する。メモリスティック書き込み装置２は、データを取得すると、取得したデータを、内蔵されているＲＡＭに保持する。そして、メモリスティックスロット４に装着されたメモリスティック５を検知し、保持しているデータをメモリスティック５に供給し、記録させる。本発明は、メモリカードに適用することができる。【選択図】　　　図１
2004005343.tif 000002
【特許請求の範囲】
【請求項１】
記録媒体に記録する情報を作成する第１の情報処理装置と、
前記第１の情報処理装置に接続され、前記情報を前記記録媒体に記録する第２の情報処理装置と
を備える情報処理システムであって、
前記第１の情報処理装置は、
前記記録媒体に記録する前記情報を作成する作成手段と、
前記作成手段により作成された前記情報を前記第２の情報処理装置に供給する供給手段と
を備え、
前記第２の情報処理装置は、
前記第１の情報処理装置より前記情報を取得する取得手段と、
前記取得手段により取得された前記情報を保持する保持手段と、
前記記録媒体が所定の位置に装着されているか否かを確認する確認手段と、
前記確認手段による確認結果に基づいて、前記保持手段に保持されている前記情報を、前記所定の位置に装着された前記記録媒体に記録する記録手段と
を備えることを特徴とする情報処理システム。
【請求項２】
他の情報処理装置に接続され、記録媒体に情報を記録する情報処理装置であって、
前記他の情報処理装置より、前記他の情報処理装置において作成された情報を取得する取得手段と、
前記取得手段により取得された前記情報を保持する保持手段と、
前記記録媒体が所定の位置に装着されているか否かを確認する確認手段と、
前記確認手段による確認結果に基づいて、前記保持手段により保持されている前記情報を、前記所定の位置に装着された前記記録媒体に記録する記録手段と
を備えることを特徴とする情報処理装置。
【請求項３】
前記記録媒体は、不揮発性メモリである
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記取得手段が取得する前記情報のデータ形式は、前記記録媒体に記録可能なデータ形式である
ことを特徴とする請求項２に記載の情報処理装置。
【請求項５】
前記記録手段による前記情報の、前記記録媒体への記録における記録位置を制御する記録位置制御手段をさらに備える
ことを特徴とする請求項２に記載の情報処理装置。
【請求項６】
前記記録位置制御手段は、前記記録手段による前記情報の記録が、前記記録媒体の記憶領域の先頭から開始されるように、前記記録位置を制御する
ことを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記記録位置制御手段は、前記記録手段による前記情報の記録が、前記記録媒体の記憶領域に予め記憶されている情報に続く位置から開始されるように、前記記録位置を制御する
ことを特徴とする請求項５に記載の情報処理装置。
【請求項８】
作業の状況または作業者への指示を表示する表示手段をさらに備える
ことを特徴とする請求項２に記載の情報処理装置。
【請求項９】
前記確認手段は、前記記録媒体が前記所定の位置に装着されたことを検知する
ことを特徴とする請求項２に記載の情報処理装置。
【請求項１０】
作業者が動作の指示を入力する入力手段をさらに備え、
前記確認手段は、前記入力手段により入力された前記指示に基づいて、前記記録媒体が前記所定の位置に装着されているか否かを確認する
ことを特徴とする請求項２に記載の情報処理装置。
【請求項１１】
他の情報処理装置に接続され、記録媒体に情報を記録する情報処理装置の情報処理方法であって、
前記他の情報処理装置より供給される、前記他の情報処理装置において作成された情報の取得を制御する取得制御ステップと、
前記取得制御ステップの処理により取得が制御された前記情報を保持する保持ステップと、
前記記録媒体が所定の位置に装着されているか否かを確認する確認ステップと、
前記確認ステップの処理による確認結果に基づいて、前記保持ステップの処理により保持されている前記情報の、前記所定の位置に装着された前記記録媒体への記録を制御する記録制御ステップと
を含むことを特徴とする情報処理方法。
【請求項１２】
他の情報処理装置に接続され、記録媒体に情報を記録する情報処理装置用のプログラムであって、
前記他の情報処理装置より供給される、前記他の情報処理装置において作成された情報の取得を制御する取得制御ステップと、
前記取得制御ステップの処理により取得が制御された前記情報を保持する保持ステップと、
前記記録媒体が所定の位置に装着されているか否かを確認する確認ステップと、
前記確認ステップの処理による確認結果に基づいて、前記保持ステップの処理により保持されている前記情報の、前記所定の位置に装着された前記記録媒体への記録を制御する記録制御ステップと
を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
【請求項１３】
他の情報処理装置に接続され、記録媒体に情報を記録する情報処理装置を制御するコンピュータが実行可能なプログラムであって、
前記他の情報処理装置より供給される、前記他の情報処理装置において作成された情報の取得を制御する取得制御ステップと、
前記取得制御ステップの処理により取得が制御された前記情報を保持する保持ステップと、
前記記録媒体が所定の位置に装着されているか否かを確認する確認ステップと、
前記確認ステップの処理による確認結果に基づいて、前記保持ステップの処理により保持されている前記情報の、前記所定の位置に装着された前記記録媒体への記録を制御する記録制御ステップと
を含むことを特徴とするプログラム。
【請求項１４】
他の情報処理装置に接続され、記録媒体に記録する情報を前記他の情報処理装置に供給する情報処理装置であって、
元の情報である第１の情報より、前記記録媒体に記録可能なデータ形式の第２の情報を作成する情報作成手段と、
前記情報作成手段により作成された前記第２の情報を前記他の情報処理装置に供給する供給手段と
を備えることを特徴とする情報処理装置。
【請求項１５】
前記記録媒体は、不揮発性メモリである
ことを特徴とする請求項１４に記載の情報処理装置。
【請求項１６】
仮想的な前記記録媒体の記憶領域である仮想記憶領域を作成する仮想記憶領域作成手段をさらに備え、
前記情報作成手段は、前記仮想記憶領域作成手段により作成された前記仮想記憶領域を用いて、前記第２の情報を作成する
ことを特徴とする請求項１４に記載の情報処理装置。
【請求項１７】
前記仮想記憶領域作成手段は、予め用意された複数の前記データ形式の中から、前記仮想記憶領域のデータ形式を選択的に決定する
ことを特徴とする請求項１６に記載の情報処理装置。
【請求項１８】
前記予め用意された複数のデータ形式を選択するＧＵＩ情報を表示する表示手段と、
ユーザの指示入力を受け付ける入力受け付け手段と
をさらに備え、
前記仮想記憶領域作成手段は、前記入力受け付け手段により受け付けられた前記ユーザの入力に基づいて、前記仮想記憶領域のデータ形式を決定する
ことを特徴とする請求項１６に記載の情報処理装置。
【請求項１９】
前記情報作成手段は、
前記仮想記憶領域に情報を書き込む書き込み手段と、
前記仮想記憶領域のイメージデータを抽出する抽出手段と
を備え、
前記書き込み手段が前記第１の情報を前記仮想記憶領域に書き込み、前記抽出手段が前記仮想記憶領域のイメージデータを抽出して、前記第２の情報を作成する
ことを特徴とする請求項１６に記載の情報処理装置。
【請求項２０】
前記仮想記憶領域は、前記記録媒体の記憶領域と同じ容量である
ことを特徴とする請求項１６に記載の情報処理装置。
【請求項２１】
前記仮想記憶領域は、前記記録媒体の記憶領域と同じファイルシステム構成である
ことを特徴とする請求項１６に記載の情報処理装置。
【請求項２２】
前記仮想記憶領域のデータ書き込み単位量は、前記記録媒体の記憶領域のデータ書き込み単位量と同量である
ことを特徴とする請求項１６に記載の情報処理装置。
【請求項２３】
前記第２の情報は、前記第１の情報および、前記仮想記憶領域のファイルシステム構成に関する情報が含まれる
ことを特徴とする請求項１６に記載の情報処理装置。
【請求項２４】
前記抽出手段は、前記仮想記憶領域全体のイメージデータを抽出する
ことを特徴とする請求項１９に記載の情報処理装置。
【請求項２５】
前記情報作成手段は、
前記書き込み手段により書き込まれた最後の情報の位置を記憶する位置記憶手段をさらに備え、
前記抽出手段は、前記仮想記憶領域の先頭部分から、前記位置記憶手段により記憶されている前記情報の位置までのイメージデータを抽出する
ことを特徴とする請求項１９に記載の情報処理装置。
【請求項２６】
前記供給手段は、前記作成手段により作成された前記第２の情報を、前記記録媒体の記憶領域より小さい、所定のデータサイズに分割して、前記他の情報処理装置に供給する
ことを特徴とする請求項１４に記載の情報処理装置。
【請求項２７】
他の情報処理装置に接続され、記録媒体に記録する情報を前記他の情報処理装置に供給する情報処理装置の情報処理方法であって、
元の情報である第１の情報より、前記記録媒体に記録可能なデータ形式の第２の情報を作成する情報作成ステップと、
前記情報作成ステップの処理により作成された前記第２の情報の前記他の情報処理装置への供給を制御する供給制御ステップと
を含むことを特徴とする情報処理方法。
【請求項２８】
他の情報処理装置に接続され、記録媒体に記録する情報を前記他の情報処理装置に供給する情報処理装置用のプログラムであって、
元の情報である第１の情報より、前記記録媒体に記録可能なデータ形式の第２の情報を作成する情報作成ステップと、
前記情報作成ステップの処理により作成された前記第２の情報の前記他の情報処理装置への供給を制御する供給制御ステップと
を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
【請求項２９】
他の情報処理装置に接続され、記録媒体に記録する情報を前記他の情報処理装置に供給する情報処理装置を制御するコンピュータが実行可能なプログラムであって、
元の情報である第１の情報より、前記記録媒体に記録可能なデータ形式の第２の情報を作成する情報作成ステップと、
前記情報作成ステップの処理により作成された前記第２の情報の前記他の情報処理装置への供給を制御する供給制御ステップと
を含むことを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は情報処理システム、情報処理装置および方法、記録媒体、並びにプログラムに関し、特に、メモリカードに書き込むデータを保持しておくことにより、複数のメモリカードに対しても、データの書き込み作業を、高速、かつ容易に行うことができるようにした、情報処理システム、情報処理装置および方法、記録媒体、並びにプログラムに関する。
【０００２】
【従来の技術】
近年、デジタルカメラやＰＤＡ（Ｐｅｒｓｏｎａｌ　Ｄｉｇｉｔａｌ　Ａｓｓｉｓｔａｎｔ）等に代表されるように、電子機器の小型化が進むとともに、携帯型の情報処理装置が普及するようになった。それに伴い、小型の記録媒体として、メモリスティック（商標）に代表される、フラッシュメモリを用いたメモリカードが普及し始めている。
【０００３】
従来、メモリカードにデータを記録する場合、ユーザは、メモリカードをパーソナルコンピュータ等に接続されたリーダ／ライタに装着し、パーソナルコンピュータを操作して、記録するデータを作成し、そのデータをリーダ／ライタに供給してメモリカードに記録させる。そして、複数のメモリカードにデータを記録する場合、ユーザは、リーダ／ライタに装着されているメモリカードを交換し、上述した作業を繰り返す。
【０００４】
このとき、パーソナルコンピュータは、メモリカードおよびリーダ／ライタの動作や情報等を全て管理しており、リーダ／ライタによるメモリカードへのデータの書き込み等の処理は、パーソナルコンピュータの制御に基づいて行われる。
【０００５】
【発明が解決しようとする課題】
しかしながら、以上のような方法を用いた場合、複数のメモリカードにデータを記録する場合、特に、工場などにおいて、同一のデータを百枚、または千枚単位の大量のメモリカードに記録する場合、パーソナルコンピュータは、上述した一連の処理を行う際に、遂次リーダ／ライタと通信処理を行い、全ての動作および情報を管理しなければならず、処理に要する時間が長くなってしまうという課題があった。
【０００６】
また、上述した方法を用いた場合、複数のメモリカードにデータを記録する場合、特に、工場などにおいて、同一のデータを百枚、または千枚単位の大量のメモリカードに記録する場合、ユーザは、全てのメモリカードに記録が終了するまで、上述した作業を繰り返さなければならず、煩雑な作業を必要とするという課題があった。
【０００７】
これに対して、同時に複数のメモリカードにデータの書き込みを行えるように、複数のリーダ／ライタを用意する方法が考えられるが、上述したような方法の場合、パーソナルコンピュータは、同時に１台のリーダ／ライタしか制御できないので、リーダ／ライタと同数のパーソナルコンピュータを用意する必要があり、それらの管理、操作、および維持等に必要なコストや人員が増大してしまうという課題があった。
【０００８】
本発明はこのような状況に鑑みてなされたものであり、複数のメモリカードに対しても、データの書き込み作業を、高速、かつ容易に行うことができるようにしたものである。
【０００９】
【課題を解決するための手段】
本発明の情報処理システムは、記録媒体に記録する情報を作成する第１の情報処理装置と、第１の情報処理装置に接続され、情報を記録媒体に記録する第２の情報処理装置とを備え、第１の情報処理装置は、記録媒体に記録する情報を作成する作成手段と、作成手段により作成された情報を第２の情報処理装置に供給する供給手段とを備え、第２の情報処理装置は、第１の情報処理装置より情報を取得する取得手段と、取得手段により取得された情報を保持する保持手段と、記録媒体が所定の位置に装着されているか否かを確認する確認手段と、確認手段による確認結果に基づいて、保持手段に保持されている情報を、所定の位置に装着された記録媒体に記録する記録手段とを備えることを特徴とする。
【００１０】
本発明の第１の情報処理装置は、他の情報処理装置より、他の情報処理装置において作成された情報を取得する取得手段と、取得手段により取得された情報を保持する保持手段と、記録媒体が所定の位置に装着されているか否かを確認する確認手段と、確認手段による確認結果に基づいて、保持手段により保持されている情報を、所定の位置に装着された記録媒体に記録する記録手段とを備えることを特徴とする。
【００１１】
前記記録媒体は、不揮発性メモリであるようにすることができる。
【００１２】
前記取得手段が取得する情報のデータ形式は、記録媒体に記録可能なデータ形式であるようにすることができる。
【００１３】
前記記録手段による情報の、記録媒体への記録における記録位置を制御する記録位置制御手段をさらに備えるようにすることができる。
【００１４】
前記記録位置制御手段は、記録手段による情報の記録が、記録媒体の記憶領域の先頭から開始されるように、記録位置を制御するようにすることができる。
【００１５】
前記記録位置制御手段は、記録手段による情報の記録が、記録媒体の記憶領域に予め記憶されている情報に続く位置から開始されるように、記録位置を制御するようにすることができる。
【００１６】
作業の状況または作業者への指示を表示する表示手段をさらに備えるようにすることができる。
【００１７】
前記確認手段は、記録媒体が所定の位置に装着されたことを検知するようにすることができる。
【００１８】
作業者が動作の指示を入力する入力手段をさらに備え、確認手段は、入力手段により入力された指示に基づいて、記録媒体が所定の位置に装着されているか否かを確認するようにすることができる。
【００１９】
本発明の第１の情報処理方法は、他の情報処理装置より供給される、他の情報処理装置において作成された情報の取得を制御する取得制御ステップと、取得制御ステップの処理により取得が制御された情報を保持する保持ステップと、記録媒体が所定の位置に装着されているか否かを確認する確認ステップと、確認ステップの処理による確認結果に基づいて、保持ステップの処理により保持されている情報の、所定の位置に装着された記録媒体への記録を制御する記録制御ステップとを含むことを特徴とする。
【００２０】
本発明の第１の記録媒体のプログラムは、他の情報処理装置より供給される、他の情報処理装置において作成された情報の取得を制御する取得制御ステップと、取得制御ステップの処理により取得が制御された情報を保持する保持ステップと、記録媒体が所定の位置に装着されているか否かを確認する確認ステップと、確認ステップの処理による確認結果に基づいて、保持ステップの処理により保持されている情報の、所定の位置に装着された記録媒体への記録を制御する記録制御ステップとを含むことを特徴とする。
【００２１】
本発明の第１のプログラムは、他の情報処理装置より供給される、他の情報処理装置において作成された情報の取得を制御する取得制御ステップと、取得制御ステップの処理により取得が制御された情報を保持する保持ステップと、記録媒体が所定の位置に装着されているか否かを確認する確認ステップと、確認ステップの処理による確認結果に基づいて、保持ステップの処理により保持されている情報の、所定の位置に装着された記録媒体への記録を制御する記録制御ステップとをコンピュータに実現させることを特徴とする。
【００２２】
本発明の第２の情報処理装置は、元の情報である第１の情報より、記録媒体に記録可能なデータ形式の第２の情報を作成する情報作成手段と、情報作成手段により作成された第２の情報を他の情報処理装置に供給する供給手段とを備えることを特徴とする。
【００２３】
前記記録媒体は、不揮発性メモリであるようにすることができる。
【００２４】
仮想的な記録媒体の記憶領域である仮想記憶領域を作成する仮想記憶領域作成手段をさらに備え、情報作成手段は、仮想記憶領域作成手段により作成された仮想記憶領域を用いて、第２の情報を作成するようにすることができる。
【００２５】
前記仮想記憶領域作成手段は、予め用意された複数のデータ形式の中から、仮想記憶領域のデータ形式を選択的に決定するようにすることができる。
【００２６】
前記予め用意された複数のデータ形式を選択するＧＵＩ情報を表示する表示手段と、ユーザの指示入力を受け付ける入力受け付け手段とをさらに備え、仮想記憶領域作成手段は、入力受け付け手段により受け付けられたユーザの入力に基づいて、仮想記憶領域のデータ形式を決定するようにすることができる。
【００２７】
前記情報作成手段は、仮想記憶領域に情報を書き込む書き込み手段と、仮想記憶領域のイメージデータを抽出する抽出手段とを備え、書き込み手段が第１の情報を仮想記憶領域に書き込み、抽出手段が仮想記憶領域のイメージデータを抽出して、第２の情報を作成するようにすることができる。
【００２８】
前記仮想記憶領域は、記録媒体の記憶領域と同じ容量であるようにすることができる。
【００２９】
前記仮想記憶領域は、記録媒体の記憶領域と同じファイルシステム構成であるようにすることができる。
【００３０】
前記仮想記憶領域のデータ書き込み単位量は、記録媒体の記憶領域のデータ書き込み単位量と同量であるようにすることができる。
【００３１】
前記第２の情報は、第１の情報および、仮想記憶領域のファイルシステム構成に関する情報が含まれるようにすることができる。
【００３２】
前記抽出手段は、仮想記憶領域全体のイメージデータを抽出するようにすることができる。
【００３３】
前記情報作成手段は、書き込み手段により書き込まれた最後の情報の位置を記憶する位置記憶手段をさらに備え、抽出手段は、仮想記憶領域の先頭部分から、位置記憶手段により記憶されている情報の位置までのイメージデータを抽出するようにすることができる。
【００３４】
前記供給手段は、作成手段により作成された第２の情報を、記録媒体の記憶領域より小さい、所定のデータサイズに分割して、他の情報処理装置に供給するようにすることができる。
【００３５】
本発明の第２の情報処理方法は、元の情報である第１の情報より、記録媒体に記録可能なデータ形式の第２の情報を作成する情報作成ステップと、情報作成ステップの処理により作成された第２の情報の他の情報処理装置への供給を制御する供給制御ステップとを含むことを特徴とする。
【００３６】
本発明の第２の記録媒体のプログラムは、元の情報である第１の情報より、記録媒体に記録可能なデータ形式の第２の情報を作成する情報作成ステップと、情報作成ステップの処理により作成された第２の情報の他の情報処理装置への供給を制御する供給制御ステップとを含むことを特徴とする。
【００３７】
本発明の第２のプログラムは、元の情報である第１の情報より、記録媒体に記録可能なデータ形式の第２の情報を作成する情報作成ステップと、情報作成ステップの処理により作成された第２の情報の他の情報処理装置への供給を制御する供給制御ステップとをコンピュータに実現させることを特徴とする。
【００３８】
本発明の情報処理システムにおいては、記録媒体に記録する情報を作成する第１の情報処理装置と、第１の情報処理装置に接続され、情報を記録媒体に記録する第２の情報処理装置とが備えられ、第１の情報処理装置においては、記録媒体に記録する情報が作成され、作成された情報が第２の情報処理装置に供給され、第２の情報処理装置においては、第１の情報処理装置より情報が取得され、取得された情報が保持され、記録媒体が所定の位置に装着されているか否かが確認され、その確認結果に基づいて、保持されている情報が、所定の位置に装着された記録媒体に記録される。
【００３９】
本発明の第１の情報処理装置および方法、第１の記録媒体、並びに第１のプログラムにおいては、他の情報処理装置において作成された、記録媒体に記録するための情報が取得され、取得された情報が記憶部等に一時保持され、情報を記録するための記録媒体が所定の位置に装着されているか否かが確認され、その確認結果に基づいて、記録媒体が所定の位置に装着されている場合、保持されている情報が、その記録媒体に記録される。
【００４０】
本発明の第２の情報処理装置および方法、第１の記録媒体、並びに第１のプログラムにおいては、元の情報である第１の情報より、記録媒体に記録可能なデータ形式の第２の情報が作成され、作成された第２の情報が他の情報処理装置に供給される。
【００４１】
第１の情報処理装置および第２の情報処理装置は、無線通信および有線通信は勿論、無線通信と有線通信とが混在した通信、即ち、ある区間では無線通信が行われ、他の区間では有線通信が行われることにより接続されていてもよい。また、第１の情報処理装置および第２の情報処理装置は、独立した装置どうしであっても良いし、１つの装置を構成している内部ブロックどうしであっても良い。
【００４２】
【発明の実施の形態】
図１は、本発明を適用した、メモリスティック（商標）にデータを書き込むメモリスティック情報書き込みシステムの基本的な構成例を示すブロック図である。
【００４３】
図１において、ホストコンピュータ１は、パーソナルコンピュータ等で構成される情報処理装置である。ホストコンピュータ１には、メモリスティック書き込み装置２がＵＳＢケーブル３を用いて接続されている。メモリスティック書き込み装置２には、メモリスティックスロット４が設けられており、データを記録する際に、メモリスティック５がメモリスティックスロット４に装着される。
【００４４】
ユーザは、ホストコンピュータ１を操作して、メモリスティック５に記録するデータを作成する。ホストコンピュータ１は、後述するように、内蔵されているＲＡＭ（Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）に仮想的にメモリスティック５と同じ記憶領域を作成し、その仮想的な記憶領域に、ユーザにより指示されて作成したデータを、メモリスティック５において記憶される場合と同様のファイルフォーマットで保持し、ユーザの指示があるまで待機する。
【００４５】
ユーザが、データのメモリスティック書き込み装置２への転送を指示すると、ホストコンピュータ１は、保持しているデータを、ＵＳＢケーブル３を介して、メモリスティック書き込み装置２に供給する。
【００４６】
メモリスティック書き込み装置２は、データを取得すると、取得したデータを、後述するように、内蔵されているＲＡＭに保持する。この時点で、メモリスティック書き込み装置２は、単体で動作することが可能であり、新たにホストコンピュータ１よりデータを取得する必要がない限り、ホストコンピュータ１より、切り離すことが可能である。
【００４７】
そして、ユーザによりメモリスティック５がメモリスティックスロット４に装着されたのを検知し、ユーザに指示されるなどすると、メモリスティック書き込み装置２は、保持しているデータをメモリスティック５に供給し、記録させる。
【００４８】
それ以降、同じデータを異なるメモリスティック５に記録する場合、メモリスティック書き込み装置２は、ホストコンピュータ１より新たにデータを取得せずに、保持しているデータを用いて書き込み処理を行うことができる。すなわち、ユーザが、メモリスティックスロット４に装着されているメモリスティック５を交換し、必要であれば指示するだけで、メモリスティック書き込み装置２は、メモリスティックスロット４に装着された新たなメモリスティック５を検知し、そのメモリスティック５に保持しているデータを供給し、記録させる。
【００４９】
図２は、図１に示すホストコンピュータ１の構成例を示す図である。
【００５０】
図２において、ＣＰＵ（Ｃｅｎｔｒａｌ　Ｐｒｏｃｅｓｓｉｎｇ　Ｕｎｉｔ）１１は、ＲＯＭ（Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）１２に記憶されているプログラム、または記憶部２３からＲＡＭ１３にロードされたプログラムに従って各種の処理を実行する。ＲＡＭ１３にはまた、ＣＰＵ１１が各種の処理を実行する上において必要なデータなども適宜記憶される。ＣＰＵ１１、ＲＯＭ１２、およびＲＡＭ１３は、バス１４を介して相互に接続されている。このバス１４にはまた、入出力インタフェース２０も接続されている。
【００５１】
入出力インタフェース２０には、キーボード、マウスなどよりなる入力部２１、ＣＲＴ（Ｃａｔｈｏｄｅ　Ｒａｙ　Ｔｕｂｅ）、ＬＣＤ（Ｌｉｑｕｉｄ　Ｃｒｙｓｔａｌ　Ｄｉｓｐｌａｙ）などよりなるディスプレイ、並びにスピーカなどよりなる出力部２２、ハードディスクなどにより構成される記憶部２３、モデム、ターミナルアダプタ、またはＬＡＮアダプタなどにより構成される通信部２４が接続されている。
【００５２】
記憶部２３には、メモリスティックに記録されるデータや、各種の処理を実行するためのプログラム等が記憶されており、必要に応じてＣＰＵ１１に制御され、ＲＡＭ１３にデータやプログラムを供給する。
【００５３】
通信部２４は、モデムやターミナルアダプタ等を用いた通信の他にも、例えば、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ　Ｓｅｒｉａｌ　Ｂｕｓ）、ＩＥＥＥ１３９４（Ｉｎｓｔｉｔｕｔｅ　ｏｆ　Ｅｌｅｃｔｒｉｃａｌ　ａｎｄＥｌｅｃｔｒｏｎｉｃ　Ｅｎｇｉｎｅｅｒｓ）、ＲＳ‐２３２Ｃ（Ｒｅｃｏｍｍｅｎｄｅｄ　Ｓｔａｎｄａｒｄ　２３２　ｒｅｖｉｓｉｏｎ　Ｃ）、またはＳＣＳＩ（Ｓｍａｌｌ　Ｃｏｍｐｕｔｅｒ　Ｓｙｓｔｅｍ　Ｉｎｔｅｒｆａｃｅ）等の各種の規格を用いた通信処理を行う機能を有している。例えば、通信部２４には、ＵＳＢコネクタ３１が接続されており、ＣＰＵ１１は、通信部２４を制御して、ＵＳＢコネクタ３１にＵＳＢケーブル３を介して接続されたメモリスティック書き込み装置２と通信を行う。
【００５４】
ＵＳＢは、低中速デバイス向けの汎用シリアルインタフェース規格である。ＵＳＢコネクタ３１は、ＵＳＢの標準コネクタである約１２ｍｍ×５ｍｍの平たいコネクタからなり、最大６分岐までの集線装置（ＨＵＢ）を介して最大１２７台のデバイスをツリー型に接続することができる。
【００５５】
ＵＳＢの転送速度は、ＵＳＢ規格のバージョン２．０において、最大４８０Ｍｂｐｓ（Ｂｉｔｓ　Ｐｅｒ　Ｓｅｃｏｎｄ）である。また、ＵＳＢは、ダイナミックな抜き差しを行うホットプラグ機能を含むプラグ＆プレイ等の機能を備えているので、ユーザは、ホストコンピュータ１の電源を切断しなくても、ＵＳＢコネクタ３１よりＵＳＢケーブル３を正常に抜き差しすることが可能である。
【００５６】
なお、メモリスティック書き込み装置２は、ＵＳＢ以外にも、例えば、ＩＥＥＥ１３９４、ＲＳ‐２３２Ｃ、またはＳＣＳＩ等の各種の規格を用いて、通信部２４と通信を行うようにしてもよい。その際、ＵＳＢコネクタ３１およびＵＳＢケーブル３の代わりに、用いられる規格に応じたコネクタおよびケーブルが使用される。なお、ホストコンピュータ１の通信部２４とメモリスティック書き込み装置２との間の通信は、どのような規格を用いて行うようにしてもよいが、データ転送速度が速く、ダイナミックな抜き差しを行うホットプラグ機能を含むプラグ＆プレイ等の機能を備えていて、より多くの機器を接続できる規格を用いるほうがよい。
【００５７】
入出力インタフェース２０にはまた、必要に応じてドライブ４０が接続され、磁気ディスク４１、光ディスク４２、光磁気ディスク４３、或いは半導体メモリ４４などが適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部２３にインストールされる。
【００５８】
ＣＰＵ１１は、ユーザによる入力部２１の操作に基づいて、メモリスティック５に記録する書き込みデータを作成する。作成された書き込みデータは、後述するように、一旦、ＲＡＭ１３にメモリスティック５に記録される場合と同様のファイルフォーマットで保持される。
【００５９】
メモリスティック書き込み装置２は、メモリスティック５に書き込まれるデータをＦＡＴ（Ｆｉｌｅ　Ａｌｌｏｃａｔｉｏｎ　Ｔａｂｌｅｓ）ファイルシステムにより管理する。ＦＡＴファイルシステムは、ＯＳ（Ｏｐｅｒａｔｉｎｇ　Ｓｙｓｔｅｍ）等で利用されるファイルシステムであり、フロッピー（Ｒ）ディスクやハードディスクの中に記憶されるデータの管理を行うための論理フォーマットである。
【００６０】
ＦＡＴファイルシステムでは、ディスクを１つ以上の連続するセクタをまとめたクラスタという単位で管理している。このクラスタの状態を記録しておくために、ディスク上のクラスタと１対１に対応するエントリを持つ管理テーブルが用意されており、これをＦＡＴと呼んでいる。ＦＡＴファイルシステムは、このＦＡＴ、ルートディレクトリと呼ばれるディレクトリ領域、および、データ本体を格納するデータ領域から成る。ディレクトリ領域には、ファイル名等の情報とともに、格納したデータの最初のクラスタを指す番号が記録される。該当するＦＡＴには、ファイルの最終クラスタであることを示す特別な値や、チェインするクラスタの番号が記録され、複数のクラスタに分散されたデータのつながりが示される仕組みになっている。
【００６１】
なお、ＣＰＵ１１は、どの程度の処理能力を有していても構わないが、１度に処理するデータ量が３２ｂｉｔ以上の処理能力を有し、上述したＦＡＴファイルシステムを用いて、ＲＡＭ１３に３２ｂｉｔ以上のメモリ空間を確保できるのが望ましい。
【００６２】
例えば、セクタのサイズが５１２ｂｙｔｅで、ＣＰＵ１１におけるセクタ数のカウントが１６ｂｉｔである場合、ＣＰＵ１１が管理可能な最大容量は、約３２ＭＢとなる。従って、この場合、ＣＰＵ１１がＲＡＭ１３に記録し、管理するデータサイズは、最大３２ＭＢに制限されてしまう。しかしながら、現在、普及しているフラッシュメモリ等を用いたメモリカードの容量は、８ＭＢ乃至２５６ＭＢが主流である。また、今後もその容量は大容量化し、記録されるデータもそれに伴い大きくなることが予想される。すなわち、上述した場合では、メモリカードの容量より小さいデータサイズのデータであるにも関わらず、ＣＰＵ１１が扱うことができない場合が発生してしまい、不都合が生じる。
【００６３】
これに対して、例えば、ＣＰＵ１１におけるセクタ数のカウントが３２ｂｉｔである場合、ＣＰＵ１１が管理可能な最大容量は、約２ＴＢとなる。実際には、クラスタ数（ＦＡＴのエントリのサイズ）にも制限があり、例えば、ＣＰＵ１１におけるクラスタ数のカウントを１６ｂｉｔとする場合、ＣＰＵ１１が管理可能な最大容量は、約４ＧＢとなる。従って、ＣＰＵ１１が３２ｂｉｔ以上のメモリ空間を管理可能であれば、メモリカードの容量にほぼファイルイメージデータをＲＡＭ１３に１度に作成し、管理することも可能である。
【００６４】
以上により、ＣＰＵ１１は、１度に処理するデータ量が３２ｂｉｔ以上の処理能力を有し、上述したＦＡＴファイルシステムを用いて、ＲＡＭ１３に３２ｂｉｔ以上のメモリ空間を確保できるのが望ましいが、それ以下の処理能力であってもよい。
【００６５】
以上のように作成され管理されている書き込みデータであるファイルフォーマットイメージデータを、ＣＰＵ１１は、ユーザの指示などに基づいて、通信部２４を制御して、ＵＳＢケーブル３を介してＵＳＢコネクタ３１に接続されているメモリスティック書き込み装置２に供給する。
【００６６】
図３は、図１に示すメモリスティック書き込み装置２の構成例を示す図である。
【００６７】
図３において、ＣＰＵ１０１は、ＲＯＭ１０２に記憶されているプログラム、または記憶部１３３からＲＡＭ１０３にロードされたプログラムに従って各種の処理を実行する。ＲＡＭ１０３にはまた、ＣＰＵ１０１が各種の処理を実行する上において必要なデータなども適宜記憶される。ＣＰＵ１０１、ＲＯＭ１０２、およびＲＡＭ１０３は、バス１０４を介して相互に接続されている。
【００６８】
ＣＰＵ１０１は、上述したＣＰＵ１１の場合と同様に、ＦＡＴファイルシステムにより、メモリスティック５に記録するデータを管理する。したがって、ＣＰＵ１１の場合と同様に、ＣＰＵ１０１は、１度に処理するデータ量が３２ｂｉｔ以上の処理能力を有し、上述したＦＡＴファイルシステムを用いて、３２ｂｉｔ以上のメモリ空間を管理できるのが望ましいが、それ以下の処理能力を有するようにしても構わない。
【００６９】
バス１０４にはまた、メモリスティックインタフェース１１０が接続されている。このメモリスティックインタフェース１１０は、ＣＰＵ１０１に制御されて、メモリスティックスロット４を介して、メモリスティックスロット４に装着されたメモリスティック５に、バス１０４を介して供給されたデータを供給する等の処理を行う。
【００７０】
さらに、バス１０４には、通信インタフェース１２０が接続されている。この通信インタフェース１２０は、さらにＵＳＢコネクタ１２１にも接続されており、バス１０４を介してＣＰＵ１０１に制御されて、ＵＳＢコネクタ１２１にＵＳＢケーブル３を用いて接続されたホストコンピュータ１と通信を行う。
【００７１】
また、バス１０４には、Ｉ／Ｏインタフェース１３０が接続されている。Ｉ／Ｏインタフェース１３０には、図示せぬ電源ボタンや書き込み開始ボタンなどを含む入力部１３１、図示せぬＣＲＴおよびＬＣＤなどに代表されるディスプレイ、ＬＥＤ（Ｌｉｇｈｔ　Ｅｍｉｔｔｉｎｇ　Ｄｉｏｄｅ）などによる表示ランプ、並びにスピーカなどを含む出力部１３２、ハードディスクなどにより構成される記憶部１３３が接続されている。
【００７２】
出力部１３２は、ディスプレイ、表示ランプ、またはスピーカ等、メモリスティック書き込み装置２の状態を表す情報を出力することができれば何でもよい。例えば、ＬＥＤを用いた表示ランプを数個設け、書き込み中または待機中などのような書き込み処理の状態、電源ＯＮまたはＯＦＦ、メモリスティックの挿抜の状態、並びに、書き込みの成功または失敗などのような書き込み処理の結果などの主な情報を示すだけでもよい。
【００７３】
記憶部１３３には、各種の処理を実行するためのデータやプログラム等が記憶されており、必要に応じてＣＰＵ１０１に制御され、ＲＡＭ１０３にデータやプログラムを供給する。
【００７４】
Ｉ／Ｏインタフェース１３０にはまた、必要に応じてドライブ１４０が接続され、磁気ディスク１４１、光ディスク１４２、光磁気ディスク１４３、或いは半導体メモリ１４４などが適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部１３３またはＲＡＭ１０２にインストールされる。
【００７５】
ＣＰＵ１０１は、通信インタフェース１２０を制御して、ＵＳＢケーブル３を介してＵＳＢコネクタ１２１に接続されたホストコンピュータ１より、ファイルフォーマットイメージデータを取得すると、ＲＡＭ１０３に一時保持させる。
【００７６】
そして、ユーザの指示などに基づいて、メモリスティックインタフェース１１０を制御して、メモリスティックスロット４にメモリスティック５が挿入されていることを検知すると、ＣＰＵ１０１は、ＲＡＭ１０３に保持されているファイルフォーマットイメージデータを、メモリスティックインタフェース１１０を介して、メモリスティック５に供給し、記録させる。
【００７７】
図４は、図１に示すメモリスティック５の構成例を示す図である。
【００７８】
メモリスティック５は、縦２１．５ｍｍ×横５０ｍｍ×厚さ２．８ｍｍの薄い長方形で、裏面に１０ピンの端子と誤消去防止用のスイッチを備えた、フラッシュメモリを用いたメモリカードであり、デジタルカメラ、ノート型パーソナルコンピュータ、またはＰＤＡ等を含む様々な電子機器の外部記録媒体として用いられている。
【００７９】
メモリスティック５の内部には、データの読み書きを制御するコントローラＩＣ２０１、および、データを保存するフラッシュメモリ２０２が設けられている。
【００８０】
コントローラＩＣ２０１は、内部に設けられたシリアルインタフェース２１１により、メモリスティック５に設けられた外部端子であるシリアルデータＩ／Ｏ（ＳＤＩＯ（Ｓｅｒｉａｌ　Ｄａｔａ　Ｉ／Ｏ））２０３を介して、フラッシュメモリ２０２に記録するデータを取得したり、外部端子であるバスステート（ＢＳ（Ｂｕｓ　Ｓｔａｔｅ））２０４を介して、バスの状態を表すシリアルプロトコルバスステート信号を取得したり、外部端子であるシリアルクロック（ＳＣＬＫ（Ｓｅｒｉａｌ　Ｃｌｏｃｋ）２０５を介して、動作のタイミングの基準となるシリアルプロトコルクロック信号を取得したりする。
【００８１】
なお、メモリスティック５には、実際には、図５Ａおよび図５Ｂに示すように、１０個の外部端子が設けられている。図５Ａは、メモリスティック５に設けられた外部端子の様子を示す図である。図５Ａにおいて、メモリスティック５には、一方の面に、平面電極で構成される１０個の外部端子２３１−１乃至２３１−１０が、一列に設けられている。ここで、外部端子２３１−１乃至２３１‐１０に、それぞれ、端子番号１乃至１０を対応させると、各端子の端子名、入出力、および機能は、図５Ｂに示す表２４１ようになる。
【００８２】
具体的には、端子番号１である外部端子２３１−１は、端子名「ＶＳＳ」であり、接地されており、機能としては、０Ｖ基準を示す「ＶＳＳ」の役割を行うＧＮＤ電源である。
【００８３】
端子番号２である外部端子２３１‐２は、端子名「ＢＳ」であり、上述したように、外部より、バスの状態を示す信号であるシリアルプロトコルバスステート信号を入力する入力端子である。なお、バスの状態は、全部で４種類あり、その状態によって、データ信号の流れる向き等が制御される。
【００８４】
端子番号３である外部端子２３１‐３は、端子名「ＶＣＣ」であり、電源電圧「ＶＣＣ」を入力する入力端子である。電源電圧の大きさは、２．７Ｖ以上３．６Ｖ以下で設定される。
【００８５】
端子番号４である外部端子２３１‐４は、端子名「ＳＤＩＯ」であり、上述したように、データを含む信号であるシリアルプロトコルデータ信号を外部とやり取りする入出力端子である。書き込み速度は、フラッシュメモリ２０２のセルにより変化するが、３３０ＫＢ以上１，８００ＭＢ（Ｂｙｔｅ）以下である。また、読み出し速度は、２．４５ＭＢである。
【００８６】
端子番号５である外部端子２３１−５は、端子名「Ｒｅｓｅｒｖｅ」であり、予備の端子である。予備端子である外部端子２３１−５は、通常使用されておらず、メモリスティック５の内部で開放されている。
【００８７】
端子番号６である外部端子２３１‐６は、端子名「ＩＮＳ」であり、メモリスティックが装着されているか否かを確認するためのスティック挿抜検出用出力端子である。外部端子２３１−６は、メモリスティック５の内部で、外部端子２３１−３と短絡されている。すなわち、外部端子２３１‐６より電源電圧「ＶＣＣ」が外部に出力されることにより、メモリスティック５が装着されていることを示す。端子番号７である外部端子２３１‐７は、端子名「Ｒｅｓｅｒｖｅ」であり、外部端子２３１−５と同様に、予備の端子である。
【００８８】
端子番号８である外部端子２３１−８は、端子名「ＳＣＬＫ」であり、上述したように、シリアルプロトコルクロック信号を入力する入力端子である。なお、シリアルプロトコルクロック信号の最大周波数は、２０ＭＨｚである。
【００８９】
また、端子番号９である外部端子２３１−９は、端子名「ＶＣＣ」であり、外部端子２３１−３と同様に、電源電圧「ＶＣＣ」を入力する入力端子である。さらに、端子番号１０である外部端子２３１‐１０は、端子名「ＶＳＳ」であり、外部端子２３１‐１と同様に、ＧＮＤ電源の機能を有する。
【００９０】
メモリスティック５は、以上のように外部端子が構成されている。
【００９１】
なお、これらの端子順序は、上述した以外の並び方であってもよい。また、端子数もいくつであってもよい。さらに、各端子が有する機能は、上述した機能だけでなく、どのような機能を有していてもよい。
【００９２】
図４に戻り、シリアルインタフェース２１１において、取得されたデータは、データやコマンドを一時的に保持するレジスタ部２１２に供給される。そして、コントローラＩＣ２０１に内蔵されるフラッシュメモリコントローラ２１３は、レジスタ部２１２に保持されているコマンドなどに基づいて、フラッシュメモリ２０２を制御して、レジスタ部２１２より取得したデータを記録させる。
【００９３】
フラッシュメモリ２０２は、部分的にデータを電気的に消去し、書き直すことができる不揮発性メモリであるＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ　Ｅｒａｓａｂｌｅ　Ｐｒｏｇｒａｍａｂｌｅ　ＲＯＭ）の一種であり、ＮＡＮＤ型のフラッシュメモリで構成されている。なお、メモリスティック５は、コントロールＩＣ２０１を対応させることにより、フラッシュメモリ２０２の構成の違いを吸収することができるので、フラッシュメモリ２０２には、ＡＮＤ型のフラッシュメモリを用いてもよい。
【００９４】
次に、図６を参照して、フラッシュメモリ２０２に記録されるデータのデータ構造の階層について説明する。
【００９５】
図６において、例えば、音楽データなどにより構成されるコンテンツ２５１をメモリスティック５のフラッシュメモリ２０２に記録する場合、コンテンツ２５１は、まず、ホストコンピュータ１のＣＰＵ１１において動作しているアプリケーション２６１により、アプリケーション２６１のフォーマットに基づいたファイル２５２に変換される。
【００９６】
ファイル２５２は、ＣＰＵ１１によりＦＡＴファイルフォーマット２６２を利用して、いくつかのセクタをまとめたクラスタで構成されるクラスタ群２５３、すなわち、セクタ群２５４に変換され、ＲＡＭ１３にファイルフォーマットイメージデータとして保持される。セクタ群２５４またはクラスタ群２５３により構成されるファイルフォーマットイメージデータは、メモリスティック書き込み装置２に供給され、ＲＡＭ１０３に保持される。
【００９７】
そして、ＣＰＵ１０１により、ファイルフォーマットイメージデータは、メモリスティック５のレジスタ部２１２に供給される。このとき、セクタ群２５４またはクラスタ群２５３により構成されるファイルフォーマットイメージデータは、論理アドレス２５５を用いて、メモリ空間のどこに記録するかが指定されている。
【００９８】
フラッシュメモリコントローラ２１３は、レジスタ部２１２に保持されているデータに対応する論理アドレス２５５をフラッシュメモリ２０２における物理的なアドレスである物理アドレス２５６に変換し、その算出されたアドレス上にレジスタ部２１２に保持されているデータを記録する。
【００９９】
従って、ＦＡＴファイルシステムにおいて、ファイルデータ２５２を分割したクラスタ群の一部であるクラスタ２５３Ａは、さらにセクタ２５４Ａ乃至２５４Ｃに分割される。そして、それらのセクタ２５４Ａ乃至２５４Ｃに論理アドレス２５５Ａが割り当てられる。フラッシュメモリコントローラ２１３は、その論理アドレス２５５Ａを物理アドレス２５６Ａに変換し、フラッシュメモリ２０２上の、その物理アドレス２５６Ａに対応する場所に、セクタ２５４Ａ乃至２５４Ｃを記録する。
【０１００】
なお、図６においては、クラスタ２５３Ａは、３つのセクタ２５４Ａ乃至２５４Ｃにより構成されているが、１つのクラスタを構成するセクタの数は、いくつであってもよい。
【０１０１】
図７は、フラッシュメモリ２０２におけるＦＡＴファイルシステムの構成例を示す図である。
【０１０２】
図７において、フラッシュメモリ２０２のＦＡＴファイルシステム２７０は、先頭セクタにＭＢＲ（Ｍａｓｔｅｒ　Ｂｏｏｔ　Ｒｅｃｏｒｄ）２７１、各パーティションの先頭セクタであるＰＢＲ（Ｐａｒｔｉｔｉｏｎ　Ｂｏｏｔ　Ｒｅｃｏｒｄ）２７２、メモリスティック５に格納されているデータの位置情報を記録しておく領域であるＦＡＴ２７３、ルートディレクトリに関する情報を格納する領域であるルートディレクトリ２７４、その他のファイルやディレクトリ、並びにそれらに付随する情報を格納する領域であるデータエリア２７５などにより構成されている。
【０１０３】
ＭＢＲ２７１は、ＦＡＴファイルシステム２７０の先頭セクタであり、最初にロードされるセクタである。ＭＢＲ２７１は、図８に示すように、起動に関するプログラムが格納されているプログラム領域２８１、パーティションに関する情報を格納する領域である第１パーティションテーブル２８２、第２のパーティションテーブル２８３、第３パーティションテーブル２８４、および第４パーティションテーブル２８５、値「０ｘＡＡ５５」が格納されている領域であるマジックナンバー２８６により構成されている。
【０１０４】
図８において、プログラム領域２８１は、４４６Ｂｙｔｅであり、第１パーティションテーブル２８２乃至第４パーティションテーブル２８５を検査したり、ロードするセクタを選択したりするプログラムを格納している。
【０１０５】
第１パーティションテーブル２８２乃至第４パーティションテーブル２８５は、各１６Ｂｙｔｅで構成され、それぞれ、そのパーティションの位置情報、基本領域か拡張領域かなどの種類、起動可能かどうかの情報などが格納されている。
【０１０６】
最後のマジックナンバーは、２Ｂｙｔｅで構成されており、上述したように、値「０ｘＡＡ５５」が必ず記録されている。この値が入っていないとマスターブートレコード自体が無効なものとして扱われ、ブートストラップローダが実行されず、パーティションテーブルも読み込まれない。
【０１０７】
以上のようにＭＢＲ２７１は、構成されている。
【０１０８】
ＰＢＲ２７２は、パーティションの先頭セクタであり、パーティション内で最初にロードされるセクタである。ＰＢＲ２７２は、図９に示すように、先頭に配置される３Ｂｙｔｅのプログラムコードへのジャンプ命令２９１、ファイルシステムの情報、特にそのパーティションに特化した情報が格納される領域であるディスクパラメータ２９２、ファイルシステムのアクセス手法に従って、最初のファイルの読み込みを行うようなコードが格納されているプログラムコード（ＩＰＬ（ＩｎｉｔｉａｌＰｒｏｇｒａｍ　Ｌｏａｄｅｒ））２９３、値「０ｘＡＡ５５」が格納されている領域であるマジックナンバー２９４により構成されている。
【０１０９】
以上のように、ＰＢＲ２７２は、構成されている。
【０１１０】
次に、以上のように構成されるメモリスティック情報書き込みシステムにおける書き込み方法について説明する。
【０１１１】
ユーザは、最初に、ホストコンピュータ１を操作して、メモリスティック５に記録するデータのファイルシステムイメージデータを生成させる。ホストコンピュータ１は、ユーザからの入力を受け付け、その指示に基づいて、書き込みデータのファイルシステムイメージデータを作成する。
【０１１２】
ホストコンピュータ１による書き込みデータ入力処理を図１０および図１１のフローチャートを参照して説明する。また、必要に応じて、図１２を参照して説明する。
【０１１３】
最初に、図１０のステップＳ１において、ホストコンピュータ１のＣＰＵ１１は、ＲＡＭ１３に、図１２に示すような仮想ドライブ領域を生成し、メモリスティック５と同様のファイルシステムイメージデータを生成する。
【０１１４】
図１２は、ＲＡＭ１３に生成された仮想ドライブ領域の構成例を示す図である。
【０１１５】
図１２において、ＲＡＭ１３には、メモリスティック５の代わりとなる仮想的なドライブ領域である仮想ドライブ領域３００が形成されている。仮想ドライブ領域３００には、メモリスティック５と同様のＦＡＴファイルシステムを用いたファイルシステムイメージデータ３１０が生成される。ファイルシステムイメージデータ３１０は、図７を用いて説明したメモリスティック５の場合と同様に、ＭＢＲ３１１、ＰＢＲ３１２、ＦＡＴ３１３、ルートディレクトリ３１４、およびデータエリア３１５により構成されている。
【０１１６】
ＣＰＵ１１は、ユーザにより、メモリスティック５に書き込むように指示された書き込みデータを、メモリスティック書き込み装置２に転送し、メモリスティック５に記録させる代わりに、一度、ＲＡＭ１３の仮想ドライブ領域３００のファイルシステムイメージデータ３１０に記録する。
【０１１７】
通常、例えば、ＲＡＭ１３に仮想ドライブ領域を生成する場合、その仮想ドライブ領域は、ハードディスクなどの低速なドライブの代わりに使用することが目的であり、高速な独立したドライブとしてＯＳが管理するようにするが、本発明においては、メモリスティック５に書き込むフォーマットのデータを生成するために一時的に保持する領域として、仮想ドライブ領域３００を使用している。
【０１１８】
図１０に戻り、ファイルシステムイメージデータを生成したＣＰＵ１１は、ステップＳ２に進み、ユーザによる書き込みデータの入力の受け付けを開始する。そして、ステップＳ３において、書き込みデータが入力されたか否かを判定し、入力されたと判定するとステップＳ４に進み、ＲＡＭ１３の仮想ドライブ領域３００に形成されているファイルシステムイメージデータ３１０を更新する。すなわち、ＣＰＵ１１は、ユーザの指示により入力された、または生成された書き込みデータを、メモリスティック５に記録する場合と同様に、ＦＡＴファイルシステムを用いて、ＲＡＭ１３の仮想ドライブ領域３００に記録する。仮想ドライブ領域３００には、メモリスティック５に作成されるのと同じファイルシステムイメージデータ３１０が生成される。
【０１１９】
ステップＳ４の処理を終了したＣＰＵ１１は、ステップＳ５に進む。また、ステップＳ３において、書き込みデータが入力されていないと判定した場合、ＣＰＵ１１は、処理をステップＳ５に進める。
【０１２０】
ステップＳ５において、ＣＰＵ１１は、ユーザによりデータの保存を指示されたか否かを判定する。ユーザにより、ＲＡＭ１３の仮想ドライブ領域３００に形成されているファイルシステムイメージデータ３１０の保存を指示されたと判定した場合、ＣＰＵ１１は、ステップＳ６に進み、ＲＡＭ１３の仮想ドライブ領域３００に形成されているファイルシステムイメージデータ３１０を記憶部２３に保存する。保存が終了すると、ＣＰＵ１１は、図１１のステップＳ７に進む。
【０１２１】
また、図１０のステップＳ５において、ユーザにより、保存を指示されていないと判定した場合、ＣＰＵ１１は、図１１のステップＳ７に進む。
【０１２２】
図１１のステップＳ７において、ＣＰＵ１１は、ユーザにより、転送を指示されたか否かを判定する。ユーザが入力部２１を操作することにより、ＲＡＭ１３に生成された仮想ドライブ領域３００のシステムファイルイメージデータ３１０の転送を指示されたと判定した場合、ＣＰＵ１１は、ステップＳ８に進み、通信部２４を制御して、メモリスティック書き込み装置２は、ＵＳＢケーブル３を介してＵＳＢコネクタ３１に接続されているか否かを判定する。
【０１２３】
接続されていると判定した場合、ＣＰＵ１１は、ステップＳ９に進み、通信部２４を制御して、ＲＡＭ１３に保持されているファイルシステムイメージデータ３１０を、ＵＳＢケーブル３を介して、メモリスティック書き込み装置２に供給する。ファイルシステムイメージデータ３１０の供給が終了すると、ＣＰＵ１１は、ステップＳ１１に進む。
【０１２４】
また、ステップＳ７において、ユーザにより転送を指示されていないと判定した場合、ＣＰＵ１１は、ステップＳ１１に進む。また、ステップＳ８において、メモリスティック書き込み装置２が接続されていないと判定した場合、ＣＰＵ１１は、ファイルシステムイメージデータ３１０を転送することができないので、ステップＳ１０に進み、転送失敗のメッセージをディスプレイに表示する等のエラー処理を行った後、ステップＳ１１に進む。
【０１２５】
ステップＳ１１において、ＣＰＵ１１は、ユーザにより、終了を指示されたか否かを判定する。終了を指示されたと判定した場合、ＣＰＵ１１は、ステップＳ１２において、終了処理を行い、書き込みデータ入力処理を終了する。
【０１２６】
また、ステップＳ１１において、ユーザが入力部２１を操作するなどして、終了を指示していないと判定した場合、ＣＰＵ１１は、図１０のステップＳ３に戻り、それ以降の処理を繰り返す。
【０１２７】
以上のような、書き込みデータ入力処理により、ＲＡＭ１３に生成されたファイルシステムイメージデータ３１０は、メモリスティック書き込み装置２に供給される。
【０１２８】
次に、メモリスティック書き込み装置２によるファイルシステムイメージデータ取得処理について図１３のフローチャートを参照して説明する。
【０１２９】
最初に、ステップＳ３１において、メモリスティック書き込み装置２のＣＰＵ１０１は、通信インタフェース１２０を制御して、ＵＳＢコネクタ１２１にＵＳＢケーブル３を介して接続されたホストコンピュータ１より、ファイルシステムイメージデータを取得したか否かを判定し、取得したと判定するまで待機する。
【０１３０】
取得したと判定した場合、ＣＰＵ１０１は、ステップＳ３２に進み、取得したファイルイメージデータをＲＡＭ１０３に保存する。なお、既に、ファイルイメージデータがＲＡＭ１０３に保存されている場合、ＣＰＵ１０１は、取得したファイルイメージデータを、既に保存されているファイルシステムイメージデータに上書きするようにしてもよいし、ＲＡＭ１０３の異なる領域に保存するようにしてもよい。また、出力部１３２にメッセージ等を表示させるようにし、ユーザに選択させるようにしてもよい。
【０１３１】
保存が終了したＣＰＵ１０１は、ステップＳ３３に進み、ユーザにより、ＲＡＭ１０３に保存されているファイルシステムイメージデータの消去を指示されたか否かを判定する。ユーザは、ＲＡＭ１０３に保存されているファイルシステムイメージデータを消去する場合、例えば、入力部１３１を操作するなどして、消去処理の実行を指示する。
【０１３２】
消去を指示されたと判定した場合、ＣＰＵ１０１は、ステップＳ３４に進み、ＲＡＭ１０３に保存されているファイルシステムイメージデータを消去する。そして、ＣＰＵ１０１は、処理をステップＳ３５に進める。また、ステップＳ３３において、ユーザにより、ファイルシステムイメージデータの消去を指示されていないと判定した場合、ＣＰＵ１０１は、ステップＳ３５に進む。
【０１３３】
ステップＳ３５において、ＣＰＵ１０１は、電源の切断を指示されたか否かを判定する。電源の切断を指示する場合、ユーザは、例えば、入力部１３１を操作するなどして電源切断処理の実行を指示する。
【０１３４】
電源の切断を指示されたと判定した場合、ＣＰＵ１０１は、ステップＳ３６に進み、ＲＡＭ１０３に保存されているファイルシステムイメージデータを記憶部１３３に保存するなどの終了処理を行い、電源を切断し、ファイルシステムイメージデータ取得処理を終了する。
【０１３５】
また、ステップＳ３５において、電源の切断を指示されていないと判定した場合、ＣＰＵ１０１は、ステップＳ３１に戻り、それ以降の処理を繰り返す。
【０１３６】
以上のようにして、メモリスティック書き込み装置２は、ホストコンピュータ１より供給されたファイルシステムイメージデータを取得する。
【０１３７】
ファイルシステムイメージデータを取得したメモリスティック書き込み装置２において、ユーザの指示に基づいて、メモリスティックスロット４に装着されたメモリスティック５に、保持しているファイルシステムイメージデータの書き込み処理が行われる。
【０１３８】
メモリスティック書き込み装置２によるファイルシステムイメージデータ書き込み処理を図１４のフローチャートを参照して説明する。
【０１３９】
最初に、ステップＳ５１において、ＣＰＵ１０１は、ＲＡＭ１０３を制御して、保存しているファイルシステムイメージデータが存在するか否かを判定し、存在すると判定するまで待機する。
【０１４０】
図１３のフローチャートを参照して説明したファイルシステムイメージデータ取得処理により、ホストコンピュータ１より取得され、ＲＡＭ１０３に保存されているファイルシステムイメージデータが存在すると判定した場合、ＣＰＵ１０１は、処理をステップＳ５２に進め、メモリスティックインタフェース１１０を制御して、メモリスティックスロット４に、メモリスティック５が検知されたか否かを判定する。
【０１４１】
メモリスティックスロット４にメモリスティック５が装着されている場合、メモリスティックインタフェース１１０は、メモリスティックスロット４を介して、メモリスティック５の外部端子２３１−６より電源電圧「ＶＣＣ」を検出することができる。メモリスティックインタフェース１１０は、この電源電圧「ＶＣＣ」を検出すると、メモリスティック５を検知したことを示す検知信号をＣＰＵ１０１に供給する。ＣＰＵ１０１は、この検知信号に基づいて、メモリスティック５が検知されたか否かを判定する。
【０１４２】
なお、メモリスティックインタフェース１１０は、常にメモリスティックスロット４を監視し、ユーザによりメモリスティック５が装着された時点で、自動的にメモリスティック５の外部端子２３１−６より電源電圧「ＶＣＣ」を検出するようにしてもよいし、ユーザがメモリスティック５をメモリスティックスロット４に装着し、入力部１３１を操作してメモリスティック５の検知を指示し、ＣＰＵ１０１がその指示に基づいてメモリスティックインタフェース１１０に出力した制御信号に基づいて、メモリスティック５の挿抜の監視を開始するようにしてもよい。
【０１４３】
メモリスティックスロット４にメモリスティック５が装着されておらず、検知されなかったと判定した場合、ＣＰＵ１０１は、ステップＳ５１に戻り、それ以降の処理を繰り返す。
【０１４４】
また、ユーザによりメモリスティック５がメモリスティックスロット４に装着され、検知されたと判定した場合、ＣＰＵ１０１は、処理をステップＳ５３に進め、まず、ＣＰＵ１０１が内蔵するレジスタか、またはＲＡＭ１０３に保持されているセクタ番号を初期化する。例えば、ＣＰＵ１０１は、前回の処理で使用し、保持しているセクタ番号の値を「０」に設定する。なお、このとき、メモリスティック５に既に他のデータが記録されている場合、そのデータに続いて記録するように、セクタ番号を設定するようにしてもよい。
【０１４５】
そして、ＣＰＵ１０１は、ステップＳ５４において、ＣＰＵ１０１が内蔵するレジスタか、またはＲＡＭ１０３に保持されている書き込みバッファアドレスポインタを初期化する。例えば、ＣＰＵ１０１は、前回の処理で使用し、保持している書き込みバッファアドレスポインタの位置を「０ｘ００００」に設定する。
【０１４６】
書き込みバッファアドレスポインタを初期化したＣＰＵ１０１は、ステップＳ５５において、ＲＡＭ１０３に保持されている、ファイルシステムイメージデータの１セクタ分のデータを、メモリスティックインタフェース１１０を介して、メモリスティック５に書き込む。
【０１４７】
メモリスティック５に供給されたファイルシステムイメージデータの１セクタ分のデータは、メモリスティック５の内部のコントローラＩＣ２０１に内蔵されるシリアルインタフェース２１１を介して、レジスタ部２１２に供給される。フラッシュメモリコントローラ２１３は、レジスタ部２１２に保持されている命令に基づいて、対応するデータをレジスタ部２１２より取得し、論理アドレスを物理アドレスに変換して、その１セクタ分のデータをフラッシュメモリ２０２に記録する。
【０１４８】
１セクタ分のデータを書き込んだＣＰＵ１０１は、処理をステップＳ５６に進める。ステップＳ５６において、ＣＰＵ１０１は、ステップＳ５５において、処理したデータは、最終セクタのデータであるか否かを判定する。
【０１４９】
最終セクタのデータでないと判定した場合、ＣＰＵ１０１は、ステップＳ５７において、ＣＰＵ１０１が内蔵するレジスタか、またはＲＡＭ１０３に保持されているセクタ番号に１を追加し、ステップＳ５８において、ＣＰＵ１０１が内蔵するレジスタか、またはＲＡＭ１０３に保持されている書き込みバッファアドレスポインタの位置を１セクタ分進める。
【０１５０】
すなわち、例えば、保持していたセクタ番号の値が「０」である場合、ＣＰＵ１０１は、値「１」を加算するので、セクタ番号の値は、「１」に更新される。また、１セクタのデータサイズが５１２Ｂｙｔｅである場合、書き込みバッファアドレスポインタの位置は、前の位置より５１２Ｂｙｔｅ進んだ場所に更新される。
【０１５１】
ステップＳ５８の処理が完了すると、ＣＰＵ１０１は、ステップＳ５５に進み、それ以降の処理を繰り返す。以上のようにして、最初のセクタから最終セクタまでファイルシステムイメージデータを、セクタ毎にメモリスティック５に書き込んでいく。
【０１５２】
そして、ステップＳ５６において、ステップＳ５５において処理したデータが最終セクタのデータであると判定した場合、ＣＰＵ１０１は、ステップＳ５９に進み、出力部１３２のディスプレイにメッセージを表示する等して、作業終了をユーザに通知する。
【０１５３】
作業終了を通知されたユーザは、同じデータをさらに異なるメモリスティック５に記録させる場合、メモリスティックスロット４に装着されているメモリスティック５を交換する。
【０１５４】
ステップＳ５９の処理が完了したＣＰＵ１０１は、ステップＳ５１に戻りそれ以降の処理を繰り返す。従って、メモリスティック書き込み装置２は、複数のメモリスティック５に同じデータを記録させる場合においても、１枚ごとに新たにホストコンピュータ１よりデータを取得する必要が無く、メモリスティックスロット４に新たに装着されたメモリスティック５に対して、同様の書き込み処理によりデータを書き込むことができる。
【０１５５】
以上のように、メモリスティック書き込み装置２が、メモリスティック５に記録されるファイルフォーマットイメージデータを保持するようにしたので、書き込み時に、メモリスティック書き込み装置２とホストコンピュータ１との間で通信処理が頻繁に行われることが抑制されるため、書き込み処理に必要な時間を短縮し、より高速に書き込み処理を行うことができる。
【０１５６】
また、メモリスティック書き込み装置２が、メモリスティック５に記録されるファイルフォーマットイメージデータを保持するようにしたので、複数のメモリスティック５に同じデータを書き込む場合、メモリスティック１枚１枚について、ユーザがホストコンピュータ１を操作する必要が無い。従って、ユーザは、より簡単に、大量のメモリスティック５に同じデータを記録することができる。また、その処理に必要な所要時間も、工程数を省略できる分、短くすることができる。
【０１５７】
次に、ホストコンピュータ１が、図１２に示される仮想ドライブ領域３００として、ＲＡＭディスクを用いる場合について説明する。
【０１５８】
ＲＡＭディスクは、コンピュータの主記憶装置の一部または全部を、専用のソフトウェアを用いて制御し、ハードディスク等と同様の仮想的なディスクとして動作させる機能であり、これにより、ハードディスク等に比べて、高速にアクセス可能なディスクを実現することができる。
【０１５９】
通常、ＲＡＭディスクは、専用のソフトウェアが、自分自身がインストールされているコンピュータのＯＳと連携し、そのコンピュータの主記憶装置を制御することによって実現されるが、ここでは、ＯＳと連携せずに、独立して動作するファイルシステム（例えば、ＬＳＩ（Ｌａｒｇｅ　Ｓｃａｌｅ　Ｉｎｔｅｇｒａｔｉｏｎ）等のハードウェアに組み込まれた、特定用途のファイルシステム）の記録メディア用ドライバとして、ＲＡＭディスクドライバを使用する場合について説明する。
【０１６０】
図１５は、図１のホストコンピュータ１の、ＲＡＭディスクに関する構成の例を示す模式図である。
【０１６１】
ホストコンピュータ１の記憶部２３には、最終的にメモリスティック５に書き込まれるデータである転送元ファイル４１１と、後述するように、転送元ファイル４１１がＲＡＭ１３のＲＡＭディスク領域４２５に記憶されているときの状態のデータであるＲＡＭディスクイメージ４１２が記憶される。
【０１６２】
ＲＡＭディスクイメージ４１２は転送元ファイル４１１とファイルシステム構造を含むイメージデータである。ＲＡＭディスクイメージ４１２は、ＲＡＭディスク領域４２５の内容を、ＲＡＭディスクイメージ抽出モジュール４５１を用いて抽出されたデータである。本実施の形態においてはＲＡＭディスクイメージ４１２の実体はファイルの形態として説明しているが、ホストコンピュータ１からメモリスティック書き込み装置２へ転送可能な形態であればその形態は問わない。
【０１６３】
ＲＡＭ１３には、転送元ファイル４１１のデータ読み込み用バッファ４２１、ファイルシステム管理情報４２２、ディスク構成パラ−メータデータ４２３、ディスク構成パラ−メータリスト４２４、およびＲＡＭディスク領域４２５が構成されている。
【０１６４】
転送元ファイル４１１のデータ読み込み用バッファ４２１は、転送元ファイル４１１の各ファイルのデータを展開するバッファである。転送元ファイル４１１をＲＡＭディスクに転送する際に用いられる。
【０１６５】
ファイルシステム管理情報４２２はファイルシステム４４１で使用する内部データを保持する領域である。ファイルシステム４４１の管理対象となる記録メディアの構成に関する情報を保持するディスク構成パラメータデータ４２３や各ファイルの情報などを保持する。この内容はファイルシステムによって異なる。
【０１６６】
ディスク構成パラメータリスト４２４には、記録メディアの種類・容量に対応したディスク構成パラメータのリストが保持される。リストの数はアプリケーションが作成可能なＲＡＭディスクイメージの種類に応じて異なる。
【０１６７】
ユーザが選択した記録メディア及びその容量に応じて、ディスク構成パラメータ選択モジュール４３２は、ディスク構成パラメータリスト４２４からそれに対応したディスク構成パラメータを検索し、その設定値を返す。
【０１６８】
このとき、アプリケーション４３１がディスク構成パラメータリスト４２４に登録されているディスク構成パラメータの一覧をディスプレイ等に表示させるようにし、ユーザに使用するディスク構成パラメータを選択させ、入力部２１を操作して指示させるようにしてもよい。
【０１６９】
このディスク構成パラメータはＲＡＭディスクドライバ４４５の初期化時にＲＡＭディスク領域４２５のディスク構成パラメータの配置される位置に書き込まれる。
【０１７０】
ＲＡＭディスク領域４２５はファイルシステム４４１が管理する記録媒体の代わりとなる領域である。ＲＡＭ１３上に作成される性質上、１バイト単位で読み書きが可能であるが、ファイルシステム４４１からは、互換となる記録メディア（メモリスティック５）と同じセクタ単位（複数バイトの単位）でのみ読み書きが行われる。ＲＡＭディスク領域４２５には、ファイルシステム４４１によって、その初期化時に予め読み込まれるディスク構成パラメータが書き込まれている。ディスク構成パラメータの内容及びその配置などはファイルシステムによって異なる。
【０１７１】
なお、以下において、ファイルシステム４４１とＲＡＭディスク領域４２５をあわせたのものを「ＲＡＭディスク」と称する。
【０１７２】
ＣＰＵ１１において実行されるアプリケーション４３１は、ファイルシステム４４１のユーザインタフェースとして動作し、容易にＲＡＭディスクイメージを作成することができるようなインタフェースをユーザに提供する部分である。このアプリケーション４３１の仕様は、利用用途等により任意である。
【０１７３】
図１５において、アプリケーション４３１には、ユーザがファイルシステム４４１で管理されるメモリスティック５と互換性のあるＲＡＭディスクイメージ４１２を作成できるようにする、ディスク構成パラメータ選択モジュール４３２が含まれている。
【０１７４】
ディスク構成パラメータ選択モジュール４３２は、どの容量のメモリスティック５と互換性のあるＲＡＭディスクイメージ４１２を作成するのかをユーザに選択させ、選択した結果に応じたディスク構成パラメータを返すモジュールである。ＲＡＭディスクイメージ作成モジュール４３３は、転送元ファイル４１１の各ファイルをＲＡＭディスクに転送する処理を行う。
【０１７５】
ファイルシステム４４１は、ＯＳに組み込まれているようなものではなく、ハードウェア等の組込みシステムなどで使用するような、独立して動作するもので、さらに、ファイルシステムコアとドライバ部が独立しており、ドライバ部が交換可能な状態である。
【０１７６】
ファイルシステム４４１は、インターフェースモジュール４４２、ファイルシステコア４４３、ＲＡＭディスクドライバ４４５から成る。インターフェースモジュール４４２は、ファイルシステム４４１に対する各種の操作を受け付けるインタフェースを提供する。
【０１７７】
ユーザあるいはアプリケーション４３１は、このインターフェースモジュール４４２を介して、ファイルシステム４４１の初期化を行ったり、ディレクトリを作成をしたり、ファイルを作成してそのファイルにデータを書き込んだりする。
【０１７８】
ファイルシステムコア４４３は、ファイルシステムの中核の部分である。ファイルシステムコア４４３のドライバＩ／Ｆ部４４４は、ファイルシステムコア４４３からの全てのセクタ単位での要求を受け付ける役割を持つ。
【０１７９】
ファイルシステムコア４４３は、例えば、読み込みなら「Ｘ番目のセクタからＮ個分のセクタのデータを、アドレスＰから始まるバッファに読み込む」というようなセクタ単位の要求を行い、書き込みなら「バッファのアドレスＰから始まるデータを、Ｘ番目のセクタからＮ個分のセクタに書き込む」というようなセクタ単位の要求を行う。
【０１８０】
ファイルシステムコア４４３のドライバＩ／Ｆ部４４４は、以上のような要求を取得すると、ＲＡＭディスクドライバ４４５に供給し、このＲＡＭディスクドライバ４４５がＲＡＭディスク領域４２５に対して実際の読み書きを行う。
【０１８１】
ＲＡＭディスクにファイルやディレクトリが作成されると、ＲＡＭディスク領域４２５にはディスクのイメージが書き込まれている。ＲＡＭディスクイメージ抽出モジュール４５１は、ＲＡＭディスク領域４２５の全体、または、ＲＡＭディスク領域４２５の先頭からもっとも後方の書き込みのあったセクタまでを抽出して、その抽出したディスクイメージをＲＡＭディスクイメージ４１２としてファイルに書き出す。
【０１８２】
図１６は、ファイルシステム４４１の詳細な構成例を示す図である。
【０１８３】
ファイルシステム４４１のインターフェースモジュール４４２は、ファイルシステム４４１の初期化５０１−１、ファイル開く５０１−２、ファイル作成５０２−３、ファイル書き込み５０１−４、ファイル読み込み５０１−５、ファイル閉じる５０１−６、ディレクトリ作成５０１−７、ディレクトリ削除５０１−８、ディレクトリ移動５０１−９、ファイル日付・時刻設定５０１−１０、および、ファイル属性変更５０１−１１等の操作を含む各種の操作を受け付けるインタフェースをユーザまたはアプリケーション４３１等に提供する。
【０１８４】
インターフェースモジュール４４２は、ファイルシステムコア４４３を利用して提供する機能を実現する。ファイルシステムコア４４３は、ファイルシステム４４１の中核になる部分であり、詳細な仕様はファイルシステム４４１の種類によって異なる。
【０１８５】
クラスタ管理５０２は、セクタの集まりであるクラスタ単位の要求をセクタ単位の要求に変換するクラスタ／セクタ変換テーブル５０２Ａを有しており、クラスタを管理する機能を備えている。
【０１８６】
ファイルシステムコア４４３は、直接、ＲＡＭ１３のＲＡＭディスク領域４２５に読み書きを行うことはなく、ＲＡＭディスク領域４２５に対する全ての読み書きの要求は、ファイルシステムコア４４３に含まれるドライバＩ／Ｆ部４４４によって行われる。ドライバＩ／Ｆ部４４４には、少なくとも、要求を受け付けるインタフェースである、ＤＩＦ（Ｄｒｉｖｅｒ　ＩｎｔｅｒＦａｃｅ）論理セクタ読み込み５０３と、ＤＩＦ論理セクタ書き込み５０４が含まれており、これらがファイルシステムコア４４３から供給されるセクタ単位の要求を全て受け付ける。
【０１８７】
ＤＩＦ論理セクタ読み込み５０３にパラメータとして、例えば、セクタ番号（論理セクタ番号）、セクタ数、およびデータバッファアドレスを渡すと、ＤＩＦ論理セクタ読み込み５０３は、セクタ番号からセクタ数分のデータをデータバッファアドレスへ読み込むように、ドライバ４４５に要求を出す。
【０１８８】
また、ＤＩＦ論理セクタ書き込み５０４にパラメータとして、例えば、セクタ番号（論理セクタ番号）、セクタ数、およびデータバッファアドレスを渡すと、データバッファアドレスのデータを、セクタ番号からセクタ数分のセクタに書き込むように、ドライバ４４５に要求を出す。
【０１８９】
ドライバＩ／Ｆ部４４４のＤＩＦ論理セクタ読み込み５０３とＤＩＦ論理セクタ書き込み５０４は、実際にＲＡＭディスク領域４２５への読み書きは行わず、ファイルシステム４４１に「結び付けられた」ＲＡＭディスクドライバ４４５に要求処理を供給するだけであり、ＲＡＭディスク領域４２５への読み書きは、ＲＡＭディスクドライバ４４５が行う。
【０１９０】
ＲＡＭディスクドライバ４４５は、ＲＡＭディスク領域４２５に実際に読み書きを行うものであり、ファイルシステムコア４４３に対して、少なくとも、論理セクタ読み込み５１１と、論理セクタ書き込み５１２というインタフェースを備えている。
【０１９１】
論理セクタ読み込み５１１にパラメータとして、例えば、セクタ番号（論理セクタ番号）、セクタ数、および、データバッファアドレスを渡すと、ＲＡＭディスク領域４２５の論理セクタ番号からセクタ数分のデータをデータバッファアドレスへ読み込む。
【０１９２】
論理セクタ書き込み５１２にパラメータとして、例えば、セクタ番号（論理セクタ番号）、セクタ数、およびデータバッファアドレスを渡すと、データバッファアドレスのデータをＲＡＭディスク領域４２５のセクタ番号からセクタ数分のセクタに書き込む。
【０１９３】
ＲＡＭディスク領域４２５は、ファイルシステム４４１の管理の対象となるＲＡＭ１３上の記録領域であり、ファイルのデータ、ファイルの付加情報（ファイル名や属性）、およびディレクトリ構造などが記録される。
【０１９４】
ＲＡＭディスク４２５には、そのデータ構成を決定するディスク構成パラメータ５２１が存在する。ディスク構成パラメータ５２１の内容、サイズ、およびＲＡＭディスク上の配置位置は、ファイルシステム４４１によって異なるが、通常、記録領域の先頭に配置される。
【０１９５】
これにはセクタ当たりのバイト数、システム情報５２２の中に含まれる各項目の位置およびサイズ、並びに、データ領域５２３の開始位置およびサイズ等の設定値が含まれる。
【０１９６】
また、システム領域５２２の仕様もファイルシステム４４１によって異なるが、通常、システム領域５２２は、ファイルシステム４４１が使用する領域であり、各ファイルの情報やディレクトリ構造の情報などが含まれる。
【０１９７】
データ領域５２３は、実際のファイルのデータが書き込まれる領域であり、その領域のデータは、ファイルシステム４４１により、所定のバイト数単位で読み書きされる。
【０１９８】
次に、動作について説明する。
【０１９９】
データの読み込みの場合、ファイルシステムコア４４３からの論理セクタ読み込み要求は、ＤＩＦ論理セクタ読み込み５０３に渡される。ＤＩＦ論理セクタ読み込み５０３は、ファイルシステムコア４４３と結び付けられたＲＡＭディスクドライバ４４５の論理セクタ読み込み５１１を呼び出す。
【０２００】
論理セクタ読み込み５１１は、論理・物理セクタ変換５１３を使用して論理セクタを物理セクタに変換し、さらに、物理セクタ読み込み５１４を用いて、ＲＡＭディスク領域４２５の物理セクタからデータを読み込み、そのデータを、パラメータにより指定されたデータバッファアドレスに格納する。
【０２０１】
データの書き込みの場合、ファイルシステムコア４４３からの論理セクタ書き込み要求は、ＤＩＦ論理セクタ書き込み５０４に渡される。ＤＩＦ論理セクタ書き込み５０４は、ファイルシステムコア４４３と結び付けられたＲＡＭディスクドライバ４４５の論理セクタ書き込み５１２を呼び出す。
【０２０２】
論理セクタ書き込み５１２は、論理・物理セクタ変換５１３を使用して論理セクタを物理セクタに変換し、さらに、物理セクタ書き込み５１５を用いて、ＲＡＭディスク領域４２５の物理セクタに、パラメータにより指定されたデータバッファアドレスのデータを書き込む。
【０２０３】
なお、ファイルシステム４４１の初期化時にファイルシステムコア４４３と、ＲＡＭディスクドライバ４４５を「結び付ける」仕組みとして、様々な方法が考えられるが、例えば、ポインタと構造体を扱えるＣ言語等の言語において、「Ｄｒｉｖｅｒ」という構造体が定義されるようにし、ファイルシステムコア４４３の内部管理情報５０５の選択ドライバ５０７が、要素として、論理セクタ読み込み５１１を行う関数へのポインタと、論理セクタ書き込み５１２を行う関数へのポインタを保持できるようにする。
【０２０４】
そして、ドライバＩ／Ｆ部４４４のＤＩＦ論理セクタ読み込み５０３の内部では、Ｄｒｉｖｅｒ構造体のポインタを介して論理セクタ読み込み５１１を行う関数が呼び出されるようにし、ドライバＩ／Ｆ部４４４のＤＩＦ論理セクタ書き込み５０４の内部では、Ｄｒｉｖｅｒ構造体のポインタを介して論理セクタ書き込み５１２を行う関数が呼び出されるようにする。
【０２０５】
さらに、Ｄｒｉｖｅｒ構造体の要素である、論理セクタ読み込み５１１を行う関数へのポインタと、論理セクタ書き込み５１２を行う関数へのポインタのそれぞれに、ＲＡＭディスク領域４２５への論理セクタ読み込みを行う関数へのポインタと、論理セクタ書き込みを行う関数へのポインタが設定されるように簡略化する。
【０２０６】
そして、この簡略化されたＤｒｉｖｅｒ構造体のポインタが、ファイルシステム４４１の初期化時に、選択ドライバ５０７に設定されるようにする。
【０２０７】
図１７は、ＦＡＴファイルシステムにおける、論理フォーマットの構成例を示す図である。記憶領域５３０は、セクタ単位で管理されており、各セクタに割り当てられた論理セクタ番号５３１と、各セクタに記録されている内容５３２が互いに対応付けられて管理されている。例えば、セクタＬ１の論理セクタ番号は、「０」であり、セクタＬ１にはＭＢＲが記録されている。
【０２０８】
図１７のＦＡＴファイルシステムを、図１６のＲＡＭディスク領域４２５に適用した場合、ＰＢＲ（セクタＬ２）は、ディスク構成パラメータ５２１に当たる部分となり、ＦＡＴ（セクタＬ３）、ＦＡＴ（ハ゛ックアッフ゜）（セクタＬ４）、およびルートディレクトリエントリ（セクタＬ５）は、システム領域５２２に当たる部分となる。
【０２０９】
図１８はメモリスティック５におけるＰＢＲの設定値の例を示す図である。
【０２１０】
メモリスティック５において、図１７のＰＢＲ（セクタＬ２）には、オフセット５４１、サイズ５４２、パラメータ５４３、並びに、容量毎のパラメータ設定値５４４乃至５４９の各値が設定されている。
【０２１１】
各項目画記録される位置（論理セクタ番号５３１）は、ＰＢＲ（セクタＬ２）のＦＡＴの数（Ｐ３）、１ＦＡＴ当たりのセクタ数（Ｐ５）、およびＲｏｏｔ　Ｄｉｒｅｃｔｏｒｙ　Ｅｎｔｒｙのエントリ数（Ｐ４）等の設定値により決定され、システム領域５２２に記憶される。
【０２１２】
また、１セクタ当たりのバイト数（Ｐ１）は、メモリスティック５のアクセス単位（バイト数）を決定し、１クラスタ当たりのセクタ数（Ｐ２）は、データ領域（５２３）に対する読み書きの単位（バイト数）を決定する。ファイルシステム４４１は、初期化時にＰＢＲ（セクタＬ２）の値を読み込み、管理対象となるメモリスティック５のディスク構成を把握し、これに従って最終的にメモリスティック５からデータを読み込んだり、書き込んだりする。
【０２１３】
なお、ＲＡＭディスク領域４２５は、メモリスティック５の記憶領域と互換性のある記憶領域であり、ファイルシステム４４１は、ＲＡＭディスク領域４２５に対しても同様に動作する。
【０２１４】
図１９は、図１のメモリスティック書き込み装置２のＲＡＭディスクイメージの記録に関する構成の例を示す図である。
【０２１５】
メモリスティック書き込み装置操作インターフェースモジュール６２１は、ユーザがメモリスティック５にＲＡＭディスクイメージ４１２を容易に書き込むことができるようにするインタフェースを実現する。
【０２１６】
メモリスティック書き込み装置操作インターフェースモジュール６２１は、例えば、ＲＡＭディスクイメージ受信モジュール６２２を使って、ホストコンピュータ１からＲＡＭディスクイメージ４１２を受信し、ＲＡＭディスクイメージ格納領域６１１に格納する。
【０２１７】
そして、メモリスティック書き込み装置操作インターフェースモジュール６２１は、ＲＡＭディスクイメージ格納領域６１１に格納されているＲＡＭディスクイメージ４１２を、論理セクタ書き込みモジュール６２４を用いて、メモリスティック５に書き込む。
【０２１８】
なお、メモリスティック書き込み装置操作インターフェースモジュール６２１は、上述した以外の機能を備えていてもよく、その仕様は、利用用途により任意に決定される。
【０２１９】
ＲＡＭディスクイメージ受信モジュール６２１は、ホストコンピュータ１と通信を行い、ホストコンピュータ１からＲＡＭディスクイメージ４１２を受け取り、ＲＡＭディスクイメージ格納領域６１１に配置する。ＲＡＭディスクイメージ書き込みアプリケーション６２３は、論理セクタ書き込みモジュール６２４を使い、メモリスティック５の先頭から連続にＲＡＭディスクイメージ４１２を書き込む。
【０２２０】
論理セクタ書き込みモジュール６２４は、メモリスティック５に対する論理セクタ単位の書き込み機能を提供する。論理セクタで書き込むセクタが指定されると、論理セクタ書き込みモジュール６２４は、指定された論理セクタを物理セクタに変換して、メモリスティックコントローラ制御モジュール６２５を用いて、指定された論理セクタに対応する物理セクタにデータの書き込みを行う。
【０２２１】
メモリスティックコントローラ制御モジュール６２５は、図３のメモリスティックインタフェース１１０を介して、メモリスティック５の物理セクタに、実際にアクセスするモジュールである。
【０２２２】
ところで、論理セクタ書き込みモジュール６２４によるＲＡＭディスクイメージ４１２の書き込み位置は、記録メディアにより異なる。メモリスティック５に記録する場合、図１７に示されるように、ファイルシステムに直接関係のない情報が論理セクタの先頭に書き込まれていて、実際のファイルシステムに関する情報は、論理セクタの先頭から始まっていない。
【０２２３】
図１７において、ＰＢＲ（セクタＬ２）は、ディスク構成に関する情報を保持するディスク構造パラメータ５２１に対応するセクタであり、このセクタより後方のセクタにＲＡＭディスクイメージが記録される。これに対して、論理セクタ０番目からＰＢＲの直前までのセクタには、ファイルシステムとは関係ない情報が含まれる。
【０２２４】
この場合、ＲＡＭディスクイメージ書き込みアプリケーション６２３は、ＭＢＲ（セクタＬ１）を参照し、そのＭＢＲの内容５３３に含まれるＰＢＲ開始セクタ番号（Ｌ７）に基づいてＰＢＲの開始セクタ番号を求め、求められたＰＢＲのあるセクタを先頭に、ＲＡＭディスクイメージを書き込む。
【０２２５】
次に、ホストコンピュータ１およびメモリスティック書き込み装置２による書き込み処理の流れを、図２０のフローチャートを参照して説明する。
【０２２６】
最初に、ステップＳ１０１において、ホストコンピュータ１のＣＰＵ１１は、ファイルシステム４４１のＲＡＭディスクドライバ４４５を用いて、メモリスティック互換のＲＡＭディスク領域４２５を作成し、初期化する。ＲＡＭディスクドライバ４４５による初期化処理については、図２１のフローチャートを参照して後述する。
【０２２７】
そして、ステップＳ１０２において、ＣＰＵ１１は、記憶部２３に記憶されている転送元ファイル４１１を、ＲＡＭディスクドライバ４４５を用いて、作成したＲＡＭディスク領域４２５にコピーする。
【０２２８】
ステップＳ１０３において、ＣＰＵ１１は、ＲＡＭディスク領域４２５全体のデータを、ＲＡＭディスクイメージ４１２として抽出する。抽出したＲＡＭディスクイメージは、一度、記憶部２３に記憶させるようにしても良いし、直接、メモリスティック書き込み装置２に転送するようにしてもよい。
【０２２９】
ステップＳ１０４において、ＣＰＵ１１は、通信部２４を制御して、抽出したＲＡＭディスクイメージ４１２を、ＵＳＢケーブル３を介してメモリスティック書き込み装置２に転送する。そして、転送が終了すると、ＣＰＵ１１は、処理を終了する。
【０２３０】
以上の処理に対応して、メモリスティック書き込み装置２のＣＰＵ１０１は、ステップＳ１１１において、通信インタフェース１２０を制御して、ホストコンピュータ１より出力されたＲＡＭディスクイメージ４１２を取得すると、ステップＳ１１２に処理を進め、取得したＲＡＭディスクイメージを、メモリスティックスロット４に装着されているメモリスティック５に書き込む。
【０２３１】
そして書き込みが完了すると、ＣＰＵ１０１は、処理を終了する。
【０２３２】
次に、ファイルシステム４４１のＲＡＭディスクドライバ４４５による初期化処理を、図２１のフローチャートを参照して説明する。
【０２３３】
最初に、ＲＡＭディスクドライバ４４５は、ステップＳ１３１において、データの最終的な書き込み先であるメモリスティック５の容量と同じ容量の領域を、ＲＡＭ１３の記憶領域において確保し、その先頭アドレスを記憶する。
【０２３４】
そして、ステップＳ１３２において、ＲＡＭディスクドライバ４４５は、メモリスティック５のディスク構成パラメータと同じパラメータを、ＲＡＭディスク領域４２５のディスク構成パラメータ５２１の位置に書き込み、初期化処理を終了する。
【０２３５】
図２０のステップＳ１０２において、ＣＰＵ１１は、図１６を参照して説明したように、ファイルシステム４４１のＲＡＭディスクドライバ４４５を用いて、データをＲＡＭディスク領域４２５のデータ領域５２３に記録する。
【０２３６】
ホストコンピュータ１においては、ＲＡＭディスク領域４２５に対するデータの読み書きは、全て、ＲＡＭディスクドライバ４４５を介して行われる。
【０２３７】
このＲＡＭディスクドライバによる論理セクタ読み込み処理を、図２２のフローチャートを参照して説明する。
【０２３８】
最初に、ステップＳ１５１において、ＲＡＭディスクドライバ４４５は、初期化処理を行い、所定のパラメータを設定する。
【０２３９】
ＲＡＭディスクドライバ４４５には、ファイルシステムコア４４３のドライバインタフェース部４４４の機能であるＤＩＦ論理セクタ読み込み５０３により、セクタ番号（Ｓ）、セクタ数（ＳＮ）、およびデータバッファアドレス（ＢＵＦ）が供給される。
【０２４０】
次に、ステップＳ１５２において、ＲＡＭディスクドライバ４４５は、指定されたパラメータによる領域が、ＲＡＭディスク領域内に収まるか否かを判定する。ＲＡＭディスク領域内に収まると判定した場合、ＲＡＭディスクドライバ４４５は、処理をステップＳ１５３に進め、ＲＡＭディスク領域内の、指定された領域のデータを抽出し、論理セクタ読み込み処理を終了する。
【０２４１】
また、ステップＳ１５４において、指定されたパラメータによる領域がＲＡＭディスク領域内に収まらないと判定した場合、ＲＡＭディスクドライバ４４５は、処理をステップＳ１５４に進め、エラー処理を行い、論理セクタ読み込み処理を終了する。
【０２４２】
ファイルシステム４４１のＲＡＭディスクドライバ４４５は、１セクタ当たりのバイト数（ＢｙｔｅｓＰｅｒＳｅｃｔｏｒ）を予め把握しており、この１セクタ当たりのバイト数（ＢｙｔｅｓＰｅｒＳｅｃｔｏｒ）を用いて、取得したパラメータを演算し、（Ｓ＋Ｓｎ）×（ＢｙｔｅｓＰｅｒＳｅｃｔｏｒ）がＲＡＭディスク領域４２５の外に位置しないかどうかを判定して（ステップＳ１５２）、位置するならエラーを返すようにし（ステップＳ１５４）、ＲＡＭディスク領域内に位置するのであれば、ＲＡＭディスク領域の先頭アドレス＋（Ｓ×ＢｙｔｅｓＰｅｒＳｅｃｔｏｒ）から（ＳＮ＊ＢｙｔｅｓＰｅｒＳｅｃｔｏｒ）バイト分のデータを読み出し、データバッファアドレス（ＢＵＦ）に書き込む（ステップＳ１５３）。
【０２４３】
次に、このＲＡＭディスクドライバ４４５による論理セクタ書き込み処理を、図２３のフローチャートを参照して説明する。
【０２４４】
最初に、ＲＡＭディスクドライバ４４５は、ステップＳ１７１において、初期化処理を行い、パラメータを設定する。
【０２４５】
ＲＡＭディスクドライバ４４５には、ファイルシステムコア４４３のドライバインタフェース部４４４の機能であるＤＩＦ論理セクタ書き込み５０４により、セクタ番号（Ｓ）、セクタ数（ＳＮ）、およびデータバッファアドレス（ＢＵＦ）が供給される。
【０２４６】
そして、ステップＳ１７２において、指定されたパラメータによる領域が、ＲＡＭディスク領域内４２５に収まるか否かを判定する。
【０２４７】
収まると判定した場合、ＲＡＭディスクドライバ４４５は、処理をステップＳ１７３に進め、バッファに保持されている書き込みデータを、ＲＡＭディスク領域４２５の指定されたアドレスに、所定のバイト毎に転送する。
【０２４８】
そして、ＲＡＭディスクドライバ４４５は、ステップＳ１７４において、処理しているセクタが最終セクタであるか否かを判定し、最終セクタではないと判定した場合、処理をステップＳ１７３に戻し、それ以降の処理を繰り返す。
【０２４９】
処理しているセクタが最終セクタであると判定した場合、ＲＡＭディスクドライバ４４５は、処理をステップＳ１７５に進め、最後の書き込みセクタとして保存し、論理セクタ書き込み処理を終了する。
【０２５０】
また、ステップＳ１７２において、指定されたパラメータによる領域がＲＡＭディスク領域内に収まっていないと判定した場合、ＲＡＭディスクドライバ４４５は、ステップＳ１７６において、エラー処理を行い、論理セクタ書き込み処理を終了する。
【０２５１】
書き込みの場合、ＲＡＭディスクドライバ４４５は、書き込みのあった一番後方のセクタ番号を保存する。これは後にＲＡＭディスク領域４２５からＲＡＭディスクイメージ４１２を抽出するのに必要な値である。ＲＡＭディスクドライバ４４５は、（Ｓ＋ＳＮ−１）が現在まで書き込みのあったセクタ番号よりも大きい場合、（Ｓ＋ＳＮ−１）を、書き込みのあった一番後方のセクタ番号として保存する。ＲＡＭディスクの場合、セクタが連続しているため一番後方の論理セクタは物理的にも一番後方にあることが保証される。
【０２５２】
以上のようにして、ＲＡＭディスク領域４２５を用いて、作成されたＲＡＭディスクイメージ４１２は、メモリスティック書き込み装置２に転送される。メモリスティック書き込み装置２のＣＰＵ１０１は、図１３のフローチャートを参照して説明したように、ＲＡＭディスクイメージ４１２を取得し、図１４のフローチャートを参照して説明したように、取得したＲＡＭディスクイメージ４１２をメモリスティック５に書き込む。
【０２５３】
ところで、メモリスティック５の記憶領域は、セクタ（物理セクタ）という複数バイトのまとまった単位で均等に区切られている。従って、メモリスティック５の記憶領域は、セクタ単位でしか読み書きを行えない。この物理セクタのセクタ番号は、図２４の右側のメモリスティック５のように順番に０番目から順番に並んでいるが、例えば、セクタ番号３のセクタのように不良で読み書きできないセクタが存在し、連続していない場合がある。
【０２５４】
ある連続したデータの塊を先頭から順番に物理セクタの０番目から書き込む場合を考える。セクタ当たりのバイト数を５１２バイトとすると、このときデータの最初の５１２バイトは物理セクタ０番目、５１２バイト目から５１２バイトは物理セクタ１番目に書き込まれる。
【０２５５】
ここでもし、図２４に示されるように、物理セクタの３番目が不良だった場合、３セクタ目の部分は書き込まれないことになり、メモリスティック５に書き込まれたデータには空白ができてしまい、結果データは正しく書き込まれていないことになる。
【０２５６】
この場合、連続したデータの塊を書き込む際に不良セクタによるデータの空白が生じないようにするために、物理セクタの順番を並び替え、見かけ上連続したセクタに見せる必要がある。
【０２５７】
図２４のＲＡＭディスク領域６１１には、連続した領域にデータが記録されている。このデータをメモリスティック５の物理セクタと同じバイト数で均等に分割し、連続したセクタ番号を割り当てる。このときＲＡＭディスク領域６１１は、セクタ番号が０番目から順番に連続してならんでおり、途中に空白のセクタが存在しない。このセクタを「論理セクタ」とし、論理セクタと物理セクタの対応付けができれば、見かけ上連続したデータの書き込みが行えるようになる。図２４においては、論理セクタ・物理セクタ変換テーブル６３１を用いて変換が行われている。
【０２５８】
論理セクタ番号３のセクタに対応する物理セクタ番号３のセクタに不良が生じると、予備の物理セクタが検索され、論理セクタ・物理セクタ変換テーブル６３１において、論理セクタ番号３のセクタと、物理セクタ番号Ｎの予備のセクタが改めて対応付けられる。
【０２５９】
この機構により、論理セクタには物理セクタが必ず対応されており、ＲＡＭディスクイメージ４１２を「見かけ上」連続して書き込めるようになる。
【０２６０】
読み込みも同様に行われ、メモリスティック上ではデータがバラバラに配置されていても、上述したように、それらの物理セクタが連続した論理セクタに対応付けられているので、連続したデータとして読み込みが行えるようになる。
【０２６１】
この仕組みは、ホストコンピュータ１のファイルシステム４４１におけるＲＡＭディスクドライバ４４５においても、メモリスティック書き込み装置２における論理セクタ書き込みモジュール６２４においても重要である。
【０２６２】
ファイルシステム４４１におけるドライバ４４５において、論理・物理セクタ変換５１３は、論理セクタと物理セクタの変換を行っている。上述したように、Ｘ番の論理セクタへの書き込みの際、Ｘ番の論理セクタがＹ番の物理セクタに対応付けられており、データがＹ番の物理セクタに書き込まれる場合がある。しかしながら、読み込みの際にも、論理セクタから物理セクタへの変換が行われるので、Ｘ番の論理セクタの読み込みに対しては、Ｙ番の物理セクタが読み込まれるようになる。従って、Ｘ番目の論理セクタに書き込まれたデータは、必ずＸ番目の論理セクタを読み込めば取得できるようになっている。このように、連続したデータが論理セクタ順に書き込まれた場合、論理セクタ順に読み出すことにより、正しいデータとして読み出すことができる。
【０２６３】
以上のような論理・物理変換を伴う、メモリスティック書き込み装置２による変換書き込み処理について、図２５のフローチャートを参照して説明する。
【０２６４】
最初に、メモリスティック書き込み装置２の論理セクタ書き込みモジュール６２４は、ステップＳ１９１において、初期化処理を行い、各種のパラメータを設定する。例えば、論理セクタ書き込みモジュール６２４は、指定された論理セクタ番号を変数ＳｅｃｔＮｏとし、書き込むデータのあるバッファアドレスを変数Ｂｕｆとする。
【０２６５】
ステップＳ１９２において、論理セクタ書き込みモジュール６２４は、論理セクタ・物理セクタ変換テーブル６３１を用いて、論理セクタを物理セクタに変換する。
【０２６６】
そしてステップＳ１９３において、論理セクタ書き込みモジュール６２４は、ステップＳ１９２の変換により得られた物理セクタに、指定されたバッファアドレス（Ｂｕｆ）に保持されているデータを書き込む。
【０２６７】
論理セクタ書き込みモジュール６２４は、ステップＳ１９４に処理を進め、データを正常に書き込めたか否かを判定し、正常に書き込めた場合は、変換書き込み処理を終了する。
【０２６８】
データを正常に書き込めなかったと判定した場合（エラーを取得した場合）、論理セクタ書き込みモジュール６２４は、処理をステップＳ１９５に進め、取得したエラーが致命的なエラーであるか否かを判定する。
【０２６９】
得られたエラーが致命的であると判定した場合、論理セクタ書き込みモジュール６２４は、処理をステップＳ１９６に進め、予備セクタの空きを検索し、ステップＳ１９７において、予備セクタに空のセクタが存在するか否かを判定する。
【０２７０】
空のセクタが存在すると判定した場合、論理セクタ書き込みモジュール６２４は、処理をステップＳ１９８に進め、予備セクタに対して書き込みを行う。
【０２７１】
そして、ステップＳ１９９において、予備セクタにデータを正常に書き込めたか否かを判定する。正常に書き込めていないと判定した場合、論理セクタ書き込みモジュール６２４は、処理をステップＳ１９５に戻し、それ以降の処理を繰り返す。
【０２７２】
予備セクタにデータを正常に書き込めたと判定した場合、論理セクタ書き込みモジュール６２４は、処理をステップＳ２００に進め、論理セクタ・物理セクタ変換テーブル６３１を更新し、変換書き込み処理を終了する。
【０２７３】
ステップＳ２０１において、得られたエラーが致命的なエラーではない（そのセクタに書き込むことができる可能性がある）場合、論理セクタ書き込みモジュール６２４は、処理をステップＳ２０１に進め、所定の回数を超えたか否かを判定する。
【０２７４】
所定の回数を超えていないと判定した場合、論理セクタ書き込みモジュール６２４は、処理をステップＳ１９３に戻し、それ以降の処理を繰り返す。
【０２７５】
逆に、所定の回数を超えたと判定した場合、論理セクタ書き込みモジュール６２４は、処理をステップＳ２０２に進め、エラー処理を行い、変換書き込み処理を終了する。
【０２７６】
また、ステップＳ１９７において、空のセクタが存在しないと判定した場合、論理セクタ書き込みモジュール６２４は、処理をステップＳ２０２に進め、エラー処理を行った後、変換書き込み処理を終了する。
【０２７７】
以上のように書き込み処理を行うことで、論理セクタ書き込みモジュール６２４は、メモリスティック５の記憶領域に不良セクタが存在する場合においても、データを正常に書き込むことができる。
【０２７８】
以上のようにして、図１のメモリスティック情報書き込みシステムは、ホストコンピュータ１において、ＲＡＭディスクを用いて、メモリスティック２にデータを転送し、メモリスティック５に書き込むことにより、複数のメモリスティック５に対する書き込みにおいて、書き込み処理を高速に行うことができる。
【０２７９】
なお、以上においては、ホストコンピュータ１にメモリスティック５の記憶領域と同じ容量のＲＡＭディスク領域４２５を作成するように説明したが、これに限らず、ＲＡＭディスク領域４２５がメモリスティック５の記憶領域より小さい領域であってもよい。その場合、作成されたＲＡＭディスクイメージのデータサイズは、メモリスティック５の記憶領域より小さいが、このデータサイズのＲＡＭディスクイメージを複数作成し、合計のデータサイズがメモリスティック５の記憶領域の容量と同じになる個数のＲＡＭディスクイメージを１組として、連続して転送するようにしてもよい。
【０２８０】
また、メモリスティック書き込み装置２のＲＡＭ１０３の記憶領域が、メモリスティック５の記憶領域より小さい場合、ホストコンピュータ１が、ＲＡＭディスクイメージを、ＲＡＭ１０３に格納できるようなバイト数単位で分割してから、順次転送していくようにしてもよい。その際、メモリスティック書き込み装置２は、分割されたＲＡＭディスクイメージを取得してＲＡＭ１０３に保持すると、そのデータをメモリスティック５に書き込むようにし、順次転送されてくるデータを取得し、保持し、メモリスティック５に書き込んでいくようにする。
【０２８１】
なお、以上においては、ホストコンピュータ１台に対し、メモリスティック書き込み装置２を１台接続するように説明したが、これに限らず、ホストコンピュータ１台に対し、メモリスティック書き込み装置２を何台接続してもよい。
【０２８２】
つまり、ホストコンピュータ１台に、複数のメモリスティック書き込み装置２を接続する場合も、それぞれのメモリスティック書き込み装置２に対してファイルシステムイメージデータを転送すれば、上述したメモリスティック書き込み装置１台の場合と同様の処理を行うことができる。
【０２８３】
従って、１台のホストコンピュータ１に、複数のメモリスティック書き込み装置２を接続することができるので、上述したメモリスティック情報書き込みシステムに必要な管理、操作、および維持等に必要なコストや人員の増大を抑制することができる。
【０２８４】
なお、メモリスティック書き込み装置２は、１度に１枚のメモリスティック５への書き込みを行うように説明したが、これに限らず、何枚のメモリスティック５を同時に装着し、書き込むことができるようにしてもよい。
【０２８５】
また、上述したメモリスティック情報書き込みシステムにおけるホストコンピュータ１およびメモリスティック書き込み装置２の一部および全部が一体化していてもよく、上述した場合で一体化しているとして説明した部分が、別体として構成されていてもよい。
【０２８６】
さらに、メモリスティック書き込み装置２は、その他の機能を有していてもよく、例えば、メモリスティック５に記録されているデータを読み出す機能を備えたリーダ／ライタであってもよい。また、メモリスティック書き込み装置２は、例えば、パーソナルコンピュータ、ＰＤＡ、デジタルカメラなどのような、ホストコンピュータ１とは異なる機器の一部として構成されていてももちろんよい。
【０２８７】
なお、メモリスティック情報書き込みシステムについて説明したが、これに限らず、例えば、ＳＤカード（Ｓｅｃｕｒｅ　Ｄｉｇｉｔａｌ　ｍｅｍｏｒｙ　ｃａｒｄ）（商標）、コンパクトフラッシュ（登録商標）などのＦＬＡＳＨ　ＲＯＭを用いたメモリカードなどのような記録媒体であればなんでもよい。その場合、ホストコンピュータ１において、ＲＡＭ１３に作成されるファイルシステムイメージデータ３１０は、記録するメモリカードが採用するファイルシステムと同じファイルシステムで作成される。また、メモリカードへのデータ記録方法、およびメモリカードの検知方法等についても、メモリカードの規格に応じた方法で行われる。
【０２８８】
さらに、以上の処理は、ハードウェアにより実行することができるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、ネットワークや記録媒体からインストールされる。
【０２８９】
この記録媒体は、図２または図３に示すように、装置本体とは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク４１または１４１（フロッピディスクを含む）、光ディスク４２または１４２（ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ　Ｄｉｓｋ−Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ），ＤＶＤ（Ｄｉｇｉｔａｌ　Ｖｅｒｓａｔｉｌｅ　Ｄｉｓｋ）を含む）、光磁気ディスク４３または１４３（ＭＤ（Ｍｉｎｉ−Ｄｉｓｋ）を含む）、もしくは半導体メモリ４４または１４４などよりなるパッケージメディアにより構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される、プログラムが記録されているＣＰＵ１１またはＣＰＵ１０１に内蔵されているＲＯＭなどで構成される。
【０２９０】
また、ネットワークは、図１に示すＵＳＢケーブル３であってもよく、メモリスティック書き込み装置２において実行されるプログラムを、ホストコンピュータ１よりＵＳＢケーブル３を介して供給するようにしてもよい。
【０２９１】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０２９２】
【発明の効果】
以上のように、本発明の情報処理システムによれば、メモリカードにデータを書き込むことができる。特に、複数のメモリカードに対しても、データの書き込み作業を、高速、かつ容易に行うことができる。
【０２９３】
また、本発明の第１の情報処理装置および方法、第１の記録媒体、並びに第１のプログラムによれば、メモリカードにデータを書き込むことができる。特に、外部より取得した、メモリカードに記録される際のデータ形式で構成される、メモリカードに記録するデータを保持し、複数のメモリカードに対して連続して書き込み作業を行うことができる。
【０２９４】
さらに、本発明の第２の情報処理装置および方法、第２の記録媒体、並びに第２のプログラムによれば、データを作成することができる。特に、メモリカードに記録するデータを、メモリカードに記録する際のデータ形式で作成し、転送することができる。
【図面の簡単な説明】
【図１】本発明を適用した、メモリスティック情報書き込みシステムの基本的な構成例を示すブロック図である。
【図２】図１に示すホストコンピュータの構成例を示す図である。
【図３】図１に示すメモリスティック書き込み装置の構成例を示す図である。
【図４】図１に示すメモリスティックの構成例を示す図である。
【図５】メモリスティックに設けられた外部端子の構成例を示す図である。
【図６】フラッシュメモリに記録されるデータのデータ構造の階層の例について示す図である。
【図７】フラッシュメモリにおけるＦＡＴファイルシステムの構成例を示す図である。
【図８】ＭＢＲの構成例を示す図である。
【図９】ＰＢＲの構成例を示す図である。
【図１０】ホストコンピュータによる書き込みデータ入力処理を説明するフローチャートである。
【図１１】ホストコンピュータによる書き込みデータ入力処理を説明する図１０に続くフローチャートである。
【図１２】ＲＡＭ１３に生成された仮想ドライブ領域の構成例を示す図である。
【図１３】メモリスティック書き込み装置によるファイルシステムイメージデータ取得処理について説明するフローチャートである。
【図１４】メモリスティック書き込み装置によるファイルシステムイメージデータ書き込み処理を説明するフローチャートである。
【図１５】図１のホストコンピュータの、ＲＡＭディスクに関する構成の例を示す模式図である。
【図１６】ファイルシステムの詳細な構成例を示す図である。
【図１７】ＦＡＴファイルシステムにおける、論理フォーマットの構成例を示す図である。
【図１８】メモリスティックにおけるＰＢＲの設定値の例を示す図である。
【図１９】メモリスティック書き込み装置のＲＡＭディスクイメージの記録に関する構成の例を示す図である。
【図２０】ホストコンピュータおよびメモリスティック書き込み装置による書き込み処理の流れを説明するフローチャートである。
【図２１】ＲＡＭディスクドライバによる初期化処理を説明するフローチャートである。
【図２２】ＲＡＭディスクドライバによる論理セクタ読み込み処理を説明するフローチャートである。
【図２３】ＲＡＭディスクドライバによる論理セクタ書き込み処理を説明するフローチャートである。
【図２４】論理セクタと物理セクタの関係を示す図である。
【図２５】メモリスティック書き込み装置による変換書き込み処理を説明するフローチャートである。
【符号の説明】
１　ホストコンピュータ，　２　メモリスティック書き込み装置，　３　ＵＳＢケーブル，　４　メモリスティックスロット，　５　メモリスティック，　３１ＵＳＢコネクタ，　１１０　メモリスティックインタフェース，　１２０　通信インタフェース，　１２１　ＵＳＢコネクタ，　２５３　クラスタ群，　２５４　セクタ群，　２６２　ＦＡＴ，　３００　仮想ドライブ領域，　３１０　ファイルシステムイメージデータ，　４２５　ＲＡＭディスク領域，　４４１　ファイルシステム，　４４５　ＲＡＭディスクドライバ，　５０７　選択ドライバ，　５２１ディスク構成パラメータ，　６２３　ＲＡＭディスクイメージ書き込みアプリケーション
【図１】
2004005343.tif 000003
【図２】
2004005343.tif 000004
【図３】
2004005343.tif 000005
【図４】
2004005343.tif 000006
【図５】
2004005343.tif 000007
【図６】
2004005343.tif 000008
【図７】
2004005343.tif 000009
【図８】
2004005343.tif 000010
【図９】
2004005343.tif 000011
【図１０】
2004005343.tif 000012
【図１１】
2004005343.tif 000013
【図１２】
2004005343.tif 000014
【図１３】
2004005343.tif 000015
【図１４】
2004005343.tif 000016
【図１５】
2004005343.tif 000017
【図１６】
2004005343.tif 000018
【図１７】
2004005343.tif 000019
【図１８】
2004005343.tif 000020
【図１９】
2004005343.tif 000021
【図２０】
2004005343.tif 000022
【図２１】
2004005343.tif 000023
【図２２】
2004005343.tif 000024
【図２３】
2004005343.tif 000025
【図２４】
2004005343.tif 000026
【図２５】
2004005343.tif 000027