(57)【特許請求の範囲】
【請求項１】
ＦＰＧＡと、
前記ＦＰＧＡに接続されたコンフィグレーションコントローラと、
前記コンフィグレーションコントローラに接続され、コンフィグレーションデータと置換用のコンフィグレーションデータを保存する不揮発性の第１記憶装置と、
前記コンフィグレーションコントローラに接続された第２記憶装置と、
を備え、
前記コンフィグレーションコントローラは、前記第１記憶装置に保存されている前記コンフィグレーションデータを前記ＦＰＧＡに書き込むとともに、前記第１記憶装置に保存されている前記置換用のコンフィグレーションデータを前記第２記憶装置に書き込み、
前記ＦＰＧＡは、書き込まれている前記コンフィグレーションデータに発生したビット誤りを検出した場合、前記置換用のコンフィグレーションデータを取得するために、前記コンフィグレーションコントローラへアクセスし、前記コンフィグレーションコントローラは、前記第２記憶装置にアクセスし、前記置換用のコンフィグレーションデータを読み出して前記ＦＰＧＡに送り、前記ＦＰＧＡは、前記置換用のコンフィグレーションデータにより前記検出したビット誤りを訂正する、
ＦＰＧＡシステム。
【請求項２】
前記置換用のコンフィグレーションデータとして前記コンフィグレーションデータを用いる、
請求項１に記載のＦＰＧＡシステム。
【請求項３】
前記第１記憶装置はフラッシュメモリからなり、
前記第２記憶装置はＳＤＲＡＭからなる、
請求項２に記載のＦＰＧＡシステム。
【請求項４】
請求項１乃至３の何れか一項に記載のＦＰＧＡシステムを備える電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＦＰＧＡシステム、及び、ＦＰＧＡシステムを備える電子機器に関するものである。
【背景技術】
【０００２】
論理回路の書き換えが可能な論理デバイスであるＦＰＧＡ（Ｆｉｅｌｄ
Ｐｒｏｇｒａｍｍａｂｌｅ Ｇａｔｅ Ａｒｒａｙ）は、種々の電子機器において用いられている。
ＦＰＧＡを含むＦＰＧＡシステムの構成の一例として、ＦＰＧＡと、コンフィグレーションデータを保存するフラッシュメモリとを、コンフィグレーションコントローラを介して接続する構成がある（例えば、特許文献１参照）。電源投入時などの起動時において、コンフィグレーションコントローラは、フラッシュメモリからコンフィグレーションデータを読み出し、ＦＰＧＡに書き込む動作を行う。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−２８２９２７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＦＰＧＡには、書き込まれているコンフィグレーションデータでビット誤りを検出した場合、置換用のコンフィグレーションデータを取得するために、フラッシュメモリへアクセスしにいく機能を有するものがある。
上述したＦＰＧＡシステムにおいて、ＦＰＧＡがフラッシュメモリへアクセスしにいく機能を有する場合、ＦＰＧＡがフラッシュメモリへアクセスする動作と、ＣＰＵ（中央演算処理装置）などの他の制御装置がフラッシュメモリへアクセスする動作とが衝突する可能性があり、システム全体の動作が不安定になるという問題がある。
本発明は上述した事情に基づいてなされ、その目的とするところは、書き込まれているコンフィグレーションデータでビット誤りを検出した場合に、置換用のコンフィグレーションデータを取得するためのアクセスを行う機能を有するＦＰＧＡを用いても、システム全体が安定に動作するＦＰＧＡシステムを提供することにある。
【課題を解決するための手段】
【０００５】
上述した目的を達成するため、本発明の一態様によれば、ＦＰＧＡと、前記ＦＰＧＡに接続されたコンフィグレーションコントローラと、前記コンフィグレーションコントローラに接続され、コンフィグレーションデータと置換用のコンフィグレーションデータを保存する不揮発性の第１記憶装置と、前記コンフィグレーションコントローラに接続された第２記憶装置と、を備え、前記コンフィグレーションコントローラは、前記第１記憶装置に保存されている前記コンフィグレーションデータを前記ＦＰＧＡに書き込むとともに、前記第１記憶装置に保存されている前記置換用のコンフィグレーションデータを前記第２記憶装置に書き込み、前記ＦＰＧＡは、書き込まれている前記コンフィグレーションデータに発生したビット誤りを検出した場合、前記置換用のコンフィグレーションデータを取得するために、前記コンフィグレーションコントローラへアクセスし、前記コンフィグレーションコントローラは、前記第２記憶装置にアクセスし、前記置換用のコンフィグレーションデータを読み出して前記ＦＰＧＡに送り、前記ＦＰＧＡは、前記置換用のコンフィグレーションデータにより前記検出したビット誤りを訂正する、ＦＰＧＡシステムが提供される。
【発明の効果】
【０００６】
本発明は、書き込まれているコンフィグレーションデータでビット誤りを検出した場合に、置換用のコンフィグレーションデータを取得するためのアクセスを行う機能を有するＦＰＧＡを用いても、システム全体が安定に動作するＦＰＧＡシステムを提供する。
【図面の簡単な説明】
【０００７】
【図１】電子機器に適用された一実施形態のＦＰＧＡシステムの概略的な構成を示すブロック図である。
【図２】図１のＦＰＧＡシステムの第１フラッシュメモリ及び第２フラッシュメモリに、別バーションのコンフィグレーションデータを保存した状態を示すブロック図である。
【発明を実施するための形態】
【０００８】
以下、本発明の一実施形態のＦＰＧＡシステム１０について説明する。
図１は、電子機器１２に適用されたＦＰＧＡシステム１０の概略的な構成を示している。電子機器１２は例えばネットワーク中継装置である。
ＦＰＧＡシステム１０は、第１フラッシュメモリ１４ａ、第２フラッシュメモリ１４ｂ、コンフィグレーションコントローラ１６、ＦＰＧＡ１８、ＣＰＵ２０、及び、ＳＤＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ
Ｄｙｎａｍｉｃ Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）２２を備える。
第１フラッシュメモリ１４ａ、第２フラッシュメモリ１４ｂ、ＳＤＲＡＭ２２及びＣＰＵ２０はそれぞれ、コンフィグレーションコントローラ１６とパラレル配線により接続されている。コンフィグレーションコントローラ１６とＦＰＧＡ１８は、シリアル配線により接続されている。ＣＰＵ２０は、第１フラッシュメモリ１４ａ及び第２フラッシュメモリ１４ｂと接続されている。
【０００９】
〔第１フラッシュメモリ、第２フラッシュメモリ〕
第１フラッシュメモリ１４ａ及び第２フラッシュメモリ１４ｂは、不揮発性の記憶装置（第１記憶装置）であり、コンフィグレーションデータ（ＣＧデータ）２４ａ，２４ｂと置換用のコンフィグレーションデータ（置換用ＣＧデータ）２６ａ，２６ｂが保存される。
ここで、置換用のコンフィグレーションデータは、ＦＰＧＡ１８がビット誤りを訂正する場合に用いられるものであり、部分的に置換可能な形式のデータである。
以下では、「コンフィグレーションデータ２４ａ，２４ｂ」、「置換用のコンフィグレーションデータ２６ａ，２６ｂ」を「コンフィグレーションデータ２４」、「置換用のコンフィグレーションデータ２６」ともいう。
【００１０】
本実施形態では、コンフィグレーションデータを保存する２つのフラッシュメモリを設けることにより、コンフィグレーションデータの冗長化を行っている。通常時は第１フラッシュメモリ１４ａを使用し、第１フラッシュメモリ１４ａに障害が発生した場合、第２フラッシュメモリ１４ｂを使用する。使用するフラッシュメモリの選択の制御は、ＣＰＵ２０が行う。なお、フラッシュメモリは１つ、又は、３つ以上であってもよい。
また、第１記憶装置は、フラッシュメモリに限定されず、その他の不揮発性のメモリであってもよい。
【００１１】
〔ＦＰＧＡ〕
ＦＰＧＡは、一般的にＥＣＣ（Ｅｒｒｏｒ Ｃｈｅｃｋ ａｎｄ Ｃｏｒｒｅｃｔ Ｍｅｍｏｒｙ）機能を有し、ビット誤りが発生した場合、これを検出し、ＥＣＣの冗長ビットで訂正する。ＥＣＣで訂正できない多数のビット誤りが同時に発生した場合、これを検出するが、訂正することはできない。この場合、ＦＰＧＡは、ビット誤りが発生した領域のみ、置換用データを外部から読み出して置き換える動作を行う。また、ＦＰＧＡの使い方によっては、１ビットの誤りを置換用データの置き換えで訂正することも可能である。以下では、ビット誤りが発生した場合、ＦＰＧＡは置換用データの置き換えで訂正するものとして、その動作を説明する。ＦＰＧＡがＥＣＣ機能を有する場合は、ＥＣＣで訂正できない多数のビット誤りが同時に発生したときに、同様の動作を行う。
ＦＰＧＡ１８は、例えばＳＲＡＭベースのＦＰＧＡである。ＦＰＧＡ１８は、電子機器１２の起動の際、コンフィグレーションデータ２４が書き込まれる。ＦＰＧＡ１８は、論理回路部２７を有し、論理回路部２７は、コンフィグレーションデータ２４によりコンフィグレーションされる。
【００１２】
また、ＦＰＧＡ１８は、ＣＧデータ誤り検出部２８及びＣＧデータ訂正部３２を有する。
ＣＧデータ誤り検出部２８は、論理回路部２７に書き込まれているコンフィグレーションデータ２４にビット誤りが発生した場合、当該ビット誤りを検出する。
ＣＧデータ訂正部３２は、ＣＧデータ誤り検出部２８がビット誤りを検出した場合、置換用のコンフィグレーションデータ２６を取得するために、コンフィグレーションコントローラ１６へアクセスする。ＣＧデータ訂正部３２は、コンフィグレーションコントローラ１６から置換用のコンフィグレーションデータ２６を受け取ると、置換用のコンフィグレーションデータ２６により、コンフィグレーションデータ２４のビット誤りが発生した部分を置換して、検出したビット誤りを訂正する。
【００１３】
〔ＳＤＲＡＭ〕
ＳＤＲＡＭ２２は、書き換え可能な揮発性の記憶装置（第２記憶装置）である。ＳＤＲＡＭ２２には、置換用のコンフィグレーションデータ２６が保存される。
第２記憶装置としては、ＳＤＲＡＭ２２を用いるのが好ましいが、保存した置換用のコンフィグレーションデータ２６における誤り発生率がＳＤＲＡＭ２２以下であれば、他の書き換え可能な揮発性の記憶装置を用いても良い。
【００１４】
〔コンフィグレーションコントローラ〕
コンフィグレーションコントローラ１６は、例えば集積回路によって構成される。
コンフィグレーションコントローラ１６は、パラレル信号とシリアル信号とを変換する機能を有する。例えば、第１フラッシュメモリ１４ａからパラレル信号で読み出したコンフィグレーションデータ２４ａを、シリアル信号に変換して、ＦＰＧＡ１８に送る。同様に、ＳＤＲＡＭ２２からパラレル信号で読み出した置換用のコンフィグレーションデータ２６ａを、シリアル信号に変換して、ＦＰＧＡ１８に送る。
コンフィグレーションコントローラ１６は、ＦＰＧＡ１８から置換用のコンフィグレーションデータ２６を取得するためのアクセスを受けた場合、ＳＤＲＡＭ２２へアクセスし、置換用のコンフィグレーションデータ２６を読み出してＦＰＧＡ１８に送る動作を行う。
【００１５】
〔ＣＰＵ〕
ＣＰＵ２０は、コンフィグレーションコントローラ１６、第１フラッシュメモリ１４ａ及び第２フラッシュメモリ１４ｂを制御する制御装置である。
ＣＰＵ２０は、ネットワーク等を通じて電子機器１２の外部からコンフィグレーションデータ及び置換用のコンフィグレーションデータを取得すると、第１フラッシュメモリ１４ａ及び第２フラッシュメモリ１４ｂにそれぞれ保存する。コンフィグレーションデータ２４ａを別バージョンに更新する場合も、同様に、ＣＰＵ２０は、別バージョンのコンフィグレーションデータを第１フラッシュメモリ１４ａ及び第２フラッシュメモリ１４ｂにそれぞれ保存する。
【００１６】
ＣＰＵ２０は、ＦＰＧＡシステム１０の起動時、コンフィグレーションコントローラ１６を制御し、第１フラッシュメモリ１４ａに保存されているコンフィグレーションデータ２４ａをＦＰＧＡ１８に書き込ませる。これとともに、ＣＰＵ２０は、コンフィグレーションコントローラ１６を制御し、第１フラッシュメモリ１４ａに保存されている置換用のコンフィグレーションデータ２６ａをＳＤＲＡＭ２２に書き込ませる。なお、コンフィグレーションデータ２４ａをＦＰＧＡ１８に書き込み、置換用のコンフィグレーションデータ２６ａをＳＤＲＡＭ２２に書き込む動作は、コンフィグレーションコントローラ１６が、ＣＰＵの制御を受けず、自動的に行うことも可能である。
【００１７】
以下、本実施形態のＦＰＧＡシステム１０の動作を説明する。
［起動時の動作］
電子機器１２に電源が投入されて、ＦＰＧＡシステム１０が起動すると、コンフィグレーションコントローラ１６は、ＣＰＵ２０の制御を受けて又は自動的に、第１フラッシュメモリ１４ａに保存されているコンフィグレーションデータ２４ａをＦＰＧＡ１８の論理回路部２７に書き込む。これとともに、コンフィグレーションコントローラ１６は、第１フラッシュメモリ１４ａに保存されている置換用のコンフィグレーションデータ２６ａをＳＤＲＡＭ２２に書き込む。
【００１８】
［コンフィグレーションデータ訂正時の動作］
論理回路部２７に書き込まれているコンフィグレーションデータ２４ａにビット誤りが発生した場合、ＦＰＧＡ１８のＣＧデータ誤り検出部２８は発生したビット誤りを検出する。ＣＧデータ誤り検出部２８がビット誤りを検出すると、ＦＰＧＡ１８のＣＧデータ訂正部３２は、置換用のコンフィグレーションデータ２６を取得するために、コンフィグレーションコントローラ１６へアクセスする。
コンフィグレーションコントローラ１６は、ＦＰＧＡ１８から置換用のコンフィグレーションデータ２６を取得するためのアクセスを受けると、ＳＤＲＡＭ２２へアクセスし、置換用のコンフィグレーションデータ２６ａを読み出し、読み出した置換用のコンフィグレーションデータ２６ａをＦＰＧＡ１８へ送る。
ＦＰＧＡ１８のＣＧデータ訂正部３２は、コンフィグレーションコントローラ１６から置換用のコンフィグレーションデータ２６ａを受け取ると、置換用のコンフィグレーションデータ２６ａを用いて、コンフィグレーションデータ２４ａのビット誤りが発生した部分を置換して訂正する。
【００１９】
上述した一実施形態のＦＰＧＡシステム１０においては、コンフィグレーションコントローラ１６は、ＦＰＧＡ１８から置換用のコンフィグレーションデータ２６を取得するためのアクセスを受けると、ＳＤＲＡＭ２２へアクセスして置換用のコンフィグレーションデータ２６を読み出す動作を行う。したがって、書き込まれているコンフィグレーションデータ２４に発生したビット誤りをＦＰＧＡ１８が訂正する場合、コンフィグレーションコントローラ１６は、第１フラッシュメモリ１４ａ及び第２フラッシュメモリ１４ｂにアクセスしない。
【００２０】
このため、ＦＰＧＡがフラッシュメモリへアクセスする動作と、ＣＰＵなどの他の制御装置がフラッシュメモリへアクセスする動作とが衝突する可能性はない。この結果として、書き込まれているコンフィグレーションデータでビット誤りを検出した場合に、置換用のコンフィグレーションデータを取得するためのアクセスを行う機能を有するＦＰＧＡを用いても、ＦＰＧＡシステムは、システム全体で安定に動作することができる。
【００２１】
図２は、コンフィグレーションデータ（ｖｅｒ．Ａ）２４ａをＦＰＧＡ１８の論理回路部２７に書き込んで起動したのちに、コンフィグレーションデータを更新するために、第１フラッシュメモリ１４ａと第２フラッシュメモリ１４ｂにコンフィグレーションデータ（ｖｅｒ．Ｂ）２４ａ，２４ｂ及び置換用のコンフィグレーションデータ（ｖｅｒ．Ｂ）２６ａ，２６ｂを保存した場合の図である。
上述した一実施形態のＦＰＧＡシステム１０においては、図２に示したように、第１フラッシュメモリ１４ａと第２フラッシュメモリ１４ｂに保存されているコンフィグレーションデータが更新された場合であっても、ＦＰＧＡ１８が論理回路部２７に書き込まれているコンフィグレーションデータ（ｖｅｒ．Ａ）２４ａに発生したビット誤りを訂正する場合、ＳＤＲＡＭ２２に保存されている同じバージョンの置換用のコンフィグレーションデータ（ｖｅｒ．Ａ）２６ａを用いて、ビット誤りを訂正する。これにより、別バージョンの置換用のコンフィグレーションデータ２６ｂ（ｖｅｒ．Ｂ）を用いて、誤りを訂正することによるＦＰＧＡ１８の動作不良を防止することができる。
【００２２】
本発明は、上述した一実施形態に限定されることはなく、上述した一実施形態に変更を加えた形態も含む。
例えば、置換用のコンフィグレーションデータとしてコンフィグレーションデータを用いてもよい。この場合、第１及び第２フラッシュメモリ１４ａ，１４ｂには、置換用のコンフィグレーションデータ２６ａ，２６ｂを省いて、コンフィグレーションデータ２４ａ，２４ｂのみを保存する。コンフィグレーションコントローラ１６は、ＳＤＲＡＭ２２に、置換用のコンフィグレーションデータ２６ａとして、フラッシュメモリに保存されているコンフィグレーションデータ２４ａを保存する。
【符号の説明】
【００２３】
１０            ＦＰＧＡシステム
１４ａ          第１フラッシュメモリ（第１記憶装置）
１４ｂ          第２フラッシュメモリ（第１記憶装置）
１６            コンフィグレーションコントローラ
１８            ＦＰＧＡ
２０            ＣＰＵ
２２            ＳＤＲＡＭ（第２記憶装置）
２４ａ          コンフィグレーションデータ
２６ａ          置換用のコンフィグレーションデータ
２８            ＣＧデータ誤り検出部
３２            ＣＧデータ訂正部
【図１】
0005652720.tif 000002
【図２】
0005652720.tif 000003