説明

FPGA、FPGAを用いた回路再構成システム、方法およびプログラム

【課題】回路の一部に不具合が生じて新たな回路を同一基板内に再構成する場合に、この新たな回路との関係で伝送される信号のタイミングに不具合が生じないようにすることが可能なFPGA、FPGAを用いた回路再構成システム、方法およびプログラムを得ること。
【解決手段】回路ブロック監視手段12が回路ブロックを構成する論理部に不具合があることを検出すると、これに代わる新しい回路ブロックを構成するとき最適化処理実行手段13は論理部同士を接続する接続部による信号の伝達タイミングを前の回路ブロックの接続部と可能な限り同一になるように最適化する。回路ブロック交代手段14は新しい回路ブロックの運用を開始させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、FPGA、FPGAを用いた回路再構成システム、FPGAを用いた回路再構成方法およびFPGAを用いた回路再構成プログラムに関する。
【背景技術】
【0002】
各種の電子装置の小型化の要請は強く、基板の実装面積が制限される傾向にある。このような状況の下で、FPGA(Field Programmable Gate Array)を使用してこれに論理設計を施すことによって回路規模を縮小することが有望視されている。FPGAは、柔軟な設計が容易であり、装置の重要な機能部分から雑多な各種の機能部分までの多くの機能部分を実現することができる。
【0003】
このようなFPGAの優れた特徴は、時として電子装置に致命傷をもたらす場合がある。装置の比較的重要な機能部分が不具合を起こした場合はもちろんのこと、雑多な機能部分の一部に不具合を生じた場合であっても、これらの機能部分を構成するFPGAの故障とされることになる場合があるからである。
【0004】
信頼性を要求される電子装置では、使用する基板を冗長化して、故障が発生した時にもシステムの二重化により電子装置の運用を継続する手法を採っている。このような二重化を採用しない電子装置では、FPGAで発生した不具合によって装置の運用が停止してしまう可能性がある。このような場合で装置の運用が停止した際には、FPGAを搭載した基板を交換することで復旧が可能である。しかしながら復旧作業までの時間が無駄になるのと作業者の人件費が掛かるという問題が生じる。
【0005】
このような問題を生じさせないために電子装置に内蔵する基板に同一のFPGAを複数配置して、FPGAの二重化を行うことも検討されている。しかしながら、同一のFPGAを複数配置することは基板の大型化を招くだけでなく、電子装置のコストアップに繋がるおそれがある。
【0006】
そこで、本発明に関連する関連技術として、部分再構成(パーシャルリコンフィグレーション)可能なFPGAを使用することが提案されている(たとえば特許文献1、特許文献2参照)。
【0007】
図11は、本発明の関連技術の1つとして図示しない基板に搭載されたFPGAの機能的な構成を表わしたものである。FPGA100は、回路的に常時機能する常時動作部分101と、それ以外の領域としての空きリソース分102に分けられる。空きリソース分102には、電子装置の設計者が任意の回路部分を構成することができる。図11に示した例では、空きリソース分102の一部に、第1〜第3の静的再構成部分1031〜1033を構成している。ここで静的再構成部分1031〜1033とは、入出力される信号のタイミングを特に考慮することなく回路部品を組み合わせることで構成した回路をいう。図11に示した例では、第1の静的再構成部分1031に信号が入力され、第3の静的再構成部分1033まで順次信号処理が行われ、第3の静的再構成部分1033から処理結果が出力されるようになっている。
【0008】
第1〜第3の静的再構成部分1031〜1033のそれぞれは、他の一般の回路と同様であるが、何らかの原因で信号処理に不具合を発生させる可能性がある。そこで、空きリソース分102には、第1〜第3の静的再構成部分1031〜1033のいずれかに不具合が発生したときの検出を行う監視用に第1〜第3の監視部1041〜1043が設けられている。
【0009】
更に空きリソース分102には、第1〜第3の静的再構成部分1031〜1033のいずれかに不具合が検出された場合に備えて第1〜第3の静的再構成可能領域1051〜1053が用意されている。第1〜第3の静的再構成可能領域1051〜1053は、予備として設けられた領域である。したがって、第1〜第3の静的再構成部分1031〜1033に何ら不具合が発生していない状態で具体的な回路として動作するものではない。
【0010】
図12は、本発明の関連技術で第1の静的再構成可能領域に不具合が発生したときのFPGAの回路構成の変化の様子を示したものである。第1の静的再構成部分1031に不具合が発生すると、第1の監視部1041がこれを検出する。すると、常時動作部分101がこの検出結果を基にして、不具合を生じた第1の静的再構成部分1031に代わる回路部分を第1の静的再構成可能領域1051に構成する。そして、矢印111で示すように、第1の静的再構成可能領域1051を第1の静的再構成部分1031の代わりの回路部分として切り替える。
【0011】
この結果、たとえば第1〜第3の静的再構成部分1031〜1033を順に経るようにした信号処理は、第1の静的再構成可能領域1051、第2、第3の静的再構成部分1032、1033を順に経る信号処理に変更される。このようにFPGA100の一部の回路に不具合が発生しても、FPGA100の全体としてはシステムダウンを生じることなく運用が継続可能になる。
【0012】
しかしながら、空きリソース分102とされる領域に故障機能を再構成すると、再構成した機能部以降の回路部分が十分な能力を発揮できないことがある。これは、たとえば再構成された機能部が原因して、最適化された内部クロックのタイミングや出力ディレイに誤差が生じる場合があるからである。
【0013】
図13〜図15を用いて関連技術による問題を説明する。図13(A)で第1〜第3の論理部121〜123は、図11における第1〜第3の静的再構成部分1031〜1033にそれぞれ対応する回路部分である。第1〜第3の論理部121〜123は、FPGA120を構成する図示しない多数の回路部品の中から部品を適宜組み合わせることで構成する。
【0014】
第1〜第3の論理部121〜123には、それぞれ内部クロック124が供給される。第1の論理部121には、信号125が供給され、所定の処理が行われた結果として信号126を出力する。信号126は第2の論理部122の入力となる。第2の論理部122は信号127を出力する。信号127は第3の論理部123の入力となる。第3の論理部123は信号128を出力する。
【0015】
FPGA120内の第1〜第3の再構成可能部131〜133は、図11における第1〜第3の静的再構成可能領域1051〜1053にそれぞれ対応する回路部分である。図13(A)は第1〜第3の論理部121〜123にいずれも不具合が発生していない状態を示している。したがって、第1〜第3の再構成可能部131〜133のいずれにも内部クロックの供給はなく、処理すべき信号の入出力も存在しない。
【0016】
なお、図13(A)で第1の論理部121と第2の論理部121の間の信号126が伝送される伝送路および第2の論理部122と第3の論理部123の間の信号127が伝送される伝送路は、配線等の良導体で構成され、かつ短い道のりとなっているものと仮定している。したがって、たとえば第1の論理部121から出力される信号も第2の論理部122に入力される信号も電気的な特性は同一なものとして扱うことができるので、これらを特に区別せず信号126として表わしている。信号127についても同様である。
【0017】
図13(B)は、第1〜第3の論理部が正常に動作しているときの第1および第2の論理部の接続箇所における動作タイミングを表わしたものである。同図(イ)に示すように第2の論理部122には所定の周期の内部クロック124が供給されている。同図(イ)および(ロ)に示すように第1の論理部121から出力される信号126のほぼ中央位置で、内部クロック124が立ち上がる。したがって、内部クロック124の立ち上がりに同期して第2の論理部122が信号126を入力することで、信号126の入力処理が安定する。
【0018】
図14は、FPGA120内の第1の論理部121で何らかの不具合が発生した直後の状態を示したものである。不具合発生の直後のため、同図(A)および同図(B)には特に変化が生じていない。
【0019】
図15は、不具合の生じた第1の論理部に代わって第1の再構成論理部が処理を開始したときの回路の構成とその動作を示したものである。第1の論理部121が不具合によって使用できなくなると、同図(A)の矢印140で示すように第1の再構成可能部131が第1の再構成論理部として構成される。そして、FPGA120における端子間の接続情報のデータを表わしたネットリスト(図示せず)が変更されると、第1の論理部121に入力していた信号125が第1の再構成論理部131に入力先を変更される。
【0020】
この結果、第1の再構成論理部131から信号141が新たに出力される。この信号141は、図14の例の場合と比較して「余計に存在する」伝送路部分142を経てその特性を変化させ、信号143として第2の論理部122に入力することになる。
【0021】
図15(B)は、図15(A)に示した回路変更が行われた後の第1の再構成論理部と第2の論理部の接続箇所における動作タイミングを表わしたものである。同図(イ)に示すように第1の再構成論理部131に入力される内部クロック124は第1の論理部121に入力していたものと同一である。したがって、第1の再構成論理部131自体が第1の論理部121と厳密に同一の特性の論理部として再構成されているとすると、同図(ロ)に示すように信号141は図14(B)に示した信号126と全く同一のタイミングで第1の再構成論理部131から出力されることになる。
【先行技術文献】
【特許文献】
【0022】
【特許文献1】特開2001−136058号公報(第0012段落、第0013段落、図1)
【特許文献2】特開2009−140353号公報(第0033段落〜第0041段落、図1〜図3)
【発明の概要】
【発明が解決しようとする課題】
【0023】
しかしながら、第1の再構成論理部131はFPGA120における第1の論理部121の構成されていた場所とは異なった場所に構成される。このため、第1の再構成論理部131の出力側と第2の論理部122の入力側を結ぶ「余計に存在する」伝送路部分142の長さやそれを構成する回路部品が信号の伝送のタイミングに影響する。この結果、たとえば図15(B)の(ロ)および(ハ)に示すように第2の論理部122に入力される信号143は信号141が、たとえば内部クロック124の半周期分だけ遅延したものとなる。
【0024】
もちろん、実際には第1の再構成論理部131と第2の論理部121の間の伝送路の方が回路構成が単純である等の理由があって、第1の論理部121と第2の論理部121の間の伝送路の方が遅延をより生じる場合もある。しかしながらこの場合でも伝送経路の違いによって両伝送路の間に信号の伝達時間の違いが生じ得る点は同一である。したがって、ここでは図15(B)の(ハ)に示すような量の遅延が信号143に生じたものとする。
【0025】
信号143の遅延の程度によっては、第2の論理部122の取り込みに誤動作を生じやすくなる。これが第3の論理部123から出力される信号128の不正の要因となる。同様のことが第2の論理部122や第3の論理部123を第2の再構成論理部132あるいは第3の再構成論理部133に切り替えたときにも生じうる。
【0026】
以上、3つの論理部で1つの回路を構成する場合を説明したが、1つの回路を構成する論理部の数に関係なく同様の問題が発生する。すなわち、1つ1つの論理部を回路的には同一種類の回路部品を組み合わせて同一の特性の回路として構成しても、これらを接続する伝送路が導線のみで構成されるとは限らず、スイッチング素子等のタイミングをずらすおそれのある回路部品が介在する可能性がある。したがって、たとえば論理部同士を接続する伝送経路が異なってくると、信号の伝達するタイミングが異なってくる可能性があり、FPGAを使用した装置に誤動作を生じさせる原因となる。
【0027】
そこで本発明の目的は、回路の一部に不具合が生じて新たな回路を同一基板内に再構成する場合に、この新たな回路との関係で伝送される信号のタイミングに不具合が生じないようにすることが可能なFPGA、FPGAを用いた回路再構成システム、FPGAを用いた回路再構成方法およびFPGAを用いた回路再構成プログラムを提供することにある。
【課題を解決するための手段】
【0028】
本発明では、(イ)同一基板上の特定領域に形成された多数の回路部品の中から適宜選択して組み合わせることでそれぞれ所望の特性の論理回路として機能する幾つかの論理部を構成すると共に、前記した多数の回路部品の中から前記した論理部の間を電気的に接続するための部品としての接続部を構成することで、それぞれひとまとまりの回路機能を有する回路ブロックを所望の数だけ初期的に構成する回路ブロック初期構成手段と、(ロ)この回路ブロック初期構成手段で構成したそれぞれの回路ブロックが運用中のときにこれらの動作を監視して不具合の生じた論理部を含む回路ブロックを検出する回路ブロック監視手段と、(ハ)この回路ブロック監視手段によって不具合の生じた論理部を含む回路ブロックが検出されたときその回路ブロックを構成する前記した論理部のそれぞれと回路としての特性が同一の新たな論理部と前記した接続部と信号の伝達するタイミングが可能な限り同一となる新たな接続部とを備えた回路ブロックを前記した特定領域に形成された多数の回路部品の中の未使用部分から最適化処理によって構成する最適化処理実行手段と、(ニ)この最適化処理実行手段によって構成した新しい回路ブロックを前記した回路ブロック監視手段で不具合の生じた論理部を含む回路ブロックと交代させて新たな運用を開始させる回路ブロック交代手段とをFPGA(Field Programmable Gate Array)が具備する。
【0029】
また、本発明では、(イ)同一基板上の特定領域に多数の回路部品を形成したFPGA(Field Programmable Gate Array)と、(ロ)このFPGAの前記した多数の回路部品の中から適宜選択して組み合わせることでそれぞれ所望の特性の論理回路として機能する幾つかの論理部を構成すると共に、前記した多数の回路部品の中から前記した論理部の間を電気的に接続するための部品としての接続部を構成することで、それぞれひとまとまりの回路機能を有する回路ブロックを所望の数だけ初期的に構成する回路ブロック初期構成手段と、(ハ)この回路ブロック初期構成手段で構成したそれぞれの回路ブロックが運用中のときにこれらの動作の監視結果として不具合の生じた論理部を含む回路ブロックが検出されたときこの通知を受ける回路ブロック監視手段と、(ニ)この回路ブロック監視手段によって不具合の生じた論理部を含む回路ブロックが検出されたことが通知されたとき、その回路ブロックを構成する前記した論理部のそれぞれと回路としての特性が同一の新たな論理部と前記した接続部と信号の伝達するタイミングが可能な限り同一となる新たな接続部とを備えた回路ブロックを前記した特定領域に形成された多数の回路部品の中の未使用部分から最適化処理によって構成する最適化処理実行手段と、(ホ)この最適化処理実行手段によって構成した新しい回路ブロックを前記した回路ブロック監視手段で不具合の生じた論理部を含む回路ブロックと交代させて新たな運用を開始させる回路ブロック交代手段とをFPGAを用いた回路再構成システムが具備する。
【0030】
更に本発明では、(イ)FPGA(Field Programmable Gate Array)を構成する基板上の特定領域に形成された多数の回路部品の中から適宜選択して組み合わせることでそれぞれ所望の特性の論理回路として機能する幾つかの論理部を構成すると共に、前記した多数の回路部品の中から前記した論理部の間を電気的に接続するための部品としての接続部を構成することで、それぞれひとまとまりの回路機能を有する回路ブロックを所望の数だけ初期的に構成する回路ブロック初期構成ステップと、(ロ)この回路ブロック初期構成ステップで構成したそれぞれの回路ブロックが運用中のときにこれらの動作を監視して不具合の生じた論理部を含む回路ブロックを検出する回路ブロック監視ステップと、(ハ)この回路ブロック監視ステップによって不具合の生じた論理部を含む回路ブロックが検出されたときその回路ブロックを構成する前記した論理部のそれぞれと回路としての特性が同一の新たな論理部と前記した接続部と信号の伝達するタイミングが可能な限り同一となる新たな接続部とを備えた回路ブロックを前記した特定領域に形成された多数の回路部品の中の未使用部分から最適化処理によって構成する最適化処理実行ステップと、(ニ)この最適化処理実行ステップによって構成した新しい回路ブロックを前記した回路ブロック監視ステップで不具合の生じた論理部を含む回路ブロックと交代させて新たな運用を開始させる回路ブロック交代ステップとをFPGAを用いた回路再構成方法が具備する。
【0031】
更にまた本発明では、コンピュータが、FPGAを用いた回路再構成プログラムとして、(イ)FPGA(Field Programmable Gate Array)を構成する基板上の特定領域に形成された多数の回路部品の中から適宜選択して組み合わせることでそれぞれ所望の特性の論理回路として機能する幾つかの論理部を構成すると共に、前記した多数の回路部品の中から前記した論理部の間を電気的に接続するための部品としての接続部を構成することで、それぞれひとまとまりの回路機能を有する回路ブロックを所望の数だけ初期的に構成する回路ブロック初期構成処理と、(ロ)この回路ブロック初期構成処理で構成したそれぞれの回路ブロックが運用中のときにこれらの動作を監視して不具合の生じた論理部を含む回路ブロックを検出する回路ブロック監視処理と、(ハ)この回路ブロック監視処理によって不具合の生じた論理部を含む回路ブロックが検出されたときその回路ブロックを構成する前記した論理部のそれぞれと回路としての特性が同一の新たな論理部と前記した接続部と信号の伝達するタイミングが可能な限り同一となる新たな接続部とを備えた回路ブロックを前記した特定領域に形成された多数の回路部品の中の未使用部分から最適化処理によって構成する最適化処理実行処理と、(ニ)この最適化処理実行処理によって構成した新しい回路ブロックを前記した回路ブロック監視処理で不具合の生じた論理部を含む回路ブロックと交代させて新たな運用を開始させる回路ブロック交代処理とを実行する。
【発明の効果】
【0032】
以上説明したように本発明によれば、FPGAを構成する基板上の特定領域に形成された多数の回路部品の中から適宜選択して論理部を構成するだけでなく、これら論理部を接続する接続部の動作タイミングについて最適化を図ったので論理部を複数組み合わせて再構成した回路ブロックの電気的な特性を可能な限り元の回路ブロックに近付けることができる。これによりFPGAを使用した装置の安定的な動作と長寿命化を達成することができる。
【図面の簡単な説明】
【0033】
【図1】本発明のFPGAのクレーム対応図である。
【図2】本発明のFPGAを用いた回路再構成システムのクレーム対応図である。
【図3】本発明のFPGAを用いた回路再構成方法のクレーム対応図である。
【図4】本発明のFPGAを用いた回路再構成プログラムのクレーム対応図である。
【図5】本発明の実施の形態におけるFPGAの機能的な構成の概要を表わした機能ブロック図である。
【図6】本実施の形態の工場出荷前における回路ブロックとこれに対応する監視回路部分の一例についてその構成と要部のタイミング関係を示したブロック図およびタイミング図である。
【図7】本実施の形態のFPGA内の第1の論理部に何らかの不具合が発生した直後の状態を示したブロック図および要部タイミング図である。
【図8】本実施の形態の第1の論理部に不具合が発生したことにより論理部構成可能領域に新たな回路ブロックとして構成される第1〜第3の論理部を示したブロック図および要部タイミング図である。
【図9】本実施の形態のFPGAにおける制御部の行う故障処理の様子を表わした流れ図である。
【図10】本発明の変形例の論理部の不具合の発生を検出する手法を示した説明図である。
【図11】本発明の関連技術の1つとして図示しない基板に搭載されたFPGAの機能的な構成を表わした説明図である。
【図12】本発明の関連技術の第1の静的再構成可能領域に不具合が発生したときのFPGAの回路構成の変化の様子を示した説明図である。
【図13】図11における第1〜第3の静的再構成部分にそれぞれ対応する回路部分の構成と要部のタイミング関係を示したブロック図およびタイミング図である。
【図14】図11に示したFPGAにおける第1の論理部で何らかの不具合が発生した直後の図13に示す回路部分の構成と要部のタイミング関係を示したブロック図およびタイミング図である。
【図15】不具合の生じた第1の論理部に代わって第1の再構成論理部が処理を開始したときの図13に示す回路部分の構成と要部のタイミング関係を示したブロック図およびタイミング図である。
【発明を実施するための形態】
【0034】
図1は、本発明のFPGA(Field Programmable Gate Array)のクレーム対応図を示したものである。本発明のFPGA10は、回路ブロック初期構成手段11と、回路ブロック監視手段12と、最適化処理実行手段13と、回路ブロック交代手段14を備えている。ここで、回路ブロック初期構成手段11は、同一基板上の特定領域に形成された多数の回路部品の中から適宜選択して組み合わせることでそれぞれ所望の特性の論理回路として機能する幾つかの論理部を構成すると共に、前記した多数の回路部品の中から前記した論理部の間を電気的に接続するための部品としての接続部を構成することで、それぞれひとまとまりの回路機能を有する回路ブロックを所望の数だけ初期的に構成する。回路ブロック監視手段12は、回路ブロック初期構成手段11で構成したそれぞれの回路ブロックが運用中のときにこれらの動作を監視して不具合の生じた論理部を含む回路ブロックを検出する。最適化処理実行手段13は、回路ブロック監視手段12によって不具合の生じた論理部を含む回路ブロックが検出されたときその回路ブロックを構成する前記した論理部のそれぞれと回路としての特性が同一の新たな論理部と前記した接続部と信号の伝達するタイミングが可能な限り同一となる新たな接続部とを備えた回路ブロックを前記した特定領域に形成された多数の回路部品の中の未使用部分から最適化処理によって構成する。回路ブロック交代手段14は、最適化処理実行手段13によって構成した新しい回路ブロックを回路ブロック監視手段12で不具合の生じた論理部を含む回路ブロックと交代させて新たな運用を開始させる。
【0035】
図2は、本発明のFPGA(Field Programmable Gate Array)を用いた回路再構成システムのクレーム対応図を示したものである。本発明のFPGAを用いた回路再構成システム20は、FPGA21と、回路ブロック初期構成手段22と、回路ブロック監視手段23と、最適化処理実行手段24と、回路ブロック交代手段25を備えている。ここで、FPGA21は、同一基板上の特定領域に多数の回路部品を形成したデバイスである。回路ブロック初期構成手段22は、FPGA21の前記した多数の回路部品の中から適宜選択して組み合わせることでそれぞれ所望の特性の論理回路として機能する幾つかの論理部を構成すると共に、前記した多数の回路部品の中から前記した論理部の間を電気的に接続するための部品としての接続部を構成することで、それぞれひとまとまりの回路機能を有する回路ブロックを所望の数だけ初期的に構成する。回路ブロック監視手段23は、回路ブロック初期構成手段22で構成したそれぞれの回路ブロックが運用中のときにこれらの動作の監視結果として不具合の生じた論理部を含む回路ブロックが検出されたときこの通知を受ける。最適化処理実行手段24は、回路ブロック監視手段23によって不具合の生じた論理部を含む回路ブロックが検出されたことが通知されたとき、その回路ブロックを構成する前記した論理部のそれぞれと回路としての特性が同一の新たな論理部と前記した接続部と信号の伝達するタイミングが可能な限り同一となる新たな接続部とを備えた回路ブロックを前記した特定領域に形成された多数の回路部品の中の未使用部分から最適化処理によって構成する。回路ブロック交代手段25は、最適化処理実行手段24によって構成した新しい回路ブロックを回路ブロック監視手段23で不具合の生じた論理部を含む回路ブロックと交代させて新たな運用を開始させる。
【0036】
図3は、本発明のFPGA(Field Programmable Gate Array)を用いた回路再構成方法のクレーム対応図を示したものである。本発明のFPGAを用いた回路再構成方法30は、回路ブロック初期構成ステップ31と、回路ブロック監視ステップ32と、最適化処理実行ステップ33と、回路ブロック交代ステップ34を備えている。ここで、回路ブロック初期構成ステップ31では、FPGAを構成する基板上の特定領域に形成された多数の回路部品の中から適宜選択して組み合わせることでそれぞれ所望の特性の論理回路として機能する幾つかの論理部を構成すると共に、前記した多数の回路部品の中から前記した論理部の間を電気的に接続するための部品としての接続部を構成することで、それぞれひとまとまりの回路機能を有する回路ブロックを所望の数だけ初期的に構成する。回路ブロック監視ステップ32では、回路ブロック初期構成ステップ31で構成したそれぞれの回路ブロックが運用中のときにこれらの動作を監視して不具合の生じた論理部を含む回路ブロックを検出する。最適化処理実行ステップ33では、回路ブロック監視ステップ32によって不具合の生じた論理部を含む回路ブロックが検出されたときその回路ブロックを構成する前記した論理部のそれぞれと回路としての特性が同一の新たな論理部と前記した接続部と信号の伝達するタイミングが可能な限り同一となる新たな接続部とを備えた回路ブロックを前記した特定領域に形成された多数の回路部品の中の未使用部分から最適化処理によって構成する。回路ブロック交代ステップ34では、最適化処理実行ステップ33によって構成した新しい回路ブロックを回路ブロック監視ステップ32で不具合の生じた論理部を含む回路ブロックと交代させて新たな運用を開始させる。
【0037】
図4は、本発明のFPGA(Field Programmable Gate Array)を用いた回路再構成プログラムのクレーム対応図を示したものである。本発明のFPGAを用いた回路再構成プログラム40は、コンピュータが、回路ブロック初期構成処理41と、回路ブロック監視処理42と、最適化処理実行処理43と、回路ブロック交代処理44を実行させるようにしている。ここで、回路ブロック初期構成処理41では、FPGAを構成する基板上の特定領域に形成された多数の回路部品の中から適宜選択して組み合わせることでそれぞれ所望の特性の論理回路として機能する幾つかの論理部を構成すると共に、前記した多数の回路部品の中から前記した論理部の間を電気的に接続するための部品としての接続部を構成することで、それぞれひとまとまりの回路機能を有する回路ブロックを所望の数だけ初期的に構成する。回路ブロック監視処理42では、回路ブロック初期構成処理41で構成したそれぞれの回路ブロックが運用中のときにこれらの動作を監視して不具合の生じた論理部を含む回路ブロックを検出する。最適化処理実行処理43では、回路ブロック監視処理42によって不具合の生じた論理部を含む回路ブロックが検出されたときその回路ブロックを構成する前記した論理部のそれぞれと回路としての特性が同一の新たな論理部と前記した接続部と信号の伝達するタイミングが可能な限り同一となる新たな接続部とを備えた回路ブロックを前記した特定領域に形成された多数の回路部品の中の未使用部分から最適化処理によって構成する。回路ブロック交代処理44では、最適化処理実行処理43によって構成した新しい回路ブロックを回路ブロック監視処理42で不具合の生じた論理部を含む回路ブロックと交代させて新たな運用を開始させる。
【0038】
<発明の実施の形態>
【0039】
次に本発明の実施の形態を説明する。
【0040】
図5は、本発明の実施の形態におけるFPGAの機能的な構成の概要を表わしたものである。FPGA200は、常時動作部201と、論理部構成可能領域202および監視部構成領域203によって構成されている。ここで常時動作部201は、回路装置として常時機能している部分である。
【0041】
常時動作部201にはCPU(Central Processing Unit)211と、このCPU211が実行する制御プログラムを格納したメモリ212からなる制御部213と、最適化処理部214および回路ブロック対応テーブル215から構成されている。ここで最適化処理部214は、後に説明する一部の論理部に不具合が発生した結果その論理部を再構成するときに、信号処理のタイミングを考慮した最適化のための処理を行う部分である。この最適化処理部214は、独自のハードウェアとしてFPGA200に予め作り込んでおいてもよいし、制御部213がソフトウェア的に実現するようになっていてもよい。
【0042】
回路ブロック対応テーブル215は、不具合が発生した論理部を含む1つの回路ブロックに代わる候補となる回路ブロックを予めテーブルとして用意するものである。本実施の形態の場合、候補となる回路ブロックは、不具合が発生した論理部の正常時に実現していた信号処理のタイミングが実現するように事前に最適化されたものとなっている。したがって、回路ブロック対応テーブル215に用意された回路ブロックを選択すれば、図15(B)で説明した信号143のようにタイミングのずれた信号の発生を防止することができる。本実施の形態では単純に同一の回路機能の論理部を組み合わせる「静的再構成」を行うものではなく、回路ブロックを構成する論理部の間での信号の遅延をも考慮した「動的再構成」を行っているからである。
【0043】
本明細書で1つ1つの「回路ブロック」は、図13に示した第1〜第3の論理部121〜123のように複数の論理部とこれらを接続する信号伝送路を備えたロジックセルや内部配線等の回路部品の集合体をいうものとする。回路ブロック対応テーブル215はメモリ212の一部を構成する不揮発性メモリ領域で構成することができる。
【0044】
常時動作部201には、この他、外部から基準クロックを入力して内部クロックを生成するクロック生成回路や常時動作部201内の不具合を検出する常時動作部内監視部(共に図示せず)等の常時動作する幾つかの回路部分が存在している。
【0045】
論理部に不具合が生じた場合で、これを構成する回路ブロックが回路ブロック対応テーブル215に登録されていない場合があるとする。このような場合には、最適化処理部214は不具合を生じた論理部を有する回路ブロックと可能な限り同一の特性となる回路ブロックを回路部品の組み合わせによる演算によって求めることになる。したがって、FPGA200によっては回路ブロック対応テーブル215を充実させることで最適化処理部214による最適化処理を事実上省略することができ、反対に最適化処理部214のみを備えることで回路ブロック対応テーブル215を不要とすることも可能である。
【0046】
論理部構成可能領域202および監視部構成領域203は、前記したロジックセルや内部配線等の回路部品から構成されており、これらを適宜組み合わせることで論理部や監視部の回路を形成する。このうちの論理部を構成するために割り当てた領域が論理部構成可能領域202であり、残りの領域が監視部を構成するための監視部構成領域203となる。監視部構成領域203は、構成された論理部のそれぞれについて不具合が発生しているか否かを信号の入出力状態によって監視するようになっている。監視部構成領域203の一部には、個々の論理部の不具合の発生を検出するための監視用データを格納した監視用データ格納部221が配置されている。
【0047】
図6は、工場出荷前における回路ブロックとこれに対応する監視回路部分の一例についてその構成と要部のタイミング関係を示したものである。図5と共に説明する。
【0048】
図6(A)で第1〜第3の論理部231〜233は1つの回路ブロックの一例を示したものであり、FPGA200内の論理部構成可能領域202を構成する図示しない多数の回路部品の中から部品を適宜組み合わせることで構成している。第1の論理部231は監視部構成領域203を構成する第1の監視部241によって監視される。同様に第2の論理部232は監視部構成領域203を構成する第2の監視部242によって監視され、第3の論理部233は監視部構成領域203を構成する第3の監視部243によって監視される。第1〜第3の監視部241〜243は、第1〜第3の論理部231〜233を工場出荷前に構成した時点で、これらに合わせて構成したものである。第1〜第3の監視部241〜243も監視部構成領域203を構成する図示しない多数の回路部品の中から部品を適宜組み合わせることで構成する。
【0049】
第1〜第3の論理部231〜233には、それぞれ内部クロック251が供給される。また第1の論理部231には、信号255が供給され、信号256が出力される。信号256は第2の論理部232の入力となる。第2の論理部232は信号257を出力する。信号257は第3の論理部233の入力となる。第3の論理部233は信号258を出力する。
【0050】
一方、第1の監視部241は、第1の論理部231から運用中に出力される監視用データ261を入力する。第1の監視部241はこの監視用データ261を監視用データ格納部221に格納された第1の論理部231用の監視用照合データ271と対比して第1の論理部231に不具合が発生したかを監視する。
【0051】
同様に第2および第3の監視部242、243は、第2および第3の論理部232、233から運用中に出力される監視用データ262、263のうちの対応するものを入力する。第2および第3の監視部242、243は、監視用データ262、263のうちの対応するものを監視用データ格納部221に格納された第2あるいは第3の論理部232、233用の監視用照合データ272、273と対比して、第2あるいは第3の論理部232、233に不具合が発生したかを監視する。
【0052】
監視用データ格納部221に格納する監視用照合データ271としては、たとえば第1の論理部231が正常に初期作動した時にこれから出力される監視用データ261を使用するようにする。そして、第1の論理部231が運用を開始した後にこれから逐次出力される監視用データ261を監視用照合データ271と照合し、両者が一致している間は第1の論理部231に不具合が発生していないものと判別する。また、監視用データ261と監視用照合データ271が不一致となれば、第1の論理部231に不具合が発生していると判別する。監視用データ格納部221に格納する他の監視用照合データ272、273についても同様である。
【0053】
図6(B)は、第1〜第3の論理部が正常に動作している状態での第1および第2の論理部の接続箇所における動作タイミングを表わしたものである。同図(イ)に示すように第2の論理部232には所定の周期の内部クロック251が供給されている。同図(イ)および(ロ)に示すように第1の論理部231から出力される信号256のほぼ中央位置で、内部クロック251が立ち上がる。このように、内部クロック251の立ち上がりに同期して第2の論理部232が信号256を入力することで、その入力処理が安定している。
【0054】
図7は、FPGA内の第1の論理部に何らかの不具合が発生した直後の状態を示したものである。この時点は不具合の発生直後のため、監視用データ261を入力する第1の監視部241は第1の論理部231での不具合をまだ検出していない。また、同図(B)(イ)に示す内部クロック251、(ロ)に示す第1の論理部231の出力する信号256および(ハ)に示す第2の論理部232に入力する信号256にも変化はない。
【0055】
図8(A)は、第1の論理部に不具合が発生したことにより論理部構成可能領域に新たな回路ブロックとして構成される第1〜第3の論理部を示したものである。図5と共に説明する。図5に示す論理部構成可能領域202には、今回の例で図6に示す第1〜第3の論理部231〜233を含む回路ブロック等の幾つかの回路ブロックが工場出荷に先立って構成されている。ただし、説明の便宜上、第1〜第3の論理部231〜233に対応する新たな回路ブロック以外は図示していない。第1〜第3の論理部231〜233を含む回路ブロックの中で、今回の例では第1の論理部231が不具合を発生させて、使用不可の状態となっている。
【0056】
本実施の形態では、このような場合、論理部構成可能領域202における未使用領域281、すなわち回路ブロックを新たに構成することができる空間領域に存在する回路部品を使用して、今まで使用していた回路ブロックと全く別個に回路ブロックを構成する。これが第1〜第3の論理部291〜293を備えた回路ブロックである。
【0057】
回路ブロック対応テーブル215には、図6に示した第1〜第3の論理部231〜233を構成する回路ブロックに対応させて幾つかの回路ブロックが登録されている。図5における論理部構成可能領域202に既に構成されている図示しない回路ブロックについても、それらの代替用の回路ブロックを構成する具体的な回路部品の配置内容が回路ブロック対応テーブル215に登録されている。これら代替用の回路ブロックは、たとえば第1〜第3の論理部291〜293を構成する回路ブロックの場合、図6に示した第1〜第3の論理部231〜233を構成したときと同様の回路部品の配置環境となっている場所が選択されることで回路特性の最適化が図られている。
【0058】
不具合を生じた論理部を含む回路ブロックごとにこれらの代替のための候補となる回路ブロックを回路ブロック対応テーブル215に複数通り登録しておけば、他の回路ブロックに不具合が生じてその代替用の回路ブロックに一部の回路部品が先に使用されてしまっても、回路部品が重複しない場所に配置される他の回路ブロックを選択することができる。
【0059】
以上は、回路ブロック対応テーブル215を使用して論理部に不具合の生じた回路ブロックを他の回路ブロックに代える場合の説明である。もちろん、図5に示す最適化処理部214を使用して第1〜第3の論理部231〜233とこれらを接続する伝送路からなる回路ブロックに回路特性でできるだけ似通った特性の第1〜第3の論理部291〜293を未使用領域281の回路部品の中から選択して構成するようにしてもよい。
【0060】
以上の処理が行われる結果として、第1の論理部231に不具合が生じたとき、未使用領域281に第1〜第3の論理部291〜293を備えた回路ブロックが新たに構成されることになる。そして、第1〜第3の論理部291〜293のそれぞれに内部クロック251が供給され、第1の論理部291には信号255が供給される。この結果、新たに構成された第1の論理部291からは信号301が出力され、これが信号302として新たに構成された第2の論理部292に供給される。
【0061】
第2の論理部292からは信号303が出力され、これが信号304として新たに構成された第3の論理部293に供給される。第3の論理部293からは信号305が出力される。第1〜第3の論理部291〜293を備えた回路ブロックが図6に示した第1〜第3の論理部231〜233を構成する回路ブロックに限りなく近い特性を有していれば、信号305は図6における第3の論理部233から出力される信号258とその特性が限りなく近くなる。
【0062】
図8(B)は、第1の論理部から出力される信号と第2の論理部に供給される信号のタイミングを表わしたものである。このうち同図(A)は内部クロック251を表わしている。同図(イ)および(ロ)に示すように第1の論理部291から出力される信号301のほぼ中央位置で、内部クロック251が立ち上がる。また、同図(イ)および(ハ)に示すように、内部クロック251の立ち上がりに同期して第2の論理部292が信号302を入力する。これにより信号302の入力処理が安定し、図15で説明したような不正な信号処理が回避される。
【0063】
図9は、以上のような概要のFPGAにおける制御部の行う故障処理の様子を表わしたものである。ここで「故障」とは、たとえば図6に示した第1〜第3の論理部231〜233の不具合を含むFPGA200の各種不具合を包括する概念をいう。図5に示した監視部構成領域203に構成される第1の監視部241等の監視部(図6)による監視結果で不具合が検出されると、検出内容が制御部213に故障として通知される。前記した常時動作部内監視部は常時動作部201内の不具合を検出してその結果を制御部213に通知するようになっている。以下、図9を図5および図6と共に説明する。
【0064】
制御部213は故障の検出が行われるかを待機している(ステップS401)。故障が検出されると(Y)、制御部213は常時動作部201が故障しているかを判別する(ステップS402)。これは、故障の部位が常時動作部201か、あるいはそれ以外の部位としての論理部構成可能領域202または監視部構成領域203であるかの切り分けを行うためである。
【0065】
常時動作部201が故障していると判別した場合(ステップS402:Y)、制御部213は過去に故障の通知が行われた論理部や常時動作部201における故障が判明している回路部分を除いたFPGA200全体を使用して、その再構成を行う。このため、最適化処理部214はこれら故障が判明した部分を除いたFPGA200のすべての領域で、必要な回路部分を構成するための最適化の計算を行う(ステップS403)。そして、FPGA200をリセットして必要な回路部分を再構成して(ステップS404)、処理を終了し(エンド)、運用が再開できるようにする。ここで必要な回路部分とは、常時動作部201と、論理部構成可能領域202における必要な回路ブロックと、監視部構成領域203における回路ブロックの不具合を検出する監視部である。
【0066】
一方、ステップS402で常時動作部201以外の故障であると判別した場合(N)、制御部213は故障の通知のあった回路ブロックが回路ブロック対応テーブル215にすでに登録されているかをチェックする(ステップS405)。回路ブロック対応テーブル215に登録されている場合には(Y)、代替する回路ブロックとして示されている回路ブロックがその判別した時点で代替可能であるかを判別する(ステップS406)。これは、他の回路ブロックが以前に故障して、そのときに今回の代替候補とされる回路ブロックを構成する回路部品がすでに使用されているとき、今回の代替候補とされる回路ブロックは使用できなくなるからである。もちろん、回路ブロック対応テーブル215に代替候補が2以上登録されている場合には、代替候補とされる回路ブロックの全部が使用済みとなっていない限り、代替可能な回路ブロックの候補が存在することになる。
【0067】
代替可能な回路ブロックが存在する場合(ステップS406:Y)、制御部213はその回路ブロックを論理部構成可能領域202に再構成することになる(ステップS407)。このとき、代替可能な回路ブロックが複数存在する場合には、そのうちの1つを代替用の回路ブロックとして選択する。この場合に回路ブロックの選択について、回路特性等の理由で優先順位が定められている場合にはそれに従う。
【0068】
このようにして故障した回路ブロックに代わる回路ブロックが再構成されたら、制御部213は故障前に使用していた監視部を再構成後の回路ブロックに接続するようにその部分の伝送路を再構成する(ステップS408)。これに代えて再構成された回路ブロックに接続する監視部を監視部構成領域203に再構成することも可能である。ステップS408の処理により、FPGA200は回路ブロックの再構成による運用再開のための処理が終了する(エンド)。
【0069】
一方、回路ブロック対応テーブル215に故障した回路ブロックが登録されていない場合がある(ステップS405:N)。一例を挙げると、故障した回路ブロックが一度再構成した回路ブロックであるような場合である。このような場合や、回路ブロック対応テーブル215に登録した回路ブロックであっても代替候補となる回路ブロックを再構成できないことが判明した場合には(ステップS406:N)、最適化処理部214を用いた回路ブロックの再構成が行われることになる(ステップS409)。
【0070】
この回路ブロックの再構成処理は、ステップS403およびステップS404の処理に類似している。すなわち、ステップS409では過去に故障の通知が行われた論理部における故障が判明している回路部分を除いた論理部構成可能領域202の全体を使用して、該当する回路ブロックの再構成を行う。このため、最適化処理部214は故障が判明した部分を除いた論理部構成可能領域202のすべての未使用領域で、必要な回路部分を構成するための最適化の計算を行う。そして、FPGA200をリセットして新たな回路ブロックを再構成して、処理を終了することになる(エンド)。
【0071】
ステップS403あるいはステップS409による最適化処理は、制御部213がコンパイラ(compiler)を搭載して、対象となる領域に存在する回路部品に関するデータをコンパイルすることによって行う。コンパイラを使用した最適化処理を行うことで、個々の回路ブロックに対応する再構成候補の回路ブロックを予め演算して回路ブロック対応テーブル215に登録する処理を省くことができる。また、最適化処理を行うことで該当する回路ブロックの最低限の動作が保証されるため、FPGA200が致命的なシステムダウンとなることがなく、故障前と同等の機能の提供が可能になる。もちろん、最適化処理部214を使用して最適化処理を行った場合には、FPGA200の容量が大きいほど最適化処理のための各種データのコンパイル時間が長時間化するので、FPGA200の運用再開までの時間が長く掛かることになる。
【0072】
本実施の形態では回路ブロック対応テーブル215を用いる手法と最適化処理部214を用いる手法を併用している。したがって、論理部構成可能領域202に回路ブロックを再構成する多くの場合にその時間を短縮することができ、かつこれに対応できない故障にも対処することができる。
【0073】
また、実施の形態では回路ブロック単位で再構成を行うことにした。これにより、一部の論理部のみを再構成する場合と比較すると、論理部構成可能領域202に新たに再構成した論理部と前の回路ブロックにおける不具合の生じていない論理部とを接続する伝送路が長くなったり大きく迂回する事態の発生を軽減できる場合が多くなる。これにより、その伝送路部分を構成する回路部分による信号の遅延等の回路特性の劣化による誤動作の発生を減少させることが可能になる。また、この結果、FPGA200およびこれを使用した装置の長寿命化を低コストで実現することができることになる。
【0074】
なお、以上説明した実施の形態の回路ブロック対応テーブル215では、回路ブロックのどの論理部に故障が発生したかを判別することなく、故障の生じた回路ブロックに対応する新たな回路ブロックを選択させてその再構成を行うことにした。本発明はこれに限るものではなく、故障の生じた回路ブロックのどの論理部に不具合が発生したかを判別し、その判別結果に応じて新たな回路ブロックを選択させてその再構成を行うようにしてもよい。この場合に、故障の生じた回路ブロックを構成する複数の論理部の全部で不具合が発生しているのか、どの論理部とどの論理部で不具合が発生しているかというような詳細な不具合の様子を判別して、これに応じて再構成する回路ブロックをより具体的な内容とすることができる。
【0075】
また、以上説明した実施の形態ではFPGA200が常時動作部201にCPU211等からなる制御部213を備える構成としたが、これに限るものではない。CPU211を内部に組み込んでいないFPGAについても、外部に配置されたCPUを接続して制御することで、実施の形態と同様に常時動作部201を再構成したり、回路ブロックを同様に再構成することができる。外部にはCPU211だけでなく、メモリ212、最適化処理部214および回路ブロック対応テーブル215を配置する構成でもよい。言い換えると、常時動作部201そのものをFPGA200の外に配置する構成となっていてもよい。
【0076】
更に実施の形態では図5に示した監視用データ格納部221に監視用照合データ271等の照合用のデータを格納しておき第1の監視部241等の監視部が第1の論理部231等の論理部から運用時に出力される監視用データ261等のデータと照合して、一致や不一致を比較することで不具合の検出を行った。本発明の故障検出は、これに限るものではない。なお、監視用データ格納部221をFPGA200の外に配置する構成となっていてもよいことは当然である。
【0077】
図10は、論理部の不具合の発生を検出する他の手法を説明するためのものである。この変形例のFPGA200Aには、先の実施の形態と同様に第1〜第3の論理部231〜233が構成されているものとする。このうちの第1の論理部231は監視用データ261Aを第1の監視部241Aに入力するようになっている。同様に、第2および第3の論理部232、233も監視用データ262Aあるいは263Aを第2の監視部242Aあるいは第3の監視部243Aに入力するようになっている。この変形例では、第1〜第3の監視部241A〜243Aが第1〜第3の論理部障害要因レジスタ311A〜313Aを備えている。
【0078】
第1の論理部障害要因レジスタ311Aを例に採って具体的に説明する。第1の論理部障害要因レジスタ311Aは、第1の論理部231が正常なときに第1の監視部241Aに入力される監視用データ261Aとしての値「0b0000」と共に、障害の各要因ごとの値を登録している。たとえば第1の要因で障害が発生するときの監視用データ261Aの値は「0b0001」であり、第2の要因で障害が発生するときの監視用データ261Aの値は「0b0010」である。
【0079】
第1の論理部障害要因レジスタ311Aが第1〜第4の要因と正常時の値を登録しているとすると、第1の監視部241Aは監視用データ261Aがどの値に一致するかを逐次比較する。そして、その比較結果を図10では図示を省略している制御部に通知する。このようにして、FPGA200Aの制御部は、不具合が発生したときの要因を第1〜第3の論理部231〜233について常に監視することができ、回路ブロックの再構成が必要となる時点を判断することができる。
【0080】
たとえば第1の論理部231にとって第1の要因が比較的重い故障要因であるとすれば、制御部はこれが確認された時点で第1の論理部231を含む回路ブロックの再構成を決定する。また、第1の論理部231にとって第2の要因が比較的軽い故障要因であるとすると、第2および第3の論理部232、233が正常である間は回路ブロックの再構成を見合わせる。そして、たとえば第2の論理部232にも比較的軽い故障要因が発生したような場合に、これらの組み合わせが回路ブロックの再構成の基準に該当していれば、第1および第2の論理部231、232を含む回路ブロックの再構成を決定することになる。
【0081】
なお、実施の形態およびその変形例ではFPGA200、200Aについての論理部の動的な再構成について説明したが、本発明はを使用した情報通信装置や情報処理装置にも適用することができることは当然である。
【0082】
以上説明した実施の形態の一部または全部は、以下の付記のようにも記載されるが、以下の記載に限定されるものではない。
【0083】
(付記1)
同一基板上の特定領域に形成された多数の回路部品の中から適宜選択して組み合わせることでそれぞれ所望の特性の論理回路として機能する幾つかの論理部を構成すると共に、前記多数の回路部品の中から適宜選択して前記論理部の間を電気的に接続するための部品としての接続部を構成することで、それぞれひとまとまりの回路機能を有する回路ブロックを所望の数だけ初期的に構成する回路ブロック初期構成手段と、
この回路ブロック初期構成手段で構成したそれぞれの回路ブロックが運用中のときにこれらの動作を監視して不具合の生じた論理部を含む回路ブロックを検出する回路ブロック監視手段と、
この回路ブロック監視手段によって不具合の生じた論理部を含む回路ブロックが検出されたときその回路ブロックを構成する前記論理部のそれぞれと回路としての特性が同一の新たな論理部と前記接続部と信号の伝達するタイミングが可能な限り同一となる新たな接続部とを備えた回路ブロックを前記特定領域に形成された多数の回路部品の中の未使用部分から最適化処理によって構成する最適化処理実行手段と、
この最適化処理実行手段によって構成した新しい回路ブロックを前記回路ブロック監視手段で不具合の生じた論理部を含む回路ブロックと交代させて新たな運用を開始させる回路ブロック交代手段
とを具備することを特徴とするFPGA(Field Programmable Gate Array)。
【0084】
(付記2)
前記回路ブロック初期構成手段によって初期的に構成した回路ブロックごとに、これらの回路ブロックを構成する前記論理部に不具合が発生して前記回路ブロック交代手段による交代が必要とされるときに交代後の回路ブロックを構成するために必要な回路部品に関する情報を記したテーブルが用意されていることを特徴とする付記1記載のFPGA。
【0085】
(付記3)
前記交代後の回路ブロックは、これを構成する前記論理部同士を接続する前記接続部が前記交代前の回路ブロックの該当する接続部と信号の伝達するタイミングが可能な限り同一となるように前記特定領域に形成された多数の回路部品の中の未使用の部品から予め選択されたものであることを特徴とする付記2記載のFPGA。
【0086】
(付記4)
前記テーブルに前記初期的に構成した回路ブロックの1つに対して交代後の回路ブロックを複数構成するために必要な回路部品に関する情報が複数通り記載されているとき、これらを優先順位に従って選択する優先順位選択手段を更に具備することを特徴とする付記2記載のFPGA。
【0087】
(付記5)
同一基板上の特定領域に多数の回路部品を形成したFPGA(Field Programmable Gate Array)と、
このFPGAの前記多数の回路部品の中から適宜選択して組み合わせることでそれぞれ所望の特性の論理回路として機能する幾つかの論理部を構成すると共に、前記多数の回路部品の中から適宜選択して前記論理部の間を電気的に接続するための部品としての接続部を構成することで、それぞれひとまとまりの回路機能を有する回路ブロックを所望の数だけ初期的に構成する回路ブロック初期構成手段と、
この回路ブロック初期構成手段で構成したそれぞれの回路ブロックが運用中のときにこれらの動作の監視結果として不具合の生じた論理部を含む回路ブロックが検出されたときこの通知を受ける回路ブロック監視手段と、
この回路ブロック監視手段によって不具合の生じた論理部を含む回路ブロックが検出されたことが通知されたとき、その回路ブロックを構成する前記論理部のそれぞれと回路としての特性が同一の新たな論理部と前記接続部と信号の伝達するタイミングが可能な限り同一となる新たな接続部とを備えた回路ブロックを前記特定領域に形成された多数の回路部品の中の未使用部分から最適化処理によって構成する最適化処理実行手段と、
この最適化処理実行手段によって構成した新しい回路ブロックを前記回路ブロック監視手段で不具合の生じた論理部を含む回路ブロックと交代させて新たな運用を開始させる回路ブロック交代手段
とを具備することを特徴とするFPGAを用いた回路再構成システム。
【0088】
(付記6)
前記回路ブロック初期構成手段によって初期的に構成した回路ブロックごとに、これらの回路ブロックを構成する前記論理部に不具合が発生して前記回路ブロック交代手段による交代が必要とされるときに交代後の回路ブロックを構成するために必要な回路部品に関する情報を記したテーブルが用意されていることを特徴とする付記5記載のFPGAを用いた回路再構成システム。
【0089】
(付記7)
前記交代後の回路ブロックは、これを構成する前記論理部同士を接続する前記接続部が交代前の回路ブロックの該当する接続部と信号の伝達するタイミングが可能な限り同一となるように前記特定領域に形成された多数の回路部品の中の未使用の部品から予め選択されたものであることを特徴とする付記6記載のFPGAを用いた回路再構成システム。
【0090】
(付記8)
前記テーブルに前記初期的に構成した回路ブロックの1つに対して交代後の回路ブロックを複数構成するために必要な回路部品に関する情報が複数通り記載されているとき、これらを優先順位に従って選択する優先順位選択手段を更に具備することを特徴とする付記5記載のFPGAを用いた回路再構成システム。
【0091】
(付記9)
FPGA(Field Programmable Gate Array)を構成する基板上の特定領域に形成された多数の回路部品の中から適宜選択して組み合わせることでそれぞれ所望の特性の論理回路として機能する幾つかの論理部を構成すると共に、前記多数の回路部品の中から適宜選択して前記論理部の間を電気的に接続するための部品としての接続部を構成することで、それぞれひとまとまりの回路機能を有する回路ブロックを所望の数だけ初期的に構成する回路ブロック初期構成ステップと、
この回路ブロック初期構成ステップで構成したそれぞれの回路ブロックが運用中のときにこれらの動作を監視して不具合の生じた論理部を含む回路ブロックを検出する回路ブロック監視ステップと、
この回路ブロック監視ステップによって不具合の生じた論理部を含む回路ブロックが検出されたときその回路ブロックを構成する前記論理部のそれぞれと回路としての特性が同一の新たな論理部と前記接続部と信号の伝達するタイミングが可能な限り同一となる新たな接続部とを備えた回路ブロックを前記特定領域に形成された多数の回路部品の中の未使用部分から最適化処理によって構成する最適化処理実行ステップと、
この最適化処理実行ステップによって構成した新しい回路ブロックを前記回路ブロック監視ステップで不具合の生じた論理部を含む回路ブロックと交代させて新たな運用を開始させる回路ブロック交代ステップ
とを具備することを特徴とするFPGAを用いた回路再構成方法。
【0092】
(付記10)
コンピュータが、
FPGA(Field Programmable Gate Array)を構成する基板上の特定領域に形成された多数の回路部品の中から適宜選択して組み合わせることでそれぞれ所望の特性の論理回路として機能する幾つかの論理部を構成すると共に、前記多数の回路部品の中から適宜選択して前記論理部の間を電気的に接続するための部品としての接続部を構成することで、それぞれひとまとまりの回路機能を有する回路ブロックを所望の数だけ初期的に構成する回路ブロック初期構成処理と、
この回路ブロック初期構成処理で構成したそれぞれの回路ブロックが運用中のときにこれらの動作を監視して不具合の生じた論理部を含む回路ブロックを検出する回路ブロック監視処理と、
この回路ブロック監視処理によって不具合の生じた論理部を含む回路ブロックが検出されたときその回路ブロックを構成する前記論理部のそれぞれと回路としての特性が同一の新たな論理部と前記接続部と信号の伝達するタイミングが可能な限り同一となる新たな接続部とを備えた回路ブロックを前記特定領域に形成された多数の回路部品の中の未使用部分から最適化処理によって構成する最適化処理実行処理と、
この最適化処理実行処理によって構成した新しい回路ブロックを前記回路ブロック監視処理で不具合の生じた論理部を含む回路ブロックと交代させて新たな運用を開始させる回路ブロック交代処理
とを実行することを特徴とするFPGAを用いた回路再構成プログラム。
【符号の説明】
【0093】
10、21、200、200A FPGA
11、22 回路ブロック初期構成手段
12、23 回路ブロック監視手段
13、24 最適化処理実行手段
14、25 回路ブロック交代手段
20 FPGAを用いた回路再構成システム
30 FPGAを用いた回路再構成方法
31 回路ブロック初期構成ステップ
32 回路ブロック監視ステップ
33 最適化処理実行ステップ
34 回路ブロック交代ステップ
40 FPGAを用いた回路再構成プログラム
41 回路ブロック初期構成処理
42 回路ブロック監視処理
43 最適化処理実行処理
44 回路ブロック交代処理
201 常時動作部
202 論理部構成可能領域
203 監視部構成領域
211 CPU
212 メモリ
213 制御部
214 最適化処理部
215 回路ブロック対応テーブル
221 監視用データ格納部
231 第1の論理部
232 第2の論理部
233 第3の論理部
241、241A 第1の監視部
242、242A 第2の監視部
243、243A 第3の監視部
251 内部クロック
261、261A、262、262A、263、263A 監視用データ
271、272、273 監視用照合データ
291 (再構成後の)第1の論理部
292 (再構成後の)第2の論理部
293 (再構成後の)第3の論理部
301、302 信号

【特許請求の範囲】
【請求項1】
同一基板上の特定領域に形成された多数の回路部品の中から適宜選択して組み合わせることでそれぞれ所望の特性の論理回路として機能する幾つかの論理部を構成すると共に、前記多数の回路部品の中から適宜選択して前記論理部の間を電気的に接続するための部品としての接続部を構成することで、それぞれひとまとまりの回路機能を有する回路ブロックを所望の数だけ初期的に構成する回路ブロック初期構成手段と、
この回路ブロック初期構成手段で構成したそれぞれの回路ブロックが運用中のときにこれらの動作を監視して不具合の生じた論理部を含む回路ブロックを検出する回路ブロック監視手段と、
この回路ブロック監視手段によって不具合の生じた論理部を含む回路ブロックが検出されたときその回路ブロックを構成する前記論理部のそれぞれと回路としての特性が同一の新たな論理部と前記接続部と信号の伝達するタイミングが可能な限り同一となる新たな接続部とを備えた回路ブロックを前記特定領域に形成された多数の回路部品の中の未使用部分から最適化処理によって構成する最適化処理実行手段と、
この最適化処理実行手段によって構成した新しい回路ブロックを前記回路ブロック監視手段で不具合の生じた論理部を含む回路ブロックと交代させて新たな運用を開始させる回路ブロック交代手段
とを具備することを特徴とするFPGA(Field Programmable Gate Array)。
【請求項2】
前記回路ブロック初期構成手段によって初期的に構成した回路ブロックごとに、これらの回路ブロックを構成する前記論理部に不具合が発生して前記回路ブロック交代手段による交代が必要とされるときに交代後の回路ブロックを構成するために必要な回路部品に関する情報を記したテーブルが用意されていることを特徴とする請求項1記載のFPGA。
【請求項3】
前記交代後の回路ブロックは、これを構成する前記論理部同士を接続する前記接続部が前記交代前の回路ブロックの該当する接続部と信号の伝達するタイミングが可能な限り同一となるように前記特定領域に形成された多数の回路部品の中の未使用の部品から予め選択されたものであることを特徴とする請求項2記載のFPGA。
【請求項4】
前記テーブルに前記初期的に構成した回路ブロックの1つに対して交代後の回路ブロックを複数構成するために必要な回路部品に関する情報が複数通り記載されているとき、これらを優先順位に従って選択する優先順位選択手段を更に具備することを特徴とする請求項2記載のFPGA。
【請求項5】
同一基板上の特定領域に多数の回路部品を形成したFPGA(Field Programmable Gate Array)と、
このFPGAの前記多数の回路部品の中から適宜選択して組み合わせることでそれぞれ所望の特性の論理回路として機能する幾つかの論理部を構成すると共に、前記多数の回路部品の中から適宜選択して前記論理部の間を電気的に接続するための部品としての接続部を構成することで、それぞれひとまとまりの回路機能を有する回路ブロックを所望の数だけ初期的に構成する回路ブロック初期構成手段と、
この回路ブロック初期構成手段で構成したそれぞれの回路ブロックが運用中のときにこれらの動作の監視結果として不具合の生じた論理部を含む回路ブロックが検出されたときこの通知を受ける回路ブロック監視手段と、
この回路ブロック監視手段によって不具合の生じた論理部を含む回路ブロックが検出されたことが通知されたとき、その回路ブロックを構成する前記論理部のそれぞれと回路としての特性が同一の新たな論理部と前記接続部と信号の伝達するタイミングが可能な限り同一となる新たな接続部とを備えた回路ブロックを前記特定領域に形成された多数の回路部品の中の未使用部分から最適化処理によって構成する最適化処理実行手段と、
この最適化処理実行手段によって構成した新しい回路ブロックを前記回路ブロック監視手段で不具合の生じた論理部を含む回路ブロックと交代させて新たな運用を開始させる回路ブロック交代手段
とを具備することを特徴とするFPGAを用いた回路再構成システム。
【請求項6】
前記回路ブロック初期構成手段によって初期的に構成した回路ブロックごとに、これらの回路ブロックを構成する前記論理部に不具合が発生して前記回路ブロック交代手段による交代が必要とされるときに交代後の回路ブロックを構成するために必要な回路部品に関する情報を記したテーブルが用意されていることを特徴とする請求項5記載のFPGAを用いた回路再構成システム。
【請求項7】
前記交代後の回路ブロックは、これを構成する前記論理部同士を接続する前記接続部が交代前の回路ブロックの該当する接続部と信号の伝達するタイミングが可能な限り同一となるように前記特定領域に形成された多数の回路部品の中の未使用の部品から予め選択されたものであることを特徴とする請求項6記載のFPGAを用いた回路再構成システム。
【請求項8】
前記テーブルに前記初期的に構成した回路ブロックの1つに対して交代後の回路ブロックを複数構成するために必要な回路部品に関する情報が複数通り記載されているとき、これらを優先順位に従って選択する優先順位選択手段を更に具備することを特徴とする請求項5記載のFPGAを用いた回路再構成システム。
【請求項9】
FPGA(Field Programmable Gate Array)を構成する基板上の特定領域に形成された多数の回路部品の中から適宜選択して組み合わせることでそれぞれ所望の特性の論理回路として機能する幾つかの論理部を構成すると共に、前記多数の回路部品の中から適宜選択して前記論理部の間を電気的に接続するための部品としての接続部を構成することで、それぞれひとまとまりの回路機能を有する回路ブロックを所望の数だけ初期的に構成する回路ブロック初期構成ステップと、
この回路ブロック初期構成ステップで構成したそれぞれの回路ブロックが運用中のときにこれらの動作を監視して不具合の生じた論理部を含む回路ブロックを検出する回路ブロック監視ステップと、
この回路ブロック監視ステップによって不具合の生じた論理部を含む回路ブロックが検出されたときその回路ブロックを構成する前記論理部のそれぞれと回路としての特性が同一の新たな論理部と前記接続部と信号の伝達するタイミングが可能な限り同一となる新たな接続部とを備えた回路ブロックを前記特定領域に形成された多数の回路部品の中の未使用部分から最適化処理によって構成する最適化処理実行ステップと、
この最適化処理実行ステップによって構成した新しい回路ブロックを前記回路ブロック監視ステップで不具合の生じた論理部を含む回路ブロックと交代させて新たな運用を開始させる回路ブロック交代ステップ
とを具備することを特徴とするFPGAを用いた回路再構成方法。
【請求項10】
コンピュータが、
FPGA(Field Programmable Gate Array)を構成する基板上の特定領域に形成された多数の回路部品の中から適宜選択して組み合わせることでそれぞれ所望の特性の論理回路として機能する幾つかの論理部を構成すると共に、前記多数の回路部品の中から適宜選択して前記論理部の間を電気的に接続するための部品としての接続部を構成することで、それぞれひとまとまりの回路機能を有する回路ブロックを所望の数だけ初期的に構成する回路ブロック初期構成処理と、
この回路ブロック初期構成処理で構成したそれぞれの回路ブロックが運用中のときにこれらの動作を監視して不具合の生じた論理部を含む回路ブロックを検出する回路ブロック監視処理と、
この回路ブロック監視処理によって不具合の生じた論理部を含む回路ブロックが検出されたときその回路ブロックを構成する前記論理部のそれぞれと回路としての特性が同一の新たな論理部と前記接続部と信号の伝達するタイミングが可能な限り同一となる新たな接続部とを備えた回路ブロックを前記特定領域に形成された多数の回路部品の中の未使用部分から最適化処理によって構成する最適化処理実行処理と、
この最適化処理実行処理によって構成した新しい回路ブロックを前記回路ブロック監視処理で不具合の生じた論理部を含む回路ブロックと交代させて新たな運用を開始させる回路ブロック交代処理
とを実行することを特徴とするFPGAを用いた回路再構成プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate


【公開番号】特開2012−204898(P2012−204898A)
【公開日】平成24年10月22日(2012.10.22)
【国際特許分類】
【出願番号】特願2011−65331(P2011−65331)
【出願日】平成23年3月24日(2011.3.24)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】