(57)【特許請求の範囲】
【請求項１】
プログラムを実行するプロセッサと、
前記プロセッサが実行するプログラムが格納されるメモリと、
データ処理を前記プロセッサからの指示に基づいて実行する処理回路がプログラムされる第１のプログラマブル部と、
前記プロセッサと前記第１のプログラマブル部と他の情報処理装置の他のルータ部とに接続され、前記プロセッサと前記第１のプログラマブル部または前記他の情報処理装置の他の第１のプログラマブル部との間で転送される情報のルーティング処理を実行するルータ部と
を備えることを特徴とする情報処理装置。
【請求項２】
前記ルータ部がプログラムされる第２のプログラマブル部と、
前記第１のプログラマブル部と前記第２のプログラマブル部とを含むプログラマブル装置と
を備えることを特徴とする請求項１記載の情報処理装置。
【請求項３】
複数の前記ルータ部と、
複数の前記ルータ部にそれぞれ接続された複数の前記第１のプログラマブル部と
を備え、
複数の前記ルータ部のいずれかは、前記プロセッサに接続され、
複数の前記ルータ部の残りは、複数の前記ルータ部の前記いずれかを介して、前記プロセッサに接続されること
を特徴とする請求項１または請求項２記載の情報処理装置。
【請求項４】
前記プロセッサは、前記メモリに格納された複数のプログラムをそれぞれ実行することで、前記第１のプログラマブル部にプログラムされた複数の前記処理回路のそれぞれにデータ処理の指示を発行する複数のプロセッサコアを備え、
前記複数のプロセッサコアからの指示に基づいてデータ処理をそれぞれ実行する複数の前記処理回路は、前記第１のプログラマブル部または前記他の第１のプログラマブル部にプログラムされること
を特徴とする請求項１ないし請求項３のいずれか１項記載の情報処理装置。
【請求項５】
前記プロセッサは、前記メモリに格納された複数のプログラムをそれぞれ実行することで、前記第１のプログラマブル部にプログラムされた複数の前記処理回路のそれぞれにデータ処理の指示を発行する複数の仮想マシンを動作可能であり、
前記複数の仮想マシンからの指示に基づいてデータ処理をそれぞれ実行する複数の前記処理回路は、前記第１のプログラマブル部または前記他の第１のプログラマブル部にプログラムされること
を特徴とする請求項１ないし請求項３のいずれか１項記載の情報処理装置。
【請求項６】
前記ルータ部は、前記プロセッサと前記処理回路がプログラムされた前記第１のプログラマブル部または前記他の第１のプログラマブル部との間で転送される情報の転送経路を示す経路情報を保持する保持部を備えること
を特徴とする請求項１ないし請求項５のいずれか１項記載の情報処理装置。
【請求項７】
前記メモリは、前記処理回路が実行するデータ処理に使用される処理データと、データ処理の実行により前記処理回路が生成した処理結果とを格納する記憶領域を備え、
前記ルータ部は、前記プロセッサが前記処理回路に発行するデータ処理の指示と、前記処理回路が前記メモリに発行する処理データの読み出し要求と、前記読み出し要求に基づいて前記メモリから前記処理回路に読み出される処理データと、前記処理回路が前記メモリに発行する処理結果の書き込み要求との転送経路のルーティング処理を実行すること
を特徴とする請求項１ないし請求項６のいずれか１項記載の情報処理装置。
【請求項８】
複数の情報処理装置と、
前記複数の情報処理装置を管理する管理装置と
を備える情報処理システムにおいて、
前記複数の情報処理装置の各々は、
プログラムを実行するプロセッサと、
前記プロセッサが実行するプログラムが格納されるメモリと、
データ処理を前記プロセッサからの指示に基づいて実行する処理回路がプログラムされる第１のプログラマブル部と、
前記プロセッサと前記第１のプログラマブル部と他の情報処理装置の他のルータ部とに接続され、前記プロセッサと前記第１のプログラマブル部または前記他の情報処理装置の他の第１のプログラマブル部との間で転送される情報のルーティング処理を実行するルータ部と
を備えることを特徴とする情報処理システム。
【請求項９】
前記管理装置は、前記複数の情報処理装置の各々の前記プロセッサの使用状況を示す情報と、前記複数の情報処理装置の各々の前記第１のプログラマブル部の使用状況を示す情報とを保持する状況保持部を備えること
を特徴とする請求項８記載の情報処理システム。
【請求項１０】
前記プログラムと、前記プログラムに対応する前記処理回路の回路情報とをそれぞれ含む複数のアプリケーションを保持するデータベースを備え、
前記管理装置は、前記複数のアプリケーションのいずれかを情報処理システムに配備する指示に基づいて、指示されたアプリケーションに含まれるプログラムを前記複数の情報処理装置のいずれかの前記メモリに格納し、指示されたアプリケーションに含まれる処理回路の回路情報を前記複数の情報処理装置のいずれかの第１のプログラマブル部にプログラムすること
を特徴とする請求項８または請求項９記載の情報処理システム。
【請求項１１】
複数の情報処理装置と、前記複数の情報処理装置を管理する管理装置とを備え、前記複数の情報処理装置の各々が、プログラムを実行するプロセッサと、前記プロセッサが実行するプログラムが格納されるメモリと、回路がプログラムされる第１のプログラマブル部と、前記プロセッサと前記第１のプログラマブル部と他の情報処理装置の他のルータ部とに接続され、前記プロセッサと前記第１のプログラマブル部または前記他の情報処理装置の他の第１のプログラマブル部との間で転送される情報のルーティング処理を実行するルータ部とを備える情報処理システムの制御方法において、
前記管理装置が、
前記複数の情報処理装置の中から、新たなプログラムを実行可能なプロセッサと、データ処理を、前記新たなプログラムを実行するプロセッサからの指示に基づいて実行する新たな処理回路をプログラム可能な第１のプログラマブル部とを選択し、
選択したプロセッサによりアクセスされるメモリに前記新たなプログラムを格納する格納処理を制御し、
選択した第１のプログラマブル部に、前記新たな処理回路をプログラムするプログラム処理を制御し、
前記新たなプログラムを実行するプロセッサと前記新たな処理回路をプログラムした第１のプログラマブル部との間で転送される情報の転送経路を示す経路情報を前記ルータ部に設けられる保持部に格納する格納処理を制御すること
を特徴とする情報処理システムの制御方法。
【請求項１２】
前記管理装置が、
前記複数の情報処理装置の各々の前記プロセッサの使用状況と、前記複数の情報処理装置の各々の前記第１のプログラマブル部の使用状況を示す情報とを状況保持部に格納し、
前記状況保持部に格納した情報に基づいて、前記新たなプログラムを実行可能なプロセッサと、前記新たな処理回路をプログラム可能な第１のプログラマブル部とを選択すること
を特徴とする請求項１１記載の情報処理システムの制御方法。
【請求項１３】
複数の情報処理装置と、前記複数の情報処理装置を管理する管理装置とを備え、前記複数の情報処理装置の各々が、プログラムを実行するプロセッサと、前記プロセッサが実行するプログラムが格納されるメモリと、回路がプログラムされる第１のプログラマブル部と、前記プロセッサと前記第１のプログラマブル部と他の情報処理装置の他のルータ部とに接続され、前記プロセッサと前記第１のプログラマブル部または前記他の情報処理装置の他の第１のプログラマブル部との間で転送される情報のルーティング処理を実行するルータ部とを備える情報処理システムの制御プログラムにおいて、
前記複数の情報処理装置の中から、新たなプログラムを実行可能なプロセッサと、データ処理を、前記新たなプログラムを実行するプロセッサからの指示に基づいて実行する新たな処理回路をプログラム可能な第１のプログラマブル部とを選択し、
選択したプロセッサによりアクセスされるメモリに前記新たなプログラムを格納する格納処理を制御し、
選択した第１のプログラマブル部に、前記新たな処理回路をプログラムするプログラム処理を制御し、
前記新たなプログラムを実行するプロセッサと前記新たな処理回路をプログラムした第１のプログラマブル部との間で転送される情報の転送経路を示す経路情報を前記ルータ部に設けられる保持部に格納する格納処理を制御する
処理を前記管理装置に実行させることを特徴とする情報処理システムの制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理システム、情報処理システムの制御方法および情報処理システムの制御プログラムに関する。
【背景技術】
【０００２】
サーバ上で動作する複数の仮想マシンをＦＰＧＡ（Field-Programmable Gate Array）ボード上に搭載されたＦＰＧＡにそれぞれ接続し、データ処理を高速に実行するサービスを提供する手法が提案されている（例えば、特許文献１参照）。
【０００３】
ソフトウェア機能を実行するサーバのいずれかとハードウェア機能を実行するＦＰＧＡのいずれかとを、接続部を介して互いに接続し、サーバとＦＰＧＡとによりデータ処理を実行する手法が提案されている（例えば、特許文献２参照）。
【０００４】
サーバのいずれかと、アクセラレータとして機能するＧＰＵ（Graphics Processing Unit）またはＦＰＧＡとを、管理サーバにより制御されるスイッチを介して切り替え可能に接続する手法が提案されている（例えば、特許文献３参照）。
【０００５】
メモリ等とともにリソースボードに搭載されるＦＰＧＡにエミュレーション対象の論理をプログラムし、電子機器の動作をエミュレートするエミュレータが提案されている（例えば、特許文献４参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特表２０１５−５０７２３４号公報
【特許文献２】特開２０１３−４５２１９号公報
【特許文献３】特開２０１３−１９６２０６号公報
【特許文献４】特開２００５−１１３４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、サーバとＦＰＧＡとを共通の接続部または共通のスイッチを介して互いに接続する場合、サーバとＦＰＧＡとを接続する接続経路は、サーバとＦＰＧＡとを直接接続する場合に比べて長くなる。これにより、サーバとＦＰＧＡとの間での情報の転送速度が低下すると、サーバが実行するソフトウェアの処理性能は低下してしまう。
【０００８】
一方、サーバとＦＰＧＡとを直接接続する場合、サーバに搭載可能な高速化の対象となるソフトウェアの数は、サーバに接続するＦＰＧＡの回路規模に応じて決まる。例えば、ＦＰＧＡが、サーバ上で動作するソフトウェアの制御により動作する１つの処理回路のみを搭載可能な場合、サーバは、１つの処理回路に対応する１つのソフトウェアしか動作させられず、リソースに無駄が生じる。
【０００９】
１つの側面では、本件開示の情報処理装置、情報処理システム、情報処理システムの制御方法および情報処理システムの制御プログラムは、プロセッサが実行するプログラムの処理性能を低下させることなく、プログラムと処理回路とを複数の情報処理装置に配備することを目的とする。
【課題を解決するための手段】
【００１０】
一つの観点によれば、情報処理装置は、プログラムを実行するプロセッサと、プロセッサが実行するプログラムが格納されるメモリと、データ処理をプロセッサからの指示に基づいて実行する処理回路がプログラムされる第１のプログラマブル部と、プロセッサと第１のプログラマブル部と他の情報処理装置の他のルータ部とに接続され、プロセッサと第１のプログラマブル部または他の情報処理装置の他の第１のプログラマブル部との間で転送される情報のルーティング処理を実行するルータ部とを有する。
【００１１】
別の観点によれば、情報処理システムは、複数の情報処理装置と、複数の情報処理装置を管理する管理装置とを備え、複数の情報処理装置の各々は、プログラムを実行するプロセッサと、プロセッサが実行するプログラムが格納されるメモリと、データ処理をプロセッサからの指示に基づいて実行する処理回路がプログラムされる第１のプログラマブル部と、プロセッサと第１のプログラマブル部と他の情報処理装置の他のルータ部とに接続され、プロセッサと第１のプログラマブル部または他の情報処理装置の他の第１のプログラマブル部との間で転送される情報のルーティング処理を実行するルータ部とを有する。
【００１２】
さらなる別の観点によれば、複数の情報処理装置と、複数の情報処理装置を管理する管理装置とを備え、複数の情報処理装置の各々が、プログラムを実行するプロセッサと、プロセッサが実行するプログラムが格納されるメモリと、回路がプログラムされる第１のプログラマブル部と、プロセッサと第１のプログラマブル部と他の情報処理装置の他のルータ部とに接続され、プロセッサと第１のプログラマブル部または他の情報処理装置の他の第１のプログラマブル部との間で転送される情報のルーティング処理を実行するルータ部とを備える情報処理システムの制御方法は、管理装置が、複数の情報処理装置の中から、新たなプログラムを実行可能なプロセッサと、データ処理を、新たなプログラムを実行するプロセッサからの指示に基づいて実行する新たな処理回路をプログラム可能な第１のプログラマブル部とを選択し、選択したプロセッサによりアクセスされるメモリに新たなプログラムを格納する格納処理を制御し、選択した第１のプログラマブル部に、新たな処理回路をプログラムするプログラム処理を制御し、新たなプログラムを実行するプロセッサと新たな処理回路をプログラムした第１のプログラマブル部との間で転送される情報の転送経路を示す経路情報をルータ部に設けられる保持部に格納する格納処理を制御する。
【００１３】
別の観点によれば、複数の情報処理装置と、複数の情報処理装置を管理する管理装置とを備え、複数の情報処理装置の各々が、プログラムを実行するプロセッサと、プロセッサが実行するプログラムが格納されるメモリと、回路がプログラムされる第１のプログラマブル部と、プロセッサと第１のプログラマブル部と他の情報処理装置の他のルータ部とに接続され、プロセッサと第１のプログラマブル部または他の情報処理装置の他の第１のプログラマブル部との間で転送される情報のルーティング処理を実行するルータ部とを備える情報処理システムの制御プログラムは、複数の情報処理装置の中から、新たなプログラムを実行可能なプロセッサと、データ処理を、新たなプログラムを実行するプロセッサからの指示に基づいて実行する新たな処理回路をプログラム可能な第１のプログラマブル部とを選択し、選択したプロセッサによりアクセスされるメモリに新たなプログラムを格納する格納処理を制御し、選択した第１のプログラマブル部に、新たな処理回路をプログラムするプログラム処理を制御し、新たなプログラムを実行するプロセッサと新たな処理回路をプログラムした第１のプログラマブル部との間で転送される情報の転送経路を示す経路情報をルータ部に設けられる保持部に格納する格納処理を制御する処理を管理装置に実行させる。
【発明の効果】
【００１４】
本件開示の情報処理装置、情報処理システム、情報処理システムの制御方法および情報処理システムの制御プログラムは、プロセッサが実行するプログラムの処理性能を低下させることなく、プログラムと処理回路とを複数の情報処理装置に配備することができる。
【図面の簡単な説明】
【００１５】
【図１】情情報処理装置、情報処理システム、情報処理システムの制御方法および情報処理システムの制御プログラムの一実施形態を示す図である。
【図２】図1に示す管理サーバの動作の一例を示す図である。
【図３】情報処理装置、情報処理システム、情報処理システムの制御方法および情報処理システムの制御プログラムの別の実施形態を示す図である。
【図４】図３に示すサーバの一例を示す図である。
【図５】図３に示すルータ部の一例を示す図である。
【図６】図５に示すルータ部に転送されるパケットのフォーマットの一例を示す図である。
【図７】図５に示すルータ部によるサーバ間の接続の一例を示す図である。
【図８】図３に示すサーバに配備されたアプリケーションの一例を示す図である。
【図９】図３に示す管理サーバ内の管理テーブルの一例を示す図である。
【図１０】図５に示すルーティングテーブルの一例を示す図である。
【図１１】図５に示すＩＤマッピングテーブルの一例を示す図である。
【図１２】図３に示す情報処理システムにおいてアプリケーションが配備された状態の一例を示す図である。
【図１３】図３に示す情報処理システムにおいてアプリケーションが配備された状態の別の例を示す図である。
【図１４】図３に示すサーバにより実行されるアプリケーションの動作の一例を示す図である。
【図１５】図３に示す管理サーバの動作の一例を示す図である。
【図１６】図１５に示すステップＳ１００の処理の一例を示す図である。
【図１７】情報処理装置、情報処理システム、情報処理システムの制御方法および情報処理システムの制御プログラムの別の実施形態を示す図である。
【図１８】情報処理装置、情報処理システム、情報処理システムの制御方法および情報処理システムの制御プログラムの別の実施形態を示す図である。
【図１９】図１８に示すルータ部によるサーバ間の接続の一例を示す図である。
【図２０】情報処理装置、情報処理システム、情報処理システムの制御方法および情報処理システムの制御プログラムの別の実施形態を示す図である。
【図２１】情報処理装置、情報処理システム、情報処理システムの制御方法および情報処理システムの制御プログラムの別の実施形態を示す図である。
【図２２】情報処理装置、情報処理システム、情報処理システムの制御方法および情報処理システムの制御プログラムの別の実施形態におけるサーバに配備されたアプリケーションの一例を示す図である。
【図２３】図２２に示すアプリケーションが配備された状態の一例を示す図である。
【図２４】図２２に示す情報処理システムの管理サーバが実行するアプリケーションの配備処理の一例を示す図である。
【発明を実施するための形態】
【００１６】
以下、図面を用いて実施形態を説明する。
【００１７】
図１は、情報処理装置、情報処理システム、情報処理システムの制御方法および情報処理システムの制御プログラムの一実施形態を示す。図１に示す情報処理システムＳＹＳ１は、複数のサーバＳＶ（ＳＶ１、ＳＶ２、ＳＶ３）と、複数のサーバＳＶを管理する管理サーバＭＳＶとを有する。サーバＳＶは、情報処理装置の一例であり、管理サーバＭＳＶは、管理装置の一例である。
【００１８】
管理サーバＭＳＶは、アプリケーションＡＰＰ（ＡＰＰ１、ＡＰＰ２）をサーバＳＶに配備する機能を有する。各アプリケーションＡＰＰは、ソフトウェアＳＷ（ＳＷ１、ＳＷ２）とＩＰ（Intellectual Property）コアＩＰ（ＩＰ１、ＩＰ２）の回路情報とを含む。ソフトウェアＳＷは、プロセッサＣＰＵ（Central Processing Unit）が実行するプログラムの一例である。ＩＰコアＩＰは、データ処理をプロセッサＣＰＵからの指示に基づいて実行する処理回路の一例であり、データ処理等の情報処理の論理機能を実現する回路情報を含む。例えば、ＩＰコアＩＰは、ハードウェアアクセラレータとして機能する。なお、アプリケーションＡＰＰは、管理サーバＭＳＶの外部に保持され、管理サーバＭＳＶの外部で管理されてもよい。
【００１９】
各サーバＳＶは、プロセッサＣＰＵ（ＣＰＵ１、ＣＰＵ２、ＣＰＵ３）と、メモリＭＥＭ（ＭＥＭ１、ＭＥＭ２、ＭＥＭ３）と、ルータ部ＲＴ（ＲＴ１、ＲＴ２、ＲＴ３）と、プログラマブル部ＦＰＧＡ（ＦＰＧＡ１、ＦＰＧＡ２、ＦＰＧＡ３）とを有する。プログラマブル部ＦＰＧＡは、第１のプログラマブル部の一例である。例えば、各サーバＳＶは、ルータ部ＲＴ間を接続する配線の配線長ができる限り短くなる位置に配置される。ルータ部ＲＴ間は、メッシュネットワークにより接続されてもよく、トーラスネットワークにより接続されてもよい。以下の説明では、サーバＳＶは、ノードとも称される。
【００２０】
各プロセッサＣＰＵは、自ノードのメモリＭＥＭに格納されたソフトウェアＳＷ（ＳＷ１、ＳＷ２）を実行する。各プログラマブル部ＦＰＧＡには、ＩＰコアＩＰ（ＩＰ１、ＩＰ２）がプログラムされる。各ＩＰコアＩＰは、自ノードまたは他ノードのプロセッサＣＰＵが実行するソフトウェアＳＷからの指示に基づいてデータ処理を実行する。図１では、ソフトウェアＳＷ１、ＳＷ２は、サーバＳＶ１のメモリＭＥＭ１に格納され、サーバＳＶ１のプロセッサＣＰＵ１により実行される。ソフトウェアＳＷ１、ＳＷ２は、プロセッサＣＰＵ１に搭載される複数のＣＰＵコアのそれぞれにより実行されてもよく、プロセッサＣＰＵ１が起動する複数の仮想マシンのそれぞれにより実行されてもよい。ＩＰコアＩＰ１は、サーバＳＶ１のＦＰＧＡ１にプログラムされ、ＩＰコアＩＰ２は、サーバＳＶ２のＦＰＧＡ２にプログラムされる。
【００２１】
各ルータ部ＲＴは、ソフトウェアＳＷを実行するプロセッサＣＰＵとＩＰコアＩＰがプログラムされたプログラマブル部ＦＰＧＡとの間で転送される情報の転送経路を示す経路情報を保持する保持部ＨＬＤ（ＨＬＤ１、ＨＬＤ２、ＨＬＤ３）を有する。各ルータ部ＲＴは、自ノードのプロセッサＣＰＵと、自ノードのプログラマブル部ＦＰＧＡと、他ノードのルータ部ＲＴとに接続される。そして、各ルータ部ＲＴは、自ノードのプロセッサＣＰＵと、自ノードのプログラマブル部ＦＰＧＡと、他ノードのプログラマブル部ＦＰＧＡとの間で転送される情報のルーティング処理を実行する。他ノードのルータ部ＲＴは、他のルータ部の一例であり、他ノードのプログラム部ＦＰＧＡは、他の第１のプログラマブル部の一例である。
【００２２】
図１に示す情報処理システムＳＹＳ１では、各サーバＳＶにルータ部ＲＴを設け、ルータ部ＲＴ間を相互に接続することで、各プロセッサＣＰＵと他ノードのプログラム部ＦＰＧＡとの間で情報を転送することが可能である。これにより、ＩＰコアＩＰを自ノードのプログラム部ＦＰＧＡだけでなく、他ノードのプログラム部ＦＰＧＡに搭載することができる。
【００２３】
例えば、プログラマブル部ＦＰＧＡ１において、ＩＰコアＩＰ２を搭載するプログラマブル領域が足りない場合にも、図１に示すように、ソフトウェアＳＷ２が搭載されるノードとは別のノードのプログラム部ＦＰＧＡ２にＩＰコアＩＰ２を搭載することができる。すなわち、１つのサーバＳＶにソフトウェアＳＷとＩＰコアＩＰを配備するという制約を解消することができる。この結果、１つのサーバＳＶにソフトウェアＳＷとＩＰコアＩＰを配備する場合に比べて、ソフトウェアＳＷとＩＰコアＩＰとを複数のサーバＳＶに分散させて効率的に配備することが可能になり、情報処理システムＳＹＳ１の性能を向上することができる。
【００２４】
さらに、図１に示す情報処理システムＳＹＳ１では、各サーバＳＶにルータ部ＲＴを設け、ルータ部ＲＴ間を相互に接続する。これにより、ソフトウェアＳＷとＩＰコアＩＰとを複数のサーバＳＶに分散して配備する場合にも、サーバＳＶの外部に配置されるスイッチ装置等を介することなく、プロセッサＣＰＵとＩＰコアＩＰとの間での情報を転送することができる。したがって、サーバＳＶの外部に配置されるスイッチ装置等を介して、プロセッサＣＰＵとＩＰコアＩＰとの間での情報を転送する場合に比べて、情報の転送速度を向上することができる。この結果、プロセッサＣＰＵが実行するソフトウェアＳＷの処理性能を低下させることなく、ソフトウェアＳＷとＩＰコアＩＰとを複数のサーバＳＶに配備することができる。
【００２５】
なお、アプリケーションＡＰＰ（ＳＷ、ＩＰ）を１つのサーバＳＶ内のメモリＭＥＭとプログラム部ＦＰＧＡとに配備することで、ソフトウェアＳＷとＩＰコアＩＰとの間での情報の転送を１つのサーバＳＶ内で実行することができる。この場合、２つのサーバＳＶに跨って配備されるソフトウェアＳＷとＩＰコアＩＰとの間で情報を転送する場合に比べて、情報の転送時間を短くすることができ、情報の転送速度を向上することができる。換言すれば、情報の転送に使用されるルータ部ＲＴの数が少ないほど、情報の転送速度を向上することができる。このため、ソフトウェアＳＷとＩＰコアＩＰとの間での情報の転送速度の仕様に合わせてアプリケーションＡＰＰを配備するサーバＳＶを決めることで、プロセッサＣＰＵが実行するソフトウェアＳＷの処理性能の仕様を満足させることができる。
【００２６】
これに対して、例えば、複数のプロセッサＣＰＵと複数のプログラム部ＦＰＧＡとを、共通のスイッチ装置を介して相互に接続する場合、プロセッサＣＰＵとプログラム部ＦＰＧＡとの間での情報の転送は、スイッチ装置を介して実行される。スイッチ装置は、複数のプロセッサＣＰＵと複数のプログラム部ＦＰＧＡとに共通に接続される。このため、プロセッサＣＰＵとスイッチ装置とを接続する信号線の配線長は、図１に示す各サーバＳＶ内におけるプロセッサＣＰＵとルータ部ＲＴとを接続する信号線の配線長より長くなる。プログラム部ＦＰＧＡとスイッチ装置とを接続する信号線の配線長は、図１に示す各サーバＳＶにおけるプログラム部ＦＰＧＡとルータ部ＲＴとを接続する信号線の配線長より長くなる。また、スイッチ装置を介して互いに接続されるプロセッサＣＰＵとプログラム部ＦＰＧＡとの間で転送される情報の転送性能は、使用されるプロセッサＣＰＵとプログラム部ＦＰＧＡとに拘わらず同等である。したがって、スイッチ装置を介して互いに接続されるプロセッサＣＰＵとプログラム部ＦＰＧＡとの間で転送される情報の転送性能は、図１に示す１つのサーバＳＶにソフトウェアＳＷとＩＰコアＩＰを配備する場合に比べて低くなる。
【００２７】
図２は、図１に示す管理サーバＭＳＶの動作の一例を示す。図２に示す動作は、図１に示す管理サーバＭＳＶが実行する制御プログラムにより実現される。すなわち、図２は、情報処理システムＳＹＳ１の制御方法および情報処理システムＳＹＳ２の制御プログラムの一例を示す。
【００２８】
まず、ステップＳ１において、管理サーバＭＳＶは、複数のサーバＳＶの中から、新たなソフトウェアＳＷを実行可能なプロセッサＣＰＵを選択する。
【００２９】
次に、ステップＳ２において、管理サーバＭＳＶは、複数のサーバＳＶの中から、新たなＩＰコアＩＰをプログラム可能なプログラマブル部ＦＰＧＡを選択する。ここで、新たなＩＰコアＩＰをプログラムするプログラマブル部ＦＰＧＡは、対応するソフトウェアＳＷを実行するプロセッサＣＰＵに近いことが、転送性能を確保する点で好ましい。すなわち、ソフトウェアＳＷを実行するプロセッサＣＰＵと新たなＩＰコアＩＰをプログラムするプログラマブル部ＦＰＧＡとの間に介在するルータ部ＲＴの数は、少ない方が好ましい。但し、プロセッサＣＰＵとプログラマブル部ＦＰＧＡとの間で転送される情報の転送性能が、プロセッサＣＰＵが実行するソフトウェアＳＷの仕様に対して余裕がある場合、新たなＩＰコアＩＰをプログラムするプログラマブル部ＦＰＧＡの位置は制限されない。
【００３０】
次に、ステップＳ３において、管理サーバＭＳＶは、ステップＳ１で選択したプロセッサＣＰＵによりアクセスされるメモリＭＥＭ（すなわち、自ノードのメモリＭＥＭ）に新たなソフトウェアＳＷを格納する格納処理を実行する。次に、ステップＳ４において、管理サーバＭＳＶは、ステップＳ２で選択したプログラマブル部ＦＰＧＡに、新たなＩＰコアＩＰをプログラムするプログラム処理を実行する。
【００３１】
次に、ステップＳ５において、管理サーバＭＳＶは、新たなソフトウェアＳＷを実行するプロセッサＣＰＵと新たなＩＰコアＩＰを搭載したプログラマブル部ＦＰＧＡとの間で転送される情報の転送経路を示す経路情報を保持部ＨＬＤに格納する格納処理を実行する。図１に示す例では、保持部ＨＬＤ１、ＨＬＤ２には、以下に示す経路情報がそれぞれ格納される。
【００３２】
＜保持部ＨＬＤ１に格納される経路情報＞
（ａ）ソフトウェアＳＷ１を実行するプロセッサＣＰＵ１から受信したＩＰコアＩＰ１用の情報は、プログラム部ＦＰＧＡ１に転送する。
（ｂ）ソフトウェアＳＷ２を実行するプロセッサＣＰＵ１から受信したＩＰコアＩＰ２用の情報は、ルータ部ＲＴ２に転送する。
（ｃ）プログラム部ＦＰＧＡ１のＩＰコアＩＰ１から受信したソフトウェアＳＷ１用の情報は、プロセッサＣＰＵ１に転送する。
（ｄ）ルータ部ＲＴ２から受信したソフトウェアＳＷ２用の情報は、プロセッサＣＰＵ１に転送する。
【００３３】
＜保持部ＨＬＤ２に格納される経路情報＞
（ａ）ルータ部ＲＴ１から受信したＩＰコアＩＰ２用の情報は、プログラム部ＦＰＧＡ２に転送する。
（ｂ）プログラム部ＦＰＧＡ２のＩＰコアＩＰ２から受信したソフトウェアＳＷ２用の情報は、ルータ部ＲＴ１に転送する。
【００３４】
図２に示す処理を実行することで、図１で説明したように、ソフトウェアＳＷとＩＰコアＩＰとを効率的に配備することが可能になり、情報処理システムＳＹＳ１の性能を向上することができる。
【００３５】
なお、アプリケーションＡＰＰ（ソフトウェアＳＷおよびＩＰコアＩＰ）が他の管理装置により管理される場合、管理サーバＭＳＶは、ソフトウェアＳＷの格納処理、ＩＰコアＩＰのプログラム処理および経路情報の格納処理を他の管理装置に実行させる。この場合、管理サーバＭＳＶは、ソフトウェアＳＷの格納処理、ＩＰコアＩＰのプログラム処理および経路情報の格納処理を制御する。
【００３６】
以上、図１および図２に示す実施形態では、各サーバＳＶにルータ部ＲＴを設け、ルータ部ＲＴ間を相互に接続する。これにより、プロセッサＣＰＵが実行するソフトウェアＳＷの処理性能を低下させることなく、ソフトウェアＳＷとＩＰコアＩＰとを複数のサーバＳＶに配備することができる。また、各サーバＳＶにルータ部ＲＴを設け、ルータ部ＲＴ間を相互に接続することで、ソフトウェアＳＷとＩＰコアＩＰとを複数のサーバＳＶに分散させて効率的に配備することが可能になり、情報処理システムＳＹＳ１の性能を向上することができる。
【００３７】
図３は、情報処理装置、情報処理システム、情報処理システムの制御方法および情報処理システムの制御プログラムの別の実施形態を示す。図１に示す実施形態で説明した要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明は省略する。
【００３８】
図３に示す情報処理システムＳＹＳ２は、複数のサーバＳＶと、複数のサーバＳＶを管理する管理サーバＭＳＶと、管理サーバＭＳＶにより管理されるＩＰプールＩＰＰＬとを有する。各サーバＳＶは、ＬＡＮ（Local Area Network）等のネットワークＮＷ１を介して管理サーバＭＳＶに接続される。管理サーバＭＳＶは、インターネットまたはイントラネット等のネットワークＮＷ２を介して複数の端末装置ＴＭに接続される。例えば、情報処理システムＳＹＳ２は、クラウドサービスを提供するデータセンタとして機能する。なお、管理サーバＭＳＶとサーバＳＶとは、同じ場所に配置されてもよく、互いに離れた場所に配置されてもよい。
【００３９】
ＩＰプールＩＰＰＬは、ＨＤＤ（Hard Disk Drive）またはＳＳＤ（Solid State Drive）等の複数の記憶装置を用いて構築され、複数のアプリケーションＡＰＰ（ＡＰＰ１、ＡＰＰ２、...）を保持する。各アプリケーションＡＰＰは、ソフトウェアＳＷ（ＳＷ１、ＳＷ２、...）とＩＰコアＩＰ（ＩＰ１、ＩＰ２、...）の回路情報とを含む。ＩＰプールＩＰＰＬは、ソフトウェアＳＷと、ソフトウェアＳＷに対応するＩＰコアＩＰの回路情報とをそれぞれ含む複数のアプリケーションＡＰＰを保持するデータベースの一例である。
【００４０】
ソフトウェアＳＷ（プログラム）は、複数のサーバＳＶのいずれかのメモリＭＥＭに格納され、サーバＳＶのプロセッサＣＰＵにより実行される。ＩＰコアＩＰは、データ処理等の情報処理の論理機能を実現する回路情報を含み、複数のサーバＳＶのいずれかのＦＰＧＡ内のユーザロジック部ＵＬＧに再構成可能に搭載される。ＦＰＧＡに搭載されたＩＰコアＩＰは、ハードウェアアクセラレータとして機能し、サーバＳＶのプロセッサＣＰＵが実行するソフトウェアＳＷによる指示に基づいて、データ処理等の所定の情報処理を実行する。ユーザロジック部ＵＬＧは、ＩＰコアＩＰがプログラムされる第１のプログラマブル部の一例である。以下の説明では、プロセッサＣＰＵは、単にＣＰＵと称される。
【００４１】
なお、メモリＭＥＭは、ソフトウェアＳＷが格納される記憶領域に加えて、ＩＰコアＩＰが実行するデータ処理に使用される処理データが格納される記憶領域と、データ処理の実行によりＩＰコアＩＰが生成した処理結果が格納される記憶領域とを有する。また、ＩＰプールＩＰＰＬは、管理サーバＭＳＶに搭載されるＨＤＤ等の記憶装置内に構築されてもよく、ネットワークＮＷ１またはネットワークＮＷ２を介して管理サーバＭＳＶに接続されてもよい。
【００４２】
管理サーバＭＳＶは、ＣＰＵ、メモリＭＥＭおよび管理テーブルＭＴＢＬを有する。ＣＰＵは、メモリＭＥＭに保持された制御プログラムを実行することで、端末装置ＴＭからの要求に基づいて、ＩＰプールＩＰＰＬに格納されたアプリケーションＡＰＰ（ＡＰＰ１、ＡＰＰ２、...）をサーバＳＶのいずれかに配備する。すなわち、管理サーバＭＳＶは、端末装置ＴＭからの要求に基づいて、ソフトウェアＳＷをサーバＳＶのメモリＭＥＭに格納し、ＩＰコアＩＰに含まれる回路情報を、ＦＰＧＡ内のユーザロジック部ＵＬＧにプログラムする。また、管理サーバＭＳＶは、アプリケーションＡＰＰで処理するデータ等の情報を端末装置ＴＭから受信し、アプリケーションＡＰＰで処理された処理結果を端末装置ＴＭに送信する。さらに、管理サーバＭＳＶは、ＩＰプールＩＰＰＬにアプリケーションＡＰＰを登録する機能と、ＩＰプールＩＰＰＬに格納されたアプリケーションＡＰＰを管理する機能とを有する。
【００４３】
管理テーブルＭＴＢＬは、サーバＳＶ毎に、ＣＰＵの使用状況を示す情報と、ＦＰＧＡのユーザロジック部ＵＬＧの使用状況を示す情報とを保持する。管理テーブルＭＴＢＬが保持する情報は、サーバＳＶにアプリケーションＡＰＰが配備される毎、またはサーバＳＶからアプリケーションＡＰＰが削除される毎に更新される。なお、管理テーブルＭＴＢＬは、管理サーバＭＳＶ内のメモリＭＥＭに保持されてもよい。管理テーブルＭＴＢＬの例は、図９に示される。
【００４４】
各サーバＳＶは、ＮＩＣ（Network Interface Card）、ＣＰＵ、メモリＭＥＭおよびＦＰＧＡを有する。例えば、ＣＰＵ、メモリＭＥＭおよびＦＰＧＡは、それぞれ半導体チップの形態を有し、マザーボート等に実装される。メモリＭＥＭは、メモリモジュールの形態を有してもよい。ＮＩＣは、ネットワークＮＷ１に接続され、ネットワークＮＷ１を介してサーバＳＶを管理サーバＭＳＶに接続する。各サーバＳＶは、図示しないＨＤＤを有しており、管理サーバＭＳＶから転送されるソフトウェアＳＷは、ＨＤＤにインストールされた後、メモリＭＥＭ上に展開され、ＣＰＵにより実行可能になる。
【００４５】
ＣＰＵは、サーバＳＶ全体の動作を制御するとともに、メモリＭＥＭに格納されたソフトウェアＳＷを実行し、ＦＰＧＡのユーザロジック部ＵＬＧに搭載されたＩＰコアの動作を制御する。
【００４６】
ＦＰＧＡは、サーバＳＶにアプリケーションＡＰＰが配備される前に予めプログラムされるルータ部ＲＴと、アプリケーションＡＰＰに含まれるＩＰコア（回路情報）が搭載されるユーザロジック部ＵＬＧとを有する。ユーザロジック部ＵＬＧは、第１のプログラマブル部の一例であり、ＦＰＧＡにおいてルータ部ＲＴが再構成可能に搭載された領域は、第２のプログラマブル部の一例である。ＦＰＧＡは、ルータ部ＲＴとユーザロジック部ＵＬＧとを含むプログラマブル装置の一例である。例えば、サーバＳＶ（ノード）は、ルータ部ＲＴを介して、二次元トーラスネットワークにより互いに接続される。サーバＳＶ間の接続の例は、図７に示される。
【００４７】
ルータ部ＲＴは、各サーバＳＶのＣＰＵを、複数のサーバＳＶのユーザロジック部ＵＬＧのいずれかに接続する機能を有する。ルータ部ＲＴは、サーバＳＶのＣＰＵから受信するパケットに基づいて、宛先のユーザロジック部ＵＬＧにパケットを転送するルーティング処理を実行する。また、ルータ部ＲＴは、ユーザロジック部ＵＬＧから受信するパケットに基づいて、宛先のサーバＳＶのＣＰＵにパケットを転送するルーティング処理を実行する。そして、ルーティング処理により、各サーバＳＶのＣＰＵと、複数のサーバＳＶのユーザロジック部ＵＬＧのいずれかとが、情報を相互に転送可能に接続される。
【００４８】
ルータ部ＲＴをＦＰＧＡに再構成可能に搭載することで、ルータ部ＲＴとユーザロジック部ＵＬＧとの間の情報の転送をＦＰＧＡチップ内で実行することができる。これにより、ルータ部ＲＴとユーザロジック部ＵＬＧとを互いに異なる半導体チップに搭載する場合に比べて、ルータ部ＲＴとユーザロジック部ＵＬＧとの間の情報の転送を高速に実行することができる。
【００４９】
端末装置ＴＭは、ネットワークＮＷ２に接続されたコンピュータ装置であり、アプリケーションＡＰＰを使用してデータ処理等を実行する場合、アプリケーションＡＰＰのサーバＳＶへの配備を、ネットワークＮＷ２を介して管理サーバＭＳＶに指示する。例えば、端末装置ＴＭを使用するユーザは、端末装置ＴＭのディスプレイに表示されたアプリケーションＡＰＰの一覧から使用したいアプリケーションＡＰＰを選択した後、ディスプレイに表示された実行ボタン等をクリックする。端末装置ＴＭは、実行ボタン等がクリックされたことに基づいて、アプリケーションＡＰＰのサーバＳＶへの配備を、ネットワークＮＷ２を介して管理サーバＭＳＶに指示する。
【００５０】
図４は、図３に示すサーバＳＶの一例を示す。各サーバＳＶにおいて、ＣＰＵは、ソフトウェアＳＷをそれぞれ実行可能な４個のＣＰＵコアＣＲ（ＣＲ１−ＣＲ４）を有する。ユーザロジック部ＵＬＧは、回路情報をプログラム可能な９個の機能ブロックＢＬＫ（ＢＬＫ１−ＢＬＫ９）を有する。各ＩＰコアＩＰは、少なくとも１つの機能ブロックＢＬＫにプログラムされる。換言すれば、各機能ブロックＢＬＫには、互いに異なるＩＰコアＩＰがプログラムされる。なお、ＣＰＵが有するＣＰＵコアＣＲの数は、４個に限定されず、ユーザロジック部ＵＬＧが有する機能ブロックＢＬＫの数は、９個に限定されない。
【００５１】
例えば、各サーバＳＶは、４個のＣＰＵを有してもよい。この場合、各サーバＳＶは、１６個のＣＰＵコアＣＲを有し、最大で１６個のソフトウェアＳＷを実行可能である。なお、サーバＳＶが、機能ブロックＢＬＫの数（９個）より多い１６個のソフトウェアＳＷを実行する場合、ソフトウェアＳＷに対応するＩＰコアＩＰは、自ノードのユーザロジック部ＵＬＧだけでなく、他ノードのユーザロジック部ＵＬＧを用いて配備される。自ノードのＣＰＵが実行するソフトウェアＳＷにより制御されるＩＰコアＩＰの他ノードのユーザロジック部ＵＬＧへの配備は、各サーバＳＶのルータ部ＲＴが相互に接続されることで可能になる。
【００５２】
図５は、図３に示すルータ部ＲＴの一例を示す。ルータ部ＲＴは、ＣＰＵに接続されるインタフェース部ＣＩＦ、ユーザロジック部ＵＬＧに接続されるインタフェース部ＦＩＦ、ポートＰ（Ｐ０、Ｐ１、Ｐ２、Ｐ３）、クロスバースイッチＸＢＡＲおよび調停部ＡＲＢを有する。調停部ＡＲＢは、ルーティングテーブルＲＴＢＬおよびＩＤマッピングテーブルＩＤＭＴＢＬを有する。
【００５３】
インタフェース部ＣＩＦは、ＣＰＵからパケットを受信した場合、調停部ＡＲＢのＩＤマッピングテーブルＩＤＭＴＢＬを参照し、パケットの宛先を示す宛先ＩＤおよびパケットの送信元を示す送信元ＩＤをＣＰＵから受信したパケットに付加する。インタフェース部ＣＩＦは、宛先ＩＤおよび送信元ＩＤを付加したパケットをクロスバースイッチＸＢＡＲに出力する。また、インタフェース部ＣＩＦは、クロスバースイッチＸＢＡＲからパケットを受信した場合、パケットから宛先ＩＤおよび送信元ＩＤを削除し、宛先ＩＤおよび送信元ＩＤを削除したパケットをＣＰＵに出力する。
【００５４】
インタフェース部ＦＩＦは、ユーザロジック部ＵＬＧからパケットを受信した場合、調停部ＡＲＢのＩＤマッピングテーブルＩＤＭＴＢＬを参照し、宛先ＩＤおよび送信元ＩＤをユーザロジック部ＵＬＧから受信したパケットに付加する。インタフェース部ＦＩＦは、宛先ＩＤおよび送信元ＩＤを付加したパケットをクロスバースイッチＸＢＡＲに出力する。また、インタフェース部ＦＩＦは、クロスバースイッチＸＢＡＲからパケットを受信した場合、パケットから宛先ＩＤおよび送信元ＩＤを削除し、宛先ＩＤおよび送信元ＩＤを削除したパケットをユーザロジック部ＵＬＧに出力する。
【００５５】
各ポートＰ０、Ｐ１、Ｐ２、Ｐ３は、クロスバースイッチＸＢＡＲから受信するパケットを他のサーバＳＶのルータ部ＲＴに出力し、他のサーバＳＶのルータ部ＲＴから受信するパケットをクロスバースイッチＸＢＡＲに出力する。
【００５６】
調停部ＡＲＢは、ルータ部ＲＴ間での情報の転送経路を示すルーティングテーブルＲＴＢＬと、ソフトウェアＳＷが搭載されるノードとＩＰコアＩＰが搭載されるノードとの関係を示すＩＤマッピングテーブルＩＤＭＴＢＬとを有する。ルーティングテーブルＲＴＢＬの例は、図１０に示され、ＩＤマッピングテーブルＩＤＭＴＢＬの例は、図１１に示される。
【００５７】
調停部ＡＲＢは、各ポートＰ０、Ｐ１、Ｐ２、Ｐ３が他のルータ部ＲＴから受信するパケットに基づいてルーティングテーブルＲＴＢＬを参照し、パケットを転送する経路を決定する。また、調停部ＡＲＢは、インタフェース部ＣＩＦがＣＰＵから受信するパケットまたはインタフェース部ＦＩＦがユーザロジック部ＵＬＧから受信するパケットに基づいてＩＤマッピングテーブルＩＤＭＴＢＬを参照し、パケットを転送する経路を決定する。調停部ＡＲＢは、決定した経路にしたがってスイッチ制御信号ＳＷＣＮＴを生成し、生成したスイッチ制御信号ＳＷＣＮＴをクロスバースイッチＸＢＡＲに出力する。
【００５８】
クロスバースイッチＸＢＡＲは、スイッチ制御信号ＳＷＣＮＴに基づいて切り替わり、インタフェース部ＣＩＦ、ＦＩＦ、ポートＰ０、Ｐ１、Ｐ２、Ｐ３の２つを互いに接続する。なお、転送経路が重複しない場合、クロスバースイッチＸＢＡＲは、複数のパケットを並列に転送可能である。
【００５９】
図６は、図５に示すルータ部ＲＴに転送されるパケットのフォーマットの一例を示す。ＣＰＵとルータ部ＲＴ間で転送されるパケットは、パケットの内容を示すコマンドとデータとをそれぞれ格納する領域を有する。コマンドは、パケットの宛先を示す宛先情報およびパケットのシーケンス番号等が格納されるリクエストタグを含む。ユーザロジック部ＵＬＧとルータ部ＲＴ間で転送されるパケットは、ＣＰＵとルータ部ＲＴ間で転送されるパケットと同様であり、パケットの内容を示すコマンドとデータとをそれぞれ格納する領域を有する。
【００６０】
ルータ部ＲＴ間で転送されるパケットは、宛先ＩＤと送信元ＩＤとコマンドとデータとをそれぞれ格納する領域を含む。宛先ＩＤおよび送信元ＩＤは、ＣＰＵまたはユーザロジック部ＵＬＧ（すなわち、ＦＰＧＡ）を識別する情報を含む。図５で説明したように、宛先ＩＤおよび送信元ＩＤは、ＣＰＵからパケットを受信したインタフェース部ＣＩＦにより付加され、あるいは、ユーザロジック部ＵＬＧからパケットを受信したインタフェース部ＦＩＦにより付加される。
【００６１】
例えば、ＣＰＵは、ＩＰコアＩＰにデータ処理の開始を指示する場合、または、ＩＰコアＩＰが発行したメモリアクセス要求の応答をＩＰコアＩＰに返す場合、ＩＰコアＩＰに対してパケットを発行する。ＩＰコアＩＰは、ソフトウェアＳＷが格納されたメモリＭＥＭに対して、データの読み出しまたはデータの書き込みを実行する場合、ＣＰＵに対してメモリアクセス要求のパケットを発行する。
【００６２】
例えば、ＩＰコアＩＰにデータ処理の開始を指示するパケットは、ＩＰコアＩＰに設けられるコンフィギュレーションレジスタに所定値を書き込むパケットである。ＩＰコアＩＰは、コンフィギュレーションレジスタに所定値が書き込まれたことに基づいて、処理対象のデータである処理データをメモリＭＥＭから読み出すために、メモリアクセス要求のパケット（読み出し要求パケット）をＣＰＵに発行する。
【００６３】
ＣＰＵは、ＣＰＵコアＣＲ（ソフトウェアＳＷ）を介することなくメモリＭＥＭのアクセスを制御可能なシステムコントローラを有する。読み出し要求パケットをＩＰコアＩＰから受信したシステムコントローラは、メモリＭＥＭにアクセスし、メモリＭＥＭから読み出した処理データを含む応答パケットをＩＰコアＩＰに対して発行する。なお、処理データは、ソフトウェアＳＷを実行するＣＰＵコアＣＲにより、データ処理の開始の指示前にメモリＭＥＭに格納される。
【００６４】
処理データを含むパケットを受信したＩＰコアＩＰは、データ処理を実行し、処理結果をメモリＭＥＭに書き込むために、メモリアクセス要求のパケット（書き込み要求パケット）をＣＰＵに発行する。書き込み要求パケットは、処理結果を含む。書き込み要求パケットをＩＰコアＩＰから受信したＣＰＵのシステムコントローラは、メモリＭＥＭにアクセスし、ＩＰコアＩＰから受信した処理結果をメモリＭＥＭに書き込む。そして、システムコントローラは、処理結果のメモリＭＥＭへの書き込みが完了した後、書き込み要求パケットに対する応答パケットをＩＰコアＩＰに発行する。
【００６５】
図７は、図５に示すルータ部ＲＴによるサーバＳＶ間の接続の一例を示す。図７において、太い実線は、ポートＰを介して互いに接続されるサーバＳＶ間の接続経路を示す。図７に示す例では、情報処理システムＳＹＳ２は、Ｘ方向に３個が配列され、Ｙ方向に３個が配列された９個のサーバＳＶを有し、サーバＳＶは、二次元トーラス接続により互いに接続される。サーバＳＶ、ＣＰＵ、ルータ部ＲＴおよびユーザロジック部ＵＬＧの末尾に付加した２桁の数字のうち、上位の桁はＸ方向の並び順（アドレス）を示し、下位の桁はＹ方向の並び順を示す。
【００６６】
図７に示す例では、ノード数は９個であるが、ノード数は９個に限定されない。また、図７は、二次元トーラス接続の例を示すが、メッシュ接続によりノード間が接続されてもよく、３次元以上のトーラス接続またはメッシュ接続によりノード間が接続されてもよい。
【００６７】
図８は、図３に示すサーバＳＶに配備されたアプリケーションＡＰＰの一例を示す。図８では、説明を分かりやすくするために、図７に示すサーバＳＶのうち、３個のサーバＳＶ００、ＳＶ１１、ＳＶ２２を示す。ソフトウェアＳＷおよびＩＰコアＩＰにおいて、末尾に示す数字が同じペアが１つのアプリケーションＡＰＰに対応する。各ＣＰＵコアＣＲ１−ＣＲ４は、ソフトウェアＳＷのいずれかを実行可能である。このため、各サーバＳＶにおいて、メモリＭＥＭに格納されるソフトウェアＳＷの最大数は”４”である。なお、各ＣＰＵコアＣＲ１−ＣＲ４は、複数の仮想マシンを起動し、各仮想マシンがソフトウェアＳＷを実行してもよい。この場合、メモリＭＥＭに格納されるソフトウェアＳＷの最大数は、ＣＰＵ内で起動される仮想マシンの数に等しくなる。したがって、仮想マシンを使用しない場合に比べて、実行可能なソフトウェアＳＷの数を増やすことができる。
【００６８】
サーバＳＶ００では、ソフトウェアＳＷ１、ＳＷ２、ＳＷ１１、ＳＷ１２がメモリＭＥＭに格納され、ＩＰコアＩＰ１、ＩＰ２がユーザロジック部ＵＬＧ００にプログラムされる。サーバＳＶ１１では、ソフトウェアＳＷ３、ＳＷ４、ＳＷ５、ＳＷ６がメモリＭＥＭに格納され、ＩＰコアＩＰ３、ＩＰ４、ＩＰ５、ＩＰ６、ＩＰ１１がユーザロジック部ＵＬＧ１１にプログラムされる。サーバＳＶ２２では、ソフトウェアＳＷ７、ＳＷ８、ＳＷ９、ＳＷ１０がメモリＭＥＭに格納され、ＩＰコアＩＰ７、ＩＰ８、ＩＰ９、ＩＰ１０、ＩＰ１２がユーザロジック部ＵＬＧ２２にプログラムされる。
【００６９】
太い実線で示すソフトウェアＳＷ１１とＩＰコアＩＰ１１と、太い点線で示すソフトウェアＳＷ１２とＩＰコアＩＰ１２とは、２つのサーバＳＶに跨って配備されることを示す。すなわち、アプリケーションＡＰＰ１−ＡＰＰ１０が配備されるメモリＭＥＭとユーザロジック部ＵＬＧは、１つのサーバＳＶに含まれる。アプリケーションＡＰＰ１１、ＡＰＰ１２が配備されるメモリＭＥＭとユーザロジック部ＵＬＧは、互いに異なるサーバＳＶに含まれる。
【００７０】
ＣＰＵとユーザロジック部ＵＬＧとをルータ部ＲＴを介して接続することで、各アプリケーションＡＰＰのソフトウェアＳＷとＩＰコアＩＰとを、任意のメモリＭＥＭと任意のユーザロジック部ＵＬＧとに配備することができる。また、ＣＰＵとユーザロジック部ＵＬＧとを各サーバＳＶ内に設けられたルータ部ＲＴを介して接続することで、パケットのルーティングを各サーバＳＶ内で実行することができる。これにより、ＣＰＵとユーザロジック部ＵＬＧとをサーバＳＶの外部に設けられるルータ装置またはスイッチ装置等により接続する場合に比べて、パケットの転送速度（所定時間に転送されるパケットの転送量）を向上することができる。この結果、情報処理システムＳＹＳ２の性能を向上することができる。なお、ソフトウェアＳＷを実行するＣＰＵコアＣＲとＩＰコアＩＰが搭載されるユーザロジック部ＵＬＧとの間に介在するルータ部ＲＴの数は、パケットの転送速度の低下を抑止する点で、少ない方が好ましい。
【００７１】
さらに、図８では、ソフトウェアＳＷ１１とＩＰコアＩＰ１１とがサーバＳＶ００、ＳＶ１１に跨って配備されるが、介在するルータ部ＲＴの数が異なることを除き、ソフトウェアＳＷ１１とＩＰコアＩＰ１１とがサーバＳＶ００のみに配備される場合と等価である。したがって、図３に示す情報処理システムＳＹＳ２では、既存のアプリケーションＡＰＰ（ＳＷ、ＩＰ）をそのまま使用して、クラウドサービスを提供することができる。
【００７２】
図９は、図３に示す管理サーバＭＳＶ内の管理テーブルＭＴＢＬの一例を示す。管理テーブルＭＴＢＬは、各サーバＳＶにおけるＣＰＵコアＣＲ毎に、ＣＰＵコアＣＲの使用／未使用を示す情報を格納するフラグ領域ＦＬＧと、動作させるソフトウェアＳＷの名称を示す情報を格納するＳＷ名領域と有する。また、管理テーブルＭＴＢＬは、各サーバＳＶにおける機能ブロックＢＬＫ毎に、機能ブロックＢＬＫの使用／未使用を示す情報を格納するフラグ領域ＦＬＧと、動作させるＩＰコアＩＰの名称を示す情報を格納するＩＰ名領域とを有する。各フラグ領域ＦＬＧに格納された”０”は、”未使用”を示し、各フラグ領域ＦＬＧに接続された”１”は、”使用”を示す。管理テーブルＭＴＢＬは、ソフトウェアＳＷとＩＰコアＩＰとがサーバＳＶに配備される毎に、管理サーバＭＳＶにより更新される。管理テーブルＭＴＢＬは、各サーバＳＶのＣＰＵコアＣＲの使用状況を示す情報と、各サーバＳＶの機能ブロックＢＬＫの使用状況を示す情報とを保持する状況保持部の一例である。なお、各サーバＳＶにおいてＣＰＵが交換され、ＣＰＵコアＣＲの数が変更される場合がある。または、各サーバＳＶにおいてＦＰＧＡが交換され、ユーザロジック部ＵＬＧの機能ブロックＢＬＫの数が変更される場合がある。このような場合にも、管理テーブルＭＴＢＬを変更することで、情報処理システムＳＹＳ２の運用を継続することができる。
【００７３】
図９に示す例は、サーバＳＶ００のＣＰＵコアＣＲ３、ＣＲ４と、サーバＳＶ００の機能ブロックＢＬＫ９と、サーバＳＶ１０の機能ブロックＢＬＫ９と、サーバＳＶ２０のＣＰＵコアＣＲ４とが未使用であることを示す。また、サーバＳＶ１１の機能ブロックＢＬＫ６−ＢＬＫ９と、サーバＳＶ２１の機能ブロックＢＬＫ９と、サーバＳＶ２２の機能ブロックＢＬＫ７−ＢＬＫ９とが未使用であることを示す。図９に示す管理テーブルＭＴＢＬの状態は、後述する図１２に示すアプリケーションＡＰＰの配備状態に対応する。換言すれば、図９に示す管理テーブルＭＴＢＬは、図８において、アプリケーションＡＰＰ１１（ＳＷ１１、ＩＰ１１）と、アプリケーションＡＰＰ１２（ＳＷ１２、ＩＰ１２）とが情報処理システムＳＹＳ２に配備される前の状態を示す。なお、サーバＳＶが増設または削減される場合にも、増設または削減されるサーバＳＶに合わせて管理テーブルＭＴＢＬとルーティングテーブルＲＴＢＬとを変更することで、情報処理システムＳＹＳ２の運用を継続することができる。
【００７４】
図１０は、図５に示すルーティングテーブルＲＴＢＬの一例を示す。各ルータ部ＲＴのルーティングテーブルＲＴＢＬは、受信したパケットを出力するポートＰの番号Ｐ＃を示す情報を、パケットに含まれる宛先ＩＤ毎に格納する領域を有する。図１０に示すルーティングテーブルＲＴＢＬは、情報処理システムＳＹＳ２の起動時に、サーバＳＶ間でのパケットの転送仕様に基づいて管理サーバＭＳＶにより設定される。例えば、サーバＳＶ間でのパケットの転送仕様の１つの例では、パケットは図７のＹ方向（縦方向）に転送された後、図７のＸ方向（横方向）に転送される。
【００７５】
例えば、図８において、サーバＳＶ００のメモリＭＥＭに格納されたソフトウェアＳＷ１１を実行するＣＰＵ００が、サーバＳＶ１１のユーザロジック部ＵＬＧ１１に搭載されたＩＰコアＩＰ１１にパケットを送信する場合、宛先ＩＤはＲＴ１１である。このため、まず、ＣＰＵ００からパケットを受信したルータ部ＲＴ００は、ルーティングテーブルＲＴＢＬを参照し、宛先ＩＤ＝ＲＴ１１に対応するポートＰ３にパケットを転送し、パケットはルータ部ＲＴ０１に届く。ルータ部ＲＴ０１は、ルーティングテーブルＲＴＢＬを参照し、宛先ＩＤ＝ＲＴ１１に対応するポートＰ１にパケットを転送し、パケットはルータ部ＲＴ１１に届く。ルータ部ＲＴ１１は、パケットに含まれる宛先ＩＤが自身を示すため、パケット内のコマンド（リクエストタグ）に含まれるＩＰコアＩＰ１１を示す情報に基づいて、ユーザロジック部ＵＬＧ１１にパケットを転送する。
【００７６】
また、サーバＳＶ１１のユーザロジック部ＵＬＧ１１に搭載されたＩＰコアＩＰ１１が、サーバＳＶ００のメモリＭＥＭにインストールされたソフトウェアＳＷ１１を実行するＣＰＵ００にパケットを送信する場合、宛先ＩＤはＲＴ００である。このため、まず、ルータ部ＲＴ１１は、ルーティングテーブルＲＴＢＬを参照し、宛先ＩＤ＝ＲＴ００に対応するポートＰ２にパケットを転送し、パケットはルータ部ＲＴ１０に届く。ルータ部ＲＴ１０は、ルーティングテーブルＲＴＢＬを参照し、宛先ＩＤ＝ＲＴ００に対応するポートＰ０にパケットを転送し、パケットはルータ部ＲＴ００に届く。ルータ部ＲＴ００は、パケットに含まれる宛先ＩＤが自身を示すため、パケット内のコマンド（リクエストタグ）に含まれるソフトウェアＳＷ１１を示す情報に基づいて、ＣＰＵ００にパケットを転送する。
【００７７】
図１１は、図５に示すＩＤマッピングテーブルＩＤＭＴＢＬの一例を示す。各ルータ部ＲＴのＩＤマッピングテーブルＩＤＭＴＢＬは、対応テーブルＴＢＬＡ、ＴＢＬＢ、ＴＢＬＣを有する。ＩＤマッピングテーブルＩＤＭＴＢＬは、ＣＰＵと、ＩＰコアＩＰがプログラムされた自ノードまたは他ノードのユーザロジック部ＵＬＧとの間で転送される情報の転送経路を示す経路情報を保持する保持部の一例である。
【００７８】
各ルータ部ＲＴの対応テーブルＴＢＬＡは、各ノードに搭載されたソフトウェアＳＷに対応するＩＰコアＩＰの搭載先を示す情報を保持する。すなわち、対応テーブルＴＢＬＡは、ユーザロジック部ＵＬＧに搭載されたＩＰコアＩＰを示すデバイスＩＤを格納する領域と、ＩＰコアＩＰを搭載したユーザロジック部ＵＬＧに接続されたルータ部ＲＴを示す宛先ルータＩＤを格納する領域とを有する。
【００７９】
対応テーブルＴＢＬＡは、データ処理の開始をＩＰコアＩＰに指示するパケットをＣＰＵから受信したルータ部ＲＴのインタフェース部ＣＩＦが、パケットに付加する宛先ＩＤ（図６）を決定する場合に使用される。対応テーブルＴＢＬＡは、ソフトウェアＳＷとＩＰコアＩＰとが互いに異なるサーバＳＶに配備される毎に、管理サーバＭＳＶにより更新される。
【００８０】
例えば、ルータ部ＲＴ００の対応テーブルＴＢＬＡは、ＩＰコアＩＰ１、ＩＰ２が自ノード（ＳＶ００）のユーザロジック部ＵＬＧに搭載されていることを示す。また、ルータ部ＲＴ００の対応テーブルＴＢＬＡは、ＩＰコアＩＰ１１が他ノード（ＳＶ１１）のロジック部ＵＬＧに搭載され、ＩＰコアＩＰ１２が他ノード（ＳＶ１２）のロジック部ＵＬＧに搭載されていることを示す。
【００８１】
各ルータ部ＲＴの対応テーブルＴＢＬＢは、各ノードに搭載されたＩＰコアＩＰに対応するソフトウェアＳＷの搭載先を示す情報を保持する。すなわち、対応テーブルＴＢＬＢは、ユーザロジック部ＵＬＧに搭載されたＩＰコアＩＰを示すデバイスＩＤを格納する領域と、ＩＰコアＩＰに対応するソフトウェアＳＷを実行するＣＰＵに接続されたルータ部ＲＴを示す宛先ルータＩＤを格納する領域とを有する。
【００８２】
対応テーブルＴＢＬＢは、ＩＰコアＩＰからメモリアクセス要求のパケットを受信したルータ部ＲＴのインタフェース部ＦＩＦが、パケットに付加する宛先ＩＤ（図６）を決定する場合に使用される。対応テーブルＴＢＬＢは、ソフトウェアＳＷとＩＰコアＩＰとが互いに異なるサーバＳＶに配備される毎に、管理サーバＭＳＶにより更新される。
【００８３】
例えば、ルータ部ＲＴ１１の対応テーブルＴＢＬＢは、ＩＰコアＩＰ３、ＩＰ４、ＩＰ５、ＩＰ６に対応するソフトウェアＳＷが自ノード（ＳＶ１１）に搭載されていることを示す。また、ルータ部ＲＴ１１の対応テーブルＴＢＬＢは、ＩＰコアＩＰ１１に対応するソフトウェアＳＷが他ノード（ＳＶ００）に搭載されていることを示す。
【００８４】
各ルータ部ＲＴの対応テーブルＴＢＬＣは、ＩＰコアＩＰから発行されたメモリアクセス要求のパケットに対する応答パケットの転送経路を示す情報を保持する。すなわち、対応テーブルＴＢＬＣは、メモリアクセス要求のパケットに含まれるリクエストタグを格納する領域と、メモリアクセス要求のパケットを当該ルータ部ＲＴに転送した直近のルータ部ＲＴを示す送信元ルータＩＤを格納する領域とを有する。
【００８５】
対応テーブルＴＢＬＣは、メモリアクセス要求のパケットに対する応答パケットを、メモリアクセス要求を発行したＩＰコアＩＰに転送する場合に使用される。対応テーブルＴＢＬＣは、各ルータ部ＲＴがメモリアクセス要求のパケットを受信する毎に、各ルータ部ＲＴの調停部ＡＲＢにより更新される。
【００８６】
例えば、ＩＰコアＩＰ１１が発行したメモリアクセス要求のパケットをルータ部ＲＴ１０が受信したとする。この場合、ルータ部ＲＴ１０は、パケットに含まれるリクエストタグと、パケットの直近の送信元のルータ部ＲＴ１１を示す送信元ルータＩＤとを対応テーブルＴＢＬＣに格納する。対応テーブルＴＢＬＣのリクエストタグの領域には、メモリアクセス要求のパケットを発行したＩＰコアＩＰ１１を示す情報と、パケットのシーケンス番号（この例では、”０００１”）とが格納される。
【００８７】
ルータ部ＲＴ１０は、ルーティングテーブルＲＴＢＬにしたがって、メモリアクセス要求のパケットをルータ部ＲＴ００に転送する。メモリアクセス要求のパケットをルータ部ＲＴ１０から受信したルータ部ＲＴ００は、パケットに含まれるリクエストタグと、パケットの直近の送信元のルータ部ＲＴ１０を示す送信元ルータＩＤとを対応テーブルＴＢＬＣに格納する。ルータ部ＲＴ００は、メモリアクセス要求のパケットに含まれる宛先ＩＤが自身を示すため、パケット内のコマンド（リクエストタグ）に含まれるソフトウェアＳＷ１１を示す情報に基づいて、ＣＰＵ００にパケットを転送する。
【００８８】
一方、ＣＰＵ００からメモリアクセス要求のパケットに対する応答パケットを受信したルータ部ＲＴ００は、対応テーブルＴＢＬＣを参照する。ここで、ルータ部ＲＴ００の調停部ＡＲＢは、パケット内のコマンドをデコードすることで、パケットが応答パケットであることを検出する。ルータ部ＲＴ００は、応答パケット内のコマンドに含まれるリクエストタグと一致するリクエストタグに対応して対応テーブルＴＢＬＣに格納されている送信元ルータＩＤにより示されるルータ部ＲＴ１０に応答パケットを転送する。
【００８９】
ルータ部ＲＴ００からメモリアクセス要求のパケットに対する応答パケットを受信したルータ部ＲＴ１０は、上述したルータ部ＲＴ００と同様に動作し、対応テーブルＴＢＬＣを参照し、応答パケットをルータ部ＲＴ１１に転送する。そして、ルータ部ＲＴ１１を介してメモリアクセス要求のパケットの発行元のＩＰコアＩＰ１１に応答パケットが転送される。
【００９０】
各ルータ部ＲＴにＩＤマッピングテーブルＩＤＭＴＢＬを設けることで、ソフトウェアＳＷを実行するＣＰＵコアＣＲとＩＰコアＩＰとの間で、情報を確実に転送することができる。換言すれば、ソフトウェアＳＷに対応するＩＰコアＩＰを自ノードまたは他ノードのユーザロジック部ＵＬＧに配備する場合にも、ソフトウェアＳＷを実行するＣＰＵコアＣＲとＩＰコアＩＰとの間で、情報を確実に転送することができる。
【００９１】
図１２は、図３に示す情報処理システムＳＹＳ２においてアプリケーションＡＰＰが配備された状態の一例を示す。図１２では、説明を分かりやすくするために、図７に示すサーバＳＶのうち、３個のサーバＳＶ００、ＳＶ１１、ＳＶ２２のみを示す。図１２は、図９に示す管理テーブルＭＴＢＬの状態を視覚的に表したものである。すなわち、図１２は、サーバＳＶ００のＣＰＵコアＣＲ３、ＣＲ４と、サーバＳＶ００の機能ブロックＢＬＫ９と、サーバＳＶ１１の機能ブロックＢＬＫ６−ＢＬＫ９と、サーバＳＶ２２の機能ブロックＢＬＫ７−ＢＬＫ９とが未使用であることを示す。
【００９２】
図１２に示す例では、ソフトウェアＳＷは、ＣＰＵコアＣＲ毎に割り当てられ、ＩＰコアＩＰは、回路規模に応じて１つまたは複数の機能ブロックＢＬＫに割り当てられる。ソフトウェアＳＷをＣＰＵコアＣＲ毎に割り当てることで、簡易な管理テーブルＭＴＢＬにより、管理サーバＭＳＶによるアプリケーションＡＰＰの配備を管理することができる。
【００９３】
新たに配備されるアプリケーションＡＰＰのソフトウェアＳＷは、サーバＳＶ００のＣＰＵコアＣＲ３またはＣＲ４のいずれかに割り当て可能である。新たに配備されるアプリケーションＡＰＰのＩＰコアＩＰは、サーバＳＶ００の機能ブロックＢＬＫ９、サーバＳＶ１１の機能ブロックＢＬＫ６−ＢＬＫ９またはサーバＳＶ２２の機能ブロックＢＬＫ７−ＢＬＫ９のいずれかに割り当て可能である。
【００９４】
これに対して、各サーバＳＶがルータ部ＲＴを持たない場合、アプリケーションＡＰＰは、サーバＳＶ００におけるＣＰＵコアＣＲ３またはＣＲ４と機能ブロックＢＬＫ９のみに配備可能である。換言すれば、サーバＳＶ１１において空いている機能ブロックＢＬＫ６−ＢＬＫ９およびサーバＳＶ１２において空いている機能ブロックＢＬＫ７−ＢＬＫ９には、ＩＰコアＩＰが搭載されず、ユーザロジック部ＵＬＧに無駄な領域が発生してしまう。また、新たに搭載されるＩＰコアＩＰが、複数の機能ブロックＢＬＫに跨って搭載される場合、情報処理装置ＳＹＳ２は、サーバＳＶ００のＣＰＵコアＣＲ３、ＣＲ４が空いているにも拘わらず、アプリケーションＡＰＰを配備しない。
【００９５】
なお、１つの機能ブロックＢＬＫに搭載可能なＩＰコアＩＰ５等は、他のＩＰコアＩＰに比べて簡易なデータ処理を繰り返して実行する場合があり、ソフトウェアＳＷ５から頻繁にデータ処理の指示を受ける場合がある。この場合にも、サーバＳＶ内のルータ部ＲＴを介して、ソフトウェアＳＷ５を実行するＣＰＵコアＣＲとＩＰコアＩＰ５とを接続することで、サーバＳＶの外部のスイッチ装置を介する場合に比べて、ソフトウェアＳＷ５の処理性能の低下を抑えることができる。
【００９６】
図１３は、図３に示す情報処理システムＳＹＳ２においてアプリケーションＡＰＰが配備された状態の別の例を示す。図１２と同じ要素については、詳細な説明は省略する。図１３は、図８に示す状態に対応する。すなわち、図１３は、網掛けで示すアプリケーションＡＰＰ１１（ＳＷ１１、ＩＰ１１）、ＡＰＰ１２（ＳＷ１２、ＩＰ１２）が、図１２に対して新たに配備された状態を示す。
【００９７】
図１３では、ＩＰコアＩＰ１１の搭載には、２個の機能ブロックＢＬＫが使用され、ＩＰコアＩＰ１２の搭載には、３個の機能ブロックＢＬＫが使用される。このため、ＩＰコアＩＰ１１、ＩＰ１２は、ソフトウェアＳＷ１１、ＳＷ１２が搭載されるサーバＳＶ００と異なるサーバＳＶ１１、ＳＶ１２にそれぞれ搭載される。換言すれば、サーバＳＶは、互いに接続されたルータ部ＲＴを有するため、ソフトウェアＳＷとＩＰコアＩＰとを、互いに異なるサーバＳＶに搭載することができる。
【００９８】
図１４は、図３に示すサーバＳＶにより実行されるアプリケーションＡＰＰの動作の一例を示す。図１４では、図１３に示すアプリケーションＡＰＰ１１（ＳＷ１１、ＩＰ１１）とアプリケーションＡＰＰ２（ＳＷ２、ＩＰ２）とが実行される。なお、図１４に示す動作では、説明を分かりやすくするために、アプリケーションＡＰＰ１１（ＳＷ１１、ＩＰ１１）、ＡＰＰ２（ＳＷ２、ＩＰ２）を互いに重複することなく順に実行させている。しかしながら、アプリケーションＡＰＰ１１、ＡＰＰ２は、互いに重複して実行されてもよい。
【００９９】
まず、サーバＳＶ００のＣＰＵコアＣＲ３が実行するソフトウェアＳＷ１１は、サーバＳＶ１１のＩＰコアＩＰ１１に処理させる処理データＤＴをメモリＭＥＭに書き込む（図１４（ａ））。なお、実際の動作では、ＣＰＵコアＣＲ３は、メモリＭＥＭに処理データＤＴを書き込むメモリアクセス要求ＭＲＱＷをメモリＭＥＭに発行する。メモリＭＥＭは、処理データＤＴを記憶領域に書き込んだ後、メモリアクセス要求ＭＲＱＷに対する応答パケットＲＥＳを発行する。
【０１００】
メモリＭＥＭに処理データＤＴを書き込んだ後、ソフトウェアＳＷ１１は、ＩＰコアＩＰ１１に対してデータ処理要求ＤＲＱ（パケット）を発行する（図１４（ｂ））。データ処理要求ＤＲＱは、図１０に示すルーティングテーブルＲＴＢＬにしたがって、ルータ部ＲＴ００、ＲＴ０１、ＲＴ１１を介してＩＰコアＩＰ１１に転送される。データ処理要求ＤＲＱは、ＣＰＵコアＣＲ３からＩＰコアＩＰ１１に転送されるデータ処理の指示の一例である。
【０１０１】
データ処理要求ＤＲＱを受信したＩＰコアＩＰ１１は、処理データＤＴをメモリＭＥＭから読み出すメモリアクセス要求ＭＲＱＲ（パケット）を発行する（図１４（ｃ））。メモリアクセス要求ＭＲＱＲは、ルーティングテーブルＲＴＢＬにしたがって、ルータ部ＲＴ１１、ＲＴ１０、ＲＴ００を介してメモリＭＥＭに転送される（図１４（ｄ））。メモリアクセス要求ＭＲＱＲは、ＩＰコアＩＰ１１からメモリＭＥＭに転送される処理データの読み出し要求の一例である。なお、実際の動作では、メモリＭＥＭの読み出しアクセスは、ＣＰＵ（図４）に搭載されるシステムコントローラを介して実行される。
【０１０２】
メモリＭＥＭのアクセスを制御するシステムコントローラは、メモリアクセス要求ＭＲＱＲに基づいて記憶領域から読み出した処理データＤＴを含む応答パケットＲＥＳを発行する（図１４（ｅ））。処理データＤＴを含む応答パケットＲＥＳは、図１１に示すＩＤマッピングテーブルＩＤＭＴＢＬの対応テーブルＴＢＬＣにしたがって、ルータ部ＲＴ００、ＲＴ１０、ＲＴ１１を介してＩＰコアＩＰ１１に転送される（図１４（ｆ））。すなわち、処理データＤＴを含む応答パケットＲＥＳは、メモリアクセス要求ＭＲＱＲが転送された経路の逆の経路を通って転送される。
【０１０３】
ＩＰコアＩＰ１１は、メモリＭＥＭから転送された処理データＤＴを用いてデータ処理を実行し、データ処理により得られた処理結果ＲＳＬＴをメモリＭＥＭに書き込むメモリアクセス要求ＭＲＱＷ（パケット）を発行する（図１４（ｇ））。処理結果ＲＳＬＴは、ルーティングテーブルＲＴＢＬにしたがって、ルータ部ＲＴ１１、ＲＴ１０、ＲＴ００を介してメモリＭＥＭに転送され、メモリＭＥＭの記憶領域に書き込まれる（図１４（ｈ））。メモリアクセス要求ＭＲＱＷは、ＩＰコアＩＰ１１がメモリＭＥＭに発行する処理結果の書き込み要求の一例である。
【０１０４】
サーバＳＶ００のＣＰＵに搭載されるシステムコントローラは、処理結果ＲＳＬＴのメモリＭＥＭへの書き込みの完了に基づいて、メモリアクセス要求ＭＲＱＷに対する応答パケットＲＥＳを発行する（図１４（ｉ））。応答パケットＲＥＳは、ＩＤマッピングテーブルＩＤＭＴＢＬの対応テーブルＴＢＬＣにしたがって、ルータ部ＲＴ００、ＲＴ１０、ＲＴ１１を介してＩＰコアＩＰ１１に転送される（図１４（ｊ））。
【０１０５】
応答パケットＲＥＳを受信したＩＰコアＩＰ１１は、データ処理の完了をＣＰＵコアＣＲ１が実行するソフトウェアＳＷ１１に通知する割り込みＩＮＴ（パケット）を発行する（図１４（ｋ））。割り込みＩＮＴは、ルーティングテーブルＲＴＢＬにしたがって、ルータ部ＲＴ１１、ＲＴ１０、ＲＴ００を介してＣＰＵコアＣＲ３に転送される（図１４（ｌ））。
【０１０６】
割り込みＩＮＴを検出したソフトウェアＳＷ１１は、処理結果ＲＳＬＴをメモリＭＥＭから読み出すメモリアクセス要求ＭＲＱＲを発行する（図１４（ｍ））。そして、ソフトウェアＳＷ１１は、メモリＭＥＭから処理結果ＲＳＬＴを受信し、アプリケーションＡＰＰ１１の処理の１つを完了する（図１４（ｎ））。
【０１０７】
次に、サーバＳＶ００のＣＰＵコアＣＲ２が実行するソフトウェアＳＷ２は、サーバＳＶ００のＩＰコアＩＰ２に処理させる処理データＤＴをメモリＭＥＭに書き込んだ後、ＩＰコアＩＰ２に対してデータ処理要求ＤＲＱ（パケット）を発行する（図１４（ｏ））。ＣＰＵコアＣＲ２が実行するソフトウェアＳＷ２とＩＰコアＩＰとのその後の動作は、パケットがルータ部ＲＴ００のみを介して転送されることを除き、ＣＰＵコアＣＲ３が実行するソフトウェアＳＷ１１とＩＰコアＩＰ１１との上述した動作と同様である。図１４に示すように、ソフトウェアＳＷに対応するＩＰコアＩＰが他ノードのユーザロジック部ＵＬＧに配備される場合にも、ルータ部ＲＴを介して、ソフトウェアＳＷを実行するＣＰＵコアＣＲとＩＰコアＩＰとの間で、情報を確実に転送することができる。
【０１０８】
図１５は、図３に示す管理サーバＭＳＶの動作の一例を示す。図１５に示す動作は、図３に示す管理サーバＭＳＶが実行する制御プログラムにより実現される。すなわち、図１５は、情報処理システムＳＹＳ２の制御方法および情報処理システムＳＹＳ２の制御プログラムの一例を示す。
【０１０９】
まず、ステップＳ１０において、管理サーバＭＳＶは、ネットワークＮＷ２を介して端末装置ＴＭからアプリケーションＡＰＰの配備の指示を受信したか否かを判定する。アプリケーションＡＰＰの配備の指示を受信した場合、処理はステップＳ１００に移行され、アプリケーションＡＰＰの配備の指示を受信していない場合、処理はステップＳ２０に移行される。
【０１１０】
ステップＳ２０において、管理サーバＭＳＶは、ネットワークＮＷ２を介して端末装置ＴＭからアプリケーションＡＰＰの削除の指示を受信したか否かを判定する。アプリケーションＡＰＰの削除の指示を受信した場合、処理はステップＳ３０に移行され、アプリケーションＡＰＰの削除の指示を受信していない場合、処理は終了する。
【０１１１】
ステップＳ３０において、管理サーバＭＳＶは、管理テーブルＭＴＢＬを参照し、削除が指示されたアプリケーションＡＰＰのソフトウェアＳＷが動作するサーバＳＶのＣＰＵコアＣＲを検出する。そして、管理サーバＭＳＶは、検出したＣＰＵコアＣＲ上で動作するアプリケーションＡＰＰのソフトウェアＳＷを停止する。
【０１１２】
次に、ステップＳ４０において、管理サーバＭＳＶは、管理テーブルＭＴＢＬを参照し、削除が指示されたアプリケーションＡＰＰのＩＰコアＩＰが搭載されたサーバＳＶの機能ブロックＢＬＫを検出する。そして、管理サーバＭＳＶは、検出した機能ブロックＢＬＫからＩＰコアＩＰを削除する。
【０１１３】
次に、ステップＳ５０において、管理サーバＭＳＶは、削除したアプリケーションＡＰＰ（ＳＷ、ＩＰ）に基づいて、図１１に示すＩＤマッピングテーブルＩＤＭＴＢＬの対応テーブルＴＢＬＡ、ＴＢＬＢを更新し、処理をステップＳ６０に移行する。
【０１１４】
一方、アプリケーションＡＰＰの配備の指示を受信した場合、ステップＳ１００において、管理サーバＭＳＶは、アプリケーションＡＰＰを配備する処理を実行し、処理をステップＳ６０に移行する。ステップＳ１００の処理の例は、図１６に示される。
【０１１５】
ステップＳ６０において、管理サーバＭＳＶは、アプリケーションＡＰＰの配備またはアプリケーションＡＰＰの削除に基づいて、図９に示す管理テーブルＭＴＢＬを更新し、処理を終了する。
【０１１６】
図１６は、図１５に示すステップＳ１００の処理の一例を示す。
【０１１７】
まず、ステップＳ１１０において、管理サーバＭＳＶは、管理テーブルＭＴＢＬを参照し、空いているＣＰＵコアＣＲと、空いている機能ブロックＢＬＫとを検出する。
【０１１８】
次に、ステップＳ１２０において、管理サーバＭＳＶは、アプリケーションＡＰＰ（ＳＷ、ＩＰ）を１つのサーバＳＶに配備可能か否かを判定する。ソフトウェアＳＷとＩＰコアＩＰとを１つのサーバＳＶに配備可能な場合、処理はステップＳ１３０に移行され、ソフトウェアＳＷとＩＰコアＩＰとを互いに異なるサーバＳＶに配備する場合、処理はステップＳ１５０に移行される。
【０１１９】
ステップＳ１３０において、管理サーバＭＳＶは、ステップＳ１２０で判定したサーバＳＶのＨＤＤに、新たに配備するアプリケーションＡＰＰのソフトウェアＳＷをインストールする。なお、新たに配備するアプリケーションＡＰＰのソフトウェアＳＷがＨＤＤに既にインストールされている場合、ステップＳ１３０の処理は省略される。
【０１２０】
次に、ステップＳ１４０において、管理サーバＭＳＶは、ステップＳ１２０で判定したサーバＳＶのユーザロジック部ＵＬＧの空いている機能ブロックＢＬＫにＩＰコアＩＰをプログラムする。これにより、新たに配備したアプリケーションＡＰＰの情報処理システムＳＹＳ２上での動作が可能になる。
【０１２１】
一方、ソフトウェアＳＷとＩＰコアＩＰとを異なるサーバＳＶに配備する場合、ステップＳ１５０において、管理サーバＭＳＶは、ソフトウェアＳＷを動作可能なＣＰＵコアＣＲが存在するか否かを判定する。ソフトウェアＳＷを動作可能なＣＰＵコアＣＲが存在する場合、処理はステップＳ１６０に移行され、ソフトウェアＳＷを動作可能なＣＰＵコアＣＲが存在しない場合、アプリケーションＡＰＰの配備が困難なため、処理は終了する。
【０１２２】
ステップＳ１６０において、管理サーバＭＳＶは、ＩＰコアＩＰをプログラム可能な機能ブロックＢＬＫが存在するか否かを判定する。ＩＰコアＩＰをプログラム可能な機能ブロックＢＬＫが存在する場合、処理はステップＳ１７０に移行され、ＩＰコアＩＰをプログラム可能な機能ブロックＢＬＫが存在しない場合、アプリケーションＡＰＰの配備が困難なため、処理は終了する。
【０１２３】
ステップＳ１７０において、管理サーバＭＳＶは、ステップＳ１５０で判定したソフトウェアＳＷを動作可能なＣＰＵコアＣＲのいずれかに対応するＨＤＤに、新たに配備するアプリケーションＡＰＰのソフトウェアＳＷをインストールする。新たに配備するアプリケーションＡＰＰのソフトウェアＳＷがＨＤＤに既にインストールされている場合、ステップＳ１７０の処理は省略される。
【０１２４】
次に、ステップＳ１８０において、管理サーバＭＳＶは、ステップＳ１６０で判定したＩＰコアＩＰをプログラム可能な機能ブロックＢＬＫのいずかにＩＰコアＩＰをプログラムする。
【０１２５】
次に、ステップＳ１９０において、管理サーバＭＳＶは、新たに配備したアプリケーションＡＰＰ（ＳＷ、ＩＰ）に基づいて、図１１に示すＩＤマッピングテーブルＩＤＭＴＢＬの対応テーブルＴＢＬＡ、ＴＢＬＢを更新し、処理を終了する。
【０１２６】
以上、図３から図１６に示す実施形態においても、図１に示す実施形態と同様の効果を得ることができる。例えば、ＣＰＵが実行するソフトウェアＳＷの処理性能を低下させることなく、ソフトウェアＳＷとＩＰコアＩＰとを複数のサーバＳＶに配備することができる。また、各サーバＳＶにルータ部ＲＴを設け、ルータ部ＲＴ間を相互に接続することで、ソフトウェアＳＷとＩＰコアＩＰとを複数のサーバＳＶに分散させて効率的に配備することが可能になり、情報処理システムＳＹＳ１の性能を向上することができる。
【０１２７】
さらに、図３から図１６に示す実施形態では、ルータ部ＲＴをＦＰＧＡに再構成可能に搭載することで、ルータ部ＲＴとユーザロジック部ＵＬＧとの間の情報の転送をＦＰＧＡチップ内で実行することができる。これにより、ルータ部ＲＴとユーザロジック部ＵＬＧとを互いに異なる半導体チップに搭載する場合に比べて、ルータ部ＲＴとユーザロジック部ＵＬＧとの間の情報の転送を高速に実行することができる。
【０１２８】
ソフトウェアＳＷをＣＰＵコアＣＲ毎に割り当てることで、簡易な管理テーブルＭＴＢＬにより、管理サーバＭＳＶによるアプリケーションＡＰＰの配備を管理することができる。
【０１２９】
図１１に示すＩＤマッピングテーブルＩＤＭＴＢＬにより、ソフトウェアＳＷに対応するＩＰコアＩＰを自ノードまたは他ノードに配備する場合にも、ソフトウェアＳＷを実行するＣＰＵコアＣＲとＩＰコアＩＰとの間で、情報を確実に転送することができる。
【０１３０】
複数のルータ部ＲＴを介して、ソフトウェアＳＷとＩＰコアＩＰとがサーバＳＶに跨って配備される場合にも、既存のアプリケーションＡＰＰ（ＳＷ、ＩＰ）をそのまま使用して、クラウドサービスを提供することができる。各サーバＳＶにおいて、ＣＰＵコアＣＲの数が変更され、または、ユーザロジック部ＵＬＧの機能ブロックＢＬＫの数が変更される場合にも、管理テーブルＭＴＢＬを変更することで、情報処理システムＳＹＳ２の運用を継続することができる。
【０１３１】
また、サーバＳＶが増設または削減される場合、増設または削減されるサーバＳＶに合わせて管理テーブルＭＴＢＬとルーティングテーブルＲＴＢＬとを変更することで、情報処理システムＳＹＳ２の運用を継続することができる。
【０１３２】
図１７は、情報処理装置、情報処理システム、情報処理システムの制御方法および情報処理システムの制御プログラムの別の実施形態を示す。図１から図１６で説明した要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明は省略する。
【０１３３】
図１７に示す情報処理システムＳＹＳ３は、各サーバＳＶのルータ部ＲＴがＦＰＧＡの外部に設けられることを除き、図３に示す情報処理システムＳＹＳ２と同様である。すなわち、ルータ部ＲＴは、ＦＰＧＡチップとは別の半導体チップ内に設けられ、ＦＰＧＡは、ＩＰコアＩＰがプログラムされるユーザロジック部ＵＬＧを有する。情報処理システムＳＹＳ３の動作は、図１４から図１６と同一または同様である。すなわち、図１５および図１６は、情報処理システムＳＹＳ３の制御方法および情報処理システムＳＹＳ７の制御プログラムの一例を示す。
【０１３４】
以上、図１７に示す実施形態においても、図１から図１６に示す実施形態と同様の効果を得ることができる。例えば、ＣＰＵが実行するソフトウェアＳＷの処理性能を低下させることなく、ソフトウェアＳＷとＩＰコアＩＰとを複数のサーバＳＶに配備することができる。また、各サーバＳＶにルータ部ＲＴを設け、ルータ部ＲＴ間を相互に接続することで、ソフトウェアＳＷとＩＰコアＩＰとを複数のサーバＳＶに分散させて効率的に配備することが可能になり、情報処理システムＳＹＳ３の性能を向上することができる。
【０１３５】
また、簡易な管理テーブルＭＴＢＬにより、管理サーバＭＳＶによるアプリケーションＡＰＰの配備を管理することができる。図１１に示すＩＤマッピングテーブルＩＤＭＴＢＬにより、ソフトウェアＳＷを実行するＣＰＵコアＣＲとＩＰコアＩＰとの間で、情報を確実に転送することができる。既存のアプリケーションＡＰＰ（ＳＷ、ＩＰ）をそのまま使用して、クラウドサービスを提供することができる。各サーバＳＶのハードウェア構成が変更される場合にも、管理テーブルＭＴＢＬとルーティングテーブルＲＴＢＬとを変更することで、情報処理システムＳＹＳ３の運用を継続することができる。
【０１３６】
図１８は、情報処理装置、情報処理システム、情報処理システムの制御方法および情報処理システムの制御プログラムの別の実施形態を示す。図１から図１６で説明した要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明は省略する。
【０１３７】
図１８に示す情報処理システムＳＹＳ４は、各サーバＳＶの構成が、図３に示すサーバＳＶの構成と異なることを除き、図３に示す情報処理システムＳＹＳ２と同様である。各サーバＳＶは、ＣＰＵに直接接続されるルータ部ＲＴａと、ルータ部ＲＴａを介してＣＰＵに接続されるルータ部ＲＴｂとを有する。各ルータ部ＲＴａ、ＲＴｂは、ユーザロジック部ＵＬＧとともにＦＰＧＡチップ内に搭載される。各サーバＳＶが複数のルータ部ＲＴａ、ＲＴｂを有するため、情報処理システムＳＹＳ４は、ルータ部ＲＴａ、ＲＴｂが二次元トーラスネットワークにより互いに接続される。サーバＳＶ間の接続の例は、図１９に示される。
【０１３８】
ルータ部ＲＴａは、調停部ＡＲＢのルーティングテーブルＲＴＢＬおよびＩＤマッピングテーブルＩＤＭＴＢＬが異なることを除き、図５に示すルータ部ＲＴと同じ構成を有する。ルータ部ＲＴｂは、図５に示すルータ部ＲＴからインタフェース部ＣＩＦを削除した構成と同様である。但し、ルータ部ＲＴｂは、ＣＰＵからパケットを直接受信しないため、ルータ部ＲＴｂのＩＤマッピングテーブルＩＤＭＴＢＬは、図１１に示す対応テーブルＴＢＬＡを持たない
図１８では、各サーバＳＶに搭載されるルータ部ＲＴ（ＲＴａまたはＲＴｂ）の数が図３に比べて増えているため、ルータ部ＲＴａ、ＲＴｂのルーティングテーブルＲＴＢＬは、図５に示すルーティングテーブルＲＴＢＬに比べてエントリの数（行数）が多い。情報処理システムＳＹＳ４は、図１５および図１６と同様に動作する。すなわち、図１５および図１６は、情報処理システムＳＹＳ４の制御方法および情報処理システムＳＹＳ４の制御プログラムの一例を示す。
【０１３９】
各サーバＳＶに複数のルータ部ＲＴａ、ＲＴｂと、各ルータ部ＲＴａ、ＲＴｂに接続されるユーザロジック部ＵＬＧを設けることで、各サーバＳＶに配備可能なＩＰコアＩＰの数を、図３に比べて増やすことができる。これにより、回路規模が大きい複数のＩＰコアＩＰがユーザロジック部ＵＬＧに搭載される場合にも、ＩＰコアＩＰをプログラムする機能ブロックＢＬＫが不足する可能性を低くすることができる。換言すれば、ＣＰＵコアＣＲが空いているにも拘わらず、機能ブロックＢＬＫの不足によりＩＰコアＩＰの配備が困難であることに起因して、アプリケーションＡＰＰが配備されない不具合を抑止することができる。
【０１４０】
さらに、各サーバＳＶに複数のルータ部ＲＴａ、ＲＴｂと複数のユーザロジック部ＵＬＧとを設けることで、アプリケーションＡＰＰ（ＳＷ、ＩＰ）を自ノード内に配備できる可能性を高くできる。これにより、アプリケーションＡＰＰ（ＳＷ、ＩＰ）が複数のノードに跨って配備される場合に比べて、ソフトウェアＳＷとＩＰコアＩＰ間での情報の転送速度を高くすることができ、アプリケーションＡＰＰの性能を向上することができる。
【０１４１】
図１９は、図１８に示すルータ部ＲＴによるサーバＳＶ間の接続の一例を示す。図７と同じ要素については、詳細な説明は省略する。図１９に示す例では、情報処理システムＳＹＳ４は、３つのサーバＳＶ００、ＳＶ０１、ＳＶ０２を有し、各サーバＳＶは、Ｘ方向に配列された３個のルータ部ＲＴ（ＲＴｂ００、ＲＴａ１０、ＲＴｂ２０等）を有する。そして、ルータ部ＲＴは、二次元トーラス接続により互いに接続される。なお、情報処理システムＳＹＳ４に搭載されるサーバＳＶの数は３個に限定されず、ルータ部ＲＴの接続手法は、二次元のトーラス接続に限定されない。
【０１４２】
以上、図１８および図１９に示す実施形態においても、図１から図１６に示す実施形態と同様の効果を得ることができる。例えば、ＣＰＵが実行するソフトウェアＳＷの処理性能を低下させることなく、ソフトウェアＳＷとＩＰコアＩＰとを複数のサーバＳＶに配備することができる。また、各サーバＳＶにルータ部ＲＴを設け、ルータ部ＲＴ間を相互に接続することで、ソフトウェアＳＷとＩＰコアＩＰとを複数のサーバＳＶに分散させて効率的に配備することが可能になり、情報処理システムＳＹＳ４の性能を向上することができる。
【０１４３】
ルータ部ＲＴをＦＰＧＡに再構成可能に搭載することで、ルータ部ＲＴとユーザロジック部ＵＬＧとの間の情報の転送を高速に実行することができる。簡易な管理テーブルＭＴＢＬにより、管理サーバＭＳＶによるアプリケーションＡＰＰの配備を管理することができる。図１１に示すＩＤマッピングテーブルＩＤＭＴＢＬにより、ソフトウェアＳＷを実行するＣＰＵコアＣＲとＩＰコアＩＰとの間で、情報を確実に転送することができる。既存のアプリケーションＡＰＰ（ＳＷ、ＩＰ）をそのまま使用して、クラウドサービスを提供することができる。各サーバＳＶのハードウェア構成が変更される場合にも、管理テーブルＭＴＢＬとルーティングテーブルＲＴＢＬとを変更することで、情報処理システムＳＹＳ４の運用を継続することができる。
【０１４４】
さらに、図１８および図１９に示す実施形態では、以下の効果を得ることができる。すなわち、各サーバＳＶに複数のルータ部ＲＴａ、ＲＴｂと複数のユーザロジック部ＵＬＧとを設けることで、ＣＰＵコアＣＲが空いているにも拘わらず、機能ブロックＢＬＫの不足によりアプリケーションＡＰＰが配備されない不具合を抑止することができる。さらに、アプリケーションＡＰＰ（ＳＷ、ＩＰ）を自ノード内に配備できる可能性を高くできる。これにより、アプリケーションＡＰＰ（ＳＷ、ＩＰ）が複数のノードに跨って配備される場合に比べて、ソフトウェアＳＷとＩＰコアＩＰ間での情報の転送速度を高くすることができ、アプリケーションＡＰＰの性能を向上することができる。
【０１４５】
図２０は、情報処理装置、情報処理システム、情報処理システムの制御方法および情報処理システムの制御プログラムの別の実施形態を示す。図１から図１９で説明した要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明は省略する。
【０１４６】
図２０に示す情報処理システムＳＹＳ５は、各サーバＳＶの構成が、図３に示すサーバＳＶの構成と異なることを除き、図３に示す情報処理システムＳＹＳ２と同様である。すなわち、各サーバＳＶは、図１８と同様に、ＣＰＵに直接接続されるルータ部ＲＴａと、ルータ部ＲＴａを介してＣＰＵに接続されるルータ部ＲＴｂとを有する。また、各サーバＳＶのルータ部ＲＴは、図１７と同様に、ＦＰＧＡの外部に設けられ、ＦＰＧＡは、ＩＰコアＩＰがプログラムされるユーザロジック部ＵＬＧを有する。
【０１４７】
情報処理システムＳＹＳ５は、図１５および図１６と同様に動作する。すなわち、図１５および図１６は、情報処理システムＳＹＳ５の制御方法および情報処理システムＳＹＳ５の制御プログラムの一例を示す。以上、図２０に示す実施形態においても、図１から図１９に示す実施形態と同様の効果を得ることができる。
【０１４８】
図２１は、情報処理装置、情報処理システム、情報処理システムの制御方法および情報処理システムの制御プログラムの別の実施形態を示す。図１から図１６で説明した要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明は省略する。
【０１４９】
図２１に示す情報処理システムＳＹＳ６は、ＩＰプールＩＰＰＬを持たず、ＩＰプールＩＰＰＬは、ネットワークＮＷ１に接続されたＩＰ管理サーバＩＰＭＳＶにより管理される。ＩＰ管理サーバＩＰＭＳＶは、情報処理システムＳＹＳ６の外部に設置され、ＩＰプールＩＰＰＬにアプリケーションＡＰＰを登録する管理を実行する。なお、ＩＰ管理サーバＩＰＭＳＶは、ネットワークＮＷ２に接続されてもよい。
【０１５０】
各サーバＳＶは、図３に示すサーバＳＶと同じ構成である。管理サーバＭＳＶは、ＩＰプールＩＰＰＬにアプリケーションＡＰＰを登録する機能と、ＩＰプールＩＰＰＬに格納されたアプリケーションＡＰＰを管理する機能とを持たないことを除き、図３に示す管理サーバＭＳＶと同様の機能を有する。但し、管理サーバＭＳＶは、ＩＰ管理サーバＩＰＭＳＶにアプリケーションＡＰＰの配備の指示およびアプリケーションＡＰＰの削除の指示を発行する機能を有する。
【０１５１】
情報処理システムＳＹＳ６は、図１５および図１６と同様に動作する。すなわち、図１５および図１６は、情報処理システムＳＹＳ６の制御方法および情報処理システムＳＹＳ７の制御プログラムの一例を示す。但し、図１６のステップＳ１３０、Ｓ１４０、Ｓ１７０、Ｓ１８０およびＳ１９０は、管理サーバＭＳＶからのアプリケーションＡＰＰの配備の指示を受信したＩＰ管理サーバＩＰＭＳＶにより実行される。なお、図１５のステップＳ３０、Ｓ４０およびＳ５０も、管理サーバＭＳＶからのアプリケーションＡＰＰの削除の指示を受信したＩＰ管理サーバＩＰＭＳＶにより実行されてもよい。
【０１５２】
ＩＰプールＩＰＰＬをＩＰ管理サーバＩＰＭＳＶに管理させ、管理サーバＭＳＶをアプリケーションＡＰＰの配備の処理に集中させることで、図３に示す情報処理システムＳＹＳ２に比べて、アプリケーションＡＰＰを効率的にサーバＳＶに配備することができる。
【０１５３】
管理サーバＭＳＶとＩＰ管理サーバＩＰＭＳＶとサーバＳＶとは、同じ場所に配置されてもよく、互いに離れた場所に配置されてもよい。例えば、管理サーバＭＳＶとサーバＳＶとを用いてクラウドサービスを提供する事業者と、アプリケーションＡＰＰをクラウドサービスの事業者に提供する事業者とは、互いに相違してもよい。
【０１５４】
なお、情報処理システムＳＹＳ６は、管理サーバＭＳＶに接続された他のＩＰプールＩＰＰＬを有してもよい。すなわち、情報処理システムＳＹＳ６は、図３に示すシステム構成に加えて、ネットワークＮＷ１に接続されたＩＰ管理サーバＩＰＭＳＶとＩＰ管理サーバＩＰＭＳＶに管理されるＩＰプールＩＰＰＬを有してもよい。これにより、ＩＰ管理サーバＩＰＭＳＶがネットワークＮＷ１に接続されない場合に比べて、他の事業者等により新たに開発されたアプリケーションＡＰＰを、迅速に端末装置ＴＭを操作するユーザに提供することができ、ユーザの利便性を向上することができる。
【０１５５】
以上、図２１に示す実施形態においても、図１から図１６に示す実施形態と同様の効果を得ることができる。例えば、ＣＰＵが実行するソフトウェアＳＷの処理性能を低下させることなく、ソフトウェアＳＷとＩＰコアＩＰとを複数のサーバＳＶに配備することができる。また、各サーバＳＶにルータ部ＲＴを設け、ルータ部ＲＴ間を相互に接続することで、ソフトウェアＳＷとＩＰコアＩＰとを複数のサーバＳＶに分散させて効率的に配備することが可能になり、情報処理システムＳＹＳ６の性能を向上することができる。
【０１５６】
ルータ部ＲＴをＦＰＧＡに再構成可能に搭載することで、ルータ部ＲＴとユーザロジック部ＵＬＧとの間の情報の転送を高速に実行することができる。簡易な管理テーブルＭＴＢＬにより、管理サーバＭＳＶによるアプリケーションＡＰＰの配備を管理することができる。図１１に示すＩＤマッピングテーブルＩＤＭＴＢＬにより、ソフトウェアＳＷを実行するＣＰＵコアＣＲとＩＰコアＩＰとの間で、情報を確実に転送することができる。既存のアプリケーションＡＰＰ（ＳＷ、ＩＰ）をそのまま使用して、クラウドサービスを提供することができる。各サーバＳＶのハードウェア構成が変更される場合にも、管理テーブルＭＴＢＬとルーティングテーブルＲＴＢＬとを変更することで、情報処理システムＳＹＳ６の運用を継続することができる。
【０１５７】
さらに、図２１に示す実施形態では、ＩＰプールＩＰＰＬをＩＰ管理サーバＩＰＭＳＶに管理させることで、管理サーバＭＳＶは、図３に示す管理サーバＭＳＶに比べて、アプリケーションＡＰＰを効率的にサーバＳＶに配備することができる。
【０１５８】
図２２は、情報処理装置、情報処理システム、情報処理システムの制御方法および情報処理システムの制御プログラムの別の実施形態におけるサーバに配備されたアプリケーションの一例を示す。図１から図１６で説明した要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明は省略する。
【０１５９】
図２２に示す情報処理システムＳＹＳ７は、各サーバＳＶのＣＰＵが仮想マシンＶＭを起動し、仮想マシンＶＭによりソフトウェアＳＷを実行する。また、情報処理システムＳＹＳ７は、管理サーバＭＳＶによるアプリケーションＡＰＰの配備の制御が、図３に示す管理サーバＭＳＶによるアプリケーションＡＰＰの配備の制御と異なる。情報処理システムＳＹＳ７の他の要素は、図３に示す情報処理システムＳＹＳ２、図１７に示す情報処理システムＳＹＳ３、図１８に示す情報処理システムＳＹＳ４、図２０に示す情報処理システムＳＹＳ５、図２１に示す情報処理システムＳＹＳ６と同様である。
【０１６０】
図２２において、ソフトウェアＳＷ、仮想マシンＶＭおよびＩＰコアＩＰの末尾に示す数字は、互いの対応関係を示す。例えば、ソフトウェアＳＷ１とＩＰコアＩＰ１とは１つのアプリケーションＡＰＰに含まれ、ソフトウェアＳＷ１は、仮想マシンＶＭ１により実行される。太い実線で示すソフトウェアＳＷ９とＩＰコアＩＰ９、および太い点線で示すソフトウェアＳＷ１０とＩＰコアＩＰ１０は、図８と同様に、２個のサーバＳＶに跨って配備されることを示す。
【０１６１】
情報処理システムＳＹＳ７の管理サーバＭＳＶは、図９と同様の管理テーブルＭＴＢＬを有する。但し、管理テーブルＭＴＢＬは、各サーバＳＶにおける仮想マシンＶＭ毎に、仮想マシンＶＭの使用／未使用を示す情報を格納するフラグ領域ＦＬＧと、動作させるソフトウェアＳＷの名称を示す情報を格納するＳＷ名領域と有する。ソフトウェアＳＷを仮想マシンＶＭ毎に割り当てることで、簡易な管理テーブルＭＴＢＬにより、管理サーバＭＳＶによるアプリケーションＡＰＰの配備を管理することができる。
【０１６２】
図２３は、図２２に示すアプリケーションＡＰＰが配備された状態の一例を示す。図１３と同じ要素については、詳細な説明は省略する。図２３は、網掛けで示すアプリケーションＡＰＰ９（ＳＷ９、ＩＰ９）およびアプリケーションＡＰＰ１０（ＳＷ１０、ＩＰ１０）が、新たに配備された状態を示す。
【０１６３】
図２２に示す情報処理システムＳＹＳ７では、管理サーバＭＳＶは、ＣＰＵの稼働率に基づいて、仮想マシンＶＭによりソフトウェアＳＷを実行するサーバＳＶを決定する。例えば、管理サーバＭＳＶは、新たに仮想マシンＶＭを起動してソフトウェアＳＷを実行した場合のＣＰＵの稼働率が９５％以下であると予測される場合、仮想マシンＶＭを起動してソフトウェアＳＷを実行可能と判断する。また、管理サーバＭＳＶは、ユーザロジック部ＵＬＧの使用率に基づいて、ＩＰコアＩＰを搭載するユーザロジック部ＵＬＧを決定する。例えば、管理サーバＭＳＶは、新たなＩＰコアＩＰをプログラムした場合のユーザロジック部ＵＬＧの使用率１００％以下であると予測される場合、ＩＰコアＩＰをプログラム可能と判断する。
【０１６４】
図２３に示す例では、管理サーバＭＳＶは、端末装置ＴＭから配備を要求されたアプリケーションＡＰＰ９のソフトウェアＳＷ９を、サーバＳＶ００のＣＰＵで実行した場合、ＣＰＵの稼働率が９５％以下であると予測する。一方、管理サーバＭＳＶは、ソフトウェアＳＷ９を、サーバＳＶ１１またはサーバＳＶ２２のＣＰＵで実行した場合、ＣＰＵの稼働率が９５％を超えると予測する。このため、管理サーバＭＳＶは、サーバＳＶ００のＣＰＵ上に仮想マシンＶＭを起動し、起動した仮想マシンＶＭにソフトウェアＳＷ９を実行させる。同様に、管理サーバＭＳＶは、ソフトウェアＳＷ１０を、ソフトウェアＳＷ９を実行中のサーバＳＶ００のＣＰＵ上に新たに起動した仮想マシンＶＭで実行させる。
【０１６５】
また、管理サーバＭＳＶは、端末装置ＴＭから配備を要求されたアプリケーションＡＰＰ９のＩＰコアＩＰ９を、サーバＳＶ００のユーザロジック部ＵＬＧにプログラムした場合、ユーザロジック部ＵＬＧの使用率が１００％を超えると予測する。一方、管理サーバＭＳＶは、ＩＰコアＩＰ９をサーバＳＶ１１またはサーバＳＶ２２のユーザロジック部ＵＬＧにプログラムした場合、ユーザロジック部ＵＬＧの使用率が１００％以下であると予測する。このため、管理サーバＭＳＶは、ＩＰコアＩＰ９をサーバＳＶ１１のユーザロジック部ＵＬＧにプログラムする。また、管理サーバＭＳＶは、ＩＰコアＩＰ９のプログラム後、ＩＰコアＩＰ１０をサーバＳＶ２２のユーザロジック部ＵＬＧにプログラムする。
【０１６６】
なお、管理サーバＭＳＶは、図１２および図１３に示すように、未使用の機能ブロックＢＬＫの数に応じて、ＩＰコアＩＰをユーザロジック部ＵＬＧにプログラムしてもよい。
【０１６７】
図２４は、図２２に示す情報処理システムＳＹＳ７の管理サーバＭＳＶが実行するアプリケーションＡＰＰの配備処理の一例を示す。図１６と同じ処理については、詳細な説明は省略する。
【０１６８】
図２４に示す動作は、図２２に示す情報処理システムＳＹＳ７が実行する制御プログラムにより実現される。すなわち、図２４は、情報処理システムＳＹＳ７の制御方法および情報処理システムＳＹＳ７の制御プログラムの一例を示す。また、図２２に示す情報処理システムＳＹＳ７の管理サーバＭＳＶは、図１５に示す処理を実行し、図１５に示すステップＳ１００の代わりに、図２４に示すステップＳ２００の処理を実行する。
【０１６９】
まず、ステップＳ２１０において、管理サーバＭＳＶは、各サーバＳＶにおけるＣＰＵの稼働率とユーザロジック部ＵＬＧの使用率とを検出する。
【０１７０】
次に、ステップＳ２２０において、図１６に示すステップＳ１２０と同様に、管理サーバＭＳＶは、アプリケーションＡＰＰ（ＳＷ、ＩＰ）を１つのサーバＳＶに配備可能か否かを判定する。ソフトウェアＳＷとＩＰコアＩＰとを１つのサーバＳＶに配備可能な場合、処理はステップＳ２３０に移行され、ソフトウェアＳＷとＩＰコアＩＰとを互いに異なるサーバＳＶに配備する場合、処理はステップＳ２５０に移行される。
【０１７１】
ステップＳ２３０において、管理サーバＭＳＶは、ステップＳ２２０で判定したサーバＳＶのＣＰＵに仮想マシンＶＭを起動し、ステップＳ２２０で判定したサーバＳＶのＨＤＤに、新たに配備するアプリケーションＡＰＰのソフトウェアＳＷをインストールする。
【０１７２】
次に、ステップＳ２４０において、管理サーバＭＳＶは、ステップＳ２２０で判定したサーバＳＶのユーザロジック部ＵＬＧにＩＰコアＩＰをプログラムする。これにより、新たに配備したアプリケーションＡＰＰの情報処理システムＳＹＳ７上での動作が可能になる。
【０１７３】
一方、ソフトウェアＳＷとＩＰコアＩＰとを異なるサーバＳＶに配備する場合、ステップＳ２５０において、管理サーバＭＳＶは、ソフトウェアＳＷを動作可能なＣＰＵが存在するか否かを判定する。すなわち、管理サーバＭＳＶは、新たに配備するアプリケーションＡＰＰのソフトウェアＳＷをＣＰＵの仮想マシンＶＭ上で実行する場合にも、ＣＰＵの稼働率が９５％以下になるか否かを判定する。ソフトウェアＳＷを動作可能なＣＰＵが存在する場合、処理はステップＳ２６０に移行され、ソフトウェアＳＷを動作可能なＣＰＵが存在しない場合、アプリケーションＡＰＰの配備が困難なため、処理は終了する。
【０１７４】
ステップＳ２６０において、管理サーバＭＳＶは、ＩＰコアＩＰをプログラム可能なユーザロジック部ＵＬＧが存在するか否かを判定する。すなわち、管理サーバＭＳＶは、新たに配備するアプリケーションＡＰＰのＩＰコアＩＰをユーザロジック部ＵＬＧにプログラムする場合にも、ユーザロジック部ＵＬＧの使用率が１００％以下になるか否かを判定する。ＩＰコアＩＰをプログラム可能なユーザロジック部ＵＬＧが存在する場合、処理はステップＳ２７０に移行され、ＩＰコアＩＰをプログラム可能なユーザロジック部ＵＬＧが存在しない場合、アプリケーションＡＰＰの配備が困難なため、処理は終了する。
【０１７５】
ステップＳ２７０において、管理サーバＭＳＶは、ステップＳ２５０で判定したソフトウェアＳＷを動作可能なＣＰＵのうち、ソフトウェアＳＷを実行させるＣＰＵに仮想マシンＶＭを起動する。また、管理サーバＭＳＶは、仮想マシンＶＭを起動したサーバＳＶのＨＤＤに、新たに配備するアプリケーションＡＰＰのソフトウェアＳＷをインストールする。
【０１７６】
次に、ステップＳ２８０において、管理サーバＭＳＶは、ステップＳ２６０で判定したＩＰコアＩＰをプログラム可能なユーザロジック部ＵＬＧのいずかにＩＰコアＩＰをプログラムする。
【０１７７】
次に、ステップＳ２９０において、管理サーバＭＳＶは、新たに配備したアプリケーションＡＰＰ（ＳＷ、ＩＰ）に基づいて、図１１に示すＩＤマッピングテーブルＩＤＭＴＢＬの対応テーブルＴＢＬＡ、ＴＢＬＢを更新し、処理を終了する。
【０１７８】
以上、図２２から図２４に示す実施形態においても、図１から図２１に示す実施形態と同様の効果を得ることができる。例えば、ＣＰＵが実行するソフトウェアＳＷの処理性能を低下させることなく、ソフトウェアＳＷとＩＰコアＩＰとを複数のサーバＳＶに配備することができる。また、各サーバＳＶにルータ部ＲＴを設け、ルータ部ＲＴ間を相互に接続することで、ソフトウェアＳＷとＩＰコアＩＰとを複数のサーバＳＶに分散させて効率的に配備することが可能になり、情報処理システムＳＹＳ７の性能を向上することができる。
【０１７９】
ルータ部ＲＴをＦＰＧＡに再構成可能に搭載することで、ルータ部ＲＴとユーザロジック部ＵＬＧとの間の情報の転送を高速に実行することができる。図１１に示すＩＤマッピングテーブルＩＤＭＴＢＬにより、ソフトウェアＳＷを実行する仮想マシンＶＭとＩＰコアＩＰとの間で、情報を確実に転送することができる。既存のアプリケーションＡＰＰ（ＳＷ、ＩＰ）をそのまま使用して、クラウドサービスを提供することができる。各サーバＳＶのハードウェア構成が変更される場合にも、管理テーブルＭＴＢＬとルーティングテーブルＲＴＢＬとを変更することで、情報処理システムＳＹＳ７の運用を継続することができる。
【０１８０】
さらに、図２２から図２４に示す実施形態では、ソフトウェアＳＷを仮想マシンＶＭ毎に割り当てることで、簡易な管理テーブルＭＴＢＬにより、管理サーバＭＳＶによるアプリケーションＡＰＰの配備を管理することができる。
【０１８１】
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【符号の説明】
【０１８２】
ＡＰＰ…アプリケーション；ＡＲＢ…調停部；ＢＬＫ…機能ブロック；ＣＩＦ…インタフェース部；ＣＰＵ…プロセッサ；ＣＲ…ＣＰＵコア；ＦＩＦ…インタフェース部；ＦＰＧＡ…プログラマブル部；ＨＬＤ…保持部；ＩＤＭＴＢＬ…ＩＤマッピングテーブル；ＩＰ…ＩＰコア；ＩＰＭＳＶ…ＩＰ管理サーバ；ＩＰＰＬ…ＩＰプール；ＭＥＭ…メモリ；ＭＳＶ…管理サーバ；ＭＴＢＬ…管理テーブル；ＮＷ１、ＮＷ２…ネットワーク；Ｐ…ポート；ＲＴ…ルータ部；ＲＴＢＬ…ルーティングテーブル；ＳＶ…サーバ；ＳＷ…ソフトウェア；ＳＷＣＮＴ…スイッチ制御信号；ＳＹＳ１、ＳＹＳ２、ＳＹＳ３、ＳＹＳ４、ＳＹＳ５、ＳＹＳ６、ＳＹＳ７…情報処理システム；ＴＭ…端末装置；ＵＬＧ…ユーザロジック部；ＸＢＡＲ…クロスバースイッチ
【図１】
0006589698.tif 000002
【図２】
0006589698.tif 000003
【図３】
0006589698.tif 000004
【図４】
0006589698.tif 000005
【図５】
0006589698.tif 000006
【図６】
0006589698.tif 000007
【図７】
0006589698.tif 000008
【図８】
0006589698.tif 000009
【図９】
0006589698.tif 000010
【図１０】
0006589698.tif 000011
【図１１】
0006589698.tif 000012
【図１２】
0006589698.tif 000013
【図１３】
0006589698.tif 000014
【図１４】
0006589698.tif 000015
【図１５】
0006589698.tif 000016
【図１６】
0006589698.tif 000017
【図１７】
0006589698.tif 000018
【図１８】
0006589698.tif 000019
【図１９】
0006589698.tif 000020
【図２０】
0006589698.tif 000021
【図２１】
0006589698.tif 000022
【図２２】
0006589698.tif 000023
【図２３】
0006589698.tif 000024
【図２４】
0006589698.tif 000025