(57)【要約】【課題】耐障害性を考慮した複数のCPU間で複数のI/O機器の共有設定が容易に行えない。【解決手段】CPU101-1,101-2と、これらCPUと接続される複数のルートコンプレックス102-1,102-2と、これらルートコンプレックスと接続される上流PCIエクスプレス-ブリッジ104-1,104-2と、これら上流PCIエクスプレス-ブリッジとネットワーク105を介して接続される下流PCIエクスプレス-ブリッジ107-1〜107-3と、これら下流PCIエクスプレス-ブリッジと接続されるI/O機器108-1〜108-3とを備え、CPU101-1、CPU101-2間でのI/O機器108-1〜108-3の共有設定をネットワークの識別子（例えばイーサネットのVLAN ID）を用いて行い、識別子を各CPU間で重複の無いよう設定し、必要なI/O機器を設定した識別子に設定する。また、各CPUが必要とする複数の同じI/O機器ごとに識別子を設定する。【選択図】図１
2008078887.tif 000002
【特許請求の範囲】
【請求項１】
複数CPUと複数のI/O機器との間が、少なくとも、前記複数のCPUに対応して設けられた複数の上流PCIエクスプレス-ブリッジと、前記複数の上流PCIエクスプレス-ブリッジとネットワークを介して接続され、前記複数のI/O機器に対応して設けられた複数の下流PCIエクスプレス-ブリッジと、を介して接続され、
前記複数の上流PCIエクスプレス-ブリッジと前記複数の下流PCIエクスプレス-ブリッジは、上流及び下流PCIエクスプレス-ブリッジで同じ識別子を設定する識別子設定部と、設定した該識別子でフィルタリングするフィルタリング部とをそれぞれ有し、
前記複数の上流PCIエクスプレス-ブリッジと下流PCIエクスプレス-ブリッジとは前記識別子を付加したフレームで通信することを特徴とするI/O機器共有システム。
【請求項２】
前記識別子設定部は、前記識別子を、前記複数の上流PCIエクスプレス-ブリッジに個別に割振られた値から生成し、前記複数の上流PCIエクスプレス-ブリッジ間で前記識別子の重なりを検知し、重なっていた場合に、前記複数の上流PCIエクスプレス-ブリッジに前記個別に割振られた値から生成される数値だけ、前記個別に割振られた値から離れた空きの前記識別子を再割当てし、前記識別子の重なりを再度検知し、重なりが無くなるまで識別子の割当てを行うことを特徴とする請求項１に記載のI/O機器共有システム。
【請求項３】
前記上流PCIエクスプレス-ブリッジは、前記複数の下流PCIエクスプレス-ブリッジから配信される第１のI/O機器情報と、該上流PCIエクスプレス-ブリッジに設定された第２のI/O機器情報と、を照合するとともに、前記第１のI/O機器情報により特定されるI/O機器が前記第２のI/O機器情報により特定されるI/O機器に含まれる場合に、前記上流PCIエクスプレス-ブリッジの識別子を含むフレームを、前記第１のI/O機器情報により特定されるI/O機器と接続される下流PCIエクスプレス-ブリッジに送ることを特徴とする請求項１又は２に記載のI/O機器共有システム。
【請求項４】
前記識別子設定部は、前記複数の上流PCIエクスプレス-ブリッジに設定されたI/O機器情報の数値分の前記識別子を設定し、同じI/O機器が接続される前記複数の下流PCIエクスプレス-ブリッジに同じ識別子を設定することを特徴とする請求項１から３のいずれか１項に記載のI/O機器共有システム。
【請求項５】
前記上流PCIエクスプレス-ブリッジは、冗長設定したI/O機器間の同期制御を行う応答確認部、同期修正部、修正用バッファを有することを特徴とする請求項４に記載のI/O機器共有システム。
【請求項６】
I/O機器情報のデータベースを有する装置を有し、
該装置は、前記複数の下流PCIエクスプレス-ブリッジから配信され、前記データベースに記録される第１のI/O機器情報と、前記複数の上流PCIエクスプレス-ブリッジから配信され、前記データベースに記録される第２のI/O機器情報と、を照合し、前記第１のI/O機器情報により特定されるI/O機器が前記第２のI/O機器情報により特定されるI/O機器に含まれる場合に、前記上流PCIエクスプレス-ブリッジの識別子を含むフレームを、前記第１のI/O機器情報により特定されるI/O機器と接続される下流PCIエクスプレス-ブリッジに送ることを特徴とする請求項１又は２に記載のI/O機器共有システム。
【請求項７】
VLAN IDの設定機能を有する装置を有し、
該装置は、上流PCIエクスプレス-ブリッジから配信される識別子設定要求に基づいて、保持されている識別子情報から使用されていない識別子を選択し、選択した識別子を前記上流PCIエクスプレス-ブリッジに配信することを特徴とする請求項１から４のいずれか１項に記載のI/O機器共有システム。
【請求項８】
I/O機器情報のデータベースを有する第１の装置とVLAN IDの設定機能を有する第２の装置とを備え、
該第１の装置は、前記複数の下流PCIエクスプレス-ブリッジから配信され、前記データベースに記録される第１のI/O機器情報と、前記複数の上流PCIエクスプレス-ブリッジから配信され、前記データベースに記録される第２のI/O機器情報と、を照合し、前記第１のI/O機器情報により特定されるI/O機器が前記第２のI/O機器情報により特定されるI/O機器に含まれる場合に、前記上流PCIエクスプレス-ブリッジの識別子を含むフレームを、前記第１のI/O機器情報により特定されるI/O機器と接続される下流PCIエクスプレス-ブリッジに送り、
該第２の装置は、上流PCIエクスプレス-ブリッジから配信される識別子設定要求に基づいて、保持されている識別子情報から使用されていない識別子を選択し、選択した識別子を前記上流PCIエクスプレス-ブリッジに配信することを特徴とする請求項１又は２に記載のI/O機器共有システム。
【請求項９】
前記識別子が複数のPCIエクスプレス-ブリッジ 間で競合した場合、あるいはI/O機器に複数のCPUから所属要求があった場合に、競合制御を行う装置を有する請求項１から８のいずれか１項に記載のI/O機器共有システム。
【請求項１０】
電源を切断してもデータあるいは接続情報が保持されるI/O機器が接続された際に使用者ごとの領域を管理制御する機能を有する装置を有することを特徴とする請求項１から９のいずれか１項に記載のI/O機器共有システム。
【請求項１１】
前記ネットワークがイーサネット、前記識別子がVLAN IDであることを特徴とする請求項１から１０のいずれか１項に記載のI/O機器共有システム。
【請求項１２】
前記複数のCPU と前記複数の上流PCIエクスプレス−ブリッジとの間に複数のルートコンプレックスが設けられていることを特徴とする請求項１から１１のいずれか１項に記載のI/O機器共有システム。
【請求項１３】
複数の上流情報処理装置と複数の下流情報処理装置との間が、少なくとも、前記複数の上流情報処理装置に対応して設けられた複数の上流ブリッジと、前記複数の上流ブリッジとネットワークを介して接続され、前記複数の下流情報処理装置に対応して設けられた複数の下流ブリッジと、を介して接続され、
前記複数の上流ブリッジと前記複数の下流ブリッジは、上流及び下流ブリッジで同じ識別子を設定する識別子設定部と、設定した該識別子でフィルタリングするフィルタリング部とをそれぞれ有し、
前記複数の上流ブリッジと下流ブリッジとは前記識別子を付加したフレームで通信することを特徴とする情報処理装置共有システム。
【請求項１４】
複数CPUと複数のI/O機器との間が、少なくとも、前記複数のCPUに対応して設けられた複数の上流PCIエクスプレス-ブリッジと、前記複数の上流PCIエクスプレス-ブリッジとネットワークを介して接続され、前記複数のI/O機器に対応して設けられた複数の下流PCIエクスプレス-ブリッジと、を介して接続されるI/O機器共有システムで、前記複数のCPU間で前記複数のI/O機器を共有する方法であって、
前記複数の上流PCIエクスプレス-ブリッジと前記複数の下流PCIエクスプレス-ブリッジとに同じ識別子を設定し、前記識別子を付加したフレームで通信し、前記複数の上流PCIエクスプレス-ブリッジと下流PCIエクスプレス-ブリッジとは設定した該識別子でフィルタリングすることを特徴とするI/O機器共有方法。
【請求項１５】
前記識別子は、前記複数の上流PCIエクスプレス-ブリッジに個別に割振られた値から生成され、
前記複数の上流PCIエクスプレス-ブリッジ間で前記識別子の重なりを検知し、重なっていた場合に、前記複数の上流PCIエクスプレス-ブリッジに前記個別に割振られた値から生成される数値だけ、前記個別に割振られた値から離れた空きの前記識別子を再割り当てし、前記識別子の重なりを再度検知し、重なりが無くなるまで識別子の割当てを行うことを特徴とする請求項１４に記載のI/O機器共有方法。
【請求項１６】
前記上流PCIエクスプレス-ブリッジにおいて、前記複数の下流PCIエクスプレス-ブリッジから配信される第１のI/O機器情報と、前記上流PCIエクスプレス-ブリッジに設定された第２のI/O機器情報を照合し、
前記上流PCIエクスプレス-ブリッジは、前記第１のI/O機器情報により特定されるI/O機器が前記第２のI/O機器情報により特定されるI/O機器に含まれる場合に、前記上流PCIエクスプレス-ブリッジの識別子を含むフレームを、前記第１のI/O機器情報により特定されるI/O機器と接続される下流PCIエクスプレス-ブリッジに送ることを特徴とする請求項１４又は１５に記載のI/O機器共有方法。
【請求項１７】
前記複数の上流PCIエクスプレス-ブリッジに設定されたI/O機器情報の数値分の前記識別子を設定し、同じI/O機器が接続される前記複数の下流PCIエクスプレス-ブリッジに同じ識別子を設定することを特徴とする請求項１４から１６のいずれか１項に記載のI/O機器共有方法。
【請求項１８】
前記上流PCIエクスプレス-ブリッジにおいて、冗長設定したI/O機器間の同期制御を行うことを特徴とする請求項１７に記載のI/O機器共有方法。
【請求項１９】
前記I/O機器共有システムはI/O機器情報のデータベースを有する装置を備え、装置は、前記複数の下流PCIエクスプレス-ブリッジから配信され、前記データベースに記録される第１のI/O機器情報と、前記複数の上流PCIエクスプレス-ブリッジから配信され、前記データベースに記録される第２のI/O機器情報と、を照合し、前記第１のI/O機器情報により特定されるI/O機器が前記第２のI/O機器情報により特定されるI/O機器に含まれる場合に、前記上流PCIエクスプレス-ブリッジの識別子を含むフレームを、前記第１のI/O機器情報により特定されるI/O機器と接続される下流PCIエクスプレス-ブリッジに送ることを特徴とする請求項１４又は１５に記載のI/O機器共有方法。
【請求項２０】
前記I/O機器共有システムはVLAN IDの設定機能を有する装置を備え、該装置は、上流PCIエクスプレス-ブリッジから配信される識別子設定要求に基づいて、保持されている識別子情報から使用されていない識別子を選択し、選択した識別子を前記上流PCIエクスプレス-ブリッジに配信することを特徴とする請求項１４から１７のいずれか１項に記載のI/O機器共有方法。
【請求項２１】
前記I/O機器共有システムはI/O機器情報のデータベースを有する第１の装置とVLAN IDの設定機能を有する第２の装置とを備え、
該第１の装置は、前記複数の下流PCIエクスプレス-ブリッジから配信され、前記データベースに記録される第１のI/O機器情報と、前記複数の上流PCIエクスプレス-ブリッジから配信され、前記データベースに記録される第２のI/O機器情報と、を照合し、前記第１のI/O機器情報により特定されるI/O機器が前記第２のI/O機器情報により特定されるI/O機器に含まれる場合に、前記上流PCIエクスプレス-ブリッジの識別子を含むフレームを、前記第１のI/O機器情報により特定されるI/O機器と接続される下流PCIエクスプレス-ブリッジに送り、
該第２の装置は、上流PCIエクスプレス-ブリッジから配信される識別子設定要求に基づいて、保持されている識別子情報から使用されていない識別子を選択し、選択した識別子を前記上流PCIエクスプレス-ブリッジに配信することを特徴とする請求項１４又は１５に記載のI/O機器共有方法。
【請求項２２】
前記識別子が複数のPCIエクスプレス-ブリッジ 間で競合した場合、あるいはI/O機器に複数のCPUから所属要求があった場合に、競合制御を行う装置を有する請求項１から８のいずれか１項に記載のI/O機器共有方法。
【請求項２３】
前記I/O機器共有システムは、電源を切断してもデータあるいは接続情報が保持されるI/O機器が接続された際に使用者ごとの領域を管理制御する機能を有する装置を有することを特徴とする請求項１４から２２のいずれか１項に記載のI/O機器共有方法。
【請求項２４】
前記ネットワークがイーサネット、前記識別子がVLAN IDであることを特徴とする請求項１４から２３のいずれか１項に記載のI/O機器共有方法。
【請求項２５】
前記複数のCPU と前記複数の上流PCIエクスプレス−ブリッジとの間に複数のルートコンプレックスが設けられていることを特徴とする請求項１４から２４のいずれか１項に記載のI/O機器共有方法。
【請求項２６】
複数の上流情報処理装置と複数の下流情報処理装置との間が、少なくとも、前記複数の上流情報処理装置に対応して設けられた複数の上流ブリッジと、前記複数の上流ブリッジとネットワークを介して接続され、前記複数の下流情報処理装置に対応して設けられた複数の下流ブリッジと、を介して接続される情報処理装置共有システムで、前記複数の上流情報処理装置間で前記複数の下流情報処理装置を共有する方法であって、
前記複数の上流ブリッジと前記複数の下流ブリッジとに同じ識別子を設定し、前記識別子を付加したフレームで通信し、前記複数の上流ブリッジと下流ブリッジとは設定した該識別子でフィルタリングすることを特徴とする下流情報処理装置共有方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数CPU間でのI/O機器の共有設定を行う装置及び方法に関し、特にネットワークを介して複数CPUと複数 I/O機器が接続されるI/O機器共有設定を行う装置および方法に関する。
【背景技術】
【０００２】
現在、コンピュータ内部の各パーツ間を接続する標準バス規格としてペリフェラルコンポーネントインターコネクト（PCI）が広く使用されている。このPCIの次世代規格としてPCIエクスプレスが規格化されている。PCIエクスプレスはこれまでのパラレルバスをシリアル化し、通信をスイッチングを伴うパケット方式で行うことにより通信容量を増加させている。
【０００３】
しかし、PCIエクスプレスでは図３４に示されるように、一つのCPU101に対し複数のI/O機器108-1〜108-3を接続するツリー状の構成しか許されていない。図３４において、CPU101はルートコンプレックス102と接続され、ルートコンプレックス102はPCIエクスプレススイッチ1601を介してI/O機器108-1〜108-3と接続される。PCIエクスプレススイッチ1601は上流PCI-PCIブリッジ1602、上流PCI-PCIブリッジ1604-1〜1604-3を含み、上流PCI-PCIブリッジ1602と上流PCI-PCIブリッジ1604-1〜1604-3とはPCIエクスプレススイッチ内部バス1603で接続される。ルートコンプレックス102はメモリ103に接続される。
【０００４】
一方、従来、複数のCPU間で複数のI/O機器を共有する場合には、ネットワークに複数のCPUと複数のI/O装置を分散して接続する、非特許文献１に示されるアドバンストスイッチングインターコネクト(ASI)が標準化されている。
【０００５】
図３５を参照すると、CPU101-1，101-2はそれぞれルートコンプレックス102-1，102-2と接続され、ルートコンプレックス102-1，102-2はASIネットワーク1701を介してI/O機器108-1〜108-3と接続される。ルートコンプレックス102-1，102-2はそれぞれメモリ103-1，103-2に接続される。
【０００６】
ASIネットワーク1701は、ルートコンプレックス側PCIエクスプレス-ASIブリッジ1702-1，1702-2、ASIスイッチ1703、ファブリックマネージャー1704、I/O機器側PCIエクスプレスASIブリッジ1705-1〜1705-3を含んでいる。
【０００７】
ルートコンプレックス側PCIエクスプレス-ASIブリッジ1702-1，1702-2は、ルートコンプレックス102-1、102-2に接続され、TLP（Transaction Layer Packet）をASIパケットにカプセル化して送受信する機能を有する。ASIスイッチ1703は、PCIエクスプレスのパケット（TLP）をカプセル化したASIパケットのあて先が接続するポートへ、ASIパケットを転送するように切り換えを行う。I/O機器側PCIエクスプレスASIブリッジ1705-1〜1705-3は、I/O機器108-1〜108-3に接続され、TLPをASIパケットにカプセル化して送受信する機能を有する。ファブリックマネージャー1704は、ルートコンプレックス側PCIエクスプレス-ASIブリッジ1702-1、1702-2及びI/O機器側PCIエクスプレス-ASIブリッジ1705-1〜1705-3において、ブリッジ間の接続を管理する。
【０００８】
ASIネットワーク1701中のルーティングの方法を図３６に示す。図３６において、図３５と同一構成部材については同一符号を付する。ASIではソースルーティング方式でルーティングされる。この手法は、送付元からの相対位置情報を用いて送付先までパケットの伝達を行う。またASIでのI/O機器108-1〜108-3の管理方法は、ファブリックマネージャー1704にはすべてのルートコンプレックス102-1、102-2とASIスイッチ1703-1〜1703-3とI/O機器108-1〜108-3とのルーティング情報を保持し、ファブリックマネージャー1704が複数のASIアドレス空間を管理し、ASIアドレス空間ごとにソースルーティングの経路を管理者がファブリックマネージャー1704を操作し設定をすることにより、複数のI/O機器108-1〜108-3を制御できる。
【０００９】
本発明に関連する技術として、特許文献１の図１に、１又は２以上のプロセッサ、第１のブリッジ、第２のブリッジ、複数の周辺デバイスが、それぞれの間でバス（第１のブリッジと第２のブリッジとを接続するバス、第２のブリッジと複数の周辺デバイスとを接続するバスはＰＣＩバス）で接続される構成が開示されている。また特許文献２には各端末にそれぞれ各１つのVLAN IDを割り当て、テーブルで管理し、端末間の接続を制御する構成が開示されている。
【特許文献１】特開平１０−４９４８２号公報
【特許文献２】特開平１０−１７８４４２号公報
【非特許文献１】ASI Core Architecture Specification Rev. 1.1, ASI-SIG, 2004年11月
【非特許文献２】Protocol Interface #8 (PI-8) R1.0, ASI-SIG, 2004年2月
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかし、複数のCPU間でASIを用いた場合、２つの課題がある。
【００１１】
第１の課題は、複数のI/O機器のグループ管理が複雑であり拡張性が制限されるということである。その理由は、ASIでは、複数のI/O機器のグループ管理を行う際にファブリックマネージャーはすべてのルーティング情報を保持することが求められ、さらにI/O機器108-1〜108-3のASIアドレス空間ごとにルーティングのパス設定を行わなければならないためである。
【００１２】
第２の課題は、同じI/O機器のN重冗長化を容易に行えない点である。その理由は第１の課題の理由に加え、複数の同じI/O機器からの応答が異なった場合に同期がはずれ、I/O機器の動作ができなくなるからである。
【００１３】
本発明の目的は、複数のCPUと複数のI/O機器の共有設定を容易に行え、冗長性を高めたシステム及び方法を提供することにある。
【課題を解決するための手段】
【００１４】
本発明のI/O機器共有システムは、複数CPUと複数のI/O機器との間が、少なくとも、前記複数のCPUに対応して設けられた複数の上流PCIエクスプレス-ブリッジと、前記複数の上流PCIエクスプレス-ブリッジとネットワークを介して接続され、前記複数のI/O機器に対応して設けられた複数の下流PCIエクスプレス-ブリッジと、を介して接続され、
前記複数の上流PCIエクスプレス-ブリッジと前記複数の下流PCIエクスプレス-ブリッジは、上流及び下流PCIエクスプレス-ブリッジで同じ識別子を設定する識別子設定部と、設定した該識別子でフィルタリングするフィルタリング部とをそれぞれ有し、
前記複数の上流PCIエクスプレス-ブリッジと下流PCIエクスプレス-ブリッジとは前記識別子を付加したフレームで通信することを特徴とする。
【００１５】
本発明のI/O機器共有方法は、複数CPUと複数のI/O機器との間が、少なくとも、前記複数のCPUに対応して設けられた複数の上流PCIエクスプレス-ブリッジと、前記複数の上流PCIエクスプレス-ブリッジとネットワークを介して接続され、前記複数のI/O機器に対応して設けられた複数の下流PCIエクスプレス-ブリッジと、を介して接続されるI/O機器共有システムで、前記複数のCPU間で前記複数のI/O機器を共有する方法であって、
前記複数の上流PCIエクスプレス-ブリッジと前記複数の下流PCIエクスプレス-ブリッジとに同じ識別子を設定し、前記識別子を付加したフレームで通信し、前記複数の上流PCIエクスプレス-ブリッジと下流PCIエクスプレス-ブリッジとは設定した該識別子でフィルタリングすることを特徴とする。
【００１６】
本発明の情報処理装置共有システムは、複数の上流情報処理装置と複数の下流情報処理装置との間が、少なくとも、前記複数の上流情報処理装置に対応して設けられた複数の上流ブリッジと、前記複数の上流ブリッジとネットワークを介して接続され、前記複数の下流情報処理装置に対応して設けられた複数の下流ブリッジと、を介して接続され、
前記複数の上流ブリッジと前記複数の下流ブリッジは、上流及び下流ブリッジで同じ識別子を設定する識別子設定部と、設定した該識別子でフィルタリングするフィルタリング部とをそれぞれ有し、
前記複数の上流ブリッジと下流ブリッジとは前記識別子を付加したフレームで通信することを特徴とする。
【００１７】
本発明の下流情報処理装置共有方法は、複数の上流情報処理装置と複数の下流情報処理装置との間が、少なくとも、前記複数の上流情報処理装置に対応して設けられた複数の上流ブリッジと、前記複数の上流ブリッジとネットワークを介して接続され、前記複数の下流情報処理装置に対応して設けられた複数の下流ブリッジと、を介して接続される情報処理装置共有システムで、前記複数の上流情報処理装置間で前記複数の下流情報処理装置を共有する方法であって、
前記複数の上流ブリッジと前記複数の下流ブリッジとに同じ識別子を設定し、前記識別子を付加したフレームで通信し、前記複数の上流ブリッジと下流ブリッジとは設定した該識別子でフィルタリングすることを特徴とする。
【発明の効果】
【００１８】
複数の上流情報処理装置（例えばCPU）間での複数の下流情報処理装置（例えばI/O機器）の共有の設定をネットワーク設定を行わずに識別子を設定するのみで共有でき、管理が簡単に行えるためネットワークの拡張性が増す。
【発明を実施するための最良の形態】
【００１９】
次に、本発明を実施するための最良の形態について図面を参照して詳細に説明する。なお、本実施形態ではコンピュータ内部の各パーツ間を接続する標準バス規格の例としてPCIエクスプレスを取り上げているが、本発明はかかる規格に限定されるものではない、つまり、本発明は複数の上流情報処理装置（例えば、CPUやI/O機器）と複数の下流情報処理装置との間が、少なくとも、複数の上流情報処理装置に対応して設けられた複数の上流ブリッジと、複数の上流ブリッジとネットワークを介して接続され、複数の下流情報処理装置に対応して設けられた複数の下流ブリッジと、を介して接続される情報処理装置共有システムや方法に適用可能である。また複数のCPUと複数のI/O機器との接続に限らず、複数のI/O機器と複数のI/O機器との接続等、広く複数の上流情報処理装置と複数の下流情報処理装置との接続における、共有設定を行う装置や方法に適用可能である。
［1］ 第１の実施の形態
1-1)   第１の実施の形態の構成の説明
図１は本実施形態のI/O機器共有システムの構成を示すブロック図である。
【００２０】
I/O機器共有システムはCPU101-1，101-2と、チップセットで実現されるルートコンプレックス102-1、102-2と、メモリ103-1、103-2と、上流PCI エクスプレス-イーサネット（登録商標）ブリッジ（以下、上流Bと記す）104-1、104-2と、ネットワーク105を構成するイーサネット（登録商標）スイッチ106-1〜106-4と、下流PCI エクスプレス-イーサネットブリッジ（以下、下流Bと記す）107-1〜107-3と、I/O機器108-1〜108-3と、入力装置109-1、109-2とを含んでいる。
【００２１】
ルートコンプレックス102-1はCPU101-1と、メモリ103-1と、上流B 104-1と接続され、ルートコンプレックス102-2はCPU101-2と、メモリ103-2と、上流B 104-2と接続される。また、I/O機器108-1〜108-3は下流B 107-1〜107-3とそれぞれ接続される。上流B 104-1、104-2と下流B 107-1〜107-3はネットワーク105を構成するイーサネットスイッチ106-1〜106-4にそれぞれ接続される。各イーサネットスイッチ106-1〜106-4は任意の上流B 104-1、104-2から任意の下流B 107-1〜107-3にデータを送信可能なネットワークを構成するよう接続される。
【００２２】
図２は上流B 104-1の内部構成を示すブロック図である。ここでは、上流B 104-1の構成として示したが、上流B 104-2も同様な構成である。上流B-1 104はMACアドレスを保持し、TLPをイーサネット（登録商標）フレーム（IEEE802.3 Tag付きフレームフォーマット(IEEE802.1Q)を拡張したフレームフォーマット）にカプセル化・デカプセル化し送受信する機能およびVLAN ID （識別子となる）の設定を行い、I/O機器共有の設定を制御する機能を有する。
【００２３】
図２に示すように、上流B-1 104-1は、TLPを処理するTLP制御部201と、I/O機器108-1〜108-3の共有設定を制御するI/O機器共有制御部202と、ユーザーが出した必要I/O機器の情報を保持するI/O機器要求テーブル203と、各下流B 107-1〜107-3からのI/O機器情報を保持するI/O機器情報テーブル204と、VLAN IDの設定を制御するVLAN ID設定部205と、自分自身(上流B-1 104-1) のVLAN ID設定情報と上流B 104-2からのVLAN ID設定情報を保持するVLAN ID情報テーブル206と、を有する。
【００２４】
さらに、上流B-1 104-1は、VLAN IDの設定回数をカウントするVLAN ID設定回数カウンタ207と、設定したMACアドレスと設定したVLAN IDのフレーム以外をフィルタリングするフィルタリング部208と、制御フレームを生成する制御フレーム生成部209と、制御フレームとカプセル化フレームを選別する制御フレーム選別部210と、制御フレームの処理を行う制御フレーム処理部211と、ユーザーにエラーが発生したことを通知するエラー通知部212と、TLPを宛先のMACアドレスと所属VLAN IDを付加しカプセル化フレームにカプセル化するカプセル化部213と、カプセル化する際にTLPの宛先に対応するMACアドレスと所属VLAN IDの情報を保持するカプセル化テーブル214と、カプセル化フレームからTLPをデカプセル化するデカプセル化部215と、を有する。
【００２５】
TLP制御部201は、ルートコンプレックス102-1、I/O機器共有制御部202、エラー通知部212、カプセル化部213、デカプセル化部215と接続される。I/O機器共有制御部202はTLP制御部201、I/O機器要求テーブル203、I/O機器情報テーブル204、VLAN ID設定部205、制御フレーム生成部209、制御フレーム処理部211、エラー通知部212、カプセル化テーブル214に接続される。VLAN ID設定部205は、I/O機器共有制御部202、VLAN ID情報テーブル206、VLAN ID設定回数カウンタ207、フィルタリング部208、制御フレーム生成部209、制御フレーム処理部211、エラー通知部212、カプセル化テーブル214に接続される。フィルタリング部208はVLAN ID設定部205、制御フレーム選別部210、イーサネットスイッチ106-1に接続される。
【００２６】
制御フレーム生成部209は、I/O機器共有制御部202、VLAN ID設定部205、カプセル化部213、イーサネットスイッチ106-1に接続される。制御フレーム選別部210はフィルタリング部208、制御フレーム処理部211、デカプセル化部215に接続される。カプセル化部213はTLP制御部201、カプセル化テーブル214、イーサネットスイッチ106-1、制御フレーム生成部209に接続される。
【００２７】
次に各テーブルについて説明する。図１３(a)にI/O機器要求テーブル203を示す。I/O機器要求テーブル203には、ユーザーが要求するI/O機器の情報を記録する。項目としては必要なI/O機器のPCIエクスプレスで規定されるVender ID、Device ID、Class Codeと確保済みフラグが保持される。図１３(b)にI/O機器情報テーブル204を示す。I/O機器情報テーブル204は各下流B から送信されるI/O機器情報を記録する。項目としては、I/O機器のPCIエクスプレスで規定されるVender ID、Device ID、Class Codeと所属VLAN ID、MACアドレスが保持される。図１３(c)にVLAN ID情報テーブル206を示す。VLAN ID情報テーブル206には、各上流B が設定したVLAN IDとMACアドレスの情報を記録する。項目としては、所属VLAN ID、MACアドレス、確定フラグが保持される。図１３(d)にカプセル化テーブル214を示す。カプセル化テーブル214では、TLPをカプセル化する際に参照するテーブルである。項目としては、所属VLAN ID、MACアドレス、バス番号、デバイス番号、I/Oアドレス、メモリアドレスが保持される。
【００２８】
図３は下流B 107-1の内部構成を示すブロック図である。ここでは、下流B 107-1の構成を示したが、下流B 107-2、下流B 107-3も同様な構成である。下流B 107-1はMACアドレスを保持し、TLPをイーサネットフレームにカプセル化・デカプセル化し送受信する機能およびI/O機器108の情報の取得を行い、I/O機器共有の設定を制御する機能を有する。
【００２９】
下流B 107-1は、TLPを処理するTLP制御部301と、I/O機器108-1の共有設定を制御するI/O機器共有制御部302と、接続されているI/O機器の情報を取得するI/O機器情報取得部303と、下流B 107-2，107-3からのI/O機器情報と自分に接続されているI/O機器情報を保持するI/O機器情報テーブル304と、VLAN IDの設定を制御するVLAN ID設定部305と、上流B 104-1，104-2からのVLAN ID設定情報を保持するVLAN ID情報テーブル306と、を有する。
【００３０】
また下流B 107-1は、複数の上流B 104-1，104-2からのVLAN ID設定要求から１つを選択する要求選択部307と、設定したMACアドレスと設定したVLAN IDのフレーム以外をフィルタリングするフィルタリング部308と、制御フレームを生成する制御フレーム生成部309と、制御フレームとカプセル化フレームを選別する制御フレーム選別部310と、制御フレームの処理を行う制御フレーム処理部311と、TLPを宛先のMACアドレスと所属VLAN IDを付加しカプセル化フレームにカプセル化するカプセル化部312と、カプセル化する際にTLPの宛先に対応するMACアドレスと所属VLAN IDの情報を保持するカプセル化テーブル313と、カプセル化フレームからTLPをデカプセル化するデカプセル化部314と、を有する。
【００３１】
TLP制御部301はI/O機器108-1、I/O機器共有制御部302、カプセル化部312、デカプセル化部314と接続される。I/O機器共有制御部302はTLP制御部301、I/O機器情報取得部303、I/O機器情報テーブル304、VLAN ID設定部305、制御フレーム生成部309、制御フレーム処理部311、カプセル化テーブル313に接続される。VLAN ID設定部305はI/O機器共有制御部302、VLAN ID情報テーブル306、要求選択部307、フィルタリング部308、制御フレーム生成部309、制御フレーム処理部311、カプセル化テーブル313に接続される。
【００３２】
フィルタリング部308はVLAN ID設定部305、制御フレーム選別部310、イーサネットスイッチ106-3に接続される。制御フレーム生成部309はI/O機器共有制御部302、VLAN ID設定部305、イーサネットスイッチ106-3に接続される。制御フレーム選別部310はフィルタリング部308、制御フレーム処理部311、デカプセル化部314に接続される。カプセル化部312はTLP制御部301、カプセル化テーブル313、イーサネットスイッチ106-3に接続される。
【００３３】
次に各テーブルについて説明する。図１４(a)にI/O機器情報テーブル304を示す。I/O機器情報テーブル304は各下流B から送信されるI/O機器情報を記録する。項目としては、I/O機器のPCIエクスプレスで規定されるVender ID、Device ID、Class Codeと所属VLAN ID、MACアドレスが保持される。図１４(b)にVLAN ID情報テーブル306を示す。VLAN ID情報テーブル306には、各上流B が設定したVLAN IDとMACアドレスの情報を記録する。項目としては、所属VLAN ID、MACアドレス、要求フラグが保持される。図１３(c)にカプセル化テーブル313を示す。カプセル化テーブル313では、TLPをカプセル化する際に参照するテーブルである。項目としては、所属VLAN ID、MACアドレス、バス番号、デバイス番号、I/Oアドレス、メモリアドレスが保持される。
【００３４】
1-2)  第１の実施の形態の動作の説明
本実施形態では、各ユーザーが該ユーザーの操作するCPUの構築したいシステムに必要なI/O機器を設定する動作、複数CPU間でVLAN IDを設定する動作および複数のCPUと複数のI/O機器の共有を設定する動作を行う。
【００３５】
これらの動作が実行されるのは、システム起動直後、CPUを新たにシステムに追加した時の動作、I/O機器を新たにシステムに追加した時の動作、CPUをシステムから削除する時の動作、I/O機器をシステムから削除する時の動作等に分かれる。
【００３６】
１）  システム起動直後
システム起動直後は各上流B 104-1,104-2のフィルタリング部208と下流B 107-1〜107-3のフィルタリング部308はすべてのVLAN IDのフレームを受信できるよう設定されている。
【００３７】
＜システム構築設定＞
各ユーザーはどのI/O機器を使用したいかを入力し、その情報を上流B に記憶させる。その記憶させた情報を基にI/O機器の共有設定が行われる。その手順は次のとおりである。
【００３８】
まず、ユーザーは例えば、入力装置109-1を用いてユーザーの必要なI/O機器、例えばI/O機器108-1,108-2を設定する。その情報は、TLPとして発行され、上流B 104-1のTLP制御部201でそのTLPに書かれている必要なI/O機器情報（PCI Expressで規定されているVendor ID、Device ID、Class Code）を、I/O機器共有設定部202を介してI/O機器要求テーブル203に書き込む。I/O機器要求テーブル203は電源切断後も保持され、電源切断直前のデータが次回起動時も反映される。
【００３９】
また、ユーザーが使用中にシステム構成の変更を行う場合も同様にユーザーは入力装置109-1を用いてユーザーの必要なI/O機器を設定する。その情報は、TLPとして発行され、上流B 104-1のTLP制御部201でそのTLPに書かれている必要なI/O機器情報を、I/O機器共有設定部202を介してI/O機器要求テーブル203に書き込む。その後、I/O機器共有シーケンスを実行する。
【００４０】
ここでは、入力装置109-1を用いてユーザーの必要なI/O機器を上流B 104-1で設定する動作について説明したが、入力装置109-2を用いて他のユーザーの必要なI/O機器を上流B 104-2で設定する動作が同様に行われる。
【００４１】
＜VLAN ID設定＞
次にCPU101-1，CPU101-2に属する上流B 104-1, 上流B 104-2間でVLAN ID（識別子となる）を設定する動作について説明する。図４、図５、図６にフローチャートを示す。図４はVLAN ID初期設定シーケンスを示す。以下の説明では上流B 104-1の動作について説明する。
【００４２】
まず図４に示すように、上流B 104-1のVLAN ID設定部205がMACアドレスからVLAN IDを生成する（ステップＳ11）。そのVLAN IDおよびMACアドレスはVLAN ID情報テーブル206に書き込まれる（ステップＳ12）。その後、制御フレーム生成部209がどのVLAN IDに設定したかを他の上流B 104-2に知らせるためVLAN ID告知フレームを生成し、ブロードキャストし（ステップＳ13）、VLAN ID設定回数カウンタ207をインクリメントする（ステップＳ14）。
【００４３】
上流B 104-1よりブロードキャストされたフレームは、ネットワーク105を介して該フレームを発信した上流B 104-1以外の上流B 104-2および下流B 107-1〜107-3に配布される。
【００４４】
VLAN ID告知フレームを受信した下流B 107-1〜107-3は制御フレーム選別部310で選別し、制御フレーム処理部311はVLAN ID告知フレームを破棄する。
【００４５】
図５は上流B 104-2がVLAN ID告知フレームを受信したときあるいは上流B 104-1のVLAN ID告知フレーム送信後一定時間経過後の動作のフローチャートである。
【００４６】
上流B 104-2がVLAN ID告知フレームを受信（ステップＳ２１）したときに、制御フレーム選別部210で選別されたVLAN ID告知フレームは、制御フレーム処理部211でVLAN IDとMACアドレスの情報を抜き出しVLAN ID情報テーブル206に書き込む（ステップＳ２２）。上流B 104-2では、一定時間経過するまで待機し、他上流B 104-1のVLAN ID設定情報を入手する。上流B 104-1ではVLAN ID告知フレーム送信後一定時間経過まで待機し、他上流B 104-2のVLAN ID設定情報を入手する（ステップＳ２３）。以下の処理では上流B 104-2の動作として説明するが、上流B 104-1でも同様な動作が行われる。
【００４７】
上記の一定時間経過を判断し（ステップＳ２４）、一定時間経過している場合には、自分の設定したVLAN IDが他上流B 104-1で設定されていないかを確認するため、VLAN ID設定部205はVLAN ID情報テーブル206を検索する（ステップＳ２５）。
【００４８】
自分（上流B 104-2）のVLAN IDが他上流B 104-1のVLAN IDと重なっていた場合、VLAN ID設定部205はVLAN ID情報テーブル206を参照し、自分のVLAN IDが自分に確定しているかを判断する（ステップＳ２６）。確定している場合は、制御フレーム生成部209より重なった設定をしている上流B 104-1宛にVLAN ID確定フレームを送信する（ステップＳ２７）。自分のVLAN IDが確定していない場合、VLAN ID設定部205はVLAN ID設定回数カウンタ207を参照し設定した規定回数と比較する（ステップＳ２８）。該カウンタ値が規定回数を超えている場合、エラー通知部212を使ってユーザーにエラーを通知する（ステップＳ２９）。エラーを受信したユーザーは該上流B 104-2のリセットを行い、再度初期設定シーケンスを行う（あるいは初期設定シーケンスにおいてユーザーが手動で設定する）。該カウンタ値が規定回数以下の場合、VLAN ID設定部205はVLAN ID情報テーブル206を参照し設定したVLAN IDから自分のMACアドレスから生成される数値分離れたVLAN IDに設定し（ステップＳ３０）、VLAN ID情報テーブル206にこのVLAN IDを書き込む（ステップＳ３１）。そして制御フレーム生成部は新たなVLAN IDのVLAN ID告知フレームを生成し、ブロードキャストし（ステップＳ３２）、VLAN ID設定回数カウンタ207をインクリメントし（ステップＳ３３）、次のVLAN ID告知フレームの受信を待つ。
【００４９】
上流B 104-2のVLAN IDが他上流B 104-1のVLAN IDと重なっていない場合、該上流B 104-2が既に確定済みかを判断し（ステップＳ３４）、上流B 104-2が既に確定済みならば、VLAN ID告知フレーム受信シーケンスは終了する。該上流B 104-2が未確定ならば、制御フレーム生成部209よりVLAN ID確定フレームを生成しブロードキャストし（ステップＳ３５）、フィルタリング部208を該VLAN IDまたはVLAN ID 0、かつ自分のMACアドレスまたはブロードキャストフレームを受信可能に設定し（ステップＳ３６）、VLAN ID情報テーブル206の該当するVLAN IDに確定フラグをつけ（ステップＳ３７）、VLAN ID告知フレーム受信シーケンスは終了する。
【００５０】
上流B 104-2よりブロードキャストされたフレームは、ネットワーク105を介して該フレームを発信した上流B 104-2以外の上流B 104-1および下流B 107-1〜107-3に配布される。
【００５１】
VLAN ID確定フレームを受信した下流B 107-1〜107-3のそれぞれは制御フレーム選別部310で選別し、制御フレーム処理部311でVLAN ID確定フレームからVLAN IDとMACアドレスの情報を抜き出しVLAN ID情報テーブル306に確定フラグと共に書き込む。
【００５２】
図６は上流B 104-1がVLAN ID確定フレームを受信した時のフローチャートを示している。上流B 104-1がVLAN ID確定フレームを受信すると（ステップＳ４１）、制御フレーム選別部210で選別されたVLAN ID確定フレームは、制御フレーム処理部211で該フレームのVLAN IDとMACアドレスを抜き出し、VLAN ID設定部205はまず該当する情報がVLAN ID情報テーブル206に無い場合、VLAN ID情報テーブル206に書き込む（ステップＳ４２）。その後、自分のVLAN IDが重なっていないかを確認する（ステップＳ４３）。重なっていない場合、VLAN ID情報テーブルの該当するVLAN ID、MACアドレスに確定の印をつけ（ステップＳ４４）、このシーケンスを終了する。
【００５３】
VLAN IDが重なっていた場合、自分のVLAN IDが確定しているかを確認する（ステップＳ４５）。確定している場合、ユーザーにエラーを通知する（ステップＳ４６）。確定していない場合、VLAN ID設定部205はVLAN ID情報テーブル206を参照し設定したVLAN IDから自分のMACアドレスから生成される数値分離れたVLAN IDに設定し（ステップＳ４７）、VLAN ID情報テーブル206にこのVLAN IDを書き込む。そして制御フレーム生成部は新たなVLAN IDのVLAN ID告知フレームを生成し、ブロードキャストし（ステップＳ４８）、VLAN ID設定回数カウンタ207をインクリメント（ステップＳ４９）し、次のVLAN ID告知フレームの受信を待つ。
【００５４】
また、VLAN ID告知フレームを送信し、一定時間経過するまでに他上流B 104-2からのVLAN ID告知フレームを受信しなかった場合は、他に起動している上流B がいないと判断し、制御フレーム生成部209からVLAN ID確定フレームが生成され、ブロードキャストし、フィルタリング部208を該VLAN IDまたはVLAN ID 0、かつ自分のMACアドレスまたはブロードキャストフレームを受信可能に設定し、VLAN ID情報テーブル206の該当するVLAN IDに確定フラグを立てる。
【００５５】
これらの動作は上流B 104-1，104-2のそれぞれで実行される。また、VLAN ID初期設定シーケンスは起動時およびリセット時に実行され、各制御フレームを受信することをトリガーとして実行される。
＜I/O機器共有設定＞
図７にI/O機器共有設定シーケンスを示す。ここでは下流B 107-1について説明するが、他の下流B 107-2、107-3についても同様な動作が実行される。
【００５６】
下流B 107-1はまず、自分に接続されているI/O機器108-1のI/O機器情報（PCI Expressで規定されているVendor ID、Device ID、Class Code）をI/O機器情報取得部303を使って取得する（ステップＳ５１）。取得した情報と自分のMACアドレスをI/O機器情報テーブル304に書き込む（ステップＳ５２）。その情報を基に、制御フレーム生成部309にてI/O機器情報通知フレームを生成し、ブロードキャストする（ステップＳ５３）。
【００５７】
なお、I/O機器108-1がCPU101-1,102-2のいずれにも使用されない場合はI/O機器情報通知フレームはVLAN ID 0に、CPU101-1,102-2のいずれかに使用されているときはそのVLAN IDに設定され、下流B 107-1から定期的にブロードキャストされる。
【００５８】
下流B 107-1よりブロードキャストされたフレームは、ネットワーク105を介して該フレームを発信した下流B 107-1以外の下流B 107-2,107-3および上流B 104-1,104-2に配布される。
【００５９】
I/O機器情報通知フレームを受信（ステップＳ５４）した下流B 107-2（ここでは下流B 107-2について説明するが下流B 107-3も同様である）は制御フレーム選別部310で選別し、制御フレーム処理部311はI/O機器情報通知フレームからI/O機器情報とMACアドレスを読み取り、I/O機器情報テーブル304に書き込む（ステップＳ５５）。
【００６０】
また、I/O機器情報通知フレームを受信（ステップＳ５６）した上流B 104-1（ここでは上流B 104-1について説明するが上流B 104-2も同様である）は制御フレーム選別部210で選別し、制御フレーム処理部211はI/O機器情報通知フレームからI/O機器情報とMACアドレスを読み取り、I/O機器情報テーブル204に書き込む（ステップＳ５７）。次にI/O機器共有制御部202はI/O機器要求テーブル203とI/O機器情報テーブル204を比較し、ユーザーが必要としているI/O機器があるか確認する（ステップＳ５８）。必要なI/O機器が無い場合、上流B 104-1でのI/O機器共有設定シーケンスは終了する。必要なI/O機器が有る場合、制御フレーム生成部209よりVLAN ID設定フレームを生成し、目的のI/O機器を自分のVLAN IDに設定すべくVLAN ID設定フレームを送信する（ステップＳ５９）。既にシステム構築設定で述べたように、ユーザーの必要なI/O機器は上流B 104-1ではI/O機器108-1,108-2を設定されているので、下流B 107-1,B 107-2にVLAN ID設定フレームが送信される。
【００６１】
VLAN ID設定フレームを受信（ステップＳ６０）した下流B 107-1は、制御フレーム選別部310で選別し、制御フレーム処理部311はVLAN ID設定フレームからVLAN IDとMACアドレスを読み取り、VLAN ID情報テーブル306の要求フラグを立てる（ステップＳ６１）。該下流B 107-1は起動してから一定時間経過するまでVLAN ID設定フレームの到着を待つ（ステップＳ６２）。一定時間経過後、VLAN ID設置部304はまずVLAN ID情報テーブル306の要求フラグが複数立っているかどうかを確認する（ステップＳ６３）。要求フラグが単一だった場合、要求フラグの立っているVLAN ID、MACアドレスの上流B 104-1に制御フレーム生成部309で生成されたI/O機器確定フレームをVLAN ID 0でブロードキャスト送信する（ステップＳ６５）。要求フラグが複数立っている場合（VLAN ID設定フレームが上流 B 104-1,104-2の両方から送信された場合）、要求選択部307は１つの要求を選択する（ステップＳ６４）。選択する方法としては、ランダムに選択、VLAN IDの値の大きいものあるいは小さいものを優先する、自分のMACアドレスに近いものを選択するなどがある。選択したVLAN ID、MACアドレスの上流B 104-1（ここでは上流B 104-1が選択されたものとする）に制御フレーム生成部309で生成されたI/O機器確定フレームをVLAN ID 0でブロードキャスト送信する（ステップＳ６５）。I/O機器確定フレームを送信後、フィルタリング部308を該VLAN IDまたはVLAN ID 0、かつ自分のMACアドレスまたはブロードキャストフレームを受信可能に設定し（ステップＳ６６）、I/O機器情報テーブルの自分の欄にそのVLAN IDを書き込む。
【００６２】
下流B 107-1よりブロードキャストされたフレームは、ネットワーク105を介して該フレームを発信した下流B 107-1以外の下流B 107-2，107-3および上流B 104-1に配布される。ここでは、下流B 107-1について説明したが、VLAN ID設定フレームを受信した下流B 107-2でも同様な動作が行われる。
【００６３】
I/O機器確定フレームを受信（ステップＳ６７）した下流B 107-2（ここでは下流B 107-2について説明するが、下流B 107-3についても同様である）は制御フレーム選別部310で選別し、制御フレーム処理部311はI/O機器確定フレームから送信元のI/O機器情報と設定先のVLAN ID情報を読み取り、I/O機器情報テーブル304に書き込む（ステップＳ６８）。
【００６４】
I/O機器確定フレームを受信（ステップＳ６９）した上流B 104-1は制御フレーム選別部210で選別し、制御フレーム処理部211はI/O機器確定フレームから送信元のI/O機器情報と設定先のVLAN ID情報を読み取り、I/O機器情報テーブル204に書き込む（ステップＳ７０）。さらにI/O機器共有制御部202は送信先のI/O機器が自分に必要なI/O機器か判断する（ステップＳ７１）。自分に必要なI/O機器でない場合、I/O機器確定フレーム受信シーケンスを終了する。自分に必要なI/O機器である場合、自分宛であるか該I/O機器確定フレームの設定先のVLAN IDと比較する（ステップＳ７２）。自分宛で無い場合、I/O機器確定フレーム受信シーケンスを終了する。自分宛である場合、そのCPU101-1がI/O機器を使用できるよう、PCI Expressの設定動作を実行し（ステップＳ７３）、その後カプセル化テーブル214に設定したI/O機器のMACアドレス、VLAN ID、PCI Expressのバス番号、デバイス番号、I/Oアドレス・メモリアドレスを記録し（ステップＳ７４）、終了する。
【００６５】
上流B 104-1がVLAN ID設定フレームを送信し、一定時間経過後、どのI/O機器からも自分宛のI/O機器確定フレームを受信しなかった場合、I/O機器共有失敗のエラーをユーザーに通知する。
【００６６】
２）  通常動作時（CPU−I/O機器間通信）
次にI/O機器の共有設定が終了した後、通常動作時にどのようにルートコンプレックスとI/O機器が通信するかについて説明する。ここでは、ルートコンプレックス102-1とI/O機器108-1との通信について説明する。
【００６７】
図８に通常動作時の通信手順を示している。まず、上流B 104-1がTLPを受信した時について説明する。ルートコンプレックス102-1からのTLPを受信（ステップＳ８１）した上流B 104-1はTLP制御部201にて、TLPの宛先情報を読み取る（ステップＳ８２）。宛先が自分宛かを判断し（ステップＳ８３）、宛先が自分宛である場合、そのTLPは自上流B 104-1へのアクセスであるため、TLP制御部はTLPの内容を読み取り、その内容を処理する（ステップＳ８４）。宛先が自分宛で無い場合、そのTLPはカプセル化テーブル214を基にカプセル化部213にて宛先のMACアドレス、VALN IDのカプセル化フレームにカプセル化され（ステップＳ８５）、イーサネットスイッチ106-1に送信される（ステップＳ８６）。
【００６８】
ネットワーク105を構成する複数のイーサネットスイッチ106はセルフラーニング機能を持っているので、自動的にアドレステーブルを構築し、カプセル化フレームを宛先の下流B 107-1（ここでは宛先が下流B 107-1であるとする）に転送する。
【００６９】
カプセル化フレームを受信（ステップＳ８７）した下流B 107-1は、フィルタリング部308で、設定したVLAN IDのフレームかを判断し（ステップＳ８８）、フィルタリング部308で、設定したVLAN ID以外のフレームを破棄し（ステップ８９）、設定したVLAN IDのフレームである場合は受け入れる。さらに宛先MACアドレスを確認し（ステップＳ９０）、自分宛あるいはブロードキャスト以外のフレームを破棄し（ステップＳ９１）、自分宛あるいはブロードキャストの場合は受け入れる。次に制御フレーム選別部310で制御フレームであるか、カプセル化フレームであるかの判定が行われる（ステップＳ９２）。制御フレームの場合、制御フレーム処理部311に送られ処理される（ステップＳ９３）。カプセル化フレームの場合、デカプセル化部314に送られ、デカプセリングされる（ステップＳ９４）。デカプセリングされたTLPはTLP制御部301に送られ、TLPの宛先を読み取り（ステップＳ９５）、自下流B 107-1宛かを確認する（ステップＳ９６）。自下流B 107-1宛である場合、TLPの内容を確認し処理する（ステップＳ９７）。宛先が接続されているI/O機器108-1宛である場合、I/O機器108-1に転送し（ステップＳ９８）、処理を終了する。
【００７０】
次に下流B 107-1がI/O機器108-1からのTLPを受信した時について図９を用いて説明する。TLPを受信（ステップＳ１０１）した下流B 107-1はTLP制御部301にて、TLPの宛先情報を読み取り（ステップＳ１０２）、宛先が自分宛であるかを判断する（ステップＳ１０３）。宛先が自分宛である場合、そのTLPは自下流B 107-1へのアクセスであるため、TLP制御部はTLPの内容を読み取り、その内容を処理する（ステップＳ１０４）。宛先が自分宛で無い場合、そのTLPはカプセル化テーブル313を基にカプセル化部312にて宛先のMACアドレス、VALN IDのカプセル化フレームにカプセル化され（ステップＳ１０５）、イーサネットスイッチ106-3に送信され（ステップＳ１０６）、ネットワーク105内を転送され、目的の上流B 104-1(ここでは目的の上流B が上流B 107-1であるとする）に送信される。
【００７１】
カプセル化フレームを受信（ステップＳ１０７）した上流B 104-1は、フィルタリング部208で、設定したVLAN IDのフレームかを判断し（ステップＳ１０８）、フィルタリング部208で、設定したVLAN ID以外のフレームを破棄し（ステップＳ１０９）、設定したVLAN IDのフレームである場合受け入れる。さらに宛先MACアドレスを確認し（ステップＳ１１０）、自分宛以外あるいはブロードキャスト以外のフレームを破棄し（ステップＳ１１１）、自分宛あるいはブロードキャストの場合は受け入れる。次に制御フレーム選別部210で制御フレームであるか、カプセル化フレームであるかの判定が行われる（ステップＳ１１２）。制御フレームの場合、制御フレーム処理部211に送られ処理される（ステップＳ１１３）。カプセル化フレームの場合、デカプセル化部215に送られ、デカプセリングされる（ステップＳ１１４）。デカプセリングされたTLPはTLP制御部201に送られ、TLPの宛先を読み取り（ステップＳ１１５）、自上流B 104-1宛かを確認する（ステップＳ１１６）。自上流B 104-1宛である場合、TLPの内容を確認し処理する（ステップＳ１１７）。宛先が接続されているルートコンプレックス102-1宛である場合、ルートコンプレックス102-1に転送し（ステップＳ１１８）、処理を終了する。
【００７２】
３）  CPUを新たに追加する時
システム運用中に新たにCPU、ルートコンプレックス、メモリ、上流B 、入力装置が追加された時の動作について説明する。ここでは、CPU101-3、ルートコンプレックス102-3、メモリ103-3、上流B 104-3、入力装置109-3が追加されたものとし（不図示）、以下の説明では新たに加えられたCPU101-3、ルートコンプレックス102-3、メモリ103-3、上流B 104-3、入力装置109-3を中心に説明する。新たに加えられた場合は、起動時と同様にシステム構築設定、VLAN ID設定、I/O機器共有設定を行っていく。まずシステム構築設定だが、前記のシステム起動直後の動作と同様である。
【００７３】
次に新たに追加された上流B 104-3は自分のVLAN IDを設定すべく、VLAN ID設定を行う。基本的な動作は前記のシステム起動直後と同じだが、異なる点は他の上流B 104-1,B104-2のVLAN IDが既に確定している点である。動作は図４、図５、図６に従い動作する。
【００７４】
さらに、I/O機器共有設定は、図７に沿って実行される。使用されていないI/O機器に接続される下流B はVLAN 0で定期的にI/O機器情報通知フレームを送信している。そのI/O機器情報通信フレームを受信することでI/O機器共有設定シーケンスが始まり、I/O共有を行い、通常動作に移行する。
【００７５】
４）  I/O機器を新たに追加する時
下流B およびI/O機器が新たに追加されたときの動作について説明する。ここでは、下流B 107-4およびI/O機器108-4が新たに追加されたものとする（不図示）。この時には、追加された下流B 107-4が追加されたI/O機器108-4の情報を取得する動作から始まる。その後、図７に示される手順に沿って設定され、通常動作に移行する。
【００７６】
５）  CPUをシステムから削除する時
システム運用中に稼働中のCPU、ルートコンプレックス、メモリ、上流B 、入力装置を削除する手順について説明する。ここでは、CPU101-1、ルートコンプレックス102-1、メモリ103-1、上流B 104-1、入力装置109-1を削除するものとする。削除が実行される上流B 104-1は、例えば下流B 107-1およびI/O機器108-1を使用していたとすると、その使用していた下流B 107-1およびI/O機器108-1の共有設定を解除するため、制御フレーム生成部209で生成されたVLAN ID解除フレームを目的のI/O機器108-1に向けて送信する。VLAN ID解除フレームを受信した下流B 107-1は下流B 107-1自身と接続されているI/O機器108-1をリセットする。リセットされた下流B 107-1はI/O機器共有設定動作を開始し、VLAN 0のI/O機器情報通知フレームをブロードキャストする。ブロードキャストされたI/O機器情報通知フレームを受け取った削除中の上流B 104-1は、I/O機器要求テーブル203から該当するI/O機器情報を削除する。
【００７７】
I/O機器要求テーブル203の確保済みフラグが立っているI/O機器がすべて削除されるまでこの動作は繰り返される。すべての確保済みI/O機器の解除が終了後、CPU101-1、ルートコンプレックス102-1、メモリ103-1、上流B 104-1、入力装置109-1は削除可能となり、削除される。
【００７８】
６）  I/O機器をシステムから削除する時
システム運用中に稼働中のI/O機器を削除する手順について説明する。ここでは、CPU101-1とI/O機器108-1とが接続され、I/O機器108-1を削除するものとする。I/O機器108-1からの削除指示(アテンションボタン押下)またはI/O機器108-1のユーザーからの削除指示により削除動作が開始される。I/O機器108-1からの削除指示の場合、PCIエクスプレス準拠の命令が通常動作時のCPU101-1−I/O機器108-1間通信によって行われる。I/O機器削除されると定期的に送信されてきたI/O機器情報通知フレームを上流B 104-1は受信しなくなるため、I/O機器情報テーブル204から該当するI/O機器情報とI/O要求テーブル203の確保済みフラグを削除する。
【００７９】
一方、ユーザーからの削除指示を上流B 104-1が受信した場合は、受信した上流B 104-1は制御フレーム生成部209で生成されるI/O機器削除フレームを目的の下流B 104-1に向けて送信する。I/O機器削除フレームを受信した下流B 107-1は制御フレーム選別部310で選別され、制御フレーム処理部311で情報を読み取り、TLP制御部301からI/O削除指示TLPをI/O機器108-1に送り、I/O機器108-1は削除指示を出した状態となり、前記のI/O機器108-1からの削除指示の場合の手順と同様の動作が行われる。
【００８０】
７）  I/O機器の共有を解除する時
システム運用中に使用しているI/O機器の共有を解除する手順について説明する。ここでは、CPU101-1により使用されているI/O機器108-1の共有を解除するものとする。共有解除はユーザーからの解除指示によって開始される。解除指示のTLPを受信した上流B 104-1は使用していた下流B 107-1およびI/O機器108-1の共有設定を解除するため、制御フレーム生成部209で生成されたVLAN ID解除フレームを目的のI/O機器108-1に向けて送信する。VLAN ID解除フレームを受信した下流B 107-1は下流B 107-1自身と接続されているI/O機器108-1をリセットする。リセットされた下流B 107-1はI/O機器共有設定動作を開始し、VLAN 0のI/O機器情報通知フレームをブロードキャストする。ブロードキャストされたI/O機器情報通知フレームを受け取った解除中の上流B 104-1は、I/O機器要求テーブル203から該当するI/O機器情報を削除する。また、共有を解除したI/O機器108-1はI/O機器共有設定の要求があればI/O機器共有設定のシーケンスが開始される。
【００８１】
８）  CPUの電源が切断された時
システム運用中にユーザーの意図に反し、CPU101-1および上流B 104-1への電源供給が切断した場合について説明する。ここではCPU101-1はI/O機器108-1を使用していたものとする。CPU101-1および上流B 104-1への電源供給が切断された場合、CPU101-1および上流B 104-1が使用していたI/O機器108-1は、該上流B 104-1からのデータを受信しなくなる。該状態が一定時間続いた場合、該I/O機器108-1が接続している下流B 107-1の制御フレーム生成部309は該上流B 104-1に対しI/O機器確認フレームを送信する。CPU101-1および上流B 104-1が動作中であれば、I/O機器確認フレームを受信した上流B 104-1は応答を返し、その応答を受信した下流B 107-1は通常の動作を行う。しかし、CPU101-1および上流B 104-1が動作中でない場合、応答が無いため下流B 107-1は一定時間経過後に下流B 107-1自身と接続されているI/O機器108-1をリセットする。リセットされた下流B 107-1はI/O機器共有設定動作を開始し、VLAN 0のI/O機器情報通知フレームをブロードキャストし、I/O機器共有設定の要求があればI/O機器共有設定のシーケンスが開始される。
【００８２】
以上、二つのCPU間での三つのI/O機器の共有設定を行う場合について説明したが、かかる数に限定されず、三つ以上のCPU間で、二つ又は四つ以上のI/O機器の共有設定を行う場合にも同様に本実施形態の構成が適用可能である。この点については以下に説明する各実施形態についても同様である。
【００８３】
1-3)  第１の実施の形態の効果
本実施の形態を用いることにより、複数CPU間でのI/O機器の共有設定を自動で行うことができ、共有設定はVLAN IDのみで管理するため容易である。
［2］ 第２の実施の形態
2-1)  第２の実施の形態の構成の説明
第２の実施の形態では、使用するI/O機器ごとにVLAN IDを設定し、複数の同じI/O機器を所属させ、そのうちの一つのI/O機器を選択し、上流B のフィルタリング部の設定でそのVLAN IDのフレームのうちMACアドレスが選択したI/O機器のもの以外を廃棄する設定とする。
【００８４】
そしてI/O機器と通信をする際に、そのVLAN IDに設定しブロードキャストすることにより、複数の同じI/O機器にフレームを配布する。I/O機器から上流B へのフレームは、前記フィルタリング部の設定により選択したI/O機器からのフレームを受取る。
【００８５】
また、複数の冗長設定した同じI/O機器間の同期が外れた際の回復手段として、現在アクティブのI/O機器からの応答とスタンバイの複数のI/O機器からの応答が一致しているかどうかを確認する冗長I/O機器応答確認部と同期ずれを修正する冗長I/O機器同期修正部と修正用バッファを有している。  
【００８６】
第２の実施の形態の構成は上流B の構成以外は第１の実施の形態と同様であるが、I/O機器は同じI/O機器を複数含むことが望ましい。図１０に第２の実施の形態の上流B を示す。ここでは、上流B 104-1の構成を示すが、上流B 104-2の構成も同様である。図２と同一構成部材については同一符号を付して説明を省略する。I/O機器共有システムの構成は図１に示した実施形態１の構成と同じである。
【００８７】
図２に示す第1の実施の形態の上流B 104と比較すると、新たにI/O機器選択部1001、冗長I/O機器応答確認部1002、冗長I/O機器同期修正部1003、修正用バッファ1004が追加される。I/O機器選択部1001はI/O機器共有制御部202とI/O機器情報テーブル204に接続される。冗長I/O機器応答確認部1002は冗長I/O機器同期修正部1003とフィルタリング部208とイーサネットスイッチ106-1とに接続される。冗長I/O機器同期修正部1003は冗長I/O機器応答確認部1002と、修正用バッファ1004と、イーサネットスイッチ106-1とに接続される。修正用バッファ1004は冗長I/O機器同期修正部1003と、カプセル化部213と、制御フレーム生成部209とに接続される。また、上流B 104-1のI/O機器要求テーブル203のテーブル内容に設定VLAN IDの項目が追加される。さらにI/O機器情報テーブル204に使用中フラグの項目が追加される。
【００８８】
図１５(a)にI/O機器要求テーブル203を示す。第1の実施の形態のI/O機器要求テーブル203に所属VLAN IDの項目が追加される。図１５(b)にI/O機器情報テーブル204を示す。第1の実施の形態のI/O機器情報テーブル204に使用中フラグの項目が追加される。他のテーブルについては第1の実施の形態と同じ内容である。
【００８９】
2-2)  第２の実施の動作の説明
次に第２の実施の形態の動作について説明する。
【００９０】
１）  システム起動直後
システム起動直後は各上流B 104-1,104-2のフィルタリング部208と下流B 107-1〜107-3のフィルタリング部308はすべてのVLAN IDのフレームを受信できるよう設定されている。
＜システム構築設定＞
各ユーザーはどのI/O機器を使用したいかと冗長度とを入力し、その情報を上流B に記憶させる。その記憶させた情報を基にI/O機器の共有設定が行われる。その手順は次のとおりである。
【００９１】
まず、ユーザーは例えば、入力装置109-1を用いてユーザーの必要なI/O機器、I/O機器と各I/O機器の冗長度（確保枚数）とを設定する。その情報は、TLPとして発行され、上流B 104-1のTLP制御部201でそのTLPに書かれている必要なI/O機器情報（PCI Expressで規定されているVendor ID、Device ID、Class Code）を、I/O機器共有設定部202を介してI/O機器要求テーブル203に書き込む。その際、指定された冗長度数分の同じI/O機器情報をI/O機器要求テーブル203に書き込む。
【００９２】
ここでは、入力装置109-1を用いてユーザーの必要なI/O機器と冗長度とを上流B 104-1で設定する動作について説明したが、入力装置109-2を用いて他のユーザーの必要なI/O機器と冗長度とを上流B 104-2で設定する動作が同様に行われる。
＜VLAN ID設定＞
第2の実施の形態では、要求するI/O機器ごとにVLAN IDを設定するため、VLAN ID設定動作をI/O機器要求テーブル203に登録されているすべてのI/O機器にVLAN IDが割当てられるまで繰り返される。
【００９３】
CPU101-1，CPU101-2に属する上流B 104-1, 上流B 104-2間でVLAN IDの設定を設定する動作について説明する。図４、図１１、図６にフローチャートを示す。図４のVLAN ID初期設定シーケンスおよび図６の上流B 104-1がVLAN ID確定フレームを受信した時の動作は第1の実施の形態と同じである。
【００９４】
上流B 104-2がVLAN ID告知フレームを受信したときあるいは上流B 104-1のVLAN ID告知フレーム送信後一定時間経過後の動作は、第1の実施の形態と異なる動作を含む。図１１は上流B 104-2がVLAN ID告知フレームを受信したときあるいは上流B 104-1のVLAN ID告知フレーム送信後一定時間経過後の第２の実施の形態の動作のフローチャートである。第１の実施の形態の動作と異なる点は、VLAN ID確定フレームをブロードキャストした後の動作である。すなわち、ステップＳ２１からステップＳ３５の動作は、図５と同じであり、ステップＳ３５以後のステップＳ１２１からステップＳ１２９の動作が第１の実施の形態と異なる。以下、この動作について説明する。
【００９５】
VLAN ID確定フレームをブロードキャスト後（ステップＳ３５の後）、VLAN ID情報テーブル206の今回設定したVLAN IDの確定フラグを立てる（ステップＳ１２１）。そして、図１５(a)に示すI/O機器要求テーブル203のまだVLAN IDが割当てられていないI/O機器の所属VLAN IDの欄にVLAN IDを記録する（ステップＳ１２２）。この記録の際に、同じI/O機器がある場合、そのI/O機器の所属VLAN IDの欄にも記録する。さらにI/O機器要求テーブル203を参照し、すべてのI/O機器にVLAN IDが割当てられているかを確認し（ステップＳ１２３）、すべて割当て済みであればフィルタリング部208をVLAN 0として、これまでに確定したVLAN IDを受信できるように設定し（ステップＳ１２４）、終了する。割当てられていない場合、まずVLAN ID設定回数カウンタ207をリセットする（ステップＳ１２５）。そして、VLAN ID情報テーブルを参照しMACアドレスから生成される数値分離れた空きVLAN IDを選択する（ステップＳ１２６）。そのVLAN IDとMACアドレスをVLAN ID情報テーブル206に追加し（ステップＳ１２７）、VLAN ID告知フレームをブロードキャストし（ステップＳ１２８）、VLAN ID設定回数カウンタ207をインクリメントし（ステップＳ１２９）、終了する。すなわち、異なるI/O機器の数分VLAN IDを確保し、同じI/O機器には同じVLAN IDが設定される。
＜I/O機器共有設定＞
I/O機器共有設定においては、第１の実施の形態では上流Bが確保したI/O機器はすべて同じVLAN IDが設定される。第２の実施の形態では、異なるI/O機器は異なるVLAN IDが設定され、同じI/O機器は同じVLAN IDが設定される。
【００９６】
第2の実施の形態のI/O機器共有設定シーケンスは図１２に示されるとおりである。図７に示した第1の実施の形態と異なる点は、上流B 104-1がI/O機器確定フレームを受信した時の動作部分である（なお図７の説明と同様に、上流B 104-1の動作について説明するが上流B 104-2の動作も同様である）。すなわち、ステップ１３０を除く、ステップＳ５１からステップＳ７４の動作は、図７と同じである。I/O機器確定フレームを受信（ステップＳ６９）した上流B 104-1は制御フレーム選別部210で選別し、制御フレーム処理部211はI/O機器確定フレームから送信元のI/O機器情報と設定先のVLAN ID情報を読み取り、I/O機器情報テーブル204に書き込む（ステップＳ７０）。さらにI/O機器共有制御部202は送信先のI/O機器が自分に必要なI/O機器か判断する（ステップＳ７１）。自分に必要なI/O機器でない場合、I/O機器確定フレーム受信シーケンスを終了する。自分に必要なI/O機器である場合、自分宛であるか該I/O機器確定フレームの設定先のVLAN IDと比較する（ステップＳ７２）。自分宛で無い場合、I/O機器確定フレーム受信シーケンスを終了する。自分宛である場合、既に同じI/O機器を確保済みか確認し（ステップＳ１３０）、確保済みの場合I/O機器確定フレーム受信シーケンスを終了する。確保済みでない場合、そのCPU101-1がI/O機器を使用できるよう、PCI Expressの設定動作を実行し（ステップＳ７３）、その後カプセル化テーブル214に設定したI/O機器のMACアドレス、VLAN ID、PCI Expressのバス番号、デバイス番号、I/Oアドレス・メモリアドレスを記録する（ステップＳ７４）。複数の同じI/O機器を冗長設定した場合、そのうちの１つをアクティブとしてそれ以外をスタンバイとするため、I/O機器選択部1001は冗長設定の複数のI/O機器から１つのI/O機器を選択し、図１５(b)に示すようにI/O機器情報テーブル204の該当するI/O機器の使用中フラグを立てる。また、フィルタリング部208は設定したVLAN IDとVLAN ID 0を、さらにアクティブなI/O機器のMACアドレスとブロードキャストアドレス以外のフレームを破棄するよう設定される。
【００９７】
２）  通常動作時（CPU−I/O機器間通信、N重冗長設定なし）
次にI/O機器の共有設定が終了した後、通常動作時にどのようにルートコンプレックスとI/O機器が通信するかについて説明する。
【００９８】
第２の実施の形態では、異なるI/O機器ごとにVLAN IDが設定されており、同じI/O機器には同じVLAN IDが設定されている。通信を行う際は、第１の実施の形態では設定されたVLAN IDで目的のI/O機器の下流B 宛てのフレームをユニキャストするが、第２の実施の形態では、設定されたVLAN ID内でブロードキャストを行い、所属している同じI/O機器すべてに送信する。送信されたカプセル化フレームはVLAN内の各下流B が受信し、それぞれ動作する。VLAN内の各下流B からのカプセル化フレームは、フィルタリング部が選択されたI/O機器の下流B のMACアドレス以外を破棄する設定になっているため、選択されたI/O機器からのカプセル化フレームがデカプセル化されTLPとなって処理される。
【００９９】
３）  通常動作時（CPU−I/O機器間通信、N重冗長設定あり）
次にN重冗長設定がある場合の通常時の動作について説明する。前記通常動作時の動作２）においてN重冗長設定がある時には、同じI/O機器間でアクティブに設定されているI/O機器と状態をそろえることが求められる。まず、上流B からカプセル化しフレームを送信する際に、各VLAN IDごとに区切られた修正用バッファ1004にフレームのコピーを置く。その後、I/O機器からの応答フレームを受信すると、冗長I/O機器応答確認部1002は各I/O機器からの応答を比較し、同期が取れていない場合、その結果を冗長機器同期修正部1003に送り、同期の取れていないI/O機器（NACKを送信したI/O機器）に対し、修正用バッファのフレームのコピーのMACアドレスをブロードキャストアドレスから同期の取れていないI/O機器のMACアドレスに変更し、送付する。同期が取れている場合はフィルタリング部208にフレームを送る。その後の処理は２）において説明した動作と同様である。
【０１００】
４）  CPUを新たに追加する時
第１の実施の形態のCPUを新たに追加する動作において、第１の実施の形態のシステム構築設定、VLAN ID設定、I/O機器共有設定の第２の実施の形態での変更点がそのまま反映される。
【０１０１】
５）  I/O機器を新たに追加する時
第１の実施の形態のCPUを新たに追加する動作において、第１の実施の形態のシステム構築設定、VLAN ID設定、I/O機器共有設定の第２の実施の形態での変更点がそのまま反映される。
【０１０２】
６）  CPUをシステムから削除する時
第１の実施の形態のCPUを新たに追加する動作において、第１の実施の形態のシステム構築設定、VLAN ID設定、I/O機器共有設定の第２の実施の形態での変更点がそのまま反映される。
【０１０３】
７）  I/O機器をシステムから削除する時
第１の実施の形態のCPUを新たに追加する動作において、第１の実施の形態のシステム構築設定、VLAN ID設定、I/O機器共有設定の第２の実施の形態での変更点がそのまま反映される。
【０１０４】
８）  I/O機器の共有を解除する時
第１の実施の形態のCPUを新たに追加する動作において、第１の実施の形態のシステム構築設定、VLAN ID設定、I/O機器共有設定の第２の実施の形態での変更点がそのまま反映される。
【０１０５】
９）  CPUの電源が切断された時
第１の実施の形態のCPUの電源が切断された時の動作において、第１の実施の形態のシステム構築設定、VLAN ID設定、I/O機器共有設定の第２の実施の形態での変更点がそのまま反映される。
【０１０６】
2-3)  第２の実施の形態の効果
第２の実施の形態を用いることにより、I/O機器の冗長構成の設定を容易に行うことが可能となる。
［3］ 第３の実施の形態
第３の実施の形態について説明する。第３の実施の形態の全体のブロック図を図１６に示す。第３の実施の形態では、前記第１および第２の実施の形態において新たにI/O機器データベースサーバー1901が追加される。I/O機器データベースサーバー1901はI/O機器108-1〜108-3のそれぞれから送信されるI/O機器情報通知フレームを受信し、I/O機器のデータベースを作成する。上流B および下流B は第１および第２の実施の形態と同様のブロック図に示した構成でも可能であるが、次に示すブロック図の構成が好ましい。第１の実施の形態から変更した上流B および下流B のブロック図は図１７、図１８、第２の実施の形態から変更した上流B は図１９に示される。図１７及び図１８は上流B 104-1,下流B 107-1の構成を示し、図１９は上流B 104-1を示しているが、上流B 104-2,下流B 107-2,107-3の構成も同様である。
【０１０７】
図１７〜図１９に示す構成は、第１および第２の実施の形態における上流B 104-1および下流B 107-1の構成からI/O機器情報テーブル204およびI/O機器情報テーブル304が削除される構成となる。I/O機器データベースサーバー1901が保持するデータベースは、第１の実施の形態からの変更の場合は図１３(b)と同様であり、第２の実施の形態からの変更の場合は図１５(b)に示されるテーブルと同様である。
【０１０８】
次に第３の実施の形態の動作について説明する。第３の実施の形態の動作は第１および第２の実施の形態において、複数のI/O機器の共有設定を行う動作が異なる。
【０１０９】
図２０に共有設定シーケンスを示す。ステップＳ５１からステップＳ５５、ステップＳ６０からステップＳ７４の動作は、図７と同じであり、ステップＳ１３１からステップＳ１３４の動作が第１の実施の形態と異なる。また、ステップＳ５４，Ｓ５５、ステップＳ６７，Ｓ６８の動作はI/O機器データベースサーバー1901で行われる。
【０１１０】
下流B 107-1〜B 107-3のそれぞれはI/O機器情報通知フレームをブロードキャストする（ステップＳ５３）。I/O機器データベースサーバー1901はI/O機器情報通知フレームを受信し（ステップＳ５４）、I/O機器情報をI/O機器情報テーブルに追加記録する（ステップＳ５５）。また、上流B 104-1,B104-2のそれぞれは自分に設定された必要I/O機器情報を基にI/O機器要求フレームをI/O機器データベースサーバー1901に送付する（ステップＳ１３１）。I/O機器データベースサーバー1901はI/O機器要求フレームを受信し（ステップＳ１３２）、I/O機器情報テーブルを参照し対応するI/O機器を選択する（ステップＳ１３３）。以下の説明では、上流B 104-1からI/O機器108-1の必要I/O機器情報がI/O機器データベースサーバー1901に送られ、I/O機器データベースサーバー1901がI/O機器108-1を選択したものとして説明を行う。
【０１１１】
選択したI/O機器108-1を要求した上流B 104-1の設定されているVLAN IDに設定するべく、該I/O機器108-1が接続されている下流B 107-1にVLAN ID設定フレームを送信する（ステップＳ１３４）。下流B 107-1がVLAN ID設定フレームの受信したのちの動作は、I/O機器データベースサーバー1901がI/O機器確定フレームを受信したときに（ステップＳ６７）、VLAN ID情報をI/O機器情報テーブルに追加する（ステップＳ６８）こと以外は同様の動作を行う。
【０１１２】
また、I/O機器データベースサーバー1901は、図２１に示すように、いずれかのCPU、ルートコンプレックス、メモリ（上流B 、入力装置が含まれていてもよい）から構成される装置上に搭載する形態も可能である。図２１では、I/O機器データベースサーバー1901がCPU101-2、ルートコンプレックス102-2、メモリ103-2（上流B 104-2、入力装置109-2が含まれていてもよい）から構成される装置上に搭載される形態を示している。
【０１１３】
第３の実施の形態を用いることで、各上流B および下流B がI/O機器情報テーブルを保持しないため、上流B および下流B の実装を容易にできる。
［4］ 第４の実施の形態
第４の実施の形態について説明する。第４の実施の形態の全体のブロック図を図２２に示す。第４の実施の形態では、第１および第２および第３の実施の形態において新たにVLAN ID設定サーバー2501が追加される。VLAN ID設定サーバー2501は上流B 104-1，B 104-2のVLAN IDを設定する。VLAN ID設定サーバー2501はイーサネットスイッチ106-1〜106-4に接続される。上流B は第１および第２の実施の形態と同様のブロック図に示した構成でも可能であるが、次に示すブロック図の構成が好ましい。第１の実施の形態から変更した上流B のブロック図は図２３、第２の実施の形態から変更した上流B は図２４に示される。図２３、図２４に示す第４の実施の形態での上流B は第１および第２の実施の形態におけるVLAN ID情報テーブル206およびVLAN ID設定回数カウンタ207が削除された構成となる。
【０１１４】
次に第４の実施の形態の動作について説明する。第１および第２および第３の実施の形態の動作と比較するとVLAN ID設定シーケンス部分が異なり、その他の動作は同様である。第４の実施の形態のVLAN ID設定シーケンスについて図３７及び図３８を用いて説明する。
【０１１５】
図３７に示すように、上流B 104-1は起動後にVLAN ID設定要求フレームをVLAN ID設定サーバー2501に送付する（ステップＳ140）。なお、上流B 104-2からも同様にVLAN ID設定要求フレームを送付するが、ここでは上流B 104-1からのVLAN ID設定要求フレームが送付された場合の動作について説明する。
【０１１６】
VLAN ID設定サーバー2501はVLAN ID設定要求フレームを受信すると（ステップＳ141）、図３８に示すVLAN ID情報テーブルを参照し、現在使用されていないVLAN IDを選択する（ステップS142）。このように本実施形態では、VLAN IDはVLAN ID設定サーバー2501のVLAN ID情報テーブルに基づいて設定される。そして、VLAN ID設定サーバー2501はVLAN ID確定フレームをブロードキャストする（ステップS143）。
【０１１７】
選択されたVLAN IDを要求した上流B 104-1 はVLAN ID確定フレームを受信すると（ステップＳ144）、VLAN ID設定部でそのVLAN IDを保持する。また下流 B 107-1〜B 107-3はVLAN ID確定フレームを受信すると（ステップＳ145）、VLAN ID設定部でそのVLAN IDを保持する。その後I/O機器共有設定シーケンスに移行する。
【０１１８】
また、VLAN ID設定サーバー2501は、図２５に示すように、いずれかのCPU、ルートコンプレックス、メモリ（上流B、入力装置が含まれていてもよい）から構成される装置上に搭載する形態も可能である。図２５では、VLAN ID設定サーバー2501が、CPU101-2、ルートコンプレックス102-2、メモリ103-2（上流B 104-2、入力装置109-2が含まれていてもよい）から構成される装置上に搭載される形態を示している。
【０１１９】
第４の実施の形態を用いることで、各上流B がVLANI ID情報テーブル206を保持しないため、上流B の実装を容易にできる。
［5］ 第５の実施の形態
第５の実施の形態について説明する。第５の実施の形態の全体のブロック図を図２６に示す。第５の実施の形態では、第３の実施の形態と第４の実施の形態のI/O機器データベースサーバー1901とVLAN ID設定サーバー2501が構成に含まれる。上流B および下流B は第１、第２、第３および第４の実施の形態と同様のブロック図でも可能であるが、次に示すブロック図の構成が好ましい。第１の実施の形態から変更した上流B および下流B のブロック図は図２７，図２８、第２の実施の形態から変更した上流B は図２９に示される。第1および第2の実施の形態からの変更はI/O機器情報テーブル204および304、VLAN ID情報テーブル206および306、VLAN ID設定回数カウンタ207を削除した形態となっていることである。
【０１２０】
次に第５の実施の形態の動作について説明する。第５の実施の形態では、VLAN ID設定シーケンスは第４の実施の形態の動作、I/O機器共有設定シーケンスは第３の実施の形態の動作と同様となる。
【０１２１】
また、I/O機器データベースサーバー1901とVLAN ID設定サーバー2501は、図３０に示すようにいずれかのCPU、ルートコンプレックス、メモリ（上流B 、入力装置が含まれていてもよい）から構成される装置上に搭載する形態も可能である。図３０では、I/O機器データベースサーバー1901が、CPU101-1、ルートコンプレックス102-1、メモリ103-1（上流B 104-1、入力装置109-1が含まれていてもよい）から構成される装置上に搭載され、VLAN ID設定サーバー2501がCPU101-2、ルートコンプレックス102-2、メモリ103-2（上流B 104-2、入力装置109-2が含まれていてもよい）から構成される装置上に搭載されていてもよい）から構成される装置上に搭載される形態も可能である。図３１に示すようにI/O機器データベースサーバー1901とVLAN ID設定サーバー2501は一つのサーバー3401に搭載されてもよく、そのサーバー3401は、図３２に示すようにいずれかのCPU、ルートコンプレックス、メモリ（上流B、入力装置が含まれていてもよい）から構成される装置上に搭載する形態も可能である。図３２では、サーバー3401が、CPU101-2、ルートコンプレックス102-2、メモリ103-2（上流B 104-2、入力装置109-2が含まれていても可）から構成される装置上に搭載する形態も可能である。
【０１２２】
第5の実施の形態を用いることで、各上流B および下流B がI/O機器情報テーブル、VLAN ID情報テーブル、VLAN ID設定回数カウンタを保持しないため、上流B および下流B の実装を容易にできる。
［6］ 第６の実施の形態
第６の実施の形態について説明する。第６の実施の形態は、VLAN IDの設定時にVLAN IDが複数の上流B 間で競合した場合、あるいはI/O機器に複数のCPUから所属要求があった場合の競合制御を行う部分を含む構成について述べる。第６の実施の形態の構成は第１、第２、第３、第４、第５の実施の形態のうちいずれかの形態と競合制御を行う部分以外は同様である。VLAN IDあるいはI/O機器要求の競合の競合制御を行う部分（競合制御部）が競合制御サーバーとして追加される。図３９は第６の実施の形態の全体のブロック図である。2601は競合制御サーバーを示す。
VLAN IDの設定、複数CPUからの同じI/O機器への所属要求があった場合に競合制御を行なう必要がある。本実施形態ではこの競合を競合制御を専門に行なう競合制御サーバー2601を設ける。以下にVLAN IDの設定時の競合制御、複数CPUから同じI/Oへの所属要求があった場合の競合制御の２つの場合の動作を説明する。
【０１２３】
１）VLAN IDの設定時の競合制御
VLAN IDを各上流BがMACアドレスから生成する場合（実施形態１−３）、２つ以上の上流Bが同じVLAN IDを生成することが生じる。上流BがMACアドレスからVLAN IDを生成後、互いに広告しあう。例えば図４１において上流B 104-1がMACアドレスからVLAN IDを生成し（ステップＳ150）、VLAN ID告知フレームをブロードキャストする（ステップＳ151）。
【０１２４】
広告フレーム（VLAN ID告知フレーム）を受信し自分と同じVLAN IDを広告している自分以外の上流Bがいた場合、競合制御サーバー2601に解決を依頼するために競合制御サーバー2601にアクセスする。図４１では上流B 104-2が広告フレームを受信し（ステップＳ152）、上流B 104-2のVLAN IDが上流B 104-1のVLAN IDと同じで競合することを認識（ステップＳ153）し、競合制御サーバー2601にアクセスする。上流B 104-１でも同様にVLAN IDが競合するので競合制御サーバー2601にアクセスする。
【０１２５】
競合制御サーバー2601は同じVLAN IDを名乗る上流B 104-1，104-2からのアクセスにより競合していることを認識し（ステップＳ154）、競合を解決し、競合している上流B 104-1，104-2に伝える。競合を解決する方法は、例えば、あらかじめ競合制御サーバー2601が確保しているVLAN IDが決まっており、上流BはそのVLAN IDを生成できないようにしておいて、競合の際にそのVLAN IDを設定し（ステップＳ155）、上流B 104-1，104-2の一方に送信することで競合を解決する。上流Bでは設定された競合をVLAN IDを受信し（ステップＳ156）、VLAN ID情報デーブルやVLAN ID設定部でVLAN IDを保持する（ステップＳ157）。解決する方法は他の方法をとってもよいことは勿論である。
【０１２６】
２）  複数CPUから同じI/O機器への所属要求があった場合の競合制御
複数のCPUから同じI/O機器へ所属要求があった場合も競合が生じる。図４２に示すように、複数のCPUよりI/O機器108-1に所属要求があって競合すると（ステップＳ160）、I/O機器108-1は競合制御サーバー2601にアクセスし競合制御を依頼（競合制御指示を通知）する(ステップＳ161)。競合制御サーバー2601は競合制御を依頼を受けると（競合制御指示を受信すると）（ステップＳ162）、競合を解決し、I/O機器とCPUに結果を通知する。競合の解決方法としては、第１の方法としては、１つのCPUを選択し、それ以外のCPUには使用させない、第２の方法としては１つのCPUにはそのI/O機器を割り当て、他のCPUには競合制御サーバーがシステム内のI/O情報のデータベースを持っており、要求するI/O機器と同じ（あるいは同等機能の）I/O機器を割り当てるなどがある。図４２では１つのCPUを選択してI/O機器108-1に通知し（ステップＳ163）、I/O機器108-1が選択されたCPU情報を受信して（ステップＳ164）、競合を解決する場合を示している。
【０１２７】
なお競合制御サーバー2601の配置は、各上流B、下流Bがアクセスできるネットワーク上のどこに配置しても構わない。また、競合制御サーバー2601は、図４０に示すように、いずれかのCPU、ルートコンプレックス、メモリ（上流B 、入力装置が含まれていてもよい）から構成される装置上に搭載する形態も可能である。図４０では、競合制御サーバー2601がCPU101-2、ルートコンプレックス102-2、メモリ103-2（上流B 104-2、入力装置109-2が含まれていてもよい）から構成される装置上に搭載される形態を示している。
【０１２８】
第６の実施の形態を用いることで、競合が生じた場合に早急に解決できる。
［7］ 第７の実施の形態
第7の実施の形態について説明する。I/O機器の種別は大きく分けると揮発性と不揮発性に分けることが可能である。揮発性のI/O機器は電源を落とすとデータが消え、不揮発性のI/O機器は電源を落としてもデータが消えないI/O機器である。例えば揮発性のI/O機器は、グラフィックアクセラレータカード、サウンドカード、各種処理エンジンを搭載したエンジンカードなどで外部出力端子が無いものあるいは外部入出力端子があった場合でも起動時・終了時に外部入出力端子への他の機器の脱着を行う場合には揮発性と見なすことができる。一方不揮発性のI/O機器は、ネットワークインターフェースカードなどの物理的配線の接続先が固定のものやストレージ用インターフェースカードなどの電源を切断してもデータが残る記憶装置が接続されているものなど、揮発性のI/O機器に属さないI/O機器が該当する。
【０１２９】
揮発性のI/O機器の場合は、どのCPUが使用しても問題が無いが、不揮発性のI/O機器を接続した場合には、I/O機器の割当てが変更された場合に自分のデータを他のCPUに勝手に書き換えられてしまう可能性がある。そこで不揮発性のI/O機器を接続する場合には、I/O機器の使用領域をCPUごとに設定する領域管理装置を新たに追加する。
【０１３０】
第7の実施の形態の第1の実施の形態から変更した場合の全体のブロック図の一例を図３３に示す。領域管理装置は、不揮発性のI/O機器と下流B 107の間に領域管理装置3601-3として配置する、あるいはネットワーク105上の一部に領域管理装置3601-2として配置する、あるいはCPU101-2、ルートコンプレックス102-2、メモリ103-2（上流B 104-2、入力装置109-2が含まれていてもよい）から構成される装置（CPU101-1、ルートコンプレックス102-1、メモリ103-1（上流B 104-1、入力装置109-1が含まれていてもよい）から構成される装置であってもよい）上に領域管理装置3601-1として配置することができる。あるいは領域管理装置は、I/O機器データベースサーバー1901上、あるいはVLAN ID設定サーバー2501上、あるいはサーバー3401上に配置する構成が考えられる。領域管理装置3601は、不揮発性のI/O機器の使用者情報を保持しており、使用者ごとに設定した領域にしか使用できないように制御する。
【０１３１】
第7の実施の形態を用いることにより、不揮発性のI/O機器108のデータを他の使用者によって破壊されることを防止できる。
【産業上の利用可能性】
【０１３２】
本発明は、複数CPU間でのI/O機器の共有設定を行う装置及び方法、特にネットワークを介して複数CPUと複数 I/O機器が接続されるI/O機器共有設定を行う装置および方法に用いることができる。
【図面の簡単な説明】
【０１３３】
【図１】本発明の全体構成を示すブロック図である。
【図２】本発明の第１の実施の形態の上流ＰＣＩエクスプレス−イーサネットブリッジの構成を示すブロック図である。
【図３】本発明の第１の実施の形態の下流ＰＣＩエクスプレス−イーサネットブリッジの構成を示すブロック図である。
【図４】本発明の第１の実施の形態のＶＬＡＮ  ＩＤ初期設定動作のフローチャートである。
【図５】本発明の第１の実施の形態のＶＬＡＮ  ＩＤ告知フレーム受信時およびＶＬＡＮ  ＩＤ告知フレーム送信後一定時間経過の動作のフローチャートである。
【図６】本発明の第１の実施の形態のＶＬＡＮ  ＩＤ確定フレーム受信時の動作のフローチャートである。
【図７】本発明の第１の実施の形態のＩ／Ｏ機器共有設定動作のフローチャートである。
【図８】本発明の第１の実施の形態の通常動作時の上流ＰＣＩエクスプレス−イーサネットブリッジと下流ＰＣＩエクスプレス−イーサネットブリッジの通信のフローチャートである。
【図９】本発明の第１の実施の形態の通常動作時の下流ＰＣＩエクスプレス−イーサネットブリッジと上流ＰＣＩエクスプレス−イーサネットブリッジの通信のフローチャートである。
【図１０】本発明の第２の実施の形態の上流ＰＣＩエクスプレス−イーサネットブリッジの構成を示すブロック図である。
【図１１】本発明の第２の実施の形態のＶＬＡＮ  ＩＤ告知フレーム受信時およびＶＬＡＮ  ＩＤ告知フレーム送信後一定時間経過の動作のフローチャートである。
【図１２】本発明の第２の実施の形態のＩ／Ｏ機器共有設定動作のフローチャートである。
【図１３】本発明の第１の実施の形態の上流ＰＣＩエクスプレス−イーサネットブリッジの保持するテーブルを示す図である。
【図１４】本発明の第１の実施の形態の下流ＰＣＩエクスプレス−イーサネットブリッジの保持するテーブルを示す図である。
【図１５】本発明の第２の実施の形態の上流ＰＣＩエクスプレス−イーサネットブリッジの保持するテーブルを示す図である。
【図１６】本発明の第３の実施の形態の全体構成を示すブロック図である。
【図１７】本発明の第３の実施の形態の上流ＰＣＩエクスプレス−イーサネットブリッジの構成を示すブロック図である。
【図１８】本発明の第３の実施の形態の下流ＰＣＩエクスプレス−イーサネットブリッジの構成を示すブロック図である。
【図１９】本発明の第３の実施の形態の上流ＰＣＩエクスプレス−イーサネットブリッジの構成を示すブロック図である。
【図２０】本発明の第３の実施の形態のＩ／Ｏ機器共有設定動作のフローチャートである。
【図２１】本発明の第３の実施の形態の全体構成を示すブロック図である。
【図２２】本発明の第４の実施の形態の全体構成を示すブロック図である。
【図２３】本発明の第４の実施の形態の上流ＰＣＩエクスプレス−イーサネットブリッジの構成を示すブロック図である。
【図２４】本発明の第４の実施の形態の上流ＰＣＩエクスプレス−イーサネットブリッジの構成を示すブロック図である。
【図２５】本発明の第４の実施の形態の全体構成を示すブロック図である。
【図２６】本発明の第５の実施の形態の全体構成を示すブロック図である。
【図２７】本発明の第５の実施の形態の上流ＰＣＩエクスプレス−イーサネットブリッジの構成を示すブロック図である。
【図２８】本発明の第５の実施の形態の下流ＰＣＩエクスプレス−イーサネットブリッジの構成を示すブロック図である。
【図２９】本発明の第５の実施の形態の上流ＰＣＩエクスプレス−イーサネットブリッジの構成を示すブロック図である。
【図３０】本発明の第５の実施の形態の全体構成を示すブロック図である。
【図３１】本発明の第５の実施の形態の全体構成を示すブロック図である。
【図３２】本発明の第５の実施の形態の全体構成を示すブロック図である。
【図３３】本発明の第７の実施の形態の全体構成を示すブロック図である。
【図３４】ＰＣＩエクスプレスの全体構成のブロック図である。
【図３５】ＡＳＩの全体構成のブロック図である。
【図３６】ＡＳＩのルーティング部のブロック図である。
【図３７】本発明の第４の実施の形態のVLAN ID設定シーケンスのフローチャートである。
【図３８】第４の実施の形態のVLAN ID設定サーバー2501のVLAN ID情報テーブルを示す図である。
【図３９】本発明の第６の実施の形態の全体構成のブロック図である。
【図４０】本発明の第６の実施の形態のVLAN IDの設定時の競合制御のフローチャートである。
【図４１】本発明の第６の実施の形態の、複数CPUから同じI/O機器への所属要求があった場合の競合制御のフローチャートである。
【図４２】本発明の第６の実施の形態の他の全体構成のブロック図である。
【符号の説明】
【０１３４】
101  CPU
102  ルートコンプレックス
103  メモリ
104  上流PCIエクスプレス・イーサーネットブリッジ
105  ネットワーク
106  イーサネットスイッチ
107  下流PCIエクスプレス・イーサーネットブリッジ
108  I/O機器
109  入力装置
201  TLP制御部
202  I/O機器共有制御部
203  I/O機器要求テーブル
204  I/O機器情報テーブル
205  VLAN ID設定部
206  VLAN ID情報テーブル
207  VLAN ID設定回数カウンタ
208  フィルタリング部
209  制御フレーム生成部
210  制御フレーム選別部
211  制御フレーム処理部
212  エラー通知部
213  カプセル化部
214  カプセル化テーブル
215  デカプセル化部
301  TLP制御部
302  I/O機器共有制御部
303  I/O機器情報取得部
304  I/O機器情報テーブル
305  VLAN ID設定部
306  VLAN ID情報テーブル
307  要求選択部
308  フィルタリング部
309  制御フレーム生成部
310  制御フレーム選別部
311  制御フレーム処理部
312  カプセル化部
313  カプセル化テーブル
314  デカプセル化部
1001  I/O機器選択部
1002  冗長I/O機器応答確認部
1003  冗長I/O機器同期修正部
1004  修正用バッファ
1601  PCIエクスプレススイッチ
1602  上流PCI-PCIブリッジ
1603  PCIエクスプレススイッチ内部バス
1604  下流PCI-PCIブリッジ
1701  ASIネットワーク
1702  ルートコンプレックス側PCIエクスプレス-ASIブリッジ
1703  ASIスイッチ
1704  ファブリックマネージャー
1705  I/O機器側PCIエクスプレス-ASIブリッジ
1901  I/O機器データベースサーバー
2501  VLAN ID設定サーバー
2601  競合制御サーバー
3401  サーバー
3601  領域管理装置
【図１】
2008078887.tif 000003
【図２】
2008078887.tif 000004
【図３】
2008078887.tif 000005
【図４】
2008078887.tif 000006
【図５】
2008078887.tif 000007
【図６】
2008078887.tif 000008
【図７】
2008078887.tif 000009
【図８】
2008078887.tif 000010
【図９】
2008078887.tif 000011
【図１０】
2008078887.tif 000012
【図１１】
2008078887.tif 000013
【図１２】
2008078887.tif 000014
【図１３】
2008078887.tif 000015
【図１４】
2008078887.tif 000016
【図１５】
2008078887.tif 000017
【図１６】
2008078887.tif 000018
【図１７】
2008078887.tif 000019
【図１８】
2008078887.tif 000020
【図１９】
2008078887.tif 000021
【図２０】
2008078887.tif 000022
【図２１】
2008078887.tif 000023
【図２２】
2008078887.tif 000024
【図２３】
2008078887.tif 000025
【図２４】
2008078887.tif 000026
【図２５】
2008078887.tif 000027
【図２６】
2008078887.tif 000028
【図２７】
2008078887.tif 000029
【図２８】
2008078887.tif 000030
【図２９】
2008078887.tif 000031
【図３０】
2008078887.tif 000032
【図３１】
2008078887.tif 000033
【図３２】
2008078887.tif 000034
【図３３】
2008078887.tif 000035
【図３４】
2008078887.tif 000036
【図３５】
2008078887.tif 000037
【図３６】
2008078887.tif 000038
【図３７】
2008078887.tif 000039
【図３８】
2008078887.tif 000040
【図３９】
2008078887.tif 000041
【図４０】
2008078887.tif 000042
【図４１】
2008078887.tif 000043
【図４２】
2008078887.tif 000044