(57)【特許請求の範囲】
【請求項１】
車両制御のための処理を実行するマルチコアＣＰＵと、
前記マルチコアＣＰＵにより定期的に実行される異常監視用処理に基づき異常を検出した場合に前記マルチコアＣＰＵをリセットする監視手段と、
を備える車両制御装置であって、
前記マルチコアＣＰＵは、車両制御のための処理を分担して実行するマスタ側コア及びスレーブ側コアを少なくとも備え、
前記監視手段は、前記異常監視用処理に基づき異常を検出した場合に、前記マスタ側コア及び前記スレーブ側コアで共用の１本のリセットラインを介してリセット信号を出力することにより、前記マスタ側コア及び前記スレーブ側コアを共にリセットし、
前記マスタ側コアは、前記スレーブ側コアからの出力を調停して出力し、前記スレーブ側コアの異常を検出した場合には、前記異常監視用処理を正常時と同様に実行しつつ、前記スレーブ側コアにより実行されるべき処理を、前記スレーブ側コアが実行するよりも低負荷となる方法で実行するフェイルセーフ処理を行うこと
を特徴とする車両制御装置。
【請求項２】
前記マスタ側コアは、前記フェイルセーフ処理として、前記スレーブ側コアにより実行されるべき制御値の演算処理を、固定の制御値を用いて実行すること
を特徴とする請求項１に記載の車両制御装置。
【請求項３】
前記マスタ側コアは、前記フェイルセーフ処理として、前記スレーブ側コアにより実行されるべき制御値の演算処理を、簡易的な演算方法で実行すること
を特徴とする請求項１に記載の車両制御装置。
【請求項４】
前記スレーブ側コアは、トランスミッション制御の制御値の演算処理を行うこと
を特徴とする請求項２又は請求項３に記載の車両制御装置。
【請求項５】
前記スレーブ側コアは、エンジンの可変バルブタイミング制御の制御値の演算処理を行うこと
を特徴とする請求項２又は請求項３に記載の車両制御装置。
【請求項６】
前記スレーブ側コアは、正常時に共有メモリへの書込処理を定期的に行い、前記マスタ側コアは、前記共有メモリに書き込まれた情報に基づき前記スレーブ側コアの異常を検出すること
を特徴とする請求項１から請求項５までのいずれか１項に記載の車両制御装置。
【請求項７】
前記マスタ側コアは、前記スレーブ側コアの異常を検出した場合には、前記監視手段に当該マルチコアＣＰＵをリセットさせ、リセットにより前記スレーブ側コアが復帰しない場合に、前記フェイルセーフ処理を行うこと
を特徴とする請求項１から請求項６までのいずれか１項に記載の車両制御装置。
【請求項８】
前記マスタ側コアは、前記スレーブ側コアの異常を検出した回数をカウントし、その回数があらかじめ設定された回数以上となった場合に、前記フェイルセーフ処理を行うこと
を特徴とする請求項７に記載の車両制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチコアＣＰＵを備える車両制御装置に関するものである。
【背景技術】
【０００２】
従来、車両制御装置として、複数のＣＰＵを備え、エンジン制御やトランスミッション制御といった各種制御を複数のＣＰＵに分担して実行させる構成のものが知られている。こうした車両制御装置では、ＣＰＵに異常が発生した場合には、そのＣＰＵをリセットするようにしている。
【０００３】
例えば、特許文献１には、メインＣＰＵとサブＣＰＵとの間で相互通信するとともに、サブＣＰＵからのプログラムラン信号によりサブＣＰＵを監視するエンジン制御装置であって、メインＣＰＵが、エンジンストールの検出時にサブＣＰＵの異常を判定し、異常と判定した場合にサブＣＰＵをリセットする構成が示されている。
【０００４】
また、特許文献２には、複数のＣＰＵが相互に監視する構成においてＣＰＵ同士のリセットが際限なく続いてしまうことを防ぐため、第１のＣＰＵは、リセット信号が与えられたときに、第２のＣＰＵを含む所定の範囲の回路にリセットを引き起こす第１のリセット事象を実行し、第２のＣＰＵは、第１のリセット事象において第２のＣＰＵがリセットされたときには第１のＣＰＵにリセット信号を供給せず、第１のＣＰＵの異常を検出したときに第１のＣＰＵにリセット信号を供給する構成が示されている。
【特許文献１】特開平５−４４５７０号公報
【特許文献２】特開２００１−２８２３０２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、ＣＰＵとしては、複数のＣＰＵコアを１個のパッケージに集積したマルチコアＣＰＵが知られており、こうしたマルチコアＣＰＵを車両制御装置に採用することにより、複数のＣＰＵを備えた構成と同様、各ＣＰＵコアに各種制御を分担して実行させることが考えられる。
【０００６】
しかしながら、一般に、マルチコアＣＰＵは、リセットしなければならないような状況に陥った場合には、異常状態から完全に復帰すべくＣＰＵ全体をリセットする思想で設計されており、ＣＰＵコア単位で個々にリセットする機構を備えていないため、複数のＣＰＵを用いた構成にはない問題が生じ得る。
【０００７】
すなわち、例えば図７（ａ）に示すように、２つのＣＰＵ（メインＣＰＵ及びサブＣＰＵ）を備えたパワートレイン制御装置では、監視ＩＣがメインＣＰＵを監視し、メインＣＰＵがサブＣＰＵを監視するといった監視方法が可能となる。ここで、メインＣＰＵでエンジン制御、サブＣＰＵでトランスミッション制御をしている場合、サブＣＰＵの故障時にはメインＣＰＵがサブＣＰＵをリセットして、リセット復帰を期待することができる。この場合、サブＣＰＵがリセット復帰しない間も、トランスミッション制御についてはギア段を固定するなどして、メインＣＰＵの車両制御のみで車両走行が可能である。
【０００８】
これに対し、図７（ｂ）に示すように、マスタ側コア及びスレーブ側コアを有するデュアルコアＣＰＵを備えたパワートレイン制御装置で、前述したメインＣＰＵ及びサブＣＰＵをマスタ側コア及びスレーブ側コアに置き換えて適用しようとすると、デュアルコアＣＰＵにはリセットラインがマスタ・スレーブ共用の１つしかないため、スレーブ側コアの故障時にスレーブ側コアのみをリセットすることができず、マスタ側も同時にリセットされてしまう。このため、スレーブ側コアがリセット復帰しない限り、デュアルコアＣＰＵが繰り返しリセットされることとなり、マスタ側コアによる処理までもが実行不可能となってしまうため、車両走行ができなくなってしまうという問題があった。
【０００９】
本発明は、こうした問題にかんがみてなされたものであり、マルチコアＣＰＵのスレーブ側コアに異常が発生した場合にも車両制御を継続することのできる車両制御装置を提供することを目的としている。
【課題を解決するための手段】
【００１０】
上記目的を達成するためになされた本発明の請求項１に記載の車両制御装置は、車両制御のための処理を実行するマルチコアＣＰＵと、マルチコアＣＰＵにより定期的に実行される異常監視用処理に基づき異常を検出した場合にマルチコアＣＰＵをリセットする監視手段とを備えるものである。マルチコアＣＰＵは、車両制御のための処理を分担して実行するマスタ側コア及びスレーブ側コアを少なくとも備え、監視手段は、異常監視用処理に基づき異常を検出した場合に、マスタ側コア及びスレーブ側コアで共用の１本のリセットラインを介してリセット信号を出力することにより、マスタ側コア及びスレーブ側コアを共にリセットし、マスタ側コアは、スレーブ側コアからの出力を調停して出力し、スレーブ側コアの異常を検出した場合には、異常監視用処理を正常時と同様に実行しつつ、スレーブ側コアにより実行されるべき処理を代行するフェイルセーフ処理を行う。
【００１１】
このような車両制御装置によれば、マルチコアＣＰＵのスレーブ側コアの異常時にも、車両制御のためのフェイルセーフ処理をマスタ側コアにより実行することができる。すなわち、スレーブ側コアの異常時にマルチコアＣＰＵをリセットする構成では、スレーブ側コアがリセット復帰しない限り、マルチコアＣＰＵが繰り返しリセットされることとなり、マスタ側コアによる処理までもが実行できなくなってしまう。これに対し、本発明の車両制御装置によれば、スレーブ側コアに異常が発生した場合にもマスタ側コアにより車両制御のための処理を継続して実行することができる。
【００１２】
ただし、マスタ側コアがフェイルセーフ処理としてスレーブ側コアにより実行されるべき処理をそのまま行うようにしたのでは、処理負荷が過剰に大きくなってしまう。
そこで、請求項１に記載の車両制御装置では、マスタ側コアは、フェイルセーフ処理として、スレーブ側コアにより実行されるべき処理を、スレーブ側コアが実行するよりも低負荷となる方法で実行する。このような車両制御装置によれば、マスタ側コアによるフェイルセーフ処理の処理負荷を抑制することができる。
【００１３】
具体的には、例えば請求項２に記載の車両制御装置では、マスタ側コアは、フェイルセーフ処理として、スレーブ側コアにより実行されるべき制御値の演算処理を、固定の制御値を用いて実行する。このような車両制御装置によれば、マスタ側コアによるフェイルセーフ処理の処理負荷を非常に小さくすることができる。
【００１４】
また、例えば請求項３に記載の車両制御装置では、マスタ側コアは、フェイルセーフ処理として、スレーブ側コアにより実行されるべき制御値の演算処理を、簡易的な演算方法で実行する。このような車両制御装置によれば、固定の制御値を用いる場合に比べ、より正常時に近い演算処理を実行することができ、例えば、フィードバック制御が必要なアクチュエータについてもフェイルセーフ処理の対象とすることができる。
【００１５】
ここで、スレーブ側コアにより実行される制御値の演算処理としては、例えば請求項４や請求項５に記載のように、トランスミッション制御やエンジンの可変バルブタイミング（ＶＶＴ：Ｖａｒｉａｂｌｅ  Ｖａｌｖｅ  Ｔｉｍｉｎｇ）制御の制御値の演算処理が挙げられる。このようにすれば、スレーブ側コアの異常時にも、マスタ側コアのフェイルセーフ処理により、車両の退避走行が可能となる。
【００１６】
一方、請求項６に記載の車両制御装置では、スレーブ側コアは、正常時に共有メモリへの書込処理を定期的に行い、マスタ側コアは、共有メモリに書き込まれた情報に基づきスレーブ側コアの異常を検出する。このような車両制御装置によれば、スレーブ側コアの異常検出を容易に実現することができる。
【００１７】
ところで、前述したように、スレーブ側コアの異常時にマルチコアＣＰＵをリセットする構成では、スレーブ側コアがリセット復帰しない限り、マルチコアＣＰＵが繰り返しリセットされることとなり、マスタ側コアによる処理までもが実行できなくなってしまうが、リセット復帰するのであれば、フェイルセーフ処理を行うよりも、いったんリセットして正常状態に復帰させることが好ましい。
【００１８】
そこで、請求項７に記載の車両制御装置では、マスタ側コアは、スレーブ側コアの異常を検出した場合には、監視手段に当該マルチコアＣＰＵをリセットさせ、リセットによりスレーブ側コアが復帰しない場合に、フェイルセーフ処理を行う。このような車両制御装置によれば、スレーブ側コアの異常時にも、リセットによりスレーブ側コアを復帰させることができ、スレーブ側コアが復帰しなかったとしても、車両制御のためのフェイルセーフ処理をマスタ側コアにより実行することができる。
【００１９】
特に、請求項８に記載のように、マスタ側コアが、スレーブ側コアの異常を検出した回数をカウントし、その回数があらかじめ設定された回数以上となった場合に、フェイルセーフ処理を行うようにすれば、マスタ側コアによる処理に影響のない範囲で、スレーブ側コアのリセット復帰の可能性を高くすることができる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明が適用された実施形態について、図面を用いて説明する。
［第１実施形態］
図１は、第１実施形態のパワートレイン制御装置１０の概略構成を表すブロック図である。
【００２１】
同図に示すように、このパワートレイン制御装置１０は、車両のエンジン５１及びトランスミッション５２を制御するためのものであり、２つのＣＰＵコア（マスタ側コア２１及びスレーブ側コア２２）を有するデュアルコアＣＰＵ２０と、デュアルコアＣＰＵ２０を監視する監視ＩＣ３０と、外部との入出力インタフェースである入出力部４０とを備えている。
【００２２】
そして、このパワートレイン制御装置１０では、監視ＩＣ３０がデュアルコアＣＰＵ２０を監視し、デュアルコアＣＰＵ２０内では、マスタ側コア２１がスレーブ側コア２２を監視する。
【００２３】
具体的には、監視ＩＣ３０によるデュアルコアＣＰＵ２０の監視は、デュアルコアＣＰＵ２０のマスタ側コア２１により定期的に実行される処理（異常監視用処理）をあらかじめ規定しておき、それが一定時間内に正しく実行されていることをチェックすることによって行われる。本実施形態では、ウォッチドッグタイマが用いられる。つまり、マスタ側コア２１は、異常監視用処理として、ウォッチドッグパルスを定期的に出力する処理を行う。監視ＩＣ３０とデュアルコアＣＰＵ２０との間には、マスタ側コア２１及びスレーブ側コア２２で共用のリセットライン３１が接続されており、監視ＩＣ３０は、デュアルコアＣＰＵ２０の異常を検出した時点でリセットライン３１を介してリセット信号を出力し、デュアルコアＣＰＵ２０をリセットする。この場合、マスタ側コア２１及びスレーブ側コア２２が共にリセットされることになる。
【００２４】
また、マスタ側コア２１によるスレーブ側コア２２の監視は、スレーブ側コア２２により定期的に実行される処理をあらかじめ規定しておき、それが一定時間内に正しく実行されていることをチェックすることによって行われる。本実施形態では、定期的にビットが反転するデータをスレーブ側コア２２が共有メモリ（共有ＲＡＭ）に書き込み、その共有メモリの値をマスタ側コア２１で定期的に読み出す方法が用いられる。なお、デュアルコアＣＰＵ２０から監視ＩＣ３０への異常通知は、マスタ側コア２１が処理する。
【００２５】
デュアルコアＣＰＵ２０としての入出力部４０を介した入出力処理は、すべてマスタ側コア２１が管理している。このため、スレーブ側コア２２から出力値を変更したい場合は、スレーブ側コア２２からマスタ側コア２１へ出力変更要求を発行し、マスタ側コア２１にて調停した結果に基づいてマスタ側コア２１から出力することになる。
【００２６】
また、このパワートレイン制御装置１０において、スレーブ側コア２２は、主として固定値処理が可能な制御（本実施形態ではトランスミッション制御）の制御値の算出処理を行う。一方、マスタ側コア２１は、主として固定値処理のできない制御（本実施形態ではエンジン制御）の制御値の算出処理を行う。
【００２７】
そして、このパワートレイン制御装置１０では、マスタ側コア２１がスレーブ側コア２２の異常を検出した場合には、フェイルセーフ処理として、異常監視用処理を継続して（正常時と同様に）実行しつつ（つまり、監視ＩＣ３０によってリセットされないようにしつつ）、スレーブ側コア２２で算出すべきトランスミッション制御値のフェイルセーフ値（固定値）をマスタ側コア２１から出力する。
【００２８】
なお、マスタ側コア２１は、固定値処理のできない制御の制御値の算出処理を行うので、マスタ側コア２１が故障した場合には、監視ＩＣ３０によりリセットされるようになっている。
【００２９】
次に、第１実施形態のパワートレイン制御装置１０において実行される処理の具体的内容について説明する。
まず、デュアルコアＣＰＵ２０を監視するために監視ＩＣ３０が定期的に実行する監視ＩＣ処理について、図２のフローチャートを用いて説明する。
【００３０】
監視ＩＣ３０は、この監視ＩＣ処理を開始すると、まずＳ１０１で、デュアルコアＣＰＵ２０（具体的にはマスタ側コア２１）が正常であるか否かを判定する。なお、この判定は、前述したように、マスタ側コア２１で定期的に実行すべき処理が一定時間内に正しく実行されているか否かをチェックすることによって行われる。
【００３１】
そして、Ｓ１０１で、マスタ側コア２１が正常であると判定した場合には、そのまま本監視ＩＣ処理を終了する。
一方、Ｓ１０１で、マスタ側コア２１が正常でないと判定した場合には、Ｓ１０２へ移行し、デュアルコアＣＰＵ２０にリセットをかける。これにより、デュアルコアＣＰＵ２０のマスタ側コア２１及びスレーブ側コア２２が共にリセットされる。その後、本監視ＩＣ処理を終了する。
【００３２】
このような監視ＩＣ処理が定期的に実行されることにより、マスタ側コア２１に異常が発生した場合には、マスタ側コア２１がリセット復帰するまで監視ＩＣ３０によりデュアルコアＣＰＵ２０が繰り返しリセットされることになる。
【００３３】
次に、デュアルコアＣＰＵ２０のスレーブ側コア２２が定期的に実行するスレーブ側処理について、図３のフローチャートを用いて説明する。
スレーブ側コア２２は、このスレーブ側処理を開始すると、まずＳ２０１で、トランスミッション制御の制御値の算出処理を行う。
【００３４】
続いて、Ｓ２０２では、Ｓ２０１で算出した制御値をマスタ側コア２１へ送信する。その後、本スレーブ側処理を終了する。なお、制御値をマスタ側コア２１へ送信するのは、前述したように、デュアルコアＣＰＵ２０としての入出力処理がマスタ側コア２１に集約されているからである。
【００３５】
次に、デュアルコアＣＰＵ２０のマスタ側コア２１が定期的に実行するマスタ側処理について、図４のフローチャートを用いて説明する。
マスタ側コア２１は、このマスタ側処理を開始すると、まずＳ３０１で、エンジン制御の制御値を算出し、入出力部４０を介してエンジン５１へ出力するエンジン制御処理を行う。
【００３６】
続いて、Ｓ３０２では、スレーブ側コア２２が正常であるか否かを判定する。なお、この判定は、前述したように、スレーブ側コア２２で定期的に実行すべき処理が一定時間内に正しく実行されているか否かをチェックすることによって行われる。
【００３７】
そして、Ｓ３０２で、スレーブ側コア２２が正常であると判定した場合には、Ｓ３０３へ移行し、スレーブ側コア２２から送信される要求値（前述したＳ２０１で算出されＳ２０２で送信されるトランスミッション制御値）を受信する。
【００３８】
続いて、Ｓ３０４では、Ｓ３０３で受信したスレーブ側コア２２からの要求値を、入出力部４０を介してトランスミッション５２へ出力する。その後、本マスタ側処理を終了する。
【００３９】
一方、Ｓ３０２で、スレーブ側コア２２が正常でないと判定した場合には、Ｓ３０５へ移行し、フェイルセーフ処理を行う。具体的には、異常監視用処理を継続して（正常時と同様に）実行しつつ、あらかじめ記憶されているトランスミッション制御値のフェイルセーフ値（固定値）を、入出力部４０を介してトランスミッション５２へ出力する。その後、本マスタ側処理を終了する。
【００４０】
このようなマスタ側処理が定期的に実行されることにより、スレーブ側コア２２に異常が発生した場合には、デュアルコアＣＰＵ２０がリセットされることなく、マスタ側コア２１によりトランスミッション制御値のフェイルセーフ値が出力されることになる。例えば、ソレノイドバルブへの出力をトランスミッション５２が低速ギア段（例えば２速）になるように固定出力することにより、車速が低下してもエンストせず退避走行が可能な状態を保つことができる。
【００４１】
以上説明したように、第１実施形態のパワートレイン制御装置１０では、デュアルコアＣＰＵ２０のマスタ側コア２１が、スレーブ側コア２２の異常を検出した場合に、異常監視用処理を継続して実行しつつ、スレーブ側コア２２により実行されるべき処理を代行するフェイルセーフ処理を行う。
【００４２】
このようなパワートレイン制御装置１０によれば、スレーブ側コア２２に異常が発生した場合にも、車両制御のためのフェイルセーフ処理をマスタ側コア２１により実行することができ、この結果、車両の退避走行が可能となる。特に、マスタ側コア２１が、フェイルセーフ処理として、スレーブ側コア２２により実行されるべき制御値の演算処理を、固定の制御値を用いて実行するようにしているため、マスタ側コア２１によるフェイルセーフ処理の処理負荷を非常に小さくすることができる。
【００４３】
また、このパワートレイン制御装置１０では、マスタ側コア２１が、スレーブ側コア２２により定期的に実行される共有メモリへのデータ書込処理に基づきスレーブ側コア２２の異常を検出するようにしているため、スレーブ側コア２２の異常検出を容易に実現することができる。
【００４４】
なお、第１実施形態では、パワートレイン制御装置１０が本発明の車両制御装置に相当し、特に、デュアルコアＣＰＵ２０がマルチコアＣＰＵに相当し、監視ＩＣ３０が監視手段に相当する。
【００４５】
［第２実施形態］
次に、第２実施形態のパワートレイン制御装置１０について説明する。
第２実施形態のパワートレイン制御装置１０は、第１実施形態のパワートレイン制御装置１０と対比すると、デュアルコアＣＰＵ２０のマスタ側コア２１が、前述したマスタ側処理（図４）に代えて、図５に示すマスタ側処理を実行する点が異なる。その他、第１実施形態と共通する内容については説明を省略する。
【００４６】
第２実施形態のマスタ側処理（図５）は、第１実施形態のマスタ側処理（図４）と対比すると、Ｓ４０１〜Ｓ４０４，Ｓ４０８の各処理内容は、Ｓ３０１〜Ｓ３０５の各処理内容と同一であり、Ｓ４０５〜Ｓ４０７の処理が追加された点のみが異なるので、この相違点を中心に説明する。
【００４７】
Ｓ４０２で、スレーブ側コア２２が正常でないと判定した場合には、Ｓ４０５へ移行し、スレーブ側コア２２がＮ回目の異常であるか否かを判定する。具体的には、後述するように、スレーブ側コア２２が正常でないと判定する度に異常回数をカウントするようにしており（Ｓ４０６）、その異常回数があらかじめ設定されている数値Ｎに達したか否かを判定するようにしている。
【００４８】
そして、Ｓ４０５で、スレーブ側コア２２がＮ回目の異常でないと判定した場合には、Ｓ４０６へ移行し、異常回数をインクリメントする。なお、異常回数は、デュアルコアＣＰＵ２０がリセットされても消えない状態で記憶され、特定の条件を満たした場合、例えばイグニッションスイッチのオンからオフまでを１トリップとし、正常状態が３トリップ継続した場合などにリセットされる。
【００４９】
続いて、Ｓ４０７では、監視ＩＣ３０に異常を通知する。これにより、デュアルコアＣＰＵ２０が監視ＩＣ３０によりリセットされ、本マスタ側処理は終了される。なお、監視ＩＣ３０への異常通知は、異常検出にウォッチドッグタイマを使う場合には、デュアルコアＣＰＵ２０から監視ＩＣ３０へのウォッチドッグタイマ信号を停止することによって行うことができる。
【００５０】
一方、Ｓ４０５で、スレーブ側コア２２がＮ回目の異常であると判定した場合には、Ｓ４０８へ移行し、フェイルセーフ処理を行う。その後、本マスタ側処理を終了する。
このようなマスタ側処理が定期的に実行されることにより、スレーブ側コア２２に異常が発生した場合にも、デュアルコアＣＰＵ２０のリセット復帰を試み、リセット復帰した場合には通常制御を維持することができる。一方、Ｎ回リセットしてもスレーブ側コア２２の異常状態が継続する場合には、第１実施形態と同様、マスタ側コア２１によりトランスミッション制御値のフェイルセーフ値が出力されることになる。なお、数値Ｎは、マスタ側コア２１の処理に支障のない値に設定される。
【００５１】
以上説明したように、第２実施形態のパワートレイン制御装置１０によれば、第１実施形態のパワートレイン制御装置１０と同様の効果を得ることができる。
加えて、第２実施形態のパワートレイン制御装置１０では、マスタ側コア２１が、スレーブ側コア２２の異常を検出した場合に、監視ＩＣ３０にデュアルコアＣＰＵ２０をリセットさせるようにしているため、リセットによりスレーブ側コア２２を復帰させることが可能となる。特に、異常回数があらかじめ設定された回数（Ｎ回）となった場合に、フェイルセーフ処理を行うようにしているため、マスタ側コア２１による処理に影響のない範囲で、スレーブ側コア２２のリセット復帰の可能性を高くすることができる。
【００５２】
すなわち、第１実施形態のパワートレイン制御装置１０では、図６（ａ）に示すように、スレーブ側コア２２の故障時には、リセット復帰を試みることなく、直ちにマスタ側コア２１がフェイルセーフ処理を行う。これに対し、第２実施形態のパワートレイン制御装置１０では、図６（ｂ）に示すように、スレーブ側コア２２の故障時には、直ちにフェイルセーフ処理を行うのではなく、Ｎ回リセット復帰を試み、スレーブ側コア２２がリセット復帰すれば正常状態に復帰することとなり、リセット復帰しなければマスタ側コア２１がフェイルセーフ処理を行う。このため、第２実施形態のパワートレイン制御装置１０によれば、第１実施形態のパワートレイン制御装置１０に比べ、正常な車両制御を長期間継続することが可能となる。
【００５３】
［他の形態］
以上、本発明の実施形態について説明したが、本発明は、上記実施形態に限定されることなく、種々の形態を採り得ることは言うまでもない。
【００５４】
例えば、上記実施形態では、マスタ側コア２１がスレーブ側コア２２の異常を検出した場合には、スレーブ側コア２２で算出すべき制御値の固定値をフェイルセーフ値としてマスタ側コア２１から出力するようにしているが、これに限定されるものではない。すなわち、固定値を出力する方法とは別の方法として、マスタ側コア２１にスレーブ側コア２２の簡易的な機能（簡易的な演算方法で制御値を演算する機能）を持たせ、その機能を用いて算出した制御値でフェイルセーフ処理を実行するようにしてもよい。具体的には、トランスミッション制御では、例えば車速とエンジン回転数とを元に変速段を決定する簡易的な機能をマスタ側コア２１に持たせておき、スレーブ側コア２２の異常を検出した場合には、その機能を使って算出した変速段にトランスミッション５２を制御する。このようにすれば、固定値による制御よりもより正常時に近い走行が可能となり、例えば、フィードバック制御が必要なアクチュエータについてもフェイルセーフ処理の対象とすることができる。
【００５５】
また、上記実施形態では、スレーブ側コア２２が行う固定値処理が可能な制御としてトランスミッション制御を例示したが、これに限定されるものではなく、その他にも、例えば、エンジン５１の可変バルブタイミング機構の制御（ＶＶＴ制御）が挙げられる。ＶＶＴ制御の場合、吸気バルブのタイミングを制御するオイルコントロールバルブへの出力を、吸気バルブタイミングが最遅角側になるように固定出力することにより、吸気バルブタイミングが異常に変化することを防止して安定的なエンジン回転を継続することができる。
【００５６】
さらに、上記実施形態では、デュアルコアＣＰＵ２０の正常時にもマスタ側コア２１が異常監視用処理を実行するようにしているが、これに限定されるものではない。例えば、デュアルコアＣＰＵ２０の正常時にはスレーブ側コア２２が異常監視用処理を実行し、スレーブ側コア２２の異常時には、スレーブ側コア２２に代わってマスタ側コア２１が、異常監視用処理を正常時と同様に実行するようにしてもよい。
【００５７】
加えて、上記実施形態では、マルチコアＣＰＵとしてデュアルコアＣＰＵを例示したが、これに限定されるものではなく、本発明は３つ以上のＣＰＵコアを有するマルチコアＣＰＵにも適用することができる。
【図面の簡単な説明】
【００５８】
【図１】第１実施形態のパワートレイン制御装置の概略構成を表すブロック図である。
【図２】監視ＩＣが定期的に実行する監視ＩＣ処理のフローチャートである。
【図３】スレーブ側コアが定期的に実行するスレーブ側処理のフローチャートである。
【図４】マスタ側コアが定期的に実行するマスタ側処理のフローチャートである。
【図５】第２実施形態のマスタ側処理のフローチャートである。
【図６】第１実施形態のパワートレイン制御装置と第２実施形態のパワートレイン制御装置とを比較するための説明図である。
【図７】複数のＣＰＵを備えた車両制御装置におけるＣＰＵ監視方法を、デュアルコアＣＰＵを備えた車両制御装置に適用した場合の問題点を説明するための説明図である。
【符号の説明】
【００５９】
１０…パワートレイン制御装置、２０…デュアルコアＣＰＵ、２１…マスタ側コア、２２…スレーブ側コア、３０…監視ＩＣ、３１…リセットライン、４０…入出力部、５１…エンジン、５２…トランスミッション
【図１】
0005141367.tif 000002
【図２】
0005141367.tif 000003
【図３】
0005141367.tif 000004
【図４】
0005141367.tif 000005
【図５】
0005141367.tif 000006
【図６】
0005141367.tif 000007
【図７】
0005141367.tif 000008