(57)【要約】【課題】割り込み処理のリアルタイム性を阻害せずに設計の逸脱を検知し、また誤検知を抑制とする意図しない割り込み処理による不具合の影響解析支援技術を提供する。【解決手段】上記課題を解決するために、実行体の実行タイミングが設計想定から逸脱していることを判定し、監視状態に遷移する逸脱判定部１２９と、割り込み処理とは異なるタイミングで逸脱影響を検証するランタイム検証部１３０と、を備える。【選択図】図１８
2018160205.tif 000002
【特許請求の範囲】
【請求項１】
実行体の実行タイミングが設計想定から逸脱していることを判定し、監視状態に遷移する逸脱判定部と、割り込み処理とは異なるタイミングで逸脱影響を検証するランタイム検証部と、を備えること特徴とする車両制御装置。
【請求項２】
前記監視状態でエラーを検出した場合には、エラーコードと共に逸脱時の状態を保存する逸脱状態保存部を備えることを特徴とする請求項１記載の車両制御装置。
【請求項３】
前記実行体は、割り込み処理、タスク、回路処理の少なくともいずれかであることを特徴とする請求項１記載の車両制御装置。
【請求項４】
前記逸脱時の状態は、前記実行体の実行状況であることを特徴とする請求項１記載の車両制御装置。
【請求項５】
設計想定からの逸脱を、前記実行体の並列実行制約が記載された制約式からの充足性で判定する前記逸脱判定部で構成されることを特徴とする請求項１記載の車両制御装置。
【請求項６】
前記並列実行制約とは、同時に並列実行が許可されたタスクや割り込み処理の群であることを特徴とする請求項５記載の車両制御装置。
【請求項７】
前記並列実行制約には、同じコア内における前記並行実行制約も含まれることを特徴とする請求項５記載の車両制御装置。
【請求項８】
前記並列実行制約は、マルチコアにおける処理やＧＰＵの処理、ＦＰＧＡの処理も含まれることを特徴とする請求項５記載の車両制御装置。
【請求項９】
前記割り込み処理とは異なる前記タイミングとは、前記割り込み処理が実行されていない時間、または前記割り込み処理の最後の時間、または前記割り込み処理より低い優先度でランタイム検証部を実行することを特徴とする請求項１記載の車両制御装置。
【請求項１０】
各状態の状態遷移イベントの充足性で判定する前記逸脱判定部で構成されることを特徴とする請求項１記載の車両制御装置。
【請求項１１】
イベント発生の充足性判定を、状態遷移シミュレーションで判定する前記逸脱判定部であることを特徴とする請求項１０記載の車両制御装置。
【請求項１２】
監視対象のプログラムが状態遷移設計されたプログラムであることを特徴とする請求項１記載の車両制御装置。
【請求項１３】
逸脱判定と、割り込み処理とは異なるタイミングで逸脱影響を検証するランタイム検証とをＰＣで実行し、実行体の実行状態のログから設計の前記逸脱判定する設計検証支援環境。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、予期しない割り込み処理による不具合の要因分析を容易にする技術に関するものである。
【背景技術】
【０００２】
車両制御システムは電子化された車両制御装置を操作するＥＣＵ、すなわち電子制御装置（Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）で構成され、通信を介して連携することで車両を制御している。車両制御装置は制御対象の状態に基づいて、適切にアクチュエータを制御することにより、車両全体を制御している。制御退場の状態に基づいてリアルタイムに制御するためには、センサ起因のイベントによって電子制御処理を開始する割り込み処理を実施する必要がある。しかしながら、マイコンの予期せぬ遅延などにより、起きるはずのないタイミングで割り込み処理が発生し、不具合を発生させる可能性がある。割り込み処理起因の不具合は、システム状態の結果から要因を辿ることが難しいため、要因分析を容易化する技術が求められている。これに関する技術として、状態遷移設計からの逸脱を検知する技術がすでに公開されている。
【０００３】
下記の特許文献１では、意図しない割り込み処理が発生することによるシステムの不安定化防止を目的として、割り込み処理内で状態遷移シミュレーションを行い、設計からの逸脱を検知する。
【０００４】
下記の特許文献２では、意図しない割り込み処理が発生することによるシステムの不安定化防止を目的として、監視マイコンが対象マイコンの割り込み要求信号を監視し、信号に応じて状態遷移シミュレーションを行うことで、設計からの逸脱を検知する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第４８７４４４０号
【特許文献２】特許第４４９６２０５号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、上記の特許文献１では割り込み処理内で状態遷移シミュレーションを実施するために多大なオーバヘッドが生じ、割り込み頻度が高い車両制御装置には適用困難な課題がある。上記の特許文献２はこのオーバヘッドの課題を鑑みて、監視マイコンで状態遷移シミュレーションを実施する発明である。
【０００７】
しかしながら、制御ソフトの大規模化や複雑化、マルチコア化に伴い、状態遷移設計の正しさを維持することが難しくなってきており、上記の特許文献１と上記の特許文献２の双方とも、設計された状態遷移から逸脱した際に直ぐにエラーと判定するために、誤検知が多発する課題がある。
【０００８】
本発明は、上記のような課題を解決するためになされたものであり、割り込み処理のリアルタイム性を阻害せずに設計の逸脱を検知し、また誤検知を抑制とする意図しない割り込み処理による不具合の影響解析支援技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するため、本発明の車両制御装置は一例として、実行体の実行タイミングが設計想定から逸脱していることを判定し、監視状態に遷移する逸脱判定部と、割り込み処理とは異なるタイミングで逸脱影響を検証するランタイム検証部と、を備える。
【発明の効果】
【００１０】
本発明に係る車両制御装置によれば、割り込み処理内で設計からの逸脱のみを検知し、割り込み処理後に逸脱影響を検証するため、リアルタイム性を担保しつつ、誤検知を抑制可能となる。また、逸脱による影響が起こる場合には、エラーコードと共に逸脱時の状態を通知するため、不具合の要因特定を容易に行うことが可能になる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１に係る車両制御装置の構成図
【図２】制約式テーブルの例
【図３】並列実行状態の例
【図４】監視状態フラグの例
【図５】逸脱状態の例
【図６】実行体特性情報の例
【図７】初期化処理開始部の動作フロー
【図８】変換起動処理部の動作フロー
【図９】解析起動部の動作フロー
【図１０】解析処理部の動作フロー
【図１１】逆回転時処理部の動作フロー
【図１２】逆回転判定部の動作フロー
【図１３】実行開始表明部の動作フロー
【図１４】実行終了表明部の動作フロー
【図１５】逸脱判定部の動作フロー
【図１６】ランタイム検証部の動作フロー
【図１７】逸脱状態通知部の動作フロー
【図１８】実施の形態１に係る車両制御装置の動作シナリオ
【発明を実施するための形態】
【００１２】
本発明に係る車両制御装置は、実行体の起動が設計想定から逸脱していることを判定し、監視状態に遷移させ、監視状態では割り込み処理とは別のタイミングで逸脱影響を検証し、監視状態でエラーを検出した場合にはエラーコードと共に逸脱時の状態を通知するため、リアルタイム性を担保しつつ、誤検知を抑制し、不具合の要因特定を容易に行うことが可能になる。
以下、図面を用いて本発明の実施の形態について説明する。
【００１３】
＜実施の形態１＞
実施の形態１では本発明をエンジン制御システムのノック制御に適用したときを例題として解説する。
【００１４】
図１は、本発明の実施の形態１に関わる車両制御装置１の構成図である。車両制御装置１は演算装置（ＣＰＵ）１１、メモリ１２、割り込みコントローラ１４、ハードウェアタイマ１５、アナログデジタル（ＡＤ）変換コントローラ１６、Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｄｄｒｅｓｓ（ＤＭＡ）コントローラ１７、ネットワークコントローラ１８、クランク角センサ１９、アドバンストタイマユニット２０、入出力回路２１を備える。本実施の形態１では演算装置１１はシングルコアを想定しているが、これに限らない。例えばデュアルコアのようなマルチコアであっても良い。メモリ１２のプログラム領域には、初期化処理部１２１、変換起動処理部１２２、解析起動部１２３、解析処理部１２４、逆回転時処理部１２５、逆回転判定部１２６、実行開始表明部１２７、実行終了表明部１２８、逸脱判定部１２９、ランタイム検証部１３０、逸脱状態通知部１３１、オペレーティングシステム１３２を有し、データ記憶領域には、制約式テーブル１４１、並列実行状態１４２、監視状態フラグ１４３、逸脱状態１４４、実行体特性情報１４５を有する。ネットワークコントローラはＣｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  ＮｅｔｗｏｒｋやＦｌｅｘＲａｙ、Ｅｔｈｅｒｎｅｔのような車載ネットワークである。また自動車の外部と通信する無線通信であってもよい。
【００１５】
図２は制約式テーブル１４１の例である。実施の形態１のＩＤ１４１１は特定のシステム状態とソフト状態における制約式を識別可能なＩＤを示す。システム状態１４１２はシステムの状態を示す。例えば、実施の形態１では、１はエンジンが正常回転状態であることを示し、２はエンジンが逆回転状態であることを示す。ソフト状態１４１３はソフトの状態を示す。例えば、実施の形態１では、１はサンプリング状態、２は解析状態、３は待ち状態、４は停止状態を示す。制約式１４１４は制約式を示す。例えば、実施の形態１では、各々の実行体の実行の有無が制約式の異なるビットに対応する。例えば、クランク角センサ割り込みは４ビット目、解析起動は３ビット目、解析処理は２ビット目、逆転時処理部は１ビット目が該当している。実施の形態１における制約式は４ビットであるが、これに限らない。例えば、３２ビットでも良いし、６４ビットなどでも良い。
【００１６】
図３は平行実行状態１４２の例である。並列実行状態１４２１は現在の並列に実行されている実行体の状態を示す。
【００１７】
図４は監視状態フラグ１４３の例である。監視状態フラグ１４３１は現在が監視状態であるか否かを示す。例えば、実施の形態１では監視状態フラグ１４３１の０は監視状態でないことを示し、１は監視状態であることを示す。
【００１８】
図５は逸脱状態１４４の例である。状態１４４１は逸脱時の並列実行状態を示す。制約式ＩＤ１４４２は制約式テーブル１４１のＩＤ１４１１に対応する。実施の形態１では、制約式ＩＤ１４４２を制約式テーブル１４１のＩＤ１４１１に対応させているがこれに限らない。逸脱判定で使用した際の制約式が特定できれば良い。
【００１９】
図６は実行体特性情報１４５の例である。ＩＤ１４５１は実行体を識別可能なＩＤである。他への影響情報１４５２は、他の実行体に影響を与える可能性の有無を示す。実施の形態１では１は影響を与えることを示し、０は影響を与えないことを示す。影響を与えるとは、例えば、「ＩＤ１４５１が示す割り込み処理が、他のタスクと共有するグローバル変数に対して排他制御なしでｗｒｉｔｅする」ことを示すが、これに限らない。例えば、実行時間が伸びてしまい、リアルタイム性を阻害する場合や、ＤＭＡ転送でアドレス破壊を行ってしまう場合、強制リセットがかかってしまう場合などを、影響を与えると定義しても良い。
【００２０】
以降より、実施の形態１に係る動作フローの詳細を説明する。
図７は初期化処理部１２１の動作フローである。以下、図７の各ステップについて説明する。
（図７：ステップ１２１１）
初期化処理部１２１は、ハードウェアタイマ１５に対して、特定のタイマカウンタと等しくなった際にＡＤ変換コントローラ１６のＡＤ変換処理を起動するように設定する。
（図７：ステップ１２１２）
初期化処理部１２１は、ハードウェアタイマ１５のタイマカウンタがステップ１２１１で設定した値と等しくなった後に、自動で初期値０に戻る設定を行う。
（図７：ステップ１２１３）
初期化処理部１２１は、ＡＤコントローラ１６にＡＤ変換に関する設定と、変換終了後にＤＭＡ転送コントローラ１７の転送処理を起動する設定を実施する。
（図７：ステップ１２１４）
初期化処理部１２１は、ＤＭＡ転送コントローラ１７に転送に関する設定と転送後に解析処理部１２３を割り込み処理で起動する設定を実施する。
（図７：ステップ１２１５）
初期化処理部１２１は、アドバンストタイマユニット２０にクランク角センサ１９の特定のパルスで変換起動処理部１２２を割り込み処理で起動する設定を行う。
（図７：ステップ１２１６）
初期化処理部１２１は、アドバンストタイマユニット２０にクランク角センサ１９の特定のパルスで逆回転時処理部１２５を割り込み処理で起動する設定を行う。
（図７：ステップ１２１７）
初期化処理部１２１は、10ms周期で逆回転判定部１２６とランタイム検証部１３０を起動するようにオペレーティングシステム１３２に設定する。
（図７：ステップ１２１８）
初期化処理部１２１は、ネットワークコントローラ１８に通信の設定を行う。
【００２１】
図８は変換起動処理部１２２の動作フローである。以下、図８の各ステップについて説明する。
（図８：ステップ１２２１）
変換起動処理部１２２は０ｂ１０００を引数に実行開始表明部１２７を呼び出す。
（図８：ステップ１２２２）
変換起動処理部１２２はＩＤを示す１を引数に逸脱判定部１２９を呼び出す。
（図８：ステップ１２２３）
変換起動処理部１２２はハードウェアタイマ１５を起動させる。
（図８：ステップ１２２４）
変換起動処理部１２２は０ｂ１０００を引数に実行終了表明部１２８を呼び出す。
【００２２】
図９は解析起動部１２３の動作フローである。以下、図９の各ステップについて説明する。
（図９：ステップ１２３１）
解析起動部１２３は０ｂ０１００を引数に実行開始表明部１２７を呼び出す。
（図９：ステップ１２３２）
解析起動部１２３はＩＤを示す１を引数に逸脱判定部１２９を呼び出す。
（図９：ステップ１２３３）
解析起動部１２３はハードウェアタイマ１５を停止させ、転送カウンタをインクリメントする。
（図９：ステップ１２３４）
解析起動部１２３は転送カウンタが特定の回数以上であるかを判定する。判定結果が真である場合にはステップ１２３５に進み、偽である場合にはステップ１２３７に進む。
（図９：ステップ１２３５）
解析起動部１２３は転送カウンタを初期値０にセットする。
（図９：ステップ１２３６）
解析起動部１２３は解析処理部１２４を割り込み処理で起動する。
（図９：ステップ１２３７）
解析起動部１２３はハードウェアタイマ１５を起動させる。
（図９：ステップ１２３８）
解析起動部１２３は０ｂ０１００を引数に実行終了表明部１２８を呼び出す。
【００２３】
図１０は解析処理部１２４の動作フローである。以下、図１０の各ステップについて説明する。
（図１０：ステップ１２４１）
解析処理部１２４は０ｂ００１０を引数に実行開始表明部１２７を呼び出す。
（図１０：ステップ１２４２）
解析処理部１２４はＩＤを示す２を引数に逸脱判定部１２９を呼び出す。
（図１０：ステップ１２４３）
解析処理部１２４は解析処理を行う。
（図１０：ステップ１２４４）
解析処理部１２４は０ｂ００１０を引数に実行終了表明部１２８を呼び出す。
【００２４】
図１１は逆回転時処理部１２５の動作フローである。以下、図１１の各ステップについて説明する。
（図１１：ステップ１２５１）
逆回転時処理部１２５は０ｂ０００１を引数に実行開始表明部１２７を呼び出す。
（図１１：ステップ１２５２）
逆回転時処理部１２５はＩＤを示す４を引数に逸脱判定部１２９を呼び出す。
（図１１：ステップ１２５３）
逆回転時処理部１２５は逆回転時の処理を行う。例えば、逆回転時にはノック制御が不要になるため、処理を停止させて初期化を行う。
（図１１：ステップ１２５４）
逆回転時処理部１２５は０ｂ０００１を引数に実行終了表明部１２８を呼び出す。
【００２５】
図１２は逆回転判定部１２６の動作フローである。以下、図１２の各ステップについて説明する。
（図１２：ステップ１２６１）
逆回転判定部１２６はクランク角センサ１９の値に基づいて逆回転しているか否かを判定する。
【００２６】
図１３は実行開始表明部１２７の動作フローである。以下、図１３の各ステップについて説明する。
（図１３：ステップ１２７１）
実行開始表明部１２７は並列実行状態１４２と引数の実行状態フラグでＯＲをとり、並列実行状態１４２に上書きする。実施の形態１はシングルコアであるため、並列実行状態には並行に実行される実行体の状態しか保存されていないが、これに限らない。例えば、マルチコアの場合には並列に実行される実行体の状態を保存する。またＦＰＧＡやＧＰＧＰＵを使用する場合には、それらも実行体の状態として管理する。またこれらに限らない。
【００２７】
図１４は実行終了表明部１２８の動作フローである。以下、図１４の各ステップについて説明する。
（図１４：ステップ１２８１）
実行終了表明部１２８は並列実行状態１４２と引数の実行状態フラグでＸＯＲをとり、並列実行状態１４２に上書きする。
【００２８】
図１５は逸脱判定部１２９の動作フローである。以下、図１５の各ステップについて説明する。
（図１５：ステップ１２９１）
実行終了表明部１２９は逸脱状態１４４が初期値であるかを判定する。判定結果が真である場合にはステップ１２９２に進み、偽である場合には本動作フローを終了する。
（図１５：ステップ１２９２）
実行終了表明部１２９は並列実行状態１４２と引数のＩＤに対応する制約式１４１４をＯＲした結果が引数のＩＤに対応する制約式１４１４と等しくないことを判定する。判定結果が真である場合にはステップ１２９３に進み、偽である場合には本動作フローを終了する。
（図１５：ステップ１２９３）
実行終了表明部１２９は監視状態フラグ１４３に１をセットする。
（図１５：ステップ１２９４）
実行終了表明部１２９は並列実行状態を逸脱状態１４３の状態１４３１に、引数のＩＤを逸脱状態１４３の制約式ＩＤ１４３２に保存する。
【００２９】
図１６はランタイム検証部１３０の動作フローである。以下、図１６の各ステップについて説明する。
（図１６：ステップ１３０１）
ランタイム検証部１３０は逸脱状態１４３の状態１４３１と逸脱状態の制約式ＩＤ１４３２に基づいた制約式１４１４に対してＸＯＲを取ることで設計から逸脱した実行体ＩＤを特定する。
（図１６：ステップ１３０２）
ランタイム検証部１３０は実行体特性情報１４５において特定した実行体ＩＤが他に影響が与えるかを判定する。判定結果が真である場合にはステップ１３０３に進み、偽である場合にはステップ１３０４に進む。
（図１６：ステップ１３０３）
ランタイム検証部１３０は逸脱状態保存部１３１ａを呼び出す。
（図１６：ステップ１３０４）
ランタイム検証部１３０は監視状態フラグを０にセットすることで監視状態を解除する。
【００３０】
図１７は逸脱状態通知部１３１の動作フローである。以下、図１７の各ステップについて説明する。
（図１７：ステップ１３１１）
逸脱状態通知部１３１は不具合原因を示すエラーコードと共に逸脱状態１４３をネットワークに送信する。実施の形態１は逸脱状態をネットワークに送信することで通知を行っているがこれに限らない。例えば、逸脱状態をログとして保存し、整備時やソフトウェア更新時にログを参照しても良い。また無線通信で自動車の外部にあるサーバに通知しても良い。
【００３１】
図１８は実施の形態１における車両制御装置１の例となる動作シナリオである。システム状態はエンジンの状態を表し、ソフト状態はシステムの状態に応じた状態遷移を行う。実施の形態１では正回転の場合にはサンプリング、ノック解析、点火、サンプリングタイミング待ちを繰り返し、逆回転の場合には処理を停止する。クランク角割り込みは特定のパルスで起動され、パルスに応じて変換起動処理部１２２と逆回転時処理部１２５の適切な処理部を選択し、実行する。実施の形態１ではこのように選択を行うが、これに限らない。例えば同じタイミングで実行しても良い。転送完了割り込みはＤＭＡ転送終了時に起動され、解析起動部１２３を実行する。ソフトウェア割り込みは解析起動部１２３によって発行され、解析処理部１２４を実行する。検証タスクは周期的にオペレーティングシステムによって実行され、ランタイム検証１３０を実行する。検証タスクは他の割り込み処理のリアルタイム性を阻害しないように低い優先度で実行される。実施の形態１ではランタイム検証１３０を割り込み処理よりも低い優先度で実行する方法をとっているが、リアルタイム性を阻害しなければこれに限らない。例えば、割り込み処理の直後に実行しても良い。しかし、ランタイム検証が実行しなければらないデッドラインは機能安全規格ＩＳＯ２６２６２で定義されたＦａｕｌｔ  Ｔｏｌｅｒａｎｔ  Ｔｉｍｅ  Ｉｎｔｅｒｖａｌ（ＦＴＴＩ）におけるＤｉａｇｎｏｓｔｉｃ  Ｔｅｓｔ  Ｉｎｔｅｒｖａｌの時間以下で実行されなければならない。並列実行状態は並列実行状態１４２の値の変化を示し、制約式はそのタイミングにおけるシステム状態とソフト状態に対応した制約式１４１４の変化を示す。監視状態フラグは監視状態フラグ１４３の値の変化を示し、逸脱状態は逸脱状態１４４の値の変化を示す。ネットワークはネットワークコントローラ１８の状態を示す。
実施の形態１ではシステム状態が逆回転に変化したタイミングで、クランク角の状態が丁度、逆回転時処理部を実行するタイミングであるとＡＤ変換コントローラ１６を停止させる初期化を実施するが、その際にＡＤ変換中である場合には停止命令を受け付けず、変換終了後に停止される。しかし、変換終了によりＤＭＡ転送が起こるために想定外の割り込みが発生したことを検知するシナリオを示している。実施の形態１ではこのような例題を用いているがこれに限らない。例えば、マルチコアマイコン、メニーコアマイコン、ＦＰＧＡ搭載マイコンなどにも適用可能である。本シナリオでは、解析起動部１２３で設計からの逸脱を検知し、監視状態に遷移する。その後、ランタイム検証部１３０によって不具合の影響を検証され、結果が真であったためネットワークを介して逸脱状態を通知する。
【００３２】
実施の形態１では、設計からの逸脱を制約式で記載された並列実行状態で検知するため、処理のオーバヘッドを削減できる。制約式で記載することで設計からの逸脱の大枠のみを確認し、割り込み処理とは別に、逸脱の影響を詳細に調べることが可能になり、割り込み処理のリアルタイム性を担保できる。
【００３３】
実施の形態１では、逸脱判定部１２９でのみ並列実行状態が制約式を充足するか判定を行っていないが、これに限らない。例えば、ランタイム検証部１３０でさらに詳細な制約式で追加判定を行って良い。例えば、逸脱判定部１２９でタスクレベルの並列実行状態の判定を行い、ランタイム検証部１３０で関数レベルの並列実行状態の判定を行っても良い。
【００３４】
更に、例えば、タスクが他のタスクを起動するようなタスクチェインを用いたシステムである場合、逸脱判定部１２９で最初に起動されるタスク同士に対して逸脱判定部１２９で並列実行状態の判定を行い、ランタイム検証部１３０で２個目からのタスクも含めた並列実行状態の判定を行っても良い。
【００３５】
実施の形態１では、設計からの逸脱を検知する方法は制約式に限らない。例えば、状態遷移シミュレーションでも良い。
【００３６】
実施の形態１では、制約式テーブルを１つしか用意していないがこれに限らない。２つ以上でも良い。
【００３７】
実施の形態１では、逸脱判定部１２９とランタイム検証部１３０を監視対象の車両制御装置と同じＥＣＵに搭載しているが、これに限らない。例えば、別のコンピュータ上で並列に実行しつつ判定しても良いし、動作ログを解析することによって判定しても良い。
【００３８】
実施の形態１では、逸脱からの逸脱を検知しても、直ぐにフェールセーフのような対異常処理を実行しないため、誤検知による可用性低下を防止できる。
【００３９】
実施の形態１では、ランタイム検証部１３０が不具合の影響がないと判定した際に監視状態フラグをクリアし、監視状態を解除しているがこれに限らない。例えば、監視状態を解除しないでも良いし、システムのＯＦＦに伴い監視状態を解除しても良い。またこれらに限らない。
【００４０】
実施の形態１では、逸脱状態を上書きする方法としてあるが、これに限らない。逸脱判定後の状態を時系列順に保存し続けても良い。またこれらに限らない。
【００４１】
実施の形態１では、ランタイム検証部１３０が不具合の影響があると判定した場合に、逸脱状態を通知しているが、これに限らない。逸脱状態を保存しても良いし、フェールセーフ処理を行っても良い。
【００４２】
以上のように、本実施の形態１によれば、逸脱判定部１２９が、実行体の起動が設計想定から逸脱していることを判定し、監視状態に遷移させ、ランタイム検証部１３０が監視状態では割り込み処理とは別のタイミングで逸脱影響を検証し、監視状態でエラーを検出した場合には逸脱状態通知部１３１がエラーコードと共に逸脱時の状態を通知するため、割り込み処理のリアルタイム性を阻害せずに設計の逸脱を検知でき、更に誤検知による可用性低下を防止できるため、リアルタイム性と高信頼性が求められる自動車制御システムに好適である。また、不具合の要因特定が容易に行われるため、安全性が求められる自動車制御システムに好適である。
【符号の説明】
【００４３】
１２９  逸脱判定部、１３０  ランタイム検証部、１３１ａ  逸脱状態保存部、１３１  逸脱状態通知部。
【図１】
2018160205.tif 000003
【図２】
2018160205.tif 000004
【図３】
2018160205.tif 000005
【図４】
2018160205.tif 000006
【図５】
2018160205.tif 000007
【図６】
2018160205.tif 000008
【図７】
2018160205.tif 000009
【図８】
2018160205.tif 000010
【図９】
2018160205.tif 000011
【図１０】
2018160205.tif 000012
【図１１】
2018160205.tif 000013
【図１２】
2018160205.tif 000014
【図１３】
2018160205.tif 000015
【図１４】
2018160205.tif 000016
【図１５】
2018160205.tif 000017
【図１６】
2018160205.tif 000018
【図１７】
2018160205.tif 000019
【図１８】
2018160205.tif 000020