中央演算処理装置コア51を有する中央演算処理装置50と、システムバス53と、インタフェース61及び周辺機器62を含む1つ又は複数の機能部分61、62と、前記中央演算処理装置50の動作の妥当性確認を実行するように構成された欠陥処理装置11とを備えている信頼性のあるマイクロコントローラであって、前記欠陥処理装置11は、前記中央演算処理装置コア51とは異なるものであって、前記中央演算処理装置コア51の外部にあり、前記欠陥処理装置11は、システムランタイム中の動作の少なくとも一部をオンラインで実行する少なくとも1つのモジュール22、23、24を有していて、該モジュールは前記中央演算処理装置コア51の動作の妥当性確認を実行して該マイクロコントローラの動作の信頼性を実現するように構成され、前記欠陥処理装置11は、前記中央演算処理装置コア51とのインタフェースモジュールを備えていて、該インタフェースモジュールは、前記中央演算処理装置のALU書込ポートへのアクセスを可能にすることにより、又は埋込トレースモジュールインタフェースにより、前記欠陥処理装置11と中央演算処理装置コア51埋込トレースモジュールインタフェースとのインタフェースをとることを特徴とするマイクロコントローラ。前記少なくとも1つのモジュールは、前記ALU書込ポートを介して前記インタフェースモジュールにより、前記中央演算処理装置コア51のレジスタバンクのコピーを作成するシャドウレジスタモジュールを備えていて、前記欠陥処理装置11は、前記中央演算処理装置コア51のALU/MACの縮小バージョンを備えていることを特徴とする請求項1に記載のマイクロコントローラ。該マイクロコントローラは、動作の少なくとも一部をオンラインで実行するシステムモジュール21を備えていて、前記システムモジュール21は、該マイクロコントローラ10の前記機能部分61、62の動作の妥当性確認を実行するように構成され、かつ、前記システムモジュール21は、前記欠陥処理装置11の他の内部モジュールを管理するグローバルスーパーバイザモジュールを備えていることを特徴とする請求項1に記載のマイクロコントローラ。前記システムモジュール21は、第2の欠陥処理装置511又は外部監視装置と情報を交換するように構成された欠陥認識加速器インタフェース装置を備えていることを特徴とする請求項3に記載のマイクロコントローラ。前記欠陥認識加速器インタフェース装置は、欠陥認識加速器と前記CPUコアETMインタフェースとのインタフェースをとる埋込トレースモジュールETMインタフェースを備えていることを特徴とする請求項4に記載のマイクロコントローラ。前記欠陥処理装置11は、-データのシャドウデータ化、-コード及びフローの認証信号、-データ処理の妥当性チェック、-アドレスの妥当性チェック、-ALUの同時インテグリティチェック、及び-同時モード割込チェックからなる一組の欠陥保護技術群のうちの1つ又は複数のものを用いて、前記中央演算処理装置コア51の動作の妥当性確認を実行することを特徴とする請求項1~5のいずれか1つに記載のマイクロコントローラ。前記中央演算処理装置コア51の動作の妥当性確認を実行する前記少なくとも1つのモジュール22、23、24は、前記欠陥保護技術を実行するように構成されたメイン保護モジュール22を備えていることを特徴とする請求項1~6のいずれか1つに記載のマイクロコントローラ。前記メイン保護モジュール22は、-アプリケーションにより用いられる重要な変数のコピーを作成するように構成されたシャドウ変数モジュール、-所与の変数のための妥当性の値をチェックするように構成された妥当性変数モジュール、-コード認証信号に基づいて、CPUプログラムフロー内の欠陥を検出するように構成されたコードフロー認証信号モジュール、-システムを安全状態に導くように構成された安全状態モジュール、-CPUレジスタセットのコピーを作成するように構成されたシャドウレジスタモジュール、-所与のアドレスに対する妥当性の値をチェックするように構成された妥当性ロード/ストア装置モジュール、-種々のタスクによりなされる、妥当性メモリアクセスをチェックする、マルチプロセスアプリケーションのためのタスクスーパバイザモジュール、-メモリ内の不完全な変数/レジスタ中の値を回復することにより欠陥修正を実行するように構成されたデータ再試行モジュール、及び-CPUの状態及びプログラムカウンタを回復することにより欠陥修正を実行するように構成されたプログラム再試行モジュール、からなる一組のモジュール群のうちの1つ又は複数のものを備えていることを特徴とする請求項7に記載のマイクロコントローラ。前記中央演算処理装置コア51の動作の妥当性確認を実行する前記少なくとも1つのモジュール22、23、24は、前記中央演算処理装置コア51及び前記システムバス53とデータを交換するように構成されたCPUインタフェースモジュール24を備えていることを特徴とする請求項1~8のいずれか1つに記載のマイクロコントローラ。前記CPUインタフェースモジュール24は、前記欠陥処理装置11と中央演算処理装置コア51整数コアの間のインタフェースを備えていて、該インタフェースは、拡張されたハードウェア可視性を確実化するために、前記整数コアとの専用バス接続を実行することを特徴とする請求項9に記載のマイクロコントローラ。前記中央演算処理装置コア51の動作の妥当性確認を実行する前記少なくとも1つのモジュール22、23、24は、前記欠陥認識加速器/CPUインタフェースモジュール24から到着したデータを処理するように構成され、前記メイン保護モジュールとデータを交換するCPUモジュール23を備えていて、前記CPUモジュール23は、-メモリマップの構成と割り込み要求とを考慮して、発せられた割り込み及び例外が有効であってサーブされたか否かを同時にチェックするように構成されたEXC/INTスーパバイザモジュール、-フラグ及びCPUモード信号が有効であるか否かを同時にチェックするように構成されたモードフラグスーパバイザモジュール、-CPUコアALU/MACの動作を同時にチェックするように構成されたALU/MACスーパバイザモジュール-CPUコア又はその一部分のBISTを始動するように構成されたBISTスーパバイザモジュール、及び-前記CPUにより実行されたコードの直近部分を格納し、現在のプログラムフローと比較して差異を検出し、キャッシュのソートを実現するように構成されたインストラクション予測モジュールからなる一組のモジュール群のうちの1つ又は複数のものを備えていることを特徴とする請求項9又は10に記載のマイクロコントローラ。二重冗長性システムを実現するために、前記中央演算処理装置コア51と、動作の妥当性確認を実行するように構成された前記欠陥処置総理11とが、第2の処理ユニット511と該第2の処理ユニット511の動作の妥当性確認を実行するように構成された第2の欠陥処理装置511とに接続されていることを特徴とする請求項1に記載のマイクロコントローラ。欠陥認識周辺機器12、13、14、15、16がメモリモジュール12を備えていることを特徴とする請求項1~12のいずれか1つに記載のマイクロコントローラ。欠陥認識周辺機器12、13、14、15、16が欠陥許容メモリインタフェース13を備えていることを特徴とする請求項1~11のいずれか1つに記載のマイクロコントローラ。欠陥認識周辺機器12、13、14、15、16が、該マイクロコントローラ10のシステムバスを監視するバスインタフェースコントローラ14を備えていることを特徴とする請求項1~14のいずれか1つに記載のマイクロコントローラ。欠陥認識周辺機器12、13、14、15、16が、アプリケーション特定周辺機器55に関連付けられた簡素化されたプロセッサ16を備えていることを特徴とする請求項1~15のいずれか1つに記載のマイクロコントローラ。該マイクロコントローラの動作時に、前記欠陥処理装置11が、オンライン欠陥許容動作を実行することを特徴とする、請求項1~16のいずれか1つに記載のマイクロコントローラにおける欠陥を検出する方法であって、欠陥が検出されたときに欠陥アラーム及び欠陥イベントを生成することを特徴とする方法。前記オンラインの欠陥許容動作が、-データのシャドウデータ化、-コード及びフローの認証信号、-データ処理の妥当性チェック、-アドレスの妥当性チェック、-ALUの同時インテグリティチェック、及び-同時モード割込チェックからなる一組の欠陥保護技術群のうちの1つ又は複数のものを実行することを特徴とする請求項17に記載の方法。コンピュータのメモリに直接ロードすることができるコンピュータプログラムであって、該コンピュータプログラムがコンピュータ内で実行されているときに、請求項17又は18に記載の方法を実行するソフトウェアコード部分を備えていることを特徴とするコンピュータプログラム。しかしながら、こうした解決策は、欠陥検出タスクにより、マイクロプロセッサ性能に大きな影響を与えることになる。したがって、本発明の目的は、コンピュータ資源及び回路サイズを最適化し、完全な信頼性を実現したマイクロコントローラを提供することである。本発明によると、この目的は、請求項で詳述されている特徴を有する信頼性マイクロコントローラにより達成される。本発明はまた、信頼性マイクロコントローラを設計するための対応する方法のみならず、ディジタルコンピュータのメモリへ直接ロード可能で、製品がコンピュータで実行される際に本発明の方法を実行するソフトウェアコード部分を含む、コンピュータプログラム製品に関連している。本発明に従う解決策は、実質的に、中央演算処理装置の動作を有効にする欠陥許容性処理装置を含むマイクロコントローラを提供する。欠陥許容性処理装置はまた、適切なインタフェース、及び欠陥許容性ハードウェアブロックを通して、チップ上に分配する欠陥許容性検出方法を実装する。また、欠陥許容性処理装置、インタフェース、及びハードウェアブロックを含むシステムの設計方法も提供されている。従来技術の構成と比較すると、提案された解決策は、チップ上に要する領域オーバーヘッドを減少させ、中央演算処理装置内の欠陥の低い待ち時間制御を可能にし、さらにシステムオンチップ及びユーザの必要性に従って、完全かつ柔軟にカスタマイズ可能である。本願明細書に説明されているマイクロコントローラの基礎となる基本的なアイデアは、欠陥に対する強健なシステムを有するよう、実行時間及びコードディメンションcodedimensionsにおいて妥協することなく、許容し得るハードウェアオーバーヘッドhardwareoverheadで、チップ上の複雑なCPUベースシステムの欠陥許容性を達成するために、ソフトウェアにより、ハードウェア冗長性が実行され、制御され、及び構成されることである。本発明に従うマイクロコントローラは、特定の問題を監視すること、及び中央欠陥許容性プロセッサと通信することを要求される適切な回路を通して、モニターされるシステムのあらゆる部分に配分された欠陥許容性技術を実行する。しかも、その回路は、中央演算処理装置とは異なって外部にあり、換言すれば、それは二重中央演算処理装置ではなく、前記中央演算処理装置のコンピュータ資源の外部に、自律的コンピュータ資源を有している。こうした中央欠陥許容性プロセッサは、すべての周辺機器を調整し、システムの欠陥履歴の動向を保持する。図1には、マイクロコントローラ10のハードウェアアーキテクチャーを表すブロック図が示されている。こうしたマイクロコントローラ10は、基本的に、コプロセッサ52に関連づけられた中央演算処理装置コア51を含む、例えばARMプロセッサのようなRISC装置となり得るプロセッサ50中央演算処理装置を含んでいる。プロセッサ50はまた、データ記憶モジュール64、インストラクションキャッシュメモリ65、及びAMBAアドバンストマイクロコントローラバスアーキテクチャーAdvancedMicrocontrollerBusArchitectureバスインタフェースインタフェース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、すなわち、主な欠陥マネージャとして動作するプロセッサをさらに含んでいる。また、以下では、簡潔さのために、欠陥認識加速器FaultRecognitionAccelerator11を、時折、その頭文字のFRACとして言及することもある。こうした欠陥認識加速器11は、異なる欠陥検出技術及び欠陥許容性技術を実装させる、多数のユーザ構成可能なモジュールにより構成されている。欠陥認識加速器11、及び関連モジュール、及び周辺機器は、図1では、より容易に識別できるよう破線で示されている。欠陥認識加速器11はプロセッサ50内に配置され、中央演算処理装置コア51と通信する。欠陥認識加速器11は、専用メモリ又は専用ポートを備えたCPUメモリの一部でもよいプロセッサ50内に配置された、欠陥認識メモリ12と関連して動作する。欠陥認識メモリ12は、欠陥認識加速器11がその機能を実行するために必要とするコード、履歴トラック、及び他のデータなどのデータを格納する。以下の記述部分でさらに詳述されているように、欠陥認識加速器11は、システム全体及び他の欠陥許容性周辺機器を、システムバス53及び他の専用信号を通して専門的に調査する別モジュールを含んでいる。欠陥認識加速器11はまた、スタートアップ、及び周期的システム内蔵テストを導く。欠陥認識加速器11は、システムレベルでの迅速な診断及び保守を可能にするよう、プロセッサコア51、システムのJTAGポートの双方、のみならず直接バスインターフェイスを通してアクセス可能である。完全な信頼性を達成するために、欠陥認識加速器11は、中央演算処理装置コア51の欠陥、又は欠陥認識加速器11自身の欠陥に起因して、欠陥アラーム、及び、例外exception、プログラム再試行又はシステム停止などのイベントeventsを発生可能である。欠陥認識加速器11は、常に、問題に反応して、危険なシステム状態を回避可能でなければならない。また、欠陥許容メモリインタフェース13は、プロセッサ50内に含まれるデータメモリ64、キャッシュメモリ65、さらに周辺機器62のセットに含まれる埋込メモリ60及びDMAモジュール58などのメモリと接続するために、マイクロコントローラ10上に提供される。欠陥許容メモリインターフェース13は、異なるメモリ欠陥検出を実行する様々なユーザ構成可能なモジュール、及びエラー訂正コードECCErrorCorrectionCode、ビルトインセルフリペアBuiltinSelfRepairBISRなどの欠陥許容性技術により構成される。こうした周辺バス63、又はCPUシステムバス53、又はCANバスなどの他の外部バスといったバスの保護のために、欠陥許容バスインタフェースコントローラ14が提供される。図1に見られるように、マイクロコントローラ10の異なるモジュール及び装置と関連付けられた、ハードウェア検証構成要素15hVChardwareVerificationComponentも提供されている。したがって、図示されている実施例では、ハードウェア検証構成要素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独立CPUindependentと見なすことができる;しかしながら、これらはシステム構造全体に依存している;‐変数妥当性/デルタ値、コードフローの認証信号などの、メイン欠陥保護技術の実行に必要なモジュールである、メイン保護モジュール22。これらのモジュールはCPU独立と見なすことができる;‐欠陥認識加速器/CPUインタフェースモジュール24からのデータを処理し、メイン保護モジュールとデータ交換をするのに必要なモジュールである、CPU総称モジュール23。CPU総称モジュール23は、僅かにCPU依存CPUdependentである。すなわち、基本的アルゴリズムは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上を通過し、CPURAMビルトイン自己テストは欠陥許容メモリインタフェース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は、異なるセクションにより構成された認証信号を計算する:‐ブロックの認証信号、すなわち、各無分岐ブロック内に含まれている全てのオペレーションコードopcodeの認証信号。この認証信号は、自己矛盾のない非オーバーラッピングコードを用いてブロック内に含まれているインストラクションの動作コードをコード化することにより、コンパイラによって計算される;‐制御フロー正規表現。コンパイル時間中、制御フローグラフが計算され、したがって、以前のブロックを尊重する許可された経路についての情報は、各認証信号に含まれている。実行時間に、欠陥認識加速器11は、コード実行フローをモニターする。これは特に、リアルタイムで、無分岐ブロックの認証信号を計算し、及びチェックし、リアルタイムで実行されたプログラムフローをレファレンスと比較し、コンパイラ111により欠陥認識メモリ12又は埋込ユーザコードのいずれかに格納される。このアプローチにより、そのハードウェア位置メモリ、又はCPUに拘わらず、コード欠陥をカバー可能となる。エラーの場合には、欠陥認識加速器11は可能ならば欠陥の修復を試み、最後の無欠陥ブロックから実行フローを再開再試行する。したがって、各ブロックの始めに、欠陥認識加速器11の視点から、欠陥認識加速器は、開始認証信号を認識し、この認証信号をランタイムコンピューティングに対する内部レジスタ内に格納する。ブロックの終端では、欠陥認識加速器11は、で作動するALU/MACCの縮小バージョンを含んでいる。これを行うために、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又はIS09141インタフェースを通して、欠陥認識加速器11から外界への全てのデータ転送を管理する、デバッグイフマネージャモジュールDebugIfManagerModule。‐欠陥認識加速器11と欠陥認識メモリ12との間の、全ての相互作用メモリを管理する、欠陥認識加速器メモリマネージャモジュール;‐独立クロックソースにより与えられるクロック監視装置を含む、クロックスーパバイザモジュール。一例として、このモジュールは、欠陥認識アクセラレータ11の内部又は外部にあってもよい遅いクロック振動子の、1周期内に含まれるシステムクロック数を数えることにより実行可能であり、さらに、監視装置は、一定のタイムウインドウの間のメインクロックの劣化、すなわち、クロックが所定の安全レベルより速いか、又は遅いかを検出可能である。タイムアウトイベントは、グローバルスーパーバイザモジュールに対するこのモジュールの例外を発生させ、遅いクロックは、フェールセイフ状態へシステムを駆動する安全状態モジュールの時間を計るのに使用される;‐外部パワーサプライレベル検出器、及びグローバルスーパーバイザモジュールから、共に安全なパワーアップ又はパワーダウンの必要性を指定する信号を受信する、スケジューラにより構成されたモジュールである、パワースーパバイザモジュール。使用可能になると、これは安全状態モジュールを始動させ、その後、システムのリセット及びクロックをスイッチオンパワーアップ:powerupし、又はスイッチオフパワーダウン:powerdownする安全な手順を提供する。スイッチオフの間も、このモジュールは、外部第2電源装置を作動させることが可能である。メイン防護モジュール22は、以下を含む:‐アプリケーションにより用いられる重要な変数のコピーを作り、レジスタからメモリへの、又はメモリからレジスタへの、可視データ転送ロード/ストアインストラクション:LoadStoreinstructionに基づき、こうした変数をアップデートする、シャドウ変数モジュール。シャドウ変数モジュールは、レジスタ転送へのメモリの不一致を検出する。不一致が検出されると、グローバルスーパーバイザモジュール、安全状態モジュール、及びハードウェア又はソフトウェアのいずれかのデータ再試行モジュールに対する例外が発生する。シャドウ変数モジュールは、保護される変数を選択するソフトウェアを通して構成可能である;‐レジスタからメモリへの、又はメモリからレジスタへの、可視データ転送ロード/ストアインストラクションに基づき、所与の変数妥当性絶対値、デルタ値、及び文脈値に対する妥当性値をチェックするモジュールである、妥当性変数モジュール。不一致が検出されると、グローバルスーパーバイザモジュール、及び安全状態モジュールに対する例外が発生する。妥当性可変モジュールは、保護される変数を選択し、妥当性値を評価するソフトウェアを通して構成可能である;‐欠陥認識加速器コンパイラ111により、コンパイル時に計算されたコード及びフロー認証信号に基づき、欠陥認識メモリ12に格納されるか、又はユーザコードメモリ内に埋め込まれ、さらに、ランタイムインストラクションコードを用いてそれらのモジュール自体によりランタイムに計算されたコード及びフロー認証信号に基づくモジュールである、コードフロー認証信号モジュール。このモジュールは、CPUプログラムフローにおける欠陥を検出可能である。さらにモジュールは、それらがCPUコア51にロードされる際、インラインリテラル内の欠陥を検出可能である。不一致が検出されると、グローバルスーパーバイザモジュール、安全状態モジュール、及びプログラム再試行モジュールに対する例外が発生する;‐ソフトウェア信号により、又はグローバルスーパーバイザモジュールにより、又は上述の他のモジュールによりトリガーされると、システムを安全な状態に導く、すなわち、変数に安全な値を代入し、COU51を止め、及び欠陥認識加速器11のすべての周辺機器を安全な状態に置く信号を、欠陥認識加速器周辺機器マネージャモジュールに送ることによる手順を開始することができる、安全状態モジュール。これはコンパイル時に構成される;‐CPUのレジスタバンクのコピーを作成し、及びメモリからレジスタへの可視データ転送ロード/ストアインストラクションに基づいて、さらに、欠陥認識加速器コアインタフェースモジュールから利用可能な、ALU書込ポートへのアクセスに基づいてそれをアップデートする、シャドウレジスタモジュール。その後、シャドウレジスタモジュールは、メモリ転送への最終レジスタを内部コピーのコンテンツと比較して不一致を検出する。内部結果とALU書込ポート上の1つとの間に不一致が検出されると、グローバルスーパーバイザモジュール、安全状態モジュール、及びデータ再試行に対する例外が発生する。このモジュールは、保護されるレジスタを選択するソフトウェアにより構成可能である;‐レジスタからメモリへの可視データ転送ロード/ストアインストラクションに基づく、デルタ値、空間並びに時間文脈値に対する妥当性値をチェックするモジュールである、妥当性ロードストア装置LSUモジュール。不一致が検出されると、グローバルスーパーバイザモジュール、及び安全状態モジュールに対する例外が発生する。このモジュールは、保護されるアドレスを選択し、妥当性値を評価するソフトウェアで構成可能である;‐マルチプロセスアプリケーションで用いられる、タスクスーパバイザモジュール。メモリ可視データ転送ロード/ストアインストラクションへのレジスタに基づき、これは、様々なタスク、特に仮想アドレシングが用いられていないときに、メモリアクセス上でのチェックを実行する。より詳細には、タスクが、非共有へのアクセス、又はグローバルスーパーバイザモジュール、安全状態モジュール及びプログラム再試行モジュールのために生成された他のものに対して実行する場合;‐欠陥検出以外に欠陥修正も必要であるときに用いられる、データ再試行モジュール。これは、シャドウ変数モジュール、又はシャドウレジスタモジュール、又は妥当性変数モジュールの結果に基づき、CPUポートを用いて、又はデータ再試行ソフトウェアモジュールと相互作用することにより、メモリ内の不完全な変数/レジスタの値を回復可能である;‐欠陥検出以外に欠陥修正も必要であるときに用いられる、プログラム再試行モジュール。これは、コードフロー認証信号モジュールの結果に基づき、CPUポートを用いて、又はプログラム再試行モジュールと相互作用することにより、CPU状態及びプログラムカウンタを回復可能である。欠陥認識加速器CPU総称モジュール23は、以下を含む:‐欠陥認識加速器11とコプロセッサ52との間のインタフェースから、又は欠陥認識加速器ETMEmbeddedTraceModule:埋込トレースモジュールインタフェースから読み込まれたオペレーションコードを解読し、さらに他のモジュールへ解読された制御信号を提供する一般モジュールである、オペレーションコード解読モジュール;‐発せられた割り込み及び例外が有効でサーブされる場合、メモリマップ構成アクセス許可、整列、及び非整列アクセスなど及び割り込み要求を考慮して、絶え間なくチェックするモジュールである、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のように、メインAHBAdvancedHighperformance:高度な高性能バスバス上で伝送されるデータをチェックするために、冗長コード化されたAHBバスを用いる、AHBモジュール;‐周辺バス63のように、メインAPBAdvancedPeripheralBus:高度な周辺バスバス上で伝送されるデータをチェックするために、冗長コード化されたAPBバスを用いる、APBモジュール;‐CANバスモジュールに対する特殊レベルの欠陥検出の及び修正を実行するCANモジュール。上述のように、ハードウェア検査構成要素15は、配分される欠陥許容性技術を、残りのインタフェース及びマイクロコントローラ10のセンサへ適用するために用いられる。ハードウェア検査構成要素15は、図6及び図7を参照して説明される設計法でいられる、スペックマンエリートSpecManElitee-検査構成要素eVCeVerificationComponentの基本的監視機能のハードウェア実現として考慮可能である。ハードウェア検査構成要素15は、モニターされるモジュール関数の逆関数とみなすことができる。図4は、共にシステムバス53に接続され、直接第1出力に接続される、一般的な周辺機器PHYに関連づけられるハードウェア検査構成要素15の例を示している。周辺機器PHYは、3つの出力信号を生成する:クロックC、及び2つの出力A、B。周辺機器PHYでの主な規制は、Aの変化からの3サイクル後に、出力Bが変化してはならない。この条件をチェックするe言語要素は以下の通りである:<式>ExpectArise=>{13;Brise}elsePHYerrorこのようにして、現在周辺機器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は、所望のシステム信頼性を実現させるために、欠陥回避技術及び欠陥排除技術を適用可能な設計手順を用いることにより設計される。こうした設計手順は、機能検査のみならず、同一の設計検査フロー内に統合される設計レベルにおける、欠陥モデル化、欠陥注入、及び欠陥予測を含んでいる。提案された設計手順は、指定された振舞いに対するシステムの欠陥許容性をテストする、すなわち、設計されたシステムの欠陥に対する強健さを確認し、及び推定するために、設計内に欠陥を注入する、欠陥注入法を含んでいる。提案された欠陥注入法と関連して、ここでは、ベリシティスペックマンエリートVerisitySpecmanEliteツールに基づくe-欠陥と呼ばれる手順について説明する。こうした手順は、装置レベルすなわち、RTL又はゲートレベル及びシステムレベルの双方における、全ての欠陥についてテスト可能である。要約すると、提案された、マイクロコントローラに基づく埋込計算装置ECUの設計及び検査手順は、主に以下の構成となっている:‐プラットホーム構成要素のための1組のeVC構成要素。これらの構成ブロックを用いて、システムレベル態様を検査するために、より複雑なeVCが構成可能である;‐CPU検査手順。これは主に、ユーザ規制及び有効範囲分析装置からのフィードバックの双方に基づく、コーナーケースインストラクション系列を生成する、規制駆動テストジェネレータにより構成される;‐スペックマンエリートSpecManEliteの能力を用いて実行される欠陥注入装置;‐典型的なシステム状況、特に、マルチプロセッサCAN/TTPP装置、欠陥モデルなどのような自動車のシステム状況のデータベース。こうした設計手順は、自動車システムのための設計フローと容易に統合可能であり、結果として図6で表わされるようなフローをもたらす。ここで:‐ステップ301は、仕様を考慮することを表す;‐ステップ302は、システム定義を表す;‐ステップ303は、システム分割及びシミュレーションを表す;‐ステップ304は、欠陥許容性システム定義を表す;‐ステップ305は、ECU設計を表す;‐ステップ306は、ECU検査を表す:‐ステップ307は、欠陥注入を伴うシステム検査を表す;‐ステップ308は、最終的な実装を表す。最高水準でのシステム定義302、システム分割、及びシミュレーション303は、シミュリンク/マットラボSimuLinkMatlab環境で実行されるが、ECU設計305、ECU検査306、及びシステムシミュレーション/欠陥注入307ステップは、提案された設計及び検査手順において実行される。特に、以下のステップは本発明に関連する:‐欠陥許容性システム定義304:このステップは、RTOSリアルタイムオペレーティングシステム、及び、ソフトウェアフェーリャーモードSoftwareFailureModes及びエフェクツアナリシスEffectsAnalysisなどのような、標準ハザードアナリシスHazardAnalysis技術を用いて、シミュリンクSimuLink環境で始動するシステムレベルの双方で実行可能である。その後、例えば、フェールサイレント又はフェールセイフの振舞いの定義などのような基本的ニーズが定義されると、これらの選択は、例えば、各システム構成要素のための欠陥認識加速器11ハードウェア/ソフトウェア統合のレベル、欠陥認識加速器メモリ12の大きさなどを定義することにより、設計手順内のECU設計レベルで実行可能である。‐ECU設計305及び検査306:システム分割及び欠陥許容性技術の定義の後、eVC及び欠陥注入と共に、各ブロックを設計並びに検査可能である;‐欠陥注入を伴うシステム検査307:完成したシステムは欠陥に対して検査可能であり、さらに欠陥許容性選択をシステムレベルで有効にすることができる。設計手順のモジュール化度、さらに、欠陥許容性戦略をシステム仕様と一緒に検査する可能性の双方が、欠陥回避及び欠陥除去時間の劇的な削減により設計時間を大幅に短縮することは注意に値する。ここで、欠陥注入ステップ306、307の実行手順を説明する。こうした手順は、商標つきの高レベルe言語で書かれた、上述の再使用可能なe-検査構成要素eVCを提供する検査技術である、ベリシティーVerisity社製のスペックマンエリートSpecManElite検査ツールに基づく。eVCsは、その内部に検査刺激及び予想された結果を組み込む。この検査技術の利点は、eVCsの携帯性及び再使用可能性である。図7は、テスト中のシステム410が、普通のSpecManElite検査ツールを動作させるeVCデータベース412から、及びe-欠陥注入装置400から入力データとして受け取る、一般的テストベンチ411を通してテストされる、前記検査ツールを概略的に表わしている。こうしたe-欠陥注入装置400は、欠陥データベース406を含んでいる。こうした欠陥データベース406は、追加欠陥パッケージ405で拡張され、又は欠陥モデル化装置40によりユーザによってカスタマイズされる。e-欠陥注入装置400は、テスト中のシステム410内へ注入される欠陥を選択及び圧縮可能な欠陥リスト生成装置407、高度な欠陥注入アルゴリズムを備える欠陥注入装置エンジン402、及び欠陥感度測定用試験台411へ標準テストパターンを提供するテスト生成装置403、及び欠陥効果上に統計を有するための詳細な欠陥分析装置401をさらに含んでいる。IEC61508チェック装置408は、電子装置の安全性の重要な設計に対して規範的なIEC61508とコンプライアンスを検査するために、出力413上で実行される。欠陥データベース406は、以下の基本欠陥モデルを含んでいる:‐固着、開放ライン、不確定、不足、ブリッジング、グリッチ、及びビットフリップなどの、基本ビットレベルbitlevelモデル;‐基本メモリ欠陥モデル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.中央演算処理装置50、51と、システムバス53並びにインタフェース61及び周辺機器62を含む1つ以上の機能部分61、62と、前記中央演算処理装置50、51の動作のバリデーションの実行に適した更なる欠陥処理装置11と、を含む信頼性マイクロコントローラであって、前記更なる欠陥処理装置11は、前記中央演算処理装置51に関して異なり、外部にあり、前記更なる欠陥処理装置11は、少なくとも部分的にオンラインで動作し、前記中央演算処理装置51の動作のバリデーションを実行するよう構成された、少なくとも1つのモジュール22、23、24を含み、さらに、少なくとも部分的にオンラインで作動し、前記マイクロコントローラ10の他の前記機能部分61、62の動作のバリデーションを実行するよう構成された、1つ以上のモジュール21を含んでいる、ことを特徴とする信頼性マイクロコントローラ。2.前記他の機能部分61、62の動作のバリデーションを実行するのに適した前記1つ以上のモジュール21が、前記更なる欠陥処理装置11に関連付けられた欠陥認識周辺機器12、13、14、15、16と相互作用するのに適し、ベーシックシステム構成要素70と相互作用するのに適し、更なる欠陥処理装置11の他の内部モジュールを管理するのに適した、システムモジュール21を含むことを特徴とする、1.のマイクロコントローラ。3.前記システムモジュール21が、前記更なる欠陥処理装置11の他の内部モジュールを管理するグローバルスーパーバイザモジュールを含むことを特徴とする、2.のマイクロコントローラ。4.前記システムモジュール21が、第2欠陥処理装置511又は外部監視装置と情報を交換するのに適当なFRACからFRACへのインタフェース装置を含むことを特徴とする、3.のマイクロコントローラ。5.前記更なる欠陥処理装置11が、以下の欠陥保護技術の1つ以上を用いることにより、記中央演算処理装置51の操作のバリデーションを実行していることを特徴とする、1.から4.のいずれかのマイクロコントローラ:‐データのシャドウ化‐コード及びフローサイン;‐データ処理リーガリティチェック;‐アドレッシングリーガリティチェック;‐ALU同時リーガリティチェッキング;‐同時モード/割り込みチェック。6.前記中央演算処理装置51の動作のバリデーションを実行する、前記少なくともモジュール22、23、24が、前記欠陥保護技術を実行するのに適したメイン保護モジュール22を含むことを特徴とする、1.から5.のいずれかのマイクロコントローラ。7.メイン保護モジュール22が、以下のモジュールうちの1つ以上を含むという特徴を有する、6.のマイクロコントローラ:‐アプリケーションにより用いられる重要な変数のコピーを作成するのに適したシャドウ変数モジュール;‐所与の変数に対するリーガル値をチェックするのに適したリーガル変数モジュール;‐コードサインに基づくCPUプログラムフロー内の欠陥検出に適したコードアンドフローサインモジュール;‐システムを安全状態へ導くのに適した安全状態モジュール;‐CPUレジスタセットのコピーを作成するのに適したシャドウレジスタモジュール;‐所与のアドレスに対するリーガル値をチェックするのに適したリーガルロード/ストア装置モジュール;‐様々なタスクによりなされる、リーガルメモリアクセスをチェックする、マルチプロセスアプリケーションに適したタスクスーパバイザモジュール;‐メモリ内の不完全な変数レジスタの値を回復することにより欠陥修正を実行するのに適したデータ再試行モジュール;‐CPU状態及びプログラムカウンタを回復することにより、欠陥修正を実行するのに適したプログ再試行モジュール。8.前記中央演算処理装置51の動作のバリデーションを実行する、前記少なくともモジュール22、23、24が、中央演算処理装置51及びシステムバス53とのデータ交換に適したCPUインタフェースモジュール24を含むことを特徴とする、1.から7.のいずれかのマイクロコントローラ。9.前記CPUインタフェースモジュール24が、前記更なる欠陥処理装置11と中央演算処理装置51整数コアとの間のインタフェースを含み、拡張ハードウェア視程を確実なものにするために、前記インタフェースが前記整数コアへの専用バス接続を実行することを特徴とする、8.のマイクロコントローラ。10.前記中央演算処理装置51の動作のバリデーションを実行する、前記少なくともモジュール22、23、24が、欠陥認識加速器/CPUインタフェースモジュール24からのデータを処理し、メイン保護モジュールとデータ交換をするのに適したCPUモジュール23を含み、さらに、前記CPUモジュール23が、以下のモジュールのうちの1つ以上を含むことを特徴とする、8.又は9.のマイクロコントローラ:‐発せられた割り込み及び例外が有効でサーブされる場合、メモリマップ構成アクセス許可、整列、及び非整列アクセスなど及び割り込み要求を考慮して、同時にチェックするのに適した、EXC/INTスーパバイザモジュール;‐フラグ及びCPUモード信号が有効か否かを同時にチェックするのに適した、モード/フラグスーパバイザモジュール;‐CPUコアALU/MACの動作を同時にチェックするのに適したALU/MACスーパバイザモジュール;‐CPUコア又はその一部分のBISTを始動するのに適したBISTスーパバイザモジュール;‐現在のプログラムフローと比較して、違いを検出し、CPUにより実行されたコードの直近部分を格納するキャッシュのソートを実現するのに適したインストラクション予測モジュール。11.動作のバリデーションを実行するのに適した、前記中央演算処理装置51及び前記更なる欠陥処理装置11が、第2処理装置551及び、二重冗長性システムを実現するために、第2処理装置551の動作のバリデーションを実行するのに適したそれぞれの第2欠陥処理装置511に接続されていることを特徴とする、10.のマイクロコントローラ。12.前記欠陥認識周辺機器12、13、14、15、16が、メモリモジュール12を含むことを特徴とする、1.から11.のいずれかのマイクロコントローラ。13.前記欠陥認識周辺機器12、13、14、15、16が、欠陥許容性メモリインタフェース13を含むことを特徴とする、1.から12.のいずれかのマイクロコントローラ。14.ハードウェア検査構成要素15が、前記1つ以上のモジュール21の制御下での動作のバリデーションを実行する前記マイクロコントローラの、前記他の機能的な部分61、62と関連付けられていることを特徴とする、請求項1.から13.のいずれかのマイクロコントローラ。15.前記ハードウェア検査構成要素15が、設計検査に用いられるコードeVCの、ハードウェア翻訳として取得されることを特徴とする、14.のマイクロコントローラ。16.前記ハードウェア検査構成要素15が、前記ハードウェア翻訳を実行する、以下の基本的ハードウェア検査モジュールのうちの1つ以上を含むことを特徴とする、15.のマイクロコントローラ:‐ハードウェア検査チェックのためのモジュール604;‐ハードウェア検査BISTのためのモジュール605;‐インタフェースのハードウェア検査のためのモジュール601;‐ハードウェア検査管理のためのモジュール602;‐システム信号とハードウェア検査構成要素15信号との間の選択のためのマルチプレクサー構造603‐ソフトウェアの構成のためのモジュール。17.前記基本的ハードウェア検査モジュールが、コンパイル手順111の初期化モジュール112に含まれる、ハードウェア検査コンフィグレーションソフトウェアモジュールを通して構成されることを特徴とする、16.のマイクロコントローラ。18.前記欠陥認識周辺機器12、13、14、15、16が、前記マイクロコントローラ10のシステムバス53をモニターする、バスインタフェースコントローラ14をさらに含むことを特徴とする、1.から17.のいずれかのマイクロコントローラ。19.前記欠陥認識周辺機器12、13、14、15、16が、アプリケーション特定周辺機器55と関連付けられた簡易型プロセッサ16をさらに含むという特徴を有する、1.から18.のいずれかのマイクロコントローラ。20.少なくとも以下の動作のうちの1つを実行する、コンパイル手順111を実装することを特徴とする、1.から19.のいずれかのマイクロコントローラ:‐更なる欠陥処理装置11の基本機能の初期化112;‐オペラティブシステムとの相互作用113;‐オペラティブシステム116及びユーザアプリケーションコード117に関する、更なる欠陥処理装置11のアプリケーション構成114;‐欠陥検出及び保護技術を可能にするための、ランタイムモジュールのユーザアプリケーションコード117への挿入115。21.ランタイムモジュールのアプリケーションコード117への前記挿入115が、直接、CPUレジスタ及びALU視程、及び/又は、タスク及び例外の監督、及び/又は、BISTテストを実行することを特徴とする、9.及び20.のいずれかのマイクロコントローラ。22.前記処理装置11が、前記マイクロコントローラ活動中に、欠陥が検出された場合、欠陥アラーム及び欠陥イベントを発生させるのに適した、オンライン欠陥許容性動作を実行することを特徴とする、1.から21.のいずれかのマイクロコントローラにおける欠陥検出方法。23.前記オンライン欠陥許容性動作が、以下の欠陥保護技術のうちの1つ以上を実行することを特徴とする、22.の方法:‐データのシャドウ化‐コードアンドフローサイン;‐データ処理リーガリティチェック;‐アドレッシングリーガリティチェック;‐ALU同時インテグリティチェッキング;‐同時モード/割り込みチェック。24.前記欠陥処理装置11が、前記マイクロコントローラ活動中、異なる時間に以下の動作も実行することを特徴とする、22.又は23.の方法:‐パワーオン動作時のマイクロコントローラ欠陥予測;‐マイクロコントローラオンライン欠陥予測動作。25.パワーオン動作での前記マイクロコントローラ欠陥予測が、パワーオンで実行される、一連のBISTテスト又はBISTsを実行することを特徴とする、24.の方法:26.前記マイクロコントローラオンライン欠陥予測動作が、システムランタイム中に実行される前記一連のBISTテスト又はBISTsを実行することを特徴とする、24.4の方法。27.以下の動作を含むことを特徴とする、マイクロコントローラに対する耐欠陥システムの設計方法:‐ソフトウェア検査構成要素eVCを用いて機能的検査を実行すること306;‐中央演算処理装置51検査手順を実行すること;‐欠陥注入手順を実行すること307;‐最終的実装を実行すること308。28.典型的なシステム状況のデータベースを提供する動作をさらに含むことを特徴とする、27.の方法。29.マイクロコントローラインタフェースに対する、前記ソフトウェア検査構成要素eVCが、前記最終的な実装ステップ308中に、ハードウェア検査構成要素15内で、hVC設計キットにより自動的に翻訳されることを特徴とする、27.の方法。30.前記欠陥注入手順307が、以下のモジュール内の1つ以上と関連付けられた、e-欠陥フェーズ400動作を含むことを特徴とする、27.の方法:‐基本欠陥モデルの組み合わせを含む欠陥データベースモジュール406;‐高度な放射影響欠陥モデルの組み合わせを含む欠陥パッケージモジュール405;‐カスタム欠陥モデル404を加えるのに適した欠陥モデル化装置モジュール;‐注入される欠陥を選択し、及び圧縮する、欠陥リスト生成装置モジュール407;‐注入手順を提供する、欠陥注入装置エンジンモジュール402;‐テストパターンを提供する、テストジェネレータ403;‐欠陥効果上の統計を提供する、欠陥分析装置モジュール401;‐電子装置の安全性の重要な設計に対する規範性とコンプライアンスを検査する、チェック装置モジュール408。31.コンピュータのメモリ内に直接ロード可能で、製品がコンピュータ上で実行される際、27.から30.のいずれかの方法を実行するソフトウェアコード部分を含んでいるコンピュータプログラム製品。