(57)【要約】【課題】マルチコアマイコンを搭載する自動車用電子制御装置において、ソフトウェア書き換えを安全に行う。【解決手段】コードフラッシュ上のソフトウェア書き換えを行う際、ソフトウェア書き換えを行うコアからの指令により、コードフラッシュ上で実行されているソフトウェア書き換えを行うコア以外のコアを、各コア用のＲＡＭ上、または、コア共通ＲＡＭ上のプログラムへ移行させる。【選択図】  図２
2020004448.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも２つのコアを有するマイコンを搭載する自動車用電子制御装置であって、
あるコアが故障したと判定された際に、故障コア以外のコアからの指令により、
前記故障コアを不揮発性メモリ上のプログラムで動作しているプログラムから、故障コア専用の揮発性メモリ上にあるプログラムへ移行することを特徴とする自動車用電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチコアマイコンを搭載する自動車用電子制御装置におけるソフトウェア
書き換えに関する。
【背景技術】
【０００２】
ＥＣＵ（Electrical Control Unit）などの自動車電子制御装置は、マイコンにより制
御されており、そのマイコンには電気的にプログラムやデータが消去および書き込みが可
能な不揮発性メモリであるコードフラッシュ、データフラッシュと、揮発性メモリである
ＲＡＭ（Random Access Memory）を搭載し、コードフラッシュに記憶されている制御プロ
グラムによって車両装置（例えば、エンジンの噴射・点火）を制御する。
【０００３】
近年、自動車制御の高度化・多機能化により、複数のコアを有するマイコンがＥＣＵに
搭載されてきており、各コアは、自身のコアに割り当てられたソフトウェア機能のタスク
を並行して実行する。
【０００４】
一方で、ＥＣＵのソフトウェアに不具合が発生した場合に修正ソフトウェアにアップデ
ートするために、あるいは、より効率的な制御ソフトウェアに入れ替えるために、ＥＣＵ
はソフトウェア書き換え機能を有することがある。通常のソフトウェア書き換えは、有線
あるいは無線により接続された外部の書き込みツールと通信を行い、外部の書き込みツー
ルからＥＣＵに更新ソフトウェアを転送しながら、ＥＣＵがマイコンのコードフラッシュ
に書き込みを行う。ソフトウェア書き換えを行うにあたり、コードフラッシュの書き換え
前にコードフラッシュの消去が必要となる。（特許文献１）
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１５−１７２９７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、マルチコアマイコンが採用されているＥＣＵでソフトウェア書き換えを実施
する場合、コアが消去しようとしている消去ブロックに属するコードフラッシュで動作す
ると、不当命令実行や資源アクセス違反などの例外・割り込みが発生してしまう。
【０００７】
マルチコアマイコンにおいて、ソフトウェア書き換え機能を担当するコアが、その他の
異なる機能を実行しているコアがコードフラッシュのどの位置に存在しているかを知るこ
とは困難であり、また、その他の異なる機能を実行しているコアのコードフラッシュ上の
位置を知ることが可能な場合でも、その全てのコアが消去しようとしている消去ブロック
とは別位置のコードフラッシュ上で動作している状況を作り出す必要があったり、同期を
とり時間待ちが発生してしまったりするなど、その管理が難しいという問題があった。
【０００８】
本発明では上記問題に鑑みなされたものであり、マルチコアマイコンにおけるソフトウ
ェア書き換え実施時に、全てのコアが消去しようとしている消去ブロック上で動作するこ
とが無い状況を容易に構成する自動車用電子制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明では、自動車用電子制御装置のソフトウェア書き換えにおいて、ソフトウェア書
き換えを実施するコアの指令のもとに、ソフトウェア書き換えを実施するコア以外のコア
をＲＡＭ上にあるプログラムに移行させ、消去しようとしている消去ブロックで動作する
ことが無い状況にする。
【００１０】
前記ソフトウェア書き換えを実施するコアの指令は、コア間の割り込み機能を利用し執
り行い、前記ＲＡＭ上にあるプログラムは、ソフトウェア書き換えを実施するコアの指令
のもとに復帰するように構成した。
【発明の効果】
【００１１】
本発明によると、マルチコアマイコンにおけるソフトウェア書き換え、不当命令実行や
資源アクセス違反などの例外・割り込みを発生させることなく実行することができる。
【図面の簡単な説明】
【００１２】
【図１】マルチコアマイコンの構成を示す図である。
【図２】コードフラッシュ内の消去ブロックの構成とコア１とコア２のプログラムカウンタの例を示す図である。
【図３】コードフラッシュ上のプログラムで動作していたコア２が、コア２用ＲＡＭ上のプログラムに移行する例を説明した図である。
【図４】コードフラッシュ上のプログラムで動作していたコア２とコア３が、コア共通ＲＡＭ上のプログラムに移行する例を説明した図である。
【図５】コードフラッシュ上のプログラムとＲＡＭ上のプログラムの例と、退避プログラムの動作を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下、添付された図面を参照し、本発明を実施するための実施形態について詳述する。
【００１４】
［第１実施例］
図１はｎ個のコアを持つマルチコアマイコンの構成を示す図である。マルチコアマイコ
ンは、プログラムの演算処理を実施するコア１〜ｎと、各コア専用でアクセスすることの
できるコア１〜ｎ用の揮発性ＲＡＭ１１〜１ｎと、コア共通でアクセスすることができる
不揮発性のメモリであるコードフラッシュ１００と、コア共通でアクセスすることができ
る揮発性のＲＡＭであるコア共通ＲＡＭ２００から構成される。各コアから相互に割り込
みを発生させることができるコア間割り込み機能を備えている。
【００１５】
ソフトウェアの実行プログラムはコードフラッシュに配置され、各コアは、コードフラ
ッシュ内のプログラムをそれぞれ実行する。
【００１６】
図２はコードフラッシュ内の消去ブロックの構成とコア１とコア２のプログラムカウン
タの例を示す図である。図２に示すとおり、コードフラッシュは複数のｍ個の消去ブロッ
ク１０１〜１０ｍから構成される。コードフラッシュのデータ書込みを行う際には、事前
に消去状態である必要があり、コードフラッシュの消去は消去ブロック単位で行われる。
【００１７】
ソフトウェアの書き換えを行う際には、ソフトウェアの書き換えのセキュリティアクセ
ス許可されたあとに、ソフトウェアの書き換え対象領域に対応する消去ブロックを消去し
、外部より接続される書込みツールよりデータを書き込んでいく。
【００１８】
ここで、コードフラッシュ内の消去ブロックを消去する際に、消去しようとしている消
去ブロックで動作するコアが存在すると、消去された状態のコードフラッシュをプログラ
ムと誤って実行してしまい、不当命令実行や資源アクセス違反などの例外・割り込みが発
生し、例外・割り込み処理が正しく行われないと、マイコンがリセット状態となってしま
う。
【００１９】
言い換えると、ソフトウェア書き換えを途中で失敗することなく、安全に行うためには
、消去ブロックを指し示すようなプログラムカウンタが無い状態にすることが好ましい。
【００２０】
図２には、コアを２つ搭載するマイコンのコードフラッシュ１００と、コードフラッシ
ュ上のコア１のプログラムが動作している先を示すコア１用プログラムカウンタ２０１と
、コードフラッシュ上のコア２のプログラムが動作している先を示すコア２用プログラム
カウンタ２０２の例も示している。
【００２１】
コア２用プログラムカウンタ２０２がコードフラッシュ１００の消去ブロック１０４上
で動作している際に、消去ブロック１０４の消去が実行された場合、コア２が実行するプ
ログラムが不当命令実行や例外・割り込みを発生させてしまう。
【００２２】
ＥＣＵのソフトウェア書き換えの手段には、複数のコードフラッシュを備えるマイコン
を採用し、複数あるコアのうちのいくつがソフトウェア書き換え機能として動作し、それ
以外のコアは通常動作しているプログラムを実行する方式が存在する。ソフトウェア書き
換えが完了後は、次回ＥＣＵの起動時に、新しく書込みが行われたコードフラッシュが選
択されプログラムが実行される。この方式は主に無線によるＥＣＵのソフトウェア書き換
えに利用される。
【００２３】
ここでは、ソフトウェア書き換えを実行する際に、通常実行されているモードから、ソ
フトウェア書き換えの為の専用モードへ移行し、通常動作しているプログラムは実行され
ていない方式を前提としている。この方式は、ソフトウェア書き換えの頻度が少ないシス
テムを対象にしたＥＣＵのソフトウェア書き換えに利用される。
【００２４】
図３は２つのコアを有するマイコンにおいて、ソフトウェア書き換えを行うコア１の指
令により、コードフラッシュ上のプログラムで動作していたコア２が、コア２用ＲＡＭ上
のプログラムに移行する第１実施例の一例を示した図である。
【００２５】
まず、ソフトウェア書き換えを実行するコアからのコア間割り込みが発生した場合に、
専用の処理が実行できるように、マイコンの起動時に各コアで個別に、割込みの許可設定
を行う。前記専用処理は、コア２用ＲＡＭの退避プログラム領域３１２に移行するための
処理を実施する。
【００２６】
具体的には、コードフラッシュ１００で実行中のコア２用のプログラムカウンタ２０２
を、コア２用ＲＡＭの退避プログラム領域３１２にある退避時に実行するプログラムが実
行できるＲＡＭ上のプログラムカウンタ３０２にアドレスを変更する。
【００２７】
コア２用ＲＡＭの退避プログラム領域３１２に対し、ソフトウェア書き換えを実行する
コア以外のコアであるコア２により、予め退避時に実行するプログラムを展開する。この
コア２用ＲＡＭの退避プログラム領域３１２に退避時実行プログラムを展開するタイミン
グは、実際にソフトウェア書き換えが許可されてから実行してもよいし、マイコンの起動
時に各コアで個別に行ってもよい。
【００２８】
かかる移行処理の第１実施例によれば、ソフトウェア書き換えを実行するコア以外のコ
アは、ソフトウェア書き換えを実行するコアからのコア間の割り込みが発生した場合に、
各コア専用のＲＡＭに展開されたプログラムに移行することできるように、コア間割り込
みの設定と、コア専用ＲＡＭへのプログラムの展開を行う。
【００２９】
従って、ＥＣＵのソフトウェア書き換えを行う際に、消去される消去ブロックのコード
フラッシュに実行されるコアが存在しない状況を作り出すことができ、ソフトウェア書き
換え時の不当命令実行や資源アクセス違反などの例外・割り込みが発生することがなくな
る。
【００３０】
要するに、ＥＣＵのソフトウェア書き換えの際に、マイコンのリセットがかかることが
なく安全にソフトウェア書き換えを実施することができる。
【００３１】
［第２実施例］
図４は３つのコアを有するマイコンにおいて、ソフトウェア書き換えを行うコア1の指
令により、コードフラッシュ上のプログラムで動作していたコア２とコア３が、コア共通
ＲＡＭ２００上のプログラムに移行する第２実施例の一例を示した図である。
【００３２】
まず、ソフトウェア書き換えを実行するコアからのコア間割り込みが発生した場合に、
専用の処理が実行できるように、マイコンの起動時に各コアで個別に、割込みの許可設定
を行う。前記専用処理は、コア共用ＲＡＭ２００上の退避プログラム領域４００に移行す
るための処理を実施する。
【００３３】
具体的には、コードフラッシュ１００で実行中のコア２用のプログラムカウンタ２０２
とコア３用のプログラムカウンタ２０３を、コア共用ＲＡＭ２００の退避プログラム領域
４００にある退避時に実行するプログラムが実行できるＲＡＭ上のプログラムカウンタ３
０２、３０３にアドレスを変更する。
【００３４】
コア共用ＲＡＭ２００の退避プログラム領域４００に対し、ソフトウェア書き換えを実
行するコア１により、予め退避時に実行するプログラムを展開しておく。このコア共用Ｒ
ＡＭ２００の退避プログラム領域４００に退避時実行プログラムを展開するタイミングは
、実際にソフトウェア書き換えが許可されてから実行してもよいし、マイコンの起動時に
行ってもよい。
【００３５】
かかる移行処理の第２実施例によれば、ソフトウェア書き換えを実行するコア以外のコ
アは、ソフトウェア書き換えを実行するコアからのコア間割り込みが発生した場合に、コ
ア共通ＲＡＭ２００に展開されたプログラムに移行することができるように、コア間割り
込みを設定し、ソフトウェア書き換えを実行するコアはコア共通ＲＡＭ２００へのプログ
ラム展開を行う。
【００３６】
従って、第１の実施形態と同様に、ＥＣＵのソフトウェア書き換えを行う際に、消去さ
れる消去ブロックのコードフラッシュに実行されるコアが存在しない状況を作り出すこと
ができ、ソフトウェア書き換え時の不当命令実行や資源アクセス違反などの例外・割り込
みが発生することがなくなる。
【００３７】
第１の実施形態では、各コアで実行される退避プログラムの動作を異なるものにし、動
作を変えることが可能である。一方で、第２の実施形態は、第１の実施形態と比べて、各
コアが同一の退避プログラムを利用することができ、ソフトウェア書き換えを実施するコ
アが退避する際に実行させたいプログラムを選ぶことができたり、共通化されることによ
るＲＡＭ使用量の削減ができたりする効果が得られる。
【００３８】
［第３実施例］
図５は退避プログラム中にコードフラッシュのアクセスに影響しないような例外・割り
込みを利用する第３実施例の一例を示した図である。本例では、コードフラッシュ上のプ
ログラムとＲＡＭ上のプログラムの例と、退避プログラムの動作を示すフローチャートを
示している。
【００３９】
コードフラッシュには、通常時に実行されるプログラム５０２と、通常時に実行される
プログラム５０２が動作中に例外・割り込みが発生した際に実行する例外・割り込み処理
情報を提供している通常プログラム５０２用のベクターテーブル５０１が配置されている
。
【００４０】
ＲＡＭには退避プログラム５０４と、退避時に実行される退避プログラム５０４が動作
中に例外・割り込みが発生した際に実行する例外・割り込み処理情報を提供している退避
プログラム５０３用のベクターテーブル５０３が配置されるように、第１の実施形態と第
２の実施形態で挙げられた方法でＲＡＭに展開する。
【００４１】
ソフトウェア書き換えを行うコアからの指令により、ソフトウェア書き換えを行うコア
以外のコアであるコア２用のプログラムカウンタ２０２を、退避時に実行するプログラム
が実行できるＲＡＭ上のプログラムカウンタ３０２に移行すると、退避処理の前処理Ｓ５
０１が実行される。
【００４２】
前処理Ｓ５０１では、必要に応じて退避プログラムが実行される間の状態を設定する処
理であり、例えば、ＥＣＵのソフトウェア書き換え中にコードフラッシュやＲＡＭへのア
クセスが発生しないようにＤＭＡＣ（Direct Memory Access Controller）の退避プログ
ラムで使用しない周辺機器の停止を行うこともできる。
【００４３】
退避終了条件判定Ｓ５０３にて退避終了条件が成立しない間は、退避中処理Ｓ５０２を
繰り返し実施する。退避終了条件が成立した場合、復帰処理Ｓ５０４を実行し、退避プロ
グラム５０４の実行を完了する。
【００４４】
退避終了条件判定Ｓ５０３は、コア共用ＲＡＭ２００や、コア共用のレジスタ（図示せ
ず）を介して復帰情報をポーリング監視したり、復帰処理を実施するプログラムを退避プ
ログラム用ベクターテーブル５０３にコア間割り込みを設定したりすることで判定が可能
である。
【００４５】
かかる復帰処理の第３実施例によれば、退避プログラム用のベクターテーブルを、退避
プログラムと同様に予めＲＡＭへ展開して利用することで、コードフラッシュのアクセス
に影響しないような例外・割り込みを利用することができ、退避終了条件が成立したとき
に復帰処理を実施することができる。第３実施例は第１実施例と第２実施例のどちらにも
適用することができる。
【００４６】
ここで、前記実施形態から把握し得る請求項以外の技術的思想について、以下に効果と
共に記載する。
【００４７】
（イ）少なくとも２つのコアを有するマイコンを搭載する自動車用電子制御装置であっ
て、あるコアが故障したと判定された際に、故障コア以外のコアからの指令により、故障
コアを不揮発性メモリ上のプログラムで動作しているプログラムから、故障コア専用の揮
発性メモリ上にあるプログラムへ移行することを特徴とする自動車用電子制御装置。
かかる技術的思想によれば、コア故障時のフェールセーフ処理とすることができる。
【００４８】
（ロ）少なくとも２つのコアを有するマイコンを搭載する自動車用電子制御装置であっ
て、コアで共通してアクセスできる資源がどのタスクにも占有されていない資源に対して
アクセスする際、資源へのアクセス優先度の高いタスクが実行されるコアがアクセスする
際に、資源へのアクセス優先度の高いタスクが実行されるコアからの指令で、より低いア
クセス優先度のタスクが実行されるコアを不揮発性メモリ上のプログラムで動作している
プログラムから、揮発性メモリ上にあるプログラムへ移行することを特徴とする自動車用
電子制御装置。
【００４９】
かかる技術的思想によれば、複数のコアが同一資源を扱う場合のコアを跨いだ割込み禁
止処理の効果を得ることができ、コアを跨いだセマフォ処理を構築することができる。
【符号の説明】
【００５０】
１〜ｎ  コア１〜ｎ
１１〜１ｎ  コア専用ＲＡＭ
１００  コードフラッシュ
２００  コア共通ＲＡＭ
１０１〜１０ｍ  消去ブロック
２０１  コア１用プログラムカウンタ
２０２  コア２用プログラムカウンタ
３０２  ＲＡＭに移行したコア２用プログラムカウンタ
３１２  コア２用ＲＡＭの退避プログラム領域
３０３  ＲＡＭに移行したコア３用プログラムカウンタ
４００  コア共通ＲＡＭの退避プログラム領域
５０１  通常時実行プログラム用ベクターテーブル
５０２  通常時実行プログラム
５０３  退避時実行プログラム用ベクターテーブル
５０４  退避時実行プログラム
【図１】
2020004448.tif 000003
【図２】
2020004448.tif 000004
【図３】
2020004448.tif 000005
【図４】
2020004448.tif 000006
【図５】
2020004448.tif 000007
【手続補正書】
【提出日】令和1年10月7日(2019.10.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第一のコアと、第二のコアと、前記第一のコアと前記第二のコアの実行プログラムが格納されている不揮発性メモリと、揮発性メモリと、を有するマルチコアマイコンを備え、
前記不揮発性メモリの前記実行プログラムの書き換え時に、前記第二のコアは前記揮発性メモリのプログラムに移行することを特徴とする自動車用電子制御装置。
【請求項２】
請求項１に記載の自動車用電子制御装置において、
第一のコアは前記第二のコアに対し前記プログラムへ移行させる指令を出すことを特徴とする自動車用電子制御装置。
【請求項３】
請求項１又は２に記載の自動車用電子制御装置において、
前記第一のコア又は前記第二のコアは前記マルチコアマイコンの起動時に前記プログラムを前記揮発性メモリへ展開することを特徴とする自動車用電子制御装置。