(57)【要約】【課題】本発明の課題は、バス階層を増加させることなく、システムを増大させることである。【解決手段】上記課題を解決するために、第１ブリッジに備えられた第１ステートマシンは、第１ポートからパケットを受信した時、テーブルを参照して当該パケット内のアドレスに対応する入出力装置または他のスイッチに当該パケットを転送し、第２ブリッジに備えられた第２ステートマシンは、当該第１ブリッジから転送されたパケット内のアドレスと、第２レジスタに格納されたアドレスとを参照して、当該パケットを第２ポートを介して当該入出力装置に転送し、第３ブリッジに備えられた第３ステートマシンは、第１ブリッジから転送されたパケットを第３ポートを介して当該他のスイッチに転送する。【選択図】図１０
2010225085.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置と入出力装置とからスイッチングするためのアドレスを含むパケットを受信し、該パケットをスイッチングするスイッチにおいて、
該情報処理装置と接続され、該パケットを送受信する第１ポートと、
該入出力装置と接続され、該パケットを送受信する第２ポートと、
他のスイッチと接続され、該パケットを送受信する第３ポートと、
該第１ポートと接続され、情報を格納する第１レジスタと、該パケットを転送する第１ステートマシンを有する第１ブリッジと、
該第２ポートと接続され、該スイッチに接続された入出力装置に対応するアドレスを格納する第２レジスタと、該パケット内のアドレスと該レジスタに格納されたアドレスに基づいて該パケットを転送する第２ステートマシンを有する第２ブリッジと、
該第３ポートと接続され、該パケットを転送する第３ステートマシンを有する第３ブリッジと、
該第１ブリッジと該第２ブリッジと該第３ブリッジとを互いと接続するバスと、
該第１ポートから該第３ポートのポート番号と、該第１ポートから該第３ポートに接続された該情報処理装置、該入出力装置及び該他のスイッチに割り付けられた装置番号と、該情報処理装置、該入出力装置及び該他のスイッチに割り付けられたアドレスとからなるテーブルとを備え、
該第１ステートマシンは、該第１ポートから該パケットを受信した時、該テーブルを参照して該パケット内のアドレスに対応する該入出力装置または該他のスイッチに該パケットを転送し、該第２ステートマシンは、該第１ブリッジから転送されたパケット内のアドレスと、該第２レジスタに格納されたアドレスとを参照して、該パケットを該第２ポートを介して該入出力装置に転送し、該第３ステートマシンは、該第１ブリッジから転送されたパケットを該第３ポートを介して該他のスイッチに転送することを特徴とするスイッチ。
【請求項２】
該第１ブリッジは、該情報処理装置から受信したパケットを参照して、該テーブルを更新することを特徴とする請求項１記載のスイッチ。
【請求項３】
該第２ブリッジは、該第２ポートを介して該入出力装置からパケットを受信した場合、該パケットを該第１ブリッジに転送し、該第１ステートマシンは、該第２ブリッジから転送されたパケット内のアドレスと該テーブルを参照して、該パケットを宛先に転送することを特徴とする請求項１記載のスイッチ。
【請求項４】
情報処理装置と入出力装置とからスイッチングするためのアドレスを含むパケットを受信し、該情報処理装置と接続され、該パケットを送受信する第１ポートと、該入出力装置と接続され、該パケットを送受信する第２ポートと、他のスイッチと接続され、該パケットを送受信する第３ポートと、該第１ポートと接続され、情報を格納する第１レジスタと、該パケットを転送する第１ステートマシンを有する第１ブリッジと、該第２ポートと接続され、該スイッチに接続された入出力装置に対応するアドレスを格納する第２レジスタと、該パケット内のアドレスと該レジスタに格納されたアドレスに基づいて該パケットを転送する第２ステートマシンを有する第２ブリッジと、該第３ポートと接続され、該パケットを転送する第３ステートマシンを有する第３ブリッジと、該第１ブリッジと該第２ブリッジと該第３ブリッジとを互いと接続するバスとを備えるスイッチの制御方法において、
該スイッチは、該第１ポートから該第３ポートのポート番号と、該第１ポートから該第３ポートに接続された該情報処理装置、該入出力装置及び該他のスイッチに割り付けられた装置番号と、該情報処理装置、該入出力装置及び該他のスイッチに割り付けられたアドレスとからなるテーブルを備え、
該第１ステートマシンは、該第１ポートから該パケットを受信した時、該テーブルを参照して該パケット内のアドレスに対応する該入出力装置または該他のスイッチに該パケットを転送し、該第２ステートマシンは、該第１ブリッジから転送されたパケット内のアドレスと、該第２レジスタに格納されたアドレスとを参照して、該パケットを該第２ポートを介して該入出力装置に転送し、該第３ステートマシンは、該第１ブリッジから転送されたパケットを該第３ポートを介して該他のスイッチに転送することを特徴とするスイッチの制御方法。
【請求項５】
該第１ブリッジは、該情報処理装置から受信したパケットを参照して、該テーブルを更新することを特徴とする請求項４記載のスイッチの制御方法。
【請求項６】
該第２ブリッジは、該第２ポートを介して該入出力装置からパケットを受信した場合、該パケットを該第１ブリッジに転送し、該第１ステートマシンは、該第２ブリッジから転送されたパケット内のアドレスと該テーブルを参照して、該パケットを宛先に転送することを特徴とする請求項４記載のスイッチの制御方法。
【請求項７】
パケットを送信する情報処理装置と、
該情報処理装置が送信したパケットを受信する第１ポートと、情報を格納する第１レジスタを有し、該第１ポートが受信したパケットを転送する第１ブリッジと、該第１ブリッジと接続される第１バスと、情報を格納する第２レジスタを有し、該第１バスと接続される第２ブリッジと、該第２ブリッジと接続される第２ポートと、該第２ポートと接続される第２バスと、該第２バスと接続される第１デバイスと、情報を格納する第３レジスタを有し、該第１バスと接続される第３ブリッジと、該第３ブリッジと接続される第３ポートとを有する第１スイッチと、
該第３ポートと接続される第４ポートと、情報を格納する第４レジスタを有し、該第４ポートが受信したパケットを転送する第４ブリッジと、該第４ブリッジと接続される第３バスと、情報を格納する第５レジスタを有し、該第３バスと接続される第５ブリッジと、該第５ブリッジと接続される第５ポートと、情報を格納する第６レジスタを有し、該第３バスと接続される第６ブリッジと、該第６ブリッジと接続される第６ポートと、該第６ポートと接続される第４バスと、該第４バスと接続される第２デバイスとを有する第２スイッチとを有するスイッチシステムの制御方法において、
該第１ポート及び該第１ブリッジと、該第３ブリッジ及び該第３ポートと、該第４ポート及び該第４ブリッジと、該第６ブリッジ及び該第６ポートは第１パーティションを構成し、
該第２ポート及び該第２ブリッジと、該第３ブリッジ及び該第３ポートと、該第４ポート及び該第４ブリッジと、該第５ブリッジ及び該第５ポートは第２パーティションを構成し、
該第１スイッチは、該第１パーティションと該第１デバイスと該第１デバイスが接続されたバスの番号とが対応付けられた第１対応情報と、該第２パーティションと該第２デバイスと該第２デバイスと接続されたバスの番号とが対応付けられた第２対応情報とを有し、
該第１レジスタは、該第１バスの番号を格納し、
該第２レジスタは、該第２バスの番号を格納し、
該第５レジスタは、該第３バスの番号を格納し、
該第６レジスタは、該第４バスの番号を格納し、
該第１ブリッジは、該パケットが該第１レジスタへのアクセスを要求するパケットである場合、該第１ポートが有するパーティション番号に基いて、該第１対応情報または該第２対応情報を選択し、該第１対応情報を選択した場合、該第１レジスタに格納されたバス番号及び該第１対応情報に基づいて、該パケットの宛先が該第２スイッチである場合、該パケットを該第３ブリッジに送信し、
該第３ブリッジは、該パケットが該第３レジスタへのアクセスを要求するパケットである場合、該パケットを該第３ポートを介して該第４ポートに送信し、
該第４ブリッジは、該パケットが該第４レジスタへのアクセスを要求するパケットである場合、該パケットを該第６ブリッジに送信し、
該第６ブリッジは、該パケットが該第６レジスタへのアクセスを要求するパケットである場合、該パケットに含まれるバス番号と、該第６レジスタに格納されたバス番号に基づき決定した宛先に該パケットを送信する、
ことを特徴とするスイッチシステムの制御方法。
【請求項８】
該第５ブリッジは、該パケットが該第５レジスタへのアクセスを要求するパケットである場合、該第５ポートが有するパーティション番号に基づいて、該第１対応情報または該第２対応情報を選択し、該第２対応情報を選択した場合、該第５レジスタに格納されたバス番号及び該第２対応情報に基づいて、該パケットの宛先が該第１スイッチである場合、該パケットを該第４ブリッジに送信し、
該第４ブリッジは、該パケットが該第４レジスタへのアクセスを要求するパケットである場合、該パケットを該第４ポートを介して該第３ポートに送信し、
該第３ブリッジは、該パケットが該第３レジスタへのアクセスを要求するパケットである場合、該パケットを該第２ブリッジに送信し、
該第２ブリッジは、該パケットが該第２レジスタへのアクセスを要求するパケットである場合、該パケットに含まれるバス番号と、該第２レジスタに格納されたバス番号に基づき決定した宛先に該パケットを送信することを特徴とする請求項７記載のスイッチシステムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置と入出力装置間のパケット転送を行うスイッチに関する。
【背景技術】
【０００２】
情報処理装置と入出力装置とを接続するＩ／Ｏバスの１つとして、例えばＰＣＩ Ｅｘｐｒｅｓｓがある。ＰＣＩ Ｅｘｐｒｅｓｓは、ＰＣＩバスと同じく、ホストブリッジを頂点とし、入出力装置を終点とするツリー構造を有する。複数のＩ／Ｏデバイスを接続するには、ツリー構造の中間点にＰＣＩ Ｅｘｐｒｅｓｓスイッチが必要となる。ＰＣＩ Ｅｘｐｒｅｓｓスイッチは各ポートをＰＣＩ-ｔｏ-ＰＣＩ（Ｐ２Ｐ）ブリッジとする２段のツリー構造を持つ。ＰＣＩ Ｅｘｐｒｅｓｓを構成するデバイスには、ＯＳ／ＢＩＯＳから固有の番号が割り当てられる。
【０００３】
同一システム内において、多数のＩ／Ｏデバイスを接続するには、サポートするポート数の多いスイッチが必要になる。しかし、単一のスイッチＬＳＩにおいて単純にポート数を増加させると、ＬＳＩ設計製造およびプリント板実装時におけるコストが増加してしまう。そこで、多数のＩ／Ｏデバイスを接続するために、複数のＰＣＩ Ｅｘｐｒｅｓｓスイッチを単純に接続して、ポート数を増加させている。スイッチを接続すると、どのスイッチがホストブリッジに近いかにより、ＰＣＩ Ｅｘｐｒｅｓｓの階層構造が決定される。つまり、ＯＳ／ＢＩＯＳからは情報処理装置の起動時には、これらのスイッチのバス階層が異なって見える。ところが、バス階層は有限であり、またＯＳ／ＢＩＯＳがサポート可能なバスの階層の深さも限定されている。
【０００４】
先行技術文献としては、下記のものがある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００１−１２５６９４号公報
【特許文献２】特開２００７−３３４７６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の課題は、バス階層を増加させることなく、システムを増大させることである。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、情報処理装置と入出力装置とからスイッチングするためのアドレスを含むパケットを受信し、該パケットをスイッチングするスイッチは、該情報処理装置と接続され、該パケットを送受信する第１ポートと、該入出力装置と接続され、該パケットを送受信する第２ポートと、他のスイッチと接続され、該パケットを送受信する第３ポートと、該第１ポートと接続され、情報を格納する第１レジスタと、該パケットを転送する第１ステートマシンを有する第１ブリッジと、該第２ポートと接続され、該スイッチに接続された入出力装置に対応するアドレスを格納する第２レジスタと、該パケット内のアドレスと該レジスタに格納されたアドレスに基づいて該パケットを転送する第２ステートマシンを有する第２ブリッジと、該第３ポートと接続され、該パケットを転送する第３ステートマシンを有する第３ブリッジと、該第１ブリッジと該第２ブリッジと該第３ブリッジとを互いと接続するバスと、該第１ポートから該第３ポートのポート番号と、該第１ポートから該第３ポートに接続された該情報処理装置、該入出力装置及び該他のスイッチに割り付けられた装置番号と、該情報処理装置、該入出力装置及び該他のスイッチに割り付けられたアドレスとからなるテーブルとを備え、該第１ステートマシンは、該第１ポートから該パケットを受信した時、該テーブルを参照して該パケット内のアドレスに対応する該入出力装置または該他のスイッチに該パケットを転送し、該第２ステートマシンは、該第１ブリッジから転送されたパケット内のアドレスと、該第２レジスタに格納されたアドレスとを参照して、該パケットを該第２ポートを介して該入出力装置に転送し、該第３ステートマシンは、該第１ブリッジから転送されたパケットを該第３ポートを介して該他のスイッチに転送することを特徴とする。
【発明の効果】
【０００８】
本実施形態の一側面によれば、スイッチに備えられたテーブルを参照して、パケット内のアドレスに対応する入出力装置または他のスイッチにパケットを転送するので、当該スイッチと当該他のスイッチとをユニット化することができる。そのため、バス階層を増加させることなく、システムを増大させることができる。
【図面の簡単な説明】
【０００９】
【図１】実施形態１におけるシステムを表す図である。
【図２】実施形態１におけるＰＣＩｅシステムを表す図である。
【図３】実施形態１におけるシステムツリーを表す図である。
【図４】バス番号の割り当て方を説明する図である。
【図５】実施形態１におけるパケットフォーマットの一例を表す図である。
【図６】実施形態１におけるスイッチシステムを表す図（その１）である。
【図７】実施形態１の接続前のスイッチを表す図（その１）である。
【図８】実施形態１におけるスイッチシステムを表す図（その２）である。
【図９】実施形態１の接続前のスイッチを表す図（その２）である。
【図１０】実施形態１におけるスイッチシステムを表す図（その３）である。
【図１１】構成情報テーブルを表す図である。
【図１２】実施形態１における構成情報テーブルの更新処理を表すフローチャートである。
【図１３】マスタスイッチで受信したパケットのルーティングを表す図である。
【図１４】スレーブスイッチで受信したパケットのルーティングを表す図である。
【図１５】マスタスイッチのパケット転送処理を表すフローチャートである。
【図１６】スレーブスイッチのパケット転送処理を表すフローチャートである。
【図１７】パケットの宛先検索処理を表すフローチャートである。
【図１８】実施形態１の有効性を説明するための図である。
【図１９】実施形態２におけるシステムを表す図である。
【図２０】実施形態２におけるＰＣＩｅシステムを表す図である。
【図２１】実施形態２におけるパケットフォーマットの一例を表す図である。
【図２２】実施形態２におけるスイッチシステムを表す図である。
【図２３】実施形態２における接続前のスイッチを表す図（その１）である。
【図２４】実施形態２におけるスイッチシステムを表す図である。
【図２５】パーティションテーブルを表す図である。
【図２６】実施形態２における構成情報テーブルの更新処理を表すフローチャートである。
【図２７】マスタスイッチで受信したパケットのルーティングを表す図である。
【図２８】スレーブスイッチで受信したパケットのルーティングを表す図である。
【図２９】実施形態２のパケットの転送処理を表すフローチャート（その１）である。
【図３０】実施形態２のパケットの転送処理を表すフローチャート（その２）である。
【図３１】実施形態２の有効性を説明するための図である。
【発明を実施するための形態】
【００１０】
以下に図面を用いて本実施形態について説明する。
【００１１】
（実施形態１）
図１は、本実施形態におけるシステム１００の構成図を表す。システム１００は、ホスト１０２、ＰＣＩｅスイッチ１０４、Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）デバイス１０６、ネットワークインタフェースカード（ＮＩＣ：Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）１０８、ネットワーク１１０、ホストバスアダプタ（ＨＢＡ：Ｈｏｓｔ  Ｂｕｓ  Ａｄａｐｔｏｒ）１１２及びディスク１１４を有する。
【００１２】
システム１００は、ホストブリッジ１０２１を頂点とするツリー構造を有する。リーフの構成要素は、エンドポイント（ＥＰ：Ｅｎｄ  Ｐｏｉｎｔ）と呼ばれる。ホスト１０２は、中央処理装置（ＣＰＵ：Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０２２及びホストブリッジ１０２１を有する。
【００１３】
ホスト１０２は、データの処理を行う。ＣＰＵ１０２２はホストブリッジ１０２１に接続される。ホストブリッジ１０２１は、ＣＰＵ１０２２とＰＣＩバスを接続し、データの制御を行う。ホストブリッジ１０２１はＰＣＩｅスイッチ１０４に接続される。ＰＣＩｅスイッチ１０４はホスト１０２とＥｎｄ ＰｏｉｎｔであるＩ／Ｏデバイス１０６、ＮＩＣ１０８及びＨＢＡ１１２とを接続する。
【００１４】
ＮＩＣ１０８は、ＰＣＩｅスイッチ１０４を構内通信網（ＬＡＮ：Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）に接続するための拡張カードである。ＮＩＣ１０８はネットワーク１１０に接続される。ＨＢＡ１１２は、ＰＣＩｅスイッチ１０４をディスク１１４に接続するアダプタである。ＨＢＡ１１２はディスク１１４に接続される。ディスク１１４は、情報を格納する。
【００１５】
図２は、本実施形態におけるＰＣＩｅスイッチ１０４の構成図を表す。ＰＣＩｅスイッチ１０４は、上流ポート１０４１、上流Ｐ２Ｐ（ＰＣＩ−ｔｏ−ＰＣＩ）ブリッジ１０４０、下流Ｐ２Ｐブリッジ１０４２、及び下流ポート１０４３を有する。上流ポート１０４１は上流Ｐ２Ｐブリッジ１０４０に接続される。上流Ｐ２Ｐブリッジ１０４０及び下流Ｐ２Ｐブリッジ１０４２は内部ＰＣＩバス１０４４によって、互いに接続される。下流Ｐ２Ｐブリッジ１０４２は下流ポート１０４３に接続される。なおマスタスイッチは構成情報テーブル５００を有する。構成情報テーブル５００については後述する。
【００１６】
物理ポートである上流ポート１０４１及び下流ポート１０４３は他のデバイスとの通信路であるＰＣＩｅリンクを制御し、データ転送を行う。
【００１７】
上流Ｐ２Ｐブリッジ１０４０及び下流Ｐ２Ｐブリッジ１０４２は、パケットの転送とオーダリングを行う。上流Ｐ２Ｐブリッジ１０４０及び下流Ｐ２Ｐブリッジ１０４２は、それぞれ上流側部分と下流側部分に大別される。ＰＣＩｅスイッチ１０４は、上流Ｐ２Ｐブリッジ１０４０を一つ有する。上流Ｐ２Ｐブリッジ１０４０及び下流Ｐ２Ｐブリッジ１０４２の上流側部分には、バス番号５０８、デバイス番号５０６及びファンクション番号５０９が割り当てられる。バス番号５０８は、ＯＳ／ＢＩＯＳから割り当てられる番号である。デバイス番号５０６は、ＰＣＩｅスイッチの連結後の相対的なポート番号を表す。ファンクション番号５０９は、デバイスが有する機能毎に割り当てられる番号である。上流Ｐ２Ｐブリッジ１０４０及び下流Ｐ２Ｐブリッジ１０４２の下流側部分には、割り当てるバス番号５０８の範囲情報を有する。また、上流Ｐ２Ｐブリッジ１０４０及び下流Ｐ２Ｐブリッジ１０４２の下流側部分には、割り当てるアドレス空間の先頭アドレス及びサイズ情報を有する。
【００１８】
上流Ｐ２Ｐブリッジ１０４０及び下流Ｐ２Ｐブリッジ１０４２は、それぞれステートマシン１０３７及びレジスタ１０３９を有する。レジスタ１０３９は下流に接続されるデバイス等のバス番号等を格納する。ステートマシン１０３７は、例えば、ホスト１０２から送信されるパケット内のバス番号と、レジスタ１０３９が格納するバス番号を参照して、当該パケットの送信先を決定する。
【００１９】
図３は、本実施形態におけるシステムツリー２００の一例を表す。ツリーを構成するデバイスには上述したように、バス番号、デバイス番号及びファンクション番号が割り当てられる。全てのＰＣＩｅリンク及び内部バスには固有のバス番号が割り当てられる。ここで、内部バスとは、デバイス内のＰ２Ｐブリッジ同士を接続するバスである。バス番号は有限資源であり、バスセグメントの総数は２５６個である。Ｐ２Ｐブリッジは、バスセグメントを分割する。バスセグメントは、Ｐ２Ｐブリッジを挟んで上流側と下流側に分けられる。バスセグメントは、ホスト１０２に近い側が上流側となり、ホスト１０２に遠い側が下流となる。下流Ｐ２Ｐブリッジ１０４２のホストからの距離を階層の深さとして定義する。
【００２０】
図４を参照してＯＳによるブリッジへのバス番号の割り当て方について説明する。システム１０２は、ＣＰＵ１０２２、「ブリッジ１」１０、「ブリッジ１」２０及び「ブリッジ３」３０、さらに、デバイス２１、２２、２３及び２４を有する。ＣＰＵ１０２２、「ブリッジ１」１０、デバイス２１及びデバイス２２は、「バス０」９を介して互いに接続される。また、「ブリッジ１」１０、デバイス２３、デバイス２４、「ブリッジ２」２０及び「ブリッジ３」３０は「バス１」１１を介して互いに接続される。さらに、「ブリッジ２」２０には「バス２」１２が接続され、「ブリッジ３」３０には「バス３」１３が接続される。なお、システム１０２において、ポートは省略して表している。
【００２１】
ＯＳは、スキャンによって最初のブリッジとして「ブリッジ１」１０を発見する。スキャンの方法として、例えば、デプスワイズ・アルゴリズム(ｄｅｐｔｈｗｉｓｅ ａｌｇｏｒｉｔｈｍ)が使われる。ＯＳは、「ブリッジ１」１０の下流に位置する「バス１」１１を、バス１と番号付ける。「ブリッジ１」１０には、「ブリッジ１」１０の直上のバス番号であるプリマリバス番号として０が割り当てられる。また、「ブリッジ１」１０には、「ブリッジ１」１０の直下のバス番号であるセカンダリバス番号として１が割り当てられる。さらに、「ブリッジ１」１０の下流に位置する到達可能なバスの中で最も大きな番号であるサブオーディネイトバス番号として一時的にＯｘＦＦが割り当てられる。これは、バス番号として１かそれ以上を指定するＴｙｐｅ１のＰＣＩコンフィグレーションアドレスが、「ブリッジ１」１０を通ってバス１に渡されることを意味する。パケットがバス番号１を持つ場合は、Ｔｙｐｅ１からＴｙｐｅ０に変換される。しかし、パケットがバス番号１以外の番号を有する場合は、Ｔｙｐｅ１からＴｙｐｅ０に変換されない。
【００２２】
ＯＳは、「バス１」１１へと進んでスキャンを行う。ここで、ＯＳは、「ブリッジ２」２０を発見する。ＯＳは、「ブリッジ２」２０に、プリマリバス番号として０を、セカンダリバス番号として１を割り当てる。「ブリッジ２」２０以下には新たなブリッジは存在しないので、ＯＳは、「ブリッジ２」２０にサブオーディネイトバス番号として２を割り当てる。
【００２３】
ＯＳは、バス１のスキャニングに戻り、「ブリッジ３」３０を発見する。ＯＳ、「ブリッジ３」３０のプライマリバス番号として１を、セカンダリバス番号として３を割り当てる。「ブリッジ３」３０以下には新たなブリッジは存在しないので、ＯＳは、「ブリッジ３」３０にサブオーディネイトバス番号として３を割り当てる。最後に、ＯＳは「ブリッジ１」１０にサブオーディネイトバス番号として３を割り当てる。
【００２４】
図５にパケットのフォーマットの一例を表す。パケット３００は、ヘッダ３０２、ＴＬＰ３０４及び「ＣＲＣ３２」３０６を有する。ヘッダ３０２はパケットの開始を識別するためのヘッダである。ＴＬＰ３０４はコマンドとデータを送受信するためのパケットであり、宛先アドレスまたはバス番号が含まれている。「ＣＲＣ３２」３０６は誤り検出符号である。本実施形態では、例えば、ヘッダ３０２は２Ｂｙｔｅ、ＴＬＰ３０４は１２Ｂｙｔｅ〜４１１６Ｂｙｔｅ、「ＣＲＣ３２」３０６は４Ｂｙｔｅである。
【００２５】
パケットのルーティング方式には、アドレスルーティング方式と、ＩＤルーティング方式とがある。アドレスルーティング方式は、パケットの宛先ポートを宛先アドレスによって指定する方式である。宛先アドレスを配下のアドレス空間に持つ下流側Ｐ２Ｐブリッジに対してパケットを転送する。対応するＰ２Ｐブリッジが無い場合は、パケットを上流側ブリッジに転送する。ＩＤルーティング方式は、パケットの宛先ポートをバス番号、デバイス番号及びファンクション番号の組で指定する方式である。対応するバス番号を配下に持つ下流Ｐ２Ｐブリッジに対してパケットを転送する。
【００２６】
パケットはコンフィグレーション・リード／ライト（Ｃｏｎｆｉｇｕｒａｔｉｏｎ Ｒ／Ｗ）、メモリ・リード／ライト（ＭｅｍｏｒｙＲ／Ｗ）及びメッセージ（Ｍｅｓｓａｇｅ）の三種類に大別される。コンフィグレーション・リード／ライトはデバイス情報のリードまたはライトを表すパケットであり、コンフィグレーションアクセスに使用される。メモリ・リード／ライトとは、データのリードまたはライトを表すパケットである。メッセージとは、割り込みを表すパケットである。ここで、コンフィグレーションアクセスとは、ＯＳ／ＢＩＯＳから発行される構成設定用トランザクションである。コンフィグレーションアクセスは、ＯＳ／ＢＩＯＳによるＰ２ＰブリッジやＩ／Ｏデバイスのバス番号の設定やベンダ情報の取得、Ｐ２ＰブリッジやＩ／Ｏデバイスに対するダイレクト・メモリ・アクセスの可否の設定を行うためのトランザクションである。ＰＣＩｅスイッチを含むＰＣＩｅデバイス構成情報は、コンフィグレーションアクセスによって設定される。
【００２７】
さらに、コンフィグレーションアクセスは、タイプ０及びタイプ１に分別される。タイプ０のコンフィグレーションアクセスにはバス番号が含まれない。そして、タイプ０のコンフィグレーションアクセスは、全てのデバイスによって、そのＰＣＩバス上のコンフィグレーションアドレスであると解釈される。タイプ１のコンフィグレーションアクセスにはバス番号が含まれる。そして、タイプ１のコンフィグレーションアクセスは、Ｐ２Ｐブリッジ以外の全てのＰＣＩｅデバイスから無視される。タイプ１のコンフィグレーションアドレスを参照した全てのＰ２Ｐブリッジは、パケットを下流に転送する。
【００２８】
図６に本実施形態におけるスイッチシステム４００を表す。図６に表したシステム４００は、図７に表した２つのスイッチを接続したものである。連結対象となるスイッチについて、ホストブリッジ１０２１に最も近いスイッチをマスタスイッチ４０２とする。その他のスイッチをスレーブスイッチ４０４とする。マスタスイッチ４０２とスレーブスイッチ４０４の間は仮想リンクと呼ばれる専用リンクによって接続される。仮想リンクが接続されるポートは仮想ポート１０４５と呼ばれる。システム内でＮ個のスイッチを接続する場合、マスタスイッチ４０２にはＮ−１個の仮想ポート１０４５、スレーブスイッチ４０４には、１個の仮想ポートを有する。
【００２９】
仮想ポート１０４５に接続されるＰ２Ｐブリッジ１０４６では、まずＯＳ／ＢＩＯＳから送信されるコマンドがコンフィグレーションアクセスのコマンドであるか否かを判定する。そして、当該コマンドがコンフィグレーションアクセスである場合は、当該コマンドを接続されたスイッチに送信する。このように、仮想ポートに接続されるＰ２Ｐブリッジ１０４６では、ＯＳ／ＢＩＯＳからのコンフィグレーションアクセスを終端せず、コンフィグレーションアクセスのコマンドをそのまま仮想リンクを通じて対向スイッチに転送する。またタイプ１からタイプ０への変換も行わない。この動作により、 ＯＳ／ＢＩＯＳに仮想リンクの階層を認識させない。ＰＣＩＥｘｐｒｅｓｓスイッチ間をつなぐ仮想リンク間には、全てのトランザクションを変更なしにそのまま転送する。コンフィグレーションアクセスについても同様である。仮想ポートおよび仮想リンクはＰＣＩＥｘｐｒｅｓｓのプロトコルに依存しない。仮想ポートの実施例として、仮想ポートおよび仮想リンクに閉じたＰＣＩＥｘｐｒｅｓｓバスを使用することができる。つまり、ＯＳ／ＢＩＯＳから独立したアドレス空間を持つことにより、上記機能を実現する。
【００３０】
なお、図２で説明したステートマシン１０３７が、パケットがレジスタ１０３９へのアクセスを要求するパケットであるか否かを判定することにより、ＯＳ／ＢＩＯＳから送信されるコマンドがコンフィグレーションアクセスのコマンドであるか否かを判定している。ＯＳ／ＢＩＯＳから送信されるコマンドがコンフィグレーションアクセスのコマンドである場合、ステートマシン１０３７は、パケットをレジスタ１０３９にアクセスさせることなく、転送する。また、仮想ポート１０４５に接続されるＰ２Ｐブリッジ１０４６でのＯＳ／ＢＩＯＳから送信されるコマンドがコンフィグレーションアクセスのコマンドであるか否かを判定する処理は、例えばファームウェアによって実行されても良い。
【００３１】
また、図８に、本実施形態におけるスイッチシステム４０１を表す。図８に表したシステム４０１は、図９に表した３つのスイッチを接続したものである。
【００３２】
図１０は、スイッチシステム４００を表す。マスタスイッチ４０２はマスタスイッチ４０２及びスレーブスイッチ４０４の構成情報を構成情報テーブル５００として有する。構成情報テーブル５００の更新は、ＯＳ／ＢＩＯＳが発行するコンフィグレーションアクセスに基づいて行われる。マスタスイッチ４０２が、コンフィグレーションアクセスパケットをスヌープし、コンフィグレーションアクセスパケットの情報を用いて構成情報テーブル５００を作成する。
【００３３】
図１１に構成情報テーブル５００を表す。構成情報テーブル５００は、スイッチ番号５０２、ポート番号５０４、デバイス番号５０６、バス番号５０８、バス範囲情報５１２を有する。スイッチ番号５０２は、システム内で固有の番号である。ポート番号５０４は、各スイッチのポート位置を表す。デバイス番号５０６は、連結後の相対的なポート番号を表す。バス番号５０８は、ＯＳ／ＢＩＯＳから割り当てられる番号である。アドレス範囲情報５１０は、対応するＰ２Ｐブリッジの配下にあるアドレス空間の範囲を表し、ＯＳ／ＢＩＯＳから割り当てられる。バス範囲情報５１２は、対応するＰ２Ｐブリッジの配下にあるＰＣＩバスの範囲を表し、ＯＳ／ＢＩＯＳから割り当てられる。
【００３４】
図１２を参照して、構成情報テーブルの更新処理について説明する。ステップＳ１０１において、マスタスイッチ４０２の上流Ｐ２Ｐブリッジ１０４０は、パケットを受信する。処理はステップＳ１０２へ移行する。
【００３５】
ステップＳ１０２において、上流Ｐ２Ｐブリッジ１０４０は、受信したパケットのヘッダを検査する。処理はステップＳ１０３へ移行する。
【００３６】
ステップＳ１０３において、上流Ｐ２Ｐブリッジ１０４０は、受信したパケットのヘッダを参照して、受信したパケットがタイプ０のコンフィグレーション・ライト・リクエストであるか否かを判定する。受信したパケットがタイプ０のコンフィグレーション・ライト・リクエストである場合は、処理はステップＳ１０４へ移行する。一方、受信したパケットがタイプ０のコンフィグレーション・ライト・リクエストでない場合は、処理はステップＳ１０６へ移行する。
【００３７】
ステップＳ１０４において、上流Ｐ２Ｐブリッジ１０４０は、受信したパケットのヘッダを参照して、受信したパケットのコンフィグレーションアドレスはセカンダリ・バス・ナンバー（Ｓｅｃｏｎｄｌｙ Ｂｕｓ Ｎｕｍｂｅｒ）であるか否かを判定する。セカンダリ・バス・ナンバーとは、ＰＣＩブリッジの直下のバス番号を表す。受信したパケットのコンフィグレーションアドレスがセカンダリ・バス・ナンバーである場合、処理はステップＳ１０５へ移行する。一方、受信したパケットのコンフィグレーションアドレスはセカンダリ・バス・ナンバーでない場合、処理はステップＳ１０９へ移行する。
【００３８】
ステップＳ１０５において、上流Ｐ２Ｐブリッジ１０４０は、内部バス番号を更新する。処理は終了する。
【００３９】
上述したステップＳ１０３において、受信したパケットがタイプ０のコンフィグレーション・ライト・リクエストでない場合、処理はステップＳ１０６へ移行する。
【００４０】
ステップＳ１０６において、上流Ｐ２Ｐブリッジ１０４０は、受信したパケットのヘッダを参照して、受信したパケットがタイプ１のコンフィグレーション・ライト・リクエストであるか否かを判定する。受信したパケットがタイプ１のコンフィグレーション・ライト・リクエストである場合、処理はステップＳ１０７へ移行する。一方、受信したパケットがタイプ１のコンフィグレーション・ライト・リクエストでない場合、処理は終了する。
【００４１】
ステップＳ１０７において、上流Ｐ２Ｐブリッジ１０４０は、受信したパケットのヘッダを参照して、パケットのバス番号が内部バス番号であるか否かを判定する。パケットのバス番号が内部バス番号である場合、処理はステップＳ１０８へ移行する。一方、パケットのバス番号が内部バス番号でない場合、処理は終了する。
【００４２】
ステップＳ１０８において、上流Ｐ２Ｐブリッジ１０４０は、バケットのデバイス番号を参照して、構成情報の更新対象エントリを設定し、当該エントリのバス番号を更新する。処理はステップＳ１０９へ移行する。
【００４３】
ステップＳ１０９において、上流Ｐ２Ｐブリッジ１０４０は、バケットのデバイス番号を参照して、コンフィグレーションアドレスがブリッジ情報であるか否かを判定する。コンフィグレーションアドレスがブリッジ情報である場合、処理はステップＳ１１０へ移行する。一方、コンフィグレーションアドレスがブリッジ情報でない場合、処理は終了する。
【００４４】
ステップＳ１１０において、上流Ｐ２Ｐブリッジ１０４０は、ステップＳ１０８において設定した更新対象エントリのブリッジ情報を更新する。処理は終了する。
【００４５】
図１３及び図１４を参照して、パケットのルーティング方式について説明する。図１３は、マスタスイッチ４０２のポートで受信したパケットのルーティングを表している。まず、受信ポートでパケットのヘッダを解析し、構成情報テーブル５００に宛先解決を要求する。構成情報テーブル５００では、パケットの種類に応じ、番号対応表、バス範囲キャッシュ（ＩＤルーティング）またはアドレス範囲キャッシュ（アドレスルーティング）によりパケットの宛先ポートを決定する。パケットの宛先ポートがスレーブスイッチ４０４の場合、パケットを仮想リンク対応する仮想ポート１０４５に転送する。スレーブスイッチ４０４は、通常のＰＣＩｅスイッチと同様の処理を行う。一方、図１４は、スレーブスイッチ４０４のポートで受信したパケットのルーティングを表している。受信ポートは、パケットを仮想リンクを通じてマスタスイッチ４０２に転送する。マスタスイッチ４０２は、上述した手順に従って、パケットのルーティングを行う。
【００４６】
図１５を参照して、マスタスイッチ４０２のパケット転送処理について説明する。
【００４７】
ステップＳ２０１において、マスタスイッチ４０２の上流Ｐ２Ｐブリッジ１０４０は、パケットを受信する。処理はステップＳ２０２へ移行する。
【００４８】
ステップＳ２０２において、上流Ｐ２Ｐブリッジ１０４０は、受信したパケットのヘッダを検査する。処理はステップＳ２０３へ移行する。
【００４９】
ステップＳ２０３において、上流Ｐ２Ｐブリッジ１０４０は、構成情報テーブル５００を参照して、パケットの宛先を検索する。宛先検索処理については図１７を用いて後述する。処理はステップＳ２０４へ移行する。
【００５０】
ステップＳ２０４において、上流Ｐ２Ｐブリッジ１０４０は、パケットの宛先がマスタスイッチ４０２内か否かを判定する。パケットの宛先がマスタスイッチ４０２内である場合、処理はステップＳ２０５へ移行する。一方、パケットの宛先がマスタスイッチ４０２内でない場合、処理はステップＳ２０６へ移行する。
【００５１】
ステップＳ２０５において、上流Ｐ２Ｐブリッジ１０４０は、マスタスイッチ４０２内の対応するポートにパケットを転送する。処理は終了する。
【００５２】
ステップＳ２０５において、上流Ｐ２Ｐブリッジ１０４０は、対応するスレーブスイッチ４０４の仮想ポートにパケットを転送する。処理は終了する。
【００５３】
図１６を参照して、スレーブスイッチ４０４のパケット転送処理について説明する。
【００５４】
ステップＳ２１１において、スレーブスイッチ４０４の下流Ｐ２Ｐブリッジ１０４２はパケットを受信する。処理はステップＳ２１２へ移行する。
【００５５】
ステップＳ２１２において、下流Ｐ２Ｐブリッジ１０４２は、受信ポートが仮想リンクであるか否かを判定する。受信ポートが仮想リンクである場合、処理はステップＳ２１３へ移行する。一方、受信ポートが仮想リンクでない場合、処理はステップＳ２１４へ移行する。
【００５６】
ステップＳ２１３において、下流Ｐ２Ｐブリッジ１０４２は、ＰＣＩＥｘｐｒｅｓｓのルールに従ってパケットを転送する。処理は終了する。
【００５７】
ステップＳ２１４において、下流Ｐ２Ｐブリッジ１０４２は、マスタスイッチ４０２に接続する仮想ポートにパケットを転送する。処理は終了する。
【００５８】
図１７を参照してパケットの宛先検索処理について説明する。
【００５９】
ステップＳ３０１において、上流Ｐ２Ｐブリッジ１０４０は、パケットのルーティングタイプがアドレスまたはＩＤのいずれかであるかを判定する。パケットのルーティングタイプがアドレスである場合、処理はステップＳ３０２へ移行する。一方、パケットのルーティングタイプがＩＤである場合、処理はステップＳ３０３へ移行する。
【００６０】
ステップＳ３０２において、上流Ｐ２Ｐブリッジ１０４０は、パケットのアドレスが構成情報テーブル５００に登録されているアドレスの範囲内にあるか否かを判定する。パケットのアドレスが構成情報テーブル５００に登録されているアドレスの範囲内にある場合、処理はステップＳ３０４へ移行する。一方、パケットのアドレスが構成情報テーブル５００に登録されているアドレスの範囲内にない場合、処理はステップＳ３０６へ移行する。
【００６１】
ステップＳ３０４において、上流Ｐ２Ｐブリッジ１０４０は、対応するポートを宛先ポートに設定する。処理は終了する。
【００６２】
ステップＳ３０３において、上流Ｐ２Ｐブリッジ１０４０は、パケットのＩＤが構成情報テーブル５００に登録されているＩＤの範囲内にあるか否かを判定する。パケットのＩＤが構成情報テーブル５００に登録されているＩＤの範囲内にある場合、処理はステップＳ３０４へ移行し、上流Ｐ２Ｐブリッジ１０４０は、対応するポートを宛先ポートに設定する。一方、パケットのＩＤが構成情報テーブル５００に登録されているＩＤの範囲内にない場合、処理はステップＳ３０５へ移行する。
【００６３】
ステップＳ３０５において、上流Ｐ２Ｐブリッジ１０４０は、パケットのバスが構成情報テーブル５００に登録されているバスの範囲内にあるか否かを判定する。パケットのバスが構成情報テーブル５００に登録されているバスの範囲内にある場合、処理はステップＳ３０４へ移行し、上流Ｐ２Ｐブリッジ１０４０は、対応するポートを宛先ポートに設定する。一方、パケットのバスが構成情報テーブル５００に登録されているバスの範囲内にない場合、処理はステップＳ３０６へ移行する。
【００６４】
ステップＳ３０６において、上流Ｐ２Ｐブリッジ１０４０は、パケットが下流ポートから送信されてきたか否かを判定する。パケットが下流ポートから送信されてきた場合、処理はステップＳ３０７へ移行する。一方、パケットが下流ポートから送信されてきていない場合、処理はステップＳ３０８へ移行する。
【００６５】
ステップＳ３０７において、上流Ｐ２Ｐブリッジ１０４０は、上流ポートを宛先ポートに設定する。処理は終了する。
【００６６】
ステップＳ３０８において、上流Ｐ２Ｐブリッジ１０４０は、パケットの転送先無しとしてエラーを出力する。処理は終了する。
【００６７】
図１８を参照して、第一実施形態の有効性について説明する。例えば、図１８に表すスイッチシステム４２１のように、２つのＰＣＩｅスイッチを上流ポートと下流ポートを組み合わせる形で接続した場合、システム内で使用されるバス番号及びエンド・ポイントまでの階層が、単一スイッチと比較してそれぞれ２つ増加する。これに対して、第一実施形態によれば、２つのＰＣＩｅスイッチを仮想リンクによって接続するため、システム内で使用されるバス番号及びエンド・ポイントまでの階層が増加しない。ゆえに、複数のスイッチを接続しても、使用するバス階層及び階層の深さを一定に保つことができる。
【００６８】
（実施形態２）
図１９は、本実施形態におけるシステム１０１の構成図を表す。実施形態１において説明したものと同様のものには同一の番号を付している。サーバやＰＣなどにおいて複数のホストを有するシステムを論理分割（パーティショニング）して使用したいという要求がある。システム１０１は当該要求を実現している。システム１０１は、第一のホストブリッジ１０２１及び第二のホストブリッジ１０２１を有する。ホストブリッジ１０２１が複数存在するため、ＰＣＩｅスイッチにおいてもパーティショニングを行う必要がある。複数のスイッチチップからなるＰＣＩｅスイッチを論理分割する技術として、ＰＣＩＳＩＧにおいてマルチ・ルート・アイオー・バーチュライゼーション（ＭＲ−ＩＯＶ：Ｍｕｌｔｉ−Ｒｏｏｔ Ｉ／Ｏ Ｖｉｒｔｕａｌｉｚａｔｉｏｎ）が規定されている。
【００６９】
図２０は、本実施形態におけるＰＣＩｅスイッチ１１４の論理分割を表している。ＰＣＩｅスイッチ１１４は、パーティション１及びパーティション２を有する。パーティション１は、上流ポート１１４１、上流ブリッジ１１４０、下流ブリッジ１１４２及び下流ポート１１４３を有する。上流ブリッジ１１４０と下流ブリッジ１１４２とは、内部ＰＣＩバス１１４４１によって互いに接続される。パーティション２は、上流ポート１１４１、上流ブリッジ１１４０、下流ブリッジ１１４２及び下流ポート１１４３を有する。上流ブリッジ１１４０と下流ブリッジ１１４２とは、内部ＰＣＩバス１１４４２によって互いに接続される。
【００７０】
図２１にパケットのフォーマットの一例を表す。パケット３１０は、ヘッダ３０２、Ｔａｇ３０１、ＰＴＮ＃３０３、ＴＬＰ３０４及び「ＣＲＣ３２」３０６を有する。図５において説明したものについては同一番号を付し、その説明を省略する。Ｔａｇ３０１は、ＰＴＮ＃３０３の開始を識別するためのヘッダである。ＰＴＮ＃３０３はパーティションの番号を表す。本実施形態においては、例えば、ヘッダ３２０は２Ｂｙｔｅ、Ｔａｇは２Ｂｙｔｅ、ＰＴＮ＃３０３は２Ｂｙｔｅ、ＴＬＰ３０４は１２Ｂｙｔｅ〜４１１６Ｂｙｔｅ、「ＣＲＣ３２」３０６は４Ｂｙｔｅである。
【００７１】
図２２に本実施形態におけるスイッチシステム４１１を表す。図２２に表したシステム４１１は、図２３に表した２つのスイッチを接続したものである。連結対象となるスイッチについて、ホストブリッジ１０２１に最も近いスイッチをマスタスイッチ４１２とする。その他のスイッチをスレーブスイッチ４１４とする。マスタスイッチ４１２とスレーブスイッチ４１４の間は仮想リンクと呼ばれる専用リンクによって接続される。仮想リンクが接続されるポートは仮想ポート１１４５と呼ばれる。システム内でＮ個のスイッチを接続する場合、マスタスイッチ４１２にはＮ−１個の仮想ポート１１４５、スレーブスイッチ４１４には、１個の仮想ポートを有する。
【００７２】
仮想ポート１１４５に接続されるＰ２Ｐブリッジ１１４６では、まずＯＳ／ＢＩＯＳから送信されるコマンドがコンフィグレーションアクセスのコマンドであるか否かを判定する。そして、当該コマンドがコンフィグレーションアクセスである場合は、当該コマンドを接続されたスイッチに送信する。
【００７３】
図２４にスイッチシステム４１０を表す。マスタスイッチ４１２はマスタスイッチ４１２及びスレーブスイッチ４１４の構成情報を構成情報テーブル５００として有する。
【００７４】
図２５にパーティションテーブル６００を表す。パーティションテーブル６００は、パーティション番号６０２、スイッチ番号６０４、ポート番号６０６、転送ポート番号６０８及び下流ポート群番号６１０を有する。パーティション番号６０２は、インデックスである。スイッチ番号６０４及びポート番号６０６は上流ポート情報である。転送ポート番号６０８及び下流ポート群番号６１０は自スイッチ情報である。なお、パーティションテーブル６００は、例えば、パーティション構成決定時にソフトウェアによって設定される。
【００７５】
図２６を参照して、構成情報テーブルの更新処理について説明する。
【００７６】
ステップＳ４０１において、ステップＳ１０１において、マスタスイッチ４１２の上流Ｐ２Ｐブリッジ１１４０は、パケットを受信する。処理はステップＳ４０２へ移行する。
【００７７】
ステップＳ４０２において、上流Ｐ２Ｐブリッジ１１４０は、パケットの受信ポート番号からパーティション番号を取得する。処理はステップＳ４０３へ移行する。
【００７８】
ステップＳ４０３において、上流Ｐ２Ｐブリッジ１１４０は、ステップＳ４０２において取得したパーティション番号に対応する構成情報テーブルを取得する。処理はステップＳ４０４へ移行する。
【００７９】
ステップＳ４０４において、上流Ｐ２Ｐブリッジ１１４０は、受信したパケットのヘッダを検査する。処理はステップＳ４０５へ移行する。
【００８０】
ステップＳ４０５において、上流Ｐ２Ｐブリッジ１１４０は、受信したパケットのヘッダを参照して、受信したパケットがタイプ０のコンフィグレーション・ライト・リクエストであるか否かを判定する。受信したパケットがタイプ０のコンフィグレーション・ライト・リクエストである場合は、処理はステップＳ４０６へ移行する。一方、受信したパケットがタイプ０のコンフィグレーション・ライト・リクエストでない場合は、処理はステップＳ４０８へ移行する。
【００８１】
ステップＳ４０６において、上流Ｐ２Ｐブリッジ１１４０は、受信したパケットのヘッダを参照して、受信したパケットのコンフィグレーションアドレスはセカンダリ・バス・ナンバーであるか否かを判定する。受信したパケットのコンフィグレーションアドレスがセカンダリ・バス・ナンバーである場合、処理はステップＳ４０７へ移行する。一方、受信したパケットのコンフィグレーションアドレスがセカンダリ・バス・ナンバーでない場合、処理はステップＳ４１１へ移行する。
【００８２】
ステップＳ４０７において、上流Ｐ２Ｐブリッジ１１４０は、内部バス番号を更新する。処理は終了する。
【００８３】
ステップＳ４０８において、上流Ｐ２Ｐブリッジ１１４０は、受信したパケットのヘッダを参照して、受信したパケットがタイプ１の Ｃｏｎｆｉｇｕｒａｔｉｏｎ Ｗｒｉｔｅ Ｒｅｑｕｅｓｔであるか否かを判定する。受信したパケットがタイプ１ Ｃｏｎｆｉｇｕｒａｔｉｏｎ Ｗｒｉｔｅ Ｒｅｑｕｅｓｔである場合、処理はステップＳ４０９へ移行する。一方、受信したパケットがタイプ１ Ｃｏｎｆｉｇｕｒａｔｉｏｎ Ｗｒｉｔｅ Ｒｅｑｕｅｓｔでない場合、処理は終了する。
【００８４】
ステップＳ４０９において、上流Ｐ２Ｐブリッジ１１４０は、受信したパケットのヘッダを参照して、パケットのバス番号が内部バス番号であるか否かを判定する。パケットのバス番号が内部バス番号である場合、処理はステップＳ４１０へ移行する。一方、パケットのバス番号が内部バス番号でない場合、処理は終了する。
【００８５】
ステップＳ４１０において、上流Ｐ２Ｐブリッジ１１４０は、バケットのデバイス番号を参照して、構成情報の更新対象エントリを設定し、当該エントリのバス番号を更新する。処理はステップＳ４１１へ移行する。
【００８６】
ステップＳ４１１において、上流Ｐ２Ｐブリッジ１１４０は、バケットのデバイス番号を参照して、コンフィグレーションアドレスがブリッジ情報であるか否かを判定する。コンフィグレーションアドレスがブリッジ情報である場合、処理はステップＳ４１２へ移行する。一方、コンフィグレーションアドレスがブリッジ情報でない場合、処理は終了する。
【００８７】
ステップＳ４１２において、マスタスイッチ４１２は、ステップＳ４１０において設定した更新対象エントリのブリッジ情報を更新する。処理は終了する。
【００８８】
図２７及び図２８を参照して、パケットのルーティング方式について説明する。図２７は、マスタスイッチ４１２のポートで受信したパケットのルーティングを表している。まず、受信ポートでパケットのヘッダを解析し、構成情報テーブル５００に宛先解決を要求する。構成情報テーブル５００では、パケットの種類に応じ、番号対応表、バス範囲キャッシュ（ＩＤルーティング）またはアドレス範囲キャッシュ（アドレスルーティング）によりパケットの宛先ポートを決定する。パケットの宛先ポートがスレーブスイッチ４１４の場合、パケットを仮想リンク対応する仮想ポート１１４５に転送する。転送ポートは、パケットの受信ポートのパーティション番号によって、パーティションテーブル６００から取得する。スレーブスイッチ４１４は、通常のＰＣＩｅスイッチと同様の処理を行う。一方、図２８は、スレーブスイッチ４１４のポートで受信したパケットのルーティングを表している。受信ポートは、パケットを仮想リンクを通じてマスタスイッチ４１２に転送する。マスタスイッチ４１２は、上述した手順に従って、パケットのルーティングを行う。転送ポートは、パケットの受信ポートのパーティション番号によって、パーティションテーブル６００から取得する。
【００８９】
図２９及び図３０を参照して、パケット転送処理について説明する。
【００９０】
ステップＳ５０１において、パケットを受信したマスタスイッチ４１２の上流Ｐ２Ｐブリッジ１１４０は、受信ポートが仮想リンクであるか否かを判定する。受信ポートが仮想リンクである場合、処理はステップＳ５０２へ移行する。一方、受信ポートが仮想リンクでない場合、処理はステップＳ５０３へ移行する。
【００９１】
ステップＳ５０２において、上流Ｐ２Ｐブリッジ１１４０は、ステップＳ５０１において取得したパケットからパーティション番号を取得する。処理はステップＳ５０４へ移行する。
【００９２】
ステップＳ５０３において、上流Ｐ２Ｐブリッジ１１４０は、受信ポート番号からパーティション番号を取得する。処理はステップＳ５０４へ移行する。
【００９３】
ステップＳ５０４において、上流Ｐ２Ｐブリッジ１１４０は、パーティション番号に対応する仮想スイッチはマスタスイッチであるか否か判定する。パーティション番号に対応する仮想スイッチがマスタスイッチである場合、処理はステップＳ５０９へ移行する。一方、パーティション番号に対応する仮想スイッチはマスタスイッチでない場合、処理はステップＳ５０５へ移行する。
【００９４】
ステップＳ５０５において、上流Ｐ２Ｐブリッジ１１４０は、受信ポートは仮想リンクであるか否かを判定する。受信ポートが仮想リンクである場合、処理はステップＳ５０６へ移行する。一方、受信ポートが仮想リンクでない場合、処理はステップＳ５０８へ移行する。
【００９５】
ステップＳ５０６において、下流Ｐ２Ｐブリッジ１１４２は、パーティション番号に対応する下流ポートを選択する。処理はステップＳ５０７へ移行する。
【００９６】
ステップＳ５０７において、下流Ｐ２Ｐブリッジ１１４２は、ＰＣＩＥｘｐｒｅｓｓのルールに従ってパケットを転送する。処理は終了する。
【００９７】
ステップＳ５０８において、下流Ｐ２Ｐブリッジ１１４２は、マスタスイッチ４１２に接続する仮想ポート１１４５にパケットを転送する。処理は終了する。
【００９８】
ステップＳ５０９において、下流Ｐ２Ｐブリッジ１１４２は、パーティション番号に対応した構成情報テーブルを取得する。処理は図３０のステップＳ５１０へ移行する。
【００９９】
ステップＳ５１０において、上流Ｐ２Ｐブリッジ１１４０は、受信したパケットのヘッダを検査する。処理はステップＳ５１１へ移行する。
【０１００】
ステップＳ５１１において、上流Ｐ２Ｐブリッジ１１４０は、受信したパケットの宛先を検索する。宛先検索処理については図０を用いて説明したのと同様なので、その説明を省略する。処理はステップＳ５１２へ移行する。
【０１０１】
ステップＳ５１２において、上流Ｐ２Ｐブリッジ１１４０は、受信したパケットの宛先がマスタスイッチ４１２内か否かを判定する。パケットの宛先がマスタスイッチ４１２内である場合、処理はステップＳ５１３へ移行する。一方、パケットの宛先がマスタスイッチ４１２内でない場合、処理はステップＳ５１４へ移行する。
【０１０２】
ステップＳ５１３において、上流Ｐ２Ｐブリッジ１１４０は、マスタスイッチ４１２内の対応するポートにパケットを転送する。処理は終了する。
【０１０３】
ステップＳ５１４において、上流Ｐ２Ｐブリッジ１１４０は、対応するスレーブスイッチ４１４の仮想ポート１１４５にパケットを転送する。処理は終了する。
【０１０４】
図３１を参照して、本実施形態の有効性について説明する。例えば、図３１のスイッチシステム４３１ように２つのＰＣＩｅスイッチを上流ポートと下流ポートを組み合わせる形で接続した場合、システム内で使用されるバス番号及びＥｎｄ Ｐｏｉｎｔまでの階層が、単一スイッチと比較してそれぞれ２つ増加する。これに対して、第二実施形態によれば、２つのＰＣＩｅスイッチを仮想リンクによって接続するため、システム内で使用されるバス番号及びＥｎｄ Ｐｏｉｎｔまでの階層が増加しない。ゆえに、複数のスイッチを接続しても、使用するバス階層及び階層の深さを一定に保つことができる。
【符号の説明】
【０１０５】
１、２  パーティション
９  バス０
１０  ブリッジ１
１１  バス１
１２  バス２
１３  バス３
１００、１０１  システム
１０２  ホスト
１０２１  ホストブリッジ
１０２２  ＣＰＵ
１０４、１１４  ＰＣＩｅスイッチ
１０４０、１１４０  上流Ｐ２Ｐブリッジ
１０４１、１１４１  上流ポート
１０４２、１１４２  下流Ｐ２Ｐブリッジ
１０４３、１１４３  下流ポート
１０４４、１１４４１、１１４４２  内部バス
１０４５  仮想ポート
１０４６  仮想ポートに接続されるＰ２Ｐブリッジ
１０６  Ｉ／Ｏデバイス
１０８  ＮＩＣ
１１０  ネットワーク
１１２  ＨＢＡ
１１４  ディスク
２０  ブリッジ２
２１、２２、２３、２４  デバイス
２００  システムツリー
３０  ブリッジ３
３００、３１０  パケット
３０１  ｔａｇ
３０２  ヘッダ
３０３  パーティション番号
３０４  ＴＬＰ
３０６  ＣＲＣ３２
４０１、４１１、４２１、４３１  スイッチシステム
４０２、４１２  マスタスイッチ
４０４、４１４  スレーブスイッチ
５００  構成情報テーブル
５０２  スイッチ番号
５０４  ポート番号
５０６  デバイス番号
５０８  バス番号
５０９  ファンクション番号
５１０  アドレス範囲情報
５１２  バス範囲情報
６００  パーティションテーブル
６０２  パーティション番号
６０４  スイッチ番号
６０６  ポート番号
６０８  転送ポート番号
６１０  下流ポート群番号
【図１】
2010225085.tif 000003
【図２】
2010225085.tif 000004
【図３】
2010225085.tif 000005
【図４】
2010225085.tif 000006
【図５】
2010225085.tif 000007
【図６】
2010225085.tif 000008
【図７】
2010225085.tif 000009
【図８】
2010225085.tif 000010
【図９】
2010225085.tif 000011
【図１０】
2010225085.tif 000012
【図１１】
2010225085.tif 000013
【図１２】
2010225085.tif 000014
【図１３】
2010225085.tif 000015
【図１４】
2010225085.tif 000016
【図１５】
2010225085.tif 000017
【図１６】
2010225085.tif 000018
【図１７】
2010225085.tif 000019
【図１８】
2010225085.tif 000020
【図１９】
2010225085.tif 000021
【図２０】
2010225085.tif 000022
【図２１】
2010225085.tif 000023
【図２２】
2010225085.tif 000024
【図２３】
2010225085.tif 000025
【図２４】
2010225085.tif 000026
【図２５】
2010225085.tif 000027
【図２６】
2010225085.tif 000028
【図２７】
2010225085.tif 000029
【図２８】
2010225085.tif 000030
【図２９】
2010225085.tif 000031
【図３０】
2010225085.tif 000032
【図３１】
2010225085.tif 000033