(57)【要約】【課題】マルチコアＣＰＵ上で複数のＯＳが動作する電子制御装置において、状況に応じて有効にコアの割当て方式を切換える。【解決手段】電子制御装置１は、複数のコア１１を有するマルチコアＣＰＵ１０を備える。マルチコアＣＰＵ１０上で複数のプログラムシステム１３〜１５が動作する。車両状態検知部３０は、電子制御装置１が搭載される車両の状態を検知する。記憶部２０は、定義情報を記憶する。定義情報は、車両状態ごとに各プログラムシステムに割当てるべきコア１１の要件を表す情報である。ハイパーバイザ１２は、各プログラムシステムにコア１１を割当てるように構成されている。このハイパーバイザ１２は、車両状態の変化に応じて、定義情報に従って各プログラムシステムに割当てるコア１１を変更する。各プログラムシステムのＯＳは、ハイパーバイザ１２により割当てられるコア１１を当該プログラムシステムが実行するタスクに割当てる。【選択図】  図１
2019179397.tif 000002
【特許請求の範囲】
【請求項１】
複数のコア（１１）を有するマルチコアＣＰＵ（１０）を備え、前記マルチコアＣＰＵ上で、オペレーティングシステムと当該オペレーティングシステム上で動作するアプリケーションプログラムとを含む複数のプログラムシステム（１３，１４，１５）が動作するように構成された電子制御装置（１）であって、
前記電子制御装置が搭載されるシステムの状態を取得するように構成された状態取得部（３０）と、
前記状態取得部において取得され得る特定の状態ごとに、各プログラムシステムがタスクを実行するために各プログラムシステムに割当てるべきコアの要件を表す情報である定義情報を記憶するように構成された記憶部（２０）と、
前記複数のプログラムシステムのタスクを前記複数のコア上で並列に実行可能にするため、各プログラムシステムがタスクの実行に使用するコアを割当てるように構成された第１割当部（１２）と、
各プログラムシステムのオペレーティングシステムにおいて、前記第１割当部により割当てられる１又は複数のコアを当該プログラムシステムが実行する１又は複数のタスクそれぞれに割当てるように構成された第２割当部（１３１，１４１，１５１）とを備え、
前記第１割当部は、前記状態取得部により取得されたシステムの状態の変化に応じて、前記記憶部に記憶されている定義情報で表される定義に従って、各プログラムシステムに割当てるコアを変更するように構成されている、
電子制御装置。
【請求項２】
前記状態取得部により取得されたシステムの状態の変化に対して、前記定義情報に基づき、あるプログラムシステムが当該変化前の状態において使用していたコアを、当該変化後の状態において当該プログラムシステムが使用できなくなる場合、
まず先に、当該プログラムシステムのオペレーティングシステムにおいて、前記第２割当部が、当該変化後の状態において使用できなくなるコアに対するタスクの割り当てを停止し、
その後に、前記第１割当部が、各プログラムシステムにコアを割当てるように構成されている、
請求項１に記載の電子制御装置。
【請求項３】
前記状態取得部により取得されたシステムの状態の変化に対して、前記定義情報に基づき、あるプログラムシステムが当該変化前の状態において使用していないコアを、当該変化後の状態において当該プログラムシステムが使用できるようになる場合、
まず先に、前記第１割当部が、各プログラムシステムにコアを割当て、
その後に、新たに使用できるコアがあるプログラムシステムのオペレーティングシステムにおいて、前記第２割当部が、当該コアをタスクに割り当てるように構成されている、
請求項１又は請求項２に記載の電子制御装置。
【請求項４】
前記定義情報は、各プログラムシステムにおいて前記特定の状態ごとに生じ得る処理負荷を許容でき、かつ、各プログラムシステムにおける前記特定の状態ごとのコアの使用態様の制約を満足するようにコアの割当て方式が規定されている、
請求項１ないし請求項３の何れか１項に記載の電子制御装置。
【請求項５】
前記第１割当部が、あるコアを単独のプログラムシステムに割当てた場合、当該単独のプログラムシステムが、当該コアを占用するように構成されている、
請求項１ないし請求項４の何れか１項に記載の電子制御装置。
【請求項６】
前記第１割当部が、あるコアを複数のプログラムシステムに割当てた場合、当該複数の
プログラムシステムが、当該コアを共用するように構成されている、
請求項１ないし請求項５の何れか１項に記載の電子制御装置。
【請求項７】
前記電子制御装置が搭載されるシステムは車両であり、
前記状態取得部は、前記車両の作動状態を表す情報を取得するように構成されている、
請求項１ないし請求項６の何れか１項に記載の電子制御装置。
【請求項８】
前記状態取得部により取得される前記車両の作動状態には、起動時、駐車時、停車時、及び走行時の少なくとも何れかの状態が含まれる、
請求項７に記載の電子制御装置。
【請求項９】
複数のコアを有するマルチコアＣＰＵを備え、前記マルチコアＣＰＵ上で、オペレーティングシステムと当該オペレーティングシステム上で動作するアプリケーションプログラムとを含む複数のプログラムシステムが動作するように構成された電子制御装置において実行されるマルチコアの割当て方法であって、
前記電子制御装置が搭載されるシステムの状態を取得し、
前記複数のプログラムシステムのタスクを前記複数のコア上で並列に実行可能にするため、各プログラムシステムがタスクの実行に使用するコアを割当て、
取得され得る特定の状態ごとに各プログラムシステムがタスクを実行するために各プログラムシステムに割当てるべきコアの要件を表す情報である定義情報に従って、前記システムの状態の変化に応じて各プログラムシステムに割当てるコアを変更し、
各プログラムシステムのオペレーティングシステムにおいて、割当てられる１又は複数のコアを当該プログラムシステムが実行する１又は複数のタスクそれぞれに割当てる、
マルチコアの割当て方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、複数のコアを有するマルチコアＣＰＵを備える電子制御装置におけるコアの割当て方式に関する。
【背景技術】
【０００２】
特許文献１には、マルチコアＣＰＵを搭載したマイコンに組込まれたオペレーティングシステム（以下、ＯＳ）が、故障診断時に複数のコアにタスクを割当てる方式を切換える技術が記載されている。具体的には、ＯＳは、複数のコアをそれぞれ個別に、Symmetric Multi-Processing（以下、ＳＭＰ）、及びAsymmetric Multi-Processing（以下、ＡＭＰ）の処理モードの、一方から他方に切替えることができる。ＳＭＰは、各コアの処理負荷に応じてタスクを動的に割当てる割当て方式である。ＡＭＰは、コアに割当てるタスクが固定的に決められている割当て方式である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第５３１６１２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
例えば、車載用の電子制御装置の分野において、単独のコンピュータシステムにおいて、ハイパーバイザにより複数のＯＳの動作を統合させる技術の適用が進んでいる。しかしながら、上述の背景技術は、単独のＯＳが組込まれているシステムにおけるコアの割当て方式の制御に関するものである。ハイパーバイザ上で動作する複数のＯＳが組込まれたコンピュータシステムでは、単独のＯＳに対する割当て方式の制御のみでなく、複数のＯＳ間の割当て方式の制御を考慮する必要がある。そのため、上述の背景技術は、ハイパーバイザ上で動作する複数のＯＳが組込まれたコンピュータシステムには、そのままでは適用できない。
【０００５】
例えば、１つのコアを複数のＯＳで共用している場合には、単独のＯＳについてのみコアの割当てを制御するだけでは不十分である。つまり、ハイパーバイザによる複数のＯＳに対するコアの割当て方式と、各ＯＳ上で動作するタスクに対するコアの割当て方式とを協調して実行する必要がある。
【０００６】
また、ハイパーバイザ上で動作するＯＳでＡＭＰが必須となるタスクを扱う際には、当該が属するＯＳが使用するコアを静的に固定する必要がある。しかし、当該タスクには、稼働や停止の状態変化や処理負荷の増減が起こり得るため、コアを常時固定的に割当てる方式では、当該タスクが停止した場合や処理負荷が低下した場合に、コアの空いたリソースを有効に活用できない。
【０００７】
また、故障診断時に限らず、電子制御システムが搭載される車両等のシステムの状態に応じて、各ＯＳのタスクの処理負荷が増減することが考えられる。そのため、システムの状態の変化に応じて複数のＯＳによって複数のコアのリソースを有効に活用するための割当て方式を実現することが望まれる。
【０００８】
そこで、本開示の一局面は、マルチコアＣＰＵを備え、マルチコアＣＰＵ上で複数のＯＳが動作する電子制御装置において、状況に応じて有効にコアの割当て方式を切換えるための技術を提供することが好ましい。
【課題を解決するための手段】
【０００９】
本開示の一態様に係る電子制御装置（１）は、複数のコア（１１）を有するマルチコアＣＰＵ（１０）を備える。このマルチコアＣＰＵ上で、オペレーティングシステムと当該オペレーティングシステム上で動作するアプリケーションプログラムとを含む複数のプログラムシステム（１３，１４，１５）が動作する。この電子制御装置は、状態取得部（３０）と、記憶部（２０）と、第１割当部（１２）と、第２割当部（１３１，１４１，１５１）とを備える。
【００１０】
なお、この欄及び特許請求の範囲に記載した括弧内の符号は、一つの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、本開示の技術的範囲を限定するものではない。
【００１１】
状態取得部は、電子制御装置が搭載されるシステムの状態を取得するように構成されている。記憶部は、定義情報を記憶するように構成されている。この定義情報は、状態取得部において取得され得る特定の状態ごとに、各プログラムシステムがタスクを実行するために各プログラムシステムに割当てるべきコアの要件を表す情報である。
【００１２】
第１割当部は、複数のプログラムシステムのタスクを複数のコア上で並列に実行可能にするため、各プログラムシステムがタスクの実行に使用するコアを割当てるように構成されている。また、第１割当部は、状態取得部により取得されたシステムの状態の変化に応じて、記憶部に記憶されている定義情報で表される定義に従って、各プログラムシステムに割当てるコアを変更するように構成されている。第２割当部は、各プログラムシステムのオペレーティングシステムにおいて、第１割当部により割当てられる１又は複数のコアを当該プログラムシステムが実行する１又は複数のタスクそれぞれに割当てるように構成されている。
【００１３】
上述のような構成によれば、電子制御装置が搭載されるシステムの状態に応じて、複数のＯＳ間で協調して各ＯＳによるタスクを複数のコアに動的に割当てることができる。このようにすることで、システムの状態に応じて変化し得る処理負荷の増減に対して、各コアのリソースを有効に活用することが可能になる。
【図面の簡単な説明】
【００１４】
【図１】実施形態の電子制御装置の主要な構成を表すブロック図である。
【図２】各プログラムシステムが担う機能の一例を表す図である。
【図３】各プログラムシステムの最大処理量の一例を表す図である。
【図４】第１システムにおけるタスクの動作要件の一例を表す図である。
【図５】第２システムにおけるタスクの動作要件の一例を表す図である。
【図６】第３システムにおけるタスクの動作要件の一例を表す図である。
【図７】各システムに対するコアの割当て方式の定義の一例を表す図である。
【図８】ハイパーバイザ処理の手順を表すフローチャートである。
【図９】ＯＳ処理の手順を表すフローチャートである。
【図１０】車両の駐車時における割当て方式の一例を表す図である。
【図１１】車両の停止時における割当て方式の一例を表す図である。
【図１２】車両の走行時における割当て方式の一例を表す図である。
【発明を実施するための形態】
【００１５】
以下、本開示の例示的な実施形態を図面に基づいて説明する。なお、本開示は下記の実施形態に限定されるものではなく様々な態様にて実施することが可能である。
［電子制御装置の構成の説明］
実施形態の電子制御装置１の構成について、図１を参照しながら説明する。電子制御装置１は、自動車等の車両に搭載され、当該車両に搭載された機器の制御や、車外通信、自動運転等の走行制御に関する情報処理を行う。電子制御装置１は、マルチコアＣＰＵ１０や、図示しないＲＡＭ、ＲＯＭ、フラッシュメモリ等の半導体メモリ、入出力インタフェース等を中心に構成された情報処理装置である。また、電子制御装置１は、記憶部２０と、車両状態検知部３０とを備える。
【００１６】
電子制御装置１は、例えば、コンピュータシステムとしての機能が集約されたマイクロコントローラ等により具現化される。電子制御装置１は、マルチコアＣＰＵ１０が、ＲＯＭや半導体メモリ等の実体的な記録媒体に格納されたプログラムを実行することにより実現される。
【００１７】
マルチコアＣＰＵ１０は、１つのパッケージ内に複数のプロセッサ・コア（以下、コア）が搭載された演算装置である。図１に例示されるとおり、マルチコアＣＰＵ１０は、符号１１で示される４つのコア０〜３を有する。以下、これら４つのコア０〜３を区別しないで説明する場合は、コア１１と表記する。また、４つのコア０〜３をそれぞれ区別して説明する場合は、それぞれコア０、コア１、コア２、コア３と表記する。
【００１８】
マルチコアＣＰＵ１０には、プログラムが実行されることによって実現される機能の構成要素として、ハイパーバイザ１２と、第１システム１３と、第２システム１４と、第３システム１５とが搭載されている。
【００１９】
ハイパーバイザ１２は、マルチコアＣＰＵ１０上で複数の仮想マシンを作成して並列に動作させ、作成された仮想マシン上でＯＳを動作させる制御プログラムである。このハイパーバイザ１２は、複数のＯＳを複数のコア上で並列に実行可能にするため、各ＯＳが使用するコアを動的に割当てるスケジューリングを実行する。ハイパーバイザ１２が実行する処理の手順については、後述する。
【００２０】
符号１３，１４，１５で示される第１〜３システムは、ハイパーバイザ１２により形成された仮想マシン上で動作するＯＳと、そのＯＳ上で動作するアプリケーションプログラムにより実行される複数のタスクとを含むプログラムシステムである。これらの第１〜３システムが、本開示における複数のプログラムシステムに相当する。以下の説明において第１〜３システムを特に区別しない場合、単にプログラムシステムと表記する。
【００２１】
第１システム１３には、符号１３１で示されるＯＳ１と、符号１３２で示されるｍ個のタスク１＿１、…タスク１＿ｍとが含まれる。第２システム１４には、符号１４１で示されるＯＳ２と、符号１４２で示されるｎ個のタスク２＿１、…タスク２＿ｎとが含まれる。第３システム１５には、符号１５１で示されるＯＳ３と、符号１４２で示される４個のタスク３＿１、タスク３＿２、タスク３＿３、及びタスク３＿４とが含まれる。以下の説明においてＯＳ１〜３を特に区別しない場合、単にＯＳと表記する。ＯＳは、複数のタスクを同時に実行する際に、互いに独立して動作できるようにハイパーバイザ１２により割当てられたコア１１のリソースを複数のタスクに割当てるスケジューリングを実行する。
【００２２】
各プログラムシステムがそれぞれ担当する機能の一例を図２に示す。図２に例示されるとおり、第１システム１３の各タスク１３２は、車両の現在地から目的地までのナビゲーションに関する情報処理を実行する。また、第２システム１４に関する各タスク１４２は、外部装置との間でデータをやり取りする無線通信に関する情報処理を実行する。また、第３システム１５に関する各タスク１５２は、車両の走行に関する運転操作を自動的に行う機能である自動運転に関する情報処理を実行する。
【００２３】
本実施形態では、各プログラムシステムにおいて、車両の状態（例えば、駐車、停止、走行）ごとに、各タスクによる情報処理の実行量の最大値である最大処理量がそれぞれ異なると想定としている。各プログラムシステムの最大処理量の一例を図３に示す。なお、図３において、駐車とは、例えば、車両がエンジンの稼働を停止した状態で止まっている状態を指す。停止とは、車両がエンジンを稼働させた状態で止まっているおり、即座に走行を再開可能な状態を指す。走行とは、車両が走行中である状態を指す。
【００２４】
図３に例示されるとおり、車両が駐車の状態のときには、第１システム１３の最大処理量が２００、第２システム１４の最大処理量が１００、第３システム１５の最大処理量が１００である。また、車両が停止の状態のときには、第１システム１３の最大処理量が１５０、第２システム１４の最大処理量が５０、第３システム１５の最大処理量が２００である。また、車両が走行の状態のときには、第１システム１３の最大処理量が５０、第２システム１４の最大処理量が５０、第３システム１５の最大処理量が３００である。
【００２５】
なお、図３の事例において、１つのコア１１が処理可能な最大処理量を１００とする。つまり、１つのプログラムシステムにおいて最大処理量が１００を超える場合、そのプログラムシステムのタスクの処理負荷を複数のコア１１に割当てる必要がある。また、１又は複数のコア１１の最大処理量を超えない範囲で、複数のプログラムシステムが当該１又は複数のコア１１を共用することができる。
【００２６】
つぎに、第１システム１３、第２システム１４及び第３システム１５におけるタスクの動作要件について、図４〜図６を参照しながら説明する。
（第１システムについて）図４に例示されるとおり、第１システム１３のタスク１＿１〜タスク１＿ｍは、駐車、停止、及び走行の各車両状態において全てＳＭＰによる動作が可能であると規定されている。すなわち、第１システム１３のＯＳ１は、処理負荷に応じて各タスクにコア１１を動的に割当てたり、他のＯＳとコア１１を時分割により共用することが可能である。あるいは、複数のプログラムシステムによるコア１１の共用は、各プログラムシステムに設定された優先度を基準に行ってもよい。
【００２７】
また、車両状態が駐車のとき、第１システム１３の最大処理量が２００であるから、最大処理量を満たすのに必要なコア１１の数は２つである。また、車両状態が停止のとき、第１システム１３の最大処理量が１５０であるから、最大処理量を満たすのに必要なコア１１の数は２つである。また、車両状態が走行のとき、第１システム１３の最大処理量が５０であるから、最大処理量を満たすのに必要なコア１１の数は１つである。
【００２８】
（第２システムについて）図５に例示されるとおり、第２システム１４のタスク２＿１〜タスク２＿ｎは、駐車、停止、及び走行の各車両状態において全てＳＭＰによる動作が可能であると規定されている。すなわち、第２システム１４のＯＳ２は、各タスクの処理負荷に応じてそれらのタスクにコア１１を動的に割当てたり、他のＯＳとコア１１を時分割により共用することが可能である。あるいは、複数のプログラムシステムによるコア１１の共用は、各プログラムシステムに設定された優先度を基準に行ってもよい。また、車両状態が駐車、停止、及び走行の何れの場合においても、第２システム１４の最大処理量が１００以下であるから、最大処理量を満たすのに必要なコア１１の数は１つである。
【００２９】
（第３システムについて）図６に例示されるとおり、第３システム１５のタスク３＿３及びタスク３＿４は、駐車、停止、及び走行の各車両状態において全てＳＭＰによる動作が可能であると規定されている。すなわち、第３システム１５のＯＳ３は、タスク３＿３及びタスク３＿４の処理負荷に応じてそれらのタスクにコア１１を動的に割当てることが可能である。
【００３０】
一方、タスク３＿１は、車両状態が駐車又は停止のときには動作せず、車両状態が走行のときにＡＭＰによる動作が必須であると規定されている。したがって、第３システム１５のＯＳ３は、車両状態が走行の場合、タスク３＿１に特定のコア１１を固定的に割当てる。また、タスク３＿２は、車両状態が駐車のときには動作せず、車両状態が停止又は走行のときにＡＭＰによる動作が必須であると規定されている。したがって、第３システム１５のＯＳ３は、車両状態が停止又は走行の場合、タスク３＿２に特定のコア１１を固定的に割当てる。
【００３１】
また、車両状態が駐車のとき、第３システム１５の最大処理量が１００であるから、最大処理量を満たすのに必要なコア１１の数は１つである。また、車両状態が停止のとき、第３システム１５の最大処理量が２００であるから、最大処理量を満たすのに必要なコア１１の数は２つである。また、車両状態が走行のとき、第３システム１５の最大処理量が３００であるから、最大処理量を満たすのに必要なコア１１の数は３つである。
【００３２】
図１のブロック図の説明に戻る。記憶部２０には、各プログラムシステムに対するコア１１の割当て方式を定義する定義情報が予め記憶されている。この定義情報には、車両状態に応じてハイパーバイザ１２が各プログラムシステムに割当てるべきコア１１の要件を表す情報が含まれる。ハイパーバイザ１２は、記憶部２０に記憶されている定義情報に基づいて、各プログラムシステムに対してコア１１を動的に割当てるスケジューリングを実行する。
【００３３】
定義情報は、図４〜図６に例示される各プログラムシステムの動作要件を満たすように設計されている。具体的には、タスクにおけるＳＭＰやＡＭＰの可否に関する制約、及び最大処理量に基づく必要コア数の要件を、車両状態ごとに全てのプログラムシステムについて満たすように、各プログラムシステムに割当てるべきコア１１の要件が規定されている。
【００３４】
図４〜図６に例示される動作要件を満たす定義情報の一例を、図７に示す。図７に例示される定義情報のテーブルには、駐車、停止、及び走行の車両状態ごとに、４つのコア０〜３が、どのプログラムシステムに割当てられるかを示す情報が記述されている。図７の事例では、車両状態が駐車のとき、第１システム１３がコア０及びコア１を占用し、第２システム１４がコア２を占用し、第３システム１５がコア３を占用するように、割り当て方式が定義されている。また、車両状態が停止のとき、第１システム１３及び第２システム１４が、コア０及びコア１を共用し、第３システム１５が、コア２及びコア３を占用するように、割当て方式が定義されている。また、車両状態が走行のとき、第１システム１３及び第２システム１４が、コア０を共用し、第３システム１５が、コア１、コア２及びコア３を占用するように、割当て方式が定義されている。
【００３５】
図１のブロック図の説明に戻る。車両状態検知部３０は、車両に搭載されたセンサや制御機器等から車両の稼働状況を表す情報を取得し、取得された情報に基づいて車両の現在の状態を検知する。具体的には、車両状態検知部３０は、車両状態として、駐車、停止、走行等の状態を検知する。変形例として、車両状態検知部３０は、起動時や定常時等の車両状態を検知するように構成されていてもよい。
【００３６】
［ハイパーバイザ処理の説明］
ハイパーバイザ１２が実行する処理の手順について、図８のフローチャートを参照しながら説明する。このハイパーバイザ処理は、各プログラムシステムに対するコア１１の割当て方式に関する。
【００３７】
Ｓ１００では、ハイパーバイザ１２は、車両状態が変化したか否かを判定する。Ｓ１０
０において判定の対象となる車両状態は、駐車、停車、及び走行である。ハイパーバイザ１２は、車両状態検知部３０による検知結果に基づいて、車両状態が以前の検知結果と異なる場合、肯定判定をする。車両状態が変化していない場合（Ｓ１００：ＮＯ）、ハイパーバイザ１２はＳ１００の処理を繰返す。一方、車両状態が変化した場合（Ｓ１００：ＹＥＳ）、ハイパーバイザ１２は処理をＳ１０２に移す。
【００３８】
Ｓ１０２では、ハイパーバイザ１２は、変化後の車両状態では使用できないコア１１を現在使用中であるプログラムシステムに対して、当該コア１１の使用を停止させる指示を、当該プログラムシステムに対して通知する。具体的には、ハイパーバイザ１２は、記憶部２０の定義情報を参照し、変化前の車両状態に対応する割当て方式と、変化後の車両状態に対応する割当て方式との相違から、変化後の車両状態では使用できないコア１１を現在使用中であるプログラムシステムを特定する。
【００３９】
Ｓ１０４では、ハイパーバイザ１２は、Ｓ１０２において通知がなされたＯＳから、スケジューリングの切換えが完了した旨の通知を受信したか否かを判定する。切換えの完了通知を受信していない場合（Ｓ１０４：ＮＯ）、ハイパーバイザ１２はＳ１０４の処理を繰返す。一方、切換え完了の通知を受信した場合（Ｓ１０４：ＹＥＳ）、ハイパーバイザ１２は処理をＳ１０６に移す。
【００４０】
Ｓ１０６では、ハイパーバイザ１２は、記憶部２０の定義情報を参照し、変化後の車両状態に対応する割当て方式に従って、各プログラムシステムのＯＳに対してコア１１を割当てるスケジューリングを変更する。次のＳ１０８では、ハイパーバイザ１２は、変化後の車両状態で新たに使用可能になるコア１１があるプログラムシステムに対して、当該コア１１の使用が可能である指示を、当該プログラムシステムに対して通知する。具体的には、ハイパーバイザ１２は、記憶部２０の定義情報を参照し、変化前の車両状態に対応する割当て方式と、変化後の車両状態に対応する割当て方式との相違から、変化後の車両状態で新たに使用可能になるコア１１があるプログラムシステムを特定する。
【００４１】
Ｓ１１０では、ハイパーバイザ１２は、Ｓ１０８において通知がなされたＯＳから、スケジューリングの切換えが完了した旨の通知を受信したか否かを判定する。切換え完了の通知を受信していない場合（Ｓ１１０：ＮＯ）、ハイパーバイザ１２はＳ１１０の処理を繰返す。一方、切換え完了の通知を受信した場合（Ｓ１１０：ＹＥＳ）、ハイパーバイザ１２は処理をＳ１００に戻す。
【００４２】
［ＯＳ処理の説明］
各プログラムシステムのＯＳが実行する処理の手順について、図９のフローチャートを参照しながら説明する。このＯＳ処理は、各プログラムシステムのタスクに対するコア１１の割当て方式に関する。
【００４３】
Ｓ２００では、ＯＳは、ハイパーバイザ１２から通知を受信したか否かを判定する。この通知は、上述のハイパーバイザ処理（図８参照）のＳ１０２又はＳ１０８において送信される通知である。ハイパーバイザ１２から通知を受信していない場合（Ｓ２００：ＮＯ）、ＯＳはＳ２００の処理を繰返す。一方、ハイパーバイザ１２から通知を受信した場合（Ｓ２００：ＹＥＳ）、ＯＳは処理をＳ２０２に移す。
【００４４】
Ｓ２０２では、ＯＳは、ハイパーバイザ１２から受信した通知に従い、動作中のタスクに対してコア１１を割当てるスケジューリングを変更する。具体的には、ハイパーバイザ１２から特定のコア１１の使用を停止する通知を受信した場合、ＯＳは、当該特定のコア１１に割当てられているタスクのプロセスを一時的に停止し、当該プロセスに関するデータを当該コア１１から退避させる。停止したタスクについては、使用可能な他のコア１１
を割当ててプロセスを再開する。また、ハイパーバイザ１２から新たに使用可能になるコア１１を指示する通知を受信した場合、ＯＳは、動作中のタスクが新たに使用可能なコア１１を利用できるように各タスクに対するスケジューリングを変更する。Ｓ２０４では、ＯＳは、スケジューリングの切換えが完了した旨をハイパーバイザ１２に通知する。Ｓ２０４の後、ＯＳは処理をＳ２００に戻す。
【００４５】
［割当て方式の具体例］
車両状態ごとのコア１１の割当方式の具体例について、図１０〜図１２を参照しながら説明する。
【００４６】
（駐車時）車両状態が駐車であるときのコア１１の割当方式の一例を、図１０に示す。図１０に例示されるとおり、駐車時において、ハイパーバイザ１２は、コア０及びコア１を第１システム１３に割当てる。第１システム１３は、割当てられたコア０及びコア１を占用する。第１システム１３のＯＳ１は、動作中のタスク１＿１〜１＿ｍに対してＳＭＰの動作態様によりコア０及びコア１のリソースを割当てる。
【００４７】
また、ハイパーバイザ１２は、コア２を第２システム１４に割当てる。第２システム１４は、割当てられたコア２を占用する。第２システム１４のＯＳ２は、動作中のタスク２＿１〜２＿ｎに対して、ＳＭＰの動作態様によりコア２のリソースを割当てる。
【００４８】
また、ハイパーバイザ１２は、コア３を第３システム１５に割当てる。第３システム１５は、割当てられたコア３を占用する。第３システム１５のＯＳ３は、動作中のタスク３＿３及びタスク３＿４に対して、ＳＭＰの動作態様によりコア３のリソースを割当てる。
【００４９】
（停止時）車両状態が停止であるときのコア１１の割当方式の一例を、図１１に示す。図１１に例示されるとおり、停止時において、ハイパーバイザ１２は、コア０及びコア１を、第１システム１３及び第２システム１４に割当てる。第１システム１３及び第２システム１４は、割当てられたコア０及びコア１を時分割で共用する。第１システム１３のＯＳ１は、動作中のタスク１＿１〜１＿ｍに対してＳＭＰの動作態様によりコア０及びコア１のリソースを割当てる。同様に第２システム１４のＯＳ２は、動作中のタスク２＿１〜２＿ｎに対して、ＳＭＰの動作態様によりコア０及びコア１のリソースを割当てる。
【００５０】
また、ハイパーバイザ１２は、コア２及びコア３を第３システム１５に割当てる。第３システム１５は、割当てられたコア２及びコア３を占用する。第３システム１５のＯＳ３は、動作中のタスク３＿２に対して、ＡＭＰの動作態様によりコア２のリソースを割当てる。また、第３システム１５のＯＳ３は、動作中のタスク３＿３及びタスク３＿４に対して、ＳＭＰの動作態様によりコア３のリソースを割当てる。
【００５１】
（走行時）車両状態が走行であるときのコア１１の割当方式の一例を、図１２に示す。図１２に例示されるとおり、走行時において、ハイパーバイザ１２は、コア０を第１システム１３及び第２システム１４に割当てる。第１システム１３及び第２システム１４は、割当てられたコア０を時分割で共用する。第１システム１３のＯＳ１は、動作中のタスク１＿１〜１＿ｍに対してＳＭＰの動作態様によりコア０のリソースを割当てる。同様に第２システム１４のＯＳ２は、動作中のタスク２＿１〜２＿ｎに対して、ＳＭＰの動作態様によりコア０のリソースを割当てる。
【００５２】
また、ハイパーバイザ１２は、コア１、コア２、及びコア３を第３システム１５に割当てる。第３システム１５は、割当てられたコア１、コア２、及びコア３を占用する。第３システム１５のＯＳ３は、動作中のタスク３＿１に対して、ＡＭＰの動作態様によりコア１のリソースを割当てる。また、第３システム１５のＯＳ３は、動作中のタスク３＿２に
対して、ＡＭＰの動作態様によりコア２のリソースを割当てる。また、第３システム１５のＯＳ３は、動作中のタスク３＿３及びタスク３＿４に対して、ＳＭＰの動作態様によりコア３のリソースを割当てる。
【００５３】
［効果］
実施形態の電子制御装置１によれば、以下の効果を奏する。
電子制御装置１が搭載される車両の状態に応じて、ＯＳ１〜３の間で協調して各ＯＳによるタスクを各コア１１に動的に割当てることができる。このようにすることで、車両の状態に応じて変化し得る処理負荷の増減に対して、コア１１のリソースを有効に活用することが可能になる。
【００５４】
例えば、ＡＭＰが必須となるタスクは、どのような状態でもＡＭＰとしてコアを割当てることができる一方、処理負荷が低くなるシステムの状態のときは、他のＯＳにコアのリソースを渡すことが可能となる。また、ＳＭＰが可能なタスクについては、複数のＯＳ間でコア１１を共有することで、コア１１のリソースを有効活用できる。
【００５５】
図８に例示されるハイパーバイザ処理において、ハイパーバイザ１２は、Ｓ１０６においてスケジューリングを変更する事前に、Ｓ１０２において使用不可となるコア１１を現在使用中のＯＳに対して、当該コア１１の使用を停止させることができる。このようにすることで、通知を受けたＯＳが、スケジュールリングの変更により当該コア１１が使用できなくなる前に、当該コア１１で動作しているタスクのデータを当該コア１１から安全に移すことができる。
【００５６】
また、図８に例示されるハイパーバイザ処理において、ハイパーバイザ１２は、Ｓ１０６においてスケジューリングを変更した後、Ｓ１０８において新たに使用可能なコア１１があるＯＳに対して、当該コア１１の使用許可を通知することができる。このようにすることで、このようにすることで、通知を受けたＯＳが、当該コア１１での動作が可能となってから、当該コア１１の使用を開始することができる。
【００５７】
［特許請求の範囲に記載の構成との対応］
実施形態の各構成と、特許請求の範囲に記載の構成との対応は次のとおりである。
車両状態検知部３０が、状態取得部に相当する。ハイパーバイザ１２が、第１割当部に相当する。ＯＳ１（１３１）、ＯＳ２（１４１）、及びＯＳ３（１５１）が、第２割当部に相当する。
【００５８】
［変形例］
上述の実施形態では、駐車、停止、及び走行の車両状態に応じて、ハイパーバイザ１２がコア１１の割当てのスケジューリングを変更する事例について説明した。上述の実施形態に限らず、例えば、起動時や定常時等の車両状態について、ハイパーバイザ１２がコア１１の割当てのスケジューリングを変更する構成であってもよい。その場合、図７に例示される定義情報において、起動時や定常時の車両状態における割当て方式の項目が記述される。また、図８に例示されるハイパーバイザ処理のＳ１００において、起動時や定常時の車両状態が判定の対象に含まれる。
【００５９】
また、上述の実施形態では、電子制御装置１が自動車等の車両に搭載された事例について説明した。上述の実施形態に限らず、例えば、航空機、鉄道、船舶等の乗り物や、携帯電話等の乗り物以外の電子機器等に、本開示にかかる電子制御装置を適用してもよい。
【００６０】
上記各実施形態における１つの構成要素が有する機能を複数の構成要素に分担させたり、複数の構成要素が有する機能を１つの構成要素に発揮させたりしてもよい。また、上記
各実施形態の構成の一部を省略してもよい。また、上記各実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加、置換等してもよい。なお、特許請求の範囲に記載の文言から特定される技術思想に含まれるあらゆる態様が、本開示の実施形態である。
【００６１】
上述した電子制御装置１を構成要件とするシステム、電子制御装置１としてコンピュータを機能させるためのプログラム、このプログラムを記録した実体的な記録媒体等の種々の形態で本開示を実現することもできる。
【符号の説明】
【００６２】
１…電子制御装置、１０…マルチコアＣＰＵ、１１…コア、１２…ハイパーバイザ、１３…第１システム、１３１…ＯＳ１、１３２…タスク、１４…第２システム、１４１…ＯＳ２、１４３…タスク、１５…第３システム、１５１…ＯＳ３、１５２…タスク、２０…記憶部、３０…車両状態検知部。
【図１】
2019179397.tif 000003
【図２】
2019179397.tif 000004
【図３】
2019179397.tif 000005
【図４】
2019179397.tif 000006
【図５】
2019179397.tif 000007
【図６】
2019179397.tif 000008
【図７】
2019179397.tif 000009
【図８】
2019179397.tif 000010
【図９】
2019179397.tif 000011
【図１０】
2019179397.tif 000012
【図１１】
2019179397.tif 000013
【図１２】
2019179397.tif 000014