JP7091853B2 - 電子制御装置 - Google Patents

電子制御装置 Download PDF

Info

Publication number
JP7091853B2
JP7091853B2 JP2018108925A JP2018108925A JP7091853B2 JP 7091853 B2 JP7091853 B2 JP 7091853B2 JP 2018108925 A JP2018108925 A JP 2018108925A JP 2018108925 A JP2018108925 A JP 2018108925A JP 7091853 B2 JP7091853 B2 JP 7091853B2
Authority
JP
Japan
Prior art keywords
instruction
core
memory
program
electronic control
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
JP2018108925A
Other languages
English (en)
Other versions
JP2019212124A (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 JP2018108925A priority Critical patent/JP7091853B2/ja
Priority to DE102019208129.0A priority patent/DE102019208129B4/de
Publication of JP2019212124A publication Critical patent/JP2019212124A/ja
Application granted granted Critical
Publication of JP7091853B2 publication Critical patent/JP7091853B2/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/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2215Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test error correction or detection circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/004Error avoidance

Description

本開示は、電子制御装置に関する。
従来、特許文献1に開示された車両用制御装置は、電気的に消去及び書き込みが可能な不揮発性メモリを備え、起動時に、不揮発性メモリから読み出した更新データの誤り検出を行い、誤りを検出した場合に係るエラー情報を保存してからリセットを実施する。そして、車両用制御装置は、リセットによる再起動時に、異常が生じている更新データがあることをエラー情報に基づいて判断すると、誤り検出に先立って、更新データを固定値に上書きする。
特開2014-35730号公報
車両用制御装置は、上記のようにすることで、異常が生じている更新データが存在する状態で誤り検出が実施され、リセットと誤り検出とが繰り返されることを抑制できる。つまり、車両用制御装置は、誤りを検出した際の例外処理を実行するための割り込みが繰り返されることを抑制できる。しかしながら、車両用制御装置は、不揮発性メモリにおける異常が生じている更新データを固定値に上書きする。このため、車両用制御装置は、不揮発性メモリに固定値を上書きするのに時間を要し処理性能が劣化するという問題がある。
本開示は、上記問題点に鑑みなされたものであり、処理性能の劣化を抑制しつつ、例外処理を実行するための割り込みが繰り返されることを防止できる電子制御装置を提供することを目的とする。
上記目的を達成するために本開示は、
プログラムの命令を実行することでリソースへアクセスする演算処理装置を含むマイコンを備えるものであり、
リソースへのアクセスエラーが発生した際に、エラー発生時の処理である例外処理を実行するための割り込みを発生させる割込発生部(S20)と、
割り込みが発生してから、中断されたプログラムの命令の実行に戻る前までに実行されるものであり、プログラムにおけるエラー発生時の命令よりも後に実行される命令の位置を、中断したプログラムの命令の実行に戻る際の戻り位置として設定する位置設定部(S211、S211a、S211b、S25)と、を備え
リソースとして、メモリ保護領域とメモリ非保護領域とを含むメモリを備えており、
割込発生部は、メモリ非保護領域におけるプログラムの実行に伴ってメモリ保護領域へアクセスがあった場合に、アクセスエラーが発生したとみなして、割り込みを発生させ、
位置設定部は、中断したプログラムの命令の実行に戻る際の戻り位置がメモリ非保護領域であるかメモリ保護領域であるかを判定し、戻り位置がメモリ保護領域と判定した場合、マイコンをリセットする必要があるとみなし、戻り位置がメモリ非保護領域と判定した場合、プログラムにおけるエラー発生時の命令よりも後に実行される命令の位置を、中断したプログラムの命令の実行に戻る際の戻り位置として設定することを特徴とする。
このように、本開示は、戻り位置として、プログラムにおけるエラー発生時の命令よりも後に実行される命令の位置を設定するため、例外処理を実行するための割り込みが繰り返されることを防止できる。つまり、本開示は、エラーが発生した際に不揮発性記憶部に固定値を上書きすることなく、例外処理を実行するための割り込みが繰り返されることを防止できる。このため、本開示は、上書きに時間を要することで処理性能が劣化することを抑制できる。
なお、特許請求の範囲、及びこの項に記載した括弧内の符号は、ひとつの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、本開示の技術的範囲を限定するものではない。
第1実施形態における電子制御装置の概略構成を示すブロック図である。 第1実施形態におけるメモリの概略構成を示すイメージである。 第1実施形態における電子制御装置のメモリアクセス命令の実行処理を示すフローチャートである。 第1実施形態における電子制御装置の例外割込処理を示すフローチャートである。 第1実施形態における電子制御装置の要因判定処理を示すフローチャートである。 第1実施形態における電子制御装置の例外処理を示すフローチャートである。 第1実施形態における電子制御装置のバックアップの結果確認処理を示すフローチャートである。 第1実施形態における電子制御装置のバックアップのチェック処理を示すフローチャートである。 第1実施形態における電子制御装置のデータコピー及び比較チェック処理を示すフローチャートである。 第1実施形態における電子制御装置の処理動作を示すタイミングチャートである。 第2実施形態における電子制御装置の要因判定処理を示すフローチャートである。 第2実施形態における電子制御装置の例外処理を示すフローチャートである。 第3実施形態における電子制御装置の要因判定処理を示すフローチャートである。 第3実施形態における電子制御装置の例外処理を示すフローチャートである。 第4実施形態における電子制御装置の例外割込処理を示すフローチャートである。
以下において、図面を参照しながら、本開示を実施するための複数の形態を説明する。各形態において、先行する形態で説明した事項に対応する部分には同一の参照符号を付して重複する説明を省略する場合がある。各形態において、構成の一部のみを説明している場合は、構成の他の部分については先行して説明した他の形態を参照し適用することができる。
(第1実施形態)
本実施形態では、一例として、車両に搭載されて、車載機器を制御する車載制御装置に適用した電子制御装置100を採用する。しかしながら、本開示は、これに限定されず、車載機器と異なる装置を制御する電子制御装置100であってもよい。
電子制御装置100は、少なくともひとつの演算処理装置(CPU)と、プログラムとデータとを記憶する記憶媒体としての少なくともひとつのメモリ装置(MMR)とを有する。電子制御装置100は、コンピュータによって読み取り可能な記憶媒体を備えるマイクロコンピュータによって提供される。記憶媒体は、コンピュータによって読み取り可能なプログラムを非一時的に格納している。記憶媒体は、半導体メモリまたは磁気ディスクなどによって提供されうる。電子制御装置100は、ひとつのコンピュータ、またはデータ通信装置によってリンクされた一組のコンピュータ資源によって提供されうる。プログラムは、電子制御装置100によって実行されることによって、電子制御装置100をこの明細書に記載される装置として機能させ、この明細書に記載される方法を実行するように電子制御装置100を機能させる。電子制御装置100は、多様な要素を提供する。それらの要素の少なくとも一部は、機能を実行するための手段と呼ぶことができ、別の観点では、それらの要素の少なくとも一部は、構成的なブロック、またはモジュールと呼ぶことができる。
具体的には、電子制御装置100は、マイコン10と入出力回路80を含んでおり、入出力回路80を介してクランク角センサ210及びインジェクタ220と電気的に接続されている。電子制御装置100は、クランク角センサ210からのセンサ信号を、入出力回路80を介して取得することができる。また、電子制御装置100は、車載機器としてのインジェクタ220に対する制御信号と、入出力回路80を介して出力することができる。よって、電子制御装置100は、クランク角センサ210からのセンサ信号などに基づいて、インジェクタ220などを制御する。
電子制御装置100は、図10に示すように、例えば、イグニッションスイッチ(IGSW)がオフからオンに切り替わると、動作電源が供給されて動作する。電子制御装置100の動作電源は、ECU電源と称することもできる。
なお、図10の例では、電子制御装置100は、タイミングt1、t4でIGSWがオフからオンに切り替わり、ECU電源が供給される。また、電子制御装置100は、タイミングt2でIGSWがオンからオフに切り替わると、所定時間経過したタイミングt3でECU電源の供給が停止される。電子制御装置100は、図10のAにおいて、バックアップ(BU)チェック結果確認処理を実行し、Bにおいて、BUチェック処理を実行する。詳述すると、電子制御装置100は、タイミングt4でのBUチェック結果確認処理では、タイミングt2~t3で実行されたBUチェック処理の結果を確認する。この点に関しては、後程詳しく説明する。
マイコン10は、演算処理装置としての第1コア21と第2コア22、メモリ装置としてのRAM30とROM40とを備えている。また、マイコン10は、入出力回路80とのインターフェイスであるI/O70を備えている。
さらに、本実施形態では、メモリ保護ユニット50とECC異常注入ユニット60を備えたマイコン10を採用している。しかしながら、本開示は、メモリ保護ユニット50とECC異常注入ユニット60とを備えていなくてもよい。なお、マイコン10は、第1コア21、第2コア22、RAM30、ROM40、メモリ保護ユニット50、ECC異常注入ユニット60、I/O70がバスを介して接続されている。
第1コア21と第2コア22は、例えば、それぞれ異なる機能を有しており、RAM30を一時的な記憶部として用いつつ、ROM40に記憶されたプログラムに従って演算処理を実行する。また、各コア21、22は、プログラムの命令を実行すると、プログラムカウンタとインクリメントする。そして、電子制御装置100は、例えば、各コア21、22のそれぞれが演算処理を実行して、I/O70にアクセスして、I/O70に接続されているインジェクタ220などを制御することでエンジン制御を行う。
このように、各コア21、22は、RAM30、ROM40、I/O70のそれぞれにアクセス可能に構成されている。また、マイコン10は、リソースとして、RAM30、ROM40、I/O70を備えていると言える。さらに、各コア21、22は、プログラムの命令を実行することでリソースへアクセスするとも言える。
なお、本開示は、これに限定されず、第1コア21と第2コア22が同じ機能を有していてもよい。また、本実施形態では、コアがひとつのマイコンや、コアが三つ以上のマイコンであっても採用できる。
RAM30は、各コア21、22の演算結果などを一時的に記憶する揮発性記憶部である。RAM30は、例えば、非保護領域30aと保護領域30bとを含んでいる。ROM40は、各コア21、22によって読み取り可能なプログラム及びデータを非一時的に格納する、フラッシュメモリやハードディスク等の非遷移的実体的記憶媒体である。ROM40は、不揮発性記憶部に相当する。ROM40は、DataFlashと言い換えることもできる。
なお、RAM30とROM40は、メモリ装置における異なる領域とみなすこともできる。つまり、RAM30は、メモリ装置における揮発領域とみなすことができる。一方、ROM40は、メモリ装置における不揮発領域とみなすことができる。
図2に、RAM30とROM40の構成の一例を示す。RAM30は、RAM30のアドレスを記憶するRadd、ROM40のアドレスを記憶するFadd、動作ステータスを記憶するStatus、未使用領域、Buffer領域が構成されている。Buffer領域は、BU用Buffer領域を含んでいる。なお、以下の説明では、Bufferをバッファと記載することもある。
ROM40は、BUチェック結果の記憶領域、BUチェック終了フラグの記憶領域、チェック結果の記憶領域、未使用領域、BU領域が構成されている。チェック結果の記憶領域は、アドレスと異常タイプとが紐付けされて記憶されている。なお、RAM30とROM40は、一例として、未使用領域が設けられていが、未使用領域が設けられていなくてもよい。
メモリ保護ユニット50は、RAM30におけるリードライト属性やリードオンリー属性などのアクセス属性の設定や、非保護領域30aと保護領域30bの設定などを行う。また、メモリ保護ユニット50は、各コア21、22からRAM30、ROM40へのアクセスに対する管理を行うことでメモリを保護する。例えば、メモリ保護ユニット50は、各コア21、22からRAM30へのアクセスに対して、設定したアクセス属性に応じたアクセス管理を行う。
ECC異常注入ユニット60は、RAM30、ROM40に対して、冗長bitによる誤り訂正と確認を行う。ECC異常注入ユニット60は、あえてECCエラーを起こし、ECCエラー判定できることを確認することで、ECCエラー判定の仕組みが正しく動作していることを確認する。ECC異常注入ユニット60は、RAM30、ROM40に誤り訂正符号を注入する注入部に相当する。ECCは、Error Correction Codeの略称である。誤り訂正符号を注入することを、ECC異常注入と言い換えることもできる。なお、電子制御装置100は、ECC異常注入ユニット60を備えていなくてもよい。
ここで、図3~図10を用いて、電子制御装置100の処理動作に関して説明する。以下に説明する処理は、主に、電子制御装置100における第1コア21と第2コア22の少なくとも一方が実行する。本実施形態では、一例として、第1コア21が実行する例を採用する。
まず、図7~図10を用いて、ROM40へのデータのバックアップに関連する処理を説明する。
第1コア21は、例えば、IGSWがオフからオンに切り替わると図7のフローチャートに示す処理を実行する。本実施形態のコア21、22は、図10のタイミングt1、t4で図7のフローチャートに示す処理を実行する。
ステップS50では、BUチェック終了フラグ=オンであるか否かを判定する。第1コア21は、ROM40のBUチェック終了フラグの記憶領域を確認してオンであるか否かを判定し、オンであると判定した場合はステップS51へ進み、オンであると判定しなかった場合はステップS53へ進む。
ステップS51では、BUチェック結果記憶領域に値があるか否かを判定する。第1コア21は、ROM40のBUチェック結果の記憶領域に値があるか否かを判定し、値があると判定した場合はステップS52へ進み、値があると判定しなかった場合はステップS53へ進む。
ステップS52では、第1コア21は、BUチェック結果の記憶領域に異常をセットする。また、ステップS53では、第1コア21は、BUチェック終了フラグをクリアする。
第1コア21は、例えば、IGSWがオンである場合に所定時間毎に図8のフローチャートに示す処理を実行する。
ステップS60では、IGSW=オフであるか否かを判定する。第1コア21は、BUチェック処理を実行するか否かを判定するために、IGSWがオフであるか否かを判定する。そして、第1コア21は、IGSWがオフであると判定した場合、BUチェック処理を実行するためにステップS61へ進む。一方、第1コア21は、IGSWがオフであると判定しなかった場合、BUチェック処理を実行するタイミングではないとみなして図8の処理を終了する。
ステップS61では、第1コア21は、データコピーと比較チェック処理を実行する。つまり、第1コア21は、BUチェック処理を実行する(タイミングt2~t3)。データコピーと比較チェック処理に関しては、後程、図9を用いて説明する。
ステップS62では、第1コア21は、ECU電源をオフする。つまり、第1コア21は、BUチェック処理が終了すると、ECU電源をオフする(タイミングt3)。
ここで、図9を用いて、BUチェック処理に関して説明する。
ステップS621では、コピー先頭アドレスをセットする。第1コア21は、Raddにバッファ領域の先頭アドレスをセットするとともに、FaddにBU領域の先頭アドレスをセットする。なお、ここでのバッファ領域は、BU用バッファ領域を示している。
ステップS622では、StatusにCOPYをセットする。第1コア21は、Statusに、動作ステータスとしてCOPYをセットする。
ステップS623では、データをコピーする(*Fadd←*Radd)。第1コア21は、ステップS621でセットされたアドレスに対応するデータをROM40にコピーする。つまり、第1コア21は、BU用バッファ領域のデータを、ROM40のBU領域にコピーする。このデータコピー時には、ROM40へのアクセス異常(ECC異常)により例外割込が発生する可能性がある。例外割込は、プログラムカウンタに従った通常の処理とは異なり、エラーが発生した際の処理を実行するための割り込みである。
ステップS624では、StatusにREADをセットする。第1コア21は、Statusに、動作ステータスとしてREADをセットする。
ステップS625では、データを比較する(*Fadd=*Radd?)。第1コア21は、RAM30とROM40における対応するアドレスのデータを比較する。第1コア21は、*Fadd=*Raddであると判定した場合はデータ異常がないとみなしてステップS626へ進み、*Fadd=*Raddであると判定しなかった場合はデータ異常の可能性があるとみなしてステップS629へ進む。このデータ比較時には、データコピー時と同様、ROM40へのアクセス異常(ECC異常)により例外割込が発生する可能性がある。
ステップS626では、Statusをクリアする。第1コア21は、FaddにFadd+1をセットし、RaddにRadd+1をセットする。
ステップS627では、Radd>バッファ領域の最後であるか否かを判定する。第1コア21は、全てのデータのコピーが完了したか否かを判定するために、Radd>バッファ領域の最後であるか否かを判定する。第1コア21は、Radd>バッファ領域の最後であると判定した場合はコピーが完了したとみなしてステップS628へ進み、Radd>バッファ領域の最後であると判定しなかった場合はコピーが完了していないとみなしてステップS622へ戻る。
ステップS628では、第1コア21は、BUチェック終了フラグをセットする。
ステップS625でNO判定した場合、第1コア21は、ステップS629を実行する。ステップS629では、第1コア21は、BUチェック結果の記憶領域にアドレスとしてFaddと、異常タイプとしてVERIFYを書き込む。
このように、第1コア21は、BU用バッファ領域の先頭から終わりまでをROM40にコピーした後、ROM40が正しく書けたか読み出して確認(比較)を実施する。
次に、図3~図6を用いて、メモリアクセス異常の判定に関連する処理を説明する。
第1コア21は、メモリへのアクセスを示す命令を実行する毎に、図3のフローチャートに示す処理を実行する。本実施形態では、一例として、BUチェック命令を実行する際に、図3のフローチャートに示す処理を実行する例を採用する。つまり、第1コア21は、BUチェック結果確認処理及びBUチェック処理を実行するたびに、図3のフローチャートに示す処理を実行する例を採用する。
ステップS10では、メモリアクセスが異常であるか否かを判定する。第1コア21、第2コア22は、読み出したメモリの誤り訂正符号が正常かを判定する。
この判定結果に基づいて、第1コア21は、ROM40に対するアクセスが異常であるか否かを判定する。そして、第1コア21は、アクセスが異常であると判定した場合はステップS20へ進み、アクセスが異常であると判定しなかった場合はステップS30へ進む。
ステップS20では、メモリアクセスの例外割込処理を実行する(割込発生部)。第1コア21は、RAM30、ROM40へのアクセスエラーが発生した際に、エラー発生時の処理である例外処理を実行するための割り込みを発生させる。よって、本実施形態では、ROM40へのアクセスエラーが発生した際に、エラー発生時の処理である例外処理を実行するための割り込みを発生させることになる。
例外割込処理は、プログラムカウンタに従った通常の処理とは異なり、アクセスエラーが発生した際に実行する処理と言える。また、例外割込処理は、アクセスエラーが発生した際に、プログラムの実行を一時的に中断して実行する処理とも言える。さらに、例外割込処理は、エラー発生時の処理である例外処理またはマイコン10のリセットを実行するための割込処理とも言える。なお、第1コア21は、例外割込処理において、例外処理の実行が完了すると、中断したプログラムに戻って、プログラムの命令を実行する。
本実施形態では、一例として、ROM40へのアクセスエラーが発生した際に割り込みを発生させる、すなわち、例外割込処理を実行する(割込発生部)。この例外割込処理に関しては、後程、図4を用いて説明する。
なお、第1コア21は、ステップS30でメモリアクセス命令を実行し、ステップS40でプログラムカウンタをインクリメントする。
第1コア21は、例外割込処理として、図4のフローチャートに示す処理を実行する。
ステップS21では、例外発生の要因を判定する処理を実行する。第1コア21は、意図した例外発生か、意図いない例外発生かを判定するために、例外発生の要因を判定する。言い換えると、第1コア21は、例外処理を実行するか、マイコン10のリセットを実行するかを判定するために例外発生の要因を判定する。また、第1コア21は、マイコン10のリセットが必要ないエラーによる割込発生か、マイコン10のリセットが必要なエラーによる割込発生かを判定する、とも言える。なお、例外発生の要因を判定する処理は、要因判定処理とも言える。
ここで、図5を用いて、要因判定処理に関して説明する。
ステップS211では、Status=COPYあるいはREADであるか否かを判定する(位置設定部)。第1コア21は、割り込みが発生したときのStatusを確認する。つまり、第1コア21は、エラーが発生したときのStatusを確認するとも言える。
そして、第1コア21は、StatusがCOPYあるいはREADであると判定した場合はステップS212に進み、COPYあるいはREADであると判定しなかった場合はステップS213に進む。
ステップS212では、意図した例外発生と判定する。割り込みが発生したときのStatusがCOPYあるいはREADである場合、予め設定されたアクセス属性を満たしているが、マイコン10をリセットするまでもない何らかの異常によって、ROM40へのアクセスに失敗したとみなすことができる。よって、第1コア21は、意図した例外発生と判定する。
ステップS213では、意図しない例外発生と判定する。割り込みが発生したときのStatusがCOPYあるいはREADでない場合、ROM40以外へのアクセスとみなすことができる。これは、予め設定されたアクセス属性を満たしていないため、マイコン10をリセットする必要があるとみなすことができる。よって、第1コア21は、意図しない例外発生と判定する。
なお、本実施形態では、要因判定処理として、上記のような例を採用した。しかしながら、本開示は、これに限定されず、他の要因判定処理であっても採用できる。つまり、要因判定処理は、アクセスエラーの状況などによって内容が異なる。
ここで、図4の説明に戻る。ステップS22では、意図した例外発生か否かを判定する。第1コア21は、ステップS21での判定結果で、意図した例外発生と判定した場合は、ステップS23へ進み、意図した例外発生と判定しなかった場合は、ステップS26へ進む。つまり、第1コア21は、意図しない例外発生と判定した場合、マイコン10のリセットが必要とみなして、ステップS26へ進む。そして、第1コア21は、ステップS26でマイコン10をリセットする。
一方、第1コア21は、意図した例外と判定した場合は、マイコン10をリセットする必要がないとみなして、ステップS23へ進む。
ステップS23では、例外処理を実行する。このとき、第1コア21は、図6に示す例外処理を実行する。第1コア21は、BUチェック結果の記憶領域にアドレスとしてRaddを書き込むとともに、異常タイプにStatusの値を書き込む(ステップS231、位置設定部)。
なお、本実施形態では、例外処理として、上記のような例を採用した。しかしながら、本開示は、これに限定されず、他の例外処理であっても採用できる。つまり、例外処理は、アクセスエラーの状況などによって内容が異なる。
ステップS24では、プログラムを解析する(解析部)。第1コア21は、戻り位置を設定するために、プログラムを解析してアクセスエラーが発生した際の命令の命令長を読み出す。第1コア21は、例えば、アクセスエラーが発生した際の命令の命令長が4バイト命令か2バイト命令かを判断する。これは、中断したプログラムに戻る際に、エラーが発生した際の位置よりも進んだ位置に戻るための戻り位置を設定するために行う。例えば、アクセスエラーが発生した際の命令の命令長が4バイトであった場合、アクセスエラーが発生した際の命令から4バイト進めた位置を戻り位置として設定するためである。このプログラムの解析は、ステップS23の例外処理中に行なってもよい。
なお、戻り位置は、戻り番地、戻りアドレスと言い換えることができる。また、位置、番地、アドレスのそれぞれは、プログラムの位置、プログラムの番地、プログラムのアドレスを示している。
本開示は、これに限定されない。プログラム中の各命令長が同一の場合は、プログラムを解析することなく、エラーが発生した際の位置よりも進んだ位置に戻るための戻り位置を設定することができる。
ステップS25では、プログラムカウンタをインクリメントする(位置設定部)。第1コア21は、ステップS24での解析で得た戻り位置にすすめるために、プログラムカウンタをインクリメントする。
このように、第1コア21は、エラー発生時の命令よりも後に実行される命令の位置を、中断したプログラムの命令の実行に戻る際の戻り位置として設定する。また、本実施形態では、エラーが発生した際の位置よりも命令長分の処理を進めた命令の位置を、戻り位置として設定する。なお、第1コア21は、割り込みが発生してから、中断されたプログラムの命令の実行に戻る前までに、ステップS24、S25を実行する。
これによって、第1コア21は、ステップS623の実行時に例外割込が発生した場合、例外処理を実行して中断したプログラムの実行に戻った際に、S624から実行を再開できる。また、第1コア21は、ステップS625の実行時に例外割込が発生した場合、例外処理を実行して中断したプログラムの実行に戻った際に、S626から実行を再開できる。
ここまでに説明したように、電子制御装置100は、戻り位置として、プログラムにおけるエラー発生時の命令よりも後に実行される命令の位置を設定するため、例外処理を実行するための割り込みが繰り返されることを防止できる。つまり、電子制御装置100は、エラーが発生した際にROM40に固定値を上書きすることなく、例外処理を実行するための割り込みが繰り返されることを防止できる。このため、電子制御装置100は、上書きに時間を要することで処理性能が劣化することを抑制できる。
さらに、上記のように、エラーが発生した際にROM40に固定値で上書きされるデータは、本来、継続して使用できるデータである可能性もある。電子制御装置100は、エラーが発生した際にROM40に固定値を上書きする必要がないため、継続して使用できるデータが使用できなくなることを抑制できる。
以上、本開示の好ましい実施形態について説明した。しかしながら、本開示は、上記実施形態に何ら制限されることはなく、本開示の趣旨を逸脱しない範囲において、種々の変形が可能である。以下に、本開示のその他の形態として、第2~第4実施形態に関して説明する。上記実施形態及び第2~第4実施形態は、それぞれ単独で実施することも可能であるが、適宜組み合わせて実施することも可能である。本開示は、実施形態において示された組み合わせに限定されることなく、種々の組み合わせによって実施可能である。
(第2実施形態)
図11、図12を用いて、第2実施形態の電子制御装置100に関して説明する。本実施形態では、上記実施形態と異なる点を中心に説明する。本実施形態の電子制御装置100は、主に、例外発生の要因を判定する処理と例外処理が上記実施形態の電子制御装置100と異なる。
なお、本実施形態の電子制御装置100は、上記実施形態と同様の構成をなしている。よって、本実施形態では、上記実施形態と同じ符号を用いる。
電子制御装置100は、高い安全度が設定されたASIL領域のプログラムと、低い安全度が設定されたQM領域のプログラムとをROM40に有している。ASIL領域は、機能安全要求により、保護された領域であり、QM領域のプログラムを実行した処理(制御)時にアクセスされないようになっている。
そして、電子制御装置100は、ASIL領域にQM領域に設定された制御からメモリアクセスした際に、マイコン10の設定によりメモリアクセスエラーによる例外割り込みが発生する仕組みを備えている。つまり、電子制御装置100は、QM領域におけるプログラムの実行に伴ってASIL領域へアクセスがあった場合に、アクセスエラーが発生したとみなして、例外割り込みを発生させる(割込発生部)。このため、第1コア21は、QM領域におけるプログラムの実行に伴ってASIL領域へアクセスがあった場合に、アクセスエラーが発生したとみなして、ステップS10でYES判定することになる。これは、RAM20やレジスタの値が化けたことなどによって発生する可能性がある。
なお、ASILは、Automotive Safety Integrity Levelの略称である。ASIL領域は、メモリ保護領域に相当する。一方、QMは、Quality Managementの略称である。QM領域は、メモリ非保護領域に相当する。よって、ROM40は、メモリ保護領域とメモリ非保護領域を含むメモリに相当する。
第1コア21は、要因判定処理として、図11のフローチャートに示す処理を実行する。
ステップS211aでは、戻り先アドレス=QM領域であるか否かを判定する(位置設定部)。第1コア21は、戻り先アドレス=QM領域と判定した場合はアクセス元がQM領域とみなしてステップS212へ進み、戻り先アドレス=QM領域と判定しなかった場合はアクセス元がQM領域でないとみなしてステップS213へ進む。つまり、第1コア21は、中断したプログラムに戻る際のアドレスがQM領域におけるアドレスの場合にステップS212へ進み、中断したプログラムに戻る際のアドレスがQM領域におけるアドレスでない場合にステップS213へ進む。
ステップS212では、意図した例外発生と判定する。アクセス元がQM領域の場合、QM領域のプログラムを実行した制御時にASIL領域へのアクセスが、RAM20やレジスタの値が化けなどマイコン10をリセットするまでもない異常によってなされたとみなすことができる。よって、第1コア21は、意図した例外発生と判定する。
ステップS213では、意図しない例外発生と判定する。アクセス元がQM領域でない場合、QM領域におけるプログラムの実行に伴ってASIL領域へのアクセスが、RAM20やレジスタの値が化けなどによらないため、マイコン10をリセットする必要があるとみなすことができる。よって、第1コア21は、意図しない例外発生と判定する。このようにすることで、電子制御装置100は、信頼できないソフトウェアによる誤ったメモリ書き換えを防ぐことができる。
また、第1コア21は、例外処理として、図12のフローチャートに示す処理を実行する。ステップS231aでは、第1コア21は、ASIL領域のRAM値を保護するとともに、異常コード等を保存する。つまり、第1コア21は、ASIL領域の値を保護するとともに、ASIL領域へのアクセスエラーが発生したことを示す異常コードを少なくとも保存する。これによって、電子制御装置100は、異常発生時に解析が容易になる。
本実施形態の電子制御装置100は、上記実施形態と同様の効果を奏することができる。
(第3実施形態)
図13、図14を用いて、第3実施形態の電子制御装置100に関して説明する。本実施形態では、上記実施形態と異なる点を中心に説明する。本実施形態の電子制御装置100は、主に、例外発生の要因を判定する処理と例外処理が上記実施形態の電子制御装置100と異なる。
なお、本実施形態の電子制御装置100は、上記実施形態と同様の構成をなしている。よって、本実施形態では、上記実施形態と同じ符号を用いる。
電子制御装置100は、上記のように、ECC異常注入ユニット60を備えている。ECC異常注入ユニット60は、RAM30、ROM40に対して、あえてECCエラーを起こす、すなわち、誤り訂正符号に異常を注入する。そして、第1コア21は、メモリの誤り訂正符号が正常かを判定し、異常と判定した場合、RAM30、ROM40へのアクセスエラーが発生するため割り込みを発生させる(割込発生部)。つまり、第1コア21は、誤り訂正符号が異常なメモリにアクセスすることで、メモリへのアクセスエラーが発生するとみなして、ステップS10でYES判定することになる。
第1コア21は、要因判定処理として、図13のフローチャートに示す処理を実行する。
ステップS211bでは、ECC診断状態=診断中であるか否かを判定する(位置設定部)。つまり、第1コア21は、誤り訂正符号が注入された動作診断中であるか否かを判定する。そして、第1コア21は、ECC診断状態=診断中であると判定した場合はステップS212へ進み、ECC診断状態=診断中であると判定しなかった場合はステップS213へ進む。
ステップS212では、意図した例外発生と判定する。ECC診断中の場合、誤り訂正符号の異常注入によってアクセスエラーが発生したとみなすことができる。よって、第1コア21は、意図した例外発生と判定する。
ステップS213では、意図しない例外発生と判定する。ECC診断中でない場合、誤り訂正符号の異常注入によるアクセスエラーは発生しないため、何らかの異常でアクセスエラーが発生しており、マイコン10をリセットする必要があるとみなすことができる。よって、第1コア21は、意図しない例外発生と判定する。
また、第1コア21は、例外処理として、図14のフローチャートに示す処理を実行する。
ステップS231bでは、第1コア21は、ECC異常注入を解除する。ステップS232bでは、異常発生アドレスが一致するか否かを判定する。そして、第1コア21は、異常発生アドレスが一致すると判定した場合はステップS233bに進み、異常発生アドレスが一致すると判定しなかった場合はステップS235bに進む。
ステップS233bでは、第1コア21は、診断結果=正常、ECC診断状態=終了とする。また、ステップS234bでは、第1コア21は、ECC診断結果をOKとする。一方、ステップS235bでは、第1コア21は、ECC診断結果をNGとする。
本実施形態の電子制御装置100は、上記実施形態と同様の効果を奏することができる。さらに、本実施形態の電子装置100は、ECC機能が正常に働いているか検証することができ、ECC機能の信頼性を向上させることができる。
(第4実施形態)
図15を用いて、第4実施形態の電子制御装置100に関して説明する。本実施形態では、上記実施形態と異なる点を中心に説明する。本実施形態の電子制御装置100は、例外割込処理の一部が上記実施形態の電子制御装置100と異なる。
なお、図15のフローチャートでは、図4のフローチャートと同じ処理に関して、同じステップ番号を用いている。このステップ番号の処理は、図4の説明を適用できる。また、本実施形態の電子制御装置100は、上記実施形態と同様の構成をなしている。よって、本実施形態では、上記実施形態と同じ符号を用いる。
第1コア21は、ステップS22でYES判定するとステップS70へ進む。ステップS70では、第1コア21は、例外処理カウンタをインクリメントする(回数判定部)。つまり、第1コア21は、意図した例外発生の回数をカウントする。ステップS71では、例外処理カウント値>閾値であるか否かを判定する(回数判定部)。第1コア21は、例外処理カウント>閾値であると判定した場合はステップS26へ進み、例外処理カウント値>閾値であると判定しなかった場合はステップS23へ進む。このように、第1コア21は、例外処理カウント値が閾値を超えたと判定した場合、例外処理を行なうことなく、マイコン10をリセットする(リセット部)。なお、第1コア21は、例外処理カウント≧閾値と判定した場合にステップS26に進んでもよい。
本実施形態の電子制御装置100は、上記実施形態と同様の効果を奏することができる。さらに、電子制御装置100は、意図した例外発生と判定した場合であっても、その回数が数回(閾値)行われると、マイコン10をリセットする。このため、電子制御装置100は、意図した例外発生が継続する場合に、マイコン10をリセットすることができる。
なお、上記実施形態では、リソースとしてメモリを採用した。しかしながら、本開示は、これに限定されず、リソースとしてI/O70を採用することもできる。この場合であっても、上記と同様の効果を奏することができる。
10…マイコン、21…第1コア、22…第2コア、30…RAM、30a…非保護領域、30b…保護領域、40…ROM、50…メモリ保護ユニット、60…ECC異常注入ユニット、70…I/O、80…入出力回路、100…電子制御装置210…クランク角センサ、220…インジェクタ

Claims (4)

  1. プログラムの命令を実行することでリソースへアクセスする演算処理装置を含むマイコンを備えるものであり、
    前記リソースへのアクセスエラーが発生した際に、エラー発生時の処理である例外処理を実行するための割り込みを発生させる割込発生部(S20)と、
    前記割り込みが発生してから、中断された前記プログラムの前記命令の実行に戻る前までに実行されるものであり、前記プログラムにおける前記エラー発生時の前記命令よりも後に実行される前記命令の位置を、中断した前記プログラムの前記命令の実行に戻る際の戻り位置として設定する位置設定部(S211、S211a、S211b、S25)と、を備え
    前記リソースとして、メモリ保護領域とメモリ非保護領域とを含むメモリを備えており、
    前記割込発生部は、前記メモリ非保護領域における前記プログラムの実行に伴って前記メモリ保護領域へアクセスがあった場合に、前記アクセスエラーが発生したとみなして、前記割り込みを発生させ、
    前記位置設定部は、中断した前記プログラムの前記命令の実行に戻る際の前記戻り位置が前記メモリ非保護領域であるか前記メモリ保護領域であるかを判定し、前記戻り位置が前記メモリ保護領域と判定した場合、前記マイコンをリセットする必要があるとみなし、前記戻り位置が前記メモリ非保護領域と判定した場合、前記プログラムにおける前記エラー発生時の前記命令よりも後に実行される前記命令の前記位置を、中断した前記プログラムの前記命令の実行に戻る際の前記戻り位置として設定する電子制御装置。
  2. 前記戻り位置を設定するために、前記プログラムを解析して前記アクセスエラーが発生した際の前記命令の命令長を読み出す解析部(S24)を、さらに備え、
    前記位置設定部は、前記アクセスエラーが発生した際の前記位置よりも前記命令長分の処理を進めた前記命令の前記位置を、前記戻り位置として設定する請求項1に記載の電子制御装置。
  3. 前記アクセスエラーが発生したとみなして前記割り込みを発生させた場合、前記例外処理では、前記メモリ保護領域の値を保護するとともに、前記メモリ保護領域への前記アクセスエラーが発生したことを示す異常コードを保存する請求項に記載の電子制御装置。
  4. 前記プログラムの前記命令を実行する処理部を含むマイコンを備えており、
    前記マイコンは、
    前記例外処理が必要な前記アクセスエラーの発生回数をカウントし、カウント値が閾値を超えたか否かを判定する回数判定部(S70、S71)と、
    前記カウント値が前記閾値を超えたと判定された場合、前記例外処理を行なうことなく、前記マイコンをリセットするリセット部(S26)と、をさらに備えている請求項1~のいずれか1項に記載の電子制御装置。
JP2018108925A 2018-06-06 2018-06-06 電子制御装置 Active JP7091853B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018108925A JP7091853B2 (ja) 2018-06-06 2018-06-06 電子制御装置
DE102019208129.0A DE102019208129B4 (de) 2018-06-06 2019-06-04 Elektronische Steuereinheit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018108925A JP7091853B2 (ja) 2018-06-06 2018-06-06 電子制御装置

Publications (2)

Publication Number Publication Date
JP2019212124A JP2019212124A (ja) 2019-12-12
JP7091853B2 true JP7091853B2 (ja) 2022-06-28

Family

ID=68651998

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018108925A Active JP7091853B2 (ja) 2018-06-06 2018-06-06 電子制御装置

Country Status (2)

Country Link
JP (1) JP7091853B2 (ja)
DE (1) DE102019208129B4 (ja)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012086631A (ja) 2010-10-18 2012-05-10 Denso Corp 車載電子制御装置
JP2015060249A (ja) 2013-09-17 2015-03-30 株式会社東芝 情報処理装置及びプログラム実行方法
JP2015185123A (ja) 2014-03-26 2015-10-22 株式会社デンソー 電子制御装置
JP2016031659A (ja) 2014-07-29 2016-03-07 株式会社デンソー 電子制御装置
JP2016110503A (ja) 2014-12-09 2016-06-20 株式会社デンソー マイクロコントローラ
JP2017208058A (ja) 2016-05-16 2017-11-24 株式会社デンソー 情報処理装置
JP2018041402A (ja) 2016-09-09 2018-03-15 株式会社デンソー 電子制御装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014035730A (ja) 2012-08-10 2014-02-24 Hitachi Automotive Systems Ltd 車両用制御装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012086631A (ja) 2010-10-18 2012-05-10 Denso Corp 車載電子制御装置
JP2015060249A (ja) 2013-09-17 2015-03-30 株式会社東芝 情報処理装置及びプログラム実行方法
JP2015185123A (ja) 2014-03-26 2015-10-22 株式会社デンソー 電子制御装置
JP2016031659A (ja) 2014-07-29 2016-03-07 株式会社デンソー 電子制御装置
JP2016110503A (ja) 2014-12-09 2016-06-20 株式会社デンソー マイクロコントローラ
JP2017208058A (ja) 2016-05-16 2017-11-24 株式会社デンソー 情報処理装置
JP2018041402A (ja) 2016-09-09 2018-03-15 株式会社デンソー 電子制御装置

Also Published As

Publication number Publication date
DE102019208129A1 (de) 2019-12-12
DE102019208129B4 (de) 2021-02-04
JP2019212124A (ja) 2019-12-12

Similar Documents

Publication Publication Date Title
JP5705258B2 (ja) マイクロコンピュータ及びその動作方法
CN108351840B (zh) 车辆控制装置
JP2009157542A (ja) 情報処理装置及びそのスタックポインタ更新方法
JP2008009721A (ja) 評価システム及びその評価方法
JP2005071303A (ja) プログラム起動装置
US8069309B1 (en) Servicing memory in response to system failure
JP3830867B2 (ja) シングルチップマイクロコンピュータおよびそのブート領域切り替え方法
JP7091853B2 (ja) 電子制御装置
JP6654230B2 (ja) 車両制御装置
US9778981B2 (en) Microcontroller
JP2008003940A (ja) 保護制御装置、保護制御方法及び保護制御プログラム
US20130055017A1 (en) Device and method for restoring information in a main storage unit
JP7024582B2 (ja) 車載制御装置
CN109358903B (zh) 数据访问设备和访问错误通知方法
JP5978873B2 (ja) 電子制御装置
JP2000132461A (ja) 情報制御装置
JP2008140124A (ja) データ処理装置
JP2003216449A (ja) パッチ処理システム
JP2010176201A (ja) フラッシュメモリのデータ消失防止装置及びフラッシュメモリのデータ消失防止方法
JP2009223435A (ja) データ記憶方法及び装置、並びにプログラム
CN111061591A (zh) 基于存储器完整性检查控制器实现数据完整性检查的系统和方法
JP7074291B2 (ja) 情報処理装置、情報処理方法及びプログラム
JP6914430B2 (ja) メモリ診断装置及びメモリ診断方法
JP2011150383A (ja) ファームウェア書き込み方法
JPH08137748A (ja) コピーバックキャッシュを有するコンピュータ及びコピーバックキャッシュ制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210218

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220111

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220225

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220530

R151 Written notification of patent or utility model registration

Ref document number: 7091853

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151