JP4433006B2 - マルチコアの異常監視装置 - Google Patents

マルチコアの異常監視装置 Download PDF

Info

Publication number
JP4433006B2
JP4433006B2 JP2007176544A JP2007176544A JP4433006B2 JP 4433006 B2 JP4433006 B2 JP 4433006B2 JP 2007176544 A JP2007176544 A JP 2007176544A JP 2007176544 A JP2007176544 A JP 2007176544A JP 4433006 B2 JP4433006 B2 JP 4433006B2
Authority
JP
Japan
Prior art keywords
core
monitoring
monitored
access
storage unit
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.)
Active
Application number
JP2007176544A
Other languages
English (en)
Other versions
JP2009015590A (ja
Inventor
健志 柴田
博之 井原
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.)
Denso Corp
Original Assignee
Denso Corp
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 Denso Corp filed Critical Denso Corp
Priority to JP2007176544A priority Critical patent/JP4433006B2/ja
Priority to EP08011025A priority patent/EP2045721B1/en
Priority to US12/165,964 priority patent/US7877637B2/en
Publication of JP2009015590A publication Critical patent/JP2009015590A/ja
Application granted granted Critical
Publication of JP4433006B2 publication Critical patent/JP4433006B2/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/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0736Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
    • G06F11/0739Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function in a data processing system embedded in automotive or aircraft systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • G06F11/0724Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU] in a multiprocessor or a multi-core unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy

Description

この発明は、複数のプロセッサコアが1つのパッケージに集積されたマルチコアの異常監視装置に関する。
一般に、マイクロプロセッサ(CPU)は、命令発行器や演算器等が組み合わされて1つの部品として動作するプロセッサコアを、1つのパッケージに1つのみ有している。そして、そうしたCPUを複数用いるマルチプロセッサ構成のECUを用い、例えば自動車等の各種制御が実行されている。こうしたマルチプロセッサ構成のECUでは、該ECUを構成する複数のCPUが、監視元(監視する側:以下、メイン側と記載)あるいは監視対象(監視される側:以下、サブ側と記載)に割り当てられており、メイン側CPUはサブ側CPUの動作状態を監視している。
詳しくは、例えば、サブ側CPUは、所定のポート出力値を所定時間毎に反転し、メイン側CPUは、所定のポート出力値をモニタする。ここで、所定のポート出力値が反転しなかったり異なる値になったりすることが連続して所定回数生じると、メイン側CPUは、サブ側CPUの動作状態が異常であると判断する。サブ側CPUの動作状態が異常であると判断すると、メイン側CPUは、例えばサブ側CPUが算出した値を予め定められたデフォルト値に置換するなど、フェイルセーフを実行する。
こうした一般的な技術を、複数のプロセッサコアを1つのパッケージに有するマルチコア構成のECUに対してそのまま適用しようとすると、次のような課題が生じる。すなわち、マルチコア構成のECUでは、該ECUを構成する複数のプロセッサコア間で共有する例えばRAMやレジスタ等のリソース(資源)を1つのパッケージ内に備えており、各プロセッサコアはこの共有リソースにアクセスすることが可能である。そのため、サブ側コアの動作状態が異常であるとき、上記所定回数をカウントするためにメイン側コアが使用していた共有RAMの領域に、サブ側コアがアクセスしてしまい、その内容を書き換えてしまうことがある。このように共有RAMの内容が書き換えられると、共有RAMに記憶保持された内容に基づきサブ側コアの動作状態を判断しているため、メイン側コアはサブ側コアの動作状態を正確に判断することができなくなってしまう。ひいては、上記フェイルセーフを適切に実行することが難しくなってしまう。
そこで従来、例えば特許文献1に記載の技術では、各プロセッサコアと共有RAMとの間に書き込み禁止領域指定手段を備え、この書き込み禁止領域指定手段を通じて、プロセッサコアが当該プロセッサコア専用の領域以外の領域に書き込もうとするとき、その書込を無効にしていた。
特開平7−200503号公報
上記従来技術では、共有RAMの各プロセッサコアが使用する領域をそれぞれ専用化することができるため、例えば上記サブ側コアの動作状態が異常であったとしても、上記メイン側コアが使用していた共有RAMのメイン側コアの専用領域に記憶保持されていた内容を、サブ側コアが書き換えてしまうようなことは生じにくくなる。
しかしながら、サブ側コアの異常動作状態がさらに深刻になると、例えば、サブ側コアは、上記書込禁止領域指定手段に記憶されている書込禁止領域を書き換えてしまい、上記メイン側コアが使用していた共有RAMのメイン側コアの専用領域を、書込禁止領域の指定から外してしまうことも考えられる。こうなると、メイン側コアの専用領域に記憶されていた内容がサブ側コアによって書き換えられてしまうことも起こり得る。そして、メイン側コアは、サブ側コアの動作状態を正確に判断することができなくなり、ひいては、上記フェイルセーフを適切に実行することがやはり難しくなってしまう。
本発明は、こうした実情に鑑みてなされたものであって、その目的は、各コアの動作状態をより正確に判定することのできるマルチコアの異常監視装置を提供することにある。
こうした目的を達成するため、請求項1に記載の発明では、複数のプロセッサコア及びこれら複数のプロセッサコア間を接続する第1通信路が1つのパッケージに集積され、前記複数のプロセッサコアは、演算処理部と、主にこの演算処理部によって使用される一時記憶部と、前記演算処理部が前記一時記憶部にアクセス可能にこれら演算処理部及び一時記憶部を接続する第2通信路とをそれぞれ所有し、前記複数のプロセッサコアのうちの少なくとも2つのプロセッサコアは、自身以外のプロセッサコアの動作状態を監視する監視側コア、及び、この監視側コアによって動作状態が監視される被監視側コアに割り当てられ、前記被監視側コアは、当該被監視側コア所有の一時記憶部に対し、当該被監視用コア所有の前記第2通信路を介してアクセスして、所定時間毎に第1書込操作を実行し、前記監視側コアは、前記被監視側コアによる第1書込操作の結果を前記第1通信路を介して監視しつつ、当該監視側コア所有の一時記憶部に対し、当該監視側コア所有の前記第2通信路を介してアクセスして、前記第1書込操作の結果に対応する第2書込操作を前記所定時間毎に実行するとともに、当該監視側コア所有の一時記憶部に書き込まれたこの第2書込操作の結果に基づく所定の判定条件が成立するとき、前記被監視側コアの動作状態が異常である旨を判定するマルチコアの異常監視装置であって、前記監視側コアは、アドレス情報記憶部及びアクセス判定部を有する第1保護手段を、前記第1通信路と当該監視側コア所有の一時記憶部との接続部に所有しており、前記第1保護手段の前記アドレス情報記憶部には、当該監視側コアの演算処理部によって設定された前記監視側コア所有の一時記憶部のアドレス情報及びこのアドレスへのアクセス禁止態様があらかじめ記憶され、前記第1保護手段の前記アクセス判定部は、前記監視側コア以外のプロセッサコアが前記第1通信路を介してアクセスしようとするアドレス及びそのアクセス態様が、前記第1保護手段の前記アドレス情報記憶部に記憶されたアドレス情報及びアクセス禁止態様に、それぞれ一致するか否かを判定前記第1保護手段は、当該第1保護手段の前記アクセス判定部によって一致する旨が判定されるとき、前記監視側コア以外のプロセッサコアが前記第1通信路を介して前記監視側コア所有の一時記憶部へアクセスすることを遮断することとした。
マルチコアの異常監視装置としてのこのような構成では、まず、被監視側コアは、被監視側コア所有の一時記憶部に第2通信路を介してアクセスし、所定時間毎に第1書込操作を実行する。一方、監視側コアは、そうした被監視側コアによる第1書込操作の結果を第1通信路を介して監視しつつ、監視側コア所有の一時記憶部に第2通信路を介してアクセスし、第1書込操作の結果に対応する第2書込操作を所定時間毎に実行する。そして、監視側コアは、この第2書込操作の結果に基づく所定の判定条件が成立するとき、被監視側コアの動作状態が異常である旨を判定する。
ここで、例えば監視側コア以外のプロセッサコアの1つ(ここでは被監視側コア)の動作状態が異常となり、被監視側コアが監視側コア所有の一時記憶部に異常アクセスして、第1書込操作を含む操作をこの一時記憶部に実行しようとすることがある。このとき、第1保護手段を構成するアクセス判定部は、被監視側コアが第1通信路を介してアクセスしようとするアドレス及びそのアクセス態様が、第1保護手段を構成するアドレス情報記憶部に記憶されたアドレス及びアクセス禁止態様に、それぞれ一致するか否かを判定する。ここで、被監視側コアが第1通信路を介してアクセスしようとするアドレスは、監視側コア所有の一時記憶部のアドレスであり、アドレス情報記憶部に記憶されたアドレスに一致する。また、そうしたアクセス態様は、第1書込操作を含む操作、すなわち書き込みアクセスであり、アドレス情報記憶部に記憶されたアクセス禁止態様は、通常、書き込みアクセスであるため、これらは一致する。したがって、第1保護手段を構成するアクセス判定部を通じて、一致する旨が判定され、被監視側コアによる監視側コア所有の一時記憶部への異常アクセスは第1保護手段によって遮断されることになる。そのため、監視側所有の一時記憶部に対し第1書込操作を含む操作が実行されることはなくなる。
しかも、被監視側コアの異常動作状態が背景技術の欄に記載したほどに深刻になったところで、第1保護手段を構成するアドレス情報記憶部に上記アドレス情報及び上記アクセス態様を記憶するのは、深刻な異常動作状態にある被監視側コアの演算処理部ではなく、正常な動作状態にある監視側コアの演算処理部である。そのため、第1保護手段を構成するアドレス情報記憶部に記憶されるアドレスは、間違いなく、監視側コアが所有する一時記憶部のアドレスとなり、第1保護手段を構成するアドレス情報記憶部に記憶されるアクセス禁止態様は、間違いなく、書き込みアクセスとなる。そして、被監視側コアによる監視側コア所有の一時記憶部への異常アクセスは、第1保護手段を構成するアクセス判定部によって確実に遮断され、監視側コア所有の一時記憶部に記憶されているデータが書き換えられるようなことはなくなる。したがって、監視側コアは、上記判定条件を正確に判定することができ、被監視側コアの動作状態を正確に判断することができるようになる。そしてひいては、各コアの動作状態をより正確に判断することができるようになる。
上記請求項1に記載の構成において、請求項2に記載の発明では、前記被監視側コアは、アドレス情報記憶部及びアクセス判定部を有する第2保護手段を、当該被監視側コア所有の演算処理部と前記第1通信路との接続部に所有しており、前記第2保護手段の前記アドレス情報記憶部には、当該被監視側コアの演算処理部によって設定された前記監視側コア所有の一時記憶部のアドレス情報びこのアドレスへのアクセス禁止態様があらかじめ記憶され、前記第2保護手段の前記アクセス判定部は、当該被監視側コアが前記第1通信路を介してアクセスしようとするアドレス及びそのアクセス態様が、前記第2保護手段の前記アドレス情報記憶部に記憶されたアドレス情報及びアクセス禁止態様に、それぞれ一致するか否かを判定し、前記第2保護手段は、当該第2保護手段の前記アクセス判定部によって一致する旨が判定されるとき、前記被監視側コアが前記第1通信路を介して前記監視側コア所有の一時記憶部へアクセスすることを遮断することとした。
ここで、例えば監視側コア以外のプロセッサコアの1つ(ここでは被監視側コア)の動作状態が異常となり、被監視側コアが監視側コア所有の一時記憶部に異常アクセスして、第1書込操作を含む操作をこの一時記憶部に実行しようとすることがある。このとき、第2保護手段を構成するアクセス判定部は、被監視側コアが第1通信路を介してアクセスしようとするアドレス及びそのアクセス態様が、第2保護手段を構成するアドレス情報記憶部に記憶されたアドレス及びアクセス禁止態様に、それぞれ一致するか否かを判定する。ここで、被監視側コアが第1通信路を介してアクセスしようとするアドレスは監視側コア所有の一時記憶部のアドレスであり、第2保護手段を構成するアドレス情報記憶部に記憶されたアドレスに一致する。また、そうしたアクセス態様は、第1書込操作を含む操作、すなわち書き込みであり、第2保護手段を構成するアドレス情報記憶部に記憶されたアクセス禁止態様は、通常、書き込みアクセスであるため、これらは一致する。したがって、第2保護手段を構成するアクセス判定部を通じて、一致する旨が判定され、被監視側コアによる監視側コア所有の一時記憶部への異常アクセスは第2保護手段によって遮断される。そのため、監視側所有の一時記憶部に対し第1書込操作を含む操作が実行されることは抑制される。
ただし、被監視側コアの異常動作状態が背景技術の欄に記載したほどに深刻になると、第2保護手段を構成するアドレス情報記憶部に上記アドレス情報及び上記アクセス態様を記憶するのは、深刻な異常動作状態にある被監視側コアの演算処理部であるため、第2保護手段を構成するアドレス情報記憶部に記憶されるアドレスは、間違いなく、監視側コアが所有する一時記憶部のアドレスであるとは言えなくなり、第2保護手段を構成するアドレス情報記憶部に記憶されるアクセス禁止態様も、間違いなく、書き込みアクセスであるとは言えなくなってしまう。そのため、被監視側コアによる監視側コア所有の一時記憶部への異常アクセスが、第2保護手段を構成するアクセス判定部によって遮断されることなく、監視側コア所有の一時記憶部に記憶されているデータが書き換えようとすることも起こり得る。
しかしながら、上記請求項2に記載の構成は、上記請求項1に記載の構成と併用されることが前提である。そのため、第2保護手段にて遮断されなかった異常アクセスは、上記第1保護手段にて確実に遮断される。このように、上記第1及び第2保護手段を併用する上記請求項2に記載の構成によれば、監視側コア所有の一時記憶部の、被監視側コアによる異常アクセスに対する堅牢性が高められ、監視側コアは、上記判定条件をより正確に判定することができ、被監視側コアの動作状態をより正確に判断することができるようになる。
こうした構成において、例えば請求項3に記載の発明のように、前記第1保護手段は、動作時に、前記監視側コア所有の一時記憶部にアクセスしようとした、前記監視側コア以外のプロセッサコアの動作状態にかかる情報を前記監視側コアに通知する通知手段をさらに備え、前記監視側コアは、前記通知手段によって通知された前記情報に基づいて前記監視側コア以外のプロセッサコアの動作状態の異常の程度を判断し、前記被監視側コアの復帰処理をこの異常の程度に応じて実行することとしてもよい。これにより、監視側コア以外のプロセッサコアの動作状態が異常であるか否かの2値的な判定に留まらず、その異常の程度を判断することができるため、各コアの動作状態をさらに正確に判断することができるようになる。
また、こうした構成において、前記第1書込操作としては、例えば請求項4に記載の発明のように、前記被監視側コアが、前記被監視側コア所有の一時記憶部に対し、所定値及びこの所定値の反転値を所定時間毎に交互に書き込む操作を採用することとしてもよい。さらに、前記第2書込操作としては、例えば請求項5に記載の発明のように、前記監視側コアが、前記監視側コア所有の一時記憶部に対し、前記第1書込操作が連続して正しく実行されない回数を書き込む操作を採用することとしてもよい。このような簡素な構成によっても、各コアの動作状態が異常であるか否かを判定することができるようになる。
上記請求項1〜5のいずれかに記載の構成において、例えば請求項6に記載の発明のように、当該マルチコアの異常監視装置は、制御対象を制御するための最終制御値を算出する制御装置に適用され、前記監視側コアは、前記制御対象が有する各種センサのセンサ出力値に基づき、前記制御対象の制御を持続可能とする基本制御値を算出する基本制御値算出処理と、所定のデフォルト値に基づいて、前記基本制御値算出処理を通じて算出された基本制御値を最終制御値に補正する第1補正処理とを実行し、前記被監視側コアは、前記センサ出力値に基づいて、前記基本制御値算出処理を通じて算出された基本制御値を最終制御値に補正する第2補正処理を実行し、当該装置は、前記被監視側コアの動作状態が正常である旨判定されるとき、前記第2補正処理を通じて補正された最終制御値に基づき前記制御対象を制御し、前記被監視側コアの動作状態が異常である旨判定されるとき、フェイルセーフとして、前記第1補正処理を通じて補正された最終制御値に基づき前記制御対象を制御することが望ましい。
(第1の実施の形態)
以下、本発明に係るマルチコアの異常監視装置の第1の実施の形態について、図1〜図6を参照して説明する。なお、図1及び図6は、本実施の形態の構成例及び動作例をそれぞれ示す模式図であり、図2及び図3は、本実施の形態で実行される異常監視判断処理及び被監視用処理について、その処理手順をそれぞれ示すフローチャートである。また、図4及び図5は、本実施の形態で実行される出口保護手段及び入口保護手段の初期設定処理について、その処理手順をそれぞれ示すフローチャートである。
これら図1〜図6に示されるように、また、以下に詳述するように、本実施の形態のマルチコアの異常監視装置は、例えば2つのプロセッサコア及びこれらプロセッサ間を接続する第1通信路が1つのパッケージに集積された、いわゆるデュアルコアによって構成されており、例えば自動車の燃焼室に燃料を噴射供給する燃料噴射制御装置に適用されている。
はじめに、図1を参照して、本実施の形態の構成について説明する。同図1に示すように、デュアルコアの異常監視装置1は、基本的に、被監視側コア10bの動作状態を監視する監視側コア10aと、該監視側コア10aによってその動作状態が監視される被監視側コア10bと、これら両コア10a及び10bが後述する各種処理及び各種制御を実行するために必要な情報を送受信可能に接続する第1通信路(例えばバス等)60とをパッケージ100に備えている。なお、本実施の形態では、パッケージ100はプロセッサコアを2つ有しており、説明の便宜上、図1の左方に位置するプロセッサコアを監視側コアに、図1の右方に位置するプロセッサコアを被監視側コアにそれぞれ割り当てているが、これらプロセッサコアの役割を逆に割り当てることとしてもよく、互いに互いを監視するように役割を割り当てることとしてもよい。
ここで、監視側コア10aは、基本的に、後述の異常監視判断処理を実行するCPU(演算処理部)20aと、このCPU20aによって主に使用されるRAM30aと、CPU20aがRAM30aにアクセス可能にこれらを接続する第2通信路70aとを所有している。同様に、被監視側コア10bも、基本的に、後述する被監視用処理を実行するCPU(演算処理部)20bと、このCPU20bによって主に使用されるRAM30bと、CPU20bがRAM30bにアクセス可能にこれらを接続する第2通信路70bとを所有している。
RAM30aは、監視側コア10aによって所有され、主に使用されるものの、被監視側コア10bによっても第1通信路60を介することで使用される。同様に、RAM30bは、被監視側コア10bによって所有され、主に使用されているものの、監視側コア10aによっても第1通信路60を介することで使用される。
ただし、監視側コア10a及び被監視側コア10bはそれぞれ、RAM30a及び30bの全領域を使用(書き込み及び読み込み)することができるわけではない。図1に示すように、RAM30aには、第2通信路70aを介して監視側コア10aのみが書き込み及び読み込みをすることができ、第1通信路60を介したところで被監視側コア10bは読み込みをすることさえできない、カウント用RAM領域31aが、プログラム(ソフトウエア)上、設定されている。同様に、図1に示すように、RAM30bには、第2通信路70bを介して被監視側コア10bのみが書き込み及び読み込みをすることができ、第1通信路60を介したところで監視側コア10aは読み込むことしかできない、被監視用RAM領域31bが、プログラム(ソフトウエア)上、設定されている。
詳しくは、被監視用RAM領域31bは、監視側コア10aによって、以下のように使用される。
図2に示すように、CPU20bは、まず、ステップS20の処理として、被監視用RAM領域31bに一時記憶されている値を第2通信路70bを介して読み込み、続くステップS22の処理として、被監視用RAM領域31bに読み込んだ値の反転値を第2通信路70bを介して書き込む。こうした一連の処理(ステップS20及びS22)を所定時間毎に実行する。なお、本実施の形態では、被監視用RAM領域31bに一時記憶されている初期値として、例えば16進数「$55」を採用している(したがって、その反転値は16進数「$AA」となる)。そのため、CPU20bの動作状態が正常であるとき、被監視用処理が正常に実行されるため、被監視用RAM領域31bには、16進数「$55」及び「$AA」が所定時間毎に反転して一時記憶されることとなる。ちなみに、CPU20aは、後述するように、この被監視用RAM領域31bに一時記憶されているデータを読み込み、この読み込んだデータに基づいてCPU20bの動作状態の判断を実行する。
また、カウント用RAM領域31aは、監視側コア10a(正確にはCPU20a)によって、以下のように使用される。
図3に示すように、CPU20aは、まず、ステップS30の処理として、被監視用RAM領域31bに一時記憶されている値を第1通信路60を介して読み込み(モニタリング)、続くステップS31の判断処理として、読み込んだ値に異常があるか無いかを判断する。すなわち、CPU20aは、読み込んだ値が上記所定値とその反転値との間で所定時間毎に反転されているか否かについて判断する。ここで、先のステップS31の判断処理において、読み込んだ値が上記所定値とその反転値との間で所定時間毎に反転されているとき(ステップS31の判断処理で「NO」)、CPU20bによる上記被監視用処理(図2)は正しく実行されていることを意味する。そのため、CPU20aは、CPU20bの動作状態は正常であると判断し、続くステップS32の処理として、カウント用RAM領域31aに一時記憶されている異常回数カウント値を第2通信路70aを介して零にクリアした上で、異常監視判断処理を一旦終了する。
一方、先のステップS31の判断処理において、読み込んだ値が所定時間毎に反転されていないとき、あるいは、読み込んだ値が上記所定値及びその反転値以外の値になっているとき(ステップS31の判断処理で「Yes」)、CPU20bによる上記被監視用処理(図2)が正しく実行されていないことを意味する。そのため、CPU20aは、CPU20bの動作状態が異常である可能性が高いと判断し、続くステップS33の処理として、カウント用RAM領域31aに一時記憶されている異常回数カウント値を第2通信路70aを介してインクリメントする。
そして、CPU20aは、続くステップS34の判断処理として、異常回数カウント値が判定値に到達したか否かを判断する。ここで、異常回数カウント値が判定値に到達しないとき(ステップS34の判断処理において「NO」)、CPU20bの動作状態が正常に復帰する可能性もあるため、CPU20bの動作状態が異常である旨の判定をただちにすることなく、異常監視判定処理を一旦終了する。しかしながら、異常回数カウント値が判定値に到達するとき(ステップS34の判断処理において「YES」)、CPU20bの動作状態が正常に復帰する可能性は極めて低いため、CPU20bの動作状態が異常である旨を判定し、続くステップS35の処理として、後述のフェイルセーフ処理を実行する。監視側コア10a(正確にはCPU20a)は、こうした一連の異常監視判断処理(ステップS30〜S35)を所定時間毎に実行する。
しかしながら、上記CPU20a及び20bの実行プログラムが、上記RAM30a及び30bを上述の態様をもって使用するようにプログラムされていても、また、そうしたプログラムがたとえ正しいものであったとしても、実際には、例えばノイズに起因して、あるいは、被監視側であるCPU20bの動作状態が異常となると、CPU20bがカウント用RAM領域31aに第1通信路60を介してアクセスし、該カウント用RAM領域31aに一時記憶されているデータを書き換えてしまうことがある。このようにカウント用RAM領域31aに一時記憶されているデータが書き換えられてしまうと、CPU20aは、カウント用RAM領域31aに一時記憶されているデータに基づきCPU20bの動作状態を判断しているため、CPU20bの動作状態を正確に判断することができなくなってしまう。そして、ひいては、後述するフェイルセーフ処理(先のステップS35の処理)を適切に実行することが難しくなってしまう。
そこで、本実施の形態では、先の図1に示すように、被監視側コア10bは、第1通信路60とCPU20bとの接続部、並びに、第2通信路70bとCPU20bとの接続部に、出口保護部(第2保護手段)40bを所有することとし、監視側コア10aは、第1通信路60とCPU20aとの接続部、並びに、第2通信路70aとCPU20aとの接続部に、出口保護部40aを所有することとした。すなわち、CPU20bは、出口保護部40bを介さなければ、RAM30a(特に、カウント用RAM領域31a)あるいはRAM30b(特に、被監視用RAM領域31b)にアクセスすることができず、同様に、CPU20aは、出口保護部40aを介さなければ、RAM30a(特に、カウント用RAM領域31a)あるいはRAM30b(特に、被監視用RAM領域31b)にアクセスすることはできない。このように、出口保護部40a及び40bを介在させることで、上述のようにCPU20bの動作状態が異常となっても、カウント用RAM領域31a及び被監視用RAM領域31bを、上記態様にて、CPU20a及び20bに使用させようとしている。
以下、こうした出口保護部40a及び40bについて詳述する。先の図1に示されるように、出口保護部40aは、例えば小規模なマイコンによって構成され、アクセス判定部41a及びアドレス情報記憶部42aを有しており、同様に、出口保護部40bは、例えば小規模なマイコンによって構成され、アクセス判定部41b及びアドレス情報記憶部42bを有している。
CPU20aは、先の図3に示した異常監視判断処理の実行前に、図4(a)に示す出口保護部40aの初期設定処理を実行する。CPU20aは、まず、ステップS40aの処理として、カウント用RAM領域31a及び被監視用RAM領域31bのアドレスをアドレス情報記憶部42aに記憶させる。CPU20aは、次に、ステップS42aの処理として、そうした記憶済みの各アドレスを対象に、「書き込みまで許可する」及び「読み込みのみ許可する」旨の設定をそれぞれ行う。同様に、CPU20bは、先の図2に示した被監視用処理の実行前に、図4(b)に示す出口保護部40bの初期設定処理を実行する。CPU20bは、まず、ステップS40bの処理として、カウント用RAM領域31a及び被監視用RAM領域31bのアドレスをアドレス情報記憶部42bに記憶させる。CPU20bは、次に、ステップS42bの処理として、そうした記憶済みの各アドレスを対象に、「一切のアクセスを禁止する」及び「書き込みまで許可する」旨の設定をそれぞれ行う。
ここで、CPU20a及び20bによる、カウント用RAM領域31a及び被監視用RAM領域31bへの、上記アクセス禁止態様を採用する理由を説明する。
そもそも、CPU20bの動作状態についてCPU20aが判断するにあたり、CPU20bがカウント用RAM領域31aを第1通信路60を介して読み込んだり書き込んだりする必要はない。また、CPU20bの動作状態についてCPU20aが判断するにあたり、CPU20bは被監視用RAM領域31bに対して上記所定値及び上記反転値を書き込む必要がある。
そのため、CPU20bから出口保護部40bに対し、RAM30aあるいは30bへのアクセスが要求されると、まず、アクセス判定部41bは、要求先のアドレスが、(アドレス情報記憶部42bに一時記憶しておいた)上記カウント用RAM領域31aあるいは被監視用RAM領域31bのアドレスに一致するか否かを判定する。ここで、要求先のアドレスが上記アドレスに一致しないとき、アクセス判定部41bは、CPU20bによるアクセス要求を許可する。
一方、要求先のアドレスが上記アドレスに一致するとき、アクセス判定部41bは、さらに、CPU20bによるアクセス要求が読み込み要求であるか書き込み要求であるかを判別する。そして、アクセス判定部41bは、CPU20bによるアクセス要求が、カウント用RAM領域31aの読み込み要求、あるいは、カウント用RAM領域31aへの書き込み要求であるとき、これら一切を遮断することとしている。また、CPU20bによるアクセス要求が、被監視用RAM領域31bの読み込み要求、あるいは、被監視用RAM領域31bへの書き込み要求であるとき、これらを受け入れることとしている。
このように、CPU20bは、カウント用RAM領域31aにアクセスして、一時記憶されているデータを読み込むことも、データを書き換えることもできなくなる。したがって、当該デュアルコアの異常監視装置1では、被監視側コア10bが出口保護部40bを所有するため、カウント用RAM領域31aに一時記憶されるデータは破壊されにくくなる。
一方、CPU20aは、CPU20bの動作状態について判断を行う目的で、被監視用RAM領域31bを読み込む必要がある。また、CPU20bの動作状態についてCPU20aが判断するにあたり、CPU20aはカウント用RAM領域31aに異常回数カウント値を書き込む必要がある。
そのため、CPU20aから出口保護部40aに対し、RAM30aあるいは30bへのアクセスが要求されると、まず、アクセス判定部41aは、要求先のアドレスが、(アドレス情報記憶部42aに一時記憶しておいた)上記カウント用RAM領域31aあるいは被監視用RAM領域31bのアドレスに一致するか否かを判定する。ここで、要求先のアドレスが上記アドレスに一致しないとき、アクセス判定部41aは、CPU20aによるアクセス要求を許可する。
一方、要求先のアドレスが上記アドレスに一致するとき、アクセス判定部41aは、さらに、CPU20aによるアクセス要求が読み込み要求であるか書き込み要求であるかを判別する。そして、アクセス判定部41aは、CPU20aによるアクセス要求が、カウント用RAM領域31aの読み込み要求、あるいは、カウント用RAM領域31aへの書き込み要求であるとき、これらを受け入れることとしている。また、CPU20aによるアクセス要求が、被監視用RAM領域31bの読み込み要求であるとき、これらを受け入れることとしている。しかしながら、CPU20aによるアクセス要求が、被監視用RAM領域31bへの書き込み要求であるとき、これを遮断することとしている。
このように、CPU20aは、被監視用RAM領域31bにアクセスして、一時記憶されているデータを読み込むことはできるものの、データを書き換えることはできなくなる。したがって、当該デュアルコアの異常監視装置1では、監視側コア10aが出口保護部40aを所有するため、被監視用RAM領域31bに一時記憶されるデータは破壊されにくくなる。
ところで、先の図4(b)に示したように、また、既述したように、CPU20bは、カウント用RAM領域31a及び被監視用RAM領域31bのアドレスをアドレス情報記憶部42bに記憶させるとともに、そうしたアドレスの各別に、「一切のアクセスを禁止する」及び「書き込みまで許可する」旨の設定をそれぞれ行っている。
そのため、CPU20bの異常動作状態が深刻になると、例えばCPU20bが、出口保護部40bの上記保護機能を解除してしまうことがある。具体的には、CPU20bが、出口保護部40bの初期設定処理(図4(b)参照)において、カウント用RAM領域31a及び被監視用RAM領域31bのアドレスとは異なるアドレスをアドレス情報記憶部42bに記憶させてしまったり、そうしたアドレスの各別に、上記アクセス許可態様とは異なる許可態様の設定を行ってしまったりすることがある。そして、CPU20bから出口保護部40bに対し、そもそも出力されるはずのない、カウント用RAM領域31aへの書き込み要求が出力されても(異常アクセス)、出口保護部40bはそうした異常アクセスを遮断することができず、カウント用RAM領域31aに一時記憶されていたデータがCPU20bによって書き換えられる、すなわち、破壊されてしまうことも起こり得る。そして、CPU20aは、CPU20bの動作状態を正確に判断することができなくなり、ひいては、後述のフェイルセーフ処理を適切に実行することが難しくなってしまう。
そこで、本実施の形態では、先の図1に示すように、監視側コア10aは、第1通信路60とRAM30aとの接続部に、入口保護部(第1保護手段)50aを所有することとし、被監視側コア10bは、第1通信路60とRAM30bとの接続部に、入口保護部50bを所有することとした。すなわち、CPU20bは、出口保護部40bのみならず、入口保護部50aを介さなければ、RAM30a(特に、カウント用RAM領域31a)にアクセスすることができず、同様に、CPU20aは、出口保護部40aのみならず、入口保護部50bを介さなければ、RAM30b(特に、被監視用RAM領域31b)にアクセスすることはできない。このように、入口保護部50a及び50bを介在させることで、カウント用RAM領域31a及び被監視用RAM領域31bを、CPU20a及び20bに、上記態様にて確実に使用させようとしている。
以下、こうした入口保護部50a及び50bについて詳述する。先の図1に示されるように、入口保護部50aは、例えば小規模なマイコンによって構成され、アクセス判定部51a及びアドレス情報記憶部52aを有しており、同様に、入口保護部50bは、例えば小規模なマイコンによって構成され、アクセス判定部51b及びアドレス情報記憶部52bを有している。
CPU20aは、先の図3に示した異常監視判断処理の実行前に、先の図4(a)に示した出口保護部40aの初期設定処理に加え、図5(a)に示す入口保護部50aの初期設定処理も実行する。CPU20aは、まず、ステップS50aの処理として、カウント用RAM領域31aのアドレスをアドレス情報記憶部52aに記憶させる。CPU20aは、次に、ステップS52aの処理として、そうした記憶済みアドレスを対象に、「一切のアクセスを禁止する」旨の設定を行う。同様に、CPU20bは、先の図2に示した被監視用処理の実行前に、先の図4(b)に示した出口保護部40bの初期設定処理に加え、図5(b)に示す入口保護部50bの初期設定処理を実行する。CPU20bは、まず、ステップS50bの処理として、被監視用RAM領域31bのアドレスをアドレス情報記憶部52bに記憶させる。CPU20bは、次に、ステップS52bの処理として、そうした記憶済みアドレスを対象に、「読み込みのみ許可する」旨の設定を行う。
ここで、CPU20aによるカウント用RAM領域31aへの上記アクセス許可態様、並びに、CPU20bによる被監視用RAM領域31bへの上記アクセス許可態様を採用する理由を説明する。
既述したように、そもそも、CPU20bの動作状態についてCPU20aが判断するにあたり、CPU20bがカウント用RAM領域31aを読み込んだり書き込んだりする必要はない。そのため、出口保護部40bの保護機能を突破して、入口保護部50aに対しCPU20bからRAM30a(特に、カウント用RAM領域31a)へアクセスが要求されると、アクセス判定部51aは、要求先のアドレスが、(アドレス情報記憶部52aに一時記憶しておいた)上記カウント用RAM領域31aのアドレスに一致するか否かを判定する。ここで、要求先のアドレスが上記アドレスに一致しないとき、アクセス判定部51aは、CPU20bによるアクセス要求を許可する。一方、要求先のアドレスが上記アドレスに一致するとき、アクセス判定部51aは、CPU20bによるアクセス要求が読み込み要求であるか書き込み要求であるかを問わず、これら一切を遮断することとしている。
このように、たとえ、CPU20bの動作異常状態が深刻になり、出口保護部40bの保護機能を突破し、カウント用RAM領域31aへアクセスしようとしても(異常アクセス)、この異常アクセスは、入口保護部50aによって遮断されるため、カウント用RAM領域31aに一時記憶されているデータを読み込むことも、書き換えることもできなくなる。したがって、当該デュアルコアの異常監視装置1では、監視側コア10aが入口保護部50aを所有するため、カウント用RAM領域31aに一時記憶されるデータは破壊されなくなる。
また、CPU20aは、CPU20bの動作状態について判断を行う目的で、被監視用RAM領域31bを読み込む必要がある。そのため、出口保護部40aの保護機能を(正常に)通過して、入口保護部50bに対しCPU20aからRAM30b(特に、被監視用RAM領域31b)へアクセスが要求されると、アクセス判定部51bは、要求先のアドレスが、(アドレス情報記憶部52aに一時記憶しておいた)上記被監視用RAM領域31bのアドレスに一致するか否かを判定する。ここで、要求先のアドレスが上記アドレスに一致しないとき、アクセス判定部51bは、CPU20aによるアクセス要求を許可する。
一方、要求先のアドレスが上記アドレスに一致するとき、アクセス判定部51bは、さらに、CPU20aによるアクセス要求が読み込み要求であるか書き込み要求であるかを判別する。そして、アクセス判定部51bは、CPU20aによるアクセス要求が、被監視用RAM領域31bの読み込み要求であるとき、これを受け入れるものの、CPU20aによるアクセス要求が、被監視用RAM領域31bへの書き込み要求であるとき、これを遮断することとしている。
このように、CPU20aは、被監視用RAM領域31bにアクセスして、一時記憶されているデータを読み込むことはできるものの、データを書き換えることはできなくなる。したがって、当該デュアルコアの異常監視装置1では、監視側コア10aが出口保護部40aを所有するため、被監視用RAM領域31bに一時記憶されるデータは破壊されにくくなる。
入口保護部50aは、CPU20bと同一の被監視側コア10bに所有されているわけではなく、動作状態が正常であるCPU20aと同一の監視側コア10aに所有されている。そのため、たとえCPU20bの異常動作状態が深刻になったとしても、CPU20bは、入口保護部50aの保護機能を解除することができない。詳しくは、入口保護部50aの保護機能は、アドレス情報記憶部52aに一時記憶されたアドレス情報と、そのアドレスを対象としたアクセス許可態様に基づくことにより成立する。そうした入口保護部50aの初期設定処理は、CPU20aによってのみ行うことができ、プログラム上も、物理的にも、CPU20bは行うことができない。そのため、たとえCPU20bの異常動作状態が深刻になったとしても、入口保護部50aの保護機能を解除することはできない。したがって、CPU20bは、出口保護部40bの保護機能を突破することができたとしても、入口保護部50aの保護機能を突破してカウント用RAM領域31aにアクセスし、一時記憶されているデータを読み込んだり、データを書き込んだりすることはできなくなる。
以上のように構成されたデュアルコアの異常監視装置1の動作例を図6を参照しつつ説明する。
被監視側コア10b(正確にはCPU20b)の動作状態が異常であるとき、図6に矢印にて異常アクセスAc21及びAc22として示すように、CPU20bはカウント用RAM領域31aに異常アクセスしようとする。しかしながら、CPU20bの異常動作状態が軽度であり、出口保護部40bの保護機能は解除されていないため、CPU20bがカウント用RAM領域31aに異常アクセスしようとしても、そうした異常アクセスAc21及びAc22は、出口保護部40bを突破することはできない。したがって、カウント用RAM領域31aに一時記憶されるデータは保護されることになる。
また、被監視側コア10b(正確にはCPU20b)の異常動作状態が深刻になると、図6に矢印にて異常アクセスAc23として示すように、CPU20bはカウント用RAM領域31aに異常アクセスしようとする。このとき、CPU20bの異常動作状態が深刻であり、出口保護部40bの保護機能は解除されてしまうため、異常アクセスAc23は出口保護部40bの保護機能を突破してしまう。しかしながら、たとえCPU20bの異常動作状態が深刻であっても、同一の監視側コア10aに所有されていない入口保護部50aの保護機能を解除することはできないため、異常アクセスAc23は、入口保護部50aにて遮断されることになる。したがって、カウント用RAM領域31aに一時記憶されるデータは保護されることになる。
このように、カウント用RAM領域31aに一時記憶されているデータは、出口保護部40b及び入口保護部50aにて保護されているため、CPU20aはCPU20bの動作状態の判断を正確に判断することができるようになる。
また、こうしたデュアルコアの異常監視装置1は、既述したように、例えば自動車の燃焼室に燃料を噴射供給する燃料噴射制御装置(ECU)に適用されている。
自動車の運転制御においては、一般に、ECUを構成する複数のプロセッサコアの一部の動作状態が異常となった場合であっても、フェイルセーフとして、少なくとも退避走行ができなければならない。そのため、例えば燃料噴射制御は、以下に説明するように実行されている。
ECUを構成する複数のプロセッサコアの動作状態が正常であるときにあっては、例えばエンジンの燃焼室に吸入される空気量等に基づいて、自動車の運転を持続可能な量である基本燃料噴射量を算出するとともに、例えば水温センサにて検出される水温等のパラメータに基づき補正係数を算出し、この補正係数を用いて基本燃料噴射量を最終燃料噴射量に補正する。そして、インジェクタの駆動制御を通じて最終燃料噴射量の燃料を燃焼室に噴射供給している。
一方、ECUを構成する複数のプロセッサコアの一部の動作状態が異常であるときにあっては、上記フェイルセーフとして、上記パラメータに基づき算出された補正係数を用いるのではなく、この補正係数を所定のデフォルト値に置き換え、このデフォルト値を用いて上記基本燃料噴射量を最終燃料噴射量に補正する。そして、インジェクタの駆動制御を通じて最終燃料噴射量の燃料を燃焼室に噴射供給している。
そして、本実施の形態では、監視側コア10a(正確にはCPU20a)が、上記基本燃料噴射量(基本制御値)を算出する基本燃料噴射量算出処理(基本制御値算出処理)、及び、所定のデフォルト値を補正係数として用いて基本燃料噴射量を最終燃料噴射量(最終制御値)に補正する第1補正処理、並びに、上記インジェクタの駆動制御を通じた最終燃料噴射量の燃料噴射供給を実行するようにしている。また、被監視側コア10b(正確にはCPU20b)が、各種センサのセンサ出力値に基づき算出した補正係数を用いて上記基本燃料噴射量を最終燃料噴射量に補正する第2補正処理を実行するようにしている。
これにより、当該燃料噴射装置は、CPU20bの動作状態が異常である旨CPU20aによって判定されるとき、フェイルセーフとして、所定のデフォルト値が補正係数として用いられて基本燃料噴射量が補正された最終燃料噴射量の燃料を、インジェクタの駆動制御を通じて燃焼室に噴射供給することで、搭載された自動車の退避走行を確実に実行することができるようになる。
(第2の実施の形態)
次に、本発明に係るマルチコアの異常監視装置の第2の実施の形態について、図7を参照して説明する。なお、図7は、本実施の形態の別の構成例を示す模式図である。
同図7に示すように、本実施の形態も、先の図1〜図6に示した第1の実施の形態に準じた構成となっている。すなわち、本実施の形態は、例えば2つのプロセッサコア及びこれらプロセッサ間を接続する第1通信路が1つのパッケージに集積された、いわゆるデュアルコアによって構成されており、例えば自動車の燃焼室に燃料を噴射供給する燃料噴射制御装置に適用されている。
ただし、本実施の形態のデュアルコアの異常監視装置1aでは、図7に示すように、また、以下に詳述するように、入口保護部50aは、CPU20bによる異常アクセスAc23を遮断する際、この異常アクセスAc23に係る情報をCPU20aに通知する通知部53aを備えるとともに、CPU20aは、通知部53aによって通知された情報に基づいてCPU20bの異常動作状態の程度を判断し、CPU20bの復帰処理をこの異常動作状態の程度に応じて実行する。
詳しくは、図7に異常アクセスAc23として示すように、CPU20bが出口保護部40bの保護機能を突破してカウント用RAM領域31aに異常アクセスしようとすると、入口保護部50a(正確にはアクセス判定部51a)は、この異常アクセスAc23を既述したように遮断する。そして、アクセス判定部51aは、例えばいずれのプロセッサコアからRAM30aのどの領域にアクセスが試みられたか等、異常アクセスAc23の発生状況に係る情報を取得し、取得した情報を通知部53aに伝達する。通知部53aは、図7に通知Ac3として示すように、この伝達された情報をCPU20aに通知する。
こうした情報の通知を受けたCPU20aは、図7に復帰処理22として示すように、まず、異常アクセスAc23の発生状況に係る情報に基づいて、例えば「出口保護部40bに瞬時的な誤作動が生じた」、「CPU20bの動作状態が異常である」、「CPU20bの異常動作状態が深刻であり、カウント用RAM領域31aへの異常アクセスを乱発している」等々、CPU20bの異常動作状態の程度を判断する。そして、CPU20aは、復帰処理22として、判断したCPU20bの異常動作状態の程度に応じて、例えば「出口保護部40bの再設定」、「CPU20bのリセット」、「当該装置全体のリセット」等の復帰処理を実行する。
以上説明したデュアルコアの異常監視装置1aによれば、CPU20bの動作状態が異常であるか正常であるかといった2値的な判定に留まらず、CPU20bの異常動作状態の程度を判断することができ、その程度に応じた復帰処理を実行することができるようになる。そしてひいては、例えば、CPU20bの異常動作状態が軽度であってCPU20bのリセットを実行すれば十分であるにもかかわらず、当該装置全体をリセットしてしまうといったことを未然に防ぐことができるようになるため、当該装置をより効率的に作動させることができるようになる。
なお、上記第2の実施の形態では、入口保護部50aは、既述の保護機能に加え、通知機能を有していた(すなわち、通知部53aは入口保護部50aの構成要素であった)が、これに限らない。他に例えば、通知部53aを入口保護部50aの構成要素から分離し、入口保護部50aとは別に、監視側コア10aが所有することとしてもよい。
(他の実施の形態)
なお、本発明に係るマルチコアの異常監視装置は、上記第1及び第2の実施の形態で例示した構成に限定されるものではなく、本発明の趣旨を逸脱しない範囲において、種々に変形して実施することが可能である。すなわち、上記各実施の形態を適宜変更した例えば次の形態として実施することもできる。
上記各実施の形態では、被監視用処理(図2参照)として、CPU20bは、被監視用RAM領域31bに一時記憶されている値を第2通信路70bを介して読み込み、この読み込んだ値の反転値を第2通信路70bを介して書き込むこととしていたが、これに限らない。他に例えば、CPU20bは、被監視用RAM領域31bに一時記憶されている値を第2通信路70bを介して読み込み、この読み込んだ値に所定数を加えた積算値を第2通信路70bを介して書き込む(カウントアップ)こととしてもよい。要は、CPU20aがCPU20bの動作状態を監視するにあたり、CPU20bの動作状態が正しく反映される操作であれば、任意である。
上記各実施の形態では、そうしたCPU20bによる操作結果を一時記憶するための被監視用RAM領域31bを被監視側コア10bの所有としていたが、これに限らず、監視側コア10aが被監視用RAM領域31bを所有する、すなわち、RAM30a内に被監視用RAM領域31bを設定することとしてもよい。この場合、例えば、CPU20bがRAM30aに設定された被監視用RAM領域にCPU20aを介することなくアクセスする、いわゆるDMA(Direct Memory Access)方式を採用することができる。要は、CPU20bによる操作結果をCPU20aによって監視することができれば、被監視用RAM領域31bの所在は任意である。
上記各実施の形態では、異常監視判断処理(図3参照)として、被監視用RAM領域31bに一時記憶されているデータに基づきCPU20bの動作状態を判断し、動作状態が異常であると判断された回数である異常回数カウント値が判定値に到達するとき、CPU20bの動作状態が異常である旨の(最終的な)判定を行うこととしたが、判定値については任意である。例えば、動作状態が異常であると一度でも判断されたら、ただちに、CPU20bの動作状態が異常である旨の最終的な判定を行う(すなわち、判定値が「1」)こととしてもよい。
上記各実施の形態では、デュアルコアの異常監視装置1及び1aは、出口保護部40a及び40b並びに入口保護部50a及び50bの双方を備えていたが、これに限らず、出口保護部40a及び40bを割愛した構成としてもよい。
上記各実施の形態では、デュアルコアの異常監視装置1及び1aを自動車の燃焼室に燃料を噴射供給する燃料噴射制御装置に適用し、上記基本燃料噴射量算出処理、及び、上記第1補正処理、並びに、上記インジェクタの駆動制御を通じての最終燃料噴射量の燃料噴射供給を、監視側コア10aに実行させ、上記第2補正処理を、被監視側コア10bに実行させることとしていたが、これに限らない。要は、当該マルチコアの異常監視装置を、任意の制御対象を制御するための最終制御値を算出する制御装置に適用し、監視側コアに、制御対象が有する各種センサのセンサ出力値に基づき、制御対象の制御を持続可能とする基本制御値を算出する基本制御値算出処理と、所定のデフォルト値に基づいて、基本制御値算出処理を通じて算出された基本制御値を最終制御値に補正する第1補正処理とを実行させるとともに、被監視側コアに、センサ出力値に基づいて、基本制御値算出処理を通じて算出された基本制御値を最終制御値に補正する第2補正処理を実行させればよい。これにより、当該装置は、被監視側コアの動作状態が異常である旨監視側コアによって判定されたとき、フェイルセーフとして、第1補正処理を通じて補正された最終制御値に基づき制御対象を制御することができるようになる。
上記各実施の形態では、2つのプロセッサコアが1つのパッケージに集積された、いわゆるデュアルコアによって構成していたが、プロセッサコアの個数は任意である。プロセッサコアの数が多数になるほど、上記出口保護手段及び入口保護手段による保護機能による効果が高まり、好適である。すなわち、1つのプロセッサコアの動作状態が異常となり、これが起因して、あるプロセッサコアの動作状態が異常となったことを契機として、他のプロセッサコアの動作状態が次々に異常となる連鎖を生じにくくすることができるようになる。
本発明に係るマルチコアの異常監視装置の第1の実施の形態について、その構成例を示す模式図。 同第1の実施の形態の被監視用処理について、その処理手順の一例を示すフローチャート。 同第1の実施の形態の異常監視判断処理について、その処理手順の一例を示すフローチャート。 (a)及び(b)は、同第1の実施の形態を構成する出口保護部40a及び40bの初期設定処理について、その処理手順の一例をそれぞれ示すフローチャート。 (a)及び(b)は、同第1の実施の形態を構成する入口保護部50a及び50bの初期設定処理について、その処理手順の一例をそれぞれ示すフローチャート。 同第1の実施の形態について、その動作例を示す模式図。 本発明に係るマルチコアの異常監視装置の第2の実施の形態について、その構成例を示す模式図。
符号の説明
1…デュアルコアの異常監視装置、10a…監視側コア、10b…被監視側コア、20a、20b…CPU(演算処理部)、21a…異常監視判断処理、21b…被監視用処理、22…復帰処理、30a、30b…RAM(一時記憶部)、31a…カウント用RAM領域、31b…被監視用RAM領域、40a、40b…出口保護部(第2保護手段)、41a、41b…アクセス判定部、42a、42b…アドレス情報記憶部、50a、50b…入口保護部(第1保護手段)、51a、51b…アクセス判定部、52a、52b…アドレス情報記憶部、53…通知部、60…第1通信路、70a、70b…第2通信路、100…チップ、Ac21〜Ac23…異常アクセス、Ac3…通知。

Claims (6)

  1. 複数のプロセッサコア及びこれら複数のプロセッサコア間を接続する第1通信路が1つのパッケージに集積され、
    前記複数のプロセッサコアは、演算処理部と、主にこの演算処理部によって使用される一時記憶部と、前記演算処理部が前記一時記憶部にアクセス可能にこれら演算処理部及び一時記憶部を接続する第2通信路とをそれぞれ所有し、
    前記複数のプロセッサコアのうちの少なくとも2つのプロセッサコアは、自身以外のプロセッサコアの動作状態を監視する監視側コア、及び、この監視側コアによって動作状態が監視される被監視側コアに割り当てられ、
    前記被監視側コアは、当該被監視側コア所有の一時記憶部に対し、当該被監視用コア所有の前記第2通信路を介してアクセスして、所定時間毎に第1書込操作を実行し、
    前記監視側コアは、前記被監視側コアによる第1書込操作の結果を前記第1通信路を介して監視しつつ、当該監視側コア所有の一時記憶部に対し、当該監視側コア所有の前記第2通信路を介してアクセスして、前記第1書込操作の結果に対応する第2書込操作を前記所定時間毎に実行するとともに、当該監視側コア所有の一時記憶部に書き込まれたこの第2書込操作の結果に基づく所定の判定条件が成立するとき、前記被監視側コアの動作状態が異常である旨を判定するマルチコアの異常監視装置であって、
    前記監視側コアは、アドレス情報記憶部及びアクセス判定部を有する第1保護手段を、前記第1通信路と当該監視側コア所有の一時記憶部との接続部に所有しており、
    前記第1保護手段の前記アドレス情報記憶部には、当該監視側コアの演算処理部によって設定された前記監視側コア所有の一時記憶部のアドレス情報及びこのアドレスへのアクセス禁止態様があらかじめ記憶され
    前記第1保護手段の前記アクセス判定部は、前記監視側コア以外のプロセッサコアが前記第1通信路を介してアクセスしようとするアドレス及びそのアクセス態様が、前記第1保護手段の前記アドレス情報記憶部に記憶されたアドレス情報及びアクセス禁止態様に、それぞれ一致するか否かを判定
    前記第1保護手段は、当該第1保護手段の前記アクセス判定部によって一致する旨が判定されるとき、前記監視側コア以外のプロセッサコアが前記第1通信路を介して前記監視側コア所有の一時記憶部へアクセスすることを遮断することを特徴とする、マルチコアの異常監視装置。
  2. 前記被監視側コアは、アドレス情報記憶部及びアクセス判定部を有する第2保護手段を、当該被監視側コア所有の演算処理部と前記第1通信路との接続部に所有しており、
    前記第2保護手段の前記アドレス情報記憶部には、当該被監視側コアの演算処理部によって設定された前記監視側コア所有の一時記憶部のアドレス情報びこのアドレスへのアクセス禁止態様があらかじめ記憶され
    前記第2保護手段の前記アクセス判定部は、当該被監視側コアが前記第1通信路を介してアクセスしようとするアドレス及びそのアクセス態様が、前記第2保護手段の前記アドレス情報記憶部に記憶されたアドレス情報及びアクセス禁止態様に、それぞれ一致するか否かを判定し、
    前記第2保護手段は、当該第2保護手段の前記アクセス判定部によって一致する旨が判定されるとき、前記被監視側コアが前記第1通信路を介して前記監視側コア所有の一時記憶部へアクセスすることを遮断することを特徴とする、請求項1に記載のマルチコアの異常監視装置。
  3. 前記第1保護手段は、動作時に、前記監視側コア所有の一時記憶部にアクセスしようとした、前記監視側コア以外のプロセッサコアの動作状態にかかる情報を前記監視側コアに通知する通知手段をさらに備え、
    前記監視側コアは、前記通知手段によって通知された前記情報に基づいて前記監視側コア以外のプロセッサコアの動作状態の異常の程度を判断し、前記被監視側コアの復帰処理をこの異常の程度に応じて実行することを特徴とする、請求項1または2に記載のマルチコアの異常監視装置。
  4. 前記第1書込操作は、前記被監視側コアが、前記被監視側コア所有の一時記憶部に対し、所定値及びこの所定値の反転値を所定時間毎に交互に書き込む操作である、請求項1〜3のいずれか一項に記載のマルチコアの異常監視装置。
  5. 前記第2書込操作は、前記監視側コアが、前記監視側コア所有の一時記憶部に対し、前記第1書込操作が連続して正しく実行されない回数を書き込む操作である、請求項1〜4のいずれか一項に記載のマルチコアの異常監視装置。
  6. 当該マルチコアの異常監視装置は、制御対象を制御するための最終制御値を算出する制御装置に適用され、
    前記監視側コアは、前記制御対象が有する各種センサのセンサ出力値に基づき、前記制御対象の制御を持続可能とする基本制御値を算出する基本制御値算出処理と、所定のデフォルト値に基づいて、前記基本制御値算出処理を通じて算出された基本制御値を最終制御値に補正する第1補正処理とを実行し、
    前記被監視側コアは、前記センサ出力値に基づいて、前記基本制御値算出処理を通じて算出された基本制御値を最終制御値に補正する第2補正処理を実行し、
    当該装置は、前記被監視側コアの動作状態が正常である旨判定されるとき、前記第2補正処理を通じて補正された最終制御値に基づき前記制御対象を制御し、前記被監視側コアの動作状態が異常である旨判定されるとき、フェイルセーフとして、前記第1補正処理を通じて補正された最終制御値に基づき前記制御対象を制御することを特徴とする、請求項1〜5のいずれか一項に記載のマルチコアの異常監視装置。
JP2007176544A 2007-07-04 2007-07-04 マルチコアの異常監視装置 Active JP4433006B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2007176544A JP4433006B2 (ja) 2007-07-04 2007-07-04 マルチコアの異常監視装置
EP08011025A EP2045721B1 (en) 2007-07-04 2008-06-18 Multicore abnormality monitoring device
US12/165,964 US7877637B2 (en) 2007-07-04 2008-07-01 Multicore abnormality monitoring device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007176544A JP4433006B2 (ja) 2007-07-04 2007-07-04 マルチコアの異常監視装置

Publications (2)

Publication Number Publication Date
JP2009015590A JP2009015590A (ja) 2009-01-22
JP4433006B2 true JP4433006B2 (ja) 2010-03-17

Family

ID=40222365

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007176544A Active JP4433006B2 (ja) 2007-07-04 2007-07-04 マルチコアの異常監視装置

Country Status (3)

Country Link
US (1) US7877637B2 (ja)
EP (1) EP2045721B1 (ja)
JP (1) JP4433006B2 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9207661B2 (en) * 2007-07-20 2015-12-08 GM Global Technology Operations LLC Dual core architecture of a control module of an engine
DE102008047514A1 (de) * 2008-09-12 2010-03-25 Pilz Gmbh & Co. Kg Datenträger
DE102008042894A1 (de) * 2008-10-16 2010-04-22 Robert Bosch Gmbh Verfahren und Vorrichtung zum Testen eines Rechnerkerns in einer mindestens zwei Rechnerkerne aufweisenden Recheneinheit
JP5538767B2 (ja) * 2009-07-30 2014-07-02 キヤノン株式会社 情報処理装置、情報処理方法、及びプログラム
JP5716396B2 (ja) * 2010-02-05 2015-05-13 富士通株式会社 情報処理装置及び情報処理方法
US8631256B2 (en) 2010-12-22 2014-01-14 Via Technologies, Inc. Distributed management of a shared power source to a multi-core microprocessor
US8972707B2 (en) 2010-12-22 2015-03-03 Via Technologies, Inc. Multi-core processor with core selectively disabled by kill instruction of system software and resettable only via external pin
US8782451B2 (en) 2010-12-22 2014-07-15 Via Technologies, Inc. Power state synchronization in a multi-core processor
US8637212B2 (en) 2010-12-22 2014-01-28 Via Technologies, Inc. Reticle set modification to produce multi-core dies
US9460038B2 (en) * 2010-12-22 2016-10-04 Via Technologies, Inc. Multi-core microprocessor internal bypass bus
CN102761646B (zh) * 2011-04-26 2014-12-10 深圳富泰宏精密工业有限公司 双模手机的命令交互纠错系统及方法
DE102011088764A1 (de) * 2011-12-15 2013-06-20 Robert Bosch Gmbh Verfahren zum Betreiben eines Steuergeräts
US9058419B2 (en) 2012-03-14 2015-06-16 GM Global Technology Operations LLC System and method for verifying the integrity of a safety-critical vehicle control system
KR101978984B1 (ko) 2013-05-14 2019-05-17 한국전자통신연구원 프로세서의 오류를 검출하는 장치 및 방법
TWI625622B (zh) 2013-10-31 2018-06-01 聯想企業解決方案(新加坡)有限公司 在多核心處理器系統與運作多核心處理器系統的電腦實施方法
CN109413036B (zh) * 2018-09-12 2022-02-08 全球能源互联网研究院有限公司 敏感信息异常流出监测方法、装置和服务器
JP2021144261A (ja) * 2020-03-10 2021-09-24 本田技研工業株式会社 電子制御装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3950729A (en) * 1973-08-31 1976-04-13 Nasa Shared memory for a fault-tolerant computer
US4710926A (en) * 1985-12-27 1987-12-01 American Telephone And Telegraph Company, At&T Bell Laboratories Fault recovery in a distributed processing system
JPS6385860A (ja) 1986-09-29 1988-04-16 Toshiba Corp 共有メモリ書込制御方式
DE69227272T2 (de) * 1991-04-16 1999-03-11 Nec Corp Multiprozessorssystem
JPH07200503A (ja) * 1993-12-29 1995-08-04 Ricoh Co Ltd マルチプロセッサ
JPH106963A (ja) * 1996-06-20 1998-01-13 Nisshinbo Ind Inc ブレーキバルブ制御方法
JPH1091603A (ja) 1996-09-12 1998-04-10 Fujitsu Ltd デュアルcpuシステムにおける立ち上げ同期確立方法及び異常監視方法
EP1157324A4 (en) * 1998-12-18 2009-06-17 Triconex Corp PROCESS AND DEVICE FOR PROCESSING CONTROL USING A MULTIPLE REDUNDANT PROCESS CONTROL SYSTEM
JP4319547B2 (ja) 2001-12-11 2009-08-26 コンティネンタル・テーベス・アクチエンゲゼルシヤフト・ウント・コンパニー・オッフェネ・ハンデルスゲゼルシヤフト マルチコア型冗長制御コンピュータシステム、自動車における安全上重要な用途のためのコンピュータネットワーク並びにその使用
US7111196B2 (en) * 2003-05-12 2006-09-19 International Business Machines Corporation System and method for providing processor recovery in a multi-core system
JP2004348627A (ja) * 2003-05-26 2004-12-09 Toshiba Lsi System Support Kk マイクロコンピュータシステム
DE10328059A1 (de) 2003-06-23 2005-01-13 Robert Bosch Gmbh Verfahren und Vorrichtung zur Überwachung eines verteilten Systems
US7496788B1 (en) * 2006-08-17 2009-02-24 Nvidia Corporation Watchdog monitoring for unit status reporting
JP4458119B2 (ja) * 2007-06-11 2010-04-28 トヨタ自動車株式会社 マルチプロセッサシステム及びその制御方法

Also Published As

Publication number Publication date
US20090013217A1 (en) 2009-01-08
US7877637B2 (en) 2011-01-25
EP2045721A2 (en) 2009-04-08
JP2009015590A (ja) 2009-01-22
EP2045721B1 (en) 2011-12-28
EP2045721A3 (en) 2010-04-21

Similar Documents

Publication Publication Date Title
JP4433006B2 (ja) マルチコアの異常監視装置
JP4925422B2 (ja) データ処理装置内コンテンツへのアクセス管理
JP5867495B2 (ja) 電子制御装置
JP4232987B2 (ja) プロセッサユニットの少なくとも2つの動作モードを切替る方法および対応するプロセッサユニット
TWI344600B (en) Circuitry for determining access permission
US8984245B2 (en) Memory protection unit and method for controlling an access to memory device
JP6145345B2 (ja) 自動車用電子制御装置
JP2007249323A (ja) マイクロコンピュータ
CN107949847B (zh) 车辆的电子控制单元
US11188321B2 (en) Processing device and software execution control method
JP2015518605A (ja) 安全アプリケーションのための機能アーキテクチャパターン
JP2008276749A (ja) プログラミング可能なデータ処理装置用の保護ユニット
JP6955858B2 (ja) 制御装置
US20060053350A1 (en) Semiconductor circuit device and method of detecting runaway
JP3968876B2 (ja) 電子制御装置
JP7024582B2 (ja) 車載制御装置
JP6838234B2 (ja) 車両制御装置
CN106874796B (zh) 系统运行中指令流的安全检测和容错方法
JP2008287449A (ja) データプロセッサ
JP5842833B2 (ja) 情報処理装置、プログラム
US20120265904A1 (en) Processor system
JP6624005B2 (ja) 相互監視システム
JP4856023B2 (ja) リアルタイムウォッチ装置及びその方法
Baumeister Using Decoupled Parallel Mode for Safety Applications
JP2012238272A (ja) Ram値保証装置およびram値保証プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090108

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090519

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090717

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: 20091201

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091214

R151 Written notification of patent or utility model registration

Ref document number: 4433006

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130108

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140108

Year of fee payment: 4

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

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