(57)【特許請求の範囲】
【請求項１】
システムメモリと、
前記システムメモリ上のアドレスが設定されるレジスタを備え、前記システムメモリ上に構成される通信制御用のデータ構造体を前記レジスタに設定されたアドレスを基に参照しながら外部接続される各種デバイスとの通信を実行するデバイスコントローラと、
前記通信制御用のデータ構造体を前記システムメモリ上に構成し、このデータ構造体を参照するためのアドレスを前記デバイスコントローラの前記レジスタに設定して、前記外部接続される各種デバイスとの通信を前記デバイスコントローラに実行させる基本入出力システムと、
前記通信制御用のデータ構造体を前記基本入出力システムとは別に前記システムメモリ上に独自に構成し、前記外部接続される各種デバイスとの通信を前記デバイスコントローラに実行させる場合、前記デバイスコントローラの前記レジスタに設定されているアドレスを退避し、独自に構成したデータ構造体を参照するためのアドレスを前記デバイスコントローラの前記レジスタに設定して、前記外部接続される各種デバイスとの通信を前記デバイスコントローラに実行させ、その終了後、前記退避したアドレスを前記デバイスコントローラの前記レジスタに再設定するデバイスドライバと、
を具備することを特徴とする情報処理装置。
【請求項２】
前記デバイスドライバは、前記デバイスコントローラの前記レジスタにアドレスを設定する場合、前記デバイスコントローラを停止させ、その設定後、再稼働させることを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記デバイスドライバは、独自に構成したデータ構造体によって指示した少なくとも１回以上の前記外部接続される各種デバイスとの通信が１回終了する毎に、前記デバイスコントローラを前記基本入出力システム配下に復帰させるべく、前記退避したアドレスを前記デバイスコントローラの前記レジスタに再設定することを特徴とする請求項１記載の情報処理装置。
【請求項４】
前記デバイスコントローラは、ＵＳＢ（Universal Serial Bus）規格に準拠した通信手順で前記外部接続される各種デバイスとの通信を実行することを特徴とする請求項１記載の情報処理装置。
【請求項５】
システムメモリと、前記システムメモリ上のアドレスが設定されるレジスタを備え、前記システムメモリ上に構成される通信制御用のデータ構造体を前記レジスタに設定されたアドレスを基に参照しながら外部接続される各種デバイスとの通信を実行するデバイスコントローラと、前記通信制御用のデータ構造体を前記システムメモリ上に構成し、このデータ構造体を参照するためのアドレスを前記デバイスコントローラの前記レジスタに設定して、前記外部接続される各種デバイスとの通信を前記デバイスコントローラに実行させる基本入出力システムとを具備するコンピュータにおける前記デバイスコントローラの駆動制御方法であって、
前記コンピュータ上で動作する、前記基本入出力システムとは別に前記外部接続される各種デバイスとの通信を前記デバイスコントローラに実行させるデバイスドライバが、
前記通信制御用のデータ構造体を前記基本入出力システムとは別に前記システムメモリ上に独自に構成し、
前記外部接続される各種デバイスとの通信を前記デバイスコントローラに実行させる場合、前記デバイスコントローラの前記レジスタに設定されているアドレスを退避し、独自に構成したデータ構造体を参照するためのアドレスを前記デバイスコントローラの前記レジスタに設定して、前記外部接続される各種デバイスとの通信を前記デバイスコントローラに実行させ、その終了後、前記退避したアドレスを前記デバイスコントローラの前記レジスタに再設定する、
ことを特徴とするデバイスコントローラの駆動制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、例えばＵＳＢ（Universal Serial Bus）コネクタを備えるパーソナルコンピュータに適用して好適な、前記ＵＳＢコネクタを介して接続されるＵＳＢデバイスとの通信を実行するＵＳＢコントローラの駆動制御技術に関する。
【背景技術】
【０００２】
近年、バッテリ駆動可能で携行容易なノートブックタイプのパーソナルコンピュータが広く普及している。この種のコンピュータでは、例えばＵＳＢコネクタを複数備え、必要に応じて、様々なデバイス（ＵＳＢデバイス）を接続して利用できるように構成されるのが一般的である。
【０００３】
換言すれば、基本的なリソースのみを搭載することにより、コンピュータ本体の小型軽量化が図られている。そして、これらのリソースを有効活用するための提案が、これまで種々なされている（例えば特許文献１等参照）。
【特許文献１】特開２００１−１７５４６３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ＵＳＢコネクタを介して接続されるＵＳＢデバイスとの通信は、（コンピュータ本体にＵＳＢデバイスが内蔵される場合は、この内蔵ＵＳＢデバイスとの通信を含めて）ＵＳＢコントローラによって実行される。そして、このＵＳＢコントローラの駆動制御は、オペレーティングシステム（ＯＳ）の起動前には、ＢＩＯＳ（Basic Input/Output System：基本入出力システム）によって司られる。
【０００５】
これに対して、特殊な機能を備えるが故に特殊な通信が必要なＵＳＢデバイスとの通信をＵＳＢコントローラに行わせる場合には、当該ＵＳＢコントローラを、ＢＩＯＳとは別途用意したＵＳＢドライバによって駆動制御する。よって、通常のＵＳＢデバイスと特殊なＵＳＢデバイスとが、同一のＵＳＢコントローラ配下に存在する場合には、この１つのＵＳＢコントローラをＢＩＯＳとＵＳＢドライバとで個別に制御することが行われることとなる。
【０００６】
ＵＳＢデバイスとの通信をＵＳＢコントローラに行わせるためには、フレームリスト、キューヘッド、トランスファデスクリプタ、データ転送用バッファからなる通信制御用のデータ構造体をシステムメモリ上に構成する必要がある。そして、これまでは、前述のように１つのＵＳＢコントローラをＢＩＯＳとＵＳＢドライバとで個別に制御する場合、ＵＳＢドライバは、当該データ構造体のエントリー部をなすフレームリストはＢＩＯＳが用意したものを流用し、キューヘッド、トランスファデスクリプタ、データ転送用バッファのみを独自に用意していた。
【０００７】
そのため、ＢＩＯＳが用意したフレームリストがＢＩＯＳの予期しないタイミングで上書きされることが発生し得る。そこで、双方の動作に支障をきたすことがないように、ＵＳＢドライバの動作中にはＢＩＯＳによるフレームリストの更新を停止させておくことが行われている。
【０００８】
しかしながら、そうすると、ＵＳＢドライバの動作が終了するまでは、実際にＵＳＢデバイスとの通信を行っているかどうかに関係なく、ＢＩＯＳは、ＵＳＢコントローラを使用してＵＳＢデバイスとの通信を行うことができなくなってしまう。従って、ＵＳＢドライバが動作中もＢＩＯＳの制御が必要なＵＳＢデバイスは、ＵＳＢドライバが制御するＵＳＢコントローラとは別のＵＳＢコントローラに接続しなければならないという制限があった。
【０００９】
この発明は、このような事情を考慮してなされたものであり、同一のＵＳＢコントローラに対するＢＩＯＳおよびＵＳＢドライバによる適切な駆動制御を実現する情報処理装置およびデバイスコントローラの駆動制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
前述の目的を達成するために、この発明の情報処理装置は、システムメモリと、前記システムメモリ上のアドレスが設定されるレジスタを備え、前記システムメモリ上に構成される通信制御用のデータ構造体を前記レジスタに設定されたアドレスを基に参照しながら外部接続される各種デバイスとの通信を実行するデバイスコントローラと、前記通信制御用のデータ構造体を前記システムメモリ上に構成し、このデータ構造体を参照するためのアドレスを前記デバイスコントローラの前記レジスタに設定して、前記外部接続される各種デバイスとの通信を前記デバイスコントローラに実行させる基本入出力システムと、前記通信制御用のデータ構造体を前記基本入出力システムとは別に前記システムメモリ上に独自に構成し、前記外部接続される各種デバイスとの通信を前記デバイスコントローラに実行させる場合、前記デバイスコントローラの前記レジスタに設定されているアドレスを退避し、独自に構成したデータ構造体を参照するためのアドレスを前記デバイスコントローラの前記レジスタに設定して、前記外部接続される各種デバイスとの通信を前記デバイスコントローラに実行させ、その終了後、前記退避したアドレスを前記デバイスコントローラの前記レジスタに再設定するデバイスドライバと、を具備することを特徴とする。
【００１１】
また、この発明のデバイスコントローラの駆動制御方法は、システムメモリと、前記システムメモリ上のアドレスが設定されるレジスタを備え、前記システムメモリ上に構成される通信制御用のデータ構造体を前記レジスタに設定されたアドレスを基に参照しながら外部接続される各種デバイスとの通信を実行するデバイスコントローラと、前記通信制御用のデータ構造体を前記システムメモリ上に構成し、このデータ構造体を参照するためのアドレスを前記デバイスコントローラの前記レジスタに設定して、前記外部接続される各種デバイスとの通信を前記デバイスコントローラに実行させる基本入出力システムとを具備するコンピュータにおける前記デバイスコントローラの駆動制御方法であって、前記コンピュータ上で動作する、前記基本入出力システムとは別に前記外部接続される各種デバイスとの通信を前記デバイスコントローラに実行させるデバイスドライバが、前記通信制御用のデータ構造体を前記基本入出力システムとは別に前記システムメモリ上に独自に構成し、前記外部接続される各種デバイスとの通信を前記デバイスコントローラに実行させる場合、前記デバイスコントローラの前記レジスタに設定されているアドレスを退避し、独自に構成したデータ構造体を参照するためのアドレスを前記デバイスコントローラの前記レジスタに設定して、前記外部接続される各種デバイスとの通信を前記デバイスコントローラに実行させ、その終了後、前記退避したアドレスを前記デバイスコントローラの前記レジスタに再設定する、ことを特徴とする。
【発明の効果】
【００１２】
この発明によれば、同一のＵＳＢコントローラに対するＢＩＯＳおよびＵＳＢドライバによる適切な駆動制御を実現する情報処理装置およびデバイスコントローラの駆動制御方法を提供することができる。
【発明を実施するための最良の形態】
【００１３】
以下、図面を参照して本発明の一実施形態を説明する。
【００１４】
図１は、本実施形態に係る情報処理装置の概略構成を示す図である。この情報処理装置１は、例えばバッテリ駆動可能で携行容易なノートブックタイプのパーソナルコンピュータとして実現されている。
【００１５】
本情報処理装置１は、図１に示すように、ＣＰＵ１１、システムＢＩＯＳ１２、システムメモリ１３、ＵＳＢコントローラ１４等を備えている。また、必要に応じて、種々のＵＳＢデバイス２がＵＳＢポート１４Ｂに接続される。
【００１６】
ＣＰＵ１１は、本情報処理装置の動作を制御するプロセッサであり、システムメモリ１３にロードされたオペレーティングシステム、ユーティリティ、アプリケーション等の各種プログラムを実行する。各種プログラムの１つとして、ＵＳＢポート１４Ｂに接続されたＵＳＢデバイス２との通信を行わせるべくＵＳＢコントローラ１４を制御するためのＵＳＢドライバ１０１が存在する。
【００１７】
また、ＣＰＵ１１は、システムＢＩＯＳ１２も実行する。システムＢＩＯＳ１２は、ハードウェア制御のためのプログラムであり、ＵＳＢコントローラ１４を制御して、ＵＳＢポート１４Ｂに接続されたＵＳＢデバイス２との通信を行う機能を有している。
【００１８】
つまり、本情報処理装置１では、ＵＳＢコントローラ１４を制御して、ＵＳＢポート１４Ｂに接続されたＵＳＢデバイス２との通信を行う機能が、システムＢＩＯＳ１２とＵＳＢドライバ１０１との２カ所に設けられている。これは、ＵＳＢデバイス２には沢山の種類があり、システムＢＩＯＳ１２ですべてのＵＳＢデバイス２に対応することは不可能であるためである。そこで、システムＢＩＯＳ１２が対応できないＵＳＢデバイス２との通信を行う際に、ＵＳＢドライバ１０１が併用されることになる。
【００１９】
そして、ＵＳＢコントローラ１４は、システムＢＩＯＳ１２またはＵＳＢドライバ１０１の制御下において、ＵＳＢポート１４Ｂに接続されたＵＳＢデバイス２との通信を実行する。システムＢＩＯＳ１２またはＵＳＢドライバ１０１の指示を入力するために、ＵＳＢコントローラ１４は、レジスタ１４Ａを備えている。このレジスタ１４Ａに、後述するフレームリストアドレス１０４が設定される。
【００２０】
一方、このＵＳＢコントローラ１４に対して、ＵＳＢポート１４Ｂに接続されたＵＳＢデバイス２との通信を実行させるために、システムＢＩＯＳ１２およびＵＳＢドライバ１０１のそれぞれは、通信制御用のデータ構造体を構成するための領域をシステムメモリ１３上に確保する（図１の１０２，１０３）。そして、システムＢＩＯＳ１２およびＵＳＢドライバ１０１は、このデータ構造体を参照するためのアドレス、具体的には、前述のフレームリストアドレス１０４をレジスタ１４Ａに設定する。
【００２１】
図２を参照して、このデータ構造体の構成、および、このデータ構造体がＵＳＢコントローラ１４からどのように参照されるかについて説明する。
【００２２】
図２に示すように、通信制御用のデータ構造体は、フレームリスト１０５、キューヘッド１０６、トランスファデスクリプタ１０７、データ転送用バッファ１０８によって構成される。
【００２３】
フレームリスト１０５は、ＵＳＢコントローラ１４に処理させるキューヘッド１０６のアドレスを設定するリストである。キューヘッド１０６は、ＵＳＢコントローラ１４に処理させるトランスファデスクリプタ１０７のアドレスを設定する領域である。トランスファデスクリプタ１０７は、通信を行いたいＵＳＢデバイス２に関する情報や通信対象としたいデータ転送用バッファ１０８上のデータのアドレスを設定する領域である。
【００２４】
そして、ＵＳＢコントローラ１４は、レジスタ１４Ａに設定されたフレームリストアドレス１０４を基に、フレームリスト１０５、キューヘッド１０６、トランスファデスクリプタ１０７、データ転送用バッファ１０８を順に参照して、ＵＳＢデバイス２との通信を実行する。
【００２５】
図３は、ＵＳＢコントローラ１４の機能ブロックを示す図である。ここでは、１つのＵＳＢコントローラ１４が最大８台のＵＳＢデバイス２との通信を並行して実行する場合を想定する。
【００２６】
コンピュータ本体と周辺機器との間のインターフェース規格であるＵＳＢには、１．５Ｍｂｐｓまたは１２Ｍｂｐｓのデータ転送レートで通信可能なＵＳＢ１．１と、このＵＳＢ１．１の上位規格であって、さらに４８０Ｍｂｐｓのデータ転送レートで通信可能なＵＳＢ２．０が存在する。そのため、ＵＳＢコントローラ１４は、ＵＳＢ２．０規格に準拠した通信を制御するＵＳＢ２．０コントロール部１４１と、ＵＳＢ１．１規格に準拠した通信を制御するＵＳＢ１．１コントロール部１４２とを併せ持っている。
【００２７】
ＵＳＢポート１４Ｂを介して接続されるＵＳＢデバイス２が、ＵＳＢ１．１規格に準拠した通信を行うものであった場合、当該ＵＳＢデバイス２との間の通信は、ＵＳＢ１．１コントロール部１４２のみによって実行される。一方、ＵＳＢ２．０規格に準拠した通信を行うＵＳＢデバイス２の場合、ＵＳＢ１．１コントロール部１４２は、その処理をＵＳＢ２．０コントロール部１４１に依頼し、この依頼を受けたＵＳＢ２．０コントロール部１４１は、ＵＳＢ１．１コントロール部１４２経由で当該ＵＳＢデバイス２との間の通信を実行する。
【００２８】
そして、この場合のように、複数台のＵＳＢデバイス２との通信を並行して実行させることを前提として、ＵＳＢコントローラ１４には、通常、２つのＵＳＢデバイス２に対して１つのＵＳＢ１．１コントロール部１４２が設けられ（図３の（Ａ））、または、４つのＵＳＢデバイス２に対して１つのＵＳＢ１．１コントロール部１４２が設けられる（図３の（Ｂ））。なお、ＵＳＢ２．０コントロール部１４１は、いずれの場合も各ＵＳＢコントローラ１４に１つ設けられるのが一般的である。
【００２９】
ここで、システムＢＩＯＳ１２が対応可能なＵＳＢデバイス２と、システムＢＩＯＳ１２が対応不可能なＵＳＢデバイス２、即ち、ＵＳＢドライバ１０１によって対応させるＵＳＢデバイス２とを混在させてＵＳＢポート１４Ｂに接続する場合を考える。
【００３０】
前述したように、ＵＳＢコントローラ１４は、レジスタ１４Ａに設定されたフレームリストアドレス１０４を基に、フレームリスト１０５、キューヘッド１０６、トランスファデスクリプタ１０７、データ転送用バッファ１０８によって構成されるデータ構造体を参照して、ＵＳＢデバイス２との通信を実行する。そのため、従来のように、システムＢＩＯＳ１２が用意したフレームリスト１０５をＵＳＢドライバ１０１が流用する場合、当該ＵＳＢドライバ１０１の動作中は、システムＢＩＯＳ１２がＵＳＢコントローラ１４を制御してＵＳＢデバイス２との通信を実行することを制限する必要がある。よって、ＵＳＢドライバ１０１の動作中もシステムＢＩＯＳ１２が対応するＵＳＢデバイス２との通信を行う必要がある場合には、互いに異なるＵＳＢコントローラ１４に接続しなければならなくなる。即ち、図３に示すように、１つのＵＳＢコントローラ１４で最大８台のＵＳＢデバイス２を制御できるにも関わらず、また、仮に、ＵＳＢポート１４Ｂに空きがあったとしても、もう１つＵＳＢコントローラ１４を別途追加して搭載しなければならない。
【００３１】
そこで、本情報処理装置１は、同一のＵＳＢコントローラ１４に対するシステムＢＩＯＳ１２およびＵＳＢドライバ１０１による適切な駆動制御を実現する仕組みを備えたものであり、以下、この点について詳述する。
【００３２】
図４は、システムＢＩＯＳ１２およびＵＳＢドライバ１０１のそれぞれが、システムメモリ１３上に確保する領域の内訳を示す図であり、（Ａ）には、本情報処理装置１においてシステムメモリ１３上に確保される領域の内訳、また、（Ｂ）には、従来においてシステムメモリ１３上に確保される領域の内訳がそれぞれ示されている。
【００３３】
まず、図４（Ｂ）を参照して、従来においてシステムメモリ１３上に確保される領域の内訳を説明すると、ＵＳＢドライバ１０１は、自身が確保した領域１０３に、キューヘッド１０６、トランスファデスクリプタ１０７、データ転送用バッファ１０８を用意するものの、フレームリスト１０５は、システムＢＩＯＳ１２が用意したものを流用する（図４（Ｂ）のａ１）。
【００３４】
ＵＳＢドライバ１０１は、少なくとも１つのＵＳＢデバイス２との間で通信を開始する時、システムＢＩＯＳ１２によるフレームリスト１０５の設定内容を、自身が確保した領域１０３のその他ワークに退避し、すべてのＵＳＢデバイス２との通信を終了する時、この退避した設定内容をフレームリスト１０５に復元する。この場合、システムメモリ１３上でのデータ書き換えだけで済み、ＵＳＢコントローラ１４が備えるレジスタ１４Ａに設定されたフレームリストアドレス１０４の更新を行う必要はないが、ＵＳＢドライバ１０１の動作開始から動作終了まで、システムＢＩＯＳ１２が対応するＵＳＢデバイス２との通信は一切行うことができなくなる。
【００３５】
例えば、指紋を読み取ってユーザを認証するための（ＵＳＢドライバ１０１対応の）ＵＳＢデバイス２を使用する場合、当該ＵＳＢデバイス２との間で、読み取った指紋のイメージデータが数十回乃至数百回に分けて送受信されるとすると、そのすべての送受信が終了するまで、システムＢＩＯＳ１２対応のＵＳＢデバイス２はまったく使用できない状態となってしまう。
【００３６】
次に、図４（Ａ）を参照して、本情報処理装置１においてシステムメモリ１３上に確保される領域の内訳を説明すると、ＵＳＢドライバ１０１は、キューヘッド１０６、トランスファデスクリプタ１０７、データ転送用バッファ１０８に加えて、フレームリスト１０５も、自身が確保した領域１０３に独自に用意する（図４（Ｂ）のａ２）。
【００３７】
このフレームリスト１０５をＵＳＢコントローラ１４に参照させるためには、ＵＳＢコントローラ１４が備えるレジスタ１４Ａに当該フレームリストのアドレスを設定する必要がある。そのために、本情報処理装置１のＵＳＢドライバ１０１は、動作開始時、ＵＳＢコントローラ１４を一旦停止させ、レジスタ１４Ａの設定内容を、自身が確保した領域１０３のその他ワークに退避し、その上で、当該フレームリストのアドレスを、ＵＳＢコントローラ１４のレジスタ１４Ａに設定する。そして、ＵＳＢドライバ１０１は、停止させていたＵＳＢコントローラ１４を再起動する。その結果、ＵＳＢコントローラ１４は、ＵＳＢドライバ１０１の意図する通信をＵＳＢデバイス２との間で実行することになる。
【００３８】
また、ＵＳＢドライバ１０１は、ＵＳＢドライバ２との通信が終了したかを各回のデータ転送毎にチェックし、終了したら、再度ＵＳＢコントローラ１４を停止させ、自身が確保した領域１０３のその他ワークに退避した設定内容を、ＵＳＢコントローラ１４のレジスタ１４Ａに復元する。そして、ＵＳＢドライバ１０１は、停止させていたＵＳＢコントローラ１４を再起動する。その結果、ＵＳＢコントローラ１４は、システムＢＩＯＳ１２の意図する通信をＵＳＢデバイス２との間で再開することになる。
【００３９】
その後、ＵＳＢドライバ１０１は、ＵＳＢデバイス２との通信が必要となる度に、上記の処理、即ち、ＵＳＢコントローラ１４の停止→レジスタ１４Ａの更新→ＵＳＢコントローラ１４の再起動→ＵＳＢコントローラ１４の停止→レジスタ１４Ａの復元→ＵＳＢコントローラ１４の再起動、を繰り返す。そして、すべてのＵＳＢデバイス２との通信を終了した時、自身の処理を終了する。
【００４０】
このように、本情報処理装置１では、ＵＳＢドライバ１０１が、フレームリスト１０５を独自に用意し、かつ、当該フレームリスト１０５を適宜にＵＳＢコントローラ１４に参照させるべく動作することにより、当該ＵＳＢドライバ１０１の動作開始後、その動作終了を待機することなく、システムＢＩＯＳ１２が対応するＵＳＢデバイス２との通信が可能となる。よって、ＵＳＢドライバ１０１の動作中もシステムＢＩＯＳ１２が対応するＵＳＢデバイス２との通信を行う必要がある場合においても、ＵＳＢコントローラ１４を別途追加して搭載するといったことは不要となる。
【００４１】
図５は、本情報処理装置１におけるＵＳＢドライバ１０１の動作手順を示すフローチャートである。
【００４２】
ＵＳＢドライバ１０１は、ＵＳＢデバイス２との通信が必要となると（ステップＡ１のＹＥＳ）、まず、システムメモリ１３上に確保した領域に通信制御用のデータ構造体を構成することにより、通信内容を設定する（ステップＡ２）。
【００４３】
次に、ＵＳＢドライバ１０１は、ＵＳＢコントローラ１４を一旦停止させ（ステップＡ３）、ＵＳＢコントローラ１４が備えるレジスタ１４Ａを更新して、当該ＵＳＢコントローラ１４が使用するフレームリストをシステムＢＩＯＳ１２用から自分用（ＵＳＢドライバ１０１用）へと切換える（ステップＡ４）。そして、この切換え後、ＵＳＢドライバ１０１は、停止させていたＵＳＢコントローラ１４を再起動させる（ステップＡ５）。その結果、目的のＵＳＢデバイス２との通信が開始される（ステップＡ６）。
【００４４】
この通信が終了すると（ステップＡ７のＹＥＳ）、ＵＳＢドライバ１０１は、再度ＵＳＢコントローラ１４を停止させ（ステップＡ８）、ＵＳＢコントローラ１４が備えるレジスタ１４Ａを更新して、当該ＵＳＢコントローラ１４が使用するフレームリストをシステムＢＩＯＳ１２用へと復帰させ（ステップＡ９）、停止させていたＵＳＢコントローラ１４を再起動させる（ステップＡ１０）。
【００４５】
ＵＳＢドライバ１０１は、すべてのＵＳＢデバイス２との通信が終了したかを調べ（ステップＡ１１）、終了していなければ（ステップＡ１１のＮＯ）、ステップＡ１〜ステップＡ１０の動作を繰り返す。一方、終了していたら（ステップＡ１１のＹＥＳ）、ＵＳＢドライバ１０１は、自身の処理を終了する。
【００４６】
以上のように、本情報処理装置１は、同一のＵＳＢコントローラ１４に対するシステムＢＩＯＳ１２およびＵＳＢドライバ１０１による適切な駆動制御を実現する。
【００４７】
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００４８】
【図１】この発明の一実施形態に係る情報処理装置の概略構成を示す図
【図２】同実施形態の情報処理装置で使用される通信制御用のデータ構造体の構成および当該データ構造体の参照手順を説明するための図
【図３】同実施形態の情報処理装置が搭載するＵＳＢコントローラの機能ブロックを示す図
【図４】同実施形態の情報処理装置上で動作するシステムＢＩＯＳおよびＵＳＢドライバのそれぞれがシステムメモリ上に確保する領域の内訳を示す図
【図５】同実施形態の情報処理装置におけるＵＳＢドライバの動作手順を示すフローチャート
【符号の説明】
【００４９】
１…情報処理装置、２…ＵＳＢデバイス、１１…ＣＰＵ、１２…システムＢＩＯＳ、１３…システムメモリ、１４…ＵＳＢコントローラ、１４Ａ…レジスタ、１４Ｂ…ＵＳＢポート、１０１…ＵＳＢドライバ、１０４…フレームリストアドレス、１０５…フレームリスト、１０６…キューヘッド、１０７…トランスファデスクリプタ、１０８…データ転送用バッファ、１４１…ＵＳＢ２．０コントロール部、１４２…ＵＳＢ１．１コントロール部。
【図１】
0004482044.tif 000002
【図２】
0004482044.tif 000003
【図３】
0004482044.tif 000004
【図４】
0004482044.tif 000005
【図５】
0004482044.tif 000006