データフローを実現するための処理をそれぞれ割り当て可能な複数の構成要素を備える情報処理装置であって、第1のデータフローを前記複数の構成要素によって実現するための設定情報と、前記複数の構成要素の構成情報とを入力する入力手段と、前記設定情報と前記構成情報とに基づいて、前記第1のデータフローを実現するための処理を前記複数の構成要素に割り当てる際に、第2のデータフローを実現するための設定との間で変更する構成要素の数が小さくなるように前記複数の構成要素へ処理を割り当てる制御手段と、を備えることを特徴とする情報処理装置。前記入力手段は、前記第1のデータフローおよび前記第2のデータフローを含む複数のデータフローを前記複数の構成要素によって実現するためのそれぞれの設定情報と、前記複数のデータフローの実行順序と、をさらに入力することを特徴とする請求項1に記載の情報処理装置。前記制御手段は、前記実行順序に基づいて、前記複数のデータフローに対して前記構成要素のそれぞれに処理を割り当てる割当候補を決定する候補決定手段と、前記それぞれの設定情報と前記構成情報とに基づいて、前記割当候補ごとに割り当ての変更数を算出する変更数算出手段と、前記変更数が少なくなるように前記構成要素への処理の割り当てを決定する決定手段と、を備えることを特徴とする請求項2に記載の情報処理装置。前記決定手段は、前記構成情報に基づいて前記割当候補が前記構成要素に割当可能であるか否かを判定する判定手段と、前記判定手段により割当可能でないと判定された場合、ペナルティ値を決定するペナルティ値決定手段と、前記変更数と前記ペナルティ値とに基づいて割り当てを決定するための評価値を算出する評価値算出手段と、前記評価値が閾値以下であるか否かを判定する評価値判定手段と、を備え、前記決定手段は、前記評価値が閾値以下であると判定された場合に、前記割当候補を前記構成要素への処理の割り当てとして決定することを特徴とする請求項3に記載の情報処理装置。前記変更数算出手段は、前記複数のデータフローのうち、少なくとも1つのデータフローに対して処理が前記構成要素へ割り当て済みである場合、当該割り当てを参照して、各構成要素に処理が割り当てられていない次の実行順序のデータフローに対する処理の割り当ての変更数を前記割当候補ごとに算出することを特徴とする請求項3または4に記載の情報処理装置。前記変更数算出手段は、前記複数のデータフローのうち、各構成要素に処理が割り当てられていないデータフローに対する処理の割り当ての変更数を、前記割当候補ごとにそれぞれ一括して算出することを特徴とする請求項3または4に記載の情報処理装置。前記入力手段は、前記実行順序に対する各構成要素に処理が割り当てられていないデータフローの挿入先順序をさらに入力し、前記変更数算出手段は、前記挿入するデータフローの処理の前後に処理される処理割り当て済みの各データフローの処理割り当てを参照して、前記各構成要素に処理が割り当てられていないデータフローに対する前記構成要素への処理の割り当ての変更数を前記割当候補ごとに算出することを特徴とする請求項3または4に記載の情報処理装置。前記変更数算出手段は、前記データフローごとに、あるいは前記構成要素の処理ごとに、重み付けして前記変更数を算出することを特徴とする請求項3乃至7の何れか1項に記載の情報処理装置。入力手段と、制御手段と、データフローを実現するための処理をそれぞれ割り当て可能な複数の構成要素と、を備える情報処理装置の制御方法であって、前記入力手段が、第1のデータフローを前記複数の構成要素によって実現するための設定情報と、前記複数の構成要素の構成情報とを入力する入力工程と、前記制御手段が、前記設定情報と前記構成情報とに基づいて、前記第1のデータフローを実現するための処理を前記複数の構成要素に割り当てる際に、第2のデータフローを実現するための設定との間で変更する構成要素の数が小さくなるように前記複数の構成要素へ処理を割り当てる制御工程と、を備えることを特徴とする情報処理装置の制御方法。請求項9に記載の情報処理装置の制御方法の各工程をコンピュータに実行させるためのプログラム。しかしながら、一般に再構成デバイスでは様々なアプリケーションを実行する可能性があり、アプリケーションによっては共通部分が少なくなる。また、再構成すべき回路構成情報の数もアプリケーションによって異なる。特許文献1で述べられている先行ベース回路において、共通部分が少ないもしくは、回路構成情報の数が多く再構成デバイスの回路規模を大幅に超えてしまう場合には回路構成を変更するための期間を効率的に削減することが難しいという課題がある。上記の課題に鑑み、本発明は、回路構成変更の順序を考慮することで、回路規模を増やすことなく回路変更に要する時間を効率的に短縮することを目的とする。上記の目的を達成する本発明に係る情報処理装置は、データフローを実現するための処理を其々割り当て可能な複数の構成要素を備える情報処理装置であって、第1のデータフローを前記複数の構成要素によって実現するための設定情報と、前記複数の構成要素の構成情報とを入力する入力手段と、前記設定情報と前記構成情報とに基づいて、前記第1のデータフローを実現するための処理を前記複数の構成要素に割り当てる際に、第2のデータフローを実現するための設定との間で変更する構成要素の数が小さくなるように前記複数の構成要素へ処理を割り当てる制御手段と、を備えることを特徴とする。本発明によれば、再構成に必要な設定数を減らすように回路構成情報を作成することにより、回路規模を増やすことなく再構成デバイスの再構成に要する時間を短縮することが可能となる。第1実施形態図1を参照して、データフローを実現するための部分処理をそれぞれ割当可能な複数の構成要素を備える情報処理装置として機能する、再構成デバイスを有するシステムの全体構成の一例を示す。ここで、データフローとは、1つ以上の処理を有する一連の処理を示すものとし、パイプライン処理もその1つである。外部メモリ101は、内部に回路構成情報106を保持している。回路構成情報106は再構成デバイス105を構成する要素を制御して動作させる設定情報である。コンフィギュレーションコントローラ102は、上記外部メモリ101から結線104を通じ回路構成情報106を取得する。取得した回路構成情報106は結線103を通じて再構成デバイス105へ送られる。ここで再構成デバイス105の例としてプロセッシングエレメントアレイとしている。また以下では具体的にプロセッシングエレメントアレイ内の説明をするが、本発明は下記の各プロセッシングエレメントの構成や経路構成に限定されるものではない。図2は、本実施形態における再構成デバイス105であるプロセッシングエレメントアレイの概要を示す。再構成デバイス105には、8入力8出力の入出力処理部であるスイッチングエレメント201が二次元格子状に配置され、演算処理部である4入力4出力のプロセッシングエレメント202が、スイッチングエレメント201により形成される格子内に配置されている。スイッチングエレメント201a~スイッチングエレメント201iの8入力8出力は、1入力1出力を一組としてそれぞれ図面上部を北方向として東西南北右左下上方向の、他の4つのスイッチングエレメント201と、結線203aおよび結線203bを介して夫々接続されている。さらに、北東、南東、南西、北西方向の、それぞれ別の4つのプロセッシングエレメント202と結線204aおよび結線204bを介して双方向に接続されている。またスイッチングエレメント201a~スイッチングエレメント201iおよびプロセッシングエレメント202a~プロセッシングエレメント202dは結線205により一方向に数珠繋ぎに接続されている。結線203a、結線203bおよび結線204a、結線204bはスイッチングエレメント201やプロセッシングエレメント202の間で処理対象データを通信するための結線である。結線205は、スイッチングエレメント201やプロセッシングエレメント202に設定を供給するための結線である。上述の設定によって、スイッチングエレメント201においては処理対象データの入出力先が決定され、プロセッシングエレメント202においては処理対象データの入出力先や処理内容が決定される。なお、図2の各結線203a、結線203b、結線204a、結線204b、結線205の矢印の方向はデータの流れる方向を示している。またスイッチングエレメント201a~スイッチングエレメント201iはそれぞれ同じ構成を有し、プロセッシングエレメント202a~プロセッシングエレメント202dはそれぞれ同じ構成を有する。ここで、図3を参照して、各結線203a、結線203b、結線204a、結線204b、結線205の通信プロトコルの一例として、Valid信号とReady信号による2線ハンドシェークを説明する。図3では、送信側であるモジュールA301と受信側であるモジュールB302との間が、データ信号線303、Valid信号線304およびReady信号線305により接続されている。Valid信号はValid信号線304を通じて伝達される信号であり、送信側が受信側に対して送信可能状態であることを示す信号である。Ready信号は、Ready信号線305を通じて伝達される信号であり、受信側が送信側に対しデータ受信可能状態であることを示す信号である。本プロトコルではモジュールA301からのValid信号線304とモジュールB302のReady信号線305とが両方有効となるクロック立ち上がりのタイミングでデータ信号線303のデータがモジュールA301からモジュールB302へと送信される。図3に示される波形中ではタイミング306aでデータAが、タイミング306bでデータBが、タイミング306cでデータCが、タイミング306dでデータDが、それぞれモジュールA301からモジュールB302へと転送されている。次に、図4を参照して、プロセッシングエレメント202の構成を説明する。プロセッシングエレメント202は、コンフィギュレーションユニット401と、インプットユニット402と、コンピュテーショナルユニット403と、アウトプットユニット404と、テンポラリーバッファ405とを備える。コンフィギュレーションユニット401は、プロセッシングエレメント202の動作内容を決定するための設定の管理を行う。インプットユニット402は、コンフィギュレーションユニット401の設定に基づき、入力処理を行う。コンピュテーショナルユニット403は、コンフィギュレーションユニット401の設定に基づき、演算処理を行う。また、コンピュテーショナルユニット403は、再度コンピュテーショナルユニット403に入力するためテンポラリーバッファ405に処理された結果を保持することが可能である。アウトプットユニット404は、コンフィギュレーションユニット401の設定に基づき、出力処理を行う。プロセッシングエレメント202の動作をより具体的に説明する。インプットユニット402は、コンフィギュレーションユニット401から、入力先を決定するための設定情報を、結線406を通じて取得する。取得した設定情報にはどの入力ポートを介して外部接続されているモジュールと通信を行うかが指定されている。その設定情報に基づいて、結線204a-ne、結線204a-se、結線204a-sw、結線204a-nw、を通じて処理対象であるデータを取得する。ここで結線204a-neは北東に配置されたスイッチングエレメントと接続されている。また、結線204a-seは南東に配置されたスイッチングエレメントと接続されている。結線204a-swは南西に配置されたスイッチングエレメントと接続されている。結線204a-nwは北西に配置されたスイッチングエレメントと接続されている。各結線を通じて取得したデータは、結線409を通してコンピュテーショナルユニット403に送られる。コンピュテーショナルユニット403は、コンフィギュレーションユニット401から、処理内容を決定するための設定情報を、結線407を通じて取得する。取得した設定情報に基づいてインプットユニット402から送られてくるデータを取得し、処理を行う。処理したデータは結線410を通じてアウトプットユニット404に送られる。コンピュテーショナルユニット403は、少なくとも一つの演算器を保持している。演算器は例えば、加減算器、比較器、乗算器、除算器、論理演算器、などの演算器、または、これらの組合せからなる演算器、さらにはこれらと他の演算器の組合せからなる演算器などである。以下では具体的な例として、コンピュテーショナルユニット403では、積和演算処理または比較演算処理を行うことが可能であり、一度の演算でどちらか一方を選択的に行うことができるものとして説明する。積和演算では、abcdといった処理を行い、比較演算では、もしa>bならばcを出力、そうでなければdを出力するといった処理を行う。また、コンピュテーショナルユニット403は、一度の入力に対して、演算器を繰り返し使用することが可能な構成となっている。繰り返して使用する場合は一旦演算器で使用された処理結果を、結線412を通して、テンポラリーバッファ405に保存し、その後、結線411を通して、再度コンピュテーショナルユニット403に入力する。再度入力されたデータに対して、新たに演算器にて処理を行う。後で詳細を述べるが、設定情報には、演算の種類や繰り返し処理、またそれぞれの処理で必要な変数a、b、c、dはどの値を参照するか、また固定値ならばその値を指定することなどの情報が含まれる。アウトプットユニット404は、処理したデータの出力先を示す設定情報を、結線408を通じて取得する。取得した設定情報には、どの出力ポートを介してスイッチングエレメントと通信を行うかが指定されており、その設定情報に基づいて、結線204b-ne、結線204b-se、結線204b-sw、結線204b-nw、を通じてスイッチングエレメントへ出力する。ここで結線204b-neは北東に配置されたスイッチングエレメントと接続されている。また、結線204b-seは南東に配置されたスイッチングエレメントと接続されている。結線204b-swは南西に配置されたスイッチングエレメントと接続されている。結線204b-nwは北西に配置されたスイッチングエレメントと接続されている。次にコンフィギュレーションユニット401の動作について説明する。コンフィギュレーションユニット401は、プロセッシングエレメント202毎にユニークなIDを保持している。コンフィギュレーションユニットは、入力側の結線205より送られてくる設定情報を取得し、コンフィギュレーションユニット内で処理し、出力側の結線205を通して設定情報を出力する。コンフィギュレーションユニット401は、自らのIDに対応する設定情報を格納するためのコンフィギュレーションメモリ413を有している。図5を参照して、コンフィギュレーションユニット401に対して送受信される、設定のためのコンフィギュレーションコマンド501を説明する。コンフィギュレーションコマンド501は、リード/ライトモード502、ID503、コンフィギュレーションアドレス504、設定値505を備える。リード/ライトモード502は、コンフィギュレーションコマンド501の読み書きの処理を決定する信号である。ID503は、処理対象のプロセッシングエレメント202を決める信号である。コンフィギュレーションアドレス504は、コンフィギュレーションユニット401中の設定が保持されているメモリ内の番地を指定する信号である。設定値505は、実際の設定値を表す信号である。図5においてビット幅を示すM、N、O、Pは実際に構成するアーキテクチャによって決められる値である。以下では上述した構成に基づく設定に関して、図6を参照してより具体的に説明する。図6において、アドレス601は、コンフィギュレーションメモリ413のアドレスを示しており、図5のコンフィギュレーションアドレス504により指定されるアドレスに相当する。設定値602は、実際の設定値を示しており、図5の設定値505に相当する。本実施形態ではこれら一つ一つを設定情報と読んでいるが、本発明は上述の単位に限るものではない。図6はインプットユニット402、コンピュテーショナルユニット403、アウトプットユニット404に関する設定情報がコンフィギュレーションメモリ413に保持されている例を示している。アドレス0x0000_0000で示した入力選択値は、インプットユニット402における入力先を決定するための設定値であり、当該値に応じて所定の入力先が決まる。アドレス0x0000_0004で示した繰り返し数は、コンピュテーショナルユニット403における演算の繰り返し回数を決定するための設定値であり、当該値に応じて演算の繰り返し回数が決まる。本実施形態では4回までの演算を想定している。アドレス0x0000_0008で示した動作設定は、1度目の演算で行う、演算の種類を決定するための設定値であり、当該値に応じて積和演算か比較演算かが決まる。アドレス0x0000_000cで示した可変設定は、1度目の演算で、変数aの値の参照先を決めるための設定値である。参照先としては、入力ポートからの入力値、コンフィギュレーションメモリ413に保持されている固定値、以前の計算結果が保持されているテンポラリーバッファ405の値がある。この値に応じて、上記いずれかの値がこの変数aに入力される。またアドレス0x0000_000cと同様に、アドレス0x0000_0010、アドレス0x0000_0014、アドレス0x0000_0018で示した可変設定はそれぞれ、1度目の演算における変数b、c、dの値の参照先を決めるための設定値である。次にアドレス0x0000_001cで示したパラメータは、1度目の演算においてアドレス0x0000_000cで指定された参照先が固定値の場合の、変数aのための固定値である。アドレス0x0000_001cと同様にアドレス0x0000_0020、アドレス0x0000_0024、アドレス0x0000_0028で示した固定値は、それぞれ1度目の演算で変数b、c、dで使用される場合の値である。続くアドレス0x0000_002c不図示からアドレス0x0000_0094までは、上記アドレス0x0000_0008~アドレス0x0000_0028で示した1度目の演算に係る設定と同様にそれぞれ、2度目、3度目、4度目の設定値を示している。最後にアドレス0x0000_0098で示した出力選択値は、アウトプットユニット404における出力先を決定するための設定値であり、当該値に応じて所定の出力先が決まる。次に図7のフローチャートを参照して、コンフィギュレーションユニット401で行われる処理の手順を説明する。S701において、コンフィギュレーションユニット401は、コンフィギュレーションコマンド501を取得する。すなわち、コンフィギュレーションユニット401へコンフィギュレーションコマンド501が入力される。S702において、取得されたコンフィギュレーションコマンド501により指定されたID503が、コンフィギュレーションユニット401の持つ自身のIDと一致するかどうかを判定する。ID503が自身のIDと一致すると判定された場合S702;YES、ステップS703へ進む。一方、ID503が自身のIDと一致しないと判定された場合S702;NO、ステップS711へ進む。S703において、コンフィギュレーションユニット401は、リード/ライトモード502の値がリードモードを示すかどうかを判定する。リード/ライトモード502の値がリードモードを示すと判定された場合S703;YES、S704へ進む。一方、リード/ライトモード502の値がリードモードを示さないと判定された場合S703;NO、S707へ進む。S704において、コンフィギュレーションユニット401は、コンフィギュレーションメモリ413からコンフィギュレーションアドレス504により指定されたデータを読み出す。S705において、コンフィギュレーションユニット401は、S701で取得されたコンフィギュレーションコマンド501の設定値505へ、S704で読み出されたデータを書き込む。S706において、コンフィギュレーションユニット401は、そのコンフィギュレーションコマンド501を出力する。その後、処理を終了する。S707において、コンフィギュレーションユニット401は、リード/ライトモード502の値がライトモードを示すかどうかを判定する。リード/ライトモード502の値がライトモードを示すと判定された場合S707;YES、S708へ進む。一方、リード/ライトモード502の値がライトモードを示さないと判定された場合S707;NO、S711へ進む。S708において、コンフィギュレーションユニット401は、S701で取得されたコンフィギュレーションコマンド501の設定値505を、コンフィギュレーションアドレス504で指定されたコンフィギュレーションメモリ413に書き込む。S709において、コンフィギュレーションユニット401は、S701で取得されたコンフィギュレーションコマンド501の値を変更せずにそのまま保持する。S710において、コンフィギュレーションユニット401は、コンフィギュレーションコマンド501の値を変更せずにそのまま出力する。その後、処理を終了する。S711において、コンフィギュレーションユニット401は、S701で取得されたコンフィギュレーションコマンド501の値を変更せずにそのまま保持する。S712において、コンフィギュレーションユニット401は、コンフィギュレーションコマンド501の値を変更せずにそのまま出力する。その後、処理を終了する。図7のフローにおいては、一度のコンフィギュレーションコマンド501で一つの設定値505を変更するため、順次コンフィギュレーションコマンド501を送信し、必要な設定値を全て変更することにより所望の処理を実現する。つまり、この設定数が処理内容の切り替え時間を決めていることとなる。次に図8を参照して、スイッチングエレメント201の構成を説明する。スイッチングエレメント201は、コンフィギュレーションユニット801と、クロスバースイッチ802とを備える。コンフィギュレーションユニット801は、データを転送する接続先を決定するための設定値を管理する。クロスバースイッチ802は、コンフィギュレーションユニット801の設定に基づき一対一に入出力を接続する。プロセッシングエレメント202のコンフィギュレーションユニット401と同様に、コンフィギュレーションユニット801は、スイッチングエレメント201毎にユニークなIDを保持している。コンフィギュレーションユニットは入力側の結線205より送られてくる設定値を取得し、コンフィギュレーションユニット内で処理を行い、出力側の結線205を通して設定値を出力する。コンフィギュレーションユニット801は、取得された設定情報をコンフィギュレーションメモリ804に保持している。コンフィギュレーションユニット801のコンフィギュレーションコマンドおよびその処理フローは、図5に示したフォーマット、および図7に示した処理フローと同様である。クロスバースイッチ802は、コンフィギュレーションユニット801から、データの入出力先を決定する設定情報を、結線803を通じて取得する。スイッチングエレメント201は、取得された設定値に基づき結線203a-w、結線203a-s、結線203b-e、結線203b-n、結線204b-ne、結線204b-se、結線204b-sw、結線204b-nwの少なくとも何れかを通じてデータを取得する。取得されたデータは、接続されている結線203a-e、結線203a-n、結線203b-w、結線203b-s、結線204a-ne、結線204a-se、結線204a-sw、結線204a-nwの少なくとも何れかを通じて渡す。ここで結線203a-w、結線203a-sはそれぞれ西、南に配置されたスイッチングエレメントと接続されていることを意味する。結線203b-e、結線203b-nはそれぞれ東、北に配置されたスイッチングエレメントと接続されていることを意味している。また、結線203a-e、結線203a-nはそれぞれ東、北に配置されたスイッチングエレメントと接続されていることを意味する。結線203b-w、結線203b-sはそれぞれ西、南に配置されたスイッチングエレメントと接続されていることを意味している。結線204a-ne、結線204a-se、結線204a-sw、結線204a-nwはそれぞれ北東、南東、南西、北西に配置されたスイッチングエレメントと接続されていることを意味している。結線204b-ne、結線204b-se、結線204b-sw、結線204b-nwはそれぞれ北東、南東、南西、北西に配置されたスイッチングエレメントと接続されていることを意味している。図9を参照して、コンフィギュレーションメモリ804に保持されている、スイッチングエレメント201におけるクロスバースイッチ802の入出力の接続に関する設定例を説明する。アドレス901はメモリのアドレスを示しており、図5のコンフィギュレーションアドレス504で指定されるアドレスに相当する。コネクション設定902は、図5の設定値505を示している。アドレス0x0000_0000で示したコネクション設定902は、結線203a-wからの入力を、結線203a-e、結線203a-n、結線203b-w、結線203b-s、結線204a-ne、結線204a-se、結線204a-sw、結線204a-nwのいずれに出力するかを決定するための設定値である。続く、アドレス0x0000_0004で示したコネクション設定902は、結線203a-sからの入力を、アドレス0x0000_0000で示したコネクション設定902と同様にどの結線に出力するかを決定する設定値である。アドレス0x0000_0008で示したコネクション設定902は、結線203b-eからの入力をアドレス0x0000_0000で示したコネクション設定902と同様にどの結線に出力するかを決定する設定値である。アドレス0x0000_000cで示したコネクション設定902は、結線203b-nからの入力を、アドレス0x0000_0000で示したコネクション設定902と同様にどの結線に出力するかを決定する設定値である。アドレス0x0000_0010で示したコネクション設定902は、結線204b-neからの入力を、アドレス0x0000_0000で示したコネクション設定902と同様にどの結線に出力するかを決定する設定値である。アドレス0x00000014で示したコネクション設定は、結線204b-seからの入力を、アドレス0x0000_0000で示したコネクション設定902と同様にどの結線に出力するかを決定する設定値である。アドレス0x0000_0018で示したコネクション設定902は、結線204b-swからの入力を、アドレス0x0000_0000で示したコネクション設定902と同様にどの結線に出力するかを決定する設定値である。アドレス0x0000_001cで示したコネクション設定902は、結線204b-nwからの入力を、アドレス0x0000_0000で示したコネクション設定902と同様にどの結線に出力するかを決定する設定値である。図10を参照して、上述した再構成デバイスの構成を複数種類変更して所望の処理を実現するためのタイムチャートの一例を説明する。図10は、同一の再構成デバイスにおいて複数の異なるデータフローA~Zを順に実行しているタイムチャートを示している。本実施形態で扱うデータフローとは、再構成デバイスへ一度に処理を割り当て可能な単位で構成されたデータフローのことである。各データフローを処理するための設定は予め生成しておく。再構成デバイスに対して予め生成された設定に基づき再構成デバイスを再構成し、その構成のもとで処理をするという一連の処理が、所望の実行順序で順々に行われる。以下ではデータフローA第2のデータフローを処理割り当て済みとし、データフローB第1のデータフローを処理割り当て対象として説明する。具体的には、処理割り当て済みのデータフローAを実行するための設定値を参照し、データフローBの処理割り当てを決定する。データフローAの処理割り当てを参照しデータフローBの処理割り当てを決定した後、次はデータフローBを処理割り当て済みとし、データフローCを処理割り当て対象とする。具体的にはデータフローBの処理割り当てを決定した時と同様に、処理割り当て済みのデータフローBを実行するための設定値を参照し、データフローCの処理割り当てを決定する。上記の手順を順々に繰り返すことでAからZまでのデータフローの処理割り当てを行うことが可能となる。なお、第1のデータフローと第2のデータフローとの両方が処理割り当て対象であってもよい。その場合は、一括して割当を行うことになるが、そのような場合については第2実施形態で後述する。次に、再構成デバイスのプロセッシングエレメントへのデータフローの処理割り当てについて説明する。ここで、データフローのプロセッシングエレメントへの処理割り当てとは、データフローの各処理をプロセッシングエレメントに論理的に割り当てる方法である。より具体的には、図11に示すように、データフローの各ノードに対応する処理内容をどのプロセッシングエレメントにおいて、どの順序で行うかを決めることである。図11aはあるデータフローAを表し、図11bは処理割り当て例を表し、図11cは処理割り当てに基づく、図6で示した設定を表す。前述の通り、本実施形態で示すプロセッシングエレメントが有する機能としては、繰り返し処理数や、各処理回数目での処理内容やその際に必要となる固定値を想定しており、実際にはこの設定を決めることになる。なお、本実施形態では最大の繰り返し処理回数は4回という想定である。データフローAの処理は、A0、A1、...A13までの各処理が図11aに示すような流れで行われる。このデータフローAに対して、図11bで表すように、グループ1101a~グループ1104aでくくったグループごとに、異なるプロセッシングエレメント202-1~プロセッシングエレメント202-4に対して処理を順序付けて割り当てる。グループ1101a~グループ1104aに基づき、それぞれプロセッシングエレメント202-1~プロセッシングエレメント202-4に対する設定1101b~設定1104bを決定する図11c。本発明は、図10で示したように同一の再構成デバイスにおいて処理内容が切り替わる際に必要となる、図11で示したような設定数の削減を目的とした処理割り当て方法を提供する。ここで図12を参照して、再構成デバイスにおける処理がデータフローAからデータフローBへ変更される際に各プロセッシングエレメント202-1~プロセッシングエレメント202-4の設定変更について説明する。データフローAの設定1204の処理は、タイムチャートの処理A1201に相当し、既に処理割り当て済みであるものとする。データフローBの設定1205の処理は、タイムチャートの処理B1203に相当し、処理割り当て対象のデータフローとする。データフローAの設定1204とデータフローBの設定1205のそれぞれの処理が割り当てられるプロセッシングエレメント202-1~プロセッシングエレメント202-4は、それぞれ論理的に同一のプロセッシングエレメントを意味している。設定1101b~設定1104bは、それぞれデータフローAの処理時のプロセッシングエレメント202―1~プロセッシングエレメント202-4に関する設定である。そして、設定1206~設定1209は、それぞれデータフローBの処理時のプロセッシングエレメント202―1~プロセッシングエレメント202-4に関する設定である。プロセッシングエレメント202-1では、タイムチャートのデータフローAからデータフローBへの設定変更期間1202において設定1101bから設定1206へと設定変更1210が行われる。プロセッシングエレメント202-2では、タイムチャートのデータフローAからデータフローBへの設定変更期間1202において設定1102bから設定1207へと設定変更1211が行われる。プロセッシングエレメント202-3では、タイムチャートのデータフローAからデータフローBへの設定変更期間1202において設定1103bから設定1208へと設定変更1212が行われる。プロセッシングエレメント202-4では、タイムチャートのデータフローAからデータフローBへの設定変更期間1202において設定1104bから設定1209へと設定変更1213が行われる。本実施形態ではデータフローBの処理割り当てに際し、まず各プロセッシングエレメント202-1~プロセッシングエレメント202-4における処理割り当て済みのデータフローAを参照する。その上で上記設定変更1210、設定変更1211、設定変更1212、設定変更1213を行う際に必要な設定変更数を少なくすることを目的としてデータフローBの処理割り当てを行う。以下、図13のフローチャートを参照して、本発明を実施する処理の手順を説明する。本実施形態では、シミュレーテッドアニーリングに基づく処理割り当て方法の例を示すが、本発明は上記手法のみに限定されるものではなく、遺伝的アルゴリズムなどのさまざまな近似解法や数値最適化法に基づいてもよい。まず、図12において、図13のフローチャートの説明に必要な要素について言及する。各データフローを示すインデックスをi、プロセッシングエレメントのインデックスをj、図6のアドレス601に相当するプロセッシングエレメント内で保持しているメモリのコンフィギュレーションアドレスをkとする。上記より各メモリ内の設定値はuijkと表すことができる。ここで処理割り当て済みのデータフローをi0、処理割り当て対象のデータフローをi1とする。S1301において、複数のデータフローとその実行順序関係を入力する。既に処理割り当て済みのデータフローに関しては、その設定値uijkも入力する。本実施形態ではデータフロー1204は既に処理割り当て済みであり、データフロー1204に関する各プロセッシングエレメントの各メモリ内の設定値は固定値として与えられる。そしてデータフロー1205は処理割り当て対象である。次に、S1302において、ハードウェア制約条件と要求仕様とを入力する制約入力処理。ここでハードウェア制約条件とは、再構成デバイス内のプロセッシングエレメントの個数やプロセッシングエレメントで処理可能な繰り返し処理回数、演算器の種類などハードウェア構成上の制約となりうる構成情報である。また要求仕様とは、プロセッシングエレメントの使用個数や繰り返し処理の回数の制限、使用可能な演算器の種類などハードウェア使用上で制限すべき項目である。さらに処理の入出力の順序関係に矛盾がないか、デッドロックがないか、なども本制約に関する。また、既に処理割り当て済みのデータフローに関しては処理割り当てを変更しないという制約も含む。ただし、本発明は上述の制約のみに限られるものではない。続いてS1303において、処理割り当て対象となるデータフローの処理割り当てを行う割当候補決定処理。初期処理割り当てにおいては、ランダムに割り当てる、ないしはデータフローの深さ方向順に処理を割り当てる方法があるが、これらの方法に限られるものではない。初期割り当てでない場合は、例えばランダムに二つの配置を選出し交換するように、シミュレーテッドアニーリングに基づき処理割り当てを変更する。本実施形態では、処理割り当て対象のデータフロー1205に関して初期処理割り当て、ないしは処理割り当て変更を行う。処理割り当て済みのデータフローに関しては、制約に基づき処理割り当ての変更は行わない。S1304において、処理割り当て結果がS1302で入力された要求仕様を満たしているか判断する。以下の式に示すように、制約を満たしていれば、ペナルティ変数p0を0とし、制約を満たしていない、すなわち違反があればペナルティ変数p0をペナルティ値Cp0とするペナルティ値決定処理。ここで本実施形態では、違反があった場合に一律Cp0を定数値として扱っているが、違反項目に応じた変数値としてもよい。S1305において、処理割り当て結果がS1302で入力されたハードウェア制約条件を満たしているかを判断する。以下の式に示すように、制約を満たしていれば、ペナルティ変数p1を0とし、違反している場合はペナルティ変数p1をペナルティ値Cp1とするペナルティ値決定処理。ここで本実施形態では、違反があった場合に一律Cp1を定数値として扱っているが、違反項目に応じた変数値としてもよい。次にS1306において、対象となるデータフロー変更期間における設定変更数の算出を行い、評価値を計算する設定変更数算出処理、評価値算出処理。なお、設定変更数のみに着目して、設定変更数が少なくなるような処理の割当を決定する構成であってもよい。図12の例で説明すると設定変更1210、設定変更1211、設定変更1212、設定変更1213の際に変更の必要がある設定数である。より具体的には、処理割り当て済みのデータフローi0における、設定値ui0jkと、処理割り当て対象のデータフローi1における、同じアドレスの設定値ui1jkとが一致していなければαp1を設定変更数に加える。一方、値が一致していれば何も加えない。上述の計算を全てのプロセッシングエレメントjの全てのメモリkに関して行う。以上で説明した設定変更数sは以下の式で表すことできる。ここでαp1は通常1であるが、プロセッシングエレメントのコンフィギュレーションメモリの構造に応じて、各設定が格納されているアドレス毎に重み付けを変更することも可能としている。またデータフロー毎に切り替え時間の優先度をつけるためにデータフロー毎に重みづけることも可能としている。図7で示した通り、一度のコンフィギュレーションコマンドで一つの設定値を変更することができることから、この数が少なくなれば、処理内容の切り替え時間を削減することが可能となる。本ステップで評価値Eを算出する際の式は上述の式より、以下のように定義する。つまり、要求仕様とハードウェア制約条件を満たしつつ、再構成に必要な設定変更数が少なくなるほど評価値Eは小さくなる。最後にS1307において、シミュレーテッドアニーリングに基づき評価値Eが目標値を達成したか否かを判断する。評価値Eが目標値を達成したと判断された場合S1307;YES、処理を終了する。一方、評価値Eが目標値を達成していないと判断された場合S1307;NO、S1303へ戻る。ここで、目標値とは、例えば予定された計算時間に達する際の値であってもよい。評価値Eが目標値を達成したとは、例えば、評価値が閾値以下である場合である評価値判定処理。一般的な再構成デバイスにおけるデータフローのプロセッシングエレメントへの処理割り当て方法では設定変更数を意識しないため、データフローの処理変更で全ての設定を変更する必要が生じる。本実施形態によれば、データフローの処理順に注目し、最小単位である設定レベルでの変更合計数を少なくすることにより、設定変更数削減を効果的に行うことが可能となる。第2実施形態図14aおよびbを参照して、本実施形態に係る処理のタイムチャートおよび、処理割り当ての概要を示す。本実施形態では、再構成デバイスの設定を変更することにより複数のデータフローの処理を行う際に、各データフローの処理内容自体は決まっているが、そのデータフローの実行順序が不定で、状況や入力データなどに応じて変更する場合の処理割り当てに関する実施形態である。具体的には図14aでは、再構成デバイスで行う処理として、タイムチャート1401で示すようにその実行順序が結果や状態などに応じて変わるなど、一定でない場合を想定している。タイムチャート1401における処理1402ではデータフローAに関する処理が行われ、処理1404、処理1408ではデータフローCに関する処理が行われ、処理1406ではデータフローBに関する処理が行われる。設定1403ではデータフローAからデータフローCへの設定変更が行われる。設定1405ではデータフローCからデータフローBへの設定変更が行われる。設定1407ではデータフローBからデータフローCへの設定変更が行われる。本実施形態では、データフローA、データフローB、データフローCの実行順序が一定でないため、それぞれのデータフロー間の全ての設定変更を考慮して処理割り当てを行う必要がある。また、データフローA、データフローB、データフローCは全て処理割り当て対象とする。データフローAの設定1409、データフローBの設定1410、データフローCの設定1411は、それぞれデータフローA、データフローB、データフローCにおけるプロセッシングエレメント202-1~プロセッシングエレメント202-4の設定例を示している。これら全てのデータフローA、データフローB、データフローCの処理割り当てを一度に一括して行う。データフローAの設定1409、データフローBの設定1410、データフローCの設定1411は第1実施形態の図6で示した設定と同様であるである。本実施形態では、データフローAおよびデータフローBの間、データフローBおよびデータフローCの間、データフローCおよびデータフローAの間において、プロセッシングエレメント202-1~プロセッシングエレメント202-4でデータフローの変更に必要な設定変更数の合計数に注目する。この合計数を評価値Eとして算出することで再構成デバイスの再構成時の設定変更数の削減を行う。なおデータフローAおよびデータフローBの間でのプロセッシングエレメント202-1~プロセッシングエレメント202-4の設定変更は、それぞれ設定変更1412、設定変更1415、設定変更1418、設定変更1421で表している。またデータフローBおよびデータフローCの間でのプロセッシングエレメント202-1~プロセッシングエレメント202-4の設定変更は、それぞれ設定変更1413、設定変更1416、設定変更1419、設定変更1422で表している。データフローCおよびデータフローAの間でのプロセッシングエレメント202-1~プロセッシングエレメント202-4の設定変更は、設定変更1414、設定変更1417、設定変更1420、設定変更1423で表している。本実施形態と第1実施形態との違いは、同時に複数のデータフローの処理割り当てを行う点にある。以下、図13のフローチャートに示される処理との差異点を説明する。S1301において、複数のデータフローを入力すると同時に、実行順序が任意であることを入力する。S1303において、処理割り当て対象であるデータフローA1409、データフローB1410、データフローC1411の全てに対して処理割り当てを行う。S1306において、本実施形態で使用する設定変更数sは、第1実施形態の設定変更数に対して以下の違いがある。処理割り当て対象のデータフローi0における、設定値ui0jkと、処理割り当て対象のデータフローi1における、同じアドレスの設定値ui1jkの値が一致していなければα2を設定変更数sに加える。また、処理割り当て対象のデータフローi1における、設定値ui1jkと、処理割り当て対象のデータフローi2における、同じアドレスの設定値ui2jkの値が一致していなければβ2を設定変更数sに加える。さらに、処理割り当て対象のデータフローi2における、設定値ui2jkと、処理割り当て対象のデータフローi0における、同じアドレスの設定値ui0jkの値が一致していなければγ2を設定変更数sに加える。上述以外で、設定値が一致していれば何も加えない。上述の計算を全てのプロセッシングエレメントjの全てのメモリkに関して行う。ここでi0はデータフローA1409、i1はデータフローB1410、i2はデータフローC1411を示しており、上記式で示す値が小さくなるように、これらの設定値ui0jk、ui1jk、ui2jkを決める。またα2、β2、γ2は通常それぞれ1であるが、プロセッシングエレメントのコンフィギュレーションメモリの構造に応じて、各設定が格納されているアドレス毎に重み付けを変更することも可能としている。またデータフロー毎に切り替え時間の優先度をつけるためにデータフロー毎に重みづけることも可能としている。本実施形態によれば、全てのデータフロー間を考慮することで、処理の実行順序が不定な場合であっても平均して設定変更数削減効果が得られる。第3実施形態図15aおよびbを参照して、本実施形態に係る処理のタイムチャートおよび、処理割り当ての概要を説明する。本実施形態では、既に複数のデータフローの実行順序およびそれぞれの処理割り当ても決まっている場合を想定している。本実施形態は、上述の実行順序における任意のデータフローの処理の間に、処理の挿入前後の処理割り当ては変えずに、新たなデータフローに対応した処理を挿入するための処理割り当てに関する。図15のタイムチャート1501は、再構成デバイスで行う実行順序が既に決められ、その処理割り当ても決められているタイムチャートである。タイムチャート1501ではデータフローAの処理1503の後、データフローAの設定からデータフローCの設定へと設定を変更する設定1504で示される期間を経てデータフローCの処理1505を行っている。このタイムチャート1501のデータフローAとデータフローCとの間に新たにデータフローBを挿入したタイムチャートが、タイムチャート1502である。データフローAの処理1503の後にデータフローAの設定からデータフローBの設定へと設定を変更する設定1506で示される期間を経て、新たに挿入したデータフローBの処理1507が行われる。その後、データフローBの設定からデータフローCの設定へと設定を変更する設定1508で示される期間を経て、データフローBの処理1505が行われる。この際データフローAおよびデータフローACの処理割り当ては変更せずにデータフローBの処理割り当てを決定するため、データフローBを挿入する挿入先順序の前後の順序における、既に処理割り当て済みのデータフロー間の設定変更量を考慮する。設定1509、設定1510、設定1511は、それぞれデータフローA、データフローB、データフローCにおけるプロセッシングエレメント202-1~プロセッシングエレメント202-4の設定を示している。本実施形態ではデータフローAおよびデータフローCは処理割り当て済みであり、データフローBの処理割り当てを行う。設定1509、設定1510、設定1511は第1実施形態と同様に、図6で示した設定である。本実施形態では、データフローAからデータフローBへ、およびデータフローBからデータフローCへの設定変更に関して、プロセッシングエレメント202-1~プロセッシングエレメント202-4の設定変更に必要な設定変更数の合計数に注目する。この合計数を第1実施形態の図13におけるS1308で示す評価値Eとして算出し、当該評価値に基づいて再構成デバイスの再構成時の設定変更数の削減を行う。なおデータフローAおよびデータフローBの間での、プロセッシングエレメント202-1~プロセッシングエレメント202-4の設定変更は、それぞれ設定変更1512、設定変更1514、設定変更1516、設定変更1518で表している。またデータフローBおよびデータフローCの間での、プロセッシングエレメント202-1~プロセッシングエレメント202-4の設定変更は、設定変更1513、設定変更1515、設定変更1517、設定変更1519で表している。本実施形態と第1実施形態との違いは、一つのデータフローの処理割り当てに際し、他の複数の処理割り当て済みのデータフローを同時に参照する点である。以下、図13のフローチャートに示される処理との差異点を説明する。図13のS1303で行う処理割り当ては、処理割り当て対象であるデータフローA1510である。データフローA1509、データフローC1511は処理割り当て済みであり、処理割り当て変更は行わない。図13のS1306で使用する設定変更数sとして、第1実施形態に対して以下の違いがある。処理割り当て済みのデータフローi0における、設定値ui0jkと、処理割り当て対象のデータフローi1における、同じアドレスの設定値ui1jkの値が一致していなければα3を設定変更数に加える。また、処理割り当て対象のデータフローi1における、設定値ui1jkと、処理割り当て済みのデータフローi2における、同じアドレスの設定値ui2jkの値が一致していなければβ3を設定変更数に加える。上述の値が一致していれば何も加えない。上述の計算を全てのプロセッシングエレメントjの全てのメモリkに関して行う。以上で説明した設定変更数sは以下の式で表すことできる。ここでi0はデータフローA1509、i1はデータフローB1510、i2はデータフローC1511を示している。これらの設定値の内、ui0jk、ui2jkは既に処理割り当て済みで、上記式で示す値が少なくなるようにui1jkを決めることとなる。またα3、β3は通常それぞれ1であるが、プロセッシングエレメントのコンフィギュレーションメモリの構造に応じて、各設定が格納されているアドレス毎に重み付けを変更することも可能としている。またデータフロー毎に切り替え時間の優先度をつけるためにデータフロー毎に重み付けることも可能としている。本実施形態によれば、新たにデータフロー挿入する場合に、挿入前後のデータフローとの間での設定変更数を削減できる。第4実施形態図16aおよびbを参照して、本実施形態に係る処理のタイムチャートおよび、処理割り当ての概要を説明する。本実施形態では、ある基準となるデータフローの処理後、その結果に応じて次に行われるデータフローが異なる場合の処理割り当てに関する実施形態である。図16aのタイムチャート1601は、基準となるデータフローXの処理を、処理1602で示される期間に行った後、その結果に応じて、データフローXからデータフローA、データフローBまたはデータフローCへの設定変更を、設定1603で示される期間に行う。設定完了後、データフローA、データフローBまたはデータフローCの処理が、処理Aまたは処理Bまたは処理C1604で示される期間に行われ、再度基準となるデータフローXの処理を行うために、設定1605で示される期間にデータフローA、データフローBまたはデータフローCからデータフローXへと設定変更を行う。上記実行順序が繰り返されるが、データフローA、データフローBまたはデータフローCの何れが行われるかはデータフローXの処理結果に応じて変わるものとする。設定1606、設定1607、設定1608、設定1609はそれぞれデータフローX、データフローA、データフローB、データフローCにおけるプロセッシングエレメント202-1~プロセッシングエレメント202-4の設定を示している。本実施形態では、データフローX、データフローA、データフローB、データフローCの全てのデータフローに対して処理割り当てを行う。設定1606、設定1607、設定1608、設定1609は、第1実施形態と同様に、図6で示した設定である。処理割り当てに際して、データフローXおよびデータフローAの間、データフローXおよびデータフローBの間、データフローXおよびデータフローCの間でのプロセッシングエレメント202-1~プロセッシングエレメント202-4でデータフロー変更に必要な設定変更数の合計数に注目している。上記合計数が第1実施形態の図13のS1304で示す評価値Eとして算出して、当該評価値Eに基づいて再構成デバイスの再構成時の設定変更数の削減を行う。なおデータフローXおよびデータフローAの間でのプロセッシングエレメント202-1~プロセッシングエレメント202-4の設定変更は、それぞれ設定変更1610、設定変更1613、設定変更1616、設定変更1619で表している。なおデータフローXおよびデータフローBの間でのプロセッシングエレメント202-1~プロセッシングエレメント202-4の設定変更は、それぞれ設定変更1611、設定変更1614、設定変更1617、設定変更1620で表している。データフローXおよびデータフローCの間でのプロセッシングエレメント202-1~プロセッシングエレメント202-4の設定変更は、それぞれ設定変更1612、設定変更1615、設定変更1618、設定変更1621で表している。本実施形態と第1実施形態との違いは、実行順序に分岐があり、分岐先と分岐元との間のデータフローに対して処理割り当てを行う点にある。以下、図13のフローチャートに示される処理との差異点を説明する。図13のS1301では、複数のデータフローを入力すると同時に、部分的に任意の実行順序を入力する。図13のS1303で行う処理割り当ては、処理割り当て対象であるデータフローX1606、データフロー1607A、データフローB1608、データフローC1609の全てに対して処理割り当てを行う。本実施形態では、全てのデータフローを処理割り当て対象として扱う例を示しているが、それに限定されるものではない。本実施形態はデータフローの実行順序に注目したものであり、少なくとも一つのデータフローが、既に処理割り当て済みの場合には、それ以外のデータフローの処理割り当てを行うこととなる。図13のS1306で使用する設定変更数sとして、第1実施形態に対して以下の違いがある。処理割り当て対象のデータフローi0における、設定値ui0jkと、処理割り当て対象のデータフローi1における、同じアドレスの設定値ui1jkの値が一致していなければα4を設定変更数に加える。また、処理割り当て対象のデータフローi0における、設定値ui0jkと、処理割り当て対象のデータフローi2における、同じアドレスの設定値ui2jkの値が一致していなければβ4を設定変更数に加える。さらに、処理割り当て対象のデータフローi0における、設定値ui0jkと、処理割り当て対象のデータフローi3における、同じアドレスの設定値ui3jkの値が一致していなければγ4を設定変更数に加える。上述以外で、設定値が一致している場合は何も加えない。上述の計算を全てのプロセッシングエレメントjの全てのメモリkに関して行う。ここでi0はデータフローX1606、i1はデータフローA1607、i2はデータフローB1608、i3はデータフローC1609、をそれぞれ示している。上記式で示す値が少なくなるようにui0jk、ui1jk、ui2jk、ui3jkを決める。またα4、β4、γ4は通常それぞれ1であるが、プロセッシングエレメントのコンフィギュレーションメモリの構造に応じて、各設定が格納されているアドレス毎に重み付けを変更することも可能としている。またデータフロー毎に切り替え時間の優先度をつけるためにデータフロー毎に重み付けることも可能としている。本実施形態によれば、複数のデータフローを順々に行う上で、その実行順序に分岐がある場合でも、分岐元となるデータフローと分岐先となる複数の他のデータフローを考慮することで、設定変更数を削減することができる。第5実施形態上記の各実施形態では、ユースケース別に各々の経路設定方法について述べたが、本発明はこれらの方法の組み合わせでも良い。また、再構成デバイスの構成要素としてプロセッシングエレメントを説明したが、これに限るものではなく、LUTや、それとの組み合わせでも良い。また、設定は、上記の各実施形態で示した設定に限るものではなく、LUTベースの再構成デバイスで使用される設定でも良い。また、上記の各実施形態では入力するデータフロー全てに対して処理割り当て対象としたが、処理割り当て範囲を指定することで、データフローの一部のみに対して処理割り当てを行っても良い。また、上記の各実施形態ではプロセッシングエレメント数はデータフロー間で同じとしているが、処理を割り当てるプロセッシングエレメント数が異なっても良い。その他の実施形態また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェアプログラムを、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータまたはCPUやMPU等がプログラムを読み出して実行する処理である。