(57)【要約】【課題】再構成できる回路の規模を小さくし、かつ処理速度の低下を抑止する回路再構成装置、制御方法、及び制御プログラムを提供する。【解決手段】複数の領域２ａ、２ｂを有する、動的再構成可能回路２と、領域に回路情報に対応する回路を動的に再構成する、回路再構成手段３と、動的に再構成された回路が生成した中間情報を用いて、次に再構成される回路に対応する回路情報を選択し、当該回路が再構成された領域と別の領域に、選択した回路情報に対応する回路を再構成させる制御をする、回路再構成制御手段４と、を有する回路再構成装置である。【選択図】図１
2019193189.tif 000002
【特許請求の範囲】
【請求項１】
複数の領域を有する、動的再構成可能回路と、
前記領域に回路情報に対応する回路を動的に再構成する、回路再構成手段と、
動的に再構成された前記回路が生成した中間情報を用いて、次に再構成される回路に対応する回路情報を選択し、当該回路が再構成された領域と別の領域に、前記選択した回路情報に対応する回路を再構成させる制御をする、回路再構成制御手段と、
を有する回路再構成装置。
【請求項２】
請求項１に記載の回路再構成装置であって、
動的に再構成された前記回路が出力した出力情報は、前記次に再構成される回路に入力する入力情報として記憶する。
【請求項３】
請求項２に記載の回路再構成装置であって、
前記回路再構成制御手段は、動的に再構成された前記回路が動作している場合、前記入力情報、又は前記中間情報、又は両方を用いて、複数の前記次に再構成する回路情報の候補を選択し、選択した複数の前記次に再構成する回路情報のなかから、前記中間情報を用いて、前記次に再構成される回路に対応する回路情報を選択する。
【請求項４】
請求項３に記載の回路再構成装置であって、
前記回路再構成制御手段は、動的に再構成された前記回路が動作している場合、前記入力情報、又は前記中間情報、又は両方を用いて、複数の前記次に再構成する回路情報の候補を選択し、選択した複数の候補に対応する回路を、前記別の領域に再構成させる制御をする。
【請求項５】
動的再構成可能回路に複数の領域を有する、回路再構成装置の制御方法であって、
（Ａ）前記領域に回路情報に対応する回路を動的に再構成する、ステップと、
（Ｂ）動的に再構成された前記回路が生成した中間情報を用いて、次に再構成される回路に対応する回路情報を選択し、当該回路が再構成された領域と別の領域に、前記選択した回路情報に対応する回路を再構成させる制御をする、ステップと、
を有する回路再構成装置の制御方法。
【請求項６】
請求項５に記載の回路再構成装置の制御方法であって、
前記（Ｂ）のステップにおいて、動的に再構成された前記回路が出力した出力情報は、前記次に再構成される回路に入力する入力情報として記憶する。
【請求項７】
請求項６に記載の回路再構成装置の制御方法であって、
前記（Ｂ）のステップにおいては、動的に再構成された前記回路が動作している場合、前記入力情報、又は前記中間情報、又は両方を用いて、複数の前記次に再構成する回路情報の候補を選択し、選択した複数の前記次に再構成する回路情報のなかから、前記中間情報を用いて、前記次に再構成される回路に対応する回路情報を選択する。
【請求項８】
請求項７に記載の回路再構成装置の制御方法であって、
前記（Ｂ）のステップにおいては、動的に再構成された前記回路が動作している場合、前記入力情報、又は前記中間情報、又は両方を用いて、複数の前記次に再構成する回路情報の候補を選択し、選択した複数の候補に対応する回路を、前記別の領域に再構成させる制御をする。
【請求項９】
動的再構成可能回路に複数の領域を有する、回路再構成装置に用いる制御プログラムであって、
前記回路再構成装置に
（Ａ）前記領域に回路情報に対応する回路を動的に再構成する、ステップと、
（Ｂ）動的に再構成された前記回路が生成した中間情報を用いて、次に再構成される回路に対応する回路情報を選択し、当該回路が再構成された領域と別の領域に、前記選択した回路情報に対応する回路を再構成させる制御をする、ステップと、
を実行させる制御プログラム。
【請求項１０】
請求項９に記載の回路再構成装置に用いる制御プログラムであって、
前記（Ｂ）のステップにおいて、動的に再構成された前記回路が出力した出力情報は、前記次に再構成される回路に入力する入力情報として記憶する。
【請求項１１】
請求項１０に記載の回路再構成装置に用いる制御プログラムであって、
前記（Ｂ）のステップにおいては、動的に再構成された前記回路が動作している場合、前記入力情報、又は前記中間情報、又は両方を用いて、複数の前記次に再構成する回路情報の候補を選択し、選択した複数の前記次に再構成する回路情報のなかから、前記中間情報を用いて、前記次に再構成される回路に対応する回路情報を選択する。
【請求項１２】
請求項１１に記載の回路再構成装置に用いる制御プログラムであって、
前記（Ｂ）のステップにおいては、動的に再構成された前記回路が動作している場合、前記入力情報、又は前記中間情報、又は両方を用いて、複数の前記次に再構成する回路情報の候補を選択し、選択した複数の候補に対応する回路を、前記別の領域に再構成させる制御をする。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回路を再構成する回路再構成装置、制御方法、及び制御プログラムに関する。
【背景技術】
【０００２】
近年、動的に再構成可能な回路（以降、動的再構成可能回路と呼ぶ）を有するＦＰＧＡ(Field Programmable Gate Array)などのプログラマブルなデバイス（以降、回路再構成装置と呼ぶ）が普及し、多種多様な電子機器に搭載されている。このような回路再構成装置は、例えば、回路再構成装置が動作している間でも、動的再構成可能回路に回路情報を用いて、回路情報に対応する回路を再構成できる。
【０００３】
ところで、回路情報を用いて再構成した回路の規模が、想定している回路の規模を超過した場合、現状では、再構成できる回路の規模が大きい回路再構成装置に変更している。また、再構成できる回路の規模を大きくすると、回路を再構成する時間が増加する。
【０００４】
特許文献１には、動的再構成可能回路を有するＦＰＧＡを用いて、パイプラインを構成する技術が開示されている。具体的には、まず、動的再構成可能回路を分割した複数の領域（ブロックＡ、Ｂ、Ｃ）に、パイプライン処理回路を再構成するために用いる回路情報（ブロックデータＤＡ、ＤＢ、ＤＣ）を作成する。そして、ブロックデータＤＡを用いてブロックＡに回路を再構成し、ブロックＡに回路を再構成した後、ブロックＡに再構成した回路が動作している間に、ブロックデータＤＢを用いてブロックＢに回路を再構成する。更に、ブロックＢに回路を再構成した後、ブロックＢに再構成した回路が動作している間に、ブロックデータＤＣを用いてブロックＣに回路を再構成する。このように、再構成した回路が動作している間に他の回路を再構成することで、パイプライン処理にかかる時間を短縮している。
【０００５】
特許文献２には、複数の回路情報（ブロックデータ）を用いて、動的再構成可能回路に、一連の処理を実行するために用いる複数の異なる回路を、順次再構成する技術が開示されている。また、特許文献２では、分割した回路情報に基づいて再構成した回路が出力した出力データを、次に再構成する回路の入力データとすることが開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−１８６９８１号公報
【特許文献２】特開２００１−２０２２３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１に開示された技術では、分割したすべての領域（ブロックＡ、Ｂ、Ｃ）に回路を再構成するため、回路規模が大きくなると、動的再構成可能回路の大きな回路再構成装置に変更しなくてはならない。従って、回路を再構成する時間が増加する。
【０００８】
また、特許文献２に開示された技術では、一連の処理を実行するために用いる複数の異なる回路を、動的再構成可能回路に対して順次再構成するので、動的再構成可能回路の規模を小さくできる。しかし、特許文献２に開示された技術では、一つの動的再構成可能回路に順次回路を再構成するため、再構成をするたびに処理を停止させてから、次に用いる
回路を再構成をしなければならない。すなわち、停止後、再構成が終了してから次の処理を開始しなければならない。そのため、当該処理を実行する時間が増加するので、処理速度が低下する。
【０００９】
本発明の目的の一例は、再構成できる回路の規模を小さくし、かつ処理速度の低下を抑止する回路再構成装置、制御方法、及び制御プログラムを提供することにある。
【課題を解決するための手段】
【００１０】
上記目的を達成するため、本発明の一側面における回路再構成装置は、
複数の領域を有する、動的再構成可能回路と、
前記領域に回路情報に対応する回路を動的に再構成する、回路再構成手段と、
動的に再構成された前記回路が生成した中間情報を用いて、次に再構成される回路に対応する回路情報を選択し、当該回路が再構成された領域と別の領域に、前記選択した回路情報に対応する回路を再構成させる制御をする、回路再構成制御手段と、
を有することを特徴とする。
【００１１】
また、上記目的を達成するため、本発明の一側面における、動的再構成可能回路に複数の領域を有する、回路再構成装置の制御方法は、
（Ａ）前記領域に回路情報に対応する回路を動的に再構成する、ステップと、
（Ｂ）動的に再構成された前記回路が生成した中間情報を用いて、次に再構成される回路に対応する回路情報を選択し、当該回路が再構成された領域と別の領域に、前記選択した回路情報に対応する回路を再構成させる制御をする、ステップと、
を有することを特徴とする。
【００１２】
更に、上記目的を達成するため、本発明の一側面における、動的再構成可能回路に複数の領域を有する、回路再構成装置に用いる制御プログラムは、
前記回路再構成装置に
（Ａ）前記領域に回路情報に対応する回路を動的に再構成する、ステップと、
（Ｂ）動的に再構成された前記回路が生成した中間情報を用いて、次に再構成される回路に対応する回路情報を選択し、当該回路が再構成された領域と別の領域に、前記選択した回路情報に対応する回路を再構成させる制御をする、ステップと、
を実行させることを特徴とする。
【発明の効果】
【００１３】
以上のように本発明によれば、再構成できる回路の規模を小さくし、かつ処理速度の低下を抑止することができる。
【図面の簡単な説明】
【００１４】
【図１】図１は、回路再構成装置の一例を示す図である。
【図２】図２は、回路再構成装置を具体的に示す図である。
【図３】図３は、回路再構成装置の動作の一例を示す図である。
【図４】図４は、回路再構成装置の動作の一例を示す図である。
【図５】図５は、回路再構成装置の動作の一例を示す図である。
【図６】図６は、回路再構成装置の動作の一例を示す図である。
【図７】図７は、回路再構成装置を有するハードウェアの一例を示す図である。
【発明を実施するための形態】
【００１５】
（実施の形態）
以下、本発明の実施の形態について、図１から図７を参照しながら説明する。
【００１６】
［装置構成］
最初に、図１を用いて、本実施の形態における回路再構成装置の構成について説明する。図１は、回路再構成装置の一例を示す図である。
【００１７】
図１に示すように、回路再構成装置１は、動的再構成可能回路の規模を小さくし、かつ処理速度の低下を抑止する装置である。回路再構成装置１は、例えば、ＦＰＧＡなどのプログラマブルなデバイスである。回路再構成装置１は、動的再構成可能回路２と、回路再構成部３（回路再構成手段）と、回路再構成制御部４（回路再構成制御手段）とを有する。
【００１８】
このうち、動的再構成可能回路２は、複数の領域２ａ、２ｂを有する。回路再構成部３は、領域２ａ、２ｂに回路情報に対応する回路を動的に再構成する。回路再構成制御部４は、動的に再構成された回路が生成した中間情報を用いて、次に再構成させる回路に対応する回路情報を選択し、当該回路が再構成された領域と別の領域に、選択した回路情報に対応する回路を再構成させる制御をする。すなわち、回路再構成制御部４は、回路再構成部３に対して、別の領域に、選択した回路情報に対応する回路を再構成させる指示をする。なお、回路再構成制御部４は、動的再構成可能回路２と異なる動的でない再構成可能回路５に再構成する。
【００１９】
また、図１に示す記憶部６は回路情報を記憶する。図１の例では、回路情報である処理Ａ、処理Ｂ（Ｂ１又はＢ２）、処理Ｃ（Ｃ１又はＣ２又はＣ３）、処理Ｄ（Ｄ１又はＤ２又はＤ３又はＤ４）は、処理Ａ、Ｂ、Ｃ、Ｄの順番に実行される一連の処理である。また、一連の処理は、図１の例では、処理Ｂは処理Ａの処理結果（中間情報）に依存し、処理Ｃは処理Ｂの処理結果（中間情報）に依存し、処理Ｄは処理Ｃの処理結果（中間情報）に依存する。
【００２０】
具体的に説明する。回路再構成部３は、まず、領域２ａに処理Ａに対応する回路を再構成する。回路再構成制御部４は、処理Ａに対応する回路が動作を開始した後、中間情報を用いて次に実行される処理Ｂ１又はＢ２を選択し、選択した処理に対応する回路を再構成することを、回路再構成部３へ指示する。回路再構成部３は、領域２ｂに選択された処理Ｂ１又はＢ２に対応する回路を再構成する。
【００２１】
続いて、回路再構成制御部４は、処理Ｂ１又はＢ２に対応する回路が動作を開始した後、中間情報を用いて次に実行される処理Ｃ１、Ｃ２、Ｃ３のいずれか一つを選択し、選択した処理に対応する回路を再構成することを、回路再構成部３へ指示する。回路再構成部３は、領域２ａに選択された処理Ｃ１、Ｃ２、Ｃ３のいずれか一つに対応する回路を再構成する。
【００２２】
続いて、回路再構成制御部４は、処理Ｃ１、Ｃ２、Ｃ３のいずれか一つに対応する回路が動作を開始した後、中間情報を用いて次に実行される処理Ｄ１、Ｄ２、Ｄ３、Ｄ４のいずれか一つを選択し、選択した処理に対応する回路を再構成することを、回路再構成部３へ指示をする。回路再構成部３は、領域２ｂに選択された処理Ｄ１、Ｄ２、Ｄ３、Ｄ４のいずれか一つに対応する回路を再構成する。
【００２３】
このように、本実施の形態では、回路情報を用いて再構成する回路の規模が、回路再構成装置１に再構成できる回路規模より大きい場合でも、一連の処理を分割した回路情報を複数の領域に連続して再構成できるので、回路再構成装置１の規模を小さくできる。従って、回路を再構成する時間も短縮できる。
【００２４】
また、再構成された回路が動作している間に、当該回路が動作している領域と別の領域
に次に再構成させる回路を再構成させるので、従来のように再構成をするたびに処理を停止しなくてもよい。そのため、一連の処理を実行する時間を短縮できる。その結果、処理速度の低下を抑止できる。
【００２５】
更に、本実施の形態では、上述したように前段の処理に後段の処理が依存しているような場合（前段の処理結果（中間情報）により後段の処理が選択されるような場合）でも、後段の処理をできるだけ早く選択し、選択した後段の処理に対応する回路を再構成する。例えば、処理Ａの後段の処理として処理Ｂ１又はＢ２を選択するような場合、処理Ａに対応する回路が動作中に生成した中間情報を用いて、条件に一致する後段の処理を選択する。そうすることで、次に再構成する回路の候補が複数ある場合でも、連続して回路を再構成できる。
【００２６】
また、中間情報を用いて次の処理を選択できるので、従来よりも処理を小さく分割することができる。現状では、例えば、処理Ａの次に処理Ｂ１又はＢ２を実行する場合でも、選択ができないので、処理Ｂ１と処理Ｂ２とを含む処理Ｂに対応する回路を再構成している。しかし、本実施の形態では、次の処理を選択ができるため、処理Ｂを処理Ｂ１と処理Ｂ２に分割できる。そのため、更に、動的再構成可能回路の規模を小さくできる。その結果、更に、回路を再構成する時間を短縮できる。
【００２７】
また、再構成可能回路の規模を小さくできるので、回路再構成装置１の価格や消費電力を抑制できる。例えば、車載機器、又はＩｏＴ（Internet of Things）デバイス、又は画像分析処理装置などの組み込み機器では、低価格、低消費電力が求められているため、できるだけ小さい回路再構成装置を採用できる。
【００２８】
なお、分割の方法は、例えば、設計ツールを用いて一連の処理のソースを解析し、領域２ａ、２ｂに再構成可能な規模に分割する。
【００２９】
続いて、図２を用いて、本実施の形態における回路再構成装置１についてより具体的に説明する。図２は、回路再構成装置を具体的に示す図である。
【００３０】
図２に示すように、本実施の形態における回路再構成装置１は、領域２ａ、２ｂと、回路再構成部３と、回路再構成制御部４とに加えて、入力部２１と、出力部２２と、結果保持部２３とを有する。
【００３１】
領域２ａ、２ｂは、動的再構成可能回路２に設けられる領域である。なお、動的再構成可能回路２は、二つ以上の領域を有してもよい。具体的には、動的再構成可能回路２は、論理回路、入出力回路、配線回路などを有し、それらの回路を用いて、記憶部６に記憶されている回路情報に対応する回路を動的に再構成する。動的に再構成される回路は、例えば、上述した回路情報を示す処理（処理Ａ、処理Ｂ１からＢ２、処理Ｃ１からＣ３、処理Ｄ１からＤ４）に対応する回路である。
【００３２】
回路再構成部３は、再構成可能回路５及び動的再構成可能回路２に回路情報を用いて、回路情報に対応する回路を再構成する回路である。具体的には、回路再構成部３は、記憶部６に記憶されている、回路再構成制御部４を再構成するための回路情報を用いて、コンフィギュレーション期間に、再構成可能回路５に回路再構成制御部４を構成する。また、回路再構成部３は、記憶部６に記憶されている上述した処理を用いて、動的に再構成をする期間に、領域２ａ、２ｂに処理それぞれに対応する回路を動的に再構成する。
【００３３】
回路再構成制御部４は、動的に再構成された回路が生成した中間情報を用いて、次に再構成させる回路に対応する回路情報を選択し、当該回路が再構成された領域と別の領域に
、選択した回路情報に対応する回路を再構成させる制御をする。なお、回路再構成制御部４は、例えば、再構成可能回路５に再構成する。ただし、再構成可能回路５以外に設けてもよい。
【００３４】
具体的には、回路再構成制御部４は、まず、動的再構成可能回路２が有する領域に動的に再構成された回路が生成した中間情報を取得する。中間情報は、次に再構成させる回路に対応する回路情報を選択するために用いる情報である。また、回路再構成制御部４は、中間情報以外にも、動的再構成可能回路２が有する領域に動的に再構成された回路に、外部から入力された入力情報を、動的に再構成された回路から取得する。入力情報は、例えば、動的に再構成された回路の外部に設けられた外部装置から入力される情報（図２に示す外部からの入力情報）、又は結果保持部２３から再構成された回路へ出力される情報（図２に示す内部に保持した入力情報）である。
【００３５】
例えば、画像分析処理を回路再構成装置１が実行する場合、外部からの入力情報は、撮像装置が撮像した動画像、各種センサから取得した速度、加速度、温度、湿度などの入力データ、及び、走行路、周囲環境、天候などの条件データである。中間情報は、例えば、画像分析処理により物体を検知した結果や、人物とそれ以外とを検知した結果などである。
【００３６】
外部装置は、プロセッサなどの情報処理装置、又は通信装置などである。なお、外部装置は、再構成可能回路５に設けていてもよい。
【００３７】
続いて、回路再構成制御部４は、中間情報、又は入力情報、又は両方の情報、又はそれら情報の一部を用いて、次に再構成させる回路に対応する回路情報を選択する。そして、回路再構成制御部４は、選択した回路情報に対応する回路を領域に再構成するための再構成指示を、回路再構成部３に送信する。回路再構成部３は、再構成指示を受信した後、選択した回路情報に対応する回路を領域に再構成する。
【００３８】
又は、回路再構成制御部４は、動的に再構成された回路が動作している場合、入力情報を用いて、複数の次に再構成する回路情報の候補を選択し、選択した複数の次に再構成する回路情報のなかから、中間情報を用いて、次に再構成される回路に対応する回路情報を選択してもよい。
【００３９】
具体的に説明する。例えば、処理Ｂ１の次に処理Ｃ１を選択する条件１が、入力情報１、中間情報１、中間情報２であり、処理Ｂ１の次に処理Ｃ２を選択する条件２が、入力情報１、中間情報１、中間情報３であり、処理Ｂ１の次に処理Ｃ３を選択する条件３が、入力情報１、中間情報３、中間情報４である場合について説明する。
【００４０】
回路再構成制御部４が、既に外部装置から入力情報１を取得している場合、入力情報１は条件１、条件２、条件３に含まれているので、処理Ｃ１と処理Ｃ２と処理Ｃ３とを次に再構成する候補とする。
【００４１】
続いて、回路再構成制御部４は、処理Ｂ１に対応する回路から、処理Ｂ１の処理結果として中間情報１を取得する。中間情報１は条件１、条件２に含まれるので、処理Ｃ１と処理Ｃ２とに候補を絞る。
【００４２】
続いて、回路再構成制御部４は、処理Ｂ１に対応する回路から、処理Ｂ１の処理結果として中間情報２を取得したとすると、中間情報２は条件１にしかないので、処理Ｃ１を選択する。
【００４３】
又は、回路再構成制御部４は、処理Ｂ１に対応する回路から、処理Ｂ１の処理結果として中間情報３を取得したとすると、中間情報１と中間情報３とを有するのは条件２しかないので、処理Ｃ２を選択する。
【００４４】
なお、回路再構成制御部４は、処理Ｂ１に対応する回路から処理結果として中間情報３と中間情報４とを取得したとすると、中間情報３と中間情報４とを有するのは条件３しかないので、処理Ｃ３を選択する。
【００４５】
更に、回路再構成制御部４は、動的に再構成された回路が動作している場合、入力情報を用いて、複数の次に再構成する回路情報の候補を選択し、選択した複数の候補に対応する回路を、動的に再構成された回路が動作している領域と別の領域に再構成するための再構成指示を、回路再構成部３に送信してもよい。
【００４６】
例えば、三つ以上の領域２ａ、２ｂ、２ｃを設け、現在、領域２ｂに処理Ｂ１に対応する回路が再構成されている場合に、回路再構成制御部４が中間情報１を取得すると、領域２ａに処理Ｃ１を再構成し、領域２ｃに処理Ｃ２を再構成する。その後、処理Ｂ１の中間情報を用いて、次に回路を再構成する処理を選択する。
【００４７】
なお、次に回路を再構成する処理の候補の数が、領域の数より多い場合、予め処理に優先順位を設定し、その優先順位に従い再構成をしてもよい。優先順位は、実験、又はシミュレーション、又は機械学習などにより導出した確率などである。
【００４８】
ただし、回路再構成制御部４は、選択した候補と異なる回路情報が、中間情報を用いて選択された場合、中間情報を用いて選択された回路情報を用いて、回路を再構成する。
【００４９】
次に、回路再構成制御部４は、動作している再構成された回路が処理を終了すると、次に再構成させる回路側へ入出力を切り替える。すなわち、回路再構成制御部４は、後述する入力部２１を制御し、動的に再構成された回路に入力された入力情報を、入力部２１から入力先となる領域へ入力させる。また、回路再構成制御部４は、後述する出力部２２を制御し、動的に再構成された回路から出力された出力情報を、出力部２２から出力先となる領域へ出力させる。出力情報は、動的に再構成された回路が実行した処理結果で、再構成された回路から外部装置へ出力する情報（図２に示す外部へ出力する出力情報）、又は再構成された回路から結果保持部２３へ入力される情報（図２に示す内部に保持する出力情報）である。
【００５０】
入力部２１は、外部装置から入力される情報（外部からの入力情報）、又は結果保持部２３から再構成された回路へ出力される情報（内部に保持した入力情報）を取得し、領域２ａ又は２ｂに再構成された回路へ出力する、切替部２１ａと切替部２１ｂとを有する。
【００５１】
切替部２１ａは、外部装置から入力される情報（外部からの入力情報）、又は結果保持部２３から再構成された回路へ出力される情報（内部に保持した入力情報）を取得する。そして、切替部２１ａは、回路再構成制御部４により制御され、取得した入力情報を選択して切替部２１ｂに出力する。
【００５２】
切替部２１ｂは、切替部２１ａから出力された入力情報を、回路再構成制御部４により選択された次に動作する回路が構成されている領域へ出力する。
【００５３】
出力部２２は、領域２ａ又は２ｂから外部へ出力する出力情報を取得し、取得した出力情報を外部装置へ出力する。また、出力部２２は、領域２ａ又は２ｂから外部へ出力する出力情報を取得し、取得した出力情報を結果保持部２３に保持する。出力部２２は、切替
部２２ａと切替部２２ｂとを有する。
【００５４】
切替部２２ａは、再構成された回路から外部装置へ出力する情報（外部へ出力する出力情報）、又は再構成された回路から結果保持部２３へ出力する情報（内部に保持する出力情報）を取得する。そして、切替部２２ａは、回路再構成制御部４により制御され、取得した出力情報を切替部２２ｂに出力する。
【００５５】
切替部２２ｂは、切替部２２ａから出力された出力情報を、回路再構成制御部４の制御により選択された外部装置又は結果保持部２３へ出力する。
【００５６】
結果保持部２３は、領域２ａ又は２ｂに再構成された回路から出力された出力情報を保持し、次の回路が再構成された後、保持した出力情報を次に再構成された回路へ出力する。結果保持部２３は、例えば、再構成可能回路５に再構成する。ただし、再構成可能回路５以外に設けてもよい。
【００５７】
［装置動作］
次に、本発明の実施の形態における回路再構成装置１の動作について図３から図６を用いて説明する。図３から図６は、回路再構成装置の動作の一例を示す図である。なお、以下の説明においては、適宜図１、２を参酌する。また、本実施の形態では、回路再構成装置１を動作させることによって、回路再構成方法が実施される。よって、本実施の形態における回路再構成方法の説明は、以下の回路再構成装置１の動作説明に代える。
【００５８】
まず、回路再構成部３は、記憶部６から回路再構成制御部４と処理Ａに対応する回路情報を取得し、再構成可能回路５に回路再構成制御部４を再構成し、動的再構成可能回路２の領域２ａに処理Ａに対応する回路（以降、回路Ａと呼ぶ）を再構成する。
【００５９】
次に、図３に示すように、情報処理装置は、回路Ａに一連の処理を開始することを示す開始指示を送信する（ステップＡ１）。回路Ａは、開始指示を受信した場合（ステップＡ２）、処理Ａ（ステップＡ７からＡ９）を開始する。
【００６０】
次に、情報処理装置は、回路Ａに入力情報を送信する（ステップＡ３）。回路Ａは、入力情報を受信した場合（ステップＡ４）、入力情報を回路再構成制御部４へ送信する（ステップＡ５）。回路再構成制御部４は、入力情報を受信した場合（ステップＡ６）、処理Ａの次に実行する処理を選択する選択処理を開始する（ステップＡ１１からＡ１３）。例えば、処理Ｂ１又はＢ２を選択する選択処理を開始する。
【００６１】
なお、回路Ａと回路再構成制御部４とは、処理Ａと選択処理とを並行して実行する。処理Ａでは、回路Ａが、動作して処理Ａを実行して、中間情報と出力情報とを生成する（ステップＡ７、ステップＡ９）。また、回路Ａは、選択処理で用いる中間情報を、回路再構成制御部４へ送信する（ステップＡ８）。すなわち、回路Ａは、処理Ｂ１又はＢ２を選択するために用いる中間情報を、回路再構成制御部４へ送信する。なお、回路Ａは、中間情報を生成するたびに、回路再構成制御部４へ送信してもよい。
【００６２】
選択処理では、回路再構成制御部４は、まず、入力情報を用いて処理Ａの次に実行する処理の候補を選択する（ステップＡ１０）。例えば、処理Ｂ１と処理Ｂ２とを候補にする。
【００６３】
続いて、回路再構成制御部４は、回路Ａから中間情報を受信する（ステップＡ１１）。そして、回路再構成制御部４は、中間情報を用いて、選択した候補のなかから、処理Ａの次に実行する処理を選択する（ステップＡ１２）。例えば、処理Ｂ１を選択する。
【００６４】
その後、回路再構成制御部４は、回路再構成部３に、記憶部６から処理Ａの次に実行する処理Ｂ１に対応する回路情報を読み出し、領域２ｂに次の処理に対応する回路（以降、回路Ｂと呼ぶ）を再構成させるための再構成指示を送信する（ステップＡ１３）。記憶部６は、回路再構成部３を介して再構成指示を受信する（ステップＡ１４）。
【００６５】
回路再構成部３は、選択処理が終了した後、記憶部６から処理Ｂ１を読み出し（ステップＡ１５）、領域２ｂに回路Ｂを再構成する（ステップＡ１６）。
【００６６】
また、回路Ａは、処理Ａが終了する前において、結果保持部２３に処理Ａの処理結果である出力情報を送信する（ステップＡ１７）。結果保持部２３は、回路Ａから出力情報を受信して保持する（ステップＡ１８）。回路Ａは、処理Ａが終了した場合、処理Ａが終了したことを示す終了情報を、回路再構成制御部４へ送信する（ステップＡ１９）。回路再構成制御部４は、終了情報を受信した場合（ステップＡ２０）、入力部２１と出力部２２とに回路Ａ側から回路Ｂ側に入出力を切り替える切替指示をする（ステップＡ２１）。
【００６７】
次に、図４に示すように、結果保持部２３は、保持している回路Ａの処理結果である出力情報を、入力情報として回路Ｂへ送信する（ステップＢ１）。回路Ｂは、入力情報を受信した場合（ステップＢ２）、入力情報を回路再構成制御部４へ送信する（ステップＢ３）。また、回路Ｂは、入力情報を受信した場合（ステップＢ４）、処理Ｂ１（ステップＢ５からＢ７）を開始する。
【００６８】
回路再構成制御部４は、入力情報を受信した場合（ステップＢ４）、処理Ｂ１の次に実行する処理を選択する選択処理を開始する（ステップＢ８からＢ１１）。例えば、処理Ｃ１からＣ３のいずれか一つを選択する選択処理を開始する。
【００６９】
なお、回路Ｂと回路再構成制御部４とは、処理Ｂ１と選択処理とを並行して実行する。処理Ｂ１では、回路Ｂが、動作して処理Ｂ１を実行して、中間情報と出力情報とを生成する（ステップＢ５、ステップＢ７）。また、回路Ｂは、選択処理で用いる中間情報を、回路再構成制御部４へ送信する（ステップＢ６）。例えば、回路Ｂは、処理Ｃ１からＣ３のいずれか一つを選択するために用いる中間情報を、回路再構成制御部４へ送信する。なお、回路Ｂは、中間情報を生成するたびに、回路再構成制御部４へ送信してもよい。
【００７０】
選択処理では、回路再構成制御部４は、まず、入力情報を用いて処理Ｂ１の次に実行する処理の候補を選択する（ステップＢ８）。例えば、処理Ｃ１、Ｃ２、Ｃ３を候補にする。
【００７１】
続いて、回路再構成制御部４は、回路Ｂから中間情報を受信する（ステップＢ９）。そして、回路再構成制御部４は、中間情報を用いて、選択した候補のなかから、処理Ｂ１の次に実行する処理を選択する（ステップＢ１０）。例えば、処理Ｃ１を選択する。
【００７２】
その後、回路再構成制御部４は、回路再構成部３に、記憶部６から処理Ｂ１の次に実行する処理Ｃ１に対応する回路情報を読み出し、領域２ａに次の処理に対応する回路（以降、回路Ｃと呼ぶ）を再構成させるための再構成指示を送信する（ステップＢ１１）。記憶部６は、回路再構成部３を介して再構成指示を受信する（ステップＢ１２）。
【００７３】
回路再構成部３は、選択処理が終了した後、記憶部６から処理Ｃ１を読み出し（ステップＢ１３）、領域２ａに回路Ｃを再構成する（ステップＢ１４）。
【００７４】
また、回路Ｂは、処理Ｂ１が終了する前において、結果保持部２３に処理Ｂ１の処理結
果である出力情報を送信する（ステップＢ１５）。結果保持部２３は、回路Ｂから出力情報を受信して保持する（ステップＢ１６）。回路Ｂは、処理Ｂ１が終了した場合、処理Ｂ１が終了したことを示す終了情報を、回路再構成制御部４へ送信する（ステップＢ１７）。回路再構成制御部４は、終了情報を受信した場合（ステップＢ１８）、入力部２１と出力部２２とに回路Ｂ側から回路Ｃ側に入出力を切り替える切替指示をする（ステップＢ１９）。
【００７５】
次に、図５に示すように、結果保持部２３は、保持している回路Ｂ１の処理結果である出力情報を、入力情報として回路Ｃへ送信する（ステップＣ１）。回路Ｃは、入力情報を受信した場合（ステップＣ２）、入力情報を回路再構成制御部４へ送信する（ステップＣ３）。また、回路Ｃは、入力情報を受信した後（ステップＣ４）、処理Ｃ１（ステップＣ５からＣ７）を開始する。
【００７６】
回路再構成制御部４は、入力情報を受信した場合（ステップＣ４）、処理Ｃ１の次に実行する処理を選択する選択処理を開始する（ステップＣ８からＣ１１）。例えば、処理Ｄ１からＤ４のいずれか一つを選択する選択処理を開始する。
【００７７】
なお、回路Ｃと回路再構成制御部４とは、処理Ｃ１と選択処理とを並行して実行する。処理Ｃ１では、回路Ｃが、動作して処理Ｃ１を実行して、中間情報と出力情報とを生成する（ステップＣ５、ステップＣ７）。また、回路Ｃは、選択処理で用いる中間情報を、回路再構成制御部４へ送信する（ステップＣ６）。例えば、回路Ｃは、処理Ｄ１からＤ４のいずれか一つを選択するために用いる中間情報を、回路再構成制御部４へ送信する。なお、回路Ｄは、中間情報を生成するたびに、回路再構成制御部４へ送信してもよい。
【００７８】
選択処理では、回路再構成制御部４は、まず、入力情報を用いて処理Ｃ１の次に実行する処理の候補を選択する（ステップＣ８）。例えば、処理Ｄ１、Ｄ２、Ｄ３、Ｄ４を候補にする。
【００７９】
続いて、回路再構成制御部４は、回路Ｃから中間情報を受信する（ステップＣ９）。そして、回路再構成制御部４は、中間情報を用いて、選択した候補のなかから、処理Ｃ１の次に実行する処理を選択する（ステップＣ１０）。例えば、処理Ｄ２を選択する。
【００８０】
その後、回路再構成制御部４は、回路再構成部３に、記憶部６から処理Ｃ１の次に実行する処理Ｄ２に対応する回路情報を読み出し、領域２ｂに次の処理に対応する回路（以降、回路Ｄと呼ぶ）を再構成させるための再構成指示を送信する（ステップＣ１１）。記憶部６は、回路再構成部３を介して再構成指示を受信する（ステップＣ１２）。
【００８１】
回路再構成部３は、選択処理が終了した後、記憶部６から処理Ｄ２を読み出し（ステップＢ１３）、領域２ｂに回路Ｄを再構成する（ステップＣ１４）。
【００８２】
また、回路Ｃは、処理Ｃ１が終了する前において、結果保持部２３に処理Ｃ１の処理結果である出力情報を送信する（ステップＣ１５）。結果保持部２３は、回路Ｃから出力情報を受信して保持する（ステップＣ１６）。回路Ｃは、処理Ｃ１が終了した場合、処理Ｃ１が終了したことを示す終了情報を、回路再構成制御部４へ送信する（ステップＣ１７）。回路再構成制御部４は、終了情報を受信した場合（ステップＣ１８）、入力部２１と出力部２２とに回路Ｃ側から回路Ｄ側に入出力を切り替える切替指示をする（ステップＣ１９）。
【００８３】
次に、図６に示すように、結果保持部２３は、保持している回路Ｃの処理結果である出力情報を、入力情報として回路Ｄへ送信する（ステップＤ１）。回路Ｄは、入力情報を受
信した場合（ステップＤ２）、入力情報を回路再構成制御部４へ送信する（ステップＤ３）。また、回路Ｄは、入力情報を受信した後（ステップＤ４）、処理Ｄ２（ステップＤ５からＤ７）を開始する。
【００８４】
回路再構成制御部４は、入力情報を受信した場合（ステップＤ４）、処理Ｄ２の次に実行する処理を選択する選択処理を開始する（ステップＤ８からＤ１０）。
【００８５】
なお、回路Ｄと回路再構成制御部４とは、処理Ｄ２と選択処理とを並行して実行する。処理Ｄ２では、回路Ｄが、動作して処理Ｄ２を実行して、中間情報と出力情報とを生成する（ステップＤ５、ステップＤ７）。また、回路Ｄは、選択処理で用いる中間情報を、回路再構成制御部４へ送信する（ステップＤ６）。例えば、回路Ｄは、次の処理を選択するために用いる中間情報を、回路再構成制御部４へ送信する。なお、回路Ｄは、予め次の処理が無いとわかっている場合、中間情報を生成しなくてもよい。
【００８６】
選択処理では、回路再構成制御部４は、まず、入力情報を用いて処理Ｄ１の次に実行する処理の候補を選択する（ステップＤ８）。図６の例では、次に選択する処理の候補がない。
【００８７】
続いて、回路再構成制御部４は、回路Ｄから中間情報を受信する（ステップＤ９）。そして、回路再構成制御部４は、中間情報を用いて、選択した候補のなかから、処理Ｄ１の次に実行する処理を選択する（ステップＤ１０）。図６の例では、次に選択する処理の候補がない。
【００８８】
その後、回路Ｄは、情報処理装置に処理Ｄ２の処理結果である出力情報を送信する（ステップＤ１１）。情報処理装置は、回路Ｄから出力情報を受信した場合（ステップＤ１２）、出力情報を用いて、処理を実行する。回路Ｄは、処理Ｄ２が終了した場合、処理Ｄ２が終了したことを示す終了情報を、回路再構成制御部４へ送信する（ステップＤ１３）。回路再構成制御部４は終了情報を受信する（ステップＤ１４）。
【００８９】
なお、回路再構成制御部４は、終了情報を受信した場合（ステップＤ１４）、次の処理に備えて、入力部２１と出力部２２とに入出力を切り替える切替指示をしてもよい。
【００９０】
例えば、次に領域２ａに再構成する回路が処理Ａに対応する回路Ａである場合、回路再構成制御部４は、終了情報を受信した後、記憶部６から処理Ａを読み出して領域２ａに回路Ａを再構成する。その後、回路再構成制御部４は、入力部２１と出力部２２とに回路Ｄ側から回路Ａ側へ入出力を切り替える。
【００９１】
また、一連の処理において最初の処理が決定できない場合、例えば、最初の処理の候補として処理Ａ１、Ａ２がある場合、回路再構成制御部４は、処理Ａ１又は処理Ａ２を記憶部６から読み出し、領域２ａに読み出した処理に対応する回路を再構成する。領域２ａに処理Ａ１に対応する回路Ａ１が再構成されている状態において、回路再構成制御部４が処理Ａ２を受信した場合であれば、回路再構成制御部４は領域２ａに処理Ａ２に対応する回路Ａ２を再構成する。
【００９２】
更に、領域が三つ以上ある場合、回路再構成装置１は、動的に再構成された回路が動作している場合に、入力情報を用いて、複数の次に再構成する回路情報の候補を選択し、選択した複数の候補に対応する回路を、動的に再構成された回路が動作している領域と別の領域に再構成させてもよい。
【００９３】
［本実施の形態の効果］
以上のように本実施の形態によれば、回路情報を用いて再構成する回路の規模が、回路再構成装置１に再構成できる回路規模より大きい場合でも、一連の処理を分割した回路情報を複数の領域に連続して再構成できるので、回路再構成装置１の規模を小さくできる。従って、回路を再構成する時間も短縮できる。
【００９４】
また、再構成された回路が動作している間に、当該回路が動作している領域と別の領域に次に再構成させる回路を再構成させるので、従来のように再構成をするたびに処理を停止しなくてもよい。そのため、一連の処理を実行する時間を短縮できる。その結果、処理速度の低下を抑止できる。
【００９５】
更に、本実施の形態では、上述したように前段の処理に後段の処理が依存しているような場合（前段の処理結果（中間情報）により後段の処理が選択されるような場合）でも、後段の処理をできるだけ早く選択し、選択した後段の処理に対応する回路を再構成する。例えば、処理Ａの後段の処理として処理Ｂ１又はＢ２を選択するような場合、処理Ａに対応する回路が動作中に生成した中間情報を用いて、条件に一致する後段の処理を選択する。そうすることで、次に再構成する回路の候補が複数ある場合でも、連続して回路を再構成できる。
【００９６】
また、中間情報を用いて次の処理を選択できるので、従来よりも処理を小さく分割することができる。現状では、例えば、処理Ａの次に処理Ｂ１又はＢ２の処理を実行する場合でも、選択ができないので、処理Ｂ１と処理Ｂ２とを含む処理Ｂを再構成している。しかし、本実施の形態では、次の処理を選択ができるため、処理Ｂを処理Ｂ１と処理Ｂ２に分割できる。そのため、更に、動的再構成可能回路の規模を小さくできる。その結果、更に、回路を再構成する時間を短縮できる。
【００９７】
また、再構成可能回路の規模を小さくできるので、回路再構成装置１の価格や消費電力を抑制できる。例えば、車載機器、又はＩｏＴ（Internet of Things）デバイス、画像分析処理装置などの組み込み機器では、低価格、低消費電力が求められているため、できるだけ小さい回路再構成装置を採用できる。
【００９８】
［プログラム］
本発明の実施の形態におけるプログラムは、上述した図３から図６に示した、再構成可能回路５に回路再構成制御部４を再構成させ、複数の領域２ａ、２ｂに回路情報を用いて動的に回路を再構成させるプログラムであればよい。このプログラムを記憶部６に記憶し、プログラムを回路再構成装置１が実行することによって、本実施の形態における上述した回路再構成の制御を実現することができる。
【００９９】
［物理構成］
図７は、回路再構成装置を有するハードウェアの一例を示す図である。図７に示すように、基板１１０は、回路再構成装置１と、記憶部６と、周辺回路１２０とを有する。周辺回路１２０は、例えば、ＣＰＵ（Central Processing Unit）に加えて、又はＣＰＵに代えて、ＧＰＵ（Graphics Processing Unit）、又はＦＰＧＡ、又は通信装置などを有する回路である。
【０１００】
記憶部６は、典型的には、ＲＯＭ（Read Only Memory）等の不揮発性の記憶装置である。また、本実施の形態におけるプログラムは、コンピュータ読み取り可能な記録媒体１３０に格納された状態で提供してもよい。なお、本実施の形態におけるプログラムは、通信インターフェイスを介して接続されたインターネット上で流通するものでもよい。また、記録媒体１３０の具体例としては、ＣＦ（Compact Flash（登録商標））及びＳＤ（Secure Digital）等の汎用的な半導体記憶デバイス、フレキシブルディスク（Flexible Disk）
等の磁気記録媒体、又はＣＤ−ＲＯＭ（Compact Disk Read Only Memory）などの光学記録媒体があげられる。
【産業上の利用可能性】
【０１０１】
以上のように本発明によれば、再構成できる回路の規模を小さくし、かつ処理速度の低下を抑止することができる。本発明は、ＦＰＧＡを代表とするプログラマブルなデバイスの分野において有用である。
【符号の説明】
【０１０２】
１  回路再構成装置
２  動的再構成可能回路
２ａ、２ｂ  領域
３  回路再構成部
４  回路再構成制御部
５  再構成可能回路
６  記憶部
２１  入力部
２１ａ、２１ｂ  切替部
２２  出力部
２２ａ、２２ｂ  切替部
２３  結果保持部
１１０  基板
１２０  周辺回路
１３０  記録媒体
【図１】
2019193189.tif 000003
【図２】
2019193189.tif 000004
【図３】
2019193189.tif 000005
【図４】
2019193189.tif 000006
【図５】
2019193189.tif 000007
【図６】
2019193189.tif 000008
【図７】
2019193189.tif 000009