説明

FPGAシステム及び電子機器

【課題】書き込まれているコンフィグレーションデータでビット誤りを検出した場合に、置換用のコンフィグレーションデータを取得するためのアクセスを行う機能を有するFPGAを用いても、システム全体が安定に動作するFPGAシステムを提供する。
【解決手段】FPGAシステム(10)のコンフィグレーションコントローラ(16)は、FPGA(18)にコンフィグレーションデータ(24a)を書き込むとともに、第2記憶装置(22)に置換用のコンフィグレーションデータ(26a)を書き込む。FPGA(18)は、書き込まれているコンフィグレーションデータ(24a)にビット誤りが生じた場合、コンフィグレーションコントローラ(16)を介して第2記憶装置(22)に保存されている置換用のコンフィグレーションデータ(26a)を取得し、取得した置換用のコンフィグレーションデータ(26a)により、ビット誤りを訂正する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、FPGAシステム、及び、FPGAシステムを備える電子機器に関するものである。
【背景技術】
【0002】
論理回路の書き換えが可能な論理デバイスであるFPGA(Field
Programmable Gate Array)は、種々の電子機器において用いられている。
FPGAを含むFPGAシステムの構成の一例として、FPGAと、コンフィグレーションデータを保存するフラッシュメモリとを、コンフィグレーションコントローラを介して接続する構成がある(例えば、特許文献1参照)。電源投入時などの起動時において、コンフィグレーションコントローラは、フラッシュメモリからコンフィグレーションデータを読み出し、FPGAに書き込む動作を行う。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2009−282927号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
FPGAには、書き込まれているコンフィグレーションデータでビット誤りを検出した場合、置換用のコンフィグレーションデータを取得するために、フラッシュメモリへアクセスしにいく機能を有するものがある。
上述したFPGAシステムにおいて、FPGAがフラッシュメモリへアクセスしにいく機能を有する場合、FPGAがフラッシュメモリへアクセスする動作と、CPU(中央演算処理装置)などの他の制御装置がフラッシュメモリへアクセスする動作とが衝突する可能性があり、システム全体の動作が不安定になるという問題がある。
本発明は上述した事情に基づいてなされ、その目的とするところは、書き込まれているコンフィグレーションデータでビット誤りを検出した場合に、置換用のコンフィグレーションデータを取得するためのアクセスを行う機能を有するFPGAを用いても、システム全体が安定に動作するFPGAシステムを提供することにある。
【課題を解決するための手段】
【0005】
上述した目的を達成するため、本発明の一態様によれば、FPGAと、前記FPGAに接続されたコンフィグレーションコントローラと、前記コンフィグレーションコントローラに接続され、コンフィグレーションデータと置換用のコンフィグレーションデータを保存する不揮発性の第1記憶装置と、前記コンフィグレーションコントローラに接続された第2記憶装置と、を備え、前記コンフィグレーションコントローラは、前記第1記憶装置に保存されている前記コンフィグレーションデータを前記FPGAに書き込むとともに、前記第1記憶装置に保存されている前記置換用のコンフィグレーションデータを前記第2記憶装置に書き込み、前記FPGAは、書き込まれている前記コンフィグレーションデータに発生したビット誤りを検出した場合、前記置換用のコンフィグレーションデータを取得するために、前記コンフィグレーションコントローラへアクセスし、前記コンフィグレーションコントローラは、前記第2記憶装置にアクセスし、前記置換用のコンフィグレーションデータを読み出して前記FPGAに送り、前記FPGAは、前記置換用のコンフィグレーションデータにより前記検出したビット誤りを訂正する、FPGAシステムが提供される。
【発明の効果】
【0006】
本発明は、書き込まれているコンフィグレーションデータでビット誤りを検出した場合に、置換用のコンフィグレーションデータを取得するためのアクセスを行う機能を有するFPGAを用いても、システム全体が安定に動作するFPGAシステムを提供する。
【図面の簡単な説明】
【0007】
【図1】電子機器に適用された一実施形態のFPGAシステムの概略的な構成を示すブロック図である。
【図2】図1のFPGAシステムの第1フラッシュメモリ及び第2フラッシュメモリに、別バーションのコンフィグレーションデータを保存した状態を示すブロック図である。
【発明を実施するための形態】
【0008】
以下、本発明の一実施形態のFPGAシステム10について説明する。
図1は、電子機器12に適用されたFPGAシステム10の概略的な構成を示している。電子機器12は例えばネットワーク中継装置である。
FPGAシステム10は、第1フラッシュメモリ14a、第2フラッシュメモリ14b、コンフィグレーションコントローラ16、FPGA18、CPU20、及び、SDRAM(Synchronous
Dynamic Random Access Memory)22を備える。
第1フラッシュメモリ14a、第2フラッシュメモリ14b、SDRAM22及びCPU20はそれぞれ、コンフィグレーションコントローラ16とパラレル配線により接続されている。コンフィグレーションコントローラ16とFPGA18は、シリアル配線により接続されている。CPU20は、第1フラッシュメモリ14a及び第2フラッシュメモリ14bと接続されている。
【0009】
〔第1フラッシュメモリ、第2フラッシュメモリ〕
第1フラッシュメモリ14a及び第2フラッシュメモリ14bは、不揮発性の記憶装置(第1記憶装置)であり、コンフィグレーションデータ(CGデータ)24a,24bと置換用のコンフィグレーションデータ(置換用CGデータ)26a,26bが保存される。
ここで、置換用のコンフィグレーションデータは、FPGA18がビット誤りを訂正する場合に用いられるものであり、部分的に置換可能な形式のデータである。
以下では、「コンフィグレーションデータ24a,24b」、「置換用のコンフィグレーションデータ26a,26b」を「コンフィグレーションデータ24」、「置換用のコンフィグレーションデータ26」ともいう。
【0010】
本実施形態では、コンフィグレーションデータを保存する2つのフラッシュメモリを設けることにより、コンフィグレーションデータの冗長化を行っている。通常時は第1フラッシュメモリ14aを使用し、第1フラッシュメモリ14aに障害が発生した場合、第2フラッシュメモリ14bを使用する。使用するフラッシュメモリの選択の制御は、CPU20が行う。なお、フラッシュメモリは1つ、又は、3つ以上であってもよい。
また、第1記憶装置は、フラッシュメモリに限定されず、その他の不揮発性のメモリであってもよい。
【0011】
〔FPGA〕
FPGAは、一般的にECC(Error Check and Correct Memory)機能を有し、ビット誤りが発生した場合、これを検出し、ECCの冗長ビットで訂正する。ECCで訂正できない多数のビット誤りが同時に発生した場合、これを検出するが、訂正することはできない。この場合、FPGAは、ビット誤りが発生した領域のみ、置換用データを外部から読み出して置き換える動作を行う。また、FPGAの使い方によっては、1ビットの誤りを置換用データの置き換えで訂正することも可能である。以下では、ビット誤りが発生した場合、FPGAは置換用データの置き換えで訂正するものとして、その動作を説明する。FPGAがECC機能を有する場合は、ECCで訂正できない多数のビット誤りが同時に発生したときに、同様の動作を行う。
FPGA18は、例えばSRAMベースのFPGAである。FPGA18は、電子機器12の起動の際、コンフィグレーションデータ24が書き込まれる。FPGA18は、論理回路部27を有し、論理回路部27は、コンフィグレーションデータ24によりコンフィグレーションされる。
【0012】
また、FPGA18は、CGデータ誤り検出部28及びCGデータ訂正部32を有する。
CGデータ誤り検出部28は、論理回路部27に書き込まれているコンフィグレーションデータ24にビット誤りが発生した場合、当該ビット誤りを検出する。
CGデータ訂正部32は、CGデータ誤り検出部28がビット誤りを検出した場合、置換用のコンフィグレーションデータ26を取得するために、コンフィグレーションコントローラ16へアクセスする。CGデータ訂正部32は、コンフィグレーションコントローラ16から置換用のコンフィグレーションデータ26を受け取ると、置換用のコンフィグレーションデータ26により、コンフィグレーションデータ24のビット誤りが発生した部分を置換して、検出したビット誤りを訂正する。
【0013】
〔SDRAM〕
SDRAM22は、書き換え可能な揮発性の記憶装置(第2記憶装置)である。SDRAM22には、置換用のコンフィグレーションデータ26が保存される。
第2記憶装置としては、SDRAM22を用いるのが好ましいが、保存した置換用のコンフィグレーションデータ26における誤り発生率がSDRAM22以下であれば、他の書き換え可能な揮発性の記憶装置を用いても良い。
【0014】
〔コンフィグレーションコントローラ〕
コンフィグレーションコントローラ16は、例えば集積回路によって構成される。
コンフィグレーションコントローラ16は、パラレル信号とシリアル信号とを変換する機能を有する。例えば、第1フラッシュメモリ14aからパラレル信号で読み出したコンフィグレーションデータ24aを、シリアル信号に変換して、FPGA18に送る。同様に、SDRAM22からパラレル信号で読み出した置換用のコンフィグレーションデータ26aを、シリアル信号に変換して、FPGA18に送る。
コンフィグレーションコントローラ16は、FPGA18から置換用のコンフィグレーションデータ26を取得するためのアクセスを受けた場合、SDRAM22へアクセスし、置換用のコンフィグレーションデータ26を読み出してFPGA18に送る動作を行う。
【0015】
〔CPU〕
CPU20は、コンフィグレーションコントローラ16、第1フラッシュメモリ14a及び第2フラッシュメモリ14bを制御する制御装置である。
CPU20は、ネットワーク等を通じて電子機器12の外部からコンフィグレーションデータ及び置換用のコンフィグレーションデータを取得すると、第1フラッシュメモリ14a及び第2フラッシュメモリ14bにそれぞれ保存する。コンフィグレーションデータ24aを別バージョンに更新する場合も、同様に、CPU20は、別バージョンのコンフィグレーションデータを第1フラッシュメモリ14a及び第2フラッシュメモリ14bにそれぞれ保存する。
【0016】
CPU20は、FPGAシステム10の起動時、コンフィグレーションコントローラ16を制御し、第1フラッシュメモリ14aに保存されているコンフィグレーションデータ24aをFPGA18に書き込ませる。これとともに、CPU20は、コンフィグレーションコントローラ16を制御し、第1フラッシュメモリ14aに保存されている置換用のコンフィグレーションデータ26aをSDRAM22に書き込ませる。なお、コンフィグレーションデータ24aをFPGA18に書き込み、置換用のコンフィグレーションデータ26aをSDRAM22に書き込む動作は、コンフィグレーションコントローラ16が、CPUの制御を受けず、自動的に行うことも可能である。
【0017】
以下、本実施形態のFPGAシステム10の動作を説明する。
[起動時の動作]
電子機器12に電源が投入されて、FPGAシステム10が起動すると、コンフィグレーションコントローラ16は、CPU20の制御を受けて又は自動的に、第1フラッシュメモリ14aに保存されているコンフィグレーションデータ24aをFPGA18の論理回路部27に書き込む。これとともに、コンフィグレーションコントローラ16は、第1フラッシュメモリ14aに保存されている置換用のコンフィグレーションデータ26aをSDRAM22に書き込む。
【0018】
[コンフィグレーションデータ訂正時の動作]
論理回路部27に書き込まれているコンフィグレーションデータ24aにビット誤りが発生した場合、FPGA18のCGデータ誤り検出部28は発生したビット誤りを検出する。CGデータ誤り検出部28がビット誤りを検出すると、FPGA18のCGデータ訂正部32は、置換用のコンフィグレーションデータ26を取得するために、コンフィグレーションコントローラ16へアクセスする。
コンフィグレーションコントローラ16は、FPGA18から置換用のコンフィグレーションデータ26を取得するためのアクセスを受けると、SDRAM22へアクセスし、置換用のコンフィグレーションデータ26aを読み出し、読み出した置換用のコンフィグレーションデータ26aをFPGA18へ送る。
FPGA18のCGデータ訂正部32は、コンフィグレーションコントローラ16から置換用のコンフィグレーションデータ26aを受け取ると、置換用のコンフィグレーションデータ26aを用いて、コンフィグレーションデータ24aのビット誤りが発生した部分を置換して訂正する。
【0019】
上述した一実施形態のFPGAシステム10においては、コンフィグレーションコントローラ16は、FPGA18から置換用のコンフィグレーションデータ26を取得するためのアクセスを受けると、SDRAM22へアクセスして置換用のコンフィグレーションデータ26を読み出す動作を行う。したがって、書き込まれているコンフィグレーションデータ24に発生したビット誤りをFPGA18が訂正する場合、コンフィグレーションコントローラ16は、第1フラッシュメモリ14a及び第2フラッシュメモリ14bにアクセスしない。
【0020】
このため、FPGAがフラッシュメモリへアクセスする動作と、CPUなどの他の制御装置がフラッシュメモリへアクセスする動作とが衝突する可能性はない。この結果として、書き込まれているコンフィグレーションデータでビット誤りを検出した場合に、置換用のコンフィグレーションデータを取得するためのアクセスを行う機能を有するFPGAを用いても、FPGAシステムは、システム全体で安定に動作することができる。
【0021】
図2は、コンフィグレーションデータ(ver.A)24aをFPGA18の論理回路部27に書き込んで起動したのちに、コンフィグレーションデータを更新するために、第1フラッシュメモリ14aと第2フラッシュメモリ14bにコンフィグレーションデータ(ver.B)24a,24b及び置換用のコンフィグレーションデータ(ver.B)26a,26bを保存した場合の図である。
上述した一実施形態のFPGAシステム10においては、図2に示したように、第1フラッシュメモリ14aと第2フラッシュメモリ14bに保存されているコンフィグレーションデータが更新された場合であっても、FPGA18が論理回路部27に書き込まれているコンフィグレーションデータ(ver.A)24aに発生したビット誤りを訂正する場合、SDRAM22に保存されている同じバージョンの置換用のコンフィグレーションデータ(ver.A)26aを用いて、ビット誤りを訂正する。これにより、別バージョンの置換用のコンフィグレーションデータ26b(ver.B)を用いて、誤りを訂正することによるFPGA18の動作不良を防止することができる。
【0022】
本発明は、上述した一実施形態に限定されることはなく、上述した一実施形態に変更を加えた形態も含む。
例えば、置換用のコンフィグレーションデータとしてコンフィグレーションデータを用いてもよい。この場合、第1及び第2フラッシュメモリ14a,14bには、置換用のコンフィグレーションデータ26a,26bを省いて、コンフィグレーションデータ24a,24bのみを保存する。コンフィグレーションコントローラ16は、SDRAM22に、置換用のコンフィグレーションデータ26aとして、フラッシュメモリに保存されているコンフィグレーションデータ24aを保存する。
【符号の説明】
【0023】
10 FPGAシステム
14a 第1フラッシュメモリ(第1記憶装置)
14b 第2フラッシュメモリ(第1記憶装置)
16 コンフィグレーションコントローラ
18 FPGA
20 CPU
22 SDRAM(第2記憶装置)
24a コンフィグレーションデータ
26a 置換用のコンフィグレーションデータ
28 CGデータ誤り検出部
32 CGデータ訂正部


【特許請求の範囲】
【請求項1】
FPGAと、
前記FPGAに接続されたコンフィグレーションコントローラと、
前記コンフィグレーションコントローラに接続され、コンフィグレーションデータと置換用のコンフィグレーションデータを保存する不揮発性の第1記憶装置と、
前記コンフィグレーションコントローラに接続された第2記憶装置と、
を備え、
前記コンフィグレーションコントローラは、前記第1記憶装置に保存されている前記コンフィグレーションデータを前記FPGAに書き込むとともに、前記第1記憶装置に保存されている前記置換用のコンフィグレーションデータを前記第2記憶装置に書き込み、
前記FPGAは、書き込まれている前記コンフィグレーションデータに発生したビット誤りを検出した場合、前記置換用のコンフィグレーションデータを取得するために、前記コンフィグレーションコントローラへアクセスし、前記コンフィグレーションコントローラは、前記第2記憶装置にアクセスし、前記置換用のコンフィグレーションデータを読み出して前記FPGAに送り、前記FPGAは、前記置換用のコンフィグレーションデータにより前記検出したビット誤りを訂正する、
FPGAシステム。
【請求項2】
前記置換用のコンフィグレーションデータとして前記コンフィグレーションデータを用いる、
請求項1に記載のFPGAシステム。
【請求項3】
前記第1記憶装置はフラッシュメモリからなり、
前記第2記憶装置はSDRAMからなる、
請求項2に記載のFPGAシステム。
【請求項4】
請求項1乃至3の何れか一項に記載のFPGAシステムを備える電子機器。


【図1】
image rotate

【図2】
image rotate