JP7070108B2 - マルチコアマイコンを備える電子制御装置 - Google Patents

マルチコアマイコンを備える電子制御装置 Download PDF

Info

Publication number
JP7070108B2
JP7070108B2 JP2018107866A JP2018107866A JP7070108B2 JP 7070108 B2 JP7070108 B2 JP 7070108B2 JP 2018107866 A JP2018107866 A JP 2018107866A JP 2018107866 A JP2018107866 A JP 2018107866A JP 7070108 B2 JP7070108 B2 JP 7070108B2
Authority
JP
Japan
Prior art keywords
cores
common program
core
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
Application number
JP2018107866A
Other languages
English (en)
Other versions
JP2019212032A (ja
Inventor
貴成 牧田
真一郎 小田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Denso Corp
Original Assignee
Denso Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Denso Corp filed Critical Denso Corp
Priority to JP2018107866A priority Critical patent/JP7070108B2/ja
Publication of JP2019212032A publication Critical patent/JP2019212032A/ja
Application granted granted Critical
Publication of JP7070108B2 publication Critical patent/JP7070108B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、マルチコアマイコンを備える電子制御装置に関する。
例えば、特許文献1には、マルチコアマイコンの処理速度を向上できるようにした電子制御装置が開示されている。この特許文献1の電子制御装置では、複数のコアの中の第1のコアで実行される複数のタスクの内の第1のタスクが、他のコア(第2のコア)で実行される第2のタスクの完了まで実行を待機する必要がある場合には、第1のタスクの優先順位を、第1のコアにて実行される他のタスク(第3のタスク)よりも低下させる。その結果、第1のコアは、第1のタスクの待機期間中に、第3のタスクを実行することが可能となる。このため、特許文献1の電子制御装置によれば、第1のコアが待機状態となる期間を回避又は減少させることができ、それにより、全タスクの実行完了時間を早めることが可能となる。
特開2016-206817号公報
ここで、例えば車両のエンジンの燃料噴射や点火時期を制御する用途に、特許文献1に開示されるような電子制御装置を適用した場合、外部からの実行要求(例えば、エンジンの回転角度に基づく燃料噴射指令や点火指令)に応じて、インジェクタや点火コイルへの駆動信号を出力するための特定のプログラムを実行する必要が生じる場合がある。
しかしながら、特許文献1の電子制御装置では、複数のタスクは、予め実行されるコアが定められ、各コアに割り振られている。このため、外部からの実行要求があったときに、特定のプログラムが割り振られたコア以外のコアがプログラムを実行していないアイドル状態であったとしても、特定のプログラムが割り振られたコアが他のプログラムを実行中であった場合には、即座に特定のプログラムの実行を開始することができない。
また、特許文献1の電子制御装置では、優先順位の変更により実行順序を入れ替える場合、待機中のタスクの優先順位を、実行するタスクの優先順位よりも低下させる必要がある。さらに、待機中のタスクの優先順位を低下させた場合、他のコアで実行中のタスクが完了したタイミングなどで、低下させた優先順位を元の優先順位に戻すことも必要となる。このように、優先順位の変更処理は煩雑なものとなる虞がある。
本発明は、上述した点に鑑みてなされたものであり、優先順位を変更することなく、外部から入力される信号に基づく実行要求に応じて、特定のプログラムを高速に実行することが可能な電子制御装置を提供することを目的とする。
上記目的を達成するために、本発明による電子制御装置はマルチコアマイコン(12)を備え、
マルチコアマイコンは、複数のコア(14、15)にそれぞれに割り当てられた個別プログラム(19c、20c)と、複数のコアの中の少なくとも2個のコアで実行可能な共通プログラム(19b、20b)とを有し、
外部から入力される信号に基づいて、共通プログラムの実行が必要であることを示す要求情報を設定する設定部(23)を備え、
複数のコアの中の少なくとも2個のコアは、少なくとも実行中の個別プログラムが終了したときに要求情報を参照し、要求情報が設定されていれば、共通プログラムを実行することを特徴とする。
本発明による電子制御装置では、まず、外部からの信号に基づく実行要求に応じて実行される特定のプログラムを、マルチコアマイコン(12)の複数のコア(14,15)の内、少なくとも2個のコアで実行可能な共通プログラム(19b,20b)としている。そして、外部からの信号に基づいて、共通プログラムの実行が必要であることを示す要求情報を設定する設定部(23)を設けている。複数のコアの中の少なくとも2個のコアは、少なくとも実行中の個別プログラムが終了したときに要求情報を参照する。従って、例えば少なくとも2個のコアが個別プログラムを実行中に、実行要求が設定された場合、先に個別プログラムの実行を終了したコアが共通プログラムを実行する。このため、処理の優先順位を変更せずとも、最も早いタイミングで共通プログラムの実行を開始することができ、特定プログラム(共通プログラム)のリアルタイム性を向上することができる。
上記括弧内の参照番号は、本開示の理解を容易にすべく、後述する実施形態における具体的な構成との対応関係の一例を示すものにすぎず、なんら発明の範囲を制限することを意図したものではない。
また、上述した特徴以外の、特許請求の範囲の各請求項に記載した技術的特徴に関しては、後述する実施形態の説明及び添付図面から明らかになる。
第1実施形態の電子制御装置の構成を示す構成図である。 第1実施形態の電子制御装置の第1コア及び第2コアにて実行される制御処理を示すフローチャートである。 図2のフローチャートの制御処理による、各部の動作の一例を示すタイミングチャートである。 第2実施形態の電子制御装置の第1コア及び第2コアにて実行される制御処理を示すフローチャートである。 図4のフローチャートの制御処理による、各部の動作の一例を示すタイミングチャートである。 第3実施形態の電子制御装置の第1コア及び第2コアにて実行される制御処理を示すフローチャートである。 図6のフローチャートの制御処理による、各部の動作の一例を示すタイミングチャートである。 第4実施形態の電子制御装置の構成を示す構成図である。 第4実施形態の電子制御装置の第1コア及び第2コアにて実行される制御処理を示すフローチャートである。 図9のフローチャートの制御処理による、各部の動作の一例を示すタイミングチャートである。 第5実施形態の電子制御装置の第1コア及び第2コアにて実行される制御処理を示すフローチャートである。 図11のフローチャートの制御処理による、各部の動作の一例を示すタイミングチャートである。
(第1実施形態)
以下、本発明の第1実施形態について、図面を参照しつつ説明する。図1は、第1実施形態の電子制御装置10を含む制御システム全体を示す構成図である。
電子制御装置10は、例えば車両のエンジンの燃料噴射や点火時期を制御する用途に適用される。この場合、電子制御装置10は、信号発生源30からのエンジンの回転角度に基づく燃料噴射指令や点火指令に応じて、外部負荷31としてのインジェクタや点火コイルへの駆動信号を出力するための特定プログラム(共通プログラム)を実行する。すなわち、信号発生源30からの燃料噴射指令や点火指令が、特定プログラムの実行要求となる。特定プログラムが実行されることにより、外部負荷31の駆動信号が生成され、この駆動信号は、出力ドライバ13を介して外部負荷31に与えられる。
信号発生源30は、例えば、電子制御装置10とは別の電子制御装置からなり、エンジンの回転角度及び回転速度を検出するクランク角センサ及びカム角センサの検出信号、アクセルペダルの踏み込み量を検出するアクセルセンサの検出信号、エンジンの水温を検出する水温センサの検出信号、車両の走行速度を検出する速度センサの検出信号などに基づき、最適なタイミングで燃料噴射や点火が行われるように、特定プログラムの実行要求としての燃料噴射指令や点火指令を生成して電子制御装置10に出力する。
ただし、信号発生源30は、上述した各種のセンサとし、電子制御装置10が、それら各種のセンサの検出信号を入力し、入力した検出信号に基づき、燃料噴射タイミングや点火タイミングを決定してもよい。この場合、電子制御装置10は、決定したタイミングに即して特定プログラムを実行すべく、そのタイミングの到来に応じて後述する共通プログラム実行要求フラグ22をセットすればよい。
また、信号発生源30が出力する燃料噴射指令に、噴射すべき燃料量を示す情報が含まれてもよい。あるいは、信号発生源30から燃料噴射指令を受けた電子制御装置10において、エンジンの運転状態や燃料圧力などに基づき、噴射すべき燃料量を算出してもよい。特定プログラムがインジェクタに対する駆動信号を生成するものである場合、指示もしくは算出された燃料量がインジェクタから噴射されるように、特定プログラムにより、インジェクタ内の燃料圧力に基づき、インジェクタへの駆動信号の出力期間が算出される。そして、電子制御装置10は、算出した出力期間に渡って、インジェクタへ駆動信号を出力する。
電子制御装置10は、図1に示すように、入力回路11、マルチコアマイコン12、及び出力ドライバ13を有する。入力回路11は、信号発生源30から入力される入力信号に対して、フィルタ処理、増幅処理、及び/又は波形整形処理などの入力処理を施した上で、入力信号をマルチコアマイコン12に受け渡す。出力ドライバ13は、マルチコアマイコン12から出力された駆動信号を、外部負荷31を駆動可能なレベルの駆動信号に増幅する。
マルチコアマイコン12は、第1コア14、第2コア15、ROM18、共有RAM21、ダイレクトメモリアクセス(DMA)コントローラ23、入出力インターフェースを提供するI/O回路24、25、及び、これらの各構成を相互に接続する内部バス26を備えている。なお、図1には、マルチコアマイコン12として、第1及び第2コア14,15を備えたデュアルコアマイコンを示しているが、マルチコアマイコン12のコアの数は3個以上であってもよい。
第1及び第2コア14、15は、それぞれローカルRAM16、17を有している。第1及び第2コア14、15は、演算処理の結果をローカルRAM16,17などに一時的に記憶しつつ、ROM18に記憶されたプログラムに応じた演算処理を実行する。これにより、第1及び第2コア14,15は、上述した外部負荷31としてのインジェクタや点火コイルへの駆動信号を生成して出力したり、噴射すべき燃料量を算出したりするための処理を実施する。
ROM18は、第1及び第2コア14、15にて実行されるプログラムを記憶している。本実施形態では、図1に示すように、ROM18は、第1コア用OS19a、共通プログラム19b、及び第1コア用個別プログラム19cを含む、第1コア14にて実行される第1コア用プログラム19と、第2コア用OS20a、共通プログラム20b、及び第2コア用個別プログラム20cを含む、第2コア15にて実行される第2コア用プログラム20とを個別に保存している。ここで、共通プログラム19bと共通プログラム20bとは同じものであり、ともに、信号発生源30からの特定プログラム実行要求に応じて実行され、外部負荷31への駆動信号を出力するためのものである。一方、第1コア用個別プログラム19cと第2コア用個別プログラム20cとは異なるものであり、第1及び第2コア14、15の並列処理によって全体の処理速度が向上するように、第1及び第2コア14,15にそれぞれ割り振られたものである。
しかしながら、第1コア用プログラム19と第2コア用プログラム20とは、第1及び第2コア14,15のそれぞれに割り振られた個別プログラム19c、20cだけを含み、OS及び/又は共通プログラムについては、第1及び第2コア14、15で共用されるプログラムがROM18に記憶されてもよい。
共有RAM21は、第1及び第2コア14、15がともにアクセス可能なもので、上述したローカルRAM16,17と同様に、一時的な記憶領域として利用される。この共有RAM21には、例えば、第1及び第2コア14,15の双方で利用されるデータなどが保存される。そのデータには、図1に示す共通プログラム実行要求フラグ22も含まれる。共通プログラム実行要求フラグ22は、電子制御装置10が信号発生源30から特定プログラムの実行要求を入力したとき「1」にセットされる。そして、第1及び第2コア14、15のいずれかで共通プログラムが実行されることに伴い「0」にリセットされる。
本実施形態では、DMAコントローラ23が、設定部として、信号発生源30からの特定プログラムの実行要求に応じて、共有RAM21内の共通プログラム実行要求フラグ22を「1」にセットする。一方、共通プログラム実行要求フラグ22の「0」へのリセットは、共通プログラム19b、20bを実行した第1コア14もしくは第2コア15によって行われる。ただし、共通プログラム実行要求フラグ22の「1」へのセットも、第1コア14又は第2コア15によって行われてもよい。この場合、共通プログラム実行要求フラグ22のセットを行うコアを、第1コア14と第2コア15のいずれかに固定しつつ、共通プログラム実行要求フラグ22のセット処理を最も優先度の高い処理として割り込み処理してもよいし、処理状況に応じて第1コア14と第2コア15のいずれかにおいて選択的にセット処理を行うようにしてもよい。
共通プログラム実行要求フラグ22が「1」にセットされると、第1コア14と第2コア15の内、プログラムを実行していないアイドル状態にあるコア、もしくは、個別プログラムにおける高優先度処理を先に終了したコアが、共通プログラム実行要求フラグ22の参照結果に基づき、共通プログラム19b、20bを実行して駆動信号を生成し、外部負荷31に出力する。
なお、第1コア用個別プログラム19c及び/又は第2コア用個別プログラム20cが共通プログラムよりも優先度の低い低優先度処理を含み、第1及び第2コア14、15の少なくとも一方がその低優先度処理を実行している場合には、共通プログラム実行要求フラグ22が「1」にセットされたときに、低優先度処理に対して共通プログラム19b、20bを割込処理してもよい。
次に、上述した構成を備えた電子制御装置10において、第1及び第2コア14、15の内、より早期に共通プログラム19b、20bを実行可能となったコアにより、共通プログラムを実行させるための処理について、図2のフローチャート及び図3のタイミングチャートを参照して説明する。なお、図2のフローチャートに示す処理は、第1コア用OS19a及び第2コア用OS20aにより、第1及び第2コア14、15において定期的に実行される。以下においては、図2のフローチャートに示す処理が第1コア14にて実行される場合を例として説明する。
図2のフローチャートのステップS100では、第1コア14は、個別プログラムの高優先度処理を実行中であるか否かを判定する。この判定処理において、個別プログラムの高優先度処理の実行中ではないと判定した場合、共通プログラムの実行が可能な状態であるとみなして、ステップS110の処理に進む。一方、個別プログラムの高優先度処理の実行中であると判定した場合、ステップS100の処理を繰り返すことにより、高優先度処理の終了を待機する。なお、第1コア14が共通プログラムの実行可能状態となるのは、高優先度処理の実行を終了したときに加え、プログラムを実行していないアイドル状態であるとき、及び個別プログラムの低優先度処理を実行しているときである。第1コア14が、これらの中のいずれかの状態であるとき、ステップS100において、第1コア14は、高優先度処理の実行中ではないと判定する。
ステップS110では、第2コア15が第1コア14よりも先に共通プログラムの実行可能な状態となり、第2コア15が共通プログラム実行要求フラグ22をロックしているか否かを判定する。この判定処理において、共通プログラム実行要求フラグ22がロックされていると判定した場合、図2のフローチャートに示す処理を終了する。例えば、図3のタイミングチャートに示すように、時間Bのときに、第2コア15が個別プログラムを終了し、共通プログラムの実行が可能な状態となると、第2コア15は、共通プログラム実行要求フラグ22をロックする。これにより、第1コア14は、ステップS110にて、共通プログラム実行要求フラグ22がロックされていると判定することになる。一方、共通プログラム実行要求フラグ22がロックされていないと判定した場合、ステップS120の処理に進む。ステップS120では、第1コア14は、他のコアである第2コア15に対して、共通プログラム実行要求フラグ22の参照を禁止するように通知して、共通プログラム実行要求フラグ22をロックする。
本実施形態では、上述したように、第1及び第2コア14、15とも、共通プログラムを実行可能に構成される。このため、第1及び第2コア14、15がほぼ同時期に共通プログラムを実行可能な状態となったときに、重複して共通プログラムを実行してしまう可能性が生じる。このような重複実行を回避するため、本実施形態では、先に共通プログラムを実行可能な状態となった第1又は第2コア14、15は、共通プログラム実行要求フラグ22を参照する前に、他のコアに対して、共通プログラム実行要求フラグ22の参照を禁止するように通知して、共通プログラム実行要求フラグ22をロックするのである。このように、先に共通プログラムを実行可能な状態となったコアが共通プログラム実行要求フラグ22をロックすることで、上述したステップS110の処理により、遅れて共通プログラムを実行可能な状態となったコアは、共通プログラム実行要求フラグ22を参照することなく、ひいては、共通プログラムを実行することなく、図2のフローチャートに示す処理を終了する。
続くステップS130では、共通プログラム実行要求フラグ22が「1」にセットされているか否かを判定する。例えば、図3のタイミングチャートに示すように、時間Dのときに、信号発生源30から共通プログラム実行要求があり、共有RAM21内の共通プログラム実行要求フラグ22が「1」にセットされている場合、時間Eのときに、第1コア14が共通プログラム実行要求フラグ22を参照すると、第1コア14は、共通プログラム実行要求フラグ22は「1」にセットされていると判定する。共通プログラム実行要求フラグ22が「1」にセットされていると判定した場合、ステップS140の処理に進む。一方、共通プログラム実行要求フラグ22が「1」にセットされていないと判定した場合、ステップS160の処理に進む。
ステップS140では、第1コア14は、共通プログラム実行要求フラグ22を「0」にリセットする。これにより、図3のタイミングチャートに示すように、共通プログラム実行要求フラグ22が、時間Eのときに、「1」から「0」に変化する。そして、第1コア14は、ステップS150において、共通プログラムを実行する。これにより、図3のタイミングチャートに示すように、第1コア14において、共通プログラムが時間Eから時間Fまで実行される。この共通プログラムの実行により出力すべき駆動信号が生成される。駆動信号は、例えば図3に示すように、共通プログラムの実行終了後の時間Fから出力が開始される。その後、処理はステップS160に進む。ただし、外部負荷31への駆動信号の出力タイミングは、共通プログラムの実行が終了した直後に限らず、例えば、共通プログラムの実行が終了した時点より任意のディレイ時間を設け、そのディレイ時間後であってもよい。
ステップS160では、第1コア14は、他のコアである第2コア15に対して共通プログラム実行要求フラグ22の参照の禁止解除を通知して、共通プログラム実行要求フラグ22をアンロックする。つまり、第1コア14は、共通プログラム実行要求フラグ22が「1」にセットされていない場合、及び共通プログラム実行要求フラグ22がセットされていたことに基づき、共通プログラムを実行した場合に、共通プログラム実行要求フラグ22をアンロックする。
以上説明したように、本実施形態の電子制御装置10では、信号発生源30からの実行要求に応じて実行される共通プログラムを、マルチコアマイコン12の第1及び第2コア14,15で実行可能としている。そして、信号発生源30からの実行要求に応じて、DMAコントローラ23が、共通プログラムの実行が必要であることを示す共通プログラム実行要求フラグ22をセットするようにしている。そして、第1及び第2コア14,15は、少なくとも実行中の個別プログラムの高優先度処理が終了したときに共通プログラム実行要求フラグ22を参照する。従って、例えば第1及び第2コア14,15が高優先度処理を実行中に、共通プログラム実行要求フラグ22がセットされた場合、先に高優先度処理の実行を終了したコアが共通プログラムを実行する。このため、処理の優先順位を変更せずとも、最も早いタイミングで共通プログラムの実行を開始することができ、共通プログラムのリアルタイム性を向上することができる。
(第2実施形態)
次に、本発明の第2実施形態について、図面を参照しつつ説明する。なお、本実施形態の電子制御装置10は、第1実施形態の電子制御装置10と同様に構成されるので、説明を省略する。
上述した第1実施形態の電子制御装置10では、図2のフローチャートのステップS140で共通プログラム実行要求フラグ22が「0」にリセットされる。このため、例えば、その直後(共通プログラムの実行中)に、DMAコントローラ23が、信号発生源30からの共通プログラム実行要求に応じて、共通プログラム実行要求フラグ22を「1」にセットした場合であっても、共通プログラムが実行可能か否かの判断は、図2のフローチャートが起動される次回以降まで待たなければならない。なお、DMAコントローラ23は、第1コア14によって共通プログラム実行要求フラグ22がロックされている間も、共通プログラム実行要求フラグ22を「1」にセットすることが可能である。
そこで、第2実施形態の電子制御装置10では、図4のフローチャートに示すように、上述した第1実施形態の図2のフローチャートのステップS150の後に、ステップS152の処理を追加した。具体的には、ステップS150の共通プログラムの実行中に、DMAコントローラ23が共通プログラム実行要求フラグ22を「1」にセットする場合に備えて、共通プログラムの実行後に、ステップS152において、再度、共通プログラム実行要求フラグ22が「1」にセットされているか否かを判定するようにした。この判定処理において、共通プログラム実行要求フラグ22が「1」にセットされていると判定されると、第1コア14は、ステップS140及びステップS150の処理を再実行する。なお、図4のフローチャートの他のステップにおける処理は、第1実施形態と同様であるため、説明を省略する。
以上のようなステップS152の処理の追加により、例えば、図5のタイミングチャートに示すように、第2コア15による共通プログラムの実行中の時間Dのときに、DMAコントローラ23が共通プログラム実行要求フラグ22を「1」にセットした場合、第2コア15は、共通プログラムの実行が終了した後の時間Eのときに、ステップS140及びS150の処理を再度実行する。これにより、第2コア15において、共通プログラム実行要求フラグ22のリセット処理と、共通プログラムの実行処理が行なわれる。このように、本実施形態の電子制御装置10では、第2コア15により、共通プログラムが連続して実行されることを可能としたので、共通プログラムのリアルタイム性をさらに向上することができる。
(第3実施形態)
次に、本発明の第3実施形態について、図面を参照しつつ説明する。なお、本実施形態の電子制御装置10は、第1実施形態の電子制御装置10と同様に構成されるので、説明を省略する。
上述した第2実施形態では、共通プログラムの実行期間中に、DMAコントローラ23が共通プログラム実行要求フラグ22を「1」にセットした場合、連続して、共通プログラムを実行することができるように構成した。しかしながら、共通プログラムの実行中に発生した共通プログラムの実行要求は無視するようにしてもよい。第3実施形態の電子制御装置10は、共通プログラムの実行期間中に発生した共通プログラムの実行要求を無視できるようにしたものである。
そのため、第3実施形態の電子制御装置10では、図6のフローチャートに示すように、上述した第1実施形態の図2のフローチャートのステップS150の後に、共通プログラム実行要求フラグ22を「0」にリセットするステップS154の処理を追加した。これにより、ステップS150の共通プログラムの実行中に、DMAコントローラ23が共通プログラム実行要求フラグ22を「1」にセットしても、共通プログラムの実行後に、再度、共通プログラム実行要求フラグ22が「0」にリセットされる。このため、共通プログラムの実行中に発生した共通プログラムの実行要求は無視される。なお、図6のフローチャートの他のステップにおける処理は、第1実施形態と同様であるため、説明を省略する。また、共通プログラムを実行する前に、共通プログラム実行要求フラグ22を「0」にリセットするステップS140の処理は省略されてもよい。
以上のようなステップS154の処理の追加により、例えば、図7のタイミングチャートに示すように、第2コア15による共通プログラムの実行中の時間Dのときに、DMAコントローラ23が共通プログラム実行要求フラグ22を「1」にセットしても、第2コア15は、共通プログラムの実行が終了した時間Eのときに、単に、その共通プログラム実行要求フラグ22を「0」にリセットする。このため、第2コア15は、連続的に共通プログラムを実行せず、共通プログラムの実行回数は、共通プログラム実行要求の回数よりも少なくなる。
(第4実施形態)
次に、本発明の第4実施形態について、図面を参照しつつ説明する。図8は、本実施形態の電子制御装置10を含む制御システム全体の構成を示す構成図である。
上述した第1~第3実施形態の電子制御装置10では、共有RAM21に共通プログラム実行要求フラグ22を設けていた。それに対して、本実施形態の電子制御装置10は、図8に示すように、共通プログラム実行要求カウンタ22aを設けた点が異なる。本実施形態の電子制御装置10のその他の構成は、第1実施形態の電子制御装置10と同様であるので、説明を省略する。
共通プログラム実行要求カウンタ22aは、信号発生源30から共通プログラム実行要求が電子制御装置10に入力されると、DMAコントローラ23によってインクリメントされる。一方、共通プログラム実行要求カウンタ22aは、第1及び第2コア14、15によって共通プログラムが実行されることに伴い、第1及び第2コア14、15によってデクリメントされる。
このように、共通プログラム実行要求フラグ22に代えて、共通プログラム実行要求カウンタ22aを用いることで、信号発生源30から入力された共通プログラム実行要求の回数を記憶しておくことができる。その結果、共通プログラム実行要求の回数分だけ、確実に共通プログラムを実行することが可能となる。
図9は、第4実施形態の電子制御装置10が、第1及び第2コア14、15の内、より早期に共通プログラム19b、20bを実行可能となったコアにより、共通プログラムを実行させるための処理を示すフローチャートである。図9のフローチャートに示す処理も、図2のフローチャートの処理と同様に、第1コア用OS19a及び第2コア用OS20aにより、第1及び第2コア14、15において定期的に実行される。また、図10は、図9のフローチャートが実行されたときの各部の動作を示すタイミングチャートである。以下においては、図9のフローチャートに示す各処理が第2コア15にて実行される場合を例として説明する。
図9のフローチャートのステップS200では、図2のフローチャートのステップS100と同様に、第2コア15は、個別プログラムの高優先度処理を実行中であるか否かを判定する。この判定処理において、個別プログラムの高優先度処理の実行中ではないと判定した場合、共通プログラムの実行が可能な状態であるとみなして、ステップS210の処理に進む。一方、個別プログラムの高優先度処理の実行中であると判定した場合、ステップS200の処理を繰り返すことにより、高優先度処理の終了を待機する。
ステップS210では、第1コア14が第2コア15よりも先に共通プログラムの実行可能な状態となり、第1コア14が共通プログラム実行要求カウンタ22aをロックしているか否かを判定する。この判定処理において、共通プログラム実行要求カウンタ22aがロックされていると判定した場合、図9のフローチャートに示す処理を終了する。例えば、図10のタイミングチャートに示すように、時間Cのときに、第2コア15が個別プログラムを終了し、共通プログラムの実行が可能な状態となると、第2コア15は、共通プログラム実行要求カウンタ22aをロックする。これにより、第1コア14は、ステップS210にて、共通プログラム実行要求カウンタ22aがロックされていると判定することになる。一方、共通プログラム実行要求カウンタ22aがロックされていないと判定した場合、ステップS220の処理に進む。ステップS220では、第2コア15は、他のコアである第1コア14に対して、共通プログラム実行要求カウンタ22aの参照を禁止するように通知して、共通プログラム実行要求カウンタ22aをロックする。
このように、第1実施形態と同様に、先に共通プログラムを実行可能な状態となったコアが共通プログラム実行要求カウンタ22aをロックすることで、上述したステップS210の処理により、遅れて共通プログラムを実行可能な状態となったコアは、共通プログラム実行要求カウンタ22aを参照することなく、ひいては、共通プログラムを実行することなく、図9のフローチャートに示す処理を終了する。
続くステップS230では、共通プログラム実行要求カウンタ22aのカウント値が「0」以外の値であるか否かを判定する。例えば、図10のタイミングチャートに示すように、共通プログラム実行要求カウンタ22aのカウント値は、時間Aのときの信号発生源30から共通プログラム実行要求に応じて「0」から「1」へ変化し、さらに、時間Bのときの信号発生源30から共通プログラム実行要求に応じて「1」から「2」へ変化する。このように、共通プログラム実行要求カウンタ22aのカウント値が「0」以外の値である場合、ステップS230の判定結果が「Yes」となり、ステップS240の処理に進む。一方、共通プログラム実行要求カウンタ22aのカウント値が「0」である場合、ステップS230の判定結果が「No」となり、ステップS260の処理に進む。
ステップS240では、第2コア15は、共通プログラム実行要求カウンタ22aをデクリメントする。これにより、たとえば図10のタイミングチャートに示すように、共通プログラム実行要求カウンタ22aが、時間Cのときに、「2」から「1」に変化する。そして、第2コア15は、ステップS250において、共通プログラムを実行する。これにより、図10のタイミングチャートに示すように、第2コア15において、共通プログラムが時間Cから時間Dまで実行される。この共通プログラムの実行により出力すべき駆動信号が生成される。駆動信号は、例えば図10に示すように、共通プログラムの実行終了後の時間Dから出力が開始される。
そして、第2コア15は、ステップS252において、再度、共通プログラム実行要求カウンタ22aのカウント値が「0」以外の値であるか否かを判定する。例えば図10に示すように、時間Cで共通プログラム実行要求カウンタ22aが「2」から「1」に変化した場合、共通プログラムの実行後の時間Dで実施されるステップS252において、共通プログラム実行要求カウンタ22aのカウント値は「0」以外の値と判定される。すると、第2コア15は、再びステップS240及びS250の処理を実行する。これにより、図10に示すように、時間Dで共通プログラム実行要求カウンタ22aのカウント値は「1」から「0」に変化し、さらに、時間Dから時間Eまで共通プログラムが実行される。
ステップS260では、第2コア15は、他のコアである第1コア14に対して共通プログラム実行要求カウンタ22aの参照の禁止解除を通知して、共通プログラム実行要求カウンタ22aをアンロックする。
以上のように、本実施形態の電子制御装置10では、信号発生源30から入力される共通プログラムの実行要求の回数をカウントする共通プログラム実行要求カウンタ22aを用いているので、共通プログラム実行要求の回数分だけ、確実に共通プログラムを実行することが可能となる。
(第5実施形態)
次に、本発明の第5実施形態について、図面を参照しつつ説明する。なお、本実施形態の電子制御装置10は、第4実施形態の電子制御装置10と同様に構成されるので、説明を省略する。
上述した第4実施形態の電子制御装置10では、図9のフローチャートのステップS260で共通プログラム実行要求カウンタ22aがアンロックされる。このため、一方のコアで共通プログラムを実行する場合、他のコアでは、一方のコアにおける共通プログラムの実行の終了まで、共通プログラムを実行することができない。それに対して、本実施形態の電子制御装置10では、一方のコアにおける共通プログラムの実行の終了を待たずに、他のコアにおいて共通プログラムの実行が開始できるようにしたものである。
そのため、本実施形態の電子制御装置10では、図11のフローチャートに示すように、ステップS240にて共通プログラム実行要求カウンタ22aをデクリメントした後、かつステップS250にて共通プログラムを実行する前に、ステップS242において、他のコアに対して共通プログラム実行要求カウンタ22aのカウント値の参照の禁止解除を通知して、共通プログラム実行要求カウンタ22aをアンロックする。この結果、例えば図12のタイミングチャートに示すように、第2コア15にて時間Cから開始された共通プログラムが時間Eで終了する前に、時間Dより第1コア14が共通プログラムの実行を開始することが可能となる。これにより、共通プログラム実行要求カウンタ22aに複数回の共通プログラムの実行要求が記憶されている場合に、複数のコアを用いて、効率的に共通プログラムを実行させることができる。
なお、図11のフローチャートでは、ステップS250で共通プログラムの実行が完了すると、ステップS210の処理に戻り、共通プログラム実行要求カウンタ22aがロックされているかどうかを確認する。共通プログラム実行要求カウンタ22aがロックされていなければ、ステップS220にて、共通プログラム実行要求カウンタ22aをロックした上で、ステップS230において、まだ共通プログラム実行要求カウンタ22aが「0」以外の値であるかどうかを確認する。この際、共通プログラム実行要求カウンタ22aの値が「0」であれば、ステップS262にて共通プログラム実行要求カウンタ22aをアンロックして、図11のフローチャートに示す処理を終了する。一方、共通プログラム実行要求カウンタ22aの値が「0」以外であれば、再度、ステップS240以降の処理を実行する。
以上、本発明の好ましい実施形態について説明した。しかしながら、本発明は、上記実施形態に何ら制限されることはなく、本発明の趣旨を逸脱しない範囲において、種々の変形が可能である。
例えば、上述した第1~第5実施形態では、マルチコアマイコン12としてのデュアルコアマイコンに含まれるすべてのコアが共通プログラムを実行可能に構成されていた。しかしながら、例えば、マルチコアマイコン12のコア数が3以上である場合、必ずしもすべてのコアが共通プログラムを実行可能である必要はなく、少なくとも2個のコアで共通プログラムが実行可能に構成されてもよい。このような構成であっても、共通プログラムのリアルタイム性の向上を図ることができるためである。
10:電子制御装置、11:入力回路、12:マルチコアマイコン、13:出力ドライバ、14:第1コア、15:第2コア、16、17:ローカルRAM、18:ROM、19:第1コア用プログラム、19a:第1コア用OS、19b:共通プログラム、19c:第1コア用個別プログラム、20:第2コア用プログラム、20a:第2コア用OS、20b:共通プログラム、20c:第2コア用個別プログラム、21:共有RAM、22:共通プログラム実行要求フラグ、22a:共通プログラム実行要求カウンタ、23:DMAコントローラ、24、25:I/O回路、26:内部バス、30:信号発生源、31:外部負荷

Claims (12)

  1. マルチコアマイコン(12)を備える電子制御装置であって、
    前記マルチコアマイコンは、複数のコア(14、15)にそれぞれに割り当てられた個別プログラム(19c、20c)と、前記複数のコアの中の少なくとも2個のコアで実行可能な共通プログラム(19b、20b)とを有し、
    外部から入力される信号に基づいて、前記共通プログラムの実行が必要であることを示す要求情報を設定する設定部(23)を備え、
    前記複数のコアの中の少なくとも2個のコアは、少なくとも実行中の前記個別プログラムが終了したときに前記要求情報を参照し、前記要求情報が設定されていれば、前記共通プログラムを実行することを特徴とする電子制御装置。
  2. 前記複数のコアの中の少なくとも2個のコアは、前記個別プログラム又は前記共通プログラムを実行していないアイドル状態の間、定期的に前記要求情報を参照し、前記要求情報が設定されていれば、前記共通プログラムを実行することを特徴とする請求項1に記載の電子制御装置。
  3. 前記複数のコアの中の少なくとも2個のコアは、前記要求情報を参照する際に、他のコアに対して前記要求情報の参照の禁止を通知して、前記要求情報をロックすることを特徴とする請求項1又は2に記載の電子制御装置。
  4. 前記複数のコアの中の少なくとも2個のコアは、前記要求情報が設定されていない場合、もしくは、前記要求情報が設定されていたことに基づき、前記共通プログラムの実行を決定するか又は実行した場合に、他のコアに対して前記要求情報の参照の禁止解除を通知して、前記要求情報をアンロックすることを特徴とする請求項3に記載の電子制御装置。
  5. 前記設定部は、前記要求情報がロックされている間も、前記要求情報を設定することが可能であることを特徴とする請求項3又は4に記載の電子制御装置。
  6. 前記設定部は、前記要求情報の設定として、要求フラグ(22)をセットし、
    前記複数のコアの中の少なくとも2個のコアは、前記共通プログラムの実行に伴い、前記要求フラグをリセットすることを特徴とする請求項1乃至5のいずれかに記載の電子制御装置。
  7. 前記複数のコアの中の少なくとも2個のコアは、前記共通プログラムの実行前に、前記要求フラグをリセットすることを特徴とする請求項6に記載の電子制御装置。
  8. 前記複数のコアの中の少なくとも2個のコアは、前記共通プログラムの実行後に前記要求フラグを参照し、前記要求フラグがセットされていれば、続けて、前記共通プログラムを実行することを特徴とする請求項7に記載の電子制御装置。
  9. 前記複数のコアの中の少なくとも2個のコアは、前記共通プログラムの実行後に、前記要求フラグをリセットすることを特徴とする請求項6に記載の電子制御装置。
  10. 前記設定部は、前記要求情報の設定として、外部からの信号に基づく実行要求の回数をカウントするカウンタ(22a)をインクリメントし、
    前記複数のコアの中の少なくとも2個のコアは、前記共通プログラムの実行に伴い、前記カウンタをデクリメントすることを特徴とする請求項1乃至5のいずれかに記載の電子制御装置。
  11. 前記複数のコアの中の少なくとも2個のコアは、前記共通プログラムの実行後に前記カウンタを参照し、前記カウンタの実行要求回数がゼロでなければ、続けて、前記共通プログラムを実行することを特徴とする請求項10に記載の電子制御装置。
  12. 前記複数のコアの中の少なくとも2個のコアは、前記カウンタの実行要求回数を参照する際に、他のコアに対して前記カウンタの実行要求回数の参照の禁止を通知して、前記カウンタの実行要求回数をロックした状態で、当該実行要求回数をデクリメントした後、前記共通プログラムの実行前に、他のコアに対して前記カウンタの実行要求回数の参照の禁止解除を通知して、前記カウンタの実行要求回数をアンロックすることを特徴とする請求項10又は11に記載の電子制御装置。
JP2018107866A 2018-06-05 2018-06-05 マルチコアマイコンを備える電子制御装置 Active JP7070108B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018107866A JP7070108B2 (ja) 2018-06-05 2018-06-05 マルチコアマイコンを備える電子制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018107866A JP7070108B2 (ja) 2018-06-05 2018-06-05 マルチコアマイコンを備える電子制御装置

Publications (2)

Publication Number Publication Date
JP2019212032A JP2019212032A (ja) 2019-12-12
JP7070108B2 true JP7070108B2 (ja) 2022-05-18

Family

ID=68844094

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018107866A Active JP7070108B2 (ja) 2018-06-05 2018-06-05 マルチコアマイコンを備える電子制御装置

Country Status (1)

Country Link
JP (1) JP7070108B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7447782B2 (ja) * 2020-12-23 2024-03-12 株式会社オートネットワーク技術研究所 車載コンピュータ、コンピュータ実行方法及びコンピュータプログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004038511A (ja) 2002-07-03 2004-02-05 Nec Corp マルチプロセッサシステム及びそれに用いる負荷分散制御方法並びにそのプログラム
JP2004038766A (ja) 2002-07-05 2004-02-05 Denso Corp 車両用通信システム
JP2015143998A (ja) 2015-02-27 2015-08-06 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 電気通信ネットワークにおけるイベントを処理するための装置および方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004038511A (ja) 2002-07-03 2004-02-05 Nec Corp マルチプロセッサシステム及びそれに用いる負荷分散制御方法並びにそのプログラム
JP2004038766A (ja) 2002-07-05 2004-02-05 Denso Corp 車両用通信システム
JP2015143998A (ja) 2015-02-27 2015-08-06 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 電気通信ネットワークにおけるイベントを処理するための装置および方法

Also Published As

Publication number Publication date
JP2019212032A (ja) 2019-12-12

Similar Documents

Publication Publication Date Title
JP2793993B2 (ja) マイクロコンピュータにおけるプログラム暴走検出方法
JP4241462B2 (ja) 制御ユニットおよびマイクロコンピュータ
JP7070108B2 (ja) マルチコアマイコンを備える電子制御装置
JP5533789B2 (ja) 車載電子制御装置
JP6519515B2 (ja) マイクロコンピュータ
JP2020135214A (ja) タスク管理装置
JP4419943B2 (ja) Cpu間データ転送装置
JP2005301812A (ja) デジタル制御装置およびこれを用いたエンジン制御装置
US6754576B2 (en) Electronic control unit having different mask return processes
EP1248192B1 (en) Processing execution apparatus having data reference limiting function
JP6512087B2 (ja) 車両用制御装置
JP6447442B2 (ja) 電子制御装置
JP6466269B2 (ja) 電子制御装置及びスタック領域の使用監視方法
JP2001256063A (ja) 制御装置及びエンジン制御装置
WO2010109609A1 (ja) 処理装置及び車両用エンジン制御装置
JP6771272B2 (ja) 車載電子制御装置及びスタック使用方法
JP5794012B2 (ja) 電子制御装置
JP2016162330A (ja) 電子制御装置
JP3400605B2 (ja) 制御用処理装置
CN101751293A (zh) 程序的线程群组管理方法
JP5561294B2 (ja) マイクロコンピュータ
JP2018055579A (ja) 電子制御装置
JP2021015613A (ja) 電子制御装置
JP4752807B2 (ja) マイクロコンピュータ
JP2019135656A (ja) 電子制御装置及びスタック使用方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210218

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211223

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211228

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: 20220405

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220418

R151 Written notification of patent or utility model registration

Ref document number: 7070108

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151