(57)【特許請求の範囲】
【請求項１】
車載される制御装置に搭載され、単一のコアのリソースを時分割して使用することで仮想的に複数のコアが存在しているように動作するマイクロコンピュータであって、
当該マイクロコンピュータにおいて仮想的に存在しているコアを仮想コアとして、複数の前記仮想コアのそれぞれについて予め設定されたコア起動条件が成立したか否かを判断し、前記コア起動条件が成立したと判断した場合に、成立した前記コア起動条件に対応する前記仮想コアを起動させる処理を実行するコア起動手段と、
複数の前記仮想コアのそれぞれについて予め設定されたコア停止条件が成立したか否かを判断し、前記コア停止条件が成立したと判断した場合に、成立した前記コア停止条件に対応する前記仮想コアの動作を停止させる処理を実行するコア停止手段とを備え、
前記コア起動手段を優先するが、並列に他の処理を実行することを可能とした
ことを特徴とするマイクロコンピュータ。
【請求項２】
当該マイクロコンピュータは、
当該マイクロコンピュータが起動した直後の予め設定された起動後優先期間内において、前記コア起動手段が実行する処理を、その他の処理よりも優先して実行させる
ことを特徴とする請求項１に記載のマイクロコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のコアを仮想的に搭載するマイクロコンピュータに関する。
【背景技術】
【０００２】
近年、車両に搭載される電子制御装置（以下、ＥＣＵという）の個数の増大に伴うＥＣＵ開発工数の増加に対応するために、複数のＥＣＵの機能を単一のマイクロコンピュータ（以下、マイコンという）に統合することによりＥＣＵ開発の効率化を図る手法が検討されている（例えば、非特許文献１を参照）。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】"２００７年度期末報告書"、第４頁、［online］、株式会社デンソー、［平成２３年４月２２日検索］、インターネット＜URL: http://www.denso.co.jp/ja/investors/financial/report/files/business2008#3.pdf＞
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、ＥＣＵの機能（以下、ＥＣＵ機能という）は、機能毎に動作開始条件および動作停止条件が異なる。例えば、ＩＧスイッチがオンになると動作が開始しＩＧスイッチがオフになると動作が停止する機能、および車載バッテリの電源がＥＣＵに供給されると動作が開始し電源供給がなくなるまで動作が継続する機能などがある。
【０００５】
なお、ＥＣＵ機能の動作開始および動作停止はそれぞれ、マイコンの動作開始および動作停止によって実現されることが多い。しかし、動作開始条件および動作停止条件が異なる複数のＥＣＵ機能を単一のマイコンに統合すると、単一のマイコンに統合された全てのＥＣＵ機能について動作開始条件および動作停止条件を満たすことができない。そしてＥＣＵ機能は、その機能において設定された動作開始条件を満たしていない状態で動作すると、不具合を引き起こす可能性がある。このため、統合先のマイコンの動作開始条件および動作停止条件と一致しないＥＣＵ機能について、不具合を回避するために制御ロジックを修正する必要が生じ、ＥＣＵ開発の工数が増大するという問題があった。
【０００６】
本発明は、こうした問題に鑑みてなされたものであり、複数のＥＣＵ機能を単一のマイコンに統合する際における開発工数の増大を抑制することができる技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するためになされた請求項１に記載のマイクロコンピュータでは、車載される制御装置に搭載され、単一のコアのリソースを時分割して使用することで仮想的に複数のコアが存在しているように動作し、当該マイクロコンピュータにおいて仮想的に存在しているコアを仮想コアとして、コア起動手段が、複数の仮想コアのそれぞれについて予め設定されたコア起動条件が成立したか否かを判断し、コア起動条件が成立したと判断した場合に、成立したコア起動条件に対応する仮想コアを起動させる処理を実行するとともに、コア停止手段が、複数の仮想コアのそれぞれについて予め設定されたコア停止条件が成立したか否かを判断し、コア停止条件が成立したと判断した場合に、成立したコア停止条件に対応する仮想コアの動作を停止させる処理を実行する。そして、請求項１に記載のマイクロコンピュータは、コア起動手段を優先するが、並列に他の処理を実行することを可能としたことを特徴とする。
【０００８】
このように構成されたマイクロコンピュータでは、仮想的に複数のコア（仮想コア）が存在しているように動作するため、複数のＥＣＵ機能のそれぞれを各仮想コアに割り当てることにより、複数のＥＣＵ機能を単一のマイクロコンピュータに統合することができる。そして、コア起動手段およびコア停止手段が、複数の仮想コアのそれぞれについての起動および動作停止を行う。このため、マイクロコンピュータの起動および動作停止がコア起動条件およびコア停止条件となっていない仮想コア（以下、起動停止条件相違コアという）について、この起動停止条件相違コアに対応したコア起動条件およびコア停止条件をコア起動手段側およびコア停止手段側で設定しておけば、コア起動条件およびコア停止条件がマイクロコンピュータと相違していることに対応した制御ロジックの修正が起動停止条件相違コア側で不要となり、起動停止条件相違コア側で制御ロジックを修正する場合と比較して修正量が減少する。これにより、複数の仮想コアを用いて複数のＥＣＵ機能を単一のマイクロコンピュータに統合する際における開発工数の増大を抑制することができる。
【０００９】
また請求項１に記載のマイクロコンピュータにおいて、請求項２に記載のように、当該マイクロコンピュータは、当該マイクロコンピュータが起動した直後の予め設定された起動後優先期間内において、コア起動手段が実行する処理を、その他の処理よりも優先して実行させるようにしてもよい。
【００１０】
例えば、起動後優先期間内において単一のコアのリソースをコア起動手段のみに割り当て、起動後優先期間が終了した後に複数の仮想コアを動作させるようにすることにより、起動後優先期間内においてコア起動手段が優先して実行されるようにしてもよい。
【００１１】
このように構成されたマイクロコンピュータでは、マイクロコンピュータが起動した直後の起動後優先期間内においてコア起動手段が優先して実行されるため、マイクロコンピュータが起動した直後に起動する必要がある仮想コアの起動が、コア起動手段以外の処理の実行のために遅れてしまうといった事態の発生を抑制することができる。
【図面の簡単な説明】
【００１２】
【図１】マイコン１の構成を示すブロック図である。
【図２】ハイパーバイザ処理を示すフローチャートである。
【図３】コアマネージャ処理を示すフローチャートである。
【図４】仮想コア２１〜２４の起動および動作停止の手順を説明するタイミングチャートである。
【発明を実施するための形態】
【００１３】
以下に本発明の実施形態を図面とともに説明する。
図１は、本実施形態のマイクロコンピュータ（以下、マイコンという）１の構成を示すブロック図である。
【００１４】
マイコン１は、車両に搭載されており、図１に示すように、プログラムを実行するための演算ユニットおよびレジスタなどからなるマイコンコア（以下、単にコアという）１１と、ＩＧスイッチ信号等の外部からの各種スイッチ信号を入力する機能を有するＩ／Ｏポート１２とを内蔵している。
【００１５】
これらのうちコア１１は、車載バッテリ（不図示）からの電源供給を受けると起動するように構成されている。またコア１１は、コア１１のリソースをクロック単位で時分割して使用することで仮想的に複数のコアが存在しているように動作させるＣＰＵ仮想化技術を利用して、仮想コア２１，２２，２３，２４を並列動作させる。
【００１６】
さらにコア１１は、マイコン電源投入時における各仮想コアの動作状態を管理する機能３０（以下、ハイパーバイザ３０という）を搭載している。
また仮想コア２１は、マイコン電源投入時以外において各仮想コアの動作状態を管理する機能３１（以下、コアマネージャ３１という）を搭載している。またコア２２，２３，２４はそれぞれ、例えば電源制御機能３２、始動制御機能３３、充電制御機能３４を搭載している。
【００１７】
このように構成されたマイコン１のコア１１に搭載されたハイパーバイザ３０と、仮想コア２１に搭載されたコアマネージャ３１がそれぞれ実行するハイパーバイザ処理とコアマネージャ処理の手順を、図２と図３を用いて説明する。図２はハイパーバイザ処理を示すフローチャート、図３はコアマネージャ処理を示すフローチャートである。
【００１８】
ハイパーバイザ処理は、車載バッテリからの電源供給を受けてコア１１が起動すると開始される処理であり、このハイパーバイザ処理が実行されると、コア１１は、図２に示すように、まずＳ１０にて、仮想コア２２のコア起動条件が成立したか否かを判断する。なお、本実施形態における仮想コア２２のコア起動条件は、マイコン１が車載バッテリからの電源供給を受けていることである。
【００１９】
ここで、仮想コア２２のコア起動条件が成立している場合には（Ｓ１０：ＹＥＳ）、Ｓ２０にて、仮想コア２２の動作状態を「起動」に設定して、Ｓ４０に移行する。一方、仮想コア２２のコア起動条件が不成立である場合には（Ｓ１０：ＮＯ）、Ｓ３０にて、仮想コア２２の動作状態を「停止」に設定して、Ｓ４０に移行する。
【００２０】
そしてＳ４０に移行すると、仮想コア２３のコア起動条件が成立したか否かを判断する。なお、本実施形態における仮想コア２３のコア起動条件は、ＩＧスイッチがオンであることである。
【００２１】
ここで、仮想コア２３のコア起動条件が成立している場合には（Ｓ４０：ＹＥＳ）、Ｓ５０にて、仮想コア２３の動作状態を「起動」に設定して、Ｓ７０に移行する。一方、仮想コア２３のコア起動条件が不成立である場合には（Ｓ４０：ＮＯ）、Ｓ６０にて、仮想コア２３の動作状態を「停止」に設定して、Ｓ７０に移行する。
【００２２】
そしてＳ７０に移行すると、仮想コア２４のコア起動条件が成立したか否かを判断する。なお、本実施形態における仮想コア２４のコア起動条件は、ＩＧスイッチがオンであることである。
【００２３】
ここで、仮想コア２４のコア起動条件が成立している場合には（Ｓ７０：ＹＥＳ）、Ｓ８０にて、仮想コア２４の動作状態を「起動」に設定して、Ｓ１００に移行する。一方、仮想コア２４のコア起動条件が不成立である場合には（Ｓ７０：ＮＯ）、Ｓ９０にて、仮想コア２４の動作状態を「停止」に設定して、Ｓ１００に移行する。
【００２４】
そしてＳ１００に移行すると、コア１１を仮想コアモードに移行させて、ハイパーバイザ処理を終了する。なお仮想コアモードとは、仮想コア２１，２２，２３，２４を並列動作させるモードである。換言すると、コア１１が起動してからハイパーバイザ処理が終了するまでは、ハイパーバイザ処理のみが実行され、ハイパーバイザ処理以外の処理は実行されない。
【００２５】
そして仮想コアモードに移行すると、仮想コア２１と、仮想コア２２，２３，２４のうちＳ１０〜Ｓ９０の処理で動作状態が「起動」に設定された仮想コアとが起動して、起動した仮想コアが並列動作する。
【００２６】
次に、コアマネージャ処理は、仮想コア２１が起動すると開始される処理であり、このコアマネージャ処理が実行されると、仮想コア２１は、図３に示すように、まずＳ２１０にて、仮想コア２２が動作中であるか否かを判断する。ここで、仮想コア２２が動作中である場合には（Ｓ２１０：ＹＥＳ）、Ｓ２２０にて、仮想コア２２のコア停止条件が成立したか否かを判断する。なお、本実施形態における仮想コア２２のコア停止条件は、マイコン１が車載バッテリからの電源供給を受けていないことである。
【００２７】
ここで、仮想コア２２のコア停止条件が成立している場合には（Ｓ２２０：ＹＥＳ）、Ｓ２３０にて、仮想コア２２の動作状態を「停止」に設定して、Ｓ２６０に移行する。これにより、仮想コア２２は動作を停止する。一方、仮想コア２２のコア停止条件が不成立である場合には（Ｓ２２０：ＮＯ）、Ｓ２６０に移行する。
【００２８】
またＳ２１０にて、仮想コア２２が動作停止中である場合には（Ｓ２１０：ＮＯ）、Ｓ２４０にて、仮想コア２２のコア起動条件が成立したか否かを判断する。ここで、仮想コア２２のコア起動条件が成立している場合には（Ｓ２４０：ＹＥＳ）、Ｓ２５０にて、仮想コア２２の動作状態を「起動」に設定して、Ｓ２６０に移行する。これにより、仮想コア２２は起動する。一方、仮想コア２２のコア起動条件が不成立である場合には（Ｓ２４０：ＮＯ）、Ｓ２６０に移行する。
【００２９】
そしてＳ２６０に移行すると、仮想コア２３が動作中であるか否かを判断する。ここで、仮想コア２３が動作中である場合には（Ｓ２６０：ＹＥＳ）、Ｓ２７０にて、仮想コア２３のコア停止条件が成立したか否かを判断する。なお、本実施形態における仮想コア２３のコア停止条件は、ＩＧスイッチがオフであることである。
【００３０】
ここで、仮想コア２３のコア停止条件が成立している場合には（Ｓ２７０：ＹＥＳ）、Ｓ２８０にて、仮想コア２３の動作状態を「停止」に設定して、Ｓ３１０に移行する。これにより、仮想コア２３は動作を停止する。一方、仮想コア２３のコア停止条件が不成立である場合には（Ｓ２７０：ＮＯ）、Ｓ３１０に移行する。
【００３１】
またＳ２６０にて、仮想コア２３が動作停止中である場合には（Ｓ２６０：ＮＯ）、Ｓ２９０にて、仮想コア２３のコア起動条件が成立したか否かを判断する。ここで、仮想コア２３のコア起動条件が成立している場合には（Ｓ２９０：ＹＥＳ）、Ｓ３００にて、仮想コア２３の動作状態を「起動」に設定して、Ｓ３１０に移行する。これにより、仮想コア２３は起動する。一方、仮想コア２３のコア起動条件が不成立である場合には（Ｓ２９０：ＮＯ）、Ｓ３１０に移行する。
【００３２】
そしてＳ３１０に移行すると、仮想コア２４が動作中であるか否かを判断する。ここで、仮想コア２４が動作中である場合には（Ｓ３１０：ＹＥＳ）、Ｓ３２０にて、仮想コア２４のコア停止条件が成立したか否かを判断する。なお、本実施形態における仮想コア２４のコア停止条件は、ＩＧスイッチがオフであることである。
【００３３】
ここで、仮想コア２４のコア停止条件が成立している場合には（Ｓ３２０：ＹＥＳ）、Ｓ３３０にて、仮想コア２４の動作状態を「停止」に設定して、Ｓ２１０に移行し、上述の処理を繰り返す。これにより、仮想コア２４は動作を停止する。一方、仮想コア２４のコア停止条件が不成立である場合には（Ｓ３２０：ＮＯ）、Ｓ２１０に移行し、上述の処理を繰り返す。
【００３４】
またＳ３１０にて、仮想コア２４が動作停止中である場合には（Ｓ３１０：ＮＯ）、Ｓ３４０にて、仮想コア２４のコア起動条件が成立したか否かを判断する。ここで、仮想コア２４のコア起動条件が成立している場合には（Ｓ３４０：ＹＥＳ）、Ｓ３５０にて、仮想コア２４の動作状態を「起動」に設定して、Ｓ２１０に移行し、上述の処理を繰り返す。これにより、仮想コア２４は起動する。一方、仮想コア２４のコア起動条件が不成立である場合には（Ｓ３４０：ＮＯ）、Ｓ２１０に移行し、上述の処理を繰り返す。
【００３５】
次に、マイコン１が起動してからの仮想コア２１〜２４の起動と動作停止を図４を用いて説明する。図４は、仮想コア２１〜２４の起動および動作停止の手順を説明するタイミングチャートである。
【００３６】
図４に示すように、車載バッテリが接続されてマイコン１に電源が供給されると（時刻ｔ１を参照）、マイコン１が起動して動作を開始する（時刻ｔ２を参照）。これにより、ハイパーバイザ処理が開始される。そして、ハイパーバイザ処理により、仮想コア２２，２３，２４の動作状態がそれぞれ「起動」、「停止」、「停止」に設定されるため、ハイパーバイザ処理が終了すると、コア１１では仮想コアモードに移行して、仮想コア２１，２２が並列動作を行う（時刻ｔ３を参照）。
【００３７】
その後ＩＧスイッチがオンになると（時刻ｔ４を参照）、仮想コア２１が実行するコアマネージャ処理により、仮想コア２３，２４の動作状態が「起動」に設定されるため、仮想コア２３，２４が起動して、仮想コア２１，２２，２３，２４が並列動作を行う。さらにＩＧスイッチがオフになると（時刻ｔ５を参照）、コアマネージャ処理により、仮想コア２３，２４の動作状態が「停止」に設定されるため、仮想コア２３，２４が動作を停止して、仮想コア２１，２２が並列動作を行う。
【００３８】
このように構成されたマイコン１では、単一のコア１１のリソースを時分割して使用することで仮想的に複数のコアが存在しているように動作し、複数の仮想コア２２，２３，２４のそれぞれについて予め設定されたコア起動条件が成立したか否かを判断し、コア起動条件が成立したと判断した場合に、成立したコア起動条件に対応する仮想コアを起動させる処理（Ｓ１０〜Ｓ１００，Ｓ２４０，Ｓ２５０，Ｓ２９０，Ｓ３００，Ｓ３４０，Ｓ３５０）を実行するとともに、複数の仮想コア２２，２３，２４のそれぞれについて予め設定されたコア停止条件が成立したか否かを判断し、コア停止条件が成立したと判断した場合に、成立したコア停止条件に対応する仮想コアの動作を停止させる処理を実行する（Ｓ２２０，Ｓ２３０，Ｓ２７０，Ｓ２８０，Ｓ３２０，Ｓ３３０）。
【００３９】
このように構成されたマイコン１では、ハイパーバイザ処理およびコアマネージャ処理が、複数の仮想コア２２，２３，２４のそれぞれについての起動および動作停止を行う。このため、マイコン１の起動および動作停止がコア起動条件およびコア停止条件となっていないコア（以下、起動停止条件相違コアという）について、この起動停止条件相違コアに対応したコア起動条件およびコア停止条件をハイパーバイザ処理およびコアマネージャ処理で設定しておけば、コア起動条件およびコア停止条件がマイコン１と相違していることに対応した制御ロジックの修正が起動停止条件相違コア側で不要となり、起動停止条件相違コア側で制御ロジックを修正する場合と比較して修正量が減少する。これにより、複数の仮想コアを用いて複数のＥＣＵ機能をマイコン１に統合する際における開発工数の増大を抑制することができる。
【００４０】
また、マイコン１は、マイコン１が起動してからハイパーバイザ処理が終了するまでの期間内において、ハイパーバイザ処理のみが実行され、ハイパーバイザ処理以外の処理は実行されない。これにより、マイクロコンピュータが起動した直後に起動する必要がある仮想コア２１，２２の起動が、ハイパーバイザ処理以外の処理の実行のために遅れてしまうといった事態の発生を抑制することができる。
【００４１】
以上説明した実施形態において、Ｓ１０〜Ｓ１００，Ｓ２４０，Ｓ２５０，Ｓ２９０，Ｓ３００，Ｓ３４０，Ｓ３５０の処理は本発明におけるコア起動手段、Ｓ２２０，Ｓ２３０，Ｓ２７０，Ｓ２８０，Ｓ３２０，Ｓ３３０の処理は本発明におけるコア停止手段、マイコン１が起動してからハイパーバイザ処理が終了するまでの期間は本発明における起動後優先期間である。
【００４２】
以上、本発明の一実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、本発明の技術的範囲に属する限り種々の形態を採ることができる。
例えば上記実施形態においては、マイコン１が起動してからハイパーバイザ処理が終了するまでコア１１においてハイパーバイザ処理以外の処理は実行されないものを示したが、ハイパーバイザ処理を優先して実行させることにより、コア１１においてハイパーバイザ処理とハイパーバイザ処理以外の処理とを並列に動作させるようにしてもよい。
【００４３】
また上記実施形態においては、マイコン１に４個の仮想コアが搭載されているものを示したが、仮想コア数はこれに限定されるものではなく２個以上であればよい。
また上記実施形態においては、コア起動条件が「車載バッテリからの電源供給を受けていること」または「ＩＧスイッチがオンであること」といったマイコン外部からの情報であるものを示したが、これに限定されるものではなく、マイコン内部の情報（例えば、内部リソースの状態）を用いてもよく、マイコン外部からの情報とマイコン内部の情報とを複合的に用いてもよい。
【符号の説明】
【００４４】
１…マイコン、１１…コア、１２…Ｉ／Ｏポート、２１，２２，２３，２４…仮想コア、３０…ハイパーバイザ、３１…コアマネージャ
【図１】
0005561241.tif 000002
【図２】
0005561241.tif 000003
【図３】
0005561241.tif 000004
【図４】
0005561241.tif 000005