JP2021086277A - Electronic control device - Google Patents
Electronic control device Download PDFInfo
- Publication number
- JP2021086277A JP2021086277A JP2019213259A JP2019213259A JP2021086277A JP 2021086277 A JP2021086277 A JP 2021086277A JP 2019213259 A JP2019213259 A JP 2019213259A JP 2019213259 A JP2019213259 A JP 2019213259A JP 2021086277 A JP2021086277 A JP 2021086277A
- Authority
- JP
- Japan
- Prior art keywords
- synchronization
- core
- cpu
- cpu core
- control mode
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 claims abstract description 81
- 230000008569 process Effects 0.000 claims abstract description 67
- 230000001360 synchronised effect Effects 0.000 claims description 15
- 230000002618 waking effect Effects 0.000 claims description 3
- 230000004888 barrier function Effects 0.000 abstract description 32
- 230000006870 function Effects 0.000 description 10
- 230000007246 mechanism Effects 0.000 description 7
- 230000007704 transition Effects 0.000 description 5
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 101001080429 Homo sapiens Proteasome inhibitor PI31 subunit Proteins 0.000 description 1
- 101000711475 Homo sapiens Serpin B10 Proteins 0.000 description 1
- 101000701902 Homo sapiens Serpin B4 Proteins 0.000 description 1
- 101150101019 PI21 gene Proteins 0.000 description 1
- 102100027565 Proteasome inhibitor PI31 subunit Human genes 0.000 description 1
- 102100034012 Serpin B10 Human genes 0.000 description 1
- 102100030326 Serpin B4 Human genes 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Power Sources (AREA)
Abstract
Description
本開示は、複数のCPUコアを備える電子制御装置に関する。 The present disclosure relates to an electronic control device including a plurality of CPU cores.
車両に搭載され、複数のCPUコアを備えるマイクロコンピュータを搭載する電子制御装置が知られている。複数のCPUコアは、互いに独立して動作することが可能であり、それぞれのCPUコアに割り当てられたタスク、スレッドまたはプロセスを並列に実行することができる。これにより、処理性能の向上が可能となる。しかし、複数のCPUコア間の処理順序を保証しないとシステムが破綻したり、CPUコアの数に応じて消費電力が増加したりするという懸念がある。 There is known an electronic control device mounted on a vehicle and equipped with a microcomputer having a plurality of CPU cores. A plurality of CPU cores can operate independently of each other, and tasks, threads, or processes assigned to the respective CPU cores can be executed in parallel. This makes it possible to improve the processing performance. However, if the processing order between a plurality of CPU cores is not guaranteed, there is a concern that the system may break down or the power consumption may increase according to the number of CPU cores.
複数のCPUコアを備えるマイクロコンピュータにおいてCPUコア間の処理順序を保証する方法として、CPUコア間の処理を待ち合わせるバリア同期機構が知られている。
また、消費電力を低減する方法として、システムの利用状況などに応じて制御モード(例えば、通常制御モードおよび省電力制御モード)を切り替えるモード制御機構が知られている。複数のCPUコアを備えるマイクロコンピュータは、一般に、各CPUコアを個々にスリープ状態にすることが可能であり、省電力制御モード中においてはCPUコアをスリープ状態にすることによって全体の消費電力を低減する。
As a method of guaranteeing the processing order between CPU cores in a microcomputer having a plurality of CPU cores, a barrier synchronization mechanism for waiting for processing between CPU cores is known.
Further, as a method of reducing power consumption, a mode control mechanism for switching a control mode (for example, a normal control mode and a power saving control mode) according to a system usage status or the like is known. A microcomputer having a plurality of CPU cores can generally put each CPU core into a sleep state individually, and reduces the overall power consumption by putting the CPU core into a sleep state in the power saving control mode. To do.
複数のCPUコアを備えるマイクロコンピュータにおいて、バリア同期機構とモード制御機構とを組み合わせて使用する際は、マイクロコンピュータの動作に支障をきたす場合がある。具体的には、省電力制御モード中において同期相手となるCPUコアがスリープ状態にあることで処理の進行が妨げられたり、通常制御モードへ復帰した際に必要な同期を実行しないことで意図した処理順序を保証できなくなったりする。 In a microcomputer having a plurality of CPU cores, when the barrier synchronization mechanism and the mode control mechanism are used in combination, the operation of the microcomputer may be hindered. Specifically, it was intended that the progress of processing is hindered by the CPU core that is the synchronization partner in the sleep state during the power saving control mode, or that the synchronization required when returning to the normal control mode is not executed. The processing order cannot be guaranteed.
このような課題を解決する技術として、特許文献1が挙げられる。特許文献1には、省電力制御モード中に一部のCPUコアをスリープさせるとともに、CPUコアへのタスクの配置状況を変更し、この配置状況とタスク動作情報とに応じて、CPUコアに割り当てられているタスク内の同期を実行するか否かを切り替えることが記載されている。
より厳しい消費電力要件を満たすために、マイクロコンピュータを間欠的に動作させる方法が知られている。この方法は、システムを利用しない状況になると全てのCPUコアをスリープさせ、その後、特定のCPUコアのみを起床させて必要な処理を終えたら再度スリープさせる動作を定期的に行う。 There are known ways to operate a microcomputer intermittently to meet stricter power consumption requirements. In this method, all CPU cores are put to sleep when the system is not used, and then only a specific CPU core is woken up and put to sleep again when necessary processing is completed.
また、CPUコアのスリープには一般に複数の種類が存在し、電源をほとんど供給しない状態にまで落とす深いスリープを提供するマイクロコンピュータも多い。深いスリープから起床するときには、オペレーティングシステムの起動処理を含めたCPUコア毎の初期化処理が必要である。深いスリープへ遷移するときにはオペレーティングシステムの終了処理を含むCPUコア毎の終了処理が必要になる。換言すると、深いスリープを利用したマイクロコンピュータの寝起きを実現する場合には、都度、オペレーティングシステム動作区間外において処理が実行されることになる。 In addition, there are generally a plurality of types of sleep of the CPU core, and many microcomputers provide a deep sleep that reduces the sleep to a state where almost no power is supplied. When waking up from a deep sleep, initialization processing for each CPU core including boot processing of the operating system is required. When transitioning to deep sleep, termination processing for each CPU core, including termination processing of the operating system, is required. In other words, every time the microcomputer wakes up using deep sleep, the process is executed outside the operating system operating section.
このため、オペレーティングシステム動作区間外における処理の実行中に、同期相手となるCPUコアがスリープ状態にあることで処理の進行が妨げられる恐れがある。
本開示は、オペレーティングシステム動作区間外においても同期を管理することを目的とする。
Therefore, during the execution of the process outside the operating system operating section, the progress of the process may be hindered by the CPU core as the synchronization partner being in the sleep state.
The present disclosure is intended to manage synchronization even outside the operating system operating section.
本開示の一態様は、複数のCPUコア(11,12,13)を備える電子制御装置(1)であって、マスタコア(11)は、同期切替部(S10〜S90,S210〜S290)を備える。マスタコアは、複数のCPUコアのうち、1個のCPUコアである。スレーブコア(12,13)は、複数のCPUコアのうち、マスタコア以外のCPUコアである。 One aspect of the present disclosure is an electronic control device (1) including a plurality of CPU cores (11, 12, 13), and the master core (11) includes a synchronization switching unit (S10 to S90, S210 to S290). .. The master core is one CPU core out of a plurality of CPU cores. The slave cores (12, 13) are CPU cores other than the master core among the plurality of CPU cores.
マスタコアは、スレーブコア上でアプリケーションを動作させるために必要な処理を実行する。
同期切替部は、オペレーティングシステムを動作させている区間をOS動作区間として、OS動作区間の内と外の両方において、マスタコアが管理する同期管理情報(24)を用いて、複数のCPUコアのそれぞれについて同期を実行するか否かを切り替えるように構成される。
The master core executes the processing necessary to run the application on the slave core.
The synchronization switching unit uses the synchronization management information (24) managed by the master core, both inside and outside the OS operating section, with the section in which the operating system is operating as the OS operating section, and uses each of the plurality of CPU cores. Is configured to switch whether or not to perform synchronization.
このように構成された本開示の電子制御装置は、OS動作区間内だけではなくOS動作区間外においても、複数のCPUコアのそれぞれについて同期を実行するか否かを切り替える。このため、本開示の電子制御装置は、OS動作区間外においても複数のCPUコアのそれぞれの同期を管理することができる。これにより、本開示の電子制御装置は、マスタコアが深いスリープから起床するときに実行される初期化処理中において同期相手となるスレーブコアがスリープ状態にあることで初期化処理の進行が妨げられてしまうという事態の発生を抑制することができる。同様に、本開示の電子制御装置は、マスタコアが深いスリープへ遷移するときに実行される終了処理中において同期相手となるスレーブコアがスリープ状態にあることで終了処理の進行が妨げられてしまうという事態の発生を抑制することができる。 The electronic control device of the present disclosure configured in this way switches whether or not to execute synchronization for each of a plurality of CPU cores not only within the OS operating section but also outside the OS operating section. Therefore, the electronic control device of the present disclosure can manage the synchronization of each of the plurality of CPU cores even outside the OS operating section. As a result, in the electronic control device of the present disclosure, the progress of the initialization process is hindered by the slave core as the synchronization partner being in the sleep state during the initialization process executed when the master core wakes up from the deep sleep. It is possible to suppress the occurrence of such a situation. Similarly, in the electronic control device of the present disclosure, the progress of the termination process is hindered by the slave core as the synchronization partner being in the sleep state during the termination process executed when the master core transitions to the deep sleep. It is possible to suppress the occurrence of a situation.
以下に本開示の実施形態を図面とともに説明する。
本実施形態の電子制御装置1(以下、ECU1)は、車両に搭載され、図1に示すように、マイクロコンピュータ2(以下、マイコン2)と、入力回路3と、出力回路4とを備える。ECUは、Electronic Control Unitの略である。
Hereinafter, embodiments of the present disclosure will be described with reference to the drawings.
The electronic control device 1 (hereinafter, ECU 1) of the present embodiment is mounted on a vehicle and includes a microcomputer 2 (hereinafter, microcomputer 2), an
マイコン2は、入力回路3を介して入力される各種信号に基づいて例えばエンジンの状態を検出する。そしてマイコン2は、エンジンの状態に基づいて、エンジンを制御するための制御信号を出力回路4を介して出力する。
The
マイコン2は、第1CPUコア11と、第2CPUコア12と、第3CPUコア13と、ROM14と、RAM15と、入出力部16と、バス17とを備える。以下、第1CPUコア11、第2CPUコア12および第3CPUコア13をまとめてCPUコア11〜13ともいう。
The
マイクロコンピュータの各種機能は、CPUコア11〜13が非遷移的実体的記録媒体に格納されたプログラムを実行することにより実現される。この例では、ROM14が、プログラムを格納した非遷移的実体的記録媒体に該当する。また、このプログラムの実行により、プログラムに対応する方法が実行される。なお、CPUコア11〜13が実行する機能の一部または全部を、一つあるいは複数のIC等によりハードウェア的に構成してもよい。また、ECU1を構成するマイクロコンピュータの数は1つでも複数でもよい。
Various functions of the microcomputer are realized by the
第1CPUコア11、第2CPUコア12および第3CPUコア13は、車両に搭載されているエンジンを制御するための各種制御処理を分散して実行する。
ROM14は、不揮発性メモリであり、エンジンを制御する各種制御処理を実行するための制御プログラムを記憶する。
The
The
RAM15は、揮発性メモリであり、CPUコア11〜13の演算結果等を一時的に記憶する。
入出力部16は、マイコン2の外部とCPUコア11〜13との間でデータの入出力を行わせるための回路である。
The
The input /
バス17は、CPUコア11〜13、ROM14、RAM15および入出力部16を、互いにデータ入出力可能に接続する。
ECU1は、CPUコア11〜13間における処理順序を保証するために、CPUコア11〜13間の処理を待ち合わせるバリア同期機構を備える。バリア同期機構は、CPUコア11〜13が同期を実行する箇所(以下、同期箇所)と、同期箇所において同期対象となるCPUコア11〜13(以下、参加コア)とを予め設定することにより、CPUコア11〜13間の処理を任意の同期箇所で同期させることができる。
The
The
ECU1は、消費電力を低減するために、状況に応じて、制御モードを通常制御モードと省電力制御モードとの間で切り替えるモード制御機構を備える。ECU1は、制御モードが省電力制御モードになると、全てのCPUコア11〜13をスリープさせ、その後、CPUコア11のみを起床させて必要な処理を実行させた後に再度スリープさせる間欠動作を定期的に実行する。
The
CPUコア11〜13が実行するスリープは、電源がほとんど供給されない状態まで落とすスリープ(以下、深いスリープ)である。CPUコア11〜13が深いスリープから起床するときには、オペレーティングシステム(以下、OS)の起動処理を含めたCPUコア11〜13毎の初期化処理(以下、スタートアップ処理)が必要である。また、CPUコア11〜13が深いスリープへ遷移するときには、OSの終了処理を含めたCPUコア11〜13毎の終了処理(以下、シャットダウン処理)が必要である。
The sleep executed by the
第1CPUコア11は、ECU1へ電源が投入された後に、CPUコア11〜13の中で最初に起動されるマスタコアである。第2CPUコア12および第3CPUコア13は、マスタコアである第1CPUコア11によって起動されるスレーブコアである。
The
マスタコアである第1CPUコア11は、スレーブコア(すなわち、第2CPUコア12および第3CPUコア13)上でアプリケーションを動作させるために必要な処理を実行する。具体的には、第1CPUコア11は、スレーブコアの起動、バリア同期の設定、制御モードの管理、および、ECU1が有するハードウェアリソースの有効化または無効化などを実行する。
The
スレーブコアである第2CPUコア12および第3CPUコア13はそれぞれ、第2CPUコア12および第3CPUコア13に割り当てられたアプリケーション処理を実行する。アプリケーション処理は、ハードウェアリソースを利用した演算処理および制御処理であり、例えば、外界情報を取得する処理、および、アクチュエータを制御する処理などが挙げられる。
The
RAM15は、同期箇所識別データ21、同期タイミング識別データ22、通常時参加コアデータ23、参加コア識別データ24、バリア同期エントリデータ25、制御モード識別データ26および稼働コア識別データ27を記憶する。
The
同期箇所識別データ21は、CPUコア11〜13のそれぞれがバリア同期の同期箇所を識別する情報である。
同期タイミング識別データ22は、各同期が実行される処理区間を識別する情報である。処理区間は、スタートアップ処理区間、OS動作区間およびシャットダウン処理区間の何れかである。
The synchronization
The synchronization
通常時参加コアデータ23は、通常制御モードにおいて同期に参加するCPUコアを識別する情報である。
参加コア識別データ24は、各同期箇所において同期に参加するCPUコアを識別する情報である。
The normal time
The participating
バリア同期エントリデータ25は、各同期箇所において同期箇所に到達しているCPUコア11〜13を識別する情報である。
制御モード識別データ26は、ECU1において実行されている制御モードを識別する情報である。マスタコアである第1CPUコア11は、現在の制御モードを判断し、この判断結果に基づいて、制御モード識別データ26の内容を適宜書き換える。
The barrier
The control
稼働コア識別データ27は、稼働しているCPUコア11〜13を識別する情報である。
次に、同期箇所識別データ21、同期タイミング識別データ22、通常時参加コアデータ23および参加コア識別データ24の具体例を示す。
The operating
Next, specific examples of the synchronization
図2に示すように、同期箇所識別データ21には、例えば、五か所の同期箇所のそれぞれに対して1,2,3,4,5の同期識別番号が格納される。
同期タイミング識別データ22には、五か所の同期箇所のそれぞれに対して、処理区間を示す情報が格納される。例えば、同期識別番号が1,2である同期箇所に対して、スタートアップ処理区間が設定されている。同様に、同期識別番号が3である同期箇所に対して、OS動作区間が設定され、同期識別番号が4,5である同期箇所に対して、シャットダウン処理区間が設定されている。
As shown in FIG. 2, the synchronization
The synchronization
通常時参加コアデータ23には、五か所の同期箇所のそれぞれに対して、CPUコア11〜13が参加するか否かを示す情報が格納される。例えば、同期識別番号が1,5である同期箇所に対して、第1CPUコア11および第2CPUコア12が「参加」、第3CPUコア13が「不参加」に設定されている。同期識別番号が2,4である同期箇所に対して、第1CPUコア11および第3CPUコア13が「参加」、第2CPUコア12が「不参加」に設定されている。同期識別番号が3である同期箇所に対して、第2CPUコア12および第3CPUコア13が「参加」、第1CPUコア11が「不参加」に設定されている。
The normal
同期箇所識別データ21、同期タイミング識別データ22および通常時参加コアデータ23に格納される情報は、予め設定された固定値であり、ROM14に記憶されている。第1CPUコア11は、ECU1へ電源が投入された後に、上記の固定値をROM14から読み出して、RAM15に設けられた同期箇所識別データ21、同期タイミング識別データ22および通常時参加コアデータ23に格納する。
The information stored in the synchronization
参加コア識別データ24には、六か所の同期箇所のそれぞれに対して、CPUコア11〜13が参加するか否かを示す情報が格納される。参加コア識別データ24は、後述する第1同期設定処理および第2同期設定処理によって適宜書き換えられる。
The participating
次に、CPUコア11〜13の動作の具体例を説明する。
図3に示すように、時刻t1において、制御モードが通常制御モードへ切り替わったとする。これにより、区間PI1,PI21で示すように、CPUコア11〜13は、スタートアップ処理区間へ移行し、スタートアップ処理を実行する。
Next, a specific example of the operation of the
As shown in FIG. 3, it is assumed that the control mode is switched to the normal control mode at time t1. As a result, as shown in the sections PI1 and PI21, the
時刻t2でスタートアップ処理区間が終了すると、区間PI2,PI22で示すように、CPUコア11〜13は、OS動作区間に移行する。
When the startup processing section ends at time t2, the
その後、通常制御モードでの処理が不要であると第1CPUコア11により判断されると、その旨が第1CPUコア11から第2CPUコア12および第3CPUコア13へ通知され、時刻t3でOS動作区間が終了する。これにより、区間PI3,PI23で示すように、CPUコア11〜13は、シャットダウン処理区間へ移行し、シャットダウン処理を実行する。
シャットダウン処理が終了すると、時刻t4で、制御モードが通常制御モードから省電力制御モードへ切り替わる。すなわち、CPUコア11〜13は、区間PI4,PI24で示すように、深いスリープへ遷移する。
After that, when the
When the shutdown process is completed, the control mode is switched from the normal control mode to the power saving control mode at time t4. That is, the
省電力制御モードにおいて、第1CPUコア11は、上記の間欠動作を実行する。具体的には、第1CPUコア11は、区間PI5で示すように、時刻t5で、スタートアップ処理区間へ移行し、スタートアップ処理を実行する。第1CPUコア11は、区間PI6で示すように、時刻t6で、OS動作区間に移行する。第1CPUコア11は、区間PI7で示すように、時刻t7で、シャットダウン処理区間へ移行し、シャットダウン処理を実行する。第1CPUコア11は、区間PI8で示すように、時刻t8で、深いスリープへ遷移する。第1CPUコア11は、区間PI9で示すように、時刻t9で、スタートアップ処理区間へ移行し、スタートアップ処理を実行する。
In the power saving control mode, the
このスタートアップ処理区間内において、パルス信号PSで示すように復帰イベントが発生すると、時刻t10で、制御モードが省電力制御モードから通常制御モードへ切り替わる。これにより、区間PI25で示すように、第2CPUコア12および第3CPUコア13は、スタートアップ処理区間へ移行し、スタートアップ処理を実行する。
When a return event occurs in this startup processing section as shown by the pulse signal PS, the control mode is switched from the power saving control mode to the normal control mode at time t10. As a result, as shown in the section PI25, the
そして第1CPUコア11は、時刻t11でスタートアップ処理区間が終了すると、区間PI10で示すように、OS動作区間に移行する。また第2CPUコア12および第3CPUコア13は、時刻t12でスタートアップ処理区間が終了すると、区間PI26で示すように、OS動作区間に移行する。
Then, when the startup processing section ends at time t11, the
その後、通常制御モードでの処理が不要であると第1CPUコア11により判断されると、その旨が第1CPUコア11から第2CPUコア12および第3CPUコア13へ通知され、時刻t13でOS動作区間が終了する。これにより、区間PI11,PI27で示すように、CPUコア11〜13は、シャットダウン処理区間へ移行し、シャットダウン処理を実行する。シャットダウン処理が終了すると、時刻t14で、制御モードが通常制御モードから省電力制御モードへ切り替わる。
After that, when the
参加コア識別データ24には、時刻t1〜時刻t4の区間PI31において、通常時参加コアデータ23が格納される。参加コア識別データ24は、時刻t4〜時刻t5の区間PI32において参照されない。CPUコア11〜13が深いスリープ中であるためである。参加コア識別データ24には、時刻t5〜時刻t8の区間PI33において、後述する省電力時参加コアデータが格納される。
The participating
参加コア識別データ24は、時刻t8〜時刻t9の区間PI34において参照されない。CPUコア11〜13が深いスリープ中であるためである。参加コア識別データ24には、時刻t9〜時刻t10の区間PI35において、省電力時参加コアデータが格納される。参加コア識別データ24には、時刻t10〜時刻t14の区間PI36において、後述する復帰時参加コアデータが格納される。
Participating
第1CPUコア11は、時刻t1〜時刻t4の区間PI41において、同期を実行する。第1CPUコア11は、時刻t4〜時刻t13の区間PI42において、同期を実行しない。第1CPUコア11は、時刻t13〜時刻t14の区間PI43において、同期を実行する。
The
第2,3CPUコア12,13は、時刻t1〜時刻t4の区間PI51において、同期を実行する。第2,3CPUコア12,13は、時刻t4〜時刻t10の区間PI52において、同期を実行しない。第2,3CPUコア12,13は、時刻t10〜時刻t14の区間PI53において、同期を実行する。
The second and
次に、第1CPUコア11が実行する第1同期設定処理の手順を説明する。第1同期設定処理は、通常制御モード下でスタートアップ処理を開始したタイミング、または、省電力制御モード下でスタートアップ処理を開始したタイミングで実行される処理である。
Next, the procedure of the first synchronization setting process executed by the
第1同期設定処理が実行されると、第1CPUコア11は、図4に示すように、まずS10にて、制御モード識別データ26を取得する。
第1CPUコア11は、S20にて、S10で取得した制御モード識別データ26に基づいて、現時点の制御モードが通常制御モードであるか否かを判断する。ここで、現時点の制御モードが通常制御モードである場合には、第1CPUコア11は、S30にて、複数の同期識別番号のそれぞれについて、通常時参加コアデータ23に格納される情報を、同じ同期識別番号に対応する参加コア識別データ24に格納して、第1同期設定処理を終了する。例えば、同期識別番号が2に対応する通常時参加コアデータ23では、第1CPUコア11および第3CPUコア13が「参加」、第2CPUコア12が「不参加」に設定されている。このため、同期識別番号が2に対応する参加コア識別データ24では、第1CPUコア11および第3CPUコア13が「参加」、第2CPUコア12が「不参加」に設定される。
When the first synchronization setting process is executed, the
The
一方、現時点の制御モードが通常制御モードでない場合には、第1CPUコア11は、S40にて、RAM15に設けられた同期識別番号指示値iに0を格納する。
そして第1CPUコア11は、S50にて、同期識別番号指示値iに格納されている値に1を加算した加算値を、同期識別番号指示値iに格納する。
On the other hand, when the current control mode is not the normal control mode, the
Then, in S50, the
第1CPUコア11は、S60にて、同期識別番号指示値iに対応する同期識別番号の通常時参加コアデータ23を取得する。
第1CPUコア11は、S70にて、同期識別番号指示値iに対応する省電力時参加コアデータを生成する。具体的には、第1CPUコア11は、第1CPUコア11、第2CPUコア12および第3CPUコア13が「不参加」に設定されている情報を、同期識別番号指示値iに対応する省電力時参加コアデータとして生成する。
In S60, the
In S70, the
次に第1CPUコア11は、S80にて、同期識別番号指示値iに格納されている値が予め設定されている識別番号最大値k以上であるか否かを判断する。ここで、同期識別番号指示値iに格納されている値が識別番号最大値k未満である場合には、第1CPUコア11は、S50に移行する。
Next, the
一方、同期識別番号指示値iに格納されている値が識別番号最大値k以上である場合には、第1CPUコア11は、S90にて、複数の同期識別番号のそれぞれについて、省電力時参加コアデータを、同じ同期識別番号に対応する参加コア識別データ24に格納して、第1同期設定処理を終了する。これにより、同期識別番号指示値iに対応する参加コア識別データ24では、第1CPUコア11、第2CPUコア12および第3CPUコア13が「不参加」に設定される。iは1からkまでの整数である。
On the other hand, when the value stored in the synchronization identification number indicated value i is equal to or greater than the maximum identification number value k, the
次に、第1CPUコア11が実行する第2同期設定処理の手順を説明する。第2同期設定処理は、省電力制御モード下において、通常制御モードへ復帰する契機となるイベント(すなわち、復帰イベント)が発生したタイミングで実行される処理である。
Next, the procedure of the second synchronization setting process executed by the
第2同期設定処理が実行されると、第1CPUコア11は、図5に示すように、まずS210にて、第1CPUコア11がシャットダウン処理中または深いスリープ中であるか否かを判断する。ここで、第1CPUコア11がシャットダウン処理中および深いスリープ中である場合には、第1CPUコア11は、第2同期設定処理を終了する。
When the second synchronization setting process is executed, the
一方、第1CPUコア11がシャットダウン処理中または深いスリープ中でない場合には、第1CPUコア11は、S220にて、同期識別番号指示値iに0を格納する。
そして第1CPUコア11は、S230にて、同期識別番号指示値iに格納されている値に1を加算した加算値を、同期識別番号指示値iに格納する。
On the other hand, when the
Then, in S230, the
第1CPUコア11は、S240にて、同期識別番号指示値iに対応する同期識別番号の通常時参加コアデータ23および同期タイミング識別データ22を取得する。
第1CPUコア11は、S250にて、S240で取得した同期タイミング識別データ22が示す処理区間はスタートアップ処理区間またはOS動作区間であるか否かを判断する。
In S240, the
The
ここで、処理区間がスタートアップ処理区間またはOS動作区間である場合には、第1CPUコア11は、S260にて、マスタコアを「不参加」に変更した復帰時参加コアデータを生成し、S280に移行する。具体的には、S240で取得した通常時参加コアデータ23(すなわち、同期識別番号指示値iに対応する同期識別番号の通常時参加コアデータ23)において第1CPUコア11を「不参加」に設定した情報を、同期識別番号指示値iに対応する同期識別番号の復帰時参加コアデータとして生成する。
Here, when the processing section is the startup processing section or the OS operating section, the
一方、処理区間がスタートアップ処理区間およびOS動作区間でない場合には、第1CPUコア11は、S270にて、S240で取得した通常時参加コアデータ23を、同期識別番号指示値iに対応する同期識別番号の復帰時参加コアデータとして生成し、S280に移行する。
On the other hand, when the processing section is not the startup processing section and the OS operating section, the
S280に移行すると、第1CPUコア11は、同期識別番号指示値iに格納されている値が識別番号最大値k以上であるか否かを判断する。ここで、同期識別番号指示値iに格納されている値が識別番号最大値k未満である場合には、第1CPUコア11は、S230に移行する。
Upon shifting to S280, the
一方、同期識別番号指示値iに格納されている値が識別番号最大値k以上である場合には、第1CPUコア11は、S290にて、複数の同期識別番号のそれぞれについて、復帰時参加コアデータを、同じ同期識別番号に対応する参加コア識別データ24に格納して、第2同期設定処理を終了する。
On the other hand, when the value stored in the synchronization identification number indicated value i is equal to or greater than the maximum identification number value k, the
次に、CPUコア11〜13が実行する同期処理の手順を説明する。同期処理は、CPUコア11〜13のそれぞれが同期箇所に到達したタイミングで実行される処理である。
以下では、CPUコア11〜13を代表して第2CPUコア12が同期処理を実行しているとして説明する。
Next, the procedure of the synchronous processing executed by the
Hereinafter, it will be described that the
同期処理が実行されると、第2CPUコア12は、図6に示すように、まずS410にて、この同期処理が開始される起因となった同期箇所(以下、起因同期箇所)における参加コア識別データ24を取得する。
When the synchronization process is executed, as shown in FIG. 6, the
第2CPUコア12は、S420にて、S410で取得した参加コア識別データ24に基づいて、第2CPUコア12が起因同期箇所における同期に参加するか否かを判断する。具体的には、第2CPUコア12は、取得した参加コア識別データ24において第2CPUコア12が「参加」に設定されている場合には、同期に参加すると判断する。また、第2CPUコア12は、取得した参加コア識別データ24において第2CPUコア12が「不参加」に設定されている場合には、同期に参加しないと判断する。
The
ここで、同期に参加しない場合には、第2CPUコア12は、同期処理を終了する。一方、同期に参加する場合には、第2CPUコア12は、S430にて、起因同期箇所に対応するバリア同期エントリデータ25に、第2CPUコア12が起因同期箇所に到達したことを示す到達値を書き込むことにより、バリア同期エントリデータ25を更新する。
Here, if it does not participate in the synchronization, the
第2CPUコア12は、S440にて、バリア同期が成立したか否かを判断する。具体的には、第2CPUコア12は、起因同期箇所に対応するバリア同期エントリデータ25に、取得した参加コア識別データ24において「参加」に設定されているCPUコア11〜13(以下、同期参加コア)の到達値が書き込まれているか否かを判断する。
The
従って、第2CPUコア12は、起因同期箇所に対応するバリア同期エントリデータ25に全ての同期参加コアの到達値が書き込まれている場合には、バリア同期が成立したと判断する。一方、第2CPUコア12は、起因同期箇所に対応するバリア同期エントリデータ25に同期参加コアの少なくとも一つの到達値が書き込まれていない場合には、バリア同期が成立していないと判断する。
Therefore, the
ここで、バリア同期が成立していない場合には、第2CPUコア12は、S440の処理を繰り返すことにより、バリア同期が成立するまで待機する。一方、バリア同期が成立した場合には、第2CPUコア12は、同期処理を終了する。
Here, when the barrier synchronization is not established, the
このように構成されたECU1は、CPUコア11〜13を備える。第1CPUコア11は、マスタコアであり、第2CPUコア12および第3CPUコア13はスレーブコアである。
The
第1CPUコア11は、第2CPUコア12および第3CPUコア13上でアプリケーションを動作させるために必要な処理を実行する。
第1CPUコア11は、OS動作区間の内と外の両方において、第1CPUコア11が管理する参加コア識別データ24を用いて、CPUコア11〜13のそれぞれについてバリア同期を実行するか否かを切り替える。
The
Whether or not the
このようにECU1は、OS動作区間内だけではなくOS動作区間外においても、CPUコア11〜13のそれぞれについてバリア同期を実行するか否かを切り替える。このため、ECU1は、OS動作区間外においてもCPUコア11〜13のそれぞれのバリア同期を管理することができる。これにより、ECU1は、第1CPUコア11が深いスリープから起床するときに実行されるスタートアップ処理中においてバリア同期相手となる第2CPUコア12および第3CPUコア13がスリープ状態にあることでスタートアップ処理の進行が妨げられてしまうという事態の発生を抑制することができる。同様に、ECU1は、第1CPUコア11が深いスリープへ遷移するときに実行されるシャットダウン処理中においてバリア同期相手となる第2CPUコア12および第3CPUコア13がスリープ状態にあることでシャットダウン処理の進行が妨げられてしまうという事態の発生を抑制することができる。
In this way, the
また第1CPUコア11は、参加コア識別データ24を更新することによって、CPUコア11〜13のそれぞれについてバリア同期を実行するか否かを切り替える。これにより、CPUコア11〜13は、バリア同期を実行するときに参加コア識別データ24を参照するというCPUコア11〜13の全てに共通した手順で、バリア同期を実行するか否かを判断することができる。
Further, the
またECU1は、OSを継続して動作させる通常制御モードと、CPUコア11〜13の全てのをスリープさせ、その後、第1CPUコア11のみを起床させて必要な処理を実行させた後に再びスリープさせる間欠動作を定期的に実行する省電力制御モードとの間で制御モードを切り替えるように構成されている。第1CPUコア11は、スリープから起床するときにはスタートアップ処理を実行し、スリープへ遷移するときにはシャットダウン処理を実行するように構成されている。そして第1CPUコア11は、第1CPUコア11がスタートアップ処理を実行する時と、省電力制御モードから通常制御モードへ復帰する時とにおいて、参加コア識別データ24を更新する。このようにECU1は、スタートアップ処理を実行する時と、省電力制御モードから通常制御モードへ復帰する時とを更新タイミングとすることで、制御モードと、制御モードの切り替わりとに応じて、即時に参加コア識別データ24を更新することが可能となる。
Further, the
第1CPUコア11は、第1CPUコア11がスタートアップ処理を実行する時において、制御モードに基づいて、参加コア識別データ24を更新する。これにより、ECU1は、第1CPUコア11が深いスリープから起床した直後から制御モードに応じて参加コア識別データ24を更新するため、制御モードが更新されてもECU1の動作を保証することが可能となる。
The
第1CPUコア11は、省電力制御モードから通常制御モードへ復帰する時において、第1CPUコア11が実行している処理に基づいて、参加コア識別データ24を更新する。これにより、ECU1は、省電力制御モードから通常制御モードへ復帰する時において、処理の整合性を保持するために、必要な同期箇所におけるバリア同期を実行することができる。このため、ECU1は、ECU1のリセットなどを介することなく、通常制御モードへ復帰するための処理を実行することができ、通常制御モードへの復帰に関する高い応答性を確保することが可能となる。
When returning from the power saving control mode to the normal control mode, the
以上説明した実施形態において、第1CPUコア11はマスタコアに相当し、第2CPUコア12および第3CPUコア13はスレーブコアに相当し、参加コア識別データ24は同期管理情報に相当し、S10〜S90,S210〜S290は同期切替部としての処理に相当する。
In the embodiment described above, the
また、スタートアップ処理は初期化処理に相当し、シャットダウン処理は終了処理に相当する。
以上、本開示の一実施形態について説明したが、本開示は上記実施形態に限定されるものではなく、種々変形して実施することができる。
In addition, the startup process corresponds to the initialization process, and the shutdown process corresponds to the termination process.
Although one embodiment of the present disclosure has been described above, the present disclosure is not limited to the above embodiment, and can be implemented in various modifications.
[変形例1]
例えば上記実施形態では、バリア同期に参加する同期参加コアを切り替える形態を示したが、バリア同期に限定されるものではなく、バリア同期以外の同期に参加する同期参加コアを切り替えるものであってもよい。
[変形例2]
上記実施形態では、マイコン2が3つのCPUコアを備える形態を示したが、マイコン2が、2つのCPUコア、または4つ以上のCPUコアを備えるようにしてもよい。
[Modification 1]
For example, in the above embodiment, the mode of switching the synchronous participation cores participating in the barrier synchronization is shown, but the present invention is not limited to the barrier synchronization, and the synchronous participation cores participating in the synchronization other than the barrier synchronization may be switched. Good.
[Modification 2]
In the above embodiment, the
本開示に記載のECU1およびその手法は、コンピュータプログラムにより具体化された一つ乃至は複数の機能を実行するようにプログラムされたプロセッサおよびメモリを構成することによって提供された専用コンピュータにより、実現されてもよい。あるいは、本開示に記載のECU1およびその手法は、一つ以上の専用ハードウェア論理回路によってプロセッサを構成することによって提供された専用コンピュータにより、実現されてもよい。もしくは、本開示に記載のECU1およびその手法は、一つ乃至は複数の機能を実行するようにプログラムされたプロセッサおよびメモリと一つ以上のハードウェア論理回路によって構成されたプロセッサとの組み合わせにより構成された一つ以上の専用コンピュータにより、実現されてもよい。また、コンピュータプログラムは、コンピュータにより実行されるインストラクションとして、コンピュータ読み取り可能な非遷移有形記録媒体に記憶されてもよい。ECU1に含まれる各部の機能を実現する手法には、必ずしもソフトウェアが含まれている必要はなく、その全部の機能が、一つあるいは複数のハードウェアを用いて実現されてもよい。
The
上記実施形態における1つの構成要素が有する複数の機能を、複数の構成要素によって実現したり、1つの構成要素が有する1つの機能を、複数の構成要素によって実現したりしてもよい。また、複数の構成要素が有する複数の機能を、1つの構成要素によって実現したり、複数の構成要素によって実現される1つの機能を、1つの構成要素によって実現したりしてもよい。また、上記実施形態の構成の一部を省略してもよい。また、上記実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加または置換してもよい。 A plurality of functions possessed by one component in the above embodiment may be realized by a plurality of components, or one function possessed by one component may be realized by a plurality of components. Further, a plurality of functions possessed by the plurality of components may be realized by one component, or one function realized by the plurality of components may be realized by one component. Further, a part of the configuration of the above embodiment may be omitted. In addition, at least a part of the configuration of the above embodiment may be added or replaced with the configuration of the other above embodiment.
上述したECU1の他、当該ECU1を構成要素とするシステム、当該ECU1としてコンピュータを機能させるためのプログラム、このプログラムを記録した半導体メモリ等の非遷移的実体的記録媒体、装置制御方法など、種々の形態で本開示を実現することもできる。
In addition to the above-mentioned
1…ECU、11…第1CPUコア、12…第2CPUコア、13…第3CPUコア、24…参加コア識別データ 1 ... ECU, 11 ... 1st CPU core, 12 ... 2nd CPU core, 13 ... 3rd CPU core, 24 ... Participating core identification data
Claims (5)
複数の前記CPUコアのうち、1個の前記CPUコアをマスタコア(11)とし、前記マスタコア以外の前記CPUコアをスレーブコア(12,13)として、
前記マスタコアは、前記スレーブコア上でアプリケーションを動作させるために必要な処理を実行し、
前記マスタコアは、オペレーティングシステムを動作させている区間をOS動作区間として、前記OS動作区間の内と外の両方において、前記マスタコアが管理する同期管理情報(24)を用いて、複数の前記CPUコアのそれぞれについて同期を実行するか否かを切り替えるように構成された同期切替部(S10〜S90,S210〜S290)を備える電子制御装置。 An electronic control device (1) having a plurality of CPU cores (11, 12, 13).
Of the plurality of CPU cores, one CPU core is designated as a master core (11), and the CPU cores other than the master core are designated as slave cores (12, 13).
The master core executes the processing necessary for operating the application on the slave core, and performs the processing necessary for operating the application.
The master core uses a section in which the operating system is operated as an OS operating section, and uses synchronous management information (24) managed by the master core both inside and outside the OS operating section to use a plurality of the CPU cores. An electronic control device including a synchronization switching unit (S10 to S90, S210 to S290) configured to switch whether or not to execute synchronization for each of the above.
前記同期切替部は、前記同期管理情報を更新することによって、複数の前記CPUコアのそれぞれについて前記同期を実行するか否かを切り替える電子制御装置。 The electronic control device according to claim 1.
The synchronization switching unit is an electronic control device that switches whether or not to execute the synchronization for each of the plurality of CPU cores by updating the synchronization management information.
前記電子制御装置は、前記オペレーティングシステムを継続して動作させる通常制御モードと、全ての前記CPUコアをスリープさせ、その後、前記マスタコアのみを起床させて必要な処理を実行させた後に再びスリープさせる間欠動作を定期的に実行する省電力制御モードとの間で制御モードを切り替えるように構成され、
前記マスタコアは、スリープから起床するときには初期化処理を実行し、前記スリープへ遷移するときには終了処理を実行するように構成され、
前記同期切替部は、前記マスタコアが前記初期化処理を実行する時と、前記省電力制御モードから前記通常制御モードへ復帰する時とにおいて、前記同期管理情報を更新する電子制御装置。 The electronic control device according to claim 2.
The electronic control device has a normal control mode in which the operating system is continuously operated, and an intermittent operation in which all the CPU cores are put to sleep, and then only the master core is awakened to perform necessary processing and then put to sleep again. It is configured to switch the control mode between the power saving control mode that executes the operation periodically.
The master core is configured to execute an initialization process when waking up from sleep, and execute an end process when transitioning to the sleep.
The synchronization switching unit is an electronic control device that updates the synchronization management information when the master core executes the initialization process and when the master core returns from the power saving control mode to the normal control mode.
前記同期切替部は、前記マスタコアが前記初期化処理を実行する時において、前記制御モードに基づいて、前記同期管理情報を更新する電子制御装置。 The electronic control device according to claim 3.
The synchronization switching unit is an electronic control device that updates the synchronization management information based on the control mode when the master core executes the initialization process.
前記同期切替部は、前記省電力制御モードから前記通常制御モードへ復帰する時において、前記マスタコアが実行している処理に基づいて、前記同期管理情報を更新する電子制御装置。 The electronic control device according to claim 3.
The synchronization switching unit is an electronic control device that updates the synchronization management information based on the processing executed by the master core when returning from the power saving control mode to the normal control mode.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019213259A JP7347162B2 (en) | 2019-11-26 | 2019-11-26 | electronic control unit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019213259A JP7347162B2 (en) | 2019-11-26 | 2019-11-26 | electronic control unit |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2021086277A true JP2021086277A (en) | 2021-06-03 |
JP7347162B2 JP7347162B2 (en) | 2023-09-20 |
Family
ID=76087701
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019213259A Active JP7347162B2 (en) | 2019-11-26 | 2019-11-26 | electronic control unit |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7347162B2 (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07262139A (en) * | 1994-03-24 | 1995-10-13 | Hitachi Ltd | Parallel computers |
JP2001022720A (en) * | 1999-07-08 | 2001-01-26 | Nippon Avionics Co Ltd | Multiprocessor system |
JP2017173944A (en) * | 2016-03-22 | 2017-09-28 | コニカミノルタ株式会社 | Information processing device, information processing system, server, and program |
JP2019028748A (en) * | 2017-07-31 | 2019-02-21 | 株式会社デンソー | Electronic control device |
-
2019
- 2019-11-26 JP JP2019213259A patent/JP7347162B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07262139A (en) * | 1994-03-24 | 1995-10-13 | Hitachi Ltd | Parallel computers |
US5787301A (en) * | 1994-03-24 | 1998-07-28 | Hitachi, Ltd. | Parallel computer system |
JP2001022720A (en) * | 1999-07-08 | 2001-01-26 | Nippon Avionics Co Ltd | Multiprocessor system |
JP2017173944A (en) * | 2016-03-22 | 2017-09-28 | コニカミノルタ株式会社 | Information processing device, information processing system, server, and program |
JP2019028748A (en) * | 2017-07-31 | 2019-02-21 | 株式会社デンソー | Electronic control device |
Also Published As
Publication number | Publication date |
---|---|
JP7347162B2 (en) | 2023-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5323828B2 (en) | Virtual machine control device, virtual machine control program, and virtual machine control circuit | |
US7398403B2 (en) | Multiprocessor control apparatus, control method thereof, and integrated circuit | |
JP5317356B2 (en) | Clock control signal generation circuit, clock selector, and information processing apparatus | |
EP3037914A1 (en) | Semiconductor integrated circuit | |
US10571993B2 (en) | Micro controller unit | |
KR20080035986A (en) | Method of controlling a sleep state in controller associated with a vehicle, article of manufacture, controller, and microcomputer | |
JP7347162B2 (en) | electronic control unit | |
US20190214989A1 (en) | Semiconductor device and semiconductor system | |
JP6175980B2 (en) | CPU control method, control program, and information processing apparatus | |
CN115639897A (en) | Real-time voltage control module | |
JP2010097427A (en) | Processing apparatus, processing method and computer program | |
JP6514396B2 (en) | Semiconductor integrated circuit | |
JP2010211358A (en) | Computer system, method for controlling the computer system and program | |
US8677164B2 (en) | Microcomputer and control method thereof | |
JP6071790B2 (en) | Setting processing execution apparatus, setting processing execution method, and program | |
JP4355648B2 (en) | Multiple CPU clock control system, control method thereof, and program thereof | |
JP2002049610A (en) | Device for setting dynamic clock of microcomputer | |
JP6956036B2 (en) | Semiconductor devices and circuit control methods | |
JP2012173919A (en) | Information processor, electronic control unit for vehicle, and data storage method | |
JP7359065B2 (en) | task management device | |
JP2012247850A (en) | Microcomputer | |
JP2008197943A (en) | Computer system | |
JP2018180963A (en) | Information processing apparatus | |
JPH0512728B2 (en) | ||
JP6309216B2 (en) | Processor system and semiconductor integrated circuit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220216 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230203 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230314 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230425 |
|
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: 20230808 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230821 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 7347162 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |