特許第6574917号(P6574917)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通クライアントコンピューティング株式会社の特許一覧

<>
  • 特許6574917-情報処理システム、及び中継装置 図000002
  • 特許6574917-情報処理システム、及び中継装置 図000003
  • 特許6574917-情報処理システム、及び中継装置 図000004
  • 特許6574917-情報処理システム、及び中継装置 図000005
  • 特許6574917-情報処理システム、及び中継装置 図000006
  • 特許6574917-情報処理システム、及び中継装置 図000007
  • 特許6574917-情報処理システム、及び中継装置 図000008
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】6574917
(24)【登録日】2019年8月23日
(45)【発行日】2019年9月11日
(54)【発明の名称】情報処理システム、及び中継装置
(51)【国際特許分類】
   G06F 13/14 20060101AFI20190902BHJP
   G06F 15/173 20060101ALI20190902BHJP
【FI】
   G06F13/14 320F
   G06F15/173 680
【請求項の数】6
【全頁数】18
(21)【出願番号】特願2019-94753(P2019-94753)
(22)【出願日】2019年5月20日
【審査請求日】2019年5月29日
【早期審査対象出願】
(73)【特許権者】
【識別番号】518133201
【氏名又は名称】富士通クライアントコンピューティング株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】特許業務法人酒井国際特許事務所
(72)【発明者】
【氏名】木村 真敏
(72)【発明者】
【氏名】中山 雄二
(72)【発明者】
【氏名】石田 智弘
【審査官】 大桃 由紀雄
(56)【参考文献】
【文献】 国際公開第2008/018485(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 13/14
G06F 15/173
(57)【特許請求の範囲】
【請求項1】
拡張バスを用いて、複数の第1の情報処理装置の各々と接続可能な複数のエンドポイントを備え、当該エンドポイントを介して、前記複数の第1の情報処理装置の間の通信を中継し、拡張バスを用いて第2の中継装置と接続可能でルートコンプレックスとして機能する第1の中継接続部を備えた第1の中継装置と、
拡張バスを用いて、複数の第2の情報処理装置の各々と接続可能な複数のエンドポイントを備え、当該エンドポイントを介して、前記複数の第2の情報処理装置の間の通信を中継するとともに、拡張バスを用いて前記第1の中継装置と接続可能でエンドポイントとして機能する第2の中継接続部を備え、当該第2の中継接続部を介して、前記複数の第1の情報処理装置と前記複数の第2の情報処理装置との間の通信を中継する第2の中継装置と、を備え、
前記第1の中継装置又は前記第2の中継装置は、
前記第1の中継装置と前記第2の中継装置との間の関係と、前記第1の中継装置又は前記第2の中継装置の前記エンドポイントの位置と、に基づいたアドレスを、当該エンドポイントの位置に接続された前記第1の情報処理装置又は前記第2の情報処理装置に割り当てるためのアドレス特定情報を記憶する記憶部と、
前記第1の中継装置と前記第2の中継装置との間の関係を特定する特定部と、
前記エンドポイントに接続された前記第1の情報処理装置又は前記第2の情報処理装置に対して、前記特定部によって特定された前記関係と、接続された前記エンドポイントの位置と、前記アドレス特定情報と、に基づいてアドレスを割り当てる処理部と、
を備える、
情報処理システム。
【請求項2】
前記処理部は、前記アドレスとして、前記エンドポイントに接続された前記第1の情報処理装置又は前記第2の情報処理装置に対して、仮想的なMACアドレスを割り当てる、
請求項1に記載の情報処理システム。
【請求項3】
前記第1の中継装置は、
前記第2の中継装置の前記複数のエンドポイントの各々に対する前記第2の情報処理装置の接続の有無を示した状況情報を取得する取得部を、さらに備え、
前記処理部は、前記状況情報と、前記特定部によって特定された前記関係と、前記第2の情報処理装置が接続された前記エンドポイントの位置と、前記アドレス特定情報と、に基づいて、前記第2の中継装置に接続された前記第2の情報処理装置に対してアドレスを割り当てる、
請求項1又は2に記載の情報処理システム。
【請求項4】
前記情報処理システムは、
前記複数の第1の情報処理装置及び前記複数の第2の情報処理装置を備え、
前記複数の第1の情報処理装置のうちいずれか一つが、前記第2の情報処理装置のうちいずれか一つに情報を送信する場合に、前記状況情報を取得し、前記状況情報に基づいて前記第2の情報処理装置のうちいずれか一つが接続されているか確認し、確認結果に応じて前記情報を送信する、
請求項3に記載の情報処理システム。
【請求項5】
拡張バスを用いて、複数の情報処理装置の各々と接続可能な複数のエンドポイントと、
拡張バスを用いて他の中継装置と接続可能でルートコンプレックス又はエンドポイントとして機能する中継接続部と、
前記他の中継装置との間の関係と、前記エンドポイントの位置と、に基づいたアドレスを、当該エンドポイントの位置に接続された前記情報処理装置に割り当てるためのアドレス特定情報を記憶する記憶部と、
を備える中継装置。
【請求項6】
前記中継装置と他の中継装置との間の関係を表した関係を特定する特定部と、
前記エンドポイントに接続された前記複数の情報処理装置に対して、前記特定部によって特定された前記関係と、接続された前記エンドポイントの位置と、前記アドレス特定情報と、を送信する中継装置側処理部と、を
さらに備える請求項5に記載の中継装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、情報処理システム、及び中継装置に関する。
【背景技術】
【0002】
複数の情報処理装置が複数の接続I/F(例えば、拡張バススロット)を有する中継装置を経由して接続された情報処理システムでは、複数の情報処理装置に処理を振り分ける並列分散制御が行われることがある。
【0003】
当該情報処理システムにおいては、接続I/F(拡張バススロット)経由で接続された複数の情報処理装置間で通信を行おうとした場合に、情報処理装置の各々にアドレスを割り当てる必要がある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2017−37533号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来技術においては、情報処理システムにおいて、複数の中継装置間を接続した場合、複数の中継装置の各々に接続されている情報処理装置ごとにアドレスを割り当てると競合する可能性がある。
【0006】
開示の技術は、上記に鑑みてなされたものであって、情報処理装置ごとに適切にアドレスを割り当てる情報処理システム、及び中継装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明の第1態様に係る情報処理システムは、一つの態様において、拡張バスを用いて、複数の第1の情報処理装置の各々と接続可能な複数のエンドポイントを備え、当該エンドポイントを介して、複数の第1の情報処理装置の間の通信を中継し、拡張バスを用いて第2の中継装置と接続可能でルートコンプレックスとして機能する第1の中継接続部を備えた第1の中継装置と、拡張バスを用いて、複数の第2の情報処理装置の各々と接続可能な複数のエンドポイントを備え、当該エンドポイントを介して、複数の第2の情報処理装置の間の通信を中継するとともに、拡張バスを用いて第1の中継装置と接続可能でエンドポイントとして機能する第2の中継接続部を備え、当該第2の中継接続部を介して、複数の第1の情報処理装置と複数の第2の情報処理装置との間の通信を中継する第2の中継装置と、を備え、第1の中継装置又は第2の中継装置は、第1の中継装置と第2の中継装置との間の関係と、第1の中継装置又は第2の中継装置のエンドポイントの位置と、に基づいたアドレスを、当該エンドポイントの位置に接続された第1の情報処理装置又は第2の情報処理装置に割り当てるためのアドレス特定情報を記憶する記憶部と、第1の中継装置と第2の中継装置との間の関係を特定する特定部と、エンドポイントに接続された第1の情報処理装置又は第2の情報処理装置に対して、特定部によって特定された関係と、接続されたエンドポイントの位置と、アドレス特定情報と、に基づいてアドレスを割り当てる処理部と、を備える。
【0008】
また、本発明の第1態様に係る情報処理システムにおいては、処理部は、アドレスとして、エンドポイントに接続された第1の情報処理装置又は第2の情報処理装置に対して、仮想的なMACアドレスを割り当てる。
【0009】
また、本発明の第1態様に係る情報処理システムにおいては、第1の中継装置は、第2の中継装置の複数のエンドポイントの各々に対する第2の情報処理装置の接続の有無を示した状況情報を取得する取得部を、さらに備え、処理部は、状況情報と、特定部によって特定された関係と、第2の情報処理装置が接続されたエンドポイントの位置と、アドレス特定情報と、に基づいて、第2の中継装置に接続された第2の情報処理装置に対してアドレスを割り当てる。
【0010】
また、本発明の第1態様に係る情報処理システムにおいては、情報処理システムは、複数の第1の情報処理装置及び複数の第2の情報処理装置を備え、複数の第1の情報処理装置のうちいずれか一つが、第2の情報処理装置のうちいずれか一つに情報を送信する場合に、状況情報を取得し、状況情報に基づいて第2の情報処理装置のうちいずれか一つが接続されているか確認し、確認結果に応じて情報を送信する。
【0011】
本発明の第2態様に係る中継装置は、一つの態様において、拡張バスを用いて、複数の情報処理装置の各々と接続可能な複数のエンドポイントと、拡張バスを用いて他の中継装置と接続可能でルートコンプレックス又はエンドポイントとして機能する中継接続部と、他の中継装置との間の関係と、エンドポイントの位置と、に基づいたアドレスを、当該エンドポイントの位置に接続された情報処理装置に割り当てるためのアドレス特定情報を記憶する記憶部と、を備える。
【0012】
また、本発明の第2態様に係る中継装置においては、中継装置と他の中継装置との間の関係を表した関係を特定する特定部と、エンドポイントに接続された複数の情報処理装置に対して、特定部によって特定された関係と、接続されたエンドポイントの位置と、アドレス特定情報と、を送信する中継装置側処理部と、をさらに備える。
【発明の効果】
【0013】
本願の開示する情報処理システムの一つの態様によれば、複数の中継装置を介した情報処理装置間で適切な通信処理を実現できる。
【図面の簡単な説明】
【0014】
図1図1は、実施形態にかかる情報処理システムの全体構成の一例を示す図である。
図2図2は、実施形態にかかるメインユニットおよびプラットフォームのソフトウェア構成を例示したブロック図である。
図3図3は、実施形態にかかるメインユニット及びプラットフォームの各々に割り当てられるメインID及びサブIDを例示した図である。
図4図4は、実施形態にかかるメモリに格納されているアドレス特定情報のテーブル構造を例示した図である。
図5図5は、実施形態のプラットフォームにおいて、自装置の仮想的なMACアドレスが特定されるまでの処理を示したフローチャートである。
図6図6は、実施形態のプラットフォームにおいて、情報を送信する際の処理を示したフローチャートである。
図7図7は、変形例の各プラットフォームにおける共通メモリの構成を例示した説明図である。
【発明を実施するための形態】
【0015】
図1は、本実施形態にかかる情報処理システムの全体構成の一例を示す図である。図1に示すように、本実施形態にかかる情報処理システム1は、第1の中継装置101、第2の中継装置102、メインユニット111、複数のマスタ側プラットフォーム112−1〜112−8、及び複数のスレーブ側プラットフォーム113−1〜113−8を備えている。
【0016】
第1の中継装置101、及び第2の中継装置102間は、拡張バス(本実施形態ではPCI Expressバス(以下、PCIeバスとも称す))を介して接続されている。本実施形態では、第1の中継装置101がマスタとして機能し、第2の中継装置102がスレーブとして機能する。
【0017】
メインユニット111、及び複数のマスタ側プラットフォーム112_1〜112_6は、拡張バス(例えば、PCIeバス)を介して、第1の中継装置101と接続されている。
【0018】
以下の説明では、複数のマスタ側プラットフォーム112_1〜112_6を区別する必要がない場合、総称してマスタ側プラットフォーム112とも記載する。また、本実施形態の情報処理システム1では、マスタ側に、6つのプラットフォームを有する例について説明するが、複数のプラットフォーム(情報処理装置)を有するものであればよい。
【0019】
また、複数のスレーブ側プラットフォーム113_1〜113_8は、拡張バス(例えば、PCIeバス)を介して、第2の中継装置102と接続されている。
【0020】
以下の説明では、複数のスレーブ側プラットフォーム113_1〜113_8を区別する必要がない場合、総称してスレーブ側プラットフォーム113とも記載する。また、本実施形態の情報処理システム1では、スレーブ側に、8つのプラットフォームを有する例について説明するが、複数のプラットフォーム(情報処理装置)を有するものであればよい。
【0021】
また、マスタ側プラットフォーム112_1〜112_6、及びスレーブ側プラットフォーム113_1〜113_8を区別する必要がない場合、総称してプラットフォーム112、113とも記載する。
【0022】
第1の中継装置101は、スイッチ103と、バス制御プロセッサ104と、を備えている。さらに、第1の中継装置101は、メインユニット111及びマスタ側プラットフォーム112の各々と接続可能な複数の接続部として、8個のエンドポイント105(第1のエンドポイント105_1〜第8のエンドポイント105_8)を備えている。さらに、第1の中継装置101は、他の中継装置と接続可能な中継接続部として、第2の中継装置102と接続可能とする中継用ルートコンプレックス(RC)106を備えている。
【0023】
なお、第1のエンドポイント105_1〜第8のエンドポイント105_8を区別する必要がない場合、総称してエンドポイント105とも記載する。
【0024】
スイッチ103は、第1の中継装置101をマスタかスレーブかを切り替えるハードウェアスイッチとする。本実施形態においては、第1の中継装置101のスイッチ103がマスタに設定され、第2の中継装置102のスイッチ103がスレーブに設定されている。これにより、第1の中継装置101がマスタとして機能し、第2の中継装置102がスレーブとして機能する。
【0025】
第1の中継装置101のバス制御プロセッサ104は、エンドポイント105の各々に接続されたメインユニット111及びマスタ側プラットフォーム112の各々との通信を制御する。また、第1の中継装置101のバス制御プロセッサ104は、拡張バス(本実施形態ではPCIeバス)の中継ルートコンプレックス106を介して、第2の中継装置102に接続されているスレーブ側プラットフォーム113との通信を制御する。なお、バス制御プロセッサ104は一つのプロセッサに制限するものではなく、複数のプロセッサの組み合わせで構成してもよい。
【0026】
バス制御プロセッサ104は、ソフトウェア構成として特定部141と、取得部142と、を備えている。例えば、バス制御プロセッサ104は、図示しないCPU(Central Processor Unit)が、図示しないROM(Read Only Memory)内のプログラムを読み込むことで、特定部141と、取得部142と、を実現する。
【0027】
特定部141は、スイッチ103の設定を参照することで、第1の中継装置101と第2の中継装置102との間の関係、換言すれば第1の中継装置101がマスタかスレーブかを表した関係を特定する。本実施形態の特定部141は、第1の中継装置101がマスタであることを特定する。本実施形態は、中継装置間の関係としてマスタかスレーブかを特定する例について説明するが、マスタかスレーブかの特定に制限するものではなく、3個以上の中継装置が接続されている場合には、階層等を特定してもよい。これにより、第1の中継装置101のバス制御プロセッサ104は、中継装置間の関係に応じた制御を行う。
【0028】
取得部142は、中継用ルートコンプレックス(RC)106にアクセスすることで、第2の中継装置102のエンドポイント105の各々に対する接続の有無を示した状況情報を取得する。そして、取得部142は、状況情報を、第1の中継装置101のエンドポイント105の各々に送信する。これにより、エンドポイント105の各々は、第2の中継装置102の接続状況を認識できる。
【0029】
第1のエンドポイント(EP)105_1〜第8のエンドポイント(EP)105_8は、処理部108と、メモリ109と、を備えたうえで、メインユニット111又はプラットフォーム112、113の各々と接続するための拡張バス(PCIeバス)による接続I/Fを備えている。
【0030】
エンドポイント105のメモリ109は、メインユニット111及びプラットフォーム112、113の各々に対応するMACアドレスを割り当てるためのアドレス特定情報を記憶している記憶部の一例とする。なお、詳細については後述する。
【0031】
エンドポイント105の処理部108は、接続I/Fを介して接続されているメインユニット111又はプラットフォーム112、113が有する、ルートコンプレックス114との間でデータ転送を行う。
【0032】
処理部108は、第1の中継装置101内のバスを介して、第1の中継装置101のエンドポイント105の各々の接続状況(メインユニット又はメイン側プラットフォーム112が接続されているか否か)を識別できる。
【0033】
また、処理部108は、取得部142から状況情報を受信することで、第2の中継装置102内のエンドポイント105にプラットフォームが接続されているか否かを識別できる。
【0034】
そして、処理部108は、識別結果及び受信した状況情報を、ルートコンプレックス114のメモリ116に書き込むための処理を行う。これにより、ルートコンプレックス114の処理部115は、第1の中継装置101及び第2の中継装置102のエンドポイント105毎の接続状況を認識できる。
【0035】
中継用ルートコンプレックス(RC)106は、処理部121と、メモリ122と、を備えたうえで、中継用エンドポイント(EP)107と接続するための接続I/Fを備えている。
【0036】
中継用ルートコンプレックス106は、中継エンドポイント107を介して、複数のマスタ側プラットフォーム112と、複数のスレーブ側プラットフォーム113との間の通信を中継する。
【0037】
中継用ルートコンプレックス106のメモリ122は、第1の中継装置101が有するエンドポイント105の各々に対する、メインユニット111及びマスタ側プラットフォーム112の各々の接続の有無を示した状況情報を格納する。これにより、第2の中継装置102の中継用エンドポイント(EP)107は、第1の中継装置101が有するエンドポイント105の各々の接続の有無を示した状況情報を取得できる。
【0038】
中継用ルートコンプレックス106の処理部121は、第2の中継装置102との間で、データ転送を制御する。
【0039】
第2の中継装置102は、スイッチ103と、バス制御プロセッサ104と、を備えている。さらに、第2の中継装置102は、複数のスレーブ側プラットフォーム113の各々と接続可能な接続部として、8個のエンドポイント105を備えている。さらに、第2の中継装置102は、他の中継装置と接続可能な中継接続部として、第1の中継装置101と接続可能とする中継用エンドポイント(EP)107を備えている。なお、第2の中継装置102が備える構成は、中継用エンドポイント(EP)107以外は、第1の中継装置101と同様の構成として同一の符号を割り当て、説明を省略する。
【0040】
第2の中継装置102のバス制御プロセッサ104は、エンドポイント105の各々に接続されたスレーブ側プラットフォーム113の各々との通信を制御する。また、第2の中継装置102のバス制御プロセッサ104は、拡張バス(本実施形態ではPCIeバス)の中継エンドポイント107を介して、第1の中継装置101に接続されているマスタ側プラットフォーム112間との通信を制御する。
【0041】
バス制御プロセッサ104は、ソフトウェア構成として特定部151と、取得部152と、を備えている。
【0042】
第2の中継装置102のバス制御プロセッサ104の特定部151は、スイッチ103の設定を参照することで、第1の中継装置101と第2の中継装置102との間の関係、換言すれば第2の中継装置102がマスタかスレーブかを表した関係を特定する。本実施形態の特定部151は、第2の中継装置102がスレーブであることを特定する。
【0043】
第2の中継装置102のバス制御プロセッサ104の取得部152は、中継用エンドポイント107にアクセスすることで、第1の中継装置101のエンドポイント105の各々に対する接続の有無を示した状況情報を取得する。そして、取得部142は、状況情報を、第2の中継装置102のエンドポイント105の各々に送信する。これにより、第2の中継装置102のエンドポイント105の各々は、第1の中継装置101の接続状況を認識できる。
【0044】
第2の中継装置102の第1のエンドポイント(EP)105_1〜第8のエンドポイント(EP)105_8は、第1の中継装置101の第1のエンドポイント(EP)105_1〜第8のエンドポイント(EP)105_8と同様として説明を省略する。
【0045】
中継用エンドポイント107は、処理部131と、メモリ132と、を備えたうえで、中継用ルートコンプレックス106と接続するための接続I/Fを備えている。
【0046】
中継用エンドポイント107は、中継用ルートコンプレックス106を介して、複数のスレーブ側プラットフォーム113と、複数のマスタ側プラットフォーム112と、の間の通信を中継する。
【0047】
中継用エンドポイント107のメモリ132は、バス制御プロセッサ104を介して、第2の中継装置102のエンドポイント105の各々に対する接続の有無を示した状況情報を格納する。これにより、第1の中継装置101の中継用ルートコンプレックス106は、第2の中継装置102のエンドポイント105の各々の接続の有無を示した状況情報を取得できる。
【0048】
中継用エンドポイント107の処理部131は、接続I/Fを介して接続されている第1の中継装置101との間で、メモリ132を用いたデータ転送を制御する。
【0049】
また、メインユニット111は、2個のルートコンプレックス(RC)114と、処理部115と、メモリ116とを備える。そして、処理部115が、メモリ116に格納されたプログラムを実行することで、メインユニット111は、情報処理システム1の制御部およびGUI(Graphical User Interface)として機能するホストPC(Personal Computer)として機能する。
【0050】
マスタ側プラットフォーム112、及びスレーブ側プラットフォーム113は、拡張バス(本実施形態ではPCIeバス)のルートコンプレックス(RC)114と、処理部115と、メモリ116とを備え、様々な演算を行う情報処理装置とする。そして、処理部115がメモリ116に格納されたプログラムを実行することで、例えば、マスタ側プラットフォーム112、及びスレーブ側プラットフォーム113は、AI(Artificial Intelligence)推論処理や画像処理等が実行される。
【0051】
また、メインユニット111、マスタ側プラットフォーム112、及びスレーブ側プラットフォーム113の各々が備える処理部115は、それぞれ違うメーカ(ベンダ)から提供されたものであっても良いし、同じメーカから提供されたものであっても良い。
【0052】
ルートコンプレックス114は、エンドポイント105と接続するための接続I/Fを備えている。
【0053】
メインユニット111、プラットフォーム112、113のメモリ116は、様々な処理を行う際に利用される。例えば、メモリ116は、エンドポイント105からアドレス特定情報等が送信された場合に、アドレス特定情報等を記憶する。
【0054】
メインユニット111、及びプラットフォーム112、113の処理部115は、ルートコンプレックス114を介して接続されているエンドポイント105との間で、メモリ116を用いてデータ転送を制御する。
【0055】
本実施形態においては、メインユニット111およびプラットフォーム112、113間で通信を行う際、仮想的なLANドライバを呼び出して、データの送受信を行うことで、仮想的なLANを介した通信のような制御を実現している。そこで、具体的なソフトウェア構成について説明する。
【0056】
図2は、本実施形態にかかるメインユニットおよびプラットフォームのソフトウェア構成を例示したブロック図である。
【0057】
図2に示されるように、メインユニット111の処理部115は、BIOS202と、OS203と、ドライバ204と、サービス205と、仮想LANドライバ206と、分散制御部207と、共通ソフトウェア208と、を実現することで、アプリケーション209を実行することができる。メインユニット111のPCプラットフォーム201は、メインユニット111のハードウェア資源とする。
【0058】
メインユニット111には、起動時のOS203の読み込みや、メインユニット111に対する基本的な入出力制御を行うBIOS202と、BIOS202によって起動するOS203と、を備えている。OS203は、例えばWindows(登録商標)が考えられるが、どのようなOSであってもよい。
【0059】
OS203は、拡張バス(例えば、PCIeバス)を制御するためのブリッジドライバ204Aを含む各種ドライバ204と、を読み込んで、ルートコンプレックス114にアクセスして他のプラットフォーム(例えば、マスタ側プラットフォーム112_1〜112−6又はスレーブ側プラットフォーム113_1〜113_8)との通信を行う。また、様々な制御を行うためのサービス205を読み込んで、様々な処理を行う。
【0060】
さらに、ドライバ204及びサービス205の上層には、仮想LANドライバ206と、分散制御部207とを実現している。これにより、アプリケーション209は、共通ソフトウェア208を介して、仮想LANドライバ206にアクセスすることで、他のプラットフォーム(例えば、マスタ側プラットフォーム112_1〜112−6又はスレーブ側プラットフォーム113_1〜113_8)に対して仮想的なLANを介して通信を実現している。
【0061】
同様に、メイン側プラットフォーム112_1、112_2は、Boodloader212と、OS213と、ドライバ214と、仮想LANドライバ215と、分散制御部216と、共通ソフトウェア217と、を実現することで、分散処理A、分散処理Bを実行できる。ハードウェアプラットフォーム211は、メイン側プラットフォーム112_1、112_2のハードウェア資源とする。
【0062】
メイン側プラットフォーム112_1、112_2は、電源投入時にBootloader212が起動し、当該Bootloader212がOS213を起動させる。
【0063】
OS213は、拡張バス(例えば、PCIeバス)を制御するためのブリッジドライバ214Aを含む各種ドライバ214と、を読み込んで、ルートコンプレックス114にアクセスして他のプラットフォーム(例えば、メインユニット111、マスタ側プラットフォーム112_3〜112−6又はスレーブ側プラットフォーム113_1〜113_8)との通信を行う。
【0064】
さらに、ドライバ214の上層には、仮想LANドライバ215と、分散制御部216とを実現している。これにより、分散処理A、分散処理Bは、共通ソフトウェア217を介して、仮想LANドライバ215にアクセスすることで、他のプラットフォーム(例えば、メインユニット111、マスタ側プラットフォーム112_3〜112−6又はスレーブ側プラットフォーム113_1〜113_8)に対して仮想的なLANを介して通信を実現している。
【0065】
このように仮想的なLANを介して通信を実現するためには、PCIe拡張バス毎に、仮想的なMAC(Media AccessControl)アドレスを割り当てる必要がある。そこで、本実施形態では、第1のエンドポイント105_1〜第8のエンドポイント105_8は、割り当てられたCH番号に応じて仮想的なMACアドレスを割り当てることとした。
【0066】
しかしながら、CH番号に応じて仮想的なMACアドレスを割り当てた場合、第1の中継装置101と、第2の中継装置102と、の間で、MACアドレスが競合する可能性がある。そこで、本実施形態では、マスタかスレーブ、換言すれば中継装置間の関係を考慮したうえで、MACアドレスを割り当てることとした。
【0067】
図3は、本実施形態にかかるメインユニット111及びプラットフォーム112、113の各々に割り当てられるメインID及びサブIDを例示した図である。
【0068】
図3に示されるように、第1の中継装置101の第1のエンドポイント105_1〜第8のエンドポイント105_8には、CH0〜CH7が割り当てられている。このため、第1のエンドポイント105_1〜第8のエンドポイント105_8に接続されたメインユニット111及びメイン側プラットフォーム112の各々には、CH番号に対応するメインID“0038”〜“003F”が一意に割り当てられる。さらに、第1の中継装置101の第1のエンドポイント105_1〜第8のエンドポイント105_8には、特定部151により特定された関係(マスタ)が受け渡される。これにより、第1の中継装置101の第1のエンドポイント105_1〜第8のエンドポイント105_8の処理部108は、接続されているメインユニット111及びメイン側プラットフォーム112の各々に割り当てるサブIDとして、関係(マスタ)に対応するサブID“0028”を特定する。
【0069】
第2の中継装置102の第1のエンドポイント105_1〜第8のエンドポイント105_8には、CH0〜CH7が割り当てられている。このため、第1のエンドポイント105_1〜第8のエンドポイント105_8に接続されたスレーブ側プラットフォーム113の各々には、CH番号に対応するメインID“0038”〜“003F”が一意に割り当てられる。さらに、第2の中継装置102の第1のエンドポイント105_1〜第8のエンドポイント105_8には、特定部151により特定された関係(スレーブ)が受け渡される。これにより、第2の中継装置102の第1のエンドポイント105_1〜第8のエンドポイント105_8の処理部108は、接続されているスレーブ側プラットフォーム113の各々に割り当てるサブIDとして、関係(スレーブ)に対応するサブID“0029”を特定する。
【0070】
図4は、実施形態にかかるメモリ109に格納されているアドレス特定情報のテーブル構造を例示した図である。図4に示されるように、アドレス特定情報は、第1の中継装置101又は第2の中継装置102のエンドポイント(接続部)の位置を示したメインIDと、第1の中継装置と第2の中継装置との間の関係を表したサブIDと、仮想的なMACアドレスとを対応付けている。仮想的なMACアドレスとは、上層に対して仮想的にLAN接続しているように認識させるが、下層では拡張バス(PCIeバス)を介して通信を行っているため、仮想LANドライバ内部で利用される、仮想的に割り当てられたアドレスとする。
【0071】
エンドポイント105の処理部108は、自エンドポイント105に接続されているメインユニット111又はプラットフォーム112、113に対して、メインID(接続された位置に対応するID)と、特定されたサブID(関係に基づいたID)と、アドレス特定情報と、を送信する。
【0072】
これにより、メインユニット111、及びプラットフォーム112、113の処理部115は、アドレス特定情報を参照して、特定されたサブIDと、メインID(メインユニット又はプラットフォーム112、113が接続された位置に対応するID)と、に基づいて、自装置で実行される仮想的なLANドライバによる送信制御を実現するために、仮想的なMACアドレスを割り当てる。
【0073】
また、メインユニット111、及びプラットフォーム112、113の処理部115は、同一中継装置内のプラットフォームに送信する場合に、処理部115は、アドレス特定情報を参照して、当該サブIDと、送信先の位置に対応するメインID(メインユニット又はプラットフォーム112、113が接続された位置に対応するID)と、に基づいて、送信先に割り当てられている仮想的なMACアドレスを特定できる。
【0074】
また、エンドポイント105の処理部108は、必要に応じて、接続されているメインユニット111又はプラットフォーム112、113に対して、他の中継装置のエンドポイント105の接続状況を示した状況情報を送信する。
【0075】
これにより、メインユニット111、プラットフォーム112、113の処理部115は、他の中継装置に接続されたプラットフォーム112、113が送信先の場合に、状況情報に基づいて、当該送信先が接続されているか否かを確認できる。接続されていることが確認できた場合に、処理部115は、アドレス特定情報を参照して、送信先の接続位置を示したメインIDと、接続先の関係を示したサブIDと、に基づいて、送信先に割り当てられている仮想的なMACアドレスを特定できる。
【0076】
例えば、第1の中継装置101に接続されているメインユニット111及びマスタ側プラットフォーム112のうちいずれか一つが、第2の中継装置102に接続されているスレーブ側プラットフォーム113のうちいずれか一つに情報を送信する場合、メインユニット111及びマスタ側プラットフォーム112の処理部115が、エンドポイント105から状況情報を取得し、状況情報に基づいて、送信先である、スレーブ側プラットフォーム113のうちいずれか一つが接続されているか否かを確認する。そして、メインユニット111及びマスタ側プラットフォーム112のうちいずれか一つは、送信先が接続されていることを確認した場合に、アドレス特定情報を参照して、送信先に割り当てられている仮想的なMACアドレスを特定する。そして、処理部115で動作する仮想LANドライバ206、215は、当該仮想的なMACアドレスに基づいて(仮想的なMACアドレスと対応付けられたメインユニット111、又はプラットフォーム112、113を送信先として)データの送信制御を行う。
【0077】
図5は、本実施形態のプラットフォーム112、113において、自装置の仮想的なMACアドレスが特定されるまでの処理を示したフローチャートである。
【0078】
まず、情報処理システム1は、ユーザからの操作で電源が投入される(S501)。
【0079】
次に、第1の中継装置101又は第2の中継装置102のバス制御プロセッサ104の特定部141、151は、スイッチ103がマスタに設定されているか否かを判定する(S502)。
【0080】
スイッチ103がマスタに設定されていると判定した場合(S502:Yes)、バス制御プロセッサ104の特定部141は、マスタに対応するサブIDを特定し、自中継装置101内のエンドポイント105にサブIDを通知する(S503)。
【0081】
一方、スイッチ103がマスタに設定されていない、換言すればスレーブに設定されていると判定した場合(S502:No)、バス制御プロセッサ104の特定部141は、スレーブに対応するサブIDを特定し、自中継装置102内のエンドポイント105にサブIDを通知する(S504)。
【0082】
そして、中継装置101、102内のエンドポイント105の処理部108は、エンドポイントの位置に対応するメインID、通知されたサブID、アドレス特定情報を、当該エンドポイント105に接続されているルートコンプレックス114に送信する(S505)。メインユニット111、プラットフォーム112、113の処理部115は、ルートコンプレックス114から送信したメインID、サブID、アドレス特定情報を、メモリ116に書き込む。
【0083】
そして、メインユニット111、プラットフォーム112、113の処理部115は、アドレス特定情報を参照して、メインID及びサブIDと対応付けられている仮想的なMACアドレスを特定する(S506)。
【0084】
これによって、メインユニット111、及びプラットフォーム112、113ごとに仮想的なMACアドレスが割り当てられたことになる。
【0085】
図6は、本実施形態のプラットフォーム112、113において、情報を送信する際の処理を示したフローチャートである。
【0086】
まず、メインユニット111又はプラットフォーム112、113の処理部115は、送信先が自中継装置内の他のプラットフォームであるか否かを判定する(S601)。
【0087】
送信先が自中継装置内の他のプラットフォームであると判定した場合(S601:Yes)、メインユニット111、プラットフォーム112、113の処理部115は、エンドポイント105を介して、送信先のエンドポイント105にプラットフォーム112、113が接続されているか確認する(S602)。
【0088】
一方、メインユニット111、又はプラットフォーム112、113の処理部115は、送信先が自中継装置内の他のプラットフォーム112、113ではないと判定した場合(S601:No)、処理部115は、バス制御プロセッサ104の取得部152が取得した状況情報を取得する(S603)。状況情報には、他の中継装置におけるプラットフォーム112、113の接続の有無が示されている。
【0089】
そして、プラットフォーム112、113の処理部115は、状況情報を参照して、他の中継装置の送信先のプラットフォーム112、113が接続されているか確認する(S604)。
【0090】
そして、当該エンドポイントにプラットフォームが接続されていることが確認できた場合、メインユニット111又はプラットフォーム112、113の処理部115は、アドレス特定情報を参照し、送信先のプラットフォーム112、113に対応する仮想的なMACアドレスを特定する(S605)。
【0091】
これにより、プラットフォーム112、113の図示しないプロセッサ内で実現される仮想的なLANドライバは、送信先として特定された仮想的なMACアドレスと、自プラットフォーム112、113を識別する仮想的なMACアドレスと、を用いて、データの送信制御を行う(S606)。例えば、仮想的なLANドライバは、仮想的なMACアドレスが、マスタ側又はスレーブ側のどのチャネルに該当するかを特定し、特定されたチャネルを送信先としたデータの送信制御を、ブリッジドライバ204A、214Aを介して行う。このように、本実施形態においては、通信プロトコルの階層のうち、ソフトウェア層より上位の階層においては、データの送信に際してMACアドレスで宛先指定を行い、ソフトウェア層より下位のドライバ層においては、MACアドレスから特定された、マスタ側又はスレーブ側のうちいずれのチャネルを送信先として送信制御を行うこととした。
【0092】
本実施形態においては、アドレス特定情報をエンドポイント105のメモリ109に格納されている例について説明した。しかしながら、アドレス特定情報の格納先を制限するものではなく、例えば、メインユニット111、又はプラットフォーム112、113のメモリ116に予め格納してもよい。
【0093】
また、本実施形態では、メインユニット111、又はプラットフォーム112、113の処理部115が、仮想的なMACアドレスを特定する例について説明した。しかしながら、仮想的なMACアドレスを特定する処理部を、メインユニット111、又はプラットフォーム112、113の処理部115に制限するものはなく、例えば、エンドポイント105の処理部108が仮想的なMACアドレスを特定して、ルートコンプレックス114に送信するようにしてもよいし、ルートコンプレックス114内の(図示しない)処理部が、仮想的なMACアドレスを特定してもよい。さらには、バス制御プロセッサ104が、エンドポイント105毎に仮想的なMACアドレスを特定して、各ルートコンプレックス114に送信するようにしてもよい。
【0094】
本実施形態では、アドレス特定情報として、メインIDとサブIDと仮想的なMACアドレスとを対応付けたテーブルを記憶する例について説明した。しかしながら、アドレス特定情報を、メインIDとサブIDと仮想的なMACアドレスとを対応付けたテーブルに制限するものではなく、第1の中継装置101と第2の中継装置102との間の関係と、第1の中継装置101又は第2の中継装置102の接続部の位置と、に基づいた仮想的なMACアドレスを、メインユニット111又はプラットフォーム112、113に割り当て可能な情報であればよい。例えば、所定の数字、メインIDを示した数字、及びサブIDを示した数字を組み合わせて、仮想的なMACアドレスを生成してもよい。この場合、エンドポイント105のメモリ109に、アドレス特定情報として当該所定の数字を記憶する。本実施形態は仮想的なMACアドレスを特定する例を説明したが、特定対象をMACアドレスに制限するものではなく、メインユニット111又はプラットフォーム112、113を特定できるアドレスであればよい。
【0095】
(変形例)
上述した実施形態においては、プラットフォームが他のプラットフォームにデータの送信制御を行う場合について説明した。しかしながら、仮想的なMACアドレスの利用は、実施形態の場合に制限するものではない。
【0096】
図7は、変形例の各プラットフォームにおける共通メモリの構成を例示した説明図である。図7に示されるように、マスタ側プラットフォーム711_1〜711_8と、スレーブ側プラットフォーム712_1〜712_8は、同一構成の共通メモリCM1〜CM16を備えている。
【0097】
共通メモリCM1〜CM16は、それぞれ、第1領域Slot#0〜第16領域Slot#15を備えている。
【0098】
共通メモリCM1における第1領域Slot#0は、マスタ側プラットフォーム711_1が他のマスタ側プラットフォーム711_1〜711_8、スレーブ側プラットフォーム712_1〜712_8から受信すべきデータが書き込まれる領域であり、第2領域Slot#1は、マスタ側プラットフォーム711_1がマスタ側プラットフォーム711_2に対して送信すべきデータ(アプリケーションも含む)を書き込む領域である。同様に、第3領域Slot#2〜第8領域Slot#7は、マスタ側プラットフォーム711_1がマスタ側プラットフォーム711_3〜711_8に送信すべきデータを書き込む領域である。さらに、第9領域Slot#8〜第16領域Slot#15は、マスタ側プラットフォーム711_1が、第2の中継装置102に接続されたスレーブ側プラットフォーム712_1〜712_8に送信すべきデータを書き込む領域である。
【0099】
共通メモリCM2における第2領域Slot#1は、マスタ側プラットフォーム711_2が他のマスタ側プラットフォーム711_1、711_3〜711_8、スレーブ側プラットフォーム712_1〜712_8から受信すべきデータが書き込まれる領域であり、第1領域Slot#0、第3領域Slot#2〜第8領域Slot#7は、マスタ側プラットフォーム711_2が他のマスタ側プラットフォーム711_1、711_3〜711_8に送信すべきデータを書き込む領域である。さらに、第9領域Slot#8〜第16領域Slot#15は、マスタ側プラットフォーム711_2が、第2の中継装置102に接続されたスレーブ側プラットフォーム712_1〜712_8に送信すべきデータを書き込む領域である。
【0100】
以降の共通メモリCM3〜CM16についても同様として説明を省略する。つまり、共有メモリのうち一つの領域は、他のプラットフォームから受信すべきデータが書き込まれる領域であり、共有メモリのうち他の領域は、他のプラットフォームに送信すべきデータが書き込まれる領域である。
【0101】
上記構成においては、いずれかのプラットフォームが他のプラットフォームに送信すべきデータを対応する領域の所定のアドレスに書き込んだ場合には、データを書き込んだ領域のアドレスがデバイスドライバを介してバス制御プロセッサ104に通知される。
【0102】
バス制御プロセッサ104は、通知された領域のアドレスから、書き込まれたデータの転送先のプラットフォームの共通メモリを判別して、対応する領域のアドレス(=送信元のプラットフォームが書き込んだ領域のアドレスと同じアドレス)に転送し、書き込むこととなる。当該制御において、プラットフォームの送信元及び送信先として、仮想的なMACアドレスを用いる。実際に行われるデータの送信手法は、実施形態と同様として説明を省略する。
【0103】
本変形例では、各プラットフォームの演算処理結果を共有メモリから読み出せるので、データの送受信が容易になる。
【0104】
上述した実施形態及び変形例の情報処理システムによれば、複数の中継装置を介して接続された情報処理装置間で通信を行う際に、中継装置の関係を考慮して仮想的なMACアドレスを割り当てることで、仮想的なMACアドレスの競合を抑止できる。これによって、複数の中継装置を介した情報処理装置間で適切な通信処理を実現できる。
【0105】
本発明の実施形態及び変形例を説明したが、この実施形態及び変形例は、例として提示したものであり、発明の範囲を限定することは意図していない。この新規な実施形態及び変形例は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。この実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0106】
1 情報処理システム
101 第1の中継装置
102 第2の中継装置
104 バス制御プロセッサ
105_1〜105_8 エンドポイント
111 メインユニット
112_1〜112_6、711_1〜711_8 マスタ側プラットフォーム
113_1〜113_8、712_1〜712_8 スレーブ側プラットフォーム
114 ルートコンプレックス
108、115、121、131 処理部
109、116、122、132 メモリ
141、151 特定部
142、152 取得部
【要約】
【課題】複数の中継装置を介した情報処理装置間で適切な通信処理を実現する。
【解決手段】本願の開示する情報処理システムは、一つの態様において、第1の中継装置又は第2の中継装置は、第1の中継装置と第2の中継装置との間の関係と、第1の中継装置又は第2の中継装置のエンドポイントの位置と、に基づいたアドレスを、当該エンドポイントの位置に接続された第1の情報処理装置又は第2の情報処理装置に割り当てるためのアドレス特定情報を記憶する記憶部と、第1の中継装置と第2の中継装置との間の関係を特定する特定部と、第1の中継装置又は第2の中継装置のエンドポイントに接続された第1の情報処理装置又は第2の情報処理装置に対して、特定部によって特定された関係と、接続されたエンドポイントの位置と、アドレス特定情報と、に基づいてアドレスを割り当てる処理部と、を備える。
【選択図】図1
図1
図2
図3
図4
図5
図6
図7