(57)【要約】  電子モジュールが提供される。このモジュールは、少なくとも２つのプロセッサおよび第１の比較器を有する第１の論理回路、ならびに少なくとも１つのプロセッサおよび第２の比較器を有する第２の論理回路を含む。少なくとも２つのプロセッサのそれぞれは、第１および第２の比較器のそれぞれに結合される。第１および第２の比較器は、分散型比較器システムとして動作する。各比較器は、プロセッサの故障を別々に識別する。
2008503002.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも２つのプロセッサおよび第１の比較器を有する第１の論理回路と、
少なくとも１つのプロセッサおよび第２の比較器を有する第２の論理回路と
を含み、前記少なくとも２つのプロセッサのそれぞれが前記第１および第２の比較器のそれぞれに結合され、
前記第１および第２の比較器が分散型比較器システムとして動作し、
各比較器が前記プロセッサにおける故障を別々に識別する
システム。
【請求項２】
前記第１および第２の論理回路がプログラム可能である請求項１に記載のシステム。
【請求項３】
前記第１および第２の比較器のそれぞれがハードウェア装置である請求項１に記載のシステム。
【請求項４】
実質的に同じ機能を行うように構成されている少なくとも３つのプロセッサと、
少なくとも１つのハードウェア比較器と
を含み、前記少なくとも３つのプロセッサのそれぞれがソフトウェア実装フォールトトレランス機能（ＳＩＦＴ）を含み、
前記少なくとも３つのＳＩＦＴのそれぞれが前記ハードウェア比較器のそれぞれに通信可能に結合されており、
前記ＳＩＦＴのそれぞれが互いに独立して動作して、前記少なくとも３つのプロセッサのうちの１つまたは複数における故障を識別する
論理回路。
【請求項５】
少なくとも３つのプロセッサを有する論理回路と、
前記少なくとも３つのプロセッサのそれぞれに結合されている少なくとも１つの比較器と
を含み、各プロセッサがソフトウェア実装フォールトトレランス（ＳＩＦＴ）機能を含み、
前記ＳＩＦＴおよび前記少なくとも１つの比較器が一緒に前記少なくとも３つのプロセッサの出力を処理し、
前記ＳＩＦＴが、前記少なくとも３つのプロセッサのうちの１つまたは複数が故障しているかどうかを決定する
システム。
【請求項６】
前記論理回路がプログラム可能である請求項５に記載のシステム。
【請求項７】
前記少なくとも１つの比較器がハードウェア装置である請求項５に記載のシステム。
【請求項８】
それぞれソフトウェア実装フォールトトレランス（ＳＩＦＴ）機能を有する少なくとも３つの冗長プロセッサを有するプログラム可能装置の故障を識別する方法であって、
前記少なくとも３つの冗長プロセッサのそれぞれで出力を生成するステップと、
前記ＳＩＦＴのそれぞれで前記生成された出力を受信するステップと、
前記ＳＩＦＴのそれぞれを使用して比較機能の第１の部分を実行するステップと、
ハードウェア比較器を使用して前記比較機能の第２の部分を実行するステップと、
前記比較機能の前記第１の部分および前記比較機能の前記第２の部分のそれぞれの結果を結合するステップと、
前記結合された結果を分析するステップとを含み、前記分析が
少数票のチェックを含む、前記結合された結果の投票機能を実行するステップと、
前記少数票に基づいて前記少なくとも３つの冗長プロセッサの中の障害のあるプロセッサを決定するステップと
を含む方法。
【請求項９】
少数票が得られると、前記障害のあるプロセッサを初期化するステップをさらに含む請求項８に記載の方法。
【請求項１０】
それぞれソフトウェア実装フォールトトレランス（ＳＩＦＴ）機能を有する少なくとも３つの冗長プロセッサを有するプログラム可能装置の投票機構を加速する方法であって、
前記少なくとも３つの冗長プロセッサのそれぞれで出力を生成するステップと、
前記ＳＩＦＴのそれぞれで前記生成された出力を受信するステップと、
前記ＳＩＦＴのそれぞれを使用して比較機能の第１の部分を実行するステップと、
ハードウェア比較器を使用して前記比較機能の第２の部分を実行するステップと、
前記比較機能の前記第１の部分および前記比較機能の前記第２の部分のそれぞれの結果を取り出すステップと
を含む方法。
【請求項１１】
少なくとも２つのプロセッサおよび第１の比較器を有する第１の論理回路と、
少なくとも１つのプロセッサおよび第２の比較器を有する第２の論理回路と
を含み、前記少なくとも２つのプロセッサのそれぞれが前記第１および第２の比較器のそれぞれに結合され、
前記第１および第２の比較器が分散型比較器システムとして動作し、
各比較器が前記プロセッサにおける故障を別々に識別し、
前記論理回路が単一のチップ上で結合されている
電子モジュール。
【請求項１２】
前記第１および第２の論理回路がプログラム可能である請求項１１に記載の電子モジュール。
【請求項１３】
それぞれソフトウェア実装フォールトトレランス（ＳＩＦＴ）機能を有する少なくとも３つの冗長プロセッサを有するプログラム可能装置の故障を識別する命令を格納する機械可読媒体であって、前記方法が、
前記少なくとも３つの冗長プロセッサのそれぞれで出力を生成するステップと、
前記ＳＩＦＴのそれぞれで前記生成された出力を受信するステップと、
前記ＳＩＦＴのそれぞれを使用して比較機能の第１の部分を実行するステップと、
ハードウェア比較器を使用して前記比較機能の第２の部分を実行するステップと、
前記比較機能の前記第１の部分および前記比較機能の前記第２の部分のそれぞれの結果を結合するステップと、
前記結合された結果を分析するステップとを含み、前記分析が
少数票のチェックを含む、前記結合された結果の投票を実行するステップと、
前記少数票に基づいて前記少なくとも３つの冗長プロセッサの中の障害のあるプロセッサを決定するステップと
を含む機械可読媒体。
【請求項１４】
少数票が得られると、前記障害のあるプロセッサを初期化するステップをさらに含む請求項１３に記載の方法。
【請求項１５】
それぞれソフトウェア実装フォールトトレランス（ＳＩＦＴ）機能を有する少なくとも３つの冗長プロセッサを有するプログラム可能装置における投票機構を加速する命令を格納する機械可読媒体であって、前記方法が、
前記少なくとも３つの冗長プロセッサのそれぞれで出力を生成するステップと、
前記ＳＩＦＴのそれぞれで前記生成された出力を受信するステップと、
前記ＳＩＦＴのそれぞれを使用して比較機能の第１の部分を実行するステップと、
ハードウェア比較器を使用して前記比較機能の第２の部分を実行するステップと、
前記比較機能の前記第１の部分および前記比較機能の前記第２の部分のそれぞれの結果を取り出すステップと、
を含む機械可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に冗長アーキテクチャの分野に関し、より詳細には、単一フォールト・トレラント・アーキテクチャの開発に関する。
【背景技術】
【０００２】
宇宙飛行は、シングル・イベント・アップセット（Ｓｉｎｇｌｅ  Ｅｖｅｎｔ  Ｕｐｓｅｔ：ＳＥＵ）を克服するために使用できる最高の耐アップセット性（ｕｐｓｅｔ  ｒａｔｅ  ｉｍｍｕｎｉｔｙ）が必要である。時として、電子システムは、正常パラメータ外で動作し、それによって不良データを生成する可能性がある。一部の状況では、これらのシステムの障害は、破局的な場合がある。放射線に対して耐性を高めたプロセッサは、使用可能ではあるが、商用の既製プロセッサより性能が低く、コストがより高い。非耐性装置を使用するために、１つまたは複数の冗長システムを含むアーキテクチャでフォールトトレラント方式が使用される。障害のあるシステムを識別するために、投票機構が使用される。投票機構は、冗長システムの同時の出力を処理して、正しいデータを生成するシステムを決定する。こうしたアーキテクチャで使用される投票機構は、ソフトウェアを介して実装される。しかし、投票機構のソフトウェア実装は、非常に遅い。
【０００３】
投票機構を使用する１つの仮定は、故障が一度に１つだけ起こることである。この単一の故障の仮定は、障害のある出力の識別を可能にする。一部の用途では、１つのシステムが故障すると、それを他の２つによって容易に識別することができるように、３つのシステムが同時に動作する。本質的に、第３のシステムが決定票を投じる。システムが２つしか使用されていない場合、エラーを識別することは可能であるが、故障したシステムを決定するために過半数の票が必要であるため、どの出力が誤っているかは識別できない。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
したがって、当技術分野では、アーキテクチャのＳＥＵ問題を克服するために、より速いソリューションを提供する既製の構成要素を使用する改良されたアーキテクチャが必要である。
【課題を解決するための手段】
【０００５】
本発明の実施形態は、冗長プロセッサを備えるシステムにおける投票機構プロセスの高速化に対処する。
【０００６】
一実施形態では、システムが提供される。このシステムは、少なくとも２つのプロセッサおよび第１の比較器を有する第１の論理回路、ならびに少なくとも１つのプロセッサおよび第２の比較器を有する第２の論理回路を含む。少なくとも２つのプロセッサのそれぞれは、第１および第２の比較器のそれぞれに結合される。第１および第２の比較器は、分散型比較器システムとして動作する。各比較器は、プロセッサの故障を別々に識別する。
【０００７】
別の実施形態では、それぞれソフトウェア実装フォールトトレランス（ｓｏｆｔｗａｒｅ  ｉｍｐｌｅｍｅｎｔｅｄ  ｆａｕｌｔ  ｔｏｌｅｒａｎｃｅ：ＳＩＦＴ）機能を有する少なくとも３つの冗長プロセッサを有するプログラム可能装置の故障を識別する方法が提供される。この方法は、少なくとも３つの冗長プロセッサのそれぞれで出力を生成するステップと、前記ＳＩＦＴのそれぞれで前記生成された出力を受信するステップと、前記ＳＩＦＴのそれぞれを使用して比較機能の第１の部分を実行するステップと、ハードウェア比較器を使用して前記比較機能の第２の部分を実行するステップと、前記比較機能の前記第１の部分および前記比較機能の前記第２の部分のそれぞれの結果を結合するステップと、前記結合された結果を分析するステップとを含む。分析は、少数票のチェックを含む、前記結合された結果の投票機能を実行するステップと、前記少数票に基づいて前記少なくとも３つの冗長プロセッサの中の障害のあるプロセッサを決定するステップとを含む。
【発明を実施するための最良の形態】
【０００８】
好ましい実施形態の以下の詳細な説明では、本明細書の一部を形成しており、本発明が実施され得る特定の実施形態が例として示されている添付の図面が参照される。本発明の範囲から逸脱することなく、他の実施形態が使用されてもよく、また構造的な変更が行われてもよいことを理解されたい。
【０００９】
図１は、本発明の教示に従って、全体的に１００で示されている、電子モジュール１１０の一実施形態のアーキテクチャのブロック図である。電子モジュール１１０は、第１および第２の冗長論理回路１０２および１０４を有する単一フォールト・トレラント・アーキテクチャを含む。一実施形態では、電子モジュール１１０は、特定用途向け集積回路（ＡＳＩＣ）である。別の実施形態では、電子モジュール１１０は、プリント配線基板（ＰＷＡ）である。
【００１０】
一実施形態では、論理回路１０２および１０４は、２つのプロセッサをそれぞれに含むようにプログラムされているフィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）である。論理回路１０２は、比較器１３０を含み、論理回路１０４は、比較器１４０を含む。比較器１３０および１４０は、結合して、分散型アーキテクチャにおいて比較する機能を実行する。一実施形態では、分散型アーキテクチャは、比較機能を２つ以上のユニットに分割し、または分けることに向けられる。一実施形態では、比較器１３０および１４０はいずれも、実質的に同じ機能を実行し、別の実施形態では、これらは、互いに補足し合い、共に比較の機能を完了させる。比較器１３０および１４０に使用される分散型アーキテクチャは、追加の冗長層を提供する。
【００１１】
別の実施形態では、より優れた冗長を達成するために、第１の論理回路１０２は、プロセッサ１２０−１から１２０−Ｔまでを有し、第２の論理回路は、プロセッサ１２１−１から１２１−Ｎまでを有する。第１および第２の論理回路１０２および１０４では、プロセッサ１２０−１から１２０−Ｔまでおよび１２１−１から１２１−Ｎまでは、実質的に同じ機能を実行するようにプログラムされている。プロセッサ１２０−１から１２０−Ｔまでおよび１２１−１から１２１−Ｎまでのそれぞれによって実行される通常のシステム機能に加えて、本発明の実施形態は、プロセッサ１２０−１から１２０−Ｔまでおよび１２１−１から１２１−Ｎまでのいずれかにおいて故障があるかどうかを互いに比較するために使用される出力を生成するプロセッサ１２０−１から１２０−Ｔまで、および１２１−１から１２１−Ｎまでを有する。両方の比較器１３０および１４０は、プロセッサ１２０−１から１２０−Ｔおよび１２１−１から１２１−Ｎまでのそれぞれと結合される。
【００１２】
動作中、プロセッサ１２０−１から１２０−Ｔまで、および１２１−１から１２１−Ｎまでによって生成された各出力は、比較器１３０および１４０を含む分散型比較器機構を使用して互いに比較される。個々のビットレベル比較が実行され、次いで結果がプロセッサ１２０−１から１２０−Ｔまで、および１２１−１から１２１−Ｎまでに再配分される。比較は、ハードウェアにおいて行われるため、プロセッサ１２０−１から１２０−Ｔおよび１２１−１から１２１−Ｎまでの上で稼働され得るソフトウェア実装より速い。一実施形態では、比較器１３０および１４０は、同一であり、したがって、故障識別機能の実行の際に追加の冗長を提供する。別の実施形態では、比較器１３０および１４０は、プロセッサ出力の比較の仕事量を分担し、それによって総処理時間を短縮する。比較器１３０および１４０は、互いの結果に依存して、故障識別機能を完了させる。
【００１３】
一実施形態では、電子モジュール１１０は、少なくとも３つの冗長プロセッサ１２０−１から１２１−Ｔおよび１２１−１から１２１−Ｎを含む。プロセッサ１２０−１、１２０−Ｔ、１２１−１、および１２１−Ｎの中の障害のある単一のプロセッサを決定するために、最低３つの冗長プロセッサの必要性が要求される。プロセッサが２つしか存在しないとき、障害のあるプロセッサが存在するという事実は識別することができるが、どのプロセッサが故障しているかを決定することはできない。第３のプロセッサを追加することによって、障害のあるプロセッサを決定する際に、決定票が提供される。
【００１４】
図２は、本発明の教示に従って、全体的に２００で示されている、電子モジュール２１０の一実施形態のアーキテクチャのブロック図である。一実施形態では、電子モジュール２１０は、１つまたは複数のオプションのプロセッサ２２０−１から２２０−Ｍまでを含む。一実施形態では、電子モジュール２１０は、本質的にプログラム可能論理回路として動作する。別の実施形態では、プロセッサ２２０−１から２２０−Ｍまでは、電子モジュール２１０から分離された個別のプロセッサである。これらの実施形態のそれぞれでは、プロセッサ２２０−１から２２０−Ｍまでは、独立しており、アーキテクチャの放射線に対する耐性が高くなるように、互いに切り離されている。
【００１５】
一実施形態では、電子モジュール２１０は、少なくとも３つの冗長プロセッサ２２０−１から２２０−Ｍまでを含む。プロセッサ２２０−１、２２０−２、および２２０−３の中の障害のある単一のプロセッサを決定するために、最低３つの冗長プロセッサの必要性が要求される。プロセッサ２２０−１および２２０−２の２つしか存在しない場合、障害のあるプロセッサが存在するという事実は識別することができるが、２つのプロセッサ２２０−１および２２０−２のうちのどちらが故障しているかを決定することはできない。第３のプロセッサを追加することによって、障害のあるプロセッサを決定する際に、決定票を提供する。
【００１６】
図２では、プロセッサ２２０−１から２２０−Ｍは、実質的に同じ機能を行う。プロセッサ２２０−１から２２０−Ｍまでのそれぞれは、２２２−１から２２２−Ｍによって表されるソフトウェア実装フォールトトレランス（ＳＩＦＴ）機能を含む。ＳＩＦＴ２２２−１から２２２−Ｍまでは、プロセッサ２２０−１から２２０−Ｍに関して比較、管理、投票、およびリセットの機能を行うライブラリセットを有するプログラミング・インターフェイスである。ＳＩＦＴ２２２−１から２２２−Ｍまでは、プロセッサ２２０−１から２２０−Ｍまでのうちの１つの単一イベントエラーの検出をサポートする。一実施形態では、ＳＩＦＴ機能２２２−１から２２２−Ｍまでの動作は、プロセッサ２２０−１から２２０−Ｍまでの動作と関係なく機能するように切り離される。比較は、あるアプリケーション（ＳＩＦＴなど）によって指定されたチェックポイントで行われる。各ＳＩＦＴ２２２−１から２２２−Ｍは、そのタスクを、設計者によって指定された、予め定められている何らかのアプリケーション周期で行う。一実施形態では、電子モジュール２１０にハードウェア比較器２３０も含まれており、ハードウェア比較器２３０は、電子モジュール２１０の残りのスペースに実装される。ハードウェア比較器２３０は、ＳＩＦＴ２２２−１から２２２−Ｍまでのそれぞれによって実行される比較機能を実行する時間および労力を低減し、ＳＩＦＴ２２２−１から２２２−Ｍまでの比較機能を実行する負担の一部を軽減する。一実施形態では、ハードウェア比較器２３０は、三重モジュール式冗長（ＴＭＲ）実装を使用することによって、放射線に対する耐性が高くなる。
【００１７】
動作中、ＳＩＦＴソフトウェア２２２−１から２２２−Ｍまでは、各プロセッサ上で実行される。ソフトウェアが実行されている間、一部の比較機能は、ハードウェア比較器２３０に転送されて、ハードウェアにおいてビットレベル比較を実行する。ハードウェア比較器２３０は、ＳＩＦＴ２２２−１から２２２−Ｍまでを強化し、ハードウェアを介して比較がより速く行われるようにする。比較タスクの完了後、ハードウェア比較器２３０は、結果をＳＩＦＴ２２２−１から２２２−Ｍまでに転送する。ＳＩＦＴソフトウェアの実行が完了すると、結果は、プロセッサ２２０−１から２２０−Ｍまでのそれぞれに転送される。一実施形態では、各ＳＩＦＴ２２２−１から２２２−Ｍは、メッセージを、プロセッサ２２０−１から２２０−Ｍまでの中の障害のあるプロセッサに送信して、プロセッサを初期化またはリセットする。また、一実施形態では、障害のあるプロセッサは、必要に応じてその任務を続けることができるように、他のプロセッサ２２０−１から２２０−Ｍまでのうちの１つの現在のイメージのコピーを受信することもできる。
【００１８】
図３は、全体的に３００で示されている、ハードウェア比較器の一実施形態を示すブロック図である。一実施形態では、ハードウェア比較器３００は、上の図２で２３０と示されているものである。ハードウェア比較器３００は、バイナリ比較器３１０、制御論理３２０、選別器３３５、およびブロードキャスタ３４０を含む。一実施形態では、バイナリ比較器３１０は、制御論理回路３２０に結合され、制御論理回路は、選別器３３０に結合される。
【００１９】
動作中、ＳＩＦＴ２２２−１から２２２−Ｍまでのそれぞれは、出力Ｃ１〜ＣＭを生成する。出力Ｃ１からＣＭまでは、バイナリ比較器３１０によって受信される。バイナリ比較器３１０は、ビットレベル比較を行って、プロセッサ出力間のビット位置の任意の変化を検出し、それによって障害のあるまたは故障したプロセッサがあるかどうかを決定する。バイナリ比較器３１０におけるビット比較の結果は、制御論理回路３２０に転送される。制御論理回路３２０は、比較結果に基づいて制御信号を生成する。制御論理回路３２０からの制御信号は、選別器３３０をトリガする。プロセッサが故障している場合、制御論理３３０からの制御信号は、選別器３３０をトリガして、故障した出力以外の出力を、ブロードキャスタ３４０に送信するように選択させる。ブロードキャスタ３４０は、選択された信号をすべてのプロセッサ１２０−から１２０−Ｔまで、１２１−１から１２１−Ｎまで、および２２０−１から２２０−Ｍまでに返し、その結果、故障したプロセッサがリセットされる。
【００２０】
図４は、本発明の教示に従って、全体的に４００で示されている、電子モジュールにおける投票機構を加速する方法の一実施形態のフローチャートである。方法４００は、上の図２に示されている電子モジュール２１０などの電子モジュールによって実行される。電子モジュールは、ハードウェア比較器、およびそれぞれソフトウェア実装フォールトトレランス機能を有する少なくとも３つ以上の冗長システムを含む。この方法は、ブロック４１０で開始し、冗長プロセッサのそれぞれが分析のための出力を生成する。ブロック４２０で、冗長プロセッサからの出力のそれぞれがＳＩＦＴによって受信される。ブロック４３０で、出力の一部分がハードウェア比較器に送信される。この方法は、次いで、ブロック４４０に進み、ハ―ドウェア比較器において比較プロセスを行う。この方法は、ブロック４５０に進み、比較プロセスの結果がＳＩＦＴによって取り出される。ブロック４６０で、結果がチェックされて、少数票があるかどうかが決定される。少数票がない場合、方法は、ブロック４９０に進み、そこで終了する。少数票がないことは、すべてのプロセッサに、障害のあるプロセッサがないことを示す。
【００２１】
そうでなく、少数票があるとき、方法はブロック４７０に進む。故障したプロセッサの数が適切に動作しているプロセッサの数より少ないと仮定して、ブロック４７０で、故障したプロセッサが識別される。次いでこの方法は、ブロック４８０に進み、識別された故障したプロセッサが初期化され、または補正処置がそれに対して行われる。ブロック４８０の後、ブロック４９０で方法が終了する。
【００２２】
本発明の実施形態について記載してきた。これらの実施形態は、投票機構を高速化することができる冗長アーキテクチャを提供する。普通、投票機構は、ソフトウェアプロセスを使用して実行される。本発明は、投票プロセスを行うためのかかる時間を短縮し、また、重要なビット比較操作を転送し、それを同じプログラム可能装置上のハードウェア装置において実行することによって、ソフトウェアの労力も低減する。記載された本発明の電子モジュールは、ＳＥＵ問題を克服するためにより速いソリューションを提供するのに、多くの既製の構成要素を使用することによって組み立てることができる。これは特に、宇宙の用途で使用されているアーキテクチャにおけるＳＥＵ問題を克服するのに有利である。
【００２３】
本明細書において、特定の実施形態が示され、記載されてきたが、示された特定の実施形態の代わりに、同じ目的を達成するために計算された任意の構成が使用されてもよいことを当業者は理解されよう。本出願は、本発明の任意の改変または変形をカバーするものとする。
【図面の簡単な説明】
【００２４】
【図１】冗長プロセッサおよび比較器を有する電子モジュールの一実施形態のアーキテクチャを示すブロック図である。
【図２】冗長プロセッサ、ソフトウェア実装フォールトトレランス機能、およびハードウェア比較器を有するプログラム可能論理回路の一実施形態のアーキテクチャを示すブロック図である。
【図３】ハードウェア比較器の一実施形態を示すブロック図である。
【図４】プログラム可能装置における投票機構を加速する方法の一実施形態を示すフローチャートである。
【図１】
2008503002.tif 000003
【図２】
2008503002.tif 000004
【図３】
2008503002.tif 000005
【図４】
2008503002.tif 000006
【国際調査報告】
2008503002.tif 000007
2008503002.tif 000008
2008503002.tif 000009
2008503002.tif 000010