(57)【特許請求の範囲】
【請求項１】
複数のプロセッサコア及びこれら複数のプロセッサコア間を接続する第１通信路が１つのパッケージに集積され、
前記複数のプロセッサコアは、演算処理部と、主にこの演算処理部によって使用される一時記憶部と、前記演算処理部が前記一時記憶部にアクセス可能にこれら演算処理部及び一時記憶部を接続する第２通信路とをそれぞれ所有し、
前記複数のプロセッサコアのうちの少なくとも２つのプロセッサコアは、自身以外のプロセッサコアの動作状態を監視する監視側コア、及び、この監視側コアによって動作状態が監視される被監視側コアに割り当てられ、
前記被監視側コアは、当該被監視側コア所有の一時記憶部に対し、当該被監視用コア所有の前記第２通信路を介してアクセスして、所定時間毎に第１書込操作を実行し、
前記監視側コアは、前記被監視側コアによる第１書込操作の結果を前記第１通信路を介して監視しつつ、当該監視側コア所有の一時記憶部に対し、当該監視側コア所有の前記第２通信路を介してアクセスして、前記第１書込操作の結果に対応する第２書込操作を前記所定時間毎に実行するとともに、当該監視側コア所有の一時記憶部に書き込まれたこの第２書込操作の結果に基づく所定の判定条件が成立するとき、前記被監視側コアの動作状態が異常である旨を判定するマルチコアの異常監視装置であって、
前記監視側コアは、アドレス情報記憶部及びアクセス判定部を有する第１保護手段を、前記第１通信路と当該監視側コア所有の一時記憶部との接続部に所有しており、
前記第１保護手段の前記アドレス情報記憶部には、当該監視側コアの演算処理部によって設定された前記監視側コア所有の一時記憶部のアドレス情報及びこのアドレスへのアクセス禁止態様があらかじめ記憶され、
前記第１保護手段の前記アクセス判定部は、前記監視側コア以外のプロセッサコアが前記第１通信路を介してアクセスしようとするアドレス及びそのアクセス態様が、前記第１保護手段の前記アドレス情報記憶部に記憶されたアドレス情報及びアクセス禁止態様に、それぞれ一致するか否かを判定し、
前記第１保護手段は、当該第１保護手段の前記アクセス判定部によって一致する旨が判定されるとき、前記監視側コア以外のプロセッサコアが前記第１通信路を介して前記監視側コア所有の一時記憶部へアクセスすることを遮断することを特徴とする、マルチコアの異常監視装置。
【請求項２】
前記被監視側コアは、アドレス情報記憶部及びアクセス判定部を有する第２保護手段を、当該被監視側コア所有の演算処理部と前記第１通信路との接続部に所有しており、
前記第２保護手段の前記アドレス情報記憶部には、当該被監視側コアの演算処理部によって設定された前記監視側コア所有の一時記憶部のアドレス情報びこのアドレスへのアクセス禁止態様があらかじめ記憶され、
前記第２保護手段の前記アクセス判定部は、当該被監視側コアが前記第１通信路を介してアクセスしようとするアドレス及びそのアクセス態様が、前記第２保護手段の前記アドレス情報記憶部に記憶されたアドレス情報及びアクセス禁止態様に、それぞれ一致するか否かを判定し、
前記第２保護手段は、当該第２保護手段の前記アクセス判定部によって一致する旨が判定されるとき、前記被監視側コアが前記第１通信路を介して前記監視側コア所有の一時記憶部へアクセスすることを遮断することを特徴とする、請求項１に記載のマルチコアの異常監視装置。
【請求項３】
前記第１保護手段は、動作時に、前記監視側コア所有の一時記憶部にアクセスしようとした、前記監視側コア以外のプロセッサコアの動作状態にかかる情報を前記監視側コアに通知する通知手段をさらに備え、
前記監視側コアは、前記通知手段によって通知された前記情報に基づいて前記監視側コア以外のプロセッサコアの動作状態の異常の程度を判断し、前記被監視側コアの復帰処理をこの異常の程度に応じて実行することを特徴とする、請求項１または２に記載のマルチコアの異常監視装置。
【請求項４】
前記第１書込操作は、前記被監視側コアが、前記被監視側コア所有の一時記憶部に対し、所定値及びこの所定値の反転値を所定時間毎に交互に書き込む操作である、請求項１〜３のいずれか一項に記載のマルチコアの異常監視装置。
【請求項５】
前記第２書込操作は、前記監視側コアが、前記監視側コア所有の一時記憶部に対し、前記第１書込操作が連続して正しく実行されない回数を書き込む操作である、請求項１〜４のいずれか一項に記載のマルチコアの異常監視装置。
【請求項６】
当該マルチコアの異常監視装置は、制御対象を制御するための最終制御値を算出する制御装置に適用され、
前記監視側コアは、前記制御対象が有する各種センサのセンサ出力値に基づき、前記制御対象の制御を持続可能とする基本制御値を算出する基本制御値算出処理と、所定のデフォルト値に基づいて、前記基本制御値算出処理を通じて算出された基本制御値を最終制御値に補正する第１補正処理とを実行し、
前記被監視側コアは、前記センサ出力値に基づいて、前記基本制御値算出処理を通じて算出された基本制御値を最終制御値に補正する第２補正処理を実行し、
当該装置は、前記被監視側コアの動作状態が正常である旨判定されるとき、前記第２補正処理を通じて補正された最終制御値に基づき前記制御対象を制御し、前記被監視側コアの動作状態が異常である旨判定されるとき、フェイルセーフとして、前記第１補正処理を通じて補正された最終制御値に基づき前記制御対象を制御することを特徴とする、請求項１〜５のいずれか一項に記載のマルチコアの異常監視装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数のプロセッサコアが１つのパッケージに集積されたマルチコアの異常監視装置に関する。
【背景技術】
【０００２】
一般に、マイクロプロセッサ（ＣＰＵ）は、命令発行器や演算器等が組み合わされて１つの部品として動作するプロセッサコアを、１つのパッケージに１つのみ有している。そして、そうしたＣＰＵを複数用いるマルチプロセッサ構成のＥＣＵを用い、例えば自動車等の各種制御が実行されている。こうしたマルチプロセッサ構成のＥＣＵでは、該ＥＣＵを構成する複数のＣＰＵが、監視元（監視する側：以下、メイン側と記載）あるいは監視対象（監視される側：以下、サブ側と記載）に割り当てられており、メイン側ＣＰＵはサブ側ＣＰＵの動作状態を監視している。
【０００３】
詳しくは、例えば、サブ側ＣＰＵは、所定のポート出力値を所定時間毎に反転し、メイン側ＣＰＵは、所定のポート出力値をモニタする。ここで、所定のポート出力値が反転しなかったり異なる値になったりすることが連続して所定回数生じると、メイン側ＣＰＵは、サブ側ＣＰＵの動作状態が異常であると判断する。サブ側ＣＰＵの動作状態が異常であると判断すると、メイン側ＣＰＵは、例えばサブ側ＣＰＵが算出した値を予め定められたデフォルト値に置換するなど、フェイルセーフを実行する。
【０００４】
こうした一般的な技術を、複数のプロセッサコアを１つのパッケージに有するマルチコア構成のＥＣＵに対してそのまま適用しようとすると、次のような課題が生じる。すなわち、マルチコア構成のＥＣＵでは、該ＥＣＵを構成する複数のプロセッサコア間で共有する例えばＲＡＭやレジスタ等のリソース（資源）を１つのパッケージ内に備えており、各プロセッサコアはこの共有リソースにアクセスすることが可能である。そのため、サブ側コアの動作状態が異常であるとき、上記所定回数をカウントするためにメイン側コアが使用していた共有ＲＡＭの領域に、サブ側コアがアクセスしてしまい、その内容を書き換えてしまうことがある。このように共有ＲＡＭの内容が書き換えられると、共有ＲＡＭに記憶保持された内容に基づきサブ側コアの動作状態を判断しているため、メイン側コアはサブ側コアの動作状態を正確に判断することができなくなってしまう。ひいては、上記フェイルセーフを適切に実行することが難しくなってしまう。
【０００５】
そこで従来、例えば特許文献１に記載の技術では、各プロセッサコアと共有ＲＡＭとの間に書き込み禁止領域指定手段を備え、この書き込み禁止領域指定手段を通じて、プロセッサコアが当該プロセッサコア専用の領域以外の領域に書き込もうとするとき、その書込を無効にしていた。
【特許文献１】特開平７−２００５０３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記従来技術では、共有ＲＡＭの各プロセッサコアが使用する領域をそれぞれ専用化することができるため、例えば上記サブ側コアの動作状態が異常であったとしても、上記メイン側コアが使用していた共有ＲＡＭのメイン側コアの専用領域に記憶保持されていた内容を、サブ側コアが書き換えてしまうようなことは生じにくくなる。
【０００７】
しかしながら、サブ側コアの異常動作状態がさらに深刻になると、例えば、サブ側コアは、上記書込禁止領域指定手段に記憶されている書込禁止領域を書き換えてしまい、上記メイン側コアが使用していた共有ＲＡＭのメイン側コアの専用領域を、書込禁止領域の指定から外してしまうことも考えられる。こうなると、メイン側コアの専用領域に記憶されていた内容がサブ側コアによって書き換えられてしまうことも起こり得る。そして、メイン側コアは、サブ側コアの動作状態を正確に判断することができなくなり、ひいては、上記フェイルセーフを適切に実行することがやはり難しくなってしまう。
【０００８】
本発明は、こうした実情に鑑みてなされたものであって、その目的は、各コアの動作状態をより正確に判定することのできるマルチコアの異常監視装置を提供することにある。
【課題を解決するための手段】
【０００９】
こうした目的を達成するため、請求項１に記載の発明では、複数のプロセッサコア及びこれら複数のプロセッサコア間を接続する第１通信路が１つのパッケージに集積され、前記複数のプロセッサコアは、演算処理部と、主にこの演算処理部によって使用される一時記憶部と、前記演算処理部が前記一時記憶部にアクセス可能にこれら演算処理部及び一時記憶部を接続する第２通信路とをそれぞれ所有し、前記複数のプロセッサコアのうちの少なくとも２つのプロセッサコアは、自身以外のプロセッサコアの動作状態を監視する監視側コア、及び、この監視側コアによって動作状態が監視される被監視側コアに割り当てられ、前記被監視側コアは、当該被監視側コア所有の一時記憶部に対し、当該被監視用コア所有の前記第２通信路を介してアクセスして、所定時間毎に第１書込操作を実行し、前記監視側コアは、前記被監視側コアによる第１書込操作の結果を前記第１通信路を介して監視しつつ、当該監視側コア所有の一時記憶部に対し、当該監視側コア所有の前記第２通信路を介してアクセスして、前記第１書込操作の結果に対応する第２書込操作を前記所定時間毎に実行するとともに、当該監視側コア所有の一時記憶部に書き込まれたこの第２書込操作の結果に基づく所定の判定条件が成立するとき、前記被監視側コアの動作状態が異常である旨を判定するマルチコアの異常監視装置であって、前記監視側コアは、アドレス情報記憶部及びアクセス判定部を有する第１保護手段を、前記第１通信路と当該監視側コア所有の一時記憶部との接続部に所有しており、前記第１保護手段の前記アドレス情報記憶部には、当該監視側コアの演算処理部によって設定された前記監視側コア所有の一時記憶部のアドレス情報及びこのアドレスへのアクセス禁止態様があらかじめ記憶され、前記第１保護手段の前記アクセス判定部は、前記監視側コア以外のプロセッサコアが前記第１通信路を介してアクセスしようとするアドレス及びそのアクセス態様が、前記第１保護手段の前記アドレス情報記憶部に記憶されたアドレス情報及びアクセス禁止態様に、それぞれ一致するか否かを判定し、前記第１保護手段は、当該第１保護手段の前記アクセス判定部によって一致する旨が判定されるとき、前記監視側コア以外のプロセッサコアが前記第１通信路を介して前記監視側コア所有の一時記憶部へアクセスすることを遮断することとした。
【００１０】
マルチコアの異常監視装置としてのこのような構成では、まず、被監視側コアは、被監視側コア所有の一時記憶部に第２通信路を介してアクセスし、所定時間毎に第１書込操作を実行する。一方、監視側コアは、そうした被監視側コアによる第１書込操作の結果を第１通信路を介して監視しつつ、監視側コア所有の一時記憶部に第２通信路を介してアクセスし、第１書込操作の結果に対応する第２書込操作を所定時間毎に実行する。そして、監視側コアは、この第２書込操作の結果に基づく所定の判定条件が成立するとき、被監視側コアの動作状態が異常である旨を判定する。
【００１１】
ここで、例えば監視側コア以外のプロセッサコアの１つ（ここでは被監視側コア）の動作状態が異常となり、被監視側コアが監視側コア所有の一時記憶部に異常アクセスして、第１書込操作を含む操作をこの一時記憶部に実行しようとすることがある。このとき、第１保護手段を構成するアクセス判定部は、被監視側コアが第１通信路を介してアクセスしようとするアドレス及びそのアクセス態様が、第１保護手段を構成するアドレス情報記憶部に記憶されたアドレス及びアクセス禁止態様に、それぞれ一致するか否かを判定する。ここで、被監視側コアが第１通信路を介してアクセスしようとするアドレスは、監視側コア所有の一時記憶部のアドレスであり、アドレス情報記憶部に記憶されたアドレスに一致する。また、そうしたアクセス態様は、第１書込操作を含む操作、すなわち書き込みアクセスであり、アドレス情報記憶部に記憶されたアクセス禁止態様は、通常、書き込みアクセスであるため、これらは一致する。したがって、第１保護手段を構成するアクセス判定部を通じて、一致する旨が判定され、被監視側コアによる監視側コア所有の一時記憶部への異常アクセスは第１保護手段によって遮断されることになる。そのため、監視側所有の一時記憶部に対し第１書込操作を含む操作が実行されることはなくなる。
【００１２】
しかも、被監視側コアの異常動作状態が背景技術の欄に記載したほどに深刻になったところで、第１保護手段を構成するアドレス情報記憶部に上記アドレス情報及び上記アクセス態様を記憶するのは、深刻な異常動作状態にある被監視側コアの演算処理部ではなく、正常な動作状態にある監視側コアの演算処理部である。そのため、第１保護手段を構成するアドレス情報記憶部に記憶されるアドレスは、間違いなく、監視側コアが所有する一時記憶部のアドレスとなり、第１保護手段を構成するアドレス情報記憶部に記憶されるアクセス禁止態様は、間違いなく、書き込みアクセスとなる。そして、被監視側コアによる監視側コア所有の一時記憶部への異常アクセスは、第１保護手段を構成するアクセス判定部によって確実に遮断され、監視側コア所有の一時記憶部に記憶されているデータが書き換えられるようなことはなくなる。したがって、監視側コアは、上記判定条件を正確に判定することができ、被監視側コアの動作状態を正確に判断することができるようになる。そしてひいては、各コアの動作状態をより正確に判断することができるようになる。
【００１３】
上記請求項１に記載の構成において、請求項２に記載の発明では、前記被監視側コアは、アドレス情報記憶部及びアクセス判定部を有する第２保護手段を、当該被監視側コア所有の演算処理部と前記第１通信路との接続部に所有しており、前記第２保護手段の前記アドレス情報記憶部には、当該被監視側コアの演算処理部によって設定された前記監視側コア所有の一時記憶部のアドレス情報びこのアドレスへのアクセス禁止態様があらかじめ記憶され、前記第２保護手段の前記アクセス判定部は、当該被監視側コアが前記第１通信路を介してアクセスしようとするアドレス及びそのアクセス態様が、前記第２保護手段の前記アドレス情報記憶部に記憶されたアドレス情報及びアクセス禁止態様に、それぞれ一致するか否かを判定し、前記第２保護手段は、当該第２保護手段の前記アクセス判定部によって一致する旨が判定されるとき、前記被監視側コアが前記第１通信路を介して前記監視側コア所有の一時記憶部へアクセスすることを遮断することとした。
【００１４】
ここで、例えば監視側コア以外のプロセッサコアの１つ（ここでは被監視側コア）の動作状態が異常となり、被監視側コアが監視側コア所有の一時記憶部に異常アクセスして、第１書込操作を含む操作をこの一時記憶部に実行しようとすることがある。このとき、第２保護手段を構成するアクセス判定部は、被監視側コアが第１通信路を介してアクセスしようとするアドレス及びそのアクセス態様が、第２保護手段を構成するアドレス情報記憶部に記憶されたアドレス及びアクセス禁止態様に、それぞれ一致するか否かを判定する。ここで、被監視側コアが第１通信路を介してアクセスしようとするアドレスは監視側コア所有の一時記憶部のアドレスであり、第２保護手段を構成するアドレス情報記憶部に記憶されたアドレスに一致する。また、そうしたアクセス態様は、第１書込操作を含む操作、すなわち書き込みであり、第２保護手段を構成するアドレス情報記憶部に記憶されたアクセス禁止態様は、通常、書き込みアクセスであるため、これらは一致する。したがって、第２保護手段を構成するアクセス判定部を通じて、一致する旨が判定され、被監視側コアによる監視側コア所有の一時記憶部への異常アクセスは第２保護手段によって遮断される。そのため、監視側所有の一時記憶部に対し第１書込操作を含む操作が実行されることは抑制される。
【００１５】
ただし、被監視側コアの異常動作状態が背景技術の欄に記載したほどに深刻になると、第２保護手段を構成するアドレス情報記憶部に上記アドレス情報及び上記アクセス態様を記憶するのは、深刻な異常動作状態にある被監視側コアの演算処理部であるため、第２保護手段を構成するアドレス情報記憶部に記憶されるアドレスは、間違いなく、監視側コアが所有する一時記憶部のアドレスであるとは言えなくなり、第２保護手段を構成するアドレス情報記憶部に記憶されるアクセス禁止態様も、間違いなく、書き込みアクセスであるとは言えなくなってしまう。そのため、被監視側コアによる監視側コア所有の一時記憶部への異常アクセスが、第２保護手段を構成するアクセス判定部によって遮断されることなく、監視側コア所有の一時記憶部に記憶されているデータが書き換えようとすることも起こり得る。
【００１６】
しかしながら、上記請求項２に記載の構成は、上記請求項１に記載の構成と併用されることが前提である。そのため、第２保護手段にて遮断されなかった異常アクセスは、上記第１保護手段にて確実に遮断される。このように、上記第１及び第２保護手段を併用する上記請求項２に記載の構成によれば、監視側コア所有の一時記憶部の、被監視側コアによる異常アクセスに対する堅牢性が高められ、監視側コアは、上記判定条件をより正確に判定することができ、被監視側コアの動作状態をより正確に判断することができるようになる。
【００１７】
こうした構成において、例えば請求項３に記載の発明のように、前記第１保護手段は、動作時に、前記監視側コア所有の一時記憶部にアクセスしようとした、前記監視側コア以外のプロセッサコアの動作状態にかかる情報を前記監視側コアに通知する通知手段をさらに備え、前記監視側コアは、前記通知手段によって通知された前記情報に基づいて前記監視側コア以外のプロセッサコアの動作状態の異常の程度を判断し、前記被監視側コアの復帰処理をこの異常の程度に応じて実行することとしてもよい。これにより、監視側コア以外のプロセッサコアの動作状態が異常であるか否かの２値的な判定に留まらず、その異常の程度を判断することができるため、各コアの動作状態をさらに正確に判断することができるようになる。
【００１８】
また、こうした構成において、前記第１書込操作としては、例えば請求項４に記載の発明のように、前記被監視側コアが、前記被監視側コア所有の一時記憶部に対し、所定値及びこの所定値の反転値を所定時間毎に交互に書き込む操作を採用することとしてもよい。さらに、前記第２書込操作としては、例えば請求項５に記載の発明のように、前記監視側コアが、前記監視側コア所有の一時記憶部に対し、前記第１書込操作が連続して正しく実行されない回数を書き込む操作を採用することとしてもよい。このような簡素な構成によっても、各コアの動作状態が異常であるか否かを判定することができるようになる。
【００１９】
上記請求項１〜５のいずれかに記載の構成において、例えば請求項６に記載の発明のように、当該マルチコアの異常監視装置は、制御対象を制御するための最終制御値を算出する制御装置に適用され、前記監視側コアは、前記制御対象が有する各種センサのセンサ出力値に基づき、前記制御対象の制御を持続可能とする基本制御値を算出する基本制御値算出処理と、所定のデフォルト値に基づいて、前記基本制御値算出処理を通じて算出された基本制御値を最終制御値に補正する第１補正処理とを実行し、前記被監視側コアは、前記センサ出力値に基づいて、前記基本制御値算出処理を通じて算出された基本制御値を最終制御値に補正する第２補正処理を実行し、当該装置は、前記被監視側コアの動作状態が正常である旨判定されるとき、前記第２補正処理を通じて補正された最終制御値に基づき前記制御対象を制御し、前記被監視側コアの動作状態が異常である旨判定されるとき、フェイルセーフとして、前記第１補正処理を通じて補正された最終制御値に基づき前記制御対象を制御することが望ましい。
【発明を実施するための最良の形態】
【００２０】
（第１の実施の形態）
以下、本発明に係るマルチコアの異常監視装置の第１の実施の形態について、図１〜図６を参照して説明する。なお、図１及び図６は、本実施の形態の構成例及び動作例をそれぞれ示す模式図であり、図２及び図３は、本実施の形態で実行される異常監視判断処理及び被監視用処理について、その処理手順をそれぞれ示すフローチャートである。また、図４及び図５は、本実施の形態で実行される出口保護手段及び入口保護手段の初期設定処理について、その処理手順をそれぞれ示すフローチャートである。
【００２１】
これら図１〜図６に示されるように、また、以下に詳述するように、本実施の形態のマルチコアの異常監視装置は、例えば２つのプロセッサコア及びこれらプロセッサ間を接続する第１通信路が１つのパッケージに集積された、いわゆるデュアルコアによって構成されており、例えば自動車の燃焼室に燃料を噴射供給する燃料噴射制御装置に適用されている。
【００２２】
はじめに、図１を参照して、本実施の形態の構成について説明する。同図１に示すように、デュアルコアの異常監視装置１は、基本的に、被監視側コア１０ｂの動作状態を監視する監視側コア１０ａと、該監視側コア１０ａによってその動作状態が監視される被監視側コア１０ｂと、これら両コア１０ａ及び１０ｂが後述する各種処理及び各種制御を実行するために必要な情報を送受信可能に接続する第１通信路（例えばバス等）６０とをパッケージ１００に備えている。なお、本実施の形態では、パッケージ１００はプロセッサコアを２つ有しており、説明の便宜上、図１の左方に位置するプロセッサコアを監視側コアに、図１の右方に位置するプロセッサコアを被監視側コアにそれぞれ割り当てているが、これらプロセッサコアの役割を逆に割り当てることとしてもよく、互いに互いを監視するように役割を割り当てることとしてもよい。
【００２３】
ここで、監視側コア１０ａは、基本的に、後述の異常監視判断処理を実行するＣＰＵ（演算処理部）２０ａと、このＣＰＵ２０ａによって主に使用されるＲＡＭ３０ａと、ＣＰＵ２０ａがＲＡＭ３０ａにアクセス可能にこれらを接続する第２通信路７０ａとを所有している。同様に、被監視側コア１０ｂも、基本的に、後述する被監視用処理を実行するＣＰＵ（演算処理部）２０ｂと、このＣＰＵ２０ｂによって主に使用されるＲＡＭ３０ｂと、ＣＰＵ２０ｂがＲＡＭ３０ｂにアクセス可能にこれらを接続する第２通信路７０ｂとを所有している。
【００２４】
ＲＡＭ３０ａは、監視側コア１０ａによって所有され、主に使用されるものの、被監視側コア１０ｂによっても第１通信路６０を介することで使用される。同様に、ＲＡＭ３０ｂは、被監視側コア１０ｂによって所有され、主に使用されているものの、監視側コア１０ａによっても第１通信路６０を介することで使用される。
【００２５】
ただし、監視側コア１０ａ及び被監視側コア１０ｂはそれぞれ、ＲＡＭ３０ａ及び３０ｂの全領域を使用（書き込み及び読み込み）することができるわけではない。図１に示すように、ＲＡＭ３０ａには、第２通信路７０ａを介して監視側コア１０ａのみが書き込み及び読み込みをすることができ、第１通信路６０を介したところで被監視側コア１０ｂは読み込みをすることさえできない、カウント用ＲＡＭ領域３１ａが、プログラム（ソフトウエア）上、設定されている。同様に、図１に示すように、ＲＡＭ３０ｂには、第２通信路７０ｂを介して被監視側コア１０ｂのみが書き込み及び読み込みをすることができ、第１通信路６０を介したところで監視側コア１０ａは読み込むことしかできない、被監視用ＲＡＭ領域３１ｂが、プログラム（ソフトウエア）上、設定されている。
【００２６】
詳しくは、被監視用ＲＡＭ領域３１ｂは、監視側コア１０ａによって、以下のように使用される。
【００２７】
図２に示すように、ＣＰＵ２０ｂは、まず、ステップＳ２０の処理として、被監視用ＲＡＭ領域３１ｂに一時記憶されている値を第２通信路７０ｂを介して読み込み、続くステップＳ２２の処理として、被監視用ＲＡＭ領域３１ｂに読み込んだ値の反転値を第２通信路７０ｂを介して書き込む。こうした一連の処理（ステップＳ２０及びＳ２２）を所定時間毎に実行する。なお、本実施の形態では、被監視用ＲＡＭ領域３１ｂに一時記憶されている初期値として、例えば１６進数「＄５５」を採用している（したがって、その反転値は１６進数「＄ＡＡ」となる）。そのため、ＣＰＵ２０ｂの動作状態が正常であるとき、被監視用処理が正常に実行されるため、被監視用ＲＡＭ領域３１ｂには、１６進数「＄５５」及び「＄ＡＡ」が所定時間毎に反転して一時記憶されることとなる。ちなみに、ＣＰＵ２０ａは、後述するように、この被監視用ＲＡＭ領域３１ｂに一時記憶されているデータを読み込み、この読み込んだデータに基づいてＣＰＵ２０ｂの動作状態の判断を実行する。
【００２８】
また、カウント用ＲＡＭ領域３１ａは、監視側コア１０ａ（正確にはＣＰＵ２０ａ）によって、以下のように使用される。
【００２９】
図３に示すように、ＣＰＵ２０ａは、まず、ステップＳ３０の処理として、被監視用ＲＡＭ領域３１ｂに一時記憶されている値を第１通信路６０を介して読み込み（モニタリング）、続くステップＳ３１の判断処理として、読み込んだ値に異常があるか無いかを判断する。すなわち、ＣＰＵ２０ａは、読み込んだ値が上記所定値とその反転値との間で所定時間毎に反転されているか否かについて判断する。ここで、先のステップＳ３１の判断処理において、読み込んだ値が上記所定値とその反転値との間で所定時間毎に反転されているとき（ステップＳ３１の判断処理で「ＮＯ」）、ＣＰＵ２０ｂによる上記被監視用処理（図２）は正しく実行されていることを意味する。そのため、ＣＰＵ２０ａは、ＣＰＵ２０ｂの動作状態は正常であると判断し、続くステップＳ３２の処理として、カウント用ＲＡＭ領域３１ａに一時記憶されている異常回数カウント値を第２通信路７０ａを介して零にクリアした上で、異常監視判断処理を一旦終了する。
【００３０】
一方、先のステップＳ３１の判断処理において、読み込んだ値が所定時間毎に反転されていないとき、あるいは、読み込んだ値が上記所定値及びその反転値以外の値になっているとき（ステップＳ３１の判断処理で「Ｙｅｓ」）、ＣＰＵ２０ｂによる上記被監視用処理（図２）が正しく実行されていないことを意味する。そのため、ＣＰＵ２０ａは、ＣＰＵ２０ｂの動作状態が異常である可能性が高いと判断し、続くステップＳ３３の処理として、カウント用ＲＡＭ領域３１ａに一時記憶されている異常回数カウント値を第２通信路７０ａを介してインクリメントする。
【００３１】
そして、ＣＰＵ２０ａは、続くステップＳ３４の判断処理として、異常回数カウント値が判定値に到達したか否かを判断する。ここで、異常回数カウント値が判定値に到達しないとき（ステップＳ３４の判断処理において「ＮＯ」）、ＣＰＵ２０ｂの動作状態が正常に復帰する可能性もあるため、ＣＰＵ２０ｂの動作状態が異常である旨の判定をただちにすることなく、異常監視判定処理を一旦終了する。しかしながら、異常回数カウント値が判定値に到達するとき（ステップＳ３４の判断処理において「ＹＥＳ」）、ＣＰＵ２０ｂの動作状態が正常に復帰する可能性は極めて低いため、ＣＰＵ２０ｂの動作状態が異常である旨を判定し、続くステップＳ３５の処理として、後述のフェイルセーフ処理を実行する。監視側コア１０ａ（正確にはＣＰＵ２０ａ）は、こうした一連の異常監視判断処理（ステップＳ３０〜Ｓ３５）を所定時間毎に実行する。
【００３２】
しかしながら、上記ＣＰＵ２０ａ及び２０ｂの実行プログラムが、上記ＲＡＭ３０ａ及び３０ｂを上述の態様をもって使用するようにプログラムされていても、また、そうしたプログラムがたとえ正しいものであったとしても、実際には、例えばノイズに起因して、あるいは、被監視側であるＣＰＵ２０ｂの動作状態が異常となると、ＣＰＵ２０ｂがカウント用ＲＡＭ領域３１ａに第１通信路６０を介してアクセスし、該カウント用ＲＡＭ領域３１ａに一時記憶されているデータを書き換えてしまうことがある。このようにカウント用ＲＡＭ領域３１ａに一時記憶されているデータが書き換えられてしまうと、ＣＰＵ２０ａは、カウント用ＲＡＭ領域３１ａに一時記憶されているデータに基づきＣＰＵ２０ｂの動作状態を判断しているため、ＣＰＵ２０ｂの動作状態を正確に判断することができなくなってしまう。そして、ひいては、後述するフェイルセーフ処理（先のステップＳ３５の処理）を適切に実行することが難しくなってしまう。
【００３３】
そこで、本実施の形態では、先の図１に示すように、被監視側コア１０ｂは、第１通信路６０とＣＰＵ２０ｂとの接続部、並びに、第２通信路７０ｂとＣＰＵ２０ｂとの接続部に、出口保護部（第２保護手段）４０ｂを所有することとし、監視側コア１０ａは、第１通信路６０とＣＰＵ２０ａとの接続部、並びに、第２通信路７０ａとＣＰＵ２０ａとの接続部に、出口保護部４０ａを所有することとした。すなわち、ＣＰＵ２０ｂは、出口保護部４０ｂを介さなければ、ＲＡＭ３０ａ（特に、カウント用ＲＡＭ領域３１ａ）あるいはＲＡＭ３０ｂ（特に、被監視用ＲＡＭ領域３１ｂ）にアクセスすることができず、同様に、ＣＰＵ２０ａは、出口保護部４０ａを介さなければ、ＲＡＭ３０ａ（特に、カウント用ＲＡＭ領域３１ａ）あるいはＲＡＭ３０ｂ（特に、被監視用ＲＡＭ領域３１ｂ）にアクセスすることはできない。このように、出口保護部４０ａ及び４０ｂを介在させることで、上述のようにＣＰＵ２０ｂの動作状態が異常となっても、カウント用ＲＡＭ領域３１ａ及び被監視用ＲＡＭ領域３１ｂを、上記態様にて、ＣＰＵ２０ａ及び２０ｂに使用させようとしている。
【００３４】
以下、こうした出口保護部４０ａ及び４０ｂについて詳述する。先の図１に示されるように、出口保護部４０ａは、例えば小規模なマイコンによって構成され、アクセス判定部４１ａ及びアドレス情報記憶部４２ａを有しており、同様に、出口保護部４０ｂは、例えば小規模なマイコンによって構成され、アクセス判定部４１ｂ及びアドレス情報記憶部４２ｂを有している。
【００３５】
ＣＰＵ２０ａは、先の図３に示した異常監視判断処理の実行前に、図４（ａ）に示す出口保護部４０ａの初期設定処理を実行する。ＣＰＵ２０ａは、まず、ステップＳ４０ａの処理として、カウント用ＲＡＭ領域３１ａ及び被監視用ＲＡＭ領域３１ｂのアドレスをアドレス情報記憶部４２ａに記憶させる。ＣＰＵ２０ａは、次に、ステップＳ４２ａの処理として、そうした記憶済みの各アドレスを対象に、「書き込みまで許可する」及び「読み込みのみ許可する」旨の設定をそれぞれ行う。同様に、ＣＰＵ２０ｂは、先の図２に示した被監視用処理の実行前に、図４（ｂ）に示す出口保護部４０ｂの初期設定処理を実行する。ＣＰＵ２０ｂは、まず、ステップＳ４０ｂの処理として、カウント用ＲＡＭ領域３１ａ及び被監視用ＲＡＭ領域３１ｂのアドレスをアドレス情報記憶部４２ｂに記憶させる。ＣＰＵ２０ｂは、次に、ステップＳ４２ｂの処理として、そうした記憶済みの各アドレスを対象に、「一切のアクセスを禁止する」及び「書き込みまで許可する」旨の設定をそれぞれ行う。
【００３６】
ここで、ＣＰＵ２０ａ及び２０ｂによる、カウント用ＲＡＭ領域３１ａ及び被監視用ＲＡＭ領域３１ｂへの、上記アクセス禁止態様を採用する理由を説明する。
【００３７】
そもそも、ＣＰＵ２０ｂの動作状態についてＣＰＵ２０ａが判断するにあたり、ＣＰＵ２０ｂがカウント用ＲＡＭ領域３１ａを第１通信路６０を介して読み込んだり書き込んだりする必要はない。また、ＣＰＵ２０ｂの動作状態についてＣＰＵ２０ａが判断するにあたり、ＣＰＵ２０ｂは被監視用ＲＡＭ領域３１ｂに対して上記所定値及び上記反転値を書き込む必要がある。
【００３８】
そのため、ＣＰＵ２０ｂから出口保護部４０ｂに対し、ＲＡＭ３０ａあるいは３０ｂへのアクセスが要求されると、まず、アクセス判定部４１ｂは、要求先のアドレスが、（アドレス情報記憶部４２ｂに一時記憶しておいた）上記カウント用ＲＡＭ領域３１ａあるいは被監視用ＲＡＭ領域３１ｂのアドレスに一致するか否かを判定する。ここで、要求先のアドレスが上記アドレスに一致しないとき、アクセス判定部４１ｂは、ＣＰＵ２０ｂによるアクセス要求を許可する。
【００３９】
一方、要求先のアドレスが上記アドレスに一致するとき、アクセス判定部４１ｂは、さらに、ＣＰＵ２０ｂによるアクセス要求が読み込み要求であるか書き込み要求であるかを判別する。そして、アクセス判定部４１ｂは、ＣＰＵ２０ｂによるアクセス要求が、カウント用ＲＡＭ領域３１ａの読み込み要求、あるいは、カウント用ＲＡＭ領域３１ａへの書き込み要求であるとき、これら一切を遮断することとしている。また、ＣＰＵ２０ｂによるアクセス要求が、被監視用ＲＡＭ領域３１ｂの読み込み要求、あるいは、被監視用ＲＡＭ領域３１ｂへの書き込み要求であるとき、これらを受け入れることとしている。
【００４０】
このように、ＣＰＵ２０ｂは、カウント用ＲＡＭ領域３１ａにアクセスして、一時記憶されているデータを読み込むことも、データを書き換えることもできなくなる。したがって、当該デュアルコアの異常監視装置１では、被監視側コア１０ｂが出口保護部４０ｂを所有するため、カウント用ＲＡＭ領域３１ａに一時記憶されるデータは破壊されにくくなる。
【００４１】
一方、ＣＰＵ２０ａは、ＣＰＵ２０ｂの動作状態について判断を行う目的で、被監視用ＲＡＭ領域３１ｂを読み込む必要がある。また、ＣＰＵ２０ｂの動作状態についてＣＰＵ２０ａが判断するにあたり、ＣＰＵ２０ａはカウント用ＲＡＭ領域３１ａに異常回数カウント値を書き込む必要がある。
【００４２】
そのため、ＣＰＵ２０ａから出口保護部４０ａに対し、ＲＡＭ３０ａあるいは３０ｂへのアクセスが要求されると、まず、アクセス判定部４１ａは、要求先のアドレスが、（アドレス情報記憶部４２ａに一時記憶しておいた）上記カウント用ＲＡＭ領域３１ａあるいは被監視用ＲＡＭ領域３１ｂのアドレスに一致するか否かを判定する。ここで、要求先のアドレスが上記アドレスに一致しないとき、アクセス判定部４１ａは、ＣＰＵ２０ａによるアクセス要求を許可する。
【００４３】
一方、要求先のアドレスが上記アドレスに一致するとき、アクセス判定部４１ａは、さらに、ＣＰＵ２０ａによるアクセス要求が読み込み要求であるか書き込み要求であるかを判別する。そして、アクセス判定部４１ａは、ＣＰＵ２０ａによるアクセス要求が、カウント用ＲＡＭ領域３１ａの読み込み要求、あるいは、カウント用ＲＡＭ領域３１ａへの書き込み要求であるとき、これらを受け入れることとしている。また、ＣＰＵ２０ａによるアクセス要求が、被監視用ＲＡＭ領域３１ｂの読み込み要求であるとき、これらを受け入れることとしている。しかしながら、ＣＰＵ２０ａによるアクセス要求が、被監視用ＲＡＭ領域３１ｂへの書き込み要求であるとき、これを遮断することとしている。
【００４４】
このように、ＣＰＵ２０ａは、被監視用ＲＡＭ領域３１ｂにアクセスして、一時記憶されているデータを読み込むことはできるものの、データを書き換えることはできなくなる。したがって、当該デュアルコアの異常監視装置１では、監視側コア１０ａが出口保護部４０ａを所有するため、被監視用ＲＡＭ領域３１ｂに一時記憶されるデータは破壊されにくくなる。
【００４５】
ところで、先の図４（ｂ）に示したように、また、既述したように、ＣＰＵ２０ｂは、カウント用ＲＡＭ領域３１ａ及び被監視用ＲＡＭ領域３１ｂのアドレスをアドレス情報記憶部４２ｂに記憶させるとともに、そうしたアドレスの各別に、「一切のアクセスを禁止する」及び「書き込みまで許可する」旨の設定をそれぞれ行っている。
【００４６】
そのため、ＣＰＵ２０ｂの異常動作状態が深刻になると、例えばＣＰＵ２０ｂが、出口保護部４０ｂの上記保護機能を解除してしまうことがある。具体的には、ＣＰＵ２０ｂが、出口保護部４０ｂの初期設定処理（図４（ｂ）参照）において、カウント用ＲＡＭ領域３１ａ及び被監視用ＲＡＭ領域３１ｂのアドレスとは異なるアドレスをアドレス情報記憶部４２ｂに記憶させてしまったり、そうしたアドレスの各別に、上記アクセス許可態様とは異なる許可態様の設定を行ってしまったりすることがある。そして、ＣＰＵ２０ｂから出口保護部４０ｂに対し、そもそも出力されるはずのない、カウント用ＲＡＭ領域３１ａへの書き込み要求が出力されても（異常アクセス）、出口保護部４０ｂはそうした異常アクセスを遮断することができず、カウント用ＲＡＭ領域３１ａに一時記憶されていたデータがＣＰＵ２０ｂによって書き換えられる、すなわち、破壊されてしまうことも起こり得る。そして、ＣＰＵ２０ａは、ＣＰＵ２０ｂの動作状態を正確に判断することができなくなり、ひいては、後述のフェイルセーフ処理を適切に実行することが難しくなってしまう。
【００４７】
そこで、本実施の形態では、先の図１に示すように、監視側コア１０ａは、第１通信路６０とＲＡＭ３０ａとの接続部に、入口保護部（第１保護手段）５０ａを所有することとし、被監視側コア１０ｂは、第１通信路６０とＲＡＭ３０ｂとの接続部に、入口保護部５０ｂを所有することとした。すなわち、ＣＰＵ２０ｂは、出口保護部４０ｂのみならず、入口保護部５０ａを介さなければ、ＲＡＭ３０ａ（特に、カウント用ＲＡＭ領域３１ａ）にアクセスすることができず、同様に、ＣＰＵ２０ａは、出口保護部４０ａのみならず、入口保護部５０ｂを介さなければ、ＲＡＭ３０ｂ（特に、被監視用ＲＡＭ領域３１ｂ）にアクセスすることはできない。このように、入口保護部５０ａ及び５０ｂを介在させることで、カウント用ＲＡＭ領域３１ａ及び被監視用ＲＡＭ領域３１ｂを、ＣＰＵ２０ａ及び２０ｂに、上記態様にて確実に使用させようとしている。
【００４８】
以下、こうした入口保護部５０ａ及び５０ｂについて詳述する。先の図１に示されるように、入口保護部５０ａは、例えば小規模なマイコンによって構成され、アクセス判定部５１ａ及びアドレス情報記憶部５２ａを有しており、同様に、入口保護部５０ｂは、例えば小規模なマイコンによって構成され、アクセス判定部５１ｂ及びアドレス情報記憶部５２ｂを有している。
【００４９】
ＣＰＵ２０ａは、先の図３に示した異常監視判断処理の実行前に、先の図４（ａ）に示した出口保護部４０ａの初期設定処理に加え、図５（ａ）に示す入口保護部５０ａの初期設定処理も実行する。ＣＰＵ２０ａは、まず、ステップＳ５０ａの処理として、カウント用ＲＡＭ領域３１ａのアドレスをアドレス情報記憶部５２ａに記憶させる。ＣＰＵ２０ａは、次に、ステップＳ５２ａの処理として、そうした記憶済みアドレスを対象に、「一切のアクセスを禁止する」旨の設定を行う。同様に、ＣＰＵ２０ｂは、先の図２に示した被監視用処理の実行前に、先の図４（ｂ）に示した出口保護部４０ｂの初期設定処理に加え、図５（ｂ）に示す入口保護部５０ｂの初期設定処理を実行する。ＣＰＵ２０ｂは、まず、ステップＳ５０ｂの処理として、被監視用ＲＡＭ領域３１ｂのアドレスをアドレス情報記憶部５２ｂに記憶させる。ＣＰＵ２０ｂは、次に、ステップＳ５２ｂの処理として、そうした記憶済みアドレスを対象に、「読み込みのみ許可する」旨の設定を行う。
【００５０】
ここで、ＣＰＵ２０ａによるカウント用ＲＡＭ領域３１ａへの上記アクセス許可態様、並びに、ＣＰＵ２０ｂによる被監視用ＲＡＭ領域３１ｂへの上記アクセス許可態様を採用する理由を説明する。
【００５１】
既述したように、そもそも、ＣＰＵ２０ｂの動作状態についてＣＰＵ２０ａが判断するにあたり、ＣＰＵ２０ｂがカウント用ＲＡＭ領域３１ａを読み込んだり書き込んだりする必要はない。そのため、出口保護部４０ｂの保護機能を突破して、入口保護部５０ａに対しＣＰＵ２０ｂからＲＡＭ３０ａ（特に、カウント用ＲＡＭ領域３１ａ）へアクセスが要求されると、アクセス判定部５１ａは、要求先のアドレスが、（アドレス情報記憶部５２ａに一時記憶しておいた）上記カウント用ＲＡＭ領域３１ａのアドレスに一致するか否かを判定する。ここで、要求先のアドレスが上記アドレスに一致しないとき、アクセス判定部５１ａは、ＣＰＵ２０ｂによるアクセス要求を許可する。一方、要求先のアドレスが上記アドレスに一致するとき、アクセス判定部５１ａは、ＣＰＵ２０ｂによるアクセス要求が読み込み要求であるか書き込み要求であるかを問わず、これら一切を遮断することとしている。
【００５２】
このように、たとえ、ＣＰＵ２０ｂの動作異常状態が深刻になり、出口保護部４０ｂの保護機能を突破し、カウント用ＲＡＭ領域３１ａへアクセスしようとしても（異常アクセス）、この異常アクセスは、入口保護部５０ａによって遮断されるため、カウント用ＲＡＭ領域３１ａに一時記憶されているデータを読み込むことも、書き換えることもできなくなる。したがって、当該デュアルコアの異常監視装置１では、監視側コア１０ａが入口保護部５０ａを所有するため、カウント用ＲＡＭ領域３１ａに一時記憶されるデータは破壊されなくなる。
【００５３】
また、ＣＰＵ２０ａは、ＣＰＵ２０ｂの動作状態について判断を行う目的で、被監視用ＲＡＭ領域３１ｂを読み込む必要がある。そのため、出口保護部４０ａの保護機能を（正常に）通過して、入口保護部５０ｂに対しＣＰＵ２０ａからＲＡＭ３０ｂ（特に、被監視用ＲＡＭ領域３１ｂ）へアクセスが要求されると、アクセス判定部５１ｂは、要求先のアドレスが、（アドレス情報記憶部５２ａに一時記憶しておいた）上記被監視用ＲＡＭ領域３１ｂのアドレスに一致するか否かを判定する。ここで、要求先のアドレスが上記アドレスに一致しないとき、アクセス判定部５１ｂは、ＣＰＵ２０ａによるアクセス要求を許可する。
【００５４】
一方、要求先のアドレスが上記アドレスに一致するとき、アクセス判定部５１ｂは、さらに、ＣＰＵ２０ａによるアクセス要求が読み込み要求であるか書き込み要求であるかを判別する。そして、アクセス判定部５１ｂは、ＣＰＵ２０ａによるアクセス要求が、被監視用ＲＡＭ領域３１ｂの読み込み要求であるとき、これを受け入れるものの、ＣＰＵ２０ａによるアクセス要求が、被監視用ＲＡＭ領域３１ｂへの書き込み要求であるとき、これを遮断することとしている。
【００５５】
このように、ＣＰＵ２０ａは、被監視用ＲＡＭ領域３１ｂにアクセスして、一時記憶されているデータを読み込むことはできるものの、データを書き換えることはできなくなる。したがって、当該デュアルコアの異常監視装置１では、監視側コア１０ａが出口保護部４０ａを所有するため、被監視用ＲＡＭ領域３１ｂに一時記憶されるデータは破壊されにくくなる。
【００５６】
入口保護部５０ａは、ＣＰＵ２０ｂと同一の被監視側コア１０ｂに所有されているわけではなく、動作状態が正常であるＣＰＵ２０ａと同一の監視側コア１０ａに所有されている。そのため、たとえＣＰＵ２０ｂの異常動作状態が深刻になったとしても、ＣＰＵ２０ｂは、入口保護部５０ａの保護機能を解除することができない。詳しくは、入口保護部５０ａの保護機能は、アドレス情報記憶部５２ａに一時記憶されたアドレス情報と、そのアドレスを対象としたアクセス許可態様に基づくことにより成立する。そうした入口保護部５０ａの初期設定処理は、ＣＰＵ２０ａによってのみ行うことができ、プログラム上も、物理的にも、ＣＰＵ２０ｂは行うことができない。そのため、たとえＣＰＵ２０ｂの異常動作状態が深刻になったとしても、入口保護部５０ａの保護機能を解除することはできない。したがって、ＣＰＵ２０ｂは、出口保護部４０ｂの保護機能を突破することができたとしても、入口保護部５０ａの保護機能を突破してカウント用ＲＡＭ領域３１ａにアクセスし、一時記憶されているデータを読み込んだり、データを書き込んだりすることはできなくなる。
【００５７】
以上のように構成されたデュアルコアの異常監視装置１の動作例を図６を参照しつつ説明する。
【００５８】
被監視側コア１０ｂ（正確にはＣＰＵ２０ｂ）の動作状態が異常であるとき、図６に矢印にて異常アクセスＡｃ２１及びＡｃ２２として示すように、ＣＰＵ２０ｂはカウント用ＲＡＭ領域３１ａに異常アクセスしようとする。しかしながら、ＣＰＵ２０ｂの異常動作状態が軽度であり、出口保護部４０ｂの保護機能は解除されていないため、ＣＰＵ２０ｂがカウント用ＲＡＭ領域３１ａに異常アクセスしようとしても、そうした異常アクセスＡｃ２１及びＡｃ２２は、出口保護部４０ｂを突破することはできない。したがって、カウント用ＲＡＭ領域３１ａに一時記憶されるデータは保護されることになる。
【００５９】
また、被監視側コア１０ｂ（正確にはＣＰＵ２０ｂ）の異常動作状態が深刻になると、図６に矢印にて異常アクセスＡｃ２３として示すように、ＣＰＵ２０ｂはカウント用ＲＡＭ領域３１ａに異常アクセスしようとする。このとき、ＣＰＵ２０ｂの異常動作状態が深刻であり、出口保護部４０ｂの保護機能は解除されてしまうため、異常アクセスＡｃ２３は出口保護部４０ｂの保護機能を突破してしまう。しかしながら、たとえＣＰＵ２０ｂの異常動作状態が深刻であっても、同一の監視側コア１０ａに所有されていない入口保護部５０ａの保護機能を解除することはできないため、異常アクセスＡｃ２３は、入口保護部５０ａにて遮断されることになる。したがって、カウント用ＲＡＭ領域３１ａに一時記憶されるデータは保護されることになる。
【００６０】
このように、カウント用ＲＡＭ領域３１ａに一時記憶されているデータは、出口保護部４０ｂ及び入口保護部５０ａにて保護されているため、ＣＰＵ２０ａはＣＰＵ２０ｂの動作状態の判断を正確に判断することができるようになる。
【００６１】
また、こうしたデュアルコアの異常監視装置１は、既述したように、例えば自動車の燃焼室に燃料を噴射供給する燃料噴射制御装置（ＥＣＵ）に適用されている。
【００６２】
自動車の運転制御においては、一般に、ＥＣＵを構成する複数のプロセッサコアの一部の動作状態が異常となった場合であっても、フェイルセーフとして、少なくとも退避走行ができなければならない。そのため、例えば燃料噴射制御は、以下に説明するように実行されている。
【００６３】
ＥＣＵを構成する複数のプロセッサコアの動作状態が正常であるときにあっては、例えばエンジンの燃焼室に吸入される空気量等に基づいて、自動車の運転を持続可能な量である基本燃料噴射量を算出するとともに、例えば水温センサにて検出される水温等のパラメータに基づき補正係数を算出し、この補正係数を用いて基本燃料噴射量を最終燃料噴射量に補正する。そして、インジェクタの駆動制御を通じて最終燃料噴射量の燃料を燃焼室に噴射供給している。
【００６４】
一方、ＥＣＵを構成する複数のプロセッサコアの一部の動作状態が異常であるときにあっては、上記フェイルセーフとして、上記パラメータに基づき算出された補正係数を用いるのではなく、この補正係数を所定のデフォルト値に置き換え、このデフォルト値を用いて上記基本燃料噴射量を最終燃料噴射量に補正する。そして、インジェクタの駆動制御を通じて最終燃料噴射量の燃料を燃焼室に噴射供給している。
【００６５】
そして、本実施の形態では、監視側コア１０ａ（正確にはＣＰＵ２０ａ）が、上記基本燃料噴射量（基本制御値）を算出する基本燃料噴射量算出処理（基本制御値算出処理）、及び、所定のデフォルト値を補正係数として用いて基本燃料噴射量を最終燃料噴射量（最終制御値）に補正する第１補正処理、並びに、上記インジェクタの駆動制御を通じた最終燃料噴射量の燃料噴射供給を実行するようにしている。また、被監視側コア１０ｂ（正確にはＣＰＵ２０ｂ）が、各種センサのセンサ出力値に基づき算出した補正係数を用いて上記基本燃料噴射量を最終燃料噴射量に補正する第２補正処理を実行するようにしている。
【００６６】
これにより、当該燃料噴射装置は、ＣＰＵ２０ｂの動作状態が異常である旨ＣＰＵ２０ａによって判定されるとき、フェイルセーフとして、所定のデフォルト値が補正係数として用いられて基本燃料噴射量が補正された最終燃料噴射量の燃料を、インジェクタの駆動制御を通じて燃焼室に噴射供給することで、搭載された自動車の退避走行を確実に実行することができるようになる。
【００６７】
（第２の実施の形態）
次に、本発明に係るマルチコアの異常監視装置の第２の実施の形態について、図７を参照して説明する。なお、図７は、本実施の形態の別の構成例を示す模式図である。
【００６８】
同図７に示すように、本実施の形態も、先の図１〜図６に示した第１の実施の形態に準じた構成となっている。すなわち、本実施の形態は、例えば２つのプロセッサコア及びこれらプロセッサ間を接続する第１通信路が１つのパッケージに集積された、いわゆるデュアルコアによって構成されており、例えば自動車の燃焼室に燃料を噴射供給する燃料噴射制御装置に適用されている。
【００６９】
ただし、本実施の形態のデュアルコアの異常監視装置１ａでは、図７に示すように、また、以下に詳述するように、入口保護部５０ａは、ＣＰＵ２０ｂによる異常アクセスＡｃ２３を遮断する際、この異常アクセスＡｃ２３に係る情報をＣＰＵ２０ａに通知する通知部５３ａを備えるとともに、ＣＰＵ２０ａは、通知部５３ａによって通知された情報に基づいてＣＰＵ２０ｂの異常動作状態の程度を判断し、ＣＰＵ２０ｂの復帰処理をこの異常動作状態の程度に応じて実行する。
【００７０】
詳しくは、図７に異常アクセスＡｃ２３として示すように、ＣＰＵ２０ｂが出口保護部４０ｂの保護機能を突破してカウント用ＲＡＭ領域３１ａに異常アクセスしようとすると、入口保護部５０ａ（正確にはアクセス判定部５１ａ）は、この異常アクセスＡｃ２３を既述したように遮断する。そして、アクセス判定部５１ａは、例えばいずれのプロセッサコアからＲＡＭ３０ａのどの領域にアクセスが試みられたか等、異常アクセスＡｃ２３の発生状況に係る情報を取得し、取得した情報を通知部５３ａに伝達する。通知部５３ａは、図７に通知Ａｃ３として示すように、この伝達された情報をＣＰＵ２０ａに通知する。
【００７１】
こうした情報の通知を受けたＣＰＵ２０ａは、図７に復帰処理２２として示すように、まず、異常アクセスＡｃ２３の発生状況に係る情報に基づいて、例えば「出口保護部４０ｂに瞬時的な誤作動が生じた」、「ＣＰＵ２０ｂの動作状態が異常である」、「ＣＰＵ２０ｂの異常動作状態が深刻であり、カウント用ＲＡＭ領域３１ａへの異常アクセスを乱発している」等々、ＣＰＵ２０ｂの異常動作状態の程度を判断する。そして、ＣＰＵ２０ａは、復帰処理２２として、判断したＣＰＵ２０ｂの異常動作状態の程度に応じて、例えば「出口保護部４０ｂの再設定」、「ＣＰＵ２０ｂのリセット」、「当該装置全体のリセット」等の復帰処理を実行する。
【００７２】
以上説明したデュアルコアの異常監視装置１ａによれば、ＣＰＵ２０ｂの動作状態が異常であるか正常であるかといった２値的な判定に留まらず、ＣＰＵ２０ｂの異常動作状態の程度を判断することができ、その程度に応じた復帰処理を実行することができるようになる。そしてひいては、例えば、ＣＰＵ２０ｂの異常動作状態が軽度であってＣＰＵ２０ｂのリセットを実行すれば十分であるにもかかわらず、当該装置全体をリセットしてしまうといったことを未然に防ぐことができるようになるため、当該装置をより効率的に作動させることができるようになる。
【００７３】
なお、上記第２の実施の形態では、入口保護部５０ａは、既述の保護機能に加え、通知機能を有していた（すなわち、通知部５３ａは入口保護部５０ａの構成要素であった）が、これに限らない。他に例えば、通知部５３ａを入口保護部５０ａの構成要素から分離し、入口保護部５０ａとは別に、監視側コア１０ａが所有することとしてもよい。
【００７４】
（他の実施の形態）
なお、本発明に係るマルチコアの異常監視装置は、上記第１及び第２の実施の形態で例示した構成に限定されるものではなく、本発明の趣旨を逸脱しない範囲において、種々に変形して実施することが可能である。すなわち、上記各実施の形態を適宜変更した例えば次の形態として実施することもできる。
【００７５】
上記各実施の形態では、被監視用処理（図２参照）として、ＣＰＵ２０ｂは、被監視用ＲＡＭ領域３１ｂに一時記憶されている値を第２通信路７０ｂを介して読み込み、この読み込んだ値の反転値を第２通信路７０ｂを介して書き込むこととしていたが、これに限らない。他に例えば、ＣＰＵ２０ｂは、被監視用ＲＡＭ領域３１ｂに一時記憶されている値を第２通信路７０ｂを介して読み込み、この読み込んだ値に所定数を加えた積算値を第２通信路７０ｂを介して書き込む（カウントアップ）こととしてもよい。要は、ＣＰＵ２０ａがＣＰＵ２０ｂの動作状態を監視するにあたり、ＣＰＵ２０ｂの動作状態が正しく反映される操作であれば、任意である。
【００７６】
上記各実施の形態では、そうしたＣＰＵ２０ｂによる操作結果を一時記憶するための被監視用ＲＡＭ領域３１ｂを被監視側コア１０ｂの所有としていたが、これに限らず、監視側コア１０ａが被監視用ＲＡＭ領域３１ｂを所有する、すなわち、ＲＡＭ３０ａ内に被監視用ＲＡＭ領域３１ｂを設定することとしてもよい。この場合、例えば、ＣＰＵ２０ｂがＲＡＭ３０ａに設定された被監視用ＲＡＭ領域にＣＰＵ２０ａを介することなくアクセスする、いわゆるＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）方式を採用することができる。要は、ＣＰＵ２０ｂによる操作結果をＣＰＵ２０ａによって監視することができれば、被監視用ＲＡＭ領域３１ｂの所在は任意である。
【００７７】
上記各実施の形態では、異常監視判断処理（図３参照）として、被監視用ＲＡＭ領域３１ｂに一時記憶されているデータに基づきＣＰＵ２０ｂの動作状態を判断し、動作状態が異常であると判断された回数である異常回数カウント値が判定値に到達するとき、ＣＰＵ２０ｂの動作状態が異常である旨の（最終的な）判定を行うこととしたが、判定値については任意である。例えば、動作状態が異常であると一度でも判断されたら、ただちに、ＣＰＵ２０ｂの動作状態が異常である旨の最終的な判定を行う（すなわち、判定値が「１」）こととしてもよい。
【００７８】
上記各実施の形態では、デュアルコアの異常監視装置１及び１ａは、出口保護部４０ａ及び４０ｂ並びに入口保護部５０ａ及び５０ｂの双方を備えていたが、これに限らず、出口保護部４０ａ及び４０ｂを割愛した構成としてもよい。
【００７９】
上記各実施の形態では、デュアルコアの異常監視装置１及び１ａを自動車の燃焼室に燃料を噴射供給する燃料噴射制御装置に適用し、上記基本燃料噴射量算出処理、及び、上記第１補正処理、並びに、上記インジェクタの駆動制御を通じての最終燃料噴射量の燃料噴射供給を、監視側コア１０ａに実行させ、上記第２補正処理を、被監視側コア１０ｂに実行させることとしていたが、これに限らない。要は、当該マルチコアの異常監視装置を、任意の制御対象を制御するための最終制御値を算出する制御装置に適用し、監視側コアに、制御対象が有する各種センサのセンサ出力値に基づき、制御対象の制御を持続可能とする基本制御値を算出する基本制御値算出処理と、所定のデフォルト値に基づいて、基本制御値算出処理を通じて算出された基本制御値を最終制御値に補正する第１補正処理とを実行させるとともに、被監視側コアに、センサ出力値に基づいて、基本制御値算出処理を通じて算出された基本制御値を最終制御値に補正する第２補正処理を実行させればよい。これにより、当該装置は、被監視側コアの動作状態が異常である旨監視側コアによって判定されたとき、フェイルセーフとして、第１補正処理を通じて補正された最終制御値に基づき制御対象を制御することができるようになる。
【００８０】
上記各実施の形態では、２つのプロセッサコアが１つのパッケージに集積された、いわゆるデュアルコアによって構成していたが、プロセッサコアの個数は任意である。プロセッサコアの数が多数になるほど、上記出口保護手段及び入口保護手段による保護機能による効果が高まり、好適である。すなわち、１つのプロセッサコアの動作状態が異常となり、これが起因して、あるプロセッサコアの動作状態が異常となったことを契機として、他のプロセッサコアの動作状態が次々に異常となる連鎖を生じにくくすることができるようになる。
【図面の簡単な説明】
【００８１】
【図１】本発明に係るマルチコアの異常監視装置の第１の実施の形態について、その構成例を示す模式図。
【図２】同第１の実施の形態の被監視用処理について、その処理手順の一例を示すフローチャート。
【図３】同第１の実施の形態の異常監視判断処理について、その処理手順の一例を示すフローチャート。
【図４】（ａ）及び（ｂ）は、同第１の実施の形態を構成する出口保護部４０ａ及び４０ｂの初期設定処理について、その処理手順の一例をそれぞれ示すフローチャート。
【図５】（ａ）及び（ｂ）は、同第１の実施の形態を構成する入口保護部５０ａ及び５０ｂの初期設定処理について、その処理手順の一例をそれぞれ示すフローチャート。
【図６】同第１の実施の形態について、その動作例を示す模式図。
【図７】本発明に係るマルチコアの異常監視装置の第２の実施の形態について、その構成例を示す模式図。
【符号の説明】
【００８２】
１…デュアルコアの異常監視装置、１０ａ…監視側コア、１０ｂ…被監視側コア、２０ａ、２０ｂ…ＣＰＵ（演算処理部）、２１ａ…異常監視判断処理、２１ｂ…被監視用処理、２２…復帰処理、３０ａ、３０ｂ…ＲＡＭ（一時記憶部）、３１ａ…カウント用ＲＡＭ領域、３１ｂ…被監視用ＲＡＭ領域、４０ａ、４０ｂ…出口保護部（第２保護手段）、４１ａ、４１ｂ…アクセス判定部、４２ａ、４２ｂ…アドレス情報記憶部、５０ａ、５０ｂ…入口保護部（第１保護手段）、５１ａ、５１ｂ…アクセス判定部、５２ａ、５２ｂ…アドレス情報記憶部、５３…通知部、６０…第１通信路、７０ａ、７０ｂ…第２通信路、１００…チップ、Ａｃ２１〜Ａｃ２３…異常アクセス、Ａｃ３…通知。
【図１】
0004433006.tif 000002
【図２】
0004433006.tif 000003
【図３】
0004433006.tif 000004
【図４】
0004433006.tif 000005
【図５】
0004433006.tif 000006
【図６】
0004433006.tif 000007
【図７】
0004433006.tif 000008