(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023158435
(43)【公開日】2023-10-30
(54)【発明の名称】管理装置、管理プログラムおよび電子制御装置
(51)【国際特許分類】
G06F 1/3287 20190101AFI20231023BHJP
G06F 9/455 20180101ALI20231023BHJP
G06F 1/3215 20190101ALI20231023BHJP
【FI】
G06F1/3287
G06F9/455 150
G06F1/3215
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2022068277
(22)【出願日】2022-04-18
(71)【出願人】
【識別番号】000004260
【氏名又は名称】株式会社デンソー
(71)【出願人】
【識別番号】516327686
【氏名又は名称】株式会社オーバス
(71)【出願人】
【識別番号】501100881
【氏名又は名称】イーソル株式会社
(74)【代理人】
【識別番号】110000567
【氏名又は名称】弁理士法人サトー
(72)【発明者】
【氏名】▲高▼橋 聡樹
(72)【発明者】
【氏名】大井 学
(72)【発明者】
【氏名】坂本 裕和
【テーマコード(参考)】
5B011
【Fターム(参考)】
5B011DA07
5B011EA10
5B011EB06
5B011LL11
(57)【要約】
【課題】省電力の効果を高めることができる管理装置を提供する。
【解決手段】仮想マシン11~14は、スリープ条件が満たされることによりウェイクアップ状態からスリープ状態へと遷移する。マイコン3は、通常の動作を行う通常状態と通常状態よりも電力消費量が少ない複数の省電力状態とのうちいずれかに遷移可能である。HV2は、仮想マシン11~14についての状態に関する情報を表す状態管理テーブルと、仮想マシン11~14がアクセスするマイコン3が備えるハードウェア4~8に関する情報を表すアクセス管理テーブルと、複数の省電力状態のそれぞれにマイコン3を遷移させるための条件である遷移条件に関する情報を表す遷移条件テーブルと、備える。HV2は、状態管理テーブル、アクセス管理テーブルおよび遷移条件テーブルを参照し、複数の省電力状態のうち、その時点で遷移可能であり且つ最も電力消費量が少ない状態にマイコン3を遷移させる。
【選択図】
図1
【特許請求の範囲】
【請求項1】
複数の仮想マシン(11~14)を動作させるコンピュータ(3)の状態遷移を管理する管理装置(2)であって、
前記複数の仮想マシンのそれぞれは、予め定められたスリープ条件が満たされることにより、所定の動作を行うウェイクアップ状態から前記動作を停止するスリープ状態へと遷移するようになっており、
前記コンピュータは、通常の動作を行う通常状態と、前記通常状態よりも電力消費量が少ない複数の省電力状態と、のうちいずれかに遷移可能であり、
前記複数の仮想マシンのそれぞれについての状態に関する情報を表す状態管理テーブルと、
前記複数の仮想マシンのそれぞれがアクセスする前記コンピュータが備えるハードウェア(4~8)に関する情報を表すアクセス管理テーブルと、
前記複数の省電力状態のそれぞれに前記コンピュータを遷移させるための条件である遷移条件に関する情報を表す遷移条件テーブルと、
を備え、
前記状態管理テーブル、前記アクセス管理テーブルおよび前記遷移条件テーブルを参照し、前記複数の省電力状態のうち、その時点で遷移可能であり且つ最も電力消費量が少ない状態に前記コンピュータを遷移させるようになっている管理装置。
【請求項2】
前記状態管理テーブルは、前記複数の仮想マシンのうち少なくとも1つについて前記スリープ条件が満たされると更新されるようになっている請求項1に記載の管理装置。
【請求項3】
前記コンピュータは、そのハードウェアとしてCPU(4、5)およびペリフェラル(6~8)を備え、
前記アクセス管理テーブルは、前記CPUおよびペリフェラルに関する情報と、それらにアクセスする前記複数の仮想マシンのそれぞれを識別するための識別情報と、が紐付けられたものとなっている請求項1または2に記載の管理装置。
【請求項4】
複数の仮想マシンを動作させるコンピュータの状態遷移を管理する管理装置に実行させる管理プログラムであって、
前記複数の仮想マシンのそれぞれは、予め定められたスリープ条件が満たされることにより、所定の動作を行うウェイクアップ状態から前記動作を停止するスリープ状態へと遷移するようになっており、
前記コンピュータは、通常の動作を行う通常状態と、前記通常状態よりも電力消費量が少ない複数の省電力状態と、のうちいずれかに遷移可能であり、
前記管理装置に、
前記複数の仮想マシンのそれぞれについての状態に関する情報を表す状態管理テーブル、前記複数の仮想マシンのそれぞれがアクセスする前記コンピュータが備えるハードウェアに関する情報を表すアクセス管理テーブルおよび前記複数の省電力状態のそれぞれに前記コンピュータを遷移させるための条件である遷移条件に関する情報を表す遷移条件テーブルを参照し、前記複数の省電力状態のうち、その時点で遷移可能であり且つ最も電力消費量が少ない状態に前記コンピュータを遷移させる処理、
を実行させる管理プログラム。
【請求項5】
コンピュータ(3)と、前記コンピュータ上で動作する複数の仮想マシン(11~14)と、前記コンピュータの状態遷移を管理する管理装置(2)と、を備えた電子制御装置(1)であって、
前記複数の仮想マシンのそれぞれは、予め定められたスリープ条件が満たされることにより、所定の動作を行うウェイクアップ状態から前記動作を停止するスリープ状態へと遷移するようになっており、
前記コンピュータは、通常の動作を行う通常状態と、前記通常状態よりも電力消費量が少ない複数の省電力状態と、のうちいずれかに遷移可能であり、
前記管理装置は、
前記複数の仮想マシンのそれぞれについての状態に関する情報を表す状態管理テーブルと、
前記複数の仮想マシンのそれぞれがアクセスする前記コンピュータが備えるハードウェア(4~8)に関する情報を表すアクセス管理テーブルと、
前記複数の省電力状態のそれぞれに前記コンピュータを遷移させるための条件である遷移条件に関する情報を表す遷移条件テーブルと、
を備え、
前記状態管理テーブル、前記アクセス管理テーブルおよび前記遷移条件テーブルを参照し、前記複数の省電力状態のうち、その時点で遷移可能であり且つ最も電力消費量が少ない状態に前記コンピュータを遷移させるようになっている電子制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数の仮想マシンを動作させるコンピュータの状態遷移を管理する管理装置、管理装置に実行させる管理プログラムおよび管理装置を備えた電子制御装置に関する。
【背景技術】
【0002】
特許文献1には、複数のゲストオペレーティングシステム機能を個別に省電力状態に遷移させる技術が開示されている。なお、本明細書では、オペレーティングシステムのことをOSと省略することがある。また、以下では、特許文献1に開示される技術のことを従来技術と称することとする。従来技術では、それぞれ個別のOSに省電力状態への遷移条件を設定しておき、その遷移条件を満たしたOSを省電力状態へ遷移させる。そして、従来技術では、全てのOSが省電力状態に遷移した場合には、ハイパーバイザを省電力状態に遷移させるとともにハードウェア資源を停止させるようになっている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来技術では、全てのゲストOSが遷移条件を満たした場合にしかハードウェア資源を停止することができない。そのため、複数のゲストOSとして省電力状態に遷移する遷移タイミングに比較的大きな時間差が生じるような機能が搭載される場合、全てのゲストOSが遷移条件を満たすまでに比較的長い時間を要することになり、十分な省電力効果が得られなくなるおそれがある。例えば、ゲストOSの機能として、車両に搭載される電子制御装置の機能が搭載される場合、その遷移条件には車両電源の状態が含まれるケースが想定される。なお、本明細書では、電子制御装置のことをECUと省略することがある。
【0005】
車両電源には、バッテリーが接続されたバッテリー接続中にオン状態になる電源である+B電源と、エンジンが起動されたエンジン起動中にオン状態になるイグニッション電源とが存在する。なお、本明細書では、イグニッションのことをIGと省略することがある。ハイパーバイザ上のゲストOSとして+B電源の状態が遷移条件に含まれるECU機能と、IG電源の状態が遷移条件に含まれるECU機能とが搭載された場合、エンジンが停止されてIG電源の状態が遷移条件に含まれるゲストOSを省電力状態に遷移させることが可能になったとしても、+B電源の状態が遷移条件に含まれるゲストOSの遷移条件が満たされない限りハードウェア資源を停止することができず、その結果、大きな省電力効果を得ることができなくなる。このような問題は、ゲストOS毎の遷移タイミングの時間差が大きいほど一層顕著なものとなる。
【0006】
本発明は上記事情に鑑みてなされたものであり、その目的は、省電力の効果を高めることができる管理装置、管理プログラムおよび電子制御装置を提供することにある。
【課題を解決するための手段】
【0007】
請求項1に記載の管理装置は、複数の仮想マシン(11~14)を動作させるコンピュータ(3)の状態遷移を管理する。複数の仮想マシンのそれぞれは、予め定められたスリープ条件が満たされることにより、所定の動作を行うウェイクアップ状態から動作を停止するスリープ状態へと遷移するようになっている。コンピュータは、通常の動作を行う通常状態と、通常状態よりも電力消費量が少ない複数の省電力状態と、のうちいずれかに遷移可能である。
【0008】
管理装置は、複数の仮想マシンのそれぞれについての状態に関する情報を表す状態管理テーブルと、複数の仮想マシンのそれぞれがアクセスするコンピュータが備えるハードウェア(4~8)に関する情報を表すアクセス管理テーブルと、複数の省電力状態のそれぞれにコンピュータを遷移させるための条件である遷移条件に関する情報を表す遷移条件テーブルと、を備える。管理装置は、状態管理テーブル、アクセス管理テーブルおよび遷移条件テーブルを参照し、複数の省電力状態のうち、その時点で遷移可能であり且つ最も電力消費量が少ない状態にコンピュータを遷移させるようになっている。
【0009】
このような構成によれば、複数の仮想マシンのいずれかがスリープ状態へと遷移可能になる度に、その時点で遷移可能な省電力状態のうち最も電力消費量が少ない状態にコンピュータの状態が遷移されることになる。すなわち、上記構成によれば、コンピュータの状態をより電力消費量が少なくなるように段階的に遷移させること、つまり多段階の省電力遷移を実現することができる。そのため、上記構成によれば、全ての仮想マシンがスリープ状態に遷移していなくとも、可能な範囲でコンピュータの省電力効果を得ることが可能となる。したがって、上記構成によれば、従来技術に比べ、省電力の効果を十分に高めることができる。
【図面の簡単な説明】
【0010】
【
図1】一実施形態に係る統合ECUの構成を模式的に示す図
【
図2】一実施形態に係る状態管理テーブルの一例を模式的に示す図
【
図3】一実施形態に係るアクセス管理テーブルの一例を模式的に示す図
【
図4】一実施形態に係る遷移条件テーブルの一例を模式的に示す図
【
図5】一実施形態に係る判定処理の内容を模式的に示す図
【発明を実施するための形態】
【0011】
以下、管理装置、管理プログラムおよび電子制御装置の実施形態について図面を参照して説明する。
図1に示すように、本実施形態の統合ECU1は、例えば自動車などの車両に搭載されるものであり、従来単独で動作していた複数のECUの機能がハイパーバイザー2を介して1つのマイクロコンピュータ3のチップ上に搭載されたものである。この場合、複数のECUの機能は、仮想マシンという単位で搭載される。なお、本明細書では、マイクロコンピュータのことをマイコンと省略することがあり、ハイパーバイザーのことをHVと省略することがあり、仮想マシンのことをVMと省略することがある。
【0012】
本実施形態では、統合ECU1が備える複数のECUの機能として、エンジンECU、エアコンECU、セントラルゲートウェイECUおよびボデーECUという4つのECUの機能を例示しているが、統合ECU1は、2つまたは3つのECUの機能を備えていてもよいし、5つ以上のECUの機能を備えていてもよい。なお、本明細書では、セントラルゲートウェイのことをCGWと省略することがある。この場合、エンジンECUはVM11により実現され、エアコンECUはVM12により実現され、CGWECUはVM13により実現され、ボデーECUはVM14により実現される。
【0013】
VM11~14には、それぞれを識別するための識別情報であるVMIDが付与されている。本実施形態では、VM11には「VMID=1」が付与され、VM12には「VMID=2」が付与され、VM13には「VMID=3」が付与され、VM14には「VMID=4」が付与されている。マイコン3は、コンピュータの一例であり、そのハードウェアとして2つのCPU4、5および各種のペリフェラルを備えている。なお、マイコン3は、1つのCPUを備える構成でもよいし、3つ以上のCPUを備える構成でもよい。また、本明細書では、ハードウェアのことをHWと省略することがある。
【0014】
各種のペリフェラルには、CAN通信を行うためのCAN通信インターフェース6、Ethernet通信を行うためのEthernet通信I/F7、タイマー8などが含まれる。なお、CANは、Controller Area Networkの略称であり、登録商標である。また、Ethernetは、登録商標である。なお、本明細書では、インターフェースのことをI/Fと省略することがある。マイコン3が備える各HWには、それぞれを識別するための識別情報であるHWIDが付与されている。本実施形態では、CPU4には「HWID=1」が付与され、CPU5には「HWID=2」が付与され、CAN通信I/F6には「HWID=3」が付与され、Ethernet通信I/F7には「HWID=4」が付与され、タイマー8には「HWID=5」が付与されている。
【0015】
マイコン3は、所定の入力端子からの応答の有無などに基づいて、車両に搭載される電源である車両電源の状態を把握することができる。車両電源には、バッテリー接続中にオン状態になる+B電源9およびエンジン起動中にオン状態になるIG電源10が含まれる。また、マイコン3は、CAN通信I/F6およびEthernet通信I/F7を介したCANおよびEthernetの通信の状態、具体的には通信の有無を把握することができる。具体的には、マイコン3は、例えば通信の応答が所定期間無い場合に通信無しと判断することができる。
【0016】
HV2は、マイコン3上でVM11~14を動作させるためのものであるとともに、マイコン3の状態遷移を遷移する管理装置として機能する。また、この場合、統合ECU1は、マイコン3と、マイコン3上で動作するVM11~14と、管理装置として機能するHV2と、を備えた電子制御装置の一例である。HV2およびVM11~14は、いずれもマイコン3が備えるCPUが非遷移的実体的記憶媒体に格納されているコンピュータプログラムを実行してコンピュータプログラムに対応する処理を実行することにより実現されている、つまりソフトウェアにより実現されている。なお、上記したコンピュータプログラムのうちHV2が実行するプログラムは、管理プログラムに相当する。
【0017】
VM11~14のそれぞれは、予め定められたスリープ条件が満たされることにより、所定の動作を行うウェイクアップ状態から、その所定の動作を停止するスリープ状態へと遷移するようになっている。所定の動作とは、VM11~14のそれぞれに対応するECUの機能を実現するための各種の動作に相当するものであり、例えばVM11の場合にはエンジンを制御するための動作であり、VM12の場合にはエアコンを制御するための動作である。
【0018】
スリープ条件としては、例えば車両電源の状態、CANおよびEthernetの通信の状態などを条件とすることができる。本実施形態では、VM11およびVM12のスリープ条件にはIG電源10の状態が含まれているとともに、VM13およびVM14のスリープ条件には+B電源9の状態が含まれている。VM11~VM14のそれぞれは、スリープ条件が満たされたとき、HV2に対して状態遷移要求を送信する。状態遷移要求には、要求の送信元を識別するために送信したVMのVMIDが含まれている。HV2は、状態遷移要求を受信すると、後述する判定処理を実行するようになっている。
【0019】
マイコン3は、通常の動作を行う通常状態と、その通常状態よりも電力消費量が少ない複数の省電力状態と、のうちいずれかに遷移可能である。複数の省電力状態には、「HALT」、「STOP」、「PERIPHERALSTOP」および「DEEPSTOP」が含まれる。これらの省電力度合い、つまりマイコン3の電力消費量を低減する度合いは、後述する
図4に示すようなものとなる。すなわち、これらの省電力度合いは、「HALT」が最も小さくなるとともに「DEEPSTOP」が最も大きくなっている。そして、「STOP」および「PERIPHERALSTOP」の省電力度合いは、それらの中間の値となっている。
【0020】
HV2は、状態管理テーブル、アクセス管理テーブルおよび遷移条件テーブルを備えている。なお、これら各テーブルは、HV2が読み書き可能とされていればよく、マイコン3が備える各種の記憶装置に記憶されていてもよいし、マイコン3の外部に設けられた各種の記憶装置に記憶されていてもよい。状態管理テーブルは、複数のVM11~14のそれぞれについての状態に関する情報を表すテーブルであり、例えば
図2に示すような内容のものとなっている。
【0021】
すなわち、状態管理テーブルは、VMIDとVMの状態とが紐付けられたものとなっている。VMの状態としては、前述したウェイクアップ状態およびスリープ状態が含まれている。なお、
図2では、ウェイクアップ状態およびスリープ状態のことを、それぞれウェイクアップおよびスリープと省略している。VMIDは、HV2上に搭載されるVMの数と同じ数だけ存在する。
【0022】
図2に示す状態管理テーブルによれば、VMID=1が付与されたVM11およびVMID=2が付与されたVM12がスリープ状態であるとともに、VMID=3が付与されたVM13およびVMID=4が付与されたVM14がウェイクアップ状態であるということが分かる。状態管理テーブルは、複数のVM11~14のうち少なくとも1つについてスリープ条件が満たされると更新されるようになっている。具体的には、状態管理テーブルは、VM11~14のいずれかから状態遷移要求が送信されると、その状態遷移要求を送信したVMに対応するVMIDに紐付けられたVMの状態がスリープ状態となるように更新されるようになっている。
【0023】
アクセス管理テーブルは、複数のVM11~14のそれぞれがアクセスするマイコン3が備えるHWに関する情報を表すテーブルであり、例えば
図3に示すような内容のものとなっている。すなわち、アクセス管理テーブルは、CPUおよびペリフェラルに関する情報と、それらにアクセスする複数のVM11~14のVMIDと、が紐付けられたものとなっている。
【0024】
具体的には、アクセス管理テーブルには、マイコン3のHWに関する情報、アクセスVMおよびアクセス状態といった要素が存在する。マイコン3のHWに関する情報には、HWIDおよびハードウェア種別が含まれる。ハードウェア種別では、「CPU」および「ペリフェラル」という大きな分類がなされたうえで、各HWに固有の名称により各HWが識別されている。
図3において、「CPU[1]」はCPU4を表し、「CPU[2]」はCPU5を表し、「CAN」はCAN通信I/F6を表し、「Ethernet」はEthernet通信I/F7を表し、「タイマー」はタイマー8を表している。
【0025】
アクセスVMには、対応するHWにアクセスするVMのVMIDが入力されている。この場合、CPU4にはVM11、12がアクセスするようになっているため、「HWID=1」に対応するアクセスVMの項目には「1、2」が入力されており、CPU5にはVM13、14がアクセスするようになっているため、「HWID=2」に対応するアクセスVMの項目には「3、4」が入力されている。
【0026】
また、この場合、CAN通信I/F6にはVM11、13がアクセスするようになっているため、「HWID=3」に対応するアクセスVMの項目には「1、3」が入力されており、Ethernet通信I/F7にはVM12がアクセスするようになっているため、「HWID=4」に対応するアクセスVMの項目には「2」が入力されており、タイマー8にはVM11、14がアクセスするようになっているため、「HWID=5」に対応するアクセスVMの項目には「1、4」が入力されている。
【0027】
アクセス状態は、対応するHWへのアクセスがある状態が「あり」で表されるとともに、対応するHWへのアクセスがない状態が「なし」で表されるようになっている。アクセス状態の更新は、次のようにして行われる。すなわち、アクセスVMに記載されるVMIDのVMの状態が全てスリープ状態に遷移したときに、アクセス状態が「あり」から「なし」に更新される。言い換えると、アクセスVMに記載されるVMIDのVMの状態が1つでもウェイクアップ状態であるときには、アクセス状態は「あり」のまま維持される。
図3に示すアクセス管理テーブルによれば、VM11、12がスリープ状態に遷移したためにCPU4およびEthernet通信I/F7のアクセス状態が「なし」であるとともに、その他のHWのアクセス状態が「あり」であることが分かる。
【0028】
遷移条件テーブルは、複数の省電力状態のそれぞれにマイコン3を遷移させるための条件である遷移条件に関する情報を表すテーブルであり、例えば
図4に示すような内容のものとなっている。このような遷移条件テーブルは、マイコン3のハードウェアマニュアルなどに基づいて作成することができる。遷移条件テーブルには、マイコン3として定義される省電力状態の名称である省電力状態名、各省電力状態に遷移する際の条件である遷移条件および各省電力状態における省電力度合いといった要素が存在する。なお、以下では、各省電力状態のことを、それらの省電力状態名で呼ぶこととする。
【0029】
「HALT」は、「単独CPUについて単独VMからのアクセスがないこと」が遷移条件になっているとともに、省電力度合いが「小」になっている。「HALT」は、例えば2つのVMからアクセスされるCPUについて、2つのVMの一方からアクセスが無い場合に遷移することができるものであり、2つのVMの他方が動作していない、つまりアクセスしていないような隙間の期間にCPUを一時的に停止することで、マイコン3の電力消費量を低減するものである。
【0030】
「STOP」は、「単独CPUについて全VMからのアクセスがないこと」が遷移条件になっているとともに、省電力度合いが「中」になっている。「STOP」は、例えば2つのVMからアクセスされるCPUについて、2つのVMの双方からアクセスが無い場合に遷移することができるものであり、そのCPUを停止することで、マイコン3の電力消費量を低減するものである。この場合、HV2が、その停止されたCPUへのアクセスを停止することになり、その分だけ電力消費量をさらに低減することができる。
【0031】
「PERIPHERALSTOP」は、「全ペリフェラルについてVMからのアクセスがないこと」が遷移条件になっているとともに、省電力度合いが「中」になっている。「PERIPHERALSTOP」は、全てのペリフェラル、つまりCAN通信I/F6、Ethernet通信I/F7およびタイマー8について、全てのVMからアクセスが無い場合に遷移することができるものであり、全てのペリフェラルを停止することで、マイコン3の電力消費量を低減するものである。
【0032】
「DEEPSTOP」は、「全CPUについてVMからのアクセスがないこと」および「全ペリフェラルについてVMからのアクセスがないこと」の双方を満たすことが遷移条件になっているとともに、省電力度合いが「大」になっている。「DEEPSTOP」は、全てのCPUおよび全てのペリフェラルについて全てのVMからアクセスが無い場合に遷移することができるものであり、全てのCPUおよび全てのペリフェラルを停止する、つまりほぼ全ての機能を停止することで、マイコン3の電力消費量を低減するものである。この場合、HV2もスリープ状態となり、その機能を停止する。
【0033】
HV2は、上記した各テーブル、つまり状態管理テーブル、アクセス管理テーブルおよび遷移条件テーブルを参照し、複数の省電力状態のうち、その時点で遷移可能であり且つ最も電力消費量が少ない状態にマイコン3を遷移させるようになっている。このようなマイコン3の状態遷移は、HV2が判定処理を実行することにより実現される。判定処理は、前述したように、HV2がVM11~14から送信される状態遷移要求を受信すると実行するものであり、例えば
図5に示すような内容の処理となっている。
【0034】
まず、ステップS101では、状態遷移要求を送信したVMのVMIDが取得される。VMIDの取得は、受信した状態遷移要求に含まれるVMIDを読み込むことにより行われる。ステップS101の実行後はステップS102に進み、状態管理テーブルの更新が行われる。具体的には、ステップS102では、ステップS101で取得したVMIDと一致するVMIDに対応するVMの状態がスリープ状態となるように状態管理テーブルが更新される。
【0035】
ステップS102の実行後はステップS103に進み、アクセス管理テーブルのHWIDに対応する各情報のうち、先頭のHWID、つまり「HWID=1」に対応する各情報が取得される。ステップS103の実行後はステップS104に進み、ステップS103で取得した情報におけるアクセスVMに記載された全てのVMがスリープ状態であるか否かが判断される。このような判断は、状態管理テーブルに基づいて行うことができる。
【0036】
ここで、全てのVMがスリープ状態である場合、ステップS104で「YES」となり、ステップS105に進む。一方、全てのVMがスリープ状態でない場合、言い換えると少なくとも1つのVMがウェイクアップ状態である場合、ステップS104で「NO」となり、ステップS105を実行することなく、ステップS106に進む。ステップS105では、ステップS103で取得したHWIDに対応するアクセス状態が「なし」に設定される。
【0037】
ステップS106では、ステップS103で取得した各情報が最後の情報であるか否か、つまりステップS103で取得した各情報に対応するHW以外に情報が未取得のHWが存在するか否かが判断される。ここで、ステップS103で取得した各情報が最後の情報ではない場合、ステップS106で「NO」となり、ステップS107に進む。ステップS107では、アクセス管理テーブルのHWIDに対応する各情報のうち、次のHWIDに対応する各情報が取得される。
【0038】
ここで言う「次の」とは、アクセス管理テーブルのHWIDに対応する各情報のうち、今回の一連の処理において未だ情報が取得されていない情報のうち最もHWIDの数字が小さいもののことを意味する。ステップS107の実行後はステップS104に戻る。一方、ステップS103で取得した各情報が最後の情報である場合、ステップS106で「YES」となり、ステップS108に進む。ステップS108では、アクセス管理テーブルにおける各HWのアクセス状態と、遷移条件テーブルにおける遷移条件と、に基づいて、その時点において遷移可能な省電力状態が存在するか否かが判断される。
【0039】
ここで、遷移可能な省電力状態が存在しない場合、ステップS108で「NO」となり、本処理が終了となる。一方、遷移可能な省電力状態が存在する場合、ステップS108で「YES」となり、ステップS109に進む。ステップS109では、遷移可能な省電力状態のうち、最も省電力度合いが大きい状態にマイコン3の状態を遷移させる。ステップS109の実行後、本処理が終了となる。
【0040】
続いて、HV2により判定処理が実行される際における各部の具体的な動作の流れについて説明する。なお、ここでは、VM11、12、13、14が、この順番で状態遷移要求をHV2に対して送信する、つまりこの順番でスリープ状態へと遷移してゆくケースを想定している。まず、VM11がHV2に対して状態遷移要求を送信すると、それを受信したHV2は、状態管理テーブルの「VMID=1」に対応するVMの状態を「スリープ」に更新する。
【0041】
その後、HV2は、アクセス管理テーブルについてHWID=1~5を順番に判定してアクセス状態の更新を行う。このとき、VM11だけがスリープ状態であり、他のVM12~14がウェイクアップ状態であるため、アクセス状態は全て「あり」のまま維持されて更新されることはない。そして、HV2は、アクセス管理テーブルのアクセス状態および遷移条件テーブルの遷移条件の比較を行う。このとき、VM11によるCPU4へのアクセスがなくなることから、「HALT」への遷移条件が満たされることになる。なお、このとき、他の省電力状態への遷移条件は満たされていない。そのため、HV2は、マイコン3の状態を「HALT」に遷移させる。
【0042】
次に、VM12がHV2に対して状態遷移要求を送信すると、それを受信したHV2は、状態管理テーブルの「VMID=2」に対応するVMの状態を「スリープ」に更新する。その後、HV2は、アクセス管理テーブルについてHWID=1~5を順番に判定してアクセス状態の更新を行う。このとき、VM11に加えてVM12がスリープ状態であることから、「HWID=1」に対応するCPU[1]、つまりCPU4のアクセス状態が「なし」に更新されるとともに、「HWID=4」に対応するEthernet、つまりEthernet通信I/F7のアクセス状態が「なし」に更新される。
【0043】
そして、HV2は、アクセス管理テーブルのアクセス状態および遷移条件テーブルの遷移条件の比較を行う。このとき、VM11、12によるCPU4へのアクセスがなくなることから、「HALT」に加え、「STOP」への遷移条件が満たされることになる。なお、このとき、他の省電力状態への遷移条件は満たされていない。そのため、HV2は、マイコン3の状態を、遷移可能な省電力状態のうち、より省電力度合いが大きい状態である「STOP」に遷移させる。
【0044】
次に、VM13がHV2に対して状態遷移要求を送信すると、それを受信したHV2は、状態管理テーブルの「VMID=3」に対応するVMの状態を「スリープ」に更新する。その後、HV2は、アクセス管理テーブルについてHWID=1~5を順番に判定してアクセス状態の更新を行う。このとき、VM11、12に加えてVM13がスリープ状態であることから、「HWID=3」に対応するCAN、つまりCAN通信I/F6のアクセス状態が「なし」に更新される。そして、HV2は、アクセス管理テーブルのアクセス状態および遷移条件テーブルの遷移条件の比較を行うが、新たに遷移条件が満たされることがないため、マイコン3の状態は「STOP」のまま維持される。
【0045】
次に、VM14がHV2に対して状態遷移要求を送信すると、それを受信したHV2は、状態管理テーブルの「VMID=4」に対応するVMの状態を「スリープ」に更新する。その後、HV2は、アクセス管理テーブルについてHWID=1~5を順番に判定してアクセス状態の更新を行う。このとき、VM11~13に加えてVM14がスリープ状態であることから、アクセス状態は全て「なし」に更新される。
【0046】
そして、HV2は、アクセス管理テーブルのアクセス状態および遷移条件テーブルの遷移条件の比較を行う。このとき、VM11~14による全てのHWへのアクセスがなくなることから、「HALT」および「STOP」に加え、「PERIPHERALSTOP」および「DEEPSTOP」への遷移条件が満たされることになる。そのため、HV2は、マイコン3の状態を、遷移可能な各省電力状態のうち、より省電力度合いが大きい状態である「DEEPSTOP」に遷移させる。
【0047】
以上説明した本実施形態によれば、次のような効果が得られる。
HV2は、複数のVM11~14のそれぞれについての状態に関する情報を表す状態管理テーブルと、複数のVM11~14のそれぞれがアクセスするマイコン3が備えるハードウェアに関する情報を表すアクセス管理テーブルと、複数の省電力状態のそれぞれにマイコン3を遷移させるための条件である遷移条件に関する情報を表す遷移条件テーブルと、を参照し、複数の省電力状態のうち、その時点で遷移可能であり且つ最も電力消費量が少ない状態にマイコン3を遷移させる判定処理を実行するようになっている。
【0048】
このような構成によれば、複数のVM11~14のいずれかがスリープ状態へと遷移可能になる度に、その時点で遷移可能な省電力状態のうち最も電力消費量が少ない状態にマイコン3の状態が遷移されることになる。すなわち、上記構成によれば、マイコン3の状態をより電力消費量が少なくなるように段階的に遷移させること、つまり多段階の省電力遷移を実現することができる。そのため、上記構成によれば、全てのVM11~14がスリープ状態に遷移していなくとも、可能な範囲でマイコン3の省電力効果を得ることが可能となる。したがって、本実施形態によれば、従来技術に比べ、省電力の効果を十分に高めることができる。
【0049】
また、この場合、HV2は、VM11~14のいずれかがスリープ状態へと遷移可能になった際、スリープ状態へと遷移可能なVM以外の他のVM、つまりウェイクアップ状態のVMの動作に影響を与えることがないような省電力状態にマイコン3の状態を遷移させるようになっている。このようにすれば、VM11~14のいずれかがスリープ状態へと遷移する際、他のVMが所定の動作を実行中にもかかわらず、その動作の継続を妨げてしまうことを防止できる。
【0050】
上記構成において、VM11およびVM12のスリープ条件にはIG電源10の状態が含まれているとともに、VM13およびVM14のスリープ条件には+B電源9の状態が含まれている。このような場合、VM11、12と、VM13、14とがスリープ状態に遷移する遷移タイミングに比較的大きな時間差が生じる可能性が高い。従来技術では、このような場合、十分な省電力効果が得られなくなるおそれがあった。これに対し、本実施形態によれば、各VMにおいてスリープ状態に遷移する遷移タイミングに比較的大きな時間差が生じる場合であっても、上述したように多段階の省電力遷移が行われるため、十分な省電力効果を得ることができる。
【0051】
本実施形態の状態管理テーブルは、複数のVM11~14のそれぞれについての状態に関する情報を表すものであり、複数のVM11~14のうち少なくとも1つについてスリープ条件が満たされると更新されるようになっている。このような状態管理テーブルによれば、VM毎のスリープ状態を管理することが可能となり、本実施形態のようにマイコン3上に複数のVM11~14が搭載された状態において前述した多段階の省電力遷移の制御を実現できる。
【0052】
本実施形態のマイコン3は、そのハードウェアとして、CPU4、5と、CAN通信I/F6、Ethernet通信I/F7およびタイマー8といったペリフェラルと、を備える。そして、本実施形態のアクセス管理テーブルは、CPU4、5および各ペリフェラルに関する情報と、それらにアクセスする複数のVM11~14のそれぞれを識別するための識別情報であるVMIDと、が紐付けられたものとなっている。このようにすれば、VM毎にアクセスするHW情報を持つことが可能となり、段階的にマイコン3の省電力状態を遷移させることを実現できる。
【0053】
(その他の実施形態)
なお、本発明は上記し且つ図面に記載した実施形態に限定されるものではなく、その要旨を逸脱しない範囲で任意に変形、組み合わせ、あるいは拡張することができる。
上記実施形態で示した数値などは例示であり、それに限定されるものではない。
本発明は、車両に搭載される統合ECU1を構成するマイコン3の状態遷移を管理する用途に限らず、複数の仮想マシンを動作させるコンピュータの状態遷移を管理する用途全般に適用することができる。
【0054】
本開示は、実施例に準拠して記述されたが、本開示は当該実施例や構造に限定されるものではないと理解される。本開示は、様々な変形例や均等範囲内の変形をも包含する。加えて、様々な組み合わせや形態、さらには、それらに一要素のみ、それ以上、あるいはそれ以下、を含む他の組み合わせや形態をも、本開示の範疇や思想範囲に入るものである。
【0055】
本開示に記載の制御部及びその手法は、コンピュータプログラムにより具体化された一つ乃至は複数の機能を実行するようにプログラムされたプロセッサ及びメモリーを構成することによって提供された専用コンピュータにより、実現されてもよい。あるいは、本開示に記載の制御部及びその手法は、一つ以上の専用ハードウェア論理回路によってプロセッサを構成することによって提供された専用コンピュータにより、実現されてもよい。もしくは、本開示に記載の制御部及びその手法は、一つ乃至は複数の機能を実行するようにプログラムされたプロセッサ及びメモリーと一つ以上のハードウェア論理回路によって構成されたプロセッサとの組み合わせにより構成された一つ以上の専用コンピュータにより、実現されてもよい。また、コンピュータプログラムは、コンピュータにより実行されるインストラクションとして、コンピュータ読み取り可能な非遷移有形記録媒体に記憶されていてもよい。
【符号の説明】
【0056】
1…統合ECU、2…ハイパーバイザー、3…マイクロコンピュータ、4、5…CPU、6…CAN通信インターフェース、7…Ethernet通信I/F、8…タイマー、11~14…仮想マシン。