(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-05
(45)【発行日】2023-12-13
(54)【発明の名称】自動車用電子制御装置
(51)【国際特許分類】
G06F 11/20 20060101AFI20231206BHJP
B60R 16/02 20060101ALI20231206BHJP
G06F 15/78 20060101ALI20231206BHJP
G06F 15/177 20060101ALI20231206BHJP
【FI】
G06F11/20 623
B60R16/02 660G
G06F15/78 516
G06F15/177 Z
(21)【出願番号】P 2019228821
(22)【出願日】2019-12-19
【審査請求日】2022-06-13
(73)【特許権者】
【識別番号】509186579
【氏名又は名称】日立Astemo株式会社
(74)【代理人】
【識別番号】100129425
【氏名又は名称】小川 護晃
(74)【代理人】
【氏名又は名称】西山 春之
(74)【代理人】
【識別番号】100168642
【氏名又は名称】関谷 充司
(72)【発明者】
【氏名】富沢 寛
(72)【発明者】
【氏名】手島 大介
【審査官】坂東 博司
(56)【参考文献】
【文献】特開平03-189356(JP,A)
【文献】特開2011-065528(JP,A)
【文献】特開2016-096414(JP,A)
【文献】特開2010-020621(JP,A)
【文献】特開2000-207374(JP,A)
【文献】特開2008-305317(JP,A)
【文献】特開2017-068314(JP,A)
【文献】特開2013-125357(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/20
B60R 16/02
G06F 15/78
G06F 15/177
(57)【特許請求の範囲】
【請求項1】
マルチコアプロセッサを搭載した自動車用電子制御装置であって、
前記マルチコアプロセッサの各プロセッサコアに、当該プロセッサコアに特有の処理と他のプロセッサコアに特有の少なくとも1つの処理とを割り付け、前記マルチコアプロセッサが正常であれば、前記マルチコアプロセッサの各プロセッサコアが当該プロセッサコアに特有の処理を夫々実行し、前記マルチコアプロセッサの一部のプロセッサコアに故障が発生していれば、当該故障が発生したプロセッサコアに特有の処理を他のプロセッサコアが代行
し、
前記プロセッサコアは、他のプロセッサコアの処理を代行している代行処理数が所定処理数以上である場合、実行中又は実行する前記処理を制限する、
自動車用電子制御装置。
【請求項2】
前記プロセッサコアは、前記処理を代行するとリソースの使用率が所定値以上になる場合、実行中又は実行する前記処理を制限する、
請求項1に記載の自動車用電子制御装置。
【請求項3】
前記プロセッサコアは、他のプロセッサコアを代行している代行コア数が所定コア数以上である場合、実行中又は実行する前記処理を制限する、
請求項1又は請求項2に記載の自動車用電子制御装置。
【請求項4】
前記処理の制限は、各処理に優先順位を予め設定しておき、前記優先順位が最下位の処理から順次停止することで行われる、
請求項1~請求項3のいずれか1つに記載の自動車用電子制御装置。
【請求項5】
前記処理の制限は、エンジン回転数を所定閾値に制限することで行われる、
請求項1~請求項3のいずれか1つに記載の自動車用電子制御装置。
【請求項6】
自動車用機能安全規格のASILに関連する処理とQMに関連する処理とが、異なるプロセッサコアに割り付けられた、
請求項1~
請求項5のいずれか1つに記載の自動車用電子制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マルチコアプロセッサを搭載した自動車用電子制御装置に関する。
【背景技術】
【0002】
自動車のエンジン、自動変速機及びブレーキなどを電子制御するため、特開2009-215944号公報(特許文献1)に記載されるように、1つのパッケージに複数のプロセッサコアが封入されたマルチコアプロセッサを搭載した自動車用電子制御装置が提案されている。このような自動車用電子制御装置では、制御対象を制御するアプリケーションプログラムを機能(処理)ごとに分割し、複数のプロセッサコアに機能を分散して割り付けることで、処理負荷を抑制しつつ、並列処理によって高速処理を実現している。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、マルチコアプロセッサの一部のプロセッサコアが故障すると、そのプロセッサコアに割り付けられていた機能が実行できなくなり、例えば、最低限の機能を維持するリンプホーム機能によって、自動車に搭載された機器を制御しなければならなかった。リンプホーム機能によって自動車の搭載機器を制御すると、自動車のドライバビリティが低下し、ドライバの意図とおりの加速、定常及び減速走行ができなくなってしまう。
【0005】
そこで、本発明は、マルチコアプロセッサの一部のプロセッサコアに故障が発生しても、そこに割り付けられた処理を他のプロセッサコアで実行可能とした、自動車用電子制御装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
このため、マルチコアプロセッサを搭載した自動車用電子制御装置において、マルチコアプロセッサの各プロセッサコアに、プロセッサコアに特有の処理と他のプロセッサコアに特有の少なくとも1つの処理とを割り付け、マルチコアプロセッサが正常であれば、マルチコアプロセッサの各プロセッサコアがこれに特有の処理を夫々実行する。また、自動車用電子制御装置において、マルチコアプロセッサの一部のプロセッサコアに故障が発生していれば、故障が発生したプロセッサコアに特有の処理を他のプロセッサコアが代行する。このとき、プロセッサコアは、他のプロセッサコアの処理を代行している代行処理数が所定処理数以上である場合、実行中又は実行する前記処理を制限する。
【発明の効果】
【0007】
本発明によれば、マルチコアプロセッサの一部のプロセッサコアに故障が発生しても、そこに割り付けられた処理を他のプロセッサコアで実行可能であるため、例えば、自動車のドライバビリティの低下を抑制することができる。
【図面の簡単な説明】
【0008】
【
図1】自動車に搭載された電子制御システムの一例を示す概要図である。
【
図2】電子制御装置の一例を示す内部構造図である。
【
図3】正常時のデュアルコアプロセッサの状態を示す説明図である。
【
図4】故障時のデュアルコアプロセッサの状態を示す説明図である。
【
図5】プロセッサコアの異常を相互監視する第1の監視方法の説明図である。
【
図6】プロセッサコアの異常を相互監視する第2の監視方法の説明図である。
【
図7】プロセッサコアの異常を相互監視する第3の監視方法の説明図である。
【
図8】プロセッサコアの異常を相互監視する第4の監視方法の説明図である。
【
図9】正常時のクアッドコアプロセッサの状態を示す説明図である。
【
図10】1つのプロセッサコアに故障が発生したときのクアッドコアプロセッサの状態を示す説明図である。
【
図11】2つのプロセッサコアに故障が発生したときのクアッドコアプロセッサの状態を示す説明図である。
【
図12】代行処理の制限が不要である一例の説明図である。
【
図13】代行処理の制限が必要となる一例の説明図である。
【
図14】代行処理の制限が不要である他の例の説明図である。
【
図15】代行処理の制限が必要となる他の例の説明図である。
【
図16】代行処理の制限が必要となる他の例の説明図である。
【
図17】処理の実行に制限をかける第1の方法の説明図である。
【
図18】処理の実行に制限をかける第2の方法の説明図である。
【
図19】正常時のペンタコアプロセッサの状態を示す説明図である。
【
図20】1つのプロセッサコアに故障が発生したときのペンタコアプロセッサの状態を示す説明図である。
【
図21】2つのプロセッサコアに故障が発生したときのペンタコアプロセッサの状態を示す説明図である。
【
図22】3つのプロセッサコアに故障が発生したときのペンタコアプロセッサの状態を示す説明図である。
【
図23】自動車用機能安全規格が適用された、正常時のオクタコアプロセッサの状態を示す説明図である。
【
図24】自動車用機能安全規格が適用された、ASIL領域の1つのプロセッサコアに故障が発生したときのオクタコアプロセッサの状態を示す説明図である。
【
図25】自動車用機能安全規格が適用された、QM領域の1つのプロセッサコアに更に故障が発生したときのオクタコアプロセッサの状態を示す説明図である。
【
図26】自動車用機能安全規格が適用された、ASIL領域の1つのプロセッサコアに更に故障が発生したときのオクタコアプロセッサの状態を示す説明図である。
【
図27】自動車用機能安全規格が適用された、ASIL領域の1つのプロセッサコアに更に故障が発生したときのオクタコアプロセッサの状態を示す説明図である。
【
図28】自動車用機能安全規格が適用された、ASIL領域のすべてのプロセッサコアに故障が発生したときのオクタコアプロセッサの状態を示す説明図である。
【発明を実施するための形態】
【0009】
以下、添付された図面を参照し、本発明を実施するための実施形態について詳述する。
図1は、自動車に搭載された電子制御システムの一例を示している。
【0010】
トラック、バス、乗用車及び建設機械などの自動車100は、燃料噴射装置、点火装置、自動変速機、ABS(Antilock Braking System)、アダプティブクルーズコントロールシステムなどを電子制御する、複数の電子制御装置(ECU)200を搭載している。各電子制御装置200は、例えば、CAN(Controller Area Network)やFlaxRay(登録商標)などの車載ネットワーク300を介して、任意のデータを交換可能に接続されている。そして、各電子制御装置200は、単独で、又は他の電子制御装置200と協同して制御対象を電子制御する。なお、図示の自動車100は、5つの電子制御装置200を搭載しているが、その数は5つに限らず、任意の個数とすることができる。
【0011】
電子制御装置200は、
図2に示すように、マルチコアプロセッサ220を搭載している。マルチコアプロセッサ220は、2つのプロセッサコア220Aと、2つのプロセッサコア220Aが共有する共有メモリ220Bと、を有している。ここで、共有メモリ220Bとしては、アクセス速度に優れたキャッシュメモリとすることができる。また、マルチコアプロセッサ220は、2つのプロセッサコア220Aを有するデュアルコアプロセッサに限らず、3つ以上のプロセッサコア220Aを有していてもよい。なお、以下の説明においては、プロセッサコア220AをコアN(N:1以上の自然数)と称することとする。
【0012】
最初に、
図3及び
図4を参照し、本実施形態の概要について説明する。
マルチコアプロセッサ220のコア1及び2には、
図3に示すように、コア1に特有の処理1,3及び5と、コア2に特有の処理2及び4と、が夫々割り付けられている。即ち、コア1及び2には、マルチコアプロセッサ220として実行するすべての処理1~5が夫々割り付けられている。従って、コア1及び2は、処理1~5のうち任意の処理を実行することができる。図示の例では、コア1及び2に故障が発生していない正常状態において、コア1が処理1,3及び5を実行し、コア2が処理2及び4を分散して実行する。そして、コア1及び2は、後述する監視方法によって異常を相互監視し、監視先に故障が発生したか否かを検知する。
【0013】
コア1がコア2に故障が発生したことを検知すると、
図4に示すように、コア1は、コア2に割り付けられていた処理2及び4を代行、要するに、コア1に特有の処理1,3及び5に加えて、コア2に特有の処理2及び4を実行する。このようにすれば、電子制御装置200において、マルチコアプロセッサ220の一部のプロセッサコア220Aに故障が発生しても、そこに割り付けられていた処理を他のプロセッサコア220Aが代行して実行するため、例えば、自動車100のドライバビリティの低下を抑制することができる。
【0014】
図5は、コア1及び2が異常を相互監視する、第1の監視方法を示している。
マルチコアプロセッサ220の共有メモリ220Bには、コア1及び2に特有のカウンタCNT1及びCNT2が夫々設けられている。コア1及び2は、定周期でカウンタCNT1及びCNT2を夫々カウントアップし、そのカウント値が所定値に達すると、カウンタCNT1及びCNT2をリセットする。また、コア1及び2は、監視先のコアに特有のカウンタが変化しているか否か、即ち、コア1がカウンタCNT2の変化を監視し、コア2がカウンタCNT1の変化を監視する。そして、コア1及び2は、監視先のカウンタが停止して変化していなければ、そのコアに故障が発生していると診断する。このようにすれば、ADコンバータ、タイマなどの周辺機器を使用しなくても故障発生を検出することができ、電子制御装置200のリソースを節約することができる。
【0015】
図6は、コア1及び2が異常を相互監視する、第2の監視方法を示している。
コア1及び2は、マルチコアプロセッサ220のタイマ出力機能を使用して、定周期のパルスPLS1及びPLS2を夫々出力する。また、コア1及び2は、マルチコアプロセッサ220のタイマ入力機能を使用して監視先のパルスの周期、即ち、コア1がパルスPLS2の周期を計測し、コア2がパルスPLS1の周期を計測する。そして、コア1及び2は、監視先のコアのパルス出力が停止していれば、そのコアが故障していると診断し、監視先のコアのパルス周期が異常であれば、コアは正常であるがタイマ機能が故障していると診断する。このようにすれば、電子制御装置200のリソースとしてタイマ機能を使用するが、コアの故障だけでなく、タイマ機能の故障も検出することができる。
【0016】
図7は、コア1及び2が異常を相互監視する、第3の監視方法を示している。
コア1及び2は、ポート出力機能を使用して、アナログ出力ポートから定周期で変化するON/OFF信号(例えば、5V信号/0V信号)を出力する。また、コア1及び2は、AD機能(アナログデジタル変換機能)を使用して、アナログ出力ポートから出力されたON/OFF信号の電圧レベルを計測する。そして、コア1及び2は、監視先のコアのON/OFF信号が停止して変化していなければ、そのコアが故障していると診断し、監視先のコアのON/OFF信号の電圧レベルが異常(例えば、3.5V/0V)であれば、コアは正常であるがAD機能が故障していると診断する。このようにすれば、電子制御装置200のリソースとしてポート出力機能及びAD機能を使用するが、コアの故障だけでなく、AD機能の故障も検出することができる。
【0017】
図8は、コア1及び2が異常を相互監視する、第4の監視方法を示している。
コア1及び2は、SCI(Serial Communication Interface)、SPI(Serial Peripheral Interface)又はCANなどの通信機能を使用して、所定のデータを相互に送信する。また、コア1及び2は、通信機能を使用して、監視先のコアが送信したデータを受信する。そして、コア1及び2は、監視先のコアからデータが送信されておらず通信が停止していれば、そのコアが故障していると診断し、監視先のコアから送信されたデータが異常であれば、コアは正常であるが通信機能が故障していると診断する。このようにすれば、電子制御装置200のリソースとして通信機能を使用するが、コアの故障だけでなく、通信機能の故障も検出することができる。
【0018】
マルチコアプロセッサ220は、デュアルコアプロセッサに限らず、
図9~
図11に示すような、4つのプロセッサコア220Aを有するクアッドコアプロセッサであってもよい。
【0019】
この場合、マルチコアプロセッサ220のコア1~コア4には、
図9に示すように、コア1に特有のコア1処理、コア2に特有のコア2処理、コア3に特有のコア3処理、及びコア4に特有のコア4処理が夫々割り付けられている。即ち、コア1~4には、マルチコアプロセッサ220として実行するすべての処理(コア1処理、コア2処理、コア3処理及びコア4処理)が夫々割り付けられている。従って、コア1~4は、コア1処理、コア2処理、コア3処理及びコア4処理のうち任意の処理を実行することができる。図示の例では、コア1~4に故障が発生していない正常状態において、コア1がコア1処理を実行し、コア2がコア2処理を実行し、コア3がコア3処理を実行し、コア4がコア4処理を分散して実行する。そして、コア1~4は、順繰りに他のコアの異常を監視、即ち、コア1がコア2の異常を監視し、コア2がコア3の異常を監視し、コア3がコア4の異常を監視し、コア4がコア1の異常を監視する。
【0020】
コア2がコア3に故障が発生したことを検知すると、
図10に示すように、故障が発生したコア3を監視していたコア2は、コア3に割り付けられていたコア3処理を代行、要するに、コア2に特有のコア2処理に加えて、コア3に特有のコア3処理を実行する。また、コア3に故障が発生してコア4の異常が監視できなくなり、かつコア3の異常を監視する必要がなくなったため、コア2は、コア3に代えてコア4の異常を監視するように監視経路が再構成される。
【0021】
その後、コア2がコア4に故障が発生したことを検知すると、
図11に示すように、故障が発生したコア4を監視していたコア2は、コア4に割り付けられていたコア4処理を代行、要するに、コア2に特有のコア2処理、及びコア3に特有のコア3処理に加えて、コア4に割り付けられていたコア4処理を実行する。また、コア4に故障が発生してコア1の異常が監視できなくなり、かつコア4の異常を監視する必要がなくなったため、コア2は、コア4に代えてコア1の異常を監視するように監視経路が再構成される。
【0022】
このようにすれば、マルチコアプロセッサ220の一部のプロセッサコア220Aに故障が発生した場合、その異常を監視していた他のプロセッサコア220Aが、故障が発生したプロセッサコア220Aに割り付けられていた処理を代行する。また、プロセッサコア220Aの故障監視経路が再構成され、故障が発生していないすべてのプロセッサコア220Aの異常が引き続いて監視される。従って、本実施形態は、デュアルコアプロセッサに限らず、クアッドコアプロセッサなど、3つ以上のプロセッサコア220Aを有するマルチコアプロセッサ220にも適用可能であると共に、複数のプロセッサコア220Aが故障しても対応可能であることを理解できるであろう。なお、プロセッサコア220Aの故障監視経路は、上記の経路に限らず、所定規則に則って構成及び再構成されてもよい。
【0023】
ところで、マルチコアプロセッサ220の特定のプロセッサコア220Aが、本来割り付けられていた処理に加え、他のプロセッサコア220Aに割り付けられていた処理を代行すると、リソースの使用率が上昇して、制御が破綻してしまうおそれがある。そこで、以下で詳細を説明するように、処理を代行するとき、制御が破綻しないように、コアが実行する処理に制限をかけるようにしてもよい。
【0024】
ここで、デュアルコアプロセッサのコア1及び2に故障が発生していない正常状態において、
図12に示すように、コア1がこれに特有の処理1,3及び5を実行し、コア2がこれに特有の処理2及び4を実行することを想定する。この状態において、例えば、コア1のリソースの使用率が70%であり、コア2のリソースの使用率が20%であると仮定する。また、実行する処理に制限をかける条件として、例えば、コアのリソースの使用率が90%以上とする。なお、制限をかける上記条件は一例であって、この値に限られないことに留意されたし(以下同様)。
【0025】
コア2に故障が発生すると、
図13に示すように、コア1は、コア1に特有の処理1,3及び5に加え、コア2に特有の処理2及び4を代行する。その結果、コア1のリソースの使用率が70%+20%=90%となり、このままでは制御に破綻をきたしてしまい、コア1が実行する処理に制限をかける必要がある。
【0026】
プロセッサコア220Aが実行する処理に制限をかける条件として、プロセッサコア220Aのリソースの使用率に限らず、代行コア数、即ち、他のプロセッサコア220Aを代行している個数でもあってもよく、またこれを更に適用してもよい。
【0027】
図14~
図16は、マルチコアプロセッサ220が3つのプロセッサコア220Aを有するトリプルコアプロセッサを使用し、プロセッサコア220Aが実行する処理に制限をかける他の例を示している。ここでは、コア1~3に故障が発生していない正常状態において、
図14に示すように、コア1~3には、コア1に特有の処理1,3及び5、並びにコア2に特有の処理2及び4が夫々割り付けられているものとする。また、コア3は、コア1及びコア2の故障検知並びに代行制御を実行するものとする。なお、実行する処理に制限をかける条件として、例えば、代行コア数を2以上とするが、これに限られない。
【0028】
コア3がコア2に故障が発生したことを検知すると、
図15に示すように、コア3は、コア2に特有の処理2及び4を代行する。この場合、コア3の代行コア数は1となり、制限をかける条件が成立しないため、制限なしで処理2及び4を実行する。その後、コア3がコア1に故障が発生したことを検知すると、
図16に示すように、コア3は、コア2に特有の処理2及び4に加え、コア1に特有の処理1,3及び5を代行する。この場合、コア3の代行コア数は2となり、制限をかける条件が成立する。
【0029】
処理の実行に制限をかける第1の方法としては、
図17に示すように、各処理について優先順位を予め設定しておき、優先順位が最下位の処理から順次停止して、リソースの使用率を低減してもよい。図示の例は、リソースの使用率が90%以上になったコアNについて、どのように処理負荷を低減するのかを示している。リソースの使用率が、例えば、95%になると、処理1~100のうち優先順位が最下位の処理100を停止する。処理100を停止すると、リソースの使用率が95%から93%へと低下するが、依然としてリソースの使用率が90%以上であるので、処理1~99のうち優先順位が最下位の処理99を更に停止する。処理99を停止すると、リソースの使用率が93%から91%へと低下するが、依然としてリソースの使用率が90%以上であるため、処理1~98のうち優先順位が最下位の処理98を更に停止する。このようにすると、リソースの使用率が91%から88%へと低下し、実行する処理に制限をかける条件が成立しなくなる。なお、実行を停止した処理98~100については、例えば、必要に応じて、機能を縮小したリンプホーム制御などを実行すればよい。
【0030】
処理の実行に制限をかける第2の方法としては、
図18に示すようにしてもよい。即ち、自動車100の制御において、エンジン回転数が高くなるにつれて、回転数同期で発生する割り込み処理が増加し、その結果としてリソースの使用率が上昇する。このため、リソースの使用率が制限閾値(所定閾値)に達すると、例えば、燃料噴射量の低減、スロットルバルブの開度低減などを介して、エンジン回転数を制限してもよい。この場合、図示のように、エンジン回転数を制限閾値に制限することで、リソースの使用率を制限閾値未満にすることができる。
【0031】
マルチコアプロセッサ220は、デュアルコアプロセッサ、トリプルコアプロセッサ、クアッドコアプロセッサに限らず、
図19~
図22に示すような、5つのプロセッサコア220Aを有するペンタコアプロセッサであってもよい。
【0032】
この場合、
図19に示すように、マルチコアプロセッサ220の1つのプロセッサコア220Aをメインコアとし、残りの4つのプロセッサコア220Aをサブコア1~4として区別する。そして、メインコアは、サブコア1~4の故障を検知すると共にその代行を制御する処理を行う。このため、メインコアには、故障検知及び代行制御を行う処理が割り付けられている。また、メインコア及びサブコア1~4には、サブコア1に特有のコア1処理、サブコア2に特有のコア処理2、サブコア3に特有のコア処理3、及びサブコア4に特有のコア処理4が夫々割り付けられている。そして、サブコア1~4に故障が発生していない正常状態においては、メインコアがサブコア1~4の異常を監視し、サブコア1がコア処理1を実行し、サブコア2がコア処理2を実行し、サブコア3がコア処理3を実行し、かつサブコア4がコア処理4を実行している。
【0033】
メインコアがサブコア2に故障が発生したことを検知すると、
図20に示すように、メインコアは、故障が発生していないサブコア1,3及び4のうち、例えば、コア番号が最も小さいサブコア1に対し、サブコア2に特有のコア処理2を代行させる。その後、メインコアがサブコア3に故障が発生したことを更に検知すると、
図21に示すように、メインコアは、代行処理を行っていないサブコア4に対して、サブコア3に特有のコア処理3を代行させる。さらにその後、メインコアがサブコア1に故障が発生したことを更に検知すると、メインコアは、サブコア4が代行処理を行っていることから、
図22に示すように、サブコア1が実行していたコア処理1及びコア処理2を自分自身で代行する。なお、代行処理を実行するサブコア1~4は、代行処理を行っているか否かに代えて、例えば、リソースの使用率が最も低いサブコアとすることもできる。
【0034】
ところで、自動車の電子制御装置における機能安全のソフトウエア設計のコンセプトとして、アプリケーションプログラムを構成する複数のモジュールの機能安全に関し、自動車用機能安全規格(ISO26262)を適用する必要性がある。この場合、マルチコアプロセッサ220の一部のプロセッサコア220AがASIL(Automotive Safety Integrity Level)領域として使用され、残りのプロセッサコア220Aが機能安全の適用が不要なQM(Quality Management)領域として使用される。このようにすれば、ASIL領域とQM領域とが異なるプロセッサコア220Aに割り当てられることから、例えば、QM領域がASIL領域を侵害しないことを保証し易くなる。そして、メモリプロテクションの機能でアクセス制限を行う場合、ASILとして使用するコアのみASIL領域へのアクセスを許可すればよい。
【0035】
図23~
図28は、マルチコアプロセッサ220が8つのプロセッサコア220A(コア1~8)を有するオクタコアプロセッサを使用し、自動車用機能安全規格を適用した一例を示している。図示の例では、コア1~8に故障が発生していない正常状態において、コア1~4がASIL領域として使用され、ここにASIL処理が割り付けられ、コア5~8がQM領域として使用され、ここにQM処理が割り付けられているが、この限りではない。
【0036】
ASIL処理が割り付けられたコア1~4には、ASILアクセス制限を実行するアクセス制限が割り付けられ、QM処理が割り付けられたコア5~8には、QMアクセス制限を実行するアクセス制限が割り付けられている。また、コア1~8には、代行制御を実行する処理、相互監視により他のコアの故障を検知する処理、コア1~4に特有のASIL処理1~4、コア5~8に特有のQM処理1~4が夫々割り付けられている。ここで、コア1~4にQM処理1~4が割り付けられ、コア5~8にASIL処理1~4が割り付けられている理由は、例えば、コア1~4又は5~8のすべてに故障が発生したとき、コア5~8又は1~4が代行処理を実行できようにするためである。そして、通常状態では、
図23に示すように、コア1が代行制御を実行し、コア1~8が故障検知及び特有のASIL処理又はQM処理を実行している。
【0037】
ASIL領域のコア3に故障が発生したことが検知されると、
図24に示すように、代行制御を実行しているコア1は、故障が発生していないASIL領域のコア1,2及び4のうちリソースの使用率が最も低いコア4に対して、コア3に特有のASIL処理3を代行させる。なお、故障が発生したか否かは、先の第1~第4の監視方法のいずれかを使用して検出することができる。
【0038】
これに続いて、QM領域のコア5に故障が発生したことが検知されると、
図25に示すように、代行制御を実行しているコア1は、故障が発生していないQM領域のコア6~8のうちリソースの使用率が最も低いコア6に対して、コア5に特有のQM処理1を代行させる。その後、ASIL領域のコア1に故障が発生したことが更に検知されると、
図26に示すように、例えば、コア番号が最も小さいコア2が代行制御を代行し、故障が発生していないASIL領域のコア2又は3のうちリソースの使用率が最も低いコア2が、コア1に特有のASIL処理1を代行する。
【0039】
さらに、ASIL領域のコア2に故障が発生したことが検知されると、
図27に示すように、ASIL領域のコア4は、故障が発生したコア2に代わって代行制御を実行すると共に、コア2が実行していたASIL処理1及び2を代行する。このとき、コア4におけるリソースの使用率が制限閾値に達していないが、リソースの使用率が制限閾値以上になった場合、予め設定された優先順位に応じて優先順位が最下位の処理から順次停止するか、エンジン回転数を制限するようにしてもよい。なお、リソースの使用率による制限は、代行制御を行うときに実行するのが好ましい。
【0040】
この状態においてASIL領域のコア4に更に故障が発生すると、ASIL処理1~4を実行するASIL領域のコアがなくなってしまう。この場合、
図28に示すように、QM領域のコア5~8のうちリソースの使用率が最も低いコア7にASIL領域を割り当て、ASIL処理1~4を継続して実行できるようにする。このとき、コア7が実行していたQM処理3は、QM領域の故障が発生していないコア6及び8のうち、リソースの使用率が小さいコア6に代行させる。
【0041】
従って、複数のプロセッサコア220Aについて、その一部をASIL領域として使用し、残りの一部をQM領域として使用しても、多様な故障に対して対応することができる。また、ASIL領域とQM領域とが異なるプロセッサコア220Aに割り当てられているため、故障が発生してもアクセス制限を変更する必要がなく、プログラム構造が複雑となることを抑制できる。
【0042】
なお、当業者であれば、様々な上記実施形態の技術的思想について、その一部を省略したり、その一部を適宜組み合わせたり、その一部を周知技術に置換したりすることで、新たな実施形態を生み出せることを容易に理解できるであろう。
【0043】
例えば、マルチコアプロセッサ220が3つ以上のプロセッサコア220Aを有する場合、その一部のプロセッサコア220Aについて上記実施形態を適用し、残りのプロセッサコア220Aを従来のように使用してもよい。
【0044】
また、プロセッサコア220Aが実行する処理に制限をかける条件として、リソースの使用率、代行コア数に限らず、代行処理数、即ち、他のプロセッサコア220Aの処理を代行している個数であってもよく、またこれを更に適用してもよい。この場合、故障が発生したプロセッサコア220Aが実行していた各処理は、1つのプロセッサコア220Aが代行してもよく、また、複数のプロセッサコア220Aが協働して代行してもよい。
【符号の説明】
【0045】
100 自動車
200 電子制御装置
220 マルチコアプロセッサ
220A プロセッサコア