JP2018005762A - 情報処理装置及びコンフィグレーション方法 - Google Patents
情報処理装置及びコンフィグレーション方法 Download PDFInfo
- Publication number
- JP2018005762A JP2018005762A JP2016134966A JP2016134966A JP2018005762A JP 2018005762 A JP2018005762 A JP 2018005762A JP 2016134966 A JP2016134966 A JP 2016134966A JP 2016134966 A JP2016134966 A JP 2016134966A JP 2018005762 A JP2018005762 A JP 2018005762A
- Authority
- JP
- Japan
- Prior art keywords
- configuration
- fpga
- transfer
- data
- control unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【課題】 複数のFPGAのコンフィグレーションに要する時間を短縮することができる。
【解決手段】 一実施形態に係る情報処理装置は、第1のコンフィグレーションデータを転送される第1の再構成可能デバイスと、前記第1のコンフィグレーションデータとは異なる第2のコンフィグレーションデータを転送される第2の再構成可能デバイスと、前記第1のコンフィグレーションデータ及び前記第2のコンフィグレーションデータを格納する第1の記憶装置と、第2の記憶装置と、前記第1のコンフィグレーションデータを、前記第1の記憶装置から前記第2の記憶装置に転送し、前記第2の記憶装置から前記第1の再構成可能デバイスに転送する第1の転送部と、前記第1のコンフィグレーションデータの前記第1の再構成可能デバイスへの転送中に、前記第2のコンフィグレーションデータを前記第2の再構成可能デバイスに転送する第2の転送部と、を備える。
【選択図】 図2
【解決手段】 一実施形態に係る情報処理装置は、第1のコンフィグレーションデータを転送される第1の再構成可能デバイスと、前記第1のコンフィグレーションデータとは異なる第2のコンフィグレーションデータを転送される第2の再構成可能デバイスと、前記第1のコンフィグレーションデータ及び前記第2のコンフィグレーションデータを格納する第1の記憶装置と、第2の記憶装置と、前記第1のコンフィグレーションデータを、前記第1の記憶装置から前記第2の記憶装置に転送し、前記第2の記憶装置から前記第1の再構成可能デバイスに転送する第1の転送部と、前記第1のコンフィグレーションデータの前記第1の再構成可能デバイスへの転送中に、前記第2のコンフィグレーションデータを前記第2の再構成可能デバイスに転送する第2の転送部と、を備える。
【選択図】 図2
Description
本発明は、情報処理装置及びコンフィグレーション方法に関する。
FPGA(Field Programmable Gate Array)のコンフィグレーション(回路情報書き込み)は、専用のROM(Read Only Memory)に格納されたコンフィグレーションデータ(回路情報)を転送し、FPGAに書き込むことにより行われる。従来、ROMはFPGA毎に設けられていたため、複数のFPGAを備えるシステムでは、実装するROMの増加に伴う回路規模の増大やコストの上昇が問題となっていた。
そこで近年、1つのROMに複数のFPGAのコンフィグレーションデータを格納し、各コンフィグレーションデータを対応するFPGAにそれぞれ転送するコンフィグレーション方法が提案されている。
上記従来のコンフィグレーション方法では、FPGA毎にコンフィグレーションデータが異なる場合、各コンフィグレーションデータが、ROMから各FPGAに順番に転送された。このため、システムが備えるFPGAが多いほど、コンフィグレーションデータの転送時間が長くなり、コンフィグレーションに時間がかかるという問題があった。
本発明は、上記の課題に鑑みてなされたものであり、複数のFPGAのコンフィグレーションに要する時間を短縮することを目的とする。
一実施形態に係る情報処理装置は、第1のコンフィグレーションデータを転送される第1の再構成可能デバイスと、前記第1のコンフィグレーションデータとは異なる第2のコンフィグレーションデータを転送される第2の再構成可能デバイスと、前記第1のコンフィグレーションデータ及び前記第2のコンフィグレーションデータを格納する第1の記憶装置と、第2の記憶装置と、前記第1のコンフィグレーションデータを、前記第1の記憶装置から前記第2の記憶装置に転送し、前記第2の記憶装置から前記第1の再構成可能デバイスに転送する第1の転送部と、前記第1のコンフィグレーションデータの前記第1の再構成可能デバイスへの転送中に、前記第2のコンフィグレーションデータを前記第2の再構成可能デバイスに転送する第2の転送部と、を備える。
本発明の各実施形態によれば、複数のFPGAのコンフィグレーションに要する時間を短縮することができる。
以下、本発明の各実施形態について、添付の図面を参照しながら説明する。なお、各実施形態に係る明細書及び図面の記載に関して、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重畳した説明を省略する。
<第1実施形態>
第1実施形態に係る情報処理装置について、図1〜図7を参照して説明する。
第1実施形態に係る情報処理装置について、図1〜図7を参照して説明する。
<情報処理装置の構成>
まず、本実施形態に係る情報処理装置の構成について説明する。図1は、本実施形態に係る情報処理装置のハードウェア構成の一例を示す図である。図1の情報処理装置は、FPGA1a,1bと、ROM2と、RAM(Random Access Memory)3と、コンフィグレーション部4と、CPU(Central Processing Unit)5と、バス6と、を備える。
まず、本実施形態に係る情報処理装置の構成について説明する。図1は、本実施形態に係る情報処理装置のハードウェア構成の一例を示す図である。図1の情報処理装置は、FPGA1a,1bと、ROM2と、RAM(Random Access Memory)3と、コンフィグレーション部4と、CPU(Central Processing Unit)5と、バス6と、を備える。
FPGA1aは、最初にコンフィグレーションを実行される第1の再構成可能デバイスである。再構成可能デバイスとは、コンフィグレーションデータを書き込むことにより回路構成を再構成可能な集積回路のことである。以下では、FPGA1aに書き込まれるコンフィグレーションデータ(第1のコンフィグレーションデータ)を、データD1と称する。
FPGA1bは、最後にコンフィグレーションを実行される第2の再構成可能デバイスである。以下では、FPGA1bに書き込まれるコンフィグレーションデータ(第2のコンフィグレーションデータ)を、データD2と称する。本実施形態において、データD2は、データD1とは異なるコンフィグレーションデータである。
FPGA1a,1bは、書き込まれたデータD1,D2に応じたデータ処理を実行する。例えば、FPGA1a,1bは、上位装置から情報処理装置に入力されたデータを処理し、下位装置に転送する処理を実行してもよい。FPGA1a,1bが実行する処理は、これに限られず、情報処理装置の用途に応じて任意に設計可能である。
なお、本実施形態に係る情報処理装置は、FPGA1a,1bの代わりに、再構成可能なPLD(Programmable Logic Device)などの、他の再構成可能デバイスを備えてもよい。また、本実施形態に係る情報処理装置は、3つ以上のFPGA1を備えてもよい。この場合、最後にコンフィグレーションを実行されるFPGA1が第1の再構成可能デバイスに相当し、第1の再構成可能デバイスの前にコンフィグレーションを実行されるFPGA1が第2の再構成可能デバイスに相当する。
ROM2(第1の記憶装置)は、データD1,D2を格納する不揮発性メモリである。ROM2として、フラッシュROM、EPROM(Erasable Programmable ROM)、EEPROM(Electrically EPROM)などの、任意の不揮発性メモリを利用できる。
RAM3(第2の記憶装置)は、揮発性メモリである。RAM3として、DRAM(Dynamic RAM)、SRAM(Static RAM)、MRAM(Magnetic RAM)などの、任意の揮発性メモリを利用できる。本実施形態において、RAM3は、データD1,D2を一時記憶する。
コンフィグレーション部4は、FPGA1a,1bのコンフィグレーションを実行する。ここでいうコンフィグレーションとは、FPGA1にコンフィグレーションデータを書き込み、コンフィグレーションデータに応じた回路構成をFPGA1に実現させることをいう。具体的には、コンフィグレーション部4は、ROM2に格納されたデータD1,D2を転送し、それぞれFPGA1a,1bに書き込む。コンフィグレーション部4は、FPGAなどの再構成可能デバイスや、CPUなどの汎用プロセッサにより構成される。コンフィグレーション部4について、詳しくは後述する。
CPU5は、コンフィグレーション部4に対してコンフィグレーションの開始を指示する。コンフィグレーション部4は、CPU5からコンフィグレーションの開始を指示されると、コンフィグレーションを開始する。
バス6は、FPGA1a,1bと、ROM2と、RAM3と、コンフィグレーション部4と、CPU5と、を相互に接続する。
図2は、本実施形態に係るコンフィグレーション部4の機能構成の一例を示す図である。図2において、実践矢印はデータの流れを示し、破線矢印はコマンドの流れを示す。図2のコンフィグレーション部4は、転送制御部41と、RAMIF42と、ROMIF43と、DMA(Dynamic Memory Access)制御部44と、FPGAIF45と、DMA制御部46と、FPGAIF47と、を備える。これらの各機能構成は、ハードウェアにより構成されてもよいし、ソフトウェアにより構成されてもよい。
転送制御部41は、DMA制御部44,46を制御することにより、データD1,D2の転送を制御する。転送制御部41は、DMA制御部44,46に、データD1,D2の転送の開始を指示する。また、転送制御部41は、DMA制御部44,46に、データD1,D2を転送するための各種の情報を通知する。
RAMIF42は、RAM3へのアクセスを制御するインタフェースである。DMA制御部44,46は、RAMIF42を介して、RAM3へデータD1,D2を書き込み、RAM3からデータD1,D2を読み出す。
ROMIF43は、ROM2へのアクセスを制御するインタフェースである。DMA制御部44,46は、ROMIF43を介して、ROM2からデータD1,D2を読み出す。
DMA制御部44は、転送制御部41から指示に従って、データD1を転送する。具体的には、DMA制御部44は、データD1を、ROM2からRAM3に転送し、RAM3からFPGAIF45に転送する。
FPGAIF45は、FPGA1aへのアクセスを制御するインタフェースであり、送信バッファを備える。DMA制御部44が転送したデータD1は、送信バッファに書き込まれる。FPGAIF45は、送信バッファに書き込まれたデータD1を、FPGA1aに転送する。
本実施形態において、DMA制御部44及びFPGAIF45は、データD1を、ROM2からRAM3に転送し、RAM3からFPGA1aに転送する第1の転送部を構成する。
DMA制御部46は、転送制御部41から指示に従って、データD2を転送する。具体的には、DMA制御部46は、データD2を、ROM2からRAM3に転送し、RAM3からFPGAIF47に転送する。
FPGAIF47は、FPGA1bへのアクセスを制御するインタフェースであり、送信バッファを備える。DMA制御部46が転送したデータD2は、送信バッファに書き込まれる。FPGAIF47は、送信バッファに書き込まれたデータD2を、FPGA1bに転送する。
本実施形態において、DMA制御部46及びFPGAIF47は、データD2を、ROM2からRAM3に転送し、RAM3からFPGA1bに転送する第2の転送部を構成する。
このように、本実施形態に係る情報処理装置は、FPGA1毎に転送部を備える。情報処理装置は、N個のFPGA1を備える場合には、N個の転送部を備えればよい。各転送部は、それぞれDMA制御部及びFPGAIFにより構成される。この場合、第1の再構成可能デバイスに対応(コンフィグレーションデータを転送)する転送部が第1の転送部に相当し、第2の再構成可能デバイスに対応する転送部が第2の転送部に相当する。
<情報処理装置の動作>
次に、情報処理装置の動作について説明する。図3は、図1の情報処理装置によるコンフィグレーション処理の一例を示すシーケンス図である。
次に、情報処理装置の動作について説明する。図3は、図1の情報処理装置によるコンフィグレーション処理の一例を示すシーケンス図である。
まず、CPU5が、転送制御部41にコンフィグレーション開始指示を送信し、コンフィグレーションの開始を指示する(ステップS101)。この際、CPU5は、コンフィグレーションの実行対象となるFPGA1に関する情報(以下、「FPGA情報」という)を転送制御部41に送信する。
転送制御部41は、FPGA情報を受信すると、受信した情報を管理テーブルに格納する。図4は、管理テーブルの一例を示す図である。図4の管理テーブルは、FPGA情報を、FPGA1毎に格納している。各FPGA1のFPGA情報には、FPGA番号と、ROM先頭アドレスと、RAM先頭アドレスと、データサイズと、FPGAIF先頭アドレスと、が含まれる。
FPGA番号は、FPGA1を識別するための識別子である。ROM先頭アドレスは、ROM2における、コンフィグレーションデータが格納された領域の先頭アドレスである。RAM先頭アドレスは、RAM3における、コンフィグレーションデータが格納される領域の先頭アドレスである。データサイズは、コンフィグレーションデータのサイズである。FPGAIF先頭アドレスは、FPGAIFの送信バッファの先頭アドレスである。
例えば、図4の例では、FPGA番号1を有するFPGA1は、ROM先頭アドレスが0x1111_1111であり、RAM先頭アドレスが0x4444_4444である。また、このFPGA1は、データサイズが0x7777であり、FPGAIF先頭アドレスが0xAAAA_AAAAである。
転送制御部41は、CPU5からFPGA情報を受信すると、受信した情報を図4のような管理テーブルに格納し、保持する。転送制御部41は、この管理テーブルを利用して、以降の処理で実行する。以下では、FPGA1a,1bは、それぞれ図4のFPGA番号1,2を有するFPGA1であるものとする。
転送制御部41は、CPU5からコンフィグレーション開始指示を受信すると、DMA制御部44に転送開始指示を送信し、データD1の転送の開始を指示する(ステップS102)。この際、転送制御部41は、管理テーブルを参照して、データD1の転送元、転送先、及びデータサイズ(0x7777)を、DMA制御部44に通知する。ステップS102において、転送元は、ROM2における、データD1が格納された領域の先頭アドレス(0x1111_1111)である。また、転送先は、RAM3における、データD1を格納する領域の先頭アドレス(0x4444_4444)である。
DMA制御部44は、転送開始指示を受信すると、転送制御部41から通知された情報に基づいて、データD1をROM2からRAM3に転送する(ステップS103)。具体的には、DMA制御部44は、ROMIF43を介して、ROM2からデータD1を読み出し、読み出したデータD1を、RAMIF42を介して、RAM3に書き込む。
DMA制御部44は、データD1の転送を完了すると、転送制御部41に転送完了通知を送信し、データD1のROM2からRAM3への転送が完了したことを通知する(ステップS104)。
転送制御部41は、転送完了通知を受信すると、DMA制御部44に転送開始指示を再び送信し、データD1の転送の開始を指示する(ステップS105)。この際、転送制御部41は、管理テーブルを参照して、データD1の転送元、転送先、及びデータサイズ(0x7777)を、DMA制御部44に通知する。ステップS105において、転送元は、RAM3における、データD1が格納された領域の先頭アドレス(0x4444_4444)である。また、転送先は、FPGAIF45における、データD1を格納する送信バッファの先頭アドレス(0xAAAA_AAAA)である。
DMA制御部44は、転送開始指示を受信すると、転送制御部41から通知された情報に基づいて、データD1をRAM3からFPGAIF45に転送する。具体的には、DMA制御部44は、RAMIF42を介して、RAM3からデータD1を読み出し、読み出したデータD1を、FPGAIF45の送信バッファに書き込む。そして、FPGAIF45が、送信バッファに書き込まれたデータD1をFPGA1aに転送する(ステップS106)。
FPGA1aへのデータD1の転送が完了し、FPGA1aのコンフィグレーションが完了すると、FPGA1aは、FPGAIF45を介して、転送制御部41にコンフィグレーション完了通知を送信する。これにより、FPGA1aは、コンフィグレーションが完了したことを転送制御部41に通知する(ステップS107)。
また、転送制御部41は、ステップS104の転送完了通知を受信すると、DMA制御部46に転送開始指示を送信し、データD2の転送の開始を指示する(ステップS108)。この際、転送制御部41は、管理テーブルを参照して、データD2の転送元、転送先、及びデータサイズ(0x8888)を、DMA制御部46に通知する。ステップS108において、転送元は、ROM2における、データD2が格納された領域の先頭アドレス(0x2222_2222)である。また、転送先は、RAM3における、データD2を格納する領域の先頭アドレス(0x5555_5555)である。
DMA制御部46は、転送開始指示を受信すると、転送制御部41から通知された情報に基づいて、データD2をROM2からRAM3に転送する(ステップS109)。具体的には、DMA制御部46は、ROMIF43を介して、ROM2からデータD2を読み出し、読み出したデータD2を、RAMIF42を介して、RAM3に書き込む。
DMA制御部46は、データD2の転送を完了すると、転送制御部41に転送完了通知を送信し、データD2のROM2からRAM3への転送が完了したことを通知する(ステップS110)。
転送制御部41は、転送完了通知を受信すると、DMA制御部46に転送開始指示を再び送信し、データD2の転送の開始を指示する(ステップS111)。この際、転送制御部41は、管理テーブルを参照して、データD2の転送元、転送先、及びデータサイズ(0x8888)を、DMA制御部46に通知する。ステップS111において、転送元は、RAM3における、データD2が格納された領域の先頭アドレス(0x5555_5555)である。また、転送先は、FPGAIF47における、データD2を格納する送信バッファの先頭アドレス(0xBBBB_BBBB)である。
DMA制御部46は、転送開始指示を受信すると、転送制御部41から通知された情報に基づいて、データD2をRAM3からFPGAIF47に転送する。具体的には、DMA制御部46は、RAMIF42を介して、RAM3からデータD2を読み出し、読み出したデータD2を、FPGAIF47の送信バッファに書き込む。そして、FPGAIF47が、送信バッファに書き込まれたデータD2をFPGA1bに転送する(ステップS112)。
FPGA1bへのデータD2の転送が完了し、FPGA1bのコンフィグレーションが完了すると、FPGA1bは、FPGAIF47を介して、転送制御部41にコンフィグレーション完了通知を送信する。これにより、FPGA1bは、コンフィグレーションが完了したことを転送制御部41に通知する(ステップS113)。
転送制御部41は、FPGA1a,1bからコンフィグレーション完了通知を受信すると、CPU5にコンフィグレーション完了通知を送信し、FPGA1a,1bのコンフィグレーションが完了したことを通知する(ステップS114)。
図5は、本実施形態のコンフィグレーション処理におけるコンフィグレーション部4の動作の一例を示すフローチャートである。以下では、情報処理装置がN個のFPGA1と、N個の転送部と、をそれぞれ備えるものとする。
転送制御部41は、CPU5からコンフィグレーション開始指示を受信するまで待機する(ステップS201のNO)。転送制御部41は、CPU5からコンフィグレーション開始指示を受信すると(ステップS201のYES)、CPU5から受信したn個(n≦N)のFPGA1のFPGA情報を格納テーブルに格納する(ステップS202)。n=Nの場合、情報処理装置が備える全てのFPGA1がコンフィグレーションの対象となる。n<Nの場合、情報処理装置が備えるFPGA1の一部がコンフィグレーションの対象となる。
次に、転送制御部41は、格納テーブルにFPGA情報を格納されたn個のFPGA1の中から、コンフィグレーションを実行するFPGA1(以下、「対象FPGA」という)を選択する(ステップS203)。
転送制御部41は、対象FPGAを選択すると、その対象FPGAに対応するDMA制御部に転送開始指示を送信する(ステップS204)。
DMA制御部は、転送開始指示を受信すると、対象FPGAのコンフィグレーションデータの、ROM2からRAM3への転送を開始する(ステップS205)。DMA制御部は、転送を完了するまで(ステップS206のNO)、コンフィグレーションデータの転送を継続する。
DMA制御部は、コンフィグレーションデータの転送を完了すると(ステップS206のYES)、転送制御部41に転送完了通知を送信する(ステップS207)。
転送制御部41は、転送完了通知を受信すると、対象FPGAに対応するDMA制御部に転送開始指示を再び送信する(ステップS208)。
DMA制御部は、転送開始指示を受信すると、対象FPGAのコンフィグレーションデータの、RAM3から対象FPGAへの転送を開始する(ステップS209)。上述の通り、コンフィグレーションデータの転送が完了すると、対象FPGAから転送制御部41に、コンフィグレーション完了通知が送信される。
転送制御部41は、ステップS208において転送開始指示を送信した後、格納テーブルにFPGA情報を格納されたn個のFPGA1の中に、対象FPGAとして未選択のFPGA1があるか判定する(ステップS210)。未選択のFPGA1がある場合(ステップS210のYES)、転送制御部41は、未選択のFPGA1の中から、次の対象FPGAを選択する(ステップS203)。以降、未選択のFPGA1がなくなるまで、ステップS203〜S210の処理が繰り返される。
一方、未選択のFPGA1がない場合(ステップS210のNO)、転送制御部41は、全てのFPGA1からコンフィグレーション完了通知を受信するまで待機する(ステップS211のNO)。そして、転送制御部41は、全てのFPGA1からコンフィグレーション完了通知を受信すると(ステップS211のYES)、CPU5にコンフィグレーション完了通知を送信する(ステップS112)。以上でn個のFPGA1のコンフィグレーションが完了する。
ここで、本実施形態におけるコンフィグレーションに要する時間(以下、「コンフィグレーション時間」という)について説明する。図6は、従来のコンフィグレーション方法におけるコンフィグレーション時間を説明するタイミングチャートである。また、図7は、本実施形態に係る情報処理装置のコンフィグレーション方法におけるコンフィグレーション時間を説明するタイミングチャートである。
図6に示すように、従来のコンフィグレーション方法では、各コンフィグレーションデータは、ROMからFPGA1に直接転送される。この場合、各FPGA1のコンフィグレーション時間tは、コンフィグレーションデータを、ROMから読み出すために要する読み出し時間t1と、FPGA1に書き込むために要する書き込み時間t2と、の合計となる(t=t1+t2)。
また、従来のコンフィグレーション方法では、各コンフィグレーションデータは、1つずつ順番に転送される。このため、n個のFPGA1のコンフィグレーション時間Tは、n個のFPGA1のコンフィグレーション時間tの合計となる(T=n×t=n×(t1+t2))。
これに対して、図7に示すように、本実施形態に係るコンフィグレーション方法では、各コンフィグレーションデータは、ROM2からRAM3に転送された後、RAM3からFPGA1に転送される。この場合、各FPGA1のコンフィグレーション時間tは、コンフィグレーションデータを、読み出し時間t1と、書き込み時間t2と、RAM3に書き込むために要する書き込み時間t3と、RAM3から読み出すために要する読み出し時間t4と、の合計となる。すなわち、本実施形態におけるコンフィグレーション時間t(=t1+t2+t3+t4)は、従来方法におけるコンフィグレーション時間tよりも長くなる。
一方、本実施形態に係るコンフィグレーション方法では、あるコンフィグレーションデータの転送中に、他のコンフィグレーションデータが転送される。すなわち、複数のコンフィグレーションデータが同時に転送される。具体的には、先に転送を開始されたコンフィグレーションデータのROM2からRAM3への転送完了後、次のコンフィグレーションデータのROM2からRAM3への転送が開始される。このため、n個のFPGA1のコンフィグレーション時間Tは、1個のFPGA1のコンフィグレーション時間tと、(n−1)個のFPGA1のコンフィグレーションデータをROM2からRAM3に転送する時間(t1+t3)と、の合計となる。すなわち、コンフィグレーション時間Tは、T=t+(n−1)×(t1+t3)=n×(t1+t3)+t2+t4となる。
一般に、コンフィグレーション時間tにおいて、コンフィグレーションデータをFPGA1に書き込むために要する書き込み時間t2が支配的となる。したがって、情報処理装置が複数のFPGA1を備える場合、本実施形態に係るコンフィグレーション方法によれば、従来のコンフィグレーション方法に比べて、コンフィグレーション時間Tを短縮することができる。
なお、本実施形態において、RAM3として、DDR−SDRAMのような高速メモリが利用されるのが好ましい。高速メモリを利用することにより、書き込み時間t3と、読出し時間t4と、書き込み時間t2と、を短縮することができる。結果として、コンフィグレーション時間Tを更に短縮することができる。
<第2実施形態>
第2実施形態に係る情報処理装置について、図8〜図11を参照して説明する。
第2実施形態に係る情報処理装置について、図8〜図11を参照して説明する。
<情報処理装置の構成>
まず、本実施形態に係る情報処理装置の構成について説明する。本実施形態に係る情報処理装置のハードウェア構成は、第1実施形態(図1)と同様である。図8は、本実施形態に係るコンフィグレーション部4の機能構成の一例を示す図である。図8のコンフィグレーション部4は、DMA制御部46を除き、第1実施形態(図2)と同様である。
まず、本実施形態に係る情報処理装置の構成について説明する。本実施形態に係る情報処理装置のハードウェア構成は、第1実施形態(図1)と同様である。図8は、本実施形態に係るコンフィグレーション部4の機能構成の一例を示す図である。図8のコンフィグレーション部4は、DMA制御部46を除き、第1実施形態(図2)と同様である。
本実施形態に係るDMA制御部46は、転送制御部41から指示に従って、データD2を転送する。具体的には、DMA制御部46は、データD2を、ROM2からFPGAIF47に直接転送する。すなわち、DMA制御部46は、第1実施形態とは異なり、データD2をRAM3に転送しない。本実施形態において、DMA制御部46及びFPGAIF47は、データD2を、ROM2からFPGA1bに転送する第2の転送部を構成する。
<情報処理装置の動作>
次に、情報処理装置の動作について説明する。図9は、図8の情報処理装置によるコンフィグレーション処理の一例を示すシーケンス図である。図8のステップS101〜S107,S113,S114は、第1実施形態(図3)と同様である。以下、ステップS115,S116について説明する。
次に、情報処理装置の動作について説明する。図9は、図8の情報処理装置によるコンフィグレーション処理の一例を示すシーケンス図である。図8のステップS101〜S107,S113,S114は、第1実施形態(図3)と同様である。以下、ステップS115,S116について説明する。
本実施形態において、転送制御部41は、ステップS104の転送完了通知を受信すると、DMA制御部46に転送開始指示を送信し、データD2の転送の開始を指示する(ステップS115)。この際、転送制御部41は、管理テーブルを参照して、データD2の転送元、転送先、及びデータサイズ(0x8888)を、DMA制御部46に通知する。ステップS115において、転送元は、ROM2における、データD2が格納された領域の先頭アドレス(0x2222_2222)である。また、転送先は、FPGAIF47における、データD2を格納する送信バッファの先頭アドレス(0xBBBB_BBBB)である。
DMA制御部46は、転送開始指示を受信すると、転送制御部41から通知された情報に基づいて、データD2をROM2からFPGAIF47に転送する(ステップS116)。具体的には、DMA制御部46は、ROMIF43を介して、ROM2からデータD2を読み出し、読み出したデータD2を、FPGAIF47の送信バッファに書き込む。
その後、FPGA1bへのデータD2の転送が完了し、FPGA1bのコンフィグレーションが完了すると、FPGA1bは、FPGAIF47を介して、転送制御部41にコンフィグレーション完了通知を送信する。これにより、FPGA1bは、コンフィグレーションが完了したことを転送制御部41に通知する(ステップS113)。
転送制御部41は、FPGA1a,1bからコンフィグレーション完了通知を受信すると、CPU5にコンフィグレーション完了通知を送信し、FPGA1a,1bのコンフィグレーションが完了したことを通知する(ステップS114)。
図10は、本実施形態のコンフィグレーション処理におけるコンフィグレーション部4の動作の一例を示すフローチャートである。以下では、情報処理装置がN個のFPGA1と、N個の転送部と、をそれぞれ備えるものとする。図10のステップS201〜S209,S211,S212は、第1実施形態(図5)と同様である。以下、ステップS213〜S216について説明する。
本実施形態において、転送制御部41は、ステップS208において転送開始指示を送信した後、格納テーブルにFPGA情報を格納されたn個のFPGA1の中に含まれる未選択のFPGA1が1つであるか判定する(ステップS213)。未選択のFPGA1が2つ以上である場合(ステップS213のNO)、転送制御部41は、未選択のFPGA1の中から、次の対象FPGAを選択する(ステップS203)。以降、未選択のFPGA1が1つになるまで、ステップS203〜S209,S213の処理が繰り返される。
一方、未選択のFPGA1が1つである場合(ステップS213のYES)、転送制御部41は、未選択のFPGA1を対象FPGAとして選択する(ステップS214)。
転送制御部41は、対象FPGAを選択すると、その対象FPGAに対応するDMA制御部に転送開始指示を送信する(ステップS215)。本実施形態において、このDMA制御部は、第2の転送部を構成するDMA制御部である。
DMA制御部は、転送開始指示を受信すると、対象FPGAのコンフィグレーションデータの、ROM2から対象FPGAへの転送を開始する(ステップS216)。
その後、転送制御部41は、全てのFPGA1からコンフィグレーション完了通知を受信するまで待機する(ステップS211のNO)。そして、転送制御部41は、全てのFPGA1からコンフィグレーション完了通知を受信すると(ステップS211のYES)、CPU5にコンフィグレーション完了通知を送信する(ステップS112)。以上でn個のFPGA1のコンフィグレーションが完了する。
ここで、図11は、本実施形態に係る情報処理装置のコンフィグレーション方法におけるコンフィグレーション時間を説明するタイミングチャートである。
図11に示すように、本実施形態に係るコンフィグレーション方法では、最後にコンフィグレーションを実行される最後のFPGA1のコンフィグレーションデータは、ROM2からFPGA1に直接転送される。このFPGA1のコンフィグレーション時間tlは、コンフィグレーションデータを、ROM2から読み出すために要する読み出し時間t1と、FPGA1に書き込むために要する書き込み時間t2と、の合計となる(tl=t1+t2)。すなわち、本実施形態における最後のFPGA1のコンフィグレーション時間tlは、従来方法におけるコンフィグレーション時間tと同様となる。
このため、本実施形態では、n個のFPGA1のコンフィグレーション時間Tは、最後のFPGA1のコンフィグレーション時間tlと、(n−1)個のFPGA1のコンフィグレーションデータをROM2からRAM3に転送する時間(t1+t3)と、の合計となる。すなわち、コンフィグレーション時間Tは、T=tl+(n−1)×(t1+t3)=n×t1+t2+(n−1)×t3となる。結果として、本実施形態によれば、第1実施形態に比べて、コンフィグレーション時間Tを更に短縮することができる。
なお、上記実施形態に挙げた構成等に、その他の要素との組み合わせなど、ここで示した構成に本発明が限定されるものではない。これらの点に関しては、本発明の趣旨を逸脱しない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。
1:FPGA
2:ROM
3:RAM
4:コンフィグレーション部
5:CPU
6:バス
41:転送制御部
42:RAMIF
43:ROMIF
44,46:DMA制御部
45,47:FPGAIF
2:ROM
3:RAM
4:コンフィグレーション部
5:CPU
6:バス
41:転送制御部
42:RAMIF
43:ROMIF
44,46:DMA制御部
45,47:FPGAIF
Claims (6)
- 第1のコンフィグレーションデータを転送される第1の再構成可能デバイスと、
前記第1のコンフィグレーションデータとは異なる第2のコンフィグレーションデータを転送される第2の再構成可能デバイスと、
前記第1のコンフィグレーションデータ及び前記第2のコンフィグレーションデータを格納する第1の記憶装置と、
第2の記憶装置と、
前記第1のコンフィグレーションデータを、前記第1の記憶装置から前記第2の記憶装置に転送し、前記第2の記憶装置から前記第1の再構成可能デバイスに転送する第1の転送部と、
前記第1のコンフィグレーションデータの前記第1の再構成可能デバイスへの転送中に、前記第2のコンフィグレーションデータを前記第2の再構成可能デバイスに転送する第2の転送部と、
を備える情報処理装置。 - 前記第2の転送部は、前記第2のコンフィグレーションデータを、前記第1の記憶装置から前記第2の記憶装置へ転送し、前記第2の記憶装置から前記第2の再構成可能デバイスに転送する
請求項1に記載の情報処理装置。 - 前記第2の転送部は、前記第2のコンフィグレーションデータを、前記第1の記憶装置から前記第2の再構成可能デバイスに転送する
請求項1に記載の情報処理装置。 - 前記第2の転送部は、前記第1のコンフィグレーションデータの前記第2の記憶装置への転送完了後、前記第2のコンフィグレーションデータの転送を開始する
請求項1乃至請求項3のいずれか1項に記載の情報処理装置。 - 前記第1の再構成可能デバイス及び前記第2の再構成可能デバイスは、FPGAである
請求項1乃至請求項4のいずれか1項に記載の情報処理装置。 - 第1のコンフィグレーションデータを転送される第1の再構成可能デバイスと、
前記第1のコンフィグレーションデータとは異なる第2のコンフィグレーションデータを転送される第2の再構成可能デバイスと、
前記第1のコンフィグレーションデータ及び前記第2のコンフィグレーションデータを格納する第1の記憶装置と、
第2の記憶装置と、
を備える情報処理装置が実行するコンフィグレーション方法であって、
前記第1のコンフィグレーションデータを、前記第1の記憶装置から前記第2の記憶装置に転送し、前記第2の記憶装置から前記第1の再構成可能デバイスに転送する工程と、
前記第1のコンフィグレーションデータの前記第1の再構成可能デバイスへの転送中に、前記第2のコンフィグレーションデータを前記第2の再構成可能デバイスに転送する工程と、
を含むコンフィグレーション方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016134966A JP2018005762A (ja) | 2016-07-07 | 2016-07-07 | 情報処理装置及びコンフィグレーション方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016134966A JP2018005762A (ja) | 2016-07-07 | 2016-07-07 | 情報処理装置及びコンフィグレーション方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018005762A true JP2018005762A (ja) | 2018-01-11 |
Family
ID=60946411
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016134966A Pending JP2018005762A (ja) | 2016-07-07 | 2016-07-07 | 情報処理装置及びコンフィグレーション方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2018005762A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11461524B2 (en) | 2019-11-20 | 2022-10-04 | Ricoh Company, Ltd. | Information processing apparatus and configuration method |
US11733968B2 (en) | 2018-11-09 | 2023-08-22 | Samsung Electronics Co., Ltd. | Neural processing unit, neural processing system, and application system |
-
2016
- 2016-07-07 JP JP2016134966A patent/JP2018005762A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11733968B2 (en) | 2018-11-09 | 2023-08-22 | Samsung Electronics Co., Ltd. | Neural processing unit, neural processing system, and application system |
US11461524B2 (en) | 2019-11-20 | 2022-10-04 | Ricoh Company, Ltd. | Information processing apparatus and configuration method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6738262B2 (ja) | 加速器コントローラ及びその加速器ロジックローディング方法 | |
KR101185623B1 (ko) | 약하게 오더링된 처리 시스템에서 강하게 오더링된요청들을 실시하는 방법 및 장치 | |
JP2020509445A (ja) | ブロックチェーンコンセンサス形成の方法およびデバイス | |
US8901957B2 (en) | Processor and control method for processor | |
JP2009520391A (ja) | マイクロコントローラを有する構成可能回路 | |
JP2012128644A (ja) | メモリシステム | |
TWI573076B (zh) | 訊息訊號中斷之通訊 | |
US10168957B2 (en) | Directed placemat of data in memory | |
JP2007207136A (ja) | データ処理装置、データ処理方法、及びデータ処理プログラム | |
JP2018005762A (ja) | 情報処理装置及びコンフィグレーション方法 | |
EP2784682A1 (en) | Memory patching circuit | |
US9934100B2 (en) | Method of controlling memory swap operation and data processing system using same | |
US20160170921A1 (en) | Semiconductor integrated circuit and method of data transfer processing the same | |
JP2005293427A (ja) | データ転送処理装置及びデータ転送処理方法 | |
KR20140080216A (ko) | 반도체 메모리 시스템 및 그의 동작 방법 | |
JP6111680B2 (ja) | 信号処理装置およびプログラマブルロジックデバイスの構成方法 | |
JP4853185B2 (ja) | 情報処理システム | |
JP2008293226A (ja) | 半導体装置 | |
JP5129040B2 (ja) | 共有メモリを用いたバス通信装置 | |
JP4723334B2 (ja) | Dma転送システム | |
JP6146306B2 (ja) | I/oデバイス制御システムおよびi/oデバイス制御システムの制御方法 | |
JP2010206513A (ja) | 半導体装置 | |
US11003474B2 (en) | Semiconductor device for providing a virtualization technique | |
US9244867B1 (en) | Memory controller interface with adjustable port widths | |
KR101569001B1 (ko) | Fpga 데이터 구성 시스템 및 그 방법 |