(57)【要約】【課題】  データ転送の効率化を図ることにある。【解決手段】  ホスト（１００）と、このホストによってアクセス可能なメディア（３００）とをインタフェース可能なインタフェース部（２００）を含むデータ転送システムにおいて、上記インタフェース部は、上記ホストから上記メディアに書き込まれるデータ、又は上記メディアから読み出されたデータを保持可能な記憶部（２０２）と、上記ホストから上記メディアへのアクセスにかかるデータが上記記憶部に存在するか否かを判別し、上記メディアへのデータ書き込み又は上記メディアからのデータ読み出しを省略可能な制御部（２０１，２０３，２０４，２０５，２０６）とを設ける。その場合において上記メディアへの重複データ書込みを省略することができ、また、データ読み出しの場合は上記記憶部のデータを使用することにより上記メディアからの読み出し動作を省略することができる。それによって、データ転送の効率化が達成される。【選択図】        図１
2006059201.tif 000002
【特許請求の範囲】
【請求項１】
ホストとシリアル通信によってインターフェース可能であり、上記ホストと上記ホストによってアクセス可能なメディアとをインタフェース可能なインタフェースであって、
上記インタフェースは、上記ホストから上記メディアに書き込まれるデータ、又は上記メディアから読み出されたデータを保持可能な記憶部と、
上記ホストから上記メディアへのアクセスにかかるデータが上記記憶部に存在するか否かを判別し、その判別結果に基づいて、上記メディアへのデータ書き込み又は上記メディアからのデータ読み出しを省略可能な制御部と、を含んで成るインタフェース。
【請求項２】
上記インタフェースはＵＳＢファンクションとされ、上記メディアは不揮発性メモリとされ、上記記憶部に記憶されたデータは、パーティションブートセクタ、ファイルアロケーションテーブル、及びルートディレクトリの何れかに関するものである請求項１記載のインタフェース。
【請求項３】
上記ＵＳＢファンクションはプラグアンドプレイ方式で上記ホストに結合されることが可能に構成される請求項２記載のインタフェース。
【請求項４】
上記インタフェースに対応するソフトウェアと、上記記憶部に保持されたデータとが一致するか否かの判定機能を含む請求項３記載のインタフェース。
【請求項５】
上記ＵＳＢファンクションは、ライト要求がシステムエリアに対するものか否かを判別する第１処理機能と、
上記ライト要求が上記システムエリアに対するものである場合に、上記システムエリアに対応するアドレスのデータが上記記憶部に存在するか否かを判別する第２処理機能と、
上記システムエリアに対応するアドレスのデータが上記記憶部に存在する場合にそのデータと上記ライト要求によって書き込まれるべきライトデータとが等しいか否かを判別する第３処理機能と、を含み、
上記記憶部に存在する上記システムエリアに対応するアドレスのデータと上記ライトデータとが等しい場合には、上記不揮発性メモリへのデータライトを行うことなく、ライト完了ＣＳＷ送信を行う請求項４記載のインタフェース。
【請求項６】
上記ＵＳＢファンクションは、ライト要求がシステムエリアに対するものか否かを判別する第１処理機能と、
上記ライト要求が上記システムエリアに対するものである場合に、上記システムエリアに対応するアドレスのデータが上記記憶部に存在するか否かを判別する第２処理機能と、
上記システムエリアに対応するアドレスのデータが上記記憶部に存在する場合にそのデータと上記ライト要求によって書き込まれるべきライトデータとが等しいか否かを判別する第３処理機能と、を含み、
上記記憶部に存在する上記システムエリアに対応するアドレスのデータと上記ライトデータとが一部においてのみ等しい場合には、その等しい部分については上記不揮発性メモリへのデータライトを行うことなく、ライト完了ＣＳＷ送信を行う請求項４記載のインタフェース。
【請求項７】
上記ＵＳＢファンクションは、リード要求がシステムエリアに対するものか否かを判別する第５処理機能と、
上記リード要求が上記システムエリアに対するものである場合に、上記システムエリアに対応するアドレスのデータが上記記憶部に存在するか否かを判別する第６処理機能と、
上記システムエリアに対応するアドレスのデータが上記記憶部に存在する場合に、そのデータを上記ホストに送信する第７処理機能と、を含み、
上記第７処理機能によるデータ送信の後に、リード完了ＣＳＷ送信を行う請求項５又は６記載のインタフェース。
【請求項８】
上記ＵＳＢファンクションは、リード要求がシステムエリアに対するものか否かを判別する第５処理機能と、
上記リード要求が上記システムエリアに対するものである場合に、上記システムエリアに対応するアドレスのデータが上記記憶部に存在するか否かを判別する第６処理機能と、
上記システムエリアに対応するアドレスのデータの一部が上記記憶部に存在する場合に、そのデータを上記ホストに送信する第７処理機能と、を含み、
上記第７処理機能によるデータ送信の後に、リード完了ＣＳＷ送信を行う請求項５又は６記載のインタフェース。
【請求項９】
ホストと、上記ホストとシリアル通信によってインターフェース可能であり上記ホストによってアクセス可能なメディアとをインタフェース可能なインタフェース部とを含むデータ転送システムであって、
上記ホストは、上記ホストから上記メディアに書き込まれるデータ、又は上記メディアから読み出されたデータを保持可能なバッファと、
上記ホストから上記メディアへのアクセスにかかるデータが上記バッファに存在するか否かを判別し、その判別結果に基づいて、上記メディアへのデータ書き込み又は上記メディアからのデータ読み出しを省略可能な制御部と、を含んで成るデータ転送システム。
【請求項１０】
上記メディアは不揮発性メモリとされ、上記記憶部に記憶されたデータは、パーティションブートセクタ、ファイルアロケーションテーブル、及びルートディレクトリの何れかに関する請求項９記載のデータ転送システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータとデバイスとを結合するためのインタフェース技術に関し、例えばユニバーサルシリアルバス（ＵＳＢ：Universal Serial Bus）を用いたシステムに適用して有効な技術に関する。
【背景技術】
【０００２】
例えば特許文献１に記載されているように、ホストコンピュータ上のＵＳＢポートを介して例えば同機種のＵＳＢファンクションデバイス（ＵＳＢ周辺機器）が複数台接続される場合、ＵＳＢファンクションデバイスそれぞれに固有のＵＳＢ識別番号（ＵＳＢデバイスＩＤ）を持たせ、ホストコンピュータと接続された際このＵＳＢ識別番号（ＵＳＢデバイスＩＤ）をホストコンピュータに送信して、ホストコンピュータ上で動作するＵＳＢファンクションデバイス制御ソフトウェアドライバーが、この識別番号を用いて同機種のＵＳＢファンクションデバイスの判別を行っている。
【０００３】
また、近年、プラグアンドプレイ機能などによる使用の容易さやＵＳＢ転送速度の向上により、メモリカード、フレキシブルディスクなどの外部メディアをリムーバブルディスクとして扱う、ＵＳＢファンクション（デバイス）が数多く発売されている。
【０００４】
【特許文献１】特開２００３−３１６７２０号公報（第２段落）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
一般に、メモリカード、フレキシブルディスクなどの外部メディアをリムーバブルディスクとして扱うシステムではＵＳＢマスストレージ規格を適用して外部メディアにアクセスしている。ＵＳＢホストからのデータの書き込みとデータ読み出し動作について説明する。
【０００６】
図３には、ＵＳＢホストからの書き込み動作が示される。
【０００７】
書き込み動作においては、ＵＳＢホスト１００はＵＳＢマスストレージクラスで定義された書き込みの要求を知らせる為のコマンドであるライト要求ＣＢＷ(Command Block Wrapper)をＵＳＢファンクション２００に発行する（１）。ＵＳＢファンクション２００はライト要求ＣＢＷを受信すると、ライトアドレス（論理アドレス）やデータ数を解析し、そしてライト要求ＣＢＷを外部メディア固有の形式に変換する（２）。変換完了後、ＵＳＢファンクション２００は外部メディア３００にライトコマンドを発行する（３）。外部メディア３００はライトコマンドを受信すると、ライトアドレス（物理アドレス）やデータ数を解析する（４）。ＵＳＢホスト１００はＵＳＢマスストレージクラスで定義された形式でライトデータを、ＵＳＢファンクション２００に送信する（５）。ＵＳＢファンクション２００はライトデータを受信すると、ライトデータを外部メディア固有のデータ形式に変換する（６）。この変換完了後に、ＵＳＢファンクション２００は外部メディアにライトデータを送信する（７）。外部メディア３００はライトデータを受信すると、それをメモリに書き込む（８）。外部メディア３００はデータの書き込みが全て完了すると、完了したことをＵＳＢファンクション２００に通知する（９）。ＵＳＢファンクション２００は、完了通知を受信すると、それをＵＳＢマスストレージクラスで定義された書き込みの完了を知らせる為のコマンドであるライト完了ＣＳＷ(Command Status Wrapper)に変換する（１０）。変換完了後、ＵＳＢファンクション２００はＵＳＢホストにライト完了ＣＳＷを送信する（１１）。ＵＳＢホスト１００はライト完了ＣＳＷを受信すると、ライト動作が終了したことを認識し、それによってライト動作が完了する（１２）。
【０００８】
図４には、ＵＳＢホストからの読み出し動作が示される。
【０００９】
ＵＳＢホスト１００は、ＵＳＢマスストレージクラスで定義されたリード要求ＣＢＷをＵＳＢファンクション２００に発行する（２１）。ＵＳＢファンクション２００は、読み出しの要求を知らせる為のコマンドであるリード要求ＣＢＷを受信すると、リードアドレスやデータ数を解析する。また、リード要求ＣＢＷを外部メディア固有の形式に変換する（２２）。変換完了後、ＵＳＢファンクションは外部メディアにリードコマンドを発行する（２３）。外部メディア３００はリードコマンドを受信すると、リードアドレスやデータ数を解析する（２４）。解析完了後、外部メディア３００はメモリからデータを読み出し、それをＵＳＢファンクションに送信する（２５）。ＵＳＢファンクション２００はリードデータを受信し、それをＵＳＢマスストレージクラスで定義されたデータ形式に変換する（２６）。この変換完了後、ＵＳＢファンクション２００はＵＳＢホスト１００にリードデータを送信する（２７）。ＵＳＢホスト１００はリードデータを受信する（２８）。外部メディア３００はデータの送信が全て完了すると、完了したことをＵＳＢファンクション２００に通知する（２９）。ＵＳＢファンクション２００は完了通知を受信すると、それをＵＳＢマスストレージクラスで定義された読み出しの完了を知らせる為のコマンドであるリード完了ＣＳＷに変換する（３０Ａ）。変換完了後、ＵＳＢファンクション２００はＵＳＢホスト１００にリード完了ＣＳＷを送信する（３０Ｂ）。ＵＳＢホスト１００は、リード完了ＣＳＷを受信すると、リード動作が終了したことを認識し、それによりリード動作が完了する（３０Ｃ）。
【００１０】
上記ＵＳＢホストからのデータの書き込みとデータ読み出し動作について本願発明者が検討したところ、ＵＳＢファンクションと外部メディア間のデータ転送速度は、ＵＳＢホストとＵＳＢファンクション間のデータ転送速度に比較して極めて遅く、改善の必要性のあることが見いだされた。例えば、外部メディアの最大転送速度が１００ＭｂｐｓでＵＳＢ２．０の４８０Ｍｂｐｓの約１／５であり、ＵＳＢファンクションと外部メディア間のデータ転送速度によってシステム全体の速度が律束されている。一般に、外部メディアはＦＡＴ準拠のファイルシステムを持つ。ＦＡＴ準拠のファイルシステムは、図５に示されるように、メディアを管理するシステムエリア（System Area）と実データを蓄えるユーザエリア（User Area）を持つ。システムエリア（System Area）はメディアの容量やアクセス単位などの情報を格納するパーティションブートセクタ（ＰＢＳ：Partition Boot Sector）、ファイルの実データのアドレス情報を格納するファイルアロケーションテーブル（ＦＡＴ：File Allocation Table）、ディレクトリ構成情報を格納するルートディレクトリ（Root Directory）で構成される。このシステムエリアは、ユーザエリア（User Area）に比べリードやライト時に頻繁にアクセスされる。ところが、ＵＳＢファンクション上のＵＳＢアプリケーションは、そのような特性を考慮した設計になっていない。その結果、無駄なデータ転送を生じている。また近年、組み込みシステムの普及に伴い、ＵＮＩＸ（登録商標）、ＴＲＯＮ、独自ＯＳなどにＵＳＢマスストレージクラスが適用されている。ところが、それらのシステムの中にはシステムエリア、及びユーザエリアの最終セクタなどに繰り返しアクセスする仕様となっているものが存在する。その結果、無駄なデータ転送を発生させている。
【００１１】
本発明の目的は、データ転送の効率化を図ることにある。
【００１２】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１３】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１４】
すなわち、ホストとシリアル通信によってインターフェース可能であり、このホストとこのホストによってアクセス可能なメディアとをインタフェース可能なインタフェースにおいて、上記インタフェースは、上記ホストから上記メディアに書き込まれるデータ、又は上記メディアから読み出されたデータを保持可能な記憶部と、上記ホストから上記メディアへのアクセスにかかるデータが上記記憶部に存在するか否かを判別し、その判別結果に基づいて、上記メディアへのデータ書き込み又は上記メディアからのデータ読み出しを省略可能な制御部とを設ける。
【００１５】
上記の手段によれば、制御部は、上記ホストから上記メディアへのアクセスにかかるデータが上記記憶部に存在するか否かを判別し、その判別結果に基づいて、上記メディアへのデータ書き込み又は上記メディアからのデータ読み出しを省略する。つまり、上記ホストから上記メディアへのアクセスにかかるデータが上記記憶部に存在する場合には、対応するデータがメディアに格納されていることを意味する。その場合において上記メディアへの重複データ書込みを省略することができ、また、データ読み出しの場合は上記記憶部のデータを使用することにより上記メディアからの読み出し動作を省略することができる。このことが、データ転送の効率化を達成する。
【００１６】
このとき、上記インタフェースはＵＳＢファンクションとされ、上記メディアは不揮発性メモリとされ、上記記憶部に記憶されたデータは、パーティションブートセクタ、ファイルアロケーションテーブル、及びルートディレクトリの何れかに関するものとすることができる。
【００１７】
上記ＵＳＢファンクションはプラグアンドプレイ方式で上記ホストに結合することができる。
【００１８】
上記インタフェース部に対応するソフトウェアと、上記記憶部保持されたデータとが一致するか否かの判定機能を含めることができる。
【００１９】
また、上記ＵＳＢファンクションは、以下のように構成することができる。
【００２０】
すなわち、上記ＵＳＢファンクションは、ライト要求がシステムエリアに対するものか否かを判別する第１処理機能と、上記ライト要求が上記システムエリアである場合に、上記システムエリアに対応するアドレスのデータが上記記憶部に存在するか否かを判別する第２処理機能と、上記システムエリアに対応するアドレスのデータが上記記憶部に存在する場合にそのデータと上記ライト要求によって書き込まれるべきライトデータとが等しいか否かを判別する第３処理機能とを設け、上記記憶部に存在する上記システムエリアに対応するアドレスのデータと上記ライトデータとが等しい場合には、上記不揮発性メモリへのデータライトを行うことなく、ライト完了ＣＳＷ送信を行うように構成することができる。
【００２１】
上記ＵＳＢファンクションは、ライト要求がシステムエリアに対するものか否かを判別する第１処理機能と、上記ライト要求が上記システムエリアである場合に、上記システムエリアに対応するアドレスのデータが上記記憶部に存在するか否かを判別する第２処理機能と、上記システムエリアに対応するアドレスのデータが上記記憶部に存在する場合にそのデータと上記ライト要求によって書き込まれるべきライトデータとが等しいか否かを判別する第３処理機能とを設け、上記記憶部に存在する上記システムエリアに対応するアドレスのデータと上記ライトデータとが一部においてのみ等しい場合には、その等しい部分については上記不揮発性メモリへのデータライトを行うことなく、ライト完了ＣＳＷ送信を行うように構成することができる。このとき、上記リード要求が上記システムエリアに対するものか否かを判別する第５処理機能と、リード要求が上記システムエリアに対するものである場合に、上記システムエリアに対応するアドレスのデータが上記記憶部に存在するか否かを判別する第６処理機能と、上記システムエリアに対応するアドレスのデータが上記記憶部に存在する場合に、そのデータを上記ホストに送信する第７処理機能とを設け、上記第７処理機能によるデータ送信の後に、リード完了ＣＳＷ送信を行うように構成することができる。
【００２２】
上記ＵＳＢファンクションは、リード要求がシステムエリアに対するものか否かを判別する第５処理機能と、上記リード要求がシステムエリアに対するものである場合に、上記システムエリアに対応するアドレスのデータが上記記憶部に存在するか否かを判別する第６処理機能と、上記システムエリアに対応するアドレスのデータの一部が上記記憶部に存在する場合に、そのデータを上記ホストに送信する第７処理機能とを設け、上記第７処理機能によるデータ送信の後に、リード完了ＣＳＷ送信を行うように構成することができる。
【００２３】
さらに、ホストと、このホストとシリアル通信によってインターフェース可能でありこのホストによってアクセス可能なメディアとをインタフェース可能なインタフェース部とを含むデータ転送システムにおいて、上記ホストから上記メディアに書き込まれるデータ、又は上記メディアから読み出されたデータを保持可能なバッファと、上記ホストから上記メディアへのアクセスにかかるデータが上記バッファに存在するか否かを上記上記ホストで判別し、その判別結果に基づいて、上記メディアへのデータ書き込み又は上記メディアからのデータ読み出しを省略可能な制御部とを上記ホストに設けることができる。このとき、上記メディアは不揮発性メモリとされ、上記記憶部に記憶されたデータは、パーティションブートセクタ、ファイルアロケーションテーブル、及びルートディレクトリの何れかに関するものとされる。
【発明の効果】
【００２４】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００２５】
すなわち、ホストと、このホストによってアクセス可能なメディアとをインタフェース可能なインタフェース部を含むデータ転送システムにおいて、データ転送の効率化を図ることができる。
【発明を実施するための最良の形態】
【００２６】
図１には、本発明にかかるインタフェースを含むデータ転送システムの構成例が示される。図１に示されるデータ転送システムは、特に制限されないが、ＵＳＢホスト１００、ＵＳＢファンクション２００、及び外部メディア３００を含む。
【００２７】
ＵＳＢホスト１００は、アプリケーション１０１、ＵＳＢマスストレージクラスドライバ１０２、ＵＳＢバスドライバ１０３、及びＵＳＢホストコントローラ１０４を含む。アプリケーション１００にはエクスプローラやオーディオプレーヤーなどが含まれる。ＵＳＢマスストレージクラスドライバ１０２はＵＳＢマスストレージクラスで定義されたコマンドトランスポート、データトランスポート、ステータストランスポートの管理などを行う。ＵＳＢバスドライバ１０３はトランザクションの管理などＵＳＢの各クラスに共通な処理を行う。ＵＳＢホストコントローラ１０４は、パケット送受信、ＵＳＢファンクションの接続検出などＵＳＢホストの基本的な処理をする。
【００２８】
ＵＳＢファンクション２００は、アプリケーション２０１、メモリ２０２、ＵＳＢマスストレージクラスファームウェア２０３、外部メディアファームウェア２０４、ＵＳＢファンクションコントローラ２０５、外部メディアホストコントローラ２０６、及び中央処理装置（ＣＰＵ）２０７を含む。特に制限されないが、ＵＳＢファンクション２００は一つの半導体基板上に形成されてもよい。ここで、アプリケーション２０１、ＵＳＢマスストレージクラスファームウェア２０３、外部メディアファームウェア２０４は、ＵＳＢファンクション２００に含まれる中央処理装置（ＣＰＵ）２０７が所定のソフトウェアを実行することにより実現される機能であり、ＵＳＢファンクションコントローラ２０５、及び外部メディアホストコントローラはハードウェアによって実現される機能である。
【００２９】
アプリケーション２０１は、ＵＳＢと外部メディア固有のデータ形式のインタフェースをとる。また、ライト要求ＣＢＷ又はリード要求ＣＢＷを受信すると、それを解析し、システムエリアに対応したデータであれば、メモリ２０２にそれを格納する機能を持つ。メモリ２０２は、不揮発性であるＲＯＭの領域とＲＡＭの領域とを持っており、上記所定のソフトウエアを格納するための領域をＲＯＭ形態にて有しており、ＲＡＭの形態にて上記ＵＳＢホスト１００から上記外部メディア３００に書き込まれるデータ又は上記外部メディア３００から読み出されたデータを保持するための領域を有している。このメモリ２０２のＲＡＭの領域の記憶データは、上記ＵＳＢホスト１００によって外部メディア３００がアクセスされる際に利用される。このメモリ２０２のＲＡＭの領域の記憶容量は、外部メディア３００に応じて設定される。ＵＳＢバスストレージクラスファームウェア２０３は、ＵＳＢマスストレージクラスに固有の処理やＵＳＢファンクションコントローラ２０５の制御などを行う。外部メディアファームウェア２０４は、外部メディアのトランザクション管理や外部メディアコントローラの制御などを行う。ＵＳＢファンクションコントローラ２０５は、パケット送受信などＵＳＢファンクションの基本的な処理をする。外部メディアホストコントローラ２０６は、外部メディア３００へのコマンド送信、及び外部メディア３００からのレスポンス受信、並びに外部メディア３００との間でデータ送受信を行う。
【００３０】
上記ＵＳＢファンクションコントローラ２０５は、図２に示されるように、送受信データを格納するＦＩＦＯ部２０５Ａ、ＵＳＢのパケット化や基本コマンドのデコードなどをするコア部２０５Ｂ、及びアナログ／ディジタル（Ａ／Ｄ）変換などを行うトランシーバ部２０５Ｃを含んで成る。ＦＩＦＯ部２０５Ａ及びコア部２０５Ｂは、図示されない中央処理装置（ＣＰＵ）に結合され、トランシーバ２０５ＣはＵＳＢコネクタ（Ｄ＋，Ｄ−）及びＵＳＢケーブルを介してＵＳＢホストコントローラ１０４に結合される。ここで、本発明における制御部は、アプリケーション２０１、ＵＳＢバスストレージクラスファームウェア２０３、外部メディアファームウェア２０４、ＵＳＢファンクションコントローラ２０５、及び外部メディアホストコントローラ２０６によって形成される。
【００３１】
上記構成の作用について説明する。
【００３２】
図６には書き込み処理の流れが示される。
【００３３】
ＵＳＢファンクション２００上のアプリケーションは、ＵＳＢマスストレージクラスファームウエア２０３からライト要求ＣＢＷを受信すると（Ｓ１００）、そのアドレスとデータ数の解析が行われる。そして、ライト要求がシステムエリアに対応するものか否かの判別が行われ（Ｓ１０２）。この判別においてライト要求がシステムエリアに対応するものではない（ＮＯ）と判断された場合には、外部メディアファームウェアにライト要求され（Ｓ１０６）、ライト完了ＣＳＷの送信が行われる（Ｓ１０７）。また、上記ステップＳ１０２の判別においてライト要求がシステムエリアに対応するものである（ＹＥＳ）と判断された場合には、システムエリアに対応するアドレスのデータがメモリ２０２内に存在するか否かの判別が行われる（Ｓ１０３）。この判別において、システムエリアに対応するアドレスのデータがメモリ２０２に存在しない（ＮＯ）、と判断された場合には、上記対応するアドレスのデータがメモリ２０２に保存されてから（Ｓ１０５）、外部メディアファームウェアにライト要求され（Ｓ１０６）、ライト完了ＣＳＷの送信が行われる（Ｓ１０７）。また、上記ステップＳ１０３の判別において、システムエリアに対応するアドレスのデータがメモリ２０２に存在する（ＹＥＳ）、と判断された場合には、ライトデータとメモリ２０２のデータとが同じか否かの判別が行われる（Ｓ１０４）。この判別において、ライトデータとメモリ２０２のデータとが同じではない（ＮＯ）、と判断された場合には、ライトデータがメモリ２０２に保存されてから（Ｓ１０５）、外部メディアファームウェアにライト要求される（Ｓ１０６）。上記ステップＳ１０４の判別において、ライトデータとメモリ２０２のデータとが同じである（ＹＥＳ）と判断された場合には、上記ステップＳ１０５のメモリ保存や、ステップＳ１０６のライト要求を発することなく、ライト完了ＣＳＷを送信して終了する（Ｓ１０７）。
【００３４】
このようにライトデータの受信が行われた場合に、ライト要求がシステムエリアで、対応するアドレスのデータがメモリ２０２に存在し、しかもそれがライトデータと同じである場合には、外部メディアファームウェアへのライト要求が行われることなく、ライト完了ＣＳＷの送信が行われるため、外部メディア３００へのライト動作は行われない。そのことにより、転送速度の遅い外部メディアとのアクセスを抑えることができ、データ転送の効率化を図ることができる。
【００３５】
また、上記ステップＳ１０３、Ｓ１０４の判別は、ライト要求されたデータの一部に対しても行われる。すなわち、上記ステップＳ１０３の判別において、システムエリアに対応するアドレスのデータの一部がメモリ２０２に存在すると判断された場合には、メモリ２０２に存在する部分についてはライトデータとメモリ２０２のデータとが同じか否かの判別が行われる。また、この場合において、メモリ２０２に存在しない部分についてはメモリ２０２に保存され（Ｓ１０５）、外部メディアファームウェアにライト要求が発せられる。
【００３６】
図７には読み出し処理の流れが示される。
【００３７】
ＵＳＢファンクション２００上のアプリケーションは、ＵＳＢマスストレージクラスファームウエアからリード要求ＣＢＷを受信すると（Ｓ２００）、そのリード要求アドレスとデータ数が解析される。そして、リード要求がシステムエリアに対応するものであるか否かの判別が行われる（Ｓ２０１）。この判別において、リード要求がシステムエリアに対応するものでは無い（ＮＯ）、と判断された場合には、外部メディアファームウェアにリード要求がなされ（Ｓ２０４）、外部メディアから読み出されたデータがＵＳＢホスト１００に送信される（Ｓ２０５）。そして、リード完了ＣＳＷ送信が行われる（Ｓ２０９）。また、上記ステップＳ２０１の判別において、リード要求がシステムエリアに対応するものである（ＹＥＳ）と判断された場合には、システムエリアに対応するアドレスのデータがメモリ２０２に存在するか否かの判別が行われる（Ｓ２０２）。この判別において、システムエリアに対応するアドレスのデータがメモリ２０２に存在しない（ＮＯ）、と判断された場合には、外部メディアファームウェアにリード要求され（Ｓ２０６）、外部メディア３００から読み出されたデータがメモリ２０２に保存される（Ｓ２０７）。そして、外部メディア３００から読み出されたデータがＵＳＢホスト１００に送信されてから（Ｓ２０８）、リード完了ＣＳＷ送信が行われる（Ｓ２０９）。さらに、上記ステップＳ２０２の判別において、システムエリアに対応するアドレスのデータがメモリ２０２に存在する（ＹＥＳ）、と判断された場合には、メモリ２０２に保存されていたそのデータがＵＳＢホスト１００に送信される（Ｓ２０３）。そしてリード完了ＣＳＷ送信が行われる（Ｓ２０９）。
【００３８】
このように上記ステップＳ２０２の判別において、システムエリアに対応するアドレスのデータがメモリ２０２に存在する（ＹＥＳ）、と判断された場合には、外部メディアファームウェアへのリード要求が行われずに、メモリ２０２に存在するデータがＵＳＢホスト１００に送信されるため、ＵＳＢホストシステム１００は、リード要求にかかるデータを速やかに得ることができる。
【００３９】
尚、上記ステップＳ２０２の判別は、リード要求されたデータの一部に対しても行うことができる。すなわち、リード要求されたデータの一部がメモリ２０２に存在する場合には、その部分についてはメモリ２０２内のデータがＵＳＢホスト１００に送信され（Ｓ２０３）、それ以外の部分については外部メディアファームウェアリード要求がなされ（Ｓ２０６）、外部メディア３００から読み出されたデータがメモリ２０２に保存されるとともに（Ｓ２０７）、ＵＳＢホスト１００に送信される（Ｓ２０８）。
【００４０】
図８には、上記書き込み処理におけるＵＳＢホスト１００、ＵＳＢファンクション２００、及び外部メディア３００での処理の具体的な内容が示される。
【００４１】
ＵＳＢホスト１００は、ＵＳＢマスストレージクラスで定義されたライト要求ＣＢＷをＵＳＢファンクションに発行する（３１）。ＵＳＢファンクション２００は、ライト要求ＣＢＷを受信すると、ライトアドレスやデータ数を解析する。また、ライト要求ＣＢＷを外部メディア固有の形式に変換する（３２）。解析した結果、ライト要求がシステムエリアに対応するものであれば、セーブフラグを設定する（３２’）。ＵＳＢファンクション２００は、外部メディアにライトコマンドを発行する（３３）。外部メディア３００は、ライトコマンドを受信すると、ライトアドレスやデータ数を解析する（３４）。ＵＳＢホストは、ＵＳＢマスストレージクラスで定義された形式でライトデータを、ＵＳＢファンクションに送信する（３５）。ＵＳＢファンクション２００は、ライトデータを受信すると（３６）、ライトデータを外部メディア固有のデータ形式に変換する。セーブフラグが設定されており、ライト対象のアドレスに対応するデータがすでにメモリ上に存在すれば、ライトデータとメモリの内容を比較し、同じであれば（４０Ｂ）に遷移する。また、セーブフラグが設定されていても、ライト対象のアドレスに対応するデータがメモリ上に存在しない、または存在してもライトデータとメモリの内容が異なればライトデータをメモリに保存する（３６’）。ＵＳＢファンクション２００は、外部メディアにライトデータを送信する（３７）。外部メディアはライトデータを受信すると、それをメモリに書き込む（３８）。外部メディア３００はデータの書き込みが全て完了すると、完了したことをＵＳＢファンクションに通知する（３９）。
ＵＳＢファンクション２００は、完了通知を受信すると、それをＵＳＢマスストレージクラスで定義されたライト完了ＣＳＷに変換する（４０Ａ）。ＵＳＢファンクション２００は、ＵＳＢホスト１００にライト完了ＣＳＷを送信する（４０Ｂ）。
ＵＳＢホスト１００は、ライト完了ＣＳＷを受信すると、ライト動作が終了したことを認識し、ライト動作が完了する（４０Ｃ）。
【００４２】
このようにライト対象アドレスに対応するデータがすでにメモリ上に存在すれば、ライトデータとメモリの内容を比較し、同じであれば、（３７）〜（４０Ａ）までのステップを省略することができるので、その分、データ転送の効率向上を図ることができる。
【００４３】
図９には、上記読み出し処理におけるＵＳＢホスト１００、ＵＳＢファンクション２００、及び外部メディア３００での処理の具体的な内容が示される。
【００４４】
ＵＳＢホストはＵＳＢマスストレージクラスで定義されたリード要求ＣＢＷをＵＳＢファンクションに発行する（４１）。ＵＳＢファンクションはリード要求ＣＢＷを受信すると、リードアドレスやデータ数を解析する（４２）。解析した結果、リード対象のアドレスに対応するデータがすでにメモリ上に存在すれば、外部メディアからデータを読み出す必要はないので、メモリ上のデータをＵＳＢマスストレージクラスで定義されたデータ形式に変換、リターンフラグを設定し、ステップ（４７）に遷移する。また、メモリ２０２上に存在しなければ、ステップ（４３）に遷移する。ＵＳＢファンクションは外部メディア固有の形式で、リードコマンドを発行する（４３）。外部メディア３００は、リードコマンドを受信すると、リードアドレスやデータ数を解析する（４４）。解析完了後、外部メディア３００はデータをＵＳＢファンクション２００に送信する（４５）。ＵＳＢファンクション２００はリードデータを受信し（４６）、それをＵＳＢマスストレージクラスで定義されたデータ形式に変換する。受信したリードデータがシステムエリアのデータであれば、リードデータをメモリ２０２に保存する（４６’）。ＵＳＢファンクション２００は、ＵＳＢホスト１００にリードデータを送信する（４７）。ここで、リターンフラグが設定されている場合（リードデータがすでにメモリ上に存在した場合）、外部メディア３００からの読み出し完了通知を待つ必要がないので、リードデータを送信完了後、すぐにＵＳＢホスト１００にリード完了ＣＳＷを送信することができる（５０Ｂ）。ＵＳＢホスト１００は、リードデータを受信する（４８）。外部メディア３００はデータの送信が全て完了すると、完了したことをＵＳＢファンクション２００に通知する（４９）。ＵＳＢファンクション２００は、完了通知を受信すると、それをＵＳＢマスストレージクラスで定義されたリード完了ＣＳＷに変換する（５０Ａ）。ＵＳＢファンクション２００は、ＵＳＢホスト１００にリード完了ＣＳＷを送信する（５０Ｂ）。ＵＳＢホスト１００は、リード完了ＣＳＷを受信すると、リード動作が終了したことを認識し、リード動作が終了する（５０Ｃ）。
【００４５】
このようにリードデータがメモリ２０２に存在する場合には、ステップ（４３）〜（４６）を省略することができ、リターンフラグが設定されている場合には、ステップ（４９），（５０Ａ）の処理を省略することができるので、その分、データ読み出しの効率向上を図ることができる。
【００４６】
本発明の別の構成例について説明する。
【００４７】
上記の例ではＵＳＢファンクション２００を改良することによってデータ転送の効率化を図ったが、ＵＳＢマスストレージクラスドライバの機能を拡張することによってデータ転送の効率化を図っても良い。
【００４８】
例えば図１５に示されるように、外部メディア３００のシステムエリアに対するデータをＵＳＢホスト１００上のメモリ（バッファ）１０５に保存する機能を追加することによって書き込み動作と読み出し動作の効率化が可能となる。上記ＵＳＢホスト１００から上記外部メディア３００へのアクセスにかかるデータが上記メモリに存在するか否かを判別し、その判別結果に基づいて、上記外部メディア３００へのデータ書き込み又は上記外部メディア３００からのデータ読み出しを省略可能な制御部はＵＳＢホスト１００において機能的に実現される。以下、それについて、上記メモリ１０５へのデータ保存時とメモリ１０５からのデータ読み出し時とに分けて説明する。尚、データ保存時には、ＵＳＢホスト１００上のアプリケーションがライト要求を出した場合と、リード要求を出した場合とがある。環境は、Windows（登録商標）上でＵＳＢマスストレージクラスのバック・オンリー・トランスポート（Bulk-Only Transport）を適用しているものとする。
【００４９】
図１０には、アプリケーションがライト要求を出した場合のＵＳＢホスト上のメモリへデータ保存時の処理が示される。
【００５０】
＜コマンドトランスポート＞
アプリケーションは、Ｗｉｎ３２ＡＰＩ関数ライトファイル（WriteFile）を使用する。先ずライト要求ＣＢＷを機能拡張したＵＳＢマスストレージクラスドライバ（以下、「クラスドライバ」という）に渡す（５１）。尚、記録媒体とのデータのやり取りを行う為のＵＳＢのデータ転送方式であるバルク転送では通常ライトファイル（WriteFile（バルクアウト））とリードファイル（ReadFile（バルクイン））が使用される。クラスドライバは、ＩＯマネージャ経由で、ライト要求ＣＢＷに関する要求パケットであるライト命令の一種のIRP_MJ_WRITEを受け取ると、ライト要求ＣＢＷの内容を解析し、ライト要求がシステムエリアであればセーブフラグを設定する（５２）。その後、ライト要求ＣＢＷに関するライト命令の一種のＵＳＢリクエストをバスドライバに発行する。ＵＳＢバスドライバは、ライト要求ＣＢＷに関するライト命令の一種のＵＲＢリクエストを受け取ると、ライト要求ＣＢＷをＵＳＢファンクションに送信する（５３）。ここで、上記ＩＯマネージャでは、アプリケーション（ユーザモード）とドライバ（カーネルモード）の入出力を管理するオペレーティングシステムの機能を意味する。また、アプリケーションが実行したＷｉｎ３２ＡＰＩ関数は、ＩＯマネージャーにより命令の一種である１個以上のＩＲＰに変換され、ドライバに渡される。ライトファイル（WriteFile）はIRP_MJ_WRITEに対応され、リードファイル（Read File）はIRP_MJ_READに対応する。さらに、ＵＲＢリクエストとは、ＵＳＢバスドライバにトランザクションの開始を依頼するリクエストを意味する。
【００５１】
＜データトランスポート＞
アプリケーションは、ライトファイル（WriteFile）を使用し、データをクラスドライバに渡す（５４）。クラスドライバは、データに関する要求パケットIRP_MJ_WRITEを受け取ると、セーブフラグが設定されていれば、ライト対象アドレスに対応するデータがすでにメモリ１０５に存在するかを判定する。存在した場合、データとメモリの内容を比較し、同じであれば処理を完了し、書き込み動作に関する効率化ができる。また、ライト対象アドレスに対応するデータがメモリ１０５に存在しない、または存在してもライトデータとメモリ１０５の内容が異なれば、メモリ領域を確保し、そのデータをメモリ１０５に保存する（５５）。その後、データに関するＵＲＢリクエストをＵＳＢバスドライバに発行する。ＵＳＢバスドライバは、データに関するＵＲＢリクエストを受け取ると、データをＵＳＢファンクション２００に送信する（５６）。
【００５２】
＜ステータストランスポート＞
ＵＳＢホスト１００におけるアプリケーションは、リードファイル（ReadFile）を使用し、ＵＳＢマスストレージクラスで定義されたライト完了ＣＳＷのリード要求をクラスドライバに発行する（５７）。クラスドライバは、ライト完了ＣＳＷに関する要求パケットであるライト命令の一種のIRP_MJ_READを受け取ると、セーブフラグが設定されていれば、それをクリアし、ライト完了ＣＳＷに関するＵＲＢリクエストをバスドライバに発行する（５８）。その後、ライト完了ＣＳＷをバスドライバから受け取り、それをＩＯマネージャー経由でアプリケーションに渡す。ＵＳＢバスドライバは、ライト完了ＣＳＷに関するＵＲＢリクエストを受け取ると、ＵＳＢホストからＵＳＢファンクションに対して読み出し動作を通知する為の命令であるＩＮトークンをＵＳＢファンクションに発行する。ＩＮトークンに対するライト完了ＣＳＷを受信後、それをクラスドライバに渡す（５９）。ここで、ＩＮトークンとはＵＳＢ規格で定義されたパケットで、ＵＳＢホストがファンクションにデータを要求するときに使用される。
【００５３】
図１１には、アプリケーションがリード要求を出した場合のＵＳＢホスト上のメモリへデータ保存時の処理が示される。
【００５４】
＜コマンドトランスポート＞
ＵＳＢホスト１００におけるアプリケーションは、ライトファイル（WriteFile）を使用し、リード要求ＣＢＷをクラスドライバに渡す（６１）。クラスドライバは、リード要求ＣＢＷに関する要求パケットIRP_MJ_WRITEを受け取ると、リード要求ＣＢＷの内容を解析し、次のデータトランスポートでのリード要求がシステムエリアであり、リード対象のアドレスに対応するデータがメモリに保存されていなければセーブフラグを設定する（６２）。その後、リード要求ＣＢＷに関するＵＲＢリクエストをバスドライバに発行する。また、次のデータトランスポートでのリード要求がシステムエリアに対応するものであり、リード対象のアドレスに対応するデータがメモリに保存されていれば、後の読み出し時で示すように、メモリのデータをアプリケーションに返すことになる。ＵＳＢバスドライバは、リード要求ＣＢＷに関するＵＲＢリクエストを受け取ると、リード要求ＣＢＷをＵＳＢファンクションに送信する（６３）。
【００５５】
＜データトランスポート＞
ＵＳＢホスト１００におけるアプリケーションは、リードファイル（ReadFile）を使用し、リード要求をクラスドライバに発行する（６４）。クラスドライバは、データに関する要求パケットIRP_MJ_READを受け取ると、データに関するＵＲＢリクエストをバスドライバに発行する。その後、バスドライバからデータを受け取り、セーブフラグが設定されていれば、メモリ領域を確保しデータを保存する（６５）。その後、データをＩＯマネージャー経由でアプリケーションに渡す。ＵＳＢバスドライバは、データに関するＵＲＢリクエストを受け取ると、ＩＮトークンをＵＳＢファンクションに発行する（６６）。ＩＮトークンに対するデータ受信後、それをクラスドライバに渡す。
【００５６】
＜ステータストランスポート＞
ＵＳＢホスト１００におけるアプリケーションは、リードファイル（ReadFile）を使用し、リード完了ＣＳＷのリード要求をクラスドライバに発行する（６７）。クラスドライバは、リード完了ＣＳＷに関する要求パケットIRP_MJ_READを受け取ると、セーブフラグが設定されていれば、それをクリアし、リード完了ＣＳＷに関するＵＲＢリクエストをバスドライバに発行する（６８）。その後、リード完了ＣＳＷをバスドライバから受け取り、それをＩＯマネージャー経由でアプリケーションに渡す。ＵＳＢバスドライバは、リード完了ＣＳＷに関するＵＲＢリクエストを受け取ると、ＩＮトークンをＵＳＢファンクションに発行する（６９）。ＩＮトークンに対するリード完了ＣＳＷを受信後、それをクラスドライバに渡す。
【００５７】
図１２には読み出し時の処理が示される。
【００５８】
＜コマンドトランスポート＞
ＵＳＢホスト１００におけるアプリケーションは、ライトファイル（WriteFile）を使用し、リード要求ＣＢＷをクラスドライバに渡す（７１）。クラスドライバは、リード要求ＣＢＷに関する要求パケットIRP_MJ_WRITEを受け取ると、リード要求ＣＢＷの内容を解析する。解析の結果、リード対象のアドレスに対応するデータがメモリに保存されていれば、次のデータトランスポートで返せるようにデータを準備し、リターンフラグを設定する。そして、ＩＯマネージャーにステータス・サクセス（STATUS_SUCCESS）を返し、リード要求ＣＢＷに関する要求パケットIRP_MJ_WRITEを完了させる。また、メモリに保存されていなければ、バスドライバにリード要求ＣＢＷに関するＵＲＢを発行することになる。
【００５９】
ＵＳＢバスドライバは、データがメモリに保存されていればＵＲＢリクエストを受信しないので、何もしなくてよい。
【００６０】
＜データトランスポート＞
ＵＳＢホスト１００におけるアプリケーションは、リードファイル（ReadFile）を使用し、リード要求をクラスドライバに発行する（７３）。クラスドライバは、データに関する要求パケットIRP_MJ_READを受け取る。リターンフラグが設定されていれば、準備しておいたデータをＩＯマネージャー経由でアプリケーションに渡す。そして、ＩＯマネージャーにステータス・サクセス（STATUS_SUCCESS）を返しデータに関する要求パケットIRP_MJ_READを完了させる（７４）。また、リターンフラグが設定されていなければ、バスドライバへデータに関するＵＲＢを発行することになる。
【００６１】
ＵＳＢバスドライバは、リターンフラグが設定されていればＵＲＢリクエストを受信しないので、何もしなくてよい。
【００６２】
＜ステータストランスポート＞
ＵＳＢホスト１００におけるアプリケーションは、リードファイル（ReadFile）を使用し、リード完了ＣＳＷのリード要求をクラスドライバに発行する（７５）。クラスドライバは、リード完了ＣＳＷに関する要求パケットIRP_MJ_READを受け取ると、リターンフラグが設定されていれば、それをクリアする。そして、ＩＯマネージャーにステータス・サクセス（STATUS_SUCCESS）を返し、リード完了ＣＳＷに関するIRP_MJ_READを完了させる（７６）。また、リターンフラグが設定されていなければ、バスドライバにＣＳＷに関するＵＲＢを発行することになる。ＵＳＢバスドライバは、リターンフラグが設定されていればＵＲＢリクエストを受信しないので、何もしなくてよい。
【００６３】
以上により、読み出し時において、リード要求ＣＢＷ、データ、リード完了ＣＳＷに関するＵＳＢホストとＵＳＢファンクション間のＵＳＢ転送、及びＵＳＢファンクションと外部メディア間のコマンド、レスポンス、データ転送の省略が可能となる。
【００６４】
メモリ１０５に保存する領域を拡張することによって上記の場合と同様の効果を得ることができる。
【００６５】
ＵＳＢファンクション上のメモリに保存する領域をユーザエリアの頻繁にアクセスされる領域に拡張することができる。本応用例を外部メディア３００としてメモリカードを含むシステムに適用した場合について説明する。本応用例を適用するため、図１のシステム構成においてＵＳＢファンクション２００上に、図１３に示されるような参照レジストリ４００を作成する。また、アプリケーションを変更する。
【００６６】
参照レジストリ４００は、メモリカードＩＤ情報と参照テーブルから構成される。メモリカードID情報は、個々のメモリカード識別を目的とし、メモリカード毎に固有の値を持つＣＩＤ(Card Identification)レジスタの値を使用する。また、登録するカードの順序を決定するための優先度を０（最も高い）〜３９９（最も低い）で定義する。メモリカードＩＤ情報のサイズは、ＩＤに１６バイト(＝ＣＩＤレジスタのサイズ)、優先度に４バイトを必要とするので、登録カード数を４００個とした場合、計約８Ｋバイトとなる。参照テーブルは、ＵＳＢファンクション上のメモリに保存する領域（以下、メモリ領域）を、メモリカードのメモリアドレス（以下、セクタアドレス）に1セクタ（５１２バイト）単位で対応づけ、その値はカードとのアクセス毎に更新される。また、更新する順序を決定するための優先度を０（最も高い）〜６３（最も低い）で定義する。参照テーブルのサイズは、メモリ領域を３２Ｋバイト(＝６４セクタ)、セクタアドレスの識別と優先度に４バイトを必要とするので、登録カード数を４００個とした場合、計１００Ｋバイトとなる。なお、参照レジストリは値の更新と電源を切断しても値の保持が可能なフラッシュメモリ等に作成すると良い。
【００６７】
アプリケーションは、ライト要求ＣＢＷ又はリード要求ＣＢＷを受信すると、それを解析し、参照テーブルに登録されたアドレスに対応したデータであれば、ＵＳＢファンクション上のメモリにそれを格納する機能を持たせる。
【００６８】
図１４には、本例におけるアプリケーションによる処理の流れが示される。
【００６９】
先ずメモリカードが検出される（Ｓ３００）。検出されたカードからＩＤ(便宜上「Ｘ」とする)を取得する。メモリカードの種類によってはＣＩＤを使用する。場合によっては、メモリカードの初期化時に毎回ＩＤを取得する（Ｓ３０１）。参照レジストリからメモリカードＩＤ情報をロードする（Ｓ３０２）。メモリカードから取得したＩＤ（＝Ｘ）がメモリカードＩＤ情報に存在するか否かの判別が行われる（Ｓ３０３）。この判別において、メモリカードＩＤ情報にある（ＹＥＳ）と判断された場合、参照レジストリから参照テーブル（ＩＤ＝Ｘ）をロードした後、参照テーブル（ＩＤ＝Ｘ）のコピーである参照テーブルイメージをＲＡＭ（ランダム・アクセス・メモリ）等に作成する（Ｓ３０５）。また、上記ステップＳ３０３の判別において、メモリカードＩＤ情報にない（ＮＯ）と判断された場合、メモリカードの先頭からメモリ容量分(＝３２Ｋバイト)を保存領域とし、新規に参照テーブルイメージを上記ＲＡＭなどに作成する（Ｓ３０４）。ライトＣＢＷが受信されると、図６に示される書き込み処理と同様の処理へ移行される（Ｓ３０７）。ただし、メモリ領域をシステムエリアの代わりに参照テーブルイメージに設定されたアドレスに変更する。
【００７０】
リードＣＢＷが受信されると、図７に示される読み出し処理と同様の処理に移行される（Ｓ３０９）。ただし、メモリ領域をシステムエリアの代わりに参照テーブルイメージに設定されたアドレスに変更する。そして、リード要求ＣＢＷで要求されたアドレスを参照テーブルイメージに登録する（Ｓ３１０）。参照テーブルイメージに登録されたメモリ領域の中で優先度の最も低いものから削除し、リード要求ＣＢＷで要求されたアドレスの優先度を最も高い値にして登録する。他のメモリ領域の優先度は、今回登録された数だけ下げる。尚、リード要求ＣＢＷが複数のセクタから構成される場合、アドレスの小さい方から最も高い優先度を割り当てることにする。
【００７１】
メモリカードが取り外されたら、カードから取得したＩＤ（＝Ｘ）がメモリカードＩＤ情報にある場合、参照テーブルイメージを参照レジストリの参照テーブル（ＩＤ＝Ｘ）にコピーした後、セーブする。
【００７２】
ＩＤ＝Ｘに対応したメモリカードＩＤ情報の優先度を最も高い値に、他のメモリカードＩＤ情報の優先度を「１」だけ低くする。カードから取得したＩＤ（＝Ｘ）がメモリカードＩＤ情報にない場合、新規に参照レジストリの参照テーブルＩＤ（＝Ｘ）を作成し、それに参照テーブルイメージをコピーした後、セーブする。ＩＤ＝Ｘに対応したメモリカードＩＤ情報の優先度を最も高い値にして登録し、他のメモリカード情報の優先度を「１」だけ低くする。メモリカードＩＤ情報に空きがない場合は、最も優先度の低い(＝３９９)ＩＤを持つメモリカードの登録を解除する。
【００７３】
以上本発明者によってなされた発明を具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【００７４】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるＵＳＢファンクション２００をインタフェースとして備えるものについて説明したが、それに限定されるものではなく、他のインタフェースを用いることができる。
【００７５】
本発明は、少なくともホストとそれによってアクセス可能なメディアとをインタフェース可能なインタフェース部を含むことを条件に適用することができる。
【図面の簡単な説明】
【００７６】
【図１】本発明にかかるインタフェースを含むデータ転送システムの構成例ブロック図である。
【図２】図１における主要部の詳細な構成例ブロック図である。
【図３】図１におけるＵＳＢホストからの書き込み動作の説明図である。
【図４】図１におけるＵＳＢホストからの読み出し動作の説明図である。
【図５】上記データ転送システムに含まれる外部メディアの構成例説明図である。
【図６】上記データ転送システムにおける書き込み処理のフローチャートである。
【図７】上記データ転送システムにおける読み出し処理のフローチャートである。
【図８】上記書き込み処理における主要部の具体的な処理の説明図である。
【図９】上記読み出し処理における主要部の具体的な処理の説明図である。
【図１０】本発明の別の構成例における保存時の処理の説明図である。
【図１１】本発明の別の構成例における保存時の処理の説明図である。
【図１２】本発明の別の構成例における読み出し時の処理の説明図である。
【図１３】本発明の別の構成例における参照レジストリの説明図である。
【図１４】本発明の別の構成例における主要部の処理のフローチャートである。
【図１５】本発明の別の構成例における主要部の構成例ブロック図である。
【符号の説明】
【００７７】
１００  ＵＳＢホスト
１０１  アプリケーション
１０２  ＵＳＢマスストレージクラスドライバ
１０３  ＵＳＢバスドライバ
１０４  ＵＳＢホストコントローラ
２００  ＵＳＢファンクション
２０１  アプリケーション
１０５，２０２  メモリ
２０３  ＵＳＢバスストレージクラスファームウェア
２０４  外部メディアファームウェア
２０５  ＵＳＢファンクションコントローラ
２０６  外部メディアホストコントローラ
【図１】
2006059201.tif 000003
【図２】
2006059201.tif 000004
【図３】
2006059201.tif 000005
【図４】
2006059201.tif 000006
【図５】
2006059201.tif 000007
【図６】
2006059201.tif 000008
【図７】
2006059201.tif 000009
【図８】
2006059201.tif 000010
【図９】
2006059201.tif 000011
【図１０】
2006059201.tif 000012
【図１１】
2006059201.tif 000013
【図１２】
2006059201.tif 000014
【図１３】
2006059201.tif 000015
【図１４】
2006059201.tif 000016
【図１５】
2006059201.tif 000017