(57)【要約】      （修正有）【課題】仮想マシンに異常が発生した場合に、他の仮想マシンのセキュリティを確保するとともに、異常が発生した仮想マシンに宛てて送信されたデータの確保を継続する。【解決手段】ハイパーバイザ３００によって管理される複数の仮想マシンを有する電子制御装置において、複数の仮想マシンのうち一の仮想マシン１００に発生した異常を、仮想マシン１００とは異なる他の仮想マシン２００に設けられた監視部２０１が検出するとともに、仮想マシン１００に対するＣＰＵ資源の割り当ての停止を要求する停止要求を出力し、ハイパーバイザに設けられた割り当て制御部３０１が、停止要求に基づいて仮想マシン１００に対するＣＰＵ資源の割り当てを停止し、ＤＭＡコントローラ４０２が、仮想マシン１００に宛てて送信されたデータを共有メモリ４０１にＤＭＡ（Direct Memory Access）転送する。【選択図】図２
2019185130.tif 000002
【特許請求の範囲】
【請求項１】
ハイパーバイザ（３００）によって管理される複数の仮想マシンを有する電子制御装置（１０，２０，３０）であって、
前記複数の仮想マシンのうち一の仮想マシン（１００）に発生した異常を検出するとともに、異常を検出した場合に前記一の仮想マシンに対するＣＰＵ資源の割り当ての停止を要求する停止要求を出力する、前記一の仮想マシンとは異なる他の仮想マシン（２００）に設けられた監視部（２０１）と、
前記停止要求に基づいて前記一の仮想マシンに対するＣＰＵ資源の割り当てを停止する、前記ハイパーバイザに設けられた割り当て制御部（３０１）と、
共有メモリ（４０１）と、
ＣＰＵ資源の割り当てが停止された前記一の仮想マシンに宛てて送信されたデータを前記共有メモリにＤＭＡ（Direct Memory Access）転送するＤＭＡコントローラ（４０２）と、
を備える、電子制御装置。
【請求項２】
前記監視部はさらに、前記一の仮想マシンに発生した異常が回復したことを検出するとともに、異常の回復を検出した場合に前記一の仮想マシンに対するＣＰＵ資源の割り当ての再開を要求する再開要求を出力し、
前記割り当て制御部は、前記再開要求に基づいて前記一の仮想マシンに対するＣＰＵ資源の割り当てを再開する、
請求項１記載の電子制御装置。
【請求項３】
当該電子制御装置は非セキュア領域とセキュア領域とを有しており、
前記共有メモリは前記非セキュア領域に設けられており、
前記他の仮想マシン及び前記ハイパーバイザは前記セキュア領域に設けられている、
請求項１記載の電子制御装置。
【請求項４】
当該電子制御装置は非セキュア領域とセキュア領域とを有し、さらに、
前記セキュア領域内の退避先メモリ（４０３）と、
前記非セキュア領域に設けられた前記共有メモリ内のデータを前記退避先メモリに退避させる退避実行部（２０２）と、
を備え、
前記監視部は、前記一の仮想マシンに発生した異常を検出した場合に、前記共有メモリ内のデータを前記退避先メモリに退避させることを要求する退避要求を出力し、
前記退避実行部は、前記退避要求に基づいて前記共有メモリ内のデータを前記退避先メモリに退避させる、
請求項１記載の電子制御装置（２０）。
【請求項５】
前記監視部は、前記停止要求の出力に続いて、前記退避要求を出力する、
請求項４記載の電子制御装置。
【請求項６】
当該電子制御装置は非セキュア領域とセキュア領域とを有し、さらに、
前記セキュア領域内の退避先メモリ（４０３）と、
前記非セキュア領域に設けられた前記共有メモリ内のデータを前記退避先メモリに退避させる退避実行部（２０２）と、
を備え、
前記監視部は、前記停止要求の出力後、かつ、前記再開要求の出力前に、前記共有メモリ内のデータを前記退避先メモリに退避させることを要求する退避要求を出力し、
前記退避実行部は、前記退避要求に基づいて前記共有メモリ内のデータを前記退避先メモリに退避させる、
請求項２記載の電子制御装置（２０）。
【請求項７】
当該電子制御装置はさらに、前記退避先メモリに退避された前記データを当該電子制御装置の外部に設けられたストレージに転送するアップロード実行部（２０３）を備える、
請求項４乃至６のいずれか一項に記載の電子制御装置（３０）。
【請求項８】
前記監視部は、前記停止要求に加えて、前記一の仮想マシンを識別する識別情報を出力する、
請求項１記載の電子制御装置。
【請求項９】
マスタ電子制御装置（３）と、通信ネットワーク（２）を介して前記マスタ電子制御装置に接続され、前記マスタ電子制御装置によって制御されるスレーブ電子制御装置（４）と、を備える電子制御システム（１）であって、
前記マスタ電子制御装置及び前記スレーブ電子制御装置の少なくとも一方は、ハイパーバイザ（３００）によって管理される複数の仮想マシンを有し、さらに、
前記複数の仮想マシンのうち一の仮想マシン（１００）に発生した異常を検出するとともに、異常を検出した場合に前記一の仮想マシンに対するＣＰＵ資源の割り当ての停止を要求する停止要求を出力する、前記一の仮想マシンとは異なる他の仮想マシン（２００）に設けられた監視部（２０１）と、
前記停止要求に基づいて前記一の仮想マシンに対するＣＰＵ資源の割り当てを停止する、前記ハイパーバイザに設けられた割り当て制御部（３０１）と、
共有メモリ（４０１）と、
ＣＰＵ資源の割り当てが停止された前記一の仮想マシンに宛てて送信されたデータを前記共有メモリにＤＭＡ（Direct Memory Access）転送するＤＭＡコントローラ（４０２）と、を備える、
電子制御システム。
【請求項１０】
ハイパーバイザによって管理される複数の仮想マシンを有する電子制御装置で実行される処理方法であって、
前記複数の仮想マシンのうち一の仮想マシンに発生した異常を検出するステップと、
異常を検出した場合に前記一の仮想マシンに対するＣＰＵ資源の割り当ての停止を要求する停止要求を出力するステップと、
前記停止要求に基づいて前記一の仮想マシンに対するＣＰＵ資源の割り当てを停止するステップと、
ＣＰＵ資源の割り当てが停止された前記一の仮想マシンに宛てて送信されたデータを共有メモリにＤＭＡ（Direct Memory Access）転送するステップと、
を含む、電子制御装置の処理方法。
【請求項１１】
ハイパーバイザによって管理される複数の仮想マシンを有する電子制御装置で実行される処理プログラムであって、
前記複数の仮想マシンのうち一の仮想マシンに発生した異常を検出するステップと、
異常を検出した場合に前記一の仮想マシンに対するＣＰＵ資源の割り当ての停止を要求する停止要求を出力するステップと、
前記停止要求に基づいて前記一の仮想マシンに対するＣＰＵ資源の割り当てを停止するステップと、
ＣＰＵ資源の割り当てが停止された前記一の仮想マシンに宛てて送信されたデータを共有メモリにＤＭＡ（Direct Memory Access）転送するステップと、
をコンピュータに実行させる、処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子制御装置（ＥＣＵ：Electric Control Unit）に関するものであり、主として、車両用の電子制御装置に用いるものである。
【背景技術】
【０００２】
従来より、自動車には、ＣＡＮ（Controller Area Network）などの車載ネットワークで互いに接続された様々な種類の電子制御装置が搭載されている。これらの電子制御装置には、エンジンやハンドルといった車両の動作を制御するものが含まれているため、車両の安全性を確保するためには、車内ネットワークやアプリケーションを監視し異常を検知・防止する等によりセキュリティを確保すること求められる。
【０００３】
例えば、特許文献１には、ハイパーバイザによって管理される複数の仮想マシンのうち１つの仮想マシンに異常が発生した場合、異常が発生した仮想マシンのみの通信を遮断することにより、異常が発生していない他の仮想マシンの通信状態を確保しながら、他の仮想マシンのセキュリティを確保する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−１２６９６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に開示された技術によれば、異常が発生した仮想マシンの通信を遮断することによって他の仮想マシンのセキュリティを確保することができるが、異常が発生した仮想マシンの通信を遮断している間に当該仮想マシン宛てに送信されたデータは、記録されずに失われてしまう。しかしながら、仮想マシン宛てに送信されるデータの中には、仮想マシンに発生した異常、あるいは、電子制御装置や電子制御装置を搭載した車両に発生した異常などの事後の原因調査に使用されるデータが含まれている可能性があるため、仮想マシンに異常が発生している間もこのようなネットワーク上の通信データは適切にログに記録されることが望ましい。
【０００６】
そこで、本発明の目的は、仮想マシンに異常が発生した場合であっても、セキュリティを確保しながら、異常が発生した仮想マシンに関するデータの確保を実現することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、ハイパーバイザ（３００）によって管理される複数の仮想マシンを有する本発明の電子制御装置（１０，２０，３０）は、複数の仮想マシンのうち一の仮想マシン（１００）に発生した異常を検出するとともに、異常を検出した場合に一の仮想マシンに対するＣＰＵ資源の割り当ての停止を要求する停止要求を出力する、一の仮想マシンとは異なる他の仮想マシン（２００）に設けられた監視部（２０１）と、停止要求に基づいて一の仮想マシンに対するＣＰＵ資源の割り当てを停止する、ハイパーバイザに設けられた割り当て制御部（３０１）と、共有メモリ（４０１）と、ＣＰＵ資源の割り当てが停止された一の仮想マシンに宛てて送信されたデータを共有メモリにＤＭＡ（Direct Memory Access）転送するＤＭＡコントローラ（４０２）と、を備える。
【発明の効果】
【０００８】
本発明の電子制御装置によれば、仮想マシンに異常が発生した場合にＣＰＵの割り当てを停止することにより、他の仮想マシンへの影響が及ばないようにすることでセキュリティを確保する事ができる。更にＤＭＡ転送を有効にしておくことによりＣＰＵが割り当てられなくとも当該仮想マシン宛の通信データを受信する事が可能であるため、異常が発生した仮想マシンに関するデータの確保を継続することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の電子制御システムの構成を説明する図
【図２】本発明の実施形態１の電子制御装置の構成を説明するブロック図
【図３】本発明の実施形態１の電子制御装置の動作を説明する図
【図４】本発明の実施形態２の電子制御装置の構成を説明するブロック図
【図５】本発明の実施形態２の電子制御装置の動作を説明する図
【図６】本発明の実施形態３の電子制御装置の構成を説明するブロック図
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態について、図面を参照して説明する。なお、本発明とは、特許請求の範囲又は課題を解決するための手段の項に記載された発明を意味するものであり、以下の実施形態に限定されるものではない。また、少なくともかぎ括弧内の語は、特許請求の範囲又は課題を解決するための手段の項に記載された語を意味し、同じく以下の実施形態に限定されるものではない。また、特許請求の範囲の従属項に記載の構成及び方法、従属項に記載の構成及び方法に対応する実施形態の構成及び方法、並びに特許請求の範囲に記載がなく実施形態のみに記載の構成及び方法は、本発明においては任意の構成及び方法である。
なお、各実施形態に開示の構成は、各実施形態のみで閉じるものではなく、実施形態をまたいで組み合わせることが可能である。
発明が解決しようとする課題に記載した課題は公知の課題ではなく、本発明者が独自に知見したものであり、本発明の手段と共に発明の進歩性を肯定する事実である。
【００１１】
（各実施形態に共通の構成）
図１は、通信ネットワーク２を介して複数の電子制御装置が接続されている車載電子制御システム１を示している。図１では、マスタ電子制御装置３とｎ個のスレーブ電子制御装置４とが接続されており、マスタ電子制御装置３およびスレーブ電子制御装置４は、通信ネットワーク２を介してデータを送受信する。同様に、複数のスレーブ電子制御装置４同士でデータを送受信することができる。通信ネットワーク２には、例えば、ＣＡＮ（Controller Area Network）、ＬＩＮ（Local Interconnect Network）といった通信方式の他、Ｅｔｈｅｒｎｅｔ（登録商標）やＷｉ−Ｆｉ（登録商標）、Ｂｌｕｅｔｏｏｔｈ（登録商標）等、任意の通信方式を用いることができる。
【００１２】
マスタ電子制御装置３は、例えば、ゲートウェイ機能や、車両外部との通信機能を有する電子制御装置である。また、スレーブ電子制御装置４は、マスタ電子制御装置３から送信された指示に基づいて制御される電子制御装置であり、例えば、エンジン、ハンドル、ブレーキ等の制御を行う駆動系電子制御装置、メータやパワーウインドウ等の制御を行う車体系電子制御装置、ナビゲーション装置等の情報系電子制御装置、あるいは、障害物や歩行者との衝突を防止するための制御を行う安全制御系電子制御装置が挙げられる。しかしながら、マスタ電子制御装置３およびスレーブ電子制御装置４のいずれも、上記の例に限定されるものではない。また、マスタ電子制御装置３は、スレーブ電子制御装置の機能を包含していてもよい。
【００１３】
車載システム１を構成する電子制御装置のうち、マスタ電子制御装置３またはスレーブ電子制御装置４の少なくとも一つが以下に詳述する各実施形態の電子制御装置の構成および機能を有する。
【００１４】
（実施形態１）
本実施形態１の電子制御装置１０の構成を図２を用いて説明する。本発明の「電子制御装置」は、ハイパーバイザによって管理される「複数の仮想マシン」を有する。図２に示す電子制御装置１０は、第１の仮想マシン１００及び第２の仮想マシン２００、これらの仮想マシンを管理するハイパーバイザ３００、および、ハードウェアである共有メモリ４０１とＤＭＡコントローラ４０２を備えている。そして、第１および第２の仮想マシン１００、２００はそれぞれ、仮想マシン上にインストールされたゲストＯＳと、ゲストＯＳ上にインストールされた複数のアプリケーションを有する。
【００１５】
ここで、本発明の「電子制御装置」は、例えば、主に半導体装置で構成され、ＣＰＵ（Central Processing Unit）、およびＲＡＭ（Random Access Memory）等の揮発性記憶部を有する、いわゆる情報処理装置として構成されていてもよい。この場合、情報処理装置はさらに、フラッシュメモリ等の不揮発性記憶部、通信ネットワーク等に接続されるネットワークインターフェース部等を有していてもよい。さらに、このような情報処理装置はパッケージ化された半導体装置であっても、配線基板において各半導体装置が配線接続された構成であってもよい。
また、本発明の「複数の仮想マシン」とは、一の仮想マシンと他の仮想マシンとを含むものであればよく、それ以外の仮想マシンを含んでもよい。
【００１６】
本発明の電子制御装置１０はさらに、「非セキュア領域」と、非セキュア領域からはアクセスできない領域である「セキュア領域」とを有している。ここで、第１の仮想マシン１００及び共有メモリ４０１は非セキュア領域に、第２の仮想マシン２００及びハイパーバイザ３００はセキュア領域に設けられている。
【００１７】
ここで、本発明の「非セキュア領域」とは、「非セキュア領域」および「セキュア領域」のいずれからもアクセス可能な領域をいう。また、本発明の「セキュア領域」とは、「非セキュア領域」からはアクセスできず、同じ「セキュア領域」からのみアクセス可能な領域をいう。
【００１８】
複数の仮想マシンのうち第１の仮想マシン１００（本発明の「一の仮想マシン」に相当）は、任意のアプリケーションを実行するアプリケーション実行部１０１（図中では、ＡＰＰ実行部と示す）を有する。
一方、第２の仮想マシン２００（本発明の「他の仮想マシン」に相当）は、監視部２０１を有する。なお、本実施形態では、監視部２０１は第２の仮想マシン２００に設けられているが、例えば、後述する監視部２０１の機能ごとにそれぞれ異なる仮想マシンに設けられてもよい。つまり、第２の仮想マシン２００が監視部２０１の機能の１つを有し、第３の仮想マシン（図示せず）が監視部２０１の別の機能を有するようにしてもよい。
【００１９】
ここで、本発明の「他の仮想マシン」とは、１台の仮想マシンで構成される場合の他、複数の仮想マシンで構成されてもよい。複数の仮想マシンで構成される場合、監視部の機能がこれらの複数の仮想マシンをまたいで設けられていてもよい。
【００２０】
第２の仮想マシン２００の監視部２０１は、サイバー攻撃等によって異常を引き起こされる可能性がある非セキュア領域内の仮想マシンを監視する。そして、複数の仮想マシンのうち第１の仮想マシン１００に発生した異常を「検出」した場合には、監視部２０１は、異常が発生した第１の仮想マシン１００に対する「ＣＰＵ資源の割り当て」の停止を要求する割り当て停止要求（本発明の「停止要求」に相当）を出力する。
【００２１】
ここで、本発明の「検出」する、とは、監視部が仮想マシンをモニタ等することによって、仮想マシンの異常を検出することの他、異常が発生したこと示す情報を受信することによって、監視部は仮想マシンの異常を検出してもよい。
また、本発明の「ＣＰＵ資源の割り当て」とは、ＣＰＵの機能を享受できる状態に置くことをいう。本発明の「ＣＰＵ」とは、汎用の中央演算装置の他、専用の中央演算装置も含み、マイコン等その名称は問わない。
【００２２】
監視部２０１はさらに、第１の仮想マシン１００を監視することにより、第１の仮想マシン１００に発生した異常が回復したことを「検出」する。そして、第１の仮想マシン１００に発生した異常の回復を検出した場合には、第１の仮想マシン１００に対する「ＣＰＵ資源の割り当て」の再開を要求する割り当て再開要求（本発明の「再開要求」に相当）を出力する。
【００２３】
ハイパーバイザ３００には、割り当て制御部３０１が設けられる。この割り当て制御部３０１は、電子制御装置１０が有する各仮想マシンに対するＣＰＵ資源の割り当てを制御する。つまり、割り当て制御部３０１は、仮想マシンに対するＣＰＵ資源の割り当てを停止する、あるいは、ＣＰＵ資源の割り当てが停止された仮想マシンに対して、ＣＰＵ資源の割り当てを再開する。
【００２４】
共有メモリ４０１は、非セキュア領域に設けられたランダムアクセスメモリである。ランダムアクセスメモリは揮発性メモリであり、ＳＲＡＭやＤＲＡＭをはじめ、様々な方式のメモリを含む。
【００２５】
ＤＭＡコントローラ４０２は、バスを介して接続された周辺デバイス（図示せず）から共有メモリへと「データ」のＤＭＡ（Direct Memory Access）転送を行う。
なお、本実施形態では、仮想マシンに異常が発生する前の通常動作時および異常発生後のいずれも、ＤＭＡコントローラ４０２がＤＭＡ転送によって共有メモリにデータをＤＭＡ転送する構成を説明している。しかしながら、仮想マシンに異常が発生するまではＰＩＯ（Programmed I/O）転送を行い、仮想マシンに異常が発生したことをトリガとしてＤＭＡ転送が開始される構成としてもよい。いずれの構成を採用した場合も、ＤＭＡコントローラ４０２は、ＣＰＵ資源の割り当てが停止された仮想マシンに宛てて送信されたデータを共有メモリにＤＭＡ転送する。
ここで、本発明の「データ」とは、アプリケーションが取り扱うデータの他、アプリケーションやシステムの履歴を示すログをも含む。
【００２６】
次に、本実施形態の電子制御装置１０の動作を、図３を用いて説明する。
【００２７】
第２の仮想マシン２００に設けられた監視部２０１は、非セキュア領域内の仮想マシンに異常が発生しているかどうかを監視する。そして、第１の仮想マシン１００に発生した異常を検出（Ｓ１０１）すると、監視部２０１は、割り当て制御部３０１に対して、異常が発生した第１の仮想マシン１００に対するＣＰＵ資源の割り当ての停止を要求する割り当て停止要求を出力する（Ｓ１０２）。
【００２８】
割り当て制御部３０１は、監視部２０１から出力された割り当て停止要求に「基づいて」、第１の仮想マシン１００に対するＣＰＵ資源の割り当てを停止する（Ｓ１０３）。そして、割り当て制御部３０１は、監視部２０１に対して、第１の仮想マシン１００に対するＣＰＵ資源の割り当てを停止させたことを示す停止通知を出力する（Ｓ１０４）。
ここで、本発明の「基づいて」とは、与えられた情報や指示の結果として所定の処理が行われていればよく、与えられた情報や指示を直接的に受けて処理を行う場合の他、与えられた情報や指示の結果を受けて、すなわち、与えられた情報や指示を間接的に受けて処理を行ってもよい。以下、原則同じである。例えば、本発明の、割り当て停止要求に「基づいて」割り当てを停止する、とは、割り当て停止要求を用いて割り当て停止に関する動作制御が行われていればよく、割り当て制御部は必ずしも監視部から直接的に割り当て停止要求を受信しなくともよい。
【００２９】
Ｓ１０３において第１の仮想マシン１００に対するＣＰＵ資源の割り当てが停止されると、第１の仮想マシン１００からのデータの送信は制限される。しかしながら、第１の仮想マシン１００に宛てて送信されたデータは、ＤＭＡコントローラ４０２が共有メモリ４０１にＤＭＡ転送するため、第１の仮想マシン１００に関するログデータは共有メモリ４０１内に記録される。
【００３０】
その後、異常が発生した第１の仮想マシン１００にパッチが適用され、異常が修正される（Ｓ１０５）と、監視部２０１は、第１の仮想マシン１００に発生した異常が回復したことを検出する（Ｓ１０６）。そして、異常の回復を検出した監視部２０１は、割り当て制御部３０１に対して、第１の仮想マシン１００に対するＣＰＵ資源の割り当ての再開を要求する割り当て再開要求を出力する（Ｓ１０７）。
【００３１】
割り当て制御部３０１は、監視部２０１から出力された割り当て再開要求に「基づいて」、第１の仮想マシン１００に対するＣＰＵ資源の割り当てを再開する（Ｓ１０８）。そして、割り当て制御部３０１は、監視部２０１に対して、第１の仮想マシン１００に対するＣＰＵ資源の割り当てを再開させたことを示す再開通知を出力する（Ｓ１０９）。
【００３２】
上記実施形態１によれば、異常が発生した第１の仮想マシン１００に対するＣＰＵ資源の割り当てを停止させることにより、異常が発生していない他の仮想マシンのセキュリティを確保することが可能となる。さらに、第１の仮想マシン１００に対するＣＰＵ資源の割り当てが停止している間、ＤＭＡ転送によって、第１の仮想マシン１００に宛てて送信されたデータを共有メモリ４０１に記録することが可能となる。
【００３３】
（変形例）
上記実施形態１では、電子制御装置１０が２つの仮想マシン、すなわち、第１及び第２の仮想マシン１００、２００を有する構成を説明した。しかしながら、電子制御装置１０は任意の数の仮想マシンをセキュア領域または非セキュア領域のいずれにも有することができる。例えば、電子制御装置１０は非セキュア領域内に第３の仮想マシンを有してもよい。しかしながら、この場合、監視部２０１からＣＰＵ資源の割り当て停止要求または割り当て再開要求を受信した割り当て制御部３０１は、ＣＰＵ資源の割り当てを停止または再開させる対象の仮想マシンが、第１の仮想マシンおよび第３の仮想マシンのいずれであるかを認識することができない。
【００３４】
そこで、非セキュア領域内に複数の仮想マシンが存在する場合は、本変形例の監視部２０１は、割り当て停止要求または割り当て再開要求に加えて、異常が発生した仮想マシンを識別する「識別情報」、例えば、仮想マシンのドメインを出力してもよい。そして、割り当て制御部３０１は、仮想マシンの識別情報に基づいて、ＣＰＵ資源の割り当てを制御する対象の仮想マシンを識別するとともに、この仮想マシンに対するＣＰＵ資源の割り当てを停止または再開する。
ここで、本発明の「識別情報」とは、仮想マシンを識別することができる情報であればよく、いわゆるＩＤに限定されるものではない。
【００３５】
上記変形例によれば、電子制御装置１０が非セキュア領域内に２以上の仮想マシンを有する場合であっても、割り当て制御部３０１はＣＰＵ資源の割り当てを制御すべき仮想マシンを認識することが可能となる。
【００３６】
（実施形態２）
実施形態１によれば、第１の仮想マシン１００に対するＣＰＵ資源の割り当てが停止している間であっても、ＤＭＡ転送によって、第１の仮想マシン１００に宛てて送信されたデータを共有メモリに記録することが可能となる。しかしながら、共有メモリ４０１は非セキュア領域に設けられているため、共有メモリ４０１に書き込まれたデータは、サイバー攻撃等によって改ざん又は削除される可能性がある。
【００３７】
そこで、実施形態２では、非セキュア領域内の共有メモリ４０１に記録されたデータを保護することができる電子制御装置の構成を、実施形態１との相違点を中心に説明する。ここで、図４は、実施形態２の電子制御装置２０を示しており、実施形態１と共通する構成については同じ符号を付している。
【００３８】
実施形態２の電子制御装置２０は、セキュア領域内に退避実行部２０２および退避先メモリ４０３を備えているという点で、図２に示す実施形態１の電子制御装置１０とは異なっている。なお、図４に示す電子制御装置２０では、退避実行部２０２が監視部２０１と同じく第２の仮想マシン２００に設けられているが、退避実行部２０２は、監視部２０１とは異なる仮想マシンに設けられてもよい。
【００３９】
本実施形態２の監視部２０１は、仮想マシンに発生した異常を検出した場合に、割り当て停止要求および割り当て再開要求に加えて、共有メモリ４０１内のデータを退避先メモリ４０３に退避させることを要求する退避要求を出力する。
【００４０】
退避実行部２０２は、監視部２０１からの退避要求に「基づいて」、共有メモリ４０１内に記録されたデータを退避先メモリ４０３に退避させる処理を実行する。
【００４１】
退避先メモリ４０３は、セキュア領域に設けられたランダムアクセスメモリ、もしくはフラッシュメモリであり、共有メモリ４０１に書き込まれたデータの退避先となるメモリである。退避先メモリ４０３はセキュア領域に設けられているため、退避先メモリ４０３に書き込まれたデータがサイバー攻撃等によって改ざん等される可能性は低く、セキュリティ性が高い。
【００４２】
図５は、共有メモリ内に記録されたデータを退避先メモリ４０３に退避させる場合のフローを示している。
【００４３】
本実施形態２の電子制御装置２０では、監視部２０１が第１の仮想マシン１００に発生した異常を検出した場合、監視部２０１は、共有メモリ４０１内のデータを退避先メモリ４０３に退避させることを要求する退避要求を退避実行部２０２に対して出力する（Ｓ２０１）。
【００４４】
退避実行部２０２は、監視部２０１から出力された退避要求に基づいて、共有メモリ４０１内に記録されたデータを退避させる処理を実行する。具体的には、退避実行部２０２は共有メモリ内に記録されたデータを読み出し（Ｓ２０２）、次いで、読み出したデータを退避先メモリ４０３に「退避」させる（Ｓ２０３）。なお、共有メモリ４０１へのデータの書き込み等と同様、共有メモリ４０１から退避先メモリ４０３へのデータの退避は、ドライバおよびメモリコントローラを介して行われるが、本書の説明では省略する。
なお、本発明における、データを「退避」とは、データを共有メモリから読み出して退避先メモリに書き込むことをいい、共有メモリに保存されていたデータが削除されるか否かは問わない。
【００４５】
退避先メモリ４０３へのデータの退避が完了した場合、図５のＳ２０４に示すように、共有メモリ４０１の空き容量を増加させるために、監視部２０１は退避させたデータを共有メモリ４０１から削除し、退避させたデータが記録されていた領域を解放することが望ましいが、当該構成は任意である。
【００４６】
このように、第１の仮想マシン１００に発生した異常が検出された場合に、共有メモリ４０１から退避先メモリ４０３へとデータを退避させることにより、共有メモリ４０１内のデータ、特に、異常発生時のログデータを確保することが可能となる。
【００４７】
なお、監視部２０１が異常を検出した後に退避要求を出力するタイミングは任意であるが、監視部２０１は、第１の仮想マシン１００に対するＣＰＵ資源の割り当てが停止された後、第１の仮想マシン１００に対するＣＰＵ資源の割り当てが再開されるまでの間に退避要求を出力することが望ましい。例えば、監視部２０１は、割り当て停止要求を出力した後、割り当て再開要求を出力する前、すなわち、図３に示すＳ１０２からＳ１０７の間に退避要求を出力し、図５に示す一連の処理を実行する。あるいは、監視部２０１は、第１の仮想マシン１００に発生した異常の回復を検出（図３のＳ１０６）したことをトリガとして、図５に示す処理を実行してもよい。
この場合、第１の仮想マシン１００に対するＣＰＵ資源の割り当てが停止している間、第２の仮想マシン２００に対してより多くのＣＰＵ資源を割り当てることが可能になるため、第２の仮想マシン２００は退避処理を最適に実行することが可能となる。
【００４８】
また、監視部２０１は、第１の仮想マシン１００に対するＣＰＵ資源の割り当て停止要求の出力「に続いて」、退避要求を出力することがさらに望ましい。例えば、監視部２０１は、図３に示すＳ１０２において割り当て停止要求を出力すると直ちに退避要求を出力する。あるいは、監視部２０１は、図３に示すＳ１０４において、割り当て制御部３０１から第１の仮想マシン１００に対するＣＰＵ資源の割り当てを停止したことを示す停止通知を受信し次第、退避実行部２０２に対して退避要求を出力して、図５に示す一連の処理を実行する。
この場合、第１の仮想マシン１００に対するＣＰＵ資源の割り当て停止をトリガとして、退避が実行されるため、例えば、第１の仮想マシン１００に発生した異常の回復を検出したことをトリガとする場合とは異なり、第１の仮想マシン１００に発生した異常を修正することができず、異常の回復が検出されない場合であっても、共有メモリ４０１内のデータを確実に、セキュリティ性の高い退避先メモリ４０３へと退避させることができる。
ここで、本発明の停止要求の出力「に続いて」とは、停止要求を出力後、遅滞なく退避要求を出力する場合の他、一の仮想マシンに対するＣＰＵ資源の割り当てが停止されたことを検出した後、監視部の準備が整い次第、遅滞なく退避要求を出力する場合も含む。
【００４９】
（実施形態３）
上記実施形態２では、共有メモリ４０１から退避先メモリ４０３へとデータを退避させることにより、共有メモリ４０１内に記録されたデータを保護することができる。しかしながら、退避先メモリ４０３の空き容量には限界があるため、退避先メモリ４０３に十分な空き容量がない状態で退避処理が行われた場合、共有メモリ４０１から退避先メモリ４０３にデータが適切に退避されず、データが失われてしまうおそれがある。そこで、本実施形態３では、退避先メモリ４０３に退避されたデータを、電子制御装置の外部に設けられたストレージに適宜転送する構成を説明する。
【００５０】
図６は、本実施形態３の電子制御装置３０を示している。電子制御装置３０は、セキュア領域に設けられたアップロード実行部２０３を備えている点で、図４の電子制御装置２０とは異なっている。さらに、図６は、有線または無線によって電子制御装置３０に接続された、ストレージ５０１を有するサーバ５００を示している。サーバ５００は、車載電子制御システム１に含まれ、通信ネットワーク２を介して電子制御装置３０と接続されていてもよく、あるいは、車載電子制御システム１を搭載する車両の外部に配置されてもよい。
【００５１】
電子制御装置３０のアップロード実行部２０３は、退避先メモリ４０３に退避されたデータをストレージ５０１に転送する。そして、退避先メモリ４０３からストレージ５０１へのデータの転送が完了すると、アップロード実行部２０３は退避先メモリ４０３からデータを削除する。なお、図６では、アップロード実行部２０３が第２の仮想マシン２００に設けられているが、セキュア領域内であれば、監視部２０１又は退避実行部２０２とは異なる仮想マシンに設けられてもよい。
【００５２】
退避先メモリ４０３からストレージ５０１へのデータの転送は任意のタイミングで実行することができる。例えば、アップロード実行部２０３は、周期的にデータをストレージ５０１に転送する。あるいは、アップロード実行部２０３は、共有メモリ４０１から退避先メモリ４０３へとデータが退避された後、遅滞なく、退避先メモリ４０３内のデータをストレージ５０１に転送してもよい。
【００５３】
以上のとおり、本変形例によれば、退避先メモリ４０３に退避されたデータは、電子制御装置の外部に設けられたストレージ５０１へと適宜転送されるため、退避先メモリ４０３の空き容量不足によって、共有メモリ４０１から退避先メモリ４０３へのデータの退避ができなくなるのを防ぐことが可能となる。
【００５４】
各実施形態は、車両に搭載される車載電子制御システムを構成する電子制御装置を前提としているが、本発明は、車載電子制御システム以外の電子制御装置（情報処理装置）も含むものである。
【００５５】
（総括）
以上、本発明の各実施形態における電子制御装置の特徴について説明した。なお、複数の実施形態およびその変形例の特徴を説明したが、各実施形態およびその変形例の特徴を２以上含むようにしてもよい。
【００５６】
図１に示す車載電子制御システム１を構成するマスタ電子制御装置３またはスレーブ電子制御装置４のいずれか一方が実施形態１乃至３の電子制御装置の構成および機能を有する場合、マスタ電子制御装置３またはスレーブ電子制御装置４のセキュリティ性を高めることが可能となる。特に、マスタ電子制御装置３に本発明の電子制御装置を採用した場合には、マスタ電子制御装置３のセキュリティ性を高めるだけでなく、マスタ電子制御装置３の指示に基づいて動作するスレーブ電子制御装置４のセキュリティをも確保しながら、データを確保することが可能となる。
また、マスタ電子制御装置３およびスレーブ電子制御装置４の双方が実施形態１、２の電子制御装置の構成および機能を有する場合、車載システム１全体のセキュリティ性を高めるとともに、データを確保することが可能となる。あるいは、特定の電子制御装置、例えば、マスタ電子制御装置と、車両の走行に必須の電子制御装置や重要なデータを取り扱う電子制御装置といった一部のスレーブ電子制御装置のみに本発明の電子制御装置を採用することにより、特定の電子制御装置のセキュリティ性を高めながら、データを確保できるようにしてもよい。
【００５７】
また、本発明の電子制御装置の形態の例として、半導体、電子回路、モジュール、マイクロコンピュータが挙げられる。またこれらにアンテナや通信用インターフェースなど、必要な機能を追加してもよい。また、カーナビゲーションシステム、スマートフォン、パーソナルコンピュータ、携帯情報端末のような形態をとることも可能である。
【００５８】
加えて、本発明は、上述の専用のハードウェアで実現できるだけでなく、メモリやハードディスク等の記録媒体に記録したプログラム、及びこれを実行可能な専用又は汎用ＣＰＵ及びメモリ等を有する汎用のハードウェアとの組み合わせとしても実現できる。
【００５９】
専用や汎用のハードウェアの記憶領域（外部記憶装置（ハードディスク、ＵＳＢメモリ等）、内部記憶装置（ＲＡＭ，ＲＯＭ等））に格納されるプログラムは、記録媒体を介して、あるいは記録媒体を介さずにサーバから通信回線を経由して上述の専用又は汎用のハードウェア（本発明の「コンピュータ」に相当）に提供することもできる。これにより、プログラムのアップグレードを通じて常に最新の機能を提供することができる。
【産業上の利用可能性】
【００６０】
本発明の電子制御装置は、主として自動車に搭載される車載用電子制御装置として説明したが、自動二輪車、船舶、鉄道、航空機等、移動する移動体全般に適用することが可能である。また、移動体に限らず、マイクロコンピュータを包含する製品全般に適用可能である。
【符号の説明】
【００６１】
１  車載電子制御システム、２  通信ネットワーク、３  マスタ電子制御装置、４  スレーブ電子制御装置、１０，２０，３０  電子制御装置、１００，２００  仮想マシン、２０１  監視部、２０２  退避実行部、２０３  アップロード実行部、３００  ハイパーバイザ、３０１  割り当て制御部、４０１  共有メモリ、４０２  ＤＭＡコントローラ、４０３  退避先メモリ
【図１】
2019185130.tif 000003
【図２】
2019185130.tif 000004
【図３】
2019185130.tif 000005
【図４】
2019185130.tif 000006
【図５】
2019185130.tif 000007
【図６】
2019185130.tif 000008