IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通テン株式会社の特許一覧

<>
  • 特開-仮想化制御装置および仮想化制御方法 図1
  • 特開-仮想化制御装置および仮想化制御方法 図2
  • 特開-仮想化制御装置および仮想化制御方法 図3
  • 特開-仮想化制御装置および仮想化制御方法 図4
  • 特開-仮想化制御装置および仮想化制御方法 図5
  • 特開-仮想化制御装置および仮想化制御方法 図6
  • 特開-仮想化制御装置および仮想化制御方法 図7
  • 特開-仮想化制御装置および仮想化制御方法 図8
  • 特開-仮想化制御装置および仮想化制御方法 図9
  • 特開-仮想化制御装置および仮想化制御方法 図10
  • 特開-仮想化制御装置および仮想化制御方法 図11
  • 特開-仮想化制御装置および仮想化制御方法 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024062067
(43)【公開日】2024-05-09
(54)【発明の名称】仮想化制御装置および仮想化制御方法
(51)【国際特許分類】
   G06F 9/48 20060101AFI20240430BHJP
   G06F 9/455 20180101ALI20240430BHJP
【FI】
G06F9/48 300D
G06F9/455 150
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022169823
(22)【出願日】2022-10-24
(71)【出願人】
【識別番号】000237592
【氏名又は名称】株式会社デンソーテン
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】奥原 誠
(72)【発明者】
【氏名】若木 雄一
(57)【要約】
【課題】時分割で実行するVM処理の周期的な処理に大きな変更を行うことなく、割り込み処理の応答性を向上させることができる仮想化制御装置および仮想化制御方法を提供する。
【解決手段】実施形態の一態様に係る仮想化制御装置は、複数の仮想マシンを時分割で切り替えつつ動作させるコントローラを備える。コントローラは、時分割の処理周期において、複数の仮想マシンのそれぞれに割り当てられた割当処理時間とは別に、複数の仮想マシンの処理に共通する処理を実行する共通処理時間と、アイドル処理時間の少なくとも1つを含む他処理時間を設ける。コントローラは、他処理時間において、仮想マシンに対する割り込み処理を許可する。
【選択図】図4
【特許請求の範囲】
【請求項1】
複数の仮想マシンを時分割で切り替えつつ動作させるコントローラを備えた仮想化制御装置であって、
前記コントローラは、
時分割の処理周期において、複数の前記仮想マシンのそれぞれに割り当てられた割当処理時間とは別に、複数の前記仮想マシンの処理に共通する処理を実行する共通処理時間と、アイドル処理時間の少なくとも1つを含む他処理時間を設け、
前記他処理時間において、前記仮想マシンに対する割り込み処理を許可する、
仮想化制御装置。
【請求項2】
複数の前記仮想マシンがそれぞれ実行する処理には、前記処理の内容に応じて異なる機能安全レベルが設定される、
請求項1に記載の仮想化制御装置。
【請求項3】
前記共通処理時間における共通処理には、複数の前記仮想マシンが実行する処理に設定された機能安全レベル以上の機能安全レベルが設定される、
請求項2に記載の仮想化制御装置。
【請求項4】
前記コントローラは、
前記時分割の処理周期において、複数の前記共通処理時間を設定する、
請求項1に記載の仮想化制御装置。
【請求項5】
前記コントローラは、
前記他処理時間内に前記割り込み処理が完了しない場合、前記割り込み処理の実行を禁止する、
請求項1に記載の仮想化制御装置。
【請求項6】
複数の仮想マシンを時分割で切り替えつつ動作させるコントローラを備えた仮想化制御装置であって、
前記コントローラは、
時分割の処理周期に含まれる、複数の前記仮想マシンのそれぞれに割り当てられた割当処理時間内に、アイドル処理時間を設け、
前記アイドル処理時間において、前記アイドル処理時間を含む前記割当処理時間が割り当てられた前記仮想マシンとは異なる他の仮想マシンに対する割り込み処理を許可する、
仮想化制御装置。
【請求項7】
前記コントローラは、
複数の前記仮想マシンのそれぞれに割り当てられた前記割当処理時間において、前記割当処理時間が割り当てられた前記仮想マシンに対する前記割り込み処理のみを許可する、
請求項1~6のいずれか一つに記載の仮想化制御装置。
【請求項8】
前記割り込み処理には、優先度が設定され、
前記コントローラは、
複数の前記割り込み処理がある場合、前記優先度に基づいて許可する前記割り込み処理を選択する、
請求項1~6のいずれか一つに記載の仮想化制御装置。
【請求項9】
複数の仮想マシンを時分割で切り替えつつ動作させるコントローラを備えた仮想化制御装置を用いた仮想化制御方法であって、
時分割の処理周期において、複数の前記仮想マシンのそれぞれに割り当てられた割当処理時間とは別に、複数の前記仮想マシンの処理に共通する処理を実行する共通処理時間と、アイドル処理時間の少なくとも1つを含む他処理時間を設け、
前記他処理時間において、前記仮想マシンに対する割り込み処理を許可する、
仮想化制御方法。
【請求項10】
複数の仮想マシンを時分割で切り替えつつ動作させるコントローラを備えた仮想化制御装置を用いた仮想化制御方法であって、
時分割の処理周期に含まれる、複数の前記仮想マシンのそれぞれに割り当てられた割当処理時間内に、アイドル処理時間を設け、
前記アイドル処理時間において、前記アイドル処理時間を含む前記割当処理時間が割り当てられた前記仮想マシンとは異なる他の仮想マシンに対する割り込み処理を許可する、
仮想化制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、仮想化制御装置および仮想化制御方法に関する。
【背景技術】
【0002】
従来、例えば車両に搭載され、エンジンやトランスミッションといった車両の各種システムをそれぞれ電子制御するECU(Electronic Control Unit)が知られている。かかるECUでは、内蔵されたマイコンが上述した各種システムの制御プログラムを実行することにより、割り当てられた各種機能を実現する。
【0003】
また、近年、ECUの数を減らし、単一のECUで複数の電子制御を実現させるECU統合の検討が進んでいる。ECU統合の方法の一つとして仮想化技術の利用が挙げられる。仮想化技術としては、1コアのマイコン上で複数の仮想マシン(VM:Virtual Machine)を時分割で切り替えつつ動作させる仮想化制御などがある(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】再表2009/157178号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、上記した仮想化制御においては、VMの処理中に、他のVMに対する割り込み処理が発生することがある。しかしながら、仮想化制御では、セキュリティの観点から一般的に、自VMに割り当てられた割当処理時間においては、自VMに対する割り込み処理しか許可しない。そのため、他VMに対する割り込み処理は、他VMに割り当てられた割当処理時間が到来するまで実行されず、結果として割り込み処理の応答性の低下を招くおそれがあった。または、優先度が高い割り込み処理が発生した場合に、実行中のVM処理から割込み処理が発生したVM処理に、実行するVM処理を切り替えるといった、時分割で切り替えながら行う各VM処理の周期的な処理に大きな変更を行う必要があった。
【0006】
本発明は、上記に鑑みてなされたものであって、時分割で実行するVM処理の周期的な処理に大きな変更を行うことなく、割り込み処理の応答性を向上させることができる仮想化制御装置および仮想化制御方法を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記課題を解決し、目的を達成するために、本発明に係る仮想化制御装置は、複数の仮想マシンを時分割で切り替えつつ動作させるコントローラを備える。前記コントローラは、時分割の処理周期において、複数の前記仮想マシンのそれぞれに割り当てられた割当処理時間とは別に、複数の前記仮想マシンの処理に共通する処理を実行する共通処理時間と、アイドル処理時間の少なくとも1つを含む他処理時間を設ける。前記コントローラは、前記他処理時間において、前記仮想マシンに対する割り込み処理を許可する。
【0008】
また、本発明に係る仮想化制御装置は、複数の仮想マシンを時分割で切り替えつつ動作させるコントローラを備える。前記コントローラは、時分割の処理周期に含まれる、複数の前記仮想マシンのそれぞれに割り当てられた割当処理時間内に、アイドル処理時間を設ける。前記コントローラは、前記アイドル処理時間において、前記アイドル処理時間を含む前記割当処理時間が割り当てられた前記仮想マシンとは異なる他の仮想マシンに対する割り込み処理を許可する。
【発明の効果】
【0009】
本発明によれば、時分割で実行するVM処理の周期的な処理に大きな変更を行うことなく、割り込み処理の応答性を向上させることができる。
【図面の簡単な説明】
【0010】
図1図1は、第1の実施形態に係る仮想化制御装置が実行する仮想化制御方法の概要説明図(その1)である。
図2図2は、第1の実施形態に係る仮想化制御装置が実行する仮想化制御方法の概要説明図(その2)である。
図3図3は、第1の実施形態に係る仮想化制御装置が実行する仮想化制御方法の概要説明図(その3)である。
図4図4は、第1の実施形態に係る仮想化制御装置の構成例を示すブロック図である。
図5図5は、割り込み処理情報の一例を示す図である。
図6図6は、割り込み許可部の処理を説明する図である。
図7図7は、第1の実施形態に係る仮想化制御装置が実行する、割り込み処理に関する処理手順を示すフローチャートである。
図8図8は、変形例に係る仮想化制御装置を説明するための図である。
図9図9は、第2の実施形態に係る仮想化制御装置が実行する仮想化制御方法の概要説明図である。
図10図10は、第2の実施形態に係る仮想化制御装置の構成例を示すブロック図である。
図11図11は、アイドルテーブル情報の一例を示す図である。
図12図12は、第2の実施形態に係る仮想化制御装置が実行する、割り込み処理に関する処理手順を示すフローチャートである。
【発明を実施するための形態】
【0011】
以下、添付図面を参照して、本願の開示する仮想化制御装置および仮想化制御方法の実施形態を詳細に説明する。なお、以下に示す実施形態によりこの発明が限定されるものではない。
【0012】
(第1の実施形態)
以下では、第1の実施形態に係る仮想化制御装置が実行する仮想化制御方法の概要について図1図3を用いて説明した後に、かかる制御方法を適用したECU10(「仮想化制御装置」の一例に相当)の構成例について、図4以降を用いて説明することとする。
【0013】
まず、第1の実施形態に係る仮想化制御装置が実行する仮想化制御方法の概要について図1図3を用いて説明する。図1図3は、第1の実施形態に係る仮想化制御装置が実行する仮想化制御方法の概要説明図である。
【0014】
ところで、例えば車両制御などに用いられるECUにおいては、実行する処理の内容(制御内容)に応じて、ISO26262に準拠する機能安全レベル(ASIL:Automotive Safety Integrity Level。安全性要求レベルともいう)が設定される。ここで、例えば互いに異なるASILの制御を統合する場合、最も高いASILに揃える必要があるが、低いASILを高いASILに変更するには、比較的多くの設計変更などが生じ、多大な工数が発生する。
【0015】
そこで、仮想化制御を実行する仮想化制御装置を用いることで、例えば複数のASILの制御を共存させることが可能となる。
【0016】
例えば、ASILに関し、異なるレベルの各制御を1つのECU10に実装する場合、既存技術では、図1の左図に示すように「マルチコア分離」による方法がある。かかる場合、各制御は、物理的に分離されたコアごとに実装され、コア空間やメモリ空間を含む実行空間も制御間で物理的に分離される。
【0017】
一方、ECU統合の観点から、図1の右図に示すように、「仮想化分離」による方法も検討が進められている。かかる場合、1つのコアで複数の仮想マシンVMを動作させる仮想化制御により、1つのコアに異なるレベルのASILの各制御を共存させることができる。
【0018】
「仮想化分離」を用いる場合、前述の実行空間は制御(VM等)間で仮想的に分離される。例えば、図2に示すように、実行空間は、基本的には時分割(例えば数ms周期)による切り替え制御により各制御に割り当てられる。すなわち、実行されるVMを時分割で切り替える制御が行われる。このように時間的な分離を行うことで、制御(VM)間の処理干渉を防止している。
【0019】
具体的に説明すると、図2においては、VMが3つである例を示す。VM#0は、制御Aを実行し、ASIL-Aが設定される。VM#1は、制御Bを実行し、ASIL-Bが設定される。VM#2は、制御Cを実行し、ASIL-Cが設定される。なお、ASILには、A~Dの4段階が設定され、要求される安全性のレベルはASIL-Dが最も高く、ASIL-C、ASIL-B、ASIL-Aの順で低くなる。なお、制御における安全性のレベルがASIL-Aに満たない場合、QM(Quality Management)が設定される。
【0020】
また、図2の例では、VM#0、VM#1、VM#2の順となるように、切り替え制御が行われる。詳しくは、VM#0、VM#1、VM#2にはそれぞれ、自身の制御を実行可能な所定処理時間が予め設定され、かかる所定処理時間が割当処理時間として割り当てられる。
【0021】
例えば、VM#0は、時刻Ta~Tbが割当処理時間として割り当てられ、かかる割当処理時間に制御Aを実行する。VM#1は、VM#0の割当処理時間終了後の時刻Tb~Tcが割当処理時間として割り当てられ、かかる割当処理時間に制御Bを実行する。VM#2は、VM#1の割当処理時間終了後の時刻Tc~Tdが割当処理時間として割り当てられ、かかる割当処理時間に制御Cを実行する。そして、VM#2の割当処理時間が終了すると、再びVM#0、VM#1、VM#2の順で各制御が実行される。
【0022】
なお、図2の例において、VM#0、VM#1、VM#2による制御が一巡する期間がシステム周期の1周期となる(時刻Ta~Td参照)。また、VM#0、VM#1、VM#2による各制御は、メモリ空間を含む実行空間も制御間で物理的に分離されてもよい。すなわち、メモリ領域を複数領域に分け、VM毎にアクセス可能なメモリ領域を設定することで、空間的に分離を行い、制御(VM)間のメモリ干渉を防止するようにしてもよい。
【0023】
ここで、例えばあるVMの処理中に、他のVMに対する割り込み処理が発生することがある。一例としては、VM#1の処理中に、他のVMであるVM#0に対する割り込み処理が発生することがある。このとき、セキュリティの観点から一般的に、VM#1に割り当てられた割当処理時間(時刻Tb~Tc)においては、VM#1に対する割り込み処理しか許可しない。そのため、一般的な仮想化制御にあっては、VM#0に対する割り込み処理は、次回のVM#0の割当処理時間(時刻Td~Te)が到来するまで実行されず、結果として割り込み処理の応答性の低下を招くおそれがあった。
【0024】
また、例えば優先度が高い割り込み処理が発生した場合に、実行中のVM処理から割込み処理が発生したVM処理に、実行するVM処理を切り替えるといった、時分割で切り替えながら行う各VM処理の周期的な処理に大きな変更を行うことが考えられる。しかしながら、割込み処理に対応するために、時分割で実行するVM処理の周期的な処理に大きな変更を加えてしまうと、処理順序が後回しにされる、あるいは割り振られていた処理時間が削減されるおそれがある。そのため、所定時間内に行う必要があった処理を行うことができなくなるといった問題が生じる可能性がある。この問題が生じないようにすることは、車両の走行制御(走る・曲がる・止まる等の制御)等に用いられるリアルタイム制御では特に重要となる。
【0025】
そこで、本実施形態に係る仮想化制御装置にあっては、時分割で実行するVM処理の周期的な処理に大きな変更を行うことなく、割り込み処理の応答性を向上させることができるようにした。
【0026】
具体的には、図3に示すように、本実施形態では、時分割の処理周期において、上記した割当処理時間とは別に「共通処理時間」および「アイドル処理時間」が設けられている。共通処理時間およびアイドル処理時間は、元々設けられていた処理時間である。本実施形態では、これらの処理時間に割り込み処理が実行されることで、共通処理時間およびアイドル処理時間を有効に活用することができる。なお、仮想化制御装置は、割り込み処理を実行可能な時間として、共通処理時間およびアイドル処理時間を新たに設けてもよい。
【0027】
以下では、共通処理時間とアイドル処理時間等の、各VMに割り当てている割当処理時間以外を「他処理時間」と記載する場合がある。なお、図3では、共通処理時間を「VM_COM 共通処理(ASIL-D)」と示し、アイドル処理時間を「VM_I アイドル処理(ASIL-D)」と示している。
【0028】
詳しくは、仮想化制御装置は、時分割の処理周期において、割当処理時間と、共通処理時間と、アイドル処理時間と、ハイパーバイザ(HV(Hypervisor))による処理時間とを設ける。
【0029】
割当処理時間は、上記したように、複数のVM(ここではVM#0、VM#1、VM#2)のそれぞれに割り当てられた処理時間である。
【0030】
共通処理時間は、複数のVMの処理に共通する処理(以下「共通処理」という)を実行する時間である。詳説すると、例えばマイコンのIO(Input/Output)や各種周辺機器などのリソースには限りがある。そのため、複数のVMの処理に共通する処理については、VM#0、VM#1、VM#2とは異なるVM_COMが共通処理時間に実行する。
【0031】
なお、共通処理は、共通処理用のVM(ここではVM_COM)を設ける以外にも、OS(Operating System)やHVといったプラットフォーム的な処理を行う、VMとは異なる階層の処理部が実行するようにしてもよい。
【0032】
共通処理としては、例えばAD入力、CAN通信、シリアル通信、汎用入出力、ウォッチドッグタイマクリア処理、メインリレー制御、SRAM(Static Random Access Memory)書込み/読み込み処理、EEPROM(Electrically Erasable Programmable ROM)書き込み/読み込み処理などである。上記した共通処理の内容は、あくまでも例示であって限定されるものではない。
【0033】
アイドル処理時間は、システム周期における余剰時間である。このアイドル処理時間は、想定外のHV割り込みが発生した場合等、想定外の処理が発生した場合に、1システム周期内に処理すべき処理が1システム周期内に完了するように、調整用に設けられた余剰時間である。よって、アイドル処理時間では、想定外の処理が発生しない場合には、各VM処理が待機状態となる。なお、かかるアイドル処理時間において、VM#0、VM#1、VM#2とは異なるVM_Iが、例えばレジスタの再書き込み(リフレッシュ処理)などを含むアイドル処理を実行するようにしてもよい。
【0034】
なお、アイドル処理時間は、予めアイドル処理用に所定時間が設定される。あるいは、所定の時間(システム周期や割当処理時間等)での処理が行われた結果、結果的に余った時間をアイドル処理時間と表現して設定されてもよい。
【0035】
ハイパーバイザ(HV)は、VMを管理するソフトウェアであり、具体的にはVMの切り替え制御を行う。従って、図3に示す「HV」は、ハイパーバイザによるVMの切り替え制御が実行される時間である。切り替え制御では、実行されるVMの変更に伴うレジスタの退避・復帰が行われる。
【0036】
本実施形態に係る仮想化制御装置は、例えばシステム周期の前半部分(詳しくはVM#0、VM#1、VM#2の割当処理時間より前(最初の部分))に、上記した共通処理時間を設定する。また、仮想化制御装置は、システム周期の後半部分(詳しくはVM#0、VM#1、VM#2の割当処理時間より後(最後の部分))に、上記したアイドル処理時間を設定する。
【0037】
具体的には、VM_COMは、時刻T0~T1が共通処理時間として割り当てられ、かかる共通処理時間に共通処理を実行する。共通処理時間が終了すると、ハイパーバイザによってVMがVM_COMからVM#0に切り替えられる(時刻T1~T2)。VM#0は、時刻T2~T3の割当処理時間に制御Aを実行する。
【0038】
VM#0の割当処理時間が終了すると、ハイパーバイザによってVMがVM#0からVM#1に切り替えられる(時刻T3~T4)。VM#1は、時刻T4~T5の割当処理時間に制御Bを実行する。VM#1の割当処理時間が終了すると、ハイパーバイザによってVMがVM#1からVM#2に切り替えられる(時刻T5~T6)。VM#2は、時刻T6~T7の割当処理時間に制御Cを実行する。
【0039】
VM#2の割当処理時間が終了すると、ハイパーバイザによってVMがVM#2からVM_Iに切り替えられる(時刻T7~T8)。VM_Iは、時刻T8~T9のアイドル処理時間にアイドル処理を実行する。アイドル処理時間が終了すると、ハイパーバイザによってVMがVM_IからVM_COMに切り替えられ(時刻T9~T10)、今回のシステム周期が終了する。なお、今回のシステム周期が終了すると、次回のシステム周期が開始される。
【0040】
本実施形態に係る仮想化制御装置は、上記のように設定された共通処理時間およびアイドル処理時間(すなわち他処理時間)において、VMに対する割り込み処理を許可する。詳しくは、仮想化制御装置は、共通処理時間およびアイドル処理時間を含む他処理時間において、VM#0、VM#1、VM#2を含む全てのVMに対する割り込み処理を許可する。すなわち、共通処理時間およびアイドル処理時間では、VM#0に対する割り込み処理やVM#1に対する割り込み処理、VM#2に対する割り込み処理が実行可能とされる。
【0041】
これにより、本実施形態にあっては、VMに対する割り込み処理の応答性を向上させることができる。具体的には、例えばVM#1が処理を行う割当処理時間(時刻T4~T5)に、他のVMであるVM#0に対する割り込み処理が発生した場合、かかる割り込み処理は、次回のVM#0の割当処理時間の到来を待たずに、設定した他処理時間(ここではアイドル処理時間(時刻T8~T9))で実行されることとなる。このように、本実施形態にあっては、時分割で実行するVM処理の周期的な処理に大きな変更を行うことなく、VM(ここではVM#0)に対する割り込み処理を可能な限り早期に実行でき、よって割り込み処理の応答性を向上させることができる。
【0042】
また、上記したように、複数のVMがそれぞれ実行する処理には、処理の内容に応じて異なるASILが設定される。例えば、VM#0が制御Aで実行する処理にはASIL-Aが設定される。また、VM#1が制御Bで実行する処理にはASIL-Bが設定され、VM#2が制御Cで実行する処理にはASIL-Cが設定される。なお、ASILは、例えばISO26262に準拠して予め設定される。
【0043】
このように、複数のVMに対して異なるASILが設定される場合であっても、上記した共通処理時間やアイドル処理時間を設定することが可能である。そして、かかる共通処理時間やアイドル処理時間において割り込み処理を許可することで、割り込み処理の応答性を向上させることができる。
【0044】
また、共通処理時間における共通処理には、複数のVMが実行する処理に設定されたASIL以上のASILが設定される。具体的に、共通処理には、複数のVMにおけるASIL(ここではASIL-A~C)以上のASIL(ここではASIL-D)が設定される。詳しくは、複数のVMの処理および共通処理を含む各処理の中で、最も高いASIL(ASIL-D)が共通処理に設定される。
【0045】
このように、本実施形態にあっては、共通処理が上記したASILに設定されることで、共通処理においてVMに対する割り込み処理が許可されて実行される場合であっても、複数のVMの各制御間の安全性(セキュリティ)を確保することができる。
【0046】
また、アイドル処理時間におけるアイドル処理には、複数のVMが実行する処理に設定されたASIL以上のASILが設定される。具体的に、アイドル処理には、複数のVMにおけるASIL(ここではASIL-A~C)以上のASIL(ここではASIL-D)が設定される。詳しくは、複数のVMの処理およびアイドル処理を含む各処理の中で、最も高いASIL(ASIL-D)がアイドル処理に設定される。
【0047】
このように、本実施形態にあっては、アイドル処理が上記したASILに設定されることで、アイドル処理においてVMに対する割り込み処理が許可されて実行される場合であっても、複数のVMの各制御間の安全性(セキュリティ)を確保することができる。
【0048】
なお、アイドル処理では、共通処理とは異なり、専用(アイドル処理用)のVM(ここではVM_I)に処理させるのではなく、割込みがあったVMに切り替えを行って割込み処理を行わせるようにしてもよい。
【0049】
なお、上記では、時分割の処理周期において、共通処理時間およびアイドル処理時間が設定される例を示したが、これに限られず、共通処理時間およびアイドル処理時間のいずれか一方の処理時間が設定されるようにしてもよい。すなわち、共通処理時間およびアイドル処理時間の少なくとも1つを含む他処理時間が設けられるようにしてもよく、かかる場合、設けられた他処理時間においてVMに対する割り込み処理が許可されることとなる。
【0050】
以下、上述した第1の実施形態に係る仮想化制御装置(ECU10)の構成例について、さらに具体的に説明する。
【0051】
図4は、第1の実施形態に係るECU10の構成例を示すブロック図である。なお、図4では、本実施形態の特徴を説明するために必要な構成要素のみを機能ブロックで表しており、一般的な構成要素についての記載を省略している。
【0052】
換言すれば、図4に図示される各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。例えば、各機能ブロックの分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することが可能である。
【0053】
また、図4以降の説明では、既に説明済みの構成要素については、説明を簡略するか、省略する場合がある。
【0054】
図4に示すように、ECU10は、タイマ11と、記憶部20と、コントローラ(制御部)30とを備える。ECU10は、CPU仮想化機能を備えたコンピュータである。
【0055】
また、ECU10は、例えば車両制御するECUであり、複数の制御機能が統合されたECUである。制御機能の例としては、車両の基本機能である、走る(走行モータ制御、エンジン制御等)、曲がる(ステアリング制御)、止まる(走行モータ制御、ブレーキ制御等)の制御の他、バッテリ制御や車外との通信制御等がある。これらの各制御が各VMに割り当てられている。
【0056】
なお、図4、および後述する図10では、ECU10の入出力について省略しているが、ECU10には車両制御に用いられる各種センサからの入力や、走行モータや転舵モータ等の各種アクチュエータへの出力、入出力を行う通信装置等が接続されている。
【0057】
タイマ11は、ECU10に搭載されたリアルタイムクロックである。記憶部20は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子等によって実現される。記憶部20は、レジスタ等を含む。
【0058】
また、図4の例では、記憶部20は、時分割情報21と、VM処理プログラム22と、割り込み処理情報23と、共通処理プログラム24と、アイドル処理プログラム25とを記憶する。
【0059】
時分割情報21は、各VMを切り替える切り替え制御を行うための時分割周期が設定された情報である。例えば、時分割情報21には、VM#0、VM#1、VM#2、VM_COMおよびVM_Iに割り当てられた時分割の処理周期等の情報が含まれる。
【0060】
VM処理プログラム22は、VM#0、VM#1、VM#2それぞれに割り当てられた制御を実現するVM処理を実行するためのプログラムである。
【0061】
割り込み処理情報23は、VM#0、VM#1、VM#2など各VMに対する割り込み処理に関する情報である。割込み処理は、例えば、特定のセンサやタイマ等から入力があった場合等、コントローラ30の外部からの入力により、コントローラ30の処理に非同期で発生する処理である。
【0062】
割り込み処理情報23には、割り込み処理ごとの処理内容、優先度や処理時間などの情報が含まれる。ここで、図5を用いて割り込み処理情報23について説明する。図5は、割り込み処理情報23の一例を示す図である。
【0063】
図5に示すように、割り込み処理情報23には、「割り込み処理ID」、「実行VM」、「処理内容」、「優先度」および「処理時間」等の項目が含まれ、各項目のデータは互いに関連付けられている(紐付けられている)。
【0064】
「割り込み処理ID」は、割り込み処理を識別する情報である。「実行VM」は、割り込み処理を実行するVMを示す情報である。「処理内容」は、割り込み処理の処理内容を示す情報である。なお、図5に示す例では、便宜上、「処理内容」を「E01」といったように抽象的な記載とするが、「E01」には具体的な情報が記憶されるものとする。
【0065】
「優先度」は、割り込み処理の優先度を示す情報である。具体的には、例えば複数の割り込み処理が発生した場合、優先度に基づいて選択された割り込み処理が実行される。すなわち、複数の割り込み処理に設定された優先度同士が比較され、優先度が高い割り込み処理が選択されて実行される。かかる優先度は、割り込み処理における重要度や緊急度などに基づいて予め設定される。優先度には、例えば「高」、「中」、「低」など優先度を段階的に示す情報が含まれるが、これに限定されるものではない。「処理時間」は、割り込み処理に要する処理時間を示す情報である。
【0066】
図3に示す例では、割り込み処理ID「D01」で割り込み処理は、実行VMが「VM#0」、処理内容が「E01」、優先度が「高」、処理時間が「F01」である例を示している。
【0067】
図4の説明に戻ると、共通処理プログラム24は、VM_COMに割り当てられた制御を実現するVM処理(共通処理)を実行するためのプログラムである。アイドル処理プログラム25は、VM_Iに割り当てられた制御を実現するVM処理(アイドル処理)を実行するためのプログラムである。
【0068】
コントローラ30は、例えばCPU(Central Processing Unit)やCPUコア、MPU(Micro Processing Unit)等によって、記憶部20に記憶されている各種プログラムがRAMを作業領域として実行されることにより実現される。また、コントローラ30は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現することができる。
【0069】
コントローラ30は、切り替え制御部31と、VM#0処理部32と、VM#1処理部33と、VM#2処理部34と、共通処理部35と、アイドル処理部36と、割り込み許可部37とを備え、以下に説明する情報処理の機能や作用を実現または実行する。
【0070】
切り替え制御部31は、タイマ11からのシグナルおよび時分割情報21に基づいて、VMを切り替える切り替え制御を実行する。具体的には、切り替え制御部31は、VM#0処理部32、VM#1処理部33、VM#2処理部34、共通処理部35、アイドル処理部36に対し、時分割で実行空間を割り当てる切り替え制御を実行する。言い換えると、切り替え制御部31は、ハイパーバイザとして機能し、VMの切り替え制御を行う。
【0071】
このように、切り替え制御部31は、時分割での割り当てを行うことで、時分割の処理周期において、VM#0、VM#1、VM#2の割当処理時間と、共通処理時間と、アイドル処理時間と、VMの切り替え処理時間(ハイパーバイザによる処理時間)とを設定し(図3参照)、VMの切り替え制御を行う。
【0072】
VM#0処理部32は、VM#0に対応するVM処理プログラム22に基づき、割り当てられたVM処理を実行する。詳しくは、VM#0処理部32は、VM#0のVM処理プログラム22に基づいて、VM#0におけるVM処理の主処理を実行する。
【0073】
VM#1処理部33は、VM#1に対応するVM処理プログラム22に基づき、割り当てられたVM処理を実行する。詳しくは、VM#1処理部33は、VM#1のVM処理プログラム22に基づいて、VM#1におけるVM処理の主処理を実行する。
【0074】
VM#2処理部34は、VM#2に対応するVM処理プログラム22に基づき、割り当てられたVM処理を実行する。詳しくは、VM#2処理部34は、VM#2のVM処理プログラム22に基づいて、VM#2におけるVM処理の主処理を実行する。
【0075】
共通処理部35は、共通処理プログラム24に基づき、割り当てられた共通処理(VM処理)を実行する。アイドル処理部36は、アイドル処理プログラム25に基づき、割り当てられたアイドル処理(VM処理)を実行する。
【0076】
割り込み許可部37は、VMの主処理を実行中に、かかるVMとは異なる他VMに対する割り込み処理が発生した場合、割り込み処理を許可するか否かを判定する処理などを行う。例えば、割り込み許可部37は、タイマ11からのシグナルや時分割情報21などに基づいて、現在が共通処理時間またはアイドル処理時間(すなわち他処理時間)であると判定されたとき、割り込み処理を許可する。これにより、許可された割り込み処理は、対応するVMによって実行される。従って、かかる割り込み処理は、対応するVMの割当処理時間の到来を待たずに実行されることとなり、よって割り込み処理の応答性を向上させることができる。
【0077】
また、割り込み許可部37は、割当処理時間において、割当処理時間が割り当てられたVMに対する割り込み処理のみを許可する。詳しくは、割り込み許可部37は、VMの主処理を実行中に、かかるVMと同じVM(すなわち自VM)に対する割り込み処理が発生した場合、割り込み処理を許可する。他方、割り込み許可部37は、VMの主処理を実行中に、かかるVMとは異なるVM(すなわち他VM)に対する割り込み処理が発生した場合、自VMの処理中における割り込み処理を許可しない、言い換えると割り込み処理の実行を禁止する。
【0078】
言い換えると、本実施形態では、あるVMに対する割込み処理が発生すると、基本的には、そのVMの割当処理時間に割込み処理が行われる。すなわち、割込み処理発生以後の次の割当処理時間になると、割込み処理が行われる。従って、本実施形態においては、あるVMに対する割込みは、そのVMの割当処理時間にのみ割込み処理を許可するようにしてもよい。
【0079】
このように、本実施形態に係る割り込み許可部37は、割当処理時間において、割当処理時間が割り当てられたVMに対する割り込み処理のみを許可するようにした。これにより、例えば他VMに対する割り込み処理が、自VMの主処理に干渉して影響を与えることを抑制することができる。
【0080】
また、割り込み許可部37は、複数の割り込み処理がある場合、優先度に基づいて許可する割り込み処理を選択する。具体的には、割り込み許可部37は、複数の割り込み処理が発生し、かつ、共通処理時間またはアイドル処理時間になると、割り込み処理情報23に基づいて、複数の割り込み処理に設定された優先度同士を比較する。そして、割り込み許可部37は、複数の割り込み処理のうち、優先度が高い割り込み処理を選択して許可する。なお、割り込み許可部37は、許可した割り込み処理が完了し、かつ、まだ共通処理時間またはアイドル処理時間である場合、次に優先度が高い割り込み処理を選択して許可する。
【0081】
このように、本実施形態に係る割り込み許可部37は、優先度に基づいて許可する割り込み処理を選択するようにしたので、例えば優先度が他の割り込み処理の優先度より高い割り込み処理を先行して実行することが可能となる。
【0082】
なお、割り込み許可部37は、複数の割り込み処理に設定された優先度が同じである場合、優先度以外の他の情報に基づいて、許可する割り込み処理を選択してもよい。他の情報としては、例えばASILの情報を用いることができる。すなわち、例えば割り込み許可部37は、割り込み処理に対応するVMのASIL同士を比較し、ASILが高い方のVMに対する割り込み処理を許可するようにしてもよい。これにより、ASILが高いVMに対する割り込み処理を先行して実行することが可能となる。
【0083】
また、他の情報としては、例えばVMにおける実行順番の情報を用いることができる。すなわち、例えば割り込み許可部37は、割り込み処理に対応するVMにおける実行順番同士を比較し、実行が遅い方のVMに対する割り込み処理を許可するようにしてもよい。これにより、実行が遅い方のVMに対する割り込み処理を先行して実行することが可能となり、かかる割り込み処理の応答性を向上させることができる。
【0084】
なお、上記では、実行が遅い方のVMに対する割り込み処理を許可するようにしたが、これに限定されるものではなく、例えば実行が早い方のVMに対する割り込み処理を許可するようにしてもよい。
【0085】
また、割り込み許可部37は、共通処理時間またはアイドル処理時間内(すなわち他処理時間内)に割り込み処理が完了しない場合、割り込み処理の実行を禁止する処理を行ってもよい。かかる処理について、図6を参照しつつ説明する。図6は、割り込み許可部37の処理を説明する図である。
【0086】
図6の上図に示すように、例えば共通処理時間の終了直前に割り込み処理が許可されて実行されると、かかる割り込み処理が、共通処理時間の終了までに完了しない場合がある。かかる場合、割り込み処理が、次に実行される他の処理(ここではハイパーバイザによるVMの切り替え処理やVM#0の処理)に対して影響を与えるおそれがある。
【0087】
そこで、図6の下図に示すように、割り込み許可部37は、共通処理時間(またはアイドル処理時間)内に割り込み処理が完了しない場合、割り込み処理の実行を禁止する。例えば、割り込み許可部37は、タイマ11からのシグナルや時分割情報21などに基づいて、共通処理時間またはアイドル処理時間の残り時間を算出する。また、割り込み許可部37は、割り込み処理情報23に基づいて、割り込み処理の処理時間の情報を取得する。そして、割り込み許可部37は、算出した残り時間が割り込み処理の処理時間以上である場合、割り込み処理を許可する。他方、割り込み許可部37は、残り時間が割り込み処理の処理時間未満である場合、割り込み処理の実行を禁止する。
【0088】
すなわち、割り込み許可部37は、共通処理時間(またはアイドル処理時間)において、割り込み処理を許可可能な期間(図6の時刻T0~Tx参照)を設定し、かかる期間以降(時刻Tx~T1)の割り込み処理の実行を禁止する。
【0089】
これにより、例えば共通処理時間(またはアイドル処理時間)の終了直前に割り込み処理が実行されることがなく、よって割り込み処理が次に実行される他の処理に対して影響を与えることを抑制することができる。
【0090】
なお、優先度が高い割り込み処理が、処理時間の関係で割り込み禁止(処理しないこと)となった場合、残った処理時間で実行可能な他の割り込み処理(優先度が低い割り込み処理)が処理待ちになっていれば、当該他の割り込み処理を代わりに実行するようにしてもよい。
【0091】
次に、仮想化制御装置(ECU10)における具体的な処理手順について図7を用いて説明する。図7は、第1の実施形態に係る仮想化制御装置が実行する、割り込み処理に関する処理手順を示すフローチャートである。
【0092】
図7に示すように、仮想化制御装置のコントローラ30は、あるVMの処理中に、処理中のVM以外のVM(他VM)に対する割り込み処理が発生したか否かを判定する(ステップS10)。コントローラ30は、他VMに対する割り込み処理が発生していないと判定された場合(ステップS10,No)、以降の処理をスキップする。
【0093】
一方、コントローラ30は、他VMに対する割り込み処理が発生したと判定された場合(ステップS10,Yes)、現在が共通処理時間またはアイドル処理時間(すなわち他処理時間)であるか否かを判定する(ステップS11)。
【0094】
コントローラ30は、現在が共通処理時間またはアイドル処理時間ではないと判定された場合(ステップS11,No)、ステップS11の処理を繰り返す。コントローラ30は、現在が共通処理時間またはアイドル処理時間であると判定された場合(ステップS11,Yes)、優先度に基づいて割り込み処理を選択する(ステップS12)。なお、割り込み処理が1つである場合は、ステップS12の処理は省略されてもよい。
【0095】
次いで、コントローラ30は、共通処理時間またはアイドル処理時間の残り時間が、選択した割り込み処理の処理時間以上であるか否かを判定する(ステップS13)。コントローラ30は、残り時間が割り込み処理の処理時間以上であると判定された場合(ステップS13,Yes)、選択した割り込み処理を許可する(ステップS14)。
【0096】
次いで、コントローラ30は、共通処理時間またはアイドル処理時間が終了したか否かを判定する(ステップS15)。コントローラ30は、共通処理時間またはアイドル処理時間が終了していないと判定された場合(ステップS15,No)、未実行の割り込み処理がある否かを判定する(ステップS16)。
【0097】
コントローラ30は、未実行の割り込み処理があると判定された場合(ステップS16,Yes)、ステップS12に戻り、未実行の割り込み処理についてステップS12以降の処理を実行する。また、コントローラ30は、未実行の割り込み処理がないと判定された場合(ステップS16,No)、処理を終了する。また、コントローラ30は、共通処理時間またはアイドル処理時間が終了したと判定された場合(ステップS15,Yes)、ステップS16の処理をスキップする。
【0098】
また、コントローラ30は、残り時間が割り込み処理の処理時間以上ではないと判定された場合(ステップS13,No)、すなわち、残り時間が割り込み処理の処理時間未満である場合、割り込み処理の実行を禁止する(ステップS17)。
【0099】
上述してきたように、第1の実施形態に係る仮想化制御装置(ECU10)は、複数の仮想マシン(VM)を時分割で切り替えつつ動作させるコントローラ30を備える。コントローラ30は、時分割の処理周期において、複数の仮想マシンのそれぞれに割り当てられた割当処理時間とは別に、複数の仮想マシンの処理に共通する処理を実行する共通処理時間と、アイドル処理時間の少なくとも1つを含む他処理時間を設ける。コントローラ30は、他処理時間において、仮想マシンに対する割り込み処理を許可する。これにより、時分割で実行するVM処理の周期的な処理に大きな変更を行うことなく、割り込み処理の応答性を向上させることができる。
【0100】
(変形例)
次いで、第1の実施形態の変形例について図8を参照しつつ説明する。図8は、変形例に係る仮想化制御装置を説明するための図である。なお、以下においては、第1の実施形態と共通の構成については、同一の符号を付して説明を省略する。
【0101】
図8に示すように、変形例に係る仮想化制御装置は、時分割の処理周期において、複数(図8の例では2つ)の共通処理時間を設定するようにした。例えば、仮想化制御装置は、VM#0の割当処理時間とVM#1の割当処理時間との間に、共通処理時間をさらに設定する(時刻T3a~T3b)。なお、システム周期において、複数の共通処理時間が設定される時分割の処理周期は、任意に設定可能である。
【0102】
このように、変形例では、複数の共通処理時間が設定されるようにした、言い換えると、共通処理時間がシステム周期において分散して設定されるようにした。
【0103】
これにより、変形例にあっては、VMに対する割り込み処理が許可される期間を、設定した共通処理時間の分だけ大きくとることができ、よってVMに対する割り込み処理が早期に実行されて応答性をより一層向上させることができる。
【0104】
(第2の実施形態)
次いで、第2の実施形態に係る仮想化制御装置について図9以降を参照しつつ説明する。図9は、第2の実施形態に係る仮想化制御装置が実行する仮想化制御方法の概要説明図である。なお、第2の実施形態に係る仮想化制御装置にあっては、ASILが設定されない構成であるが、これに限定されるものではない。
【0105】
図9に示すように、第2の実施形態に係る仮想化制御装置は、時分割の処理周期に含まれる、各VM(ここではVM#0、VM#1、VM#2)の割当処理時間内に、アイドル処理時間を設ける。なお、図9では、アイドル処理時間を「アイドル処理」と示している。このアイドル処理時間は、各VMの割当処理時間における余剰時間である。
【0106】
具体的には、ハイパーバイザによって、VMが前回処理におけるVM#2からVM#0に切り替えられる(時刻T20~T21)。VM#0は、時刻T21~T22の割当処理時間に制御Aを実行する。このVM#0の割当処理時間内に(正確には割当処理時間の後半部分に)アイドル処理時間が設定けられる。
【0107】
VM#0の割当処理時間が終了すると、ハイパーバイザによってVMがVM#0からVM#1に切り替えられる(時刻T22~T23)。VM#1は、時刻T23~T24の割当処理時間に制御Bを実行する。このVM#1の割当処理時間内に(正確には割当処理時間の後半部分に)アイドル処理時間が設定けられる。
【0108】
VM#1の割当処理時間が終了すると、ハイパーバイザによってVMがVM#1からVM#2に切り替えられる(時刻T24~T25)。VM#2は、時刻T25~T26の割当処理時間に制御Cを実行する。このVM#2の割当処理時間内に(正確には割当処理時間の後半部分に)アイドル処理時間が設けられる。
【0109】
VM#2の割当処理時間が終了すると、ハイパーバイザによってVMがVM#2から次回処理のVM#0に切り替えられ(時刻T26~T27)、次回処理が開始される。従って、図9の例では、時刻T20~T26の期間がシステム周期の1周期となる。
【0110】
第2の実施形態に係る仮想化制御装置は、上記のように設定された各VMの割当処理時間のアイドル処理時間において、VMに対する割り込み処理を許可する。詳しくは、仮想化制御装置は、アイドル処理時間において、VM#0、VM#1、VM#2を含む全てのVMに対する割り込み処理を許可する。すなわち、割当処理時間のアイドル処理時間では、VM#0に対する割り込み処理やVM#1に対する割り込み処理、VM#2に対する割り込み処理が実行可能とされる。
【0111】
これにより、第2の実施形態にあっては、VMに対する割り込み処理の応答性を向上させることができる。例えばVM#1の割当処理時間(時刻T23~T24)に、他のVMであるVM#0に対する割り込み処理が発生した場合、かかる割り込み処理は、次回のVM#0の割当処理時間の到来を待たずに、VM#1の割当処理時間のアイドル処理時間で実行される。このように、第2の実施形態にあっては、時分割で実行するVM処理の周期的な処理に大きな変更を行うことなく、VM(ここではVM#0)に対する割り込み処理を可能な限り早期に実行でき、よって割り込み処理の応答性を向上させることができる。
【0112】
また、第2の実施形態にあっては、VMの割当処理時間内に他のVMの処理(割込み処理)を行う構成である。そのため、処理するVM処理内容に、機能安全(ASILレベル等)があまり求められていない場合や、動作させる各VM処理のASILレベルが同レベルである場合に有効である。
【0113】
なお、第2の実施形態に係る仮想化制御装置は、第1の実施形態と同様に、1システム周期内に、HVによる処理時間と各VMの割当処理時間とに加えて、共通処理時間とアイドル処理時間とを設けてもよい。
【0114】
次に、第2の実施形態に係る仮想化制御装置(ECU10)の構成例について、図10を参照して詳しく説明する。図10は、第2の実施形態に係る仮想化制御装置(ECU10)の構成例を示すブロック図である。
【0115】
なお、第2の実施形態に係るECU10のコントローラ30においては、第1の実施形態の共通処理部35およびアイドル処理部36が除去される。また、第2の実施形態に係るECU10の記憶部20には、第1の実施形態の共通処理プログラム24やアイドル処理プログラム25が記憶されない。
【0116】
図10に示すように、第2の実施形態に係るECU10の記憶部20は、アイドルテーブル情報26を記憶する。アイドルテーブル情報26は、各VMの割当処理時間のアイドル処理において用いられるアイドルテーブルに関する情報である。かかるアイドルテーブル情報26には、対応するVMのアイドル処理時間において許可される割り込み処理やタスク処理の優先度などの情報が含まれる。
【0117】
ここで、図11を用いてアイドルテーブル情報26について説明する。図11は、アイドルテーブル情報26の一例を示す図である。
【0118】
図11に示すように、アイドルテーブル情報26は、VM#0用アイドルテーブル、VM#1用アイドルテーブル、VM#2用アイドルテーブルを含む。VM#0用アイドルテーブルは、VM#0のアイドル処理において用いられるアイドルテーブルである。VM#1用アイドルテーブルは、VM#1のアイドル処理において用いられるアイドルテーブルである。VM#2用アイドルテーブルは、VM#2のアイドル処理において用いられるアイドルテーブルである。
【0119】
一例として、VM#0用アイドルテーブルには、VM#0のアイドル処理時間において許可される割り込み処理やタスク処理が、優先度順に設定されている。かかる優先度は、第1の実施形態と同様、割り込み処理やタスク処理における重要度や緊急度などに基づいて予め設定される。
【0120】
また、かかる優先度は、VMにおける実行順番の情報に応じて設定されてもよい。すなわち、例えば割り込み処理やタスク処理に対応するVMにおける実行が遅い方のVMに対する割り込み処理等について、優先度が高くなるように設定されてもよい。
【0121】
なお、上記では、実行が遅い方のVMに対する割り込み処理の優先度が高くなるように設定される例を示したが、これに限定されるものではなく、例えば実行が早い方のVMに対する優先度が高くなるように設定されてもよい。
【0122】
図10の説明に戻ると、コントローラ30の切り替え制御部31は、VMを切り替える制御を行う際に、上記したアイドルテーブルを設定する処理を行う。例えば、切り替え制御部31は、VMをVM#2からVM#0に切り替えるときに(時刻T20~T21。図9参照)、VM#0用アイドルテーブルを設定する。また、切り替え制御部31は、VMをVM#0からVM#1に切り替えるときに(時刻T22~T23)、VM#1用アイドルテーブルを設定する。また、切り替え制御部31は、VMをVM#1からVM#2に切り替えるときに(時刻T24~T25)、VM#2用アイドルテーブルを設定する。
【0123】
そして、割り込み許可部37は、VMに対する割り込み処理やタスク処理が発生した場合、割当処理時間のアイドル処理時間において、アイドルテーブルに基づき優先度に応じて割り込み処理等を許可する。これにより、許可された割り込み処理等は、対応するVMによって実行される。
【0124】
これにより、割り込み処理等は、対応するVMの割当処理時間の到来を待たずに実行されることとなり、よって割り込み処理の応答性を向上させることができることは、既に述べた通りである。
【0125】
また、割り込み許可部37は、割当処理時間のアイドル処理時間内に割り込み処理等が完了しない場合、割り込み処理等の実行を禁止する処理を行ってもよい。すなわち、第2の実施形態に係る割り込み許可部37は、第1の実施形態と同様に、タイマ11からのシグナルや時分割情報21などに基づいて、割当処理時間のアイドル処理時間の残り時間を算出する。また、割り込み許可部37は、割り込み処理情報23に基づいて、割り込み処理等の処理時間の情報を取得する。そして、割り込み許可部37は、算出した残り時間が割り込み処理等の処理時間以上である場合、割り込み処理等を許可する。他方、割り込み許可部37は、残り時間が割り込み処理等の処理時間未満である場合、割り込み処理等の実行を禁止する。
【0126】
これにより、例えば割当処理時間のアイドル処理時間の終了直前に割り込み処理等が実行されることがなく、よって割り込み処理等が次に実行される他の処理に対して影響を与えることを抑制することができる。
【0127】
次に、第2の実施形態に係る仮想化制御装置(ECU10)における具体的な処理手順について図12を用いて説明する。図12は、第2の実施形態に係る仮想化制御装置が実行する、割り込み処理に関する処理手順を示すフローチャートである。
【0128】
図12に示すように、仮想化制御装置のコントローラ30は、あるVMの処理中に、処理中のVM以外のVM(他VM)に対する割り込み処理等が発生したか否かを判定する(ステップS100)。コントローラ30は、他VMに対する割り込み処理等が発生していないと判定された場合(ステップS100,No)、以降の処理をスキップする。
【0129】
一方、コントローラ30は、他VMに対する割り込み処理等が発生したと判定された場合(ステップS100,Yes)、現在が割当処理時間のアイドル処理時間であるか否かを判定する(ステップS101)。
【0130】
コントローラ30は、現在が割当処理時間のアイドル処理時間ではないと判定された場合(ステップS101,No)、ステップS101の処理を繰り返す。コントローラ30は、現在が割当処理時間のアイドル処理時間であると判定された場合(ステップS101,Yes)、アイドルテーブルの優先度に基づいて割り込み処理等を選択する(ステップS102)。なお、割り込み処理等が1つである場合は、ステップS102の処理は省略されてもよい。
【0131】
次いで、コントローラ30は、割当処理時間のアイドル処理時間の残り時間が、選択した割り込み処理等の処理時間以上であるか否かを判定する(ステップS103)。コントローラ30は、残り時間が割り込み処理等の処理時間以上であると判定された場合(ステップS103,Yes)、選択した割り込み処理等を許可する(ステップS104)。
【0132】
次いで、コントローラ30は、割当処理時間のアイドル処理時間が終了したか否かを判定する(ステップS105)。コントローラ30は、割当処理時間のアイドル処理時間が終了していないと判定された場合(ステップS105,No)、未実行の割り込み処理等がある否かを判定する(ステップS106)。
【0133】
コントローラ30は、未実行の割り込み処理等があると判定された場合(ステップS106,Yes)、ステップS102に戻り、未実行の割り込み処理等についてステップS102以降の処理を実行する。また、コントローラ30は、未実行の割り込み処理等がないと判定された場合(ステップS106,No)、処理を終了する。また、コントローラ30は、割当処理時間のアイドル処理時間が終了したと判定された場合(ステップS105,Yes)、ステップS106の処理をスキップする。
【0134】
また、コントローラ30は、残り時間が割り込み処理等の処理時間以上ではないと判定された場合(ステップS103,No)、すなわち、残り時間が割り込み処理等の処理時間未満である場合、割り込み処理等の実行を禁止する(ステップS107)。
【0135】
さらなる効果や変形例は、当業者によって容易に導き出すことができる。このため、本発明のより広範な態様は、以上のように表しかつ記述した特定の詳細および代表的な実施形態に限定されるものではない。したがって、添付の特許請求の範囲およびその均等物によって定義される総括的な発明の概念の精神または範囲から逸脱することなく、様々な変更が可能である。
【符号の説明】
【0136】
10 ECU(仮想化制御装置)
30 コントローラ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12