(57)【特許請求の範囲】
【請求項１】
計算機と複数のデバイスに接続可能なスイッチ装置であって、
該計算機に接続される第１ブリッジと、
該複数のデバイスにそれぞれ接続される複数のブリッジを含む第２ブリッジ群と、
該第１ブリッジと該複数の第２ブリッジ群との接続関係を制御する制御部とを有し、該制御部は、
バス識別子の異なる物理識別子を該複数のデバイスにそれぞれ割り当て、
該計算機と該第１ブリッジが接続された場合に、該計算機から受信した該複数のデバイスの接続状態を読み取る命令に応じて該第１ブリッジに割り当てられたブリッジ識別子に基づいて、該複数のデバイスに論理識別子を割り当て、
該複数のデバイスにそれぞれ割り当てた該物理識別子と該論理識別子との対応関係に基づいて、該第１ブリッジと該第２ブリッジ群との間を伝播するパケットの物理識別子と論理識別子とを変換し、
該変換に際して、受信した該パケットから送信先識別子を抽出し、
該複数のデバイスにそれぞれ割り当てられた該物理識別子と該論理識別子との対応関係を示し該デバイスを該計算機に識別させる順番を決定する情報を有する変換テーブルに基づいて、抽出した該送信先識別子を変換する
ことを特徴とするスイッチ装置。
【請求項２】
該物理識別子、該論理識別子、該ブリッジ識別子、および該送信先識別子は、バスを識別するバス識別子とデバイスを識別するデバイス識別子を有し、
該論理識別子は、該バス識別子が同一で、該デバイス識別子が異なることを特徴とする、請求項１に記載のスイッチ装置。
【請求項３】
該制御部は、
該計算機に接続した際に第１ブリッジに割り振られたブリッジ識別子を取得し、
取得した該ブリッジ識別子およびあらかじめ設定されたデバイス識別子に基づいて、第２ブリッジ群に接続されたデバイスの論理識別子を決定することを特徴とする、請求項１に記載のスイッチ装置。
【請求項４】
該変換テーブルは、それぞれの該デバイスを該計算機に識別させるか否かを決定する情報を有することを特徴とする、請求項１に記載のスイッチ装置。
【請求項５】
計算機に接続される第１ブリッジと、複数のデバイスにそれぞれ接続される複数のブリッジを含む第２ブリッジ群とを有するスイッチ装置の制御方法であって、
バス識別子の異なる物理識別子を該複数のデバイスにそれぞれ割り当て、
該計算機と該第１ブリッジが接続された場合に、該計算機から受信した該複数のデバイスの接続状態を読み取る命令に応じて該第１ブリッジに割り当てられたブリッジ識別子に基づいて、該複数のデバイスに論理識別子を割り当て、
該複数のデバイスにそれぞれ割り当てた該物理識別子と該論理識別子との対応関係に基づいて、該第１ブリッジと該第２ブリッジ群との間を伝播するパケットの物理識別子と論理識別子とを変換し、
該変換に際して、受信した該パケットから送信先識別子を抽出し、
該複数のデバイスにそれぞれ割り当てられた該物理識別子と該論理識別子との対応関係を示し該デバイスを該計算機に識別させる順番を決定する情報を有する変換テーブルに基づいて、抽出した該送信先識別子を変換する
ことを特徴とするスイッチ装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、上流側装置と下流側装置を動的に接続するスイッチ装置に関する。
【背景技術】
【０００２】
計算機は機能を拡張するためのＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）バスを有する。標準的なＩ／Ｏとして、例えばＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バスやＰＣＩｅ（ＰＣＩ  Ｅｘｐｒｅｓｓ）バスがある。計算機は標準的なＩ／Ｏバスにより、計算機の動作中にＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）などのＰＣＩデバイスを接続することが出来る。計算機が動作中にＰＣＩデバイスを脱着することを活性挿抜という。
【０００３】
例えばＰＣＩバスに対応するＰＣＩデバイスを計算機に活性挿抜する場合、計算機は接続された各ＰＣＩデバイスに固有の識別番号を割り振る。識別番号はＰＣＩバスのバス構成を識別するバス番号と、各バスに接続されたデバイスを識別するデバイス番号を有する。計算機はバス番号とデバイス番号を有する識別番号により、各ＰＣＩデバイスの接続関係を認識する。
【０００４】
計算機は複数のＩ／Ｏスロットを有する。計算機はＩ／Ｏスロットを介してＰＣＩデバイスと接続する。計算機は１つのＩ／Ｏスロットに複数のＰＣＩデバイスを接続する場合がある。計算機はあらかじめ各Ｉ／Ｏスロットに設定可能な識別番号の範囲を設定する。各Ｉ／Ｏスロットに設定することのできる識別番号のうち、バス番号の範囲は有限である。Ｉ／Ｏスロットに設定された識別番号のうち、未使用のバス番号がある場合、計算機は新たにＩ／Ｏスロットに接続されたＰＣＩデバイスを認識する。
【０００５】
１つのＩ／Ｏスロットに複数のＰＣＩデバイスを接続する技術としてスイッチ装置がある。スイッチ装置は１つの上流ブリッジと複数の下流ブリッジを有する。上流ブリッジは計算機のＩ／Ｏスロットに接続される。下流ブリッジはそれぞれ、別個のＰＣＩデバイスに接続される。スイッチ装置は上流ブリッジと下流ブリッジとの接続を切り換えることにより複数のＰＣＩデバイスを１つのＩ／Ｏスロットに接続する。計算機は各下流ブリッジに接続されたＰＣＩデバイスに対し、別個のバス番号を有する識別番号を割り当てる。以下の文献には複数のＰＣＩデバイスを計算機に接続するための技術が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−２２６６５３号公報
【特許文献２】特開２００９−１６９８４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
活性挿抜により複数のデバイスが接続されたスイッチ装置を計算機に接続する場合、接続されるデバイスの数が、計算機のＩ／Ｏスロットに割り振られた識別番号の範囲を超える場合がある。計算機は割り振られた識別番号の範囲を超えたデバイスを認識することができない。
【０００８】
本発明の一実施例では、計算機の各スロットに割り振られた識別番号の範囲を超える数のデバイスを接続可能なスイッチ装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するため、計算機と複数のデバイスに接続可能なスイッチ装置は、該計算機に接続される第１ブリッジと、該複数のデバイスにそれぞれ接続される複数のブリッジを含む第２ブリッジ群と、該第１ブリッジと該複数の第２ブリッジ群との接続関係を制御する制御部とを有し、該制御部は、バス識別子の異なる物理識別子を該複数のデバイスにそれぞれ割り当て、該計算機と該第１ブリッジが接続された場合に、該計算機から受信した該複数のデバイスの接続状態を読み取る命令に応じて該第１ブリッジに割り当てられた識別子に基づいて、該複数のデバイスに論理識別子を割り当て、該複数のデバイスにそれぞれ割り当てた該物理識別子と該論理識別子との対応関係に基づいて、該第１ブリッジと該第２ブリッジ群との間を伝播するパケットの物理識別子と論理識別子とを変換する。
【発明の効果】
【００１０】
実施形態によれば、計算機の各スロットに割り振られた識別番号の範囲を超える数のデバイスを接続可能なスイッチ装置を提供することが出来る。
【図面の簡単な説明】
【００１１】
【図１】スイッチ装置を含むシステムのブロック図である。
【図２】スイッチ装置の詳細ブロック図である。
【図３】データ転送に用いられるパケットのフォーマット図である。
【図４】記憶部が記憶するコンフィグテーブルのテーブル図である。
【図５】物理識別番号と論理識別番号との対応関係を示すブロック図である。
【図６】変換テーブルのテーブル図である。
【図７】計算機接続前のスイッチ装置の構成情報取得動作フロー図である。
【図８】計算機接続した場合のスイッチ装置の初期設定動作フロー図である。
【図９】計算機接続後のスイッチ装置の変換動作フロー図である。
【図１０】デバイスの識別順序を変えた場合のアドレス範囲削減効果を示す図である。
【発明を実施するための形態】
【００１２】
以下、本実施の形態について説明する。なお、各実施形態における構成の組み合わせも本発明の実施形態に含まれる。
【００１３】
図１はスイッチ装置１９を含むシステムのブロック図である。スイッチ装置１９は計算機１０に接続されている。計算機１０はＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１、メモリ１３、ＲＣ（Ｒｏｕｔｅ  Ｃｏｍｐｌｅｘ）１４、ＰＣＩＳＷ（ＰＣＩｅ  Ｓｗｉｔｃｈ）１５、ＳＬＯＴ１６、１７、１８を有する。ＳＬＯＴ１６には、ＰＣＩｅデバイスであるデバイス１が接続されている。
【００１４】
スイッチ装置１９の上流側は、計算機１０におけるＳＬＯＴ１７に接続されている。スイッチ装置１９の下流側は、ＰＣＩｅデバイスであるデバイス２、３、４に接続されている。デバイス２、３、４はスイッチ装置１９を介して計算機１０に接続される。本実施例において、スイッチ装置１９から見てＲＣ１４側をデータの上流と呼ぶ。また、スイッチ装置１９から見てデバイス２、３、４側をデータの下流と呼ぶ。
【００１５】
計算機１０において、ＣＰＵ１１はＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を実行することにより、計算機１０に接続されたデバイス１、２、３、４の動作を管理する。ＣＰＵ１１はＲＣ１４の動作を制御する。ＣＰＵ１１は各ＳＬＯＴ１６、１７、１８に割り当てる識別番号の範囲をメモリ１３に記憶させる。なお本実施例において識別番号は数字であるが、文字列を含む識別子であってもよい。またバス番号およびデバイス番号は、文字列を含むバス識別子およびデバイス識別子であってもよい。
【００１６】
メモリ１３はＣＰＵ１１の要求に応じて、各ＳＬＯＴ１６、１７、１８に割り当て可能な識別番号を記憶する。またメモリ１３はＳＬＯＴ１６、１７、１８に接続済みのデバイスの識別番号を記憶する。メモリ１３はＳＬＯＴ１６、１７、１８に割当可能な識別番号にそれぞれ対応する、デバイスのアドレス範囲を記憶する。
【００１７】
ＲＣ１４は計算機１０を制御するＯＳの要求に応じて、下流に接続されたＰＣＩツリー構造全体を初期化する。ＲＣ１４はＰＣＩｅバスに対応するデバイス間のＰＣＩツリー構造をバススキャンにより認識する。バススキャンはＰＣＩツリー構造を分析するためにＲＣ１４により実行される処理である。ＲＣ１４はバススキャンにより認識したデバイス間のＰＣＩツリー構造をメモリ１３に記憶させる。ＲＣ１４はチップセットに実装しても良い。バススキャン命令はＲＣ１４以外のデバイスからも発行させることが出来る。
【００１８】
ＰＣＩＳＷ１５は入力されたデータの出力先をＲＣ１４、ＳＬＯＴ１６、１７、１８のいずれかに切り換える。
【００１９】
本実施例においてデバイス１、２、３、４はＰＣＩｅに対応する周辺装置である。デバイス１はＳＬＯＴ１６に電気的に接続される。デバイス２、３、４はスイッチ装置１９を介してＳＬＯＴ１７に電気的に接続される。
【００２０】
スイッチ装置１９はＰＣＩｅに対応する複数のデバイス２、３、４と計算機１０との接続関係を識別番号に応じて切り換える。本実施例においてスイッチ装置１９とデバイス２、３、４はそれぞれ異なるシリアルバスで接続されている。本実施例においてスイッチ装置１９は、ＳＬＯＴ１７に割り当てられた識別番号の範囲を超える数のデバイスが下流側に接続された場合でも、計算機１０に対し各デバイスを正常に接続することが出来る。スイッチ装置１９による接続処理の詳細は後述する。
【００２１】
図２はスイッチ装置１９の詳細ブロック図である。スイッチ装置１９は上流ブリッジ２０、制御部２１、下流ブリッジ２２、２３、２４、スイッチ２５を有する。
【００２２】
上流ブリッジ２０は上流側バスと下流側バスとの間のパケット転送を行う。ＰＣＩｅにおいて、データはパケット形式で転送される。上流ブリッジ２０はパケットに含まれる情報に基づいて、パケットを転送するか否かを決定する。上流ブリッジ２０はブリッジ制御部２８、コンフィグ処理部２９、記憶部３０を有する。パケット転送におけるパケットの構造を以下に説明する。
【００２３】
図３はデータ転送に用いられるパケット４０のフォーマット図である。パケット４０はヘッダ４１、データ４２を有する。ヘッダ４１はパケット４０の転送方法を示すルーティング情報や、パケット４０の送付先であるデバイスの識別情報あるいはアドレス情報、送信先のデバイスに対する命令情報を有する。データ４２は送信先のデバイスに対する送信元デバイスでの演算処理結果などを有する。図２の説明に戻る。
【００２４】
図２においてブリッジ制御部２８は、記憶部３０に記憶された情報に従って上流ブリッジ２０の上流側バスと下流側バスとの間のパケット転送を制御する。ブリッジ制御部２８が受信するパケットは、ルーティング情報を有する。ブリッジ制御部２８はルーティング情報に基づき、そのパケットが他のデバイスに転送すべきパケットか自分宛に送信されたパケットかを判別する。
【００２５】
ブリッジ制御部２８はルーティング情報に基づき、受信したパケットが転送すべきパケットと判別した場合、パケットに含まれるデバイスの識別情報またはアドレス情報と、記憶部３０に記憶された構成情報とを比較する。ブリッジ制御部２８は比較結果に基づいて受信したパケットを下流側デバイスに送信すべきか否かを決定する。
【００２６】
ブリッジ制御部２８はルーティング情報に基づき、受信したパケットが自分宛のコンフィグレーションパケットと判別した場合、受信したパケットをコンフィグ処理部２９に転送する。
【００２７】
コンフィグ処理部２９は転送されたパケットに含まれるコンフィグレーション情報に基づき、記憶部３０への書き込みまたは記憶部３０からの情報の読み込みなどを行う。
【００２８】
記憶部３０はコンフィグテーブルを記憶する。コンフィグテーブルは計算機１０のＯＳやＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）からコンフィグレーション空間として参照または設定されるパケット転送制御のための制御情報を有する。ＢＩＯＳは計算機１０に接続されたハードウェアとの、最も低レベルの入出力を行うためのプログラムである。またコンフィグテーブルは上流ブリッジ２０の下流側バスにおける構成情報を有する。記憶部３０は構成情報として、下流側バスに接続されたデバイスのメモリアドレスの範囲を示すメモリアドレス情報、識別番号の範囲を示す識別番号範囲情報を記憶する。
【００２９】
図４は記憶部３０が記憶するコンフィグテーブル７０のテーブル図である。前述の通りコンフィグテーブル７０は制御情報７１、メモリアドレス範囲情報７２、識別番号範囲情報７３を有する。
【００３０】
ブリッジ制御部２８は記憶部３０に記憶したコンフィグテーブル７０をパケット転送制御に用いる。例えばアドレスルーティングとしてメモリライト等の命令を有するパケットを受信した場合、ブリッジ制御部２８は記憶部３０のメモリアドレス範囲情報７２を参照する。受信した宛先アドレスが記憶部３０に記憶したメモリアドレス範囲内にあれば、ブリッジ制御部２８は受信したパケットを下流側デバイスに送信する。また受信したパケットの命令が識別番号を指定したルーティングの場合、ブリッジ制御部２８は記憶部３０の識別番号範囲情報７３を参照する。受信した識別番号が記憶部３０に記憶した識別番号の範囲内にあれば、ブリッジ制御部２８は受信したパケットを下流側デバイスに送信する。なおブリッジ制御部２８は、下流側バスから受信したパケットは上流側バスへ転送する。
【００３１】
図２の説明に戻る。スイッチ２５はパケット毎に異なるバス間の接続関係を切り換える。スイッチ２５によってバス間の接続関係を切り換えることにより、パケット４０をヘッダ４１で示される宛先に転送することができる。
【００３２】
下流ブリッジ２２、２３、２４は上流側デバイスと下流側デバイスとの間のパケット転送を行う。ＰＣＩｅにおいて、データはパケット形式で転送される。下流ブリッジ２２、２３、２４はパケットに含まれるデバイスの識別情報に基づいて、パケットを転送するか否かを決定する。下流ブリッジ２２、２３、２４の構成および機能は上流ブリッジ２０と同じであるので、その説明を省略する。
【００３３】
デバイス２、３、４はそれぞれ下流ブリッジ２２、２３、２４に接続されたＰＣＩｅ規格に対応するデバイスである。各デバイス２、３、４はそれぞれ、後述する管理ブリッジ２７により割り当てられた別個の物理識別番号を有する。物理識別番号は管理ブリッジ２７が実行するバススキャンにより割り当てられる識別番号である。物理識別番号は管理ブリッジ２７よりも下流のデバイス間でのみ有効である。なお、デバイス２、３、４は下流ブリッジ２２、２３、２４をそれぞれ含んでも良い。また、デバイス２、３、４の代わりに別のスイッチ装置を接続することにより、さらに多くのデバイスを接続することが出来る。
【００３４】
デバイス２、３、４はそれぞれの動作に必要なメモリサイズ情報を有する。デバイス２、３、４は管理ブリッジ２７からのバススキャンに対してメモリサイズ情報を管理ブリッジ２７に通知する。管理ブリッジ２７はデバイス２、３、４から通知されたメモリサイズ情報に基づき、デバイス２、３、４の動作に必要なメモリサイズに応じたメモリのアドレス範囲情報を記憶部に書き込む。
【００３５】
制御部２１は上流ブリッジ２０と複数の下流ブリッジ２２、２３、２４との接続関係を制御する。制御部２１はあらかじめ生成した変換テーブルに基づいて、受信したパケットに記載された各デバイスの論理識別番号と物理識別番号とを相互に変換する。論理識別番号は管理ブリッジ２７よりも下流に接続されたデバイスを上流側のＲＣ１４に識別させるために割り当てた仮想の識別番号である。物理識別番号は後述する管理ブリッジ２７により各デバイスに割り当てられる識別番号である。
【００３６】
制御部２１は変換部２６、管理ブリッジ２７を有する。変換部２６はブリッジ制御部２８が受信したパケットのコンフィグレーション情報に含まれる識別情報およびアドレス範囲情報を他の識別情報およびアドレス範囲情報に変換する。変換部２６はパケット変換部３１、記憶部３２を有する。パケット変換部３１は記憶部３２に記憶された変換テーブルに基づいて、上流ブリッジ２０がスイッチ２５に送信、またはスイッチ２５から上流ブリッジ２０が受信したパケットのヘッダ４１に含まれる識別情報および宛先アドレス情報を後述する方法により変換する。記憶部３２はパケット変換部３１により参照される変換テーブルを記憶する。
【００３７】
管理ブリッジ２７は下流側バスに接続されたデバイス間のリンク構造をバススキャンにより認識する。管理ブリッジ２７はバススキャンにより認識したデバイス間のリンク構造を記憶部３２に記憶させる。管理ブリッジ２７はブリッジ制御部３３、コンフィグ処理部３４を有する。ブリッジ制御部３３は下流側バスに接続されたデバイスに対し、バススキャンを実行する。管理ブリッジ２７はバススキャンにより、下流側バスに接続されたブリッジ２２、２３、２４およびデバイス２、３、４に識別番号を割り当てる。管理ブリッジ２７はバススキャンにより取得した下流側バスのリンク情報を記憶部３２に記憶させる。リンク情報にはデバイス２、３、４の物理識別番号および動作に必要なメモリサイズ情報が含まれる。
【００３８】
ブリッジ制御部３３は上流ブリッジ２０に要求信号を出力し、上流ブリッジ２０に割り当てられた管理番号を取得する。ブリッジ制御部３３は取得した上流ブリッジ２０の識別番号を記憶部３２に書き込む。
【００３９】
ブリッジ制御部３３は上流ブリッジ２０から受信したパケットのヘッダ４１に基づき、受信したパケットがコンフィグレーション情報を有するパケットと判別した場合、受信したパケットをコンフィグ処理部３４に転送する。
【００４０】
コンフィグ処理部３４は転送されたパケットに含まれるコンフィグレーション情報の内容に従って、記憶部３２への書き込みを行う。コンフィグ処理部３４は記憶部３２に記憶された上流ブリッジ２０、デバイス２、３、４の識別番号およびアドレス範囲情報に基づいて変換テーブルを生成する。変換テーブルの生成手順についての詳細は後述する。
【００４１】
以上の通りスイッチ装置１９は制御部２１により下流側バスのリンク構造を解析し生成した変換テーブルを用いることにより、上流側の計算機のＩ／Ｏスロットに割り振られた識別番号の範囲を超える数のＰＣＩデバイスを接続することが出来る。
【００４２】
図５はシステム上の各デバイスにおける論理識別番号と物理識別番号との対応関係を例示するブロック図である。図５のブロック図において、図１および図２と同一部材には同一番号を付し、その説明を省略する。なお論理識別番号と物理識別番号との対応関係は図５に限定されない。
【００４３】
図５の計算機において、各デバイスの右側に書いてある番号は各デバイスの識別番号である。識別番号は３つの数字で定義される。識別番号における左端の数字はバス番号である。バススキャンの実行元は、異なるバス配線に接続されたそれぞれのデバイスに対し、異なるバス番号を有する識別番号を割り当てる。識別番号における中央の数字はデバイス番号である。バススキャンの実行元は、同一バス配線に接続されたそれぞれのデバイスに対し、異なるデバイス番号を割り当てる。識別番号における右端の数字はファンクション番号である。バススキャンの実行元は、同一デバイスに実装されたそれぞれの機能ブロックに対し、異なるファンクション番号を割り当てる。なお本実施例においてバススキャンの実行元は、ＲＣ１４または管理ブリッジ２７である。
【００４４】
図５に示す識別番号は、ＲＣ１４によるバススキャンの実行結果に基づいて、各デバイスに割り当てられる。バススキャンの実行元であるＲＣ１４はネットワークの最も上流に位置するため、ＲＣ１４の識別番号は（０．０．０）となる。本実施例においてＰＣＩＳＷ１５は１つの上流ブリッジと３つの下流ブリッジを有する。ＲＣ１４は各ブリッジにはそれぞれ異なる識別番号を割り当てる。ＰＣＩＳＷ１５において、ＲＣ１４側に接続された上流ブリッジには識別番号（１．０．０）が割り当てられる。ＰＣＩＳＷ１５の各下流ブリッジにはそれぞれ識別番号（２．０．０）、（２．１．０）、（２．２．０）が割り当てられる。
【００４５】
ＲＣ１４は、ＰＣＩＳＷ１５の各下流ブリッジに接続されたＳＬＯＴ１６、１７、１８にそれぞれ複数のデバイスが接続されることを想定し、一定の範囲の識別番号を割り当てる。本実施例においてＲＣ１４は、ＳＬＯＴ１６に識別番号（３．０．０）〜（７．０．０）を、ＳＬＯＴ１７に識別番号（８．０．０）〜（１１．０．０）を、ＳＬＯＴ１８に識別番号（１２．０．０）〜（１５．０．０）を割り当てる。ＲＣ１４は各ＳＬＯＴに接続されるデバイスに対し、各ＳＬＯＴに割り当てられた識別番号を小さい順に割り当てる。従ってＲＣ１４は、識別番号（３．０．０）〜（７．０．０）が割り当てられたＳＬＯＴ１６に接続されたデバイス１に対し、識別番号（３．０．０）を割り当てる。またＲＣ１４は、識別番号（８．０．０）〜（１１．０．０）が割り当てられたＳＬＯＴ１７に接続されたスイッチ装置１９の上流ブリッジ２０に対し、識別番号（８．０．０）を割り当てる。
【００４６】
スイッチ装置１９およびスイッチ装置１９の下流に接続されたデバイス２、３、４について、各デバイスは２つの識別番号を有する。各ブロック図の上段に示す番号は論理識別番号であり、下段に示す番号は物理識別番号である。
【００４７】
スイッチ装置１９を計算機１０に接続していない状態において、管理ブリッジ２７は下流のデバイスに対してバススキャンを実行する。物理識別番号は、バススキャンの実行結果に基づき、各デバイスに割り当てられる識別番号である。バススキャンの実行元である管理ブリッジ２７の物理識別番号は（０．０．０）となる。
【００４８】
下流ブリッジ２２、２３、２４は同一のスイッチ２５に接続されている。管理ブリッジ２７はスイッチ２５に接続された下流ブリッジ２２、２３、２４に対し、バス番号が同じでデバイス番号の異なる物理識別番号（１．０．０）、（１．１．０）、（１．２．０）を割り当てる。下流ブリッジ２２、２３、２４とデバイス２、３、４とはそれぞれ異なるバス配線で接続されている。管理ブリッジ２７はそれぞれの下流ブリッジ２２、２３、２４に接続されるデバイス２、３、４に対し、バス番号の異なる物理識別番号（２．０．０）、（３．０．０）、（４．０．０）を割り当てる。
【００４９】
管理ブリッジ２７は、バススキャンに基づき各デバイスに割り振った物理識別番号を変換部２６の記憶部３２に書き込む。また管理ブリッジ２７はバススキャンに基づきデバイス２、３、４の動作にそれぞれ必要な物理メモリアドレス範囲を取得する。管理ブリッジ２７は取得した物理メモリアドレス範囲を記憶部３２に書き込む。管理ブリッジ２７が記憶部３２に書き込む情報の詳細を図６に基づいて以下に説明する。
【００５０】
図６は、管理ブリッジ２７のバススキャンの実行により取得した情報に基づいて作成した変換テーブル５０である。列５１は管理ブリッジ２７のバススキャンにより取得された下流側の各デバイスの物理識別番号である。列５２は各物理識別番号に対応するデバイスの種別である。列５３は各デバイスの動作に必要な物理メモリアドレス範囲である。
【００５１】
図６の列５４は、計算機１０のＲＣ１４からバススキャンした場合に、変換部２６により変換されるデバイス番号を示す。デバイス番号“−１”が割り当てられたデバイスはＲＣ１４のバススキャンに対し無視される。よって本実施例において、下流ブリッジ２２、２３、２４は無視される。また本実施例において、デバイス２は計算機１０により使用されないため、デバイス番号“−１”を割り当てる。使用されないデバイスにデバイス番号“−１”を割り当てることにより、ＲＣ１４からのバススキャンに対しデバイス２を無視させることが出来る。下流ブリッジや上流装置に不要なデバイスがバススキャンに対して無視されるように設定することにより、ＲＣ１４がバススキャンした場合にスイッチ装置１９に割り振るべき識別番号のリソースを必要最小限に削減することが出来る。デバイス番号はユーザにより編集可能としても良い。また管理ブリッジ２７により、列５２の種別が下流ブリッジの場合に自動的に列５４のデバイス番号が“−１”となるように処理しても良い。
【００５２】
また列５４のデバイス番号は、ＲＣ１４からのバススキャンに対しデバイスが認識される順番を示す。変換部２６はデバイス番号“０”から順にＲＣ１４からのバススキャンに対し各デバイスを認識させる。列５３に示す通り、各デバイスの動作に必要なメモリサイズは異なる。よってＲＣ１４のバススキャンに対し識別させるデバイスの順序を変えることにより、計算機１０に確保すべきアドレス空間の大きさを最適化することが出来る。ここで計算機１０のアドレス空間は、計算機１０のＣＰＵ１１が制御可能なメモリ空間のうち、デバイスの制御に割り当てられるアドレスの範囲を示す。デバイスの識別順序の変更によるアドレス空間の大きさの最適化については後述する。
【００５３】
列６１は、上流装置である計算機１０からのバススキャンに対して応答する、各デバイスの論理識別番号である。管理ブリッジ２７は計算機１０からのバススキャンを監視する。各デバイスの論理識別番号は、スイッチ装置１９を計算機１０に接続した場合に、計算機１０のバススキャンにより上流ブリッジ２０に割り当てられる論理識別番号および列５４のデバイス番号に基づいて決定される。本実施例において、計算機１０と上流ブリッジ２０が接続された後、計算機１０から受信したバススキャン命令に応じ、上流ブリッジ２０に識別番号（８．０．０）が割り当てられる。管理ブリッジ２７は上流ブリッジ２０に割り当てられた識別番号（８．０．０）および列５４に示すデバイス番号に基づいて、列６１に示すとおり、デバイス３、４に同じバス番号を有する論理識別番号（９．１．０）、（９．０．０）をそれぞれ割り当てる。管理ブリッジ２７は割り当てた各デバイスの論理識別番号を変換テーブル５０に書き込む。バス番号を同じにすることにより、スイッチ装置１９はＳＬＯＴ１７に割り当てられたバス番号のリソースを有効活用することが出来る。
【００５４】
列６２は計算機１０のバススキャンに対して応答する各デバイスの論理メモリアドレス範囲である。各デバイスの論理メモリアドレス範囲は、スイッチ装置１９を計算機１０に接続した場合に、計算機１０のバススキャンにより各デバイスに割り当てられる論理識別番号に基づいて決定される。前述の通り計算機１０のアドレス空間には、各識別番号に対応した固定長のメモリアドレス範囲が割り当てられている。例えばデバイス３に論理識別番号（９．１．０）が割り当てられると、その論理識別番号に対応する計算機１０のアドレス空間の先頭アドレスが決定する。管理ブリッジ２７は決定した計算機１０のアドレス空間の先頭アドレスを、計算機１０からのバススキャン時にコンフィグレーション情報として取得する。管理ブリッジ２７は取得した先頭アドレスを基準として、列５３の物理メモリアドレス範囲に対応する論理メモリアドレス範囲を決定する。例えば論理識別番号（９．１．０）、（９．０．０）に対応する計算機１０のアドレス空間の先頭アドレスがそれぞれ“０ｘＥ８００００００”、“０ｘＥ０００００００”である場合、デバイス３、４の論理メモリアドレス範囲はそれぞれ列６２に示すとおり、“０ｘＥ８００００００〜０ｘＥ８ＦＦＦＦＦＦ”、“０ｘＥ０００００００〜０ｘＥ７ＦＦＦＦＦＦ”となる。管理ブリッジ２７は割り当てられた論理メモリアドレス範囲を変換テーブル５０に書き込む。
【００５５】
行５５から行６０は各デバイス固有の情報である。例えば行５５を参照すると、列５２により、物理識別番号（１．０．０）が割り当てられたデバイスは下流ブリッジ２２であることがわかる。列５３により、下流ブリッジ２２の動作に必要な物理メモリアドレス範囲は存在しないことがわかる。列５４により、下流ブリッジ２２はＲＣ１４からのバススキャンに対し無視されることが分かる。
【００５６】
また、行６０を参照すると、列５２により、物理識別番号（４．０．０）が割り当てられたデバイスはデバイス４であることがわかる。列５３により、デバイス４の動作に必要な物理メモリアドレス範囲は“０ｘ４８００００００〜０ｘ４ＦＦＦＦＦＦＦ”であることがわかる。列５４により、デバイス４はＲＣ１４からのバススキャンに対し最初にデバイス番号を割り当てられることが分かる。列６１により、ＲＣ１４はデバイス４を論理識別番号（９．０．０）で識別することが分かる。列６２により、ＲＣ１４はデバイス４の動作に必要なメモリアドレス範囲として、メモリ１３に論理メモリアドレス範囲“０ｘＥ０００００００〜０ｘＥ７ＦＦＦＦＦＦ”を割り当てることが分かる。
【００５７】
図５の説明に戻る。スイッチ装置１９が計算機１０に接続されると、ＲＣ１４はスイッチ装置１９を含めた装置全体に対しバススキャンを実行する。ＳＬＯＴ１７にはスイッチ装置１９のみが接続されている。前述の通りＲＣ１４は、ＳＬＯＴ１７に識別番号（８．０．０）〜（１１．０．０）を割り当てている。よってＲＣ１４はＳＬＯＴ１７に接続されたスイッチ装置１９の上流ブリッジ２０に対し、識別番号（８．０．０）を割り当てる。図５において、上流ブリッジ２０に記載された識別番号（８．０．０）が、上流ブリッジ２０の論理識別番号である。
【００５８】
管理ブリッジ２７は上流ブリッジ２０に割り当てられた識別番号（８．０．０）を取得する。管理ブリッジ２７は取得した上流ブリッジ２０の論理識別番号に基づいて、デバイス３、４にそれぞれ論理識別番号（９．１．０）、（９．０．０）を割り当てる。管理ブリッジは割り当てたデバイス３、４の論理識別番号を変換部２６の変換テーブル５０に書き込む。図５において、デバイス３、４の上段に記載された識別番号は各デバイス３、４の論理識別番号である。図５に示すとおり、論理識別番号は管理ブリッジ２７、下流ブリッジ２２、２３、２４、およびデバイス２には割り当てられない。つまりＲＣ１４は、変換部２６により、上流ブリッジ２０以下の下流において、論理識別番号（９．１．０）、（９．０．０）が割り当てられたデバイス３、４のみを認識することが出来る。
【００５９】
スイッチ装置１９を用いた計算機１０とデバイス３とのやり取りを以下に示す。計算機１０はデバイス３に命令を送信する場合、論理識別番号（９．１．０）を指定してパケットを送信する。上流ブリッジ２０は受信したパケットを変換部２６に送信する。パケットを受信した変換部２６は、パケットのヘッダから論理識別番号（９．１．０）を取得する。変換部２６は変換テーブル５０に基づいて、取得した論理識別番号（９．１．０）から物理識別番号（３．０．０）を参照する。変換部２６はパケットの論理識別番号を参照した物理識別番号に書き換える。変換部２６は書き換えたパケットを上流ブリッジ２０に送信する。上流ブリッジ２０から送信された書き換え後のパケットは、その物理識別番号に従ってデバイス３に到達する。
【００６０】
また計算機１０はアドレスルーティングによりデバイス３にメモリリード等の命令を送信する場合、論理メモリアドレス範囲“０ｘＥ８００００００〜０ｘＥ８ＦＦＦＦＦＦ”を指定してパケットを送信する。アドレスルーティングとは各デバイスに割り当てられたメモリアドレスに基づいてパケットの送信先をルーティングすることである。上流ブリッジ２０は受信したパケットを変換部２６に送信する。パケットを受信した変換部２６は、パケットのヘッダから論理メモリアドレス範囲“０ｘＥ８００００００〜０ｘＥ８ＦＦＦＦＦＦ”を取得する。変換部２６は変換テーブル５０に基づいて、取得した論理メモリアドレス範囲“０ｘＥ８００００００〜０ｘＥ８ＦＦＦＦＦＦ”から物理メモリアドレス範囲“０ｘ４１００００００〜０ｘ４１ＦＦＦＦＦＦ”を参照する。変換部２６はパケットの論理メモリアドレス範囲を参照した物理メモリアドレス範囲に書き換える。変換部２６は書き換えたパケットを上流ブリッジ２０に送信する。上流ブリッジ２０から送信された書き換え後のパケットは、その物理メモリアドレス範囲に従ってデバイス３に到達する。
【００６１】
次に計算機１０から送信された命令に対してデバイス３が応答する場合について説明する。デバイス３は自身の物理識別番号（３．０．０）が記述されたヘッダを有するパケットを計算機１０に送信する。パケットを受信した変換部２６は、パケットのヘッダから物理識別番号（３．０．０）を取得する。変換部２６は変換テーブル５０に基づいて、取得した物理識別番号（３．０．０）から論理識別番号（９．１．０）を参照する。変換部２６は参照した論理識別番号に基づいて、パケットの物理識別番号を書き換える。書き換えられたパケットは計算機１０のＲＣ１４に到達する。ＲＣ１４はパケットの論理識別番号（９．１．０）を参照し、そのパケットがデバイス３から送信されたものであると認識することが出来る。
【００６２】
以上の通りスイッチ装置１９は変換部２６により計算機１０に対し下流デバイスを必要最小限の識別番号で識別させることができる。またスイッチ装置１９は変換部２６により、計算機１０と下流デバイスとの間のパケット通信を正確に中継することが出来る。
【００６３】
図７は計算機１０に接続する前のスイッチ装置１９の物理情報取得動作フロー図である。図７はスイッチ装置１９に電源が投入され、計算機１０に論理的に接続されていない状態での動作フローを示す。計算機１０にスイッチ装置１９を論理的に接続するとは、計算機１０がスイッチ装置１９を検出することを言う。スイッチ装置１９に電源が投入されると、管理ブリッジ２７は下流側デバイスに対しバススキャンを実行する（Ｓ１１）。管理ブリッジ２７は下流側デバイスである下流ブリッジ２２、２３、２４、デバイス２、３、４の物理情報である、物理識別番号および物理メモリアドレス範囲を取得する（Ｓ１２）。管理ブリッジ２７は取得した物理情報に基づいて変換テーブル５０を生成する（Ｓ１３）。管理ブリッジ２７は変換テーブル５０に対し、計算機１０が検出不要とするデバイスおよび計算機１０が検出する順番に関するデバイス番号を追加する。管理ブリッジ２７は生成した変換テーブル５０を記憶部３２に書き込む。
【００６４】
以上の通りスイッチ装置１９はバススキャン機能を有する管理ブリッジ２７を有することにより、計算機１０に接続していない状態でスイッチ装置１９の物理情報を取得することが出来る。
【００６５】
図８はスイッチ装置１９を計算機１０に接続した場合の、計算機１０およびスイッチ装置１９の動作フロー図である。計算機１０にスイッチ装置１９が論理的に接続されると、計算機１０のＲＣ１４はスイッチ装置１９を検出する（Ｓ２１）。ＲＣ１４はバススキャンを行い、検出したスイッチ装置１９の上流ブリッジ２０に対し、識別番号（８．０．０）を割り当てる（Ｓ２２）。
【００６６】
スイッチ装置１９における管理ブリッジ２７は、上流ブリッジ２０に識別番号（８．０．０）が割り当てられたのを検出すると、検出した上流ブリッジ２０の物理識別番号に基づいて変換テーブル５０を更新する（Ｓ２３）。本実施例において管理ブリッジ２７は、検出した識別番号（８．０．０）およびデバイス番号に基づいて、デバイス３、４の論理識別番号としてそれぞれ（９．１．０）、（９．０．０）を割り当てる。管理ブリッジ２７は割り当てた論理識別番号を変換テーブル５０に書き込む。
【００６７】
変換テーブル５０において論理識別番号が書き込まれた後、管理ブリッジ２７は変換部２６の識別番号変換処理を有効にする（Ｓ２４）。変換部２６は記憶部３２に記憶された変換テーブル５０に基づいて、受信したパケットの識別番号を変換し、変換後のパケットを送信する。
【００６８】
ＲＣ１４はＯＳを実行するＣＰＵ１１からの命令により、スイッチ装置１９を含む装置全体に対するバススキャンを継続する（Ｓ２５）。変換部２６は受信したバススキャンの論理識別番号を各デバイスの物理識別番号に変換する。変換部２６から送信された変換後のバススキャンは、スイッチ装置１９と各デバイス３、４とを接続するバスへのアクセスとなる。
【００６９】
管理ブリッジ２７はバススキャンの間に割り当てられた各論理識別番号に対応するデバイスの先頭アドレスを取得する。管理ブリッジ２７は取得した先頭アドレスおよび物理メモリアドレス範囲に基づいて、各デバイス３、４の論理メモリアドレス範囲を設定する。管理ブリッジ２７は設定した論理識別番号および論理メモリアドレス範囲を変換テーブル５０に書き込む（Ｓ２６）。
【００７０】
変換テーブル５０の更新後、管理ブリッジ２７は変換部２６による、メモリアドレス範囲を変換するアドレス変換処理を有効にする（Ｓ２７）。変換部２６は記憶部３２に記憶された変換テーブル５０に基づいて、受信したパケットの識別情報およびメモリアドレス範囲を変換し、変換後のパケットを送信する。
【００７１】
ＲＣ１４は、ＯＳを実行するＣＰＵ１１からの命令により、メモリ１３上に各デバイスに対応するデバイスドライバをロードし、各デバイスを初期化する（Ｓ２８）。デバイスドライバはＯＳが提供する共通化されたインターフェースと各デバイスのハードウェアとの仲介を行うソフトウェアである。
【００７２】
以上の通りスイッチ装置１９は変換部２６によるパケットの変換により、計算機１０のＳＬＯＴ１７に割り振られた識別番号の範囲を超える数のデバイスを正常に接続することが出来る。
【００７３】
図９は計算機１０にスイッチ装置１９を接続した後のパケット処理フロー図である。上流ブリッジ２０はパケットを受信すると、そのパケットが上流デバイスである計算機１０から受信したものか、下流デバイスから受信したものかを判別する（Ｓ３１）。パケットが下流から受信したものである場合（Ｓ３１：ＹＥＳ）、上流ブリッジ２０におけるブリッジ制御部２８は、パケットのヘッダから抽出した物理識別番号を変換部２６に送信する。変換部２６は記憶した変換テーブル５０に基づき、上流ブリッジ２０から受信したパケットの物理識別番号を論理識別番号に変換する（Ｓ３２）。変換部２６は論理識別番号を上流ブリッジ２０に送信する。上流ブリッジ２０は論理識別番号に書き換えられたヘッダを有するパケットを上流デバイスである計算機１０に送信する（Ｓ３３）。
【００７４】
受信したパケットが下流デバイスからではなく上流の計算機１０から送信されたものである場合（Ｓ３１：ＮＯ）、上流ブリッジ２０はヘッダのＣｏｎｆｉｇ  Ｔｙｐｅの値を確認する（Ｓ３４）。Ｃｏｎｆｉｇ  Ｔｙｐｅはそのパケットを受信したブリッジが、そのパケットは自分宛のものか否かを判別するのに用いる。上流ブリッジ２０が受信したパケットのＣｏｎｆｉｇ  Ｔｙｐｅの値が“０”である場合（Ｓ３４：ＹＥＳ）、上流ブリッジ２０におけるブリッジ制御部２８は、そのパケットが自分宛に送信されたものであると判断し、受信したパケットをコンフィグ処理部２９に送信する。コンフィグ処理部２９は受信したパケットに記述されたコマンドを実行する（Ｓ３５）。コンフィグ処理部２９は処理結果をブリッジ制御部２８に送信する。ブリッジ制御部２８は処理結果をパケット送信元である計算機１０に返信する（Ｓ３６）。
【００７５】
上流ブリッジ２０が受信したパケットのＣｏｎｆｉｇ  Ｔｙｐｅの値が“０”でない場合（Ｓ３４：ＮＯ）、上流ブリッジ２０は受信したパケットのＣｏｎｆｉｇ  Ｔｙｐｅの値が“１”であるか否かを確認する（Ｓ３７）。受信したパケットのＣｏｎｆｉｇ  Ｔｙｐｅの値が“１”である場合（Ｓ３７：ＹＥＳ）、上流ブリッジ２０におけるブリッジ制御部２８は、パケットのヘッダから抽出した論理識別番号を変換部２６に送信する。変換部２６は記憶した変換テーブル５０に基づき、ブリッジ制御部２８から受信したパケットの論理識別番号を物理識別番号に変換する（Ｓ３８）。変換部２６は物理識別番号を上流ブリッジ２０に送信する。上流ブリッジ２０は物理識別番号に書き換えられたヘッダを有するパケットを下流ブリッジ２２、２３、２４に送信する（Ｓ３９）。
【００７６】
変換部２６はまた、パケット変換部３１で受信したパケットのヘッダ情報を記憶部３２に書き込むことにより、パケット情報を取得する（Ｓ４０）。管理ブリッジ２７は記憶部３２に書き込んだパケット情報と変換テーブル５０の情報とを比較する。書き込んだパケット情報における論理識別番号または論理メモリアドレス範囲が、変換テーブル５０における論理識別番号または論理メモリアドレス範囲と異なっていた場合、管理ブリッジ２７は書き込んだパケット情報に基づいて変換テーブルの構成情報を更新する（Ｓ４１）。
【００７７】
上流ブリッジ２０が受信したパケットのＣｏｎｆｉｇ  Ｔｙｐｅの値が“０”でも“１”でもない場合（Ｓ３７：ＮＯ）、上流ブリッジ２０は受信したパケットがアドレスルーティングであるか否かを判別する（Ｓ４２）。受信したパケットがアドレスルーティングである場合（Ｓ４２：ＹＥＳ）、上流ブリッジ２０は受信したパケットのヘッダ情報を変換部２６におけるパケット変換部３１に送信する。パケット変換部３１は変換テーブル５０に基づいて、受信したヘッダ情報における論理メモリアドレス範囲を物理メモリアドレス範囲に変換する（Ｓ４３）。パケット変換部３１は変換した物理メモリアドレス範囲をブリッジ制御部２８に送信する。ブリッジ制御部２８は受信した物理メモリアドレス範囲に基づいてパケットのヘッダ情報を書き換える。ブリッジ制御部２８はヘッダ情報を書き換えたパケットを下流ブリッジ２３、２４、２５に送信する（Ｓ４４）。
【００７８】
受信したパケットがアドレスルーティングでない場合（Ｓ４２：ＮＯ）、上流ブリッジ２０は受信したパケットのヘッダ情報を変換部２６におけるパケット変換部３１に送信する。パケット変換部３１は変換テーブル５０に基づいて、受信したヘッダ情報における論理識別番号を物理識別番号に変換する（Ｓ４５）。パケット変換部３１は変換した物理識別番号をブリッジ制御部２８に送信する。ブリッジ制御部２８は受信した物理識別番号に基づいてパケットのヘッダ情報を書き換える。ブリッジ制御部２８はヘッダ情報を書き換えたパケットを下流ブリッジ２３、２４、２５に送信する（Ｓ４６）。
【００７９】
なお本実施例では、変換部２６に対し上流ブリッジ２０からヘッダ情報のみを送信しているが、上流ブリッジ２０が受信したパケットを変換部２６へ送信しても良い。この場合変換部２６は、ヘッダを書き換えたパケットを上流ブリッジ２０へ送信する。
【００８０】
以上の通りスイッチ装置１９は上流側に接続された計算機１０と下流側に接続されたデバイス２、３、４とのパケット通信が正常に実行されるように、変換テーブル５０に基づいて識別番号およびメモリアドレス範囲を変換することが出来る。
【００８１】
図１０はデバイスの識別順序を変えた場合の、計算機１０におけるアドレス空間の削減効果を示す図である。図１０のＡは計算機１０のバススキャンに対し、まずデバイス３を識別させた後にデバイス４を識別させた場合の計算機１０における論理メモリアドレス範囲を示す。図１０のＡにおいて、メモリ領域７１はデバイス３の制御のために計算機１０に確保された領域であり、メモリ領域７２はデバイス４の制御のために計算機１０に確保された領域である。図１０のＢは計算機１０のバススキャンに対し、まずデバイス４を識別させた後にデバイス３を識別させた場合の計算機１０のアドレス空間における論理メモリアドレス範囲を示す。図１０のＢにおいて、メモリ領域７３はデバイス４の制御ために計算機１０に確保された領域であり、メモリ領域７４はデバイス３の制御のために計算機１０に確保された領域である。
【００８２】
前述の通りＲＣ１４は、識別番号に対応した数のメモリ領域を計算機１０のメモリ空間に確保する。それぞれのメモリ領域のメモリサイズは固定されており、また各メモリ領域の先頭アドレスはアラインされる必要があるため、識別番号が決まるとそれに対応するメモリ領域の先頭アドレスも自動的に決まる。
【００８３】
図１０に示すとおり、本実施例においてデバイス３、４に割り当てられるメモリ領域の先頭アドレスは、“０ｘＥ０００００００”または“０ｘＥ８００００００”のいずれかである。またデバイス３の制御に必要なメモリサイズは１６ＭＢであり、デバイス４の制御に必要なメモリサイズは１２８ＭＢである。
【００８４】
図１０のＡに示すとおり、ＲＣ１４がデバイス３を識別した後にデバイス４を識別すると、アドレス“０ｘＥ０００００００”から１６ＭＢのメモリサイズがメモリ領域７１として確保され、アドレス“０ｘＥ８００００００”から１２８ＭＢのメモリサイズがメモリ領域７２として確保される。この結果、アドレス“０ｘＥ０ＦＦＦＦＦＦ〜０ｘＥ７ＦＦＦＦＦＦ”の領域は、デバイス３により使用されないにもかかわらず確保された無駄な領域となる。
【００８５】
図１０のＡに対し図１０のＢでは、ＲＣ１４はデバイス４を識別した後にデバイス３を識別する。ＲＣ１４はデバイス４に対応するメモリ領域として、アドレス“０ｘＥ０００００００”から１２８ＭＢのメモリ領域７３を確保する。またＲＣ１４はアドレス“０ｘＥ８００００００”から１６ＭＢのメモリ領域７４を確保する。デバイス４のメモリ領域は、識別番号に対応して確保されたメモリ領域のサイズと同じであるため、図１０のＡに示す無駄な領域が発生しない。
【００８６】
以上の通り、スイッチ装置１９は、計算機１０に識別させる順番を変えることにより、計算機１０に確保されるアドレス空間を最適化することが出来る。
【符号の説明】
【００８７】
１０  計算機
１３  メモリ
１４  ＲＣ
１５  ＰＣＩＳＷ
１６、１７、１８  ＳＬＯＴ
１９  スイッチ装置
２０  上流ブリッジ
２１  制御部
２２、２３、２４  下流ブリッジ
２５  スイッチ
２６  変換部
２７  管理ブリッジ
２８  ブリッジ制御部
２９  コンフィグ処理部
３０  記憶部
３１  パケット変換部
３２  記憶部
３３  ブリッジ制御部
３４  コンフィグ処理部
４０  パケット
４１  ヘッダ
４２  データ
５０  変換テーブル
７０  コンフィグテーブル
【図４】
0005541021.tif 000002
【図７】
0005541021.tif 000003
【図１】
0005541021.tif 000004
【図２】
0005541021.tif 000005
【図３】
0005541021.tif 000006
【図５】
0005541021.tif 000007
【図６】
0005541021.tif 000008
【図８】
0005541021.tif 000009
【図９】
0005541021.tif 000010
【図１０】
0005541021.tif 000011