(57)【特許請求の範囲】
【請求項１】
中央演算処理装置コア（５１）を有する中央演算処理装置（５０）と、システムバス（５３）と、インタフェース（６１）および周辺機器（６２）を含む１つ以上の機能部分（６１、６２）と、前記中央演算処理装置（５０）の動作の妥当性確認の実行に適した更なる欠陥処理装置（１１）と、を含む信頼性のあるマイクロコントローラであって、
前記更なる欠陥処理装置（１１）は、前記中央演算処理装置コア（５１）とは異なるものであって、前記中央演算処理装置コア（５１）の外部にあり、
前記更なる欠陥処理装置（１１）は、前記中央演算処理装置コア（５１）の動作の妥当性確認を実行して該マイクロコントローラの操作の信頼性を実現するよう構成され、システムランタイム中の動作の少なくとも一部がオンラインで実行される少なくとも１つのモジュール（２２、２３、２４）を含み、
前記更なる欠陥処理装置（１１）は、前記中央演算処理装置コア（５１）のレジスタバンクおよびＡＬＵ／ＭＡＣの拡張された可視性を生じさせるコアインタフェースモジュールを含んでいて、前記中央演算処理装置コア（５１）は、メモリとレジスタとの間のデータ転送の可視性と、前記中央演算処理装置コア（５１）のＡＬＵの書込ポートへのアクセスの可視性とを生じさせ、
前記少なくとも１つのモジュールは、前記コアインタフェースモジュールから得られる前記可視性を用いて、前記中央演算処理装置コア（５１）のレジスタバンクのコピーを作成するためのシャドウレジスタモジュールを含み、
前記更なる欠陥処理装置（１１）は、シャドウレジスタのより少ない数のビットを有するコード化されたコピーと協働し、前記中央演算処理装置コア（５１）のＡＬＵ／ＭＡＣの結果を同時にチェックする、前記中央演算処理装置コア（５１）のＡＬＵ／ＭＡＣの縮小バージョンを含み、
前記更なる欠陥処理装置（１１）は、該マイクロコントローラ（１０）の前記機能部分（６１、６２）の動作の妥当性確認を実行するよう構成された追加のモジュール（２１）を含んでいる、
ことを特徴とするマイクロコントローラ。
【請求項２】
前記機能部分（６１、６２）の動作の妥当性確認を実行するのに適した前記追加のモジュール（２１）が、前記更なる欠陥処理装置（１１）に関連付けられた欠陥認識周辺機器（１２、１３、１４、１５、１６）と相互作用するのに適し、ベーシックシステム構成要素（７０）と相互作用するのに適し、更なる欠陥処理装置（１１）の他の内部モジュールを管理するのに適した、システムモジュールを含むことを特徴とする、請求項１のマイクロコントローラ。
【請求項３】
前記システムモジュール（２１）が、前記更なる欠陥処理装置（１１）の他の内部モジュールを管理するグローバルスーパーバイザモジュールを含むことを特徴とする、請求項２のマイクロコントローラ。
【請求項４】
前記更なる欠陥処理装置（１１）が、以下の欠陥保護技術の１つ以上を用いることにより、前記中央演算処理装置（５１）の操作の妥当性確認を実行していることを特徴とする、請求項１から請求項３のいずれかのマイクロコントローラ：
‐  前記シャドウレジスタモジュールにより、前記中央演算処理装置コア（５１）レジスタバンクのコピーを作成するデータのシャドウデータ化;
‐  ＣＰＵコア（５１）で実行するコードの実行時間の認証信号を生成するとともに、生成された認証信号をコンパイル時に生成された認証信号と比較してチェックすることによる、コードおよびフローの認証信号；
‐  データ処理の妥当性チェック；
‐  アドレスの妥当性チェック；
‐  前記中央演算処理装置コア（５１）のＡＬＵ／ＭＡＣの縮小バージョンを用いる、前記ＡＬＵ同時妥当性チェック動作；
‐  フラグおよびＣＰＵモード信号を確認するとともに、シャドウレジスタのコンテンツに基づいて適切なモードが設定されているか否かを決定する、同時モード／割り込みチェック。
【請求項５】
前記中央演算処理装置コア（５１）の動作の妥当性確認を実行する、前記少なくとも１つのモジュール（２２、２３、２４）が、前記欠陥保護技術を実行するのに適したメイン保護モジュール（２２）を含むことを特徴とする、請求項１から請求項４のいずれかのマイクロコントローラ。
【請求項６】
メイン保護モジュール（２２）が、以下のモジュールを含むという特徴を有する、請求項５のマイクロコントローラ：
‐  アプリケーションにより用いられる重要な変数のコピーを作成するのに適したシャドウ変数モジュール；
‐  レジスタからメモリへの可視データの転送に基づいて、所与の変数に対する妥当性の値をチェックするのに適した妥当性変数モジュール；
‐  ＣＰＵコア（５１）で実行するコードの認証信号を生成するとともに、生成された認証信号をコンパイル時に生成された認証信号と比較してチェックすることによる、コード認証信号に基づくＣＰＵプログラムフロー内の欠陥検出に適したコードおよびフローの認証信号モジュール；
‐  システムを安全状態へ導くのに適した安全状態モジュール；
‐  ＣＰＵレジスタセットのコピーを作成するのに適したシャドウレジスタモジュール；
‐  レジスタとメモリの間での可視データの転送に基づいて、所与のアドレスに対する妥当性の値をチェックするのに適した妥当性ロード／ストア装置モジュール；
‐  様々なタスクによりなされる、妥当性メモリアクセスをチェックする、マルチプロセスアプリケーションに適したタスクスーパバイザモジュール；
‐  メモリ内の不完全な変数／レジスタの値を回復することにより欠陥修正を実行するのに適したデータ再試行モジュール；
‐  ＣＰＵ状態およびプログラムカウンタを回復することにより、欠陥修正を実行するのに適したプログラム再試行モジュール。
【請求項７】
前記中央演算処理装置（５１）の動作の妥当性確認を実行する、前記少なくとも１つのモジュール（２２、２３、２４）が、中央演算処理装置（５１）およびシステムバス（５３）とのデータ交換に適したＣＰＵインタフェースモジュール（２４）を含むことを特徴とする、請求項１から請求項６のいずれかのマイクロコントローラ。
【請求項８】
動作の妥当性確認を実行するのに適した、前記中央演算処理装置（５１）および前記更なる欠陥処理装置（１１）が、第２処理装置（５５１）と、二重冗長性システムを実現するために第２処理装置（５５１）の動作の妥当性確認を実行するのに適した第２欠陥処理装置（５１１）とに接続されていることを特徴とする、請求項７のマイクロコントローラ。
【請求項９】
前記欠陥認識周辺機器（１２、１３、１４、１５、１６）が、メモリモジュール（１２）を含むことを特徴とする、請求項１から請求項８のいずれかのマイクロコントローラ。
【請求項１０】
前記欠陥認識周辺機器（１２、１３、１４、１５、１６）が、欠陥許容性メモリインタフェース（１３）を含むことを特徴とする、請求項１から請求項９のいずれかのマイクロコントローラ。
【請求項１１】
前記欠陥認識周辺機器（１２、１３、１４、１５、１６）が、前記マイクロコントローラ（１０）のシステムバス（５３）をモニターする、バスインタフェースコントローラ（１４）をさらに含むことを特徴とする、請求項１から請求項１０のいずれかのマイクロコントローラ。
【請求項１２】
前記欠陥認識周辺機器（１２、１３、１４、１５、１６）が、アプリケーション特定周辺機器（５５）と関連付けられた簡易型プロセッサ（１６）をさらに含むという特徴を有する、請求項１から請求項１１のいずれかのマイクロコントローラ。
【請求項１３】
前記処理装置（１１）が、前記マイクロコントローラ活動中に、欠陥が検出された場合、欠陥アラームおよび欠陥イベントを発生させるのに適した欠陥許容性動作を実行することを特徴とする、請求項１から請求項１２のいずれかのマイクロコントローラにおける欠陥検出方法。
【請求項１４】
前記欠陥許容性動作が、以下の欠陥保護技術のうちの１つ以上を実行することを特徴とする、請求項１３の方法：
‐  前記シャドウレジスタモジュールにより、前記中央演算処理装置コア（５１）レジスタバンクのコピーを作成するデータのシャドウデータ化;
‐  ＣＰＵコア（５１）で実行するコードの実行時間の認証信号を生成するとともに、生成された認証信号をコンパイル時に生成された認証信号と比較してチェックすることによる、コードおよびフローの認証信号；
‐  データ処理の妥当性チェック；
‐  アドレスの妥当性チェック；
‐  前記中央演算処理装置コア（５１）のＡＬＵ／ＭＡＣの縮小バージョンを用いる、前記ＡＬＵ同時インテグリティチェッキング動作；
‐  フラグおよびＣＰＵモード信号を確認するとともに、シャドウレジスタのコンテンツに基づいて適切なモードが設定されているか否かを決定する、同時モード／割り込みチェック。
【請求項１５】
前記欠陥処理装置（１１）が、前記マイクロコントローラ活動中、異なる時間に以下の動作も実行することを特徴とする、請求項１３または請求項１４の方法：
‐  パワーオン動作時のマイクロコントローラ欠陥予測；
‐  マイクロコントローラオン‐ライン欠陥予測動作。
【請求項１６】
パワー‐オン動作での前記マイクロコントローラ欠陥予測が、パワー‐オンで実行される、一連のＢＩＳＴテストまたはＢＩＳＴＳを実行することを特徴とする、請求項１５の方法。
【請求項１７】
前記マイクロコントローラの欠陥予測動作が、システムのラン時に実行される前記一連のＢＩＳＴテストまたはＢＩＳＴＳを実行することを特徴とする、請求項１５の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロコントローラユニット(マイクロコントローラ)の信頼性を実現する技術に関するものであり、特に自動車システムにおいて起こり得る使用に留意して開発されたものである。
【背景技術】
【０００２】
こうしたマイクロコントローラの使用において典型的なものは、アンチブロッキングシステム(ABS)、およびトルクコントローラシステム(TCS)、および自動操縦安定制御(TSC)である。しかしながら、このことは、エックス‐バイ‐ワイヤ（x-by-wire）、インフォテインメント（infotainment）、生物医学アプリケーション、およびコミュニケーションなどを含む広範で様々なアプリケーションに対しても実際上適用可能な本発明の範囲を制限する意味で解釈されることにはならない。
【０００３】
以下の記述における「マイクロコントローラ」という用語は、広い意味、すなわち、アナログ‐ディジタルならびにディジタル‐アナログ変換器、CPU、およびCPU周辺機器、メモリ、システムバス、内部または外部センサ、および/またはトランスデューサ、制御装置、計測装置、および出力装置を含むシステム‐オン‐チップ(SOC)を意図するものである。
【０００４】
また、本発明は、信頼性マイクロコントローラの設計のための技術、および対応するコンピュータプログラム製品に関連している。
【０００５】
近年、効率、安全性、性能、および快適さのみならず、情報およびエンターテインメント性を向上させるマイクロエレクトロニックシステムの車両での実現が、かなり進展してきている。
【０００６】
こうしたマイクロエレクトロニックシステムは中央演算処理装置に基づくもので、欠陥検出手段が提供された強健なネットワークを用いて相互接続されている。こうした強健なネットワークにより、ワイヤリングルーム(wiring loom)製造に用いられる、何千もの高価で信頼性の低いワイヤおよびコネクタの必要性が排除されている。
【０００７】
もちろん、故障が致命的事故につながるので、こうしたシステムは信頼度が高くなければならない。しかしながら、車は、温度が広範囲に変化し、および土、塩のスプレー、ほこり、腐食性流体、強い振動ならびに突発的な衝撃、電気的な雑音、電磁波干渉にさらされる好ましくない環境にある。さらに、こうしたマイクロエレクトロニックシステムは、バッテリーを消費しないように駐車した際に、電力消費量がほぼゼロを示す必要がある。
【０００８】
これらの要件は、最も極端な状態でのシステムの振舞いが予測可能、およびフェールセイフであるように、ほぼ完全なシステムモデリングおよび検証の要件と組み合わされなければならない。
【０００９】
結果として、自動車分野での複雑なシステム‐オン‐チップ（System-On-Chip）の使用は、消費者およびコミュニケーションのアプリケーションと比べて、制限されている。
【００１０】
したがって、より短時間かつ最高の信頼度で、システム設計者による、さらに複雑なECU(Embedded Computational Unit:埋込計算装置)の設計を補助することができる、設計プラットホームを持つことの重要性は明らかである。一般に、設計プラットホームに対する最重要要件は、以下の能力である：
‐  ハードウェアおよびソフトウェアの標準化を可能にする；
‐  顧客の要求に順応性がある；
‐  良好に定義されたフローで、クリーンコードおよびスクリプトを生成する；
‐  オペレーティングシステムと容易にリンク可能である；
‐  サブブロックおよびカスタムブロックの簡単な検証が可能である；
‐  アップグレードが可能である。
【００１１】
また、特に自動車アプリケーションに対しては、以下のことが重要である：
‐  迅速で簡単な方法によるスケーラビリティ；
‐  詳細な検証を提供し、さらに検証のカスタマイズを可能にする；
‐  前段階(設計および検証の双方)での欠陥に対して強健であり、欠陥注入を可能にする。
【００１２】
ここで、以下の記述のより良い理解を可能にするため、欠陥に対する強健さに関係した若干の定義を述べておく。
【００１３】
システムの加えられたサービスが、指定されたサービスから逸脱していることを一般に「故障」と呼ぶ。故障を導きやすいシステム部分状態の部分を「エラー」と呼ぶ。エラーの現象論的原因を「欠陥」と呼ぶ。「システムの信頼性」は、サービスを信頼することに正当性がある、加えられたサービスの品質と定義される。
【００１４】
信頼性は、以下の3つの量の測定に基づいて評価される：
‐  信頼性：1つの設備、または構成要素が、規定時間および指定環境条件下で、その意図された機能を満足に実行するという、MTTF(Mean Time To Failure:故障への平均時間)で定量化される確率；
‐  利用可能性：システムが、いかなる所与の時間でも正しく機能しているという、MTTR/MTTF(Mean Time To Repair:修復への平均時間)で定量化された確率；
‐  安全性：結果として(少なくとも)特定レベル、または損失(すなわち、事故)となる、所望されない、および計画にない出来事からの自由度。
【００１５】
信頼できるシステムを実現するために、以下の方法が、別々に、または一緒に使用可能である：
‐  設計により、欠陥の回避を提供する欠陥回避；
‐  検証により、存在する欠陥の減少を提供する欠陥除去。この方法において、欠陥注入技術は基本的である；
‐  欠陥許容性、欠陥が存在しているにもかかわらず、正しい動作を提供する技術；
‐  評価により、欠陥の存在、および生成、および結果の推定を提供し、さらに欠陥の発生を停止させる先制ステップをとる欠陥予測または欠陥回避。
【００１６】
以上の定義から、欠陥許容性それ自体が複合システムの信頼性の必要性を解決しないことは注意に値しない。例えば、欠陥許容性システムがフェールセイフとなることはない。したがって、以下では、その構成要素サブシステムまたは部品に欠陥が存在している場合であれ、たとえシステム性能が減少しても、または他の方法で欠陥が直るまで―ただし、常に安全な方法で―変更を加えても、機能し続けるシステムの能力と定義される、強健さの概念について論及することにする。欠陥に対して強健なシステムは、内部構造または外部環境に変化があってもその機能を保つことになる。
【００１７】
従来技術から知られている解決法は、製造技術を強固にすることにより、放射に誘発されたソフトエラーの傾向を減少させること、または冗長性の導入を提供することである：例えば、多数決原理を伴う三重フリップ‐フロップ構造を実装することによる(Nモジュール冗長性) ゲートレベルで；または、例えば、プロセッサの論理演算装置に若干のコード化導入することによるCPUレベルで；または、例えば、監視を伴うステップで実行される、複数のプロセッサを用いることによるマイクロコントローラレベルで；または、例えば、複数のソフトウェアスレッド、または上述の技術の全ての混合を用いることによるソフトウェアレベルで。
【００１８】
ゲートレベルでの技術強化および冗長性は、領域、および性能オーバーヘッド、およびCPU再設計時間などにより非常に高価である。
【００１９】
CPUレベルでの冗長性は、領域オーバーヘッドではさほど高価ではないが、CPUの再設計が必要である。
【００２０】
Nモジュール冗長性(N＝2、が最も使用されている、すなわち二重冗長性)を用い、または動的冗長性を伴う、マイクロコントローラレベルでの冗長性は、最も使われている技術である。第1中央演算処理装置、および第1処理装置と結合された第2処理装置を含む、二重冗長性マイクロコントローラ装置は、特許文献１から知られている。機能的比較モジュールは、第1出力が第2出力にマッチしない場合、欠陥を検出するために、第1処理装置の第1出力と第2処理装置の第2出力を比較するよう、第1処理装置および第2処理装置に結合されている。機能的比較は、出力の認証信号の分析により実行される。認証信号は、CPUの内容の限られた可視性だけが利用可能となるよう、アイドルサイクルで計算されるか、またはテストシーケンスの結果として得られるか、またはCPU自体の外部アドレスとデータバスとに基づいて決定される。これは、欠陥カバーおよびメモリ占有の観点から効率が悪い認証信号、およびエラー検出のより大きな待ち時間を頻繁にもたらしてしまう。
【００２１】
特許文献２で述べられているように、二重冗長性技術は、もちろん回路サイズ(少なくとも二倍)の大きな増加、および生産コストのさらに大きな増加を含む。さらに性能は、より遅いクロック、増加されたゲートカウント、および冗長性ソフトウェア含有の必要性により影響を受ける。
【００２２】
動的冗長性の技術もまた、プロセッサ、および、プロセッサの不完全な振舞いを特定可能な欠陥検知器を必要とするのみであることが知られている。こうした技術は、コンピュータ資源のより高度な利用を許容してはいるが、良好な欠陥のカバーを達成するのに必要な計算処理が膨大となり、待ち時間をより長くしてしまう。この場合、最も一般的な解決策は、監視、または、簡単な一貫性チェックのみを計算して、データおよびアドレスバスをモニターする、非常に簡単な欠陥検知器から成る。他の既知の解決策では、簡単な外部のコントローラと相互作用して、CPU自体は信頼性問題の一部を扱うに留まることである：特許文献３では、マイクロコンピュータおよびモニタモジュールが開示されている。モニタモジュールは、マイクロコンピュータのシーケンス制御を実行する、ゲートアレイとして構成されているのが好ましい。モニタモジュールは、この処理結果の比較から、マイクロコンピュータの正しい、または欠陥のある動作を決定する。
【００２３】
また、例えば、ソフトウェアレベルのみでの冗長性を導入した特許文献４の解決策が知られている。
【特許文献１】米国特許出願第2002/00777882号
【特許文献２】ドイツ特許出願第DE 19933086A1号明細書
【特許文献３】米国特許第5,436,837号明細書
【特許文献４】米国特許第5,880,568号明細書
【発明の開示】
【発明が解決しようとする課題】
【００２４】
しかしながら、こうした解決策は、欠陥検出タスクにより、マイクロプロセッサ性能に大きな影響を与えることになる。
【００２５】
したがって、本発明の目的は、コンピュータ資源および回路サイズを最適化し、完全な信頼性を実現したマイクロコントローラを提供することである。
【課題を解決するための手段】
【００２６】
本発明によると、この目的は、請求項で詳述されている特徴を有する信頼性マイクロコントローラにより達成される。本発明はまた、信頼性マイクロコントローラを設計するための対応する方法のみならず、ディジタルコンピュータのメモリへ直接ロード可能で、製品がコンピュータで実行される際に本発明の方法を実行するソフトウェアコード部分を含む、コンピュータプログラム製品に関連している。
【００２７】
本発明に従う解決策は、実質的に、中央演算処理装置の動作を有効にする欠陥許容性処理装置を含むマイクロコントローラを提供する。欠陥許容性処理装置はまた、適切なインタフェース、および欠陥許容性ハードウェアブロックを通して、チップ上に分配する欠陥許容性検出方法を実装する。また、欠陥許容性処理装置、インタフェース、およびハードウェアブロックを含むシステムの設計方法も提供されている。
【発明の効果】
【００２８】
従来技術の構成と比較すると、提案された解決策は、チップ上に要する領域オーバーヘッドを減少させ、中央演算処理装置内の欠陥の低い待ち時間制御を可能にし、さらにシステム‐オン‐チップおよびユーザの必要性に従って、完全かつ柔軟にカスタマイズ可能である。
【発明を実施するための最良の形態】
【００２９】
本願明細書に説明されているマイクロコントローラの基礎となる基本的なアイデアは、欠陥に対する強健なシステムを有するよう、実行時間およびコードディメンションにおいて妥協することなく、許容し得るハードウェアオーバーヘッドで、チップ上の複雑なCPUベースシステムの欠陥許容性を達成するために、ソフトウェアにより、ハードウェア冗長性が実行され、制御され、および構成されることである。
【００３０】
本発明に従うマイクロコントローラは、特定の問題を監視すること、および中央欠陥許容性プロセッサと通信することを要求される適切な回路を通して、モニターされるシステムのあらゆる部分に配分された欠陥許容性技術を実行する。しかも、その回路は、中央演算処理装置とは異なって外部にあり、換言すれば、それは二重中央演算処理装置ではなく、前記中央演算処理装置のコンピュータ資源の外部に、自律的コンピュータ資源を有している。こうした中央欠陥許容性プロセッサは、すべての周辺機器を調整し、システムの欠陥履歴の動向を保持する。
【００３１】
図1には、マイクロコントローラ10のハードウェアアーキテクチャーを表すブロック図が示されている。
【００３２】
こうしたマイクロコントローラ10は、基本的に、コプロセッサ52に関連づけられた中央演算処理装置コア51を含む、例えばARMプロセッサのようなRISC装置となり得るプロセッサ50（中央演算処理装置）を含んでいる。プロセッサ50はまた、データ記憶モジュール64、インストラクションキャッシュメモリ65、およびAMBA(アドバンストマイクロコントローラバスアーキテクチャー（Advanced Microcontroller Bus Architecture）バスインタフェース)インタフェース66を含んでいる。CPUシステムバス53は、プロセッサ50とインターフェースモジュール61とを接続するために提供されており、モジュール61 は、とりわけ、汎用I/Oインターフェース、シリアルパラレルインターフェース、リアルタイムクロック、UART、タイマ、および監視装置を含んでいる。これらのインタフェースは、参照番号69によりまとめて示されている。
【００３３】
また、CPUシステムバス53に接続した、ベクトル割り込みコントローラ68も示されている。
【００３４】
こうしたCPUバスシステム53により、1組の周辺機器62と通信することも可能になる。こうした1組の周辺機器62には、アプリケーション特有周辺機器55、アナログインタフェース56、バスインタフェース57、ダイレクトメモリアクセス(DMA)モジュール58、外部バスインタフェース59、埋込メモリ60が含まれている。インタフェースモジュール61および周辺機器62の組はまた、その異なる装置を相互接続する適当な周辺バス63を含んでいる。
【００３５】
上述の全ての構成要素は、マイクロコントローラアーキテクチャーにおける典型的なものであり、それの機能および使用は、マイクロコントローラ設計の当業者によく知られているのであるため、詳細な説明はしない。
【００３６】
本発明に従うと、マイクロコントローラ10は、欠陥認識加速器11、すなわち、主な欠陥マネージャとして動作するプロセッサをさらに含んでいる。また、以下では、簡潔さのために、欠陥認識加速器(Fault-Recognition Accelerator)11を、時折、その頭文字のFRACとして言及することもある。こうした欠陥認識加速器 11は、異なる欠陥検出技術および欠陥許容性技術を実装させる、多数のユーザ構成可能なモジュールにより構成されている。欠陥認識加速器11、および関連モジュール、および周辺機器は、図1では、より容易に識別できるよう破線で示されている。
【００３７】
欠陥認識加速器11はプロセッサ50内に配置され、中央演算処理装置コア51と通信する。欠陥認識加速器11は、専用メモリまたは専用ポートを備えたCPUメモリの一部でもよいプロセッサ50内に配置された、欠陥認識メモリ12と関連して動作する。欠陥認識メモリ12は、欠陥認識加速器11がその機能を実行するために必要とするコード、履歴トラック、および他のデータなどのデータを格納する。
【００３８】
以下の記述部分でさらに詳述されているように、欠陥認識加速器11は、システム全体および他の欠陥許容性周辺機器を、システムバス53および他の専用信号を通して専門的に調査する別モジュールを含んでいる。欠陥認識加速器11はまた、スタートアップ、および周期的システム内蔵テストを導く。欠陥認識加速器11は、システムレベルでの迅速な診断および保守を可能にするよう、プロセッサコア51、システムのJTAGポートの双方、のみならず直接バスインターフェイスを通してアクセス可能である。
【００３９】
完全な信頼性を達成するために、欠陥認識加速器11は、中央演算処理装置コア51の欠陥、または欠陥認識加速器11自身の欠陥に起因して、欠陥アラーム、および、例外、プログラム再試行またはシステム停止などのイベントを発生可能である。欠陥認識加速器11は、常に、問題に反応して、危険なシステム状態を回避可能でなければならない。
【００４０】
また、欠陥許容メモリインタフェース13は、プロセッサ50内に含まれるデータメモリ64、キャッシュメモリ65、さらに周辺機器62のセットに含まれる埋込メモリ60およびDMAモジュール58などのメモリと接続するために、マイクロコントローラ10上に提供される。欠陥許容メモリインターフェース13は、異なるメモリ欠陥検出を実行する様々なユーザ構成可能なモジュール、及びエラー訂正コード(ECC: Error Correction Code)、ビルト‐インセルフリペア (Built-in Self Repair(BISR))などの欠陥許容性技術により構成される。
【００４１】
こうした周辺バス63、またはCPUシステムバス53、またはCANバスなどの他の外部バスといったバスの保護のために、欠陥許容バスインタフェースコントローラ14が提供される。
【００４２】
図1に見られるように、マイクロコントローラ10の異なるモジュールおよび装置と関連付けられた、ハードウェア検証構成要素15(hVC: hardware Verification Component)も提供されている。したがって、図示されている実施例では、ハードウェア検証構成要素15は、インタフェースモジュール61、アナログインタフェース56、およびバスインタフェース57と関連付けられている。ハードウェア検証構成要素15は、以下の図4および5に関して詳細に述べられている、検証プラットホームのシステムレベル検証要件、および、対応する設計ならびに検証手順から直接得られる、欠陥検出および欠陥許容性技術を実行可能な、様々なユーザ構成可能なモジュールを含んでいる。
【００４３】
マイクロコントローラ10はまた、アプリケーションの特定安全要件に対する特殊なプロセッサであるアプリケーション特定周辺装置55に関連付けられた、リモート欠陥認識加速器 16を含んでいる。
【００４４】
欠陥認識加速器11のハードウェアアーキテクチャーは、図2に示されている。欠陥認識加速器11は、欠陥認識加速器 11に対する初期化/構成ブートルーチンを作成し、CPUコア51と欠陥認識加速器11自体との間の相互作用を容易にするよう、ユーザコードに挿入されるランタイム（実行時間）設定を抽出するソフトウェア処理である、欠陥認識コンパイラ111に関連付けられている。さらに、領域オーバーヘッドが問題となる場合、またはCPUコア51が適切な方法で欠陥認識加速器 11と接続できない場合、欠陥認識コンパイラ 111はまた、同じ欠陥検出および欠陥許容性機能を提供する欠陥認識加速器 11のモジュールと同様に、ユーザコードへ様々なソフトウェアモジュールを挿入可能である。
【００４５】
欠陥認識コンパイラに関連する欠陥認識加速器11は、純粋な「回路指向」欠陥保護機構、すなわち、保護は、まずシステムの一部、およびアプリケーションに関連するデータの部分に適用される、の代わりに、混合された「データおよび回路指向」を利用する。この関連部分は、図6を参照して詳細に述べられる、システム‐オン‐チップの設計途中に、ユーザ自身、および、図7を参照して詳細に述べられる、コード分析に対する若干の技術を通して、欠陥認識コンパイラ111の双方により特定される。
【００４６】
したがって、欠陥保護は、欠陥認識加速器11内のハードウェア、および欠陥認識コンパイラ111内のソフトウェアの双方に実装される技術の組み合わせにより得られる。
【００４７】
図2では、欠陥認識加速器11および欠陥認識コンパイラ111のための、こうしたモジュールが示されている。
【００４８】
したがって、欠陥認識加速器11は、以下を含む：
‐  欠陥認識メモリ12、バスインターフェースコントローラ14、欠陥許容メモリインターフェース13、ハードウェア検証構成要素15などの欠陥認識周辺機器との相互作用、および、参照番号70でまとめて示される、クロックおよび電源などの、基本システム構成要素との相互作用が必要なモジュールである、システムモジュール21。さらに、システムモジュール21は、欠陥認識加速器 11およびプログラム監視装置の他の全ての内部モジュールの管理に必要な、基本モジュールを含んでいる。システムモジュール21は、設計に関する限りCPU独立と見なすことができる；しかしながら、これらはシステム構造全体に依存している；
‐  変数妥当性/デルタ値、コード＆フローの認証信号などの、メイン欠陥保護技術の実行に必要なモジュールである、メイン保護モジュール22。これらのモジュールはCPU独立と見なすことができる；
‐  欠陥認識加速器/CPUインタフェースモジュール24からのデータを処理し、メイン保護モジュールとデータ交換をするのに必要なモジュールである、ＣＰＵ総称モジュール23。ＣＰＵ総称モジュール23は、僅かにCPU依存である。すなわち、基本的アルゴリズムはCPU独立であるが、データの処理方法はCPUファミリと交換可能である。
‐  CPUコア51およびCPUシステムバス53とのデータ交換に必要なモジュールである、欠陥認識加速器/CPUインタフェースモジュール24。モジュール24は、CPU依存である。
【００４９】
図2にはまた、異なるソフトウェアモジュールを含む、以下のように組織化された、欠陥認識加速器コンパイラ111が示されている：
‐  欠陥認識加速器 11の全ての基本機能を初期化し、オペラティブシステム116またはユーザーアプリケーションコード117により、独自にその周辺機器を初期化するのに必要なモジュールである、初期化モジュール112；
‐  オペラティブシステムとの相互作用に必要なモジュールである、オペラティブシステム相互作用モジュール113；
‐  例えば、オペラティブシステム116およびユーザーアプリケーションコード117に基づくランタイム認証信号など、欠陥認識加速器 11を構成するのに必要なモジュールである、アプリケーションコンフィグレーションモジュール 114；
‐  欠陥検出および保護技術を可能にするために必要なインストラクションを、アプリケーションコード117内へ挿入するのに必要なモジュールである、ランタイムモジュール115。以下の記述部分でより詳細に述べられているように、大部分のランタイムモジュール115は、欠陥認識加速器11内に含まれるハードウェアモジュールに対応するものである。すなわち、例えば、領域オーバーヘッド規制、または欠陥認識加速器/CPUインタフェースモジュール24のインタフェース能力に起因して、対応する機能が、対応するハードウェアモジュールで実行されない場合に限り必要なものである。
【００５０】
欠陥認識加速器 11は、CPUコア51の欠陥を検出するために、他のFRAC周辺機器と連携して、マイクロコントローラの作動中、異なる時間に3つの主な異なる種類のタスクを実行する：
‐  パワー‐オン時のマイクロコントローラ欠陥予測：パワー‐オン後、欠陥認識加速器11により実行される、一連のBISTテストまたはBIST。こうしたBISTは、欠陥認識加速器11内で実行される自己矛盾のないソフトウェア、または、そこに備えられた1つの専用ハードウェアであり、これらは、テスト中の機能性の最大割合をカバーするか、または実際のアプリケーションに必要な、中心となる機能性のみをカバーするよう、焦点を合わせられる。欠陥認識加速器11により実行されるBIST系列は、実質的に、欠陥認識加速器11のRAM上の、パワー‐オン後に、その埋込欠陥許容メモリインタフェース13を通して実行されるビルトイン自己テストを含んでいる。その後、欠陥認識加速器 11上のビルトイン自己テストが実行される。続いて、妥当性確認がCPUコア51上を通過し、CPU RAMビルトイン自己テストは欠陥許容メモリインタフェース13を通して実行される。その後、CPUコア51上のビルトイン自己テストが実行される。続いて、欠陥許容性周辺機器が、専用ハードウェア検証構成要素 15を通して有効にされる。その後、BIST動作は、専用の欠陥許容性バスインタフェース14を通して、バスインタフェース上で実行される。最終的に、上記の全てのステップを有効にパスした場合、「システムOk」状態に達するよう、外部BIST動作が立ち上げられる；
‐  マイクロコントローラオンライン欠陥予測：これは、すでに述べたBISTの、システムランタイム中に実行される部分集合である。マイクロコントローラオン‐ライン自己テストは、2つの方法で実行される：
‐  アイドルタイム中に、現状をセーブするシステムの残りにより、テストされるブロック(例えば、CPU、またはRAM、または周辺機器の1つ)を隔離することにより、さらに、対応するBISTを実行し、そして最終的に初期状態を回復することにより；
‐  通常の動作中に、欠陥認識コンパイラが挿入可能(例えば、ループの間に)となり、現在使われていないCPUの一部分内の並列能動テストを行うために、エキストラダミーがコード化される；
‐  オン‐ライン欠陥許容性：これは、通常の動作中に欠陥を検出し、欠陥が発見された場合、データのシャドウデータ化、コードおよびフローの認証信号、データ処理妥当性チェック、アドレスの妥当性チェック、ALU同時保全性チェック、および同時モード/割込チェックを含む一組の技術である。
【００５１】
以下では、オンライン欠陥許容性を実行する技術が、詳細に述べられている。
【００５２】
マイクロコントローラ内のどこにあろうとも、変数およびCPUレジスタの双方に適用される際に、提案されたマイクロコントローラの動作に関連するデータのシャドウデータ化手順が実行される。
【００５３】
こうしたARMプロセッサであるRISCプロセッサは、レジスタ動作に強固に基づいており、つまり、各データ転送がCPU内部レジスタの1つを通して実行される。プロセッサ50のこうした欠陥を処理するために、欠陥認識加速器 11の一組のレジスタは、プロセッサ50レジスタのシャドウコピーとして用いられ、これらのレジスタの拡張視程が、最初のものの実行に必要な拡張コア視程が利用可能でない場合、モジュール21‐24を説明する際に詳細に述べられる、欠陥認識加速器‐コアインタフェースと呼ばれるハードウェアFRACモジュールまたは欠陥認識加速器‐コアソフトウェアインタフェースのいずれかを用いて得られる。
【００５４】
特に、こうした欠陥認識加速器‐コアインタフェースを通して、欠陥認識加速器 11がプロセッサレジスターのうちの1つでの書込動作を検出する度に、それは書き込まれた値を対応するシャドウレジスタ内へコピーする。これはまた、欠陥予測のためにも実行される：CPUデータは、定期的に、欠陥認識加速器 11内に格納された、そのシャドウコピーと比較される。
【００５５】
メモリ内の欠陥、および、いかなるECC/BISRも使用していないデータ/インストラクションキャッシュに関して、欠陥認識加速器コンパイラ111は、ソースコードを分析し、各変数に対して、変数の寿命および他の変数への機能的依存を考慮する信頼性ウエイトを計算する。このフェーズで実行される評価により、最も信頼性のある重要な変数のリストが特定される。その後、最も重要な変数の管理のために、欠陥認識加速器 11が構成され、それらの変数のマイクロコントローラ内での寿命を通して、変数を追い、そのシャドウを作成することになる。もちろん、ユーザも、どの変数を保護するかを選択可能である。
【００５６】
提案されたマイクロコントローラで実行される他の重要な技術は、プログラムおよびフローサインオン‐ラインモニターである。コード欠陥に対する強健さの実行のために、欠陥認識加速器 11は、プロセッサをオーバーローディングすることなく、CPUコア51上で実行するコードのランタイムの認証信号を発生させ、計算された認証信号をコンパイル時に生成されたものと比較してチェックをする。欠陥認識加速器コンパイラ111を通して、欠陥認識加速器11は、制御フロー、および/またはデータ処理の認証信号のいずれかを扱うよう構成可能である。コンパイル処理中の制御フローの認証信号のために、ターゲットアセンブリコードは、無分岐ブロックに分割される。無分岐ブロックは、ジャンプを含まない1組の連続インストラクションである。この点で、欠陥認識加速器コンパイラ111は、異なるセクションにより構成された認証信号を計算する：
‐  ブロックの認証信号、すなわち、各無分岐ブロック内に含まれている全てのオペレーションコード(op-code)の認証信号。この認証信号は、自己矛盾のない非オーバーラッピングコードを用いてブロック内に含まれているインストラクションの動作コードをコード化することにより、コンパイラによって計算される；
‐  制御‐フロー正規表現。コンパイル時間中、制御フローグラフが計算され、したがって、以前のブロックを尊重する許可された経路についての情報は、各認証信号に含まれている。
【００５７】
実行時間に、欠陥認識加速器 11は、コード実行フローをモニターする。これは特に、リアル‐タイムで、無分岐ブロックの認証信号を計算し、およびチェックし、リアル‐タイムで実行されたプログラムフローをレファレンスと比較し、コンパイラ111により欠陥認識メモリ12または埋込ユーザコードのいずれかに格納される。このアプローチにより、そのハードウェア位置(メモリ、またはCPU)に拘わらず、コード欠陥をカバー可能となる。エラーの場合には、欠陥認識加速器11は(可能ならば)欠陥の修復を試み、最後の無欠陥ブロックから実行フローを再開(再試行)する。したがって、各ブロックの始めに、欠陥認識加速器 11の視点から、欠陥認識加速器は、開始認証信号を認識し、この認証信号をラン‐タイムコンピューティングに対する内部レジスタ内に格納する。ブロックの終端では、欠陥認識加速器 11は、(その認証信号を通して)ブランチインストラクションまたは新しいブロックの開始かのいずれかを認識する。いずれの場合にも、ラン‐タイムに生成された認証信号は、予想された結果と比較される。分岐が起こると、欠陥認識加速器は、次の動作が、対応するブロックに関連する許容認証信号のうちの1つであると認識する。したがって、エラーの場合には、異なる動作の実行が可能である：エラーをオペレーティングシステムに通知し、プログラムを再開し、以前のチェック‐ポイントブロックへジャンプする。
【００５８】
提案されたマイクロコントローラ内の欠陥認識加速器 11は、データ処理妥当性チェック手順も実行する。以前のコードおよびフローの認証信号機構により、コード欠陥の有効範囲が許容される：これは、オペレーションコードを認証信号シードとして用いることに起因し、非常に広い有効範囲でコード実行フローの任意の相違を引き起こす、誤翻訳データ、誤計算、一時的または永久的欠陥を捕らえる。しかしながら、このエラー検出機構は、プロセッサで実行されているアプリケーションの重要な変数に保護を加えることにより、さらに強化することが可能である。シャドウデータ化されるメモリ変数を個別化するために欠陥認識加速器コンパイラ111により用いられる、同一信頼性−ウエイト技術で、アプリケーションコードの最重要変数(プラス、ユーザにより選択されたもの)が以下のいずれかと選択可能および結合可能となる：
‐  ランタイム実行中に欠陥認識加速器11によりチェックされる、妥当性絶対値(すなわち、最大および最小許容値)；
‐  同一変数上の以前の動作に関して評価される、妥当性デルタ値。こうした方法で、ALUまたはMACにより実行される、各単一動作の結果は、許容値の組に対してラン‐タイムチェックされ、エラーの場合は、動作が繰り返され、または実行が停止され得る；
‐  これらの変数を読込/書込可能な、妥当性文脈値、すなわち、タイムフレームおよび処理/タスク。
【００５９】
同一データ処理妥当性チェックは、CPUコア外にある変数、および外界と交換される信号のための、ハードウェア検証構成要素15により実行される。
【００６０】
他の重要な実行手順は、アドレス妥当性チェックである。各データ転送中に、欠陥認識加速器 11は、レジスタからメモリへの可視データ転送に基づく所与のアドレスのための、妥当性値(妥当性絶対値、デルタ値、および文脈値)をチェックする。不一致が検出された場合、例外が発生する。これはまた、マルチプロセスアプリケーションで実行される：再びレジスタからメモリへの可視データ転送に基づき、欠陥認識加速器11は、特に仮想アドレシングが使用されていない場合、様々なタスクによりメモリアクセス上でチェックを実行することができる。より詳細には、あるタスクが、非共有の、または他のタスク領域へのアクセスを実行する場合に、例外が発生する。
【００６１】
また、ALU同時保全チェック手順も提案されている。RISC CPU内の他方のきわめて重要なブロックは、整数コア、特に、多くの場合積和演算(MAC: Multiply-and-Accumulate)装置を含む演算装置(ALU: Arithmetic Logic Unit)である。欠陥認識加速器11は、ALU/MAC自身の完全なコピーを有することなく、CPUコアALU/MACの結果を同時にチェックするために、シャドウデータ化されたレジスタのコード化されたコピー(すなわち、より少ないビット数を伴う)で作動するALU/MACの縮小バージョンを含んでいる。これを行うために、ALU/MACコア経路の拡張視程は、第1のものの実行を要する拡張コア視程が利用可能ではない場合、欠陥認識加速器‐コアインタフェース(後に詳述)と呼ばれるハードウェアFRACモジュール、または欠陥認識加速器‐コアソフトウェアインタフェース(後に詳述)のいずれかを用いて取得される。
【００６２】
提案されたマイクロコントローラでは、コード化は、合計、減算、および乗算などの基本数学オペレータ、さらに、現代のRISCプロセッサで実行されるような、回転、シフト、および同様の論理動作のいずれかを維持するような方法で実行される。
【００６３】
同時モード/割込チェック手順も実装されている。通常の動作中、欠陥認識加速器11は、フラグとCPUモード信号を検査して、シャドウレジスタコンテンツに基づき、適切なモードが設定されているか否かを判断する。不一致が検出されると、例外が発生する。割込と共に、すなわち、許容されない際、または正反対である際に割込が発生した場合、同一のチェックが実行される。
【００６４】
欠陥認識加速器 11および関連する欠陥認識コンパイラ111に基づく同一回路アーキテクチャーが、例えば、図3に表示されるように、二重冗長性アーキテクチャーとして、標準的解決に同じ方法で適用可能であることは注目に値する。こうしたアーキテクチャーでは、欠陥認識加速器 11と関連して動作する中央プロセッサ51は、それぞれの第2欠陥認識加速器 511と関連して動作する、第2プロセッサ551と結合される。2つの欠陥認識加速器11、511は、後に説明される欠陥認識加速器モジュール21のうちの1つを用いて相互作用している。2つの欠陥認識加速器11、511により取られた決定に基づき、現在処理装置のどれが選ばれているかを選択する比較装置501も含まれている。
【００６５】
以下には、欠陥認識加速器 11の一部となり得るモジュールが詳述されている。システムモジュール21は、以下を含む：
‐  例えば、図3のBIST系列のスケジューリングなど、全ての欠陥認識加速器11作動に対するメインコントローラおよびスケジューラである、グローバルスーパーバイザモジュール。それはまた、CPUシステムバス53を通して、オペレラティブシステムおよびユーザーアプリケーションコードと共有される、全ての欠陥認識加速器状況および構成情報を含んでいる；
‐  プログラム監視モジュールは、ユーザによりソフトウェアアプリケーションに挿入されたイベントにより、さらに欠陥認識加速器コンパイラ111自身により自動的に挿入されたタイム‐ウインドウイベントによりトリガされる、監視装置によって構成されている。欠陥認識加速器コンパイラ111により挿入されたイベントのために、タイムアウトイベントは、予想されるタイミングリミット(上および下)を考慮に入れて計算される。タイムアウトイベントは、グローバルスーパーバイザモジュールのための、および、以下に説明される安全状態モジュールへの、このモジュールの例外を発生させる；
‐  例えば、ハードウェア検証構成要素 15のインタフェースなど、欠陥認識加速器11の周辺機器の全てのインタフェースを管理するモジュールである、欠陥認識加速器‐周辺機器マネージャモジュール。CPUコア51内でエラーが検出された場合には、周辺機器はコンパイル時に構成された安全状態に置かれることができ、また、周辺機器内でエラーが検出された場合には、グローバルスーパーバイザモジュールおよび安全状態モジュールに報告される；
‐  追加システム欠陥検出が要件であるとき、または多欠陥認識加速器アーキテクチャーが実行される場合に必要なモジュールである、FRAC からFRACへのモジュール。こうしたモジュールは、欠陥認識加速器が損なわれた場合の追加的保護を得るために、実質的に、内部欠陥認識加速器11を、外部欠陥認識加速器(図3におけるように、階層的な欠陥−強健システム、または二重冗長性システム)または外部監視装置と接続するブロックを含んでいる；
‐  デバッグ目的のために、JTAGまたはISO9141インタフェースを通して、欠陥認識加速器 11から外界への全てのデータ転送を管理する、デバッグ‐イフマネージャモジュール。
‐  欠陥認識加速器11と欠陥認識メモリ 12との間の、全ての相互作用メモリを管理する、欠陥認識加速器‐メモリマネージャモジュール；
‐  独立クロックソースにより与えられるクロック監視装置を含む、クロックスーパバイザモジュール。一例として、このモジュールは、欠陥認識アクセラレータ11の内部または外部にあってもよい遅いクロック振動子の、1周期内に含まれるシステムクロック数を数えることにより実行可能であり、さらに、監視装置は、一定のタイムウインドウの間のメインクロックの劣化、すなわち、クロックが所定の安全レベルより速いか、または遅いかを検出可能である。タイムアウトイベントは、グローバルスーパーバイザモジュールに対するこのモジュールの例外を発生させ、遅いクロックは、フェールセイフ状態へシステムを駆動する安全状態モジュールの時間を計るのに使用される；
‐  外部パワーサプライレベル検出器、およびグローバルスーパーバイザモジュールから、共に安全なパワー‐アップまたはパワー‐ダウンの必要性を指定する信号を受信する、スケジューラにより構成されたモジュールである、パワースーパバイザモジュール。使用可能になると、これは安全状態モジュールを始動させ、その後、システムのリセットおよびクロックをスイッチオン(パワーアップ：power-up)し、またはスイッチオフ(パワーダウン：power-down)する安全な手順を提供する。スイッチ‐オフの間も、このモジュールは、外部第2電源装置を作動させることが可能である。
【００６６】
メイン防護モジュール22は、以下を含む：
‐  アプリケーションにより用いられる重要な変数のコピーを作り、レジスタからメモリへの、またはメモリからレジスタへの、可視データ転送(ロード/ストアインストラクション：Load/Store instruction)に基づき、こうした変数をアップデートする、シャドウ変数モジュール。シャドウ変数モジュールは、レジスタ転送へのメモリの不一致を検出する。不一致が検出されると、グローバルスーパーバイザモジュール、安全状態モジュール、およびハードウェアまたはソフトウェアのいずれかのデータ再試行モジュールに対する例外が発生する。シャドウ変数モジュールは、保護される変数を選択するソフトウェアを通して構成可能である；
‐  レジスタからメモリへの、またはメモリからレジスタへの、可視データ転送((ロード/ストアインストラクション)に基づき、所与の変数(妥当性絶対値、デルタ値、および文脈値)に対する妥当性値をチェックするモジュールである、妥当性変数モジュール。不一致が検出されると、グローバルスーパーバイザモジュール、および安全状態モジュールに対する例外が発生する。妥当性可変モジュールは、保護される変数を選択し、妥当性値を評価するソフトウェアを通して構成可能である；
‐  欠陥認識加速器コンパイラ 111により、コンパイル時に計算されたコードおよびフロー認証信号に基づき、欠陥認識メモリ 12に格納されるか、またはユーザコードメモリ内に埋め込まれ、さらに、ランタイムインストラクションコードを用いてそれらのモジュール自体によりラン‐タイムに計算されたコードおよびフロー認証信号に基づくモジュールである、コード＆フロー認証信号モジュール。このモジュールは、CPUプログラムフローにおける欠陥を検出可能である。さらにモジュールは、それらがCPUコア51にロードされる際、インラインリテラル内の欠陥を検出可能である。不一致が検出されると、グローバルスーパーバイザモジュール、安全状態モジュール、およびプログラム再試行モジュールに対する例外が発生する；
‐  ソフトウェア信号により、またはグローバルスーパーバイザモジュールにより、または上述の他のモジュールによりトリガーされると、システムを安全な状態に導く、すなわち、変数に安全な値を代入し、CPU51を止め、および欠陥認識加速器 11のすべての周辺機器を安全な状態に置く信号を、欠陥認識加速器‐周辺機器マネージャモジュールに送ることによる手順を開始することができる、安全状態モジュール。これはコンパイル時に構成される；
‐  CPUのレジスタバンクのコピーを作成し、およびメモリからレジスタへの可視データ転送(ロード/ストアインストラクション) に基づいて、さらに、欠陥認識加速器‐コアインタフェースモジュールから利用可能な、ALU書込ポートへのアクセスに基づいてそれをアップデートする、シャドウレジスタモジュール。その後、シャドウレジスタモジュールは、メモリ転送への最終レジスタを内部コピーのコンテンツと比較して不一致を検出する。内部結果とALU書込ポート上の1つとの間に不一致が検出されると、グローバルスーパーバイザモジュール、安全状態モジュール、およびデータ再試行に対する例外が発生する。このモジュールは、保護されるレジスタを選択するソフトウェアにより構成可能である；
‐  レジスタからメモリへの可視データ転送(ロード/ストアインストラクション)に基づく、デルタ値、空間ならびに時間文脈値に対する妥当性値をチェックするモジュールである、妥当性ロード‐ストア装置(LSU)モジュール。不一致が検出されると、グローバルスーパーバイザモジュール、および安全状態モジュールに対する例外が発生する。このモジュールは、保護されるアドレスを選択し、妥当性値を評価するソフトウェアで構成可能である；
‐  マルチプロセスアプリケーションで用いられる、タスクスーパバイザモジュール。メモリ可視データ転送(ロード/ストアインストラクション) へのレジスタに基づき、これは、様々なタスク、特に仮想アドレシングが用いられていないときに、メモリアクセス上でのチェックを実行する。より詳細には、タスクが、非共有へのアクセス、またはグローバルスーパーバイザモジュール、安全状態モジュールおよびプログラム再試行モジュールのために生成された他のものに対して実行する場合；
‐  欠陥検出以外に欠陥修正も必要であるときに用いられる、データ再試行モジュール。これは、シャドウ変数モジュール、またはシャドウレジスタモジュール、または妥当性変数モジュールの結果に基づき、CPUポートを用いて、またはデータ再試行ソフトウェアモジュールと相互作用することにより、メモリ内の不完全な変数/レジスタの値を回復可能である；
‐  欠陥検出以外に欠陥修正も必要であるときに用いられる、プログラム再試行モジュール。これは、コード＆フロー認証信号モジュールの結果に基づき、CPUポートを用いて、またはプログラム再試行モジュールと相互作用することにより、CPU状態およびプログラムカウンタを回復可能である。
【００６７】
欠陥認識加速器ＣＰＵ総称モジュール23は、以下を含む：
‐  欠陥認識加速器11とコプロセッサ 52との間のインタフェースから、または欠陥認識加速器 ETM(Embedded Trace Module：埋込トレースモジュール)インタフェースから読み込まれたオペレーションコードを解読し、さらに他のモジュールへ解読された制御信号を提供する一般モジュールである、オペレーションコード解読モジュール；
‐  発せられた割り込みおよび例外が有効でサーブされる場合、メモリマップ構成(アクセス許可、整列、および非整列アクセスなど)および割り込み要求を考慮して、絶え間なくチェックするモジュールである、Exc/Int スーパバイザモジュール。さらに、これは、例外の発生を考慮すべき場合(例えば、特権領域へユーザがアクセスしたことに起因)に発生しなかったことを検出する。欠陥が検出されると、グローバルスーパーバイザモジュール、および安全状態モジュールに対する例外が発生する；
‐  シャドウレジスタモジュール、および欠陥認識加速器ソフトウェアレジスタシャドウ化モジュールに基づき、およびCPUから来る信号に基づき、フラグおよびCPUモードを検査する、モード/フラグスーパバイザモジュール。不一致が検出されると、欠陥認識加速器グローバルスーパーバイザ、および欠陥認識加速器安全状態モジュールに対する例外が発生する；
‐  他のモジュールによりチェックされるのではなく、装置間の欠陥を検出するために、CPUメモリ境界を伴うロード‐ストア装置(LSU)により生成されたアドレス、データ、および制御信号を絶え間なく比較する、バウンダリスーパーバイザモジュール。不一致が検出されると、グローバルスーパーバイザモジュール、および安全状態モジュールに対する例外が発生する；
‐  コード化された値(例えば、モジュール-3番号で動作する)上で実行される、最重要ALU/MAC動作を含むCPU整数コアの縮小コピーを作成する、ALU/MAC スーパバイザモジュール。これは、シャドウレジスタモジュールへのアクセスを有し、さらに、欠陥認識加速器‐コアインタフェースを通して取得された、コアのALU書込ポート上で検出された結果をチェックする。内部結果とALU書込ポート上の1つとの間に不一致が検出されると、グローバルスーパーバイザモジュール、および安全状態モジュールに対する例外が発生する。この縮小モジュールに実装されていない動作で、欠陥検出が必要となる場合は、それらの動作は、欠陥認識加速器コンパイラ111による安全なインストラクション内で分解可能である；
‐  シャドウレジスタモジュールに基づき、CPUレジスタからコプロセッサへと転送されるデータが有効か否かをチェックする、コプロセッサスーパバイザモジュール。不一致が検出されると、グローバルスーパーバイザモジュール、および安全状態モジュールに対する例外が発生する；
‐  ソフトウェア信号により、またはグローバルスーパーバイザモジュールにより、またはパワースーパバイザモジュールによりトリガーされると、CPUコア51、またはその一部分のBIST(ビルトイン自己テスト)を始動可能な、BIST スーパバイザモジュール。不一致が検出されると、グローバルスーパーバイザモジュール、および安全状態モジュールに対する例外が発生する；
‐  CPUコア51により実行されたコードの直近部分を格納するキャッシュのソートを実行し、現在のプログラムフローと比較し、違いを検出する高度なモジュールである、インストラクション予測モジュール。不一致が検出されると、グローバルスーパーバイザモジュール、安全状態モジュール、プログラム再試行モジュール(ハードウェアまたはソフトウェア)に対する例外が発生する。
【００６８】
欠陥認識加速器 CPU 特殊モジュール24は、以下を含む：
‐  欠陥認識加速器11をCPU割り込み線へ接続する、欠陥認識加速器‐INTモジュール；
‐  欠陥認識加速器‐COPROCインタフェースモジュールは、欠陥認識加速器をCPU コプロセッサ52インタフェースへ接続する；
‐  欠陥認識加速器をCPUコアETMインタフェースへ接続する、欠陥認識加速器‐埋込トレースモジュール(ETM)インタフェース；
‐  欠陥認識加速器 11をCPUバス53、63およびインストラクションキャッシュメモリ、AMBAバスなどのインタフェース信号に接続する、欠陥認識加速器‐バウンダリーインタフェース；
‐  拡張ハードウェア視程(レジスタシャドウ化などのためのALU書込ポートの視程など)を提供するために、欠陥認識加速器をCPU整数コアに接続する、欠陥認識加速器‐コアインタフェース。
【００６９】
欠陥認識加速器コンパイラ111に関して、初期設定ソフトウェアモジュール112は、欠陥認識加速器11のシステムに対する初期化に必要なコードを含んでいる。
【００７０】
オペラティブシステムとの相互作用に必要な、オペラティブシステム相互作用ソフトウェアモジュール113は、ランタイム、動的処理IDで画像がマップされるアドレスなど、若干のオペレーティングシステムランタイム設定を備えた、欠陥認識加速器 11の構成に必要なコードを含む、オペラティブシステムドライバソフトウェアモジュールを含んでいる。さらに、モジュールは、他の統計値と同様に、欠陥認識加速器の欠陥状態を読み込むオペレーティングシステムがおそらく必要とする、若干のコードを含んでいる。この相互作用は、欠陥認識加速器状態情報をオペラティブシステムへ解放する。
【００７１】
欠陥認識加速器11の構成に必要なアプリケーションコンフィグレーションソフトウェアモジュール114は、以下を含む：
‐  オペラティブシステムおよびアプリケーションユーザーコードを伴う、欠陥認識加速器11の構成に必要なコードを含む、ベースコンフィグレーションソフトウェアモジュール；
‐  コンパイル時に欠陥認識加速器コンパイラ 111により計算される、コード＆フローの認証信号を伴う欠陥認識加速器の構成に必要なコードを含む、認証信号コンフィグレーションソフトウェアモジュール。
【００７２】
最終的に、すでに言及したように、ランタイムモジュール115は、その大部分が、すでに説明した欠陥認識加速器 11ハードウェアモジュールのハードウェアモジュールに対応するものであり、換言すれば、対応するハードウェアモジュール内で対応する機能が実現されない場合にのみ必要である。ランタイムモジュール115は、以下を含む：
‐  ハードウェアExc/Int スーパバイザモジュールに対するソフトウェア対応物である、EXC/INT スーパバイザソフトウェアモジュール；
‐  プロセッサ構成(ブロック設定、メモリマッピングなど)を検査する必要があるコードを含む、CPUスーパバイザソフトウェアモジュール。欠陥が検出される場合、モジュールは、プログラム再試行モジュールとして、プログラムフローを回復可能である；
‐  タスクスーパバイザモジュールに対するソフトウェア対応物である、タスクスーパバイザソフトウェアモジュール；
‐  欠陥認識加速器‐コアソフトウェアインタフェースは、欠陥認識加速器‐コアインタフェースをハードウェアレベルで行うことの、ソフトウェアレベルでの模擬となるコードにより構成される。特に、必要ならば、内部コア‐レジスタのコピーが、欠陥認識加速器 11内に作成される；
‐  ハードウェアコプロセッサスーパバイザモジュールに対するソフトウェア対応物である、コプロセッサスーパバイザソフトウェア。
‐  ハードウェアBISTスーパバイザモジュールに対するソフトウェア対応物である、BISTスーパバイザソフトウェアモジュール；
‐  ハードウェアデータ再試行モジュールに対するソフトウェア対応物である、データ再試行ソフトウェアモジュール；
‐  ハードウェアプログラム再試行モジュールに対するソフトウェア対応物である、プログラム再試行ソフトウェアモジュール。
【００７３】
欠陥認識加速器 11の周辺機器に関して、欠陥許容メモリインターフェース13は以下を含む：
‐  外部メモリをラップし、オン‐ラインビルト‐イン自己テストを、さらに、必要ならばオン‐ラインビルト‐イン自己修復を実行するために、そのコンテンツをコード化する、欠陥認識装置F‐RAMモジュール；
‐  外部メモリをラップし、オン‐ラインビルト‐イン自己テストを、さらに、必要ならばオン‐ライン'ビルト‐イン自己修復を実行するために、そのコンテンツをコード化する、欠陥認識装置F‐ROMモジュール；
‐  アドレスおよびデータ欠陥をチェックするために、外部メモリDMAコントローラをラップするブロックを含む、欠陥確認F-DMAモジュール。
【００７４】
バスインタフェースコントローラ14は、以下を含む：
‐  バスシステム53のように、メインAHB(Advanced High-performance：高度な高性能バス)バス上で伝送されるデータをチェックするために、冗長コード化されたAHBバスを用いる、AHBモジュール；
‐  周辺バス63のように、メインAPB(Advanced Peripheral Bus：高度な周辺バス)バス上で伝送されるデータをチェックするために、冗長コード化されたAPBバスを用いる、APBモジュール；
‐  CANバスモジュールに対する特殊レベルの欠陥検出のおよび修正を実行するCANモジュール。
【００７５】
上述のように、ハードウェア検査構成要素15は、配分される欠陥許容性技術を、残りのインタフェースおよびマイクロコントローラ10のセンサへ適用するために用いられる。
【００７６】
ハードウェア検査構成要素15は、図6および図7を参照して説明される設計法でいられる、スペックマンエリート（SpecMan Elite） e-検査構成要素(eVC: e-Verification Component)の基本的監視機能のハードウェア実現として考慮可能である。
【００７７】
ハードウェア検査構成要素15は、モニターされるモジュール関数の逆関数とみなすことができる。図4は、共にシステムバス53に接続され、直接第1出力に接続される、一般的な周辺機器PHYに関連づけられるハードウェア検査構成要素15の例を示している。
【００７８】
周辺機器PHYは、3つの出力信号を生成する：クロックC、および2つの出力A、B。周辺機器PHYでの主な規制は、Aの変化からの3サイクル後に、出力Bが変化してはならない。この条件をチェックする「e」言語要素は以下の通りである：
＜式＞  Expect @A_rise ＝＞｛[1..3]；@B:rise｝else PHY_error
【００７９】
このようにして、現在周辺機器PHYの出力ポートを駆動しているソフトウェアまたはハードウェアの修正と関わりなく、妥当でない状況下でエラーが発生し得る。その後エラーは、欠陥認識加速器 11により集められ、管理される。
【００８０】
この種類の「e」言語要素は、監視装置および比較装置を備えた、ハードウェア検査構成要素15のハードウェア内に容易に実装できる。周辺機器PHYの他側は、代わりにシステム検査手順により検査される。
【００８１】
ハードウェア検査構成要素15の複雑さは、検査される信号の複雑さにより、容易に増大されてしまうのは明白である。しかしながら、また、妥当でない出力構成のランタイム検査を可能にすることにより、ハードウェア検査構成要素15を利用する手順がシステムの信頼性を増加し得ることもまた明白である。さらに、ハードウェア検査構成要素15は、システム検査に使用されるeVC構成要素から始め、監視装置、状態マシン、サンプラなどのライブラリを用いて、自動的に生成可能である。eVCおよびハードウェア検査構成要素15の同一検査手順への統合は、プラットホーム環境での標準化された設計のための強力なツールとなり得るものである。
【００８２】
ハードウェア検査構成要素15には、適当なhVC設計キット、すなわち、以下を用いることにより、ハードウェア検査構成要素内のe‐言語検査規制を翻訳するソフトウェアツールが供給されている：
‐  図5を参照して詳述されている、1組のhVC基本モジュール；
‐  PWM、タイマなどの標準ブロックに対する、プレコンパイルハードウェア検査構成要素のhVCライブラリ。
【００８３】
図5に示されるように、欠陥認識加速器11は、モジュール21に属する欠陥認識周辺機器マネージャモジュールを通して、アクチュエータ606をモニターする基本ハードウェア検査構成要素15、及びセンサ607をモニターするハードウェア検査構成要素15'と通信する。
【００８４】
ハードウェア検査構成要素15は、以下を含む：
‐  所与のインタフェースに対してハードウェア検査ブロック15のハードウェア‐検査チェック装置を埋め込む、ハードウェア検査チェック装置モジュール604；
‐  所与のインタフェースに対してハードウェア検査構成要素15のハードウェア検査BIST装置を埋め込む、ハードウェア検査BISTモジュール605；
‐  欠陥認識加速器 11とハードウェア検査構成要素 15とを安全に接続し、コンフィグレーション値を受け取り、欠陥認識加速器 11へ実行/非実行信号を供給し、欠陥認識加速器11からのコマンドを受け取り、欠陥認識周辺機器マネージャモジュールと相互作用する、ハードウェア検査インタフェースモジュール601；
‐  ハードウェア検査構成要素15全体のマネージャであり、必要ならば制御されたインタフェースを安全な状態に置く働きをする、ハードウェア検査‐マネージャモジュール602；
‐  例えば、中央演算処理装置51信号、およびハードウェア検査構成要素15信号などの、システム信号間で選択するために用いられる安全なマルチプレクサー構造である、ハードウェア検査‐MUXモジュール603；
‐  コンパイル時または設計時に、例えば、インタフェースなどに対する選択/命令妥当性‐デルタ‐文脈チェックをするなど、ハードウェア検査構成要素15のモジュールを構成するために必要な全機能を実行する、ハードウェア検査‐コンフィグレーションソフトウェアモジュール。このモジュールは、すでに欠陥認識コンパイラ111に対して説明した、初期化ソフトウェアモジュールの一部である。
【００８５】
図5から分かるように、センサ607のためのハードウェア検査構成要素15'は、ハードウェア検査BISTモジュール605を必要としない。
【００８６】
上述のように、欠陥認識アクセラレータ11およびその周辺機器を含むマイクロコントローラ10は、所望のシステム信頼性を実現させるために、欠陥回避技術および欠陥排除技術を適用可能な設計手順を用いることにより設計される。こうした設計手順は、機能検査のみならず、同一の設計検査フロー内に統合される設計レベルにおける、欠陥モデル化、欠陥注入、および欠陥予測を含んでいる。
【００８７】
提案された設計手順は、指定された振舞いに対するシステムの欠陥許容性をテストする、すなわち、設計されたシステムの欠陥に対する強健さを確認し、および推定するために、設計内に欠陥を注入する、欠陥注入法を含んでいる。
【００８８】
提案された欠陥注入法と関連して、ここでは、ベリシティスペックマンエリート（Verisity Specman Elite）ツールに基づくe‐欠陥と呼ばれる手順について説明する。こうした手順は、装置レベル(すなわち、RTLまたはゲートレベル)およびシステムレベルの双方における、全ての欠陥についてテスト可能である。
【００８９】
要約すると、提案された、マイクロコントローラに基づく埋込計算装置(ECU)の設計および検査手順は、主に以下の構成となっている：
‐  プラットホーム構成要素のための1組のeVC構成要素。これらの構成ブロックを用いて、システムレベル態様を検査するために、より複雑なeVCが構成可能である；
‐  CPU検査手順。これは主に、ユーザ規制および有効範囲分析装置からのフィードバックの双方に基づく、コーナー−ケースインストラクション系列を生成する、規制‐駆動テストジェネレータにより構成される；
‐  スペックマンエリート（SpecMan Elite）の能力を用いて実行される欠陥注入装置；
‐  典型的なシステム状況、特に、マルチ‐プロセッサCAN/TTP装置、欠陥モデルなどのような自動車のシステム状況のデータベース。
【００９０】
こうした設計手順は、自動車システムのための設計フローと容易に統合可能であり、結果として図6で表わされるようなフローをもたらす。ここで：
‐  ステップ301は、仕様を考慮することを表す；
‐  ステップ302は、システム定義を表す；
‐  ステップ303は、システム分割およびシミュレーションを表す；
‐  ステップ304は、欠陥許容性システム定義を表す；
‐  ステップ305は、ECU設計を表す；
‐  ステップ306は、ECU検査を表す：
‐  ステップ307は、欠陥注入を伴うシステム検査を表す；
‐  ステップ308は、最終的な実装を表す。
【００９１】
最高水準でのシステム定義302、システム分割、およびシミュレーション303は、シミュリンク/マットラボ（SimuLink/Matlab）環境で実行されるが、ECU設計305、ECU検査306、およびシステムシミュレーション/欠陥注入307ステップは、提案された設計および検査手順において実行される。特に、以下のステップは本発明に関連する：
‐  欠陥許容性システム定義304：このステップは、RTOS(リアルタイムオペレーティングシステム)、および、ソフトウェアフェーリャーモード（Software Failure Modes）およびエフェクツアナリシス（Effects Analysis）などのような、標準ハザードアナリシス（Hazard Analysis）技術を用いて、シミュリンク（SimuLink）環境で始動するシステムレベルの双方で実行可能である。その後、例えば、フェールサイレントまたはフェールセイフの振舞いの定義などのような基本的ニーズが定義されると、これらの選択は、例えば、各システム構成要素のための欠陥認識加速器11ハードウェア/ソフトウェア統合のレベル、欠陥認識加速器メモリ12の大きさなどを定義することにより、設計手順内のECU設計レベルで実行可能である。
‐  ECU設計305および検査306：システム分割および欠陥許容性技術の定義の後、eVCおよび欠陥注入と共に、各ブロックを設計ならびに検査可能である；
‐  欠陥注入を伴うシステム検査307：完成したシステムは欠陥に対して検査可能であり、さらに欠陥許容性選択をシステムレベルで有効にすることができる。
【００９２】
設計手順のモジュール化度、さらに、欠陥許容性戦略をシステム仕様と一緒に検査する可能性の双方が、欠陥回避および欠陥除去時間の劇的な削減により設計時間を大幅に短縮することは注意に値する。
【００９３】
ここで、欠陥注入ステップ306、307の実行手順を説明する。こうした手順は、商標つきの高レベル「e」言語で書かれた、上述の再使用可能なe-検査構成要素 eVCを提供する検査技術である、ベリシティー（Verisity）社製のスペックマンエリート（SpecMan Elite）検査ツールに基づく。eVCsは、その内部に検査刺激および予想された結果を組み込む。この検査技術の利点は、eVCsの携帯性および再使用可能性である。
【００９４】
図7は、テスト中のシステム410が、普通のSpecMan Elite検査ツールを動作させるeVCデータベース412から、およびe‐欠陥注入装置400から入力データとして受け取る、一般的テストベンチ411を通してテストされる、前記検査ツールを概略的に表わしている。こうしたe‐欠陥注入装置400は、欠陥データベース406を含んでいる。こうした欠陥データベース406は、追加欠陥パッケージ405で拡張され、または欠陥‐モデル化装置40によりユーザによってカスタマイズされる。e‐欠陥注入装置400は、テスト中のシステム410内へ注入される欠陥を選択および圧縮可能な欠陥‐リスト生成装置407、高度な欠陥注入アルゴリズムを備える欠陥‐注入装置エンジン402、および欠陥感度測定用試験台411へ標準テストパターンを提供するテスト生成装置403、および欠陥効果上に統計を有するための詳細な欠陥‐分析装置401をさらに含んでいる。IEC61508チェック装置408は、電子装置の安全性の重要な設計に対して規範的なIEC61508とコンプライアンスを検査するために、出力413上で実行される。
【００９５】
欠陥データベース406は、以下の基本欠陥モデルを含んでいる：
‐  固着、開放ライン、不確定、不足、ブリッジング、グリッチ、およびビット‐フリップなどの、基本「ビット‐レベル（bit-level）」モデル；
‐  基本メモリ欠陥モデル(SRAM、ROMなど)；
‐  クロック/電力線での欠陥；
‐  可変欠陥、ブランチ/ケース条件変異体など、より高レベルの抽出(例えば、純粋な振舞い)における、拡張「ビットレベル」欠陥モデル。
【００９６】
加えて、特別な欠陥パッケージ405は、高度な放射影響欠陥モデル(SEUパッケージ)、バスプロトコルに対する典型的欠陥モデル(CAN、OCP、AMBA欠陥を伴うBUSパッケージ)、ディジタル規格における欠陥(APB/AHBスレーブを伴うCPUパッケージ)、高度なメモリ構成(Flash、D-RAMを伴うMEMパッケージ)、ARMプロセッサのための欠陥モデルを伴うARMパッケージ(すなわち、対応するマイクロ‐コードの改良を通してインストタクションに欠陥を挿入するモデルを伴うなどにより実現される。
【００９７】
特注の欠陥モデルを追加するために、欠陥モデル化装置404も提供されている。モデルは、完全に構成可能であり、メインパラメータは、欠陥に対する物理的パラメタ(形状、持続時間、振幅、基数など)、欠陥頻度、欠陥確率分布である。
【００９８】
欠陥‐リスト生成装置407は、欠陥リストを生成し、それを静的および動的崩壊アルゴリズムに基づいて崩壊させ、シミュレーション時間を減少させるために含まれている、プリ‐プロセッサである。ユーザはまた、欠陥リスト生成のために注入されて、冗長性規制を加えるためにシステムの部品を制御することができる。
【００９９】
テスト生成装置403は、装置指向欠陥注入のための作業負荷を生成可能であり、または、より一般的には、任務作業負荷ではカバーされない被テスト装置部分をカバーする、任務指向欠陥注入の欠陥有効範囲を増加させることが可能である。
【０１００】
欠陥‐注入装置エンジン402は、システムに欠陥を注入するアルゴリズムを実現する、e‐言語で書かれているエンジンである。ユーザは、例えば、ランダム選択、擬似ランダム、確定的欠陥注入などにより、欠陥注入を制御可能である。
【０１０１】
欠陥シミュレーションの結果は、基本比較規則(サンプルポイント、IO値などでの装置状態など)、およびユーザ定義の比較規則を用いて、欠陥分析装置401により分析される。欠陥分析装置401は、実行されたシミュレーションについての情報を格納する収集装置モジュールを含んでいる。この情報は、例えば、注入された欠陥のいくつが良好に許容されたか、およびいくつがエラーを発生させたかなど、グラフィカルな方法で組織化され、さらに、各グラフ表示は欠陥タイプ、システムブロックなどのためにプロットされる。結果は感度、FITレート、伝播/検出/回復待ち時間で測定される。
【０１０２】
最終的に、IEC61508チェック装置408は、IEC61508ノルム(バス、CPU、クロックなどに対する欠陥など)により定義される標準欠陥の注入を可能とするために含まれる。そして、欠陥の分析が、IEC61058安全統合レベル要件を達成する。
【０１０３】
本願明細書で開示された装置により、既知の解決策より顕著な利点を得ることが可能となる。
【０１０４】
欠陥に対して強健なシステムを設計するために、ソフトウェアにより制御され、および構成されるハードウェア冗長性を実装し、ハードウェアならびにソフトウェアのアプローチを混合して用いることにより、実行時間、およびコードの大きさにおける妥協のない、許容し得るハードウェアオーバーヘッドを伴う、複雑なCPUベースのシステム‐オン‐チップ欠陥許容性が実現可能となる。
【０１０５】
本発明に従うマイクロコントローラは、有利にも完全に構成可能な非対称冗長性に基づいており、二重または多重冗長性と比べ、領域オーバーヘッドを著しく減少させる。その限られた領域オーバーヘッドにより、こうしたマイクロコントローラは、最高度の強健さを有し、回復不能な内部故障の確率が無視し得るものとなるよう、ゲート‐レベル欠陥許容性技術(装置状態での三重‐モジュール式冗長性フリップ‐フロップなど)で構築可能である。
【０１０６】
これは、本質的に、欠陥許容性技術および関連回路がマイクロコントローラの全ての部分に配分され、特定の問題を監視し、さらに、全ての周辺機器を調整しシステムの欠陥履歴の動向をおさえている中央耐欠陥プロセッサと通信する、配分された欠陥許容性アプローチである。中央欠陥許容性プロセッサとCPUとの厳密な相互作用により、システムはまた、待ち時間の短い、すなわち、エラー伝播を回避するよう、さらに早期の安全システム回復が可能となるよう、欠陥がすぐさま捕獲される、欠陥検出システムでもある。最終的に、システムは、カスタマイズされ、およびカスタマイズが可能である：その厳密なハードウェア‐ソフトウェア相互作用により、必要とするのと同程度の欠陥許容性を含む、アプリケーションコードの部分、または変数の組、または保護される周辺機器を構成するために、アプリケーションおよびオペラティブシステム設計者に、多くの可能性を与えることになる。
【０１０７】
本発明の基本原理に反しない限り、詳細および実施例は、単なる例として述べられてきた、そして、請求項により定義された事柄に関して、本発明の範囲から逸脱することなく、変更可能、それもかなり変更可能である。
【０１０８】
本願明細書で開示される装置の主要な応用分野は、自動車のアプリケーションのためのマイクロコントローラ、またはシステム‐オン‐チップであるが、本発明の範囲が、中央演算処理装置、およびシステムバス、および、インタフェースならびに前記中央演算処理装置の操作の妥当性確認の実行に適当な、更なる欠陥処理装置が提供される周辺機器を含んだ1つ以上の機能的部分を備えた、マイクロコントローラを含む全てのシステム内での信頼性の実現にまで拡張されることは明白である。
【０１０９】
例えば、安全アプリケーションに関しては、本発明は、安全クリティカルシステム(自動車、航空宇宙、および生物医学など)に適切であるのみならず、高速通信または高度マルチメディアシステムなどの信頼性または可用性のクリティカルシステムにおいても適切である。
【０１１０】
システムが強健であるべき欠陥については、本発明は、特定種類の欠陥に制限されることはない。本発明は以下のいずれをも処理するものである：
‐  機械的欠陥、すなわち、システム内に電子欠陥を引き起こすとすぐに、劣化(摩耗、疲労、腐食)、またはショック(破砕、締めつけ、オーバーロード)に起因する；
‐  電子欠陥、すなわち、それらが欠陥検出機構により検出されるとすぐに、さらに、設計上の欠陥に関係して、それらがアプリケーションコードに関して、妥当でない実行フロー、および/または妥当でない動作コード処理、および/または重要な変数の非妥当性値を引き起こすとすぐに、製造欠陥の待ち時間(回路の被蓋部での固着)、または動作環境(放射、雑音、熱、ESD、エレクトロ‐マイグレーション)に起因する；
‐  ソフトウェア欠陥(コンパイラ内のものを含む)、すなわち、アプリケーションコードに関して、非妥当性実行フロー、および/または非妥当性動作コード処理、および/または重要な変数の非妥当性値を引き起こす場合には、設計上の欠陥、または「コードロット」(例えば、ランタイム欠陥の蓄積)。ソフトウェア欠陥も検出され、それらが周辺機器において妥当でないな変換を引き起こす場合。
【０１１１】
さらに、本発明は、永久的な欠陥のみならず、一時的または間欠的な欠陥も検出可能である。一時的欠陥に関しては、現代のDSM技術において、一時的欠陥(多くの場合、ソフトエラーと呼ばれる)が非常に頻繁に起こる場合があるため、注意に値する。ソフトエラーレート(SER)は、伝統的に、核およびスペース共同体に関係していたが、それはますます消費者や通信製品の半導体会社ならびに設計者を悩ませている。
【図面の簡単な説明】
【０１１２】
【図１】本発明のマイクロコントローラのブロック図である。
【図２】図1のマイクロコントローラの細部のブロック図である。
【図３】本発明のマイクロコントローラの、更なる実施例を表すブロック図である。
【図４】ハードウェア検証構成要素に関連する、1図のマイクロコントローラの詳細を示す図である。
【図５】図4に示すハードウェア検証構成要素の更なる詳細を示す図である。
【図６】図1のマイクロコントローラの設計手順に関係するブロックを示すブロック図である。
【図７】図6の設計手順で用いられる欠陥注入手順を表すブロック図を示す。
【符号の説明】
【０１１３】
１０  マイクロコントローラ
１１  欠陥処理装置
１２，１３，１４，１５，１６  欠陥認識周辺機器
２１，２２，２３，２４  モジュール
５０，５１  中央演算処理装置
５３  システムバス
５５  アプリケーション特定周辺機器
６１  インタフェース
６２  周辺機器
７０  ベーシックシステム構成要素
１１２  初期化モジュール
１１６  オペラティブシステム
１１７  ユーザアプリケーションコード
４０１，４０２，４０４〜４０８  モジュール
４０３  テストジェネレータ
５１１  第２欠陥処理装置
５５１  第２処理装置
６０１〜６０５  モジュール
【図１】
0004999262.tif 000002
【図２】
0004999262.tif 000003
【図３】
0004999262.tif 000004
【図４】
0004999262.tif 000005
【図５】
0004999262.tif 000006
【図６】
0004999262.tif 000007
【図７】
0004999262.tif 000008