(57)【特許請求の範囲】
【請求項１】
ネットワーク上に分散した複数の要素であり、コンピュータと前記ネットワークとをブリッジする上流ネットワークインタフェース手段と、
前記ネットワーク上に分散した複数の要素であり、I/Oと前記ネットワークとをブリッジする下流ネットワークインタフェース手段とを備え、
前記上流ネットワークインタフェース手段および前記下流ネットワークインタフェース手段の各々は、PCIエクスプレス(PCIe)バスを終端する機能と、PCIeの標準に準拠したPCI-PCIブリッジの機能と、
TLPを前記ネットワーク上でパケットにカプセル化してトンネリングする機能とを備え、
前記上流ネットワークインタフェース手段は、
TLPに前記コンピュータを示すタグを付加して前記PCIeバスに送信する手段と、
PCIeの標準に準拠し、前記コンピュータ毎に個別に割り当てられる上流PCI-PCIブリッジの手段と、
TLPをカプセル化して前記ネットワークに送信するネットワーク転送手段と、
TLPのカプセル化で用いる接続先のネットワークアドレスを保持するテーブル手段と、
前記テーブル手段に接続先のネットワークアドレスを登録および消去する接続管理手段とを備え、
前記下流ネットワークインタフェース手段は、
TLPをカプセル化して前記ネットワークに送信するネットワーク転送手段と、
TLPのカプセル化で用いる接続先のネットワークアドレスを保持するテーブル手段と、
前記テーブル手段に接続先のネットワークアドレスを登録および消去する接続管理手段と、
PCIeの標準に準拠し、1つのI/Oに関して、前記コンピュータ毎に個別に割り当てられる下流PCI-PCIブリッジの手段と、
TLPに前記コンピュータを示すタグを付加して前記PCIeバスに送信する手段とを含み、
前記下流ネットワークインタフェース手段の前記ネットワーク転送手段は、
前記ネットワークから受信したパケットのヘッダからTLPを発行したコンピュータを検出し、そのコンピュータに対応するPCI-PCIブリッジに前記TLPを送信する手段と、
前記TLPを転送したPCI-PCIブリッジに対応する前記テーブル手段からカプセル化のためのネットワークアドレスを検出する手段とを含み、
前記上流ネットワークインタフェース手段は、マルチルートPCIエクスプレススイッチ(MR PCIeスイッチ)の上流PCI-PCIブリッジとして、前記ネットワークは前記MR PCIeスイッチの内部バスとして、前記下流ネットワークインタフェース手段は、前記複数のI/Oの各々に対する前記MR PCIeスイッチの下流PCI-PCIブリッジの組として、システムに組み込まれることを特徴とするI/O接続システム。
【請求項２】
前記上流ネットワークインタフェース手段が備える接続管理手段と、前記下流ネットワークインタフェース手段が備える接続管理手段とに通信し、前記上流ネットワークインタフェース手段と前記下流ネットワークインタフェース手段との間の接続と、前記下流ネットワークインタフェース手段同士の接続とを設定するシステムマネージャ手段を更に備えることを特徴とする請求項１に記載のI/O接続システム。
【請求項３】
前記上流PCI-PCIブリッジの手段は、
PCIeの標準に準拠したコンフィグレーションレジスタを備え、
前記下流PCI-PCIブリッジの手段は、
PCIeの標準に準拠したコンフィグレーションレジスタを備えることを特徴とする請求項２に記載のI/O接続システム。
【請求項４】
前記コンピュータによる前記I/Oのコンフィグレーションは、前記システムマネージャ手段により、前記上流ネットワークインタフェース手段と前記下流ネットワークインタフェース手段との間の接続と、前記下流ネットワークインタフェース手段同士の接続とが確立された後で開始されることを特徴とする請求項３に記載のI/O接続システム。
【請求項５】
前記上流ネットワークインタフェース手段が備えるテーブル手段に登録されるPCIeアドレスの情報は、前記コンピュータが発行したコンフィグレーションTLPが前記上流ネットワークインタフェース手段が備えるネットワーク転送手段を通過する際に取得され、
前記下流ネットワークインタフェース手段が備えるテーブル手段に登録されるPCIeアドレス情報は、前記コンピュータが発行したコンフィグレーションTLPが前記下流ネットワークインタフェース手段が備えるネットワーク転送手段を通過する際に取得されることを特徴とする請求項４に記載のI/O接続システム。
【請求項６】
前記下流ネットワークインタフェース手段が備えるテーブル手段に登録されるPCIeアドレスの情報において、異なる前記下流ネットワークインタフェース手段の下流に割り当てられたPCIeアドレスは、前記上流ネットワークインタフェース手段が備える接続管理部、および、前記下流ネットワークインタフェース手段が備える接続管理部のいずれかから通知されることにより登録されることを特徴とする請求項５に記載のI/O接続システム。
【請求項７】
ネットワーク上に分散した複数の要素である上流ネットワークインタフェース手段により、コンピュータと前記ネットワークとをブリッジするステップと、
前記ネットワーク上に分散した複数の要素である下流ネットワークインタフェース手段により、I/Oと前記ネットワークとをブリッジするステップとを備え、
前記上流ネットワークインタフェース手段および下流ネットワークインタフェース手段の各々は、PCIエクスプレス(PCIe)バスを終端する機能と、PCIeの標準に準拠したPCI-PCIブリッジの機能と、TLPを前記ネットワーク上でパケットにカプセル化してトンネリングする機能とを備え、
前記上流ネットワークインタフェース手段は、
TLPに前記コンピュータを示すタグを付加して前記PCIeバスに送信する手段と、
PCIeの標準に準拠し、前記コンピュータ毎に個別に割り当てられる上流PCI-PCIブリッジの手段と、
TLPをカプセル化して前記ネットワークに送信するネットワーク転送手段と、
TLPのカプセル化で用いる接続先のネットワークアドレスを保持するテーブル手段と、
前記テーブル手段に接続先のネットワークアドレスを登録および消去する接続管理手段とを備え、
前記下流ネットワークインタフェース手段は、
TLPをカプセル化して前記ネットワークに送信するネットワーク転送手段と、
TLPのカプセル化で用いる接続先のネットワークアドレスを保持するテーブル手段と、
前記テーブル手段に接続先のネットワークアドレスを登録および消去する接続管理手段と、
PCIeの標準に準拠し、1つのI/Oに関して、前記コンピュータ毎に個別に割り当てられる下流PCI-PCIブリッジの手段と、
TLPに前記コンピュータを示すタグを付加して前記PCIeバスに送信する手段とを含み、
前記下流ネットワークインタフェース手段の前記ネットワーク転送手段は、
前記ネットワークから受信したパケットのヘッダからTLPを発行したコンピュータを検出し、そのコンピュータに対応するPCI-PCIブリッジに前記TLPを送信する手段と、
前記TLPを転送したPCI-PCIブリッジに対応する前記テーブル手段からカプセル化のためのネットワークアドレスを検出する手段とを含み、
前記上流ネットワークインタフェース手段は、マルチルートPCIエクスプレススイッチ(MR PCIeスイッチ)の上流PCI-PCIブリッジとして、前記ネットワークは前記MR PCIeスイッチの内部バスとして、前記下流ネットワークインタフェース手段は、前記複数のI/Oの各々に対する前記MR PCIeスイッチの下流PCI-PCIブリッジの組として、システムに組み込まれることを特徴とするI/O接続方法。
【請求項８】
前記上流ネットワークインタフェース手段によりブリッジするステップは、
PCIeの標準に準拠する上流PCI-PCIブリッジの機能を行うステップと、
前記コンピュータから受信したTLPのあて先I/Oが接続するネットワークアドレスを検出するステップと、
検出したアドレスを用いてTLPをカプセル化して前記ネットワークに送信するステップとを備え、
前記下流ネットワークインタフェース手段によりブリッジするステップは、
1つのI/Oに関して、前記コンピュータ毎に個別に下流PCI-PCIブリッジの機能を行うステップと、
TLPをカプセル化したパケットを前記ネットワークから受信するステップと、
TLPをデカプセル化して前記コンピュータを示すタグを付加してTLPのあて先I/Oに送信するステップとを備えることを特徴とする請求項７に記載のI/O接続方法。
【請求項９】
前記下流ネットワークインタフェース手段によりブリッジするステップは、
前記I/Oから受信したTLPから前記コンピュータを示すタグを消去するステップと、
TLPのあて先コンピュータおよびI/Oのいずれかが接続するネットワークアドレスを検出するステップと、
検出したアドレスを用いてTLPをカプセル化して前記ネットワークに送信するステップとを更に備え、
前記上流ネットワークインタフェース手段によりブリッジするステップは、
前記ネットワークからTLPがカプセル化されたパケットを受信するステップと、
TLPをデカプセル化して前記コンピュータに送信するステップとを更に備えることを特徴とする請求項８に記載のI/O接続方法。
【請求項１０】
前記上流ネットワークインタフェース手段と前記下流ネットワークインタフェース手段との間の接続、および、前記下流ネットワークインタフェース手段同士の接続のいずれかを、制御パケットおよび制御信号のいずれかにより変更するステップをさらに備えることを特徴とする請求項８に記載のI/O接続方法。
【請求項１１】
前記上流PCI-PCIブリッジの機能を行うステップは、前記コンピュータのコンフィグレーションアクセスを、PCIeの標準に準拠したコンフィグレーションレジスタに対して行わせるステップを備え、
前記下流PCI-PCIブリッジの機能を行うステップは、前記コンピュータのコンフィグレーションアクセスを、PCIeの標準に準拠したコンフィグレーションレジスタに対して行わせるステップを備えることを特徴とする請求項１０に記載のI/O接続方法。
【請求項１２】
前記コンピュータによる前記I/Oのコンフィグレーションを、前記上流ネットワークインタフェース手段と前記下流ネットワークインタフェース手段との間の接続と、前記下流ネットワークインタフェース手段同士の接続とが確立された後で開始するステップを更に備えることを特徴とする請求項１１に記載のI/O接続方法。
【請求項１３】
前記上流ネットワークインタフェース手段において検出するステップは、前記コンピュータが発行したコンフィグレーションTLPが前記上流ネットワークインタフェース手段を通過する際に取得したPCIeアドレスの情報を用いてネットワークアドレスを検出するステップを備え、
前記下流ネットワークインタフェース手段において検出するステップは、前記コンピュータが発行したコンフィグレーションTLPが前記下流ネットワークインタフェース手段を通過する際に取得したPCIeアドレスの情報を用いてネットワークアドレスを検出するステップを備えることを特徴とする請求項１２に記載のI/O接続方法。
【請求項１４】
前記下流ネットワークインタフェース手段において検出するステップは、TLPのあて先が他のI/Oである場合に、前記上流ネットワークインタフェース手段および前記下流ネットワークインタフェース手段のいずれかから通知されたPCIeアドレスを用いてネットワークアドレスを検出するステップを更に備えることを特徴とする請求項１３に記載のI/O接続方法。
【請求項１５】
ネットワーク上に分散した複数の要素であり、I/Oと前記ネットワークとをブリッジする下流ネットワークインタフェース手段であって、PCIエクスプレス(PCIe)バスを終端する機能と、PCIeの標準に準拠したPCI-PCIブリッジの機能と、TLPを前記ネットワーク上でパケットにカプセル化してトンネリングする機能とを備え、前記複数のI/Oの各々に対するマルチルートPCIエクスプレススイッチの下流PCI-PCIブリッジの組としてシステムに組み込まれる前記下流ネットワークインタフェース手段を構成するコンピュータを、
TLPをカプセル化して前記ネットワークに送信するネットワーク転送手段と、
TLPのカプセル化で用いる接続先のネットワークアドレスを保持するテーブル手段と、
前記テーブル手段に接続先のネットワークアドレスを登録および消去する接続管理手段と、
PCIeの標準に準拠し、1つのI/Oに関して、接続先のコンピュータ毎に個別に割り当てられる下流PCI-PCIブリッジの手段と、
TLPに前記接続先のコンピュータを示すタグを付加して前記PCIeバスに送信する手段とを含み、
前記ネットワーク転送手段は、
前記ネットワークから受信したパケットのヘッダからTLPを発行したコンピュータを検出し、そのコンピュータに対応するPCI-PCIブリッジに前記TLPを送信する手段と、
前記TLPを転送したPCI-PCIブリッジに対応する前記テーブル手段からカプセル化のためのネットワークアドレスを検出する手段とを含む、
前記下流ネットワークインタフェース手段として機能させるためのI/O接続用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はI/O接続システムおよびI/O接続方法に関し、特にI/Oを大規模に分散して接続できるI/O接続システムおよびI/O接続方法に関する。
【背景技術】
【０００２】
従来、この種のI/O接続システムは、コンピュータ装置などにおいて複数のコンピュータと複数のI/Oとを接続し、複数のコンピュータ間で複数のI/Oを共有するために用いられている。従来のI/O接続システムの一例が、文献1（PCI-SIG、Multi-Root I/O Virtualization and Sharing Revision 0.7, 2007年6月8日、pp.28）に記載されている。【０００３】
図12を参照すると、文献1に記載されたI/O接続システムは、PCIエクスプレス(PCIe)の標準に準拠したI/O接続システムであり、複数のコンピュータ1-1〜Nと、コンピュータ1-1〜Nに共有される複数のI/O 6-1〜Mと、コンピュータ1-1〜NとI/O 6-1〜Mとを相互に接続するマルチルートPCIエクスプレススイッチ7(以下ではMR PCIeスイッチと呼ぶ)とを含む。NとMは異なる数でも良い。【０００４】
コンピュータ1-1〜Nは、CPU101-1〜Nと、メモリ103-1〜Nと、CPU101-1〜Nとメモリ103-1〜NとMR PCIeスイッチ7とを相互に接続するルートコンプレックス102-1〜Nとを含む。ルートコンプレックス102-1〜Nは慣例的にチップセットと呼ばれることが多い。【０００５】
MR PCIeスイッチ7は、コンピュータ1-1〜Nに接続するPCI-PCIブリッジである上流PCI-PCIブリッジ701-1〜Nと、I/O 6-1〜Mと接続するPCI-PCIブリッジである下流PCI-PCIブリッジ703-1-1〜703-N-1〜703-N-Mと、上流PCI-PCIブリッジ701-1〜Nと下流PCIブリッジ703-1-1〜703-N-1〜703-N-MをMR PCIeスイッチ7の内部で接続する内部バス702とを備える。PCIeではコンピュータ1-1〜N側を上流、I/O 6-1〜M側を下流と呼ぶ。【０００６】
上流PCI-PCIブリッジ701-1〜Nは、コンピュータ1-1〜Nに占有で割り当てられる。例えば上流PCI-PCIブリッジ701-1は、コンピュータ1-1に割り当てられる。上流PCI-PCIブリッジ701-1〜Nは、コンフィグレーションレジスタ(CFG REG)7011-1〜Nを備える。【０００７】
下流PCI-PCIブリッジ703-1-1〜703-N-1〜703-N-Mは、接続するI/O 6-1〜M毎に、コンピュータ1-1〜Nに占有に割り当てるブリッジが存在する。例えば下流PCI-PCIブリッジ703-1-1は、コンピュータ1-1に割り当てられる。各コンピュータ1-1〜Nが発行するI/OトランザクションのTransaction Layer Packet(TLP)は、コンピュータ1-1〜Nに割り当てられた下流PCI-PCIブリッジ703-1-1〜703-N-1〜703-N-Mを経由して転送される。ここで下流PCI-PCIブリッジ703-1-1〜703-N-1〜703-N-Mは、TLPをI/O 6-1〜Mに転送する際、TLPを発行したコンピュータ1-1〜Nを示すタグをTLPに挿入する。また、I/O 6-1〜Mから受信したTLPより、コンピュータ1-1〜Nを示すタグを消去し、上流PCI-PCIブリッジ701-1〜Nに転送する。下流PCI-PCIブリッジ703-1-1〜703-N-1〜703-N-Mは、CFG REG7031-1-1〜7031-N-1〜7031-N-Mを備える。【０００８】
CFG REG7011-1〜NとCFG REG7031-1-1〜7031-N-1〜7031-N-Mとは、ブリッジより下流に接続するデバイスに、コンピュータ1-1〜Nから割り当てられたメモリ空間とバス番号の情報を保持する。これらの情報はTLPを転送する際に用いられる。以下ではメモリ空間とバス番号と、その他TLPの転送に用いる情報とをまとめてPCIeアドレスと呼ぶこととする。一方、CFG REG7011-1〜NとCFG REG7031-1-1〜7031-N-1〜7031-N-Mとは、上流PCI-PCIブリッジ701-1〜Nと、下流PCI-PCIブリッジ703-1-1〜703-N-1〜703-N-Mを識別するコードを保持し、コンピュータ1-1〜Nのコンフィグレーションサイクルにおいてこれらのコードが読み込まれることで、MR PCIeスイッチ7が認識され、システムに組み込まれる。【０００９】
MR PCIeスイッチ7は、同一のコンピュータ1-1〜Nに割り当てられた上流PCI-PCIブリッジ701-1〜Nと、下流PCI-PCIブリッジ703-1-1〜703-N-1〜703-N-Mとの間でTLPの転送が行われ、異なるコンピュータ1-1〜Nに割り当てられたブリッジ間でのTLPの転送は禁止される。【００１０】
I/O 6-1〜Mは、複数のコンピュータ1-1〜Nの間で同時に共有することができる、PCIeの標準に準拠するI/Oである。I/O 6-1〜Mは、内部にコンピュータ1-1〜Nに対して個別に割り当てる図示しないリソースを保持し、それらのリソースがコンピュータ1-1〜NのI/Oトランザクションを処理する。また、同一のコンピュータ1-1〜Nに割り当てられたI/O 6-1〜Mのリソースの間で、TLPの送受信を行うことができる。ここで、異なるコンピュータ1-1〜Nに割り当てられたI/O 6-1〜Mのリソース同士のTLPの送受信は禁止される。I/O 6-1〜Mは、TLPがどのコンピュータ1-1〜Nに割り当てられたリソースによるものかを示すため、TLPにコンピュータ1-1〜Nを識別するタグをTLPに挿入してMR PCIeスイッチ7とTLPの送受信を行う。【００１１】
次に、従来のI/O接続システムの動作を説明する。【００１２】
今、コンピュータ1-1のCPU101-1からI/O 6-1へI/Oトランザクションが発行されたとする。ルートコンプレックス102-1は、TLPを生成しMR PCIeスイッチ7に送信する。上流PCI-PCIブリッジ701-1は、TLPを受信し、TLPのあて先がブリッジの下流に接続したデバイスであるかをCFG REG7011-1が保持する情報から確認し、この場合該当するためコンピュータ1-1に割り当てられている全ての下流PCI-PCIブリッジ703-1-1〜703-1-MにTLPを送信する。
下流PCI-PCIブリッジ703-1-1〜703-1-Mは、TLPを受信し、TLPのあて先がブリッジの下流に接続したデバイスであるかCFG REG7031-1-1〜7031-1-Mに登録されている情報から確認する。この場合、下流PCI-PCIブリッジ703-1-1のみが該当し、下流PCI-PCIブリッジ703-1-1は、コンピュータ1-1を識別するタグをTLPに付加しI/O 6-1に送信する。I/O 6-1は、TLPを受信し、TLPに付加されているタグからTLPを送信したコンピュータ1-1を識別し、コンピュータ1-1に割り当てられたI/O 6-1のリソースが要求された処理を行う。【００１３】
一方、I/O 6-1からコンピュータ1-1にTLPを送信する場合の動作は、コンピュータ1-1がI/O 6-1にTLPを発行する場合の動作と逆の手順である。このとき、上流PCI-PCIブリッジ701-1と、下流PCI-PCIブリッジ703-1-1では、下流からTLPを受信し、TLPのあて先がブリッジの下流に接続するデバイスに該当しない場合、TLPを上流に転送する。
【発明の開示】
【発明が解決しようとする課題】
【００１４】
第１の問題点は、複数のコンピュータと複数のI/Oを大規模に接続できないということである。【００１５】
その理由は、従来のI/O接続システムは、複数のコンピュータと複数のI/Oを、単一シャーシ内など距離が近い範囲で接続することを想定してプロトコルが定められているため、接続に関してデバイスの物理的な制約を受けるためである。また、複数のコンピュータと複数のI/Oとを相互に接続するスイッチの回路規模が接続数に比例して増大するため、大規模なスイッチの実現が困難であるためである。【００１６】
第2の問題点は、接続する複数のコンピュータと複数のI/Oとを分散して配置できないことである。【００１７】
その理由は、第一の問題点の理由と同じである。【００１８】
第3の問題点は、複数のコンピュータと複数のI/Oとを大規模に接続する場合や分散して接続する場合、標準のプロトコルに従ったソフトウェアとハードウェアに改造が必要となることである。【００１９】
その理由は、従来のI/O接続システムのプロトコルは、距離が近い範囲の接続を想定して定められているため、接続可能な距離を伸ばすためには、独自の仕組みに基づいてソフトウェアとハードウェアを改造しなければならないためである。【００２０】
本発明の目的は、複数のコンピュータと複数のI/Oとを大規模に接続できるI/O接続システムを提供することにある。【００２１】
本発明の他の目的は、複数のコンピュータと複数のI/Oとを分散して接続することができるI/O接続システムを提供することにある。【００２２】
本発明のさらに他の目的は、複数のコンピュータと複数のI/Oとを大規模に接続する場合や分散して接続する場合でも、PCIeの標準に準拠したソフトウェアやハードウェアを改造しなくてもよいI/O接続システムを提供することにある。
【課題を解決するための手段】
【００２３】
本発明のI/O接続システムは、ネットワーク上に分散した要素とネットワークとで、単一のマルチルートPCIエクスプレススイッチ(MR PCIeスイッチ)を形成することにより、同じI/Oを複数のコンピュータで同時に共有できるように、複数のコンピュータと複数のI/Oとを接続するI/O接続システムである。より詳しくは、本発明のI/O接続システムは、ネットワーク上に分散した複数の要素であり、コンピュータとネットワークとをブリッジする上流ネットワークインタフェース手段と、ネットワーク上に分散した複数の要素であり、I/Oとネットワークとをブリッジする下流ネットワークインタフェース手段とを備え、上流ネットワークインタフェース手段および下流ネットワークインタフェース手段の各々は、PCIエクスプレス(PCIe)バスを終端する機能と、PCIeの標準に準拠したPCI-PCIブリッジの機能と、TLPをネットワーク上でパケットにカプセル化してトンネリングする機能とを備え、上流ネットワークインタフェース手段は、MR PCIeスイッチの上流PCI-PCIブリッジとして、ネットワークはMR PCIeスイッチの内部バスとして、下流ネットワークインタフェース手段は、複数のI/Oの各々に対するMR PCIeスイッチの下流PCI-PCIブリッジの組として、システムに組み込まれる。このような構成によって、PCIeバスを終端せずネットワークにTLPを送信することで問題となるPCIeバスのタイムアウトを回避し、PCIeの標準に準拠したコンピュータのソフトウェアやハードウェアを改造することなく、また、1つのMR PCIeスイッチを複数の分散した回路で実現することにより接続規模が増大しても回路規模の増大を抑圧しながら、複数のコンピュータと複数のI/Oとをネットワーク上に大規模に分散して接続することができる。
【発明の効果】
【００２４】
第1の効果は、複数のコンピュータと複数のI/Oとを大規模に接続できることである。【００２５】
その理由は、PCIeバスのタイムアウトの回避と、PCIeの標準に準拠したMR PCIeスイッチの接続形態の維持と、ネットワークインタフェースの回路規模の増大を接続規模の増大に対して抑圧しながら、ネットワークを用いて複数のコンピュータと複数のI/Oとをデバイスの物理的な制約と回路実装の制限を受けずに分散して接続するためである。【００２６】
第2の効果は、複数のコンピュータと複数のI/Oとを分散して接続できることである。【００２７】
その理由は、第1の効果の理由と同じである。【００２８】
第3の効果は、複数のコンピュータと複数のI/Oとを大規模に接続する場合や分散して接続する場合、PCIeの標準に準拠したソフトウェアやハードウェアの改造を必要としないことである。【００２９】
その理由は、第1の効果の理由と同じである。
【図面の簡単な説明】
【００３０】
【図１】図１は、本発明の第1の実施の形態の構成例を示すブロック図である。
【図２】図２は、本発明の第1の実施の形態を説明するための図である。
【図３】図３は、本発明の第1の実施の形態を説明するための図である。
【図４】図４は、本発明の第1の実施の形態の動作を示す流れ図である。
【図５】図５は、本発明の第1の実施の形態の動作を示す流れ図である。
【図６】図６は、本発明の第1の実施の形態の動作を示す流れ図である。
【図７】図７は、本発明の第2の実施の形態の構成例を示すブロック図である。
【図８】図８は、本発明の第2の実施の形態を説明するための図である。
【図９】図９は、本発明の第2の実施の形態の動作を示す流れ図である。
【図１０】図１０は、本発明の第2の実施の形態の動作を示す流れ図である。
【図１１】図１１は、本発明の第3の実施の形態の構成例を示すブロック図である。
【図１２】図１２は、従来技術の構成を示すブロック図である。
【発明を実施するための最良の形態】
【００３１】
次に、本発明を実施するための最良の形態について図面を参照して詳細に説明する。【００３２】
本実施の形態で言及するPCIエクスプレス(PCIe)とは、PCIeの標準で定められているバス規格と、PCIeを拡張して定められるバス規格とを含む。【００３３】
図1は、本発明を実施するための第1の実施の形態の構成例を示すブロック図である。図1において、図12と同一又は相当する部分には同一符号が付してある。【００３４】
図1を参照すると、本発明の第1の実施の形態は、複数のコンピュータ1-1〜Nと、複数のコンピュータ1-1〜Nが共有する複数のI/O 6-1〜Mと、コンピュータ1-1〜NとI/O 6-1〜Mとを相互に接続するネットワーク3と、コンピュータ1-1〜Nとネットワーク3とをブリッジする上流ネットワークインタフェース2-1〜2-Nと、I/O 6-1〜Mとネットワーク3とをブリッジする下流ネットワークインタフェース5-1〜Mと、コンピュータ1-1〜NとI/O 6-1〜Mとの接続を管理するシステムマネージャ4とを含む。I/O 6-1〜Mには、ストレージ装置やネットワークインタフェースカードなどの周辺装置が含まれる。上流ネットワークインタフェース2-1〜2-Nおよび下流ネットワークインタフェース5-1〜Mは、ネットワーク3上に分散した要素である。「ブリッジする」とは、PCIeとネットワーク3の間など、異なる通信媒体の間でパケットを中継することを意味する。【００３５】
上流ネットワークインタフェース2-1〜2-Nは、ルートコンプレックス102-1〜NとPCIeバスにより接続し、上流PCI-PCIブリッジ201-1〜Nと、PCIeのパケットであるTransaction Layer Packet(TLP)のカプセル化、デカプセル化を行うネットワーク転送部202-1〜Nと、上流ネットワークインタフェース2-1〜Nと下流ネットワークインタフェース5-1〜Mとの接続を管理する接続管理部203-1〜Nと、上流ネットワークインタフェース2-1〜Nが接続する下流ネットワークインタフェース5-1〜Mのネットワークアドレスを保持するカプセル化テーブル204-1〜Nとを含む。【００３６】
上流PCI-PCIブリッジ201-1〜Nは、ルートコンプレックス102-1〜Nとネットワーク転送部202-1〜Nとの間でTLPの中継を行う。上流PCI-PCIブリッジ201-1〜Nは、PCIeの標準に準拠したコンフィグレーションレジスタ(CFG REG)2011-1〜Nを備え、コンピュータ1-1〜Nのコンフィグレーションサイクルにおいて、コンピュータ1-1〜NからPCI-PCIブリッジとして認識されることで、同じくPCI-PCIブリッジとして認識される下流PCI-PCIブリッジ504-1-1〜504-N-Mと合わせて、コンピュータ1-1〜NとI/O 6-1〜Mとの間にPCIeの標準に準拠したマルチルートPCIeスイッチ(MR PCIeスイッチ)が一段挿入されている状態として本実施の形態がシステムに組み込まれる。【００３７】
ネットワーク転送部202-1〜Nは、上流PCI-PCIブリッジ201-1〜Nから受信したTLPのヘッダに記載されているPCIeのあて先アドレスをキーとして、カプセル化テーブル204-1〜Nから、TLPのあて先I/O 6-1〜Mが接続している下流ネットワークインタフェース5-1〜Mのネットワークアドレスを検出し、得られたネットワークアドレスを用いてTLPをカプセル化し、パケットのヘッダにTLPを発行したコンピュータ1-1〜Nを記載し、ネットワーク3に送信する。また、ネットワーク3からTLPがカプセル化されたパケットを受信し、TLPをデカプセル化し、ルートコンプレックス102-1〜Nに送信する。【００３８】
カプセル化テーブル204-1〜Nは、上流ネットワークインタフェース2-1〜Nが接続するコンピュータ1-1〜Nから、各下流ネットワークインタフェース5-1〜Mの下流に割り当てられたPCIeのコンフィグレーション情報を保持し、TLPをカプセル化するパケットのあて先アドレスの検出に用いられる。カプセル化テーブル204-1〜Nは、図2に示すようにバス番号下限2041-1〜Mと、バス番号上限2042-1〜Mと、メモリ下限2043-1〜Mと、メモリ上限2044-1〜Mと、ネットワークアドレス2045-1〜Mとを備える。ここで、カプセル化テーブル204-1〜Nの1つのエントリが、1つの下流ネットワークインタフェース5-1〜Mに対応する。PCIeでは、各I/O 6-1〜Mは、コンピュータ1-1〜Nの物理メモリにマップされるメモリ空間と、I/O 6-1〜Mが接続するバス番号とが、I/O 6-1〜MのPCIeアドレスとして割り当てられており、カプセル化テーブル204-1〜Nは、これらの値に対しI/O 6-1〜Mが接続する下流ネットワークインタフェース5-1〜Mのネットワークアドレス2045-1〜Mの検出を可能とする。【００３９】
接続管理部203-1〜Nは、制御用パケットを用いてシステムマネージャ4と通信し、新たに接続する下流ネットワークインタフェース5-1〜Mのネットワークアドレスをカプセル化テーブル204-1〜Nに登録する。また、コンピュータ1-1〜Nが発行したコンフィグレーションTLPがネットワーク転送部202-1〜Nを通過する際に、コンピュータ1-1〜Nが上流ネットワークインタフェース2-1〜Nの下流に割り当てるPCIeアドレスを調査し、カプセル化テーブル204-1〜Nのバス番号下限2041-1〜Mと、バス番号上限2042-1〜Mと、メモリ下限2043-1〜Mと、メモリ上限2044-1〜Mとを登録する。【００４０】
ネットワーク3は、TLPがカプセル化されたパケットをあて先ノードまで伝達する。【００４１】
下流ネットワークインタフェース5-1〜Mは、TLPのカプセル化、デカプセル化を行うネットワーク転送部501-1〜Mと、上流ネットワークインタフェース2-1〜Nと下流ネットワークインタフェース5-1〜Mとの接続、あるいは下流ネットワークインタフェース5-1〜M同士の接続を管理する接続管理部502-1〜Mと、下流ネットワークインタフェース5-1〜Mが接続する上流ネットワークインタフェース2-1〜Nと、下流ネットワークインタフェース5-1〜Mとのネットワークアドレスを保持するカプセル化テーブル503-1〜Mと、ネットワーク転送部501-1〜Mとパケット転送部505-1〜Mの間でTLPを転送し、コンピュータ1-1〜Nに対して占有に割り当てられる下流PCI-PCIブリッジ504-1-1〜504-N-1〜504-N-Mと、TLPを発行したコンピュータ1-1〜Nを示すタグをTLPに挿入するパケット転送部505-1〜Mとを含む。【００４２】
ネットワーク転送部501-1〜Mは、下流PCI-PCIブリッジ504-1-1〜504-N-1〜504-N-Mから受信したTLPのヘッダに記載されているあて先PCIeアドレスをキーとして、TLPを転送した下流PCI-PCIブリッジ504-1-1〜504-N-1〜504-N-Mに対応するカプセル化テーブル503-1〜Mのエントリの中から、あて先のコンピュータ1-1〜Nが接続している上流ネットワークインタフェース2-1〜Nか、あるいはI/O 6-1〜Mが接続している下流ネットワークインタフェース5-1〜Mのネットワークアドレスを検出し、得られたアドレスを用いてTLPをカプセル化し、TLPを発行したI/O 6-1〜Mが割り当てられたコンピュータ1-1〜Mをパケットのヘッダに記載し、ネットワーク3に送信する。また、ネットワーク3からTLPがカプセル化されたパケットを受信し、受信したパケットのヘッダからTLPを発行したコンピュータ1-1〜Nか、あるいはTLPを発行したI/O 6-1〜Mのリソースが割り当てられたコンピュータ1-1〜Nを検出し、TLPをデカプセル化し、検出したコンピュータ1-1〜Nが割り当てられた下流PCI-PCIブリッジ504-1-1〜504-N-1〜504-N-MにTLPを送信する。【００４３】
カプセル化テーブル503-1〜Mは、図3に示すように各コンピュータ1-1〜N毎に、コンピュータ1-1〜Nから各下流ネットワークインタフェース5-1〜Mの下流に割り当てられたPCIeアドレスのコンフィグレーション情報を保持し、TLPをカプセル化するパケットのあて先アドレスの検出に用いられる。図3は、コンピュータ1-1のコンフィグレーション情報に該当するバス番号下限5031-1-1〜5031-(M+1)-1と、バス番号上限5032-1-1〜5032-(M+1)-1と、メモリ下限5033-1-1〜5033-(M+1)-1と、メモリ上限5034-1-1〜5034-(M+1)-1と、ネットワークアドレス5035-1-1〜5035-(M+1)-1とを示している。カプセル化テーブル503-1〜Mは、各コンピュータ1-1〜N毎に、コンピュータ1〜Nが接続する上流ネットワークインタフェース2-1〜Nのネットワークアドレスを検出するための1つのエントリと、I/O 6-1〜Mが接続する下流ネットワークインタフェース5-1〜Mのネットワークアドレスを検出するためのM個のエントリとの計(M+1)個のエントリから成る。なお、コンピュータ1〜Nに対応するエントリは、ネットワークアドレス5035-1-1〜5035-(M+1)-1〜5035-(M+1)-Nだけを保持する。これは、下流ネットワークインタフェース5-1〜Mから上流ネットワークインタフェース2-1〜NにTLPを転送する場合、TLPのあて先が、どの下流ネットワークインタフェース5-1〜Mにも該当しない場合として判断されるからである。【００４４】
接続管理部502-1〜Mは、制御用パケットを用いてシステムマネージャ4と通信し、新たに接続する上流ネットワークインタフェース2-1〜Nと下流ネットワークインタフェース5-1〜Mとのネットワークアドレスをカプセル化テーブル503-1〜Mに登録する。また、コンピュータ1-1〜Nが発行したコンフィグレーションTLPがネットワーク転送部501-1〜Mを通過する際、コンピュータ1-1〜Nが下流ネットワークインタフェース5-1〜Mの下流に割り当てるPCIeアドレスのコンフィグレーション情報を調査するか、あるいは上流ネットワークインタフェース2-1〜Nが含む接続管理部203-1〜Nと制御用パケットを送受信することにより、コンピュータ1-1〜Nが他の下流ネットワークインタフェース5-1〜Mの下流に割り当てるPCIeのアドレスを調査することで、カプセル化テーブル503-1〜Mのバス番号下限5031-1-1〜5031-(M+1)-1〜5031-(M+1)-Nと、バス番号上限5032-1-1〜5032-(M+1)-1〜5032-(M+1)-Nと、メモリ下限5033-1-1〜5033-(M+1)-1〜5033-(M+1)-Nと、メモリ上限5034-1-1〜5034-(M+1)-1〜5034-(M+1)-Nとをコンピュータ1-1〜1-N毎に登録する。【００４５】
下流PCI-PCIブリッジ504-1-1〜504-N-Mは、それぞれコンピュータ1-1〜Nに個別に割り当てられ、ネットワーク転送部501-1〜Mとパケット転送部505-1〜Mとの間でTLPの中継を行う。例えば下流PCI-PCIブリッジ504-1-1〜504-N-1はそれぞれコンピュータ1-1〜Nに割り当てられる。下流PCI-PCIブリッジ504-1-1〜504-N-Mは、PCIeの標準に準拠したCFG REG5041-1-1〜5041-N-Mを備え、コンピュータ1-1〜1-NのコンフィグレーションサイクルにおいてPCI-PCIブリッジとして認識されることで、同じくPCI-PCIブリッジとして認識される上流PCI-PCIブリッジ201-1〜Nと合わせて、コンピュータ1-1〜NとI/O 6-1〜Mとの間に、PCIeの標準に準拠したMR PCIeスイッチが一段挿入されている状態として本実施の形態がシステムに組み込まれる。【００４６】
パケット転送部505-1〜505-Mは、下流PCI-PCIブリッジ504-1-1〜504-N-MからI/O 6-1〜MあてのTLPを受信し、TLPを送信した下流PCI-PCIブリッジ504-1-1〜504-N-Mが割り当てられたコンピュータ1-1〜Nに対応するタグをTLPに付加し、I/O 6-1〜Mに転送する。また、I/O 6-1〜Mからコンピュータ1-1〜Nか、あるいは他のI/O 6-1〜MあてのTLPを受信し、タグが示すコンピュータ1-1〜Nを検出し、タグをTLPから消去し、検出したコンピュータ1-1〜Nに割り当てられた下流PCI-PCIブリッジ504-1-1〜504-N-MにTLPを送信する。なお、これらのタグはPCIeの標準に準拠したものである。【００４７】
I/O 6-1〜Mは、複数のコンピュータ1-1〜Nの間で同時に共有することができる、PCIeの標準に準拠するI/Oである。I/O 6-1〜Mは、内部にコンピュータ1-1〜Nに対して個別に割り当てる図示しないリソースを保持し、それらのリソースがコンピュータ1-1〜NのI/Oトランザクションを処理する。また、同一のコンピュータ1-1〜Nに割り当てられたI/O 6-1〜Mのリソースの間で、TLPの送受信を行う。ここで、異なるコンピュータ1-1〜Nに割り当てられたI/O 6-1〜Mのリソース同士のTLPの送受信は禁止される。I/O 6-1〜Mは、TLPがどのコンピュータ1-1〜Nに割り当てられたリソースによるものかを示すため、TLPにコンピュータ1-1〜Nを識別するタグをTLPに挿入して下流ネットワークインタフェース5-1〜MとTLPの送受信を行う。【００４８】
システムマネージャ4は、コンピュータ1-1〜NとI/O 6-1〜Mとの接続と、I/O 6-1〜M間の接続とを管理する。システムマネージャ4は、制御用パケットを用いてコンピュータ1-1〜Nが接続する上流ネットワークインタフェース2-1〜Nが含む接続管理部203-1〜Nと、下流ネットワークインタフェース5-1〜Mが含む接続管理部502-1〜Mとに接続先/切断先ノードのネットワークアドレスを通知する。【００４９】
次に、本発明を実施するための第1の実施の形態の動作について詳細に説明する。【００５０】
初めに、図1と4とを用いてコンピュータ1-1〜NがI/O 6-1〜MにTLPを発行する場合の動作を説明する。【００５１】
コンピュータ1-1〜Nが含むCPU101-1〜N上で動作するソフトウェアが、I/Oトランザクションを開始するようルートコンプレックス102-1〜Nに命令を発行すると、ルートコンプレックス102-1〜Nは、I/O 6-1〜MにTLPを発行する(ステップA1)。ネットワーク転送部202-1〜Nは、TLPを受信し、TLPのヘッダに記載されているあて先PCIeアドレスをキーとして、カプセル化テーブル204-1〜Nから、あて先I/O 6-1〜Mが接続している下流ネットワークインタフェース5-1〜Mのネットワークアドレスを検出する(ステップA2)。ネットワーク転送部202-1〜Nは、検出したネットワークアドレスを用いてTLPをカプセル化し(ステップA3)、ネットワーク3に送信する。ネットワーク3は、TLPがカプセル化されたパケットをあて先下流ネットワークインタフェース5-1〜Mに伝達する(ステップA4)。ネットワーク転送部501-1〜Mは、TLPがカプセル化されたパケットを受信し、パケットのヘッダに記載されたTLPを発行したコンピュータ1-1〜Nを検出し、TLPをデカプセル化する(ステップA5)。続いてネットワーク転送部501-1〜Mは、検出したコンピュータ1-1〜Nに割り当てられた下流PCI-PCIブリッジ504-1-1〜504-N-MにTLPを送信する(ステップA6)。パケット転送部505-1〜Mは、下流PCI-PCIブリッジ504-1-1〜504-N-Mから転送されたTLPを受信し、TLPを転送した下流PCI-PCIブリッジ504-1-1〜504-N-Mが割り当てられたコンピュータ1-1〜Nを示すタグをTLPに付加し、I/O 6-1〜Mに送信する(ステップA7)。【００５２】
次に、図1と図5とを用いてI/O 6-1〜Mが、コンピュータ1-1〜Nか、あるいは同一のコンピュータ1-1〜Nに割り当てられた他のI/O 6-1〜MのリソースにTLPを発行する場合の動作を説明する。【００５３】
I/O 6-1〜Mは、コンピュータ1-1〜Nか、あるいはコンピュータ1-1〜Nに割り当てられたI/O 6-1〜Mのリソースにアクセスする場合、PCIeに準拠したコンピュータ1-1〜Nを示すタグを付加したTLPを発行する(ステップB1)。パケット転送部505-1〜Mは、TLPを受信し、タグが示すコンピュータ1-1〜Nを検出し、コンピュータ1-1〜Nを示すタグを消去し、検出したコンピュータ1-1〜Nに割り当てられた下流PCI-PCIブリッジ504-1-1〜504-N-MにTLPを送信する(ステップB2)。ネットワーク転送部501-1〜Mは、下流PCI-PCIブリッジ504-1-1〜504-N-Mから転送されたTLPを受信し、TLPのヘッダに記載されたあて先PCIeアドレスをキーとして、カプセル化テーブル503-1〜MのTLPを転送した下流PCI-PCIブリッジ504-1-1〜504-N-Mが割り当てられたコンピュータ1-1〜Nに対応するエントリの中から、あて先ノードのネットワークアドレスを検出する(ステップB3)。TLPのあて先がコンピュータ1-1〜Nの場合、ネットワーク転送部501-1〜Mは、コンピュータ1-1〜Nが接続する上流ネットワークインタフェース2-1〜Nのネットワークアドレスを用いてTLPをカプセル化し、ネットワーク3に送信する(ステップB4)。ネットワーク3は、TLPがカプセル化されたパケットを上流ネットワークインタフェース2-1〜Nに伝達する(ステップB5)。ネットワーク転送部202-1〜Nは、TLPがカプセル化されたパケットを受信し、TLPをデカプセル化し、コンピュータ1-1〜NにTLPを送信する(ステップB6)。一方、TLPのあて先が同一のコンピュータ1-1〜Nに割り当てられた他のI/O 6-1〜Mのリソースだった場合、ネットワーク転送部501-1〜Mは、あて先のI/O 6-1〜Mが接続する下流ネットワークインタフェース5-1〜Mのネットワークアドレスを用いてTLPをカプセル化し、ネットワーク3に送信する(ステップB7)。ネットワーク3は、TLPがカプセル化されたパケットをあて先下流ネットワークインタフェース5-1〜Mに伝達する(ステップB8)。ネットワーク転送部501-1〜Mは、TLPがカプセル化されたパケットを受信し、パケットのヘッダに記載されている送信元I/O 6-1〜Mのリソースが割り当てられたコンピュータ1-1〜Nを検出し、TLPをデカプセル化する(ステップB9)。ステップA6とA7の動作とは、図4で示したコンピュータ1-1〜NがI/O 6-1〜MにTLPを送信する場合の動作と同じであるため説明を省略する。【００５４】
次に、図1と図6とを用いてコンピュータ1-1〜NがI/O 6-1〜Mのコンフィグレーションを行う場合の動作を説明する。【００５５】
システムマネージャ4は、コンピュータ1-1〜NのソフトウェアがI/O 6-1〜Mのコンフィグレーションを開始する前に、上流ネットワークインタフェース2-1〜Nが含む接続管理部203-1〜Nと、下流ネットワークインタフェース5-1〜Mが含む接続管理部502-1〜Mとに、コンピュータ1-1〜NとI/O 6-1〜Mの間のコネクション、あるいはI/O 6-1〜M同士のコネクションで必要となるあて先ノードのネットワークアドレスを制御用パケットを用いて通知する(ステップC1)。接続管理部203-1〜Nと接続管理部502-1〜Mとは、システムマネージャ4から受信したネットワークアドレスとのコネクションを、それぞれカプセル化テーブル204-1〜Nとカプセル化テーブル503-1〜Mとに登録する(ステップC2)。続いてコンピュータ1-1〜Nのコンフィグレーションサイクルが開始されると、ステップC2で登録したコネクションを用いて、コンピュータ1-1〜Nが発行したコンフィグレーションTLPがI/O 6-1〜Mに伝達され、上流ネットワークインタフェース2-1〜Nの下流のコンフィグレーションが行われる(ステップC3)。接続管理部203-1〜Nは、ネットワーク転送部202-1〜Nを通過するコンピュータ1-1〜Nが発行したコンフィグレーションTLPより、各下流ネットワークインタフェース5-1〜Mに割り当てられたPCIeアドレスを検出し、カプセル化テーブル204-1〜Nに登録する。同様に、接続管理部502-1〜Mは、ネットワーク転送部501-1〜Mを通過するコンピュータ1-1〜Nが発行したコンフィグレーションTLPより、下流ネットワークインタフェース5-1〜Mの下流に割り当てられたPCIeアドレスを検出し、カプセル化テーブル503-1〜Mに登録する(ステップC4)。次に、接続管理部203-1〜Nは、各接続管理部502-1〜Mに対し、他の下流ネットワークインタフェース5-1〜Mの下流に割り当てられたPCIeアドレスを制御用パケットを用いて通知する(ステップC5)。接続管理部502-1〜Mは、通知された他の下流ネットワークインタフェース5-1〜Mの下流に割り当てられたPCIeアドレスを受信し、カプセル化テーブル503-1〜Mに登録する(ステップC6)。【００５６】
なお、本実施の形態では、下流ネットワークインタフェース5-1〜Mが含む接続管理部502-1〜Mに対し、他の下流ネットワークインタフェース5-1〜Mの下流に割り当てられたPCIeアドレスを、上流ネットワークインタフェース2-1〜Nが含む接続管理部203-1〜Nが通知する場合を示したが、同じ内容の情報を保持する下流ネットワークインタフェース5-1〜Mが含む接続管理部502-1〜Mが、互いに情報を通知し合うことも可能である。【００５７】
また、本実施の形態では、システムマネージャ4の上流ネットワークインタフェース2-1〜Nと、下流ネットワークインタフェース5-1〜Mに対する命令が、ネットワーク3を利用する場合を示したが、ネットワーク3とは別に、制御専用の信号線を設けることも可能である。【００５８】
次に、本発明を実施するための第1の実施の形態の効果について説明する。【００５９】
第1の実施の形態では、上流ネットワークインタフェースと下流ネットワークインタフェースとによりPCIeバスを終端し、それらのインタフェースにPCIeの標準に準拠したPCI-PCIブリッジの機能を備えさせ、それらのインタフェースをネットワークで接続し、ネットワーク上でPCIeのTLPをトンネリングすることで、上流ネットワークインタフェースと、下流ネットワークインタフェースと、TLPをトンネリングするネットワークとでPCIeの標準に準拠した1つのMR PCIeスイッチとしてシステムに組み込ませる。これにより、PCIeバスを終端せずネットワークにTLPを送信することで問題となるPCIeバスのタイムアウトを回避し、PCIeの標準に準拠したコンピュータのソフトウェアやI/O、ルートコンプレックスなどのハードウェアを改造することなく、また、1つのMR PCIeスイッチを複数の分散した回路で実現することにより接続規模が増大しても回路規模の増大を抑圧しながら、複数のコンピュータと複数のI/Oとをネットワーク上に大規模に分散して接続することができる。【００６０】
また、下流ネットワークインタフェース5-1〜Mに、コンピュータ1〜Nに対して占有に割り当てられる下流PCI-PCIブリッジ504-1-1〜504-N-Mを備えているために、同じI/Oを複数のコンピュータで同時に共有することができる。【００６１】
次に、本発明を実施するための第2の実施の形態について図面を参照して詳細に説明する。【００６２】
図7は、本発明の第2の実施の形態の構成を示すブロック図である。【００６３】
図7を参照すると、本発明の第2の実施の形態は、図1に示した第1の実施の形態と比較して、上流ネットワークインタフェース2-1〜Nに替えてMR PCIeスイッチ7と上流ネットワークインタフェース8とを含み、MR PCIeスイッチ7が複数のコンピュータ1-1〜Nと接続し、上流ネットワークインタフェース8が複数のコンピュータ1-1〜Nに関わるI/Oトランザクションを処理する点で異なる。【００６４】
MR PCIeスイッチ7は、複数のコンピュータ1-1〜Nと接続し、コンピュータ1-1〜Nが発行したTLPを受信し、コンピュータ1-1〜Nを示すタグを付加して上流ネットワークインタフェース8に送信する。また、上流ネットワークインタフェース8から受信したTLPのタグから、TLPのあて先コンピュータ1-1〜Nを検出し、タグを消去し、TLPをコンピュータ1-1〜Nに送信する。【００６５】
上流ネットワークインタフェース8は、TLPに対しコンピュータ1-1〜Nを示すタグを付加、消去するパケット転送部801と、コンピュータ1-1〜Nに個別に割り当てられTLPの転送を行う上流PCI-PCIブリッジ802-1〜Nと、TLPのカプセル化、デカプセル化を行うネットワーク転送部803と、上流ネットワークインタフェース8と下流ネットワークインタフェース5-1〜Mとの接続を管理する接続管理部804と、上流ネットワークインタフェース8が接続する下流ネットワークインタフェース5-1〜Mのネットワークアドレスを保持するカプセル化テーブル805とを含む。【００６６】
パケット転送部801は、MR PCIeスイッチ7からコンピュータ1-1〜Nを示すタグが付加されたTLPを受信し、タグに該当するコンピュータ1-1〜Nを検出し、タグを消去し、検出したコンピュータ1-1〜Nに割り当てられた上流PCI-PCIブリッジ802-1〜NにTLPを転送する。
また、パケット転送部801は、上流PCI-PCIブリッジ802-1〜NからTLPを受信し、TLPを転送した上流PCI-PCIブリッジ802-1〜Nが割り当てられたコンピュータ1-1〜Nを示すタグをTLPに付加してMR PCIeスイッチ7に送信する。【００６７】
上流PCI-PCIブリッジ802-1〜Nは、各コンピュータ1-1〜Nに個別に割り当てられ、パケット転送部801とネットワーク転送部803との間でTLPを転送する。上流PCI-PCIブリッジ802-1〜Nは、PCIeの標準に準拠したCFG REG8021-1〜Nを備え、コンピュータ1-1〜1-NのコンフィグレーションサイクルにおいてPCI-PCIブリッジとして認識されることで、同じくPCI-PCIブリッジとして認識される下流PCI-PCIブリッジ504-1-1〜504-N-Mと合わせて、MR PCIeスイッチ7とI/O 6-1〜6-Mとの間にPCIeの標準に準拠したMR PCIeスイッチが一段挿入されている状態として本実施の形態がシステムに組み込まれる。【００６８】
ネットワーク転送部803は、上流PCI-PCIブリッジ802-1〜Nから受信したTLPのヘッダに記載されているあて先PCIeアドレスをキーとして、カプセル化テーブル805において、TLPを転送した上流PCI-PCIブリッジ802-1〜Nが割り当てられたコンピュータ1-1〜Nに該当するエントリから、TLPのあて先I/O 6-1〜Mが接続している下流ネットワークインタフェース5-1〜Mのネットワークアドレスを検出し、得られたネットワークアドレスを用いてTLPをカプセル化し、ネットワーク3に送信する。また、ネットワーク3からTLPがカプセル化されたパケットを受信し、パケットのヘッダからあて先コンピュータ1-1〜Nを検出し、TLPをデカプセル化し、検出したコンピュータ1-1〜Nに割り当てられた上流PCI-PCIブリッジ802-1〜NにTLPを送信する。【００６９】
カプセル化テーブル805は、図8に示すように、図2のカプセル化テーブル204の情報をコンピュータ1-1〜Nの数(N個)だけ保持する。カプセル化テーブル805は、ネットワーク転送部803がコンピュータ1-1〜Nが発行したTLPをカプセル化してネットワーク3に転送する際、まず、コンピュータ1-1〜Nに対応するエントリが検出され、続いてそれらのエントリの中から、TLPのヘッダに記載されたあて先PCIeアドレスをキーとして、あて先のI/O 6-1〜Mが接続する下流ネットワークインタフェース5-1〜Mのネットワークアドレスが検出される。【００７０】
次に、本発明を実施するための第2の実施の形態の動作について詳細に説明する。【００７１】
初めに、図7と図9とを用いてコンピュータ1-1〜NがI/O 6-1〜MにTLPを発行する場合の動作を説明する。【００７２】
図9を参照すると、本発明を実施するための第2の実施の形態は、図4で示した第1の実施の形態のステップA2に替えて、ステップD1〜D3を含む点で異なる。【００７３】
MR PCIeスイッチ7は、コンピュータ1-1〜Nが発行したTLPを受信し、TLPにコンピュータ1-1〜Nを識別するタグを付加し、上流ネットワークインタフェース8に送信する(ステップD1)。パケット転送部801は、受信したTLPのタグからコンピュータ1-1〜Nを検出し、タグを消去し、検出したコンピュータ1-1〜Nに割り当てられた上流PCI-PCIブリッジ802-1〜NにTLPを送信する(ステップD2)。ネットワーク転送部803は、TLPを転送した上流PCI-PCIブリッジ802-1〜Nが割り当てられたコンピュータ1-1〜Nに対応するカプセル化テーブル805のエントリの中から、TLPのあて先I/O 6-1〜Mが接続している下流ネットワークインタフェース5-1〜Mのネットワークアドレスを検出する(ステップD3)。【００７４】
その他のコンピュータ1-1〜NがI/O 6-1〜MにTLPを発行する場合の動作は、第1の実施の形態と同じであるため説明を省略する。【００７５】
次に、図7と図10とを用いてI/O 6-1〜Mが、コンピュータ1-1〜Nか、あるいは同一のコンピュータ1-1〜Nに割り当てられている他のI/O 6-1〜MのリソースにTLPを発行する場合の動作を説明する。【００７６】
図10を参照すると、本発明の第2の実施の形態は、図5に示した第1の実施の形態と比較して、ステップB6に替えてステップE1〜E4を含む点で異なる。【００７７】
ネットワーク転送部803は、ネットワーク3からTLPがカプセル化されたパケットを受信し、パケットのヘッダに記載された送信元I/O 6-1〜Mのリソースが割り当てられたコンピュータ1-1〜Nを検出して、TLPをデカプセル化し(ステップE1)、デカプセル化したTLPを、検出したコンピュータ1-1〜Nが割り当てられた上流PCI-PCIブリッジ802-1〜Nに送信する(ステップE2)。パケット転送部801は、TLPを上流PCI-PCIブリッジ802-1〜Nから受信し、上流PCI-PCIブリッジ802-1〜Nが割り当てられたコンピュータ1-1〜Nを示すタグをTLPに付加し、MR PCIeスイッチ7に送信する(ステップE3)。MR PCIeスイッチ7は、TLPに付加されたタグからコンピュータ1-1〜Nを検出し、タグを消去し、検出したコンピュータ1-1〜NにTLPを送信する(ステップE4)。【００７８】
その他のI/O 6-1〜Mが、コンピュータ1-1〜Nか、あるいは同一コンピュータ1-1〜Nに割り当てられた他のI/O 6-1〜MのリソースにTLPを発行する場合の動作は第1の実施の形態と同じであるため説明を省略する。【００７９】
次に、コンピュータ1-1〜NがI/O 6-1〜Mのコンフィグレーションを行う場合の動作を説明する。【００８０】
本発明の第2の実施の形態の動作は、図6に示した第1の実施の形態の動作において、カプセル化テーブルの登録(ステップC4)と、下流ネットワークインタフェース5-1〜Mへ、他の下流ネットワークインタフェース5-1〜Mの下流に割り当てたPCIeアドレスを通知する動作(ステップC5)が、単一のコンピュータ1-1〜Nに関する情報から、N台全てのコンピュータ1-1〜Nに関する情報となった点で異なる。【００８１】
その他のコンピュータ1-1〜NがI/O 6-1〜Nのコンフィグレーションを行う場合の動作は、第1の実施の形態と同じであるため説明を省略する。【００８２】
本実施の形態では、コンピュータ1-1〜Nと上流ネットワークインタフェース8との間にMR PCIeスイッチ7を一段挿入する場合を示したが、MR PCIeスイッチの段数に制限はない。また同様に、下流ネットワークインタフェース5-1〜MとI/O 6-1〜Mとの間に1段以上のMR PCIeスイッチを挿入することも可能である。【００８３】
次に、本発明を実施するための第2の実施の形態の効果について説明する。【００８４】
第2の実施の形態では、PCIeの標準に準拠する市販のMR PCIeスイッチを用いて、1つ以上のコンピュータを集約した上でTLPをネットワークに転送する。これにより、実際にコンピュータを設計する場合、仕様の選択肢を多様化することができる。【００８５】
次に、本発明を実施するための第3の実施の形態について図面を参照して詳細に説明する。【００８６】
図11を参照すると、本発明を実施するための第3の実施の形態は、図1に示した第1の実施の形態において、上流ネットワークインタフェース2-1〜Nと下流ネットワークインタフェース5-1〜Mの機能とをファームウェアとして実装している。【００８７】
上流ネットワークインタフェース9-1〜Nは、TLPの処理を行うCPU901-1〜Nと、プログラムを記憶するメモリ902-1〜Nと、メモリ902-1〜Nに記憶され、CPU901-1〜Nに読み込まれ、第1の実施の形態における上流ネットワークインタフェース2-1〜Nと同様の処理をCPU901-1〜Nに行わせる上流ネットワークインタフェースプログラム9021-1〜Nとを含む。プログラム9021-1〜Nは、磁気ディスクや光ディスクなどの機械読み取り可能な記録媒体に格納して提供することができる。【００８８】
同様に、下流ネットワークインタフェース10-1〜Mは、TLPの処理を行うCPU1001-1〜Mと、プログラムを記憶するメモリ1002-1〜Mと、メモリ1002-1〜Mに記憶され、CPU1001-1〜Mに読み込まれ、第1の実施の形態における下流ネットワークインタフェース5-1〜Mと同様の処理をCPU1001-1〜Mに行わせる下流ネットワークインタフェースプログラム10021-1〜Mとを含む。プログラム10021-1〜Mは、磁気ディスクや光ディスクなどの機械読み取り可能な記録媒体に格納して提供することができる。【００８９】
なお、本実施の形態では、上流ネットワークインタフェース9-1〜Nと、下流ネットワークインタフェース10-1〜Mの全てをファームウェアで実現する場合を示したが、一部をファームウェアで実現し、残りをハードウェアで実現する方法も可能である。【００９０】
本実施の形態では、本発明の第1の実施の形態の機能をファームウェアで実現する場合を示したが、同様に、本発明の第2の実施の形態の機能をファームウェアで実現することも可能である。【００９１】
以上、実施の形態を参照して本発明を説明したが、本発明は上記実施の形態に限定されるものではない。本発明の構成や詳細には、本発明の範囲内で当業者が理解し得る様々な変更をすることができる。【００９２】
本願は、2007年10月26日に出願された日本出願特願2007-278395号を基礎とする優先権を主張し、その開示のすべてをここに取り込む。
【産業上の利用可能性】
【００９３】
本発明によれば、コンピュータ装置やネットワーク装置、産業用機器やコンシューマ機器において、1つ以上のコンピュータと1つ以上のI/Oとをネットワークを介して接続する用途に適用できる。
【図１】
0005564948.tif 000002
【図２】
0005564948.tif 000003
【図３】
0005564948.tif 000004
【図４】
0005564948.tif 000005
【図５】
0005564948.tif 000006
【図６】
0005564948.tif 000007
【図７】
0005564948.tif 000008
【図８】
0005564948.tif 000009
【図９】
0005564948.tif 000010
【図１０】
0005564948.tif 000011
【図１１】
0005564948.tif 000012
【図１２】
0005564948.tif 000013