(57)【要約】【課題】スレーブコアの異常をマスターコアにおいて適切に監視すること。【解決手段】複数のＣＰＵコアによって車両のエンジン制御を行なうための処理を行なうマルチコア制御装置であって、センサー出力値により把握されるエンジン回転数に応じた処理に関する割り込み要求をスレーブコアに対して行なうマスターコアと、前記マスターコアからの割り込み要求に応じた処理を行なう少なくとも一つのスレーブコアと、を備え、前記マスターコアは、割り込み要求した処理に関する優先度が低く設定されている状態で前記スレーブコアにより割り込み要求に応じた処理が行なわれない場合に、該割り込み要求した処理に関する優先度を高く設定し、該割り込み要求した処理に関する優先度が高く設定されている状態で前記スレーブコアにより割り込み要求に応じた処理が行なわれない場合に、所定のフェール処理を行なうことを特徴とする。【選択図】図３
2010113419.tif 000002
【特許請求の範囲】
【請求項１】
複数のＣＰＵコアによって車両のエンジン制御を行なうための処理を行なうマルチコア制御装置であって、
センサー出力値により把握されるエンジン回転数に応じた処理に関する割り込み要求をスレーブコアに対して行なうマスターコアと、
前記マスターコアからの割り込み要求に応じた処理を行なう少なくとも一つのスレーブコアと、を備え、
前記マスターコアは、
割り込み要求した処理に関する優先度が低く設定されている状態で前記スレーブコアにより割り込み要求に応じた処理が行なわれなかった場合に、該割り込み要求した処理に関する優先度を高く設定し、
該割り込み要求した処理に関する優先度が高く設定されている状態で前記スレーブコアにより割り込み要求に応じた処理が行なわれなかった場合に、所定のフェール処理を行なうことを特徴とする、
マルチコア制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のＣＰＵコアによってエンジン制御のための処理を行なうマルチコア制御装置に関する。
【背景技術】
【０００２】
近年、複数のＣＰＵ又はこれに相当する機能ユニット（本発明では「ＣＰＵコア」ないし「コア」と称する）を備える情報処理装置が、マルチコアシステム等と称され、実用化が進められている。
【０００３】
これに関連し、デュアルポートＲＡＭを介して相互にデータ通信を行うマイクロコンピュータの異常の有無を監視するマイクロコンピュータ監視装置において、送信側マイクロコンピュータからデュアルポートＲＡＭへの通信データ書き込みに際し、その記憶データが更新される異常判定用メモリと、該異常判定用メモリへの書き込みが行われたときに受信側マイクロコンピュータに対し割り込みを発生する割り込み手段とを備え、前記割り込み手段による割り込みを受けたとき、受信側マイクロコンピュータは異常判定用メモリ内のデータを読み出して異常の有無を判定するように構成したことを特徴とするマイクロコンピュータ監視装置についての発明が開示されている（例えば、特許文献１参照）。
【特許文献１】特開平１０−２５４７３３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来の装置は、割り込み要求を受信する側のマイクロコンピュータが送信する側のマイクロコンピュータを監視するものであり、要求送信側が受信側を監視する構成となっていない。
【０００５】
本発明はこのような課題を解決するためのものであり、スレーブコアの異常をマスターコアにおいて適切に監視することが可能なマルチコア制御装置を提供することを、主たる目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するための本発明の一態様は、
複数のＣＰＵコアによってエンジン制御を行なうマルチコア制御装置であって、
センサー出力値を取得してエンジン回転数を把握し、該把握したエンジン回転数に応じたエンジン制御のための処理に関する割り込み要求をスレーブコアに対して行なうマスターコアと、
前記マスターコアからの割り込み要求に応じたエンジン制御のための処理を行なう少なくとも一つのスレーブコアと、
を備え、
前記マスターコアは、
前記スレーブコアにより割り込み要求に応じたエンジン制御のための処理が行なわれないときに、エンジン制御のための処理に関する優先度を高く設定し、
該エンジン制御のための処理に関する優先度が高く設定されている状態で前記スレーブコアにより割り込み要求に応じたエンジン制御のための処理が行なわれない場合に、所定のフェール処理を行なうことを特徴とする、
マルチコア制御装置である。
【０００７】
この本発明の一態様によれば、スレーブコアにより割り込み要求に応じたエンジン制御のための処理が行なわれないときに、エンジン制御のための処理に関する優先度を高く設定し、エンジン制御のための処理に関する優先度が高く設定されている状態でスレーブコアにより割り込み要求に応じたエンジン制御のための処理が行なわれない場合に、所定のフェール処理を行なうため、スレーブコアにおいてより優先度の高い処理を行なっているために割り込み要求に応じた処理が行なわれないのか、スレーブコアが不具合を生じたのかを適切に判別することができる。
【０００８】
従って、スレーブコアの異常をマスターコアにおいて適切に監視し、必要なフェール処理を行なうことができる。
【発明の効果】
【０００９】
本発明によれば、スレーブコアの異常をマスターコアにおいて適切に監視することができる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明を実施するための最良の形態について、添付図面を参照しながら実施例を挙げて説明する。
【実施例】
【００１１】
［基本構成］
以下、本発明の一実施例に係るマルチコア制御装置１について説明する。図１は、本発明の一実施例に係るマルチコア制御装置１のシステム構成例である。マルチコア制御装置１は、主要な構成として、マスターコア１０と、少なくとも一つのスレーブコア２０（以下の説明では単独のものとする）と、共有メモリ３０と、を備える。
【００１２】
マルチコア制御装置１は、これらのＣＰＵコアによって車両のエンジン制御を行なうための処理を行なうものであり、エンジン回転数を把握するためのクランク角センサー４０、及びエンジン制御のための機器群５０（例えば、イグナイター、スロットルモータ、フューエルインジェクター等）が接続されている。
【００１３】
マスターコア１０及びスレーブコア２０は、従来のＣＰＵ（Central  Processing  Unit）に相当する機能を有する機能単位である。すなわち、ＡＬＵ（論理演算ユニット）や制御装置、レジスタ、クロックジェネレータ等から構成される。
【００１４】
マスターコア１０は、クランク角センサー４０から入力されるクランク角信号に基づいて、エンジン回転数を算出する。以下、係る処理を「クランク処理」と称する。
【００１５】
クランク角センサー４０は、クランクシャフトと連動して回転する信号歯に対向するように設置され、エアギャップ変化によって生じる磁束の増減により内部に起電力を生じさせる。クランク角センサー４０は、このように生じさせた起電力を交流信号としてマルチコア制御装置１に出力する。なお、信号歯には上死点を検出するための欠損が形成されている。
【００１６】
マスターコア１０では、クランク角センサー４０から入力された交流信号を閾値と比較すること等によって信号歯の通過数をカウントし、エンジン回転数を算出する（クランク処理）。また、図示しないカムポジションセンサーから入力されるカム位置信号とクランク角信号を比較することにより、気筒判別を行なっている。
【００１７】
また、マスターコア１０は、このように算出したエンジン回転数に応じた処理内容を決定し、係る処理に関する割り込み要求をスレーブコアに対して行なう。以下、マスターコア１０による割り込み要求、及び、割り込み要求に応じたスレーブコア２０の処理を、「クランク同期処理」と称する。
【００１８】
ここで、割り込み要求とは、ＣＰＵコア間で直接的に処理要求を行なうことをいい、受信側のＣＰＵコアでは、受信した要求の優先度が現在行なっている処理よりも高ければ、現在行なっている処理を中断して、受信した要求に応じた処理を実行する。
【００１９】
また、エンジン回転数に応じた処理内容とは、例えばエンジン制御のための機器群５０に対する制御信号を生成する処理（タイミング決定処理、制御量決定処理等を広く含む）であり、本実施例の如く複数のＣＰＵコアで分担することによって、より精緻なエンジン制御を可能にすることができる。なお、マスターコア１０自体が、スレーブコア２０に要求する類の処理を行なってもよいのは勿論である。
【００２０】
スレーブコア２０は、このようにマスターコア１０から受信した割り込み要求に応じた処理、その他の処理を実行する。
【００２１】
共有メモリ３０は、マスターコア１０及びスレーブコア２０が参照及び書き込み可能な記憶媒体であり、例えばＲＡＭ（Random  Access  Memory）やフラッシュメモリ等が用いられる。共有メモリ３０における所定領域には、起動確認フラグ３２及びクランク同期タスク優先度変更フラグ３４が設定される。これらのフラグは、例えば選択的に２値のいずれかに設定される（以下では便宜上、フラグがオン、オフのいずれかに設定されると表現する）。
【００２２】
起動確認フラグ３２は、マスターコア１０が割り込み要求をする際にマスターコア１０によりオンに設定され、スレーブコア２０が要求に応じた処理を実行する際にスレーブコア２０によりオフに設定される。
【００２３】
クランク同期タスク優先度変更フラグ３４は、マスターコア１０が割り込み要求した処理が行なわれなかった場合（すなわち起動確認フラグ３２がオンに設定されたままである場合）に、マスターコア１０によりオンに設定される。スレーブコア２０は、クランク同期タスク優先度変更フラグ３４がオンに設定されていることを確認すると、その内部処理において、マスターコア１０からの割り込み要求に係る処理の優先度を高く設定する。
【００２４】
［通常時の処理の流れ］
図２は、共有メモリ３０上の各フラグ、マスターコア１０、スレーブコア２０の、通常時における動作及び状態の変化を示すシーケンス図である。
【００２５】
マスターコア１０は、クランク角センサー４０からのクランク角信号を取得してクランク処理を行なう（時刻ｔ１）。なお、係るクランク処理は、例えばクランク角信号が閾値を超えたタイミング毎に行なわれる。また、これに限らず、所定周期毎に繰り返しクランク処理を行なってもよい。
【００２６】
クランク処理を行なうと、マスターコア１０はスレーブコア２０に対して割り込み要求を行なうと共に、起動確認フラグ３２をオンに設定する（時刻ｔ２）。
【００２７】
そして、マスターコア１０は自己処理分のクランク同期処理を実行する（時刻ｔ３）
スレーブコア２０は、割り込み要求を受信したが、ここではより優先度の高い処理（図では高タスクと表記した）を行なっているため、高タスクの処理を終了するのを待ってからクランク同期処理を実行すると共に、起動確認フラグ３２をオフに設定する（時刻ｔ４）。
【００２８】
このように、スレーブコア２０がクランク同期処理を実行開始すると同時に起動確認フラグ３２をオフに設定することで、マスターコア１０はスレーブコア２０が正常に作動していることを確認することができる。
【００２９】
その後、マスターコア１０は、再度クランク角センサー４０からのクランク角信号を取得してクランク処理を行ない（時刻ｔ５）、スレーブコア２０に対して割り込み要求を行なうと共に、起動確認フラグ３２をオンに設定する（時刻ｔ６）。
【００３０】
そして、マスターコア１０は自己処理分のクランク同期処理を実行する（時刻ｔ７）
スレーブコア２０は、割り込み要求を受信すると、より優先度の高い処理を行なっていないため、直ちにクランク同期処理を実行すると共に、起動確認フラグ３２をオフに設定する（時刻ｔ７）。
【００３１】
［異常時の処理の流れ］
ところで、本実施例におけるスレーブコア２０の如きＣＰＵコアにおいては、フリーズ等の不具合を生じることがあり、安全面が要求される車載装置としては異常が生じていないかを監視することが望ましい。そこで、本実施例に係るマスターコア１０は、以下に説明する特徴的な処理を行なってスレーブコア２０の状態を監視している。
【００３２】
図３は、共有メモリ３０上の各フラグ、マスターコア１０、スレーブコア２０の、異常時における動作及び状態の変化を示すシーケンス図である。
【００３３】
マスターコア１０は、クランク角センサー４０からのクランク角信号を取得してクランク処理を行なう（時刻ｔ１１）。
【００３４】
クランク処理を行なうと、マスターコア１０はスレーブコア２０に対して割り込み要求を行なうと共に、起動確認フラグ３２をオンに設定する（時刻ｔ１２）。
【００３５】
そして、マスターコア１０は自己処理分のクランク同期処理を実行する（時刻ｔ１３）
スレーブコア２０は、割り込み要求を受信したが、ここではより優先度の高い処理（図では高タスクと表記した）を行なっていた。しかしながら、高タスクの処理が終了してもクランク同期処理は実行されず、従って起動確認フラグはオンに設定されたままであった。
【００３６】
その後、マスターコア１０は、再度クランク角センサー４０からのクランク角信号を取得してクランク処理を行なう（時刻ｔ１４）。この際に、起動確認フラグ３２がオンに設定されたままであるため、マスターコア１０は、クランク同期タスク優先度変更フラグ３４をオンに設定する。
【００３７】
クランク同期タスク優先度変更フラグ３４がオンに設定されることにより、スレーブコア２０は、割り込み要求を高優先度に設定するため、次回の割り込み要求に応じたクランク同期タスクは速やかに実行される筈である。
【００３８】
そして、スレーブコア２０に対して割り込み要求を行なうと共に、起動確認フラグ３２をオンに設定する（時刻ｔ１５）。また、マスターコア１０は自己処理分のクランク同期処理を実行する（時刻ｔ１６）。
【００３９】
ところが、本図の例では、スレーブコア２０においてクランク同期処理が実行されなかった。この場合、起動確認フラグ３２及びクランク同期タスク優先度変更フラグ３４の双方がオンに設定されたままとなる。マスターコア１０は、所定時間又は所定のサンプリング回数待機した後に、スレーブコア２０が何らかの不具合を生じたと判断し、所定のフェール処理を行なう（時刻ｔ１７）。
【００４０】
所定のフェール処理としては、例えば不具合を生じたスレーブコア２０を停止させたり、マルチコア制御装置１全体をリセットしたりする処理が行なわれる。これによって、スレーブコア２０の機能が他のスレーブコア２０によって補完されたり、通常状態に復帰したりすることが期待される。なお、マルチコア制御装置１全体をリセットする場合、エンジンは一時的に惰性回転することとなる。
【００４１】
このように、マスターコア１０は、割り込み要求した処理に関する優先度が高く設定されている状態でスレーブコア２０により割り込み要求に応じた処理が行なわれない場合に、所定のフェール処理を行なう。
【００４２】
係る処理によって、スレーブコア２０の異常をマスターコア１０において適切に監視し、必要なフェール処理を行なうことができる。
【００４３】
すなわち、単に起動確認フラグ３２がオンに設定されたままである場合に所定のフェール処理を行なうものとすると、スレーブコア２０においてより優先度の高い処理を行なっているために割り込み要求に応じた処理が行なわれないのか、スレーブコア２０が不具合を生じたのかが判別できない。
【００４４】
この点、本実施例のマルチコア制御装置１では、起動確認フラグ３２がオンに設定されたままである事態が生じたときに、まずクランク同期タスク優先度変更フラグ３４をオンに設定し、その後に起動確認フラグ３２がオンに設定されたままである事態が生じたときに所定のフェール処理を行なっている。
【００４５】
従って、スレーブコア２０の不具合判断を高精度に行なうことができ、不要なフェール処理を行なうことで車両の操縦性を損なうような不都合が生じるのを抑制することができる。
【００４６】
異常説明した本実施例のマルチコア制御装置１によれば、スレーブコアの異常をマスターコアにおいて適切に監視することができる。
【００４７】
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【産業上の利用可能性】
【００４８】
本発明は、自動車製造業や自動車部品製造業等に利用可能である。
【図面の簡単な説明】
【００４９】
【図１】本発明の一実施例に係るマルチコア制御装置１のシステム構成例である。
【図２】共有メモリ３０上の各フラグ、マスターコア１０、スレーブコア２０の、通常時における動作及び状態の変化を示すシーケンス図である。
【図３】共有メモリ３０上の各フラグ、マスターコア１０、スレーブコア２０の、異常時における動作及び状態の変化を示すシーケンス図である。
【符号の説明】
【００５０】
１  マルチコア制御装置
１０  マスターコア
２０  スレーブコア
３０  共有メモリ
４０  クランク角センサー
５０  エンジン制御のための機器群
【図１】
2010113419.tif 000003
【図２】
2010113419.tif 000004
【図３】
2010113419.tif 000005