(57)【要約】【課題】入出力バスシステム上のデバイスの電源操作を活性状態で行なうことができるようにする。【解決手段】入出力バスシステム１における一部の経路を仮想的に短絡した仮想バスツリー構成を示す仮想バス情報１６１を格納する第１格納部１６と、仮想バス情報１６１を上流側の処理装置３０に通知する通知部１５とを備える。【選択図】図１
2014182604.tif 000002
【特許請求の範囲】
【請求項１】
複数の中継装置を階層的に接続したツリー状の入出力バスシステムを備える情報処理装置であって、
前記入出力バスシステムにおける一部の経路を仮想的に短絡した仮想バスツリー構成を示す仮想バス情報を格納する第１格納部と、
前記仮想バス情報を上流側の処理装置に通知する通知部とを備えることを特徴とする、情報処理装置。
【請求項２】
前記中継装置が、
前記入出力バスシステムにおいてデータ転送を行なうためのルーティング情報を格納する第２格納部と、
前記ルーティング情報に基づいてデータの転送を行なう転送処理部とを備えることを特徴とする、請求項１記載の情報処理装置。
【請求項３】
前記ルーティング情報が、データのヘッダの書き換えに用いられる宛先情報と前記データの転送先情報とを備えることを特徴とする、請求項２記載の情報処理装置。
【請求項４】
前記ルーティング情報を作成するルーティング情報作成部を備えることを特徴とする、請求項２又は３記載の情報処理装置。
【請求項５】
前記ルーティング情報作成部は、前記入出力バスシステムおける構成変更を検知すると、前記ルーティング情報を再作成することを特徴とする、請求項４記載の情報処理装置。
【請求項６】
前記入出力バスシステムにおける入出力デバイスが接続される前記中継装置のレジスタ情報の複写を格納する第３格納部と、
前記処理装置に対して、前記第３格納部に格納された前記レジスタ情報の複写を用いて応答する応答処理部とを備えることを特徴とする、請求項１〜請求項５のいずれか１項に記載の情報処理装置。
【請求項７】
前記仮想バス情報を作成する仮想バス情報作成部を備えることを特徴とする、請求項１〜請求項６のいずれか１項に記載の情報処理装置。
【請求項８】
複数の中継装置を階層的に接続し入出力デバイスを備えた入出力バスシステムを、当該入出力バスシステムにおける一部の経路を仮想的に短絡した仮想バスツリー構成として処理装置が認識する情報処理装置の制御方法であって、
前記処理装置から、取り外し対象の前記入出力デバイスに対して電源オフ指示を送信し、
前記入出力バスシステムから前記入出力デバイスが取り外されると、前記入出力バスシステムにおける前記仮想的に短絡された領域の上流側の前記中継装置に備えられた第４格納部に前記入出力デバイスが未搭載であることを示す未搭載情報を格納し、
前記処理装置に対して、前記第４格納部に格納された未搭載情報を用いて応答する
ことを特徴とする制御方法。
【請求項９】
複数の中継装置を階層的に接続した入出力バスシステムを、当該入出力バスシステムにおける一部の経路を仮想的に短絡した仮想バスツリー構成として処理装置が認識する情報処理装置の制御方法であって、
前記入出力バスシステムに入出力デバイスが取り付けられると、処理装置から、取り外し対象の前記入出力デバイスに対して電源オン指示を送信し、
前記処理装置から前記入出力デバイスに対する指示情報を、前記入出力バスシステムにおける前記仮想的に短絡された領域の上流側の前記中継装置に備えられた第５格納部に格納し、
前記入出力デバイスの電源がオンされた後に、前記第５格納部に格納された指示情報を、前記入出力デバイスに送信する
ことを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び制御方法に関する。
【背景技術】
【０００２】
コンピュータの内部でCentral Processing Unit（ＣＰＵ）とInput／Output（Ｉ／Ｏ）デバイスを接続するバスの規格として、例えば、Peripheral Component Interconnect Express（PCIe）が知られている。
PCIeは、ルートコンプレックス（Root Complex）を頂点とし、Ｉ／Ｏデバイス（入出力装置）を終点とするツリー構造を有する。複数のＩ／Ｏデバイスを接続するには、ツリー構造の中間点にPCIeスイッチ（以下、単にスイッチという）が必要となる。スイッチは、各ポートをPCI-to-PCI（P2P）ブリッジとする２段のツリー構造を持つ。
【０００３】
また、多数のＩ／Ｏデバイスを使用したい装置においては、Ｉ／Ｏデバイスが接続可能なバスを増やすために複数のスイッチを多段に接続して使用することが行なわれている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−４６７２２号公報
【特許文献２】特開２０１０−２２５０８５号公報
【特許文献３】国際公開ＷＯ２０１０−０４４４０９号パンフレット
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、このような従来のコンピュータのＩ／Ｏバスシステムにおいて、例えば、特定のスイッチに何らかの異常が発生した場合に、対象のスイッチの電源をコンピュータシステム全体に通電した状態で落とすことはできない。システム全体に通電した状態で特定のスイッチの電源を強制的にオフすると、ＯＳのパニックが生じ、ＯＳが動作しない状態となるからである。従って、スイッチの交換を行なうためにコンピュータシステム全体の電源を落とす必要があり煩雑であるという課題がある。
【０００６】
１つの側面では、本発明は、入出力バスシステム上のデバイスの電源操作を活性状態で行なうことができるようにすることを目的とする。
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の１つとして位置付けることができる。
【課題を解決するための手段】
【０００７】
このため、この情報処理装置は、複数の中継装置を階層的に接続したツリー状の入出力バスシステムを備える情報処理装置であって、前記入出力バスシステムにおける一部の経路を仮想的に短絡した仮想バスツリー構成を示す仮想バス情報を格納する第１格納部と、前記仮想バス情報を上流側の処理装置に通知する通知部とを備える。
また、この制御方法は、複数の中継装置を階層的に接続し入出力デバイスを備えた入出力バスシステムを、当該入出力バスシステムにおける一部の経路を仮想的に短絡した仮想バスツリー構成として処理装置が認識する情報処理装置の制御方法であって、前記処理装置から、取り外し対象の前記入出力デバイスに対して電源オフ指示を送信し、前記入出力バスシステムから前記入出力デバイスが取り外されると、前記入出力バスシステムにおける前記仮想的に短絡された領域の上流側の前記中継装置に備えられた格納部に前記入出力デバイスが未搭載であることを示す未搭載情報を格納し、前記処理装置に対して、前記格納部に格納された未搭載情報を用いて応答する。
【０００８】
また、この制御方法は、複数の中継装置を階層的に接続した入出力バスシステムを、当該入出力バスシステムにおける一部の経路を仮想的に短絡した仮想バスツリー構成として処理装置が認識する情報処理装置の制御方法であって、前記入出力バスシステムに入出力デバイスが取り付けられると、処理装置から、取り外し対象の前記入出力デバイスに対して電源オン指示を送信し、前記処理装置から前記入出力デバイスに対する指示情報を、前記入出力バスシステムにおける前記仮想的に短絡された領域の上流側の前記中継装置に備えられた格納部に格納し、前記入出力デバイスの電源がオンされた後に、前記格納部に格納された指示情報を、前記入出力デバイスに送信する。
【発明の効果】
【０００９】
一実施形態によれば、入出力バスシステム上のデバイスの電源操作を活性状態で行なうことができる利点がある。
【図面の簡単な説明】
【００１０】
【図１】実施形態の一例としての情報処理装置のＩ／Ｏバスシステムの構成を模式的に示す図である。
【図２】図１に示すＩ／Ｏバスシステムの仮想イメージバスを示す図である。
【図３】実施形態の一例としての情報処理装置におけるルーティング情報の構成例を示す図である。
【図４】実施形態の一例としての情報処理装置のＩ／Ｏバスシステムの構成例を示す図である。
【図５】図４に示すＩ／Ｏバスシステムの仮想イメージバスを例示する図である。
【図６】（ａ），（ｂ），（ｃ）は、図４に示すＩ／Ｏバスシステムについてのルーティング情報を例示する図である。
【図７】実施形態の一例としての情報処理装置におけるパケットのヘッダ書き換え手法を説明するための図である。
【図８】実施形態の一例としての情報処理装置におけるルーティング情報の作成方法を説明するフローチャートである。
【図９】実施形態の一例としての情報処理装置のＩ／Ｏバスシステムにおける情報の流れを示す図である。
【図１０】図９に示すＩ／Ｏバスシステムの仮想イメージバスを示す図である。
【図１１】実施形態の一例としての情報処理装置のＩ／Ｏバスシステムの構成例を示す図である。
【図１２】実施形態の一例としての情報処理装置におけるＩ／Ｏバスシステムの管理手法の概要を示すフローチャートである。
【図１３】実施形態の一例としての情報処理装置における装置起動時の処理を示すシーケンス図である。
【図１４】実施形態の一例としての情報処理装置の通電状態におけるＩ／Ｏデバイスの取り外し時の処理を示すフローチャートである。
【図１５】実施形態の一例としての情報処理装置の通電状態における中間デバイスの取り外し時の処理を示すフローチャートである。
【図１６】実施形態の一例としての情報処理装置の通電状態におけるＩ／Ｏデバイスの追加時の処理を示すフローチャートである。
【図１７】実施形態の一例としての情報処理装置の通電状態における中間デバイスの追加時の処理を示すフローチャートである。
【図１８】実施形態の一例としての情報処理装置におけるＩ／Ｏデバイスの交換時の処理を示すシーケンス図である。
【図１９】実施形態の一例としての情報処理装置のＩ／Ｏバスシステムの第１変形例を示す図である。
【図２０】実施形態の一例としての情報処理装置のＩ／Ｏバスシステムの第２変形例を示す図である。
【図２１】実施形態の一例としての情報処理装置のＩ／Ｏバスシステムの第３変形例を示す図である。
【図２２】図２１に示すＩ／Ｏバスシステムの仮想イメージバスを示す図である。
【図２３】実施形態の一例としての情報処理装置のＩ／Ｏバスシステムの第４変形例を示す図である。
【発明を実施するための形態】
【００１１】
以下、図面を参照して本情報処理装置及び制御方法に係る実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形（実施形態及び各変形例を組み合わせる等）して実施することができる。又、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
【００１２】
図１は実施形態の一例としての情報処理装置５００のＩ／Ｏ（Input/Output：入出力）バスシステム１の構成を模式的に示す図である。
図１に示すＩ／Ｏバスシステム１は、複数（図１に示す例では２つ）のボード１００，２００とマネージメント装置３００とを備える。
ボード１００，２００は、基板上に機能部品を備えた電子部品であり、それぞれに搭載された機能部品により種々の機能を実現する。以下、ボード１００をボードＡ，ボード２００をボードＢと表す場合がある。これらのボード１００，２００は、例えば、PCIeの規格に従ったPCIeバスで接続されている。
【００１３】
すなわち、Ｉ／Ｏバスシステム１は、ボード１００に搭載されたルートコンプレックス４０（後述）を頂点とし、又、Ｉ／Ｏデバイス５０（後述）を末端とするツリー構造を有する。以下、Ｉ／Ｏバスシステム１において、ルートコンプレックス４０側を上流といい、Ｉ／Ｏデバイス５０側を下流という。
そして、本情報処理装置５００においては、Ｉ／Ｏバスシステム１における一部の経路を仮想的に短絡して、この短絡された部分以外の領域をイメージとしてＣＰＵ３０（ＯＳ）に認識させる機能を備える。このＩ／Ｏバスシステムにおける短絡された領域（区間）を仮想化領域ＶＡという。又、ＯＳによって認識される、一部が短絡されたＩ／Ｏバスシステムの構成を仮想イメージバスという。
【００１４】
図１に示す例においては、スイッチ１０の下流側ポート１２及びスイッチ２０の上流側ポート２１を含む領域が仮想化領域ＶＡとして設定されている。この図１に示すＩ／Ｏバスシステム１の仮想イメージバス１ｖを図２に示す。
仮想イメージバス１ｖにおいては、図２に示すように、スイッチ１０の上流側ポート１１にスイッチ２０の下流側ポート２２が接続されている。すなわち、仮想イメージバス１ｖは、ルートコンプレックス４０の下にスイッチがあり、そのスイッチの下流側ポートにＩ／Ｏデバイス５０が接続された構成としてＯＳに認識される。このように、仮想化領域ＶＡ内のデバイスはＯＳから隠された状態となる。仮想化領域ＶＡはＯＳから隠された領域であるともいえる。
【００１５】
後述するスイッチ１０のコントローラ１５が、上位装置であるCentral Processing Unit（ＣＰＵ）３０に対してこの仮想イメージパス１ｖを通知する。これにより、ＣＰＵ３０によって実行されるOperating System（ＯＳ）はＩ／Ｏバスシステム１をこの仮想イメージパス１ｖのように認識する。
ボード２００は、スイッチ２０，電源制御回路７０及びホットプラグコントローラ６０を備える。又、ボード２００には図示しないスロットが備えられ、このスロットにＩ／Ｏデバイス５０が脱着自在に取り付けられる。
【００１６】
Ｉ／Ｏデバイス５０は、ボード２００の図示しないスロットに脱着自在に取り付けられる電子装置である。このＩ／Ｏデバイス５０はポート５１を備え、スイッチ２０の下流側ポート２２とPCIeバスを介して接続される。
スイッチ２０は、PCIeバスに対しファンアウト機能を提供するデバイスであり、Ｉ／Ｏデバイス５０とボードＡのスイッチ１０とが接続される。
【００１７】
スイッチ２０は、コントローラ２７，メモリ２６，上流側ポート２１，ステータスレジスタ２４，制御レジスタ２５及び下流側ポート２２を備える。図１に示す例においては、説明を簡単にするために、１つのスイッチ２０が示されているが、これに限定されるものではなく、後述の如く２つ以上のスイッチ２０を備えてもよい。
上流側ポート２１には、下流側ポート２２及びスイッチ１０の下流側ポート１２が接続される。又、下流側ポート２２にはＩ／Ｏデバイス５０のポート５１が接続される。なお、この下流側ポート２２には、図示しない他のスイッチ２０の上流側ポート２１等が接続されてもよい。以下、スイッチ２０の上流側ポート２１を符号Ｂ２で、又、下流側ポート２２を符号Ａ２で示す場合がある。又、以下、上流側ポート及び下流側ポートを単にポートという場合もある。
【００１８】
また、図１においては、説明を簡単にするために、スイッチ２０に２つのポート２１，２２が備えられている例を示しているが、これに限定されるものではなく、３以上のポートを備えてもよい。
ステータスレジスタ２４には、その下流側ポート２２に接続されるＩ／Ｏデバイス５０の状態を示すステータス情報が格納される。ステータス情報は、例えば、Ｉ／Ｏデバイス５０によって書き込まれる。なお、このステータス情報は既知であり、その詳細な説明は省略する。
【００１９】
制御レジスタ２５には、その下流側ポート２２に接続されるＩ／Ｏデバイス５０を制御するための制御情報が格納される。例えば、ルートコンプレックス４０から送信される電源制御指示が、この制御情報として格納される。後述するホットプラグコントローラ６０は、この電源制御指示に従ってＩ／Ｏデバイス５０の電源のオン／オフを行なう。なお、制御情報は既知の情報であり、その詳細な説明は省略する。
【００２０】
また、これらのステータスレジスタ２４や制御レジスタ２５に格納されているステータス情報や制御情報は、適宜読み出されて、そのコピーが後述するボード１００に送信され、ボード１００のスイッチ１０の第１レジスタ１３や第２レジスタ１４に格納される。
メモリ２６はデータを格納する記憶装置であり、スイッチ２０がその機能を実現するための各種データが格納される。又、メモリ２６にはルーティング情報１６２が格納される。ルーティング情報１６２は、Ｉ／Ｏバスシステム１においてデータ転送を実現するための情報であり、その詳細は後述する。又、スイッチ２０において、コントローラ２７等がＣＰＵ等のプロセッサを備える場合には、メモリ２６にはこのＣＰＵが実行して各種機能を実現するためのプログラムを格納してもよい。
【００２１】
コントローラ２７は、スイッチ２０の機能を実現する制御装置である。このコントローラ２７は、例えば、上流側ポート２１や下流側ポート２２が受信したパケットを、その送信先に転送するための処理を行なう。コントローラ２７は、後述の如く、メモリ２６に格納されたルーティング情報１６２を参照して、転送するパケットのヘッダの書き換えを行ない、このパケットを宛先のポートに送信する。このコントローラ２７による処理は、スイッチ１００のコントローラ１５による処理の説明と併せて後述する。
【００２２】
ホットプラグコントローラ６０は、ＯＳ等から送信された電源制御指示に従って、Ｉ／Ｏデバイス５０の電源のオン／オフを行なう。ホットプラグコントローラ６０は、例えば、Ｉ／Ｏデバイス５０が接続されたスイッチ２０のポート２２のスロットへの電力供給をオン／オフすることにより、Ｉ／Ｏデバイス５０の電源のオン／オフを行なう。
また、ホットプラグコントローラ６０は、マネージメント装置３００に対して、Ｉ／Ｏデバイス５０（スロット）の電源状況、すなわちオン／オフの状況を通知する。
【００２３】
電源制御回路７０は、ボード２００に対する電力供給を制御する。すなわち、ボード２００の電源のオン／オフを行なう。例えば、電源制御回路７０は、後述するマネージメント装置３００からの指示に従って、ボード２００の電源のオン／オフを制御する。
ボード１００は、図１に示すように、ＣＰＵ３０，ルートコンプレックス４０及びスイッチ１０を備えるメインボードである。
【００２４】
ＣＰＵ３０は、制御や演算を行なう処理装置であり、図示しないメモリに格納されたＯＳやプログラムを実行することにより、種々の機能を実現する。例えば、ＯＳは、当該情報処理装置５００に接続されている各種Ｉ／Ｏデバイス５０を管理するデバイス管理機能を有する。このデバイス管理機能は、情報処理装置５００内を定期的にサーチ（デバイスサーチ）を行なうことで、Ｉ／Ｏバスシステム１に新しいＩ／Ｏデバイス５０が追加されていないか等を確認する。
【００２５】
また、ＣＰＵ３０は、Ｉ／Ｏバスシステム１に接続されたＩ／Ｏデバイス５０に対してデータ（パケット）の送受信を行なって、これらのＩ／Ｏデバイス５０の制御を行ない、又、その機能を用いる。又、ＣＰＵ３０（ＯＳ）は、Ｉ／Ｏデバイス５０に対して電源制御指示を送信することにより、そのＩ／Ｏデバイス５０の電源のオン／オフを制御する。
ルートコンプレックス４０は、ＣＰＵ３０や図示しないメモリと接続して、Ｉ／Ｏバスシステム１におけるPCIeのツリートポロジーのルート（根）となる機能を果たす。
【００２６】
スイッチ１０は、PCIeバスに対しファンアウト機能を提供する。すなわち、スイッチ１０には、ルートコンプレックス４０とスイッチ２０とが接続される。
スイッチ１０は、コントローラ１５，メモリ１６，上流側ポート１１，第１レジスタ１３，第２レジスタ１４及び下流側ポート１２を備える。
上流側ポート１１には、下流側ポート１２及びルートコンプレックス４０のポート４１が接続され、又、下流側ポート１２にはボード２００の上流側ポート２１が接続される。なお、以下、上流側ポート１１を符号Ａ１で、又、下流側ポート１２を符号Ｂ１で示す場合がある。
【００２７】
また、図１においては、説明を簡単にするために、スイッチ１０に２つのポート１１，１２が備えられている例を示しているが、これに限定されるものではなく、３以上のポートを備えてもよい。
第１レジスタ（第３格納部）１３及び第２レジスタ（第３格納部，第４格納部，第５格納部）１４は、Ｉ／Ｏデバイス５０を切り離した際に読み出すデータを格納する記憶装置である。
【００２８】
第１レジスタ１３には、Ｉ／Ｏデバイス５０が接続されている下流側ポートに対応するステータスレジスタ２４のコピーであるステータスレジスタコピー（レジスタ情報）１３１が格納される。
第２レジスタ１４には、Ｉ／Ｏデバイス５０が接続されている下流側ポートに対応する制御レジスタ２５のコピーである制御レジスタコピー（レジスタ情報）１４１が格納される。
【００２９】
また、スイッチ１０においては、ＯＳ等からＩ／Ｏバスシステム１上のＩ／Ｏデバイス５０に対して制御レジスタ２５の変更を伴うパケットが送信される場合に、そのパケットに含まれる制御レジスタ値が第２レジスタ１４に制御レジスタコピーとして格納される。具体的には、後述の如く、コントローラ１５が、受信したPCIeパケットを仮想化領域ＶＡを通過させるためにパケットの変換を行なう際に、そのパケットに含まれる制御レジスタ値のコピーを第２レジスタ１４に格納する。
【００３０】
例えば、Ｉ／Ｏデバイス５０を本情報処理装置５００（ボードＡ）に電力を供給した状態で取り外すホットリムーブ（Hot remove）を行なう場合に、ＯＳからスイッチ２０のポートＡ２に対してスロットの電源オフを指示するパケットが発行される。そのパケットは、スイッチ１０のポートＡ１において、スイッチ２０のポートＢ２宛てのパケットに変換される。その際にポートＡ１の第２レジスタ１４にパケットのコピーが取られる。
【００３１】
ここで、制御レジスタコピーには、PCIe仕様書に規定されているSlot Capabilities Register、Slot Control Register及びSlot Status Registerを最低限備える。これらのレジスタは、メモリ１６にルーティング情報１６２を設定する際に、マネージメント装置３００からの指示に従って、制御レジスタ２５からコピーされる。
また、Ｉ／Ｏデバイスが接続されている下流側ポートが複数ある場合には、これらの複数の下流側ポートの各ステータスレジスタ２４及び制御レジスタ２５の値のコピーが、それぞれ、その下流側ポートを識別するための情報に対応付けられた状態で第１レジスタ１３及び第２レジスタ１４に格納される。
【００３２】
メモリ１６はデータを格納する記憶装置であり、スイッチ１０がその機能を実現するためのデータが格納される。又、メモリ１６には仮想バス情報１６１及びルーティング情報１６２が格納される。又、スイッチ１０において、コントローラ１５等がＣＰＵ等のプロセッサを備える場合には、メモリ１６にはこのＣＰＵが実行して各種機能を実現するためのプログラムを格納してもよい。
【００３３】
仮想バス情報１６１は、ＯＳに対して提示される仮想イメージバス（図２参照）１ｖの構成を示す。この仮想イメージパス１ｖは、スイッチ１０の上流側ポートＡ１を頂点とするツリー構造を有する。以下、この仮想バス情報１６１によって示される仮想イメージパスを仮想バスツリー１ｖという場合がある。
図２は実施形態の一例としての情報処理装置５００における仮想バスツリーを例示する図である。この図２に示すように、ＯＳからは、上流側ポートＡ１に下流側ポートＡ２等が接続されているように見える。又、図２に示す仮想バスツリーにおいては、複数の下流側ポートに対応させて、ステータスレジスタコピー及び制御レジスタコピーが示されている。
【００３４】
すなわち、仮想バス情報１６１はステータスレジスタコピー及び制御レジスタコピーとともにＯＳに通知される。又、これらのステータスレジスタコピー及び制御レジスタコピーは、Ｉ／Ｏデバイス５０が接続される下流側ポート２２に関連付けられて通知される。
また、仮想バス情報１６１は、後述するマネージメント装置３００によって作成される。
【００３５】
ルーティング情報１６２は、Ｉ／Ｏバスシステム１においてデータ転送を行なうための情報であり、ＣＰＵ３０（ＯＳ）がアクセスしたいＩ／Ｏデバイス５０にパケットが到達するようにルーティングするための情報である。例えば、宛先に対して、宛先情報と送信先ポート番号とを関連付ける。
ルーティング情報１６２は、宛先となるポート毎に作成され、スイッチ１０，２０における、仮想化領域ＶＡ内の各ポートの箇所に登録される。図１に示す例においては、ポートＢ１及びポートＢ２に対して、それぞれルーティング情報１６２が備えられる。
【００３６】
例えば、ポートＡ１において、ポートＡ２又はポートＡ３にアクセスするパケットは、ポートＢ２宛てにするという情報と、ポートＢ２宛てにパケットを送信するにはポートＢ１に送信するという情報が必要になる。ルーティング情報１６２は、このような仮想化領域ＶＡ内にパケットを転送させるための情報として機能する。仮想化領域ＶＡ内の各ポートに対してルーティング情報１６２を用意することにより、上述した仮想バスツリーを構築することができる。つまり、ルーティング情報１６２は、仮想化領域ＶＡ内でのパケットの転送を実現するために用いられる。
【００３７】
具体的には、仮想化領域ＶＡ内のスイッチ１０，２０の各ポート１２，２１に、仮想化された領域内でしか通用しないＩＤを一意に設定し（図１に示す例ではＢ１，Ｂ２）、Ｉ／Ｏデバイス５０にアクセスするには、このＩＤのポートにパケットを渡すという情報をルーティング情報１６２として登録する。
また、途中経路となる仮想化領域ＶＡにあるスイッチには、このＩＤにパケットを到達させるには自スイッチ内のどのポートにパケットを送信すればよいかという情報をルーティング情報１６２として登録する。
【００３８】
PCIeでは、ＩＤによるルーティングとアドレスによるルーティングが可動である。この仕様に従って、ＩＤによるルーティングが行なえるよう設定を行なう。
図３は実施形態の一例としての情報処理装置５００におけるルーティング情報１６２の構成例を示す図である。この図３に示す例においては、自分宛ＩＤに対して、自分宛てアドレス範囲，変更する宛先情報（ＩＤとアドレス）及び送信先ポート番号が関連付けられている。又、配下宛てＩＤ範囲に対して、配下宛てアドレス範囲，変更する宛先情報（ＩＤとアドレス）及び送信ポート番号が関連付けられている。
【００３９】
ここで、変更する宛先情報とは、データ（パケット）の宛先を示す情報であり、パケットのヘッダに付するアドレスとして用いられる。送信先ポート番号とは、パケットを送出する先のポートを示し、変更する宛先情報がアドレスとして付加されたパケットが、この送信先ポート番号で表されるポートに送信される。なお、送信先ポート番号としては、パケットを送出する先のポートを一意に特定できればよく、番号以外の情報を用いてもよい。
【００４０】
なお、ポートＡ２又はポートＡ３宛てのパケットかどうかの判断方法は、PCIeの仕様で決まっている。又、PCIeの仕様では、パケットのタイプに応じて、ＩＤとアドレスとのどちらで判断するかが決まっている。また、自分宛てアドレス範囲はPCIeの仕様で判定する機能が別にある場合は省略してもよい。
また、この図３に示すルーティング情報１６２はテーブル状に構成されているが（ルーティングテーブル）、これに限定されるものではなく、テーブル以外の構成であってもよい。
【００４１】
図４はＩ／Ｏバスシステム１の構成例を示す図、図５は図４に示すＩ／Ｏバスシステム１の仮想イメージバス１ｖを例示する図である。なお、図４及び図５中においては、ＣＰＵ３０やボード１００，２００等の一部の図示を省略している。
図４に示すＩ／Ｏバスシステム１においては、スイッチ１０が２つの下流側ポート１２−１，１２−２を備える。以下、下流側ポート１２−１を一意に表す識別情報（ＩＤ）をＢ１、下流側ポート１２−２のＩＤをＢ３とする。なお、このスイッチ１０をスイッチ＃０と表す場合がある。
【００４２】
また、下流側ポート１２−１にはスイッチ２０−１の上流側ポート２１−１が接続されており、下流側ポート１２−２にはスイッチ２０−２の上流側ポート２１−２が接続されている。以下、上流側ポート２１−１のＩＤをＢ２、上流側ポート２１−２のＩＤをＢ４とする。
スイッチ２０−１は上流側ポート２１−１と下流側ポート２２−１とを備え、下流側ポート２２−１にＩ／Ｏデバイス５０−１のポート５１−１が接続されている。以下、下流側ポート２２−１のＩＤをＡ２、ポート５１−１のＩＤをＡ３とする。なお、このスイッチ２０−１をスイッチ＃１と表す場合がある。
【００４３】
スイッチ２０−２は上流側ポート２１−２と下流側ポート２２−２とを備え、下流側ポート２２−２にＩ／Ｏデバイス５０−２のポート５１−２が接続されている。以下、下流側ポート２２−２のＩＤをＡ４、ポート５１−２のＩＤをＡ５とする。なお、このスイッチ２０−２をスイッチ＃２と表す場合がある。
また、以下、スイッチ１０の下流側に配置されるスイッチを示す符号としては、複数のスイッチのうち１つを特定する必要があるときには符号２０−１，２０−２もしくは、＃１，＃２を用いるが、任意のスイッチを指すときには符号２０を用いる。
【００４４】
そして、この図４に示すＩ／Ｏバスシステム１においては、スイッチ１０の下流側ポート１２−１，１２−２、スイッチ２０−１の上流側ポート２１−１及びスイッチ２０−２の上流側ポート２１−２を含む範囲を仮想化領域ＶＡとしている。
このようなＩ／Ｏバスシステム１は、ＯＳからは、図５に示す仮想イメージバス１ｖとして認識される。すなわち、上流側ポート１１に下流側ポート２２−１，２２−２が接続されているように見える。そして、下流側ポート２２−１にＩ／Ｏデバイス５０−１のポート５１−１が接続され、下流側ポート２２−２にＩ／Ｏデバイス５０−２のポート５１−２が接続されている。
【００４５】
図４に示すようなＩ／Ｏバスシステム１においては、図６（ａ），（ｂ），（ｃ）に示すようなルーティング情報１６２が作成される。このルーティング情報１６２は、後述するマネージメント装置３００によって作成され、スイッチ１０，２０に通知され、各メモリ１６，２６に格納される。
図６（ａ），（ｂ），（ｃ）は、図４に示すＩ／Ｏバスシステム１についてのルーティング情報１６２を例示する図である。図６（ａ）はスイッチ＃０用のルーティング情報１６２を、図６（ｂ）はスイッチ＃１用のルーティング情報１６２を、又、図６（ｃ）はスイッチ＃２用のルーティング情報１６２を、それぞれ示す。
【００４６】
これらの図６（ａ），（ｂ），（ｃ）に示すように、仮想化領域ＶＡの境界を成すスイッチ＃０〜＃２のそれぞれにルーティング情報１６２が登録される。
なお、このルーティング情報１６２の作成方法については、図７を用いて後述する。
コントローラ１５は、スイッチ１０の機能を実現する制御装置である。このコントローラ１５は、例えば、上流側ポート１１や下流側ポート１２が受信したパケットを、その送信先に転送するための処理を行なう。
【００４７】
コントローラ１５，２７は、メモリ１６に格納されたルーティング情報１６２を参照して、転送するパケットのヘッダの書き換えを行ない、このパケットを宛先のポートに送信する。これらのコントローラ１５，２７は同様の手法でパケットの転送を行なう。以下、コントローラ１５を例に、その手法を説明する。
図７は実施形態の一例としての情報処理装置５００におけるパケットのヘッダ書き換え手法を説明するための図である。
【００４８】
スイッチ１０において、コントローラ１５は、図７に示すように、ポートＡ１において、受信したPCIeパケットをそのままデータとして使用して、このPCIeパケットに仮想化領域ＶＡを通過するためのヘッダを追加する。
例えば、図４に例示するＩ／Ｏバスシステム１において、ポートＡ１が受信したPCIeパケットの宛て先がポートＡ３である場合に、コントローラ１５は、その宛て先“Ａ３”に基づきルーティング情報１６２を参照し、変更する宛て先情報“Ｂ２”と、送信先ポート“Ｂ１”とを取得する。
【００４９】
コントローラ１５は、受信したPCIeパケットをデータ部として、このデータ部に、ＩＤ“Ｂ２”のポートを宛て先とする追加ヘッダを付加することでパケットの変換を行なう。これにより、受信したPCIeパケットは、変換後のパケットにおいてはデータ部として扱われる。コントローラ１５は変換後のパケットをＩＤが“Ｂ１”のポート１２−１に受け渡す。これにより、変換されたパケットは、ポート１２−１からポート２１−１に送信される。
【００５０】
スイッチ＃１においては、コントローラ２７が、受信したパケットから追加ヘッダを除去する逆変換を行なってPCIeパケットに戻し、このPCIeパケットを、最終送信先であるＩ／Ｏデバイス＃１のポートＡ３に送信する。なお、スイッチ＃１において、更に他のスイッチが当該スイッチ２０の下流側に接続されている場合には、コントローラ２７は、上述したコントローラ１５と同様に、メモリ２６のルーティング情報１６２を参照して、受信したパケットに追加ヘッダを付加することでパケット変換を行ない、宛て先に対応する送信先ポートに送信する。
【００５１】
また、スイッチ２０のコントローラ２７は、ＯＳの動作中においては、Ｉ／Ｏデバイス５０からのパケットを、仮想化領域ＶＡを通ってルートコンプレックス４０に届くように経路を指示する。
例えば、図４に示すＩ／Ｏバスシステム１において、Ｉ／Ｏデバイス＃１が図示しないメインメモリにアクセスする場合には、スイッチ＃１のコントローラ２７は、ポートＡ２において、図６（ｂ）に示すルーティング情報１６２を参照して、メモリアクセスパケットに追加ヘッダを付加することでルートコンプレックス４０宛てのパケットに変換する。
【００５２】
これにより、Ｉ／Ｏデバイス＃１からのメモリアクセスパケットは、変換後のパケットにおいてはデータ部として扱われる。スイッチ＃１のコントローラ２７は変換後のパケットをＩＤが“Ｂ２”のポート２１−１に受け渡す。これにより、変換されたパケットは、ポート２１−１からポート１２−１に送信される。
スイッチ＃０においては、コントローラ１５が、受信したパケットから追加ヘッダを除去する逆変換を行なってメモリアクセスパケットに戻し、このメモリパケットを、ルートコンプレックス４０に送信する。ルートコンプレックス４０からは、ＣＰＵ３０の動作に従ってメインメモリにアクセスされる。
【００５３】
このように、仮想化領域ＶＡの境界を成すスイッチ１０，２０のコントローラ１５，２７は、転送するパケットの送信先ポートＩＤの変換を行なうことで、ルートコンプレックス４０とＩ／Ｏデバイス５０との間で送受信されるパケットが仮想化領域ＶＡを通過して送達されるようにする。
また、コントローラ１５，２７は、本情報処理装置５００において新たにＩ／Ｏデバイス５０が追加もしくは取外された等、Ｉ／Ｏバスシステム１の構成変更が生じると、マネージメント装置３００から、この変更後の構成に合わせたルーティング情報１６２を取得する。コントローラ１５，２７は、メモリ１６，２６のルーティング情報１６２を取得したルーティング情報１６２で更新する。
【００５４】
コントローラ１５は、仮想バス情報１６１を、本情報処理装置５００の起動プロセス等においてＯＳに通知することで、Ｉ／Ｏバスシステム１を、仮想バス情報１６１が示すＩ／Ｏバスシステム１ｖとして認識させる。
また、コントローラ１５は、ＯＳの動作中においては、Ｉ／Ｏデバイス５０にアクセスするパケットを、仮想化領域ＶＡを通ってＩ／Ｏデバイス５０に届くように経路を指示す
る。
【００５５】
前述のように、仮想化領域ＶＡにある機器はＯＳから直接は見えないので、この仮想化領域ＶＡにおいては、機器のホットプラグ操作（活性挿抜）を行なってもＯＳに影響を与えることがない。
以下、ボード２００において、スロットにＩ／Ｏデバイス５０が接続されていない状態を“未インストール”といい、スロットにＩ／Ｏデバイス５０が接続されている状態を“インストール済”という。
【００５６】
仮想化領域ＶＡにおいてＩ／Ｏデバイス５０がホットリムーブされた場合には、マネージメント装置３００が、第２レジスタ１４において、当該Ｉ／Ｏデバイス５０に対応する制御レジスタコピーに“未インストール”を示す情報を記録する。すなわち、第２レジスタ１４は、Ｉ／Ｏデバイス５０が未搭載であることを示す未搭載情報を格納する。
コントローラ１５は、ＯＳから送信するパケットを受信すると、ポートＡ１において、そのパケットの宛て先を確認する。そして、宛て先のＩ／Ｏデバイス５０等が未インストールである場合、すなわち、Ｉ／Ｏデバイス５０が搭載されていないスロット等へのアクセスが行なわれた場合には、コントローラ１５は、第２レジスタ１４に格納された制御レジスタコピーを用いてＯＳに応答する。
【００５７】
スイッチ１０において、ポートＡ１の第１レジスタ１３及び第２レジスタ１４には、仮想イメージバス１ｖの下流側ポートの設定レジスタ群を全部又は一部のコピーを持つ。最低限、スロットのステータスレジスタ２４と制御レジスタ２５とのコピーが格納される。なお、用意するレジスタ群は、実装依存で多くも少なくもすることができる。
なお、第２レジスタ１４の容量が少ない場合は、コントローラ１５は、Ｉ／Ｏデバイス５０のインストール情報（例えば、未インストール／インストール済）等の、ＯＳがパニックを起こさない必要最低限の情報だけをＯＳに返すようにしてもよい。一般に、未インストールの時にアクセスしたい制御レジスタは、Ｉ／Ｏデバイス５０の電源操作とインストール情報程度であるので、コントローラ１５は、他のレジスタ空間へのアクセスが行われた場合にはPCIe仕様で規定されている存在しない空間へのアクセス応答として返信する。これにより、ＯＳパニックが生じることはない。
【００５８】
また、Ｉ／Ｏデバイス５０の電源がオンになった後は、ＯＳからＩ／Ｏデバイス５０への要求は、Ｉ／Ｏデバイス５０に直接読み書きする動作になる。
一方、Ｉ／Ｏデバイス５０から送信され、ポートＢ１に到達したパケットは、コントローラ１５により元々のPCIeのパケットに戻され、その後、ポートＡ１に送信されて、最終目的地であるルートコンプレックス４０に到達する。
【００５９】
なお、仮想イメージバス１ｖを認識するのは、スイッチ１０のポートＡ１だけであり、例えば、下流側のスイッチ２０のポートＡ２は自分の上流側ポートとしてポートＡ１を認識するにとどまる。これは、ピアトゥピア（Peer-To-Peer）パケットは、上流側ポートで処理を行なう場合に、基本的に下流側ポートからは上流側ポート行きのパケットしか存在しないからである。
【００６０】
マネージメント装置３００は、図示しないプロセッサを備え、本情報処理装置５００におけるＩ／Ｏバスシステム１を管理するための各種制御を行なう。
例えば、スイッチ２０のポートにおいて、Ｉ／Ｏデバイス５０が取り外されたり、又、新たにＩ／Ｏデバイス５０が接続されると、当該ボード２００上のホットプラグコントローラ６０からマネージメント装置３００に対して通知が行なわれる。すなわち、マネージメント装置３００は、ホットプラグコントローラ６０を介して、スイッチ２０のポート（スロット）におけるＩ／Ｏデバイス５０の接続や取り外しを認識する。
【００６１】
マネージメント装置３００は、このようなＩ／Ｏデバイス５０の構成変更を認識すると、各スイッチ１０，２０に対して通知を行なう。
また、マネージメント装置（仮想バス情報作成部）３００は、仮想バス情報１６１を作成する。マネージメント装置３００は、例えば、本情報処理装置５００の電源投入後の起動プロセスにおいて、当該マネージメント装置３００の図示しないメモリ等からＩ／Ｏバスシステム１の構成情報（ツリー構造）や仮想化領域ＶＡを示す情報を取得する。
【００６２】
Ｉ／Ｏバスシステム１の構成や仮想化領域ＶＡは、予め、マネージメント装置３００に登録しておくことが望ましい。ただし、ユーザがキーボードやマウス等の図示しない入力装置を介して、これらのＩ／Ｏバスシステム１の構成や仮想化領域ＶＡを入力してもよい。入力されたこれらの情報は、図示しないメモリに格納される。
マネージメント装置３００は、取得したＩ／Ｏバスシステム１の構成から、ユーザ等によって予め登録された仮想化領域ＶＡを除去し、残されたＩ／Ｏバスシステム１を仮想的に直結することで仮想イメージバス１ｖを作成する。マネージメント装置３００は、この仮想イメージバス１ｖをＯＳが認識できる情報で表すことで仮想バス情報１６１を作成する。
【００６３】
マネージメント装置３００は、作成した仮想バス情報１６１をスイッチ１０に通知し、そのメモリ１６に格納させる。
また、マネージメント装置（ルーティング情報作成部）３００は、ルーティング情報１６２を作成する。マネージメント装置３００は、Ｉ／Ｏバスシステム１のツリー構造を末端に位置する各Ｉ／Ｏデバイス５０から、それぞれ上流のルートコンプレックス４０まで順に遡ることにより、経路を記憶する。すなわち、経路上に存在する全てのポートの位置及び順序を記憶する。
【００６４】
そして、マネージメント装置３００は、その経路上の各ポートについて、その１つ下流側に位置するポートを送信先ポートとするとともに、更に、その送信先ポートの１つ下流側に位置するポートを変更する宛先情報として、ルーティング情報１６２に登録する。
図８は実施形態の一例としての情報処理装置５００におけるルーティング情報１６２の作成方法を説明するフローチャート（ステップＳ０１〜Ｓ０７）である。
【００６５】
ステップＳ０１において、マネージメント装置３００は、仮想化領域ＶＡを含めた、Ｉ／Ｏバスシステム１の全てのツリー構造を把握する。
ステップＳ０２においては、マネージメント装置３００は、仮想化領域ＶＡ内の全ポートに対して付番を行なう。すなわち、仮想化領域ＶＡ内の全ポート（１〜ｎ）に対して、重複しないように、仮想化領域ＶＡ内でツリーの一番上にいる（上流側の）ポートから順に番号を振る。
【００６６】
例えば、図４に例示したＩ／Ｏバスシステム１において、符号Ａ１，Ｂ１，Ｂ３，Ｂ２，Ｂ４，Ａ２，Ａ４，Ａ３，Ａ５で示されている各ポートに識別番号（１〜ｎ：ｎ＝９）を設定する。以下、便宜上、各ポートの符号Ａ１，Ｂ１，Ｂ３，Ｂ２，Ｂ４，Ａ２，Ａ４，Ａ３，Ａ５を識別番号として用いる。
ステップＳ０３において、マネージメント装置３００は、Ｉ／Ｏバスシステム１上の全てのＩ／Ｏデバイス５０（１〜ｍ）に対して、経路の探索を開始する。ただし、ｍはＩ／Ｏデバイス５０の識別番号であり、図４に示す例ではｍ＝２である。
【００６７】
すなわち、ステップＳ０４において、マネージメント装置３００は、上位ポートに対して、Ｉ／Ｏデバイス（ｍ）に行く経路として下位ポートの番号を記憶し、ステップＳ０５において、仮想化領域ＶＡ内でツリーの一番上にいるポートに到達するまで、同様の処理を繰り返し行なう。
そして、ステップＳ０６において、ツリーの一番上に接続するポートにＩ／Ｏデバイス５０（ｍ）に行く経路として、仮想化領域ＶＡ内でツリーの一番上にいるポートを記憶する。
【００６８】
図４に示す例において、Ｉ／Ｏデバイス＃１を選択する例を示す。Ｉ／Ｏデバイス＃１の上位ポートとしては、スイッチ＃１のポートＡ２に行く必要があることがわかる。また、このポートＡ２に行くには、その上位（上流側）のポートＢ２に行く必要がある。更に、ポートＢ２に行くには、その上位のポートＢ１に行く必要があり、ポートＢ１に行くにはポートＡ１に行く必要がある。マネージメント装置３００は、このように判明した経路を図示しないメモリ等に記憶しておく。
【００６９】
ステップＳ０７において、マネージメント装置３００は、各ポート毎に記憶した経路情報を、ルーティング情報１６２として、各スイッチの各ポートに対応するメモリ１６，２６に書き込む。
すなわち、ステップＳ０３〜Ｓ０６における経路探索に基づき、ポートＢ２に対して、ポートＡ２とポートＡ３宛てのパケットはポートＡ２に送信するというルーティング情報１６２を作成し、スイッチ＃１のメモリ２６に格納する。同様に、ポートＢ１に対して、ポートＢ２とポートＡ２とポートＡ３宛てのパケットはポートＢ２に送信するというルーティング情報１６２を作成し、スイッチ＃０のメモリ１６に格納する。
【００７０】
また、ポートＡ１は、Ｉ／Ｏバスシステム１において、仮想化領域ＶＡに接続する最上位のポートであるので、このポートＡ１にもルーティング情報１６２が格納される。すなわち、ポートＡ２とポートＡ３宛てのパケットは、仮想化領域ＶＡ上の宛て先がポートＢ２であり、ポートＢ１宛に送信することを示すルーティング情報１６２が作成され、スイッチ＃０のメモリ１６に格納される。
【００７１】
また、マネージメント装置３００は、本情報処理装置５００の動作中にＩ／Ｏバスシステム１の構成変更があった場合に、ルーティング情報１６２の再設定を行なう。
ルーティング情報１６２の再設定は、Ｉ／Ｏバスシステム１の物理的なツリー構成が変更になった場合に実施される。例えば、図４に示す例において、Ｉ／Ｏデバイス＃２を取り外して、別のＩ／Ｏデバイス５０を同じ場所に取り付ける場合が該当する。
【００７２】
物理的なツリー構造が変更になる場合は、変更になった箇所に対して図８のフローチャートに示した処理を実施し、今までのルーティング情報１６２に新たに作成したルーティング情報１６２を追加する方法でルーティング情報１６２を更新する。例えば、図１に示す物理的なＩ／Ｏバスシステム１のツリー構成に対して、図２０に示すようにスイッチ＃２を追加することによりツリー構成を変更する場合を考える。図１に示す構成から図２０に示す構成に変更した場合に、ＯＳから見えるＩ／Ｏデバイス５０の位置は同じであるが、ルーティング情報１６２には、新たにスイッチ＃２のポートＢ３，Ｂ４の情報が追加されることになる。
【００７３】
マネージメント装置３００は、この変更したルーティング情報１６２を各スイッチ１０，２０に通知する。
また、マネージメント装置３００は、Ｉ／Ｏデバイス５０の構成等に変更が生じた場合に、スイッチ＃０の第２レジスタ１４の更新を行なう。例えば、Ｉ／Ｏデバイス５０がホットリムーブされた場合に、当該Ｉ／Ｏデバイス５０について、第２レジスタ１４の制御レジスタコピーに“未インストール”を示す情報を記録する。
【００７４】
また、マネージメント装置３００は、ボード２００の電源制御を行なう。例えば、マネージメント装置３００は、ボード２００の電源制御回路７０に対してボードの電源制御指示を送信する。電源制御回路７０は、この電源制御指示に従ってボード２００の電源のオン／オフを行なう。
ここで、図９及び図１０を参照しながら、実施形態の一例としての情報処理装置５００におけるＩ／Ｏデバイス５０の交換時の処理を説明する。図９はＩ／Ｏバスシステム１における情報の流れを示す図、図１０はその仮想イメージバス１ｖを示す図である。
【００７５】
本情報処理装置５００を通電した状態でＩ／Ｏデバイス５０を交換する場合には、先ず、ルートコンプレックス４０からスイッチ＃１の下流側ポートＡ２の制御レジスタ２５に、活性抜挿（Hot add/remove）するための情報（電源制御指示）が書き込まれる（図９の矢印Ｐ１参照）。この動作中に、コントローラ１５がポートＡ１を通過するパケットを監視して、追加もしくは削除するＩ／Ｏデバイス５０の情報を第１レジスタ１３及び第２レジスタ１４に保持する（図９の矢印Ｐ２参照）。
【００７６】
ホットプラグコントローラ６０が、制御レジスタ２５の値に基づき、Ｉ／Ｏデバイス５０の電源をオフする（図９の矢印Ｐ３参照）。又、ホットプラグコントローラ６０は、Ｉ／Ｏデバイス５０の電源がオフされたこと、すなわち、Ｉ／Ｏデバイス５０が取り除かれたことをマネージメント装置３００に通知する（図９の矢印Ｐ４参照）。
Ｉ／Ｏデバイス５０がスイッチ＃１から取り除かれると、マネージメント装置３００からＩ／Ｏデバイス５０が取り除かれたことを示す情報をスイッチ＃０の第１格納部１４に設定することにより（図９の矢印Ｐ５参照）、コントローラ１５に通知する。
【００７７】
また、スイッチ＃１にＩ／Ｏデバイス５０が取り付けられる際には、スイッチ＃１のステータスレジスタ２４が更新され（図９の矢印Ｐ６参照）、Ｉ／Ｏデバイス５０が搭載されたことが、スイッチ＃０のコントローラ１５に通知される（図９の矢印Ｐ７参照）。スイッチ＃０においては、第１レジスタ１３のステータスレジスタコピー１３１が更新される（図９の矢印Ｐ８参照）。
【００７８】
そして、ＯＳから新たに搭載されたＩ／Ｏデバイス５０に対して電源投入指示（電源制御指示）が送信され、スイッチ＃１の制御レジスタ２５に書き込まれる（図９の矢印Ｐ９参照）。これにより、ホットプラグコントローラ６０経由でスロットの電源がオンされ、ＯＳがＩ／Ｏデバイス５０を初期化した後、Ｉ／Ｏデバイス５０が使用可能となる。
上述の如く構成された実施形態の一例としての情報処理装置５００におけるＩ／Ｏバスシステム１の管理手法の概要を、図１１に示すＩ／Ｏバスシステムの構成例を参照しながら、図１２に示すフローチャート（ステップＳ１１〜Ｓ２０）に従って説明する。
【００７９】
なお、図１１に示すＩ／Ｏバスシステム１は、ＣＰＵ３０，ルートコンプレックス４０，スイッチ１０，２０−１〜２０−３及びホットプラグコントローラ６０を備える。
ルートコンプレックス４０に接続されたスイッチ１０（スイッチ＃０）には、上流側ポートＡ１及び下流側ポートＢ１，Ｂ６，Ｂ７が備えられている。下流側ポートＢ１にはスイッチ２０−１（スイッチ＃１）の上流側ポートＢ２が、又、下流側ポートＢ６にはスイッチ２０−２（スイッチ＃３）の上流側ポートＢ８が、それぞれ接続されている。
【００８０】
スイッチ２０−１には、下流側ポートＢ３〜Ｂ５が備えられており、ポートＢ３にはＩ／Ｏデバイス５０−１（Ｉ／Ｏデバイス＃０）が、ポートＢ４にはＩ／Ｏデバイス５０−２（Ｉ／Ｏデバイス＃１）が、又、ポートＢ５にはＩ／Ｏデバイス５０−３（Ｉ／Ｏデバイス＃２）が、それぞれ接続されている。
スイッチ２０−２には、下流側ポートＢ９〜Ｂ１１が備えられており、ポートＢ９にはスイッチ２０−３（スイッチ＃２）の上流側ポートＢ１２が接続されている。又、ポートＢ１０にはＩ／Ｏデバイス５０−７（Ｉ／Ｏデバイス＃６）が、又、ポートＢ１１にはＩ／Ｏデバイス５０−８（Ｉ／Ｏデバイス＃７）が、それぞれ接続されている。
【００８１】
スイッチ２０−３には、下流側ポートＢ１３〜Ｂ１５が備えられており、ポートＢ１３にはＩ／Ｏデバイス５０−４（Ｉ／Ｏデバイス＃３）が、ポートＢ１４にはＩ／Ｏデバイス５０−５（Ｉ／Ｏデバイス＃４）が、又、ポートＢ１５にはＩ／Ｏデバイス５０−６（Ｉ／Ｏデバイス＃５）が、それぞれ接続されている。
なお、これらのスイッチ１０，２０−１，２０−２，２０−３はそれぞれ別のボードに備えられているものとする。
【００８２】
また、このＩ／Ｏバスシステム１においては、スイッチ＃０のポートＢ１，Ｂ６，Ｂ７，スイッチ＃１のポートＢ２，スイッチ＃３のポートＢ８，Ｂ９及びスイッチ＃２のポートＢ１２が仮想化領域ＶＡに含まれるものとする。
この図１１に示すＩ／Ｏバスシステム１においては、先ず、ステップＳ１１において、仮想化領域ＶＡを設定する。すなわち、ステップＳ１２において、ＯＳが認識する構成を決定する。具体的には、マネージメント装置３００が、Ｉ／Ｏバスシステム１から仮想化領域ＶＡを除外した仮想イメージバス１ｖを決定する。又、マネージメント装置３００は、この仮想イメージバス１ｖに対応する仮想バス情報１６１を作成する。
【００８３】
ステップＳ１３において、マネージメント装置３００は、作成した仮想バス情報１６１をスイッチ＃０のメモリ１６に格納する。これにより、Ｉ／Ｏデバイス５０にアクセスするために通過する経路をスイッチ＃０に登録して仮想化する。
図１１に示す例において、ルートコンプレックス４０から、例えばＩ／Ｏデバイス５０−１にアクセスする経路として、ポートＡ１，Ｂ１，Ｂ２，Ｂ３，Ａ２がこの順で登録される。又、例えば、Ｉ／Ｏデバイス５０−６にアクセスする経路として、ポートＡ１，Ｂ６，Ｂ８，Ｂ９，Ｂ１２，Ｂ１５，Ａ７が、この順で登録される。
【００８４】
次に、ステップＳ１４において、マネージメント装置３００は、ＯＳに認識させない経路、すなわち仮想化領域ＶＡにおいてパケットを送信するためのルーティング情報１６２を各スイッチ１０，２０に登録する。
例えば、図１１に示す例において、ポートＢ１２に対して、ポートＡ５とポートＢ１３宛てのパケットはポートＢ１３に送信するというルーティング情報１６２を作成し、スイッチ＃２の図示しないメモリに格納する。同様に、ポートＢ９に対して、ポートＢ１２とポートＢ１３とポートＡ５宛てのパケットはポートＢ１２に送信するというルーティング情報１６２を作成し、スイッチ＃３の図示しないメモリに格納する。
【００８５】
ＯＳは、通知された仮想バス情報１６１により、スイッチ＃０の直下にＩ／Ｏデバイス５０が存在するバスツリー構成の仮想イメージバス１ｖとしてＩ／Ｏバスシステム１を認識する（ステップＳ１５）。
以上の処理により、本情報処理装置５００においては、Ｉ／Ｏバスシステム１の仮想化処理が完了する。その後、運用フェーズに移行する。
【００８６】
ステップＳ１６の運用フェーズにおいては、ＯＳがスイッチ＃０の配下に存在していると認識しているＩ／Ｏデバイス５０にアクセスした場合に、各スイッチ１０，２０は、ルーティング情報１６２を参照してパケットの宛て先を仮想化領域ＶＡを通って届くように経路を指示して転送する（ステップＳ１７）。
また、各スイッチ１０，２０が、Ｉ／Ｏデバイス５０からのアクセスについては、パケットを、ルートコンプレックス４０へ到達させる経路を指示して転送する（ステップＳ１８）。追加／交換したいＩ／Ｏデバイス５０が存在する場合には、ホットプラグを実施する（ステップＳ１９）。
【００８７】
スイッチ１０，２０は、ＯＳがスイッチ＃０の配下に存在していると認識しているＩ／Ｏデバイス５０のレジスタ情報の少なくとも一部を有し、ホットプラグ等でＩ／Ｏデバイス５０が存在しない場合には、このＩ／Ｏデバイス５０に代わって応答する（ステップＳ２０）。
図１３は実施形態の一例としての情報処理装置５００における装置起動時の処理を示すシーケンス図である。なお、この図１３に示す例においては、Ｉ／Ｏデバイス５０はその位置にPCIeスロットが備えられており、このスロットにPCIeカードを挿入して用いる形態であるものとする。
【００８８】
ＯＳ，ルートコンプレックス４０，各スイッチ１０，２０及びＩ／Ｏデバイス５０は、マネージメント装置３００の制御に従ってそれぞれ処理を行なう。
すなわち、本情報処理装置５００に電源投入がされると、マネージメント装置３００が装置構成を決め、仮想バス情報１６１の作成を行なう。その後、マネージメント装置３００は、常時電源オンの電源制御指示を各ボード１００，２００の電源制御回路７０に行ないルートコンプレックス４０に電源投入が行なわれる（矢印Ｐ０１参照）。又、これに伴い、スイッチ１０，２０及びＩ／Ｏデバイス５０にも電源投入が行なわれ、ルートコンプレックス４０，各スイッチ１０，２０及びＩ／Ｏデバイス５０が常時電源投入状態となる。
【００８９】
また、マネージメント装置３００は、ルーティング情報１６２の作成・設定を行ない、作成したルーティング情報１６２を各スイッチ１０，２０に送信して（矢印Ｐ０２参照）、各スイッチ１０，２０のメモリ１６，２６に設定する。
その後、マネージメント装置３００は、Ｉ／Ｏデバイス５０が接続されている各ポートのレジスタ情報をスイッチ１０の第１レジスタ１３，第２レジスタ１４にコピーさせる（矢印Ｐ０３参照）。すなわち、各Ｉ／Ｏデバイス５０に対して、ステータスレジスタ２４及び制御レジスタ２５のコピーをスイッチ１０に送信させる。
【００９０】
そして、マネージメント装置３００は、ＣＰＵ３０にＯＳを起動させる（矢印Ｐ０４参照）。
次に、実施形態の一例としての情報処理装置５００の通電状態（活性状態）におけるＩ／Ｏデバイス５０の取り外し時の処理を、図１１を参照しながら、図１４に示すフローチャート（ステップＳ２１〜Ｓ２９）に従って説明する。
【００９１】
情報処理装置５００の通電状態において、例えば、図１１に示すＩ／Ｏデバイス５０−１の取り外しを行なう場合には、ステップＳ２１において、Ｉ／Ｏデバイス５０−１の電源をオフにする。すなわち、ＯＳから電源オフの対象のＩ／Ｏデバイス５０−１が指示され（ステップＳ２２）、当該Ｉ／Ｏデバイス５０−１が接続されているスイッチ２０−１のポートＢ３のスロットの電源オフを指示するパケットが発行される（ステップＳ２３）。なお、例えば、図１に示す構成において、Ｉ／Ｏデバイス５０−１の電源制御レジスタは、このＩ／Ｏデバイス５０が接続されたスイッチ＃１のポート２２にある。
【００９２】
電源オフを指示するパケットは、スイッチ＃０のポートＡ１において、コントローラ１５がルーティング情報１６２を参照して、仮想化領域ＶＡ内を通過するパケットに変換する。
仮想イメージバス１ｖの管理元であるスイッチ＃０のコントローラ１５が、パケットのライトデータを第２レジスタ１４の制御レジスタコピーに複写する（ステップＳ２４）。なお、コピーの格納先は、パケットの送信先のＩ／Ｏデバイス５０−１が接続されているポートＢ３の制御レジスタ２５に関する制御レジスタコピー１４１である。ここでコピーした情報は、後述の如く、スイッチ＃０とＩ／Ｏデバイス５０−１が接続されたスイッチ＃１との間の仮想化領域ＶＡにある中間デバイスの電源がオフの間にＯＳがポーリング等でスロットにアクセスした際に返す応答データとして使用される。
【００９３】
仮想化領域ＶＡを通過して、目的のＩ／Ｏデバイス５０−１に電源オフを指示するパケットが到着する。すなわち、当該Ｉ／Ｏデバイス５０−１が接続されているポートＢ３に電源オフを指示するパケットが到着し、その制御レジスタ２５に書き込まれる。制御レジスタ２５に電源オフの指示が書き込まれると、ホットプラグコントローラ６０経由で、スロット（Ｉ／Ｏデバイス５０−１）の電源がオフされる（ステップＳ２５）。
【００９４】
その後、ステップＳ２６において、Ｉ／Ｏデバイス５０−１が取り除かれる。すなわち、オペレータ等によりＩ／Ｏデバイス５０−１がスロットから取り外される（ステップＳ２７）。当該スイッチ＃１から、仮想バスツリー１ｖの管理元であるスイッチ＃０のコントローラ１５に対して、Ｉ／Ｏデバイス５０−１が取り除かれたことが通知される（ステップＳ２８）。
【００９５】
例えば、スイッチ＃１のポートＢ３のスロットの電源がオフされると、そのステータスレジスタ２４の電源状況がオンからオフに変更される。マネージメント装置３００は、スイッチ＃０の第２レジスタ１４において、ポートＢ３に対応する制御レジスタコピー１４１に未インストールとして記録する。
なお、ここで、スイッチ＃１のポートＢ３のスロットの電源がオフされると、スイッチ＃１から新たな独自パケットを発行することで、スイッチ＃０に対して通知を行ない、その第２レジスタ１４の制御レジスタコピー１４１に未インストールとして記録させてもよい。この独自パケットは、例えば、ステータスレジスタ２４の値が変化すると発行され、パケットはレジスタ値のライト命令として構成される。
【００９６】
取り除かれたＩ／Ｏデバイス５０−１へのアクセスは、スイッチ＃０において、コントローラ１５が、第２レジスタ１４に格納した制御レジスタコピー１４１等を用いて応答する（ステップＳ２９）。
これにより、ＯＳ等において、Ｉ／Ｏデバイス５０−１がホットリムーブされたことによるパニックが生じることがない。
【００９７】
次に、実施形態の一例としての情報処理装置５００の通電状態（活性状態）における中間デバイスの取り外し時の処理を、図１５に示すフローチャート（ステップＳ３１〜Ｓ３８）に従って説明する。
ここで、中間デバイスとは、図１１におけるスイッチ＃３のように、Ｉ／Ｏバスシステム１において、末端のＩ／Ｏデバイス５０が接続されるスイッチ２０とルートコンプレックス４０との間に位置するデバイスであって、仮想化領域ＶＡ内に位置するものである。
【００９８】
中間デバイスは、仮想化領域ＶＡ内にあるのでＯＳから直接認識されることがなく、ホットスワップを行なうことができる。
情報処理装置５００の通電状態において、例えば、スイッチ＃３を取り外す場合には、ステップＳ３１において、Ｉ／Ｏデバイス５０−７，５０−８の電源をオフにする。すなわち、取り除く対象の中間デバイスであるスイッチ＃３の配下（下流）にある全てのＩ／Ｏデバイス５０−７，５０−８の電源をオフにする（ステップＳ３２）。
【００９９】
次に、ステップＳ３３において、取り除く対象の中間デバイス（スイッチ＃３）の電源をオフにする。具体的には、マネージメント装置３００から電源制御回路７０に対して、当該スイッチ＃３が搭載されているボード２００の電源オフの指示が行なわれ（ステップＳ３４）。これにより、スイッチ＃３の電源がオフにされる。
なお、例えば、図１１に示す例において、スイッチ＃０がＯＳに対して仮想イメージバス１ｖを認識させ、又、このスイッチ＃０が、スイッチ＃３及びＩ／Ｏデバイス＃６，＃７に代わってＯＳへの応答を行なう。これにより、中間デバイスであるスイッチ＃３とこのスイッチ＃３に接続されているＩ／Ｏデバイス＃６，＃７は、物理的に存在しなくなっても影響はなく、ＯＳパニックも生じることはない。
【０１００】
マネージメント装置３００は、ボード２００の電源がオフになった後に、スイッチ＃０のポートＡ１のステータスレジスタコピーの値を、“スロットにカードが存在しない”旨を表す値に変更する。これにより、例えば、ボード２００の電源がオフの状態でスロットの電源をオンにする誤作動の発生を防止することができる。
ステップＳ３５において、中間デバイス（スイッチ＃３）を取り除く。すなわち、電源オフにしたデバイス（スイッチ＃３，Ｉ／Ｏデバイス＃６，＃７）を全て取り除かれると（ステップＳ３６）、マネージメント装置３００は、Ｉ／Ｏデバイス＃６，＃７が取り除かれたことを、スイッチ＃０のコントローラ１５に通知する（ステップＳ３７）。以下、スイッチ＃０は、仮想イメージバス１ｖ上でオフなデバイス、すなわち、存在しないことになっているデバイス宛のパケットに対して、第２レジスタ１４に格納した制御レジスタコピー１４１等を用いて応答を行なう（ステップＳ３８）。
【０１０１】
これにより、ＯＳ等において、中間デバイスがホットリムーブされたことによるパニックが生じることがない。
次に、実施形態の一例としての情報処理装置５００の通電状態（活性状態）におけるＩ／Ｏデバイス５０の追加時の処理を、図１６に示すフローチャート（ステップＳ４１〜Ｓ５０）に従って説明する。以下、図１に示すＩ／Ｏバスシステム１において、スイッチ＃１にＩ／Ｏデバイス５０を追加する例について示す。
【０１０２】
ステップＳ４１において、Ｉ／Ｏデバイス５０がスイッチ＃１のスロットに取り付けられる。すなわち、オペレータ等が、PCIeカード等のＩ／Ｏデバイス５０をスイッチ＃１のスロットに取り付けると（ステップＳ４２）、マネージメント装置３００等を介して、Ｉ／Ｏデバイス５０が搭載されたことがスイッチ＃０に通知される（ステップＳ４３）。スイッチ＃０においては、搭載されたＩ／Ｏデバイス５０へのアクセスがコントローラ１５により許可される（ステップＳ４４）。
【０１０３】
次に、ステップＳ４５において、Ｉ／Ｏデバイス５０の電源がオンされる。すなわち、ＯＳから電源をオンしたいＩ／Ｏデバイス５０、すなわち、新たに搭載されたＩ／Ｏデバイス５０が指示され（ステップＳ４６）、この指示されたＩ／Ｏデバイス５０に対して、ＯＳが電源オンを指示するパケットが発行される（ステップＳ４７）。
スイッチ＃０のポートＡ１において、コントローラ１５は、ルーティング情報１６２を参照して、仮想イメージバス１ｖ上の宛て先を仮想アドレスに変換することで、仮想化領域ＶＡ内を電源投入指示パケットが送信される。
【０１０４】
また、スイッチ１０のポートＡ１において、パケットのライトデータを第２レジスタ（第５格納部）１４の制御レジスタコピーに格納（複写）する（ステップＳ４８）。このパケットのライトデータの格納先は、スイッチ＃１のポートＡ２に対応する第２レジスタ１４である。すなわち、第２レジスタ１４には、ＣＰＵ３０（ＯＳ）からＩ／Ｏデバイス５０に対する指示情報が格納される。
【０１０５】
電源投入指示パケットは、仮想化領域ＶＡを通過して、スイッチ＃１のポートＡ２に到達する。この電源投入指示を示す情報が、スイッチ＃１の制御レジスタ２５に書き込まれる。制御レジスタ２５に電源投入指示が書き込まれると、ホットプラグコントローラ６０経由でスロットに電源投入が行なわれる（ステップＳ４９）。
スイッチ＃１のポートＡ２のステータスレジスタ２４において、スロットの電源状況がオフからオンに更新される。これにより、マネージメント装置３００が、スイッチ＃０の第２レジスタ１４の制御レジスタコピーに“インストール済み”を示す情報を記録する。
【０１０６】
なお、ここで、スイッチ＃１のポートＡ２のスロットの電源がオンされると、スイッチ＃１から新たな独自パケットを発行することで、スイッチ＃０に対して通知を行ない、その第２レジスタ１４の制御レジスタコピー１４１にインストール済みとして記録させてもよい。この独自パケットは、例えば、ステータスレジスタ２４の値が変化すると発行され、パケットはレジスタ値のライト命令として構成される。
【０１０７】
ＯＳが新たに追加されたＩ／Ｏデバイス５０を初期化して、このＩ／Ｏデバイス５０の使用が開始される（ステップＳ５０）。
次に、実施形態の一例としての情報処理装置５００の通電状態（活性状態）における中間デバイスの追加時の処理を、図１７に示すフローチャート（ステップＳ５１〜Ｓ５９）に従って説明する。例えば、図１１に示すＩ／Ｏバスシステム１において、中間デバイスとしてスイッチ２０−２（スイッチ＃３）を取り付ける例について示す。
【０１０８】
ステップＳ５１において、中間デバイス（スイッチ＃３）を本情報処理装置のボード（例えば、ボードＢ）に搭載する。すなわち、オペレータ等が、中間デバイスをボードＢに取り付けると（ステップＳ５２）、マネージメント装置３００がこの中間デバイスが搭載されたボードＢの電源をオンにする（ステップＳ５３）。
ステップＳ５４において、Ｉ／Ｏデバイス５０（Ｉ／Ｏデバイス＃６、＃７）がスイッチ＃３のスロットに取り付けられる。すなわち、オペレータ等が、Ｉ／Ｏデバイス５０の搭載手順に従って、Ｉ／Ｏデバイス５０をスイッチ＃３のスロットに取り付けると（ステップＳ５５）、マネージメント装置３００等を介して、Ｉ／Ｏデバイス５０が搭載されたことがスイッチ＃０に通知される（ステップＳ５６）。スイッチ＃０においては、搭載されたＩ／Ｏデバイス５０へのアクセスがコントローラ１５により許可される（ステップＳ５７）。
【０１０９】
次に、ステップＳ５８において、Ｉ／Ｏデバイス５０の電源がオンされる。すなわち、図１６に示したステップＳ４６〜Ｓ５０と同様の処理が行なわれることで、ＯＳから電源をオンしたいＩ／Ｏデバイス５０、すなわち、新たに搭載されたＩ／Ｏデバイス５０が指示され、この指示されたＩ／Ｏデバイス５０が使用可能になる（ステップＳ５９）。
図１８は実施形態の一例としての情報処理装置５００におけるＩ／Ｏデバイス５０の交換時の処理を示すシーケンス図である。なお、この図１８に示す例においては、Ｉ／Ｏデバイス５０はその位置にPCIeスロットが備えられており、このスロットにPCIeカードを挿入して用いる形態であるものとする。
【０１１０】
マネージメント装置３００がホットプラグコントローラ６０を介して、交換対象のＩ／Ｏデバイス５０のスロットの電源をオフにし（矢印Ｐ１１参照）、又、スイッチ＃０において、パケットのライトデータを第２レジスタ１４の制御レジスタコピーに複写する。
対象のＩ／Ｏデバイス５０が取り外され（削除され）、スイッチ＃０の第２レジスタ１４の制御レジスタコピー１４１に未インストールを示す情報が記録される（矢印Ｐ１２参照）。
【０１１１】
その後、ＯＳから取り除かれたＩ／Ｏデバイス５０へアクセスが行なわれると、スイッチ＃０において、コントローラ１５が、第２レジスタ１４に格納した制御レジスタコピー１４１等を用いて応答する（矢印Ｐ１３，Ｐ１４参照）。
新たなＩ／Ｏデバイス５０がスロットに取り付けられると（追加）、このＩ／Ｏデバイス５０が搭載されたことがスイッチ＃０に通知される（矢印Ｐ１５参照）。スイッチ＃０においては、スイッチ＃０の第２レジスタ１４の制御レジスタコピーに“インストール済み”を示す情報が記録される。
【０１１２】
マネージメント装置３００がＩ／Ｏデバイス５０のスロットの電源をオンにし（矢印Ｐ１６参照）、又、スイッチ＃０のポートＡ１において、パケットのライトデータが第２レジスタ１４の制御レジスタコピーに格納（複写）される。
このように、実施形態の一例としての情報処理装置５００によれば、ルートコンプレックス４０に接続された上流側のスイッチ＃０において、仮想イメージバス１ｖをＯＳに認識させることで、仮想化領域ＶＡ内のデバイスをＯＳに認識させない。仮想化領域ＶＡ内の中間デバイスやＩ／Ｏデバイス５０の電源操作を、本情報処理装置５００の活性状態で行なうことができる。
【０１１３】
例えば、図１に示すＩ／Ｏバスシステム１において、スイッチ＃１を搭載したボードＢ及びスイッチ＃１の配下の全Ｉ／Ｏデバイス５０の電源をオフにすることで、ボードＡ側が動作中の状態で、ボードＢの交換を行なうことができる。これにより、故障時の保守性が向上する。
また、仮想化領域ＶＡ内のパケットの転送は、各スイッチ１０，２０において、ルーティング情報１６２を参照してパケットのヘッダの書き換えを行なうことで実現することができる。
【０１１４】
さらに、本情報処理装置５００の活性状態で、すなわち、ＣＰＵ３０やルートコンプレックス４０を備えたボードＡを動作中の状態で、中間デバイスやＩ／Ｏデバイス５０の追加や削除を行なうことができる。これにより、前もって予約する等の予定した装置構成ではない構成も、後から自由に構成することができる。
そして、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成及び各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
【０１１５】
例えば、上述した実施形態においては、Ｉ／Ｏバスシステム１がPCIeのプロトコルで接続される例を示しているが、これに限定されるものではない。例えば、Ｉ／Ｏバスシステム１の少なくとも一部をイーサネット（登録商標）等の他のプロトコルで接続してもよい。
図１９は実施形態の一例としての情報処理装置のＩ／Ｏバスシステム１の第１変形例を示す図である。
【０１１６】
この図１９に示すＩ／Ｏバスシステム１ａは、図１に示したＩ／Ｏバスシステム１のスイッチ＃０のポートＢ１とスイッチ＃１のポートＢ２との間を、PCIe以外のプロトコルで接続している。
この図１９に示すようなＩ／Ｏバスシステム１ａにおいても本手法を適用することができる。
【０１１７】
図２０は実施形態の一例としての情報処理装置のＩ／Ｏバスシステム１の第２変形例を示す図である。
この図２０に示すＩ／Ｏバスシステム１ｂは、図１に示したＩ／Ｏバスシステム１の仮想化領域ＶＡ内にスイッチ＃２を備えている。この図２０に示すようなＩ／Ｏバスシステム１ｂにおいても本手法を適用することができる。なお、この図２０に示すＩ／Ｏバスシステム１ｂの仮想イメージバス１ｖも、図１０に示したものと同様になる。
【０１１８】
また、仮想化領域ＶＡ内においては、スイッチを多段に備えてもよい。
図２１は実施形態の一例としての情報処理装置のＩ／Ｏバスシステム１の第３変形例を示す図であり、図２２は図２１に示すＩ／Ｏバスシステム１ｃの仮想イメージバス１ｖを示す図である。
図２１に例示するＩ／Ｏバスシステム１ｃは、仮想化領域ＶＡ内にスイッチ＃２，＃３，＃５，＃６を多段に備えている。このように多段接続されたスイッチ＃２，＃３，＃５，＃６を仮想化領域ＶＡとして設定することで、スイッチ＃０はＯＳに対して図２２に示すような仮想イメージバス１ｖを認識させる。
【０１１９】
さらに、仮想化領域ＶＡ内において、Ｉ／Ｏバスシステム１の一部をPCIe以外のプロトコルで接続してもよい。
図２３実施形態の一例としての情報処理装置のＩ／Ｏバスシステム１の第４変形例を示す図である。この図２３に示すＩ／Ｏバスシステム１ｄは、仮想化領域ＶＡ内に備えられたスイッチ＃２内において、ポート間がPCIe以外のプロトコルで接続されている。そして、この図２３に示す第４変形例においても、更に、仮想化領域ＶＡ内に複数のスイッチを多段に接続して備えてもよい。
【０１２０】
また、上述した開示により本実施形態及び変形例を当業者によって実施・製造することが可能である。
【符号の説明】
【０１２１】
１，１ａ，１ｂ，１ｃ，１ｄ    Ｉ／Ｏバスシステム（入出力バスシステム）
１ｖ    仮想イメージバス
１０，２０    スイッチ（中継装置）
１１，１２，２１，２２，４１，５１    ポート
１３    第１レジスタ（第３格納部）
１４    第２レジスタ（第３格納部，第４格納部，第５格納部）
２４    ステータスレジスタ
２５    制御レジスタ
１５，２７    コントローラ（通知部，応答処理部）
１６    メモリ（第２格納部，第１格納部）
２６    メモリ（第２格納部）
３０    ＣＰＵ（処理装置）
４０    ルートコンプレックス
５０    Ｉ／Ｏデバイス（入出力デバイス）
６０    ホットプラグコントローラ
７０    電源制御回路
１００，２００    ボード
１３１    ステータスレジスタコピー
１４１    制御レジスタコピー
１６１    仮想バス情報
１６２    ルーティング情報
３００    マネージメント装置（仮想バス情報作成部，ルーティング情報作成部）
ＶＡ    仮想化領域
【図１】
2014182604.tif 000003
【図２】
2014182604.tif 000004
【図３】
2014182604.tif 000005
【図４】
2014182604.tif 000006
【図５】
2014182604.tif 000007
【図６】
2014182604.tif 000008
【図７】
2014182604.tif 000009
【図８】
2014182604.tif 000010
【図９】
2014182604.tif 000011
【図１０】
2014182604.tif 000012
【図１１】
2014182604.tif 000013
【図１２】
2014182604.tif 000014
【図１３】
2014182604.tif 000015
【図１４】
2014182604.tif 000016
【図１５】
2014182604.tif 000017
【図１６】
2014182604.tif 000018
【図１７】
2014182604.tif 000019
【図１８】
2014182604.tif 000020
【図１９】
2014182604.tif 000021
【図２０】
2014182604.tif 000022
【図２１】
2014182604.tif 000023
【図２２】
2014182604.tif 000024
【図２３】
2014182604.tif 000025