(57)【要約】【課題】ＰＣＩＭが仮想ツリーを切り替えるタイミングを判定する装置及び方法を提供する。【解決手段】複数のＵｐｓｔｒｅａｍポートと複数のＤｏｗｎｓｔｒｅａｍポートを備え、少なくとも一つのＵｐｓｔｒｅａｍポートに一以上の物理サーバが接続され、少なくとも一つのＤｏｗｎｓｔｒｅａｍポートに一以上のＩ／Ｏデバイスが接続されたＰＣＩスイッチであって、ＰＣＩスイッチは、仮想ツリーに関する特定の処理の完了を検知し、検知した結果に基づいて仮想ＰＣＩスイッチの構成が変更可能であるか否かを判定し、少なくとも仮想ＰＣＩスイッチの構成が変更可能であることと、仮想ＰＣＩスイッチを特定する識別子とを含む通知情報を送信する制御部と、を備えたことを特徴とする【選択図】図１
2009294828.tif 000002
【特許請求の範囲】
【請求項１】
複数のＵｐｓｔｒｅａｍポートと複数のＤｏｗｎｓｔｒｅａｍポートを備え、少なくとも一つの前記Ｕｐｓｔｒｅａｍポートに一以上の物理サーバが接続され、少なくとも一つの前記Ｄｏｗｎｓｔｒｅａｍポートに一以上のＩ／Ｏデバイスが接続されたＰＣＩスイッチであって、
前記ＰＣＩスイッチは、
前記一以上の物理サーバと前記一以上のＩ／Ｏデバイスとを対応付けを示す仮想ツリーを構成する仮想ＰＣＩスイッチの構成を設定するスイッチユニットと、
複数の前記Ｕｐｓｔｒｅａｍポート及び複数の前記Ｄｏｗｎｓｔｒｅａｍポートと、前記スイッチユニットとを接続するＰＣＩブリッジと、
前記仮想ツリーに関する特定の処理の完了を検知し、前記検知した結果に基づいて前記仮想ＰＣＩスイッチの構成が変更可能であるか否かを判定し、前記判定結果が切り替え可能であるときに、少なくとも前記仮想ＰＣＩスイッチの構成が変更可能であることと、前記仮想ＰＣＩスイッチを特定する識別子とを含む通知情報を送信する制御部と、
を備えたことを特徴とするＰＣＩスイッチ。
【請求項２】
前記制御部は、さらに前記仮想ツリーを管理する管理マネージャに接続され、
前記通知情報を前記管理マネージャに送信することを特徴とする請求項１に記載のＰＣＩスイッチ。
【請求項３】
前記制御部は、
前記仮想ツリーに関する特定の処理が完了を検知した結果を記憶する記憶部を備え、
前記検知した結果に基づいて前記仮想ＰＣＩスイッチの構成が変更可能であるか否かを判定する場合に、前記記憶部に記憶された結果を参照して前記仮想ＰＣＩスイッチの構成が変更可能であるか否かを判定することを特徴とする請求項１に記載のＰＣＩスイッチ。
【請求項４】
前記制御部は、
前記仮想ツリーに関する特定の処理の完了を検知する場合に、
前記制御部が行う前記仮想ツリーに対するリセット処理の完了を各前記Ｄｏｗｎｓｔｒｅａｍポート毎に検知することを特徴とする請求項１または３に記載のＰＣＩスイッチ。
【請求項５】
前記制御部は、
前記仮想ツリーに関する特定の処理の完了を検知する場合に、
前記Ｄｏｗｎｓｔｒｅａｍポートに接続された前記Ｉ／Ｏデバイスから発行されるトランザクションを抑制し、
前記トランザクションが抑制される前に前記Ｄｏｗｎｓｔｒｅａｍポートに存在している実行中のトランザクションの処理の完了を各前記Ｄｏｗｎｓｔｒｅａｍポート毎に検知することを特徴とする請求項１に記載のＰＣＩスイッチ。
【請求項６】
前記ＰＣＩスイッチは、少なくとも一つの前記Ｕｐｓｔｒｅａｍポートに一以上の物理サーバまたは他の前記ＰＣＩスイッチが接続され、少なくとも一つの前記Ｄｏｗｎｓｔｒｅａｍポートに一以上のＩ／Ｏデバイスまたは他のＰＣＩスイッチが接続されたことを特徴とする請求項１から請求項５いずれかに記載のＰＣＩスイッチ。
【請求項７】
ＣＰＵとメモリとＰＣＩインタフェースを備える一以上の物理サーバと、
一以上のＩ／Ｏデバイスと、
複数のＵｐｓｔｒｅａｍポートと複数のＤｏｗｎｓｔｒｅａｍポートを備え、少なくとも一つの前記Ｕｐｓｔｒｅａｍポートに一以上の物理サーバを接続し、少なくとも一つの前記Ｄｏｗｎｓｔｒｅａｍポートに一以上のＩ／Ｏデバイスを接続し、前記一以上の物理サーバと前記一以上のＩ／Ｏデバイスとを対応付けを示す仮想ツリーを構成するＰＣＩスイッチと、
を備えるＰＣＩスイッチシステムにおける仮想ツリーの切り替え方法であって、
前記ＰＣＩスイッチが、前記一以上の物理サーバと前記一以上のＩ／Ｏデバイスとを対応付けを示す仮想ツリーを構成するステップと、
前記ＰＣＩスイッチが前記仮想ツリーに関する特定の処理の完了を検知するステップと、
前記ＰＣＩスイッチが前記検知した結果に基づいて、前記仮想ツリーを構成する仮想ＰＣＩスイッチの構成が変更可能であるか否かを判定するステップと、
前記判定結果が切り替え可能であるときに、前記ＰＣＩスイッチが少なくとも前記仮想ＰＣＩスイッチの構成が変更可能であることと、前記仮想ＰＣＩスイッチを特定する識別子とを含む通知情報を送信するステップと、
を含むことを特徴とする仮想ツリーの切り替え方法。
【請求項８】
前記ＰＣＩスイッチシステムは、さらに前記仮想ツリーを管理する管理マネージャを備え、前記管理マネージャは前記ＰＣＩスイッチに接続され、
前記通知情報を送信するステップは、
少なくとも前記仮想ＰＣＩスイッチの構成が変更可能であることと、前記仮想ＰＣＩを特定する識別子とを含む通知情報を送信する場合に、前記ＰＣＩスイッチが、前記管理マネージャに前記通知情報を送信し、
前記管理マネージャは、受信した前記通知情報に基づいて仮想ツリーが切り替え可能か否かを判定し、前記判定結果が切り替え可能であるときに、仮想ツリーの切り替え処理の実行要求を前記ＰＣＩスイッチに発行することを特徴とする請求項７に記載の仮想ツリーの切り替え方法。
【請求項９】
前記ＰＣＩスイッチは、前記仮想ツリーに関する特定の処理の完了を検知した結果を記憶する記憶部を備え、
前記ＰＣＩスイッチが前記検知した結果に基づいて、前記仮想ツリーを構成する前記仮想ＰＣＩスイッチの構成が変更可能であるか否かを判定するステップは、
前記記憶部に記憶された結果を参照して前記ＰＣＩスイッチが前記検知した結果に基づいて、前記仮想ツリーを構成する前記仮想ＰＣＩスイッチの構成が変更可能であるか否かを判定することを特徴とする請求項７に記載の仮想ツリー切り替え方法。
【請求項１０】
前記特定の処理は、前記物理サーバが前記ＰＣＩスイッチに発行した前記仮想ツリーに対するリセット処理であって、
前記ＰＣＩスイッチが前記仮想ツリーに関する特定の処理の完了を検知するステップは、
前記仮想ツリーに対するリセット処理の完了を各前記Ｄｏｗｎｓｔｒｅａｍポート毎に検知することを特徴とする請求項７または９に記載の仮想ツリー切り替え方法。
【請求項１１】
前記特定の処理は、前記Ｄｏｗｎｓｔｒｅａｍポートに接続された前記Ｉ／Ｏデバイスから発行されるトランザクションを抑制する処理であって、
前記ＰＣＩスイッチが前記仮想ツリーに関する特定の処理の完了を検知するステップは、
前記ＰＣＩスイッチが、前記Ｄｏｗｎｓｔｒｅａｍポートに接続された前記Ｉ／Ｏデバイスから発行されるトランザクションを抑制し、
前記トランザクションが抑制される前に前記Ｄｏｗｎｓｔｒｅａｍポートに存在している実行中のトランザクションの処理の完了を各前記Ｄｏｗｎｓｔｒｅａｍポート毎に検知することを特徴とする請求項７に記載の仮想ツリー切り替え方法。
【請求項１２】
一以上の物理サーバと、
一以上のＩ／Ｏデバイスと、
複数のＵｐｓｔｒｅａｍポートと複数のＤｏｗｎｓｔｒｅａｍポートを備え、少なくとも一つの前記Ｕｐｓｔｒｅａｍポートに一以上の物理サーバが接続され、少なくとも一つの前記Ｄｏｗｎｓｔｒｅａｍポートに一以上のＩ／Ｏデバイスが接続されたＰＣＩスイッチと、
前記一以上の物理サーバと前記ＰＣＩスイッチとに接続された、仮想ツリーを管理する管理マネージャと、を備えるＰＣＩスイッチシステムであって、
前記ＰＣＩスイッチは、
前記一以上の物理サーバと前記一以上のＩ／Ｏデバイスとを対応付けを示す前記仮想ツリーを構成する仮想ＰＣＩスイッチの設定をするスイッチユニットと、
複数の前記Ｕｐｓｔｒｅａｍポート及び複数の前記Ｄｏｗｎｓｔｒｅａｍポートと、前記スイッチユニットとを接続するＰＣＩブリッジと、
前記仮想ツリーに関する特定の処理の完了を検知し、前記検知した結果に基づいて前記仮想ＰＣＩスイッチの構成が変更可能であるか否かを判定し、前記判定結果が切り替え可能であるときに、少なくとも前記仮想ＰＣＩスイッチの構成が変更可能であることと、前記仮想ＰＣＩスイッチを特定する識別子とを含む通知情報を送信する制御部と、を備え、
前記制御部は、前記通知情報を前記管理マネージャに送信し、
前記管理マネージャは、受信した前記通知情報に基づいて前記仮想ツリーが切り替え可能であるか否かを判定し、前記判定結果が切り替え可能であるときに、仮想ツリーの切り替え処理の実行要求を前記ＰＣＩスイッチに発行することを特徴とするＰＣＩスイッチシステム。
【請求項１３】
前記制御部は、
前記仮想ツリーに関する特定の処理の完了を検知した結果を記憶する記憶部を備え、
前記検知した結果に基づいて前記仮想ＰＣＩスイッチの構成が変更可能であるか否かを判定する場合に、前記記憶部に記憶された結果を参照して前記仮想ＰＣＩスイッチの構成が変更可能であるか否かを判定することを特徴とする請求項１２に記載のＰＣＩスイッチシステム。
【請求項１４】
前記制御部は、
前記仮想ツリーに関する特定の処理の完了を検知する場合に、
前記制御部が行う前記仮想ツリーに対するリセット処理の完了を各前記Ｄｏｗｎｓｔｒｅａｍポート毎に検知することを特徴とする請求項１２または１３に記載のＰＣＩスイッチシステム。
【請求項１５】
前記制御部は、
前記仮想ツリーに関する特定の処理の完了を検知する場合に、
前記Ｄｏｗｎｓｔｒｅａｍポートに接続された前記Ｉ／Ｏデバイスから発行されるトランザクションを抑制し、
前記トランザクションが抑制される前に前記Ｄｏｗｎｓｔｒｅａｍポートに存在している実行中のトランザクションの処理の完了を各前記Ｄｏｗｎｓｔｒｅａｍポート毎に検知することを特徴とする請求項１２に記載のＰＣＩスイッチシステム。
【請求項１６】
前記管理マネージャは、前記制御部から送信された前記通知情報を記憶する記憶部を備え、受信した前記通知情報に基づいて前記仮想ツリーが切り替え可能であるか否かを判定する場合に、前記記憶部に記憶された通知情報を参照して前記仮想ツリーが切り替え可能であるか否かを判定することを特徴とする請求項１２に記載のＰＣＩスイッチシステム。
【請求項１７】
前記ＰＣＩスイッチは、少なくとも一つの前記Ｕｐｓｔｒｅａｍポートに一以上の物理サーバまたは他のＰＣＩスイッチが接続され、少なくとも一つの前記Ｄｏｗｎｓｔｒｅａｍポートに一以上のＩ／Ｏデバイスまたは他のＰＣＩスイッチが接続されたことを特徴とする請求項１２に記載のＰＣＩスイッチシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の計算機と複数のＩ／Ｏデバイスとを接続するＰＣＩスイッチに関する。
【背景技術】
【０００２】
近年のＩＴシステムでは大量のサーバが利用されており、大量のサーバを設置するスペースを確保するために、ブレードサーバのような高密度なサーバが求められている。また、一方では、サーバに搭載されるＣＰＵは、半導体技術の進展によって、複数のＣＰＵを同一のＬＳＩ上に搭載するマルチコア化が進展している。
【０００３】
前述したように、ブレードサーバは高密度であることが要求されるため、Ｉ／Ｏデバイスの搭載数には制限があるのに対し、高性能化していくＣＰＵは性能を有効に活用するためにＩ／Ｏデバイスの数を増やす必要があり、両者の相反する要求が問題であった。
【０００４】
前述した問題の解決方法として、Ｉ／Ｏデバイスの搭載数を増加させるＰＣＩスイッチを用いることが考えられる（例えば、特許文献１を参照）。近年、ＰＣＩの規格を策定するＰＣＩ  ＳＩＧにおいて、複数のサーバに対応した規格であるＭＲ−ＩＯＶ（マルチルートＩＯ仮想化）が策定されており、該規格に対応したＰＣＩスイッチはブレードサーバにも適用可能である。
【０００５】
ＭＲ−ＩＯＶに対応するＰＣＩスイッチは、複数のサーバ各々に別のデバイスツリーを認識させることができる。前述したような複数のサーバ各々が認識できるデバイスツリーを仮想ツリーと呼ぶ。
【０００６】
該ＰＣＩスイッチを用いたシステムでは、複数のサーバと複数のＩ／Ｏデバイスとが該ＰＣＩスイッチを介して接続される。ＰＣＩスイッチに接続された複数のサーバと複数のＩ／Ｏデバイスとは、ＰＣＩスイッチ内で構成される複数の仮想ツリーによって対応付けられている。前述したように該ＰＣＩスイッチは複数の独立した仮想ツリーを構成し、各々の仮想ツリー（例えば、第一の仮想ツリーと第二の仮想ツリーと）はそれぞれ異なるサーバのＩ／Ｏサブシステムとして利用することができる。
【０００７】
仮想ツリーを制御するＰＣＩ−Ｍａｎａｇｅｒ（以下、ＰＣＩＭ）は、仮想ツリーの生成・削除・変更等の管理を行う。ＰＣＩＭはソフトウェアとして実装されるためサーバ上でも実行可能であるが、一般的にセキュリティの面を考慮してＳｕｐｅｒ  Ｖｉｓｏｒ  Ｐｒｏｅｓｓｏｒ（ＳＶＰ）等に実装される。なお、ＭＲ−ＩＯＶでは、特に仮想ツリーをＶＨ（Ｖｉｒｔｕａｌ  Ｈｉｅｒａｒｃｈｙ）と呼ぶ。
【特許文献１】米国特許出願公開第２００６／０２４２３５３号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ＭＲ−ＩＯＶに対応するＰＣＩスイッチは、システムを停止させることなく仮想ツリーの構成を切り替えて、新たに仮想ツリーを構成することができる。したがって、ＭＲ−ＩＯＶに対応するＰＣＩスイッチを用いて一以上のサーバと一以上のＩ／Ｏデバイスとを接続したサーバシステムでは、仮想ツリーを切り替えることによって、一以上のサーバと一以上のＩ／Ｏデバイスとの対応付けを任意に変更することができる。
【０００９】
仮想ツリーの切り替えはサーバシステムに備えられた管理マネージャであるＰＣＩＭが行い、仮想ツリーはサーバが使用する。つまり、仮想ツリーの管理者と仮想ツリーの使用者とが異なる。
【００１０】
通常、サーバとＰＣＩＭとは物理的に分かれており、仮想ツリーに対して異なる経路でアクセスを行うため、仮想ツリー内において、サーバのトランザクションとＰＣＩＭのトランザクションとの順序が保証されない。このため、サーバが仮想ツリーを使用している時にＰＣＩＭが仮想ツリーの切り替えを実行した場合、不具合が生じる。
【００１１】
例えば、ＰＣＩスイッチ内に残留したトランザクションに関する不具合が考えられる。トランザクションが処理されている時に仮想ツリーが切り替えられた場合、処理中のトランザクションがＰＣＩスイッチ内に残留する。その後、ＰＣＩＭが、仮想ツリーを切り替え、トランザクションが残留しているＰＣＩスイッチを用いて仮想ツリーを再度構成した場合、前記ＰＣＩスイッチ内に残留していたトランザクションによって、サーバまたはＩ／Ｏデバイスが予測しない動作を行う可能性がある。仮想ツリーを切り替えるときに、前述したようなサーバの動作における整合性が崩れることは、重要な業務を行うサーバには許容されない。
【００１２】
本発明は、切り替え対象の仮想ツリーを構成するＰＣＩスイッチ内に存在するトランザクションが全て処理済であることを検知し、さらに、仮想ツリーを構成する仮想ＰＣＩスイッチ（図２参照）の構成が変更可能であることを判定し、ＰＣＩＭに仮想ＰＣＩスイッチの構成が変更可能であることを通知し、仮想ツリーを切り替えるタイミングを保証するＰＣＩスイッチを提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明の代表的な一例を示せば以下の通りである。すなわち、複数のＵｐｓｔｒｅａｍポートと複数のＤｏｗｎｓｔｒｅａｍポートを備え、少なくとも一つの前記Ｕｐｓｔｒｅａｍポートに一以上の物理サーバが接続され、少なくとも一つの前記Ｄｏｗｎｓｔｒｅａｍポートに一以上のＩ／Ｏデバイスが接続されたＰＣＩスイッチであって、前記ＰＣＩスイッチは、前記一以上の物理サーバと前記一以上のＩ／Ｏデバイスとを対応付けを示す仮想ツリーを構成する仮想ＰＣＩスイッチの構成を設定するスイッチユニットと、複数の前記Ｕｐｓｔｒｅａｍポート及び複数の前記Ｄｏｗｎｓｔｒｅａｍポートと、前記スイッチユニットとを接続するＰＣＩブリッジと、前記仮想ツリーに関する特定の処理の完了を検知し、前記検知した結果に基づいて前記仮想ＰＣＩスイッチの切り替えが可能であるか否かを判定し、前記判定結果が切り替え可能であるときに、少なくとも前記仮想ＰＣＩスイッチの切り替えが可能であることと、前記仮想ＰＣＩスイッチを特定する識別子とを含む通知情報を送信する制御部と、を備えたことを特徴とする。
【発明の効果】
【００１４】
本発明の一実施の形態によれば、ＰＣＩスイッチが、切り替え対象の仮想ツリーを構成するＰＣＩスイッチ内に存在する全てのトランザクションの処理が完了していることを検知し、さらに、切り替え対象の仮想ツリーを構成する仮想ＰＣＩスイッチの構成が変更可能であるか否かを判定し、切り替え対象の仮想ツリーを構成する仮想ＰＣＩスイッチの構成が変更可能である場合、切り替え対象の仮想ツリーを構成する仮想ＰＣＩスイッチの構成が変更可能であることを管理マネージャに通知し、管理マネージャが前記通知に基づいて、仮想ツリーの切り替えが可能であるか否かを判定することによって、管理マネージャは、最適なタイミングで仮想ツリーを切り替えることができる。
【発明を実施するための最良の形態】
【００１５】
［第１の実施の形態］
図１は、本発明の第１の実施の形態のサーバシステムの構成図である。
【００１６】
サーバシステムは、複数の物理サーバ１００−１、１００−２と、複数のＩ／Ｏデバイス１１４−１、１１４−２、１１４−３、１１４−４とを備え、これらは互いに複数のＰＣＩスイッチＡ１０７−１、Ｂ１０７−２、Ｃ１０７−３、Ｄ１０７−４を介して接続されている。以下、物理サーバ１００−１、１００−２を特別に区別しない場合は、単に物理サーバ１００と記載する。他の符号についても同様に記載する。複数のＰＣＩスイッチＡ１０７−１、Ｂ１０７−２、Ｃ１０７−３、Ｄ１０７−４を特別に区別しない場合、単にＰＣＩスイッチ１０７と記載する。
【００１７】
また、サーバシステムは、物理サーバ１００とＩ／Ｏデバイス１１４との対応付けを示す仮想ツリーの構成、変更、及び削除を行う管理マネージャであるＰＣＩＭ１１２−１と、物理サーバ１００の電源制御及び状態管理を行うサーバ管理部１１３−１とを備える。なお、図１において、ＰＣＩＭ１１２−１及びサーバ管理部１１３−１は一つのみを示しているが、本発明はこれに限定されず、二つ以上あってもよい。
【００１８】
ＰＣＩＭ１１２−１と複数のＰＣＩスイッチ１０７は、制御Ｉ／Ｆ１１５−１を介して接続されているが、ＰＣＩＭ１１２−１から各々のＰＣＩスイッチ１０７への設定の読み出し及び変更ができれば、他のスイッチ等を経由して間接的に接続されていてもよい。
【００１９】
サーバ管理部１１３−１と各物理サーバ１００のチップセット１０２−１、１０２−２は、制御Ｉ／Ｆ１１６−１介して接続されているが、物理サーバ１００の電源制御及び状態管理ができれば、他のスイッチ等を経由して間接的に接続されていてもよい。
【００２０】
ＰＣＩＭ１１２−１とサーバ管理部１１３−１とは、制御Ｉ／Ｆ１１８−１を介して接続されているが、ＰＣＩＭ１１２−１とサーバ管理部１１３−１との間で通信を行うことができれば、他のスイッチ等を経由して間接的に接続されてもよいし、また、物理的に同一のモジュールに搭載されていてもよい。
【００２１】
なお、制御Ｉ／Ｆ１１５−１、１１６−１、１１８−１は、例えば、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）が使用される。
【００２２】
ＰＣＩスイッチ１０７は、複数のＵｐｓｔｒｅａｍポート１２１、複数のＤｏｗｎｓｔｒｅａｍポート１２２、ＵｐｓｔｒｅａｍポートとＤｏｗｎｓｔｒｅａｍポートとの間の通信を制御するスイッチユニット１０８、及びＰＣＩスイッチ１０７の設定を制御するスイッチ制御部１０９を備える。
【００２３】
前記スイッチ制御部１０９は、少なくともＵｐｓｔｒｅａｍポート１２１とＤｏｗｎｓｔｒｅａｍポート１２２との間の対応付けを管理するＭＲ（マルチルート）制御部１１０を含む。さらに、前記スイッチ制御部１０９は、切り替え対象の仮想ツリーを構成するＰＣＩスイッチ１０７内に存在する全てのトランザクションの処理が完了していることを検知し、切り替え対象の仮想ツリーを構成する仮想ＰＣＩスイッチ（図２参照）の構成が変更可能であるか否かを判定し、切り替え対象の仮想ツリーを構成する仮想ＰＣＩスイッチ（図２参照）の構成が変更可能であると判定された場合、切り替え対象の仮想ツリーを構成する仮想ＰＣＩスイッチ（図２参照）の構成が変更可能であること含む通知情報をＰＣＩＭ１１２−１に送信する仮想ツリーステート通知部１１１を含む。
【００２４】
ＰＣＩＭ１１２−１は、仮想ツリーを制御する仮想ツリー制御部１２３−１、及びＭＲ環境での障害処理を実行するＭＲ障害処理部１２４−１を含むＰＣＩＭユニット１１９−１を備える。さらに、本発明では、特定の仮想ツリーの切り替えが可能であるか否かを判定する仮想ツリーステート管理部１２０−１を含む。
【００２５】
Ｉ／Ｏデバイス１１４−１、１１４−２、１１４−３、１１４−４とＰＣＩスイッチＣ１０７−３、Ｄ１０７−４のＤｏｗｎｓｔｒｅａｍポートＣ１２２−５、Ｄ１２２−６、Ｃ１２２−７、Ｄ１２２−８との間は、Ｂａｓｅ  ＰＣＩまたはＭＲ−ＩＯＶ対応の（以下、ＭＲ）ＰＣＩ規格のインタフェース１１７−９、１１７−１０、１１７−１１、１１７−１２で接続されている。
【００２６】
物理サーバ１００のチップセット１０２−１、１０２−２とＰＣＩスイッチＡ１０７−１、Ｂ１０７−２のＵｐｓｔｒｅａｍポートＡ１２１−１、Ｂ１２１−２、Ａ１２１−３、Ｂ１２１−４との間は、Ｂａｓｅ  ＰＣＩまたはＭＲ  ＰＣＩ規格のインタフェース１１７−１、１１７−２、１１７−３、１１７−４で接続されている。
【００２７】
ＰＣＩスイッチＡ１０７−１、Ｂ１０７−２のＤｏｗｎｓｔｒｅａｍポートＣ１２２−１、Ｄ１２２−２、Ｃ１２２−３、Ｄ１２２−４と、ＰＣＩスイッチＣ１０７−３、Ｄ１０７−４のＵｐｓｔｒｅａｍポートＡ１２１−５、Ｂ１２１−６、Ａ１２１−７、Ｂ１２１−８との間は、ＭＲ  ＰＣＩ規格のインタフェース１１７−５、１１７−６、１１７−７、１１７−８で接続されている。以下、Ｕｐｓｔｒｅａｍポート１２１、及びＤｏｗｎｓｔｒｅａｍポート１２２を区別しない場合、ポート１２１、１２２と記載する。
【００２８】
物理サーバ１００は、一つ以上のＣＰＵ１０３、メモリ１０４、及びチップセット１０２からなるハードウェア１０１を含む。また、物理サーバ１００は、ハードウェア１０１の制御を行うファームウェア１０５とオペレーティングシステム（ＯＳ）１０６とを備える。
【００２９】
次に、仮想ツリーを実現するためのスイッチユニット１０８とＰＣＩＭ１１２−１について、図２〜８を用いて説明する。なお、ここで説明する装置と方法は仮想ツリーを実現するための一例であり、同等の機能を実現する構成は本説明の一通りに限らない。
【００３０】
図２は、本発明の第１の実施の形態のＰＣＩスイッチＡ１０７−１のスイッチユニット１０８−１の構成、及び仮想ツリーを説明するブロック図である。以下、ＰＣＩスイッチＡ１０７−１について説明するが、他のＰＣＩスイッチＢ１０７−２、Ｃ１０７−３、Ｄ１０７−４も同様の構成である。
【００３１】
スイッチユニット１０８−１は、Ｕｐｓｔｒｅａｍ側コンフィギュラブルＰＣＩバス部２０１−１、仮想ＰＣＩスイッチコンフィギュラブルＰＣＩバス部２０２−１、Ｄｏｗｎｓｔｒｅａｍ側コンフィギュラブルＰＣＩバス部２０３−１、複数のＵｐｓｔｒｅａｍ側ＰＣＩブリッジ２０４、及び複数のＤｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジ２０５を備える。
【００３２】
Ｕｐｓｔｒｅａｍ側コンフィギュラブルＰＣＩバス部２０１−１は、Ｕｐｓｔｒｅａｍポート１２１とＵｐｓｔｒｅａｍ側ＰＣＩブリッジ２０４との間のバスを構成する。仮想ＰＣＩスイッチコンフィギュラブルＰＣＩバス部２０２−１は、Ｕｐｓｔｒｅａｍ側ＰＣＩブリッジ２０４とＤｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジ２０５との間のバスを構成する。Ｄｏｗｎｓｔｒｅａｍ側コンフィギュラブルＰＣＩバス部２０３−１は、Ｄｏｗｎｓｔｒｅａｍポート１２２とＤｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジ２０５との間のバスを構成する。以下、Ｕｐｓｔｒｅａｍ側コンフィギュラブルＰＣＩバス部２０１、仮想ＰＣＩスイッチコンフィギュラブルＰＣＩバス部２０２、及びＤｏｗｎｓｔｒｅａｍ側コンフィギュラブルＰＣＩバス部２０３を区別しない場合、コンフィギュラブルＰＣＩバス部２０１、２０２、２０３と記載する。また、Ｕｐｓｔｒｅａｍ側ＰＣＩブリッジ２０４、及びＤｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジ２０５を区別しない場合、ＰＣＩブリッジ２０４、２０５と記載する。
【００３３】
各コンフィギュラブルＰＣＩバス部２０１、２０２、２０３は、複数の独立したバスを構成することも可能である。また、各コンフィギュラブルＰＣＩバス部２０１、２０２、２０３のバスの構成は、ＭＲ制御部１１０−１が行う。
【００３４】
ＭＲ制御部１１０−１は、バスの構成を管理するためのＭＲ  Ｕｐｓｔｒｅａｍ制御テーブル３００−１とＭＲ  Ｄｏｗｎｓｔｒｅａｍ制御テーブル３１０−１とを備える。以下、ＭＲ  Ｕｐｓｔｒｅａｍ制御テーブル３００−１とＭＲ  Ｄｏｗｎｓｔｒｅａｍ制御テーブル３１０−１とを区別しない場合、制御テーブル３００、３１０と記載する。
【００３５】
ＰＣＩＭ１１２−１は、制御テーブル３００、３１０を読み出すことによって、バスの構成が分かる。また、ＰＣＩＭ１１２−１は制御テーブル３００、３１０にバスの構成を書き込むことによって、バスの構成を変更することができる。なお、各コンフィギュラブルＰＣＩバス部２０１、２０２、２０３が二つ以上の独立したバスを構成している場合、ＰＣＩＭ１１２−１は、特定のバスのみを変更することもできる。
【００３６】
次に、各コンフィギュラブルＰＣＩバス部２０１、２０２、２０３は短破線で示すバスが構成されているものとし、各ＵｐｓｔｒｅａｍポートＡ１２１−１、Ｂ１２１−２に接続されている物理サーバ１００が認識できる仮想ツリーの構成について説明する。
【００３７】
ＵｐｓｔｒｅａｍポートＡ１２１−１に接続されている物理サーバ１００は、長破線で囲まれた部分のＰＣＩブリッジ群２０６（ＰＣＩブリッジＡ２０４−１、ＰＣＩブリッジＥ２０５−１、ＰＣＩブリッジＦ２０５−２）を認識できる。一つのＵｐｓｔｒｅａｍ側ＰＣＩブリッジ２０４と複数のＤｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジ２０５とからなる構成は、論理的にＰＣＩスイッチと同等である。以下、長破線で囲ったＰＣＩブリッジ群２０６を仮想ＰＣＩスイッチ２０６と呼ぶ。また、図２に示すように符号２０６−１と符号Ａとは同一のものを表し、以下、仮想ＰＣＩスイッチＡ２０６−１または仮想ＰＣＩスイッチＡと記載する。他の符号Ｂ〜Ｆ等についても同様に記載する。
【００３８】
すなわち、ＵｐｓｔｒｅａｍポートＡ１２１−１に接続されている物理サーバ１００は、長破線で囲った仮想ＰＣＩスイッチＡ２０６−１を介して、ＤｏｗｎｓｔｒｅａｍポートＣ１２２−１、Ｄ１２２−２までのツリー構造を認識することができる。このように、Ｕｐｓｔｒｅａｍポート１２１に接続されている物理サーバ１００から認識可能なツリー構造を仮想ツリーと呼ぶ。
【００３９】
ＵｐｓｔｒｅａｍポートＢ１２１−２に接続されている物理サーバ１００は、Ｕｐｓｔｒｅａｍ側ＰＣＩブリッジＤ２０４−４を認識することができるが、Ｕｐｓｔｒｅａｍ側ＰＣＩブリッジＤ２０４−４から先はバスが設定されていない。したがって、Ｕｐｓｔｒｅａｍ側ＰＣＩブリッジＤ２０４−４が、ＵｐｓｔｒｅａｍポートＢ１２１−２に接続されている物理サーバ１００が認識できる仮想ツリーの終端となる。
【００４０】
図３は、本発明の第１の実施の形態の仮想ＰＣＩスイッチコンフィギュラブルＰＣＩバス部２０２−１のバス構成を変更した場合の仮想ツリーを示す説明図である。
【００４１】
図３において、各コンフィギュラブルＰＣＩバス部２０１−１、２０２−１、２０３−１は短破線で示すバスが構成されているものとし、各ＵｐｓｔｒｅａｍポートＡ１２１−１、Ｂ１２１−２に接続されている物理サーバ１００が認識できる仮想ツリーの構成について説明する。
【００４２】
ＵｐｓｔｒｅａｍポートＢ１２１−２に接続されている物理サーバ１００は、長破線で囲まれた部分の仮想ＰＣＩスイッチＢ２０６−２を認識し、仮想ＰＣＩスイッチＢ２０６−２を介してＤｏｗｎｓｔｒｅａｍポートＣ１２２−１、Ｄ１２２−２までの仮想ツリーを認識できる。
【００４３】
もう一方のＵｐｓｔｒｅａｍポートＡ１２１−１に接続された物理サーバ１００は、Ｕｐｓｔｒｅａｍ側ＰＣＩブリッジＡ２０４−１を認識することができるが、Ｕｐｓｔｒｅａｍ側ＰＣＩブリッジＡ２０４−１から先はバスが構成されていない。したがって、Ｕｐｓｔｒｅａｍ側ＰＣＩブリッジＡ２０４−１が、ＵｐｓｔｒｅａｍポートＡ１２１−１に接続されている物理サーバ１００から認識される仮想ツリーの終端となる。
【００４４】
図４は、本発明の第１の実施の形態において縦列に多段のＰＣＩスイッチＡ１０７−１、Ｂ１０７−２を接続し、二つのＵｐｓｔｒｅａｍポートＡ１２１−１、Ｂ１２１−２に接続された各々の物理サーバ１００毎に、独立した二つの仮想ツリーを構成する場合を示す説明図である。
【００４５】
図４において、各コンフィギュラブルＰＣＩバス部２０１−１、２０２−１、２０３−１、２０１−２、２０２−２、２０３−２は、短破線で示すバスが構成されているものとする。また、一つのＤｏｗｎｓｔｒｅａｍポートＣ１２２−１に複数のＤｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジＥ２０５−１と、Ｆ２０５−２とが対応付けられており、また、一つのＵｐｓｔｒｅａｍポートＡ１２１−３に複数のＵｐｓｔｒｅａｍ側ＰＣＩブリッジＡ２０４−５と、Ｂ２０４−６とが対応付けられている。
【００４６】
まず、複数のＰＣＩブリッジ２０４、２０５が同一のポート１２１、１２２を共有することができることについて説明する。
【００４７】
ＰＣＩスイッチ１０７は、一つのポート１２１、１２２に複数のＰＣＩブリッジ２０４、２０５を割り当てる機能としてＭＲ＿ＰＣＩリンクを備える。ＭＲ  ＰＣＩリンクは、リンクローカル識別子によって分類される。リンクローカル識別子は、複数のＵｐｓｔｒｅａｍ側ＰＣＩブリッジ２０４と複数のＤｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジ２０５とが同一のポート１２１、１２２で接続されている場合、接続されている複数のＵｐｓｔｒｅａｍ側ＰＣＩブリッジ２０４と複数のＤｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジ２０５との接続関係を特定するための識別子である。
【００４８】
具体的には、ＰＣＩスイッチ１０７は、ＭＲ  ＰＣＩリンクを通過するパケットにリンクローカル識別子を割り当てており、割り当てられたリンクローカル識別子に応じて接続（リンク）先のＵｐｓｔｒｅａｍ側ＰＣＩブリッジ２０４が対応付けられる。つまり、リンクローカル識別子が同一のＵｐｓｔｒｅａｍ側ＰＣＩブリッジ２０４とＤｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジ２０５とが通信することができる。
【００４９】
例えば、Ｄｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジＥ２０５−１とＵｐｓｔｒｅａｍ側ＰＣＩブリッジＡ２０４−５とがリンクローカル識別子「１」で対応付けられており、Ｄｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジＦ２０５−２とＵｐｓｔｒｅａｍ側ＰＣＩブリッジＢ２０４−６とがリンクローカル識別子「２」で対応付けられている場合、リンクローカル識別子が同一のＤｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジＥ２０５−１とＵｐｓｔｒｅａｍ側ＰＣＩブリッジＡ２０４−５との間で通信することができ、また、Ｄｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジＦ２０５−２とＵｐｓｔｒｅａｍ側ＰＣＩブリッジＢ２０４−６との間で通信することできる。しかし、Ｄｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジＥ２０５−１とＵｐｓｔｒｅａｍ側ＰＣＩブリッジＢ２０４−６とは、同一のポートを使用していてもリンクローカル識別子が異なるため通信することはできない。
【００５０】
リンクローカル識別子が割り当てられたことによって、ＵｐｓｔｒｅａｍポートＡ１２１−１に接続された物理サーバ１００は仮想ＰＣＩスイッチＣ２０６−３と仮想ＰＣＩスイッチＥ２０６−５とから構成される仮想ツリーが認識でき、ＵｐｓｔｒｅａｍポートＢ１２１−２に接続された物理サーバ１００は仮想ＰＣＩスイッチＤ２０６−４と仮想ＰＣＩスイッチＦ２０６−６とから構成される別の仮想ツリーを認識できる。なお、リンクローカル識別子は、ＭＲ制御部１１０によってＭＲ  ＰＣＩリンク毎に重複しないように割り当てられている。前述したように、ＰＣＩスイッチ１０７は、複数のＰＣＩブリッジ２０４、２０５で同一のポートを共有することができる。
【００５１】
次に、ＰＣＩＭ１１２−１が実行する仮想ツリーの切り替え処理について説明する。
【００５２】
仮想ツリーの切り替え処理は、ＭＲ制御部１１０の各コンフィギュラブルＰＣＩバス部２０１、２０２、２０３のバスの構成が変更され、仮想ＰＣＩスイッチ２０６の構成が変更されることによって、実行される。
【００５３】
仮想ツリーの切り替え処理は、サーバシステムで実行中の全ての物理サーバ１００に影響するため、実行中の物理サーバ１００自身が仮想ツリーの切り替え処理を行うことはセキュリティ上問題がある。したがって、実行中である物理サーバ１００とは別にＰＣＩＭ１１２−１が存在し、ＰＣＩＭ１１２−１が仮想ツリーの切り替え処理を実行することが望ましい。
【００５４】
本実施の形態において、ＰＣＩＭ１１２−１が仮想ツリー切り替え処理の実行要求を各ＰＣＩスイッチ１０７に送信し、各ＰＣＩスイッチ１０７のＭＲ制御部１１０が前記要求を受信し、前記受信した要求に基づいて、各ＰＣＩスイッチ１０７のＭＲ制御部１１０が仮想ＰＣＩスイッチ２０６の構成を変更することによって、仮想ツリーの切り替え処理が実行される。なお、仮想ツリーの切り替え処理の実行要求には、新たな仮想ツリーの構成に関する情報が含まれる。
【００５５】
なお、仮想ツリーの構成の方法及び仮想ツリーの切り替えの方法は本実施の形態の一つに限られるものではなく、同等の機能が実現できるものならばどのような形態であってもよい。
【００５６】
具体的には、図４において、仮想ツリーの切り替え処理を行うとき、ＰＣＩＭ１１２−１の仮想ツリー制御部１２３が、各々のスイッチユニット１０８−１、１０８−２に接続されたＭＲ制御部１１０−１、１１０−２の各制御テーブル３００−１、３１０−１、３００−２、３１０−２に、仮想ＰＣＩスイッチＣ２０６−３、仮想ＰＣＩスイッチＤ２０６−４、仮想ＰＣＩスイッチＥ２０６−５、及び仮想ＰＣＩスイッチＦ２０６−６の構成を変更するデータを書き込み、前記データが書き込まれたテーブルに基づいて、ＭＲ制御部１１０−１、１１０−２が仮想ＰＣＩスイッチＣ２０６−３、仮想ＰＣＩスイッチＤ２０６−４、仮想ＰＣＩスイッチＥ２０６−５、及び仮想ＰＣＩスイッチＦ２０６−６の構成を変更する。
【００５７】
図５及び図７は、第１の実施の形態のＰＣＩスイッチＡ１０７−１、Ｂ１０７−２のＭＲ  Ｕｐｓｔｒｅａｍ制御テーブル３００−１、３００−２の構成例を示した説明図である。図６は、第１の実施の形態のＰＣＩスイッチＡ１０７−１におけるＭＲ  Ｄｏｗｎｓｔｒｅａｍ制御テーブル３１０−１の構成例を示した説明図である。
【００５８】
図５に示すＭＲ  Ｕｐｓｔｒｅａｍ制御テーブル３００−１は、Ｕｐｓｔｒｅａｍ側ＰＣＩブリッジ識別子３０１、Ｕｐｓｔｒｅａｍポート識別子３０２、仮想ＰＣＩスイッチ識別子３０３、リンクローカル識別子３０４、及び仮想ＰＣＩスイッチリセットフラグ３０５を含む。
【００５９】
Ｕｐｓｔｒｅａｍ側ＰＣＩブリッジ識別子３０１は、ＰＣＩスイッチ１０７のＵｐｓｔｒｅａｍ側ＰＣＩブリッジ２０４を特定する識別子を格納する。
【００６０】
Ｕｐｓｔｒｅａｍポート識別子３０２は、ＰＣＩスイッチ１０７のＵｐｓｔｒｅａｍポート１２１を特定する識別子を格納する。
【００６１】
仮想ＰＣＩスイッチ識別子３０３は、Ｕｐｓｔｒｅａｍ側ＰＣＩブリッジ識別子３０１に対応するＵｐｓｔｒｅａｍ側ＰＣＩブリッジ２０４を用いて構成される仮想ＰＣＩスイッチ２０６を特定するための識別子を格納する。
【００６２】
リンクローカル識別子３０４は、複数のＵｐｓｔｒｅａｍ側ＰＣＩブリッジ２０４と複数のＤｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジ２０５とが同一のポートで接続されている場合、接続されている複数のＵｐｓｔｒｅａｍ側ＰＣＩブリッジ２０４と複数のＤｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジ２０５との接続関係を特定するための識別子を格納する。
【００６３】
仮想ＰＣＩスイッチリセットフラグ３０５は、仮想ツリー切り替え要求を受信した、Ｕｐｓｔｒｅａｍ側ＰＣＩブリッジ識別子３０１に対応するＵｐｓｔｒｅａｍ側ＰＣＩブリッジ２０４を含むスイッチユニット１０８のＭＲ制御部１１０によってリセット処理が開始されたか否かを示す情報を格納する。例えば、リセット処理が開始された場合、「リセット開始」などの情報が格納される。
【００６４】
なお、図７に示すＭＲ  Ｕｐｓｔｒｅａｍ制御テーブル３００−２は、図５と同一の構成である。
【００６５】
図６に示すＭＲ  Ｄｏｗｎｓｔｒｅａｍ制御テーブル３１０−１は、Ｄｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジ識別子３１１、Ｄｏｗｎｓｔｒｅａｍポート識別子３１２、仮想ＰＣＩスイッチ識別子３１３、リンクローカル識別子３１４、及び仮想ＰＣＩスイッチリセットフラグ３１５を含む。
【００６６】
Ｄｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジ識別子３１１は、ＰＣＩスイッチ１０７のＤｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジ２０５を特定する識別子を格納する。
【００６７】
Ｄｏｗｎｓｔｒｅａｍポート識別子３１２は、ＰＣＩスイッチ１０７のＤｏｗｎｓｔｒｅａｍポート１２２を特定する識別子を格納する。
【００６８】
仮想ＰＣＩスイッチ識別子３１３は、Ｄｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジ識別子３１１に対応するＤｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジ２０５を用いて構成される仮想ＰＣＩスイッチ２０６を特定するための識別子を格納する。
【００６９】
リンクローカル識別子３１４は、複数のＵｐｓｔｒｅａｍ側ＰＣＩブリッジ２０４と複数のＤｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジ２０５とが同一のポートで接続されている場合、接続されている複数のＵｐｓｔｒｅａｍ側ＰＣＩブリッジ２０４と複数のＤｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジ２０５との接続関係を特定するための識別子を格納する。なお、リンクローカル識別子３１４は、図５に示したリンクローカル識別子３０４と同一のものである。
【００７０】
仮想ＰＣＩスイッチリセットフラグ３１５は、仮想ツリー切り替え要求を受信した、Ｄｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジ識別子３１１に対応するＤｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジ２０５を含むスイッチユニット１０８のＭＲ制御部１１０によってリセット処理が開始されたか否かを示す情報を格納する。なお、仮想ＰＣＩスイッチリセットフラグ３１５は、図５に示した仮想ＰＣＩスイッチリセットフラグ３０５と同一のものである。
【００７１】
ＭＲ制御部１１０は、ＭＲ  Ｕｐｓｔｒｅａｍ制御テーブル３００、及びＭＲ  Ｄｏｗｎｓｔｒｅａｍ制御テーブル３１０の情報から、仮想ＰＣＩスイッチ識別子３０３、３１３が同一のＵｐｓｔｒｅａｍ側ＰＣＩブリッジ２０４とＤｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジ２０５とを抽出することができる。これによって、ＭＲ制御部１１０は、仮想ＰＣＩスイッチコンフィギュラブルＰＣＩバス部２０２の構成を行うことができる。
【００７２】
なお、図５に示すＭＲ  Ｕｐｓｔｒｅａｍ制御テーブル３００−１と、図６に示すＭＲ  Ｄｏｗｎｓｔｒｅａｍ制御テーブル３１０−１とは、図４におけるスイッチユニット１０８−１に対応している。
【００７３】
エントリ３０６−１−１が仮想ＰＣＩスイッチＣ２０６−３とＵｐｓｔｒｅａｍ側ＰＣＩブリッジＡ２０４−１とＵｐｓｔｒｅａｍポートＡ１２１−１とが対応付けられていることを示し、エントリ３０６−１−４は仮想ＰＣＩスイッチＤ２０６−４とＵｐｓｔｒｅａｍ側ＰＣＩブリッジＤ２０４−４とＵｐｓｔｒｅａｍポートＢ１２１−２とが対応付けられていることを示している。
【００７４】
また、エントリ３１６−１−１は仮想ＰＣＩスイッチＣ２０６−３とＤｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジＥ２０５−１とＤｏｗｎｓｔｒｅａｍポートＣ１２２−１とが対応付けられ、リンクローカル識別子が１であることを示し、エントリ３１６−１−２は仮想ＰＣＩスイッチＤ２０６−４とＤｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジＦ２０５−２とＤｏｗｎｓｔｒｅａｍポートＣ１２２−１とが対応付けられ、リンクローカル識別子が２であることを示している。
【００７５】
図７に示すＭＲ  Ｕｐｓｔｒｅａｍ制御テーブル３００−２は、図４におけるスイッチユニット１０８−２に対応している。
【００７６】
エントリ３０６−２−１が仮想ＰＣＩスイッチＥ２０６−５とＵｐｓｔｒｅａｍ側ＰＣＩブリッジＡ２０４−５とＵｐｓｔｒｅａｍポートＡ１２１−３とが対応付けられ、リンクローカル識別子が１であることを示し、エントリ３０６−２−２が仮想ＰＣＩスイッチＦ２０６−６とＵｐｓｔｒｅａｍ側ＰＣＩブリッジＢ２０４−６とＵｐｓｔｒｅａｍポートＡ１２１−３とが対応付けられ、リンクローカル識別子が２であることを示している。
【００７７】
また、図６と図７とから、リンクローカル識別子が同一であるスイッチユニット１０８−１のＤｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジＥ２０５−１とスイッチユニット１０８−２のＵｐｓｔｒｅａｍ側ＰＣＩブリッジＡ２０４−５とは、互いに通信可能な関係にあることが分かる。同様に、スイッチユニット１０８−１のＤｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジＦ２０５−２とスイッチユニット１０８−２のＵｐｓｔｒｅａｍ側ＰＣＩブリッジＢ２０４−６とは、互いに通信可能な関係にあることが分かる。
【００７８】
図８は、本発明の第１の実施の形態のＰＣＩＭ１１２−１の仮想ツリーＵｐｓｔｒｅａｍ管理テーブル３５０の構成例を示した説明図である。
【００７９】
ＰＣＩＭ１１２−１のＰＣＩＭユニット１１９−１に含まれる仮想ツリー制御部１２３は、仮想ツリーＵｐｓｔｒｅａｍ管理テーブル３５０を備える。
【００８０】
仮想ツリーＵｐｓｔｒｅａｍ管理テーブル３５０は、仮想ツリー識別子３５１、ＰＣＩスイッチ識別子３５２、仮想ＰＣＩスイッチ識別子３５３、Ｕｐｓｔｒｅａｍ側ＰＣＩブリッジ識別子３５４、Ｕｐｓｔｒｅａｍポート識別子３５５、及びリンクローカル識別子３５６を含む。
【００８１】
仮想ツリー識別子３５１は、ポート１２１、１２２及び仮想ＰＣＩスイッチ２０６によって構成された仮想ツリーを特定する識別子を格納する。なお、ＰＣＩスイッチ識別子３５２、仮想ＰＣＩスイッチ識別子３５３、Ｕｐｓｔｒｅａｍ側ＰＣＩブリッジ識別子３５４、Ｕｐｓｔｒｅａｍポート識別子３５５、及びリンクローカル識別子３５６は、ＰＣＩスイッチ１０７のＭＲ  Ｕｐｓｔｒｅａｍ制御テーブル３００と同一の識別子であるが、仮想ツリー識別子３５１はＰＣＩＭ１１２−１の仮想ツリー制御部１２３が独自で管理する識別子である。
【００８２】
図９は、本発明の第１の実施の形態のＰＣＩＭ１１２−１の仮想ツリーＤｏｗｎｓｔｒｅａｍ管理テーブル３６０の構成例を示した説明図である。
【００８３】
ＰＣＩＭ１１２−１のＰＣＩＭユニット１１９−１に含まれる仮想ツリー制御部１２３は、仮想ツリーＤｏｗｎｓｔｒｅａｍ管理テーブル３６０を備える。
【００８４】
仮想ツリーＤｏｗｎｓｔｒｅａｍ管理テーブル３６０は、仮想ツリー識別子３６１、ＰＣＩスイッチ識別子３６２、仮想ＰＣＩスイッチ識別子３６３、Ｄｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジ識別子３６４、Ｄｏｗｎｓｔｒｅａｍポート識別子３６５、及びリンクローカル識別子３６６を含む。
【００８５】
仮想ツリー識別子３６１は、ポート１２１、１２２及び仮想ＰＣＩスイッチ２０６によって構成された仮想ツリーを特定する識別子を格納する。なお、ＰＣＩスイッチ識別子３６２、仮想ＰＣＩスイッチ識別子３６３、Ｄｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジ識別子３６４、Ｄｏｗｎｓｔｒｅａｍポート識別子３６５、及びリンクローカル識別子３６６は、ＰＣＩスイッチ１０７のＭＲ  Ｄｏｗｎｓｔｒｅａｍ制御テーブル３１０と同一の識別子であるが、仮想ツリー識別子３６１はＰＣＩＭ１１２−１の仮想ツリー制御部１２３が独自で管理する識別子である。
【００８６】
図１０は、本発明の第１の実施の形態のＰＣＩＭ１１２−１の物理トポロジ管理テーブル３７０の構成例を示した説明図である。
【００８７】
ＰＣＩＭ１１２−１のＰＣＩＭユニット１１９−１に含まれる仮想ツリー制御部１２３は、物理トポロジ管理テーブル３７０を備える。
【００８８】
物理トポロジ管理テーブル３７０は、ＰＣＩスイッチ識別子３７１、ポート識別子３７２、パートナーＰＣＩスイッチ識別子３７３、パートナーポート識別子３７４、及びリンクの種類３７５を含む。物理トポロジ管理テーブル３７０は、各ＰＣＩスイッチ１０７のポート１２１、１２２間の物理的な接続関係を表す。
【００８９】
リンクの種類３７５は、ポート１２１、１２２の接続関係を格納する。ポート１２１、１２２がＢａｓｅ  ＰＣＩ規格（すなわち、一つのポート１２１、１２２に一つのＰＣＩブリッジ２０４、２０５を割り当てる接続関係）のインタフェースに接続されて場合は、「Ｂａｓｅ」となり、ポートがＭＲ  ＰＣＩ規格のインタフェースに接続されて場合は、「ＭＲ」となる。
【００９０】
なお、物理トポロジ管理テーブル３７０のエントリの作成方法は、どのような方法であってもよい。
【００９１】
次に、ＰＣＩＭ１１２−１が仮想ツリーの構成を検知して仮想ツリー識別子を割り当てる方法について、図４、図８、図９、及び図１０を用いて説明する。
【００９２】
仮想ツリー制御部１２３は、仮想ツリーＵｐｓｔｒｅａｍ管理テーブル３５０、仮想ツリーＤｏｗｎｓｔｒｅａｍ管理テーブル３６０、及び物理トポロジ管理テーブル３７０を備える。
【００９３】
仮想ツリー制御部１２３は、仮想ツリーＵｐｓｔｒｅａｍ管理テーブル３５０と仮想ツリーＤｏｗｎｓｔｒｅａｍ管理テーブル３６０との各エントリから、各スイッチユニット１０８−１、１０８−２が構成する仮想ＰＣＩスイッチＣ２０６−３、Ｄ２０６−４、Ｅ２０６−５、Ｆ２０６−６の構成情報（例えば、仮想ＰＣＩスイッチ２０６毎に関連付けられるポート１２１、１２２、ＰＣＩブリッジ２０４、２０５、及びリンクローカル識別子３０４、３１４）を取得する。
【００９４】
例えば、仮想ツリー制御部１２３は、仮想ＰＣＩスイッチＣ２０６−３がＵｐｓｔｒｅａｍ側ＰＣＩブリッジＡ２０４−１とＤｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジＥ２０５−１とを含み、ＵｐｓｔｒｅａｍポートＡ１２１−１とＤｏｗｎｓｔｒｅａｍポートＣ１２２−１とが対応付けられることが分かる。また、仮想ツリー制御部１２３は、ＤｏｗｎｓｔｒｅａｍポートＣ１２２−１のリンクローカル識別子が「１」であることが分かる。
【００９５】
また、仮想ツリー制御部１２３は、物理トポロジ管理テーブル３７０の各エントリから、Ｕｐｓｔｒｅａｍポート１２１とＤｏｗｎｓｔｒｅａｍポート１２２との間を接続する各リンクの状態が分かる。
【００９６】
例えば、仮想ツリー制御部１２３は、ＰＣＩスイッチＡ１０７―１のＤｏｗｎｓｔｒｅａｍポート１２２−１とＰＣＩスイッチＢ１０７−２のＵｐｓｔｒｅａｍポート１２１−３との間に、ＭＲ対応のリンクが張られていることが分かる。
【００９７】
仮想ツリー制御部１２３は、仮想ＰＣＩスイッチ２０６の情報と物理的なリンクの情報とから、仮想ツリーの構成に関する情報を取得し、また、仮想ツリー識別子３５１、３６１を生成する。例えば、ＰＣＩスイッチＡ１０７−１のＵｐｓｔｒｅａｍポートＡ１２１−１に接続されている物理サーバ１００は仮想ＰＣＩスイッチＣ２０６−３と仮想ＰＣＩスイッチＥ２０６−５を介してＰＣＩスイッチＢ１０７−２のＤｏｗｎｓｔｒｅａｍポートＣ１２２−３までの仮想ツリーの構成を認識し、さらに、仮想ツリー制御部１２３は物理サーバ１００が認識する仮想ツリーを特定するため仮想ツリー識別子３５１、３６１を「１」に設定する。これによって、仮想ツリー制御部１２３は、各仮想ツリーと生成された仮想ツリー識別子３５１、３６１とを関連付けて仮想ツリーを一元的に管理できる。
【００９８】
以上、仮想ツリーを実現する装置と方法について説明したが、本発明は仮想ツリーを実現する装置と方法を前述したものに限定されない。
【００９９】
第１の実施の形態では、仮想ツリーの切り替え処理を実行する前に、ＰＣＩスイッチ１０７が仮想ツリーに対してリセット処理を行い、リセット処理が完了したことを確認したＰＣＩＭ１１２−１が仮想ツリーの切り替え処理を実行する場合について説明する。
【０１００】
リセット処理は、仮想ツリーの構成を初期化（リセット）できるならばどのような方法でもよいが、第１の実施の形態では、ＭＲ−ＩＯＶで定められているＰｅｒ−ＶＨ  Ｒｅｓｅｔを用いた場合を考える。最初にＰｅｒ−ＶＨ  Ｒｅｓｅｔについて説明する。
【０１０１】
Ｐｅｒ−ＶＨ  Ｒｅｓｅｔは、ＰＣＩＭ１１２−１、または、物理サーバ１００から特定の仮想ツリーに対するリセット要求が前記特定の仮想ツリーを構成するＰＣＩスイッチ１０７及びＩ／Ｏデバイス１１４等に送信され、前記リセット要求を受信したＰＣＩスイッチ１０７及びＩ／Ｏデバイス１１４が各々リセット処理を実行することによって、仮想ツリーのリセット処理を実現する方法である。なお、Ｐｅｒ−ＶＨ  Ｒｅｓｅｔは仮想ツリーの一部のみについてリセット処理を実行することもできるが、第１の実施の形態では仮想ツリー全体にリセット処理を実行する場合を考える。
【０１０２】
Ｐｅｒ−ＶＨ  Ｒｅｓｅｔを使用して仮想ツリーのリセット処理を実行する場合、仮想ツリーの最上層である物理サーバ１００が、Ｐｅｒ−ＶＨ  Ｒｅｓｅｔのリセット要求を仮想ツリーを構成するＰＣＩスイッチ１０７及びＩ／Ｏデバイス１１４等全てに送信する。なお、Ｐｅｒ−ＶＨ  Ｒｅｓｅｔのリセット要求は、物理サーバ１００がサーバ管理部１１３からリセット命令を受信してから発行される。
【０１０３】
リセット要求の送信は、具体的には、リンクの種類がＭＲ対応のリンクならば専用のＤＬＬＰ（Ｄａｔａ  Ｌｉｎｋ  Ｌａｙｅｒ  Ｐａｃｋｅｔ）を用いたリセット要求が送信される。リンクの種類がＭＲ対応のリンク以外（Ｂａｓｅ）ならばＢａｓｅ  ＰＣＩに準拠するリセット要求が送信される。
【０１０４】
すなわち、仮想ツリー全体に対しリセット処理が実行される場合、最初に物理サーバ１００のチップセット１０２がＭＲ対応のリンクの種類であるならば、リセット要求のＤＬＬＰを直下のＰＣＩスイッチ１０７に送信し、ＭＲ対応のリンクの種類でないならば、Ｂａｓｅ  ＰＣＩに準拠するリセット要求を直下のＰＣＩスイッチ１０７に送信する。
【０１０５】
リセット要求のＤＬＬＰまたはＢａｓe  ＰＣＩに準拠するリセットの要求を受信したＰＣＩスイッチ１０７は、Ｄｏｗｎｓｔｒｅａｍポート１２２にリセット対象の仮想ツリーに対応付けられているＰＣＩスイッチ１０７またはＩ／Ｏデバイス１１４等が接続されているか否かを判定する。
【０１０６】
Ｄｏｗｎｓｔｒｅａｍポート１２２にリセット対象の仮想ツリーに対応付けられたＰＣＩスイッチ１０７またはＩ／Ｏデバイス１１４等が接続されていると判定された場合、接続がＭＲ  ＰＣＩ規格のインタフェースならば、ＰＣＩスイッチ１０７は、同リセット要求のＤＬＬＰを接続されているＰＣＩスイッチ１０７またはＩ／Ｏデバイス１１４等に送信する。また、接続がＢａｓｅ  ＰＣＩ規格のインタフェースならば、ＰＣＩスイッチ１０７は、Ｂａｓｅ  ＰＣＩ規格に準拠したリセット処理を行う。
【０１０７】
Ｄｏｗｎｓｔｒｅａｍポート１２２にリセット対象の仮想ツリーに対応付けられたＰＣＩスイッチ１０７またはＩ／Ｏデバイス１１４等が接続されていないと判定された場合、ＰＣＩスイッチ１０７は、ＰＣＩスイッチ１０７自身においてリセット処理を実行する。
【０１０８】
リセット要求のＤＬＬＰを受信したＰＣＩスイッチ１０７またはＩ／Ｏデバイス１１４は、前記リセット要求のＤＬＬＰを送信したＰＣＩスイッチ１０７に、受信したことを確認するための応答のＤＬＬＰを送信する。これによって、リセット要求が仮想ツリー全体に送信されていることが保証される。前述した処理が仮想ツリーの最下層まで実行される。
【０１０９】
リセット要求のＤＬＬＰを受信したＰＣＩスイッチ１０７は、リセット処理の対象である仮想ツリーを構成する仮想ＰＣＩスイッチ２０６を初期化（リセット）する。具体的には、前記リセット要求のＤＬＬＰを受信したＰＣＩスイッチ１０７のＭＲ制御部１１０が、スイッチユニット１０８に仮想ＰＣＩスイッチ２０６の初期化（リセット）を要求し、前記初期化（リセット）の要求を受信したスイッチユニット１０８が仮想ＰＣＩスイッチ２０６の初期化（リセット）を実行する。また、リセット要求のＤＬＬＰを受信したＩ／Ｏデバイス１１４は、リセット処理の対象である仮想ツリーに対して初期化（リセット）を行う。
【０１１０】
なお、リセット要求のＤＬＬＰは、リセット対象である仮想スイッチ２０６を識別する情報として、例えば、リンクローカル識別子３０４、３１４を含む。
【０１１１】
以下、第１の実施の形態において仮想ツリーを切り替える時のＰＣＩスイッチ１０７及びＰＣＩＭ１１２−１の処理について、図１、図１１〜２２を用いて説明する。
【０１１２】
図１１及び図１２は、第１の実施の形態の仮想ツリーの構成を示した説明図である。
【０１１３】
図１１において、物理サーバ１００−１が仮想ＰＣＩスイッチＡ２０６−１１、仮想ＰＣＩスイッチＢ２０６−１２、及び仮想ＰＣＩスイッチＣ２０６−１３を介して、Ｉ／Ｏデバイス１１４−１、１１４−３に対応付けられている。
【０１１４】
図１２においては、物理サーバ１００−２が仮想ＰＣＩスイッチＤ２０６−１４、仮想ＰＣＩスイッチＥ２０６−１５、仮想ＰＣＩスイッチＦ２０６−１６を介して、Ｉ／Ｏデバイス１１４−１、１１４−３に対応付けられている。
【０１１５】
以下、図１１に示す仮想ツリーから図１２に示す仮想ツリーに切り替えられることによって、物理サーバ１００−１の実行中の処理を物理サーバ１００−２が引き継ぐ場合について説明する。
【０１１６】
第１の実施の形態では、切り替えの対象である仮想ツリーに対しリセット処理が実行されて、リセット処理の完了が検知されてからＰＣＩＭ１１２−１が仮想ツリーを切り替えることによって、仮想ツリーの切り替えの最中に、仮想ツリーを構成するＰＣＩブリッジ２０４、２０５などにトランザクションが残留することがないため、安全に仮想ツリーの切り替えが実現できる。
【０１１７】
図１３は、本発明の第１の実施の形態のＰＣＩスイッチＡ１０７−１の構成を示したブロック図である。なお、ＰＣＩスイッチＢ１０７−２、Ｃ１０７−３、Ｄ１０７−４についても構成は同様である。
【０１１８】
ＰＣＩスイッチＡ１０７−１の仮想ツリーステート通知部１１１−１は、仮想ＰＣＩスイッチステート記録部５０１−１と仮想ＰＣＩスイッチステート送信部５０２−１とを備える。さらに、仮想ＰＣＩスイッチステート記録部５０１−１は、仮想ＰＣＩスイッチステートテーブル６００−１を含む。
【０１１９】
仮想ＰＣＩスイッチステート記録部５０１−１は、ＰＣＩスイッチ１０７−１内に存在する仮想ＰＣＩスイッチ２０６のリセット処理が完了したか否かを示す情報を格納する。また、仮想ツリーステート通知部１１１−１は、ＰＣＩスイッチ１０７−１内に存在する仮想ＰＣＩスイッチ２０６のリセット処理が完了したことを示す情報をＰＣＩＭ１１２−１に送信する。詳しい処理については後述する。
【０１２０】
図１４は、本発明の第１の実施の形態の仮想ＰＣＩスイッチステートテーブル６００−１の構成例を示す説明図である。
【０１２１】
仮想ＰＣＩスイッチステートテーブル６００−１は、仮想ＰＣＩスイッチ識別子６０１、Ｄｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジ識別子６０２、及びＤｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジ識別子６０２に対応するＰＣＩブリッジ２０４、２０５におけるリセット処理完了情報６０３を含む。
【０１２２】
リセット処理完了情報６０３は、リセット処理が完了したか否かを示す情報を格納する。例えば、リセット処理が完了した場合、「Ｙｅｓ」となり、リセット処理が完了していない場合、「Ｎｏ」となる。
【０１２３】
仮想ＰＣＩスイッチステートテーブル６００−１は、ＭＲ制御部１１０−１が受信したリセット処理の要求に含まれる情報に基づいて作成される。なお、仮想ＰＣＩスイッチステートテーブル６００−１は、ＭＲ制御部１１０−１が作成してもよいし、仮想ＰＣＩスイッチステート記録部５０１−１が作成してもよい。
【０１２４】
次に、第１の実施の形態におけるＰＣＩスイッチ１０７の動作の詳細を、図１１〜図１６、及び図２１を用いて説明していく。
【０１２５】
図２１は、本発明の第１の実施の形態のＰＣＩスイッチ１０７が実行するリセット処理のフローチャートである。以下、ＰＣＩスイッチＡ１０７−１を例に説明する。
【０１２６】
ＰＣＩスイッチＡ１０７−１は、物理サーバ１００−１から仮想ツリーの切り替え要求を受信して一連の処理を開始する（９０１）。
【０１２７】
はじめに、ＰＣＩスイッチＡ１０７−１は、図５、図６に示した制御テーブル３００、３１０を参照し、リセットフラグ３０５、３１５がセットされているか否かを判定する（９０２）。具体的には、ＰＣＩスイッチＡ１０７−１のＭＲ制御部１１０−１がＢａｓｅ  ＰＣＩ準拠のリセット要求を受信した場合、または、ＰＣＩＭ１１２−１からリセット要求を受信した場合、該当する仮想ＰＣＩスイッチ２０６のリセットフラグ３０５、３１５をセットする。
【０１２８】
リセットフラグがセットされていると判定された場合、ＰＣＩスイッチＡ１０７−１は、ステップ９０５へ進む。リセットフラグ３０５、３１５がセットされていないと判定された場合、ＰＣＩスイッチＡ１０７−１は、ＵｐｓｔｒｅａｍポートＡ１２１−１からリセット要求のＤＬＬＰを受信したか否かを判定する（９０３）。
【０１２９】
リセット要求のＤＬＬＰを受信したと判定された場合、ＰＣＩスイッチＡ１０７−１は、該当する仮想スイッチのリセットフラグ３０５、３１５をセットし、応答のＤＬＬＰを前記リセット要求のＤＬＬＰを送信したＰＣＩスイッチ１０７に返信する（９０４）。リセット要求のＤＬＬＰを受信しなかったと判定された場合、ＰＣＩスイッチＡ１０７−１は、ステップ９０１に戻る。
【０１３０】
次に、ＰＣＩスイッチＡ１０７−１のＭＲ制御部１１０−１は、仮想ＰＣＩスイッチステートテーブル６００−１の初期設定を実行する。具体的には、図１４に示すように、リセット処理の対象の仮想ＰＣＩスイッチＡ２０６−１１を構成するＤｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジＣ２０５−１及びＤ２０５−２に対応する全てのエントリ６０４−１、６０４−２を作成し、リセット処理完了情報６０３を全て「Ｎｏ」に設定する。
【０１３１】
次に、ＰＣＩスイッチＡ１０７−１のＭＲ制御部１１０−１は、ＤｏｗｎｓｔｒｅａｍポートＣ１２２−１、Ｄ１２２−２のリンク先の種類を判定する（９０６）。具体的には、リンクがない（リンクがアクティブではない）、ＭＲリンクではないリンク、及び、ＭＲのリンクのいずれに該当するかが判定される。
【０１３２】
リンクがアクティブではないと判定された場合、ＰＣＩスイッチＡ１０７−１は、ステップ９１０へ進む。ＭＲではないリンクであると判定された場合、ＰＣＩスイッチＡ１０７−１は、Ｂａｓe  ＰＣＩ対応のリセット要求をリンク先に送信する（９０７）。
【０１３３】
ＭＲのリンクであると判定された場合、ＰＣＩスイッチＡ１０７−１は、リセット要求のＤＬＬＰをリンク先へ送信する（９０８）。さらに、前記要求を送信したリンク先から、ＰＣＩスイッチＡ１０７−１は、応答のＤＬＬＰを受信する（９０９）。
【０１３４】
図１１において、ＤｏｗｎｓｔｒｅａｍポートＣ１２２−１、Ｄ１２２−２は共にＭＲ  ＰＣＩのリンク、つまり、ＭＲのリンクが張られているため、共にステップ９０８に進む。
【０１３５】
ＰＣＩスイッチＡ１０７−１の仮想ＰＣＩスイッチステート記録部５０１−１は、リセット要求の送信が完了したＤｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジ識別子６０２に対応するエントリの、リセット処理完了情報６０３を「Ｎｏ」から「Ｙｅｓ」に更新する（９１０）。
【０１３６】
具体的には、リンクがアクティブではないと判定された場合、自動的にリセット処理完了情報６０３が「Ｎｏ」から「Ｙｅｓ」に更新される。ＭＲではないリンクであると判定された場合、ステップ９０７を経た後にリセット処理完了情報６０３が「Ｎｏ」から「Ｙｅｓ」に更新される。ＭＲのリンクであると判定された場合、ステップ９０８、及びステップ９０９を経た後にリセット処理完了情報６０３が「Ｎｏ」から「Ｙｅｓ」に更新される。
【０１３７】
なお、リセット処理の完了は、Ｄｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジ識別子６０２に対応するＤｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジ２０５毎に検知されているが、ＭＲ  Ｄｏｗｎｓｔｒｅａｍ制御テーブル３１０−１が備えられることによって、Ｄｏｗｎｓｔｒｅａｍ毎に検知される。
【０１３８】
ＰＣＩスイッチＡ１０７−１は、全てのエントリのリセット処理完了情報６０３が全て「Ｙｅｓ」になったか否かを判定する。
【０１３９】
図１５及び図１６は、本発明の第１の実施の形態において、仮想ＰＣＩスイッチステートテーブル６００の更新状態を示した説明図である。
【０１４０】
エントリ６０４−１は、ステップ９０６において、ＭＲのリンクであるのでステップ９０８、及びステップ９０９へと進み、ステップ９１０において、エントリ６０４−１のリセット処理完了情報６０３が「Ｙｅｓ」に更新される。また、エントリ６０４−２は、応答を受信していないため、リセット処理完了情報６０３は、「Ｎｏ」のままである（図１５参照）。
【０１４１】
ステップ９１１において、仮想ＰＣＩスイッチステート送信部５０２−１は、仮想ＰＣＩスイッチステートテーブル６００−１を監視しており、仮想ＰＣＩスイッチ識別子６０１に対応するエントリのリセット処理完了情報６０３が図１６に示すように全て「Ｙｅｓ」となっているか否かを判定する。なお、仮想ＰＣＩスイッチステート記録部５０１−１が監視を行い、仮想ＰＣＩスイッチ識別子６０１に対応するエントリのリセット処理完了情報６０３が全て「Ｙｅｓ」となったか否かを判定する形態であってもよい。
【０１４２】
仮想ＰＣＩスイッチ識別子６０１に対応するエントリのリセット処理完了情報６０３が全て「Ｙｅｓ」となっていると判定された場合、仮想ＰＣＩスイッチステート送信部５０２−１は、仮想ＰＣＩスイッチ２０６の構成が変更可能であることを含む情報をＰＣＩＭ１１２−１に送信する（９１２）。送信される情報は、少なくとも、仮想ＰＣＩスイッチ２０６の構成が変更可能であること、及び仮想ＰＣＩスイッチ識別子６０１を含む。
【０１４３】
なお、仮想ＰＣＩスイッチステート記録部５０１−１は、仮想ＰＣＩスイッチ２０６の構成が変更可能であることをＰＣＩＭ１１２−１に送信した後に、仮想ＰＣＩスイッチステートテーブル６００−１に格納されているデータを消去する。
【０１４４】
仮想ＰＣＩスイッチ識別子６０１に対応するエントリのリセット処理完了情報６０３が全て「Ｙｅｓ」となっていないと判定された場合、ＭＲ制御部１１０−１は、リセット処理のタイムアウト時間が過ぎているか否かを判定する（９１３）。
【０１４５】
リセット処理のタイムアウト時間が過ぎていると判定された場合、ＭＲ制御部１１０−１は、リセット処理が本来ならば十分に終了するだけの時間経過しているのも関わらず終了していないため、例外処理を行う（９１４）。例外処理としては、例えば、リセットの再試行、またはリンクの修復などがある。リセット処理のタイムアウト時間が過ぎていないと判定された場合、ＭＲ制御部１１０−１は、リセット処理が完了していないＤｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジ２０５に再度のリセット処理を試行するためステップ９０６へ進む。
【０１４６】
なお、ＰＣＩスイッチＢ１０７−２、Ｃ１０７−３、Ｄ１０７−４についても図２１に示すフローチャートと同様の処理が行われる。
【０１４７】
なお、ＰＣＩスイッチＡ１０７−１自身のリセット処理は、リセット要求を受信したＭＲ制御部１１０−１がスイッチユニット１０８−１にリセット命令を送信し、スイッチユニット１０８−１が前記命令に基づいてリセット処理を実行する。他のＰＣＩスイッチＢ１０７−２、Ｃ１０７−３、Ｄ１０７−４についても同様の処理が行われる。
【０１４８】
図１７は、本発明の第１の実施の形態のＰＣＩＭ１１２−１の構成を示したブロック図である。
【０１４９】
ＰＣＩＭ１１２−１は、ＰＣＩＭユニット１１９−１、及び仮想ツリーステート管理部１２０−１を備える。
【０１５０】
ＰＣＩＭユニット１１９−１は、仮想ツリー制御部１２３、及びＭＲ障害処理部１２４を含む。仮想ツリーステート管理部１２０は、仮想ツリーステート記録部７０１−１、及び仮想ツリーステートチェック部７０２−２を含む。さらに、仮想ツリーステート記録部７０１−１は、仮想ツリーステート記録テーブル８００−１を含む。
【０１５１】
仮想ツリー制御部１２３は、サーバシステム内全ての仮想ツリーに関する情報を保持し、また、仮想ツリーの管理を行っている。
【０１５２】
図１８は、本発明の第１の実施の形態の仮想ツリーステート記録テーブル８００−１の構成例を示した説明図である。
【０１５３】
仮想ツリーステート記録テーブル８００−１は、仮想ツリー識別子８０１、ＰＣＩスイッチ識別子８０２、仮想ＰＣＩスイッチ識別子８０３、及び仮想ＰＣＩスイッチ構成変更可能情報８０４を含む。
【０１５４】
仮想ＰＣＩスイッチ構成変更可能情報８０４は、仮想ＰＣＩスイッチ識別子８０３に対応する仮想ＰＣＩスイッチ２０６の構成が変更可能であるか否かを示す情報を格納する。
【０１５５】
以下、仮想ツリーの切り替えの処理における、ＰＣＩＭ１１２−１が実行する処理について説明する。
【０１５６】
図２２は、本発明の第１の実施の形態のＰＣＩＭ１１２−１が実行する仮想ツリーの切り替え処理のフローチャートである。
【０１５７】
ＰＣＩＭ１１２−１は、仮想ツリーの切り替え命令を受信してから一連の処理を開始する（１００１）。なお、前記命令は、サーバ管理部１１３−１から送信されたものである。
【０１５８】
前記命令に基づいて仮想ツリーステート記録部７０１−１は、仮想ツリーステート記録テーブル８００−１に、切り替え対象の仮想ツリーを構成する仮想ＰＣＩスイッチＡ２０６−１１、Ｂ２０６−１２、Ｃ２０６−１３に関するエントリを作成し、仮想ＰＣＩスイッチ構成変更可能情報８０４を全てＮｏに設定する（１００２）。
【０１５９】
仮想ツリーステート記録部７０１−１は、各ＰＣＩスイッチ１０７から、仮想ＰＣＩスイッチ識別子６０１、及び仮想ＰＣＩスイッチ識別子６０１に対応する仮想ＰＣＩスイッチ２０６の構成が変更可能であることを含む情報を受信する（１００３）。前記受信した情報は、図２１のステップ９１２で送信された情報と同一のものである。
【０１６０】
仮想ツリーステート記録部７０１−１は、ステップ１００３で受信した情報に含まれる及び仮想ＰＣＩスイッチ識別子６０１を参照し、該当するエントリを仮想ツリーステート記録テーブル８００−１から検索し、該当するエントリの仮想ＰＣＩスイッチ構成変更可能情報８０４を「Ｙｅｓ」に変更する（１００４）。
【０１６１】
図１９及び図２０は、本発明の第１の実施の形態の仮想ツリーステート記録テーブル８００−１の更新状態を示した説明図である。
【０１６２】
例えば、仮想ツリーステート記録部７０１−１が、ＰＣＩスイッチＡ１０７−１の仮想ＰＣＩスイッチステート送信部５０２−１から、仮想ＰＣＩスイッチＡ２０６−１１の構成が変更可能であることを含む情報を受信した場合、図１９に示すように仮想ツリーステート記録テーブル８００−１のエントリ８０５−１の仮想ＰＣＩスイッチ構成変更可能情報８０４が「Ｙｅｓ」に変更される。
【０１６３】
次に、仮想ツリーステートチェック部７０２−１は、仮想ツリーステート記録テーブル８００−１の全てのエントリの仮想ＰＣＩスイッチ構成変更可能情報８０４がＹｅｓになったか否かを判定する（１００５）。
【０１６４】
図２０に示すように、仮想ツリーステート記録テーブル８００−１の全てのエントリの仮想ＰＣＩスイッチ構成変更可能情報８０４がＹｅｓになったと判定された場合、仮想ツリーステートチェック部７０２−１は、仮想ツリーを切り替えることが可能であると判定する（１００６）。前記判定をうけて、仮想ツリー制御部１２３は、仮想ツリーを切り替える。具体的には、仮想ツリー制御部１２３は、各ＰＣＩスイッチ１０７に新たな仮想ツリーの構成に関するデータを含む仮想ツリー切り替え処理の実行要求を送信する。前記要求を受信した各ＰＣＩスイッチ１０７は、受信した要求に含まれる前記データに基づいて新たな仮想ＰＣＩスイッチ２０６を構成する。これによって、新たな仮想ツリーに切り替えられる。
【０１６５】
なお、第１の実施の形態において、仮想ＰＣＩスイッチステートテーブル６００−１を含まない場合も考えられる。この場合、仮想ＰＣＩスイッチステート送信部５０２−１が各Ｄｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジ２０５を監視する。例えば、Ｄｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジ２０５に対応付けられているＤｏｗｎｓｔｒｅａｍポート１２２のリンクがＭＲのリンクである場合、Ｄｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジ２０５が応答のＤＬＬＰを受信したことを仮想ＰＣＩスイッチステート送信部５０２−１が検知し、前記検知結果をＰＣＩＭ１１２−１送信する形態であってもよい。
【０１６６】
［第２の実施の形態］
第２の実施の形態は、物理サーバ１００が仮想サーバをサポートする状況において、仮想サーバの実行イメージを別の物理サーバ１００に移行させるマイグレーション技術について、特に、移行する場合に仮想サーバの実行停止時間が短い、ライブマイグレーションを想定している。以下、仮想サーバの実行イメージを別の物理サーバ１００に移行させる処理をマイグレーションと呼ぶ。
【０１６７】
具体的な処理としては、マイグレーション予定の仮想サーバが認識する仮想ツリーが受信するトランザクションが一時抑制され、抑制される以前に受信したトランザクション（以下、Ｉｎ−ｆｌｉｇｈｔトランザクション）の完了が確認された上で仮想サーバの実行イメージを別の物理サーバ１００へ移行され、実行イメージの移行に合わせて仮想ツリーが切り替えられる。
【０１６８】
Ｉｎ−ｆｌｉｇｈｔトランザクションの完了は、Ｉ／Ｏデバイス１１４が接続されているＤｏｗｎｓｔｒｅａｍポート１２２毎に検知される。具体的には、Ｉ／Ｏデバイス１１４が接続されているＤｏｗｎｓｔｒｅａｍポート１２２に対応付けられたＤｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジ２０５毎に検知されており、ＭＲ制御部１１０−５が備えるＭＲ  Ｄｏｗｎｓｔｒｅａｍ制御テーブル３１０を参照されることによって、Ｄｏｗｎｓｔｒｅａｍポート１２２毎に検知される。
【０１６９】
Ｉｎ−ｆｌｉｇｈｔトランザクションが完了したことを含む情報はＰＣＩＭ１１２−２（図２３参照）に送信され、ＰＣＩＭ１１２−２（図２３参照）は、受信した前記情報に基づいて切り替え予定の仮想ツリーを構成する全てのＩ／Ｏデバイス１１４についてＩｎ−ｆｌｉｇｈｔトランザクションが完了しているか否かを判定する。
【０１７０】
仮想ツリーを構成する全てのＩ／Ｏデバイス１１４についてＩｎ−ｆｌｉｇｈｔトランザクションが完了していると判定された場合、仮想ツリーが現在扱っているトランザクションは無いため、仮想ツリーが切り替える前、及び仮想ツリーの切り替えられた後で実行イメージが受信する通信の統一性が保証される。
【０１７１】
図２３は、本発明の第２の実施の形態のサーバシステムの構成を示す説明図である。第１の実施の形態との差異について説明する。
【０１７２】
物理サーバ１００−１、１００−２上では仮想サーバをサポートするＶＭＭ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｍｏｎｉｔｉｏｒ）１１０１−１、１１０１−２が動作しており、該ＶＭＭ１１０１−１、１１０１−２上で仮想サーバ１１０３−１が稼動している。さらに、仮想サーバ１１０３−１上ではＯＳ１１０２−１が動作しているが、これは図１のＯＳ１０６と同様のものである。
【０１７３】
ＰＣＩスイッチＥ１０７−５は、ＰＣＩスイッチＥ１０７−５が受信するトランザクションの抑制を行うトランザクションコントロール部１１０４、及び、ＰＣＩスイッチＥ１０７−５が受信するトランザクションが抑制される前に、ＰＣＩスイッチＥ１０７−５が受信したＩｎ−ｆｌｉｇｈｔトランザクションの実行の完了を検知するＩｎ−ｆｌｉｇｈｔトランザクション完了確認部１１０５を備える。さらに、ＰＣＩスイッチＥ１０７−５は、スイッチ制御部１０９−５内の仮想ＰＣＩスイッチステート通知部１１１−５に、Ｉｎ−ｆｌｉｇｈｔトランザクションの実行の完了を検知したことをＰＣＩＭ１１２−２に通知するトランザクション完了情報送信部１１０６を含む。
【０１７４】
トランザクションコントロール部１１０４は、ＤｏｗｎｓｔｒｅａｍポートＣ１２２−４０、Ｄ１２２−４１に接続されているＩ／Ｏデバイス１１４−５、１１４−６から発行されるトランザクションを、ＰＣＩスイッチＥ１０７−５内で抑制する。
【０１７５】
具体的な抑制方法についてはどのような方法でも構わないが、例えば、ＰＣＩスイッチＥ１０７−５が受信するトランザクションを格納するバッファに、トランザクションの進行を停止する方法が考えられる。
【０１７６】
Ｉｎ−ｆｌｉｇｈｔトランザクション完了確認部１１０５は、トランザクションコントロール部１１０４がトランザクションを抑制した後に、トランザクションが抑制される以前にＰＣＩスイッチＥ１０７−５が受信したＩｎ−ｆｌｉｇｈｔトランザクションの実行の完了を検知する。
【０１７７】
具体的な検知方法については、どのような方法でも構わないが、例えば、トランザクションの抑制を行うＰＣＩスイッチＥ１０７−５が、最後に受信したＩｎ−ｆｌｉｇｈｔトランザクションの後に、Ｉ／Ｏデバイス１１４の特定のアドレスに対してメモリリードトランザクションを発行し、メモリリードトランザクションの完了によって、Ｉｎ−ｆｌｉｇｈｔトランザクションの実行の完了を検知する方法が考えられる。
【０１７８】
この方法は、ＰＣＩのオーダリングルールにおいて、後続のＮｏｎ−ｐｏｓｔｅｄトランザクションは先行トランザクションを追い越せないため、Ｎｏｎ−ｐｏｓｔｅｄトランザクションであるメモリリードトランザクションの実行の完了を検知することで、先行するトランザクション（Ｉｎ−ｆｌｉｇｈｔトランザクション）の実行が完了していることを利用したものである。
【０１７９】
トランザクション完了情報送信部１１０６は、Ｉｎ−ｆｌｉｇｈｔトランザクション完了確認部１１０５からＩｎ−ｆｌｉｇｈｔトランザクションの実行の完了を検知したことが通知され、Ｉｎ−ｆｌｉｇｈｔトランザクションの実行の完了、仮想ＰＣＩスイッチ識別子３１３、及びＤｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジ識別子３１１を含めた情報をＰＣＩＭ１１２−２に送信する。
【０１８０】
なお、ＰＣＩスイッチＥ１０７−５からＰＣＩＭ１１２−２へ送信される前記情報は、制御Ｉ／Ｆ１１５−２を用いて送信されるが、代わりに他のスイッチを経由して送信されてもよい。
【０１８１】
ＰＣＩＭ１１２−２の仮想ツリーステート管理部１２０−２は、仮想ツリーステート記録部７０１−２及び仮想ツリーステートチェック部７０２−２を備える。さらに、仮想ツリーステート記録部７０１−２は、仮想ツリーステート記録テーブル１２００を含む。
【０１８２】
図２６は、本発明の第２の実施の形態の仮想ツリーステート記録テーブル１２００の構成例を示す説明図である。
【０１８３】
仮想ツリーステート記録テーブル１２００は、仮想ツリー識別子１２０１、ＰＣＩスイッチ識別子１２０２、仮想ＰＣＩスイッチ識別子１２０３、Ｄｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジ識別子１２０４、及びＩｎ−ｆｌｉｇｈｔトランザクション完了情報１２０５（以下、Ｉｎ−ｆｌｉｇｈｔ  Ｔｘ完了情報１２０５と記載する。）を含む。仮想ツリーステート記録テーブル１２００は、Ｄｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジ識別子１２０４を含むことによって、Ｄｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジ毎にＩｎ−ｆｌｉｇｈｔトランザクションの実行の完了を検知することができる。
【０１８４】
図２４は、本発明の第２の実施の形態の仮想ツリーが切り替えられる前のサーバシステムの構成を示す説明図である。図２５は、本発明の第２の実施の形態の仮想ツリーが切り替えられた後のサーバシステムの構成を示す説明図である。
【０１８５】
図２４において、各コンフィギュラブルＰＣＩバス部２０１−５１、２０２−５１、２０３−５１は短破線に示すＰＣＩバスが構成されているものとする。さらに、物理サーバ１００−３上で稼動している仮想サーバ１１０３−１は、前記ＰＣＩバスの構成に従って、長破線で囲まれた仮想ＰＣＩスイッチＩ２０６−５１を介して、Ｉ／Ｏデバイス１１４−６、１１４−７を認識している。
【０１８６】
図２５において、各コンフィギュラブルＰＣＩバス部２０１−５１、２０２−５１、２０３−５２は短破線に示すＰＣＩバスが構成されているものとする。さらに、物理サーバ１００−４上で稼動している仮想サーバ１１０３−１は、長破線で囲まれた仮想ＰＣＩスイッチＪ２０６−５２を介してＩ／Ｏデバイス１１４−５、１１４−６を認識している。
【０１８７】
図２４及び図２５で動作している仮想サーバ１１０３−１は同一の実行イメージであり、仮想サーバ１１０３が稼動している物理サーバ１００が異なっていても、仮想ＰＣＩスイッチ２０６の構成を変更することによって、仮想サーバ１１０３−１からは同一のＩ／Ｏデバイス１１４−５、１１４−６を認識することができる。
【０１８８】
以下、図２４の状態から、仮想サーバ１１０３−１が認識する仮想ツリーを構成するＩ／Ｏデバイス１１４−５、１１４−６から発行されるトランザクションが抑制され、Ｉｎ−ｆｌｉｇｈｔトランザクションの実行の完了が検知され、仮想ツリーを切り替えられるまでについて説明する。仮想ツリーが切り替えられた後、仮想サーバ１１０３−１が物理サーバ１００−３から物理サーバ１００−４へ移行されると、仮想サーバ１１０３−１は移行前と同一のＩ／Ｏデバイス１１４−５、１１４−６を認識することができ、マイグレーション完了後に動作を再開することができる。
【０１８９】
図２９は、本発明の第２の実施の形態のＰＣＩスイッチＥ１０７−５の処理を示したフローチャートである。
【０１９０】
最初に、トランザクションコントロール部１１０４が、切り替え予定の仮想ツリーを構成する仮想ＰＣＩスイッチＥ２０６−５１が受信するトランザクションを抑制する要求を受信する（１３０１）。なお、前記要求は、サーバ管理部１１３−２、物理サーバ１００−３、またはＰＣＩＭ１１２−２から送信される。
【０１９１】
前記要求を受信したトランザクションコントロール部１１０４は、切り替え対象の仮想ツリーを構成する仮想ＰＣＩスイッチＥ２０６−５１のＤｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジＣ２０５−５１及びＤｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジＤ２０５−５２各々のリンクの種類を判定する（１３０２）。具体的には、リンクがアクティブでない（リンクがない）、ＭＲではないリンクである、またはＭＲのリンクである、かを判定する。
【０１９２】
リンクがアクティブでないと判定された場合、トランザクションコントロール部１１０４は、処理を終了する（１３０６）。
【０１９３】
ＭＲのリンクであると判定された場合、トランザクションコントロール部１１０４は、リンク先のＰＣＩスイッチ１０７に前記要求を送信する（１３０７）。さらに、トランザクションコントロール部１１０４は、前記要求を送信したＰＣＩスイッチ１０７から応答を受信し（１３０８）、ステップ１３０２に戻り前記要求を受信にしたＰＣＩスイッチ１０７について同様の処理を行う。
【０１９４】
ＭＲではないリンクであると判定された場合、トランザクションコントロール部１１０４は、Ｉ／Ｏデバイス１１４−５、１１４−６から発行されるトランザクションを抑制する（１３０３）。なお、トランザクションの抑制方法はどのような方法であってもよい。
【０１９５】
次に、Ｉｎ−ｆｌｉｇｈｔトランザクション完了確認部１１０５は、トランザクションの抑制前に受信したトランザクション（Ｉｎ−ｆｌｉｇｈｔトランザクション）の実行が完了したことをＩ／Ｏデバイス１１４−５、１１４−６に対応付けられたＤｏｗｎｓｔｒｅａｍポート１１４毎について検知し、前記検知結果をトランザクション完了情報送信部１１０６に送信する（１３０４）。Ｉｎ−ｆｌｉｇｈｔトランザクションの実行の完了を検知する方法は前述した方法に限定されず、どのような方法であってもよい。
【０１９６】
前記検知結果を受信したトランザクション完了情報送信部１１０６は、仮想ＰＣＩスイッチ識別子３１３、Ｄｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジ識別子３１１、及びＤｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジ識別子３１１に対応するＤｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジ２０５におけるＩｎ−ｆｌｉｇｈｔトランザクションの実行が完了したことを含む完了情報をＰＣＩＭ１１２−２に送信する（１３０５）。なお、前記完了情報は、制御Ｉ／Ｆを介して送信されるが、他のスイッチを介して送信されてもよい。
【０１９７】
図３０は、本発明の第２の実施の形態のＰＣＩＭ１１２−２の処理を示したフローチャートである。
【０１９８】
ＰＣＩＭ１１２−２が仮想ツリー切り替えの要求を受信し、仮想ツリーステート記録部７０１−２は、仮想ツリーステート記録テーブル１２００の初期設定を行う。具体的には、ＰＣＩＭ１１２−２は、図２６に示すように、切り替え予定の仮想ツリーを構成するＩ／Ｏデバイス１１４−５、１１４−６に対応付けられたＤｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジＣ２０５−５１、Ｄ２０５−５２に関するエントリ１２０６−１、１２０６−２を、仮想ツリーステート記録テーブル１２００−１に作成し、Ｉｎ−ｆｌｉｇｈｔ  Ｔｘ完了情報１２０５をＮｏに設定する（１４０１）。
【０１９９】
仮想ツリーステート記録部７０１−２は、ＰＣＩスイッチＥ１０７−５から、仮想ＰＣＩスイッチ識別子３１３と、Ｄｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジ識別子３１１、及びＰＣＩブリッジ識別子に対応するＰＣＩブリッジにおけるＩｎ−ｆｌｉｇｈｔトランザクションの実行が完了したことを含む完了情報を受信する（１４０２）。なお、前記完了情報は、前述したステップ１３０５で送信される完了情報と同一のものである。
【０２００】
前記完了情報を受信した仮想ツリーステート記録部７０１−６は、前記完了情報に含まれる仮想ＰＣＩスイッチ識別子３１３、及びＤｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジ識別子３１１を参照し、仮想ツリーステート記録テーブル１２００に該当するエントリがあるか否かを判定する（１４０３）。
【０２０１】
該当するエントリがないと判定された場合、仮想ツリーステート記録部７０１−２は、ＰＣＩスイッチＥ１０７−５に前記完了情報を再度送信するように要求する（１４０８）。
【０２０２】
該当するエントリがあると判定された場合、仮想ツリーステート記録部７０１−２は、該当するエントリのＩｎ−ｆｌｉｇｈｔ  Ｔｘ完了情報１２０５をＹｅｓに更新する（１４０４）。
【０２０３】
図２７及び図２８は、本発明の第２の実施の形態の仮想ツリーの切り替えの処理における仮想ツリーステート記録テーブル１２００の更新状態を示した説明図である。
【０２０４】
例えば、仮想ツリーステート記録部７０１−２がＤｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジＣ２０５−５１のＩｎ−ｆｌｉｇｈｔトランザクションの実行の完了を受信した場合、図２７に示すようにＤｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジＣ２０５−５１に対応するエントリ１２０６−１のＩｎ−ｆｌｉｇｈｔ  Ｔｘ完了情報１２０５がＹｅｓとなる。
【０２０５】
次に、仮想ツリーステートチェック部７０２−２は、切り替えの対象である仮想ツリーに関する全てのエントリ（この場合は、エントリ１２０６−１、１２０６−２）のＩｎ−ｆｌｉｇｈｔ  Ｔｘ完了情報１２０５が全てＹｅｓか否か判定する（１４０５）。例えば、図２８のような場合、仮想ツリーステートチェック部７０２−２は、切り替えの対象である仮想ツリーに関する全てのエントリのＩｎ−ｆｌｉｇｈｔ  Ｔｘ完了情報１２０５が全てＹｅｓであると判定する。
【０２０６】
切り替えの対象である仮想ツリーに関する全てのエントリのＩｎ−ｆｌｉｇｈｔ  Ｔｘ完了情報１２０５が全てＹｅｓでないと判定された場合、仮想ツリーステートチェック部７０２−２は、ステップ１４０２に戻り、全てのエントリのＩｎ−ｆｌｉｇｈｔ  Ｔｘ完了情報１２０５が全てＹｅｓになるまで同様の処理をおこなう。
【０２０７】
切り替えの対象である仮想ツリーに関する全てのエントリのＩｎ−ｆｌｉｇｈｔ  Ｔｘ完了情報１２０５が全てＹｅｓであると判定された場合、仮想ツリーステートチェック部７０２−２は、仮想ツリーを切り替えることが可能であると判定し（１４０６）、仮想ツリーの切り替え処理を実行する（１４０７）。なお、仮想ツリーの切り替え処理は、ＰＣＩＭ１１２−２が各ＰＣＩスイッチ１０７に切り替えの要求を送信し、受信した前記要求に基づいてＰＣＩスイッチ１０７が、バスの構成を変更することによって行われる。
【０２０８】
第２の実施の形態では、仮想ツリーの切り替え処理において、ＰＣＩスイッチ１０７がＩ／Ｏデバイス１１４から受信するトランザクションが抑制され、ＰＣＩＭ１１２−２は抑制される前にＰＣＩスイッチ１０７が受信したトランザクションが全て完了か否かを判定することによって、仮想ツリーの切り替え処理の前後でトランザクションの連続性及び整合性が保証され、安全に仮想ツリーの切り替え処理を行うことができる。
【図面の簡単な説明】
【０２０９】
【図１】本発明の第１の実施の形態のサーバシステムの構成図である。
【図２】本発明の第１の実施の形態のＰＣＩスイッチのスイッチユニットの構成、及び仮想ツリーを説明するブロック図である。
【図３】本発明の第１の実施の形態の仮想ＰＣＩスイッチコンフィギュラブルＰＣＩバス部のバス構成を変更した場合の仮想ツリーを示す説明図である。
【図４】本発明の第１の実施の形態において縦列に多段のＰＣＩスイッチＡ、Ｂを接続し、二つのＵｐｓｔｒｅａｍポートに接続された各々の物理サーバ毎に、独立した二つの仮想ツリーを構成する場合を示す説明図である。
【図５】第１の実施の形態のＰＣＩスイッチのＭＲ  Ｕｐｓｔｒｅａｍ制御テーブルの構成例を示した説明図である。
【図６】第１の実施の形態のＰＣＩスイッチにおけるＭＲ  Ｄｏｗｎｓｔｒｅａｍ制御テーブルの構成例を示した説明図である。
【図７】第１の実施の形態のＰＣＩスイッチのＭＲ  Ｕｐｓｔｒｅａｍ制御テーブルの構成例を示した説明図である。
【図８】本発明の第１の実施の形態のＰＣＩＭの仮想ツリーＵｐｓｔｒｅａｍ管理テーブルの構成例を示した説明図である。
【図９】本発明の第１の実施の形態のＰＣＩＭの仮想ツリーＤｏｗｎｓｔｒｅａｍ管理テーブルの構成例を示した説明図である。
【図１０】本発明の第１の実施の形態のＰＣＩＭの物理トポロジ管理テーブルの構成例を示した説明図である。
【図１１】第１の実施の形態の仮想ツリーの構成を示した説明図である。
【図１２】第１の実施の形態の仮想ツリーの構成を示した説明図である。
【図１３】本発明の第１の実施の形態のＰＣＩスイッチの構成を示したブロック図である。
【図１４】本発明の第１の実施の形態の仮想ＰＣＩスイッチステートテーブルの構成例を示す説明図である。
【図１５】本発明の第１の実施の形態において、仮想ＰＣＩスイッチステートテーブルの更新状態を示した説明図である。
【図１６】本発明の第１の実施の形態において、仮想ＰＣＩスイッチステートテーブルの更新状態を示した説明図である。
【図１７】本発明の第１の実施の形態のＰＣＩＭの構成を示したブロック図である。
【図１８】本発明の第１の実施の形態の仮想ツリーステート記録テーブルの構成例を示した説明図である。
【図１９】本発明の第１の実施の形態の仮想ツリーステート記録テーブルの更新状態を示した説明図である。
【図２０】本発明の第１の実施の形態の仮想ツリーステート記録テーブルの更新状態を示した説明図である。
【図２１】本発明の第１の実施の形態のＰＣＩスイッチの仮想ツリーの切り替え処理のフローチャート図である。
【図２２】本発明の第１の実施の形態のＰＣＩＭの仮想ツリーの切り替え処理のフローチャートである。
【図２３】本発明の第２の実施の形態のサーバシステムの構成を示す説明図である。
【図２４】本発明の第２の実施の形態の仮想ツリーが切り替えられる前のサーバシステムの構成を示す説明図である。
【図２５】本発明の第２の実施の形態の仮想ツリーが切り替えられた後のサーバシステムの構成を示す説明図である。
【図２６】本発明の第２の実施の形態の仮想ツリーステート記録テーブルの構成例を示した説明図である。
【図２７】本発明の第２の実施の形態の仮想ツリーの切り替えの処理における仮想ツリーステート記録テーブルの更新状態を示した説明図である。
【図２８】本発明の第２の実施の形態の仮想ツリーの切り替えの処理における仮想ツリーステート記録テーブルの更新状態を示した説明図である。
【図２９】本発明の第２の実施の形態のＰＣＩスイッチの処理を示したフローチャートである。
【図３０】本発明の第２の実施の形態のＰＣＩＭの処理を示したフローチャートである。
【符号の説明】
【０２１０】
１００  物理サーバ
１０１  物理サーバのハードウェア構成要素
１０２  チップセット
１０３  ＣＰＵ
１０４  メモリ
１０６  オペレーティングシステム
１０７  ＰＣＩスイッチ
１０８  スイッチユニット
１０９  スイッチ制御部
１１０  Ｍｕｌｉｔｉ−Ｒｏｏｔスイッチユニット制御部
１１１  仮想ツリーステート通知部
１１２  ＰＣＩＭ
１１３   サーバ管理部
１１４  Ｉ／Ｏデバイス
１１５  制御Ｉ／Ｆ
１１６  制御Ｉ／Ｆ
１１７  ＭＲまたはＢａｓｅ  ＰＣＩインタフェース
１１８  制御Ｉ／Ｆ
１１９  ＰＣＩＭユニット
１２０  仮想ツリーステート管理部
１２１  Ｕｐｓｔｒｅａｍポート
１２２  Ｄｏｗｎｓｔｒｅａｍポート
１２３  仮想ツリー制御部
１２４  Ｍｕｌｕｔｉ−Ｒｏｏｔ障害処理部
２０１  Ｕｐｓｔｒｅａｍ側コンフィギュラブルＰＣＩバス部
２０２  仮想ＰＣＩスイッチコンフィギュラブルＰＣＩバス
２０３  Ｄｏｗｎｓｔｒｅａｍ側コンフィギュラブルＰＣＩバス部
２０４  Ｕｐｓｔｒｅａｍ側ＰＣＩブリッジ
２０５  Ｄｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジ
２０６  仮想ＰＣＩスイッチ
３００  ＭＲ  Ｕｐｓｔｒｅａｍ制御テーブル
３０１  Ｕｐｓｔｒｅａｍ側ＰＣＩブリッジ識別子
３０２  Ｕｐｓｔｒｅａｍポート識別子
３０３  仮想ＰＣＩスイッチ識別子
３０４  Ｕｐｓｔｒｅａｍ側リンクローカル識別子
３０５  仮想ＰＣＩスイッチにおけるリセットフラグ
３０６  仮想ＰＣＩスイッチに関するＵｐｓｔｒｅａｍ側ＰＣＩブリッジにおけるエントリ
３１０  ＭＲ  Ｄｏｗｎｓｔｒｅａｍ制御テーブル
３１１  Ｄｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジ識別子
３１２  Ｄｏｗｎｓｔｒｅａｍポート識別子
３１３  仮想ＰＣＩスイッチ識別子
３１４  Ｄｏｗｎｓｔｒｅａｍ側リンクローカル識別子
３１５  仮想ＰＣＩスイッチにおけるリセットフラグ
３１６  仮想ＰＣＩスイッチに関するＤｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジにおけるエントリ
３５０  仮想ツリーＵｐｓｔｒｅａｍ管理テーブル
３５１  仮想ツリー識別子
３５２  ＰＣＩスイッチ識別子
３５３  仮想ＰＣＩスイッチ識別子
３５４  Ｕｐｓｔｒｅａｍ側ＰＣＩブリッジ識別子
３５５  Ｕｐｓｔｒｅａｍポート識別子
３５６  Ｕｐｓｔｒｅａｍポートにおけるリンクローカル識別子
３５７  仮想ツリーに関する仮想ＰＣＩスイッチに関するＵｐｓｔｒｅａｍ側ＰＣＩブリッジにおけるエントリ
３６０  仮想ツリーＤｏｗｎｓｔｒｅａｍ管理テーブル
３６１  仮想ツリー識別子
３６２  ＰＣＩスイッチ識別子
３６３  仮想ＰＣＩスイッチ識別子
３６４  Ｄｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジ識別子
３６５  Ｄｏｗｎｓｔｒｅａｍポート識別子
３６６  Ｄｏｗｎｓｔｒｅａｍポートにおけるリンクローカル識別子
３６７  仮想ツリーに関する仮想ＰＣＩスイッチに関するＤｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジにおけるエントリ
３７０  物理トポロジ管理テーブル
３７１  ＰＣＩスイッチ識別子
３７２  ポート識別子
３７３  パートナーＰＣＩスイッチ識別子
３７４  パートナーポート識別子
３７５  リンクの種類
３７６  物理ツリートポロジに関する、ＰＣＩスイッチのポート毎のエントリ
５０１  仮想ＰＣＩスイッチステート記録部
５０２  仮想ＰＣＩスイッチステート送信部
６００  仮想ＰＣＩスイッチステートテーブル
６０１  仮想ＰＣＩスイッチ識別子
６０２  Ｄｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジ識別子
６０３  リセット処理完了情報
６０４  一つのＤｏｗｎｓｔｒｅａｍにおける仮想ツリーのリセット完了ステートを表すエントリ
７０１  仮想ツリーステート記録部
７０２  仮想ツリーステートチェック部
８００  仮想ツリーステートテーブル
８０１  仮想ツリー識別子
８０２  ＰＣＩスイッチ識別子
８０３  仮想ＰＣＩスイッチ識別子
８０４  仮想ＰＣＩスイッチ構成変更可能情報
８０５  一つの仮想ＰＣＩスイッチにおける仮想ツリーのリセット完了ステートを表すエントリ
１１０１  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｍｏｎｉｔｏｒ
１１０２  オペレーティングシステム
１１０３  仮想サーバ
１１０４  ＰＣＩスイッチトランザクションコントロール部
１１０５  Ｉｎ−ｆｌｉｇｈｔトランザクション完了確認部
１１０６  トランザクション完了情報送信部
１２００  仮想ツリーステート記録テーブル
１２０１  仮想ツリー識別子
１２０２  ＰＣＩスイッチ識別子
１２０３  仮想ＰＣＩスイッチ識別子
１２０４  Ｄｏｗｎｓｔｒｅａｍ側ＰＣＩブリッジ識別子
１２０５  Ｉｎ−ｆｌｉｇｈｔトランザクション完了情報
１２０６  一つのＩ／Ｏデバイスにおける仮想ツリーのＩｎ−ｆｌｉｇｈｔトランザクション完了ステートを表すエントリ
【図１】
2009294828.tif 000003
【図２】
2009294828.tif 000004
【図３】
2009294828.tif 000005
【図４】
2009294828.tif 000006
【図５】
2009294828.tif 000007
【図６】
2009294828.tif 000008
【図７】
2009294828.tif 000009
【図８】
2009294828.tif 000010
【図９】
2009294828.tif 000011
【図１０】
2009294828.tif 000012
【図１１】
2009294828.tif 000013
【図１２】
2009294828.tif 000014
【図１３】
2009294828.tif 000015
【図１４】
2009294828.tif 000016
【図１５】
2009294828.tif 000017
【図１６】
2009294828.tif 000018
【図１７】
2009294828.tif 000019
【図１８】
2009294828.tif 000020
【図１９】
2009294828.tif 000021
【図２０】
2009294828.tif 000022
【図２１】
2009294828.tif 000023
【図２２】
2009294828.tif 000024
【図２３】
2009294828.tif 000025
【図２４】
2009294828.tif 000026
【図２５】
2009294828.tif 000027
【図２６】
2009294828.tif 000028
【図２７】
2009294828.tif 000029
【図２８】
2009294828.tif 000030
【図２９】
2009294828.tif 000031
【図３０】
2009294828.tif 000032