JP2012074057A - 信頼性のあるマイクロコントローラ並びにその設計方法及びそのためのコンピュータプログラム - Google Patents

信頼性のあるマイクロコントローラ並びにその設計方法及びそのためのコンピュータプログラム Download PDF

Info

Publication number
JP2012074057A
JP2012074057A JP2011248216A JP2011248216A JP2012074057A JP 2012074057 A JP2012074057 A JP 2012074057A JP 2011248216 A JP2011248216 A JP 2011248216A JP 2011248216 A JP2011248216 A JP 2011248216A JP 2012074057 A JP2012074057 A JP 2012074057A
Authority
JP
Japan
Prior art keywords
defect
module
microcontroller
processing unit
cpu
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2011248216A
Other languages
English (en)
Other versions
JP5631848B2 (ja
Inventor
Riccardo Mariani
リッカルド・マリアーニ
Motte Sylvano
シルヴァーノ・モット
Chavez Monica
モニア・チャヴァッチ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yogitech SpA
Original Assignee
Yogitech SpA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yogitech SpA filed Critical Yogitech SpA
Publication of JP2012074057A publication Critical patent/JP2012074057A/ja
Application granted granted Critical
Publication of JP5631848B2 publication Critical patent/JP5631848B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/27Built-in tests

Abstract

【課題】コンピュータ資源及び回路サイズを最適化し、完全な信頼性を実現する。
【解決手段】中央演算処理装置(50、51)と該中央演算処理装置(50、51)の動作のバリデーションの実行に適した欠陥処理装置(11)を含む信頼性のあるマイクロコントローラであって、欠陥処理装置(11)は、中央演算処理装置(51)に関して異なり、外部にあり、さらに、欠陥処理装置(11)は、少なくとも中央演算処理装置の動作のバリデーションを実行するモジュール、及び、マイクロコントローラ(10)の他の機能部分の動作のバリデーションを実行するように構成された1つ以上のモジュールを含んでいる。
【選択図】図1

Description

本発明は、マイクロコントローラユニット(マイクロコントローラ)の信頼性を実現する技術に関するものであり、特に自動車システムにおいて起こり得る使用に留意して開発されたものである。
このようなマイクロコントローラが使用される典型的なものは、アンチブロッキングシステム(ABS)、トルクコントロールシステム(TCS)及び自動操縦安定制御(TSC)である。しかしながら、このことは、エックス・バイ・ワイヤ(x-by-wire)、インフォテインメント(infotainment)、生物医学アプリケーション、及び通信などを含む広範で様々なアプリケーションに対しても実際上適用可能な本発明の範囲を制限する意味で解釈されることにはならない。
以下の記述における「マイクロコントローラ」という用語は、広い意味、すなわち、アナログ・ディジタル並びにディジタル・アナログ変換器、CPU、及びCPU周辺機器、メモリ、システムバス、内部又は外部センサ、及び/又はトランスデューサ、制御装置、計測装置、及び出力装置を含むシステム・オン・チップ(SOCを意図するものである。
また、本発明は、信頼性のあるマイクロコントローラの設計のための技術、及び対応するコンピュータプログラム(プログラム製品)に関連している。
近年、効率、安全性、性能、及び快適さのみならず、情報及びエンターテインメント性を向上させるマイクロエレクトロニックシステムの車両での実現が、かなり進展してきている。
こうしたマイクロエレクトロニックシステムは中央演算処理装置に基づくもので、欠陥検出手段が提供された強健なネットワークを用いて相互接続されている。こうした強健なネットワークにより、ワイヤリングルーム(wiring loom)製造に用いられる、何千もの高価で信頼性の低いワイヤ及びコネクタの必要性が排除されている。
もちろん、故障が致命的事故につながるので、こうしたシステムは信頼度が高くなければならない。しかしながら、車は、温度が広範囲に変化し、及び土、塩のスプレー、ほこり、腐食性流体、強い振動並びに突発的な衝撃、電気的な雑音、電磁波干渉にさらされる好ましくない環境にある。さらに、こうしたマイクロエレクトロニックシステムは、バッテリーを消費しないように駐車した際に、電力消費量がほぼゼロを示す必要がある。
これらの要件は、最も極端な状態でのシステムの振舞いが予測可能、及びフェールセイフであるように、ほぼ完全なシステムモデリング及び検証の要件と組み合わされなければならない。
結果として、自動車分野での複雑なシステム・オン・チップ(System-On-Chip)の使用は、消費者及び通信のアプリケーションと比べて、制限されている。
したがって、より短時間かつ最高の信頼度で、システム設計者による、さらに複雑なECU(Embedded Computational Unit:埋込計算装置)の設計を補助することができる、設計プラットホームを持つことの重要性は明らかである。一般に、設計プラットホームに対する最重要要件は、以下の能力である:
‐ ハードウェア及びソフトウェアの標準化(standardization)を可能にする;
‐ 顧客の要求に順応性がある;
‐ 良好に規定されたフローで、クリーンコード及びスクリプト(clean codes & script)を生成する;
‐ オペレーティングシステムと容易にリンク可能である;
‐ サブブロック及びカスタムブロックの簡単な検証が可能である;
‐ アップグレードが可能である。
また、特に自動車アプリケーションに対しては、以下のことが重要である:
‐ 迅速で簡単な方法によるスケーラビリティ(scalability);
‐ 詳細な検証を提供し、さらに検証のカスタマイズを可能にする;
‐ 前段階(設計及び検証の双方)での欠陥に対して強健であり、欠陥注入(fault injection)を可能にする。
ここで、以下の記述のより良い理解を可能にするため、欠陥に対する強健さに関係した若干の定義を述べておく。
システムの加えられたサービスが、指定されたサービスから逸脱していることを一般に「故障」と呼ぶ。故障を導きやすいシステム部分状態の部分を「エラー」と呼ぶ。エラーの現象論的原因を「欠陥」と呼ぶ。「システムの信頼性」は、サービスを信頼することに正当性がある、加えられたサービスの品質と定義される。
信頼性は、以下の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から知られている。機能的比較モジュールは、第1出力が第2出力にマッチしない場合、欠陥を検出するために、第1処理装置の第1出力と第2処理装置の第2出力を比較するよう、第1処理装置及び第2処理装置に結合されている。機能的比較は、出力の認証信号の分析により実行される。認証信号は、CPUの内容の限られた可視性だけが利用可能となるよう、アイドルサイクルで計算されるか、又はテストシーケンスの結果として得られるか、又はCPU自体の外部アドレスとデータバスとに基づいて決定される。これは、欠陥カバー及びメモリ占有の観点から効率が悪い認証信号、及びエラー検出のより大きな待ち時間を頻繁にもたらしてしまう。
特許文献2で述べられているように、二重冗長性技術は、もちろん回路サイズ(少なくとも2倍)の大きな増加、及び生産コストのさらに大きな増加を含む。さらに性能は、より遅いクロック、増加されたゲートカウント、及び冗長性ソフトウェア含有の必要性により影響を受ける。
動的冗長性の技術もまた、プロセッサ、及び、プロセッサの不完全な振舞いを特定可能な欠陥検知器を必要とするのみであることが知られている。こうした技術は、コンピュータ資源のより高度な利用を許容してはいるが、良好な欠陥のカバーを達成するのに必要な計算処理が膨大となり、待ち時間をより長くしてしまう。この場合、最も一般的な解決策は、監視、又は、簡単な一貫性チェックのみを計算して、データ及びアドレスバスをモニターする、非常に簡単な欠陥検知器から成る。他の既知の解決策では、簡単な外部のコントローラと相互作用して、CPU自体は信頼性問題の一部を扱うに留まることである:特許文献3では、マイクロコンピュータ及びモニタモジュールが開示されている。モニタモジュールは、マイクロコンピュータのシーケンス制御を実行する、ゲートアレイとして構成されているのが好ましい。モニタモジュールは、この処理結果の比較から、マイクロコンピュータの正しい、又は欠陥のある動作を決定する。
また、例えば、ソフトウェアレベルのみでの冗長性を導入した特許文献4の解決策が知られている。
米国特許出願第2002/00777882号 ドイツ特許出願第DE 19933086A1号明細書 米国特許第5,436,837号明細書 米国特許第5,880,568号明細書
しかしながら、こうした解決策は、欠陥検出タスクにより、マイクロプロセッサ性能に大きな影響を与えることになる。
したがって、本発明の目的は、コンピュータ資源及び回路サイズを最適化し、完全な信頼性を実現したマイクロコントローラを提供することである。
本発明によると、この目的は、請求項で詳述されている特徴を有する信頼性マイクロコントローラにより達成される。本発明はまた、信頼性マイクロコントローラを設計するための対応する方法のみならず、ディジタルコンピュータのメモリへ直接ロード可能で、製品がコンピュータで実行される際に本発明の方法を実行するソフトウェアコード部分を含む、コンピュータプログラム製品に関連している。
本発明に従う解決策は、実質的に、中央演算処理装置の動作を有効にする欠陥許容性処理装置を含むマイクロコントローラを提供する。欠陥許容性処理装置はまた、適切なインタフェース、及び欠陥許容性ハードウェアブロックを通して、チップ上に分配する欠陥許容性検出方法を実装する。また、欠陥許容性処理装置、インタフェース、及びハードウェアブロックを含むシステムの設計方法も提供されている。
従来技術の構成と比較すると、提案された解決策は、チップ上に要する領域オーバーヘッドを減少させ、中央演算処理装置内の欠陥の低い待ち時間制御を可能にし、さらにシステム・オン・チップ及びユーザの必要性に従って、完全かつ柔軟にカスタマイズ可能である。
本発明のマイクロコントローラのブロック図である。 図1のマイクロコントローラの細部のブロック図である。 本発明のマイクロコントローラの、更なる実施例を表すブロック図である。 ハードウェア検証構成要素に関連する、図1のマイクロコントローラの詳細を示す図である。 図4に示すハードウェア検証構成要素の更なる詳細を示す図である。 図1のマイクロコントローラの設計手順に関係するブロックを示すブロック図である。 図6の設計手順で用いられる欠陥注入手順を表すブロック図を示す。
本願明細書に説明されているマイクロコントローラの基礎となる基本的なアイデアは、欠陥に対する強健なシステムを有するよう、実行時間及びコードディメンション(code dimensions)において妥協することなく、許容し得るハードウェアオーバーヘッド(hardware overhead)で、チップ上の複雑な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自身の欠陥に起因して、欠陥アラーム、及び、例外(exception)、プログラム再試行又はシステム停止などのイベント(events)を発生可能である。欠陥認識加速器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独立(CPU independent)と見なすことができる;しかしながら、これらはシステム構造全体に依存している;
‐ 変数妥当性/デルタ値、コード&フローの認証信号などの、メイン欠陥保護技術の実行に必要なモジュールである、メイン保護モジュール22。これらのモジュールはCPU独立と見なすことができる;
‐ 欠陥認識加速器/CPUインタフェースモジュール24からのデータを処理し、メイン保護モジュールとデータ交換をするのに必要なモジュールである、CPU総称モジュール23。CPU総称モジュール23は、僅かにCPU依存(CPU dependent)である。すなわち、基本的アルゴリズムは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/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から外界への全てのデータ転送を管理する、デバッグ・イフマネージャモジュール(Debug-If Manager Module)。
‐ 欠陥認識加速器11と欠陥認識メモリ12との間の、全ての相互作用メモリを管理する、欠陥認識加速器・メモリマネージャモジュール;
‐ 独立クロックソースにより与えられるクロック監視装置を含む、クロックスーパバイザモジュール。一例として、このモジュールは、欠陥認識アクセラレータ11の内部又は外部にあってもよい遅いクロック振動子の、1周期内に含まれるシステムクロック数を数えることにより実行可能であり、さらに、監視装置は、一定のタイムウインドウの間のメインクロックの劣化、すなわち、クロックが所定の安全レベルより速いか、又は遅いかを検出可能である。タイムアウトイベントは、グローバルスーパーバイザモジュールに対するこのモジュールの例外を発生させ、遅いクロックは、フェールセイフ状態へシステムを駆動する安全状態モジュールの時間を計るのに使用される;
‐ 外部パワーサプライレベル検出器、及びグローバルスーパーバイザモジュールから、共に安全なパワーアップ又はパワーダウンの必要性を指定する信号を受信する、スケジューラにより構成されたモジュールである、パワースーパバイザモジュール。使用可能になると、これは安全状態モジュールを始動させ、その後、システムのリセット及びクロックをスイッチオン(パワーアップ:power-up)し、又はスイッチオフ(パワーダウン:power-down)する安全な手順を提供する。スイッチオフの間も、このモジュールは、外部第2電源装置を作動させることが可能である。
メイン防護モジュール22は、以下を含む:
‐ アプリケーションにより用いられる重要な変数のコピーを作り、レジスタからメモリへの、又はメモリからレジスタへの、可視データ転送(ロード/ストアインストラクション:Load/Store instruction)に基づき、こうした変数をアップデートする、シャドウ変数モジュール。シャドウ変数モジュールは、レジスタ転送へのメモリの不一致を検出する。不一致が検出されると、グローバルスーパーバイザモジュール、安全状態モジュール、及びハードウェア又はソフトウェアのいずれかのデータ再試行モジュールに対する例外が発生する。シャドウ変数モジュールは、保護される変数を選択するソフトウェアを通して構成可能である;
‐ レジスタからメモリへの、又はメモリからレジスタへの、可視データ転送(ロード/ストアインストラクション)に基づき、所与の変数(妥当性絶対値、デルタ値、及び文脈値)に対する妥当性値をチェックするモジュールである、妥当性変数モジュール。不一致が検出されると、グローバルスーパーバイザモジュール、及び安全状態モジュールに対する例外が発生する。妥当性可変モジュールは、保護される変数を選択し、妥当性値を評価するソフトウェアを通して構成可能である;
‐ 欠陥認識加速器コンパイラ111により、コンパイル時に計算されたコード及びフロー認証信号に基づき、欠陥認識メモリ12に格納されるか、又はユーザコードメモリ内に埋め込まれ、さらに、ランタイムインストラクションコードを用いてそれらのモジュール自体によりランタイムに計算されたコード及びフロー認証信号に基づくモジュールである、コード&フロー認証信号モジュール。このモジュールは、CPUプログラムフローにおける欠陥を検出可能である。さらにモジュールは、それらがCPUコア51にロードされる際、インラインリテラル内の欠陥を検出可能である。不一致が検出されると、グローバルスーパーバイザモジュール、安全状態モジュール、及びプログラム再試行モジュールに対する例外が発生する;
‐ ソフトウェア信号により、又はグローバルスーパーバイザモジュールにより、又は上述の他のモジュールによりトリガーされると、システムを安全な状態に導く、すなわち、変数に安全な値を代入し、COU51を止め、及び欠陥認識加速器11のすべての周辺機器を安全な状態に置く信号を、欠陥認識加速器・周辺機器マネージャモジュールに送ることによる手順を開始することができる、安全状態モジュール。これはコンパイル時に構成される;
‐ CPUのレジスタバンクのコピーを作成し、及びメモリからレジスタへの可視データ転送(ロード/ストアインストラクション)に基づいて、さらに、欠陥認識加速器・コアインタフェースモジュールから利用可能な、ALU書込ポートへのアクセスに基づいてそれをアップデートする、シャドウレジスタモジュール。その後、シャドウレジスタモジュールは、メモリ転送への最終レジスタを内部コピーのコンテンツと比較して不一致を検出する。内部結果とALU書込ポート上の1つとの間に不一致が検出されると、グローバルスーパーバイザモジュール、安全状態モジュール、及びデータ再試行に対する例外が発生する。このモジュールは、保護されるレジスタを選択するソフトウェアにより構成可能である;
‐ レジスタからメモリへの可視データ転送(ロード/ストアインストラクション)に基づく、デルタ値、空間並びに時間文脈値に対する妥当性値をチェックするモジュールである、妥当性ロードストア装置(LSU)モジュール。不一致が検出されると、グローバルスーパーバイザモジュール、及び安全状態モジュールに対する例外が発生する。このモジュールは、保護されるアドレスを選択し、妥当性値を評価するソフトウェアで構成可能である;
‐ マルチプロセスアプリケーションで用いられる、タスクスーパバイザモジュール。メモリ可視データ転送(ロード/ストアインストラクション)へのレジスタに基づき、これは、様々なタスク、特に仮想アドレシングが用いられていないときに、メモリアクセス上でのチェックを実行する。より詳細には、タスクが、非共有へのアクセス、又はグローバルスーパーバイザモジュール、安全状態モジュール及びプログラム再試行モジュールのために生成された他のものに対して実行する場合;
‐ 欠陥検出以外に欠陥修正も必要であるときに用いられる、データ再試行モジュール。これは、シャドウ変数モジュール、又はシャドウレジスタモジュール、又は妥当性変数モジュールの結果に基づき、CPUポートを用いて、又はデータ再試行ソフトウェアモジュールと相互作用することにより、メモリ内の不完全な変数/レジスタの値を回復可能である;
‐ 欠陥検出以外に欠陥修正も必要であるときに用いられる、プログラム再試行モジュール。これは、コード&フロー認証信号モジュールの結果に基づき、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/TTPP装置、欠陥モデルなどのような自動車のシステム状況のデータベース。
こうした設計手順は、自動車システムのための設計フローと容易に統合可能であり、結果として図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. 中央演算処理装置(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.のいずれかの方法を実行するソフトウェアコード部分を含んでいるコンピュータプログラム製品。
10 マイクロコントローラ
11 欠陥処理装置
12,13,14,15,16 欠陥認識周辺機器
21,22,23,24 モジュール
50,51 中央演算処理装置
53 システムバス
55 アプリケーション特定周辺機器
61 インタフェース
62 周辺機器
70 ベーシックシステム構成要素
112 初期化モジュール
116 オペラティブシステム
117 ユーザアプリケーションコード
401,402,404〜408 モジュール
403 テストジェネレータ
511 第2欠陥処理装置
551 第2処理装置
601〜605 モジュール

Claims (19)

  1. 中央演算処理装置コア(51)を有する中央演算処理装置(50)と、システムバス(53)と、インタフェース(61)及び周辺機器(62)を含む1つ又は複数の機能部分(61、62)と、前記中央演算処理装置(50)の動作の妥当性確認を実行するように構成された欠陥処理装置(11)とを備えている信頼性のあるマイクロコントローラであって、
    前記欠陥処理装置(11)は、前記中央演算処理装置コア(51)とは異なるものであって、前記中央演算処理装置コア(51)の外部にあり、
    前記欠陥処理装置(11)は、システムランタイム中の動作の少なくとも一部をオンラインで実行する少なくとも1つのモジュール(22、23、24)を有していて、該モジュールは前記中央演算処理装置コア(51)の動作の妥当性確認を実行して該マイクロコントローラの動作の信頼性を実現するように構成され、
    前記欠陥処理装置(11)は、前記中央演算処理装置コア(51)とのインタフェースモジュールを備えていて、該インタフェースモジュールは、前記中央演算処理装置のALU書込ポートへのアクセスを可能にすることにより、又は埋込トレースモジュールインタフェースにより、前記欠陥処理装置(11)と中央演算処理装置コア(51)・埋込トレースモジュールインタフェースとのインタフェースをとることを特徴とするマイクロコントローラ。
  2. 前記少なくとも1つのモジュールは、前記ALU書込ポートを介して前記インタフェースモジュールにより、前記中央演算処理装置コア(51)のレジスタバンクのコピーを作成するシャドウレジスタモジュールを備えていて、
    前記欠陥処理装置(11)は、前記中央演算処理装置コア(51)のALU/MACの縮小バージョンを備えていることを特徴とする請求項1に記載のマイクロコントローラ。
  3. 該マイクロコントローラは、動作の少なくとも一部をオンラインで実行するシステムモジュール(21)を備えていて、
    前記システムモジュール(21)は、該マイクロコントローラ(10)の前記機能部分(61、62)の動作の妥当性確認を実行するように構成され、
    かつ、前記システムモジュール(21)は、前記欠陥処理装置(11)の他の内部モジュールを管理するグローバルスーパーバイザモジュールを備えていることを特徴とする請求項1に記載のマイクロコントローラ。
  4. 前記システムモジュール(21)は、第2の欠陥処理装置(511)又は外部監視装置と情報を交換するように構成された欠陥認識加速器インタフェース装置を備えていることを特徴とする請求項3に記載のマイクロコントローラ。
  5. 前記欠陥認識加速器インタフェース装置は、欠陥認識加速器と前記CPUコアETMインタフェースとのインタフェースをとる埋込トレースモジュール(ETM)インタフェースを備えていることを特徴とする請求項4に記載のマイクロコントローラ。
  6. 前記欠陥処理装置(11)は、
    − データのシャドウデータ化、
    − コード及びフローの認証信号、
    − データ処理の妥当性チェック、
    − アドレスの妥当性チェック、
    − ALUの同時インテグリティチェック、及び
    − 同時モード/割込チェック
    からなる一組の欠陥保護技術群のうちの1つ又は複数のものを用いて、前記中央演算処理装置コア(51)の動作の妥当性確認を実行することを特徴とする請求項1〜5のいずれか1つに記載のマイクロコントローラ。
  7. 前記中央演算処理装置コア(51)の動作の妥当性確認を実行する前記少なくとも1つのモジュール(22、23、24)は、前記欠陥保護技術を実行するように構成されたメイン保護モジュール(22)を備えていることを特徴とする請求項1〜6のいずれか1つに記載のマイクロコントローラ。
  8. 前記メイン保護モジュール(22)は、
    − アプリケーションにより用いられる重要な変数のコピーを作成するように構成されたシャドウ変数モジュール、
    − 所与の変数のための妥当性の値をチェックするように構成された妥当性変数モジュール、
    − コード認証信号に基づいて、CPUプログラムフロー内の欠陥を検出するように構成されたコード・フロー認証信号モジュール、
    − システムを安全状態に導くように構成された安全状態モジュール、
    − CPUレジスタセットのコピーを作成するように構成されたシャドウレジスタモジュール、
    − 所与のアドレスに対する妥当性の値をチェックするように構成された妥当性ロード/ストア装置モジュール、
    − 種々のタスクによりなされる、妥当性メモリアクセスをチェックする、マルチプロセスアプリケーションのためのタスクスーパバイザモジュール、
    − メモリ内の不完全な変数/レジスタ中の値を回復することにより欠陥修正を実行するように構成されたデータ再試行モジュール、及び
    − CPUの状態及びプログラムカウンタを回復することにより欠陥修正を実行するように構成されたプログラム再試行モジュール、
    からなる一組のモジュール群のうちの1つ又は複数のものを備えていることを特徴とする請求項7に記載のマイクロコントローラ。
  9. 前記中央演算処理装置コア(51)の動作の妥当性確認を実行する前記少なくとも1つのモジュール(22、23、24)は、前記中央演算処理装置コア(51)及び前記システムバス(53)とデータを交換するように構成されたCPUインタフェースモジュール(24)を備えていることを特徴とする請求項1〜8のいずれか1つに記載のマイクロコントローラ。
  10. 前記CPUインタフェースモジュール(24)は、前記欠陥処理装置(11)と中央演算処理装置コア(51)整数コアの間のインタフェースを備えていて、該インタフェースは、拡張されたハードウェア可視性を確実化するために、前記整数コアとの専用バス接続を実行することを特徴とする請求項9に記載のマイクロコントローラ。
  11. 前記中央演算処理装置コア(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に記載のマイクロコントローラ。
  12. 二重冗長性システムを実現するために、前記中央演算処理装置コア(51)と、動作の妥当性確認を実行するように構成された前記欠陥処置総理(11)とが、第2の処理ユニット(511)と該第2の処理ユニット(511)の動作の妥当性確認を実行するように構成された第2の欠陥処理装置(511)とに接続されていることを特徴とする請求項1に記載のマイクロコントローラ。
  13. 欠陥認識周辺機器(12、13、14、15、16)がメモリモジュール(12)を備えていることを特徴とする請求項1〜12のいずれか1つに記載のマイクロコントローラ。
  14. 欠陥認識周辺機器(12、13、14、15、16)が欠陥許容メモリインタフェース(13)を備えていることを特徴とする請求項1〜11のいずれか1つに記載のマイクロコントローラ。
  15. 欠陥認識周辺機器(12、13、14、15、16)が、該マイクロコントローラ(10)のシステムバスを監視するバスインタフェースコントローラ(14)を備えていることを特徴とする請求項1〜14のいずれか1つに記載のマイクロコントローラ。
  16. 欠陥認識周辺機器(12、13、14、15、16)が、アプリケーション特定周辺機器(55)に関連付けられた簡素化されたプロセッサ(16)を備えていることを特徴とする請求項1〜15のいずれか1つに記載のマイクロコントローラ。
  17. 該マイクロコントローラの動作時に、前記欠陥処理装置(11)が、オンライン欠陥許容動作を実行することを特徴とする、請求項1〜16のいずれか1つに記載のマイクロコントローラにおける欠陥を検出する方法であって、
    欠陥が検出されたときに欠陥アラーム及び欠陥イベントを生成することを特徴とする方法。
  18. 前記オンラインの欠陥許容動作が、
    − データのシャドウデータ化、
    − コード及びフローの認証信号、
    − データ処理の妥当性チェック、
    − アドレスの妥当性チェック、
    − ALUの同時インテグリティチェック、及び
    − 同時モード/割込チェック
    からなる一組の欠陥保護技術群のうちの1つ又は複数のものを実行することを特徴とする請求項17に記載の方法。
  19. コンピュータのメモリに直接ロードすることができるコンピュータプログラムであって、
    該コンピュータプログラムがコンピュータ内で実行されているときに、請求項17又は18に記載の方法を実行するソフトウェアコード部分を備えていることを特徴とするコンピュータプログラム。
JP2011248216A 2003-07-11 2011-11-14 信頼性のあるマイクロコントローラ並びにその設計方法及びそのためのコンピュータプログラム Active JP5631848B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP03015860A EP1496435A1 (en) 2003-07-11 2003-07-11 Dependable microcontroller, method for designing a dependable microcontroller and computer program product therefor
EP03015860-4 2003-07-11

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2004204737A Division JP4999262B2 (ja) 2003-07-11 2004-07-12 信頼性マイクロコントローラ、マイクロコントローラにおける欠陥検出方法、マイクロコントローラ用欠陥許容システム設計方法、およびコンピュータプログラム製品

Publications (2)

Publication Number Publication Date
JP2012074057A true JP2012074057A (ja) 2012-04-12
JP5631848B2 JP5631848B2 (ja) 2014-11-26

Family

ID=33442788

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2004204737A Expired - Fee Related JP4999262B2 (ja) 2003-07-11 2004-07-12 信頼性マイクロコントローラ、マイクロコントローラにおける欠陥検出方法、マイクロコントローラ用欠陥許容システム設計方法、およびコンピュータプログラム製品
JP2011248216A Active JP5631848B2 (ja) 2003-07-11 2011-11-14 信頼性のあるマイクロコントローラ並びにその設計方法及びそのためのコンピュータプログラム

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2004204737A Expired - Fee Related JP4999262B2 (ja) 2003-07-11 2004-07-12 信頼性マイクロコントローラ、マイクロコントローラにおける欠陥検出方法、マイクロコントローラ用欠陥許容システム設計方法、およびコンピュータプログラム製品

Country Status (3)

Country Link
US (1) US7472051B2 (ja)
EP (1) EP1496435A1 (ja)
JP (2) JP4999262B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016134049A (ja) * 2015-01-21 2016-07-25 日立オートモティブシステムズ株式会社 車両制御装置
KR20180054746A (ko) * 2016-01-15 2018-05-24 구글 엘엘씨 애플리케이션 컨테이너를 사용한 코드 및 종속 데이터의 전달 관리

Families Citing this family (74)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10148032A1 (de) * 2001-09-28 2003-04-24 Bosch Gmbh Robert Verfahren zum Überprüfen eines Rechnerkerns eines Mikroprozessors oder eines Mikrocontrollers
WO2004046924A1 (en) * 2002-11-18 2004-06-03 Arm Limited Processor switching between secure and non-secure modes
JP4348950B2 (ja) * 2003-01-23 2009-10-21 株式会社デンソー 電子制御装置
DE602004031562D1 (de) * 2004-04-30 2011-04-07 Research In Motion Ltd System und verfahren zur sicherung von daten
GB0412611D0 (en) * 2004-06-05 2004-07-07 Ibm Probabilistic regression suites for functional verification
RU2006123259A (ru) * 2004-10-14 2008-01-20 Лаготек Корпорейшн (Us) Распределенные беспроводные системы автоматизации домашних и коммерческих электрических сетей
US7321989B2 (en) * 2005-01-05 2008-01-22 The Aerospace Corporation Simultaneously multithreaded processing and single event failure detection method
US20070226572A1 (en) * 2005-11-07 2007-09-27 Ming Zhang Soft error rate analysis system
US8656191B2 (en) 2005-12-23 2014-02-18 Nagravision S.A. Secure system-on-chip
EP1802030A1 (en) * 2005-12-23 2007-06-27 Nagracard S.A. Secure system-on-chip
EP1811415A1 (en) * 2005-12-23 2007-07-25 Nagracard S.A. Secure system-on-chip
DE102006001872B4 (de) * 2006-01-13 2013-08-22 Infineon Technologies Ag Vorrichtung und Verfahren zum Überprüfen einer Fehlererkennungsfunktionalität einer Datenverarbeitungseinrichtung auf Angriffe
DE102006001873B4 (de) * 2006-01-13 2009-12-24 Infineon Technologies Ag Vorrichtung und Verfahren zum Überprüfen einer Fehlererkennungsfunktionalität einer Speicherschaltung
KR100686359B1 (ko) * 2006-04-20 2007-02-26 성균관대학교산학협력단 이씨유 임베디드 시스템을 위한 3차원 자동차 시뮬레이터시스템 및 시뮬레이션 방법
TW200745873A (en) * 2006-06-05 2007-12-16 Dmp Electronics Inc Dual computers for backup and being fault-tolerant system architecture
US7933696B2 (en) * 2006-08-31 2011-04-26 GM Global Technology Operations LLC Distributed arithmetic logic unit security check
DE102006045906A1 (de) * 2006-09-28 2008-04-17 Infineon Technologies Ag Modul mit einem Controller für eine Chipkarte
US20080120189A1 (en) * 2006-10-27 2008-05-22 Mci, Llc. Method and apparatus for providing workflow automation
JP4479743B2 (ja) * 2007-04-24 2010-06-09 株式会社デンソー ロールバック方法及び情報処理装置
DE602008005611D1 (de) 2007-08-16 2011-04-28 Nxp Bv System und verfahren zur bereitstellung von fehlerdetektionsfähigkeit
US8280940B2 (en) * 2007-10-22 2012-10-02 Himax Technologies Limited Data processing apparatus with shadow register and method thereof
US8509094B2 (en) * 2007-12-06 2013-08-13 Rambus Inc. Edge-based loss-of-signal detection
US8117512B2 (en) * 2008-02-06 2012-02-14 Westinghouse Electric Company Llc Failure detection and mitigation in logic circuits
US7890810B1 (en) * 2008-02-26 2011-02-15 Network Appliance, Inc. Method and apparatus for deterministic fault injection of storage shelves in a storage subsystem
DE102008022620A1 (de) * 2008-04-30 2009-11-05 Mtu Aero Engines Gmbh Triebwerkregelungssystem und Verfahren zur Qualifizierung der Komponenten des Triebwerksregelungssystems
US8091050B2 (en) * 2008-10-01 2012-01-03 International Business Machines Corporation Modeling system-level effects of soft errors
EP2350818A4 (en) * 2008-11-03 2013-07-10 Enginelab Inc SYSTEM AND METHOD FOR THE DYNAMIC CONSTRUCTION OF A BEHAVIOR MODEL IN A HARDWARE SYSTEM
US8775886B2 (en) * 2009-03-31 2014-07-08 Toyota Jidosha Kabushiki Kaisha Architecture for a self-healing computer system
EP2537091A4 (en) 2010-02-16 2014-08-06 Freescale Semiconductor Inc DATA PROCESSING METHOD, DATA PROCESSOR, AND APPARATUS COMPRISING DATA PROCESSOR
US8683178B2 (en) * 2011-01-21 2014-03-25 Apple Inc. Sharing a fault-status register when processing vector instructions
US8731765B2 (en) * 2011-06-28 2014-05-20 GM Global Technology Operations LLC Method and apparatus for fault detection in a torque machine of a powertrain system
US8949101B2 (en) 2011-10-12 2015-02-03 International Business Machines Corporation Hardware execution driven application level derating calculation for soft error rate analysis
US8868989B2 (en) 2012-07-12 2014-10-21 Freescale Semiconductor, Inc. System for testing error detection circuits
US8813004B1 (en) 2012-11-21 2014-08-19 Cadence Design Systems, Inc. Analog fault visualization system and method for circuit designs
US8683400B1 (en) * 2012-11-21 2014-03-25 Cadence Design Systems, Inc. System and method for fault sensitivity analysis of mixed-signal integrated circuit designs
US8996348B1 (en) 2012-11-21 2015-03-31 Cadence Design Systems, Inc. System and method for fault sensitivity analysis of digitally-calibrated-circuit designs
US9842014B2 (en) 2012-11-22 2017-12-12 Nxp Usa, Inc. Data processing device, method of execution error detection and integrated circuit
US8645897B1 (en) * 2013-01-07 2014-02-04 Freescale Semiconductor, Inc. Integrated circuit design verification system
US9275757B2 (en) * 2013-02-01 2016-03-01 Scaleo Chip Apparatus and method for non-intrusive random memory failure emulation within an integrated circuit
US8863050B1 (en) 2013-03-15 2014-10-14 Cadence Design Systems, Inc. Efficient single-run method to determine analog fault coverage versus bridge resistance
FR3005179B1 (fr) * 2013-04-25 2015-05-15 Oberthur Technologies Procede et systeme de simulation des effets d'une attaque sur un code informatique
CN104541250B (zh) 2013-08-20 2017-11-24 株式会社小松制作所 建筑机械用控制器
CN104583967B (zh) 2013-08-20 2016-08-24 株式会社小松制作所 建筑机械用控制器
GB2519545A (en) * 2013-10-24 2015-04-29 Ibm Determining a quality parameter for a verification environment
US8875077B1 (en) 2014-02-10 2014-10-28 Cadence Design Systems, Inc. Fault sensitivity analysis-based cell-aware automated test pattern generation flow
CN104021054A (zh) * 2014-06-11 2014-09-03 浪潮(北京)电子信息产业有限公司 服务器故障可视化侦测及处理方法、系统及可编程芯片
DE102014213922B4 (de) * 2014-07-17 2020-02-20 Continental Automotive Gmbh Fahrzeug-Infotainmentsystem
US20160062331A1 (en) * 2014-08-27 2016-03-03 Freescale Semiconductor, Inc. Apparatus and method for validating the integrity of control signals in timing domain
US9823983B2 (en) 2014-09-25 2017-11-21 Nxp Usa, Inc. Electronic fault detection unit
ITTO20140902A1 (it) 2014-10-31 2016-05-01 Intel Corp Procedimento per misurare l'effetto di guasti hardware microscopici in applicazioni ad elevata complessità implementate in un sistema elettronico hardware, relativo sistema e prodotto informatico
US9864583B2 (en) * 2014-11-14 2018-01-09 Cavium, Inc. Algorithm to derive logic expression to select execution blocks for programmable network devices
US9330227B1 (en) 2014-11-14 2016-05-03 Cavium Inc. Testbench builder, system, device and method including a dispatcher
KR20160098929A (ko) * 2015-02-11 2016-08-19 한국전자통신연구원 시스템 개발을 위한 시스템 가용도 측정장치 및 그 방법
US10282315B2 (en) 2015-03-27 2019-05-07 Cavium, Llc Software assisted hardware configuration for software defined network system-on-chip
US9372772B1 (en) * 2015-03-27 2016-06-21 Cavium, Inc. Co-verification—of hardware and software, a unified approach in verification
KR102251991B1 (ko) 2015-05-14 2021-05-17 한국전자통신연구원 결함 주입 및 결함 감내 분석을 위한 방법 및 장치
EP3110061B1 (de) * 2015-06-23 2020-03-11 TTTech Auto AG Verteiltes echtzeitcomputersystem sowie verfahren zur erzwingung des fail-silent-verhaltens eines verteilten echtzeitcomputersystems
US10818638B2 (en) * 2015-11-30 2020-10-27 Pezy Computing K.K. Die and package
WO2017094092A1 (ja) 2015-11-30 2017-06-08 株式会社PEZY Computing ダイ及びパッケージ
KR102018541B1 (ko) * 2016-03-09 2019-09-06 한국전자통신연구원 코어 컨트롤러를 포함하는 시스템 온 칩 및 그것의 코어 관리 방법
US10204698B2 (en) 2016-12-20 2019-02-12 Ampere Computing Llc Method to dynamically inject errors in a repairable memory on silicon and a method to validate built-in-self-repair logic
US10331529B2 (en) 2017-03-15 2019-06-25 International Business Machines Corporation Maintaining system reliability in a CPU with co-processors
KR102020994B1 (ko) * 2017-06-09 2019-09-16 슈어소프트테크주식회사 결함 주입 테스트 방법 및 장치
US11408934B2 (en) 2017-12-22 2022-08-09 Nvidia Corporation In system test of chips in functional systems
US10495691B2 (en) * 2018-02-09 2019-12-03 Nxp Usa, Inc. System architecture method and apparatus for adaptive hardware fault detection with hardware metrics subsystem
JP7123573B2 (ja) * 2018-02-28 2022-08-23 株式会社小松製作所 周辺監視装置、作業機械、周辺監視の制御方法及び表示装置
US10922203B1 (en) * 2018-09-21 2021-02-16 Nvidia Corporation Fault injection architecture for resilient GPU computing
US10831595B1 (en) 2019-05-31 2020-11-10 International Business Machines Corporation Performing error detection during deterministic program execution
CN110308732B (zh) * 2019-07-25 2023-08-04 北京智行者科技股份有限公司 自动驾驶控制器的故障检测方法及自动驾驶控制器
CN111176927A (zh) * 2019-11-26 2020-05-19 中盈创信(北京)科技有限公司 功能板卡的检测系统和检测方法
US11422185B2 (en) 2020-06-30 2022-08-23 Nxp Usa, Inc. System and method for testing critical components on system-on-chip
US20220100645A1 (en) * 2020-09-29 2022-03-31 Amazon Technologies, Inc. Automated testing of systems and applications
US11175340B1 (en) 2021-02-15 2021-11-16 Nxp B.V. System and method for managing testing and availability of critical components on system-on-chip
EP4275123A1 (en) * 2021-03-22 2023-11-15 Huawei Technologies Co., Ltd. Program flow monitoring for gateway applications

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55157042A (en) * 1979-05-28 1980-12-06 Toshiba Corp Information processor
JPH03228138A (ja) * 1990-02-01 1991-10-09 Nec Corp 割り込み処理方式
JPH0777102A (ja) * 1993-09-03 1995-03-20 Matsushita Electric Ind Co Ltd 車載用電子制御装置
JPH0863374A (ja) * 1994-08-22 1996-03-08 Toshiba Corp トレース機能内蔵型lsi
JPH09305223A (ja) * 1996-04-19 1997-11-28 Honda Motor Co Ltd 車載用電子制御ユニット
JPH1069399A (ja) * 1996-08-28 1998-03-10 Nec Corp マイクロコンピュータ
JPH10334043A (ja) * 1996-12-31 1998-12-18 Compaq Computer Corp 制御及び割り込みラインのマスキングによるpci及びeisaマスタの分離
JPH1185554A (ja) * 1997-09-12 1999-03-30 Nec Corp 実数演算方式
JP2001060160A (ja) * 1999-08-23 2001-03-06 Mitsubishi Heavy Ind Ltd 制御装置のcpu二重化システム
JP2002236595A (ja) * 2001-02-09 2002-08-23 Fujitsu Ten Ltd 電子機器ならびにそのデバッグ支援装置および方法
JP2002335231A (ja) * 2001-05-09 2002-11-22 Nec Corp 通信回線ボード検査システム
US20030046666A1 (en) * 2001-08-11 2003-03-06 Harry Siebert Program-controlled unit

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4912707A (en) * 1988-08-23 1990-03-27 International Business Machines Corporation Checkpoint retry mechanism
US5781753A (en) * 1989-02-24 1998-07-14 Advanced Micro Devices, Inc. Semi-autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for speculative and out-of-order execution of complex instructions
JPH03256134A (ja) * 1990-03-06 1991-11-14 Koufu Nippon Denki Kk ベクトル演算器のチェック回路
US5371742A (en) * 1992-08-12 1994-12-06 At&T Corp. Table driven fault recovery system with redundancy and priority handling
US6233702B1 (en) * 1992-12-17 2001-05-15 Compaq Computer Corporation Self-checked, lock step processor pairs
US5574927A (en) * 1994-03-25 1996-11-12 International Meta Systems, Inc. RISC architecture computer configured for emulation of the instruction set of a target computer
US5557737A (en) * 1994-06-13 1996-09-17 Bull Hn Information Systems Inc. Automated safestore stack generation and recovery in a fault tolerant central processor
US6105148A (en) * 1995-06-16 2000-08-15 Lucent Technologies Inc. Persistent state checkpoint and restoration systems
US5963167A (en) * 1996-03-13 1999-10-05 California Institute Of Technology Analyzing system for global positioning system and general satellite tracking
US6081864A (en) * 1997-07-31 2000-06-27 Advanced Micro Devices, Inc. Dynamic configuration of a device under test
US6170078B1 (en) * 1998-02-27 2001-01-02 International Business Machines Corporation Fault simulation using dynamically alterable behavioral models
JPH11338731A (ja) * 1998-05-21 1999-12-10 Oki Electric Ind Co Ltd データ処理装置
US6249893B1 (en) * 1998-10-30 2001-06-19 Advantest Corp. Method and structure for testing embedded cores based system-on-a-chip
JP2000158724A (ja) * 1998-11-30 2000-06-13 Fuji Xerox Co Ltd 画像処理装置、画像処理方法および記録媒体
US6981176B2 (en) * 1999-05-10 2005-12-27 Delphi Technologies, Inc. Secured microcontroller architecture
US6421790B1 (en) * 1999-05-10 2002-07-16 Delphi Technologies, Inc. Method and circuit for analysis of the operation of a microcontroller using signature analysis of data and instructions
US6691250B1 (en) * 2000-06-29 2004-02-10 Cisco Technology, Inc. Fault handling process for enabling recovery, diagnosis, and self-testing of computer systems
JP2002184948A (ja) * 2000-12-12 2002-06-28 Hitachi Ltd 半導体集積回路装置の製造方法
TW591378B (en) * 2001-02-22 2004-06-11 Hitachi Ltd Memory test method, information recording medium and semiconductor integrated circuit
US6819327B2 (en) * 2001-05-18 2004-11-16 Sun Microsystems, Inc. Signature analysis registers for testing a computer graphics system
JP2003156542A (ja) * 2001-11-22 2003-05-30 Hitachi Ltd テスト方法および半導体装置
US7137020B2 (en) * 2002-05-17 2006-11-14 Sun Microsystems, Inc. Method and apparatus for disabling defective components in a computer system
WO2004046924A1 (en) * 2002-11-18 2004-06-03 Arm Limited Processor switching between secure and non-secure modes
DE10317650A1 (de) * 2003-04-17 2004-11-04 Robert Bosch Gmbh Programmgesteuerte Einheit und Verfahren
US7197669B2 (en) * 2003-07-30 2007-03-27 Via Technologies, Inc. Method and circuit for command integrity checking (CIC) in a graphics controller
US7328376B2 (en) * 2003-10-31 2008-02-05 Sun Microsystems, Inc. Error reporting to diagnostic engines based on their diagnostic capabilities

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55157042A (en) * 1979-05-28 1980-12-06 Toshiba Corp Information processor
JPH03228138A (ja) * 1990-02-01 1991-10-09 Nec Corp 割り込み処理方式
JPH0777102A (ja) * 1993-09-03 1995-03-20 Matsushita Electric Ind Co Ltd 車載用電子制御装置
JPH0863374A (ja) * 1994-08-22 1996-03-08 Toshiba Corp トレース機能内蔵型lsi
JPH09305223A (ja) * 1996-04-19 1997-11-28 Honda Motor Co Ltd 車載用電子制御ユニット
JPH1069399A (ja) * 1996-08-28 1998-03-10 Nec Corp マイクロコンピュータ
JPH10334043A (ja) * 1996-12-31 1998-12-18 Compaq Computer Corp 制御及び割り込みラインのマスキングによるpci及びeisaマスタの分離
JPH1185554A (ja) * 1997-09-12 1999-03-30 Nec Corp 実数演算方式
JP2001060160A (ja) * 1999-08-23 2001-03-06 Mitsubishi Heavy Ind Ltd 制御装置のcpu二重化システム
JP2002236595A (ja) * 2001-02-09 2002-08-23 Fujitsu Ten Ltd 電子機器ならびにそのデバッグ支援装置および方法
JP2002335231A (ja) * 2001-05-09 2002-11-22 Nec Corp 通信回線ボード検査システム
US20030046666A1 (en) * 2001-08-11 2003-03-06 Harry Siebert Program-controlled unit

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSNB199700153001; 飯田哲也/他: 情報・通信マイクロコンピュータ辞典 第1版, 19860120, p.53, 丸善株式会社 *
JPN6014007706; 飯田哲也/他: 情報・通信マイクロコンピュータ辞典 第1版, 19860120, p.53, 丸善株式会社 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016134049A (ja) * 2015-01-21 2016-07-25 日立オートモティブシステムズ株式会社 車両制御装置
WO2016117402A1 (ja) * 2015-01-21 2016-07-28 日立オートモティブシステムズ株式会社 車両制御装置
US10394675B2 (en) 2015-01-21 2019-08-27 Hitachi Automotive Systems, Ltd. Vehicle control device
KR20180054746A (ko) * 2016-01-15 2018-05-24 구글 엘엘씨 애플리케이션 컨테이너를 사용한 코드 및 종속 데이터의 전달 관리
KR102057269B1 (ko) 2016-01-15 2020-01-22 구글 엘엘씨 애플리케이션 컨테이너를 사용한 코드 및 종속 데이터의 전달 관리

Also Published As

Publication number Publication date
JP4999262B2 (ja) 2012-08-15
JP2005050329A (ja) 2005-02-24
EP1496435A1 (en) 2005-01-12
US20050050387A1 (en) 2005-03-03
US7472051B2 (en) 2008-12-30
JP5631848B2 (ja) 2014-11-26

Similar Documents

Publication Publication Date Title
JP5631848B2 (ja) 信頼性のあるマイクロコントローラ並びにその設計方法及びそのためのコンピュータプログラム
JP2005050329A5 (ja)
Bernardi et al. Development flow for on-line core self-test of automotive microcontrollers
Al-Asaad et al. Online BIST for embedded systems
Hopkins et al. Debug support strategy for systems-on-chips with multiple processor cores
Bernardi et al. A new hybrid fault detection technique for systems-on-a-chip
Bellotti et al. How future automotive functional safety requirements will impact microprocessors design
Portela-García et al. On the use of embedded debug features for permanent and transient fault resilience in microprocessors
Kohn et al. Architectural concepts for fail-operational automotive systems
Mariani et al. A flexible microcontroller architecture for fail-safe and fail-operational systems
US8621273B2 (en) Enhanced scalable CPU for coded execution of SW in high-dependable safety relevant applications
Mariani et al. Fault-robust microcontrollers for automotive applications
Fruehling Delphi secured microcontroller architecture
Scherer et al. Trace and debug port based watchdog processor
Lari et al. Providing fault tolerance through invasive computing
Brewerton et al. Implementation of a Basic Single-Microcontroller Monitoring Concept for Safety Critical Systems on a Dual-Core Microcontroller
Lisboa et al. Online hardening of programs against SEUs and SETs
Floridia et al. Parallel software-based self-test suite for multi-core system-on-chip: Migration from single-core to multi-core automotive microcontrollers
Beckschulze et al. Fault handling approaches on dual-core microcontrollers in safety-critical automotive applications
Schneider et al. Basic single-microcontroller monitoring concept for safety critical systems
Mariani et al. Cost-effective approach to error detection for an embedded automotive platform
Brewerton et al. Practical use of autosar in safety critical automotive systems
Rajabzadeh et al. A dependable microcontroller-based embedded system
Reinbacher et al. A runtime verification unit for microcontrollers
Christoforakis et al. Runtime Adaptation of Embedded Tasks with A-Priori Known Timing Behavior Utilizing On-Line Partner-Core Monitoring and Recovery

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130415

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130514

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130812

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130815

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140225

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140623

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20140623

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20140815

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140916

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141008

R150 Certificate of patent or registration of utility model

Ref document number: 5631848

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250