(57)【要約】【課題】支援される側のＥＣＵの制御内容の変更に伴って、支援する側のＥＣＵのプログラムを修正する際に、そのプログラムの修正を簡便に行うことができるようにする。【解決手段】複数のＥＣＵ１〜４のうちの一つのＥＣＵ１が、演算を並行して実行可能な複数のコア２１〜２４と、この複数のコアで利用されるプログラムを格納するＲＯＭ２５と、を有し、ＲＯＭは、コアごとに互いに独立したプログラムを格納し、サブコアとなる第１〜第３のコア２１〜２３は、ＲＯＭのプログラムに基づいて各々が担当する制御系統の制御に係る演算を行い、メインコアとなる第４のコア２４は、複数の制御系統間での協調制御に係る演算を実行するとともに、他のＥＣＵからの支援要請を受け付けて、その支援に係る演算の少なくとも一部を、サブコアごとのプログラムに対応させて、サブコアのいずれかに割り当てるものとする。【選択図】図２
2015229467.tif 000002
【特許請求の範囲】
【請求項１】
複数の電子制御装置を備え、
この複数の電子制御装置のうちの少なくとも一つの電子制御装置が、演算を並行して実行可能な複数の演算部と、この複数の演算部で利用されるプログラムを格納するプログラム格納部と、を有する電子制御システムであって、
前記プログラム格納部は、前記演算部ごとに互いに独立したプログラムを格納し、
複数の前記演算部のうちの少なくとも一つの演算部が主演算部となり、残りの複数の演算部が副演算部となり、
複数の前記副演算部は、前記プログラムに基づいて各々が担当する制御系統の制御に係る演算を行い、
前記主演算部は、複数の前記制御系統間での協調制御が必要な場合に、その協調制御に係る演算を実行するとともに、他の前記電子制御装置からの支援要請を受け付けて、その支援に係る演算の少なくとも一部を、前記副演算部ごとの前記プログラムに対応させて、複数の前記副演算部のいずれかに割り当てることを特徴とする電子制御システム。
【請求項２】
前記副演算部が担当する制御系統の制御に係る演算のうち、制御周期が短い制御に係る演算を前記副演算部が実行し、制御周期が長い制御に係る演算を前記主演算部が実行することを特徴とする請求項１に記載の電子制御システム。
【請求項３】
前記主演算部は、前記副演算部の負荷を監視し、その負荷に応じて、他の前記電子制御装置の支援に係る演算を前記副演算部に割り当てることを特徴とする請求項１または請求項２に記載の電子制御システム。
【請求項４】
前記主演算部は、他の前記電子制御装置の支援に係る演算を前記副演算部がそのまま実行することができない場合に、前記副演算部で実行可能な演算に置き換えて、その演算を前記副演算部に実行させることを特徴とする請求項１から請求項３のいずれかに記載の電子制御システム。
【請求項５】
前記副演算部は、前記主演算部から割り当てられた演算が終了すると、その演算を実行したときの負荷に関する負荷情報を演算結果とともに前記主演算部に送り、
前記主演算部は、前記負荷情報に基づいて、前記副演算部の演算結果の信頼性に関する評価を行い、この評価で演算結果の信頼性が低いものと判断されると、その副演算部の演算結果を廃棄することを特徴とする請求項１から請求項４のいずれかに記載の電子制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の電子制御装置を備え、この複数の電子制御装置のうちの少なくとも一つの電子制御装置が、演算を並行して実行可能な複数の演算部を有する電子制御システムに関するものである。
【背景技術】
【０００２】
自動車には、種々の車載デバイスを電子制御するために種々のＥＣＵ（電子制御装置）が設けられている。このＥＣＵでは、近年、制御対象となるデバイスの増加や、制御プログラムの複雑化により、処理負荷が大きくなる傾向にあり、これに対応するため、処理能力の高いマルチコアプロセッサ、すなわち１つのプロセッサパッケージ内に複数のコアを実装したプロセッサを搭載したものが普及しつつある。
【０００３】
このようなマルチコアプロセッサを搭載したＥＣＵに関して、従来、制御対象の演算内容の優先度に基づいて、空きコアに演算を割り当てる技術が知られている（特許文献１参照）。この技術では、既存のプログラムをマルチコアプロセッサで実行する際に負荷を適切に分散することができるため、既存のプログラムの変更によるコスト増を抑制することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−１０８５７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
さて、複数のＥＣＵで構成される電子制御システムにおいては、あるＥＣＵの負荷が過大となるおそれがある場合に、そのＥＣＵの負荷を軽減するため、そのＥＣＵの制御を別のＥＣＵに支援させる、すなわち負荷が過大となるＥＣＵで行われる演算の一部を別のＥＣＵに行わせるようにするとよい。
【０００６】
一方、ＥＣＵの制御対象となるデバイスの追加などにより、ＥＣＵの制御内容が変更されると、当然ながら、そのＥＣＵのプログラムを修正する必要があるが、前記のように、あるＥＣＵの制御を別のＥＣＵが支援する場合、支援される側のＥＣＵの制御内容が変更されると、支援する側のＥＣＵのプログラムも修正する必要がある。
【０００７】
特に、支援する側のＥＣＵが、前記のようにマルチコアプロセッサを搭載したものである場合、全てのコアのプログラムを修正する必要があり、プログラムの修正が大がかりなものとなる。このため、ＥＣＵのプログラムのアップデートにより制御内容を変更する場合に、ＥＣＵのプログラムメモリの書き換えに要する時間が長くなり、また、プログラムの修正作業自体も煩雑になるという問題があった。
【０００８】
本発明は、このような従来技術の問題点を解消するべく案出されたものであり、その主な目的は、複数の電子制御装置のうちのある電子制御装置の制御を別の電子制御装置が支援する場合に、支援される側の電子制御装置の制御内容の変更に伴って、支援する側の電子制御装置のプログラムを修正する際に、そのプログラムの修正を簡便に行うことができるように構成された電子制御システムを提供することにある。
【課題を解決するための手段】
【０００９】
前記課題を解決するためになされた第１の発明は、複数の電子制御装置（ＥＣＵ１〜４）を備え、この複数の電子制御装置のうちの少なくとも一つの電子制御装置が、演算を並行して実行可能な複数の演算部（第１〜第４のコア２１〜２４）と、この複数の演算部で利用されるプログラムを格納するプログラム格納部（ＲＯＭ２５）と、を有する電子制御システムであって、前記プログラム格納部は、前記演算部ごとに互いに独立したプログラムを格納し、複数の前記演算部のうちの少なくとも一つの演算部が主演算部（第４のコア２４）となり、残りの複数の演算部が副演算部（第１〜第３のコア２１〜２３）となり、複数の前記副演算部は、前記プログラムに基づいて各々が担当する制御系統の制御に係る演算を行い、前記主演算部は、複数の前記制御系統間での協調制御が必要な場合に、その協調制御に係る演算を実行するとともに、他の前記電子制御装置からの支援要請を受け付けて、その支援に係る演算の少なくとも一部を、前記副演算部ごとの前記プログラムに対応させて、複数の前記副演算部のいずれかに割り当てる構成とする。
【００１０】
これによると、支援される側の電子制御装置の制御内容の変更に伴って、支援する側の電子制御装置のプログラムを修正する際に、主演算部のプログラムを変更するだけで済み、副演算部のプログラムを変更する必要がないため、プログラムの修正を簡便に行うことができる。このため、プログラムメモリの書き換えに要する時間を短縮することができ、また、プログラムの修正作業も簡素化することができる。そして、他装置支援に係る演算の全てを主演算部で行うことも可能であるが、他装置支援に係る演算の少なくとも一部を副演算部に割り当てることで、支援する側の電子制御装置の演算能力を有効に活用することができる。
【００１１】
また、第２の発明は、前記副演算部が担当する制御系統の制御に係る演算のうち、制御周期が短い制御に係る演算を前記副演算部が実行し、制御周期が長い制御に係る演算を前記主演算部が実行する構成とする。
【００１２】
これによると、制御周期が短い制御に係る演算を優先的に副演算部に実行させるため、演算効率を向上させることができる。
【００１３】
また、第３の発明は、前記主演算部は、前記副演算部の負荷を監視し、その負荷に応じて、他の前記電子制御装置の支援に係る演算を前記副演算部に割り当てる構成とする。
【００１４】
これによると、副演算部の負荷が過大となることで副演算部の本来の機能、すなわち自身が担当する制御系統の制御に係る演算に支障を来すことを避けることができる。
【００１５】
また、第４の発明は、前記主演算部は、他の前記電子制御装置の支援に係る演算を前記副演算部がそのまま実行することができない場合に、前記副演算部で実行可能な演算に置き換えて、その演算を前記副演算部に実行させる構成とする。
【００１６】
これによると、副演算部に実行させる演算の制限が緩やかになり、多様な演算を副演算部に割り当てることができる。
【００１７】
また、第５の発明は、前記副演算部は、前記主演算部から割り当てられた演算が終了すると、その演算を実行したときの負荷に関する負荷情報を演算結果とともに前記主演算部に送り、前記主演算部は、前記負荷情報に基づいて、前記副演算部の演算結果の信頼性に関する評価を行い、この評価で演算結果の信頼性が低いものと判断されると、その副演算部の演算結果を廃棄する構成とする。
【００１８】
これによると、副演算部の演算結果の信頼性を高めることができる。この場合、演算結果の信頼性が低いものと判断されると、その副演算部の演算結果を廃棄すると同時に、その副演算部への演算の割り振りを停止するようにするとよい。
【発明の効果】
【００１９】
このように本発明によれば、支援される側の電子制御装置の制御内容の変更に伴って、支援する側の電子制御装置のプログラムを修正する際に、主演算部のプログラムを変更するだけで済み、副演算部のプログラムを変更する必要がないため、プログラムの修正を簡便に行うことができる。このため、プログラムの修正作業の工数を削減することができ、また、プログラムメモリの書き換えに要する時間を短縮することができる。そして、他装置支援に係る演算の全てを主演算部で行うことも可能であるが、他装置支援に係る演算の少なくとも一部を副演算部に割り当てることで、支援する側の電子制御装置の演算能力を有効に活用することができる。
【図面の簡単な説明】
【００２０】
【図１】本実施形態に係る電子制御システムの全体構成図である。
【図２】マルチコアプロセッサ１１の概略構成を示すブロック図である。
【図３】マルチコアプロセッサ１１の各コア２１〜２４で行われる処理を示す機能ブロック図である。
【図４】マルチコアプロセッサ１１で行われる他装置支援処理の手順を示すシーケンス図である。
【図５】エンジン系ＥＣＵである第１のＥＣＵ１に関連する要部の概略構成を示すブロック図である。
【図６】マルチコアプロセッサ１１の第１〜第３のコア２１〜２３で行われる制御の手順を示すフロー図である。
【図７】マルチコアプロセッサ１１の第４のコア２４で行われる制御の手順を示すフロー図である。
【発明を実施するための形態】
【００２１】
以下、本発明の実施の形態を、図面を参照しながら説明する。
【００２２】
図１は、本実施形態に係る電子制御システムの全体構成図である。この電子制御システムは、自動車に搭載されるものであり、複数のＥＣＵ（電子制御装置）１〜４を備えている。ＥＣＵ１〜４は、ＣＡＮ（Controller Area Network）などのネットワークを介して接続されており、ＥＣＵ１〜４間での通信が可能になっている。
【００２３】
ＥＣＵ１〜４は、エンジン系ＥＣＵや車体系ＥＣＵ、例えば、燃料噴射制御ＥＣＵ、エンジン冷却制御ＥＣＵ、トランスミッション制御ＥＣＵ、車両安定化制御ＥＣＵ、電動パワーステアリング制御ＥＣＵ、空調制御ＥＣＵ、運転支援制御ＥＣＵ、およびブレーキ制御ＥＣＵなどである。
【００２４】
なお、図１では、４つのＥＣＵから構成される例を示したが、ＥＣＵの数はこれに限定されるものではない。
【００２５】
この電子制御システムでは、複数のＥＣＵ１〜４のうちのあるＥＣＵ１〜４の負荷が過大となるおそれがある場合に、そのＥＣＵ１〜４の負荷を軽減するため、そのＥＣＵ１〜４の制御を別のＥＣＵ１〜４に支援させる、すなわち負荷が過大となるＥＣＵ１〜４で行われる演算の一部を別のＥＣＵ１〜４に実行させる制御が行われる。
【００２６】
例えば、車両が比較的低車速で交差点を曲がる場合、エンジン系ＥＣＵでは、エンジンがフューエルカット中回転領域の制御となるため、処理負荷が小さくなるが、車体系ＥＣＵでは、タイヤの接地を確保するために、ブレーキ制御と電動パワーステアリング制御と車両安定化制御との協調を強める必要があるため、処理負荷が大きくなり、運転支援制御（衝突回避制御）が行われる場合はさらに処理負荷が大きくなる。そこで、車体系ＥＣＵの制御をエンジン系ＥＣＵが支援する、すなわち車体系ＥＣＵの制御に係る演算の一部をエンジン系ＥＣＵに実行させる。
【００２７】
このように本電子制御システムでは、複数のＥＣＵ１〜４のうちのあるＥＣＵ１〜４の制御を別のＥＣＵ１〜４が支援する制御が行われ、特に、本実施形態では、支援する側の第１のＥＣＵ１が、マルチコアプロセッサ１１を備えている。
【００２８】
次に、図１に示した第１のＥＣＵ１に設けられたマルチコアプロセッサ１１について説明する。図２は、マルチコアプロセッサ１１の概略構成を示すブロック図である。
【００２９】
マルチコアプロセッサ１１は、第１〜第４の４つのコア２１〜２４と、ＲＯＭ（不揮発性メモリ）２５と、ＲＡＭ（揮発性メモリ）２６と、調停回路２７と、を備えている。
【００３０】
第１〜第４のコア２１〜２４は、同一の回路構成を有しており、異なる処理を互いに独立して同時に実行することができる。
【００３１】
ＲＯＭ２５には、各コア２１〜２４で実行させるプログラム（関数、マップおよびルックアップテーブルなどを含む）が格納される。各コア２１〜２４、各自のプログラムのみを読み出して実行する。各コア２１〜２４用のプログラムは互いに独立しており、別のコア２１〜２４用のプログラムにアクセスすることはできない。
【００３２】
ＲＡＭ２６は、各コア２１〜２４に作業エリアを提供するものである。このＲＡＭ２６は、コア２１〜２４のいずれからもアクセスすることができる共有メモリであり、各コア２１〜２４は、別のコア２１〜２４が使用するメモリ領域（作業エリア）にアクセスして、そのデータを読み出すことができる。例えば、第４のコア２４が自身の作業エリアに書き込んだデータを、第１〜第３の各コア２１〜２３が読み出すことができる。調停回路２７は、コア２１〜２４からＲＡＭ２６へのアクセスを調停してアクセスの競合を防止するものである。
【００３３】
次に、図２に示したマルチコアプロセッサ１１の各コア２１〜２４で行われる処理について説明する。図３は、マルチコアプロセッサ１１の各コア２１〜２４で行われる処理を示す機能ブロック図である。
【００３４】
本実施形態では、第１〜第４の４つのコア２１〜２４のうち、第１〜第３の各コア２１〜２３にそれぞれ、第１のＥＣＵ１の制御対象となるデバイスが割り当てられ、第１〜第３の各コア２１〜２３とその各々に割り当てられた制御対象とで１つの制御系統が構成され、第１〜第３の各コア２１〜２３は各々が担当する制御系統の制御を行う。
【００３５】
一方、第４のコア２４は、第１〜第３の各コア２１〜２３により制御される制御系統間での協調制御が必要な場合に、その協調制御を行う。また、第４のコア２４は、他のＥＣＵから支援要請が行われると、その支援要請を受け付ける窓口として機能し、その支援に係る演算を第１〜第３の各コア２１〜２３に割り当てる処理を行う。
【００３６】
そこで、本実施形態では、第１〜第３の各コア２１〜２３を適宜にサブコア（副演算部）と呼称し、第４のコア２４を適宜にメインコア（主演算部）と呼称する。
【００３７】
サブコア２１〜２３では、各々が担当する制御系統の制御に係る各種の演算を実行する自系統制御処理Ｐ１１，Ｐ２１，Ｐ３１が行われる。ＲＯＭ２５（図２参照）には、サブコア２１〜２３用のプログラムとして、自系統制御用プログラム、すなわち各々が担当する制御系統の制御に係る各種の演算を実行するためのプログラムが格納されており、このプログラムをサブコア２１〜２３が読み出して自系統制御処理Ｐ１１，Ｐ２１，Ｐ３１を行う。
【００３８】
一方、メインコア２４では、サブコア２１〜２３の各々が担当する複数の制御系統間での協調制御が必要な場合に、その協調制御に係る演算を実行する協調制御処理Ｐ４１が行われる。ＲＯＭ２５（図２参照）には、メインコア２４用のプログラムとして、協調制御用プログラムが予め格納されており、この協調制御用プログラムをメインコア２４が読み出して協調制御処理Ｐ４１を行う。
【００３９】
また、メインコア２４では、サブコア２１〜２３が担当する制御系統の制御に係る演算のうち、制御周期が長い制御に係る演算を実行する自装置制御処理Ｐ４２が行われる。制御周期が短い制御に係る演算はサブコア２１〜２３で実行される。ＲＯＭ２５（図２参照）には、メインコア２４用のプログラムとして、自装置制御用プログラムが予め格納されており、この自装置制御用プログラムをメインコア２４が読み出して自装置制御処理Ｐ４２を行う。
【００４０】
ここで、メインコア２４で行われる制御周期が長い制御としては、ラジエータの冷却ファンを駆動するファンモータの制御、空調装置のコンプレッサの制御、およびエンジン冷却水を循環させるウォータポンプの制御などがある。
【００４１】
また、メインコア２４では、他のＥＣＵからの支援要請を受け付けて、その支援に係る演算を、メインコア２４自身およびサブコア２１〜２３に行わせて、演算結果を支援先のＥＣＵに送る他装置支援処理Ｐ４３が行われる。ＲＯＭ２５（図２参照）には、メインコア２４用のプログラムとして、他装置支援用プログラムが予め格納されており、この他装置支援用プログラムをメインコア２４が読み出して他装置支援処理Ｐ４３を行う。
【００４２】
本実施形態では、他装置支援に係る演算は、基本的にはメインコア２４が受け持つが、サブコア２１〜２３の負荷の状況に応じて、他装置支援に係る演算をサブコア２１〜２３に割り当てる。
【００４３】
すなわち、メインコア２４では、他のＥＣＵから要求された演算、すなわち他装置支援に係る演算を実行する要求演算処理Ｐ４４が行われる。ＲＯＭ２５（図２参照）には、他装置支援用プログラムとして、他装置支援に係る演算を実行するためのプログラム（関数やマップなどを含む）が予め格納されており、このプログラムをメインコア２４が読み出して要求演算処理Ｐ４４を行う。
【００４４】
また、メインコア２４では、サブコア２１〜２３の演算処理の負荷を監視する負荷監視処理Ｐ４５が行われる。本実施形態では、サブコア２１〜２３の負荷率（使用率）、すなわち、同時に処理可能な処理量のうちどの程度の割合を処理に使用しているかを示す値を取得する。
【００４５】
また、メインコア２４では、負荷監視処理Ｐ４５で取得したサブコア２１〜２３の負荷率に応じて、他装置支援に係る演算を、サブコア２１〜２３のいずれかに割り当てて実行させて、演算結果をサブコア２１〜２３から受け取る演算管理処理Ｐ４６が行われる。このとき、サブコア２１〜２３ごとにＲＯＭ２５に格納された要求演算処理用プログラムに対応するように、他装置支援に係る演算がサブコア２１〜２３に割り当てられる。すなわち、サブコア２１〜２３ごとの要求演算処理用プログラムで実行可能な演算がサブコア２１〜２３に割り当てられる。
【００４６】
本実施形態では、負荷率を所定のしきい値（例えば８０％）と比較して、負荷率がしきい値以下となるサブコア２１〜２３に演算を割り当てる。すべてのサブコア２１〜２３で負荷率がしきい値を超える場合には、他装置支援に係る演算をすべてメインコア２４が実行する。
【００４７】
なお、サブコア２１〜２３の負荷率が低い場合には、他装置支援に係る演算をすべてサブコア２１〜２３に割り当てるようにしてもよい。また、演算をサブコア２１〜２３に割り当てる際には、例えば、負荷率の低い順にサブコア２１〜２３に演算を割り当てたり、最も負荷率が低いサブコア２１〜２３にのみ演算を割り当てたりしてもよい。
【００４８】
一方、サブコア２１〜２３では、メインコア２４から要求された他装置支援に係る演算を実行する要求演算処理Ｐ１２，Ｐ２２，Ｐ３２が行われる。ＲＯＭ２５（図２参照）には、サブコア２１〜２３用のプログラムとして、要求演算処理用プログラムが予め格納されており、この要求演算処理用プログラムをサブコア２１〜２３が読み出して要求演算処理Ｐ１２，Ｐ２２，Ｐ３２を行う。
【００４９】
ここで、要求演算処理用プログラムには、汎用性の高いプログラム（関数、マップおよびルックアップテーブルなどを含む）を採用するようにするとよい。汎用性の高いプログラムとしては、基本的な関数、例えば、二次関数（例えばｙ＝ｘ２＋ｘなど）や、分数関数（例えばｙ＝１／ｘなど）などに関するものである。
【００５０】
また、メインコア２４では、他装置支援に係る演算をサブコア２１〜２３がそのまま実行することができない場合に、サブコア２１〜２３で実行可能な演算に置き換える置換処理Ｐ４７が行われる。
【００５１】
例えば、サブコア２１〜２３でｙ値を求めるためにｙ＝ｆ（ｘ）の演算を行わせる際に、サブコア２１〜２３の自系統制御用プログラムの中に、ｘ値を求める関数がない場合、置換処理Ｐ４７でｘ値を算出して、そのｘ値をサブコア２１〜２３に送ってｙ＝ｆ（ｘ）の演算を行わせる。
【００５２】
また、メインコア２４では、サブコア２１〜２３の演算結果の信頼性に関する評価処理Ｐ４８が行われる。この評価処理Ｐ４８では、演算終了時に演算結果とともにサブコア２１〜２３から送られてきた負荷率を所定のしきい値（例えば８０％）と比較して評価を行い、負荷率が所定のしきい値以上となる場合は、そのサブコア２１〜２３の演算結果は信頼性が低いものと判断して、そのコアの演算結果を廃棄すると同時に、そのサブコア２１〜２３に対する演算の割り振りを停止させる。
【００５３】
次に、図３に示したマルチコアプロセッサ１１で行われる他装置支援処理の手順について説明する。図４は、マルチコアプロセッサ１１で行われる他装置支援処理の手順を示すシーケンス図である。
【００５４】
まず、マルチコアプロセッサ１１のメインコア２４が他のＥＣＵからの支援要請を受け付けると、メインコア２４は、他装置支援に係る演算を開始する。メインコア２４での演算結果は適宜なタイミングで支援先のＥＣＵに送る。
【００５５】
また、メインコア２４が他のＥＣＵからの支援要請を受け付けると、メインコア２４は、サブコア２１〜２３の負荷率を監視し、負荷率がしきい値以下となるサブコア２１〜２３に対して、他装置支援に係る演算を行わせる指令を出力する。このとき、他装置支援に係る演算をサブコア２１〜２３がそのまま実行することができない場合には、サブコア２１〜２３で実行可能な演算に置き換える置換処理を行う。
【００５６】
サブコア２１〜２３では、メインコア２４からの演算の指令を受け取ると、その演算を実行し、その演算が終了すると、演算結果をメインコア２４に送る。このとき、サブコア２１〜２３は演算結果をＲＡＭ２６（図２参照）に書き込み、ＲＡＭ２６の演算結果をメインコア２４が読み出す。
【００５７】
また、演算結果とともに負荷率がサブコア２１〜２３からメインコア２４に送られ、メインコア２４において、演算結果の信頼性に関する評価が行われる。この評価で、演算結果の信頼性が低いものと評価されると、そのサブコア２１〜２３の演算結果を廃棄すると同時に、そのサブコア２１〜２３への演算の割り当てを停止し、演算結果の信頼性が高いものと評価されると、演算結果を支援先のＥＣＵに送る。
【００５８】
また、支援先のＥＣＵ側の返答要求時間に余裕がある場合には、サブコア２１〜２３に割り当てた演算をメインコア２４で再度実行する再演算を行って、サブコア２１〜２３の演算結果に誤りがないかの検証を行う。この検証で演算結果に誤りがない場合には、演算結果を支援先のＥＣＵに送る。
【００５９】
なお、他装置支援に係る演算をサブコア２１〜２３に分担させる、すなわち、サブコア２１〜２３の各々に異なる演算を実行させるようにしてもよいが、サブコア２１〜２３の各々に同一の演算を実行させるようにしてもよい。この場合、サブコア２１〜２３の各々の演算結果が一致すれば、その演算結果を真値として、支援先のＥＣＵに送り、サブコア２１〜２３の各々の演算結果が異なれば、前回の値を真値として、支援先のＥＣＵに送るようにするとよい。
【００６０】
次に、エンジン系ＥＣＵ（ＦＩ−ＥＣＵ）を第１のＥＣＵ１とした例について説明する。図５は、エンジン系ＥＣＵである第１のＥＣＵ１に関連する要部の概略構成を示すブロック図である。
【００６１】
第１のＥＣＵ１は、第１〜第３の入出力部３１〜３３を介して、各種のデバイスを制御する。第１〜第３の入出力部３１〜３３は、マルチコアプロセッサ１１の各サブコア（第１〜第３のコア）２１〜２３に対応して設けられており、内部に駆動回路およびＡ／Ｄ変換回路などが設けられている。第１〜第３の入出力部３１〜３３には各種のセンサ類からの検出信号が入力され、第１〜第３の入出力部３１〜３３から検出値が出力される。また、サブコア２１〜２３からの制御信号が第１〜第３の入出力部３１〜３３に入力され、第１〜第３の入出力部３１〜３３から、各種のアクチュエータ類を駆動する駆動信号が出力される。なお、第１のＥＣＵ１は車室側に配置され、第１〜第３の入出力部３１〜３３はエンジンルームに配置される。
【００６２】
第１の入出力部３１および第１のコア２１は、空気系デバイスの制御に係るものであり、第２の入出力部３２および第２のコア２２は、点火・燃料系のデバイスの制御に係るものであり、第３の入出力部３３および第３のコア２３は、空燃比系の制御に係るものである。
【００６３】
第１の入出力部３１には、吸入空気の流量を制御するスロットルバルブを駆動するＤＢＷモータ４１と、スロットルバルブの開度を検出するスロットル開度センサ４２と、ＥＧＲガスの流量を制御するＥＧＲバルブを駆動するＥＧＲモータ４３と、ＥＧＲバルブの開閉位置を検出するＥＧＲ位置センサ４４と、吸入空気の温度を検出する吸気温センサ４５と、吸入空気の圧力を検出する吸気圧センサ４６と、吸入空気の流量を検出するＡＦＭセンサ４７と、が接続されている。
【００６４】
第１のコア２１では、吸入空気の流量、すなわちスロットルバルブの開度（ＤＢＷモータ４１の動作量）、およびＥＧＲガスの流量、すなわちＥＧＲバルブの開度（ＥＧＲモータ４３の動作量）の制御が行われる。ＤＢＷモータ４１およびＥＧＲモータ４３は、第１の入出力部３１に設けられた駆動回路を介してデューティ制御（ＰＷＭ制御）される。
【００６５】
第２の入出力部３２には、エンジン冷却水の温度を検出する水温センサ４８と、燃焼室内の混合気に点火する点火プラグ４９と、吸気路または燃焼室内に燃料を噴射する燃料噴射弁５０と、クランクシャフトの回転角を検出するクランク角センサ５１と、が接続されている。
【００６６】
第２のコア２２では、点火プラグ４９の点火時期および燃料噴射弁５０の噴射時期の制御が行われる。
【００６７】
第３の入出力部３３には、排気ガス中の空燃比（酸素濃度）を検出するＬＡＦセンサ５２と、ＬＡＦセンサ５２を所定の高温状態に保つＬＡＦヒータ５３と、排気ガス中のＳＯ２濃度を検出するＳＯ２センサ５４と、ＳＯ２センサ５４を所定の高温状態に保つＳＯ２ヒータ５５と、が接続されている。
【００６８】
第３のコア２３では、ＬＡＦセンサ５２およびＳＯ２センサ５４の活性化のためのヒータ制御が行われる。
【００６９】
第４のコア２４では、空燃比に関する協調制御が行われる。すなわち、第１〜第３のコア２１〜２３で行われる制御を協調させ、第３のコア２３で得られる空燃比を目標値に近づけるように、第２のコア２２における点火および燃料噴射の制御と、第１のコア２１における吸入空気量の制御が行われる。また、第４のコア２４では、ＥＧＲガスの応答遅れに関する協調制御が行われる。すなわち、第１，第２のコア２１，２２で行われる制御を協調させ、第１のコア２１で得られるＥＧＲガスの流量に基づいて、第２のコア２２における点火および燃料噴射の制御が行われる。
【００７０】
また、第４のコア２４では、他のＥＣＵからＥＰＳ要求トルクＴeps、ミッション要求トルクＴmisおよび運転者要求トルクＴapなどが入力され、これらに基づいて要求出力Ｒoutputを算出する処理が行われ、要求出力Ｒoutputが第１のコア２１および第２のコア２２に送られる。また、第４のコア２４から、他のＥＣＵに要求出力Ｒoutput、水温値、およびエンジン回転数などが出力される。
【００７１】
次に、図５に示したマルチコアプロセッサ１１の各コア２１〜２４で行われる制御について説明する。図６および図７は、マルチコアプロセッサ１１の各コア２１〜２４で行われる制御の手順を示すフロー図である。
【００７２】
第１のコア２１では、図６に示すように、第４のコア２４で算出された要求出力Ｒoutputを取得し、要求出力Ｒoutputからマップ検索によりスロットルバルブの目標開度（ＤＢＷモータ４１の目標値）を求める（ＳＴ１０１）。次に、スロットルバルブの開度（スロットル開度センサ４２の出力）を監視しながら、ＤＢＷモータ４１ヘの出力デューティと回転方向（±）を算出する（ＳＴ１０２）。次に、要求出力ＲoutputからＥＧＲバルブの目標開度をマップ検索により求める（ＳＴ１０３）。次に、ＥＧＲバルブの開度（ＥＧＲ位置センサ４４の出力）を監視しながら、ＥＧＲモータ４３ヘの出力デューティと回転方向（±）を算出する（ＳＴ１０４）。次に、ＤＢＷモータ４１およびＥＧＲモータ４３のそれぞれにデューティと回転方向（±）を出力する（ＳＴ１０５）。
【００７３】
第２のコア２２では、図６に示すように、第４のコア２４から要求出力Routputを取得し、要求出力Routputと水温センサ４８の検出値とからマップ検索により、点火プラグ４９の点火時期および通電時間と、燃料噴射弁５０の噴射時期および通電時間（燃料噴射時間）とを求める（ＳＴ２０１）。次に、要求出力Ｒoutputと、水温センサ４８による水温検出値とによるマップ検索と、第１のコア２１を介して取得した吸気温度によるマップ検索と、第３のコア２３のＬＡＦフィードバック係数とから、燃料噴射量および吹き終わり角度を求める（ＳＴ２０２）。次に、クランク角センサ５１の出力信号に同期して、点火プラグ４９および燃料噴射弁５０を動作させて、燃料噴射および点火を実施する（ＳＴ２０３）。
【００７４】
第３のコア２３では、図６に示すように、第２のコアから水温情報（水温センサ４８の検出値）を取得し、その水温情報からＳＯ２ヒータ５５の通電デューティをテーブル検索する（ＳＴ３０１）。次に、ＳＯ２センサ５４の活性を判断して第４のコア２４に伝達する（ＳＴ３０２）。次に、ＬＡＦヒータ５３の通電が目標インピーダンスになるように、水温情報からＰＩＤ制御するヒータデューティを算出する（ＳＴ３０３）。次に、ＬＡＦセンサ５２の活性を判断して第４のコア２４に伝達する（ＳＴ３０４）。次に、ＬＡＦヒータ５３およびＳＯ２ヒータ５５のそれぞれにデューティを出力する（ＳＴ３０５）。
【００７５】
第４のコア２４では、図７に示すように、ＥＰＳ要求トルクＴeps、ミッション要求トルクＴmisおよび運転者要求トルクＴapから、車両要求トルクＲＴを算出する（ＳＴ４０１）。次に、車両要求トルクＲＴおよび現在発生トルクＴpreからトルク変化量ΔＴrqを算出する（ＳＴ４０２）。次に、トルク変化量ΔＴrqから要求出力ＲoutputをＰｌＤ制御により算出して、第１のコア２１に送る（ＳＴ４０３）。次に、第３のコア２３から取得した空燃比（ＬＡＦセンサ５２の検出値）から空燃比制御を実施し、燃料噴射量をＰＩＤ制御するために噴射量補正値を算出する（ＳＴ４０４）。次に、ＬＡＦセンサ５２による空燃比を、第１〜第３のコア２１〜２３と協調して制御する（ＳＴ４０５）。
【００７６】
以上のように本実施形態では、ＲＯＭ２５において、サブコア２１〜２３ごとに互いに独立したプログラムを格納し、メインコア２４において、他のＥＣＵからの支援要請を受け付けて、その支援に係る演算の少なくとも一部を、サブコア２１〜２３ごとのプログラムに対応させて、サブコア２１〜２３のいずれかに割り当てるようにしたため、支援される側のＥＣＵの制御内容の変更に伴って、支援する側のＥＣＵのプログラムを修正する際に、メインコア２４のプログラムを変更するだけで済み、サブコア２１〜２３のプログラムを変更する必要がないため、プログラムの修正を簡便に行うことができる。
【００７７】
すなわち、本実施形態では、図３に示したように、他装置支援に関する処理として、メインコア２４では他装置支援処理Ｐ４３が行われ、また、サブコア２１〜２３では要求演算処理Ｐ１２，Ｐ２２，Ｐ３２が行われるが、この要求演算処理Ｐ１２，Ｐ２２，Ｐ３２では、メインコア２４からの演算要求に応じて演算を実行するだけであり、この要求演算処理Ｐ１２，Ｐ２２，Ｐ３２に係る要求演算処理用プログラムは変更する必要がない。
【００７８】
一方、メインコア２４の他装置支援処理Ｐ４３に係る他装置支援用プログラムには、サブコア２１〜２３で実行可能な演算に関する情報と、支援先のＥＣＵから要求される演算に関する情報とが含まれているため、この他装置支援用プログラムは、支援先のＥＣＵのプログラムの変更に伴って変更する必要がある。
【００７９】
そして、メインコア２４およびサブコア２１〜２３のプログラムは互いに独立しているため、メインコア２４のプログラムの変更に伴ってサブコア２１〜２３のプログラムを変更する必要はない。また、要求演算処理Ｐ１２，Ｐ２２，Ｐ３２に係るプログラムとして、汎用性の高いプログラムを用意しておけば、支援される側のＥＣＵの制御内容が変更された場合でも、プログラムを修正することなく利用することができる。
【００８０】
このように本実施形態では、支援される側のＥＣＵの制御内容の変更に伴って、支援する側のＥＣＵのプログラムを修正する際に、メインコア２４のプログラムを変更するだけで済むため、プログラムの修正を簡便に行うことができることから、ＲＯＭ２５のプログラムの書き換えに要する時間を短縮することができ、また、プログラムの修正作業も簡素化することができる。
【００８１】
そして、他装置支援に係る演算の全てをメインコア２４で行うことも可能であるが、他装置支援に係る演算の少なくとも一部をサブコア２１〜２３に割り当てることで、支援する側のＥＣＵの演算能力を有効に活用することができる。
【００８２】
また、本実施形態では、サブコア２１〜２３の各々に、制御対象が別々に割り当てられ、制御系統の制御を互いに独立して行うようにしたため、制御対象となるデバイスが追加されると、それに関係するサブコア２１〜２３と、メインコア２４のプログラムを変更すればよく、他のサブコア２１〜２３のプログラムは変更する必要がないため、プログラムの修正を簡便に行うことができる。
【００８３】
また、本実施形態では、マルチコアプロセッサ１１のコア２１〜２４間で演算を割り振って実行させる構成としており、このマルチコアプロセッサは、内部に共有メモリや調停回路を有し、コア間でのデータのやり取りを高速に行うことができることから、コア間で演算を割り当てて実行させる処理に遅延がほとんど発生しないため、安定した制御を実現することができる。
【００８４】
また、本実施形態では、サブコア２１〜２３が担当する制御系統の制御に係る演算のうち、制御周期が短い制御に係る演算をサブコア２１〜２３が実行し、制御周期が長い制御に係る演算をメインコア２４が実行するようにしており、制御周期が短い制御に係る演算を優先的にサブコア２１〜２３に実行させるため、演算効率を向上させることができる。
【００８５】
また、本実施形態では、メインコア２４において、サブコア２１〜２３の負荷を監視し、その負荷に応じて、他装置支援に係る演算をサブコア２１〜２３に割り当てるようにしたため、サブコア２１〜２３の負荷が過大となることでサブコア２１〜２３の本来の機能、すなわち自身が担当する制御系統の制御に係る演算に支障を来すことを避けることができる。
【００８６】
また、本実施形態では、メインコア２４において、他装置支援に係る演算をサブコア２１〜２３がそのまま実行することができない場合に、サブコア２１〜２３で実行可能な演算に置き換えて、その演算をサブコア２１〜２３に実行させるようにしたため、サブコア２１〜２３に実行させる演算の制限が緩やかになり、多様な演算をサブコア２１〜２３に割り当てることができる。
【００８７】
また、本実施形態では、サブコア２１〜２３において、メインコア２４から割り当てられた演算が終了すると、その演算を実行したときの負荷に関する負荷情報を演算結果とともにメインコア２４に送り、メインコア２４において、負荷情報に基づいて、サブコア２１〜２３の演算結果の信頼性に関する評価を行い、この評価で演算結果の信頼性が低いものと判断されると、そのサブコア２１〜２３の演算結果を廃棄するようにしたため、サブコア２１〜２３の演算結果の信頼性を高めることができる。
【００８８】
以上、本発明を特定の実施形態に基づいて説明したが、これらの実施形態はあくまでも例示であって、本発明はこれらの実施形態によって限定されるものではない。また、前記の各実施形態に示した本発明に係る電子制御システムの各構成要素は、必ずしも全てが必須ではなく、少なくとも本発明の範囲を逸脱しない限りにおいて適宜取捨選択することが可能である。
【００８９】
例えば、本実施形態では、演算を並行して実行可能な複数のコアを有するマルチコアプロセッサの例について説明したが、本発明はこれに限定されるものではなく、演算を並行して実行可能な複数の演算部として複数のプロセッサを有するマルチプロセッサによる構成も可能である。もっとも、安定した制御を実現するには、演算部間でのデータのやり取りを高速に行う必要があり、この観点からマルチコアプロセッサが望ましい。
【００９０】
また、本実施形態では、マルチコアプロセッサを４つのコアを備えた構成としたが、このコアの数は４つに限定されるものではなく、コアを３つあるいは５つ以上備えた構成も可能である。
【００９１】
また、本実施形態では、図２に示したように、要求演算処理用プログラムをプログラムメモリに格納して、その要求演算処理用プログラムを利用してサブコアが他装置支援に係る演算を実行するようにしたが、自系統制御用プログラム、すなわち自身が担当する制御系統の制御に係る演算を実行するためのプログラムの一部を構成するサブプログラム、例えば、制御系統の制御において所要の制御値を算出するメイン関数のサブ関数を利用して、他装置支援に係る演算を実行するようにしてもよい。このようにすると、サブコア用のプログラムを格納するメモリ領域が増大することを避けることができる。
【符号の説明】
【００９２】
１〜４  ＥＣＵ（電子制御装置）
１１  マルチコアプロセッサ
２１〜２３  第１〜第３のコア（サブコア、副演算部）
２４  第４のコア（メインコア、主演算部）
２５  ＲＯＭ（プログラム格納部）
２６  ＲＡＭ
２７  調停回路
３１〜３３  入出力部
【図１】
2015229467.tif 000003
【図２】
2015229467.tif 000004
【図３】
2015229467.tif 000005
【図４】
2015229467.tif 000006
【図５】
2015229467.tif 000007
【図６】
2015229467.tif 000008
【図７】
2015229467.tif 000009