(57)【要約】【課題】複数のコントローラに対するデバイスの割り当てを柔軟に制御することができる情報処理装置を実現する。【解決手段】実施形態によれば、情報処理装置は、第１および第２のコントローラと、スイッチと、制御手段とを備える。スイッチは、複数の外部コネクタの各々を第１および第２のコントローラのいずれか一方に接続する。制御手段は、複数の外部コネクタの内の第１の外部コネクタに外部デバイスが接続されたことが検出された場合、前記複数の外部コネクタに接続されている外部デバイスの数に応じて、前記第１の外部コネクタに接続された外部デバイスが割り当てられるべきコントローラを第１および第２のコントローラから選択し、第１の外部コネクタが前記選択されたコントローラに接続されるように前記スイッチを制御する。【選択図】図３
2013030063.tif 000002
【特許請求の範囲】
【請求項１】
第１および第２のコントローラと、
複数の外部コネクタと、
前記複数の外部コネクタの各々を前記第１および第２のコントローラのいずれか一方に接続するスイッチと、
前記複数の外部コネクタの各々に対する外部デバイスの接続を検出する検出部と、
前記複数の外部コネクタの内の第１の外部コネクタに外部デバイスが接続されたことが検出された場合、前記複数の外部コネクタに接続されている外部デバイスの数に応じて、前記第１の外部コネクタに接続された外部デバイスが割り当てられるべきコントローラを前記第１および第２のコントローラから選択し、前記第１の外部コネクタが前記選択されたコントローラに接続されるように前記スイッチを制御する制御手段とを具備する情報処理装置。
【請求項２】
前記制御手段は、前記複数の外部コネクタに接続されている外部デバイスの数が所定個数を超えるまでは前記第１の外部コネクタに接続された外部デバイスを前記第１のコントローラに優先的に割り当てるように構成されている請求項１記載の情報処理装置。
【請求項３】
前記制御手段は、前記複数の外部コネクタに接続されている外部デバイスの数が所定個数を超えるまでは前記第１の外部コネクタに接続された外部デバイスを前記第１のコントローラに優先的に割り当て、前記第２のコントローラをディスエーブル状態に維持するように構成されている請求項１記載の情報処理装置。
【請求項４】
前記制御手段は、前記第１のコントローラと前記第２のコントローラとに外部デバイスそれぞれが分散して割り当てるように構成されている請求項１記載の情報処理装置。
【請求項５】
前記制御手段は、第１動作モードおよび第２動作モードのいずれか一方で動作するように構成されており、前記第１動作モードの場合は、前記複数の外部コネクタに接続されている外部デバイスの数が所定個数を超えるまでは前記第１の外部コネクタに接続された外部デバイスを前記第１のコントローラに優先的に割り当て、前記第２動作モードの場合は、前記第１のコントローラと前記第２のコントローラに分散して外部デバイスそれぞれを分散して割り当てる請求項１記載の情報処理装置。
【請求項６】
前記制御手段が前記第１動作モードである間は、前記制御手段は、前記複数の外部コネクタに接続されている１以上の外部デバイスの数が所定個数を超えるまでの間、前記第２のコントローラをディスエーブル状態に維持するように構成されている請求項５記載の情報処理装置。
【請求項７】
前記情報処理装置の電力ソースが前記情報処理装置内のバッテリまたは外部電源のいずれであるかを判定し、前記電力ソースが前記バッテリである場合、前記制御手段を前記第１の動作モードに設定し、前記電力ソースが前記外部電源である場合、前記制御手段を前記第２の動作モードに設定する動作モード制御手段をさらに具備する請求項５記載の情報処理装置。
【請求項８】
前記第１のコントローラは内蔵デバイスが接続される第１ポートと、前記スイッチに接続される１以上の第２ポートとを備え、前記第２コントローラは、前記スイッチに接続される１以上の第３ポートを備え、
前記スイッチは、前記複数の外部コネクタの各々を前記１以上の第２ポートおよび前記１以上の第３ポートのいずれかのポートに接続するように構成されている請求項１記載の情報処理装置。
【請求項９】
情報処理装置の複数の外部コネクタの各々に対する外部デバイスの割り当てを制御する割り当て制御方法であって、
前記複数の外部コネクタの任意の一つの外部コネクタに外部デバイスが接続されたことが検出された場合、前記複数の外部コネクタに現在接続されている１以上の外部デバイスの数に応じて、前記任意の一つの外部コネクタに接続された外部デバイスが割り当てられるべきコントローラを、前記情報処理装置内の第１および第２のコントローラから選択し、
前記任意の一つの外部コネクタが前記選択されたコントローラに接続されるように、前記第１および第２のコントローラと前記複数の外部コネクタとの間に接続されたスイッチを制御する割り当て制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、複数の外部コネクタを備えた情報処理装置および同装置に適用される割り当て制御方法に関する。
【背景技術】
【０００２】
近年、ラップトップ型パーソナルコンピュータ（ＰＣ）、タブレットＰＣといった様々なコンピュータが開発されている。この種のコンピュータにおいては、外部デバイスを接続可能な幾つかの外部コネクタが設けられている。ユーザは、ＵＳＢデバイスのような外部デバイスを任意の外部コネクタに接続することよって、その外部デバイスをコンピュータにおいて使用することができる。
【０００３】
各外部デバイスは、コンピュータ内に設けられたホストコントローラによって制御される。最近では、サポート可能な外部コネクタ数を増加させるために、２つ以上のコントローラを内蔵するホストコントローラも利用され始めている。各コントローラは複数のポートを有しており、それらポートと外部コネクタは１対１形式で相互接続される。したがって、２つ以上のコントローラを含むホストコントローラを用いることにより、より多くの外部コネクタをサポートすることが可能となる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−２１３３９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
２つ以上のコントローラを内蔵するホストコントローラにおいては、各外部デバイスが２つのコントローラにどのように割り当てられるかによって、そのホストコントローラの電力消費またはパフォーマンスに影響が与えられる可能性がある。しかし、外部デバイスがどのコントローラに割り当てられるかは、ユーザが外部デバイスをどの外部コネクタに接続するかによって決定されてしまう。換言すれば、ユーザによってある外部コネクタに接続された外部デバイスは、その外部コネクタに対応するコントローラに割り当てられる。したがって、個々のコントローラに対する外部デバイスの割り当てをシステム内で制御するための新たな機能の実現が必要である。
【０００６】
本発明は、複数のコントローラに対するデバイスの割り当てを柔軟に制御することができる情報処理装置および割り当て制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
実施形態によれば、情報処理装置は、第１および第２のコントローラと、複数の外部コネクタと、スイッチと、検出部と、制御手段とを具備する。前記スイッチは、前記複数の外部コネクタの各々を前記第１および第２のコントローラのいずれか一方に接続する。前記検出部は、前記複数の外部コネクタの各々に対する外部デバイスの接続を検出する。前記制御手段は、前記複数の外部コネクタの内の第１の外部コネクタに外部デバイスが接続されたことが検出された場合、前記複数の外部コネクタに接続されている外部デバイスの数に応じて、前記第１の外部コネクタに接続された外部デバイスが割り当てられるべきコントローラを前記第１および第２のコントローラから選択し、前記第１の外部コネクタが前記選択されたコントローラに接続されるように前記スイッチを制御する。
【図面の簡単な説明】
【０００８】
【図１】実施形態に係る情報処理装置の外観を示す斜視図。
【図２】同実施形態の情報処理装置のシステム構成を示すブロック図。
【図３】同実施形態の情報処理装置に設けられた、バススイッチを含むポート割り当て制御サブシステムの構成例を示すブロック図。
【図４】同実施形態の情報処理装置によってデバイス接続検出時に実行されるＵＳＢポート割り当て制御処理の手順の例を示すフローチャート。
【図５】同実施形態の情報処理装置によってデバイス抜き出し検出時に実行されるＵＳＢポート割り当て制御処理の手順の例を示すフローチャート。
【図６】同実施形態の情報処理装置によってデバイス接続検出時に実行されるＵＳＢポート割り当て制御処理の手順の他の例を示すフローチャート。
【図７】同実施形態の情報処理装置によってデバイス抜き出し検出時に実行されるＵＳＢポート割り当て制御処理の手順の他の例を示すフローチャート。
【図８】同実施形態の情報処理装置によって表示されるＵＳＢポート割り当て設定画面の例を示す図。
【図９】同実施形態の情報処理装置によって実行されるモード切替処理の手順を示すフローチャート。
【発明を実施するための形態】
【０００９】
以下、実施の形態について図面を参照して説明する。  
図１は、一実施形態に係る情報処理装置の外観を示す斜視図である。この情報処理装置は、たとえば、ノートブックタイプのパーソナルコンピュータ（ＰＣ）、タブレットＰＣ、ＰＤＡ等として実現され得る。以下では、この情報処理装置がノートブックタイプのパーソナルコンピュータ１０として実現されている場合を想定する。
【００１０】
図１に示すように、本コンピュータ１０は、コンピュータ本体１１と、ディスプレイユニット１２とから構成される。ディスプレイユニット１２には、ＬＣＤ１６（Liquid Crystal Display）から構成される表示装置が組み込まれている。ディスプレイユニット１２は、コンピュータ本体１１の上面が露出される開放位置とコンピュータ本体１１の上面を覆う閉塞位置との間を回動自在にコンピュータ本体１１に取り付けられている。ディスプレイユニット１２にはカメラ（Ｗｅｂカムコーダ）１８が設けられている。カメラ１８はディスプレイユニット１２のたとえば上端部に配置されている。
【００１１】
コンピュータ本体１１は薄い箱形の筐体を有しており、その上面にはキーボード１３、本コンピュータ１０をパワーオン／オフするためのパワーボタン１４、およびタッチパッドのようなポインティングデバイス１５が配置されている。ポインティングデバイス１５としては、マウスや、タッチパネルを用いてもよい。
【００１２】
さらに、コンピュータ本体１１には複数の外部コネクタ１７１、１７２、１７３が設けられている。これら外部コネクタ１７１、１７２、１７３は、たとえばコンピュータ本体１１の周壁に（ここでは、コンピュータ本体１１の左側面）に配置されている。外部コネクタ１７１、１７２、１７３はＵＳＢデバイスのような外部デバイス（リムーバブルデバイス）を抜き出し自在に接続するためのコネクタである。
【００１３】
以下では、外部コネクタ１７１、１７２、１７３がＵＳＢデバイスを接続するための外部コネクタ（ＵＳＢコネクタ）である場合を想定する。コンピュータ本体１１に設けられるＵＳＢコネクタの数は３つには限られない。２以上の任意の数のＵＳＢコネクタをコンピュータ本体１１に、またはディスプレイユニット１２に設けてもよい。
【００１４】
図２は、本コンピュータ１０のシステム構成を示している。  
本コンピュータ１０は、ＣＰＵ１１１、ブリッジデバイス１１２、主メモリ１１３、グラフィクスコントローラ１１４、ＵＳＢホストコントローラ１１５、ハードディスクドライブ（ＨＤＤ）１１６、ネットワークコントローラ１１７、ＢＩＯＳ−ＲＯＭ１１８、エンベデッドコントローラ／キーボードコントローラＩＣ（ＥＣ／ＫＢＣ）１１９、電源回路１２０、ＴＶチューナ１３１、バススイッチ２０１等を備えている。
【００１５】
ＣＰＵ１１１は、本コンピュータ１０の各コンポーネントの動作を制御するプロセッサである。このＣＰＵ１１１は、ＨＤＤ１１６から主メモリ１１３にロードされる、オペレーティングシステムおよび各種ユーティリティ／アプリケーションプログラムを実行する。また、ＣＰＵ１１１は、フラッシュＢＩＯＳ−ＲＯＭ１１８に格納されたＢＩＯＳも実行する。ＢＩＯＳは、ハードウェア制御のためのプログラムである。
【００１６】
ブリッジデバイス１１２は、グラフィクスコントローラ１１４との通信を実行する機能を有している。グラフィクスコントローラ１１４は、本コンピュータ１０のディスプレイモニタとして使用されるＬＣＤ１６を制御する表示コントローラである。
【００１７】
さらに、ブリッジデバイス１１２には、主メモリ１１３を制御するメモリコントローラも内蔵されている。また、ブリッジデバイス１１２は、ＰＣＩ（Peripheral Component Interconnect）バス上の各デバイスおよびＬＰＣ（Low ＰＩＮ Count）バ上の各デバイスとの通信も実行する。
【００１８】
またさらに、ブリッジデバイス１１２は、ＵＳＢホストコントローラ１１５も内蔵している。ＵＳＢホストコントローラ１１５は、コンピュータ１０内に設けられた幾つかのＵＳＢデバイス（内蔵ＵＳＢデバイス）、および任意の外部コネクタ１７１、１７２、１７３に接続されるＵＳＢデバイス（外部ＵＳＢデバイス）を制御するコントローラである。このＵＳＢホストコントローラ１１５は、２つ以上のコントローラを内蔵している。ここでは、ＵＳＢホストコントローラ１１５が、第１および第２の２つのコントローラ１１５Ａ、１１５Ｂを備えている場合を想定する。第１のコントローラ１１５Ａおよび第２のコントローラ１１５Ｂの各々は、たとえば、ＵＳＢ２．０規格に対応するホストコントローラであるＥＨＣＩコントローラによって実現されている。
【００１９】
第１のコントローラ１１５Ａおよび第２のコントローラ１１５Ｂの各々は、たとえば、最大８ポートをサポートするように構成されている。各ポートは、シリアルバス（ＵＳＢ信号ライン）を介してＵＳＢデバイスとの通信を実行するために用いられる。
【００２０】
カメラ１８、ＴＶチューナ１３１などの内蔵デバイスは、内蔵ＵＳＢデバイスとして実現されていてもよい。この場合、カメラ１８およびＴＶチューナ１３１の各々は、ＵＳＢ２．０規格のＨｉ−Ｓｐｅｅｄデバイスであってもよい。各内蔵ＵＳＢデバイスは、ＵＳＢホストコントローラ１１５が有する複数のポートの一つに固定的に接続される。
【００２１】
バススイッチ２０１は、ＵＳＢホストコントローラ１１５と外部コネクタ１７１、１７２、１７３との間に配置されている。より詳しくは、バススイッチ２０１は、第１および第２のコントローラ１１５Ａ、１１５Ｂと複数の外部コネクタ１７１、１７２、１７３との間を接続する。このバススイッチ２０１は、外部コネクタ１７１、１７２、１７３の各々をＵＳＢホストコントローラ１１５の任意の使用可能ポート（空きポート）に接続するスイッチとして機能する。換言すれば、バススイッチ２０１は、外部コネクタ１７１、１７２、１７３の各々を第１および第２のコントローラ１１５Ａ、１１５Ｂのいずれか一方に接続する。
【００２２】
本実施形態では、上述したように２つ以上のＥＨＣＩコントローラ（最大８ポートサポート）を内蔵するＵＳＢホストコントローラ１１５が用いられる。この場合、各ＵＳＢデバイスの各ＥＨＣＩコントローラへの割り当てをどのようにするかによって、ＵＳＢホストコントローラ１１５の電力消費若しくはＵＳＢホストコントローラ１１５のパフォーマンスに影響が与えられる可能性がある。
【００２３】
即ち、省電力の点で言えば、一方のＥＨＣＩコントローラに全てのデバイスをアサインし（それで数が足りるのであれば）、他方のＥＨＣＩコントローラをディセーブルにすることが好ましい。これにより、無駄な消費電力を抑えることができる。一方、パフォーマンスの点で言えば、一方のＥＨＣＩコントローラになるべくデバイスが集中しないように、２つのＥＨＣＩコントローラにバランス良くデバイスをアサインした方が有利である。
【００２４】
しかしながら、外部ＵＳＢコネクタを多数持つシステムでは、どのポートにデバイス（外部ＵＳＢデバイス）が繋がるかはユーザ側がどの外部コネクタを使うかによって左右される。このため第１および第２のコントローラ１１５Ａ、１１５Ｂに対するデバイスそれぞれのアサインの最適化が難しい。
【００２５】
本実施形態では、２つのＥＨＣＩコントローラに対するデバイス（外部ＵＳＢデバイス）のアサインを最適化するために、上述のバススイッチ２０１が用いられる。すなわち、本実施形態では、外部コネクタに外部デバイス（外部ＵＳＢデバイス）が新たに接続された時、その時点で接続されている外部デバイス（外部ＵＳＢデバイス）の数に応じて、その新たに接続された外部デバイスをＵＳＢホストコントローラ１１５のどのポートにアサインするかが決定される。換言すれば、複数の外部コネクタに現在接続されている外部デバイス（外部ＵＳＢデバイス）の数に応じて、新たに接続された外部デバイスが割り当てられるべきコントローラが、第１および第２のＥＨＣＩコントローラ１１５Ａ，１１５Ｂから選択される。そして、新たに接続された外部デバイスに対応する外部コネクタが、選択されたＥＨＣＩコントローラに接続されるように、つまり、新たに接続された外部デバイスがＵＳＢホストコントローラ１１５の決定されたポートに割り当てられるように、バススイッチ２０１が制御される。したがって、外部デバイス（外部ＵＳＢデバイス）がどの外部コネクタに接続された場合でも、その外部デバイス（外部ＵＳＢデバイス）を所望のＥＨＣＩコントローラに、つまり、ＵＳＢホストコントローラ１１５の所望のポートに、割り当てることができる。よって、ＥＨＣＩコントローラ１１５Ａ，１１５Ｂに対する外部デバイス（外部ＵＳＢデバイス）それぞれの割り当てをシステム内で柔軟に制御することができる。
【００２６】
例えば、各外部デバイスがどの外部コネクタに挿入されても片側のＥＨＣＩコントローラにそれら外部デバイスが集中して割り当てられるようにバススイッチ２０１を制御してもよい。これにより、他方のＥＨＣＩコントローラをディセーブルにすることができるので、ＵＳＢホストコントローラ１１５の省電力化を実現できる。
【００２７】
逆に、複数のＥＨＣＩコントローラに対して外部デバイスそれぞれがバランスよく分散して割り当てられるようにするために、各外部デバイスがどの外部コネクタに挿入されてもそれら外部デバイスが２つのＥＨＣＩコントローラ１１５Ａ，１１５Ｂにバランスよく分散して割り当てられるように、バススイッチ２０１を制御してもよい。これにより、外部デバイス同士（外部ＵＳＢデバイス同士）の通信の干渉によるスループットの低下（つまり、片側のＥＨＣＩコントローラに外部デバイスが偏って割り当てられることによるスループットの低下）を防ぐことができ、ＵＳＢホストコントローラ１１５のパフォーマンス向上を実現できる。
【００２８】
前者は省電力優先のＵＳＢポート割り当て制御方法であると云える。また後者はパフォーマンス優先のＵＳＢポート割り当て制御方法であると云える。省電力優先の割り当て制御方法（省電力モード）とパフォーマンス優先の割り当て制御方法（パフォーマンスモード）のどちらのモードを使用するかは、ユーザがオペレーティングシステム上の専用のユーザインタフェースを介して任意に指定することができる。また、コンピュータ１０が外部電力によって駆動されている間（ＡＣ電力駆動）はパフォーマンスモードを選択し、コンピュータ１０が内蔵のバッテリによって駆動されている間（バッテリ駆動）は省電力モードを選択してもよい。
【００２９】
エンベデッドコントローラ／キーボードコントローラＩＣ（ＥＣ／ＫＢＣ）１１９は、電力管理のためのエンベデッドコントローラと、キーボード（ＫＢ）１３およびポインティングデバイス１５などを制御するキーボードコントローラとが集積された１チップマイクロコンピュータである。ＥＣ／ＫＢＣ１１９は、電源回路１２０と共同して、ユーザによるパワーボタンスイッチ１４の操作に応じて本コンピュータ１０を電源オン／電源オフする。電源回路１２０は、コンピュータ本体１１に内蔵されたバッテリ１２１またはＡＣアダプタ１２２を介して供給される外部電源を用いて、本コンピュータ１０の各コンポーネントに供給すべきシステム電源を生成する。
【００３０】
次に、図３を参照して、本実施形態のコンピュータ１０に設けられたポート割り当て制御サブシステムの構成を説明する。
【００３１】
上述したように、ホストコントローラ１１５は２つのＥＣＨＩコントローラ１１５Ａ、１１５Ｂを内蔵する。第１のＥＨＣＩコントローラ（ＥＨＣＩ＃１）１１５ＡがＰｏｒｔ０−７を、第２のＥＨＣＩコントローラ（ＥＨＣＩ＃２）１１５ＢがＰｏｒｔ８−１３を持つ。Ｐｏｒｔ０−６には内蔵ＵＳＢデバイスがそれぞれ接続されているものとする。Ｐｏｒｔ７−９はバススイッチ２０１を介して外部コネクタ１７１、１７２、１７３に接続される。つまり、Ｐｏｒｔ７−９と外部コネクタ１７１−１７３との間の３つのＵＳＢ信号ラインにはバススイッチ２０１が挿入されている。バススイッチ２０１は、マイクロコンピュータ２０３から受信される制御信号に応じて、外部コネクタ１７１−１７３の各々をＰｏｒｔ７−９内の任意のポートに接続する。
【００３２】
なお、ここでは、第１のＥＨＣＩコントローラ（ＥＨＣＩ＃１）１１５ＡのＰｏｒｔ７と第２のＥＨＣＩコントローラ（ＥＨＣＩ＃２）１１５ＢのＰｏｒｔ８，９とがバススイッチ２０１に接続される場合を例示したが、これに限られない。第１のＥＨＣＩコントローラ（ＥＨＣＩ＃１）１１５Ａの１以上のポートと第２のＥＨＣＩコントローラ（ＥＨＣＩ＃２）１１５Ｂの１以上のポートがバススイッチ２０１に接続されるようにしてもよい。
【００３３】
外部コネクタ１７１−１７３のいずれにもデバイスが挿入されていない初期状態では、バススイッチ２０１により、Ｐｏｒｔ７−９と外部コネクタ１７１−１７３との間は遮断状態（非接続状態）に設定される。つまり、バススイッチ２０１は、Ｐｏｒｔ７−９の各々を全ての外部コネクタ１７１−１７３から電気的に分離する。これにより、どの外部コネクタに外部デバイスが接続されても、その時点では、その外部デバイスはホストコントローラ１１５には接続されない。よって、外部コネクタに外部デバイスが接続された時点で、その外部デバイスがホストコントローラ１１５の特定のポートにアサインされてしまうことを防止することができる。
【００３４】
接続検出回路２０２は、外部コネクタ１７１−１７３に対応する３つのＵＳＢ信号ラインに接続されている。接続検出回路２０２は、外部コネクタ１７１−１７３の各々に対する外部デバイスの接続（挿入）、および外部コネクタ１７１−１７３の各々からの外部デバイスの抜き出しを検出する検出部である。ある外部コネクタに外部ＵＳＢデバイスが挿入された時、接続検出回路２０２は、その外部コネクタに外部ＵＳＢデバイスが挿入されたことを検出し、その外部コネクタに外部ＵＳＢデバイスが挿入されたことを示す接続検出信号をマイクロコンピュータ２０３に送信する。同様に、接続検出回路２０２は、ある外部コネクタから外部ＵＳＢデバイスが抜き出された時、その外部コネクタから外部ＵＳＢデバイスが抜き出されたことを検出し、その外部コネクタから外部ＵＳＢデバイスが抜き出されたことを示す抜出検出信号をマイクロコンピュータ２０３に送信する。
【００３５】
マイクロコンピュータ２０３は、バススイッチ２０１を用いて、外部ＵＳＢデバイスをＰｏｒｔ７−９内の任意のポートに割り当てるためのＵＳＢポート割り当て制御処理を実行する。接続検出回路２０２から検出信号（接続検出信号、抜出検出信号）を受信した時、マイクロコンピュータ２０３は、外部コネクタ１７１−１７３に現在接続されているデバイスの数を判定する。そして、マイクロコンピュータ２０３は、デバイスの数に応じて、必要に応じてバススイッチ２０１を制御し、これによってＵＳＢデバイスに対するＰｏｒｔアサインをコントロールする。また、場合によっては、マイクロコンピュータ２０３は、ＵＳＢホストコントローラ１１５内のＥＨＣＩコントローラ（ＥＨＣＩ＃２）のイネーブル・ディセーブル処理も行う。ＵＳＢデバイスのＰｏｒｔアサイン及びＥＨＣＩコントローラのイネーブル・ディセーブルの制御は、ＯＳ上で動作するソフトウェアによって実行するようにしてもよい。なお、イネーブル・ディセーブル制御の対象となるＥＨＣＩコントローラは、内蔵ＵＳＢデバイスが接続されていないＥＨＣＩコントローラである。たとえば、ＵＳＢホストコントローラ１１５が３つのＥＨＣＩコントローラを内蔵しており、それら３つのＥＨＣＩコントローラ内の２つのＥＨＣＩコントローラの各々に内蔵ＵＳＢデバイスが接続され、残りの１つのＥＨＣＩコントローラに内蔵ＵＳＢデバイスが接続されていない場合には、残りの１つのＥＨＣＩコントローラがイネーブル・ディセーブル制御の対象となる。
【００３６】
ＵＳＢポート割り当て制御処理の概要は以下の通りである。  
ある一つの外部コネクタに外部ＵＳＢデバイス（第１の外部ＵＳＢデバイス）が接続されたことが検出された場合、マイクロコンピュータ２０３は、外部コネクタ１７１−１７３に現在接続されている１以上の外部ＵＳＢデバイスの数に応じて、第１の外部ＵＳＢデバイスが割り当てられるべきＥＨＣＩコントローラを２つのＥＨＣＩコントローラ１１５Ａ，１１５Ｂから選択する。換言すれば、マイクロコンピュータ２０３は、第１の外部ＵＳＢデバイスが割り当てられるべきポートをＰｏｒｔ７−９から選択する。そして、マイクロコンピュータ２０３は、第１の外部ＵＳＢデバイスが接続された外部コネクタが、選択されたＥＨＣＩコントローラに接続されるように、つまり、第１の外部ＵＳＢデバイスが接続された外部コネクタが、選択されたポートに接続されるように、バススイッチ２０１を制御する。バススイッチ２０１に接続されるＥＨＣＩコントローラ１１５Ａのポート数は既知であり、またバススイッチ２０１に接続されるＥＨＣＩコントローラ１１５Ｂのポート数も既知であるので、マイクロコンピュータ２０３は、第１の外部ＵＳＢデバイスが割り当てられるべきＥＨＣＩコントローラを、つまり、第１の外部ＵＳＢデバイスが割り当てられるべきポートを、外部コネクタ１７１−１７３に現在接続されている１以上の外部ＵＳＢデバイスの数に応じて決定することができる。
【００３７】
以下、本実施形態のＵＳＢポート割り当て制御処理によってＵＳＢホストコントローラ１１５の省電力を実現する例について説明する。
【００３８】
図４のフローチャートは、外部ＵＳＢデバイスが接続された時に実行されるＵＳＢポート割り当て制御処理（省電力モード）の手順を示している。
【００３９】
使用されていないＥＨＣＩコントローラをディセーブルにすることはシステムの電力消費を低減することを可能にする。接続される全ＵＳＢデバイス（内蔵ＵＳＢデバイスと外部ＵＳＢデバイスの合計）が８個以下であれば、第１のＥＨＣＩコントローラ（ＥＨＣＩ＃１）１１５Ａのみをイネーブルにし、第２のＥＨＣＩコントローラ（ＥＨＣＩ＃２）１１５Ｂをディセーブルにすることが可能となる。
【００４０】
一般に、ノートブックタイプのパーソナルコンピュータ（ＰＣ）では、内蔵するＵＳＢデバイスの数が多いため、接続される全ＵＳＢデバイスが８個以下にならないことが多い。しかし、外部コネクタ１７１−１７３の全てが同時に使用されるとは限らない。このため、実際に使用中のデバイスの数だけ計上した場合には、全ＵＳＢデバイスが８個以内に収まるケースが多く、本実施形態のＵＳＢポート割り当て制御処理（省電力モード）はこのようなケースで利用し得る。
【００４１】
まず、外部コネクタ１７１−１７３に一つも外部デバイスが挿入されていない時を初期状態とする。前述の通り、この時は、ＵＳＢホストコントローラ１１６と外部コネクタ１７１−１７３との間はバススイッチ２０１により遮断されている。そして、この時は第２のＥＨＣＩコントローラ（ＥＨＣＩ＃２）１１５Ｂに接続されているデバイスの数は０なので、第２のＥＨＣＩコントローラ（ＥＨＣＩ＃２）１１５Ｂはディセーブルに設定される。
【００４２】
ここで、いずれかの外部コネクタ（コネクタ（Ｘ）とする）に外部デバイスが挿入されたとする。接続検出回路２０２は、コネクタ（Ｘ）に外部デバイスが挿入されたことを検出する（ステップＳ１１）。そして、接続検出回路２０２は、コネクタ（Ｘ）に外部デバイスが挿入されたことをマイクロコンピュータ２０３に通知する（ステップＳ１２）。マイクロコンピュータ２０３は、外部コネクタ１７１−１７３に現在接続されている外部デバイスの数を判定する（ステップＳ１３）。
【００４３】
外部デバイスが挿入された直後における全外部コネクタ１７１−１７３に対する接続デバイス数が１である時、つまり外部デバイスの挿入前は接続デバイス数が０である時（ステップＳ１３のＹＥＳ）、マイクロコンピュータ２０３は、ステップＳ１４に進み、コネクタ（Ｘ）に接続された外部デバイスが割り当てられるべきＥＨＣＩコントローラを第１のＥＨＣＩコントローラ（ＥＨＣＩ＃１）１１５Ａ（Ｐｏｒｔ７）に決定する。つまり、第１のＥＨＣＩコントローラ（ＥＨＣＩ＃１）１１５Ａが、外部デバイスが割り当てられるべきＥＨＣＩコントローラとして選択される。ステップＳ１４では、マイクロコンピュータ２０３は、コネクタ（Ｘ）がＰｏｒｔ７に接続され、かつコネクタ（Ｘ）以外の２つの未使用の外部コネクタがＰｏｒｔ８，９にそれぞれ接続されるように、バススイッチ２０１を制御する（バススイッチ切り替え）。これにより、接続デバイス数が１の場合には、どの外部コネクタに外部ＵＳＢデバイスが接続されたとしても、その外部ＵＳＢデバイスは第１のＥＨＣＩコントローラ（ＥＨＣＩ＃１）１１５Ａに割り当てられる。したがって、全ＵＳＢデバイスが第１のＥＨＣＩコントローラ（ＥＨＣＩ＃１）１１５Ａのみに接続されることになる。次いで、マイクロコンピュータ２０３は、バススイッチ切り替えをロックする（ステップＳ１５）。以降、外部コネクタ１７１−１７３から全外部デバイスが抜出されるまで、つまり外部コネクタ１７１−１７３に一つも外部デバイスが接続されていない状態になるまで、バススイッチ２０１の切り替えは行われない。換言すれば、コネクタ（Ｘ）がＰｏｒｔ７に接続され、かつコネクタ（Ｘ）以外の２つの外部コネクタがＰｏｒｔ８，９にそれぞれ接続された状態が維持される。
【００４４】
コネクタ（Ｘ）がＰｏｒｔ７に接続された時、第１のＥＨＣＩコントローラ（ＥＨＣＩ＃１）１１５Ａはコネクタ（Ｘ）に接続された外部デバイスを、Ｐｏｒｔ７に接続されたデバイスとして検出する（ステップＳ１８）。この外部デバイスはＯＳによって認識され、第１のＥＨＣＩコントローラ（ＥＨＣＩ＃１）１１５ＡのＰｏｒｔ７を介してこのデバイスとの通信が実行される。
【００４５】
外部コネクタ１７１−１７３に現在接続されているデバイスの数が１でないならば（ステップＳ１３のＮＯ）、マイクロコンピュータ２０３は、ステップＳ１６に進み、外部コネクタ１７１−１７３に現在接続されている外部デバイスの数が２であるか否かを判定する。
【００４６】
外部コネクタ１７１−１７３に現在接続されている外部デバイスの数が２であるならば、つまり、外部コネクタ１７１−１７３のいずれかに外部デバイスが１つ接続されている状態で、残りの２つの外部コネクタのいずれかに新たな外部デバイスが挿入された時は（ステップＳ１６のＹＥＳ）、マイクロコンピュータ２０３は、第２のＥＨＣＩコントローラ（ＥＨＣＩ＃２）１１５Ｂをイネーブルにし、これによってＰｏｒｔ８，９を使用できる状態にする（ステップＳ１７）。Ｐｏｒｔアサインは最初の外部デバイスの接続時にステップＳ１４の処理によってすでに確定されている。したがって、ここではバススイッチ２０１の切り替えは行わない。また、外部デバイスが２つ接続されている状態で、残りのコネクタ１つに新たな外部デバイスが挿入された時は、既に第２のＥＨＣＩコントローラ（ＥＨＣＩ＃２）１１５Ｂはイネーブルになっているので、特に制御は行わない。
【００４７】
新たな外部デバイスは第２のＥＨＣＩコントローラ（ＥＨＣＩ＃２）１１５Ｂに割り当てられる。第２のＥＨＣＩコントローラ（ＥＨＣＩ＃２）１１５Ｂは新たな外部デバイスを検出する（ステップＳ１８）。
【００４８】
なお、ここでは、第１のＥＨＣＩコントローラ（ＥＨＣＩ＃１）１１５Ａの空きポートがＰｏｒｔ７のみである場合を例示して説明したが、これに限られない。たとえば、第１のＥＨＣＩコントローラ（ＥＨＣＩ＃１）１１５Ａが複数の空きポートを有しており、それら複数の空きポートがバススイッチ２０１に接続されていてもよい。この場合、その空きポートの数と同じ数の外部ＵＳＢデバイスが接続されるまでは、各外部ＵＳＢデバイスが第１のＥＨＣＩコントローラ（ＥＨＣＩ＃１）１１５Ａに優先的に割り当てられるように、バススイッチ２０１を制御してもよい。
【００４９】
すなわち、省電力モードにおいては、マイクロコンピュータ２０３は、外部コネクタ１７１−１７３に現在接続されている外部ＵＳＢデバイスの数が所定個数（バススイッチ２０１に接続されている第１のＥＨＣＩコントローラ（ＥＨＣＩ＃１）１１５Ａのポート数）を超えるまでは、新たに接続された外部ＵＳＢデバイスをＥＨＣＩコントローラ１１５Ａに優先的に割り当てられる。つまり、マイクロコンピュータ２０３は、新たに接続された外部ＵＳＢデバイスがＥＨＣＩコントローラ１１５Ａに優先的に割り当てられるように、外部コネクタ１７１−１７３に現在接続されている１以上の外部ＵＳＢデバイスの数に応じて、新たに接続された外部ＵＳＢデバイスが割り当てられるべきコントローラを２つのＥＨＣＩコントローラ１１５Ａ，１１５Ｂから選択する。さらに、マイクロコンピュータ２０３は、外部コネクタ１７１−１７３に現在接続されている外部ＵＳＢデバイスの数が上述の所定個数を超えるまでは、ＥＨＣＩコントローラ１１５Ｂをディスエーブル状態に維持する。
【００５０】
図５のフローチャートは、外部ＵＳＢデバイスが抜出された時に実行されるＵＳＢポート割り当て制御処理（省電力モード）の手順を示している。
【００５１】
いま、いずれかの外部コネクタ（コネクタ（Ｘ）とする）から外部デバイスが抜き出されたとする。接続検出回路２０２は、コネクタ（Ｘ）から外部デバイスが抜き出されたことを検出する（ステップＳ２１）。そして、接続検出回路２０２は、コネクタ（Ｘ）から外部デバイスが抜き出されたことをマイクロコンピュータ２０３に通知する（ステップＳ２２）。マイクロコンピュータ２０３は、デバイス抜き出し後における外部コネクタ１７１−１７３に対する接続デバイスの数を判定する（ステップＳ２３）。
【００５２】
外部コネクタ１７１−１７３に対する接続デバイス数が０である時、つまり外部デバイスの抜き出し前は接続デバイス数が１である時（ステップＳ２３のＹＥＳ）、マイクロコンピュータ２０３は、ステップＳ２４に進み、第２のＥＨＣＩコントローラ（ＥＨＣＩ＃２）１１５Ｂをディセーブルにする。ステップＳ２４では、マイクロコンピュータ２０３は、さらに、バススイッチ２０１のロックを解除し、バススイッチ２０１を初期状態、つまりＵＳＢホストコントローラ１１６と外部コネクタ１７１−１７３との間がバススイッチ２０１により遮断されている初期状態に戻す。
【００５３】
外部コネクタ１７１−１７３に対する接続デバイス数が０でないならば（ステップＳ２３のＮＯ）、マイクロコンピュータ２０３は、外部コネクタ１７１−１７３に現在接続されている外部デバイスがＰｏｒｔ７に割り当てられた外部デバイス（外部コネクタに最初に接続されたデバイス）のみであるか否かを判定する（ステップＳ２５）。外部コネクタ１７１−１７３に現在接続されている外部デバイスがＰｏｒｔ７に割り当てられた外部デバイスのみであるならば（ステップＳ２５のＹＥＳ）、マイクロコンピュータ２０３は、ステップＳ２６に進み、第２のＥＨＣＩコントローラ（ＥＨＣＩ＃２）１１５Ｂをディセーブルにする。
【００５４】
以下、本実施形態のＵＳＢポート割り当て制御処理によってＵＳＢホストコントローラ１１５のパフォーマンス低下の防止を実現する例について説明する。
【００５５】
図６のフローチャートは、外部ＵＳＢデバイスが接続された時に実行されるＵＳＢポート割り当て制御処理（パフォーマンスモード）の手順を示している。
【００５６】
パフォーマンスの低下を防ぐには、なるべく一つのＥＨＣＩコントローラにデバイスの制御が偏らないようにしてデバイス間の干渉を防ぐことが重要である。本実施形態は、その中でも、外部コネクタに接続された外部デバイス同士の干渉を防ぐことに重点を置いたものである。
【００５７】
外部コネクタ１７１−１７３に一つも外部デバイスが挿入されていない時を初期状態とする。前述の通り、この時は、ＵＳＢホストコントローラ１１６と外部コネクタ１７１−１７３との間はバススイッチ２０１により遮断されている。パフォーマンスモードにおいては、第２のＥＨＣＩコントローラ（ＥＨＣＩ＃２）１１５Ｂは常時イネーブル状態を保持しているものとする。
【００５８】
ここで、いずれかの外部コネクタ（コネクタ（Ｘ）とする）に外部デバイスが挿入されたとする。接続検出回路２０２は、コネクタ（Ｘ）に外部デバイスが挿入されたことを検出する（ステップＳ３１）。そして、接続検出回路２０２は、コネクタ（Ｘ）に外部デバイスが挿入されたことをマイクロコンピュータ２０３に通知する（ステップＳ３２）。マイクロコンピュータ２０３は、外部コネクタ１７１−１７３に現在接続されている外部デバイスの数を判定する（ステップＳ３３）。
【００５９】
外部デバイスが挿入された直後における全外部コネクタ１７１−１７３に対する接続デバイス数が１である時、つまり外部デバイスの挿入前は接続デバイス数が０である時（ステップＳ３３のＹＥＳ）、マイクロコンピュータ２０３は、ステップＳ３４に進み、コネクタ（Ｘ）に接続された外部デバイスが割り当てられるべきＥＨＣＩコントローラを第２のＥＨＣＩコントローラ（ＥＨＣＩ＃２）１１５Ｂ、つまり内蔵デバイスが接続されているＥＨＣＩコントローラとは異なるＥＨＣＩコントローラ、に決定する。ステップＳ３４では、マイクロコンピュータ２０３は、コネクタ（Ｘ）がＰｏｒｔ８に接続されるようにバススイッチ２０１を制御する（バススイッチ切り替え）。これにより、接続デバイス数が１の場合には、どの外部コネクタに外部ＵＳＢデバイスが接続されたとしても、その外部ＵＳＢデバイスは第２のＥＨＣＩコントローラ（ＥＨＣＩ＃２）１１５Ｂに割り当てられる。これにより、内蔵ＵＳＢデバイスと外部ＵＳＢデバイスとの間の干渉に起因するスループットの低下を防ぐことができる。マイクロコンピュータ２０３は、残り２つの外部コネクタについてはホストコントローラ１１５と遮断された状態に維持する。この時点では、まだ、残り２つの外部コネクタのＰｏｒｔアサインを確定させない為である。
【００６０】
第２のＥＨＣＩコントローラ（ＥＨＣＩ＃２）１１５Ｂはコネクタ（Ｘ）に接続された外部デバイスを検出する（ステップＳ３５）。この外部デバイスはＯＳによって認識され、第２のＥＨＣＩコントローラ（ＥＨＣＩ＃２）１１５ＢのＰｏｒｔ８を介してこの外部デバイスとの通信が実行される。
【００６１】
外部コネクタ１７１−１７３に現在接続されている外部デバイスの数が１でないならば（ステップＳ３３のＮＯ）、マイクロコンピュータ２０３は、ステップＳ３６に進み、外部コネクタ１７１−１７３に現在接続されている外部デバイスの数が２であるか否かを判定する。
【００６２】
外部コネクタ１７１−１７３に現在接続されている外部デバイスの数が２であるならば、つまり、外部コネクタ１７１−１７３に外部デバイスが１つ接続されている状態で、残りの２つの外部コネクタのいずれかに新たな外部デバイスが挿入された時は（ステップＳ３６のＹＥＳ）、マイクロコンピュータ２０３は、バススイッチ２０１がロックされているか否かを判定する（ステップＳ３７）。バススイッチ２０１がロックされていないならば（ステップＳ３７のＹＥＳ）、マイクロコンピュータ２０３は、ステップＳ３８に進み、コネクタ（Ｘ）に接続された外部デバイスが割り当てられるべきＥＨＣＩコントローラを、第１のＥＨＣＩコントローラ（ＥＨＣＩ＃１）１１５Ａに決定する。ステップＳ３８では、マイクロコンピュータ２０３は、コネクタ（Ｘ）がＰｏｒｔ７に接続され、残り１つのコネクタがＰｏｒｔ９に接続されるように、バススイッチ２０１を制御する（バススイッチ切り替え）。これにより、二つ目の外部ＵＳＢデバイスは、一つ目の外部デバイスを制御するＥＨＣＩコントローラとは別の第１のＥＨＣＩコントローラ（ＥＨＣＩ＃１）１１５Ａによって制御されるので、外部デバイス同士の干渉を防ぐことができる（二つ目の外部デバイスは内蔵デバイスからの干渉は受けることになるが、前述の通り外部デバイス間の干渉を防ぐことを優先させている）。
【００６３】
次いで、マイクロコンピュータ２０３は、バススイッチ切り替えをロックする（ステップＳ３９）。以降、外部コネクタ１７１−１７３から全外部デバイスが抜出されるまで、つまり外部コネクタ１７１−１７３に一つも外部デバイスが接続されていない状態になるまで、バススイッチ２０１の切り替えは行われない。
【００６４】
第２のＥＨＣＩコントローラ（ＥＨＣＩ＃２）１１５Ｂは２つ目の外部デバイスを検出する（ステップＳ３５）。この外部デバイスはＯＳによって認識され、第１のＥＨＣＩコントローラ（ＥＨＣＩ＃１）１１５ＡのＰｏｒｔ７を介してこの２つ目の外部デバイスとの通信が実行される。
【００６５】
このように、省電力モードでは、マイクロコンピュータ２０３は、２つのＥＨＣＩコントローラ１１５Ａ，１１５Ｂに外部ＵＳＢデバイスそれぞれを分散して割り当てられる。つまり、マイクロコンピュータ２０３は、２つのＥＨＣＩコントローラ１１５Ａ，１１５Ｂに外部ＵＳＢデバイスそれぞれが分散して割り当てられるように、外部コネクタ１７１−１７３に現在接続されている１以上の外部ＵＳＢデバイスの数に応じて、新たに接続された外部ＵＳＢデバイスが割り当てられるべきコントローラを２つのＥＨＣＩコントローラ１１５Ａ，１１５Ｂから選択する。
【００６６】
図７のフローチャートは、外部ＵＳＢデバイスが抜出された時に実行されるＵＳＢポート割り当て制御処理（パフォーマンスモード）の手順を示している。
【００６７】
いま、いずれかの外部コネクタ（コネクタ（Ｘ）とする）から外部デバイスが抜き出されたとする。接続検出回路２０２は、コネクタ（Ｘ）から外部デバイスが抜き出されたことを検出する（ステップＳ４１）。そして、接続検出回路２０２は、コネクタ（Ｘ）から外部デバイスが抜き出されたことをマイクロコンピュータ２０３に通知する（ステップＳ４２）。マイクロコンピュータ２０３は、外部デバイス抜き出し後における外部コネクタ１７１−１７３に対する接続デバイスの数を判定する（ステップＳ４３）。
【００６８】
外部コネクタ１７１−１７３に対する接続デバイス数が０である時、つまり外部デバイスの抜き出し前は接続デバイス数が１である時（ステップＳ４３のＹＥＳ）、マイクロコンピュータ２０３は、ステップＳ４４に進み、バススイッチ２０１のロックを解除し、バススイッチ２０１を初期状態、つまりＵＳＢホストコントローラ１１６と外部コネクタ１７１−１７３との間がバススイッチ２０１により遮断されている状態に戻す。
【００６９】
以上、省電力モードとパフォーマンスモードそれぞれにおけるＵＳＢポート割り当て制御処理について述べたが、ユーザは、これら省電力モードとパフォーマンスモードの一方を指定することができる。
【００７０】
図８は、ユーザにＵＳＢポート割り当て制御処理のモードを指定させるための設定画面の例を示している。この設定画面４００は、省電力モード、パフォーマンスモード、オートモードそれぞれに対応する３つのメニュー項目４０１，４０２，４０３を表示する。オートモードは、コンピュータ１０がバッテリ駆動／ＡＣ電力駆動のいずれの状態であるかに応じて省電力モードとパフォーマンスモードの一方を自動的に選択するモードである。この設定画面４００は、さらに、３つのメニュー項目４０１，４０２，４０３に関連づけられた３つのラジオボタン５０１，５０２，５０３を表示する。ユーザは、ポインティングデバイスを用いてラジオボタン５０１，５０２，または５０３を操作することによって、省電力モード、パフォーマンスモード、オートモードの一つをＵＳＢポート割り当て制御処理モードとして選択することができる。選択されたＵＳＢポート割り当て制御処理のモードを示す情報は、ＨＤＤ１１６等の記憶装置に設定ファイルとして格納される。
【００７１】
次に、図９のフローチャートを参照して、ＵＳＢポート割り当てモード切替処理の手順を説明する。
【００７２】
ＣＰＵ１１１は、たとえば、コンピュータ１０の起動時に、設定ファイルを参照して、現在のＵＳＢポート割り当て制御処理モードをチェックする。現在のＵＳＢポート割り当て制御処理モードが省電力モードであるならば（ステップＳ５１のＹＥＳ）、ＣＰＵ１１１は、マイクロコンピュータ２０３に省電力モードに対応するＵＳＢポート割り当て制御処理を実行するように指示する。これにより、マイクロコンピュータ２０３は、省電力モードに対応する第１の動作モードに設定される。マイクロコンピュータ２０３が第１の動作モードである間、マイクロコンピュータ２０３は、各外部ＵＳＢデバイスが実際に接続される外部コネクタとは関係なく、各外部ＵＳＢデバイスが一方のＥＨＣＩコントローラに集中して割り当てられるように、図４および図５で説明した処理を実行する（ステップＳ５２）。
【００７３】
現在のＵＳＢポート割り当て制御処理モードがパフォーマンスモードであるならば（ステップＳ５３のＹＥＳ）、ＣＰＵ１１１は、マイクロコンピュータ２０３にパフォーマンスモードに対応するＵＳＢポート割り当て制御処理を実行するように指示する。これにより、マイクロコンピュータ２０３は、パフォーマンスモードに対応する第２の動作モードに設定される。マイクロコンピュータ２０３が第２の動作モードである間、マイクロコンピュータ２０３は、個々の外部ＵＳＢデバイスが実際に接続される外部コネクタとは関係なく、それら外部ＵＳＢデバイスが２つのＥＨＣＩコントローラにバランスよく分散して割り当てられるように、図６および図７で説明した処理を実行する（ステップＳ５４）。
【００７４】
現在のＵＳＢポート割り当て制御処理モードがオートモードであるならば（ステップＳ５３のＮＯ）、ＣＰＵ１１１は、コンピュータ１０が動作している間、コンピュータ１０の電源ソースがバッテリまたは外部電源のいずれであるか監視する（ステップＳ５５）。
【００７５】
コンピュータ１０がバッテリ駆動されているならば（ステップＳ５５のＹＥＳ）、ＣＰＵ１１１は、マイクロコンピュータ２０３に省電力モードに対応するＵＳＢポート割り当て制御処理を実行するように指示し、これによってマイクロコンピュータ２０３を第１の動作モードに設定する。マイクロコンピュータ２０３は、各外部ＵＳＢデバイスが接続される外部コネクタとは関係なく、各外部ＵＳＢデバイスが一方のＥＨＣＩコントローラに集中して割り当てられるように、図４および図５で説明した処理を実行する（ステップＳ５６）。
【００７６】
コンピュータ１０がＡＣ電力駆動されているならば（ステップＳ５５のＮＯ）、ＣＰＵ１１１は、マイクロコンピュータ２０３にパフォーマンスモードに対応するＵＳＢポート割り当て制御処理を実行するように指示し、これによってマイクロコンピュータ２０３を第２の動作モードに設定する。マイクロコンピュータ２０３は、個々の外部ＵＳＢデバイスが接続される外部コネクタとは関係なく、それら外部ＵＳＢデバイスが２つのＥＨＣＩコントローラに分散して割り当てられるように、図６および図７で説明した処理を実行する（ステップＳ５７）。
【００７７】
以上説明したように、本実施形態によれば、外部コネクタ１７１−１７３の各々を第１および第２のコントローラ１１５Ａ，１１５Ｂのいずれか一方に接続するバススイッチ２０１が設けられている。外部コネクタ１７１−１７３の任意の一つの外部コネクタに外部デバイス（第１外部デバイス）が接続された時に、外部コネクタ１７１−１７３に現在接続されている１以上の外部デバイスの数に応じて、第１デバイスが割り当てられるべきコントローラが第１および第２のコントローラ１１５Ａ，１１５Ｂから選択される。そして、第１の外部デバイスが接続された任意の一つの外部コネクタが、選択されたコントローラに接続されるように、バススイッチ２０１が制御される。したがって、第１デバイスがどの外部コネクタに接続されるかに関係なく、その第１デバイスを所望のコントローラに割り当てることができる。よって、第１および第２のコントローラ１１５Ａ，１１５Ｂに対するデバイスの割り当てを柔軟に制御することができる。
【００７８】
また、省電力モードでは、可能な限り片側のコントローラのみが使用されるように、外部コネクタに接続された外部ＵＳＢデバイスが割り当てられるべきコントローラを決定することにより、ユーザがどの外部コネクタを使うかに関係なく、ＵＳＢホストコントローラ１１５の消費電力を最小限に抑えることができるようになる。
【００７９】
また、パフォーマンスモードでは、可能な限り外部ＵＳＢデバイスが片側のコントローラに偏らないように、外部コネクタに接続された外部ＵＳＢデバイスが割り当てられるべきコントローラを決定することにより、ユーザがどの外部コネクタを使うかに関係なく、外部ＵＳＢデバイス間の干渉を最小限に抑えることができるようになる。
【００８０】
なお、以上の説明では、外部コネクタ１７１−１７３がＵＳＢデバイスを接続するためのＵＳＢコネクタである場合を説明したが、外部コネクタ１７１−１７３の各々は、たとえばｅＳＡＴＡのようなシリアルＡＴＡデバイスを接続するためのコネクタであってもよい。この場合、２つ以上のＥＨＣＩコントローラの代わりに、２つ以上のＳＡＴＡコントローラが用いられ、２つ以上のＳＡＴＡコントローラと外部コネクタ１７１−１７３との間に上述のバススイッチ２０１が設けられる。
【００８１】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００８２】
１１５…ＵＳＢホストコントローラ、１１５Ａ，１１５Ｂ…ＥＨＣＩコントローラ、１７１〜１７３…外部コネクタ、２０１…バススイッチ、２０２…接続検出回路、２０３…マイクロコンピュータ。
【図１】
2013030063.tif 000003
【図２】
2013030063.tif 000004
【図３】
2013030063.tif 000005
【図４】
2013030063.tif 000006
【図５】
2013030063.tif 000007
【図６】
2013030063.tif 000008
【図７】
2013030063.tif 000009
【図８】
2013030063.tif 000010
【図９】
2013030063.tif 000011