JP7006451B2 - 電子制御装置及びマルチコアの割当て方法 - Google Patents
電子制御装置及びマルチコアの割当て方法 Download PDFInfo
- Publication number
- JP7006451B2 JP7006451B2 JP2018068260A JP2018068260A JP7006451B2 JP 7006451 B2 JP7006451 B2 JP 7006451B2 JP 2018068260 A JP2018068260 A JP 2018068260A JP 2018068260 A JP2018068260 A JP 2018068260A JP 7006451 B2 JP7006451 B2 JP 7006451B2
- Authority
- JP
- Japan
- Prior art keywords
- core
- program
- state
- electronic control
- control device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Stored Programmes (AREA)
Description
本開示は、複数のコアを有するマルチコアCPUを備える電子制御装置におけるコアの割当て方式に関する。
特許文献1には、マルチコアCPUを搭載したマイコンに組込まれたオペレーティングシステム(以下、OS)が、故障診断時に複数のコアにタスクを割当てる方式を切換える技術が記載されている。具体的には、OSは、複数のコアをそれぞれ個別に、Symmetric Multi-Processing(以下、SMP)、及びAsymmetric Multi-Processing(以下、AMP)の処理モードの、一方から他方に切替えることができる。SMPは、各コアの処理負荷に応じてタスクを動的に割当てる割当て方式である。AMPは、コアに割当てるタスクが固定的に決められている割当て方式である。
例えば、車載用の電子制御装置の分野において、単独のコンピュータシステムにおいて、ハイパーバイザにより複数のOSの動作を統合させる技術の適用が進んでいる。しかしながら、上述の背景技術は、単独のOSが組込まれているシステムにおけるコアの割当て方式の制御に関するものである。ハイパーバイザ上で動作する複数のOSが組込まれたコンピュータシステムでは、単独のOSに対する割当て方式の制御のみでなく、複数のOS間の割当て方式の制御を考慮する必要がある。そのため、上述の背景技術は、ハイパーバイザ上で動作する複数のOSが組込まれたコンピュータシステムには、そのままでは適用できない。
例えば、1つのコアを複数のOSで共用している場合には、単独のOSについてのみコアの割当てを制御するだけでは不十分である。つまり、ハイパーバイザによる複数のOSに対するコアの割当て方式と、各OS上で動作するタスクに対するコアの割当て方式とを協調して実行する必要がある。
また、ハイパーバイザ上で動作するOSでAMPが必須となるタスクを扱う際には、当該が属するOSが使用するコアを静的に固定する必要がある。しかし、当該タスクには、稼働や停止の状態変化や処理負荷の増減が起こり得るため、コアを常時固定的に割当てる方式では、当該タスクが停止した場合や処理負荷が低下した場合に、コアの空いたリソースを有効に活用できない。
また、故障診断時に限らず、電子制御システムが搭載される車両等のシステムの状態に応じて、各OSのタスクの処理負荷が増減することが考えられる。そのため、システムの状態の変化に応じて複数のOSによって複数のコアのリソースを有効に活用するための割当て方式を実現することが望まれる。
そこで、本開示の一局面は、マルチコアCPUを備え、マルチコアCPU上で複数のOSが動作する電子制御装置において、状況に応じて有効にコアの割当て方式を切換えるための技術を提供することが好ましい。
本開示の一態様に係る電子制御装置(1)は、複数のコア(11)を有するマルチコアCPU(10)を備える。このマルチコアCPU上で、オペレーティングシステムと当該オペレーティングシステム上で動作するアプリケーションプログラムとを含む複数のプログラムシステム(13,14,15)が動作する。この電子制御装置は、状態取得部(30)と、記憶部(20)と、第1割当部(12)と、第2割当部(131,141,151)とを備える。
なお、この欄及び特許請求の範囲に記載した括弧内の符号は、一つの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、本開示の技術的範囲を限定するものではない。
状態取得部は、電子制御装置が搭載されるシステムの状態を取得するように構成されている。記憶部は、定義情報を記憶するように構成されている。この定義情報は、状態取得部において取得され得る特定の状態ごとに、各プログラムシステムがタスクを実行するために各プログラムシステムに割当てるべきコアの要件を表す情報である。
第1割当部は、複数のプログラムシステムのタスクを複数のコア上で並列に実行可能にするため、各プログラムシステムがタスクの実行に使用するコアを割当てるように構成されている。また、第1割当部は、状態取得部により取得されたシステムの状態の変化に応じて、記憶部に記憶されている定義情報で表される定義に従って、各プログラムシステムに割当てるコアを変更するように構成されている。第2割当部は、各プログラムシステムのオペレーティングシステムにおいて、第1割当部により割当てられる1又は複数のコアを当該プログラムシステムが実行する1又は複数のタスクそれぞれに割当てるように構成されている。
上述のような構成によれば、電子制御装置が搭載されるシステムの状態に応じて、複数のOS間で協調して各OSによるタスクを複数のコアに動的に割当てることができる。このようにすることで、システムの状態に応じて変化し得る処理負荷の増減に対して、各コアのリソースを有効に活用することが可能になる。
以下、本開示の例示的な実施形態を図面に基づいて説明する。なお、本開示は下記の実施形態に限定されるものではなく様々な態様にて実施することが可能である。
[電子制御装置の構成の説明]
実施形態の電子制御装置1の構成について、図1を参照しながら説明する。電子制御装置1は、自動車等の車両に搭載され、当該車両に搭載された機器の制御や、車外通信、自動運転等の走行制御に関する情報処理を行う。電子制御装置1は、マルチコアCPU10や、図示しないRAM、ROM、フラッシュメモリ等の半導体メモリ、入出力インタフェース等を中心に構成された情報処理装置である。また、電子制御装置1は、記憶部20と、車両状態検知部30とを備える。
[電子制御装置の構成の説明]
実施形態の電子制御装置1の構成について、図1を参照しながら説明する。電子制御装置1は、自動車等の車両に搭載され、当該車両に搭載された機器の制御や、車外通信、自動運転等の走行制御に関する情報処理を行う。電子制御装置1は、マルチコアCPU10や、図示しないRAM、ROM、フラッシュメモリ等の半導体メモリ、入出力インタフェース等を中心に構成された情報処理装置である。また、電子制御装置1は、記憶部20と、車両状態検知部30とを備える。
電子制御装置1は、例えば、コンピュータシステムとしての機能が集約されたマイクロコントローラ等により具現化される。電子制御装置1は、マルチコアCPU10が、ROMや半導体メモリ等の実体的な記録媒体に格納されたプログラムを実行することにより実現される。
マルチコアCPU10は、1つのパッケージ内に複数のプロセッサ・コア(以下、コア)が搭載された演算装置である。図1に例示されるとおり、マルチコアCPU10は、符号11で示される4つのコア0~3を有する。以下、これら4つのコア0~3を区別しないで説明する場合は、コア11と表記する。また、4つのコア0~3をそれぞれ区別して説明する場合は、それぞれコア0、コア1、コア2、コア3と表記する。
マルチコアCPU10には、プログラムが実行されることによって実現される機能の構成要素として、ハイパーバイザ12と、第1システム13と、第2システム14と、第3システム15とが搭載されている。
ハイパーバイザ12は、マルチコアCPU10上で複数の仮想マシンを作成して並列に動作させ、作成された仮想マシン上でOSを動作させる制御プログラムである。このハイパーバイザ12は、複数のOSを複数のコア上で並列に実行可能にするため、各OSが使用するコアを動的に割当てるスケジューリングを実行する。ハイパーバイザ12が実行する処理の手順については、後述する。
符号13,14,15で示される第1~3システムは、ハイパーバイザ12により形成された仮想マシン上で動作するOSと、そのOS上で動作するアプリケーションプログラムにより実行される複数のタスクとを含むプログラムシステムである。これらの第1~3システムが、本開示における複数のプログラムシステムに相当する。以下の説明において第1~3システムを特に区別しない場合、単にプログラムシステムと表記する。
第1システム13には、符号131で示されるOS1と、符号132で示されるm個のタスク1_1、…タスク1_mとが含まれる。第2システム14には、符号141で示されるOS2と、符号142で示されるn個のタスク2_1、…タスク2_nとが含まれる。第3システム15には、符号151で示されるOS3と、符号142で示される4個のタスク3_1、タスク3_2、タスク3_3、及びタスク3_4とが含まれる。以下の説明においてOS1~3を特に区別しない場合、単にOSと表記する。OSは、複数のタスクを同時に実行する際に、互いに独立して動作できるようにハイパーバイザ12により割当てられたコア11のリソースを複数のタスクに割当てるスケジューリングを実行する。
各プログラムシステムがそれぞれ担当する機能の一例を図2に示す。図2に例示されるとおり、第1システム13の各タスク132は、車両の現在地から目的地までのナビゲーションに関する情報処理を実行する。また、第2システム14に関する各タスク142は、外部装置との間でデータをやり取りする無線通信に関する情報処理を実行する。また、第3システム15に関する各タスク152は、車両の走行に関する運転操作を自動的に行う機能である自動運転に関する情報処理を実行する。
本実施形態では、各プログラムシステムにおいて、車両の状態(例えば、駐車、停止、走行)ごとに、各タスクによる情報処理の実行量の最大値である最大処理量がそれぞれ異なると想定としている。各プログラムシステムの最大処理量の一例を図3に示す。なお、図3において、駐車とは、例えば、車両がエンジンの稼働を停止した状態で止まっている状態を指す。停止とは、車両がエンジンを稼働させた状態で止まっているおり、即座に走行を再開可能な状態を指す。走行とは、車両が走行中である状態を指す。
図3に例示されるとおり、車両が駐車の状態のときには、第1システム13の最大処理量が200、第2システム14の最大処理量が100、第3システム15の最大処理量が100である。また、車両が停止の状態のときには、第1システム13の最大処理量が150、第2システム14の最大処理量が50、第3システム15の最大処理量が200である。また、車両が走行の状態のときには、第1システム13の最大処理量が50、第2システム14の最大処理量が50、第3システム15の最大処理量が300である。
なお、図3の事例において、1つのコア11が処理可能な最大処理量を100とする。つまり、1つのプログラムシステムにおいて最大処理量が100を超える場合、そのプログラムシステムのタスクの処理負荷を複数のコア11に割当てる必要がある。また、1又は複数のコア11の最大処理量を超えない範囲で、複数のプログラムシステムが当該1又は複数のコア11を共用することができる。
つぎに、第1システム13、第2システム14及び第3システム15におけるタスクの動作要件について、図4~図6を参照しながら説明する。
(第1システムについて)図4に例示されるとおり、第1システム13のタスク1_1~タスク1_mは、駐車、停止、及び走行の各車両状態において全てSMPによる動作が可能であると規定されている。すなわち、第1システム13のOS1は、処理負荷に応じて各タスクにコア11を動的に割当てたり、他のOSとコア11を時分割により共用することが可能である。あるいは、複数のプログラムシステムによるコア11の共用は、各プログラムシステムに設定された優先度を基準に行ってもよい。
(第1システムについて)図4に例示されるとおり、第1システム13のタスク1_1~タスク1_mは、駐車、停止、及び走行の各車両状態において全てSMPによる動作が可能であると規定されている。すなわち、第1システム13のOS1は、処理負荷に応じて各タスクにコア11を動的に割当てたり、他のOSとコア11を時分割により共用することが可能である。あるいは、複数のプログラムシステムによるコア11の共用は、各プログラムシステムに設定された優先度を基準に行ってもよい。
また、車両状態が駐車のとき、第1システム13の最大処理量が200であるから、最大処理量を満たすのに必要なコア11の数は2つである。また、車両状態が停止のとき、第1システム13の最大処理量が150であるから、最大処理量を満たすのに必要なコア11の数は2つである。また、車両状態が走行のとき、第1システム13の最大処理量が50であるから、最大処理量を満たすのに必要なコア11の数は1つである。
(第2システムについて)図5に例示されるとおり、第2システム14のタスク2_1~タスク2_nは、駐車、停止、及び走行の各車両状態において全てSMPによる動作が可能であると規定されている。すなわち、第2システム14のOS2は、各タスクの処理負荷に応じてそれらのタスクにコア11を動的に割当てたり、他のOSとコア11を時分割により共用することが可能である。あるいは、複数のプログラムシステムによるコア11の共用は、各プログラムシステムに設定された優先度を基準に行ってもよい。また、車両状態が駐車、停止、及び走行の何れの場合においても、第2システム14の最大処理量が100以下であるから、最大処理量を満たすのに必要なコア11の数は1つである。
(第3システムについて)図6に例示されるとおり、第3システム15のタスク3_3及びタスク3_4は、駐車、停止、及び走行の各車両状態において全てSMPによる動作が可能であると規定されている。すなわち、第3システム15のOS3は、タスク3_3及びタスク3_4の処理負荷に応じてそれらのタスクにコア11を動的に割当てることが可能である。
一方、タスク3_1は、車両状態が駐車又は停止のときには動作せず、車両状態が走行のときにAMPによる動作が必須であると規定されている。したがって、第3システム15のOS3は、車両状態が走行の場合、タスク3_1に特定のコア11を固定的に割当てる。また、タスク3_2は、車両状態が駐車のときには動作せず、車両状態が停止又は走行のときにAMPによる動作が必須であると規定されている。したがって、第3システム15のOS3は、車両状態が停止又は走行の場合、タスク3_2に特定のコア11を固定的に割当てる。
また、車両状態が駐車のとき、第3システム15の最大処理量が100であるから、最大処理量を満たすのに必要なコア11の数は1つである。また、車両状態が停止のとき、第3システム15の最大処理量が200であるから、最大処理量を満たすのに必要なコア11の数は2つである。また、車両状態が走行のとき、第3システム15の最大処理量が300であるから、最大処理量を満たすのに必要なコア11の数は3つである。
図1のブロック図の説明に戻る。記憶部20には、各プログラムシステムに対するコア11の割当て方式を定義する定義情報が予め記憶されている。この定義情報には、車両状態に応じてハイパーバイザ12が各プログラムシステムに割当てるべきコア11の要件を表す情報が含まれる。ハイパーバイザ12は、記憶部20に記憶されている定義情報に基づいて、各プログラムシステムに対してコア11を動的に割当てるスケジューリングを実行する。
定義情報は、図4~図6に例示される各プログラムシステムの動作要件を満たすように設計されている。具体的には、タスクにおけるSMPやAMPの可否に関する制約、及び最大処理量に基づく必要コア数の要件を、車両状態ごとに全てのプログラムシステムについて満たすように、各プログラムシステムに割当てるべきコア11の要件が規定されている。
図4~図6に例示される動作要件を満たす定義情報の一例を、図7に示す。図7に例示される定義情報のテーブルには、駐車、停止、及び走行の車両状態ごとに、4つのコア0~3が、どのプログラムシステムに割当てられるかを示す情報が記述されている。図7の事例では、車両状態が駐車のとき、第1システム13がコア0及びコア1を占用し、第2システム14がコア2を占用し、第3システム15がコア3を占用するように、割り当て方式が定義されている。また、車両状態が停止のとき、第1システム13及び第2システム14が、コア0及びコア1を共用し、第3システム15が、コア2及びコア3を占用するように、割当て方式が定義されている。また、車両状態が走行のとき、第1システム13及び第2システム14が、コア0を共用し、第3システム15が、コア1、コア2及びコア3を占用するように、割当て方式が定義されている。
図1のブロック図の説明に戻る。車両状態検知部30は、車両に搭載されたセンサや制御機器等から車両の稼働状況を表す情報を取得し、取得された情報に基づいて車両の現在の状態を検知する。具体的には、車両状態検知部30は、車両状態として、駐車、停止、走行等の状態を検知する。変形例として、車両状態検知部30は、起動時や定常時等の車両状態を検知するように構成されていてもよい。
[ハイパーバイザ処理の説明]
ハイパーバイザ12が実行する処理の手順について、図8のフローチャートを参照しながら説明する。このハイパーバイザ処理は、各プログラムシステムに対するコア11の割当て方式に関する。
ハイパーバイザ12が実行する処理の手順について、図8のフローチャートを参照しながら説明する。このハイパーバイザ処理は、各プログラムシステムに対するコア11の割当て方式に関する。
S100では、ハイパーバイザ12は、車両状態が変化したか否かを判定する。S10
0において判定の対象となる車両状態は、駐車、停車、及び走行である。ハイパーバイザ12は、車両状態検知部30による検知結果に基づいて、車両状態が以前の検知結果と異なる場合、肯定判定をする。車両状態が変化していない場合(S100:NO)、ハイパーバイザ12はS100の処理を繰返す。一方、車両状態が変化した場合(S100:YES)、ハイパーバイザ12は処理をS102に移す。
0において判定の対象となる車両状態は、駐車、停車、及び走行である。ハイパーバイザ12は、車両状態検知部30による検知結果に基づいて、車両状態が以前の検知結果と異なる場合、肯定判定をする。車両状態が変化していない場合(S100:NO)、ハイパーバイザ12はS100の処理を繰返す。一方、車両状態が変化した場合(S100:YES)、ハイパーバイザ12は処理をS102に移す。
S102では、ハイパーバイザ12は、変化後の車両状態では使用できないコア11を現在使用中であるプログラムシステムに対して、当該コア11の使用を停止させる指示を、当該プログラムシステムに対して通知する。具体的には、ハイパーバイザ12は、記憶部20の定義情報を参照し、変化前の車両状態に対応する割当て方式と、変化後の車両状態に対応する割当て方式との相違から、変化後の車両状態では使用できないコア11を現在使用中であるプログラムシステムを特定する。
S104では、ハイパーバイザ12は、S102において通知がなされたOSから、スケジューリングの切換えが完了した旨の通知を受信したか否かを判定する。切換えの完了通知を受信していない場合(S104:NO)、ハイパーバイザ12はS104の処理を繰返す。一方、切換え完了の通知を受信した場合(S104:YES)、ハイパーバイザ12は処理をS106に移す。
S106では、ハイパーバイザ12は、記憶部20の定義情報を参照し、変化後の車両状態に対応する割当て方式に従って、各プログラムシステムのOSに対してコア11を割当てるスケジューリングを変更する。次のS108では、ハイパーバイザ12は、変化後の車両状態で新たに使用可能になるコア11があるプログラムシステムに対して、当該コア11の使用が可能である指示を、当該プログラムシステムに対して通知する。具体的には、ハイパーバイザ12は、記憶部20の定義情報を参照し、変化前の車両状態に対応する割当て方式と、変化後の車両状態に対応する割当て方式との相違から、変化後の車両状態で新たに使用可能になるコア11があるプログラムシステムを特定する。
S110では、ハイパーバイザ12は、S108において通知がなされたOSから、スケジューリングの切換えが完了した旨の通知を受信したか否かを判定する。切換え完了の通知を受信していない場合(S110:NO)、ハイパーバイザ12はS110の処理を繰返す。一方、切換え完了の通知を受信した場合(S110:YES)、ハイパーバイザ12は処理をS100に戻す。
[OS処理の説明]
各プログラムシステムのOSが実行する処理の手順について、図9のフローチャートを参照しながら説明する。このOS処理は、各プログラムシステムのタスクに対するコア11の割当て方式に関する。
各プログラムシステムのOSが実行する処理の手順について、図9のフローチャートを参照しながら説明する。このOS処理は、各プログラムシステムのタスクに対するコア11の割当て方式に関する。
S200では、OSは、ハイパーバイザ12から通知を受信したか否かを判定する。この通知は、上述のハイパーバイザ処理(図8参照)のS102又はS108において送信される通知である。ハイパーバイザ12から通知を受信していない場合(S200:NO)、OSはS200の処理を繰返す。一方、ハイパーバイザ12から通知を受信した場合(S200:YES)、OSは処理をS202に移す。
S202では、OSは、ハイパーバイザ12から受信した通知に従い、動作中のタスクに対してコア11を割当てるスケジューリングを変更する。具体的には、ハイパーバイザ12から特定のコア11の使用を停止する通知を受信した場合、OSは、当該特定のコア11に割当てられているタスクのプロセスを一時的に停止し、当該プロセスに関するデータを当該コア11から退避させる。停止したタスクについては、使用可能な他のコア11
を割当ててプロセスを再開する。また、ハイパーバイザ12から新たに使用可能になるコア11を指示する通知を受信した場合、OSは、動作中のタスクが新たに使用可能なコア11を利用できるように各タスクに対するスケジューリングを変更する。S204では、OSは、スケジューリングの切換えが完了した旨をハイパーバイザ12に通知する。S204の後、OSは処理をS200に戻す。
を割当ててプロセスを再開する。また、ハイパーバイザ12から新たに使用可能になるコア11を指示する通知を受信した場合、OSは、動作中のタスクが新たに使用可能なコア11を利用できるように各タスクに対するスケジューリングを変更する。S204では、OSは、スケジューリングの切換えが完了した旨をハイパーバイザ12に通知する。S204の後、OSは処理をS200に戻す。
[割当て方式の具体例]
車両状態ごとのコア11の割当方式の具体例について、図10~図12を参照しながら説明する。
車両状態ごとのコア11の割当方式の具体例について、図10~図12を参照しながら説明する。
(駐車時)車両状態が駐車であるときのコア11の割当方式の一例を、図10に示す。図10に例示されるとおり、駐車時において、ハイパーバイザ12は、コア0及びコア1を第1システム13に割当てる。第1システム13は、割当てられたコア0及びコア1を占用する。第1システム13のOS1は、動作中のタスク1_1~1_mに対してSMPの動作態様によりコア0及びコア1のリソースを割当てる。
また、ハイパーバイザ12は、コア2を第2システム14に割当てる。第2システム14は、割当てられたコア2を占用する。第2システム14のOS2は、動作中のタスク2_1~2_nに対して、SMPの動作態様によりコア2のリソースを割当てる。
また、ハイパーバイザ12は、コア3を第3システム15に割当てる。第3システム15は、割当てられたコア3を占用する。第3システム15のOS3は、動作中のタスク3_3及びタスク3_4に対して、SMPの動作態様によりコア3のリソースを割当てる。
(停止時)車両状態が停止であるときのコア11の割当方式の一例を、図11に示す。図11に例示されるとおり、停止時において、ハイパーバイザ12は、コア0及びコア1を、第1システム13及び第2システム14に割当てる。第1システム13及び第2システム14は、割当てられたコア0及びコア1を時分割で共用する。第1システム13のOS1は、動作中のタスク1_1~1_mに対してSMPの動作態様によりコア0及びコア1のリソースを割当てる。同様に第2システム14のOS2は、動作中のタスク2_1~2_nに対して、SMPの動作態様によりコア0及びコア1のリソースを割当てる。
また、ハイパーバイザ12は、コア2及びコア3を第3システム15に割当てる。第3システム15は、割当てられたコア2及びコア3を占用する。第3システム15のOS3は、動作中のタスク3_2に対して、AMPの動作態様によりコア2のリソースを割当てる。また、第3システム15のOS3は、動作中のタスク3_3及びタスク3_4に対して、SMPの動作態様によりコア3のリソースを割当てる。
(走行時)車両状態が走行であるときのコア11の割当方式の一例を、図12に示す。図12に例示されるとおり、走行時において、ハイパーバイザ12は、コア0を第1システム13及び第2システム14に割当てる。第1システム13及び第2システム14は、割当てられたコア0を時分割で共用する。第1システム13のOS1は、動作中のタスク1_1~1_mに対してSMPの動作態様によりコア0のリソースを割当てる。同様に第2システム14のOS2は、動作中のタスク2_1~2_nに対して、SMPの動作態様によりコア0のリソースを割当てる。
また、ハイパーバイザ12は、コア1、コア2、及びコア3を第3システム15に割当てる。第3システム15は、割当てられたコア1、コア2、及びコア3を占用する。第3システム15のOS3は、動作中のタスク3_1に対して、AMPの動作態様によりコア1のリソースを割当てる。また、第3システム15のOS3は、動作中のタスク3_2に
対して、AMPの動作態様によりコア2のリソースを割当てる。また、第3システム15のOS3は、動作中のタスク3_3及びタスク3_4に対して、SMPの動作態様によりコア3のリソースを割当てる。
対して、AMPの動作態様によりコア2のリソースを割当てる。また、第3システム15のOS3は、動作中のタスク3_3及びタスク3_4に対して、SMPの動作態様によりコア3のリソースを割当てる。
[効果]
実施形態の電子制御装置1によれば、以下の効果を奏する。
電子制御装置1が搭載される車両の状態に応じて、OS1~3の間で協調して各OSによるタスクを各コア11に動的に割当てることができる。このようにすることで、車両の状態に応じて変化し得る処理負荷の増減に対して、コア11のリソースを有効に活用することが可能になる。
実施形態の電子制御装置1によれば、以下の効果を奏する。
電子制御装置1が搭載される車両の状態に応じて、OS1~3の間で協調して各OSによるタスクを各コア11に動的に割当てることができる。このようにすることで、車両の状態に応じて変化し得る処理負荷の増減に対して、コア11のリソースを有効に活用することが可能になる。
例えば、AMPが必須となるタスクは、どのような状態でもAMPとしてコアを割当てることができる一方、処理負荷が低くなるシステムの状態のときは、他のOSにコアのリソースを渡すことが可能となる。また、SMPが可能なタスクについては、複数のOS間でコア11を共有することで、コア11のリソースを有効活用できる。
図8に例示されるハイパーバイザ処理において、ハイパーバイザ12は、S106においてスケジューリングを変更する事前に、S102において使用不可となるコア11を現在使用中のOSに対して、当該コア11の使用を停止させることができる。このようにすることで、通知を受けたOSが、スケジュールリングの変更により当該コア11が使用できなくなる前に、当該コア11で動作しているタスクのデータを当該コア11から安全に移すことができる。
また、図8に例示されるハイパーバイザ処理において、ハイパーバイザ12は、S106においてスケジューリングを変更した後、S108において新たに使用可能なコア11があるOSに対して、当該コア11の使用許可を通知することができる。このようにすることで、このようにすることで、通知を受けたOSが、当該コア11での動作が可能となってから、当該コア11の使用を開始することができる。
[特許請求の範囲に記載の構成との対応]
実施形態の各構成と、特許請求の範囲に記載の構成との対応は次のとおりである。
車両状態検知部30が、状態取得部に相当する。ハイパーバイザ12が、第1割当部に相当する。OS1(131)、OS2(141)、及びOS3(151)が、第2割当部に相当する。
実施形態の各構成と、特許請求の範囲に記載の構成との対応は次のとおりである。
車両状態検知部30が、状態取得部に相当する。ハイパーバイザ12が、第1割当部に相当する。OS1(131)、OS2(141)、及びOS3(151)が、第2割当部に相当する。
[変形例]
上述の実施形態では、駐車、停止、及び走行の車両状態に応じて、ハイパーバイザ12がコア11の割当てのスケジューリングを変更する事例について説明した。上述の実施形態に限らず、例えば、起動時や定常時等の車両状態について、ハイパーバイザ12がコア11の割当てのスケジューリングを変更する構成であってもよい。その場合、図7に例示される定義情報において、起動時や定常時の車両状態における割当て方式の項目が記述される。また、図8に例示されるハイパーバイザ処理のS100において、起動時や定常時の車両状態が判定の対象に含まれる。
上述の実施形態では、駐車、停止、及び走行の車両状態に応じて、ハイパーバイザ12がコア11の割当てのスケジューリングを変更する事例について説明した。上述の実施形態に限らず、例えば、起動時や定常時等の車両状態について、ハイパーバイザ12がコア11の割当てのスケジューリングを変更する構成であってもよい。その場合、図7に例示される定義情報において、起動時や定常時の車両状態における割当て方式の項目が記述される。また、図8に例示されるハイパーバイザ処理のS100において、起動時や定常時の車両状態が判定の対象に含まれる。
また、上述の実施形態では、電子制御装置1が自動車等の車両に搭載された事例について説明した。上述の実施形態に限らず、例えば、航空機、鉄道、船舶等の乗り物や、携帯電話等の乗り物以外の電子機器等に、本開示にかかる電子制御装置を適用してもよい。
上記各実施形態における1つの構成要素が有する機能を複数の構成要素に分担させたり、複数の構成要素が有する機能を1つの構成要素に発揮させたりしてもよい。また、上記
各実施形態の構成の一部を省略してもよい。また、上記各実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加、置換等してもよい。なお、特許請求の範囲に記載の文言から特定される技術思想に含まれるあらゆる態様が、本開示の実施形態である。
各実施形態の構成の一部を省略してもよい。また、上記各実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加、置換等してもよい。なお、特許請求の範囲に記載の文言から特定される技術思想に含まれるあらゆる態様が、本開示の実施形態である。
上述した電子制御装置1を構成要件とするシステム、電子制御装置1としてコンピュータを機能させるためのプログラム、このプログラムを記録した実体的な記録媒体等の種々の形態で本開示を実現することもできる。
1…電子制御装置、10…マルチコアCPU、11…コア、12…ハイパーバイザ、13…第1システム、131…OS1、132…タスク、14…第2システム、141…OS2、143…タスク、15…第3システム、151…OS3、152…タスク、20…記憶部、30…車両状態検知部。
Claims (9)
- 複数のコア(11)を有するマルチコアCPU(10)を備え、前記マルチコアCPU上で、オペレーティングシステムと当該オペレーティングシステム上で動作するアプリケーションプログラムとを含む複数のプログラムシステム(13,14,15)が動作するように構成された電子制御装置(1)であって、
前記電子制御装置が搭載されるシステムの状態を取得するように構成された状態取得部(30)と、
前記状態取得部において取得され得る特定の状態ごとに、各プログラムシステムがタスクを実行するために各プログラムシステムに割当てるべきコアの要件を表す情報である定義情報を記憶するように構成された記憶部(20)と、
前記複数のプログラムシステムのタスクを前記複数のコア上で並列に実行可能にするため、各プログラムシステムがタスクの実行に使用するコアを割当てるように構成された第1割当部(12)と、
各プログラムシステムのオペレーティングシステムにおいて、前記第1割当部により割当てられる1又は複数のコアを当該プログラムシステムが実行する1又は複数のタスクそれぞれに割当てるように構成された第2割当部(131,141,151)とを備え、
前記第1割当部は、前記状態取得部により取得されたシステムの状態の変化に応じて、前記記憶部に記憶されている定義情報で表される定義に従って、各プログラムシステムに割当てるコアを変更するように構成されている、
電子制御装置。 - 前記状態取得部により取得されたシステムの状態の変化に対して、前記定義情報に基づき、あるプログラムシステムが当該変化前の状態において使用していたコアを、当該変化後の状態において当該プログラムシステムが使用できなくなる場合、
まず先に、当該プログラムシステムのオペレーティングシステムにおいて、前記第2割当部が、当該変化後の状態において使用できなくなるコアに対するタスクの割り当てを停止し、
その後に、前記第1割当部が、各プログラムシステムにコアを割当てるように構成されている、
請求項1に記載の電子制御装置。 - 前記状態取得部により取得されたシステムの状態の変化に対して、前記定義情報に基づき、あるプログラムシステムが当該変化前の状態において使用していないコアを、当該変化後の状態において当該プログラムシステムが使用できるようになる場合、
まず先に、前記第1割当部が、各プログラムシステムにコアを割当て、
その後に、新たに使用できるコアがあるプログラムシステムのオペレーティングシステムにおいて、前記第2割当部が、当該コアをタスクに割り当てるように構成されている、
請求項1又は請求項2に記載の電子制御装置。 - 前記定義情報は、各プログラムシステムにおいて前記特定の状態ごとに生じ得る処理負荷を許容でき、かつ、各プログラムシステムにおける前記特定の状態ごとのコアの使用態様の制約を満足するようにコアの割当て方式が規定されている、
請求項1ないし請求項3の何れか1項に記載の電子制御装置。 - 前記第1割当部が、あるコアを単独のプログラムシステムに割当てた場合、当該単独のプログラムシステムが、当該コアを占用するように構成されている、
請求項1ないし請求項4の何れか1項に記載の電子制御装置。 - 前記第1割当部が、あるコアを複数のプログラムシステムに割当てた場合、当該複数の
プログラムシステムが、当該コアを共用するように構成されている、
請求項1ないし請求項5の何れか1項に記載の電子制御装置。 - 前記電子制御装置が搭載されるシステムは車両であり、
前記状態取得部は、前記車両の作動状態を表す情報を取得するように構成されている、
請求項1ないし請求項6の何れか1項に記載の電子制御装置。 - 前記状態取得部により取得される前記車両の作動状態には、起動時、駐車時、停車時、及び走行時の少なくとも何れかの状態が含まれる、
請求項7に記載の電子制御装置。 - 複数のコアを有するマルチコアCPUを備え、前記マルチコアCPU上で、オペレーティングシステムと当該オペレーティングシステム上で動作するアプリケーションプログラムとを含む複数のプログラムシステムが動作するように構成された電子制御装置において実行されるマルチコアの割当て方法であって、
前記電子制御装置が搭載されるシステムの状態を取得し、
前記複数のプログラムシステムのタスクを前記複数のコア上で並列に実行可能にするため、各プログラムシステムがタスクの実行に使用するコアを割当て、
取得され得る特定の状態ごとに各プログラムシステムがタスクを実行するために各プログラムシステムに割当てるべきコアの要件を表す情報である定義情報に従って、前記システムの状態の変化に応じて各プログラムシステムに割当てるコアを変更し、
各プログラムシステムのオペレーティングシステムにおいて、割当てられる1又は複数のコアを当該プログラムシステムが実行する1又は複数のタスクそれぞれに割当てる、
マルチコアの割当て方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018068260A JP7006451B2 (ja) | 2018-03-30 | 2018-03-30 | 電子制御装置及びマルチコアの割当て方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018068260A JP7006451B2 (ja) | 2018-03-30 | 2018-03-30 | 電子制御装置及びマルチコアの割当て方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019179397A JP2019179397A (ja) | 2019-10-17 |
JP7006451B2 true JP7006451B2 (ja) | 2022-01-24 |
Family
ID=68278575
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018068260A Active JP7006451B2 (ja) | 2018-03-30 | 2018-03-30 | 電子制御装置及びマルチコアの割当て方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7006451B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021124902A (ja) * | 2020-02-04 | 2021-08-30 | トヨタ自動車株式会社 | 車両制御装置、車両制御方法、及び車両制御プログラム |
JP7463947B2 (ja) | 2020-11-13 | 2024-04-09 | 住友電装株式会社 | 車載ecu、プログラム、及び情報処理方法 |
JP2022129187A (ja) * | 2021-02-24 | 2022-09-05 | 株式会社オートネットワーク技術研究所 | 車載装置、情報処理方法、及びコンピュータプログラム |
JP2022144140A (ja) * | 2021-03-18 | 2022-10-03 | 株式会社オートネットワーク技術研究所 | 車載装置、情報処理方法、及びコンピュータプログラム |
CN114840335B (zh) * | 2022-04-22 | 2023-10-27 | 北京斯年智驾科技有限公司 | 一种自动驾驶领域的智能网关控制器及其多核划分策略 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007125950A (ja) | 2005-11-02 | 2007-05-24 | Toyota Motor Corp | 車両用電子制御装置の電源管理システム |
WO2008062512A1 (fr) | 2006-11-21 | 2008-05-29 | Fujitsu Limited | Système multiprocesseur |
JP2009265843A (ja) | 2008-04-23 | 2009-11-12 | Toyota Motor Corp | マルチコアシステム、車両用ゲートウェイ装置 |
WO2010038851A1 (ja) | 2008-10-02 | 2010-04-08 | 日立オートモティブシステムズ株式会社 | 車両走行に関する情報処理装置 |
JP2010262444A (ja) | 2009-05-01 | 2010-11-18 | Denso Corp | 車載装置 |
JP2013003724A (ja) | 2011-06-14 | 2013-01-07 | Denso Corp | 車載電子制御装置 |
DE102012205301A1 (de) | 2012-03-30 | 2013-10-02 | Bayerische Motoren Werke Aktiengesellschaft | Rechner-Architektur zur Steuerung einer elektronischen Datenverarbeitung in einem Fahrzeug |
WO2015103376A1 (en) | 2014-01-06 | 2015-07-09 | Johnson Controls Technology Company | Vehicle with multiple user interface operating domains |
-
2018
- 2018-03-30 JP JP2018068260A patent/JP7006451B2/ja active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007125950A (ja) | 2005-11-02 | 2007-05-24 | Toyota Motor Corp | 車両用電子制御装置の電源管理システム |
WO2008062512A1 (fr) | 2006-11-21 | 2008-05-29 | Fujitsu Limited | Système multiprocesseur |
JP2009265843A (ja) | 2008-04-23 | 2009-11-12 | Toyota Motor Corp | マルチコアシステム、車両用ゲートウェイ装置 |
WO2010038851A1 (ja) | 2008-10-02 | 2010-04-08 | 日立オートモティブシステムズ株式会社 | 車両走行に関する情報処理装置 |
JP2010262444A (ja) | 2009-05-01 | 2010-11-18 | Denso Corp | 車載装置 |
JP2013003724A (ja) | 2011-06-14 | 2013-01-07 | Denso Corp | 車載電子制御装置 |
DE102012205301A1 (de) | 2012-03-30 | 2013-10-02 | Bayerische Motoren Werke Aktiengesellschaft | Rechner-Architektur zur Steuerung einer elektronischen Datenverarbeitung in einem Fahrzeug |
WO2015103376A1 (en) | 2014-01-06 | 2015-07-09 | Johnson Controls Technology Company | Vehicle with multiple user interface operating domains |
Also Published As
Publication number | Publication date |
---|---|
JP2019179397A (ja) | 2019-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7006451B2 (ja) | 電子制御装置及びマルチコアの割当て方法 | |
US8051281B2 (en) | Operating system startup control method and information processing apparatus | |
JP2020149690A (ja) | 車両システム、車両およびこの種の車両システムの動作方法 | |
JP2007257257A (ja) | マルチタスクシステムにおけるタスク実行環境切替え方法 | |
KR100791296B1 (ko) | 멀티 코어 시스템에서 협력적 스케줄링을 제공하는 장치 및방법 | |
JP2008152470A (ja) | データ処理システム及び半導体集積回路 | |
US7398378B2 (en) | Allocating lower priority interrupt for processing to slave processor via master processor currently processing higher priority interrupt through special interrupt among processors | |
US8407507B2 (en) | Power management circuit, power management method and power management program for controlling power supplied to functional blocks in integrated circuits | |
JP4985662B2 (ja) | プログラム、及び制御装置 | |
CN111791886B (zh) | 用于车辆的实时控制***以及经由实时控制***执行车辆控制的方法 | |
JP5533789B2 (ja) | 車載電子制御装置 | |
JPH012145A (ja) | 仮想計算機システムの資源管理方式 | |
CN111240824B (zh) | 一种cpu资源调度方法及电子设备 | |
CN115328833B (zh) | 硬件资源的复用方法、装置、硬件平台及存储介质 | |
CN113767367B (zh) | 虚拟机监视器及控制装置 | |
JP2014004858A (ja) | 車両制御装置 | |
JP3893136B2 (ja) | 組込みコンピュータ制御プログラム、そのプログラムを記録した記録媒体、及び組込みシステム | |
CN111737013B (zh) | 芯片的资源管理方法、装置、存储介质及***芯片 | |
JP2009026117A (ja) | 仮想計算機システムにおけるメモリ管理方式及びその方法、およびプログラム | |
US20220365803A1 (en) | Assignment control device, assignment control method, and assignment control program | |
CN113678101A (zh) | 信息处理装置、移动体以及信息处理方法 | |
JP5148236B2 (ja) | 半導体集積回路及び半導体集積回路の制御方法 | |
JP2007122337A (ja) | 演算装置 | |
JP6358330B2 (ja) | 情報処理装置、情報処理システム、メモリ管理方法およびメモリ管理プログラム | |
JP2023032307A (ja) | 仮想化制御装置および割り込み制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210120 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20211125 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20211207 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20211220 |