(57)【要約】【課題】複数の再構成可能デバイスを用いたデータ処理システムにおいて、必要最低限の量を超えて配線資源が消費された場合に、余分な資源の消費を減らしてシステム資源の利用効率を改善する。【解決手段】複数の再構成可能デバイスを有するデータ処理システムの資源を管理するリソースマネージャ装置１１は、データ処理システム内の構成を変更する実行部３４と、モジュールごとの配線資源の使用量に応じてモジュールを選択し、選択されたモジュールの移動先を決定し、その移動先に選択されたモジュールを移動させたとしてその移動の前後でのシステム全体での配線資源の使用量を評価値として算出し、評価値の増減に応じてモジュールの移動の可否を判定する集約部３６と、を有する。選択されたモジュールの移動を可と判定したときに、実行部３４は、決定された移動先にそのモジュールを移動させるように、データ処理システム内の構成を変更する。【選択図】図３
2016009305.tif 000002
【特許請求の範囲】
【請求項１】
複数の再構成可能デバイスを備えるデータ処理システムに設けられ、再構成可能デバイス上に単位処理回路としてモジュールを実装するための計算資源と、実装された前記モジュールが通信するための配線資源と、を管理するリソースマネージャ装置であって、
前記データ処理システム内の構成を変更する実行手段と、
モジュールごとの配線資源の使用量に応じてモジュールを選択し、選択された前記モジュールの移動先を決定し、該移動先に前記選択されたモジュールを移動させたとしてその移動の前後での前記データ処理システムの全体での配線資源の使用量を評価値として算出し、前記評価値の増減に応じて前記選択されたモジュールを前記移動先に移動させることの可否を判定する集約手段と、
を有し、
前記選択されたモジュールを前記移動先に移動させることを可と判定したときに、前記実行手段が、前記選択されたモジュールを前記移動先に移動させるように前記データ処理システム内の構成を変更する、リソースマネージャ装置。
【請求項２】
ユーザが要求する処理単位であって１以上の前記モジュールを組み合わせて構成されるアプリケーションの追加が要求されたときに、当該アプリケーションの追加が可能であるかを判定し、追加が可能であるときに当該アプリケーションを構成するモジュールの配置及び配線を決定する判定手段をさらに備え、
前記実行手段は、前記判定手段が前記配置及び配線を決定したときに、前記配置及び配線に基づいて前記データ処理システム内の構成を変更する、請求項１に記載のリソースマネージャ装置。
【請求項３】
前記集約手段は、モジュール対ごとに当該モジュール対が消費する配線資源の使用量を算出し、より多くの配線資源を消費するモジュール対から順にモジュールを選択し前記評価値を算出して移動の可否を判定する、請求項１または２に記載のリソースマネージャ装置。
【請求項４】
モジュール対が使用するバス幅と、当該モジュール対間での通信が経由する再構成可能デバイスの数とに基づいて、前記配線資源の使用量を決定する、請求項３に記載のリソースマネージャ装置。
【請求項５】
複数の再構成可能デバイスを備えるデータ処理システムにおける、再構成可能デバイス上に単位処理回路としてモジュールを実装するための計算資源と、実装された前記モジュールが通信するための配線資源と、を管理する資源管理方法であって、
モジュールごとの配線資源の使用量に応じてモジュールを選択する段階と、
選択された前記モジュールの移動先を決定する段階と、
前記移動先に前記選択されたモジュールを移動させたとしてその移動の前後での前記データ処理システムの全体での配線資源の使用量を評価値として算出する段階と、
前記評価値の増減に応じて前記選択されたモジュールを前記移動先に移動させることの可否を判定する段階と、
前記判定する段階において前記移動先に移動させることを可と判定したときに、前記選択されたモジュールを前記移動先に移動させるように前記データ処理システム内の構成を変更する段階と、
を有する、資源管理方法。
【請求項６】
前記選択する段階において、モジュール対ごとに当該モジュール対が消費する配線資源の使用量を算出し、より多くの配線資源を消費するモジュール対から順にモジュールを選択する、請求項５に記載の資源管理方法。
【請求項７】
モジュール対が使用するバス幅と、当該モジュール対間での通信が経由する再構成可能デバイスの数とに基づいて、前記配線資源の使用量を決定する、請求項６に記載の資源管理方法。
【請求項８】
コンピュータを請求項１乃至４のいずれか１項に記載のリソースマネージャ装置として機能させる資源管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の再構成可能デバイスを用いたシステムの資源管理を行うリソースマネージャ装置と、資源管理方法と、資源管理プログラムとに関する。
【背景技術】
【０００２】
近年、与えられたデータを高速で処理することができ、かつ短時間で大量の処理要求をこなすことができるデータ処理システムに対する要望がますます高まっている。例えば、有線通信または無線通信を介してユーザ（利用者）端末がネットワーク上のサーバまたはデータセンタに接続してこれらを利用できるようにする情報通信サービスでは、ユーザ数の増大や取り扱うデータ量の増加に伴って、サーバあるいはデータセンタ側のデータ処理システムにおける処理能力の増強が求められている。このような要求に対し、一般的なデータセンタにおける既存のシステムでは、サーバコンピュータの台数を増やしたり、複数のサーバコンピュータに対し負荷を分散したりすることで、特定のサーバコンピュータに負荷が集中するのを防ぐ方法がとられている。また、この負荷分散を最適に行うためのアルゴリズムが検討されている。しかしながら、一般的なサーバコンピュータにおいて用いられている処理方法であるソフトウェアを使った処理は、ハードウェアを使った処理に比べて低速であるといった問題があり、処理量の増大に伴ってサーバコンピュータの設置に要する面積や消費電力が増加するという問題もある。このため、複数のサーバコンピュータに対して負荷の分散を行うだけでは、今後ますます増大するであろうデータ処理量に対処することは困難となっている。
【０００３】
このような問題点を解決してデータ処理システムが処理すべき処理量の増加に対応する方法として、専用のハードウェア構成によるアクセラレータをデータ処理システムに接続し、特定の処理をアクセラレータにオフロードすることで、データ処理システムの処理負荷を低減する方法がある（非特許文献１）。ハードウェアによるアクセラレータは、例えば特定の種類の浮動小数点演算などの特定の処理を実行するのであれば、ソフトウェア処理よりも高速かつ低消費電力である、という利点を有する。しかしながら、既存のハードウェアアクセラレータは、特定の処理の実行に特化したものであるため汎用性が低く、多種多様の処理の高速化には適してはいない。そこで、特許文献１には、再構成可能（リコンフィギュアラブル；reconfigurable）デバイスを複数組み合わせることによって、複数の異なるデータ処理要求に対して、並列に異なる処理を行うことができるようにしたアクセラレータが開示されている。再構成可能デバイスは、例えば、異なる種類の多数の回路ブロックを備え、回路ブロック間の布線接続関係を外部からの制御信号によって変更可能であって、制御信号に応じて回路ブロック間の接続を構成することによってユーザから要求された処理に適合したハードウェア機能回路として再構成できるものである。特許文献１に示されるアクセラレータでは、任意の時点において、条件を満たした再構成可能デバイスの回路構成を変更することができる。
【０００４】
特許文献１に示されるような再構成可能デバイスを使用し、その回路構成をユーザからの要求に合わせて変更することで、ユーザからの要求に応じて実行するアプリケーションの種類と数とを変更することができる。このようなアクセラレータによれば、様々なタイミングで多種多様なデータ処理を高速に行うことを要求されるサーバあるいはデータセンタ側のデータ処理システムの処理負荷を低減することができる。
【０００５】
以下、再構成可能デバイスを有するアクセラレータを備えるデータ処理システムに関し、本明細書において用いられる用語を説明する。
【０００６】
アプリケーションとは、ユーザがデータ処理システムに対して要求する処理単位のことである；
モジュールとは、再構成可能デバイスに回路構成が設定されることにより（すなわち実装されることにより）実現される単位処理回路のことである。アプリケーションを実行する場合には、１以上のモジュールを組み合わせて使用する。なお、１つの再構成可能デバイス上で複数のモジュールが動作することもある；
動作中のモジュールとは、実行中のアプリケーションのいずれかで使用されているモジュールのことである；
空デバイスとは、自身上に動作中のモジュールが実装されていない再構成可能デバイスのことである；
システム資源とは、データ処理システムの計算資源及び配線資源を含むものである；
計算資源とは、再構成可能デバイスが有する資源のうち、再構成可能デバイス上にモジュールを実装するために必要な資源であり、例えば、再構成可能デバイスに含まれる異なる種類の多数の回路ブロックを示す；
配線資源とは、再構成可能デバイスが有する資源のうち、再構成可能デバイス上に実装されたモジュールが通信するために必要な資源である。モジュールを組み合わせてアプリケーションを実行する場合、モジュール間の配線資源の設定が必須である。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１３−０４５２１９号公報
【非特許文献】
【０００８】
【非特許文献１】松岡  聡、「アクセラレータ，再び  アクセラレータ技術の影と光」、情報処理学会誌，Vol. 50, No. 2, pp. 95-99, 2009年2月
【発明の概要】
【発明が解決しようとする課題】
【０００９】
複数の再構成可能デバイスを備えるシステムでは、ユーザからの要求に合わせて回路構成を変更することで、実行するアプリケーションの種類と数とを変更することができるが、その反面、アプリケーションの種類と数との変更を繰り返すことで、利用できないシステム資源が発生する、という課題がある。これは、システムが継続して動作する際にアプリケーションの種類と数とが繰り返し変更されると、必要最低限の量を超えて配線資源が消費され、これにより、利用できないシステム資源が発生するためである。利用できないシステム資源が発生すると、並列実行できるアプリケーション数が少なくなって、システムの利用効率が低下する。
【００１０】
本発明の目的は、複数の再構成可能デバイスを用いたシステムの資源管理を行うタスクマネージャ装置、資源管理方法及び資源管理プログラムであって、実行中のアプリケーションを中断することなく余分な資源の消費を減らしてシステム資源の利用効率を改善することができるリソースマネージャ装置、資源管理方法及び資源管理プログラムを提供することにある。
【課題を解決するための手段】
【００１１】
本発明のリソースマネージャ装置は、複数の再構成可能デバイスを備えるデータ処理システムに設けられ、再構成可能デバイス上に単位処理回路としてモジュールを実装するための計算資源と、実装されたモジュールが通信するための配線資源と、を管理するリソースマネージャ装置であって、データ処理システム内の構成を変更する実行手段と、モジュールごとの配線資源の使用量に応じてモジュールを選択し、選択されたモジュールの移動先を決定し、その移動先に選択されたモジュールを移動させたとしてその移動の前後でのデータ処理システムの全体での配線資源の使用量を評価値として算出し、評価値の増減に応じて選択されたモジュールを移動先に移動させることの可否を判定する集約手段と、を有し、選択されたモジュールを移動先に移動させることを可と判定したときに、実行手段が、選択されたモジュールを移動先に移動させるようにデータ処理システム内の構成を変更する。
【００１２】
本発明の資源管理方法は、複数の再構成可能デバイスを備えるデータ処理システムにおける、再構成可能デバイス上に単位処理回路としてモジュールを実装するための計算資源と、実装されたモジュールが通信するための配線資源と、を管理する資源管理方法であって、モジュールごとの配線資源の使用量に応じてモジュールを選択する段階と、選択されたモジュールの移動先を決定する段階と、移動先に選択されたモジュールを移動させたとしてその移動の前後でのデータ処理システムの全体での配線資源の使用量を評価値として算出する段階と、評価値の増減に応じて選択されたモジュールを移動先に移動させることの可否を判定する段階と、判定する段階において移動先に移動させることを可と判定したときに、選択されたモジュールを移動先に移動させるようにデータ処理システム内の構成を変更する段階と、を有する。
【００１３】
本発明の資源管理プログラムは、コンピュータを本発明のリソースマネージャ装置として機能させる。
【発明の効果】
【００１４】
本発明では、複数の再構成可能デバイスを備えるデータ処理システムにおいて、配線資源の使用状況に基づいてモジュールを選択し、例えば未使用モジュールまたは空デバイスを利用して、配線資源の使用量が減少するようにこの選択されたモジュールを集約することにより、システムが継続して動作することによって配線資源が必要最低限の量を超えて消費されたときに配線資源の余分な消費を減らすことができる。これにより、低下したシステムの利用効率を高めることができる、という効果が得られる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施の一形態の資源管理方法が適用されるデータ処理システムの構成の一例を示すブロック図である。
【図２】図１に示すデータ処理システムにおいて用いられるアクセラレータの構成の一例を示すブロック図である。
【図３】図１に示すデータ処理システムにおいて用いられるリソースマネージャ装置の構成の一例を示すブロック図である。
【図４】アプリケーションの追加と削除の処理の全体の手順の一例を示すフローチャートである。
【図５】アプリケーションの追加処理の一例を示すフローチャートである。
【図６】実行中のアプリケーションの削除処理の一例を示すフローチャートである。
【図７】配線資源の再割当ての手順の一例を示すフローチャートである。
【図８】リストの一例を示す図である
【図９】リストの一例を示す図である。
【発明を実施するための形態】
【００１６】
次に、本発明の好ましい実施の形態について、図面を参照して説明する。
【００１７】
図１に示すデータ処理システム１０は、本発明に基づく資源管理方法が適用されるものであって、例えば、ユーザ端末からのサービス要求に応じてデータ処理を行い、その処理結果をユーザ端末に返送するために用いられるものである。データ処理システム１０は、同時または別々のタイミングで要求される複数の異なるデータ処理要求に対して、並列に処理を行い、結果を返すことができるようになっている。
【００１８】
データ処理システム１０は、要求された処理への資源の割当てを行う機能、システム資源を管理する機能、処理の追加や削除などの制御機能、などの各機能を有するリソースマネージャ装置１１と、ユーザから要求された処理をハードウェア回路により処理する１つ以上のアクセラレータ１２と、リソースマネージャ装置１１と各アクセラレータ１２との間で制御信号の入出力を行うための制御信号線１６と、外部機器とアクセラレータ１２との間およびアクセラレータ１２の相互間でデータ信号の入出力を行うためのデータ信号線１７と、を備えている。
【００１９】
各アクセラレータ１２は、いずれも、複数の再構成可能デバイスを備えるものであり、ユーザ端末からの要求が到着した時点において空デバイスとなっている再構成可能デバイスは、その回路構成を変更することができる。上述したように、再構成可能デバイスに対して回路構成を設定することで実現されるモジュールを１つ以上組み合わせることによって、ユーザが要求する処理単位となるアプリケーションとなるので、このようなアクセラレータ１２を備えるデータ処理システム１０は、ユーザからの要求に対してリソースマネージャ装置１１がシステムを制御・管理し、アクセラレータ１２を用いて、要求された処理を提供するシステムである。
【００２０】
アクセラレータ１２について詳しく説明する。アクセラレータ１２は、アクセラレータ装置として扱われるものであって、図２に示すように、再構成可能ハードウェア処理部１３とアクセラレータ内接続部１４と入出力部１５とを備えるハードウェアである。
【００２１】
再構成可能ハードウェア処理部１３は、その処理回路の再構成が可能なことを特徴とするものであって、１つ以上の再構成可能デバイス２０を備えている。入出力部１５は、データ信号線１７に接続する１つ以上の入出力インターフェース（Ｉ／Ｆ）２１を備えている。アクセラレータ内接続部１４は、入出力部１５内の各入出力インターフェース２１と再構成可能ハードウェア処理部１３内の各再構成可能デバイス２０との間でデータの転送を可能にするものであり、固定された配線もしくは再構成可能な配線を備えるとともに、通信経路を切替えるスイッチを備えている。再構成可能ハードウェア処理部１３、アクセラレータ内接続部１４及び入出力部１５は、いずれも制御信号線１６に接続しており、リソースマネージャ装置１１からの制御信号により制御することができる。特に、リソースマネージャ装置１１は、制御信号により、再構成可能ハードウェア処理部１３内の各再構成可能デバイス２０での回路構成の設定、アクセラレータ内接続部１４での再構成可能な配線の設定やスイッチの設定を行うことができる。
【００２２】
このようなデータ処理システム１０の具体的な構造の例として、再構成可能デバイス２０は、再構成可能なＬＳＩ（大規模集積回路：Large-Scale Integration）、ＦＰＧＡ(Field Programmable Gate Array)などによって構成することができる。再構成可能デバイス２０内で実行される処理は、例えばＦＰＧＡ内に実装する単位処理回路すなわち個々の処理回路によって行われる処理であり、既存のＩＰ(Intellectual Property)コアや、事前に作成した専用の論理回路ブロックや、メモリ回路ブロックなどとして構成することができる。またアクセラレータ１２は、１つ以上のＦＰＧＡを搭載した１枚のボード（ハードウェア基板）として構成することができる。これらのＦＰＧＡが再構成可能ハードウェア処理部１３の再構成可能デバイス２０に相当し、ボードに備えられた外部との通信用インターフェースが入出力部１５の入出力インターフェース２１に相当し、ＦＰＧＡ間を結ぶ配線と、ＦＰＧＡを外部との通信用インターフェースに結ぶ配線とが、アクセラレータ内接続部１４に相当することになる。アクセラレータ内接続部１４に再構成可能な配線を設ける場合、そのような再構成可能な配線は、例えば、クロスバースイッチなどによって構成することができる。アクセラレータ内接続部１４において通信経路を切替えるためのスイッチは、例えば、セレクタによって構成しても、あるいは、ＦＰＧＡに機能ブロックとして実装してもよい。再構成可能ハードウェア処理部１３内の各再構成可能デバイス２０と入出力部１５の各入出力インターフェース２１とは、アクセラレータ内接続部１４によって、それぞれを頂点とした任意のネットワークトポロジー（メッシュ結合、リング結合、バス結合、ツリー結合、全結合など）で接続することができる。
【００２３】
このようなアクセラレータ１２を用いることにより、上述したようにこのデータ処理システム１０は、ユーザ要求に応じて任意の処理を提供することができ、また、同時または別々のタイミングで要求される複数の異なるデータ処理要求に対して、並列に処理を行い、結果を返すことができる。
【００２４】
次に、リソースマネージャ装置１１について説明する。リソースマネージャ装置１１における、処理の追加や削除などの制御機能は、ユーザから受け付けたデータ処理要求に基づいてアプリケーションの追加及び削除を行う機能を含んでおり、また、システム資源を管理する機能は、余分な資源の消費を減らすようにシステム資源を管理する機能を含んでいる。図３は、リソースマネージャ装置１１の構成の一例を示している。
【００２５】
図３に示すリソースマネージャ装置１１は、ユーザからの処理要求であるユーザ要求を受付けるインタフェース３０と、受付けたユーザ要求をこのデータ処理システム１０において実行できるかどうかを判定する判定部３１と、モジュールの配置配線情報及びモジュールの配置配線の変更手順を保持するデータベース３２と、モジュールの配置配線の変更命令を発行する実行部３４と、変更命令を再構成可能デバイス２０が認識可能なコードを含む制御信号に変換するＡＰＩ（アプリケーションプログラミングインタフェース：Application Programming Interface）部３５と、モジュールの集約計画を立てる集約部３６と、を備えている。データベース３２は、モジュールの配置配線情報及びモジュールの配置配線の変更手順の実際のデータを記憶する記憶装置３７と、記憶装置３７に記憶されたデータを管理し、要求に応じて記憶装置３７にデータを格納し、記憶装置３７に格納されたデータを読出すデータベース管理部３８と、から構成されている。記憶装置３７としては、例えば一般的なコンピュータに設けられる記憶装置と同様のものが用いられる。
【００２６】
インタフェース３０は、ユーザ要求を解釈し、特にユーザ要求がアプリケーションの追加または削除に関するものであるかを判定し、ユーザ要求によって指定される処理内容を判定部３１へと通知するとともに、集約部３６に割込通知を行い、集約部３６での処理を中断させる。判定部３１は、ユーザ要求がアプリケーションを追加する追加要求であるかアプリケーションを削減する削減要求であるときは、その追加要求または削減要求が実行可能かどうかを判定を行い、実行可能であれば、そのアプリケーションに関連するモジュールの配置配線情報及びそのモジュールの配置配線の変更手順をデータベース３２に登録する。一般的な再構成可能デバイスを用いている場合には、アプリケーションの削除は無条件に可能であると考えられるから、そのような場合には、判定部３１は、削減要求が実行可能かを判定する必要はなく、追加要求が実行可能かどうかだけを判定すればよい。以下の説明では、アプリケーションの削減は無条件に可能であるものとする。
【００２７】
実行部３４は、モジュールの配置配線の変更手順が決まったときに、データベース３２からその変更手順を読出し、必要な配置配線の変更命令を順次発行する。モジュールの配置配線の変更手順は、上述したように判定部３１において定められるとともに、後述するように、集約部３６が実行する処理においても定められる。実行部３４によって発行された命令は、ＡＰＩ部３５において、再構成可能デバイス２０が認識可能なコードを含む制御信号へと変換され、制御信号線１６を介して再構成可能デバイス２０へと送られる。ＡＰＩ部３５からの制御信号は、アクセラレータ内接続部１４や入出力部１５の制御にも用いられる。集約部３６は、システム資源の利用状況を最適化するために、ユーザからの要求を受け付けていない状態において、データベース３２を参照してモジュールの集約計画を立てる。モジュールの集約計画も、集約されるモジュールについての配置配線情報及びそのモジュールの配置配線の変更手順を含んでおり、計画された配置配線情報及び配置配線の変更手順はデータベース３２に登録される。これにより、集約計画に基づくモジュールの配置配線の変更手順に基づいて、実行部３４を介して、モジュールの配置配線の変更が行われる。
【００２８】
図４は、リソースマネージャ装置１１で実行される、アプリケーションの追加及び削除の処理の全体の手順を示している。
【００２９】
ユーザ端末からユーザ要求が到来すると、まずステップ１０１において、そのユーザ要求はインタフェース３０で受け付けられ、次にステップ１０２において、インタフェース３１は、ユーザ要求を解釈し、そのユーザ要求がアプリケーションの追加もしくはアプリケーションの削除のいずれかであるかを判定する。ユーザ要求がアプリケーションの追加であるときは処理内容を判定部３１に通知し、割込を集約部３６に通知する。ユーザ要求がアプリケーションの削除である場合には、ステップ１０３において、実行部３４がアプリケーションを削除するための後述する処理フローを実行し、処理を終了する。
【００３０】
一方、ステップ１０２においてユーザ要求がアプリケーションの追加であると判断した場合は、処理内容が判定部３２に通知されるので、ステップ１０４において、判定部３１は、要求されたアプリケーションを実行するために必要なすべてのモジュールが、再構成可能ハードウェア処理部１３において未使用モジュールとして存在するかどうかを判定する。未使用モジュールとは、再構成可能デバイス２０に構成されたモジュールのうち、他のアプリケーションにより使用されていないモジュールのことをいう。必要な未使用モジュールがすべて存在した場合は、ステップ１０５に進み、必要な未使用モジュールの一部もしくは全部が存在しなかった場合は、ステップ１０８に進む。
【００３１】
ステップ１０５において判定部３１は、追加するアプリケーションを実行するために必要なそれぞれのモジュールに配線資源を割当て、通信経路を決める。配線資源の割当て方としては、例えば、最初に最短経路となるように割当てを行い、そのような割当てに失敗したら次善の経路長となるように割当てを行う方法などがある。配線資源の割当てを行った後、ステップ１０６において、判定部３１は、配線資源の割当ての成否（成功または失敗）を判定する。失敗であった場合、すなわち割当てることができる配線資源が存在しなかった場合は、ステップ１０８に進む。一方、ステップ１０５において配線資源の割当てに成功したと判断した場合は、ステップ１０７において、その割当て結果である配置配線情報及び配置配線の変更手順がデータベース３２に登録され、実行部３４は、データベース３２に登録された配線資源情報及び配置配線の変更手順に基づいて、対象となるモジュール間で通信ができるように通信経路の切替えを行い、処理を終了する。通信経路の切替えは、実行部３４が出力する命令をＡＰＩ部３５がその命令を再構成可能デバイス２０が認識可能なコードを含む制御信号に変換し、この制御信号によってアクセラレータ１２内のアクセラレータ内接続部１４のスイッチを操作し、さらにはアクセラレータ内接続部１４が再構成可能配線を備える場合にはその再構成可能配線の配線構成の設定を行うことによって、実行される。
【００３２】
ステップ１０８において判定部３１は、動作中のモジュールが存在しない再構成可能デバイス２０すなわち空デバイスを選択し、その選択されたデバイスに計算資源を割当て、次にステップ１０９において、計算資源の割当てに成功したかどうかその成否を判定する。失敗であれば、それは、ユーザ要求を満たす計算資源がシステムに存在せず、ユーザ要求に応えられないことを意味するから処理を終了する。計算資源の割当てに成功した場合は、判定部３１は、ステップ１１０において、新規に実装するモジュールに配線資源を割当て通信経路を決め、次にステップ１１１において、配線資源の割当ての成否を判定する。配線資源の割当てに失敗した場合にはステップ１０８に戻り、判定部３１は計算資源の割当てをやり直す。一方、配線資源の割当てに成功したと判断した場合は、ステップ１１２において、その割当て結果である配置配線情報及び配置配線の変更手順がデータベース３２に登録され、ステップ１１２において、モジュールを再構成可能デバイス２０に追加するための後述する処理フローを実行部３４が実行し、処理を終了する。
【００３３】
以上がアプリケーションを追加または削除するための処理の概要であるが、ここでステップ１０５，１１０の配線資源の割当てと、ステップ１０８の計算資源の割当ては、リソースマネージャ装置１１がシステムの資源の利用状況を把握するための仮想的な処理である。また、ステップ１０３，１０７，１１２はアクセラレータ１２の操作を含むステップであり、その他のステップは、ユーザからの要求にしたがってどのような操作をするかをリソースマネージャ装置１１が決定するための仮想的な処理を行うステップである。ここで仮想的な処理とは、アクセラレータ１２内の再構成可能デバイス２０やアクセラレータ内接続部１４に対して実際に回路構成や配線構成を設定することをしない処理のことを意味する。
【００３４】
動作中のデータ処理システムシステム１０上では、いろいろなユーザが要求した種々のアプリケーションが動作している。そこに新しくアプリケーションを追加するには、この動作中のアプリケーションを中断することなく新たにアプリケーションの追加を完了することが求められる。図５は、図４のステップ１１２に示す追加処理フローを具体的に示したものであって、動作中のアプリケーションを中断することなく新たにアプリケーションの追加するための処理の実行部３４が行う具体的な手順を示している。図３に示すステップ１１１までの処理が終了して、どの再構成可能デバイス２０に対してどのモジュールを実装し、どのように通信経路を確保するかが決まり、それらの配置配線情報及び配置配線の変更手順がデータベース３２に格納されているものとする。実行部３４は、まずステップ１２１において、データベース３２からの情報に基づいて、回路構成を変更する対象となる再構成可能デバイス２０を指定し、ステップ１２２において、変更後にどのような回路構成にするかを指定し、次にステップ１２３において、指定した再構成可能デバイス２０を経由する通信が存在する場合、指定した再構成可能デバイス２０を迂回するように、その通信の経路を変更し、さらに、ステップ１２４において、指定した再構成可能デバイス２０を再構成し、回路構成を変更する。最後に、ステップ１２５において、実行部３４は、ステップ１２３において迂回させた通信経路を元の経路に戻す。上述したようにアクセラレータ内接続部１４に対する配線構成の設定によって実行され、また、回路構成の設定は、該当する再構成可能デバイス２０に対してリソースマネージャ装置１１から制御信号を送ることによって実行される。このように処理フローを進めることで、動作中のアプリケーションを中断することなく新たにアプリケーションを追加することができる。ただし、経路を変更するためにスイッチを切替えるときに通信の瞬断が発生する。
【００３５】
図６は、図４のステップ１０３に示す削除処理フローを具体的に示したものであって、実行中のアプリケーションを削除するために実行部３４が行う具体的な手順を示している。実行部３４は、まずステップ１３１において、対象となるアプリケーションを停止させ、次にステップ１３２において、対象となるアプリケーションに含まれる１組のモジュール対を選択し、ステップ１３３において、選択したモジュール間の配線資源を解放する。最後にステップ１３４において、実行部３４は、まだ配線資源が未解放である対象モジュール対が存在するかどうかを判定し、存在する場合にはその未解放配線資源の解放のためにステップ１３２に戻り、配線資源が未解放である対象モジュール対が存在しなければ処理を終了する。以上の削除処理フローにおいて、ステップ１３１は再構成可能デバイス２０を実際に操作するものであるが、ステップ１３２〜１３４は、システムの利用状況を更新するための仮想的な処理である。ステップ１３２〜１３４を実行することによって解放された配線資源に関する情報は、実行部３４によってデータベース３２に登録される。
【００３６】
このように、このデータ処理システム１０におけるアプリケーションの削除とは、モジュール間の配線資源を解放するだけであり、モジュール自体は再構成可能デバイス２０の上に実装されたままである。再構成可能デバイス２０上に実装されたままとなっているモジュールは、配線資源を再度与えることで再び利用することができる。よって、ユーザ要求によって新たにアプリケーションが必要となった時、この未使用モジュールを使ってアプリケーションを構成することができる。未使用モジュールを使ってアプリケーションを構成できた場合、再構成可能デバイス２０における回路構成を再構成することでアプリケーションを構成する場合に比べ、ユーザ要求の受付けから処理開始までの時間を短くすることができる。
【００３７】
図４、図５及び図６で示したこれらの処理によりユーザからの要求に合わせてアプリケーションの追加及び削除を行うことが可能となるが、このような処理を用いてアプリケーションの追加と削除とを繰り返した場合、計算資源及び配線資源、特に配線資源が必要最低限の量を超えて消費される問題が発生する。そこで本実施形態では、ユーザ要求が来ていないとき、すなわち、インタフェース３０から集約部３６に対して割込通知が出ていないときに、集約部３６によって、モジュールの集約計画を立案して配線資源の再割当てを実行する。図７は、配線資源の再割当ての処理手順を示している。
【００３８】
配線資源は、再構成可能デバイス上に実装されたモジュールが通信するために必要な資源であるから、個々の配線資源は、１対のモジュール間に設定されるものである。また、モジュールが外部との通信を行うためにも配線資源を必要とするから、モジュールと入出力インタフェース（Ｉ／Ｆ）２１との間に配線資源が設定される。そこで集約部３６は、まずステップ１４１において、データベース３２を参照し、配線資源の消費量に基づいて、消費量が多い順にモジュール対、もしくはモジュール・入出力インタフェース対を登録したリストを作成する。図８は、このようにして作成されたリストの一例を示している。ここに示すリスト４０では、配線資源を消費するモジュール対（あるいはモジュール・入出力インタフェース対）ごとに、始点となるモジュール（あるいは入出力インタフェース）の識別番号、終点となるモジュール（あるいは入出力インタフェース）の識別番号、それらのモジュール間（あるいはモジュールと入出力インタフェースとの間）のバス幅ＢＵＳ、それらのモジュール間（あるいはモジュールと入出力インタフェースとの間）のステップ数ＳＴＥＰ、及び通信コストを記述するものである。ステップ数は、当該モジュール間（あるいはモジュールと入出力インタフェースとの間）に存在する再構成可能デバイス２０の数に１を加えたものである。ただし、始点となるモジュールと終点となるモジュールが同一の再構成可能デバイス２０に実装されていてモジュール間の通信がその再構成可能デバイス２０の内部で完結する場合には、ステップ数を０とする。通信コストは、バス幅ＢＵＳとステップ数ＳＴＥＰとの積である。ステップ１４１では、リスト４０を作成するとともに、通信コストの降順でリスト４０のソートも行う。ステップ１４２において、集約部３６は、各モジュール対（及びモジュール・入出力インタフェース対）間の通信コストの総和を求め、これを後述する評価値の初期値となる値ｈrefとする。
【００３９】
次にステップ１４３において、集約部３６は、作成したリスト４０の上位より順にモジュール対もしくはモジュール・入出力インタフェース対を選択し、ステップ１４４において、リスト４０に対象物（すなわち選択されたモジュール対あるいはモジュール・入出力インタフェース対）が存在したかを判定し、存在しなければ、処理を終了する。対象物が存在した場合、集約部３６は、ステップ１４５において、モジュールの移動先を決定する。移動先の候補としては、未使用モジュールや空デバイスが挙げられ、モジュールの移動先を決定する探索方法には、配線資源の消費量が最小になるものから順に配置に成功するまで探索する方法などがある。次に、ステップ１４６において集約部３６は、モジュールを移動した後の配置状況における評価値（ｈio）を算出する。評価値には、各モジュール間の通信コストの総和を用いる。モジュールの移動に成功した場合、選択したモジュール対間の通信コストは削減されるが、その前後のモジュールとの通信コストは増加する可能性がある。そこで、ステップ１４７において、集約部３６は、モジュールの移動前の評価値（ｈref）とモジュールの移動後の評価値（ｈio）を比較する。モジュールの移動前の評価値（ｈref）の方が良い場合、すなわち通信コストの総和が小さい場合は、ステップ１４３に戻り、リスト４０の次の項目（モジュール対）を選択対象に選び、上述した処理を繰り返す。逆に、モジュールの移動後の評価値（ｈio）の方が良い場合、すなわち通信コストの総和が小さい場合には、そのようなモジュールの移動を実際に行うこととして、ステップ１４８において、集約部３６は、リスト４０と評価値の更新を行う。リスト４０の更新では、モジュールの移動後のステップ数と通信コストの書換えを行い、通信コストの降順にソートを行う。評価値の更新は、ｈioを新たなｈrefとすることによって行われる。ステップ１４８の実行後、ステップ１４３に戻り、更新後のリスト４０における最初のモジュール対（あるいはモジュール・入出力インタフェース対）を選び、上述した処理を繰り返す。
【００４０】
図９は、ステップ１４８において更新されたリスト４０を示している。図８に示したリスト４０を対象として上述の処理を実行したとすると、ステップ１４３では、モジュール対（Ｂ，Ｄ）が選択され、このモジュール対を同一の空デバイスに移動した場合、そのステップ数は０になり、通信コストも０になる。モジュールの移動前の通信コストの総和（図８での通信コストの総和）は１０５であり、モジュールの移動後の通信コストの総和（図９での通信コストの総和）は８２であることから、ステップ１４７における判定により、この移動は認められる。これにより、ステップ１４８においてリスト４０の更新が行われる。このとき、モジュール対（Ｂ，Ｄ）を移動したことで変化した各モジュール対のステップ数から通信コストを再度算出し、降順にソートしている。
【００４１】
ステップ１４１〜１４８の処理を実行することで、どのモジュールをどの再構成可能デバイス２０に移動させるかが決定され、モジュールの集約計画が立案されたことになるから、集約部３６は、立案された集約計画に基づいて、モジュールの配置配線情報及びモジュールの配置配線の変更手順をデータベース３２に登録する。実行部３４は、配置配線の変更手順をデータベース３２から読出して、必要な配置配線の変更命令を順次発行し、これに基づいてデータ処理システム１０内において、実際のモジュールの移動とそれに伴う配線資源の割当ての変更とが実行される。
【００４２】
以上のような処理を行うことで、複数の再構成可能デバイスを有するデータ処理システムにおいて、システムが継続して動作することで必要最低限の量を超えて配線資源が消費された場合に、現に実行中のアプリケーションを中断することなく、配線資源の余分な消費を減らすことができ、低下したシステムの利用効率を改善することができる。特に、モジュールの移動先の選定に際して空デバイスの総数が増加するように移動先を決定することにより、空デバイスの総数が増加しかつ配線資源の使用量が減少するように、複数の再構成可能デバイス上に散らばったモジュールを集約することができるので、再構成可能デバイスの利用効率を改善することができる。
【００４３】
以上説明した各処理は、リソースマネージャ装置１１によって実行される。このような処理を実行するリソースマネージャ装置１１は、上記の各処理を実行するハードウェア装置として構成することもできるが、専用のコンピュータを用い、そのコンピュータ上で、コンピュータを上述のようなリソースマネージャ装置として機能させるためのソフトウェアプログラム（リソースマネージャ用プログラム）を実行させることによって実現することができる。あるいは、サーバコンピュータにアクセラレータを組み合わせ、ユーザ要求の処理のうち演算時間上あるいは演算負荷上の制約が緩い処理をサーバコンピュータに行わせるようにしたデータ処理システムの場合であれば、サーバコンピュータ上で、リソースマネージャ用プログラムを実行させてリソースマネージャ装置１１を実現してもよい。リソースマネージャ用プログラムは、記録媒体に格納されてコンピュータに提供されてもよいし、あるいは、ネットワークを介してコンピュータに提供することもできる。
【符号の説明】
【００４４】
１０    データ処理システム
１１    リソースマネージャ装置
１２    アクセラレータ
１３    再構成可能ハードウェア処理部
１４    アクセラレータ内接続部
１５    入出力部
１６    制御信号線
１７    データ信号線
２０    再構成可能デバイス
２１    入出力インターフェース（Ｉ／Ｆ）
３０    インタフェース
３１    判定部
３２    データベース
３４    実行部
３５    ＡＰＩ部
３６    集約部
３７    記憶装置
３８    データベース管理部
４０    リスト
【図１】
2016009305.tif 000003
【図２】
2016009305.tif 000004
【図３】
2016009305.tif 000005
【図４】
2016009305.tif 000006
【図５】
2016009305.tif 000007
【図６】
2016009305.tif 000008
【図７】
2016009305.tif 000009
【図８】
2016009305.tif 000010
【図９】
2016009305.tif 000011