JP2021018475A - Electronic control apparatus - Google Patents
Electronic control apparatus Download PDFInfo
- Publication number
- JP2021018475A JP2021018475A JP2019132040A JP2019132040A JP2021018475A JP 2021018475 A JP2021018475 A JP 2021018475A JP 2019132040 A JP2019132040 A JP 2019132040A JP 2019132040 A JP2019132040 A JP 2019132040A JP 2021018475 A JP2021018475 A JP 2021018475A
- Authority
- JP
- Japan
- Prior art keywords
- processor core
- access
- data
- mpu
- processor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Multi Processors (AREA)
- Storage Device Security (AREA)
Abstract
Description
本開示は、複数のプロセッサコアを備える電子制御装置に関する。 The present disclosure relates to an electronic control device including a plurality of processor cores.
特許文献1には、第一コアと第二コアと共有メモリとを備え、DMA等のハードウェア機能を使用して第二コアのデータを共有メモリへ直接コピーし、第一コアが共有メモリへアクセスしてデータを取得するように構成された車載制御装置が記載されている。DMAは、Direct Memory Accessの略である。
プロセッサコア間の排他制御は、一般的には、セマフォを用いて行われる。しかし、セマフォを用いる場合には、アクセスする側のプロセッサコアは、必ず、セマフォ獲得用およびセマフォ解放用のインターフェースを使う必要があり、オーバーヘッドの増加が生じる。 Exclusive control between processor cores is generally performed using a semaphore. However, when using a semaphore, the processor core on the accessing side must always use the interface for acquiring the semaphore and the interface for releasing the semaphore, which increases the overhead.
本開示は、プロセッサコア間の排他制御に起因したオーバーヘッドの増加を抑制することを目的とする。 An object of the present disclosure is to suppress an increase in overhead due to exclusive control between processor cores.
本開示の一態様は、複数のプロセッサコア(11,12,13)と、共有データ記憶部(21,14)と、メモリ保護部(15)とを備える電子制御装置(1)である。
共有データ記憶部は、複数のプロセッサコアのそれぞれが読出可能にアクセスすることができる共有データ(31,71)を記憶するように構成される。
One aspect of the present disclosure is an electronic control device (1) including a plurality of processor cores (11, 12, 13), a shared data storage unit (21, 14), and a memory protection unit (15).
The shared data storage unit is configured to store shared data (31, 71) that can be readably accessed by each of the plurality of processor cores.
メモリ保護部は、特定プロセッサコア(11)が共有データへアクセスしている場合には他プロセッサコア(12,13)が共有データへアクセスすることができないように複数のプロセッサコアを制御するように構成される。特定プロセッサコアは、複数のプロセッサコアのうちの一つのプロセッサコアである。他プロセッサコアは、特定プロセッサコア以外のプロセッサコアである。 The memory protection unit controls a plurality of processor cores so that when the specific processor core (11) is accessing the shared data, the other processor cores (12, 13) cannot access the shared data. It is composed. The specific processor core is one of a plurality of processor cores. The other processor core is a processor core other than the specific processor core.
このように構成された本開示の電子制御装置では、メモリ保護部が、特定プロセッサコアが共有データへアクセスしている場合には他プロセッサコアが共有データへアクセスすることができないように複数のプロセッサコアを制御する。すなわち、本開示の電子制御装置は、セマフォの代わりにメモリ保護部を使用するため、アクセスするプロセッサコア側において特殊なインターフェースが必要にならない。これにより、本開示の電子制御装置は、プロセッサコア間の排他制御に起因したオーバーヘッドの増加を抑制することができる。 In the electronic control device of the present disclosure configured in this way, the memory protection unit has a plurality of processors so that when a specific processor core is accessing the shared data, other processor cores cannot access the shared data. Control the core. That is, since the electronic control device of the present disclosure uses a memory protection unit instead of the semaphore, a special interface is not required on the accessing processor core side. Thereby, the electronic control device of the present disclosure can suppress an increase in overhead due to exclusive control between processor cores.
[第1実施形態]
以下に本開示の第1実施形態を図面とともに説明する。
本実施形態の電子制御装置1(以下、ECU1)は、図1に示すように、マイクロコンピュータ2(以下、マイコン2)を備える。ECUは、Electronic Control Unitの略である。
[First Embodiment]
The first embodiment of the present disclosure will be described below together with the drawings.
As shown in FIG. 1, the electronic control device 1 (hereinafter, ECU 1) of the present embodiment includes a microcomputer 2 (hereinafter, microcomputer 2). ECU is an abbreviation for Electronic Control Unit.
マイコン2は、プロセッサコア11,12,13と、ROM14と、メモリ保護装置15(以下、MPU15)と、システムバス16と、RAM21,22,23とを備える。MPUは、Memory Protection Unitの略である。
The
マイコン2の各種機能は、プロセッサコア11,12,13が非遷移的実体的記録媒体に格納されたプログラムを実行することにより実現される。この例では、ROM14が、プログラムを格納した非遷移的実体的記録媒体に該当する。また、このプログラムの実行により、プログラムに対応する方法が実行される。なお、プロセッサコア11,12,13が実行する機能の一部または全部を、一つあるいは複数のIC等によりハードウェア的に構成してもよい。また、ECU1を構成するマイクロコンピュータの数は1つでも複数でもよい。
Various functions of the
プロセッサコア11,12,13は、プログラムを実行するための演算ユニットおよびレジスタなどを備える。プロセッサコア11,12,13は、図示しないエンジンを制御するための各種制御処理を分散して実行する。
The
ROM14は、データの書き換えが不能な不揮発性メモリである。ROM14は、プロセッサコア11,12,13が実行するプログラム等を記憶する。
MPU15は、RAM21,22,23に対するデータの書き込みと読み込みとを制御する。
The
The MPU 15 controls writing and reading of data to the
システムバス16は、プロセッサコア11,12,13、ROM14、MPU15およびRAM21,22,23を、互いにデータ入出力可能に接続する。
RAM21,22,23は、揮発性メモリである。RAM21,22,23はそれぞれ、プロセッサコア11,12,13の演算結果等を一時的に記憶する。
The
The
RAM21は、更新データ31と、ハンドシェーク用データ41,51とを記憶する。更新データ31は、プロセッサコア11が専用で更新するデータである。ハンドシェーク用データ41は、プロセッサコア12が更新データ31へアクセスする場合に利用されるデータである。ハンドシェーク用データ51は、プロセッサコア13が更新データ31へアクセスする場合に利用されるデータである。
The
RAM22は、更新データ32と、ハンドシェーク用データ42,52とを記憶する。更新データ32は、プロセッサコア12が専用で更新するデータである。ハンドシェーク用データ42は、プロセッサコア11が更新データ32へアクセスする場合に利用されるデータである。ハンドシェーク用データ52は、プロセッサコア13が更新データ32へアクセスする場合に利用されるデータである。
The
RAM23は、更新データ33と、ハンドシェーク用データ43,53とを記憶する。更新データ33は、プロセッサコア13が専用で更新するデータである。ハンドシェーク用データ43は、プロセッサコア11が更新データ33へアクセスする場合に利用されるデータである。ハンドシェーク用データ53は、プロセッサコア12が更新データ33へアクセスする場合に利用されるデータである。
The
MPU15は、RAM21の更新データ31に対してはプロセッサコア11のみが更新することができるように、プロセッサコア11,12,13を制御する。同様にMPU15は、RAM22の更新データ32に対してはプロセッサコア12のみが更新することができるように、プロセッサコア11,12,13を制御する。またMPU15は、RAM23の更新データ33に対してはプロセッサコア13のみが更新することができるように、プロセッサコア11,12,13を制御する。
The
さらにMPU15は、RAM21,22,23への読出アクセス要求がプロセッサコア11,12,13から入力されると、読出アクセスを許可するか禁止するかを判断する。そしてMPU15は、読出アクセスを許可する場合には読出アクセス許可通知を、読出アクセスを禁止する場合には読出アクセス禁止通知を、アクセス要求元へ出力する。
Further, the
そしてプロセッサコア11,12,13は、MPU15から入力された読出アクセス許可通知または読出アクセス禁止通知に基づいて、読出アクセスを実行するか否かを判断する。
Then, the
またROM14は、テストブロックIDテーブルTB1を記憶する。テストブロックIDテーブルTB1は、プロセッサコア11がRAM21に対してRAMテストを実行するときにプロセッサコア11により参照される。テストブロックIDテーブルTB1は、図2に示すように、複数のテストブロックを識別するためのID番号と、ID番号に対応するテストブロックのアドレス範囲とを記憶するテーブルである。図2に示すテストブロックIDテーブルTB1では、テーブルの左の列に記載されている「1」,「2」,「3」,「4」,「5」がID番号である。
The
次に、プロセッサコア11が実行する初期設定処理の手順を説明する。初期設定処理は、プロセッサコア11が起動した直後に開始される処理である。
初期設定処理が実行されると、プロセッサコア11は、図3に示すように、S10にて、RAM21に設けられたブロック指示値TestBlockに1を格納し、初期設定処理を終了する。
Next, the procedure of the initial setting process executed by the
When the initial setting process is executed, as shown in FIG. 3, the
次に、プロセッサコア11が実行するRAMテスト処理の手順を説明する。RAMテスト処理は、予め設定された実行周期が経過する毎に開始される処理である。本実施形態では、RAMテスト処理の実行周期は、例えば10msに設定されている。
Next, the procedure of the RAM test process executed by the
RAMテスト処理が実行されると、プロセッサコア11は、図4に示すように、まずS110にて、プロセッサコア12,13に対する読出禁止設定を行う。具体的には、プロセッサコア11は、RAM21の更新データ31に対するプロセッサコア12,13からの読出アクセスを禁止するための禁止設定要求をMPU15へ出力する。この禁止設定要求がMPU15に入力されると、MPU15は、MPU15に設けられたメモリ保護設定レジスタに、RAM21の更新データ31に対するプロセッサコア12,13からの読出アクセスを禁止する旨(以下、読出アクセス禁止)を設定する。
When the RAM test process is executed, the
次にプロセッサコア11は、S120にて、ROM14に記憶されているテストブロックIDテーブルTB1を参照して、ブロック指示値TestBlockに格納されている値に一致するID番号に対応するテストブロックのアドレス範囲を取得する。
Next, in S120, the
そしてプロセッサコア11は、S130にて、S120で取得したアドレス範囲について、RAM21に対するRAMテストを実行する。RAMテストでは、プロセッサコア11は、RAM21から読み出したデータの値を反転させた反転データをRAM21に書き込んだ後に、書き込んだ書込データを読み出し、読み込んだ反転データが書込データと一致しているか否かを判断することにより、RAM21の故障を診断する。そしてプロセッサコア11は、診断を行った後に、元の値をRAM21に書き込む。
Then, the
次にプロセッサコア11は、S140にて、ブロック指示値TestBlockに格納されている値に1を加算した加算値をブロック指示値TestBlockに格納する。
そしてプロセッサコア11は、S150にて、ハンドシェーク用データ41,51に「読出要求あり」が設定されているか否かを判断する。ここで、ハンドシェーク用データ41,51に「読出要求なし」が設定されている場合には、プロセッサコア11は、S160にて、ブロック指示値TestBlockに格納されている値が予め設定されているテーブルブロック数MaxBlockより大きいか否かを判断する。本実施形態では、テーブルブロック数MaxBlockは、5に設定されている。
Next, in S140, the
Then, the
ここで、ブロック指示値TestBlockに格納されている値がテーブルブロック数MaxBlock以下である場合には、プロセッサコア11は、S120に移行する。一方、ブロック指示値TestBlockに格納されている値がテーブルブロック数MaxBlockより大きい場合には、プロセッサコア11は、S170にて、ブロック指示値TestBlockに1を格納し、S180に移行する。
Here, when the value stored in the block instruction value TestBlock is less than or equal to the number of table blocks MaxBlock, the
またS150にて、ハンドシェーク用データ41,51の少なくとも一方に「読出要求あり」が設定されている場合には、プロセッサコア11は、S180に移行する。
そして、S180に移行すると、プロセッサコア11は、プロセッサコア12,13に対する読出許可設定を行う。具体的には、プロセッサコア11は、RAM21の更新データ31に対するプロセッサコア12,13からの読出アクセスを許可するための許可設定要求をMPU15へ出力する。この許可設定要求がMPU15に入力されると、MPU15は、MPU15に設けられたメモリ保護設定レジスタに、RAM21の更新データ31に対するプロセッサコア12,13からの読出アクセスを許可する旨(以下、読出アクセス許可)を設定する。
Further, in S150, when "Read request" is set for at least one of the
Then, upon shifting to S180, the
さらにプロセッサコア11は、S190にて、ハンドシェーク用データ41,51に「読出要求なし」を設定し、RAMテスト処理を終了する。
次に、プロセッサコア12が実行するアクセスエラー処理の手順を説明する。アクセスエラー処理は、MPU15から読出アクセス禁止通知が入力された場合に開始される処理である。
Further, the
Next, the procedure of access error processing executed by the
アクセスエラー処理が実行されると、プロセッサコア12は、図5に示すように、まずS310にて、ハンドシェーク用データ41に「読出要求あり」を設定する。
そしてプロセッサコア12は、S320にて、ハンドシェーク用データ41に「読出要求あり」が設定されているか否かを判断する。ここで、「読出要求あり」が設定されている場合には、プロセッサコア12は、S320の処理を繰り返すことにより、ハンドシェーク用データ41に「読出要求なし」が設定されるまで待機する。
When the access error processing is executed, the
Then, the
そして、ハンドシェーク用データ41に「読出要求なし」が設定されると、プロセッサコア12は、S330にて、エラーが発生した処理(すなわち、入力された読出アクセス禁止通知の原因となった処理)に戻って、アクセスエラー処理を終了する。
Then, when "no read request" is set in the
プロセッサコア13が実行するアクセスエラー処理は、ハンドシェーク用データ41がハンドシェーク用データ51に変更された点以外は、プロセッサコア12が実行するアクセスエラー処理と同一であるため、詳細な説明を省略する。
Since the access error processing executed by the
また、プロセッサコア12,13も、初期設定処理およびRAMテスト処理を実行する。
プロセッサコア12の初期設定処理およびRAMテスト処理は、RAM21の更新データ31およびハンドシェーク用データ41,51の代わりにRAM22の更新データ32およびハンドシェーク用データ42,52を対象とする点がプロセッサコア11の初期設定処理およびRAMテスト処理と異なる。
The
The point that the initial setting process and the RAM test process of the
同様に、プロセッサコア13の初期設定処理およびRAMテスト処理は、RAM21の更新データ31およびハンドシェーク用データ41,51の代わりにRAM23の更新データ33およびハンドシェーク用データ43,53を対象とする点がプロセッサコア11の初期設定処理およびRAMテスト処理と異なる。
Similarly, the initial setting process and the RAM test process of the
プロセッサコア11,13は、RAM21を対象とするアクセスエラー処理をプロセッサコア12,13が実行するのと同様に、RAM22を対象とするアクセスエラー処理を実行する。同様にプロセッサコア11,12は、RAM23を対象とするアクセスエラー処理を実行する。
The
次に、MPU15によるアクセス調停の第1の具体例を説明する。
図6に示すように、プロセッサコア11は、まず、更新データ31に対するプロセッサコア12,13からの読出アクセスを禁止する読出アクセス禁止を設定する。矢印L1は、プロセッサコア11が禁止設定要求をMPU15へ出力することを示す。
Next, a first specific example of access arbitration by
As shown in FIG. 6, the
次にプロセッサコア11は、矢印L2で示すように、更新データ31に対してデータ更新を行う。そしてプロセッサコア11は、矢印L3で示すように、更新データ31に対するプロセッサコア12,13からの読出アクセスを許可する読出アクセス許可を設定する。矢印L3は、プロセッサコア11が許可設定要求をMPU15へ出力することを示す。
Next, the
その後にプロセッサコア12は、更新データ31への読出アクセス要求をMPU15へ出力する。矢印L4は、プロセッサコア12が更新データ31への読出アクセスを要求していることを示す。
After that, the
ここで、MPU15では読出アクセス許可が設定されているため、MPU15はプロセッサコア12へ読出アクセス許可通知を出力する。
プロセッサコア12は、MPU15から読出アクセス許可通知を取得すると、更新データ31へアクセスして、更新データ31からデータを読み出す。矢印L5は、プロセッサコア12が更新データ31からデータを読み出すことを示す。
Here, since the read access permission is set in the
When the
さらにプロセッサコア13は、更新データ31への読出アクセス要求をMPU15へ出力する。矢印L6は、プロセッサコア13が更新データ31への読出アクセスを要求していることを示す。
Further, the
ここで、MPU15では読出アクセス許可が設定されているため、MPU15はプロセッサコア13へ読出アクセス許可通知を出力する。
プロセッサコア13は、MPU15から読出アクセス許可通知を取得すると、更新データ31へアクセスして、更新データ31からデータを読み出す。矢印L7は、プロセッサコア13が更新データ31からデータを読み出すことを示す。
Here, since the read access permission is set in the
When the
次に、MPU15によるアクセス調停の第2の具体例を説明する。
図7に示すように、プロセッサコア11は、まず、更新データ31に対するプロセッサコア12,13からの読出アクセスを禁止する読出アクセス禁止を設定する。矢印L11は、プロセッサコア11が禁止設定要求をMPU15へ出力することを示す。
Next, a second specific example of access arbitration by
As shown in FIG. 7, the
そしてプロセッサコア11は、RAMテスト処理の実行を開始する。四角形SQ1は、プロセッサコア11がRAMテスト処理を実行していることを示す。
RAMテスト処理が開始された後に、プロセッサコア12が、更新データ31への読出アクセス要求をMPU15へ出力する。矢印L12は、プロセッサコア12が更新データ31への読出アクセスを要求していることを示す。
Then, the
After the RAM test process is started, the
ここで、MPU15では読出アクセス禁止が設定されているため、矢印L13で示すように、MPU15はプロセッサコア12へ読出アクセス禁止通知を出力する。
プロセッサコア12は、MPU15から読出アクセス禁止通知を取得すると、アクセスエラー処理の実行を開始し、まず、矢印L14で示すように、ハンドシェーク用データ41に「読出要求あり」を設定する。
Here, since the read access prohibition is set in the
When the
その後にプロセッサコア12は、四角形SQ2および矢印L15で示すように、ハンドシェーク用データ41を確認して、ハンドシェーク用データ41に「読出要求なし」が設定されるまで待機する。
After that, the
一方、プロセッサコア11は、矢印L16で示すように、更新データ31に対するRAMテストを実行する。さらにプロセッサコア11は、矢印L17で示すように、ハンドシェーク用データ41,51に「読出要求あり」が設定されているか否かを判断する。
On the other hand, the
ここで、ハンドシェーク用データ41に「読出要求あり」が設定されているため、プロセッサコア11は、更新データ31に対するプロセッサコア12,13からの読出アクセスを許可する読出アクセス許可を設定する。矢印L18は、プロセッサコア11が許可設定要求をMPU15へ出力することを示す。
Here, since "read request" is set in the
そしてプロセッサコア11は、矢印L19で示すように、ハンドシェーク用データ41に「読出要求なし」を設定する。
ハンドシェーク用データ41に「読出要求なし」が設定されると、プロセッサコア12は、アクセスエラー処理を終了し、更新データ31への読出アクセス要求をMPU15へ出力する。矢印L20は、プロセッサコア12が更新データ31への読出アクセスを要求していることを示す。
Then, the
When "no read request" is set for the
ここで、MPU15では読出アクセス許可が設定されているため、MPU15はプロセッサコア12へ読出アクセス許可通知を出力する。
プロセッサコア12は、MPU15から読出アクセス許可通知を取得すると、更新データ31へアクセスして、更新データ31からデータを読み出す。矢印L21は、プロセッサコア12が更新データ31からデータを読み出すことを示す。
Here, since the read access permission is set in the
When the
さらにプロセッサコア13は、更新データ31への読出アクセス要求をMPU15へ出力する。矢印L22は、プロセッサコア13が更新データ31への読出アクセスを要求していることを示す。
Further, the
ここで、MPU15では読出アクセス許可が設定されているため、MPU15はプロセッサコア13へ読出アクセス許可通知を出力する。
プロセッサコア13は、MPU15から読出アクセス許可通知を取得すると、更新データ31へアクセスして、更新データ31からデータを読み出す。矢印L23は、プロセッサコア13が更新データ31からデータを読み出すことを示す。
Here, since the read access permission is set in the
When the
次に、セマフォによる排他制御を説明する。なお、マイコン2はセマフォを備えていないが、セマフォの説明を簡略化するために、プロセッサコア11,12がセマフォの獲得および解放を行うとして説明する。
Next, exclusive control by the semaphore will be described. Although the
図8に示すように、まず、時刻t0では、セマフォが解放されている。ブロックB1は、セマフォが解放されている期間を示す。
そして時刻t1に、プロセッサコア11がセマフォを獲得し、プロセッサコア11は、時刻t1から時刻t2までの間に、ID番号が1であるテストブロックに対してRAMテストを実行する。ブロックB2は、セマフォがプロセッサコア11により獲得されている期間を示す。ブロックB3は、ID番号が1であるテストブロックに対してRAMテストが行われている期間を示す。
As shown in FIG. 8, first, at time t0, the semaphore is released. Block B1 indicates the period during which the semaphore is released.
Then, at time t1, the
プロセッサコア11は、時刻t2から時刻t3までの間に、ID番号が2であるテストブロックに対してRAMテストを実行する。ブロックB4は、ID番号が2であるテストブロックに対してRAMテストが行われている期間を示す。
The
プロセッサコア11は、時刻t3から時刻t4までの間に、ID番号が3であるテストブロックに対してRAMテストを実行する。ブロックB5は、ID番号が3であるテストブロックに対してRAMテストが行われている期間を示す。
The
プロセッサコア11は、時刻t4から時刻t5までの間に、ID番号が4であるテストブロックに対してRAMテストを実行する。ブロックB6は、ID番号が4であるテストブロックに対してRAMテストが行われている期間を示す。
The
プロセッサコア11は、時刻t5から時刻t6までの間に、ID番号が5であるテストブロックに対してRAMテストを実行する。ブロックB7は、ID番号が5であるテストブロックに対してRAMテストが行われている期間を示す。
The
時刻t6に、ID番号が5であるテストブロックに対するRAMテストが終了すると、プロセッサコア11は、セマフォを解放する。
プロセッサコア12は、時刻t1から時刻t6までの間に、セマフォを獲得しようとして、失敗する。ブロックB8は、プロセッサコア12がセマフォを獲得するまで待機している期間を示す。
When the RAM test for the test block having the
The
そして時刻t7に、プロセッサコア12がセマフォを獲得し、プロセッサコア12は、時刻t7から時刻t8までの間に、更新データ31からデータを読み出す。ブロックB9は、セマフォが解放されている期間を示す。ブロックB10は、セマフォがプロセッサコア12により獲得されている期間を示す。ブロックB11は、プロセッサコア12がデータ読出を行っている期間を示す。
Then, at time t7, the
時刻t8に、データ読出が終了すると、プロセッサコア12は、セマフォを解放する。ブロックB12は、セマフォが解放されている期間を示す。
次に、本実施形態のマイコン2による排他制御を説明する。
When the data reading is completed at time t8, the
Next, exclusive control by the
図9に示すように、まず、時刻t20では、MPU15において読出アクセス許可が設定されている。ブロックB21は、読出アクセス許可が設定されている期間を示す。
そして時刻t21に、プロセッサコア11が禁止設定要求をMPU15へ出力する。これにより、MPU15は、読出アクセス禁止を設定する。そしてプロセッサコア11は、時刻t22まで、ID番号が1であるテストブロックに対してRAMテストを実行する。
As shown in FIG. 9, first, at time t20, the read access permission is set in the
Then, at time t21, the
ID番号が1であるテストブロックに対するRAMテストが終了すると、プロセッサコア11は、許可設定要求をMPU15へ出力する。これにより、MPU15は、読出アクセス許可を設定する。ブロックB22は、ID番号が1であるテストブロックに対してRAMテストが行われている期間を示す。ブロックB23は、読出アクセス禁止が設定されている期間を示す。
When the RAM test for the test block having the
プロセッサコア11は、時刻t21から時刻t22までの間に、読出アクセス要求をMPU15へ出力する。しかし、MPU15において読出アクセス禁止が設定されているため、プロセッサコア12は、読出アクセスが許可されるまで待機する。そしてプロセッサコア12は、時刻t23に、読出アクセス要求をMPU15へ出力する。時刻t23では、MPU15において読出アクセス許可が設定されているため、プロセッサコア12は、更新データ31からデータを読み出す。ブロックB24は、読出アクセスが許可されるまで待機している期間を示す。ブロックB25は、読出アクセス許可が設定されている期間を示す。ブロックB26は、プロセッサコア12がデータ読出を行っている期間を示す。
The
そしてプロセッサコア11は、時刻t24に、ID番号が2であるテストブロックに対してRAMテストを開始する。さらにプロセッサコア11は、時刻t25に、ID番号が3であるテストブロックに対してRAMテストを開始する。ブロックB27は、ID番号が2であるテストブロックに対してRAMテストが行われている期間を示す。
Then, the
このように構成されたECU1は、プロセッサコア11,12,13と、RAM21と、MPU15とを備える。
RAM21は、プロセッサコア11,12,13のそれぞれが読出可能にアクセスすることができる更新データ31を記憶する。
The
The
MPU15は、プロセッサコア11が更新データ31へアクセスしている場合にはプロセッサコア12,13が更新データ31へアクセスすることができないようにプロセッサコア11,12,13を制御する。
The
このようにECU1では、MPU15が、プロセッサコア11が更新データ31へアクセスしている場合にはプロセッサコア12,13が更新データ31へアクセスすることができないようにプロセッサコア11,12,13を制御する。すなわち、ECU1は、セマフォの代わりにMPU15を使用するため、アクセスするプロセッサコア側において特殊なインターフェースが必要にならない。これにより、ECU1は、プロセッサコア間の排他制御に起因したオーバーヘッドの増加とプログラムコードの増加とを抑制することができる。
In this way, in the
またECU1は、プロセッサコア11とプロセッサコア12,13との間のデータ授受のために専用の共有メモリを備える必要がなく、プロセッサコア11,12,13のそれぞれがRAM21に直接アクセスすることによりプロセッサコア11とプロセッサコア12,13との間でデータを授受することができる。
Further, the
またプロセッサコア11は、プロセッサコア11が更新データ31へアクセスする期間内に、MPU15を、プロセッサコア12,13からの更新データ31への読出アクセスを禁止する読出アクセス禁止に設定する。またプロセッサコア11は、プロセッサコア11が更新データ31へアクセスしない期間内に、MPU15を、プロセッサコア12,13からの更新データ31への読出アクセスを許可する読出アクセス許可に設定する。
Further, the
データ更新が特定のプロセッサコアによって行われる場合には、通常は、他のプロセッサコアからのデータ書込は禁止されても、データ読出までは禁止されない。データ読出がデータ書込に影響しないためである。 When data update is performed by a specific processor core, normally, even if data writing from other processor cores is prohibited, data reading is not prohibited. This is because reading data does not affect writing data.
これに対し、ECU1は、他のプロセッサコアからのデータ読出を敢えて禁止にすることで、MPU15を、意図した読出アクセス要求の検出に用いる。通常は、意図しない不正なアクセスを検出するためにMPUが用いられる。ECU1は、意図したアクセスを検出するためにMPU15を用いることにより、セマフォを用いた場合においてアクセスの度に常時発生するオーバーヘッドを低減することができる。
On the other hand, the
また、ECU1のRAM21は、プロセッサコア11,12,13間のハンドシェークに用いられ、且つ、プロセッサコア11,12,13のそれぞれが読出可能および更新可能にアクセスすることができるハンドシェーク用データ41,51を記憶する。
Further, the
MPU15は、プロセッサコア11が更新データ31へアクセスする期間内にプロセッサコア12,13が更新データ31への読出アクセス要求をMPU15へ出力した場合には、プロセッサコア12,13へ読出アクセス禁止通知を出力する。
If the
プロセッサコア12,13はそれぞれ、MPU15から読出アクセス禁止通知を取得すると、プロセッサコア11とプロセッサコア12,13との間のハンドシェークに用いられるハンドシェーク用データ41,51に、読出アクセス要求が有ることを示す「読出要求あり」を設定する。
When the
プロセッサコア12,13はそれぞれ、ハンドシェーク用データ41,51が、「読出要求あり」が設定されている状態から、「読出要求なし」が設定されている状態に変化した場合に、更新データ31への読出アクセス要求をMPU15へ再度出力する。
The
プロセッサコア11は、プロセッサコア11が更新データ31へアクセスしている期間内において、1つのテストブロックに対するRAMテストが終了する毎に繰り返しハンドシェーク用データ41,51を確認し、ハンドシェーク用データ41,51に「読出要求あり」が設定されているか否かを判断する。
The
プロセッサコア11は、ハンドシェーク用データ41,51に「読出要求あり」が設定されていると判断した場合に、RAMテストを中断して、MPU15を読出アクセス許可に設定する。
When the
プロセッサコア11は、ハンドシェーク用データ41,51に「読出要求あり」が設定されていると判断した場合に、ハンドシェーク用データ41,51に、読出アクセス要求が無いことを示す「読出要求なし」を設定する。
When the
これにより、ECU1は、プロセッサコア11がプロセッサコア12,13からの読出アクセス要求を検出した場合に、RAMテストを中断して、プロセッサコア12,13に更新データ31への読出アクセスを実行させることができる。このため、ECU1は、プロセッサコア12,13が更新データ31への読出アクセスのために待機する時間を短縮することができ、プロセッサコア12,13の処理効率を向上させることができる。
As a result, when the
以上説明した実施形態において、ECU1は電子制御装置に相当し、RAM21は共有データ記憶部に相当し、MPU15はメモリ保護部に相当する。
また、更新データ31は共有データに相当し、プロセッサコア11は特定プロセッサコアに相当し、プロセッサコア12,13は他プロセッサコアに相当する。
In the embodiment described above, the
Further, the
また、S110は禁止設定部としての処理に相当し、S180は許可設定部としての処理に相当し、読出アクセス禁止はアクセス禁止に相当し、読出アクセス許可はアクセス許可に相当する。 Further, S110 corresponds to processing as a prohibition setting unit, S180 corresponds to processing as a permission setting unit, read access prohibition corresponds to access prohibition, and read access permission corresponds to access permission.
また、RAM21はハンドシェーク記憶部に相当し、読出アクセス禁止通知の出力はメモリアクセス違反処理に相当し、S310は有設定部としての処理に相当し、S320,S330は再アクセス部としての処理に相当し、「読出要求あり」はアクセス要求有に相当する。
Further, the
また、S150は要求判断部および中断部としての処理に相当し、S190は無設定部としての処理に相当し、「1つのテストブロックに対するRAMテストが終了すること」は確認条件に相当し、RAMテストはアクセス処理に相当し、「読出要求なし」はアクセス要求無に相当する。 Further, S150 corresponds to the processing as the request judgment unit and the interruption unit, S190 corresponds to the processing as the non-setting unit, and "the RAM test for one test block is completed" corresponds to the confirmation condition, and the RAM The test corresponds to access processing, and "no read request" corresponds to no access request.
[第2実施形態]
以下に本開示の第2実施形態を図面とともに説明する。なお第2実施形態では、第1実施形態と異なる部分を説明する。共通する構成については同一の符号を付す。
[Second Embodiment]
The second embodiment of the present disclosure will be described below together with the drawings. In the second embodiment, a part different from the first embodiment will be described. The same reference numerals are given to common configurations.
第2実施形態のECU1は、優先度テーブルTB2と、第1プロセッサ処理およびデータ読出処理とが追加された点が第1実施形態と異なる。
ROM14は、優先度テーブルTB2を記憶する。優先度テーブルTB2は、図10に示すように、プロセッサコア11,12,13を識別するためのプロセッサコア番号と、プロセッサコア番号に対応する優先度とを記憶するテーブルである。プロセッサコア番号「1」,「2」,「3」はそれぞれ、プロセッサコア11,12,13に対応する。図10に示す優先度テーブルTB2では、プロセッサコア11の優先度が「高」、プロセッサコア12の優先度が「中」、プロセッサコア13の優先度が「低」に設定されている。
The
The
次に、プロセッサコア11が実行する第1プロセッサ処理の手順を説明する。第1プロセッサ処理は、予め設定された実行周期が経過する毎に開始される処理である。本実施形態では、第1プロセッサ処理の実行周期は、例えば10msに設定されている。また第1プロセッサ処理は、分割されたN個の処理(以下、分割処理)を順次実行するための処理である。Nは、2以上の整数である。
Next, the procedure of the first processor processing executed by the
第1プロセッサ処理が実行されると、プロセッサコア11は、図11に示すように、まずS410にて、S110と同様にして、プロセッサコア12,13に対する読出禁止設定を行う。
When the first processor processing is executed, as shown in FIG. 11, the
またプロセッサコア11は、S420にて、RAM21に設けられた処理指示値iに1を格納する。
そしてプロセッサコア11は、S430にて、i番目の分割処理を実行する。さらにプロセッサコア11は、S440にて、処理指示値iに格納されている値に1を加算した加算値を処理指示値iに格納する。
Further, the
Then, the
次にプロセッサコア11は、S450にて、ハンドシェーク用データ41,51を確認する。
そしてプロセッサコア11は、S460にて、ハンドシェーク用データ41,51の少なくとも一方に「読出要求あり」が設定されているか否かを判断する。ここで、ハンドシェーク用データ41,51に「読出要求なし」が設定されている場合には、プロセッサコア11は、S470にて、処理指示値iに格納されている値が予め設定されている分割処理数Nより大きいか否かを判断する。
Next, the
Then, the
ここで、処理指示値iに格納されている値が分割処理数N以下である場合には、プロセッサコア11は、S430に移行する。一方、処理指示値iに格納されている値が分割処理数より大きい場合には、プロセッサコア11は、S480にて、S180と同様にして、プロセッサコア12,13に対する読出許可設定を行い、第1プロセッサ処理を終了する。
Here, when the value stored in the processing instruction value i is the number of division processes N or less, the
またS460にて、ハンドシェーク用データ41,51の少なくとも一方に「読出要求あり」が設定されている場合には、プロセッサコア11は、S490にて、優先度テーブルTB2を参照する。
Further, in S460, when "Read request" is set in at least one of the
そしてプロセッサコア11は、S500にて、「読出要求あり」が設定されているハンドシェーク用データに対応するプロセッサコアのうち、優先度が最も高いプロセッサコアに対する読出許可設定を行う。例えば、「読出要求あり」が設定されているハンドシェーク用データに対応するプロセッサコアが、プロセッサコア12,13である場合には、プロセッサコア11は、プロセッサコア12に対する読出許可設定を行う。
Then, in S500, the
さらにプロセッサコア11は、S510にて、「読出要求あり」が設定されているハンドシェーク用データに対応するプロセッサコアのうち、優先度が最も高いプロセッサコアに対するハンドシェーク用データに「読出要求なし」を設定し、第1プロセッサ処理を終了する。
Further, the
次に、プロセッサコア12が実行するデータ読出処理の手順を説明する。データ読出処理は、プロセッサコア12において更新データ31へのデータ読出要求が発生した場合に開始される処理である。
Next, the procedure of the data reading process executed by the
データ読出処理が実行されると、プロセッサコア12は、図12に示すように、まずS610にて、データ読出アクセスを行う。具体的には、プロセッサコア12は、更新データ31への読出アクセス要求をMPU15へ出力する。
When the data read process is executed, the
そしてプロセッサコア12は、S620にて、アクセスエラーがあるか否かを判断する。具体的には、プロセッサコア12は、MPU15から読出アクセス禁止通知を取得した場合に、アクセスエラーがあると判断し、MPU15から読出アクセス許可通知を取得した場合に、アクセスエラーがないと判断する。
Then, the
ここで、アクセスエラーがある場合には、プロセッサコア12は、S630にて、ハンドシェーク用データ41に「読出要求あり」を設定する。
そしてプロセッサコア12は、S640にて、ハンドシェーク用データ41に「読出要求あり」が設定されているか否かを判断する。ここで、「読出要求あり」が設定されている場合には、プロセッサコア12は、S640の処理を繰り返すことにより、ハンドシェーク用データ41に「読出要求なし」が設定されるまで待機する。
Here, when there is an access error, the
Then, the
そして、ハンドシェーク用データ41に「読出要求なし」が設定されると、S650に移行する。
またS620にて、アクセスエラーがない場合には、S650に移行する。
Then, when "no read request" is set in the
If there is no access error in S620, the process proceeds to S650.
そしてS650に移行すると、プロセッサコア12は、更新データ31にアクセスして、更新データ31からデータを読み出す。
そしてプロセッサコア12は、S660にて、ハンドシェーク用データ51を確認する。
Then, when shifting to S650, the
Then, the
そしてプロセッサコア11は、S670にて、ハンドシェーク用データ51に「読出要求あり」が設定されているか否かを判断する。ここで、ハンドシェーク用データ51に「読出要求なし」が設定されている場合には、プロセッサコア12は、S680にて、プロセッサコア13に対する読出許可設定を行い、データ読出処理を終了する。
Then, the
またS670にて、ハンドシェーク用データ51に「読出要求あり」が設定されている場合には、プロセッサコア12は、S690にて、優先度テーブルTB2を参照する。
そしてプロセッサコア12は、S700にて、「読出要求あり」が設定されているハンドシェーク用データに対応するプロセッサコアのうち、優先度が最も高いプロセッサコアに対する読出許可設定を行う。例えば、「読出要求あり」が設定されているハンドシェーク用データに対応するプロセッサコアが、プロセッサコア13である場合には、プロセッサコア12は、プロセッサコア13に対する読出許可設定を行う。
Further, in S670, when "Read request" is set in the
Then, in S700, the
さらにプロセッサコア12は、S710にて、「読出要求あり」が設定されているハンドシェーク用データに対応するプロセッサコアのうち、優先度が最も高いプロセッサコアに対するハンドシェーク用データに「読出要求なし」を設定し、データ読出処理を終了する。
Further, the
プロセッサコア13が実行するデータ読出処理は、ハンドシェーク用データ41がハンドシェーク用データ51に変更された点以外は、プロセッサコア12が実行するデータ読出処理と同一であるため、詳細な説明を省略する。
Since the data reading process executed by the
次に、第2実施形態のMPU15によるアクセス調停の具体例を説明する。
図13に示すように、プロセッサコア11は、まず、更新データ31に対するプロセッサコア12,13からの読出アクセスを禁止する読出アクセス禁止を設定する。矢印L31は、プロセッサコア11が禁止設定要求をMPU15へ出力することを示す。
Next, a specific example of access arbitration by the
As shown in FIG. 13, the
そしてプロセッサコア11は、N個の分割処理の順次実行を開始する。四角形SQ3は、プロセッサコア11がN個の分割処理を順次実行していることを示す。
N個の分割処理の順次実行が開始された後に、プロセッサコア12が、更新データ31への読出アクセス要求をMPU15へ出力する。矢印L32は、プロセッサコア12が更新データ31への読出アクセスを要求していることを示す。
Then, the
After the sequential execution of the N division processes is started, the
ここで、MPU15では読出アクセス禁止が設定されているため、矢印L33で示すように、MPU15はプロセッサコア12へ読出アクセス禁止通知を出力する。
プロセッサコア12は、MPU15から読出アクセス禁止通知を取得すると、矢印L34で示すように、ハンドシェーク用データ41に「読出要求あり」を設定する。
Here, since the read access prohibition is set in the
When the
その後にプロセッサコア12は、四角形SQ4および矢印L35で示すように、ハンドシェーク用データ41を確認して、ハンドシェーク用データ41に「読出要求なし」が設定されるまで待機する。
After that, the
またプロセッサコア13が、更新データ31への読出アクセス要求をMPU15へ出力する。矢印L36は、プロセッサコア13が更新データ31への読出アクセスを要求していることを示す。
Further, the
ここで、MPU15では読出アクセス禁止が設定されているため、矢印L37で示すように、MPU15はプロセッサコア13へ読出アクセス禁止通知を出力する。
プロセッサコア13は、MPU15から読出アクセス禁止通知を取得すると、矢印L38で示すように、ハンドシェーク用データ51に「読出要求あり」を設定する。
Here, since the read access prohibition is set in the
When the
その後にプロセッサコア13は、四角形SQ5および矢印L39で示すように、ハンドシェーク用データ51を確認して、ハンドシェーク用データ51に「読出要求なし」が設定されるまで待機する。
After that, the
一方、プロセッサコア11は、N個の分割処理の順次実行し、矢印L40で示すように、更新データ31のデータを更新する。さらにプロセッサコア11は、矢印L41で示すように、ハンドシェーク用データ41,51に「読出要求あり」が設定されているか否かを判断する。
On the other hand, the
ここで、ハンドシェーク用データ41,51に「読出要求あり」が設定されているため、プロセッサコア11は、矢印L42で示すように、ROM14に記憶されている優先度テーブルTB2を参照する。
Here, since "read request" is set for the
そしてプロセッサコア11は、プロセッサコア12,13のうち、優先度が最も高いプロセッサコア12からの読出アクセスを許可する読出アクセス許可を設定する。矢印L43は、プロセッサコア11が、プロセッサコア12の許可設定要求をMPU15へ出力することを示す。
Then, the
そしてプロセッサコア11は、矢印L44で示すように、ハンドシェーク用データ41に「読出要求なし」を設定する。
ハンドシェーク用データ41に「読出要求なし」が設定されると、プロセッサコア12は、更新データ31への読出アクセス要求をMPU15へ出力する。矢印L45は、プロセッサコア12が更新データ31への読出アクセスを要求していることを示す。
Then, the
When "no read request" is set for the
ここで、MPU15では読出アクセス許可が設定されているため、MPU15はプロセッサコア12へ読出アクセス許可通知を出力する。
プロセッサコア12は、MPU15から読出アクセス許可通知を取得すると、更新データ31へアクセスして、更新データ31からデータを読み出す。矢印L46は、プロセッサコア12が更新データ31からデータを読み出すことを示す。
Here, since the read access permission is set in the
When the
ここで、ハンドシェーク用データ51に「読出要求あり」が設定されているため、プロセッサコア12は、矢印L47で示すように、ROM14に記憶されている優先度テーブルTB2を参照する。
Here, since the
そしてプロセッサコア12は、プロセッサコア13からの読出アクセスを許可する読出アクセス許可を設定する。矢印L48は、プロセッサコア12が、プロセッサコア13の許可設定要求をMPU15へ出力することを示す。
Then, the
そしてプロセッサコア11は、矢印L49で示すように、ハンドシェーク用データ51に「読出要求なし」を設定する。
ハンドシェーク用データ51に「読出要求なし」が設定されると、プロセッサコア13は、更新データ31への読出アクセス要求をMPU15へ出力する。矢印L50は、プロセッサコア13が更新データ31への読出アクセスを要求していることを示す。
Then, the
When "no read request" is set for the
ここで、MPU15では読出アクセス許可が設定されているため、MPU15はプロセッサコア13へ読出アクセス許可通知を出力する。
プロセッサコア13は、MPU15から読出アクセス許可通知を取得すると、更新データ31へアクセスして、更新データ31からデータを読み出す。矢印L51は、プロセッサコア13が更新データ31からデータを読み出すことを示す。
Here, since the read access permission is set in the
When the
このように構成されたECU1は、プロセッサコア11,12,13のそれぞれに対する優先度が設定された優先度テーブルTB2を備える。
そしてプロセッサコア11は、優先度テーブルTB2に基づいて、MPU15を、読出アクセス要求をMPU15へ出力したプロセッサコア12,13の中で優先度が最も高いプロセッサコア12について読出アクセス許可に設定する。
The
Then, the
またプロセッサコア11は、プロセッサコア11とプロセッサコア12との間のハンドシェークに用いられるハンドシェーク用データ41に「読出要求なし」を設定する。
これにより、ECU1は、優先度が高いプロセッサコア12が、優先度が低いプロセッサコア13よりも優先して、更新データ31へアクセスするようにすることができる。これにより、ECU1は、優先度が高い処理の実行が、優先度が低い処理の実行のために遅れてしまう事態の発生を抑制することができ、ECU1の応答性を向上させることができる。
Further, the
As a result, the
以上説明した実施形態において、S410は禁止設定部としての処理に相当し、S480は許可設定部としての処理に相当する。
また、S630は有設定部としての処理に相当し、S640は再アクセス部としての処理に相当する。
In the embodiment described above, S410 corresponds to the process as the prohibition setting unit, and S480 corresponds to the process as the permission setting unit.
Further, S630 corresponds to the process as the set unit, and S640 corresponds to the process as the re-access unit.
また、S460は要求判断部としての処理に相当し、S460,S490,S500は中断部としての処理に相当し、S510は無設定部としての処理に相当する。
「1つの分割処理が終了すること」は確認条件に相当し、分割処理はアクセス処理に相当する。
Further, S460 corresponds to the processing as the request determination unit, S460, S490, and S500 correspond to the processing as the interruption unit, and S510 corresponds to the processing as the non-setting unit.
"The end of one division process" corresponds to the confirmation condition, and the division process corresponds to the access process.
[第3実施形態]
以下に本開示の第3実施形態を図面とともに説明する。なお第3実施形態では、第1実施形態と異なる部分を説明する。共通する構成については同一の符号を付す。
[Third Embodiment]
The third embodiment of the present disclosure will be described below together with the drawings. In the third embodiment, a part different from the first embodiment will be described. The same reference numerals are given to common configurations.
第3実施形態のECU1は、図14に示すように、周辺装置17が追加された点と、RAM21,22,23が省略されてRAM26が追加された点と、周辺装置17を制御するための周辺装置制御プログラム71をROM14が記憶する点とが第1実施形態と異なる。
As shown in FIG. 14, the
周辺装置17およびRAM26は、システムバス16に接続される。
周辺装置17は、プロセッサコア11,12,13からの指示に従って、アクチュエータ4へPWM信号を出力する。PWMは、Pulse Width Modulationの略である。本実施形態では、アクチュエータ4は電子スロットルである。
The
The
RAM26は、ハンドシェーク用データ61,62,63を記憶する。ハンドシェーク用データ61は、プロセッサコア11による周辺装置制御プログラム71の実行要求の有無が設定されるデータである。ハンドシェーク用データ62は、プロセッサコア12による周辺装置制御プログラム71の実行要求の有無が設定されるデータである。ハンドシェーク用データ63は、プロセッサコア13による周辺装置制御プログラム71の実行要求の有無が設定されるデータである。
The
また、第3実施形態のECU1では、データアクセスに関しては、以下の第1相違点および第2相違点が第1実施形態と異なる。
第1相違点は、プロセッサコア11,12,13が、RAM21の更新データ31へアクセスする代わりに、ROM14の周辺装置制御プログラム71へアクセスすることである。第2相違点は、プロセッサコア12,13が、RAM21のハンドシェーク用データ41,51にアクセスする代わりに、RAM26のハンドシェーク用データ62,63にアクセスする点である。
Further, in the
The first difference is that the
このように、第3実施形態のECU1は、データアクセスに関しては、第1実施形態と類似しているため、フローチャートを用いた処理手順の説明を省略する。
次に、MPU15による実行アクセス調停の第1の具体例を説明する。
As described above, since the
Next, a first specific example of execution access arbitration by
図15に示すように、プロセッサコア11は、まず、周辺装置制御プログラム71に対するプロセッサコア12,13からの実行アクセスを禁止する実行アクセス禁止を設定する。矢印L61は、プロセッサコア11が禁止設定要求をMPU15へ出力することを示す。
As shown in FIG. 15, the
次にプロセッサコア11は、矢印L62で示すように、ROM14から周辺装置制御プログラム71をフェッチする。そしてプロセッサコア11は、矢印L63で示すように、アクチュエータ4へPWM信号を出力する制御を実行する。さらにプロセッサコア11は、矢印L64で示すように、周辺装置制御プログラム71に対するプロセッサコア12,13からの実行アクセスを許可する実行アクセス許可を設定する。矢印L64は、プロセッサコア11が許可設定要求をMPU15へ出力することを示す。
Next, the
その後にプロセッサコア12は、周辺装置制御プログラム71へのフェッチ要求をMPU15へ出力する。矢印L65は、プロセッサコア12が周辺装置制御プログラム71へのフェッチを要求していることを示す。
After that, the
ここで、MPU15では実行アクセス許可が設定されているため、MPU15はプロセッサコア12へ実行アクセス許可通知を出力する。
プロセッサコア12は、MPU15から実行アクセス許可通知を取得すると、ROM14へアクセスして、周辺装置制御プログラム71をフェッチし、矢印L66で示すように、アクチュエータ4へPWM信号を出力する制御を実行する。
Here, since the execution access permission is set in the
When the
さらにプロセッサコア13は、周辺装置制御プログラム71へのフェッチ要求をMPU15へ出力する。矢印L67は、プロセッサコア13が周辺装置制御プログラム71へのフェッチを要求していることを示す。
Further, the
ここで、MPU15では実行アクセス許可が設定されているため、MPU15はプロセッサコア13へ実行アクセス許可通知を出力する。
プロセッサコア13は、MPU15から実行アクセス許可通知を取得すると、ROM14へアクセスして、周辺装置制御プログラム71をフェッチし、矢印L68で示すように、アクチュエータ4へPWM信号を出力する制御を実行する。
Here, since the execution access permission is set in the
When the
次に、MPU15による実行アクセス調停の第2の具体例を説明する。
図16に示すように、プロセッサコア11は、まず、周辺装置制御プログラム71に対するプロセッサコア12,13からの実行アクセスを禁止する実行アクセス禁止を設定する。矢印L71は、プロセッサコア11が禁止設定要求をMPU15へ出力することを示す。
Next, a second specific example of execution access arbitration by
As shown in FIG. 16, the
そしてプロセッサコア11は、アクチュエータ4を制御するアクチュエータ制御処理の実行を開始する。
アクチュエータ制御処理が開始された後に、プロセッサコア12が、周辺装置制御プログラム71へのフェッチ要求をMPU15へ出力する。矢印L72は、プロセッサコア12が周辺装置制御プログラム71へのフェッチを要求していることを示す。
Then, the
After the actuator control process is started, the
ここで、MPU15では実行アクセス禁止が設定されているため、矢印L73で示すように、MPU15はプロセッサコア12へ実行アクセス禁止通知を出力する。
プロセッサコア12は、MPU15から実行アクセス禁止通知を取得すると、矢印L74で示すように、ハンドシェーク用データ62に「実行アクセス要求あり」を設定する。
Here, since the execution access prohibition is set in the
When the
その後にプロセッサコア12は、四角形SQ7および矢印L75で示すように、ハンドシェーク用データ62を確認して、ハンドシェーク用データ62に「実行アクセス要求なし」が設定されるまで待機する。
After that, the
一方、プロセッサコア11は、アクチュエータ制御処理の実行が開始されると、四角形SQ6内において矢印L76,L77,L78,L80で示す処理を繰り返す。矢印L76は、アクチュエータ4を診断する処理である。矢印L77は、ROM14から周辺装置制御プログラム71をフェッチする処理である。矢印L78は、周辺装置17へ出力指示値を出力する処理である。矢印L80は、ハンドシェーク用データ61,62,63を確認する処理である。
On the other hand, when the execution of the actuator control process is started, the
なお、周辺装置17は、プロセッサコア11からの出力指示値を取得すると、矢印L79で示すように、アクチュエータ4へPWM信号を出力する。
そして、ハンドシェーク用データ62に「実行アクセス要求あり」が設定されると、プロセッサコア11は、周辺装置制御プログラム71に対するプロセッサコア12,13からの実行アクセスを許可する実行アクセス許可を設定する。矢印L81は、プロセッサコア11が許可設定要求をMPU15へ出力することを示す。
When the
Then, when "execution access requested" is set in the
さらにプロセッサコア11は、矢印L82で示すように、ハンドシェーク用データ62に「実行アクセス要求なし」を設定する。
ハンドシェーク用データ62に「実行アクセス要求なし」が設定されると、プロセッサコア12は、周辺装置制御プログラム71へのフェッチ要求をMPU15へ出力する。矢印L83は、プロセッサコア12が周辺装置制御プログラム71へのフェッチを要求していることを示す。
Further, the
When "no execution access request" is set in the
ここで、MPU15では実行アクセス許可が設定されているため、MPU15はプロセッサコア12へ実行アクセス許可通知を出力する。
プロセッサコア12は、MPU15から実行アクセス許可通知を取得すると、ROM14へアクセスして、周辺装置制御プログラム71をフェッチし、矢印L84で示すように、周辺装置17へ出力指示値を出力する。
Here, since the execution access permission is set in the
When the
周辺装置17は、プロセッサコア12からの出力指示値を取得すると、矢印L85で示すように、アクチュエータ4へPWM信号を出力する。
このように構成されたECU1は、プロセッサコア11,12,13と、ROM14と、MPU15とを備える。
When the
The
ROM14は、プロセッサコア11,12,13のそれぞれが読出可能にアクセスすることができる周辺装置制御プログラム71を記憶する。
MPU15は、プロセッサコア11が周辺装置制御プログラム71へアクセスしている場合にはプロセッサコア12,13が周辺装置制御プログラム71へアクセスすることができないようにプロセッサコア11,12,13を制御する。
The
The
このようにECU1では、MPU15が、プロセッサコア11が周辺装置制御プログラム71へアクセスしている場合にはプロセッサコア12,13が周辺装置制御プログラム71へアクセスすることができないようにプロセッサコア11,12,13を制御する。すなわち、ECU1は、セマフォの代わりにMPU15を使用するため、アクセスするプロセッサコア側において特殊なインターフェースが必要にならない。これにより、ECU1は、プロセッサコア間の排他制御に起因したオーバーヘッドの増加とプログラムコードの増加とを抑制することができる。
As described above, in the
またECU1は、プロセッサコア11,12,13間で処理が同期していない場合にプロセッサコア11,12,13が同時に周辺装置17へアクセスして、周辺装置17において誤動作が発生するのを抑制することができる。またECU1は、プロセッサコア11,12,13間における周辺装置17の使用権の迅速な移行を実現することができ、ECU1とアクチュエータ4とで構成されるシステムの信頼性と応答性とを向上させることができる。
Further, the
またプロセッサコア11は、プロセッサコア11が周辺装置制御プログラム71へアクセスする期間内に、MPU15を、プロセッサコア12,13からの周辺装置制御プログラム71への実行アクセスを禁止する実行アクセス禁止に設定する。またプロセッサコア11は、プロセッサコア11が周辺装置制御プログラム71へアクセスしない期間内に、MPU15を、プロセッサコア12,13からの周辺装置制御プログラム71への実行アクセスを許可する実行アクセス許可に設定する。
Further, the
このようにECU1は、他のプロセッサコアからの実行アクセスを敢えて禁止にすることで、MPU15を、意図した実行アクセス要求の検出に用いる。これにより、ECU1は、セマフォを用いた場合においてアクセスの度に常時発生するオーバーヘッドを低減することができる。
In this way, the
また、ECU1のRAM26は、プロセッサコア11,12,13間のハンドシェークに用いられ、且つ、プロセッサコア11,12,13のそれぞれが読出可能および更新可能にアクセスすることができるハンドシェーク用データ62,63を記憶する。
Further, the
MPU15は、プロセッサコア11が周辺装置制御プログラム71へアクセスする期間内にプロセッサコア12,13が周辺装置制御プログラム71へのフェッチ要求をMPU15へ出力した場合には、プロセッサコア12,13へ実行アクセス禁止通知を出力する。
If the
プロセッサコア12,13はそれぞれ、MPU15から実行アクセス禁止通知を取得すると、プロセッサコア11とプロセッサコア12,13との間のハンドシェークに用いられるハンドシェーク用データ62,63に、実行アクセス要求が有ることを示す「実行アクセス要求あり」を設定する。
When each of the
プロセッサコア12,13はそれぞれ、ハンドシェーク用データ62,63が、「実行アクセス要求あり」が設定されている状態から、「実行アクセス要求なし」が設定されている状態に変化した場合に、周辺装置制御プログラム71へのフェッチ要求をMPU15へ再度出力する。
The
プロセッサコア11は、プロセッサコア11が周辺装置制御プログラム71へアクセスしている期間内において、周辺装置17へ出力指示値を出力する処理が終了する毎に繰り返しハンドシェーク用データ62,63を確認し、ハンドシェーク用データ62,63に「実行アクセス要求あり」が設定されているか否かを判断する。
The
プロセッサコア11は、ハンドシェーク用データ62,63に「実行アクセス要求あり」が設定されていると判断した場合に、周辺装置制御プログラム71をフェッチして周辺装置17へ出力指示値を出力する処理を中断して、MPU15を実行アクセス許可に設定する。
When the
プロセッサコア11は、ハンドシェーク用データ62,63に「読出要求あり」が設定されていると判断した場合に、ハンドシェーク用データ62,63に、実行アクセス要求が無いことを示す「実行アクセス要求なし」を設定する。
When the
これにより、ECU1は、プロセッサコア11がプロセッサコア12,13からの実行アクセス要求を検出した場合に、周辺装置制御プログラム71をフェッチして周辺装置17へ出力指示値を出力する処理を中断して、プロセッサコア12,13に周辺装置制御プログラム71への実行アクセスを実行させることができる。このため、ECU1は、プロセッサコア12,13が周辺装置制御プログラム71への実行アクセスのために待機する時間を短縮することができ、プロセッサコア12,13の処理効率を向上させることができる。
As a result, when the
以上説明した実施形態において、ROM14は共有データ記憶部に相当し、周辺装置制御プログラム71は共有データに相当し、RAM26はハンドシェーク記憶部に相当する。
また、実行アクセス禁止はアクセス禁止に相当し、実行アクセス許可はアクセス許可に相当する。
In the embodiment described above, the
In addition, execution access prohibition corresponds to access prohibition, and execution access permission corresponds to access permission.
また、RAM26はハンドシェーク記憶部に相当し、実行アクセス禁止通知の出力はメモリアクセス違反処理に相当し、「実行アクセス要求あり」はアクセス要求有に相当する。
Further, the
また、「周辺装置17へ出力指示値を出力する処理が終了すること」は確認条件に相当し、「周辺装置制御プログラム71をフェッチして周辺装置17へ出力指示値を出力する処理」はアクセス処理に相当し、「実行アクセス要求なし」はアクセス要求無に相当する。
Further, "the process of outputting the output instruction value to the
[第4実施形態]
以下に本開示の第4実施形態を図面とともに説明する。なお第4実施形態では、第3実施形態と異なる部分を説明する。共通する構成については同一の符号を付す。
[Fourth Embodiment]
The fourth embodiment of the present disclosure will be described below together with the drawings. In the fourth embodiment, a part different from the third embodiment will be described. The same reference numerals are given to common configurations.
第4実施形態のECU1は、第2実施形態で示す優先度テーブルTB2がROM14に記憶されている点が第3実施形態と異なる。
次に、第4実施形態のMPU15による実行アクセス調停の具体例を説明する。
The
Next, a specific example of execution access arbitration by the
図17に示すように、プロセッサコア11は、まず、周辺装置制御プログラム71に対するプロセッサコア12,13からの実行アクセスを禁止する実行アクセス禁止を設定する。矢印L91は、プロセッサコア11が禁止設定要求をMPU15へ出力することを示す。
As shown in FIG. 17, the
そしてプロセッサコア11は、アクチュエータ4を制御するアクチュエータ制御処理の実行を開始する。
アクチュエータ制御処理が開始された後に、プロセッサコア12が、周辺装置制御プログラム71へのフェッチ要求をMPU15へ出力する。矢印L92は、プロセッサコア12が周辺装置制御プログラム71へのフェッチを要求していることを示す。
Then, the
After the actuator control process is started, the
ここで、MPU15では実行アクセス禁止が設定されているため、矢印L93で示すように、MPU15はプロセッサコア12へ実行アクセス禁止通知を出力する。
プロセッサコア12は、MPU15から実行アクセス禁止通知を取得すると、矢印L94で示すように、ハンドシェーク用データ62に「実行アクセス要求あり」を設定する。
Here, since the execution access prohibition is set in the
When the
その後にプロセッサコア12は、四角形SQ9および矢印L95で示すように、ハンドシェーク用データ62を確認して、ハンドシェーク用データ62に「実行アクセス要求なし」が設定されるまで待機する。
After that, the
また、プロセッサコア13は、アクチュエータ制御処理が開始された後に、周辺装置制御プログラム71へのフェッチ要求をMPU15へ出力する。矢印L96は、プロセッサコア13が周辺装置制御プログラム71へのフェッチを要求していることを示す。
Further, the
ここで、MPU15では実行アクセス禁止が設定されているため、矢印L97で示すように、MPU15はプロセッサコア13へ実行アクセス禁止通知を出力する。
プロセッサコア13は、MPU15から実行アクセス禁止通知を取得すると、矢印L98で示すように、ハンドシェーク用データ63に「実行アクセス要求あり」を設定する。
Here, since the execution access prohibition is set in the
When the
その後にプロセッサコア13は、四角形SQ10および矢印L99で示すように、ハンドシェーク用データ63を確認して、ハンドシェーク用データ63に「実行アクセス要求なし」が設定されるまで待機する。
After that, the
一方、プロセッサコア11は、アクチュエータ制御処理の実行が開始されると、四角形SQ8内において矢印L100,L101,L102で示す処理を繰り返す。矢印L100は、ROM14から周辺装置制御プログラム71をフェッチする処理である。矢印L101は、アクチュエータ4へPWM信号を出力する処理である。矢印L102は、ハンドシェーク用データ61,62,63を確認する処理である。
On the other hand, when the execution of the actuator control process is started, the
そして、ハンドシェーク用データ62に「実行アクセス要求あり」が設定されると、矢印L103で示すように、ROM14に記憶されている優先度テーブルTB2を参照する。
Then, when "execution access request" is set in the
次にプロセッサコア11は、周辺装置制御プログラム71に対するプロセッサコア12からの実行アクセスを許可する実行アクセス許可を設定する。矢印L104は、プロセッサコア11が許可設定要求をMPU15へ出力することを示す。
Next, the
さらにプロセッサコア11は、矢印L105で示すように、ハンドシェーク用データ62に「実行アクセス要求なし」を設定する。
ハンドシェーク用データ62に「実行アクセス要求なし」が設定されると、プロセッサコア12は、周辺装置制御プログラム71へのフェッチ要求をMPU15へ出力する。矢印L106は、プロセッサコア12が周辺装置制御プログラム71へのフェッチを要求していることを示す。
Further, the
When "no execution access request" is set in the
ここで、MPU15では実行アクセス許可が設定されているため、MPU15はプロセッサコア12へ実行アクセス許可通知を出力する。
プロセッサコア12は、MPU15から実行アクセス許可通知を取得すると、ROM14へアクセスして、周辺装置制御プログラム71をフェッチし、矢印L107で示すように、アクチュエータ4へPWM信号を出力する。
Here, since the execution access permission is set in the
When the
そしてプロセッサコア12は、矢印L108で示すように、ROM14に記憶されている優先度テーブルTB2を参照する。
次にプロセッサコア12は、周辺装置制御プログラム71に対するプロセッサコア13からの実行アクセスを許可する実行アクセス許可を設定する。矢印L109は、プロセッサコア11が許可設定要求をMPU15へ出力することを示す。
Then, the
Next, the
さらにプロセッサコア12は、矢印L110で示すように、ハンドシェーク用データ63に「実行アクセス要求なし」を設定する。
ハンドシェーク用データ63に「実行アクセス要求なし」が設定されると、プロセッサコア13は、周辺装置制御プログラム71へのフェッチ要求をMPU15へ出力する。矢印L111は、プロセッサコア13が周辺装置制御プログラム71へのフェッチを要求していることを示す。
Further, the
When "no execution access request" is set in the
ここで、MPU15では実行アクセス許可が設定されているため、MPU15はプロセッサコア13へ実行アクセス許可通知を出力する。
プロセッサコア13は、MPU15から実行アクセス許可通知を取得すると、ROM14へアクセスして、周辺装置制御プログラム71をフェッチし、矢印L112で示すように、アクチュエータ4へPWM信号を出力する。
Here, since the execution access permission is set in the
When the
このように構成されたECU1は、プロセッサコア11,12,13のそれぞれに対する優先度が設定された優先度テーブルTB2を備える。
そしてプロセッサコア11は、優先度テーブルTB2に基づいて、MPU15を、フェッチ要求をMPU15へ出力したプロセッサコア12,13の中で優先度が最も高いプロセッサコア12につい実行アクセス許可に設定する。
The
Then, the
またプロセッサコア11は、プロセッサコア11とプロセッサコア12との間のハンドシェークに用いられるハンドシェーク用データ62に「実行アクセス要求なし」を設定する。
Further, the
これにより、ECU1は、優先度が高いプロセッサコア12が、優先度が低いプロセッサコア13よりも優先して、周辺装置制御プログラム71へアクセスするようにすることができる。これにより、ECU1は、優先度が高い処理の実行が、優先度が低い処理の実行のために遅れてしまう事態の発生を抑制することができ、ECU1の応答性を向上させることができる。
As a result, the
以上、本開示の一実施形態について説明したが、本開示は上記実施形態に限定されるものではなく、種々変形して実施することができる。
本開示に記載のECU1およびその手法は、コンピュータプログラムにより具体化された一つ乃至は複数の機能を実行するようにプログラムされたプロセッサおよびメモリを構成することによって提供された専用コンピュータにより、実現されてもよい。あるいは、本開示に記載のECU1およびその手法は、一つ以上の専用ハードウェア論理回路によってプロセッサを構成することによって提供された専用コンピュータにより、実現されてもよい。もしくは、本開示に記載のECU1およびその手法は、一つ乃至は複数の機能を実行するようにプログラムされたプロセッサおよびメモリと一つ以上のハードウェア論理回路によって構成されたプロセッサとの組み合わせにより構成された一つ以上の専用コンピュータにより、実現されてもよい。また、コンピュータプログラムは、コンピュータにより実行されるインストラクションとして、コンピュータ読み取り可能な非遷移有形記録媒体に記憶されてもよい。ECU1に含まれる各部の機能を実現する手法には、必ずしもソフトウェアが含まれている必要はなく、その全部の機能が、一つあるいは複数のハードウェアを用いて実現されてもよい。
Although one embodiment of the present disclosure has been described above, the present disclosure is not limited to the above embodiment, and can be implemented in various modifications.
The
上記実施形態における1つの構成要素が有する複数の機能を、複数の構成要素によって実現したり、1つの構成要素が有する1つの機能を、複数の構成要素によって実現したりしてもよい。また、複数の構成要素が有する複数の機能を、1つの構成要素によって実現したり、複数の構成要素によって実現される1つの機能を、1つの構成要素によって実現したりしてもよい。また、上記実施形態の構成の一部を省略してもよい。また、上記実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加または置換してもよい。 A plurality of functions possessed by one component in the above embodiment may be realized by a plurality of components, or one function possessed by one component may be realized by a plurality of components. Further, a plurality of functions possessed by the plurality of components may be realized by one component, or one function realized by the plurality of components may be realized by one component. Further, a part of the configuration of the above embodiment may be omitted. In addition, at least a part of the configuration of the above embodiment may be added or replaced with the configuration of the other above embodiment.
上述したECU1の他、当該ECU1を構成要素とするシステム、当該ECU1としてコンピュータを機能させるためのプログラム、このプログラムを記録した半導体メモリ等の非遷移的実態的記録媒体、アクセス制御方法など、種々の形態で本開示を実現することもできる。
In addition to the above-mentioned
1…ECU、11,12,13…プロセッサコア、14…ROM、15…MPU、21…RAM、31…更新データ、71…周辺装置制御プログラム 1 ... ECU, 11, 12, 13 ... Processor core, 14 ... ROM, 15 ... MPU, 21 ... RAM, 31 ... Update data, 71 ... Peripheral device control program
Claims (5)
複数の前記プロセッサコアのそれぞれが読出可能にアクセスすることができる共有データを記憶するように構成された共有データ記憶部(21,14)と、
複数の前記プロセッサコアのうちの一つの前記プロセッサコアを特定プロセッサコア(11)とし、前記特定プロセッサコア以外の前記プロセッサコアを他プロセッサコア(12,13)として、前記特定プロセッサコアが前記共有データへアクセスしている場合には前記他プロセッサコアが前記共有データへアクセスすることができないように複数の前記プロセッサコアを制御するように構成されたメモリ保護部(15)と
を備える電子制御装置(1)。 With multiple processor cores (11, 12, 13),
Shared data storage units (21, 14) configured to store shared data that can be readably accessed by each of the plurality of processor cores.
The processor core of one of the plurality of processor cores is designated as the specific processor core (11), the processor cores other than the specific processor core are designated as other processor cores (12, 13), and the specific processor core is the shared data. An electronic control device (15) including a memory protection unit (15) configured to control a plurality of the processor cores so that the other processor cores cannot access the shared data when accessing the data. 1).
前記特定プロセッサコアは、
前記特定プロセッサコアが前記共有データへアクセスする期間内に、前記メモリ保護部を、前記他プロセッサコアからの前記共有データへのアクセスを禁止するアクセス禁止に設定するように構成された禁止設定部(S110,S410)と、
前記特定プロセッサコアが前記共有データへアクセスしない期間内に、前記メモリ保護部を、前記他プロセッサコアからの前記共有データへのアクセスを許可するアクセス許可に設定するように構成された許可設定部(S180,S480)と
を備える電子制御装置。 The electronic control device according to claim 1.
The specific processor core is
A prohibition setting unit configured to set the memory protection unit to an access prohibition that prohibits access to the shared data from the other processor core within the period during which the specific processor core accesses the shared data. S110, S410) and
A permission setting unit configured to set the memory protection unit to a permission permission to allow access to the shared data from the other processor core within a period in which the specific processor core does not access the shared data. An electronic control device including S180, S480).
複数の前記プロセッサコア間のハンドシェークに用いられ、且つ、複数の前記プロセッサコアのそれぞれが読出可能および更新可能にアクセスすることができるハンドシェーク用データ(41,51,62,63)を記憶するように構成されたハンドシェーク記憶部(21,26)を備え、
前記メモリ保護部は、前記特定プロセッサコアが前記共有データへアクセスする期間内に前記他プロセッサコアが前記共有データへのアクセスを試みた場合には、前記他プロセッサコアに対してメモリアクセス違反処理を実行し、
前記他プロセッサコアは、
前記メモリアクセス違反処理の対象となった場合に、前記特定プロセッサコアと当該他プロセッサコアとの間のハンドシェークに用いられる前記ハンドシェーク用データである違反対象ハンドシェーク用データに、アクセス要求が有ることを示すアクセス要求有を設定するように構成された有設定部(S310,S630)と、
前記違反対象ハンドシェーク用データが、前記アクセス要求有が設定されている状態から、アクセス要求が無いことを示すアクセス要求無が設定されている状態に変化した場合に、前記共有データへのアクセスを再度試みるように構成された再アクセス部(S320,S330,S640)とを備え、
前記特定プロセッサコアは、
前記特定プロセッサコアが前記共有データへアクセスしている期間内において、予め設定された確認条件が成立する毎に繰り返し前記違反対象ハンドシェーク用データを確認し、前記違反対象ハンドシェーク用データに前記アクセス要求有が設定されているか否かを判断するように構成された要求判断部(S150,S460)と、
前記違反対象ハンドシェーク用データに前記アクセス要求有が設定されていると前記要求判断部が判断した場合に、前記特定プロセッサコアが前記共有データへアクセスするアクセス処理を中断して、前記許可設定部に、前記メモリ保護部を前記アクセス許可に設定させるように構成された中断部(S150,S460,S490,S500)と、
前記違反対象ハンドシェーク用データに前記アクセス要求有が設定されていると前記要求判断部が判断した場合に、前記違反対象ハンドシェーク用データに、前記アクセス要求無を設定するように構成された無設定部(S190,S510)と
を備える電子制御装置。 The electronic control device according to claim 2.
To store handshake data (41, 51, 62, 63) that is used for handshaking between the plurality of processor cores and that each of the plurality of processor cores can access readable and updatable. Equipped with a configured handshake storage unit (21, 26)
If the other processor core attempts to access the shared data within the period in which the specific processor core accesses the shared data, the memory protection unit performs memory access violation processing for the other processor core. Run and
The other processor core is
Indicates that there is an access request for the violation target handshake data, which is the handshake data used for the handshake between the specific processor core and the other processor core when the memory access violation processing is targeted. Yes setting units (S310, S630) configured to set access request presence,
When the violation target handshake data changes from the state in which the access request is set to the state in which the access request is not set, which indicates that there is no access request, the access to the shared data is performed again. It is equipped with re-access units (S320, S330, S640) configured to try.
The specific processor core is
Within the period during which the specific processor core is accessing the shared data, the violation target handshake data is repeatedly confirmed every time a preset confirmation condition is satisfied, and the violation target handshake data has the access request. The request determination unit (S150, S460) configured to determine whether or not is set, and
When the request determination unit determines that the access request is set for the violation target handshake data, the access process for the specific processor core to access the shared data is interrupted, and the permission setting unit is notified. , The interruption unit (S150, S460, S490, S500) configured to set the memory protection unit to the access permission, and
When the request determination unit determines that the access request is set in the violation target handshake data, the non-setting unit configured to set the access request non-existence in the violation target handshake data. An electronic control device including (S190, S510).
前記特定プロセッサコアが前記共有データへアクセスする処理は、前記共有データからデータを読み出し、更に前記共有データにデータを書き込むテストである電子制御装置。 The electronic control device according to any one of claims 1 to 3.
The process of accessing the shared data by the specific processor core is an electronic control device which is a test of reading data from the shared data and further writing data to the shared data.
複数の前記プロセッサコアのそれぞれに対する優先度が設定された優先度テーブル(TB2)を備え、
前記中断部(S460,S490,S500)は、前記優先度テーブルに基づいて、前記許可設定部に、前記メモリ保護部を、前記共有データへのアクセスを試みた複数の前記他プロセッサコアの中で前記優先度が最も高い前記他プロセッサコアである高優先度プロセッサコアについて前記アクセス許可に設定させ、
前記無設定部(S510)は、前記特定プロセッサコアと前記高優先度プロセッサコアとの間のハンドシェークに用いられる前記違反対象ハンドシェーク用データに前記アクセス要求無を設定する電子制御装置。 The electronic control device according to claim 3.
It has a priority table (TB2) in which priorities are set for each of the plurality of processor cores.
Based on the priority table, the interruption unit (S460, S490, S500) attaches the memory protection unit to the permission setting unit among the plurality of other processor cores that have attempted to access the shared data. The permission is set for the high priority processor core which is the other processor core having the highest priority.
The non-setting unit (S510) is an electronic control device that sets no access request to the violation target handshake data used for handshaking between the specific processor core and the high priority processor core.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019132040A JP7268516B2 (en) | 2019-07-17 | 2019-07-17 | electronic controller |
DE102020208367.3A DE102020208367A1 (en) | 2019-07-17 | 2020-07-03 | ELECTRONIC CONTROL UNIT |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019132040A JP7268516B2 (en) | 2019-07-17 | 2019-07-17 | electronic controller |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2021018475A true JP2021018475A (en) | 2021-02-15 |
JP7268516B2 JP7268516B2 (en) | 2023-05-08 |
Family
ID=74093398
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019132040A Active JP7268516B2 (en) | 2019-07-17 | 2019-07-17 | electronic controller |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP7268516B2 (en) |
DE (1) | DE102020208367A1 (en) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002314632A (en) * | 2001-04-16 | 2002-10-25 | Denso Corp | Electronic controller |
JP2007328647A (en) * | 2006-06-09 | 2007-12-20 | Meidensha Corp | Data transfer method between cpus |
WO2010119932A1 (en) * | 2009-04-17 | 2010-10-21 | 日本電気株式会社 | Multi-processor system, and memory management method and communication program in multi-processor system |
JP2014146254A (en) * | 2013-01-30 | 2014-08-14 | Fujitsu Ltd | Information processing device and control method of information processing device |
JP2019036322A (en) * | 2018-09-27 | 2019-03-07 | 日立オートモティブシステムズ株式会社 | Vehicle controller |
-
2019
- 2019-07-17 JP JP2019132040A patent/JP7268516B2/en active Active
-
2020
- 2020-07-03 DE DE102020208367.3A patent/DE102020208367A1/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002314632A (en) * | 2001-04-16 | 2002-10-25 | Denso Corp | Electronic controller |
JP2007328647A (en) * | 2006-06-09 | 2007-12-20 | Meidensha Corp | Data transfer method between cpus |
WO2010119932A1 (en) * | 2009-04-17 | 2010-10-21 | 日本電気株式会社 | Multi-processor system, and memory management method and communication program in multi-processor system |
JP2014146254A (en) * | 2013-01-30 | 2014-08-14 | Fujitsu Ltd | Information processing device and control method of information processing device |
JP2019036322A (en) * | 2018-09-27 | 2019-03-07 | 日立オートモティブシステムズ株式会社 | Vehicle controller |
Also Published As
Publication number | Publication date |
---|---|
DE102020208367A1 (en) | 2021-01-21 |
JP7268516B2 (en) | 2023-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210011872A1 (en) | Multicore bus architecture with non-blocking high performance transaction credit system | |
US8185683B2 (en) | Bridge, information processing system, and access control method | |
TWI326829B (en) | Method for improving flexibility of direct memory access channels | |
US7581054B2 (en) | Data processing system | |
US8006000B2 (en) | Bridge, processor unit, information processing apparatus, and access control method | |
JP4602403B2 (en) | Endianness control method and apparatus in data processing system | |
EP1938190B1 (en) | Method and apparatus to clear semaphore reservation | |
US20220261373A1 (en) | Multicore bus architecture with wire reduction and physical congestion minimization via shared transaction channels | |
JP3807250B2 (en) | Cluster system, computer and program | |
KR102212269B1 (en) | Register file for I/O packet compression | |
JP2011508292A (en) | Method and apparatus for transfer of secure operating mode access privileges from a processor to a peripheral device | |
CN114556348A (en) | Method and apparatus for operating a computing device | |
WO2010097925A1 (en) | Information processing device | |
JP4656347B2 (en) | Computer system | |
WO2014080248A1 (en) | System on chip | |
US20140223059A1 (en) | Write Transaction Interpretation for Interrupt Assertion | |
WO2007080718A1 (en) | Bridge, information processor, information processing system, and method of managing global address | |
US20150371060A1 (en) | System on chip | |
US10909056B2 (en) | Multi-core electronic system | |
JP5439808B2 (en) | System LSI with multiple buses | |
JP2008532167A (en) | Data processing system having interrupt controller and interrupt control method | |
JP7268516B2 (en) | electronic controller | |
US7689746B2 (en) | Bus system employing an arbiter | |
JPS6275860A (en) | Data transfer controller | |
EP2538336A2 (en) | System and method for allocating memory resources |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210929 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20220831 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20221004 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20221121 |
|
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: 20230322 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230404 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 7268516 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |