(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024115749
(43)【公開日】2024-08-27
(54)【発明の名称】電子制御装置
(51)【国際特許分類】
G06F 11/07 20060101AFI20240820BHJP
G06F 21/62 20130101ALI20240820BHJP
G06F 9/455 20180101ALI20240820BHJP
【FI】
G06F11/07 196
G06F21/62
G06F9/455 150
G06F11/07 140C
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2023021574
(22)【出願日】2023-02-15
(71)【出願人】
【識別番号】000004260
【氏名又は名称】株式会社デンソー
(74)【代理人】
【識別番号】110000578
【氏名又は名称】名古屋国際弁理士法人
(72)【発明者】
【氏名】佐々木 満
(72)【発明者】
【氏名】国部 浩生
【テーマコード(参考)】
5B042
【Fターム(参考)】
5B042GA22
5B042KK04
(57)【要約】
【課題】本開示の1つの局面は、異常な仮想マシンが資源にアクセスすることを抑制する技術を提供する。
【解決手段】本開示の1つの態様による電子制御装置10は、複数の仮想マシン40~70と、複数の仮想マシンの動作を管理するハイパーバイザ30と、複数の仮想マシンがアクセスする資源20と、を備える。複数の仮想マシンのうち監視仮想マシン40は、監視仮想マシン以外の他の仮想マシン50~70が正常か異常かを判定するように構成された判定部42を備える。ハイパーバイザは、他の仮想マシンの少なくともいずれかが異常と判定部が判定すると、異常な仮想マシンの資源に対するアクセスを禁止するアクセス管理部32を備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
複数の仮想マシン(40~70)と、
前記複数の仮想マシンの動作を管理するハイパーバイザ(30)と、
前記複数の仮想マシンがアクセスする資源(20)と、
を備える電子制御装置(10)であって、
前記複数の仮想マシンのうち監視仮想マシン(40)は、前記監視仮想マシン以外の他の前記仮想マシン(50~70)が正常か異常かを判定するように構成された判定部(42、S400~S406)を備え、
前記ハイパーバイザは、他の前記仮想マシンの少なくともいずれかが異常と前記判定部が判定すると、異常な前記仮想マシンの前記資源に対するアクセスを禁止するように構成されたアクセス管理部(32、S410~S418)を備える、
電子制御装置。
【請求項2】
請求項1に記載の電子制御装置であって、
前記ハイパーバイザは、異常な前記仮想マシンにフェールセーフを実行するように構成されたフェールセーフ部(34、S420)をさらに備える、
電子制御装置。
【請求項3】
請求項1に記載の電子制御装置であって、
前記資源の少なくとも1つは、前記複数の仮想マシンの間の通信に使用される共有メモリ(22)である、
電子制御装置。
【請求項4】
請求項1に記載の電子制御装置であって、
他の前記仮想マシンのそれぞれについて、それぞれの前記仮想マシンが正常なときの前記資源に対するアクセス権が前記資源のそれぞれに対して設定されている、
電子制御装置。
【請求項5】
請求項4に記載の電子制御装置であって、
前記アクセス管理部(S416、S418)は、異常な前記仮想マシンが正常になったと前記判定部が判定すると、正常になった前記仮想マシンの前記資源に対する前記アクセス権を、前記仮想マシンが正常なときの前記アクセス権に設定するように構成されている、
電子制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、仮想マシンの動作を管理する技術に関する。
【背景技術】
【0002】
下記の特許文献1には、電子制御装置において、第1の仮想CPUで実行されるアプリケーションプログラムの動作を、第2の仮想CPUで実行される監視プログラムが監視する技術が記載されている。監視プログラムは、アプリケーションプログラムが一定周期でレジスタに所定値を書き込むか否かを判定することにより、アプリケーションプログラムが正常に動作しているかを判定する。
【0003】
監視プログラムは、アプリケーションプログラムが正常に動作していないと判定すると、第1の仮想CPUをリセットする。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、発明者の詳細な検討の結果、リセットされて正常な状態に復帰する前の第1の仮想CPUが、電子制御装置のメモリ、入出力装置、などの資源にアクセスする可能性があるという課題が見出された。
【0006】
例えば、正常な状態に復帰する前の第1の仮想CPUは、メモリに不正なデータを書き込んだり、入出力装置を不正に作動させたり、など、電子制御装置の資源に不正なアクセスを行う可能性がある。
【0007】
本開示の1つの局面は、異常な仮想マシンが資源にアクセスすることを抑制する技術を提供することが望ましい。
【課題を解決するための手段】
【0008】
本開示の1つの態様による電子制御装置(10)は、複数の仮想マシン(40~70)と、複数の仮想マシンの動作を管理するハイパーバイザ(30)と、複数の仮想マシンがアクセスする資源(20)と、を備える。
【0009】
複数の仮想マシンのうち監視仮想マシン(40)は、監視仮想マシン以外の他の仮想マシン(50~70)が正常か異常かを判定するように構成された判定部(42、S400~S406)を備える。
【0010】
ハイパーバイザは、他の仮想マシンの少なくともいずれかが異常と判定部が判定すると、異常な仮想マシンの資源に対するアクセスを禁止するアクセス管理部(32、S410~S418)を備える。
【0011】
このような構成によれば、電子制御装置の資源に対して異常な仮想マシンのアクセスが禁止されるので、異常な仮想マシンが電子制御装置の資源に不正なアクセスをすることが抑制される。
【図面の簡単な説明】
【0012】
【
図1】本実施形態の電子制御装置の構成を示すブロック図。
【
図2】仮想マシンが正常なときのアクセス権の設定を説明する図。
【
図3】仮想マシンが異常になったときのアクセス権の設定を説明する図。
【
図4】監視仮想マシンによる監視処理を示すフローチャート。
【
図5】ハイパーバイザによるアクセス権設定処理を示すフローチャート。
【
図6】ハイパーバイザによるフェールセーフ処理を示すフローチャート。
【発明を実施するための形態】
【0013】
以下、図を参照しながら、本開示の実施形態を説明する。
[1.構成]
図1に示す電子制御装置10は、例えば、車両に搭載されており、資源20と、ハイパーバイザ30と、仮想マシン40~70と、を備える。以下、電子制御装置はECU、ハイパーバイザはHV、仮想マシンはVM、とも記載される。
【0014】
ECU10は、CPU、RAM、ROM、入出力インタフェース、などを備える1個または複数のマイクロコンピュータを中心に構成される。CPUは、ROM等の非遷移的実体的記録媒体に記憶されているプログラムを実行する。当該プログラムが実行されることで、当該プログラムに対応する処理が実行される。
【0015】
資源20は、共有メモリ22と、入出力装置24と、などを備える。図示しないが、資源20として、車載ネットワークへのインタフェースなども含まれる。
HV30は、VM40~70の動作を管理する機能ブロックとして、ROMに格納されたプログラムをCPUが実行することにより実現されるアクセス管理部32と、フェールセーフ部34と、を備える。
【0016】
アクセス管理部32は、VM50~70の資源20に対するアクセス権を管理する。VM40は、資源20に対するアクセス権をアクセス管理部32により管理されておらず、資源20に対するアクセスが許可されている。フェールセーフ部34は、異常なVM50~70に対して、リセットなどのフェールセーフを実行する。
【0017】
VM40~70は、共有メモリ22にデータを書き込んだり読み出したりすることにより、VM40~70の間で互いに通信する。VM40~70は、入出力装置24を使用して互いに通信してもよい。入出力装置24は、例えば、センサ、アクチュエータ等の外部装置でもよいし、VM40~70間ではなく、VM40~70と他のECUとの通信手段である通信装置でもよい。
【0018】
VM40は、ROMに格納されたプログラムをCPUが実行することにより実現される機能ブロックとして、判定部42と、通知部44と、を備える。判定部42は、VM40以外のVM50~70が正常か異常かを判定する。通知部44は、資源20に対するVM50~70のアクセス権の設定要求を、HV30に通知する。
【0019】
VM50~70は、ROMに格納されたプログラムをCPUが実行することにより実現される機能ブロックとして、それぞれ処理部52、62、72と、診断部54、64、74と、を備える。処理部52、62、72には、それぞれ、車両を制御する車両制御が割り当てられている。
【0020】
診断部54、64、74は、それぞれ、自VMが正常か異常かを診断し、その診断結果を、自VMに割り当てられた共有メモリ22の領域に書き込む。例えば、診断部54、64、74は、自己診断により自VMが正常か異常かを診断する。
【0021】
自己診断として、ROM診断とRAM診断とレジスタ診断とフロー診断とCPU診断と、などが実行される。
RAM診断は、VM50~70のそれぞれに割り当てられた図示しないRAMの記憶領域において、例えば読み出しおよび書き込みを行う際に、ECCにより、RAMの記憶領域が正常か異常かを判定することにより実行される。ECCは、Error Correcting Codeの略である。
【0022】
RAM診断は、ECCに限るものではなく、書き込みデータが正常に読み出せるか否かにより実行されてもよい。
ROM診断は、VM50~70のそれぞれに割り当てられた図示しないROMの記憶領域において、例えばCRCにより、ROMの記憶領域が正常か異常かを診断する。CRCは、Cyclic Redundancy Checkの略である。
【0023】
ROM診断は、CRCに限るものではなく、チェックサムが一致するか否かにより行ってもよい。
レジスタ診断は、例えば、VM50~70のそれぞれに割り当てられた図示しないレジスタに書き込んだデータが正常に読み出せるか否かにより実行される。
【0024】
フロー診断は、VM50~70のそれぞれが実行する処理フローにおいて、実行すべきステップが実行されているか否かを判定することにより実行される。
CPU診断は、次のようにして実行される。まず、VM40がVM50~70に出した例題をそれぞれの診断部54、64、74が演算し、その演算結果を自VMに割り当てられた供給メモリ22に書き込む。VM40の判定部42は、VM50~70の演算結果と例題に対する回答期待値とを比較し、VM50~70のそれぞれが正常か異常かを判定する。
【0025】
[2.アクセス権]
図2に示すように、VM50~70には、資源20である共有メモリ22と入出力装置24とに対して、通常アクセス権が設定されている。通常アクセス権は、VM50~70が正常な場合に、共有メモリ22と入出力装置24とに対してVM50~70に設定されているアクセス権である。アクセス権は、それぞれのVM50~70について、資源20のそれぞれに対して、本実施形態では共有メモリ22と入出力装置24とのそれぞれに対して設定されている。
【0026】
本実施形態では、VM40は正常か異常かを判定されず、共有メモリ22と入出力装置24とに対してアクセス可能である。そこで、
図2において、共有メモリ22と入出力装置24とに対するVM40の通常アクセス権には、設定が不要であることを示す「-」が記載されている。
【0027】
通常アクセス権の1はアクセスが許可されていることを表し、0はアクセスが禁止されていることを表す。
VM50~70の品質レベルとして、正常または異常が設定される。そして、正常に対して1のマスク値が設定され、異常に対して0のマスク値が設定される。
【0028】
前述したように、VM40は正常か異常かを判定されないので、品質レベルも設定されず、マスク値も設定されない。
図3に示すように、例えばVM50が異常になると、品質レベルとして異常が設定され、マスク値が0に設定される。
【0029】
VM50のマスク値が0に設定されると、通常アクセス権とマスク値とがAND処理され乗算されることにより、VM50の共有メモリ22と入出力装置24とに対するアクセス権は0になる。これにより、VM50の共有メモリ22と入出力装置24とに対するアクセスは禁止される。
【0030】
[3.処理]
(1)VM40の監視処理
図4に示す監視処理のフローチャートは、監視VMであるVM40により定期的に実行される。
【0031】
S400においてVM40の判定部42は、共有メモリ22に書き込まれた監視対象である対象VMによる自己診断の診断結果が正常か否かを判定する。
また、判定部42は、VM40が対象VMに出した例題の演算結果を診断結果として取得し、例題に対する対象VMの演算結果と回答期待値とが一致するか否かにより、対象VMの診断結果が正常か否かを判定する。
【0032】
S400の判定がNoである、つまり対象VMの診断結果が異常の場合、処理はS406に移行する。
S400の判定がYesである、つまり対象VMの診断結果が正常の場合、S402において判定部42は、対象VMの品質レベルとして正常が設定されているか否かを判定する。S402の判定がYesである、つまり対象VMの品質レベルとして正常が設定されている場合、判定部42は本処理を終了する。
【0033】
S402の判定がNoである、つまり対象VMの品質レベルとして異常が設定されている場合、S404において判定部42は、対象VMの品質レベルを正常に設定するようにHV30に要求し、本処理を終了する。
【0034】
S406において判定部42は、対象VMの品質レベルを異常に設定するようにHV30に要求する。S408において判定部42は、対象VMに対するフェールセーフをHV30に要求し、本処理を終了する。対象VMに対するフェールセーフとして、例えば、対象VMに対するリセットが要求される。
【0035】
S404~S408のVM40からHV30に対する要求は、例えば、判定部42がVM40に割り当てられた共有メモリ22の領域に要求を書き込むことにより行われる。
(2)HV30のアクセス権設定処理
図5に示すアクセス権設定処理のフローチャートは、
図4のS404とS406とにおいてVM40が品質レベルの変更を要求すると、HV30により実行される。
【0036】
S410においてHV30のアクセス管理部32は、VM40に割り当てられた共有メモリ22の領域に書き込まれた品質レベルの設定要求を読み出し、対象VMの品質レベルを正常に設定するか異常に設定するか、のいずれが要求されているかを判定する。
【0037】
S410の判定がYesである、つまり、対象VMの品質レベルを正常に設定する要求の場合、S412においてアクセス管理部32は、対象VMの品質レベルを正常に設定し、処理をS416に移行する。
【0038】
S410の判定がNoである、つまり、対象VMの品質レベルを異常に設定する要求の場合、S414においてアクセス管理部32は、対象VMの品質レベルを異常に設定し、処理をS416に移行する。
【0039】
S416においてアクセス管理部32は、対象VMの通常のアクセス権を読み出す。S418においてアクセス管理部32は、対象VMの通常のアクセス権と対象VMの品質レベルに応じたマスク値とをAND処理して乗算することにより、対象VMのアクセス権を設定する。
【0040】
(3)HV30のフェールセーフ処理
図6に示すフェールセーフ処理のフローチャートは、
図4のS408においてVM40がフェールセーフの実行を要求すると、HV30により実行される。
【0041】
S420においてHV30のフェールセーフ部34は、対象VMに対するフェールセーフとして、例えばVMをリセットし、本処理を終了する。
以上説明した実施形態では、VM40が監視仮想マシンに対応し、VM50~70が監視仮想マシン以外の他の仮想マシンに対応する。
【0042】
また、S400~S406が監視仮想マシンの判定部の処理に対応し、S410~S418がハイパーバイザのアクセス管理部の処理に対応し、S420がハイパーバイザのフェールセーフ部の処理に対応する。
【0043】
[4.効果]
以上説明した実施形態によれば、以下の効果を得ることができる。
(4a)監視仮想マシンであるVM40が自VM以外の他のVM50~70のいずれかを異常と判定すると、HV30が異常なVMの資源20に対するアクセスを禁止する。
【0044】
これにより、異常なVMがHV30にリセットされて正常な状態に復帰するまでの間に、資源20に不正なアクセスを行うことを抑制できる。
その結果、異常なVMが、HV30にリセットされて正常な状態に復帰するまでの間に、共有メモリ22または入出力装置24にアクセスして、他のVMと不正なVM間の通信を行うことを抑制できる。
【0045】
また、異常なVMが、HV30にリセットされて正常な状態に復帰するまでの間に、資源20にアクセスして不正な車両制御を行うことを抑制できる。
(4b)異常なVMが正常になると、VMが正常なときに設定されている資源20に対する通常のアクセス権が設定されるので、正常だったときと同じアクセス権で資源20にアクセスできる。
【0046】
[5.他の実施形態]
以上、本開示の実施形態について説明したが、本開示は前述した実施形態に限定されることなく、種々変形して実施することができる。
【0047】
(5a)前述した実施形態では、監視仮想マシンであるVM40は、他のVMに対する監視処理だけを行ったがこれに限るものではない。監視仮想マシンであるVM40は、監視処理に加えて、何等かの車両制御処理を行ってもよい。
【0048】
この場合、監視仮想マシンであるVM40が実行する車両制御処理は、処理負荷の小さいドアの開閉制御等の処理であることが望ましい。
(5b)前述した実施形態では、VM50~70のそれぞれについて、それぞれのVM50~70が正常なときの資源20に対するアクセス権が、それぞれの資源20について設定されているが、これに限るものではない。例えば、VM50~70のそれぞれについて、それぞれの資源20について同じアクセス権が設定されていてもよい。
【0049】
(5c)前述した実施形態では、電子制御装置であるECU10は車両に搭載され、車両制御を実行したが、これに限るものではない。電子制御装置においてハイパーバイザが仮想マシンの動作を管理し、ハイパーバイザが異常な仮想マシンの資源に対するアクセスを禁止するのであれば、どのような技術分野で電子制御装置が使用されてもよい。
【0050】
(5d)本開示に記載のECU10およびその手法は、コンピュータプログラムにより具体化された1つまたは複数の機能を実行するようにプログラムされたプロセッサおよびメモリを構成することによって提供された専用コンピュータにより、実現されてもよい。
【0051】
あるいは、本開示に記載のECU10およびその手法は、1つ以上の専用ハードウェア論理回路によってプロセッサを構成することによって提供された専用コンピュータにより、実現されてもよい。
【0052】
もしくは、本開示に記載のECU10およびその手法は、1つまたは複数の機能を実行するようにプログラムされたプロセッサおよびメモリと1つ以上のハードウェア論理回路によって構成されたプロセッサとの組み合わせにより構成された1つ以上の専用コンピュータにより、実現されてもよい。
【0053】
また、コンピュータプログラムは、コンピュータにより実行されるインストラクションとして、コンピュータ読み取り可能な非遷的実体的記録媒体に記憶されてもよい。マイコン2~6に含まれる各部の機能を実現する手法には、必ずしもソフトウェアが含まれている必要はなく、その全部の機能が、1つまたは複数のハードウェアを用いて実現されてもよい。
【0054】
(5e)前述した実施形態における1つの構成要素が備える複数の機能を、複数の構成要素によって実現したり、1つの構成要素が備える1つの機能を、複数の構成要素によって実現したりしてもよい。また、複数の構成要素が備える複数の機能を、1つの構成要素によって実現したり、複数の構成要素によって実現される1つの機能を、1つの構成要素によって実現したりしてもよい。また、前述した実施形態の構成の一部を省略してもよい。また、前述した実施形態の構成の少なくとも一部を、他の前述した実施形態の構成に対して付加または置換してもよい。
【0055】
(5f)前述したECU10の他、当該ECU10を構成要素とするシステム、当該ECU10としてコンピュータを機能させるためのプログラム、このプログラムを記録した半導体メモリ等の非遷移的実体的記録媒体、当該ECU10が実行する電子制御方法など、種々の形態で本開示を実現することもできる。
【0056】
[本明細書が開示する技術思想]
[項目1]
複数の仮想マシン(40~70)と、
前記複数の仮想マシンの動作を管理するハイパーバイザ(30)と、
前記複数の仮想マシンがアクセスする資源(20)と、
を備える電子制御装置(10)であって、
前記複数の仮想マシンのうち監視仮想マシン(40)は、前記監視仮想マシン以外の他の前記仮想マシン(50~70)が正常か異常かを判定するように構成された判定部(42、S400~S406)を備え、
前記ハイパーバイザは、他の前記仮想マシンの少なくともいずれかが異常と前記判定部が判定すると、異常な前記仮想マシンの前記資源に対するアクセスを禁止するように構成されたアクセス管理部(32、S410~S418)を備える、
電子制御装置。
【0057】
[項目2]
項目1に記載の電子制御装置であって、
前記ハイパーバイザは、異常な前記仮想マシンにフェールセーフを実行するように構成されたフェールセーフ部(34、S420)をさらに備える、
電子制御装置。
【0058】
[項目3]
項目1または2に記載の電子制御装置であって、
前記資源の少なくとも1つは、前記複数の仮想マシンの間の通信に使用される共有メモリ(22)である、
電子制御装置。
【0059】
[項目4]
項目1から3のいずれか1項に記載の電子制御装置であって、
他の前記仮想マシンのそれぞれについて、それぞれの前記仮想マシンが正常なときの前記資源に対するアクセス権が、前記資源のそれぞれに対して設定されている、
電子制御装置。
【0060】
[項目5]
項目1から4のいずれか1項に記載の電子制御装置であって、
前記アクセス管理部(S416、S418)は、異常な前記仮想マシンが正常になったと前記判定部が判定すると、正常になった前記仮想マシンの前記資源に対するアクセス権を、前記仮想マシンが正常なときの前記アクセス権に設定するように構成されている、
電子制御装置。
【符号の説明】
【0061】
10:ECU(電子制御装置)、20:資源、22:共有メモリ(資源)、24:入出力装置(資源)、30:VM(ハイパーバイザ)、32:アクセス管理部、34:フェールセーフ部、40:VM(監視仮想マシン)、42:判定部、50~70:VM(監視仮想マシン以外の他の仮想マシン)