(57)【要約】電子回路におけるシングル・イベント故障を許容するためのシステムが開示される。このシステムは、メイン・プロセッサと、メイン・プロセッサに応答する故障検出プロセッサであって、ボータ（多数決）論理回路を備える故障検出プロセッサと、故障検出プロセッサに応答する３つ以上の論理デバイスであって、それらの各出力がボータ論理回路を通るものである３つ以上の論理デバイスと、プログラマブル・エラー・フィルタとを備える。ボータ論理回路の出力は、プログラマブル・エラー・フィルタに結合される。
2009534738.tif 000002
【特許請求の範囲】
【請求項１】
電子回路（１０２）におけるシングル・イベント故障を許容するためのシステム（１００）であって、
メイン・プロセッサ（１１０）と、
前記メイン・プロセッサに応答する故障検出プロセッサ（１０６）であって、ボータ論理回路（２０２）を更に備える故障検出プロセッサと、
前記故障検出プロセッサ（１０６）に応答する３つ以上の論理デバイス（１０４Ａ、・・・、１０４Ｃ）であって、それらの各出力が前記ボータ論理回路（２０２）の中を通る、３つ以上の論理デバイスと、
プログラマブル・エラー・フィルタ（３１６）であって、前記ボータ論理回路（２０２）の出力がに結合される、プログラマブル・エラー・フィルタと
を備えるシステム。
【請求項２】
請求項１に記載のシステム（１００）であって、前記メイン・プロセッサ（１１０）は、マイクロコントローラおよびプログラマブル論理デバイスのうちの１つである、システム。
【請求項３】
請求項１に記載のシステム（１００）であって、前記故障検出プロセッサ（１０６）は、特定用途向け集積回路、マイクロコントローラ、およびプログラマブル論理デバイスのうちの１つである、システム。
【請求項４】
請求項１に記載のシステム（１００）であって、前記３つ以上の論理デバイス（１０４Ａ、・・・、１０４Ｃ）は、フィールドプログラマブル・ゲート・アレイ、コンプレックス・プログラマブル・ロジック・デバイス、およびフィールドプログラマブル・オブジェクト・アレイのうちの少なくとも１つを含む、システム。
【請求項５】
請求項１に記載のシステム（１００）であって、前記プログラマブル・エラー・フィルタ（３１６）は、エラー・カウントがプログラマブル・エラーしきい値（３０９）を超えたかどうかを判定する、システム。
【請求項６】
請求項１に記載のシステム（１００）であって、前記プログラマブル・エラー・フィルタ（３１６）は、エラー・カウントがプログラマブル・エラーしきい値（３０９）を超えたかどうかを判定し、前記エラー・カウントが前記プログラマブル・エラーしきい値を超えた場合、前記プログラマブル・エラー・フィルタは、一連のシングル・イベント故障状態の所定しきい値の発生を前記メイン・プロセッサ（１１０）に示す、システム。
【請求項７】
請求項１に記載のシステム（１００）であって、前記プログラマブル・エラー・フィルタ（３１６）は、エラー・カウントがプログラマブル・エラーしきい値（３０９）を超えたかどうかを判定し、前記エラー・カウントが前記プログラマブル・エラーしきい値を超えた場合、前記プログラマブル・エラー・フィルタは、一連のシングル・イベント故障状態の所定しきい値の発生を前記メイン・プロセッサ（１１０）に示すものであり、一連のシングル・イベント故障状態の前記所定しきい値の発生は、
エラー・カウントが前記プログラマブル・エラーしきい値を超えた前記３つ以上の論理デバイス（１０４Ａ、・・・、１０４Ｃ）のうちの１つのものの再コンフィギュレーションと、
前記３つ以上の論理デバイスの再同期化と
を含む、
システム。
【請求項８】
請求項１に記載のシステム（１００）であって、前記プログラマブル・エラー・フィルタ（３１６）は、エラー・カウントがプログラマブル・エラーしきい値（３０９）を超えたかどうかを判定し、前記エラー・カウントが前記プログラマブル・エラーしきい値を超えた場合、前記プログラマブル・エラー・フィルタは、一連のシングル・イベント故障状態の所定しきい値の発生を前記メイン・プロセッサ（１１０）に示すものであり、連続したシングル・イベント故障状態の前記所定しきい値の発生は、
エラー・カウントが前記プログラマブル・エラーしきい値を超えた前記３つ以上の論理デバイス（１０４Ａ、・・・、１０４Ｃ）のうちの１つのものの再コンフィギュレーションと、
前記３つ以上の論理デバイスの再同期化と
を含み、
前記３つ以上の論理デバイスのうちの前記１つのものの前記再コンフィギュレーションは更に、前記故障検出プロセッサ（１０６）から前記論理デバイス（１０４Ａ、・・・、１０４Ｃのうちの１つ）への、少なくとも１組のデフォルト・コンフィギュレーション・ソフトウェア機械コード化命令の転送を含む、
システム。
【発明の詳細な説明】
【技術分野】
【０００１】
政府利権の記述
米国政府は、制限された政府契約の条件により規定される本発明における幾つかの権利を有し得る。
【０００２】
関連出願
本願は、２００６年２月６日に出願された、「ＦＡＵＬＴ  ＴＯＬＥＲＡＮＴ  ＣＯＭＰＵＴＩＮＧ  ＳＹＳＴＥＭ（フォールト・トレランス・コンピューティング・システム）」という名称の譲渡された同時係属の米国特許出願１１／３４８２９０（代理人ドケット番号Ｈ００１１５０３−５８０２）に関連するものであり、この出願を本明細書では’２９０出願と呼ぶ。この’２９０出願は、参照により本明細書に組み込まれる。
【背景技術】
【０００３】
現在および将来の高信頼性の任務（即ち、宇宙任務）は、オンボードの信号処理の著しい増大を必要とする。現在、生成されたデータは、ダウンリンク・チャネルを介して妥当な時間では送信されない。生成されたデータのユーザが、より高速のアクセスを要求するのに伴い、ますます多くのデータ削減や特徴抽出の処理が、使用される高信頼性の乗り物（例えば宇宙機）で直接に実施される。高信頼性の乗り物での処理力を増大させることは、生成されたデータのための帯域幅を狭める機会、および／または独立したユーザ・チャネルの数を増加させる機会をもたらす。
【０００４】
信号処理の応用において、従来の命令ベースのプロセッサの手法は、ミリオンゲート・フィールドプログラマブル・ゲート・アレイ（ＦＰＧＡ）をベースとする処理解決法に匹敵することができない。宇宙ベース・レーダ（ＳＢＲ、Ｓｐａｃｅ  Ｂａｓｅｄ  Ｒａｄａｒ）、次世代適応型ビーム・フォーミング、および適応型変調宇宙ベース通信プログラムのための計算についての需要を満たすには、複数のＦＰＧＡベースのプロセッサを備えるシステムが必要とされる。ＦＰＧＡベースのシステムは、その名前が示すとおり、新しい要件を満たすように容易に再コンフィギュレーション（再構成）される。ＦＰＧＡベースの再コンフィギュレーション可能な処理アーキテクチャはまた、再使用可能であり、複数の宇宙プログラムを、それらの固有のデータ・インタフェースに比較的簡単な変更を加えることによりサ、ポートすることができる。
【０００５】
再コンフィギュレーション可能な処理による解決法は、経済的なコストを払うことで手に入る。例えば、既存の商用オフザシェルフ（ＣＯＴＳ）のＳＲＡＭ（ｓｙｎｃｈｒｏｎｏｕｓ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）ベースのＦＰＧＡは、放射線誘発性のアプセットに対して敏感な反応を示す。従って、従来のＣＯＴＳベースの再コンフィギュレーション可能システムによる手法は、高放射線環境で動作させる場合には信頼性がない。典型的には、複数のＦＰＧＡがタンデムに使用され、それらの出力が外部の三重モジュール式冗長（ＴＭＲ、ｔｒｉｐｌｅ  ｍｏｄｕｌａｒ  ｒｅｄｕｎｄａｎｔ）ボータ（ｖｏｔｅｒ）回路を介して比較される。ＴＭＲボータ回路（ＴＭＲ多数決回路）は、ＦＰＧＡがシングル・イベント・アプセット（ＳＥＵ）・エラーを起こしたかどうか識別する。ＳＥＵエラー・イベントが検出される度に、ＦＰＧＡは、通常、オフラインにされて再コンフィギュレーションされる。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
典型的には、オンボード信号処理を著しくアプセットさせる（例えば、ＦＰＧＡをラッチまたは状態変化させて結果的にハードな障害を起こさせる）には、複数のＳＥＵエラーを必要とする。シングル・イベント・トランジェント（ＳＥＴ）・エラーは、ラッチさせないＳＥＵイベントであり、過渡効果を引き起こす。単一の過渡の影響は、ＦＰＧＡの通常動作を短時間妨げることになるだけであり、ＦＰＧＡの自動再コンフィギュレーションは必要でないことが多い。不要な再コンフィギュレーションは、信号処理の遅延の増大につながる。
【課題を解決するための手段】
【０００７】
本発明の実施形態は、電子回路のシングル・イベント・フォールト・トレランス（故障許容性）を監視することに伴う問題に対処するものであり、以下の明細書を読み検討することにより理解されるであろう。具体的には、一実施形態では、電子回路でのシングル・イベント障害を許容するためのシステムが提供される。このシステムは、メイン・プロセッサと、メイン・プロセッサに応答するものであり、ボータ論理回路を更に備える故障検出プロセッサと、故障検出プロセッサに応答する３つ以上の論理デバイスであって、それらの各出力がボータ論理回路を通るものである３つ以上の論理デバイスと、プログラマブル・エラー・フィルタとを備える。ボータ論理回路の出力は、プログラマブル・エラー・フィルタに結合される。
【０００８】
様々な図面中の同じ参照番号および名称は同じ要素を示す。
【発明を実施するための最良の形態】
【０００９】
以下の詳細な説明では添付図面を参照するが、図面は本明細書の一部をなし、また図面には、本発明を実施することのできる特定の例示的な実施形態が例として示されている。これらの実施形態は、当業者が本発明を実施できるようにするために十分に詳細に述べるものであり、他の実施形態を用いてもよいこと、ならびに本発明の趣旨および範囲を逸脱することなく論理的、機械的、および電気的な変更を加えてもよいことを理解されたい。従って、以下の詳細な説明は、限定的な意味と取るべきではない。
【００１０】
本発明の実施形態は、電子回路におけるシングル・イベント故障許容性を監視することに伴う問題に対処するものであり、以下の明細書を読み検討することにより理解されるであろう。具体的には、一実施形態では、電子回路におけるシングル・イベント故障を許容するためのシステムが提供される。このシステムは、メイン・プロセッサと、メイン・プロセッサに応答する故障検出プロセッサであって、ボータ論理回路（多数決論理回路）を更に備える故障検出プロセッサと、故障検出プロセッサに応答する３つ以上の論理デバイスであって、それらの各出力がボータ論理回路を通るものである３つ以上の論理デバイスと、プログラマブル・エラー・フィルタとを備える。ボータ論理回路の出力は、プログラマブル・エラー・フィルタに結合される。
【００１１】
本明細書における実施形態の例は、高信頼性の応用例でのシングル・イベント故障許容性の決定に関して述べるが、本発明の実施形態は、高信頼性の応用例でのシングル・イベント故障許容性の決定に限定されない。本発明の実施形態は、高レベルの信頼性を必要とする電子回路の何れの故障許容性決定活動にも適用可能である。本発明の代替の実施形態は、相互に同期して操作される３つ以上の論理デバイスを伴う外部の三モジュール式コンポーネント冗長（ＴＭＲ）を利用する。ＴＭＲボータ回路の出力は、プログラマブル・エラー・フィルタへ印加される。プログラマブル・エラー・フィルタは、エラー・カウントがプログラマブル・エラーしきい値を超えた場合にのみ、エラーのフラグを立て、周期的なシングル・イベント・トランジェント（ＳＥＴ）・エラーが通過できるようにする。
【００１２】
図１は、本発明の教示による、故障許容コンピューティング・システムの一実施形態のブロック図であり、その全体を１００と示している。システム１００の例示的な一実施形態は、’２９０出願に記載されている。システム１００は、故障検出プロセッサ・アセンブリ１０２およびシステム・コントローラ１１０を備える。システム・コントローラ１１０は、マイクロコントローラ、プログラマブル論理デバイスなどである。故障検出プロセッサ・アセンブリ１０２は、論理デバイス１０４Ａ〜１０４Ｃ、故障検出プロセッサ１０６、および論理デバイス・コンフィギュレーション・メモリ１０８も備え、これらのそれぞれについては後で論じる。説明を簡素にするために、図１には、合計３つの論理デバイス１０４Ａ〜１０４Ｃが示されていることに留意されたい。しかし、故障検出プロセッサ・アセンブリ１０２は、単一の故障検出プロセッサ・アセンブリ１０２で、任意の適切な数の論理デバイス１０４（例えば３つ以上の論理デバイス）をサポートすることを理解されたい。
【００１３】
故障検出プロセッサ１０６は、任意の論理デバイス（例えばＡＳＩＣ）であり、コンフィギュレーション・マネージャと、プログラマブル・エラー・フィルタとともにＴＭＲボータ論理をホストする能力と、システム・コントローラ１１０と同様の分散型処理アプリケーション・システム・コントローラへの少なくとも１つの出力を提供するためのインタフェースとを備える。ＴＭＲでは、論理デバイス１０４Ａ〜１０４Ｃのそれぞれが相互に対して同期して動作する必要がある。それぞれの論理デバイス１０４Ａ〜１０４Ｃからの制御信号およびデータ信号は、故障検出プロセッサ１０６において相互に対してボーティング（投票）されて、制御信号およびデータ信号の正当性が決定される。それぞれの論理デバイス１０４Ａ〜１０４Ｃは、フィールドプログラマブル・ゲート・アレイ（ＦＰＧＡ）、コンプレックス・プログラマブル・ロジック・デバイス（ＣＰＬＤ）、フィールドプログラマブル・オブジェクト・アレイ（ＦＰＯＡ）などのような、プログラム可能な論理デバイスである。
【００１４】
システム１００は、故障検出プロセッサ・アセンブリ１０２と同様の複数のプロセッサ・アセンブリを使用する、より大きい分散型の処理アプリケーション（図示せず）の一部を形成する。故障検出プロセッサ・アセンブリ１０２とシステム・コントローラ１１０とは、データ通信のために分散型処理アプリケーション・インタフェース１１２を介して結合される。分散型処理アプリケーション・インタフェース１１２は、低電圧差動シグナリング（ＬＶＤＳ）、高速シリアル・インタフェースなどのような、高速かつ低電力のデータ伝送インタフェースである。また、分散型処理アプリケーション・インタフェース１１２は、それぞれの論理デバイス１０４Ａ〜１０４Ｃに対する少なくとも１組のデフォルト・コンフィギュレーション・ソフトウェア機械コード化命令を、論理デバイス・コンフィギュレーション・メモリ１０８に記憶されるようにシステム・コントローラ１１０から故障検出プロセッサ１０６へ送る。論理デバイス・コンフィギュレーション・メモリ１０８は、ＤＤＲ  ＳＤＲＡＭ（ｄｏｕｂｌｅ−ｄａｔａ  ｒａｔｅ  ｓｙｎｃｈｒｏｎｏｕｓ  ｄｙｎａｍｉｃ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）などである。
【００１５】
動作時、初期設定中に、少なくとも１組のデフォルト・コンフィギュレーション・ソフトウェア機械コード化命令が、論理デバイス・コンフィギュレーション・メモリ１０８にロードされる。故障検出プロセッサ１０６は、１または複数のシングル・イベント故障状態があるかについて、それぞれの論理デバイス１０４Ａ〜１０４Ｃを絶えず監視する。１または複数のシングル・イベント故障状態の監視は、ＴＭＲボータ論理２０２により達成される。一実装形態では、ＴＭＲボータ論理２０２は、それぞれのシングル・イベント故障状態をフィルタリングする。１または複数のフィルタリングされたシングル・イベント故障状態が、プログラマブルＳＥＴエラーしきい値を超えたとき、システム・コントローラ１１０は自動的に、故障した論理デバイス中に現在ある状態情報のバックアップを調整して、再コンフィギュレーション・シーケンスを開始する。再コンフィギュレーション・シーケンスについては、後で図２および３に関連して更に詳細に述べる。障害のある論理デバイスが再コンフィギュレーションされると、あるいは３つの論理デバイス１０４Ａ〜１０４Ｃがすべて再コンフィギュレーションされると、システム・コントローラ１１０は、３つの論理デバイス１０４Ａ〜１０４Ｃすべての動作を中断して、それぞれの論理デバイス１０４１〜１０４３を同期動作へと戻す。
【００１６】
図２は、本発明の教示による、シングル・イベント故障状態を検出するための、回路の一実施形態のブロック図であり、その全体を２００として示す。回路２００の例示的な一実施形態は、’２９０出願に記載されている。回路２００は、図１の故障検出プロセッサ１０６（例えば、放射線耐性強化ＡＳＩＣ）を備える。故障検出プロセッサ１０６は、ＴＭＲボータ論理２０２、コンフィギュレーション・マネージャ２０４、メモリ・コントローラ２０６、システムオンチップ（ＳＯＣ）・バス・アービタ２０８、レジスタ・バス制御論理２１０、およびプロセッサ間ネットワーク・インタフェース２１２を備え、これらのそれぞれについては後で論じる。回路２００は、論理デバイス１０４Ａ〜１０４Ｃも備え、それぞれの論理デバイスは、データ通信のためにデバイス・インタフェース・パス２３０Ａ〜２３０Ｃによりそれぞれ故障検出プロセッサ１０６に結合される。デバイス・インタフェース・パス２３０Ａ〜２３０Ｃのそれぞれは、論理デバイス１０４Ａ〜１０４ＣのそれぞれをＴＭＲボータ論理２０２とリンクするための高速フル・デュープレックス通信インタフェースからなる。論理デバイス１０４Ａ〜１０４Ｃのそれぞれは、更に、コンフィギュレーション・インタフェース・パス２３２Ａ〜２３２Ｃにより故障検出プロセッサ１０６に結合される。コンフィギュレーション・インタフェース・パス２３２Ａ〜２３２Ｃのそれぞれは、コンフィギュレーション・マネージャ２０４によりそれぞれの論理デバイス１０４Ａ〜１０４Ｃをコンフィギュレーションするために使用されるフル・デュープレックス通信インタフェースからなる。説明を簡素にするために、図２には、合計３つの論理デバイス１０４Ａ〜１０４Ｃ、３つのデバイス・インタフェース・パス２３０Ａ〜２３０Ｃ、および３つのコンフィギュレーション・インタフェース・パス２３２Ａ〜２３２Ｃが示されていることに留意されたい。しかし、回路２００は、単一の回路２００で、任意の適切な数の論理デバイス１０４（例えば３つ以上の論理デバイス）、デバイス・インタフェース・パス（例えば３つ以上のデバイス・インタフェース・パス）、およびコンフィギュレーション・インタフェース・パス（例えば３つ以上のコンフィギュレーション・インタフェース・パス）をサポートすることを理解されたい。
【００１７】
ＴＭＲボータ論理２０２およびコンフィギュレーション・マネージャ２０４は、データ通信のために、ボータ論理インタフェース２２０およびコンフィギュレーション・マネージャ・インタフェース２２４によりレジスタ・バス制御論理２１０に結合される。ボータ論理インタフェース２２０およびコンフィギュレーション・マネージャ・インタフェース２２４は、ＴＭＲボータ論理２０２およびコンフィギュレーション・マネージャ２０４の内の制御レジスタ間でコマンドを転送するために故障検出プロセッサ１０６により使用される、双方向通信リンクである。レジスタ・バス制御論理２１０は、コンフィギュレーション・マネージャ２０４内の１または複数の制御レジスタおよび状態レジスタへのアクセスを、図１のシステム・コントローラ１１０に提供する。レジスタ・バス２２６は、レジスタ・バス制御論理２１０とプロセッサ間ネットワーク・インタフェース２１２との間の双方向プロセッサ間通信インタフェースを提供する。プロセッサ間ネットワーク・インタフェース２１２は、分散型処理アプリケーション・インタフェース１１２を介して故障検出プロセッサ１０６をシステム・コントローラ１１０に接続する。プロセッサ間ネットワーク・インタフェース２１２は、分散型処理アプリケーション・インタフェース１１２にエラー信号を提供する。エラー信号は、１または複数のフィルタリングされたシングル・イベント故障がプログラマブル・エラーしきい値を超えたことを、システム・コントローラ１１０に示す。この例示的な実施形態では、エラー信号は、後で図３に関して詳細に論じるように、エラーしきい値比較器３０９により提供される。図１に関して論じたように、分散型処理アプリケーション・インタフェース１１２は、少なくとも１組のデフォルト・コンフィギュレーション・ソフトウェア機械コード化命令を、論理デバイス・コンフィギュレーション・メモリ１０８へ記憶されるように、故障検出プロセッサ１０６へ送る。論理デバイス・コンフィギュレーション・メモリ１０８は、デバイス・メモリ・インタフェース２１４を介してメモリ・コントローラ２０６によりアクセスされる。デバイス・メモリ・インタフェース２１４は、メモリ・コントローラ２０６と論理デバイス・コンフィギュレーション・メモリ１０８との間の高速双方向通信リンクを提供する。
【００１８】
メモリ・コントローラ２０６は、バス・アービタ・インタフェース２２８、ＳＯＣバス・アービタ２０８、およびメモリ・コントローラ・インタフェース２１６を介して、論理デバイス・コンフィギュレーション・メモリ１０８に記憶するために少なくとも１組のデフォルトのプログラマブル論理を受け取る。バス・アービタ・インタフェース２２８は、ＳＯＣバス・アービタ２０８とプロセッサ間ネットワーク・インタフェース２１２との間の双方向プロセッサ間通信インタフェースを提供する。ＳＯＣバス・アービタ２０８は、メモリ・コントローラ・インタフェース２１６を介してメモリ・コントローラ２０６との間でメモリ・データの転送を行う。メモリ・コントローラ・インタフェース２１６は、メモリ・コントローラ２０６とＳＯＣバス・アービタ２０８との間の双方向プロセッサ間通信インタフェースを提供する。論理デバイス・コンフィギュレーション・メモリ１０８に関して前に論じた１組のデフォルト・コンフィギュレーション・ソフトウェア機械コード化命令を使用して、論理デバイス１０４１〜１０４３のそれぞれを再コンフィギュレーションする。ＳＯＣバス・アービタ２０８は、ボータ論理インタフェース２１８でＴＭＲボータ論理２０２から受け取った命令に基づいて、メモリ・コントローラ２０６へのアクセスを提供する。ボータ論理インタフェース２１８は、ＴＭＲボータ論理２０２とＳＯＣバス・アービタ２０８との間の双方向プロセッサ間通信インタフェースを提供する。ＳＯＣバス・アービタ２０８は更に、コンフィギュレーション・インタフェース２２２を介してコンフィギュレーション・マネージャ２０４と通信可能に結合される。コンフィギュレーション・インタフェース２２２は、コンフィギュレーション・マネージャ２０４とＳＯＣバス・アービタ２０８との間の双方向プロセッサ間通信インタフェースを提供する。ＳＯＣバス・アービタ２０８の主要な機能は、ＴＭＲボータ論理２０２とコンフィギュレーション・マネージャ２０４との間で、メモリ・コントローラ２０６および論理デバイス・コンフィギュレーション・メモリ１０８への等しいアクセスを提供することである。
【００１９】
動作時、コンフィギュレーション・マネージャ２０４は、初期設定期間後に図１のシステム・コントローラ１１０からの最小限の対話を行って幾つかの機能を実施する。システム・コントローラ１１０はまた、前に論じた１組のデフォルト・コンフィギュレーション・ソフトウェア機械コード化命令の位置およびサイズを用いて、コンフィギュレーション・マネージャ２０４中の１または複数のレジスタをプログラムする。初期設定に続いて、コンフィギュレーション・マネージャ２０４は、ＴＭＲボータ論理２０２により提供される結果に基づいて、同時に３つの論理デバイス１０４Ａ〜１０４Ｃすべてを並行して構成するよう指示されるか、あるいは論理デバイス１０４Ａ〜１０４Ｃのうちの１つから単一の論理デバイスを個別に構成するよう指示される。１または複数のシングル・イベント故障がプログラマブル・エラーしきい値を超えたことをＴＭＲボータ論理２０２が検出したとき、ＴＭＲボータ論理２０２はＴＭＲ故障パルスを生成する。ＴＭＲ故障パルスがコンフィギュレーション・マネージャ２０４により検出されると、コンフィギュレーション・マネージャ２０４は自動的に、論理デバイス１０４Ａ〜１０４ＣのうちのＴＭＲボータ論理２０２により障害があると決定された１つへの、一連のコマンドを開始する。例えば、論理デバイス１０４Ｂが疑わしいと識別された場合、コンフィギュレーション・マネージャ２０４は、論理デバイス１０４Ｂにアボートするよう命令する。アボート命令は、ＳＥＵやＳＥＦＩなどのような１または複数のシングル・イベント故障により引き起こされたエラーをクリアする。コンフィギュレーション・マネージャ２０４は論理デバイス１０４Ｂにリセット・コマンドを発行し、これにより論理デバイス１０４Ｂの動作が停止する。次に、コンフィギュレーション・マネージャ２０４は論理デバイス１０４Ｂに消去コマンドを発行し、これにより論理デバイス１０４Ｂ中にあるすべてのメモリ・レジスタがクリアされる。論理デバイス１０４Ｂがすべてのメモリ・レジスタをクリアすると、論理デバイス１０４Ｂは、コンフィギュレーション・マネージャ２０４に返答する。コンフィギュレーション・マネージャ２０４は、論理デバイス１０４Ｂに対する１組のデフォルト・コンフィギュレーション・ソフトウェア機械コード化命令を、論理デバイス・コンフィギュレーション・メモリ１０８のプログラマブル開始アドレスから論理デバイス１０４Ｂへ送る。転送が完了すると、コンフィギュレーション・マネージャ２０４は、同期サイクルを実施して論理デバイス１０４Ａ〜１０４Ｃのそれぞれを再び同期させなければならないことを、システム・コントローラ１１０に通知する。論理デバイス１０４Ａ〜１０４Ｃのうちの障害（故障）があると決定された１つのみが、再コンフィギュレーションを必要とするものであり、それによりシステムの再起動時間を最小限に抑える。
【００２０】
図３は、本発明の教示による、シングル・イベント故障状態を検出するための、プログラマブル論理インタフェースの一実施形態のブロック図であり、その全体を３００で示す。論理インタフェース３００は、ワード・シンクロナイザ３０４Ａ〜３０４Ｃ、三重／二重モジュール式冗長（Triple/Double Modular Redundancy）（ＴＭＲ／ＤＭＲ）ワード・ボータ３０８、ＳＯＣマルチプレクサ３１２、および故障カウンタ３１４を備え、これらのそれぞれについては後で論じる。論理インタフェース３００は、図２と関連して上述したＴＭＲボータ論理２０２の入力セクションからなる。説明を簡素にするために、図３には、合計３つのワード・シンクロナイザ３０４Ａ〜３０４Ｃが示されていることに留意されたい。しかし、論理インタフェース３００は、単一の論理インタフェース３００で任意の適切な数のワード・シンクロナイザ３０４（例えば３つ以上のワード・シンクロナイザ）をサポートすることを理解されたい。
【００２１】
ワード・シンクロナイザ３０４Ａ〜３０４Ｃのそれぞれは、図２に関して説明したように、デバイス・インタフェース・パス２３０Ａ〜２３０Ｃのそれぞれから１または複数の元（オリジナル）の入力信号をそれぞれ受け取る。１または複数のオリジナル入力信号のそれぞれは、図２の論理デバイス１０４Ａ〜１０４Ｃのそれぞれからの入力データ信号および制御信号に加えて、クロック信号を含む。クロック信号を送信することにより、デバイス・インタフェース・パス２３０Ａ〜２３０Ｃのものと同様の高速インタフェースに典型的に見られるルーティング制約および信号スキュー問題が緩和される。ワード・シンクロナイザ３０４Ａ〜３０４Ｃのそれぞれは、クロック信号を提供されて、入力データ信号および制御信号をサンプリングする。データ信号および制御信号は、各ワード・シンクロナイザ３０４Ａ〜３０４Ｃのフロント・エンドにある循環バッファの中を通され、循環バッファは、入力データ信号および制御信号をワード境界でフレーム信号と整合させる。ワード境界は、２０ビット幅（例えば、１６ビットのデータに３つの制御信号および１つのクロック信号を加えたもの）、および各シンクロナイザ出力線３０６Ａ〜３０６Ｃにおいて１９ビット幅である。デバイス・インタフェース・パス２３０Ａ〜２３０Ｃのそれぞれは、等しい長さでルーティングされて、クロック・サイクル・ベースのボーティングをサポートする。ワード整合の後、整合された入力データ信号および制御信号は、クロック境界３０２をまたいでシンクロナイザ出力線３０６Ａ〜３０６Ｃのそれぞれ上を送られる。シンクロナイザ出力線３０６Ａ〜３０６Ｃのそれぞれは、同期された出力を、図１の故障検出プロセッサ１０６のクロック・ドメインに出力する。シンクロナイザ出力線３０６Ａ〜３０６Ｃのそれぞれは、データ通信のためにＴＭＲ／ＤＭＲワード・ボータ３０８に結合される。説明を簡素にするために、図３には、合計３つのシンクロナイザ出力線３０６Ａ〜３０６Ｃが示されていることに留意されたい。しかし、論理インタフェース３００は、単一の論理インタフェース３００で、任意の適切な数のシンクロナイザ出力線３０６（例えば３つ以上のシンクロナイザ出力線）をサポートすることを理解されたい。
【００２２】
論理デバイス１０４Ａ〜１０４Ｃからの同期した出力は、ＴＭＲ／ＤＭＲワード・ボータ３０８中へ送られる。ＴＭＲ／ＤＭＲワード・ボータ３０８は更に、エラーしきい値比較器３０９および故障検出ブロック３１０を備える。ＴＭＲ／ＤＭＲワード・ボータ３０８は、組合せ論理を取り入れて、クロック・サイクルごとに１度、論理デバイス１０４Ａ〜１０４Ｃのうちの１つからの同期された出力を、論理デバイス１０４Ａ〜１０４Ｃの残りの２つからの対応する同期した出力と比較する。エラーしきい値比較器３０９には、プログラマブル・エラーしきい値がプログラムされる。故障検出ブロック３１０は、論理デバイス１０４Ａ〜１０４Ｃのうちの何れのものが不一致であるか（即ち、一致しないか）を決定する。一致しない論理デバイス１０４は、疑わしいデバイスであると考えられる。論理デバイス１０４Ａ〜１０４Ｃのそれぞれが一致する場合、故障検出ブロック３１０からの出力パターンは、すべて１であるの３つの信号を含む。論理デバイス１０４Ａ〜１０４Ｃのうちの１つが不一致である場合、出力パターン中の２つの信号は論理０となる。一致する（即ち、それぞれ０である）２つの信号は、残りの信号が論理１に留まるようにする。この残りの信号は、論理デバイス１０４Ａ〜１０４Ｃのうちの何れのものが疑わしいデバイスかを示す。
【００２３】
疑わしいデバイスが検出されると、故障カウンタ３１４が故障カウンタ・インタフェース３２０により更新される。この例示的な実施形態では、故障カウンタ３１４は、エラー・フィルタ・カウンタ３１６および累積エラー・カウンタ３１８を含む。ＴＭＲ／ＤＭＲワード・ボータ３０８は、不一致ごとにエラー・フィルタ・カウンタ３１６を１だけインクリメントし、また、ＴＭＲ／ＤＭＲワード・ボータ３０８が一致すると決定した論理デバイス１０４Ａ〜１０４Ｃからの同期した出力の組ごとに、エラー・フィルタ・カウンタ３１６を１だけデクリメントする。この例示的な実施形態では、エラー・フィルタ・カウンタ３１６およびエラーしきい値比較器３０９は、プログラマブル・エラー・フィルタを表す。エラー・フィルタ・カウンタ３１６が更新されると、故障カウンタ３１４は、更新したエラー・フィルタ・カウンタ値をエラーしきい値比較器３０９へ発行する。エラーしきい値比較器３０９が、エラー・フィルタ・カウンタ３１６の更新されたエラー・フィルタ・カウンタ値がプログラマブル・エラーしきい値に違反する（即ち、それを超える）と判定すると、疑わしいデバイスが自動的に再コンフィギュレーションされる。論理デバイス１０４Ａ〜１０４Ｃのうちの残りの２つの論理デバイスは、セルフチェッキング・ペア（ＳＣＰ、ｓｅｌｆ−ｃｈｅｃｋｉｎｇ  ｐａｉｒ）またはＤＭＲモードで引き続いて動作する。前述の’２９０出願に記載されているように、ＳＣＰモードで論理デバイス１０４Ａ〜１０４Ｃの残りの２つの論理デバイス間に最初の不一致があれば、致命的なエラーをシステム・コントローラ１１０へ信号伝達し、システム・コントローラ１１０は、３つの論理デバイス１０４Ａ〜１０４Ｃのすべてに対する完全な復旧シーケンスを開始する。
【００２４】
影響を受けた論理デバイス１０４Ａ〜１０４Ｃの再コンフィギュレーションは、図２と関連して述べたように、コンフィギュレーション・マネージャ２０４により自動的に対処される。ＴＭＲ／ＤＭＲワード・ボータ３０８は、論理デバイス１０４Ａ〜１０４Ｃのうちの何れのものが１または複数のシングル・イベント故障により本質的に変更されたかを、ＴＭＲ／ＤＭＲボータ出力インタフェース３２２を介してＳＯＣマルチプレクサ３１２に示す。再コンフィギュレーション要求がＳＯＣバス・アービタ２０８に出される。ＳＯＣマルチプレクサ３１２は、ＳＯＣバス・アービタ２０８がボータ論理インタフェース２１８からアクセスするように、影響を受けた論理デバイス（１または複数）を選択する。
【００２５】
エラー・フィルタ・カウンタ３１６は、検出された各シングル・イベント故障エラーを追跡し、最大（最小）カウンタ値に達したときにインクリメント（デクリメント）を停止する。エラー・フィルタ・カウンタ３１６が、エラーしきい値比較器３０９のプログラマブル・エラーしきい値を超えると、かなりの数のシングル・イベント故障状態が連続して発生したこと（即ち、一連の連続したクロック・サイクルにわたってプログラマブル・エラーしきい値を超えたこと）が、システム・コントローラ１１０に通知される。その時までは、論理デバイス１０４Ａ〜１０４Ｃの通常動作に影響しない周期的なＳＥＴエラーは、エラーしきい値比較器３０９を通過することになる。エラー・フィルタ・カウンタ３１６により、エラーしきい値比較器３０９は、ＳＥＴと論理デバイス１０４Ａ〜１０４Ｃのうちの少なくとも１つのハードな障害とを区別することができる。累積エラー・カウンタ３１８は、インタフェースのＳＥＵまたはＳＥＦＩのレートに関する統計（例えば、宇宙任務の期間にわたってのもの）を提供する。累積エラー・カウンタ３１８は、障害のある論理デバイス１０４を決定しない。
【００２６】
図４は、本発明の好ましい一実施形態による、電子回路におけるシングル・イベント故障を許容する方法４００を示す流れ図である。図４の方法はステップ４０２で開始する。この例示的な実施形態では、プログラマブル・エラーしきい値が、エラー・フィルタ・カウンタ３１６に対して確立（または更新）される（ステップ４０４）。次いで、方法４００は、シングル・イベント故障の発生による破損の可能性について、論理デバイス１０４Ａ〜１０４Ｃからの１または複数の論理読取値（logic reading、論理示度）を監視するプロセスを開始する。方法４００の主要な機能の１つは、論理デバイス１０４Ａ〜１０４Ｃからのそれぞれの論理示度の現在の状態に基づいて、エラー・フィルタ・カウンタ３１６をクロック・サイクルごとに更新することである。方法４００は、周期的なＳＥＴエラーが、システム１００の通常動作に影響することなくエラーしきい値比較器３０９を通過できるようにする。論理デバイス１０４Ａ〜１０４Ｃのそれぞれは最小限のダウンタイムで本質的に機能状態を維持し、故障検出プロセッサ・アセンブリ１０２は所望される故障許容性レベルを維持する。
【００２７】
ステップ４０６で、システム・コントローラ１１０は、エラー・フィルタ・カウンタ３１６のプログラマブル・エラーしきい値が前のレベルまたはデフォルト・レベルから変化したかを判定する。しきい値が変化した場合、現在のプログラマブル・エラーしきい値レベルがシステム・コントローラ１１０から送られる（ステップ４０７）。プログラマブル・エラーしきい値レベルが変化していない場合、またはプログラマブル・エラーしきい値レベルが所定レベルに固定されている場合、ＴＭＲボータ論理２０２は論理デバイス１０４Ａ〜１０４Ｃのそれぞれから論理示度を受け取る（ステップ４０８）。ステップ４１０で、受け取られた３つ以上の論理示度のそれぞれが、少なくとも２つの他の論理示度と比較される。ステップ４１２で、ＴＭＲ／ＤＭＲワード・ボータ３０８は、３つ以上の論理示度のすべてが一致するかどうかを判定する。３つ以上の論理示度のすべてが一致するかどうかを判定することは、論理デバイス１０４Ａ〜１０４Ｃのうちの何れのものがかを判定することを含む。論理デバイス１０４Ａ〜１０４Ｃのうちの状態を変化させた何れかのものが、疑わしいデバイスであると考えられる。
【００２８】
３つ以上の論理示度のすべてが一致するとき、ステップ４１５でエラー・フィルタ・カウンタ３１６が１だけデクリメント（減分）され、方法４００はステップ４０４に戻る。３つの論理示度のうちの１つが残りの少なくとも２つと一致しないとき、シングル・イベント故障が検出されている。ステップ４１４でエラー・フィルタ・カウンタ３１６が１だけインクリメント（増分）されて、少なくとも１つの更なるシングル・イベント故障が発生したことが示される。エラーしきい値比較器３０９は、エラー・フィルタ・カウンタ３１６がしきい値レベルを超えたときにそれをシステム・コントローラ１１０に示す（ステップ４１６）。しきい値レベルを超えない場合は、方法４００はステップ４０４に戻る。
【００２９】
この時点で、残りの論理デバイス１０４Ａ〜１０４Ｃの組合せが、３つ以上の論理示度のうちの１つの一致しない論理示度を補償する。ステップ４１８で、ＴＭＲ／ＤＭＲワード・ボータ３０８は、残りの少なくとも２つの論理デバイス１０４Ａ〜１０４Ｃのそれぞれの論理示度を相互に比較する。ＴＭＲ／ＤＭＲワード・ボータ３０８が、残りの少なくとも２つの論理示度が相互に一致すると判定した場合（ステップ４２０）、ステップ４２２で、論理デバイス１０４Ａ〜１０４Ｃの残りの少なくとも２つのものと一致しないと判定された疑わしいデバイスが、自動的に再コンフィギュレーションされる。そうでない場合は、ステップ４２４で、論理デバイス１０４Ａ〜１０４Ｃのそれぞれが自動的に再コンフィギュレーションされる。ステップ４２４へ到達すると、致命的またはＳＣＰエラーが発生したことをシステム１００に示す。ステップ４２２で疑わしいデバイスが自動的に再コンフィギュレーションされると、またはステップ４２４で論理デバイス１０４Ａ〜１０４Ｃのそれぞれが自動的に再コンフィギュレーションされると、方法４００はステップ４０４に戻る。
【００３０】
本発明の説明を、例証および説明の目的で提示した。この説明は、網羅的であるとや、発明を開示した形に限定することを、意図していない。変形および変更を行うこともでき、それらも特許請求の範囲に述べる本発明の範囲に含まれる。
【図面の簡単な説明】
【００３１】
【図１】図１は、本発明の教示による故障許容コンピューティング・システムの一実施形態のブロック図である。
【図２】図２は、本発明の教示による、シングル・イベント故障状態を検出するための回路の一実施形態のブロック図である。
【図３】図３は、本発明の教示による、プログラマブル・エラー・フィルタを備えた、シングル・イベント故障状態を検出するためのプログラマブル論理インタフェースの一実施形態のブロック図である。
【図４】図４は、本発明の教示による、電子回路でのシングル・イベント故障を許容する方法の一実施形態を示す流れ図である。
【図１】
2009534738.tif 000003
【図２】
2009534738.tif 000004
【図３】
2009534738.tif 000005
【図４】
2009534738.tif 000006
【国際調査報告】
2009534738.tif 000007
2009534738.tif 000008
2009534738.tif 000009