(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024076683
(43)【公開日】2024-06-06
(54)【発明の名称】電子制御装置
(51)【国際特許分類】
G06F 11/07 20060101AFI20240530BHJP
G06F 9/455 20180101ALI20240530BHJP
G06F 11/20 20060101ALI20240530BHJP
【FI】
G06F11/07 196
G06F9/455 150
G06F11/07 140C
G06F11/20 623
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022188363
(22)【出願日】2022-11-25
(71)【出願人】
【識別番号】000004260
【氏名又は名称】株式会社デンソー
(74)【代理人】
【識別番号】110000578
【氏名又は名称】名古屋国際弁理士法人
(72)【発明者】
【氏名】小森亮太
【テーマコード(参考)】
5B034
5B042
【Fターム(参考)】
5B034BB03
5B034CC01
5B034DD05
5B042GA22
5B042KK17
5B042KK20
(57)【要約】
【課題】異常になった仮想マシンの処理を他の仮想マシンが適切に代行する技術を提供する。
【解決手段】電子制御装置2は、ハイパーバイザ100と複数の仮想マシン110~160とを備える。複数の仮想マシンには、対象仮想120マシンと代行仮想マシン160とが設定されている。ハイパーバイザの判定部104は、対象仮想マシンが正常か異常かを判定する。ハイパーバイザのコピー部106は、対象仮想マシンが正常の場合、対象仮想マシンに割り当てられた揮発性メモリ30の記憶領域に記憶されているデータを、代行仮想マシンに割り当てられた揮発性メモリの記憶領域にコピーする。代行仮想マシンの代行部106は、対象仮想マシンが異常の場合、代行仮想マシンに割り当てられた揮発性メモリの記憶領域にコピーされたデータに基づき、対象仮想マシンの処理を代行する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
ハイパーバイザ(100)と、前記ハイパーバイザにより動作を制御される複数の仮想マシン(110~170、)と、を備える電子制御装置(2~6)であって、
前記複数の仮想マシンには、正常か異常かを監視される監視対象となる少なくとも1つの対象仮想マシン(120、130)と、前記対象仮想マシンが異常の場合に前記対象仮想マシンの処理を代行する少なくとも1つの代行仮想マシン(160、170)とが設定され、
1つまたは複数の前記対象仮想マシンの前記処理を1つの前記代行仮想マシンが代行し、
前記ハイパーバイザは、
前記対象仮想マシンが正常か異常かを判定するように構成された判定部(104、S420)と、
前記対象仮想マシンが正常であると前記判定部が判定すると、揮発性メモリ(30)において前記対象仮想マシンに割り当てられた記憶領域(34、36)に記憶されているデータを、前記揮発性メモリにおいて前記代行仮想マシンに割り当てられた記憶領域(42、44)にコピーするように構成されたコピー部(106、S422)と、
を備え、
前記代行仮想マシンは、前記対象仮想マシンが異常であると前記判定部が判定すると、前記揮発性メモリにおいて前記代行仮想マシンに割り当てられた前記記憶領域にコピーされた前記データに基づき、前記対象仮想マシンの処理を代行するように構成された代行部(162、172、S430)を備える、
電子制御装置。
【請求項2】
請求項1に記載の電子制御装置であって、
不揮発性メモリ(50)において前記対象仮想マシンに割り当てられた記憶領域(54、56)に記憶されているデータは、前記不揮発性メモリにおいて前記代行仮想マシンに割り当てられた記憶領域(62、64)にコピーされており、
前記代行部は、前記対象仮想マシンが異常の場合、前記揮発性メモリと前記不揮発性メモリとにおいて前記代行仮想マシンに割り当てられたそれぞれの前記記憶領域にコピーされた前記データに基づき、前記対象仮想マシンの処理を代行するように構成されている、
電子制御装置。
【請求項3】
請求項1に記載の電子制御装置であって、
前記代行仮想マシンは、前記対象仮想マシンが正常の場合、待機状態であるように構成されている、
電子制御装置。
【請求項4】
請求項1に記載の電子制御装置であって、
前記代行部は、前記対象仮想マシンが正常の場合、前記対象仮想マシンの処理を代行する代行処理以外の通常処理を実行し、前記対象仮想マシンが異常の場合、前記通常処理を停止して前記代行処理を実行するように構成されている、
電子制御装置。
【請求項5】
請求項1に記載の電子制御装置であって、
前記代行部は、前記対象仮想マシンが正常の場合、前記対象仮想マシンの処理を代行する代行処理以外の通常処理を実行し、前記対象仮想マシンが異常の場合、前記通常処理に加えて前記代行処理を実行するように構成されている、
電子制御装置。
【請求項6】
請求項1に記載の電子制御装置であって、
1つの前記代行仮想マシンの前記代行部は、1つの前記対象仮想マシンの処理を代行するように構成されている、
電子制御装置。
【請求項7】
請求項1に記載の電子制御装置であって、
1つの前記代行仮想マシンの前記代行部は、複数の前記対象仮想マシンの処理を代行するように構成されている、
電子制御装置。
【請求項8】
請求項1に記載の電子制御装置であって、
前記対象仮想マシンは、自己診断として前記揮発性メモリと前記不揮発性メモリと処理フローで実行するステップとの少なくともいずれかが正常か異常かを診断するように構成された診断部(124、134、S402、S404、S408、S410、S414、S416)をさらに備え、
前記判定部は、前記診断部の診断結果に基づいて、前記対象仮想マシンが正常か異常かを判定するように構成されている、
電子制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、仮想マシンの処理を代行する技術に関する。
【背景技術】
【0002】
下記の特許文献1に記載されている技術では、マルチコアのCPUを備えるマイクロコントローラにおいて、第1コアと第2コアとが予め割り当てられた処理を実行しながら、互いに相手のコアが正常か異常かを監視する。そして、一方のコアが異常になると、他方のコアは一方のコアが実行していた処理を代行する。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
一方のコアが異常になったときに、一方のコアが実行していた処理を他方のコアが代行する場合、他方のコアは、一方のコアが記憶していたデータを引き継いで使用する。
しかしながら、一方のコアが異常になったときに一方のコアが記憶していたデータが、正常か異常かを判定することは困難である。
【0005】
発明者の詳細な検討の結果、このように正常か異常かを判定できないデータを使用すると、一方のコアが実行していた処理を他方のコアが適切に代行できないという課題が見出された。コアを仮想マシンに置き換えても同様の課題が生じる。
【0006】
本開示の1つの局面は、異常になった仮想マシンの処理を他の仮想マシンが適切に代行する技術を提供することが望ましい。
【課題を解決するための手段】
【0007】
本開示の1つの態様による電子制御装置(2~6)は、ハイパーバイザ(100)と、ハイパーバイザにより動作を制御される複数の仮想マシン(110~170)と、を備える。
【0008】
複数の仮想マシンには、正常か異常かを監視される監視対象となる少なくとも1つの対象仮想マシン(120、130)と、対象仮想マシンが異常の場合に対象仮想マシンの処理を代行する少なくとも1つの代行仮想マシン(160、170)とが設定されている。
【0009】
1つまたは複数の対象仮想マシンの処理を1つの代行仮想マシンが代行する。
ハイパーバイザは、判定部(104、S420)と、コピー部(106、S422)と、を備える。
【0010】
判定部は、対象仮想マシンが正常か異常かを判定する。コピー部は、対象仮想マシンが正常であると判定部が判定すると、揮発性メモリ(30)において対象仮想マシンに割り当てられた記憶領域(34、36)に記憶されているデータを、揮発性メモリにおいて代行仮想マシンに割り当てられた記憶領域(42、44)にコピーする。
【0011】
代行仮想マシンは、対象仮想マシンが異常であると判定部が判定すると、揮発性メモリにおいて代行仮想マシンに割り当てられた記憶領域にコピーされたデータに基づき、対象仮想マシンの処理を代行するように構成された代行部(162、172、S430)を備える。
【0012】
このような構成によれば、対象仮想マシンが正常だったときに、揮発性メモリにおいて代行仮想マシンに割り当てられた記憶領域にコピーされた対象仮想マシンのデータは正常である。
【0013】
したがって、対象仮想マシンが異常になると、代行仮想マシンに割り当てられた記憶領域にコピーされた対象仮想マシンの正常なデータに基づいて、代行仮想マシンは対象仮想マシンの処理を適切に代行できる。
【図面の簡単な説明】
【0014】
【
図1】第1実施形態の電子制御装置の構成を示すブロック図。
【
図2】仮想マシンが異常になったときの処理の代行を説明する模式図。
【
図5】仮想マシンのスケシューリングを説明する説明図。
【
図6】対象仮想マシンが実行する処理を示すフローチャート。
【
図7】ハイパーバイザが実行する処理を示すフローチャート。
【
図8】代行仮想マシンが実行する処理を示すフローチャート。
【
図9】第2実施形態の電子制御装置の構成を示すブロック図。
【
図11】仮想マシンのスケシューリングを説明する説明図。
【
図12】第3実施形態の電子制御装置の構成を示すブロック図。
【
図14】仮想マシンのスケシューリングを説明する説明図。
【発明を実施するための形態】
【0015】
以下、図を参照しながら、本開示の実施形態を説明する。
[1.第1実施形態]
[1-1.構成]
図1および
図2に示す電子制御装置であるマイクロコンピュータ2は、例えば、車両に搭載されており、メモリ20と、ハイパーバイザ100と、仮想マシン110~VM160と、を備える。マイクロコンピュータ2は例えばマルチコアのマイクロコンピュータである。以下、ハイパーバイザを略してHV、仮想マシンを略してVM、マイクロコンピュータを略してマイコンとも言う。
【0016】
メモリ20は、RAM30と、ROM50と、図示しないフラッシュメモリ等を備える。HV100とVM110~VM160とは、RAM30に設定された図示しない共有メモリ領域にデータを書き込んだり読み出したりすることにより、互いに通信をする。
【0017】
6個のVM110~VM160は、後述する車両制御等を実行する機能をソフトウェアで仮想化したものである。
図1および
図2では、6個のVM110~VM160を図示しているが、これは例示であり、VMの数は6個に限るものではない。
【0018】
図3に示すように、VM110~VM160のそれぞれに対応して、RAM30の記憶領域32~42とROM50の記憶領域52~62とが割り当てられている。VM120に割り当てられているROM50の記憶領域54のデータは、予め、VM160に割り当てられているROM50の記憶領域62にコピーされている。
【0019】
尚、
図3では、図を省略するために、RAM30とROM50とは、共通のメモリ領域として記載されているが、当然のことながら異なるメモリ領域である。
HV100は、VM制御部102と、判定部104と、コピー部106と、を備える。VM制御部102は、VM110~VM160に割り当てるコア、メモリ20等のハードウェアリソースを管理し、VM110~VM160の動作を制御する。本実施形態では、VM110~VM160のそれぞれに1個のコアが割り当てられる。
【0020】
判定部104は、
図4に示すように、VM120による自己診断結果に基づいて、VM120が正常か異常かを判定する。つまり、VM120は、正常か異常かを監視される監視対象となる対象仮想マシンである。
【0021】
コピー部106は、VM120が正常であると判定部104が判定すると、
図3および
図4に示すように、VM120に割り当てられているRAM30の記憶領域34のデータを、VM160に割り当てられているRAM30の記憶領域42にコピーする。コピーされるRAM30の記憶領域34のデータには、VM120が実行するプログラムが含まれる。
【0022】
6個のVM110~VM160のうち、5個のVM110~VM150は、ボディ制御、エンジン制御、等の車両制御を実行する。VM160は、VM120が異常になると、VM120が正常時に実行していた処理を代行する。つまり、VM160は、対象仮想マシンであるVM120が異常の場合にVM120の処理を代行する代行仮想マシンである。
【0023】
VM110、120は前述した車両制御を実行する実行部112、122を備える。
図1および
図2には図示しないが、VM130~150も、車両制御を実行する実行部を備える。VM120は、さらに自己診断を実行する診断部124を備える。
【0024】
VM160は、VM120が異常になるとVM120が正常時に実行していた処理を代行する代行部162を備える。VM160は、VM120が正常の場合、HV100から起動されず、待機状態である。
【0025】
[1-2.処理]
次に、マイコン2が実行する処理について説明する。
(1)スケジューリング
図5に示すように、VM120の正常時、HV100とVM110~VM150とには、1msの周期において、実行時間が割り当てられている。VM120の正常時、VM160は待機状態であるから、VM160に割り当てられる実行時間は0μsである。
【0026】
VM120が異常になると、VM120に割り当てられていた200μsの実行時間がVM160に割り当てられる。そして、VM120に代わってVM160がVM120の実行タイミングで起動され、VM120の処理を代行する。尚、VM160は、VM120の処理を代行するだけであり、VM120の自己診断処理は実行しない。
【0027】
(2)VM120の処理
図6に示すフローチャートは、HV100によりVM120が起動されると実行される。
まず、S400においてVM120の実行部122は、車両制御等の通常処理を実行する。通常処理の終了後、S402においてVM120の診断部124は、RAM診断を実行する。
【0028】
診断部124は、RAM診断として、VM120に割り当てられたRAM30の記憶領域34において、例えば読み出し、書き込みを行う際に、ECCにより、VM120に割り当てられたRAM30の記憶領域34が正常か異常かを診断する。ECCは、Error Correcting Codeの略である。
【0029】
RAM診断は、ECCに限るものではなく、書き込みデータが正常に読み出せるか否かにより実行されてもよい。
S404において診断部124は、RAM診断の結果が正常であるか否かを判定する。S404の判定がYesである、つまりRAM診断の結果が正常の場合、処理はS408に移行する。
【0030】
S404の判定がNoである、つまりRAM診断の結果が異常の場合、S406において診断部124は、HV100に、VM120の処理をVM160に切り替えて代行させるように要求する。この要求は、例えば代行フラグをオンにすることにより実現される。
【0031】
S408において診断部124は、ROM診断を実行する。診断部124は、ROM診断として、VM120に割り当てられたROM50の記憶領域54において、例えばCRCにより、VM120に割り当てられたROM50の記憶領域54が正常か異常かを診断する。CRCは、Cyclic Redundancy Checkの略である。
【0032】
ROM診断は、CRCに限るものではなく、チェックサムが一致するか否かにより行ってもよい。
S410において診断部124は、ROM診断の結果が正常であるか否かを判定する。S410の判定がYesである、つまりROM診断の結果が正常の場合、処理はS414に移行する。
【0033】
S410の判定がNoである、つまりROM診断の結果が異常の場合、S412において診断部124は、HV100に、VM120の処理をVM160に切り替えて代行させるように要求する。
【0034】
S414において診断部124は、実行部122が実行する処理フローにおいて、実行すべきステップが実行されているか否かのフロー診断を実行する。
S416において診断部124は、フロー診断の結果が正常であるか否かを判定する。S416の判定がYesである、つまりフロー診断の結果が正常の場合、本処理は終了する。
【0035】
S416の判定がNoである、つまりフロー診断の結果が異常の場合、S418において診断部124は、HV100に、VM120の処理をVM160に切り替えて代行させるように要求する。
【0036】
(3)HV100の処理
図7に示すフローチャートは、前述した
図6のVM120の処理が終了すると、HV100により実行される。
【0037】
S420においてHV100の判定部104は、VM120の処理をVM160に切り替えて代行させる代行要求があるか否かを判定する。この判定は、例えば、前述した代行フラグがオンかオフかに基づいて行われる。
【0038】
S420の判定がNoである、つまり代行要求がない場合、S422においてHV100のコピー部106は、VM120に割り当てられたRAM30の記憶領域34のデータを、VM160に割り当てられたRAM30の記憶領域42にコピーする。S422の実行後、本処理は終了する。
【0039】
S420の判定がYesである、つまり代行要求がある場合、S424においてHV100のVM制御部102は、VM120に割り当てられる実行時間を200μsから0μsに変更してVM120の実行を停止させる。
【0040】
S426においてVM制御部102は、VM160に割り当てられる実行時間を0μsから200μsに変更して、VM120の処理をVM160に切り替えて代行させる。この場合、VM160は、VM120が起動されていたタイミングで起動される。
【0041】
(4)VM160の処理
図8に示すフローチャートは、HV100によりVM160が起動されると実行される。
S430においてVM160の代行部162は、VM120の処理を代行する。この場合、VM160は、VM120の通常処理を代行するだけであり、VM120の自己診断処理は実行しない。
【0042】
以上説明した第1実施形態では、マイコン2が電子制御装置に対応し、VM120が対象仮想マシンに対応し、VM160が代行仮想マシンに対応する。
また、S402、S404、S408、S410、S414、S416が診断部の処理に対応し、S420が判定部の処理に対応し、S422がコピー部の処理に対応し、S430が代行部の処理に対応する。
【0043】
[1-3.効果]
以上説明した第1実施形態によれば、以下の効果を得ることができる。
(1a)対象仮想マシンであるVM120が正常なときに、HV100が、VM120に割り当てられたRAM30の記憶領域34のデータを、VM160に割り当てられたRAM30の記憶領域42にコピーする。また、VM120に割り当てられたROM50の記憶領域54のデータは、予め、VM160に割り当てられたROM50の記憶領域62にコピーされている。
これにより、VM120に異常が発生しても、RAM30の記憶領域42にコピーされたVM120の正常なデータと、予め、ROM50の記憶領域62にコピーされていたVM120のデータと、に基づいて、VM160はVM120の処理を代行できる。
【0044】
この場合、VM120が異常になる前のVM120が正常だったときのデータを使用できるので、VM160はVM120が実行していた処理を引き継いで適切に代行できる。
(1b)VM160は、VM120の正常時には待機状態にあり何も処理を実行していない。そして、VM120が異常になると、VM160は、VM120の処理を代行する代行処理以外の処理を実行しない。これにより、代行処理以外の処理でVM160の処理負荷が増加することを抑制できる。
【0045】
[2.第2実施形態]
[2-1.第1実施形態との相違点]
第2実施形態は、基本的な構成は第1実施形態と同様であるため、相違点について以下に説明する。尚、第1実施形態と同じ符号は、同一の構成を示すものであって、先行する説明を参照する。
【0046】
前述した第1実施形態では、代行仮想マシンであるVM160が処理を代行する対象仮想マシンはVM120の1個だけであった。これに対し、第2実施形態では、
図9に示すマイコン4において、VM160が処理を代行する対象仮想マシンがVM120とVM130の2個である点で、第1実施形態と相違する。
【0047】
[2-2.構成]
図9に示すマイコン4では、VM130は、VM120と同様に実行部132と診断部134とを備える。VM120とVM130とが正常であるか異常であるかは、第1実施形態と同様に、VM120の診断部124とVM130の診断部134とが、RAM診断とROM診断とフロー診断とを実行した結果で設定する代行フラグがオンかオフかにより判定される。
【0048】
図10に示すように、VM120に割り当てられているROM40の記憶領域54のデータ、ならびにVM130に割り当てられているROM40の記憶領域56のデータは、予め、VM160に割り当てられているROM40の記憶領域62にコピーされている。
【0049】
HV100の判定部104は、VM120とVM130とがそれぞれ正常であるか異常であるかを、VM120とVM130とのそれぞれの代行フラグに基づいて判定する。
コピー部106は、VM120が正常であれば、VM120に割り当てられているRAM30の記憶領域34のデータを、VM160に割り当てられているRAM30の記憶領域42にコピーする。また、コピー部106は、VM130が正常であれば、VM130に割り当てられているRAM30の記憶領域36のデータを、VM160に割り当てられているRAM30の記憶領域42にコピーする。
【0050】
図11に示すように、VM制御部102は、VM120が異常であれば、VM120に割り当てられていた実行時間の100μsを0μsに変更し、VM120の実行を停止させる。そして、VM制御部102は、VM160に割り当てられている実行時間に100μsを加算して、VM120の処理をVM160に切り替えて代行させる。
【0051】
また、VM制御部102は、VM130が異常であれば、VM130に割り当てられていた実行時間を100μsから0μsに変更し、VM130の実行を停止させる。そして、VM制御部102は、VM160に割り当てられている実行時間に100μsを加算して、VM130の処理をVM160に切り替えて代行させる。
【0052】
VM160の代行部162は、VM120またはVM130の一方だけが異常であれば、一方だけの処理を代行し、VM120とVM130との両方が異常であれば、両方の処理を代行する。代行部162がVM120とVM130との両方の処理を代行する場合、VM160には合計200μsの実行時間が割り当てられる。
【0053】
尚、VM160の代行部162は、VM120とVM130との通常処理を代行するだけであり、VM120とVM130との自己診断処理は実行しない。
以上説明した第2実施形態では、マイコン4が電子制御装置に対応し、VM120、VM130が対象仮想マシンに対応し、VM160が代行仮想マシンに対応する。
【0054】
[2-3.効果]
以上説明した第2実施形態によれば、以下の効果を得ることができる。
(2a)対象仮想マシンであるVM120、VM130が正常なときに、HV100は、VM120、VM130のそれぞれに割り当てられたRAM30の記憶領域34、36のデータを、VM160に割り当てられたRAM30の記憶領域42にコピーする。
【0055】
また、VM120に割り当てられたROM50の記憶領域54のデータと、VM130に割り当てられたROM50の記憶領域56のデータとは、予め、VM160に割り当てられたROM50の記憶領域62にコピーされている。
これにより、VM120とVM130との少なくともいずれかに異常が発生しても、RAM30の記憶領域42とROM50の記憶領域62とにコピーされたデータに基づいて、VM160はVM120、VM130の処理を代行できる。
【0056】
この場合、VM120、VM130が異常になる前のVM120、VM130が正常だったときのデータを使用できるので、VM160はVM120、VM130が実行していた処理を引き継いで適切に代行できる。
【0057】
(2b)VM160は、VM120、VM130の正常時には待機状態にあり何も処理を実行していない。そして、VM120、VM130が異常になると、VM160は、VM120、VM130の処理を代行する代行処理以外の処理を実行しない。これにより、代行処理以外の処理でVM160の処理負荷が増加することを抑制できる。
【0058】
(2c)VM120とVM130との両方が異常になると、
図11示すように、VM160がVM120とVM130との両方の処理を連続して実行するので、1msの周期において、HV100はVM160を1回起動するだけでよい。これにより、HV100の処理負荷を低減できる。
【0059】
[3.第3実施形態]
[3-1.第2実施形態との相違点]
第3実施形態は、基本的な構成は第2実施形態と同様であるため、相違点について以下に説明する。第2実施形態と同じ符号は、同一の構成を示すものであって、先行する説明を参照する。
【0060】
前述した第2実施形態では、対象仮想マシンである2個のVM120、130に対し、代行仮想マシンとして1個のVM160が設定されていた。
これに対し、第3実施形態では、
図12のマイコン6において、VM120が異常の場合は代行仮想マシンとしてVM160が設定され、VM130が異常の場合は代行仮想マシンとしてVM170が設定されている点で、第2実施形態と相違する。
[3-2.構成]
図12に示すマイコン6は、7個のVM110~VM170を備えている。VM170は、VM160と同様に代行部172を備える。
【0061】
図13に示すように、VM120に割り当てられているROM50の記憶領域54のデータは、予め、VM160に割り当てられているROM40の記憶領域62にコピーされている。
【0062】
VM130に割り当てられているROM40の記憶領域56のデータは、予め、VM170に割り当てられているROM40の記憶領域64にコピーされている。
HV100のコピー部106は、VM120が正常であれば、VM120に割り当てられているRAM30の記憶領域34のデータを、VM160に割り当てられているRAM30の記憶領域42にコピーする。
【0063】
コピー部106は、VM130が正常であれば、VM130に割り当てられているRAM30の記憶領域36のデータを、VM170に割り当てられているRAM30の記憶領域64にコピーする。
【0064】
図14に示すように、VM制御部102は、VM120が異常であれば、VM120に割り当てられていた実行時間を100μsから0μsに変更し、VM120の実行を停止させる。そして、VM制御部102は、VM160に割り当てられる実行時間を0μsから100μsに変更し、VM120の処理をVM160に切り替えて代行させる。
【0065】
また、VM制御部102は、VM130が異常であれば、VM130に割り当てられていた実行時間を100μsから0μsに変更し、VM130の実行を停止させる。そして、VM制御部102は、VM170に割り当てられる実行時間を0μsから100μsに変更し、VM120の処理をVM170に切り替えて代行させる。
【0066】
尚、VM160の代行部162は、VM120の処理を代行するだけであり、VM120の自己診断処理は実行しない。また、VM170の代行部172は、VM130の処理を代行するだけであり、VM130の自己診断処理は実行しない。
【0067】
以上説明した第3実施形態では、マイコン6が電子制御装置に対応し、VM120、VM130が対象仮想マシンに対応し、VM160、VM170が代行仮想マシンに対応する。
【0068】
[3-3.効果]
以上説明した第3実施形態によれば、第1実施形態の効果(1a)~(1c)と同様の効果を得ることができる。さらに、第1実施形態の効果(1a)~(1c)において、VM120、160をVM130、170に、記憶領域34、42、54、62をそれぞれ記憶領域36、44、56、64のそれぞれに置き換えた効果と同様の効果を得ることができる。
【0069】
[4.他の実施形態]
以上、本開示の実施形態について説明したが、本開示は前述した実施形態に限定されることなく、種々変形して実施することができる。
【0070】
(4a)前述した第1実施形態と第2実施形態とでは、対象仮想マシンであるVM120、あるいはVM120とVM130とが正常の場合、代行仮想マシンであるVM160は何の処理も実行しない。
【0071】
これに対し、対象仮想マシンであるVM120、あるいはVM120とVM130とが正常の場合、代行仮想マシンであるVM160は、何等かの車両制御の通常処理を実行してもよい。
【0072】
そして、対象仮想マシンであるVM120、あるいはVM120とVM130との少なくともいずれかが異常になると、代行仮想マシンであるVM160は、通常処理に加えて異常なVMの処理を代行してもよい。
【0073】
あるいは、代行仮想マシンであるVM160は、実行していた車両制御の通常処理を停止して異常なVMの処理を代行してもよい。この場合、VM160が実行する通常処理は、停止しても車両走行を阻害しないドアの開閉制御等の処理である。
【0074】
(4b)前述した第3実施形態では、第1実施形態と同様に、VM130が正常の場合、代行仮想マシンであるVM170とは何の処理も実行しない。
これに対し、対象仮想マシンであるVM130が正常の場合、代行仮想マシンであるVM170は何等かの車両制御等の通常処理を実行してもよい。
【0075】
そして、対象仮想マシンであるVM130が異常になると、代行仮想マシンであるVM170は、車両制御処理に加えて異常なVMの処理を代行してもよい。
あるいは、代行仮想マシンであるVM170は、実行していた車両制御処理を停止してVM130の処理を代行してもよい。この場合、VM170が実行する通常処理は、停止しても車両走行を阻害しないオーディオ制御等の処理である。
【0076】
(4c)前述した実施形態では、対象仮想マシンが異常になると、代行仮想マシンは対象仮想マシンの通常処理は代行するが、自己診断は実行しない。
これに対し、対象仮想マシンが異常になると、代行仮想マシンは対象仮想マシンの通常処理に加え、自己診断を実行してもよい。自己診断の結果、代行仮想マシンが異常の場合、代行仮想マシンを対象仮想マシンとする他の代行仮想マシンが異常な代行仮想マシンの処理を代行する。
【0077】
異常な代行仮想マシンの処理を他の代行仮想マシンが代行することは、1段階で終了してもよいし、複数の段階まで行ってもよい。この場合、最終段階において、異常な代行仮想マシンの処理を代行する他の代行仮想マシンは、自己診断を実行しない。
【0078】
(4d)前述した実施形態では、電子制御装置であるマイコン2~6は車両に搭載され、車両制御を実行したが、これに限るものではない。電子制御装置で仮想マシンが実行され、異常な仮想マシンの処理を他の仮想マシンが代行するのであれば、どのような技術分野で電子制御装置が使用されてもよい。
【0079】
(4e)前述した実施形態では、マイコン2~6のそれぞれを電子制御装置として例示したがこれに限るものではない。例えば、電子制御装置は複数のマイコンを備えてもよい。
(4f)本開示に記載のマイコン2~6およびその手法は、コンピュータプログラムにより具体化された1つまたは複数の機能を実行するようにプログラムされたプロセッサおよびメモリを構成することによって提供された専用コンピュータにより、実現されてもよい。
【0080】
あるいは、本開示に記載のマイコン2~6およびその手法は、1つ以上の専用ハードウェア論理回路によってプロセッサを構成することによって提供された専用コンピュータにより、実現されてもよい。
【0081】
もしくは、本開示に記載のマイコン2~6およびその手法は、1つまたは複数の機能を実行するようにプログラムされたプロセッサおよびメモリと1つ以上のハードウェア論理回路によって構成されたプロセッサとの組み合わせにより構成された1つ以上の専用コンピュータにより、実現されてもよい。
【0082】
また、コンピュータプログラムは、コンピュータにより実行されるインストラクションとして、コンピュータ読み取り可能な非遷移有形記録媒体に記憶されてもよい。マイコン2~6に含まれる各部の機能を実現する手法には、必ずしもソフトウェアが含まれている必要はなく、その全部の機能が、1つまたは複数のハードウェアを用いて実現されてもよい。
【0083】
(4g)前述した実施形態における1つの構成要素が備える複数の機能を、複数の構成要素によって実現したり、1つの構成要素が備える1つの機能を、複数の構成要素によって実現したりしてもよい。また、複数の構成要素が備える複数の機能を、1つの構成要素によって実現したり、複数の構成要素によって実現される1つの機能を、1つの構成要素によって実現したりしてもよい。また、前述した実施形態の構成の一部を省略してもよい。また、前述した実施形態の構成の少なくとも一部を、他の前述した実施形態の構成に対して付加または置換してもよい。
【0084】
(4h)前述したマイコン2~6の他、当該マイコン2~6を構成要素とするシステム、当該マイコン2~6としてコンピュータを機能させるためのプログラム、このプログラムを記録した半導体メモリ等の非遷移的実体的記録媒体、当該マイコン2~6が実行する電子制御方法など、種々の形態で本開示を実現することもできる。
【符号の説明】
【0085】
2~6:マイコン(電子制御装置)、100:HV(ハイパーバイザ)、104:判定部、106:コピー部、110~170:VM(仮想マシン)、112、122、132:実行部、124、134:診断部、162、172:代行部