(57)【要約】    【課題】  マルチコア型演算処理ユニットに含まれる複数のプロセッサコアが実行する制御プログラムを、外部装置によって書き換える処理を適切に実行し、書き換え処理実行中の消費電力を抑制すること、あるいは書き換え処理を比較的高速に実行することが可能な車両用制御装置を提供する。    【解決手段】  マルチコア型演算処理ユニット（ＭＣＵ）のコア２１が、外部装置２からコア２２の制御プログラムの書き換え要求を受信したときは、コア２２が書き換え用データを受信して共有メモリ５２に格納し、共有メモリ５２に格納した書き換え用データをＲＯＭ４２への書き込む処理を実行する。書き換え用データをＲＯＭ４２に書き込む処理を実行しているときは、コア２１，２３の作動を休止させる。コア２２は、受信処理及び書き込み処理のプログラムをキャッシュメモリ３２にコピーして実行する。【選択図】  図４
2016035725.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサコアを含んで構成されるマルチコア型演算処理ユニットを用いて車両に搭載された制御対象の制御を行う車両用制御装置において、
前記マルチコア型演算処理ユニットは、前記複数のプロセッサコアの全部が使用可能な共有メモリと、前記複数のプロセッサコアが実行する制御プログラムを格納する書き換え可能な読み出し専用メモリと、外部装置との間でデータの送受信を行う通信部とを備え、
前記マルチコア型演算処理ユニットが、前記外部装置から前記通信部を介して前記制御プログラムの書き換え要求を受信したときは、前記複数のプロセッサコアのうちの一つのプロセッサコアが前記読み出し専用メモリに格納された制御プログラムの書き換え処理を実行し、前記一つのプロセッサコア以外のプロセッサコアの作動を休止させることを特徴とする車両用制御装置。
【請求項２】
複数のプロセッサコアを含んで構成されるマルチコア型演算処理ユニットを用いて車両に搭載された制御対象の制御を行う車両用制御装置において、
前記マルチコア型演算処理ユニットは、前記複数のプロセッサコアの全部が使用可能な共有メモリと、前記複数のプロセッサコアのそれぞれに対応して設けられたキャッシュメモリと、前記複数のプロセッサコアが実行する制御プログラムを格納する書き換え可能な読み出し専用メモリと、外部装置との間でデータの送受信を行う通信部とを備え、
前記マルチコア型演算処理ユニットが、前記外部装置から前記通信部を介して前記制御プログラムの書き換え要求を受信したときは、前記複数のプロセッサコアのうちの一つのプロセッサコアが、前記読み出し専用メモリに格納されている書き換え処理プログラムを対応する前記キャッシュメモリにコピーし、前記キャッシュメモリに格納された前記書き換え処理プログラムを起動して、前記制御プログラムの書き換え処理を実行することを特徴とする車両用制御装置。
【請求項３】
前記一つのプロセッサコアが、前記外部装置から前記通信部を介して前記制御プログラムの書き換え用データを受信したときは、受信した書き換え用データを前記共有メモリに格納し、格納された書き換え用データが所定データ量に達する毎に前記読み出し専用メモリへの書き込み処理を実行することを特徴とする請求項１または２に記載の車両用制御装置。
【請求項４】
複数のプロセッサコアを含んで構成されるマルチコア型演算処理ユニットを複数備え、車両に搭載された制御対象の制御を行う車両用制御装置において、
前記複数のマルチコア型演算処理ユニットはそれぞれ、前記複数のプロセッサコアが実行する制御プログラムを格納する書き換え可能な読み出し専用メモリと、外部装置との間でデータの送受信を行う通信部とを備え、
前記複数のマルチコア型演算処理ユニットのうちの一つのユニットが、前記外部装置から前記通信部を介して前記制御プログラムの書き換え要求を受信したときは、前記複数のプロセッサコアのうちの一つのプロセッサコアが前記読み出し専用メモリに格納された制御プログラムの書き換え処理を実行し、前記一つのプロセッサコア以外のプロセッサコアの作動を休止させ、
前記書き換え処理を実行する一つのユニット以外のマルチコア型演算処理ユニットに含まれる一つのプロセッサコアは、前記制御プログラムの書き換え処理の監視処理を実行し、該監視処理を実行する一つのプロセッサコア以外のプロセッサコアの作動を休止させることを特徴とする車両用制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両に搭載された内燃機関、変速機、空調装置などの制御対象を制御する車両用制御装置に関し、特に複数のプロセッサコアを含んで構成されるマルチコア型演算処理ユニットを用いて制御対象を制御する制御装置に関する。
【背景技術】
【０００２】
特許文献１には、複数の処理部（プロセッサコア）を含んで構成されるマルチコア型演算処理ユニットを用いて車両に搭載された制御対象を制御する制御装置が示されている。この装置によれば、イグニッションスイッチがオン状態にあるときは、複数の処理部のすべてを作動させ、イグニッションスイッチがオフ状態にあるときは、複数の処理部の一部のみを作動させ、イグニッションスイッチがオフ状態にあるときに、制御装置の処理負荷が増加する場合、例えば外部故障診断処理や自己診断処理が行われる場合には、作動させる処理部の数を増加させる制御が行われる。
【０００３】
特許文献２には、マルチコア型演算処理ユニットに含まれる１つコアから他のコアに割込によってイベントを通知する際にイベントの誤通知を防止する手法が示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−１９９１８０号公報
【特許文献２】特開２０１２−１０８７８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
複数のプロセッサコアを含んで構成されるマルチコア型演算処理ユニットの各プロセッサコアが実行する制御プログラムを書き換えることが必要となる場合、例えば車両に搭載される制御対象を制御する制御ユニットが実行する制御プログラム中にバグが発見された場合や、制御性能高めるための改良が行われた場合などには、書き換え可能な読み出し専用メモリ（以下単に「ＲＯＭ」という）に格納された制御プログラムを、外部装置によって書き換えることが行われる。
【０００６】
特許文献１及び２には、マルチコア型演算処理ユニットを用いた車両用制御装置が示されているが、ＲＯＭに格納されている制御プログラムの書き換え処理は示されていない。また、特許文献１には、イグニッションスイッチがオフ状態にあるときに、複数の処理部（コア）の一部を作動させないようにして、消費電力を低減する点が記載されているが、イグニッションスイッチがオン状態にあるときには、全ての処理部が作動状態とされる。上述した制御プログラムの書き換え処理は通常、イグニッションスイッチをオン状態として実行されるため、特許文献１に示された装置では、制御プログラムの書き換え処理時に消費電力を低減するための制御は行われない。
【０００７】
車両に搭載される内燃機関の作動を制御する制御装置に適用されるマルチコア型演算処理ユニットの制御プログラムを書き換える場合には、内燃機関の作動を継続できないため、発電（バッテリの充電）ができない状態となり、さらに最近は制御内容が複雑化しているため、書き換えに要する時間が長くなる傾向がある。したがって、イグニッションスイッチをオンした状態で制御プログラムの書き換え処理を実行し、かつ書き換え処理実行中の消費電力を低減すること及び書き換え処理時間を短縮することが求められている。
【０００８】
本発明は、上述した事情に鑑みなされたものであり、マルチコア型演算処理ユニットに含まれる複数のプロセッサコアが実行する制御プログラムを、外部装置によって書き換える処理を適切に実行し、書き換え処理実行中の消費電力を抑制すること、あるいは書き換え処理を比較的高速に実行することが可能な車両用制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するため請求項１に記載の発明は、複数のプロセッサコアを含んで構成されるマルチコア型演算処理ユニット（１１，１３）を用いて車両に搭載された制御対象の制御を行う車両用制御装置において、前記マルチコア型演算処理ユニットは、前記複数のプロセッサコア（２１〜２３，６１，６２）の全部が使用可能な共有メモリ（５２，８１）と、前記複数のプロセッサコアが実行する制御プログラムを格納する書き換え可能な読み出し専用メモリ（４１〜４３，８２）と、外部装置（２）との間でデータの送受信を行う通信部（５４，８４）とを備え、前記マルチコア型演算処理ユニット（１１，１３）が、前記外部装置から前記通信部を介して前記制御プログラムの書き換え要求を受信したときは、前記複数のプロセッサコアのうちの一つのプロセッサコア（２１〜２３の何れか一つ、６１）が前記読み出し専用メモリに格納された制御プログラムの書き換え処理を実行し、前記一つのプロセッサコア以外のプロセッサコアの作動を休止させることを特徴とする。
【００１０】
この構成によれば、マルチコア型演算処理ユニットが、外部装置から通信部を介して制御プログラムの書き換え要求を受信したときは、複数のプロセッサコアのうちの一つのプロセッサコアが読み出し専用メモリに格納された制御プログラムの書き換え処理を実行し、その書き換え処理を実行する一つのプロセッサコア以外のプロセッサコアの作動を休止させる制御が行われる。書き換え処理を行わないプロセッサコアが作動していても、書き換え処理に支障はないが、休止させることによってマルチコア型演算処理ユニット全体としての消費電力を低減することができる。
【００１１】
請求項２に記載の発明は、複数のプロセッサコアを含んで構成されるマルチコア型演算処理ユニット（１１，１３）を用いて車両に搭載された制御対象の制御を行う車両用制御装置において、前記マルチコア型演算処理ユニットは、前記複数のプロセッサコア（２１〜２３，６１，６２）の全部が使用可能な共有メモリ（５２，８１）と、前記複数のプロセッサコアのそれぞれに対応して設けられたキャッシュメモリ（３１〜３３，７１，７２）と、前記複数のプロセッサコアが実行する制御プログラムを格納する書き換え可能な読み出し専用メモリ（４１〜４３，８２）と、外部装置との間でデータの送受信を行う通信部（５４，８４）とを備え、前記マルチコア型演算処理ユニット（１１，１３）が、前記外部装置から前記通信部を介して前記制御プログラムの書き換え要求を受信したときは、前記複数のプロセッサコアのうちの一つのプロセッサコア（２１〜２３の何れか一つ、６１）が、前記読み出し専用メモリに格納されている書き換え処理プログラムを対応する前記キャッシュメモリ（３１〜３３，７１）にコピーし、前記キャッシュメモリに格納された前記書き換え処理プログラムを起動して、前記制御プログラムの書き換え処理を実行することを特徴とする。
【００１２】
この構成によれば、マルチコア型演算処理ユニットが、外部装置から通信部を介して制御プログラムの書き換え要求を受信したときは、読み出し専用メモリに格納されている書き換え処理プログラムがキャッシュメモリにコピーされ、キャッシュメモリに格納された書き換え処理プログラムを起動して、制御プログラムの書き換え処理が実行される。したがって、読み出し専用メモリに格納されている、書き換え処理プログラムを含む全ての制御プログラムの書き換えを行うことが可能となり、さらにキャッシュメモリにコピーしたプログラムを起動して書き換え処理を行うことによって処理速度を高めることができる。
【００１３】
請求項３に記載の発明は、請求項１または２に記載の車両用制御装置において、前記一つのプロセッサコアが、前記外部装置から前記通信部を介して前記制御プログラムの書き換え用データを受信したときは、受信した書き換え用データを前記共有メモリ（５２，８１）に格納し、格納された書き換え用データが所定データ量（ＤＷ）に達する毎に前記読み出し専用メモリ（４１〜４３，８２）への書き込み処理を実行することを特徴とする。
【００１４】
この構成によれば、書き換え処理を実行する一つのプロセッサコアが、外部装置から通信部を介して制御プログラムの書き換え用データを受信したときは、受信した書き換え用データが共有メモリに格納され、格納された書き換え用データが所定データ量に達する毎に読み出し専用メモリへの書き込み処理が実行される。マルチコア型演算処理ユニットは、当該ユニット内のすべてのコアが使用可能な共有メモリを備えているので、共有メモリを使用した書き換え処理を行うことによって、マルチコア型演算処理ユニットの構成の差異に拘わらず共通の書き換え処理を適用することが可能となり、書き換え処理の共通化を実現し、書き換え処理プログラムを簡易化できる。また共有メモリは、キャッシュメモリと比べて記憶容量が大きく、一度の書き込み処理でより多くの書き換え用データを読み出し専用メモリに書き込むことができるため、書き込み処理の速度を高めることができる。
【００１５】
請求項４に記載の発明は、複数のプロセッサコアを含んで構成されるマルチコア型演算処理ユニットを複数備え、車両に搭載された制御対象の制御を行う車両用制御装置において、前記複数のマルチコア型演算処理ユニット（１１〜１４）はそれぞれ、前記複数のプロセッサコアが実行する制御プログラムを格納する書き換え可能な読み出し専用メモリ（４１〜４３，８２）と、外部装置（２）との間でデータの送受信を行う通信部（５４，８４）とを備え、前記複数のマルチコア型演算処理ユニットのうちの一つのユニット（１１）が、前記外部装置から前記通信部を介して前記制御プログラムの書き換え要求を受信したときは、前記複数のプロセッサコアのうちの一つのプロセッサコア（２１〜２３の何れか一つ）が前記読み出し専用メモリに格納された制御プログラムの書き換え処理を実行し、前記一つのプロセッサコア以外のプロセッサコアの作動を休止させ、前記書き換え処理を実行する一つのユニット（１１）以外のマルチコア型演算処理ユニット（１３）に含まれる一つのプロセッサコア（６１）は、前記制御プログラムの書き換え処理の監視処理を実行し、該監視処理を実行するプロセッサコア（６１）以外のプロセッサコア（６２）の作動を休止させることを特徴とする。
【００１６】
この構成によれば、複数のマルチコア型演算処理ユニットのうちの一つのユニットが、外部装置から通信部を介して制御プログラムの書き換え要求を受信したときは、複数のプロセッサコアのうちの一つのプロセッサコアによって制御プログラムの書き換え処理が実行され、書き換え処理を実行する一つのプロセッサコア以外のプロセッサコアの作動を休止させる制御が行われる。さらに書き換え処理を実行する一つのユニット以外のマルチコア型演算処理ユニットに含まれる一つのプロセッサコアによって、制御プログラムの書き換え処理の監視処理が行われ、他のプロセッサコアの作動を休止させる制御が行われる。したがって、制御プログラムの書き換え処理を行う際に、複数のマルチコア型演算処理ユニットを含む制御装置全体としての消費電力を低減することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の一実施形態にかかる車両用制御装置の構成を示すブロック図である。
【図２】図１に示すマルチコア型演算処理ユニット（ＭＣＵ）の構成を示すブロック図ある。
【図３】図１に示すＭＣＵの構成を示すブロック図である。
【図４】外部装置によって非対称型の構成を有するＭＣＵの制御プログラムを書き換える処理を説明するためのタイムチャートである。
【図５】外部装置によって対称型の構成を有するＭＣＵの制御プログラムを書き換える処理を説明するためのタイムチャートである。
【図６】図４の動作例に対応するＭＣＵを構成する各コアが実行する通常制御及び特定のコアが実行するイベント処理のフローチャートである。
【図７】図４の動作例に対応する書き換え要求対応処理のフローチャートである。
【図８】図７の処理で実行される書き換えモード遷移処理のフローチャートである。
【図９】図７の処理で実行される書き換え監視処理のフローチャートである。
【図１０】書き換え用データの受信処理のフローチャートである。
【図１１】書き換え用データをＲＯＭに書き込む処理のフローチャートである。
【図１２】図５の動作例に対応するＭＣＵを構成する各コアが実行する通常制御及び特定のコアが実行するイベント処理のフローチャートである。
【図１３】図５の動作例に対応する書き換えモード遷移処理のフローチャートである。
【図１４】図５の動作例に対応する書き換え監視処理のフローチャートである。
【図１５】図５の動作例に対応する、書き換え用データの受信処理及び書き込み処理のフローチャートである。
【図１６】図１に示す構成の変形例を示すブロック図である。
【発明を実施するための形態】
【００１８】
以下本発明の実施の形態を図面を参照して説明する。
図１は本発明の一実施形態にかかる車両用制御装置の構成を示すブロック図であり、この制御装置は、車両１に搭載された内燃機関、変速機、空調装置などの制御を行うマルチコア型演算処理ユニット（以下「ＭＣＵ」という）１１〜１４と、それらを相互に接続するバス３とを備えている。バス３は、データリンクコネクタ４を介して、外部装置２と接続可能に構成されている。外部装置２は、ＭＣＵ１１〜１４のＲＯＭ（Read Only Memory）に格納されている制御プログラムの書き換えや、ＭＣＵ１１〜１４を含む制御装置、内燃機関、変速機などの制御対象、制御に使用される各種センサ及びアクチュエータなど（以下全体として「制御系」という）の故障診断などを行う。ＭＣＵ１１〜１４が備えるＲＯＭは、何れも記憶内容を書き換え可能なものである。
【００１９】
図２は、ＭＣＵ１１の構成を示すブロック図であり、ＭＣＵ１１は３つのプロセッサコア（以下単に「コア」という）２１〜２３と、コア２１が使用するキャッシュメモリ（以下「ＣＡＭ」という）３１、コア２１が実行する制御プログラムを格納するＲＯＭ４１、及びバス５５と、コア２２が使用するＣＡＭ３２、コア２２が実行する制御プログラムを格納するＲＯＭ４２、及びバス５６と、コア２３が使用するＣＡＭ３３、コア２３が実行する制御プログラムを格納するＲＯＭ４３、及びバス５７と、３つのコア間の通信を仲介するインタフェースとして機能するコア間通信部５１と、コア２１〜２３が使用可能な共有メモリ５２と、制御系の各種センサ及びアクチュエータが接続された入出力部５３と、バス３上のデータの受信及びバス３へのデータの送信を行う外部通信部５４とを備えている。ＭＣＵ１１では、車両１に搭載された内燃機関の制御に必要な処理を、３つコア２１〜２３が分担して実行する。ＭＣＵ１２は、ＭＣＵ１１と同様の構成（以下「非対称型の構成」という）を有する。
【００２０】
図３は、ＭＣＵ１３の構成を示すブロック図であり、ＭＣＵ１３は２つのコア６１，６２と、コア６１が使用するＣＡＭ７１と、コア６２が使用するＣＡＭ７２と、コア６１，６２が使用可能な共有メモリ８１と、コア６１，６２が実行する制御プログラムを格納するＲＯＭ８２と、制御系の各種センサ及びアクチュエータが接続された入出力部８３と、バス３上のデータの受信及びバス３へのデータの送信を行う外部通信部８４とを備えている。ＭＣＵ１３では、例えば車両１に搭載された変速機の制御に必要な処理を、２つコア６１，６２が分担して実行する。ＭＣＵ１４は、ＭＣＵ１３と同様の構成（以下「対称型の構成」という）を有する。
【００２１】
図４は、外部装置２によってＭＣＵ１１の制御プログラムを書き換える処理を説明するためのタイムチャートであり、この図には、コア２２に対応するＲＯＭ４２に格納された制御プログラムの書き換え処理動作例が示されている。この動作例では、コア２１が書き換え要求メッセージを受信し、コア２２が制御プログラムの書き換え用データを受信して、受信した書き換え用データをＲＯＭ４２に書き込む処理を実行する。
【００２２】
図４（ａ）〜（ｇ）は、それぞれバス３上のメッセージ（上側：外部装置２が送出し、ＭＣＵ１１が受信するメッセージ、下側：ＭＣＵ１１が送出し、外部装置２へ送信するメッセージ）、コア２１で実行される処理、コア２２で実行される処理、ＣＡＭ３２への書き込みデータ、共有メモリ５２への書き込みデータ、ＲＯＭ４２への書き込みデータ、及びコア２３で実行される処理の推移を示す。図４（ａ），（ｅ），及び（ｆ）に破線で示すデータは、制御プログラムの書き換え用データを示している。
【００２３】
制御プログラムの書き換え要求を含むメッセージＭ１がバス３に送出されると、コア２１が読み込んで書き換え要求対応処理（ＲＥＳ）を起動し、確認応答メッセージＭ１１を送出する。次いで、制御プログラムを書き換える対象がＲＯＭ４２であることを指定するメッセージＭ２が送出されると、コア２１は確認応答メッセージＭ１２を送出するとともに、コア２１〜２３を書き換え処理モードへ移行させる。すなわち、コア２２に対してＲＯＭ４２に格納されている受信処理プログラム及び書き込み処理プログラムをＣＡＭ３２にコピーする指令を出力するとともに、コア２３を休止させる指令を出力する。コア２１からの指令に応じて、コア２２は受信処理プログラム及び書き込み処理プログラム（ＲＷ）をＣＡＭ３２にコピーしてそのプログラムを起動し、コア２３は休止する。またコア２２がコア２１を休止させる指令を出力し、コア２１は休止する。
【００２４】
その後書き換え用データを含むメッセージＭＲＷが、ＲＯＭ４２への書き込み処理に適した所定データ量ＤＷ毎に外部装置２から送出される。コア２２は、メッセージＭＲＷの受信に対応して受信処理を実行するとともに、書き込み処理を実行する。具体的には、受信処理では、メッセージＭＲＷを受信して確認応答メッセージＭＡＣを送出するとともに、受信した書き換え用データを共有メモリ５２に順次格納し、書き込み処理では、共有メモリ５２に格納された書き換え用データが所定データ量ＤＷに達すると、ＲＯＭ４２に書き込む処理を実行する。図４（ｃ）にハッチングを付して示す処理がＲＯＭ４２への書き込み処理に相当する。
【００２５】
書き込み処理が完了すると、コア２２は書き込んだデータ（プログラム）のチェック処理（ＣＨＫ）を実行し、ＣＶＮ（Calibration Verification Number）を算出する。外部装置２はＣＶＮを要求するメッセージＭ３を送出し、このメッセージＭ３に対応してコア２２は算出したＣＶＮを含むメッセージＭ１３を送出する。これに対応して外部装置２は、書き換え処理完了メッセージＭ４を送出する。コア２２は、書き換え処理完了メッセージＭ４を受けて、コア２２自身を書き換え処理モードから通常制御モードに移行させるとともに、コア２１及び２３を起動する（時刻ｔＥ）。コア２１〜２３は、初期化処理を経て通常制御へ移行する。
【００２６】
図５は、外部装置２によってＭＣＵ１３の制御プログラムを書き換える処理を説明するためのタイムチャートであり、ＲＯＭ８２に格納された制御プログラムの書き換え処理動作例が示されている。この動作例では、コア６１が制御プログラムの書き換え用データを受信する処理、及び書き換え用データをＲＯＭ８２に書き込む処理を実行する。
【００２７】
図５（ａ）〜（ｆ）は、それぞれバス３上のメッセージ（上側：外部装置２が送出し、ＭＣＵ１３が受信するメッセージ、下側：ＭＣＵ１３が送出し、外部装置２へ送信するメッセージ）、コア６１で実行される処理、ＣＡＭ７１への書き込みデータ、共有メモリ８１への書き込みデータ、ＲＯＭ８２への書き込みデータ、及びコア６２で実行される処理の推移を示している。図５（ａ），（ｄ），及び（ｅ）に破線で示すデータは、制御プログラムの書き換え用データを示している。
【００２８】
制御プログラムの書き換え要求を含むメッセージＭ１がバス３に送出されると、コア６１が読み込んで書き換え要求対応処理（ＲＥＳ）を起動し、確認応答メッセージＭ１１を送出する。次いで、ＲＯＭ８２の書き換え対象領域（書き換える制御プログラムが格納されている領域）を指定するメッセージＭ２が送出されると、コア６１は確認応答メッセージＭ１２を送出するとともに、ＲＯＭ８２に格納されている受信処理プログラム及び書き込み処理プログラム（ＲＷ）をＣＡＭ７１にコピーし、コア６２を休止させる指令を出力する。コア６１からの指令に応じて、コア６２は休止する。
【００２９】
その後コア６１は、ＣＡＭ７１にコピーした受信処理プログラム及び書き込み処理プログラムを起動して待機する。書き換え用データを含むメッセージＭＲＷが、ＲＯＭ８２への書き込み処理に適した所定データ量ＤＷ毎に外部装置２から送出されると、コア６１は、メッセージＭＲＷの送出に対応して受信処理及び書き込み処理を実行する。すなわち、メッセージＭＲＷを受信して確認応答メッセージＭＡＣを送出するとともに、受信した書き換え用データを共有メモリ８１に順次格納し、共有メモリ８１に格納された書き換え用データが所定データ量ＤＷに達すると、ＲＯＭ８２に書き込む処理を実行する。書き込み処理が完了すると、コア６１は書き込んだデータ（プログラム）のチェック処理（ＣＨＫ）を実行し、ＣＶＮを算出する。外部装置２はＣＶＮを要求するメッセージＭ３を送出し、コア６１は算出したＣＶＮを含むメッセージＭ１３を送出する。これに対応して外部装置２は、書き換え処理完了メッセージＭ４を送出する。コア６１は、書き換え処理完了メッセージＭ４を受けて、コア６１自身を書き換え処理モードから通常制御モードに移行させるとともに、コア６２を起動する（時刻ｔＥ）。コア６１，６２は、初期化処理を経て通常制御へ移行する。
【００３０】
次に図６〜図１１に示すフローチャートを参照して、ＭＣＵ１１における制御処理を説明する。この制御処理は、図４に示す動作例に対応し、非対称型の構成を有するＭＣＵで実行されるものである。
【００３１】
図６（ａ），（ｂ），及び（ｃ）は、ＭＣＵ１１のコア２１〜２３で実行される通常制御処理の一部を示すフローチャートであり、図６（ｄ）は上述したように外部装置２からＭＣＵ１１宛のメッセージ（書き換え要求メッセージ）を受信したときに実行されるイベント処理のフローチャートである。
【００３２】
コア２１は、通常制御では故障検知確定処理及びデータ送受信処理を実行する（ステップＳ１１，Ｓ１２）。故障検知確定処理は、コア２１〜２３で実行される故障検出処理の結果に基づいて、外部装置２へ送信する故障コードを確定する処理である。データ送受信処理は、他のＭＣＵ１２〜１４や外部装置２との間のデータ送受信を行う処理である。また、ＭＣＵ１１宛のメッセージの受信は、本実施形態ではコア２１が実行するように予め決められており、図６（ｄ）に示すイベント処理は、コア２１により実行され、書き換え要求メッセージの受信及び確認応答メッセージなどの送信が、メッセージの受信イベントに対応して実行される（ステップＳ２１）。
【００３３】
コア２２は、故障検出処理、ＴＲＱＴ算出処理、及び協調制御処理（ステップＳ３１〜Ｓ３３）を実行する。故障検出処理は、車両１に搭載された内燃機関あるいは内燃機関に装着されたセンサやアクチュエータなどの故障を検出する処理であり、ＴＲＱＴは、車両１のアクセルペダルの踏み込み量などに応じて内燃機関の目標トルクＴＲＱＴを算出する処理であり、協調制御処理は、他のＭＣＵ１２〜１４が実行する制御との協調制御を行う処理である。
【００３４】
コア２３は、入出力処理、アイドル停止処理、及びＴＲＱＡ算出処理（ステップＳ４１〜Ｓ４３）を実行する。入出力処理は、センサにより検出されるデータの入力処理及びアクチュエータへ駆動信号を出力する処理であり、アイドル停止処理は、所定のアイドル停止条件が成立したときに内燃機関を一時的に停止させる処理であり、ＴＲＱＡ算出処理は内燃機関の実出力トルクを算出する処理である。
【００３５】
図７は、図６（ｄ）のイベント処理で実行される書き換え要求対応処理のフローチャートである。ステップＳ５１では受信したメッセージのチェックを行い、異常がないときはメッセージ正常フラグＦＭＳＧＯＫを「１」に設定する。
【００３６】
ステップＳ５２では、メッセージ正常フラグＦＭＳＧＯＫが「１」であるか否かを判別し、その答が否定（ＮＯ）であって異常が検出されたときは、その異常を送信元に通知するネガティブメッセージを作成し（ステップＳ５３）、ステップＳ５７に進む。
【００３７】
ステップＳ５２の答が肯定（ＹＥＳ）であるときは、書き換え対象は自ユニット（ＭＣＵ１１）のＲＯＭであるか否かを判別する（ステップＳ５４）。ステップＳ５４の答が否定（ＮＯ）であるときは、他のＭＣＵ１２〜１４のＲＯＭに格納された制御プログラムの書き換え要求であるため、ステップＳ５５に進んで、図９に示す書き換え監視処理を実行する。ステップＳ５４の答が肯定（ＹＥＳ）であるときは、図８に示す書き換えモード遷移処理を実行し（ステップＳ５６）、ＭＣＵ１１内のコア２１〜２３を制御プログラムの書き換え処理モード（休止状態を含む）へ移行させる。
【００３８】
ステップＳ５７では、ネガティブメッセージまたはポジティブメッセージ（受信した書き換え要求メッセージの確認応答メッセージ）を送信する。ステップＳ５８では、処理切換許可フラグＦＳＷＯＫが「１」であるか否かを判別する。処理切換許可フラグＦＳＷＯＫは、書き換え対象のＲＯＭが確定し、コア２１〜２３の書き換え処理モードへの移行が完了すると、「１」に設定される。ステップＳ５８の答が否定（ＮＯ）である間は、直ちに処理を終了し、肯定（ＹＥＳ）となると、実行プログラムをＣＡＭ３１にコピーした受信処理プログラム及び書き換え処理プログラムに切り換えるかまたは休止状態へ移行する（ステップＳ５９）。すなわち、書き換え対象ＲＯＭが、コア２１が使用するＲＯＭ４１であるときは、コア２１が受信処理及び書き込み処理を実行し、書き換え対象ＲＯＭがＲＯＭ４２またはＲＯＭ４３であるときは、コア２１は休止し、コア２２またはコア２３が受信処理及び書き込み処理を実行する。なお、コア２１が実際に休止するのは、コア２２またはコア２３が書き込み処理を起動したときである（図１１参照）。
【００３９】
図８は、図７のステップＳ５６で実行される書き換えモード遷移処理のフローチャートである。本実施形態では、ＲＯＭ指定パラメータＮＲＯＭの値「１」〜「３」がＲＯＭ４１〜４３に対応する。すなわち、ＮＲＯＭ＝１であるきは、ＲＯＭ４１が書き換え対象ＲＯＭであり、ＮＲＯＭ＝２であるきは、ＲＯＭ４２が書き換え対象ＲＯＭであり、ＮＲＯＭ＝３であるきは、ＲＯＭ４３が書き換え対象ＲＯＭである。
【００４０】
ステップＳ６１〜Ｓ６３では、ＲＯＭ指定パラメータＮＲＯＭが「１」，「２」，［３」の何れであるかを判別する。ＲＯＭ指定パラメータＮＲＯＭを受信していないときは、処理を終了する。
【００４１】
ＲＯＭ指定パラメータＮＲＯＭが「１」であるときは、コア２１が書き換え用データの受信処理及び書き込み処理を実行するので、ＲＯＭ４１に格納されている受信処理プログラム及び書き込み処理プログラムをＣＡＭ３１にコピーする（ステップＳ６４）。ステップＳ６５では、コア２１が実行するプログラムを、ＣＡＭ３１にコピーしたプログラムへ切り換え可能な状態とし、制御プログラムの書き換え処理（受信処理及び書き込み処理）を行わないコア２２，２３を休止させる指令を、コア間通信部５１を介してコア２２，２３へ送信する。
【００４２】
ＲＯＭ指定パラメータＮＲＯＭが「２」であるときは、コア２２が書き換え用データの受信処理及び書き込み処理を実行するので、ＲＯＭ４２に格納されている受信処理プログラム及び書き込み処理プログラムをＣＡＭ３２にコピーする（ステップＳ６６）。ステップＳ６７では、コア２１を休止状態へ切り換え可能な状態とするとともに、コア２２が実行するプログラムを、ＣＡＭ３２にコピーしたプログラムへ切り換え可能な状態とし、制御プログラムの書き換え処理を行わないコア２３を休止させる指令を、コア間通信部５１を介してコア２３へ送信する。
【００４３】
ＲＯＭ指定パラメータＮＲＯＭが「３」であるときは、コア２３が書き換え用データの受信処理及び書き込み処理を実行するので、ＲＯＭ４３に格納されている受信処理プログラム及び書き込み処理プログラムをＣＡＭ３３にコピーする（ステップＳ６８）。ステップＳ６９では、コア２１を休止状態へ切り換え可能な状態とするとともに、コア２３が実行するプログラムを、ＣＡＭ３３にコピーしたプログラムへ切り換え可能な状態とし、制御プログラムの書き換え処理を行わないコア２２を休止させる指令を、コア間通信部５１を介してコア２２へ送信する。
【００４４】
図９は、図７のステップＳ５５で実行される書き換え監視処理のフローチャートである。他のＭＣＵ１２，１３，または１４による制御プログラムの書き換え処理の監視処理は、ＭＣＵ１１ではコア２１が実行する。ステップＳ８１では、他のＭＣＵにおける書き換え実行中であるか否かを判別し、その答が肯定（ＹＥＳ）であるときは、監視処理を実行しないコア２２，２３を休止させる（ステップＳ８２）。他のＭＣＵにおける書き換え処理が終了すると、コア２２，２３を起動し（ステップＳ８３）、通常制御に復帰させるとともに、コア２１自身も通常制御に復帰する（ステップＳ８４）。
【００４５】
図１０は、書き換え用データの受信処理のフローチャートである。この処理は、メッセージの受信イベントが発生したときに、書き換え対象ＲＯＭ（本処理を実行しているコアに対応するＲＯＭ４１，４２，または４３、以下単に「対象ＲＯＭ」という）に対応するコアにおいて実行される。
【００４６】
ステップＳ９１では、書き換え用データを含む受信メッセージのチェックを行い、異常が検出されないときは、メッセージ正常フラグＦＭＳＧＯＫを「１」に設定する。ステップＳ９２では、メッセージ正常フラグＦＭＳＧＯＫが「１」であるか否かを判別し、その答が否定（ＮＯ）であるときはネガティブメッセージを作成して（ステップＳ９４）、ステップＳ９５に進む。メッセージ正常フラグＦＭＳＧＯＫが「１」であるときは、受信データを共有メモリ５２に格納する（ステップＳ９３）。
【００４７】
ステップＳ９５では、ネガティブメッセージまたは書き換え用データの受信確認メッセージ（ＭＡＣ）を送信する。ステップＳ９６では送信が完了するまで待機し、完了すると送信完了処理を実行する（ステップＳ９７）。送信完了処理では、書き換え用データの受信から受信確認メッセージの送信までに要した応答時間ＴＲＥＳを計測し、規定されている応答時間ＴＲＥＳＬＭＴ以内に応答が完了したことを確認する。
【００４８】
図１１は、共有メモリ５２に格納した書き換え用データを対象ＲＯＭに書き込む処理のフローチャートであり、図１０に示す受信処理と同様に対象ＲＯＭに対応するコアで所定時間毎に実行される。
ステップＳ１０１では、起動直後であるか否かを判別し、その答が肯定（ＹＥＳ）であるときは、コア２１で起動されたか否かを判別する（ステップＳ１０２）。その答が肯定（ＹＥＳ）であれば直ちに処理を終了し、否定（ＮＯ）であるとき、すなわち本処理がコア２２または２３で実行されているときは、コア２１を休止させる指令をコア２１へ送信する（ステップＳ１０３）。
【００４９】
ステップＳ１０４では、受信した書き換え用データを共有メモリ５２に格納する処理が完了したか否かを判別し、ステップＳ１０４の答が否定（ＮＯ）、すなわちデータ受信中であるときは、直ちにステップＳ１０６に進み、ステップＳ１０４の答が肯定（ＹＥＳ）となると、共有メモリ５２に格納された書き換え用データを対象ＲＯＭに書き込む（ステップＳ１０５）。
【００５０】
ステップＳ１０６では、書き換え用データの対象ＲＯＭへの書き込みが完了したか否かを判別する。ステップＳ１０６の答が否定（ＮＯ）である間は、直ちに処理を終了し、肯定（ＹＥＳ）となると、対象ＲＯＭに書き込んだデータのチェック（ＣＶＮの算出）を行う（ステップＳ１０７）。
【００５１】
次に図１２〜図１５を参照して、ＭＣＵ１３の制御プログラムを書き換える場合の制御処理を説明する。この制御処理は、図５に示す動作例に対応し、対称型の構成を有するＭＣＵで実行されるものである。
【００５２】
図１２（ａ）及び（ｂ）は、ＭＣＵ１３のコア６１及び６２で実行される通常制御処理の一部を示すフローチャートであり、図１２（ｃ）は上述したように外部装置２からＭＣＵ１３宛のメッセージ（書き換え要求メッセージ）を受信したときに実行されるイベント処理のフローチャートである。
【００５３】
図１２（ａ）のステップＳ１１１、Ｓ１１３、及び図１２（ｂ）のステップＳ１２３における処理は、図６に示す処理について説明した処理と同様の処理である。図１２（ａ）のステップＳ１１２では、ＳＦＴＴ算出処理が実行される。ＳＦＴＴ算出処理では、変速機の目標変速段ＳＦＴＴが車両運転状態に応じて算出される。図１２（ｂ）の変速制御処理では、目標変速段ＳＦＴＴが、現在の実変速段と異なる場合に、実変速段を目標変速段ＳＦＴＴへ移行させる制御が行われる。
【００５４】
図１２（ｃ）の書き換え要求対応処理は、図７に示す処理と同一であるため、図示を省略している。図１３は、書き換え要求対応処理における書き換えモード遷移処理のフローチャートである。
【００５５】
ステップＳ１４１では、ＲＯＭ８２内の書き換える領域の指定を受信したか否かを判別し、受信していないときは直ちに処理を終了する。ステップＳ１４１の答が肯定（ＹＥＳ）となると、コア６１が書き換え用データの受信処理及び書き込み処理を実行するので、ＲＯＭ８２に格納されている受信処理プログラム及び書き込み処理プログラムをＣＡＭ７１にコピーする（ステップＳ１４２）。ステップＳ１４３では、コア６１が実行するプログラムを、ＣＡＭ７１にコピーしたプログラムへ切り換え可能な状態とし、制御プログラムの書き換え処理（書き換え用データの受信処理及び書き込み処理）を行わないコア６２を休止させる指令をバス８５を介してコア６２へ送信する。
【００５６】
図１４は、書き換え要求対応処理における書き換え監視処理のフローチャートである。本実施形態では、他のＭＣＵ１１，１２，または１４による制御プログラムの書き換え処理の監視処理は、ＭＣＵ１３ではコア６１が実行する。ステップＳ１５１では、他のＭＣＵにおける書き換え実行中であるか否かを判別し、その答が肯定（ＹＥＳ）であるときは、監視処理を実行しないコア６２を休止させる（ステップＳ１５２）。他のＭＣＵにおける書き換え処理が終了すると、コア６２を起動し（ステップＳ１５３）、通常制御に復帰させるとともに、コア６１自身も通常制御に復帰する（ステップＳ１５４）。
【００５７】
図１５（ａ）は、コア６１で実行される受信処理のフローチャートであり、図１５（ｂ）は書き込み処理のフローチャートである。図１５（ａ）の処理は、図１０に示す受信処理と同一であり、ステップＳ１６１〜Ｓ１６７は図１０のステップＳ９１〜Ｓ９７と実質的に同一である。また図１５（ｂ）の処理は、図１１に示す書き込み処理（ステップＳ１０１〜Ｓ１０３を除く）と実質的に同一である。すなわち、図１５（ｂ）のステップＳ１７１〜Ｓ１７４は、それぞれ図１１のステップＳ１０４〜Ｓ１０７に対応する。
【００５８】
図１５に示す処理により、図５に示すメッセージＭＲＷによって送信される書き換え用データが先ず共有メモリ８１に格納され、共有メモリ８１に格納されたデータがＲＯＭ８２内の書き換え指定領域に書き込まれ、書き込んだデータのチェックが行われる。
【００５９】
以上のように本実施形態では、ＭＣＵ１１（コア２１）が、外部装置２から外部通信部５４を介して制御プログラムの書き換え要求を受信したときは、書き換え対象のＲＯＭに対応するコアが書き換え処理（書き換え用データの受信処理及び書き込み処理）を実行し、書き換え処理を実行しない他のコアを休止させる。またＭＣＵ１３（コア６１）が、外部装置２から外部通信部８４を介して制御プログラムの書き換え要求を受信したときは、コア６１が制御プログラムの書き換え処理を実行し、他のコア６２の作動を休止させる。書き換え処理を行わないコアは作動していても、書き換え処理に支障はないが、休止させることによって消費電力を低減することができる。
【００６０】
また、制御プログラムの書き換え要求を受信したときは、ＲＯＭ４１等に格納されている書き換え処理プログラム（受信処理プログラム及び書き込み処理プログラム）がＣＡＭ３１等にコピーされ、ＣＡＭ３１等に格納された書き換え処理プログラムを起動して、制御プログラムの書き換え処理が実行される。したがって、ＲＯＭ４１等に格納されている、書き換え処理プログラムを含む全ての制御プログラムの書き換えを行うことが可能となり、さらにキャッシュメモリにコピーしたプログラムを起動して書き換え処理を行うことによって処理速度を高めることができる。
【００６１】
車両１の内燃機関の作動を制御するＭＰＵ１１の制御プログラムを書き換える場合には、内燃機関の作動を継続できないため、発電（バッテリの充電）ができない状態となり、さらに最近は制御内容が複雑化しているため、書き換えに要する時間が長くなる傾向がある。したがって、書き換え実行中の消費電力を低減し、書き換え処理を高速化することは、特に内燃機関を含む制御対象を制御する車両用制御装置における優位性を高める効果を奏する。
【００６２】
また、ＭＣＵ１１及び１３の何れにおいても、受信した書き換え用データが共有メモリ５２，８１に格納され、格納された書き換え用データが所定データ量ＤＷに達する毎にＲＯＭ４２，８２への書き込み処理が実行される。非対称型の構成を有するＭＣＵ１１，１２、及び対称型の構成を有するＭＣＵ１３，１４は、ユニット内のすべてのコアが使用可能な共有メモリ（５２，８１）を備えているので、共有メモリを使用した書き換え処理を行うことによって、対称型及び非対称型という差異に拘わらず共通の書き換え処理（図１０，図１１，図１５参照）を適用することが可能となり、書き換え処理の共通化を実現し、書き換え処理プログラムを簡易化できる。また共有メモリ５２，８１は、キャッシュメモリ３１等と比べて記憶容量が大きく、一度の書き込み処理でより多くの書き換え用データを読み出し専用メモリに書き込むことができるため、書き込み処理の速度を高めることができる。
【００６３】
また、ＭＣＵ１１（コア２１）が書き換え要求を受信したときは、コア２１，２２，２３のうちの何れか一つのコアが書き換え要求の対象となった制御プログラムの書き換え処理を実行し、書き換え処理を実行しないコアの作動を休止させる制御が行われ、さらに書き換え処理を実行するＭＣＵ１１以外のＭＣＵ１２〜１４に含まれ、制御プログラムの書き換え処理を監視するコア、例えばＭＣＵ１３のコア６１以外のコア６２の作動を休止させる制御が行われる。また、ＭＣＵ１３において書き換え処理が行われるときは、ＭＣＵ１１においてはコア２１が書き換え処理の監視を行い、コア２２，２３を休止させる制御が行われる。したがって、制御プログラムの書き換え処理を行う際に、複数のＭＣＵ１１〜１４を含む制御装置全体としての消費電力を低減することができる。
【００６４】
なお本発明は上述した実施形態に限るものではなく、種々の変形が可能である。例えば、図１６に示すように、バス３が、ゲートウエイ５によってバス３ａと３ｂとに分割されているような構成を有する制御装置、あるいは例えばＭＣＵ１４が無線通信装置１４ａを備え、無線通信装置２ａを備える外部装置２が、無線通信装置２ａ，１４ａを介して、制御プログラムの書き換え処理を実行可能な制御装置などにも本発明は適用可能である。
【符号の説明】
【００６５】
１  車両
２  外部装置
３  バス
１１〜１３  マルチコア型演算処理ユニット
２１〜２３，６１，６２  プロセッサコア
３１〜３３，７１，７２  キャッシュメモリ
４１〜４３，８２  読み出し専用メモリ
５２，８１  共有メモリ
５４，８４  外部通信部
【図１】
2016035725.tif 000003
【図２】
2016035725.tif 000004
【図３】
2016035725.tif 000005
【図４】
2016035725.tif 000006
【図５】
2016035725.tif 000007
【図６】
2016035725.tif 000008
【図７】
2016035725.tif 000009
【図８】
2016035725.tif 000010
【図９】
2016035725.tif 000011
【図１０】
2016035725.tif 000012
【図１１】
2016035725.tif 000013
【図１２】
2016035725.tif 000014
【図１３】
2016035725.tif 000015
【図１４】
2016035725.tif 000016
【図１５】
2016035725.tif 000017
【図１６】
2016035725.tif 000018