(57)【要約】【課題】ＵＳＢのホストコントローラ装置において、データ転送に寄与しないエンドポイント情報を含めたエンドポイント情報のループを逐次読み出すことにより、データ転送効率が低下していた。【解決手段】システムメモリ２を有するホスト装置に備えられ、ＵＳＢデバイスと通信を行うホストコントローラ装置であって、システムメモリ２が保持する複数のエンドポイント情報を解析してデータ転送が要求されているエンドポイント情報を選択する情報選択部１３と、選択したエンドポイント情報を特定するシステムメモリ２上のアドレスを少なくとも一つ保存する記録領域１４と、記録領域１４に保存した少なくとも一つのシステムメモリ上のアドレスが特定するエンドポイント情報に基づいて、要求されたデータ転送を行うデータ転送部１５と、を備える。【選択図】図２
2009093418.tif 000002
【特許請求の範囲】
【請求項１】
システムメモリを有するホスト装置に備えられ、ＵＳＢデバイスと通信を行うホストコントローラ装置であって、
前記システムメモリが保持する複数のエンドポイント情報を解析してデータ転送が要求されているエンドポイント情報を選択する情報選択部と、
前記情報選択部が選択したエンドポイント情報を特定するシステムメモリ上のアドレスを少なくとも一つ保存する記録領域と、
前記記録領域に保存した少なくとも一つのシステムメモリ上のアドレスが特定するエンドポイント情報に基づいて、要求されたデータ転送を行うデータ転送部と、を備えるホストコントローラ装置。
【請求項２】
前記データ転送部は、前記要求されたデータ転送のデータ量になるか、自己に割り当てられた転送時間まで、データ転送を行い、前記記憶領域に保存するシステムメモリ上のアドレスが特定するエンドポイント情報によって要求されるデータ転送が終了するまでデータ転送を繰り返すことを特徴とする請求項１記載のホストコントローラ装置。
【請求項３】
前記記録領域は、システムメモリ上の複数のアドレスを保存し、
前記データ転送部は、前記システムメモリ上の複数のアドレスが特定する複数のエンドポイント情報を参照し、前記複数のエンドポイント情報に基づいて、前記複数のエンドポイント情報によって要求されたデータ転送のデータ量になるまで、データ転送を繰り返すことを特徴とする請求項２記載のホストコントローラ装置。
【請求項４】
前記情報選択部は、前記システムメモリが保持するエンドポイント情報に変更があったことを前記ホスト装置から通知され、前記通知に基づいて、前記システムメモリが保持するエンドポイント情報を順番に解析し、前記記録領域に保存するシステムメモリ上のアドレスを更新することを特徴とする請求項１乃至３のいずれか一項に記載のホストコントローラ装置。
【請求項５】
前記データ転送部は、自己に割り当てられた転送時間のデータ転送が終了すると、前記システムメモリが保持するエンドポイント情報を更新することを特徴とする請求項１乃至４のいずれか一項に記載のホストコントローラ装置。
【請求項６】
前記記録領域は、前記システムメモリ上のアドレスに加えを、選択されたエンドポイント情報を保存することを特徴とする請求項１乃至４のいずれか一項に記載のホストコントローラ装置。
【請求項７】
前記データ転送部は、データ転送が完了したエンドポイント情報に対応するシステムメモリ上のアドレスを前記記録領域から削除することを特徴とする請求項１乃至６のいずれか一項に記載のホストコントローラ装置。
【請求項８】
システムメモリを有するホスト装置に備えられ、ＵＳＢデバイスと通信を行うホストコントローラ装置のデータ転送制御方法であって、
前記システムメモリが保持する複数のエンドポイント情報を一つずつ順番に読み出し、
読み出したエンドポイント情報を解析して、データ転送が要求されているエンドポイント情報を選択し、
選択したエンドポイント情報を特定するシステムメモリ上のアドレスを記録領域に保存することを、前記システムメモリが保持する複数のエンドポイント情報それぞれについて繰り返し、
前記記録領域に保存した少なくとも一つのシステムメモリ上のアドレスに基づいて、データ転送を行うデータ転送制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＵＳＢ（Universal Serial Bus）デバイスとデータ転送を行うホストコントローラに関する。
【背景技術】
【０００２】
ＵＳＢは有線であることを想定してプロトコル仕様が策定されたものであるが、近年、ＵＳＢを無線化するワイヤレスＵＳＢ（Wireless USB）の技術が開発されている。例えば、ホスト装置に、有線によるＵＳＢデバイスとのデータ転送を制御するドライバと、無線通信用のホストコントローラ装置とを装着し、ワイヤレスＵＳＢデバイス（Wireless USB device）と無線通信によるデータ転送を実現している。ＵＳＢでは、データ転送は、エンドポイント情報に基づいて実施される。このような場合、エンドポイント情報はホスト装置のシステムメモリ上に配置されている。このため、ホストコントローラ装置はシステムメモリ上に配置されているエンドポイント情報を逐次読み込み解析することになる。
【０００３】
また、エンドポイント情報は、次に参照するエンドポイント情報のシステムメモリ上のアドレスを保持することによって、次に参照するエンドポイント情報を指定している。最後のエンドポイント情報には、最初のエンドポイント情報を参照するように設定され、複数のエンドポイント情報がループを形成している。従って、ホストコントローラ装置は、エンドポイント情報を順番に参照することによって、すべてのエンドポイント情報を環状に参照することになる。あるいは、最後のエンドポイント情報に終端情報を有し、直線状に形成されているエンドポイント情報もある。この場合にも、終端情報に達するまで順番に参照し、終端情報のエンドポイント情報に続いて最初のエンドポイント情報から再度参照して環状に参照する。
エンドポイント情報には、データ転送を要求するエンドポイント情報と、データ転送に寄与しないエンドポイント情報とが混在し、これらのエンドポイント情報が区別されることなく一つのループを形成している。このため、データ転送を行う場合、ホストコントローラ装置はエンドポイント情報を一つずつシステムメモリ上から読み出し、データ転送を要求しているエンドポイント情報を選択していた。
【０００４】
無線ＬＡＮ（Local Area Network）のパケット転送処理において、キュー制御時の共有メモリアクセス時間を短縮して転送効率を上げる技術が特許文献１に公開されているが、ワイヤレスＵＳＢのデータ転送に適用することは困難であった。
【特許文献１】特開２００１−１２７７６７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述したように、エンドポイント情報にはデータ転送に寄与しないエンドポイント情報も含まれているため、ホストコントローラ装置は、データ転送に寄与するエンドポイント情報を読み出すまでは、データ転送を実施することができなかった。また、複数のエンドポイント情報によってデータ転送が要求された場合、ホストコントローラ装置は、データ転送に寄与しないエンドポイント情報も毎回読み出して次に参照するエンドポイント情報を取得する必要があった。
【０００６】
このように、ＵＳＢのホストコントローラ装置において、データ転送に寄与しないエンドポイント情報を含めたエンドポイント情報のループを逐次読み出すことにより、データ転送効率が低下しているという問題があった。
【課題を解決するための手段】
【０００７】
本発明に係るホストコントローラ装置の一態様は、システムメモリを有するホスト装置に備えられ、ＵＳＢデバイスと通信を行うホストコントローラ装置であって、前記システムメモリが保持する複数のエンドポイント情報を解析してデータ転送が要求されているエンドポイント情報を選択する情報選択部と、前記情報選択部が選択したエンドポイント情報を特定するシステムメモリ上のアドレスを少なくとも一つ保存する記録領域と、前記記録領域に保存した少なくとも一つのシステムメモリ上のアドレスが特定するエンドポイント情報に基づいて、要求されたデータ転送を行うデータ転送部と、を備える。
【０００８】
また、本発明に係るデータ転送制御方法の一態様は、システムメモリを有するホスト装置に備えられ、ＵＳＢデバイスと通信を行うホストコントローラ装置のデータ転送制御方法であって、前記システムメモリが保持する複数のエンドポイント情報を一つずつ順番に読み出し、読み出したエンドポイント情報を解析して、データ転送が要求されているエンドポイント情報を選択し、選択したエンドポイント情報を特定するシステムメモリ上のアドレスを記録領域に保存することを、前記システムメモリが保持する複数のエンドポイント情報それぞれについて繰り返し、前記記録領域に保存した少なくとも一つのシステムメモリ上のアドレスに基づいて、データ転送を行う。
【０００９】
これにより、システムメモリが保持するエンドポイント情報を順番にアクセスすることなく、データ転送を行うことができる。従って、システムメモリへのアクセスを削減することができるため、データ転送効率を向上させることができる。
【発明の効果】
【００１０】
本発明によれば、ＵＳＢのホストコントローラ装置において、データ転送に寄与しないエンドポイント情報を含めたエンドポイント情報のループを逐次読み出すことを回避することが可能となる。これにより、データ転送効率を向上させることができる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施形態について、図面を参照しながら説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。各図面において同一の構成または機能を有する構成要素および相当部分には、同一の符号を付し、その説明は省略する。また、本明細書では、同じ構成要素が複数存在し、それぞれを区別する場合に、符号に"−ｎ"（ｎ＞０の整数）付加して、複数の構成要素それぞれを区別するものとする。例えば、図１では、複数のワイヤレスＵＳＢデバイス８−１、８−２・・・を示している。例えば、図１を用いて説明する場合、ワイヤレスＵＳＢデバイス８−１、８−２・・・のいずれか一つまたは複数を示すものとし、ワイヤレスＵＳＢデバイス８−１（あるいは、ワイヤレスＵＳＢデバイス８−２など）は、複数のワイヤレスＵＳＢデバイスのそれぞれを区別して示すものとする。
【００１２】
また、以下の説明ではワイヤレスＵＳＢの通信を行うシステムを一例として説明する。しかしながら、本発明は、有線のＵＳＢのシステムに適用することも可能である。
【００１３】
図１は、本発明に係るワイヤレスＵＳＢの通信を行うシステムの構成例を示す図である。ホスト側は、ホストコントローラ装置１、システムメモリ２、ＣＰＵ(Central Processing Unit）３、及びメモリ４がＰＣＩ（Peripheral Component Interconnect）バス５に接続され、ＰＣＩバスコントローラ６が制御するホスト装置７を例示している。図１において、ホスト装置７には本発明に関連する構成要素を示したものであり、その他の構成要素を省略している。また、デバイス側は、ワイヤレスＵＳＢデバイス８がデバイス装置９として例示されている。なお、デバイス装置９は、少なくとも一つのワイヤレスＵＳＢデバイス８が配置されていればよく、また、ワイヤレスＵＳＢデバイス８に限らず、無線通信を行うホストコントローラ装置１とワイヤーＵＳＢデバイスとのデータ転送を中継する中継装置であってもよい。
【００１４】
ホストコントローラ装置１は、ホスト装置７に装着されるマイクロコンピュータを想定して説明する。ホストコントローラ装置１は、ＰＣＩバス５に接続され、ホスト装置７が備えるドライバ機能によって制御される。ドライバ機能は、例えばプログラムにより実現されるものであり、メモリ４にロードされたドライバ機能を実現する各命令がＣＰＵ３によって実行される。メモリ４は、例えばＲＡＭ（Random Access Memory）を用いる。
【００１５】
ホスト装置７は、デバイス装置９が接続されるとホストコントローラ装置１を介して各デバイス装置９（例えば、ワイヤレスＵＳＢデバイス８）から各デバイス装置９を識別するエンドポイント情報を取得し、システムメモリ２に保存する。
【００１６】
ホスト装置７とデバイス装置９間でデータ転送が要求される場合には、システムメモリ２にエンドポイント情報が作成され、このエンドポイント情報に基づいて、ホストコントローラ装置１はデータを転送する。エンドポイント情報には、データ転送を要求する情報（適宜、「有効エンドポイント情報」ともいう）と、データ転送に寄与しない情報（適宜、「無効エンドポイント情報」ともいう）とが存在する。
【００１７】
以下の各実施形態では、ホストコントローラ装置１が有効エンドポイント情報を効率よく参照できる手法について説明する。
【００１８】
（実施形態１）
実施形態１では、有効エンドポイント情報が保持されているシステムメモリ２上のアドレスをホストコントローラ内の記録領域に保存する場合を説明する。
【００１９】
図２は、本発明の実施形態に係るホストコントローラ装置の構成例を示すブロック図である。また、図２には、システムメモリ２の一例も示している。ホストコントローラ装置１は、ホスト側インターフェース（以降、「ホスト側Ｉ／Ｆ」という）１１、デバイス側インターフェース（以降、「デバイス側Ｉ／Ｆ」という）１２、送受信制御部１６、及びバッファ１７を備える。
【００２０】
ホスト側Ｉ／Ｆ１１は、ホスト装置７内のシステムメモリ２及びその他の構成要素とＰＣＩバス５を介してデータの送受信を行う。
デバイス側Ｉ／Ｆ１２は、デバイス装置９と無線通信によりデータの送受信を行う。
【００２１】
送受信制御部１６は、ホスト装置７とデバイス装置９との間のデータ転送を制御する。具体的には、図２では、情報選択部１３、記録領域１４、及びデータ転送部１５の機能に分割して実現する例を示している。
情報選択部１３は、システムメモリ２が保持する複数のエンドポイント情報を解析してデータ転送が要求されている複数のエンドポイント情報を選択する。
【００２２】
記録領域１４は、情報選択部１３が選択したシステムメモリ２上のアドレスを保存する。記録領域１４は、複数のシステムメモリ２上のアドレスに順番をつけて保存する（例えば、レコード番号順など）。保存する順番は、複数のデータ転送を繰り返し行う場合の順番となる。一例として、記憶領域１４は次のように使用される。記憶領域１４はメモリで構成されているため、例えば、記憶領域１４のアドレスの若番から順にシステムメモリのアドレスを保持する。また、繰り返し転送を行う場合は、現在参照している記憶領域１４のアドレスを指すカウンタを０に設定して、カウンタが指す記憶領域１４に保持されているシステムメモリ２のアドレスから順に処理し、処理を終えるとカウンタをインクリメントして、次のシステムメモリのアドレスを取得する。記憶領域１４に保持しているシステムメモリ２のアドレス上にあるエンドポイント情報が要求しているデータを転送し終えたかを判断するためのフラグをシステムメモリ２上のアドレスと対で記憶領域１４に保持する。例えば、最初に保持する場合はフラグを１に設定する。また、各エンドポイントで転送するデータの量は一定とは限らない。例えはコピーするファイルのサイズが異なれば送るデータの量も異なる。順番に処理をした場合、データを全て転送したエンドポイント情報を指すシステムメモリ２上のアドレスは処理対照から除外する必要があるためフラグを０に設定する。カウンタはインクリメントされながら、最後になった場合は０に戻される。フラグが０になっているシステムメモリ２上のアドレスは転送対象にはせず、カウンタをインクリメントして次のアドレスに進む。
【００２３】
データ転送部１５は、記録領域１４に保存した少なくとも一つのシステムメモリ２上のアドレスに基づいて、要求されたデータ転送を行う。データ転送部１５は、システムメモリ２上の複数のアドレスからエンドポイント情報を参照し、複数のエンドポイント情報に基づいて、要求されたデータ転送を繰り返す。データ転送部１５は、システムメモリ２上の一つのアドレスから参照されるエンドポイント情報に一つ以上のデータ転送を行い、システムメモリ２上の各アドレス対応するエンドポイント情報によって要求されたデータ転送のデータ量になるまで、繰り返して転送する。データ転送部１５は、一度のデータ転送を自己のホストコントローラ１のデータ転送に割り当てられた時間内（自己の転送時間内）で行う。具体的には、転送するデータをパケットに割り当て、パケットの転送を割り当てられた時間内において繰り返す。また、データ転送部１５は、データ転送するデータを一時的にバッファ１７へ保持させる。
【００２４】
バッファ１７は、ホスト装置７とデバイス装置９との間で転送するデータを一時的に保持する記憶領域である。
【００２５】
図２では、システムメモリ２にエンドポイント情報が５つ保持されている状況を示している。左側の数値はシステムメモリ２上のアドレスであり、アドレスの右側は、エンドポイント情報である。エンドポイント情報は、デバイス装置９から通知されたエンドポイント情報（Ｍ−１、Ｍ−２、Ｈ−１〜Ｈ−３）に、次に読み出すエンドポイント情報が保持されているアドレス（以降、「次のアドレス」という）が付加されてシステムメモリ２内に保持されている。また、データ転送に寄与するエンドポイント情報には、転送するデータを保持するシステムメモリ２上のアドレスが含まれている。ここで、図２において、エンドポイント情報Ｍ−１、Ｍ−２はワイヤレスＵＳＢデバイス８−１から通知され、エンドポイント情報Ｈ−１〜Ｈ−３はワイヤレスＵＳＢデバイス８−２から通知されているとする。なお、図２では、環状に構成されているエンドポイント情報を一例として説明したが、直線的に構成されているエンドポイント情報であってもよい。この場合、最後のエンドポイント情報に終端情報があり、最後であることを把握することができる。
【００２６】
続いて、ホストコントローラ装置１がシステムメモリ２に保持するエンドポイント情報へのアクセスする順番について説明する。図３は、エンドポイント情報を環状に読み込むことを説明する図であり、（ａ）は、システムメモリ２に保持されるエンドポイント情報の一例を示し、（ｂ）は、エンドポイント情報を読み出す順番を示し、（ｃ）は、有効エンドポイント情報のみを読み出す状態を示す。ＵＳＢでは、リストアドレス（List Address）に最初に読み出すエンドポイント情報のアドレスが保持されている。データ転送を行う場合、ホストコントローラ装置１は、まず、リストアドレスに保持されているアドレスに配置されたエンドポイント情報を読み込み、続いて、読み出したエンドポイント情報に含まれる次のアドレスのエンドポイント情報を読み出す。ここでは、リストアドレスに１００が格納されていると仮定する。
【００２７】
具体的には、ホストコントローラ装置１は、図３（ａ）に示す（１）〜（５）の順番にエンドポイント情報を読み出す。従って、図３（ｂ）に示すように、ホストコントローラ装置１は、Ｍ−１、Ｍ−２、Ｈ−１、Ｈ−３、Ｈ−２の順番にエンドポイント情報を解析することになる。このとき、Ｍ−２とＨ−２のみが有効エンドポイント情報であり、その他は無効エンドポイント情報であったと仮定する。このような場合、ホストコントローラ装置１は、一度有効エンドポイント情報を解析した後、図３（ｃ）に示すようなループでエンドポイント情報を読み出すことが好ましいといえる。
【００２８】
そこで、本実施形態の送受信制御部１６は、システムメモリ２が保存するエンドポイント情報を解析した後、データ転送を要求する有効エンドポイント情報を参照するシステムメモリ２上のアドレスをホストコントローラ装置１内の記録領域１４に保存する。そして、送受信制御部１６は、保存したシステムメモリ２上のアドレスに基づいて、システムメモリ２へアクセスする。従って、無効エンドポイント情報をデータ転送の度に読み出す必要がなくなる。これにより、ホストコントローラ装置１がシステムメモリ２へアクセスする回数、特に無効エンドポイント情報を読み出す回数を削減することができる。この効果は記録領域１４に保存するシステムメモリ２上のアドレスの有無に関らず生じる。システムメモリ２上のアドレスが記録領域１４に保存されていない場合、ホストコントローラ装置１は、データ転送の処理を行う必要がないことを示す。また、一つ以上のシステムメモリ２上のアドレスが記録領域１４に保存されている場合、データ転送に寄与しないエンドポイント情報へアクセスすることなくデータ転送を行うことができる。
【００２９】
続いて、送受信制御部１６の動作について説明する。ホストコントローラ装置１の送受信制御部１６の動作の概略は、次のようになる。（１）有効エンドポイント情報を特定するシステムメモリ２上のアドレスを記録領域１４へ保存、（２）データ転送、（３）ハンドシェイク受信、（４）システムメモリ２に保持するエンドポイント情報を更新。送受信制御部１６は、（２）〜（４）の処理を、有効エンドポイント情報がなくなるまで繰り返す。以下、具体的なフローチャートに基づいて動作例を説明する。ここでは、（１）を情報選択部１３が実施し、（２）〜（４）をデータ転送部１５が実施する場合を説明する。
【００３０】
図４は、情報選択部の動作例を示すフローチャートである。情報選択部１３は、ホストコントローラ装置１の電源がＯＮになると（Ｓ１１）、システムメモリ２からエンドポイント情報を読み出す（Ｓ１２）。始めにエンドポイント情報を読み出すとき、情報選択部１３は、リストアドレスに保持されているアドレスに配置されたエンドポイント情報を読み出す。続いて、情報選択部１３は、読み出したエンドポイント情報を解析し、データ転送が要求されている有効エンドポイント情報であるかを解析する（Ｓ１３）。有効エンドポイント情報である場合（Ｓ１４でＹｅｓ）、情報選択部１３は、記録領域１４にシステムメモリ２上のアドレスを保存する（Ｓ１５）。有効エンドポイント情報でない場合（Ｓ１４でＮｏ）、ステップＳ１４の処理を行わない。
【００３１】
続いて、情報選択部１３は、読み出したエンドポイント情報に付加された次のアドレスがリストアドレスに保持されているアドレスと一致しない場合、次のエンドポイント情報が有ると判断し（Ｓ１６でＹｅｓ）、ステップＳ１２からの処理を繰り返す。このとき、情報選択部１３は次のアドレスに配置されたエンドポイント情報をシステムメモリ２から読み出す（Ｓ１２）。以降の処理は上記と同様である。これに対して、情報選択部１３は、次のアドレスがリストアドレスに保持されているアドレスと一致する場合、エンドポイント情報全部を解析したと判断し（Ｓ１６でＮｏ）、待ち状態にはいる（Ｓ１７）。情報選択部１３は、システムメモリ２が保持するエンドポイント情報が更新された場合、更新通知を受け取り（Ｓ１７で通知）、ステップＳ１２からの処理を繰り返す。具体的には、情報選択部１３は、ホスト装置７上で動作しているドライバソフトウェアからのアップデート通知（ＰＣＩレジスタのライト）を受ける。また、情報選択部１３は、ホストコントローラ装置１の電源がＯＦＦになったり、異常の発生が通知された場合（Ｓ１７でＯＦＦ・異常）、処理を終了する。
【００３２】
このようにして、記録領域１４にシステムメモリ２上のアドレスが保存されることになる。例えば、図３に示したエンドポイント情報について、情報選択部１３がエンドポイント情報を解析・保存した結果例を図５に示す。情報選択部１３は、データ転送を要求するエンドポイント情報の数のシステムメモリ２上のアドレスを、例えば記録領域１４ａのように保存する。データ転送部１５は、記録領域１４に保存されたシステムメモリ２上のアドレスに基づいてデータ転送を実施する。
【００３３】
続いてデータ転送部１５の動作について説明する。図６は、データ転送部の動作例を示すフローチャートである。
データ転送部１５は、情報選択部１３からデータ転送が要求されていることが通知され、初期処理を実施する（Ｓ２１）。例えば、カウンタの初期化などの初期処理を実施する。続いて、記録領域１４に保存されているアドレスを順番に読み出す（Ｓ２２）。データ転送部１５は、読み出したアドレスに基づいてシステムメモリ２に配置されたエンドポイント情報をシステムメモリ２から読み出す（Ｓ２３）。読み出す順番は、例えばカウンタなどにより何番目のシステムメモリ２上のアドレスであるかを指定する。続いて、データ転送部１５は、エンドポイント情報により要求されたデータ転送を行う（Ｓ２４）。このとき、データ転送部１５は、例えば、システムメモリ２上の一つのアドレスのデータ転送を予め決められた時間の範囲（自己の転送時間の範囲）で実施し、エンドポイント情報により要求されたデータ転送が完了しない場合は、次のデータ転送において残りのデータを転送する。
【００３４】
データ転送部１５は、データ転送に対するハンドシェイクを受信し（Ｓ２５）、受信したハンドシェイクの結果に基づいて、当該エンドポイント情報によるデータ転送が完了したかを判断する（Ｓ２６）。データ転送が完了している場合（Ｓ２６でＹｅｓ）、データ転送部１５は、記録領域１４から当該エンドポイント情報のアドレスを削除する（Ｓ２７）。一方、データ転送が完了していない場合（Ｓ２６でＮｏ）、ステップＳ２７の処理を行わない。続いて、データ転送部１５は、今回のデータ転送をシステムメモリ２内のエンドポイント情報へ反映させる（Ｓ２８）。データ転送部１５は、記録領域１４にアドレスが保存されているかを判断し、アドレスが保存されている場合（Ｓ２９でＹｅｓ）、ステップ３１からの処理を繰り返す。記録領域１４にアドレスが保存されてない場合（Ｓ２９でＮｏ）、データ転送部１５は、処理を終了する。データ転送が完了しない場合は、途中経過としてシステムメモリを更新する。カウンタが進み再度指定されると、続きから転送を開始する。
【００３５】
図６の動作例において、例えば図３（ｃ）のような有効エンドポイント情報がある場合、記録領域１４は、Ｍ−２とＨ−２のエンドポイント情報に対応するシステムメモリ２上のアドレスを保存する。データ転送部１５は、ステップＳ２３において、Ｍ−２とＨ−２のエンドポイント情報をシステムメモリ２から順番に繰り返して読み出すことになる。また、Ｍ−２とＨ−２の一方のデータ転送が終了した場合には、他方のエンドポイント情報をシステムメモリ２から続けて読み出すことになる。
【００３６】
ここで、システムメモリ２へのアクセス回数について検討する。システムメモリ２へのアクセスは、情報選択部１３がまず始めに有効エンドポイント情報を選択するために全部のエンドポイント情報の数だけシステムメモリ２からエンドポイント情報を読み出すが、その後、有効エンドポイント情報のみをアクセスすればよいことになる。従って、ホストコントローラ装置１は、一度有効エンドポイント情報を選択すると、システムメモリ２が保持するエンドポイント情報を順番に読み出す必要がなくなり、システムメモリ２へのアクセス数を削減できる。
【００３７】
以上説明したように本実施形態によれば、有効エンドポイント情報を選択し、有効エンドポイント情報が保持されているシステムメモリ２のアドレスを記録領域１４へ保存することにより、無効エンドポイント情報を読み出す回数を削減することができる。このため、データ転送効率を向上させることが可能になる。また、本実施形態は、ホストコントローラ装置に配置するメモリ量に制限がある場合にもシステムメモリ２上のアドレスを保存に必要なメモリ量はエンドポイント情報を保存する場合に比べ少ないため、本発明を広く適用することが期待できる。また、ホストコントローラ装置１が接続するデバイス装置９から要求されるデータ転送が多い場合、あるいはデバイス装置９の数が多い場合にも、本発明を適用することが容易になる。
【００３８】
なお、上記実施形態では、記録領域１４にシステムメモリ２上のアドレスを保存する場合を説明したが、エンドポイント情報を一時的に記憶領域１４に保存してもよい。これにより、当該有効エンドポイント情報により要求されるデータ転送をホストコントローラ装置１内で完了することが可能になり、有効エンドポイント情報をシステムメモリ２から読み出す回数を削減することができる。また、有効エンドポイント情報のうちデータ転送に関連する部分を記録領域１４に保存することによっても、システムメモリ２へのアクセス回数を削減することができる。有効エンドポイント情報の一部分とすることにより、全部を保存する場合に比べ、保存に要するメモリ量を削減することができる。
【００３９】
（実施形態２）
実施形態１では、システムメモリに配置される複数のエンドポイント情報のうち、データ転送に寄与するエンドポイント情報を選択し、選択したエンドポイント情報を、有効エンドポイント情報としてホストコントローラ装置１内の記録領域１４に保存する場合について説明する。ホストコントローラ装置１の構成は図２と同様である。以下に、送受信制御部１６の動作のうち、実施形態１と異なる部分を中心に説明する。
【００４０】
情報選択部１３は、基本的に図４のフローチャートの動作を実施するが、ステップ１５において、記録領域１４にシステムメモリ２上のアドレスに加え、有効エンドポイント情報を保存する。その他の動作は実施形態１と同様である。例えば、図３に示したエンドポイント情報について、情報選択部１３が解析・保存した結果を図７に示す。図５と異なり、記録領域１４ｂに示すように、エンドポイント情報が配置されているシステムメモリ２上のアドレスとエンドポイント情報とを組み合わせて保存している例を示している。
【００４１】
次に、データ転送部１５の動作について説明する。図８は、実施形態２のデータ転送部の動作例を示すフローチャートである。図８中、図６と同じステップ番号をつけた動作は図６と同様である。まず、データ転送部１５は、初期処理を実施し（Ｓ２１）、データ転送部１５は、記録領域１４に保存されている有効エンドポイント情報を順番に読み出す（Ｓ３１）。読み出す順番は、例えばカウンタなどにより何番目の有効エンドポイント情報であるかを指定する。続いて、データ転送部１５は、エンドポイント情報により要求されたデータ転送を行う（Ｓ２４）。一度に転送するデータ量等は、実施形態１と同様である。
【００４２】
ハンドシェイク受信後（Ｓ２５）、データ転送部１５は、記録領域１４のエンドポイント情報を更新する（Ｓ３２）。例えば、ハンドシェイクでデータ転送済みのデータに関する情報をエンドポイント情報から除き、再送する必要のあるデータに関する情報は残しておくなどの処理を行う。さらに、エンドポイント情報により要求されたデータ転送が完了している場合は、記録領域１４から当該エンドポイント情報を削除する。さらに、データ転送部１５は、エンドポイント情報によって要求されたデータ転送が完了している場合（Ｓ２６でＹｅｓ）、システムメモリ２の当該エンドポイント情報を更新する（Ｓ３３）。データ転送部１５は、記録領域１４に保存するシステムメモリ２上のアドレスを用いてエンドポイント情報を更新する。データ転送が未完了の場合（Ｓ２６でＮｏ）、ステップＳ２７の処理を行わない。次に、データ転送部１５は、記録領域１４にエンドポイント情報が保存されている場合（Ｓ３４でＹｅｓ）、ステップＳ２２の処理から繰り返す。記録領域１４にエンドポイント情報が保存されていない場合（Ｓ３４でＮｏ）、処理を終了する。
【００４３】
以上説明したように本実施形態によれば、有効エンドポイント情報を選択し、記録領域１４へ保存することにより、無効エンドポイント情報を読み出す回数を削減することができる。また、記録領域１４へ有効エンドポイント情報を保存するため、当該有効エンドポイント情報により要求されるデータ転送をホストコントローラ装置１内で完了することが可能になり、有効エンドポイント情報をシステムメモリ２から読み出す回数を削減することができる。このようにして、データ転送効率を向上させることが可能になる。
【００４４】
以上のように、本発明に係る好適な実施形態によれば、システムメモリ２上に保持されているエンドポイント情報のうち、データ転送を要求している有効エンドポイント情報を特定するシステムメモリ２のアドレスを、ホストコントローラ装置１内の記録領域１４に保存することにより、データ転送に寄与しない無効エンドポイント情報にアクセスする回数を削減することができる。有効エンドポイント情報をホストコントローラ装置１内の記録領域に保存することにより、システムメモリ２上の有効エンドポイント情報へアクセスする回数をさらに削減することができる。これらにより、データ転送効率の向上が期待できる。
【００４５】
なお、上記各実施形態で示した記録領域へ転送要求情報を保存する例は一例であり、これらに限定されるものではない。また、転送要求情報として記録領域１４へ保存する有効エンドポイント情報を特定する情報の具体例は一例を示したものであり、システムメモリ２上のエンドポイント情報へのアクセスの回数を削減するような情報であれば、上記で説明した以外の情報それぞれ、あるいは情報の組み合わせであってもよい。
【００４６】
なお、本発明は上記に示す実施形態に限定されるものではない。本発明の範囲において、上記実施形態の各要素を、当業者であれば容易に考えうる内容に変更、追加、変換することが可能である。
【図面の簡単な説明】
【００４７】
【図１】本発明に係るワイヤレスＵＳＢの通信を行うシステムの構成例を示す図である。
【図２】本発明の実施形態に係るホストコントローラ装置の構成例を示すブロック図である。
【図３】エンドポイント情報を環状にリンクして読み込むことを説明する図である。（ａ）は、システムメモリに保持されるエンドポイント情報の一例を示し、（ｂ）は、エンドポイント情報を読み出す順番を示し、（ｃ）は、有効エンドポイント情報のみを読み出す状態を示す。
【図４】送受信制御部の動作例を示すフローチャートである。
【図５】転送要求情報としてシステムメモリのアドレスを記録領域に保存した例を示す図である。
【図６】実施形態１のデータ転送部の動作例を示すフローチャートである。
【図７】転送要求情報としてシステムメモリのアドレスと有効エンドポイント情報とを記録領域に保存した例を示す図である。
【図８】実施形態２のデータ転送部の動作例を示すフローチャートである。
【符号の説明】
【００４８】
１  ホストコントローラ装置、２  システムメモリ、３  ＣＰＵ、４  メモリ、５  ＰＣＩバス５、６  ＰＣＩバスコントローラ、７  ホスト装置、８  ワイヤレスＵＳＢデバイス、９  デバイス装置、１１  ホスト側インターフェース（ホスト側Ｉ／Ｆ）、１２  デバイス側インターフェース（デバイス側Ｉ／Ｆ）、１３  情報選択部、１４、１４ａ、１４ｂ  記録領域、１５  データ転送部、１６  送受信制御部、１７  バッファ
【図１】
2009093418.tif 000003
【図２】
2009093418.tif 000004
【図３】
2009093418.tif 000005
【図４】
2009093418.tif 000006
【図５】
2009093418.tif 000007
【図６】
2009093418.tif 000008
【図７】
2009093418.tif 000009
【図８】
2009093418.tif 000010