JP6946709B2 - 電子制御装置 - Google Patents

電子制御装置 Download PDF

Info

Publication number
JP6946709B2
JP6946709B2 JP2017083781A JP2017083781A JP6946709B2 JP 6946709 B2 JP6946709 B2 JP 6946709B2 JP 2017083781 A JP2017083781 A JP 2017083781A JP 2017083781 A JP2017083781 A JP 2017083781A JP 6946709 B2 JP6946709 B2 JP 6946709B2
Authority
JP
Japan
Prior art keywords
time
frequency
processing
unit
deadline
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
JP2017083781A
Other languages
English (en)
Other versions
JP2018181199A (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 JP2017083781A priority Critical patent/JP6946709B2/ja
Publication of JP2018181199A publication Critical patent/JP2018181199A/ja
Application granted granted Critical
Publication of JP6946709B2 publication Critical patent/JP6946709B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Power Sources (AREA)

Description

本開示は、動作周波数を変更可能に構成された電子制御装置に関する。
特許文献1には、複数のプログラムを実行するプロセッサを備えたマイクロコンピュータが記載されている。
特開2014−135025号公報
特許文献1に記載のように、プロセッサの動作周波数が高いほどプロセッサの処理能力が高くなるが、その一方、プロセッサの電力消費量が大きくなってしまう。
本開示は、電力消費量の増加を抑制することを目的とする。
本開示の一態様は、信号生成部(17)と、処理実行部(11)と、デッドライン時間設定部(S10)と、周波数算出部(S20)と、周波数設定部(S30)とを備える電子制御装置(1)である。
信号生成部は、外部から入力される周波数設定信号に従って設定された設定周波数を有する周波数信号を生成するように構成される。
処理実行部は、周波数信号が入力され、周波数信号の周波数を動作周波数として、制御対象を制御するための複数の制御処理を実行するように構成される。
デッドライン時間設定部は、制御処理を開始するときに、制御処理を開始する時刻から、制御処理を完了させる必要がある時刻であるデッドラインになるまでに要するデッドライン時間を設定するように構成される。
周波数算出部は、処理実行部が制御処理の開始から完了までに必要とする処理時間が、デッドライン時間設定部により設定されたデッドライン時間を超えないように、処理実行部の動作周波数を算出するように構成される。
周波数設定部は、周波数算出部により算出された動作周波数を示す周波数設定信号を信号生成部へ出力するように構成される。
このように構成された本開示の電子制御装置は、制御処理毎に、制御処理のデッドラインを超えないようにした必要最低限の動作周波数を設定することができるため、無駄に高い動作周波数を設定してしまうことがなく、電子制御装置における電力消費量の増加を抑制することができる。
なお、この欄及び特許請求の範囲に記載した括弧内の符号は、一つの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、本開示の技術的範囲を限定するものではない。
ECU1の構成を示すブロック図である。 第1周波数設定処理を示すフローチャートである。 コア周波数を設定した後の状態を示す図である。 第2周波数設定処理を示すフローチャートである。 第3周波数設定処理を示すフローチャートである。 第1,2,3周波数設定処理が実行される順序の具体例を示すフローチャートである。 点火時期タスク処理とタイマ設定処理に要する時間を説明する図である。 係数設定処理を示すフローチャートである。
以下に本開示の実施形態を図面とともに説明する。
本実施形態の電子制御装置1(以下、ECU1)は、車両に搭載され、図示しないエンジンの制御を行う。ECUは、Electronic Control Unitの略である。
ECU1には、図1に示すように、センサ群2からの信号が入力される。センサ群2は、図示しないクランク角センサ、エアフロメータ、スロットル開度センサ、吸気圧センサおよび空燃比センサ等から構成されている。
クランク角センサは、エンジンのクランク軸の回転角を検出する。エアフロメータは、吸気管を通ってエンジンに供給される空気量を検出する。スロットル開度センサは、スロットルバルブの開度を検出する。吸気圧センサは、吸気管内の圧力を検出する。空燃比センサは、排ガス中の酸素濃度からエンジンに供給された燃料混合気の空燃比を検出する。
そしてECU1は、センサ群2から入力される上記各信号に基づいてエンジンの状態を検出するとともに、その検出結果に基づいて、スロットルバルブの開度を変えるスロットルモータ3、各気筒内の点火プラグ4、および各気筒内のインジェクタ5などを作動させる。
ECU1は、CPU11、ROM12、RAM13、A/D変換器14、タイマ15、基準周波数発生器16およびPLL回路17,18,19を備える。PLLは、Phase Locked Loopの略である。
ECU1の各種機能は、CPU11が非遷移的実体的記録媒体に格納されたプログラムを実行することにより実現される。この例では、ROM12が、プログラムを格納した非遷移的実体的記録媒体に該当する。また、このプログラムの実行により、プログラムに対応する方法が実行される。なお、CPU11が実行する機能の一部または全部を、一つあるいは複数のIC等によりハードウェア的に構成してもよい。
A/D変換器14は、センサ群2から入力されたアナログ信号の電圧値をデジタル値に変換する。
タイマ15は、PLL回路19から入力される信号のオン/オフによりカウントアップされるフリーカウンタと、コンペアレジスタとを、スロットルモータ3、点火プラグ4およびインジェクタ5のそれぞれについて備えている。そしてタイマ15は、フリーランカウンタの値が、コンペアレジスタに予めセットされているコンペア値と同じになると、対応するアクチュエータ(すなわち、スロットルモータ3、点火プラグ4およびインジェクタ5の何れか)を駆動するためのパルス信号を出力する。
基準周波数発生器16は、例えば水晶発振器で構成されており、発振周波数が固定された基準信号を出力する。
PLL回路17,18,19は、図示しない電圧制御発振器(以下、VCO)、分周器、位相比較器およびループフィルタを備える。VCOは、Voltage Controlled Oscillatorの略である。
VCOは、外部から入力される制御電圧によって発振周波数を変化させることが可能な発振器である。分周器は、VCOから出力される信号の周波数を1/Kにした信号を出力する。Kは、正の整数である。以下、Kを分周数Kともいう。分周器は、分周数Kを格納する分周数レジスタを備え、分周数レジスタに格納されている値に基づいて、入力される信号の周波数を1/Kにした信号を出力する。分周器は、外部から入力される分周数設定信号に基づいて、分周数レジスタに格納されている値(すなわち、分周数K)を変更させることができるように構成されている。
位相比較器は、分周器で分周した信号の位相と、基準周波数発生器から出力された基準信号の位相とを比較し、この位相差を示す位相差信号を出力する。ループフィルタは、位相比較器から出力された位相差信号を平滑化して制御電圧を生成し、生成した制御電圧をVCOへ出力する。これにより、PLL回路17,18,19は、基準信号の周波数のK倍の周波数を有するクロック信号を出力する。
なお、PLL回路17には、CPU11から分周数設定信号が入力される。すなわち、PLL回路17では、CPU11からの分周数設定信号に応じて分周数Kが変動する一方、PLL回路18,19では、分周数Kが予め設定された値に固定されている。
そしてPLL回路17は、VCOが生成したクロック信号をCPU11へ出力する。PLL回路18は、VCOが生成したクロック信号をA/D変換器14へ出力する。PLL回路19は、VCOが生成したクロック信号をタイマ15へ出力する。
CPU11は、角度同期タスク処理、時間同期タスク処理、イベント処理およびアイドル処理を実行する。以下、角度同期タスク処理と時間同期タスク処理をまとめて単にタスク処理ともいう。
角度同期タスク処理は、予め設定された角度イベント生成条件が成立する毎に実行される。角度イベント生成条件は、例えば、クランク軸が予め設定されたイベント生成角度(例えば、30°CA)回転することである。
時間同期タスク処理は、予め設定された時間イベント生成条件が成立する毎に実行される。時間イベント生成条件は、例えば、予め設定されたイベント生成時間(例えば、1msおよび8ms)が経過することである。
イベント処理は、角度同期タスク処理および時間同期タスク処理とは異なり非同期で発生する割り込み処理である。
アイドル処理は、タスク処理とイベント処理が行われていない空き時間に実行される処理である。アイドル処理では、主に、RAM13における所定のデータ記憶領域に対して予め設定された設定値を書き込むリフレッシュ処理が行われる。
次に、CPU11が実行する第1周波数設定処理の手順を説明する。第1周波数設定処理は、タスク処理またはイベント処理を開始するときに実行される処理である。
この第1周波数設定処理が実行されると、CPU11は、図2に示すように、まずS10にて、デッドライン時間を算出する。デッドライン時間は、タスク処理およびイベント処理を完了させる必要がある時刻(以下、デッドライン)になるまでに要する時間である。なお、タスク処理およびイベント処理の実行がデッドラインを超えると、ECU1によるエンジン制御が破綻するおそれがある。
ここで、1msが経過する毎に実行される時間同期タスク処理(以下、1msタスク処理)におけるデッドライン時間の算出方法を一例として説明する。1msタスク処理は、その処理の開始から0.7ms以内に処理を完了する必要があるとする。すなわち、1msタスク処理では、処理を完了する必要がある時間(以下、処理完了時間)は、0.7msである。そして、1msタスク処理の処理時間が0.7msを超えないように余裕を持たせるために、1未満となるように予め設定された算出係数に0.7msを乗じた値をデッドライン時間として算出する。1msタスク処理の算出係数が例えば0.6であるとすると、1msタスク処理のデッドライン時間は、0.6×0.7=0.42[ms]である。
なお、角度同期タスク処理では、エンジン回転数に応じて、上記の処理完了時間が変動する。このため、角度同期タスク処理では、エンジン回転数と処理完了時間との関係が予め設定されたマップを用いて、エンジン回転数に応じた処理完了時間を算出する。
次にS20にて、CPU11の動作周波数(以下、コア周波数)を算出する。ここで、1msタスク処理におけるコア周波数の算出方法を一例として説明する。CPU11の動作周波数が300MHzであるときにおける1msタスク処理の処理時間は0.2msであるとする。このため、0.42ms以下で1msタスク処理を完了することができるコア周波数は、(0.2/0.42)×300=143[MHz]である。
さらにS30にて、コア周波数を設定する。具体的には、PLL回路17からCPU11へ出力されるクロック信号の周波数が、S20で算出されたコア周波数となるように、分周数Kを算出し、この分周数Kを示す分周数設定信号をPLL回路17へ出力する。
そしてS40にて、第1周波数設定処理が実行される起因となったタスク処理またはイベント処理の実行を開始させる。またS50にて、S40においてタスク処理またはイベント処理の実行を開始させた開始時刻をRAM13に記憶して、第1周波数設定処理を終了する。
図3は、第1周波数設定処理によってタスク処理およびイベント処理のコア周波数を設定した後の状態を示す図である。図3では、1msタスク処理P1と、8msが経過する毎に実行される時間同期タスク処理P2(以下、8msタスク処理P2)と、角度同期タスク処理P3と、割込みサービスルーチンP4とを示している。なお、1msタスク処理P1、8msタスク処理P2および角度同期タスク処理P3はタスク処理であり、割込みサービスルーチンP4はイベント処理である。また、1msタスク処理P1、8msタスク処理P2、角度同期タスク処理P3および割込みサービスルーチンP4の中で、処理を実行する優先度が最も高いのは、割込みサービスルーチンP4である。また、優先度が2番目、3番目および4番目に高いのはそれぞれ、角度同期タスク処理P3、1msタスク処理P1および8msタスク処理P2である。
図3は、1msタスク処理P1におけるコア周波数を100MHzに設定することにより、1msタスク処理P1の処理時間TP1を1msタスク処理P1のデッドライン時間TD1より短くしていることを示している。同様に、図3は、8msタスク処理P2におけるコア周波数を80MHzに設定することにより、8msタスク処理P2の処理時間TP2を8msタスク処理P2のデッドライン時間TD2より短くしていることを示している。また図3は、角度同期タスク処理P3におけるコア周波数を150MHzに設定することにより、角度同期タスク処理P3の処理時間TP3を角度同期タスク処理P3のデッドライン時間TD3より短くしていることを示している。また図3は、割込みサービスルーチンP4におけるコア周波数を200MHzに設定することにより、割込みサービスルーチンP4の処理時間TP4を割込みサービスルーチンP4のデッドライン時間TD4より短くしていることを示している。
次に、CPU11が実行する第2周波数設定処理の手順を説明する。第2周波数設定処理は、CPU11がタスク処理またはイベント処理における全体の50%の処理を実行したときに実行される処理である。
この第2周波数設定処理が実行されると、CPU11は、図4に示すように、まずS110にて、第2周波数設定処理が実行される起因となったタスク処理またはイベント処理(以下、対象処理)の実行時間を算出する。具体的には、まず、対象処理の開始時刻を示す情報をRAM13から取得する。対象処理の開始時刻を示す情報は、S50の処理によってRAM13に記憶されている。そして、現在の時刻から対象処理の開始時刻を減算した減算値を、対象処理の実行時間として算出する。
そしてS120にて、S110で算出された実行時間が、対象処理のデッドライン時間の半分の時間より長いか否かを判断する。ここで、実行時間がデッドライン時間の半分の時間より長くない場合には、第2周波数設定処理を終了する。一方、実行時間がデッドライン時間の半分の時間より長い場合には、S130にて、コア周波数を上昇させて、第2周波数設定処理を終了する。本実施形態では、コア周波数を、CPU11がタスク処理またはイベント処理を実行するときの最も高いコア周波数として予め設定された上限コア周波数(本実施形態では、300MHz)に設定する。具体的には、PLL回路17からCPU11へ出力される信号の周波数が、上限コア周波数となるように、分周数Kを算出し、この分周数Kを示す分周数設定信号をPLL回路17へ出力する。
次に、CPU11が実行する第3周波数設定処理の手順を説明する。第3周波数設定処理は、タスク処理またはイベント処理の実行中に、優先度が高いタスク処理またはイベント処理(以下、高優先度処理)の割り込みが発生し、その後、この高優先度処理が終了したときに実行される処理である。
この第3周波数設定処理が実行されると、CPU11は、図5に示すように、まずS210にて、上記の高優先度処理の実行時間を算出する。具体的には、まず、高優先度処理の開始時刻を示す情報をRAM13から取得する。高優先度処理の開始時刻を示す情報は、S50の処理によってRAM13に記憶されている。そして、現在の時刻から高優先度処理の開始時刻を減算した減算値を、高優先度処理の実行時間として算出する。
次にS220にて、高優先度処理に割り込まれる前に実行していたタスク処理またはイベント処理(以下、割込前処理)のデッドライン時間を算出する。具体的には、割込前処理のデッドライン時間から、S210で算出した高優先度処理の実行時間を減算した減算値を、割込前処理の新たなデッドライン時間として算出する。
そしてS230にて、S220で算出したデッドライン時間を用いて、S20と同様にして、コア周波数を算出する。さらにS240にて、S30と同様にして、コア周波数を設定する。具体的には、PLL回路17からCPU11へ出力される信号の周波数が、S230で算出されたコア周波数となるように、分周数Kを算出し、この分周数Kを示す分周数設定信号をPLL回路17へ出力する。
そしてS250にて、割込前処理を復帰させて、第3周波数設定処理を終了する。これにより、CPU11は、割込前処理を再開する。
次に、上記の第1周波数設定処理、第2周波数設定処理および第3周波数設定処理が実行される順序の具体例をフローチャートを用いて説明する。
図6に示すように、CPU11は、まずS410にて、タスク処理またはイベント処理が発生したか否かを判断する。ここで、タスク処理またはイベント処理が発生していない場合には、タスク処理またはイベント処理が発生するまで待機する。
そして、タスク処理またはイベント処理が開始される場合には、S420にて、S10と同様にして、デッドライン時間を算出する。さらにS430にて、S20と同様にして、コア周波数を算出する。その後S440にて、S30と同様にして、コア周波数を設定する。そしてS450にて、S40と同様にして、タスク処理またはイベント処理の実行を開始させる。
その後S460にて、現在実行中のタスク処理またはイベント処理よりも優先度が高いタスク処理またはイベント処理が発生していない場合には、S530に移行する。一方、S460にて、現在実行中のタスク処理またはイベント処理よりも優先度が高いタスク処理またはイベント処理が発生した場合には、S470にて、優先度が高いタスク処理またはイベント処理を実行する。そして、優先度が高いタスク処理またはイベント処理が完了すると、S480にて、S210と同様にして、優先度が高いタスク処理またはイベント処理の実行時間を算出する。
またS490にて、S220と同様にして、優先度が高いタスク処理またはイベント処理が完了した後に復帰させるタスク処理またはイベント処理(すなわち、割込前処理)のデッドライン時間を算出する。そしてS500にて、S230と同様にして、S490で算出したデッドライン時間を用いてコア周波数を算出する。さらにS510にて、S240と同様にして、コア周波数を設定する。その後S520にて、S250と同様にして、割込前処理を復帰させて、S530に移行する。
そしてS530に移行して、タスク処理またはイベント処理における全体の50%の処理を実行すると、S540にて、S110と同様にして、実行時間を算出する。さらにS550にて、S120と同様にして、実行時間がデッドライン時間の半分の時間より長いか否かを判断する。ここで、実行時間がデッドライン時間の半分の時間より長くない場合には、S570に移行する。一方、実行時間がデッドライン時間の半分の時間より長い場合には、S560にて、S130と同様にして、コア周波数を上昇させて、S570に移行する。そしてS570に移行して、タスク処理またはイベント処理が完了すると、CPU11による処理を一旦終了する。
次に、CPU11が上限コア周波数で動作する場合と、CPU11が上限コア周波数より低いコア周波数を設定して動作する場合とにおいて、点火プラグ4の点火時期を算出するタスク処理(以下、点火時期タスク処理)と、点火時期を設定するタイマ設定処理とに要する時間を説明する。
図7に示すように、CPU11が上限コア周波数で動作する場合において、点火時期タスク処理TT1が時刻t1で終了した直後に、点火時期タスク処理TT1で算出された点火時期をコンペアレジスタに設定するタイマ設定TS1が開始される。そして、タイマ設定TS1が時刻t2で終了する。なお、時刻t2は、点火時期設定期限t5よりも前の時刻である。その後、時刻t6で点火時期が到来すると、タイマ15はパルス信号PS1を出力する。
一方、CPU11が上限コア周波数より低いコア周波数を設定して動作する場合には、点火時期タスク処理TT2が時刻t3で終了した直後に、点火時期タスク処理TT2で算出された点火時期をコンペアレジスタに設定するタイマ設定TS2が開始される。そして、タイマ設定TS2が時刻t4で終了する。なお、時刻t3は時刻t1より遅くなり、時刻t4は時刻t2より遅くなる。また時刻t4は、点火時期設定期限t5よりも前の時刻である。すなわち、上限コア周波数より低いコア周波数で動作する場合には、上限コア周波数で動作する場合と比較して、点火時期タスク処理およびタイマ設定に要する時間が長くなる。しかし、点火時期設定期限t5よりも前に、タイマ設定を終了させることができる。その後、時刻t6で点火時期が到来すると、タイマ15はパルス信号PS2を出力する。
このように構成されたECU1は、PLL回路17と、CPU11とを備える。
PLL回路17は、外部から入力される分周数設定信号に従って設定された分周数Kに基づいて、基準周波数発生器16から入力される基準信号の周波数を分周数K倍した周波数を有するクロック信号を生成する。
CPU11は、クロック信号が入力され、クロック信号の周波数をコア周波数として、エンジンを制御するための複数のタスク処理およびイベント処理を実行する。
CPU11は、タスク処理またはイベント処理を開始するときに、タスク処理またはイベント処理を開始する時刻から、タスク処理またはイベント処理を完了させる必要がある時刻(すなわち、デッドライン)になるまでに要するデッドライン時間を設定する。
CPU11は、CPU11がタスク処理またはイベント処理の開始から完了までに必要とする処理時間が、設定されたデッドライン時間を超えないように、CPU11のコア周波数を算出する。
CPU11は、算出されたコア周波数に対応した分周数Kを示す分周数設定信号をPLL回路17へ出力する。
このようにECU1は、タスク処理およびイベント処理毎に、タスク処理およびイベント処理のデッドラインを超えないようにした必要最低限のコア周波数を設定することができるため、無駄に高いコア周波数を設定してしまうことがなく、ECU1における電力消費量の増加を抑制することができる。
またECU1では、CPU11は、タスク処理またはイベント処理の実行中において、タスク処理またはイベント処理の処理量が全体の50%と一致した場合に、タスク処理またはイベント処理の開始から現時点までに要した実行時間を算出する。
CPU11は、算出された実行時間がタスク処理またはイベント処理のデッドライン時間の半分の時間より長いか否かにより、タスク処理またはイベント処理が完了する処理完了時刻がデッドラインを超えるか否かを判断する。
CPU11は、処理完了時刻がデッドラインを超えると判断した場合に、処理完了時刻がデッドラインを超えないように、現時点のコア周波数より高いコア周波数として、上限コア周波数を設定する。そしてCPU11は、設定された上限コア周波数に対応した分周数Kを示す分周数設定信号をPLL回路17へ出力する。
このようにECU1は、タスク処理またはイベント処理の開始時だけでなく実行中においてもコア周波数を設定するため、タスク処理またはイベント処理がデッドラインを超えても処理を完了することができないという事態の発生を抑制することができる。
またECU1では、CPU11は、タスク処理またはイベント処理の実行中において、タスク処理またはイベント処理よりも優先度が高い高優先度処理の割り込みが発生し、その後、高優先度処理が完了したときに、高優先度処理の開始から現時点までに要した高優先度処理の実行時間(以下、高優先度実行時間)を算出する。
CPU11は、設定されたデッドライン時間から、算出された高優先度実行時間を減算した減算値を用いて、高優先度処理に割り込まれる前に実行していたタスク処理またはイベント処理(すなわち、割込前処理)のデッドライン時間を再度設定する。
CPU11は、割込前処理の処理時間が、再度設定されたデッドライン時間を超えないように、CPU11のコア周波数を算出する。CPU11は、算出されたコア周波数に対応した分周数Kを示す分周数設定信号をPLL回路17へ出力する。
このようにECU1は、タスク処理またはイベント処理の実行中において高優先度処理に割り込まれた場合にコア周波数を再度設定する。このため、ECU1は、高優先度処理に割り込まれたことに起因してタスク処理またはイベント処理がデッドラインを超えても処理を完了することができないという事態の発生を抑制することができる。
以上説明した実施形態において、PLL回路17は信号生成部に相当し、CPU11は処理実行部に相当し、S10はデッドライン時間設定部としての処理に相当し、S20は周波数算出部としての処理に相当し、S30は周波数設定部としての処理に相当する。
また、分周数設定信号は周波数設定信号に相当し、基準信号の周波数を分周数K倍した周波数は設定周波数に相当し、PLL回路17から出力されるクロック信号は周波数信号に相当する。
また、コア周波数は動作周波数に相当し、エンジンは制御対象に相当し、タスク処理およびイベント処理は制御処理に相当する。
また、S110は実行時間算出部としての処理に相当し、S120はデッドライン判断部としての処理に相当し、S130は周波数上昇部および周波数上昇設定部としての処理に相当し、タスク処理またはイベント処理における全体の50%の処理量は算出開始判定値に相当する。
また、S210は高優先度実行時間算出部としての処理に相当し、S220はデッドライン時間再設定部としての処理に相当し、S230は周波数再算出部としての処理に相当し、S240は周波数再設定部としての処理に相当する。
また、高優先度処理は高優先度制御処理に相当し、高優先度処理の実行時間は高優先度実行時間に相当する。
以上、本開示の一実施形態について説明したが、本開示は上記実施形態に限定されるものではなく、種々変形して実施することができる。
[変形例1]
例えば上記実施形態では、算出係数が一定値である形態を示したが、CPU11の処理負荷とデッドライン時間までの余裕時間とに基づいて、算出係数を変動させるようにしてもよい。ここで、CPU11が実行する係数設定処理の手順を説明する。係数設定処理は、タスク処理またはイベント処理が完了したときに実行される処理である。
この係数設定処理が実行されると、CPU11は、図8に示すように、まずS710にて、この係数設定処理が実行される起因となったタスク処理またはイベント処理(以下、実行起因処理)の実行時間を算出する。具体的には、まず、実行起因処理の開始時刻を示す情報をRAM13から取得する。実行起因処理の開始時刻を示す情報は、S50の処理によってRAM13に記憶されている。そして、現在の時刻から実行起因処理の開始時刻を減算した減算値を、実行起因処理の実行時間として算出する。
次にS720にて、CPU11の処理負荷を算出する。本実施形態では、処理負荷としてCPU使用率を算出する。
そしてS730にて、S720で算出した処理負荷が予め設定された余裕判定値より大きいか否かを判断する。ここで、処理負荷が余裕判定値より大きい場合には、S770に移行する。一方、処理負荷が余裕判定値以下である場合には、S740にて、実行起因処理の余裕時間を算出する。具体的には、実行起因処理のデッドライン時間から、S710で算出した実行起因処理の実行時間を減算した減算値を、実行起因処理の余裕時間として算出する。
次にS750にて、S740で算出した余裕時間が予め設定された設定判定値より大きいか否かを判断する。ここで、余裕時間が設定判定値より大きい場合には、S760にて、算出係数を大きくして、係数設定処理を終了する。具体的には、例えば、算出係数を0.01大きくする。なお、算出係数は、タスク処理およびイベント処理毎に、タスク処理およびイベント処理の優先度により初期値(例えば、0.5)が設定されている。一方、余裕時間が設定判定値以下である場合には、S770に移行する。
そしてS770に移行すると、S770にて、算出係数を小さくして、係数設定処理を終了する。具体的には、例えば、算出係数を0.01小さくする。
このように構成されたECU1では、CPU11は、CPU11の処理負荷を算出する。CPU11は、タスク処理またはイベント処理が完了した時刻からタスク処理またはイベント処理のデッドラインまでの時間を余裕時間として算出する。
CPU11は、処理負荷と余裕時間とを用いて、処理負荷と負の相関を有し、且つ、余裕時間と正の相関を有するように、算出係数を設定する。CPU11は、デッドライン時間に、設定された算出係数を乗じた乗算値を、新たなデッドライン時間とする。
これにより、ECU1は、処理負荷と余裕時間とに基づいて、処理負荷が高い場合と、余裕時間が短い場合とにおいて、算出係数を小さくすることができる。すなわち、ECU1は、処理負荷が高い場合と、余裕時間が短い場合とにおいて、コア周波数を大きくすることができる。このため、ECU1は、処理負荷が高い場合、または、余裕時間が短い場合であっても、タスク処理またはイベント処理がデッドラインを超えても処理を完了することができないという事態の発生を抑制することができる。
なお、S720は処理負荷算出部としての処理に相当し、S710,S740は余裕時間算出部としての処理に相当し、S730,S750,S760,S770は係数設定部としての処理に相当する。
[変形例2]
上記変形例1では、設定判定値が一定値である形態を示した。しかし、余裕時間が設定判定値より大きくなった後に用いる設定判定値と、余裕時間が設定判定値より小さくなった後に用いる設定判定値とを異ならせるようにしてもよい。すなわち、設定判定値にヒステリシス処理を施すようにしてもよい。
[変形例3]
上記実施形態では、タスク処理またはイベント処理が全体の50%の処理を実行したときに第2周波数設定処理が実行される形態、すなわち、1つのタスク処理またはイベント処理で第2周波数設定処理が1回実行される形態を示した。しかし、1つのタスク処理またはイベント処理で、第2周波数設定処理のようにコア周波数を再設定する処理を、タスク処理またはイベント処理の処理量に応じて複数回実行するようにしてもよい。例えば、タスク処理またはイベント処理が全体の25,50,75%の処理を実行したときに、第2周波数設定処理のようにコア周波数を再設定する処理を実行するようにしてもよい。この場合には、1つのタスク処理またはイベント処理で、コア周波数を再設定する処理が3回実行される。
また、上記実施形態における1つの構成要素が有する機能を複数の構成要素に分担させたり、複数の構成要素が有する機能を1つの構成要素に発揮させたりしてもよい。また、上記実施形態の構成の一部を省略してもよい。また、上記実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加、置換等してもよい。なお、特許請求の範囲に記載の文言から特定される技術思想に含まれるあらゆる態様が本開示の実施形態である。
上述したECU1の他、当該ECU1を構成要素とするシステム、当該ECU1としてコンピュータを機能させるためのプログラム、このプログラムを記録した媒体、処理実行方法など、種々の形態で本開示を実現することもできる。
1…ECU、11…CPU、17…PLL回路

Claims (3)

  1. 外部から入力される周波数設定信号に従って設定された設定周波数を有する周波数信号を生成するように構成された信号生成部(17)と、
    前記周波数信号が入力され、前記周波数信号の周波数を動作周波数として、制御対象を制御するための複数の制御処理を実行するように構成された処理実行部(11)と、
    前記制御処理を開始するときに、前記制御処理を開始する時刻から、前記制御処理を完了させる必要がある時刻であるデッドラインになるまでに要するデッドライン時間を設定するように構成されたデッドライン時間設定部(S10)と、
    前記処理実行部が前記制御処理の開始から完了までに必要とする処理時間が、前記デッドライン時間設定部により設定された前記デッドライン時間を超えないように、前記処理実行部の前記動作周波数を算出するように構成された周波数算出部(S20)と、
    前記周波数算出部により算出された前記動作周波数を示す前記周波数設定信号を前記信号生成部へ出力するように構成された周波数設定部(S30)と、
    前記制御処理の実行中において、前記制御処理よりも優先度が高い高優先度制御処理の割り込みが発生し、その後、前記高優先度制御処理が完了したときに、前記高優先度制御処理の開始から現時点までに要した高優先度実行時間を算出するように構成された高優先度実行時間算出部(S210)と、
    少なくとも、前記デッドライン時間設定部により設定された前記デッドライン時間から、前記高優先度実行時間算出部により算出された前記高優先度実行時間を減算した減算値を用いて、前記デッドライン時間を再度設定するデッドライン時間再設定部(S220)と、
    前記処理時間が、前記デッドライン時間再設定部により設定された前記デッドライン時間を超えないように、前記処理実行部の前記動作周波数を算出するように構成された周波数再算出部(S230)と、
    前記周波数再算出部により算出された前記動作周波数を示す前記周波数設定信号を前記信号生成部へ出力するように構成された周波数再設定部(S240)と
    を備える電子制御装置(1)。
  2. 外部から入力される周波数設定信号に従って設定された設定周波数を有する周波数信号を生成するように構成された信号生成部(17)と、
    前記周波数信号が入力され、前記周波数信号の周波数を動作周波数として、制御対象を制御するための複数の制御処理を実行するように構成された処理実行部(11)と、
    前記制御処理を開始するときに、前記制御処理を開始する時刻から、前記制御処理を完了させる必要がある時刻であるデッドラインになるまでに要するデッドライン時間を設定するように構成されたデッドライン時間設定部(S10)と、
    前記処理実行部が前記制御処理の開始から完了までに必要とする処理時間が、前記デッドライン時間設定部により設定された前記デッドライン時間を超えないように、前記処理実行部の前記動作周波数を算出するように構成された周波数算出部(S20)と、
    前記周波数算出部により算出された前記動作周波数を示す前記周波数設定信号を前記信号生成部へ出力するように構成された周波数設定部(S30)と、
    前記処理実行部の処理負荷を算出するように構成された処理負荷算出部(S720)と、
    前記制御処理が完了した時刻から前記制御処理の前記デッドラインまでの時間を余裕時間として算出するように構成された余裕時間算出部(S710,S740)と、
    少なくとも、前記処理負荷算出部により算出された前記処理負荷と、前記余裕時間算出部により算出された前記余裕時間とを用いて、前記処理負荷と負の相関を有し、且つ、前記余裕時間と正の相関を有するように、算出係数を設定する係数設定部(S730,S750,S760,S770)とを備え、
    前記デッドライン時間設定部は、前記デッドライン時間に、前記係数設定部により設定された前記算出係数を乗じた乗算値を、新たな前記デッドライン時間とする電子制御装置。
  3. 請求項1または請求項2に記載の電子制御装置であって、
    前記制御処理の実行中において、前記制御処理の処理量が予め設定された算出開始判定値と一致した場合に、前記制御処理の開始から現時点までに要した実行時間を算出する実行時間算出部(S110)と、
    前記実行時間算出部により算出された前記実行時間に基づいて、前記制御処理が完了する処理完了時刻が前記デッドラインを超えるか否かを判断するデッドライン判断部(S120)と、
    前記処理完了時刻が前記デッドラインを超えると前記デッドライン判断部が判断した場合に、前記処理完了時刻が前記デッドラインを超えないように、現時点の前記動作周波数より高い前記動作周波数を設定するように構成された周波数上昇部(S130)と、
    前記周波数上昇部により設定された前記動作周波数を示す前記周波数設定信号を前記信号生成部へ出力するように構成された周波数上昇設定部(S130)と
    を備える電子制御装置。
JP2017083781A 2017-04-20 2017-04-20 電子制御装置 Active JP6946709B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017083781A JP6946709B2 (ja) 2017-04-20 2017-04-20 電子制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017083781A JP6946709B2 (ja) 2017-04-20 2017-04-20 電子制御装置

Publications (2)

Publication Number Publication Date
JP2018181199A JP2018181199A (ja) 2018-11-15
JP6946709B2 true JP6946709B2 (ja) 2021-10-06

Family

ID=64275591

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017083781A Active JP6946709B2 (ja) 2017-04-20 2017-04-20 電子制御装置

Country Status (1)

Country Link
JP (1) JP6946709B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021012601A (ja) * 2019-07-08 2021-02-04 株式会社デンソー 並列化方法、半導体制御装置、車載制御装置
EP4080524A4 (en) * 2019-12-27 2024-01-17 Murata Manufacturing Co., Ltd. FILM CAPACITOR AND FILM FOR FILM CAPACITORS

Also Published As

Publication number Publication date
JP2018181199A (ja) 2018-11-15

Similar Documents

Publication Publication Date Title
US8775838B2 (en) Limiting the number of unexpected wakeups in a computer system implementing a power-saving preemptive wakeup method from historical data
JP5515792B2 (ja) 内燃機関制御装置
JP6946709B2 (ja) 電子制御装置
US8417990B2 (en) Multi-core processing system for vehicle control or an internal combustion engine controller
JP4665846B2 (ja) マイクロコンピュータ及び電子制御装置
WO2010073312A1 (ja) 車両用電子制御システム、車両用電子制御ユニット、車両用制御同期方法
CN108268119B (zh) 操作片上系统的方法、片上系统和电子系统
US8311169B2 (en) Automatic frequency monitoring circuit, electronic device, automatic frequency monitoring method, and automatic frequency monitoring program
JP3508676B2 (ja) エンジン制御装置
JP2020135214A (ja) タスク管理装置
KR20090120970A (ko) 인터럽트 스케줄링 방법
JP2016113968A (ja) 車両用制御装置および制御方法
JP5533789B2 (ja) 車載電子制御装置
EP2667199B1 (en) Semiconductor data processing apparatus and engine control apparatus
JP2012043254A (ja) マイクロプロセッサ、電子制御ユニット、電源制御方法
JP2021163425A (ja) 電子制御装置
JP5561241B2 (ja) マイクロコンピュータ
JP2016162330A (ja) 電子制御装置
WO2010109609A1 (ja) 処理装置及び車両用エンジン制御装置
JP2020173644A (ja) 電子制御装置
JP7318439B2 (ja) 電子制御装置
JP2003345404A (ja) 電子制御装置、プログラム
CN111176150B (zh) 电子控制装置及微拍生成的紧急中断方法
JP6904054B2 (ja) 燃料噴射制御装置
JP2013161363A (ja) 電子制御装置、プログラム実行方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200323

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210325

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210413

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210519

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210830

R151 Written notification of patent or utility model registration

Ref document number: 6946709

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250