(57)【要約】【課題】リコンフィグ可能な電子デバイスリソースに実装された回路モジュールが中断されていた処理を再開するための待ち時間を短縮する。【解決手段】本発明の一態様によれば、管理装置は、パラメータ管理部と、パラメータ調整部とを含む。パラメータ管理部は、リコンフィグ可能なリソースの第１の領域に実装されている第１の回路モジュールがリソースから削除される前に、第１の回路モジュールによって行われる処理において使用される第１のパラメータを記憶部に退避させる。パラメータ調整部は、処理に関連付けられる第２の回路モジュールが処理の再開のためにリソースの第２の領域に実装される場合に、記憶部に退避されている第１のパラメータを調整し、第２のパラメータを得る。パラメータ管理部は、第１の処理の再開のために第２の領域に実装された第２の回路モジュールに第２のパラメータを設定する。【選択図】      図１
2018180805.tif 000002
【特許請求の範囲】
【請求項１】
リコンフィグ可能な電子デバイスリソースの第１の領域に実装されている第１の回路モジュールが前記リソースから削除される前に、前記第１の回路モジュールによって行われる第１の処理において使用される第１のパラメータを記憶部に退避させるパラメータ管理部と、
前記第１の処理に関連付けられる第２の回路モジュールが前記第１の処理の再開のために前記リソースの第２の領域に実装される場合に、前記記憶部に退避されている第１のパラメータを調整し、第２のパラメータを得るパラメータ調整部と
を具備し、
前記パラメータ管理部は、前記第１の処理の再開のために前記第２の領域に実装された前記第２の回路モジュールに前記第２のパラメータを設定する、
管理装置。
【請求項２】
前記第１の回路モジュールは、出力フィードバック路を備える回路に相当する、請求項１に記載の管理装置。
【請求項３】
前記第２の回路モジュールは、前記第１の回路モジュールと異なるビット幅を使用し、
前記パラメータ調整部は、前記第２の回路モジュールによって使用されるビット幅に適合するように前記第１のパラメータのビット幅を変更し、前記第２のパラメータを得る、  請求項１または請求項２に記載の管理装置。
【請求項４】
前記第１のパラメータは、前記第１の処理の実行中に時間変化し、
前記パラメータ調整部は、前記第１の処理が中断されていた期間において前記第１の処理が実行されていたと仮定した場合に前記第１のパラメータに生じていたであろう時間変化を模擬する補正を前記第１のパラメータに施し、前記第２のパラメータを得る、請求項１または請求項２に記載の管理装置。
【請求項５】
前記第１のパラメータは、前記第１の回路モジュールに含まれるレジスタの値である、請求項１乃至請求項４のいずれか１項に記載の管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リコンフィグ可能な電子デバイスリソースにおける回路モジュールの実装の管理に関する。
【背景技術】
【０００２】
ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）などのプログラム可能な論理デバイスに回路モジュールを実装することで、当該回路モジュールの機能追加、バグ修正などを容易に行うことができる。さらに、リコンフィグ可能なリソースを有する論理デバイスを複数の異なる回路モジュールで時分割使用することも提案されている。
【０００３】
特許文献１は、再構成可能な論理回路の再構成時間を短縮することを目的とした技術を開示している。具体的には、特許文献１は、論理回路Ａと論理回路Ｂとの差分回路情報を保持し、論理回路Ａを再構成した後に論理回路Ｂを再構成する場合に差分回路情報を利用するという技術を開示している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−１２３１２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
リコンフィグ可能なリソースに実装された回路モジュールを処理の途中で一旦削除し、その後に回路モジュールを再実装して当該処理を再開することがある。この場合には、回路モジュールの内部状態が初期化されて実装されることになる。故に、回路モジュールが実装されてから処理が適切に再開可能となるまでの間に、当該回路モジュールを削除する直前の内部状態を再現するための待ち時間が生じることがある。例えば、再開される処理が、回路モジュールの過去の出力値を必要とする演算である場合には、当該回路モジュールを削除する直前までの演算を再実行しなければ、当該処理を適切に再開することはできない。この待ち時間が長くなると、回路モジュールによる処理の再開が遅れたり、回路モジュールが長期間に亘ってリソースを占有したり、回路モジュールが処理を実行できる期間が短くなったりするなどの問題が生じる。
【０００６】
本発明は、リコンフィグ可能な電子デバイスリソースに実装された回路モジュールが中断されていた処理を再開するための待ち時間を短縮することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一態様によれば、管理装置は、パラメータ管理部と、パラメータ調整部とを含む。パラメータ管理部は、リコンフィグ可能な電子デバイスリソースの第１の領域に実装されている第１の回路モジュールがリソースから削除される前に、第１の回路モジュールによって行われる第１の処理において使用される第１のパラメータを記憶部に退避させる。パラメータ調整部は、第１の処理に関連付けられる第２の回路モジュールが第１の処理の再開のためにリソースの第２の領域に実装される場合に、記憶部に退避されている第１のパラメータを調整し、第２のパラメータを得る。パラメータ管理部は、第１の処理の再開のために第２の領域に実装された第２の回路モジュールに第２のパラメータを設定する。
【発明の効果】
【０００８】
本発明によれば、リコンフィグ可能な電子デバイスリソースに実装された回路モジュールが中断されていた処理を再開するための待ち時間を短縮することができる。
【図面の簡単な説明】
【０００９】
【図１】第１の実施形態に係るリコンフィグ管理装置を例示するブロック図。
【図２】図１のリコンフィグ管理装置の周辺を例示するブロック図。
【図３】図２のリソースの領域に実装される回路モジュールと、パラメータ記憶部に格納されるパラメータとの経時変化を示すタイミングチャート。
【図４】無限インパルス応答（ＩＩＲ：Ｉｎｆｉｎｉｔｅ  Ｉｍｐｕｌｓｅ  Ｒｅｓｐｏｎｓｅ）フィルタを例示する図。
【図５】ＩＩＲフィルタの別の例を示す図。
【図６】パラメータの退避例の説明図。
【図７】パラメータの復帰例の説明図。
【図８】パラメータの復帰例の説明図。
【発明を実施するための形態】
【００１０】
以下、図面を参照しながら実施形態の説明を述べる。なお、以降、説明済みの要素と同一または類似の要素には同一または類似の符号を付し、重複する説明については基本的に省略する。
【００１１】
（第１の実施形態）  
第１の実施形態に係るリコンフィグ管理装置１００は、例えば、図２に示されるように、（半導体）集積回路２００に積まれる回路であってよい。図２の例では、集積回路２００は、リコンフィグ管理装置１００の他に、アプリケーション実行部２１０、リコンフィグ可能な電子デバイスリソース２２０およびパラメータ記憶部２３０を積んでいるが、これはハードウェア構成の一例に過ぎない。
【００１２】
リコンフィグ管理装置１００は、アプリケーション実行部２１０からの要求に応じて、リコンフィグ可能な電子デバイスリソース２２０の有する複数の（リコンフィグ）領域のいずれかに回路モジュールを実装する（回路データを書き込む）。リコンフィグ管理装置１００は、所望の回路モジュールを領域に実装するための回路データをコンフィギュレーションＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２４０から読み出すことができる。また、リコンフィグ管理装置１００は、リソース２２０の領域に実装されている回路モジュールを必要に応じて削除する。ここで、回路モジュールの削除とは、回路モジュールの書き換えのために、古い回路モジュールを破棄して領域を解放する処理を意味する。リコンフィグ管理装置１００は、各領域が書き換え可能な状態にあるか（削除してよいか）否かを管理しており、回路モジュールを書き換える領域を適切に選択できる。リコンフィグ管理装置１００は、アプリケーション実行部２１０から要求された回路モジュールの実装が正常に終了したこと／正常に終了しなかったことをアプリケーション実行部２１０に通知する。アプリケーション実行部２１０は、通知された回路モジュールの実装結果に応じて、実行中のアプリケーションソフトウェアによって規定される動作を行う。
【００１３】
さらに、リコンフィグ管理装置１００は、後述されるように、リソース２２０の領域から回路モジュールを削除する前に当該回路モジュールによって行われる処理において使用されるパラメータをパラメータ記憶部２３０に退避させたり、当該処理を再開するために当該処理に関連付けられる回路モジュールをリソース２２０の領域に実装する場合に過去に退避させたパラメータを当該回路モジュールへ設定したりする（このような処理をパラメータの復帰とも呼ぶ）。処理を再開するために実装される回路モジュールは、当該処理の中断のために削除された回路モジュールと同一であってもよいし、後述されるように、異なっていてもよい。ここで、パラメータとは、削除される回路モジュールの内部の情報を指す。なお、処理を再開するために実装される回路モジュールが、退避させたパラメータをそのまま使用できない場合には、リコンフィグ管理装置１００はパラメータを調整する。
【００１４】
なお、パラメータの退避・復帰は、一定の条件下で省略可能である。すなわち、パラメータの退避・復帰を行ったとしても回路モジュールの実装から当該回路モジュールによる処理の再開までの待ち時間が短縮しない場合、待ち時間を削減する必要がない場合などには、パラメータの退避・復帰が省略され得る。
【００１５】
パラメータの退避・復帰を行うことで待ち時間が短縮する回路モジュールとして、例えば、出力フィードバック路を備える回路が挙げられる。具体的には、（デジタル）ＩＩＲフィルタ、ＰＩＤ（Ｐｒｏｐｏｒｔｉｏｎａｌ  Ｉｎｔｅｇｒａｌ  Ｄｉｆｆｅｒｅｎｔｉａｌ）制御回路などは、出力フィードバック路を備える。このような出力フィードバック路を備える回路に相当する回路モジュールによる処理を中断する場合には、パラメータの退避・復帰を行うことで待ち時間を短縮することができる。
【００１６】
ＩＩＲフィルタの一例を図４に示す。以降の説明では、図４のＩＩＲフィルタ３００を回路（モジュール）Ａと称することもある。ＩＩＲフィルタ３００は、加算器３０１と、レジスタ３１１と、レジスタ３１２と、係数レジスタ３２１と、係数レジスタ３２２と、乗算器３３１と、乗算器３３２とを含む。ＩＩＲフィルタ３００は、例えば１６ビット幅を使用する。すなわち、ＩＩＲフィルタ３００において扱われる信号は全て１６ビットである。
【００１７】
レジスタ３１１は、１つ前の（ＩＩＲフィルタ３００の）出力値を格納する。レジスタ３１２は、２つ前の出力値を格納する。３つ以上前の出力値を格納するために、図示されないレジスタが用意されてもよい。なお、ＩＩＲフィルタでは、過去の出力値の全てが、現在の出力値を生成するための演算に用いられる。
【００１８】
係数レジスタ３２１は、１つ前の出力値に乗算される係数を格納する。係数レジスタ３２２は、２つ前の出力値に乗算される係数を格納する。３つ以上前の出力値に乗算される係数を格納するために、図示されない係数レジスタが用意されてもよい。なお、これらの係数は固定値である。
【００１９】
乗算器３３１は、レジスタ３１１から１つ前の出力値を読み出し、係数レジスタ３２１から係数を読み出す。乗算器３３１は、１つ前の出力値に係数を乗算し、乗算結果を加算器３０１へと送る。乗算器３３２は、レジスタ３１２から２つ前の出力値を読み出し、係数レジスタ３２２から係数を読み出す。乗算器３３２は、２つ前の出力値に係数を乗算し、乗算結果を加算器３０１へと送る。３つ以上前の出力値に係数を乗算するために、図示されない乗算器が用意されてもよい。
【００２０】
加算器３０１は、現在の入力値と、過去の出力値に係数を乗じたもの（すなわち、乗算器３３１および乗算器３３２（＋α）の出力）とを加算することで、現在の出力値を生成する。現在の出力値は、ＩＩＲフィルタ３００の外部に送られるとともに、レジスタ３１１に格納される。他方、レジスタ３１１に格納されていた１つ前の出力値は、レジスタ３１２へとシフトする。同様に、レジスタ３１２に格納されていた２つ前の出力値は、図示されないレジスタへとシフトしてもよい。
【００２１】
このように、レジスタ３１１およびレジスタ３１２（＋α）に格納される値は、新たな入力値が与えられる度に（換言すれば、新たな出力値が生成される度に）更新されることになる。
【００２２】
仮に、ＩＩＲフィルタ処理をｎ（ｎは任意の自然数）回実行してからパラメータの退避を行うことなくＩＩＲフィルタ３００に相当する回路モジュールを削除し、その後に当該回路モジュールを再実装したとする。この場合に、レジスタ３１１およびレジスタ３１２に格納されていた値は初期化されているので、ＩＩＲフィルタ処理が初期状態から再びｎ回行われるのを待たなければ、中断されたＩＩＲフィルタ処理を適切に再開することができない。
【００２３】
他方、レジスタ３１１およびレジスタ３１２（＋α）に格納される値を退避しておけば、その後に回路モジュールを再実装する場合に、当該値を復帰させることができるので、当該回路モジュールは直ちに中断されたＩＩＲフィルタ処理を再開可能となる。要するに、中断された処理を再開するための待ち時間を短縮することができる。なお、この例では、パラメータは、回路モジュールに含まれるレジスタに格納された値であるが、退避・復帰の対象となるパラメータはこれに限られない。
【００２４】
アプリケーション実行部２１０は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などのプロセッサである。アプリケーション実行部２１０は、アプリケーションメモリ２５０に展開されたアプリケーションソフトウェアを実行する。アプリケーション実行部２１０は、アプリケーションソフトウェアの実行時に、必要に応じて回路モジュールをリソース２２０の領域に実装するように、リコンフィグ管理装置１００に要求する。
【００２５】
リソース２２０は、例えばＦＰＧＡなどのリコンフィグ可能な電子デバイスリソースである。リソース２２０は、個別に回路モジュールを実装可能な複数の領域を有する。リソース２２０の領域は、リコンフィグ管理装置１００によって、回路モジュールが実装されたり、実装された回路モジュールが削除されたりする。図２の例では、リソース２２０は、合計３つの領域１、領域２および領域３を有している。但し、実用上は、領域数は２以下または４以上であってもよいし、各領域の規模は均等でなくてもよい。
【００２６】
パラメータ記憶部２３０は、リコンフィグ管理装置１００によって退避されたパラメータを格納する。このパラメータは、当該パラメータを使用する処理の再開のために回路モジュールがリソース２２０の領域に実装される場合に、復帰のためにリコンフィグ管理装置１００によって読み出される。パラメータ記憶部２３０は、例えばリソース２２０を有効活用するという観点からすると、当該リソース２２０とは別体であることが好ましい。但し、パラメータ記憶部２３０を、リソース２２０の内部に設けることも可能である。
【００２７】
コンフィギュレーションＲＯＭ２４０は、リソース２２０の領域に回路モジュールを実装するための回路データを格納する。この回路データは、必要に応じて、リコンフィグ管理装置１００によって読み出され、リソース２２０の領域へ書き込まれる。
【００２８】
アプリケーションメモリ２５０は、アプリケーション実行部２１０に接続されるＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。アプリケーションメモリ２５０は、アプリケーション実行部２１０によって実行されるアプリケーションソフトウェアが展開される。このアプリケーションソフトウェアは、例えば図示されない補助記憶装置（ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）など）に格納されている。
【００２９】
具体的には、リコンフィグ管理装置１００は、図１に例示されるように、リコンフィグ管理部１１０と、パラメータ管理部１２０と、パラメータ調整部１３０とを含む。なお、図１の機能分割は一例に過ぎない。パラメータ調整部１３０をパラメータ管理部１２０の一部として捉えることもできるし、パラメータ管理部１２０をリコンフィグ管理部１１０の一部として捉えることもできる。
【００３０】
リコンフィグ管理部１１０は、アプリケーション実行部２１０から、回路モジュールの実装を求める要求を受け付ける。リコンフィグ管理部１１０は、かかる要求に応じて、領域１〜３のうち書き換え可能な状態にある領域から、要求の対象となった回路モジュールを実装する領域を選択する。なお、ある回路を実装した領域と、当該回路（若しくは当該回路と同一の処理を行う他の回路）を後に再実装する領域とは同一であってもよいし、異なってもよい。
【００３１】
選択された領域に実装されている回路モジュールは、削除されることになる。この回路モジュールについてパラメータの退避が必要である場合には、リコンフィグ管理部１１０は当該パラメータの退避をパラメータ管理部１２０に指示する。同様に、要求の対象となった回路モジュールについてパラメータの復帰が必要である場合には、リコンフィグ管理部１１０は当該パラメータの復帰をパラメータ管理部１２０に指示する。パラメータの退避／復帰が必要であるか否かは、例えば予め定められたテーブルを参照することで決定され得る。かかるテーブルは、後掲の表１に例示される。
【００３２】
リコンフィグ管理部１１０は、要求の対象となった回路モジュールを実装するための回路データをコンフィギュレーションＲＯＭから読み出し、当該回路データを選択した領域に書き込むことで、当該回路モジュールを実装する。リコンフィグ管理部１１０は、回路モジュールの実装結果（実装が正常に終了したか否か）をアプリケーション実行部２１０に通知する。
【００３３】
パラメータ管理部１２０は、リコンフィグ管理部１１０によってパラメータの退避または復帰を指示される。パラメータの退避を指示された場合には、パラメータ管理部１２０は、指示された回路モジュールのパラメータを取得し（例えば、レジスタの値を読み出し）、パラメータ記憶部２３０に保存する。他方、パラメータの復帰を指示された場合には、パラメータ管理部１２０は、指示されたパラメータをパラメータ記憶部２３０から読み出し、指示された回路モジュールに設定する（例えばレジスタに値を書き込む）。ただし、復帰に際してパラメータの調整が必要である場合には、パラメータ管理部１２０は、パラメータ記憶部２３０から読み出したパラメータをパラメータ調整部１３０に渡す。そして、パラメータ管理部１２０は、パラメータ調整部１３０から調整済みのパラメータを受け取り、指示された回路モジュールに設定する。なお、復帰に際してパラメータの調整が必要であるか否かは、例えば予め定められたテーブルを参照することで決定され得る。
【００３４】
例えば、退避前にパラメータを使用していた回路モジュールと、復帰後にパラメータを使用する回路モジュールとが異なり、かつ、両者の使用するビット幅が異なる場合には、パラメータのビット幅を変更することが必要となる。また、パラメータが処理の実行中に時間変化する場合には、退避されたパラメータには処理が中断されていた期間における時間変化が反映されていない。故に、処理が中断されていた期間においてこの処理が実行されていたと仮定した場合にパラメータに生じていたであろう時間変化を模擬する補正を当該パラメータに施すことが必要となる。なお、例えば、カウントアップ、カウントダウンなどの定式化可能な時間変化は、模擬に適している。
【００３５】
パラメータ調整部１３０は、パラメータ管理部１２０からパラメータを受け取り、当該パラメータを調整し、調整済みのパラメータをパラメータ管理部１２０に返す。パラメータ調整部１３０の実行可能な調整は、１種類であってもよいし、複数種類から選択されてもよい。
【００３６】
例えば、パラメータ調整部１３０は、パラメータのビット幅を変更し、調整済みのパラメータを得てもよい。この場合に、パラメータ調整部１３０は、調整済みのパラメータを復帰させる回路モジュールの使用するビット幅に適合するように、パラメータのビット幅を変更すればよい。
【００３７】
一般に、デジタル信号処理は、使用するビット幅が増えるほど、演算精度が向上するが消費電力も増大する。逆も同様である。このような演算精度と消費電力のトレードオフを考慮し、同一の処理を行うが異なるビット幅を使用する複数の回路モジュールを用意することがある。例えば、より小さいビット幅を使用する回路モジュールに処理を行わせることで、演算精度の低下を許容する必要はあるものの、低消費電力動作が可能となる。
【００３８】
図５は、図４とは異なるビット幅を使用するＩＩＲフィルタ４００を例示する。以降の説明では、ＩＩＲフィルタ４００を回路（モジュール）Ａ’と称することもある。図４のＩＩＲフィルタ３００の使用するビット幅は１６ビットであったが、ＩＩＲフィルタ４００の使用するビット幅は１４ビットである。すなわち、ＩＩＲフィルタ３００は高い演算精度を指向する回路モジュールであり、ＩＩＲフィルタ４００は低消費電力を指向する回路モジュールである。説明は省略するが、ＩＩＲフィルタ３００よりも大きなビット幅を使用するＩＩＲフィルタが用意されてもよい。
【００３９】
図５のＩＩＲフィルタ４００は、加算器４０１と、レジスタ４１１と、レジスタ４１２と、係数レジスタ４２１と、係数レジスタ４２２と、乗算器４３１と、乗算器４３２と、ビット幅変換部４４１と、ビット幅変換部４４２とを含む。
【００４０】
ＩＩＲフィルタ４００は、例えば１４ビット幅を使用する。但し、リコンフィギュレーションを行っても、領域の境界にあるインターフェースを変更することはできない。故に、入力および出力のインターフェースは、ＩＩＲフィルタ３００とＩＩＲフィルタ４００との間で共通化が必要である。すなわち、ＩＩＲフィルタ４００の入力信号および出力信号のビット幅はいずれも、ＩＩＲフィルタ３００と同じ１６ビットである。そして、ＩＩＲフィルタ４００のうちビット幅変換部４４１およびビット幅変換部４４２によって挟まれた領域で扱われる信号は全て１４ビットである。
【００４１】
加算器４０１、レジスタ４１１、レジスタ４１２、係数レジスタ４２１、係数レジスタ４２２、乗算器４３１および乗算器４３２は、１４ビット信号を扱うという点を除いて、図４の加算器３０１、レジスタ３１１、レジスタ３１２、係数レジスタ３２１、係数レジスタ３２２、乗算器３３１および乗算器３３２と同様である。
【００４２】
ビット幅変換部４４１は、１６ビット信号（ＩＩＲフィルタ４００の入力信号）を受け取り、そのビット幅を縮小して１４ビット信号を得る。例えば、ビット幅変換部４４１は、信号をＮビットだけ右シフトし、ＭＳＢ（Ｍｏｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ）から順に合計Ｎビットを破棄することで、Ｎビット分の縮小を実現できる。ここで、Ｎは任意の自然数であり、この例では２である。さらに、必要に応じてオフセットが加算されてもよい。ビット幅変換部４４１は、１４ビット信号を加算器４０１へ出力する。
【００４３】
ビット幅変換部４４２は、加算器４０１から１４ビット信号を受け取り、そのビット幅を拡張して１６ビット信号を得る。例えば、ビット幅変換部４４２は、信号をＮビットだけ左シフトすることで、Ｎビット分の拡張を実現できる。さらに、必要に応じてオフセットが加算されてもよい。ビット幅変換部４４２は、１６ビット信号をＩＩＲフィルタ４００の出力信号として外部へ出力する。
【００４４】
或いは、パラメータ調整部１３０は、処理が中断されていた期間において処理が実行されていたと仮定した場合にパラメータに生じていたであろう時間変化を模擬する補正をパラメータに施し、調整済みのパラメータを得てもよい。
【００４５】
以下、図３および図６乃至図８を用いて、４種類の処理Ａ、処理Ｂ、処理Ｃおよび処理Ｄを順番に繰り返し実行する場合に、リソース２２０の領域１〜３に実装される回路モジュールとパラメータ記憶部２３０に格納されるパラメータとがどのように変化するかを説明する。なお、図３では、説明の簡単化のために、処理Ａ、処理Ｂ、処理Ｃおよび処理Ｄの処理時間は全て同一であることとしたが、実際上これらは異なり得る。
【００４６】
処理Ａは、ＩＩＲフィルタ処理に対応し、図４のＩＩＲフィルタ３００に相当する回路モジュールＡまたは図５のＩＩＲフィルタ４００に相当する回路モジュールＡ’によって実行される。処理Ｂ、処理Ｃおよび処理Ｄは、それぞれ回路モジュールＢ、回路モジュールＣおよび回路モジュールＤによって実行される。パラメータの退避／復帰は、処理Ａおよび処理Ｂについては行われるが、処理Ｃおよび処理Ｄについては行われない。処理Ａは、回路モジュールの変更があり得る。例えば、処理Ａを回路モジュールＡによって実行した後に中断を挟んで回路モジュールＡ’によって実行すること、またその逆があり得る。他方、処理Ｂ、処理Ｃおよび処理Ｄは、回路モジュールが変更されることはない。以上の情報を下記表１にまとめる。
【００４７】
【表１】
2018180805.tif 000003
【００４８】
図３の時刻０に、領域１に実装された回路モジュールＡによって処理Ａが実行される。故に、時刻０に先立ち、リコンフィグ管理装置１００は、回路モジュールＡを領域１に実装済みである。また、続いて行われる処理Ｂおよび処理Ｃのために、領域２および領域３にはそれぞれ回路モジュールＢおよび回路モジュールＤが既に実装され待機状態にある。パラメータ記憶部２３０にはいかなるパラメータも退避されていない（すなわち、空の状態である）。
【００４９】
図３の時刻１に、領域２に実装された回路モジュールＢによって処理Ｂが実行される。他方、領域１に実装された回路モジュールＡは、回路モジュールＤに書き換えられることになる。処理Ａの中断時にはパラメータを退避させる必要がある。故に、リコンフィグ管理装置１００は、図６に例示されるように、回路モジュールＡのパラメータをパラメータ記憶部２３０に退避し、それから、回路モジュールＡを回路モジュールＤに書き換える。
【００５０】
図３の時刻２に、領域３に実装された回路モジュールＣによって処理Ｃが実行される。他方、領域２に実装された回路モジュールＢは、回路モジュールＡに書き換えられることになる。処理Ｂの中断時にはパラメータを退避させる必要がある。故に、リコンフィグ管理装置１００は、回路モジュールＢのパラメータをパラメータ記憶部２３０に退避する。また、処理Ａの再開時には、パラメータを復帰させる必要がある。故に、リコンフィグ管理装置１００は、図７に例示されるように、回路モジュールＡを領域２に実装し、当該回路モジュールＡのパラメータをパラメータ記憶部２３０から読み出し、当該回路モジュールＡに設定する。
【００５１】
図３の時刻３に、領域１に実装された回路モジュールＤによって処理Ｄが実行される。他方、領域３に実装された回路モジュールＣは、回路モジュールＢに書き換えられることになる。処理Ｂの再開時にはパラメータを復帰させる必要がある。故に、リコンフィグ管理装置１００は、回路モジュールＢを領域３に実装し、当該回路モジュールＢのパラメータをパラメータ記憶部２３０から読み出し、当該回路モジュールＢに設定する。
【００５２】
図３の時刻４に、領域２に実装された回路モジュールＡによって処理Ａが実行される。他方、リコンフィグ管理装置１００は、領域１に実装された回路モジュールＤを回路モジュールＣに書き換える。
【００５３】
図３の時刻５に、領域３に実装された回路モジュールＢによって処理Ｂが実行される。他方、領域２に実装された回路モジュールＡは、回路モジュールＤに書き換えられることになる。処理Ａの中断時にはパラメータを退避させる必要がある。故に、リコンフィグ管理装置１００は、図６に例示されるように、回路モジュールＡのパラメータをパラメータ記憶部２３０に退避し、それから、回路モジュールＡを回路モジュールＤに書き換える。
【００５４】
図３の時刻６に、領域１に実装された回路モジュールＣによって処理Ｃが実行される。他方、アプリケーション実行部２１０は、処理Ａの実行のために、回路モジュールＡではなく回路モジュールＡ’の実装を要求したとする。すなわち、領域３に実装された回路モジュールＢは、回路モジュールＡではなく回路モジュールＡ’に書き換えられることになる。処理Ｂの中断時にはパラメータを退避させる必要がある。故に、リコンフィグ管理装置１００は、回路モジュールＢのパラメータをパラメータ記憶部２３０に退避する。また、処理Ａの再開時には、パラメータを復帰させる必要がある。故に、リコンフィグ管理装置１００は、図８に例示されるように、回路モジュールＡ’を領域２に実装し、回路モジュールＡのパラメータをパラメータ記憶部２３０から読み出し、当該回路モジュールＡ’向けに調整（図８の例ではビット幅の縮小）してから、当該回路モジュールＡ’に設定する。
【００５５】
図３の時刻７に、領域２に実装された回路モジュールＤによって処理Ｄが実行される。他方、領域１に実装された回路モジュールＣは、回路モジュールＢに書き換えられることになる。処理Ｂの再開時にはパラメータを復帰させる必要がある。故に、リコンフィグ管理装置１００は、回路モジュールＢを領域１に実装し、当該回路モジュールＢのパラメータをパラメータ記憶部２３０から読み出し、当該回路モジュールＢに設定する。
【００５６】
図３の時刻８に、領域３に実装された回路モジュールＡ’によって処理Ａが実行される。他方、リコンフィグ管理装置１００は、領域２に実装された回路モジュールＤを回路モジュールＣに書き換える。
【００５７】
図３の時刻９に、領域１に実装された回路モジュールＢによって処理Ｂが実行される。他方、領域３に実装された回路モジュールＡ’は、回路モジュールＤに書き換えられることになる。処理Ａの中断時にはパラメータを退避させる必要がある。故に、リコンフィグ管理装置１００は、回路モジュールＡ’のパラメータをパラメータ記憶部２３０に退避し、それから、回路モジュールＡ’を回路モジュールＤに書き換える。
【００５８】
以上説明したように、第１の実施形態に係るリコンフィグ管理装置は、リコンフィグ可能な電子デバイスリソースに実装されている第１の回路モジュールを当該リソースから削除する前に、当該第１の回路モジュールに関連付けられる処理において使用される第１のパラメータをパラメータ記憶部に退避させる。そして、このリコンフィグ管理装置は、この処理に関連付けられる第２の回路モジュールが当該処理の再開のためにリソースに実装される場合に第１のパラメータを調整し、第２のパラメータを得て、これを第２の回路モジュールに設定する。
【００５９】
故に、このリコンフィグ管理装置によれば、第１の回路モジュールを削除する直前の内部状態を第２の回路モジュールの実装時に直ちに再現することができるので、中断されていた処理を適切に再開することができる。すなわち、中断されていた処理を再開するための待ち時間を短縮することができる。加えて、第２の回路モジュールが第１の回路モジュールと同一の処理を行うが構成において異なる場合であっても、当該処理を問題なく再開することができる。すなわち、第１の回路モジュールに行わせていた処理を途中から第２の回路モジュールに行わせる場合であっても、待ち時間の短縮が可能である。
【００６０】
上述の実施形態は、本発明の概念の理解を助けるための具体例を示しているに過ぎず、本発明の範囲を限定することを意図されていない。実施形態は、本発明の要旨を逸脱しない範囲で、様々な構成要素の付加、削除または転換をすることができる。
【００６１】
上記各実施形態において説明された種々の機能部は、回路を用いることで実現されてもよい。回路は、特定の機能を実現する専用回路であってもよいし、プロセッサのような汎用回路であってもよい。
【符号の説明】
【００６２】
１００・・・リコンフィグ管理装置
１１０・・・リコンフィグ管理部
１２０・・・パラメータ管理部
１３０・・・パラメータ調整部
２００・・・集積回路
２１０・・・アプリケーション実行部
２２０・・・リソース
２３０・・・パラメータ記憶部
２４０・・・コンフィギュレーションＲＯＭ
２５０・・・アプリケーションメモリ
３００，４００・・・ＩＩＲフィルタ
３０１，４０１・・・加算器
３１１，３１２，４１１，４１２・・・レジスタ
３２１，３２２，４２１，４２２・・・係数レジスタ
３３１，３３２，４３１，４３２・・・乗算器
４４１，４４２・・・ビット幅変換部
【図１】
2018180805.tif 000004
【図２】
2018180805.tif 000005
【図３】
2018180805.tif 000006
【図４】
2018180805.tif 000007
【図５】
2018180805.tif 000008
【図６】
2018180805.tif 000009
【図７】
2018180805.tif 000010
【図８】
2018180805.tif 000011