(57)【要約】  情報処理装置１は、複数のＦＰＧＡ１１，１２と、フラッシュＲＯＭ４と、ＣＰＵ２と、ＣＰＵ２側から分岐して複数のＦＰＧＡ１１，１２に接続するＣＰＵバス３とを備える。ＣＰＵバス３は、ＦＰＧＡのコンフィギュレーション用データバス幅ごとに複数のＦＰＧＡ１１，１２に接続されている。フラッシュＲＯＭ４は、複数のＦＰＧＡ１１，１２それぞれについて、ＦＰＧＡと接続したコンフィギュレーション用データバス幅ごとのデータバスに対応するアドレスに、当該ＦＰＧＡ用のコンフィギュレーションデータを格納している。ＣＰＵ２は、複数のＦＰＧＡ１１，１２と接続したデータバスに対応する各アドレスに格納された複数のコンフィギュレーションデータ２１，２２を、ＣＰＵバス３を通じて複数のＦＰＧＡ１１，１２に同時に書き込む。
2016098249.tif 000002
【特許請求の範囲】
【請求項１】
複数のＦＰＧＡと、  前記複数のＦＰＧＡをコンフィギュレーションする複数のコンフィギュレーションデータを格納したメモリと、  前記メモリに格納された前記複数のコンフィギュレーションデータを前記複数のＦＰＧＡに書き込むプロセッサと、  前記プロセッサ側から分岐して前記複数のＦＰＧＡに接続するデータバスとを備え、  前記データバスは、ＦＰＧＡのコンフィギュレーション用データバス幅ごとに前記複数のＦＰＧＡに接続され、  前記メモリは、前記複数のＦＰＧＡそれぞれについて、ＦＰＧＡと接続した前記コンフィギュレーション用データバス幅ごとのデータバスに対応するアドレスに当該ＦＰＧＡ用のコンフィギュレーションデータを格納し、  前記プロセッサは、前記複数のＦＰＧＡと接続したデータバスに対応する各アドレスに格納された前記複数のコンフィギュレーションデータを、前記データバスを通じて前記複数のＦＰＧＡに同時に書き込むことを特徴とする情報処理装置。
【請求項２】
分岐したデータバスを介して複数のＦＰＧＡと接続されているプロセッサが、メモリに格納されている複数のコンフィギュレーションデータを、前記複数のＦＰＧＡに書き込むＦＰＧＡコンフィギュレーション方法であって、  前記データバスは、ＦＰＧＡのコンフィギュレーション用データバス幅ごとに前記複数のＦＰＧＡに接続され、前記メモリには、前記複数のＦＰＧＡそれぞれについて、ＦＰＧＡと接続した前記コンフィギュレーション用データバス幅ごとのデータバスに対応するアドレスに当該ＦＰＧＡ用のコンフィギュレーションデータが格納されており、前記プロセッサは、前記複数のＦＰＧＡと接続したデータバスに対応する各アドレスに格納された前記複数のコンフィギュレーションデータを、前記データバスを通じて前記複数のＦＰＧＡに同時に書き込むことを特徴とするＦＰＧＡコンフィギュレーション方法。
【発明の詳細な説明】
【技術分野】
【０００１】  この発明は、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）のコンフィギュレーションを行う情報処理装置およびＦＰＧＡコンフィギュレーション方法に関するものである。
【背景技術】
【０００２】  ＦＰＧＡは、論理構造を決定するデータを書き込むメモリとして揮発性メモリを用いるため、電源を切るとデータが消失する。そのため、ＦＰＧＡを起動する都度、データをメモリに書き込む、つまりコンフィギュレーションを行う必要がある。ＦＰＧＡのコンフィギュレーションには、スレーブパラレルモードと呼ばれる、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）からＦＰＧＡへコンフィギュレーションクロックを供給し、クロックに合わせてコンフィギュレーションデータをパラレルバスで書き込むモードが用意されている（例えば、特許文献１，２参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−１９３３２１号公報
【特許文献２】特開２０１０−１７７８９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】  上記特許文献１に係る発明では、複数のＦＰＧＡに対するコンフィギュレーションに要する時間を短縮するために、フラッシュＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）およびダウンロード制御回路を１組だけ搭載し、ダウンロード制御回路がフラッシュＲＯＭからコンフィギュレーションデータを読み出し、複数のＦＰＧＡに対して順次書き込む構成が採用されている。しかし、複数のＦＰＧＡに順番にデータを書き込んでいくシーケンスであるため、ＦＰＧＡの数が増えるほどコンフィギュレーション時間が長くなるという課題があった。【０００５】  他方、上記特許文献２に係る発明では、複数のＦＰＧＡに対して同時にコンフィギュレーションデータを書き込むことによって、コンフィギュレーション時間を短縮する構成が採用されている。この構成の場合、１個のＦＰＧＡにつき１組のフラッシュＲＯＭおよびダウンロード制御回路が必要なため、ハードウエア規模が増大するという課題があった。【０００６】  この発明は、上記のような課題を解決するためになされたもので、ハードウエア規模を増大することなく、複数のＦＰＧＡに対するコンフィギュレーション時間を短縮することを目的とする。
【課題を解決するための手段】
【０００７】  この発明に係る情報処理装置は、複数のＦＰＧＡと、複数のＦＰＧＡをコンフィギュレーションする複数のコンフィギュレーションデータを格納したメモリと、メモリに格納された複数のコンフィギュレーションデータを複数のＦＰＧＡに書き込むプロセッサと、プロセッサ側から分岐して複数のＦＰＧＡに接続するデータバスとを備え、データバスは、ＦＰＧＡのコンフィギュレーション用データバス幅ごとに複数のＦＰＧＡに接続され、メモリは、複数のＦＰＧＡそれぞれについて、ＦＰＧＡと接続したコンフィギュレーション用データバス幅ごとのデータバスに対応するアドレスに当該ＦＰＧＡ用のコンフィギュレーションデータを格納し、プロセッサは、複数のＦＰＧＡと接続したデータバスに対応する各アドレスに格納された複数のコンフィギュレーションデータを、データバスを通じて複数のＦＰＧＡに同時に書き込むものである。
【発明の効果】
【０００８】  この発明によれば、１組のメモリおよびプロセッサを用いて複数のＦＰＧＡをコンフィギュレーションするようにしたので、ハードウエア規模は増大しない。また、複数のＦＰＧＡそれぞれについて、ＦＰＧＡと接続したコンフィギュレーション用データバス幅ごとのデータバスに対応するアドレスに当該ＦＰＧＡ用のコンフィギュレーションデータを格納したメモリを採用したので、複数のＦＰＧＡに対して同時にコンフィギュレーションデータを書き込むことができるようになり、コンフィギュレーション時間を短縮できる。
【図面の簡単な説明】
【０００９】
【図１】この発明の実施の形態１に係る情報処理装置の構成例を示すブロック図である。
【図２】実施の形態１に係る情報処理装置におけるコンフィギュレーションデータの流れを示す図である。
【図３】実施の形態１のフラッシュＲＯＭにおけるコンフィギュレーションデータのメモリマップを示す図である。
【図４】従来のフラッシュＲＯＭにおけるコンフィギュレーションデータのメモリマップを示す図である。
【図５】実施の形態１に係る情報処理装置によるＦＰＧＡコンフィギュレーション方法を示すフローチャートである。
【図６】実施の形態１に係る情報処理装置の変形例を示すブロック図である。
【図７】図６のフラッシュＲＯＭにおけるコンフィギュレーションデータのメモリマップを示す図である。
【図８】実施の形態１に係る情報処理装置の変形例を示すブロック図である。
【図９】図８のフラッシュＲＯＭにおけるコンフィギュレーションデータのメモリマップを示す図である。
【発明を実施するための形態】
【００１０】  以下、この発明をより詳細に説明するために、この発明を実施するための形態について、添付の図面に従って説明する。実施の形態１．  図１は、実施の形態１に係る情報処理装置１の構成例を示すブロック図である。図１に示すように、ｎ個（ｎ≧２）のＦＰＧＡ１１，１２は、ＣＰＵバス３経由でＣＰＵ２に接続されている。また、ＣＰＵバス３には、フラッシュＲＯＭ４も接続されている。ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）５は、専用のメモリバス６経由でＣＰＵ２に接続されている。
【００１１】  実施の形態１では、ＦＰＧＡの個数によらず、フラッシュＲＯＭ４を１個だけ使用する。また、フラッシュＲＯＭ４からＦＰＧＡへコンフィギュレーションデータを書き込むダウンロード制御回路は、ＣＰＵ２以外に必要ない。
【００１２】  以下では、２個のＦＰＧＡ１１，１２が搭載された情報処理装置１を例に用いて、実施の形態１を説明する。
【００１３】  図２は、実施の形態１に係る情報処理装置１におけるコンフィギュレーションの流れを示す図である。コンフィギュレーションデータの流れは、破線で示す。ＣＰＵバス３はパラレルバスであり、ＣＰＵ２に接続された側から途中で分岐してＦＰＧＡ１１，１２に接続されている。
【００１４】  図２では、データバス幅３２ｂｉｔのＣＰＵバス３を使用する。ＣＰＵバス３のうち、「ＤＡＴ＜１５．．０＞」と表記した下位１６ｂｉｔのコンフィギュレーション用データバスをＦＰＧＡ１１に接続し、「ＤＡＴ＜３１．．１６＞」と表記した上位１６ｂｉｔのコンフィギュレーション用データバスをＦＰＧＡ１２に接続する。また、「ＣＳ＊」と表記したチップセレクト用の制御バスを、２個のＦＰＧＡ１１，１２に共通で接続する。ＣＰＵ２は、チップセレクト用の制御バスの信号値を切り替えて、ＦＰＧＡ１１，１２を読み書き可能状態にする。  この構成により、ＣＰＵ２は、ＣＰＵバス３のうち、コンフィギュレーション用データバスの下位１６ｂｉｔを通じてＦＰＧＡ１１へコンフィギュレーションデータを書き込むと同時に、上位１６ｂｉｔを通じてＦＰＧＡ１２へコンフィギュレーションデータを書き込むことが可能である。
【００１５】  なお、図２ではコンフィギュレーションクロック供給用の制御バスは図示を省略している。スレーブパラレルモードの場合、ＣＰＵ２からＦＰＧＡ１１，１２へコンフィギュレーションクロックを供給し、このクロックに合わせてＦＰＧＡ１１，１２へのコンフィギュレーションデータの書き込みが行われる。
【００１６】  図３は、実施の形態１のフラッシュＲＯＭ４におけるコンフィギュレーションデータのメモリマップを示す図である。ＦＰＧＡ１１のコンフィギュレーションデータ２１と、ＦＰＧＡ１２のコンフィギュレーションデータ２２は、フラッシュＲＯＭ４に格納されている。  フラッシュＲＯＭ４のうち、コンフィギュレーション用データバス下位１６ｂｉｔ（０〜１５ｂｉｔ）に対応するアドレスにＦＰＧＡ１１のコンフィギュレーションデータ２１を格納し、コンフィギュレーション用データバス上位１６ｂｉｔ（１６〜３１ｂｉｔ）に対応するアドレスにＦＰＧＡ１２のコンフィギュレーションデータ２２を格納し、結合しておく。ベースアドレスは、ＦＰＧＡ１１，１２のコンフィギュレーションデータ２１，２２を格納する際の開始アドレスを示す。複数のＦＰＧＡそれぞれについて、ＦＰＧＡと接続されたコンフィギュレーション用データバス幅ごとのデータバスに対応するアドレスに、当該ＦＰＧＡ用のコンフィギュレーションデータを格納しておくことがポイントである。
【００１７】  図３の例の場合、コンフィギュレーションデータ２１は、図２に「ＤＡＴ＜１５．．０＞」と表記したデータバスを通じてＦＰＧＡ１１へ出力される。並行して、コンフィギュレーションデータ２２が、「ＤＡＴ＜３１．．１６＞」と表記したデータバスを通じてＦＰＧＡ１２へ出力される。
【００１８】  これに対し、上記特許文献１のように、１個のフラッシュＲＯＭから２個のＦＰＧＡへ順次コンフィギュレーションデータを書き込む構成の場合を、図４に示す。ＦＰＧＡ１１，１２のそれぞれはコンフィギュレーション用データバス幅が１６ｂｉｔであるため、フラッシュＲＯＭ４のうち、コンフィギュレーション用データバス０〜１５ｂｉｔに対応するアドレスにＦＰＧＡ１１，１２のコンフィギュレーションデータ２１，２２が順番に格納されている。  図４の例の場合、まず、コンフィギュレーションデータ２１が、１６ｂｉｔ幅のコンフィギュレーション用データバスを通じてＦＰＧＡ１１へ出力される。その後、コンフィギュレーションデータ２２が、１６ｂｉｔ幅のコンフィギュレーション用データバスを通じてＦＰＧＡ１２へ出力される。その結果、図３と図４とでコンフィギュレーションデータ２１，２２の合計データ量が同じでも、図３に比べ図４では格納アドレスが２倍になるため、書き込み回数も２倍になり、コンフィギュレーション時間が長くなる。
【００１９】  図５は、実施の形態１に係る情報処理装置１によるＦＰＧＡコンフィギュレーション方法を示すフローチャートである。ＣＰＵ２は、ＣＰＵバス３を通じてフラッシュＲＯＭ４からコンフィギュレーションデータ２１，２２を読み出し（ステップＳＴ１）、メモリバス６を通じてＤＲＡＭ５へ展開する（ステップＳＴ２）。そして、ＣＰＵ２は、ＤＲＡＭ５へ展開したコンフィギュレーションデータ２１，２２を、メモリバス６を通じて読み出し、ＣＰＵバス３を通じてＦＰＧＡ１１，１２に同時に書き込む。このシーケンスは、すべてＣＰＵ２が行うソフトウエアの処理であり、このＣＰＵ２以外にハードウエアを必要としない。また、複数のＦＰＧＡに対してコンフィギュレーションデータを同時に書き込むため、コンフィギュレーションデータ書き込みは１回でよい。
【００２０】  以上の説明では、２個のＦＰＧＡを使用する場合を例にしたが、ＣＰＵバス３のＦＰＧＡに接続するコンフィギュレーション用データバス幅を変更することで、３個以上のＦＰＧＡにも対応可能である。  一般には、ＦＰＧＡのコンフィギュレーション用データバス幅は１６ｂｉｔまたは８ｂｉｔが多い。ＣＰＵバス３のデータバス幅を３２ｂｉｔにした場合、コンフィギュレーション用データバス幅８ｂｉｔのＦＰＧＡを最大４個、同時にコンフィギュレーションすることが可能である。この例を図６と図７に示す。
【００２１】  図６に示すように、ＣＰＵバス３のデータバス幅３２ｂｉｔのうち、下位側から数えて０〜７ｂｉｔの計８ｂｉｔのデータバスをＦＰＧＡ１１に接続し、８〜１５ｂｉｔの計８ｂｉｔのデータバスをＦＰＧＡ１２に接続し、１６〜２３ｂｉｔの計８ｂｉｔのデータバスをＦＰＧＡ１３に接続し、２３〜３１ｂｉｔの計８ｂｉｔのデータバスをＦＰＧＡ１４に接続する。この構成の場合、図７に示すように、フラッシュＲＯＭ４のうち、下位側から数えて０〜７ｂｉｔに対応するアドレスへＦＰＧＡ１１のコンフィギュレーションデータ２１を格納し、８〜１５ｂｉｔに対応するアドレスへＦＰＧＡ１２のコンフィギュレーションデータ２２を格納し、１６ｂｉｔ〜２３ｂｉｔに対応するアドレスへＦＰＧＡ１３のコンフィギュレーションデータ２３を格納し、２４〜３１ｂｉｔに対応するアドレスへＦＰＧＡ１４のコンフィギュレーションデータ２４を格納し、結合しておく。
【００２２】  また、データバス幅が異なるＦＰＧＡが混在しても構わない。この例を図８と図９に示す。  図８に示すように、ＣＰＵバス３のデータバス幅３２ｂｉｔのうち、下位側から数えて０〜１５ｂｉｔの計１６ｂｉｔのデータバスをＦＰＧＡ１１に接続し、１６〜２３ｂｉｔの計８ｂｉｔのデータバスをＦＰＧＡ１２に接続し、２４〜３１ｂｉｔの計８ｂｉｔのデータバスをＦＰＧＡ１３に接続する。この構成の場合、図９に示すように、フラッシュＲＯＭ４のうち、下位側から数えて０〜１５ｂｉｔに対応するアドレスへＦＰＧＡ１１のコンフィギュレーションデータ２１を格納し、１６〜２３ｂｉｔに対応するアドレスへＦＰＧＡ１２のコンフィギュレーションデータ２２を格納し、２４〜３１ｂｉｔに対応するアドレスへＦＰＧＡ１３のコンフィギュレーションデータ２３を格納し、結合しておく。
【００２３】  図６と図７の構成、または図８と図９の構成において、ＦＰＧＡのコンフィギュレーション用データバス幅の合計値がＣＰＵバス３のデータバス幅以下であるなら、ＦＰＧＡのコンフィギュレーション用データバス幅および個数を自由に変更可能である。ＣＰＵバス３のデータバス幅が３２ｂｉｔの場合、２個のＦＰＧＡ（１６ｂｉｔデータバス幅のＦＰＧＡ２個、または８ｂｉｔデータバス幅のＦＰＧＡ２個）、３個のＦＰＧＡ（１６ｂｉｔデータバス幅のＦＰＧＡ１個と８ｂｉｔデータバス幅のＦＰＧＡ２個）、４個のＦＰＧＡ（８ｂｉｔデータバス幅のＦＰＧＡ４個）といった組み合わせが可能である。  さらに、データバス幅６４ｂｉｔ、１６ｂｉｔなどのＣＰＵバス３を使用する場合にも、上記同様、ＦＰＧＡのコンフィギュレーション用データバス幅および個数を自由に変更可能である。  なお、ＦＰＧＡのコンフィギュレーション用のデータバス幅は様々あるが、コンフィギュレーション時間を短縮するには、より大きなデータバス幅を採用することが望ましい。
【００２４】  図１〜図９の説明では、コンフィギュレーションデータを格納するメモリとしてフラッシュＲＯＭを用いたが、その他のメモリであってもよい。電源を切ってもデータが消失しない不揮発性メモリであって、データバス幅がＣＰＵバスと同じかそれ以上のメモリが望ましい。また、コンフィギュレーションデータの書き込みを制御するプロセッサとしてＣＰＵを用いたが、その他のプロセッサであってもよい。
【００２５】  以上より、実施の形態１によれば、情報処理装置１は、複数のＦＰＧＡ１１，１２と、複数のＦＰＧＡ１１，１２をコンフィギュレーションするための複数のコンフィギュレーションデータ２１，２２を格納したフラッシュＲＯＭ４と、フラッシュＲＯＭ４に格納された複数のコンフィギュレーションデータ２１，２２を複数のＦＰＧＡ１１，１２に書き込むＣＰＵ２と、ＣＰＵ２側から分岐して複数のＦＰＧＡ１１，１２に接続するＣＰＵバス３とを備える。ＣＰＵバス３は、ＦＰＧＡのコンフィギュレーション用データバス幅ごとに複数のＦＰＧＡ１１，１２に接続され、フラッシュＲＯＭ４は、複数のＦＰＧＡ１１，１２それぞれについて、ＦＰＧＡと接続したコンフィギュレーション用データバス幅ごとのデータバスに対応するアドレスに当該ＦＰＧＡ用のコンフィギュレーションデータを格納し、ＣＰＵ２は、複数のＦＰＧＡ１１，１２と接続したデータバスに対応する各アドレスに格納された複数のコンフィギュレーションデータ２１，２２を、ＣＰＵバス３を通じて複数のＦＰＧＡ１１，１２に同時に書き込む構成にした。ＦＰＧＡの個数によらずＣＰＵとフラッシュＲＯＭが１組あればよいので、ハードウエア規模が増大しない。また、複数のＦＰＧＡに対して同時に書き込むことができるので、コンフィギュレーション時間を短縮できる。
【００２６】  なお、本発明はその発明の範囲内において、実施の形態の任意の構成要素の変形、または実施の形態の任意の構成要素の省略が可能である。
【産業上の利用可能性】
【００２７】  この発明に係る情報処理装置は、ＦＰＧＡのコンフィギュレーション時間を短縮するようにしたので、複数のＦＰＧＡが搭載されたカーナビゲーション装置などに用いるのに適している。
【符号の説明】
【００２８】  １  情報処理装置、２  ＣＰＵ（プロセッサ）、３  ＣＰＵバス（データバス）、４  フラッシュＲＯＭ（メモリ）、５  ＤＲＡＭ、６  メモリバス、１１〜１４  ＦＰＧＡ、２１〜２４  コンフィギュレーションデータ。
【図１】
2016098249.tif 000003
【図２】
2016098249.tif 000004
【図３】
2016098249.tif 000005
【図４】
2016098249.tif 000006
【図５】
2016098249.tif 000007
【図６】
2016098249.tif 000008
【図７】
2016098249.tif 000009
【図８】
2016098249.tif 000010
【図９】
2016098249.tif 000011
【国際調査報告】
2016098249.tif 000012
2016098249.tif 000013