JP6381673B2 - 情報処理装置およびfpgaコンフィギュレーション方法 - Google Patents

情報処理装置およびfpgaコンフィギュレーション方法 Download PDF

Info

Publication number
JP6381673B2
JP6381673B2 JP2016564550A JP2016564550A JP6381673B2 JP 6381673 B2 JP6381673 B2 JP 6381673B2 JP 2016564550 A JP2016564550 A JP 2016564550A JP 2016564550 A JP2016564550 A JP 2016564550A JP 6381673 B2 JP6381673 B2 JP 6381673B2
Authority
JP
Japan
Prior art keywords
fpgas
fpga
configuration data
configuration
data bus
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.)
Expired - Fee Related
Application number
JP2016564550A
Other languages
English (en)
Other versions
JPWO2016098249A1 (ja
Inventor
孝彰 杉田
孝彰 杉田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of JPWO2016098249A1 publication Critical patent/JPWO2016098249A1/ja
Application granted granted Critical
Publication of JP6381673B2 publication Critical patent/JP6381673B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components

Description

この発明は、FPGA(Field Programmable Gate Array)のコンフィギュレーションを行う情報処理装置およびFPGAコンフィギュレーション方法に関するものである。
FPGAは、論理構造を決定するデータを書き込むメモリとして揮発性メモリを用いるため、電源を切るとデータが消失する。そのため、FPGAを起動する都度、データをメモリに書き込む、つまりコンフィギュレーションを行う必要がある。FPGAのコンフィギュレーションには、スレーブパラレルモードと呼ばれる、CPU(Central Processing Unit)からFPGAへコンフィギュレーションクロックを供給し、クロックに合わせてコンフィギュレーションデータをパラレルバスで書き込むモードが用意されている(例えば、特許文献1,2参照)。
特開2009−193321号公報 特開2010−177897号公報
上記特許文献1に係る発明では、複数のFPGAに対するコンフィギュレーションに要する時間を短縮するために、フラッシュROM(Read Only Memory)およびダウンロード制御回路を1組だけ搭載し、ダウンロード制御回路がフラッシュROMからコンフィギュレーションデータを読み出し、複数のFPGAに対して順次書き込む構成が採用されている。しかし、複数のFPGAに順番にデータを書き込んでいくシーケンスであるため、FPGAの数が増えるほどコンフィギュレーション時間が長くなるという課題があった。
他方、上記特許文献2に係る発明では、複数のFPGAに対して同時にコンフィギュレーションデータを書き込むことによって、コンフィギュレーション時間を短縮する構成が採用されている。この構成の場合、1個のFPGAにつき1組のフラッシュROMおよびダウンロード制御回路が必要なため、ハードウエア規模が増大するという課題があった。
この発明は、上記のような課題を解決するためになされたもので、ハードウエア規模を増大することなく、複数のFPGAに対するコンフィギュレーション時間を短縮することを目的とする。
この発明に係る情報処理装置は、複数のFPGAと、複数のFPGAをコンフィギュレーションする複数のコンフィギュレーションデータを格納したメモリと、メモリに格納された複数のコンフィギュレーションデータを複数のFPGAに書き込むプロセッサと、プロセッサ側から分岐して複数のFPGAに接続するデータバスとを備え、データバスは、FPGAのコンフィギュレーション用データバス幅ごとに複数のFPGAに接続され、メモリは、複数のFPGAそれぞれについて、FPGAと接続したコンフィギュレーション用データバス幅ごとのデータバスに対応するアドレスに当該FPGA用のコンフィギュレーションデータを格納し、プロセッサは、複数のFPGAと接続したデータバスに対応する各アドレスに格納された複数のコンフィギュレーションデータを、データバスを通じて複数のFPGAに同時に書き込むものである。
この発明によれば、1組のメモリおよびプロセッサを用いて複数のFPGAをコンフィギュレーションするようにしたので、ハードウエア規模は増大しない。また、複数のFPGAそれぞれについて、FPGAと接続したコンフィギュレーション用データバス幅ごとのデータバスに対応するアドレスに当該FPGA用のコンフィギュレーションデータを格納したメモリを採用したので、複数のFPGAに対して同時にコンフィギュレーションデータを書き込むことができるようになり、コンフィギュレーション時間を短縮できる。
この発明の実施の形態1に係る情報処理装置の構成例を示すブロック図である。 実施の形態1に係る情報処理装置におけるコンフィギュレーションデータの流れを示す図である。 実施の形態1のフラッシュROMにおけるコンフィギュレーションデータのメモリマップを示す図である。 従来のフラッシュROMにおけるコンフィギュレーションデータのメモリマップを示す図である。 実施の形態1に係る情報処理装置によるFPGAコンフィギュレーション方法を示すフローチャートである。 実施の形態1に係る情報処理装置の変形例を示すブロック図である。 図6のフラッシュROMにおけるコンフィギュレーションデータのメモリマップを示す図である。 実施の形態1に係る情報処理装置の変形例を示すブロック図である。 図8のフラッシュROMにおけるコンフィギュレーションデータのメモリマップを示す図である。
以下、この発明をより詳細に説明するために、この発明を実施するための形態について、添付の図面に従って説明する。
実施の形態1.
図1は、実施の形態1に係る情報処理装置1の構成例を示すブロック図である。図1に示すように、n個(n≧2)のFPGA11,12は、CPUバス3経由でCPU2に接続されている。また、CPUバス3には、フラッシュROM4も接続されている。DRAM(Dynamic Random Access Memory)5は、専用のメモリバス6経由でCPU2に接続されている。
実施の形態1では、FPGAの個数によらず、フラッシュROM4を1個だけ使用する。また、フラッシュROM4からFPGAへコンフィギュレーションデータを書き込むダウンロード制御回路は、CPU2以外に必要ない。
以下では、2個のFPGA11,12が搭載された情報処理装置1を例に用いて、実施の形態1を説明する。
図2は、実施の形態1に係る情報処理装置1におけるコンフィギュレーションの流れを示す図である。コンフィギュレーションデータの流れは、破線で示す。CPUバス3はパラレルバスであり、CPU2に接続された側から途中で分岐してFPGA11,12に接続されている。
図2では、データバス幅32bitのCPUバス3を使用する。CPUバス3のうち、「DAT<15..0>」と表記した下位16bitのコンフィギュレーション用データバスをFPGA11に接続し、「DAT<31..16>」と表記した上位16bitのコンフィギュレーション用データバスをFPGA12に接続する。また、「CS*」と表記したチップセレクト用の制御バスを、2個のFPGA11,12に共通で接続する。CPU2は、チップセレクト用の制御バスの信号値を切り替えて、FPGA11,12を読み書き可能状態にする。
この構成により、CPU2は、CPUバス3のうち、コンフィギュレーション用データバスの下位16bitを通じてFPGA11へコンフィギュレーションデータを書き込むと同時に、上位16bitを通じてFPGA12へコンフィギュレーションデータを書き込むことが可能である。
なお、図2ではコンフィギュレーションクロック供給用の制御バスは図示を省略している。スレーブパラレルモードの場合、CPU2からFPGA11,12へコンフィギュレーションクロックを供給し、このクロックに合わせてFPGA11,12へのコンフィギュレーションデータの書き込みが行われる。
図3は、実施の形態1のフラッシュROM4におけるコンフィギュレーションデータのメモリマップを示す図である。FPGA11のコンフィギュレーションデータ21と、FPGA12のコンフィギュレーションデータ22は、フラッシュROM4に格納されている。
フラッシュROM4のうち、コンフィギュレーション用データバス下位16bit(0〜15bit)に対応するアドレスにFPGA11のコンフィギュレーションデータ21を格納し、コンフィギュレーション用データバス上位16bit(16〜31bit)に対応するアドレスにFPGA12のコンフィギュレーションデータ22を格納し、結合しておく。ベースアドレスは、FPGA11,12のコンフィギュレーションデータ21,22を格納する際の開始アドレスを示す。複数のFPGAそれぞれについて、FPGAと接続されたコンフィギュレーション用データバス幅ごとのデータバスに対応するアドレスに、当該FPGA用のコンフィギュレーションデータを格納しておくことがポイントである。
図3の例の場合、コンフィギュレーションデータ21は、図2に「DAT<15..0>」と表記したデータバスを通じてFPGA11へ出力される。並行して、コンフィギュレーションデータ22が、「DAT<31..16>」と表記したデータバスを通じてFPGA12へ出力される。
これに対し、上記特許文献1のように、1個のフラッシュROMから2個のFPGAへ順次コンフィギュレーションデータを書き込む構成の場合を、図4に示す。FPGA11,12のそれぞれはコンフィギュレーション用データバス幅が16bitであるため、フラッシュROM4のうち、コンフィギュレーション用データバス0〜15bitに対応するアドレスにFPGA11,12のコンフィギュレーションデータ21,22が順番に格納されている。
図4の例の場合、まず、コンフィギュレーションデータ21が、16bit幅のコンフィギュレーション用データバスを通じてFPGA11へ出力される。その後、コンフィギュレーションデータ22が、16bit幅のコンフィギュレーション用データバスを通じてFPGA12へ出力される。その結果、図3と図4とでコンフィギュレーションデータ21,22の合計データ量が同じでも、図3に比べ図4では格納アドレスが2倍になるため、書き込み回数も2倍になり、コンフィギュレーション時間が長くなる。
図5は、実施の形態1に係る情報処理装置1によるFPGAコンフィギュレーション方法を示すフローチャートである。CPU2は、CPUバス3を通じてフラッシュROM4からコンフィギュレーションデータ21,22を読み出し(ステップST1)、メモリバス6を通じてDRAM5へ展開する(ステップST2)。そして、CPU2は、DRAM5へ展開したコンフィギュレーションデータ21,22を、メモリバス6を通じて読み出し、CPUバス3を通じてFPGA11,12に同時に書き込む。このシーケンスは、すべてCPU2が行うソフトウエアの処理であり、このCPU2以外にハードウエアを必要としない。また、複数のFPGAに対してコンフィギュレーションデータを同時に書き込むため、コンフィギュレーションデータ書き込みは1回でよい。
以上の説明では、2個のFPGAを使用する場合を例にしたが、CPUバス3のFPGAに接続するコンフィギュレーション用データバス幅を変更することで、3個以上のFPGAにも対応可能である。
一般には、FPGAのコンフィギュレーション用データバス幅は16bitまたは8bitが多い。CPUバス3のデータバス幅を32bitにした場合、コンフィギュレーション用データバス幅8bitのFPGAを最大4個、同時にコンフィギュレーションすることが可能である。この例を図6と図7に示す。
図6に示すように、CPUバス3のデータバス幅32bitのうち、下位側から数えて0〜7bitの計8bitのデータバスをFPGA11に接続し、8〜15bitの計8bitのデータバスをFPGA12に接続し、16〜23bitの計8bitのデータバスをFPGA13に接続し、23〜31bitの計8bitのデータバスをFPGA14に接続する。この構成の場合、図7に示すように、フラッシュROM4のうち、下位側から数えて0〜7bitに対応するアドレスへFPGA11のコンフィギュレーションデータ21を格納し、8〜15bitに対応するアドレスへFPGA12のコンフィギュレーションデータ22を格納し、16bit〜23bitに対応するアドレスへFPGA13のコンフィギュレーションデータ23を格納し、24〜31bitに対応するアドレスへFPGA14のコンフィギュレーションデータ24を格納し、結合しておく。
また、データバス幅が異なるFPGAが混在しても構わない。この例を図8と図9に示す。
図8に示すように、CPUバス3のデータバス幅32bitのうち、下位側から数えて0〜15bitの計16bitのデータバスをFPGA11に接続し、16〜23bitの計8bitのデータバスをFPGA12に接続し、24〜31bitの計8bitのデータバスをFPGA13に接続する。この構成の場合、図9に示すように、フラッシュROM4のうち、下位側から数えて0〜15bitに対応するアドレスへFPGA11のコンフィギュレーションデータ21を格納し、16〜23bitに対応するアドレスへFPGA12のコンフィギュレーションデータ22を格納し、24〜31bitに対応するアドレスへFPGA13のコンフィギュレーションデータ23を格納し、結合しておく。
図6と図7の構成、または図8と図9の構成において、FPGAのコンフィギュレーション用データバス幅の合計値がCPUバス3のデータバス幅以下であるなら、FPGAのコンフィギュレーション用データバス幅および個数を自由に変更可能である。CPUバス3のデータバス幅が32bitの場合、2個のFPGA(16bitデータバス幅のFPGA2個、または8bitデータバス幅のFPGA2個)、3個のFPGA(16bitデータバス幅のFPGA1個と8bitデータバス幅のFPGA2個)、4個のFPGA(8bitデータバス幅のFPGA4個)といった組み合わせが可能である。
さらに、データバス幅64bit、16bitなどのCPUバス3を使用する場合にも、上記同様、FPGAのコンフィギュレーション用データバス幅および個数を自由に変更可能である。
なお、FPGAのコンフィギュレーション用のデータバス幅は様々あるが、コンフィギュレーション時間を短縮するには、より大きなデータバス幅を採用することが望ましい。
図1〜図9の説明では、コンフィギュレーションデータを格納するメモリとしてフラッシュROMを用いたが、その他のメモリであってもよい。電源を切ってもデータが消失しない不揮発性メモリであって、データバス幅がCPUバスと同じかそれ以上のメモリが望ましい。また、コンフィギュレーションデータの書き込みを制御するプロセッサとしてCPUを用いたが、その他のプロセッサであってもよい。
以上より、実施の形態1によれば、情報処理装置1は、複数のFPGA11,12と、複数のFPGA11,12をコンフィギュレーションするための複数のコンフィギュレーションデータ21,22を格納したフラッシュROM4と、フラッシュROM4に格納された複数のコンフィギュレーションデータ21,22を複数のFPGA11,12に書き込むCPU2と、CPU2側から分岐して複数のFPGA11,12に接続するCPUバス3とを備える。CPUバス3は、FPGAのコンフィギュレーション用データバス幅ごとに複数のFPGA11,12に接続され、フラッシュROM4は、複数のFPGA11,12それぞれについて、FPGAと接続したコンフィギュレーション用データバス幅ごとのデータバスに対応するアドレスに当該FPGA用のコンフィギュレーションデータを格納し、CPU2は、複数のFPGA11,12と接続したデータバスに対応する各アドレスに格納された複数のコンフィギュレーションデータ21,22を、CPUバス3を通じて複数のFPGA11,12に同時に書き込む構成にした。FPGAの個数によらずCPUとフラッシュROMが1組あればよいので、ハードウエア規模が増大しない。また、複数のFPGAに対して同時に書き込むことができるので、コンフィギュレーション時間を短縮できる。
なお、本発明はその発明の範囲内において、実施の形態の任意の構成要素の変形、または実施の形態の任意の構成要素の省略が可能である。
この発明に係る情報処理装置は、FPGAのコンフィギュレーション時間を短縮するようにしたので、複数のFPGAが搭載されたカーナビゲーション装置などに用いるのに適している。
1 情報処理装置、2 CPU(プロセッサ)、3 CPUバス(データバス)、4 フラッシュROM(メモリ)、5 DRAM、6 メモリバス、11〜14 FPGA、21〜24 コンフィギュレーションデータ。

Claims (2)

  1. 複数のFPGAと、
    前記複数のFPGAをコンフィギュレーションする複数のコンフィギュレーションデータを格納したメモリと、
    前記メモリに格納された前記複数のコンフィギュレーションデータを前記複数のFPGAに書き込むプロセッサと、
    前記プロセッサ側から分岐して前記複数のFPGAに接続するデータバスとを備え、
    前記データバスは、FPGAのコンフィギュレーション用データバス幅ごとに前記複数のFPGAに接続され、
    前記メモリは、前記複数のFPGAそれぞれについて、FPGAと接続した前記コンフィギュレーション用データバス幅ごとのデータバスに対応するアドレスに当該FPGA用のコンフィギュレーションデータを格納し、
    前記プロセッサは、前記複数のFPGAと接続したデータバスに対応する各アドレスに格納された前記複数のコンフィギュレーションデータを、前記データバスを通じて前記複数のFPGAに同時に書き込むことを特徴とする情報処理装置。
  2. 分岐したデータバスを介して複数のFPGAと接続されているプロセッサが、メモリに格納されている複数のコンフィギュレーションデータを、前記複数のFPGAに書き込むFPGAコンフィギュレーション方法であって、
    前記データバスは、FPGAのコンフィギュレーション用データバス幅ごとに前記複数のFPGAに接続され、前記メモリには、前記複数のFPGAそれぞれについて、FPGAと接続した前記コンフィギュレーション用データバス幅ごとのデータバスに対応するアドレスに当該FPGA用のコンフィギュレーションデータが格納されており、前記プロセッサは、前記複数のFPGAと接続したデータバスに対応する各アドレスに格納された前記複数のコンフィギュレーションデータを、前記データバスを通じて前記複数のFPGAに同時に書き込むことを特徴とするFPGAコンフィギュレーション方法。
JP2016564550A 2014-12-19 2014-12-19 情報処理装置およびfpgaコンフィギュレーション方法 Expired - Fee Related JP6381673B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/083722 WO2016098249A1 (ja) 2014-12-19 2014-12-19 情報処理装置およびfpgaコンフィギュレーション方法

Publications (2)

Publication Number Publication Date
JPWO2016098249A1 JPWO2016098249A1 (ja) 2017-04-27
JP6381673B2 true JP6381673B2 (ja) 2018-08-29

Family

ID=56126167

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016564550A Expired - Fee Related JP6381673B2 (ja) 2014-12-19 2014-12-19 情報処理装置およびfpgaコンフィギュレーション方法

Country Status (2)

Country Link
JP (1) JP6381673B2 (ja)
WO (1) WO2016098249A1 (ja)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0546524A (ja) * 1991-08-21 1993-02-26 Matsushita Electric Ind Co Ltd デイスクアレイ制御装置
JP2004094865A (ja) * 2002-09-04 2004-03-25 Sony Corp 半導体回路及びそれを用いたデータ通信装置
US7146598B2 (en) * 2002-11-07 2006-12-05 Computer Network Technoloy Corp. Method and apparatus for configuring a programmable logic device
EP1569124A1 (en) * 2004-02-26 2005-08-31 Matsushita Electric Industrial Co., Ltd. Memory interface and data processing
US7464241B2 (en) * 2004-11-22 2008-12-09 Intel Corporation Memory transaction burst operation and memory components supporting temporally multiplexed error correction coding
JP2014175891A (ja) * 2013-03-11 2014-09-22 Seiko Epson Corp コンフィグレーション装置、コンフィグレーション方法、およびプロジェクター

Also Published As

Publication number Publication date
WO2016098249A1 (ja) 2016-06-23
JPWO2016098249A1 (ja) 2017-04-27

Similar Documents

Publication Publication Date Title
US9275717B2 (en) Refresh address generator, volatile memory device including the same and method of refreshing the volatile memory device
JP6181310B2 (ja) ハイブリッド・メモリ・モジュール用メモリの入出力を構成するための装置および方法
US9753849B2 (en) Methods for manufacturing and operating a memory device and a method for operating a system having the same
JP2010165165A (ja) メモリ装置及びメモリアクセス方法
JP2016514329A (ja) 可変レイテンシーメモリ動作用装置および方法
US20150325284A1 (en) Semiconductor apparatus capable of preventing refresh error and memory system using the same
KR102078562B1 (ko) 리프레쉬 어드레스 생성기 및 이를 포함하는 휘발성 메모리 장치
JP2014102867A (ja) 半導体記憶装置及びその制御方法
US10043587B2 (en) Apparatuses and methods including nested mode registers
US11625196B2 (en) Semiconductor memory device and operating method thereof
JP4889961B2 (ja) 半導体集積回路及びそのバーインテスト方法
US20180136844A1 (en) Arithmetic circuit and a semiconductor device
US10275187B2 (en) Memory device and data read method thereof
US20200211630A1 (en) Semiconductor devices
KR20180001681A (ko) 메모리 시스템, 이의 어드레스 맵핑 방법 및 억세스 방법
JP2009175904A (ja) マルチプロセッサ処理システム
US9230691B1 (en) Shared repair register for memory redundancy
JP6381673B2 (ja) 情報処理装置およびfpgaコンフィギュレーション方法
US10262737B2 (en) Semiconductor integrated circuit
JP2007172332A (ja) メモリ制御回路及びメモリ制御方法
JP2018160029A5 (ja)
JP6330150B2 (ja) 不揮発性半導体記憶装置とその書換方法
US20170308296A1 (en) Staging write requests
US8788893B2 (en) Semiconductor device and memory device
US10895998B2 (en) Controller and operating method thereof

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161114

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171128

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180703

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180731

R150 Certificate of patent or registration of utility model

Ref document number: 6381673

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees