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