JP7334552B2 - electronic controller - Google Patents

electronic controller Download PDF

Info

Publication number
JP7334552B2
JP7334552B2 JP2019168429A JP2019168429A JP7334552B2 JP 7334552 B2 JP7334552 B2 JP 7334552B2 JP 2019168429 A JP2019168429 A JP 2019168429A JP 2019168429 A JP2019168429 A JP 2019168429A JP 7334552 B2 JP7334552 B2 JP 7334552B2
Authority
JP
Japan
Prior art keywords
core
interrupt
cpu
cpu core
proxy
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019168429A
Other languages
Japanese (ja)
Other versions
JP2021047513A (en
Inventor
浩生 国部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Denso Corp
Original Assignee
Denso Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Denso Corp filed Critical Denso Corp
Priority to JP2019168429A priority Critical patent/JP7334552B2/en
Priority to DE102020211231.2A priority patent/DE102020211231A1/en
Publication of JP2021047513A publication Critical patent/JP2021047513A/en
Application granted granted Critical
Publication of JP7334552B2 publication Critical patent/JP7334552B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/165Error detection by comparing the output of redundant processing systems with continued operation after detection of the error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1637Error detection by comparing the output of redundant processing systems using additional compare functionality in one or some but not all of the redundant processing components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1641Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components

Description

本開示は、複数のCPUコアを備える電子制御装置に関する。 The present disclosure relates to an electronic control device with multiple CPU cores.

近年、例えばエンジン制御装置等の電子制御装置では、増加する処理負荷への対応策としてマルチコアマイコンの採用が進んでいる。
特許文献1には、マスタ側コアとスレーブ側コアとを備える電子制御装置において、マスタ側コアが、スレーブ側コアの異常を検出した場合に、スレーブ側コアにより実行されるべき処理を代行することが記載されている。
2. Description of the Related Art In recent years, electronic control devices such as engine control devices have increasingly adopted multi-core microcomputers as a countermeasure against increasing processing loads.
In Patent Document 1, in an electronic control device comprising a master-side core and a slave-side core, when the master-side core detects an abnormality in the slave-side core, processing to be executed by the slave-side core is performed on behalf of the master-side core. is described.

特開2009-274569号公報JP 2009-274569 A

しかし、特許文献1に記載の技術では、単にマスタ側コアがスレーブ側コアの処理を代行した場合には、マスタ側コアは、本来の処理に加えて他のコアの処理まで実行しなければならず、マスタ側コアの処理能力を超えてしまう恐れがある。 However, with the technique described in Patent Document 1, if the master core simply substitutes for the processing of the slave core, the master core must execute processing of other cores in addition to the original processing. Otherwise, the processing capacity of the master core may be exceeded.

この点について、特許文献1には、マスタ側コアが、スレーブ側コアにより実行されるべき処理を、低負荷となる方法で実行すると記載されている。しかしながら、電子制御システムの負荷状況はシステムの運用状況に応じて高負荷にも低負荷にもなる。したがって、マスタ側コアでスレーブ側コアの全処理を実行できない状況において、マスタ側コアがスレーブ側コアの全処理を代行したり、逆に、マスタ側コアでスレーブ側コアの全処理を実行できる状況において、マスタ側コアがスレーブ側コアの処理を敢えて低負荷で代行したりすることになり、制御性能が悪化してしまう恐れがある。 Regarding this point, Patent Literature 1 describes that the master-side core executes the processing to be executed by the slave-side core in a low-load manner. However, the load status of the electronic control system can be high or low depending on the operating status of the system. Therefore, in a situation where the master core cannot execute all the processing of the slave core, the master core can take over all the processing of the slave core, or conversely, the master core can execute all the processing of the slave core. In this case, the master-side core intentionally takes over the processing of the slave-side core with a low load, which may deteriorate the control performance.

本開示は、異常発生時における制御性能を向上させることを目的とする。 An object of the present disclosure is to improve control performance when an abnormality occurs.

本開示の一態様は、複数のCPUコア(11,12,13,14)と、プログラム指定記憶部(15)と、コア指定記憶部(40)と、割込制御部(19)と、異常判断部(18,33)と、代行記憶部(15)と、変更部(S210~S260,S310~S360,S510~S580,S610~S680)とを備える電子制御装置(1)である。 One aspect of the present disclosure is a plurality of CPU cores (11, 12, 13, 14), a program designation storage unit (15), a core designation storage unit (40), an interrupt control unit (19), an abnormal An electronic control device (1) comprising a determination section (18, 33), a substitute storage section (15), and a change section (S210 to S260, S310 to S360, S510 to S580, S610 to S680).

プログラム指定記憶部は、複数の割込要因毎に、複数のCPUコアのそれぞれが実行するプログラムを指定するプログラム指定情報(VT1,VT2)を記憶するように構成される。 The program designation storage unit is configured to store program designation information (VT1, VT2) designating a program to be executed by each of the plurality of CPU cores for each of the plurality of interrupt factors.

コア指定記憶部は、複数の割込要因毎に、割込要因に起因して割り込みを発生させるCPUコアを指定するコア指定情報を記憶するように構成される。
割込制御部は、割込要因が発生すると、コア指定記憶部に記憶されているコア指定情報に基づいて、発生した割込要因に対応するCPUコアに対して割り込みを発生させるように構成される。
The core designation storage unit is configured to store core designation information designating a CPU core that generates an interrupt due to an interrupt factor for each of a plurality of interrupt factors.
The interrupt control unit is configured to, when an interrupt factor occurs, generate an interrupt to the CPU core corresponding to the generated interrupt factor based on the core designation information stored in the core designation storage unit. be.

異常判断部は、複数のCPUコアのうち予め設定された少なくとも一つのCPUコアを異常判断対象コア(11)として、異常判断対象コアで異常が発生しているか否かを判断するように構成される。 The abnormality determination unit is configured to determine whether or not an abnormality has occurred in the abnormality determination target core (11), with at least one CPU core set in advance among the plurality of CPU cores as the abnormality determination target core (11). be.

代行記憶部は、異常判断対象コアで異常が発生した場合に異常判断対象コアの代わりにプログラムを実行するCPUコアである代行コアを割込要因毎に指定する複数の代行情報(ST1,ST2,ST11,ST12,ST13)を記憶するように構成される。 The proxy storage unit stores a plurality of pieces of proxy information (ST1, ST2, ST11, ST12, ST13).

変更部は、異常判断対象コアで異常が発生していると異常判断部が判断した場合に、代行記憶部に記憶されている代行情報に基づいて、コア指定情報を変更するように構成される。 The change unit is configured to change the core designation information based on the substitute information stored in the substitute storage unit when the abnormality determination unit determines that an abnormality has occurred in the abnormality determination target core. .

このように構成された本開示の電子制御装置では、割込制御部は、割込要因が発生すると、コア指定情報に基づいて、発生した割込要因に対応するCPUコアに対して割り込みを発生させる。これにより、本開示の電子制御装置では、割込要因に対応するCPUコアが、プログラム指定情報に基づいて、割込要因に対応するプログラムを実行する。 In the electronic control device of the present disclosure configured as described above, when an interrupt factor occurs, the interrupt control unit generates an interrupt to the CPU core corresponding to the generated interrupt factor based on the core designation information. Let Thereby, in the electronic control device of the present disclosure, the CPU core corresponding to the interrupt factor executes the program corresponding to the interrupt factor based on the program designation information.

そして、本開示の電子制御装置では、変更部は、異常判断対象コアで異常が発生した場合に、代行情報に基づいて、コア指定情報を変更する。これにより、本開示の電子制御装置は、異常判断対象コアで異常が発生した場合には、割込要因が発生したときに異常判断対象コアが実行していたプログラムを代行コアに実行させることができる。従って、本開示の電子制御装置は、異常判断対象コアで異常が発生した場合に、代行コアで、プログラムの実行を代行させることができる。 Then, in the electronic control device of the present disclosure, the change unit changes the core designation information based on the proxy information when an abnormality occurs in the abnormality determination target core. As a result, when an abnormality occurs in the abnormality determination target core, the electronic control device of the present disclosure can cause the substitute core to execute the program that the abnormality determination target core was executing when the interrupt factor occurred. can. Therefore, in the electronic control device of the present disclosure, when an abnormality occurs in the abnormality determination target core, the alternate core can execute the program on behalf of the core.

そして、本開示の電子制御装置は、異常判断対象コアで異常が発生した場合に代行コアを割込要因毎に指定する複数の代行情報を記憶している。このため、本開示の電子制御装置は、電子制御装置の運用状況に応じた複数の代行情報を予め設定することにより、電子制御装置の運用状況に応じて、代行コアによる代行を適切に実行させることができる。これにより、本開示の電子制御装置は、異常発生時における制御性能を向上させることができる。 Then, the electronic control device of the present disclosure stores a plurality of substitute information that designates a substitute core for each interrupt factor when an abnormality occurs in the abnormality determination target core. For this reason, the electronic control device of the present disclosure presets a plurality of pieces of proxy information according to the operational status of the electronic control device, thereby allowing the proxy core to appropriately execute the proxy according to the operational status of the electronic control device. be able to. As a result, the electronic control device of the present disclosure can improve control performance when an abnormality occurs.

ECUの構成を示すブロック図である。3 is a block diagram showing the configuration of an ECU; FIG. 第1CPUコアおよび割込コントローラの構成を示す図である。3 is a diagram showing the configuration of a first CPU core and an interrupt controller; FIG. 第1実施形態のベクターテーブルの構成を示す図である。It is a figure which shows the structure of the vector table of 1st Embodiment. 低負荷選択テーブルおよび高負荷選択テーブルの構成を示す図である。FIG. 10 is a diagram showing configurations of a low load selection table and a high load selection table; アイドルタスクを示すフローチャートである。4 is a flow chart showing an idle task; 10msタスクを示すフローチャートである。4 is a flow chart showing a 10 ms task; 第1実施形態のエラー処理を示すフローチャートである。4 is a flowchart showing error processing according to the first embodiment; 第1実施形態のテーブル切替処理を示すフローチャートである。4 is a flowchart showing table switching processing according to the first embodiment; 第2実施形態のベクターテーブルの構成を示す図である。It is a figure which shows the structure of the vector table of 2nd Embodiment. 低負荷選択テーブルおよび第1,2高負荷選択テーブルの構成を示す図である。FIG. 10 is a diagram showing configurations of a low load selection table and first and second high load selection tables; 第2実施形態のエラー処理を示すフローチャートである。9 is a flowchart showing error processing according to the second embodiment; 第2実施形態のテーブル切替処理を示すフローチャートである。10 is a flowchart showing table switching processing according to the second embodiment;

[第1実施形態]
以下に本開示の第1実施形態を図面とともに説明する。
本実施形態の電子制御装置1(以下、ECU1)は、車両に搭載され、図1に示すように、マイクロコンピュータ2(以下、マイコン2)と、入力回路3と、出力回路4とを備える。ECUは、Electronic Control Unitの略である。
[First embodiment]
A first embodiment of the present disclosure will be described below with reference to the drawings.
An electronic control unit 1 (hereinafter referred to as ECU 1) of the present embodiment is mounted on a vehicle and includes a microcomputer 2 (hereinafter referred to as microcomputer 2), an input circuit 3, and an output circuit 4, as shown in FIG. ECU is an abbreviation for Electronic Control Unit.

マイコン2には、クランク角センサ51からのクランク角信号と、カム角センサ52からのカム角信号と、スロットル開度センサ53からのスロットル開度信号とが、入力回路3を介して入力される。 A crank angle signal from a crank angle sensor 51, a cam angle signal from a cam angle sensor 52, and a throttle opening signal from a throttle opening sensor 53 are input to the microcomputer 2 through an input circuit 3. .

クランク角センサ51は、エンジンのクランク軸の回転に応じてクランク角信号を出力する。カム角センサ52は、エンジンのカム軸の回転に応じてカム角信号を出力する。スロットル開度センサ53は、エンジンに供給される空気量を調整するスロットルバルブの開度(以下、スロットル開度)を検出し、検出結果を示すスロットル開度信号を出力する。 A crank angle sensor 51 outputs a crank angle signal according to the rotation of the crankshaft of the engine. A cam angle sensor 52 outputs a cam angle signal according to the rotation of the camshaft of the engine. A throttle opening sensor 53 detects the opening of a throttle valve that adjusts the amount of air supplied to the engine (hereinafter referred to as throttle opening), and outputs a throttle opening signal indicating the detection result.

マイコン2は、入力回路3を介して入力される上記各信号に基づいてエンジンの状態を検出する。そしてマイコン2は、エンジンの状態に基づいて、エンジンの各気筒内の点火プラグ61、各気筒内のインジェクタ62、および、スロットル開度を変えるスロットルモータ63などの各種アクチュエータを制御するための制御信号を出力回路4を介して出力する。 The microcomputer 2 detects the state of the engine based on each of the above signals input through the input circuit 3 . Based on the state of the engine, the microcomputer 2 outputs control signals for controlling various actuators such as spark plugs 61 in each cylinder of the engine, injectors 62 in each cylinder, and a throttle motor 63 that changes the throttle opening. is output through the output circuit 4.

スロットルバルブは、回転軸を中心に回転可能に構成されており、スロットルモータ63からの回転トルクが減速ギヤを介して回転軸に伝達されることで、吸気管内で開閉動作し、スロットル開度を変化させる。 The throttle valve is configured to be rotatable about a rotating shaft. Rotational torque from the throttle motor 63 is transmitted to the rotating shaft via a reduction gear, opening and closing in the intake pipe, thereby adjusting the throttle opening. change.

また回転軸には、リターンスプリングが取り付けられている。このリターンスプリングは、リンプホーム走行が可能なエンジン出力が得られるように予め設定されたスロットル開度(以下、オープナ開度という)となるように回転軸を付勢する。すなわち、スロットルモータ63への通電が停止して、回転トルクが回転軸に伝達されなくなった場合であっても、スロットルバルブはオープナ開度に保持され、これにより、リンプホーム走行に必要な吸気量が確保される。 A return spring is attached to the rotating shaft. This return spring biases the rotary shaft to a preset throttle opening (hereinafter referred to as an opener opening) so as to obtain an engine output that enables limp home travel. That is, even if power supply to the throttle motor 63 is stopped and rotational torque is no longer transmitted to the rotating shaft, the throttle valve is maintained at the opener opening, thereby providing an intake air amount necessary for limp home running. is ensured.

マイコン2は、第1CPUコア11と、第2CPUコア12と、第3CPUコア13と、第4CPUコア14と、ROM15と、RAM16と、入出力部17と、エラー管理装置18と、割込コントローラ19と、バス20とを備える。以下、第1CPUコア11、第2CPUコア12、第3CPUコア13および第4CPUコア14をまとめてCPUコア11~14ともいう。 The microcomputer 2 includes a first CPU core 11, a second CPU core 12, a third CPU core 13, a fourth CPU core 14, a ROM 15, a RAM 16, an input/output unit 17, an error management device 18, and an interrupt controller 19. , and a bus 20 . Hereinafter, the first CPU core 11, the second CPU core 12, the third CPU core 13 and the fourth CPU core 14 are collectively referred to as the CPU cores 11-14.

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

第1CPUコア11、第2CPUコア12、第3CPUコア13および第4CPUコア14は、車両に搭載されているエンジンを制御するための各種制御処理を分散して実行する。 The first CPU core 11, the second CPU core 12, the third CPU core 13, and the fourth CPU core 14 distribute and execute various control processes for controlling the engine mounted on the vehicle.

ROM15は、不揮発性メモリであり、エンジンを制御する各種制御処理を実行するためのプログラムを記憶する。
RAM16は、揮発性メモリであり、CPUコア11~14の演算結果等を一時的に記憶する。
The ROM 15 is a non-volatile memory and stores programs for executing various control processes for controlling the engine.
The RAM 16 is a volatile memory, and temporarily stores calculation results and the like of the CPU cores 11-14.

入出力部17は、マイコン2の外部とCPUコア11~14との間でデータの入出力を行わせるための回路である。
エラー管理装置18は、第1CPUコア11の異常を検出する装置である。
The input/output unit 17 is a circuit for inputting/outputting data between the outside of the microcomputer 2 and the CPU cores 11-14.
The error management device 18 is a device that detects an abnormality in the first CPU core 11 .

割込コントローラ19は、様々な割込要因の発生を示す割込要求信号を入力し、入力した割込要求信号に対応する割込要因毎に予め設定された優先度に基づいて、優先度が最も高い割込要因に対応した割込信号をCPUコア11~14へ出力する。 The interrupt controller 19 receives interrupt request signals indicating the occurrence of various interrupt factors, and determines the priority based on the priority set in advance for each interrupt factor corresponding to the input interrupt request signal. An interrupt signal corresponding to the highest interrupt factor is output to the CPU cores 11-14.

バス20は、CPUコア11~14、ROM15、RAM16、入出力部17、エラー管理装置18および割込コントローラ19を、互いにデータ入出力可能に接続する。
図2に示すように、第1CPUコア11は、マスターコア31と、チェッカーコア32と、ロックステップコンパレータ33とを備える。
The bus 20 connects the CPU cores 11 to 14, the ROM 15, the RAM 16, the input/output unit 17, the error management device 18 and the interrupt controller 19 so that data can be input/output to each other.
As shown in FIG. 2 , the first CPU core 11 includes a master core 31 , a checker core 32 and a lockstep comparator 33 .

マスターコア31およびチェッカーコア32は、プログラムを実行するための演算ユニットおよびレジスタなどを備える。そして、マスターコア31およびチェッカーコア32は、同一の演算を並行して実行し、演算結果をロックステップコンパレータ33へ出力する。 The master core 31 and the checker core 32 have arithmetic units, registers, and the like for executing programs. Then, the master core 31 and the checker core 32 execute the same computation in parallel and output the computation result to the lockstep comparator 33 .

ロックステップコンパレータ33は、マスターコア31からの演算結果と、チェッカーコア32からの演算結果とを比較し、演算結果が一致しているか否かを示す比較結果情報をエラー管理装置18へ出力する。 The lockstep comparator 33 compares the calculation result from the master core 31 and the calculation result from the checker core 32 and outputs comparison result information indicating whether the calculation results match or not to the error management device 18 .

エラー管理装置18は、ロックステップコンパレータ33から比較結果情報を取得すると、比較結果情報に基づいて、演算結果が一致しているか否かを判断する。そしてエラー管理装置18は、演算結果が一致していない場合に、第1CPUコア11で異常が発生していると判断し、ロックステップエラー情報を割込コントローラ19へ出力する。 When the error management device 18 acquires the comparison result information from the lockstep comparator 33, the error management device 18 determines whether or not the calculation results match based on the comparison result information. If the calculation results do not match, the error management device 18 determines that an error has occurred in the first CPU core 11 and outputs lockstep error information to the interrupt controller 19 .

割込コントローラ19は、要求制御レジスタ40を備える。要求制御レジスタ40は、n個の割込要因フィールド40_1,40_2,40_3,40_4,40_5,・・・・,40_nを備える。nは、正の整数である。 The interrupt controller 19 has a request control register 40 . The request control register 40 comprises n interrupt cause fields 40_1, 40_2, 40_3, 40_4, 40_5, . . . , 40_n. n is a positive integer.

複数の割込要因フィールド40_iのそれぞれには、互いに異なる割込要因が設定されている。本実施形態では、割込要因フィールド40_1は、第1CPUコア11のロックステップエラーに対応している。割込要因フィールド40_2は、クランク角信号の入力に対応している。割込要因フィールド40_3は、カム角信号の入力に対応している。割込要因フィールド40_4は、タイマ割込に対応している。割込要因フィールド40_5は、外部要求割込に対応している。 A different interrupt factor is set in each of the plurality of interrupt factor fields 40_i. In this embodiment, the interrupt factor field 40_1 corresponds to the lockstep error of the first CPU core 11 . The interrupt factor field 40_2 corresponds to the input of the crank angle signal. The interrupt factor field 40_3 corresponds to the input of the cam angle signal. The interrupt cause field 40_4 corresponds to timer interrupt. The interrupt cause field 40_5 corresponds to an external request interrupt.

割込要因フィールド40_iは、3ビットで構成されており、各ビットに1または0が格納される。iは1からnまでの整数である。割込要因フィールド40_iに格納される値によって、割込要因の発生に応じた処理を実行するCPUコアが指定される。本実施形態では、割込要因フィールド40_iに格納される値が0x000である場合には、第1CPUコア11が指定される。同様に、割込要因フィールド40_iに格納される値が0x001,0x010,0x011である場合には、それぞれ第2CPUコア12、第3CPUコア13、第4CPUコア14が指定される。 The interrupt factor field 40_i is composed of 3 bits, and 1 or 0 is stored in each bit. i is an integer from 1 to n. The value stored in the interrupt cause field 40_i designates a CPU core that executes processing in response to the occurrence of the interrupt cause. In this embodiment, when the value stored in the interrupt factor field 40_i is 0x000, the first CPU core 11 is designated. Similarly, when the values stored in the interrupt cause field 40_i are 0x001, 0x010, and 0x011, the second CPU core 12, third CPU core 13, and fourth CPU core 14 are designated, respectively.

図2は、ロックステップエラーが発生していない通常時において割込要因フィールド40_iに格納される値を示す。
図2では、割込要因フィールド40_1に0x001が格納されている。このため、第1CPUコア11のロックステップエラーが発生した場合には、ロックステップエラーに対応する処理を第2CPUコア12が実行する。
FIG. 2 shows the values stored in the interrupt cause field 40_i during normal times when no lockstep error occurs.
In FIG. 2, 0x001 is stored in the interrupt cause field 40_1. Therefore, when a lockstep error occurs in the first CPU core 11, the second CPU core 12 executes processing corresponding to the lockstep error.

また、割込要因フィールド40_2に0x000が格納されている。このため、通常時においてクランク角信号が入力した場合には、クランク角信号の入力に対応する処理を第1CPUコア11が実行する。また、割込要因フィールド40_3に0x000が格納されている。このため、通常時においてカム角信号が入力した場合には、カム角信号の入力に対応する処理を第1CPUコア11が実行する。具体的には、第1CPUコア11は、クランク割込およびカム割込によってクランク位置を特定し、所定のクランク位置でインジェクタ62を駆動して燃料を噴射したり、所定のクランク位置で点火プラグ61に通電して点火したりする。 Also, 0x000 is stored in the interrupt factor field 40_2. Therefore, when a crank angle signal is input during normal operation, the first CPU core 11 executes processing corresponding to the input of the crank angle signal. Also, 0x000 is stored in the interrupt factor field 40_3. Therefore, when a cam angle signal is input in normal times, the first CPU core 11 executes processing corresponding to the input of the cam angle signal. Specifically, the first CPU core 11 identifies the crank position by crank interrupt and cam interrupt, drives the injector 62 at a predetermined crank position to inject fuel, and controls the ignition plug 61 at a predetermined crank position. is energized and ignited.

また、割込要因フィールド40_4に0x001が格納されている。このため、通常時においてタイマ割込が発生した場合には、タイマ割込に対応する処理を第2CPUコア12が実行する。具体的には、第2CPUコア12は、例えば2ms毎に発生するタイマ割込によって、スロットルバルブが所望の開度となるように、スロットルモータ63への通電を制御する。 Also, 0x001 is stored in the interrupt cause field 40_4. Therefore, when a timer interrupt occurs during normal operation, the second CPU core 12 executes processing corresponding to the timer interrupt. Specifically, the second CPU core 12 controls the energization of the throttle motor 63 so that the throttle valve opens at a desired opening, for example, by a timer interrupt that occurs every 2 ms.

また、割込要因フィールド40_5に0x000が格納されている。このため、通常時において外部要求割込が発生した場合には、外部要求割込に対応する処理を第1CPUコア11が実行する。 Also, 0x000 is stored in the interrupt cause field 40_5. Therefore, when an external request interrupt occurs during normal operation, the first CPU core 11 executes processing corresponding to the external request interrupt.

ROM15には、図3に示すように、ベクターテーブルVT1が記憶されている。ベクターテーブルVT1は、複数の割込要因毎に、CPUコア11~14が実行する制御プログラムを指定する。 The ROM 15 stores a vector table VT1 as shown in FIG. The vector table VT1 specifies control programs to be executed by the CPU cores 11 to 14 for each of multiple interrupt factors.

本実施形態では、割込要因がクランク角信号の入力である場合には、第1CPUコア11および第2CPUコア12に対して、点火・噴射制御プログラムが指定されている。また、割込要因がカム角信号の入力である場合には、第1CPUコア11および第2CPUコア12に対して、点火・噴射制御プログラムが指定されている。また、割込要因がタイマ割込である場合には、第2CPUコア12に対して、電子スロットル制御プログラムが指定されている。 In this embodiment, when the interrupt factor is the input of the crank angle signal, the ignition/injection control program is specified for the first CPU core 11 and the second CPU core 12 . Further, when the interrupt factor is the input of the cam angle signal, the ignition/injection control program is specified for the first CPU core 11 and the second CPU core 12 . Further, when the interrupt factor is a timer interrupt, an electronic throttle control program is specified for the second CPU core 12 .

なお、ロックステップエラーが発生していない通常時には、破線の長方形RC1,RC2,RC3で囲まれているプログラムが実行される。すなわち、通常時には、第1CPUコア11が点火・噴射制御プログラムを実行し、第2CPUコア12が電子スロットル制御プログラムを実行する。 It should be noted that the programs enclosed by the dashed rectangles RC1, RC2, and RC3 are executed normally when no lockstep error occurs. That is, normally, the first CPU core 11 executes the ignition/injection control program, and the second CPU core 12 executes the electronic throttle control program.

ROM15には、図4に示すように、低負荷選択テーブルST1および高負荷選択テーブルST2が記憶されている。
低負荷選択テーブルST1および高負荷選択テーブルST2は、複数の割込要因毎に、プログラムを実行するCPUコアを指定する。
As shown in FIG. 4, the ROM 15 stores a low load selection table ST1 and a high load selection table ST2.
The low load selection table ST1 and the high load selection table ST2 designate CPU cores that execute programs for each of a plurality of interrupt factors.

本実施形態の低負荷選択テーブルST1では、割込要因がクランク角信号の入力である場合には、第2CPUコア12が選択される。また、割込要因がカム角信号の入力である場合には、第2CPUコア12が選択される。また、割込要因がタイマ割込である場合には、第2CPUコア12が選択される。 In the low load selection table ST1 of this embodiment, the second CPU core 12 is selected when the interrupt factor is the input of the crank angle signal. Further, when the interrupt factor is the input of the cam angle signal, the second CPU core 12 is selected. Also, when the interrupt factor is a timer interrupt, the second CPU core 12 is selected.

本実施形態の高負荷選択テーブルST2では、割込要因がクランク角信号の入力である場合には、第2CPUコア12が選択される。また、割込要因がカム角信号の入力である場合には、第2CPUコア12が選択される。また、割込要因がタイマ割込である場合には、選択されるCPUコアが存在しない。 In the high load selection table ST2 of this embodiment, the second CPU core 12 is selected when the interrupt factor is the input of the crank angle signal. Further, when the interrupt factor is the input of the cam angle signal, the second CPU core 12 is selected. Also, if the interrupt factor is a timer interrupt, there is no CPU core to be selected.

次に、CPUコア12~14が実行するアイドルタスクの手順を説明する。アイドルタスクは、CPUコア12~14が割込処理を実行していないときに実行される処理である。すなわち、CPUコア12~14の処理負荷が100%であるときには、アイドルタスクは実行されない。なお、以下では、第2CPUコア12で代表して、アイドルタスクの手順を説明する。 Next, the idle task procedure executed by the CPU cores 12 to 14 will be described. An idle task is processing that is executed when the CPU cores 12 to 14 are not executing interrupt processing. That is, when the processing load of the CPU cores 12-14 is 100%, the idle tasks are not executed. In the following, the procedure of the idle task will be described using the second CPU core 12 as a representative example.

アイドルタスクが実行されると、第2CPUコア12は、図5に示すように、まずS10にて、RAM16に設けられたアイドルカウンタCounterに格納されている値に1を加算した加算値を、アイドルカウンタCounterに格納する。 When the idle task is executed, the second CPU core 12, as shown in FIG. Store in counter Counter.

そして第2CPUコア12は、S20にて、アイドルカウンタCounterに格納されている値が、予め設定されたリセット判定値J1を超えているか否かを判断する。リセット判定値J1は、アイドル状態が1ms継続したときにアイドルカウンタCounterが到達する値に設定される。 Then, in S20, the second CPU core 12 determines whether or not the value stored in the idle counter Counter exceeds the preset reset determination value J1. The reset determination value J1 is set to a value that the idle counter Counter reaches when the idle state continues for 1 ms.

ここで、アイドルカウンタCounterに格納されている値がリセット判定値J1以下である場合には、第2CPUコア12は、S10に移行する。一方、アイドルカウンタCounterに格納されている値がリセット判定値J1を超えている場合には、第2CPUコア12は、S30にて、アイドルカウンタCounterに0を格納する。 Here, if the value stored in the idle counter Counter is equal to or less than the reset determination value J1, the second CPU core 12 proceeds to S10. On the other hand, if the value stored in the idle counter Counter exceeds the reset determination value J1, the second CPU core 12 stores 0 in the idle counter Counter in S30.

さらに第2CPUコア12は、S40にて、RAM16に設けられた1ミリ秒カウンタ1ms_Counterに格納されている値に1を加算した加算値を、1ミリ秒カウンタ1ms_Counterに格納し、アイドルタスクを終了する。 Further, in S40, the second CPU core 12 adds 1 to the value stored in the 1 millisecond counter 1ms_Counter provided in the RAM 16, stores the added value in the 1 millisecond counter 1ms_Counter, and terminates the idle task. .

次に、CPUコア12~14が実行する10msタスクの手順を説明する。10msタスクは、10msが経過する毎に実行される処理である。なお、以下では、第2CPUコア12で代表して、10msタスクの手順を説明する。 Next, the procedure of the 10 ms task executed by the CPU cores 12-14 will be explained. A 10 ms task is a process that is executed every 10 ms. In the following, the procedure of the 10 ms task will be described using the second CPU core 12 as a representative.

10msタスクが実行されると、第2CPUコア12は、図6に示すように、まずS110にて、1ミリ秒カウンタ1ms_Counterに格納されている値を取得する。そして第2CPUコア12は、S120にて、下式(1)の右辺で算出される値を、RAM16に設けられた処理負荷CPU_Loadに格納する。 When the 10ms task is executed, the second CPU core 12 first acquires the value stored in the 1ms counter 1ms_Counter in S110, as shown in FIG. Then, the second CPU core 12 stores the value calculated by the right side of the following equation (1) in the processing load CPU_Load provided in the RAM 16 in S120.

CPU_Load=(1-1ms_Counter/10)×100 ・・・(1)
さらに第2CPUコア12は、S130にて、1ミリ秒カウンタ1ms_Counterに0を格納して、10msタスクを終了する。
CPU_Load=(1−1ms_Counter/10)×100 (1)
Furthermore, in S130, the second CPU core 12 stores 0 in the 1 millisecond counter 1ms_Counter and terminates the 10 ms task.

次に、第2CPUコア12が実行するエラー処理の手順を説明する。エラー処理は、ロックステップエラーに対応した割込信号が割込コントローラ19から第2CPUコア12に入力された場合に開始される処理である。 Next, the procedure of error processing executed by the second CPU core 12 will be described. Error processing is processing that is started when an interrupt signal corresponding to a lockstep error is input from the interrupt controller 19 to the second CPU core 12 .

エラー処理が実行されると、第2CPUコア12は、図7に示すように、まずS210にて、第2CPUコア12の処理負荷CPU_Loadに格納されている値を確認する。
そして第2CPUコア12は、S220にて、第2CPUコア12の処理負荷CPU_Loadに格納されている値が、予め設定された高負荷判定値J2未満であるか否かを判断する。
When error processing is executed, the second CPU core 12 first checks the value stored in the processing load CPU_Load of the second CPU core 12 in S210, as shown in FIG.
Then, in S220, the second CPU core 12 determines whether or not the value stored in the processing load CPU_Load of the second CPU core 12 is less than the preset high load determination value J2.

ここで、第2CPUコア12の処理負荷CPU_Loadに格納されている値が高負荷判定値J2未満である場合には、第2CPUコア12は、S230にて、低負荷選択テーブルST1を参照して、S250に移行する。一方、第2CPUコア12の処理負荷CPU_Loadに格納されている値が高負荷判定値J2以上である場合には、第2CPUコア12は、S240にて、高負荷選択テーブルST2を参照して、S250に移行する。 Here, if the value stored in the processing load CPU_Load of the second CPU core 12 is less than the high load determination value J2, the second CPU core 12 refers to the low load selection table ST1 in S230, Move to S250. On the other hand, if the value stored in the processing load CPU_Load of the second CPU core 12 is greater than or equal to the high load determination value J2, the second CPU core 12 refers to the high load selection table ST2 in S240, transition to

そして、S250に移行すると、第2CPUコア12は、S250にて、割込コントローラ19の要求制御レジスタ40を変更する。
具体的には、低負荷選択テーブルST1を参照した場合には、第2CPUコア12は、少なくとも、割込要因フィールド40_2,40_3,40_4の値を0x001に設定する。これにより、点火・噴射制御プログラムと電子スロットル制御プログラムとが第2CPUコア12により実行されるようになる。一方、高負荷選択テーブルST2を参照した場合には、第2CPUコア12は、少なくとも、割込要因フィールド40_2,40_3の値を0x001に設定し、割込要因フィールド40_4の値を0x100に設定する。これにより、点火・噴射制御プログラムが第2CPUコア12により実行され、電子スロットル制御プログラムがCPUコア11~14の何れによっても実行されないようになる。
After shifting to S250, the second CPU core 12 changes the request control register 40 of the interrupt controller 19 in S250.
Specifically, when referring to the low load selection table ST1, the second CPU core 12 sets at least the values of the interrupt factor fields 40_2, 40_3, and 40_4 to 0x001. As a result, the ignition/injection control program and the electronic throttle control program are executed by the second CPU core 12 . On the other hand, when referring to the high load selection table ST2, the second CPU core 12 sets at least the values of the interrupt factor fields 40_2 and 40_3 to 0x001, and sets the value of the interrupt factor field 40_4 to 0x100. As a result, the ignition/injection control program is executed by the second CPU core 12, and the electronic throttle control program is not executed by any of the CPU cores 11-14.

そして第2CPUコア12は、S260にて、RAM16に設けられたコア異常フラグF1をセットして、エラー処理を終了する。以下の説明において、フラグをセットするとは、そのフラグの値を1にすることを示し、フラグをクリアするとは、そのフラグの値を0にすることを示す。 Then, in S260, the second CPU core 12 sets the core abnormality flag F1 provided in the RAM 16, and terminates the error processing. In the following description, setting a flag means setting the value of the flag to 1, and clearing the flag means setting the value of the flag to 0.

次に、第2CPUコア12が実行するテーブル切替処理の手順を説明する。テーブル切替処理は、第2CPUコア12の動作中において10msが経過する毎に実行される処理である。 Next, a procedure of table switching processing executed by the second CPU core 12 will be described. The table switching process is a process executed every 10 ms while the second CPU core 12 is operating.

テーブル切替処理が実行されると、第2CPUコア12は、図8に示すように、まずS310にて、コア異常フラグF1がセットされているか否かを判断する。ここで、コア異常フラグF1がクリアされている場合には、第2CPUコア12は、テーブル切替処理を終了する。 When the table switching process is executed, the second CPU core 12 first determines in S310 whether or not the core abnormality flag F1 is set, as shown in FIG. Here, when the core abnormality flag F1 is cleared, the second CPU core 12 ends the table switching process.

一方、コア異常フラグF1がセットされている場合には、第2CPUコア12は、S320にて、S210と同様にして、第2CPUコア12の処理負荷CPU_Loadに格納されている値を確認する。 On the other hand, if the core abnormality flag F1 is set, the second CPU core 12 checks the value stored in the processing load CPU_Load of the second CPU core 12 in S320 in the same manner as in S210.

そして第2CPUコア12は、S330にて、S220と同様にして、第2CPUコア12の処理負荷CPU_Loadに格納されている値が高負荷判定値J2未満であるか否かを判断する。 Then, in S330, the second CPU core 12 determines whether or not the value stored in the processing load CPU_Load of the second CPU core 12 is less than the high load determination value J2 in the same manner as in S220.

ここで、第2CPUコア12の処理負荷CPU_Loadに格納されている値が高負荷判定値J2未満である場合には、第2CPUコア12は、S340にて、S230と同様にして、低負荷選択テーブルST1を参照して、S360に移行する。一方、第2CPUコア12の処理負荷CPU_Loadに格納されている値が高負荷判定値J2以上である場合には、第2CPUコア12は、S350にて、S240と同様にして、高負荷選択テーブルST2を参照して、S360に移行する。 Here, if the value stored in the processing load CPU_Load of the second CPU core 12 is less than the high load determination value J2, the second CPU core 12, in S340, similarly to S230, selects the low load selection table Referring to ST1, the process proceeds to S360. On the other hand, if the value stored in the processing load CPU_Load of the second CPU core 12 is equal to or greater than the high load judgment value J2, the second CPU core 12, in S350, similarly to S240, selects the high load selection table ST2. , and the process proceeds to S360.

そして、S360に移行すると、第2CPUコア12は、S250と同様にして、割込コントローラ19の要求制御レジスタ40を変更して、テーブル切替処理を終了する。
このように構成されたECU1は、CPUコア11~14と、ROM15と、要求制御レジスタ40と、割込コントローラ19と、エラー管理装置18およびロックステップコンパレータ33とを備える。
After proceeding to S360, the second CPU core 12 changes the request control register 40 of the interrupt controller 19 in the same manner as in S250, and ends the table switching process.
The ECU 1 configured as described above includes CPU cores 11 to 14 , a ROM 15 , a request control register 40 , an interrupt controller 19 , an error management device 18 and a lockstep comparator 33 .

ROM15は、複数の割込要因毎に、CPUコア11~14のそれぞれが実行するプログラムを指定するベクターテーブルVT1を記憶する。
要求制御レジスタ40は、複数の割込要因毎に、割込要因に起因して割り込みを発生させるCPUコア11~14を指定するコア指定情報(すなわち、0x000,0x001,0x010,0x011,0x100)を割込要因フィールド40_1,40_2,40_3,40_4,40_5,・・・・,40_nに記憶する。
The ROM 15 stores a vector table VT1 specifying programs to be executed by each of the CPU cores 11 to 14 for each of a plurality of interrupt factors.
The request control register 40 stores core designation information (ie, 0x000, 0x001, 0x010, 0x011, 0x100) that designates the CPU cores 11 to 14 that generate an interrupt due to the interrupt factor for each of a plurality of interrupt factors. Stored in interrupt factor fields 40_1, 40_2, 40_3, 40_4, 40_5, . . . , 40_n.

割込コントローラ19は、割込要因が発生すると、要求制御レジスタ40に記憶されているコア指定情報に基づいて、発生した割込要因に対応するCPUコア11~14に対して割り込みを発生させる。 When an interrupt factor occurs, the interrupt controller 19 generates an interrupt to the CPU cores 11 to 14 corresponding to the interrupt factor, based on the core designation information stored in the request control register 40 .

エラー管理装置18およびロックステップコンパレータ33は、CPUコア11~14のうち第1CPUコア11を異常判断対象コアとして、異常判断対象コアで異常が発生しているか否かを判断する。 The error management device 18 and the lockstep comparator 33 determine whether or not an abnormality has occurred in the abnormality determination target core, with the first CPU core 11 among the CPU cores 11 to 14 as the abnormality determination target core.

ROM15は、異常判断対象コアで異常が発生した場合に異常判断対象コアの代わりにプログラムを実行するコア(以下、代行コア)を割込要因毎に指定する低負荷選択テーブルST1および高負荷選択テーブルST2を記憶する。 The ROM 15 stores a low load selection table ST1 and a high load selection table for specifying, for each interrupt factor, a core (substitute core) that executes a program in place of an abnormality determination target core when an abnormality occurs in the abnormality determination target core. Store ST2.

第2CPUコア12は、異常判断対象コアで異常が発生しているとエラー管理装置18が判断した場合に、ROM15に記憶されている低負荷選択テーブルST1および高負荷選択テーブルST2に基づいて、要求制御レジスタ40に記憶されているコア指定情報を変更する。 When the error management device 18 determines that an abnormality has occurred in the abnormality determination target core, the second CPU core 12 performs the request based on the low load selection table ST1 and the high load selection table ST2 stored in the ROM 15. The core designation information stored in the control register 40 is changed.

このようにECU1では、割込コントローラ19は、割込要因が発生すると、コア指定情報に基づいて、発生した割込要因に対応するCPUコア11~14に対して割り込みを発生させる。これにより、ECU1では、割込要因に対応するCPUコア11~14が、ベクターテーブルVT1に基づいて、割込要因に対応するプログラムを実行する。 Thus, in the ECU 1, when an interrupt factor occurs, the interrupt controller 19 generates an interrupt to the CPU cores 11 to 14 corresponding to the interrupt factor, based on the core designation information. As a result, in the ECU 1, the CPU cores 11 to 14 corresponding to the interrupt factor execute a program corresponding to the interrupt factor based on the vector table VT1.

そしてECU1では、第2CPUコア12は、異常判断対象コアで異常が発生した場合に、低負荷選択テーブルST1および高負荷選択テーブルST2に基づいて、コア指定情報を変更する。これにより、ECU1は、異常判断対象コアで異常が発生した場合には、割込要因が発生したときに異常判断対象コアが実行していたプログラムを代行コアに実行させることができる。従って、ECU1は、異常判断対象コアで異常が発生した場合に、代行コアで、プログラムの実行を代行させることができる。 In the ECU 1, the second CPU core 12 changes the core designation information based on the low load selection table ST1 and the high load selection table ST2 when an abnormality occurs in the abnormality determination target core. Accordingly, when an abnormality occurs in the abnormality determination target core, the ECU 1 can cause the substitute core to execute the program that the abnormality determination target core was executing when the interrupt factor occurred. Therefore, when an abnormality occurs in the abnormality determination target core, the ECU 1 can cause the substitute core to execute the program on behalf of the abnormality determination target core.

そしてECU1は、異常判断対象コアで異常が発生した場合に代行コアを割込要因毎に指定する低負荷選択テーブルST1および高負荷選択テーブルST2を記憶している。このため、ECU1は、ECU1の運用状況に応じた低負荷選択テーブルST1および高負荷選択テーブルST2を予め設定することにより、ECU1の運用状況に応じて、代行コアによる代行を適切に実行させることができる。これにより、ECU1は、異常発生時における制御性能を向上させることができる。 The ECU 1 stores a low load selection table ST1 and a high load selection table ST2 for designating a substitute core for each interrupt factor when an abnormality occurs in the abnormality determination target core. Therefore, the ECU 1 presets the low load selection table ST1 and the high load selection table ST2 according to the operational status of the ECU 1, so that the substitute core can appropriately execute the substitution according to the operational status of the ECU 1. can. As a result, the ECU 1 can improve control performance when an abnormality occurs.

またCPUコア12~14はそれぞれ、CPUコア12~14の処理負荷を計測する。そしてROM15は、第2CPUコア12の処理負荷が低い場合に対応する低負荷選択テーブルST1と、第2CPUコア12の処理負荷が高い場合に対応する高負荷選択テーブルST2とを記憶する。第2CPUコア12は、計測された第2CPUコア12の処理負荷に対応した低負荷選択テーブルST1または高負荷選択テーブルST2を選択し、選択した低負荷選択テーブルST1または高負荷選択テーブルST2に基づいて、コア指定情報を変更する。これにより、ECU1は、第2CPUコア12の処理負荷に応じて代行コアを変更することができ、異常発生時における制御性能を向上させることができる。 Also, the CPU cores 12 to 14 measure the processing loads of the CPU cores 12 to 14, respectively. The ROM 15 stores a low load selection table ST1 corresponding to a case where the processing load of the second CPU core 12 is low and a high load selection table ST2 corresponding to a case where the processing load of the second CPU core 12 is high. The second CPU core 12 selects the low load selection table ST1 or the high load selection table ST2 corresponding to the measured processing load of the second CPU core 12, and based on the selected low load selection table ST1 or high load selection table ST2, , to change the core specification information. Thereby, the ECU 1 can change the substitute core according to the processing load of the second CPU core 12, and can improve the control performance when an abnormality occurs.

またECU1は、車両に搭載されている。そして、ベクターテーブルVT1およびコア指定情報は、異常判断対象コアで異常が発生していないとエラー管理装置18が判断している場合において異常判断対象コアが点火プラグ61およびインジェクタ62を制御するように設定されている。これにより、ECU1は、異常判断対象コアで異常が発生した場合であっても、代行コアで点火プラグ61およびインジェクタ62の制御を継続することができる。 Moreover, ECU1 is mounted in the vehicle. The vector table VT1 and the core designation information are set so that the abnormality determination core controls the spark plug 61 and the injector 62 when the error management device 18 determines that no abnormality has occurred in the abnormality determination core. is set. As a result, the ECU 1 can continue to control the spark plug 61 and the injector 62 with the substitute core even when an abnormality occurs in the abnormality determination target core.

また、車両のエンジンに供給される空気量を調整するスロットルバルブは、スロットルバルブを駆動するスロットルモータ63への通電が停止した場合において、スロットルバルブの開度が、車両のリンプホーム走行が可能である予め設定されたオープナ開度となるように構成されている。 Further, the throttle valve for adjusting the amount of air supplied to the engine of the vehicle is such that when the power supply to the throttle motor 63 for driving the throttle valve is stopped, the opening of the throttle valve is adjusted so that the vehicle can limp home. It is configured to have a certain preset opener opening.

ベクターテーブルVT1と、低負荷選択テーブルST1または高負荷選択テーブルST2とは、CPUコア12の処理負荷が高いことを示す予め設定された高負荷条件が成立していない場合には、第2CPUコア12がスロットルモータ63の制御を実行し、高負荷条件が成立している場合には、第2CPUコア12がスロットルモータ63の制御を実行しないように設定されている。本実施形態の高負荷条件は、第2CPUコア12の処理負荷が高負荷判定値J2以上であることである。 The vector table VT1 and the low load selection table ST1 or the high load selection table ST2 indicate that the second CPU core 12 controls the throttle motor 63 and the second CPU core 12 does not control the throttle motor 63 when the high load condition is satisfied. The high load condition of this embodiment is that the processing load of the second CPU core 12 is equal to or higher than the high load determination value J2.

このため、第1CPUコア11で異常が発生することにより、第2CPUコア12が点火プラグ61およびインジェクタ62の制御を代行するとともにスロットルモータ63の制御しているときに、第2CPUコア12の処理負荷が高負荷判定値J2以上になると、第2CPUコア12はスロットルモータ63の制御を実行しなくなる。 Therefore, due to the occurrence of an abnormality in the first CPU core 11, when the second CPU core 12 takes over control of the ignition plug 61 and the injector 62 and controls the throttle motor 63, the processing load of the second CPU core 12 is reduced. becomes equal to or higher than the high load judgment value J2, the second CPU core 12 stops controlling the throttle motor 63. FIG.

第2CPUコア12がスロットルモータ63の制御を停止することにより、スロットルモータ63への通電が停止する。これにより、スロットルバルブの開度が、車両のリンプホーム走行が可能である予め設定されたオープナ開度となる。このため、ECU1は、第1CPUコア11の異常発生時の車両走行において必要最低限のエンジン出力を確保することが可能となる。その後に、第2CPUコア12の処理負荷が高負荷判定値J2未満となると、ECU1は、第2CPUコア12によるスロットルモータ63の制御を再開させるため、車両を通常の運転状態に復帰させることができる。 When the second CPU core 12 stops controlling the throttle motor 63, power supply to the throttle motor 63 stops. As a result, the opening degree of the throttle valve becomes the preset opener opening degree at which the vehicle can limp home. Therefore, the ECU 1 can ensure the minimum necessary engine output for running the vehicle when an abnormality occurs in the first CPU core 11 . After that, when the processing load of the second CPU core 12 becomes less than the high load determination value J2, the ECU 1 restarts the control of the throttle motor 63 by the second CPU core 12, so that the vehicle can be returned to the normal driving state. .

以上説明した実施形態において、ECU1は電子制御装置に相当し、ROM15はプログラム指定記憶部に相当し、要求制御レジスタ40はコア指定記憶部に相当し、割込コントローラ19は割込制御部に相当する。 In the embodiment described above, the ECU 1 corresponds to the electronic control unit, the ROM 15 corresponds to the program designation storage section, the request control register 40 corresponds to the core designation storage section, and the interrupt controller 19 corresponds to the interrupt control section. do.

また、エラー管理装置18およびロックステップコンパレータ33は異常判断部に相当し、ROM15は代行記憶部に相当し、S210~S260,S310~S360は変更部としての処理に相当する。 Further, the error management device 18 and the lockstep comparator 33 correspond to an abnormality determination section, the ROM 15 corresponds to a substitute storage section, and S210 to S260 and S310 to S360 correspond to processing as a change section.

また、ベクターテーブルVT1はプログラム指定情報に相当し、低負荷選択テーブルST1および高負荷選択テーブルST2は複数の代行情報に相当し、S10~S40,S110~S130は負荷計測部としての処理に相当する。 Further, the vector table VT1 corresponds to program designation information, the low load selection table ST1 and high load selection table ST2 correspond to a plurality of proxy information, and S10 to S40 and S110 to S130 correspond to processing as a load measuring unit. .

[第2実施形態]
以下に本開示の第2実施形態を図面とともに説明する。なお第2実施形態では、第1実施形態と異なる部分を説明する。共通する構成については同一の符号を付す。
[Second embodiment]
A second embodiment of the present disclosure will be described below with reference to the drawings. In addition, in the second embodiment, portions different from the first embodiment will be described. The same code|symbol is attached|subjected about a common structure.

第2実施形態のECU1は、第4CPUコア14が省略された点と、ベクターテーブルが変更された点と、低負荷選択テーブルおよび高負荷選択テーブルが変更された点と、エラー処理およびテーブル切替処理が変更された点とが第1実施形態と異なる。 The ECU 1 of the second embodiment has the fourth CPU core 14 omitted, the vector table changed, the low load selection table and the high load selection table changed, and error processing and table switching processing. is different from the first embodiment.

具体的には、第2実施形態のECU1は、ベクターテーブルVT1の代わりにベクターテーブルVT2を備える点が第1実施形態と異なる。
ベクターテーブルVT2は、図9に示すように、複数の割込要因毎に、CPUコア11~13が実行する制御プログラムを指定する。
Specifically, the ECU 1 of the second embodiment differs from the first embodiment in that it includes a vector table VT2 instead of the vector table VT1.
The vector table VT2, as shown in FIG. 9, designates control programs to be executed by the CPU cores 11 to 13 for each of multiple interrupt factors.

本実施形態では、割込要因がクランク角信号の入力である場合には、第1CPUコア11および第2CPUコア12に対して、点火・噴射制御プログラムが指定されている。また、割込要因がカム角信号の入力である場合には、第1CPUコア11および第2CPUコア12に対して、点火・噴射制御プログラムが指定されている。また、割込要因がタイマ割込である場合には、第2CPUコア12および第3CPUコア13に対して、電子スロットル制御プログラムが指定されている。また、割込要因が外部要求割込である場合には、第1CPUコア11、第2CPUコア12およびに第3CPUコア13に対して、外部装置との同期処理を実行するためのプログラム(以下、外部同期プログラム)が指定されている。 In this embodiment, when the interrupt factor is the input of the crank angle signal, the ignition/injection control program is specified for the first CPU core 11 and the second CPU core 12 . Further, when the interrupt factor is the input of the cam angle signal, the ignition/injection control program is specified for the first CPU core 11 and the second CPU core 12 . Further, when the interrupt factor is a timer interrupt, an electronic throttle control program is specified for the second CPU core 12 and the third CPU core 13 . When the interrupt factor is an external request interrupt, a program (hereinafter referred to as a external synchronization program) is specified.

なお、ロックステップエラーが発生していない通常時には、破線の長方形RC11,RC12,RC13,RC14で囲まれているプログラムが実行される。すなわち、通常時には、第1CPUコア11が点火・噴射制御プログラムおよび外部同期プログラムを実行し、第2CPUコア12が電子スロットル制御プログラムを実行する。 It should be noted that the programs enclosed by dashed rectangles RC11, RC12, RC13, and RC14 are executed normally when no lockstep error occurs. That is, normally, the first CPU core 11 executes the ignition/injection control program and the external synchronization program, and the second CPU core 12 executes the electronic throttle control program.

また、第2実施形態のECU1は、低負荷選択テーブルST1および高負荷選択テーブルST2の代わりに低負荷選択テーブルST11、第1高負荷選択テーブルST12および第2高負荷選択テーブルST13を備える点が第1実施形態と異なる。 Further, the ECU 1 of the second embodiment has a low load selection table ST11, a first high load selection table ST12 and a second high load selection table ST13 instead of the low load selection table ST1 and the high load selection table ST2. Differs from one embodiment.

図10に示すように、低負荷選択テーブルST11、第1高負荷選択テーブルST12および第2高負荷選択テーブルST13は、複数の割込要因毎に、プログラムを実行するCPUコアを指定する。 As shown in FIG. 10, the low load selection table ST11, the first high load selection table ST12, and the second high load selection table ST13 designate CPU cores executing programs for each of a plurality of interrupt factors.

本実施形態の低負荷選択テーブルST11では、割込要因がクランク角信号の入力である場合には、第2CPUコア12が選択される。また、割込要因がカム角信号の入力である場合には、第2CPUコア12が選択される。また、割込要因がタイマ割込である場合には、第2CPUコア12が選択される。また、割込要因が外部要求割込である場合には、第2CPUコア12が選択される。 In the low load selection table ST11 of this embodiment, the second CPU core 12 is selected when the interrupt factor is the input of the crank angle signal. Further, when the interrupt factor is the input of the cam angle signal, the second CPU core 12 is selected. Also, when the interrupt factor is a timer interrupt, the second CPU core 12 is selected. Further, when the interrupt factor is an external request interrupt, the second CPU core 12 is selected.

本実施形態の第1高負荷選択テーブルST12では、割込要因がクランク角信号の入力である場合には、第2CPUコア12が選択される。また、割込要因がカム角信号の入力である場合には、第2CPUコア12が選択される。また、割込要因がタイマ割込である場合には、第3CPUコア13が選択される。また、割込要因が外部要求割込である場合には、第3CPUコア13が選択される。 In the first high load selection table ST12 of this embodiment, the second CPU core 12 is selected when the interrupt factor is the input of the crank angle signal. Further, when the interrupt factor is the input of the cam angle signal, the second CPU core 12 is selected. Further, when the interrupt factor is a timer interrupt, the third CPU core 13 is selected. Further, when the interrupt factor is an external request interrupt, the third CPU core 13 is selected.

本実施形態の第2高負荷選択テーブルST13では、割込要因がクランク角信号の入力である場合には、第2CPUコア12が選択される。また、割込要因がカム角信号の入力である場合には、第2CPUコア12が選択される。また、割込要因がタイマ割込である場合には、第3CPUコア13が選択される。また、割込要因が外部要求割込である場合には、選択されるCPUコアが存在しない。 In the second high load selection table ST13 of this embodiment, the second CPU core 12 is selected when the interrupt factor is the input of the crank angle signal. Further, when the interrupt factor is the input of the cam angle signal, the second CPU core 12 is selected. Further, when the interrupt factor is a timer interrupt, the third CPU core 13 is selected. Also, if the interrupt factor is an external request interrupt, there is no CPU core to be selected.

次に、第2実施形態のエラー処理の手順を説明する。
第2実施形態のエラー処理が実行されると、第2CPUコア12は、図11に示すように、まずS510にて、第2CPUコア12の処理負荷CPU_Loadに格納されている値と、第3CPUコア13の処理負荷CPU_Loadに格納されている値とを確認する。
Next, the procedure of error processing according to the second embodiment will be described.
When the error processing of the second embodiment is executed, as shown in FIG. 13 and the value stored in the processing load CPU_Load.

そして第2CPUコア12は、S520にて、第2CPUコア12の処理負荷CPU_Loadに格納されている値が高負荷判定値J2未満であるか否かを判断する。
ここで、第2CPUコア12の処理負荷CPU_Loadに格納されている値が高負荷判定値J2未満である場合には、第2CPUコア12は、S530にて、低負荷選択テーブルST11を参照して、S570に移行する。一方、第2CPUコア12の処理負荷CPU_Loadに格納されている値が高負荷判定値J2以上である場合には、第2CPUコア12は、S540にて、第3CPUコア13の処理負荷CPU_Loadに格納されている値が高負荷判定値J2未満であるか否かを判断する。
Then, in S520, the second CPU core 12 determines whether or not the value stored in the processing load CPU_Load of the second CPU core 12 is less than the high load determination value J2.
Here, if the value stored in the processing load CPU_Load of the second CPU core 12 is less than the high load determination value J2, the second CPU core 12 refers to the low load selection table ST11 in S530, Go to S570. On the other hand, if the value stored in the processing load CPU_Load of the second CPU core 12 is equal to or greater than the high load determination value J2, the second CPU core 12 stores in the processing load CPU_Load of the third CPU core 13 in S540. It is determined whether or not the current value is less than the high load determination value J2.

ここで、第3CPUコア13の処理負荷CPU_Loadに格納されている値が高負荷判定値J2未満である場合には、第2CPUコア12は、S550にて、第1高負荷選択テーブルST12を参照して、S570に移行する。一方、第3CPUコア13の処理負荷CPU_Loadに格納されている値が高負荷判定値J2以上である場合には、第2CPUコア12は、S560にて、第2高負荷選択テーブルST13を参照して、S570に移行する。 Here, if the value stored in the processing load CPU_Load of the third CPU core 13 is less than the high load determination value J2, the second CPU core 12 refers to the first high load selection table ST12 in S550. Then, the process proceeds to S570. On the other hand, if the value stored in the processing load CPU_Load of the third CPU core 13 is equal to or greater than the high load determination value J2, the second CPU core 12 refers to the second high load selection table ST13 in S560. , S570.

そして、S570に移行すると、第2CPUコア12は、割込コントローラ19の要求制御レジスタ40を変更する。
具体的には、低負荷選択テーブルST11を参照した場合には、第2CPUコア12は、少なくとも、割込要因フィールド40_2,40_3,40_4,40_5の値を0x001に設定する。これにより、点火・噴射制御プログラム、電子スロットル制御プログラムおよび外部同期プログラムが第2CPUコア12により実行されるようになる。
After shifting to S<b>570 , the second CPU core 12 changes the request control register 40 of the interrupt controller 19 .
Specifically, when referring to the low load selection table ST11, the second CPU core 12 sets at least the values of the interrupt factor fields 40_2, 40_3, 40_4, and 40_5 to 0x001. As a result, the second CPU core 12 executes the ignition/injection control program, the electronic throttle control program, and the external synchronization program.

また、第1高負荷選択テーブルST12を参照した場合には、第2CPUコア12は、少なくとも、割込要因フィールド40_2,40_3の値を0x001に設定し、割込要因フィールド40_4,40_5の値を0x010に設定する。これにより、点火・噴射制御プログラムが第2CPUコア12により実行され、電子スロットル制御プログラムおよび外部同期プログラムが第3CPUコア13により実行されるようになる。 Further, when referring to the first high load selection table ST12, the second CPU core 12 sets at least the values of the interrupt factor fields 40_2 and 40_3 to 0x001 and the values of the interrupt factor fields 40_4 and 40_5 to 0x010. set to As a result, the second CPU core 12 executes the ignition/injection control program, and the third CPU core 13 executes the electronic throttle control program and the external synchronization program.

また、第2高負荷選択テーブルST13を参照した場合には、第3CPUコア13は、少なくとも、割込要因フィールド40_2,40_3の値を0x001に設定し、割込要因フィールド40_4の値を0x010に設定し、割込要因フィールド40_5の値を0x100に設定する。これにより、点火・噴射制御プログラムが第2CPUコア12により実行され、電子スロットル制御プログラムが第3CPUコア13により実行され、外部同期プログラムがCPUコア11~13の何れによっても実行されないようになる。 Further, when referring to the second high load selection table ST13, the third CPU core 13 sets at least the values of the interrupt factor fields 40_2 and 40_3 to 0x001, and sets the value of the interrupt factor field 40_4 to 0x010. and sets the value of the interrupt cause field 40_5 to 0x100. As a result, the ignition/injection control program is executed by the second CPU core 12, the electronic throttle control program is executed by the third CPU core 13, and the external synchronization program is not executed by any of the CPU cores 11-13.

そして第2CPUコア12は、S580にて、コア異常フラグF1をセットして、エラー処理を終了する。
次に、第2実施形態のテーブル切替処理の手順を説明する。
Then, in S580, the second CPU core 12 sets the core abnormality flag F1 and terminates the error processing.
Next, a procedure for table switching processing according to the second embodiment will be described.

第2実施形態のテーブル切替処理が実行されると、第2CPUコア12は、図12に示すように、まずS610にて、コア異常フラグF1がセットされているか否かを判断する。ここで、コア異常フラグF1がクリアされている場合には、第2CPUコア12は、テーブル切替処理を終了する。 When the table switching process of the second embodiment is executed, the second CPU core 12 first determines in S610 whether or not the core abnormality flag F1 is set, as shown in FIG. Here, when the core abnormality flag F1 is cleared, the second CPU core 12 ends the table switching process.

一方、コア異常フラグF1がセットされている場合には、第2CPUコア12は、S620にて、S510と同様にして、第2CPUコア12および第3CPUコア13の処理負荷CPU_Loadに格納されている値を確認する。 On the other hand, if the core abnormality flag F1 is set, the second CPU core 12, in S620, similarly to S510, sets the value stored in the processing load CPU_Load of the second CPU core 12 and the third CPU core 13 to confirm.

そして第2CPUコア12は、S630にて、S520と同様にして、第2CPUコア12の処理負荷CPU_Loadに格納されている値が高負荷判定値J2未満であるか否かを判断する。 Then, in S630, the second CPU core 12 determines whether or not the value stored in the processing load CPU_Load of the second CPU core 12 is less than the high load determination value J2 in the same manner as in S520.

ここで、第2CPUコア12の処理負荷CPU_Loadに格納されている値が高負荷判定値J2未満である場合には、第2CPUコア12は、S640にて、S530と同様にして、低負荷選択テーブルST11を参照して、S680に移行する。一方、第2CPUコア12の処理負荷CPU_Loadに格納されている値が高負荷判定値J2以上である場合には、第2CPUコア12は、S650にて、S540と同様にして、第3CPUコア13の処理負荷CPU_Loadに格納されている値が高負荷判定値J2未満であるか否かを判断する。 Here, if the value stored in the processing load CPU_Load of the second CPU core 12 is less than the high load determination value J2, the second CPU core 12, in S640, similarly to S530, sets the low load selection table Referring to ST11, the process proceeds to S680. On the other hand, if the value stored in the processing load CPU_Load of the second CPU core 12 is equal to or greater than the high load determination value J2, the second CPU core 12, in S650, similarly to S540, It is determined whether or not the value stored in the processing load CPU_Load is less than the high load determination value J2.

ここで、第3CPUコア13の処理負荷CPU_Loadに格納されている値が高負荷判定値J2未満である場合には、第2CPUコア12は、S660にて、S550と同様にして、第1高負荷選択テーブルST12を参照して、S680に移行する。一方、第3CPUコア13の処理負荷CPU_Loadに格納されている値が高負荷判定値J2以上である場合には、第2CPUコア12は、S670にて、S560と同様にして、第2高負荷選択テーブルST13を参照して、S680に移行する。 Here, if the value stored in the processing load CPU_Load of the third CPU core 13 is less than the high load judgment value J2, the second CPU core 12 performs the first high load Referring to the selection table ST12, the process proceeds to S680. On the other hand, if the value stored in the processing load CPU_Load of the third CPU core 13 is equal to or greater than the high load determination value J2, the second CPU core 12 selects the second high load in S670 in the same manner as in S560. Referring to table ST13, the process proceeds to S680.

そして、S680に移行すると、第2CPUコア12は、S570と同様にして、割込コントローラ19の要求制御レジスタ40を変更して、テーブル切替処理を終了する。
このように構成されたECU1は、CPUコア11~13と、ROM15と、要求制御レジスタ40と、割込コントローラ19と、エラー管理装置18およびロックステップコンパレータ33とを備える。
After proceeding to S680, the second CPU core 12 changes the request control register 40 of the interrupt controller 19 in the same manner as in S570, and terminates the table switching process.
The ECU 1 configured as described above includes CPU cores 11 to 13 , a ROM 15 , a request control register 40 , an interrupt controller 19 , an error management device 18 and a lockstep comparator 33 .

ROM15は、複数の割込要因毎に、CPUコア11~13のそれぞれが実行するプログラムを指定するベクターテーブルVT2を記憶する。
要求制御レジスタ40は、複数の割込要因毎に、割込要因に起因して割り込みを発生させるCPUコア11~13を指定するコア指定情報を割込要因フィールド40_1,40_2,40_3,40_4,40_5,・・・・,40_nに記憶するように構成される。
The ROM 15 stores a vector table VT2 specifying programs to be executed by each of the CPU cores 11 to 13 for each of a plurality of interrupt factors.
The request control register 40 stores core specification information specifying the CPU cores 11 to 13 that generate an interrupt due to the interrupt factor in interrupt factor fields 40_1, 40_2, 40_3, 40_4, and 40_5 for each of a plurality of interrupt factors. , . . . , 40_n.

割込コントローラ19は、割込要因が発生すると、要求制御レジスタ40に記憶されているコア指定情報に基づいて、発生した割込要因に対応するCPUコア11~13に対して割り込みを発生させる。 When an interrupt factor occurs, the interrupt controller 19 generates an interrupt to the CPU cores 11 to 13 corresponding to the interrupt factor, based on the core designation information stored in the request control register 40 .

エラー管理装置18およびロックステップコンパレータ33は、CPUコア11~13のうち第1CPUコア11を異常判断対象コアとして、異常判断対象コアで異常が発生しているか否かを判断する。 The error management device 18 and the lockstep comparator 33 determine whether or not an abnormality has occurred in the abnormality determination target core, with the first CPU core 11 among the CPU cores 11 to 13 as the abnormality determination target core.

ROM15は、代行コアを割込要因毎に指定する低負荷選択テーブルST11、第1高負荷選択テーブルST12および第2高負荷選択テーブルST13を記憶する。
第2CPUコア12は、異常判断対象コアで異常が発生しているとエラー管理装置18が判断した場合に、ROM15に記憶されている低負荷選択テーブルST11、第1高負荷選択テーブルST12および第2高負荷選択テーブルST13に基づいて、要求制御レジスタ40に記憶されているコア指定情報を変更する。
The ROM 15 stores a low load selection table ST11, a first high load selection table ST12, and a second high load selection table ST13 that designate a substitute core for each interrupt factor.
When the error management device 18 determines that an abnormality has occurred in the abnormality determination target core, the second CPU core 12 selects the low load selection table ST11, the first high load selection table ST12, and the second CPU core 12 stored in the ROM 15. The core designation information stored in the request control register 40 is changed based on the high load selection table ST13.

このようにECU1では、割込コントローラ19は、割込要因が発生すると、コア指定情報に基づいて、発生した割込要因に対応するCPUコア11~13に対して割り込みを発生させる。これにより、ECU1では、割込要因に対応するCPUコア11~13が、ベクターテーブルVT2に基づいて、割込要因に対応するプログラムを実行する。 Thus, in the ECU 1, when an interrupt factor occurs, the interrupt controller 19 generates an interrupt to the CPU cores 11 to 13 corresponding to the interrupt factor, based on the core designation information. As a result, in the ECU 1, the CPU cores 11 to 13 corresponding to the interrupt factor execute the program corresponding to the interrupt factor based on the vector table VT2.

そしてECU1では、第2CPUコア12は、異常判断対象コアで異常が発生した場合に、低負荷選択テーブルST11、第1高負荷選択テーブルST12および第2高負荷選択テーブルST13に基づいて、コア指定情報を変更する。これにより、ECU1は、異常判断対象コアで異常が発生した場合には、割込要因が発生したときに異常判断対象コアが実行していたプログラムを代行コアに実行させることができる。従って、ECU1は、異常判断対象コアで異常が発生した場合に、代行コアで、プログラムの実行を代行させることができる。 Then, in the ECU 1, when an abnormality occurs in the abnormality determination target core, the second CPU core 12 determines the core designation information based on the low load selection table ST11, the first high load selection table ST12, and the second high load selection table ST13. to change Accordingly, when an abnormality occurs in the abnormality determination target core, the ECU 1 can cause the substitute core to execute the program that the abnormality determination target core was executing when the interrupt factor occurred. Therefore, when an abnormality occurs in the abnormality determination target core, the ECU 1 can cause the substitute core to execute the program on behalf of the abnormality determination target core.

そしてECU1は、異常判断対象コアで異常が発生した場合に代行コアを割込要因毎に指定する低負荷選択テーブルST11、第1高負荷選択テーブルST12および第2高負荷選択テーブルST13を記憶している。このため、ECU1は、ECU1の運用状況に応じた低負荷選択テーブルST11、第1高負荷選択テーブルST12および第2高負荷選択テーブルST13を予め設定することにより、ECU1の運用状況に応じて、代行コアによる代行を適切に実行させることができる。これにより、ECU1は、異常発生時における制御性能を向上させることができる。 The ECU 1 stores a low-load selection table ST11, a first high-load selection table ST12, and a second high-load selection table ST13 for designating a substitute core for each interrupt factor when an abnormality occurs in the abnormality determination target core. there is For this reason, the ECU 1 presets a low load selection table ST11, a first high load selection table ST12, and a second high load selection table ST13 according to the operation status of the ECU 1. Delegation by the core can be executed appropriately. As a result, the ECU 1 can improve control performance when an abnormality occurs.

またCPUコア12,13はそれぞれ、CPUコア12,13の処理負荷を計測する。そしてROM15は、第2CPUコア12の処理負荷が低い場合に対応する低負荷選択テーブルST11と、第2CPUコア12の処理負荷が高く且つ第3CPUコア13の処理負荷が低い場合に対応する第1高負荷選択テーブルST12と、第2CPUコア12の処理負荷が高く且つ第3CPUコア13の処理負荷が高い場合に対応する第2高負荷選択テーブルST13とを記憶する。第2CPUコア12は、計測された第2CPUコア12および第3CPUコア13の処理負荷に対応した低負荷選択テーブルST11、第1高負荷選択テーブルST12または第2高負荷選択テーブルST13を選択し、選択した低負荷選択テーブルST11、第1高負荷選択テーブルST12または第2高負荷選択テーブルST13に基づいて、コア指定情報を変更する。これにより、ECU1は、第2CPUコア12および第3CPUコア13の処理負荷に応じて代行コアを変更することができ、異常発生時における制御性能を向上させることができる。 The CPU cores 12 and 13 also measure the processing loads of the CPU cores 12 and 13, respectively. The ROM 15 stores a low load selection table ST11 corresponding to the case where the processing load of the second CPU core 12 is low, and a first high load selection table ST11 corresponding to the case where the processing load of the second CPU core 12 is high and the processing load of the third CPU core 13 is low. A load selection table ST12 and a second high load selection table ST13 corresponding to the case where the processing load on the second CPU core 12 is high and the processing load on the third CPU core 13 is high are stored. The second CPU core 12 selects the low load selection table ST11, the first high load selection table ST12, or the second high load selection table ST13 corresponding to the measured processing loads of the second CPU core 12 and the third CPU core 13. The core designation information is changed based on the low load selection table ST11, the first high load selection table ST12, or the second high load selection table ST13. Thereby, the ECU 1 can change the substitute core according to the processing load of the second CPU core 12 and the third CPU core 13, and can improve the control performance when an abnormality occurs.

以上説明した実施形態において、S510~S580,S610~S680は変更部としての処理に相当し、ベクターテーブルVT2はプログラム指定情報に相当し、低負荷選択テーブルST11、第1高負荷選択テーブルST12または第2高負荷選択テーブルST13は複数の代行情報に相当する。 In the embodiment described above, S510 to S580 and S610 to S680 correspond to the processing of the changing section, the vector table VT2 corresponds to the program designation information, the low load selection table ST11, the first high load selection table ST12 or the second The 2-high load selection table ST13 corresponds to a plurality of proxy information.

以上、本開示の一実施形態について説明したが、本開示は上記実施形態に限定されるものではなく、種々変形して実施することができる。
[変形例1]
例えば上記実施形態では、異常判断対象コアが第1CPUコア11である形態を示したが、異常判断対象コアの数は複数であってもよい。
An embodiment of the present disclosure has been described above, but the present disclosure is not limited to the above embodiment, and can be implemented in various modifications.
[Modification 1]
For example, in the above-described embodiment, the first CPU core 11 is used as the abnormality determination target core, but the number of abnormality determination target cores may be plural.

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

上記実施形態における1つの構成要素が有する複数の機能を、複数の構成要素によって実現したり、1つの構成要素が有する1つの機能を、複数の構成要素によって実現したりしてもよい。また、複数の構成要素が有する複数の機能を、1つの構成要素によって実現したり、複数の構成要素によって実現される1つの機能を、1つの構成要素によって実現したりしてもよい。また、上記実施形態の構成の一部を省略してもよい。また、上記実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加または置換してもよい。 A plurality of functions possessed by one component in the above embodiment may be implemented by a plurality of components, or a function possessed by one component may be implemented by a plurality of components. Also, a plurality of functions possessed by a plurality of components may be realized by a single component, or a function realized by a plurality of components may be realized by a single component. Also, part of the configuration of the above embodiment may be omitted. Also, at least part of the configuration of the above embodiment may be added or replaced with respect to the configuration of the other above embodiment.

上述したECU1の他、当該ECU1を構成要素とするシステム、当該ECU1としてコンピュータを機能させるためのプログラム、このプログラムを記録した半導体メモリ等の非遷移的実体的記録媒体、装置制御方法など、種々の形態で本開示を実現することもできる。 In addition to the above-described ECU 1, various systems including the ECU 1 as a component, a program for causing a computer to function as the ECU 1, a non-transitional physical recording medium such as a semiconductor memory in which the program is recorded, a device control method, etc. The present disclosure can also be implemented in a form.

1…ECU、11…第1CPUコア、12…第2CPUコア、13…第3CPUコア、14…第4CPUコア、15…ROM、18…エラー管理装置、19…割込コントローラ、33…ロックステップコンパレータ、40…要求制御レジスタ Reference Signs List 1 ECU, 11 first CPU core, 12 second CPU core, 13 third CPU core, 14 fourth CPU core, 15 ROM, 18 error management device, 19 interrupt controller, 33 lock step comparator, 40... Request control register

Claims (2)

車両に搭載され、
複数のCPUコア(11,12,13,14)と、
複数の割込要因毎に、複数の前記CPUコアのそれぞれが実行するプログラムを指定するプログラム指定情報(VT1,VT2)を記憶するように構成されたプログラム指定記憶部(15)と、
複数の前記割込要因毎に、前記割込要因に起因して割り込みを発生させる前記CPUコアを指定するコア指定情報を記憶するように構成されたコア指定記憶部(40)と、
前記割込要因が発生すると、前記コア指定記憶部に記憶されている前記コア指定情報に基づいて、発生した前記割込要因に対応する前記CPUコアに対して前記割り込みを発生させるように構成された割込制御部(19)と、
複数の前記CPUコアのうち予め設定された少なくとも一つの前記CPUコアを異常判断対象コア(11)として、前記異常判断対象コアで異常が発生しているか否かを判断するように構成された異常判断部(18,33)と、
前記異常判断対象コアで異常が発生した場合に前記異常判断対象コアの代わりに前記プログラムを実行する前記CPUコアである代行コアを前記割込要因毎に指定する複数の代行情報(ST1,ST2,ST11,ST12,ST13)を記憶するように構成された代行記憶部(15)と、
前記異常判断対象コアで異常が発生していると前記異常判断部が判断した場合に、前記代行記憶部に記憶されている前記代行情報に基づいて、前記コア指定情報を変更するように構成された変更部(S210~S260,S310~S360,S510~S580,S610~S680)と
を備え、
前記車両のエンジンに供給される空気量を調整するスロットルバルブは、前記スロットルバルブを駆動するスロットルモータ(63)への通電が停止した場合において、前記スロットルバルブの開度が、前記車両のリンプホーム走行が可能である予め設定されたオープナ開度となるように構成されており、
前記代行コアの処理負荷を計測するように構成された負荷計測部(S10~S40,S110~S130)を備え、
前記代行記憶部は、前記代行コアの前記処理負荷に応じて互いに異なる複数の前記代行情報を記憶し、
前記変更部(S210~S260,S310~S360)は、前記負荷計測部により計測された前記処理負荷に対応した前記代行情報を選択し、選択した前記代行情報に基づいて、前記コア指定情報を変更し、
前記プログラム指定情報(VT1)および前記代行情報(ST1,ST2)は、前記代行コアの前記処理負荷が高いことを示す予め設定された高負荷条件が成立していない場合には、前記代行コアが前記スロットルモータの制御を実行し、前記高負荷条件が成立している場合には、前記代行コアが前記スロットルモータの制御を実行しないように設定されている電子制御装置(1)。
mounted on the vehicle
a plurality of CPU cores (11, 12, 13, 14);
a program designation storage unit (15) configured to store program designation information (VT1, VT2) designating a program to be executed by each of the plurality of CPU cores for each of a plurality of interrupt factors;
a core designation storage unit (40) configured to store, for each of a plurality of interrupt factors, core designation information designating the CPU core that generates an interrupt due to the interrupt factor;
When the interrupt factor occurs, the CPU core corresponding to the generated interrupt factor is caused to generate the interrupt based on the core designation information stored in the core designation storage unit. an interrupt control unit (19);
Abnormality configured to determine whether or not an abnormality has occurred in the abnormality determination target core (11), with at least one of the plurality of CPU cores set in advance as the abnormality determination target core (11). a determination unit (18, 33);
A plurality of proxy information (ST1, ST2, a proxy storage unit (15) configured to store ST11, ST12, ST13);
The core designation information is changed based on the proxy information stored in the proxy storage unit when the fault judgment unit judges that the fault judgment target core is faulty. and a changing unit (S210 to S260, S310 to S360, S510 to S580, S610 to S680) ,
The throttle valve for adjusting the amount of air supplied to the engine of the vehicle is designed so that the throttle motor (63) for driving the throttle valve is de-energized so that the opening of the throttle valve does not affect the limp home of the vehicle. It is configured to have a preset opener opening that allows running,
a load measuring unit (S10 to S40, S110 to S130) configured to measure the processing load of the acting core;
the proxy storage unit stores a plurality of pieces of proxy information different from each other according to the processing load of the proxy core;
The changing unit (S210 to S260, S310 to S360) selects the proxy information corresponding to the processing load measured by the load measuring unit, and changes the core designation information based on the selected proxy information. death,
The program designation information (VT1) and the proxy information (ST1, ST2) indicate that when a preset high load condition indicating that the processing load of the proxy core is high is not satisfied, the proxy core An electronic control unit (1) that executes control of the throttle motor and is set so that the substitute core does not execute control of the throttle motor when the high load condition is satisfied.
請求項1に記載の電子制御装置であって、
前記プログラム指定情報および前記コア指定情報は、前記異常判断対象コアで異常が発生していないと前記異常判断部が判断している場合において前記異常判断対象コアが前記車両のエンジンを制御するように設定されている電子制御装置。
The electronic control device according to claim 1 ,
The program designation information and the core designation information are arranged such that the abnormality determination core controls the engine of the vehicle when the abnormality determination unit determines that the abnormality determination core does not have an abnormality. Electronic control unit that is set.
JP2019168429A 2019-09-17 2019-09-17 electronic controller Active JP7334552B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019168429A JP7334552B2 (en) 2019-09-17 2019-09-17 electronic controller
DE102020211231.2A DE102020211231A1 (en) 2019-09-17 2020-09-08 ELECTRONIC CONTROL UNIT

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019168429A JP7334552B2 (en) 2019-09-17 2019-09-17 electronic controller

Publications (2)

Publication Number Publication Date
JP2021047513A JP2021047513A (en) 2021-03-25
JP7334552B2 true JP7334552B2 (en) 2023-08-29

Family

ID=74686355

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019168429A Active JP7334552B2 (en) 2019-09-17 2019-09-17 electronic controller

Country Status (2)

Country Link
JP (1) JP7334552B2 (en)
DE (1) DE102020211231A1 (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008152790A1 (en) 2007-06-12 2008-12-18 Panasonic Corporation Multiprocessor control device, multiprocessor control method, and multiprocessor control circuit
JP2009187223A (en) 2008-02-05 2009-08-20 Nec Corp Processor, electronic equipment, interrupt control method, and interrupt control program
JP2009245009A (en) 2008-03-28 2009-10-22 Fujitsu Ten Ltd Vehicle control device and multi-core processor
JP2011141782A (en) 2010-01-08 2011-07-21 Toyota Motor Corp Information processing apparatus, electronic control unit and task allocation method
JP2014049013A (en) 2012-09-03 2014-03-17 Hitachi Automotive Systems Ltd Electronic control system for automobile
JP2018112977A (en) 2017-01-13 2018-07-19 株式会社デンソー Microcomputer

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008152790A1 (en) 2007-06-12 2008-12-18 Panasonic Corporation Multiprocessor control device, multiprocessor control method, and multiprocessor control circuit
JP2009187223A (en) 2008-02-05 2009-08-20 Nec Corp Processor, electronic equipment, interrupt control method, and interrupt control program
JP2009245009A (en) 2008-03-28 2009-10-22 Fujitsu Ten Ltd Vehicle control device and multi-core processor
JP2011141782A (en) 2010-01-08 2011-07-21 Toyota Motor Corp Information processing apparatus, electronic control unit and task allocation method
JP2014049013A (en) 2012-09-03 2014-03-17 Hitachi Automotive Systems Ltd Electronic control system for automobile
JP2018112977A (en) 2017-01-13 2018-07-19 株式会社デンソー Microcomputer

Also Published As

Publication number Publication date
JP2021047513A (en) 2021-03-25
DE102020211231A1 (en) 2021-03-18

Similar Documents

Publication Publication Date Title
JP5032434B2 (en) Control device for system and driving method of control device
JP5867495B2 (en) Electronic control unit
RU2082016C1 (en) Electronic control module
JP3255693B2 (en) Automotive multi-computer system
JP7327188B2 (en) electronic controller
JP2009030543A (en) In-vehicle engine control device
JP2008014221A (en) Controller of engine with auxiliary machine
JP4042466B2 (en) Memory diagnostic device and control device
JP2000047883A (en) Task controlling method and storage medium
JP5662181B2 (en) Electronic control device for moving body
JP3970196B2 (en) Engine intake air amount control device and engine intake air amount control method
JP7334552B2 (en) electronic controller
JP5842783B2 (en) Vehicle control device
JP2011145900A (en) Multiprocessor device
JP6681304B2 (en) Vehicle control device and vehicle internal combustion engine control device
JP4422076B2 (en) Data processing device, electronic control unit, and automobile
JP6729407B2 (en) Microcomputer
JP2010113419A (en) Multicore controller
JP3925196B2 (en) Vehicle electronics
JP2006279322A (en) Control device
JP5978873B2 (en) Electronic control unit
JP7067078B2 (en) Internal combustion engine control system
JP2011039667A (en) Numerical value controller
WO2017002939A1 (en) Electronic control device and stack usage method
JP2009215944A (en) Electronic control system and method for operating same

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211217

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221213

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20230516

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230621

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20230629

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230731

R151 Written notification of patent or utility model registration

Ref document number: 7334552

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151