JP6519515B2 - マイクロコンピュータ - Google Patents
マイクロコンピュータ Download PDFInfo
- Publication number
- JP6519515B2 JP6519515B2 JP2016071833A JP2016071833A JP6519515B2 JP 6519515 B2 JP6519515 B2 JP 6519515B2 JP 2016071833 A JP2016071833 A JP 2016071833A JP 2016071833 A JP2016071833 A JP 2016071833A JP 6519515 B2 JP6519515 B2 JP 6519515B2
- Authority
- JP
- Japan
- Prior art keywords
- core
- processing
- slave
- master
- unit
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Hardware Redundancy (AREA)
Description
情報出力部は、イベント発生条件が成立したとイベント判断部が判断した場合に、イベントが発生した旨を示すイベント情報をスレーブコアへ出力するように構成される。
本実施形態の電子制御装置1(以下、ECU1)は、車両に搭載され、図1に示すように、マイクロコンピュータ(以下、マイコン)、入力回路4および出力回路5を備えている。ECUは、Electronic Control Unitの略である。
イベント生成部31は、予め設定された角度イベント生成条件が成立したか否かを判断し、角度イベント生成条件が成立したと判断した場合に、角度同期イベントを生成する。本実施形態の角度イベント生成条件は、クランク軸が予め設定されたイベント生成角度(例えば、30°CA)回転することである。このため、イベント生成部31は、クランク角センサからの信号に基づいて、クランク軸がイベント生成角度回転する毎に角度同期イベントを生成する。またイベント生成部31は、予め設定された時間イベント生成条件が成立したか否かを判断し、時間イベント生成条件が成立したと判断した場合に、時間同期イベントを生成する。本実施形態の時間イベント生成条件は、予め設定されたイベント生成時間(例えば、1ms)が経過することである。このため、イベント生成部31は、イベント生成時間が経過する毎に、時間同期イベントを生成する。
データ管理部35は、処理実行部34が処理を実行することにより算出されたデータのうち、コア21とコア22との間で共有する必要がある共有データをRAM13に記憶する。
イベント管理部52は、同期部61とタスク要求部62を備える。同期部61は、マスタコア21から角度同期イベント情報が入力されると、角度同期イベント情報をタスク要求部62へ出力する。同期部61は、マスタコア21から時間同期イベント情報が入力されると、時間同期イベント情報をタスク要求部62へ出力する。
データ管理部55は、処理実行部54が処理を実行することにより算出されたデータのうち、コア21とコア22との間で共有する必要がある共有データをRAM13に記憶する。
具体的には、処理A1,C1,F1の実行コア制約は、コア21,22で実行可能となるように設定されている。処理B1の実行コア制約は、コア21で実行可能でありコア22で実行不可となるように設定されている。処理D1,E1の実行コア制約は、コア22で実行可能でありコア21で実行不可となるように設定されている。
第1処理順判断処理が実行されると、スケジューラ33,53は、図3に示すように、まずS10にて、角度同期タスクの実行要求が入力されたか否かを判断する。ここで、角度同期タスクの実行要求が入力されていない場合には、第1処理順判断処理を一旦終了する。一方、角度同期タスクの実行要求が入力された場合には、S15にて、角度同期タスクに含まれる複数の処理A1,B1,C1,D1,E1,F1の処理状態情報を「未処理」に設定する。処理状態情報は、処理A1〜F1のそれぞれに対して設けられており、RAM13に記憶されている。処理状態情報には、「未処理」、「実行中」および「終了」の何れか1つの状態が設定される。処理状態情報は、初期値として、「未処理」の状態が設定されている。そしてS20にて、角度同期タスクに含まれる複数の処理A1,B1,C1,D1,E1,F1の中から1つの処理を選択する。以下、S20で選択された処理を第1対象処理という。
第2処理順判断処理が実行されると、スケジューラ33,53は、図5に示すように、まずS310にて、時間同期タスクの実行要求が入力されたか否かを判断する。ここで、時間同期タスクの実行要求が入力されていない場合には、第2処理順判断処理を一旦終了する。一方、時間同期タスクの実行要求が入力された場合には、S315にて、時間同期タスクに含まれる複数の処理A2,B2,C2,D2,E2の処理状態情報を「未処理」に設定する。処理状態情報は、処理A2〜E2のそれぞれに対して設けられており、RAM13に記憶されている。そしてS320にて、時間同期タスクに含まれる複数の処理A2,B2,C2,D2,E2の中から1つの処理を選択する。以下、S320で選択された処理を第2対象処理という。
このように構成されたマイコン3は、コア21,22を備える。コア21,22のうち、コア21をマスタコア21とし、コア22をスレーブコア22とする。
またマイコン3では、スケジューラ33およびスケジューラ53は、処理順制約テーブル40に設定されている処理順制約と、処理状態情報とに加えて、更に、処理順制約テーブル40に設定されている実行コア制約に基づいて、実行させる処理を決定するように構成される。これにより、マイコン3は、処理順制約と実行コア制約とを同時に満たして、角度同期タスクおよび時間同期タスクを実行することができる。
また、マスタコア21が実行するS20,S70,S320,S370がマスタ選択部としての処理に相当し、マスタコア21が実行するS30〜S60,S80〜S100,S140がマスタ判断部としての処理に相当する。また、スレーブコア22が実行するS20,S70,S320,S370がスレーブ選択部としての処理に相当し、スレーブコア22が実行するS30〜S60,S80〜S100,S140がスレーブ判断部としての処理に相当する。また、マスタコア21で選択された第1対象処理、第1対象制約処理、第2対象処理および第2対象制約処理はマスタ対象処理に相当し、スレーブコア22で選択された第1対象処理、第1対象制約処理、第2対象処理および第2対象制約処理はスレーブ対象処理に相当する。
以上、本開示の一実施形態について説明したが、本開示は上記実施形態に限定されるものではなく、種々変形して実施することができる。
例えば上記実施形態では、CPUが2個のコアを備えるものを示したが、3個以上のコアを備えるようにしてもよい。
上記実施形態では、角度同期タスクまたは時間同期タスクの実行要求が入力された場合に、角度同期タスクまたは時間同期タスクに含まれる複数の処理の中から1つの処理を第1対象処理または第2対象処理として選択するものを示した。しかし、処理順制約が設定されている処理を優先的に選択するようにしてもよい。これにより、事前に実行する必要がある処理が完了するまで待機する必要がある状況が発生している場合において、処理順制約が設定されていない処理が存在している可能性が高くなる。このため、処理順制約が設定されている処理が待機している空き時間において、処理順制約が設定されていない処理を実行させることができる可能性が高まり、上記の空き時間を有効に利用することが可能となる。
また、実行コア制約が設定されている処理を優先的に第1対象処理または第2対象処理として選択するようにしてもよい。これにより、実行コア制約が設定されていることにより実行可能コアが制限されている処理について、実行可能コアにおいて他の処理が完了するまで待機する状況が発生する可能性を低減することができる。
また、角度同期イベントまたは時間同期イベントが発生してから処理が完了するまでに許容される時間の制約(以下、ジッター制約)が設定されている処理を優先的に第1対象処理または第2対象処理として選択するようにしてもよい。これにより、ジッター制約を満たすことができなくなる事態の発生を抑制することができる。
角度同期タスクまたは時間同期タスクに含まれる複数の処理のうち、処理時間が変動する可能性がないものは、順序を固定して実行し、処理順序が変わる処理のみに第1処理順判断処理と第2処理順判断処理を適用するようにしてもよい。
上記実施形態では、処理順制約において、自処理の実行前に実行する必要がある処理を、直接的な処理だけではなく間接的な処理も含めて設定した。例えば、処理順制約テーブル40において、処理F1の処理順制約では、処理A1,B1,C1が設定されている。処理F1の実行前に実行する必要がある直接的な処理は処理B1,C1であり、間接的な処理は処理A1である。処理順制約テーブル40において、処理B1,C1の処理順制約では、処理A1が設定されているためである。しかし、処理順制約において、自処理の実行前に実行する必要がある処理を、直接的な処理だけを含めて設定するようにしてもよい。例えば、処理F1の処理順制約において、処理B1,C1を設定するようにしてもよい。これにより、処理順制約テーブル40のデータ量を低減することができる。
また、処理順制約テーブル40において、自処理の実行前に実行する必要がある直接的な処理を記憶し、間接的な処理を記憶しないようしている場合には、ECU1が起動した直後に、間接的な処理を決定する演算を行うようにしてもよい。例えば、処理順制約テーブル40において、処理B1,C1の処理順制約では、処理A1が設定され、処理F1の処理順制約において、処理B1,C1が設定されているとする。そして、処理F1の処理順制約において処理B1,C1が設定され、処理B1,C1の処理順制約では処理A1が設定されていることから、処理F1の実行前に実行する必要がある間接的な処理は処理A1であると決定することができる。そして、間接的な処理を決定した後に、決定した処理を新たに処理順制約テーブル40に記憶させる。例えば、処理順制約テーブル40において、処理F1の処理順制約において、処理A1,B1,C1が設定される。これにより、間接的な処理を決定するための演算を、ECU1が起動した直後に1回だけ実行すればよく、ECU1の演算処理負荷を低減することができる。
上記実施形態では、第1対象制約処理または第2対象制約処理が「実行中」である場合には、他の第1制約処理または第2制約処理を選択するものを示した。しかし、処理時間が短い第1制約処理または第2制約処理が多い場合には、第1対象制約処理または第2対象制約処理が終了するまで待機させるようにしてもよい。
上記実施形態では、エンジン位置0,1,・・・,22,23における共有データを記憶するものを示した。しかし、共有データの前回値のみを記憶するようにしてもよい。例えば、現時点でエンジン位置2である場合には、前回値として、エンジン位置1のときの共有データのみを記憶するようにしてもよい。また上記実施形態では、角度同期タスクの処理を実行することにより算出された共有データについて、エンジン位置0,1,・・・・・,22,23における算出値をRAM13に記憶するものを示した。しかし、時間同期タスクの処理を実行することにより算出された共有データについても、最新の共有データと、最新の共有データが算出された時点より過去における少なくとも1つの時点で算出された共有データとをRAM13に記憶するようにしてもよい。
角度同期イベントが発生したときに、前回の角度同期イベントに対応した角度同期タスクが終了していない状況が発生することを考慮して、角度同期タスクに含まれる複数の処理のそれぞれに対して設けられている処理状態情報は、エンジン位置毎に設けられるようにしてもよい。例えば、処理A1の処理状態情報は、エンジン位置0,1,・・・,22,23のそれぞれに対応して24個設けられるようにしてもよい。時間同期タスクに含まれる複数の処理のそれぞれに対して設けられている処理状態情報についても同様に、時間同期イベントが発生した時刻毎に設けられるようにしてもよい。これにより、角度同期イベントが発生したときに、前回の角度同期イベントに対応した角度同期タスクが終了していない状況が発生したとしても、前回の角度同期イベントに対応した角度同期タスクの処理状態情報が消去されないようにすることができる。
上記実施形態では、処理順制約テーブル40に設定されている実行コア制約および処理順制約が、角度同期イベントが発生したエンジン位置と、時間同期イベントが発生した時刻とに関わらず同一であるものを示した。しかし、処理順制約テーブル40に設定されている実行コア制約および処理順制約が、角度同期イベントが発生したエンジン位置、または時間同期イベントが発生した時刻によって異なるようにしてもよい。このように、イベント毎に個別の処理順制約テーブルを備えることによって、不必要な実行コア制約および処理順制約を減らし、処理の実行待ちが発生する確率を低減することができる。
[変形例12]
上記実施形態では、処理状態情報には、「未処理」、「実行中」および「終了」の何れか1つの状態が設定されるものを示した。すなわち、「実行中」および「終了」は、処理を実行可能な状態でないことを示し、「未処理」は、処理を実行可能な状態であることを示す。しかし、処理状態情報は、処理を実行可能な状態であるか否かを示すことができれば、2つの状態が設定されるものであってもよいし、4つ以上の状態が設定されるものであってもよい。
Claims (4)
- 演算処理を実行するコア(21,22)を複数備えるマイクロコンピュータ(3)であって、
複数の前記コアのうち、1個の前記コアをマスタコア(21)とし、前記マスタコア以外の前記コアをスレーブコア(22)として、
前記マスタコアは、
予め設定されたイベント発生条件が成立したか否かを判断するように構成されたイベント判断部(31)と、
前記イベント発生条件が成立したと前記イベント判断部が判断した場合に、イベントが発生した旨を示すイベント情報を前記スレーブコアへ出力するように構成された情報出力部(42)と、
前記イベント発生条件が成立したと前記イベント判断部が判断した場合に、前記イベントに対応して予め設定された複数の前記演算処理を含むタスクの実行を要求するように構成されたマスタ要求部(41)と、
前記マスタ要求部が前記タスクの実行を要求した場合に、前記タスクに含まれる複数の前記演算処理のそれぞれについて事前に実行する必要がある他の前記演算処理が予め設定された処理制約情報と、前記タスクに含まれる複数の前記演算処理のそれぞれについて前記演算処理を実行可能な状態であるか否かを示す処理状態情報とに基づいて、前記複数の演算処理の中から、前記マスタコアに実行させる前記演算処理を決定するように構成されたマスタ決定部(33)とを備え、
前記スレーブコアは、
前記情報出力部から前記イベント情報が入力されると、前記タスクの実行を要求するように構成されたスレーブ要求部(52)と、
前記スレーブ要求部が前記タスクの実行を要求した場合に、前記処理制約情報と前記処理状態情報とに基づいて、複数の前記演算処理の中から、前記スレーブコアに実行させる前記演算処理を決定するように構成されたスレーブ決定部(53)とを備えるマイクロコンピュータ。 - 請求項1に記載のマイクロコンピュータであって、
前記マスタ要求部および前記スレーブ要求部は、
前記処理制約情報および前記処理状態情報に加えて、更に、前記タスクに含まれる複数の前記演算処理のそれぞれについて実行可能な前記コアが予め設定されたコア制約情報に基づいて、実行させる前記演算処理を決定するように構成されるマイクロコンピュータ。 - 請求項1または請求項2に記載のマイクロコンピュータであって、
前記マスタ決定部は、
複数の前記演算処理の中から1つの前記演算処理を選択するように構成されたマスタ選択部(S20,S70,S320,S370)と、
少なくとも前記処理制約情報および前記処理状態情報に基づいて、前記マスタ選択部で選択された前記演算処理であるマスタ対象処理が前記マスタコアにおいて実行可能であるか否かを判断するマスタ判断部(S30〜S60,S80〜S100,S140)とを備え、
前記マスタ選択部は、前記マスタコアにおいて前記マスタ対象処理を実行可能ではないと前記マスタ判断部が判断した場合に、更に他の前記演算処理を前記マスタ対象処理として選択し、
前記スレーブ決定部は、
複数の前記演算処理の中から1つの前記演算処理を選択するように構成されたスレーブ選択部(S20,S70,S320,S370)と、
少なくとも前記処理制約情報および前記処理状態情報に基づいて、前記スレーブ選択部で選択された前記演算処理であるスレーブ対象処理が前記スレーブコアにおいて実行可能であるか否かを判断するスレーブ判断部(S30〜S60,S80〜S100,S140)とを備え、
前記スレーブ選択部は、前記スレーブコアにおいて前記スレーブ対象処理を実行可能ではないと前記スレーブ判断部が判断した場合に、更に他の前記演算処理を前記スレーブ対象処理として選択するマイクロコンピュータ。 - 請求項1〜請求項3の何れか1項に記載のマイクロコンピュータであって、
前記マスタコアは、
前記マスタコアが前記演算処理を実行することにより算出されたデータのうち、前記マスタコアと前記スレーブコアとの間で共有する必要があるデータとして予め設定された共有データを、予め設定されたデータ記憶領域(13)に記憶するマスタ記憶部(35)を備え、
前記スレーブコアは、
前記スレーブコアが前記演算処理を実行することにより算出されたデータのうち、前記共有データを前記データ記憶領域に記憶するスレーブ記憶部(55)を備え、
前記マスタ記憶部および前記スレーブ記憶部は、
前記演算処理を実行することにより算出された最新の前記共有データと、最新の前記共有データが算出された時点より過去における少なくとも1つの時点で算出された前記共有データとを前記データ記憶領域に記憶するマイクロコンピュータ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016071833A JP6519515B2 (ja) | 2016-03-31 | 2016-03-31 | マイクロコンピュータ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016071833A JP6519515B2 (ja) | 2016-03-31 | 2016-03-31 | マイクロコンピュータ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017182627A JP2017182627A (ja) | 2017-10-05 |
JP6519515B2 true JP6519515B2 (ja) | 2019-05-29 |
Family
ID=60007524
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016071833A Expired - Fee Related JP6519515B2 (ja) | 2016-03-31 | 2016-03-31 | マイクロコンピュータ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6519515B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7139866B2 (ja) * | 2018-10-18 | 2022-09-21 | トヨタ自動車株式会社 | 車両用調停システム |
JP2021012601A (ja) * | 2019-07-08 | 2021-02-04 | 株式会社デンソー | 並列化方法、半導体制御装置、車載制御装置 |
KR20210061138A (ko) * | 2019-11-19 | 2021-05-27 | 주식회사 엘지화학 | 배터리 관리 시스템 및 그 제어방법 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4333749B2 (ja) * | 2007-02-01 | 2009-09-16 | 株式会社デンソー | 演算システム,演算装置およびプログラム |
JP2010113419A (ja) * | 2008-11-04 | 2010-05-20 | Toyota Motor Corp | マルチコア制御装置 |
JP2012108576A (ja) * | 2010-11-15 | 2012-06-07 | Toyota Motor Corp | マルチコアプロセッサ、処理実行方法、プログラム |
-
2016
- 2016-03-31 JP JP2016071833A patent/JP6519515B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2017182627A (ja) | 2017-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4728020B2 (ja) | 車両制御用ソフトウェア及び車両制御装置 | |
JP6519515B2 (ja) | マイクロコンピュータ | |
WO2013125294A1 (ja) | 車両用制御装置 | |
JP7147615B2 (ja) | タスク管理装置 | |
JP4241462B2 (ja) | 制御ユニットおよびマイクロコンピュータ | |
JP2009245009A (ja) | 車両制御装置及びマルチコアプロセッサ | |
JP2013130104A (ja) | 内燃機関の制御装置 | |
JP4419943B2 (ja) | Cpu間データ転送装置 | |
JP5533789B2 (ja) | 車載電子制御装置 | |
JP5776661B2 (ja) | 電子制御装置 | |
JP2011170619A (ja) | マルチスレッド処理装置 | |
JP6413922B2 (ja) | ソフトウェア分割方法、ソフトウェア分割装置および車載装置 | |
JP2010113419A (ja) | マルチコア制御装置 | |
JP2004252574A (ja) | タスク間通信方法、プログラム、記録媒体、電子機器 | |
US9531401B2 (en) | Semiconductor integrated circuit device and data processing system | |
JP7476638B2 (ja) | マルチプロセッサシステム | |
JP6365387B2 (ja) | 電子制御装置 | |
JP7070108B2 (ja) | マルチコアマイコンを備える電子制御装置 | |
JP6447442B2 (ja) | 電子制御装置 | |
JP5561241B2 (ja) | マイクロコンピュータ | |
WO2010109609A1 (ja) | 処理装置及び車両用エンジン制御装置 | |
JP2021015613A (ja) | 電子制御装置 | |
JP2017016410A (ja) | 電子制御装置及びスタック領域の使用監視方法 | |
JP2021105368A (ja) | エンジン制御装置 | |
JP2021047513A (ja) | 電子制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180615 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20190214 |
|
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: 20190326 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190408 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 6519515 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
LAPS | Cancellation because of no payment of annual fees |