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