(57)【要約】【課題】複数の中継装置を介した情報処理装置間で適切な通信処理を実現する。【解決手段】本願の開示する情報処理システムは、一つの態様において、第１の中継装置又は第２の中継装置は、第１の中継装置と第２の中継装置との間の関係と、第１の中継装置又は第２の中継装置のエンドポイントの位置と、に基づいたアドレスを、当該エンドポイントの位置に接続された第１の情報処理装置又は第２の情報処理装置に割り当てるためのアドレス特定情報を記憶する記憶部と、第１の中継装置と第２の中継装置との間の関係を特定する特定部と、第１の中継装置又は第２の中継装置のエンドポイントに接続された第１の情報処理装置又は第２の情報処理装置に対して、特定部によって特定された関係と、接続されたエンドポイントの位置と、アドレス特定情報と、に基づいてアドレスを割り当てる処理部と、を備える。【選択図】図１
2020190847.tif 000002
【特許請求の範囲】
【請求項１】
拡張バスを用いて、複数の第１の情報処理装置の各々と接続可能な複数のエンドポイントを備え、当該エンドポイントを介して、前記複数の第１の情報処理装置の間の通信を中継し、拡張バスを用いて第２の中継装置と接続可能でルートコンプレックスとして機能する第１の中継接続部を備えた第１の中継装置と、
拡張バスを用いて、複数の第２の情報処理装置の各々と接続可能な複数のエンドポイントを備え、当該エンドポイントを介して、前記複数の第２の情報処理装置の間の通信を中継するとともに、拡張バスを用いて前記第１の中継装置と接続可能でエンドポイントとして機能する第２の中継接続部を備え、当該第２の中継接続部を介して、前記複数の第１の情報処理装置と前記複数の第２の情報処理装置との間の通信を中継する第２の中継装置と、を備え、
前記第１の中継装置又は前記第２の中継装置は、
前記第１の中継装置と前記第２の中継装置との間の関係と、前記第１の中継装置又は前記第２の中継装置の前記エンドポイントの位置と、に基づいたアドレスを、当該エンドポイントの位置に接続された前記第１の情報処理装置又は前記第２の情報処理装置に割り当てるためのアドレス特定情報を記憶する記憶部と、
前記第１の中継装置と前記第２の中継装置との間の関係を特定する特定部と、
前記エンドポイントに接続された前記第１の情報処理装置又は前記第２の情報処理装置に対して、前記特定部によって特定された前記関係と、接続された前記エンドポイントの位置と、前記アドレス特定情報と、に基づいてアドレスを割り当てる処理部と、
を備える、
情報処理システム。
【請求項２】
前記処理部は、前記アドレスとして、前記エンドポイントに接続された前記第１の情報処理装置又は前記第２の情報処理装置に対して、仮想的なＭＡＣアドレスを割り当てる、
請求項１に記載の情報処理システム。
【請求項３】
前記第１の中継装置は、
前記第２の中継装置の前記複数のエンドポイントの各々に対する前記第２の情報処理装置の接続の有無を示した状況情報を取得する取得部を、さらに備え、
前記処理部は、前記状況情報と、前記特定部によって特定された前記関係と、前記第２の情報処理装置が接続された前記エンドポイントの位置と、前記アドレス特定情報と、に基づいて、前記第２の中継装置に接続された前記第２の情報処理装置に対してアドレスを割り当てる、
請求項１又は２に記載の情報処理システム。
【請求項４】
前記情報処理システムは、
前記複数の第１の情報処理装置及び前記複数の第２の情報処理装置を備え、
前記複数の第１の情報処理装置のうちいずれか一つが、前記第２の情報処理装置のうちいずれか一つに情報を送信する場合に、前記状況情報を取得し、前記状況情報に基づいて前記第２の情報処理装置のうちいずれか一つが接続されているか確認し、確認結果に応じて前記情報を送信する、
請求項３に記載の情報処理システム。
【請求項５】
拡張バスを用いて、複数の情報処理装置の各々と接続可能な複数のエンドポイントと、
拡張バスを用いて他の中継装置と接続可能でルートコンプレックス又はエンドポイントとして機能する中継接続部と、
前記他の中継装置との間の関係と、前記エンドポイントの位置と、に基づいたアドレスを、当該エンドポイントの位置に接続された前記情報処理装置に割り当てるためのアドレス特定情報を記憶する記憶部と、
を備える中継装置。
【請求項６】
前記中継装置と他の中継装置との間の関係を表した関係を特定する特定部と、
前記エンドポイントに接続された前記複数の情報処理装置に対して、前記特定部によって特定された前記関係と、接続された前記エンドポイントの位置と、前記アドレス特定情報と、を送信する中継装置側処理部と、を
さらに備える請求項５に記載の中継装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、情報処理システム、及び中継装置に関する。
【背景技術】
【０００２】
複数の情報処理装置が複数の接続Ｉ／Ｆ（例えば、拡張バススロット）を有する中継装置を経由して接続された情報処理システムでは、複数の情報処理装置に処理を振り分ける並列分散制御が行われることがある。
【０００３】
当該情報処理システムにおいては、接続Ｉ／Ｆ（拡張バススロット）経由で接続された複数の情報処理装置間で通信を行おうとした場合に、情報処理装置の各々にアドレスを割り当てる必要がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１７−３７５３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術においては、情報処理システムにおいて、複数の中継装置間を接続した場合、複数の中継装置の各々に接続されている情報処理装置ごとにアドレスを割り当てると競合する可能性がある。
【０００６】
開示の技術は、上記に鑑みてなされたものであって、情報処理装置ごとに適切にアドレスを割り当てる情報処理システム、及び中継装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の第１態様に係る情報処理システムは、一つの態様において、拡張バスを用いて、複数の第１の情報処理装置の各々と接続可能な複数のエンドポイントを備え、当該エンドポイントを介して、複数の第１の情報処理装置の間の通信を中継し、拡張バスを用いて第２の中継装置と接続可能でルートコンプレックスとして機能する第１の中継接続部を備えた第１の中継装置と、拡張バスを用いて、複数の第２の情報処理装置の各々と接続可能な複数のエンドポイントを備え、当該エンドポイントを介して、複数の第２の情報処理装置の間の通信を中継するとともに、拡張バスを用いて第１の中継装置と接続可能でエンドポイントとして機能する第２の中継接続部を備え、当該第２の中継接続部を介して、複数の第１の情報処理装置と複数の第２の情報処理装置との間の通信を中継する第２の中継装置と、を備え、第１の中継装置又は第２の中継装置は、第１の中継装置と第２の中継装置との間の関係と、第１の中継装置又は第２の中継装置のエンドポイントの位置と、に基づいたアドレスを、当該エンドポイントの位置に接続された第１の情報処理装置又は第２の情報処理装置に割り当てるためのアドレス特定情報を記憶する記憶部と、第１の中継装置と第２の中継装置との間の関係を特定する特定部と、エンドポイントに接続された第１の情報処理装置又は第２の情報処理装置に対して、特定部によって特定された関係と、接続されたエンドポイントの位置と、アドレス特定情報と、に基づいてアドレスを割り当てる処理部と、を備える。
【０００８】
また、本発明の第１態様に係る情報処理システムにおいては、処理部は、アドレスとして、エンドポイントに接続された第１の情報処理装置又は第２の情報処理装置に対して、仮想的なＭＡＣアドレスを割り当てる。
【０００９】
また、本発明の第１態様に係る情報処理システムにおいては、第１の中継装置は、第２の中継装置の複数のエンドポイントの各々に対する第２の情報処理装置の接続の有無を示した状況情報を取得する取得部を、さらに備え、処理部は、状況情報と、特定部によって特定された関係と、第２の情報処理装置が接続されたエンドポイントの位置と、アドレス特定情報と、に基づいて、第２の中継装置に接続された第２の情報処理装置に対してアドレスを割り当てる。
【００１０】
また、本発明の第１態様に係る情報処理システムにおいては、情報処理システムは、複数の第１の情報処理装置及び複数の第２の情報処理装置を備え、複数の第１の情報処理装置のうちいずれか一つが、第２の情報処理装置のうちいずれか一つに情報を送信する場合に、状況情報を取得し、状況情報に基づいて第２の情報処理装置のうちいずれか一つが接続されているか確認し、確認結果に応じて情報を送信する。
【００１１】
本発明の第２態様に係る中継装置は、一つの態様において、拡張バスを用いて、複数の情報処理装置の各々と接続可能な複数のエンドポイントと、拡張バスを用いて他の中継装置と接続可能でルートコンプレックス又はエンドポイントとして機能する中継接続部と、他の中継装置との間の関係と、エンドポイントの位置と、に基づいたアドレスを、当該エンドポイントの位置に接続された情報処理装置に割り当てるためのアドレス特定情報を記憶する記憶部と、を備える。
【００１２】
また、本発明の第２態様に係る中継装置においては、中継装置と他の中継装置との間の関係を表した関係を特定する特定部と、エンドポイントに接続された複数の情報処理装置に対して、特定部によって特定された関係と、接続されたエンドポイントの位置と、アドレス特定情報と、を送信する中継装置側処理部と、をさらに備える。
【発明の効果】
【００１３】
本願の開示する情報処理システムの一つの態様によれば、複数の中継装置を介した情報処理装置間で適切な通信処理を実現できる。
【図面の簡単な説明】
【００１４】
【図１】図１は、実施形態にかかる情報処理システムの全体構成の一例を示す図である。
【図２】図２は、実施形態にかかるメインユニットおよびプラットフォームのソフトウェア構成を例示したブロック図である。
【図３】図３は、実施形態にかかるメインユニット及びプラットフォームの各々に割り当てられるメインＩＤ及びサブＩＤを例示した図である。
【図４】図４は、実施形態にかかるメモリに格納されているアドレス特定情報のテーブル構造を例示した図である。
【図５】図５は、実施形態のプラットフォームにおいて、自装置の仮想的なＭＡＣアドレスが特定されるまでの処理を示したフローチャートである。
【図６】図６は、実施形態のプラットフォームにおいて、情報を送信する際の処理を示したフローチャートである。
【図７】図７は、変形例の各プラットフォームにおける共通メモリの構成を例示した説明図である。
【発明を実施するための形態】
【００１５】
図１は、本実施形態にかかる情報処理システムの全体構成の一例を示す図である。図１に示すように、本実施形態にかかる情報処理システム１は、第１の中継装置１０１、第２の中継装置１０２、メインユニット１１１、複数のマスタ側プラットフォーム１１２−１〜１１２−８、及び複数のスレーブ側プラットフォーム１１３−１〜１１３−８を備えている。
【００１６】
第１の中継装置１０１、及び第２の中継装置１０２間は、拡張バス（本実施形態ではＰＣＩ  Expressバス（以下、ＰＣＩｅバスとも称す））を介して接続されている。本実施形態では、第１の中継装置１０１がマスタとして機能し、第２の中継装置１０２がスレーブとして機能する。
【００１７】
メインユニット１１１、及び複数のマスタ側プラットフォーム１１２＿１〜１１２＿６は、拡張バス（例えば、ＰＣＩｅバス）を介して、第１の中継装置１０１と接続されている。
【００１８】
以下の説明では、複数のマスタ側プラットフォーム１１２＿１〜１１２＿６を区別する必要がない場合、総称してマスタ側プラットフォーム１１２とも記載する。また、本実施形態の情報処理システム１では、マスタ側に、６つのプラットフォームを有する例について説明するが、複数のプラットフォーム（情報処理装置）を有するものであればよい。
【００１９】
また、複数のスレーブ側プラットフォーム１１３＿１〜１１３＿８は、拡張バス（例えば、ＰＣＩｅバス）を介して、第２の中継装置１０２と接続されている。
【００２０】
以下の説明では、複数のスレーブ側プラットフォーム１１３＿１〜１１３＿８を区別する必要がない場合、総称してスレーブ側プラットフォーム１１３とも記載する。また、本実施形態の情報処理システム１では、スレーブ側に、８つのプラットフォームを有する例について説明するが、複数のプラットフォーム（情報処理装置）を有するものであればよい。
【００２１】
また、マスタ側プラットフォーム１１２＿１〜１１２＿６、及びスレーブ側プラットフォーム１１３＿１〜１１３＿８を区別する必要がない場合、総称してプラットフォーム１１２、１１３とも記載する。
【００２２】
第１の中継装置１０１は、スイッチ１０３と、バス制御プロセッサ１０４と、を備えている。さらに、第１の中継装置１０１は、メインユニット１１１及びマスタ側プラットフォーム１１２の各々と接続可能な複数の接続部として、８個のエンドポイント１０５（第１のエンドポイント１０５＿１〜第８のエンドポイント１０５＿８）を備えている。さらに、第１の中継装置１０１は、他の中継装置と接続可能な中継接続部として、第２の中継装置１０２と接続可能とする中継用ルートコンプレックス（ＲＣ）１０６を備えている。
【００２３】
なお、第１のエンドポイント１０５＿１〜第８のエンドポイント１０５＿８を区別する必要がない場合、総称してエンドポイント１０５とも記載する。
【００２４】
スイッチ１０３は、第１の中継装置１０１をマスタかスレーブかを切り替えるハードウェアスイッチとする。本実施形態においては、第１の中継装置１０１のスイッチ１０３がマスタに設定され、第２の中継装置１０２のスイッチ１０３がスレーブに設定されている。これにより、第１の中継装置１０１がマスタとして機能し、第２の中継装置１０２がスレーブとして機能する。
【００２５】
第１の中継装置１０１のバス制御プロセッサ１０４は、エンドポイント１０５の各々に接続されたメインユニット１１１及びマスタ側プラットフォーム１１２の各々との通信を制御する。また、第１の中継装置１０１のバス制御プロセッサ１０４は、拡張バス（本実施形態ではＰＣＩeバス）の中継ルートコンプレックス１０６を介して、第２の中継装置１０２に接続されているスレーブ側プラットフォーム１１３との通信を制御する。なお、バス制御プロセッサ１０４は一つのプロセッサに制限するものではなく、複数のプロセッサの組み合わせで構成してもよい。
【００２６】
バス制御プロセッサ１０４は、ソフトウェア構成として特定部１４１と、取得部１４２と、を備えている。例えば、バス制御プロセッサ１０４は、図示しないＣＰＵ(Central  Processor  Unit)が、図示しないＲＯＭ(Read  Only  Memory)内のプログラムを読み込むことで、特定部１４１と、取得部１４２と、を実現する。
【００２７】
特定部１４１は、スイッチ１０３の設定を参照することで、第１の中継装置１０１と第２の中継装置１０２との間の関係、換言すれば第１の中継装置１０１がマスタかスレーブかを表した関係を特定する。本実施形態の特定部１４１は、第１の中継装置１０１がマスタであることを特定する。本実施形態は、中継装置間の関係としてマスタかスレーブかを特定する例について説明するが、マスタかスレーブかの特定に制限するものではなく、３個以上の中継装置が接続されている場合には、階層等を特定してもよい。これにより、第１の中継装置１０１のバス制御プロセッサ１０４は、中継装置間の関係に応じた制御を行う。
【００２８】
取得部１４２は、中継用ルートコンプレックス（ＲＣ）１０６にアクセスすることで、第２の中継装置１０２のエンドポイント１０５の各々に対する接続の有無を示した状況情報を取得する。そして、取得部１４２は、状況情報を、第１の中継装置１０１のエンドポイント１０５の各々に送信する。これにより、エンドポイント１０５の各々は、第２の中継装置１０２の接続状況を認識できる。
【００２９】
第１のエンドポイント（ＥＰ）１０５＿１〜第８のエンドポイント（ＥＰ）１０５＿８は、処理部１０８と、メモリ１０９と、を備えたうえで、メインユニット１１１又はプラットフォーム１１２、１１３の各々と接続するための拡張バス（ＰＣＩｅバス）による接続Ｉ／Ｆを備えている。
【００３０】
エンドポイント１０５のメモリ１０９は、メインユニット１１１及びプラットフォーム１１２、１１３の各々に対応するＭＡＣアドレスを割り当てるためのアドレス特定情報を記憶している記憶部の一例とする。なお、詳細については後述する。
【００３１】
エンドポイント１０５の処理部１０８は、接続Ｉ／Ｆを介して接続されているメインユニット１１１又はプラットフォーム１１２、１１３が有する、ルートコンプレックス１１４との間でデータ転送を行う。
【００３２】
処理部１０８は、第１の中継装置１０１内のバスを介して、第１の中継装置１０１のエンドポイント１０５の各々の接続状況（メインユニット又はメイン側プラットフォーム１１２が接続されているか否か）を識別できる。
【００３３】
また、処理部１０８は、取得部１４２から状況情報を受信することで、第２の中継装置１０２内のエンドポイント１０５にプラットフォームが接続されているか否かを識別できる。
【００３４】
そして、処理部１０８は、識別結果及び受信した状況情報を、ルートコンプレックス１１４のメモリ１１６に書き込むための処理を行う。これにより、ルートコンプレックス１１４の処理部１１５は、第１の中継装置１０１及び第２の中継装置１０２のエンドポイント１０５毎の接続状況を認識できる。
【００３５】
中継用ルートコンプレックス（ＲＣ）１０６は、処理部１２１と、メモリ１２２と、を備えたうえで、中継用エンドポイント（ＥＰ）１０７と接続するための接続Ｉ／Ｆを備えている。
【００３６】
中継用ルートコンプレックス１０６は、中継エンドポイント１０７を介して、複数のマスタ側プラットフォーム１１２と、複数のスレーブ側プラットフォーム１１３との間の通信を中継する。
【００３７】
中継用ルートコンプレックス１０６のメモリ１２２は、第１の中継装置１０１が有するエンドポイント１０５の各々に対する、メインユニット１１１及びマスタ側プラットフォーム１１２の各々の接続の有無を示した状況情報を格納する。これにより、第２の中継装置１０２の中継用エンドポイント（ＥＰ）１０７は、第１の中継装置１０１が有するエンドポイント１０５の各々の接続の有無を示した状況情報を取得できる。
【００３８】
中継用ルートコンプレックス１０６の処理部１２１は、第２の中継装置１０２との間で、データ転送を制御する。
【００３９】
第２の中継装置１０２は、スイッチ１０３と、バス制御プロセッサ１０４と、を備えている。さらに、第２の中継装置１０２は、複数のスレーブ側プラットフォーム１１３の各々と接続可能な接続部として、８個のエンドポイント１０５を備えている。さらに、第２の中継装置１０２は、他の中継装置と接続可能な中継接続部として、第１の中継装置１０１と接続可能とする中継用エンドポイント（ＥＰ）１０７を備えている。なお、第２の中継装置１０２が備える構成は、中継用エンドポイント（ＥＰ）１０７以外は、第１の中継装置１０１と同様の構成として同一の符号を割り当て、説明を省略する。
【００４０】
第２の中継装置１０２のバス制御プロセッサ１０４は、エンドポイント１０５の各々に接続されたスレーブ側プラットフォーム１１３の各々との通信を制御する。また、第２の中継装置１０２のバス制御プロセッサ１０４は、拡張バス（本実施形態ではＰＣＩeバス）の中継エンドポイント１０７を介して、第１の中継装置１０１に接続されているマスタ側プラットフォーム１１２間との通信を制御する。
【００４１】
バス制御プロセッサ１０４は、ソフトウェア構成として特定部１５１と、取得部１５２と、を備えている。
【００４２】
第２の中継装置１０２のバス制御プロセッサ１０４の特定部１５１は、スイッチ１０３の設定を参照することで、第１の中継装置１０１と第２の中継装置１０２との間の関係、換言すれば第２の中継装置１０２がマスタかスレーブかを表した関係を特定する。本実施形態の特定部１５１は、第２の中継装置１０２がスレーブであることを特定する。
【００４３】
第２の中継装置１０２のバス制御プロセッサ１０４の取得部１５２は、中継用エンドポイント１０７にアクセスすることで、第１の中継装置１０１のエンドポイント１０５の各々に対する接続の有無を示した状況情報を取得する。そして、取得部１４２は、状況情報を、第２の中継装置１０２のエンドポイント１０５の各々に送信する。これにより、第２の中継装置１０２のエンドポイント１０５の各々は、第１の中継装置１０１の接続状況を認識できる。
【００４４】
第２の中継装置１０２の第１のエンドポイント（ＥＰ）１０５＿１〜第８のエンドポイント（ＥＰ）１０５＿８は、第１の中継装置１０１の第１のエンドポイント（ＥＰ）１０５＿１〜第８のエンドポイント（ＥＰ）１０５＿８と同様として説明を省略する。
【００４５】
中継用エンドポイント１０７は、処理部１３１と、メモリ１３２と、を備えたうえで、中継用ルートコンプレックス１０６と接続するための接続Ｉ／Ｆを備えている。
【００４６】
中継用エンドポイント１０７は、中継用ルートコンプレックス１０６を介して、複数のスレーブ側プラットフォーム１１３と、複数のマスタ側プラットフォーム１１２と、の間の通信を中継する。
【００４７】
中継用エンドポイント１０７のメモリ１３２は、バス制御プロセッサ１０４を介して、第２の中継装置１０２のエンドポイント１０５の各々に対する接続の有無を示した状況情報を格納する。これにより、第１の中継装置１０１の中継用ルートコンプレックス１０６は、第２の中継装置１０２のエンドポイント１０５の各々の接続の有無を示した状況情報を取得できる。
【００４８】
中継用エンドポイント１０７の処理部１３１は、接続Ｉ／Ｆを介して接続されている第１の中継装置１０１との間で、メモリ１３２を用いたデータ転送を制御する。
【００４９】
また、メインユニット１１１は、２個のルートコンプレックス（ＲＣ）１１４と、処理部１１５と、メモリ１１６とを備える。そして、処理部１１５が、メモリ１１６に格納されたプログラムを実行することで、メインユニット１１１は、情報処理システム１の制御部およびＧＵＩ（Graphical  User  Interface）として機能するホストＰＣ（Personal  Computer）として機能する。
【００５０】
マスタ側プラットフォーム１１２、及びスレーブ側プラットフォーム１１３は、拡張バス（本実施形態ではＰＣＩeバス）のルートコンプレックス（ＲＣ）１１４と、処理部１１５と、メモリ１１６とを備え、様々な演算を行う情報処理装置とする。そして、処理部１１５がメモリ１１６に格納されたプログラムを実行することで、例えば、マスタ側プラットフォーム１１２、及びスレーブ側プラットフォーム１１３は、ＡＩ（Artificial  Intelligence）推論処理や画像処理等が実行される。
【００５１】
また、メインユニット１１１、マスタ側プラットフォーム１１２、及びスレーブ側プラットフォーム１１３の各々が備える処理部１１５は、それぞれ違うメーカ（ベンダ）から提供されたものであっても良いし、同じメーカから提供されたものであっても良い。
【００５２】
ルートコンプレックス１１４は、エンドポイント１０５と接続するための接続Ｉ／Ｆを備えている。
【００５３】
メインユニット１１１、プラットフォーム１１２、１１３のメモリ１１６は、様々な処理を行う際に利用される。例えば、メモリ１１６は、エンドポイント１０５からアドレス特定情報等が送信された場合に、アドレス特定情報等を記憶する。
【００５４】
メインユニット１１１、及びプラットフォーム１１２、１１３の処理部１１５は、ルートコンプレックス１１４を介して接続されているエンドポイント１０５との間で、メモリ１１６を用いてデータ転送を制御する。
【００５５】
本実施形態においては、メインユニット１１１およびプラットフォーム１１２、１１３間で通信を行う際、仮想的なＬＡＮドライバを呼び出して、データの送受信を行うことで、仮想的なＬＡＮを介した通信のような制御を実現している。そこで、具体的なソフトウェア構成について説明する。
【００５６】
図２は、本実施形態にかかるメインユニットおよびプラットフォームのソフトウェア構成を例示したブロック図である。
【００５７】
図２に示されるように、メインユニット１１１の処理部１１５は、ＢＩＯＳ２０２と、ＯＳ２０３と、ドライバ２０４と、サービス２０５と、仮想ＬＡＮドライバ２０６と、分散制御部２０７と、共通ソフトウェア２０８と、を実現することで、アプリケーション２０９を実行することができる。メインユニット１１１のＰＣプラットフォーム２０１は、メインユニット１１１のハードウェア資源とする。
【００５８】
メインユニット１１１には、起動時のＯＳ２０３の読み込みや、メインユニット１１１に対する基本的な入出力制御を行うＢＩＯＳ２０２と、ＢＩＯＳ２０２によって起動するＯＳ２０３と、を備えている。ＯＳ２０３は、例えばＷｉｎｄｏｗｓ（登録商標）が考えられるが、どのようなＯＳであってもよい。
【００５９】
ＯＳ２０３は、拡張バス（例えば、ＰＣＩｅバス）を制御するためのブリッジドライバ２０４Ａを含む各種ドライバ２０４と、を読み込んで、ルートコンプレックス１１４にアクセスして他のプラットフォーム（例えば、マスタ側プラットフォーム１１２＿１〜１１２−６又はスレーブ側プラットフォーム１１３＿１〜１１３＿８）との通信を行う。また、様々な制御を行うためのサービス２０５を読み込んで、様々な処理を行う。
【００６０】
さらに、ドライバ２０４及びサービス２０５の上層には、仮想ＬＡＮドライバ２０６と、分散制御部２０７とを実現している。これにより、アプリケーション２０９は、共通ソフトウェア２０８を介して、仮想ＬＡＮドライバ２０６にアクセスすることで、他のプラットフォーム（例えば、マスタ側プラットフォーム１１２＿１〜１１２−６又はスレーブ側プラットフォーム１１３＿１〜１１３＿８）に対して仮想的なＬＡＮを介して通信を実現している。
【００６１】
同様に、メイン側プラットフォーム１１２＿１、１１２＿２は、Boodloader２１２と、ＯＳ２１３と、ドライバ２１４と、仮想ＬＡＮドライバ２１５と、分散制御部２１６と、共通ソフトウェア２１７と、を実現することで、分散処理Ａ、分散処理Ｂを実行できる。ハードウェアプラットフォーム２１１は、メイン側プラットフォーム１１２＿１、１１２＿２のハードウェア資源とする。
【００６２】
メイン側プラットフォーム１１２＿１、１１２＿２は、電源投入時にBootloader２１２が起動し、当該Bootloader２１２がＯＳ２１３を起動させる。
【００６３】
ＯＳ２１３は、拡張バス（例えば、ＰＣＩｅバス）を制御するためのブリッジドライバ２１４Ａを含む各種ドライバ２１４と、を読み込んで、ルートコンプレックス１１４にアクセスして他のプラットフォーム（例えば、メインユニット１１１、マスタ側プラットフォーム１１２＿３〜１１２−６又はスレーブ側プラットフォーム１１３＿１〜１１３＿８）との通信を行う。
【００６４】
さらに、ドライバ２１４の上層には、仮想ＬＡＮドライバ２１５と、分散制御部２１６とを実現している。これにより、分散処理Ａ、分散処理Ｂは、共通ソフトウェア２１７を介して、仮想ＬＡＮドライバ２１５にアクセスすることで、他のプラットフォーム（例えば、メインユニット１１１、マスタ側プラットフォーム１１２＿３〜１１２−６又はスレーブ側プラットフォーム１１３＿１〜１１３＿８）に対して仮想的なＬＡＮを介して通信を実現している。
【００６５】
このように仮想的なＬＡＮを介して通信を実現するためには、ＰＣＩｅ拡張バス毎に、仮想的なＭＡＣ(Media  AccessControl)アドレスを割り当てる必要がある。そこで、本実施形態では、第１のエンドポイント１０５＿１〜第８のエンドポイント１０５＿８は、割り当てられたＣＨ番号に応じて仮想的なＭＡＣアドレスを割り当てることとした。
【００６６】
しかしながら、ＣＨ番号に応じて仮想的なＭＡＣアドレスを割り当てた場合、第１の中継装置１０１と、第２の中継装置１０２と、の間で、ＭＡＣアドレスが競合する可能性がある。そこで、本実施形態では、マスタかスレーブ、換言すれば中継装置間の関係を考慮したうえで、ＭＡＣアドレスを割り当てることとした。
【００６７】
図３は、本実施形態にかかるメインユニット１１１及びプラットフォーム１１２、１１３の各々に割り当てられるメインＩＤ及びサブＩＤを例示した図である。
【００６８】
図３に示されるように、第１の中継装置１０１の第１のエンドポイント１０５＿１〜第８のエンドポイント１０５＿８には、ＣＨ０〜ＣＨ７が割り当てられている。このため、第１のエンドポイント１０５＿１〜第８のエンドポイント１０５＿８に接続されたメインユニット１１１及びメイン側プラットフォーム１１２の各々には、ＣＨ番号に対応するメインＩＤ“0038”〜“003F”が一意に割り当てられる。さらに、第１の中継装置１０１の第１のエンドポイント１０５＿１〜第８のエンドポイント１０５＿８には、特定部１５１により特定された関係（マスタ）が受け渡される。これにより、第１の中継装置１０１の第１のエンドポイント１０５＿１〜第８のエンドポイント１０５＿８の処理部１０８は、接続されているメインユニット１１１及びメイン側プラットフォーム１１２の各々に割り当てるサブＩＤとして、関係（マスタ）に対応するサブＩＤ“0028”を特定する。
【００６９】
第２の中継装置１０２の第１のエンドポイント１０５＿１〜第８のエンドポイント１０５＿８には、ＣＨ０〜ＣＨ７が割り当てられている。このため、第１のエンドポイント１０５＿１〜第８のエンドポイント１０５＿８に接続されたスレーブ側プラットフォーム１１３の各々には、ＣＨ番号に対応するメインＩＤ“0038”〜“003F”が一意に割り当てられる。さらに、第２の中継装置１０２の第１のエンドポイント１０５＿１〜第８のエンドポイント１０５＿８には、特定部１５１により特定された関係（スレーブ）が受け渡される。これにより、第２の中継装置１０２の第１のエンドポイント１０５＿１〜第８のエンドポイント１０５＿８の処理部１０８は、接続されているスレーブ側プラットフォーム１１３の各々に割り当てるサブＩＤとして、関係（スレーブ）に対応するサブＩＤ“0029”を特定する。
【００７０】
図４は、実施形態にかかるメモリ１０９に格納されているアドレス特定情報のテーブル構造を例示した図である。図４に示されるように、アドレス特定情報は、第１の中継装置１０１又は第２の中継装置１０２のエンドポイント（接続部）の位置を示したメインＩＤと、第１の中継装置と第２の中継装置との間の関係を表したサブＩＤと、仮想的なＭＡＣアドレスとを対応付けている。仮想的なＭＡＣアドレスとは、上層に対して仮想的にＬＡＮ接続しているように認識させるが、下層では拡張バス（ＰＣＩｅバス）を介して通信を行っているため、仮想ＬＡＮドライバ内部で利用される、仮想的に割り当てられたアドレスとする。
【００７１】
エンドポイント１０５の処理部１０８は、自エンドポイント１０５に接続されているメインユニット１１１又はプラットフォーム１１２、１１３に対して、メインＩＤ（接続された位置に対応するＩＤ）と、特定されたサブＩＤ（関係に基づいたＩＤ）と、アドレス特定情報と、を送信する。
【００７２】
これにより、メインユニット１１１、及びプラットフォーム１１２、１１３の処理部１１５は、アドレス特定情報を参照して、特定されたサブＩＤと、メインＩＤ（メインユニット又はプラットフォーム１１２、１１３が接続された位置に対応するＩＤ）と、に基づいて、自装置で実行される仮想的なＬＡＮドライバによる送信制御を実現するために、仮想的なＭＡＣアドレスを割り当てる。
【００７３】
また、メインユニット１１１、及びプラットフォーム１１２、１１３の処理部１１５は、同一中継装置内のプラットフォームに送信する場合に、処理部１１５は、アドレス特定情報を参照して、当該サブＩＤと、送信先の位置に対応するメインＩＤ（メインユニット又はプラットフォーム１１２、１１３が接続された位置に対応するＩＤ）と、に基づいて、送信先に割り当てられている仮想的なＭＡＣアドレスを特定できる。
【００７４】
また、エンドポイント１０５の処理部１０８は、必要に応じて、接続されているメインユニット１１１又はプラットフォーム１１２、１１３に対して、他の中継装置のエンドポイント１０５の接続状況を示した状況情報を送信する。
【００７５】
これにより、メインユニット１１１、プラットフォーム１１２、１１３の処理部１１５は、他の中継装置に接続されたプラットフォーム１１２、１１３が送信先の場合に、状況情報に基づいて、当該送信先が接続されているか否かを確認できる。接続されていることが確認できた場合に、処理部１１５は、アドレス特定情報を参照して、送信先の接続位置を示したメインＩＤと、接続先の関係を示したサブＩＤと、に基づいて、送信先に割り当てられている仮想的なＭＡＣアドレスを特定できる。
【００７６】
例えば、第１の中継装置１０１に接続されているメインユニット１１１及びマスタ側プラットフォーム１１２のうちいずれか一つが、第２の中継装置１０２に接続されているスレーブ側プラットフォーム１１３のうちいずれか一つに情報を送信する場合、メインユニット１１１及びマスタ側プラットフォーム１１２の処理部１１５が、エンドポイント１０５から状況情報を取得し、状況情報に基づいて、送信先である、スレーブ側プラットフォーム１１３のうちいずれか一つが接続されているか否かを確認する。そして、メインユニット１１１及びマスタ側プラットフォーム１１２のうちいずれか一つは、送信先が接続されていることを確認した場合に、アドレス特定情報を参照して、送信先に割り当てられている仮想的なＭＡＣアドレスを特定する。そして、処理部１１５で動作する仮想ＬＡＮドライバ２０６、２１５は、当該仮想的なＭＡＣアドレスに基づいて（仮想的なＭＡＣアドレスと対応付けられたメインユニット１１１、又はプラットフォーム１１２、１１３を送信先として）データの送信制御を行う。
【００７７】
図５は、本実施形態のプラットフォーム１１２、１１３において、自装置の仮想的なＭＡＣアドレスが特定されるまでの処理を示したフローチャートである。
【００７８】
まず、情報処理システム１は、ユーザからの操作で電源が投入される（Ｓ５０１）。
【００７９】
次に、第１の中継装置１０１又は第２の中継装置１０２のバス制御プロセッサ１０４の特定部１４１、１５１は、スイッチ１０３がマスタに設定されているか否かを判定する（Ｓ５０２）。
【００８０】
スイッチ１０３がマスタに設定されていると判定した場合（Ｓ５０２：Ｙｅｓ）、バス制御プロセッサ１０４の特定部１４１は、マスタに対応するサブＩＤを特定し、自中継装置１０１内のエンドポイント１０５にサブＩＤを通知する（Ｓ５０３）。
【００８１】
一方、スイッチ１０３がマスタに設定されていない、換言すればスレーブに設定されていると判定した場合（Ｓ５０２：Ｎｏ）、バス制御プロセッサ１０４の特定部１４１は、スレーブに対応するサブＩＤを特定し、自中継装置１０２内のエンドポイント１０５にサブＩＤを通知する（Ｓ５０４）。
【００８２】
そして、中継装置１０１、１０２内のエンドポイント１０５の処理部１０８は、エンドポイントの位置に対応するメインＩＤ、通知されたサブＩＤ、アドレス特定情報を、当該エンドポイント１０５に接続されているルートコンプレックス１１４に送信する（Ｓ５０５）。メインユニット１１１、プラットフォーム１１２、１１３の処理部１１５は、ルートコンプレックス１１４から送信したメインＩＤ、サブＩＤ、アドレス特定情報を、メモリ１１６に書き込む。
【００８３】
そして、メインユニット１１１、プラットフォーム１１２、１１３の処理部１１５は、アドレス特定情報を参照して、メインＩＤ及びサブＩＤと対応付けられている仮想的なＭＡＣアドレスを特定する（Ｓ５０６）。
【００８４】
これによって、メインユニット１１１、及びプラットフォーム１１２、１１３ごとに仮想的なＭＡＣアドレスが割り当てられたことになる。
【００８５】
図６は、本実施形態のプラットフォーム１１２、１１３において、情報を送信する際の処理を示したフローチャートである。
【００８６】
まず、メインユニット１１１又はプラットフォーム１１２、１１３の処理部１１５は、送信先が自中継装置内の他のプラットフォームであるか否かを判定する（Ｓ６０１）。
【００８７】
送信先が自中継装置内の他のプラットフォームであると判定した場合（Ｓ６０１：Ｙｅｓ）、メインユニット１１１、プラットフォーム１１２、１１３の処理部１１５は、エンドポイント１０５を介して、送信先のエンドポイント１０５にプラットフォーム１１２、１１３が接続されているか確認する（Ｓ６０２）。
【００８８】
一方、メインユニット１１１、又はプラットフォーム１１２、１１３の処理部１１５は、送信先が自中継装置内の他のプラットフォーム１１２、１１３ではないと判定した場合（Ｓ６０１：Ｎｏ）、処理部１１５は、バス制御プロセッサ１０４の取得部１５２が取得した状況情報を取得する（Ｓ６０３）。状況情報には、他の中継装置におけるプラットフォーム１１２、１１３の接続の有無が示されている。
【００８９】
そして、プラットフォーム１１２、１１３の処理部１１５は、状況情報を参照して、他の中継装置の送信先のプラットフォーム１１２、１１３が接続されているか確認する（Ｓ６０４）。
【００９０】
そして、当該エンドポイントにプラットフォームが接続されていることが確認できた場合、メインユニット１１１又はプラットフォーム１１２、１１３の処理部１１５は、アドレス特定情報を参照し、送信先のプラットフォーム１１２、１１３に対応する仮想的なＭＡＣアドレスを特定する（Ｓ６０５）。
【００９１】
これにより、プラットフォーム１１２、１１３の図示しないプロセッサ内で実現される仮想的なＬＡＮドライバは、送信先として特定された仮想的なＭＡＣアドレスと、自プラットフォーム１１２、１１３を識別する仮想的なＭＡＣアドレスと、を用いて、データの送信制御を行う（Ｓ６０６）。例えば、仮想的なＬＡＮドライバは、仮想的なＭＡＣアドレスが、マスタ側又はスレーブ側のどのチャネルに該当するかを特定し、特定されたチャネルを送信先としたデータの送信制御を、ブリッジドライバ２０４Ａ、２１４Ａを介して行う。このように、本実施形態においては、通信プロトコルの階層のうち、ソフトウェア層より上位の階層においては、データの送信に際してＭＡＣアドレスで宛先指定を行い、ソフトウェア層より下位のドライバ層においては、ＭＡＣアドレスから特定された、マスタ側又はスレーブ側のうちいずれのチャネルを送信先として送信制御を行うこととした。
【００９２】
本実施形態においては、アドレス特定情報をエンドポイント１０５のメモリ１０９に格納されている例について説明した。しかしながら、アドレス特定情報の格納先を制限するものではなく、例えば、メインユニット１１１、又はプラットフォーム１１２、１１３のメモリ１１６に予め格納してもよい。
【００９３】
また、本実施形態では、メインユニット１１１、又はプラットフォーム１１２、１１３の処理部１１５が、仮想的なＭＡＣアドレスを特定する例について説明した。しかしながら、仮想的なＭＡＣアドレスを特定する処理部を、メインユニット１１１、又はプラットフォーム１１２、１１３の処理部１１５に制限するものはなく、例えば、エンドポイント１０５の処理部１０８が仮想的なＭＡＣアドレスを特定して、ルートコンプレックス１１４に送信するようにしてもよいし、ルートコンプレックス１１４内の(図示しない)処理部が、仮想的なＭＡＣアドレスを特定してもよい。さらには、バス制御プロセッサ１０４が、エンドポイント１０５毎に仮想的なＭＡＣアドレスを特定して、各ルートコンプレックス１１４に送信するようにしてもよい。
【００９４】
本実施形態では、アドレス特定情報として、メインＩＤとサブＩＤと仮想的なＭＡＣアドレスとを対応付けたテーブルを記憶する例について説明した。しかしながら、アドレス特定情報を、メインＩＤとサブＩＤと仮想的なＭＡＣアドレスとを対応付けたテーブルに制限するものではなく、第１の中継装置１０１と第２の中継装置１０２との間の関係と、第１の中継装置１０１又は第２の中継装置１０２の接続部の位置と、に基づいた仮想的なＭＡＣアドレスを、メインユニット１１１又はプラットフォーム１１２、１１３に割り当て可能な情報であればよい。例えば、所定の数字、メインＩＤを示した数字、及びサブＩＤを示した数字を組み合わせて、仮想的なＭＡＣアドレスを生成してもよい。この場合、エンドポイント１０５のメモリ１０９に、アドレス特定情報として当該所定の数字を記憶する。本実施形態は仮想的なＭＡＣアドレスを特定する例を説明したが、特定対象をＭＡＣアドレスに制限するものではなく、メインユニット１１１又はプラットフォーム１１２、１１３を特定できるアドレスであればよい。
【００９５】
（変形例）
上述した実施形態においては、プラットフォームが他のプラットフォームにデータの送信制御を行う場合について説明した。しかしながら、仮想的なＭＡＣアドレスの利用は、実施形態の場合に制限するものではない。
【００９６】
図７は、変形例の各プラットフォームにおける共通メモリの構成を例示した説明図である。図７に示されるように、マスタ側プラットフォーム７１１＿１〜７１１＿８と、スレーブ側プラットフォーム７１２＿１〜７１２＿８は、同一構成の共通メモリＣＭ１〜ＣＭ１６を備えている。
【００９７】
共通メモリＣＭ１〜ＣＭ１６は、それぞれ、第１領域Ｓｌｏｔ＃０〜第１６領域Ｓｌｏｔ＃１５を備えている。  
【００９８】
共通メモリＣＭ１における第１領域Ｓｌｏｔ＃０は、マスタ側プラットフォーム７１１＿１が他のマスタ側プラットフォーム７１１＿１〜７１１＿８、スレーブ側プラットフォーム７１２＿１〜７１２＿８から受信すべきデータが書き込まれる領域であり、第２領域Ｓｌｏｔ＃１は、マスタ側プラットフォーム７１１＿１がマスタ側プラットフォーム７１１＿２に対して送信すべきデータ（アプリケーションも含む）を書き込む領域である。同様に、第３領域Ｓｌｏｔ＃２〜第８領域Ｓｌｏｔ＃７は、マスタ側プラットフォーム７１１＿１がマスタ側プラットフォーム７１１＿３〜７１１＿８に送信すべきデータを書き込む領域である。さらに、第９領域Ｓｌｏｔ＃８〜第１６領域Ｓｌｏｔ＃１５は、マスタ側プラットフォーム７１１＿１が、第２の中継装置１０２に接続されたスレーブ側プラットフォーム７１２＿１〜７１２＿８に送信すべきデータを書き込む領域である。
【００９９】
共通メモリＣＭ２における第２領域Ｓｌｏｔ＃１は、マスタ側プラットフォーム７１１＿２が他のマスタ側プラットフォーム７１１＿１、７１１＿３〜７１１＿８、スレーブ側プラットフォーム７１２＿１〜７１２＿８から受信すべきデータが書き込まれる領域であり、第１領域Ｓｌｏｔ＃０、第３領域Ｓｌｏｔ＃２〜第８領域Ｓｌｏｔ＃７は、マスタ側プラットフォーム７１１＿２が他のマスタ側プラットフォーム７１１＿１、７１１＿３〜７１１＿８に送信すべきデータを書き込む領域である。さらに、第９領域Ｓｌｏｔ＃８〜第１６領域Ｓｌｏｔ＃１５は、マスタ側プラットフォーム７１１＿２が、第２の中継装置１０２に接続されたスレーブ側プラットフォーム７１２＿１〜７１２＿８に送信すべきデータを書き込む領域である。
【０１００】
以降の共通メモリＣＭ３〜ＣＭ１６についても同様として説明を省略する。つまり、共有メモリのうち一つの領域は、他のプラットフォームから受信すべきデータが書き込まれる領域であり、共有メモリのうち他の領域は、他のプラットフォームに送信すべきデータが書き込まれる領域である。
【０１０１】
上記構成においては、いずれかのプラットフォームが他のプラットフォームに送信すべきデータを対応する領域の所定のアドレスに書き込んだ場合には、データを書き込んだ領域のアドレスがデバイスドライバを介してバス制御プロセッサ１０４に通知される。  
【０１０２】
バス制御プロセッサ１０４は、通知された領域のアドレスから、書き込まれたデータの転送先のプラットフォームの共通メモリを判別して、対応する領域のアドレス（＝送信元のプラットフォームが書き込んだ領域のアドレスと同じアドレス）に転送し、書き込むこととなる。当該制御において、プラットフォームの送信元及び送信先として、仮想的なＭＡＣアドレスを用いる。実際に行われるデータの送信手法は、実施形態と同様として説明を省略する。
【０１０３】
本変形例では、各プラットフォームの演算処理結果を共有メモリから読み出せるので、データの送受信が容易になる。
【０１０４】
上述した実施形態及び変形例の情報処理システムによれば、複数の中継装置を介して接続された情報処理装置間で通信を行う際に、中継装置の関係を考慮して仮想的なＭＡＣアドレスを割り当てることで、仮想的なＭＡＣアドレスの競合を抑止できる。これによって、複数の中継装置を介した情報処理装置間で適切な通信処理を実現できる。
【０１０５】
本発明の実施形態及び変形例を説明したが、この実施形態及び変形例は、例として提示したものであり、発明の範囲を限定することは意図していない。この新規な実施形態及び変形例は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。この実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１０６】
１  情報処理システム
１０１  第１の中継装置
１０２  第２の中継装置
１０４  バス制御プロセッサ
１０５＿１〜１０５＿８  エンドポイント
１１１  メインユニット
１１２＿１〜１１２＿６、７１１＿１〜７１１＿８  マスタ側プラットフォーム
１１３＿１〜１１３＿８、７１２＿１〜７１２＿８  スレーブ側プラットフォーム
１１４  ルートコンプレックス
１０８、１１５、１２１、１３１  処理部
１０９、１１６、１２２、１３２  メモリ
１４１、１５１  特定部
１４２、１５２  取得部
【図１】
2020190847.tif 000003
【図２】
2020190847.tif 000004
【図３】
2020190847.tif 000005
【図４】
2020190847.tif 000006
【図５】
2020190847.tif 000007
【図６】
2020190847.tif 000008
【図７】
2020190847.tif 000009