(57)【要約】  スイッチ（304）は、複数のブリッジ（3041,3042,3043,3044,3045）と、スイッチフォワーディング機構（20）とを備える。各ブリッジは、それぞれに接続されたデバイスとの間でＰＣＩエクスプレス準拠のＴＬＰフレームを送受信する。スイッチフォワーディング機構は、各ブリッジが接続される複数のポート（1,2,3,4,5）を有し、複数のポートのいずれかから入力されたＴＬＰフレームの宛先情報と該ＴＬＰフレームを入力したポートとの組み合わせに応じて出力ポートを選定し、選定した出力ポートからＴＬＰフレームを出力する。
2008018485.tif 000002
【特許請求の範囲】
【請求項１】
それぞれに接続されたデバイスとの間でＰＣＩエクスプレス準拠のＴＬＰフレームを送受信する複数のブリッジと、
前記複数のブリッジが接続される複数のポートを有し、前記複数のポートのいずれかから入力されたＴＬＰフレームの宛先情報と該ＴＬＰフレームを入力したポートとの組み合わせに応じて出力ポートを選定し該出力ポートから前記ＴＬＰフレームを出力するスイッチフォワーディング機構とを備えることを特徴とするスイッチ。
【請求項２】
前記スイッチフォワーディング機構は、前記複数のブリッジに接続されたデバイスのうちの相互に接続すべきデバイスおよびその接続に用いるポートを識別するためのグループＩＤを記憶するグループＩＤ管理テーブルメモリと、ＴＬＰフレームの宛先情報と前記グループＩＤ管理テーブルメモリのグループＩＤとに関連付けられた出力ポートの情報を記憶するフォワーディングテーブルと、前記複数のポートのいずれかから入力されたＴＬＰフレームのための出力ポートを前記フォワーディングテーブルから選定し当該出力ポートから前記ＴＬＰフレームを出力する転送制御部とを有することを特徴とする請求項１記載のスイッチ。
【請求項３】
前記転送制御部は、ＴＬＰフレームを入力したポートに対応するグループＩＤを前記グループＩＤ管理テーブルメモリから読み出して前記ＴＬＰフレームのヘッダに設定する入力ヘッダ書換器と、前記ＴＬＰフレームの宛先情報と該ＴＬＰフレームのヘッダに設定されたグループＩＤとに対応する出力ポートを前記フォワーディングテーブルから選定するテーブルサーチ器と、前記テーブルサーチ器が選定した出力ポートから前記ＴＬＰフレームを出力するフレーム転送器とを有することを特徴とする請求項２記載のスイッチ。
【請求項４】
前記入力ヘッダ書換器は、前記ＴＬＰフレームのヘッダの予約領域に当該グループＩＤを設定することを特徴とする請求項３記載のスイッチ。
【請求項５】
前記グループＩＤ管理テーブルメモリは、グループＩＤが付与された各ポートに接続されるデバイスの種類を表す属性情報を記憶し、
前記スイッチフォワーディング機構は、前記テーブルサーチ器が選定した出力ポートに関し前記グループＩＤ管理テーブルメモリに記憶されている属性情報がＰＣＩエクスプレス準拠のルートコンプレックスまたはエンドポイントを表す場合に前記フレーム転送器から出力すべきＴＬＰフレームのヘッダに設定されたグループＩＤを削除する出力ヘッダ書換器を有することを特徴とする請求項３又は４記載のスイッチ。
【請求項６】
前記入力ヘッダ書換器は、ＴＬＰフレームを入力したポートに関し前記グループＩＤ管理テーブルメモリに記憶されている属性情報が他のスイッチを表す場合、前記ＴＬＰフレームのヘッダに既に設定されているグループＩＤを残すことを特徴とする請求項５記載のスイッチ。
【請求項７】
前記フォワーディングテーブルは、ＩＤルーティング用およびアドレスルーティング用のフォワーディングテーブルを含み、
前記テーブルサーチ器は、前記フォワーディングテーブルのうちの前記ＴＬＰフレームのルーティング形態に対応するフォワーディングテーブルから前記出力ポートを選定することを特徴とする請求項５又は６記載のスイッチ。
【請求項８】
前記アドレスルーティング用のフォワーディングテーブルは、ＴＬＰフレームの宛先としてのデバイスにおけるメモリアドレスのオフセット量を規定したオフセット情報を含み、
前記出力ヘッダ書換部は、前記ＴＬＰフレーム転送器から出力すべきＴＬＰフレームの宛先情報を前記オフセット情報に従い書き換えることを特徴とする請求項７記載のスイッチ。
【請求項９】
前記フォワーディングテーブルは、ＩＤルーティング用のフォワーディングテーブルが記憶する宛先情報と複数の出力ポートとの関連を規定したマルチキャストテーブルを含み、
前記テーブルサーチ器は、前記ＴＬＰフレームのルーティング形態がＩＤルーティングであり、かつ、前記ＴＬＰフレームにマルチキャスト通信を指示する情報が設定されている場合、前記ＴＬＰフレームのための出力ポートを前記マルチキャストテーブルから選定することを特徴とする請求項８記載のスイッチ。
【請求項１０】
前記グループＩＤ管理テーブルメモリは、それぞれルートコンプレックスを表す複数の属性情報に対し相互に異なるグループＩＤを記憶することを特徴とする請求項５記載のスイッチ。
【請求項１１】
前記グループＩＤ管理テーブルメモリは、特定のルートコンプレックスに接続されたＣＰＵが使用するエンドポイントに接続されたポートのグループＩＤとして、前記特定のルートコンプレックスに接続されるポートのグループＩＤと同一のものを記憶することを特徴とする請求項１０記載のスイッチ。
【請求項１２】
前記グループＩＤ管理テーブルメモリは、複数のルートコンプレックスに接続された複数のＣＰＵが共用するエンドポイントに接続されたポートのグループＩＤとして、前記エンドポイント専用のグループＩＤを記憶することを特徴とする請求項１０記載のスイッチ。
【請求項１３】
さらに、前記グループＩＤ管理テーブルメモリおよび前記フォワーディングテーブルを外部装置からアクセス可能とする外部制御インタフェースを備えることを特徴とする請求項３記載のスイッチ。
【請求項１４】
請求項１乃至１３のいずれか１項に記載のスイッチと、前記スイッチおよび相互に異なるいずれかの前記デバイスに接続された第１のＰＣＩエクスプレスバスおよび第２のＰＣＩエクスプレスバスとを備えることを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータおよびネットワーク装置で使われるコンピューティングデバイスおよびネットワーキングデバイスのＰＣＩエクスプレスインタフェースを拡張するインターコネクション用のスイッチおよびそのスイッチを用いたシステムに関する。
【背景技術】
【０００２】
中央演算装置（ＣＰＵ）、ハードディスク、グラフィックコントローラ等のコンピューティングデバイス間、フォワーディングエンジン、ネットワークコントローラ等のネットワーキングデバイス間、および、コンピューティングデバイスとネットワーキングデバイス間を接続するバス規格として、ペリフェラルコンポーネントインターコネクト（ＰＣＩ）が広く普及している。このＰＣＩの次世代規格として、ＰＣＩのパラレルバスをシリアル化し、パケット方式で通信を行うＰＣＩエクスプレスが標準化されている。このＰＣＩエクスプレスにより形成されるＰＣＩエクスプレスシステムの一例が、非特許文献１に記載されている。【０００３】
図１９に、非特許文献１に記載されるシステムを模式的に示す。図１９に示すＰＣＩエクスプレスシステムは、コンピュータの中央演算処理を行うＣＰＵ１０１、ＣＰＵ１０１からのＩ／Ｏアクセスを制御するホストブリッジに搭載されるＰＣＩエクスプレスのルートコンプレックス１０２、ホストブリッジに接続されるメモリ１０３、ルートコンプレックス１０２に接続されるＰＣＩエクスプレススイッチ１０４、ＰＣＩエクスプレススイッチ１０４に接続されるコンピューティングデバイスに搭載されるＰＣＩエクスプレスのエンドポイント１０５、１０６、１０７で構成される。【０００４】
ＰＣＩエクスプレススイッチ１０４は、エンドポイントを接続するＰＣＩエクスプレスインタフェースの接続数を増やす目的で使われる。ＰＣＩエクスプレススイッチ１０４の内部回路構成の一例が、非特許文献２に記載されている。【０００５】
図２０に、非特許文献２に記載されるスイッチを模式的に示す。図２０に示すＰＣＩエクスプレススイッチ１０４は、ルートコンプレックス方向につながる上流ＰＣＩ−ＰＣＩブリッジ１０４１と、エンドポイント方向につながる下流ＰＣＩ−ＰＣＩブリッジ１０４２，１０４３，１０４４とで構成され、各ＰＣＩ−ＰＣＩブリッジ間はＰＣＩエクスプレススイッチ内部バス１０４５で接続される。【０００６】
図１９のＰＣＩエクスプレスシステムおよび図２０のＰＣＩエクスプレススイッチ１０４の内部バス１０４５上で転送されるパケット（ＴＬＰ：Ｔｒａｎｓａｃｔｉｏｎ  Ｌａｙｅｒ  Ｐａｋｃｅｔ）は、ＣＰＵ１０１のアドレス空間上で管理されるＰＣＩエクスプレスのフレームが使用される。本明細書では、このフレームをＴＬＰフレームと呼ぶ。ＰＣＩエクスプレスでは、ＴＬＰフレームのヘッダの表記からＴＬＰフレームの転送先を特定する手法として、アドレスルーティングとＩＤルーティングの２種類が定義されている。アドレスルーティングは、あて先であるエンドポイントなどに割り当てられたＩ／Ｏ空間あるいはメモリ空間を指定することで、あて先を特定する手法であり、そのフレームフォーマットは非特許文献３に記載されている。他方、ＩＤルーティングは、あて先が接続するバスの番号、同一バス内のデバイス識別のために割り当てられたデバイス番号、デバイス内の各機能に割り当てられたファンクション番号を指定することで、あて先を特定する手法であり、そのフレームフォーマットは非特許文献４に記載されている。本明細書では、あて先を特定する、Ｉ／Ｏ空間あるいはメモリ空間、および、バス番号とデバイス番号とファンクション番号を総称して、あて先アドレス空間と呼ぶ。【０００７】
図２１に、アドレスルーティング用フレーム（アドレスルーティングＴＬＰフレーム）のフォーマットを示す。アドレスルーティングＴＬＰフレームを用いたデータ転送では、Ｂｙｔｅ８のＡｄｄｒｅｓｓ［３１：２］のデータ領域があて先アドレス空間に用いられる。このフレームが図２０のＰＣＩエクスプレススイッチ１０４上に流れてきた場合、ＰＣＩエクスプレススイッチ内部バス１０４５上につながる全てのＰＣＩ−ＰＣＩブリッジがこのフレームを受信し、フレームに格納されているＡｄｄｒｅｓｓ［３１：２］に対応するデバイスが自ブリッジの先につながっているブリッジが、このフレームをデバイスに転送する。また、通常、ブリッジの先につながるデバイスが扱うアドレスはＣＰＵ１０１によって、アドレスが重ならないように設定されるため、フレームは或る１つのＰＣＩ−ＰＣＩブリッジから転送される。【０００８】
図２２に、ＩＤルーティング用フレーム（ＩＤルーティングＴＬＰフレーム）のフォーマットを示す。ＩＤルーティングＴＬＰフレームを用いたデータ転送では、Ｂｙｔｅ８のバス番号、デバイス番号およびファンクション番号があて先アドレス空間に用いられる。このＴＬＰフレームが図２０のＰＣＩエクスプレススイッチ１０４に流れてきた場合、ＰＣＩエクスプレススイッチ内部バス１０４５上につながる全てのＰＣＩ−ＰＣＩブリッジがそれをフレームを受信する。そして、そのＴＬＰフレームに格納されているバス番号、デバイス番号およびファンクション番号に対応するデバイスに接続されているブリッジが、このＴＬＰフレームをデバイスに転送する。また、ＩＤルーティングに用いられるバス番号、デバイス番号およびファンクション番号は、複数のデバイス間で重ならないように、ＣＰＵ１０１により設定される。よって、ＴＬＰフレームは、或る１つのＰＣＩ−ＰＣＩブリッジから転送される。【０００９】
図１９に示すＰＣＩエクスプレスシステムは、複数のエンドポイントの内の任意のものをＣＰＵ１０１に接続することができる。しかしながら、１つのＣＰＵのみが接続されることを想定したフレーム転送方法およびＰＣＩエクスプレススイッチ構成が適用されるため、複数のＣＰＵを接続することはできない。従って、複数のＣＰＵの間でエンドポイントを共有することはできない。【００１０】
上記問題を解決する手法として、以下の２つの関連技術がある。【００１１】
一つは、ネットワークに複数のＣＰＵとエンドポイントとを分散して接続し、それらの間の接続を動的に設定するアドバンストスイッチングインターコネクト（ＡＳＩ）である。このＡＳＩの一例が非特許文献５に記載されている。【００１２】
図２３に、非特許文献５に記載されたシステムを模式的に示す。図２３より、ＡＳＩネットワーク１３０１は次の構成要素を備える。ルートコンプレックス側ＰＣＩエクスプレス−ＡＳＩブリッジ１３０２及び１３０３は、対応するルートコンプレックス１０２及び１０９に接続され、ＴＬＰフレームをカプセル化したＡＳＩパケットを送受信する。ＡＳＩスイッチ１３０４は、ＡＳＩパケットのあて先が接続されているポートに対し、そのＡＳＩパケットを転送する。エンドポイント側ＰＣＩエクスプレス−ＡＳＩブリッジ１３０５〜１３０７は、エンドポイント１０５〜１０７に接続され、ＴＬＰフレームをカプセル化したＡＳＩパケットを送受信する。ファブリックマネージャ１３０８は、ルートコンプレックス側ＰＣＩエクスプレス−ＡＳＩブリッジ１３０２及び１３０３と、エンドポイント側ＰＣＩエクスプレス−ＡＳＩブリッジ１３０５〜１３０６との間の接続を管理する。【００１３】
上記関連技術の他方は、設定可能なＰＣＩエクスプレススイッチを使用するというものである。その一例が特許文献１に記載されている。【００１４】
図２４に、特許文献１に記載されるシステムを模式的に示す。また、図２５に、そのシステムに用いられるＰＣＩエクスプレススイッチの構成を示す。図２５を参照すると、設定可能ＰＣＩエクスプレススイッチ１１１は、次の構成要素を備える。上流ＰＣＩ−ＰＣＩブリッジ１１１１及び１１１２は、ルートコンプレックス１０２及び１０９に接続される。下流ＰＣＩ−ＰＣＩブリッジ１１１３〜１１１５は、エンドポイント１０５〜１０７に接続される。ＰＣＩエクスプレススイッチ内部バス１１１６は、上流ＰＣＩ−ＰＣＩブリッジ１１１１と下流ＰＣＩ−ＰＣＩブリッジ１１１３〜１１１５とを接続する。ＰＣＩエクスプレススイッチ内部バス１１１７は、上流ＰＣＩ−ＰＣＩブリッジ１１１２と下流ＰＣＩ−ＰＣＩブリッジ１１１３〜１１１５とを接続する。ブリッジコントローラ論理１１１８は、外部制御１１１９に従って、ＰＣＩエクスプレススイッチ内部バス１１１６及び１１１７と下流ＰＣＩ−ＰＣＩブリッジ１１１３〜１１１５との接続関係を制御する。【００１５】
次に、ＰＣＩエクスプレスを使用したネットワークシステムについて説明する。【００１６】
図２６に、ＰＣＩエクスプレスを使用した一般的なネットワークシステムの一例を示す。このネットワークシステムでは、ポート１〜３に接続されるネットワーク用フォワーディングエンジン４０２〜４０４をネットワーク用スイッチ４０１で相互に接続する。ネットワーク用フォワーディングエンジン４０２〜４０４は、ポート１〜３から入力されるネットワークデータのあて先を解析する。ネットワーク用スイッチ４０１は、或る１ポートに対しデータを転送するユニキャスト転送、及び、複数の特定のポートに対しデータを転送するマルチキャスト転送の２つの動作を実行する。【００１７】
また、図２６のシステムにおいて、転送データのあて先が不明な場合は、ＣＰＵ１０１がプロトコル解析を行ってからルーティング転送を行う。そのために、ＰＣＩエクスプレススイッチ１０４が、ＣＰＵ１０１のルートコンプレックス１０２とネットワーク用フォワーディングエンジン４０２〜４０４とを接続する。【００１８】
【特許文献１】特開２００５−３１７０２１号公報
【非特許文献１】PCI Express Base Specification Revision 1.1,PCI-SIG,March 28,2005,pp.30
【非特許文献２】PCI Express Base Specification Revision 1.1,PCI-SIG,March 28,2005,pp.34
【非特許文献３】PCI Express Base Specification Revision 1.1,PCI-SIG,March 28,2005,pp.52,53
【非特許文献４】PCI Express Base Specification Revision 1.1,PCI-SIG,March 28,2005,pp.54
【非特許文献５】Protocol Interface #8(PI-8) R1.0, ASI-SIG, February 2004,pp. 7-11
【発明の開示】
【発明が解決しようとする課題】
【００１９】
上述したＰＣＩエクスプレスシステムにおいては、以下に述べるような課題がある。【００２０】
第１の課題は、図２５に示すＰＣＩエクスプレスを使用したシステムにおいて、ルートコンプレックス側につながるデバイス（ＣＰＵ等）間の通信ができないことである。その理由は、設定可能なＰＣＩエクスプレススイッチ１１１における内部バス１１１６と内部バス１１１７とは完全に分離されていることにより、ルートコンプレックス１０２につながる上流ＰＣＩ−ＰＣＩブリッジ１１１１とルートコンプレックス１０９につながる上流ＰＣＩ−ＰＣＩブリッジ１１１２とをつなぐパスが存在しないからである。【００２１】
第２の課題は、図２５に示すＰＣＩエクスプレスを使用したシステムにおいて、それぞれ異なるルートコンプレックス側につながるデバイス（ＣＰＵ等）から同じエンドポイントに対する同時通信ができないことである。その理由は、設定可能なＰＣＩエクスプレススイッチ１１１における内部バス１１１６と内部バス１１１７とに対し、下流ＰＣＩ−ＰＣＩブリッジ１１１３〜１１１５が択一的に接続されるからである。エンドポイント１０５が、ルートコンプレックス１０２側のＰＣＩエクスプレススイッチ内部バス１１１６に接続されている場合、ＣＰＵ１０８は、エンドポイント１０５に対してデータを送信することができない。【００２２】
第３の課題は、図２６に示すＰＣＩエクスプレススイッチには、特定のデバイスに対してのマルチキャスト転送機能がないことである。そのため、ネットワーク用スイッチ４０１及びＰＣＩエクスプレススイッチ１０４という２種類のスイッチが必要になる。よって、システム構成が複雑になり、コストが高くなり、システム運用が複雑になるという課題がある。【００２３】
図２３に示すＡＳＩネットワーク１３０１を使用すれば、ルートコンプレックス側につながるデバイス（ＣＰＵ等）間の通信、及び、異なるルートコンプレックス側につながるデバイス（ＣＰＵ等）から同じエンドポイントに対する同時通信、ならびに、マルチキャスト通信が可能になる。しかしながら、フレームをカプセル化する処理が必要になるため、データ転送時の遅延時間を削減し難く、また、回路規模が大きくなるという別の課題がある。【００２４】
本発明は、以上のような事情に鑑みてなされたものであり、その目的は、ＰＣＩエクスプレス準拠のＴＬＰフレームを複数のデバイス間でカプセル化することなく送受信するためのスイッチおよび該スイッチを用いたシステムを提供することにある。
【課題を解決するための手段】
【００２５】
本発明に係るスイッチは、それぞれに接続されたデバイスとの間でＰＣＩエクスプレス準拠のＴＬＰフレームを送受信する複数のブリッジと、前記複数のブリッジが接続される複数のポートを有し、前記複数のポートのいずれかから入力されたＴＬＰフレームの宛先情報と該ＴＬＰフレームを入力したポートとの組み合わせに応じて出力ポートを選定し該出力ポートから前記ＴＬＰフレームを出力するスイッチフォワーディング機構とを備える。【００２６】
本発明に係るシステムは、前記スイッチおよび相互に異なるいずれかの前記デバイスに接続された第１のＰＣＩエクスプレスバスおよび第２のＰＣＩエクスプレスバスとを備える。
【発明の効果】
【００２７】
本発明によれば、ＰＣＩエクスプレスを使用したシステムにおいて、フレームカプセル化の処理を行うことなく、ＣＰＵのようなデバイス間の通信が可能となる。これにより、データ転送時の遅延の増大、及び、ＬＳＩ回路規模の増大を防ぐことができる。
【図面の簡単な説明】
【００２８】
【図１】本発明に係るスイッチを使用したシステムの実施形態の構成を示すブロック図である。
【図２】本発明の実施形態のＰＣＩエクスプレス拡張スイッチの内部構成を示すブロック図である。
【図３】本発明の実施形態の内のＰＣＩエクスプレスパケットスイッチフォワーディング機構の内部構成を示すブロック図である。
【図４】本発明の実施形態のグループＩＤ管理テーブルメモリの説明図である。
【図５】本発明の実施形態の拡張アドレスルーティングＴＬＰフレームの説明図である。
【図６】本発明の実施形態の拡張ＩＤルーティングＴＬＰフレームの説明図である。
【図７】本発明の実施形態の拡張ＴＬＰフォワーディングテーブルの説明図である。
【図８】本発明の実施形態の拡張アドレスルーティング用テーブルメモリの説明図である。
【図９】本発明の実施形態の拡張ＩＤルーティング用テーブルメモリの説明図である。
【図１０】本発明の実施形態のマルチキャストテーブルメモリの説明図である。
【図１１】本発明の実施形態のＰＣＩエクスプレスパケットスイッチフォワーディング機構の動作を示すフローチャートである。
【図１２】本発明の実施形態のＣＰＵが管理するアドレス空間に関する説明図である。
【図１３】本発明の実施形態におけるＣＰＵ−ＣＰＵ通信に用いる拡張アドレスルーティング用テーブルメモリの説明図である。
【図１４】本発明の実施形態において複数のＣＰＵがエンドポイントを共有する場合に用いるグループＩＤ管理テーブルメモリの説明図である。
【図１５】本発明の実施形態において複数のＣＰＵがエンドポイントを共有する場合のアドレス空間に関する説明図である。
【図１６】本発明の実施形態において複数のＣＰＵがエンドポイントを共有する場合に用いる拡張アドレスルーティング用テーブルメモリの説明図である。
【図１７】本発明に係るスイッチを使用したシステムの他の実施形態の構成を示すブロック図である。
【図１８】本発明に係るスイッチを使用したシステムの他の実施形態の構成を示すブロック図である。
【図１９】非特許文献１に基づくシステムの構成を示すブロック図である。
【図２０】非特許文献２に基づくシステムの構成を示すブロック図である。
【図２１】ＰＣＩエクスプレス準拠のアドレスルーティング用フレームのフォーマットに関する説明図である。
【図２２】ＰＣＩエクスプレス準拠のＩＤルーティング用フレームのフォーマットに関する説明図である。
【図２３】非特許文献５に基づくＡＳＩネットワークの構成を示すブロック図である。
【図２４】特許文献１に基づくシステムの構成を示すブロック図である。
【図２５】特許文献１に基づくシステムにおけるスイッチの内部構成を示すブロック図である。
【図２６】ＰＣＩエクスプレス準拠のスイッチを使用したネットワークシステムの構成を示すブロック図である。
【符号の説明】
【００２９】
３０４：ＰＣＩエクスプレス拡張スイッチ
２０：ＰＣＩエクスプレスパケットスイッチフォワーディング機構
３０４１、３０４２、３０４３、３０４４、３０４５：ＰＣＩ−ＰＣＩブリッジ
１１、１２、１３、１４、１５：ＰＣＩエクスプレスバス
１０２、１０９：ルートコンプレックス
１０５〜１０７：エンドポイント
３０：制御ＣＰＵ
３０４０：外部制御インタフェース
【発明を実施するための最良の形態】
【００３０】
次に本発明の実施の形態について図面を参照して詳細に説明する。【００３１】
図１に、本発明の実施形態のシステム構成を示す。ＰＣＩエクスプレスシステム１０は、本発明に掛るスイッチに対応するＰＣＩエクスプレス拡張スイッチ３０４に、複数のルートコンプレックス１０２及び１０９と複数のエンドポイント１０５〜１０７とがＰＣＩエクスプレスバス１１〜１５を介して接続された構成である。ルートコンプレックス１０２には、ＣＰＵ１０１とメモリ１０３とが接続され、ルートコンプレックス１０９には、ＣＰＵ１０８とメモリ１１０とが接続されている。【００３２】
各ルートコンプレックス１０２及び１０９、ならびに、エンドポイント１０５〜１０７は、図２１に示すアドレスルーティングＴＬＰフレームおよび図２２に示すＩＤルーティングＴＬＰフレームを用いてデータ通信を行う機能を有するＰＣＩエクスプレス対応のデバイスである。【００３３】
図２に、ＰＣＩエクスプレス拡張スイッチ３０４の構成を示す。ＰＣＩエクスプレス拡張スイッチ３０４は、ルートコンプレックス１０２とＰＣＩエクスプレスバス１１により接続されるＰＣＩ−ＰＣＩブリッジ３０４１と、ルートコンプレックス１０９とＰＣＩエクスプレスバス１２により接続されるＰＣＩ−ＰＣＩブリッジ３０４２と、エンドポイント１０５とＰＣＩエクスプレスバス１３により接続されるＰＣＩ−ＰＣＩブリッジ３０４３と、エンドポイント１０６とＰＣＩエクスプレスバス１４により接続されるＰＣＩ−ＰＣＩブリッジ３０４４と、エンドポイント１０６とＰＣＩエクスプレスバス１５により接続されるＰＣＩ−ＰＣＩブリッジ３０４５と、これらのブリッジ３０４１〜３０４５に接続されるＰＣＩエクスプレスパケットスイッチフォワーディング機構２０とから構成されている。【００３４】
ＰＣＩエクスプレスパケットスイッチフォワーディング機構２０は、ＰＣＩ−ＰＣＩブリッジ３０４１〜３０４５を接続できる入出力インタフェースである複数のポートを備え、ポート１にＰＣＩ−ＰＣＩブリッジ３０４１、ポート２にＰＣＩ−ＰＣＩブリッジ３０２４、ポート３にＰＣＩ−ＰＣＩブリッジ３０４３、ポート４にＰＣＩ−ＰＣＩブリッジ３０４４、ポート５にＰＣＩ−ＰＣＩブリッジ３０４５がそれぞれ接続されている。【００３５】
ＰＣＩ−ＰＣＩブリッジ３０４１及び３０４２、並びに、ＰＣＩ−ＰＣＩブリッジ３０４３〜３０４５は、例えば図２０あるいは図２５に示すような、本発明の関連技術のＰＣＩエクスプレススイッチにおける上流ＰＣＩ−ＰＣＩブリッジおよび下流ＰＣＩ−ＰＣＩブリッジと同等の機能を有するデバイスである。ただし、関連技術における上流および下流ＰＣＩ−ＰＣＩブリッジがＰＣＩエクスプレススイッチ内部バスで相互に接続されているのに対し、ＰＣＩ−ＰＣＩブリッジ３０４１〜３０４５は、ＰＣＩエクスプレスパケットスイッチフォワーディング機構２０により相互に接続されている点が相違する。各ブリッジ３０４１〜３０４５は、ＰＣＩエクスプレスパケットスイッチフォワーディング機構２０の接続ポートに対し、図２１に示すアドレスルーティングＴＬＰフレームまたは図２２に示すＩＤルーティングＴＬＰフレームを送信し、また接続ポートからそれらと同様な形式のＴＬＰフレームを受信する。【００３６】
ＰＣＩエクスプレスパケットスイッチフォワーディング機構２０は、ＰＣＩ−ＰＣＩブリッジ３０４１〜３０４５が接続されたポート１〜５から、前述のアドレスルーティングＴＬＰフレームまたはＩＤルーティングＴＬＰフレームを受信する。また、ＰＣＩエクスプレスパケットスイッチフォワーディング機構２０は、フレームのヘッダに設定されている宛先アドレス空間および自機構（２０）に設定されているシステム設定情報を、後述の情報テーブルに照らし合わせることで、フレームの出力に用いる何れかのポート（１〜５）を選択する。ここで、フレームのヘッダに設定されたあて先アドレス空間とは、そのフレームが図２１のアドレスルーティングＴＬＰフレームの場合はアドレス情報である。また、そのフレームが図２２に示すＩＤルーティングＴＬＰフレームの場合はバス番号、デバイス番号およびファンクション番号である。システム設定情報は、ＰＣＩエクスプレスパケットスイッチフォワーディング機構２０に外部制御インタフェース３０４０を通じて接続された制御ＣＰＵ３０から設定することができる。制御ＣＰＵ３０が接続できる外部制御インタフェース３０４０としては、ＳＭＢｕｓ、Ｉ２Ｃバス、または、ＰＣＩ−ＰＣＩブリッジ３０４１等がつながれたＰＣＩエクスプレスインタフェースを用いることができる。【００３７】
図３に、ＰＣＩエクスプレスパケットスイッチフォワーディング機構２０の構成を示す。グループＩＤ管理テーブルメモリ２０４７および拡張ＴＬＰフォワーディングテーブル２０４は、外部制御インタフェース３０４０を介して入力されるシステム設定情報を保持する記憶手段を構成するものである。転送制御部２００は、ポート１〜５から受信した入力ＴＬＰフレーム２１を、そのフレームのヘッダに設定されたあて先アドレス空間およびシステム設定情報に基づいて出力用のポート（１〜５）を選択し、選択したポートから出力ＴＬＰフレーム２２を出力する。転送制御部２００は、入力ＴＬＰヘッダ書換器２０５、テーブルサーチ器２０３、フレーム転送器２０７、及び、出力ＴＬＰヘッダ書換器２０５１から構成される。【００３８】
グループＩＤ管理テーブルメモリ２０４７は、各ポート１〜５とグループＩＤとの対応関係などの情報を記憶するメモリである。図４に、グループＩＤ管理テーブルメモリ２０４７の内容例を示す。図４より、グループＩＤ管理テーブルメモリ２０４７は、ポート番号に１対１に対応するテーブルエントリを有する。各テーブルエントリには、そのポート番号に対応するグループＩＤ、ポート属性およびデバイス属性が記録される。【００３９】
グループＩＤの役割は、システム１０のデバイス（ＣＰＵやエンドポイントなど）を、同じメモリ空間を共有するデバイス群にグループ化することである。一般のＰＣＩエクスプレスシステムでは、メモリ空間の割り当て管理をルートコンプレックス側のデバイスが行うので、ルートコンプレックス側の複数のデバイス間でメモリ空間を共有することはない。従って、図４に示すように、ポート番号「１」とポート番号「２」とにそれぞれ異なるグループＩＤ「１」及び「２」が設定されている。このように、ルートコンプレックス側のデバイスが接続される複数のポートに対しては、アドレス競合を避けるために、それぞれ異なるグループＩＤが設定される。他方、エンドポイント側のデバイスが接続されるポートのうち、対応のデバイスが特定のＣＰＵのみで使用されるポート群には、そのＣＰＵと同じグループＩＤが設定される。図４において、ポート番号「３」にグループＩＤ「１」が設定され、また、ポート番号「４」及び「５」の双方にグループＩＤ「２」が設定されている。これは、図１のエンドポイント１０５をＣＰＵ１０１のみで使用し、エンドポイント１０６及び１０７をＣＰＵ１０８のみで使用するための設定である。また、図４には例示されていないが、エンドポイント側の或るデバイスが複数のＣＰＵで共用される場合には、そのデバイスには、それ専用のグループＩＤが設定される。【００４０】
本実施の形態の場合、グループＩＤは４ビットである。これは、本実施の形態ではグループＩＤを設定するＴＬＰヘッダ領域として４ビットの予約領域を使用するためである。仮に、５ビット以上の予約領域を使用することができる場合、グループＩＤに５ビット以上の領域を割り当ててもよい。【００４１】
グループＩＤ管理テーブルメモリ２０４７のポート属性およびデバイス属性は、それぞれ異なる観点で、ポートに接続される装置の種類を示す。すなわち、ポート属性は、ポートに接続される装置として、ルートコンプレックスおよびエンドポイントと、スイッチ（ＰＣＩエクスプレス拡張スイッチ）との２種類のうちの何れが接続されているかを示す。具体的には、ルートコンプレックスおよびエンドポイントであれば値「０」、スイッチ（ＰＣＩエクスプレス拡張スイッチ）であれば値「１」が設定される。他方、デバイス属性は、ポートに接続される装置として、ルートコンプレックス、エンドポイント、それ以外のスイッチ等のブリッジの３種類のうちの何れが接続されているかを示す。具体的には、ルートコンプレックスであれば値「０」、エンドポイントであれば値「１」、ブリッジであれば値「２」が設定される。これらポート属性およびデバイス属性の役割や利用方法については後述する。【００４２】
入力ＴＬＰヘッダ書換器２０５は、グループＩＤ管理テーブルメモリ２０４７を参照して、入力ＴＬＰフレーム２１のヘッダの予約領域に、当該入力ＴＬＰフレーム２１を入力したポートに対応するグループＩＤを書き込むユニットである。グループＩＤが設定されたアドレスルーティングＴＬＰフレームまたはＩＤルーティングＴＬＰフレームを、本明細書では拡張アドレスルーティングＴＬＰフレームおよび拡張ＩＤルーティングＴＬＰフレームと呼ぶ。【００４３】
図５に、拡張アドレスルーティングＴＬＰフレームのフレームフォーマットを示す。また、図６に拡張ＩＤルーティングＴＬＰフレームのフレームフォーマットを示す。これらのフォーマットは、基本的な構成は図２１及び図２２に示すものと同様であり、それぞれのＢｙｔｅ８には、フレームの宛先情報としてのアドレスあるいはバス番号などが設定される。図５及び図６に示すように、本実施形態の拡張アドレスルーティングＴＬＰフレーム及び拡張ＩＤルーティングＴＬＰフレームにおいて、それぞれＢｙｔｅ０のＡｄｄｒｅｓｓ［１９：１６］に設定された４ビットの予約領域には、前述のグループＩＤ９０１及び９０２が書き込まれる。また、図６より、拡張ＩＤルーティングＴＬＰフレームのＢｙｔｅ８における１ビットのＡｄｄｒｅｓｓ［３１］（バス番号の１ビット分）には、マルチキャスト指示情報９０３が設定される。本実施形態において、値「１」のマルチキャスト指示情報９０３が設定されたフレームは、マルチキャスト転送用のフレームとして扱われる。【００４４】
拡張ＴＬＰフォワーディングテーブル２０４は、入力ＴＬＰヘッダ書換器２０５でヘッダが書き換えられたフレーム、すなわち拡張アドレスルーティングＴＬＰフレームおよび拡張ＩＤルーティングＴＬＰフレームの転送先を決定するためのルーティング情報を保持する。図７に、拡張ＴＬＰフォワーディングテーブル２０４の構成を示す。拡張アドレスルーティング用テーブルメモリ２０４４は、拡張アドレスルーティングＴＬＰフレームの転送先を決定するためのルーティング情報を保持する。拡張ＩＤルーティング用テーブルメモリ２０４５は、拡張ＩＤルーティングＴＬＰフレームのうちマルチキャスト指示情報９０３が値「０」（非マルチキャスト）であるフレームの転送先を決定するためのルーティング情報を保持する。マルチキャストテーブルメモリ２０４６は、拡張ＩＤルーティングＴＬＰフレームのうちマルチキャスト指示情報９０３が値「１」（マルチキャスト）であるフレームの転送先を決定するためのルーティング情報を保持する。【００４５】
図８に、拡張アドレスルーティング用テーブルメモリ２０４４の内容構成の一例を示す。拡張アドレスルーティング用テーブルメモリ２０４４の情報は、複数のテーブルエントリで構成される。各テーブルエントリには、ＴＬＰ送信先アドレス空間の下限値及び上限値と、グループＩＤと、出力ポート情報と、アドレススワップオフセット情報とが記録される。ＴＬＰ送信先アドレス空間の下限値及び上限値は、ＴＬＰフレームの宛先情報として設定されている送信先アドレスの値と対比させる項目である。すなわち、図８のＴＬＰ送信先アドレス空間の下限値及び上限値は、図５の拡張アドレスルーティングＴＬＰフレームにおけるＢｙｔｅ８の［３１：２］に記述されたアドレスと対比される項目である。また、図８のグループＩＤは図５のＢｙｔｅ０のグループＩＤ９０１と対比される項目である。拡張アドレスルーティング用テーブルメモリ２０４４の出力ポート情報は、前記対比により、アドレスおよびグループＩＤがテーブル（２０４４）のものと一致した拡張アドレスルーティングＴＬＰフレームを出力するポートの番号である。アドレススワップオフセット情報は、出力するＴＬＰフレームのアドレスに加算すべきオフセット値を示す。このアドレススワップオフセット情報は、ＣＰＵ間でＴＬＰフレームを送受信する際に、必要に応じて設定される。【００４６】
図９に、拡張ＩＤルーティング用テーブルメモリ２０４５の内容構成を示す。拡張ＩＤルーティング用テーブルメモリ２０４５は、複数のテーブルエントリで構成されている。各テーブルエントリには、バス番号、デバイス番号、ファンクション番号、グループＩＤおよび出力ポート情報が記録される。このうち、バス番号、デバイス番号、ファンクション番号およびグループＩＤは、図６の拡張ＩＤルーティングＴＬＰフレームにおける宛先情報としてのバス番号、デバイス番号およびファンクション番号（Ｂｙｔｅ８）と、グループＩＤ９０２（Ｂｙｔｅ０）と比較される項目である。出力ポート情報は、前記比較により、上記項目がテーブル（２０４５）のものと一致した拡張ＩＤルーティングＴＬＰフレームを出力するポート番号である。【００４７】
図１０に、マルチキャストテーブルメモリ２０４６の内容構成を示す。マルチキャストテーブルメモリ２０４６は、スイッチが受信した拡張ＩＤルーティングＴＬＰフレームのマルチキャスト指示情報９０３（図６）が「マルチキャスト」を表す場合に参照するものである。マルチキャストテーブルメモリ２０４６は、「０ｘ００００」〜「０ｘ７ＦＦＦ」までのメモリアドレスに１対１に対応する総数３２７６８個のテーブルエントリで構成される。各テーブルエントリには、ポートに１対１に対応するビットの集合である複数出力ポート情報が記録される。マルチキャスト指示情報９０３が値「１」である拡張ＩＤルーティングＴＬＰフレームの出力先を決定する際、その拡張ＩＤルーティングＴＬＰフレーム中のバス番号（７ビット）、デバイス番号（５ビット）およびファンクション番号（３ビット）により構成される１５ビット分の情報を、図１０の「メモリアドレス」と比較する。そして、「メモリアドレス」に一致するエントリの複数出力ポート情報を選択し、その複数出力ポート情報の値「１」に対応するポートを出力ポートとして決定する。【００４８】
テーブルサーチ器２０３は、入力ＴＬＰヘッダ書換器２０５から拡張アドレスルーティングＴＬＰフレームまたは拡張ＩＤルーティングＴＬＰフレームを受取り、そのＴＬＰフレームの種類に応じて、拡張ＴＬＰフォワーディングテーブル２０４から転送先を決定する。また、出力するＴＬＰフレームのヘッダの書換えが必要か否かを判断し、必要な場合は出力ＴＬＰヘッダ書換器２０５１を用いて書換えを行う。そして、決定した出力ポートからフレーム転送器２０７を通じて出力ＴＬＰフレーム２２を出力する。【００４９】
出力ＴＬＰヘッダ書換器２０５１は、テーブルサーチ器２０３から指示されたヘッダの書換え処理を行う。具体的には、アドレスオフセット値の加算、ヘッダ中のグループＩＤの削除などである。【００５０】
フレーム転送器２０７は、テーブルサーチ器２０３から指示されたポートから出力ＴＬＰフレーム２２を出力する処理を行う。マルチキャスト指示情報９０３が値「１」である拡張ＩＤルーティングＴＬＰフレームの場合は、図１０のマルチキャストテーブルメモリ２０４６に基づき決定された複数のポートから、そのＴＬＰフレームを並列的に出力する。【００５１】
次に、本実施の形態の動作を説明する。【００５２】
まず、グループＩＤ管理テーブルメモリ２０４７（図４）および拡張ＴＬＰフォワーディングテーブル２０４（図７）の設定について説明する。本実施の形態の場合、制御ＣＰＵ３０が、外部制御インタフェース３０４０経由でグループＩＤ管理テーブルメモリ２０４７および拡張ＴＬＰフォワーディングテーブル２０４をアクセスして必要な情報を設定する。【００５３】
グループＩＤ管理テーブルメモリ２０４７を設定する場合、複数のＣＰＵ（１０１,１０８）が何れのエンドポイント（１０５〜１０７）を使用するかという運用形態に応じて、ＰＣＩエクスプレスパケットスイッチフォワーディング機構２０の各ポートに対してグループＩＤを設定する。また、各ポートにつながる装置の種別に応じて、ポート属性及びデバイス属性を設定する。【００５４】
拡張ＴＬＰフォワーディングテーブル２０４の拡張ＩＤルーティング用テーブルメモリ２０４５の設定では、エンドポイント１０５等のデバイスごとに、そのデバイスに割り当てられたバス番号、デバイス番号およびファンクション番号を、テーブル（２０４５）のバス番号、デバイス番号およびファンクション番号の各項目に設定する。また、そのデバイスがつながるポート番号を出力ポート情報の項目に設定し、そのデバイスをどのＣＰＵで使用するかという運用形態に応じたグループＩＤをグループＩＤの項目に設定する。例えば、エンドポイント１０５のデバイスに、バス番号「Ｂｘ」、デバイス番号「Ｄｘ」、ファンクション番号「Ｆｘ」が割り当てられており、かつ、そのデバイスがＣＰＵ１０１からのみ使用されると仮定する。この場合、拡張ＩＤルーティング用テーブルメモリ２０４５の一つのテーブルエントリにおいて、バス番号「Ｂｘ」、デバイス番号「Ｄｘ」、ファンクション番号「Ｆｘ」が設定され、出力ポート情報にポート番号「３」が設定され、グループＩＤには、ＣＰＵ１０１がつながるポート１に対応するグループＩＤ「１」が設定される。【００５５】
拡張アドレスルーティング用テーブルメモリ２０４４の設定では、エンドポイント１０５等のデバイスごとに、そのデバイスに割り当て得るアドレス空間の下限値および上限値をテーブル２０４４のＴＬＰ送信先アドレス空間下限値および上限値に設定する。また、そのデバイスがつながるポート番号を出力ポート情報の項目に設定し、そのデバイスをどのＣＰＵで使用するかという運用形態に応じたグループＩＤをグループＩＤの項目に設定する。例えば、エンドポイント１０５のデバイスに対し、アドレス空間下限値「ＡＬ」および上限値「ＡＨ」が割り当てられており、そのデバイスがＣＰＵ１０１からのみ使用されると仮定する。この場合、拡張アドレスルーティング用テーブルメモリ２０４４の一つのテーブルエントリに、アドレス空間下限値「ＡＬ」および上限値「ＡＨ」が設定され、出力ポート情報にポート番号「３」が設定され、グループＩＤには、ＣＰＵ１０１がつながるポート１に対応するグループＩＤ「１」が設定される。なお、本事例のように、対象のデバイスがエンドポイントの場合、テーブル（２０４４）のアドレススワップオフセット情報には、常に「０」が設定される。【００５６】
次に、図２を参照して、ルートコンプレックス１０２及び１０９、並びに、エンドポイント１０５〜１０７から送信されたＴＬＰフレームを、ＰＣＩエクスプレス拡張スイッチ３０４がスイッチングして他のルートコンプレックス（１０２,１０９）およびエンドポイント（１０５〜１０７）に転送する際の動作を説明する。【００５７】
何れかのデバイス（ルートコンプレックスまたはエンドポイント）からＰＣＩエクスプレス拡張スイッチ３０４に入力されたＴＬＰフレームは、何れかのＰＣＩ−ＰＣＩブリッジ（３０４１〜３０４５）を介して、ＰＣＩエクスプレスパケットスイッチフォワーディング機構２０の何れかのポート（１〜５）に入力される。【００５８】
ＰＣＩエクスプレスパケットスイッチフォワーディング機構２０は、入力されたＴＬＰフレームのヘッダ中のあて先アドレス空間および自機構２０のシステム設定情報に基づいて決定したポートからフレームを出力するというスイッチング処理を行う。【００５９】
図１１に示すフローチャートを参照して、ＰＣＩエクスプレスパケットスイッチフォワーディング機構２０の内部動作について説明する。あるポートから入力ＴＬＰフレーム２１が入力されると（ステップＳ１０１）、入力ＴＬＰヘッダ書換器２０５が、その入力ＴＬＰフレーム２１を入力したポート番号をキーにして、グループＩＤ管理テーブルメモリ２０４７を検索する（ステップＳ１０２）。この検索により、キーのポート番号に対応するグループＩＤが設定されたエントリの内容を取得する。次に、入力ＴＬＰヘッダ書換器２０５は、取得したグループＩＤを入力ＴＬＰフレーム２１のヘッダに書き込む（ステップＳ１０３）。このとき、入力ＴＬＰフレーム２１がＩＤルーティングＴＬＰフレームであれば、図６に示すように、グループＩＤ９０２が設定された拡張ＩＤルーティングＴＬＰフレームが生成される。また、入力ＴＬＰフレーム２１が拡張アドレスルーティングＴＬＰフレームであれば、図５に示すように、グループＩＤ９０１が設定された拡張アドレスルーティングＴＬＰフレームが生成される。入力ＴＬＰヘッダ書換器２０５で生成されたＴＬＰフレームは、テーブルサーチ器２０３へ渡される。【００６０】
テーブルサーチ器２０３は、ＴＬＰフレームを受け取ると、その種別を判別する（ステップＳ１０４）。判別した種別が拡張アドレスルーティングＴＬＰフレームである場合、テーブルサーチ器２０３は、拡張ＴＬＰフォワーディングテーブル２０４中の拡張アドレスルーティング用テーブルメモリ２０４４を参照して、当該ＴＬＰフレームを出力するポートを決定する（ステップＳ１０５）。具体的には、拡張アドレスルーティングＴＬＰフレームのＢｙｔｅ８のアドレス［３１：２］の値が、ＴＬＰ送信先アドレス空間下限値と上限値のアドレス範囲に入っており、且つ、グループＩＤ９０１の値がグループＩＤの値と一致するテーブルエントリが選択され、そのテーブルエントリの出力ポート情報に設定されているポートが出力ポートに決定される。また、そのテーブルエントリのアドレススワップオフセット情報に「０」以外のオフセット情報が設定されている場合は、出力ＴＬＰヘッダ書換器２０５１を用いて、拡張アドレスルーティングＴＬＰフレームのＢｙｔｅ８のアドレス［３１：２］の値を、前記オフセット情報に格納されているオフセット値だけ加算する書換処理を行う（ステップＳ１０６）。フレーム転送器２０７は、前記決定した出力ポートから拡張アドレスルーティングＴＬＰフレームを出力する（ステップＳ１１０）。【００６１】
テーブルサーチ器２０３は、ＴＬＰフレームの種別の判定結果（ステップＳ１０４）が拡張ＩＤルーティングＴＬＰフレームであった場合、そのマルチキャスト指示情報９０３の値が、マルチキャスト通信を表す「１」かどうかを判定する（ステップＳ１０７）。マルチキャスト指示情報９０３の値が「１」ではない場合、テーブルサーチ器２０３は、拡張ＩＤルーティング用テーブルメモリ２０４５を参照して、当該ＴＬＰフレームを出力するポートを決定する（ステップＳ１０８）。具体的には、拡張ＩＤルーティングＴＬＰフレーム中のバス番号、デバイス番号およびファンクション番号の値が、テーブルエントリ中のバス番号、デバイス番号およびファンクション番号に一致し、且つ、グループＩＤ９０２の値がテーブルエントリ中のグループＩＤの値と一致するテーブルエントリが選択される。そして、そのテーブルエントリの出力ポート情報に設定されているポートが出力ポートに決定される。フレーム転送器２０７は、前記決定したポートから拡張ＩＤルーティングＴＬＰフレームを出力する（ステップＳ１１０）。【００６２】
また、マルチキャスト指示情報９０３の上記判定の結果（ステップＳ１０７）、値が「１」であった場合、テーブルサーチ器２０３は、マルチキャストテーブルメモリ２０４６を参照して、当該ＴＬＰフレームを出力する複数のポートを決定する（ステップＳ１０９）。具体的には、拡張ＩＤルーティングＴＬＰフレーム中のバス番号、デバイス番号およびファンクション番号からなる１５ビットの値をキーとして、マルチキャストテーブルメモリ２０４６のエントリを検索する。そして、ヒットしたエントリの複数出力ポート情報を構成するビットマップにおける「１」のビットに対応する複数のポートを、出力ポートとして決定する。フレーム転送器２０７は、マルチキャスト通信を行うべく、前記決定したポートから拡張ＩＤルーティングＴＬＰフレームを並列的に出力する（ステップＳ１１０）。【００６３】
以上の基本的な動作に加えて、ＰＣＩエクスプレスパケットスイッチフォワーディング機構２０は、グループＩＤ管理テーブルメモリ２０４７に設定されたポート属性に応じて、後述するａ）及びｂ）のような付加的な処理を実行する。【００６４】
ａ）ＰＣＩエクスプレスパケットスイッチフォワーディング機構２０は、ＴＬＰフレームを出力するために決定したポートのポート属性をグループＩＤ管理テーブルメモリ２０４７で参照する。その結果、対象のポート属性の値が「０」である場合、すなわち、その出力ポートにつながるデバイスがルートコンプレックスあるいはエンドポイントである場合、テーブルサーチ器２０３は、出力ＴＬＰヘッダ書換器２０５１を用いて、出力すべきＴＬＰフレームからグループＩＤを削除する。これにより、ヘッダのＢｙｔｅ０に設定された４ビットの予約領域を空白の状態に書換えたＴＬＰフレームを出力する。これにより、ルートコンプレックスまたはエンドポイントは、従来のＰＣＩエクスプレススイッチ経由で受け取るＴＬＰフレームと同様なＴＬＰフレームを受け取ることができる。これに対し、出力ポートのポート属性の値が「１」の場合、つまりその出力ポートにつながるデバイスがシステムにおける他のＰＣＩエクスプレス拡張スイッチである場合、上記のようなグループＩＤの書換えは行わない。
ｂ）ＰＣＩエクスプレスパケットスイッチフォワーディング機構２０は、ＴＬＰフレームを入力したポートのポート属性をグループＩＤ管理テーブルメモリ２０４７で参照する。その結果、対象のポート属性の値が「１」の場合、つまりその入力ポートにつながるデバイスがシステムにおける他のＰＣＩエクスプレス拡張スイッチである場合、入力されたＴＬＰフレームは、予約領域にグループＩＤが設定されたものである。この場合、ＰＣＩエクスプレスパケットスイッチフォワーディング機構２０は、その拡張アドレスルーティングＴＬＰフレームあるいは拡張ＩＤルーティングＴＬＰフレームであると認識し、自スイッチ内でのグループＩＤの設定処理（図１１：ステップＳ１０３）を省略する。他方、入力ポートのポート属性の値が「０」の場合、つまり入力ポートにつながるデバイスがルートコンプレックスあるいはエンドポイントである場合、ＰＣＩエクスプレスパケットスイッチフォワーディング機構２０は、入力されたＴＬＰフレームが、予約領域にグループＩＤが設定されていない従来と同様なアドレスルーティングＴＬＰフレームまたはＩＤルーティングＴＬＰフレームであると認識する。【００６５】
以上のような付加的な処理ａ）及びｂ）を実行することにより、ＰＣＩエクスプレス拡張スイッチ３０４に、従来と同様なデバイスを接続することができる。また、システムに複数のＰＣＩエクスプレス拡張スイッチ３０４を配置し、それらの間で拡張アドレスルーティングＴＬＰフレームおよび拡張ＩＤルーティングＴＬＰフレームを転送することができる。【００６６】
このように、ＰＣＩエクスプレスパケットスイッチフォワーディング機構２０は、グループＩＤ管理テーブルメモリ２０４７により、ポートに接続されているデバイスがルートコンプレックス、エンドポートおよびブリッジの何れであるかを認識する。これにより、ＰＣＩエクスプレスパケットスイッチフォワーディング機構２０は、ＴＬＰフレームの転送時に、そのフレームの入力および出力に用いるポートが、ルートコンプレックス側のデバイスがつながっている上流側のポートであるのか、あるいは、エンドポイント側のデバイスがつながっている下流側のポートであるのかを把握することができる。【００６７】
本実施の形態のＰＣＩエクスプレス拡張スイッチ３０４は、そのシステム設定情報の内容によって各種のスイッチング動作が可能である。以下では、１）ＣＰＵ１０１およびＣＰＵ１０８間の通信、２）ＣＰＵ１０１またはＣＰＵ１０８とエンドポイント１０５との間の通信の２つの通信を例に挙げて、より具体的な動作を説明する。【００６８】
１）ＣＰＵ１０１およびＣＰＵ１０８間の通信【００６９】
図１２に、ＣＰＵ１０１が管理するアドレス空間（「グループＩＤ「１」のアドレス空間」）と、ＣＰＵ１０８が管理するアドレス空間（「グループＩＤ「２」のアドレス空間」）の設定例を示す。ＣＰＵ１０１およびＣＰＵ１０８間で通信を行う場合、ＣＰＵ１０１は、自身が管理するアドレス空間の一部をＣＰＵ１０８へメモリマップする。また、ＣＰＵ１０８も自身が管理するアドレス空間の一部をＣＰＵ１０１へメモリマップする。ここで、メモリマップとは、メモリの領域をデバイスに割り当てることである。図１２に示す例の場合、グループＩＤ「１」（ＣＰＵ１０１）およびグループＩＤ「２」（ＣＰＵ１０８）間で他方へのマッピングに使用するアドレス空間として、互いに同じ「０ｘ００−００−１０−００」〜「０ｘ００−００−２０−００」が設定されている。このような設定は両ＣＵＰＵ間にアドレスの競合を招くが、その原因は、ＣＰＵ１０１およびＣＰＵ１０８が互いに独立して各自のアドレス空間の割り当てを行うことによる。【００７０】
上記のように、ＣＰＵ１０１およびＣＰＵ１０８間で他方へのメモリマップに使用するアドレス空間が競合する場合、一般の手法では、それらＣＰＵ間の正常な通信が困難である。何故なら、例えばＣＰＵ１０１が、ＣＰＵ１０８にメモリマップしたアドレス「０ｘ００−００−１０−００」にデータをライトすると、ＣＰＵ１０８のアドレス空間「０ｘ００−００−１０−００」にライトされるが、それをＣＰＵ１０８が読み取るためにアドレス「０ｘ００−００−１０−００」をリードすると、そのアドレス空間はＣＰＵ１０１にメモリマップされているため、ＣＰＵ１０８が管理するアドレス空間のアドレス「０ｘ００−００−１０−００」がリードされることになるためである。【００７１】
上述のようにＣＰＵ間で、他方にメモリマップするアドレス空間が競合する場合、アドレススワップオフセット情報を用いて競合を解除する。具体的には、図１３に示すような拡張アドレスルーティング用テーブルメモリを用意し、図示のエントリＥ１及びＥ２に示されるような設定を行う。エントリＥ１の設定は、グループＩＤ「１」のデバイスから「０ｘ００−００−１０−００」〜「０ｘ００−００−２０−００」の領域のＴＬＰフレームが到来した場合には、それをＣＰＵ１０８に対応するポート２から出力し、かつ、「０ｘ００−００−１０−００」だけアドレスをオフセットすべきことを意味する。また、テーブルエントリＥ２の設定は、グループＩＤ「２」のデバイスから「０ｘ００−００−１０−００」〜「０ｘ００−００−２０−００」の領域のＴＬＰフレームが到来した場合には、それをＣＰＵ１０１に対応するポート１から出力し、かつ、「０ｘ００−００−１０−００」だけアドレスをオフセットすべきことを意味する。【００７２】
なお、グループＩＤ管理テーブルメモリ２０４７には、図４に示すような前述の設定が行われる。【００７３】
以上のような設定が行われた状態において、例えば、ＣＰＵ１０１からＣＰＵ１０８へＴＬＰフレームが送信された際のＰＣＩエクスプレス拡張スイッチ３０４の動作は、次のようになる。【００７４】
ＣＰＵ１０１のルートコンプレックス１０２から、例えばアドレス「０ｘ００−００−１０−００」のＴＬＰフレームが送信されると、そのＴＬＰフレームがＰＣＩ−ＰＣＩブリッジ３０４１を介して、ＰＣＩエクスプレスパケットスイッチフォワーディング機構２０のポート１へ入力される。【００７５】
ＰＣＩエクスプレスパケットスイッチフォワーディング機構２０の入力ＴＬＰヘッダ書換器２０５は、上記のＴＬＰフレームを入力ＴＬＰフレーム２１としてポート１から受信する。そして、ポート１に対応するグループＩＤ「１」をグループＩＤ管理テーブルメモリ２０４７から取得し、入力ＴＬＰフレーム２１のヘッダにグループＩＤとして「１」を書き込む。テーブルサーチ器２０３は、転送先を決定するために、アドレス「０ｘ００−００−１０−００」とグループＩＤ「１」とをキーにして、図１３の拡張アドレスルーティング用テーブルメモリを検索する。検索の結果、エントリＥ１がヒットし、出力ポート情報「２」及びアドレススワップオフセット情報「０ｘ００−００−１０−００」が得られる。【００７６】
テーブルサーチ器２０３は、出力ＴＬＰヘッダ書換器２０５１を用いて、ＴＬＰフレームのヘッダからグループＩＤを削除すると共に、アドレススワップオフセット値「０ｘ００−００−１０−００」の加算処理を行う。テーブルサーチ器２０３は、アドレスが「０ｘ００−００−２０−００」に書き換えられた出力ＴＬＰフレーム２２を、ＣＰＵ１０８が接続されるポート２からフレーム転送器２０７を用いて出力する。【００７７】
ポート２から出力されたＴＬＰフレームは、ＰＣＩ−ＰＣＩブリッジ３０４２を経てＣＰＵ１０８のルートコンプレックス１０９により受信される。図１２に示されるように、グループＩＤ「１」のアドレス空間「０ｘ００−００−１０−００」〜「０ｘ００−００−２０−００」は、ＰＣＩエクスプレス拡張スイッチ３０４により「０ｘ００−００−１０−００」だけオフセット処理されることにより、グループＩＤ「２」のアドレス空間「０ｘ００−００−２０−００」〜「０ｘ００−００−３０−００」にマッピングされる。【００７８】
上記とは反対にＣＰＵ１０８からＣＰＵ１０１へＴＬＰフレームが送信された場合には、ＰＣＩエクスプレス拡張スイッチ３０４が以下のような動作を行う。【００７９】
ＣＰＵ１０８のルートコンプレックス１０９から、例えばアドレス「０ｘ００−００−１０−００」のＴＬＰフレームが送信されると、そのＴＬＰフレームがＰＣＩ−ＰＣＩブリッジ３０４２を介してＰＣＩエクスプレスパケットスイッチフォワーディング機構２０のポート２へ入力される。【００８０】
ＰＣＩエクスプレスパケットスイッチフォワーディング機構２０の入力ＴＬＰヘッダ書換器２０５は、上記のＴＬＰフレームを入力ＴＬＰフレーム２１としてポート２から受信する。そして、ポート２に対応するグループＩＤ「２」をグループＩＤ管理テーブルメモリ２０４７から取得し、入力ＴＬＰフレーム２１のヘッダにグループＩＤとして「２」を書き込む。テーブルサーチ器２０３は、転送先を決定するために、アドレス「０ｘ００−００−１０−００」とグループＩＤ「２」とをキーにして、図１３の拡張アドレスルーティング用テーブルメモリを検索する。検索の結果、エントリＥ２がヒットし、出力ポート情報「１」及びアドレススワップオフセット情報「０ｘ００−００−１０−００」が得られる。【００８１】
テーブルサーチ器２０３は、出力ＴＬＰヘッダ書換器２０５１を用いて、ＴＬＰフレームのヘッダからグループＩＤを削除すると共に、アドレススワップオフセット値「０ｘ００−００−１０−００」の加算処理を行う。テーブルサーチ器２０３は、アドレスが「０ｘ００−００−２０−００」に書き換えられた出力ＴＬＰフレーム２２を、ＣＰＵ１０１が接続されるポート１からフレーム転送器２０７を用いて出力する。【００８２】
ポート１から出力されたＴＬＰフレームは、ＰＣＩ−ＰＣＩブリッジ３０４１を経てＣＰＵ１０１のルートコンプレックス１０２により受信される。図１２に示されるように、グループＩＤ「２」のアドレス空間「０ｘ００−００−１０−００」〜「０ｘ００−００−２０−００」は、ＰＣＩエクスプレス拡張スイッチ３０４により「０ｘ００−００−１０−００」だけオフセット処理されることにより、グループＩＤ「１」のアドレス空間「０ｘ００−００−２０−００」〜「０ｘ００−００−３０−００」にマッピングされる。【００８３】
２）ＣＰＵ１０１またはＣＰＵ１０８とエンドポイント１０５との通信【００８４】
図１４に、本事例で用いるグループＩＤ管理テーブルメモリの設定内容を示す。エンドポイント１０５を複数のＣＰＵ１０１及び１０８で共用する場合、図１４に示すように、エンドポイント１０５に対応するポートに専用のグループＩＤを設定する。図示の例では、ＣＰＵ１０１が接続されるポート１にグループＩＤ「１」が設定され、ＣＰＵ１０８が接続されるポート２にグループＩＤ「２」が設定されている。そのため、エンドポイント１０５が接続されるポート３には、専用のグループＩＤとして「３」が設定されている。エンドポイント１０５に専用のグループＩＤ「３」を設定することで、エンドポイント１０５に、専用の仮想的なアドレス空間を設定することができる。【００８５】
図１５に、本事例のアドレス空間のマッピングを示す。図１５には、ＣＰＵ１０１が管理するアドレス空間（「グループＩＤ「１」のアドレス空間」）、及び、ＣＰＵ１０８が管理するアドレス空間（「グループＩＤ「２」のアドレス空間」）に加え、エンドポイント１０５に割り当てられた前述の仮想的なアドレス空間（「グループＩＤ「３」のアドレス空間」）が示されている。ＣＰＵ１０１とエンドポイント１０５との間で通信を行う場合、ＣＰＵ１０１は、自身が管理するグループＩＤ「１」のアドレス空間の一部（「０ｘ００−１０−００−００」〜「０ｘ００−２０−００−００」）をエンドポイント１０５へメモリマップする。また、反対に、エンドポイント１０５のグループＩＤ「３」のアドレス空間の一部（「０ｘ００−０８−００−００」〜「０ｘ００−０８−１０−００」）をＣＰＵ１０１へメモリマップする。同様に、ＣＰＵ１０８とエンドポイント１０５との間で通信を行う場合、ＣＰＵ１０８は、自身が管理するグループＩＤ「２」のアドレス空間の一部（「０ｘ００−４０−００−００」〜「０ｘ００−５０−００−００」）をエンドポイント１０５へメモリマップする。また、反対に、エンドポイント１０５のグループＩＤ「３」のアドレス空間の一部（「０ｘ００−０８−３０−００」〜「０ｘ００−０９−００−００」）をＣＰＵ１０８へメモリマップする。【００８６】
また、メモリマップの設定内容に応じて、ＰＣＩエクスプレス拡張スイッチ３０４の拡張アドレスルーティング用テーブルメモリを、図１６のエントリＥ１１〜Ｅ１４のように設定する。エントリＥ１１の設定は、グループＩＤ「１」の「０ｘ００−１０−００−００」〜「０ｘ００−２０−００−００」の領域のＴＬＰフレームが到来した場合に、そのフレームを、エンドポイント１０５に対応するポート３から出力すべきことを意味する。エントリＥ１２の設定は、グループＩＤ「２」の「０ｘ００−４０−００−００」〜「０ｘ００−５０−００−００」の領域のＴＬＰフレームが到来した場合に、そのフレームを、エンドポイント１０５に対応するポート３から出力すべきことを意味する。エントリＥ１３の設定は、グループＩＤ「３」の「０ｘ００−０８−００−００」〜「０ｘ００−０８−１０−００」の領域のＴＬＰフレームが到来した場合には、そのフレームを、ＣＰＵ１０１に対応するポート１から出力すべきことを意味する。エントリＥ１４の設定は、グループＩＤ「３」の「０ｘ００−０８−３０−００」〜「０ｘ００−０９−００−００」の領域のＴＬＰフレームが到来した場合には、そのフレームを、ＣＰＵ１０８に対応するポート２から出力すべきことを意味する。【００８７】
以上のような設定が行われた状態において、ＣＰＵ１０１からエンドポイント１０５へフレームが送信される場合のＰＣＩエクスプレス拡張スイッチ３０４の動作は次のようになる。【００８８】
ＣＰＵ１０１のルートコンプレックス１０２から、例えばアドレス「０ｘ００−１０−００−００」のＴＬＰフレームが送信されると、そのＴＬＰフレームがＰＣＩ−ＰＣＩブリッジ３０４１を経て、ＰＣＩエクスプレスパケットスイッチフォワーディング機構２０のポート１へ入力される。【００８９】
ＰＣＩエクスプレスパケットスイッチフォワーディング機構２０の入力ＴＬＰヘッダ書換器２０５は、上記のＴＬＰフレームを入力ＴＬＰフレーム２１としてポート１から受信する。そして、ポート１に対応するグループＩＤ「１」をグループＩＤ管理テーブルメモリ２０４７から取得し、入力ＴＬＰフレーム２１のヘッダにグループＩＤ「１」を書き込む。テーブルサーチ器２０３は、転送先を決定するために、アドレス「０ｘ００−１０−００−００」とグループＩＤ「１」とをキーにして、図１６の拡張アドレスルーティング用テーブルメモリを検索する。検索の結果、エントリＥ１１がヒットし、出力ポート情報「３」が得られる。【００９０】
テーブルサーチ器２０３は、出力ＴＬＰヘッダ書換器２０５１を用いて、上記のＴＬＰフレームのヘッダからグループＩＤを削除する。フレーム転送器２０７は、アドレス「０ｘ００−１０−００−００」のＴＬＰフレームを、エンドポイント１０５が接続されるポート３から出力ＴＬＰフレーム２２として出力する。出力されたＴＬＰフレームは、ＰＣＩ−ＰＣＩブリッジ３０４３を介してエンドポイント１０５に受信される。【００９１】
ＣＰＵ１０８からエンドポイント１０５へのフレームの送信動作は以下のように行われる。【００９２】
ＣＰＵ１０８のルートコンプレックス１０９から、例えば、アドレス「０ｘ００−４０−００−００」のＴＬＰフレームが送信されると、そのＴＬＰフレームがＰＣＩ−ＰＣＩブリッジ３０４２を経て、ＰＣＩエクスプレスパケットスイッチフォワーディング機構２０のポート２へ入力される。【００９３】
ＰＣＩエクスプレスパケットスイッチフォワーディング機構２０の入力ＴＬＰヘッダ書換器２０５は、上記のＴＬＰフレームを入力ＴＬＰフレーム２１としてポート２から受信する。そして、ポート２に対応するグループＩＤ「２」をグループＩＤ管理テーブルメモリ２０４７から取得し、入力ＴＬＰフレーム２１のヘッダにグループＩＤ「２」を書き込む。テーブルサーチ器２０３は、転送先を決定するために、アドレス「０ｘ００−４０−００−００」とグループＩＤ「２」とをキーにして、図１６の拡張アドレスルーティング用テーブルメモリを検索する。検索の結果、エントリＥ１２がヒットし、出力ポート情報「３」が得られる。【００９４】
テーブルサーチ器２０３は、出力ＴＬＰヘッダ書換器２０５１を用いて、ＴＬＰフレームのヘッダからグループＩＤを削除する。フレーム転送器２０７は、アドレス「０ｘ００−４０−００−００」のＴＬＰフレームを、エンドポイント１０５が接続されるポート３から出力ＴＬＰフレーム２２として出力する。出力されたＴＬＰフレームは、ＰＣＩ−ＰＣＩブリッジ３０４３を介してエンドポイント１０５に受信される。【００９５】
上記とは反対に、エンドポイント１０５からＣＰＵ１０１へフレームが送信された場合、ＰＣＩエクスプレス拡張スイッチ３０４が以下のように動作する。【００９６】
エンドポイント１０５から、例えば、アドレス「０ｘ００−０８−００−００」のＴＬＰフレームが送信されると、そのフレームがＰＣＩ−ＰＣＩブリッジ３０４３を経てＰＣＩエクスプレスパケットスイッチフォワーディング機構２０のポート３へ入力される。【００９７】
ＰＣＩエクスプレスパケットスイッチフォワーディング機構２０の入力ＴＬＰヘッダ書換器２０５は、上記のＴＬＰフレームを入力ＴＬＰフレーム２１としてポート３から受信する。そして、ポート３に対応するグループＩＤ「３」をグループＩＤ管理テーブルメモリ２０４７から取得し、入力ＴＬＰフレーム２１のヘッダにグループＩＤ「３」を書き込む。テーブルサーチ器２０３は、転送先を決定するために、アドレス「０ｘ００−０８−００−００」とグループＩＤ「３」とをキーにして、図１６の拡張アドレスルーティング用テーブルメモリを検索する。検索の結果、エントリＥ１３がヒットし、出力ポート情報「１」が得られる。【００９８】
テーブルサーチ器２０３は、出力ＴＬＰヘッダ書換器２０５１を用いて、ＴＬＰフレームのヘッダからグループＩＤを削除する。フレーム転送器２０７は、アドレス「０ｘ００−０８−００−００」のＴＬＰフレームを、ＣＰＵ１０１が接続されるポート１から出力ＴＬＰフレーム２２として出力する。出力されたＴＬＰフレームは、ＰＣＩ−ＰＣＩブリッジ３０４１を介してルートコンプレックス１０２で受信される。【００９９】
エンドポイント１０５からＣＰＵ１０８へのＴＬＰフレームの送信は以下のように行われる。【０１００】
エンドポイント１０５から、例えば、アドレス「０ｘ００−０８−３０−００」のＴＬＰフレームが送信されると、そのＴＬＰフレームがＰＣＩ−ＰＣＩブリッジ３０４３を経て、ＰＣＩエクスプレスパケットスイッチフォワーディング機構２０のポート３へ入力される。【０１０１】
ＰＣＩエクスプレスパケットスイッチフォワーディング機構２０の入力ＴＬＰヘッダ書換器２０５は、上記のＴＬＰフレームを入力ＴＬＰフレーム２１としてポート３から受信する。そして、ポート３に対応するグループＩＤ「３」をグループＩＤ管理テーブルメモリ２０４７から取得し、入力ＴＬＰフレーム２１のヘッダにグループＩＤ「３」を書き込む。テーブルサーチ器２０３は、転送先を決定するために、アドレス「０ｘ００−０８−３０−００」とグループＩＤ「３」とをキーにして、図１６の拡張アドレスルーティング用テーブルメモリを検索する。検索の結果、エントリＥ１４がヒットし、出力ポート情報「２」が得られる。【０１０２】
テーブルサーチ器２０３は、出力ＴＬＰヘッダ書換器２０５１を用いて、ＴＬＰフレームのヘッダからグループＩＤを削除する。フレーム転送器２０７は、アドレス「０ｘ００−０８−３０−００」のＴＬＰフレームを、ＣＰＵ１０８が接続されるポート２から出力ＴＬＰフレーム２２として出力する。出力されたＴＬＰフレームは、ＰＣＩ−ＰＣＩブリッジ３０４２を介してルートコンプレックス１０９で受信される。【０１０３】
本実施の形態の効果を説明する。【０１０４】
ＰＣＩエクスプレスパケットスイッチフォワーディング機構２０により、任意のＰＣＩ−ＰＣＩブリッジ間でＴＬＰフレームの転送が可能となる。これにより、ルートコンプレックス１０２とルートコンプレックス１０９との間のＴＬＰフレーム転送、および、複数のルートコンプレックス１０２及び１０９からの同一エンドポイントへのＴＬＰフレームの転送が可能である。また、ＰＣＩエクスプレスパケットスイッチフォワーディング機構２０は、入力されたＴＬＰフレームのヘッダにグループＩＤを設定するというヘッダ書換え処理を行った後、そのＴＬＰフレームに対応するフォワーディングテーブルを使用する。これにより、複数のＣＰＵ（１０１，１０８）で独自に管理されるアドレス空間に生じ得るアドレス競合を避けることができる。したがって、本実施形態によれば、データ転送時の遅延の増大、及び、ＬＳＩ回路規模の増大を招くフレームカプセル化を行うことなく、ルートコンプレックス側につながる複数のＣＰＵ間の通信が可能になる。また、異なるルートコンプレックスにつながる複数のＣＰＵから同一のエンドポイントに対して通信することが可能になる。【０１０５】
さらにまた、ＰＣＩエクスプレスパケットスイッチフォワーディング機構２０は、ＴＬＰフレームがＩＤルーティングフレームであり、且つ、マルチキャスト通信が設定されたものである場合に、マルチキャストテーブルメモリを参照して転送先情報を選択する。これにより、特定のデバイスに対してのマルチキャスト転送を行うことが可能となる。よって、本実施の形態のＰＣＩエクスプレス拡張スイッチ３０４を使用すれば、１種類のスイッチだけで、特定のデバイスに対してのマルチキャスト転送を行うネットワークシステムを構築することができる。この点を図１７を参照して説明する。【０１０６】
図１７に、図２６に示すシステムと同等の機能を、本実施の形態に係るＰＣＩエクスプレス拡張スイッチ３０４を用いて実現したシステムの構成を示す。ＰＣＩエクスプレス拡張スイッチ３０４は、前述したように、拡張ＩＤルーティングＴＬＰフレーム９０２１（図６）を使ったマルチキャスト転送を行うことができる。図１７に示すシステムでは、ＣＰＵ１０１およびメモリ１０３が接続されたルートコンプレックス１０２と、複数の拡張ネットワーク用フォワーディングエンジン１１２〜１１４とが、ＰＣＩエクスプレス拡張スイッチ３０４により相互に接続される。【０１０７】
図１７のシステムにおいて、マルチキャスト転送を行う際、拡張ネットワーク用フォワーディングエンジン１１２〜１１４は、拡張ＩＤルーティングＴＬＰフレーム９０２１（図６）のマルチキャスト指示情報９０３を「１」に設定する。また、マルチキャスト転送で使用するグループ番号をバス番号、デバイス番号、ファンクション番号に設定したフレームを、ＰＣＩエクスプレス拡張スイッチ３０４に送信する。ＰＣＩエクスプレス拡張スイッチ３０４は、上記フレームを受信すると、テーブルサーチ器２０３により、バス番号、デバイス番号、ファンクション番号からなる１５ビットの情報を参照メモリアドレスとして、マルチキャストテーブルメモリ２０４６（図１０）を検索する。そして、この検索により得た出力ポートを用いて、マルチキャスト転送を実行する。図１０より、例えば、参照するメモリアドレスが「０ｘ７ＦＦＦ」の場合、複数出力ポート情報は、「００００−００００−０００１−１１００」である。この場合、ポート３、ポート４及びポート５が、マルチキャスト転送に用いる出力ポートとなる。【０１０８】
また、図１７のシステムにおいてユニキャスト転送を行う場合は、図２１に示すアドレスルーティングフレーム、または、図２２に示すＩＤルーティングフレームが使用される。このとき、ＰＣＩエクスプレス拡張スイッチ３０４は、拡張アドレスルーティング用テーブルメモリ２０４４または拡張ＩＤルーティング用テーブルメモリ２０４５を参照することにより、ユニキャスト用の転送ポートを決定する。【０１０９】
また、マルチキャスト転送機能を有する本実施の形態のＰＣＩエクスプレス拡張スイッチ３０４は、エンドポイントのデバイスの多重化により高信頼化が図られたコンピュータシステムにも適用できる。その適用例を図１８に示す。【０１１０】
図１８に示すコンピュータシステムにおいて、ＣＰＵ１０１およびメモリ１０３が接続されたルートコンプレックス１０２は、現用のエンドポイント１０５とその予備のエンドポイント１０５´とにＰＣＩエクスプレス拡張スイッチ３０４を介して接続されている。ＰＣＩエクスプレス拡張スイッチ３０４は、正常時は、マルチキャスト転送機能により、ルートコンプレックス１０２からの送信フレームをエンドポイント１０５と予備のエンドポイント１０５´が接続されているポートとに対しマルチキャスト転送を行う。また、ＰＣＩエクスプレス拡張スイッチ３０４は、エンドポイント１０５からの受信フレームのみルートコンプレックス１０２へ送信する。これにより、エンドポイント１０５及び予備のエンドポイント１０５´は正常時は同じ状態を保つことができる。【０１１１】
エンドポイント１０５が故障した場合、ＰＣＩエクスプレス拡張スイッチ３０４は、予備のエンドポイント１０５´からの受信フレームをルートコンプレックス１０２へ送信する。これにより、エンドポイント１０５のデバイスが故障しても、その動作を予備のエンドポイント１０５´のデバイスが引き継ぐことができ、システムの高信頼化を図ることができる。【０１１２】
以上本発明の実施の形態について説明したが、本発明は以上の例に限定されず、その他各種の付加変更が可能である。上記実施形態では、有線で接続されたコンピュータシステムおよびネットワークシステムを前提として説明したが、有線または無線にかかわらず、ＰＣＩエクスプレス準拠のシステム環境全てに適用可能である。
【図１】
2008018485.tif 000003
【図２】
2008018485.tif 000004
【図３】
2008018485.tif 000005
【図４】
2008018485.tif 000006
【図５】
2008018485.tif 000007
【図６】
2008018485.tif 000008
【図７】
2008018485.tif 000009
【図８】
2008018485.tif 000010
【図９】
2008018485.tif 000011
【図１０】
2008018485.tif 000012
【図１１】
2008018485.tif 000013
【図１２】
2008018485.tif 000014
【図１３】
2008018485.tif 000015
【図１４】
2008018485.tif 000016
【図１５】
2008018485.tif 000017
【図１６】
2008018485.tif 000018
【図１７】
2008018485.tif 000019
【図１８】
2008018485.tif 000020
【図１９】
2008018485.tif 000021
【図２０】
2008018485.tif 000022
【図２１】
2008018485.tif 000023
【図２２】
2008018485.tif 000024
【図２３】
2008018485.tif 000025
【図２４】
2008018485.tif 000026
【図２５】
2008018485.tif 000027
【図２６】
2008018485.tif 000028
【国際調査報告】
2008018485.tif 000029
2008018485.tif 000030
2008018485.tif 000031
2008018485.tif 000032