JP2022085862A - 電子制御装置、ソフトウェア更新方法、ソフトウェア更新プログラム、及び電子制御システム - Google Patents
電子制御装置、ソフトウェア更新方法、ソフトウェア更新プログラム、及び電子制御システム Download PDFInfo
- Publication number
- JP2022085862A JP2022085862A JP2021178151A JP2021178151A JP2022085862A JP 2022085862 A JP2022085862 A JP 2022085862A JP 2021178151 A JP2021178151 A JP 2021178151A JP 2021178151 A JP2021178151 A JP 2021178151A JP 2022085862 A JP2022085862 A JP 2022085862A
- Authority
- JP
- Japan
- Prior art keywords
- virtual machine
- electronic control
- hypervisor
- update
- file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000003860 storage Methods 0.000 claims abstract description 164
- 230000006870 function Effects 0.000 description 32
- 230000008569 process Effects 0.000 description 20
- 238000012986 modification Methods 0.000 description 17
- 230000004048 modification Effects 0.000 description 17
- 230000004044 response Effects 0.000 description 15
- 238000004891 communication Methods 0.000 description 13
- 239000013256 coordination polymer Substances 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 239000004065 semiconductor Substances 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000010365 information processing Effects 0.000 description 3
- 230000014759 maintenance of location Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000004927 fusion Effects 0.000 description 2
- 239000000047 product Substances 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 239000011265 semifinished product Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Landscapes
- Stored Programmes (AREA)
Abstract
【課題】仮想マシンの更新ファイルの配信制御を行う仮想マシンは、特定の条件を満たす仮想マシンにのみ更新ファイルを配信することで仮想マシンのソフトウェアの更新に要する時間を短縮する方法、電子制御装置、プログラム及び電子制御システムを提供する。【解決手段】電子制御装置は、ソフトウェアを更新するためのファイルを取得するファイル取得部141と、ファイルを保存する保存部130,144と、を備える。電子制御装置が有する第1の仮想マシン140は、第1の仮想マシンを管理する第1のハイパーバイザ110と、第1の仮想マシンに接続された第2の仮想マシン150、160、230を管理する第2のハイパーバイザ110、120、210とが同じかどうかを判定する判定部146と、判定部が第1のハイパーバイザと第2のハイパーバイザが異なると判定した場合に、ファイルを第2の仮想マシンに配信する配信部147と、を有する。【選択図】図1
Description
本発明は、電子制御装置に関するものであり、主として車両用の電子制御装置、電子制御装置で実現する方法、電子制御装置で実行可能なプログラム、及び電子制御装置からなる電子制御システムに関する。
自動車においては、車載ネットワークで接続された様々な電子制御装置が搭載されている。近年の自動運転技術の発展に伴い自動車に求められる機能が複雑になりつつあり、自動車に搭載される電子制御装置の数は増加しつつある。そこで、複数の機能を1つの電子制御装置に統合することで電子制御装置全体の数を抑制することが可能な仮想化技術を適用することが提案されている。
例えば、特許文献1には、車載コンピュータにおいて、ハイパーバイザ(Hypervisor)等の仮想化オペレーティングシステムを利用して、複数の仮想ECUを構築することが開示されている。特許文献1に記載の技術によれば、ECUを介して車載コンピュータに接続された端末機器の動作に必要な物理リソースを車載コンピュータに集約させることで、物理リソースの効率的な利用が可能となる。
ここで、本発明者は、以下の課題を見出した。
車両に搭載される電子制御装置には、走行や操舵といった車両の動作を制御するものが含まれるため、車両の安全性を確保するために常に最新のソフトウェアにアップデートすることが望ましい。ところが、仮想化技術によって電子制御装置の数を抑制しても、電子制御装置を仮想化してなる仮想マシンが多数存在する場合、これら全ての仮想マシンをアップデートするためには時間がかかるおそれがある。
車両に搭載される電子制御装置には、走行や操舵といった車両の動作を制御するものが含まれるため、車両の安全性を確保するために常に最新のソフトウェアにアップデートすることが望ましい。ところが、仮想化技術によって電子制御装置の数を抑制しても、電子制御装置を仮想化してなる仮想マシンが多数存在する場合、これら全ての仮想マシンをアップデートするためには時間がかかるおそれがある。
そこで、本発明は、仮想マシンのソフトウェアの更新に要する時間を短縮することを目的とする。
本開示の一態様による電子制御装置は、ハイパーバイザによって管理される仮想マシンを有する電子制御装置であって、ソフトウェアを更新するためのファイルを取得するファイル取得部(141)と、前記ファイルを保存する保存部(130,144)と、を備え、前記仮想マシンである第1の仮想マシン(140)は、前記第1の仮想マシンを管理する第1のハイパーバイザ(110)と、前記第1の仮想マシンに接続された第2の仮想マシン(150,160,230)を管理する第2のハイパーバイザ(110,120,210)とが同じかどうかを判定する判定部(146)と、前記判定部が前記第1のハイパーバイザと前記第2のハイパーバイザが異なると判定した場合に、前記ファイルを前記第2の仮想マシンに配信する配信部(147)と、を有する。
本開示の他の態様によるソフトウェア更新方法は、ハイパーバイザによって管理される仮想マシンを有する電子制御装置で実行されるソフトウェア更新方法であって、ソフトウェアを更新するためのファイルを取得し(S101)、前記ファイルを保存部(130,144)に保存し(S103)、前記仮想マシンである第1の仮想マシン(140)を管理する第1のハイパーバイザ(110)と、前記第1の仮想マシンに接続された第2の仮想マシン(150,160,230)を管理する第2のハイパーバイザ(110,120,210)とが同じかどうかを判定し(S106)、前記第1のハイパーバイザと前記第2のハイパーバイザが異なる場合に、前記ファイルを前記第2の仮想マシンに配信する(S109)。
本開示の他の態様によるソフトウェア更新プログラムは、ハイパーバイザによって管理される仮想マシンを有する電子制御装置で実行可能なソフトウェア更新プログラムであって、ソフトウェアを更新するためのファイルを取得し(S101)、前記ファイルを保存部(130,144)に保存し(S103)、前記仮想マシンである第1の仮想マシン(140)を管理する第1のハイパーバイザ(110)と、前記第1の仮想マシンに接続された第2の仮想マシン(150,160,230)を管理する第2のハイパーバイザ(110,120,210)とが同じかどうかを判定し(S106)、前記第1のハイパーバイザと前記第2のハイパーバイザが異なる場合に、前記ファイルを前記第2の仮想マシンに配信する(S109)。
本開示の他の態様による電子制御システムは、第1の電子制御装置(10)と第2の電子制御装置(20)とを有する電子制御システムであって、第1のハイパーバイザ(110)によって管理される第1の仮想マシン(140)を有する前記第1の電子制御装置は、ソフトウェアを更新するためのファイルを取得するファイル取得部(141)と、前記ファイルを保存する保存部(130,144)とを備え、前記第1の仮想マシンは、前記第1のハイパーバイザと、前記第2の電子制御装置が有する第2の仮想マシン(230)を管理する第2のハイパーバイザ(210)とが同じかどうかを判定する判定部(146)と、前記判定部が前記第1のハイパーバイザと前記第2のハイパーバイザが異なると判定した場合に、前記ファイルを前記第2の仮想マシンに配信する配信部(147)と、を有し、前記第2の仮想マシンは、前記保存部にアクセスすることにより前記ファイルを用いて、又は前記配信部が配信する前記ファイルを用いて、前記第2の仮想マシンを更新する更新部(231)を有する。
なお、特許請求の範囲、及び本項に記載した発明の構成要件に付した括弧内の番号は、本発明と後述の実施形態との対応関係を示すものであり、本発明を限定する趣旨ではない。
本開示の電子制御装置、ソフトウェア更新方法、ソフトウェア更新プログラム、及び電子制御システムにより、仮想マシンのソフトウェアの更新に要する時間を短縮することが可能となる。
以下、本発明の実施形態について、図面を参照して説明する。
なお、本発明とは、特許請求の範囲又は課題を解決するための手段の項に記載された発明を意味するものであり、以下の実施形態に限定されるものではない。また、少なくともかぎ括弧内の語句は、特許請求の範囲又は課題を解決するための手段の項に記載された語句を意味し、同じく以下の実施形態に限定されるものではない。
特許請求の範囲の従属項に記載の構成及び方法は、特許請求の範囲の独立項に記載の発明において任意の構成及び方法である。従属項に記載の構成及び方法に対応する実施形態の構成及び方法、並びに特許請求の範囲に記載がなく実施形態のみに記載の構成及び方法は、本発明において任意の構成及び方法である。特許請求の範囲の記載が実施形態の記載よりも広い場合における実施形態に記載の構成及び方法も、本発明の構成及び方法の例示であるという意味で、本発明において任意の構成及び方法である。いずれの場合も、特許請求の範囲の独立項に記載することで、本発明の必須の構成及び方法となる。
実施形態に記載した効果は、本発明の例示としての実施形態の構成を有する場合の効果であり、必ずしも本発明が有する効果ではない。
複数の実施形態がある場合、各実施形態に開示の構成は各実施形態のみで閉じるものではなく、実施形態をまたいで組み合わせることが可能である。例えば一の実施形態に開示の構成を、他の実施形態に組み合わせても良い。また、複数の実施形態それぞれに開示の構成を集めて組み合わせても良い。
発明が解決しようとする課題に記載した課題は公知の課題ではなく、本発明者が独自に知見したものであり、本発明の構成及び方法と共に発明の進歩性を肯定する事実である。
1.各実施形態に共通する構成
図1を用いて、各実施形態の電子制御装置、及び当該電子制御装置を備える電子制御システムを説明する。各実施形態の電子制御装置及び電子制御システムは、「移動体」である車両に「搭載」される車載装置及び車載システムを想定しているが、これらに限定されるものではない。
図1を用いて、各実施形態の電子制御装置、及び当該電子制御装置を備える電子制御システムを説明する。各実施形態の電子制御装置及び電子制御システムは、「移動体」である車両に「搭載」される車載装置及び車載システムを想定しているが、これらに限定されるものではない。
ここで、「移動体」とは、移動可能な物体をいい、移動速度は任意である。また移動体が停止している場合も当然含む。例えば、自動車、自動二輪車、自転車、歩行者、船舶、航空機、及びこれらに搭載される物を含み、またこれらに限らない。
また、「搭載」される、とは、移動体に直接固定されている場合の他、移動体に固定されていないが移動体と共に移動する場合も含む。例えば、移動体に乗った人が所持している場合、移動体に載置された積荷に搭載されている場合、が挙げられる。
また、「搭載」される、とは、移動体に直接固定されている場合の他、移動体に固定されていないが移動体と共に移動する場合も含む。例えば、移動体に乗った人が所持している場合、移動体に載置された積荷に搭載されている場合、が挙げられる。
電子制御システム1は、複数の「電子制御装置」(以下、ECU:Electronic Control Unit)から構成されるシステムである。図1は、2つのECU(ECU10、ECU20)を備える電子制御システム1を示しているが、任意の数のECUから構成される。ECU10及びECU20は、例えば、CAN(Controller Area Network)やLIN(Local Interconnect Network)といった車載ネットワーク、イーサネット(登録商標)、無線通信ネットワークを介して接続されている。
ここで、「電子制御装置」は、例えば、主に半導体装置で構成され、CPU(Central Processing Unit)、およびRAM(Random Access Memory)等の揮発性記憶部を有する、いわゆる情報処理装置として構成されていてもよい。この場合、情報処理装置はさらに、フラッシュメモリ等の不揮発性記憶部、通信ネットワーク等に接続されるネットワークインターフェース部等を有していてもよい。さらに、このような情報処理装置はパッケージ化された半導体装置(素子)であっても、配線基板において各半導体装置が配線接続された構成であってもよい。
ECU10は例えば、AUTOSAR(AUTomotive Open System ARchitecture)においてAdaptive Platform(以下、AP)と呼ばれる、動的な機能の拡張が可能なプラットフォームをベースとしたECUである。APは主に、自動運転用のECUに適したプラットフォームである。また、ECU20は例えば、AUTOSARにおいてClassic Platform(以下、CP)と呼ばれる、静的な機能を最適化したプラットフォームをベースとしたECUである。CPは主に、車両制御用のECUに適したプラットフォームである。
電子制御システム1を構成するECU10、ECU20はいずれも、ハイパーバイザによって管理される1以上の仮想マシンを有する。以下に、ECU10、ECU20、及び各ECUに搭載される仮想マシンの構成を説明する。図においては、仮想マシンをVM(Virtual Machine)と略する。
(1)ECU10について
ECU10は、ハイパーバイザ(HV)110及びハイパーバイザ120、これらのハイパーバイザによって管理される複数の仮想マシン(140、150、160)、並びにハードウェアである実ストレージ130を備える。
ECU10は、ハイパーバイザ(HV)110及びハイパーバイザ120、これらのハイパーバイザによって管理される複数の仮想マシン(140、150、160)、並びにハードウェアである実ストレージ130を備える。
ハイパーバイザ110及びハイパーバイザ120は、ECU10を仮想化するソフトウェアである。図1の例では、第1の仮想マシン140及び第2の仮想マシン150はハイパーバイザ110上に構築され、第3の仮想マシン160はハイパーバイザ120上に構築される。ハイパーバイザ上に構築された仮想マシン同士はそれぞれ仮想的に「接続」されている。
ここで、仮想マシンに「接続」とは、仮想マシン同士でデータのやり取りが可能な状態をいい、同一のハードウェア上で実現された仮想マシン同士が仮想的に接続されている場合の他、異なるハードウェア上で実現された仮想マシン同士がネットワーク等を介して接続されている場合も含む。また、データのやり取りが可能な状態とは、必ずしも実際にデータのやり取りが可能である必要はない。例えば、一方の仮想マシンが何らかのトラブルで一時的に停止していたり、スリープ状態にある場合であってもデータのやり取りが可能な状態である。
実ストレージ(「保存部」に相当)130は、ハードウェアのメモリであり、SRAMやDRAMといった揮発性メモリ、ROM、フラッシュメモリ、又はハードディスク等の不揮発性メモリである。後述する第1の仮想マシン140乃至第3の仮想マシン160の仮想ストレージは、実ストレージ130の保存領域を仮想化して実現される。実ストレージ130は、ECU10のハイパーバイザが管理する保存領域である。図1では、一の実ストレージ130を示しているが、実ストレージ130は複数のストレージによって実現するものであってもよい。
実ストレージ130は、後述するファイル分割部145で分割処理された更新ファイルを保存する。更新ファイルが保存される実ストレージ130の領域は、複数の仮想マシンで共有される共有保存領域であってもよく、あるいは、実ストレージ130の保存領域を仮想化して実現される仮想ストレージの領域であってもよい。ただし、共有保存領域は複数の仮想マシンで共有されるため、セキュリティ性が低くなるおそれがある。そのため、共有保存領域に更新ファイルを保存する場合、各仮想マシンは、共有保存領域に保存された更新ファイルを用いて仮想マシンのソフトウェアを更新する場合に限り、共有保存領域にアクセス可能となることが望ましい。つまり、共有保存領域に保存された更新ファイルを用いて更新しない場合には、仮想マシンから当該共有保存領域へのアクセスは制限される。
(i)第1の仮想マシン140について
ハイパーバイザ110によって管理される第1の仮想マシン140は、ファイル取得部141、配信制御部142、更新部143、及び仮想ストレージ144を有する。
ファイル取得部141は、車両制御システム1の外部に設けられたサーバ装置からOTA(Over The Air)又は有線通信を用いてファイルを取得する。ファイル取得部141が取得するファイルは、仮想マシンのソフトウェアを更新するための更新ファイルを含み、例えば、複数の仮想マシンを更新するための複数の更新ファイルを含む更新ファイル群であってもよい。ファイルはさらに、ソフトウェアを更新すべき対象の仮想マシンを特定する情報を含んでもよい。ファイル取得部141は、取得した更新ファイル群を配信制御部142に転送する。ファイル取得部141は、OTAクライアントとも称される。仮想マシンのソフトウェアを更新するための更新ファイルとは、仮想マシンを実現するソフトウェアを更新するものはもちろん、仮想マシン上に搭載されたアプリケーションやソフトウェアを更新するものであってもよい。
配信制御部142は、ファイル取得部141から転送されたファイルを更新対象の仮想マシンに配信するために必要な一連の処理を行う。配信制御部142は、ファイル分割部145、判定部146、配信部147、更新指示部148を実現する。配信制御部142は例えば、AUTOSARにおいてUCM(Update and Configuration Management)マスタと称される機能の一部又は全部を実行するものである。
ファイル分割部145は、ファイル取得部141から転送された更新ファイル群を、各仮想マシンそれぞれの更新ファイルに分割するパース処理を行う。パース処理した更新ファイルは、実ストレージ130に保存する。
判定部146は、第1の仮想マシン140に接続された複数の仮想マシンのうち、更新対象の仮想マシンを判定する。更新対象の仮想マシンであるかどうかは、ファイル取得部141が取得したファイルに含まれる、更新対象の仮想マシンを特定する情報に基づいて判定することができる。以下の実施形態では、図1に示す全ての仮想マシンが更新対象の仮想マシンである場合を説明する。
判定部146はさらに、更新ファイルを更新対象の仮想マシンに配信するかどうかを判定する。判定部146が更新ファイルを更新対象の仮想マシンに配信するかどうかを判定する方法は、実施形態1、2で後述する。
更新対象の仮想マシン、及び更新ファイルを配信するかどうかの判定に際し、判定部146は、各仮想マシンに対し、仮想マシンに関する情報を問い合わせる検索処理を行ってもよい。例えば、判定部146は、仮想マシンを管理するハイパーバイザ、仮想マシンが搭載されたECU、又はECUの機能や構成に関する情報を問い合わせる検索信号を、第1の仮想マシン140に接続された仮想マシンに送信する。
判定部146は、全ての更新対象の仮想マシンにおいてソフトウェアの更新が完了した場合、ファイル取得部141に更新が完了したことを通知する。
配信部147は、判定部146が更新ファイルを配信すると判定した場合、ファイル分割部145で分割した更新ファイルを、通信ネットワークを介して送ることにより仮想マシンに配信する。配信部147は、判定部146からの配信指示を受けて、更新ファイルを仮想マシンに配信してもよい。なお、本開示において更新ファイルを「配信」するとは、通信ネットワークを介して更新ファイルを送信することの他、更新ファイルの保存領域を特定の仮想マシンがアクセス可能な領域に移動させることも含む。
更新指示部148は、更新対象の各仮想マシンに対して仮想マシンのソフトウェアの更新を指示する。判定部146が更新ファイルを配信すると判定した仮想マシンに対しては、更新指示部148は、配信部147が配信する更新ファイルを用いて仮想マシンのソフトウェアを更新することを指示する。判定部146が更新ファイルを配信しないと判定した仮想マシンに対しては、更新指示部148は、実ストレージ130にアクセスすることにより、実ストレージ130に保存されている更新ファイルを用いて仮想マシンのソフトウェアを更新することを指示する。
更新指示部148の更新指示は、更新ファイルの保存先を示すアドレスを示すものであってもよい。例えば、更新指示が、更新ファイルの保存先のアドレスを示すことにより、当該更新ファイルを用いて仮想マシンのソフトウェアを更新することを間接的に指示することができる。また、更新指示が、更新ファイルを保存した実ストレージ130のアドレスを示すことにより、実ストレージ130にアクセスすることにより実ストレージ130に保存されている更新ファイルを用いて仮想マシンのソフトウェアを更新することを間接的に指示することができる。更新指示はさらに、仮想マシンに更新ファイルを配信するかどうかを示す情報を含んでもよい。
更新部143は、更新指示部148からの指示に基づいて、第1の仮想マシン140のソフトウェアを更新する。更新部143は、第1の仮想マシン140のソフトウェアの更新処理が完了すると、配信制御部142に更新が完了したことを通知する。更新部143及び後述する他の仮想マシンの更新部151、161、231は例えば、AUTOSARにおいてUCMサブオーディネイト(UCM subordinate)と称される機能の一部又は全部を実行するものである。
仮想ストレージ144は、実ストレージ130の保存領域を仮想化することで、第1の仮想マシン140に仮想的に設けられた保存領域である。そのため、仮想ストレージ144に保存されたファイルは、実ストレージ130に保存されたファイルであるとも観念される。以下に説明する第2の仮想マシン150の仮想ストレージ152、第3の仮想マシン160の仮想ストレージ162についても同様である。
(ii)第2の仮想マシン150、第3の仮想マシン160について
第2の仮想マシン150は、第1の仮想マシン140と同様、ハイパーバイザ110によって管理される仮想マシンである。第2の仮想マシン150は、更新部151、仮想ストレージ152を有する。
第2の仮想マシン150は、第1の仮想マシン140と同様、ハイパーバイザ110によって管理される仮想マシンである。第2の仮想マシン150は、更新部151、仮想ストレージ152を有する。
第3の仮想マシン160は、第1の仮想マシン140及び第2仮想マシン150とは異なり、ハイパーバイザ120によって管理される仮想マシンである。第3の仮想マシン160は、更新部161、仮想ストレージ162を有する。
更新部151及び更新部161は、第1の仮想マシン140の更新指示部148からの更新指示に基づいて、それぞれの仮想マシンのソフトウェアの更新を行う。更新部151及び更新部161は、ソフトウェアの更新処理が完了すると、第1の仮想マシン140の配信制御部142に更新が完了したことを通知する。
仮想ストレージ152及び仮想ストレージ162は、第2の仮想マシン150及び第3の仮想マシン160にそれぞれ仮想的に設けられた保存領域である。第1の仮想マシン140の配信部147から更新ファイルが配信された場合、更新ファイルはそれぞれの仮想ストレージ152、162に保存される。
上述したとおり、第2の仮想マシン150及び第3の仮想マシン160は、第1の仮想マシン140と仮想的に接続されており、これらの仮想マシン間ではデータのやり取りが可能である。
(2)ECU20について
ECU20は、ハイパーバイザ210、ハードウェアである実ストレージ220、及びハイパーバイザ210によって管理される第4の仮想マシン230を備える。
ECU20は、ハイパーバイザ210、ハードウェアである実ストレージ220、及びハイパーバイザ210によって管理される第4の仮想マシン230を備える。
ECU10とECU20とは車載ネットワークで接続されており、ECU10が有する第1の仮想マシン140と、ECU20が有する第4の仮想マシン230とは、車載ネットワークを介して仮想的に接続されている。
ハイパーバイザ210は、ECU20を仮想化するソフトウェアである。第4の仮想マシン230はハイパーバイザ210上に構築される。
実ストレージ220は、ECU10の実ストレージ130と同様、ハードウェアのメモリであり、SRAMやDRAMといった揮発性メモリ、ROM、フラッシュメモリ、又はハードディスク等の不揮発性メモリである。
ECU20が有する第4の仮想マシン230は、上述した第2の仮想マシン150及び第3の仮想マシン160と同様、更新部231及び仮想ストレージ232を有する。
更新部231は、第1の仮想マシン140の更新指示部148からの更新指示に基づいて第4の仮想マシン230のソフトウェアの更新を行い、ソフトウェアの更新処理が完了すると第1の仮想マシン140の配信制御部142に更新が完了したことを通知する。
仮想ストレージ232は、実ストレージ220に仮想的に設けられた保存領域である。配信部147から更新ファイルが配信された場合、更新ファイルを仮想ストレージ232に保存してもよい。
(3)小括
以上、実施形態1、2に共通する電子制御装置、及び電子システムの構成を説明した。
なお、図1は、ECU10が2つのハイパーバイザ(110、120)を有し、ECU20が1つのハイパーバイザ(210)を有する例を示しているが、ハイパーバイザの数は一例にすぎず、これらに限定されるものではない。つまり、ECU10が1つのハイパーバイザのみを有し、ECU20が2以上のハイパーバイザを有する構成としてもよい。また、ハイパーバイザ上に構築される仮想マシンの数についても任意である。
以上、実施形態1、2に共通する電子制御装置、及び電子システムの構成を説明した。
なお、図1は、ECU10が2つのハイパーバイザ(110、120)を有し、ECU20が1つのハイパーバイザ(210)を有する例を示しているが、ハイパーバイザの数は一例にすぎず、これらに限定されるものではない。つまり、ECU10が1つのハイパーバイザのみを有し、ECU20が2以上のハイパーバイザを有する構成としてもよい。また、ハイパーバイザ上に構築される仮想マシンの数についても任意である。
また、第1の仮想マシン140のみが、ファイル取得部及び配信制御部の機能を有する構成を説明したが、他の仮想マシンも第1の仮想マシン10と同様、これらの機能を有してもよい。
2.実施形態1
本実施形態では、更新対象の仮想マシンのハイパーバイザが所定の条件を満たすかどうかに応じて、更新ファイルを更新対象の仮想マシンに配信するかどうかを判定する構成を説明する。
本実施形態では、更新対象の仮想マシンのハイパーバイザが所定の条件を満たすかどうかに応じて、更新ファイルを更新対象の仮想マシンに配信するかどうかを判定する構成を説明する。
(1)第1の仮想マシン140の構成
本実施形態の判定部146は、配信制御部142を有する第1の仮想マシン140(「第1の仮想マシン」に相当)を管理するハイパーバイザ(「第1のハイパーバイザ」に相当)110と、更新対象の仮想マシン(「第2の仮想マシン」に相当)を管理するハイパーバイザ(「第2のハイパーバイザ」に相当)とが「同じ」かどうかを判定する。ハイパーバイザが同じであると判定した場合、判定部146は更新ファイルを更新対象の仮想マシンに配信しないと判定する。一方、ハイパーバイザが異なると判定した場合、判定部146は更新ファイルを更新対象の仮想マシンに配信すると判定する。
本実施形態の判定部146は、配信制御部142を有する第1の仮想マシン140(「第1の仮想マシン」に相当)を管理するハイパーバイザ(「第1のハイパーバイザ」に相当)110と、更新対象の仮想マシン(「第2の仮想マシン」に相当)を管理するハイパーバイザ(「第2のハイパーバイザ」に相当)とが「同じ」かどうかを判定する。ハイパーバイザが同じであると判定した場合、判定部146は更新ファイルを更新対象の仮想マシンに配信しないと判定する。一方、ハイパーバイザが異なると判定した場合、判定部146は更新ファイルを更新対象の仮想マシンに配信すると判定する。
ここで、「同じ」とは、ハイパーバイザが共通である場合の他、ハイパーバイザが別であっても機能や作用が同じ場合を含む。
判定部146は、各仮想マシンの更新部に送信した検索信号に対する、各仮想マシンからの応答信号に基づいて、ハイパーバイザ110と更新対象の仮想マシンを管理するハイパーバイザとが同じかどうかを判定する。したがって、本実施形態の応答信号には、各仮想マシンを管理するハイパーバイザを特定することが可能な情報、例えば、ハイパーバイザの識別IDが含まれる。
なお、判定部146は、第1の仮想マシン140の更新部143に対しても、他の仮想マシンの更新部と同様に検索信号を送信してもよい。この場合、判定部146は当然のことながら、更新部143からの応答信号に基づいて、ハイパーバイザ110と、更新対象の仮想マシンである第1の仮想マシン140を管理するハイパーバイザとが同じであると判定する。
図1の例では、第1の仮想マシン140を管理するハイパーバイザと、第2の仮想マシン150を管理するハイパーバイザはいずれもハイパーバイザ110であって、同じである。そこで、判定部146は、第2の仮想マシン150には更新ファイルを配信しないと判定する。
第1の仮想マシン140を管理するハイパーバイザ110と、第3の仮想マシン160を管理するハイパーバイザ120とは異なるハイパーバイザである。そこで、判定部146は、第3の仮想マシン160に更新ファイルを配信すると判定する。
同様に、第1の仮想マシン140を管理するハイパーバイザ110と、第4の仮想マシン230を管理するハイパーバイザ210とは異なるハイパーバイザである。そこで、判定部146は、第4の仮想マシン230に更新ファイルを配信すると判定する。
以下の実施形態では、判定部146が、応答信号に基づいて、ハイパーバイザ110と、更新対象の仮想マシンを管理するハイパーバイザとが同じかどうかを判定する構成を説明している。しかしながら、判定部146は、応答信号によらずにハイパーバイザを判定してもよい。例えば、車載システムにおいて、各仮想マシンがいずれのハイパーバイザによって管理されるものであるか予め把握される場合、ファイル取得部141や配信制御部142が、仮想マシン及び各仮想マシンを管理するハイパーバイザの情報を予め有していることが想定される。このような場合は、判定部146は応答信号を利用せず、ファイル取得部141からの指示、又は配信制御部142が有する情報に基づいて、ハイパーバイザ110と、更新対象の仮想マシンを管理するハイパーバイザとが同じかどうかを判定してもよい。
なお、本実施形態では、ECU10の2つのハイパーバイザ(110、120)が異なるハイパーバイザである場合を例に挙げて説明している。しかしながら、ハイパーバイザ110、120が1つのホストOS上に設けられている場合には、判定部146はハイパーバイザ110、120が同じであると判定してもよい。複数のハイパーバイザが1つのホストOS上に設けられている場合、それぞれのハイパーバイザ上に構築されるゲストOSは実ストレージ130内の同じ領域にアクセスすることができる。この場合、ハイパーバイザ110、120は、同じ領域にアクセス可能なゲストOSを構築しているという点で機能や作用が同じである。このように、ハイパーバイザ110、120の機能や作用が同じである場合には、判定部146は、2つのハイパーバイザが「同じ」であると判定してもよい。
配信部147は、ハイパーバイザ110と更新対象の仮想マシンを管理するハイパーバイザとが異なり、判定部146が更新ファイルを配信すると判定した仮想マシンにのみ更新ファイルを配信する。したがって、本実施形態の配信部147は、更新ファイルを第3の仮想マシン160及び第4の仮想マシン230に配信する。
更新指示部148は、更新対象の仮想マシンの更新部に対して、仮想マシンのソフトウェアの更新を指示する。更新指示部148は、第1の仮想マシン140の更新部143及び第2の仮想マシン150の更新部151に対して、実ストレージ130にアクセスすることにより、実ストレージ130に保存された更新ファイルを用いて第2の仮想マシン150のソフトウェアを更新することを指示する。
また、更新指示部148は、第3の仮想マシン160の更新部161及び第4の仮想マシン230の更新部231に対して、配信部147が配信する更新ファイルを用いて、それぞれの仮想マシンのソフトウェアを更新することを指示する。
また、更新指示部148は、第3の仮想マシン160の更新部161及び第4の仮想マシン230の更新部231に対して、配信部147が配信する更新ファイルを用いて、それぞれの仮想マシンのソフトウェアを更新することを指示する。
(2)第2の仮想マシン150の構成
第2の仮想マシン150の更新部151は、更新指示部148から更新指示を受信すると、実ストレージ130にアクセスすることにより、実ストレージ130に保存された更新ファイルを参照し、当該更新ファイルを用いて第2の仮想マシン150のソフトウェアを更新する。
第2の仮想マシン150の更新部151は、更新指示部148から更新指示を受信すると、実ストレージ130にアクセスすることにより、実ストレージ130に保存された更新ファイルを参照し、当該更新ファイルを用いて第2の仮想マシン150のソフトウェアを更新する。
(3)第3の仮想マシン160の構成
第3の仮想マシン160の仮想ストレージ162は、配信部147から配信された更新ファイルを保存する。
第3の仮想マシン160の更新部161は、更新指示部148から更新指示を受信すると、仮想ストレージ162に保存された更新ファイルを用いて、第3の仮想マシン160のソフトウェアを更新する。
第3の仮想マシン160の仮想ストレージ162は、配信部147から配信された更新ファイルを保存する。
第3の仮想マシン160の更新部161は、更新指示部148から更新指示を受信すると、仮想ストレージ162に保存された更新ファイルを用いて、第3の仮想マシン160のソフトウェアを更新する。
(4)第4の仮想マシン230の構成
第4の仮想マシン230の実ストレージ220又は仮想ストレージ232は、配信部147から配信された更新ファイルを保存する。更新ファイルの保存先は、実ストレージ220及び仮想ストレージ232のいずれであってもよい。
第4の仮想マシン230の更新部231は、更新指示部148から更新指示を受信すると、実ストレージ220又は仮想ストレージ232に保存された更新ファイルを用いて、第4の仮想マシン230のソフトウェアを更新する。
第4の仮想マシン230の実ストレージ220又は仮想ストレージ232は、配信部147から配信された更新ファイルを保存する。更新ファイルの保存先は、実ストレージ220及び仮想ストレージ232のいずれであってもよい。
第4の仮想マシン230の更新部231は、更新指示部148から更新指示を受信すると、実ストレージ220又は仮想ストレージ232に保存された更新ファイルを用いて、第4の仮想マシン230のソフトウェアを更新する。
(5)電子制御システム1の動作
次に、図2~4を用いて仮想マシンのソフトウェアの更新に関する動作を説明する。図2は電子制御システム1全体の動作を示す図である。図3は、第1の仮想マシン140の配信制御部142の動作を、図4は各仮想マシンが有する更新部の動作をそれぞれ示している。図2に示す符号と、図3、図4に示す符号はそれぞれ対応しており、同じ符号は同じ処理を示している。
次に、図2~4を用いて仮想マシンのソフトウェアの更新に関する動作を説明する。図2は電子制御システム1全体の動作を示す図である。図3は、第1の仮想マシン140の配信制御部142の動作を、図4は各仮想マシンが有する更新部の動作をそれぞれ示している。図2に示す符号と、図3、図4に示す符号はそれぞれ対応しており、同じ符号は同じ処理を示している。
なお、図3、図4に示す配信制御部142及び更新部の動作とは、各電子制御装置(ECU10、ECU20)の動作であるとも観念される。また、各電子制御装置の動作は、電子制御装置で実行されるソフトウェア更新方法を示すだけでなく、電子制御装置で実行可能なソフトウェア更新プログラムの処理手順を示すものである。そして、これらの処理は、図2~図4で示した順序には限定されない。すなわち、あるステップでその前段のステップの結果を利用する関係にある等の制約がない限り、順序を入れ替えてもよい。実施形態2の図7についても同様である。
まず、図2、図3を用いて、主に配信制御部142の動作を説明する。
配信制御部142は、ファイル取得部141から転送された更新ファイル群を受信する(図2、図3:S101)。この更新ファイル群は仮想マシンのソフトウェアを更新するためのファイルであり、ファイル取得部141が電子制御システム1の外部のサーバ装置から取得したファイルである。
配信制御部142のファイル分割部145は、S101で受信した更新ファイル群を、各仮想マシンの更新ファイルに分割するパース処理を行う(図2、図3:S102)。
ファイル分割部145は、S102で分割した更新ファイルを実ストレージ130に保存する(図2、図3:S103)。
配信制御部142の判定部146は、更新対象の仮想マシンに更新ファイルを配信するかどうかを判定するために、仮想マシンに関する情報を問い合わせる内容の検索信号を各仮想マシンに送信する(図2、図3:S104)。
配信制御部142は、ファイル取得部141から転送された更新ファイル群を受信する(図2、図3:S101)。この更新ファイル群は仮想マシンのソフトウェアを更新するためのファイルであり、ファイル取得部141が電子制御システム1の外部のサーバ装置から取得したファイルである。
配信制御部142のファイル分割部145は、S101で受信した更新ファイル群を、各仮想マシンの更新ファイルに分割するパース処理を行う(図2、図3:S102)。
ファイル分割部145は、S102で分割した更新ファイルを実ストレージ130に保存する(図2、図3:S103)。
配信制御部142の判定部146は、更新対象の仮想マシンに更新ファイルを配信するかどうかを判定するために、仮想マシンに関する情報を問い合わせる内容の検索信号を各仮想マシンに送信する(図2、図3:S104)。
判定部146は、第1乃至第4の仮想マシンの更新部(143、151、161、231)から送信された応答信号を受信する(図2、図3:S105)。
判定部146は、S105で受信した応答信号に基づいて、更新対象の仮想マシンに更新ファイルを配信するかどうかを判定する(図2、図3:S106)。上述したとおり、本実施形態の判定部146は、第1の仮想マシン140を管理するハイパーバイザ110と、更新対象の仮想マシンを管理するハイパーバイザとが同じ場合は更新ファイルを配信せず、ハイパーバイザが異なる場合は更新ファイルを配信すると判定する。
ここで、S106において更新ファイルを配信しないと判定した場合、配信制御部142の更新指示部148は、実ストレージ130にアクセスすることにより仮想マシンのソフトウェアを更新することを指示する更新指示を送信する(図2、図3:S107)。
一方、S106において更新ファイルを配信すると判定した場合、配信制御部142の更新指示部148は、配信部147が配信する更新ファイルを用いて仮想マシンのソフトウェアを更新することを指示する更新指示を送信する(図2、図3:S108)。
配信制御部142の配信部147は、S106において更新ファイルを配信すると判定した仮想マシン、すなわち、第1のハイパーバイザと、更新対象の仮想マシンを管理するハイパーバイザとが同じであると判定した仮想マシンに更新ファイルを配信する(図2、図3:S109)。本実施形態の配信部147は、第3の仮想マシン160及び第4の仮想マシン230に更新ファイルを配信する。
一方、S106において更新ファイルを配信すると判定した場合、配信制御部142の更新指示部148は、配信部147が配信する更新ファイルを用いて仮想マシンのソフトウェアを更新することを指示する更新指示を送信する(図2、図3:S108)。
配信制御部142の配信部147は、S106において更新ファイルを配信すると判定した仮想マシン、すなわち、第1のハイパーバイザと、更新対象の仮想マシンを管理するハイパーバイザとが同じであると判定した仮想マシンに更新ファイルを配信する(図2、図3:S109)。本実施形態の配信部147は、第3の仮想マシン160及び第4の仮想マシン230に更新ファイルを配信する。
各仮想マシンの更新部は、更新処理を行う(S110)。更新部における更新処理については、後述する。
配信制御部142は、S110の更新処理が完了した各仮想マシンの更新部から、更新処理が完了したことを示す更新完了通知を受信する(図2、図3:S111)。
配信制御部142は、各仮想マシンの更新部から更新処理が完了したことを示す通知を受信すると、ファイル取得部141に各仮想マシンの更新処理が完了したことを通知する(図2、図3:S112)。
次に、図2、図4を用いて、主に各仮想マシンの更新部の動作を説明する。
第1乃至第4の仮想マシンの更新部(143、151、161、231)は、S104で判定部146から送信された検索信号を受信する(S201)。
各更新部は、検索信号の問い合わせに対する応答信号を、判定部146に送信する(S202)。
第1乃至第4の仮想マシンの更新部(143、151、161、231)は、S104で判定部146から送信された検索信号を受信する(S201)。
各更新部は、検索信号の問い合わせに対する応答信号を、判定部146に送信する(S202)。
次に、更新部は、S107及びS108で更新指示部148から送信された更新指示を受信する(S203)。ここで、S203で受信した更新指示が、実ストレージにアクセスすることによる更新指示の場合(S204:Yes)、すなわち、S107で更新指示部148から送信された更新指示の場合、実ストレージ130に保存された更新ファイルを用いて仮想マシンの更新を行う(S110)。本実施形態の例では、第1の仮想マシン140の更新部143、及び第2の仮想マシン150の更新部151は、S107の更新指示を受信する。したがって、更新部143及び更新部151は、実ストレージ130にアクセスすることにより、実ストレージ130に保存された更新ファイルを用いて、それぞれ第1の仮想マシン140及び第2の仮想マシン150の更新を行う(S110)。
これに対し、S203で受信した更新指示が、実ストレージにアクセスすることによる更新指示ではない場合(S204:No)、すなわち、S108で更新指示部148から送信された更新指示の場合、更新部はS109で配信された更新ファイルを受信する(S205)。本実施形態の例では、第3の仮想マシン160の更新部161、及び第4の仮想マシン230の更新部231は、S108の更新指示を受信し、さらに、S109で配信された更新ファイルを受信する(S205)。そして、更新部161及び更新部231は、S205で受信した更新ファイルを用いて、仮想マシンのソフトウェアの更新を行う(S110)。
各仮想マシンの更新部は、S110の更新処理が完了すると、配信制御部142に対して、更新処理が完了したことを示す更新完了通知を送信する(S206)。
(6)小括
以上の構成によれば、仮想マシンのソフトウェアを更新するための更新ファイルの配信制御を行う仮想マシンは、当該仮想マシンを管理するハイパーバイザとは異なるハイパーバイザによって管理される仮想マシンにのみ更新ファイルを配信し、同じハイパーバイザによって管理される仮想マシンには更新ファイルを配信しない。これにより、一部の仮想マシンに対する更新ファイルの配信処理を省略することができるため、配信処理にかかる負荷を低減することができるとともに、仮想マシンのソフトウェアを更新するのに要する時間を短縮することが可能となる。
さらに、一部の仮想マシンに対する更新ファイルの配信処理を省略することにより、ECU間での通信量を抑制することができるため、通信線の負荷や混雑を低減することが可能となる。
以上の構成によれば、仮想マシンのソフトウェアを更新するための更新ファイルの配信制御を行う仮想マシンは、当該仮想マシンを管理するハイパーバイザとは異なるハイパーバイザによって管理される仮想マシンにのみ更新ファイルを配信し、同じハイパーバイザによって管理される仮想マシンには更新ファイルを配信しない。これにより、一部の仮想マシンに対する更新ファイルの配信処理を省略することができるため、配信処理にかかる負荷を低減することができるとともに、仮想マシンのソフトウェアを更新するのに要する時間を短縮することが可能となる。
さらに、一部の仮想マシンに対する更新ファイルの配信処理を省略することにより、ECU間での通信量を抑制することができるため、通信線の負荷や混雑を低減することが可能となる。
(7)実施形態1の変形例1
図1では、ECU10が2つのハイパーバイザ(ハイパーバイザ110、ハイパーバイザ120)を有する構成を説明した。例えばデュアルプロセッサのように、ECUが複数のマイクロプロセッサを搭載している場合には、一のECUが複数のハイパーバイザを備える構成が想定される。
図1では、ECU10が2つのハイパーバイザ(ハイパーバイザ110、ハイパーバイザ120)を有する構成を説明した。例えばデュアルプロセッサのように、ECUが複数のマイクロプロセッサを搭載している場合には、一のECUが複数のハイパーバイザを備える構成が想定される。
しかしながら、電子制御システム1を構成する各ECUがいずれもシングルプロセッサであり、全てのECUが一のハイパーバイザのみを備えていることがある。このような場合、電子制御システム1を構成する各ECUが複数のハイパーバイザを備える構成は想定されない。そこで、判定部146は、配信制御部142を有する仮想マシンを有するECUと、更新対象の仮想マシンを有するECUが同じかどうかを判定することによって、第1の仮想マシン140を管理するハイパーバイザ110と、各仮想マシンを管理するハイパーバイザとが同じであるかどうかを判定してもよい。
例えば、判定部146は、仮想マシンが搭載されたECUのデバイスIDを問い合わせる検索信号を各仮想マシンに送信する。そして、判定部146が、各仮想マシンからの応答信号に基づいて、第1の仮想マシン140を有するECU10と、更新対象の仮想マシンを有するECUとが同じであるかどうかを判定する。ここで、判定部146が、同じECUであると判定した場合、第1の仮想マシン140を管理するハイパーバイザ110と、更新対象のハイパーバイザとが同じであると判定する。
本変形例によれば、ECUを判定することによって、更新ファイルの配信制御を行う仮想マシンを管理するハイパーバイザと、更新対象の仮想マシンを管理するハイパーバイザとが同一であるかどうかを判定することができ、更新対象の仮想マシンに更新ファイルを配信するかどうかの判定が容易となる。
(8)実施形態1の変形例2
上述した実施形態では、ECU10が備えるハイパーバイザ110と、ECU20が備えるハイパーバイザ210とは異なることを前提として説明した。しかしながら、共通のハイパーバイザが、ECUを跨って仮想マシンを管理する構成であってもよい。
上述した実施形態では、ECU10が備えるハイパーバイザ110と、ECU20が備えるハイパーバイザ210とは異なることを前提として説明した。しかしながら、共通のハイパーバイザが、ECUを跨って仮想マシンを管理する構成であってもよい。
本変形例2では、ECU10が備えるハイパーバイザ110と、ECU20が備えるハイパーバイザ210は同じハイパーバイザであり、第1の仮想マシン140と第4の仮想マシン230は同じハイパーバイザによって管理される。第1の仮想マシン140を管理するハイパーバイザ110と、第4の仮想マシン230を管理するハイパーバイザ210とが同じであるため、本変形例2の判定部146は、第4の仮想マシン230には更新ファイルを配信しないと判定する。
第4の仮想マシン230には更新ファイルが配信されないため、第4の仮想マシン230の更新部231は、ECU10が備える実ストレージ130にアクセスすることにより、実ストレージ130に保存された更新ファイルを用いて第4の仮想マシン230のソフトウェアを更新する。
3.実施形態2
本実施形態では、更新ファイルの配信制御を行う仮想マシンに関する安全性を示す安全度と更新対象の仮想マシンに関する安全性を示す安全度とに基づいて更新ファイルを配信するかどうかを判定する構成を、実施形態1との相違点を中心に説明する。
本実施形態では、更新ファイルの配信制御を行う仮想マシンに関する安全性を示す安全度と更新対象の仮想マシンに関する安全性を示す安全度とに基づいて更新ファイルを配信するかどうかを判定する構成を、実施形態1との相違点を中心に説明する。
(1)ECU10の構成
図5は、本実施形態のECU10の実ストレージ130を示す図である。本実施形態の実ストレージ130は5つの安全度の保存領域を有している。
図5は、本実施形態のECU10の実ストレージ130を示す図である。本実施形態の実ストレージ130は5つの安全度の保存領域を有している。
本実施形態における安全度は、例えば、自動車安全度水準ASIL(Automotive Safety Integrity Level)に基づいて設定される安全度である。ASILは、ISO26262規格で定義された、車両の機能安全に応じて分類される指標である。ASILには、安全度水準が低いものから順に、ASIL-A、ASIL-B、ASIL-C、ASIL-Dの段階があり、さらに、特定の機能安全を適用しなくてもよい場合にはQM(Quality Management)と呼ばれる品質管理が適用される。QMはASIL-Aよりも低い安全度水準を示している。ASIL、QMは、ハードウェアやソフトウェアそれぞれに割り当てられる。
図5に示す例では、実ストレージ130は、QM用、ASIL-A用、ASIL-B用、ASIL-C用、及びASIL-D用の保存領域をそれぞれ有している。ECU10が有する仮想マシンが使用する実ストレージ130の保存領域は、仮想マシン自身又は仮想マシンが有する各構成の安全度に対応する。例えば、仮想マシンの安全度がASIL-Aである場合、当該仮想マシンが使用する実ストレージ130の保存領域は、図5に示す保存領域のうちASIL-A用の保存領域となる。仮想マシンの安全度がASIL-Aであっても、仮想マシンが有する構成のうち独立性の高いものがASIL-Bである場合には、当該構成がASIL-B用の保存領域を使用する場合もある。
各仮想マシン又は仮想マシンが有する構成は、自身の安全度よりも高い安全度の実ストレージ130の保存領域にはアクセスすることができない。例えば、安全度がASIL-Bの仮想マシンは、ASIL-C用の保存領域及びASIL-D用の保存領域にはアクセスすることができない。
以下の実施形態では、仮想マシンに関する安全性を示す安全度を用いて、更新ファイルを配信するかどうかの判定を行う構成を説明する。ここで、仮想マシンに関する安全性を示す安全度とは、仮想マシンに割り当てられた仮想マシンの安全度であってもよく、あるいは、仮想マシンが有する特定の構成に割り当てられた安全度であってもよい。例えば、第1の仮想マシン140の配信制御部142に割り当てられた安全度を第1の仮想マシン140に関する安全度として利用し、第2の仮想マシン150の更新部151に割り当てられた安全度を第2の仮想マシン150の安全度として利用してもよい。
別の例として、仮想マシンの安全度とは、例えば、仮想マシンが有する各構成に割り当てられた安全度のうち、最も低い安全度と等しい値であってもよい。この場合、第1の仮想マシン140において、ファイル取得部141、配信制御部142、仮想ストレージ144の安全度がASIL-Cであり、更新部143の安全度がASIL-Bの場合、第1の仮想マシン140に関する安全度はASIL-Bとなる。
以下、第1の仮想マシン140の安全度がASIL-B、第2の仮想マシン150の安全度がASIL-A、第3の仮想マシンの安全度がASIL-C、及び第4の仮想マシンの安全度がQMであるとして、本実施形態を説明する。
(2)第1の仮想マシン140の構成
本実施形態の判定部146は、各仮想マシンの安全度を問い合わせる検索信号を各仮想マシンに送信する。そして、各仮想マシンから、各仮想マシンの安全度を示す応答信号を受信する。
本実施形態の判定部146は、各仮想マシンの安全度を問い合わせる検索信号を各仮想マシンに送信する。そして、各仮想マシンから、各仮想マシンの安全度を示す応答信号を受信する。
判定部146は、配信制御部142を有する第1の仮想マシン140に関する安全性を示す安全度A(「第1の安全度」に相当)と、更新対象の仮想マシンに関する安全性を示す安全度B(「第2の安全度」に相当)とに基づいて、更新対象の仮想マシンに更新ファイルを配信するかどうかを判定する。
図6は、判定部146が、第1の仮想マシン140の安全度Aと、更新対象の仮想マシンの安全度Bとに基づいて、いかにして更新ファイルを配信する又は配信しないと判定するかを示している。
図6は、仮想マシン自身の安全度A、安全度Bに基づいて、更新ファイルの配信有無を判定する例を示しているが、上述したとおり、安全度Aは、第1の仮想マシン140の配信制御部142に割り当てられた安全度であって、安全度Bは更新対象の仮想マシンの更新部に割り当てられた安全度であってもよい。
図6は、第1の仮想マシン140の安全度Aが、更新対象の仮想マシンの安全度B「よりも」高い場合に、判定部146は、更新対象の仮想マシンに更新ファイルを配信すると判定することを示している。上述したとおり、第1の仮想マシンの安全度Aが更新対象の仮想マシンの安全度Bよりも高い場合、更新対象の仮想マシンの更新部は第1の仮想マシン140が使用する実ストレージ130の保存領域にアクセスすることができない。そこで、更新対象の仮想マシンの更新部が、第1の仮想マシン140が使用する実ストレージ130の保存領域にアクセスすることができない場合に、判定部146は更新ファイルを配信すると判定する。
ここで、「よりも」とは、比較対象と同じ値を含む場合及び含まない場合の両方が含まれる。
なお、図6の表では、第1の仮想マシン140が使用する実ストレージ130の保存領域にアクセスすることができない場合に限り、更新ファイルを配信すると判定する例を示しているが、安全度Aが安全度Bと等しい場合にも更新ファイルを配信する構成としてもよい。
判定部146は、各仮想マシンの更新部に送信した検索信号に対する、各仮想マシンからの応答信号に基づいて、更新対象の仮想マシンの安全度を特定することができる。したがって、本実施形態の応答信号には、各仮想マシンの安全度を示す情報が含まれる。
なお、判定部146は、第1の仮想マシン140の更新部143に対しても、他の仮想マシンの更新部と同様に検索信号を送信してもよい。この場合、判定部146は当然のことながら、更新部143からの応答信号に基づいて、第1の仮想マシン140の安全度と、更新対象の仮想マシンの安全度とが同じであると判定する。
本実施形態の例では、第1の仮想マシン140の安全度(ASIL-B)は、第2の仮想マシン150の安全度(ASIL-A)及び第4の仮想マシン230の安全度(QM)よりも高い。したがって、判定部146は第2の仮想マシン150及び第4の仮想マシン230に更新ファイルを配信すると判定する。
一方、第1の仮想マシン140の安全度(ASIL-B)は、第3の仮想マシン160の安全度(ASIL-C)よりも低いため、判定部146は第3の仮想マシン160には更新ファイルを配信しないと判定する。
一方、第1の仮想マシン140の安全度(ASIL-B)は、第3の仮想マシン160の安全度(ASIL-C)よりも低いため、判定部146は第3の仮想マシン160には更新ファイルを配信しないと判定する。
更新指示部148は、第2の仮想マシン150及び第4の仮想マシン230に対して、配信部147が配信する更新ファイルを用いて仮想マシンのソフトウェアを更新することを指示する。一方、更新指示部148は、第1の仮想マシン140及び第3の仮想マシン160に対して、実ストレージ130のASIL-Bの保存領域にアクセスすることにより、実ストレージ130に保存された更新ファイルを用いて仮想マシンのソフトウェアを更新することを指示する。
(3)第2の仮想マシン150の構成
第2の仮想マシン150の仮想ストレージ152は、配信部147から配信された更新ファイルを保存する。
第2の仮想マシン150の更新部151は、更新指示部148から更新指示を受信すると、仮想ストレージ152に保存された更新ファイルを用いて、第2の仮想マシン150のソフトウェアを更新する。
なお、仮想ストレージ152は、実ストレージ130の保存領域のうち、第2の仮想マシン150の安全度に対応するASIL-Aの保存領域を仮想化した領域である。
第2の仮想マシン150の仮想ストレージ152は、配信部147から配信された更新ファイルを保存する。
第2の仮想マシン150の更新部151は、更新指示部148から更新指示を受信すると、仮想ストレージ152に保存された更新ファイルを用いて、第2の仮想マシン150のソフトウェアを更新する。
なお、仮想ストレージ152は、実ストレージ130の保存領域のうち、第2の仮想マシン150の安全度に対応するASIL-Aの保存領域を仮想化した領域である。
(4)第3の仮想マシン160の構成
第3の仮想マシン160が有する更新部161は、実ストレージ130のASIL-Bの保存領域にアクセスすることにより、実ストレージ130に保存された更新ファイルを参照し、当該更新ファイルを用いて第3の仮想マシン160のソフトウェアを更新する。
第3の仮想マシン160が有する更新部161は、実ストレージ130のASIL-Bの保存領域にアクセスすることにより、実ストレージ130に保存された更新ファイルを参照し、当該更新ファイルを用いて第3の仮想マシン160のソフトウェアを更新する。
(5)第4の仮想マシン230の構成
第4の仮想マシン230の実ストレージ220又は仮想ストレージ232は、配信部147から配信された更新ファイルを保存する。更新ファイルの保存先は、実ストレージ220及び仮想ストレージ232のいずれであってもよい。そして、第4の仮想マシン230の更新部231は、更新指示部148から更新指示を受信すると、実ストレージ220又は仮想ストレージ232に保存された更新ファイルを用いて、第4の仮想マシン230のソフトウェアを更新する。
第4の仮想マシン230の実ストレージ220又は仮想ストレージ232は、配信部147から配信された更新ファイルを保存する。更新ファイルの保存先は、実ストレージ220及び仮想ストレージ232のいずれであってもよい。そして、第4の仮想マシン230の更新部231は、更新指示部148から更新指示を受信すると、実ストレージ220又は仮想ストレージ232に保存された更新ファイルを用いて、第4の仮想マシン230のソフトウェアを更新する。
(6)電子制御システム1及びECU10、ECU20が有する仮想マシンの動作
図7は、本実施形態の電子制御システム1全体の動作を示している。また、本実施形態の第1の仮想マシン140の配信制御部142の動作及び更新部の動作は、実施形態1の図3、4と同じであり、図3、4を参照して説明する。
図7は、本実施形態の電子制御システム1全体の動作を示している。また、本実施形態の第1の仮想マシン140の配信制御部142の動作及び更新部の動作は、実施形態1の図3、4と同じであり、図3、4を参照して説明する。
図7に示すS101乃至S112の処理は、図2に示す実施形態1の電子制御システム1の処理と同じである。ただし、本実施形態のS106では、第1の仮想マシン140の判定部146が更新対象の仮想マシンに更新ファイルを配信するかどうかの判定方法が実施形態1とは異なる。本実施形態のS106では、判定部146は、第1の仮想マシン140の安全度、及び更新対象の仮想マシンの安全度に基づいて、更新対象の仮想マシンに更新ファイルを配信するかどうかを判定する。上述したとおり、本実施形態では、第1の仮想マシン140の安全度は、第2の仮想マシン150及び第4の仮想マシン230の安全度よりも高いため、判定部146は第2の仮想マシン150及び第4の仮想マシン230に更新ファイルを配信すると判定する。また、第1の仮想マシン140の安全度は、第3の仮想マシン160の安全度よりも低いため、判定部146は第3の仮想マシン160には更新ファイルを配信しないと判定する。
配信制御部142の更新指示部148は、第1の仮想マシン140の更新部143及び第3の仮想マシン160の更新部161に対し、実ストレージ130のASIL-Bの保存領域にアクセスすることにより仮想マシンのソフトウェアを更新することを指示する(図7、図3:S107)。
更新指示部148はさらに、第2の仮想マシン150の更新部151及び第4の仮想マシン230の更新部231に対し、配信部147が配信する更新ファイルを用いて仮想マシンのソフトウェアを更新することを指示する(図7、図3:S108)。
配信制御部142の配信部147は、第2の仮想マシン150及び第4の仮想マシン230に更新ファイルを配信する(図7、図3:S109)。
更新指示部148はさらに、第2の仮想マシン150の更新部151及び第4の仮想マシン230の更新部231に対し、配信部147が配信する更新ファイルを用いて仮想マシンのソフトウェアを更新することを指示する(図7、図3:S108)。
配信制御部142の配信部147は、第2の仮想マシン150及び第4の仮想マシン230に更新ファイルを配信する(図7、図3:S109)。
第1の仮想マシン140の更新部143は、S107で更新指示部148から送信された更新指示を受信する(S203)。この更新指示は、実ストレージにアクセスすることによる更新指示であるため(S204:Yes)、更新部143は実ストレージ130のASIL-Bの保存領域にアクセスすることにより、実ストレージ130に保存された更新ファイルを用いて第1の仮想マシン140の更新を行う(図7、図4:S110)。
同様に、第3の仮想マシン160の更新部161は、S107で更新指示部148から送信された更新指示を受信すると(S203,S204:Yes)、実ストレージ130のASIL-Bの保存領域にアクセスすることにより、実ストレージ130に保存された更新ファイルを用いて第3の仮想マシン160の更新を行う(図7、図4:S110)。
同様に、第3の仮想マシン160の更新部161は、S107で更新指示部148から送信された更新指示を受信すると(S203,S204:Yes)、実ストレージ130のASIL-Bの保存領域にアクセスすることにより、実ストレージ130に保存された更新ファイルを用いて第3の仮想マシン160の更新を行う(図7、図4:S110)。
一方、第2の仮想マシン150の更新部151は、S108で更新指示部148から送信された更新指示を受信する(S203)。この更新指示は、実ストレージにアクセスすることによる更新指示ではないため(S204:No)、更新部151はさらに、配信部147から配信された更新ファイルを受信する(S205)。更新部151は、更新指示に基づいて、配信部147から配信された更新ファイルを用いて第2の仮想マシン150の更新を行う(図7、図4:S110)。
同様に、第4の仮想マシン230の更新部231は、S108で更新指示部148から送信された更新指示を受信し(S203,S204:No)、配信部147から配信された更新ファイルを受信する(S205)。そして、更新部231は、更新指示に基づいて、配信部147から配信された更新ファイルを用いて第4の仮想マシン230の更新を行う(図7、図4:S110)。
同様に、第4の仮想マシン230の更新部231は、S108で更新指示部148から送信された更新指示を受信し(S203,S204:No)、配信部147から配信された更新ファイルを受信する(S205)。そして、更新部231は、更新指示に基づいて、配信部147から配信された更新ファイルを用いて第4の仮想マシン230の更新を行う(図7、図4:S110)。
(7)小括
以上の構成によれば、仮想マシンのソフトウェアを更新するための更新ファイルの配信制御を行う仮想マシンは、当該仮想マシンの安全度よりも高い安全度を有する仮想マシンにのみ更新ファイルを配信し、当該仮想マシンの安全度以下の安全度を有する仮想マシンには更新ファイルを配信しない。これにより、一部の仮想マシンに対する更新ファイルの配信処理を省略することができるため、配信処理にかかる負荷を低減することができるとともに、仮想マシンのソフトウェアを更新に要する時間を短縮することが可能となる。
以上の構成によれば、仮想マシンのソフトウェアを更新するための更新ファイルの配信制御を行う仮想マシンは、当該仮想マシンの安全度よりも高い安全度を有する仮想マシンにのみ更新ファイルを配信し、当該仮想マシンの安全度以下の安全度を有する仮想マシンには更新ファイルを配信しない。これにより、一部の仮想マシンに対する更新ファイルの配信処理を省略することができるため、配信処理にかかる負荷を低減することができるとともに、仮想マシンのソフトウェアを更新に要する時間を短縮することが可能となる。
(8)実施形態2の変形例1
上述した実施形態2では、第1の仮想マシン140の安全度が更新対象の仮想マシンの安全度よりも高い場合にのみ、更新ファイルを配信する構成を説明した。しかしながら、第1の仮想マシン140の安全度が更新対象の仮想マシンの安全度と異なる場合に限り、更新ファイルを配信する構成としてもよい。
上述した実施形態2では、第1の仮想マシン140の安全度が更新対象の仮想マシンの安全度よりも高い場合にのみ、更新ファイルを配信する構成を説明した。しかしながら、第1の仮想マシン140の安全度が更新対象の仮想マシンの安全度と異なる場合に限り、更新ファイルを配信する構成としてもよい。
図8は、本変形例1の判定部146が、第1の仮想マシン140の安全度Aと、更新対象の仮想マシンの安全度Bとに基づいて、いかにして更新ファイルを配信する又は配信しないと判定するかを示している。
図8に示す例では、第1の仮想マシン140の安全度Aと、更新対象の仮想マシンの安全度Bとが異なる場合に、判定部146は、更新対象の仮想マシンに更新ファイルを配信すると判定する。一方、第1の仮想マシン140の安全度Aと、更新対象の仮想マシンの安全度Bとが等しい場合、判定部146は、更新対象の仮想マシンに更新ファイルを配信しないと判定する。
上述した実施形態2と同様、第1の仮想マシン140の安全度がASIL-B、第2の仮想マシン150の安全度がASIL-A、第3の仮想マシンの安全度がASIL-C、及び第4の仮想マシンの安全度がQMであるとした場合、第1の仮想マシン140の安全度と、第2乃至第4の仮想マシンの安全度はいずれも異なっている。そのため、判定部146は、第2乃至第4の仮想マシンの全てに更新ファイルを配信すると判定する。そして、第1の仮想マシン自身に対してのみ、更新ファイルを配信しないと判定する。
本変形例では、更新ファイルの配信制御を行う仮想マシンが使用する実ストレージの保存領域にアクセス可能な仮想マシンを、同じ安全度を有する更新対象の仮想マシンに限定し、異なる安全度を有する仮想マシンからのアクセスを制限することにより、実ストレージのセキュリティを確保することができる。
(9)第2の実施形態の変形例2
上述した実施形態1、2は、それぞれ異なる実施形態として説明したが、本変形例では、実施形態2に、実施形態1の特徴を適用する。
上述した実施形態1、2は、それぞれ異なる実施形態として説明したが、本変形例では、実施形態2に、実施形態1の特徴を適用する。
本変形例の判定部146は、第1の仮想マシン140を管理するハイパーバイザ110と、更新対象の仮想マシンを管理するハイパーバイザとが同じかどうか、に加えて、第1の仮想マシン140の安全度、及び更新対象の仮想マシンの安全度に基づいて、更新対象の仮想マシンに更新ファイルを配信するかどうかを判定する。
例えば、判定部146は、第1の仮想マシン140を管理するハイパーバイザ110と、更新対象の仮想マシンを管理するハイパーバイザと異なり、且つ、第1の仮想マシン140の安全度が更新対象の仮想マシンの安全度よりも高い場合に、更新ファイルを更新対象の仮想マシンに配信すると判定する。
あるいは、判定部146は、実施形態1で説明した判定方法、又は実施形態2で説明した判定方法のいずれか一方を選択して、各仮想マシンに更新ファイルを配信するかどうかを判定してもよい。
4.電子制御装置及び電子制御システムの変形例
本項では、実施形態1、2に共通する電子制御装置及び電子制御システムの構成の変形例を説明する。
本項では、実施形態1、2に共通する電子制御装置及び電子制御システムの構成の変形例を説明する。
上述した例では、例えば、ECU10がAPをベースとしたECUであり、ECU20がCPをベースとしたECUである場合を説明した。しかしながら、ECUに構築される仮想マシンそれぞれが、AP、CPといったプラットフォームを有してもよい。
図9は、各仮想マシンがそれぞれのプラットフォーム(以下、PF)を有する例を説明する図である。図9では、配信制御部142が実現する各機能の記載は省略しているが、図1と同様、配信制御部142は、ファイル分割部145、判定部146、配信部147、更新指示部148を実現する。
図9では、第1の仮想マシン140は第1のPF1401を、第2の仮想マシン150は第2のPF1501を、第3の仮想マシン160は第3のPF1601を、第4の仮想マシン230は第4のPF2301を、それぞれ有している。図9はさらに、各仮想マシンのPF上で動作するアプリケーション(1402、1502、1602、2302)をそれぞれ示している。
PFには、AP、CPの他に様々な種類のPFがあり、第1~第4のPF(1401、1501、1601、2301)として、任意のPFを適用することができる。例えば、第1のPF1401はAPを、第2のPF1501はCPを、第3のPF1601はAP、CP以外のPFを適用することにより、PFが異なる複数の仮想マシンが1つのECU内に混在して存在してもよい。このように1つのECU内に異なるPFを有する複数の仮想マシンを混在させることにより、1つのECUに複数の機能を統合させることが可能となり、ひいてはECUの総数を低減することが可能となる。
このような構成の場合、仮想マシンのOSは、例えば、ハイパーバイザとPFとの間に設けられる、あるいは、ハイパーバイザと一体として、又はPFに含まれるように構成されてもよい。
各仮想マシンの更新部は仮想マシンのソフトウェアの更新を行うものであるが、図9の構成では、更新部は、仮想マシンのソフトウェアの更新として、PF又はPF上で動作するアプリケーションを更新してもよい。例えば、更新部143は、第1のPF1401又は第1のアプリケーション1402の更新を行う。
なお、図9は、ファイル取得部141が第1のアプリケーション1402に含まれており、配信制御部142及び更新部143が第1のPF1041に含まれるものとして図示している。しかしながら、第1のPF1401に含まれるソフトウェアがファイル取得部141の一部又は全部の機能を実現してもよく、あるいは、第1のアプリケーション1402が配信制御部142及び更新部143の一部又は全部の機能を実現してもよい。同様に、第2~第4のアプリケーション(1502、1602、2302)がそれぞれの更新部(151、161、231)の一部又は全部の機能を実現してもよい。
図9はさらに、ECU10の実ストレージ130が、3つの保存領域、すなわち、共有保存領域131、ソフトウェア保存領域132、及び配信ファイル保存領域133を有する構成を示している。
共有保存領域131は、ファイル取得部141が取得し、ファイル分割部145がパース処理を行った更新ファイルを保存する領域である。ソフトウェア保存領域132は、第1~第3のPF1401、1501、1601、及び第1~第3のアプリケーション1402、1502、1602といった、仮想マシンを構成するソフトウェアを保存する領域である。配信ファイル保存領域133は、配信部147から配信された更新ファイルを保存する領域である。配信ファイル保存領域133を仮想化することで、各仮想マシンに仮想ストレージを構築する。
本変形例では、実ストレージ130に保存されている更新ファイルを用いて仮想マシンのソフトウェアを更新することを指示された更新部は、共有保存領域131にアクセスするとともに、共有保存領域131に保存されている更新ファイルを用いて、仮想マシンのソフトウェア、すなわち、ソフトウェア保存領域132に保存されているソフトウェアの更新を行う。これに対し、配信部147が配信する更新ファイルを用いて仮想マシンのソフトウェアを更新することを指示された更新部は、配信部147から配信され、配信ファイル保存領域133に保存された更新ファイルを用いて、ソフトウェア保存領域132に保存されているソフトウェアの更新を行う。
ECU20の実ストレージ220は、実ストレージ130と同様、ソフトウェア保存領域222及び配信ファイル保存領域223を有している。しかしながら、ECU20では、ファイル取得部が取得した更新ファイルを保存する必要がないため、実ストレージ220は共有保存領域131に相当する保存領域を有していない。ソフトウェア保存領域222及び配信ファイル保存領域223は、ソフトウェア保存領域132及び配信ファイル保存領域133と同様、仮想マシンを構成するソフトウェア、及び配信部147から配信された更新ファイルをそれぞれ保存する。
なお、図9は、実ストレージ130が、共有保存領域131、ソフトウェア保存領域132、及び配信ファイル保存領域133の全てを含むものとして図示しているが、実ストレージ130は複数の異なるストレージによって実現されるものであってもよい。例えば、本変形例のソフトウェア保存領域132は不揮発性メモリであるが、共有保存領域131、配信ファイル保存領域133は、不揮発メモリ又は揮発性メモリのいずれでもよい。したがって、共有保存領域131及び配信ファイル保存領域133が、揮発性メモリである実ストレージ130の保存領域にそれぞれ設けられ、ソフトウェア保存領域132が、不揮発性メモリである実ストレージ130の保存領域に設けられてもよい。
5.ドメイン・アーキテクチャへの適用
次に、実施形態1、2における電子制御システム1をドメイン・アーキテクチャに適用する場合の構成例を説明する。ドメイン・アーキテクチャとは、複数のECUを、その機能、役割、又はネットワーク接続に応じてドメインと称されるグループに分類するとともに、ドメイン毎に同じドメインに属する複数のECUを管理して制御するドメインコントローラECU(以下、DC-ECU)を配置するものである。ドメイン・アーキテクチャでは、機能やネットワークに応じてECUを整理して統合することができるため、車載システムのように多数のECUから構成されるシステムにおいて、将来的なECUの更新作業が容易になるだけでなく、増大しつつあるECUの総数を抑制することが可能となる。
次に、実施形態1、2における電子制御システム1をドメイン・アーキテクチャに適用する場合の構成例を説明する。ドメイン・アーキテクチャとは、複数のECUを、その機能、役割、又はネットワーク接続に応じてドメインと称されるグループに分類するとともに、ドメイン毎に同じドメインに属する複数のECUを管理して制御するドメインコントローラECU(以下、DC-ECU)を配置するものである。ドメイン・アーキテクチャでは、機能やネットワークに応じてECUを整理して統合することができるため、車載システムのように多数のECUから構成されるシステムにおいて、将来的なECUの更新作業が容易になるだけでなく、増大しつつあるECUの総数を抑制することが可能となる。
(1)ドメイン・アーキテクチャの概要
図10は、ドメイン・アーキテクチャを簡略的に示した図である。図10に示すドメイン・アーキテクチャは、DC-ECU30A、30B、ゲートウェイECU(以下、GW-ECU)40、及びECU50A、51A、50B、51Bを有している。
図10は、ドメイン・アーキテクチャを簡略的に示した図である。図10に示すドメイン・アーキテクチャは、DC-ECU30A、30B、ゲートウェイECU(以下、GW-ECU)40、及びECU50A、51A、50B、51Bを有している。
さらに、図10に示すドメイン・アーキテクチャは2つのドメインを有しており、第1のドメイン2AはDC-ECU30A及びECU50A、51Aを、第2のドメイン2BはDC-ECU30B及びECU50B、51Bを、それぞれ有している。上述したとおり、ドメインは、ECUの機能やネットワークに応じて分類されるものであり、車載システムの場合、例えば、車両の駆動系を制御するドメイン、自動運転を制御するドメイン、車載テレビや車載コンピュータといった娯楽機器を制御するドメイン等が挙げられる。
DC-ECU30Aは第1のドメイン2Aに属するECU50A、51Aを制御し、DC-ECU30Bは第2のドメイン2Bに属するECU50B、51Bを制御する。例えば、第1のドメイン2Aが自動運転を制御するドメインの場合、DC-ECU30Aは、カメラECU、レーダECU、ライダECU、ロケータECU、又は各種の自動運転アプリケーションを搭載するECUといったECU50A、51Aを制御する。DC-ECU30Aはさらに、ECU50A、51Aから出力されたセンサ情報を統合するセンサフュージョンアプリケーションを有し、センサフュージョンアプリケーションからの出力をECU50A、51Aに提供してもよい。
GW-ECU40は、車載ネットワークにおいてゲートウェイ装置として機能するECUである。GW-ECU40は複数のバスに接続され、それぞれのバスを介して他のECUと接続されている。GW-ECU40は例えばドメイン間の通信を中継する。GW-ECU40はさらに、車両外部とドメインとの間のゲートウェイとしての機能も有する。
なお、図10では、DC-ECU30A、GW-ECU40、ECU50A、51Aをそれぞれ異なるECUとして記載しているが、上述した各ECUの機能を他のECUに統合してもよい。例えば、ECU50A、51Aの機能の一部をDC-ECU30Aに統合してもよい。この場合、DC-ECU30Aに統合された機能は、DC-ECU30Aに搭載される仮想マシンによって実現されてもよい。
(2)電子制御システム1へのドメイン・アーキテクチャの適用例
上述した実施形態では、ECU10及びECU20を有する電子制御システム1を説明した。ここで、図10のドメイン・アーキテクチャを電子制御システム1に適用する場合、更新ファイルを取得して他の仮想マシンに更新ファイルを配信するECU10は、図10のDC-ECU30A、30B(「ドメインコントローラ」に相当)として構成されることが望ましい。この場合、ドメイン・アーキテクチャのDC-ECU30A、30Bはそれぞれ、同じドメインに属するECUに更新指示を行うとともに、必要に応じて更新ファイルの配信を行うことになる。したがって、DC-ECU30A、30Bは、異なるドメインに属するECUの仮想マシンに対して更新指示や更新ファイルの配信を行わない。
上述した実施形態では、ECU10及びECU20を有する電子制御システム1を説明した。ここで、図10のドメイン・アーキテクチャを電子制御システム1に適用する場合、更新ファイルを取得して他の仮想マシンに更新ファイルを配信するECU10は、図10のDC-ECU30A、30B(「ドメインコントローラ」に相当)として構成されることが望ましい。この場合、ドメイン・アーキテクチャのDC-ECU30A、30Bはそれぞれ、同じドメインに属するECUに更新指示を行うとともに、必要に応じて更新ファイルの配信を行うことになる。したがって、DC-ECU30A、30Bは、異なるドメインに属するECUの仮想マシンに対して更新指示や更新ファイルの配信を行わない。
例えば、ECU10がDC-ECU30Aとして構成される場合、第2のドメイン2Bに含まれるECU(DC-ECU30B、ECU50B、51B)には更新指示及び更新ファイルの配信を行わない。そして、ECU10の実ストレージ130にアクセスするECUは、同じドメイン、すなわち第1のドメイン2Aに属するECUに制限される。同様に、DC-ECU30Bとして構成されたECU10は、第1のドメイン2Aに含まれるECUには更新指示及び更新ファイルの配信を行わない。
電子制御システム1をドメイン・アーキテクチャとすることにより、ECU間の通信を同一の又は関連するドメイン内に限定することができるため、車載ネットワーク全体の通信量を抑制するすることができ、ひいては、車載ネットワークにおける応答性を高めることが可能となる。
さらに、ドメインが異なるECUからのアクセスを制限することにより、例えば、一方のドメインに属するECUが外部から攻撃を受けているような場合であっても、異なるドメインまで不正にアクセスされることを防ぐことができる。
別の例として、ECU10は図10のGW-ECU40(「ゲートウェイ装置」に相当)として構成されてもよい。この場合、ECU20はDC-ECU30A、30B又はECU50A,B、51A,Bとして構成される。この場合、GW-ECU40の実ストレージ130のみが、様々なドメインに属するECUからアクセスされることになる。そのため、ECU10をDC-ECUとして構成する場合と同様、一のドメインに属するECUが外部から攻撃を受けているような場合であっても、異なるドメインまで不正にアクセスされることを防ぐことができる。
6.総括
以上、本発明の各実施形態における電子制御装置、及び当該電子制御装置を備える電子制御システムの特徴について説明した。
以上、本発明の各実施形態における電子制御装置、及び当該電子制御装置を備える電子制御システムの特徴について説明した。
各実施形態で使用した用語は例示であるので、同義の用語、あるいは同義の機能を含む用語に置き換えてもよい。
実施形態の説明に用いたブロック図は、装置の構成を機能毎に分類及び整理したものである。それぞれの機能を示すブロックは、ハードウェア又はソフトウェアの任意の組み合わせで実現される。また、機能を示したものであることから、かかるブロック図は方法の発明、及び当該方法を実現するプログラムの発明の開示としても把握できるものである。
各実施形態に記載した処理、フロー、及び方法として把握できる機能ブロック、については、一のステップでその前段の他のステップの結果を利用する関係にある等の制約がない限り、順序を入れ替えてもよい。
各実施形態、及び特許請求の範囲で使用する、第1、第2、乃至、第N(Nは整数)、の用語は、同種の2以上の構成や方法を区別するために使用しており、順序や優劣を限定するものではない。
各実施形態の電子制御装置は、車両に搭載される車載を構成する電子制御装置であることを前提としているが、本発明の電子制御装置は、特許請求の範囲で特に限定する場合を除き、任意の電子制御システムに適用される。
また、本発明の装置の形態の例として、以下のものが挙げられる。
部品の形態として、半導体素子、電子回路、モジュール、マイクロコンピュータが挙げられる。
半完成品の形態として、電子制御装置(ECU(Electric Control Unit))、システムボードが挙げられる。
完成品の形態として、携帯電話、スマートフォン、タブレット、パーソナルコンピュータ(PC)、ワークステーション、サーバが挙げられる。
その他、通信機能を有するデバイス等を含み、例えばビデオカメラ、スチルカメラ、カーナビゲーションシステムが挙げられる。
部品の形態として、半導体素子、電子回路、モジュール、マイクロコンピュータが挙げられる。
半完成品の形態として、電子制御装置(ECU(Electric Control Unit))、システムボードが挙げられる。
完成品の形態として、携帯電話、スマートフォン、タブレット、パーソナルコンピュータ(PC)、ワークステーション、サーバが挙げられる。
その他、通信機能を有するデバイス等を含み、例えばビデオカメラ、スチルカメラ、カーナビゲーションシステムが挙げられる。
また各装置に、アンテナや通信用インターフェースなど、必要な機能を追加してもよい。
加えて、本発明は、各実施形態で説明した構成及び機能を有する専用のハードウェアで実現できるだけでなく、メモリやハードディスク等の記録媒体に記録した本発明を実現するためのプログラム、及びこれを実行可能な専用又は汎用CPU及びメモリ等を有する汎用のハードウェアとの組み合わせとしても実現できる。
専用や汎用のハードウェアの非遷移的実体的記録媒体(例えば、外部記憶装置(ハードディスク、USBメモリ、CD/BD等)、又は内部記憶装置(RAM、ROM等))に格納されるプログラムは、記録媒体を介して、あるいは記録媒体を介さずにサーバから通信回線を経由して、専用又は汎用のハードウェアに提供することもできる。これにより、プログラムのアップグレードを通じて常に最新の機能を提供することができる。
本発明の電子制御装置は、主として自動車に搭載される車載用電子制御装置として説明したが、自動二輪車、船舶、鉄道、航空機等、移動する移動体全般に適用することが可能である。また、移動体に限らず、マイクロコンピュータを包含する製品全般に適用可能である。
1 電子制御システム、10 電子制御装置、110 ハイパーバイザ、120 ハイパーバイザ、130 実ストレージ、140 第1の仮想マシン、141 ファイル取得部、144 仮想ストレージ、146 判定部、147 配信部、148 更新指示部、150 第2の仮想マシン、160 第3の仮想マシン、210 ハイパーバイザ、230 第4の仮想マシン
Claims (16)
- ハイパーバイザによって管理される仮想マシンを有する電子制御装置であって、
ソフトウェアを更新するためのファイルを取得するファイル取得部(141)と、
前記ファイルを保存する保存部(130,144)と、
を備え、
前記仮想マシンである第1の仮想マシン(140)は、
前記第1の仮想マシンを管理する第1のハイパーバイザ(110)と、前記第1の仮想マシンに接続された第2の仮想マシン(150,160,230)を管理する第2のハイパーバイザ(110,120,210)とが同じかどうかを判定する判定部(146)と、
前記判定部が前記第1のハイパーバイザと前記第2のハイパーバイザが異なると判定した場合に、前記ファイルを前記第2の仮想マシンに配信する配信部(147)と、
を有する、電子制御装置(10)。 - 前記第1の仮想マシンはさらに、
前記保存部にアクセスすることにより前記ファイルを用いて前記第1の仮想マシンのソフトウェアを更新する更新部(143)を備える、
請求項1記載の電子制御装置。 - 前記第1の仮想マシンはさらに、前記第2の仮想マシンの更新を指示する更新指示部(148)を備え、
前記更新指示部は、
前記判定部が前記第1のハイパーバイザと前記第2のハイパーバイザが異なると判定した場合に、前記配信部が配信する前記ファイルを用いて前記第2の仮想マシンのソフトウェアを更新することを指示し、
前記判定部が前記第1のハイパーバイザと前記第2のハイパーバイザが同じであると判定した場合に、前記保存部にアクセスすることにより前記ファイルを用いて前記第2の仮想マシンのソフトウェアを更新することを指示する、
請求項1記載の電子制御装置。 - 当該電子制御装置が有する複数の前記仮想マシンは一のハイパーバイザによって管理される場合において、前記判定部は、前記第2の仮想マシンは当該電子制御装置が有する仮想マシンであると判定した場合に前記第1のハイパーバイザと前記第2のハイパーバイザが同じであると判定する、
請求項1記載の電子制御装置。 - 前記第1のハイパーバイザ及び前記第2のハイパーバイザは同じハイパーバイザであり、
前記保存部は、前記ハイパーバイザが管理する保存部(130)である、
請求項1記載の電子制御装置。 - 前記第1の仮想マシン及び前記第2の仮想マシンは、前記保存部に保存された前記ファイルを用いて更新する場合に限り前記保存部にアクセス可能である、
請求項5記載の電子制御装置。 - 前記保存部は、前記第1の仮想マシンが実現する保存部(144)である、
請求項1記載の電子制御装置。 - 前記判定部はさらに、前記第1の仮想マシンに関する安全性を示す第1の安全度、及び第2の仮想マシンに関する安全性を示す第2の安全度に基づいて、前記ファイルを前記第2の仮想マシンに配信するかどうかを判定する、
請求項1に記載の電子制御装置。 - 前記第1の仮想マシンは、
プラットフォーム(1401)と、
前記プラットフォーム上で動作するアプリケーション(1402)と、
を有する、請求項1記載の電子制御装置。 - 当該電子制御装置はさらに、前記第2の仮想マシン(150、160)を有し、
前記第2の仮想マシンは、前記プラットフォームである第1のプラットフォームとは異なる第2のプラットフォーム(1501、1601)を有する、
請求項9に記載の電子制御装置。 - 当該電子制御装置は移動体に搭載される、
請求項1乃至10のいずれかに記載の電子制御装置。 - ハイパーバイザによって管理される仮想マシンを有する電子制御装置で実行されるソフトウェア更新方法であって、
ソフトウェアを更新するためのファイルを取得し(S101)、
前記ファイルを保存部(130,144)に保存し(S103)、
前記仮想マシンである第1の仮想マシン(140)を管理する第1のハイパーバイザ(110)と、前記第1の仮想マシンに接続された第2の仮想マシン(150,160,230)を管理する第2のハイパーバイザ(110,120,210)とが同じかどうかを判定し(S106)、
前記第1のハイパーバイザと前記第2のハイパーバイザが異なる場合に、前記ファイルを前記第2の仮想マシンに配信する(S109)、
ソフトウェア更新方法。 - ハイパーバイザによって管理される仮想マシンを有する電子制御装置で実行可能なソフトウェア更新プログラムであって、
ソフトウェアを更新するためのファイルを取得し(S101)、
前記ファイルを保存部(130,144)に保存し(S103)、
前記仮想マシンである第1の仮想マシン(140)を管理する第1のハイパーバイザ(110)と、前記第1の仮想マシンに接続された第2の仮想マシン(150,160,230)を管理する第2のハイパーバイザ(110,120,210)とが同じかどうかを判定し(S106)、
前記第1のハイパーバイザと前記第2のハイパーバイザが異なる場合に、前記ファイルを前記第2の仮想マシンに配信する(S109)、
ソフトウェア更新プログラム。 - 第1の電子制御装置(10)と第2の電子制御装置(20)とを有する電子制御システムであって、
第1のハイパーバイザ(110)によって管理される第1の仮想マシン(140)を有する前記第1の電子制御装置は、
ソフトウェアを更新するためのファイルを取得するファイル取得部(141)と、
前記ファイルを保存する保存部(130,144)と、
を備え、前記第1の仮想マシンは、
前記第1のハイパーバイザと、前記第2の電子制御装置が有する第2の仮想マシン(230)を管理する第2のハイパーバイザ(210)とが同じかどうかを判定する判定部(146)と、
前記判定部が前記第1のハイパーバイザと前記第2のハイパーバイザが異なると判定した場合に、前記ファイルを前記第2の仮想マシンに配信する配信部(147)と、
を有し、
前記第2の仮想マシンは、
前記保存部にアクセスすることにより前記ファイルを用いて、又は前記配信部が配信する前記ファイルを用いて、前記第2の仮想マシンを更新する更新部(231)を有する、
電子制御システム(1)。 - 当該電子制御システムは、前記第1の電子制御装置及び前記第2の電子制御装置を含むドメイン(2A、2B)を有しており、
前記第1の電子制御装置は、前記ドメインに含まれる電子制御装置を制御するドメインコントローラ(30A、30B)である、
請求項14記載の電子制御システム。 - 当該電子制御システムは、前記第2の電子制御装置を含むドメイン(2A、2B)を有しており、
前記第1の電子制御装置は、複数のバスに接続されたゲートウェイ装置(40)であり、
前記第2の電子制御装置は、前記複数のバスのうち一のバスを介して前記ゲートウェイ装置に接続された、前記ドメインに含まれる電子制御装置を制御するドメインコントローラ(30A、30B)、又は、前記ドメインコントローラによって制御される前記電子制御装置(50A、51A、50B、51B)である、
請求項14記載の電子制御システム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/534,490 US11836476B2 (en) | 2020-11-27 | 2021-11-24 | Electronic control unit, software update method, software update program product and electronic control system |
DE102021130898.4A DE102021130898A1 (de) | 2020-11-27 | 2021-11-25 | Elektronische steuerungseinheit, softwareaktualisierungsverfahren, softwareaktualisierungsprogramm und elektronisches steuerungssystem |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020197505 | 2020-11-27 | ||
JP2020197505 | 2020-11-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022085862A true JP2022085862A (ja) | 2022-06-08 |
Family
ID=81892243
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021178151A Pending JP2022085862A (ja) | 2020-11-27 | 2021-10-29 | 電子制御装置、ソフトウェア更新方法、ソフトウェア更新プログラム、及び電子制御システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2022085862A (ja) |
-
2021
- 2021-10-29 JP JP2021178151A patent/JP2022085862A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11836475B2 (en) | Electronic control unit, software update method, software update program product and electronic control system | |
CN102193815B (zh) | 一种基于虚拟机的多平台集成车载娱乐通讯系统 | |
US11941259B2 (en) | Communication method, apparatus, computer-readable storage medium, and chip | |
US20240054006A1 (en) | Virtualization processing system, method and apparatus, and device | |
US20230146364A1 (en) | Process running method and apparatus | |
CN108073423B (zh) | 一种加速器加载方法、系统和加速器加载装置 | |
CN108139937B (zh) | 多根i/o虚拟化系统 | |
WO2023098536A1 (zh) | 一种运行进程的方法及装置 | |
US10606786B2 (en) | Upgradable vehicular computing methods and apparatuses | |
JP2015067107A (ja) | 車両用制御装置 | |
CN110775099B (zh) | 一种列车中通信系统的集成方法 | |
JP2023170662A (ja) | 電子制御装置、ソフトウェア更新方法、ソフトウェア更新プログラム、及び電子制御システム | |
US10162787B1 (en) | Multicore safe PCIe solution | |
JP2022085862A (ja) | 電子制御装置、ソフトウェア更新方法、ソフトウェア更新プログラム、及び電子制御システム | |
JP2022085863A (ja) | 電子制御装置、ソフトウェア更新方法、ソフトウェア更新プログラム、及び電子制御システム | |
US11977619B2 (en) | Method and device for controlling device based on vehicle virtual structure | |
US11836476B2 (en) | Electronic control unit, software update method, software update program product and electronic control system | |
JP2022085703A (ja) | 電子制御装置、ソフトウェア更新方法、ソフトウェア更新プログラム、及び電子制御システム | |
KR20230087336A (ko) | 가상화 시스템 및 그 구동 방법 | |
US20220171613A1 (en) | Electronic control unit, software update method, software update program product and electronic control system | |
CN114610444A (zh) | 消息中断的虚拟化处理方法、装置及存储介质 | |
JP2022085861A (ja) | 電子制御装置、ソフトウェア更新方法、ソフトウェア更新プログラム、及び電子制御システム | |
JP2023170887A (ja) | 電子制御装置、ソフトウェア更新方法、及びソフトウェア更新プログラム | |
US20230376298A1 (en) | Update control device, update control method, and non-transitory computer readable storage medium | |
CN118276768A (zh) | 一种存储系统、数据处理方法及相关装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240510 |