JP6009518B2 - Electronic control unit - Google Patents
Electronic control unit Download PDFInfo
- Publication number
- JP6009518B2 JP6009518B2 JP2014210404A JP2014210404A JP6009518B2 JP 6009518 B2 JP6009518 B2 JP 6009518B2 JP 2014210404 A JP2014210404 A JP 2014210404A JP 2014210404 A JP2014210404 A JP 2014210404A JP 6009518 B2 JP6009518 B2 JP 6009518B2
- Authority
- JP
- Japan
- Prior art keywords
- arithmetic processing
- execution order
- calculation process
- time
- electronic control
- 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
Links
- 238000012545 processing Methods 0.000 claims description 498
- 238000000034 method Methods 0.000 claims description 344
- 230000008569 process Effects 0.000 claims description 337
- 238000004364 calculation method Methods 0.000 claims description 207
- 230000008859 change Effects 0.000 claims description 65
- 238000012508 change request Methods 0.000 claims description 18
- 230000005856 abnormality Effects 0.000 claims description 15
- 230000002159 abnormal effect Effects 0.000 claims description 9
- 238000012544 monitoring process Methods 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 16
- 238000004891 communication Methods 0.000 description 10
- 230000004913 activation Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 230000003111 delayed effect Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000004904 shortening Methods 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Landscapes
- Hardware Redundancy (AREA)
Description
この発明は、マルチコアマイクロコントローラにおける共有リソースへの排他制御に伴う演算処理の遅延を回避可能とするようにした電子制御装置に関する。 The present invention relates to an electronic control device that can avoid a delay in arithmetic processing associated with exclusive control of shared resources in a multi-core microcontroller.
自動車や船舶には、エンジンの点火時期やステアリングモータの制御を行う電子制御装置(以下、ECUと称する)が搭載されている。近年、制御の複雑化に伴う処理量の増加への対応や、消費電力の抑制を目的として、マルチコアマイクロコントローラを実装したECUが使用されるようになってきた。 An automobile or a ship is equipped with an electronic control device (hereinafter referred to as ECU) that controls the ignition timing of the engine and the steering motor. In recent years, an ECU equipped with a multi-core microcontroller has been used for the purpose of dealing with an increase in processing amount due to complicated control and reducing power consumption.
マルチコアマイクロコントローラでは、各コアが複数の演算処理を並列して実行する。これらの演算処理がリソースを共有する場合、例えば同じメモリアドレスに各演算処理から同時に書込みアクセスすることによって、意図しないデータ書換えなどが発生する場合がある。このような競合を回避するため、共有リソースへのアクセス時には、一度に一つのコアからのみアクセスできるように、排他制御を行う必要がある。 In a multi-core microcontroller, each core executes a plurality of arithmetic processes in parallel. When these arithmetic processes share resources, for example, unintended data rewriting may occur due to simultaneous write access from each arithmetic process to the same memory address. In order to avoid such contention, it is necessary to perform exclusive control so that only one core can access the shared resource at a time.
排他制御の方法として、排他状態を示すロックフラグを用いる方法がある。演算処理は共有リソースへアクセスする前にロックフラグをセットし、アクセス終了後にロックフラグをクリアする。既にロックフラグがセットされている場合には、他のコアが共有リソースへアクセス中であることを示しているため、ロックフラグがクリアされるまで、共有リソースへアクセスを回避することで、排他制御を実現することができる。 As a method of exclusive control, there is a method using a lock flag indicating an exclusive state. The arithmetic processing sets the lock flag before accessing the shared resource, and clears the lock flag after the access is completed. If the lock flag is already set, it indicates that another core is accessing the shared resource, so exclusive control is avoided by avoiding access to the shared resource until the lock flag is cleared. Can be realized.
ここで、ロックフラグをセットできなかった演算処理は、ロックフラグをセットできるようになるまで、ロックフラグのセット試行を繰り返すスピンロックと呼ばれる方式が知られている。このようにすることで、他の演算処理がロックフラグをクリアすれば直ちにセットし、共有リソースへアクセスすることが可能である。しかし、ロックフラグがクリアされるまでセット試行を継続するため、コアの処理能力が有効に活用できない上、同じコア内の後続の演算処理の実行が遅延するという問題がある。 Here, a calculation method in which the lock flag cannot be set is known as a spin lock in which the lock flag is repeatedly set until the lock flag can be set. By doing so, it is possible to immediately set and access the shared resource if other arithmetic processing clears the lock flag. However, since the set trial is continued until the lock flag is cleared, there is a problem that the processing capability of the core cannot be utilized effectively and the execution of subsequent arithmetic processing in the same core is delayed.
これを、図26の例を用いて説明する。図26は、この発明の背景技術に係る排他制御実行例を示す説明図である。図26において、コア0では周期t0で演算処理e0が起動し、コア1では周期t1(t0の2倍の長さ)で演算処理e1とそれに続く演算処理e2が起動して、処理を行うECUにおいて、演算処理e0と演算処理e1内で、共有リソースにアクセスするための排他制御が実行されるものとする。この排他制御の実行タイミングが2つのコアで重複しており、演算処理e0が先にロックフラグをセットし、共有リソースにアクセスしているため、演算処理e1は、演算処理e0がロックフラグをクリアするまでの時間tsの間、自動車や船舶の制御には直接関係のないセット試行のみを繰り返し実行することになる。 This will be described with reference to the example of FIG. FIG. 26 is an explanatory diagram showing an example of exclusive control execution according to the background art of the present invention. In FIG. 26, in the core 0, the arithmetic processing e0 is started at the cycle t0, and in the core 1, the arithmetic processing e1 and the subsequent arithmetic processing e2 are started at the cycle t1 (twice the length of t0) to perform the processing. , It is assumed that exclusive control for accessing the shared resource is executed in the arithmetic processing e0 and the arithmetic processing e1. Since the execution timing of this exclusive control is duplicated between the two cores, and the arithmetic processing e0 sets the lock flag first and accesses the shared resource, the arithmetic processing e1 clears the lock flag. During the time ts until this is done, only set trials that are not directly related to the control of the automobile or ship are repeatedly executed.
その結果、演算処理e1の処理時間が長くなり、コア1の処理負荷が増大する上、演算処理e1内の排他制御後に実行される演算処理e2の開始時間が遅延してしまう。さらにセット試行時間tsの長さは、演算処理e0と演算処理e1の実行タイミングや演算処理e0の排他制御の処理時間に依存するため、制御に関係する実質的な処理時間よりも、セット試行時間tsの方が長くなり、コア1の処理負荷が増大する可能性がある。また、図26に示すように、排他制御を行う演算処理が周期起動であれば、排他制御処理の重複時間(セット試行時間ts)も、周期的に発生することになる。 As a result, the processing time of the arithmetic processing e1 becomes longer, the processing load on the core 1 increases, and the start time of the arithmetic processing e2 executed after the exclusive control in the arithmetic processing e1 is delayed. Further, since the length of the set trial time ts depends on the execution timing of the arithmetic processing e0 and the arithmetic processing e1 and the processing time of exclusive control of the arithmetic processing e0, the set trial time is larger than the substantial processing time related to control. There is a possibility that ts becomes longer and the processing load of the core 1 increases. In addition, as shown in FIG. 26, if the arithmetic processing that performs exclusive control is cyclically activated, the overlapping time (set trial time ts) of the exclusive control processing also occurs periodically.
そこでこのロックフラグのセット試行時間を短縮する方法として、例えば特許文献1では、セット試行時間が所定の条件を満たした場合に、演算処理の実行順序を変更する方法が提案されている。特許文献2では、セット試行時間に応じて、演算処理をスリープさせるか、待ち行列の最後に追加して待機させるか選択し、他の演算処理を実行させる方法が提案されている。 Therefore, as a method for shortening the lock flag set trial time, for example, Patent Document 1 proposes a method of changing the execution order of the arithmetic processing when the set trial time satisfies a predetermined condition. Patent Document 2 proposes a method for selecting whether to put the arithmetic processing to sleep or to add it to the end of the queue for waiting according to the set trial time, and to execute another arithmetic processing.
しかしながら上記特許文献1では、セット試行時間に応じてどのように演算処理の実行順序を変更するかについては開示されていない。従ってセット試行時間、すなわち排他制御処理の重複時間を考慮した実行順序でないために、演算処理の実行順序を変更してもなお排他制御処理が重複し、セット試行時間を低減できない可能性があるという課題がある。 However, Patent Document 1 does not disclose how to change the execution order of the arithmetic processing according to the set trial time. Therefore, since the execution order does not take into account the set trial time, that is, the exclusive control process overlap time, the exclusive control process may still overlap even if the execution order of the arithmetic process is changed, and the set trial time may not be reduced. There are challenges.
これに対し上記特許文献2では、セット試行時間に応じて演算処理の状態を決定している。しかしスリープや待機から復帰し、排他制御を再開するまでの長さや、その間に実行される別の演算処理の選択方法については開示されておらず、特許文献1と同様に、セット試行時間を低減できない可能性がある、という課題がある。 On the other hand, in the said patent document 2, the state of arithmetic processing is determined according to the set trial time. However, it does not disclose how long it takes to return from sleep or standby and resume exclusive control, and how to select another arithmetic process executed during that time. As in Patent Document 1, the set trial time is reduced. There is a problem that it may not be possible.
この発明は、従来の装置における前述のような課題を解決するためになされたものであり、排他制御処理の重複時間であるセット試行時間に応じて、演算処理の実行順序を最適化し、効率的にセット試行時間を短縮することで、共有リソースに対する排他制御を確実に実行しながらも、排他制御によるマイクロコントローラの処理負荷を低減し、処理性能を効率的に利用できる電子制御装置を提供することを目的としている。 The present invention has been made to solve the above-described problems in the conventional apparatus, and optimizes the execution order of the arithmetic processing according to the set trial time, which is the overlap time of the exclusive control processing, and is efficient. To provide an electronic control device that can reduce the processing load on the microcontroller by exclusive control and efficiently use the processing performance while reliably executing exclusive control on shared resources by shortening the set trial time It is an object.
この発明による電子制御装置は、
演算処理を実行する第1のプロセッサと、
前記第1のプロセッサの演算処理の実行とは並列に演算処理を実行する第2のプロセッサと、
を備えた電子制御装置であって、
前記第1のプロセッサは、第1の演算処理と複数の第2の演算処理とを所定の実行順序に従って周期的に実行するように構成され、
前記第2のプロセッサは、第3の演算処理を周期的に実行するように構成され、
前記第1の演算処理と前記第3の演算処理は、排他的に共有リソースにアクセスする演算処理であり、
前記第1の演算処理と前記第3の演算処理とのうちの何れか一方が、前記共有リソースに排他的にアクセスしたときにセットされるロックフラグと、
前記第3の演算処理により前記共有リソースが排他的にアクセスされていて前記第1の演算処理が前記ロックフラグをセットできないとき、前記第1の演算処理が前記ロックフラグをセットできるまでセット試行を繰り返すセット試行回数を計数するセット試行カウンタと、
を備え、
前記セット試行カウンタの値が所定の閾値を超過したとき、
前記セット試行カウンタの値に基づいて、前記複数の第2の演算処理のうちの少なくとも一つを選択し、
前記選択された前記第2の演算処理と前記第1の演算処理との実行順序を変更して、前記第1のプロセッサの演算処理を実行するように構成されている、
ことを特徴とするものである。
An electronic control device according to the present invention includes:
A first processor that executes arithmetic processing;
A second processor that executes arithmetic processing in parallel with execution of arithmetic processing of the first processor;
An electronic control device comprising:
The first processor is configured to periodically execute a first calculation process and a plurality of second calculation processes according to a predetermined execution order,
The second processor is configured to periodically execute a third arithmetic process,
The first calculation process and the third calculation process are calculation processes that exclusively access a shared resource,
A lock flag that is set when any one of the first calculation process and the third calculation process exclusively accesses the shared resource;
When the shared resource is exclusively accessed by the third calculation process and the first calculation process cannot set the lock flag, the setting calculation is attempted until the first calculation process can set the lock flag. A set trial counter for counting the number of set trials to be repeated;
With
When the value of the set trial counter exceeds a predetermined threshold value,
Based on the value of the set trial counter, select at least one of the plurality of second arithmetic processes,
By changing the execution order of the first processing and the selected second arithmetic processing, and is configured to perform the calculation processing of the first processor,
It is characterized by this.
本発明に係る電子制御装置によれば、セット試行カウンタの値に基づいて、複数の第2の演算処理のうちの少なくとも一つを選択し、選択された第2の演算処理と第1の演算処理との実行順序を変更して、第1のプロセッサの演算処理を実行するようにしているので、複数の演算処理が排他的に共有リソースにアクセスする重複時間を抑制して、排他制御による処理負荷を低減し、マイクロコントローラの処理性能を効率的に利用できる。これにより、例えばメモリのテストなどの最低優先度タスクとして行うような処理を、より長く実行することが可能になり、マイクロコントローラの処理性能を効率的に利用できることに加えて、異常を早く検出できるようになる。 According to the electronic control device of the present invention, at least one of the plurality of second calculation processes is selected based on the value of the set trial counter, and the selected second calculation process and the first calculation are selected. Since the execution order of the first processor is changed to execute the processing of the first processor, processing by exclusive control is performed by suppressing the overlap time in which multiple arithmetic processing accesses the shared resource exclusively. The load can be reduced and the processing performance of the microcontroller can be used efficiently. As a result, for example, a process that is performed as a lowest priority task such as a memory test can be executed for a longer time, and in addition to being able to efficiently use the processing performance of the microcontroller, it is possible to detect an abnormality early. It becomes like this.
実施の形態1.
以下に、この発明の実施の形態1に係る電子制御装置について説明する。図1は、この発明の実施の形態1に係る電子制御装置の構成図であって、自動車に搭載される電子制御装置としてのECUを示している。図1に於いて、電子制御装置(以下、ECUと称する)101は、CAN通信線102を介して他のECU(図示せず)と接続しており、通信プロトコルCANに従ってデータの送受信を行うことにより、高度な車両制御を実現している。
Embodiment 1 FIG.
The electronic control apparatus according to Embodiment 1 of the present invention will be described below. FIG. 1 is a configuration diagram of an electronic control device according to Embodiment 1 of the present invention, and shows an ECU as an electronic control device mounted on an automobile. In FIG. 1, an electronic control unit (hereinafter referred to as ECU) 101 is connected to another ECU (not shown) via a CAN communication line 102, and transmits and receives data according to a communication protocol CAN. As a result, advanced vehicle control is realized.
ECU101は、演算を実行する第1のプロセッサとしてのコアA103と、コアAの演算の実行と並列に演算を実行する第2のプロセッサとしてのコアB104と、メモリ105と、CAN通信線102と接続されるCAN通信インタフェース122とを備える。メモリ105は、管理処理106と、演算処理a107と、演算処理b108と、演算処理c109と、演算処理d110と、演算処理e111と、演算処理f112と、演算処理g113と、演算処理h114と、演算処理i115と、共有リソースとしての共有データ116と、ロックフラグ117と、セット試行カウンタ118と、セット試行回数閾値119と、超過時セット試行回数120と、演算処理時間テーブル121とを備えている。 The ECU 101 is connected to a core A 103 as a first processor that executes calculations, a core B 104 as a second processor that executes calculations in parallel with the execution of calculations of the core A, a memory 105, and a CAN communication line 102. The CAN communication interface 122 is provided. The memory 105 includes a management process 106, an operation process a107, an operation process b108, an operation process c109, an operation process d110, an operation process e111, an operation process f112, an operation process g113, an operation process h114, Processing i 115, shared data 116 as a shared resource, lock flag 117, set trial counter 118, set trial count threshold 119, excess set trial count 120, and arithmetic processing time table 121 are provided.
コアA103は、管理処理106と、演算処理a107〜演算処理f112を実行する。コアB104は、管理処理106と、演算処理g113〜演算処理i115を実行する。ここで、第1のプロセッサとしてのコアA103で実行される演算処理b108は、本願発明に於ける第1の演算処理に相当し、演算処理a107、演算処理c109〜演算処理f112は、本願発明における第2の演算処理に相当する。また第2のプロセッサとしてのコアB104で実行される演算処理h114は、本願発明における第3の演算処理に相当し、演算処理g113、演算処理i115は、本願発明における第4の演算処理に相当する。 The core A 103 executes a management process 106 and calculation processes a107 to f112. The core B 104 executes the management process 106 and the calculation processes g113 to i115. Here, the arithmetic processing b108 executed by the core A103 as the first processor corresponds to the first arithmetic processing in the present invention, and the arithmetic processing a107 and arithmetic processing c109 to arithmetic processing f112 are in the present invention. This corresponds to the second calculation process. The arithmetic processing h114 executed by the core B104 as the second processor corresponds to the third arithmetic processing in the present invention, and the arithmetic processing g113 and the arithmetic processing i115 correspond to the fourth arithmetic processing in the present invention. .
管理処理106は、演算処理a107〜演算処理i115の起動や終了を管理したり、実行順序の調整を行う。 The management process 106 manages the activation and termination of the calculation processes a107 to i115 and adjusts the execution order.
演算処理a107〜演算処理i115は、自動車の制御に関わる演算を行う。演算処理b108、演算処理f112、演算処理h114は、排他制御を実行して共有データ116にアクセスする。 Arithmetic processing a107 to arithmetic processing i115 perform computations related to automobile control. The arithmetic processing b108, the arithmetic processing f112, and the arithmetic processing h114 execute exclusive control and access the shared data 116.
共有リソースとしての共有データ116は、演算処理b108と演算処理h114から書込みアクセスされる。また、演算処理f112から読込みアクセスされる。 The shared data 116 as a shared resource is written and accessed from the arithmetic processing b108 and the arithmetic processing h114. Further, it is read and accessed from the arithmetic processing f112.
ロックフラグ117は、演算処理b108、演算処理f112、演算処理h114が、共有データ116にアクセスする際に「1」を書込み(セットし)、共有データ116へのアクセスを終了する際に「0」を書込む(クリアする)フラグである。 The lock flag 117 writes (sets) “1” when the arithmetic process b108, the arithmetic process f112, and the arithmetic process h114 access the shared data 116, and “0” when the access to the shared data 116 ends. Is a flag to write (clear).
セット試行カウンタ118は、初期値は「0」であり、コアB104の演算処理h114がロックフラグ117をセットした状態で、コアA103の演算処理b108が、ロックフラグ117をセットしようと試行する度にインクリメントされるカウンタである。すなわち、セット試行カウンタ118の値としてのカウント値は、第1の演算処理としての演算処理b108によるロックフラグ117のセットに失敗した回数を指す。 The initial value of the set trial counter 118 is “0”, and every time the arithmetic processing b108 of the core A103 tries to set the lock flag 117 in a state where the arithmetic processing h114 of the core B104 sets the lock flag 117, It is a counter that is incremented. That is, the count value as the value of the set trial counter 118 indicates the number of times that the setting of the lock flag 117 by the arithmetic processing b108 as the first arithmetic processing has failed.
セット試行回数閾値119は、セット試行カウンタ118との比較に用いられる閾値である。この実施の形態1では、その閾値を「50」とする。 The set trial count threshold 119 is a threshold used for comparison with the set trial counter 118. In the first embodiment, the threshold value is “50”.
超過時セット試行回数120は、セット試行カウンタ118の値がセット試行回数閾値「50」を超過した場合に、セット試行カウンタ118の値を格納するものである。 The excess set trial count 120 stores the value of the set trial counter 118 when the value of the set trial counter 118 exceeds the set trial count threshold “50”.
演算処理時間テーブル121は、演算処理a107〜演算処理e111の処理時間を記載したテーブルである。これを図2に示す。すなわち、図2は、この発明の実施の形態1に係る電子制御装置の演算処理時間テーブルを示す図である。演算処理a107と演算処理c109は0.4[ms]、演算処理d110は1.0[ms]、演算処理e111は1.5[ms]とする。このようにこの実施の形態1では、演算処理a107、演算処理c109、演算処理d110、演算処理e111の処理時間の概算値が明らかになっているものとする。 The arithmetic processing time table 121 is a table in which processing times of the arithmetic processing a107 to arithmetic processing e111 are described. This is shown in FIG. That is, FIG. 2 is a diagram showing an arithmetic processing time table of the electronic control apparatus according to Embodiment 1 of the present invention. The calculation process a107 and calculation process c109 are set to 0.4 [ms], the calculation process d110 is set to 1.0 [ms], and the calculation process e111 is set to 1.5 [ms]. As described above, in the first embodiment, it is assumed that approximate values of the processing times of the arithmetic processing a107, the arithmetic processing c109, the arithmetic processing d110, and the arithmetic processing e111 are clarified.
CAN通信インタフェース122は、コアA103で実行される演算処理f112のトリガによって、演算処理f112から受け取った共有データ116の値を、CANメッセージとしてCAN通信線102へ送信する。 The CAN communication interface 122 transmits the value of the shared data 116 received from the arithmetic processing f112 to the CAN communication line 102 as a CAN message in response to a trigger of the arithmetic processing f112 executed by the core A103.
続いて、コアA103、コアB104による管理処理106、演算処理a107〜演算処理i115の実行について説明する。コアA103では、管理処理106が演算処理a107〜演算処理e111を1つのタスクTA0として、周期tAで実行する。また、演算処理f112を1つのタスクTA1として、同じ周期tAで実行する。コアB104では、管理処理106が演算処理g113〜演算処理i115を1つのタスクTBとして、周期tBで実行する。この実施の形態1では、周期tBは周期tAの2倍の長さであるとする。また、初期設定(デフォルト)では、タスクTA0では演算処理a107→演算処理b108→演算処理c109→演算処理d110→演算処理e111の順で実行され、タスクTBでは演算処理g113→演算処理h114→演算処理i115の順で実行される。コアA103、コアB104とも、実行する演算処理が無い間は、バックグラウンドタスク(図1には図示していない)を実行し、メモリ105のエラーチェックなどの異常検出処理を低優先度で実行する。 Next, the execution of the management process 106, the calculation process a107 to the calculation process i115 by the core A103 and the core B104 will be described. In the core A103, the management process 106 executes the calculation process a107 to the calculation process e111 as one task TA0 at a cycle tA. Further, the arithmetic processing f112 is executed as one task TA1 with the same cycle tA. In the core B104, the management process 106 executes the calculation process g113 to the calculation process i115 as one task TB with a period tB. In the first embodiment, it is assumed that the period tB is twice as long as the period tA. In the initial setting (default), the task TA0 is executed in the order of the calculation process a107 → the calculation process b108 → the calculation process c109 → the calculation process d110 → the calculation process e111. In the task TB, the calculation process g113 → the calculation process h114 → the calculation process. i115 is executed in this order. Both the core A 103 and the core B 104 execute a background task (not shown in FIG. 1) while there is no arithmetic processing to be executed, and execute an abnormality detection process such as an error check of the memory 105 with a low priority. .
次に、演算処理b108が共有データ116へアクセスする際に実行する排他制御について説明する。図3は、この発明の実施の形態1に係る電子制御装置の演算処理bによる排他制御処理に関するフローチャートである。図3において、演算処理b108は、ロックフラグ117の値を読込む(ステップS301)。読込んだロックフラグ117の値がセットされているか、クリアされているか、判断する(ステップS302)。ロックフラグ117の値がクリアされている場合には、ロックフラグ117をセットし(ステップS303)し、共有データ116へアクセスして値を書込む(ステップS304)。一方、ロックフラグ117がクリアされていない場合には、セット試行カウンタ118をインクリメントし(ステップS307)、ロックフラグ117の値の読込み(ステップS301)に戻る。共有データ116への書込みアクセスを完了すると、ロックフラグ117をクリアする(ステップS305)。そしてセット試行カウンタ118の値をセット試行回数閾値(「50」)と比較し(ステップS306)、セット試行カウンタ118の値がセット試行回数閾値以下である場合には、一連の処理を終了する。一方、セット試行カウンタ118の値がセット試行回数閾値を超過している場合には、セット試行カウンタ118を、超過時セット試行回数120へ格納(ステップS308)した後、セット試行カウンタ118をリセットし(ステップS309)、一連の処理を終了する。 Next, the exclusive control executed when the arithmetic process b108 accesses the shared data 116 will be described. FIG. 3 is a flowchart related to the exclusive control process by the arithmetic process b of the electronic control apparatus according to Embodiment 1 of the present invention. In FIG. 3, the calculation process b108 reads the value of the lock flag 117 (step S301). It is determined whether the value of the read lock flag 117 is set or cleared (step S302). If the value of the lock flag 117 is cleared, the lock flag 117 is set (step S303), the shared data 116 is accessed and the value is written (step S304). On the other hand, if the lock flag 117 is not cleared, the set trial counter 118 is incremented (step S307), and the process returns to reading the value of the lock flag 117 (step S301). When the write access to the shared data 116 is completed, the lock flag 117 is cleared (step S305). Then, the value of the set trial counter 118 is compared with the set trial count threshold (“50”) (step S306), and if the value of the set trial counter 118 is equal to or smaller than the set trial count threshold, the series of processing ends. On the other hand, if the value of the set trial counter 118 exceeds the set trial count threshold, the set trial counter 118 is stored in the excess set trial count 120 (step S308), and then the set trial counter 118 is reset. (Step S309), a series of processing ends.
演算処理f112と演算処理h114も排他制御を実行して共有データ116へアクセスするが、図3のフローチャートのうち、セット試行カウンタ118のインクリメント(ステップS307)は実行されず、ロックフラグ117がセットされている場合には、ロックフラグ117の値の読込み(ステップS301)に戻る。また、ロックフラグ117をクリア(ステップS305)した後は、セット試行カウンタ118に関する処理は実行せず、直ちに処理を終了する。これ以外は演算処理b108と同じである。 The arithmetic processing f112 and the arithmetic processing h114 also execute exclusive control to access the shared data 116, but in the flowchart of FIG. 3, the set trial counter 118 is not incremented (step S307), and the lock flag 117 is set. If yes, the process returns to reading the value of the lock flag 117 (step S301). Further, after clearing the lock flag 117 (step S305), the processing regarding the set trial counter 118 is not executed, and the processing is immediately terminated. The rest is the same as the arithmetic processing b108.
次に、コアA103におけるタスクTA0起動時の管理処理106について説明する。図4は、この発明の実施の形態1に係る電子制御装置における、コアA103で実行される管理処理106のタスクTA0の起動タイミングに関するフローチャートである。図4において、管理処理106は、超過時セット試行回数120の値を参照し(ステップS401)、その値が「0」以下である場合には、実行順序の変更は不要であるため、演算処理a107〜演算処理e111の実行を初期設定の順序で開始し、管理処理106を終了する。超過時セット試行回数120の値が「0」より大きい場合には、超過時セット試行回数120を用いて、セット試行時間を算出する(ステップS402)。この実施の形態1では、セット試行にかかる処理時間として10[us/回]を用いる。なお、この値はコアA103の動作周波数と実行コードからの算出結果や、実際の測定結果から求めることができる。 Next, the management process 106 when the task TA0 is activated in the core A103 will be described. FIG. 4 is a flowchart relating to the activation timing of task TA0 of management process 106 executed by core A103 in the electronic control apparatus according to Embodiment 1 of the present invention. In FIG. 4, the management process 106 refers to the value of the excess set trial count 120 (step S401), and if the value is “0” or less, it is not necessary to change the execution order. The execution of a107 to arithmetic processing e111 is started in the order of initial setting, and the management processing 106 is ended. When the value of the excess set trial count 120 is larger than “0”, the set trial time is calculated using the excess set trial count 120 (step S402). In the first embodiment, 10 [us / time] is used as the processing time for the set trial. This value can be obtained from the calculation result from the operating frequency and execution code of the core A 103 or from the actual measurement result.
続いて、演算処理時間テーブル121を参照し、算出したセット試行時間に最も近い処理時間を持つ演算処理を選択する(ステップS403)。そして選択した演算処理が、共有データ116にアクセスするために排他制御を行う演算処理b108の前に実行されるように、実行順序を変更する(ステップS404)。次に超過時セット試行回数120を「0」にリセットし(ステップS405)、決定した実行順序に従って演算処理a107〜演算処理e111の実行を開始し、管理処理106を終了する。 Subsequently, referring to the arithmetic processing time table 121, an arithmetic processing having a processing time closest to the calculated set trial time is selected (step S403). Then, the execution order is changed so that the selected arithmetic processing is executed before the arithmetic processing b108 that performs exclusive control to access the shared data 116 (step S404). Next, the excess set trial count 120 is reset to “0” (step S405), the execution of the arithmetic processing a107 to the arithmetic processing e111 is started according to the determined execution order, and the management processing 106 is ended.
次に、図3と図4に示すフローチャートに従って動作する管理処理106と、各演算処理の実行動作と、そのときのロックフラグ117と、セット試行カウンタ118と、超過時セット試行回数120とを、図5のタイムチャートを用いて説明する。図5は、この発明の実施の形態1に係る電子制御装置における、演算処理a〜演算処理i、ロックフラグ、セット試行カウンタ、および超過時セット試行回数に関するタイムチャートである。なお、管理処理106の処理時間は、図5のタイムチャート上には記載していない。 Next, a management process 106 that operates according to the flowcharts shown in FIGS. 3 and 4, an execution operation of each arithmetic process, a lock flag 117 at that time, a set trial counter 118, and an excess set trial count 120, This will be described with reference to the time chart of FIG. FIG. 5 is a time chart regarding arithmetic processing a to arithmetic processing i, a lock flag, a set trial counter, and an excess set trial count in the electronic control apparatus according to Embodiment 1 of the present invention. Note that the processing time of the management process 106 is not described on the time chart of FIG.
図5において、時刻t500でコアA103のタスクTA0が初回起動すると、管理処理106は超過時セット試行回数120の値が「0」であることから、実行順序の変更は不要であると判断する。その結果、タスクTA0に含まれる演算処理a107〜演算処理e111が、演算処理a107→演算処理b108→演算処理c109→演算処理d110→演算処理e111の初期設定の順序で実行される。このときコアB104のタスクTBは起動タイミングではないため、ロックフラグ117はクリアされており、演算処理b108による排他制御では、直ちにロックフラグ117をセットして共有データ116へ書込むことができる。共有データ116への書込みを完了すると、ロックフラグ117をクリアし、セット試行カウンタ118は「0」のままであることから、排他制御処理を終了する。 In FIG. 5, when the task TA0 of the core A 103 is activated for the first time at time t500, the management process 106 determines that the change of the execution order is unnecessary because the value of the excess set trial count 120 is “0”. As a result, the arithmetic processing a107 to arithmetic processing e111 included in the task TA0 are executed in the order of initial setting of the arithmetic processing a107 → the arithmetic processing b108 → the arithmetic processing c109 → the arithmetic processing d110 → the arithmetic processing e111. At this time, since the task TB of the core B 104 is not at the start timing, the lock flag 117 is cleared, and in the exclusive control by the arithmetic processing b108, the lock flag 117 can be immediately set and written to the shared data 116. When the writing to the shared data 116 is completed, the lock flag 117 is cleared and the set trial counter 118 remains “0”, so that the exclusive control process is terminated.
時刻t501では、コアA103のタスクTA1が初回起動し、タスクTA1に含まれる演算処理f112が実行される。演算処理f112も排他制御を行うが、直ちにロックフラグ117をセットすることができる。そして演算処理f112は共有データ116の値を読込むとCAN通信インタフェース122を介してCAN通信線102への送信処理を行う。 At time t501, the task TA1 of the core A103 is activated for the first time, and the arithmetic processing f112 included in the task TA1 is executed. The calculation process f112 also performs exclusive control, but the lock flag 117 can be set immediately. When the value of the shared data 116 is read, the arithmetic processing f112 performs transmission processing to the CAN communication line 102 via the CAN communication interface 122.
時刻t502では、コアB104のタスクTBが初回起動し、タスクTBに含まれる演算処理g113〜演算処理i115が、演算処理g113→演算処理h114→演算処理i115の初期設定の順序で実行される。第3の演算処理としての演算処理h114の実行開始時には、ロックフラグ117はクリアされているため、演算処理f112と同様、演算処理h114は直ちにロックフラグ117をセットすることができる。 At time t502, the task TB of the core B 104 is activated for the first time, and the arithmetic processing g113 to arithmetic processing i115 included in the task TB are executed in the order of initial setting of the arithmetic processing g113 → the arithmetic processing h114 → the arithmetic processing i115. Since the lock flag 117 is cleared at the start of the execution of the arithmetic processing h114 as the third arithmetic processing, the arithmetic processing h114 can immediately set the lock flag 117 as in the arithmetic processing f112.
続いて、コアB104で演算処理h114を実行中に、時刻t503(=t500+(タスクTA0の周期tA))になり、コアA103で再びタスクTA0が起動する。ここでも、管理処理106は超過時セット試行回数120の値が「0」であることから、実行順序の変更は不要であると判断し、時刻t500での起動時と同じ順序で、演算処理a107〜演算処理e111が実行される。ただし、共有データ116に書込みアクセスする演算処理b108の開始時間になっても、コアB104の演算処理h114によりロックフラグ117がセットされたままであるため、演算処理b108は直ちにロックフラグ117をセットすることはできず、図3で示したように、セット試行を繰り返す。ロックフラグ117のセットを失敗する毎に、セット試行カウンタ118がインクリメントされる。そして時刻t504において、セット試行カウンタ118の値がセット試行回数閾値(「50」)を超過する。それでもなお、演算処理b108はロックフラグ117がクリアされるまでセット試行を繰り返す。 Subsequently, while the arithmetic processing h <b> 114 is being executed in the core B <b> 104, the time t <b> 503 (= t500 + (task TA <b> 0 cycle tA)) is reached, and the task TA <b> 0 is activated again in the core A <b> 103. Again, since the value of the excess set trial count 120 is “0”, the management process 106 determines that it is not necessary to change the execution order, and performs the arithmetic process a107 in the same order as that at the time t500. ~ Calculation process e111 is executed. However, since the lock flag 117 remains set by the calculation process h114 of the core B 104 even when the start time of the calculation process b108 for writing access to the shared data 116 is reached, the calculation process b108 immediately sets the lock flag 117. The set trial is repeated as shown in FIG. Each time the setting of the lock flag 117 fails, the set trial counter 118 is incremented. At time t504, the value of the set trial counter 118 exceeds the set trial count threshold (“50”). Nevertheless, the calculation process b108 repeats the set trial until the lock flag 117 is cleared.
次に、時刻t505において、演算処理h114が共有データ116への書込みを終了し、ロックフラグ117をクリアすると、セット試行を繰り返していた演算処理b108はロックフラグ117をセットできるようになる。このとき、セット試行カウンタ118はこの実施の形態1では「90」をセットするものとする。そして共有データ116へ書込みアクセスし、ロックフラグ117をクリア後、セット試行カウンタ118の値(「90」)の方がセット試行回数閾値(「50」)より大きいことから、超過時セット試行回数120にセット試行カウンタ118の値(「90」)を格納し、セット試行カウンタ118をリセットする。そして演算処理b108が終了すると、演算処理c109〜演算処理e111が実行される。 Next, at time t505, when the arithmetic processing h114 finishes writing to the shared data 116 and clears the lock flag 117, the arithmetic processing b108 that has repeated the setting trial can set the lock flag 117. At this time, the set trial counter 118 is set to “90” in the first embodiment. After the write access to the shared data 116 and the lock flag 117 being cleared, the value of the set trial counter 118 (“90”) is larger than the set trial count threshold (“50”). Is stored with the value of the set trial counter 118 (“90”), and the set trial counter 118 is reset. When the calculation process b108 ends, the calculation processes c109 to e111 are executed.
起動するタスクTA1の演算処理f112の処理内容は、時刻t501と同じであるため、省略する。 Since the processing content of the calculation processing f112 of the task TA1 to be started is the same as that at time t501, the description is omitted.
次に、時刻t506において再びタスクTA0が起動する。ここで管理処理106は、超過時セット試行回数120の値が「90」であり、「0」より大きいことから、超過時セット試行回数120(「90」)を用いてセット試行時間を算出する。セット試行時間は[10[μs]×90=0.9[ms]]と算出することができる。そして図2の演算処理時間テーブル121を参照し、セット試行時間0.9[ms]に最も近い処理時間を持つ演算処理を検索する。これにより、処理時間が1.0[ms]である演算処理d110が選択される。そこで演算処理b108の前に、選択した演算処理d110を実行するように、実行順序を変更する。すなわちタスクTA0は、時刻t500、t503での起動時には、演算処理a107→演算処理b108→演算処理c109→演算処理d110→演算処理e111の順に実行されていたが、時刻t506以降は、演算処理a107→演算処理d110→演算処理b108→演算処理c109→演算処理e111の順に実行されることになる。次に超過時セット試行回数120を「0」にリセットし、変更した実行順序に従って、演算処理a107〜演算処理e111の実行を開始する。時刻t506でのタスクTA0の起動中は、コアB104のタスクTBは起動タイミングではないため、演算処理b108は直ちにロックフラグ117をセットして共有データ116へ書込むことができる。よって、タスクTA0の総処理時間は、時刻t500に起動したときの総処理時間と同じになる。 Next, at time t506, the task TA0 is activated again. Here, since the value of the excess set trial count 120 is “90” and larger than “0”, the management process 106 calculates the set trial time using the excess set trial count 120 (“90”). . The set trial time can be calculated as [10 [μs] × 90 = 0.9 [ms]]. Then, the arithmetic processing time table 121 in FIG. 2 is referred to, and the arithmetic processing having the processing time closest to the set trial time 0.9 [ms] is searched. Thereby, the calculation process d110 whose processing time is 1.0 [ms] is selected. Therefore, the execution order is changed so that the selected calculation process d110 is executed before the calculation process b108. That is, the task TA0 was executed in the order of the arithmetic processing a107 → the arithmetic processing b108 → the arithmetic processing c109 → the arithmetic processing d110 → the arithmetic processing e111 at the time t500 and t503, but after the time t506, the arithmetic processing a107 → The calculation process d110, the calculation process b108, the calculation process c109, and the calculation process e111 are executed in this order. Next, the excess set trial count 120 is reset to “0”, and the execution of the arithmetic processing a107 to arithmetic processing e111 is started in accordance with the changed execution order. While the task TA0 is being activated at time t506, the task TB of the core B 104 is not at the activation timing. Therefore, the arithmetic processing b108 can immediately set the lock flag 117 and write to the shared data 116. Therefore, the total processing time of task TA0 is the same as the total processing time when started at time t500.
次に、時刻t507(=t502+(タスクTBの周期tB))において、コアB104のタスクTBが起動する。時刻t502と同様、演算処理h114が直ちにロックフラグ117をセットすることができる。 Next, at time t507 (= t502 + (task TB cycle tB)), the task TB of the core B 104 starts. Similar to time t502, the calculation process h114 can immediately set the lock flag 117.
次に、時刻t508(=t6+(タスクTA0の周期tA))において、タスクTA0が起動する。管理処理106は超過時セット試行回数120の値が「0」であることから、実行順序の変更は不要であると判断し、時刻t506で決定した実行順序で、演算処理a107〜演算処理e111の実行を開始する。これにより、演算処理b108の前に演算処理d110が実行される。従って時刻t503での起動時と異なり、時刻t509で演算処理h114がロックフラグ117をクリアして処理を終了した後、時刻t510に演算処理b108が起動するようになるため、演算処理b108はセット試行を繰り返すことなく、ロックフラグ117をセットできる。このようにすることで、タスクTA0は、周期tAを守りながら演算処理g113との排他制御を避けることができ、総処理時間は時刻t500や時刻t506に起動したときの総処理時間と同じとなり、時刻t503に起動したときよりも、セット試行時間0.9 ms分短縮することができる。 Next, at time t508 (= t6 + (task TA0 cycle tA)), task TA0 is activated. Since the value of the excess set trial count 120 is “0”, the management process 106 determines that it is not necessary to change the execution order, and the arithmetic process a107 to the arithmetic process e111 are performed in the execution order determined at time t506. Start execution. Thereby, the calculation process d110 is executed before the calculation process b108. Therefore, unlike the activation at time t503, the calculation process b108 starts at time t510 after the calculation process h114 clears the lock flag 117 and ends the process at time t509. The lock flag 117 can be set without repeating the above. In this way, the task TA0 can avoid exclusive control with the arithmetic processing g113 while keeping the cycle tA, and the total processing time becomes the same as the total processing time when starting at the time t500 or the time t506, The set trial time can be shortened by 0.9 ms compared to when the system is started at time t503.
このように、ECU101は、演算処理b108のセット試行回数が所定の回数を超過した場合に、そのセット試行時間に最も近い処理時間を持つ演算処理d110を演算処理b108の前に実行するように、実行順序を変更する。これにより、実行順序を変更する前と比べて、演算処理b108の処理時間をセット試行時間分短縮することができ、結果的にタスクTA0の総処理時間が短くなる。従って、排他制御によるコアA103の処理負荷を低減し、メモリ105のエラーチェック等の異常検出機能を備えるバックグラウンドタスクの処理時間を長く実行可能となり、異常が存在する場合に早く検出することができるようになる。 As described above, when the number of set trials of the calculation process b108 exceeds a predetermined number, the ECU 101 executes the calculation process d110 having the process time closest to the set trial time before the calculation process b108. Change the execution order. As a result, the processing time of the arithmetic processing b108 can be shortened by the set trial time compared to before the execution order is changed, and as a result, the total processing time of the task TA0 is shortened. Therefore, it is possible to reduce the processing load of the core A 103 due to exclusive control, to execute the processing time of the background task having an abnormality detection function such as an error check of the memory 105 for a long time, and to detect early when an abnormality exists. It becomes like this.
また、この実施の形態1によれば、コアA103のどの演算処理が共有データ116へアクセスするかのみ把握しておけば、コアB104でどのような演算処理が実行されるか把握していなくても、適切に実行順序を変更することができ、排他制御を達成しながら、セット試行時間を抑制し、排他制御に関わる処理時間を短くすることができる。 Further, according to the first embodiment, if only the calculation process of the core A 103 accesses the shared data 116, the calculation process is not executed in the core B 104. However, the execution order can be appropriately changed, and the set trial time can be suppressed and the processing time related to the exclusive control can be shortened while achieving the exclusive control.
なお、この実施の形態1では、演算処理時間テーブル121にはあらかじめ演算処理b108を除く演算処理a107〜演算処理e111の処理時間が記載されているものとしたが、実行中に計測し、記録するものであってもよい。 In the first embodiment, it is assumed that the processing time of the arithmetic processing a107 to the arithmetic processing e111 excluding the arithmetic processing b108 is described in advance in the arithmetic processing time table 121, but it is measured and recorded during execution. It may be a thing.
また、この実施の形態1では、コアA103のタスクTA0に含まれる演算処理b108を除く全ての演算処理a107〜演算処理e111を、実行順序の変更に対応可能としたが、実行順序を変更してはならない演算処理は、変更対象から除外するものであってもよい。 In the first embodiment, all the arithmetic processes a107 to e111 except for the arithmetic process b108 included in the task TA0 of the core A103 can be changed to change the execution order. However, the execution order is changed. The arithmetic processing that should not be performed may be excluded from the change target.
また、この実施の形態1では、セット試行回数閾値を「50」に設定したが、「0」として、排他制御の重複が発生する場合には、常に実行順序を変更するものであってもよい。 In the first embodiment, the set trial count threshold value is set to “50”. However, when “0” is set and duplication of exclusive control occurs, the execution order may always be changed. .
実施の形態2.
次に、この発明の実施の形態2に係る電子制御装置について説明する。図6は、この発明の実施の形態2に係る電子制御装置の構成図であって、自動車に搭載される電子制御装置としてのECUを示している。図6において、図1と同一、又は相当部分には同一符号を付してあり、その部分の説明は省略する。ECU101は、メモリ105内に、演算処理実行順序テーブル604と演算処理実行FIFO605を保持している。また、メモリ105の他に、不揮発メモリ603を備える。
Embodiment 2. FIG.
Next, an electronic control unit according to Embodiment 2 of the present invention will be described. FIG. 6 is a configuration diagram of an electronic control device according to Embodiment 2 of the present invention, and shows an ECU as an electronic control device mounted on an automobile. In FIG. 6, the same reference numerals are given to the same or corresponding parts as in FIG. The ECU 101 holds an arithmetic processing execution order table 604 and an arithmetic processing execution FIFO 605 in the memory 105. In addition to the memory 105, a nonvolatile memory 603 is provided.
演算処理a107〜演算処理e111は、自動車の制御に関わる演算に加えて、実行毎に自身のID(a〜e)を演算処理実行FIFO605へ格納する。演算処理f112は、共有データ116への読込みアクセス、CANメッセージの送信トリガの他、制御フロー監視機能を備え、演算処理実行順序テーブル604と演算処理実行FIFO605を参照して、演算処理a107〜演算処理e111が正しい実行順序で実行されているか監視する。演算処理f112は、実行毎に演算処理実行FIFO605を参照し、格納されている値が、演算処理実行順序テーブル604と等しいか否かを確認し、等しくない場合には異常と判断する。 Arithmetic processing a <b> 107 to arithmetic processing e <b> 111 store their IDs (a to e) in the arithmetic processing execution FIFO 605 every time they are executed, in addition to calculations related to automobile control. The arithmetic processing f112 has a control flow monitoring function in addition to read access to the shared data 116, a CAN message transmission trigger, and refers to the arithmetic processing execution order table 604 and the arithmetic processing execution FIFO 605 with reference to the arithmetic processing a107 to arithmetic processing. It is monitored whether e111 is executed in the correct execution order. The arithmetic processing f112 refers to the arithmetic processing execution FIFO 605 for each execution, checks whether or not the stored value is equal to the arithmetic processing execution order table 604, and determines that it is abnormal if not equal.
演算処理実行順序テーブル604は、演算処理a107〜演算処理e111の実行順序(インデックス)を記載したテーブルである。図7は、この発明の実施の形態2に係る電子制御装置における、実行順序変更前の演算処理実行順序テーブルを示す説明図であって、初期設定(デフォルト)での演算処理実行順序テーブル604の内容を示している。排他制御を実行する第1の演算処理としての演算処理b108を常に基準(「0」)とし、演算処理a107は演算処理b108よりひとつ前の「−1以下」、演算処理c109は演算処理b108の次に実行されるため「1」、演算処理d110は演算処理b108の2つ後に実行されるため「2」、演算処理e111は演算処理b108の3つ後に実行されるため「3以上」とする。 The arithmetic processing execution order table 604 is a table that describes the execution order (index) of the arithmetic processing a107 to arithmetic processing e111. FIG. 7 is an explanatory diagram showing an arithmetic processing execution order table before changing the execution order in the electronic control apparatus according to Embodiment 2 of the present invention. The arithmetic processing execution order table 604 in the initial setting (default) is shown in FIG. The contents are shown. The calculation process b108 as the first calculation process that executes the exclusive control is always set as a reference (“0”), the calculation process a107 is “−1 or less” before the calculation process b108, and the calculation process c109 is the calculation process b108. “1” for the next execution, “2” for the operation d110 after the operation b108, and “3 or more” for the operation e111 after the operation b108. .
演算処理実行FIFO605は、演算処理a107〜演算処理e111が実行される毎に、自身のID(a〜e)を格納するバッファである。演算処理a107〜演算処理e111の実行順に格納されるため、初期設定の実行順序で正しく実行された場合、演算処理a107→演算処理b108→演算処理c109→演算処理d110→演算処理e111の順に値が格納される。 The arithmetic processing execution FIFO 605 is a buffer that stores its own ID (a to e) every time the arithmetic processing a107 to arithmetic processing e111 are executed. Since they are stored in the execution order of the arithmetic processing a107 to the arithmetic processing e111, when they are correctly executed in the default execution order, the values are calculated in the order of the arithmetic processing a107 → the arithmetic processing b108 → the arithmetic processing c109 → the arithmetic processing d110 → the arithmetic processing e111. Stored.
不揮発メモリ603は、リセットなどにより電源を喪失しても、値を保持することが可能なメモリ105である。 The non-volatile memory 603 is a memory 105 that can retain a value even if the power is lost due to a reset or the like.
第1のプロセッサとしてのコアA103、第2のプロセッサとしてのコアB104による管理処理106、演算処理a107〜演算処理i115の実行については実施の形態1と同じであるため省略する。 Execution of the management processing 106 and the arithmetic processing a107 to arithmetic processing i115 by the core A103 as the first processor and the core B104 as the second processor is the same as that in the first embodiment, and therefore will be omitted.
第1の演算処理としての演算処理b108、第2の演算処理としての演算処理f112、第3の演算処理としての演算処理h114が、共有リソースとしての共有データ116へアクセスする際に実行する排他制御は、実施の形態1と同じであるため省略する。 Exclusive control executed when the arithmetic processing b108 as the first arithmetic processing, the arithmetic processing f112 as the second arithmetic processing, and the arithmetic processing h114 as the third arithmetic processing access the shared data 116 as the shared resource. Is omitted because it is the same as in the first embodiment.
次に、コアA103におけるタスクTA0の起動時の管理処理106を図8のフローチャートを用いて説明する。図8は、この発明の実施の形態2に係る電子制御装置における、コアA103で実行される管理処理106のタスクTA0の起動タイミングに関するフローチャートである。図8において、図4と同一の処理には同一符号を付してあり、これについては説明を省略する。管理処理106は、超過時セット試行回数120の値が「0」より大きい場合には、超過時セット試行回数120を用いて、入れ替え対象とする演算処理のインデックスを算出する(ステップS801)。この実施の形態2では、下記の式(1)を用いて入れ替え対象とする演算処理のインデックスを算出する。なお、除算結果は切り捨てとする。
(入れ替え対象とする演算処理のインデックス)
=(超過時セット試行回数120) / 50 + 1 ・・・・・式(1)
Next, the management process 106 when the task TA0 is activated in the core A103 will be described with reference to the flowchart of FIG. FIG. 8 is a flowchart relating to the start timing of task TA0 of management process 106 executed by core A103 in the electronic control apparatus according to Embodiment 2 of the present invention. In FIG. 8, the same processes as those in FIG. 4 are denoted by the same reference numerals, and description thereof will be omitted. When the value of the excess set trial count 120 is larger than “0”, the management process 106 uses the excess set trial count 120 to calculate the index of the arithmetic processing to be replaced (step S801). In the second embodiment, the index of the arithmetic processing to be replaced is calculated using the following equation (1). The division result is rounded down.
(Operation processing index to be replaced)
= (Number of set trials at the time of excess 120) / 50 + 1 Equation (1)
続いて、演算処理実行順序テーブル604を参照し、算出したインデックスを持つ演算処理が存在するか確認する(ステップS802)。存在する場合には、算出したインデックスを持つ演算処理と、共有データ116にアクセスするために排他制御を行う演算処理b108の実行順序を入れ替える(ステップS803)。そして演算処理b108を基準として、入れ替えた実行順序に従うように、演算処理実行順序テーブル604のインデックスを更新する(ステップS804)。一方、算出したインデックスを持つ演算処理が存在しない場合には、実行順序の入れ替えは行わない。 Subsequently, with reference to the arithmetic processing execution order table 604, it is confirmed whether there is an arithmetic processing having the calculated index (step S802). If it exists, the execution order of the arithmetic process having the calculated index and the arithmetic process b108 for performing exclusive control to access the shared data 116 are switched (step S803). Then, the index of the calculation process execution order table 604 is updated so as to follow the exchanged execution order based on the calculation process b108 (step S804). On the other hand, when there is no calculation process having the calculated index, the execution order is not changed.
次に、図8のフローチャートに従って動作する管理処理106と、演算処理の実行動作と、そのときのロックフラグ117と、セット試行カウンタ118と、超過時セット試行回数120を、図9のタイムチャートを用いて説明する。図9は、この発明の実施の形態2に係る電子制御装置における、演算処理a〜演算処理i、ロックフラグ、セット試行カウンタ、超過時セット試行回数に関するタイムチャートである。なお、管理処理106の処理時間は、このタイムチャート上には記載していない。 Next, the management processing 106 that operates according to the flowchart of FIG. 8, the execution operation of the arithmetic processing, the lock flag 117 at that time, the set trial counter 118, and the excess set trial count 120 are shown in the time chart of FIG. It explains using. FIG. 9 is a time chart regarding arithmetic processing a to arithmetic processing i, a lock flag, a set trial counter, and an excess set trial count in the electronic control apparatus according to Embodiment 2 of the present invention. Note that the processing time of the management process 106 is not described on this time chart.
図9に於いて、時刻t500から時刻t505までの動作は、時刻t501での演算処理f112を除き、実施の形態1と同じである。演算処理f112は、排他制御を伴う共有データ116の読込みや、CANメッセージの送信に加えて、演算処理実行順序テーブル604と演算処理実行FIFO605を参照して、演算処理a107〜e111が正しい実行順序で実行されているか監視する。ここでは、時刻t500で起動したタスクTA0の演算処理a107〜演算処理e111の実行順序は、演算処理実行順序テーブル604と等しいため、演算処理f112は正常であると判断する。 In FIG. 9, the operation from time t500 to time t505 is the same as that of the first embodiment except for the arithmetic processing f112 at time t501. The arithmetic processing f112 refers to the arithmetic processing execution order table 604 and the arithmetic processing execution FIFO 605 in addition to reading the shared data 116 accompanied by the exclusive control and transmitting the CAN message, so that the arithmetic processing a107 to e111 are executed in the correct execution order. Monitor whether it is running. Here, since the execution order of the arithmetic processing a107 to the arithmetic processing e111 of the task TA0 started at time t500 is equal to the arithmetic processing execution order table 604, it is determined that the arithmetic processing f112 is normal.
時刻t900(=t503+(タスクTA0の周期tA))では、再びタスクTA0が起動する。ここで管理処理106は、超過時セット試行回数120の値が「90」であり、「0」より大きいことから、超過時セット試行回数120(「90」)と前述の式(1)を用いて、入れ替え対象とする演算処理のインデックスを算出する。インデックスは「2」と算出することができる。そして図7の演算処理実行順序テーブル604を参照し、インデックス2を持つ演算処理が存在するか確認する。そこで演算処理d110がインデックス「2」を持つため、演算処理b108と演算処理d110の実行順序を入れ替え、図10に示すように演算処理実行順序テーブル604のインデックスを更新する。すなわち図10は、この発明の実施の形態2に係る電子制御装置における、実行順序変更後の演算処理実行順序テーブルを示す説明図である。タスクTA0は、時刻t900以降は、演算処理a107→演算処理d110→演算処理c109→演算処理b108→演算処理e111の順に実行されることになる。次に、超過時セット試行回数120を「0」にリセットし、変更した実行順序に従って、演算処理a107〜演算処理e111の実行を開始する。時刻t900でのタスクTA0の起動中は、コアB104のタスクTBは起動タイミングではないため、演算処理b108は直ちにロックフラグ117をセットして共有データ116へ書込むことができる。よって、タスクTA0の総処理時間は、時刻t500に起動したときの総処理時間と同じになる。 At time t900 (= t503 + (period tA of task TA0)), task TA0 is activated again. Here, since the value of the excess set trial count 120 is “90” and larger than “0”, the management process 106 uses the excess set trial count 120 (“90”) and the above-described equation (1). Then, the index of the arithmetic processing to be replaced is calculated. The index can be calculated as “2”. Then, with reference to the arithmetic processing execution order table 604 of FIG. 7, it is confirmed whether there is an arithmetic processing having index 2. Therefore, since the calculation process d110 has the index “2”, the execution order of the calculation process b108 and the calculation process d110 is switched, and the index of the calculation process execution order table 604 is updated as shown in FIG. That is, FIG. 10 is an explanatory diagram showing an arithmetic processing execution order table after the execution order is changed in the electronic control apparatus according to Embodiment 2 of the present invention. The task TA0 is executed in the order of the arithmetic processing a107 → the arithmetic processing d110 → the arithmetic processing c109 → the arithmetic processing b108 → the arithmetic processing e111 after the time t900. Next, the excess set trial count 120 is reset to “0”, and the execution of the arithmetic processing a107 to arithmetic processing e111 is started according to the changed execution order. While the task TA0 is being activated at time t900, the task TB of the core B 104 is not at the activation timing, so the arithmetic processing b108 can immediately set the lock flag 117 and write it to the shared data 116. Therefore, the total processing time of task TA0 is the same as the total processing time when started at time t500.
次に、時刻t901において、コアA103のタスクTA1が起動する。時刻t501の場合と同様、演算処理f112は演算処理実行順序テーブル604と演算処理実行FIFO605を参照して、演算処理a107〜演算処理e111が正しい実行順序で実行されているか監視する。時刻t900で起動したタスクTA0の演算処理a107〜演算処理e111の実行順序は、時刻t500やt503からは変更されているが、時刻t900での実行順序の変更と同時に、演算処理実行順序テーブル604も更新されたため、演算処理a107〜演算処理e111の実行順序と演算処理実行順序テーブル604の示す実行順序は等しくなる。これにより演算処理f112は正常であると判断することができる。 Next, at time t901, the task TA1 of the core A103 is activated. As in the case of the time t501, the arithmetic processing f112 refers to the arithmetic processing execution order table 604 and the arithmetic processing execution FIFO 605 and monitors whether the arithmetic processing a107 to the arithmetic processing e111 are executed in the correct execution order. Although the execution order of the arithmetic processing a107 to arithmetic processing e111 of the task TA0 started at time t900 has been changed from time t500 and t503, the arithmetic processing execution order table 604 also changes simultaneously with the execution order change at time t900. Because of the update, the execution order of the arithmetic processing a107 to arithmetic processing e111 is equal to the execution order indicated by the arithmetic processing execution order table 604. Thereby, it can be determined that the arithmetic processing f112 is normal.
次に、時刻t902(=t502+(タスクTBの周期tB))において、コアB104のタスクTBが起動する。時刻t502の場合と同様、演算処理h114が直ちにロックフラグ117をセットすることができる。 Next, at time t902 (= t502 + (task TB cycle tB)), the task TB of the core B 104 starts. As in the case of time t502, the calculation process h114 can immediately set the lock flag 117.
次に、時刻t903(=t900+(タスクTA0の周期tA))において、タスクTA0が起動する。管理処理106は超過時セット試行回数120の値が「0」であることから、実行順序の変更は不要であると判断し、時刻t900で決定した実行順序で、演算処理a107〜演算処理e111の実行を開始する。従って、時刻t503での起動時と異なり、時刻t904で演算処理h114がロックフラグ117をクリアして処理を終了した後、時刻t905に演算処理b108が開始されるようになるため、演算処理b108はセット試行を繰り返すことなく、ロックフラグ117をセットできる。このようにすることで、タスクTA0は、周期tAを守りながら演算処理g113との排他制御を避けることができ、総処理時間は、時刻t500や時刻t900に起動したときの総処理時間と同じとなり、時刻t503に起動したときよりも、セット試行時間分、短縮することができる。 Next, at time t903 (= t900 + (task TA0 cycle tA)), task TA0 is activated. Since the value of the excess set trial count 120 is “0”, the management process 106 determines that it is not necessary to change the execution order, and the calculation process a107 to the calculation process e111 are performed in the execution order determined at time t900. Start execution. Therefore, unlike the activation at time t503, the calculation process b108 starts at time t905 after the calculation process h114 clears the lock flag 117 and ends the process at time t904. The lock flag 117 can be set without repeating setting attempts. In this way, the task TA0 can avoid exclusive control with the arithmetic processing g113 while keeping the cycle tA, and the total processing time is the same as the total processing time when starting at the time t500 or the time t900. , It can be shortened by the set trial time compared to when it is started at time t503.
次に、時刻t906において、バックグラウンドタスクがメモリ105エラーを検出し、メモリ105のリセットが必要になったとする。そこで管理処理106は、t900で更新した演算処理実行順序テーブル604を不揮発メモリ603に書込む。管理処理106は処理を再開する際に不揮発メモリ603を参照し、演算処理実行順序テーブル604へコピーすることによって、再開後の初回のタスクTA0の起動時から、t900で変更した実行順序に従って演算処理a107〜演算処理e111を実行することができるようになる。 Next, it is assumed that at time t906, the background task detects a memory 105 error and the memory 105 needs to be reset. Therefore, the management processing 106 writes the arithmetic processing execution order table 604 updated at t900 into the nonvolatile memory 603. The management process 106 refers to the non-volatile memory 603 when resuming the process, and copies it to the calculation process execution order table 604, so that the calculation process is performed according to the execution order changed at t900 from the start of the first task TA0 after the restart. a107 to arithmetic processing e111 can be executed.
このように、ECU101は、演算処理b108のセット試行回数が所定の回数を超過した場合に、その超過回数に相当するインデックスを持つ演算処理d110を、演算処理b108の実行順序と入れ替える。これにより、実施の形態1と同様に、実行順序を変更する前と比べて、演算処理b108の処理時間をセット試行時間分短縮することができる。従って、排他制御によるコアA103の処理負荷を低減し、メモリ105のエラーチェック等の異常検出機能を備えるバックグラウンドタスクの処理時間を長く実行可能となり、異常が存在する場合に早く検出することができるようになる。 As described above, when the set trial count of the calculation process b108 exceeds a predetermined number, the ECU 101 replaces the calculation process d110 having an index corresponding to the excess count with the execution order of the calculation process b108. As a result, as in the first embodiment, the processing time of the arithmetic processing b108 can be shortened by the set trial time compared to before the execution order is changed. Therefore, it is possible to reduce the processing load of the core A 103 due to exclusive control, to execute the processing time of the background task having an abnormality detection function such as an error check of the memory 105 for a long time, and to detect early when an abnormality exists. It becomes like this.
また、この実施の形態2によれば、入れ替え対象とする演算処理の処理時間が明らかになっていなくても、実行順序を変更することができ、演算処理の処理時間の測定といった開発工数を削減することができる。 Further, according to the second embodiment, the execution order can be changed even if the processing time of the arithmetic processing to be replaced is not clear, and the development man-hour such as measurement of the processing time of the arithmetic processing is reduced. can do.
さらにまた、この実施の形態2では、ECU101が不揮発メモリ603を備え、演算処理の実行順序を不揮発メモリ603に書込むことで、メモリ105リセットや電源喪失によって揮発するメモリ105がクリアされた後も、変更後の演算処理の実行順序に従って演算処理を実行することができ、リセットのたびに、排他制御処理の実行タイミングの重複を検出して実行順序を変更する、という処理を行わずに済み、総処理時間を短縮することができる。 Furthermore, in the second embodiment, the ECU 101 includes the nonvolatile memory 603, and the execution order of the arithmetic processing is written in the nonvolatile memory 603, so that the memory 105 that is volatilized by resetting the memory 105 or power loss is cleared. , The calculation process can be executed in accordance with the execution order of the calculation process after the change, and it is not necessary to perform the process of detecting the duplication of the execution timing of the exclusive control process and changing the execution order at each reset. Total processing time can be reduced.
さらにまた、ECU101は演算処理実行FIFO605を備え、演算処理実行順序テーブル604と比較することにより、演算処理の実行順序が正しいか否かを判断する。演算処理実行順序テーブル604を用いることで、排他制御の実行タイミングの重複により演算処理の実行順序が変更されても、演算処理実行順序テーブル604も変更された実行順序を示すように更新されるため、演算処理の実行順序を常に監視することができる。 Furthermore, the ECU 101 includes an arithmetic processing execution FIFO 605, and compares the arithmetic processing execution order table 604 with each other to determine whether the arithmetic processing execution order is correct. By using the arithmetic processing execution order table 604, even if the execution order of arithmetic processing is changed due to duplication of the exclusive control execution timing, the arithmetic processing execution order table 604 is also updated to indicate the changed execution order. The execution order of the arithmetic processing can always be monitored.
なお、この実施の形態2では、排他制御の実行タイミングが重複した演算処理を、式(1)に従って、常に後続の演算処理の実行順序と変更するように、演算処理実行順序テーブル604を設定していた。ただし、本発明はこの式に限定されるものではなく、前の演算処理の実行順序とも変更可能なより複雑な条件式を用いるものであってもよい。 In the second embodiment, the calculation process execution order table 604 is set so that the calculation process with the duplicated execution timing of the exclusive control is always changed to the execution order of the subsequent calculation process according to the equation (1). It was. However, the present invention is not limited to this expression, and a more complicated conditional expression that can change the execution order of the previous arithmetic processing may be used.
実施の形態3.
次に、この発明の実施の形態3に係る電子制御装置について説明する。図11は、この発明の実施の形態3に係る電子制御装置の構成図であって、自動車に搭載される電子制御装置としてのECUを示している。図11において、図6と同一、相当部分には同一符号を付してあり、その部分の説明を省略する。ECU101は、メモリ105内に、演算処理実行順序記憶テーブル1101と、変更要求フラグ1102を保持している。
Embodiment 3 FIG.
Next, an electronic control unit according to Embodiment 3 of the present invention will be described. FIG. 11 is a configuration diagram of an electronic control device according to Embodiment 3 of the present invention, and shows an ECU as an electronic control device mounted on an automobile. In FIG. 11, the same reference numerals are given to the same and corresponding parts as in FIG. The ECU 101 holds an arithmetic processing execution order storage table 1101 and a change request flag 1102 in the memory 105.
演算処理実行順序記憶テーブル1101は、演算処理a107〜演算処理e111の実行順序の変更を繰り返した場合に、その中で超過時セット試行回数120が最小値であったときの演算処理実行順序(最小時実行順序)と、最小超過時セット試行回数120を記憶するテーブルである。演算処理の実行前の初期設定では、図12に示すように、何も記載されていない。すなわち、図12は、この発明の実施の形態3に係る電子制御装置における、実行順序変更前の演算処理実行順序記憶テーブルを示す説明図である。 The arithmetic processing execution order storage table 1101 stores the arithmetic processing execution order (maximum) when the excess set trial count 120 is the minimum value when the execution order of the arithmetic processing a107 to arithmetic processing e111 is repeatedly changed. This is a table for storing a minimum execution order) and a minimum excess set trial count 120. In the initial setting before the execution of the arithmetic processing, nothing is described as shown in FIG. That is, FIG. 12 is an explanatory diagram showing an arithmetic processing execution order storage table before the execution order is changed in the electronic control apparatus according to Embodiment 3 of the present invention.
変更要求フラグ1102は、タスクTBの演算処理の実行順序変更を要求するために、コアA103の管理処理106がセットするフラグである。コアB104の管理処理106はタスクTB起動時にこのフラグを参照する。 The change request flag 1102 is a flag that is set by the management process 106 of the core A 103 in order to request a change in the execution order of the calculation process of the task TB. The management process 106 of the core B 104 refers to this flag when the task TB is activated.
コアA103、コアB104による管理処理106、演算処理a107〜演算処理i115の実行方法は実施の形態1と同じであるため省略する。 Since the execution method of the management process 106 and the calculation process a107 to the calculation process i115 by the core A103 and the core B104 is the same as that of the first embodiment, the description is omitted.
演算処理b108、演算処理f112、演算処理h114が共有データ116へアクセスする際に実行する排他制御は、実施の形態1と同じであるため省略する。 The exclusive control executed when the arithmetic process b108, the arithmetic process f112, and the arithmetic process h114 access the shared data 116 is the same as that in the first embodiment, and therefore will be omitted.
次に、コアA103におけるタスクTA0起動時の管理処理106を図13のフローチャートを用いて説明する。図13は、この発明の実施の形態3に係る電子制御装置における、コアAで実行される管理処理のタスクTA0の起動タイミングにおけるフローチャートである。図13において、図8と同一の処理には同一符号を付しており、その部分の説明を省略する。図13において、管理処理106は、超過時セット試行回数120の値が「0」より大きい場合には、演算処理実行順序記憶テーブル1101の最小超過時セット試行回数120と、現在の超過時セット試行回数120と比較し(ステップS1301)、現在の超過時セット試行回数120の方が小さければ、演算処理実行順序記憶テーブル1101に、現在の演算処理実行順序と、現在の超過時セット試行回数120を格納する(ステップS1303)。 Next, the management processing 106 when the task TA0 is activated in the core A 103 will be described with reference to the flowchart of FIG. FIG. 13 is a flowchart at the start timing of the task TA0 of the management process executed by the core A in the electronic control apparatus according to Embodiment 3 of the present invention. In FIG. 13, the same processes as those in FIG. 8 are denoted by the same reference numerals, and description thereof is omitted. In FIG. 13, when the value of the excess set trial count 120 is greater than “0”, the management process 106 sets the minimum excess set trial count 120 in the arithmetic processing execution order storage table 1101 and the current excess set trial. Compared with the number of times 120 (step S1301), if the current overtime set trial count 120 is smaller, the current arithmetic processing execution order and the current overtime set trial count 120 are stored in the arithmetic processing execution order storage table 1101. Store (step S1303).
現在の超過時セット試行回数120の方が演算処理実行順序記憶テーブル1101の最小超過時セット試行回数120より小さくない場合には、演算処理実行順序記憶テーブル1101の最小超過時セット試行回数120に値が記載されているか判断し(ステップS1302)、演算処理実行順序記憶テーブル1101の最小超過時セット試行回数120に値が記載されている、すなわち現在の超過時セット試行回数120の方が大きい場合には、演算処理の実行順序の変更は不要であると判断し、超過時セット試行回数120のリセットのみ実行する(ステップS405)。演算処理実行順序記憶テーブル1101の最小超過時セット試行回数120に値が未記載である場合には、現在の超過時セット試行回数120の方が小さい場合と同様に、演算処理実行順序記憶テーブル1101に、現在の演算処理実行順序と、現在の超過時セット試行回数120を格納する(ステップS1303)。 If the current excess set trial count 120 is not smaller than the minimum excess set trial count 120 in the arithmetic processing execution order storage table 1101, the value is set to the minimum excess set trial count 120 in the arithmetic processing execution order storage table 1101. Is described (step S1302), and a value is written in the minimum excess set trial count 120 in the arithmetic processing execution order storage table 1101, that is, the current excess set trial count 120 is larger. Determines that it is not necessary to change the execution order of the arithmetic processing, and only resets the excess set trial count 120 (step S405). When a value is not described in the minimum excess set trial count 120 in the arithmetic processing execution order storage table 1101, the arithmetic processing execution order storage table 1101 is the same as when the current excess set trial count 120 is smaller. The current calculation processing execution order and the current excess set trial count 120 are stored (step S1303).
続いて、インデックスの算出を経て(ステップS801)、算出したインデックスを持つ演算処理が存在しない場合には、実行順序を変更できないため、管理処理106は変更要求フラグ1102をセットし、超過時セット試行回数120のリセットを実行する(ステップS405)。 Subsequently, after the calculation of the index (step S801), if there is no calculation process having the calculated index, the execution order cannot be changed. Therefore, the management process 106 sets the change request flag 1102 and tries to set the excess time. Reset 120 times is executed (step S405).
次に、コアB104におけるタスクTB起動時の管理処理106を図14のフローチャートを用いて説明する。図14は、この発明の実施の形態3に係る電子制御装置における、コアBで実行される管理処理のタスクTBの起動タイミングにおけるフローチャートである。図14において、管理処理106は、変更要求フラグ1102がセットされているか確認し(ステップS1401)、セットされている場合には、排他制御を行う第3の演算処理としての演算処理h114と、その前に実行される第4の演算処理としての演算処理g113の実行順序を入れ替え(ステップS1402)、変更要求フラグ1102をクリアし(ステップS1403)、変更した実行順序に従って演算処理g113〜i115の実行を開始し、管理処理106を終了する。一方、変更要求フラグ1102がセットされていない場合には、実行順序の変更は不要であるため、初期設定された実行順序に従って演算処理g113〜i115の実行を開始し、管理処理106を終了する。なお、演算処理i115は、演算処理g113とともにこの発明における第4の演算処理に相当する Next, the management process 106 when the task TB is activated in the core B 104 will be described with reference to the flowchart of FIG. FIG. 14 is a flowchart at the start timing of the task TB of the management process executed by the core B in the electronic control apparatus according to Embodiment 3 of the present invention. In FIG. 14, the management process 106 checks whether or not the change request flag 1102 is set (step S1401). If the change request flag 1102 is set, the calculation process h114 as a third calculation process for performing exclusive control, The execution order of the arithmetic process g113 as the fourth arithmetic process executed before is changed (step S1402), the change request flag 1102 is cleared (step S1403), and the arithmetic processes g113 to i115 are executed according to the changed execution order. The management process 106 is ended. On the other hand, if the change request flag 1102 is not set, it is not necessary to change the execution order, so the execution of the arithmetic processes g113 to i115 is started according to the initially set execution order, and the management process 106 is terminated. Arithmetic processing i115 corresponds to arithmetic processing g113 and the fourth arithmetic processing in the present invention.
次に、図13と図14のフローチャートに従って動作する管理処理106、演算処理の実行動作と、そのときのロックフラグ117と、セット試行カウンタ118と、超過時セット試行回数120と、変更要求フラグ1102を、図15のタイムチャートを用いて説明する。図15は、この発明の実施の形態3に係る電子制御装置における、演算処理a〜演算処理i、ロックフラグ、セット試行カウンタ、超過時セット試行回数、変更要求フラグのタイムチャートである。なお、管理処理106の処理時間は、このタイムチャート上には記載していない。 Next, the management processing 106 that operates according to the flowcharts of FIGS. 13 and 14, the execution operation of the arithmetic processing, the lock flag 117 at that time, the set trial counter 118, the excess set trial count 120, and the change request flag 1102 Will be described with reference to the time chart of FIG. FIG. 15 is a time chart of arithmetic processing a to arithmetic processing i, lock flag, set trial counter, excess set trial count, and change request flag in the electronic control apparatus according to Embodiment 3 of the present invention. Note that the processing time of the management process 106 is not described on this time chart.
図15において、時刻t500から時刻t504までの動作は、実施の形態1と同じであるため省略する。 In FIG. 15, the operation from time t500 to time t504 is the same as that in the first embodiment, and is therefore omitted.
時刻t1500において、演算処理h114が共有データ116への書込みを終了し、ロックフラグ117をクリアすると、セット試行を繰り返していた演算処理b108はロックフラグ117をセットできるようになる。このとき、セット試行カウンタ118は「280」を指しているものとする。そして共有データ116へ書込みアクセスし、ロックフラグ117をクリア後、セット試行カウンタ118の値(「280」)の方がセット試行回数閾値119(「50」)より大きいことから、超過時セット試行回数120にセット試行カウンタ118の値(「280」)を格納し、セット試行カウンタ118をリセットする。そして演算処理b108が終了すると、演算処理c109〜演算処理e111が実行される。 At time t1500, when the arithmetic processing h114 finishes writing to the shared data 116 and clears the lock flag 117, the arithmetic processing b108 that has repeated the setting attempt can set the lock flag 117. At this time, it is assumed that the set trial counter 118 points to “280”. After the write access to the shared data 116 and the lock flag 117 being cleared, the value of the set trial counter 118 (“280”) is larger than the set trial count threshold 119 (“50”). The value of the set trial counter 118 (“280”) is stored in 120 and the set trial counter 118 is reset. When the calculation process b108 ends, the calculation processes c109 to e111 are executed.
次に、時刻t1501(=t503+(タスクTA0の周期tA))において、再びタスクTA0が起動する。ここで管理処理106は、超過時セット試行回数120の値が「280」であり、「0」より大きいことから、図12の演算処理実行順序記憶テーブル1101の最小超過時セット試行回数120と現在の超過時セット試行回数120を比較する。このとき、最小超過時セット試行回数120が記載されていないことから、図16に示すように、現在の演算処理実行順序(a→b→c→d→e)と、現在の超過時セット試行回数120(「280」)を格納して更新する。すなわち、図16は、この発明の実施の形態3に係る電子制御装置における、1回目の実行順序変更後の演算処理実行順序記憶テーブルを示す説明図である。 Next, at time t1501 (= t503 + (task TA0 cycle tA)), task TA0 is started again. Here, since the value of the excess set trial count 120 is “280” and larger than “0”, the management process 106 determines that the minimum excess set trial count 120 and the current value in the arithmetic processing execution order storage table 1101 of FIG. Compare the number of set trials 120 when exceeded. At this time, since the minimum excess set trial count 120 is not described, as shown in FIG. 16, the current calculation processing execution order (a → b → c → d → e) and the current excess set trial The number of times 120 (“280”) is stored and updated. That is, FIG. 16 is an explanatory diagram showing an arithmetic processing execution order storage table after the first execution order change in the electronic control apparatus according to Embodiment 3 of the present invention.
次に超過時セット試行回数120(「280」)と前述の式(1)を用いて、入れ替え対象とする演算処理のインデックスを算出する。インデックスは「6」と算出することができる。そして図7の演算処理実行順序テーブル604を参照し、インデックス6を持つ演算処理が存在するか確認する。そこで演算処理e111がインデックス「3以上」であるため、演算処理b108と演算処理e111の実行順序を入れ替え、図17に示すように演算処理実行順序テーブル604のインデックスを更新する。すなわち図17は、この発明の実施の形態3に係る電子制御装置における、1回目の実行順序変更後の演算処理実行順序テーブルを示す説明図である。 Next, using the excess set trial count 120 (“280”) and the above-described equation (1), the index of the arithmetic processing to be replaced is calculated. The index can be calculated as “6”. Then, with reference to the calculation processing execution order table 604 of FIG. Therefore, since the calculation process e111 has an index “3 or more”, the execution order of the calculation process b108 and the calculation process e111 is switched, and the index of the calculation process execution order table 604 is updated as shown in FIG. That is, FIG. 17 is an explanatory diagram showing an arithmetic processing execution order table after the first execution order change in the electronic control apparatus according to Embodiment 3 of the present invention.
タスクTA0は、時刻t1501以降は、演算処理a107→演算処理e111→演算処理c109→演算処理d110→演算処理b108の順に実行されることになる。次に、超過時セット試行回数120を「0」にリセットし、変更した実行順序に従って、演算処理a107〜演算処理e111の実行を開始する。時刻t1501でのタスクTA0の起動中は、コアB104のタスクTBは起動タイミングではないため、演算処理b108は直ちにロックフラグ117をセットして共有データ116へ書込むことができる。よって、タスクTA0の総処理時間は時刻t500に起動したときの総処理時間と同じになる。 The task TA0 is executed in the order of the arithmetic processing a107 → the arithmetic processing e111 → the arithmetic processing c109 → the arithmetic processing d110 → the arithmetic processing b108 after the time t1501. Next, the excess set trial count 120 is reset to “0”, and the execution of the arithmetic processing a107 to arithmetic processing e111 is started according to the changed execution order. While the task TA0 is being activated at time t1501, the task TB of the core B 104 is not at the activation timing, so that the arithmetic processing b108 can immediately set the lock flag 117 and write to the shared data 116. Therefore, the total processing time of task TA0 is the same as the total processing time when started at time t500.
さらに次の周期である時刻t1502において、タスクTA0が起動する。管理処理106は超過時セット試行回数120の値が「0」であることから、実行順序の変更は不要であると判断し、時刻t1501で決定した実行順序で演算処理a107〜演算処理e111の実行を開始する。しかし、演算処理h114が終了する前に、演算処理b108の処理が開始されるため、演算処理b108はセット試行を繰り返し、時刻t1503で再びセット試行カウンタ118の値がセット試行回数閾値119(「50」)を超過する。それでもなお、演算処理b108はロックフラグ117がクリアされるまでセット試行を繰り返す。 Furthermore, at time t1502, which is the next cycle, task TA0 is activated. Since the value of the excess set trial count 120 is “0”, the management process 106 determines that it is not necessary to change the execution order, and executes the arithmetic processes a107 to e111 in the execution order determined at time t1501. To start. However, since the processing of the arithmetic processing b108 is started before the arithmetic processing h114 ends, the arithmetic processing b108 repeats the set trial, and the value of the set trial counter 118 is set again at the set trial count threshold 119 (“50” at time t1503. )) Is exceeded. Nevertheless, the calculation process b108 repeats the set trial until the lock flag 117 is cleared.
次に、時刻t1504において、演算処理h114が共有データ116への書込みを終了すると、演算処理b108はロックフラグ117をセットできるようになる。このとき、セット試行カウンタ118は「100」を指しているものとする。そして共有データ116へ書込みアクセスし、ロックフラグ117をクリア後、セット試行カウンタ118の値(「100」)の方がセット試行回数閾値119(「50」)よりもまだ大きいことから、超過時セット試行回数120にセット試行カウンタ118の値(「100」)を格納し、セット試行カウンタ118をリセットする。 Next, at time t1504, when the arithmetic processing h114 finishes writing to the shared data 116, the arithmetic processing b108 can set the lock flag 117. At this time, it is assumed that the set trial counter 118 points to “100”. Then, after writing access to the shared data 116 and clearing the lock flag 117, the value of the set trial counter 118 (“100”) is still larger than the set trial count threshold value 119 (“50”). The value (“100”) of the set trial counter 118 is stored in the trial count 120, and the set trial counter 118 is reset.
次に、時刻t1505において、タスクTA0が起動する。管理処理106は、超過時セット試行回数120の値が「100」であり、「0」より大きいことから、図16の演算処理実行順序記憶テーブル1101の最小超過時セット試行回数120と現在の超過時セット試行回数120を比較する。このとき、最小超過時セット試行回数120は「280」であり、現在の超過時セット試行回数120の「100」の方が小さいことから、図18に示すように、現在の演算処理実行順序(a→e→c→d→b)と、現在の超過時セット試行回数120(「100」)を格納して更新する。すなわち、図18は、この発明の実施の形態3に係る電子制御装置における、2回目の実行順序変更後の演算処理実行順序記憶テーブルを示す説明図である。 Next, at time t1505, the task TA0 is activated. Since the value of the excess set trial count 120 is “100” and larger than “0”, the management process 106 has a minimum excess set trial count 120 of the arithmetic processing execution order storage table 1101 of FIG. Compare the number of hour set trials 120. At this time, the minimum overrun set trial count 120 is “280”, and the current overrun set trial count 120 of “100” is smaller. Therefore, as shown in FIG. a → e → c → d → b) and the current excess set trial count 120 (“100”) is stored and updated. That is, FIG. 18 is an explanatory diagram showing an arithmetic processing execution order storage table after the second execution order change in the electronic control apparatus according to Embodiment 3 of the present invention.
次に超過時セット試行回数120(「100」)と前述の式(1)を用いて、入れ替え対象とする演算処理のインデックスを算出する。インデックスは「3」と算出される。そして図17の演算処理実行順序テーブル604を参照し、インデックス「3」を持つ演算処理が存在するか確認する。しかし、インデックス「3」を持つ演算処理が存在しないことから、管理処理106は変更要求フラグ1102をセットし、超過時セット試行回数120を「0」にリセットして、タスクTA0の演算処理の実行順序変更は行わずに、演算処理の実行を開始する。時刻t1505でのタスクTA0の起動中は、コアB104のタスクTBは起動タイミングではないため、演算処理b108はステップS302から直ちにステップS303に進み、ロックフラグ117をセットできる。よって、タスクTA0の総処理時間は、時刻t0に起動したときの総処理時間と同じになる。 Next, using the excess set trial count 120 (“100”) and the above-described equation (1), the index of the arithmetic processing to be replaced is calculated. The index is calculated as “3”. Then, with reference to the arithmetic processing execution order table 604 of FIG. 17, it is confirmed whether there is an arithmetic processing having the index “3”. However, since there is no calculation process having the index “3”, the management process 106 sets the change request flag 1102, resets the excess set trial count 120 to “0”, and executes the calculation process of the task TA 0. The execution of the arithmetic processing is started without changing the order. While the task TA0 is being activated at time t1505, the task TB of the core B 104 is not at the activation timing. Therefore, the arithmetic processing b108 proceeds from step S302 to step S303 and can set the lock flag 117. Therefore, the total processing time of task TA0 is the same as the total processing time when started at time t0.
次に、時刻t1506において、コアB104のタスクTBが起動する。管理処理106は、変更要求フラグ1102がセットされていることから、排他制御を行う第3の演算処理としての演算処理h114と、その前に実行される第4の演算処理としての演算処理g113の実行順序を入れ替える。すなわち、タスクTBでは時刻t1506以降は、演算処理h114→演算処理g113→演算処理i115の順に実行されることになる。そして変更要求フラグ1102をクリアし、変更した実行順序に従って演算処理g113〜i115の実行を開始し、管理処理106を終了する。 Next, at time t1506, the task TB of the core B 104 is activated. Since the change request flag 1102 is set, the management process 106 includes an operation process h114 as a third operation process for performing exclusive control and an operation process g113 as a fourth operation process executed before that. Change the execution order. That is, in the task TB, after time t1506, the calculation process h114, the calculation process g113, and the calculation process i115 are executed in this order. Then, the change request flag 1102 is cleared, the execution of the arithmetic processes g113 to i115 is started according to the changed execution order, and the management process 106 is ended.
次に、時刻t1507において、タスクTA0が起動する。タスクTA0の演算処理a107〜演算処理e111の実行順序は時刻t1502起動時と同じであるが、時刻t1506でタスクTBの演算処理g113〜演算処理i115の実行順序を変更したことにより、演算処理h114が終了した後に、演算処理b108の処理が開始されるようになったため、演算処理b108はセット試行を繰り返すことなく、ロックフラグ117をセットすることができる。 Next, at time t1507, the task TA0 is activated. The execution order of the arithmetic processing a107 to the arithmetic processing e111 of the task TA0 is the same as when the time t1502 is started, but the arithmetic processing h114 is changed by changing the execution order of the arithmetic processing g113 to the arithmetic processing i115 of the task TB at the time t1506. Since the processing of the arithmetic processing b108 is started after the completion, the arithmetic processing b108 can set the lock flag 117 without repeating the setting trial.
このように、ECU101は、それまで変更された実行順序のうち、超過時セット試行回数120が最も小さい値であるときの実行順序を記憶する演算処理実行順序記憶テーブル1101を備え、演算処理b108のセット試行回数が所定の回数を常に超過し、かつそれ以上実行順序を変更できなくなった場合に、この演算処理実行順序記憶テーブル1101に保持されている実行順序を、それ以降の演算処理の実行順序とする。このようにすることで、複数の実行順序のパターンを実行してもなお、セット試行回数が所定の時間を超過してしまう場合であっても、それらの実行順序パターンのうち、セット試行回数が最小である最適な実行順序を選択することができ、排他制御処理の重複時間を短縮してコアA103の処理負荷を低減し、バックグラウンドタスクの処理時間を長く実行可能となる。 As described above, the ECU 101 includes the arithmetic processing execution order storage table 1101 that stores the execution order when the excess set trial count 120 is the smallest value among the execution orders that have been changed so far. When the number of set trials always exceeds the predetermined number and the execution order can no longer be changed, the execution order held in the arithmetic processing execution order storage table 1101 is changed to the subsequent arithmetic processing execution order. And In this way, even if a plurality of execution order patterns are executed, even if the number of set trials exceeds a predetermined time, the number of set trials among those execution order patterns is It is possible to select an optimal execution order that is the minimum, reduce the overlap control processing time, reduce the processing load on the core A 103, and increase the processing time of the background task.
さらに、ECU101では、コアA103の排他制御処理の重複時間が所定の時間を超過してしまう場合には、同じ共有データ116にアクセスするコアB104で実行される演算処理h114の実行タイミングを変更する。これにより、コアA103の演算処理a107〜演算処理e111の実行順序のみを最適化する場合と比較して、さらにセット試行時間を短縮することができ、メモリ105のエラーチェック等の異常検出機能を備えるバックグランドタスクの処理時間を長く実行可能である。 Further, in the case where the overlapping time of the exclusive control processing of the core A 103 exceeds a predetermined time, the ECU 101 changes the execution timing of the arithmetic processing h 114 executed by the core B 104 that accesses the same shared data 116. Thereby, compared with the case where only the execution order of the arithmetic processing a107 to the arithmetic processing e111 of the core A103 is optimized, the set trial time can be further reduced, and an abnormality detection function such as an error check of the memory 105 is provided. The background task processing time can be extended.
実施の形態4.
次に、この発明の実施の形態4に係る電子制御装置について説明する。図19は、この発明の実施の形態4に係る電子制御装置の構成図であって、自動車に搭載される電子制御装置としてのECUを示している。
Embodiment 4 FIG.
Next, an electronic control unit according to Embodiment 4 of the present invention will be described. FIG. 19 is a configuration diagram of an electronic control device according to Embodiment 4 of the present invention, and shows an ECU as an electronic control device mounted on an automobile.
図19において、図11と同一、相当部分には同一符号を付しており、その部分の説明を省略する。ECU101は、メモリ105内に、周波数変更フラグ1901、演算処理実行順序初期設定テーブル1902、コアB状態変数1903、セット試行回数上限値1904を保持している。 In FIG. 19, the same reference numerals are given to the same and corresponding parts as in FIG. 11, and description of those parts is omitted. The ECU 101 stores a frequency change flag 1901, an operation processing execution order initial setting table 1902, a core B state variable 1903, and a set trial count upper limit value 1904 in the memory 105.
第2の演算処理としての演算処理f112は、共有データ116への読込みアクセス、CANメッセージの送信トリガの他、演算結果に応じてコアA103の動作周波数を変更する機能を備える。処理負荷が低いと判断した場合には、コアA103の動作周波数を下げることで、消費電力を抑制し、逆に処理負荷が高いと判断した場合には、コアA103の動作周波数を上げることで、処理負荷がコアA103の処理能力を超えないようにすることができる。 The arithmetic processing f112 as the second arithmetic processing includes a read access to the shared data 116, a CAN message transmission trigger, and a function of changing the operating frequency of the core A103 according to the arithmetic result. When it is determined that the processing load is low, the power consumption is suppressed by lowering the operating frequency of the core A103. Conversely, when the processing load is determined to be high, the operating frequency of the core A103 is increased. It is possible to prevent the processing load from exceeding the processing capacity of the core A103.
周波数変更フラグ1901は、演算処理f112が動作周波数を変更するとセットされるフラグである。 The frequency change flag 1901 is a flag that is set when the arithmetic processing f112 changes the operating frequency.
演算処理実行順序初期設定テーブル1902は、演算処理a107〜演算処理e111のデフォルトの実行順序を格納しているテーブルである。すなわち、図20は、この発明の実施の形態4に係る電子制御装置における、演算処理実行順序初期設定テーブル1902を示す説明図である。図20に示すように、この実施の形態4では、演算処理a107→演算処理b108→演算処理c109→演算処理d110→演算処理e111の初期設定の実行順序が記載されている。 The arithmetic processing execution order initial setting table 1902 is a table that stores the default execution order of the arithmetic processing a107 to arithmetic processing e111. That is, FIG. 20 is an explanatory view showing the arithmetic processing execution order initial setting table 1902 in the electronic control apparatus according to Embodiment 4 of the present invention. As shown in FIG. 20, in the fourth embodiment, the execution order of the initial settings of the calculation process a107 → the calculation process b108 → the calculation process c109 → the calculation process d110 → the calculation process e111 is described.
コアB状態変数1903は、コアB104の状態を示す変数である。コアB状態変数1903は、スタートアップ(0)、ノーマル(1)、シャットダウン(2)、エラー(3)の4つの状態のうちの何れかを示す。コアB104の演算処理g113〜演算処理i115実行によりコアB104の状態が変化し、コアB状態変数1903が変更される。 The core B state variable 1903 is a variable indicating the state of the core B 104. The core B state variable 1903 indicates one of four states of startup (0), normal (1), shutdown (2), and error (3). The state of the core B 104 is changed by executing the arithmetic processing g113 to the arithmetic processing i115 of the core B 104, and the core B state variable 1903 is changed.
セット試行回数上限値1904は、セット試行毎にセット試行カウンタ118との比較に用いられる値である。この値を超過すると、コアA103の管理処理106は、コアA103にエラーが発生していると判断する。 The set trial count upper limit 1904 is a value used for comparison with the set trial counter 118 for each set trial. When this value is exceeded, the management processing 106 of the core A 103 determines that an error has occurred in the core A 103.
コアA103、コアB104による管理処理106、演算処理a107〜i115の実行方法は実施の形態1と、周期tBの長さを除き同じである。この実施の形態4では、周期tBは、周期tAと同じ長さであるとする。 The execution method of the management process 106 and the arithmetic processes a107 to i115 by the core A103 and the core B104 is the same as that of the first embodiment except for the length of the period tB. In the fourth embodiment, it is assumed that the period tB has the same length as the period tA.
次に、演算処理b108が共有データ116へアクセスする際に実行する排他制御について説明する。図21は、この発明の実施の形態4に係る電子制御装置における、演算処理bによる排他制御処理のフローチャートである。図21において、図3と同一、相当部分には同一符号を付してあり、その部分の説明を省略する。管理処理106は、ロックフラグ117がクリアされていないために、セット試行カウンタ118をインクリメントした(ステップS307)後、セット試行カウンタ118の値をセット試行回数上限値1904(「100」)と比較し(ステップS2101)、セット試行カウンタ118の値がセット試行回数上限値1904以下である場合には、ロックフラグ117の値の読込み(ステップS301)に戻る。セット試行カウンタ118の値がセット試行回数上限値1904を超過している場合には、異常であると判断され、異常処理を開始する。 Next, the exclusive control executed when the arithmetic process b108 accesses the shared data 116 will be described. FIG. 21 is a flowchart of the exclusive control process by the calculation process b in the electronic control apparatus according to Embodiment 4 of the present invention. In FIG. 21, the same reference numerals are given to the same and corresponding parts as in FIG. 3, and description of those parts is omitted. Since the lock flag 117 is not cleared, the management process 106 increments the set trial counter 118 (step S307), and then compares the value of the set trial counter 118 with the set trial count upper limit 1904 (“100”). (Step S2101) When the value of the set trial counter 118 is less than or equal to the set trial number upper limit value 1904, the process returns to reading the value of the lock flag 117 (Step S301). If the value of the set trial counter 118 exceeds the set trial count upper limit value 1904, it is determined that there is an abnormality and abnormal processing is started.
また、ロックフラグ117をクリアした後(ステップS305)、セット試行カウンタ118の値がセット試行回数閾値119を超過している場合には、まずコアB状態変数1903がノーマル(1)を示しているか確認する(ステップS2102)。コアB状態変数1903がノーマル(1)である場合には、超過時セット試行回数120へ格納(ステップS308)した後、セット試行カウンタ118をリセットし(ステップS309)、一連の処理を終了する。一方、コアB状態変数1903がノーマル(1)以外の値を示している場合には、超過時セット試行回数120の更新はせず、セット試行カウンタ118をリセットし(ステップS309)、一連の処理を終了する。 Further, after the lock flag 117 is cleared (step S305), if the value of the set trial counter 118 exceeds the set trial count threshold value 119, is the core B state variable 1903 first indicating normal (1)? Confirmation (step S2102). If the core B state variable 1903 is normal (1), the set trial counter 118 is reset (step S309) after storing in the excess set trial count 120 (step S308), and the series of processing ends. On the other hand, when the core B state variable 1903 indicates a value other than normal (1), the set trial counter number 118 is not updated, the set trial counter 118 is reset (step S309), and a series of processes is performed. Exit.
第2の演算処理としての演算処理f112、および第3の演算処理としての演算処理h114が共有データ116へアクセスする際に実行する排他制御は、実施の形態1と同じであるため省略する。 The exclusive control executed when the arithmetic processing f112 as the second arithmetic processing and the arithmetic processing h114 as the third arithmetic processing access the shared data 116 is the same as that in the first embodiment, and thus will be omitted.
次に、コアA103におけるタスクTA0起動時の管理処理106について説明する。図22は、この発明の実施の形態4に係る電子制御装置における、コアAで実行される管理処理のタスクTA0の起動タイミングにおけるフローチャートである。図22において、図13と同一の処理には同一符号を付してあり、その部分の説明を省略する。管理処理106は、まず周波数変更フラグ1901がセットされているか確認する(ステップS2201)。セットされていない場合には、超過時セット試行回数120の値の参照を開始し(ステップS401)、以降の処理は実施の形態3と同一である。一方、周波数変更フラグ1901がセットされている場合には、演算処理実行順序初期設定テーブル1902を参照し、演算処理a107〜演算処理e111の実行順序をデフォルトの実行順序とする。また、演算処理実行順序記憶テーブル1101をクリア(未記載)の状態にする(ステップS2202)。そしてセットされていた周波数変更フラグ1901をクリアし(ステップS2203)、決定した実行順序に従って演算処理a107〜演算処理e111の実行を開始し、管理処理106を終了する。 Next, the management process 106 when the task TA0 is activated in the core A103 will be described. FIG. 22 is a flowchart at the start timing of the task TA0 of the management process executed by the core A in the electronic control apparatus according to Embodiment 4 of the present invention. In FIG. 22, the same processes as those in FIG. The management process 106 first checks whether the frequency change flag 1901 is set (step S2201). If not set, reference to the value of the excess set trial count 120 is started (step S401), and the subsequent processing is the same as in the third embodiment. On the other hand, when the frequency change flag 1901 is set, the execution order of the operation processes a107 to e111 is set as the default execution order with reference to the operation process execution order initial setting table 1902. Further, the arithmetic processing execution order storage table 1101 is cleared (not described) (step S2202). Then, the set frequency change flag 1901 is cleared (step S2203), the execution of the arithmetic processing a107 to the arithmetic processing e111 is started according to the determined execution order, and the management processing 106 is ended.
次に、動作周波数変更を実行する場合の、管理処理106、演算処理の実行動作と、そのときのロックフラグ117、セット試行カウンタ118、セット試行回数閾値119、超過時セット試行回数120、周波数変更フラグ1901、コアB状態変数1903を、タイムチャートを用いて説明する。図23は、この発明の実施の形態4に係る電子制御装置における、動作周波数変更時の演算処理a〜演算処理i、ロックフラグ、セット試行カウンタ、超過時セット試行回数、周波数変更フラグ、コアB状態変数のタイムチャートである。なお、管理処理106の処理時間は、本タイムチャート上には記載していない。 Next, when executing the operation frequency change, the management processing 106, the execution operation of the arithmetic processing, and the lock flag 117, the set trial counter 118, the set trial count threshold 119, the excess set trial count 120, the frequency change The flag 1901 and the core B state variable 1903 will be described using a time chart. FIG. 23 shows arithmetic processing a to arithmetic processing i when operating frequency is changed, lock flag, set trial counter, excess set trial count, frequency change flag, core B in the electronic control device according to Embodiment 4 of the present invention. It is a time chart of a state variable. Note that the processing time of the management process 106 is not described on this time chart.
図23において、時刻t2300でコアA103のタスクTA0が初回起動すると、周波数変更フラグ1901はセットされておらず、また超過時セット試行回数120が「0」であることから、管理処理106は実行順序を変更せずにタスクTA0に含まれる演算処理a107〜演算処理e111を、演算処理a107→演算処理b108→演算処理c109→演算処理d110→演算処理e111の順で実行する。この時の演算処理の動作は、実施の形態1の時刻t500と同じである。 In FIG. 23, when the task TA0 of the core A 103 is activated for the first time at time t2300, the frequency change flag 1901 is not set and the excess set trial count 120 is “0”. The arithmetic processing a107 to the arithmetic processing e111 included in the task TA0 are executed in the order of the arithmetic processing a107 → the arithmetic processing b108 → the arithmetic processing c109 → the arithmetic processing d110 → the arithmetic processing e111. The operation of the arithmetic processing at this time is the same as that at time t500 in the first embodiment.
時刻t2301では、コアA103のタスクTA1が初回起動し、タスクTA1に含まれる演算処理f112が実行される。この時点では、演算処理f112は、コアA103の処理負荷を計測中であり、まだ動作周波数は変更しない。そのほかの演算処理f112の動作は、実施の形態1の時刻t501と同じである。 At time t2301, the task TA1 of the core A103 is activated for the first time, and the arithmetic processing f112 included in the task TA1 is executed. At this time, the arithmetic processing f112 is measuring the processing load of the core A103, and the operating frequency is not yet changed. Other operations of the arithmetic processing f112 are the same as those at the time t501 in the first embodiment.
次の時刻t2302の動作は、実施の形態1の時刻t502と同じであるため説明を省略する。 Since the operation at the next time t2302 is the same as that at time t502 in the first embodiment, the description thereof is omitted.
続いて、コアB104で演算処理h114を実行中に、時刻t2303(=t2300+(タスクTA0の周期tA))になり、コアA103で再びタスクTA0が起動する。ここでも、周波数変更フラグ1901はセットされておらず、また超過時セット試行回数120が「0」であることから、管理処理106は実行順序を変更しない。しかし、共有データ116に書込みアクセスする演算処理b108の開始時間になっても、コアB104の演算処理h114によりロックフラグ117がセットされたままであるため、演算処理b108は直ちにロックフラグ117をセットすることはできず、セット試行を繰り返す。ロックフラグ117のセットを失敗する毎に、セット試行カウンタ118がインクリメントされ、時刻t2304において、セット試行カウンタ118の値がセット試行回数閾値119(「50」)を超過する。それでもなお、演算処理b108はロックフラグ117がクリアされるまでセット試行を繰り返すが、セット試行カウンタ118の値はセット試行回数上限値1904(「100」)を超過しないため、異常とは判断されない。 Subsequently, while the arithmetic processing h114 is being executed in the core B104, the time t2303 (= t2300 + (the period tA of the task TA0)) is reached, and the task TA0 is activated again in the core A103. Again, since the frequency change flag 1901 is not set and the excess set trial count 120 is “0”, the management process 106 does not change the execution order. However, since the lock flag 117 remains set by the calculation process h114 of the core B 104 even when the start time of the calculation process b108 for writing access to the shared data 116 is reached, the calculation process b108 immediately sets the lock flag 117. Repeated set trial. Each time the setting of the lock flag 117 fails, the set trial counter 118 is incremented, and the value of the set trial counter 118 exceeds the set trial count threshold value 119 (“50”) at time t2304. Nevertheless, the calculation process b108 repeats the set trial until the lock flag 117 is cleared, but the value of the set trial counter 118 does not exceed the set trial count upper limit value 1904 (“100”), and thus is not determined to be abnormal.
次に、時刻t2305において、演算処理h114が共有データ116への書込みを終了し、ロックフラグ117をクリアすると、セット試行を繰り返していた演算処理b108はロックフラグ117をセットできるようになる。このとき、セット試行カウンタ118は「90」を指しているものとする。そして共有データ116へ書込みアクセスし、ロックフラグ117をクリア後、セット試行カウンタ118の値(「90」)の方がセット試行回数閾値119(「50」)より大きいと判断される。このとき、コアB状態変数1903を参照すると、ノーマル(1)を示しているため、超過時セット試行回数120にセット試行カウンタ118の値(「90」)を格納し、セット試行カウンタ118をリセットする。そして演算処理b108が終了すると、演算処理c109〜演算処理e111が実行される。 Next, at time t2305, when the arithmetic processing h114 finishes writing to the shared data 116 and clears the lock flag 117, the arithmetic processing b108 that has repeatedly set attempts can set the lock flag 117. At this time, it is assumed that the set trial counter 118 points to “90”. Then, after writing access to the shared data 116 and clearing the lock flag 117, it is determined that the value of the set trial counter 118 (“90”) is larger than the set trial count threshold value 119 (“50”). At this time, referring to the core B state variable 1903 indicates normal (1), so the value of the set trial counter 118 (“90”) is stored in the excess set trial count 120 and the set trial counter 118 is reset. To do. When the calculation process b108 ends, the calculation processes c109 to e111 are executed.
次の演算処理f112の実行内容は、時刻t2301と同じであるため、省略する。 The content of execution of the next calculation process f112 is the same as that at time t2301, and is therefore omitted.
次に、時刻t2306(=t2303+(タスクTA0の周期tA))において、再びタスクTA0が起動する。ここでも、周波数変更フラグ1901はセットされていないため、管理処理106は超過時セット試行回数120の値が「90」であり、「0」より大きいことから、図12の演算処理実行順序記憶テーブル1101の最小超過時セット試行回数120と現在の超過時セット試行回数120を比較する。このとき、最小超過時セット試行回数120が記載されていないことから、図16に示すように、現在の演算処理実行順序(a→b→c→d→e)と、現在の超過時セット試行回数120(「90」)を格納して更新する。 Next, at time t2306 (= t2303 + (period tA of task TA0)), task TA0 starts again. Again, since the frequency change flag 1901 is not set, the management processing 106 has the value of the excess set trial count 120 being “90”, which is larger than “0”. The minimum excess set trial count 120 of 1101 is compared with the current excess set trial count 120. At this time, since the minimum excess set trial count 120 is not described, as shown in FIG. 16, the current calculation processing execution order (a → b → c → d → e) and the current excess set trial The number of times 120 (“90”) is stored and updated.
次に超過時セット試行回数120(「90」)と、前述の式(1)を用いて、入れ替え対象とする演算処理のインデックスを算出する。インデックスは「2」と算出することができる。そして図7の演算処理実行順序テーブル604を参照し、インデックス「2」を持つ演算処理が存在するか確認する。ここで演算処理d110がインデックス「2」であるため、演算処理b108と、演算処理d110の実行順序を入れ替え、図10に示すように実行順序テーブルのインデックスを更新する。すなわち、タスクTA0は、時刻t2306以降は、演算処理a107→演算処理d110→演算処理c109→演算処理b108→演算処理e111の順に実行されることになる。次に、超過時セット試行回数120を「0」にリセットし、変更した実行順序に従って、演算処理a107〜演算処理e111の実行を開始する。時刻t2306でのタスクTA0の起動中は、コアB104のタスクTBは起動タイミングではないため、演算処理b108は直ちにロックフラグ117をセットできる。よって、タスクTA0の総処理時間は時刻t2300に起動したときの総処理時間と同じになる。 Next, the index of the arithmetic processing to be replaced is calculated using the excess set trial count 120 (“90”) and the above-described equation (1). The index can be calculated as “2”. Then, with reference to the arithmetic processing execution order table 604 of FIG. 7, it is confirmed whether there is an arithmetic processing having the index “2”. Here, since the calculation process d110 is index “2”, the execution order of the calculation process b108 and the calculation process d110 is switched, and the index of the execution order table is updated as shown in FIG. That is, the task TA0 is executed in the order of the calculation process a107 → the calculation process d110 → the calculation process c109 → the calculation process b108 → the calculation process e111 after the time t2306. Next, the excess set trial count 120 is reset to “0”, and the execution of the arithmetic processing a107 to arithmetic processing e111 is started according to the changed execution order. While the task TA0 is being activated at time t2306, the task TB of the core B 104 is not at the activation timing, and therefore the arithmetic processing b108 can immediately set the lock flag 117. Therefore, the total processing time of task TA0 is the same as the total processing time when activated at time t2300.
次に、時刻t2307では、コアA103のタスクTA1が起動し、タスクTA1に含まれる演算処理f112が実行される。このとき、演算処理f112は計測したコアA103の処理負荷演算結果から、動作周波数を下げることができると判断し、コアA103の動作周波数を1/2とし、周波数変更フラグ1901をセットする。これにより演算処理a107〜演算処理f112の処理時間が2倍になる。ただし、処理頻度やCANメッセージの送信周期は変更しないようにするため、周期tAの長さは動作周波数の変更前と同じになるよう設定される。 Next, at time t2307, the task TA1 of the core A103 is activated, and the arithmetic processing f112 included in the task TA1 is executed. At this time, the calculation process f112 determines that the operating frequency can be lowered from the measured processing load calculation result of the core A103, sets the operating frequency of the core A103 to 1/2, and sets the frequency change flag 1901. As a result, the processing time of the arithmetic processing a107 to arithmetic processing f112 is doubled. However, in order not to change the processing frequency and the CAN message transmission cycle, the length of the cycle tA is set to be the same as that before the change of the operating frequency.
次に、時刻t2308(= t2306+(タスクTA0の周期tA))において、タスクTA0が起動する。周波数変更フラグ1901がセットされていることから、管理処理106は、演算処理実行順序初期設定テーブル1902を参照し、時刻t2306に変更した実行順序をデフォルトの実行順序である演算処理a107→演算処理b108→演算処理c109→演算処理d110→演算処理e111に戻す。また、演算処理実行順序記憶テーブル1101をクリアし、未記載状態に戻す。そして周波数変更フラグ1901をクリアし、デフォルトの実行順序に従って演算処理a107〜演算処理e111の実行を開始する。その結果、実行順序はセット試行カウンタ118がセット試行回数閾値119を超過した時刻t2303と同じになるが、動作周波数が変更されているため、演算処理h114の終了後に演算処理b108が起動するようになり、セット試行を繰り返すことがなくなる。 Next, at time t2308 (= t2306 + (period TA of task TA0)), task TA0 is activated. Since the frequency change flag 1901 is set, the management process 106 refers to the calculation process execution order initial setting table 1902 and sets the execution order changed at the time t2306 as the default execution order from the calculation process a107 to the calculation process b108. → Calculation process c109 → Calculation process d110 → Return to calculation process e111. Also, the arithmetic processing execution order storage table 1101 is cleared and returned to an undescribed state. Then, the frequency change flag 1901 is cleared, and the execution of the arithmetic processing a107 to arithmetic processing e111 is started according to the default execution order. As a result, the execution order becomes the same as the time t2303 when the set trial counter 118 exceeds the set trial count threshold value 119, but since the operating frequency has been changed, the arithmetic process b108 is started after the arithmetic process h114 ends. Therefore, the set trial is not repeated.
このように、ECU101は動作周波数を変更すると、演算処理a107〜演算処理e111の実行順序をデフォルト設定に戻す。これにより、設計者が初期設定とした実行順序になるため、設計者の意図が最も反映されている実行順序で演算処理を行うことができるようになる。また、デフォルト設定に戻さない場合、動作周波数変更後にセット試行カウンタ118がセット試行回数閾値119を超過しても、実行順序を変更したことによって排他制御が重複しているのか判断できず、式(1)のままでは使用に適さず、算出したインデックスを持つ演算処理が存在しなくなくなる可能性が高くなる。一方、動作周波数変更に伴い、デフォルト設定に戻すことで、実行順序変更の選択肢を増やすことができ、排他制御処理の重複時間を短縮できる可能性を高めることができる。 As described above, when the operating frequency is changed, the ECU 101 returns the execution order of the arithmetic processing a107 to the arithmetic processing e111 to the default setting. As a result, the execution order set by the designer as an initial setting is used, so that the arithmetic processing can be performed in the execution order in which the intention of the designer is most reflected. Further, if the setting is not returned to the default setting, even if the set trial counter 118 exceeds the set trial count threshold value 119 after the operating frequency is changed, it cannot be determined whether the exclusive control is duplicated due to the change in the execution order. If 1) is left as it is, it is not suitable for use, and there is a high possibility that there is no arithmetic processing having the calculated index. On the other hand, by returning to the default setting as the operating frequency is changed, the options for changing the execution order can be increased, and the possibility that the duplication control processing overlap time can be shortened can be increased.
また、この実施の形態4ではコアA103で実行される演算処理a107〜演算処理e111の実行順序のみデフォルトに戻すこととしたが、実施の形態3に示したように、コアB104で実行される演算処理g113〜演算処理i115の実行順序を変更した場合には、動作周波数の変更とともに、コアB104の演算処理の実行順序もデフォルトに戻す設定としてもよい。さらにまた、コアB104の動作周波数を変更するようなECU101の場合には、コアB104の動作周波数変更に伴って、コアA103やコアB104で実行される演算処理の実行順序をデフォルトに戻す設定としてもよい。このようにすることで、コアA103での実行順序のみをデフォルト設定に戻す場合と比べて、排他制御処理の重複時間を短縮できる可能性を、さらに高めることができる。 In the fourth embodiment, only the execution order of the arithmetic processing a107 to arithmetic processing e111 executed in the core A103 is returned to the default. However, as shown in the third embodiment, the arithmetic processing executed in the core B104 is performed. When the execution order of the processing g113 to the arithmetic processing i115 is changed, the execution order of the arithmetic processing of the core B104 may be set to the default together with the change of the operating frequency. Furthermore, in the case of the ECU 101 that changes the operating frequency of the core B104, the execution order of the arithmetic processing executed by the core A103 or the core B104 may be set back to the default in accordance with the change of the operating frequency of the core B104. Good. By doing in this way, compared with the case where only the execution order in core A103 is returned to a default setting, the possibility that the duplication control processing duplication time can be shortened can be further increased.
次に、コアB104の状態が変化したときの、管理処理106、演算処理の実行動作と、そのときのロックフラグ117、セット試行カウンタ118、セット試行回数閾値119、超過時セット試行回数120、周波数変更フラグ1901、コアB状態変数1903を、タイムチャートを用いて説明する。図24は、この発明の実施の形態4に係る電子制御装置における、コアBの状態変化時の演算処理a〜演算処理i、ロックフラグ、セット試行カウンタ、超過時セット試行回数、周波数変更フラグ、コアB状態変数のタイムチャートである。なお、管理処理106の処理時間は、本タイムチャート上には記載していない。 Next, when the state of the core B 104 changes, the management processing 106, the execution operation of the arithmetic processing, the lock flag 117, the set trial counter 118, the set trial count threshold 119, the excess set trial count 120, the frequency The change flag 1901 and the core B state variable 1903 will be described using a time chart. FIG. 24 shows arithmetic processing a to arithmetic processing i when the state of core B changes in the electronic control device according to Embodiment 4 of the present invention, lock flag, set trial counter, excess set trial count, frequency change flag, It is a time chart of a core B state variable. Note that the processing time of the management process 106 is not described on this time chart.
時刻t2400までは、排他制御処理の重複時間(セット試行の繰り返し)は発生していないため、実行順序はデフォルトのままである。 Until time t2400, since the duplication control processing overlap time (repetition of set trials) has not occurred, the execution order remains the default.
時刻t2400では、コアB104のタスクTBが起動し、演算処理h114の実行中にコアB104に何らかの異常が発生したとする。演算処理h114はコアB状態変数1903をエラー(3)とするが、ロックフラグ117をセットしたままリセットがかかるまでエラー状態を継続する。これにより、時刻t2401に実行開始される演算処理b108は、セット試行を繰り返す。ただし、セット試行カウンタ118の値はセット試行回数上限値1904(「100」)を超過しないため、異常とは判断されない。 It is assumed that at time t2400, the task TB of the core B104 is activated and some abnormality occurs in the core B104 during the execution of the arithmetic processing h114. The arithmetic processing h114 sets the core B state variable 1903 to error (3), but continues the error state until the reset is applied while the lock flag 117 is set. Thereby, the calculation process b108 started to be executed at time t2401 repeats the set trial. However, since the value of the set trial counter 118 does not exceed the upper limit value 1904 (“100”) of the set trials, it is not determined to be abnormal.
時刻t2402では、コアB104のみリセットされ、ロックフラグ117がクリアされる。これにより演算処理b108がロックフラグ117をセットできるようになる。このとき、セット試行カウンタ118は「90」を指しているものとする。そして共有データ116へ書込みアクセスし、ロックフラグ117をクリア後、セット試行カウンタ118の値(「90」)の方がセット試行回数閾値119(「50」)より大きいことから、コアB状態変数1903を参照する。このとき、コアB状態変数1903はエラー(1)を示しているため、超過時セット試行回数120の値は更新されずゼロのままとなる。そしてセット試行カウンタ118がゼロにリセットされる。演算処理b108が終了すると、演算処理c109〜演算処理e111が実行される。 At time t2402, only the core B104 is reset and the lock flag 117 is cleared. As a result, the calculation process b108 can set the lock flag 117. At this time, it is assumed that the set trial counter 118 points to “90”. After the write access to the shared data 116 and the lock flag 117 being cleared, the value of the set trial counter 118 (“90”) is larger than the set trial count threshold value 119 (“50”). Refer to At this time, since the core B state variable 1903 indicates an error (1), the value of the excess set trial count 120 is not updated and remains zero. Then, the set trial counter 118 is reset to zero. When the calculation process b108 ends, the calculation processes c109 to e111 are executed.
時刻t2403で、再びタスクTA0が起動されると、周波数変更フラグ1901はセットされておらず、また超過時セット試行回数120が0であることから、管理処理106は実行順序を変更せずに演算処理a107〜演算処理e111の実行を開始する。 When the task TA0 is started again at time t2403, the frequency change flag 1901 is not set, and the excess set trial count 120 is 0. Therefore, the management process 106 performs the operation without changing the execution order. Execution of processing a107 to arithmetic processing e111 is started.
時刻t2404で、再びタスクTA0が起動されると、周波数変更フラグ1901はセットされておらず、また超過時セット試行回数120が「0」であることから、管理処理106は実行順序を変更せずに演算処理a107〜演算処理e111の実行を開始する。このとき、演算処理a107〜演算処理e111の実行順序は時刻t2401から変更されていないが、コアB104の異常状態が解消されたことにより、排他制御処理の重複は発生しない。 When the task TA0 is started again at time t2404, the frequency change flag 1901 is not set, and the excess set trial count 120 is “0”, so the management process 106 does not change the execution order. Then, the execution of the arithmetic processing a107 to arithmetic processing e111 is started. At this time, the execution order of the arithmetic processing a107 to the arithmetic processing e111 has not been changed from the time t2401, but since the abnormal state of the core B104 is eliminated, the exclusive control processing does not overlap.
このように、ECU101は、正常である間のみ、実行順序の変更を行うため、エラーによって一時的に排他制御の実行タイミングの重複が発生した状態において、不要な実行順序の変更を避けることができる。 Thus, since the ECU 101 changes the execution order only while it is normal, it is possible to avoid unnecessary change in the execution order in a state where the execution timing of the exclusive control is temporarily overlapped due to an error. .
次に、コアB104に異常が発生し、ロックフラグ117がクリアされず、セット試行カウンタ118がセット試行回数上限値1904を超過したときの、管理処理106、演算処理の実行動作をタイムチャートを用いて説明する。図25は、この発明の実施の形態4に係る電子制御装置における、セット試行カウンタのセット試行回数上限値超過時の演算処理a〜i、ロックフラグ、セット試行カウンタ、超過時セット試行回数、周波数変更フラグ、コアB状態変数のタイムチャートである。 Next, when the abnormality occurs in the core B 104, the lock flag 117 is not cleared, and the set trial counter 118 exceeds the set trial count upper limit value 1904, the management processing 106 and the execution operation of the arithmetic processing are performed using a time chart. I will explain. FIG. 25 shows arithmetic processing ai when a set trial counter exceeds the set trial count upper limit value, lock flag, set trial counter, excess set trial count, frequency in the electronic control device according to Embodiment 4 of the present invention. It is a time chart of a change flag and a core B state variable.
時刻t2400から時刻t2401の動作は、図24のタイムチャートと同じであるため、説明は省略する。 The operation from time t2400 to time t2401 is the same as that in the time chart of FIG.
図25において、時刻t2500では、演算処理b108は、ロックフラグ117がクリアされないため、セット試行を繰り返し、スセット試行カウンタ118の値が、セット試行回数上限値1904(「100」)を超過する。これにより、コアA103においても異常であると判断され、異常処理を開始する。異常処理とは、例えば、コアA103、コアB104やメモリ105などのH/Wリセットを指す。 In FIG. 25, at time t2500, the calculation process b108 repeats the set trial because the lock flag 117 is not cleared, and the value of the set trial counter 118 exceeds the set trial count upper limit 1904 (“100”). As a result, it is determined that the core A 103 is also abnormal, and the abnormality process is started. Abnormal processing refers to, for example, H / W reset of the core A 103, the core B 104, the memory 105, and the like.
このように、ECU101はセット試行カウンタ118の値がセット試行回数上限値1904を超過すると異常と判断し、異常処理を開始することで、ロックフラグ117がクリアされないため、セット試行を長時間繰返し、周期的な演算処理の実行が不可能になるような状況(デッドロック)を回避することができる。 In this way, the ECU 101 determines that an abnormality occurs when the value of the set trial counter 118 exceeds the set trial count upper limit value 1904, and by starting the abnormality process, the lock flag 117 is not cleared. It is possible to avoid a situation (deadlock) in which execution of periodic arithmetic processing is impossible.
なお、この発明は、その発明の範囲内において、各実施の形態を自由に組み合わせたり、各実施の形態を適宜、変形、省略することが可能である。 It should be noted that within the scope of the present invention, the embodiments can be freely combined, or the embodiments can be appropriately modified or omitted.
前述のこの発明の実施の形態1に係る電子制御装置は、下記の発明のうち、(1)、(2)、及び(3)を具体化したものである。
前述のこの発明の実施の形態2に係る電子制御装置は、下記の発明のうち、(1)、(3)、(9)、及び(11)を具体化したものである。
前述のこの発明の実施の形態3に係る電子制御装置は、下記の発明のうち、(1)、(3)、(4)、及び(5)を具体化したものである。
前述のこの発明の実施の形態4に係る電子制御装置は、下記の発明のうち、(1)、(3)(6)、(7)、(8)、及び(10)を具体化したものである。
The above-described electronic control device according to Embodiment 1 of the present invention embodies (1), (2), and (3) among the following inventions.
The above-described electronic control device according to Embodiment 2 of the present invention embodies (1), (3), (9), and (11) among the following inventions.
The above-described electronic control device according to Embodiment 3 of the present invention embodies (1), (3), (4), and (5) among the following inventions.
The aforementioned electronic control device according to Embodiment 4 of the present invention embodies (1), (3), (6), (7), (8), and (10) among the following inventions. It is.
(1)演算処理を実行する第1のプロセッサと、
前記第1のプロセッサの演算処理の実行とは並列に演算処理を実行する第2のプロセッサと、
を備えた電子制御装置であって、
前記第1のプロセッサは、第1の演算処理と複数の第2の演算処理とを所定の実行順序に従って周期的に実行するように構成され、
前記第2のプロセッサは、第3の演算処理を周期的に実行するように構成され、
前記第1の演算処理と前記第3の演算処理は、排他的に共有リソースにアクセスする演算処理であり、
前記第1の演算処理と前記第3の演算処理とのうちの何れか一方が、前記共有リソースに排他的にアクセスしたときにセットされるロックフラグと、
前記第3の演算処理により前記共有リソースが排他的にアクセスされていて前記第1の演算処理が前記ロックフラグをセットできないとき、前記第1の演算処理が前記ロックフラグをセットできるまでセット試行を繰り返すセット試行回数を計数するセット試行カウンタと、
を備え、
前記セット試行カウンタの値が所定の閾値を超過したとき、
前記セット試行カウンタの値に基づいて、前記複数の第2の演算処理のうちの少なくとも一つを選択し、
前記選択された前記第2の演算処理と前記第1の演算処理との実行順序を変更して、前記第1のプロセッサの演算処理を実行するように構成されている、
ことを特徴とする電子制御装置。
(1) a first processor that executes arithmetic processing;
A second processor that executes arithmetic processing in parallel with execution of arithmetic processing of the first processor;
An electronic control device comprising:
The first processor is configured to periodically execute a first calculation process and a plurality of second calculation processes according to a predetermined execution order,
The second processor is configured to periodically execute a third arithmetic process,
The first calculation process and the third calculation process are calculation processes that exclusively access a shared resource,
A lock flag that is set when any one of the first calculation process and the third calculation process exclusively accesses the shared resource;
When the shared resource is exclusively accessed by the third calculation process and the first calculation process cannot set the lock flag, the setting calculation is attempted until the first calculation process can set the lock flag. A set trial counter for counting the number of set trials to be repeated;
With
When the value of the set trial counter exceeds a predetermined threshold value,
Based on the value of the set trial counter, select at least one of the plurality of second arithmetic processes,
By changing the execution order of the first processing and the selected second arithmetic processing, and is configured to perform the calculation processing of the first processor,
An electronic control device characterized by that.
(2)前記複数の第2の演算処理の夫々の処理時間に基づき、前記複数の第2の演算処理のうちの一つを選択するように構成されている、
ことを特徴とする、上記(1)に記載の電子制御装置。
(2) It is configured to select one of the plurality of second calculation processes based on the processing time of each of the plurality of second calculation processes.
The electronic control device according to (1) above, wherein
(3)前記第2の演算処理の現在の実行順序に基づき、前記複数の第2の演算処理のうち一つを選択するように構成されている、
ことを特徴とする、上記(1)に記載の電子制御装置。
(3) based on the current execution order of said second arithmetic processing, and is configured to select one of said plurality of second arithmetic processing,
The electronic control device according to (1) above, wherein
(4)前記実行順序の変更を複数回実行しても前記セット試行カウンタの値が前記所定の閾値を超過したときには、前記セット試行カウンタの値が最も小さい値ときの実行順序により、前記第1のプロセッサの演算処理を実行するように構成されている、
ことを特徴とする上記(1)に記載の電子制御装置。
(4) If the value of the set trial counter exceeds the predetermined threshold even if the execution order is changed a plurality of times, the execution order when the value of the set trial counter is the smallest value is Configured to perform arithmetic processing of the first processor;
The electronic control device according to (1) above, wherein
(5)前記第2のプロセッサは、
前記第3の演算処理と第4の演算処理を周期的に実行するように構成されていると共に、
前記実行順序の変更を実行しても前記セット試行カウンタの値が前記所定の閾値を超過したときには、前記第3の演算処理と、前記第4の演算処理の実行順序を変更するように構成されている、
ことを特徴とする上記(1)に記載の電子制御装置。
(5) The second processor
The third calculation process and the fourth calculation process are configured to be periodically executed,
Wherein when the value of the even running change of the execution order set attempt counter has exceeded the predetermined threshold, to change to the third arithmetic processing, the execution order of the fourth arithmetic processing Configured ,
The electronic control device according to (1) above, wherein
(6)前記第1のプロセッサの動作周波数を変更する機能を備え、
前記第1のプロセッサの動作周波数が変更されたときは、変更した前記実行順序を変更前の実行順序に戻すように構成されている、
ことを特徴とする上記(1)に記載の電子制御装置。
(6) A function of changing an operating frequency of the first processor is provided.
When the operating frequency of the first processor is changed, the changed execution order is returned to the execution order before the change,
The electronic control device according to (1) above, wherein
(7)前記第2のプロセッサの動作周波数を変更する機能を備え、
前記第2のプロセッサの動作周波数が変更されたときは、変更した前記実行順序を変更前の実行順序に戻すように構成されている、
ことを特徴とする上記(1)に記載の電子制御装置。
(7) A function of changing an operating frequency of the second processor is provided.
When the operating frequency of the second processor is changed, the changed execution order is returned to the execution order before the change,
The electronic control device according to (1) above, wherein
(8)前記第1のプロセッサは、
前記複数の第2の演算処理のうちの少なくとも一つを選択することが出来ないときは、変更要求フラグをセットするように構成され、
前記第2のプロセッサは、
前記変更要求フラグがセットされているときは、前記第3の演算処理と、前記第4の演算処理の実行順序を変更するように構成されている、
ことを特徴とする上記(5)に記載の電子制御装置。
( 8 ) The first processor
When at least one of the plurality of second arithmetic processes cannot be selected, a change request flag is set,
The second processor is
When the change request flag is set, the execution order of the third calculation process and the fourth calculation process is changed.
The electronic control device according to (5) above, wherein
(9)前記電子制御装置は、
前記第1の演算処理と前記第2の演算処理の実行順序を監視する監視処理を備え、
前記第1の演算処理と前記第2の演算処理は、その実行時に自身が実行されたことを示す第1の処理情報と第2の処理情報を夫々前記監視処理へ通知し、
前記監視処理は、前記第1の処理情報と前記第2の処理情報の通知順序が、所定の通知順序と異なる場合には異常と判断する処理であって、前記第2の演算処理と前記第2の演算処理の実行順序を変更すると、前記変更した実行順序に基づき前記所定の通知順序を変更する、
ことを特徴とする上記(1)に記載の電子制御装置。
( 9 ) The electronic control device
A monitoring process for monitoring an execution order of the first calculation process and the second calculation process;
The first calculation process and the second calculation process respectively notify the monitoring process of first process information and second process information indicating that the first calculation process and the second calculation process are executed,
The monitoring process is a process of determining an abnormality when a notification order of the first process information and the second process information is different from a predetermined notification order, wherein the second calculation process and the second process information When the execution order of the arithmetic processing of 2 is changed, the predetermined notification order is changed based on the changed execution order.
The electronic control device according to (1) above, wherein
(10)前記セット試行カウンタの値が、所定の値を超過した場合には、異常であると判断するように構成されている、
ことを特徴とする上記(1)に記載の電子制御装置。
(11)前記電子制御装置は、不揮発性の記憶領域を備え、
変更した実行順序を前記不揮発性の記憶領域に格納する、
ことを特徴とする上記(1)に記載の電子制御装置。
( 10 ) When the value of the set trial counter exceeds a predetermined value, it is determined to be abnormal.
The electronic control device according to (1) above, wherein
(11) The electronic control unit includes a nonvolatile storage area,
Storing the changed execution order in the non-volatile storage area;
The electronic control device according to (1) above, wherein
101 電子制御装置(ECU)、102 CAN通信線、103 第1のプロセッサ(コアA)、104 第2のプロセッサ(コアB)、105 メモリ、106 管理処理、107 演算処理a、108 演算処理b、109 演算処理c、110 演算処理d、111 演算処理e、112 演算処理f、113 演算処理g、114 演算処理h、115 演算処理i、116 共有リソース(共有データ)、117 ロックフラグ、118 セット試行カウンタ、119 セット試行回数閾値、120 超過時セット試行回数、121 演算処理時間テーブル、122 CAN通信インタフェース、604 演算処理実行順序テーブル、605 演算処理実行FIFO、1101 演算処理実行順序記憶テーブル、1102 変更要求フラグ、1901 周波数変更フラグ、1902 演算処理実行順序初期設定テーブル、1903 コアB状態変数、1904 セット試行回数上限値。 101 electronic control unit (ECU), 102 CAN communication line, 103 first processor (core A), 104 second processor (core B), 105 memory, 106 management processing, 107 arithmetic processing a, 108 arithmetic processing b, 109 arithmetic processing c, 110 arithmetic processing d, 111 arithmetic processing e, 112 arithmetic processing f, 113 arithmetic processing g, 114 arithmetic processing h, 115 arithmetic processing i, 116 shared resource (shared data), 117 lock flag, 118 set trial Counter, 119 set trial count threshold, 120 exceeding set trial count, 121 computation processing time table, 122 CAN communication interface, 604 computation processing execution order table, 605 computation processing execution FIFO, 1101 computation processing execution order storage table, 1102 change request Flag, 190 1 Frequency change flag, 1902 operation processing execution order initial setting table, 1903 core B state variable, 1904 upper limit number of set trials.
Claims (11)
前記第1のプロセッサの演算処理の実行とは並列に演算処理を実行する第2のプロセッサと、
を備えた電子制御装置であって、
前記第1のプロセッサは、第1の演算処理と複数の第2の演算処理とを所定の実行順序に従って周期的に実行するように構成され、
前記第2のプロセッサは、第3の演算処理を周期的に実行するように構成され、
前記第1の演算処理と前記第3の演算処理は、排他的に共有リソースにアクセスする演算処理であり、
前記第1の演算処理と前記第3の演算処理とのうちの何れか一方が、前記共有リソースに排他的にアクセスしたときにセットされるロックフラグと、
前記第3の演算処理により前記共有リソースが排他的にアクセスされていて前記第1の演算処理が前記ロックフラグをセットできないとき、前記第1の演算処理が前記ロックフラグをセットできるまでセット試行を繰り返すセット試行回数を計数するセット試行カウンタと、
を備え、
前記セット試行カウンタの値が所定の閾値を超過したとき、
前記セット試行カウンタの値に基づいて、前記複数の第2の演算処理のうちの少なくとも一つを選択し、
前記選択された前記第2の演算処理と前記第1の演算処理との実行順序を変更して、前記第1のプロセッサの演算処理を実行するように構成されている、
ことを特徴とする電子制御装置。 A first processor that executes arithmetic processing;
A second processor that executes arithmetic processing in parallel with execution of arithmetic processing of the first processor;
An electronic control device comprising:
The first processor is configured to periodically execute a first calculation process and a plurality of second calculation processes according to a predetermined execution order,
The second processor is configured to periodically execute a third arithmetic process,
The first calculation process and the third calculation process are calculation processes that exclusively access a shared resource,
A lock flag that is set when any one of the first calculation process and the third calculation process exclusively accesses the shared resource;
When the shared resource is exclusively accessed by the third calculation process and the first calculation process cannot set the lock flag, the setting calculation is attempted until the first calculation process can set the lock flag. A set trial counter for counting the number of set trials to be repeated;
With
When the value of the set trial counter exceeds a predetermined threshold value,
Based on the value of the set trial counter, select at least one of the plurality of second arithmetic processes,
The execution order of the first processor is changed to change the execution order of the selected second arithmetic process and the first arithmetic process, and the first processor is executed.
An electronic control device characterized by that.
ことを特徴とする、請求項1に記載の電子制御装置。 Based on the processing time of each of the plurality of second calculation processes, one of the plurality of second calculation processes is selected.
The electronic control device according to claim 1, wherein:
ことを特徴とする、請求項1に記載の電子制御装置。 Based on the current execution order of the second arithmetic processing, configured to select one of the plurality of second arithmetic processing,
The electronic control device according to claim 1, wherein:
ことを特徴とする請求項1に記載の電子制御装置。 If the value of the set trial counter exceeds the predetermined threshold even if the execution order is changed a plurality of times, the execution order of the first processor is determined according to the execution order when the value of the set trial counter is the smallest value. Configured to perform arithmetic processing,
The electronic control device according to claim 1.
前記第3の演算処理と第4の演算処理を周期的に実行するように構成されていると共に、
前記実行順序の変更を実行しても前記セット試行カウンタの値が前記所定の閾値を超過したときには、前記第3の演算処理と、前記第4の演算処理の実行順序を変更するように構成されている、
ことを特徴とする請求項1に記載の電子制御装置。 The second processor is
The third calculation process and the fourth calculation process are configured to be periodically executed,
If the set trial counter value exceeds the predetermined threshold even if the execution order is changed, the execution order of the third arithmetic processing and the fourth arithmetic processing is changed. ing,
The electronic control device according to claim 1.
前記第1のプロセッサの動作周波数が変更されたときは、変更した前記実行順序を変更前の実行順序に戻すように構成されている、
ことを特徴とする請求項1に記載の電子制御装置。 A function of changing an operating frequency of the first processor;
When the operating frequency of the first processor is changed, the changed execution order is returned to the execution order before the change,
The electronic control device according to claim 1.
前記第2のプロセッサの動作周波数が変更されたときは、変更した前記実行順序を変更前の実行順序に戻すように構成されている、
ことを特徴とする請求項1に記載の電子制御装置。 A function of changing an operating frequency of the second processor;
When the operating frequency of the second processor is changed, the changed execution order is returned to the execution order before the change,
The electronic control device according to claim 1.
前記複数の第2の演算処理のうちの少なくとも一つを選択することが出来ないときは、変更要求フラグをセットするように構成され、
前記第2のプロセッサは、
前記変更要求フラグがセットされているときは、前記第3の演算処理と、前記第4の演算処理の実行順序を変更するように構成されている、
ことを特徴とする請求項5に記載の電子制御装置。 The first processor is
When at least one of the plurality of second arithmetic processes cannot be selected, a change request flag is set,
The second processor is
When the change request flag is set, the execution order of the third calculation process and the fourth calculation process is changed.
The electronic control device according to claim 5 .
前記第1の演算処理と前記第2の演算処理の実行順序を監視する監視処理を備え、
前記第1の演算処理と前記第2の演算処理は、その実行時に自身が実行されたことを示す第1の処理情報と第2の処理情報を夫々前記監視処理へ通知し、
前記監視処理は、前記第1の処理情報と前記第2の処理情報の通知順序が、所定の通知順序と異なる場合には異常と判断する処理であって、前記第2の演算処理と前記第2の演算処理の実行順序を変更すると、前記変更した実行順序に基づき前記所定の通知順序を変更するように構成されている、
ことを特徴とする請求項1に記載の電子制御装置。 The electronic control device
A monitoring process for monitoring an execution order of the first calculation process and the second calculation process;
The first calculation process and the second calculation process respectively notify the monitoring process of first process information and second process information indicating that the first calculation process and the second calculation process are executed,
The monitoring process is a process of determining an abnormality when a notification order of the first process information and the second process information is different from a predetermined notification order, wherein the second calculation process and the second process information When the execution order of the arithmetic processing of 2 is changed, the predetermined notification order is changed based on the changed execution order.
The electronic control device according to claim 1 .
前記セット試行カウンタの値が、所定の値を超過した場合には、異常であると判断するように構成されている、
ことを特徴とする請求項1に記載の電子制御装置。 The electronic control device
When the value of the set trial counter exceeds a predetermined value, it is configured to determine that it is abnormal.
The electronic control device according to claim 1.
変更した実行順序を前記不揮発性の記憶領域に格納するように構成されている、
ことを特徴とする請求項1に記載の電子制御装置。 The electronic control device includes a nonvolatile storage area,
It is configured to store the changed execution order in the nonvolatile storage area,
The electronic control device according to claim 1.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014210404A JP6009518B2 (en) | 2014-10-15 | 2014-10-15 | Electronic control unit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014210404A JP6009518B2 (en) | 2014-10-15 | 2014-10-15 | Electronic control unit |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016081204A JP2016081204A (en) | 2016-05-16 |
JP6009518B2 true JP6009518B2 (en) | 2016-10-19 |
Family
ID=55958705
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014210404A Active JP6009518B2 (en) | 2014-10-15 | 2014-10-15 | Electronic control unit |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6009518B2 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6895719B2 (en) * | 2016-06-24 | 2021-06-30 | 日立Astemo株式会社 | Vehicle control device |
JP6666216B2 (en) * | 2016-08-31 | 2020-03-13 | 日立オートモティブシステムズ株式会社 | Electronic control unit, analysis system |
JP2021117747A (en) * | 2020-01-27 | 2021-08-10 | 株式会社デンソー | Electronic control apparatus |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5725162B2 (en) * | 2011-03-31 | 2015-05-27 | 富士通株式会社 | Exclusive control method and exclusive control program |
JP5939561B2 (en) * | 2011-12-02 | 2016-06-22 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | Apparatus and method for acquiring resource lock |
-
2014
- 2014-10-15 JP JP2014210404A patent/JP6009518B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2016081204A (en) | 2016-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9396353B2 (en) | Data allocation among devices with different data rates | |
EP2437168A2 (en) | Method and device for balancing load of multiprocessor system | |
JP6009518B2 (en) | Electronic control unit | |
JP2013084089A (en) | Vehicular device | |
JP6160236B2 (en) | Information processing apparatus, information processing system, information processing apparatus control method, and information processing apparatus control program | |
KR20210088707A (en) | Interleaved host reset and subsequent reinitialization operations | |
JP2017097633A (en) | Vehicle controller | |
RU2603497C2 (en) | Method of controlling execution of tasks in computer system | |
US20140181496A1 (en) | Method, Apparatus and Processor for Reading Bios | |
US10269194B2 (en) | Multiprocessor system and vehicle control system | |
US20090077349A1 (en) | Method of managing instruction cache and processor using the method | |
JP4853390B2 (en) | Measuring device | |
CN110959152B (en) | access control device | |
JP2006215621A (en) | Dma controller | |
JP5978873B2 (en) | Electronic control unit | |
JP6729430B2 (en) | Electronic control unit | |
JP5561241B2 (en) | Microcomputer | |
JP2013061783A (en) | Multi-core processor | |
CN113010236A (en) | Program execution method, device, equipment and storage medium | |
JP5332716B2 (en) | Startup control method, information processing apparatus, and program | |
JP2009230425A (en) | Information processor | |
US9773562B2 (en) | Storage apparatus, flash memory control apparatus, and program | |
CN118192759B (en) | Clock synchronization method, device, equipment and storage medium | |
JP7378445B2 (en) | Electronic control unit, information processing method, and program | |
JP6747680B1 (en) | Data transfer device, data transfer method, and computer program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160209 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160405 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160510 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160707 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20160711 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160721 |
|
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: 20160817 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160914 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 6009518 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |