(57)【特許請求の範囲】
【請求項１】
複数のホストに一対一に接続される複数の上流ＰＣＩエクスプレス−ネットワークブリッジと、
Ｉ／Ｏリソースに接続される単一の下流ＰＣＩエクスプレス−ネットワークブリッジと、
前記上流ＰＣＩエクスプレス−ネットワークブリッジと前記下流ＰＣＩエクスプレス−ネットワークブリッジとの間に配置され、前記複数のホストと前記Ｉ／Ｏリソースとの間を伝送するネットワークパケットに記載されたネットワークアドレスをスワップする接続ブリッジと
を具備し、
前記接続ブリッジは、
前記上流ＰＣＩエクスプレス−ネットワークブリッジが送信したネットワークパケットの送信元アドレスを、接続を仲介するブリッジのネットワークアドレスにスワップして下流ＰＣＩエクスプレス−ネットワークブリッジに送信し、
前記下流ＰＣＩエクスプレス−ネットワークブリッジが送信したネットワークパケットの送信先アドレスを、前記接続を仲介するブリッジのネットワークアドレスから前記上流ＰＣＩエクスプレス−ネットワークブリッジにスワップして前記上流ＰＣＩエクスプレス−ネットワークブリッジに送信する
Ｉ／Ｏバスシステム。
【請求項２】
請求項１に記載のＩ／Ｏバスシステムにおいて、
前記接続ブリッジは、
前記Ｉ／Ｏリソースを、あらかじめコンフィグレーションし、前記ホストが行うコンフィグレーションに対し前記Ｉ／Ｏリソースを、ファンクションを単位としてマッピングすることを特徴とする
Ｉ／Ｏバスシステム。
【請求項３】
請求項２に記載のＩ／Ｏバスシステムにおいて、
前記接続ブリッジは、
前記Ｉ／Ｏリソースをあらかじめコンフィグレーションするコンフィグレーション手段と、
前記ホストが前記Ｉ／Ｏリソースに与えるコンフィグレーション情報を記憶するコンフィグレーション情報記憶手段と、
前記Ｉ／Ｏリソースのコンフィグレーション情報と、前記ホストが前記Ｉ／Ｏリソースに与えるコンフィグレーション情報とのマッピング情報を記憶するマッピング情報記憶手段と、
前記マッピング情報を参照して前記ホストと前記Ｉ／Ｏリソースの間で送受信するＩ／Ｏパケットのヘッダに記載されたアドレスをスワップするスワップ手段と
を備えたことを特徴とする
Ｉ／Ｏバスシステム。
【請求項４】
請求項３に記載のＩ／Ｏバスシステムにおいて、さらに、
前記Ｉ／Ｏリソースのファンクションが割り当てられたホストを記憶するファンクション割り当て記憶手段を備え、
前記上流ＰＣＩエクスプレス−ネットワークブリッジは、前記ホストをネットワークに接続し、
前記下流ＰＣＩエクスプレス−ネットワークブリッジは、前記Ｉ／Ｏリソースをネットワークに接続し、
前記コンフィグレーション手段は、前記Ｉ／Ｏリソースと前記下流ＰＣＩエクスプレス−ネットワークブリッジとをあらかじめコンフィグレーションし、
前記スワップ手段は、
前記ファンクション割り当て記憶手段を参照してＩ／Ｏパケットをカプセル化したネットワークパケットのネットワークアドレスをスワップし、
前記Ｉ／Ｏリソースのコンフィグレーション情報と、前記ホストが前記Ｉ／Ｏリソースに与えるコンフィグレーション情報とのマッピング情報を参照してネットワークパケットにカプセル化されたＩ／Ｏパケットのアドレスをスワップすることを特徴とする
Ｉ／Ｏバスシステム。
【請求項５】
請求項４に記載のＩ／Ｏバスシステムにおいて、
前記スワップ手段は、
前記上流ＰＣＩエクスプレス−ネットワークブリッジが送信したネットワークパケットの送信元アドレスを、前記スワップ手段のネットワークアドレスにスワップし、
前記下流ＰＣＩエクスプレス−ネットワークブリッジが送信したネットワークパケットの送信先アドレスを、前記スワップ手段のネットワークアドレスから前記上流ＰＣＩエクスプレス−ネットワークブリッジのネットワークアドレスにスワップすることを特徴とする
Ｉ／Ｏバスシステム。
【請求項６】
請求項５に記載のＩ／Ｏバスシステムにおいて、
前記ホストに割り当てる前記Ｉ／Ｏリソースのファンクションは、制御パケットにより変更できることを特徴とする
Ｉ／Ｏバスシステム。
【請求項７】
請求項６に記載のＩ／Ｏバスシステムにおいて、
前記Ｉ／Ｏパケットのアドレスのスワップは、前記Ｉ／Ｏパケットに記載されたメモリ空間とＩＤ番号とを対象とすることを特徴とする
Ｉ／Ｏバスシステム。
【請求項８】
ホストを上流ＰＣＩエクスプレス−ネットワークブリッジを用いてネットワークに接続し、
Ｉ／Ｏリソースを下流ＰＣＩエクスプレス−ネットワークブリッジを用いてネットワークに接続し、
Ｉ／Ｏリソースと前記下流ＰＣＩエクスプレス−ネットワークブリッジをあらかじめコンフィグレーションし、
ホストがＩ／Ｏリソースに与えるコンフィグレーション情報を記憶し、
Ｉ／Ｏリソースのファンクションが割り当てられたホストを記憶し、
Ｉ／Ｏリソースのコンフィグレーション情報と前記ホストがＩ／Ｏリソースに与えるコンフィグレーション情報のマッピング情報を記憶し、
前記記憶したＩ／Ｏリソースのファンクションが割り当てられたホストに関する情報を参照してＩ／Ｏパケットをカプセル化したネットワークパケットのネットワークアドレスをスワップし、前記記憶したコンフィグレーション情報のマッピング情報を参照してネットワークパケットにカプセル化されたＩ／Ｏパケットのアドレスをスワップし、
前記ネットワークアドレスのスワップは、前記上流ＰＣＩエクスプレス−ネットワークブリッジが送信したネットワークパケットの送信元アドレスを、接続を仲介するブリッジのネットワークアドレスにスワップし、前記下流ＰＣＩエクスプレス−ネットワークブリッジが送信したネットワークパケットの送信先アドレスを、前記接続を仲介するブリッジのネットワークアドレスから前記上流ＰＣＩエクスプレス−ネットワークブリッジのネットワークアドレスにスワップすることを特徴とする
Ｉ／Ｏバスシステム制御方法。
【請求項９】
請求項８に記載のＩ／Ｏバスシステム制御方法において、
ホストに割り当てるＩ／Ｏリソースのファンクションを、制御パケットにより変更することを特徴とする
Ｉ／Ｏバスシステム制御方法。
【請求項１０】
請求項９に記載のＩ／Ｏバスシステム制御方法において、
前記Ｉ／Ｏパケットのアドレスのスワップは、Ｉ／Ｏパケットに記載されたメモリとＩＤ番号を対象とすることを特徴とする
Ｉ／Ｏバスシステム制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はＩ／Ｏバスに関し、特にＩ／Ｏバスシステム、Ｉ／Ｏバスシステム制御方法、およびＩ／Ｏバスシステム制御用プログラム記録媒体に関する。
【背景技術】
【０００２】
現在広く普及している情報処理装置の多くに、Ｉ／Ｏバス（例えば、ＰＣＩバス）が備えられている。Ｉ／Ｏバスにおけるデータ処理の高速化や、扱われるデータの大容量化などに伴って、従来のＩ／Ｏバス規格に変わる新たなＩ／Ｏバス規格に関する技術が提唱されてきた。例えば、特開２００７−２１９８７３号公報に記載されているような、その新たなＩ／Ｏバス規格に従って設計されたＩ／Ｏバスシステムに関する技術が知られている。【０００３】
図１は、その特開２００７−２１９８７３号公報に記載されているＩ／Ｏバスシステムの構成を示すブロック図である。そのＩ／Ｏバスシステムは、ホスト１０１と、ＰＣＩエクスプレススイッチ１０５と、Ｉ／Ｏ１０３とを含んでいる。【０００４】
ホスト１０１は、ＣＰＵ１１１と、メモリ１１３と、ルートコンプレックス１１２とを含んでいる。ルートコンプレックス１１２は、ＣＰＵ１１１と、メモリ１１３と、ＰＣＩエクスプレススイッチ１０５とを相互に接続している。Ｉ／Ｏ１０３は、ホスト１０１のいずれかに、その使用権が割り当てられる。また、Ｉ／Ｏ１０３のホスト１０１への割り当ては変更可能である。【０００５】
ＰＣＩエクスプレススイッチ１０５は、上流ＰＣＩエクスプレス−ネットワークブリッジ１２１と、ネットワークスイッチ１２２と、下流ＰＣＩエクスプレス−ネットワークブリッジ１２５と、システムマネージャ１５１とを含んでいる。上流ＰＣＩエクスプレス−ネットワークブリッジ１２１は、ホスト１０１側でＰＣＩエクスプレスバスとネットワークとをブリッジする。ネットワークスイッチ１２２は、ネットワークパケットを転送する。下流ＰＣＩエクスプレス−ネットワークブリッジ１２５は、Ｉ／Ｏ１０３側でネットワークとＰＣＩエクスプレスバスをブリッジする。システムマネージャ１５１は、上流ＰＣＩエクスプレス−ネットワークブリッジ１２１と下流ＰＣＩエクスプレス−ネットワークブリッジ１２５との接続を制御し、Ｉ／Ｏ１０３のホスト１０１への割り当てを設定する。【０００６】
また、上流ＰＣＩエクスプレス−ネットワークブリッジ１２１は、複数の下流ＰＣＩエクスプレス−ネットワークブリッジ１２５に接続されている。そして、上流ＰＣＩエクスプレス−ネットワークブリッジ１２１は、ルートコンプレックス１１２から、Ｉ／Ｏ１０３あてのＩ／Ｏパケットを受信し、その受信したＩ／Ｏパケットをネットワークパケットにカプセル化してネットワークスイッチ１２２に転送する。このとき、上流ＰＣＩエクスプレス−ネットワークブリッジ１２１は、そのカプセル化したパケットのあて先に、元のＩ／Ｏパケットのあて先であるＩ／Ｏ１０３に接続されている下流ＰＣＩエクスプレス−ネットワークブリッジ１２５のネットワークアドレスを記載する。【０００７】
また、上流ＰＣＩエクスプレス−ネットワークブリッジ１２１は、ネットワークスイッチ１２２から、ホスト１０１あてのＩ／Ｏパケットがカプセル化されたネットワークパケットを受信する。上流ＰＣＩエクスプレス−ネットワークブリッジ１２１は、受信したネットワークパケットをデカプセル化し、ルートコンプレックス１１２に送信する。【０００８】
下流ＰＣＩエクスプレス−ネットワークブリッジ１２５は、１つの上流ＰＣＩエクスプレス−ネットワークブリッジ１２１に接続されている。下流ＰＣＩエクスプレス−ネットワークブリッジ１２５は、Ｉ／Ｏ１０３から接続する上流ＰＣＩエクスプレス−ネットワークブリッジ１２１に対応するホスト１０１あてのＩ／Ｏパケットを受信し、受信したＩ／Ｏパケットをネットワークパケットにカプセル化し、カプセル化したパケットのあて先に、Ｉ／Ｏパケットのあて先ホスト１０１が接続する上流ＰＣＩエクスプレス−ネットワークブリッジ１２１のネットワークアドレスを記載し、ネットワークスイッチ１２２に転送する。また、ネットワークスイッチ１２２からＩ／Ｏ１０３あてのＩ／Ｏパケットがカプセル化されたネットワークパケットを受信し、Ｉ／Ｏパケットをデカプセル化し、Ｉ／Ｏ１０３に送信する。【０００９】
図２はホスト１０１−１のアドレス空間１１５−１を示す図である。ここではＩ／Ｏ１０３−１〜Ｉ／Ｏ１０３−Ｍが全てホスト１０１−１に割り当てられている場合を説明する。ホスト１０１のアドレス空間１１５は、バス番号、デバイス番号、ファンクション番号の３つの番号を組とするＩＤ番号の空間であるＩＤ番号空間１１５１と、２のべき乗の容量を持つ物理メモリ空間１１５２とを含む。ホスト１０１が使用するＩ／Ｏ１０３のアドレスは、ＩＤ番号空間１１５１と、物理メモリ空間１１５２とにマップされる。ここでは、Ｉ／Ｏ１０３−１〜Ｉ／Ｏ１０３−Ｍが、それぞれＩＤ番号空間１１５１−１のＩ／Ｏ１０３−１〜Ｉ／Ｏ１０３−Ｍのマップ１５１１−１〜マップ１５１１−Ｍと、物理メモリ空間１１５２−１のＩ／Ｏ１０３−１〜Ｉ／Ｏ１０３−Ｍのマップ１５２１−１〜マップ１５２１−Ｍとにマップされている。【００１０】
このような構成を有する従来のＩ／Ｏバスシステムは次のように動作する。システムマネージャ１５１は、下流ＰＣＩエクスプレス−ネットワークブリッジ１２５がどの上流ＰＣＩエクスプレス−ネットワークブリッジ１２１と接続するか、制御パケットを下流ＰＣＩエクスプレス−ネットワークブリッジ１２５に送信することで制御する。Ｉ／Ｏ１０３は、下流ＰＣＩエクスプレス−ネットワークブリッジ１２５が接続する上流ＰＣＩエクスプレス−ネットワークブリッジ１２１と接続したホスト１０１に割り当てられる。【００１１】
上流ＰＣＩエクスプレス−ネットワークブリッジ１２１と下流ＰＣＩエクスプレス−ネットワークブリッジ１２５とは、ホスト１０１と、ホスト１０１に割り当てられたＩ／Ｏ１０３との間で送受信されるＩ／Ｏパケットをネットワークパケットにカプセル化し、上流ＰＣＩエクスプレス−ネットワークブリッジ１２１と下流ＰＣＩエクスプレス−ネットワークブリッジ１２５との間をトンネリングする。【００１２】
ホスト１０１は、上流ＰＣＩエクスプレス−ネットワークブリッジ１２１が標準に準拠したＰＣＩエクスプレススイッチ内部の上流ＰＣＩ−ＰＣＩブリッジであり、下流ＰＣＩエクスプレス−ネットワークブリッジ１２５がＰＣＩエクスプレススイッチ内部の下流ＰＣＩ−ＰＣＩブリッジであると認識し、それにより、上流ＰＣＩエクスプレス−ネットワークブリッジ２５と、下流ＰＣＩエクスプレス−ネットワークブリッジ２１との間の領域が、標準に準拠したＰＣＩエクスプレススイッチであると認識する。このため、従来のＩ／Ｏバスシステムでは、ホスト１０１に特別なソフトウェアを必要とすることなく、ホスト１０１に対するＩ／Ｏ１０３の割り当てを自由に変更できる。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開２００７−２１９８７３号公報
【発明の概要】
【００１４】
関連するＩ／Ｏバスシステムは、下流ＰＣＩエクスプレス−ネットワークブリッジが１つの上流ＰＣＩエクスプレス−ネットワークブリッジと接続し、Ｉ／Ｏパケットのトンネリングを行うことを想定して設計されている。また、Ｉ／Ｏリソースが１つのホストに占有されることを想定して設計されている。そのため、Ｉ／Ｏリソースが同時に２つ以上のホストから共有できないことがある。
【００１５】
さらに、関連するＩ／Ｏバスシステムは、下流ＰＣＩエクスプレス−ネットワークブリッジが同時に２つ以上の上流ＰＣＩエクスプレス−ネットワークブリッジと接続してＩ／Ｏパケットのトンネリングを行えないことがある。
【００１６】
本発明の目的は、Ｉ／Ｏリソースが同時に２つ以上のホストから共有できるＩ／Ｏバスシステムを提供することである。
【００１７】
複数のホストに一対一に接続される複数の上流ＰＣＩエクスプレス−ネットワークブリッジと、Ｉ／Ｏリソースに接続される単一の下流ＰＣＩエクスプレス−ネットワークブリッジと、前記上流ＰＣＩエクスプレス−ネットワークブリッジと前記下流ＰＣＩエクスプレス−ネットワークブリッジとの間に配置され、前記複数のホストと前記Ｉ／Ｏリソースとの間を伝送するネットワークパケットに記載されたネットワークアドレスをスワップする接続ブリッジとを具備するＩ／Ｏバスシステムを構築する。
【００１８】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば、Ｉ／Ｏリソースが同時に２つ以上のホストから共有できるＩ／Ｏバスシステムを構成することができる効果がある。
【００１９】
また、本発明は、下流ＰＣＩエクスプレス−ネットワークブリッジが同時に２つ以上の上流ＰＣＩエクスプレス−ネットワークブリッジと接続してＩ／Ｏパケットのトンネリングを行えるＩ／Ｏバスシステムを構成することができる。
【００２０】
本発明の効果を別の表現で述べるなら、その効果は、Ｉ／Ｏリソースが同時に２つ以上のホストから共有できることである。その理由は、Ｉ／Ｏパケットをカプセル化したネットワークパケットのヘッダに記載されたアドレスのスワップを行うことで、１つの下流ＰＣＩエクスプレス−ネットワークブリッジが複数の上流ＰＣＩエクスプレス−ネットワークブリッジと接続できるようにし、また、Ｉ／Ｏリソースをあらかじめコンフィグレーションし、各ホストのアドレス空間にコンフィグレーションしたＩ／Ｏリソースを、ファンクションを単位としてマッピングし、そのマッピング情報を用いてネットワークパケットにカプセル化されたＩ／Ｏパケットに記載されたヘッダ情報のスワップを行うことにより、単一のＩ／Ｏリソースが保持するファンクションを、それぞれ任意のホストに割り当てるためである。
【００２１】
また、本発明の効果は、下流ＰＣＩエクスプレス−ネットワークブリッジが同時に２つ以上の上流ＰＣＩエクスプレス−ネットワークブリッジと接続してＩ／Ｏパケットのトンネリングを行えることである。
【図面の簡単な説明】
【００２２】
上記発明の目的、効果、特徴は、添付される図面と連携して実施の形態の記述から、より明らかになる。【００２３】
【図１】図１は、関連するＩ／Ｏバスシステムの構成を示すブロック図である。
【図２】図２は、ホストのアドレス空間を示す図である。
【図３】図３は、本発明の第１実施形態のＩ／Ｏバスシステムの構成を例示するブロック図である。
【図４】図４は、ホスト１とＩ／Ｏリソースのアドレス空間の関連性を示す図である。
【図５Ａ】図５Ａは、ターゲットホスト検索テーブルの構成を例示するブロック図である。
【図５Ｂ】図５Ｂは、ホストマッピングテーブルの構成を例示するブロック図である。
【図６】図６は、下流ＰＣＩエクスプレスネットワークブリッジとＩ／Ｏリソースとをコンフィグレーションする際の動作を例示する図である。
【図７】図７は、ホスト１がＩ／Ｏリソースにコンフィグレーションパケット以外のＩ／Ｏパケットを送信する際の動作を例示する図である。
【図８】図８は、Ｉ／ＯリソースからホストにＩ／Ｏパケットを送信する際の動作を例示する図である。
【図９】図９は、本発明の第２の実施の形態の構成を示すブロック図である。
【発明を実施するための形態】
【００２４】
以下、本発明の実施の形態を図面に基づいて説明する。なお、実施の形態を説明するための図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。また、以下の実施形態においては、同様の構成を備える複数の要素の各々を区別するなどの場合には、参照符号の後ろに“−１”や“−２”などの枝番号を付加するものとする。
【００２５】
次に、本発明を実施するための最良の形態について図面を参照して詳細に説明する。図３は、本発明の第１実施形態のＩ／Ｏバスシステム１０の構成を例示するブロック図である。本発明の第１実施形態のＩ／Ｏバスシステム１０は、複数のホスト１と、ＰＣＩエクスプレススイッチ２と、Ｉ／Ｏリソース３とを含んでいる。複数のホスト１の各々は、ＣＰＵ１１と、ルートコンプレックス１２と、メモリ１３とを含んでいる。
【００２６】
図３を参照すると、そのＩ／Ｏリソース３は、複数のファンクション３１（第１ファンクション３１−１〜第Ｎファンクション３１−Ｎ）を含み、ホスト１から同時に共有される。Ｉ／Ｏリソース３は、複数のホスト１の各々に、ファンクション３１を個別に提供することで、複数のホスト１によるＩ／Ｏリソース３の同時共有を実現する。本実施形態では、第１ファンクション３１−１〜第Ｎファンクション３１−Ｎのそれぞれは、第１ホスト１−１〜第Ｎホスト１−Ｎに一対一で割り当てられている。ここで、複数のファンクション３１を保持するＩ／Ｏリソース３としては、マルチファンクションＩ／Ｏや、単一ホスト内でのソフトウェア仮想化に対応したＩ／Ｏ（Ｉ／Ｏバーチャライゼーション対応のＩ／Ｏ）などが例示される。
【００２７】
ＰＣＩエクスプレススイッチ２は、ホスト１に接続する上流ＰＣＩエクスプレスネットワークブリッジ２１と、ネットワークスイッチ２２と、システムマネージャ２３と、マルチルート接続ブリッジ２４と、下流ＰＣＩエクスプレスネットワークブリッジ２５とを含んでいる。マルチルート接続ブリッジ２４は、下流ＰＣＩエクスプレスネットワークブリッジ２５を複数の上流ＰＣＩエクスプレスネットワークブリッジ２１と接続させることによって、Ｉ／Ｏリソース３を、複数のホスト１の間で同時に共有させる。
【００２８】
特定の上流ＰＣＩエクスプレスネットワークブリッジ２１は、他の上流ＰＣＩエクスプレスネットワークブリッジ２１が存在せず、下流ＰＣＩエクスプレスネットワークブリッジ２５と一対一で接続していることを想定して動作する。例えば、第１上流ＰＣＩエクスプレスネットワークブリッジ２１−１は、第２上流ＰＣＩエクスプレスネットワークブリッジ２１−２〜第Ｎ上流ＰＣＩエクスプレスネットワークブリッジ２１−Ｎの挙動に依存することなく、独立に動作する。
【００２９】
下流ＰＣＩエクスプレスネットワークブリッジ２５は、設計上では、１つの上流ＰＣＩエクスプレスネットワークブリッジ２１と接続することのみ可能である。そのため、本実施形態における下流ＰＣＩエクスプレスネットワークブリッジ２５は、本来上流ＰＣＩエクスプレスネットワークブリッジ２１と行う接続を、マルチルート接続ブリッジ２４に対して行う。
【００３０】
システムマネージャ２３は、マルチルート接続ブリッジ２４に制御パケットを送信し、下流ＰＣＩエクスプレスネットワークブリッジ２５に接続される複数の上流ＰＣＩエクスプレスネットワークブリッジ２１を制御し、Ｉ／Ｏリソース３の各ファンクション３１を割り当てるホスト１を指定する。
【００３１】
マルチルート接続ブリッジ２４は、パケット転送部２４１と、Ｉ／Ｏ構成部２４２と、Ｉ／Ｏ情報記憶部２４３と、下流ＰＣＩエクスプレスネットワークブリッジ擬似レジスタ２４４と、Ｉ／Ｏファンクション擬似レジスタ２４５とを含んでいる。
【００３２】
パケット転送部２４１は、Ｉ／Ｏパケットがカプセル化されたネットワークパケットのネットワークパケットヘッダと、Ｉ／Ｏパケットヘッダをスワップして転送する。Ｉ／Ｏ構成部２４２は、Ｉ／Ｏリソース３のコンフィグレーションを行う。
【００３３】
Ｉ／Ｏ情報記憶部２４３は、パケット転送部２４１がパケットに記載された情報をスワップする際に必要となる情報を保持する。下流ＰＣＩエクスプレスネットワークブリッジ擬似レジスタ２４４は、下流ＰＣＩエクスプレスネットワークブリッジ２５の擬似レジスタ機能を提供する。Ｉ／Ｏファンクション擬似レジスタ２４５は、各ファンクション３１の、擬似レジスタ機能を提供する。
【００３４】
本実施形態において、マルチルート接続ブリッジ２４は、複数の下流ＰＣＩエクスプレスネットワークブリッジ擬似レジスタ２４４（第１下流ＰＣＩエクスプレスネットワークブリッジ擬似レジスタ２４４−１〜第Ｎ下流ＰＣＩエクスプレスネットワークブリッジ擬似レジスタ２４４−Ｎ）を含むものとする。また、マルチルート接続ブリッジ２４は、複数のＩ／Ｏファンクション擬似レジスタ２４５（第１Ｉ／Ｏファンクション擬似レジスタ２４５−１〜第ＮＩ／Ｏファンクション擬似レジスタ２４５−Ｎ）を含むものとする。
【００３５】
第１下流ＰＣＩエクスプレスネットワークブリッジ擬似レジスタ２４４−１〜第Ｎ下流ＰＣＩエクスプレスネットワークブリッジ擬似レジスタ２４４−Ｎと第１Ｉ／Ｏファンクション擬似レジスタ２４５−１〜第ＮＩ／Ｏファンクション擬似レジスタ２４５−Ｎとは、それぞれ第１ホスト１−１〜第Ｎホスト１−Ｎからのアクセスを受け付ける。
【００３６】
Ｉ／Ｏ構成部２４２は、Ｉ／Ｏリソース３がホスト１から使用される前に下流ＰＣＩエクスプレスネットワークブリッジ２５とＩ／Ｏリソース３とのコンフィグレーションを行う。Ｉ／Ｏ構成部２４２は、ネットワークパケットにカプセル化したコンフィグレーションパケットを下流ＰＣＩエクスプレスネットワークブリッジ２５と、Ｉ／Ｏリソース３に送信し、下流ＰＣＩエクスプレスネットワークブリッジ２５とＩ／Ｏリソース３とのコンフィグレーションを行う。このときネットワークパケットのあて先は下流ＰＣＩエクスプレスネットワークブリッジ２５に設定されている。また、Ｉ／Ｏ構成部２４２は、下流ＰＣＩエクスプレスネットワークブリッジ２５とＩ／Ｏリソース３とのコンフィグレーション情報をＩ／Ｏ情報記憶部２４３に記録する。
【００３７】
図４は、ホスト１とＩ／Ｏリソース３のアドレス空間の関連性を示す図である。Ｉ／Ｏリソース３のＩ／Ｏリソースアドレス空間３２は、ＩＤ番号空間３２１と、物理メモリ空間３２２とを含んでいる。ＩＤ番号空間３２１は、「バス番号、デバイス番号、ファンクション番号」の群を含むＩＤ番号の空間である。
【００３８】
図３に戻り、Ｉ／Ｏ構成部２４２は、Ｉ／Ｏリソース３のＩ／Ｏリソースアドレス空間３２をコンフィグレーションする。ＩＤ番号空間３２１において、後でホスト１に割り当てるためのホスト１のホストマップ３２１１を、また物理メモリ空間３２２においてホスト１のホストマップ３２２１をコンフィグレーションする。ホスト１のホストマップ３２１１−１〜ホストマップ３２１１−Ｎとホスト１のホストマップ３２２１−１〜ホストマップ３２２１−Ｎとは、Ｉ／Ｏリソース３の第１ファンクション３１−１〜第Ｎファンクション３１−Ｎに対応する。
【００３９】
Ｉ／Ｏ構成部２４２は、また、ホスト１が下流ＰＣＩエクスプレスネットワークブリッジ２５と、Ｉ／Ｏリソース３とに発行したコンフィグレーションパケットをパケット転送部２４１から受け取り、コンフィグレーションパケットがライトである場合、下流ＰＣＩエクスプレスネットワークブリッジ２５へのコンフィグレーションは下流ＰＣＩエクスプレスネットワークブリッジ擬似レジスタ２４４に、Ｉ／Ｏリソース３へのコンフィグレーションはＩ／Ｏファンクション擬似レジスタ２４５に記録する。また、コンフィグレーションパケットがリードの場合、パケットが要求する情報を下流ＰＣＩエクスプレスネットワークブリッジ擬似レジスタ２４４か、Ｉ／Ｏファンクション擬似レジスタ２４５の該当する番地から読み込み、パケット転送部２４１を介してホスト１に返信する。
【００４０】
Ｉ／Ｏ情報記憶部２４３は、Ｉ／Ｏ構成部２４２が行った下流ＰＣＩエクスプレスネットワークブリッジ２５と、Ｉ／Ｏリソース３へのコンフィグレーション情報と、ホスト１が下流ＰＣＩエクスプレスネットワークブリッジ擬似レジスタ２４４と、Ｉ／Ｏファンクション擬似レジスタ２４５に書き込んだ情報を保持し、パケット転送部２４１がＩ／Ｏパケットがカプセル化されたネットワークパケットにおいて、ネットワークパケットとＩ／Ｏパケットのヘッダに記載された情報をスワップする際に必要となる情報を提供する。Ｉ／Ｏ情報記憶部２４３は、ターゲットホスト検索テーブル２４３１と、ホストマッピングテーブル２４３２とを保持する。
【００４１】
以下に、ターゲットホスト検索テーブル２４３１について説明を行う。図５Ａは、ターゲットホスト検索テーブル２４３１の構成を例示するブロック図である。ターゲットホスト検索テーブル２４３１は、Ｉ／Ｏリソース３の各ファンクション３１に対し、ファンクション３１が割り当てられているホスト１とそのホスト１が接続する上流ＰＣＩエクスプレスネットワークブリッジ２１のネットワークアドレス（ＨＡ）とを対応させる。第１ファンクション３１−１〜第Ｎファンクション３１−Ｎは、ファンクション番号ＦＩ１Ｉ〜ＦＩＮＩに対応する。
【００４２】
以下に、ホストマッピングテーブル２４３２について説明を行う。図５Ｂは、ホストマッピングテーブル２４３２の構成を例示するブロック図である。ホストマッピングテーブル２４３２は、個別のホスト１毎に用意され、ホスト１が自身のルートコンプレックス１２に与えたＩＤ番号と、ホスト１が割り当てられたＩ／Ｏリソース３のファンクション３１に与えたＩＤ番号と、メモリ空間下限と上限とを、Ｉ／Ｏ構成部２４２がＩ／Ｏリソース３をコンフィグレーションした値に対応させる。ホストマッピングテーブル２４３２は、ＩＤ番号であるバス番号、デバイス番号、ファンクション番号をそれぞれＢ，Ｄ，Ｆで示している。図５Ｂは、ホストマッピングテーブル２４３２が保持するホスト１のホスト側アドレス空間１４と、Ｉ／Ｏリソース３のＩ／Ｏリソースアドレス空間３２のマッピング関係を示している。Ｉ／Ｏリソース３のＩ／Ｏリソースアドレス空間３２において、ＩＤ番号空間３２１と物理メモリ空間３２２とが、ファンクション３１を単位として、ホスト１のホスト側アドレス空間１４のＩＤ番号空間１４１と物理メモリ空間１４２とにマッピングされている。
【００４３】
図３に戻り、下流ＰＣＩエクスプレスネットワークブリッジ擬似レジスタ２４４は、ホスト１が下流ＰＣＩエクスプレスネットワークブリッジ２５へコンフィグレーションライトで与える情報をホスト１毎に保持する。
【００４４】
Ｉ／Ｏファンクション擬似レジスタ２４５は、ホスト１がＩ／Ｏリソース３のファンクション３１へ与えるコンフィグレーション情報を保持する。また、ホスト１がファンクション３１をコンフィグレーションする場合、ファンクション３１に割り当てるメモリ空間の容量を質問するが、Ｉ／Ｏファンクション擬似レジスタ２４５がこの情報を提供する。この情報は、Ｉ／Ｏ構成部２４２がＩ／Ｏリソース３のコンフィグレーションを行う際、取得したＩ／Ｏリソース３に関する情報をＩ／Ｏ情報記録部２４３に記録するが、これをＩ／Ｏファンクション擬似レジスタ２４５に反映したものである。
【００４５】
パケット転送部２４１は、ホスト１がＩ／Ｏリソース３に発行したコンフィグレーションパケット以外のＩ／Ｏパケットがカプセル化されたネットワークパケットをネットワークスイッチ２２から受信し、ホスト１を表すネットワークパケットの送信元アドレスを、マルチルート接続ブリッジ２４のネットワークアドレスにスワップする。また、送信元ホスト１に対応するホストマッピングテーブル２４３２を検索し、Ｉ／Ｏパケットの送信元アドレスをホスト１のホスト側アドレス空間１４におけるルートコンプレックス１２のＩＤ番号から、Ｉ／Ｏリソース３のＩ／Ｏリソースアドレス空間３２におけるルートコンプレックス１２のＩＤ番号にスワップする。
【００４６】
また、Ｉ／Ｏバケットのあて先アドレスがＩＤ番号で表されている場合、Ｉ／Ｏパケットのあて先アドレスをホスト１のホスト側アドレス空間１４におけるファンクション３１のＩＤ番号から、Ｉ／Ｏリソース３のＩ／Ｏリソースアドレス空間３２におけるファンクション３１のＩＤ番号にスワップする。一方、Ｉ／Ｏパケットのあて先アドレスがメモリ空間で表されている場合、Ｉ／Ｏパケットのあて先アドレスを（あて先メモリ−Ｍｅｍ下限ＩｘＲ＋Ｍｅｍ下限ＩｘＩ）にスワップする。ここでｘ＝１〜Ｎで表される、Ｉ／Ｏパケットを送信したホスト１に対応する値である。
【００４７】
パケット転送部２４１はまた、ホスト１が下流ＰＣＩエクスプレスネットワークブリッジ２５とＩ／Ｏリソース３に送信したコンフィグレーションパケットをカプセル化したネットワークパケットをネットワークスイッチ２２から受信し、コンフィグレーションパケットをデカプセル化し、Ｉ／Ｏ構成部２４２に渡す。パケット転送部２４１はまた、Ｉ／Ｏリソース３がホスト１に発行したＩ／Ｏパケットがカプセル化されたネットワークパケットを受信し、ネットワークパケットのあて先アドレスをマルチルート接続ブリッジ２４１のネットワークアドレスから、送信元ファンクション３１が割り当てられたホスト１が接続する上流ＰＣＩエクスプレスネットワークブリッジ２１のネットワークアドレスにスワップする。上流ＰＣＩエクスプレスネットワークブリッジ２１のネットワークアドレスの検索は、Ｉ／Ｏ情報記憶部２４３が保持するターゲットホスト検索テーブル２４３１を用いて、Ｉ／Ｏパケットに記載された送信元ファンクション３１をキーとして検索する。
【００４８】
また、カプセル化されたＩ／Ｏパケットのあて先アドレスと送信元アドレスを、あて先ホスト１に対応するホストマッピングテーブル２４３２を参照してスワップする。スワップするアドレスの対応は、ホスト１がＩ／Ｏリソース３にＩ／Ｏパケットを送信する場合に行うスワップの参照と逆であり、Ｉ／Ｏリソース３のＩ／Ｏリソースアドレス空間３２からホスト１のホスト側アドレス空間１４にスワップする。パケット転送部２４１はまた、Ｉ／Ｏ構成部２４２からホスト１が下流ＰＣＩエクスプレスネットワークブリッジ擬似レジスタ２４４とＩ／Ｏファンクション擬似レジスタ２４５とに送信したコンフィグレーションパケットの応答を受信し、応答パケットのあて先ホスト１が接続する上流ＰＣＩエクスプレスネットワークブリッジ２１のネットワークアドレスを用いて応答パケットをカプセル化し、ホスト１に送信する。パケット転送部２４１はまた、下流ＰＣＩエクスプレスネットワークブリッジ２５が送信するブロードキャスト制御パケットを受信し、ブロードキャスト制御パケットをホスト１の数だけコピーし、それぞれのホストに送信する。このとき、下流ＰＣＩエクスプレスネットワークブリッジ２５が送信したブロードキャスト制御パケットは、下流ＰＣＩエクスプレスネットワークブリッジ２５の接続先として、マルチルート接続ブリッジ２４の情報が記載されているが、パケット転送部２４１は、この接続先情報をホスト１がそれぞれ接続する上流ＰＣＩエクスプレス−ネットワークブリッジに書き換えてブロードキャスト制御パケットのコピーを送信する。
【００４９】
以下に、本発明を実施するための第１の実施の形態の動作について説明を行う。図６は、下流ＰＣＩエクスプレスネットワークブリッジ２５とＩ／Ｏリソース３とをコンフィグレーションする際の動作を例示する図である。
【００５０】
Ｉ／Ｏ構成部２４２は、Ｉ／Ｏリソース３がホスト１から使用される前に、コンフィグレーションパケットを発行し、下流ＰＣＩエクスプレスネットワークブリッジ２５と、Ｉ／Ｏリソース３とをコンフィグレーションする（ステップＳ４０１）。パケット転送部２４１は、Ｉ／Ｏ構成部２４２から渡されたコンフィグレーションパケットを、ネットワークパケットにカプセル化し、下流ＰＣＩエクスプレスネットワークブリッジ２５との間でトンネリングすることにより、コンフィグレーションパケットを下流ＰＣＩエクスプレスネットワークブリッジ２５とＩ／Ｏリソース３とに送信する。Ｉ／Ｏ構成部２４２は、Ｉ／Ｏリソース３に与えたコンフィグレーション情報を、Ｉ／Ｏ情報記憶部２４３が保持するホストマッピングテーブル２４３２に記録する（ステップＳ４０２）。Ｉ／Ｏ情報記憶部２４３に記録されたＩ／Ｏリソース３の各ファンクション３１が要求するメモリ空間の容量は、Ｉ／Ｏファンクション擬似レジスタ２４５に反映される（ステップＳ４０３）。
【００５１】
次に、システムマネージャ２３は、マルチルート接続ブリッジ２４に制御パケットを発行し、Ｉ／Ｏリソース３の第１ファンクション３１−１〜第Ｎファンクション３１−Ｎを、それぞれ第１ホスト１−１〜第Ｎホスト１−Ｎに割り当てる（ステップＳ４０４）。この割り当てにより、Ｉ／Ｏ情報記憶部２４３が保持するターゲットホスト検索テーブル２４３１のホストに関するエントリが記載される。
【００５２】
次に、各ホスト１はそれぞれのコンフィグレーションサイクルを開始する（ステップＳ４０５）。ホスト１が下流ＰＣＩエクスプレスネットワークブリッジ２５に発行するコンフィグレーションパケットは、ホスト１に割り当てられた下流ＰＣＩエクスプレスネットワークブリッジ擬似レジスタ２４４に、またホスト１に割り当てられたＩ／Ｏリソース３が含むファンクション３１に発行するコンフィグレーションパケットは、ファンクション３１に対応するＩ／Ｏファンクション擬似レジスタ２４５へのアクセスとしてＩ／Ｏ構成部２４２が処理する。また、Ｉ／Ｏ情報記憶部２４３のホストマッピングテーブル２４３２のエントリを記載するために必要な情報が、ホストのコンフィグレーションアクセスから抽出され、エントリが形成される（ステップＳ４０６）。
【００５３】
図７は、ホスト１がＩ／Ｏリソース３にコンフィグレーションパケット以外のＩ／Ｏパケットを送信する際の動作を例示する図である。ルートコンプレックス１２は、ＣＰＵ１１上で動作するソフトウェアの命令により、ホスト１に割り当てられたＩ／Ｏリソース３のファンクション３１に対しＩ／Ｏパケットを送信する（ステップＳ５０１）。上流ＰＣＩエクスプレスネットワークブリッジ２１は、ルートコンプレックス１２が発行したＩ／Ｏパケットを受信し、Ｉ／Ｏリソース３が接続する下流ＰＣＩエクスプレスネットワークブリッジ２５のネットワークアドレスを用いてＩ／Ｏパケットをカプセル化し、ネットワークスイッチ２２に送信する（ステップＳ５０２）。ネットワークスイッチ２２は、Ｉ／Ｏパケットがカプセル化されたネットワークパケットをマルチルート接続ブリッジ２４に転送する（ステップＳ５０３）。
【００５４】
パケット転送部２４１は、Ｉ／Ｏパケットがカプセル化されたネットワークパケットを受信し、ホスト１を表すネットワークパケットの送信元アドレスを、マルチルート接続ブリッジ２４のネットワークアドレスにスワップする（ステップＳ５０４）。また、送信ホストに対応するホストマッピングテーブル２４３２を検索し、Ｉ／Ｏパケットの送信元アドレスをホスト１のホスト側アドレス空間１４におけるルートコンプレックス１２のＩＤ番号から、Ｉ／Ｏリソース３のＩ／Ｏリソースアドレス空間３２におけるルートコンプレックス１２のＩＤ番号にスワップする。また、Ｉ／Ｏバケットのあて先アドレスがＩＤ番号で表されている場合、Ｉ／Ｏパケットのあて先アドレスをホスト１のアドレス空間におけるファンクション３１のＩＤ番号から、Ｉ／Ｏリソース３のＩ／Ｏリソースアドレス空間３２におけるファンクション３１のＩＤ番号にスワップする。一方、Ｉ／Ｏパケットのあて先アドレスがメモリ空間で表されている場合、Ｉ／Ｏパケットのあて先アドレスを（あて先メモリ−Ｍｅｍ下限ＩｘＲ＋Ｍｅｍ下限ＩｘＩ）にスワップする。ここでｘ＝１〜Ｎで表される、Ｉ／Ｏパケットを送信したホスト１に対応する値である。次にパケット転送部２４１は、ネットワークパケットを下流ＰＣＩエクスプレスネットワークブリッジ２５に送信する。
【００５５】
下流ＰＣＩエクスプレスネットワークブリッジ２５は、Ｉ／Ｏパケットをデカプセル化し（ステップＳ５０５）、Ｉ／Ｏリソース３に送信する。Ｉ／Ｏリソース３のファンクション３１は、ファンクション３１が割り当てられたホスト１が送信したＩ／Ｏパケットを受信する（ステップＳ５０６）。
【００５６】
図８は、Ｉ／Ｏリソース３からホスト１にＩ／Ｏパケットを送信する際の動作を例示する図である。Ｉ／Ｏリソース３のファンクション３１は、割り当てられたホストにＩ／Ｏパケットを送信する（ステップＳ６０１）。下流ＰＣＩエクスプレスネットワークブリッジ２５は、ファンクション３１が発行したＩ／Ｏパケットを受信し、マルチルート接続ブリッジ２４のネットワークアドレスをあて先アドレスとしてＩ／Ｏパケットをカプセル化し、マルチルート接続ブリッジ２４に送信する（ステップＳ６０２）。
【００５７】
パケット転送部２４１は、Ｉ／Ｏパケットがカプセル化されたネットワークパケットを受信し、マルチルート接続ブリッジ２４を表すネットワークパケットのあて先アドレスを、Ｉ／Ｏパケットのあて先となるホスト１のネットワークアドレスにスワップする（ステップＳ６０３）。あて先となるホスト１のネットワークアドレスは、ターゲットホスト検索テーブル２４３１において、ネットワークパケットにカプセル化されたＩ／Ｏパケットに記載された送信元ファンクション番号をキーとして検索する。また、あて先ホストに対応するホストマッピングテーブル２４３２を検索し、Ｉ／Ｏパケットの送信元アドレスをＩ／Ｏリソース３のＩ／Ｏリソースアドレス空間３２におけるファンクション３１のＩＤ番号から、ホスト１のホスト側アドレス空間１４におけるファンクション３１のＩＤ番号にスワップする。また、Ｉ／Ｏバケットのあて先アドレスがＩＤ番号で表されている場合、Ｉ／Ｏパケットのあて先アドレスをＩ／Ｏリソース３のＩ／Ｏリソースアドレス空間３２におけるルートコンプレックス１２のＩＤ番号から、ホスト１のホスト側アドレス空間１４におけるルートコンプレックス１２のＩＤ番号にスワップする。一方、Ｉ／Ｏパケットのあて先アドレスがメモリ空間で表されている場合、Ｉ／Ｏパケットのあて先アドレスを（あて先メモリ−Ｍｅｍ下限ＩｘＩ＋Ｍｅｍ下限ＩｘＲ）にスワップする。ここでｘ＝１〜Ｎで表される、Ｉ／Ｏパケットのあて先ホスト１に対応する値である。次に、パケット転送部２４１はネットワークパケットをネットワークスイッチ２２に送信する。
【００５８】
ネットワークスイッチ２２は、Ｉ／Ｏパケットがカプセル化されたネットワークパケットを上流ＰＣＩエクスプレスネットワークブリッジ２１に転送する（ステップＳ６０４）。
【００５９】
上流ＰＣＩエクスプレスネットワークブリッジ２１は、Ｉ／Ｏパケットをデカプセル化し（ステップＳ６０５）、ルートコンプレックス１２に送信する。ルートコンプレックス１２は、ホスト１に割り当てられたファンクション３１が発行したＩ／Ｏパケットを受信する（ステップＳ６０６）。
【００６０】
ここで本実施の形態では、ネットワークスイッチ２２が１つの場合を示したが、上流ＰＣＩエクスプレスネットワークブリッジ２１とマルチルート接続ブリッジ２４との間に接続するネットワークスイッチ２２の数に制限はない。また、マルチルート接続ブリッジ２４と下流ＰＣＩエクスプレスネットワークブリッジ２５との間に別のネットワークスイッチ２２を接続しても良い。
【００６１】
また、本実施の形態ではＩ／Ｏリソース３が１つの場合を示したが、複数のホスト１から同時に共有されるＩ／Ｏリソース３の数に制限はない。ネットワークスイッチ２２を用いて複数のＩ／Ｏリソース３を接続しても良い。
【００６２】
また、本実施の形態では、Ｉ／Ｏリソースの第１ファンクション３１−１〜第Ｎファンクション３１−Ｎをそれぞれ第１ホスト１−１〜第Ｎホスト１−Ｎに割り当てる場合を示したが、ファンクション３１のホスト１への割り当て方の組み合わせは自由である。また、複数のファンクション３１が割り当てられるホスト１や、ファンクション３１が割り当てられないホスト１が存在しても良い。Ｉ／Ｏリソース３が保持するファンクション３１の数とホスト１の数は異なっていても良い。
【００６３】
上述したように、第１の実施の形態では、マルチルート接続ブリッジが本来１つの上流ＰＣＩエクスプレス−ネットワークブリッジと接続する下流ＰＣＩエクスプレスネットワークブリッジを、複数の上流ＰＣＩエクスプレス−ネットワークブリッジに接続させ、Ｉ／Ｏリソースの機能を、ファンクションを単位として各ホストに割り当てる。
【００６４】
このため、マルチルート接続ブリッジは、各ホストが送信するネットワークパケットは全てマルチルート接続ブリッジから送られているよう擬似し、また下流ＰＣＩエクスプレス−ネットワークブリッジが送信したネットワークパケットのあて先アドレスをマルチルート接続ブリッジから各ホストのネットワークアドレスにスワップする。一方、マルチルート接続ブリッジは、Ｉ／Ｏリソースを予めコンフィグレーションし、そのコンフィグレーション情報を各ホストがＩ／Ｏリソースに与えるコンフィグレーションに対してマップする。そして、ホストとＩ／Ｏ間で送受信されるＩ／Ｏパケットのヘッダに記載されている情報を、マッピング情報を用いてスワップする。これにより、Ｉ／Ｏ機能を、ファンクションを単位として各ホストに割り当て、複数ホストからＩ／Ｏリソースを同時に共有できる。
【００６５】
次に、本発明を実施するための第２の実施の形態について、図面を参照して説明する。図９は、本発明の第２の実施の形態の構成を示すブロック図である。図９を参照すると、本発明の第２の実施の形態に係るＩ／Ｏバスシステム１０は、図３に示した第１の実施の形態におけるＰＣＩエクスプレススイッチ２が、マルチルート接続ブリッジ４１を含む点で異なっている。
【００６６】
第２実施形態におけるマルチルート接続ブリッジ４１は、Ｉ／Ｏパケットがカプセル化されたネットワークパケットの処理を行うプロセッサ４１１と、パケット処理のプログラムとＩ／Ｏバスシステム１０のコンフィグレーション情報を保持するメモリ４１２とを含む。
【００６７】
メモリ４１２は、第１の実施の形態におけるパケット転送部２４１と、Ｉ／Ｏ構成部２４２との機能をプロセッサ４１１に行わせるマルチルート接続ブリッジプログラム４１２１と、Ｉ／Ｏ情報記憶部２４３と同じ情報を保持するＩ／Ｏ情報記憶部４１２２と、下流ＰＣＩエクスプレスネットワークブリッジ擬似レジスタ２４４と同じ情報を保持する下流ＰＣＩエクスプレス−ネットワークブリッジレジスタ情報記憶部４１２３と、Ｉ／Ｏファンクション擬似レジスタ２４５と同じ情報を保持するＩ／Ｏファンクションレジスタ情報記憶部４１２４とを含む。
【００６８】
マルチルート接続ブリッジプログラム４１２１は、プロセッサ４１１に読み込まれ、プロセッサ４１１に、第１の実施の形態におけるパケット転送部２４１と、Ｉ／Ｏ構成部２４２との機能を行わせる。その際、第１の実施の形態において発生したＩ／Ｏ情報記憶部２４３と、下流ＰＣＩエクスプレスネットワークブリッジ擬似レジスタ２４４と、Ｉ／Ｏファンクション擬似レジスタ２４５に対するアクセスは、メモリ４１２が保持するＩ／Ｏ情報記憶部４１２２と、下流ＰＣＩエクスプレス−ネットワークブリッジレジスタ情報記憶部４１２３と、Ｉ／Ｏファンクションレジスタ情報記憶部４１２４とにおいて対応する番地に対して発生する。
【００６９】
本発明の第２の実施の形態では、メモリが保持するプログラムを用いてプロセッサに第１の実施の形態におけるマルチルート接続ブリッジと同じ機能を行わせる。よって、特別なハードウェアを開発せず、設計したプログラムを汎用プロセッサで動作させることにより、複数ホストからのＩ／Ｏ同時共有を実現できる。
【００７０】
以上、本願発明の実施の形態を具体的に説明した。本願発明は上述の実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。また、本発明は、コンピュータ装置やネットワーク装置、産業用機器やコンシューマ機器において、複数のコンピュータ、あるいはＣＰＵやＣＰＵに類する演算装置を含む情報処理装置の間で、Ｉ／Ｏデバイスを共有するといった用途に適用できる。
【００７１】
上述してきたＩ／Ｏバスシステムは、ネットワークパケットに記載されたネットワークアドレスをスワップし、単一の下流ＰＣＩエクスプレス−ネットワークブリッジと複数の上流ＰＣＩエクスプレス−ネットワークブリッジとを接続することを特徴とする。
【００７２】
換言すると、上述してきたＩ／Ｏバスシステムは、上流ＰＣＩエクスプレス−ネットワークブリッジが送信したネットワークパケットの送信元アドレスを、接続を仲介するブリッジのネットワークアドレスにスワップして下流ＰＣＩエクスプレス−ネットワークブリッジに送信し、その下流ＰＣＩエクスプレス−ネットワークブリッジが送信したネットワークパケットの送信先アドレスを、接続を仲介するブリッジのネットワークアドレスからその上流ＰＣＩエクスプレス−ネットワークブリッジのネットワークアドレスにスワップしてその上流ＰＣＩエクスプレス−ネットワークブリッジに送信することを特徴とする。
【００７３】
また、上述してきたＩ／Ｏバスシステムは、Ｉ／Ｏリソースをあらかじめコンフィグレーションし、ホストが行うコンフィグレーションに対しＩ／Ｏリソースを、ファンクションを単位としてマッピングすることを特徴とする。
【００７４】
なお、そのＩ／Ｏバスシステムは、Ｉ／Ｏリソースをあらかじめコンフィグレーションし、ホストがＩ／Ｏリソースに与えるコンフィグレーション情報を記憶し、Ｉ／Ｏリソースのコンフィグレーション情報とそのホストがＩ／Ｏリソースに与えるコンフィグレーション情報のマッピング情報を記憶し、その記憶したマッピング情報を参照し、ホストとＩ／Ｏリソースの間で送受信するＩ／Ｏパケットのヘッダに記載されたアドレスをスワップすることを特徴とする。
【００７５】
また、上述のＩ／Ｏバスシステムを動作させるための手順を示すＩ／Ｏバスシステム制御プログラムを、所定の記録媒体に記憶させることも可能である。その場合、Ｉ／Ｏバスシステム制御プログラムを記憶するＩ／Ｏバスシステム制御プログラム記録媒体は、複数の上流ＰＣＩエクスプレス−ネットワークブリッジと複数のホストとを一対一に接続するステップと、単一の下流ＰＣＩエクスプレス−ネットワークブリッジとＩ／Ｏリソースとを接続するステップと、その上流ＰＣＩエクスプレス−ネットワークブリッジとその下流ＰＣＩエクスプレス−ネットワークブリッジとの間で、その複数のホストとそのＩ／Ｏリソースとの間を伝送するネットワークパケットに記載されたネットワークアドレスをスワップするステップとを具備する動作を実現するための手順を示すＩ／Ｏバスシステム制御プログラムを記憶する。
【００７６】
そのＩ／Ｏバスシステム制御プログラム記録媒体は、そのスワップするステップが、上流ＰＣＩエクスプレス−ネットワークブリッジが送信したネットワークパケットの送信元アドレスを、接続を仲介するブリッジのネットワークアドレスにスワップして下流ＰＣＩエクスプレス−ネットワークブリッジに送信するステップと、その下流ＰＣＩエクスプレス−ネットワークブリッジが送信したネットワークパケットの送信先アドレスを、接続を仲介するブリッジのネットワークアドレスからその上流ＰＣＩエクスプレス−ネットワークブリッジのネットワークアドレスにスワップしてその上流ＰＣＩエクスプレス−ネットワークブリッジに送信するステップを含むことを特徴とするＩ／Ｏバスシステム制御プログラムを記憶する。
【００７７】
そのＩ／Ｏバスシステム制御プログラム記録媒体は、さらに、Ｉ／Ｏリソースをあらかじめコンフィグレーションし、ホストが行うコンフィグレーションに対し、そのＩ／Ｏリソースを、ファンクションを単位としてマッピングするステップを具備する動作を実現するための手順を示すＩ／Ｏバスシステム制御プログラムを記憶する。
【００７８】
そのＩ／Ｏバスシステム制御プログラム記録媒体は、そのマッピングするステップが、  Ｉ／Ｏリソースをあらかじめコンフィグレーションするステップと、ホストがＩ／Ｏリソースに与えるコンフィグレーション情報を記憶するステップと、Ｉ／Ｏリソースのコンフィグレーション情報とそのホストがＩ／Ｏリソースに与えるコンフィグレーション情報のマッピング情報を記憶するステップとを備え、そのスワップするステップが、その記憶したマッピング情報を参照し、ホストとＩ／Ｏリソースの間で送受信するＩ／Ｏパケットのヘッダに記載されたアドレスをスワップするステップを含むＩ／Ｏバスシステム制御プログラムを記憶する。
【００７９】
そのＩ／Ｏバスシステム制御プログラム記録媒体は、Ｉ／Ｏリソースのファンクションが割り当てられたホストを記憶するステップを具備する動作を実現するための手順を示すＩ／Ｏバスシステム制御プログラムを記憶する。ここにおいて、そのＩ／Ｏバスシステム制御プログラム記録媒体は、そのコンフィグレーションするステップが、Ｉ／Ｏリソースと下流ＰＣＩエクスプレス−ネットワークブリッジをあらかじめコンフィグレーションし、そのスワップするステップが、その記憶したＩ／Ｏリソースのファンクションが割り当てられたホストに関する情報を参照してＩ／Ｏパケットをカプセル化したネットワークパケットのネットワークアドレスをスワップし、その記憶したコンフィグレーション情報のマッピング情報を参照してネットワークパケットにカプセル化されたＩ／Ｏパケットのアドレスをスワップするステップを含むことを特徴とするＩ／Ｏバスシステム制御プログラムを記憶する。
【００８０】
そのＩ／Ｏバスシステム制御プログラム記録媒体は、そのネットワークアドレスのスワップが、上流ＰＣＩエクスプレス−ネットワークブリッジが送信したネットワークパケットの送信元アドレスを、接続を仲介するブリッジのネットワークアドレスにスワップし、その下流ＰＣＩエクスプレス−ネットワークブリッジが送信したネットワークパケットの送信先アドレスを、その接続を仲介するブリッジのネットワークアドレスからその上流ＰＣＩエクスプレス−ネットワークブリッジのネットワークアドレスにスワップすることを特徴とするＩ／Ｏバスシステム制御プログラムを記憶する。
【００８１】
そのＩ／Ｏバスシステム制御プログラム記録媒体は、ホストに割り当てるＩ／Ｏリソースのファンクションを、制御パケットにより変更する処理をプロセッサに行わせるステップを具備する動作を実現するための手順を示すＩ／Ｏバスシステム制御プログラムを記憶する。
【００８２】
そのＩ／Ｏバスシステム制御プログラム記録媒体は、そのＩ／Ｏパケットのアドレスのスワップが、Ｉ／Ｏパケットに記載されたメモリ空間とＩＤ番号を対象とすることを特徴とするＩ／Ｏバスシステム制御プログラムを記憶する。
【００８３】
当業者は上記実施例の様々な変形を容易に実施することができる。したがって、本発明は上記実施例に限定されることはなく、請求項やその均等物によって参酌される最も広い範囲で解釈される。
この出願は、２００８年１１月１３日に出願された日本出願特願２００８−２９０６９２を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【図１】
0005434929.tif 000002
【図２】
0005434929.tif 000003
【図３】
0005434929.tif 000004
【図４】
0005434929.tif 000005
【図５Ａ】
0005434929.tif 000006
【図５Ｂ】
0005434929.tif 000007
【図６】
0005434929.tif 000008
【図７】
0005434929.tif 000009
【図８】
0005434929.tif 000010
【図９】
0005434929.tif 000011