(57)【要約】【課題】通信の不具合の発生を防止する。【解決手段】記憶部３は、第１通信部２ａの通信を制御する第１通信プログラム３ａと、第２通信部２ｂの通信を制御する第２通信プログラム３ｂと、対応付けられた通信プログラムに所定処理を実行したデータを送信させる第１処理プログラム３ｃおよび第２処理プログラム３ｄと、第１処理プログラム３ｃと対応付けられる第１対応通信プログラムを示す第１識別子と第２処理プログラム３ｄと対応付けられる第２対応通信プログラムを示す第２識別子とを含む対応関係情報３ｅと、を記憶する。処理部４は、第１対応通信プログラムを決定し、決定した第１対応通信プログラムを示す識別子を第１識別子として対応関係情報３ｅに設定し、第２対応通信プログラムを決定し、決定した第２対応通信プログラムを示す識別子を第２識別子として対応関係情報３ｅに設定する。【選択図】図１
2020198007.tif 000002
【特許請求の範囲】
【請求項１】
拡張バスを介して他装置と通信可能に接続する第１通信部と、
前記拡張バスを介して前記他装置と通信可能に接続する第２通信部と、
前記第１通信部における前記拡張バスを介した前記他装置との通信を制御する第１通信プログラムと、前記第２通信部における前記拡張バスを介した前記他装置との通信を制御する第２通信プログラムと、データに所定処理を実行し、前記第１通信プログラムまたは前記第２通信プログラムのうちの対応付けられたいずれかの通信プログラムに、前記所定処理を実行したデータを前記他装置に送信させる第１処理プログラムおよび第２処理プログラムと、前記第１通信プログラムと前記第２通信プログラムのうち前記第１処理プログラムと対応付けられる第１対応通信プログラムを示す第１識別子と前記第１通信プログラムと前記第２通信プログラムのうち前記第２処理プログラムと対応付けられる第２対応通信プログラムを示す第２識別子とを含む対応関係情報と、を記憶する記憶部と、
前記第１通信プログラムと前記第２通信プログラムのうちから前記第１対応通信プログラムを決定し、決定した前記第１対応通信プログラムを示す識別子を前記第１識別子として前記対応関係情報に設定し、前記第１通信プログラムと前記第２通信プログラムのうちから前記第２対応通信プログラムを決定し、決定した前記第２対応通信プログラムを示す識別子を前記第２識別子として前記対応関係情報に設定する処理部と、を備える、
情報処理装置。
【請求項２】
前記処理部は、
前記第１処理プログラムのインストール時に、前記第１通信プログラムと前記第２通信プログラムのうちから前記第１対応通信プログラムを決定し、決定した前記第１対応通信プログラムを示す識別子を前記第１識別子として前記対応関係情報に設定し、
前記第２処理プログラムのインストール時に、前記第１通信プログラムと前記第２通信プログラムのうちから前記第２対応通信プログラムを決定し、決定した前記第２対応通信プログラムを示す識別子を前記第２識別子として前記対応関係情報に設定する、
請求項１に記載の情報処理装置。
【請求項３】
前記処理部は、
前記第１処理プログラムのインストール後の初回起動時に、前記第１通信プログラムと前記第２通信プログラムのうちから前記第１対応通信プログラムを決定し、決定した前記第１対応通信プログラムを示す識別子を前記第１識別子として前記対応関係情報に設定し、
前記第２処理プログラムのインストール後の初回起動時に、前記第１通信プログラムと前記第２通信プログラムのうちから前記第２対応通信プログラムを決定し、決定した前記第２対応通信プログラムを示す識別子を前記第２識別子として前記対応関係情報に設定する、
請求項１に記載の情報処理装置。
【請求項４】
前記処理部は、
前記第１通信プログラムと前記第２通信プログラムのうちから前記第１対応通信プログラムを決定するとき、前記第１通信プログラムと前記第２通信プログラムのうち一方の通信プログラムが前記第２処理プログラムと対応付けられている場合には、前記第１通信プログラムと前記第２通信プログラムのうち他方の通信プログラムを示す識別子を前記第１識別子として前記対応関係情報に設定する、
請求項１に記載の情報処理装置。
【請求項５】
前記処理部は、
前記第１通信プログラムと前記第２通信プログラムを起動させた後、前記第１処理プログラムおよび前記第２処理プログラムを起動させる、
請求項３に記載の情報処理装置。
【請求項６】
前記処理部は、
前記第１通信プログラムと前記第２通信プログラムをインストールした後、前記第１処理プログラムおよび前記第２処理プログラムをインストールする、
請求項２に記載の情報処理装置。
【請求項７】
前記処理部は、
前記第１通信プログラム、前記第１処理プログラム、前記第２通信プログラム、前記第２処理プログラムの順番でインストールする、
請求項２に記載の情報処理装置。
【請求項８】
拡張バスを有し、前記拡張バスを介した通信を中継する中継装置と、
それぞれが前記拡張バスに接続された複数の演算処理装置と、
前記拡張バスに接続された情報処理装置と、を有する情報処理システムであって、
前記情報処理装置は、
前記拡張バスを介して前記複数の演算処理装置と通信可能に接続する第１通信部と、
前記拡張バスを介して前記複数の演算処理装置と通信可能に接続する第２通信部と、
前記第１通信部における前記拡張バスを介した前記複数の演算処理装置との通信を制御する第１通信プログラムと、前記第２通信部における前記拡張バスを介した前記複数の演算処理装置との通信を制御する第２通信プログラムと、データに所定処理を実行し、前記第１通信プログラムまたは前記第２通信プログラムのうちの対応付けられたいずれかの通信プログラムに、前記所定処理を実行したデータを前記複数の演算処理装置に送信させる、第１処理プログラムおよび第２処理プログラムと、前記第１通信プログラムと前記第２通信プログラムのうち前記第１処理プログラムと対応付けられる第１対応通信プログラムを示す第１識別子と前記第１通信プログラムと前記第２通信プログラムのうち前記第２処理プログラムと対応付けられる第２対応通信プログラムを示す第２識別子とを含む対応関係情報と、を記憶する記憶部と、
前記第１通信プログラムと前記第２通信プログラムのうちから前記第１対応通信プログラムを決定し、決定した前記第１対応通信プログラムを示す識別子を前記第１識別子として前記対応関係情報に設定し、前記第１通信プログラムと前記第２通信プログラムのうちから前記第２対応通信プログラムを決定し、決定した前記第２対応通信プログラムを示す識別子を前記第２識別子として前記対応関係情報に設定する処理部と、を備える、
情報処理システム。
【請求項９】
拡張バスを介して他装置と通信可能に接続する第１通信部と、
前記拡張バスを介して前記他装置と通信可能に接続する第２通信部と、
前記第１通信部における前記拡張バスを介した前記他装置との通信を制御する第１通信プログラムと、前記第２通信部における前記拡張バスを介した前記他装置との通信を制御する第２通信プログラムと、データに所定処理を実行し、前記第１通信プログラムまたは前記第２通信プログラムのうちの対応付けられたいずれかの通信プログラムに、前記所定処理を実行したデータを前記他装置に送信させる第１処理プログラムおよび第２処理プログラムと、前記第１通信プログラムと前記第２通信プログラムのうち前記第１処理プログラムと対応付けられる第１対応通信プログラムを示す第１識別子と前記第１通信プログラムと前記第２通信プログラムのうち前記第２処理プログラムと対応付けられる第２対応通信プログラムを示す第２識別子とを含む対応関係情報と、を記憶する記憶部と、を有する情報処理装置に、
前記第１通信プログラムと前記第２通信プログラムのうちから前記第１対応通信プログラムを決定させ、
決定した前記第１対応通信プログラムを示す識別子を前記第１識別子として前記対応関係情報に設定させ、
前記第１通信プログラムと前記第２通信プログラムのうちから前記第２対応通信プログラムを決定させ、
決定した前記第２対応通信プログラムを示す識別子を前記第２識別子として前記対応関係情報に設定させる、
情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理システムおよび情報処理プログラムに関する。
【背景技術】
【０００２】
ホストＰＣ（Personal Computer）と、プロセッサと、ホストＰＣおよびプロセッサが接続可能な中継装置と、を有する情報処理システムにおいて、中継装置が、スロットに接続されるホストＰＣとプロセッサ間の通信を、ＰＣＩｅ（Peripheral Component Interconnect Express：登録商標）等の拡張バスを用いて行う技術が開発されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−４１０２７号公報
【特許文献２】特表２０１２−５０４８３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
このようなホストＰＣは、ＰＣＩｅ等の拡張バスを用いた通信を仮想ＬＡＮ（Local Area Network）にすることができる。この場合、ホストＰＣは、ＰＣＩｅ等の拡張バスで通信を行うためのドライバと、仮想ＬＡＮ通信を行うためのドライバとを組み合わせて用いることで、プロセッサ間の通信をＰＣＩｅ等の拡張バスを用いた仮想ＬＡＮとする。
【０００５】
ところでホストＰＣでは、バスインタフェース（接続インタフェースともいう）のスループットに比べてデータ通信量が大きくなることがあるため、ホストＰＣを複数の接続インタフェースを用いて中継装置と接続することが考えられる。複数の接続インタフェースそれぞれを介したホストＰＣとプロセッサ間の通信をＰＣＩｅ等の拡張バスを用いた仮想ＬＡＮとする場合には、接続インタフェース毎に２つのドライバを組み合わせて用いることが行われる。そのため、ホストＰＣは、接続インタフェースの数だけＰＣＩｅ等の拡張バスで通信を行うためのドライバと、仮想ＬＡＮ通信を行うためのドライバとをインストールする。
【０００６】
このように、接続インタフェースの数のＰＣＩｅ等の拡張バスで通信を行うためのドライバと、仮想ＬＡＮ通信を行うためのドライバとをインストールした場合において再起動を行うと、再起動前とドライバの組み合わせが変化してしまう場合がある。このような場合においてホストＰＣが元の組み合わせを想定して指示を行った場合、ホストＰＣ側の想定通りの接続インタフェースからデータが出力されなくなる。その結果、各接続インタフェースへのデータの振り分けが適切にできなくなり、通信パフォーマンスの低下を招き、通信の不具合が発生することがある。
【０００７】
１つの側面では、本発明は、通信の不具合の発生を防止する情報処理装置、情報処理システムおよび情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
１つの案では、第１通信部と、第２通信部と、記憶部と、処理部とを備える次のような情報処理装置が提供される。この情報処理装置において、第１通信部は、拡張バスを介して他装置と通信可能に接続する。第２通信部は、拡張バスを介して他装置と通信可能に接続する。記憶部は、第１通信プログラムと、第２通信プログラムと、第１処理プログラムと、第２処理プログラムと、対応関係情報と、を記憶する。第１通信プログラムは、第１通信部における拡張バスを介した他装置との通信を制御する。第２通信プログラムは、第２通信部における拡張バスを介した他装置との通信を制御する。第１処理プログラムおよび第２処理プログラムは、データに所定処理を実行し、第１通信プログラムまたは第２通信プログラムのうちの対応付けられたいずれかの通信プログラムに、所定処理を実行したデータを他装置に送信させる。対応関係情報は、第１通信プログラムと第２通信プログラムのうち第１処理プログラムと対応付けられる第１対応通信プログラムを示す第１識別子と第１通信プログラムと第２通信プログラムのうち第２処理プログラムと対応付けられる第２対応通信プログラムを示す第２識別子とを含む。処理部は、第１通信プログラムと第２通信プログラムのうちから第１対応通信プログラムを決定し、決定した第１対応通信プログラムを示す識別子を第１識別子として対応関係情報に設定する。また、処理部は、第１通信プログラムと第２通信プログラムのうちから第２対応通信プログラムを決定し、決定した第２対応通信プログラムを示す識別子を第２識別子として対応関係情報に設定する。
【０００９】
また、１つの案では、中継装置と、複数の演算処理装置と、情報処理装置と、を有する次のような情報処理システムが提供される。この情報処理システムにおいて、中継装置は、拡張バスを有し、拡張バスを介した通信を中継する。複数の演算処理装置は、それぞれが拡張バスに接続されている。情報処理装置は、拡張バスに接続されている。また、情報処理装置は、第１通信部と、第２通信部と、記憶部と、処理部とを備える。第１通信部は、拡張バスを介して複数の演算処理装置と通信可能に接続する。第２通信部は、拡張バスを介して複数の演算処理装置と通信可能に接続する。記憶部は、第１通信プログラムと、第２通信プログラムと、第１処理プログラムと、第２処理プログラムと、対応関係情報と、を記憶する。第１通信プログラムは、第１通信部における拡張バスを介した複数の演算処理装置との通信を制御する。第２通信プログラムは、第２通信部における拡張バスを介した複数の演算処理装置との通信を制御する。第１処理プログラムおよび第２処理プログラムは、データに所定処理を実行し、第１通信プログラムまたは第２通信プログラムのうちの対応付けられたいずれかの通信プログラムに、所定処理を実行したデータを複数の演算処理装置に送信させる。対応関係情報は、第１通信プログラムと第２通信プログラムのうち第１処理プログラムと対応付けられる第１対応通信プログラムを示す第１識別子と第１通信プログラムと第２通信プログラムのうち第２処理プログラムと対応付けられる第２対応通信プログラムを示す第２識別子とを含む。処理部は、第１通信プログラムと第２通信プログラムのうちから第１対応通信プログラムを決定し、決定した第１対応通信プログラムを示す識別子を第１識別子として対応関係情報に設定する。また、処理部は、第１通信プログラムと第２通信プログラムのうちから第２対応通信プログラムを決定し、決定した第２対応通信プログラムを示す識別子を第２識別子として対応関係情報に設定する。
【００１０】
また、１つの案では、コンピュータに上記情報処理装置と同様の処理を実行させる情報処理プログラムが提供される。
【発明の効果】
【００１１】
１側面によれば、通信の不具合の発生を防止できる。
【図面の簡単な説明】
【００１２】
【図１】第１の実施形態の情報処理装置の一例を説明するための図である。
【図２】第２の実施形態のエッジコンピューティングシステムの全体概要例を示す図である。
【図３】第２の実施形態の情報処理システムのハードウェア構成の一例を示す図である。
【図４】第２の実施形態のプラットフォームのハードウェア構成の一例を示す図である。
【図５】第２の実施形態のＰＣＩｅブリッジコントローラのハードウェア構成の一例を示す図である。
【図６】第２の実施形態の情報処理システムにおける各プラットフォームのソフトウェア構成の一例を示す図である。
【図７】第２の実施形態の情報処理システムにおけるプラットフォーム間における通信処理の一例を説明するための図である。
【図８】第２の実施形態の情報処理システムにおけるＰＣＩｅブリッジコントローラを介したプロセッサ間のデータ転送方法の一例を説明するための図である。
【図９】第２の実施形態のプラットフォームの機能構成の一例を示す図である。
【図１０】第２の実施形態の組み合わせが変化した場合の問題点を説明するための図である。
【図１１】第２の実施形態のパラメータ情報をインストール時に設定する場合における処理の一例を示す図である。
【図１２】第２の実施形態のパラメータ情報を起動時に設定する場合における処理の一例を示す図である。
【発明を実施するための形態】
【００１３】
以下、本実施の形態について図面を参照して説明する。
［第１の実施形態］
図１は、第１の実施形態の情報処理装置の一例を説明するための図である。図１に示す情報処理装置１は、第１通信部２ａと、第２通信部２ｂと、記憶部３と、処理部４と、を備える。
【００１４】
第１通信部２ａと第２通信部２ｂは、例えば、拡張バスと接続するためのＰＣＩｅインタフェース等の情報処理装置１が備える接続インタフェース（通信インタフェース，バスインタフェースともいう）として実現される。記憶部３は、例えば、ＲＡＭ（Random Access Memory）等の情報処理装置１が備える記憶装置として実現される。なお、記憶部３は、ＲＡＭ等の揮発性記憶装置でもよいし、ＨＤＤ（Hard Disk Drive）やフラッシュメモリ等の不揮発性記憶装置でもよい。処理部４は、例えば、情報処理装置１が備えるＣＰＵ（Central Processing Unit）等のプロセッサとして実現される。なお、処理部４は、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field Programmable Gate Array）等を含み得る。処理部４は、ＲＡＭ等のメモリ（例えば、記憶部３）に記憶されたプログラムを実行する。ここでいう「プロセッサ」には、複数のプロセッサの集合（マルチプロセッサ）も含まれ得る。
【００１５】
第１通信部２ａと第２通信部２ｂは、拡張バスを介して他装置５と通信可能に接続する。情報処理装置１と他装置５との間でのデータを送受信するための通信は、第１通信部２ａまたは第２通信部２ｂのいずれかを介して行われる。
【００１６】
記憶部３は、第１通信プログラム３ａと、第２通信プログラム３ｂと、第１処理プログラム３ｃと、第２処理プログラム３ｄと、対応関係情報３ｅとを記憶する。第１通信プログラム３ａは、第１通信部２ａにおける拡張バスを介した他装置５との通信を制御する。第１通信プログラム３ａは、具体的には、所定の通信プロトコル（例えば、ＰＣＩｅ）に従ってデータを他装置５との間で送受信する。第２通信プログラム３ｂは、第２通信部２ｂにおける拡張バスを介した他装置５との通信を制御する。第２通信プログラム３ｂは、具体的には、所定の通信プロトコルに従ってデータを他装置５との間で送受信する。
【００１７】
第１処理プログラム３ｃおよび第２処理プログラム３ｄは、データに所定処理を実行し、第１通信プログラム３ａまたは第２通信プログラム３ｂのうちの対応付けられたいずれかの通信プログラムに、所定処理を実行したデータを他装置５に送信させる。所定処理は、例えば、データをカプセル化（例えば、暗号化）して、他装置５との間でトンネリング（例えば、仮想的な直接（ＬＡＮ）回線を確立）した通信を行うための処理である。
【００１８】
即ち、情報処理装置１は、仮想的な直接回線を確立しない場合には、各通信プログラム（例えば、第１通信プログラム３ａ，第２通信プログラム３ｂ）だけを用いて他装置５との通信を行うこととなる。また、情報処理装置１は、仮想的な直接回線を確立する場合には、各処理プログラム（例えば、第１処理プログラム３ｃ，第２処理プログラム３ｄ）と、各処理プログラムが対応付けられた各通信プログラムとを用いて他装置５との通信を行うこととなる。
【００１９】
対応関係情報３ｅは、第１識別子と、第２識別子とを含む。第１識別子は、第１通信プログラム３ａと第２通信プログラム３ｂのうちの第１処理プログラム３ｃが対応付けられる第１対応通信プログラムを示す識別子である。第２識別子は、第１通信プログラム３ａと第２通信プログラム３ｂのうちの第２処理プログラム３ｄが対応付けられる第２対応通信プログラムを示す識別子である。
【００２０】
図１の例では、第１識別子として第１通信プログラム３ａを示す識別子が設定されており、対応関係情報３ｅは、第１処理プログラム３ｃが第１通信プログラム３ａと対応付けられる（即ち、組み合わせられている）ことを示す。また、第２識別子として第２通信プログラム３ｂを示す識別子が設定されており、対応関係情報３ｅは、第２処理プログラム３ｄが第２通信プログラム３ｂと対応付けられることを示す。
【００２１】
即ち、図１に示す情報処理装置１は、第１処理プログラム３ｃが所定処理を実行したデータを、第１通信プログラム３ａが他装置５に送信するように構成されている。また、図１に示す情報処理装置１は、第２処理プログラム３ｄが所定処理を実行したデータを、第２通信プログラム３ｂが他装置５に送信するように構成されている。
【００２２】
処理部４は、第１通信プログラム３ａと第２通信プログラム３ｂのうちから第１処理プログラム３ｃと対応付ける第１対応通信プログラムを決定する。処理部４は、決定した第１対応通信プログラムを示す識別子を第１識別子として対応関係情報３ｅに設定する。
【００２３】
処理部４は、第１通信プログラム３ａと第２通信プログラム３ｂのうちから第２処理プログラム３ｄと対応付ける第２対応通信プログラムを決定する。処理部４は、決定した第２対応通信プログラムを示す識別子を第２識別子として対応関係情報３ｅに設定する。
【００２４】
このように対応関係情報３ｅを設定することで、情報処理装置１は、各処理プログラム（例えば、第１処理プログラム３ｃ，第２処理プログラム３ｄ）が対応付けられる各通信プログラム（例えば、第１通信プログラム３ａと第２通信プログラム３ｂ）を固定化できる。これにより、情報処理装置１は、各処理プログラムが対応付けられる各通信プログラムが再起動等により予期せず変化することを防止できる。
【００２５】
例えば、図１に示すように、所定処理済みのデータの第１通信部２ａからの出力を、アプリケーションが、第１処理プログラム３ｃに指示を行うことで実現していることがある（Ｐ１）。このような場合において再起動等により対応付けが予期せず変化した場合（Ｐ２）、アプリケーションが再起動前と同様の指示を行うと、処理済みのデータは、想定とは異なる通信部（ここでは第２通信部２ｂ）から出力されることとなる（Ｐ３）。
【００２６】
このようにアプリケーションの想定通りの通信部から所定処理済みのデータを出力できなくなると、情報処理装置１は、リソース管理（例えば、各通信部を介した通信の負荷分散）を適切にできなくなる。例えば、情報処理装置１は、再起動後の状態において第２通信部２ｂに負荷が偏っているとき、負荷を分散させる目的で処理済みのデータの送受信を第１通信部２ａで行うべく第１処理プログラム３ｃに指示を行ってしまい、さらなる負荷の偏りを招く虞がある。その結果、通信パフォーマンスの低下を招き、通信の不具合が発生し得る。
【００２７】
この点、情報処理装置１は、対応関係情報３ｅを記憶しておくことで、各処理プログラムが対応付けられる各通信プログラムを固定化しているため、再起動等により対応付けが変化する虞がない。これにより、情報処理装置１は、通信パフォーマンスの低下を抑止でき、通信の不具合の発生を防止できる。
【００２８】
［第２の実施形態］
次により具体的な実施形態としてエッジコンピューティングシステムについて説明する。図２は、第２の実施形態のエッジコンピューティングシステムの全体概要例を示す図である。
【００２９】
エッジコンピューティングシステム１０は、データを収集するエッジ（またはフロント）に近いエリアでデータの処理を行うことで、通信遅延等を抑止してリアルタイム性を確保した処理を実現するシステムである。エッジコンピューティングシステム１０としては、例えば、小売店等におけるＡＩ（Artificial Intelligence）推論を用いた人物推定を行うシステム等がある。
【００３０】
エッジコンピューティングシステム１０は、通信可能に接続するクラウドサーバ１００と、情報処理システム（例えば、エッジコンピュータ）２００と、エッジデバイス３００−１〜３００−ｎとを備える。なお、以下では、エッジデバイス３００−１〜３００−ｎのうちの任意のエッジデバイスを指すときはエッジデバイス３００を用いることとする。
【００３１】
エッジデバイス３００は、データの収集・出力を行うデバイスであり、エッジ（即ち、ユーザに近い位置）に配置される。エッジデバイス３００としては、例えば、カメラ、マイク、スピーカ等がある。
【００３２】
情報処理システム２００は、エッジデバイス３００が収集したデータを集約し、集約したデータを処理するシステムである。情報処理システム２００は、エッジ（即ち、エッジデバイス３００）に近いエリアに設けられる。
【００３３】
クラウドサーバ１００は、情報処理システム２００がデータの処理に用いる学習データの作成、提供等を行う装置である。クラウドサーバ１００は、例えば、データセンタ等に設けられる。
【００３４】
次に情報処理システム２００のハードウェア構成について説明する。図３は、第２の実施形態の情報処理システムのハードウェア構成の一例を示す図である。
【００３５】
図３に示す情報処理システム２００は、ＰＣＩｅブリッジコントローラ（中継装置ともいう）２３０と、プラットフォーム２１０，２２０−１〜２２０−６とを備える。プラットフォーム２１０は、第１の実施形態の情報処理装置１の一実施態様である。プラットフォーム２１０は、情報処理システム２００の制御部およびＧＵＩ（Graphical User Interface）として機能するホストＰＣであり、プラットフォーム２２０−１〜２２０−６は、ＡＩ推論処理や画像処理等を実行する演算部である。なお、プラットフォーム２１０，２２０−１〜２２０−６は、それぞれが異なるプラットフォームであってもよい。なお、以下では、プラットフォーム２１０，２２０−１〜２２０−６のうち任意のプラットフォームを指すときには符号を付さないで用いることとする。
【００３６】
プラットフォームは、ＰＣＩｅブリッジコントローラ２３０に通信可能に接続されている。具体的には、プラットフォーム２１０は、２つのＲＣ（Root Complex）を用いて（例えば、２つのＰＣＩｅインタフェース（接続部ともいう）をＲＣとして機能させて）ＰＣＩｅブリッジコントローラ２３０に搭載されている２つのＥＰ（End Point）と接続されている。ＥＰは、拡張バスの末端機器として認識されるスレイブ側の接続部であり、ＲＣは、ＥＰ側を末端機器として認識して拡張バスを介した通信を制御するマスター側の接続部である。
【００３７】
プラットフォーム２１０は、ホストＰＣとして機能するプラットフォームであるため、データの送受信量が大きくなることが想定されることから２つのＲＣを用いてＰＣＩｅブリッジコントローラ２３０と接続されている。このように２つのＲＣと２つのＥＰとが接続されているため、プラットフォーム２１０は、データの通信経路（即ち、いずれのＲＣ−ＥＰ間で通信するか決定することで）を適切に振り分けることで広い通信帯域の通信を行うことができる。
【００３８】
プラットフォーム２２０−１〜２２０−６は、１つのＲＣを用いてＰＣＩｅブリッジコントローラ２３０に搭載されている１つのＥＰと接続されている。
【００３９】
このように情報処理システム２００においては、プロットフォームがホスト側として動作可能なＲＣとなり、ＰＣＩｅブリッジコントローラ２３０がＥＰとなり、データ転送が行われる。
【００４０】
プラットフォーム２１０は、プロセッサ２１１を備える。プラットフォーム２２０−１〜２２０−６は、プロセッサ２２１−１〜２２１−６をそれぞれ備える。なお、以下では、プロセッサ２１１，２２１−１〜２２１−６のうち任意のプロセッサを指すときには符号を付さないで用いることとする。
【００４１】
プロセッサは、それぞれ違うメーカ（またはベンダ）から提供されてもよい。例えば、プロセッサ２２１は、Ａ社が提供するものであり、プロセッサ２２１−１は、Ｂ社が提供するものであり、プロセッサ２２１−２は、Ｃ社が提供するものであり、プロセッサ２２１−３は、Ｄ社が提供するものであるものとすることができる。また、プロセッサ２２１−４は、Ｅ社が提供するものであり、プロセッサ２２１−５は、Ｆ社が提供するものであり、プロセッサ２２１−６は、Ｇ社が提供するものであるものとすることができる。
【００４２】
プロセッサは、搭載されたプラットフォームを統括的に制御する。プロセッサは、マルチプロセッサであってもよい。プロセッサは、例えば、ＣＰＵ、ＭＰＵ（Micro Processing Unit）、ＤＳＰ、ＡＳＩＣ、またはＰＬＤ（Programmable Logic Device）である。また、プロセッサは、ＣＰＵ、ＧＰＵ（Graphics Processing Unit）、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【００４３】
ＰＣＩｅブリッジコントローラ２３０は、拡張バス（例えば、各プラットフォームの拡張バスとして機能するバス）を有し、拡張バスを介した通信を中継する。
【００４４】
次に、プラットフォームのハードウェア構成について説明する。図４は、第２の実施形態のプラットフォームのハードウェア構成の一例を示す図である。
【００４５】
プラットフォーム２１０は、プロセッサ２１１と、ディスプレイ２１２と、ＵＳＢ（Universal Serial Bus）インタフェース２１３と、イーサネット（Ethernet：登録商標）インタフェース２１４と、ＤＩＭＭ（Dual Inline Memory Module）２１５と、を備える。また、プラットフォーム２１０は、ＳＳＤ（Solid State Drive）２１６と、ＨＤＤ２１７と、ＴＰＭ（Trusted Platform Module）２１８と、ＰＣＩｅインタフェース２１９ａ，２１９ｂと、を備える。プラットフォーム２１０が有する各構成要素は、バスを介して接続している。
【００４６】
プロセッサ２１１は、プラットフォーム２１０全体を統括的に制御する。ディスプレイ２１２は、各種の情報を表示する表示部として機能する。ＵＳＢインタフェース２１３は、ＵＳＢデバイスが接続可能であり、ＵＳＢデバイスとプロセッサ２１１との通信を媒介可能である。イーサネットインタフェース２１４は、イーサネットケーブルが接続可能であり、イーサネットケーブルを介した外部機器とプロセッサ２１１との通信を媒介可能である。
【００４７】
ＤＩＭＭ２１５は、各種の情報を一時記憶可能なＲＡＭ等の揮発性の記憶媒体である。ＳＳＤ２１６およびＨＤＤ２１７は、各種の情報を電源断後も記憶可能な不揮発性の記憶媒体である。ＳＳＤ２１６およびＨＤＤ２１７は、プロセッサ２１１が実行する各種のプログラム等の各種の情報を記憶する。ＴＰＭ２１８は、システムのセキュリティ機能を実現するモジュールである。ＰＣＩｅインタフェース２１９ａ，２１９ｂは、拡張バスと接続するための通信インタフェース（即ち、接続インタフェース）である。情報処理システム２００においては、ＰＣＩｅインタフェース２１９ａ，２１９ｂは、ＰＣＩｅブリッジコントローラ２３０と接続され、ＰＣＩｅブリッジコントローラ２３０を介したプラットフォーム２２０−１〜２２０−６との通信を媒介する。なお、以下では、ＰＣＩｅインタフェース２１９ａ，２１９ｂのうち任意のＰＣＩｅインタフェースを指すときにはＰＣＩｅインタフェース２１９を用いることとする。
【００４８】
以上のハードウェア構成によってプラットフォーム２１０の処理機能が実現される。なお、プラットフォーム２２０−１〜２２０−６についても同様の構成により各プラットフォームで実行される処理機能を実現することができる。なお、以下では、プラットフォーム２２０−１〜２２０−６についても同様の構成を備えていることとし、プラットフォーム２２０−１〜２２０−６のプロセッサ以外の上記構成要素については上記と同様の符号を用いることとする。
【００４９】
次にＰＣＩｅブリッジコントローラ２３０のハードウェア構成について説明する。図５は、第２の実施形態のＰＣＩｅブリッジコントローラのハードウェア構成の一例を示す図である。
【００５０】
ＰＣＩｅブリッジコントローラ２３０は、８チャネルのＥＰとして機能する接続インタフェースを１チップ内に有する中継装置である。ＰＣＩｅブリッジコントローラ２３０は、ＣＰＵ２３１と、メモリ２３２と、インターコネクト２３３および複数のスロット（即ち、接続インタフェース）２３４−１〜２３４−８を備える。なお、以下では、スロット２３４−１〜２３４−８のうち任意のスロットを指すときにスロット２３４を用いることとする。
【００５１】
スロット２３４−１〜２３４−８にはそれぞれＰＣＩｅの規格を満たすよう構成されたデバイスが接続される。情報処理システム２００においては、スロット２３４−１，２３４−２にプラットフォーム２１０が接続され、スロット２３４−３〜２３４−８のそれぞれにプラットフォーム２２０−１〜２２０−６が接続される。このように、プラットフォーム２１０に対して２つのスロット２３４をアサインすることで、プラットフォーム２１０に広い通信帯域を用いた通信を行わせることを可能としている。
【００５２】
なお、以下では、Ｓｌｏｔ＃０にプラットフォーム２１０のＰＣＩｅインタフェース２１９ａが接続され、Ｓｌｏｔ＃１にプラットフォーム２１０のＰＣＩｅインタフェース２１９ｂが接続されているものとする。また、Ｓｌｏｔ＃２にプラットフォーム２２０−１が接続され、Ｓｌｏｔ＃３にプラットフォーム２２０−２が接続され、Ｓｌｏｔ＃４にプラットフォーム２２０−３が接続されているものとする。また、Ｓｌｏｔ＃５にプラットフォーム２２０−４が接続され、Ｓｌｏｔ＃６にプラットフォーム２２０−５が接続され、Ｓｌｏｔ＃７にプラットフォーム２２０−６が接続されていることとする。
【００５３】
各スロット２３４は、内部バス（Internal Busともいう）を介してインターコネクト２３３にそれぞれ接続されている。また、インターコネクト２３３にはＣＰＵ２３１およびメモリ２３２が接続されている。これにより、各スロット２３４とＣＰＵ２３１およびメモリ２３２はインターコネクト２３３を介して相互に通信可能に接続されている。
【００５４】
メモリ２３２は、例えば、ＲＯＭ（Read Only Memory）およびＲＡＭを含む記憶メモリ（物理メモリ）である。メモリ２３２のＲＯＭには、データ通信制御に係るソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。メモリ２３２上のソフトウェアプログラムは、ＣＰＵ２３１に適宜読み込まれて実行される。また、メモリ２３２のＲＡＭは、一次記憶メモリあるいはワーキングメモリとして利用される。
【００５５】
ＣＰＵ２３１は、ＰＣＩｅブリッジコントローラ２３０全体を制御する。ＣＰＵ２３１は、マルチプロセッサであってもよい。なお、ＣＰＵ２３１に代えてＭＰＵ，ＤＳＰ，ＡＳＩＣ，ＰＬＤ，ＦＰＧＡのいずれか一つが用いられてもよい。また、ＣＰＵ２３１は、ＣＰＵ，ＭＰＵ，ＤＳＰ，ＡＳＩＣ，ＰＬＤ，ＦＰＧＡのうちの２種類以上の要素の組み合わせであってもよい。
【００５６】
そして、ＣＰＵ２３１がメモリ２３２に格納されたソフトウェアプログラムを実行することで、ＰＣＩｅブリッジコントローラ２３０におけるプラットフォーム間（またはプロセッサ間）のデータ転送（即ち、データの送受信）を実現する。
【００５７】
ＰＣＩｅブリッジコントローラ２３０は、プラットフォーム間のデータ転送を高速化するためにＰＣＩｅを用い、各プラットフォームに備えられるプロセッサをそれぞれＲＣとして動作させ、デバイスとして動作するＥＰ間でデータ転送を実現している。
【００５８】
具体的には、情報処理システム２００においては、各プラットフォームのプロセッサを、データ転送インタフェースとしてＰＣＩｅのＲＣとして動作させている。また、各プラットフォーム（またはプロセッサ）に対して、ＰＣＩｅブリッジコントローラ２３０（例えば、各プラットフォームが接続されているスロット２３４）をＥＰとして動作させている。
【００５９】
なお、ＰＣＩｅブリッジコントローラ２３０をプロセッサに対してＥＰとして接続する手法としては、既知の種々の手法を用いて実現することができる。例えば、ＰＣＩｅブリッジコントローラ２３０は、プラットフォームとの接続時に、ＥＰとして機能することを示す信号を当該プロセッサに通知することで、ＥＰとしてプロセッサと接続することができる。
【００６０】
ＰＣＩｅブリッジコントローラ２３０においてはＥＰｔｏＥＰ（End Point to End Point）でデータをトンネリングさせて、複数のＲＣにデータを転送する。プロセッサ間の通信は、ＰＣＩｅのトランザクションが発生したときに論理的に接続され、１つのプロセッサにデータ転送が集中しないときは、それぞれのプロセッサ間で並行してデータ転送できる。
【００６１】
次に、情報処理システム２００のソフトウェア構成について図６を用いて説明する。図６は、第２の実施形態の情報処理システムにおける各プラットフォームのソフトウェア構成の一例を示す図である。なお、図６中においては、便宜上、プラットフォーム２１０，２２０−１，２２０−２のソフトウェア構成のみを図示する。なお、プラットフォーム２２０−１〜２２０−６は、同様の構成である。
【００６２】
まずプラットフォーム２１０について説明する。プラットフォーム２１０は、アプリケーション２１０ａと、ドライバ２１０ｂと、ＯＳ（Operating System）２１０ｅと、ＢＩＯＳ（Basic Input Output System）２１０ｆと、を有する。
【００６３】
アプリケーション２１０ａは、プラットフォーム２１０で行うＯＳ２１０ｅが提供する機能を利用して各種処理を実行する応用ソフトウェアまたは応用プログラムである。アプリケーション２１０ａは、ＯＳ２１０ｅ上で動作する。プラットフォーム２１０は、アプリケーション２１０ａの制御下で各種処理を行う。
【００６４】
ドライバ２１０ｂは、プラットフォーム２１０に搭載されているハードウェア等をＯＳ２１０ｅによって制御可能にするために用意されたソフトウェアである。
【００６５】
プラットフォーム２１０が有するドライバ２１０ｂとしては、ブリッジドライバ２１０ｃ１，２１０ｃ２と、仮想ＬＡＮドライバ２１０ｄ１，２１０ｄ２等がある。ブリッジドライバ２１０ｃ１，２１０ｃ２は、第１の実施形態の第１通信プログラム３ａ，第２通信プログラム３ｂの一実施態様である。仮想ＬＡＮドライバ２１０ｄ１，２１０ｄ２は、第１の実施形態の第１処理プログラム３ｃ，第２処理プログラム３ｄの一実施態様である。なお、以下では、ブリッジドライバ２１０ｃ１，２１０ｃ２のうち任意のブリッジドライバを指すときにブリッジドライバ２１０ｃを用いることとする。また、以下では、仮想ＬＡＮドライバ２１０ｄ１，２１０ｄ２のうち任意の仮想ＬＡＮドライバを指すときに仮想ＬＡＮドライバ２１０ｄを用いることとする。
【００６６】
ブリッジドライバ２１０ｃは、ＰＣＩｅブリッジコントローラ２３０を制御するためのドライバ（言い換えればＰＣＩｅブリッジコントローラ２３０に電気的にアクセスして他のプラットフォームと通信を行うためのドライバ）である。
【００６７】
プラットフォーム２１０は、２つのＲＣを用いてＰＣＩｅブリッジコントローラ２３０に搭載されている２つのＥＰと接続しているため、それぞれの接続として機能するＲＣに対応する２つのブリッジドライバ２１０ｃを有している。
【００６８】
なお、以下では、ブリッジドライバ２１０ｃ１がＰＣＩｅインタフェース２１９ａに対応するドライバであり、ブリッジドライバ２１０ｃ２がＰＣＩｅインタフェース２１９ｂに対応するドライバであることとする。
【００６９】
仮想ＬＡＮドライバ２１０ｄは、ブリッジドライバ２１０ｃと組み合わせることで他のプラットフォームとの間でトンネリングさせた仮想的なＬＡＮ回線を確立した通信を行うためのドライバである。
【００７０】
プラットフォーム２１０は、２つのＲＣを用いてＰＣＩｅブリッジコントローラ２３０に搭載されている２つのＥＰと接続するため、それぞれの接続として機能するＲＣを用いた通信を仮想的なＬＡＮ通信とするために２つの仮想ＬＡＮドライバ２１０ｄを有している。
【００７１】
例えば、プラットフォーム２１０は、セキュリティを強化する場合には仮想ＬＡＮドライバ２１０ｄおよびブリッジドライバ２１０ｃを用いて他のプラットフォームとの間で仮想的なＬＡＮ通信を行う。プラットフォーム２１０は、セキュリティを強化する必要がない場合にはブリッジドライバ２１０ｃだけを用いて他のプラットフォームとの間で通信を行う。
【００７２】
ＯＳ２１０ｅは、プラットフォーム２１０を動かすための基本ソフトウェアまたは基本プログラムである。ＢＩＯＳ２１０ｆは、プラットフォーム２１０におけるＯＳ２１０ｅの起動を制御するソフトウェアである。プラットフォーム２１０では、例えば、ＢＩＯＳ２１０ｆによってＢｏｏｔｌｏａｄｅｒが起動（または呼び出）され、ＢＩＯＳ２１０ｆによって起動されたＢｏｏｔｌｏａｄｅｒによりＯＳ２１０ｅを検出し、ＯＳ２１０ｅが起動する。
【００７３】
次にプラットフォーム２２０−１〜２２０−６について説明する。プラットフォーム２２０−１〜２２０−６は、同様の構成であるので、プラットフォーム２２０−１を例として用いて説明する。プラットフォーム２２０−１は、アプリケーション２２０−１ａと、ドライバ２２０−１ｂと、ＯＳ２２０−１ｅと、Ｂｏｏｔｌｏａｄｅｒ２２０−１ｆと、を有する。
【００７４】
アプリケーション２２０−１ａは、プラットフォーム２２０−１で行うＯＳ２２０−１ｅが提供する機能を利用して各種処理を実行する応用ソフトウェアまたは応用プログラムである。アプリケーション２２０−１ａは、ＯＳ２２０−１ｅ上で動作する。プラットフォーム２２０−１は、アプリケーション２２０−１ａの制御下で各種処理を行う。
【００７５】
ドライバ２２０−１ｂは、プラットフォーム２２０−１に搭載されているハードウェア等をＯＳ２２０−１ｅによって制御可能にするために用意されたソフトウェアである。
【００７６】
プラットフォーム２２０−１が有するドライバ２２０−１ｂとしては、ブリッジドライバ２２０−１ｃと、仮想ＬＡＮドライバ２２０−１ｄ等がある。
【００７７】
ブリッジドライバ２２０−１ｃは、ＰＣＩｅブリッジコントローラ２３０を制御するためのドライバである。プラットフォーム２２０−１は、１つのＲＣを用いてＰＣＩｅブリッジコントローラ２３０に搭載されている１つのＥＰと接続するため、１つのブリッジドライバ２２０−１ｃを有している。
【００７８】
仮想ＬＡＮドライバ２２０−１ｄは、ブリッジドライバ２２０−１ｃと組み合わせることで他のプラットフォームとの間で仮想的なＬＡＮ回線を確立した通信を行うためのドライバである。
【００７９】
プラットフォーム２２０−１は、１つのＲＣを用いてＰＣＩｅブリッジコントローラ２３０に搭載されている１つのＥＰと接続するため、１つの仮想ＬＡＮドライバ２２０−１ｄを有している。
【００８０】
例えば、プラットフォーム２２０−１は、セキュリティを強化する場合には仮想ＬＡＮドライバ２２０−１ｄおよびブリッジドライバ２２０−１ｃを用いて他のプラットフォームとの間で仮想的なＬＡＮ通信を行う。プラットフォーム２２０−１は、セキュリティを強化する必要がない場合にはブリッジドライバ２２０−１ｃだけを用いて他のプラットフォームとの間で通信を行う。
【００８１】
ＯＳ２２０−１ｅは、プラットフォーム２２０−１を動かすための基本ソフトウェアまたは基本プログラムである。Ｂｏｏｔｌｏａｄｅｒ２２０−１ｆは、プラットフォーム２２０−１の起動時に呼び出され、ＯＳ２２０−１ｅを起動するソフトウェアである。プラットフォーム２１０では、例えば、Ｂｏｏｔｌｏａｄｅｒ２２０−１ｆによりＯＳ２１０ｅを検出し、ＯＳ２１０ｅが起動する。
【００８２】
次にＰＣＩｅブリッジコントローラ２３０に接続されるプラットフォーム間における通信処理の一例について説明する。図７は、第２の実施形態の情報処理システムにおけるプラットフォーム間における通信処理の一例を説明するための図である。
【００８３】
ここではプラットフォーム２１０のプロセッサ２１１と、プラットフォーム２２０−１のプロセッサ２２１−１との間で通信を行う例を用いて説明する。
【００８４】
送信元のプラットフォーム２１０は、ＲＣであるプロセッサ２１１において生成したデータを、ソフトウェア，トランザクション層，データリンク層および物理層（ＰＨＹ）に順次転送し、物理層においてＰＣＩｅブリッジコントローラ２３０の物理層に転送する。
【００８５】
ＰＣＩｅブリッジコントローラ２３０は、プラットフォーム２１０から転送されたデータを、物理層，データリンク層，トランザクション層およびソフトウェアに順次転送し、プラットフォーム２２０−１のＲＣに対応するＥＰにトンネリングにより転送する。即ち、ＰＣＩｅブリッジコントローラ２３０においては、ＥＰ間でデータをトンネリングさせることで、１つのＲＣ（またはプロセッサ）から他のＲＣ（またはプロセッサ）にデータが転送される。
【００８６】
送信先のプラットフォーム２２０−１は、ＰＣＩｅブリッジコントローラ２３０から転送されたデータを、物理層，データリンク層，トランザクション層およびソフトウェアに順次転送し、送信先のプラットフォーム２２０−１のプロセッサ２２１−１に転送する。
【００８７】
情報処理システム２００では、プラットフォーム間の通信はＰＣＩｅのトランザクションが発生したときに論理的に接続される。
【００８８】
ＰＣＩｅブリッジコントローラ２３０が有する８スロットのうちの一つに接続された特定のプロセッサに対して複数の他のプロセッサからのデータ転送が集中しないときは、異なる任意の複数組のそれぞれのプロセッサ間で並行してデータ転送してもよい。例えば、プロセッサ２２１−１に対して、プロセッサ２２１−２およびプロセッサ２２１−３が通信する場合には、ＰＣＩｅブリッジコントローラ２３０は、プロセッサ２２１−２およびプロセッサ２２１−３による通信をシリアルに処理する。
【００８９】
一方、異なるプラットフォームのプロセッサ同士が通信し、特定のプラットフォームのプロセッサに通信が集中しない場合には、ＰＣＩｅブリッジコントローラ２３０は、プラットフォーム間の通信を並行して処理することも可能である。
【００９０】
次に、図８を用いて、情報処理システム２００におけるＰＣＩｅブリッジコントローラ２３０を介したプラットフォーム間のデータ転送方法を説明する。図８は、第２の実施形態の情報処理システムにおけるＰＣＩｅブリッジコントローラを介したプロセッサ間のデータ転送方法の一例を説明するための図である。
【００９１】
ここではＳｌｏｔ＃０，Ｓｌｏｔ＃１に接続されたプラットフォーム２１０のＳｌｏｔ＃０からＳｌｏｔ＃３に接続されたプラットフォーム２２０−２にデータを転送する場合を例に用いて説明する。
【００９２】
送信元のプラットフォーム２１０は、ソフトウェア等によって送信されるデータ（以下、送信データという）を、プラットフォーム２１０に備えられるＨＤＤ２１７等の記憶装置（即ち、ストレージ）からプラットフォーム２１０のＤＩＭＭ２１５等（即ち、物理メモリ）のメモリ領域２１５ａに格納する（Ｐ１０）。メモリ領域２１５ａは、転送されるデータが一時的に格納される通信バッファの一部であってもよい。
【００９３】
メモリ領域２１５ａは、プラットフォームそれぞれのＤＩＭＭ２１５等に、同じ大きさで設けられた領域である。メモリ領域２１５ａは、スロット２３４の数に応じて分割されている。メモリ領域２１５ａの分割された記憶領域は、いずれかのスロット２３４に対応付けられている。即ち、各プラットフォームのメモリ領域２１５ａには、Ｓｌｏｔ＃０〜＃７のそれぞれに対応する記憶領域が設けられている。
【００９４】
例えば、メモリ領域２１５ａ内のＳｌｏｔ＃０で示す記憶領域は、Ｓｌｏｔ＃０に接続されたプラットフォーム２１０に対応付けられ、Ｓｌｏｔ＃３で示す記憶領域は、Ｓｌｏｔ＃３に接続されたプラットフォーム２２０−２に対応付けられている。プラットフォーム２１０は、メモリ領域２１５ａのうち、送信先のスロット２３４に割り当てられた領域（ここでは、Ｓｌｏｔ＃３）に送信データを格納する。
【００９５】
ブリッジドライバ２１０ｃ１は、プラットフォームのメモリ領域２１５ａの記憶領域に基づいて、送信先のスロット２３４を示すスロット情報と、送信先のメモリ領域２１５ａにおける分割領域内におけるアドレスを示すアドレス情報とを取得または生成する（Ｐ１１）。
【００９６】
送信元ＥＰにおいて、ブリッジドライバ２１０ｃ１は、スロット情報と、アドレス情報と、送信データとを含む転送データをＰＣＩｅブリッジコントローラ２３０に渡す（Ｐ１２）。これにより、ＰＣＩｅブリッジコントローラ２３０は、スロット情報に基づいてＥＰｔｏＥＰにより送信元のスロット２３４と送信先のスロット２３４とを接続することにより、転送データを送信先のプラットフォーム２２０−２に転送する（Ｐ１３）。送信先のプラットフォーム２２０−２は、スロット情報およびアドレス情報に基づいて、送信先のプラットフォーム２２０−２のメモリ領域２１５ａのＳｌｏｔ＃３に対応する記憶領域内のアドレス情報が示す領域に送信データ（または転送データ）を格納する（Ｐ１４）。
【００９７】
送信先のプラットフォーム２２０−２において、例えば、プログラムが、メモリ領域２１５ａに格納された送信データを読み出して、ＤＩＭＭ２１５やＨＤＤ２１７に移動させる（Ｐ１５、Ｐ１６）。
【００９８】
以上のようにして、送信元のプラットフォーム２１０から送信先のプラットフォーム２２０−２にデータが転送される。なお、仮想ＬＡＮ通信は、例えば、Ｐ１０において格納する送信データを、仮想ＬＡＮドライバが元のデータにヘッダ等を付与してカプセル化したデータとし、送信先の仮想ＬＡＮドライバが非カプセル化して元のデータを取り出すことで実現できる。
【００９９】
このように情報処理システム２００においては、ＰＣＩｅブリッジコントローラ２３０において、当該ＰＣＩｅブリッジコントローラ２３０内のＥＰ間でデータ転送を媒介する。これにより、ＰＣＩｅブリッジコントローラ２３０に接続された複数のＲＣ間でのデータ転送を実現することができる。
【０１００】
即ち、各プロセッサをＰＣＩｅのＲＣとして独立動作させ、ＰＣＩｅブリッジコントローラ２３０において、それぞれのプロセッサに接続するデバイスをＥＰとして接続し、ＥＰ間でデータ転送を行う。これにより、デバイスドライバに起因する問題を回避し、高速データ転送を１つのシステムとして動作させることができる。
【０１０１】
また、ＰＣＩｅの規格に適合したデータ通信機能を有してさえいれば異なるプロセッサ間でのデータ転送が可能となるため、デバイスドライバの有無や、サポートＯＳ等を気にすることなく使用するプロセッサの選択肢を広げることが可能となる。
【０１０２】
各プロセッサはＥＰとなるＰＣＩｅブリッジコントローラ２３０を介して接続されるため、ＥＰの先のＲＣのデバイスドライバを追加する必要がない。従って、デバイスドライバの開発が不要であるとともに、デバイスドライバを追加することに起因する不具合が発生することもない。
【０１０３】
情報処理システム２００においては、ＡＲＭプロセッサやＦＰＧＡ等の一般的なプロセッサはＲＣとして動作することが求められるため、情報処理システム２００のプロセッサとして容易に追加することができる。
【０１０４】
ＰＣＩｅブリッジコントローラ２３０においては、ＰＣＩｅでの接続および通信がされるので、イーサネットでは実現できない高速転送を実現することができる。また、４Ｋ，８Ｋ等の高精細映像のプロセッサ間送受信、大規模なビッグデータの並列計算等も行うことができる。
【０１０５】
また、画像処理やデータ検索等の各機能に特化した専用プロセッサを接続することもできるので、安価に機能追加、性能向上を行うことができる。
【０１０６】
さらに、情報処理システム２００においては、システムの仮想化等を行う必要もなく、システムの仮想化を行うことで生じるシステム性能の低下が生じることもない。従って、情報処理システム２００を、ＡＩ推論や画像処理といった高負荷な演算を用途とするシステムに適用することもできる。
【０１０７】
次にプラットフォーム２１０が備える機能について説明する。図９は、第２の実施形態のプラットフォームの機能構成の一例を示す図である。
【０１０８】
プラットフォーム２１０は、処理部２４０と、記憶部２５０とを有する。処理部２４０は、記憶部２５０が記憶する各種プログラムを実行し、各種プログラム内で行われる各種処理を行う。処理部２４０は、プロセッサ２１１によって実現される。処理部２４０は、第１の実施形態の処理部４の一実施態様である。
【０１０９】
例えば、処理部２４０は、仮想ＬＡＮドライバ２１０ｄと、ブリッジドライバ２１０ｃとの対応関係を示すパラメータ情報２５５の設定や、設定した対応関係（例えば、パラメータ情報２５５）に基づいた仮想ＬＡＮドライバ２１０ｄとブリッジドライバ２１０ｃとの対応付けを行う。
【０１１０】
記憶部２５０は、プラットフォーム２１０が有する各種ソフトウェアまたはプログラムや各種ソフトウェアの動作に用いる各種情報を記憶する。記憶部２５０は、ＳＳＤ２１６やＨＤＤ２１７等によって実現される。記憶部２５０は、第１の実施形態の記憶部３の一実施態様である。
【０１１１】
記憶部２５０は、ブリッジドライバ２１０ｃ１，２１０ｃ２および仮想ＬＡＮドライバ２１０ｄ１，２１０ｄ２の動作に用いる情報であるＭＡＣ（Media Access Control）アドレス２５１，２５２と仮想ＩＰ（Internet Protocol）アドレス２５３，２５４とパラメータ情報２５５とを記憶する。パラメータ情報２５５は、第１の実施形態の対応関係情報３ｅの一実施態様である。
【０１１２】
パラメータ情報２５５は、各仮想ＬＡＮドライバ２１０ｄが対応付けられるブリッジドライバ２１０ｃ（即ち、各仮想ＬＡＮドライバ２１０ｄと組み合わせるブリッジドライバ２１０ｃ）を示す情報である。パラメータ情報２５５は、レジストリに格納（記憶ともいう）された情報である。パラメータ情報２５５は、インストールされている仮想ＬＡＮドライバ２１０ｄの数に関わらず１つだけレジストリに生成される。
【０１１３】
パラメータ情報２５５は、各仮想ＬＡＮドライバ２１０ｄの識別子と、各仮想ＬＡＮドライバ２１０ｄが対応付けられるブリッジドライバ２１０ｃの識別子とを対応付けた情報である。
【０１１４】
ブリッジドライバ２１０ｃの識別子は、ブリッジドライバ２１０ｃに対し一意に設定された各ブリッジドライバ２１０ｃを識別可能な識別情報である。パラメータ情報２５５に設定されるブリッジドライバ２１０ｃの識別子は、再起動等によって変更されない静的な情報（即ち、固定された情報）であり、例えば、インストール時に割り当てられ、レジストリに格納される固有の識別子である。
【０１１５】
仮想ＬＡＮドライバ２１０ｄの識別子は、仮想ＬＡＮドライバ２１０ｄに対し一意に設定された各仮想ＬＡＮドライバ２１０ｄを識別可能な識別情報である。パラメータ情報２５５に設定される仮想ＬＡＮドライバ２１０ｄの識別子は、再起動等によって変更されない静的な情報（即ち、固定の情報）であり、例えば、インストール時に割り当てられ、レジストリに格納される固有の識別子である。
【０１１６】
例えば、図９の例では、＃１の識別子を有する仮想ＬＡＮドライバ２１０ｄが＃１の識別子を有するブリッジドライバ２１０ｃに対応付けられていることを示す。また、＃２の識別子を有する仮想ＬＡＮドライバ２１０ｄが＃２の識別子を有するブリッジドライバ２１０ｃに対応付けられていることを示す。なお、以下では、仮想ＬＡＮドライバ２１０ｄ１に＃１の識別子が設定され、仮想ＬＡＮドライバ２１０ｄ２に＃２の識別子が設定されていることとする。また、ブリッジドライバ２１０ｃ１に＃１の識別子が設定され、ブリッジドライバ２１０ｃ２に＃２の識別子が設定されていることとする。即ち、プラットフォーム２１０では、仮想ＬＡＮドライバ２１０ｄ１がブリッジドライバ２１０ｃ１と対応付けられており、仮想ＬＡＮドライバ２１０ｄ２がブリッジドライバ２１０ｃ２と対応付けられていることとする。
【０１１７】
ＭＡＣアドレス２５１，２５２は、ＰＣＩｅインタフェース２１９に設定された物理アドレス（例えば、ノードＩＤ）である、ＭＡＣアドレス２５１，２５２は、ＰＣＩｅインタフェース２１９がＰＣＩｅブリッジコントローラ２３０のどのスロット２３４に接続しているかの識別に用いられる。ＭＡＣアドレス２５１，２５２は、ブリッジドライバ２１０ｃによるプラットフォーム間でのデータの転送、および仮想ＬＡＮドライバ２１０ｄによるプラットフォーム間での仮想的なＬＡＮ回線の確立にそれぞれ用いられる。
【０１１８】
情報処理システム２００では、ＭＡＣアドレス２５１，２５２は、ＰＣＩｅインタフェース２１９が接続するスロット２３４に応じてブリッジドライバ２１０ｃによって生成される。即ち、ＭＡＣアドレス２５１，２５２は、接続構成の変化によって変更され得る動的な情報（即ち、非固定の情報）である。
【０１１９】
ＭＡＣアドレス２５１は、ＰＣＩｅインタフェース２１９ａに設定された物理アドレス（ここではＳｌｏｔ＃０に応じた物理アドレス）であり、ＰＣＩｅインタフェース２１９ａの制御に用いられるブリッジドライバ２１０ｃ１によって生成される。ＭＡＣアドレス２５１は、ブリッジドライバ２１０ｃ１と対応付けて記憶される（例えば、ブリッジドライバ２１０ｃ１の設定情報に記憶される）。
【０１２０】
ＭＡＣアドレス２５２は、ＰＣＩｅインタフェース２１９ｂに設定された物理アドレス（ここではＳｌｏｔ＃１に応じた物理アドレス）であり、ＰＣＩｅインタフェース２１９ｂの制御に用いられるブリッジドライバ２１０ｃ２によって生成される。ＭＡＣアドレス２５２は、ブリッジドライバ２１０ｃ２と対応付けて記憶される。
【０１２１】
仮想ＩＰアドレス２５３，２５４は、仮想ＬＡＮドライバ２１０ｄによるプラットフォーム間での仮想的なＬＡＮ回線の確立に用いられるＩＰアドレスである。
【０１２２】
情報処理システム２００では仮想ＩＰアドレス２５３，２５４は、例えば、ユーザによって任意に割り当てられる。即ち、仮想ＩＰアドレス２５３，２５４は、ユーザの設定変更によって変更され得る動的な情報（即ち、非固定の情報）である。
【０１２３】
仮想ＩＰアドレス２５３は、仮想ＬＡＮドライバ２１０ｄ１が仮想的なＬＡＮ回線の確立に用いるＩＰアドレスであり、仮想ＬＡＮドライバ２１０ｄ１に対応付けられて記憶されている。
【０１２４】
仮想ＩＰアドレス２５４は、仮想ＬＡＮドライバ２１０ｄ２が仮想的なＬＡＮ回線の確立に用いるＩＰアドレスであり、仮想ＬＡＮドライバ２１０ｄ２に対応付けられて記憶されている。
【０１２５】
このようにプラットフォーム２１０は、対応関係を示すパラメータ情報２５５を有し、当該パラメータ情報２５５に基づいて仮想ＬＡＮドライバ２１０ｄとブリッジドライバ２１０ｃとの対応付けを行うため、再起動の影響を受けずに組み合わせを固定化できる。
【０１２６】
特に、プラットフォーム２１０は、パラメータ情報２５５において仮想ＬＡＮドライバ２１０ｄを識別可能な静的な情報と、ブリッジドライバ２１０ｃを識別可能な静的な情報とを対応付けて対応関係を示しているため、設定変更等の影響を受ける恐れもない。これにより、プラットフォーム２１０は、構成の変化によってＭＡＣアドレス２５１，２５２が変化したり、ユーザの設定変更によって仮想ＩＰアドレス２５３，２５４が変化したりした場合であっても、対応関係に影響を受けないようにでき再設定を不要にできる。
【０１２７】
次に対応関係（即ち、組み合わせ）が変化した場合に起こり得る問題について図１０を用いて説明する。図１０は、第２の実施形態の組み合わせが変化した場合の問題点を説明するための図である。
【０１２８】
図１０のＰ２０は、アプリケーション２１０ａが認識している仮想ＬＡＮドライバ２１０ｄとブリッジドライバ２１０ｃとの組み合わせを示す。換言すれば、図１０のＰ２０に示す仮想ＬＡＮドライバ２１０ｄとブリッジドライバ２１０ｃとの組み合わせは、適切な組み合わせである。
【０１２９】
Ｐ２０では、仮想ＬＡＮドライバ２１０ｄ１がブリッジドライバ２１０ｃ１と対応付けられ、仮想ＬＡＮドライバ２１０ｄ２がブリッジドライバ２１０ｃ２と対応付けられている。即ち、アプリケーション２１０ａは、仮想ＬＡＮドライバ２１０ｄ１に仮想的なＬＡＮ通信によるデータの転送を指示した場合、ブリッジドライバ２１０ｃ１がＳｌｏｔ＃０からデータを出力すると認識している。また、アプリケーション２１０ａは、仮想ＬＡＮドライバ２１０ｄ２に仮想的なＬＡＮ通信によるデータの転送を指示した場合、ブリッジドライバ２１０ｃ２がＳｌｏｔ＃１からデータを出力すると認識している。
【０１３０】
このような仮想ＬＡＮドライバ２１０ｄとブリッジドライバ２１０ｃとの組み合わせをアプリケーション２１０ａが認識している際に対応関係を固定化していない状態で再起動をした場合、対応付けが予期せず変化すること（Ｐ２１，Ｐ２２）がある。
【０１３１】
図１０のＰ２３は、アプリケーション２１０ａが認識している仮想ＬＡＮドライバ２１０ｄとブリッジドライバ２１０ｃとの組み合わせ（Ｐ２１）から予期せず変化した場合の組み合わせの一例を示す。Ｐ２３では、仮想ＬＡＮドライバ２１０ｄ１がブリッジドライバ２１０ｃ２と対応付けられ、仮想ＬＡＮドライバ２１０ｄ２がブリッジドライバ２１０ｃ１と対応付けられている。したがって、アプリケーション２１０ａが仮想的なＬＡＮ通信によりＳｌｏｔ＃０からデータを出力すべく認識している組み合わせに基づいて指示を行うと、データは、想定とは異なるＳｌｏｔ＃１から出力されることとなる。
【０１３２】
図１０のＰ２４は、アプリケーション２１０ａが認識している仮想ＬＡＮドライバ２１０ｄとブリッジドライバ２１０ｃとの組み合わせ（Ｐ２２）から予期せず変化した場合の組み合わせの一例を示す。Ｐ２４では、仮想ＬＡＮドライバ２１０ｄ１がブリッジドライバ２１０ｃ２と対応付けられ、仮想ＬＡＮドライバ２１０ｄ２がブリッジドライバ２１０ｃ２と対応付けられている。したがって、仮想的なＬＡＮ通信によりデータを出力すべく認識している組み合わせに基づいて指示を行っても、データは、必ずＳｌｏｔ＃１から出力されることとなり、想定とは異なる出力挙動をすることとなる。
【０１３３】
Ｐ２３，Ｐ２４のように組み合わせが変化してアプリケーション２１０ａの想定通りのスロット２３４からデータを出力できなくなると、プラットフォーム２１０は、リソース管理を適切にできなくなる。
【０１３４】
例えば、プラットフォーム２１０は、低負荷のスロット２３４で仮想的なＬＡＮ通信によりデータ転送を行うべく仮想ＬＡＮドライバ２１０ｄに指示を行った場合、想定と異なるスロット２３４からデータが出力され、さらなる負荷の偏りを招く虞がある。その結果、プラットフォーム２１０は、通信パフォーマンスの低下を招き、通信の不具合が発生し得る。
【０１３５】
この点、プラットフォーム２１０は、パラメータ情報２５５を記憶しておくことで、各仮想ＬＡＮドライバ２１０ｄが対応付けられるブリッジドライバ２１０ｃを固定化しているため、再起動により対応付けが変化する虞がない。これにより、プラットフォーム２１０は、通信パフォーマンスの低下を抑止し、通信の不具合の発生を防止可能にしている。
【０１３６】
次にパラメータ情報２５５の設定タイミングについて図１１，１２を用いて説明する。まず、図１１を用いてインストール時にパラメータ情報２５５を設定する場合について説明する。図１１は、第２の実施形態のパラメータ情報をインストール時に設定する場合における処理の一例を示す図である。
【０１３７】
なお、カーネル２１０ｅ１は、ＯＳ２１０ｅの中核となるプログラムである。なお、図１１で説明する各種プログラム（具体的には、カーネル２１０ｅ１、仮想ＬＡＮドライバ２１０ｄ、ブリッジドライバ２１０ｃ）が行う処理は、処理部２４０によって行われる。
【０１３８】
ユーザによるブリッジドライバ２１０ｃのインストール指示により、各ブリッジドライバ２１０ｃのインストールが仮想ＬＡＮドライバ２１０ｄのインストールよりも先だって行われる（Ｓ１）。ブリッジドライバ２１０ｃのインストールが終了した後、ユーザによる仮想ＬＡＮドライバ２１０ｄのインストール指示により、仮想ＬＡＮドライバ２１０ｄのインストールが開始される（Ｓ２）。
【０１３９】
仮想ＬＡＮドライバ２１０ｄは、カーネル２１０ｅ１に対してレジストリに格納されたパラメータ情報２５５を要求し（Ｓ３）、パラメータ情報２５５（ここではレジストリに格納されたパラメータ情報２５５の複製）を取得する（Ｓ４）。
【０１４０】
仮想ＬＡＮドライバ２１０ｄは、パラメータ情報２５５に他の仮想ＬＡＮドライバ２１０ｄとブリッジドライバ２１０ｃとの組み合わせが既に設定されているか否かを判定する。仮想ＬＡＮドライバ２１０ｄは、１つ目にインストールする仮想ＬＡＮドライバ２１０ｄである場合に、パラメータ情報２５５に他の仮想ＬＡＮドライバ２１０ｄとブリッジドライバ２１０ｃとの組み合わせが設定されていないと判定する。仮想ＬＡＮドライバ２１０ｄは、２つ目以降にインストールする仮想ＬＡＮドライバ２１０ｄである場合に、パラメータ情報２５５に他の仮想ＬＡＮドライバ２１０ｄとブリッジドライバ２１０ｃとの組み合わせが設定されていると判定する。
【０１４１】
仮想ＬＡＮドライバ２１０ｄは、他の仮想ＬＡＮドライバ２１０ｄとブリッジドライバ２１０ｃとの組み合わせが設定されていると判定した場合には、他の仮想ＬＡＮドライバ２１０ｄと未だ組み合わせられていないブリッジドライバ２１０ｃを特定する。仮想ＬＡＮドライバ２１０ｄは、特定した他の仮想ＬＡＮドライバ２１０ｄと未だ組み合わせられていないブリッジドライバ２１０ｃのいずれかに対して、リンク要求（即ち、対応付けの要求）を行う（Ｓ５）。
【０１４２】
仮想ＬＡＮドライバ２１０ｄは、リンクの許可を受け付ける（Ｓ６）。仮想ＬＡＮドライバ２１０ｄは、カーネル２１０ｅ１にレジストリに格納されたパラメータ情報２５５へと、自身の識別子と、対応付けの許可を受けたブリッジドライバ２１０ｃの識別子とを対応付けて設定するように要求する（Ｓ７）。仮想ＬＡＮドライバ２１０ｄは、レジストリに格納されたパラメータ情報２５５への設定完了の応答を受け付け（Ｓ８）た後、仮想ＬＡＮドライバ２１０ｄのインストール時における以降の処理を行う（例えば、別の仮想ＬＡＮドライバ２１０ｄのインストール等）。
【０１４３】
一方で、仮想ＬＡＮドライバ２１０ｄは、他の仮想ＬＡＮドライバ２１０ｄとブリッジドライバ２１０ｃとの組み合わせが設定されていないと判定した場合には、任意のブリッジドライバ２１０ｃに対して、リンク要求を行う（Ｓ９）。
【０１４４】
仮想ＬＡＮドライバ２１０ｄは、リンクの許可を受け付ける（Ｓ１０）。仮想ＬＡＮドライバ２１０ｄは、カーネル２１０ｅ１にレジストリに格納されたパラメータ情報２５５へと、自身の識別子と、対応付けの許可を受けたブリッジドライバ２１０ｃの識別子とを対応付けて設定するように要求する（Ｓ１１）。仮想ＬＡＮドライバ２１０ｄは、レジストリに格納されたパラメータ情報２５５への設定完了の応答を受け付け（Ｓ１２）た後、仮想ＬＡＮドライバ２１０ｄのインストール時における以降の処理を行う。
【０１４５】
これによれば、各種プログラムで行われる処理を実行する処理部２４０は、インストール中の仮想ＬＡＮドライバ２１０ｄを、未だ組み合わせられていないブリッジドライバ２１０ｃと対応付け、パラメータ情報２５５に設定することができる。
【０１４６】
これにより、処理部２４０は、１つのブリッジドライバ２１０ｃに複数の仮想ＬＡＮドライバ２１０ｄが対応付けられることを防止できる。
【０１４７】
次に、図１２を用いて起動時にパラメータ情報２５５を設定する場合について説明する。図１２は、第２の実施形態のパラメータ情報を起動時に設定する場合における処理の一例を示す図である。
【０１４８】
なお、図１２で説明する各種プログラム（具体的には、カーネル２１０ｅ１、仮想ＬＡＮドライバ２１０ｄ、ブリッジドライバ２１０ｃ）が行う処理は、処理部２４０によって行われる。
【０１４９】
カーネル２１０ｅ１は、ユーザによるブリッジドライバ２１０ｃの仮想ＬＡＮドライバ２１０ｄの起動指示を受け付けると（Ｓ２１）、仮想ＬＡＮドライバ２１０ｄの起動に先立って、各ブリッジドライバ２１０ｃの起動を行う（Ｓ２２）。ブリッジドライバ２１０ｃの起動が終了した後、カーネル２１０ｅ１は、仮想ＬＡＮドライバ２１０ｄに起動を開始させる（Ｓ２３）。
【０１５０】
仮想ＬＡＮドライバ２１０ｄは、カーネル２１０ｅ１に対してレジストリに格納されたパラメータ情報２５５を要求し（Ｓ２４）、パラメータ情報２５５を取得する（Ｓ２５）。
【０１５１】
仮想ＬＡＮドライバ２１０ｄは、パラメータ情報２５５に自身とブリッジドライバ２１０ｃとの組み合わせが有るか否かを判定する。組み合わせはインストール時にパラメータ情報２５５に設定されるが、インストール時にリンク可能なブリッジドライバ２１０ｃが存在しなかった場合等に、自身のブリッジドライバ２１０ｃの組み合わせが無い場合が存在する。
【０１５２】
仮想ＬＡＮドライバ２１０ｄは、自身とブリッジドライバ２１０ｃとの組み合わせが有ると判定した場合には、対応付けられているブリッジドライバ２１０ｃに対して、リンク要求を行う（Ｓ２６）。仮想ＬＡＮドライバ２１０ｄは、リンクの許可を受け付け（Ｓ２７）た後、仮想ＬＡＮドライバ２１０ｄの起動時における以降の処理を行う（例えば、別の仮想ＬＡＮドライバ２１０ｄの起動等）。
【０１５３】
一方で、仮想ＬＡＮドライバ２１０ｄは、自身とブリッジドライバ２１０ｃとの組み合わせが無いと判定した場合には、パラメータ情報２５５に他の仮想ＬＡＮドライバ２１０ｄとブリッジドライバ２１０ｃとの組み合わせが既に設定されているか否かを判定する。
【０１５４】
仮想ＬＡＮドライバ２１０ｄは、他の仮想ＬＡＮドライバ２１０ｄとブリッジドライバ２１０ｃとの組み合わせが設定されていると判定した場合には、他の仮想ＬＡＮドライバ２１０ｄと未だ組み合わせられていないブリッジドライバ２１０ｃを特定する。仮想ＬＡＮドライバ２１０ｄは、特定した他の仮想ＬＡＮドライバ２１０ｄと未だ組み合わせられていないブリッジドライバ２１０ｃのいずれかに対して、リンク要求を行う（Ｓ２８）。
【０１５５】
仮想ＬＡＮドライバ２１０ｄは、リンクの許可を受け付ける（Ｓ２９）。仮想ＬＡＮドライバ２１０ｄは、カーネル２１０ｅ１にレジストリに格納されたパラメータ情報２５５へと、自身の識別子と、対応付けの許可を受けたブリッジドライバ２１０ｃの識別子とを対応付けて設定するように要求する（Ｓ３０）。仮想ＬＡＮドライバ２１０ｄは、レジストリに格納されたパラメータ情報２５５への設定完了の応答を受け付け（Ｓ３１）た後、仮想ＬＡＮドライバ２１０ｄの起動時における以降の処理を行う。
【０１５６】
仮想ＬＡＮドライバ２１０ｄは、他の仮想ＬＡＮドライバ２１０ｄとブリッジドライバ２１０ｃとの組み合わせが設定されていないと判定した場合には、任意のブリッジドライバ２１０ｃに対して、リンク要求を行う（Ｓ３２）。
【０１５７】
仮想ＬＡＮドライバ２１０ｄは、リンクの許可を受け付ける（Ｓ３３）。仮想ＬＡＮドライバ２１０ｄは、カーネル２１０ｅ１にレジストリに格納されたパラメータ情報２５５へと、仮想ＬＡＮドライバ２１０ｄ自身の識別子と、対応付けの許可を受けたブリッジドライバ２１０ｃの識別子とを対応付けて設定するように要求する（Ｓ３４）。仮想ＬＡＮドライバ２１０ｄは、レジストリに格納されたパラメータ情報２５５への設定完了の応答を受け付け（Ｓ３５）た後、仮想ＬＡＮドライバ２１０ｄの起動時における以降の処理を行う。
【０１５８】
これによれば、各種プログラムで行われる処理を実行する処理部２４０は、初回起動時に仮想ＬＡＮドライバ２１０ｄを、未だ組み合わせられていないブリッジドライバ２１０ｃと対応付け、パラメータ情報２５５に設定することができる。
【０１５９】
これにより、処理部２４０は、１つのブリッジドライバ２１０ｃに複数の仮想ＬＡＮドライバ２１０ｄが対応付けられることを防止できる。
【０１６０】
なお、図１１，１２においてカーネル２１０ｅ１、仮想ＬＡＮドライバ２１０ｄ、ブリッジドライバ２１０ｃが行うとした処理内容は一例であってこれに限らない。各種プログラム（例えば、仮想ＬＡＮドライバ２１０ｄ、ブリッジドライバ２１０ｃ）を実行する処理部２４０によって、実行されればよく、例えば、各種プログラムが担当していた処理の一部または全部を他のプログラムで実行してもよい。例えば、インストール時に仮想ＬＡＮドライバ２１０ｄが行うとした処理を処理部２４０によって実行されるインストーラープログラムが行うとしてもよい。例えば、インストーラープログラムによって実現する場合、最初の仮想ＬＡＮドライバ２１０ｄで実行する処理内容（Ｓ９〜Ｓ１２）と、２つ目以降の仮想ＬＡＮドライバ２１０ｄで実行する処理内容（Ｓ５〜Ｓ８）とを独立して記述したプログラムとすることができる。
【０１６１】
また、ユーザがブリッジドライバ２１０ｃのインストール指示やユーザによる仮想ＬＡＮドライバ２１０ｄのインストール指示を行うことに替えてインストーラープログラムが行うようにすることもできる。
【０１６２】
また、図１１のインストール時において各ブリッジドライバ２１０ｃを先にインストールするとして説明したがこれに限らない。例えば、ブリッジドライバ２１０ｃと、仮想ＬＡＮドライバ２１０ｄとを交互にインストールしてもよい。
【０１６３】
なお、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成および各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
【０１６４】
例えば、上記実施形態では、プラットフォーム２１０の２つのＲＣを用いてＰＣＩｅブリッジコントローラ２３０と接続する例を説明したが、プラットフォーム２１０の３つ以上のＲＣを用いてＰＣＩｅブリッジコントローラ２３０と接続することもできる。また、例えば、図５に示す構成においては、ＰＣＩｅブリッジコントローラ２３０は８つのスロット２３４−１〜２３４−８を有しているが、これに限定されるものではなく種々変形して実施することができる。即ち、ＰＣＩｅブリッジコントローラ２３０は７つ以下もしくは９つ以上のスロット２３４を備えてもよい。また、例えば、図３に示す構成においては、複数のプラットフォーム（例えば、演算部として機能するプラットフォーム）が２つ以上のＲＣを用いてＰＣＩｅブリッジコントローラ２３０のＥＰと接続するようにすることもできる。
【０１６５】
また、上述した実施形態においては、ＰＣＩｅを用いた通信システムについて示したが、これに限定されるものではなく、ＰＣＩｅ以外の通信規格での通信に適用してもよい。
【０１６６】
上述の実施形態では、各部のＩ／Ｏ（Input/Output）のインタフェースとしてＰＣＩｅを例に挙げて説明したが、インタフェースはＰＣＩｅに限定されない。例えば、各部のインタフェースは、データ転送バスによって、デバイス（例えば、周辺制御コントローラ）とプロセッサとの間でデータ転送を行える技術であればよい。データ転送バスは、１個の筐体等に設けられたローカルな環境（例えば、１つのシステムまたは１つの装置）で高速にデータを転送できる汎用のバスであってよい。インタフェースは、パラレルインターフェースおよびシリアルインターフェースのいずれであってもよい。
【０１６７】
Ｉ／Ｏインタフェースは、シリアル転送の場合、ポイント・ツー・ポイント接続ができ、データをパケットベースで転送可能な構成でよい。尚、Ｉ／Ｏインタフェースは、シリアル転送の場合、複数のレーンを有してよい。Ｉ／Ｏインタフェースのレイヤ構造は、パケットの生成および復号を行うトランザクション層と、エラー検出等を行うデータリンク層と、シリアルとパラレルとを変換する物理層とを有してよい。また、Ｉ／Ｏインタフェースは、階層の最上位であり１または複数のポートを有するルートコンプレックス、Ｉ／Ｏデバイスであるエンドポイント、ポートを増やすためのスイッチ、および、プロトコルを変換するブリッジ等を含んでよい。インタフェースは、送信するデータとクロック信号とをマルチプレクサによって多重化して送信してもよい。この場合、受信側は、デマルチプレクサでデータとクロック信号を分離してよい。
【符号の説明】
【０１６８】
１  情報処理装置
２ａ  第１通信部
２ｂ  第２通信部
３  記憶部
３ａ  第１通信プログラム
３ｂ  第２通信プログラム
３ｃ  第１処理プログラム
３ｄ  第２処理プログラム
３ｅ  対応関係情報
４  処理部
５  他装置
【図１】
2020198007.tif 000003
【図２】
2020198007.tif 000004
【図３】
2020198007.tif 000005
【図４】
2020198007.tif 000006
【図５】
2020198007.tif 000007
【図６】
2020198007.tif 000008
【図７】
2020198007.tif 000009
【図８】
2020198007.tif 000010
【図９】
2020198007.tif 000011
【図１０】
2020198007.tif 000012
【図１１】
2020198007.tif 000013
【図１２】
2020198007.tif 000014