JP2021086277A - Electronic control device - Google Patents

Electronic control device Download PDF

Info

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
Application number
JP2019213259A
Other languages
Japanese (ja)
Other versions
JP7347162B2 (en
Inventor
一輝 柏原
Kazuteru Kashiwabara
一輝 柏原
達也 笠嶋
Tatsuya Kasashima
達也 笠嶋
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 JP2019213259A priority Critical patent/JP7347162B2/en
Publication of JP2021086277A publication Critical patent/JP2021086277A/en
Application granted granted Critical
Publication of JP7347162B2 publication Critical patent/JP7347162B2/en
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)

Abstract

To manage a synchronization even outside an operating system operating section.SOLUTION: An ECU 1 includes CPU cores 11 to 13. The first CPU core 11 is a master core, and the second CPU core 12 and the third CPU core 13 are each a slave core. The first CPU core 11 executes necessary processes for operating an application on the second CPU core 12 and on the third CPU core 13. The first CPU core 11 changes, for each of the CPU cores 11 to 13, whether or not to execute a barrier synchronization in both inside and outside an OS operating section where an OS is operating using involved core identification data 24 managed by the first CPU core 11.SELECTED DRAWING: Figure 1

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コアに割り当てられているタスク内の同期を実行するか否かを切り替えることが記載されている。 Patent Document 1 is mentioned as a technique for solving such a problem. In Patent Document 1, some CPU cores are put to sleep during the power saving control mode, the task arrangement status on the CPU core is changed, and the task operation information is assigned to the CPU core according to the arrangement status and the task operation information. It is described to switch whether to perform synchronization within the task being performed.

特開2018−106472号公報JP-A-2018-106472

より厳しい消費電力要件を満たすために、マイクロコンピュータを間欠的に動作させる方法が知られている。この方法は、システムを利用しない状況になると全ての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.

ECUの構成を示すブロック図である。It is a block diagram which shows the structure of an ECU. 同期箇所識別データ、同期タイミング識別データ、通常時参加コアデータおよび参加コア識別データの具体例を示す図である。It is a figure which shows the specific example of the synchronization place identification data, the synchronization timing identification data, the normal participation core data, and the participation core identification data. 第1,2,3CPUコアの動作の具体例を示すタイミングチャートである。It is a timing chart which shows the specific example of the operation of the 1st, 2nd, and 3rd CPU cores. 第1同期設定処理を示すフローチャートである。It is a flowchart which shows the 1st synchronization setting process. 第2同期設定処理を示すフローチャートである。It is a flowchart which shows the 2nd synchronization setting process. 同期処理を示すフローチャートである。It is a flowchart which shows the synchronization process.

以下に本開示の実施形態を図面とともに説明する。
本実施形態の電子制御装置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 input circuit 3, and an output circuit 4, as shown in FIG. ECU is an abbreviation for Electronic Control Unit.

マイコン2は、入力回路3を介して入力される各種信号に基づいて例えばエンジンの状態を検出する。そしてマイコン2は、エンジンの状態に基づいて、エンジンを制御するための制御信号を出力回路4を介して出力する。 The microcomputer 2 detects, for example, the state of the engine based on various signals input via the input circuit 3. Then, the microcomputer 2 outputs a control signal for controlling the engine via the output circuit 4 based on the state of the engine.

マイコン2は、第1CPUコア11と、第2CPUコア12と、第3CPUコア13と、ROM14と、RAM15と、入出力部16と、バス17とを備える。以下、第1CPUコア11、第2CPUコア12および第3CPUコア13をまとめてCPUコア11〜13ともいう。 The microcomputer 2 includes a first CPU core 11, a second CPU core 12, a third CPU core 13, a ROM 14, a RAM 15, an input / output unit 16, and a bus 17. Hereinafter, the first CPU core 11, the second CPU core 12, and the third CPU core 13 are collectively referred to as CPU cores 11 to 13.

マイクロコンピュータの各種機能は、CPUコア11〜13が非遷移的実体的記録媒体に格納されたプログラムを実行することにより実現される。この例では、ROM14が、プログラムを格納した非遷移的実体的記録媒体に該当する。また、このプログラムの実行により、プログラムに対応する方法が実行される。なお、CPUコア11〜13が実行する機能の一部または全部を、一つあるいは複数のIC等によりハードウェア的に構成してもよい。また、ECU1を構成するマイクロコンピュータの数は1つでも複数でもよい。 Various functions of the microcomputer are realized by the CPU cores 11 to 13 executing a program stored in a non-transitional substantive recording medium. In this example, ROM 14 corresponds to a non-transitional substantive recording medium in which a program is stored. In addition, by executing this program, the method corresponding to the program is executed. In addition, a part or all of the functions executed by the CPU cores 11 to 13 may be configured in hardware by one or a plurality of ICs or the like. Further, the number of microcomputers constituting the ECU 1 may be one or a plurality.

第1CPUコア11、第2CPUコア12および第3CPUコア13は、車両に搭載されているエンジンを制御するための各種制御処理を分散して実行する。
ROM14は、不揮発性メモリであり、エンジンを制御する各種制御処理を実行するための制御プログラムを記憶する。
The first CPU core 11, the second CPU core 12, and the third CPU core 13 distribute and execute various control processes for controlling the engine mounted on the vehicle.
The ROM 14 is a non-volatile memory and stores a control program for executing various control processes for controlling the engine.

RAM15は、揮発性メモリであり、CPUコア11〜13の演算結果等を一時的に記憶する。
入出力部16は、マイコン2の外部とCPUコア11〜13との間でデータの入出力を行わせるための回路である。
The RAM 15 is a volatile memory and temporarily stores the calculation results of the CPU cores 11 to 13.
The input / output unit 16 is a circuit for inputting / outputting data between the outside of the microcomputer 2 and the CPU cores 11 to 13.

バス17は、CPUコア11〜13、ROM14、RAM15および入出力部16を、互いにデータ入出力可能に接続する。
ECU1は、CPUコア11〜13間における処理順序を保証するために、CPUコア11〜13間の処理を待ち合わせるバリア同期機構を備える。バリア同期機構は、CPUコア11〜13が同期を実行する箇所(以下、同期箇所)と、同期箇所において同期対象となるCPUコア11〜13(以下、参加コア)とを予め設定することにより、CPUコア11〜13間の処理を任意の同期箇所で同期させることができる。
The bus 17 connects the CPU cores 11 to 13, the ROM 14, the RAM 15, and the input / output unit 16 to each other so that data can be input and output.
The ECU 1 includes a barrier synchronization mechanism that waits for processing between CPU cores 11 to 13 in order to guarantee the processing order between CPU cores 11 to 13. The barrier synchronization mechanism sets in advance the locations where the CPU cores 11 to 13 perform synchronization (hereinafter, synchronization locations) and the CPU cores 11 to 13 (hereinafter, participating cores) to be synchronized at the synchronization locations. The processes between the CPU cores 11 to 13 can be synchronized at any synchronization point.

ECU1は、消費電力を低減するために、状況に応じて、制御モードを通常制御モードと省電力制御モードとの間で切り替えるモード制御機構を備える。ECU1は、制御モードが省電力制御モードになると、全てのCPUコア11〜13をスリープさせ、その後、CPUコア11のみを起床させて必要な処理を実行させた後に再度スリープさせる間欠動作を定期的に実行する。 The ECU 1 includes a mode control mechanism for switching the control mode between the normal control mode and the power saving control mode depending on the situation in order to reduce the power consumption. When the control mode becomes the power saving control mode, the ECU 1 periodically performs an intermittent operation in which all the CPU cores 11 to 13 are put to sleep, and then only the CPU core 11 is woken up to execute necessary processing and then put to sleep again. To run.

CPUコア11〜13が実行するスリープは、電源がほとんど供給されない状態まで落とすスリープ(以下、深いスリープ)である。CPUコア11〜13が深いスリープから起床するときには、オペレーティングシステム(以下、OS)の起動処理を含めたCPUコア11〜13毎の初期化処理(以下、スタートアップ処理)が必要である。また、CPUコア11〜13が深いスリープへ遷移するときには、OSの終了処理を含めたCPUコア11〜13毎の終了処理(以下、シャットダウン処理)が必要である。 The sleep executed by the CPU cores 11 to 13 is a sleep (hereinafter referred to as a deep sleep) that drops the power to a state in which almost no power is supplied. When the CPU cores 11 to 13 wake up from a deep sleep, initialization processing (hereinafter, startup processing) for each CPU core 11 to 13 including the startup processing of the operating system (hereinafter, OS) is required. Further, when the CPU cores 11 to 13 transition to a deep sleep, termination processing (hereinafter, shutdown processing) for each CPU core 11 to 13 including OS termination processing is required.

第1CPUコア11は、ECU1へ電源が投入された後に、CPUコア11〜13の中で最初に起動されるマスタコアである。第2CPUコア12および第3CPUコア13は、マスタコアである第1CPUコア11によって起動されるスレーブコアである。 The first CPU core 11 is a master core that is started first among the CPU cores 11 to 13 after the power is turned on to the ECU 1. The second CPU core 12 and the third CPU core 13 are slave cores activated by the first CPU core 11, which is a master core.

マスタコアである第1CPUコア11は、スレーブコア(すなわち、第2CPUコア12および第3CPUコア13)上でアプリケーションを動作させるために必要な処理を実行する。具体的には、第1CPUコア11は、スレーブコアの起動、バリア同期の設定、制御モードの管理、および、ECU1が有するハードウェアリソースの有効化または無効化などを実行する。 The first CPU core 11, which is the master core, executes the processing necessary for operating the application on the slave cores (that is, the second CPU core 12 and the third CPU core 13). Specifically, the first CPU core 11 executes slave core activation, barrier synchronization setting, control mode management, and activation or invalidation of hardware resources possessed by the ECU 1.

スレーブコアである第2CPUコア12および第3CPUコア13はそれぞれ、第2CPUコア12および第3CPUコア13に割り当てられたアプリケーション処理を実行する。アプリケーション処理は、ハードウェアリソースを利用した演算処理および制御処理であり、例えば、外界情報を取得する処理、および、アクチュエータを制御する処理などが挙げられる。 The second CPU core 12 and the third CPU core 13, which are slave cores, execute application processing assigned to the second CPU core 12 and the third CPU core 13, respectively. The application process is an arithmetic process and a control process using hardware resources, and examples thereof include a process of acquiring external world information and a process of controlling an actuator.

RAM15は、同期箇所識別データ21、同期タイミング識別データ22、通常時参加コアデータ23、参加コア識別データ24、バリア同期エントリデータ25、制御モード識別データ26および稼働コア識別データ27を記憶する。 The RAM 15 stores the synchronization location identification data 21, the synchronization timing identification data 22, the normal participation core data 23, the participation core identification data 24, the barrier synchronization entry data 25, the control mode identification data 26, and the operating core identification data 27.

同期箇所識別データ21は、CPUコア11〜13のそれぞれがバリア同期の同期箇所を識別する情報である。
同期タイミング識別データ22は、各同期が実行される処理区間を識別する情報である。処理区間は、スタートアップ処理区間、OS動作区間およびシャットダウン処理区間の何れかである。
The synchronization location identification data 21 is information in which each of the CPU cores 11 to 13 identifies a synchronization location of barrier synchronization.
The synchronization timing identification data 22 is information for identifying a processing section in which each synchronization is executed. The processing section is any of a startup processing section, an OS operating section, and a shutdown processing section.

通常時参加コアデータ23は、通常制御モードにおいて同期に参加するCPUコアを識別する情報である。
参加コア識別データ24は、各同期箇所において同期に参加するCPUコアを識別する情報である。
The normal time participation core data 23 is information for identifying CPU cores that participate in synchronization in the normal control mode.
The participating core identification data 24 is information for identifying CPU cores participating in synchronization at each synchronization location.

バリア同期エントリデータ25は、各同期箇所において同期箇所に到達しているCPUコア11〜13を識別する情報である。
制御モード識別データ26は、ECU1において実行されている制御モードを識別する情報である。マスタコアである第1CPUコア11は、現在の制御モードを判断し、この判断結果に基づいて、制御モード識別データ26の内容を適宜書き換える。
The barrier synchronization entry data 25 is information for identifying CPU cores 11 to 13 that have reached the synchronization location at each synchronization location.
The control mode identification data 26 is information for identifying the control mode executed in the ECU 1. The first CPU core 11, which is the master core, determines the current control mode, and appropriately rewrites the contents of the control mode identification data 26 based on the determination result.

稼働コア識別データ27は、稼働しているCPUコア11〜13を識別する情報である。
次に、同期箇所識別データ21、同期タイミング識別データ22、通常時参加コアデータ23および参加コア識別データ24の具体例を示す。
The operating core identification data 27 is information for identifying the operating CPU cores 11 to 13.
Next, specific examples of the synchronization location identification data 21, the synchronization timing identification data 22, the normal participation core data 23, and the participation core identification data 24 will be shown.

図2に示すように、同期箇所識別データ21には、例えば、五か所の同期箇所のそれぞれに対して1,2,3,4,5の同期識別番号が格納される。
同期タイミング識別データ22には、五か所の同期箇所のそれぞれに対して、処理区間を示す情報が格納される。例えば、同期識別番号が1,2である同期箇所に対して、スタートアップ処理区間が設定されている。同様に、同期識別番号が3である同期箇所に対して、OS動作区間が設定され、同期識別番号が4,5である同期箇所に対して、シャットダウン処理区間が設定されている。
As shown in FIG. 2, the synchronization location identification data 21 stores, for example, 1, 2, 3, 4, 5 synchronization identification numbers for each of the five synchronization locations.
The synchronization timing identification data 22 stores information indicating a processing section for each of the five synchronization points. For example, a startup processing section is set for the synchronization location where the synchronization identification numbers 1 and 2. Similarly, the OS operating section is set for the synchronization location where the synchronization identification number is 3, and the shutdown processing section is set for the synchronization location where the synchronization identification numbers are 4 and 5.

通常時参加コアデータ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 participation core data 23 stores information indicating whether or not the CPU cores 11 to 13 participate in each of the five synchronization points. For example, the first CPU core 11 and the second CPU core 12 are set to "participate" and the third CPU core 13 is set to "non-participate" with respect to the synchronization points having the synchronization identification numbers 1 and 5. The first CPU core 11 and the third CPU core 13 are set to "participate" and the second CPU core 12 is set to "non-participate" with respect to the synchronization points having the synchronization identification numbers 2 and 4. The second CPU core 12 and the third CPU core 13 are set to "participate" and the first CPU core 11 is set to "non-participate" with respect to the synchronization location where the synchronization identification number is 3.

同期箇所識別データ21、同期タイミング識別データ22および通常時参加コアデータ23に格納される情報は、予め設定された固定値であり、ROM14に記憶されている。第1CPUコア11は、ECU1へ電源が投入された後に、上記の固定値をROM14から読み出して、RAM15に設けられた同期箇所識別データ21、同期タイミング識別データ22および通常時参加コアデータ23に格納する。 The information stored in the synchronization location identification data 21, the synchronization timing identification data 22, and the normal participation core data 23 is a preset fixed value and is stored in the ROM 14. After the power is turned on to the ECU 1, the first CPU core 11 reads the above fixed value from the ROM 14 and stores it in the synchronization location identification data 21, the synchronization timing identification data 22, and the normal participation core data 23 provided in the RAM 15. To do.

参加コア識別データ24には、六か所の同期箇所のそれぞれに対して、CPUコア11〜13が参加するか否かを示す情報が格納される。参加コア識別データ24は、後述する第1同期設定処理および第2同期設定処理によって適宜書き換えられる。 The participating core identification data 24 stores information indicating whether or not the CPU cores 11 to 13 participate in each of the six synchronization points. The participating core identification data 24 is appropriately rewritten by the first synchronization setting process and the second synchronization setting process described later.

次に、CPUコア11〜13の動作の具体例を説明する。
図3に示すように、時刻t1において、制御モードが通常制御モードへ切り替わったとする。これにより、区間PI1,PI21で示すように、CPUコア11〜13は、スタートアップ処理区間へ移行し、スタートアップ処理を実行する。
Next, a specific example of the operation of the CPU cores 11 to 13 will be described.
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 CPU cores 11 to 13 shift to the startup processing section and execute the startup processing.

時刻t2でスタートアップ処理区間が終了すると、区間PI2,PI22で示すように、CPUコア11〜13は、OS動作区間に移行する。 When the startup processing section ends at time t2, the CPU cores 11 to 13 shift to the OS operating section as shown in the sections PI2 and PI22.

その後、通常制御モードでの処理が不要であると第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 first CPU core 11 determines that the processing in the normal control mode is unnecessary, the first CPU core 11 notifies the second CPU core 12 and the third CPU core 13 to that effect, and the OS operating section is set at time t3. Is finished. As a result, as shown in the sections PI3 and PI23, the CPU cores 11 to 13 shift to the shutdown processing section and execute the shutdown processing.
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 CPU cores 11 to 13 transition to a deep sleep as shown in the sections PI4 and PI24.

省電力制御モードにおいて、第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 first CPU core 11 executes the above-mentioned intermittent operation. Specifically, as shown in the section PI5, the first CPU core 11 shifts to the startup processing section at time t5 and executes the startup processing. As shown in the section PI6, the first CPU core 11 shifts to the OS operating section at time t6. As shown in the section PI7, the first CPU core 11 shifts to the shutdown processing section at time t7 and executes the shutdown processing. As shown in the section PI8, the first CPU core 11 transitions to a deep sleep at time t8. As shown in the section PI9, the first CPU core 11 shifts to the startup processing section at time t9 and executes the startup processing.

このスタートアップ処理区間内において、パルス信号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 second CPU core 12 and the third CPU core 13 shift to the startup processing section and execute the startup processing.

そして第1CPUコア11は、時刻t11でスタートアップ処理区間が終了すると、区間PI10で示すように、OS動作区間に移行する。また第2CPUコア12および第3CPUコア13は、時刻t12でスタートアップ処理区間が終了すると、区間PI26で示すように、OS動作区間に移行する。 Then, when the startup processing section ends at time t11, the first CPU core 11 shifts to the OS operating section as shown by the section PI10. Further, when the startup processing section ends at time t12, the second CPU core 12 and the third CPU core 13 shift to the OS operating section as shown by the section PI26.

その後、通常制御モードでの処理が不要であると第1CPUコア11により判断されると、その旨が第1CPUコア11から第2CPUコア12および第3CPUコア13へ通知され、時刻t13でOS動作区間が終了する。これにより、区間PI11,PI27で示すように、CPUコア11〜13は、シャットダウン処理区間へ移行し、シャットダウン処理を実行する。シャットダウン処理が終了すると、時刻t14で、制御モードが通常制御モードから省電力制御モードへ切り替わる。 After that, when the first CPU core 11 determines that the processing in the normal control mode is unnecessary, the first CPU core 11 notifies the second CPU core 12 and the third CPU core 13, and the OS operating section is set at time t13. Is finished. As a result, as shown in the sections PI11 and PI27, the CPU cores 11 to 13 shift to the shutdown processing section and execute the shutdown processing. When the shutdown process is completed, the control mode is switched from the normal control mode to the power saving control mode at time t14.

参加コア識別データ24には、時刻t1〜時刻t4の区間PI31において、通常時参加コアデータ23が格納される。参加コア識別データ24は、時刻t4〜時刻t5の区間PI32において参照されない。CPUコア11〜13が深いスリープ中であるためである。参加コア識別データ24には、時刻t5〜時刻t8の区間PI33において、後述する省電力時参加コアデータが格納される。 The participating core identification data 24 stores the normal participating core data 23 in the section PI31 at time t1 to time t4. Participating core identification data 24 is not referenced in the interval PI32 from time t4 to time t5. This is because the CPU cores 11 to 13 are in deep sleep. The participating core identification data 24 stores the power-saving participation core data, which will be described later, in the section PI33 at time t5 to time t8.

参加コア識別データ24は、時刻t8〜時刻t9の区間PI34において参照されない。CPUコア11〜13が深いスリープ中であるためである。参加コア識別データ24には、時刻t9〜時刻t10の区間PI35において、省電力時参加コアデータが格納される。参加コア識別データ24には、時刻t10〜時刻t14の区間PI36において、後述する復帰時参加コアデータが格納される。 Participating core identification data 24 is not referenced in the interval PI34 from time t8 to time t9. This is because the CPU cores 11 to 13 are in deep sleep. The participating core identification data 24 stores the participating core data at the time of power saving in the section PI35 from the time t9 to the time t10. The participating core identification data 24 stores the participating core data at the time of return, which will be described later, in the section PI36 at time t10 to time t14.

第1CPUコア11は、時刻t1〜時刻t4の区間PI41において、同期を実行する。第1CPUコア11は、時刻t4〜時刻t13の区間PI42において、同期を実行しない。第1CPUコア11は、時刻t13〜時刻t14の区間PI43において、同期を実行する。 The first CPU core 11 executes synchronization in the section PI41 at time t1 to time t4. The first CPU core 11 does not execute synchronization in the section PI42 from time t4 to time t13. The first CPU core 11 executes synchronization in the section PI43 from time t13 to time t14.

第2,3CPUコア12,13は、時刻t1〜時刻t4の区間PI51において、同期を実行する。第2,3CPUコア12,13は、時刻t4〜時刻t10の区間PI52において、同期を実行しない。第2,3CPUコア12,13は、時刻t10〜時刻t14の区間PI53において、同期を実行する。 The second and third CPU cores 12 and 13 execute synchronization in the section PI51 at time t1 to time t4. The second and third CPU cores 12 and 13 do not execute synchronization in the section PI52 from time t4 to time t10. The second and third CPU cores 12 and 13 execute synchronization in the section PI53 at time t10 to time t14.

次に、第1CPUコア11が実行する第1同期設定処理の手順を説明する。第1同期設定処理は、通常制御モード下でスタートアップ処理を開始したタイミング、または、省電力制御モード下でスタートアップ処理を開始したタイミングで実行される処理である。 Next, the procedure of the first synchronization setting process executed by the first CPU core 11 will be described. The first synchronization setting process is a process executed at the timing when the start-up process is started under the normal control mode or at the timing when the start-up process is started under the power saving control mode.

第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 first CPU core 11 first acquires the control mode identification data 26 in S10 as shown in FIG.
The first CPU core 11 determines in S20 whether or not the current control mode is the normal control mode based on the control mode identification data 26 acquired in S10. Here, when the current control mode is the normal control mode, the first CPU core 11 sets the same information stored in the normal participation core data 23 for each of the plurality of synchronization identification numbers in S30. It is stored in the participating core identification data 24 corresponding to the synchronization identification number, and the first synchronization setting process is completed. For example, in the normal participation core data 23 corresponding to the synchronization identification number 2, the first CPU core 11 and the third CPU core 13 are set to "participation", and the second CPU core 12 is set to "non-participation". Therefore, in the participating core identification data 24 corresponding to the synchronization identification number 2, the first CPU core 11 and the third CPU core 13 are set to "participate", and the second CPU core 12 is set to "non-participate".

一方、現時点の制御モードが通常制御モードでない場合には、第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 first CPU core 11 stores 0 in the synchronization identification number indicated value i provided in the RAM 15 in S40.
Then, in S50, the first CPU core 11 stores the added value obtained by adding 1 to the value stored in the synchronous identification number indicated value i in the synchronous identification number indicated value i.

第1CPUコア11は、S60にて、同期識別番号指示値iに対応する同期識別番号の通常時参加コアデータ23を取得する。
第1CPUコア11は、S70にて、同期識別番号指示値iに対応する省電力時参加コアデータを生成する。具体的には、第1CPUコア11は、第1CPUコア11、第2CPUコア12および第3CPUコア13が「不参加」に設定されている情報を、同期識別番号指示値iに対応する省電力時参加コアデータとして生成する。
In S60, the first CPU core 11 acquires the normal participation core data 23 of the synchronization identification number corresponding to the synchronization identification number indicated value i.
In S70, the first CPU core 11 generates power saving participation core data corresponding to the synchronization identification number indicated value i. Specifically, the first CPU core 11 participates in the information in which the first CPU core 11, the second CPU core 12, and the third CPU core 13 are set to "non-participate" at the time of power saving corresponding to the synchronization identification number indicated value i. Generate as core data.

次に第1CPUコア11は、S80にて、同期識別番号指示値iに格納されている値が予め設定されている識別番号最大値k以上であるか否かを判断する。ここで、同期識別番号指示値iに格納されている値が識別番号最大値k未満である場合には、第1CPUコア11は、S50に移行する。 Next, the first CPU core 11 determines in S80 whether or not the value stored in the synchronous identification number indicated value i is equal to or greater than the preset identification number maximum value k. Here, when the value stored in the synchronous identification number indicated value i is less than the maximum identification number k, the first CPU core 11 shifts to S50.

一方、同期識別番号指示値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 first CPU core 11 participates in S90 for each of the plurality of synchronization identification numbers during power saving. The core data is stored in the participating core identification data 24 corresponding to the same synchronization identification number, and the first synchronization setting process is completed. As a result, in the participating core identification data 24 corresponding to the synchronous identification number indicated value i, the first CPU core 11, the second CPU core 12, and the third CPU core 13 are set to “non-participating”. i is an integer from 1 to k.

次に、第1CPUコア11が実行する第2同期設定処理の手順を説明する。第2同期設定処理は、省電力制御モード下において、通常制御モードへ復帰する契機となるイベント(すなわち、復帰イベント)が発生したタイミングで実行される処理である。 Next, the procedure of the second synchronization setting process executed by the first CPU core 11 will be described. The second synchronization setting process is a process executed at the timing when an event (that is, a return event) that triggers the return to the normal control mode occurs under the power saving control mode.

第2同期設定処理が実行されると、第1CPUコア11は、図5に示すように、まずS210にて、第1CPUコア11がシャットダウン処理中または深いスリープ中であるか否かを判断する。ここで、第1CPUコア11がシャットダウン処理中および深いスリープ中である場合には、第1CPUコア11は、第2同期設定処理を終了する。 When the second synchronization setting process is executed, the first CPU core 11 first determines in S210 whether the first CPU core 11 is in the shutdown process or in the deep sleep, as shown in FIG. Here, when the first CPU core 11 is in the shutdown process and in the deep sleep, the first CPU core 11 ends the second synchronization setting process.

一方、第1CPUコア11がシャットダウン処理中または深いスリープ中でない場合には、第1CPUコア11は、S220にて、同期識別番号指示値iに0を格納する。
そして第1CPUコア11は、S230にて、同期識別番号指示値iに格納されている値に1を加算した加算値を、同期識別番号指示値iに格納する。
On the other hand, when the first CPU core 11 is not in the shutdown process or in the deep sleep, the first CPU core 11 stores 0 in the synchronization identification number indicated value i in S220.
Then, in S230, the first CPU core 11 stores the added value obtained by adding 1 to the value stored in the synchronous identification number indicated value i in the synchronous identification number indicated value i.

第1CPUコア11は、S240にて、同期識別番号指示値iに対応する同期識別番号の通常時参加コアデータ23および同期タイミング識別データ22を取得する。
第1CPUコア11は、S250にて、S240で取得した同期タイミング識別データ22が示す処理区間はスタートアップ処理区間またはOS動作区間であるか否かを判断する。
In S240, the first CPU core 11 acquires the normal participation core data 23 and the synchronization timing identification data 22 of the synchronization identification number corresponding to the synchronization identification number indicated value i.
The first CPU core 11 determines in S250 whether or not the processing section indicated by the synchronization timing identification data 22 acquired in S240 is a startup processing section or an OS operating section.

ここで、処理区間がスタートアップ処理区間または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 first CPU core 11 generates the participating core data at the time of return in which the master core is changed to "non-participating" in S260, and shifts to S280. .. Specifically, the first CPU core 11 is set to "non-participation" in the normal participation core data 23 acquired in S240 (that is, the normal participation core data 23 of the synchronization identification number corresponding to the synchronization identification number indicated value i). The information is generated as the participation core data at the time of restoration of the synchronization identification number corresponding to the synchronization identification number indicated value i.

一方、処理区間がスタートアップ処理区間および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 first CPU core 11 uses S270 to identify the normal participation core data 23 acquired in S240 by synchronization identification corresponding to the synchronization identification number indicated value i. It is generated as participating core data when the number is restored, and is transferred to S280.

S280に移行すると、第1CPUコア11は、同期識別番号指示値iに格納されている値が識別番号最大値k以上であるか否かを判断する。ここで、同期識別番号指示値iに格納されている値が識別番号最大値k未満である場合には、第1CPUコア11は、S230に移行する。 Upon shifting to S280, the first CPU core 11 determines whether or not the value stored in the synchronization identification number indicated value i is equal to or greater than the maximum identification number value k. Here, when the value stored in the synchronous identification number indicated value i is less than the maximum identification number k, the first CPU core 11 shifts to S230.

一方、同期識別番号指示値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 first CPU core 11 participates in S290 for each of the plurality of synchronization identification numbers at the time of return. The data is stored in the participating core identification data 24 corresponding to the same synchronization identification number, and the second synchronization setting process is completed.

次に、CPUコア11〜13が実行する同期処理の手順を説明する。同期処理は、CPUコア11〜13のそれぞれが同期箇所に到達したタイミングで実行される処理である。
以下では、CPUコア11〜13を代表して第2CPUコア12が同期処理を実行しているとして説明する。
Next, the procedure of the synchronous processing executed by the CPU cores 11 to 13 will be described. The synchronization process is a process executed when each of the CPU cores 11 to 13 reaches the synchronization point.
Hereinafter, it will be described that the second CPU core 12 is executing the synchronization process on behalf of the CPU cores 11 to 13.

同期処理が実行されると、第2CPUコア12は、図6に示すように、まずS410にて、この同期処理が開始される起因となった同期箇所(以下、起因同期箇所)における参加コア識別データ24を取得する。 When the synchronization process is executed, as shown in FIG. 6, the second CPU core 12 first identifies the participating cores at the synchronization point (hereinafter referred to as the cause synchronization point) that caused the start of the synchronization process in S410. Acquire data 24.

第2CPUコア12は、S420にて、S410で取得した参加コア識別データ24に基づいて、第2CPUコア12が起因同期箇所における同期に参加するか否かを判断する。具体的には、第2CPUコア12は、取得した参加コア識別データ24において第2CPUコア12が「参加」に設定されている場合には、同期に参加すると判断する。また、第2CPUコア12は、取得した参加コア識別データ24において第2CPUコア12が「不参加」に設定されている場合には、同期に参加しないと判断する。 The second CPU core 12 determines in S420 whether or not the second CPU core 12 participates in the synchronization at the cause synchronization location based on the participation core identification data 24 acquired in S410. Specifically, the second CPU core 12 determines that the second CPU core 12 participates in the synchronization when the second CPU core 12 is set to "participate" in the acquired participating core identification data 24. Further, the second CPU core 12 determines that the second CPU core 12 does not participate in the synchronization when the second CPU core 12 is set to "non-participate" in the acquired participating core identification data 24.

ここで、同期に参加しない場合には、第2CPUコア12は、同期処理を終了する。一方、同期に参加する場合には、第2CPUコア12は、S430にて、起因同期箇所に対応するバリア同期エントリデータ25に、第2CPUコア12が起因同期箇所に到達したことを示す到達値を書き込むことにより、バリア同期エントリデータ25を更新する。 Here, if it does not participate in the synchronization, the second CPU core 12 ends the synchronization process. On the other hand, when participating in synchronization, in S430, the second CPU core 12 sets the barrier synchronization entry data 25 corresponding to the cause synchronization location with an arrival value indicating that the second CPU core 12 has reached the cause synchronization location. By writing, the barrier synchronization entry data 25 is updated.

第2CPUコア12は、S440にて、バリア同期が成立したか否かを判断する。具体的には、第2CPUコア12は、起因同期箇所に対応するバリア同期エントリデータ25に、取得した参加コア識別データ24において「参加」に設定されているCPUコア11〜13(以下、同期参加コア)の到達値が書き込まれているか否かを判断する。 The second CPU core 12 determines in S440 whether or not barrier synchronization has been established. Specifically, the second CPU core 12 is the CPU cores 11 to 13 (hereinafter, synchronous participation) set to "participate" in the acquired participating core identification data 24 in the barrier synchronization entry data 25 corresponding to the cause synchronization location. Judge whether the reached value of core) is written.

従って、第2CPUコア12は、起因同期箇所に対応するバリア同期エントリデータ25に全ての同期参加コアの到達値が書き込まれている場合には、バリア同期が成立したと判断する。一方、第2CPUコア12は、起因同期箇所に対応するバリア同期エントリデータ25に同期参加コアの少なくとも一つの到達値が書き込まれていない場合には、バリア同期が成立していないと判断する。 Therefore, the second CPU core 12 determines that the barrier synchronization has been established when the reached values of all the synchronization participating cores are written in the barrier synchronization entry data 25 corresponding to the cause synchronization location. On the other hand, the second CPU core 12 determines that the barrier synchronization has not been established when at least one reached value of the synchronization participating cores is not written in the barrier synchronization entry data 25 corresponding to the cause synchronization location.

ここで、バリア同期が成立していない場合には、第2CPUコア12は、S440の処理を繰り返すことにより、バリア同期が成立するまで待機する。一方、バリア同期が成立した場合には、第2CPUコア12は、同期処理を終了する。 Here, when the barrier synchronization is not established, the second CPU core 12 waits until the barrier synchronization is established by repeating the process of S440. On the other hand, when barrier synchronization is established, the second CPU core 12 ends the synchronization process.

このように構成されたECU1は、CPUコア11〜13を備える。第1CPUコア11は、マスタコアであり、第2CPUコア12および第3CPUコア13はスレーブコアである。 The ECU 1 configured in this way includes CPU cores 11 to 13. The first CPU core 11 is a master core, and the second CPU core 12 and the third CPU core 13 are slave cores.

第1CPUコア11は、第2CPUコア12および第3CPUコア13上でアプリケーションを動作させるために必要な処理を実行する。
第1CPUコア11は、OS動作区間の内と外の両方において、第1CPUコア11が管理する参加コア識別データ24を用いて、CPUコア11〜13のそれぞれについてバリア同期を実行するか否かを切り替える。
The first CPU core 11 executes processing necessary for operating an application on the second CPU core 12 and the third CPU core 13.
Whether or not the first CPU core 11 executes barrier synchronization for each of the CPU cores 11 to 13 by using the participating core identification data 24 managed by the first CPU core 11 both inside and outside the OS operating section. Switch.

このように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 ECU 1 switches whether or not to execute barrier synchronization for each of the CPU cores 11 to 13 not only within the OS operating section but also outside the OS operating section. Therefore, the ECU 1 can manage the barrier synchronization of the CPU cores 11 to 13 even outside the OS operating section. As a result, the ECU 1 advances the startup process by causing the second CPU core 12 and the third CPU core 13, which are barrier synchronization partners, to be in the sleep state during the startup process executed when the first CPU core 11 wakes up from the deep sleep. It is possible to suppress the occurrence of a situation in which Similarly, in the ECU 1, the shutdown process proceeds because the second CPU core 12 and the third CPU core 13, which are barrier synchronization partners, are in the sleep state during the shutdown process executed when the first CPU core 11 transitions to the deep sleep. It is possible to suppress the occurrence of a situation in which

また第1CPUコア11は、参加コア識別データ24を更新することによって、CPUコア11〜13のそれぞれについてバリア同期を実行するか否かを切り替える。これにより、CPUコア11〜13は、バリア同期を実行するときに参加コア識別データ24を参照するというCPUコア11〜13の全てに共通した手順で、バリア同期を実行するか否かを判断することができる。 Further, the first CPU core 11 switches whether or not to execute barrier synchronization for each of the CPU cores 11 to 13 by updating the participating core identification data 24. As a result, the CPU cores 11 to 13 determine whether or not to execute the barrier synchronization by the procedure common to all the CPU cores 11 to 13 that the participating core identification data 24 is referred to when the barrier synchronization is executed. be able to.

またECU1は、OSを継続して動作させる通常制御モードと、CPUコア11〜13の全てのをスリープさせ、その後、第1CPUコア11のみを起床させて必要な処理を実行させた後に再びスリープさせる間欠動作を定期的に実行する省電力制御モードとの間で制御モードを切り替えるように構成されている。第1CPUコア11は、スリープから起床するときにはスタートアップ処理を実行し、スリープへ遷移するときにはシャットダウン処理を実行するように構成されている。そして第1CPUコア11は、第1CPUコア11がスタートアップ処理を実行する時と、省電力制御モードから通常制御モードへ復帰する時とにおいて、参加コア識別データ24を更新する。このようにECU1は、スタートアップ処理を実行する時と、省電力制御モードから通常制御モードへ復帰する時とを更新タイミングとすることで、制御モードと、制御モードの切り替わりとに応じて、即時に参加コア識別データ24を更新することが可能となる。 Further, the ECU 1 puts the normal control mode for continuously operating the OS and all the CPU cores 11 to 13 to sleep, and then wakes up only the first CPU core 11 to execute necessary processing and then puts it to sleep again. It is configured to switch the control mode between the power saving control mode that periodically executes intermittent operation. The first CPU core 11 is configured to execute a startup process when waking up from sleep and a shutdown process when transitioning to sleep. Then, the first CPU core 11 updates the participating core identification data 24 when the first CPU core 11 executes the startup process and when the first CPU core 11 returns from the power saving control mode to the normal control mode. In this way, the ECU 1 sets the update timing at the time of executing the start-up process and the time of returning from the power saving control mode to the normal control mode, so that the ECU 1 can immediately switch between the control mode and the control mode. The participating core identification data 24 can be updated.

第1CPUコア11は、第1CPUコア11がスタートアップ処理を実行する時において、制御モードに基づいて、参加コア識別データ24を更新する。これにより、ECU1は、第1CPUコア11が深いスリープから起床した直後から制御モードに応じて参加コア識別データ24を更新するため、制御モードが更新されてもECU1の動作を保証することが可能となる。 The first CPU core 11 updates the participating core identification data 24 based on the control mode when the first CPU core 11 executes the startup process. As a result, the ECU 1 updates the participating core identification data 24 according to the control mode immediately after the first CPU core 11 wakes up from the deep sleep, so that the operation of the ECU 1 can be guaranteed even if the control mode is updated. Become.

第1CPUコア11は、省電力制御モードから通常制御モードへ復帰する時において、第1CPUコア11が実行している処理に基づいて、参加コア識別データ24を更新する。これにより、ECU1は、省電力制御モードから通常制御モードへ復帰する時において、処理の整合性を保持するために、必要な同期箇所におけるバリア同期を実行することができる。このため、ECU1は、ECU1のリセットなどを介することなく、通常制御モードへ復帰するための処理を実行することができ、通常制御モードへの復帰に関する高い応答性を確保することが可能となる。 When returning from the power saving control mode to the normal control mode, the first CPU core 11 updates the participating core identification data 24 based on the processing executed by the first CPU core 11. As a result, when returning from the power saving control mode to the normal control mode, the ECU 1 can execute barrier synchronization at a necessary synchronization point in order to maintain the consistency of processing. Therefore, the ECU 1 can execute the process for returning to the normal control mode without resetting the ECU 1, and can secure high responsiveness regarding the return to the normal control mode.

以上説明した実施形態において、第1CPUコア11はマスタコアに相当し、第2CPUコア12および第3CPUコア13はスレーブコアに相当し、参加コア識別データ24は同期管理情報に相当し、S10〜S90,S210〜S290は同期切替部としての処理に相当する。 In the embodiment described above, the first CPU core 11 corresponds to the master core, the second CPU core 12 and the third CPU core 13 correspond to the slave core, the participating core identification data 24 corresponds to the synchronization management information, and S10 to S90, S210 to S290 correspond to the processing as the synchronization switching unit.

また、スタートアップ処理は初期化処理に相当し、シャットダウン処理は終了処理に相当する。
以上、本開示の一実施形態について説明したが、本開示は上記実施形態に限定されるものではなく、種々変形して実施することができる。
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 microcomputer 2 has three CPU cores, but the microcomputer 2 may have two CPU cores or four or more CPU cores.

本開示に記載のECU1およびその手法は、コンピュータプログラムにより具体化された一つ乃至は複数の機能を実行するようにプログラムされたプロセッサおよびメモリを構成することによって提供された専用コンピュータにより、実現されてもよい。あるいは、本開示に記載のECU1およびその手法は、一つ以上の専用ハードウェア論理回路によってプロセッサを構成することによって提供された専用コンピュータにより、実現されてもよい。もしくは、本開示に記載のECU1およびその手法は、一つ乃至は複数の機能を実行するようにプログラムされたプロセッサおよびメモリと一つ以上のハードウェア論理回路によって構成されたプロセッサとの組み合わせにより構成された一つ以上の専用コンピュータにより、実現されてもよい。また、コンピュータプログラムは、コンピュータにより実行されるインストラクションとして、コンピュータ読み取り可能な非遷移有形記録媒体に記憶されてもよい。ECU1に含まれる各部の機能を実現する手法には、必ずしもソフトウェアが含まれている必要はなく、その全部の機能が、一つあるいは複数のハードウェアを用いて実現されてもよい。 The ECU 1 and its method described in the present disclosure are realized by a dedicated computer provided by configuring a processor and memory programmed to perform one or more functions embodied by a computer program. You may. Alternatively, the ECU 1 and its method described in the present disclosure may be realized by a dedicated computer provided by configuring the processor with one or more dedicated hardware logic circuits. Alternatively, the ECU 1 and its method described in the present disclosure are configured by a combination of a processor and memory programmed to perform one or more functions and a processor composed of one or more hardware logic circuits. It may be realized by one or more dedicated computers. The computer program may also be stored on a computer-readable non-transitional tangible recording medium as an instruction executed by the computer. The method for realizing the functions of each part included in the ECU 1 does not necessarily include software, and all the functions may be realized by using one or a plurality of hardware.

上記実施形態における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 ECU 1, various systems such as a system having the ECU 1 as a component, a program for operating a computer as the ECU 1, a non-transitional substantive recording medium such as a semiconductor memory in which this program is recorded, and a device control method are used. The present disclosure can also be realized in the form.

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コア(11,12,13)を備える電子制御装置(1)であって、
複数の前記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.
請求項1に記載の電子制御装置であって、
前記同期切替部は、前記同期管理情報を更新することによって、複数の前記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.
請求項2に記載の電子制御装置であって、
前記電子制御装置は、前記オペレーティングシステムを継続して動作させる通常制御モードと、全ての前記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.
請求項3に記載の電子制御装置であって、
前記同期切替部は、前記マスタコアが前記初期化処理を実行する時において、前記制御モードに基づいて、前記同期管理情報を更新する電子制御装置。
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.
請求項3に記載の電子制御装置であって、
前記同期切替部は、前記省電力制御モードから前記通常制御モードへ復帰する時において、前記マスタコアが実行している処理に基づいて、前記同期管理情報を更新する電子制御装置。
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.
JP2019213259A 2019-11-26 2019-11-26 electronic control unit Active JP7347162B2 (en)

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)

* Cited by examiner, † Cited by third party
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
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