(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023104586
(43)【公開日】2023-07-28
(54)【発明の名称】車載制御装置、制御方法及びコンピュータプログラム
(51)【国際特許分類】
G06F 9/50 20060101AFI20230721BHJP
G06F 9/455 20180101ALI20230721BHJP
【FI】
G06F9/50 120A
G06F9/455 150
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022005674
(22)【出願日】2022-01-18
(71)【出願人】
【識別番号】395011665
【氏名又は名称】株式会社オートネットワーク技術研究所
(71)【出願人】
【識別番号】000183406
【氏名又は名称】住友電装株式会社
(71)【出願人】
【識別番号】000002130
【氏名又は名称】住友電気工業株式会社
(74)【代理人】
【識別番号】110000280
【氏名又は名称】弁理士法人サンクレスト国際特許事務所
(72)【発明者】
【氏名】高沢 忠浩
(57)【要約】 (修正有)
【課題】複数の仮想マシンを含む車載制御装置をより効率的に機能させる車載制御装置、制御方法及びコンピュータプログラムを提供する。
【解決手段】車載制御装置1は、物理リソースと、割当時間毎に物理リソースを割り当てて複数の仮想マシンを生成する管理部と、を備える。複数の仮想マシンは、外部に設けられている外部装置30と通信し、かつ、次のサイクルに繰り越すことができない処理を実行する第1仮想マシンと、繰り越すことができる処理を実行する第2仮想マシンと、を含む。管理部は、第1サイクルにおける第1仮想マシンの処理時間を取得する制御と、取得した処理時間と設定されている割当時間とにより算出される余白時間又は当該余白時間の変化率が第1所定値を下回る場合に、第1サイクル以降のサイクルにおける第1仮想マシンの割当時間を延長し、第2仮想マシンの割当時間を短縮する制御を行う第1変更制御を実行する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
車両に搭載される車載制御装置であって、
制御部、記憶部及び通信部を含む物理リソースと、
割当時間ごとに前記物理リソースを割り当てて複数の仮想マシンを生成する管理部と、
を備え、
前記複数の仮想マシンは、
前記車載制御装置の外部に設けられている外部装置と通信し、かつ次のサイクルに繰り越すことができない処理を実行する第1仮想マシンと、
次のサイクルに繰り越すことができる処理を実行する第2仮想マシンと、を含み、
前記管理部は、前記第1仮想マシン及び前記第2仮想マシンの各割当時間を変更する第1変更制御を実行し、
前記第1変更制御は、
第1サイクルにおける前記第1仮想マシンの処理時間を取得する制御と、
取得した処理時間と前記第1仮想マシンに設定されている割当時間とに基づいて算出される余白時間又は当該余白時間の変化率が第1所定値を下回る場合に、前記第1サイクル以降のサイクルにおける前記第1仮想マシンの割当時間を延長し、前記第2仮想マシンの割当時間を短縮する制御と、
を含む、車載制御装置。
【請求項2】
前記管理部は、前記第1仮想マシンの前記外部装置への通信リトライ回数が増加した場合に、前記第1変更制御を実行する、
請求項1に記載の車載制御装置。
【請求項3】
前記管理部は、前記第1変更制御を実行した後に、前記第1仮想マシン及び前記第2仮想マシンの各割当時間を変更する第2変更制御をさらに実行し、
前記第2変更制御は、
前記第1サイクル以降の第2サイクルにおける前記第1仮想マシンの処理時間を取得する制御と、
取得した処理時間と前記第1変更制御において変更された前記第1仮想マシンの割当時間とに基づいて算出される余白時間又は当該余白時間の変化率が前記第1所定値以上の値である第2所定値を超える場合に、前記第2サイクル以降のサイクルにおける前記第1仮想マシンの割当時間を短縮し、前記第2仮想マシンの割当時間を延長する制御と、
を含む、請求項1又は請求項2に記載の車載制御装置。
【請求項4】
前記管理部は、前記第1仮想マシンの前記外部装置への通信リトライ回数が減少した場合に、前記第2変更制御を実行する、
請求項3に記載の車載制御装置。
【請求項5】
前記管理部は、前記外部装置の劣化を示す所定条件を満たす場合に、前記第1仮想マシンの割当時間を延長し、前記第2仮想マシンの割当時間を短縮する第3変更制御をさらに実行する、
請求項1から請求項4のいずれか1項に記載の車載制御装置。
【請求項6】
前記記憶部は、第1の割当時間と、前記第1の割当時間よりも長い第2の割当時間と、を記憶し、
前記管理部は、
前記第1変更制御を、前記第3変更制御の後に実行し、
前記第3変更制御において、前記所定条件を満たす前は、前記第1仮想マシンの割当時間を前記第1の割当時間とし、前記所定条件を満たす場合に、前記第1仮想マシンの割当時間を前記第2の割当時間とし、
前記第1変更制御において、前記第1仮想マシンの割当時間を前記第2の割当時間から延長する、
請求項5に記載の車載制御装置。
【請求項7】
前記記憶部は、前記所定条件に関する情報と、前記第1の割当時間及び前記第2の割当時間を含む前記第1仮想マシンの割当時間とを対応させたテーブルを記憶し、
前記管理部は、前記第3変更制御において、前記所定条件を満たす場合に、前記テーブルを参照して前記第1仮想マシンの割当時間を延長する、
請求項6に記載の車載制御装置。
【請求項8】
前記所定条件は、
基準時点から所定時間以上の時間が経過したこと、
前記基準時点から前記外部装置が所定時間以上動作したこと、又は、
前記基準時点から前記車両が所定距離以上の距離を走行したこと、
を含み、
前記基準時点は、
前記外部装置の使用を開始した時点、又は、
前記第1仮想マシンの割当時間を延長した時点、
を含む、請求項5から請求項7のいずれか1項に記載の車載制御装置。
【請求項9】
車両に搭載される車載制御装置を制御する制御方法であって、
制御部、記憶部及び通信部を含む物理リソースを割当時間ごとに割り当てて複数の仮想マシンを生成する生成ステップと、
複数の前記仮想マシンのうち第1仮想マシン及び第2仮想マシンの各割当時間を変更する制御ステップと、
を備え、
前記第1仮想マシンは、前記車載制御装置の外部に設けられている外部装置と通信し、かつ次のサイクルに繰り越すことができない処理を実行する仮想マシンであり、
前記第2仮想マシンは、次のサイクルに繰り越すことができる処理を実行する仮想マシンであり、
前記制御ステップは、
第1サイクルにおける前記第1仮想マシンの処理時間を取得する取得ステップと、
取得した処理時間と前記第1仮想マシンに設定されている割当時間とに基づいて算出される余白時間又は当該余白時間の変化率が第1所定値を下回る場合に、前記第1サイクル以降のサイクルにおける前記第1仮想マシンの割当時間を延長し、前記第2仮想マシンの割当時間を短縮する変更ステップと、
を含む、制御方法。
【請求項10】
車両に搭載される車載制御装置を制御するためのコンピュータプログラムであって、
前記コンピュータプログラムは、コンピュータに、
制御部、記憶部及び通信部を含む物理リソースを割当時間ごとに割り当てて複数の仮想マシンを生成する生成ステップと、
複数の前記仮想マシンのうち第1仮想マシン及び第2仮想マシンの各割当時間を変更する制御ステップと、
を実行させ、
前記第1仮想マシンは、前記車載制御装置の外部に設けられている外部装置と通信し、かつ次のサイクルに繰り越すことができない処理を実行する仮想マシンであり、
前記第2仮想マシンは、次のサイクルに繰り越すことができる処理を実行する仮想マシンであり、
前記制御ステップは、
第1サイクルにおける前記第1仮想マシンの処理時間を取得する取得ステップと、
取得した処理時間と前記第1仮想マシンに設定されている割当時間とに基づいて算出される余白時間又は当該余白時間の変化率が第1所定値を下回る場合に、前記第1サイクル以降のサイクルにおける前記第1仮想マシンの割当時間を延長し、前記第2仮想マシンの割当時間を短縮する変更ステップと、
を含む、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、車載制御装置、制御方法及びコンピュータプログラムに関する。
【背景技術】
【0002】
従来より、1台のコンピュータを複数台のコンピュータであるかのように構成する仮想化技術が知られている。例えば、特許文献1には、ハイパーバイザーの機能により、車両に搭載されているECU(Electronic Control Unit)に複数のVM(Virtual Machine:仮想マシン)を構成する技術が開示されている。
【0003】
特許文献1において、ECUに含まれるVM構成部は、各VMごとに設定された割当時間に基づいて、VMを切り替える。例えば、ボデー制御VMに60msecの処理時間が割り当てられた後に、マルチメディアVMに40msecの処理時間が割り当てられる。
【0004】
ここで、VMの処理時間が割当時間を超過すると、超過分の処理が次のサイクルに後回しにされ、後回しになる処理が積み重なることで処理の遅延が生じうる。特許文献1のVM構成部は、ボデー制御VMの処理時間が割当時間を超過する場合に、ボデー制御VMよりも優先度の低い他のVMにおける余剰時間(割当時間から処理時間を減算した時間)をボデー制御VMの割当時間に加算する。例えば、マルチメディアVMの処理に15msecの余剰時間がある場合、VM構成部は、マルチメディアVMの割当時間を25msecに短縮して、ボデー制御VMの割当時間を75msecに延長する。これにより、特許文献1の技術では、処理の遅延を抑制する。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
例えばVMにおいて、次のサイクルに繰り越すことができない処理(リアルタイム処理)を行う場合、VMの割当時間は、想定される処理時間にある程度の余白時間を加算した時間とすることがある。このようなVMの場合、処理時間が割当時間を超過すると、それまで実行していた処理は失敗に終わり、次のサイクル等において再度処理をやり直す必要が生じうる。
【0007】
特許文献1の技術は、リアルタイム処理を考慮していないため、確保する必要のある余白時間が他のVMの割当時間に充当されるおそれがあり、割当時間を削ったVM(すなわち、余白時間が少なくなったVM)において処理の失敗が生じるおそれがある。
【0008】
ここで、VMが自身を構成するECU以外の装置(例えば、センサ等の外部装置)と通信を行う場合、当該外部装置の出力が一時的に不安定となる等の影響により、VMにおける処理時間が一時的に増大することがある。このような処理時間の増大が生じるとVMにおいて処理の失敗が生じうるため、複数のVMを構成するECUの機能を効率的に発揮できていなかった。
【0009】
本開示は、かかる事情に鑑みてなされたものであり、複数の仮想マシンを含む車載制御装置をより効率的に機能させることを目的とする。
【課題を解決するための手段】
【0010】
本開示の車載制御装置は、車両に搭載される車載制御装置であって、制御部、記憶部及び通信部を含む物理リソースと、割当時間ごとに前記物理リソースを割り当てて複数の仮想マシンを生成する管理部と、を備え、前記複数の仮想マシンは、前記車載制御装置の外部に設けられている外部装置と通信し、かつ次のサイクルに繰り越すことができない処理を実行する第1仮想マシンと、次のサイクルに繰り越すことができる処理を実行する第2仮想マシンと、を含み、前記管理部は、前記第1仮想マシン及び前記第2仮想マシンの各割当時間を変更する第1変更制御を実行し、前記第1変更制御は、第1サイクルにおける前記第1仮想マシンの処理時間を取得する制御と、取得した処理時間と前記第1仮想マシンに設定されている割当時間とに基づいて算出される余白時間又は当該余白時間の変化率が第1所定値を下回る場合に、前記第1サイクル以降のサイクルにおける前記第1仮想マシンの割当時間を延長し、前記第2仮想マシンの割当時間を短縮する制御と、を含む、車載制御装置である。
【0011】
本開示の制御方法は、車両に搭載される車載制御装置を制御する制御方法であって、制御部、記憶部及び通信部を含む物理リソースを割当時間ごとに割り当てて複数の仮想マシンを生成する生成ステップと、複数の前記仮想マシンのうち第1仮想マシン及び第2仮想マシンの各割当時間を変更する制御ステップと、を備え、前記第1仮想マシンは、前記車載制御装置の外部に設けられている外部装置と通信し、かつ次のサイクルに繰り越すことができない処理を実行する仮想マシンであり、前記第2仮想マシンは、次のサイクルに繰り越すことができる処理を実行する仮想マシンであり、前記制御ステップは、第1サイクルにおける前記第1仮想マシンの処理時間を取得する取得ステップと、取得した処理時間と前記第1仮想マシンに設定されている割当時間とに基づいて算出される余白時間又は当該余白時間の変化率が第1所定値を下回る場合に、前記第1サイクル以降のサイクルにおける前記第1仮想マシンの割当時間を延長し、前記第2仮想マシンの割当時間を短縮する変更ステップと、を含む、制御方法である。
【0012】
本開示のコンピュータプログラムは、車両に搭載される車載制御装置を制御するためのコンピュータプログラムであって、前記コンピュータプログラムは、コンピュータに、制御部、記憶部及び通信部を含む物理リソースを割当時間ごとに割り当てて複数の仮想マシンを生成する生成ステップと、複数の前記仮想マシンのうち第1仮想マシン及び第2仮想マシンの各割当時間を変更する制御ステップと、を実行させ、前記第1仮想マシンは、前記車載制御装置の外部に設けられている外部装置と通信し、かつ次のサイクルに繰り越すことができない処理を実行する仮想マシンであり、前記第2仮想マシンは、次のサイクルに繰り越すことができる処理を実行する仮想マシンであり、前記制御ステップは、第1サイクルにおける前記第1仮想マシンの処理時間を取得する取得ステップと、取得した処理時間と前記第1仮想マシンに設定されている割当時間とに基づいて算出される余白時間又は当該余白時間の変化率が第1所定値を下回る場合に、前記第1サイクル以降のサイクルにおける前記第1仮想マシンの割当時間を延長し、前記第2仮想マシンの割当時間を短縮する変更ステップと、を含む、コンピュータプログラムである。
【発明の効果】
【0013】
本開示によれば、複数の仮想マシンを含む車載制御装置をより効率的に機能させることができる。
【図面の簡単な説明】
【0014】
【
図1】
図1は、第1実施形態に係る車載制御装置とその周辺構成を例示する模式図である。
【
図2】
図2は、第1実施形態が解決しようとする課題を説明する図である。
【
図3】
図3は、第1実施形態に係る制御方法を例示するフローチャートである。
【
図4】
図4は、第1実施形態に係る更新テーブルを例示する図である。
【
図5】
図5は、第1実施形態に係る割当時間の変更を説明する図である。
【
図6】
図6は、第2実施形態に係る制御方法を例示するフローチャートである。
【
図7】
図7は、第2実施形態に係る割当時間の変更を説明する図である。
【
図8】
図8は、第2実施形態に係る割当時間の変更を説明する図である。
【
図9】
図9は、変形例に係る余白時間を説明する図である。
【発明を実施するための形態】
【0015】
<本開示の実施形態の概要>
以下、本開示の実施形態の概要を列記して説明する。
【0016】
(1)本開示の車載制御装置は、車両に搭載される車載制御装置であって、制御部、記憶部及び通信部を含む物理リソースと、割当時間ごとに前記物理リソースを割り当てて複数の仮想マシンを生成する管理部と、を備え、前記複数の仮想マシンは、前記車載制御装置の外部に設けられている外部装置と通信し、かつ次のサイクルに繰り越すことができない処理を実行する第1仮想マシンと、次のサイクルに繰り越すことができる処理を実行する第2仮想マシンと、を含み、前記管理部は、前記第1仮想マシン及び前記第2仮想マシンの各割当時間を変更する第1変更制御を実行し、前記第1変更制御は、第1サイクルにおける前記第1仮想マシンの処理時間を取得する制御と、取得した処理時間と前記第1仮想マシンに設定されている割当時間とに基づいて算出される余白時間又は当該余白時間の変化率が第1所定値を下回る場合に、前記第1サイクル以降のサイクルにおける前記第1仮想マシンの割当時間を延長し、前記第2仮想マシンの割当時間を短縮する制御と、を含む、車載制御装置である。
【0017】
管理部は、外乱により外部装置の出力が不安定となる期間など、第1仮想マシンの処理時間が一時的に増大する場合に、第1仮想マシンの割当時間を延長することで、第1仮想マシンにおける処理不良を抑制する。これにより、車載制御装置を効率的に機能させることができる。
【0018】
(2)前記管理部は、前記第1仮想マシンの前記外部装置への通信リトライ回数が増加した場合に、前記第1変更制御を実行してもよい。
【0019】
このように構成することで、管理部は、第1仮想マシンの処理時間の増大が見込まれる場合に第1変更制御を実行するため、管理部の制御負荷を削減することができる。
【0020】
(3)前記管理部は、前記第1変更制御を実行した後に、前記第1仮想マシン及び前記第2仮想マシンの各割当時間を変更する第2変更制御をさらに実行してもよく、前記第2変更制御は、前記第1サイクル以降の第2サイクルにおける前記第1仮想マシンの処理時間を取得する制御と、取得した処理時間と前記第1変更制御において変更された前記第1仮想マシンの割当時間とに基づいて算出される余白時間又は当該余白時間の変化率が前記第1所定値以上の値である第2所定値を超える場合に、前記第2サイクル以降のサイクルにおける前記第1仮想マシンの割当時間を短縮し、前記第2仮想マシンの割当時間を延長する制御と、を含んでもよい。
【0021】
管理部は、第1仮想マシンの処理時間が減少する場合に、第1仮想マシンの割当時間を短縮することで、第1仮想マシンの余白時間を短くする。これにより、車載制御装置を効率的に機能させることができる。
【0022】
(4)前記管理部は、前記第1仮想マシンの前記外部装置への通信リトライ回数が減少した場合に、前記第2変更制御を実行してもよい。
【0023】
このように構成することで、管理部は、第1仮想マシンの処理時間の減少が見込まれる場合に第2変更制御を実行するため、管理部の制御負荷を削減することができる。
【0024】
(5)前記管理部は、前記外部装置の劣化を示す所定条件を満たす場合に、前記第1仮想マシンの割当時間を延長し、前記第2仮想マシンの割当時間を短縮する第3変更制御をさらに実行してもよい。
【0025】
外部装置の劣化に起因して第1仮想マシンの処理時間が当初の割当時間よりも長くなる場合であっても、管理部が外部装置の劣化を所定条件に基づいて判断し、第1仮想マシンの割当時間を延長することで、第1仮想マシンの処理が失敗することを抑制することができる。このように構成することで、初期において第1仮想マシンの余白時間を余分に設定することを抑制しつつ、経年使用後にも第1仮想マシンの処理を継続させることができるため、車載制御装置を効率的に機能させることができる。
【0026】
(6)前記記憶部は、第1の割当時間と、前記第1の割当時間よりも長い第2の割当時間と、を記憶してもよく、前記管理部は、前記第1変更制御を、前記第3変更制御の後に実行してもよく、前記第3変更制御において、前記所定条件を満たす前は、前記第1仮想マシンの割当時間を前記第1の割当時間とし、前記所定条件を満たす場合に、前記第1仮想マシンの割当時間を前記第2の割当時間としてもよく、前記第1変更制御において、前記第1仮想マシンの割当時間を前記第2の割当時間から延長してもよい。
【0027】
このように構成することで、第3変更制御により第1仮想マシンの割当時間を外部装置の経年劣化による処理時間の増大を加味した第2の割当時間に延長した状態で、さらに第1変更制御により外部装置の外乱等に起因する一時的な処理時間の増大を加味して第1仮想マシンの第2の割当時間を追加的に延長することができる。これにより、より現状に則した第1仮想マシンの割当時間を設定することができるため、車載制御装置の機能をより効率的に発揮させることができる。
【0028】
(7)前記記憶部は、前記所定条件に関する情報と、前記第1の割当時間及び前記第2の割当時間を含む前記第1仮想マシンの割当時間とを対応させたテーブルを記憶してもよく、前記管理部は、前記第3変更制御において、前記所定条件を満たす場合に、前記テーブルを参照して前記第1仮想マシンの割当時間を延長してもよい。
【0029】
割当時間を予めテーブルとして記憶することで、管理部において割当時間を算出する処理負荷を少なくすることができる。
【0030】
(8)前記所定条件は、基準時点から所定時間以上の時間が経過したこと、前記基準時点から前記外部装置が所定時間以上動作したこと、又は、前記基準時点から前記車両が所定距離以上の距離を走行したこと、を含んでもよく、前記基準時点は、前記外部装置の使用を開始した時点、又は、前記第1仮想マシンの割当時間を延長した時点、を含んでもよい。
【0031】
このように構成することで、管理部は、外部装置の劣化をより容易に判断することができる。
【0032】
(9)本開示の制御方法は、車両に搭載される車載制御装置を制御する制御方法であって、制御部、記憶部及び通信部を含む物理リソースを割当時間ごとに割り当てて複数の仮想マシンを生成する生成ステップと、複数の前記仮想マシンのうち第1仮想マシン及び第2仮想マシンの各割当時間を変更する制御ステップと、を備え、前記第1仮想マシンは、前記車載制御装置の外部に設けられている外部装置と通信し、かつ次のサイクルに繰り越すことができない処理を実行する仮想マシンであり、前記第2仮想マシンは、次のサイクルに繰り越すことができる処理を実行する仮想マシンであり、前記制御ステップは、第1サイクルにおける前記第1仮想マシンの処理時間を取得する取得ステップと、取得した処理時間と前記第1仮想マシンに設定されている割当時間とに基づいて算出される余白時間又は当該余白時間の変化率が第1所定値を下回る場合に、前記第1サイクル以降のサイクルにおける前記第1仮想マシンの割当時間を延長し、前記第2仮想マシンの割当時間を短縮する変更ステップと、を含む、制御方法である。
【0033】
このように構成することで、外乱により外部装置の出力が不安定となる期間など、第1仮想マシンの処理時間が一時的に増大する場合に、第1仮想マシンの割当時間を延長することができるため、第1仮想マシンにおける処理不良を抑制することができる。これにより、車載制御装置を効率的に機能させることができる。
【0034】
(10)本開示のコンピュータプログラムは、車両に搭載される車載制御装置を制御するためのコンピュータプログラムであって、前記コンピュータプログラムは、コンピュータに、制御部、記憶部及び通信部を含む物理リソースを割当時間ごとに割り当てて複数の仮想マシンを生成する生成ステップと、複数の前記仮想マシンのうち第1仮想マシン及び第2仮想マシンの各割当時間を変更する制御ステップと、を実行させ、前記第1仮想マシンは、前記車載制御装置の外部に設けられている外部装置と通信し、かつ次のサイクルに繰り越すことができない処理を実行する仮想マシンであり、前記第2仮想マシンは、次のサイクルに繰り越すことができる処理を実行する仮想マシンであり、前記制御ステップは、第1サイクルにおける前記第1仮想マシンの処理時間を取得する取得ステップと、取得した処理時間と前記第1仮想マシンに設定されている割当時間とに基づいて算出される余白時間又は当該余白時間の変化率が第1所定値を下回る場合に、前記第1サイクル以降のサイクルにおける前記第1仮想マシンの割当時間を延長し、前記第2仮想マシンの割当時間を短縮する変更ステップと、を含む、コンピュータプログラムである。
【0035】
このように構成することで、外乱により外部装置の出力が不安定となる期間など、第1仮想マシンの処理時間が一時的に増大する場合に、第1仮想マシンの割当時間を延長することができるため、第1仮想マシンにおける処理不良を抑制することができる。これにより、車載制御装置を効率的に機能させることができる。
【0036】
<本開示の実施形態の詳細>
以下、図面を参照しつつ、本発明の実施形態の詳細を説明する。
【0037】
[1.第1実施形態]
[1.1 車載制御装置とその周辺構成]
図1は、第1実施形態に係る車載制御装置1とその周辺構成を例示する模式図である。
車載制御装置1は、車両V1に搭載されている装置であり、ECU(Electronic Control Unit)とも称される。車両V1は、例えば自動車であるが、車両V1の種類は特に限定されない。車両V1には、車載制御装置1の他に、複数の外部装置30が搭載されている。複数の外部装置30は、複数のECU31と、複数のセンサ32と、複数の通信装置33とを含む。
【0038】
ECU31は、例えば車両V1の各部(例えば、制動装置、ドア、バッテリ、エアコン等)を制御する装置(操作系ECU)である。ECU31の機能は特に限定されず、ECU31は、センサ32と通信して、車両V1の各部の状態を監視する装置(認知系ECU)であってもよい。ECU31は、例えば後述の通信部16に通信線31aを介して接続されている。
【0039】
センサ32は、例えば車両V1の周辺を監視するためのLiDAR(Light Detection and Ranging)である。センサ32の内容は特に限定されず、センサ32は、車両V1内の温度を検知する温度センサであってもよいし、車両V1に人が乗ったことを検知する人感センサであってもよい。センサ32は、例えば後述の通信部16に通信線32aを介して接続されている。
【0040】
通信装置33は、例えばTCU(Telematics Communication Unit)であり、インターネット等のネットワークを介して車外装置4と無線通信を行う。通信装置33は、例えば後述の通信部16に通信線33aを介して接続されている。
【0041】
車外装置4は、車両V1の外部に設置されている装置である。車外装置4は、例えば、制御部、記憶部及び通信部を備えるサーバである。車外装置4の記憶部は、例えば、車載制御装置1及びECU31を制御するためのプログラム又はデータを記憶する。例えば車載制御装置1又はECU31の製造者は、必要に応じて当該プログラム又はデータを修正し、修正されたプログラム又はデータを随時、車外装置4の記憶部に格納する。車外装置4の通信部は、修正されたプログラム又はデータを、更新データとして通信装置33に送信する。
【0042】
車載制御装置1は、後述の仮想化技術によって、複数のVM(Virtual Machine:仮想マシン)13として機能するECUである。すなわち、車載制御装置1は、複数の仮想的なECUとして機能する統合ECUである。複数のVM13のそれぞれの機能は、特に限定されない。例えば、VM13は、通信装置33から入力される更新データをECU31に中継する装置であってもよい。この場合、VM13は、例えばセントラルゲートウェイ(CGW:Central Gateway)のように、複数の異なるLAN(Local Area Network)が車両V1内に存在するネットワーク環境で、各LANに存在する複数のECU31がそれぞれ送信又は受信するデータの中継をしてもよい。また、VM13は、上記のECU31と同様に、車両V1の各部を制御する装置であってもよいし、車両V1の各部の状態を監視する装置であってもよい。
【0043】
[1.2 車載制御装置の内部構成]
車載制御装置1は、各種の物理リソース11と、物理リソース11を割り当てて複数のVM13を生成する管理部12と、を備える。物理リソース11は、制御部14と、記憶部15と、通信部16と、読取部17と、を含む。制御部14、記憶部15、通信部16及び読取部17は、例えばバスによって互いに電気的に接続されている。
【0044】
制御部14は、例えば、CPU(Central Processing Unit)である。制御部14は、GPU(Graphics Processing Unit)であってもよいし、FPGA(Field-Programmable Gate Array)等の集積回路であってもよい。
【0045】
記憶部15は、揮発性メモリと、不揮発性メモリと有し、各種のデータを記憶する。揮発性メモリは、例えばRAM(Random Access Memory)である。不揮発性メモリは、例えばフラッシュメモリ、HDD(Hard Disk Drive)、SSD(Solid State Drive)又はROM(Read Only Memory)等を含む。
【0046】
記憶部15は、不揮発性メモリに、例えばコンピュータプログラム15aと、仮想化オペレーティングシステム15b(以下、「仮想化OS15b」と称する。)と、ゲストオペレーティングシステム15c(以下、「ゲストOS15c」と称する。)と、を記憶している。
【0047】
読取部17は、コンピュータが読取り可能な記録媒体18から情報を読み取る。記録媒体18は、例えばCD、DVD等の光学ディスク又はUSBフラッシュメモリである。読取部17は、例えば光学ドライブ又はUSB端子である。記録媒体18には複数のコンピュータプログラム15a、仮想化OS15b及び複数のゲストOS15cが記録されており、記録媒体18を読取部17に読み取らせることで、複数のコンピュータプログラム15a、仮想化OS15b及び複数のゲストOS15cは、記憶部15の不揮発性メモリに記憶される。
【0048】
複数のコンピュータプログラム15aは、管理部12としての機能を実現するためのプログラムと、複数のVM13において後述のアプリケーション13bを実現するためのプログラム(アプリケーションプログラム)と、を含む。
【0049】
複数のゲストOS15cは、各VM13を動作させるためのOSである。ゲストOS15cは特に限定されないが、例えば、Autosar(登録商標)、Linux(登録商標)、Android(登録商標)、QNX(登録商標)又はUbuntu(登録商標)であってもよい。
【0050】
なお、複数のコンピュータプログラム15a、仮想化OS15b及び複数のゲストOS15cは、車外装置4から送信され、通信装置33及び通信部16を介して、記憶部15に記憶されてもよい。
【0051】
通信部16は、複数のECU31と通信線31aを介して接続する第1の通信インターフェースと、複数のセンサ32と通信線32aを介して接続する第2の通信インターフェースと、通信装置33と通信線33aを介して接続する第3の通信インターフェースとを含む。通信線31a,32a,33aの通信規格は特に限定されないが、例えばCAN又はイーサネット(Ethernet:登録商標)である。通信線31a,32a,33aの通信規格は、同一の通信規格であってもよいし、それぞれ異なる通信規格であってもよい。
【0052】
制御部14は、記憶部15からコンピュータプログラム15a、仮想化OS15b及びゲストOS15cを読出して、これら15a~15cに基づいて各種の演算及び処理を実行することで、後述の各種の機能を実現する。管理部12及び複数のVM13の各種の動作は、制御部14の演算及び処理によって実現される。
【0053】
管理部12は、仮想化OS15bに基づいて物理リソース11を適宜に割り当てることで、複数のVM13がそれぞれ動作可能な複数の仮想環境を構築する。仮想化OS15bは、例えばハイパーバイザー(Hypervisor:登録商標)である。なお、仮想化OS15bは、その他の仮想化ソフトウェアであってもよい。例えば、仮想化OS15bは、ホスト型の仮想化ソフトウェアであってもよいし、コンテナ型の仮想化ソフトウェアであってもよい。
【0054】
複数のVM13は、割当時間ごとに物理リソース11が割り当てられることで構成される仮想ハードウェアをそれぞれ含む。仮想ハードウェアは、例えば仮想制御部、仮想記憶部及び仮想通信部を有する。VM13は、当該仮想ハードウェア上でゲストOS13aを動作させ、このゲストOS上で各種のアプリケーション13bを動作させることにより、実物の物理的なECU(例えば、ECU31)のように機能する。ゲストOS13aは、記憶部15に記憶されている複数のゲストOS15cのうち、管理部12によって割り当てられた1個のゲストOS15cに相当する。
【0055】
複数のVM13は、VM21と、VM22と、VM23とを含む。以降では、VM21、VM22及びVM23を特に区別しない場合に「VM13」と総称する。
図1の例では、管理部12は、これら3個のVM13を生成するが、管理部12は4個以上のVM13を生成してもよい。
【0056】
VM21は、外部装置30と通信するVMである。また、VM21はリアルタイム性が要求される処理(リアルタイム処理)を実行するVMである。VM21は、外部装置30に要求信号を送信し、当該要求信号に応じて外部装置30から送信されるデータを受信するVMである。例えば、VM21は、センサ32からデータを受信して、当該データに各種の処理を施した後、他のVM22,23に当該データを送信するVMである。VM21は、車外装置4から通信装置33を経由して提供される更新データ等の各種のデータを他のVM22,23及びECU31に中継するVMであってもよい。
【0057】
VM22は、外部装置30と通信しないVMである。より具体的には、VM22は、車載制御装置1内において処理が完結するVMである。また、VM22はリアルタイム処理を実行するVMである。VM22は、例えば、VM21からVM22に送信されたデータに基づいて車両V1の各部の状態を判定するVMである。VM22は、例えば判定結果に関するデータをVM21に送信する。
【0058】
VM23は、リアルタイム性が比較的に要求されない処理を実行するVMである。VM23は、例えば車載制御装置1の品質を管理するためのVMである。例えば、VM23は、VM21,22の処理情報(例えば、処理の内容、処理時間等の履歴)を収集して、VM21,22が効率的に機能しているか否かを評価してもよい。
【0059】
[1.3 第1実施形態が解決しようとする課題]
図2は、第1実施形態が解決しようとする課題を説明する図である。
図2中の(a),(b)は、各VM21,22,23のそれぞれの割当時間を示すタイミングチャートである。管理部12は、所定のサイクルTごとに各VM21,22,23が動作する時間を割り当てる。すなわち、管理部12はスケジューラとしての機能を有する。
【0060】
図2の(a)を参照する。管理部12は、所定のサイクルT1(以下、「第1サイクルT1」とも称する。)において、初めにVM21に割当時間X11の間だけ物理リソース11を割り当てる。VM21は割り当てられた物理リソース11を用いて所定の処理を実行する。以下、VMが実際に処理を実行する時間を「処理時間」と称する。VM21は、割当時間X11の間に、処理時間Z11を費やして所定の処理を実行する。
【0061】
VM21は、第1サイクルT1において、次のサイクルT2(以下、「第2サイクルT2」とも称する。)に繰り越すことができない処理(リアルタイム処理)を実行する。すなわち、VM21の処理が割当時間X11の間に終了しない場合、当該処理は失敗となる。言い換えると、VM21の処理はサイクルをまたいで中断及び再開することができない処理である。このため、処理時間Z11が割当時間X11内に収まるように、割当時間X11は処理時間Z11よりも長めに設定されている(X11>Z11)。以下、割当時間のうちVMの処理に用いられない時間を「余白時間」と称する。割当時間X11に含まれる余白時間Y11は、割当時間X11から処理時間Z11を減算することで求められる(Y11=X11-Z11)。
【0062】
同様に、VM22は、第1サイクルT1において、第2サイクルT2に繰り越すことができない処理(リアルタイム処理)を実行する。このため、VM22の割当時間X12は、VM22が処理を実行する処理時間Z12と、VM22の処理に用いられない余白時間Y12とを含む。
【0063】
VM23は、第1サイクルT1において、第2サイクルT2に繰り越すことができる処理を実行する。すなわち、VM23の処理は、例えばVM23の割当時間X13を費やして終了しなかった場合に、一旦中断して、次の第2サイクルT2におけるVM23の割当時間X13において再開することができる処理である。このため、VM23の割当時間X13は、全て処理時間として費やされ、余白時間を含まない。なお、割当時間X13に余白時間が含まれてもよい。
【0064】
第1サイクルT1が終了すると、管理部12は同じくVM21,22,23にそれぞれ割当時間X11,X12,X13を割り当てて、第2サイクルT2を実行する。
【0065】
図2の(a)は、例えば新品の外部装置30(例えば、新品のセンサ32)を使用している状態でのタイミングチャートを示している。新品の外部装置30の場合、外部装置30がほとんど劣化していないため、外部装置30と通信するVM21の処理に遅れが生じておらず、処理時間Z11は割当時間X11に収まっている。
【0066】
図2の(b)は、経年劣化した外部装置30を使用している状態でのタイミングチャートを示している。外部装置30が劣化すると、例えば外部装置30から出力される信号が不安定となり、VM21が外部装置30(例えばセンサ32)からデータを受信するまでより長い時間が掛かる場合がある。
【0067】
より具体的には、外部装置30から出力される信号が異常信号(信号強度が弱い若しくは極度に強い、又は、信号が示す値が極端に低い若しくは極端に高い)となる場合、当該信号を受信したVM21は外部装置30に対して信号送信の再要求(通信リトライ)を行う。VM21の外部装置30への通信リトライを行う回数が増加すると、その分だけVM21が外部装置30から所望のデータ(正常なデータ)を受信するまでの時間が長くなる。このため、VM21の処理時間Z11が増大する。
【0068】
図2の(b)に示すように、処理時間Z11が割当時間X11よりも長くなると、VM21は処理を途中で中断せざるを得ず、VM21の処理は失敗となる。例えば、VM21の処理がセンサ32から検知データの現在値を受信することである場合、割当時間X11の間にセンサ32から所望の検知データを受信できない場合、当該処理は失敗となる。
【0069】
そして、VM21の処理は次の第2サイクルT2に繰り越すことができないため、第2サイクルT2においても処理を始めから実行する(処理をやり直す)。例えば、VM21がセンサ32から検知データの現在値を受信する場合、VM21は現時点にてセンサ32が検知している値を取得する必要がある。このため、VM21は、第1サイクルT1において処理が中断された後、次の第2サイクルT2において、第1サイクルT1時点の過去の検知データを引き続きセンサ32から受信するのではなく、第2サイクルT2におけるセンサ32の検知データの現在値を受信する。
【0070】
そして、センサ32は既に経年劣化しているため、第2サイクルT2の割当時間X11においてもセンサ32から出力される信号は依然として不安定であり、第2サイクルT2においてもVM21の処理時間Z11が割当時間X11よりも長くなってVM21の処理が失敗するおそれがある。
【0071】
このように、外部装置30の経年劣化に起因して処理時間Z11が増大すると、VM21が継続的に処理不良に陥るおそれがある。この課題の対応としては、処理時間Z11の増大を見越して、余白時間Y11を余分に確保するためにVM21の割当時間X11を過剰に設定することが考えられる。しかしながら、余白時間Y11は、VM21が処理を実行しない時間であるため、割当時間X11に占める余白時間Y11の割合が大きいと(余白時間Y11が長いと)、複数のVM13を構成する車載制御装置1の機能を効率的に発揮できない。
【0072】
そこで、本実施形態では、割当時間X11の過剰な設定はせずに、初めは新品の外部装置30と通信するVM21に適した割当時間X11を設定する。そして、外部装置30が劣化するような所定条件(例えば、所定時間の経過等)が満たされた場合に、管理部12はVM21の割当時間X11を延長する。また、管理部12は、割当時間X11の延長に伴ってサイクルの総時間が変化しないように、次のサイクルに繰り越すことができる処理を実行するVM23の割当時間X13を短縮する。
【0073】
すなわち、管理部12は、外部装置30に劣化がない間(すなわち、外部装置30の出力が比較的安定している間)、VM21の割当時間X11をより短くする。例えば、外部装置30劣化時に予想される増大後の処理時間Z11よりも初期の割当時間X11を短くする。これにより、割当時間X11に占める余白時間Y11の割合を比較的小さく抑え、車載制御装置1の機能を効率的に発揮させる。そして、経年により外部装置30が劣化するおそれがある場合に、管理部12はVM21の割当時間X11を延長することで、VM21における処理不良を抑制する。これにより、車載制御装置1をより長期にわたって効率的に機能させることができる。
【0074】
以下、第1実施形態の管理部12による制御方法を詳しく説明する。
【0075】
[1.4 制御方法]
図3は、第1実施形態に係る制御方法を例示するフローチャートである。
図3は、管理部12が実行する各種の制御を示している。これらの制御は、管理部12が記憶部15からコンピュータプログラム15aを読み取って各種の演算及び処理を実行することで実現される。
図3に示す各ステップは、適宜順番が前後してもよい。
【0076】
初めに、管理部12は外部装置30が劣化するような所定条件が満たされているか否かを監視する(ステップST11)。管理部12は、ステップST11の監視を随時に実行してもよいし、定期的に(例えば、1週間おきに)実行してもよい。
【0077】
所定条件は、例えば以下の(1)、(2)又は(3)を含む。
(1)所定の基準時点P1から所定時間以上の時間が経過したこと
(2)基準時点P1から外部装置30が所定時間以上動作したこと
(3)基準時点P1から車両V1が所定距離以上の距離を走行したこと
【0078】
上記(1)では、管理部12は、外部装置30を動作させたか否か、又は車両V1を走行させたか否かにかかわらず、基準時点P1から経過した時間によって外部装置30が劣化したことを判定する。例えば、管理部12は、CPU等に内蔵されるタイマーを用いて基準時点P1からカウントを開始し、当該カウントが所定時間以上となった際に、所定条件が充足されていると判定する。
【0079】
上記(2)では、管理部12は、外部装置30の動作時間によって外部装置30が劣化したことを判定する。例えば、管理部12は、CPU等に内蔵されるタイマーを用いて基準時点P1から外部装置30の動作中に限ってカウントを進め、当該カウントが所定時間以上となった際に、所定条件が充足されていると判定する。
【0080】
上記(3)では、管理部12は、車両V1の走行距離によって外部装置30が劣化したことを判定する。例えば、管理部12は、車両V1の走行距離を検知するセンサ32から車両V1の走行距離に関するデータを取得して、基準時点P1からの走行距離が所定距離以上となった際に、所定条件が充足されていると判定する。
【0081】
ここで、基準時点P1は、例えば以下の(4)又は(5)を含む。
(4)外部装置30の使用を開始した時点
(5)VM21の割当時間を延長した時点
【0082】
上記(4)では、管理部12は、例えば外部装置30を車載制御装置1に新たに接続した時点を基準時点P1とする。このため、例えば古い外部装置30から新しい外部装置30に交換した時点で、上記(1)~(3)のカウントはリセットされる。一方で、VM21の割当時間を延長しても、当該カウントはリセットされない。
【0083】
上記(5)では、管理部12は、後述の第3変更制御(ステップST16)を実行した時点を基準時点P1とする。このため、ステップST16においてVM21の割当時間が延長されると、上記(1)~(3)のカウントはリセットされる。一方で、外部装置30を交換しても、当該カウントはリセットされない。
【0084】
なお、基準時点P1は、上記(4)と(5)を両方含んでもよい。すなわち、外部装置30を交換した時点と、VM21の割当時間が延長された時点と、の両方の時点において上記(1)~(3)のカウントがリセットされてもよい。
【0085】
所定条件が満たされていない場合(ステップST11のNO)、管理部12はステップST11の監視を繰り返す。一方で、所定条件が満たされた場合(ステップST11のYES)、管理部12は更新後の割当時間を取得する(ステップST12)。具体的には、管理部12は、記憶部15から
図4に示す更新テーブルを取得する。
【0086】
図4は、第1実施形態に係る更新テーブルを例示する図である。更新テーブルは、所定時間又は所定距離と、VM21,22,23の各割当時間とを対応させたテーブルであり、記憶部15にパラメータとして記憶されている。
図4の例では、1列目に更新対象のVM13であるVM21,23が記載され、2列目以降には所定時間ごとのVM21,22,23の各割当時間が記載されている。更新テーブルの詳細は後述する。
【0087】
なお、更新テーブルは車外装置4に記憶されていてもよい。この場合、ステップST12の実行時に、管理部12は、ネットワーク及び通信装置33を介して車外装置4から更新テーブルを取得する。すなわち、管理部12は、OTA(Over The Air)技術により、適時に更新テーブルを取得してもよい。
【0088】
更新テーブルを取得した後、管理部12は、変数iの値を「1」として(ステップST13)、変数iが車載制御装置1が構成するVM13の個数N以下か否かを判定する(ステップST14)。
図1の例では、VM13は3個(N=3)であるため、1回目のステップST14はYESのルートに進む。
【0089】
次に、管理部12は、i台目のVM13が更新対象であるか否かを判定する(ステップST15)。ここで、
図1の例では、VM21を1台目、VM22を2台目、VM23を3台目のVMと定義する。1回目のステップST15において、管理部12は、1台目のVM13であるVM21が更新対象か否かを判定する。本例において、VM21,23が更新対象であり、VM22は更新対象でない。このため、1回目のステップST15において、管理部12はYESのルートに処理を進める。
【0090】
続いて、管理部12は、i台目のVM13の割当時間を更新する(ステップST16)。具体的には、管理部12は、更新テーブルを参照して、VM21の割当時間を更新する。ここで、更新テーブルについて、
図4及び
図5を参照して具体的に説明する。
【0091】
図5は、第1実施形態に係る割当時間の更新を説明する図である。
図5中の(a)は、更新前の割当時間を示すタイミングチャートであり、(b)は更新後の割当時間を示すタイミングチャートである。
【0092】
図4の更新テーブルは、所定条件が上記(1)又は(2)であり、基準時点P1が上記(4)である例を示している。例えば、基準時点P1から所定時間D1以上かつ所定時間D2未満の時間が経過している場合に、管理部12はVM21の割当時間を「X11」に設定し、VM22の割当時間を「X12」に設定し、VM23の割当時間を「X13」に設定する。所定時間D1は例えば「0」であり、割当時間X11,X12,X13は各VM21,22,23の割当時間の初期値である。例えば、管理部12は、
図5の(a)に示すように、外部装置30が新品に交換される等により外部装置30の使用を開始する時点で、記憶部15の更新テーブルを参照し、各VM21,22,23に初期値の割当時間X11,X12,X13を設定する。
【0093】
基準時点P1から所定時間D2以上かつ所定時間D3未満の時間が経過している場合、管理部12は更新テーブルの3列目(D2の列)を参照する。そして、管理部12は、
図5の(b)に示すように、VM21を更新する場合には割当時間をX11よりも長い「X21」に設定し、VM23を更新する場合には割当時間をX13よりも短い「X23」に設定する。VM22は所定時間D2以上かつ所定時間D3未満の場合において割当時間の更新対象となっていないため、更新テーブルにおいて値は記載されていない。所定時間D2は、例えば30日であり、所定時間D3は、例えば90日である。
【0094】
X11からX21への割当時間の増加分と、X13からX23への割当時間の減少分は、等しい(X21-X11=X13-X23)。このため、VM21,23の割当時間を更新する前と、更新した後のサイクルは等しい(X11+X12+X13=X21+X12+X23)。
【0095】
同様に、基準時点P1から所定時間D3以上の時間が経過している場合、管理部12は更新テーブルの4列目(D3の列)を参照して、VM21の割当時間を「X31」に設定し、VM23の割当時間を「X33」に設定する。X31はX21よりも長く、X33はX23よりも短い。このように、管理部12は、所定時間がより長く経過するごとに(又は、所定距離がより長くなるごとに)、VM21の割当時間を段階的に長くし、VM23の割当時間を段階的に短くする。この場合も、X21からX31への割当時間の増加分と、X23からX33への割当時間の減少分は、等しい(X31-X21=X23-X33)。
【0096】
以下の説明では、例えば基準時点P1から所定時間D2が経過することで、ステップST11の所定条件を満たした例を考える。この場合、1回目のステップST16において、管理部12はVM21の割当時間を「X11」から「X21」に延長する。続いて、管理部12は変数iに「1」を加算する(ステップST17)。これにより変数iは「2」となる。
【0097】
ステップST17の後、管理部12はステップST14に戻る。変数i(=2)は、依然としてVM13の個数N(=3)以下であるため、2回目のステップST14もYESのルートに進む。次に、管理部12は、2回目のステップST15を実行する。2台目のVM13であるVM22は外部装置30と通信せず、さらにリアルタイム処理を行うVMであるため更新対象ではない。このため、2回目のステップST15において、管理部12はNOのルートに処理を進めて、ステップST16をスキップする。続いて、管理部12は変数iに「1」を加算する(ステップST17)。これにより変数iは「3」となる。
【0098】
2回目のステップST17の後、管理部12は3回目のステップST14を実行する。変数i(=3)は、VM13の個数N(=3)以下であるため、3回目のステップST14もYESのルートに進む。次に、管理部12は、3回目のステップST15を実行し、VM23は更新対象であるためYESのルートに進み、更新テーブルを参照してVM23の割当時間を「X13」から「X23」に短縮する(ステップST16)。続いて、管理部12は変数iに「1」を加算して、変数iを「4」とする(ステップST17)。
【0099】
3回目のステップST17の後、管理部12は4回目のステップST14を実行する。変数i(=4)は、VM13の個数N(=3)よりも大きいため、3回目のステップST14はNOのルートに進み、管理部12による一連の制御が終了する。上記のステップST11からステップST17までの一連の制御を、適宜「第3変更制御」とも称する。
【0100】
以上に説明するように、管理部12は、複数のVM13のスケジュール管理に関して、所定条件に基づいて外部装置30の劣化を判定し、外部装置30の劣化が想定される場合には、VM21(外部装置30と通信し、かつリアルタイム処理を行うVM)の割当時間を延長する。
【0101】
これにより、
図5の(b)に示すように、外部装置30の劣化に起因してVM21の処理時間Z11が当初の割当時間X11よりも長くなる場合であっても、割当時間を「X11」から「X21」に延長することで、VM21の処理が失敗することを抑制することができる。このように構成することで、初期において余白時間Y11を余分に設定することを抑制しつつ、経年使用後にもVM21の処理を継続させることができるため、車載制御装置1を効率的に機能させることができる。
【0102】
また、管理部12は、VM21の割当時間を延長することに伴い、次のサイクルに繰り越すことができる処理を実行するVM23の割当時間を短縮する。すなわち、管理部12は、VM23の割当時間を短縮することにより、VM21に追加的に割り当てる時間を捻出する。VM23の処理は途中で中断して、次のサイクルにて再開することが可能であるため、VM23の割当時間が短くなったとしても、車載制御装置1の機能が低下するおそれは少ない(少なくとも、VM21の処理の失敗が続く場合と比べて、車載制御装置1の機能低下のリスクは低い)。
【0103】
また、管理部12は、VM21の割当時間を延長した分だけ、VM23の割当時間を短縮するため、割当時間の更新前後において、1サイクルに掛かる時間は変化しない(例えば、T1=T2)。このため、管理部12における処理負担を抑制することができるため、より多くの物理リソース11を管理部12ではなく複数のVM13に割くことができ、車載制御装置1をより効率的に機能させることができる。
【0104】
[2.第2実施形態]
次に、本開示の第2実施形態について説明する。第2実施形態において、第1実施形態と同じ構成については同じ符号を付して説明を省略する。第2実施形態は、管理部12による制御方法の内容が第1実施形態と相違する。
【0105】
[2.1 第2実施形態が解決しようとする課題]
第1実施形態では、経年劣化によって外部装置30の出力が不安定になることに起因するVM21の処理時間Z11の増大について説明した。外部装置30の経年劣化は、例えば外部装置30の交換によって回復することができるが、基本的には経時的に悪化の一途を辿ることになる。このため、第1実施形態では、VM21の割当時間を、初期のX11からX11よりも長いX21に更新し、その後、X21よりも長いX31に更新するというように、経時的に、より長い時間に順次更新する。
【0106】
一方、外部装置30は、経年劣化とは別に、外乱によって一時的に出力が不安定になる場合がある。外部装置30が車両V1の周辺の状態を監視するセンサ32である場合、車両V1の周囲の電磁波(例えば、車両V1の付近に電波塔があること)、天候(例えば、雨、雪、猛暑、極寒)、悪路(例えば、凹凸の激しい道路)等の影響を受けて、一時的に出力が不安定になる場合がある。このような場合、VM21が外部装置30からデータを受信するための処理時間Z11が一時的に増大することがある。
【0107】
このように、外乱等による外部装置30の出力が一時的に不安定になることに起因して処理時間Z11が増大すると、VM21も一時的に処理不良に陥るおそれがある。例えば、このような一時的な処理時間Z11の増大を見越してVM21の割当時間X11を過剰に設定すると、処理時間Z11が増大していないときに余白時間Y11が余分になり、車載制御装置1の効率が悪くなる。一方で、一時的な処理時間Z11の増大を考慮せずにVM21の割当時間X11を設定すると、処理時間Z11が増大する際にVM21が処理不良となり、車載制御装置1の効率が悪くなる。
【0108】
そこで、本実施形態では、割当時間X11の過剰な設定はせずに、初めは出力が不安定になっていない正常状態の外部装置30と通信するVM21に適した割当時間X11を設定する。そして、管理部12はVM21の処理時間Z11を常時収集し、処理時間Z11に応じてVM21の割当時間を延長又は短縮する。例えば、管理部12は、処理時間Z11の増大を検出した場合にVM21の割当時間X11をX41に延長し、その後に処理時間Z11の減少を検出した場合にVM21の割当時間X41をX51に短縮する。また、管理部12は、VM21の割当時間の延長又は短縮に伴ってサイクルの総時間が変化しないように、次のサイクルに繰り越すことができる処理を実行するVM23の割当時間を短縮又は延長する。
【0109】
すなわち、管理部12は、外部装置30が外乱の影響をほとんど受けずに正常に動作する間(すなわち、外部装置30の出力が比較的安定している間)、VM21の割当時間X11を比較的短くすることで、割当時間X11に占める余白時間Y11の割合を比較的小さく抑え、車載制御装置1の機能を効率的に発揮させる。ここで、割当時間X11は、通常時の処理時間Z11よりも長く、外乱により外部装置30の出力が不安定となった場合の処理時間Z11よりも短い。
【0110】
そして、管理部12は、外乱により外部装置30の出力が不安定となる期間など、処理時間Z11が一時的に増大する間に限って、VM21の割当時間を延長することで、VM21における処理不良を抑制する。また、管理部12は、処理時間Z11が減少する場合にはVM21の割当時間を短縮することで、VM21の余白時間を短くして車載制御装置1の効率化を図る。このようにVM21の処理時間Z11に応じて機動的にVM21の割当時間を更新することで、車載制御装置1をより長期にわたって効率的に機能させることができる。
【0111】
以下、第2実施形態の管理部12による制御方法を詳しく説明する。
【0112】
[2.2 制御方法]
図6は、第2実施形態に係る制御方法を例示するフローチャートである。
図6は、管理部12が実行する各種の制御を示している。これらの制御は、管理部12が記憶部15からコンピュータプログラム15aを読み取って各種の演算及び処理を実行することで実現される。
図6に示す各ステップは、適宜順番が前後してもよい。
【0113】
図7及び
図8は、第2実施形態に係る割当時間の更新を説明する図である。
図7では、(a)から順にサイクルT0,T1,T2における様子を示している。
図8では、(a)から順にサイクルT2,T3,T4における様子を示している。サイクルT0~T4は、この順に連続するサイクルであり、例えばサイクルT1はサイクルT0の次のサイクルであり、サイクルT2はサイクルT1の次のサイクルである。
【0114】
本例において、外部装置30の出力は、サイクルT1からサイクルT2の間、一時的に不安定となり、サイクルT3において安定に戻る。サイクルT0,T4において、外部装置30の出力は安定している。このため、外部装置30と通信するVM21の処理時間Z11は、サイクルT1,T2において増大しており、その他のサイクルT0,T3,T4では通常の処理時間Z11となっている。
【0115】
管理部12は、
図6に示す制御方法を、例えばサイクルT0~T4の最後に、都度実行する。そして、管理部12は、例えばサイクルT1以前の実行内容等に基づいて、サイクルT1以降に実行されるサイクル(例えば、サイクルT2)における各種の割当時間を更新する。
【0116】
初めに、管理部12は、変数iの値を「1」として(ステップST20)、変数iが車載制御装置1が構成するVM13の個数N以下か否かを判定する(ステップST21)。
図1の例では、VM13は3個(N=3)であるため、1回目のステップST20はYESのルートに進む。
【0117】
次に、管理部12は、i台目のVM13が更新対象であるか否かを判定する(ステップST22)。1回目のステップST22において、管理部12は、1台目のVM13であるVM21が更新対象か否かを判定する。本例において、外部装置30と通信をし、かつリアルタイム処理を行うVM21が更新対象であり、VM22,23は更新対象でない。このため、1回目のステップST22において、管理部12はYESのルートに処理を進める。
【0118】
続いて、管理部12は、i台目のVM13の現在の割当時間を取得する(ステップST23)。例えば、管理部12は記憶部15から現在VM21に設定されている割当時間X11を読み出す。
【0119】
その後、管理部12は、i台目のVM13の処理時間を取得する(ステップST24)。例えば、管理部12は、サイクルT0におけるVM21の処理時間Z11を取得する。より具体的には、管理部12は、サイクルT0において、VM21の処理開始時刻A1と、VM21の処理終了時刻A2とを取得する。そして、時刻A2から時刻A1を減算して、処理時間Z11を取得する。
【0120】
続いて、管理部12は、ステップST23,24において取得した割当時間及び処理時間に基づいて、i台目のVM13の余白時間を算出し、算出した余白時間が第1所定値Th1を下回るか否かを判定する(ステップST25)。例えば、管理部12は、割当時間X11から処理時間Z11を減算して、サイクルT0におけるVM21の余白時間Y11を算出する(Y11=X11-Z11)。そして、管理部12は、算出した余白時間Y11が第1所定値Th1を下回るか否かを判定する(Y11<Th1)。
【0121】
第1所定値Th1は、例えば初期値として設定されるVM21の割当時間X11から、VM21の通常の処理時間Z11を減算することで得られる余白時間Y11(例えば、
図7(a)の余白時間Y11)よりも小さい値である。第1所定値Th1は、例えば
図7(a)の余白時間Y11の3分の1以上3分の2以下の範囲内の値であり、例えば余白時間Y11の半分の値である。通常の処理時間Z11は、外部装置30が外乱の影響をほとんど受けずに正常に動作する場合のVM21の処理時間Z11であり、例えば
図7(a)の処理時間Z11である。
【0122】
このため、ステップST25において、管理部12は、i台目のVM13の余白時間が通常時よりもある程度以上小さくなっているか否かを判定する。言い換えると、管理部12は、i台目のVM13の処理時間が増大して、当該VM13に設定された割当時間を処理時間が上回るおそれがあることを判定する。管理部12は、余白時間が第1所定値Th1を下回ると判定すると(ステップST25のYES)、i台目のVM13の割当時間を延長する(ステップST26)。
【0123】
サイクルT0におけるVM21の余白時間Y11は第1所定値Th1以上であるため、1回目のステップST25において管理部12はNOのルートに進む。この場合、管理部12は、算出した余白時間が第2所定値Th2を超えるか否かを判定する(ステップST27)。第2所定値Th2は、例えば初期値として設定されるVM21の割当時間X11から、VM21の通常の処理時間Z11を減算することで得られる余白時間Y11(例えば、
図7(a)の余白時間Y11)よりも大きい値である。すなわち、第2所定値Th2は、第1所定値Th1よりも大きい値である。第2所定値Th2は、例えば、例えば
図7(a)の余白時間Y11の3分の4以上3分の8以下の範囲内の値であり、例えば余白時間Y11の2倍の値である。
【0124】
このため、ステップST27において、管理部12は、i台目のVM13の余白時間が通常時よりもある程度以上大きくなっているか否かを判定する。言い換えると、管理部12は、i台目のVM13の処理時間が一旦増加した後に減少して、当該VM13に設定された延長後の割当時間よりも処理時間が過少となることで車載制御装置1の制御に無駄が生じるおそれがあることを判定する。管理部12は、余白時間が第2所定値Th2を超えると判定すると(ステップST27のYES)、i台目のVM13の割当時間を短縮する(ステップST28)。
【0125】
サイクルT0におけるVM21の余白時間Y11は第2所定値Th2以下であるため(Y11≦Th2)、1回目のステップST27において管理部12はNOのルートに進む。その後、管理部12は変数iに「1」を加算する(ステップST29)。これにより変数iは「2」となる。
【0126】
ステップST29の後、管理部12はステップST21に戻る。変数i(=2)は、依然としてVM13の個数N(=3)以下であるため、2回目のステップST21もYESのルートに進む。次に、管理部12は、2回目のステップST22を実行する。2台目のVM13であるVM22は外部装置30と通信しないため更新対象ではない。このため、2回目のステップST22において、管理部12はNOのルートに処理を進めて、ステップST23~ST28をスキップする。続いて、管理部12は変数iに「1」を加算して(ステップST29)、変数iは「3」となる。
【0127】
2回目のステップST29の後、管理部12は3回目のステップST21を実行し、変数i(=3)は、VM13の個数N(=3)以下であるため、YESのルートに進む。次に、管理部12は、3回目のステップST22を実行し、VM23は更新対象でないためNOのルートに進み、管理部12は変数iに「1」を加算して、変数iを「4」とする(ステップST29)。
【0128】
3回目のステップST29の後、管理部12は4回目のステップST21を実行する。変数i(=4)は、VM13の個数N(=3)よりも大きいため、3回目のステップST21はNOのルートに進み、サイクルT0における管理部12の一連の制御が終了する。この一連の制御において、VM21は通常の処理時間Z11にて処理を行うため、割当時間X11等の更新は実行されない。
【0129】
続いて、管理部12は第1サイクルT1の最後に、
図6に示す制御方法を実行する。初めに、管理部12は、サイクルT0の際と同様に、ステップST20~ST24を実行する。
【0130】
続いて、管理部12は、ステップST23,24において取得した割当時間X11及び処理時間Z11に基づいて、VM21の余白時間Y11を算出し、算出した余白時間Y11が第1所定値Th1を下回るか否かを判定する(ステップST25)。
【0131】
図7(b)に示すように、第1サイクルT1において、VM21の処理時間Z11は増大しており、その分だけVM21の余白時間Y11は減少している。そして、第1サイクルT1におけるVM21の余白時間Y11は第1所定値Th1を下回っているため、1回目のステップST25において管理部12はYESのルートに進む。
【0132】
この場合、管理部12は、VM21の割当時間X11を延長する(ステップST26)。例えば、管理部12は、VM21の割当時間を「X11」よりも長い「X41」に変更する。更新後の割当時間X41は、例えば記憶部15に予め定められたパラメータとして格納されていてもよいし、現在の割当時間X11又は処理時間Z11に基づいて算出される値でもよい。
【0133】
例えば、管理部12は、現在の割当時間X11に所定の値(例えば、第1所定値Th1)を加算した値を更新後の割当時間X41としてもよい(X41=X11+Th1)。また、管理部12は、現在の処理時間Z11に所定の値(例えば、第2所定値Th2)を加算した値を更新後の割当時間X41としてもよい(X41=Z11+Th2)。
【0134】
また、管理部12は、ステップST26において、割当時間X11の延長分だけ、リアルタイム処理を実行しないVM13(本例ではVM23)の割当時間を短縮する。例えば、管理部12は、VM23の割当時間X13を、X13よりも短いX43に変更する。そして、VM21における割当時間の増加分(X41-X11)は、VM23における割当時間の減少分(X13-X43)と等しい。これにより、1個のサイクルに掛かる時間を変更することなく、VM21の割当時間を調整することができる。
【0135】
管理部12は、割当時間X11を延長した後、変数iに「1」を加算して変数iを「2」とする(ステップST29)。ステップST29の後、管理部12はステップST21に戻る。VM22,23はいずれも更新対象ではないため、サイクルT0における処理と同様に、ステップST21,ST22,ST29を2回ずつ実行し、3回目のステップST21においてNOのルートに進むことで、第1サイクルT1における管理部12の一連の制御が終了する。
【0136】
管理部12によるステップST25,ST26の一連の更新制御を、適宜「第1変更制御」とも称する。第1変更制御において、VM21には処理時間Z11の増大と余白時間Y11の減少が生じるため、管理部12はVM21の割当時間X11を延長する制御を実行する。
【0137】
第1変更制御により、第1サイクルT1に続く第2サイクルT2において、VM21,22,23は、管理部12によって
図7(c)に示す割当時間ごとに物理リソース11が割り当てられる。VM21の割当時間はX41に延長されているため、処理時間Z11が増大していても、第2サイクルT2における余白時間Y41(=X41-Z11)は第1所定値Th1以上の値となっている。このように、VM21の処理時間の増大に伴って、管理部12がVM21の割当時間を延長することで、余白時間を確保し、VM21における処理不良を抑制することができる。
【0138】
特に、管理部12は余白時間Y11が第1所定値Th1を下回ることをトリガーに、割当時間X11を延長する。このため、VM21の処理時間Z11が実際に割当時間X11を上回ることを抑制しつつ、割当時間X11を延長することができるため、VM21における処理不良をより確実に抑制することができる。この結果、車載制御装置1の機能をより効率的に発揮させることができる。
【0139】
次に、
図6及び
図8を参照して、延長した割当時間X41を短縮する制御について説明する。
図8(a)では、以下に説明するサイクルT3等と対比するために、
図7(c)のサイクルT2を再掲している。サイクルT3において、VM21の処理時間Z11は減少する。このため、管理部12は、処理時間Z11の減少に応じて、VM21の割当時間を短縮することで、余白時間の余剰を削減する。
【0140】
管理部12は、サイクルT3の最後に、
図6に示す制御方法を実行する。初めに、管理部12は、サイクルT0の際と同様に、ステップST20~ST24を実行する。
【0141】
続いて、管理部12は、ステップST23,24において取得したVM21の割当時間X41及び処理時間Z11に基づいて、VM21の余白時間Y41を算出し、算出した余白時間Y41が第1所定値Th1を下回るか否かを判定する(ステップST25)。
図8(b)に示すように、サイクルT3において、VM21の処理時間Z11は減少しており、その分だけVM21の余白時間Y41は増大している。そして、サイクルT3におけるVM21の余白時間Y41は第1所定値Th1以上であるため、1回目のステップST25において管理部12はNOのルートに進む。
【0142】
次に、管理部12は、余白時間Y41が第2所定値Th2を超えるか否かを判定する(ステップST27)。本例の場合、余白時間Y41は第2所定値Th2を超えるため(Y41>Th2)、管理部12はステップST27のYESのルートに進み、VM21の割当時間X41を短縮する(ステップST28)。
【0143】
例えば、管理部12は、VM21の割当時間を「X41」よりも短い「X51」に変更する。更新後の割当時間X51は、例えば記憶部15に予め定められたパラメータとして格納されていてもよいし、現在の割当時間X41又は処理時間Z11に基づいて算出される値でもよい。
【0144】
例えば、管理部12は、現在の割当時間X41から所定の値(例えば、第1所定値Th1)を減算した値を更新後の割当時間X51としてもよい(X51=X41-Th1)。また、管理部12は、VM21の割当時間を、延長前の割当時間X11に戻してもよい(X51=X11)。また、管理部12は、現在の処理時間Z11に所定の値(例えば、第2所定値Th2)を加算した値を更新後の割当時間X51としてもよい(X51=Z11+Th2)。
【0145】
また、管理部12は、ステップST28において、割当時間X41の短縮分だけ、リアルタイム処理を実行しないVM13(本例ではVM23)の割当時間を延長する。例えば、管理部12は、VM23の割当時間X43を、X43よりも長いX53に変更する。そして、VM21における割当時間の減少分(X41-X51)は、VM23における割当時間の増加分(X53-X43)と等しい。これにより、1個のサイクルに掛かる時間を変更することなく、VM21の割当時間を調整することができる。
【0146】
管理部12は、割当時間X41を短縮した後、変数iに「1」を加算して変数iを「2」とする(ステップST29)。ステップST29の後、管理部12はステップST21に戻る。VM22,23はいずれも更新対象ではないため、サイクルT0における処理と同様に、ステップST21,ST22,ST29を2回ずつ実行し、3回目のステップST21においてNOのルートに進むことで、サイクルT3における管理部12の一連の制御が終了する。
【0147】
管理部12によるステップST27,ST28の一連の更新制御を、適宜「第2変更制御」とも称する。第2変更制御により、サイクルT3に続くサイクルT4において、VM21,22,23は、管理部12によって
図8(c)に示す割当時間ごとに物理リソース11が割り当てられる。VM21の割当時間はX51に短縮されているため、処理時間Z11が減少していても、サイクルT4における余白時間Y51(=X51-Z11)は第2所定値Th2以下の値となっている。このように、VM21の処理時間の減少に伴って、管理部12がVM21の割当時間を短縮することで、過剰な余白時間となることを抑制し、車載制御装置1の機能をより効率的に発揮させることができる。
【0148】
[3.変形例]
以下、実施形態の変形例について説明する。変形例において、実施形態と同じ構成については同じ符号を付して説明を省略する。
【0149】
[3.1 第1実施形態の変形例]
上記の第1実施形態において、管理部12は、予め設定されている更新テーブルに基づいてVM21の割当時間を延長する。しかしながら、更新テーブルが設定されていなくてもよく、例えば管理部12は、所定条件が満たされた場合に、管理部12はVM21の割当時間X11に、X11の所定割合(例えば、20%)分だけ加算することで得られる割当時間X21(すなわち、X21はX11の1.2倍)に変更してもよい。この場合、例えば、管理部12は、所定条件が満たされるごとに割当時間を1.2倍ずつ延長することになるため、更新テーブルが不要となる。
【0150】
上記の第1実施形態において、VM21は1台のみ設けられている。しかしながら、管理部12が割当時間を延長するVM21は複数台であってもよい。例えば、管理部12は、2台のVM21の割当時間X11を、それぞれ割当時間X21に延長してもよい。この場合、管理部12は、VM23の割当時間X13を、複数のVM21における割当時間の延長分の合計時間だけ短縮する。例えば、2台のVM21における割当時間が各(X21-X11)時間だけ延長された場合、管理部12は、その合計時間だけVM23の割当時間を短縮する(X23=X13-2・(X21-X11))。
【0151】
上記の第1実施形態において、管理部12は、予め設定されている更新テーブルに基づいてVM23の割当時間を短縮する。しかしながら、管理部12は、VM21の割当時間の延長分を算出して、その延長分だけVM23の割当時間を短縮するように構成してもよい。
【0152】
[3.2 第2実施形態の変形例]
[3.2.1 第1実施形態と第2実施形態の組み合わせ]
上記の第1実施形態と第2実施形態を組み合わせてもよい。例えば、管理部12は、はじめに
図3に示す第3変更制御を実行した後に、
図6に示す第1変更制御を実行してもよい。このように構成することで、第3変更制御により外部装置30の経年劣化による処理時間Z11の増大を加味した割当時間(例えばX21)に延長した状態で、さらに外部装置30の外乱等に起因する一時的な処理時間Z11の増大を加味して割当時間を追加的に延長(例えば、X21+Th1)することができる。これにより、より現状に則した割当時間を設定することができるため、車載制御装置1の機能をより効率的に発揮させることができる。
【0153】
[3.2.2 通信リトライ回数に基づく制御]
上記の第2実施形態の第1変更制御は、
図6のステップST24にて説明するように、各サイクルの最後に、都度、VM21の処理時間Z11を取得する必要がある。ここで、前述のとおり、外部装置30の出力が外乱等に起因して不安定になることで、VM21から外部装置30への通信をリトライする回数が増えることが、処理時間Z11が増大する一因である。
【0154】
そこで、管理部12は、ステップST24を実行する前に、当該サイクルにおけるVM21から外部装置30への通信リトライ回数をカウントしてもよい。この場合、通信リトライ回数が前回のサイクルにおける通信リトライ回数よりも所定値以上増加している場合に限ってステップST24を実行し、通信リトライ回数が前回のサイクルにおける通信リトライ回数よりも所定値以上増加していない場合にはステップST24からステップST28までをすべてスキップしてステップST29に進んでもよい。
【0155】
すなわち、管理部12は、VM21の外部装置30への通信リトライ回数が増加した場合に限って、第1変更制御(ステップST25,ST26)を実行してもよい。このように構成することで、管理部12は、通信リトライ回数の増加という処理時間Z11の増大が見込まれる場合に限って処理時間Z11を取得し、その他の場合には処理時間Z11を取得しないため、管理部12の制御負荷を削減することができる。
【0156】
また、前述のとおり、外乱等の影響がなくなり、外部装置30の出力が安定に戻ることで、VM21から外部装置30への通信をリトライする回数が減る(通常時に戻る)ことが、処理時間Z11が減少する一因である。
【0157】
そこで、管理部12は、ステップST24を実行する前に、当該サイクルにおけるVM21から外部装置30への通信リトライ回数をカウントする場合に、さらに通信リトライ回数が前回のサイクルにおける通信リトライ回数よりも所定値以上減少している場合に限ってステップST24を実行し、通信リトライ回数が前回のサイクルにおける通信リトライ回数よりも所定値以上減少していない場合にはステップST24からステップST28までをすべてスキップしてステップST29に進んでもよい。
【0158】
すなわち、管理部12は、VM21の外部装置30への通信リトライ回数が減少した場合に限って、第2変更制御(ステップST27,ST28)を実行してもよい。このように構成することで、管理部12は、通信リトライ回数が所定範囲を超えて増加又は減少するという場合に限って処理時間Z11を取得し、その他の場合には処理時間Z11を取得しないため、管理部12の制御負荷を削減することができる。
【0159】
[3.2.3 余白時間の変化率]
図9は、第2実施形態の変形例に係る余白時間Y11を説明する図である。
上記の第2実施形態の管理部12は、余白時間Y11が第1所定値Th1を下回る場合にVM21の割当時間を延長し(ステップST26)、余白時間Y11が第2所定値Th2を超える場合にVM21の割当時間を短縮する(ステップST28)。しかしながら、管理部12は、余白時間Y11の変化率に基づいてVM21の割当時間を延長又は短縮してもよい。
【0160】
例えば、管理部12は、ステップST25において、複数個(例えば3個)の連続するサイクル(例えば、
図9に示すように、サイクルT11,T12,T13)における余白時間Y11の最小二乗法による近似直線L1を算出する。そして、管理部12は、近似直線L1の傾きを、余白時間Y11の変化率α1として取得する。管理部12は、余白時間Y11の変化率α1が第1所定値Th11(ここで、Th11<0)を下回る場合に、VM21の割当時間を延長する(ステップST26)。
【0161】
通常時であれば、複数個の連続するサイクルT11,T12,T13において余白時間Y11の変化はほとんどないため、近似直線L1の傾き(変化率α1)は「0」又はその近傍の値となる。一方で、処理時間Z11が増大し、余白時間Y11が減少している場合、近似直線L1の傾きは0よりも小さくなる。このため、管理部12は、余白時間Y11の変化率α1が負の数である第1所定値Th11を下回る場合に、VM21の割当時間を延長してもよい。
【0162】
同様に、管理部12は、ステップST27において、余白時間Y11の変化率α1が第2所定値Th12(ここで、Th12>0)を超える場合に、VM21の割当時間を短縮する(ステップST28)。処理時間Z11が減少し、余白時間Y11が増大している場合、近似直線L1の傾きは0よりも大きくなる。このため、管理部12は、余白時間Y11の変化率α1が正の数である第2所定値Th12を超える場合に、VM21の割当時間を短縮してもよい。
【0163】
[3.2.4 余白時間の予測]
上記の第2実施形態の管理部12は、例えばサイクルT1における実際の余白時間Y11に基づいて、VM21の割当時間を延長又は短縮する。しかしながら、管理部12は、複数個の連続するサイクルにおける複数の余白時間Y11に基づいて、次のサイクルにおける余白時間Y11を予測し、その予測値に基づいてVM21の割当時間を延長又は短縮してもよい。
【0164】
例えば、管理部12は、ステップST25において、上記と同様に近似直線L1を算出する。そして、
図9に示すように、近似直線L1をサイクルT13以降に延長した場合に、サイクルT13の次のサイクル14(又は、サイクルT13の2つ先のサイクルT15)における近似直線L1の値PV1が第1所定値Th21を下回る場合に、VM21の割当時間を延長する(ステップST26)。ここで、第1所定値Th21は、例えば上記の第1所定値Th1と同程度の値である。
【0165】
値PV1は近似直線L1を延長して得られる予測値である。このように構成することで、実際の余白時間Y11がある程度小さくなる前に、管理部12は、先手を打って、VM21の割当時間を延長することができる。このため、VM21における処理不良をより確実に抑制することができる。
【0166】
同様に、管理部12は、ステップST27において、近似直線L1をサイクルT13以降に延長した場合に、サイクルT13の次のサイクル14(又は、サイクルT15)における近似直線L1の値PV1が第2所定値Th22を超える場合に、VM21の割当時間を短縮する(ステップST28)。ここで、第2所定値Th22は、例えば上記の第2所定値Th2と同程度の値である。
【0167】
このように構成することで、実際の余白時間Y41がある程度大きくなる前に、管理部12は、先手を打って、VM21の割当時間を短縮することができる。このため、車載制御装置1の機能をより効率的に発揮させることができる。
【0168】
なお、上記では近似直線L1に基づいて余白時間の予測値PV1を取得するが、管理部12はその他の手法によって余白時間の予測値PV1を取得してもよい。例えば、管理部12は、機械学習又はディープラーニングにより取得される学習モデルを用いて、複数の連続するサイクルにおける複数の余白時間に基づいて、その次のサイクルにおける余白時間を予測してもよい。
【0169】
[4.付記]
以上の説明は、以下に付記する特徴を含む。
【0170】
[4.1 付記1]
車両に搭載される車載制御装置であって、
制御部、記憶部及び通信部を含む物理リソースと、
割当時間ごとに前記物理リソースを割り当てて複数の仮想マシンを生成する管理部と、
を備え、
前記複数の仮想マシンは、
前記車載制御装置の外部に設けられている外部装置と通信し、かつ次のサイクルに繰り越すことができない処理を実行する第1仮想マシンと、
次のサイクルに繰り越すことができる処理を実行する第2仮想マシンと、を含み、
前記管理部は、前記外部装置の劣化を示す所定条件を満たす場合に、前記第1仮想マシンの割当時間を延長し、前記第2仮想マシンの割当時間を短縮する第3変更制御を実行する、
車載制御装置。
【0171】
[4.2 付記2]
車両に搭載される車載制御装置を制御する制御方法であって、
制御部、記憶部及び通信部を含む物理リソースを割当時間ごとに割り当てて、複数の仮想マシンを生成する生成ステップと、
前記車載制御装置の外部に設けられている外部装置の劣化を示す所定条件を満たす場合に、複数の前記仮想マシンのうち第1仮想マシンの割当時間を延長し、複数の前記仮想マシンのうち第2仮想マシンの割当時間を短縮する制御ステップと、
を備え、
前記第1仮想マシンは、前記外部装置と通信し、かつ次のサイクルに繰り越すことができない処理を実行する仮想マシンであり、
前記第2仮想マシンは、次のサイクルに繰り越すことができる処理を実行する仮想マシンである、制御方法。
【0172】
[4.3 付記3]
車両に搭載される車載制御装置を制御するためのコンピュータプログラムであって、
前記コンピュータプログラムは、コンピュータに、
制御部、記憶部及び通信部を含む物理リソースを割当時間ごとに割り当てて複数の仮想マシンを生成する生成ステップと、
前記車載制御装置の外部に設けられている外部装置の劣化を示す所定条件を満たす場合に、複数の前記仮想マシンのうち第1仮想マシンの割当時間を延長し、複数の前記仮想マシンのうち第2仮想マシンの割当時間を短縮する制御ステップと、
を実行させ、
前記第1仮想マシンは、前記外部装置と通信し、かつ次のサイクルに繰り越すことができない処理を実行する仮想マシンであり、
前記第2仮想マシンは、次のサイクルに繰り越すことができる処理を実行する仮想マシンである、コンピュータプログラム。
【0173】
[5.補記]
なお、上記の実施形態については、その少なくとも一部を、相互に任意に組み合わせてもよい。また、今回開示された実施形態はすべての点で例示であって制限的なものではないと考えられるべきである。本開示の範囲は特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内での全ての変更が含まれることが意図される。
【符号の説明】
【0174】
1 車載制御装置
11 物理リソース
12 管理部
13 仮想マシン(VM)
13a ゲストOS
13b アプリケーション
14 制御部
15 記憶部
15a コンピュータプログラム
15b 仮想化オペレーティングシステム(仮想化OS)
15c ゲストオペレーティングシステム(ゲストOS)
16 通信部
17 読取部
18 記録媒体
21 VM
22 VM
23 VM
30 外部装置
31 ECU
31a 通信線
32 センサ
32a 通信線
33 通信装置
33a 通信線
4 車外装置
V1 車両
T1 サイクル(第1サイクル)
T2 サイクル(第2サイクル)
T3 サイクル
T4 サイクル
T11 サイクル
T12 サイクル
T13 サイクル
T14 サイクル
X11 割当時間
X12 割当時間
X13 割当時間
X21 割当時間
X23 割当時間
X31 割当時間
X33 割当時間
X41 割当時間
X43 割当時間
X51 割当時間
X53 割当時間
Z11 処理時間
Z12 処理時間
Y11 余白時間
Y12 余白時間
Y41 余白時間
Y51 余白時間
P1 基準時点
D1 所定時間
D2 所定時間
D3 所定時間
Th1 第1所定値
Th11 第1所定値
Th21 第1所定値
Th2 第2所定値
Th12 第2所定値
Th22 第2所定値
A1 処理開始時刻
A2 処理終了時刻
L1 近似直線
α1 変化率
PV1 予測値