(57)【要約】【課題】  複数のＦＰＧＡのコンフィグレーションに要する時間を短縮することができる。【解決手段】  一実施形態に係る情報処理装置は、第１のコンフィグレーションデータを転送される第１の再構成可能デバイスと、前記第１のコンフィグレーションデータとは異なる第２のコンフィグレーションデータを転送される第２の再構成可能デバイスと、前記第１のコンフィグレーションデータ及び前記第２のコンフィグレーションデータを格納する第１の記憶装置と、第２の記憶装置と、前記第１のコンフィグレーションデータを、前記第１の記憶装置から前記第２の記憶装置に転送し、前記第２の記憶装置から前記第１の再構成可能デバイスに転送する第１の転送部と、前記第１のコンフィグレーションデータの前記第１の再構成可能デバイスへの転送中に、前記第２のコンフィグレーションデータを前記第２の再構成可能デバイスに転送する第２の転送部と、を備える。【選択図】  図２
2018005762.tif 000002
【特許請求の範囲】
【請求項１】
第１のコンフィグレーションデータを転送される第１の再構成可能デバイスと、
前記第１のコンフィグレーションデータとは異なる第２のコンフィグレーションデータを転送される第２の再構成可能デバイスと、
前記第１のコンフィグレーションデータ及び前記第２のコンフィグレーションデータを格納する第１の記憶装置と、
第２の記憶装置と、
前記第１のコンフィグレーションデータを、前記第１の記憶装置から前記第２の記憶装置に転送し、前記第２の記憶装置から前記第１の再構成可能デバイスに転送する第１の転送部と、
前記第１のコンフィグレーションデータの前記第１の再構成可能デバイスへの転送中に、前記第２のコンフィグレーションデータを前記第２の再構成可能デバイスに転送する第２の転送部と、
を備える情報処理装置。
【請求項２】
前記第２の転送部は、前記第２のコンフィグレーションデータを、前記第１の記憶装置から前記第２の記憶装置へ転送し、前記第２の記憶装置から前記第２の再構成可能デバイスに転送する
請求項１に記載の情報処理装置。
【請求項３】
前記第２の転送部は、前記第２のコンフィグレーションデータを、前記第１の記憶装置から前記第２の再構成可能デバイスに転送する
請求項１に記載の情報処理装置。
【請求項４】
前記第２の転送部は、前記第１のコンフィグレーションデータの前記第２の記憶装置への転送完了後、前記第２のコンフィグレーションデータの転送を開始する
請求項１乃至請求項３のいずれか１項に記載の情報処理装置。
【請求項５】
前記第１の再構成可能デバイス及び前記第２の再構成可能デバイスは、ＦＰＧＡである
請求項１乃至請求項４のいずれか１項に記載の情報処理装置。
【請求項６】
第１のコンフィグレーションデータを転送される第１の再構成可能デバイスと、
前記第１のコンフィグレーションデータとは異なる第２のコンフィグレーションデータを転送される第２の再構成可能デバイスと、
前記第１のコンフィグレーションデータ及び前記第２のコンフィグレーションデータを格納する第１の記憶装置と、
第２の記憶装置と、
を備える情報処理装置が実行するコンフィグレーション方法であって、
前記第１のコンフィグレーションデータを、前記第１の記憶装置から前記第２の記憶装置に転送し、前記第２の記憶装置から前記第１の再構成可能デバイスに転送する工程と、
前記第１のコンフィグレーションデータの前記第１の再構成可能デバイスへの転送中に、前記第２のコンフィグレーションデータを前記第２の再構成可能デバイスに転送する工程と、
を含むコンフィグレーション方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及びコンフィグレーション方法に関する。
【背景技術】
【０００２】
ＦＰＧＡ（Field Programmable Gate Array）のコンフィグレーション（回路情報書き込み）は、専用のＲＯＭ（Read Only Memory）に格納されたコンフィグレーションデータ（回路情報）を転送し、ＦＰＧＡに書き込むことにより行われる。従来、ＲＯＭはＦＰＧＡ毎に設けられていたため、複数のＦＰＧＡを備えるシステムでは、実装するＲＯＭの増加に伴う回路規模の増大やコストの上昇が問題となっていた。
【０００３】
そこで近年、１つのＲＯＭに複数のＦＰＧＡのコンフィグレーションデータを格納し、各コンフィグレーションデータを対応するＦＰＧＡにそれぞれ転送するコンフィグレーション方法が提案されている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記従来のコンフィグレーション方法では、ＦＰＧＡ毎にコンフィグレーションデータが異なる場合、各コンフィグレーションデータが、ＲＯＭから各ＦＰＧＡに順番に転送された。このため、システムが備えるＦＰＧＡが多いほど、コンフィグレーションデータの転送時間が長くなり、コンフィグレーションに時間がかかるという問題があった。
【０００５】
本発明は、上記の課題に鑑みてなされたものであり、複数のＦＰＧＡのコンフィグレーションに要する時間を短縮することを目的とする。
【課題を解決するための手段】
【０００６】
一実施形態に係る情報処理装置は、第１のコンフィグレーションデータを転送される第１の再構成可能デバイスと、前記第１のコンフィグレーションデータとは異なる第２のコンフィグレーションデータを転送される第２の再構成可能デバイスと、前記第１のコンフィグレーションデータ及び前記第２のコンフィグレーションデータを格納する第１の記憶装置と、第２の記憶装置と、前記第１のコンフィグレーションデータを、前記第１の記憶装置から前記第２の記憶装置に転送し、前記第２の記憶装置から前記第１の再構成可能デバイスに転送する第１の転送部と、前記第１のコンフィグレーションデータの前記第１の再構成可能デバイスへの転送中に、前記第２のコンフィグレーションデータを前記第２の再構成可能デバイスに転送する第２の転送部と、を備える。
【発明の効果】
【０００７】
本発明の各実施形態によれば、複数のＦＰＧＡのコンフィグレーションに要する時間を短縮することができる。
【図面の簡単な説明】
【０００８】
【図１】第１実施形態に係る情報処理装置のハードウェア構成の一例を示す図。
【図２】第１実施形態に係るコンフィグレーション部の機能構成の一例を示す図。
【図３】図１の情報処理装置によるコンフィグレーション処理の一例を示すシーケンス図。
【図４】管理テーブルの一例を示す図。
【図５】第１実施形態のコンフィグレーション処理におけるコンフィグレーション部の動作の一例を示すフローチャート。
【図６】従来のコンフィグレーション方法におけるコンフィグレーション時間を説明するタイミングチャート。
【図７】第１実施形態に係るコンフィグレーション方法におけるコンフィグレーション時間を説明するタイミングチャート。
【図８】第２実施形態に係るコンフィグレーション部の機能構成の一例を示す図。
【図９】図８の情報処理装置によるコンフィグレーション処理の一例を示すシーケンス図。
【図１０】第２実施形態のコンフィグレーション処理におけるコンフィグレーション部の動作の一例を示すフローチャート。
【図１１】第２実施形態に係るコンフィグレーション方法におけるコンフィグレーション時間を説明するタイミングチャート。
【発明を実施するための形態】
【０００９】
以下、本発明の各実施形態について、添付の図面を参照しながら説明する。なお、各実施形態に係る明細書及び図面の記載に関して、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重畳した説明を省略する。
【００１０】
＜第１実施形態＞
第１実施形態に係る情報処理装置について、図１〜図７を参照して説明する。
【００１１】
＜情報処理装置の構成＞
まず、本実施形態に係る情報処理装置の構成について説明する。図１は、本実施形態に係る情報処理装置のハードウェア構成の一例を示す図である。図１の情報処理装置は、ＦＰＧＡ１ａ，１ｂと、ＲＯＭ２と、ＲＡＭ（Random Access Memory）３と、コンフィグレーション部４と、ＣＰＵ（Central Processing Unit）５と、バス６と、を備える。
【００１２】
ＦＰＧＡ１ａは、最初にコンフィグレーションを実行される第１の再構成可能デバイスである。再構成可能デバイスとは、コンフィグレーションデータを書き込むことにより回路構成を再構成可能な集積回路のことである。以下では、ＦＰＧＡ１ａに書き込まれるコンフィグレーションデータ（第１のコンフィグレーションデータ）を、データＤ１と称する。
【００１３】
ＦＰＧＡ１ｂは、最後にコンフィグレーションを実行される第２の再構成可能デバイスである。以下では、ＦＰＧＡ１ｂに書き込まれるコンフィグレーションデータ（第２のコンフィグレーションデータ）を、データＤ２と称する。本実施形態において、データＤ２は、データＤ１とは異なるコンフィグレーションデータである。
【００１４】
ＦＰＧＡ１ａ，１ｂは、書き込まれたデータＤ１，Ｄ２に応じたデータ処理を実行する。例えば、ＦＰＧＡ１ａ，１ｂは、上位装置から情報処理装置に入力されたデータを処理し、下位装置に転送する処理を実行してもよい。ＦＰＧＡ１ａ，１ｂが実行する処理は、これに限られず、情報処理装置の用途に応じて任意に設計可能である。
【００１５】
なお、本実施形態に係る情報処理装置は、ＦＰＧＡ１ａ，１ｂの代わりに、再構成可能なＰＬＤ（Programmable Logic Device）などの、他の再構成可能デバイスを備えてもよい。また、本実施形態に係る情報処理装置は、３つ以上のＦＰＧＡ１を備えてもよい。この場合、最後にコンフィグレーションを実行されるＦＰＧＡ１が第１の再構成可能デバイスに相当し、第１の再構成可能デバイスの前にコンフィグレーションを実行されるＦＰＧＡ１が第２の再構成可能デバイスに相当する。
【００１６】
ＲＯＭ２（第１の記憶装置）は、データＤ１，Ｄ２を格納する不揮発性メモリである。ＲＯＭ２として、フラッシュＲＯＭ、ＥＰＲＯＭ（Erasable Programmable ROM）、ＥＥＰＲＯＭ（Electrically EPROM）などの、任意の不揮発性メモリを利用できる。
【００１７】
ＲＡＭ３（第２の記憶装置）は、揮発性メモリである。ＲＡＭ３として、ＤＲＡＭ（Dynamic RAM）、ＳＲＡＭ（Static RAM）、ＭＲＡＭ（Magnetic RAM）などの、任意の揮発性メモリを利用できる。本実施形態において、ＲＡＭ３は、データＤ１，Ｄ２を一時記憶する。
【００１８】
コンフィグレーション部４は、ＦＰＧＡ１ａ，１ｂのコンフィグレーションを実行する。ここでいうコンフィグレーションとは、ＦＰＧＡ１にコンフィグレーションデータを書き込み、コンフィグレーションデータに応じた回路構成をＦＰＧＡ１に実現させることをいう。具体的には、コンフィグレーション部４は、ＲＯＭ２に格納されたデータＤ１，Ｄ２を転送し、それぞれＦＰＧＡ１ａ，１ｂに書き込む。コンフィグレーション部４は、ＦＰＧＡなどの再構成可能デバイスや、ＣＰＵなどの汎用プロセッサにより構成される。コンフィグレーション部４について、詳しくは後述する。
【００１９】
ＣＰＵ５は、コンフィグレーション部４に対してコンフィグレーションの開始を指示する。コンフィグレーション部４は、ＣＰＵ５からコンフィグレーションの開始を指示されると、コンフィグレーションを開始する。
【００２０】
バス６は、ＦＰＧＡ１ａ，１ｂと、ＲＯＭ２と、ＲＡＭ３と、コンフィグレーション部４と、ＣＰＵ５と、を相互に接続する。
【００２１】
図２は、本実施形態に係るコンフィグレーション部４の機能構成の一例を示す図である。図２において、実践矢印はデータの流れを示し、破線矢印はコマンドの流れを示す。図２のコンフィグレーション部４は、転送制御部４１と、ＲＡＭＩＦ４２と、ＲＯＭＩＦ４３と、ＤＭＡ（Dynamic Memory Access）制御部４４と、ＦＰＧＡＩＦ４５と、ＤＭＡ制御部４６と、ＦＰＧＡＩＦ４７と、を備える。これらの各機能構成は、ハードウェアにより構成されてもよいし、ソフトウェアにより構成されてもよい。
【００２２】
転送制御部４１は、ＤＭＡ制御部４４，４６を制御することにより、データＤ１，Ｄ２の転送を制御する。転送制御部４１は、ＤＭＡ制御部４４，４６に、データＤ１，Ｄ２の転送の開始を指示する。また、転送制御部４１は、ＤＭＡ制御部４４，４６に、データＤ１，Ｄ２を転送するための各種の情報を通知する。
【００２３】
ＲＡＭＩＦ４２は、ＲＡＭ３へのアクセスを制御するインタフェースである。ＤＭＡ制御部４４，４６は、ＲＡＭＩＦ４２を介して、ＲＡＭ３へデータＤ１，Ｄ２を書き込み、ＲＡＭ３からデータＤ１，Ｄ２を読み出す。
【００２４】
ＲＯＭＩＦ４３は、ＲＯＭ２へのアクセスを制御するインタフェースである。ＤＭＡ制御部４４，４６は、ＲＯＭＩＦ４３を介して、ＲＯＭ２からデータＤ１，Ｄ２を読み出す。
【００２５】
ＤＭＡ制御部４４は、転送制御部４１から指示に従って、データＤ１を転送する。具体的には、ＤＭＡ制御部４４は、データＤ１を、ＲＯＭ２からＲＡＭ３に転送し、ＲＡＭ３からＦＰＧＡＩＦ４５に転送する。
【００２６】
ＦＰＧＡＩＦ４５は、ＦＰＧＡ１ａへのアクセスを制御するインタフェースであり、送信バッファを備える。ＤＭＡ制御部４４が転送したデータＤ１は、送信バッファに書き込まれる。ＦＰＧＡＩＦ４５は、送信バッファに書き込まれたデータＤ１を、ＦＰＧＡ１ａに転送する。
【００２７】
本実施形態において、ＤＭＡ制御部４４及びＦＰＧＡＩＦ４５は、データＤ１を、ＲＯＭ２からＲＡＭ３に転送し、ＲＡＭ３からＦＰＧＡ１ａに転送する第１の転送部を構成する。
【００２８】
ＤＭＡ制御部４６は、転送制御部４１から指示に従って、データＤ２を転送する。具体的には、ＤＭＡ制御部４６は、データＤ２を、ＲＯＭ２からＲＡＭ３に転送し、ＲＡＭ３からＦＰＧＡＩＦ４７に転送する。
【００２９】
ＦＰＧＡＩＦ４７は、ＦＰＧＡ１ｂへのアクセスを制御するインタフェースであり、送信バッファを備える。ＤＭＡ制御部４６が転送したデータＤ２は、送信バッファに書き込まれる。ＦＰＧＡＩＦ４７は、送信バッファに書き込まれたデータＤ２を、ＦＰＧＡ１ｂに転送する。
【００３０】
本実施形態において、ＤＭＡ制御部４６及びＦＰＧＡＩＦ４７は、データＤ２を、ＲＯＭ２からＲＡＭ３に転送し、ＲＡＭ３からＦＰＧＡ１ｂに転送する第２の転送部を構成する。
【００３１】
このように、本実施形態に係る情報処理装置は、ＦＰＧＡ１毎に転送部を備える。情報処理装置は、Ｎ個のＦＰＧＡ１を備える場合には、Ｎ個の転送部を備えればよい。各転送部は、それぞれＤＭＡ制御部及びＦＰＧＡＩＦにより構成される。この場合、第１の再構成可能デバイスに対応（コンフィグレーションデータを転送）する転送部が第１の転送部に相当し、第２の再構成可能デバイスに対応する転送部が第２の転送部に相当する。
【００３２】
＜情報処理装置の動作＞
次に、情報処理装置の動作について説明する。図３は、図１の情報処理装置によるコンフィグレーション処理の一例を示すシーケンス図である。
【００３３】
まず、ＣＰＵ５が、転送制御部４１にコンフィグレーション開始指示を送信し、コンフィグレーションの開始を指示する（ステップＳ１０１）。この際、ＣＰＵ５は、コンフィグレーションの実行対象となるＦＰＧＡ１に関する情報（以下、「ＦＰＧＡ情報」という）を転送制御部４１に送信する。
【００３４】
転送制御部４１は、ＦＰＧＡ情報を受信すると、受信した情報を管理テーブルに格納する。図４は、管理テーブルの一例を示す図である。図４の管理テーブルは、ＦＰＧＡ情報を、ＦＰＧＡ１毎に格納している。各ＦＰＧＡ１のＦＰＧＡ情報には、ＦＰＧＡ番号と、ＲＯＭ先頭アドレスと、ＲＡＭ先頭アドレスと、データサイズと、ＦＰＧＡＩＦ先頭アドレスと、が含まれる。
【００３５】
ＦＰＧＡ番号は、ＦＰＧＡ１を識別するための識別子である。ＲＯＭ先頭アドレスは、ＲＯＭ２における、コンフィグレーションデータが格納された領域の先頭アドレスである。ＲＡＭ先頭アドレスは、ＲＡＭ３における、コンフィグレーションデータが格納される領域の先頭アドレスである。データサイズは、コンフィグレーションデータのサイズである。ＦＰＧＡＩＦ先頭アドレスは、ＦＰＧＡＩＦの送信バッファの先頭アドレスである。
【００３６】
例えば、図４の例では、ＦＰＧＡ番号１を有するＦＰＧＡ１は、ＲＯＭ先頭アドレスが０ｘ１１１１＿１１１１であり、ＲＡＭ先頭アドレスが０ｘ４４４４＿４４４４である。また、このＦＰＧＡ１は、データサイズが０ｘ７７７７であり、ＦＰＧＡＩＦ先頭アドレスが０ｘＡＡＡＡ＿ＡＡＡＡである。
【００３７】
転送制御部４１は、ＣＰＵ５からＦＰＧＡ情報を受信すると、受信した情報を図４のような管理テーブルに格納し、保持する。転送制御部４１は、この管理テーブルを利用して、以降の処理で実行する。以下では、ＦＰＧＡ１ａ，１ｂは、それぞれ図４のＦＰＧＡ番号１，２を有するＦＰＧＡ１であるものとする。
【００３８】
転送制御部４１は、ＣＰＵ５からコンフィグレーション開始指示を受信すると、ＤＭＡ制御部４４に転送開始指示を送信し、データＤ１の転送の開始を指示する（ステップＳ１０２）。この際、転送制御部４１は、管理テーブルを参照して、データＤ１の転送元、転送先、及びデータサイズ（０ｘ７７７７）を、ＤＭＡ制御部４４に通知する。ステップＳ１０２において、転送元は、ＲＯＭ２における、データＤ１が格納された領域の先頭アドレス（０ｘ１１１１＿１１１１）である。また、転送先は、ＲＡＭ３における、データＤ１を格納する領域の先頭アドレス（０ｘ４４４４＿４４４４）である。
【００３９】
ＤＭＡ制御部４４は、転送開始指示を受信すると、転送制御部４１から通知された情報に基づいて、データＤ１をＲＯＭ２からＲＡＭ３に転送する（ステップＳ１０３）。具体的には、ＤＭＡ制御部４４は、ＲＯＭＩＦ４３を介して、ＲＯＭ２からデータＤ１を読み出し、読み出したデータＤ１を、ＲＡＭＩＦ４２を介して、ＲＡＭ３に書き込む。
【００４０】
ＤＭＡ制御部４４は、データＤ１の転送を完了すると、転送制御部４１に転送完了通知を送信し、データＤ１のＲＯＭ２からＲＡＭ３への転送が完了したことを通知する（ステップＳ１０４）。
【００４１】
転送制御部４１は、転送完了通知を受信すると、ＤＭＡ制御部４４に転送開始指示を再び送信し、データＤ１の転送の開始を指示する（ステップＳ１０５）。この際、転送制御部４１は、管理テーブルを参照して、データＤ１の転送元、転送先、及びデータサイズ（０ｘ７７７７）を、ＤＭＡ制御部４４に通知する。ステップＳ１０５において、転送元は、ＲＡＭ３における、データＤ１が格納された領域の先頭アドレス（０ｘ４４４４＿４４４４）である。また、転送先は、ＦＰＧＡＩＦ４５における、データＤ１を格納する送信バッファの先頭アドレス（０ｘＡＡＡＡ＿ＡＡＡＡ）である。
【００４２】
ＤＭＡ制御部４４は、転送開始指示を受信すると、転送制御部４１から通知された情報に基づいて、データＤ１をＲＡＭ３からＦＰＧＡＩＦ４５に転送する。具体的には、ＤＭＡ制御部４４は、ＲＡＭＩＦ４２を介して、ＲＡＭ３からデータＤ１を読み出し、読み出したデータＤ１を、ＦＰＧＡＩＦ４５の送信バッファに書き込む。そして、ＦＰＧＡＩＦ４５が、送信バッファに書き込まれたデータＤ１をＦＰＧＡ１ａに転送する（ステップＳ１０６）。
【００４３】
ＦＰＧＡ１ａへのデータＤ１の転送が完了し、ＦＰＧＡ１ａのコンフィグレーションが完了すると、ＦＰＧＡ１ａは、ＦＰＧＡＩＦ４５を介して、転送制御部４１にコンフィグレーション完了通知を送信する。これにより、ＦＰＧＡ１ａは、コンフィグレーションが完了したことを転送制御部４１に通知する（ステップＳ１０７）。
【００４４】
また、転送制御部４１は、ステップＳ１０４の転送完了通知を受信すると、ＤＭＡ制御部４６に転送開始指示を送信し、データＤ２の転送の開始を指示する（ステップＳ１０８）。この際、転送制御部４１は、管理テーブルを参照して、データＤ２の転送元、転送先、及びデータサイズ（０ｘ８８８８）を、ＤＭＡ制御部４６に通知する。ステップＳ１０８において、転送元は、ＲＯＭ２における、データＤ２が格納された領域の先頭アドレス（０ｘ２２２２＿２２２２）である。また、転送先は、ＲＡＭ３における、データＤ２を格納する領域の先頭アドレス（０ｘ５５５５＿５５５５）である。
【００４５】
ＤＭＡ制御部４６は、転送開始指示を受信すると、転送制御部４１から通知された情報に基づいて、データＤ２をＲＯＭ２からＲＡＭ３に転送する（ステップＳ１０９）。具体的には、ＤＭＡ制御部４６は、ＲＯＭＩＦ４３を介して、ＲＯＭ２からデータＤ２を読み出し、読み出したデータＤ２を、ＲＡＭＩＦ４２を介して、ＲＡＭ３に書き込む。
【００４６】
ＤＭＡ制御部４６は、データＤ２の転送を完了すると、転送制御部４１に転送完了通知を送信し、データＤ２のＲＯＭ２からＲＡＭ３への転送が完了したことを通知する（ステップＳ１１０）。
【００４７】
転送制御部４１は、転送完了通知を受信すると、ＤＭＡ制御部４６に転送開始指示を再び送信し、データＤ２の転送の開始を指示する（ステップＳ１１１）。この際、転送制御部４１は、管理テーブルを参照して、データＤ２の転送元、転送先、及びデータサイズ（０ｘ８８８８）を、ＤＭＡ制御部４６に通知する。ステップＳ１１１において、転送元は、ＲＡＭ３における、データＤ２が格納された領域の先頭アドレス（０ｘ５５５５＿５５５５）である。また、転送先は、ＦＰＧＡＩＦ４７における、データＤ２を格納する送信バッファの先頭アドレス（０ｘＢＢＢＢ＿ＢＢＢＢ）である。
【００４８】
ＤＭＡ制御部４６は、転送開始指示を受信すると、転送制御部４１から通知された情報に基づいて、データＤ２をＲＡＭ３からＦＰＧＡＩＦ４７に転送する。具体的には、ＤＭＡ制御部４６は、ＲＡＭＩＦ４２を介して、ＲＡＭ３からデータＤ２を読み出し、読み出したデータＤ２を、ＦＰＧＡＩＦ４７の送信バッファに書き込む。そして、ＦＰＧＡＩＦ４７が、送信バッファに書き込まれたデータＤ２をＦＰＧＡ１ｂに転送する（ステップＳ１１２）。
【００４９】
ＦＰＧＡ１ｂへのデータＤ２の転送が完了し、ＦＰＧＡ１ｂのコンフィグレーションが完了すると、ＦＰＧＡ１ｂは、ＦＰＧＡＩＦ４７を介して、転送制御部４１にコンフィグレーション完了通知を送信する。これにより、ＦＰＧＡ１ｂは、コンフィグレーションが完了したことを転送制御部４１に通知する（ステップＳ１１３）。
【００５０】
転送制御部４１は、ＦＰＧＡ１ａ，１ｂからコンフィグレーション完了通知を受信すると、ＣＰＵ５にコンフィグレーション完了通知を送信し、ＦＰＧＡ１ａ，１ｂのコンフィグレーションが完了したことを通知する（ステップＳ１１４）。
【００５１】
図５は、本実施形態のコンフィグレーション処理におけるコンフィグレーション部４の動作の一例を示すフローチャートである。以下では、情報処理装置がＮ個のＦＰＧＡ１と、Ｎ個の転送部と、をそれぞれ備えるものとする。
【００５２】
転送制御部４１は、ＣＰＵ５からコンフィグレーション開始指示を受信するまで待機する（ステップＳ２０１のＮＯ）。転送制御部４１は、ＣＰＵ５からコンフィグレーション開始指示を受信すると（ステップＳ２０１のＹＥＳ）、ＣＰＵ５から受信したｎ個（ｎ≦Ｎ）のＦＰＧＡ１のＦＰＧＡ情報を格納テーブルに格納する（ステップＳ２０２）。ｎ＝Ｎの場合、情報処理装置が備える全てのＦＰＧＡ１がコンフィグレーションの対象となる。ｎ＜Ｎの場合、情報処理装置が備えるＦＰＧＡ１の一部がコンフィグレーションの対象となる。
【００５３】
次に、転送制御部４１は、格納テーブルにＦＰＧＡ情報を格納されたｎ個のＦＰＧＡ１の中から、コンフィグレーションを実行するＦＰＧＡ１（以下、「対象ＦＰＧＡ」という）を選択する（ステップＳ２０３）。
【００５４】
転送制御部４１は、対象ＦＰＧＡを選択すると、その対象ＦＰＧＡに対応するＤＭＡ制御部に転送開始指示を送信する（ステップＳ２０４）。
【００５５】
ＤＭＡ制御部は、転送開始指示を受信すると、対象ＦＰＧＡのコンフィグレーションデータの、ＲＯＭ２からＲＡＭ３への転送を開始する（ステップＳ２０５）。ＤＭＡ制御部は、転送を完了するまで（ステップＳ２０６のＮＯ）、コンフィグレーションデータの転送を継続する。
【００５６】
ＤＭＡ制御部は、コンフィグレーションデータの転送を完了すると（ステップＳ２０６のＹＥＳ）、転送制御部４１に転送完了通知を送信する（ステップＳ２０７）。
【００５７】
転送制御部４１は、転送完了通知を受信すると、対象ＦＰＧＡに対応するＤＭＡ制御部に転送開始指示を再び送信する（ステップＳ２０８）。
【００５８】
ＤＭＡ制御部は、転送開始指示を受信すると、対象ＦＰＧＡのコンフィグレーションデータの、ＲＡＭ３から対象ＦＰＧＡへの転送を開始する（ステップＳ２０９）。上述の通り、コンフィグレーションデータの転送が完了すると、対象ＦＰＧＡから転送制御部４１に、コンフィグレーション完了通知が送信される。
【００５９】
転送制御部４１は、ステップＳ２０８において転送開始指示を送信した後、格納テーブルにＦＰＧＡ情報を格納されたｎ個のＦＰＧＡ１の中に、対象ＦＰＧＡとして未選択のＦＰＧＡ１があるか判定する（ステップＳ２１０）。未選択のＦＰＧＡ１がある場合（ステップＳ２１０のＹＥＳ）、転送制御部４１は、未選択のＦＰＧＡ１の中から、次の対象ＦＰＧＡを選択する（ステップＳ２０３）。以降、未選択のＦＰＧＡ１がなくなるまで、ステップＳ２０３〜Ｓ２１０の処理が繰り返される。
【００６０】
一方、未選択のＦＰＧＡ１がない場合（ステップＳ２１０のＮＯ）、転送制御部４１は、全てのＦＰＧＡ１からコンフィグレーション完了通知を受信するまで待機する（ステップＳ２１１のＮＯ）。そして、転送制御部４１は、全てのＦＰＧＡ１からコンフィグレーション完了通知を受信すると（ステップＳ２１１のＹＥＳ）、ＣＰＵ５にコンフィグレーション完了通知を送信する（ステップＳ１１２）。以上でｎ個のＦＰＧＡ１のコンフィグレーションが完了する。
【００６１】
ここで、本実施形態におけるコンフィグレーションに要する時間（以下、「コンフィグレーション時間」という）について説明する。図６は、従来のコンフィグレーション方法におけるコンフィグレーション時間を説明するタイミングチャートである。また、図７は、本実施形態に係る情報処理装置のコンフィグレーション方法におけるコンフィグレーション時間を説明するタイミングチャートである。
【００６２】
図６に示すように、従来のコンフィグレーション方法では、各コンフィグレーションデータは、ＲＯＭからＦＰＧＡ１に直接転送される。この場合、各ＦＰＧＡ１のコンフィグレーション時間ｔは、コンフィグレーションデータを、ＲＯＭから読み出すために要する読み出し時間ｔ１と、ＦＰＧＡ１に書き込むために要する書き込み時間ｔ２と、の合計となる（ｔ＝ｔ１＋ｔ２）。
【００６３】
また、従来のコンフィグレーション方法では、各コンフィグレーションデータは、１つずつ順番に転送される。このため、ｎ個のＦＰＧＡ１のコンフィグレーション時間Ｔは、ｎ個のＦＰＧＡ１のコンフィグレーション時間ｔの合計となる（Ｔ＝ｎ×ｔ＝ｎ×（ｔ１＋ｔ２））。
【００６４】
これに対して、図７に示すように、本実施形態に係るコンフィグレーション方法では、各コンフィグレーションデータは、ＲＯＭ２からＲＡＭ３に転送された後、ＲＡＭ３からＦＰＧＡ１に転送される。この場合、各ＦＰＧＡ１のコンフィグレーション時間ｔは、コンフィグレーションデータを、読み出し時間ｔ１と、書き込み時間ｔ２と、ＲＡＭ３に書き込むために要する書き込み時間ｔ３と、ＲＡＭ３から読み出すために要する読み出し時間ｔ４と、の合計となる。すなわち、本実施形態におけるコンフィグレーション時間ｔ（＝ｔ１＋ｔ２＋ｔ３＋ｔ４）は、従来方法におけるコンフィグレーション時間ｔよりも長くなる。
【００６５】
一方、本実施形態に係るコンフィグレーション方法では、あるコンフィグレーションデータの転送中に、他のコンフィグレーションデータが転送される。すなわち、複数のコンフィグレーションデータが同時に転送される。具体的には、先に転送を開始されたコンフィグレーションデータのＲＯＭ２からＲＡＭ３への転送完了後、次のコンフィグレーションデータのＲＯＭ２からＲＡＭ３への転送が開始される。このため、ｎ個のＦＰＧＡ１のコンフィグレーション時間Ｔは、１個のＦＰＧＡ１のコンフィグレーション時間ｔと、（ｎ−１）個のＦＰＧＡ１のコンフィグレーションデータをＲＯＭ２からＲＡＭ３に転送する時間（ｔ１＋ｔ３）と、の合計となる。すなわち、コンフィグレーション時間Ｔは、Ｔ＝ｔ＋（ｎ−１）×（ｔ１＋ｔ３）＝ｎ×（ｔ１＋ｔ３）＋ｔ２＋ｔ４となる。
【００６６】
一般に、コンフィグレーション時間ｔにおいて、コンフィグレーションデータをＦＰＧＡ１に書き込むために要する書き込み時間ｔ２が支配的となる。したがって、情報処理装置が複数のＦＰＧＡ１を備える場合、本実施形態に係るコンフィグレーション方法によれば、従来のコンフィグレーション方法に比べて、コンフィグレーション時間Ｔを短縮することができる。
【００６７】
なお、本実施形態において、ＲＡＭ３として、ＤＤＲ−ＳＤＲＡＭのような高速メモリが利用されるのが好ましい。高速メモリを利用することにより、書き込み時間ｔ３と、読出し時間ｔ４と、書き込み時間ｔ２と、を短縮することができる。結果として、コンフィグレーション時間Ｔを更に短縮することができる。
【００６８】
＜第２実施形態＞
第２実施形態に係る情報処理装置について、図８〜図１１を参照して説明する。
【００６９】
＜情報処理装置の構成＞
まず、本実施形態に係る情報処理装置の構成について説明する。本実施形態に係る情報処理装置のハードウェア構成は、第１実施形態（図１）と同様である。図８は、本実施形態に係るコンフィグレーション部４の機能構成の一例を示す図である。図８のコンフィグレーション部４は、ＤＭＡ制御部４６を除き、第１実施形態（図２）と同様である。
【００７０】
本実施形態に係るＤＭＡ制御部４６は、転送制御部４１から指示に従って、データＤ２を転送する。具体的には、ＤＭＡ制御部４６は、データＤ２を、ＲＯＭ２からＦＰＧＡＩＦ４７に直接転送する。すなわち、ＤＭＡ制御部４６は、第１実施形態とは異なり、データＤ２をＲＡＭ３に転送しない。本実施形態において、ＤＭＡ制御部４６及びＦＰＧＡＩＦ４７は、データＤ２を、ＲＯＭ２からＦＰＧＡ１ｂに転送する第２の転送部を構成する。
【００７１】
＜情報処理装置の動作＞
次に、情報処理装置の動作について説明する。図９は、図８の情報処理装置によるコンフィグレーション処理の一例を示すシーケンス図である。図８のステップＳ１０１〜Ｓ１０７，Ｓ１１３，Ｓ１１４は、第１実施形態（図３）と同様である。以下、ステップＳ１１５，Ｓ１１６について説明する。
【００７２】
本実施形態において、転送制御部４１は、ステップＳ１０４の転送完了通知を受信すると、ＤＭＡ制御部４６に転送開始指示を送信し、データＤ２の転送の開始を指示する（ステップＳ１１５）。この際、転送制御部４１は、管理テーブルを参照して、データＤ２の転送元、転送先、及びデータサイズ（０ｘ８８８８）を、ＤＭＡ制御部４６に通知する。ステップＳ１１５において、転送元は、ＲＯＭ２における、データＤ２が格納された領域の先頭アドレス（０ｘ２２２２＿２２２２）である。また、転送先は、ＦＰＧＡＩＦ４７における、データＤ２を格納する送信バッファの先頭アドレス（０ｘＢＢＢＢ＿ＢＢＢＢ）である。
【００７３】
ＤＭＡ制御部４６は、転送開始指示を受信すると、転送制御部４１から通知された情報に基づいて、データＤ２をＲＯＭ２からＦＰＧＡＩＦ４７に転送する（ステップＳ１１６）。具体的には、ＤＭＡ制御部４６は、ＲＯＭＩＦ４３を介して、ＲＯＭ２からデータＤ２を読み出し、読み出したデータＤ２を、ＦＰＧＡＩＦ４７の送信バッファに書き込む。
【００７４】
その後、ＦＰＧＡ１ｂへのデータＤ２の転送が完了し、ＦＰＧＡ１ｂのコンフィグレーションが完了すると、ＦＰＧＡ１ｂは、ＦＰＧＡＩＦ４７を介して、転送制御部４１にコンフィグレーション完了通知を送信する。これにより、ＦＰＧＡ１ｂは、コンフィグレーションが完了したことを転送制御部４１に通知する（ステップＳ１１３）。
【００７５】
転送制御部４１は、ＦＰＧＡ１ａ，１ｂからコンフィグレーション完了通知を受信すると、ＣＰＵ５にコンフィグレーション完了通知を送信し、ＦＰＧＡ１ａ，１ｂのコンフィグレーションが完了したことを通知する（ステップＳ１１４）。
【００７６】
図１０は、本実施形態のコンフィグレーション処理におけるコンフィグレーション部４の動作の一例を示すフローチャートである。以下では、情報処理装置がＮ個のＦＰＧＡ１と、Ｎ個の転送部と、をそれぞれ備えるものとする。図１０のステップＳ２０１〜Ｓ２０９，Ｓ２１１，Ｓ２１２は、第１実施形態（図５）と同様である。以下、ステップＳ２１３〜Ｓ２１６について説明する。
【００７７】
本実施形態において、転送制御部４１は、ステップＳ２０８において転送開始指示を送信した後、格納テーブルにＦＰＧＡ情報を格納されたｎ個のＦＰＧＡ１の中に含まれる未選択のＦＰＧＡ１が１つであるか判定する（ステップＳ２１３）。未選択のＦＰＧＡ１が２つ以上である場合（ステップＳ２１３のＮＯ）、転送制御部４１は、未選択のＦＰＧＡ１の中から、次の対象ＦＰＧＡを選択する（ステップＳ２０３）。以降、未選択のＦＰＧＡ１が１つになるまで、ステップＳ２０３〜Ｓ２０９，Ｓ２１３の処理が繰り返される。
【００７８】
一方、未選択のＦＰＧＡ１が１つである場合（ステップＳ２１３のＹＥＳ）、転送制御部４１は、未選択のＦＰＧＡ１を対象ＦＰＧＡとして選択する（ステップＳ２１４）。
【００７９】
転送制御部４１は、対象ＦＰＧＡを選択すると、その対象ＦＰＧＡに対応するＤＭＡ制御部に転送開始指示を送信する（ステップＳ２１５）。本実施形態において、このＤＭＡ制御部は、第２の転送部を構成するＤＭＡ制御部である。
【００８０】
ＤＭＡ制御部は、転送開始指示を受信すると、対象ＦＰＧＡのコンフィグレーションデータの、ＲＯＭ２から対象ＦＰＧＡへの転送を開始する（ステップＳ２１６）。
【００８１】
その後、転送制御部４１は、全てのＦＰＧＡ１からコンフィグレーション完了通知を受信するまで待機する（ステップＳ２１１のＮＯ）。そして、転送制御部４１は、全てのＦＰＧＡ１からコンフィグレーション完了通知を受信すると（ステップＳ２１１のＹＥＳ）、ＣＰＵ５にコンフィグレーション完了通知を送信する（ステップＳ１１２）。以上でｎ個のＦＰＧＡ１のコンフィグレーションが完了する。
【００８２】
ここで、図１１は、本実施形態に係る情報処理装置のコンフィグレーション方法におけるコンフィグレーション時間を説明するタイミングチャートである。
【００８３】
図１１に示すように、本実施形態に係るコンフィグレーション方法では、最後にコンフィグレーションを実行される最後のＦＰＧＡ１のコンフィグレーションデータは、ＲＯＭ２からＦＰＧＡ１に直接転送される。このＦＰＧＡ１のコンフィグレーション時間ｔｌは、コンフィグレーションデータを、ＲＯＭ２から読み出すために要する読み出し時間ｔ１と、ＦＰＧＡ１に書き込むために要する書き込み時間ｔ２と、の合計となる（ｔｌ＝ｔ１＋ｔ２）。すなわち、本実施形態における最後のＦＰＧＡ１のコンフィグレーション時間ｔｌは、従来方法におけるコンフィグレーション時間ｔと同様となる。
【００８４】
このため、本実施形態では、ｎ個のＦＰＧＡ１のコンフィグレーション時間Ｔは、最後のＦＰＧＡ１のコンフィグレーション時間ｔｌと、（ｎ−１）個のＦＰＧＡ１のコンフィグレーションデータをＲＯＭ２からＲＡＭ３に転送する時間（ｔ１＋ｔ３）と、の合計となる。すなわち、コンフィグレーション時間Ｔは、Ｔ＝ｔｌ＋（ｎ−１）×（ｔ１＋ｔ３）＝ｎ×ｔ１＋ｔ２＋（ｎ−１）×ｔ３となる。結果として、本実施形態によれば、第１実施形態に比べて、コンフィグレーション時間Ｔを更に短縮することができる。
【００８５】
なお、上記実施形態に挙げた構成等に、その他の要素との組み合わせなど、ここで示した構成に本発明が限定されるものではない。これらの点に関しては、本発明の趣旨を逸脱しない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。
【符号の説明】
【００８６】
１：ＦＰＧＡ
２：ＲＯＭ
３：ＲＡＭ
４：コンフィグレーション部
５：ＣＰＵ
６：バス
４１：転送制御部
４２：ＲＡＭＩＦ
４３：ＲＯＭＩＦ
４４，４６：ＤＭＡ制御部
４５，４７：ＦＰＧＡＩＦ
【先行技術文献】
【特許文献】
【００８７】
【特許文献１】特開２０１４−１７５８９１号公報
【図１】
2018005762.tif 000003
【図２】
2018005762.tif 000004
【図３】
2018005762.tif 000005
【図４】
2018005762.tif 000006
【図５】
2018005762.tif 000007
【図６】
2018005762.tif 000008
【図７】
2018005762.tif 000009
【図８】
2018005762.tif 000010
【図９】
2018005762.tif 000011
【図１０】
2018005762.tif 000012
【図１１】
2018005762.tif 000013