(57)【特許請求の範囲】
【請求項１】
ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）を構成する基板上の特定領域に形成された多数の回路部品の中から適宜選択して組み合わせることでそれぞれ所望の特性の論理回路として機能する幾つかの論理部を構成すると共に、前記多数の回路部品の中から適宜選択して前記論理部の間を電気的に接続するための部品としての接続部を構成することで、それぞれひとまとまりの回路機能を有する回路ブロックを所望の数だけ初期的に構成する回路ブロック初期構成手段と、
前記回路ブロック初期構成手段で構成したそれぞれの回路ブロックが運用中のときにこれらの動作を監視して不具合の生じた論理部を含む回路ブロックを検出する回路ブロック監視手段と、
前記ＦＰＧＡを構成する基板上の常時動作領域の動作を監視し前記常時動作領域の不具合を検知すると共に、当該不具合の発生要因である前記常時動作領域の構成要素を検出する常時動作領域監視手段と、
前記回路ブロック監視手段によって不具合の生じた論理部を含む回路ブロックが検出されたときその回路ブロックを構成する前記論理部のそれぞれと回路としての特性が同一の新たな論理部と前記接続部と信号の伝達するタイミングが可能な限り同一となる新たな接続部とを備えた回路ブロックを、前記特定領域に形成された多数の回路部品の中の未使用部分を最適化処理することで算出し、前記常時動作領域監視手段によって前記常時動作領域の不具合が検知されると共に当該不具合の発生要因である前記常時動作領域の構成要素が検出されたとき、当該不具合を解消する前記ＦＰＧＡの新しい構成を、当該不具合の発生要因である前記常時動作領域の構成要素と、過去に不具合が生じた全ての前記論理部と、前記常時動作領域で過去に不具合の発生要因となった全ての前記常時動作領域の構成要素と、を除いた前記ＦＰＧＡを構成する基板上の全領域を最適化処理することで算出する最適化処理実行手段と、
前記最適化処理実行手段が前記特定領域に形成された多数の回路部品の中の未使用部分を最適化処理することで算出した回路ブロックを、前記回路ブロック監視手段で不具合の生じた論理部を含む回路ブロックと交代させて新たな運用を開始させ、前記最適化処理実行手段が最適化処理することで算出した前記ＦＰＧＡの新たな構成によって、前記ＦＰＧＡの新たな運用を開始させるＦＰＧＡ制御手段
とを具備することを特徴とするＦＰＧＡ。
【請求項２】
前記回路ブロック初期構成手段によって初期的に構成した回路ブロックごとに、これらの回路ブロックを構成する前記論理部に不具合が発生して前記回路ブロック交代手段による交代が必要とされるときに交代後の回路ブロックを構成するために必要な回路部品に関する情報を記したテーブルが用意されていることを特徴とする請求項１記載のＦＰＧＡ。
【請求項３】
前記交代後の回路ブロックは、これを構成する前記論理部同士を接続する前記接続部が前記交代前の回路ブロックの該当する接続部と信号の伝達するタイミングが可能な限り同一となるように前記特定領域に形成された多数の回路部品の中の未使用の部品から予め選択されたものであることを特徴とする請求項２記載のＦＰＧＡ。
【請求項４】
前記テーブルに前記初期的に構成した回路ブロックの１つに対して交代後の回路ブロックを複数構成するために必要な回路部品に関する情報が複数通り記載されているとき、これらを優先順位に従って選択する優先順位選択手段を更に具備することを特徴とする請求項２記載のＦＰＧＡ。
【請求項５】
同一基板上の特定領域に多数の回路部品を形成したＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）と、
前記ＦＰＧＡの前記多数の回路部品の中から適宜選択して組み合わせることでそれぞれ所望の特性の論理回路として機能する幾つかの論理部を構成すると共に、前記多数の回路部品の中から適宜選択して前記論理部の間を電気的に接続するための部品としての接続部を構成することで、それぞれひとまとまりの回路機能を有する回路ブロックを所望の数だけ初期的に構成する回路ブロック初期構成手段と、
前記回路ブロック初期構成手段で構成したそれぞれの回路ブロックが運用中のときにこれらの動作の監視結果として不具合の生じた論理部を含む回路ブロックが検出されたときこの通知を受ける回路ブロック監視手段と、
前記同一基板上の常時動作領域の動作を監視し前記常時動作領域の不具合を検知すると共に、当該不具合の発生要因である前記常時動作領域の構成要素を検出する常時動作領域監視手段と、
前記回路ブロック監視手段によって不具合の生じた論理部を含む回路ブロックが検出されたことが通知されたとき、その回路ブロックを構成する前記論理部のそれぞれと回路としての特性が同一の新たな論理部と前記接続部と信号の伝達するタイミングが可能な限り同一となる新たな接続部とを備えた回路ブロックを、前記特定領域に形成された多数の回路部品の中の未使用部分を最適化処理することで算出し、前記常時動作領域監視手段によって前記常時動作領域の不具合が検知されると共に当該不具合の発生要因である前記常時動作領域の構成要素が検出されたとき、当該不具合を解消する前記ＦＰＧＡの新しい構成を、当該不具合の発生要因である前記常時動作領域の構成要素と、過去に不具合が生じた全ての前記論理部と、前記常時動作領域で過去に不具合の発生要因となった全ての前記常時動作領域の構成要素と、を除いた前記ＦＰＧＡを構成する基板上の全領域を最適化処理することで算出する最適化処理実行手段と、
前記最適化処理実行手段が前記特定領域に形成された多数の回路部品の中の未使用部分を最適化処理することで算出した回路ブロックを、前記回路ブロック監視手段で不具合の生じた論理部を含む回路ブロックと交代させて新たな運用を開始させ、前記最適化処理実行手段が最適化処理することで算出した前記ＦＰＧＡの新たな構成によって、前記ＦＰＧＡの新たな運用を開始させるＦＰＧＡ制御手段
とを具備することを特徴とするＦＰＧＡを用いた回路再構成システム。
【請求項６】
前記回路ブロック初期構成手段によって初期的に構成した回路ブロックごとに、これらの回路ブロックを構成する前記論理部に不具合が発生して前記回路ブロック交代手段による交代が必要とされるときに交代後の回路ブロックを構成するために必要な回路部品に関する情報を記したテーブルが用意されていることを特徴とする請求項５記載のＦＰＧＡを用いた回路再構成システム。
【請求項７】
前記交代後の回路ブロックは、これを構成する前記論理部同士を接続する前記接続部が交代前の回路ブロックの該当する接続部と信号の伝達するタイミングが可能な限り同一となるように前記特定領域に形成された多数の回路部品の中の未使用の部品から予め選択されたものであることを特徴とする請求項６記載のＦＰＧＡを用いた回路再構成システム。
【請求項８】
前記テーブルに前記初期的に構成した回路ブロックの１つに対して交代後の回路ブロックを複数構成するために必要な回路部品に関する情報が複数通り記載されているとき、これらを優先順位に従って選択する優先順位選択手段を更に具備することを特徴とする請求項５記載のＦＰＧＡを用いた回路再構成システム。
【請求項９】
ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）を構成する基板上の特定領域に形成された多数の回路部品の中から適宜選択して組み合わせることでそれぞれ所望の特性の論理回路として機能する幾つかの論理部を構成すると共に、前記多数の回路部品の中から適宜選択して前記論理部の間を電気的に接続するための部品としての接続部を構成することで、それぞれひとまとまりの回路機能を有する回路ブロックを所望の数だけ初期的に構成する回路ブロック初期構成ステップと、
前記回路ブロック初期構成ステップで構成したそれぞれの回路ブロックが運用中のときにこれらの動作を監視して不具合の生じた論理部を含む回路ブロックを検出する回路ブロック監視ステップと、
前記ＦＰＧＡを構成する基板上の常時動作領域の動作を監視し前記常時動作領域の不具合を検知すると共に、当該不具合の発生要因である前記常時動作領域の構成要素を検出する常時動作領域監視ステップと、
前記回路ブロック監視ステップによって不具合の生じた論理部を含む回路ブロックが検出されたときその回路ブロックを構成する前記論理部のそれぞれと回路としての特性が同一の新たな論理部と前記接続部と信号の伝達するタイミングが可能な限り同一となる新たな接続部とを備えた回路ブロックを、前記特定領域に形成された多数の回路部品の中の未使用部分を最適化処理することで算出し、前記常時動作領域監視ステップによって前記常時動作領域の不具合が検知されると共に当該不具合の発生要因である前記常時動作領域の構成要素が検出されたとき、当該不具合を解消する前記ＦＰＧＡの新しい構成を、当該不具合の発生要因である前記常時動作領域の構成要素と、過去に不具合が生じた全ての前記論理部と、前記常時動作領域で過去に不具合の発生要因となった全ての前記常時動作領域の構成要素と、を除いた前記ＦＰＧＡを構成する基板上の全領域を最適化処理することで算出する最適化処理実行ステップと、
前記最適化処理実行ステップが前記特定領域に形成された多数の回路部品の中の未使用部分を最適化処理することで算出した回路ブロックを、前記回路ブロック監視手段で不具合の生じた論理部を含む回路ブロックと交代させて新たな運用を開始させ、前記最適化処理実行ステップが最適化処理することで算出した前記ＦＰＧＡの新たな構成によって、前記ＦＰＧＡの新たな運用を開始させるＦＰＧＡ制御ステップ
とを具備することを特徴とするＦＰＧＡを用いた回路再構成方法。
【請求項１０】
コンピュータが、
ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）を構成する基板上の特定領域に形成された多数の回路部品の中から適宜選択して組み合わせることでそれぞれ所望の特性の論理回路として機能する幾つかの論理部を構成すると共に、前記多数の回路部品の中から適宜選択して前記論理部の間を電気的に接続するための部品としての接続部を構成することで、それぞれひとまとまりの回路機能を有する回路ブロックを所望の数だけ初期的に構成する回路ブロック初期構成処理と、
前記回路ブロック初期構成ステップで構成したそれぞれの回路ブロックが運用中のときにこれらの動作を監視して不具合の生じた論理部を含む回路ブロックを検出する回路ブロック監視処理と、
前記ＦＰＧＡを構成する基板上の常時動作領域の動作を監視し前記常時動作領域の不具合を検知すると共に、当該不具合の発生要因である前記常時動作領域の構成要素を検出する常時動作領域監視処理と、
前記回路ブロック監視処理によって不具合の生じた論理部を含む回路ブロックが検出されたときその回路ブロックを構成する前記論理部のそれぞれと回路としての特性が同一の新たな論理部と前記接続部と信号の伝達するタイミングが可能な限り同一となる新たな接続部とを備えた回路ブロックを、前記特定領域に形成された多数の回路部品の中の未使用部分を最適化処理することで算出し、前記常時動作領域監視処理によって前記常時動作領域の不具合が検知されると共に当該不具合の発生要因である前記常時動作領域の構成要素が検出されたとき、当該不具合を解消する前記ＦＰＧＡの新しい構成を、当該不具合の発生要因である前記常時動作領域の構成要素と、過去に不具合が生じた全ての前記論理部と、前記常時動作領域で過去に不具合の発生要因となった全ての前記常時動作領域の構成要素と、を除いた前記ＦＰＧＡを構成する基板上の全領域を最適化処理することで算出する最適化処理実行処理と、
前記最適化処理実行処理が前記特定領域に形成された多数の回路部品の中の未使用部分を最適化処理することで算出した回路ブロックを、前記回路ブロック監視手段で不具合の生じた論理部を含む回路ブロックと交代させて新たな運用を開始させ、前記最適化処理実行ステップが最適化処理することで算出した前記ＦＰＧＡの新たな構成によって、前記ＦＰＧＡの新たな運用を開始させるＦＰＧＡ制御処理
とを実行することを特徴とするＦＰＧＡを用いた回路再構成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＦＰＧＡ、ＦＰＧＡを用いた回路再構成システム、ＦＰＧＡを用いた回路再構成方法およびＦＰＧＡを用いた回路再構成プログラムに関する。
【背景技術】
【０００２】
各種の電子装置の小型化の要請は強く、基板の実装面積が制限される傾向にある。このような状況の下で、ＦＰＧＡ（Field Programmable Gate Array）を使用してこれに論理設計を施すことによって回路規模を縮小することが有望視されている。ＦＰＧＡは、柔軟な設計が容易であり、装置の重要な機能部分から雑多な各種の機能部分までの多くの機能部分を実現することができる。
【０００３】
このようなＦＰＧＡの優れた特徴は、時として電子装置に致命傷をもたらす場合がある。装置の比較的重要な機能部分が不具合を起こした場合はもちろんのこと、雑多な機能部分の一部に不具合を生じた場合であっても、これらの機能部分を構成するＦＰＧＡの故障とされることになる場合があるからである。
【０００４】
信頼性を要求される電子装置では、使用する基板を冗長化して、故障が発生した時にもシステムの二重化により電子装置の運用を継続する手法を採っている。このような二重化を採用しない電子装置では、ＦＰＧＡで発生した不具合によって装置の運用が停止してしまう可能性がある。このような場合で装置の運用が停止した際には、ＦＰＧＡを搭載した基板を交換することで復旧が可能である。しかしながら復旧作業までの時間が無駄になるのと作業者の人件費が掛かるという問題が生じる。
【０００５】
このような問題を生じさせないために電子装置に内蔵する基板に同一のＦＰＧＡを複数配置して、ＦＰＧＡの二重化を行うことも検討されている。しかしながら、同一のＦＰＧＡを複数配置することは基板の大型化を招くだけでなく、電子装置のコストアップに繋がるおそれがある。
【０００６】
そこで、本発明に関連する関連技術として、部分再構成（パーシャルリコンフィグレーション）可能なＦＰＧＡを使用することが提案されている（たとえば特許文献１、特許文献２参照）。
【０００７】
図１１は、本発明の関連技術の１つとして図示しない基板に搭載されたＦＰＧＡの機能的な構成を表わしたものである。ＦＰＧＡ１００は、回路的に常時機能する常時動作部分１０１と、それ以外の領域としての空きリソース分１０２に分けられる。空きリソース分１０２には、電子装置の設計者が任意の回路部分を構成することができる。図１１に示した例では、空きリソース分１０２の一部に、第１〜第３の静的再構成部分１０３1〜１０３3を構成している。ここで静的再構成部分１０３1〜１０３3とは、入出力される信号のタイミングを特に考慮することなく回路部品を組み合わせることで構成した回路をいう。図１１に示した例では、第１の静的再構成部分１０３1に信号が入力され、第３の静的再構成部分１０３3まで順次信号処理が行われ、第３の静的再構成部分１０３3から処理結果が出力されるようになっている。
【０００８】
第１〜第３の静的再構成部分１０３1〜１０３3のそれぞれは、他の一般の回路と同様であるが、何らかの原因で信号処理に不具合を発生させる可能性がある。そこで、空きリソース分１０２には、第１〜第３の静的再構成部分１０３1〜１０３3のいずれかに不具合が発生したときの検出を行う監視用に第１〜第３の監視部１０４1〜１０４3が設けられている。
【０００９】
更に空きリソース分１０２には、第１〜第３の静的再構成部分１０３1〜１０３3のいずれかに不具合が検出された場合に備えて第１〜第３の静的再構成可能領域１０５1〜１０５3が用意されている。第１〜第３の静的再構成可能領域１０５1〜１０５3は、予備として設けられた領域である。したがって、第１〜第３の静的再構成部分１０３1〜１０３3に何ら不具合が発生していない状態で具体的な回路として動作するものではない。
【００１０】
図１２は、本発明の関連技術で第１の静的再構成可能領域に不具合が発生したときのＦＰＧＡの回路構成の変化の様子を示したものである。第１の静的再構成部分１０３1に不具合が発生すると、第１の監視部１０４1がこれを検出する。すると、常時動作部分１０１がこの検出結果を基にして、不具合を生じた第１の静的再構成部分１０３1に代わる回路部分を第１の静的再構成可能領域１０５1に構成する。そして、矢印１１１で示すように、第１の静的再構成可能領域１０５1を第１の静的再構成部分１０３1の代わりの回路部分として切り替える。
【００１１】
この結果、たとえば第１〜第３の静的再構成部分１０３1〜１０３3を順に経るようにした信号処理は、第１の静的再構成可能領域１０５1、第２、第３の静的再構成部分１０３2、１０３3を順に経る信号処理に変更される。このようにＦＰＧＡ１００の一部の回路に不具合が発生しても、ＦＰＧＡ１００の全体としてはシステムダウンを生じることなく運用が継続可能になる。
【００１２】
しかしながら、空きリソース分１０２とされる領域に故障機能を再構成すると、再構成した機能部以降の回路部分が十分な能力を発揮できないことがある。これは、たとえば再構成された機能部が原因して、最適化された内部クロックのタイミングや出力ディレイに誤差が生じる場合があるからである。
【００１３】
図１３〜図１５を用いて関連技術による問題を説明する。図１３（Ａ）で第１〜第３の論理部１２１〜１２３は、図１１における第１〜第３の静的再構成部分１０３1〜１０３3にそれぞれ対応する回路部分である。第１〜第３の論理部１２１〜１２３は、ＦＰＧＡ１２０を構成する図示しない多数の回路部品の中から部品を適宜組み合わせることで構成する。
【００１４】
第１〜第３の論理部１２１〜１２３には、それぞれ内部クロック１２４が供給される。第１の論理部１２１には、信号１２５が供給され、所定の処理が行われた結果として信号１２６を出力する。信号１２６は第２の論理部１２２の入力となる。第２の論理部１２２は信号１２７を出力する。信号１２７は第３の論理部１２３の入力となる。第３の論理部１２３は信号１２８を出力する。
【００１５】
ＦＰＧＡ１２０内の第１〜第３の再構成可能部１３１〜１３３は、図１１における第１〜第３の静的再構成可能領域１０５1〜１０５3にそれぞれ対応する回路部分である。図１３（Ａ）は第１〜第３の論理部１２１〜１２３にいずれも不具合が発生していない状態を示している。したがって、第１〜第３の再構成可能部１３１〜１３３のいずれにも内部クロックの供給はなく、処理すべき信号の入出力も存在しない。
【００１６】
なお、図１３（Ａ）で第１の論理部１２１と第２の論理部１２１の間の信号１２６が伝送される伝送路および第２の論理部１２２と第３の論理部１２３の間の信号１２７が伝送される伝送路は、配線等の良導体で構成され、かつ短い道のりとなっているものと仮定している。したがって、たとえば第１の論理部１２１から出力される信号も第２の論理部１２２に入力される信号も電気的な特性は同一なものとして扱うことができるので、これらを特に区別せず信号１２６として表わしている。信号１２７についても同様である。
【００１７】
図１３（Ｂ）は、第１〜第３の論理部が正常に動作しているときの第１および第２の論理部の接続箇所における動作タイミングを表わしたものである。同図（イ）に示すように第２の論理部１２２には所定の周期の内部クロック１２４が供給されている。同図（イ）および（ロ）に示すように第１の論理部１２１から出力される信号１２６のほぼ中央位置で、内部クロック１２４が立ち上がる。したがって、内部クロック１２４の立ち上がりに同期して第２の論理部１２２が信号１２６を入力することで、信号１２６の入力処理が安定する。
【００１８】
図１４は、ＦＰＧＡ１２０内の第１の論理部１２１で何らかの不具合が発生した直後の状態を示したものである。不具合発生の直後のため、同図（Ａ）および同図（Ｂ）には特に変化が生じていない。
【００１９】
図１５は、不具合の生じた第１の論理部に代わって第１の再構成論理部が処理を開始したときの回路の構成とその動作を示したものである。第１の論理部１２１が不具合によって使用できなくなると、同図（Ａ）の矢印１４０で示すように第１の再構成可能部１３１が第１の再構成論理部として構成される。そして、ＦＰＧＡ１２０における端子間の接続情報のデータを表わしたネットリスト（図示せず）が変更されると、第１の論理部１２１に入力していた信号１２５が第１の再構成論理部１３１に入力先を変更される。
【００２０】
この結果、第１の再構成論理部１３１から信号１４１が新たに出力される。この信号１４１は、図１４の例の場合と比較して「余計に存在する」伝送路部分１４２を経てその特性を変化させ、信号１４３として第２の論理部１２２に入力することになる。
【００２１】
図１５（Ｂ）は、図１５（Ａ）に示した回路変更が行われた後の第１の再構成論理部と第２の論理部の接続箇所における動作タイミングを表わしたものである。同図（イ）に示すように第１の再構成論理部１３１に入力される内部クロック１２４は第１の論理部１２１に入力していたものと同一である。したがって、第１の再構成論理部１３１自体が第１の論理部１２１と厳密に同一の特性の論理部として再構成されているとすると、同図（ロ）に示すように信号１４１は図１４（Ｂ）に示した信号１２６と全く同一のタイミングで第１の再構成論理部１３１から出力されることになる。
【先行技術文献】
【特許文献】
【００２２】
【特許文献１】特開２００１−１３６０５８号公報（第００１２段落、第００１３段落、図１）
【特許文献２】特開２００９−１４０３５３号公報（第００３３段落〜第００４１段落、図１〜図３）
【発明の概要】
【発明が解決しようとする課題】
【００２３】
しかしながら、第１の再構成論理部１３１はＦＰＧＡ１２０における第１の論理部１２１の構成されていた場所とは異なった場所に構成される。このため、第１の再構成論理部１３１の出力側と第２の論理部１２２の入力側を結ぶ「余計に存在する」伝送路部分１４２の長さやそれを構成する回路部品が信号の伝送のタイミングに影響する。この結果、たとえば図１５（Ｂ）の（ロ）および（ハ）に示すように第２の論理部１２２に入力される信号１４３は信号１４１が、たとえば内部クロック１２４の半周期分だけ遅延したものとなる。
【００２４】
もちろん、実際には第１の再構成論理部１３１と第２の論理部１２１の間の伝送路の方が回路構成が単純である等の理由があって、第１の論理部１２１と第２の論理部１２１の間の伝送路の方が遅延をより生じる場合もある。しかしながらこの場合でも伝送経路の違いによって両伝送路の間に信号の伝達時間の違いが生じ得る点は同一である。したがって、ここでは図１５（Ｂ）の（ハ）に示すような量の遅延が信号１４３に生じたものとする。
【００２５】
信号１４３の遅延の程度によっては、第２の論理部１２２の取り込みに誤動作を生じやすくなる。これが第３の論理部１２３から出力される信号１２８の不正の要因となる。同様のことが第２の論理部１２２や第３の論理部１２３を第２の再構成論理部１３２あるいは第３の再構成論理部１３３に切り替えたときにも生じうる。
【００２６】
以上、３つの論理部で１つの回路を構成する場合を説明したが、１つの回路を構成する論理部の数に関係なく同様の問題が発生する。すなわち、１つ１つの論理部を回路的には同一種類の回路部品を組み合わせて同一の特性の回路として構成しても、これらを接続する伝送路が導線のみで構成されるとは限らず、スイッチング素子等のタイミングをずらすおそれのある回路部品が介在する可能性がある。したがって、たとえば論理部同士を接続する伝送経路が異なってくると、信号の伝達するタイミングが異なってくる可能性があり、ＦＰＧＡを使用した装置に誤動作を生じさせる原因となる。
【００２７】
そこで本発明の目的は、回路の一部に不具合が生じて新たな回路を同一基板内に再構成する場合に、この新たな回路との関係で伝送される信号のタイミングに不具合が生じないようにすることが可能なＦＰＧＡ、ＦＰＧＡを用いた回路再構成システム、ＦＰＧＡを用いた回路再構成方法およびＦＰＧＡを用いた回路再構成プログラムを提供することにある。
【課題を解決するための手段】
【００２８】
本発明では、（イ）同一基板上の特定領域に形成された多数の回路部品の中から適宜選択して組み合わせることでそれぞれ所望の特性の論理回路として機能する幾つかの論理部を構成すると共に、前記した多数の回路部品の中から前記した論理部の間を電気的に接続するための部品としての接続部を構成することで、それぞれひとまとまりの回路機能を有する回路ブロックを所望の数だけ初期的に構成する回路ブロック初期構成手段と、（ロ）この回路ブロック初期構成手段で構成したそれぞれの回路ブロックが運用中のときにこれらの動作を監視して不具合の生じた論理部を含む回路ブロックを検出する回路ブロック監視手段と、（ハ）この回路ブロック監視手段によって不具合の生じた論理部を含む回路ブロックが検出されたときその回路ブロックを構成する前記した論理部のそれぞれと回路としての特性が同一の新たな論理部と前記した接続部と信号の伝達するタイミングが可能な限り同一となる新たな接続部とを備えた回路ブロックを前記した特定領域に形成された多数の回路部品の中の未使用部分から最適化処理によって構成する最適化処理実行手段と、（ニ）この最適化処理実行手段によって構成した新しい回路ブロックを前記した回路ブロック監視手段で不具合の生じた論理部を含む回路ブロックと交代させて新たな運用を開始させる回路ブロック交代手段とをＦＰＧＡ（Field Programmable Gate Array）が具備する。
【００２９】
また、本発明では、（イ）同一基板上の特定領域に多数の回路部品を形成したＦＰＧＡ（Field Programmable Gate Array）と、（ロ）このＦＰＧＡの前記した多数の回路部品の中から適宜選択して組み合わせることでそれぞれ所望の特性の論理回路として機能する幾つかの論理部を構成すると共に、前記した多数の回路部品の中から前記した論理部の間を電気的に接続するための部品としての接続部を構成することで、それぞれひとまとまりの回路機能を有する回路ブロックを所望の数だけ初期的に構成する回路ブロック初期構成手段と、（ハ）この回路ブロック初期構成手段で構成したそれぞれの回路ブロックが運用中のときにこれらの動作の監視結果として不具合の生じた論理部を含む回路ブロックが検出されたときこの通知を受ける回路ブロック監視手段と、（ニ）この回路ブロック監視手段によって不具合の生じた論理部を含む回路ブロックが検出されたことが通知されたとき、その回路ブロックを構成する前記した論理部のそれぞれと回路としての特性が同一の新たな論理部と前記した接続部と信号の伝達するタイミングが可能な限り同一となる新たな接続部とを備えた回路ブロックを前記した特定領域に形成された多数の回路部品の中の未使用部分から最適化処理によって構成する最適化処理実行手段と、（ホ）この最適化処理実行手段によって構成した新しい回路ブロックを前記した回路ブロック監視手段で不具合の生じた論理部を含む回路ブロックと交代させて新たな運用を開始させる回路ブロック交代手段とをＦＰＧＡを用いた回路再構成システムが具備する。
【００３０】
更に本発明では、（イ）ＦＰＧＡ（Field Programmable Gate Array）を構成する基板上の特定領域に形成された多数の回路部品の中から適宜選択して組み合わせることでそれぞれ所望の特性の論理回路として機能する幾つかの論理部を構成すると共に、前記した多数の回路部品の中から前記した論理部の間を電気的に接続するための部品としての接続部を構成することで、それぞれひとまとまりの回路機能を有する回路ブロックを所望の数だけ初期的に構成する回路ブロック初期構成ステップと、（ロ）この回路ブロック初期構成ステップで構成したそれぞれの回路ブロックが運用中のときにこれらの動作を監視して不具合の生じた論理部を含む回路ブロックを検出する回路ブロック監視ステップと、（ハ）この回路ブロック監視ステップによって不具合の生じた論理部を含む回路ブロックが検出されたときその回路ブロックを構成する前記した論理部のそれぞれと回路としての特性が同一の新たな論理部と前記した接続部と信号の伝達するタイミングが可能な限り同一となる新たな接続部とを備えた回路ブロックを前記した特定領域に形成された多数の回路部品の中の未使用部分から最適化処理によって構成する最適化処理実行ステップと、（ニ）この最適化処理実行ステップによって構成した新しい回路ブロックを前記した回路ブロック監視ステップで不具合の生じた論理部を含む回路ブロックと交代させて新たな運用を開始させる回路ブロック交代ステップとをＦＰＧＡを用いた回路再構成方法が具備する。
【００３１】
更にまた本発明では、コンピュータが、ＦＰＧＡを用いた回路再構成プログラムとして、（イ）ＦＰＧＡ（Field Programmable Gate Array）を構成する基板上の特定領域に形成された多数の回路部品の中から適宜選択して組み合わせることでそれぞれ所望の特性の論理回路として機能する幾つかの論理部を構成すると共に、前記した多数の回路部品の中から前記した論理部の間を電気的に接続するための部品としての接続部を構成することで、それぞれひとまとまりの回路機能を有する回路ブロックを所望の数だけ初期的に構成する回路ブロック初期構成処理と、（ロ）この回路ブロック初期構成処理で構成したそれぞれの回路ブロックが運用中のときにこれらの動作を監視して不具合の生じた論理部を含む回路ブロックを検出する回路ブロック監視処理と、（ハ）この回路ブロック監視処理によって不具合の生じた論理部を含む回路ブロックが検出されたときその回路ブロックを構成する前記した論理部のそれぞれと回路としての特性が同一の新たな論理部と前記した接続部と信号の伝達するタイミングが可能な限り同一となる新たな接続部とを備えた回路ブロックを前記した特定領域に形成された多数の回路部品の中の未使用部分から最適化処理によって構成する最適化処理実行処理と、（ニ）この最適化処理実行処理によって構成した新しい回路ブロックを前記した回路ブロック監視処理で不具合の生じた論理部を含む回路ブロックと交代させて新たな運用を開始させる回路ブロック交代処理とを実行する。
【発明の効果】
【００３２】
以上説明したように本発明によれば、ＦＰＧＡを構成する基板上の特定領域に形成された多数の回路部品の中から適宜選択して論理部を構成するだけでなく、これら論理部を接続する接続部の動作タイミングについて最適化を図ったので論理部を複数組み合わせて再構成した回路ブロックの電気的な特性を可能な限り元の回路ブロックに近付けることができる。これによりＦＰＧＡを使用した装置の安定的な動作と長寿命化を達成することができる。
【図面の簡単な説明】
【００３３】
【図１】本発明のＦＰＧＡのクレーム対応図である。
【図２】本発明のＦＰＧＡを用いた回路再構成システムのクレーム対応図である。
【図３】本発明のＦＰＧＡを用いた回路再構成方法のクレーム対応図である。
【図４】本発明のＦＰＧＡを用いた回路再構成プログラムのクレーム対応図である。
【図５】本発明の実施の形態におけるＦＰＧＡの機能的な構成の概要を表わした機能ブロック図である。
【図６】本実施の形態の工場出荷前における回路ブロックとこれに対応する監視回路部分の一例についてその構成と要部のタイミング関係を示したブロック図およびタイミング図である。
【図７】本実施の形態のＦＰＧＡ内の第１の論理部に何らかの不具合が発生した直後の状態を示したブロック図および要部タイミング図である。
【図８】本実施の形態の第１の論理部に不具合が発生したことにより論理部構成可能領域に新たな回路ブロックとして構成される第１〜第３の論理部を示したブロック図および要部タイミング図である。
【図９】本実施の形態のＦＰＧＡにおける制御部の行う故障処理の様子を表わした流れ図である。
【図１０】本発明の変形例の論理部の不具合の発生を検出する手法を示した説明図である。
【図１１】本発明の関連技術の１つとして図示しない基板に搭載されたＦＰＧＡの機能的な構成を表わした説明図である。
【図１２】本発明の関連技術の第１の静的再構成可能領域に不具合が発生したときのＦＰＧＡの回路構成の変化の様子を示した説明図である。
【図１３】図１１における第１〜第３の静的再構成部分にそれぞれ対応する回路部分の構成と要部のタイミング関係を示したブロック図およびタイミング図である。
【図１４】図１１に示したＦＰＧＡにおける第１の論理部で何らかの不具合が発生した直後の図１３に示す回路部分の構成と要部のタイミング関係を示したブロック図およびタイミング図である。
【図１５】不具合の生じた第１の論理部に代わって第１の再構成論理部が処理を開始したときの図１３に示す回路部分の構成と要部のタイミング関係を示したブロック図およびタイミング図である。
【発明を実施するための形態】
【００３４】
図１は、本発明のＦＰＧＡ（Field Programmable Gate Array）のクレーム対応図を示したものである。本発明のＦＰＧＡ１０は、回路ブロック初期構成手段１１と、回路ブロック監視手段１２と、最適化処理実行手段１３と、回路ブロック交代手段１４を備えている。ここで、回路ブロック初期構成手段１１は、同一基板上の特定領域に形成された多数の回路部品の中から適宜選択して組み合わせることでそれぞれ所望の特性の論理回路として機能する幾つかの論理部を構成すると共に、前記した多数の回路部品の中から前記した論理部の間を電気的に接続するための部品としての接続部を構成することで、それぞれひとまとまりの回路機能を有する回路ブロックを所望の数だけ初期的に構成する。回路ブロック監視手段１２は、回路ブロック初期構成手段１１で構成したそれぞれの回路ブロックが運用中のときにこれらの動作を監視して不具合の生じた論理部を含む回路ブロックを検出する。最適化処理実行手段１３は、回路ブロック監視手段１２によって不具合の生じた論理部を含む回路ブロックが検出されたときその回路ブロックを構成する前記した論理部のそれぞれと回路としての特性が同一の新たな論理部と前記した接続部と信号の伝達するタイミングが可能な限り同一となる新たな接続部とを備えた回路ブロックを前記した特定領域に形成された多数の回路部品の中の未使用部分から最適化処理によって構成する。回路ブロック交代手段１４は、最適化処理実行手段１３によって構成した新しい回路ブロックを回路ブロック監視手段１２で不具合の生じた論理部を含む回路ブロックと交代させて新たな運用を開始させる。
【００３５】
図２は、本発明のＦＰＧＡ（Field Programmable Gate Array）を用いた回路再構成システムのクレーム対応図を示したものである。本発明のＦＰＧＡを用いた回路再構成システム２０は、ＦＰＧＡ２１と、回路ブロック初期構成手段２２と、回路ブロック監視手段２３と、最適化処理実行手段２４と、回路ブロック交代手段２５を備えている。ここで、ＦＰＧＡ２１は、同一基板上の特定領域に多数の回路部品を形成したデバイスである。回路ブロック初期構成手段２２は、ＦＰＧＡ２１の前記した多数の回路部品の中から適宜選択して組み合わせることでそれぞれ所望の特性の論理回路として機能する幾つかの論理部を構成すると共に、前記した多数の回路部品の中から前記した論理部の間を電気的に接続するための部品としての接続部を構成することで、それぞれひとまとまりの回路機能を有する回路ブロックを所望の数だけ初期的に構成する。回路ブロック監視手段２３は、回路ブロック初期構成手段２２で構成したそれぞれの回路ブロックが運用中のときにこれらの動作の監視結果として不具合の生じた論理部を含む回路ブロックが検出されたときこの通知を受ける。最適化処理実行手段２４は、回路ブロック監視手段２３によって不具合の生じた論理部を含む回路ブロックが検出されたことが通知されたとき、その回路ブロックを構成する前記した論理部のそれぞれと回路としての特性が同一の新たな論理部と前記した接続部と信号の伝達するタイミングが可能な限り同一となる新たな接続部とを備えた回路ブロックを前記した特定領域に形成された多数の回路部品の中の未使用部分から最適化処理によって構成する。回路ブロック交代手段２５は、最適化処理実行手段２４によって構成した新しい回路ブロックを回路ブロック監視手段２３で不具合の生じた論理部を含む回路ブロックと交代させて新たな運用を開始させる。
【００３６】
図３は、本発明のＦＰＧＡ（Field Programmable Gate Array）を用いた回路再構成方法のクレーム対応図を示したものである。本発明のＦＰＧＡを用いた回路再構成方法３０は、回路ブロック初期構成ステップ３１と、回路ブロック監視ステップ３２と、最適化処理実行ステップ３３と、回路ブロック交代ステップ３４を備えている。ここで、回路ブロック初期構成ステップ３１では、ＦＰＧＡを構成する基板上の特定領域に形成された多数の回路部品の中から適宜選択して組み合わせることでそれぞれ所望の特性の論理回路として機能する幾つかの論理部を構成すると共に、前記した多数の回路部品の中から前記した論理部の間を電気的に接続するための部品としての接続部を構成することで、それぞれひとまとまりの回路機能を有する回路ブロックを所望の数だけ初期的に構成する。回路ブロック監視ステップ３２では、回路ブロック初期構成ステップ３１で構成したそれぞれの回路ブロックが運用中のときにこれらの動作を監視して不具合の生じた論理部を含む回路ブロックを検出する。最適化処理実行ステップ３３では、回路ブロック監視ステップ３２によって不具合の生じた論理部を含む回路ブロックが検出されたときその回路ブロックを構成する前記した論理部のそれぞれと回路としての特性が同一の新たな論理部と前記した接続部と信号の伝達するタイミングが可能な限り同一となる新たな接続部とを備えた回路ブロックを前記した特定領域に形成された多数の回路部品の中の未使用部分から最適化処理によって構成する。回路ブロック交代ステップ３４では、最適化処理実行ステップ３３によって構成した新しい回路ブロックを回路ブロック監視ステップ３２で不具合の生じた論理部を含む回路ブロックと交代させて新たな運用を開始させる。
【００３７】
図４は、本発明のＦＰＧＡ（Field Programmable Gate Array）を用いた回路再構成プログラムのクレーム対応図を示したものである。本発明のＦＰＧＡを用いた回路再構成プログラム４０は、コンピュータが、回路ブロック初期構成処理４１と、回路ブロック監視処理４２と、最適化処理実行処理４３と、回路ブロック交代処理４４を実行させるようにしている。ここで、回路ブロック初期構成処理４１では、ＦＰＧＡを構成する基板上の特定領域に形成された多数の回路部品の中から適宜選択して組み合わせることでそれぞれ所望の特性の論理回路として機能する幾つかの論理部を構成すると共に、前記した多数の回路部品の中から前記した論理部の間を電気的に接続するための部品としての接続部を構成することで、それぞれひとまとまりの回路機能を有する回路ブロックを所望の数だけ初期的に構成する。回路ブロック監視処理４２では、回路ブロック初期構成処理４１で構成したそれぞれの回路ブロックが運用中のときにこれらの動作を監視して不具合の生じた論理部を含む回路ブロックを検出する。最適化処理実行処理４３では、回路ブロック監視処理４２によって不具合の生じた論理部を含む回路ブロックが検出されたときその回路ブロックを構成する前記した論理部のそれぞれと回路としての特性が同一の新たな論理部と前記した接続部と信号の伝達するタイミングが可能な限り同一となる新たな接続部とを備えた回路ブロックを前記した特定領域に形成された多数の回路部品の中の未使用部分から最適化処理によって構成する。回路ブロック交代処理４４では、最適化処理実行処理４３によって構成した新しい回路ブロックを回路ブロック監視処理４２で不具合の生じた論理部を含む回路ブロックと交代させて新たな運用を開始させる。
【００３８】
＜発明の実施の形態＞
【００３９】
次に本発明の実施の形態を説明する。
【００４０】
図５は、本発明の実施の形態におけるＦＰＧＡの機能的な構成の概要を表わしたものである。ＦＰＧＡ２００は、常時動作部２０１と、論理部構成可能領域２０２および監視部構成領域２０３によって構成されている。ここで常時動作部２０１は、回路装置として常時機能している部分である。
【００４１】
常時動作部２０１にはＣＰＵ（Central Processing Unit）２１１と、このＣＰＵ２１１が実行する制御プログラムを格納したメモリ２１２からなる制御部２１３と、最適化処理部２１４および回路ブロック対応テーブル２１５から構成されている。ここで最適化処理部２１４は、後に説明する一部の論理部に不具合が発生した結果その論理部を再構成するときに、信号処理のタイミングを考慮した最適化のための処理を行う部分である。この最適化処理部２１４は、独自のハードウェアとしてＦＰＧＡ２００に予め作り込んでおいてもよいし、制御部２１３がソフトウェア的に実現するようになっていてもよい。
【００４２】
回路ブロック対応テーブル２１５は、不具合が発生した論理部を含む１つの回路ブロックに代わる候補となる回路ブロックを予めテーブルとして用意するものである。本実施の形態の場合、候補となる回路ブロックは、不具合が発生した論理部の正常時に実現していた信号処理のタイミングが実現するように事前に最適化されたものとなっている。したがって、回路ブロック対応テーブル２１５に用意された回路ブロックを選択すれば、図１５（Ｂ）で説明した信号１４３のようにタイミングのずれた信号の発生を防止することができる。本実施の形態では単純に同一の回路機能の論理部を組み合わせる「静的再構成」を行うものではなく、回路ブロックを構成する論理部の間での信号の遅延をも考慮した「動的再構成」を行っているからである。
【００４３】
本明細書で１つ１つの「回路ブロック」は、図１３に示した第１〜第３の論理部１２１〜１２３のように複数の論理部とこれらを接続する信号伝送路を備えたロジックセルや内部配線等の回路部品の集合体をいうものとする。回路ブロック対応テーブル２１５はメモリ２１２の一部を構成する不揮発性メモリ領域で構成することができる。
【００４４】
常時動作部２０１には、この他、外部から基準クロックを入力して内部クロックを生成するクロック生成回路や常時動作部２０１内の不具合を検出する常時動作部内監視部（共に図示せず）等の常時動作する幾つかの回路部分が存在している。
【００４５】
論理部に不具合が生じた場合で、これを構成する回路ブロックが回路ブロック対応テーブル２１５に登録されていない場合があるとする。このような場合には、最適化処理部２１４は不具合を生じた論理部を有する回路ブロックと可能な限り同一の特性となる回路ブロックを回路部品の組み合わせによる演算によって求めることになる。したがって、ＦＰＧＡ２００によっては回路ブロック対応テーブル２１５を充実させることで最適化処理部２１４による最適化処理を事実上省略することができ、反対に最適化処理部２１４のみを備えることで回路ブロック対応テーブル２１５を不要とすることも可能である。
【００４６】
論理部構成可能領域２０２および監視部構成領域２０３は、前記したロジックセルや内部配線等の回路部品から構成されており、これらを適宜組み合わせることで論理部や監視部の回路を形成する。このうちの論理部を構成するために割り当てた領域が論理部構成可能領域２０２であり、残りの領域が監視部を構成するための監視部構成領域２０３となる。監視部構成領域２０３は、構成された論理部のそれぞれについて不具合が発生しているか否かを信号の入出力状態によって監視するようになっている。監視部構成領域２０３の一部には、個々の論理部の不具合の発生を検出するための監視用データを格納した監視用データ格納部２２１が配置されている。
【００４７】
図６は、工場出荷前における回路ブロックとこれに対応する監視回路部分の一例についてその構成と要部のタイミング関係を示したものである。図５と共に説明する。
【００４８】
図６（Ａ）で第１〜第３の論理部２３１〜２３３は１つの回路ブロックの一例を示したものであり、ＦＰＧＡ２００内の論理部構成可能領域２０２を構成する図示しない多数の回路部品の中から部品を適宜組み合わせることで構成している。第１の論理部２３１は監視部構成領域２０３を構成する第１の監視部２４１によって監視される。同様に第２の論理部２３２は監視部構成領域２０３を構成する第２の監視部２４２によって監視され、第３の論理部２３３は監視部構成領域２０３を構成する第３の監視部２４３によって監視される。第１〜第３の監視部２４１〜２４３は、第１〜第３の論理部２３１〜２３３を工場出荷前に構成した時点で、これらに合わせて構成したものである。第１〜第３の監視部２４１〜２４３も監視部構成領域２０３を構成する図示しない多数の回路部品の中から部品を適宜組み合わせることで構成する。
【００４９】
第１〜第３の論理部２３１〜２３３には、それぞれ内部クロック２５１が供給される。また第１の論理部２３１には、信号２５５が供給され、信号２５６が出力される。信号２５６は第２の論理部２３２の入力となる。第２の論理部２３２は信号２５７を出力する。信号２５７は第３の論理部２３３の入力となる。第３の論理部２３３は信号２５８を出力する。
【００５０】
一方、第１の監視部２４１は、第１の論理部２３１から運用中に出力される監視用データ２６１を入力する。第１の監視部２４１はこの監視用データ２６１を監視用データ格納部２２１に格納された第１の論理部２３１用の監視用照合データ２７１と対比して第１の論理部２３１に不具合が発生したかを監視する。
【００５１】
同様に第２および第３の監視部２４２、２４３は、第２および第３の論理部２３２、２３３から運用中に出力される監視用データ２６２、２６３のうちの対応するものを入力する。第２および第３の監視部２４２、２４３は、監視用データ２６２、２６３のうちの対応するものを監視用データ格納部２２１に格納された第２あるいは第３の論理部２３２、２３３用の監視用照合データ２７２、２７３と対比して、第２あるいは第３の論理部２３２、２３３に不具合が発生したかを監視する。
【００５２】
監視用データ格納部２２１に格納する監視用照合データ２７１としては、たとえば第１の論理部２３１が正常に初期作動した時にこれから出力される監視用データ２６１を使用するようにする。そして、第１の論理部２３１が運用を開始した後にこれから逐次出力される監視用データ２６１を監視用照合データ２７１と照合し、両者が一致している間は第１の論理部２３１に不具合が発生していないものと判別する。また、監視用データ２６１と監視用照合データ２７１が不一致となれば、第１の論理部２３１に不具合が発生していると判別する。監視用データ格納部２２１に格納する他の監視用照合データ２７２、２７３についても同様である。
【００５３】
図６（Ｂ）は、第１〜第３の論理部が正常に動作している状態での第１および第２の論理部の接続箇所における動作タイミングを表わしたものである。同図（イ）に示すように第２の論理部２３２には所定の周期の内部クロック２５１が供給されている。同図（イ）および（ロ）に示すように第１の論理部２３１から出力される信号２５６のほぼ中央位置で、内部クロック２５１が立ち上がる。このように、内部クロック２５１の立ち上がりに同期して第２の論理部２３２が信号２５６を入力することで、その入力処理が安定している。
【００５４】
図７は、ＦＰＧＡ内の第１の論理部に何らかの不具合が発生した直後の状態を示したものである。この時点は不具合の発生直後のため、監視用データ２６１を入力する第１の監視部２４１は第１の論理部２３１での不具合をまだ検出していない。また、同図（Ｂ）（イ）に示す内部クロック２５１、（ロ）に示す第１の論理部２３１の出力する信号２５６および（ハ）に示す第２の論理部２３２に入力する信号２５６にも変化はない。
【００５５】
図８（Ａ）は、第１の論理部に不具合が発生したことにより論理部構成可能領域に新たな回路ブロックとして構成される第１〜第３の論理部を示したものである。図５と共に説明する。図５に示す論理部構成可能領域２０２には、今回の例で図６に示す第１〜第３の論理部２３１〜２３３を含む回路ブロック等の幾つかの回路ブロックが工場出荷に先立って構成されている。ただし、説明の便宜上、第１〜第３の論理部２３１〜２３３に対応する新たな回路ブロック以外は図示していない。第１〜第３の論理部２３１〜２３３を含む回路ブロックの中で、今回の例では第１の論理部２３１が不具合を発生させて、使用不可の状態となっている。
【００５６】
本実施の形態では、このような場合、論理部構成可能領域２０２における未使用領域２８１、すなわち回路ブロックを新たに構成することができる空間領域に存在する回路部品を使用して、今まで使用していた回路ブロックと全く別個に回路ブロックを構成する。これが第１〜第３の論理部２９１〜２９３を備えた回路ブロックである。
【００５７】
回路ブロック対応テーブル２１５には、図６に示した第１〜第３の論理部２３１〜２３３を構成する回路ブロックに対応させて幾つかの回路ブロックが登録されている。図５における論理部構成可能領域２０２に既に構成されている図示しない回路ブロックについても、それらの代替用の回路ブロックを構成する具体的な回路部品の配置内容が回路ブロック対応テーブル２１５に登録されている。これら代替用の回路ブロックは、たとえば第１〜第３の論理部２９１〜２９３を構成する回路ブロックの場合、図６に示した第１〜第３の論理部２３１〜２３３を構成したときと同様の回路部品の配置環境となっている場所が選択されることで回路特性の最適化が図られている。
【００５８】
不具合を生じた論理部を含む回路ブロックごとにこれらの代替のための候補となる回路ブロックを回路ブロック対応テーブル２１５に複数通り登録しておけば、他の回路ブロックに不具合が生じてその代替用の回路ブロックに一部の回路部品が先に使用されてしまっても、回路部品が重複しない場所に配置される他の回路ブロックを選択することができる。
【００５９】
以上は、回路ブロック対応テーブル２１５を使用して論理部に不具合の生じた回路ブロックを他の回路ブロックに代える場合の説明である。もちろん、図５に示す最適化処理部２１４を使用して第１〜第３の論理部２３１〜２３３とこれらを接続する伝送路からなる回路ブロックに回路特性でできるだけ似通った特性の第１〜第３の論理部２９１〜２９３を未使用領域２８１の回路部品の中から選択して構成するようにしてもよい。
【００６０】
以上の処理が行われる結果として、第１の論理部２３１に不具合が生じたとき、未使用領域２８１に第１〜第３の論理部２９１〜２９３を備えた回路ブロックが新たに構成されることになる。そして、第１〜第３の論理部２９１〜２９３のそれぞれに内部クロック２５１が供給され、第１の論理部２９１には信号２５５が供給される。この結果、新たに構成された第１の論理部２９１からは信号３０１が出力され、これが信号３０２として新たに構成された第２の論理部２９２に供給される。
【００６１】
第２の論理部２９２からは信号３０３が出力され、これが信号３０４として新たに構成された第３の論理部２９３に供給される。第３の論理部２９３からは信号３０５が出力される。第１〜第３の論理部２９１〜２９３を備えた回路ブロックが図６に示した第１〜第３の論理部２３１〜２３３を構成する回路ブロックに限りなく近い特性を有していれば、信号３０５は図６における第３の論理部２３３から出力される信号２５８とその特性が限りなく近くなる。
【００６２】
図８（Ｂ）は、第１の論理部から出力される信号と第２の論理部に供給される信号のタイミングを表わしたものである。このうち同図（Ａ）は内部クロック２５１を表わしている。同図（イ）および（ロ）に示すように第１の論理部２９１から出力される信号３０１のほぼ中央位置で、内部クロック２５１が立ち上がる。また、同図（イ）および（ハ）に示すように、内部クロック２５１の立ち上がりに同期して第２の論理部２９２が信号３０２を入力する。これにより信号３０２の入力処理が安定し、図１５で説明したような不正な信号処理が回避される。
【００６３】
図９は、以上のような概要のＦＰＧＡにおける制御部の行う故障処理の様子を表わしたものである。ここで「故障」とは、たとえば図６に示した第１〜第３の論理部２３１〜２３３の不具合を含むＦＰＧＡ２００の各種不具合を包括する概念をいう。図５に示した監視部構成領域２０３に構成される第１の監視部２４１等の監視部（図６）による監視結果で不具合が検出されると、検出内容が制御部２１３に故障として通知される。前記した常時動作部内監視部は常時動作部２０１内の不具合を検出してその結果を制御部２１３に通知するようになっている。以下、図９を図５および図６と共に説明する。
【００６４】
制御部２１３は故障の検出が行われるかを待機している（ステップＳ４０１）。故障が検出されると（Ｙ）、制御部２１３は常時動作部２０１が故障しているかを判別する（ステップＳ４０２）。これは、故障の部位が常時動作部２０１か、あるいはそれ以外の部位としての論理部構成可能領域２０２または監視部構成領域２０３であるかの切り分けを行うためである。
【００６５】
常時動作部２０１が故障していると判別した場合（ステップＳ４０２：Ｙ）、制御部２１３は過去に故障の通知が行われた論理部や常時動作部２０１における故障が判明している回路部分を除いたＦＰＧＡ２００全体を使用して、その再構成を行う。このため、最適化処理部２１４はこれら故障が判明した部分を除いたＦＰＧＡ２００のすべての領域で、必要な回路部分を構成するための最適化の計算を行う（ステップＳ４０３）。そして、ＦＰＧＡ２００をリセットして必要な回路部分を再構成して（ステップＳ４０４）、処理を終了し（エンド）、運用が再開できるようにする。ここで必要な回路部分とは、常時動作部２０１と、論理部構成可能領域２０２における必要な回路ブロックと、監視部構成領域２０３における回路ブロックの不具合を検出する監視部である。
【００６６】
一方、ステップＳ４０２で常時動作部２０１以外の故障であると判別した場合（Ｎ）、制御部２１３は故障の通知のあった回路ブロックが回路ブロック対応テーブル２１５にすでに登録されているかをチェックする（ステップＳ４０５）。回路ブロック対応テーブル２１５に登録されている場合には（Ｙ）、代替する回路ブロックとして示されている回路ブロックがその判別した時点で代替可能であるかを判別する（ステップＳ４０６）。これは、他の回路ブロックが以前に故障して、そのときに今回の代替候補とされる回路ブロックを構成する回路部品がすでに使用されているとき、今回の代替候補とされる回路ブロックは使用できなくなるからである。もちろん、回路ブロック対応テーブル２１５に代替候補が２以上登録されている場合には、代替候補とされる回路ブロックの全部が使用済みとなっていない限り、代替可能な回路ブロックの候補が存在することになる。
【００６７】
代替可能な回路ブロックが存在する場合（ステップＳ４０６：Ｙ）、制御部２１３はその回路ブロックを論理部構成可能領域２０２に再構成することになる（ステップＳ４０７）。このとき、代替可能な回路ブロックが複数存在する場合には、そのうちの１つを代替用の回路ブロックとして選択する。この場合に回路ブロックの選択について、回路特性等の理由で優先順位が定められている場合にはそれに従う。
【００６８】
このようにして故障した回路ブロックに代わる回路ブロックが再構成されたら、制御部２１３は故障前に使用していた監視部を再構成後の回路ブロックに接続するようにその部分の伝送路を再構成する（ステップＳ４０８）。これに代えて再構成された回路ブロックに接続する監視部を監視部構成領域２０３に再構成することも可能である。ステップＳ４０８の処理により、ＦＰＧＡ２００は回路ブロックの再構成による運用再開のための処理が終了する（エンド）。
【００６９】
一方、回路ブロック対応テーブル２１５に故障した回路ブロックが登録されていない場合がある（ステップＳ４０５：Ｎ）。一例を挙げると、故障した回路ブロックが一度再構成した回路ブロックであるような場合である。このような場合や、回路ブロック対応テーブル２１５に登録した回路ブロックであっても代替候補となる回路ブロックを再構成できないことが判明した場合には（ステップＳ４０６：Ｎ）、最適化処理部２１４を用いた回路ブロックの再構成が行われることになる（ステップＳ４０９）。
【００７０】
この回路ブロックの再構成処理は、ステップＳ４０３およびステップＳ４０４の処理に類似している。すなわち、ステップＳ４０９では過去に故障の通知が行われた論理部における故障が判明している回路部分を除いた論理部構成可能領域２０２の全体を使用して、該当する回路ブロックの再構成を行う。このため、最適化処理部２１４は故障が判明した部分を除いた論理部構成可能領域２０２のすべての未使用領域で、必要な回路部分を構成するための最適化の計算を行う。そして、ＦＰＧＡ２００をリセットして新たな回路ブロックを再構成して、処理を終了することになる（エンド）。
【００７１】
ステップＳ４０３あるいはステップＳ４０９による最適化処理は、制御部２１３がコンパイラ（compiler）を搭載して、対象となる領域に存在する回路部品に関するデータをコンパイルすることによって行う。コンパイラを使用した最適化処理を行うことで、個々の回路ブロックに対応する再構成候補の回路ブロックを予め演算して回路ブロック対応テーブル２１５に登録する処理を省くことができる。また、最適化処理を行うことで該当する回路ブロックの最低限の動作が保証されるため、ＦＰＧＡ２００が致命的なシステムダウンとなることがなく、故障前と同等の機能の提供が可能になる。もちろん、最適化処理部２１４を使用して最適化処理を行った場合には、ＦＰＧＡ２００の容量が大きいほど最適化処理のための各種データのコンパイル時間が長時間化するので、ＦＰＧＡ２００の運用再開までの時間が長く掛かることになる。
【００７２】
本実施の形態では回路ブロック対応テーブル２１５を用いる手法と最適化処理部２１４を用いる手法を併用している。したがって、論理部構成可能領域２０２に回路ブロックを再構成する多くの場合にその時間を短縮することができ、かつこれに対応できない故障にも対処することができる。
【００７３】
また、実施の形態では回路ブロック単位で再構成を行うことにした。これにより、一部の論理部のみを再構成する場合と比較すると、論理部構成可能領域２０２に新たに再構成した論理部と前の回路ブロックにおける不具合の生じていない論理部とを接続する伝送路が長くなったり大きく迂回する事態の発生を軽減できる場合が多くなる。これにより、その伝送路部分を構成する回路部分による信号の遅延等の回路特性の劣化による誤動作の発生を減少させることが可能になる。また、この結果、ＦＰＧＡ２００およびこれを使用した装置の長寿命化を低コストで実現することができることになる。
【００７４】
なお、以上説明した実施の形態の回路ブロック対応テーブル２１５では、回路ブロックのどの論理部に故障が発生したかを判別することなく、故障の生じた回路ブロックに対応する新たな回路ブロックを選択させてその再構成を行うことにした。本発明はこれに限るものではなく、故障の生じた回路ブロックのどの論理部に不具合が発生したかを判別し、その判別結果に応じて新たな回路ブロックを選択させてその再構成を行うようにしてもよい。この場合に、故障の生じた回路ブロックを構成する複数の論理部の全部で不具合が発生しているのか、どの論理部とどの論理部で不具合が発生しているかというような詳細な不具合の様子を判別して、これに応じて再構成する回路ブロックをより具体的な内容とすることができる。
【００７５】
また、以上説明した実施の形態ではＦＰＧＡ２００が常時動作部２０１にＣＰＵ２１１等からなる制御部２１３を備える構成としたが、これに限るものではない。ＣＰＵ２１１を内部に組み込んでいないＦＰＧＡについても、外部に配置されたＣＰＵを接続して制御することで、実施の形態と同様に常時動作部２０１を再構成したり、回路ブロックを同様に再構成することができる。外部にはＣＰＵ２１１だけでなく、メモリ２１２、最適化処理部２１４および回路ブロック対応テーブル２１５を配置する構成でもよい。言い換えると、常時動作部２０１そのものをＦＰＧＡ２００の外に配置する構成となっていてもよい。
【００７６】
更に実施の形態では図５に示した監視用データ格納部２２１に監視用照合データ２７１等の照合用のデータを格納しておき第１の監視部２４１等の監視部が第１の論理部２３１等の論理部から運用時に出力される監視用データ２６１等のデータと照合して、一致や不一致を比較することで不具合の検出を行った。本発明の故障検出は、これに限るものではない。なお、監視用データ格納部２２１をＦＰＧＡ２００の外に配置する構成となっていてもよいことは当然である。
【００７７】
図１０は、論理部の不具合の発生を検出する他の手法を説明するためのものである。この変形例のＦＰＧＡ２００Ａには、先の実施の形態と同様に第１〜第３の論理部２３１〜２３３が構成されているものとする。このうちの第１の論理部２３１は監視用データ２６１Ａを第１の監視部２４１Ａに入力するようになっている。同様に、第２および第３の論理部２３２、２３３も監視用データ２６２Ａあるいは２６３Ａを第２の監視部２４２Ａあるいは第３の監視部２４３Ａに入力するようになっている。この変形例では、第１〜第３の監視部２４１Ａ〜２４３Ａが第１〜第３の論理部障害要因レジスタ３１１Ａ〜３１３Ａを備えている。
【００７８】
第１の論理部障害要因レジスタ３１１Ａを例に採って具体的に説明する。第１の論理部障害要因レジスタ３１１Ａは、第１の論理部２３１が正常なときに第１の監視部２４１Ａに入力される監視用データ２６１Ａとしての値「０ｂ００００」と共に、障害の各要因ごとの値を登録している。たとえば第１の要因で障害が発生するときの監視用データ２６１Ａの値は「０ｂ０００１」であり、第２の要因で障害が発生するときの監視用データ２６１Ａの値は「０ｂ００１０」である。
【００７９】
第１の論理部障害要因レジスタ３１１Ａが第１〜第４の要因と正常時の値を登録しているとすると、第１の監視部２４１Ａは監視用データ２６１Ａがどの値に一致するかを逐次比較する。そして、その比較結果を図１０では図示を省略している制御部に通知する。このようにして、ＦＰＧＡ２００Ａの制御部は、不具合が発生したときの要因を第１〜第３の論理部２３１〜２３３について常に監視することができ、回路ブロックの再構成が必要となる時点を判断することができる。
【００８０】
たとえば第１の論理部２３１にとって第１の要因が比較的重い故障要因であるとすれば、制御部はこれが確認された時点で第１の論理部２３１を含む回路ブロックの再構成を決定する。また、第１の論理部２３１にとって第２の要因が比較的軽い故障要因であるとすると、第２および第３の論理部２３２、２３３が正常である間は回路ブロックの再構成を見合わせる。そして、たとえば第２の論理部２３２にも比較的軽い故障要因が発生したような場合に、これらの組み合わせが回路ブロックの再構成の基準に該当していれば、第１および第２の論理部２３１、２３２を含む回路ブロックの再構成を決定することになる。
【００８１】
なお、実施の形態およびその変形例ではＦＰＧＡ２００、２００Ａについての論理部の動的な再構成について説明したが、本発明はを使用した情報通信装置や情報処理装置にも適用することができることは当然である。
【００８２】
以上説明した実施の形態の一部または全部は、以下の付記のようにも記載されるが、以下の記載に限定されるものではない。
【００８３】
（付記１）
同一基板上の特定領域に形成された多数の回路部品の中から適宜選択して組み合わせることでそれぞれ所望の特性の論理回路として機能する幾つかの論理部を構成すると共に、前記多数の回路部品の中から適宜選択して前記論理部の間を電気的に接続するための部品としての接続部を構成することで、それぞれひとまとまりの回路機能を有する回路ブロックを所望の数だけ初期的に構成する回路ブロック初期構成手段と、
この回路ブロック初期構成手段で構成したそれぞれの回路ブロックが運用中のときにこれらの動作を監視して不具合の生じた論理部を含む回路ブロックを検出する回路ブロック監視手段と、
この回路ブロック監視手段によって不具合の生じた論理部を含む回路ブロックが検出されたときその回路ブロックを構成する前記論理部のそれぞれと回路としての特性が同一の新たな論理部と前記接続部と信号の伝達するタイミングが可能な限り同一となる新たな接続部とを備えた回路ブロックを前記特定領域に形成された多数の回路部品の中の未使用部分から最適化処理によって構成する最適化処理実行手段と、
この最適化処理実行手段によって構成した新しい回路ブロックを前記回路ブロック監視手段で不具合の生じた論理部を含む回路ブロックと交代させて新たな運用を開始させる回路ブロック交代手段
とを具備することを特徴とするＦＰＧＡ（Field Programmable Gate Array）。
【００８４】
（付記２）
前記回路ブロック初期構成手段によって初期的に構成した回路ブロックごとに、これらの回路ブロックを構成する前記論理部に不具合が発生して前記回路ブロック交代手段による交代が必要とされるときに交代後の回路ブロックを構成するために必要な回路部品に関する情報を記したテーブルが用意されていることを特徴とする付記１記載のＦＰＧＡ。
【００８５】
（付記３）
前記交代後の回路ブロックは、これを構成する前記論理部同士を接続する前記接続部が前記交代前の回路ブロックの該当する接続部と信号の伝達するタイミングが可能な限り同一となるように前記特定領域に形成された多数の回路部品の中の未使用の部品から予め選択されたものであることを特徴とする付記２記載のＦＰＧＡ。
【００８６】
（付記４）
前記テーブルに前記初期的に構成した回路ブロックの１つに対して交代後の回路ブロックを複数構成するために必要な回路部品に関する情報が複数通り記載されているとき、これらを優先順位に従って選択する優先順位選択手段を更に具備することを特徴とする付記２記載のＦＰＧＡ。
【００８７】
（付記５）
同一基板上の特定領域に多数の回路部品を形成したＦＰＧＡ（Field Programmable Gate Array）と、
このＦＰＧＡの前記多数の回路部品の中から適宜選択して組み合わせることでそれぞれ所望の特性の論理回路として機能する幾つかの論理部を構成すると共に、前記多数の回路部品の中から適宜選択して前記論理部の間を電気的に接続するための部品としての接続部を構成することで、それぞれひとまとまりの回路機能を有する回路ブロックを所望の数だけ初期的に構成する回路ブロック初期構成手段と、
この回路ブロック初期構成手段で構成したそれぞれの回路ブロックが運用中のときにこれらの動作の監視結果として不具合の生じた論理部を含む回路ブロックが検出されたときこの通知を受ける回路ブロック監視手段と、
この回路ブロック監視手段によって不具合の生じた論理部を含む回路ブロックが検出されたことが通知されたとき、その回路ブロックを構成する前記論理部のそれぞれと回路としての特性が同一の新たな論理部と前記接続部と信号の伝達するタイミングが可能な限り同一となる新たな接続部とを備えた回路ブロックを前記特定領域に形成された多数の回路部品の中の未使用部分から最適化処理によって構成する最適化処理実行手段と、
この最適化処理実行手段によって構成した新しい回路ブロックを前記回路ブロック監視手段で不具合の生じた論理部を含む回路ブロックと交代させて新たな運用を開始させる回路ブロック交代手段
とを具備することを特徴とするＦＰＧＡを用いた回路再構成システム。
【００８８】
（付記６）
前記回路ブロック初期構成手段によって初期的に構成した回路ブロックごとに、これらの回路ブロックを構成する前記論理部に不具合が発生して前記回路ブロック交代手段による交代が必要とされるときに交代後の回路ブロックを構成するために必要な回路部品に関する情報を記したテーブルが用意されていることを特徴とする付記５記載のＦＰＧＡを用いた回路再構成システム。
【００８９】
（付記７）
前記交代後の回路ブロックは、これを構成する前記論理部同士を接続する前記接続部が交代前の回路ブロックの該当する接続部と信号の伝達するタイミングが可能な限り同一となるように前記特定領域に形成された多数の回路部品の中の未使用の部品から予め選択されたものであることを特徴とする付記６記載のＦＰＧＡを用いた回路再構成システム。
【００９０】
（付記８）
前記テーブルに前記初期的に構成した回路ブロックの１つに対して交代後の回路ブロックを複数構成するために必要な回路部品に関する情報が複数通り記載されているとき、これらを優先順位に従って選択する優先順位選択手段を更に具備することを特徴とする付記５記載のＦＰＧＡを用いた回路再構成システム。
【００９１】
（付記９）
ＦＰＧＡ（Field Programmable Gate Array）を構成する基板上の特定領域に形成された多数の回路部品の中から適宜選択して組み合わせることでそれぞれ所望の特性の論理回路として機能する幾つかの論理部を構成すると共に、前記多数の回路部品の中から適宜選択して前記論理部の間を電気的に接続するための部品としての接続部を構成することで、それぞれひとまとまりの回路機能を有する回路ブロックを所望の数だけ初期的に構成する回路ブロック初期構成ステップと、
この回路ブロック初期構成ステップで構成したそれぞれの回路ブロックが運用中のときにこれらの動作を監視して不具合の生じた論理部を含む回路ブロックを検出する回路ブロック監視ステップと、
この回路ブロック監視ステップによって不具合の生じた論理部を含む回路ブロックが検出されたときその回路ブロックを構成する前記論理部のそれぞれと回路としての特性が同一の新たな論理部と前記接続部と信号の伝達するタイミングが可能な限り同一となる新たな接続部とを備えた回路ブロックを前記特定領域に形成された多数の回路部品の中の未使用部分から最適化処理によって構成する最適化処理実行ステップと、
この最適化処理実行ステップによって構成した新しい回路ブロックを前記回路ブロック監視ステップで不具合の生じた論理部を含む回路ブロックと交代させて新たな運用を開始させる回路ブロック交代ステップ
とを具備することを特徴とするＦＰＧＡを用いた回路再構成方法。
【００９２】
（付記１０）
コンピュータが、
ＦＰＧＡ（Field Programmable Gate Array）を構成する基板上の特定領域に形成された多数の回路部品の中から適宜選択して組み合わせることでそれぞれ所望の特性の論理回路として機能する幾つかの論理部を構成すると共に、前記多数の回路部品の中から適宜選択して前記論理部の間を電気的に接続するための部品としての接続部を構成することで、それぞれひとまとまりの回路機能を有する回路ブロックを所望の数だけ初期的に構成する回路ブロック初期構成処理と、
この回路ブロック初期構成処理で構成したそれぞれの回路ブロックが運用中のときにこれらの動作を監視して不具合の生じた論理部を含む回路ブロックを検出する回路ブロック監視処理と、
この回路ブロック監視処理によって不具合の生じた論理部を含む回路ブロックが検出されたときその回路ブロックを構成する前記論理部のそれぞれと回路としての特性が同一の新たな論理部と前記接続部と信号の伝達するタイミングが可能な限り同一となる新たな接続部とを備えた回路ブロックを前記特定領域に形成された多数の回路部品の中の未使用部分から最適化処理によって構成する最適化処理実行処理と、
この最適化処理実行処理によって構成した新しい回路ブロックを前記回路ブロック監視処理で不具合の生じた論理部を含む回路ブロックと交代させて新たな運用を開始させる回路ブロック交代処理
とを実行することを特徴とするＦＰＧＡを用いた回路再構成プログラム。
【符号の説明】
【００９３】
１０、２１、２００、２００Ａ  ＦＰＧＡ
１１、２２  回路ブロック初期構成手段
１２、２３  回路ブロック監視手段
１３、２４  最適化処理実行手段
１４、２５  回路ブロック交代手段
２０  ＦＰＧＡを用いた回路再構成システム
３０  ＦＰＧＡを用いた回路再構成方法
３１  回路ブロック初期構成ステップ
３２  回路ブロック監視ステップ
３３  最適化処理実行ステップ
３４  回路ブロック交代ステップ
４０  ＦＰＧＡを用いた回路再構成プログラム
４１  回路ブロック初期構成処理
４２  回路ブロック監視処理
４３  最適化処理実行処理
４４  回路ブロック交代処理
２０１  常時動作部
２０２  論理部構成可能領域
２０３  監視部構成領域
２１１  ＣＰＵ
２１２  メモリ
２１３  制御部
２１４  最適化処理部
２１５  回路ブロック対応テーブル
２２１  監視用データ格納部
２３１  第１の論理部
２３２  第２の論理部
２３３  第３の論理部
２４１、２４１Ａ  第１の監視部
２４２、２４２Ａ  第２の監視部
２４３、２４３Ａ  第３の監視部
２５１  内部クロック
２６１、２６１Ａ、２６２、２６２Ａ、２６３、２６３Ａ  監視用データ
２７１、２７２、２７３  監視用照合データ
２９１  （再構成後の）第１の論理部
２９２  （再構成後の）第２の論理部
２９３  （再構成後の）第３の論理部
３０１、３０２  信号
【図１】
0005691715.tif 000002
【図２】
0005691715.tif 000003
【図３】
0005691715.tif 000004
【図４】
0005691715.tif 000005
【図５】
0005691715.tif 000006
【図６】
0005691715.tif 000007
【図７】
0005691715.tif 000008
【図８】
0005691715.tif 000009
【図９】
0005691715.tif 000010
【図１０】
0005691715.tif 000011
【図１１】
0005691715.tif 000012
【図１２】
0005691715.tif 000013
【図１３】
0005691715.tif 000014
【図１４】
0005691715.tif 000015
【図１５】
0005691715.tif 000016