説明

情報処理装置および割り当て制御方法

【課題】複数のコントローラに対するデバイスの割り当てを柔軟に制御することができる情報処理装置を実現する。
【解決手段】実施形態によれば、情報処理装置は、第1および第2のコントローラと、スイッチと、制御手段とを備える。スイッチは、複数の外部コネクタの各々を第1および第2のコントローラのいずれか一方に接続する。制御手段は、複数の外部コネクタの内の第1の外部コネクタに外部デバイスが接続されたことが検出された場合、前記複数の外部コネクタに接続されている外部デバイスの数に応じて、前記第1の外部コネクタに接続された外部デバイスが割り当てられるべきコントローラを第1および第2のコントローラから選択し、第1の外部コネクタが前記選択されたコントローラに接続されるように前記スイッチを制御する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、複数の外部コネクタを備えた情報処理装置および同装置に適用される割り当て制御方法に関する。
【背景技術】
【0002】
近年、ラップトップ型パーソナルコンピュータ(PC)、タブレットPCといった様々なコンピュータが開発されている。この種のコンピュータにおいては、外部デバイスを接続可能な幾つかの外部コネクタが設けられている。ユーザは、USBデバイスのような外部デバイスを任意の外部コネクタに接続することよって、その外部デバイスをコンピュータにおいて使用することができる。
【0003】
各外部デバイスは、コンピュータ内に設けられたホストコントローラによって制御される。最近では、サポート可能な外部コネクタ数を増加させるために、2つ以上のコントローラを内蔵するホストコントローラも利用され始めている。各コントローラは複数のポートを有しており、それらポートと外部コネクタは1対1形式で相互接続される。したがって、2つ以上のコントローラを含むホストコントローラを用いることにより、より多くの外部コネクタをサポートすることが可能となる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2004−213392号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
2つ以上のコントローラを内蔵するホストコントローラにおいては、各外部デバイスが2つのコントローラにどのように割り当てられるかによって、そのホストコントローラの電力消費またはパフォーマンスに影響が与えられる可能性がある。しかし、外部デバイスがどのコントローラに割り当てられるかは、ユーザが外部デバイスをどの外部コネクタに接続するかによって決定されてしまう。換言すれば、ユーザによってある外部コネクタに接続された外部デバイスは、その外部コネクタに対応するコントローラに割り当てられる。したがって、個々のコントローラに対する外部デバイスの割り当てをシステム内で制御するための新たな機能の実現が必要である。
【0006】
本発明は、複数のコントローラに対するデバイスの割り当てを柔軟に制御することができる情報処理装置および割り当て制御方法を提供することを目的とする。
【課題を解決するための手段】
【0007】
実施形態によれば、情報処理装置は、第1および第2のコントローラと、複数の外部コネクタと、スイッチと、検出部と、制御手段とを具備する。前記スイッチは、前記複数の外部コネクタの各々を前記第1および第2のコントローラのいずれか一方に接続する。前記検出部は、前記複数の外部コネクタの各々に対する外部デバイスの接続を検出する。前記制御手段は、前記複数の外部コネクタの内の第1の外部コネクタに外部デバイスが接続されたことが検出された場合、前記複数の外部コネクタに接続されている外部デバイスの数に応じて、前記第1の外部コネクタに接続された外部デバイスが割り当てられるべきコントローラを前記第1および第2のコントローラから選択し、前記第1の外部コネクタが前記選択されたコントローラに接続されるように前記スイッチを制御する。
【図面の簡単な説明】
【0008】
【図1】実施形態に係る情報処理装置の外観を示す斜視図。
【図2】同実施形態の情報処理装置のシステム構成を示すブロック図。
【図3】同実施形態の情報処理装置に設けられた、バススイッチを含むポート割り当て制御サブシステムの構成例を示すブロック図。
【図4】同実施形態の情報処理装置によってデバイス接続検出時に実行されるUSBポート割り当て制御処理の手順の例を示すフローチャート。
【図5】同実施形態の情報処理装置によってデバイス抜き出し検出時に実行されるUSBポート割り当て制御処理の手順の例を示すフローチャート。
【図6】同実施形態の情報処理装置によってデバイス接続検出時に実行されるUSBポート割り当て制御処理の手順の他の例を示すフローチャート。
【図7】同実施形態の情報処理装置によってデバイス抜き出し検出時に実行されるUSBポート割り当て制御処理の手順の他の例を示すフローチャート。
【図8】同実施形態の情報処理装置によって表示されるUSBポート割り当て設定画面の例を示す図。
【図9】同実施形態の情報処理装置によって実行されるモード切替処理の手順を示すフローチャート。
【発明を実施するための形態】
【0009】
以下、実施の形態について図面を参照して説明する。
図1は、一実施形態に係る情報処理装置の外観を示す斜視図である。この情報処理装置は、たとえば、ノートブックタイプのパーソナルコンピュータ(PC)、タブレットPC、PDA等として実現され得る。以下では、この情報処理装置がノートブックタイプのパーソナルコンピュータ10として実現されている場合を想定する。
【0010】
図1に示すように、本コンピュータ10は、コンピュータ本体11と、ディスプレイユニット12とから構成される。ディスプレイユニット12には、LCD16(Liquid Crystal Display)から構成される表示装置が組み込まれている。ディスプレイユニット12は、コンピュータ本体11の上面が露出される開放位置とコンピュータ本体11の上面を覆う閉塞位置との間を回動自在にコンピュータ本体11に取り付けられている。ディスプレイユニット12にはカメラ(Webカムコーダ)18が設けられている。カメラ18はディスプレイユニット12のたとえば上端部に配置されている。
【0011】
コンピュータ本体11は薄い箱形の筐体を有しており、その上面にはキーボード13、本コンピュータ10をパワーオン/オフするためのパワーボタン14、およびタッチパッドのようなポインティングデバイス15が配置されている。ポインティングデバイス15としては、マウスや、タッチパネルを用いてもよい。
【0012】
さらに、コンピュータ本体11には複数の外部コネクタ171、172、173が設けられている。これら外部コネクタ171、172、173は、たとえばコンピュータ本体11の周壁に(ここでは、コンピュータ本体11の左側面)に配置されている。外部コネクタ171、172、173はUSBデバイスのような外部デバイス(リムーバブルデバイス)を抜き出し自在に接続するためのコネクタである。
【0013】
以下では、外部コネクタ171、172、173がUSBデバイスを接続するための外部コネクタ(USBコネクタ)である場合を想定する。コンピュータ本体11に設けられるUSBコネクタの数は3つには限られない。2以上の任意の数のUSBコネクタをコンピュータ本体11に、またはディスプレイユニット12に設けてもよい。
【0014】
図2は、本コンピュータ10のシステム構成を示している。
本コンピュータ10は、CPU111、ブリッジデバイス112、主メモリ113、グラフィクスコントローラ114、USBホストコントローラ115、ハードディスクドライブ(HDD)116、ネットワークコントローラ117、BIOS−ROM118、エンベデッドコントローラ/キーボードコントローラIC(EC/KBC)119、電源回路120、TVチューナ131、バススイッチ201等を備えている。
【0015】
CPU111は、本コンピュータ10の各コンポーネントの動作を制御するプロセッサである。このCPU111は、HDD116から主メモリ113にロードされる、オペレーティングシステムおよび各種ユーティリティ/アプリケーションプログラムを実行する。また、CPU111は、フラッシュBIOS−ROM118に格納されたBIOSも実行する。BIOSは、ハードウェア制御のためのプログラムである。
【0016】
ブリッジデバイス112は、グラフィクスコントローラ114との通信を実行する機能を有している。グラフィクスコントローラ114は、本コンピュータ10のディスプレイモニタとして使用されるLCD16を制御する表示コントローラである。
【0017】
さらに、ブリッジデバイス112には、主メモリ113を制御するメモリコントローラも内蔵されている。また、ブリッジデバイス112は、PCI(Peripheral Component Interconnect)バス上の各デバイスおよびLPC(Low PIN Count)バ上の各デバイスとの通信も実行する。
【0018】
またさらに、ブリッジデバイス112は、USBホストコントローラ115も内蔵している。USBホストコントローラ115は、コンピュータ10内に設けられた幾つかのUSBデバイス(内蔵USBデバイス)、および任意の外部コネクタ171、172、173に接続されるUSBデバイス(外部USBデバイス)を制御するコントローラである。このUSBホストコントローラ115は、2つ以上のコントローラを内蔵している。ここでは、USBホストコントローラ115が、第1および第2の2つのコントローラ115A、115Bを備えている場合を想定する。第1のコントローラ115Aおよび第2のコントローラ115Bの各々は、たとえば、USB2.0規格に対応するホストコントローラであるEHCIコントローラによって実現されている。
【0019】
第1のコントローラ115Aおよび第2のコントローラ115Bの各々は、たとえば、最大8ポートをサポートするように構成されている。各ポートは、シリアルバス(USB信号ライン)を介してUSBデバイスとの通信を実行するために用いられる。
【0020】
カメラ18、TVチューナ131などの内蔵デバイスは、内蔵USBデバイスとして実現されていてもよい。この場合、カメラ18およびTVチューナ131の各々は、USB2.0規格のHi−Speedデバイスであってもよい。各内蔵USBデバイスは、USBホストコントローラ115が有する複数のポートの一つに固定的に接続される。
【0021】
バススイッチ201は、USBホストコントローラ115と外部コネクタ171、172、173との間に配置されている。より詳しくは、バススイッチ201は、第1および第2のコントローラ115A、115Bと複数の外部コネクタ171、172、173との間を接続する。このバススイッチ201は、外部コネクタ171、172、173の各々をUSBホストコントローラ115の任意の使用可能ポート(空きポート)に接続するスイッチとして機能する。換言すれば、バススイッチ201は、外部コネクタ171、172、173の各々を第1および第2のコントローラ115A、115Bのいずれか一方に接続する。
【0022】
本実施形態では、上述したように2つ以上のEHCIコントローラ(最大8ポートサポート)を内蔵するUSBホストコントローラ115が用いられる。この場合、各USBデバイスの各EHCIコントローラへの割り当てをどのようにするかによって、USBホストコントローラ115の電力消費若しくはUSBホストコントローラ115のパフォーマンスに影響が与えられる可能性がある。
【0023】
即ち、省電力の点で言えば、一方のEHCIコントローラに全てのデバイスをアサインし(それで数が足りるのであれば)、他方のEHCIコントローラをディセーブルにすることが好ましい。これにより、無駄な消費電力を抑えることができる。一方、パフォーマンスの点で言えば、一方のEHCIコントローラになるべくデバイスが集中しないように、2つのEHCIコントローラにバランス良くデバイスをアサインした方が有利である。
【0024】
しかしながら、外部USBコネクタを多数持つシステムでは、どのポートにデバイス(外部USBデバイス)が繋がるかはユーザ側がどの外部コネクタを使うかによって左右される。このため第1および第2のコントローラ115A、115Bに対するデバイスそれぞれのアサインの最適化が難しい。
【0025】
本実施形態では、2つのEHCIコントローラに対するデバイス(外部USBデバイス)のアサインを最適化するために、上述のバススイッチ201が用いられる。すなわち、本実施形態では、外部コネクタに外部デバイス(外部USBデバイス)が新たに接続された時、その時点で接続されている外部デバイス(外部USBデバイス)の数に応じて、その新たに接続された外部デバイスをUSBホストコントローラ115のどのポートにアサインするかが決定される。換言すれば、複数の外部コネクタに現在接続されている外部デバイス(外部USBデバイス)の数に応じて、新たに接続された外部デバイスが割り当てられるべきコントローラが、第1および第2のEHCIコントローラ115A,115Bから選択される。そして、新たに接続された外部デバイスに対応する外部コネクタが、選択されたEHCIコントローラに接続されるように、つまり、新たに接続された外部デバイスがUSBホストコントローラ115の決定されたポートに割り当てられるように、バススイッチ201が制御される。したがって、外部デバイス(外部USBデバイス)がどの外部コネクタに接続された場合でも、その外部デバイス(外部USBデバイス)を所望のEHCIコントローラに、つまり、USBホストコントローラ115の所望のポートに、割り当てることができる。よって、EHCIコントローラ115A,115Bに対する外部デバイス(外部USBデバイス)それぞれの割り当てをシステム内で柔軟に制御することができる。
【0026】
例えば、各外部デバイスがどの外部コネクタに挿入されても片側のEHCIコントローラにそれら外部デバイスが集中して割り当てられるようにバススイッチ201を制御してもよい。これにより、他方のEHCIコントローラをディセーブルにすることができるので、USBホストコントローラ115の省電力化を実現できる。
【0027】
逆に、複数のEHCIコントローラに対して外部デバイスそれぞれがバランスよく分散して割り当てられるようにするために、各外部デバイスがどの外部コネクタに挿入されてもそれら外部デバイスが2つのEHCIコントローラ115A,115Bにバランスよく分散して割り当てられるように、バススイッチ201を制御してもよい。これにより、外部デバイス同士(外部USBデバイス同士)の通信の干渉によるスループットの低下(つまり、片側のEHCIコントローラに外部デバイスが偏って割り当てられることによるスループットの低下)を防ぐことができ、USBホストコントローラ115のパフォーマンス向上を実現できる。
【0028】
前者は省電力優先のUSBポート割り当て制御方法であると云える。また後者はパフォーマンス優先のUSBポート割り当て制御方法であると云える。省電力優先の割り当て制御方法(省電力モード)とパフォーマンス優先の割り当て制御方法(パフォーマンスモード)のどちらのモードを使用するかは、ユーザがオペレーティングシステム上の専用のユーザインタフェースを介して任意に指定することができる。また、コンピュータ10が外部電力によって駆動されている間(AC電力駆動)はパフォーマンスモードを選択し、コンピュータ10が内蔵のバッテリによって駆動されている間(バッテリ駆動)は省電力モードを選択してもよい。
【0029】
エンベデッドコントローラ/キーボードコントローラIC(EC/KBC)119は、電力管理のためのエンベデッドコントローラと、キーボード(KB)13およびポインティングデバイス15などを制御するキーボードコントローラとが集積された1チップマイクロコンピュータである。EC/KBC119は、電源回路120と共同して、ユーザによるパワーボタンスイッチ14の操作に応じて本コンピュータ10を電源オン/電源オフする。電源回路120は、コンピュータ本体11に内蔵されたバッテリ121またはACアダプタ122を介して供給される外部電源を用いて、本コンピュータ10の各コンポーネントに供給すべきシステム電源を生成する。
【0030】
次に、図3を参照して、本実施形態のコンピュータ10に設けられたポート割り当て制御サブシステムの構成を説明する。
【0031】
上述したように、ホストコントローラ115は2つのECHIコントローラ115A、115Bを内蔵する。第1のEHCIコントローラ(EHCI#1)115AがPort0−7を、第2のEHCIコントローラ(EHCI#2)115BがPort8−13を持つ。Port0−6には内蔵USBデバイスがそれぞれ接続されているものとする。Port7−9はバススイッチ201を介して外部コネクタ171、172、173に接続される。つまり、Port7−9と外部コネクタ171−173との間の3つのUSB信号ラインにはバススイッチ201が挿入されている。バススイッチ201は、マイクロコンピュータ203から受信される制御信号に応じて、外部コネクタ171−173の各々をPort7−9内の任意のポートに接続する。
【0032】
なお、ここでは、第1のEHCIコントローラ(EHCI#1)115AのPort7と第2のEHCIコントローラ(EHCI#2)115BのPort8,9とがバススイッチ201に接続される場合を例示したが、これに限られない。第1のEHCIコントローラ(EHCI#1)115Aの1以上のポートと第2のEHCIコントローラ(EHCI#2)115Bの1以上のポートがバススイッチ201に接続されるようにしてもよい。
【0033】
外部コネクタ171−173のいずれにもデバイスが挿入されていない初期状態では、バススイッチ201により、Port7−9と外部コネクタ171−173との間は遮断状態(非接続状態)に設定される。つまり、バススイッチ201は、Port7−9の各々を全ての外部コネクタ171−173から電気的に分離する。これにより、どの外部コネクタに外部デバイスが接続されても、その時点では、その外部デバイスはホストコントローラ115には接続されない。よって、外部コネクタに外部デバイスが接続された時点で、その外部デバイスがホストコントローラ115の特定のポートにアサインされてしまうことを防止することができる。
【0034】
接続検出回路202は、外部コネクタ171−173に対応する3つのUSB信号ラインに接続されている。接続検出回路202は、外部コネクタ171−173の各々に対する外部デバイスの接続(挿入)、および外部コネクタ171−173の各々からの外部デバイスの抜き出しを検出する検出部である。ある外部コネクタに外部USBデバイスが挿入された時、接続検出回路202は、その外部コネクタに外部USBデバイスが挿入されたことを検出し、その外部コネクタに外部USBデバイスが挿入されたことを示す接続検出信号をマイクロコンピュータ203に送信する。同様に、接続検出回路202は、ある外部コネクタから外部USBデバイスが抜き出された時、その外部コネクタから外部USBデバイスが抜き出されたことを検出し、その外部コネクタから外部USBデバイスが抜き出されたことを示す抜出検出信号をマイクロコンピュータ203に送信する。
【0035】
マイクロコンピュータ203は、バススイッチ201を用いて、外部USBデバイスをPort7−9内の任意のポートに割り当てるためのUSBポート割り当て制御処理を実行する。接続検出回路202から検出信号(接続検出信号、抜出検出信号)を受信した時、マイクロコンピュータ203は、外部コネクタ171−173に現在接続されているデバイスの数を判定する。そして、マイクロコンピュータ203は、デバイスの数に応じて、必要に応じてバススイッチ201を制御し、これによってUSBデバイスに対するPortアサインをコントロールする。また、場合によっては、マイクロコンピュータ203は、USBホストコントローラ115内のEHCIコントローラ(EHCI#2)のイネーブル・ディセーブル処理も行う。USBデバイスのPortアサイン及びEHCIコントローラのイネーブル・ディセーブルの制御は、OS上で動作するソフトウェアによって実行するようにしてもよい。なお、イネーブル・ディセーブル制御の対象となるEHCIコントローラは、内蔵USBデバイスが接続されていないEHCIコントローラである。たとえば、USBホストコントローラ115が3つのEHCIコントローラを内蔵しており、それら3つのEHCIコントローラ内の2つのEHCIコントローラの各々に内蔵USBデバイスが接続され、残りの1つのEHCIコントローラに内蔵USBデバイスが接続されていない場合には、残りの1つのEHCIコントローラがイネーブル・ディセーブル制御の対象となる。
【0036】
USBポート割り当て制御処理の概要は以下の通りである。
ある一つの外部コネクタに外部USBデバイス(第1の外部USBデバイス)が接続されたことが検出された場合、マイクロコンピュータ203は、外部コネクタ171−173に現在接続されている1以上の外部USBデバイスの数に応じて、第1の外部USBデバイスが割り当てられるべきEHCIコントローラを2つのEHCIコントローラ115A,115Bから選択する。換言すれば、マイクロコンピュータ203は、第1の外部USBデバイスが割り当てられるべきポートをPort7−9から選択する。そして、マイクロコンピュータ203は、第1の外部USBデバイスが接続された外部コネクタが、選択されたEHCIコントローラに接続されるように、つまり、第1の外部USBデバイスが接続された外部コネクタが、選択されたポートに接続されるように、バススイッチ201を制御する。バススイッチ201に接続されるEHCIコントローラ115Aのポート数は既知であり、またバススイッチ201に接続されるEHCIコントローラ115Bのポート数も既知であるので、マイクロコンピュータ203は、第1の外部USBデバイスが割り当てられるべきEHCIコントローラを、つまり、第1の外部USBデバイスが割り当てられるべきポートを、外部コネクタ171−173に現在接続されている1以上の外部USBデバイスの数に応じて決定することができる。
【0037】
以下、本実施形態のUSBポート割り当て制御処理によってUSBホストコントローラ115の省電力を実現する例について説明する。
【0038】
図4のフローチャートは、外部USBデバイスが接続された時に実行されるUSBポート割り当て制御処理(省電力モード)の手順を示している。
【0039】
使用されていないEHCIコントローラをディセーブルにすることはシステムの電力消費を低減することを可能にする。接続される全USBデバイス(内蔵USBデバイスと外部USBデバイスの合計)が8個以下であれば、第1のEHCIコントローラ(EHCI#1)115Aのみをイネーブルにし、第2のEHCIコントローラ(EHCI#2)115Bをディセーブルにすることが可能となる。
【0040】
一般に、ノートブックタイプのパーソナルコンピュータ(PC)では、内蔵するUSBデバイスの数が多いため、接続される全USBデバイスが8個以下にならないことが多い。しかし、外部コネクタ171−173の全てが同時に使用されるとは限らない。このため、実際に使用中のデバイスの数だけ計上した場合には、全USBデバイスが8個以内に収まるケースが多く、本実施形態のUSBポート割り当て制御処理(省電力モード)はこのようなケースで利用し得る。
【0041】
まず、外部コネクタ171−173に一つも外部デバイスが挿入されていない時を初期状態とする。前述の通り、この時は、USBホストコントローラ116と外部コネクタ171−173との間はバススイッチ201により遮断されている。そして、この時は第2のEHCIコントローラ(EHCI#2)115Bに接続されているデバイスの数は0なので、第2のEHCIコントローラ(EHCI#2)115Bはディセーブルに設定される。
【0042】
ここで、いずれかの外部コネクタ(コネクタ(X)とする)に外部デバイスが挿入されたとする。接続検出回路202は、コネクタ(X)に外部デバイスが挿入されたことを検出する(ステップS11)。そして、接続検出回路202は、コネクタ(X)に外部デバイスが挿入されたことをマイクロコンピュータ203に通知する(ステップS12)。マイクロコンピュータ203は、外部コネクタ171−173に現在接続されている外部デバイスの数を判定する(ステップS13)。
【0043】
外部デバイスが挿入された直後における全外部コネクタ171−173に対する接続デバイス数が1である時、つまり外部デバイスの挿入前は接続デバイス数が0である時(ステップS13のYES)、マイクロコンピュータ203は、ステップS14に進み、コネクタ(X)に接続された外部デバイスが割り当てられるべきEHCIコントローラを第1のEHCIコントローラ(EHCI#1)115A(Port7)に決定する。つまり、第1のEHCIコントローラ(EHCI#1)115Aが、外部デバイスが割り当てられるべきEHCIコントローラとして選択される。ステップS14では、マイクロコンピュータ203は、コネクタ(X)がPort7に接続され、かつコネクタ(X)以外の2つの未使用の外部コネクタがPort8,9にそれぞれ接続されるように、バススイッチ201を制御する(バススイッチ切り替え)。これにより、接続デバイス数が1の場合には、どの外部コネクタに外部USBデバイスが接続されたとしても、その外部USBデバイスは第1のEHCIコントローラ(EHCI#1)115Aに割り当てられる。したがって、全USBデバイスが第1のEHCIコントローラ(EHCI#1)115Aのみに接続されることになる。次いで、マイクロコンピュータ203は、バススイッチ切り替えをロックする(ステップS15)。以降、外部コネクタ171−173から全外部デバイスが抜出されるまで、つまり外部コネクタ171−173に一つも外部デバイスが接続されていない状態になるまで、バススイッチ201の切り替えは行われない。換言すれば、コネクタ(X)がPort7に接続され、かつコネクタ(X)以外の2つの外部コネクタがPort8,9にそれぞれ接続された状態が維持される。
【0044】
コネクタ(X)がPort7に接続された時、第1のEHCIコントローラ(EHCI#1)115Aはコネクタ(X)に接続された外部デバイスを、Port7に接続されたデバイスとして検出する(ステップS18)。この外部デバイスはOSによって認識され、第1のEHCIコントローラ(EHCI#1)115AのPort7を介してこのデバイスとの通信が実行される。
【0045】
外部コネクタ171−173に現在接続されているデバイスの数が1でないならば(ステップS13のNO)、マイクロコンピュータ203は、ステップS16に進み、外部コネクタ171−173に現在接続されている外部デバイスの数が2であるか否かを判定する。
【0046】
外部コネクタ171−173に現在接続されている外部デバイスの数が2であるならば、つまり、外部コネクタ171−173のいずれかに外部デバイスが1つ接続されている状態で、残りの2つの外部コネクタのいずれかに新たな外部デバイスが挿入された時は(ステップS16のYES)、マイクロコンピュータ203は、第2のEHCIコントローラ(EHCI#2)115Bをイネーブルにし、これによってPort8,9を使用できる状態にする(ステップS17)。Portアサインは最初の外部デバイスの接続時にステップS14の処理によってすでに確定されている。したがって、ここではバススイッチ201の切り替えは行わない。また、外部デバイスが2つ接続されている状態で、残りのコネクタ1つに新たな外部デバイスが挿入された時は、既に第2のEHCIコントローラ(EHCI#2)115Bはイネーブルになっているので、特に制御は行わない。
【0047】
新たな外部デバイスは第2のEHCIコントローラ(EHCI#2)115Bに割り当てられる。第2のEHCIコントローラ(EHCI#2)115Bは新たな外部デバイスを検出する(ステップS18)。
【0048】
なお、ここでは、第1のEHCIコントローラ(EHCI#1)115Aの空きポートがPort7のみである場合を例示して説明したが、これに限られない。たとえば、第1のEHCIコントローラ(EHCI#1)115Aが複数の空きポートを有しており、それら複数の空きポートがバススイッチ201に接続されていてもよい。この場合、その空きポートの数と同じ数の外部USBデバイスが接続されるまでは、各外部USBデバイスが第1のEHCIコントローラ(EHCI#1)115Aに優先的に割り当てられるように、バススイッチ201を制御してもよい。
【0049】
すなわち、省電力モードにおいては、マイクロコンピュータ203は、外部コネクタ171−173に現在接続されている外部USBデバイスの数が所定個数(バススイッチ201に接続されている第1のEHCIコントローラ(EHCI#1)115Aのポート数)を超えるまでは、新たに接続された外部USBデバイスをEHCIコントローラ115Aに優先的に割り当てられる。つまり、マイクロコンピュータ203は、新たに接続された外部USBデバイスがEHCIコントローラ115Aに優先的に割り当てられるように、外部コネクタ171−173に現在接続されている1以上の外部USBデバイスの数に応じて、新たに接続された外部USBデバイスが割り当てられるべきコントローラを2つのEHCIコントローラ115A,115Bから選択する。さらに、マイクロコンピュータ203は、外部コネクタ171−173に現在接続されている外部USBデバイスの数が上述の所定個数を超えるまでは、EHCIコントローラ115Bをディスエーブル状態に維持する。
【0050】
図5のフローチャートは、外部USBデバイスが抜出された時に実行されるUSBポート割り当て制御処理(省電力モード)の手順を示している。
【0051】
いま、いずれかの外部コネクタ(コネクタ(X)とする)から外部デバイスが抜き出されたとする。接続検出回路202は、コネクタ(X)から外部デバイスが抜き出されたことを検出する(ステップS21)。そして、接続検出回路202は、コネクタ(X)から外部デバイスが抜き出されたことをマイクロコンピュータ203に通知する(ステップS22)。マイクロコンピュータ203は、デバイス抜き出し後における外部コネクタ171−173に対する接続デバイスの数を判定する(ステップS23)。
【0052】
外部コネクタ171−173に対する接続デバイス数が0である時、つまり外部デバイスの抜き出し前は接続デバイス数が1である時(ステップS23のYES)、マイクロコンピュータ203は、ステップS24に進み、第2のEHCIコントローラ(EHCI#2)115Bをディセーブルにする。ステップS24では、マイクロコンピュータ203は、さらに、バススイッチ201のロックを解除し、バススイッチ201を初期状態、つまりUSBホストコントローラ116と外部コネクタ171−173との間がバススイッチ201により遮断されている初期状態に戻す。
【0053】
外部コネクタ171−173に対する接続デバイス数が0でないならば(ステップS23のNO)、マイクロコンピュータ203は、外部コネクタ171−173に現在接続されている外部デバイスがPort7に割り当てられた外部デバイス(外部コネクタに最初に接続されたデバイス)のみであるか否かを判定する(ステップS25)。外部コネクタ171−173に現在接続されている外部デバイスがPort7に割り当てられた外部デバイスのみであるならば(ステップS25のYES)、マイクロコンピュータ203は、ステップS26に進み、第2のEHCIコントローラ(EHCI#2)115Bをディセーブルにする。
【0054】
以下、本実施形態のUSBポート割り当て制御処理によってUSBホストコントローラ115のパフォーマンス低下の防止を実現する例について説明する。
【0055】
図6のフローチャートは、外部USBデバイスが接続された時に実行されるUSBポート割り当て制御処理(パフォーマンスモード)の手順を示している。
【0056】
パフォーマンスの低下を防ぐには、なるべく一つのEHCIコントローラにデバイスの制御が偏らないようにしてデバイス間の干渉を防ぐことが重要である。本実施形態は、その中でも、外部コネクタに接続された外部デバイス同士の干渉を防ぐことに重点を置いたものである。
【0057】
外部コネクタ171−173に一つも外部デバイスが挿入されていない時を初期状態とする。前述の通り、この時は、USBホストコントローラ116と外部コネクタ171−173との間はバススイッチ201により遮断されている。パフォーマンスモードにおいては、第2のEHCIコントローラ(EHCI#2)115Bは常時イネーブル状態を保持しているものとする。
【0058】
ここで、いずれかの外部コネクタ(コネクタ(X)とする)に外部デバイスが挿入されたとする。接続検出回路202は、コネクタ(X)に外部デバイスが挿入されたことを検出する(ステップS31)。そして、接続検出回路202は、コネクタ(X)に外部デバイスが挿入されたことをマイクロコンピュータ203に通知する(ステップS32)。マイクロコンピュータ203は、外部コネクタ171−173に現在接続されている外部デバイスの数を判定する(ステップS33)。
【0059】
外部デバイスが挿入された直後における全外部コネクタ171−173に対する接続デバイス数が1である時、つまり外部デバイスの挿入前は接続デバイス数が0である時(ステップS33のYES)、マイクロコンピュータ203は、ステップS34に進み、コネクタ(X)に接続された外部デバイスが割り当てられるべきEHCIコントローラを第2のEHCIコントローラ(EHCI#2)115B、つまり内蔵デバイスが接続されているEHCIコントローラとは異なるEHCIコントローラ、に決定する。ステップS34では、マイクロコンピュータ203は、コネクタ(X)がPort8に接続されるようにバススイッチ201を制御する(バススイッチ切り替え)。これにより、接続デバイス数が1の場合には、どの外部コネクタに外部USBデバイスが接続されたとしても、その外部USBデバイスは第2のEHCIコントローラ(EHCI#2)115Bに割り当てられる。これにより、内蔵USBデバイスと外部USBデバイスとの間の干渉に起因するスループットの低下を防ぐことができる。マイクロコンピュータ203は、残り2つの外部コネクタについてはホストコントローラ115と遮断された状態に維持する。この時点では、まだ、残り2つの外部コネクタのPortアサインを確定させない為である。
【0060】
第2のEHCIコントローラ(EHCI#2)115Bはコネクタ(X)に接続された外部デバイスを検出する(ステップS35)。この外部デバイスはOSによって認識され、第2のEHCIコントローラ(EHCI#2)115BのPort8を介してこの外部デバイスとの通信が実行される。
【0061】
外部コネクタ171−173に現在接続されている外部デバイスの数が1でないならば(ステップS33のNO)、マイクロコンピュータ203は、ステップS36に進み、外部コネクタ171−173に現在接続されている外部デバイスの数が2であるか否かを判定する。
【0062】
外部コネクタ171−173に現在接続されている外部デバイスの数が2であるならば、つまり、外部コネクタ171−173に外部デバイスが1つ接続されている状態で、残りの2つの外部コネクタのいずれかに新たな外部デバイスが挿入された時は(ステップS36のYES)、マイクロコンピュータ203は、バススイッチ201がロックされているか否かを判定する(ステップS37)。バススイッチ201がロックされていないならば(ステップS37のYES)、マイクロコンピュータ203は、ステップS38に進み、コネクタ(X)に接続された外部デバイスが割り当てられるべきEHCIコントローラを、第1のEHCIコントローラ(EHCI#1)115Aに決定する。ステップS38では、マイクロコンピュータ203は、コネクタ(X)がPort7に接続され、残り1つのコネクタがPort9に接続されるように、バススイッチ201を制御する(バススイッチ切り替え)。これにより、二つ目の外部USBデバイスは、一つ目の外部デバイスを制御するEHCIコントローラとは別の第1のEHCIコントローラ(EHCI#1)115Aによって制御されるので、外部デバイス同士の干渉を防ぐことができる(二つ目の外部デバイスは内蔵デバイスからの干渉は受けることになるが、前述の通り外部デバイス間の干渉を防ぐことを優先させている)。
【0063】
次いで、マイクロコンピュータ203は、バススイッチ切り替えをロックする(ステップS39)。以降、外部コネクタ171−173から全外部デバイスが抜出されるまで、つまり外部コネクタ171−173に一つも外部デバイスが接続されていない状態になるまで、バススイッチ201の切り替えは行われない。
【0064】
第2のEHCIコントローラ(EHCI#2)115Bは2つ目の外部デバイスを検出する(ステップS35)。この外部デバイスはOSによって認識され、第1のEHCIコントローラ(EHCI#1)115AのPort7を介してこの2つ目の外部デバイスとの通信が実行される。
【0065】
このように、省電力モードでは、マイクロコンピュータ203は、2つのEHCIコントローラ115A,115Bに外部USBデバイスそれぞれを分散して割り当てられる。つまり、マイクロコンピュータ203は、2つのEHCIコントローラ115A,115Bに外部USBデバイスそれぞれが分散して割り当てられるように、外部コネクタ171−173に現在接続されている1以上の外部USBデバイスの数に応じて、新たに接続された外部USBデバイスが割り当てられるべきコントローラを2つのEHCIコントローラ115A,115Bから選択する。
【0066】
図7のフローチャートは、外部USBデバイスが抜出された時に実行されるUSBポート割り当て制御処理(パフォーマンスモード)の手順を示している。
【0067】
いま、いずれかの外部コネクタ(コネクタ(X)とする)から外部デバイスが抜き出されたとする。接続検出回路202は、コネクタ(X)から外部デバイスが抜き出されたことを検出する(ステップS41)。そして、接続検出回路202は、コネクタ(X)から外部デバイスが抜き出されたことをマイクロコンピュータ203に通知する(ステップS42)。マイクロコンピュータ203は、外部デバイス抜き出し後における外部コネクタ171−173に対する接続デバイスの数を判定する(ステップS43)。
【0068】
外部コネクタ171−173に対する接続デバイス数が0である時、つまり外部デバイスの抜き出し前は接続デバイス数が1である時(ステップS43のYES)、マイクロコンピュータ203は、ステップS44に進み、バススイッチ201のロックを解除し、バススイッチ201を初期状態、つまりUSBホストコントローラ116と外部コネクタ171−173との間がバススイッチ201により遮断されている状態に戻す。
【0069】
以上、省電力モードとパフォーマンスモードそれぞれにおけるUSBポート割り当て制御処理について述べたが、ユーザは、これら省電力モードとパフォーマンスモードの一方を指定することができる。
【0070】
図8は、ユーザにUSBポート割り当て制御処理のモードを指定させるための設定画面の例を示している。この設定画面400は、省電力モード、パフォーマンスモード、オートモードそれぞれに対応する3つのメニュー項目401,402,403を表示する。オートモードは、コンピュータ10がバッテリ駆動/AC電力駆動のいずれの状態であるかに応じて省電力モードとパフォーマンスモードの一方を自動的に選択するモードである。この設定画面400は、さらに、3つのメニュー項目401,402,403に関連づけられた3つのラジオボタン501,502,503を表示する。ユーザは、ポインティングデバイスを用いてラジオボタン501,502,または503を操作することによって、省電力モード、パフォーマンスモード、オートモードの一つをUSBポート割り当て制御処理モードとして選択することができる。選択されたUSBポート割り当て制御処理のモードを示す情報は、HDD116等の記憶装置に設定ファイルとして格納される。
【0071】
次に、図9のフローチャートを参照して、USBポート割り当てモード切替処理の手順を説明する。
【0072】
CPU111は、たとえば、コンピュータ10の起動時に、設定ファイルを参照して、現在のUSBポート割り当て制御処理モードをチェックする。現在のUSBポート割り当て制御処理モードが省電力モードであるならば(ステップS51のYES)、CPU111は、マイクロコンピュータ203に省電力モードに対応するUSBポート割り当て制御処理を実行するように指示する。これにより、マイクロコンピュータ203は、省電力モードに対応する第1の動作モードに設定される。マイクロコンピュータ203が第1の動作モードである間、マイクロコンピュータ203は、各外部USBデバイスが実際に接続される外部コネクタとは関係なく、各外部USBデバイスが一方のEHCIコントローラに集中して割り当てられるように、図4および図5で説明した処理を実行する(ステップS52)。
【0073】
現在のUSBポート割り当て制御処理モードがパフォーマンスモードであるならば(ステップS53のYES)、CPU111は、マイクロコンピュータ203にパフォーマンスモードに対応するUSBポート割り当て制御処理を実行するように指示する。これにより、マイクロコンピュータ203は、パフォーマンスモードに対応する第2の動作モードに設定される。マイクロコンピュータ203が第2の動作モードである間、マイクロコンピュータ203は、個々の外部USBデバイスが実際に接続される外部コネクタとは関係なく、それら外部USBデバイスが2つのEHCIコントローラにバランスよく分散して割り当てられるように、図6および図7で説明した処理を実行する(ステップS54)。
【0074】
現在のUSBポート割り当て制御処理モードがオートモードであるならば(ステップS53のNO)、CPU111は、コンピュータ10が動作している間、コンピュータ10の電源ソースがバッテリまたは外部電源のいずれであるか監視する(ステップS55)。
【0075】
コンピュータ10がバッテリ駆動されているならば(ステップS55のYES)、CPU111は、マイクロコンピュータ203に省電力モードに対応するUSBポート割り当て制御処理を実行するように指示し、これによってマイクロコンピュータ203を第1の動作モードに設定する。マイクロコンピュータ203は、各外部USBデバイスが接続される外部コネクタとは関係なく、各外部USBデバイスが一方のEHCIコントローラに集中して割り当てられるように、図4および図5で説明した処理を実行する(ステップS56)。
【0076】
コンピュータ10がAC電力駆動されているならば(ステップS55のNO)、CPU111は、マイクロコンピュータ203にパフォーマンスモードに対応するUSBポート割り当て制御処理を実行するように指示し、これによってマイクロコンピュータ203を第2の動作モードに設定する。マイクロコンピュータ203は、個々の外部USBデバイスが接続される外部コネクタとは関係なく、それら外部USBデバイスが2つのEHCIコントローラに分散して割り当てられるように、図6および図7で説明した処理を実行する(ステップS57)。
【0077】
以上説明したように、本実施形態によれば、外部コネクタ171−173の各々を第1および第2のコントローラ115A,115Bのいずれか一方に接続するバススイッチ201が設けられている。外部コネクタ171−173の任意の一つの外部コネクタに外部デバイス(第1外部デバイス)が接続された時に、外部コネクタ171−173に現在接続されている1以上の外部デバイスの数に応じて、第1デバイスが割り当てられるべきコントローラが第1および第2のコントローラ115A,115Bから選択される。そして、第1の外部デバイスが接続された任意の一つの外部コネクタが、選択されたコントローラに接続されるように、バススイッチ201が制御される。したがって、第1デバイスがどの外部コネクタに接続されるかに関係なく、その第1デバイスを所望のコントローラに割り当てることができる。よって、第1および第2のコントローラ115A,115Bに対するデバイスの割り当てを柔軟に制御することができる。
【0078】
また、省電力モードでは、可能な限り片側のコントローラのみが使用されるように、外部コネクタに接続された外部USBデバイスが割り当てられるべきコントローラを決定することにより、ユーザがどの外部コネクタを使うかに関係なく、USBホストコントローラ115の消費電力を最小限に抑えることができるようになる。
【0079】
また、パフォーマンスモードでは、可能な限り外部USBデバイスが片側のコントローラに偏らないように、外部コネクタに接続された外部USBデバイスが割り当てられるべきコントローラを決定することにより、ユーザがどの外部コネクタを使うかに関係なく、外部USBデバイス間の干渉を最小限に抑えることができるようになる。
【0080】
なお、以上の説明では、外部コネクタ171−173がUSBデバイスを接続するためのUSBコネクタである場合を説明したが、外部コネクタ171−173の各々は、たとえばeSATAのようなシリアルATAデバイスを接続するためのコネクタであってもよい。この場合、2つ以上のEHCIコントローラの代わりに、2つ以上のSATAコントローラが用いられ、2つ以上のSATAコントローラと外部コネクタ171−173との間に上述のバススイッチ201が設けられる。
【0081】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0082】
115…USBホストコントローラ、115A,115B…EHCIコントローラ、171〜173…外部コネクタ、201…バススイッチ、202…接続検出回路、203…マイクロコンピュータ。

【特許請求の範囲】
【請求項1】
第1および第2のコントローラと、
複数の外部コネクタと、
前記複数の外部コネクタの各々を前記第1および第2のコントローラのいずれか一方に接続するスイッチと、
前記複数の外部コネクタの各々に対する外部デバイスの接続を検出する検出部と、
前記複数の外部コネクタの内の第1の外部コネクタに外部デバイスが接続されたことが検出された場合、前記複数の外部コネクタに接続されている外部デバイスの数に応じて、前記第1の外部コネクタに接続された外部デバイスが割り当てられるべきコントローラを前記第1および第2のコントローラから選択し、前記第1の外部コネクタが前記選択されたコントローラに接続されるように前記スイッチを制御する制御手段とを具備する情報処理装置。
【請求項2】
前記制御手段は、前記複数の外部コネクタに接続されている外部デバイスの数が所定個数を超えるまでは前記第1の外部コネクタに接続された外部デバイスを前記第1のコントローラに優先的に割り当てるように構成されている請求項1記載の情報処理装置。
【請求項3】
前記制御手段は、前記複数の外部コネクタに接続されている外部デバイスの数が所定個数を超えるまでは前記第1の外部コネクタに接続された外部デバイスを前記第1のコントローラに優先的に割り当て、前記第2のコントローラをディスエーブル状態に維持するように構成されている請求項1記載の情報処理装置。
【請求項4】
前記制御手段は、前記第1のコントローラと前記第2のコントローラとに外部デバイスそれぞれが分散して割り当てるように構成されている請求項1記載の情報処理装置。
【請求項5】
前記制御手段は、第1動作モードおよび第2動作モードのいずれか一方で動作するように構成されており、前記第1動作モードの場合は、前記複数の外部コネクタに接続されている外部デバイスの数が所定個数を超えるまでは前記第1の外部コネクタに接続された外部デバイスを前記第1のコントローラに優先的に割り当て、前記第2動作モードの場合は、前記第1のコントローラと前記第2のコントローラに分散して外部デバイスそれぞれを分散して割り当てる請求項1記載の情報処理装置。
【請求項6】
前記制御手段が前記第1動作モードである間は、前記制御手段は、前記複数の外部コネクタに接続されている1以上の外部デバイスの数が所定個数を超えるまでの間、前記第2のコントローラをディスエーブル状態に維持するように構成されている請求項5記載の情報処理装置。
【請求項7】
前記情報処理装置の電力ソースが前記情報処理装置内のバッテリまたは外部電源のいずれであるかを判定し、前記電力ソースが前記バッテリである場合、前記制御手段を前記第1の動作モードに設定し、前記電力ソースが前記外部電源である場合、前記制御手段を前記第2の動作モードに設定する動作モード制御手段をさらに具備する請求項5記載の情報処理装置。
【請求項8】
前記第1のコントローラは内蔵デバイスが接続される第1ポートと、前記スイッチに接続される1以上の第2ポートとを備え、前記第2コントローラは、前記スイッチに接続される1以上の第3ポートを備え、
前記スイッチは、前記複数の外部コネクタの各々を前記1以上の第2ポートおよび前記1以上の第3ポートのいずれかのポートに接続するように構成されている請求項1記載の情報処理装置。
【請求項9】
情報処理装置の複数の外部コネクタの各々に対する外部デバイスの割り当てを制御する割り当て制御方法であって、
前記複数の外部コネクタの任意の一つの外部コネクタに外部デバイスが接続されたことが検出された場合、前記複数の外部コネクタに現在接続されている1以上の外部デバイスの数に応じて、前記任意の一つの外部コネクタに接続された外部デバイスが割り当てられるべきコントローラを、前記情報処理装置内の第1および第2のコントローラから選択し、
前記任意の一つの外部コネクタが前記選択されたコントローラに接続されるように、前記第1および第2のコントローラと前記複数の外部コネクタとの間に接続されたスイッチを制御する割り当て制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2013−30063(P2013−30063A)
【公開日】平成25年2月7日(2013.2.7)
【国際特許分類】
【出願番号】特願2011−166781(P2011−166781)
【出願日】平成23年7月29日(2011.7.29)
【出願人】(000003078)株式会社東芝 (54,554)