(57)【要約】      （修正有）【課題】ＦＰＧＡを搭載したサーバを有するサーバシステムの利用効率を上げる。【解決手段】プログラム可能な回路２２を備えるサーバ装置２０であって、プログラム可能な回路２２が実施する機能に応じて設定されるコア部２１１と、プログラム可能な回路２２が実施可能な各機能に共通の機能が予め設定された共通部２１２とを含む。さらに、サーバ装置２０は、プログラム可能な回路２２が実施する機能に応じて予め設けられた機能パッケージ１２１を受信すると、受信した機能パッケージ１２１に含まれる、プログラム可能な回路２２が実施する機能に応じたコアをコア部２１１に書き込む。【選択図】図１
2018136618.tif 000002
【特許請求の範囲】
【請求項１】
プログラム可能な回路を備えるサーバ装置であって、
前記サーバ装置は、前記プログラム可能な回路が実施する機能に応じて設定されるコア部と、前記プログラム可能な回路が実施可能な各機能に共通の機能が予め設定された共通部と、を含み、
前記サーバ装置は、前記プログラム可能な回路が実施する機能に応じて予め設けられた機能パッケージを受信すると、受信した機能パッケージに含まれる、前記プログラム可能な回路が実施する機能に応じたコアを前記コア部に書き込む
サーバ装置。
【請求項２】
請求項１に記載のサーバ装置であって、
前記機能パッケージには、前記プログラム可能な回路が実施する機能に応じたアプリケーションが含まれている
サーバ装置。
【請求項３】
請求項２に記載のサーバ装置であって、
前記機能パッケージには、前記プログラム可能な回路が実施可能な各機能に共通の共通基盤ドライバが含まれており、
前記アプリケーションは、前記コア部に対する前記コアの書き込みを行うよう前記共通基盤ドライバに対して指示し、
前記共通基盤ドライバは、前記指示に応じて、前記共通部を介して前記コア部に対する前記コアの書き込みを行う
サーバ装置。
【請求項４】
請求項１乃至３のいずれかに記載のサーバ装置であって、
前記機能パッケージには、前記プログラム可能な回路が実施する機能に応じたＯＳ（Operating System）が含まれている
サーバ装置。
【請求項５】
請求項１乃至４の何れかに記載のサーバ装置であって、
前記プログラム可能な回路は、ＦＰＧＡ（field-programmable gate array）である
サーバ装置。
【請求項６】
プログラム可能な回路を備えるサーバ装置により実行されるサーバ制御方法であって、
前記サーバ装置は、前記プログラム可能な回路が実施する機能に応じて設定されるコア部と、前記プログラム可能な回路が実施可能な各機能に共通の機能が予め設定された共通部と、を含み、
前記サーバ装置は、前記プログラム可能な回路が実施する機能に応じて予め設けられた機能パッケージを受信すると、受信した機能パッケージに含まれる、前記プログラム可能な回路が実施する機能に応じたコアを前記コア部に書き込む
サーバ制御方法。
【請求項７】
プログラム可能な回路を備えるサーバ装置に、
前記プログラム可能な回路が実施する機能に応じて設定されるコア部と、前記プログラム可能な回路が実施可能な各機能に共通の機能が予め設定された共通部と、を実現させ、
前記サーバ装置は、前記プログラム可能な回路が実施する機能に応じて予め設けられた機能パッケージを受信すると、受信した機能パッケージに含まれる、前記プログラム可能な回路が実施する機能に応じたコアを前記コア部に書き込む
プログラム。
【請求項８】
制御装置と、プログラム可能な回路を有するサーバ装置と、を有するサーバシステムであって、
前記制御装置は、前記プログラム可能な回路が実施する機能に応じて予め作成された複数の機能パッケージと、ユーザからの問い合わせに応じて前記機能パッケージを前記サーバ装置に送信する管理部と、を有し、
前記サーバ装置は、前記プログラム可能な回路が実施する機能に応じて設定されるコア部と、前記プログラム可能な回路が実施可能な各機能に共通の機能が予め設定された共通部と、を含み、
前記サーバ装置は、前記プログラム可能な回路が実施する機能に応じて予め設けられた機能パッケージを受信すると、受信した機能パッケージに含まれる、前記プログラム可能な回路が実施する機能に応じたコアを前記コア部に書き込む
サーバシステム。
【請求項９】
請求項８に記載のサーバシステムであって、
前記機能パッケージには、前記プログラム可能な回路が実施する機能に応じたアプリケーションが含まれている
サーバシステム。
【請求項１０】
請求項９に記載のサーバシステムであって、
前記機能パッケージには、前記プログラム可能な回路が実施可能な各機能に共通の共通基盤ドライバが含まれており、
前記アプリケーションは、前記コア部に対する前記コアの書き込みを行うよう前記共通基盤ドライバに対して指示し、
前記共通基盤ドライバは、前記指示に応じて、前記共通部を介して前記コア部に対する前記コアの書き込みを行う
サーバシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバ装置、サーバ制御方法、プログラム、サーバシステムに関し、特に、ＨＷ（hardware）アクセラレータを有するサーバ装置、サーバ制御方法、プログラム、サーバシステムに関する。
【背景技術】
【０００２】
性能を向上させるため、ＨＷアクセラレータを有し当該ＨＷアクセラレータと連携して処理を行うサーバ装置が知られている。ＨＷアクセラレータとしては、例えば、ＦＰＧＡ（field-programmable gate array）がある。ＦＰＧＡは、例えばＧＰＵ（Graphics Processing Unit）などと比較して性能面で優位であり、かつ、消費電力を抑えることが出来る。また、ＦＰＧＡは、外部通信機能も有することが可能であり、ＨＷアクセラレータの中でも利用の柔軟性に優れている。
【０００３】
このようなＦＰＧＡを用いるシステムとして、例えば、特許文献１が知られている。特許文献１には、ユーザに対して１つまたは複数のＦＰＧＡへの共用アクセスなどのサービスを提供するデータセンタが記載されている。具体的には、データセンタは、ユーザから受け取った設計パッケージに管理ペイロードを付与するとともに、管理ペイロードに適合するユーザキーを作成する。そして、データセンサは、ユーザキーを用いた選択的なアクセスを提供する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２０１５−５０７２３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＦＰＧＡを搭載した複数台のサーバによりシステムを構成する場合、サーバごとにＦＰＧＡによるアクセラレーションを行う機能が固定していることになる。そのため、ユーザからリクエストされる機能や時間帯によっては、利用可能なユーザ数が限定される、又は、サーバ台数に過剰が出るなど、利用効率が上がらないという問題があった。
【０００６】
また、特許文献１に記載されている技術は、受け取った設計パッケージに応じてＦＰＧＡ全体を再構成することになる。そのため、ＦＰＧＡ全体を構成するための設計パッケージを開発することが必要となり、設計パックを開発する規模が大きくなるおそれがあった。さらに、特許文献１に記載されている技術の場合、ユーザが設計パッケージを作成することが必要になる。そのため、ユーザの負担が増加することが考えられる。以上からすると、特許文献１の技術を用いたとしても、上記問題を解決することは難しかった。
【０００７】
以上のように、ＦＰＧＡを搭載したサーバを有するサーバシステムの利用効率を上げることが難しい、という問題が生じていた。
【０００８】
そこで、本発明の目的は、ＦＰＧＡを搭載したサーバを有するサーバシステムの利用効率を上げることが難しい、という問題を解決するサーバ装置、サーバ制御方法、プログラム、サーバシステムを提供することにある。
【課題を解決するための手段】
【０００９】
かかる目的を達成するため本発明の一形態であるサーバ装置は、
プログラム可能な回路を備えるサーバ装置であって、
前記サーバ装置は、前記プログラム可能な回路が実施する機能に応じて設定されるコア部と、前記プログラム可能な回路が実施可能な各機能に共通の機能が予め設定された共通部と、を含み、
前記サーバ装置は、前記プログラム可能な回路が実施する機能に応じて予め設けられた機能パッケージを受信すると、受信した機能パッケージに含まれる、前記プログラム可能な回路が実施する機能に応じたコアを前記コア部に書き込む
という構成を採る。
【００１０】
また、本発明の他の形態であるサーバ制御方法は、
プログラム可能な回路を備えるサーバ装置により実行されるサーバ制御方法であって、
前記サーバ装置は、前記プログラム可能な回路が実施する機能に応じて設定されるコア部と、前記プログラム可能な回路が実施可能な各機能に共通の機能が予め設定された共通部と、を含み、
前記サーバ装置は、前記プログラム可能な回路が実施する機能に応じて予め設けられた機能パッケージを受信すると、受信した機能パッケージに含まれる、前記プログラム可能な回路が実施する機能に応じたコアを前記コア部に書き込む
という構成を採る。
【００１１】
また、本発明の他の形態であるプログラムは、
プログラム可能な回路を備えるサーバ装置に、
前記プログラム可能な回路が実施する機能に応じて設定されるコア部と、前記プログラム可能な回路が実施可能な各機能に共通の機能が予め設定された共通部と、を実現させ、
前記サーバ装置は、前記プログラム可能な回路が実施する機能に応じて予め設けられた機能パッケージを受信すると、受信した機能パッケージに含まれる、前記プログラム可能な回路が実施する機能に応じたコアを前記コア部に書き込む
処理を実現させるためのプログラムである。
【００１２】
また、本発明の他の形態であるサーバシステムは、
制御装置と、プログラム可能な回路を有するサーバ装置と、を有するサーバシステムであって、
前記制御装置は、前記プログラム可能な回路が実施する機能に応じて予め作成された複数の機能パッケージと、ユーザからの問い合わせに応じて前記機能パッケージを前記サーバ装置に送信する管理部と、を有し、
前記サーバ装置は、前記プログラム可能な回路が実施する機能に応じて設定されるコア部と、前記プログラム可能な回路が実施可能な各機能に共通の機能が予め設定された共通部と、を含み、
前記サーバ装置は、前記プログラム可能な回路が実施する機能に応じて予め設けられた機能パッケージを受信すると、受信した機能パッケージに含まれる、前記プログラム可能な回路が実施する機能に応じたコアを前記コア部に書き込む
という構成を採る。
【発明の効果】
【００１３】
本発明は、以上のように構成されることにより、ＦＰＧＡを搭載したサーバを有するサーバシステムの利用効率を上げることが難しい、という問題を解決するサーバ装置、サーバ制御方法、プログラム、サーバシステムを提供することが可能となる。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１の実施形態に係るシステムの全体の構成の一例を示す図である。
【図２】記憶装置に格納される機能パッケージの一例を示す図である。
【図３】システムにより行われる処理の具体的な一例について示す図である。
【図４】本発明の第１の実施形態に係るＦＰＧＡアクセラレータ制御システムとサーバ装置の処理の一例を示すフローチャートである。
【図５】本発明の第２の実施形態に係るサーバ装置の構成の一例を示す概略ブロック図である。
【図６】本発明の第２の実施形態に係るサーバシステムの構成の一例を示す概略ブロック図である。
【発明を実施するための形態】
【００１５】
［第１の実施形態］
本発明の第１の実施形態を図１乃至図４を参照して説明する。図１は、本発明の第１の実施形態に係るシステムの全体の構成の一例を示す図である。図２は、記憶装置１２に格納される機能パッケージ１２１の一例を示す図である。図３は、処理の具体的な一例について示す図である。図４は、ＦＰＧＡアクセラレータ制御システム１０とサーバ装置２０の処理の一例を示すフローチャートである。
【００１６】
第１の実施形態では、プログラム可能な回路であるＦＰＧＡ（field-programmable gate array）２２を有するサーバ装置２０を複数備えるサーバシステム１について説明する。本実施形態におけるサーバシステム１は、ＦＰＧＡ２２が実施する各種機能（例えば、ビッグデータ等大量データの分析機能、顔認証や人物行動等の画像分析機能など。例示した以外の機能でも構わない）に応じた機能パッケージ１２１を複数有している。後述するように、サーバシステム１は、ユーザからのリクエストに応じて、リクエストされた機能パッケージ１２１をサーバ装置２０へダウンロードする。また、サーバ装置２０は、ダウンロードされた機能パッケージ１２１を展開して、機能パッケージ１２１に含まれるＦＰＧＡコアをＦＰＧＡコア部２１１に書き込む。本実施形態においては、例えば、このようにして、リクエストされた機能に適したＦＰＧＡ２２の構築を行う。
【００１７】
図１を参照すると、本実施形態において説明する機能実行システムは、例えば、サーバシステム１とユーザ装置４とを有している。サーバシステム１とユーザ装置４とは、例えば、インターネットなどのネットワーク５を介して互いに通信可能なよう接続されている。
【００１８】
サーバシステム１は、例えば、複数のサーバ装置２０を管理するデータセンタなどである。サーバシステム１は、ＦＰＧＡアクセラレータ制御システム１０と、複数のサーバ装置２０と、を有している。ＦＰＧＡアクセラレータ制御システム１０とサーバ装置２０とは、例えば、ＬＡＮ（Local Area Network）３０を介して、互いに通信可能なよう接続されている。
【００１９】
なお、本実施形態においては、サーバシステム１が有するサーバ装置２０の数は特に限定しない。サーバシステム１は、たとえば、１つや２つのサーバ装置２０から構成されていても構わないし、３以上の任意の数のサーバ装置２０から構成されていても構わない。
【００２０】
ＦＰＧＡアクセラレータ制御システム１０は、例えばサーバ装置などの情報処理装置である。ＦＰＧＡアクセラレータ制御システム１０は、ユーザからのリクエストに応じて、自身が有する記憶装置１２に格納された機能パッケージ１２１をサーバ装置２０にダウンロードする。また、ＦＰＧＡアクセラレータ制御システム１０は、ユーザからのリクエストに応じたサーバ装置２０の構築が終了すると、準備が完了した旨と準備が完了したサーバ装置２０のログイン情報をユーザ装置４へ通知する。
【００２１】
図１を参照すると、ＦＰＧＡアクセラレータ制御システム１０は、管理マネージャ１１と、記憶装置１２と、を有している。また、記憶装置１２には、複数種類の機能パッケージ１２１が格納されている。
【００２２】
なお、ＦＰＧＡアクセラレータ制御システム１０は、例えば、図示しない記憶装置と図示しない演算装置とを有している。ＦＰＧＡアクセラレータ制御システム１０は、例えば、図示しない記憶装置に格納されたプログラムを図示しない演算装置が実行することで、管理マネージャ１１を実現する。
【００２３】
管理マネージャ１１は、ユーザ装置４からのリクエストに応じた処理を行うとともに、リクエストに応じた準備が完了した旨やサーバ装置２０のログイン情報をユーザ装置４へ送信する。また、管理マネージャ１１は、サーバ装置２０のユーザ装置４による利用状況を管理するよう構成することが出来る。
【００２４】
例えば、管理マネージャ１１は、ユーザからのリクエストを受信する。すると、管理マネージャ１１は、受信したリクエストに応じて、記憶装置１２に格納された機能パッケージ１２１の一覧をユーザ装置４に対して出力する。また、管理マネージャ１１は、出力した一覧の中からユーザにより選択された機能パッケージ１２１を、サーバ装置２０へダウンロードする。この際、管理マネージャ１１は、例えば、サーバ装置２０のうちユーザ装置４により利用されていないサーバ装置２０へ機能パッケージ１２１をダウンロードする。なお、本実施形態においては、管理マネージャ１１による機能パッケージ１２１をダウンロードするサーバ装置２０の決定方法については、特に限定しない。管理マネージャ１１は、既知の様々な方法を用いて、ダウンロード先のサーバ装置２０を決定するよう構成して構わない。
【００２５】
また、管理マネージャ１１は、サーバ装置２０にダウンロードした機能パッケージ１２１をサーバ装置２０上で展開する。そして、管理マネージャ１１は、展開したＯＳ（Operating System）、ＦＰＧＡ共通基盤ドライバなどのインストールを行う。なお、機能パッケージ１２１がＯＳイメージの場合は、機能パッケージ１２１を展開するだけで構わない。
【００２６】
また、サーバ装置２０の準備が完了すると、管理マネージャ１１は、サーバ装置２０から準備完了の通知を受け取る。すると、管理マネージャ１１は、ユーザ装置４に対して、準備が完了した旨を通知する。また、管理マネージャ１１は、ユーザからのリクエストに応じて準備を行ったサーバ装置２０へのログイン情報をユーザ装置４へ通知する。
【００２７】
このように、管理マネージャ１１は、ユーザからのリクエストに基づく制御やサーバ装置２０の管理など、全体的な制御・管理を実行する。
【００２８】
記憶装置１２は、メモリやハードディスクなどの記憶装置である。記憶装置１２には、複数種類の機能パッケージ１２１が格納されている。
【００２９】
機能パッケージ１２１は、ＦＰＧＡ２２によるアクセラレーションを行う機能ごとに予め設けられた情報である。機能パッケージ１２１の具体的な例としては、例えば、ビッグデータなどのデータ分析機能に応じたパッケージや、画像分析機能に応じたパッケージなどがある。図２を参照すると、機能パッケージ１２１には、例えば、ＯＳ、ＦＰＧＡ共通基盤ドライバ、アプリケーション、ＦＰＧＡコア、などが含まれている。例えば、図２の１行目は、機能パッケージ１２１−Ａには、ＯＳと、ＦＰＧＡ共通基盤ドライバと、アプリケーションＡと、ＦＰＧＡコアＡと、が含まれていることを示している。
【００３０】
図２中のＯＳは、サーバ装置２０の管理・制御などを行うソフトウェアである。ＯＳは、機能パッケージ１２１により実現されるＦＰＧＡ２２が実施する機能に応じて設定されていても構わないし、各機能パッケージ１２１で共通するＯＳが設定されていても構わない。換言すると、図２中のＯＳは、機能パッケージ１２により実現する機能に特化した機能を有するＯＳであっても構わない。図２中のＦＰＧＡ共通基盤ドライバは、ＦＰＧＡ共通基盤２１を制御する。ＦＰＧＡ共通基盤ドライバは、たとえば、各機能で共通である。図２中のアプリケーションは、機能パッケージ１２１により実現されるＦＰＧＡ２２が実施する機能に応じた機能を有しており、ユーザとのＩ／Ｆ（interface）や機能の実行を行う。アプリケーションには、例えば、データ分析機能を有するアプリケーションや画像分析機能を有するアプリケーションなどが含まれ得る。アプリケーションは、一つのアプリケーションのみから構成されていても構わないし、複数のアプリケーションから構成されていても構わない。図２中のＦＰＧＡコアは、ＦＰＧＡ共通基盤２１を機能パッケージ１２１により実現される機能用にコンフィグレーション（設定）する際に必要な情報から構成されている。後述するように、ＦＰＧＡコアは、ＦＰＧＡ共通部２１２によりＦＰＧＡコア部２１１に書き込まれることになる。
【００３１】
なお、機能パッケージ１２１は、ＯＳイメージとして提供されても構わない。また、本実施形態においては、記憶装置１２に格納する機能パッケージ１２１の数は特に限定しない。記憶装置１２には、１つ又は２つの機能パッケージ１２１が格納されていても構わないし、３つ以上の機能パッケージ１２１が格納されていても構わない（２つ以上の複数の機能パッケージ１２１が格納されていることが望ましい）。
【００３２】
サーバ装置２０は、ＨＷ（hardware）アクセラレータであるＦＰＧＡ２２と連携して自身に割り当てられた各種処理などを実施する。図１を参照すると、サーバ装置２０は、ＦＰＧＡ共通基盤２１と、ＦＰＧＡ２２とを有している。
【００３３】
なお、サーバ装置２０は、例えば、図示しない記憶装置と図示しない演算装置とを有している。サーバ装置２０は、例えば、図示しない記憶装置に格納されたプログラムを図示しない演算装置が実行することで、ＦＰＧＡ共通基盤２１を実現する。ＦＰＧＡ共通基盤２１は、論理回路などにより実現されても構わない。
【００３４】
ＦＰＧＡ共通基盤２１は、各機能向けにＦＰＧＡ２２をコンフィグレーション（設定）する際などに用いる。ＦＰＧＡ共通基盤２１は、各機能に特化した、機能パッケージ１２１に含まれるＦＰＧＡコアを書き込むＦＰＧＡコア部２１１と、各機能共通の機能を持つＦＰＧＡ共通部２１２と、を有している。
【００３５】
ＦＰＧＡコア部２１１には、ＦＰＧＡ共通部２１２により、機能パッケージ１２１に含まれるＦＰＧＡコアが書き込まれる。ＦＰＧＡコア部２１１にＦＰＧＡコアを書き込むことで、ＦＰＧＡ２２が機能パッケージ１２１により実施しようとする機能を有することになる。
【００３６】
ＦＰＧＡ共通部２１２は、ＦＰＧＡコア部２１１に対するコンフィグレーション機能や種々のコントローラ機能、ＦＰＧＡ共通基盤２１やＦＰＧＡ２２を監視する機能など、機能パッケージ１２１により実施しようとする機能によらない、各機能に共通する機能を有している。ＦＰＧＡ共通部２１２は、例えば、ＦＰＧＡコア部２１１への書き込み機能などＦＰＧＡコア部２１１のコンフィグレーション機能を有している。また、ＦＰＧＡ共通部２１２は、例えば、メモリコントローラ、ＰＣＩｅ（PCI-Express）コントローラ、ＤＭＡ（Direct Memory Access）エンジンなどの機能を有することが出来る。ＦＰＧＡ共通部２１２は、ＦＰＧＡ共通基盤２１の温度監視機能やＤＭＡの監視機能（メモリエラーなどの異常検出機能）、ＷＤＴ（watchdog timer）によるアプリケーションなどの死活監視機能、電圧監視機能などのＲＡＳ（Remote Access Service）系の機能を有することも出来る。ＦＰＧＡ共通部２１２は、性能情報採取機能、サーバ装置２０が有する図示しないＣＰＬＤ（Complex Programmable Logic Device）のアップデート機能、電力やファンの制御機能、暗号化機能などを有しても構わない。なお、ＦＰＧＡ共通部２１２は、上記例示したうちの一部の機能を有しても構わないし、また、上記例示していない機能を有しても構わない。
【００３７】
ＦＰＧＡ２２は、プログラム可能な回路（ゲートアレイ）である。ＦＰＧＡ２２は、ＦＰＧＡコア部２１１に書き込まれたＦＰＧＡコアに応じた機能を実施する。
【００３８】
このような構成のサーバ装置２０に、ユーザ装置４からのリクエストに応じた機能パッケージ１２１がダウンロードされ展開される。以下、サーバ装置２０に機能パッケージ１２１がダウンロードされた後の一例について、図３を参照して説明する。
【００３９】
例えば、図３で示す場合、サーバ装置２０に図２で示す機能パッケージ１２１−Ａがダウンロードされた場合を示している。この場合、サーバ装置２０には、機能パッケージ１２１−Ａがダウンロードされ、ＯＳ−Ａ、ＦＰＧＡ共通基盤ドライバ、アプリケーションＡ、ＦＰＧＡコアＡが展開される。すると、サーバ装置２０は、展開されたＯＳ―Ａ、ＦＰＧＡ共通基盤ドライバなどのインストールを行う。また、サーバ装置２０にインストールされたＦＰＧＡ共通基盤ドライバは、ＦＰＧＡ共通基盤２１の初期化を行う。
【００４０】
また、各種インストール、初期化が完了すると、アプリケーションＡが起動する。すると、アプリケーションＡは、ＦＰＧＡ共通基盤ドライバに対して、ＦＰＧＡ共通基盤２１へＦＰＧＡコアＡの書き込みを指示する。書き込みを指示されたＦＰＧＡ共通基盤ドライバは、ＦＰＧＡ共通部２１２に、ＦＰＧＡコアＡのＦＰＧＡコア部２１１への書き込みを指示する。これにより、ＦＰＧＡ共通部２１２によるＦＰＧＡコア部２１１に対するＦＰＧＡコアＡの書き込みが行われる。ＦＰＧＡコアＡの書き込みが完了すると、ＦＰＧＡ共通部２１２は、ＦＰＧＡ共通基盤ドライバを介して、アプリケーションＡに書き込みが完了した旨を通知する。その後、アプリケーションＡは、管理マネージャ１１に準備完了の通知を行う。これにより、ユーザ装置４からリクエストされた機能に適したＦＰＧＡ２２の構築が完了する。その後、ユーザ装置４などからの指示に応じて、アプリケーションＡはＦＰＧＡ２２などと連携して所定の処理を実施することとなる。
【００４１】
ユーザ装置４は、サーバシステム１を利用するパーソナルコンピュータやスマートフォン、タブレットなどの情報処理装置である。ユーザ装置４は、サーバシステム１（のＦＰＧＡアクセラレータ制御システム１０）に対して、利用したい機能のリクエストを行う。利用したい機能のリクエストは、たとえば、ＦＰＧＡアクセラレータ制御システム１０から送信された機能パッケージ１２１の一覧の中から選択することで行われる。また、ユーザ装置４は、サーバシステム１のＦＰＧＡアクセラレータ制御システム１０から、準備完了が完了した旨の通知とサーバ装置２０へのログイン情報を受信する。これにより、ユーザ装置４は、受信したログイン情報を利用して、サーバ装置２０に構築された、リクエストした機能を利用することが出来る。
【００４２】
以上が、第１の実施形態におけるサーバシステム１を有するシステムの構成の一例である。続いて、図４を参照して、ＦＰＧＡアクセラレータ制御システム１０とサーバ装置２０により行われる処理の一例について説明する。
【００４３】
図４を参照すると、ユーザ装置４はネットワーク５を通じて、ＦＰＧＡアクセラレータ制御システム１０の管理マネージャ１１にアクセスする。管理マネージャ１１は、記憶装置１２に格納された機能パッケージ１２１の一覧を表示する。ユーザ装置４は、表示された機能パッケージ１２１の一覧の中から利用する機能（機能パッケージ１２１）を選択する。
【００４４】
管理マネージャ１１は、ユーザ装置４により選択された機能パッケージ１２１をサーバ装置２０にダウンロードする（ステップＳ１０１）。
【００４５】
管理マネージャ１１は、サーバ装置２０に対する機能パッケージ１２１のダウンロードが完了すると、当該機能パッケージ１２１をサーバ装置２０で展開する。そして、管理マネージャ１１は、展開したＯＳ、ＦＰＧＡ共通基盤ドライバなどのサーバ装置２０に対するインストールを行う（ステップＳ１０２）。なお、機能パッケージ１２１がＯＳイメージの場合は、展開するだけで良い。
【００４６】
サーバ装置２０にインストールされたＦＰＧＡ共通基盤ドライバは、ＦＰＧＡ共通基盤２１の初期化を行う（ステップＳ２０１）。
【００４７】
ステップＳ１０２で行われる各種インストール、ステップＳ２０１で行われる初期化が完了すると、展開した機能パッケージ１２１に含まれるアプリケーションが起動する（ステップＳ２０２）。
【００４８】
アプリケーションは、ＦＰＧＡ共通基盤ドライバに対し、展開した機能パッケージ１２１に含まれるＦＰＧＡコアのＦＰＧＡ共通基盤２１への書き込みを指示する。書き込みを指示されたＦＰＧＡ共通基盤ドライバは、ＦＰＧＡ共通部２１２に、ＦＰＧＡコアのＦＰＧＡコア部２１１への書き込みを指示する。これにより、ＦＰＧＡ共通部２１２は、ＦＰＧＡコア部２１１へＦＰＧＡコアを書き込むことになる（ステップＳ２０３）。
【００４９】
ＦＰＧＡコアの書き込みが完了すると、ＦＰＧＡ共通部２１２は、ＦＰＧＡ共通基盤ドライバを介して、アプリケーションに書き込みが完了した旨を通知する。すると、アプリケーションは、管理マネージャ１１に準備完了の通知を行う（ステップＳ２０４）。これにより、ユーザ装置４からリクエストされた機能に適したＦＰＧＡ２２の構築が完了する。
【００５０】
アプリケーションから準備完了の通知を受け取った管理マネージャ１１は、ユーザ装置４に準備完了とサーバ装置２０のログイン情報を通知する（ステップＳ１０３）。
【００５１】
なお、次に別のユーザ装置４から異なる機能のシステム構築のリクエストが来た場合、ステップＳ１０１から同様の手順で異なるサーバ装置２０にシステム構築を行うことになる。本実施形態においては、システム構築を行うサーバ装置２０の選択方法については、特に限定しない。
【００５２】
このように、本実施形態におけるサーバシステム１は、複数の機能パッケージ１２１を有するＦＰＧＡアクセラレータ制御システム１０と、ＦＰＧＡ２２を有するサーバ装置２０と、を有している。また、サーバ装置２０は各機能向けにＦＰＧＡ２２をコンフィグレーションする際に用いるＦＰＧＡ共通基盤２１を有しており、ＦＰＧＡ共通基盤２１にはＦＰＧＡコア部２１１とＦＰＧＡ共通部２１２とが含まれている。このような構成により、ユーザ装置４により選択された機能パッケージ１２１に含まれるＦＰＧＡコアをＦＰＧＡコア部２１１に書き込むことが出来る。その結果、ユーザ装置４がリクエストする機能ごとにＦＰＧＡ２２をコンフィグレーションしてシステムを再構築することが可能となる。これにより、システムがそれまで別の用途で稼働していても、ユーザがリクエストする機能用にシステムを再構築することが可能となる。例えば、機能Ａ用のサーバ装置２０を２０台で運用後、機能Ａで１０台、機能Ｂで１０台運用するような場合であっても、新たにサーバ装置２０を増築することなく必要な運用を行うことが可能となる。換言すると、上記構成により、ＦＰＧＡを搭載したサーバ装置２０を有するサーバシステム１の利用効率を上げることが可能となる。
【００５３】
また、本実施形態で説明したサーバシステム１の場合、ＦＰＧＡ共通基盤２１にＦＰＧＡコア部２１１とＦＰＧＡ共通部２１２とが含まれており、ＦＰＧＡコア部２１１に各機能用のＦＰＧＡコアを書き込むことで、機能に応じたＦＰＧＡ２２の構築を行うことが出来る。このように、ＦＰＧＡコア部２１１とＦＰＧＡ共通部２１２とに分けることにより、開発規模を削減することが出来る。また、ＦＰＧＡ共通部２１２にＦＰＧＡコア部２１１を監視する機能や障害処理を行う機能を持たせることで、再構成時（ＦＰＧＡコア部２１１にＦＰＧＡコアを書き込んだ時）に障害が発生した場合でも、ＦＰＧＡ共通部２１２で障害処理を行うことが可能となる。
【００５４】
なお、本実施形態においては、サーバシステム１は、サーバ装置２０の他にＦＰＧＡアクセラレータ制御システム１０を有するとした。しかしながら、例えば、ＦＰＧＡアクセラレータ制御システム１０の機能は、サーバシステム１が有するサーバ装置２０のいずれかにより実現されても構わない。
【００５５】
また、本実施形態においては、機能パッケージ１２１には、ＯＳと、ＦＰＧＡ共通基盤ドライバとアプリケーションとＦＰＧＡコアとが含まれるとした。しかしながら、機能パッケージ１２１に含まれる情報は、上記例示した場合に限定されない。機能パッケージ１２１には、例えば、アプリケーションとＦＰＧＡコアとのみが含まれていても構わない。この場合、各サーバ装置２０が予め共通するＯＳとＦＰＧＡ共通基盤ドライバを有することになる。また、機能パッケージ１２１には、上記例示した以外の情報が含まれていても構わない。
【００５６】
［第２の実施形態］
次に、図５、図６を参照して、本発明の第２の実施形態について説明する。第２の実施形態では、サーバ装置６、サーバシステム７の構成の概要について説明する。
【００５７】
まず、図５を参照して、サーバ装置６の構成について説明する。
【００５８】
図５を参照すると、サーバ装置６は、プログラム可能な回路６１を有している。また、サーバ装置６は、プログラム可能な回路６１が実施する機能に応じて設定されるコア部６２と、プログラム可能な回路６１が実施可能な各機能に共通の機能が予め設定された共通部６３と、を有している。例えば、サーバ装置６は図示しない記憶装置と図示しない演算装置とを有しており、図示しない記憶装置に格納されたプログラムを図示しない演算装置が実行することで、上記コア部６２と共通部６３とを実現する。
【００５９】
上記のような構成を有するサーバ装置６は、プログラム可能な回路６１が実施する機能に応じて予め設けられた機能パッケージを、例えば外部装置などから受信する。すると、サーバ装置６は、受信した機能パッケージに含まれる、プログラム可能な回路６１が実施する機能に応じたコアをコア部６２に書き込む。
【００６０】
このように、サーバ装置６は、プログラム可能な回路６１を備えており、コア部６２と、共通部６３と、を有している。このような構成により、サーバ装置６は、プログラム可能な回路６１が実施する機能に応じて予め設けられた機能パッケージを受信すると、受信した機能パッケージに含まれる、プログラム可能な回路６１が実施する機能に応じたコアをコア部６２に書き込むことが出来る。その結果、サーバ装置６は、受信した機能パッケージに応じた機能ごとにプログラム可能な回路６１を構築することが可能となる。これにより、サーバ装置６のプログラム可能な回路６１は、例えば、ユーザのリクエストなどに応じた機能を有することが可能となり、サーバ装置６の利用効率を上げることが可能となる。
【００６１】
また、上述したサーバ装置６は、当該サーバ装置６に所定のプログラムが組み込まれることで実現できる。具体的に、本発明の他の形態であるプログラムは、プログラム可能な回路６１を備えるサーバ装置６に、プログラム可能な回路６１が実施する機能に応じて設定されるコア部６２と、プログラム可能な回路６１が実施可能な各機能に共通の機能が予め設定された共通部６３と、を実現させ、サーバ装置６は、プログラム可能な回路６１が実施する機能に応じて予め設けられた機能パッケージを受信すると、受信した機能パッケージに含まれる、プログラム可能な回路６１が実施する機能に応じたコアをコア部６２に書き込むプログラムである。
【００６２】
また、上述したサーバ装置６により実行されるサーバ制御方法は、プログラム可能な回路６１を備えるサーバ装置６により実行されるサーバ制御方法であって、サーバ装置６は、プログラム可能な回路６１が実施する機能に応じて設定されるコア部６２と、プログラム可能な回路が実施可能な各機能に共通の機能が予め設定された共通部６３と、を含み、サーバ装置６は、プログラム可能な回路６１が実施する機能に応じて予め設けられた機能パッケージを受信すると、受信した機能パッケージに含まれる、プログラム可能な回路６１が実施する機能に応じたコアをコア部６２に書き込む、という方法である。
【００６３】
上述した構成を有する、プログラム、又は、サーバ制御方法、の発明であっても、上記サーバ装置６と同様の作用を有するために、上述した本発明の目的を達成することが出来る。
【００６４】
続いて、図６を参照して、上述したサーバ装置６の他の形態であるサーバシステム７の構成について説明する。
【００６５】
図６を参照すると、サーバシステム７は、制御装置８と、サーバ装置９と、を有している。
【００６６】
制御装置８は、複数の機能パッケージ８１と、管理部８２と、を有している。例えば、制御装置８は、図示しない記憶装置と図示しない演算装置とを有している。制御装置８は、例えば、図示しない記憶装置に格納されたプログラムを図示しない演算装置が実行することで、管理部８２を実現する。また、機能パッケージ８１は、例えば、図示しない記憶装置に格納されている。
【００６７】
機能パッケージ８１は、後述するプログラム可能な回路９１が実施する機能に応じて予め作成されている。機能パッケージ８１には、プログラム可能な回路９１が実施する機能に応じたコアが含まれている。なお、制御装置８は、任意の数の機能パッケージ８１を有することが出来る。
【００６８】
管理部８２は、ユーザからの問い合わせに応じて機能パッケージ８１をサーバ装置９に送信する。
【００６９】
サーバ装置９は、プログラム可能な回路９１を有している。また、サーバ装置９は、プログラム可能な回路９１が実施する機能に応じて設定されるコア部９２と、プログラム可能な回路９１が実施可能な各機能に共通の機能が予め設定された共通部９３と、を有している。例えば、サーバ装置９は図示しない記憶装置と図示しない演算装置とを有しており、図示しない記憶装置に格納されたプログラムを図示しない演算装置が実行することで、上記コア部９２と共通部９３とを実現する。
【００７０】
上記のような構成を有するサーバ装置９は、プログラム可能な回路９１が実施する機能に応じて予め設けられた機能パッケージを制御装置８から受信する。すると、サーバ装置９は、受信した機能パッケージに含まれる、プログラム可能な回路９１が実施する機能に応じたコアをコア部９２に書き込む。
【００７１】
このような構成であっても、図５を参照して説明したサーバ装置６と同様の効果を有することが出来る。
【００７２】
＜付記＞
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明におけるサーバ装置などの概略を説明する。但し、本発明は、以下の構成に限定されない。
（付記１）
プログラム可能な回路を備えるサーバ装置であって、
前記サーバ装置は、前記プログラム可能な回路が実施する機能に応じて設定されるコア部と、前記プログラム可能な回路が実施可能な各機能に共通の機能が予め設定された共通部と、を含み、
前記サーバ装置は、前記プログラム可能な回路が実施する機能に応じて予め設けられた機能パッケージを受信すると、受信した機能パッケージに含まれる、前記プログラム可能な回路が実施する機能に応じたコアを前記コア部に書き込む
サーバ装置。
（付記２）
付記１に記載のサーバ装置であって、
前記機能パッケージには、前記プログラム可能な回路が実施する機能に応じたアプリケーションが含まれている
サーバ装置。
（付記３）
付記２に記載のサーバ装置であって、
前記機能パッケージには、前記プログラム可能な回路が実施可能な各機能に共通の共通基盤ドライバが含まれており、
前記アプリケーションは、前記コア部に対する前記コアの書き込みを行うよう前記共通基盤ドライバに対して指示し、
前記共通基盤ドライバは、前記指示に応じて、前記共通部を介して前記コア部に対する前記コアの書き込みを行う
サーバ装置。
（付記４）
付記１乃至３のいずれかに記載のサーバ装置であって、
前記機能パッケージには、前記プログラム可能な回路が実施する機能に応じたＯＳ（Operating System）が含まれている
サーバ装置。
（付記５）
付記１乃至４の何れかに記載のサーバ装置であって、
前記プログラム可能な回路は、ＦＰＧＡ（field-programmable gate array）である
サーバ装置。
（付記６）
プログラム可能な回路を備えるサーバ装置により実行されるサーバ制御方法であって、
前記サーバ装置は、前記プログラム可能な回路が実施する機能に応じて設定されるコア部と、前記プログラム可能な回路が実施可能な各機能に共通の機能が予め設定された共通部と、を含み、
前記サーバ装置は、前記プログラム可能な回路が実施する機能に応じて予め設けられた機能パッケージを受信すると、受信した機能パッケージに含まれる、前記プログラム可能な回路が実施する機能に応じたコアを前記コア部に書き込む
サーバ制御方法。
（付記７）
プログラム可能な回路を備えるサーバ装置に、
前記プログラム可能な回路が実施する機能に応じて設定されるコア部と、前記プログラム可能な回路が実施可能な各機能に共通の機能が予め設定された共通部と、を実現させ、
前記サーバ装置は、前記プログラム可能な回路が実施する機能に応じて予め設けられた機能パッケージを受信すると、受信した機能パッケージに含まれる、前記プログラム可能な回路が実施する機能に応じたコアを前記コア部に書き込む
プログラム。
（付記８）
制御装置と、プログラム可能な回路を有するサーバ装置と、を有するサーバシステムであって、
前記制御装置は、前記プログラム可能な回路が実施する機能に応じて予め作成された複数の機能パッケージと、ユーザからの問い合わせに応じて前記機能パッケージを前記サーバ装置に送信する管理部と、を有し、
前記サーバ装置は、前記プログラム可能な回路が実施する機能に応じて設定されるコア部と、前記プログラム可能な回路が実施可能な各機能に共通の機能が予め設定された共通部と、を含み、
前記サーバ装置は、前記プログラム可能な回路が実施する機能に応じて予め設けられた機能パッケージを受信すると、受信した機能パッケージに含まれる、前記プログラム可能な回路が実施する機能に応じたコアを前記コア部に書き込む
サーバシステム。
（付記９）
付記８に記載のサーバシステムであって、
前記機能パッケージには、前記プログラム可能な回路が実施する機能に応じたアプリケーションが含まれている
サーバシステム。
（付記１０）
付記９に記載のサーバシステムであって、
前記機能パッケージには、前記プログラム可能な回路が実施可能な各機能に共通の共通基盤ドライバが含まれており、
前記アプリケーションは、前記コア部に対する前記コアの書き込みを行うよう前記共通基盤ドライバに対して指示し、
前記共通基盤ドライバは、前記指示に応じて、前記共通部を介して前記コア部に対する前記コアの書き込みを行う
サーバシステム。
【００７３】
なお、上記各実施形態及び付記において記載したプログラムは、記憶装置に記憶されていたり、コンピュータが読み取り可能な記録媒体に記録されていたりする。例えば、記録媒体は、フレキシブルディスク、光ディスク、光磁気ディスク、及び、半導体メモリ等の可搬性を有する媒体である。
【００７４】
以上、上記各実施形態を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることが出来る。
【符号の説明】
【００７５】
１  サーバシステム
１０  ＦＰＧＡアクセラレータ制御システム
１１  管理マネージャ
１２  記憶装置
１２１  機能パッケージ
２０  サーバ装置
２１  ＦＰＧＡ共通基盤
２１１  ＦＰＧＡコア部
２１２  ＦＰＧＡ共通部
２２  ＦＰＧＡ
３０  ＬＡＮ
４  ユーザ装置
５  ネットワーク
６  サーバ装置
６１  プログラム可能な回路
６２  コア部
６３  共通部
７  サーバシステム
８  制御装置
８１  機能パッケージ
８２  管理部
９  サーバ装置
９１  プログラム可能な回路
９２  コア部
９３  共通部
【図１】
2018136618.tif 000003
【図２】
2018136618.tif 000004
【図３】
2018136618.tif 000005
【図４】
2018136618.tif 000006
【図５】
2018136618.tif 000007
【図６】
2018136618.tif 000008