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