(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-21
(45)【発行日】2024-10-29
(54)【発明の名称】情報処理装置、車両、情報処理方法、及び情報処理プログラム
(51)【国際特許分類】
G06F 9/50 20060101AFI20241022BHJP
G06F 9/455 20180101ALI20241022BHJP
【FI】
G06F9/50 120A
G06F9/455 150
(21)【出願番号】P 2022002612
(22)【出願日】2022-01-11
【審査請求日】2023-11-23
(73)【特許権者】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】水谷 太貴
【審査官】坂東 博司
(56)【参考文献】
【文献】特開2012-185541(JP,A)
【文献】特開2021-060923(JP,A)
【文献】特開2018-092577(JP,A)
【文献】特開2020-205050(JP,A)
【文献】特開2010-147929(JP,A)
【文献】特開2009-026889(JP,A)
【文献】特開2001-282560(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/50
G06F 9/455
(57)【特許請求の範囲】
【請求項1】
複数の仮想マシンを管理する管理仮想マシンを含む前記複数の仮想マシンを生成する生成部と、
予め定めた複数のフェーズを検出する検出部と、
前記検出部の検出結果に基づいて、前記フェーズ毎に予め定めたスケジュールになるように、前記複数の仮想マシンのリソースの割当時間を設定し、かつ予め定めたフェーズへの切り替えが行われてから予め定めた時間内にフェーズ切り替え依頼がない場合に、前記複数の仮想マシンそれぞれに前記割当時間を配分する予め定めた基本フェーズのスケジュールになるように、前記割当時間を設定する設定部と、
を含む情報処理装置。
【請求項2】
前記複数のフェーズは、前記基本フェーズとして、前記複数の仮想マシンの前記割当時間を予め定めた通常時間に設定する通常フェーズを含む請求項1に記載の情報処理装置。
【請求項3】
前記複数のフェーズは、前記管理仮想マシンにのみ前記割当時間を設定、又は前記管理仮想マシンの前記割当時間を他の前記仮想マシンよりも長い時間に設定する起動フェーズを含み、前記予め定めた時間は、前記起動フェーズに対応して定めた起動フェーズ用時間を含む請求項1又は請求項2に記載の情報処理装置。
【請求項4】
前記複数のフェーズは、前記管理仮想マシンの前記割当時間を他の前記仮想マシンよりも長い時間に設定するスリープフェーズを含み、前記予め定めた時間は、前記スリープフェーズに対応して定めたスリープフェーズ用時間を含む請求項1~3の何れか1項に記載の情報処理装置。
【請求項5】
前記複数のフェーズは、予め定めた特殊処理を行う特殊仮想マシンにのみ前記割当時間を設定、又は前記特殊仮想マシンの前記割当時間を他の仮想マシンより長い時間に設定する特殊処理フェーズを含み、前記予め定めた時間は、前記特殊処理フェーズに対応して定めて特殊処理フェーズ用時間を含む請求項1~4の何れか1項に記載の情報処理装置。
【請求項6】
請求項1~5の何れか1項に記載の情報処理装置を備えた車両。
【請求項7】
コンピュータが、
複数の仮想マシンを管理する管理仮想マシンを含む前記複数の仮想マシンを生成し、
予め定めた複数のフェーズを検出し、
前記フェーズの検出結果に基づいて、前記フェーズ毎に予め定めたスケジュールになるように、前記複数の仮想マシンのリソースの割当時間を設定し、かつ予め定めたフェーズへの切り替えが行われてから予め定めた時間内にフェーズ切り替え依頼がない場合に、前記複数の仮想マシンそれぞれに前記割当時間を配分する予め定めた基本フェーズのスケジュールになるように、前記割当時間を設定する処理を行う情報処理方法。
【請求項8】
コンピュータに、
複数の仮想マシンを管理する管理仮想マシンを含む前記複数の仮想マシンを生成し、
予め定めた複数のフェーズを検出し、
前記フェーズの検出結果に基づいて、前記フェーズ毎に予め定めたスケジュールになるように、前記複数の仮想マシンのリソースの割当時間を設定し、かつ予め定めたフェーズへの切り替えが行われてから予め定めた時間内にフェーズ切り替え依頼がない場合に、前記複数の仮想マシンそれぞれに前記割当時間を配分する予め定めた基本フェーズのスケジュールになるように、前記割当時間を設定する処理を実行させるための情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、車両システムに適用可能な情報処理装置、車両、情報処理方法、及び情報処理プログラムに関する。
【背景技術】
【0002】
特許文献1には、仮想マシンへのリソース割当量を算出して動的にリソースを割り当てる動的リソース割り当て装置が提案されている。詳細には、当該リソース割当て装置は、仮想マシンによるリソースの変動周期を分割したタイムスロット毎の、リソースの実際の使用量である確定使用量を算出する使用量算出部と、確定使用量のスパイクを検出するスパイク検出部と、i番目のタイムスロットにおける過去の確定使用量と、i番目の前後所定の範囲に含まれるタイムスロットにおける過去のスパイクの検出結果と、に基づいてi番目のタイムスロットに割当てるリソースの割当量を算出する割当量算出部と、仮想マシンを制御する仮想マシンモニタに、割当量を設定する割当量設定部と、を備えている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
車載システムのようなリアルタイム性を保証しなければいけないシステムでは、動的にリソースの割当時間を調整するとシステムの成立性検証が難しくなるため、改善の余地がある。
【0005】
本発明は、上記事実を考慮して成されたもので、リソースの割当時間が調整可能で、かつリアルタイム性が必要なシステムに適用可能な情報処理装置、車両、情報処理方法、及び情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
上記目的を達成するために請求項1に記載の情報処理装置は、複数の仮想マシンを管理する管理仮想マシンを含む前記複数の仮想マシンを生成する生成部と、予め定めた複数のフェーズを検出する検出部と、前記検出部の検出結果に基づいて、前記フェーズ毎に予め定めたスケジュールになるように、前記複数の仮想マシンのリソースの割当時間を設定し、かつ予め定めたフェーズへの切り替えが行われてから予め定めた時間内にフェーズ切り替え依頼がない場合に、前記複数の仮想マシンそれぞれに前記割当時間を配分する予め定めた基本フェーズのスケジュールになるように、前記割当時間を設定する設定部と、を含む。
【0007】
請求項1に記載の発明によれば、生成部では、複数の仮想マシンを管理する管理仮想マシンを含む複数の仮想マシンが生成される。
【0008】
検出部では、予め定めた複数のフェーズが検出され、設定部では、検出部の検出結果に基づいて、フェーズ毎に予め定めたスケジュールになるように、複数の仮想マシンのリソースの割当時間が設定される。これにより、フェーズ毎にリソースの割当時間を変更できる。また、各フェーズでは、CPU割当時間が固定され、静的なスケジューリングであるため、車載システムで必要なリアルタイム性を保証できる。従って、リソースの割当時間が調整可能で、かつリアルタイム性が必要なシステムに適用可能な情報処理装置を提供できる。
【0009】
さらに、設定部では、予め定めたフェーズへの切り替えが行われてから予め定めた時間内にフェーズ切り替え依頼がない場合に、複数の仮想マシンそれぞれに割当時間を配分する予め定めた基本フェーズのスケジュールになるように、割当時間が設定される。これにより、何かしらの原因で管理仮想マシンが故障し、フェーズが切り替わらなかった場合でも、基本フェーズのスケジュールになるように、割当時間を設定するので、システムが立ち上がらない等の問題の発生を抑制できる。
【0010】
なお、前記複数のフェーズは、前記基本フェーズとして、前記複数の仮想マシンの前記割当時間を予め定めた通常時間に設定する通常フェーズを含むようにしてもよい。これにより、各仮想マシンに通常動作で必要な割当時間を割り当てることができ、かつ異常に対応可能となる。
【0011】
また、前記複数のフェーズは、前記管理仮想マシンにのみ前記割当時間を設定、又は前記管理仮想マシンの前記割当時間を他の前記仮想マシンよりも長い時間に設定する起動フェーズを含み、前記予め定めた時間は、前記起動フェーズに対応して定めた起動フェーズ用時間を含むようにしてもよい。これにより、各仮想マシンが動作するために必要な初期化等の機能を持つ管理仮想マシンを早く起動することができる。
【0012】
また、前記複数のフェーズは、前記管理仮想マシンの前記割当時間を他の前記仮想マシンよりも長い時間に設定するスリープフェーズを含み、前記予め定めた時間は、前記スリープフェーズに対応して定めたスリープフェーズ用時間を含むようにしてもよい。これにより、スリープからの復帰時間を短縮できる。
【0013】
また、前記複数のフェーズは、予め定めた特殊処理を行う特殊仮想マシンにのみ前記割当時間を設定、又は前記特殊仮想マシンの前記割当時間を他の仮想マシンより長い時間に設定する特殊処理フェーズを含み、前記予め定めた時間は、前記特殊処理フェーズに対応して定めて特殊処理フェーズ用時間を含むようにしてもよい。これにより、特殊処理を行う特殊仮想マシンにリソースを集中できる。
【0014】
なお、請求項1~5の何れか1項に記載の情報処理装置を備えた車両としてもよい。
【0015】
また、コンピュータが、複数の仮想マシンを管理する管理仮想マシンを含む前記複数の仮想マシンを生成し、予め定めた複数のフェーズを検出し、前記フェーズの検出結果に基づいて、前記フェーズ毎に予め定めたスケジュールになるように、前記複数の仮想マシンのリソースの割当時間を設定し、かつ予め定めたフェーズへの切り替えが行われてから予め定めた時間内にフェーズ切り替え依頼がない場合に、前記複数の仮想マシンそれぞれに前記割当時間を配分する予め定めた基本フェーズのスケジュールになるように、前記割当時間を設定する処理を行う情報処理方法としてもよい。
【0016】
さらに、コンピュータに、複数の仮想マシンを管理する管理仮想マシンを含む前記複数の仮想マシンを生成し、予め定めた複数のフェーズを検出し、前記フェーズの検出結果に基づいて、前記フェーズ毎に予め定めたスケジュールになるように、前記複数の仮想マシンのリソースの割当時間を設定し、かつ予め定めたフェーズへの切り替えが行われてから予め定めた時間内にフェーズ切り替え依頼がない場合に、前記複数の仮想マシンそれぞれに前記割当時間を配分する予め定めた基本フェーズのスケジュールになるように、前記割当時間を設定する処理を実行させるための情報処理プログラムとしてもよい。
【発明の効果】
【0017】
以上説明したように本発明によれば、リソースの割当時間が調整可能で、かつリアルタイム性が必要なシステムに適用可能な情報処理装置、車両、情報処理方法、及び情報処理プログラムを提供できる。
【図面の簡単な説明】
【0018】
【
図1】本実施形態に係るセントラルECUを搭載した車両を示す図である。
【
図2】本実施形態に係るセントラルECUの概略構成を示すブロック図である。
【
図3】Hypervisorの機能を示す機能ブロック図である。
【
図4】フェーズ毎のCPU割当時間のスケジューリングの一例を示す図である。
【
図6】本実施形態に係るセントラルECUで行われるCPU割当時間の設定を行う際の処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【0019】
以下、図面を参照して本発明の実施の形態の一例を詳細に説明する。本実施形態では、車両に搭載されたセントラルECUを情報処理装置の一例として説明する。本実施形態では、
図1は、本実施形態に係るセントラルECU(Electronic Control Unit)を搭載した車両を示す図であり、
図2は、本実施形態に係るセントラルECUの概略構成を示すブロック図である。
【0020】
本実施形態に係るセントラルECU12は、車両10に搭載され、車両10に設けられた各種ECUを統合的に制御する。
【0021】
セントラルECU12には、CPU(Central Processing Unit)が設けられており、本実施形態では、一例として、
図2に示すように、複数のCPU CORE(
図2の例では、CPU CORE1~CPU CORE4の4つ)14が存在する。
【0022】
本実施形態では、コンピュータを仮想化するためのソフトウエアであるHypervisor16により、物理CPU CORE14が仮想化され、仮想マシンとしてのVM(Virtual Machine)18が生成される。本実施形態では、Hypervisor16により複数のVM18が生成される。
図2では、複数のVM18として、VM0~VM2の3つのVM18が生成された例を示す。
【0023】
各VM18上にはOS(Operating System)20が配置され、OS20上でアプリケーション(App)22が動作するようになっている。
図2では、OS1上でApp1、2が動作し、OS2上でApp3、4が動作し、OS3上でApp5、6が動作する。
【0024】
ところで、一般的なHypervisorでは、各VMを管理する機能がHypervisor自体に入っている。しかしながら、本実施形態のように車載システム用のHypervisor16では、リアルタイム性を保証するために、Hypervisor16の機能を極力削り、各VM18を管理する機能を1つのVM18として配置している。本実施形態では、VM0が各VM18を管理する管理仮想マシンとして機能し、以下ではVM0は全体管理VM18と称する場合がある。また、全体管理VM18を設けると、全体管理VM18と各VM18の結合度があがり、依存関係にある。
【0025】
また、Hypervisor16には、複数のVM18が配置されるため、各VM18にCPU時間を割り当てることで、各VM18が並列に動作しているように見せることができる。
【0026】
効率的に各VM18を動作させるためには、リソースとしてのCPU割当時間のスケジューリングを動的に変更することが望ましいが、車載システムでは、動的にスケジューリングが変更されると、リアルタイム性の保証が難しくなる。
【0027】
そこで、本実施形態に係るセントラルECU12では、フェーズ毎にCPU割当時間のスケジューリングを変更することにより、半動的にスケジューリングする。これにより、フェーズ毎に適切なスケジューリングを適用することができる。また、フェーズ単位でみると静的なスケジューリングであるためリアルタイム性が保証できる。
【0028】
ここで、フェーズ毎にCPU割当時間のスケジューリングを変更するためのHypervisor16の機能構成について説明する。
図3は、Hypervisor16の機能を示す機能ブロック図である。
【0029】
Hypervisor16は、
図3に示すように、生成部24、検出部26、及び設定部28の機能を有する。
【0030】
生成部24は、物理CPU CORE14を仮想化した複数のVM18の生成と実行とを行う。本実施形態では、上述したように、VM0~VM2の3つのVM18を生成する。
【0031】
検出部26は、CPU割当時間を変更するための複数のフェーズを検出する。本実施形態では、起動フェーズ、通常フェーズ、スリープフェーズ、及び特殊処理フェーズの4つのフェーズを検出する。
【0032】
設定部28は、検出部26の検出結果に基づいて、フェーズ毎に予め定めたスケジュールになるようにCPU割当時間を変更して、CPU割当時間のスケジューリングを設定する。本実施形態では、起動フェーズ、通常フェーズ、スリープフェーズ、及び特殊処理フェーズのそれぞれについて、フェーズ毎にCPU割当時間のスケジューリングを変更する。
【0033】
図4は、フェーズ毎のCPU割当時間のスケジューリングの一例を示す図である。
図4では、起動フェーズ、通常フェーズ、スリープフェーズ、及び特殊処理フェーズのCPU割当時間のスケジューリングの一例を示す。各フェーズにおいては、Major Time Frame=1000μsとする。
【0034】
起動フェーズでは、各VM18が動作するために必要な初期化や機能を持つ全体管理VM18(
図2のVM0)を早く起動するため、VM0がCPU時間を占有する。すなわち、
図4の起動フェーズでは、VM0は1000μs、VM1及びVM2は0μsとし、全体管理VM18を初期化後は、通常フェーズに移行する。なお、
図4では、VM0がCPU時間を占有する例を示すが、これに限るものではなく、VM0のCPU割当時間を他のVM1、2よりも長い時間に設定してもよい。
【0035】
通常フェーズでは、予め定めた通常時間として、各VM18に通常動作で必要なCPU割当時間を設定する。
図4の例では、VM0は200μs、VM1及びVM2はそれぞれ400μsを割り当てた例を示す。
【0036】
スリープフェーズでは、不揮発メモリを一括管理している全体管理VM18であるVM0へのデータ保存要求が集中するため、全体管理VM18へのCPU割当時間を多くし、スリープ時間を短縮する。
図4の例では、VM0は700μs、VM1及びVM2はそれぞれ150μsを割り当てた例を示す。
【0037】
特殊処理フェーズでは、例えば、特殊仮想マシンとしてVM2が特殊処理を行う場合、特殊処理を行うVM2へのCPU割当時間を多くし、特殊処理を優先して実行可能とする。
図4の例では、VM0、1はそれぞれ200μs、VM2は600μsを割り当てた例を示す。なお、特殊処理フェーズは、以下では、衝突検知などの処理を行う例を一例として説明する。また、特殊処理フェーズは、衝突検知などの特殊処理を行うため、VM2のみにCPU時間を割り当ててVM2がCPU時間を占有するようにしてもよい。
【0038】
このように、フェーズ毎に各VM18へのCPU割当時間のスケジューリングを変更してリソースの割当時間を調整することで、各フェーズではCPU割当時間が固定され、静的なスケジューリングであるため、車載システムで必要なリアルタイム性を保証できる。
【0039】
しかしながら、何かしらの原因で全体管理VM18等が故障し、起動フェーズにおいて初期化完了通知が来ないゆえにフェーズが切り替わらなかった場合、全てのシステムが立ち上がることができなくなってしまう。また、他のフェーズにおいても、フェーズ切り替え依頼がない場合には、通常フェーズに戻ることができなくなってしまう。
【0040】
そこで、本実施形態では、設定部28が、フェーズへの切り替えが行われてから予め定めた時間内にフェーズ切り替え依頼がない場合に、予め定めた基本フェーズのスケジュールとしての通常フェーズになるように、前記割当時間を設定して強制的に通常フェーズへ移行する。なお、以下では、基本フェーズのスケジュールとして通常フェーズのスケジュールを適用した例を説明するが、これに限るものではない。例えば、通常フェーズ以外に基本フェーズを更に設けて、基本フェーズとして予め設定したCPU割当時間を基本フェーズのスケジュールとしてもよい。或いは、他のフェーズのCPU割当時間を基本フェーズのスケジュールとしともよい。
【0041】
具体的には、設定部は、
図5に示すように、各フェーズへ移行後に、フェーズ毎に予め定めた時間が経過してもフェーズの切り替え依頼がない場合に、通常フェーズになるように、割当時間を設定して通常フェーズに切り替える。
【0042】
図5の例では、起動時に起動フェーズへ移行してから予め定めた時間として起動フェーズ用時間としての第1時間(
図5では一例として2000ms)が経過しても初期化完了通知がない場合は通常フェーズに切り替える。
【0043】
また、スリープ遷移通知により、通常フェーズからスリープフェーズに移行してから予め定めた時間としてスリープフェーズ用時間としての第2時間(
図5では一例として5000ms)が経過してもスリープ処理中のウェイクアップが行われない場合は通常フェーズに切り替える。スリープフェーズから通常フェーズへ移行する際には、起動フェーズを介して通常フェーズに切り替える。
【0044】
また、衝突検知通知により、通常フェーズから特殊処理フェーズに移行してから予め定めた時間として特殊処理フェーズ用時間としての第3時間(
図5では一例として100ms)が経過しても衝突後処理完了が通知されない場合は通常フェーズに切り替える。
【0045】
なお、
図5に示す各フェーズから通常フェーズに復帰させる予め定めた時間は一例であって、上記時間に限定されるものではない。
【0046】
続いて、上述のように構成された本実施形態に係るセントラルECU12で行われる具体的な処理について説明する。
図6は、本実施形態に係るセントラルECU12で行われるCPU割当時間の設定を行う際の処理の流れの一例を示すフローチャートである。なお、
図6の処理は、例えば、図示しないイグニッションスイッチ等の車両の電源がオンされた場合に開始する。
【0047】
ステップ100では、Hypervisor16が、起動フェーズ用CPU割当時間に設定してステップ102へ移行する。すなわち、車両の電源がオンすると検出部26が起動フェーズを検出し、設定部28が起動フェーズ用のCPU割当時間に設定する。具体的には、
図4に示すように、全体管理VM18であるVM0は1000μs、VM1及びVM2は0μsとし、全体管理VM18であるVM0がCPU時間を占有する設定とする。
【0048】
ステップ102では、Hypervisor16が、通常フェーズへの移行、又はフェーズの切り替えが行われてから起動フェーズ用時間としての第1時間内にフェーズ切り替え依頼がないか否かを判定する。該判定は、例えば、検出部26が全体管理VM18から起動フェーズの終了通知を受信したか否か、又は起動フェーズに切り替えてから2000ms内にフェーズ切り替え依頼がないか否かを判定する。該判定が肯定されるまで待機してステップ104へ移行する。なお、ステップ102において、起動フェーズ用時間としての第1時間内にフェーズ切り替え依頼がなく、判定が肯定された場合は、ステップ104へ移行する際に、設定部28が、フェーズを通常フェーズに強制的に切り替える。
【0049】
ステップ104では、Hypervisor16が、通常フェーズ用CPU割当時間に変更してステップ106へ移行する。すなわち、設定部28が、通常フェーズ用CPU割当時間設定に変更する。具体的には、
図4に示すように、VM0は200μs、VM1及びVM2はそれぞれ400μsにCPU割当時間を変更する。
【0050】
ステップ106では、Hypervisor16が、スリープフェーズへの移行であるか否かを判定する。該判定は、例えば、検出部26がスリープフェーズに移行する予め定めた条件の成立を検出したか否かを判定する。該判定が肯定された場合にはステップ108へ移行し、否定された場合にはステップ112へ移行する。
【0051】
ステップ108では、Hypervisor16が、スリープフェーズ用CPU割当時間設定に変更してステップ110へ移行する。すなわち、設定部28が、スリープフェーズ用CPU割当時間設定に変更する。具体的には、
図4に示すように、全体管理VM18であるVM0は700μs、VM1及びVM2はそれぞれ150μsとして、全体管理VM18へのCPU割当時間を多くして、スリープへの移行及び復帰の時間を短縮する。
【0052】
ステップ110では、Hypervisor16が、スリープから復帰、又はフェーズの切り替えが行われてからスリープフェーズ用時間としての第2時間内にフェーズ切り替え依頼がないか否かを判定する。該判定は、例えば、検出部26がスリープから復帰する予め定めた条件の成立を検出、又はスリープフェーズに切り替えてから5000ms内にフェーズ切り替え依頼がないか否かを判定する。該判定が肯定された場合にはステップ100に戻って上述の処理を繰り返し、否定された場合にはステップ112へ移行する。なお、本実施形態では、ステップ100に戻ってスリープフェーズから復帰後に起動フェーズとする例を示すが、これに限るものではなく、スリープフェーズから復帰後に通常フェーズに移行してもよい。この場合はステップ110の判定が肯定された場合にステップ104へ移行する。また、ステップ110において、スリープフェーズ用時間としての第2時間内にフェーズ切り替え依頼がなく、判定が肯定された場合は、ステップ100へ移行する際に、設定部28が、起動フェーズを介して通常フェーズにフェーズを強制的に切り替える。
【0053】
ステップ112では、Hypervisor16が、特所処理フェーズへの移行であるか否かを判定する。該判定は、例えば、検出部26が特殊処理フェーズに移行する予め定めた条件の成立を検出したか否かを判定する。該判定が肯定された場合にはステップ114へ移行し、否定された場合にはステップ118へ移行する。
【0054】
ステップ114では、Hypervisor16が、特殊処理フェーズ用CPU割当時間に変更してステップ116へ移行する。すなわち、設定部28が、特殊処理フェーズ用CPU割当時間設定に変更する。具体的には、
図4に示すように、VM0、1はそれぞれ200μs、VM2は600μsにCPU割当時間を変更する。
【0055】
ステップ116では、Hypervisor16が、特殊処理フェーズから復帰、又はフェーズの切り替えが行われてから特殊処理フェーズ用時間としての第3時間内にフェーズ切り替え依頼がないか否かを判定する。該判定は、例えば、検出部26が特殊処理フェーズから復帰する予め定めた条件の成立を検出、又はスリープフェーズに切り替えてから100ms内にフェーズ切り替え依頼がないか否かを判定する。該判定が肯定された場合にはステップ104に戻って上述の処理を繰り返し、否定された場合にはステップ118へ移行する。なお、特殊処理フェーズ用時間としての第3時間内にフェーズ切り替え依頼がなく、判定が肯定された場合は、ステップ104へ移行する際に、設定部28が、フェーズを通常フェーズに強制的に切り替える。
【0056】
ステップ118では、Hypervisor16が、処理を終了するか否かを判定する。該判定は、例えば、検出部26が図示しないイグニッションスイッチ等の車両の電源オフされたことを検出したか否かを判定する。該判定が否定された場合にはステップ120へ移行し、肯定された場合には一連の処理を終了する。
【0057】
ステップ120では、Hypervisor16が、特殊処理フェーズであるか否かを判定する。該判定は、特殊処理フェーズ中であるかを判定し、特殊処理フェーズ中の場合は判定が肯定されてステップ116に戻って上述の処理を繰り返す。一方、スリープフェーズ又は通常フェーズ中の場合は判定が否定されてステップ122へ移行する。
【0058】
ステップ122では、Hypervisor16が、通常フェーズであるか否かを判定する。該判定は、通常フェーズ中であるかを判定し、通常フェーズ中の場合は判定が肯定されてステップ106に戻って上述の処理を繰り返す。一方、スリープフェーズ中の場合は判定が否定されてステップ110に戻って上述の処理を繰り返す。
【0059】
このように処理を行うことで、フェーズ毎に各VM18へのCPU割当時間のスケジューリングを変更することができ、リソースの割当時間を調整できる。
【0060】
また、各フェーズでは、CPU割当時間が固定され、静的なスケジューリングであるため、車載システムで必要なリアルタイム性を保証できる。
【0061】
さらに、何かしらの原因で全体管理VM18が故障し、フェーズが切り替わらなかった場合でも、通常フェーズに強制的に切り替えて、通常フェーズ用CPU割当時間に設定するので、システムが立ち上がらない等の問題の発生を抑制できる。
【0062】
なお、上記の実施形態では、4つのCPU CORE14を備える例を説明したいが、これに限るものではない。例えば、単一のCPU CORE14を備える形態としてもよいし、4つ以外の複数のCPU COREを備える形態としてもよい。
【0063】
また、上記の実施形態では、Hypervisor16が3つのVM18を生成する例を説明したが、これに限るものではない。例えば、2つのVM18を生成してもよいし、4つ以上のVM18を生成してもよい。
【0064】
また、上記の実施形態では、フェーズとして、起動フェーズ、通常フェーズ、スリープフェーズ、及び特殊処理フェーズの4つフェーズを一例として説明したが、フェーズはこれら4つのフェーズに限るものではない。例えば、これら4つのフェーズ以外の他の異なる複数のフェーズとしてもよいし、上記4つのフェーズのうちの2つ又は3つのフェーズとしてもよいし、上記4つのフェーズに他のフェーズを加えた複数のフェーズとしてもよい。
【0065】
また、上記の実施形態におけHypervisor16で行われる処理は、プログラムとして各種記憶媒体に記憶して流通させるようにしてもよい。
【0066】
さらに、本発明は、上記に限定されるものでなく、上記以外にも、その主旨を逸脱しない範囲内において種々変形して実施可能であることは勿論である。
【符号の説明】
【0067】
10 車両
12 セントラルECU(情報処理装置)
14 CPU CORE
16 Hypervisor
18 VM
24 生成部
26 検出部
28 設定部