(57)【要約】ホストと周辺機器との間における柔軟なバス接続を可能とするために、ネットワーク装置は、複数のＩ／Ｏバスを保持するホストと自ネットワーク装置とをネットワークを介して接続する第１のインタフェース手段と、複数のＩ／Ｏインタフェースを備える周辺機器と自ネットワーク装置とを接続する第２のインタフェース手段と、複数のＩ／Ｏインタフェースを、それぞれ異なるＩ／Ｏバスの配下に接続するように制御する制御手段と、を備える。
2011090145.tif 000002
【特許請求の範囲】
【請求項１】
複数のＩ／Ｏバスを保持するホストと自ネットワーク装置とをネットワークを介して接続する第１のインタフェース手段と、
複数のＩ／Ｏインタフェースを備える周辺機器と自ネットワーク装置とを接続する第２のインタフェース手段と、
前記複数のＩ／Ｏインタフェースを、それぞれ異なる前記Ｉ／Ｏバスの配下に接続するように制御する制御手段と、
を備えるネットワーク装置。
【請求項２】
前記制御手段は、
自ネットワーク装置が前記Ｉ／Ｏインタフェースに第１のアドレスを割り当てるアドレス割り当て手段、及び、前記ホストが前記Ｉ／Ｏインタフェースに割り当てた第２のアドレスと前記第１のアドレスとを対応させるアドレス対応手段、を備える接続仮想化手段と、
前記アドレス対応手段が対応させた前記第１のアドレスと前記第２のアドレスとを保持するアドレス保持手段と、
前記アドレス保持手段を参照して、前記ホストと前記周辺機器との間で前記第１のインタフェース手段および第２のインタフェース手段を介して転送されるＩ／Ｏパケットに記載されたアドレスを変換するアドレス変換手段と、
を備える、請求項１に記載されたネットワーク装置。
【請求項３】
前記アドレス割当手段は、前記周辺機器の情報を収集し、
前記情報に基づいて、前記周辺機器が要求するアドレスを前記Ｉ／Ｏインタフェースに割り当て、
割り当てたアドレスを前記アドレス保持手段に登録する、
請求項２に記載されたネットワーク装置。
【請求項４】
前記Ｉ／Ｏパケットを所定のネットワーク手段でカプセル化し、前記Ｉ／Ｏインタフェース毎に前記ホストが備える複数のネットワークインタフェースを対応させ、前記ネットワークインタフェースとの間で前記カプセル化した前記Ｉ／Ｏパケットを送受信するネットワークアダプタ手段、
をさらに備える、請求項２又は３に記載されたネットワーク装置。
【請求項５】
前記ネットワーク装置は、さらに、
前記ネットワークインタフェースの識別情報を前記ネットワークアダプタ手段に通知し、前記Ｉ／Ｏパケットを送受信する経路に前記ネットワークインタフェースに対応する前記Ｉ／Ｏインタフェースを割り当てる、接続ホスト制御手段を備える、請求項４に記載されたネットワーク装置。
【請求項６】
前記ネットワーク装置が接続するネットワークはイーサネット（登録商標）に準拠し、
前記Ｉ／ＯバスはＰＣＩエクスプレスに準拠し、
前記周辺機器は、ＳＲ−ＩＯＶに準拠している、請求項１乃至５のいずれかに記載されたネットワーク装置。
【請求項７】
前記ホストは、
前記Ｉ／Ｏインタフェースに対し個別にロードされたデバイスドライバを仲介し、少なくとも１つの前記デバイスドライバが制御するインタフェースを運用系として用い、少なくとも１つのデバイスドライバが制御するインタフェースを予備系として用いる仲介デバイスドライバを備える、請求項１乃至６のいずれかに記載されたネットワーク装置。
【請求項８】
前記ホストは、
前記Ｉ／Ｏインタフェースに対し個別にロードされたデバイスドライバを仲介し、
前記デバイスドライバが制御する少なくとも２つのインタフェースの間でＩ／Ｏ命令をロードバランスする制御を行う仲介デバイスドライバを備える、請求項１乃至６のいずれかに記載されたネットワーク装置。
【請求項９】
複数のＩ／Ｏバスを保持するホストと、
複数のＩ／Ｏインタフェースを備える周辺機器と、
前記ホストと自装置とをネットワークを介して接続する第１のインタフェース手段と、
前記周辺機器と自装置とを接続する第２のインタフェース手段と、
前記複数のＩ／Ｏインタフェースを、それぞれ異なる前記Ｉ／Ｏバスの配下に接続するように制御する制御手段と、を備えるネットワーク装置と、
を備える、ネットワークシステム。
【請求項１０】
複数のＩ／Ｏバスを保持するホストと自ネットワーク装置とをネットワークを介して接続し、
複数のＩ／Ｏインタフェースを備える周辺機器と自ネットワーク装置とを接続し、
前記複数のＩ／Ｏインタフェースを、それぞれ異なる前記Ｉ／Ｏバスの配下に接続するように制御する、
ネットワーク構成方法。
【請求項１１】
ネットワーク装置が備えるコンピュータを、
複数のＩ／Ｏバスを保持するホストと自ネットワーク装置とをネットワークを介して接続する第１のインタフェース手段、
複数のＩ／Ｏインタフェースを備える周辺機器と自ネットワーク装置とを接続する第２のインタフェース手段、
前記複数のＩ／Ｏインタフェースを、それぞれ異なる前記Ｉ／Ｏバスの配下に接続するように制御する制御手段、
として機能させるためのネットワーク装置のプログラム、を記録したプログラム記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はネットワーク装置、ネットワーク構成方法及びネットワーク装置のプログラムを記録したプログラム記録媒体に関し、特にホストと周辺機器との間において柔軟なバス接続を可能とするネットワーク装置、ネットワーク構成方法及びネットワーク装置のプログラムを記録したプログラム記録媒体に関する。
【背景技術】
【０００２】
図１７は、特許文献１に記載されている、本発明に関連するネットワークシステムの一例を示す図である。図１７に示すネットワークシステムは、ホスト１と、イーサネット（登録商標）スイッチ２００と、下流ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）エクスプレス−イーサネットブリッジ７と、周辺装置８とを含む。
下流ＰＣＩエクスプレス−イーサネットブリッジ７は、ＰＣＩエクスプレスバスとイーサネットスイッチ２００との間をブリッジする。なお、ＰＣＩエクスプレスバスは、ＰＣＩ−ＳＩＧ（ＰＣＩ  Ｓｐｅｃｉａｌ  Ｉｎｔｅｒｅｓｔ  Ｇｒｏｕｐ）で標準化されているＩ／Ｏバスの規格の名称である。
ホスト１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１と、メモリ１３と、ルートコンプレックス１２１と、上流ＰＣＩエクスプレス−イーサネットブリッジ１５とを備える。ルートコンプレックス１２１は、ＣＰＵ１１とメモリ１３と上流ＰＣＩエクスプレス−イーサネットブリッジ１５とを相互に接続する。上流ＰＣＩエクスプレス−イーサネットブリッジ１５は、ＰＣＩエクスプレスバスとイーサネットスイッチ２００とをブリッジする、ネットワークインタフェースである。ＣＰＵ１１またはメモリ１３と、周辺装置８との間で送受信されるパケットをＩ／Ｏパケットと呼ぶ。
上流ＰＣＩエクスプレス−イーサネットブリッジ１５は、ルートコンプレックス１２１からＩ／Ｏパケットを受信すると、受信したＩ／Ｏパケットを、下流ＰＣＩエクスプレス−イーサネットブリッジ７を宛先とするイーサネットフレームにカプセル化して、イーサネットスイッチ２００に送信する。
上流ＰＣＩエクスプレス−イーサネットブリッジ１５は、また、イーサネットスイッチ２００からＩ／Ｏパケットがカプセル化されたイーサネットフレームを受信すると、受信したＩ／Ｏパケットをデカプセル化して、ルートコンプレックス１２１に送信する。
下流ＰＣＩエクスプレス−イーサネットブリッジ７は、イーサネットスイッチ２００からＩ／Ｏパケットがカプセル化されたイーサネットフレームを受信すると、受信したＩ／Ｏパケットをデカプセル化し、周辺装置８に送信する。
下流ＰＣＩエクスプレス−イーサネットブリッジ７は、周辺装置８からＩ／Ｏパケットを受信する。そして、下流ＰＣＩエクスプレス−イーサネットブリッジ７は、受信したＩ／Ｏパケットを、上流ＰＣＩエクスプレス−イーサネットブリッジ１５を宛先とするイーサネットフレームにカプセル化して、イーサネットスイッチ２００に送信する。
図１７に記載されたネットワークシステムは次のように動作する。
ソフトウェアの制御によってＣＰＵ１１がＩ／Ｏパケットを発行すると、Ｉ／Ｏパケットはルートコンプレックス１２１を経由して上流ＰＣＩエクスプレス−イーサネットブリッジ１５に送信される。上流ＰＣＩエクスプレスイーサネットブリッジ１５は、受信したＩ／Ｏパケットをイーサネットフレームを用いてカプセル化し、下流ＰＣＩエクスプレス−イーサネットブリッジ７を宛先としてイーサネットスイッチ２００に送信する。下流ＰＣＩエクスプレス−イーサネットブリッジ７は、Ｉ／Ｏパケットをカプセル化したイーサネットフレームを受信し、Ｉ／Ｏパケットをデカプセル化し、周辺装置８に送信する。
一方、周辺装置８がＩ／Ｏパケットを発行すると、下流ＰＣＩエクスプレス−イーサネットブリッジ７は、周辺装置８から受信したＩ／Ｏパケットをイーサネットフレームを用いてカプセル化する。そして、下流ＰＣＩエクスプレス−イーサネットブリッジ７は、カプセル化されたＩ／Ｏパケットを上流ＰＣＩエクスプレス−イーサネットブリッジ１５を宛先としてイーサネットスイッチ２００に送信する。上流ＰＣＩエクスプレス−イーサネットブリッジ１５は、Ｉ／Ｏパケットをカプセル化したイーサネットフレームを受信し、Ｉ／Ｏパケットをデカプセル化する。そして、上流ＰＣＩエクスプレス−イーサネットブリッジ１５は、Ｉ／Ｏパケットをルートコンプレックス１２１に送信する。
ルートコンプレックス１２１は、Ｉ／Ｏパケットを受信し、Ｉ／ＯパケットをＣＰＵ１１またはメモリ１３へ送信する。そして、Ｉ／Ｏパケットは、ＣＰＵ１１への割り込み制御や、メモリ１３へのＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）など、指定された処理を行う。
また、特許文献２は、ＣＰＵと、Ｉ／Ｏ機器とが、上流ＰＣＩエクスプレスブリッジ、ネットワーク及び下流ＰＣＩエクスプレス−イーサネットブリッジを介して接続された、特許文献１と構成が類似する共有システムを記載している。
さらに、特許文献３は、運用系のＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）と予備系のＮＩＣとを備え、ＮＩＣが故障した場合にはＮＩＣを予備系に切り替えて運用を継続する構成を記載している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−２１９８７３号公報（［００２８］段落、図１）
【特許文献２】特開２００８−０７８８８７号公報（［００２０］段落）
【特許文献３】特開２００３−０７８５６７号公報（［００１２］段落）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上述の特許文献１及び特許文献２に記載された構成においては、ＣＰＵと周辺機器との間でＩ／Ｏパケットを送受信する際に、全てのＩ／Ｏパケットが同一の上流ＰＣＩエクスプレス−イーサネットブリッジを経由する。その結果、ＣＰＵと周辺装置との間のＩ／Ｏパケットの通信において、その性能や信頼性が当該上流ＰＣＩエクスプレス−イーサネットブリッジに依存して制限されるという課題がある。
また、特許文献３に記載された構成においては、通常は運用系のＮＩＣのみにより通信が行われる。このため、特許文献３に記載された構成には、ＭＧ（Ｍｅｄｉａ  Ｇａｔｅｗａｙ）とＭＧＣ（Ｍｅｄｉａ  Ｇａｔｅｗａｙ  Ｃｏｎｔｒｏｌｌｅｒ）との間の通信において、通信速度が１枚のＮＩＣの性能により制限されるという課題がある。
さらに、特許文献３に記載された構成においては、複数枚のＮＩＣがそれぞれ運用系と予備系として用意される必要があるので、ＮＩＣの運用系から予備系への切り替えの際にハードウエアの切り替えが発生する。ハードウエアの切り替えには時間を要するので、特許文献３に記載された構成には、切り替え時のサービスの中断時間が長くなるという課題もある。
本発明の目的は、ホストと周辺機器との間における柔軟なバス接続を可能とすることで、上述した課題のいずれかを解決するネットワーク装置、ネットワーク構成方法及びネットワーク装置のプログラムを記録したプログラム記録媒体を提供することにある。
【課題を解決するための手段】
【０００５】
本発明のネットワーク装置は、複数のＩ／Ｏバスを保持するホストと自ネットワーク装置とをネットワークを介して接続する第１のインタフェース手段と、複数のＩ／Ｏインタフェースを備える周辺機器と自ネットワーク装置とを接続する第２のインタフェース手段と、複数のＩ／Ｏインタフェースを、それぞれ異なるＩ／Ｏバスの配下に接続するように制御する制御手段と、を備える。
また、本発明のネットワークシステムは、複数のＩ／Ｏバスを保持するホストと、複数のＩ／Ｏインタフェースを備える周辺機器と、ホストと自装置とをネットワークを介して接続する第１のインタフェース手段と、周辺機器と自装置とを接続する第２のインタフェース手段と、複数のＩ／Ｏインタフェースを、それぞれ異なるＩ／Ｏバスの配下に接続するように制御する制御手段と、を備えるネットワーク装置と、を備える。
また、本発明のネットワーク構成方法は、複数のＩ／Ｏバスを保持するホストと自ネットワーク装置とをネットワークを介して接続するステップと、複数のＩ／Ｏインタフェースを備える周辺機器と自ネットワーク装置とを接続するステップと、複数のＩ／Ｏインタフェースを、それぞれ異なるＩ／Ｏバスの配下に接続するように制御するステップと、を備える。
さらに、本発明のネットワーク装置のプログラムを記録したプログラム記録媒体は、ネットワーク装置が備えるコンピュータを、複数のＩ／Ｏバスを保持するホストと自ネットワーク装置とをネットワークを介して接続する第１のインタフェース手段、複数のＩ／Ｏインタフェースを備える周辺機器と自ネットワーク装置とを接続する第２のインタフェース手段、複数のＩ／Ｏインタフェースを、それぞれ異なるＩ／Ｏバスの配下に接続するように制御する制御手段、として機能させるプログラムを記録している。
【発明の効果】
【０００６】
本発明のネットワーク装置、ネットワーク構成方法及びネットワーク装置のプログラムを記録したプログラム記録媒体は、ホストから周辺機器に接続される複数のＩ／Ｏバスのそれぞれが、異なるインタフェースに接続されているように制御する。その結果、本発明は、ホストと周辺機器とを接続するＩ／Ｏバスを柔軟に構成することを可能とするという効果を奏する。
【図面の簡単な説明】
【０００７】
【図１】第１の実施形態のネットワークシステムの構成を示す図である。
【図２】第１の実施形態における、ホストのデバイスツリーを示す図である。
【図３】ＰＣＩエクスプレスのＩ／Ｏパケットがカプセル化されたイーサネットフレームの構成を示す図である。
【図４】アドレス変換テーブルの一例を示す図である。
【図５】ホストが発行したＩ／Ｏパケットのアドレス変換の一例を説明するための図である。
【図６】ＶＦが発行したＩ／Ｏパケットのアドレス変換の一例を説明するための図である。
【図７】仮想リソースレジスタの構成の一例を示す図である。
【図８】仮想ＶＦレジスタの内容の一例を示す図である。
【図９】接続ホスト制御部の動作を説明するための流れ図である。
【図１０】アドレス割当部の動作を説明するための流れ図である。
【図１１】ホストが備えるＣＰＵ上で動作するソフトウェアスタックを示す図である。
【図１２】ホストがＳＲ−ＩＯＶ対応Ｉ／ＯにＩ／Ｏパケットを発行する動作を示す流れ図である。
【図１３】下流ＰＣＩエクスプレス−イーサネットブリッジが、ホストが発行したＩ／Ｏパケットを処理する動作を説明する流れ図である。
【図１４】下流ＰＣＩエクスプレス−イーサネットブリッジが、ＳＲ−ＩＯＶ対応Ｉ／Ｏが発行したＩ／Ｏパケットを処理する動作を示す流れ図である。
【図１５】ホストが、ＳＲ−ＩＯＶ対応Ｉ／Ｏが発行したＩ／Ｏパケットを処理する動作を説明する流れ図である。
【図１６】第２の実施形態のネットワーク装置の構成を示す図である。
【図１７】特許文献１に記載されている、本発明に関連するネットワークシステムの一例を示す図である。
【図１８】アドレス対応部の動作を説明するための流れ図である。
【発明を実施するための形態】
【０００８】
次に、本発明の実施形態について図面を参照して詳細に説明する。
［第１の実施形態］
まず、本発明の第１の実施形態について説明する。
図１６は、本発明の第１の実施形態のネットワーク装置の構成を示す図である。ネットワーク装置１６０１は、周辺機器とのインタフェース部１６０２、ホストとのインタフェース部１６０３と、制御部１６０４とを備える。制御部１６０４は、周辺機器が備える、ソフトウェアからアクセスされる複数のＩ／Ｏインタフェースを、周辺機器と接続されるホストが保持するそれぞれ異なるＩ／Ｏバスの配下に接続するように制御する。
制御部１６０４は、複数のインタフェースを保持する周辺機器の各Ｉ／Ｏインタフェースに対応するＩ／Ｏデバイスが、ホストから見て周辺機器の異なるＩ／Ｏバスに所属するように制御する。その結果、制御部１６０４は、ホストに対して、Ｉ／Ｏインタフェースの接続状態を、同一の周辺機器に接続された複数のＩ／Ｏデバイスが異なるバスに個別に接続するように認識させることができる。
その結果、第１の実施形態は、ホストと周辺機器との間の通信路を、柔軟に制御することができるという効果を奏する。
第１の実施形態の第１の変形例として、複数のＩ／Ｏデバイスのうち、１個を運用系、残余を予備系として動作させてもよい。この場合、運用系のＩ／Ｏデバイスに対応する経路上で障害が発生した場合、運用系のＩ／Ｏデバイスから予備系のＩ／Ｏデバイスに使用を切り替えるように動作させてもよい。
その結果、第１の実施形態の第１の変形例には、第１の実施形態の効果に加えて、さらに、冗長構成を備えたパケットの伝送路の系切り替えを高速に行うことができるという効果がある。
また、第１の実施形態の別の第２の変形例として、複数のＩ／Ｏデバイスを同時に運用系として動作させてもよい。この場合、複数のＩ／Ｏデバイスの間のデータ量をロードバランスさせてもよい。
その結果、第１の実施形態の第２の変形例には、第１の実施形態で説明した効果に加えて、さらに、ロードバランシングを容易に行うことができるという効果がある。
［第２の実施形態］
次に、本発明の第２の実施形態について説明する。第２の実施形態では、本願発明のネットワーク装置について、より詳細に説明する。
図１は、本発明の第２の実施形態のネットワークシステムの構成を示す図である。図１を参照すると、第２の実施形態のコンピュータシステムは、ホスト１と、イーサネット２と、下流ＰＣＩエクスプレスイーサネットブリッジ３と、ＳＲ−ＩＯＶ（Ｓｉｎｇｌｅ  Ｒｏｏｔ  Ｉ／Ｏ  Ｖｉｒｔｕａｌｉｚａｔｉｏｎ）対応Ｉ／Ｏ４とを含む。ＳＲ−ＩＯＶ対応Ｉ／Ｏ４は、ＳＲ−ＩＯＶに準拠する周辺機器である。ここで、ＳＲ−ＩＯＶは、Ｉ／Ｏデバイスを制御して複数のＶＭ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）からのＩ／Ｏデバイスへのアクセスを実現するための、ＰＣＩ−ＳＩＧが定めたＰＣＩエクスプレスのＩ／Ｏデバイスに関する規格である。そして、ＳＲ−ＩＯＶに準拠した周辺機器は、複数のＶＭが動作しているホストのＩ／Ｏスロットに挿入して使用される。各ＶＭは、割り当てられたＶＦに対して、ソフトウェアの仲介層を介さずに直接Ｉ／Ｏ命令を発行する。その結果、Ｉ／Ｏ処理に関するオーバヘッドの削減が可能卯となる。
ホスト１は、ＣＰＵ１１と、ブリッジ１２と、メモリ１３と、上流ＰＣＩエクスプレスイーサネットブリッジ１４ａ及び１４ｂと、を含む。上流ＰＣＩエクスプレス−イーサネットブリッジ１４ａ及び１４ｂは、イーサネット２に対するホスト１のネットワークインタフェースである。なお、上流ＰＣＩエクスプレスイーサネットブリッジ１４ａと上流ＰＣＩエクスプレスイーサネットブリッジ１４ｂとは同一のものであってもよい。これらのデバイスを識別するために、上流ＰＣＩエクスプレス−イーサネットブリッジ１４の添字をａ，ｂとしている。
ここで、ＳＲ−ＩＯＶ対応Ｉ／Ｏ４は、ホスト１上のソフトウェアからアクセスできるインタフェースを複数備えている。これらの複数のインタフェースをそれぞれＶＦ（Ｖｉｒｔｕａｌ  Ｆｕｎｃｔｉｏｎ）と呼ぶ。図１では、複数のインタフェースを区別するために、各ＶＦをＶＦ４１ａ、ＶＦ４１ｂなどと表記する。
また、第２の実施形態では、ＶＦ４１ａとＶＦ４１ｂとがホスト１に割り当てられる。ＶＦ４１ａは、下流ＰＣＩエクスプレス−イーサネットブリッジ３から、上流ＰＣＩエクスプレスイーサネットブリッジ１４ａを経由してホスト１に接続されるように割り当てられる。一方、ＶＦ４１ｂは、下流ＰＣＩエクスプレス−イーサネットブリッジ３から、上流ＰＣＩエクスプレスイーサネットブリッジ１４ｂを経由してホスト１に接続されるように割り当てられる。
図２は、第２の実施形態における、ホスト１のデバイスツリーを示す図である。ＳＲ−ＩＯＶ対応Ｉ／Ｏ４のＶＦ４１ａとＶＦ４１ｂとは、それぞれ上流ＰＣＩエクスプレスイーサネットブリッジ１４ａと上流ＰＣＩエクスプレスイーサネットブリッジ１４ｂとに関係づけられた、異なるＰＣＩエクスプレスバスに属している。このため、ホスト１のデバイスツリーは、ＳＲ−ＩＯＶ対応Ｉ／Ｏ部４が提供するＩ／Ｏ機能（以下、Ｉ／Ｏデバイスと呼ぶ）が、異なるバスに１つずつ備えられているように構成される。
図１において、下流ＰＣＩエクスプレス−イーサネットブリッジ３は、イーサネットアダプタ３１と、ホスト側Ｉ／Ｏパケット転送部３２と、制御部３３０と、Ｉ／Ｏ側Ｉ／Ｏパケット転送部３４とを備えるネットワーク装置である。そして、下流ＰＣＩエクスプレス−イーサネットブリッジ３は、さらに、接続ホスト制御部３５と、仮想リソースレジスタ３６とを備える。ここで、制御部３３０は、アドレス変換部３３と、アドレス変換テーブル３７と、接続仮想化部３８とを備える。さらに、接続仮想化部３８は、アドレス対応部３８１と、アドレス割当部３８２とを備える。また、下流ＰＣＩエクスプレス−イーサネットブリッジ３は、さらに、ＣＰＵ３９及びメモリ４０を備えていてもよい。
イーサネットアダプタ３１は、Ｉ／Ｏパケットのイーサネットフレームへのカプセル化処理を行う。ホスト側Ｉ／Ｏパケット転送部３２は、Ｉ／Ｏパケットを適切な宛先に転送する。アドレス変換部３３は、Ｉ／Ｏパケットに記載されたアドレスを変換する。Ｉ／Ｏ側Ｉ／Ｏパケット転送部３４は、Ｉ／Ｏパケットを適切な宛先に転送する。接続ホスト制御部３５は、下流ＰＣＩエクスプレスイーサネットブリッジ３と、上流ＰＣＩエクスプレスイーサネットブリッジ１４ａ、１４ｂとの接続を制御する。図７に示すように、仮想リソースレジスタ３６は、各ＶＦの制御に用いられる仮想ＶＦレジスタ３６１ａ、３６１ｂを含む。仮想リソースレジスタ３６の構成については、後で図７を用いて説明する。アドレス変換テーブル３７は、アドレス変換部３３がＩ／Ｏパケットに記載されたアドレスを変換する際に使用される。アドレス対応部３８１及びアドレス割当部３８２は、ホスト１とＳＲ−ＩＯＶ対応Ｉ／Ｏ４との接続を制御する。
以下に、各部の動作をさらに詳細に説明する。
イーサネットアダプタ３１は、イーサネット２からＰＣＩエクスプレスのＩ／Ｏパケットがカプセル化されたイーサネットフレームを受信し、受信したＩ／Ｏパケットをデカプセル化する。また、イーサネットアダプタ３１は、イーサネットフレームを受信した上流ＰＣＩエクスプレスイーサネットブリッジを識別する情報と共に、Ｉ／Ｏパケットをホスト側Ｉ／Ｏパケット転送部３２に送信する。
イーサネットアダプタ３１は、さらに、ホスト側Ｉ／Ｏパケット転送部３２からＳＲ−ＩＯＶ対応Ｉ／Ｏ４が発行したＩ／Ｏパケットと、発行元のＶＦを識別する情報を受信する。そして、Ｉ／Ｏパケットの発行元がＶＦ４１ａであれば、イーサネットアダプタ３１は、上流ＰＣＩエクスプレスイーサネットブリッジ１４ａのＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレスを用いてＩ／Ｏパケットをイーサネットフレームにカプセル化し、イーサネットネットワーク２に送信する。
また、Ｉ／Ｏパケットの発行元がＶＦ４１ｂであれば、イーサネットアダプタ３１は、上流ＰＣＩエクスプレスイーサネットブリッジ１４ｂのＭＡＣアドレスを用いてＩ／Ｏパケットをイーサネットフレームにカプセル化し、イーサネット２に送信する。
図３は、ＰＣＩエクスプレスのＩ／Ｏパケットがカプセル化されたイーサネットフレームの構成を示す図である。図３において、イーサネットフレーム１１０１は、イーサネットヘッダ１１０２及びＴＬＰ（Ｔｒａｎｓａｃｔｉｏｎ  Ｌａｙｅｒ  Ｐａｃｋｅｔ）１１０３を含んで構成される。イーサネットヘッダ１１０２は、イーサネットフレーム１１０１のヘッダである。イーサネットヘッダ１１０２は、送信先ＭＡＣアドレス１１０４、送信元ＭＡＣアドレス１１０５を含む。ＴＬＰ１１０３は、ＰＣＩエクスプレスのＩ／Ｏパケットである。ＰＣＩエクスプレスのＩ／Ｏパケットは、パケットの宛先アドレス１１０６、パケットの送信元アドレス１１０７及びペイロード１１０８を含む。
ＰＣＩ  Ｅｘｐｒｅｓｓでは、接続されたデバイスに割り当てるアドレスとして、ホストのＩ／Ｏ空間にマッピングされたＩ／Ｏアドレスと、ホストのメモリ空間にマッピングされたメモリアドレスと、ＩＤ番号との３種類のアドレスが利用できる。ＩＤ番号は、バス（Ｂｕｓ）番号と、デバイス（Ｄｅｖｉｃｅ）番号と、ファンクション（Ｆｕｎｃｔｉｏｎ）番号との組で構成される。ＩＤ番号を構成するこれらの番号の組を、以下「ＢＤＦ番号」と呼ぶ。
また、Ｉ／Ｏパケットのアドレッシングには、宛先のメモリアドレスまたはＩ／Ｏアドレスを指定するアドレスルーティングと、宛先のＩＤ番号を指定するＩＤルーティングとが利用できる。そして、パケットの宛先アドレス１１０６及びパケットの送信元アドレス１１０７としては、上で説明したメモリアドレス、Ｉ／Ｏアドレス及びＩＤ番号を組み合わせて用いることもできる。
図３に示すイーサネットフレームによって、イーサネットアダプタ３１と上流ＰＣＩエクスプレス−イーサネットブリッジ１４ａ、１４ｂとの間で、イーサネットでカプセル化されたＩ／Ｏパケットが伝送される。
ホスト側Ｉ／Ｏパケット転送部３２は、イーサネットアダプタ３１から、Ｉ／Ｏパケット及びそのＩ／Ｏパケットが経由した上流ＰＣＩエクスプレス−イーサネットブリッジの識別情報を受信する。そして、ホスト側Ｉ／Ｏパケット転送部３１は、受信したＩ／Ｏパケットがホスト１によるＳＲ−ＩＯＶ対応Ｉ／Ｏ４のアドレス制御に関するパケットである場合は、受信したＩ／Ｏパケットをアドレス対応部３８１に転送する。そして、ホスト側Ｉ／Ｏパケット転送部３１は、受信したＩ／Ｏパケットがそれ以外のＩ／Ｏパケットであった場合は、受信したＩ／Ｏパケットをアドレス変換部３３に転送する。いずれの場合も、受信したＩ／Ｏパケットは、Ｉ／Ｏパケットを送信した上流ＰＣＩエクスプレスイーサネットブリッジの識別情報と共に転送先へ転送される。ここで、Ｉ／Ｏパケットとともに転送される上流ＰＣＩエクスプレス−イーサネットブリッジの識別情報は、Ｉ／Ｏパケットに含まれていてもよい。
上流ＰＣＩエクスプレス−イーサネットブリッジの識別情報としては、上流ＰＣＩエクスプレス−イーサネットブリッジのＭＡＣアドレスまたはそのＭＡＣアドレスと対応する情報を用いてもよい。あるいは、ホスト側Ｉ／Ｏパケット転送部３２は、上流ＰＣＩエクスプレス−イーサネットブリッジを識別できる他の情報を上流ＰＣＩエクスプレス−イーサネットブリッジの識別情報として扱ってもよい。たとえば、識別情報として、上流ＰＣＩエクスプレス−イーサネットブリッジに対して順に付与された番号を用いてもよい。
アドレスの制御に関するＩ／Ｏパケットの例としては、ＰＣＩ  Ｅｘｐｒｅｓｓで定義されたコンフィグレーションリードパケットとコンフィグレーションライトパケットがある。コンフィグレーションリードパケットとコンフィグレーションライトパケットとは、それぞれ、ＳＲ−ＩＯＶ対応Ｉ／Ｏ４に設定されたアドレスの値を読み出し、またはＳＲ−ＩＯＶ対応Ｉ／Ｏ４にアドレスの値を書き込むために用いられる。
また、ホスト側Ｉ／Ｏパケット転送部３２は、アドレス変換部から、ＶＦ４１ａまたはＶＦ４１ｂが発行したＩ／Ｏパケットと、発行元ＶＦを識別するためのＶＦ識別番号とを受信する。そして、ホスト側Ｉ／Ｏパケット転送部３２は、ＶＦ４１ａまたはＶＦ４１ｂが発行したＩ／ＯパケットとＶＦ識別番号とをイーサネットアダプタ３１に転送する。なお、Ｉ／Ｏパケットは、自パケットを発行したＶＦ識別番号を含んでいてもよい。
図４は、アドレス変換部３３により参照される、アドレス変換テーブル３７の一例を示す図である。アドレス変換テーブル３７は、ターゲットサーチテーブル３７０及び複数のマッピングテーブル３７１ａ、３７１ｂを含む。アドレス変換部３３は、アドレス変換テーブル３７を参照して、Ｉ／Ｏパケットのアドレスを書き替える。
ターゲットサーチテーブル３７０は、ＶＦ番号と、上流ＰＣＩエクスプレス−イーサネットブリッジの識別情報との対応関係を示す情報を含んでいる。図４のターゲットサーチテーブル３７０は、ＶＦ番号が１であるＶＦが、識別情報が１である上流ＰＣＩエクスプレス−イーサネットブリッジに対応し、ＶＦ番号が２であるＶＦが、識別情報が２である上流ＰＣＩエクスプレス−イーサネットブリッジに対応することを表している。
マッピングテーブル３７１ａ、３７１ｂは、上流ＰＣＩエクスプレス−イーサネットブリッジの識別情報ごとの複数のテーブルから成る。これらの複数のマッピングテーブルを区別するために、各マッピングテーブルは、マッピングテーブル３７１ａ、マッピングテーブル３７１ｂなどと表記される。本実施形態では、上流ＰＣＩエクスプレス−イーサネットブリッジが２個の場合について説明する。従って、マッピングテーブルは２個ある。しかし、上流ＰＣＩエクスプレス−イーサネットブリッジが３個あるいはそれ以上存在する場合は、その数に応じてマッピングテーブルの数を増やしてもよい。
マッピングテーブル３７１ａを例にマッピングテーブルの内容を説明する。
マッピングテーブル３７１ａは、識別情報が１である上流ＰＣＩエクスプレス−イーサネットブリッジを通過するＩ／Ｏパケットのアドレス変換の際に使用される。マッピングテーブル３７１ａは、ホストのＢＤＦ番号と、ＶＦのＢＤＦ番号とを含む。また、マッピングテーブル３７１ａは、メモリアドレスの変換に用いるためのメモリベース値を含んでいてもよい。そして、マッピングテーブル３７１ａは、これらのアドレスに関して、それぞれ、ホストが割り当てたアドレスと下流ＰＣＩエクスプレス−イーサネットブリッジ３が割り当てたアドレスを保持している。なお、ホスト及び下流ＰＣＩエクスプレス−イーサネットブリッジ３によるアドレス割当の動作については後述する。
アドレス変換部３３は、ターゲットサーチテーブル３７０及びマッピングテーブル３７１ａ、３７１ｂを参照する。その結果、アドレス変換部３３は、ＶＦ番号と上流ＰＣＩエクスプレス−イーサネットブリッジとの対応情報を得ることができる。さらに、アドレス変換部３３は、上流ＰＣＩエクスプレス−イーサネットブリッジ毎の、ホストが割り当てたアドレスと下流ＰＣＩエクスプレス−イーサネットブリッジが割り当てたアドレスとの対応情報を得ることもできる。
ホスト１からＳＲ−ＩＯＶ対応Ｉ／Ｏ４に送信されるＩ／Ｏパケットの宛先アドレスは、アドレス変換部３３において、次のように変換される。すなわち、Ｉ／Ｏパケットの宛先アドレスは、アドレス変換部３３において、ホスト１が起動時にＶＦ４１ａとＶＦ４１ｂとに割り当てたアドレスから、下流ＰＣＩエクスプレス−イーサネットブリッジ３がＶＦ４１ａとＶＦ４１ｂとに割り当てたアドレスにそれぞれ変換される。
そして、ホストからＳＲ−ＩＯＶ対応Ｉ／Ｏ４に送信されるＩ／Ｏパケットの送信元アドレスは、アドレス変換部３３において、ホスト１で付与されたアドレスから下流ＰＣＩエクスプレス−イーサネットブリッジ３のアドレスに変換される。
アドレス変換部３３の具体的な動作を以下に説明する。アドレス変換部３３は、ホスト１からのＩ／Ｏパケットを上流ＰＣＩエクスプレスイーサネットブリッジ１４ａ（識別情報を「１」とする）を経由して受信すると、受信したパケットから、上流ＰＣＩエクスプレス−イーサネットブリッジ１４ａの識別情報が「１」であることを読み出す。その結果、アドレス変換部３３は、上流ＰＣＩエクスプレス−イーサネットブリッジの識別情報「１」に対応する、マッピングテーブル３７１ａを参照する。
一方、アドレス変換部３３が、上流ＰＣＩエクスプレスイーサネットブリッジ１４ｂ（識別番号を２とする）を経由してホスト１からのＩ／Ｏパケットを受信した場合は、次のように動作する。すなわち、アドレス変換部３３は、受信したパケットから、上流ＰＣＩエクスプレス−イーサネットブリッジ１４ｂの識別情報が「２」であることを読み出す。その結果、アドレス変換部３３は、上流ＰＣＩエクスプレス−イーサネットブリッジの識別情報「２」に対応する、マッピングテーブル３７１ｂを参照する。
ターゲットサーチテーブル３７０は、ＳＲ−ＩＯＶ対応Ｉ／Ｏ４からホストへ転送されるＩ／ＯパケットのＶＦ番号に対応する送信先の上流ＰＣＩエクスプレス−イーサネットブリッジを、アドレス変換部３３が指定するために用いられる。
図５は、ホスト１が発行したＩ／Ｏパケットのアドレス変換の一例を説明するための図である。図５を用いて、具体的なアドレス変換の手順を説明する。
なお、図５では、Ｉ／Ｏパケット１２０１の上流ＰＣＩエクスプレス−イーサネットブリッジの識別情報は「１」である場合の例を示す。すなわち、Ｉ／Ｏパケット１２０１は、上流ＰＣＩエクスプレス−イーサネットブリッジ１４ａを経由して送信されたものとする。
図５に示したＩ／Ｏパケット１２０１は、宛先アドレス１２０２をアドレスルーティングで指定し、パケットの送信元アドレス１２０３をＩＤ番号で指定する場合を示している。すなわち、Ｉ／Ｏパケット１２０１は、宛先アドレス１２０２としてメモリアドレス、送信元アドレス１２０３としてホストＢＤＦ番号をそれぞれ格納している。
アドレス変換部３３がホスト側Ｉ／Ｏパケット転送部３２からＩ／Ｏパケット１２０１を受信した時点では、宛先アドレス１２０２及び送信元アドレス１２０３はそれぞれ「０００１  ００１４ｈ」及び「０，０，０」となっている。そして、アドレス変換部３３は、Ｉ／Ｏパケット１２０１の上流ＰＣＩエクスプレス−イーサネットブリッジの識別情報が「１」であることから、識別情報が「１」である、図４のマッピングテーブル３７１ａを参照する。
アドレス変換部３３は、マッピングテーブル３７１ａを参照し、Ｉ／Ｏパケット１２０１の宛先アドレス１２０２を、メモリベース値「０００１  ００００ｈ」及び「００００  １０００ｈ」に基づいて、「００００  １０１４ｈ」に書き替える。そして、Ｉ／Ｏパケット１２０１の送信元アドレス１２０３を、ホスト１が割り当てた「０，０，０」から下流ＰＣＩエクスプレス−イーサネットブリッジが割り当てた「１，０，０」に書き替える。このアドレス変換により、各ＶＦは、Ｉ／Ｏパケット１２０１を、下流ＰＣＩエクスプレス−イーサネットブリッジが送信したパケットとして処理することが可能になる。
ここで、図５においては、Ｉ／Ｏパケット１２０１の宛先アドレスを、アドレスルーティングとした。しかし、宛先アドレスのルーティング方法にＢＤＦ番号によるルーティングを用いてもよい。ＢＤＦ番号によるルーティングを行う場合には、アドレス変換部３３において、ＢＤＦ番号をホスト１が指定するＢＤＦ番号から下流ＰＣＩエクスプレス−イーサネットブリッジが指定するＢＤＦ番号へ変換してもよい。
次に、アドレス変換部３３における、ＳＲ−ＩＯＶ対応Ｉ／Ｏ４がホスト１に向けて発行したＩ／Ｏパケットのアドレス変換の手順について説明する。
アドレス変換部３３は、ＳＲ−ＩＯＶ対応Ｉ／Ｏ４が発行したＩ／ＯパケットをＩ／Ｏ側Ｉ／Ｏパケット転送部３４から受信する。そして、アドレス変換部３３は、Ｉ／Ｏパケットに記載されたアドレスを変換し、ホスト側Ｉ／Ｏパケット転送部３２にＩ／Ｏパケットを発行したＶＦの識別番号と共に送信する。
ここで、アドレス変換部３３は、ＳＲ−ＩＯＶ対応Ｉ／Ｏ４から送信されたＩ／Ｏパケットを受信すると、Ｉ／Ｏパケットの送信元アドレスを、下流ＰＣＩエクスプレス−イーサネットブリッジ３が送信元のＶＦに割り当てたアドレスから、ホスト１が送信元のＶＦに割り当てたアドレスに変換する。
図６は、ＶＦ４１が発行したＩ／Ｏパケットのアドレス変換の一例を説明するための図である。図６を用いて、具体的なアドレス変換の手順の例を説明する。
ＳＲ−ＩＯＶ対応Ｉ／Ｏ４が発行したＩ／Ｏパケット１３０１のルーティング方法は、図５で説明したＩ／Ｏパケット１２０１と同様であるとする。すなわち、Ｉ／Ｏパケット１３０１は、宛先アドレス１３０２をメモリアドレスで指定し、送信元アドレス１３０３をＢＤＦ番号で指定する。図６では、Ｉ／Ｏパケット１３０１の送信元が、ＶＦ番号が「１」であるＶＦ４１ａの場合について説明する。
アドレス変換部３３がＩ／Ｏ側Ｉ／Ｏパケット転送部３４からＩ／Ｏパケット１３０１を受信した時点では、Ｉ／Ｏパケット１３０１の宛先アドレス１３０２及び送信元アドレス１３０３は、それぞれ「００２２  ００００ｈ」及び「１，０，１」となっている。そして、アドレス変換部３３は、図４のターゲットサーチテーブル３７０を参照する。アドレス変換部３３は、Ｉ／Ｏパケット１３０１の送信元ＶＦ番号が「１」であることから、経由する上流ＰＣＩエクスプレス−イーサネットブリッジの識別番号が「１」であることを知る。このため、アドレス変換部３３は、識別情報が「１」であるマッピングテーブル３７１ａを参照する。
Ｉ／Ｏパケット１３０１の送信元アドレスには、下流ＰＣＩエクスプレス−イーサネットブリッジが割り当てたＶＦ番号１のＶＦに対応するＢＤＦ番号である「１，０，１」が設定されている。そして、Ｉ／Ｏパケット１３０１の宛先アドレス１３０２には、「００２２  ００００ｈ」が設定されている。
アドレス変換部３３は、マッピングテーブル３７１ａを参照し、Ｉ／Ｏパケット１３０１の送信元アドレス１３０３を、下流ＰＣＩエクスプレス−イーサネットブリッジが割り当てた「１，０，１」からホスト１が割り当てた「１３，０，０」に書き替える。このアドレス変換により、ホスト１は、Ｉ／Ｏパケット１３０１を、下流ＰＣＩエクスプレス−イーサネットブリッジ３が送信したパケットとして処理することが可能になる。
なお、上の説明においては、Ｉ／Ｏパケット１３０１のアドレス変換においては、宛先アドレス１３０２（「００２２  ００００ｈ」）の書き換えを行っていない。これは、Ｉ／Ｏパケット１３０１の宛先のメモリへのアクセスがＤＭＡで行われるからである。すなわち、ＤＭＡアクセスの場合には、Ｉ／Ｏパケット生成時にすでに宛先アドレスとしてホスト空間のアドレスが指定されるので、アドレス変換部において宛先アドレスを変換する必要がないからである。しかしながら、図５における宛先アドレスの変換と逆の手順を用いて、Ｉ／Ｏパケット１３０１の宛先アドレス１３０２を、下流ＰＣＩエクスプレス−イーサネットブリッジのアドレス空間からホスト１のアドレス空間へ変換を行う構成としてもよい。
また、図６においては、Ｉ／Ｏパケット１３０１の宛先アドレスを、アドレスルーティングとした。しかし、宛先アドレスのルーティング方法にＢＤＦ番号によるルーティングを用いてもよい。ＢＤＦ番号によるルーティングを行う場合には、アドレス変換部３３において、ＢＤＦ番号を下流ＰＣＩエクスプレス−イーサネットブリッジが指定するＢＤＦ番号からホスト１が指定するＢＤＦ番号へ変換してもよい。
図５及び図６で説明した実施形態では、Ｉ／Ｏパケットの送信元アドレスが、アドレス変換部３３において、ホスト１が割り当てたアドレスと下流ＰＣＩエクスプレス−イーサネットブリッジ３が割り当てたアドレスとの間で書き替えられる構成とした。ここで、Ｉ／Ｏパケットは、ホスト１あるいはＳＲ−ＩＯＶ対応Ｉ／Ｏ４から送信されたＩ／Ｏパケットである。しかしながら、Ｉ／Ｏパケットの転送先が、送信元アドレスの変換を行うことなくＩ／Ｏパケットを処理可能であれば、アドレス変換部は送信元アドレスの変換を行わず、そのままＩ／Ｏパケットを転送する構成としてもよい。
さらに、上述の説明で示したアドレス変換テーブル３７に記載された数値は例示であり、他の数値あるいは文字列等による表記も可能である。例えば、上流ＰＣＩエクスプレス−イーサネットブリッジの識別情報として、ＭＡＣアドレスを使用してもよい。
Ｉ／Ｏ側Ｉ／Ｏパケット転送部３４は、ホスト１が発行したＩ／Ｏパケットをアドレス変換部３３から受信し、ＳＲ−ＩＯＶ対応Ｉ／Ｏ４の指定されたＶＦへ送信する。
Ｉ／Ｏ側Ｉ／Ｏパケット転送部３４は、ＳＲ−ＩＯＶ対応Ｉ／Ｏ４のＶＦからＩ／Ｏパケットを受信する。そして、受信したＩ／Ｏパケットが、下流ＰＣＩエクスプレスイーサネットブリッジがＳＲ−ＩＯＶ対応Ｉ／Ｏ４に割り当てるアドレスの制御に関するものであれば、Ｉ／Ｏ側Ｉ／Ｏパケット転送部３４は、受信したＩ／Ｏパケットをアドレス割当部３８２に送信する。それ以外のＩ／Ｏパケットであれば、Ｉ／Ｏ側Ｉ／Ｏパケット転送部３４は、受信したＩ／Ｏパケットをアドレス変換部３３に送信する。
接続ホスト制御部３５は、下流ＰＣＩエクスプレスイーサネットブリッジ３と上流ＰＣＩエクスプレスイーサネットブリッジ１４ａ、１４ｂとの接続を管理する。
上流ＰＣＩエクスプレス−イーサネットブリッジ１４ａ、１４ｂは、ＭＡＣアドレスを含む自身の識別情報を定期的に下流ＰＣＩエクスプレス−イーサネットブリッジ３へブロードキャストする。接続ホスト制御部３５は、上流ＰＣＩエクスプレス−イーサネットブリッジ１４ａ、１４ｂからブロードキャストされた上流ＰＣＩエクスプレス−イーサネットブリッジの識別情報を受信する。そして、接続ホスト制御部３５は、下流ＰＣＩエクスプレスイーサネットブリッジ３と接続する上流ＰＣＩエクスプレスイーサネットブリッジ１４ａと上流ＰＣＩエクスプレスイーサネットブリッジ１４ｂとのＭＡＣアドレスをイーサネットアダプタ３１に通知する。接続ホスト制御部３５は、ホスト１がＳＲ−ＩＯＶ対応Ｉ／Ｏ４の使用を開始する前に、この通知を行う。イーサネットアダプタ３１は、通知されたＭＡＣアドレスを用いて、Ｉ／Ｏパケットをカプセル化する。
一方、接続ホスト制御部３５は、上流ＰＣＩエクスプレスイーサネットブリッジ１４ａに対応する経路にＶＦ４１ａを割り当て、上流ＰＣＩエクスプレスイーサネットブリッジ１４ｂに対応する経路にＶＦ４１ｂを割り当てるようにアドレス対応部３８１に通知する。
接続仮想化部３８は、アドレス対応部３８１とアドレス割当部３８２とを備える。アドレス対応部３８１は、接続ホスト制御部３５から、各ＶＦとホストとの対応に関する情報を受信する。また、アドレス対応部３８１は、ホスト側Ｉ／Ｏパケット転送部３２から、ホスト１が発行した各ＶＦへのコンフィグレーションリードパケット及びコンフィグレーションライトパケットを受信する。そして、アドレス対応部３８１は、受信したコンフィグレーションリードパケットに、パケットで指定されたＶＦに対応する仮想リソースレジスタ３６の値を読み込ませる。さらに、アドレス対応部３８１は、受信したコンフィグレーションライトパケットで指定された値を、パケットで指定されたＶＦに対応する仮想ＶＦレジスタに書き込む。さらに、アドレス対応部３８１は、仮想ＶＦレジスタに記載された、ホスト１によって割り当てられたアドレス情報を、対応するＶＦのマッピングテーブルに登録する。
アドレス割当部３８２は、ホスト１がＳＲ−ＩＯＶ対応Ｉ／Ｏ４の使用を開始する前に、ＳＲ−ＩＯＶ対応Ｉ／Ｏ４にアドレスの制御に関するＩ／ＯパケットをＩ／Ｏ側Ｉ／Ｏパケット転送部３４を介して発行し、ＳＲ−ＩＯＶ対応Ｉ／Ｏ４のＩ／Ｏ情報を収集する。そして、アドレス割当部３８２は、Ｉ／Ｏ情報が要求するアドレスをＶＦ４１ａとＶＦ４１ｂとに割り当てる。また、アドレス割当部３８２は、アドレス割当部３８２が割り当てたＶＦ４１ａのアドレスをマッピングテーブル３７１ａに、ＶＦ４１ｂのアドレスをマッピングテーブル３７１ｂに登録する。さらに、アドレス割当部３８２は、取得したＩ／Ｏ情報を仮想リソースレジスタ３６に反映させる。ここでアドレス割当部３８２が割り当てるアドレスは、マッピングテーブルにおいて、下流ＰＣＩエクスプレス−イーサネットブリッジが割り当てるアドレスに相当する。
図７は、仮想リソースレジスタ３６の構成の一例を示す図である。仮想リソースレジスタ３６は、各ＶＦの制御に用いられる仮想ＶＦレジスタ３６１ａ、３６１ｂを含む。これらの仮想ＶＦレジスタが要求するアドレス領域や、デバイス情報は、アドレス割当部３８２により設定される。また、ホスト１から仮想ＶＦレジスタへのアクセスは、アドレス対応部３８１の制御により、接続ホスト制御部３５がホスト１に割り当てたＶＦに対応するレジスタに対してのみ行われる。ホスト１が、各ＶＦにアドレスを割り当てるために仮想ＶＦレジスタに設定した値は、アドレス変換テーブル３７に反映される。
図７では、仮想ＶＦレジスタは、仮想ＶＦレジスタ３６１ａ、仮想ＶＦレジスタ３６１ｂなどと表記される。仮想ＶＦレジスタ３６１ａはＶＦ４１ａに、仮想ＶＦレジスタ３６１ｂはＶＦ４１ｂにそれぞれ対応するものとする。そして、仮想ＶＦレジスタ３６１ａと仮想ＶＦレジスタ３６１ｂには、ホスト１がＶＦ４１ａとＶＦ４１ｂとに割り当てたアドレス、及び、各ＶＦに対応するＩ／Ｏデバイスの情報（以下、「Ｉ／Ｏ情報」という。）がそれぞれ記載されている。
ホスト１が起動されるか、ＳＲ−ＩＯＶ対応Ｉ／Ｏ４がホスト１にホットプラグされた場合、ホスト１は、アドレス割り当て処理の開始時に、Ｉ／Ｏバスにコンフィグレーションリードパケットを送信する。そして、ホスト１は、コンフィグレーションリードパケットの応答から、各Ｉ／Ｏバスの配下に接続されているＩ／Ｏ情報を取得する。以下に、その動作について説明する。
ホスト１は、コンフィグレーションリードパケットを用いて仮想ＶＦレジスタ３６１ａ、３６１ｂをリードする。Ｉ／Ｏバスの配下にＩ／Ｏデバイスが存在すると、そのＩ／Ｏ情報がコンフィグレーションリードパケットの応答としてホスト１に返送される。
アドレス対応部３８１は、上流ＰＣＩエクスプレスイーサネットブリッジ１４ａを経由してホスト１から受信したコンフィグレーションリードパケットに、パケットで指定された仮想ＶＦレジスタ３６１ａの値をリードさせる。仮想ＶＦレジスタ３６１ａには、ＶＦ４１ａに対応するＩ／Ｏ情報が記載されている。そして、アドレス対応部３８１は、コンフィグレーションリードパケットの応答をホスト１に返信する。
同様に、アドレス対応部３８１は、ホスト１から上流ＰＣＩエクスプレスイーサネットブリッジ１４ｂを経由して受信したコンフィグレーションリードパケットに、パケットで指定された仮想ＶＦレジスタ３６１ｂをリードさせる。仮想ＶＦレジスタ３６１ｂには、ＶＦ４１ｂに対応するＩ／Ｏ情報が記載されている。そして、アドレス対応部３８１は、コンフィグレーションリードパケットの応答をホスト１に返信する。
ホスト１は、各Ｉ／Ｏバスからのコンフィグレーションリードパケットの応答から、Ｉ／Ｏバスとその配下にあるＩ／Ｏ情報の対応情報を得る。
その結果、ホスト１から見て、ＶＦ４１ａ、ＶＦ４１ｂは、それぞれ上流ＰＣＩエクスプレスイーサネットブリッジ１４ａ、１４ｂに関するＩ／Ｏバスに所属するように制御される。すなわち、ホスト１からは、ＶＦ４１ａが上流ＰＣＩエクスプレスイーサネットブリッジ１４ａを経由するＩ／Ｏバスに所属しており、また、ＶＦ４１ｂが上流ＰＣＩエクスプレスイーサネットブリッジ１４ｂを経由するＩ／Ｏバスに所属しているように見えるようになる。
アドレス対応部３８１は、さらに、ホスト１がＶＦ４１ａにアドレスを割り当てるために発行したＩ／Ｏパケットを、上流ＰＣＩエクスプレスイーサネットブリッジ１４ａを経由して受信する。アドレス対応部３８１は、また、ＶＦ４１ｂにアドレスを割り当てるために、ホスト１が発行したＩ／Ｏパケットを上流ＰＣＩエクスプレスイーサネットブリッジ１４ｂを経由して受信する。
そして、ホスト１は、ＳＲ−ＩＯＶ対応Ｉ／Ｏ４を使用するために次の手順でＳＲ−ＩＯＶ対応Ｉ／Ｏ４にアドレスを割り当てる。すなわち、ホスト１は、コンフィグレーションライトパケットを用いて仮想ＶＦレジスタ３６１ａにアドレスを書き込むことで、ＶＦ４１ａにアドレスを割り当てる。同様に、ホスト１は、コンフィグレーションライトパケットを用いて仮想ＶＦレジスタ３６１ｂにアドレスを書き込むことで、ＶＦ４１ｂにアドレスを割り当てる。
図８は、仮想ＶＦレジスタ３６１ａの内容の一例を示す図である。仮想ＶＦレジスタ３６１ａには、ＶＦ４１ａに関してホスト１が割り当てたホスト１及びＶＦのアドレスが書き込まれている。また、仮想ＶＦレジスタ３６１ａには、ＶＦに対応するＩ／ＯデバイスのＩ／Ｏ情報も記載されている。ＶＦ４１ｂに関するアドレスが書き込まれている仮想ＶＦレジスタ３６１ｂも、構成は同様である。
アドレス対応部３８１は、仮想ＶＦレジスタ３６１ａに記載された、ホスト１によって割り当てられたアドレス情報を、マッピングテーブル３７１ａに登録する。同様に、アドレス対応部３８１は、仮想ＶＦレジスタ３６１ｂに記載された、ホスト１によって割り当てられたアドレス情報をマッピングテーブル３７１ｂに登録する。
上記で説明した接続ホスト制御部３５及び接続仮想化部３８の動作を、流れ図を用いて以下に説明する。
図９は、接続ホスト制御部３５の動作を説明するための流れ図である。接続ホスト制御部３５は、ホスト１がＳＲ−ＩＯＶ対応Ｉ／Ｏ４の使用を開始する前に、下流ＰＣＩエクスプレスイーサネットブリッジ３と接続する、上流ＰＣＩエクスプレスイーサネットブリッジ１４ａと上流ＰＣＩエクスプレスイーサネットブリッジ１４ｂとのＭＡＣアドレスをイーサネットアダプタ３１に通知する（ステップＣ１）。
そして、接続ホスト制御部３５は、上流ＰＣＩエクスプレスイーサネットブリッジ１４ａに対応する経路にＶＦ４１ａを割り当て、上流ＰＣＩエクスプレスイーサネットブリッジ１４ｂに対応する経路にＶＦ４１ｂを割り当てるようにアドレス対応部３８１に通知する（ステップＣ２）。
図１０は、アドレス割当部３８２の動作を説明するための流れ図である。
図１０において、アドレス割当部３８２は、ホスト１がＳＲ−ＩＯＶ対応Ｉ／Ｏ４の使用を開始する前に、ＳＲ−ＩＯＶ対応Ｉ／Ｏ４にアドレスの制御に関するＩ／ＯパケットをＩ／Ｏ側Ｉ／Ｏパケット転送部３４を介して発行し、ＳＲ−ＩＯＶ対応Ｉ／Ｏ４のＩ／Ｏ情報を収集する（ステップＤ１）。ここで、アドレス割当部３８２は、ホスト１がＳＲ−ＩＯＶ対応Ｉ／Ｏ４の使用を開始する前に、ステップＤ１の動作を行う。そして、アドレス割当部３８２は、収集した情報に基づいて、Ｉ／Ｏが要求するアドレスを各ＶＦに割り当てる（ステップＤ２）。そして、アドレス割当部３８２は、割り当てた各ＶＦのアドレスをマッピングテーブルに登録する（ステップＤ３）。さらに、アドレス割当部３８２は、取得したＩ／Ｏ情報を仮想リソースレジスタ３６に反映させる（ステップＤ４）。
図１８は、アドレス対応部３８１の動作を説明するための流れ図である。
図１８において、ホスト１が起動されるかＳＲ−ＩＯＶ対応Ｉ／Ｏ４がホスト１にホットプラグされると、アドレス対応部３８１は、接続ホスト制御部３５からＶＦとホストとの対応に関する情報を受信する（ステップＤ５）。また、アドレス対応部３８１は、コンフィグレーションリードパケットに、パケットで指定されたＶＦに対応する仮想リソースレジスタの値を読み込ませる（ステップＤ６）。そして、アドレス対応部３８１は、コンフィグレーションライトパケットで指定された値を、パケットで指定されたＶＦに対応する仮想ＶＦレジスタへ書き込ませる（ステップＤ７）。さらに、アドレス対応部３８１は、仮想ＶＦレジスタに書き込まれた、ホスト１によって割り当てられた各ＶＦのアドレス情報を、各ＶＦに対応するマッピングテーブルに登録する（ステップＤ８）。その結果、アドレス対応部３８１は、ホスト１から見てＶＦ４１ａ、４１ｂが上流ＰＣＩエクスプレスイーサネットブリッジ１４ａ、１４ｂに関するＩ／Ｏバスに所属するように制御する。
ここで、下流ＰＣＩエクスプレスイーサネットブリッジ３は、ＣＰＵ３９及びメモリ４０を備えていてもよい。そして、図９及び図１０にそれぞれ示した接続ホスト制御部３５及びアドレス割当部３８２のいずれか又は両方の動作手順を、メモリ４０にプログラムとして記憶させ、ＣＰＵ３９にそのプログラムに基づいて接続ホスト制御部３５及びアドレス割当部３８２のいずれか又は両方を制御させることで実現してもよい。
あるいは、下流ＰＣＩエクスプレスイーサネットブリッジ３に、図９または図１０に示したプログラムを書き込んだ組み込みプロセッサを実装してもよい。そして、その組み込みプロセッサが備えるＣＰＵにプログラムを実行させることで、接続ホスト制御部３５及びアドレス割当部３８２のいずれか又は両方を制御してもよい。
図１１は、ホスト１が備えるＣＰＵ１１上で動作するソフトウェアスタックを示す図である。ソフトウェアスタックは、オペレーティングシステム６１と、複数のＩ／Ｏデバイスを仲介し、オペレーティングシステム６１に対し１つのＩ／Ｏデバイスとして制御する仲介Ｉ／Ｏデバイスドライバ６２と、個別のＩ／Ｏデバイスを制御するＩ／Ｏデバイスドライバ６３ａ、６３ｂとを含む。Ｉ／Ｏデバイスドライバ６３ａは、ＶＦ４１ａを制御する。Ｉ／Ｏデバイスドライバ６３ｂはＶＦ４１ｂを制御する。仲介Ｉ／Ｏデバイスドライバ６２は、Ｉ／Ｏデバイスドライバ６３ａ、６３ｂと同一のインタフェースを保持する。仲介Ｉ／Ｏデバイスドライバ６２は、ＳＲ−ＩＯＶ対応Ｉ／Ｏ４が提供するＩ／Ｏデバイスをホスト１が２つ保持しており、それらに対し、Ｉ／Ｏデバイスドライバ６３ａとＩ／Ｏデバイスドライバ６３ｂとがロードされていると認識する。仲介Ｉ／Ｏデバイスドライバ６２は、Ｉ／Ｏデバイスドライバ６３ａとＩ／Ｏデバイスドライバ６３ｂを呼び出すことでＳＲ−ＩＯＶ対応Ｉ／Ｏ４を使用する。
仲介ドライバは、Ｉ／Ｏデバイスドライバ６３ａ、６３ｂを同時に制御することが可能である。従って、仲介ドライバは、ＶＦ４１ａ及びＶＦ４１ｂの使用あるいは不使用や、ＶＦ４１ａ及びＶＦ４１ｂがそれぞれ使用するパケットの伝送量を、それぞれ独立に制御することが可能である。ここで、本実施形態においては、ホストのデバイスツリー上では同一のＳＲ−ＩＯＶ対応Ｉ／Ｏが複数の異なるＶＦ（ＶＦ４１ａ、ＶＦ４１ｂ）でそれぞれ接続されているように制御されている。従って、第２の実施形態においては、仲介ドライバは、アドレス変換テーブルに記載されたアドレス設定を変更することなく、ＶＦ４１ａ及びＶＦ４１ｂによるホスト１とＳＲ−ＩＯＶ対応Ｉ／Ｏ４との間のＩ／Ｏパケット転送を制御することができる。言い換えれば、仲介ドライバは、アドレス変換部の動作を変更することなく、ＶＦごとのＩ／Ｏパケットの転送を制御することができる。
次に、ホスト１からＳＲ−ＩＯＶ対応Ｉ／Ｏ４に向けてパケットが転送される場合の、ホスト１及び下流ＰＣＩエクスプレス−イーサネットブリッジ３の動作を図面を参照して説明する。
図１２は、ホスト１上で動作するソフトウェアがＳＲ−ＩＯＶ対応Ｉ／Ｏ４にＩ／Ｏパケットを発行する動作を示す流れ図である。ここではホスト１がＶＦ４１ａにＩ／Ｏパケットを発行する場合について説明する。
オペレーティングシステム６１からＩ／Ｏ要求を受信した仲介Ｉ／Ｏデバイスドライバ６２は、使用するＩ／Ｏデバイスを選択する（ステップＡ１）。ここでは、例えばＩ／Ｏデバイス６３ａが選択されるとする。次に、仲介Ｉ／Ｏデバイスドライバ６２が、Ｉ／Ｏデバイスドライバ６３ａを呼び出す（ステップＡ２）。そして、Ｉ／Ｏデバイスドライバ６３ａがＩ／Ｏ命令を発行すると（ステップＡ３）、ブリッジ１２がＩ／Ｏパケットを発行する（ステップＡ４）。上流ＰＣＩエクスプレスイーサネットブリッジ１４ａは、発行されたＩ／Ｏパケットを受信し、下流ＰＣＩエクスプレスイーサネットブリッジ３のＭＡＣアドレスを宛先としてイーサネットフレームにカプセル化し、イーサネットネットワーク２に送信する（ステップＡ４）。
イーサネットネットワーク２はＩ／Ｏパケットがカプセル化されたイーサネットフレームを伝送する（ステップＡ５）。
図１３は、下流ＰＣＩエクスプレス−イーサネットブリッジ３が、ホストが発行したＩ／Ｏパケットを処理する動作を説明する流れ図である。
下流ＰＣＩエクスプレス−イーサネットブリッジ３のイーサネットアダプタ３１は、Ｉ／Ｏパケットがカプセル化されたイーサネットフレームを受信してＩ／Ｏパケットをデカプセル化し、ホスト側Ｉ／Ｏパケット転送部３２に送信する（ステップＡ１１）。
アドレス変換部３３は、ホスト側Ｉ／Ｏパケット転送部３２からＩ／Ｏパケットを受信し、アドレス変換テーブル３７を参照し、Ｉ／Ｏパケットの宛先アドレスをホスト１がＶＦ４１ａに割り当てたアドレスから下流ＰＣＩエクスプレスイーサネットブリッジ３がＶＦ４１ａに割り当てたアドレスに変換し、Ｉ／Ｏパケットの送信元アドレスを、ホスト１のアドレスから下流ＰＣＩエクスプレスイーサネットブリッジ３のアドレスに変換する（ステップＡ１２）。
そして、アドレス変換部３３は、アドレス変換したＩ／ＯパケットをＩ／Ｏ側Ｉ／Ｏパケット転送部３４に送信する（ステップＡ１３）。
このようにして、ＶＦ４１ａはＩ／Ｏ側Ｉ／Ｏパケット転送部３４からＩ／Ｏパケットを受信する。
次に、ＳＲ−ＩＯＶ対応Ｉ／Ｏ４からホストにＩ／Ｏパケットが転送される場合の、下流ＰＣＩエクスプレス−イーサネットブリッジ３及びホスト１の動作を図面を参照して説明する。
図１４は下流ＰＣＩエクスプレス−イーサネットブリッジが、ＳＲ−ＩＯＶ対応Ｉ／Ｏが発行したＩ／Ｏパケットを処理する動作を示す流れ図である。ここではＶＦ４１ａがホスト１にＩ／Ｏパケットを発行する場合について説明する。
ＶＦ４１ａがＩ／Ｏパケットを発行すると、アドレス変換部３３はＩ／Ｏ側Ｉ／Ｏパケット転送部３４を経由してＩ／Ｏパケットを受信する（ステップＢ１）。
アドレス変換部３３は、アドレス変換テーブル３７を参照し、Ｉ／Ｏパケットの宛先アドレスを、下流ＰＣＩエクスプレスイーサネットブリッジ３が割り当てたアドレスからホスト１が割り当てたアドレスに変換する。そして、アドレス変換部３３は、Ｉ／Ｏパケットの送信元アドレスを、下流ＰＣＩエクスプレスイーサネットブリッジ３がＶＦ４１ａに割り当てたアドレスからホスト１がＶＦ４１ａに割り当てたアドレスに変換し、ホスト側Ｉ／Ｏパケット転送部３２に送信する（ステップＢ２）。
イーサネットアダプタ３１は、ホスト側Ｉ／Ｏパケット転送部からＩ／Ｏパケットを受信し、上流ＰＣＩエクスプレスイーサネットブリッジ１４ａのＭＡＣアドレスを用いてＩ／Ｏパケットをイーサネットフレームにカプセル化する。そして、イーサネットアダプタ３１は、カプセル化したＩ／Ｏパケットをイーサネットネットワーク２に送信する（ステップＢ３）。
図１５は、ホストがＳＲ−ＩＯＶ対応Ｉ／Ｏ４が発行したＩ／Ｏパケットを処理する動作を説明する流れ図である。
図１５において、上流ＰＣＩエクスプレスイーサネットブリッジ１４ａは、Ｉ／Ｏパケットがカプセル化されたイーサネットフレームを受信し、Ｉ／Ｏパケットをデカプセル化し、ブリッジ１２に送信する（ステップＢ１１）。そして、ブリッジ１２は、Ｉ／Ｏパケットを受信し、ＣＰＵ１１への割り込みや、メモリ１３へのＤＭＡ処理など、Ｉ／Ｏパケットで指定された処理を行う（ステップＢ１２）。
なお、図１２から図１５で説明した手順は、プログラムを用いて実現させてもよい。
以上説明したように、本実施形態によれば、ホストとＳＲ−ＩＯＶ対応Ｉ／Ｏとの間で、イーサネットでカプセル化されたＰＣＩエクスプレスのＩ／Ｏパケットを送受信するネットワークシステムにおいて、ホストとＳＲ−ＩＯＶ対応Ｉ／Ｏとの間の複数の通信路を、柔軟に制御することができる。
その理由は、同一のＳＲ−ＩＯＶ対応Ｉ／Ｏに複数の異なるＶＦを割り当て、ホストのデバイスツリー上では同一のＳＲ−ＩＯＶ対応Ｉ／Ｏが異なるバスにそれぞれ接続されているように制御しているからである。そして、このようにＶＦを制御することで、仲介ドライバが、同一のＳＲ−ＩＯＶ対応Ｉ／Ｏに接続された複数のＶＦを、ＶＦの設定を変更することなく制御できるからである。
第２の実施形態の第１の変形例として、仲介Ｉ／Ｏデバイスドライバ６２は、２つのＩ／Ｏデバイスを、一方を運用系、他方を予備系として動作させてもよい。この場合、仲介Ｉ／Ｏデバイスドライバ６２は、運用系のＩ／Ｏデバイスに対応する上流ＰＣＩエクスプレス−イーサネットブリッジや、ブリッジが接続するケーブルやバスに障害が発生した場合、予備系のＩ／Ｏデバイスに使用を切り替えるように動作させてもよい。
例えば、図１において、上流ＰＣＩエクスプレス−イーサネットブリッジ１４ａを経由してホスト１とＶＦ４１ａとが接続される系が運用系であり、上流ＰＣＩエクスプレス−イーサネットブリッジ１４ｂを経由してホスト１とＶＦ４１ｂとが接続される系が予備系であるとする。この場合、運用系として使用しているＶＦ４１ａの経路上で障害が発生した場合に、仲介Ｉ／Ｏデバイスドライバ６２は、パケットの伝送路をＶＦ４１ｂに切り替えるように制御することができる。仲介ドライバ６２から見ると、ＶＦ４１ａとＶＦ４１ｂとは同種類の個別のＳＲ−ＩＯＶ対応Ｉ／Ｏに接続されているように制御されている。このため、ＶＦ４１ａからＶＦ４１ｂへの経路の切り替えの際には、ホスト１、下流ＰＣＩエクスプレス−イーサネットブリッジ３及びＳＲ−ＩＯＶ対応Ｉ／Ｏ４において、ハードウエアの起動を行う必要がない。さらに、ＶＦの接続先アドレスの変更、あるいはアドレス変換テーブルの書き換えといった処理を行う必要もない。
その結果、第１の変形例には、第２の実施形態で説明した効果に加えて、さらに、冗長構成を備えたパケットの伝送路の系切り替えを高速に行うことができるという効果がある。
第２の実施形態の別の第２の変形例として、仲介Ｉ／Ｏデバイスドライバ６２は、２つのＩ／Ｏデバイスを同時に運用系として動作させてもよい。この場合、仲介Ｉ／Ｏデバイスドライバ６２の機能により、複数のＩ／Ｏデバイスの間でＩ／Ｏ命令をロードバランスさせることも可能である。
例えば、図１において、仲介Ｉ／Ｏデバイスドライバ６２は、ホスト１から上流ＰＣＩエクスプレス−イーサネットブリッジ１４ａを経由してＶＦ４１ａに接続する経路と、ホスト１から上流ＰＣＩエクスプレス−イーサネットブリッジ１４ｂを経由してＶＦ４１ｂに接続する経路とを同時に使用してもよい。そして、伝送路の状況により、それぞれのＶＦに割り当てる伝送量を変化させ、ロードバランシング（負荷分散）を行なってもよい。
第１の変形例と同様に、仲介ドライバ６２から見ると、経路の異なるＶＦ４１ａとＶＦ４１ｂとは、同種類の個別のＳＲ−ＩＯＶ対応Ｉ／Ｏに接続されているように制御されている。このため、ＶＦ４１ａとＶＦ４１ｂとの間のロードバランシングの際にも、ホスト１、下流ＰＣＩエクスプレス−イーサネットブリッジ３及びＳＲ−ＩＯＶ対応Ｉ／Ｏ４において、ハードウエアの再起動を行う必要がない。さらに、ＶＦの接続先アドレスの変更、あるいはアドレス変換テーブルの書き換えといった処理を行う必要もない。
さらに、複数のＩ／Ｏデバイスを同時に運用系として用いる構成においては、一部の上流ＰＣＩエクスプレス−イーサネットブリッジのデータ転送能力が低下したような場合でも、ＳＲ−ＩＯＶ対応Ｉ／Ｏ４に対するデータ転送能力を維持することができる。これは、残余の上流ＰＣＩエクスプレス−イーサネットブリッジに対応するＩ／Ｏデバイスを利用する経路のデータ転送量を増加させることによって実現することができる
その結果、第２の実施形態の第２の変形例には、第２の実施形態で説明した効果に加えて、さらに、複数のＶＦの間でロードバランシングを容易に行うことができるという効果がある。
なお、第２の実施形態ではホスト１とＳＲ−ＩＯＶ対応Ｉ／Ｏ４とがそれぞれ１台である構成を示した。しかし、本発明が適用可能な実施形態の構成はこれに限定されない。例えば、複数台のホストと１台のＳＲ−ＩＯＶ対応Ｉ／Ｏ４による構成も可能である。この場合には、複数のホストをホスト１ａ、２ａとすると、ホスト１ａにＶＦ４１ａとＶＦ４１ｂを割り当て、ホスト１ｂにはさらに異なるＶＦであるＶＦ４１ｃとＶＦ４１ｄとを割り当ててもよい。
また、１台のホスト１に対し、複数台のＳＲ−ＩＯＶ対応Ｉ／Ｏ４が接続される構成も可能である。この場合、各ＳＲ−ＩＯＶ対応Ｉ／Ｏ４はそれぞれ個別の下流ＰＣＩエクスプレスイーサネットブリッジ３を介してイーサネット２に接続させる。上流ＰＣＩエクスプレスイーサネットブリッジ１４ａと上流ＰＣＩエクスプレスイーサネットブリッジ１４ｂとは、ＳＲ−ＩＯＶ対応Ｉ／Ｏ４と１対１に対応した下流ＰＣＩエクスプレスイーサネットブリッジ３に接続する。そして、各上流ＰＣＩエクスプレスイーサネットブリッジは、各ＳＲ−ＩＯＶ対応Ｉ／Ｏが含むいずれか１つの異なるＶＦに対するＩ／Ｏバスの経路を提供する。
また、ホスト１及びＳＲ−ＩＯＶ対応Ｉ／Ｏ４がいずれも複数台で構成されるシステムは、上記のホスト１だけが複数台の場合と、ＳＲ−ＩＯＶ対応Ｉ／Ｏ４だけが複数台の場合との組み合わせで実現できる。
また、第２の実施形態では、ホスト１に上流ＰＣＩエクスプレスイーサネットブリッジを２台接続する構成を用いて構成及び動作を説明した。しかし、上流ＰＣＩエクスプレスイーサネットブリッジの数量は２台以上であれば数に制限がない。この場合、ホストが接続する上流ＰＣＩエクスプレスイーサネットブリッジの数量に相当するＶＦが、ＳＲ−ＩＯＶ対応Ｉ／Ｏ４からホスト１に割り当てられる。このように、ＶＦの数は２個に限定されるものではない。
さらに、第２の実施形態ではＩ／ＯバスとしてＰＣＩエクスプレス、ホストとＩ／Ｏを接続するネットワーク手段としてイーサネットネットワークを例として説明した。しかし、Ｉ／Ｏバスの種類及びネットワーク手段はこれらに限定されるものではない。本発明は、これらのＩ／Ｏバスやネットワーク手段と同様の機能を提供する他のプロトコルを用いた構成にも適用することができる。
以上、実施形態および実施例を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
この出願は、２０１０年１月２０日に出願された日本出願特願２０１０−００９９９１を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【図１】
2011090145.tif 000003
【図２】
2011090145.tif 000004
【図３】
2011090145.tif 000005
【図４】
2011090145.tif 000006
【図５】
2011090145.tif 000007
【図６】
2011090145.tif 000008
【図７】
2011090145.tif 000009
【図８】
2011090145.tif 000010
【図９】
2011090145.tif 000011
【図１０】
2011090145.tif 000012
【図１１】
2011090145.tif 000013
【図１２】
2011090145.tif 000014
【図１３】
2011090145.tif 000015
【図１４】
2011090145.tif 000016
【図１５】
2011090145.tif 000017
【図１６】
2011090145.tif 000018
【図１７】
2011090145.tif 000019
【図１８】
2011090145.tif 000020
【国際調査報告】
2011090145.tif 000021
2011090145.tif 000022