JP2015121953A - マイクロコンピュータ及び電子制御装置 - Google Patents
マイクロコンピュータ及び電子制御装置 Download PDFInfo
- Publication number
- JP2015121953A JP2015121953A JP2013265452A JP2013265452A JP2015121953A JP 2015121953 A JP2015121953 A JP 2015121953A JP 2013265452 A JP2013265452 A JP 2013265452A JP 2013265452 A JP2013265452 A JP 2013265452A JP 2015121953 A JP2015121953 A JP 2015121953A
- Authority
- JP
- Japan
- Prior art keywords
- core
- cores
- microcomputer
- program
- update
- 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.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
【課題】マルチコアマイコンにおいて、プログラムメモリの使用量を減少させる。【解決手段】複数の演算プロセッサであるコア0〜2と、各コア0〜2が実行するプログラムが格納されたROM11と、を備えるマイコン23において、各コア0〜2は、自身に固有のID(識別情報)が格納された格納部17を内蔵しており、ROM11には、各コア0〜2が共通に実行する共通プログラムが少なくとも格納されている。そして、その共通プログラムは、コア0〜2が自身の格納部17からIDを読み出す読み出し処理を行うように構成されていると共に、コア0〜2が実施する処理の一部の内容が、前記読み出し処理で読み出されたIDに応じて変わるように構成されている。例えば、コアのIDに応じて、コア0〜2がビット反転させる監視用RAM14におけるアクセス先(ビット位置)が変わる。【選択図】図1
Description
本発明は、マイクロコンピュータ及び電子制御装置に関する。
マイクロコンピュータ(以下、マイコンという)として、同一パッケージ内に演算プロセッサを複数備えたものがある。そのようなマイコンは、内蔵の演算プロセッサがコアと呼ばれることから、マルチコアマイコンと呼ばれる。
マルチコアマイコンにおいて、例えば、コアの異常(暴走)を監視する技術として、以下のようなものがある(例えば特許文献1参照)。
RAMには、コア毎に固有の更新領域が設けられている。各コアは、自身に対応する更新領域の記憶内容を、一定時間毎に更新する。1つの特定コアが、全コアの更新領域の記憶内容が正しく更新されているか否かを確認し、正しく更新されていなければ、マイコン外部の監視部への信号反転を停止して、その監視部からマイコンにリセット信号が与えられるようにする。
RAMには、コア毎に固有の更新領域が設けられている。各コアは、自身に対応する更新領域の記憶内容を、一定時間毎に更新する。1つの特定コアが、全コアの更新領域の記憶内容が正しく更新されているか否かを確認し、正しく更新されていなければ、マイコン外部の監視部への信号反転を停止して、その監視部からマイコンにリセット信号が与えられるようにする。
上記技術において、各コアは、自身に固有の更新領域にアクセス(ライトアクセス)する。このため、各コアが更新領域の記憶内容を更新するために実行するプログラムとして、コア毎に異なるプログラムを実装する必要がある。よって、プログラムを記憶するプログラムメモリの使用量が多くなってしまう。
そこで、本発明は、マルチコアマイコンにおいて、プログラムメモリの使用量を減少させることを目的としている。
第1発明のマイコンは、複数の演算プロセッサであるコアと、各コアが実行するプログラムが格納されたプログラムメモリと、を備える。
各コアは、自身に固有の識別情報が格納された格納部を内蔵している。
各コアは、自身に固有の識別情報が格納された格納部を内蔵している。
プログラムメモリには、各コアが共通に実行する共通プログラムが少なくとも格納されている。そして、その共通プログラムは、コアが自身の格納部から識別情報を読み出す読み出し処理を行うように構成されている。更に、共通プログラムは、コアが実施する処理の一部の内容が、前記読み出し処理で読み出された識別情報に応じて変わるように構成されている。
このため、各コアが、同一の共通プログラムを実行することで、コア毎に異なる内容の処理を実施することができる。よって、プログラムメモリに格納しなければならないプログラムの量(プログラムを成すデータの量)を少なくすることができる。つまり、プログラムメモリの使用量を減少させることができる。また、コア数の増減に対して、共通プログラムの変更は不要となるため、プログラムの開発効率が良い。
なお、特許請求の範囲に記載した括弧内の符号は、一つの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、本発明の技術的範囲を限定するものではない。
本発明が適用された実施形態の電子制御装置(以下、ECUという)について説明する。
図1に示すように、本実施形態のECU21は、例えば車両におけるエンジン等の制御対象を制御するための処理を行うマイコン23と、マイコン23を監視する監視IC25と、を備える。
図1に示すように、本実施形態のECU21は、例えば車両におけるエンジン等の制御対象を制御するための処理を行うマイコン23と、マイコン23を監視する監視IC25と、を備える。
監視IC25には、マイコン23から出力されるウォッチドッグタイマクリア信号(以下、WDC信号という)が入力される。
監視IC25は、WDC信号のレベル変化エッジ(立ち下がりエッジ及び立ち下がりエッジ)によってクリアされるウォッチドッグタイマ(図示省略)を備える。そして、監視IC25は、WDC信号がレベル反転しない連続時間が規定時間Tovを超えると、ウォッチドッグタイマがオーバーフローして、マイコン23が異常であることを検知することとなり、マイコン23をリセットして異常を解消するために、マイコン23へリセット信号を出力する。
監視IC25は、WDC信号のレベル変化エッジ(立ち下がりエッジ及び立ち下がりエッジ)によってクリアされるウォッチドッグタイマ(図示省略)を備える。そして、監視IC25は、WDC信号がレベル反転しない連続時間が規定時間Tovを超えると、ウォッチドッグタイマがオーバーフローして、マイコン23が異常であることを検知することとなり、マイコン23をリセットして異常を解消するために、マイコン23へリセット信号を出力する。
マイコン23は、複数(この例では3つ)のコア(演算プロセッサ)0,1,2と、全てのコア0〜2がアクセス可能なROM11及びRAM13と、少なくともコア0がアクセス可能なタイマ15と、を備える。この例では、マイコン23を監視することに関して、コア0〜2のうちのコア0が、マスタコアとなっている。
各コア0〜2は、自身に固有の識別情報として、そのコアのID(アイデンティティ)のデータ(以下単に、IDという)が格納された、格納部17を内蔵している。この例では、コア0のIDは「0」で、コア1のIDは「1」で、コア2のIDは「2」である。また、格納部17は不揮発性のメモリからなる。
また、図1における点線枠内に示すように、RAM13における所定アドレス(この例では「adM」)の各ビット領域のうち、先頭からコア0〜2の数と同数のビット領域(この例では0ビット目14−0から2ビット目14−2までの3ビットの領域)は、異常監視のために、各コア0〜2に割り当てられている。その3ビットの領域は、各コア0〜2が自身に割り当てられたビットを反転させるための記憶領域(以下、監視用RAMという)14になっている。監視用RAM14では、0ビット目14−0がコア0に、1ビット目14−1がコア1に、2ビット目14−2がコア2に、それぞれ割り当てられている。監視用RAM14の0ビット目14−0〜2ビット目14−2は、コア0〜2毎に固有の更新領域に相当する。
プログラムメモリとしてのROM11には、各コア0〜0が実行するプログラムが格納されている。ROM11内のプログラムとしては、コア0〜2毎に異なるプログラムだけでなく、図2に示すように、各コア0〜2が共通に実行する共通プログラムとしての更新処理プログラム31もある。
本実施形態において、更新処理プログラム31は、各コア0〜2が、後述する図4の更新処理を行うためのプログラムである。更新処理は、各コア0〜2が、自身が正常であることを示すために行う処理であり、監視用RAM14において自身に対応するビット位置の値を一定時間T毎に更新する(この例では反転させる)ための処理である。
また、図2に示すように、ROM11において、所定のアドレス(この例では「adJ」)から連続する3つのアドレス(「adJ+0」〜「adJ+2」)の記憶領域は、各コア0〜2に関して、プログラムジャンプのジャンプ先を示すベクタ領域になっている。この例では、アドレス=「adJ+0」の記憶領域(以下単に、「adJ+0」という)に、コア0に対応するジャンプ先アドレス(Jmp0)が記憶されている。同様に、アドレス=「adJ+1」の記憶領域(以下単に、「adJ+1」という)に、コア1に対応するジャンプ先アドレス(Jmp1)が記憶され、アドレス=「adJ+2」の記憶領域(以下単に、「adJ+2」という)に、コア2に対応するジャンプ先アドレス(Jmp2)が記憶されている。
マイコン23において、タイマ15は、上記一定時間T毎に、コア0に対するタイマ割込要求を発生させる。尚、一定時間Tは、前述のウォッチドッグタイマがオーバーフローする規定時間Tovよりも短い時間であり、例えば5msである。
そして、コア0は、タイマ15によるタイマ割込要求が発生する毎に、図3のタイマ割込処理を行う。そのタイマ割込処理のプログラムは、コア0〜2のうちのコア0だけが実行するプログラムとして、ROM11に格納されている。
図3に示すように、コア0は、タイマ割込処理では、まずS110にて、監視用RAM14の全てのビット(0ビット目14−0〜2ビット目14−2)が、前回値から更新されているか否かを判定する。この例では、監視用RAM14の全てのビットが前回値から反転している(反対の値になっている)か否かを判定する。前回値とは、当該タイマ割込処理を前回に実施したときの値である。また、マイコン23が起動してから最初の当該タイマ割込処理におけるS110では、全てのビットが反転していると肯定判定する。
コア0は、S110にて、監視用RAM14の全てのビットが反転している(更新されている)と肯定判定した場合には、正常と判断してS120に進み、マイコン23から監視IC25へのWDC信号の出力レベルを反転させる。そして、コア0は、次のS130にて、他のコア1,2へ割込要求信号(図1参照)を発行し、その後、当該タイマ割込処理を終了する。
また、コア0は、S110にて、監視用RAM14のビットのうちの1つでも反転していない(更新されていない)と判定した場合には、異常と判断して、WDC信号の出力レベルを反転させることなく、そのままS130に進む。そして、S130にて、他のコア1,2へ割込要求信号を発行した後、当該タイマ割込処理を終了する。尚、このように異常と判断される状態が継続して、WDC信号がレベル反転しない連続時間が規定時間Tovを超えると、前述したように、監視IC25からマイコン23へリセット信号が出力されることとなる。
コア1,2は、コア0によって発行される割込要求信号を受けると、前述の更新処理プログラム31を実行する。また、コア0も、図3のタイマ割込処理を終了すると、更新処理プログラム31を実行する。このようにして、全てのコア0〜2は、一定時間T毎に、且つ、コア0が図3のタイマ割込処理におけるS110の判定を行ってから次に同じS110の判定を行うまでの間毎に、更新処理プログラム31を実行することとなる。
各コア0〜2は、共通の更新処理プログラム31を実行することで、図4の更新処理を行う。
図4に示すように、各コア0〜2は、更新処理では、まずS210にて、全コア0〜2に共通の自己診断処理(以下、共通自己診断処理という)を行う。共通自己診断処理としては、例えば、自身(処理を行うコア自身のことであり、以下、自コアともいう)におけるスタック領域がオーバーフローしたか否かを判定する処理がある。また、共通自己診断処理の判定結果は、例えば自コアに内蔵された所定のレジスタに書き込まれる。
図4に示すように、各コア0〜2は、更新処理では、まずS210にて、全コア0〜2に共通の自己診断処理(以下、共通自己診断処理という)を行う。共通自己診断処理としては、例えば、自身(処理を行うコア自身のことであり、以下、自コアともいう)におけるスタック領域がオーバーフローしたか否かを判定する処理がある。また、共通自己診断処理の判定結果は、例えば自コアに内蔵された所定のレジスタに書き込まれる。
そして、各コア0〜2は、次のS220にて、共通自己診断処理の判定結果が「正常」であるか否かを判定し、「正常」であれば、S230に進む。
各コア0〜2は、S230では、自身の格納部17から自身のIDを読み出すための読み出し処理(以下、ID読み出し処理という)を行う。ID読み出し処理の命令は、例えば、「X=Read ID();」という命令であり、その命令が実行されることにより、格納部17からIDが読み出されて、そのIDが自コアに内蔵されたレジスタXに書き込まれる。
各コア0〜2は、S230では、自身の格納部17から自身のIDを読み出すための読み出し処理(以下、ID読み出し処理という)を行う。ID読み出し処理の命令は、例えば、「X=Read ID();」という命令であり、その命令が実行されることにより、格納部17からIDが読み出されて、そのIDが自コアに内蔵されたレジスタXに書き込まれる。
そして、各コア0〜2は、次のS240にて、コア毎に固有の自己診断処理(以下、固有自己診断処理という)を行う。
固有自己診断処理は、一例を挙げると、例えば、自コアが実行する制御演算のプログラムに、入力データとして、予め定められたテストデータを与え、そのテストデータに対する制御演算の結果と、予め用意されている期待値とを比較して、結果と期待値とが一致していれば「正常」、不一致ならば「異常」と判定する処理である。
固有自己診断処理は、一例を挙げると、例えば、自コアが実行する制御演算のプログラムに、入力データとして、予め定められたテストデータを与え、そのテストデータに対する制御演算の結果と、予め用意されている期待値とを比較して、結果と期待値とが一致していれば「正常」、不一致ならば「異常」と判定する処理である。
固有自己診断処理は、コア0〜2毎に内容が異なる処理であるため、その固有自己診断処理を行うためのプログラムは、コア0〜2毎に異なるプログラムである。このため、コア0〜2毎の固有自己診断処理のプログラムは、ROM11の異なる記憶領域にそれぞれ格納されている。
本実施形態では、前述のベクタ領域(「adJ+0」〜「adJ+2」)のうち、「adJ+0」に記憶されているアドレス(Jmp0)が、コア0の固有自己診断処理のプログラムが格納されている記憶領域の先頭アドレスになっている。同様に、「adJ+1」に記憶されているアドレス(Jmp1)が、コア1の固有自己診断処理のプログラムが格納されている記憶領域の先頭アドレスになっており、「adJ+2」に記憶されている先アドレス(Jmp2)が、コア2の固有自己診断処理のプログラムが格納されている記憶領域の先頭アドレスになっている。
このため、各コア0〜2は、S240では、「Y=Read JumpAd(adJ,X);」というアドレス取得命令と、「Jump(Y);」というジャンプ命令を行うことにより、自身が実行すべき固有自己診断処理のプログラムへジャンプする。
上記アドレス取得命令は、「adJ」にレジスタXの値(即ち、自コアのIDの値)を加えたアドレスから、データ(即ちジャンプ先アドレス)を読み出し、その読み出したデータを、自コアに内蔵されたレジスタYに書き込む、という命令である。上記ジャンプ命令は、レジスタYに記憶されているアドレスへジャンプする、という命令である。
このため、コア0であれば、IDが「0」であるため、「adJ+0」に記憶されているアドレス(Jmp0)へジャンプして、コア0の固有自己診断処理のプログラムを実行することとなる。また、コア1であれば、IDが「1」であるため、「adJ+1」に記憶されているアドレス(Jmp1)へジャンプして、コア1の固有自己診断処理のプログラムを実行することとなる。同様に、コア2であれば、IDが「2」であるため、「adJ+2」に記憶されているアドレス(Jmp2)へジャンプして、コア2の固有自己診断処理のプログラムを実行することとなる。また、各コア0〜2において、固有自己診断処理の判定結果は、例えば自コアに内蔵された所定のレジスタ(レジスタX以外のレジスタ)に書き込まれる。
そして、各コア0〜2は、固有自己診断処理のプログラムを実行し終えると、更新処理プログラム31を実行する状態に戻り、S250に進む。
各コア0〜2は、S250では、固有自己診断処理の判定結果が「正常」であるか否かを判定し、「正常」であれば、自コアの状態は正常であると判断して、S260に進む。
各コア0〜2は、S250では、固有自己診断処理の判定結果が「正常」であるか否かを判定し、「正常」であれば、自コアの状態は正常であると判断して、S260に進む。
各コア0〜2は、S260では、監視用RAM14における更新対象ビット(即ち、自コアに割り当てられているビット)の値を反転させる。
本実施形態では、各コア0〜2は、例えば、「BitInvert(adM,X);」というビット反転命令を実行することにより、更新対象ビットを反転させる。
本実施形態では、各コア0〜2は、例えば、「BitInvert(adM,X);」というビット反転命令を実行することにより、更新対象ビットを反転させる。
そのビット反転命令は、監視用RAM14のビット(RAM13における「adM」というアドレスのビット)のうち、レジスタXの値(即ち、自コアのIDの値)と同じビット位置のビットを反転させる、という命令である。
このため、コア0であれば、IDが「0」であるため、監視用RAM14の0ビット目14−0を反転させることとなる。また、コア1であれば、IDが「1」であるため、監視用RAM14の1ビット目14−1を反転させることとなり、コア2であれば、IDが「2」であるため、監視用RAM14の2ビット目14−2を反転させることとなる。
そして、各コア0〜2は、S260の処理を行った後、当該更新処理を終了する。
また、各コア0〜2は、S220にて、共通自己診断処理の判定結果が「異常」であると判定した場合、あるいは、S250にて、固有自己診断処理の判定結果が「異常」であると判定した場合には、S260の処理(更新対象ビットの反転)を行うことなく、そのまま当該更新処理を終了する。
また、各コア0〜2は、S220にて、共通自己診断処理の判定結果が「異常」であると判定した場合、あるいは、S250にて、固有自己診断処理の判定結果が「異常」であると判定した場合には、S260の処理(更新対象ビットの反転)を行うことなく、そのまま当該更新処理を終了する。
次に、ECU21の作用について、図5を用い説明する。
図5に示すように、各コア0〜2は、正常であれば、監視用RAM14のビットのうち、自身に割り当てられている更新対象ビットを、一定時間T毎に反転させる。また、コア0は、一定時間T毎に、監視用RAM14の全てのビットが反転されているかを確認し、全てのビットが反転されていれば、監視IC25へのWDC信号をレベル反転させる。
図5に示すように、各コア0〜2は、正常であれば、監視用RAM14のビットのうち、自身に割り当てられている更新対象ビットを、一定時間T毎に反転させる。また、コア0は、一定時間T毎に、監視用RAM14の全てのビットが反転されているかを確認し、全てのビットが反転されていれば、監視IC25へのWDC信号をレベル反転させる。
よって、マイコン23の各コア0〜2が正常であれば、WDC信号が規定時間Tov以内にレベル反転して、監視IC25からマイコン23へのリセット信号の出力が阻止される。
また例えば、各コア0〜2のうちのコア1に異常が発生して、そのコア1が、更新処理プログラム31を実行しなくなった場合や、更新処理プログラム31を実行しても、S260のビット反転命令を実行しなくなった場合には、監視用RAM14における1ビット目14−1の反転が停止する。すると、コア0は、その1ビット目14−1が反転しないことを検出して、WDC信号のレベル反転を停止する。
そして、WDC信号がレベル反転しない連続時間が規定時間Tovを超えると、監視IC25からマイコン23にリセット信号が出力される。マイコン23は、リセット信号によってリセットされることにより、初期状態に戻り、その後、再起動する。
以上のようなECU21において、マイコン23のROM11に格納されたプログラムのうち、各コア0〜2に共通の更新処理プログラム31は、各コア0〜2が自身の格納部17から自身のIDを読み出すID読み出し処理(S230)を行うように構成されている。そして更に、更新処理プログラム31は、コア0〜2が当該プログラム31を実行することで実施する処理の一部の内容が、ID読み出し処理で読み出されたIDに応じて変わるように構成されている。上記実施形態の例では、IDに応じて、監視用RAM14のビットのうち、自コアが反転させる更新対象ビットの位置(つまり、RAM13におけるビット反転のためのアクセス先)が変わる。また、IDに応じて、固有自己診断処理のプログラムのジャンプ先が変わることにより、実施される固有自己診断処理の内容も変わる。
このため、各コア0〜2は、同一の更新処理プログラム31を実行することで、コア0〜2毎に異なる内容の処理を実施することができる。例えば、RAM13におけるビット反転のためのアクセス先と、固有自己診断処理の内容とが、コア0〜2毎に異なるからといって、コア0〜2毎に異なる更新処理プログラムを設ける必要がない。
よって、ROM11に格納しなければならないプログラムの量(プログラムを成すデータの量)を少なくすることができ、ROM11の使用量を減少させることができる。
また、マイコン23におけるコア数の増減に対して、更新処理プログラム31の変更は不要となるため、プログラムの開発効率が良い。例えば、コア数が増加した場合に、増加したコア用の更新処理プログラムを追加しなくても良いし、コア数が減少した場合に、減少したコアに対応する更新処理プログラムを削除する、という工程も不要となる。コア数が増減した場合には、マスタコアとしてのコア0が監視用RAM14の何ビット分を監視するか、ということを変更するだけで済む。
また、マイコン23におけるコア数の増減に対して、更新処理プログラム31の変更は不要となるため、プログラムの開発効率が良い。例えば、コア数が増加した場合に、増加したコア用の更新処理プログラムを追加しなくても良いし、コア数が減少した場合に、減少したコアに対応する更新処理プログラムを削除する、という工程も不要となる。コア数が増減した場合には、マスタコアとしてのコア0が監視用RAM14の何ビット分を監視するか、ということを変更するだけで済む。
また、更新処理プログラム31は、各コア0〜2が、ID読み出し処理(S230)と、監視用RAM14のビットのうち、ID読み出し処理で読み出されたIDと所定の規則で対応付けされたビットにアクセスして、そのビットの記憶内容を更新履歴が判るように更新する更新処理(S260)と、を行うように構成されている。尚、上記例において、所定の規則は、ID読み出し処理で読み出されたIDの値と同じビット位置、という規則であり、ビットの記憶内容を更新履歴が判るように更新する更新処理は、ビットの値を反転する処理である。
そして、各コア0〜2が、更新処理プログラム31を周期的に実行し、マスタコアとしてのコア0が、監視用RAM14の各ビットの更新状況に基づいて全てのコア0〜2が正常か否かを判定する判定処理(S110)を行うようになっている。
このため、1つのコア0によって、全てのコア0〜2が正常か否かを監視することができる。
また、コア0は、全てのコア0〜2が正常か否かの判定結果を、WDC信号のレベル変化の有無として、マイコン23の外部へ出力する。このため、全てのコア0〜2が正常か否かを、マイコン23の外部の装置(上記例では監視IC25)にて判定することができる。
また、コア0は、全てのコア0〜2が正常か否かの判定結果を、WDC信号のレベル変化の有無として、マイコン23の外部へ出力する。このため、全てのコア0〜2が正常か否かを、マイコン23の外部の装置(上記例では監視IC25)にて判定することができる。
また、監視IC25は、マイコン23から出力される判定結果としてのWDC信号のレベル変化に基づいて、マイコン23が異常であることを検知すると、マイコン23にリセット信号を出力して該マイコン23をリセットする。このため、コア0〜2の何れかが暴走した場合に、その異常なコアを正常復帰させる(つまり、マイコン23を正常復帰させる)ことができる。
尚、コアのIDが、0,1,2,…というような、0から始まるシーケンシャルな番号ではない場合、更新処理プログラム31は、ID読み出し処理で読み出されたIDを所定の計算式に代入した計算結果が、監視用RAM14における更新対象ビットの位置(ビット反転のためのアクセス先)を示すように構成すれば良い。例えば、コアのIDが、10,11,12,…というような値の場合、更新処理プログラム31は、各コア0〜2が、監視用RAM14のビットのうち、ID読み出し処理で読み出された自身のIDから「10」を引いた値と同じビット位置のビットを反転させる、というように構成すれば良い。つまり、更新処理プログラム31は、そのプログラム31を実行するコアのIDに基づいて、そのコアがアクセスすべき監視用RAM14のビット位置(そのコアに固有の更新領域)が特定される、というように構成すれば良い。
また、このような変形は、コアのIDに応じてプログラムのジャンプ先が変わるようにすることについても同様である。また、プログラムのジャンプ先については、例えば、監視用RAM14における更新対象ビットの位置情報(0,1,2,…)を用いて、ジャンプ先が決まるように構成しても良い。そのように構成しても、コアのIDに応じてジャンプ先が変わることになる。
また、コア0〜2毎に固有の更新領域としては、監視用RAM14におけるビットに限らず、例えば、RAM13における何れかのアドレスの記憶領域(nバイトの記憶領域:nは1以上の整数)でも良い。その場合、図4のS260(更新処理)では、例えば、各コア0〜2が、自コアのIDによって特定されるnバイトの更新領域の全ビットを反転させたり、その更新領域の値を所定値ずつ増加させたりするように構成しても良い。更新処理としては、更新領域の記憶内容が更新されたこと(更新履歴)が判る処理であれば、どのような処理でも良い。
また、コア0は、図3のS110にて異常と判断した場合には、監視用RAM14のビットのうち、前回値から反転していないビットを特定することにより、異常となっているコアを特定することができる。また、コア0が異常なコアを特定する場合、コア0〜2のうち、コア0によって異常と特定されたコアだけが、コア0又は監視IC25によってリセットされるように構成することもできる。
以上、本発明の実施形態について説明したが、本発明は上記実施形態に限定されることなく、種々の形態を採り得る。また、前述の数値も一例であり他の値でも良い。
例えば、マイコン23におけるコアの数は、2でも良いし4以上でも良い。また、マイコン23とは別のマイコンに、監視IC25と同様の役割をさせても良い。
例えば、マイコン23におけるコアの数は、2でも良いし4以上でも良い。また、マイコン23とは別のマイコンに、監視IC25と同様の役割をさせても良い。
また、上記実施形態における1つの構成要素が有する機能を複数の構成要素として分散させたり、複数の構成要素が有する機能を1つの構成要素に統合させたりしてもよい。また、上記実施形態の構成の少なくとも一部を、同様の機能を有する公知の構成に置き換えてもよい。また、上記実施形態の構成の一部を、課題を解決できる限りにおいて省略してもよい。なお、特許請求の範囲に記載した文言によって特定される技術思想に含まれるあらゆる態様が本発明の実施形態である。
また、上述したECUの他、当該ECUを構成要素とするシステム、マイコンが実行するプログラム、このプログラムを記録した媒体、プログラム作成方法など、種々の形態で本発明を実現することもできる。
0〜2…コア、11…ROM(プログラムメモリ)、17…格納部、23…マイコン、31…更新処理プログラム(共通プログラム)
Claims (5)
- 複数の演算プロセッサであるコア(0〜2)と、前記各コアが実行するプログラムが格納されたプログラムメモリ(11)と、を備えるマイクロコンピュータ(23)において、
前記各コアは、自身に固有の識別情報が格納された格納部(17)を内蔵しており、
前記プログラムメモリには、前記各コアが共通に実行する共通プログラム(31)が少なくとも格納されており、
前記共通プログラムは、
前記コアが自身の前記格納部から前記識別情報を読み出す読み出し処理(S230)を行うように構成されていると共に、前記コアが実施する処理の一部の内容が、前記読み出し処理で読み出された識別情報に応じて変わるように構成されていること、
を特徴とするマイクロコンピュータ。 - 請求項1に記載のマイクロコンピュータにおいて、
前記複数のコアがアクセス可能なRAM(13)を備え、
前記識別情報に応じて変わる内容は、少なくとも前記RAMにおけるアクセス先であること、
を特徴とするマイクロコンピュータ。 - 請求項2に記載のマイクロコンピュータにおいて、
前記RAMには、前記複数のコア毎に固有の更新領域(14−0〜14−2)が設けられており、
前記共通プログラムは、
前記コアが、前記読み出し処理(S230)と、前記各更新領域のうち、前記読み出し処理で読み出された識別情報と所定の規則で対応付けされた更新領域にアクセスして、その更新領域の記憶内容を更新履歴が判るように更新する更新処理(S260)と、を行うように構成されており、
前記各コアが、前記共通プログラムを周期的に実行し、
前記複数のコアのうちの一つであるマスタコア(0)が、前記各更新領域の記憶内容の更新状況に基づいて全ての前記コアが正常か否かを判定する判定処理(S110)を行うこと、
を特徴とするマイクロコンピュータ。 - 請求項3に記載のマイクロコンピュータにおいて、
前記マスタコアは、前記判定処理による判定結果を当該マイクロコンピュータの外部へ出力する(S120)こと、
を特徴とするマイクロコンピュータ。 - 請求項4に記載のマイクロコンピュータと、
前記マイクロコンピュータから出力される前記判定結果に基づいて、前記マイクロコンピュータが異常であることを検知すると、前記マイクロコンピュータをリセットする監視手段(25)と、
を備えることを特徴とする電子制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013265452A JP2015121953A (ja) | 2013-12-24 | 2013-12-24 | マイクロコンピュータ及び電子制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013265452A JP2015121953A (ja) | 2013-12-24 | 2013-12-24 | マイクロコンピュータ及び電子制御装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015121953A true JP2015121953A (ja) | 2015-07-02 |
Family
ID=53533511
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013265452A Pending JP2015121953A (ja) | 2013-12-24 | 2013-12-24 | マイクロコンピュータ及び電子制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2015121953A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023203768A1 (ja) * | 2022-04-22 | 2023-10-26 | 日立Astemo株式会社 | 電子制御装置及び書込制御方法 |
-
2013
- 2013-12-24 JP JP2013265452A patent/JP2015121953A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023203768A1 (ja) * | 2022-04-22 | 2023-10-26 | 日立Astemo株式会社 | 電子制御装置及び書込制御方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20210018415A (ko) | 예측 실패 복구에 대한 레이턴시를 줄이기 위한 이차적 분기 예측 저장 | |
JP4893427B2 (ja) | マイクロコンピュータシステム | |
EP2839374A1 (en) | Information processing device, information processing method, and storage medium storing program for executing information processing method | |
JP5533789B2 (ja) | 車載電子制御装置 | |
JP5504604B2 (ja) | Ram診断装置 | |
JP2015121953A (ja) | マイクロコンピュータ及び電子制御装置 | |
WO2016204070A1 (ja) | Cpu監視装置 | |
US10269194B2 (en) | Multiprocessor system and vehicle control system | |
JP6183251B2 (ja) | 電子制御装置 | |
JP6512087B2 (ja) | 車両用制御装置 | |
JP5870043B2 (ja) | 起動制御装置、情報機器および起動制御方法 | |
US20130055017A1 (en) | Device and method for restoring information in a main storage unit | |
JP4853390B2 (ja) | 計測装置 | |
US10540222B2 (en) | Data access device and access error notification method | |
CN108628699B (zh) | 一种基于ecc的flash数据异常处理方法及装置 | |
JP5703968B2 (ja) | プログラム開発支援装置およびそのプログラム | |
JP2009042971A (ja) | リアルタイムウォッチ装置及びその方法 | |
JP2015170006A (ja) | 制御装置、及び、初期化プログラム | |
JP6332091B2 (ja) | 電子制御装置 | |
JP6160571B2 (ja) | データ処理装置 | |
JP7419662B2 (ja) | マルチプロセッサシステム | |
JP5541201B2 (ja) | プログラム実行状況監視装置、および実行状況監視プログラム | |
JP2017208058A (ja) | 情報処理装置 | |
US10817288B2 (en) | Combined instruction for addition and checking of terminals | |
JP6645467B2 (ja) | マイクロコンピュータ |