(57)【特許請求の範囲】
【請求項１】
エラー訂正可能な複数の論理ブロックを含む論理回路と、
前記論理ブロック内に発生したエラーを検出するエラー検出部と、
前記エラー検出部で検出されたエラーの中からハードエラーを検出すると、少なくとも１つのハードエラー情報を出力するハードエラー検出部と、
前記ハードエラー検出部から出力されるハードエラー情報の数を計数するとともに、計数結果に基づいて前記論理ブロックが永久故障であるか否かを判断し、前記論理ブロックが永久故障である場合には、永久故障と判断された論理ブロックを正常な論理ブロックに切り替える切り替え指示を送出するエラー計数部と、
前記エラー計数部から前記切り替え指示が送出された場合に、永久故障と判断された論理ブロックを、正常な論理ブロックに切り替える再構成制御部と、
を具備し、
前記ハードエラー検出部は、前記エラー検出部から所定サイクル連続でエラーを検出した場合に前記ハードエラーが発生したと判定して少なくとも１つの前記ハードエラー情報を出力することを特徴とするエラー検出修復装置。
【請求項２】
前記エラー計数部は、前記計数結果が所定のしきい値を超えた場合に、前記論理ブロックが永久故障であると判断することを特徴とする請求項１に記載のエラー検出修復装置。
【請求項３】
前記エラー計数部は、前記ハードエラー検出部から所定期間の間、前記ハードエラー情報が出力されない場合、計数している前記ハードエラー情報の数を減算することを特徴とする請求項２に記載のエラー検出修復装置。
【請求項４】
前記エラー計数部は、前記ハードエラー情報を減算する際の減算値、前記しきい値および前記所定期間の少なくとも１つが可変設定されることを特徴とする請求項３に記載のエラー検出修復装置。
【請求項５】
前記複数の論理ブロックにテスト信号を入力することによって、前記複数の論理ブロックの中から永久故障が発生した論理ブロックを特定するテスト回路をさらに具備し、
前記再構成制御部は、前記テスト回路が特定した論理ブロックを、正常な論理ブロックに切り替えることを特徴とする請求項１から４のいずれか１つに記載のエラー検出修復装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路の内部に実装する機能が故障した場合に、自律的に機能を復元する回路修復装置に関する。
【背景技術】
【０００２】
半導体集積回路の微細化が進むにつれて、再構成可能な半導体集積回路の高集積化が進み、半導体集積回路が大規模なシステムに利用されるようになってきている。ところが、半導体プロセスの微細化および電源の低電圧化により、これまで問題にならなかった宇宙線が原因のソフトエラーによる問題も顕著になってきている。特に、社会基盤等のシステムにおいては、故障によるシステムダウンによって発生する経済的な損失は大きい。このため、故障発生時にもシステムを停止することなく、正常な状態に復旧する手段が求められている。
【０００３】
さらに、高信頼性が要求されるシステムでは、チップ内部トランジスタの故障や配線の断線などの永久故障が発生した場合であっても、その影響を回避し運用を継続できるロバスト性が必須となっている。
【０００４】
ソフトエラーによる一過性の故障に対しては、ＴＭＲ（Triple  Module  Redundancy：３重多数決回路）などの多重系や、冗長符号を用いた誤り訂正などの手法にて修復が可能となる。一方、構成回路の中に永久故障が発生した場合、一過性故障を検出する機能が損なわれ、信頼性が低下する。例えば、ＴＭＲの場合、３重構成のモジュールの１系統に永久故障が発生すると、永久故障モジュールの出力が異常となるので、他の正常な２系統にソフトエラーが発生した場合、多数決回路の出力結果が異常になる。
【０００５】
例えば、特許文献１に記載のコンピュータシステムでは、多数決回路によって、異常（障害）を検出し、異常検出回数を異常回数カウンタによってカウントしている。そして、カウント値が予め決められたしきい値を超えると、発生した障害が恒久性障害であると判定し、そうでない場合は、一過性障害であると判定している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−１３３４９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記従来の技術では、発生した障害が恒久性障害か一過性障害かの異常判定を、異常検出回数に基づいて行っているので、正確な異常判定を行うことができないという問題があった。また、恒久障害が発生したと判定された場合に、ＣＰＵモジュールの内部バスおよび制御信号を切り離しているに過ぎず、信頼性の高い動作を確保することはできないという問題があった。
【０００８】
本発明は、上記に鑑みてなされたものであって、システムの高い信頼性を長期間に亘って維持することが可能なエラー検出修復装置を得ることを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するために、本発明は、エラー訂正可能な複数の論理ブロックを含む論理回路と、前記論理ブロック内に発生したエラーを検出するエラー検出部と、前記エラー検出部で検出されたエラーの中からハードエラーを検出すると、少なくとも１つのハードエラー情報を出力するハードエラー検出部と、前記ハードエラー検出部から出力されるハードエラー情報の数を計数するとともに、計数結果に基づいて前記論理ブロックが永久故障であるか否かを判断し、前記論理ブロックが永久故障である場合には、永久故障と判断された論理ブロックを正常な論理ブロックに切り替える切り替え指示を送出するエラー計数部と、前記エラー計数部から前記切り替え指示が送出された場合に、永久故障と判断された論理ブロックを、正常な論理ブロックに切り替える再構成制御部と、を具備し、前記ハードエラー検出部は、前記エラー検出部から所定サイクル連続でエラーを検出した場合に前記ハードエラーが発生したと判定して少なくとも１つの前記ハードエラー情報を出力することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、システムの高い信頼性を長期間に亘って維持することが可能になるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施の形態１に係るエラー検出修復装置の構成を示す図である。
【図２】図２は、実施の形態１に係る機能ブロックの構成を示す図である。
【図３】図３は、実施の形態１に係るハードエラー検出回路の構成例を示す図である。
【図４】図４は、実施の形態１に係るハードエラー検出回路の他の構成例を示す図である。
【図５】図５は、永久故障判定方法の第１例を説明するための図である。
【図６】図６は、永久故障判定方法の第２例を説明するための図である。
【図７】図７は、永久故障判定方法の第３例を説明するための図である。
【図８】図８は、実施の形態３に係るエラー検出修復装置の構成を示す図である。
【図９】図９は、実施の形態３に係る機能ブロックの構成を示す図である。
【図１０】図１０は、実施の形態３に係るハードエラー検出回路の構成例を示す図である。
【図１１】図１１は、実施の形態３に係るテスト回路の動作手順を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下に、本発明の実施の形態に係るエラー検出修復装置を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。また、実施の形態の説明に用いる図では、フリップフロップのクロック端子への配線情報は省略している。
【００１３】
実施の形態１．
図１は、実施の形態１に係るエラー検出修復装置の構成を示す図である。エラー検出修復装置１００は、エラー訂正可能な論理ブロックの何れかが故障した場合に、ソフトエラー（一過性故障）／ハードエラー（永久故障）の判別機能により、ハードエラーを検出する装置である。エラー検出修復装置１００は、ハードエラーが発生した系統を他の系統から切り離し、ハードエラーした機能を正常な系統の予備回路によって復元（再構成）する。
【００１４】
エラー検出修復装置１００は、再構成制御部６と、ハードエラー検出回路（ハードエラー検出部）４と、エラーカウンタ（エラー計数部）５と、複数の機能ブロックと、を含んで構成されている。ここでは、エラー検出修復装置１００が、３つの機能ブロック１Ａ〜１Ｃを備えている場合について説明する。
【００１５】
機能ブロック１Ａ〜１Ｃは、それぞれ後述する訂正可能論理ブロック１１（エラー訂正が可能な機構を有する素子の集合）および後述するエラー検出回路１５を含んで構成されている。また、機能ブロック１Ａ〜１Ｃは、それぞれ信号入力線０Ａ〜０Ｃ、通常動作で使用する通常信号線２Ａ〜２Ｃおよびエラー報知信号線３Ａ〜３Ｃと結線されている。
【００１６】
ハードエラー検出回路４は、エラー報知信号線３Ａ〜３Ｃに接続されている。また、ハードエラー検出回路４とエラーカウンタ５とは、ハードエラー報知信号線７によって接続されている。また、エラーカウンタ５と再構成制御部６とは、再構成指示信号線９によって接続されている。また、再構成制御部６と前段回路（図示せず）とは、前段信号線１０によって接続されている。
【００１７】
再構成制御部６は、前段信号線１０を介して前段回路から送られてくる種々の入力情報（入力信号）を機能ブロック１Ａ〜１Ｃに入力するとともに、機能ブロック１Ａ〜１Ｃの再構成を制御する。
【００１８】
前段信号線１０は、前段回路から送られてくる種々の入力情報を再構成制御部６に送る信号線である。信号入力線０Ａ〜０Ｃは、再構成制御部６から送られてくる入力信号を機能ブロック１Ａ〜１Ｃに送る信号線である。また、通常信号線２Ａ〜２Ｃは、機能ブロック１Ａ〜１Ｃから送られてくる通常動作で使用する信号（通常信号）を他の機能ブロック（図示せず）や論理素子（図示せず）に送る信号線である。また、エラー報知信号線３Ａ〜３Ｃは、機能ブロック１Ａ〜１Ｃから送られてくるエラー情報（エラー判定情報）３ａ〜３ｃ（図示せず）をハードエラー検出回路４に送る信号線である。
【００１９】
通常信号線２Ａ〜２Ｃへ送出される通常信号は、他の機能ブロックや論理素子で通常のシステム動作に用いられる。機能ブロック１Ａ〜１Ｃに内包されるエラー検出回路１５は、論理回路内に存在するエラー訂正可能な論理ブロック（以下、訂正可能論理ブロック１１という）内で発生したエラーを検出し、エラー情報３ａ〜３ｃとしてエラー報知信号線３Ａ〜３Ｃを介してハードエラー検出回路４に報知する。
【００２０】
エラー報知信号線３Ａ〜３Ｃの何れかにエラー情報３ａ〜３ｃが報知されると、ハードエラー検出回路４は、エラー情報３ａ〜３ｃに基づいて、エラー情報３ａ〜３ｃがソフトエラーとハードエラーの何れによるものか（故障の種別）を解析する。ハードエラー検出回路４は、エラー情報３ａ〜３ｃがハードエラー（永久故障）である場合のみ、ハードエラー報知信号線７からエラーカウンタ５にハードエラーであることを示すハードエラー情報Ｘを報知する。
【００２１】
ハードエラー検出回路４からハードエラー報知信号線７にハードエラー情報Ｘが発行されると、エラーカウンタ５がハードエラー情報Ｘの発行回数を計数する。エラーカウンタ５は、パラメータ入力線８を介して送られてくるパラメータ入力情報と、エラーカウンタ５自体の計数値（計数結果）に基づいて、機能ブロック１Ａ〜１Ｃを再構成するか否かを判定する。
【００２２】
エラーカウンタ５は、再構成の必要条件が満たされると、再構成情報を更新し、再構成制御部６に再構成指示（再構成情報の送信）を行う。再構成情報は、永久故障と判断された論理ブロックを正常な論理ブロックに切り替える切り替え指示を含んでいる。エラーカウンタ５は、例えば、ハードエラー数（ハードエラー情報Ｘ）が所定数に達した場合に、再構成制御部６に再構成指示を行う。
【００２３】
再構成指示を受けた再構成制御部６は、再構成情報に基づいて、前段入力情報と出力（信号入力線０Ａ〜０Ｃ）の接続関係、および機能ブロック１Ａ〜１Ｃの内部状態を更新する。換言すると、再構成制御部６は、エラーカウンタ５から送られてくる再構成情報に基づいて、前段回路から送られてくる種々の入力情報を信号入力線０Ａ〜０Ｃに分配する。
【００２４】
これにより、再構成制御部６は、再構成情報に基づいて、故障した訂正可能論理ブロック１１を使用不可に設定し、正常なブロック（系）に切り替えさせる。別言すれば、ハードエラーが所定数に達した場合にエラー箇所が正常な系から切り離され、エラー箇所と等価な機能が復元される。
【００２５】
例えば、ＰＬＤ（Programmable  Logic  Device）の１種であるＦＰＧＡ（Field-Programmable  Gate  Array）を用いて動作系と待機系を構築しておく。そして、機能ブロック１Ａ〜１Ｃの何れかに永久障害が発生した場合には、再構成制御部６が、永久障害の発生した機能ブロックを待機系へ切り替えることにより、永久障害の発生した機能ブロックの再構成を行う。なお、機能ブロック１Ａ〜１Ｃの再構成は、何れの方法によって行ってもよく、上記方法に限定されない。
【００２６】
このように、エラー検出修復装置１００は、ハードエラーの発生数を管理し、ハードエラーの発生数に基づいて機能ブロック１Ａ〜１Ｃの再構成を行う。エラー検出修復装置１００は、半導体集積回路の内部に実装する機能が永久故障した場合、システムの動作を止める事なく、自律的に機能を復元する。
【００２７】
つぎに、機能ブロック１Ａ〜１Ｃの構成について説明する。なお、機能ブロック１Ａ〜１Ｃは、同様の構成を有しているので、ここでは機能ブロック１Ａの構成について説明する。
【００２８】
図２は、実施の形態１に係る機能ブロックの構成を示す図である。図２では、機能ブロック１Ａの内部構成を示している。機能ブロック１Ａは、訂正可能論理ブロック１１およびエラー検出回路（エラー検出部）１５を含んで構成されている。
【００２９】
ここでは、訂正可能論理ブロック１１の例として、訂正可能論理ブロック１１が、ＴＭＲ（Triple  Module  Redundancy：３重多数決回路）構成のフリップフロップを用いて動作する場合について説明する。
【００３０】
訂正可能論理ブロック１１は、３系統のフリップフロップ１２Ａ〜１２Ｃおよび多数決回路１４を有している。フリップフロップ１２Ａ〜１２Ｃへは、信号入力線０Ａからの入力信号が入力される。また、フリップフロップ１２Ａ〜１２Ｃは、それぞれ個別出力信号線１３Ａ〜１３Ｃに接続されている。個別出力信号線１３Ａ〜１３Ｃは、フリップフロップ１２Ａ〜１２Ｃとエラー検出回路１５とを接続するとともに、フリップフロップ１２Ａ〜１２Ｃと多数決回路１４とを接続する。
【００３１】
エラー検出回路１５は、入力側の信号線として個別出力信号線１３Ａ〜１３Ｃに接続され、出力側の信号線としてエラー報知信号線３Ａに接続されている。また、多数決回路１４は、入力側の信号線として個別出力信号線１３Ａ〜１３Ｃに接続され、出力側の信号線として通常信号線２Ａに接続されている。
【００３２】
フリップフロップ１２Ａ〜１２Ｃの何れかで故障が発生し、出力値が反転した場合、多数決回路１４で他の正常な２個のフリップフロップ出力が多数決により選択され、通常信号線２Ａ（多数決回路出力）に出力される。通常信号線２Ａに出力される出力信号は、通常動作にて使用される。
【００３３】
エラー検出回路１５は、訂正可能論理ブロック１１内の各フリップフロップ１２Ａ〜１２Ｃからの出力（個別出力信号線１３Ａ〜１３Ｃに送出される個別信号）を基に、エラー検出を行う。エラー検出回路１５は、個別出力信号線１３Ａ〜１３Ｃに送出される個別信号を入力とし、個別信号の全てが一致しない場合に、エラー報知信号線３Ａからエラー情報３ａを報知する。
【００３４】
なお、ここでは機能ブロック１Ａの構成がＴＭＲ構成のフリップフロップを有している場合について説明したが、機能ブロック１Ａの構成はこの構成に限らない。例えば、機能ブロック１Ａは、冗長符号を付与したＥＣＣ回路によってエラー訂正を行うフリップフロップを有するものや、周辺論理回路やメモリを含む更に高機能なブロックでエラー訂正を行うものでもよい。また、これらの場合はエラー訂正方式に基づいてエラー訂正が行われた際にエラーを報知するものとする。
【００３５】
図３は、実施の形態１に係るハードエラー検出回路の構成例を示す図である。ソフトエラーが原因の故障は、エラー訂正機能や前段回路からの入力値（入力情報）によって、次の動作サイクルで正しい値に更新される。このため、本実施の形態では２サイクル連続でエラーを検出した場合にハードエラーと判定する。
【００３６】
ハードエラー検出回路４は、ＯＲ回路２１、フリップフロップ２２，２３、ＡＮＤ回路２４を備えている。ＯＲ回路２１は、エラー報知信号線３Ａ〜３Ｃに接続されており、エラー報知信号線３Ａ〜３Ｃからのエラー情報３ａ〜３ｃが入力される。また、ＯＲ回路２１は、信号線２５に接続されており、エラー情報３ａ〜３ｃの論理和を信号線２５に出力する。
【００３７】
フリップフロップ２２は、信号線２５に接続されており、信号線２５からフリップフロップ２２へは、ＯＲ回路２１からの信号（エラー情報３ａ〜３ｃの論理和）が入力される。また、フリップフロップ２２は、信号線２６に接続されており、信号線２５からの信号を遅延させた信号を信号線２６に出力する。
【００３８】
ＡＮＤ回路２４は、信号線２５に接続されており、信号線２５からの信号（エラー情報３ａ〜３ｃの論理和）が入力される。また、ＡＮＤ回路２４は、信号線２６に接続されており、信号線２６からの信号が入力される。ＡＮＤ回路２４は、信号線２５からの信号と信号線２６からの信号の論理積を算出することによって、２サイクル連続でエラーが発生した場合に、２サイクル連続でエラーであることを検出する。ＡＮＤ回路２４は、信号線２７を介してフリップフロップ２３に接続されている。ＡＮＤ回路２４は、２サイクル連続でエラーであることを検出した場合に、出力信号を信号線２７に出力する。フリップフロップ２３は、ＡＮＤ回路２４からの出力信号を遅延／波形整形し、遅延／波形整形した信号を、ハードエラー報知信号線７にハードエラー情報Ｘとして出力する。
【００３９】
この構成により、ハードエラー検出回路４では、エラー報知信号線３Ａ〜３Ｃの何れかを介してエラー情報３ａ〜３ｃが入力されると、ＡＮＤ回路２４がエラー情報３ａ〜３ｃの論理和を算出する。この論理和の情報は、ＡＮＤ回路２４から信号線２５に出力され、フリップフロップ２２およびＡＮＤ回路２４に送られる。
【００４０】
そして、フリップフロップ２２は、信号線２５からの信号（エラー情報３ａ〜３ｃの論理和）を遅延させ、遅延させた信号を信号線２６に出力する。ＡＮＤ回路２４は、信号線２５からの信号と信号線２６からの信号の論理積を算出する。これにより、ＡＮＤ回路２４は、２サイクル連続でエラーが発生した場合に、２サイクル連続でエラーであることを検出する。ソフトエラーの場合は、２サイクル連続でＡＮＤ回路２４にエラーが報知されることはないので、この場合、ＡＮＤ回路２４でエラー情報３ａ〜３ｃがキャンセルされることとなる。フリップフロップ２３は、ＡＮＤ回路２４からの出力信号が遅延／波形整形し、ハードエラー報知信号線７にハードエラー情報Ｘとして出力する。
【００４１】
図４は、実施の形態１に係るハードエラー検出回路の他の構成例を示す図である。なお、図４の各構成要素のうち図３に示すハードエラー検出回路４と同一機能を達成する構成要素については同一番号を付しており、重複する説明は省略する。
【００４２】
図３に示したハードエラー検出回路４は、エラー情報３ａ〜３ｃの論理和に対してハードエラーであるか否かを判定する構成である。一方、図４に示したハードエラー検出回路４’は、エラー情報３ａ〜３ｃのそれぞれに対してハードエラーであるか否かの判定を行い、その後に論理和（エラー判定の論理和）を取る構成である。
【００４３】
ハードエラー検出回路４’は、ＯＲ回路２１と、機能ブロック毎のハードエラー検出回路と、を備えている。ここでのハードエラー検出回路４’は、機能ブロック１Ａ〜１Ｃに対し、ハードエラー検出部３１Ａ〜３１Ｃを備えている。
【００４４】
ハードエラー検出部３１Ａは、入力側の信号線としてエラー報知信号線３Ａに接続され、出力側の信号線として信号線３２Ａに接続されている。また、ハードエラー検出部３１Ｂは、入力側の信号線としてエラー報知信号線３Ｂに接続され、出力側の信号線として信号線３２Ｂに接続されている。ハードエラー検出部３１Ｃは、入力側の信号線としてエラー報知信号線３Ｃに接続され、出力側の信号線として信号線３２Ｃに接続されている。ＯＲ回路２１は、入力側の信号線として信号線３２Ａ〜３２Ｃに接続され、出力側の信号線としてハードエラー報知信号線７に接続されている。
【００４５】
ハードエラー検出部３１Ａ〜３１Ｃは、それぞれ図３に示したハードエラー検出回路４の構成からＯＲ回路２１を削除し、信号線２５を直接エラー報知信号線３Ａ〜３Ｂのうちの１つの信号線に接続した構成である。
【００４６】
なお、ハードエラー検出部３１Ａ〜３１Ｃは、同様の構成を有しているので、ここではハードエラー検出部３１Ａの構成について説明する。ハードエラー検出部３１Ａは、フリップフロップ２２Ａ，２３Ａ、ＡＮＤ回路２４Ａを備えている。フリップフロップ２２Ａ，２３Ａは、フリップフロップ２２，２３と同様の機能を有し、ＡＮＤ回路２４Ａは、ＡＮＤ回路２４と同様の機能を有している。また、信号線２５Ａ〜２７Ａは、信号線２５〜２７と同様の機能を有している。
【００４７】
エラー報知信号線３Ａは、ハードエラー検出部３１Ａ内の信号線２５Ａに接続されている。フリップフロップ２２Ａは、信号線２５Ａに接続されており、信号線２５Ａからフリップフロップ２２Ａへは、エラー情報３ａが入力される。また、フリップフロップ２２Ａは、信号線２６Ａに接続されており、信号線２５Ａからの信号を遅延させた信号を信号線２６Ａに出力する。
【００４８】
ＡＮＤ回路２４Ａは、信号線２５Ａおよび信号線２６Ａに接続されており、信号線２５Ａからの信号および信号線２６Ａからの信号が入力される。ＡＮＤ回路２４Ａは、信号線２５Ａからの信号と信号線２６Ａからの信号の論理積を算出することによって、２サイクル連続でエラーが発生した場合に、２サイクル連続でエラーであることを検出する。ＡＮＤ回路２４Ａは、信号線２７Ａを介してフリップフロップ２３Ａに接続されている。ＡＮＤ回路２４Ａは、２サイクル連続でエラーであることを検出した場合に、出力信号を信号線２７Ａに出力する。フリップフロップ２３Ａは、ＡＮＤ回路２４Ａからの出力信号を遅延／波形整形し、遅延／波形整形した信号を、エラー情報３ａとして信号線３２Ａに送る。
【００４９】
この構成により、ハードエラー検出回路４’では、エラー報知信号線３Ａを介してエラー情報３ａが入力されると、エラー情報３ａが信号線２５Ａを介してフリップフロップ２２ＡおよびＡＮＤ回路２４Ａに送られる。
【００５０】
フリップフロップ２２Ａは、信号線２５Ａからの信号を遅延させ、遅延させた信号を信号線２６Ａに出力する。ＡＮＤ回路２４Ａは、信号線２５Ａからの信号と信号線２６Ａからの信号の論理積を算出する。ＡＮＤ回路２４Ａは、２サイクル連続でエラーであることを検出した場合に、出力信号を信号線２７Ａに出力する。フリップフロップ２３Ａは、ＡＮＤ回路２４Ａからの出力信号を遅延／波形整形し、エラー情報３ａとして信号線３２Ａに出力する。このエラー情報３ａは、ＯＲ回路２１に入力される。
【００５１】
同様に、エラー報知信号線３Ｂを介してハードエラー検出部３１Ｂにエラー情報３ｂが入力されると、ハードエラー検出部３１Ｂが２サイクル連続でエラーであることを検出した場合に、ハードエラー検出部３１Ｂからエラー情報３ｂがＯＲ回路２１に入力される。
【００５２】
同様に、エラー報知信号線３Ｃを介してハードエラー検出部３１Ｃにエラー情報３ｃが入力されると、ハードエラー検出部３１Ｃが２サイクル連続でエラーであることを検出した場合に、ハードエラー検出部３１Ｃからエラー情報３ｃがＯＲ回路２１に入力される。
【００５３】
ＯＲ回路２１は、ハードエラー検出部３１Ａ〜３１Ｃからの信号（エラー情報３ａ〜３ｃ）の論理和をハードエラー報知信号線７にハードエラー情報Ｘとして出力する。
【００５４】
このように、ハードエラー検出回路４’では、エラー情報３ａ〜３ｃのそれぞれに対応するハードエラー検出部３１Ａ〜３１Ｃの各出力をＯＲ回路２１に入力し、論理和出力をハードエラー情報Ｘとして出力する。
【００５５】
図３に示したハードエラー検出回路４の構成により、簡易な構成でハードエラー判定を行うことが可能となる。また、図４に示したハードエラー検出回路４’の構成により、連続した動作サイクルにおいて、異なる機能ブロックでソフトエラーが発生した場合であっても、ＯＲ回路２１からの論理和出力（ハードエラー報知信号線７）により、２サイクル連続でエラー報知がされることはない。このため、誤ったハードエラー判定を防止できる。したがって、ハードエラー判定の信頼性を高めることができる。
【００５６】
なお、図４に示したハードエラー検出回路４’の構成において、フリップフロップ２３Ａを削除し、ＯＲ回路２１の出力をフリップフロップで遅延／波形整形させ、その出力をハードエラー報知信号線７からハードエラー情報Ｘとして出力させてもよい。
【００５７】
また、ハードエラー検出回路４やハードエラー検出回路４’において、ハードエラー検出回路内で使用するフリップフロップそのものをＴＭＲなどのエラー訂正可能な構成にすることで、更なるハードエラー判定の信頼性向上が可能となる。ハードエラー検出回路４やハードエラー検出回路４’からハードエラー情報Ｘが出力されると、このハードエラー情報Ｘは、エラーカウンタ５に送られる。
【００５８】
このように、エラー検出修復装置１００は、ソフトエラーによる一過性故障とハードエラーによる永久故障と、を判別し、機能ブロック内に発生したエラーの種類（ソフトエラー／ハードエラー）のうち、ハードエラーのみをエラー対象としている。そして、ハードエラーが所定数に達した場合に、再構成制御部６が、ハードエラーの発生した機能ブロックを正常なブロックに切り替えるので、永久故障が発生した系を復元することが可能となる。また、一過性故障であるソフトエラーの回路を系から切り離すことによる回路リソースのロスを防ぐことが可能となる。
【００５９】
また、永久故障のみを正常な系から切り離し、永久故障する前の状態に自律的に修復するので、システム内の各機能の高い信頼性を長期間維持することが可能となる。これにより、人工衛星、原子力発電所の制御装置等のように、長期の連続稼動が求められ且つ故障修理のための工事が困難な機器に適合する論理回路を提供することが可能となる。
【００６０】
なお、本実施の形態では、機能ブロックが３つの機能ブロック１Ａ〜１Ｃである場合について説明したが、機能ブロックは２つであってもよいし、４つ以上であってもよい。また、本実施の形態では２サイクル連続でエラーを検出した場合にハードエラーと判定したが、３サイクル以上の所定サイクル連続でエラーを検出した場合にハードエラーと判定してもよい。
【００６１】
このように実施の形態１によれば、一過性故障と永久故障と、を判別し、永久故障の場合に、機能の復元を行うので、システムの高い信頼性を長期間に亘って維持することが可能となる。
【００６２】
実施の形態２．
つぎに、図５〜図７を用いてこの発明の実施の形態２について説明する。実施の形態２では、エラーカウンタ５が種々の条件に従って、永久故障（ハードエラー）が発生したか否かを判定する。
【００６３】
図５は、永久故障判定方法の第１例を説明するための図である。図６は、永久故障判定方法の第２例を説明するための図である。図７は、永久故障判定方法の第３例を説明するための図である。
【００６４】
図５〜図７は、エラーカウンタ５によるハードエラー数のカウント例と、永久故障判定例とを示している。図５〜図７に示すグラフの横軸は、時間であり、縦軸はハードエラー数（エラーカウンタ５によるカウント値）である。
【００６５】
例えば、図５のグラフは、ハードエラー情報Ｘが報知される都度、エラーカウンタ５がハードエラーのカウント数を単調増加（加算）させる場合のグラフである。エラーカウンタ５にハードエラー情報Ｘが報知されると、エラーカウンタ５は、予め決められた数を計数値に加算し、次回のハードエラー報知まで保持する。エラーカウンタ５は、計数値としきい値４１とを比較し、計数値がしきい値４１を超過すると、再構成情報を更新するともに、再構成制御部６に再構成指示を行う。
【００６６】
図６のグラフは、エラーカウンタ５が、所定時間（所定期間の間）に渡ってハードエラー情報Ｘを受信しなかった場合（エラー検出されなかった場合）に計数値（エラー値）を減ずる場合のグラフである。この場合、エラーカウンタ５は、所定時間内だけハードエラー情報Ｘを受信しなかった場合に計数値を減ずる機能を有している。例えば、時間範囲４２の間にエラーカウンタ５がハードエラー情報Ｘを受信しなければ、エラーカウンタ５は、計数値から所定の減算値４３を減ずる。
【００６７】
図７のグラフは、エラーカウンタ５が、所定時間（時間範囲４４）内だけハードエラー情報Ｘを受信しなかった場合に計数値をゼロクリアする場合のグラフである。この場合、エラーカウンタ５は、所定時間内だけハードエラー情報Ｘを受信しなかった場合に計数値をゼロクリアする機能を有している。
【００６８】
上述のしきい値４１、時間範囲４２，４４および減算値４３は、パラメータ入力線８を介して送られてくるパラメータ入力情報に基づいて設定され、装置外部（例えば、外付けの制御用コンピュータ）または内部から変更可能とする。
【００６９】
エラーカウンタ５の計数値が０未満にならない（アンダーフローしない）ようエラーカウンタ５を構成しておくと、図５の場合は減算値を０に、図７の場合は減算値をしきい値４１と同じ値に、それぞれ設定することで、図５ないし図７の機能を自由に使い分けることが可能となる。時間範囲４２，４４の計測は、例えばエラーカウンタ５とは別のタイマ（図示せず）によって行なう。
【００７０】
このように、本実施の形態では、計数値にしきい値を設定しておき、当該しきい値を超えた場合に再構成制御部６に対して再構成指示を発行する。また、所定期間を計測するタイマを設けておき、当該所定期間内にエラーが検出されなかった場合にエラー数を減算する。また、前記しきい値、タイマの計時量、減算値を可変にすることで、エラー発生回数や頻度に応じて、再構成処理の実施の有無を柔軟に制御することが可能となる。
【００７１】
換言すると、計数値がしきい値を超えた場合にのみ再構成指示またはテスト開始指示を出力し、所定時間の間にハードエラーが報知されなかった場合には計数値から減算を行なっている。そして、しきい値、時間範囲、および減算値をパラメータとして装置外部または内部から可変としている。これにより、ハードエラー発生頻度と装置に要求される信頼性の度合いに応じて柔軟に再構成によるエラー修復を行うことが可能となる。
【００７２】
このように実施の形態２によれば、ハードエラー情報Ｘが報知される都度、ハードエラーのカウント数を単調増加させているので、簡易な構成のエラーカウンタ５によって、永久故障が発生したか否かを判定することが可能となる。
【００７３】
また、所定時間内だけハードエラー情報Ｘを受信しなかった場合に、計数値を減ずるので、永久故障が発生したか否かを正確に判定することが可能となる。また、所定時間内だけハードエラー情報Ｘを受信しなかった場合に、計数値をゼロクリアするので、永久故障が発生したか否かを正確に判定することが可能となる。
【００７４】
実施の形態３．
つぎに、図８〜図１１を用いてこの発明の実施の形態３について説明する。実施の形態３では、永久故障が発生した訂正可能論理ブロック１１（機能ブロック１Ａ〜１Ｃ）を特定するためのテスト回路を設けておく。そして、機能ブロック１Ａ〜１Ｃの再構成を行う前にテスト回路によって、永久故障が発生した訂正可能論理ブロック１１を特定する。その後、特定された訂正可能論理ブロック１１に対し、再構成を行う。
【００７５】
図８は、実施の形態３に係るエラー検出修復装置の構成を示す図である。なお、図８の各構成要素のうち実施の形態１の図１に示すエラー検出修復装置１００と同一機能を達成する構成要素については同一番号を付しており、重複する説明は省略する。
【００７６】
エラー検出修復装置１０１は、エラー検出修復装置１００に対し、以下の追加／変更を行って構成されている。
（１）テスト回路５２を追加し、エラーカウンタ５の出力をテスト開始信号に用いるとともに、テスト回路５２からテスト制御信号を出力する。
（２）再構成情報を、テスト回路５２から出力する。
（３）セレクタ５９を追加する。エラーカウンタ５へのパラメータ入力として、セレクタ５９は、通常時のパラメータ入力情報と、テスト時のパラメータ入力情報と、の何れかを選択する。テスト時にエラーカウンタ５に入力するパラメータ入力情報とセレクタ５９への選択指示（セレクト入力）は、テスト回路５２によって行う。
（４）機能ブロック１Ａ〜１Ｃを、機能ブロック５０Ａ〜５０Ｃに変更する。機能ブロック５０Ａ〜５０Ｃには、通常の入力とテストデータの入力との何れかを選択するセレクタが追加されている。
（５）ハードエラー検出回路４を、ハードエラー検出回路５１に変更する。ハードエラー検出回路５１には、エラー情報３ａ〜３ｃの何れかを選択しバイパスする機能が追加されている。
【００７７】
具体的には、機能ブロック５０Ａ〜５０Ｃは、信号入力線０Ａ〜０Ｃ、通常信号線２Ａ〜２Ｃ、エラー報知信号線３Ａ〜３Ｃに加えて、テスト制御信号線５６に接続されている。また、ハードエラー検出回路５１は、エラー報知信号線３Ａ〜３Ｃ、ハードエラー報知信号線７に加えてテスト制御信号線５６に接続されている。
【００７８】
また、エラーカウンタ５は、ハードエラー報知信号線７、パラメータ入力線８に加えて、テスト開始指示信号線５８に接続されている。また、テスト回路５２は、テスト開始指示信号線５８、パラメータ入力線５４、セレクト信号線５５、テスト制御信号線５６、再構成指示信号線９に接続されている。また、セレクタ５９は、パラメータ入力線５４、セレクト信号線５５、パラメータ入力線５３、パラメータ入力線８に接続されている。
【００７９】
この構成により、エラー検出修復装置１０１は、通常動作（ハードエラー検出処理）の際には、テスト回路５２が、機能ブロック５０Ａ〜５０Ｃに、信号入力線０Ａ〜０Ｃを選択する指示を送る。信号入力線０Ａ〜０Ｃを選択する指示は、テスト制御信号線５６を介し、通常動作用の制御信号として、機能ブロック５０Ａ〜５０Ｃに送られる。これにより、機能ブロック５０Ａ〜５０Ｃは、実施の形態１と同様の動作を行う。
【００８０】
また、通常動作の際には、テスト回路５２は、ハードエラー検出回路５１に、ハードエラー検出回路４を選択する指示を送る。ハードエラー検出回路４を選択する指示は、テスト制御信号線５６を介し、通常動作用の制御信号として、ハードエラー検出回路５１に送られる。これにより、ハードエラー検出回路５１は、実施の形態１のハードエラー検出回路４と同様の動作を行う。
【００８１】
さらに、通常動作の際には、テスト回路５２は、セレクト信号線５５を介してセレクタ５９に、パラメータ入力線５３を選択する指示を送る。これにより、セレクタ５９は、パラメータ入力線５３から送られてくる通常時のパラメータ入力情報を選択してエラーカウンタ５に送る。
【００８２】
エラーカウンタ５は、パラメータ入力情報と、ハードエラー情報Ｘの計数値と、に基づいて、機能ブロック５０Ａ〜５０Ｃを再構成するか否かを判定する。エラーカウンタ５は、機能ブロック５０Ａ〜５０Ｃを再構成する場合には、テスト回路５２に、再構成することを示す情報（テスト開始信号）を送る。
【００８３】
これにより、エラー検出修復装置１０１は、永久故障が発生した機能ブロック５０Ａ〜５０Ｃを特定するためのテスト動作を開始する。テスト動作の際には、テスト回路５２は、テスト制御信号線５６を介して機能ブロック５０Ａ〜５０Ｃの何れか１つと、ハードエラー検出回路５１と、にテスト制御信号を送る。
【００８４】
機能ブロック５０Ａ〜５０Ｃに送られるテスト制御信号には、テストデータと、テストデータを選択する指示と、機能ブロック５０Ａ〜５０Ｃの何れかを指定する指示（テスト対象の機能ブロックを指定する指示）と、が含まれている。これにより、機能ブロック５０Ａ〜５０Ｃの何れか１つは、テストデータを用いたテスト動作を行う。
【００８５】
また、ハードエラー検出回路５１に送られるテスト開始用のテスト制御信号には、エラー情報３ａ〜３ｃを選択する指示が含まれている。これにより、ハードエラー検出回路５１は、テストデータに対応するエラー情報３ａ〜３ｃを用いたテスト動作を行う。
【００８６】
また、テスト動作の際には、テスト回路５２は、パラメータ入力線５４を介してセレクタ５９に、テスト時のパラメータ入力情報を送る。さらに、テスト回路５２は、セレクト信号線５５を介してセレクタ５９に、パラメータ入力線５４を選択する指示を送る。これにより、セレクタ５９は、パラメータ入力線５４から送られてくるテスト時のパラメータ入力情報を選択し、選択したパラメータ入力情報をパラメータ入力線８を介してエラーカウンタ５に送る。
【００８７】
テスト動作の際には、エラーカウンタ５は、パラメータ入力線８を介して送られてくるパラメータ入力情報と、エラーカウンタ５による計数値と、に基づいて、機能ブロック５０Ａ〜５０Ｃの何れが永久故障の発生した機能ブロックであるかを判定する。
【００８８】
エラーカウンタ５は、永久故障の発生した機能ブロックを特定すると、この機能ブロックを特定する情報をテスト回路５２に送る。これにより、テスト回路５２は、永久故障の発生した機能ブロックに対して、再構成を行うよう、再構成制御部６に再構成指示を送る。再構成制御部６は、再構成情報に基づいて、永久故障が発生した訂正可能論理ブロック１１を使用不可とし、正常なブロック（系）に切り替えさせる。
【００８９】
つぎに、機能ブロック５０Ａ〜５０Ｃの構成について説明する。なお、機能ブロック５０Ａ〜５０Ｃは、同様の構成を有しているので、ここでは機能ブロック５０Ａの構成について説明する。
【００９０】
図９は、実施の形態３に係る機能ブロックの構成を示す図である。図９では、機能ブロック５０Ａの内部構成を示している。なお、図８の各構成要素のうち実施の形態１の図２に示す機能ブロック１Ａと同一機能を達成する構成要素については同一番号を付しており、重複する説明は省略する。
【００９１】
機能ブロック５０Ａは、訂正可能論理ブロック１１、エラー検出回路１５およびセレクタ６１を含んで構成されている。すなわち、機能ブロック５０Ａは、機能ブロック１Ａに、セレクタ６１を追加した構成になっている。
【００９２】
セレクタ６１は、信号入力線０Ａと、テストデータの入力線であるテストデータ入力線６２と、セレクト信号の入力線であるセレクト信号入力線６３と、訂正可能論理ブロック１１への信号線である信号線６４と、に接続されている。テストデータ入力線６２およびセレクト信号入力線６３は、テスト制御信号線５６に接続されている。
【００９３】
セレクタ６１へは、再構成制御部６から送られてくる入力信号が、信号入力線０Ａを介して入力される。また、セレクタ６１へは、テスト回路５２から送られてくるテスト制御信号内のテストデータが、テスト制御信号線５６およびテストデータ入力線６２を介して入力される。再構成制御部６からの入力信号と、テスト回路５２からのテストデータと、がセレクタ６１に対する被選択入力データである。また、セレクタ６１へは、テスト回路５２からから送られてくるテスト制御信号内のセレクト信号が、テスト制御信号線５６およびセレクト信号入力線６３を介して入力される。
【００９４】
通常動作の際または機能ブロック５０Ｂ，５０Ｃをテストする際には、セレクト信号入力線６３からセレクタ６１に、信号入力線０Ａを選択する指示が入力される。これにより、セレクタ６１は、信号入力線０Ａからの入力信号を選択して信号線６４に送出する。そして、訂正可能論理ブロック１１およびエラー検出回路１５は、実施の形態１と同様の動作を行う。
【００９５】
テスト動作の際には、セレクト信号入力線６３からセレクタ６１に、機能ブロック５０Ａを選択する指示と、テストデータ入力線６２を選択する指示と、が入力される。これにより、セレクタ６１は、テストデータ入力線６２からのテストデータを選択して信号線６４に送出する。そして、訂正可能論理ブロック１１およびエラー検出回路１５は、テストデータを用いたテスト動作を行う。
【００９６】
このように、機能ブロック５０Ａをテストする際にはテストデータが機能ブロック５０Ａの訂正可能論理ブロック１１に入力され、通常動作の際または機能ブロック５０Ｂ，５０Ｃをテストする際には、信号入力線０Ａからの入力信号が訂正可能論理ブロック１１に入力される。
【００９７】
これにより、テスト動作の際には、テスト対象とする機能ブロックでは、テストデータが選択され、テスト対象以外の機能ブロックでは、テストデータが選択されない。これにより、テスト対象とする機能ブロックの動作をテストすることが可能となる。本実施の形態では、例えば、機能ブロック５０Ａ〜５０Ｃを順番にテスト対象に設定し、各機能ブロック５０Ａ〜５０Ｃを順番にテストする。
【００９８】
図１０は、実施の形態３に係るハードエラー検出回路の構成例を示す図である。ハードエラー検出回路５１は、ハードエラー検出回路４と、セレクタ７１を備えている。ハードエラー検出回路４は、入力側がエラー報知信号線３Ａ〜３Ｃに接続され、出力側が信号線７２に接続されている。
【００９９】
セレクタ７１は、入力側がエラー報知信号線３Ａ〜３Ｃと、信号線７２と、テスト制御信号線５６に結線されたセレクト信号線７３と、に接続され、出力側がハードエラー報知信号線７に接続されている。
【０１００】
セレクタ７１へは、機能ブロック５０Ａ〜５０Ｃから送られてくるエラー情報３ａ〜３ｃが、それぞれエラー報知信号線３Ａ〜３Ｃを介して入力される。また、セレクタ７１へは、ハードエラー検出回路４から送られてくるハードエラー情報Ｘが、信号線７２を介して入力される。エラー情報３ａ〜３ｃと、ハードエラー情報Ｘと、がセレクタ７１に対する被選択入力データである。また、セレクタ７１へは、テスト回路５２から送られてくるテスト制御信号内のエラー情報選択信号が、テスト制御信号線５６およびセレクト信号線７３を介して入力される。
【０１０１】
通常動作の際には、セレクト信号線７３を介してセレクタ７１に、信号線７２を選択する指示が入力される。これにより、セレクタ７１は、信号線７２からのハードエラー情報Ｘを選択してハードエラー報知信号線７に送出する。そして、エラーカウンタ５は、実施の形態１と同様の動作を行う。
【０１０２】
テスト動作の際には、セレクト信号線７３からセレクタ７１に、テスト対象となっているエラー報知信号線３Ａ〜３Ｃ（エラー情報３ａ〜３ｃ）の何れか又は複数を選択する指示が入力される。これにより、セレクタ７１は、エラー情報３ａ〜３ｃの中からテスト対象となっているエラー情報を選択してハードエラー報知信号線７に送出する。このように、テスト動作の際には、テスト対象とする機能ブロックから送られてくるエラー情報が選択されてハードエラー報知信号線７に送出され、テスト対象以外の機能ブロックから送られてくるエラー情報は、ハードエラー報知信号線７に送出しない。
【０１０３】
エラーカウンタ５は、エラー情報の計数を行う。エラーカウンタ５は、テスト時のパラメータ入力情報に基づいて設定されるしきい値と、エラー情報の計数値と、を比較する。そして、エラーカウンタ５は、計数値がしきい値よりも大きくなった場合に、テスト対象となっている機能ブロックが永久故障であると判断する。
【０１０４】
図１１は、実施の形態３に係るテスト回路の動作手順を示すフローチャートである。エラー検出修復装置１０１では、エラーカウンタ５が永久故障の発生を検出すると、エラーカウンタ５からテスト開始指示信号線５８を介してテスト開始指示が送られる。これにより、テスト回路５２がテスト開始指示を受信し、テスト回路５２によるテストが開始される。
【０１０５】
テスト回路５２は、エラーカウンタ５のパラメータをテスト用のパラメータ（テスト時のパラメータ入力情報）に設定する（ステップＳ８１）。具体的には、テスト用のパラメータに規定されたしきい値４１、時間範囲４２，４４、減算値４３などがテスト回路５２からパラメータ入力線５４を介してセレクタ５３に送られる。
【０１０６】
また、テスト回路５２は、セレクト信号線５５を介してセレクタ５９に、パラメータ入力線５４を選択する指示（セレクト信号）を送る。換言すると、テスト回路５２は、セレクタ５９がパラメータ入力線５４からのテスト用パラメータを選択するよう、セレクト信号を制御する。これにより、セレクタ５９は、パラメータ入力線５４から送られてくるテスト時のパラメータ入力情報を選択してエラーカウンタ５に送る。
【０１０７】
続いて、テスト回路５２は、機能ブロック５０Ａ〜５０Ｃのテストを実行する。テスト回路５２は、テスト対象とする機能ブロック（以下、対象機能ブロックという）を機能ブロック５０Ａ〜５０Ｃの中から１つ選択する（ステップＳ８２）。テスト回路５２は、対象機能ブロック（エラー情報）を選択する指示（セレクト信号）をテスト制御信号内に含めて、機能ブロック５０Ａ〜５０Ｃおよびハードエラー検出回路５１に送る。具体的には、対象機能ブロックを指定したセレクト信号が、テスト制御信号線５６およびセレクト信号入力線６３を介して機能ブロック５０Ａ〜５０Ｃのセレクタ６１に送られる。また、対象機能ブロックを指定したセレクト信号が、テスト制御信号線５６およびセレクト信号入力線７３を介してセレクタ７１に送られる。これにより、対象機能ブロックがテストモードに設定される。また、ハードエラー検出回路５１は、対象機能ブロックの出力をバイパスするよう設定する（ステップＳ８３）。
【０１０８】
そして、テスト回路５２は、テストデータ（ハードエラー検出パターン）を対象機能ブロックに印加する（ステップＳ８４）。テストデータとしては、例えば縮退故障検出用の０／１が時系列に交互に印加されるパターンなどが挙げられる。
【０１０９】
機能ブロック５０Ａ〜５０Ｃは、セレクト信号内で自らの機能ブロックが対象機能ブロックに指定されていれば、セレクタ６１によってテストデータ入力線６２からのテストデータを選択する。
【０１１０】
これにより、対象機能ブロックでは、テストデータを用いたテストが行われる。具体的には、フリップフロップ１２Ａ〜１２Ｃでテストデータを用いたテスト処理が行われ、フリップフロップ１２Ａ〜１２Ｃからテスト結果が送出される。
【０１１１】
エラー検出回路１５は、テスト結果に基づいて、訂正可能論理ブロック１１内で発生したエラーを検出し、エラー情報３ａ〜３ｃとしてハードエラー検出回路５１に報知する。
【０１１２】
ハードエラー検出回路５１は、対象機能ブロックに対応するエラー情報を選択し、ハードエラー情報Ｘとしてハードエラー報知信号線７に出力する。具体的には、セレクタ７１が、エラー情報３ａ〜３ｃ（エラー報知信号線３Ａ〜３Ｃ）の中から対象機能ブロックに対応するエラー情報（エラー報知信号線）を選択し、ハードエラー情報Ｘとしてハードエラー報知信号線７に出力する。
【０１１３】
対象機能ブロックへのテストデータの印加完了後、テスト回路５２は、対象機能ブロックおよびハードエラー検出回路５１に、対象機能ブロックを通常動作（通常モード）に設定する指示を入力する。これにより、対象機能ブロックが通常動作に戻され、ハードエラー検出回路５１の設定が元の状態（通常動作状態）に戻される（ステップＳ８５）。具体的には、対象機能ブロックのセレクタ６１は、再構成制御部６に接続されている信号入力線を選択し、この信号入力線からの入力信号を訂正可能論理ブロック１１に送る。また、セレクタ７１は、信号線７２からのハードエラー情報Ｘを選択してハードエラー報知信号線７に送出する。
【０１１４】
テスト動作の際に対象機能ブロックでエラーが発生すると、ハードエラー検出回路５１からエラーカウンタ５にハードエラー情報Ｘが入力される。このように、対象機能ブロックからのエラー情報（エラー報知信号）は、ハードエラー情報Ｘとして直接エラーカウンタ５に入力されているので、エラーカウンタ５は、ハードエラー情報Ｘの計数を行う。エラーカウンタ５が、ハードエラー情報Ｘに基づいて、対象機能ブロックが永久故障であると判断すると、テスト回路５２にエラー報知が行われる。
【０１１５】
この時点で、エラーカウンタ５からは、テスト結果が出力されている。エラーカウンタ５による計数値が所定のしきい値を超えると、エラーカウンタ５からエラー報知が行われる。エラーカウンタ５からエラー報知が行われると（ステップＳ８６、Ｙｅｓ）、テスト回路５２は、再構成指示信号線９から再構成指示を発行する。
【０１１６】
これにより、再構成制御部６は、対象機能ブロックを永久故障と判断して切り離し、対象機能ブロックを予備の正常なブロックに切り替える（ステップＳ８７）。一方、エラーカウンタ５からエラー報知が行われない場合（ステップＳ８６、Ｎｏ）、テスト回路５２は、再構成指示を発行することなく、次の処理を行う。
【０１１７】
この後、テスト回路５２は、全数テスト（全ての機能ブロック５０Ａ〜５０Ｃへのテスト）が完了したか否かを判断する（ステップＳ８８）。全数テストが完了していなければ（ステップＳ８８、Ｎｏ）、ステップＳ８２の処理に戻り、未処理の機能ブロックに対してステップＳ８２〜Ｓ８８の処理を繰り返す。
【０１１８】
一方、全数テストが完了すると（ステップＳ８８、Ｙｅｓ）、テスト回路５２は、エラーカウンタ５のパラメータを、通常動作用のパラメータに復元する。具体的には、テスト回路５２は、セレクト信号線５５を介してセレクタ５９に、パラメータ入力線５３を選択する指示（セレクト信号）を送る。換言すると、テスト回路５２は、セレクタ５９がパラメータ入力線５３からの通常動作用パラメータを選択するよう、セレクト信号を制御する。これにより、セレクタ５９は、パラメータ入力線５３から送られてくる通常動作用のパラメータ入力情報を選択し、パラメータ入力線８を介してエラーカウンタ５に送る。そして、エラーカウンタ５は、パラメータを通常動作用に復元してテスト動作を完了する（ステップＳ８９）。
【０１１９】
また、テスト回路５２は、機能ブロック５０Ａ〜５０Ｃに、信号入力線０Ａ〜０Ｃを選択する指示を送る。また、テスト回路５２は、ハードエラー検出回路５１に、ハードエラー検出回路４を選択する指示を送る。これにより、エラー検出修復装置１０１は、通常動作に戻る。これによって、再構成対象となる回路の故障状況を正確に診断した上で機能ブロック５０Ａ〜５０Ｃの再構成を実施できる。したがって、真のハードエラーが発生している系のみを正しく切り離すことが可能となる。
【０１２０】
この後、テスト回路５２がエラーカウンタ５からテスト開始指示を受信すると、再度、ステップＳ８１〜Ｓ８９の処理が行われる。なお、再構成制御部６への再構成指示はエラーカウンタ５から送出してもよい。
【０１２１】
このように、実施の形態３によれば、エラー検出修復装置１０１にテスト回路５２が設けられているので、対象機能ブロックを詳細にテストすることが可能となる。これにより、再構成対象となる回路の故障状況を正確に診断したうえで再構成を実施でき、真のハードエラーが発生している系のみを正しく切り離すことが可能となる。
【産業上の利用可能性】
【０１２２】
以上のように、本発明に係るエラー検出修復装置は、半導体集積回路の内部に実装する機能が永久故障した場合の機能の復元に適している。
【符号の説明】
【０１２３】
１Ａ〜１Ｃ，５０Ａ〜５０Ｃ  機能ブロック
４，５１  ハードエラー検出回路
５  エラーカウンタ
６  再構成制御部
１１  訂正可能論理ブロック
１４  多数決回路
１５  エラー検出回路
３１Ａ〜３１Ｃ  ハードエラー検出部
４１  しきい値
４２，４４  時間範囲
４３  減算値
５２  テスト回路
１００，１０１  エラー検出修復装置
【図１】
0005618792.tif 000002
【図２】
0005618792.tif 000003
【図３】
0005618792.tif 000004
【図４】
0005618792.tif 000005
【図５】
0005618792.tif 000006
【図６】
0005618792.tif 000007
【図７】
0005618792.tif 000008
【図８】
0005618792.tif 000009
【図９】
0005618792.tif 000010
【図１０】
0005618792.tif 000011
【図１１】
0005618792.tif 000012