(57)【要約】【課題】様々なオペレーティングシステムを搭載した計算機を複数接続しつつ、情報処理システムをスケーラブルに構築する。【解決手段】情報処理システムは、情報処理システムは、それぞれがプロセッサを備えた複数の情報処理装置と、拡張バスを介して前記複数の情報処理装置を接続可能で、前記複数の情報処理装置の間の通信を中継する中継装置と、を備え、中継装置は、いずれか一つの前記情報処理装置に対して、他の全ての前記情報処理装置を代表し、当該中継装置及び他の情報処理装置を一体の情報処理装置として通信を行う制御部を有する。【選択図】図３
2020109555.tif 000002
【特許請求の範囲】
【請求項１】
それぞれがプロセッサを備えた複数の情報処理装置と、
拡張バスを介して前記複数の情報処理装置を接続可能で、前記複数の情報処理装置の間の通信を中継する中継装置と、を備え、
前記中継装置は、いずれか一つの前記情報処理装置に対して、他の全ての前記情報処理装置を代表し、当該中継装置及び他の前記情報処理装置を一体の情報処理装置として前記通信を行う制御部を有する、
情報処理システム。
【請求項２】
各前記情報処理装置は、前記複数の前記情報処理装置のそれぞれに対応する複数の記憶領域を有する共通メモリ領域を有し、前記共通メモリ領域を介して、他の前記情報処理装置に対するデータの読み出し及び書き込みの指示を前記中継装置に対して行う、
請求項１記載の情報処理システム。
【請求項３】
前記中継装置は、前記指示により任意の二つの情報処理装置間においてデータの読み出し及び書き込みを行う、
請求項２記載の情報処理システム。
【請求項４】
前記中継装置は、一の前記情報処理装置の前記共通メモリ領域に対するデータ書込アドレスに基づいて、通信対象の他の前記情報処理装置を特定して、前記データ書込アドレスに書き込まれたデータを前記他の前記情報処理装置の前記共通メモリ領域に書き込む、
請求項２又は請求項３記載の情報処理システム。
【請求項５】
前記情報処理装置は、前記中継装置に対するデバイスドライバを介して前記中継装置とのデータのやり取りを行う、
請求項１乃至請求項４のいずれか一項に記載の情報処理システム。
【請求項６】
前記複数の情報処理装置は、前記中継装置に対してルートコンプレックスとして機能し、
前記中継装置は、前記情報処理装置に対してエンドポイントとして機能するとともに、一の前記情報処理装置に対して他の全ての情報処理装置をマスクする、
請求項１乃至請求項５のいずれか一項に記載の情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システムに関する。
【背景技術】
【０００２】
複数の計算機（演算装置）を用いて並列計算を行なう手法が知られており、例えば、イーサネット（登録商標）回線を用いて計算機間でデータのやりとりを行う情報処理システムが提案されている。
【０００３】
このような構成において、いずれか一つの計算機をホストとして機能させ、他の計算機をデバイスとして機能させ、データをやり取りする構成が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−２７５８１８号公報
【特許文献２】特開２００４−０８６３３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、いずれか一つの計算機をホストとして機能させ、他の計算機をデバイスとして機能させ、データをやり取りする構成においては、ホストとして機能する計算機が動作不良状態となると、情報処理システム全体が動作できない状態に陥る虞があった。またデバイスの数が増加すると比例してホストとして機能する計算機の負荷が増大することとなる。さらに、従来のデバイスは機能や性能が固定化されているため、機能拡張を行う場合等においては、デバイスを追加したり、デバイスを変更する必要があり、デバイスドライバもそれに応じて追加、変更する必要があるため、情報処理システムのスケーラブルな構築が容易ではなかった。
【０００６】
ここで、情報処理システムのスケーラブルな構築とは、機能拡張等を行う場合に、ホストとして機能する計算機側としては、デバイスドライバを介した制御負担の増加、デバイスドライバの変更、デバイスドライバの追加等を伴うことなく既に備えているデバイスドライバを介して制御しているデバイスの機能や性能を可変できるように情報処理システムを構築できるということである。
【０００７】
あるいは、上述した一つのデバイスに接続されている複数の計算機における分散処理、並列処理などの変更が容易で、例えば、入力データを変更せずに出力データの処理（例えば、解析処理）を変更して異なる解析結果を容易に得ることができるように情報処理システムを構築することである。
【０００８】
そこで、本発明は、様々なオペレーティングシステムを搭載した計算機を複数接続しつつ、情報処理システムをスケーラブルに構築することが可能な情報処理システムを提供することを目的としている。
【課題を解決するための手段】
【０００９】
上記課題を解決するため、本発明の第１態様にかかる情報処理システムは、  それぞれがプロセッサを備えた複数の情報処理装置と、拡張バスを介して前記複数の情報処理装置を接続可能で、前記複数の情報処理装置の間の通信を中継する中継装置と、を備え、前記中継装置は、いずれか一つの前記情報処理装置に対して、他の全ての前記情報処理装置を代表し、当該中継装置及び他の前記情報処理装置を一体の情報処理装置として前記通信を行う制御部を有する。
【００１０】
上記構成において、各前記情報処理装置は、前記複数の前記情報処理装置のそれぞれに対応する複数の記憶領域を有する共通メモリ領域を有し、前記共通メモリ領域を介して、他の前記情報処理装置に対するデータの読み出し及び書き込みの指示を前記中継装置に対して行うようにしてもよい。
【００１１】
また、前記中継装置は、前記指示により任意の二つの情報処理装置間においてデータの読み出し及び書き込みを行うようにしてもよい。
【００１２】
また、前記中継装置は、一の前記情報処理装置の前記共通メモリ領域に対するデータ書込アドレスに基づいて、通信対象の他の前記情報処理装置を特定して、前記データ書込アドレスに書き込まれたデータを前記他の前記情報処理装置の前記共通メモリ領域に書き込む、ようにしてもよい。
【００１３】
また、前記情報処理装置は、前記中継装置に対するデバイスドライバを介して前記中継装置とのデータのやり取りを行うようにしてもよい。
【００１４】
また、前記複数の情報処理装置は、前記中継装置に対してルートコンプレックスとして機能し、前記中継装置は、前記情報処理装置に対してエンドポイントとして機能するとともに、一の前記情報処理装置に対して他の全ての情報処理装置をマスクするようにしてもよい。
【発明の効果】
【００１５】
本発明の上記態様によれば、中継装置の制御部は、いずれか一つの情報処理装置に対して、他の全ての情報処理装置を代表して通信を行うので、いずれかの情報処理装置に通信負荷が掛かることもなく、新たに情報処理装置を追加したり、各情報処理装置の処理内容を変更したりすることが容易となり、様々なオペレーティングシステムを搭載した計算機を複数接続しつつ、情報処理システムをスケーラブルに構築することができる。
【図面の簡単な説明】
【００１６】
【図１】図１は、プラットホームのソフトウェア構成例の説明図である。
【図２】図２は、他のプラットホームが一つのプラットホームからどのように見えるのかを説明する図である。
【図３】図３は、各プラットホームにおける共通メモリの構成説明図である。
【図４】図４は、データ書込動作の説明図である。
【図５】図５は、データ書込動作のタイミングチャートである。
【図６】図６は、データ読出動作の説明図である。
【図７】図７は、データ読出動作のタイミングチャートである。
【発明を実施するための形態】
【００１７】
以下、図面を参照して本情報処理システムに係る実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
【００１８】
［１］実施形態
以下の説明においては、拡張バスの一例としてＰＣＩｅ（ＰＣＩ  Ｅｘｐｒｅｓｓ）［登録商標］を用いる場合について説明する。
【００１９】
図１は、プラットホームのソフトウェア構成例の説明図である。
プラットホーム１２−１〜プラットホーム１２−７に備えられるＭＰＵは、互いに違うベンダによって提供されるものであってもよい。
プラットホーム１２−１は、アプリケーション３０−１の制御下で各種処理を行う。
【００２０】
プラットホーム１２−１には、ブートローダ（Boot  loader）を起動するバイオス（BIOS：Basic  Input  Output  System）３４が組み込まれており、ブートローダによりＯＳ３３−１（例えば、Ｗｉｎｄｏｗｓ）を検出し、起動する。
【００２１】
これによりＯＳ３３−１は、ＰＣＩｅブリッジコントローラ２３を制御するためのブリッジドライバ３２を含む各種ドライバ３１を読み込んで、ブリッジドライバ３２及びＰＣプラットホーム３７−２を介して電気的にＰＣＩｅブリッジコントローラ２３にアクセスして他のプラットホーム１２−２〜１２−７との通信を行い、実際の処理を行う。なお、ここでは、ＰＣプラットホーム３７−２を用いる場合について説明しているが、これに限定されるものではなく他のプラットホームであっても適用が可能である。
【００２２】
次にプラットホーム１２−２〜１２−７について説明する。
プラットホーム１２−２〜１２−７は、同様の構成であるので、プラットホーム１２−２を例として説明する。
プラットホーム１２−２は、アプリケーション３０−２の制御下で各種処理を行う。
【００２３】
プラットホーム１２−２には、ブートローダ（Boot  loader）３６−２が組み込まれており、ブートローダによりＯＳ３３−２（例えば、Ｌｉｎｕｘ；登録商標）を検出し、起動する。
これによりＯＳ３３−２は、ＰＣＩｅブリッジコントローラ２３を制御するためのブリッジドライバ３２を読み込んで、ブリッジドライバ３２及びハードウェアプラットホーム３７−２を介して電気的にＰＣＩｅブリッジコントローラ２３にアクセスして他のプラットホーム１２−１、１２−３〜１２−７との通信を行い、実際の処理を行う。
【００２４】
また、上記構成において、プラットホーム１２−１〜１２−７は、それぞれ他のドライバ構成に影響を与えないように独立動作可能に構成されている。
【００２５】
図２は、他のプラットホームが一つのプラットホームからどのように見えるのかを説明する図である。
ここでは、一例として一つのプラットホームとしてプラットホーム１２−１あるいはプラットホーム１２−６であり、当該プラットホームから他のプラットホームがどのように見えるのかを説明する図である。
【００２６】
図２（ａ）は、プラットホーム１２−１がＰＣＩｅブリッジコントローラ２３を介して他のプラットホーム１２−２〜１２−７と通信を行う場合の説明図である。
【００２７】
この場合においては、プラットホーム１２−１からは、ＰＣＩｅブリッジコントローラ２３のみが見え、プラットホーム１２−２〜１２−７は、ＰＣＩｅブリッジコントローラ２３によりマスクされた状態であり存在していないのと同様な状態となっている。
【００２８】
したがって、プラットホーム１２−１は、ルートコンプレックスとして機能し、プラットホーム１２−２〜１２−７に対して通信を行う際には、見かけ上、唯一のエンドポイントであるＰＣＩｅブリッジコントローラ２３に対する通信を行っているように動作している。
【００２９】
一方、プラットホーム１２−６からは、ＰＣＩｅブリッジコントローラ２３のみが見え、プラットホーム１２−１〜１２−５及びプラットホーム１２−７は、ＰＣＩｅブリッジコントローラ２３によりマスクされた状態であり存在していないのと同様な状態となっている。
【００３０】
したがって、プラットホーム１２−６は、ルートコンプレックスとして機能し、プラットホーム１２−１〜１２−５及びプラットホーム１２−７に対して通信を行う際には、見かけ上、唯一のエンドポイントであるＰＣＩｅブリッジコントローラ２３に対する通信を行っているように動作している。
さらにプラットホーム１２−１〜１２−５及びプラットホーム１２−７も同様である。
【００３１】
したがって、全てのプラットホーム１２−１〜１２−７は、デバイスドライバを介して制御する一つのデバイスであるＰＣＩｅブリッジコントローラ２３のみが見えており、ＰＣＩｅブリッジコントローラ２３を介して接続された他のプラットホームについては、マスクされた状態（見えない状態）こととなっており、いずれかのプラットホームからは、ＰＣＩｅブリッジコントローラ２３及び他の全てのプラットホームは、一つの情報処理装置と認識される（みなされる）ため、他のいずれかのプラットホームあるいは複数のプラットホームにより実現される機能や性能を変更したとしても、デバイスドライバの変更を伴うことなく処理を継続でき、全体として、スケーラブルな情報処理システムを構築することが可能となっている。
【００３２】
また、いずれか一のプラットホーム（例えば、プラットホーム１２−１）が情報処理システム１０全体の管理を行う場合であっても、ＰＣＩｅブリッジコントローラ２３を介してアプリケーション等を予め転送して、一つのデバイスであるＰＣＩｅブリッジコントローラ２３に接続されている複数の計算機であるプラットホーム１２−２〜１２−７における処理内容、処理順番を割り当てることができ、分散処理、並列処理などの処理内容や、処理割当の変更が容易となる。したがって、例えば、入力データを変更せずに処理（例えば、解析処理）を変更して異なる解析結果としての出力データを容易に得ることができるようにスケーラブルな情報処理システム１０を構築することが可能となっている。
【００３３】
図３は、各プラットホームにおける共通メモリの構成説明図である。
プラットホーム１２−１〜１２−７は、同一構成の共通メモリＣＭ１〜ＣＭ７を備えている。
共通メモリＣＭ１〜ＣＭ７は、それぞれ、第１領域Ｓｌｏｔ＃０〜第７領域Ｓｌｏｔ＃０を備えている。
【００３４】
共通メモリＣＭ１における第１領域Ｓｌｏｔ＃０は、プラットホーム１２−１が他のプラットホーム１２−２〜１２−７から受信すべきデータが書き込まれる領域であり、第２領域Ｓｌｏｔ＃１は、プラットホーム１２−１がプラットホーム１２−２に対して送信すべきデータ（アプリケーションも含む）を書き込む領域である。同様に、第３領域Ｓｌｏｔ＃２〜第７領域Ｓｌｏｔ＃６は、それぞれプラットホーム１２−１がプラットホーム１２−４〜１２−７に送信すべきデータを書き込む領域である。
【００３５】
また、共通メモリＣＭ２における第２領域Ｓｌｏｔ＃１は、プラットホーム１２−２が他のプラットホーム１２−１、１２−３〜１２−７から受信すべきデータが書き込まれる領域であり、第１領域Ｓｌｏｔ＃０、第３領域Ｓｌｏｔ＃２〜第７領域Ｓｌｏｔ＃６は、それぞれプラットホーム１２−２が他のプラットホーム１２−１、１２−３〜１２−７に送信すべきデータを書き込む領域である。
【００３６】
また、共通メモリＣＭ３における第３領域Ｓｌｏｔ＃２は、プラットホーム１２−３が他のプラットホーム１２−１、１２−２、１２−４〜１２−７から受信すべきデータが書き込まれる領域であり、第１領域Ｓｌｏｔ＃０、第２領域Ｓｌｏｔ＃１、第４領域Ｓｌｏｔ＃３〜第７領域Ｓｌｏｔ＃６は、それぞれプラットホーム１２−３が他のプラットホーム１２−１、１２−２、１２−４〜１２−７に送信すべきデータを書き込む領域である。
【００３７】
また、共通メモリＣＭ４における第４領域Ｓｌｏｔ＃３は、プラットホーム１２−４が他のプラットホーム１２−１〜１２−３、１２−５〜１２−７から受信すべきデータが書き込まれる領域であり、第１領域Ｓｌｏｔ＃０〜第３領域Ｓｌｏｔ＃２、第５領域Ｓｌｏｔ＃４〜第７領域Ｓｌｏｔ＃６は、それぞれプラットホーム１２−４が他のプラットホーム１２−１〜１２−３、１２−５〜１２−７に送信すべきデータを書き込む領域である。
【００３８】
また、共通メモリＣＭ５における第５領域Ｓｌｏｔ＃４は、プラットホーム１２−５が他のプラットホーム１２−１〜１２−４、１２−６、１２−７から受信すべきデータが書き込まれる領域であり、第１領域Ｓｌｏｔ＃０〜第４領域Ｓｌｏｔ＃３、第６領域Ｓｌｏｔ＃５、第７領域Ｓｌｏｔ＃６は、それぞれプラットホーム１２−５が他のプラットホーム１２−１〜１２−３、１２−６、１２−７に送信すべきデータを書き込む領域である。
【００３９】
また、共通メモリＣＭ６における第６領域Ｓｌｏｔ＃５は、プラットホーム１２−６が他のプラットホーム１２−１〜１２−５、１２−７から受信すべきデータが書き込まれる領域であり、第１領域Ｓｌｏｔ＃０〜第５領域Ｓｌｏｔ＃４、第７領域Ｓｌｏｔ＃６は、それぞれプラットホーム１２−６が他のプラットホーム１２−１〜１２−５、１２−７に送信すべきデータを書き込む領域である。
【００４０】
また、共通メモリＣＭ７における第７領域Ｓｌｏｔ＃６は、プラットホーム１２−７が他のプラットホーム１２−１〜１２−６から受信すべきデータが書き込まれる領域であり、第１領域Ｓｌｏｔ＃０〜第６領域Ｓｌｏｔ＃５は、それぞれプラットホーム１２−７が他のプラットホーム１２−１〜１２−６に送信すべきデータを書き込む領域である。
【００４１】
上記構成においては、いずれかのプラットホームが他のプラットホームに送信すべきデータを対応する領域の所定のアドレスに書き込んだ場合には、データを書き込んだ領域のアドレスがデバイスドライバを介してブリッジコントローラ２３に通知される。
【００４２】
ブリッジコントローラ２３は、通知された領域のアドレスから、書き込まれたデータの転送先のプラットホームの共通メモリを判別して、対応する領域のアドレス（＝送信元のプラットホームが書き込んだ領域のアドレスと同じアドレス）に転送し、書き込むこととなる。
【００４３】
例えば、プラットホーム１２−１が指定した処理対象データに対し、プラットホーム１２−２が演算処理を行い、演算結果をプラットホーム１２−１に返す場合には、以下のようになる。
プラットホーム１２−１は、処理対象データを共通メモリＣＭ１の第２領域Ｓｌｏｔ＃１の所定のアドレスに書き込む。
【００４４】
これによりプラットホーム１２−１のデバイスドライバは、共通メモリＣＭ１の第２領域Ｓｌｏｔ＃１の所定のアドレスに対応するアドレス情報をＰＣＩｅブリッジコントローラ２３に通知する。
【００４５】
ブリッジコントローラ２３は、アドレス情報を解析し、プラットホーム１２−２のデバイスドライバを介して処理対象データを共通メモリＣＭ２の第２領域Ｓｌｏｔ＃１の対応するアドレスに書き込む。
【００４６】
これにより、プラットホーム１２−２は、当該処理対象データを共通メモリＣＭ２の第２領域Ｓｌｏｔ＃１から読み出し、読み出した処理対象データに対して演算処理を行い、演算結果を、共通メモリＣＭ２の第１領域Ｓｌｏｔ＃０の所定のアドレスに書き込む。
【００４７】
これによりプラットホーム１２−２のデバイスドライバは、共通メモリＣＭ２の第１領域Ｓｌｏｔ＃０の所定のアドレスに対応するアドレス情報をＰＣＩｅブリッジコントローラ２３に通知する。
ブリッジコントローラ２３は、アドレス情報を解析し、プラットホーム１２−１のデバイスドライバを介して処理対象データを共通メモリＣＭ１の第１領域Ｓｌｏｔ＃０の対応するアドレスに書き込む。
【００４８】
これらの結果、プラットホーム１２−１は、演算処理結果を共通メモリＣＭ１の第１領域Ｓｌｏｔ＃０の対応するアドレスから読み出すことで、受信することとなる。
【００４９】
次により具体的な動作を説明する。
まずは、データの書込動作について説明する。
ここでは、一例としてプラットホーム１２−１がプラットホーム１２−６に対してデータを書き込む場合の動作を説明する。
【００５０】
図４は、データ書込動作の説明図である。
また、図５は、データ書込動作のタイミングチャートである。
図４に示すように、プラットホーム１２−１及びプラットホーム１２−６は、それぞれアプリケーション（図中、アプリと表記）、ブリッジコントローラ用デバイスドライバ（図中、ドライバと表記）、オペレーティングシステム（ＯＳ）およびプロセッサを備えており、エンドポイント（ＥＰ）としてのＰＣＩｅブリッジコントローラ２３に対して、それぞれルートコンプレックス（ＲＣ）として一対一に接続されていると認識している。
【００５１】
この場合において、図５に示すように、プラットホーム１２−１は、ＰＣＩｅブリッジコントローラ２３に対して物理的な第１スロットＳｌｏｔ＃０を介してルートコンプレックスとしてリンクが確立した状態で接続されており（ステップＳ１１）、プラットホーム１２−６は、ＰＣＩｅブリッジコントローラ２３に対して物理的な第６スロットＳｌｏｔ＃５を介してルートコンプレックスとしてリンクが確立した状態で接続されているものとする（ステップＳ１２）。
【００５２】
この状態においてプラットホーム１２−１は、プラットホーム１２−６にデータを書き込むための共通メモリＣＭ１の所定の書込アドレス（対象アドレス）を取得する（ステップＳ１３）。
これにより、プラットホーム１２−１は、共通メモリＣＭ１の所定の対象アドレスにデータを書き込む（ステップＳ１４）。
【００５３】
続いて、プラットホーム１２−１は、データ送信先の物理スロットを判定し（ステップＳ１５）、ＰＣＩｅブリッジコントローラ２３に対してデータ（アドレスデータ）を送信する（ステップＳ１６）。
【００５４】
この結果、ＰＣＩｅブリッジコントローラ２３は、アドレスデータを解析して、データ書込先を判定する（ステップＳ１７）。
本例においては、データ送信先が、プラットホーム１２−６であると判定される。
【００５５】
そして、ＰＣＩｅブリッジコントローラ２３は、プラットホーム１２−１が接続されている第１スロットＳｌｏｔ＃０と、プラットホーム１２−６が接続されている第６スロットＳｌｏｔ＃５に対応する第６領域Ｓｌｏｔ＃５と第６領域Ｓｌｏｔ＃５とを論理的に接続する（ステップＳ１７）。
【００５６】
この結果、共通メモリＣＭ１の第１領域Ｓｌｏｔ＃０の対象アドレスのデータが、共通メモリＣＭ６の第６領域Ｓｌｏｔ＃５の対象アドレスに転送され、書き込まれることとなる。
【００５７】
続いて、プラットホーム１２−１は、ＰＣＩｅバスのメモリトランザクションとしての割込であるＭＳＩ（Message  Signaled  Interrupt）をＰＣＩｅブリッジコントローラ２３を介して、プラットホーム１２−６に通知する（ステップＳ１８）。
【００５８】
この結果、プラットホーム１２−６は、共通メモリＣＭ６にデータが書き込まれたことを知ることとなり、プラットホーム１２−６のアプリケーションは、共通メモリＣＭ６の第６領域Ｓｌｏｔ＃５からデータを読み出し、所定の演算処理を施すこととなる。
【００５９】
次に、データの読出動作について説明する。
ここでは、一例としてプラットホーム１２−１がプラットホーム１２−６からデータを読み出す場合の動作を説明する。
【００６０】
図６は、データ読出動作の説明図である。
また、図７は、データ読出動作のタイミングチャートである。
図６においても、図４の場合と同様に、プラットホーム１２−１及びプラットホーム１２−６は、それぞれアプリケーション（図中、アプリと表記）、ブリッジコントローラ用デバイスドライバ（図中、ドライバと表記）、オペレーティングシステム（ＯＳ）およびプロセッサを備えており、エンドポイント（ＥＰ）としてのＰＣＩｅブリッジコントローラ２３に対して、それぞれルートコンプレックス（ＲＣ）として一対一に接続されていると認識している。
【００６１】
この場合において、図７に示すように、プラットホーム１２−１は、ＰＣＩｅブリッジコントローラ２３に対して物理的な第１スロットＳｌｏｔ＃０を介してルートコンプレックスとしてリンクが確立した状態で接続されており（ステップＳ２１）、プラットホーム１２−６は、ＰＣＩｅブリッジコントローラ２３に対して物理的な第６スロットＳｌｏｔ＃５を介してルートコンプレックスとしてリンクが確立した状態で接続されているものとする（ステップＳ２２）。
【００６２】
この状態においてプラットホーム１２−１は、プラットホーム１２−６からデータを読み出すための読出アドレス（対象アドレス）データを準備する（ステップＳ２３）。
これにより、プラットホーム１２−１は、共通メモリＣＭ１の所定の対象アドレスに読出アドレスデータを書き込む（ステップＳ２４）。
【００６３】
続いて、プラットホーム１２−１は、データ送信先の物理スロットを判定し（ステップＳ２５）、ＰＣＩｅブリッジコントローラ２３に対して読出アドレスデータを送信する（ステップＳ２６）。
【００６４】
この結果、ＰＣＩｅブリッジコントローラ２３は、読出アドレスデータを解析して、データ読出先を判定する（ステップＳ２７）。
【００６５】
本例においては、データ読出先が、プラットホーム１２−６であると判定される。
この結果、ＰＣＩｅブリッジコントローラ２３は、プラットホーム１２−１が接続されている第１スロットＳｌｏｔ＃０と、プラットホーム１２−６が接続されている第６スロットＳｌｏｔ＃５に対応する第６領域Ｓｌｏｔ＃５と第６領域Ｓｌｏｔ＃５とを論理的に接続する（ステップＳ２８）。
【００６６】
続いて、プラットホーム１２−１は、ＰＣＩｅバスのメモリトランザクションとしての割込であるＭＳＩ（Message  Signaled  Interrupt）をＰＣＩｅブリッジコントローラ２３を介して、プラットホーム１２−６に通知する（ステップＳ２９）。
【００６７】
この結果、割込がなされたプラットホーム１２−６は、データ解析を行い（ステップＳ３０）、データの読出が要求されていることを知ることとなり、プラットホーム１２−６のアプリケーションは、自己のメモリの対象アドレスからデータを読み出し、プラットホーム１２−１に指定された共通メモリＣＭ６の第１領域Ｓｌｏｔ＃１のアドレスに読み出したデータを書き込むとともに、ＰＣＩｅブリッジコントローラにその旨を通知することとなる（ステップＳ４０）。
【００６８】
これにより、ＰＣＩｅブリッジコントローラ２３は、データ送信先を判定し（ステップＳ４１）、プラットホーム１２−１が接続されている第１スロットＳｌｏｔ＃０と、プラットホーム１２−６が接続されている第６スロットＳｌｏｔ＃５に対応する第１領域Ｓｌｏｔ＃０を論理的に接続する（ステップＳ２８）。
【００６９】
これにより、プラットホーム１２−１は、指定した第１領域Ｓｌｏｔ＃０の読出アドレスからデータを読み出して、トラップする（ステップＳ４３）。
【００７０】
続いてプラットホーム１２−１は、読み出したデータを、自己の物理メモリにシャドーイングする（ステップＳ４４）。
続いて、ＰＣＩｅブリッジコントローラ２３にデータ読出を行った旨を通知し、ひいては、プラットホーム１２−６にその旨を通知し、処理を終了する（ステップＳ４５）。
【００７１】
以上の説明のように、本実施形態によれば、各プラットホーム１２−１〜プラットホーム１２−７は、エンドポイントとして機能するＰＣＩｅブリッジコントローラ２３に対して共通メモリＣＭ１〜ＣＭ７を介して、実効的にデータの書き込みあるいはデータの読み出しを指示するだけで、他のプラットホームを意識することなく、データの読み出し及び書き込みが行える。
【００７２】
以上の説明は、通常の処理データの書き込み及び読み出しの場合を例としていたが、例えば、プラットホーム１２−１が統括的な機能を有し、他のプラットホーム１２−２〜１２−７に対してアプリケーションをインストールするような場合でも同様に適用が可能である。
【００７３】
すなわち、アプリケーションをインストールする側のプラットホームは、他のプラットホームの存在を認識している状態であれば、データの読み出し及び書き込みに関しては、デバイスドライバを介して制御する一つのデバイスであＰＣＩｅブリッジコントローラ２３に対して共通メモリＣＭ１〜ＣＭ７を介して、データの書き込みあるいはデータの読み出しを指示するだけでよいので、実効的に全てのプラットホーム１２−１〜１２−７は、他のいずれかのプラットホームあるいは複数のプラットホームにより実現される機能や性能を変更したとしても、デバイスドライバの変更を伴うことなく処理を継続でき、全体として、スケーラブルな情報処理システムを構築することが容易となっている。
【００７４】
また、例えば、いずれか一のプラットホーム（例えば、プラットホーム１２−１）が他の一又は複数のプラットホーム（例えば、プラットホーム１２−２〜１２−７）、ひいては、情報処理システム１０全体の管理を行う場合であっても、ＰＣＩｅブリッジコントローラ２３に対してのみ指示を行うだけで、他の所望のプラットホームに対して予めアプリケーション等を転送して、当該他のプラットホームにおける処理内容、処理順番を割り当てることができ、他のプラットホームに行わせる分散処理、並列処理などの処理内容や、処理割当の変更が容易となる。
したがって、例えば、処理を行わせるべき他のプラットホームにおける入力データ（管理側からの出力データ）を変更せずに出力データの処理（例えば、解析処理）を変更して異なる解析結果を容易に得ることができるようにスケーラブルな情報処理システム１０を構築することができる。
【００７５】
［２］その他
そして、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成および各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
【００７６】
例えば、図１に示した構成においては、ＰＣＩｅブリッジコントローラ２３には、７つのプラットホーム１２−１〜１２−７を、接続可能としていたが、これに限定されるものではなくＰＣＩｅブリッジコントローラ２３は６個以下もしくは８個以上の複数のプラットホームを備えるようにすることも可能である。
【００７７】
また、上述の実施形態では、各部のＩ／ＯインターフェースとしてＰＣＩｅ（ＰＣＩエクスプレス）を例に挙げて説明したが、Ｉ／Ｏインターフェースとしては、ＰＣＩｅに限定されるものではない。
例えば、各部のＩ／Ｏインターフェースは、データ転送バスによって、デバイス（周辺制御コントローラ）とプロセッサとの間でデータ転送を行える技術であればよい。
【００７８】
また、データ転送バスは、１個の筐体等に設けられたローカルな環境（例えば、１つのシステムまたは１つの装置）で高速にデータを転送できる汎用のバスであってよい。
また、Ｉ／Ｏインターフェースは、パラレルインターフェース及びシリアルインターフェースのいずれであってもよい。
【００７９】
また、Ｉ／Ｏインターフェースは、シリアル転送の場合、ポイント・ツー・ポイント（point  to  point）接続ができ、データをパケットベースで転送可能であればよい。
また、Ｉ／Ｏインターフェースは、シリアル転送の場合、複数のレーンを有するようにしてもよい。
【００８０】
また、Ｉ／Ｏインターフェースのレイヤー構造は、パケットの生成及び復号を行うトランザクション層と、エラー検出等を行うデータリンク層と、シリアルとパラレルとを変換する物理層と、を有していてもよい。
【００８１】
また、Ｉ／Ｏインターフェースは、階層の最上位であり１または複数のポートを有するルートコンプレックス、Ｉ／Ｏデバイスであるエンドポイント、ポートを増やすためのスイッチ、及び、プロトコルを変換するブリッジ等を含んでいてもよい。
【００８２】
また、Ｉ／Ｏインターフェースは、送信するデータとクロック信号とをマルチプレクサによって多重化して送信するようにしてもよい。この場合には、受信側は、デマルチプレクサでデータとクロック信号を分離すればよい。
【００８３】
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
【００８４】
［３］実施形態の他の態様
以上の実施形態に関し、さらに他の態様について記載する。
【００８５】
［３．１］第１の他の態様
実施形態の第１の他の態様の情報処理システムは、それぞれがプロセッサを備えた複数の情報処理装置と、拡張バスを介して前記複数の情報処理装置を接続可能で、前記複数の情報処理装置の間の通信を中継する中継装置と、を備え、中継装置は、いずれか一つの前記情報処理装置に対して、他の全ての前記情報処理装置を代表し、当該中継装置及び他の前記情報処理装置を一体の情報処理装置として前記通信を行う制御部を有する、情報処理システムである。
上記構成によれば、中継装置の制御部は、いずれか一つの前記情報処理装置に対して、他の全ての情報処理装置を代表し、当該中継装置及び他の前記情報処理装置を一体の情報処理装置として通信を行うこととなるので、いずれか一つの情報処理装置は、中継装置及び他の情報処理装置を一つの情報処理装置として認識し（みなす）ため、他のいずれかの情報処理装置あるいは複数の情報処理装置により実現される機能や性能を変更したとしても、制御対象が同一であるとして処理を継続でき、全体として、スケーラブルな情報処理システムを構築することができる。
［３．２］第２の他の態様
実施形態の第２の他の態様の情報処理システムにおいては、各前記情報処理装置は、前記複数の前記情報処理装置のそれぞれに対応する複数の記憶領域を有する共通メモリ領域を有し、前記共通メモリ領域を介して、他の前記情報処理装置に対するデータの読み出し及び書き込みの指示を前記中継装置に対して行う第１の他の態様に記載の情報処理システムである。
上記構成によれば、中継装置は、共通メモリ領域を参照すればデータの読み出し及び書き込みの処理を行えるので、情報処理システム全体として実現される機能や性能を変更したとしても、制御対象が同一であるとして処理が行え、全体として、スケーラブルな情報処理システムを構築することができる。
［３．３］第３の他の態様
実施形態の第３の他の態様の情報処理システムにおいては、前記中継装置は、前記指示により任意の二つの情報処理装置間においてデータの読み出し及び書き込みを行う第２の他の態様に記載の情報処理システムである。
上記構成によれば、情報処理システムがスケーラブルに変化しても、中継装置は、二つの情報処理装置間において行うデータの読み出し及び書き込みを行うだけであり、情報処理装置側からは同一のデバイスである中継装置に対して読み出し及び書き込みを行うだけであるので、処理手順が簡略化され、情報処理システムのスケーラブルな構築に容易に対応することができる。
［３．４］第４の他の態様
実施形態の第４の他の態様の情報処理システムにおいては、前記中継装置は、一の前記情報処理装置の前記共通メモリ領域に対するデータ書込アドレスに基づいて、通信対象の他の前記情報処理装置を特定して、前記データ書込アドレスに書き込まれたデータを前記他の前記情報処理装置の前記共通メモリ領域に書き込む、第２の他の態様又は第３の他の態様に記載の情報処理システムである。
上記構成によれば、中継装置は、共通メモリ領域に対するデータのやり取りを行うだけで通信が可能となるので、情報処理システム全体としての機能や性能を変更したり、情報処理装置数が増加したりしても容易に対応して、システムのスケーラブルな構築を行える。
［３．５］第５の他の態様
実施形態の第５の他の態様の情報処理システムにおいては、前記情報処理装置は、前記中継装置に対するデバイスドライバを介して前記中継装置とのデータのやり取りを行う、第１の他の態様乃至第４の他の態様のいずれかに記載の情報処理システムである。
上記構成によれば、情報処理装置を増加しようとする場合であっても中継装置に対するデバイスドライバを作成するだけで中継装置を介して他の情報処理装置と通信可能に接続することができ、あるいは、情報処理システム全体としての機能や性能を変更したりした場合であっても、各情報処理装置としては同じデバイスドライバで制御を行う点に変更はなく、容易にシステムのスケーラブルな構築を行える。
［３．６］第６の他の態様
実施形態の第６の他の態様の情報処理システムにおいては、前記複数の情報処理装置は、前記中継装置に対してルートコンプレックスとして機能し、前記中継装置は、前記情報処理装置に対してエンドポイントとして機能するとともに、一の前記情報処理装置に対して他の全ての情報処理装置をマスクする、第１の他の態様乃至第５の他の態様のいずれかに記載の情報処理システムである。
上記構成によれば、いずれの情報処理装置も中継装置との通信を行うだけで、他の情報処理装置と対等に通信を行うことができ、報処理システム全体としての機能や性能を変更したりしても、通信手順は同様であり、容易にシステムのスケーラブルな構築を行える。
【符号の説明】
【００８６】
１０    情報処理システム
１１    ブリッジボード
１２−１    プラットホーム（ルートコンプレックス）
１２−２〜１２−７    プラットホーム（エンドポイント）
２１    電源ユニット
２２    ＤＣ−ＤＣコンバータ
２３    ＰＣＩｅブリッジコントローラ（制御部）
【図１】
2020109555.tif 000003
【図２】
2020109555.tif 000004
【図３】
2020109555.tif 000005
【図４】
2020109555.tif 000006
【図５】
2020109555.tif 000007
【図６】
2020109555.tif 000008
【図７】
2020109555.tif 000009
【手続補正書】
【提出日】令和1年11月1日(2019.11.1)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
それぞれがプロセッサを備えた複数の情報処理装置と、
拡張バスを介して前記複数の情報処理装置を接続可能で、前記複数の情報処理装置の間の通信を中継する中継装置と、を備え、
前記中継装置は、いずれか一つの前記情報処理装置に対して、他の全ての前記情報処理装置を代表し、当該中継装置及び他の前記情報処理装置を一体の情報処理装置として前記通信を行う制御部を有し、
各前記情報処理装置は、前記複数の前記情報処理装置のそれぞれに対応する複数の記憶領域を有する共通メモリ領域を有し、他の前記情報処理装置に対するデータの読み出し及び書き込みを指示し、
前記複数の情報処理装置のいずれか一つは、前記共通メモリ領域を参照して、前記中継装置を経由して任意の他の情報処理装置との間で前記指示に対応するデータの読み出し及び書き込みを行う、
情報処理システム。
【請求項２】
前記中継装置は、一の前記情報処理装置の前記共通メモリ領域に対するデータ書込アドレスに基づいて、通信対象の他の前記情報処理装置を特定して、前記データ書込アドレスに書き込まれたデータを前記他の前記情報処理装置の前記共通メモリ領域に書き込む、
請求項１記載の情報処理システム。
【請求項３】
前記情報処理装置は、前記中継装置に対するデバイスドライバを介して前記中継装置とのデータのやり取りを行う、
請求項１又は請求項２記載の情報処理システム。
【請求項４】
前記複数の情報処理装置は、前記中継装置に対してルートコンプレックスとして機能し、
前記中継装置は、前記情報処理装置に対してエンドポイントとして機能するとともに、一の前記情報処理装置に対して他の全ての情報処理装置をマスクする、
請求項１乃至請求項３のいずれか一項に記載の情報処理システム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
上記課題を解決するため、本発明の第１態様にかかる情報処理システムは、それぞれがプロセッサを備えた複数の情報処理装置と、拡張バスを介して前記複数の情報処理装置を接続可能で、前記複数の情報処理装置の間の通信を中継する中継装置と、を備え、前記中継装置は、いずれか一つの前記情報処理装置に対して、他の全ての前記情報処理装置を代表し、当該中継装置及び他の前記情報処理装置を一体の情報処理装置として前記通信を行う制御部を有し、各前記情報処理装置は、前記複数の前記情報処理装置のそれぞれに対応する複数の記憶領域を有する共通メモリ領域を有し、他の前記情報処理装置に対するデータの読み出し及び書き込みを指示し、前記複数の情報処理装置のいずれか一つは、前記共通メモリ領域を参照して、前記中継装置を経由して任意の他の情報処理装置との間で前記指示に対応するデータの読み出し及び書き込みを行う。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】削除
【補正の内容】
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】削除
【補正の内容】
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００５５
【補正方法】変更
【補正の内容】
【００５５】
そして、ＰＣＩｅブリッジコントローラ２３は、プラットホーム１２−１が接続されている第１スロットＳｌｏｔ＃０と、プラットホーム１２−６が接続されている第６スロットＳｌｏｔ＃５に対応する第１領域Ｓｌｏｔ＃０と第６領域Ｓｌｏｔ＃５とを論理的に接続する（ステップＳ１７）。
【手続補正６】
【補正対象書類名】図面
【補正対象項目名】図７
【補正方法】変更
【補正の内容】
【図７】
2020109555.tif 000010
【手続補正書】
【提出日】令和2年3月18日(2020.3.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
それぞれがプロセッサを備えた複数の情報処理装置と、
拡張バスを介して前記複数の情報処理装置を接続可能で、前記複数の情報処理装置の間のデータ転送を中継する中継装置と、を備え、
前記中継装置は、いずれか一つの前記情報処理装置に対して、他の全ての前記情報処理装置を代表し、当該中継装置及び他の前記情報処理装置を一体の情報処理装置として前記データ転送を行う制御部を有し、
各前記情報処理装置は、前記複数の前記情報処理装置のそれぞれに対応する複数の記憶領域を有する共通メモリ領域を有し、自己の前記共通メモリ領域のうち他の情報処理装置に対応する前記共通メモリ領域を用いて、当該他の情報処理装置に対するデータの読み出し及び書き込みを指示し、
前記複数の情報処理装置のいずれか一つは、前記中継装置を介して前記読み出し及び前記書き込みの指示の通知がなされると、自己の前記共通メモリ領域のうち前記中継装置により論理的に接続された前記指示の通知に対応する他の情報処理装置に対応する前記共通メモリ領域を用いて、前記指示の通知に対応する他の情報処理装置との間で前記指示に対応するデータの読み出し及び書き込みを行い、
前記制御部は、一の前記情報処理装置の前記共通メモリ領域のうち、読み出し及び書き出しが指示されたデータが格納されるアドレスに基づいてデータ転送対象として特定された、他の情報処理装置の前記共通メモリ領域に、当該データの読み出し及び書き込みを行う、
情報処理システム。
【請求項２】
前記制御部は、前記一の前記情報処理装置の前記共通メモリ領域に対するデータの読み出し及び書き込みアドレスに基づいて、データ転送対象の前記他の前記情報処理装置を特定して、前記データの読み込みアドレス及び書き込みアドレスに読み込み及び書き込みされたデータを前記他の前記情報処理装置の前記共通メモリ領域に読み込み及び書き込む、
請求項１記載の情報処理システム。
【請求項３】
前記情報処理装置は、前記中継装置に対するデバイスドライバを介して前記中継装置とのデータのやり取りを行う、
請求項１又は請求項２記載の情報処理システム。
【請求項４】
前記複数の情報処理装置は、前記中継装置に対してルートコンプレックスとして機能し、
前記中継装置は、前記情報処理装置に対してエンドポイントとして機能するとともに、一の前記情報処理装置に対して他の全ての情報処理装置をマスクする、
請求項１乃至請求項３のいずれか一項に記載の情報処理システム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
上記課題を解決するため、本発明の第１態様にかかる情報処理システムは、それぞれがプロセッサを備えた複数の情報処理装置と、拡張バスを介して前記複数の情報処理装置を接続可能で、前記複数の情報処理装置の間の通信を中継する中継装置と、を備え、前記中継装置は、いずれか一つの前記情報処理装置に対して、他の全ての前記情報処理装置を代表し、当該中継装置及び他の前記情報処理装置を一体の情報処理装置として前記通信を行う制御部を有し、各前記情報処理装置は、前記複数の前記情報処理装置のそれぞれに対応する複数の記憶領域を有する共通メモリ領域を有し、自己の前記共通メモリ領域のうち他の情報処理装置に対応する前記共通メモリ領域を用いて、当該他の情報処理装置に対するデータの読み出し及び書き込みを指示し、前記複数の情報処理装置のいずれか一つは、前記中継装置を介して前記読み出し及び前記書き込みの指示の通知がなされると、自己の前記共通メモリ領域のうち前記中継装置により論理的に接続された前記指示の通知に対応する他の情報処理装置に対応する前記共通メモリ領域を用いて、前記指示の通知に対応する他の情報処理装置との間で前記指示に対応するデータの読み出し及び書き込みを行い、前記制御部は、一の前記情報処理装置の前記共通メモリ領域のうち、読み出し及び書き出しが指示されたデータが格納されるアドレスに基づいてデータ転送対象として特定された、他の情報処理装置の前記共通メモリ領域に、当該データの読み出し及び書き込みを行う。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００２０
【補正方法】変更
【補正の内容】
【００２０】
プラットホーム１２−１には、ブートローダ（Boot  loader）を起動するバイオス（BIOS：Basic  Input  Output  System）３４が組み込まれており、ブートローダによりＯＳ３３−１（例えば、Ｗｉｎｄｏｗｓ［登録商標］）を検出し、起動する。