(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-09-05
(45)【発行日】2022-09-13
(54)【発明の名称】回路再構成装置、制御方法、及び制御プログラム
(51)【国際特許分類】
H03K 19/173 20060101AFI20220906BHJP
G06F 8/654 20180101ALI20220906BHJP
【FI】
H03K19/173
G06F8/654
(21)【出願番号】P 2018086416
(22)【出願日】2018-04-27
【審査請求日】2021-03-09
(73)【特許権者】
【識別番号】000232092
【氏名又は名称】NECソリューションイノベータ株式会社
(74)【代理人】
【識別番号】110002044
【氏名又は名称】弁理士法人ブライタス
(72)【発明者】
【氏名】津口 公一
(72)【発明者】
【氏名】池浦 潔
【審査官】及川 尚人
(56)【参考文献】
【文献】特開2013-125288(JP,A)
【文献】国際公開第2009/096247(WO,A1)
【文献】特開2011-186981(JP,A)
【文献】特開2008-242850(JP,A)
【文献】特開2001-075759(JP,A)
【文献】特開2016-110499(JP,A)
【文献】特開2001-202236(JP,A)
【文献】特開2003-198361(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H03K 19/098-19/23
G06F 8/654
(57)【特許請求の範囲】
【請求項1】
複数の領域を有する、動的再構成可能回路と、
前記領域に回路情報に対応する回路を動的に再構成する、回路再構成手段と、
動的に再構成された前記回路
において実行される処理の処理結果である中間情報を用いて、次に再構成される回路に対応する回路情報を選択し、当該回路が再構成された領域と別の領域に、前記選択した回路情報に対応する回路を再構成させる制御をする、回路再構成制御手段と、
動的に再構成された前記回路が出力した出力情報を、前記次に再構成される回路に入力する入力情報として記憶する、結果保持手段と、を有し、
前記回路再構成制御手段は、更に、動的に再構成された前記回路が動作している場合、前記入力情報、又は前記中間情報、又は両方を用いて、複数の前記次に再構成する回路情報の候補を選択し、選択した複数の前記次に再構成する回路情報のなかから、前記中間情報を用いて、前記次に再構成される回路に対応する回路情報を選択する、
回路再構成装置。
【請求項2】
請求項
1に記載の回路再構成装置であって、
前記回路再構成制御手段は、
更に、動的に再構成された前記回路が動作している場合、前記入力情報、又は前記中間情報、又は両方を用いて、複数の前記次に再構成する回路情報の候補を選択し、選択した複数の候補に対応する回路を、前記別の領域に再構成させる制御をする。
【請求項3】
動的再構成可能回路に複数の領域を有する、回路再構成装置の制御方法であって、
(A)前記領域に回路情報に対応する回路を動的に再構成する、ステップと、
(B)動的に再構成された前記回路
において実行される処理の処理結果である中間情報を用いて、次に再構成される回路に対応する回路情報を選択し、当該回路が再構成された領域と別の領域に、前記選択した回路情報に対応する回路を再構成させる制御をする、ステップと、
(C)動的に再構成された前記回路が出力した出力情報を、前記次に再構成される回路に入力する入力情報として記憶をする、ステップと、を有し、
前記(B)のステップにおいて、動的に再構成された前記回路が動作している場合、前記入力情報、又は前記中間情報、又は両方を用いて、複数の前記次に再構成する回路情報の候補を選択し、選択した複数の前記次に再構成する回路情報のなかから、前記中間情報を用いて、前記次に再構成される回路に対応する回路情報を選択する、
回路再構成装置の制御方法。
【請求項4】
請求項
3に記載の回路再構成装置の制御方法であって、
前記(B)のステップにおいては、動的に再構成された前記回路が動作している場合、前記入力情報、又は前記中間情報、又は両方を用いて、複数の前記次に再構成する回路情報の候補を選択し、選択した複数の候補に対応する回路を、前記別の領域に再構成させる制御をする。
【請求項5】
動的再構成可能回路に複数の領域を有する、回路再構成装置に用いる制御プログラムであって、
前記回路再構成装置に
(A)前記領域に回路情報に対応する回路を動的に再構成する、ステップと、
(B)動的に再構成された前記回路
において実行される処理の処理結果である中間情報を用いて、次に再構成される回路に対応する回路情報を選択し、当該回路が再構成された領域と別の領域に、前記選択した回路情報に対応する回路を再構成させる制御をする、ステップと、
(C)動的に再構成された前記回路が出力した出力情報を、前記次に再構成される回路に入力する入力情報として記憶をする、ステップと、を実行させ、
前記(B)のステップにおいて、動的に再構成された前記回路が動作している場合、前記入力情報、又は前記中間情報、又は両方を用いて、複数の前記次に再構成する回路情報の候補を選択し、選択した複数の前記次に再構成する回路情報のなかから、前記中間情報を用いて、前記次に再構成される回路に対応する回路情報を選択する、
制御プログラム。
【請求項6】
請求項
5に記載の回路再構成装置に用いる制御プログラムであって、
前記(B)のステップにおいては、動的に再構成された前記回路が動作している場合、前記入力情報、又は前記中間情報、又は両方を用いて、複数の前記次に再構成する回路情報の候補を選択し、選択した複数の候補に対応する回路を、前記別の領域に再構成させる制御をする。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、回路を再構成する回路再構成装置、制御方法、及び制御プログラムに関する。
【背景技術】
【0002】
近年、動的に再構成可能な回路(以降、動的再構成可能回路と呼ぶ)を有するFPGA(Field Programmable Gate Array)などのプログラマブルなデバイス(以降、回路再構成装置と呼ぶ)が普及し、多種多様な電子機器に搭載されている。このような回路再構成装置は、例えば、回路再構成装置が動作している間でも、動的再構成可能回路に回路情報を用いて、回路情報に対応する回路を再構成できる。
【0003】
ところで、回路情報を用いて再構成した回路の規模が、想定している回路の規模を超過した場合、現状では、再構成できる回路の規模が大きい回路再構成装置に変更している。また、再構成できる回路の規模を大きくすると、回路を再構成する時間が増加する。
【0004】
特許文献1には、動的再構成可能回路を有するFPGAを用いて、パイプラインを構成する技術が開示されている。具体的には、まず、動的再構成可能回路を分割した複数の領域(ブロックA、B、C)に、パイプライン処理回路を再構成するために用いる回路情報(ブロックデータDA、DB、DC)を作成する。そして、ブロックデータDAを用いてブロックAに回路を再構成し、ブロックAに回路を再構成した後、ブロックAに再構成した回路が動作している間に、ブロックデータDBを用いてブロックBに回路を再構成する。更に、ブロックBに回路を再構成した後、ブロックBに再構成した回路が動作している間に、ブロックデータDCを用いてブロックCに回路を再構成する。このように、再構成した回路が動作している間に他の回路を再構成することで、パイプライン処理にかかる時間を短縮している。
【0005】
特許文献2には、複数の回路情報(ブロックデータ)を用いて、動的再構成可能回路に、一連の処理を実行するために用いる複数の異なる回路を、順次再構成する技術が開示されている。また、特許文献2では、分割した回路情報に基づいて再構成した回路が出力した出力データを、次に再構成する回路の入力データとすることが開示されている。
【先行技術文献】
【特許文献】
【0006】
【文献】特開2011-186981号公報
【文献】特開2001-202236号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献1に開示された技術では、分割したすべての領域(ブロックA、B、C)に回路を再構成するため、回路規模が大きくなると、動的再構成可能回路の大きな回路再構成装置に変更しなくてはならない。従って、回路を再構成する時間が増加する。
【0008】
また、特許文献2に開示された技術では、一連の処理を実行するために用いる複数の異なる回路を、動的再構成可能回路に対して順次再構成するので、動的再構成可能回路の規模を小さくできる。しかし、特許文献2に開示された技術では、一つの動的再構成可能回路に順次回路を再構成するため、再構成をするたびに処理を停止させてから、次に用いる
回路を再構成をしなければならない。すなわち、停止後、再構成が終了してから次の処理を開始しなければならない。そのため、当該処理を実行する時間が増加するので、処理速度が低下する。
【0009】
本発明の目的の一例は、再構成できる回路の規模を小さくし、かつ処理速度の低下を抑止する回路再構成装置、制御方法、及び制御プログラムを提供することにある。
【課題を解決するための手段】
【0010】
上記目的を達成するため、本発明の一側面における回路再構成装置は、
複数の領域を有する、動的再構成可能回路と、
前記領域に回路情報に対応する回路を動的に再構成する、回路再構成手段と、
動的に再構成された前記回路が生成した中間情報を用いて、次に再構成される回路に対応する回路情報を選択し、当該回路が再構成された領域と別の領域に、前記選択した回路情報に対応する回路を再構成させる制御をする、回路再構成制御手段と、
を有することを特徴とする。
【0011】
また、上記目的を達成するため、本発明の一側面における、動的再構成可能回路に複数の領域を有する、回路再構成装置の制御方法は、
(A)前記領域に回路情報に対応する回路を動的に再構成する、ステップと、
(B)動的に再構成された前記回路が生成した中間情報を用いて、次に再構成される回路に対応する回路情報を選択し、当該回路が再構成された領域と別の領域に、前記選択した回路情報に対応する回路を再構成させる制御をする、ステップと、
を有することを特徴とする。
【0012】
更に、上記目的を達成するため、本発明の一側面における、動的再構成可能回路に複数の領域を有する、回路再構成装置に用いる制御プログラムは、
前記回路再構成装置に
(A)前記領域に回路情報に対応する回路を動的に再構成する、ステップと、
(B)動的に再構成された前記回路が生成した中間情報を用いて、次に再構成される回路に対応する回路情報を選択し、当該回路が再構成された領域と別の領域に、前記選択した回路情報に対応する回路を再構成させる制御をする、ステップと、
を実行させることを特徴とする。
【発明の効果】
【0013】
以上のように本発明によれば、再構成できる回路の規模を小さくし、かつ処理速度の低下を抑止することができる。
【図面の簡単な説明】
【0014】
【
図1】
図1は、回路再構成装置の一例を示す図である。
【
図2】
図2は、回路再構成装置を具体的に示す図である。
【
図3】
図3は、回路再構成装置の動作の一例を示す図である。
【
図4】
図4は、回路再構成装置の動作の一例を示す図である。
【
図5】
図5は、回路再構成装置の動作の一例を示す図である。
【
図6】
図6は、回路再構成装置の動作の一例を示す図である。
【
図7】
図7は、回路再構成装置を有するハードウェアの一例を示す図である。
【発明を実施するための形態】
【0015】
(実施の形態)
以下、本発明の実施の形態について、
図1から
図7を参照しながら説明する。
【0016】
[装置構成]
最初に、
図1を用いて、本実施の形態における回路再構成装置の構成について説明する。
図1は、回路再構成装置の一例を示す図である。
【0017】
図1に示すように、回路再構成装置1は、動的再構成可能回路の規模を小さくし、かつ処理速度の低下を抑止する装置である。回路再構成装置1は、例えば、FPGAなどのプログラマブルなデバイスである。回路再構成装置1は、動的再構成可能回路2と、回路再構成部3(回路再構成手段)と、回路再構成制御部4(回路再構成制御手段)とを有する。
【0018】
このうち、動的再構成可能回路2は、複数の領域2a、2bを有する。回路再構成部3は、領域2a、2bに回路情報に対応する回路を動的に再構成する。回路再構成制御部4は、動的に再構成された回路が生成した中間情報を用いて、次に再構成させる回路に対応する回路情報を選択し、当該回路が再構成された領域と別の領域に、選択した回路情報に対応する回路を再構成させる制御をする。すなわち、回路再構成制御部4は、回路再構成部3に対して、別の領域に、選択した回路情報に対応する回路を再構成させる指示をする。なお、回路再構成制御部4は、動的再構成可能回路2と異なる動的でない再構成可能回路5に再構成する。
【0019】
また、
図1に示す記憶部6は回路情報を記憶する。
図1の例では、回路情報である処理A、処理B(B1又はB2)、処理C(C1又はC2又はC3)、処理D(D1又はD2又はD3又はD4)は、処理A、B、C、Dの順番に実行される一連の処理である。また、一連の処理は、
図1の例では、処理Bは処理Aの処理結果(中間情報)に依存し、処理Cは処理Bの処理結果(中間情報)に依存し、処理Dは処理Cの処理結果(中間情報)に依存する。
【0020】
具体的に説明する。回路再構成部3は、まず、領域2aに処理Aに対応する回路を再構成する。回路再構成制御部4は、処理Aに対応する回路が動作を開始した後、中間情報を用いて次に実行される処理B1又はB2を選択し、選択した処理に対応する回路を再構成することを、回路再構成部3へ指示する。回路再構成部3は、領域2bに選択された処理B1又はB2に対応する回路を再構成する。
【0021】
続いて、回路再構成制御部4は、処理B1又はB2に対応する回路が動作を開始した後、中間情報を用いて次に実行される処理C1、C2、C3のいずれか一つを選択し、選択した処理に対応する回路を再構成することを、回路再構成部3へ指示する。回路再構成部3は、領域2aに選択された処理C1、C2、C3のいずれか一つに対応する回路を再構成する。
【0022】
続いて、回路再構成制御部4は、処理C1、C2、C3のいずれか一つに対応する回路が動作を開始した後、中間情報を用いて次に実行される処理D1、D2、D3、D4のいずれか一つを選択し、選択した処理に対応する回路を再構成することを、回路再構成部3へ指示をする。回路再構成部3は、領域2bに選択された処理D1、D2、D3、D4のいずれか一つに対応する回路を再構成する。
【0023】
このように、本実施の形態では、回路情報を用いて再構成する回路の規模が、回路再構成装置1に再構成できる回路規模より大きい場合でも、一連の処理を分割した回路情報を複数の領域に連続して再構成できるので、回路再構成装置1の規模を小さくできる。従って、回路を再構成する時間も短縮できる。
【0024】
また、再構成された回路が動作している間に、当該回路が動作している領域と別の領域
に次に再構成させる回路を再構成させるので、従来のように再構成をするたびに処理を停止しなくてもよい。そのため、一連の処理を実行する時間を短縮できる。その結果、処理速度の低下を抑止できる。
【0025】
更に、本実施の形態では、上述したように前段の処理に後段の処理が依存しているような場合(前段の処理結果(中間情報)により後段の処理が選択されるような場合)でも、後段の処理をできるだけ早く選択し、選択した後段の処理に対応する回路を再構成する。例えば、処理Aの後段の処理として処理B1又はB2を選択するような場合、処理Aに対応する回路が動作中に生成した中間情報を用いて、条件に一致する後段の処理を選択する。そうすることで、次に再構成する回路の候補が複数ある場合でも、連続して回路を再構成できる。
【0026】
また、中間情報を用いて次の処理を選択できるので、従来よりも処理を小さく分割することができる。現状では、例えば、処理Aの次に処理B1又はB2を実行する場合でも、選択ができないので、処理B1と処理B2とを含む処理Bに対応する回路を再構成している。しかし、本実施の形態では、次の処理を選択ができるため、処理Bを処理B1と処理B2に分割できる。そのため、更に、動的再構成可能回路の規模を小さくできる。その結果、更に、回路を再構成する時間を短縮できる。
【0027】
また、再構成可能回路の規模を小さくできるので、回路再構成装置1の価格や消費電力を抑制できる。例えば、車載機器、又はIoT(Internet of Things)デバイス、又は画像分析処理装置などの組み込み機器では、低価格、低消費電力が求められているため、できるだけ小さい回路再構成装置を採用できる。
【0028】
なお、分割の方法は、例えば、設計ツールを用いて一連の処理のソースを解析し、領域2a、2bに再構成可能な規模に分割する。
【0029】
続いて、
図2を用いて、本実施の形態における回路再構成装置1についてより具体的に説明する。
図2は、回路再構成装置を具体的に示す図である。
【0030】
図2に示すように、本実施の形態における回路再構成装置1は、領域2a、2bと、回路再構成部3と、回路再構成制御部4とに加えて、入力部21と、出力部22と、結果保持部23とを有する。
【0031】
領域2a、2bは、動的再構成可能回路2に設けられる領域である。なお、動的再構成可能回路2は、二つ以上の領域を有してもよい。具体的には、動的再構成可能回路2は、論理回路、入出力回路、配線回路などを有し、それらの回路を用いて、記憶部6に記憶されている回路情報に対応する回路を動的に再構成する。動的に再構成される回路は、例えば、上述した回路情報を示す処理(処理A、処理B1からB2、処理C1からC3、処理D1からD4)に対応する回路である。
【0032】
回路再構成部3は、再構成可能回路5及び動的再構成可能回路2に回路情報を用いて、回路情報に対応する回路を再構成する回路である。具体的には、回路再構成部3は、記憶部6に記憶されている、回路再構成制御部4を再構成するための回路情報を用いて、コンフィギュレーション期間に、再構成可能回路5に回路再構成制御部4を構成する。また、回路再構成部3は、記憶部6に記憶されている上述した処理を用いて、動的に再構成をする期間に、領域2a、2bに処理それぞれに対応する回路を動的に再構成する。
【0033】
回路再構成制御部4は、動的に再構成された回路が生成した中間情報を用いて、次に再構成させる回路に対応する回路情報を選択し、当該回路が再構成された領域と別の領域に
、選択した回路情報に対応する回路を再構成させる制御をする。なお、回路再構成制御部4は、例えば、再構成可能回路5に再構成する。ただし、再構成可能回路5以外に設けてもよい。
【0034】
具体的には、回路再構成制御部4は、まず、動的再構成可能回路2が有する領域に動的に再構成された回路が生成した中間情報を取得する。中間情報は、次に再構成させる回路に対応する回路情報を選択するために用いる情報である。また、回路再構成制御部4は、中間情報以外にも、動的再構成可能回路2が有する領域に動的に再構成された回路に、外部から入力された入力情報を、動的に再構成された回路から取得する。入力情報は、例えば、動的に再構成された回路の外部に設けられた外部装置から入力される情報(
図2に示す外部からの入力情報)、又は結果保持部23から再構成された回路へ出力される情報(
図2に示す内部に保持した入力情報)である。
【0035】
例えば、画像分析処理を回路再構成装置1が実行する場合、外部からの入力情報は、撮像装置が撮像した動画像、各種センサから取得した速度、加速度、温度、湿度などの入力データ、及び、走行路、周囲環境、天候などの条件データである。中間情報は、例えば、画像分析処理により物体を検知した結果や、人物とそれ以外とを検知した結果などである。
【0036】
外部装置は、プロセッサなどの情報処理装置、又は通信装置などである。なお、外部装置は、再構成可能回路5に設けていてもよい。
【0037】
続いて、回路再構成制御部4は、中間情報、又は入力情報、又は両方の情報、又はそれら情報の一部を用いて、次に再構成させる回路に対応する回路情報を選択する。そして、回路再構成制御部4は、選択した回路情報に対応する回路を領域に再構成するための再構成指示を、回路再構成部3に送信する。回路再構成部3は、再構成指示を受信した後、選択した回路情報に対応する回路を領域に再構成する。
【0038】
又は、回路再構成制御部4は、動的に再構成された回路が動作している場合、入力情報を用いて、複数の次に再構成する回路情報の候補を選択し、選択した複数の次に再構成する回路情報のなかから、中間情報を用いて、次に再構成される回路に対応する回路情報を選択してもよい。
【0039】
具体的に説明する。例えば、処理B1の次に処理C1を選択する条件1が、入力情報1、中間情報1、中間情報2であり、処理B1の次に処理C2を選択する条件2が、入力情報1、中間情報1、中間情報3であり、処理B1の次に処理C3を選択する条件3が、入力情報1、中間情報3、中間情報4である場合について説明する。
【0040】
回路再構成制御部4が、既に外部装置から入力情報1を取得している場合、入力情報1は条件1、条件2、条件3に含まれているので、処理C1と処理C2と処理C3とを次に再構成する候補とする。
【0041】
続いて、回路再構成制御部4は、処理B1に対応する回路から、処理B1の処理結果として中間情報1を取得する。中間情報1は条件1、条件2に含まれるので、処理C1と処理C2とに候補を絞る。
【0042】
続いて、回路再構成制御部4は、処理B1に対応する回路から、処理B1の処理結果として中間情報2を取得したとすると、中間情報2は条件1にしかないので、処理C1を選択する。
【0043】
又は、回路再構成制御部4は、処理B1に対応する回路から、処理B1の処理結果として中間情報3を取得したとすると、中間情報1と中間情報3とを有するのは条件2しかないので、処理C2を選択する。
【0044】
なお、回路再構成制御部4は、処理B1に対応する回路から処理結果として中間情報3と中間情報4とを取得したとすると、中間情報3と中間情報4とを有するのは条件3しかないので、処理C3を選択する。
【0045】
更に、回路再構成制御部4は、動的に再構成された回路が動作している場合、入力情報を用いて、複数の次に再構成する回路情報の候補を選択し、選択した複数の候補に対応する回路を、動的に再構成された回路が動作している領域と別の領域に再構成するための再構成指示を、回路再構成部3に送信してもよい。
【0046】
例えば、三つ以上の領域2a、2b、2cを設け、現在、領域2bに処理B1に対応する回路が再構成されている場合に、回路再構成制御部4が中間情報1を取得すると、領域2aに処理C1を再構成し、領域2cに処理C2を再構成する。その後、処理B1の中間情報を用いて、次に回路を再構成する処理を選択する。
【0047】
なお、次に回路を再構成する処理の候補の数が、領域の数より多い場合、予め処理に優先順位を設定し、その優先順位に従い再構成をしてもよい。優先順位は、実験、又はシミュレーション、又は機械学習などにより導出した確率などである。
【0048】
ただし、回路再構成制御部4は、選択した候補と異なる回路情報が、中間情報を用いて選択された場合、中間情報を用いて選択された回路情報を用いて、回路を再構成する。
【0049】
次に、回路再構成制御部4は、動作している再構成された回路が処理を終了すると、次に再構成させる回路側へ入出力を切り替える。すなわち、回路再構成制御部4は、後述する入力部21を制御し、動的に再構成された回路に入力された入力情報を、入力部21から入力先となる領域へ入力させる。また、回路再構成制御部4は、後述する出力部22を制御し、動的に再構成された回路から出力された出力情報を、出力部22から出力先となる領域へ出力させる。出力情報は、動的に再構成された回路が実行した処理結果で、再構成された回路から外部装置へ出力する情報(
図2に示す外部へ出力する出力情報)、又は再構成された回路から結果保持部23へ入力される情報(
図2に示す内部に保持する出力情報)である。
【0050】
入力部21は、外部装置から入力される情報(外部からの入力情報)、又は結果保持部23から再構成された回路へ出力される情報(内部に保持した入力情報)を取得し、領域2a又は2bに再構成された回路へ出力する、切替部21aと切替部21bとを有する。
【0051】
切替部21aは、外部装置から入力される情報(外部からの入力情報)、又は結果保持部23から再構成された回路へ出力される情報(内部に保持した入力情報)を取得する。そして、切替部21aは、回路再構成制御部4により制御され、取得した入力情報を選択して切替部21bに出力する。
【0052】
切替部21bは、切替部21aから出力された入力情報を、回路再構成制御部4により選択された次に動作する回路が構成されている領域へ出力する。
【0053】
出力部22は、領域2a又は2bから外部へ出力する出力情報を取得し、取得した出力情報を外部装置へ出力する。また、出力部22は、領域2a又は2bから外部へ出力する出力情報を取得し、取得した出力情報を結果保持部23に保持する。出力部22は、切替
部22aと切替部22bとを有する。
【0054】
切替部22aは、再構成された回路から外部装置へ出力する情報(外部へ出力する出力情報)、又は再構成された回路から結果保持部23へ出力する情報(内部に保持する出力情報)を取得する。そして、切替部22aは、回路再構成制御部4により制御され、取得した出力情報を切替部22bに出力する。
【0055】
切替部22bは、切替部22aから出力された出力情報を、回路再構成制御部4の制御により選択された外部装置又は結果保持部23へ出力する。
【0056】
結果保持部23は、領域2a又は2bに再構成された回路から出力された出力情報を保持し、次の回路が再構成された後、保持した出力情報を次に再構成された回路へ出力する。結果保持部23は、例えば、再構成可能回路5に再構成する。ただし、再構成可能回路5以外に設けてもよい。
【0057】
[装置動作]
次に、本発明の実施の形態における回路再構成装置1の動作について
図3から
図6を用いて説明する。
図3から
図6は、回路再構成装置の動作の一例を示す図である。なお、以下の説明においては、適宜
図1、2を参酌する。また、本実施の形態では、回路再構成装置1を動作させることによって、回路再構成方法が実施される。よって、本実施の形態における回路再構成方法の説明は、以下の回路再構成装置1の動作説明に代える。
【0058】
まず、回路再構成部3は、記憶部6から回路再構成制御部4と処理Aに対応する回路情報を取得し、再構成可能回路5に回路再構成制御部4を再構成し、動的再構成可能回路2の領域2aに処理Aに対応する回路(以降、回路Aと呼ぶ)を再構成する。
【0059】
次に、
図3に示すように、情報処理装置は、回路Aに一連の処理を開始することを示す開始指示を送信する(ステップA1)。回路Aは、開始指示を受信した場合(ステップA2)、処理A(ステップA7からA9)を開始する。
【0060】
次に、情報処理装置は、回路Aに入力情報を送信する(ステップA3)。回路Aは、入力情報を受信した場合(ステップA4)、入力情報を回路再構成制御部4へ送信する(ステップA5)。回路再構成制御部4は、入力情報を受信した場合(ステップA6)、処理Aの次に実行する処理を選択する選択処理を開始する(ステップA11からA13)。例えば、処理B1又はB2を選択する選択処理を開始する。
【0061】
なお、回路Aと回路再構成制御部4とは、処理Aと選択処理とを並行して実行する。処理Aでは、回路Aが、動作して処理Aを実行して、中間情報と出力情報とを生成する(ステップA7、ステップA9)。また、回路Aは、選択処理で用いる中間情報を、回路再構成制御部4へ送信する(ステップA8)。すなわち、回路Aは、処理B1又はB2を選択するために用いる中間情報を、回路再構成制御部4へ送信する。なお、回路Aは、中間情報を生成するたびに、回路再構成制御部4へ送信してもよい。
【0062】
選択処理では、回路再構成制御部4は、まず、入力情報を用いて処理Aの次に実行する処理の候補を選択する(ステップA10)。例えば、処理B1と処理B2とを候補にする。
【0063】
続いて、回路再構成制御部4は、回路Aから中間情報を受信する(ステップA11)。そして、回路再構成制御部4は、中間情報を用いて、選択した候補のなかから、処理Aの次に実行する処理を選択する(ステップA12)。例えば、処理B1を選択する。
【0064】
その後、回路再構成制御部4は、回路再構成部3に、記憶部6から処理Aの次に実行する処理B1に対応する回路情報を読み出し、領域2bに次の処理に対応する回路(以降、回路Bと呼ぶ)を再構成させるための再構成指示を送信する(ステップA13)。記憶部6は、回路再構成部3を介して再構成指示を受信する(ステップA14)。
【0065】
回路再構成部3は、選択処理が終了した後、記憶部6から処理B1を読み出し(ステップA15)、領域2bに回路Bを再構成する(ステップA16)。
【0066】
また、回路Aは、処理Aが終了する前において、結果保持部23に処理Aの処理結果である出力情報を送信する(ステップA17)。結果保持部23は、回路Aから出力情報を受信して保持する(ステップA18)。回路Aは、処理Aが終了した場合、処理Aが終了したことを示す終了情報を、回路再構成制御部4へ送信する(ステップA19)。回路再構成制御部4は、終了情報を受信した場合(ステップA20)、入力部21と出力部22とに回路A側から回路B側に入出力を切り替える切替指示をする(ステップA21)。
【0067】
次に、
図4に示すように、結果保持部23は、保持している回路Aの処理結果である出力情報を、入力情報として回路Bへ送信する(ステップB1)。回路Bは、入力情報を受信した場合(ステップB2)、入力情報を回路再構成制御部4へ送信する(ステップB3)。また、回路Bは、入力情報を受信した場合(ステップB4)、処理B1(ステップB5からB7)を開始する。
【0068】
回路再構成制御部4は、入力情報を受信した場合(ステップB4)、処理B1の次に実行する処理を選択する選択処理を開始する(ステップB8からB11)。例えば、処理C1からC3のいずれか一つを選択する選択処理を開始する。
【0069】
なお、回路Bと回路再構成制御部4とは、処理B1と選択処理とを並行して実行する。処理B1では、回路Bが、動作して処理B1を実行して、中間情報と出力情報とを生成する(ステップB5、ステップB7)。また、回路Bは、選択処理で用いる中間情報を、回路再構成制御部4へ送信する(ステップB6)。例えば、回路Bは、処理C1からC3のいずれか一つを選択するために用いる中間情報を、回路再構成制御部4へ送信する。なお、回路Bは、中間情報を生成するたびに、回路再構成制御部4へ送信してもよい。
【0070】
選択処理では、回路再構成制御部4は、まず、入力情報を用いて処理B1の次に実行する処理の候補を選択する(ステップB8)。例えば、処理C1、C2、C3を候補にする。
【0071】
続いて、回路再構成制御部4は、回路Bから中間情報を受信する(ステップB9)。そして、回路再構成制御部4は、中間情報を用いて、選択した候補のなかから、処理B1の次に実行する処理を選択する(ステップB10)。例えば、処理C1を選択する。
【0072】
その後、回路再構成制御部4は、回路再構成部3に、記憶部6から処理B1の次に実行する処理C1に対応する回路情報を読み出し、領域2aに次の処理に対応する回路(以降、回路Cと呼ぶ)を再構成させるための再構成指示を送信する(ステップB11)。記憶部6は、回路再構成部3を介して再構成指示を受信する(ステップB12)。
【0073】
回路再構成部3は、選択処理が終了した後、記憶部6から処理C1を読み出し(ステップB13)、領域2aに回路Cを再構成する(ステップB14)。
【0074】
また、回路Bは、処理B1が終了する前において、結果保持部23に処理B1の処理結
果である出力情報を送信する(ステップB15)。結果保持部23は、回路Bから出力情報を受信して保持する(ステップB16)。回路Bは、処理B1が終了した場合、処理B1が終了したことを示す終了情報を、回路再構成制御部4へ送信する(ステップB17)。回路再構成制御部4は、終了情報を受信した場合(ステップB18)、入力部21と出力部22とに回路B側から回路C側に入出力を切り替える切替指示をする(ステップB19)。
【0075】
次に、
図5に示すように、結果保持部23は、保持している回路B1の処理結果である出力情報を、入力情報として回路Cへ送信する(ステップC1)。回路Cは、入力情報を受信した場合(ステップC2)、入力情報を回路再構成制御部4へ送信する(ステップC3)。また、回路Cは、入力情報を受信した後(ステップC4)、処理C1(ステップC5からC7)を開始する。
【0076】
回路再構成制御部4は、入力情報を受信した場合(ステップC4)、処理C1の次に実行する処理を選択する選択処理を開始する(ステップC8からC11)。例えば、処理D1からD4のいずれか一つを選択する選択処理を開始する。
【0077】
なお、回路Cと回路再構成制御部4とは、処理C1と選択処理とを並行して実行する。処理C1では、回路Cが、動作して処理C1を実行して、中間情報と出力情報とを生成する(ステップC5、ステップC7)。また、回路Cは、選択処理で用いる中間情報を、回路再構成制御部4へ送信する(ステップC6)。例えば、回路Cは、処理D1からD4のいずれか一つを選択するために用いる中間情報を、回路再構成制御部4へ送信する。なお、回路Dは、中間情報を生成するたびに、回路再構成制御部4へ送信してもよい。
【0078】
選択処理では、回路再構成制御部4は、まず、入力情報を用いて処理C1の次に実行する処理の候補を選択する(ステップC8)。例えば、処理D1、D2、D3、D4を候補にする。
【0079】
続いて、回路再構成制御部4は、回路Cから中間情報を受信する(ステップC9)。そして、回路再構成制御部4は、中間情報を用いて、選択した候補のなかから、処理C1の次に実行する処理を選択する(ステップC10)。例えば、処理D2を選択する。
【0080】
その後、回路再構成制御部4は、回路再構成部3に、記憶部6から処理C1の次に実行する処理D2に対応する回路情報を読み出し、領域2bに次の処理に対応する回路(以降、回路Dと呼ぶ)を再構成させるための再構成指示を送信する(ステップC11)。記憶部6は、回路再構成部3を介して再構成指示を受信する(ステップC12)。
【0081】
回路再構成部3は、選択処理が終了した後、記憶部6から処理D2を読み出し(ステップB13)、領域2bに回路Dを再構成する(ステップC14)。
【0082】
また、回路Cは、処理C1が終了する前において、結果保持部23に処理C1の処理結果である出力情報を送信する(ステップC15)。結果保持部23は、回路Cから出力情報を受信して保持する(ステップC16)。回路Cは、処理C1が終了した場合、処理C1が終了したことを示す終了情報を、回路再構成制御部4へ送信する(ステップC17)。回路再構成制御部4は、終了情報を受信した場合(ステップC18)、入力部21と出力部22とに回路C側から回路D側に入出力を切り替える切替指示をする(ステップC19)。
【0083】
次に、
図6に示すように、結果保持部23は、保持している回路Cの処理結果である出力情報を、入力情報として回路Dへ送信する(ステップD1)。回路Dは、入力情報を受
信した場合(ステップD2)、入力情報を回路再構成制御部4へ送信する(ステップD3)。また、回路Dは、入力情報を受信した後(ステップD4)、処理D2(ステップD5からD7)を開始する。
【0084】
回路再構成制御部4は、入力情報を受信した場合(ステップD4)、処理D2の次に実行する処理を選択する選択処理を開始する(ステップD8からD10)。
【0085】
なお、回路Dと回路再構成制御部4とは、処理D2と選択処理とを並行して実行する。処理D2では、回路Dが、動作して処理D2を実行して、中間情報と出力情報とを生成する(ステップD5、ステップD7)。また、回路Dは、選択処理で用いる中間情報を、回路再構成制御部4へ送信する(ステップD6)。例えば、回路Dは、次の処理を選択するために用いる中間情報を、回路再構成制御部4へ送信する。なお、回路Dは、予め次の処理が無いとわかっている場合、中間情報を生成しなくてもよい。
【0086】
選択処理では、回路再構成制御部4は、まず、入力情報を用いて処理D1の次に実行する処理の候補を選択する(ステップD8)。
図6の例では、次に選択する処理の候補がない。
【0087】
続いて、回路再構成制御部4は、回路Dから中間情報を受信する(ステップD9)。そして、回路再構成制御部4は、中間情報を用いて、選択した候補のなかから、処理D1の次に実行する処理を選択する(ステップD10)。
図6の例では、次に選択する処理の候補がない。
【0088】
その後、回路Dは、情報処理装置に処理D2の処理結果である出力情報を送信する(ステップD11)。情報処理装置は、回路Dから出力情報を受信した場合(ステップD12)、出力情報を用いて、処理を実行する。回路Dは、処理D2が終了した場合、処理D2が終了したことを示す終了情報を、回路再構成制御部4へ送信する(ステップD13)。回路再構成制御部4は終了情報を受信する(ステップD14)。
【0089】
なお、回路再構成制御部4は、終了情報を受信した場合(ステップD14)、次の処理に備えて、入力部21と出力部22とに入出力を切り替える切替指示をしてもよい。
【0090】
例えば、次に領域2aに再構成する回路が処理Aに対応する回路Aである場合、回路再構成制御部4は、終了情報を受信した後、記憶部6から処理Aを読み出して領域2aに回路Aを再構成する。その後、回路再構成制御部4は、入力部21と出力部22とに回路D側から回路A側へ入出力を切り替える。
【0091】
また、一連の処理において最初の処理が決定できない場合、例えば、最初の処理の候補として処理A1、A2がある場合、回路再構成制御部4は、処理A1又は処理A2を記憶部6から読み出し、領域2aに読み出した処理に対応する回路を再構成する。領域2aに処理A1に対応する回路A1が再構成されている状態において、回路再構成制御部4が処理A2を受信した場合であれば、回路再構成制御部4は領域2aに処理A2に対応する回路A2を再構成する。
【0092】
更に、領域が三つ以上ある場合、回路再構成装置1は、動的に再構成された回路が動作している場合に、入力情報を用いて、複数の次に再構成する回路情報の候補を選択し、選択した複数の候補に対応する回路を、動的に再構成された回路が動作している領域と別の領域に再構成させてもよい。
【0093】
[本実施の形態の効果]
以上のように本実施の形態によれば、回路情報を用いて再構成する回路の規模が、回路再構成装置1に再構成できる回路規模より大きい場合でも、一連の処理を分割した回路情報を複数の領域に連続して再構成できるので、回路再構成装置1の規模を小さくできる。従って、回路を再構成する時間も短縮できる。
【0094】
また、再構成された回路が動作している間に、当該回路が動作している領域と別の領域に次に再構成させる回路を再構成させるので、従来のように再構成をするたびに処理を停止しなくてもよい。そのため、一連の処理を実行する時間を短縮できる。その結果、処理速度の低下を抑止できる。
【0095】
更に、本実施の形態では、上述したように前段の処理に後段の処理が依存しているような場合(前段の処理結果(中間情報)により後段の処理が選択されるような場合)でも、後段の処理をできるだけ早く選択し、選択した後段の処理に対応する回路を再構成する。例えば、処理Aの後段の処理として処理B1又はB2を選択するような場合、処理Aに対応する回路が動作中に生成した中間情報を用いて、条件に一致する後段の処理を選択する。そうすることで、次に再構成する回路の候補が複数ある場合でも、連続して回路を再構成できる。
【0096】
また、中間情報を用いて次の処理を選択できるので、従来よりも処理を小さく分割することができる。現状では、例えば、処理Aの次に処理B1又はB2の処理を実行する場合でも、選択ができないので、処理B1と処理B2とを含む処理Bを再構成している。しかし、本実施の形態では、次の処理を選択ができるため、処理Bを処理B1と処理B2に分割できる。そのため、更に、動的再構成可能回路の規模を小さくできる。その結果、更に、回路を再構成する時間を短縮できる。
【0097】
また、再構成可能回路の規模を小さくできるので、回路再構成装置1の価格や消費電力を抑制できる。例えば、車載機器、又はIoT(Internet of Things)デバイス、画像分析処理装置などの組み込み機器では、低価格、低消費電力が求められているため、できるだけ小さい回路再構成装置を採用できる。
【0098】
[プログラム]
本発明の実施の形態におけるプログラムは、上述した
図3から
図6に示した、再構成可能回路5に回路再構成制御部4を再構成させ、複数の領域2a、2bに回路情報を用いて動的に回路を再構成させるプログラムであればよい。このプログラムを記憶部6に記憶し、プログラムを回路再構成装置1が実行することによって、本実施の形態における上述した回路再構成の制御を実現することができる。
【0099】
[物理構成]
図7は、回路再構成装置を有するハードウェアの一例を示す図である。
図7に示すように、基板110は、回路再構成装置1と、記憶部6と、周辺回路120とを有する。周辺回路120は、例えば、CPU(Central Processing Unit)に加えて、又はCPUに代えて、GPU(Graphics Processing Unit)、又はFPGA、又は通信装置などを有する回路である。
【0100】
記憶部6は、典型的には、ROM(Read Only Memory)等の不揮発性の記憶装置である。また、本実施の形態におけるプログラムは、コンピュータ読み取り可能な記録媒体130に格納された状態で提供してもよい。なお、本実施の形態におけるプログラムは、通信インターフェイスを介して接続されたインターネット上で流通するものでもよい。また、記録媒体130の具体例としては、CF(Compact Flash(登録商標))及びSD(Secure Digital)等の汎用的な半導体記憶デバイス、フレキシブルディスク(Flexible Disk)
等の磁気記録媒体、又はCD-ROM(Compact Disk Read Only Memory)などの光学記録媒体があげられる。
【産業上の利用可能性】
【0101】
以上のように本発明によれば、再構成できる回路の規模を小さくし、かつ処理速度の低下を抑止することができる。本発明は、FPGAを代表とするプログラマブルなデバイスの分野において有用である。
【符号の説明】
【0102】
1 回路再構成装置
2 動的再構成可能回路
2a、2b 領域
3 回路再構成部
4 回路再構成制御部
5 再構成可能回路
6 記憶部
21 入力部
21a、21b 切替部
22 出力部
22a、22b 切替部
23 結果保持部
110 基板
120 周辺回路
130 記録媒体