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

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

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

<>
  • 特許6700564-情報処理システム 図000002
  • 特許6700564-情報処理システム 図000003
  • 特許6700564-情報処理システム 図000004
  • 特許6700564-情報処理システム 図000005
  • 特許6700564-情報処理システム 図000006
  • 特許6700564-情報処理システム 図000007
  • 特許6700564-情報処理システム 図000008
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】6700564
(24)【登録日】2020年5月8日
(45)【発行日】2020年5月27日
(54)【発明の名称】情報処理システム
(51)【国際特許分類】
   G06F 15/173 20060101AFI20200518BHJP
   G06F 13/38 20060101ALI20200518BHJP
【FI】
   G06F15/173 665C
   G06F15/173 665F
   G06F13/38 350
   G06F13/38 340A
【請求項の数】4
【全頁数】16
(21)【出願番号】特願2018-248670(P2018-248670)
(22)【出願日】2018年12月28日
【審査請求日】2019年3月13日
【早期審査対象出願】
(73)【特許権者】
【識別番号】518133201
【氏名又は名称】富士通クライアントコンピューティング株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】特許業務法人酒井国際特許事務所
(72)【発明者】
【氏名】木村 真敏
(72)【発明者】
【氏名】石田 智弘
【審査官】 井上 宏一
(56)【参考文献】
【文献】 国際公開第2008/018485(WO,A1)
【文献】 特開2007−200319(JP,A)
【文献】 特開2013− 42245(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 15/173
G06F 13/38
(57)【特許請求の範囲】
【請求項1】
それぞれがプロセッサを備えた複数の情報処理装置と、
拡張バスを介して前記複数の情報処理装置を接続可能で、前記複数の情報処理装置の間のデータ転送を中継する中継装置と、を備え、
前記中継装置は、いずれか一つの前記情報処理装置に対して、他の全ての前記情報処理装置を代表し、当該中継装置及び他の前記情報処理装置を一体の情報処理装置として前記データ転送を行う制御部を有し、
各前記情報処理装置は、前記複数の前記情報処理装置のそれぞれに対応する複数の記憶領域を有する共通メモリ領域を有し、自己の前記共通メモリ領域のうち他の情報処理装置に対応する前記共通メモリ領域を用いて、当該他の情報処理装置に対するデータの読み出し及び書き込みを指示し、
前記複数の情報処理装置のいずれか一つは、前記中継装置を介して前記読み出し及び前記書き込みの指示の通知がなされると、自己の前記共通メモリ領域のうち前記中継装置により論理的に接続された前記指示の通知に対応する他の情報処理装置に対応する前記共通メモリ領域を用いて、前記指示の通知に対応する他の情報処理装置との間で前記指示に対応するデータの読み出し及び書き込みを行
前記制御部は、一の前記情報処理装置の前記共通メモリ領域のうち、読み出し及び書き出しが指示されたデータが格納されるアドレスに基づいてデータ転送対象として特定された、他の情報処理装置の前記共通メモリ領域に、当該データの読み出し及び書き込みを行う、
情報処理システム。
【請求項2】
前記制御部は、前記一の前記情報処理装置の前記共通メモリ領域に対するデータの読み出し及び書き込みアドレスに基づいて、データ転送対象の前記他の前記情報処理装置を特定して、前記データの読み込みアドレス及び書き込みアドレスに読み込み及び書き込みされたデータを前記他の前記情報処理装置の前記共通メモリ領域に読み込み及び書き込む、
請求項1記載の情報処理システム。
【請求項3】
前記情報処理装置は、前記中継装置に対するデバイスドライバを介して前記中継装置とのデータのやり取りを行う、
請求項1又は請求項2記載の情報処理システム。
【請求項4】
前記複数の情報処理装置は、前記中継装置に対してルートコンプレックスとして機能し、
前記中継装置は、前記情報処理装置に対してエンドポイントとして機能するとともに、一の前記情報処理装置に対して他の全ての情報処理装置をマスクする、
請求項1乃至請求項3のいずれか一項に記載の情報処理システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理システムに関する。
【背景技術】
【0002】
複数の計算機(演算装置)を用いて並列計算を行なう手法が知られており、例えば、イーサネット(登録商標)回線を用いて計算機間でデータのやりとりを行う情報処理システムが提案されている。
【0003】
このような構成において、いずれか一つの計算機をホストとして機能させ、他の計算機をデバイスとして機能させ、データをやり取りする構成が提案されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2005−275818号公報
【特許文献2】特開2004−086330号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、いずれか一つの計算機をホストとして機能させ、他の計算機をデバイスとして機能させ、データをやり取りする構成においては、ホストとして機能する計算機が動作不良状態となると、情報処理システム全体が動作できない状態に陥る虞があった。またデバイスの数が増加すると比例してホストとして機能する計算機の負荷が増大することとなる。さらに、従来のデバイスは機能や性能が固定化されているため、機能拡張を行う場合等においては、デバイスを追加したり、デバイスを変更する必要があり、デバイスドライバもそれに応じて追加、変更する必要があるため、情報処理システムのスケーラブルな構築が容易ではなかった。
【0006】
ここで、情報処理システムのスケーラブルな構築とは、機能拡張等を行う場合に、ホストとして機能する計算機側としては、デバイスドライバを介した制御負担の増加、デバイスドライバの変更、デバイスドライバの追加等を伴うことなく既に備えているデバイスドライバを介して制御しているデバイスの機能や性能を可変できるように情報処理システムを構築できるということである。
【0007】
あるいは、上述した一つのデバイスに接続されている複数の計算機における分散処理、並列処理などの変更が容易で、例えば、入力データを変更せずに出力データの処理(例えば、解析処理)を変更して異なる解析結果を容易に得ることができるように情報処理システムを構築することである。
【0008】
そこで、本発明は、様々なオペレーティングシステムを搭載した計算機を複数接続しつつ、情報処理システムをスケーラブルに構築することが可能な情報処理システムを提供することを目的としている。
【課題を解決するための手段】
【0009】
上記課題を解決するため、本発明の第1態様にかかる情報処理システムは、それぞれがプロセッサを備えた複数の情報処理装置と、拡張バスを介して前記複数の情報処理装置を接続可能で、前記複数の情報処理装置の間の通信を中継する中継装置と、を備え、前記中継装置は、いずれか一つの前記情報処理装置に対して、他の全ての前記情報処理装置を代表し、当該中継装置及び他の前記情報処理装置を一体の情報処理装置として前記通信を行う制御部を有し、各前記情報処理装置は、前記複数の前記情報処理装置のそれぞれに対応する複数の記憶領域を有する共通メモリ領域を有し、自己の前記共通メモリ領域のうち他の情報処理装置に対応する前記共通メモリ領域を用いて、当該他の情報処理装置に対するデータの読み出し及び書き込みを指示し、前記複数の情報処理装置のいずれか一つは、前記中継装置を介して前記読み出し及び前記書き込みの指示の通知がなされると、自己の前記共通メモリ領域のうち前記中継装置により論理的に接続された前記指示の通知に対応する他の情報処理装置に対応する前記共通メモリ領域を用いて、前記指示の通知に対応する他の情報処理装置との間で前記指示に対応するデータの読み出し及び書き込みを行前記制御部は、一の前記情報処理装置の前記共通メモリ領域のうち、読み出し及び書き出しが指示されたデータが格納されるアドレスに基づいてデータ転送対象として特定された、他の情報処理装置の前記共通メモリ領域に、当該データの読み出し及び書き込みを行う
【0012】
また、前記中継装置は、一の前記情報処理装置の前記共通メモリ領域に対するデータ書込アドレスに基づいて、通信対象の他の前記情報処理装置を特定して、前記データ書込アドレスに書き込まれたデータを前記他の前記情報処理装置の前記共通メモリ領域に書き込む、ようにしてもよい。
【0013】
また、前記情報処理装置は、前記中継装置に対するデバイスドライバを介して前記中継装置とのデータのやり取りを行うようにしてもよい。
【0014】
また、前記複数の情報処理装置は、前記中継装置に対してルートコンプレックスとして機能し、前記中継装置は、前記情報処理装置に対してエンドポイントとして機能するとともに、一の前記情報処理装置に対して他の全ての情報処理装置をマスクするようにしてもよい。
【発明の効果】
【0015】
本発明の上記態様によれば、中継装置の制御部は、いずれか一つの情報処理装置に対して、他の全ての情報処理装置を代表して通信を行うので、いずれかの情報処理装置に通信負荷が掛かることもなく、新たに情報処理装置を追加したり、各情報処理装置の処理内容を変更したりすることが容易となり、様々なオペレーティングシステムを搭載した計算機を複数接続しつつ、情報処理システムをスケーラブルに構築することができる。
【図面の簡単な説明】
【0016】
図1図1は、プラットホームのソフトウェア構成例の説明図である。
図2図2は、他のプラットホームが一つのプラットホームからどのように見えるのかを説明する図である。
図3図3は、各プラットホームにおける共通メモリの構成説明図である。
図4図4は、データ書込動作の説明図である。
図5図5は、データ書込動作のタイミングチャートである。
図6図6は、データ読出動作の説明図である。
図7図7は、データ読出動作のタイミングチャートである。
【発明を実施するための形態】
【0017】
以下、図面を参照して本情報処理システムに係る実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
【0018】
[1]実施形態
以下の説明においては、拡張バスの一例としてPCIe(PCI Express)[登録商標]を用いる場合について説明する。
【0019】
図1は、プラットホームのソフトウェア構成例の説明図である。
プラットホーム12−1〜プラットホーム12−7に備えられるMPUは、互いに違うベンダによって提供されるものであってもよい。
プラットホーム12−1は、アプリケーション30−1の制御下で各種処理を行う。
【0020】
プラットホーム12−1には、ブートローダ(Boot loader)を起動するバイオス(BIOS:Basic Input Output System)34が組み込まれており、ブートローダによりOS33−1(例えば、Windows[登録商標])を検出し、起動する。
【0021】
これによりOS33−1は、PCIeブリッジコントローラ23を制御するためのブリッジドライバ32を含む各種ドライバ31を読み込んで、ブリッジドライバ32及びPCプラットホーム37−2を介して電気的にPCIeブリッジコントローラ23にアクセスして他のプラットホーム12−2〜12−7との通信を行い、実際の処理を行う。なお、ここでは、PCプラットホーム37−2を用いる場合について説明しているが、これに限定されるものではなく他のプラットホームであっても適用が可能である。
【0022】
次にプラットホーム12−2〜12−7について説明する。
プラットホーム12−2〜12−7は、同様の構成であるので、プラットホーム12−2を例として説明する。
プラットホーム12−2は、アプリケーション30−2の制御下で各種処理を行う。
【0023】
プラットホーム12−2には、ブートローダ(Boot loader)36−2が組み込まれており、ブートローダによりOS33−2(例えば、Linux;登録商標)を検出し、起動する。
これによりOS33−2は、PCIeブリッジコントローラ23を制御するためのブリッジドライバ32を読み込んで、ブリッジドライバ32及びハードウェアプラットホーム37−2を介して電気的にPCIeブリッジコントローラ23にアクセスして他のプラットホーム12−1、12−3〜12−7との通信を行い、実際の処理を行う。
【0024】
また、上記構成において、プラットホーム12−1〜12−7は、それぞれ他のドライバ構成に影響を与えないように独立動作可能に構成されている。
【0025】
図2は、他のプラットホームが一つのプラットホームからどのように見えるのかを説明する図である。
ここでは、一例として一つのプラットホームとしてプラットホーム12−1あるいはプラットホーム12−6であり、当該プラットホームから他のプラットホームがどのように見えるのかを説明する図である。
【0026】
図2(a)は、プラットホーム12−1がPCIeブリッジコントローラ23を介して他のプラットホーム12−2〜12−7と通信を行う場合の説明図である。
【0027】
この場合においては、プラットホーム12−1からは、PCIeブリッジコントローラ23のみが見え、プラットホーム12−2〜12−7は、PCIeブリッジコントローラ23によりマスクされた状態であり存在していないのと同様な状態となっている。
【0028】
したがって、プラットホーム12−1は、ルートコンプレックスとして機能し、プラットホーム12−2〜12−7に対して通信を行う際には、見かけ上、唯一のエンドポイントであるPCIeブリッジコントローラ23に対する通信を行っているように動作している。
【0029】
一方、プラットホーム12−6からは、PCIeブリッジコントローラ23のみが見え、プラットホーム12−1〜12−5及びプラットホーム12−7は、PCIeブリッジコントローラ23によりマスクされた状態であり存在していないのと同様な状態となっている。
【0030】
したがって、プラットホーム12−6は、ルートコンプレックスとして機能し、プラットホーム12−1〜12−5及びプラットホーム12−7に対して通信を行う際には、見かけ上、唯一のエンドポイントであるPCIeブリッジコントローラ23に対する通信を行っているように動作している。
さらにプラットホーム12−1〜12−5及びプラットホーム12−7も同様である。
【0031】
したがって、全てのプラットホーム12−1〜12−7は、デバイスドライバを介して制御する一つのデバイスであるPCIeブリッジコントローラ23のみが見えており、PCIeブリッジコントローラ23を介して接続された他のプラットホームについては、マスクされた状態(見えない状態)こととなっており、いずれかのプラットホームからは、PCIeブリッジコントローラ23及び他の全てのプラットホームは、一つの情報処理装置と認識される(みなされる)ため、他のいずれかのプラットホームあるいは複数のプラットホームにより実現される機能や性能を変更したとしても、デバイスドライバの変更を伴うことなく処理を継続でき、全体として、スケーラブルな情報処理システムを構築することが可能となっている。
【0032】
また、いずれか一のプラットホーム(例えば、プラットホーム12−1)が情報処理システム10全体の管理を行う場合であっても、PCIeブリッジコントローラ23を介してアプリケーション等を予め転送して、一つのデバイスであるPCIeブリッジコントローラ23に接続されている複数の計算機であるプラットホーム12−2〜12−7における処理内容、処理順番を割り当てることができ、分散処理、並列処理などの処理内容や、処理割当の変更が容易となる。したがって、例えば、入力データを変更せずに処理(例えば、解析処理)を変更して異なる解析結果としての出力データを容易に得ることができるようにスケーラブルな情報処理システム10を構築することが可能となっている。
【0033】
図3は、各プラットホームにおける共通メモリの構成説明図である。
プラットホーム12−1〜12−7は、同一構成の共通メモリCM1〜CM7を備えている。
共通メモリCM1〜CM7は、それぞれ、第1領域Slot#0〜第7領域Slot#0を備えている。
【0034】
共通メモリCM1における第1領域Slot#0は、プラットホーム12−1が他のプラットホーム12−2〜12−7から受信すべきデータが書き込まれる領域であり、第2領域Slot#1は、プラットホーム12−1がプラットホーム12−2に対して送信すべきデータ(アプリケーションも含む)を書き込む領域である。同様に、第3領域Slot#2〜第7領域Slot#6は、それぞれプラットホーム12−1がプラットホーム12−4〜12−7に送信すべきデータを書き込む領域である。
【0035】
また、共通メモリCM2における第2領域Slot#1は、プラットホーム12−2が他のプラットホーム12−1、12−3〜12−7から受信すべきデータが書き込まれる領域であり、第1領域Slot#0、第3領域Slot#2〜第7領域Slot#6は、それぞれプラットホーム12−2が他のプラットホーム12−1、12−3〜12−7に送信すべきデータを書き込む領域である。
【0036】
また、共通メモリCM3における第3領域Slot#2は、プラットホーム12−3が他のプラットホーム12−1、12−2、12−4〜12−7から受信すべきデータが書き込まれる領域であり、第1領域Slot#0、第2領域Slot#1、第4領域Slot#3〜第7領域Slot#6は、それぞれプラットホーム12−3が他のプラットホーム12−1、12−2、12−4〜12−7に送信すべきデータを書き込む領域である。
【0037】
また、共通メモリCM4における第4領域Slot#3は、プラットホーム12−4が他のプラットホーム12−1〜12−3、12−5〜12−7から受信すべきデータが書き込まれる領域であり、第1領域Slot#0〜第3領域Slot#2、第5領域Slot#4〜第7領域Slot#6は、それぞれプラットホーム12−4が他のプラットホーム12−1〜12−3、12−5〜12−7に送信すべきデータを書き込む領域である。
【0038】
また、共通メモリCM5における第5領域Slot#4は、プラットホーム12−5が他のプラットホーム12−1〜12−4、12−6、12−7から受信すべきデータが書き込まれる領域であり、第1領域Slot#0〜第4領域Slot#3、第6領域Slot#5、第7領域Slot#6は、それぞれプラットホーム12−5が他のプラットホーム12−1〜12−3、12−6、12−7に送信すべきデータを書き込む領域である。
【0039】
また、共通メモリCM6における第6領域Slot#5は、プラットホーム12−6が他のプラットホーム12−1〜12−5、12−7から受信すべきデータが書き込まれる領域であり、第1領域Slot#0〜第5領域Slot#4、第7領域Slot#6は、それぞれプラットホーム12−6が他のプラットホーム12−1〜12−5、12−7に送信すべきデータを書き込む領域である。
【0040】
また、共通メモリCM7における第7領域Slot#6は、プラットホーム12−7が他のプラットホーム12−1〜12−6から受信すべきデータが書き込まれる領域であり、第1領域Slot#0〜第6領域Slot#5は、それぞれプラットホーム12−7が他のプラットホーム12−1〜12−6に送信すべきデータを書き込む領域である。
【0041】
上記構成においては、いずれかのプラットホームが他のプラットホームに送信すべきデータを対応する領域の所定のアドレスに書き込んだ場合には、データを書き込んだ領域のアドレスがデバイスドライバを介してブリッジコントローラ23に通知される。
【0042】
ブリッジコントローラ23は、通知された領域のアドレスから、書き込まれたデータの転送先のプラットホームの共通メモリを判別して、対応する領域のアドレス(=送信元のプラットホームが書き込んだ領域のアドレスと同じアドレス)に転送し、書き込むこととなる。
【0043】
例えば、プラットホーム12−1が指定した処理対象データに対し、プラットホーム12−2が演算処理を行い、演算結果をプラットホーム12−1に返す場合には、以下のようになる。
プラットホーム12−1は、処理対象データを共通メモリCM1の第2領域Slot#1の所定のアドレスに書き込む。
【0044】
これによりプラットホーム12−1のデバイスドライバは、共通メモリCM1の第2領域Slot#1の所定のアドレスに対応するアドレス情報をPCIeブリッジコントローラ23に通知する。
【0045】
ブリッジコントローラ23は、アドレス情報を解析し、プラットホーム12−2のデバイスドライバを介して処理対象データを共通メモリCM2の第2領域Slot#1の対応するアドレスに書き込む。
【0046】
これにより、プラットホーム12−2は、当該処理対象データを共通メモリCM2の第2領域Slot#1から読み出し、読み出した処理対象データに対して演算処理を行い、演算結果を、共通メモリCM2の第1領域Slot#0の所定のアドレスに書き込む。
【0047】
これによりプラットホーム12−2のデバイスドライバは、共通メモリCM2の第1領域Slot#0の所定のアドレスに対応するアドレス情報をPCIeブリッジコントローラ23に通知する。
ブリッジコントローラ23は、アドレス情報を解析し、プラットホーム12−1のデバイスドライバを介して処理対象データを共通メモリCM1の第1領域Slot#0の対応するアドレスに書き込む。
【0048】
これらの結果、プラットホーム12−1は、演算処理結果を共通メモリCM1の第1領域Slot#0の対応するアドレスから読み出すことで、受信することとなる。
【0049】
次により具体的な動作を説明する。
まずは、データの書込動作について説明する。
ここでは、一例としてプラットホーム12−1がプラットホーム12−6に対してデータを書き込む場合の動作を説明する。
【0050】
図4は、データ書込動作の説明図である。
また、図5は、データ書込動作のタイミングチャートである。
図4に示すように、プラットホーム12−1及びプラットホーム12−6は、それぞれアプリケーション(図中、アプリと表記)、ブリッジコントローラ用デバイスドライバ(図中、ドライバと表記)、オペレーティングシステム(OS)およびプロセッサを備えており、エンドポイント(EP)としてのPCIeブリッジコントローラ23に対して、それぞれルートコンプレックス(RC)として一対一に接続されていると認識している。
【0051】
この場合において、図5に示すように、プラットホーム12−1は、PCIeブリッジコントローラ23に対して物理的な第1スロットSlot#0を介してルートコンプレックスとしてリンクが確立した状態で接続されており(ステップS11)、プラットホーム12−6は、PCIeブリッジコントローラ23に対して物理的な第6スロットSlot#5を介してルートコンプレックスとしてリンクが確立した状態で接続されているものとする(ステップS12)。
【0052】
この状態においてプラットホーム12−1は、プラットホーム12−6にデータを書き込むための共通メモリCM1の所定の書込アドレス(対象アドレス)を取得する(ステップS13)。
これにより、プラットホーム12−1は、共通メモリCM1の所定の対象アドレスにデータを書き込む(ステップS14)。
【0053】
続いて、プラットホーム12−1は、データ送信先の物理スロットを判定し(ステップS15)、PCIeブリッジコントローラ23に対してデータ(アドレスデータ)を送信する(ステップS16)。
【0054】
この結果、PCIeブリッジコントローラ23は、アドレスデータを解析して、データ書込先を判定する(ステップS17)。
本例においては、データ送信先が、プラットホーム12−6であると判定される。
【0055】
そして、PCIeブリッジコントローラ23は、プラットホーム12−1が接続されている第1スロットSlot#0と、プラットホーム12−6が接続されている第6スロットSlot#5に対応する第領域Slot#と第6領域Slot#5とを論理的に接続する(ステップS17)。
【0056】
この結果、共通メモリCM1の第1領域Slot#0の対象アドレスのデータが、共通メモリCM6の第6領域Slot#5の対象アドレスに転送され、書き込まれることとなる。
【0057】
続いて、プラットホーム12−1は、PCIeバスのメモリトランザクションとしての割込であるMSI(Message Signaled Interrupt)をPCIeブリッジコントローラ23を介して、プラットホーム12−6に通知する(ステップS18)。
【0058】
この結果、プラットホーム12−6は、共通メモリCM6にデータが書き込まれたことを知ることとなり、プラットホーム12−6のアプリケーションは、共通メモリCM6の第6領域Slot#5からデータを読み出し、所定の演算処理を施すこととなる。
【0059】
次に、データの読出動作について説明する。
ここでは、一例としてプラットホーム12−1がプラットホーム12−6からデータを読み出す場合の動作を説明する。
【0060】
図6は、データ読出動作の説明図である。
また、図7は、データ読出動作のタイミングチャートである。
図6においても、図4の場合と同様に、プラットホーム12−1及びプラットホーム12−6は、それぞれアプリケーション(図中、アプリと表記)、ブリッジコントローラ用デバイスドライバ(図中、ドライバと表記)、オペレーティングシステム(OS)およびプロセッサを備えており、エンドポイント(EP)としてのPCIeブリッジコントローラ23に対して、それぞれルートコンプレックス(RC)として一対一に接続されていると認識している。
【0061】
この場合において、図7に示すように、プラットホーム12−1は、PCIeブリッジコントローラ23に対して物理的な第1スロットSlot#0を介してルートコンプレックスとしてリンクが確立した状態で接続されており(ステップS21)、プラットホーム12−6は、PCIeブリッジコントローラ23に対して物理的な第6スロットSlot#5を介してルートコンプレックスとしてリンクが確立した状態で接続されているものとする(ステップS22)。
【0062】
この状態においてプラットホーム12−1は、プラットホーム12−6からデータを読み出すための読出アドレス(対象アドレス)データを準備する(ステップS23)。
これにより、プラットホーム12−1は、共通メモリCM1の所定の対象アドレスに読出アドレスデータを書き込む(ステップS24)。
【0063】
続いて、プラットホーム12−1は、データ送信先の物理スロットを判定し(ステップS25)、PCIeブリッジコントローラ23に対して読出アドレスデータを送信する(ステップS26)。
【0064】
この結果、PCIeブリッジコントローラ23は、読出アドレスデータを解析して、データ読出先を判定する(ステップS27)。
【0065】
本例においては、データ読出先が、プラットホーム12−6であると判定される。
この結果、PCIeブリッジコントローラ23は、プラットホーム12−1が接続されている第1スロットSlot#0と、プラットホーム12−6が接続されている第6スロットSlot#5に対応する第6領域Slot#5と第6領域Slot#5とを論理的に接続する(ステップS28)。
【0066】
続いて、プラットホーム12−1は、PCIeバスのメモリトランザクションとしての割込であるMSI(Message Signaled Interrupt)をPCIeブリッジコントローラ23を介して、プラットホーム12−6に通知する(ステップS29)。
【0067】
この結果、割込がなされたプラットホーム12−6は、データ解析を行い(ステップS30)、データの読出が要求されていることを知ることとなり、プラットホーム12−6のアプリケーションは、自己のメモリの対象アドレスからデータを読み出し、プラットホーム12−1に指定された共通メモリCM6の第1領域Slot#1のアドレスに読み出したデータを書き込むとともに、PCIeブリッジコントローラにその旨を通知することとなる(ステップS40)。
【0068】
これにより、PCIeブリッジコントローラ23は、データ送信先を判定し(ステップS41)、プラットホーム12−1が接続されている第1スロットSlot#0と、プラットホーム12−6が接続されている第6スロットSlot#5に対応する第1領域Slot#0を論理的に接続する(ステップS28)。
【0069】
これにより、プラットホーム12−1は、指定した第1領域Slot#0の読出アドレスからデータを読み出して、トラップする(ステップS43)。
【0070】
続いてプラットホーム12−1は、読み出したデータを、自己の物理メモリにシャドーイングする(ステップS44)。
続いて、PCIeブリッジコントローラ23にデータ読出を行った旨を通知し、ひいては、プラットホーム12−6にその旨を通知し、処理を終了する(ステップS45)。
【0071】
以上の説明のように、本実施形態によれば、各プラットホーム12−1〜プラットホーム12−7は、エンドポイントとして機能するPCIeブリッジコントローラ23に対して共通メモリCM1〜CM7を介して、実効的にデータの書き込みあるいはデータの読み出しを指示するだけで、他のプラットホームを意識することなく、データの読み出し及び書き込みが行える。
【0072】
以上の説明は、通常の処理データの書き込み及び読み出しの場合を例としていたが、例えば、プラットホーム12−1が統括的な機能を有し、他のプラットホーム12−2〜12−7に対してアプリケーションをインストールするような場合でも同様に適用が可能である。
【0073】
すなわち、アプリケーションをインストールする側のプラットホームは、他のプラットホームの存在を認識している状態であれば、データの読み出し及び書き込みに関しては、デバイスドライバを介して制御する一つのデバイスであPCIeブリッジコントローラ23に対して共通メモリCM1〜CM7を介して、データの書き込みあるいはデータの読み出しを指示するだけでよいので、実効的に全てのプラットホーム12−1〜12−7は、他のいずれかのプラットホームあるいは複数のプラットホームにより実現される機能や性能を変更したとしても、デバイスドライバの変更を伴うことなく処理を継続でき、全体として、スケーラブルな情報処理システムを構築することが容易となっている。
【0074】
また、例えば、いずれか一のプラットホーム(例えば、プラットホーム12−1)が他の一又は複数のプラットホーム(例えば、プラットホーム12−2〜12−7)、ひいては、情報処理システム10全体の管理を行う場合であっても、PCIeブリッジコントローラ23に対してのみ指示を行うだけで、他の所望のプラットホームに対して予めアプリケーション等を転送して、当該他のプラットホームにおける処理内容、処理順番を割り当てることができ、他のプラットホームに行わせる分散処理、並列処理などの処理内容や、処理割当の変更が容易となる。
したがって、例えば、処理を行わせるべき他のプラットホームにおける入力データ(管理側からの出力データ)を変更せずに出力データの処理(例えば、解析処理)を変更して異なる解析結果を容易に得ることができるようにスケーラブルな情報処理システム10を構築することができる。
【0075】
[2]その他
そして、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成および各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
【0076】
例えば、図1に示した構成においては、PCIeブリッジコントローラ23には、7つのプラットホーム12−1〜12−7を、接続可能としていたが、これに限定されるものではなくPCIeブリッジコントローラ23は6個以下もしくは8個以上の複数のプラットホームを備えるようにすることも可能である。
【0077】
また、上述の実施形態では、各部のI/OインターフェースとしてPCIe(PCIエクスプレス)を例に挙げて説明したが、I/Oインターフェースとしては、PCIeに限定されるものではない。
例えば、各部のI/Oインターフェースは、データ転送バスによって、デバイス(周辺制御コントローラ)とプロセッサとの間でデータ転送を行える技術であればよい。
【0078】
また、データ転送バスは、1個の筐体等に設けられたローカルな環境(例えば、1つのシステムまたは1つの装置)で高速にデータを転送できる汎用のバスであってよい。
また、I/Oインターフェースは、パラレルインターフェース及びシリアルインターフェースのいずれであってもよい。
【0079】
また、I/Oインターフェースは、シリアル転送の場合、ポイント・ツー・ポイント(point to point)接続ができ、データをパケットベースで転送可能であればよい。
また、I/Oインターフェースは、シリアル転送の場合、複数のレーンを有するようにしてもよい。
【0080】
また、I/Oインターフェースのレイヤー構造は、パケットの生成及び復号を行うトランザクション層と、エラー検出等を行うデータリンク層と、シリアルとパラレルとを変換する物理層と、を有していてもよい。
【0081】
また、I/Oインターフェースは、階層の最上位であり1または複数のポートを有するルートコンプレックス、I/Oデバイスであるエンドポイント、ポートを増やすためのスイッチ、及び、プロトコルを変換するブリッジ等を含んでいてもよい。
【0082】
また、I/Oインターフェースは、送信するデータとクロック信号とをマルチプレクサによって多重化して送信するようにしてもよい。この場合には、受信側は、デマルチプレクサでデータとクロック信号を分離すればよい。
【0083】
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
【0084】
[3]実施形態の他の態様
以上の実施形態に関し、さらに他の態様について記載する。
【0085】
[3.1]第1の他の態様
実施形態の第1の他の態様の情報処理システムは、それぞれがプロセッサを備えた複数の情報処理装置と、拡張バスを介して前記複数の情報処理装置を接続可能で、前記複数の情報処理装置の間の通信を中継する中継装置と、を備え、中継装置は、いずれか一つの前記情報処理装置に対して、他の全ての前記情報処理装置を代表し、当該中継装置及び他の前記情報処理装置を一体の情報処理装置として前記通信を行う制御部を有する、情報処理システムである。
上記構成によれば、中継装置の制御部は、いずれか一つの前記情報処理装置に対して、他の全ての情報処理装置を代表し、当該中継装置及び他の前記情報処理装置を一体の情報処理装置として通信を行うこととなるので、いずれか一つの情報処理装置は、中継装置及び他の情報処理装置を一つの情報処理装置として認識し(みなす)ため、他のいずれかの情報処理装置あるいは複数の情報処理装置により実現される機能や性能を変更したとしても、制御対象が同一であるとして処理を継続でき、全体として、スケーラブルな情報処理システムを構築することができる。
[3.2]第2の他の態様
実施形態の第2の他の態様の情報処理システムにおいては、各前記情報処理装置は、前記複数の前記情報処理装置のそれぞれに対応する複数の記憶領域を有する共通メモリ領域を有し、前記共通メモリ領域を介して、他の前記情報処理装置に対するデータの読み出し及び書き込みの指示を前記中継装置に対して行う第1の他の態様に記載の情報処理システムである。
上記構成によれば、中継装置は、共通メモリ領域を参照すればデータの読み出し及び書き込みの処理を行えるので、情報処理システム全体として実現される機能や性能を変更したとしても、制御対象が同一であるとして処理が行え、全体として、スケーラブルな情報処理システムを構築することができる。
[3.3]第3の他の態様
実施形態の第3の他の態様の情報処理システムにおいては、前記中継装置は、前記指示により任意の二つの情報処理装置間においてデータの読み出し及び書き込みを行う第2の他の態様に記載の情報処理システムである。
上記構成によれば、情報処理システムがスケーラブルに変化しても、中継装置は、二つの情報処理装置間において行うデータの読み出し及び書き込みを行うだけであり、情報処理装置側からは同一のデバイスである中継装置に対して読み出し及び書き込みを行うだけであるので、処理手順が簡略化され、情報処理システムのスケーラブルな構築に容易に対応することができる。
[3.4]第4の他の態様
実施形態の第4の他の態様の情報処理システムにおいては、前記中継装置は、一の前記情報処理装置の前記共通メモリ領域に対するデータ書込アドレスに基づいて、通信対象の他の前記情報処理装置を特定して、前記データ書込アドレスに書き込まれたデータを前記他の前記情報処理装置の前記共通メモリ領域に書き込む、第2の他の態様又は第3の他の態様に記載の情報処理システムである。
上記構成によれば、中継装置は、共通メモリ領域に対するデータのやり取りを行うだけで通信が可能となるので、情報処理システム全体としての機能や性能を変更したり、情報処理装置数が増加したりしても容易に対応して、システムのスケーラブルな構築を行える。
[3.5]第5の他の態様
実施形態の第5の他の態様の情報処理システムにおいては、前記情報処理装置は、前記中継装置に対するデバイスドライバを介して前記中継装置とのデータのやり取りを行う、第1の他の態様乃至第4の他の態様のいずれかに記載の情報処理システムである。
上記構成によれば、情報処理装置を増加しようとする場合であっても中継装置に対するデバイスドライバを作成するだけで中継装置を介して他の情報処理装置と通信可能に接続することができ、あるいは、情報処理システム全体としての機能や性能を変更したりした場合であっても、各情報処理装置としては同じデバイスドライバで制御を行う点に変更はなく、容易にシステムのスケーラブルな構築を行える。
[3.6]第6の他の態様
実施形態の第6の他の態様の情報処理システムにおいては、前記複数の情報処理装置は、前記中継装置に対してルートコンプレックスとして機能し、前記中継装置は、前記情報処理装置に対してエンドポイントとして機能するとともに、一の前記情報処理装置に対して他の全ての情報処理装置をマスクする、第1の他の態様乃至第5の他の態様のいずれかに記載の情報処理システムである。
上記構成によれば、いずれの情報処理装置も中継装置との通信を行うだけで、他の情報処理装置と対等に通信を行うことができ、報処理システム全体としての機能や性能を変更したりしても、通信手順は同様であり、容易にシステムのスケーラブルな構築を行える。
【符号の説明】
【0086】
10 情報処理システム
11 ブリッジボード
12−1 プラットホーム(ルートコンプレックス)
12−2〜12−7 プラットホーム(エンドポイント)
21 電源ユニット
22 DC−DCコンバータ
23 PCIeブリッジコントローラ(制御部)
【要約】
【課題】様々なオペレーティングシステムを搭載した計算機を複数接続しつつ、情報処理システムをスケーラブルに構築する。
【解決手段】情報処理システムは、情報処理システムは、それぞれがプロセッサを備えた複数の情報処理装置と、拡張バスを介して前記複数の情報処理装置を接続可能で、前記複数の情報処理装置の間の通信を中継する中継装置と、を備え、中継装置は、いずれか一つの前記情報処理装置に対して、他の全ての前記情報処理装置を代表し、当該中継装置及び他の情報処理装置を一体の情報処理装置として通信を行う制御部を有する。
【選択図】図3
図1
図2
図3
図4
図5
図6
図7