JP6648663B2 - 演算装置、電子制御装置及び演算方法 - Google Patents

演算装置、電子制御装置及び演算方法 Download PDF

Info

Publication number
JP6648663B2
JP6648663B2 JP2016188164A JP2016188164A JP6648663B2 JP 6648663 B2 JP6648663 B2 JP 6648663B2 JP 2016188164 A JP2016188164 A JP 2016188164A JP 2016188164 A JP2016188164 A JP 2016188164A JP 6648663 B2 JP6648663 B2 JP 6648663B2
Authority
JP
Japan
Prior art keywords
processor
interrupt
processors
synchronization
interrupt request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016188164A
Other languages
English (en)
Other versions
JP2018055244A (ja
Inventor
崇人 楠本
崇人 楠本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Denso Corp
Original Assignee
Denso Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Denso Corp filed Critical Denso Corp
Priority to JP2016188164A priority Critical patent/JP6648663B2/ja
Priority to DE102017216823.4A priority patent/DE102017216823A1/de
Publication of JP2018055244A publication Critical patent/JP2018055244A/ja
Application granted granted Critical
Publication of JP6648663B2 publication Critical patent/JP6648663B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/522Barrier synchronisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Description

本発明は、演算装置、電子制御装置及び演算方法に関する。
従来より、複数のプロセッサによりバリア同期を用いた並列処理を実行する演算装置が供されている(例えば特許文献1参照)。
特開2000−305919号公報
この種の演算装置は、割込みが発生すると、複数のプロセッサのうち何れかに割込み要求が入力され、その割込み要求を入力したプロセッサが割込み処理を実行する。しかしながら、複数のプロセッサのうち並列処理の処理時間が最も長くなるプロセッサに割込み要求が入力されてしまうと、バリア同期に参加する全てのプロセッサが並列処理を完了するタイミング、即ちバリア同期が完了するタイミングが遅延するという課題があった。特に制御のリアルタイム性が強く求められるエンジン制御では、タイマ信号やセンサ信号の入力に応じて即座に処理を実行するために割込み処理が多様化する傾向があり、バリア同期が完了するタイミングの遅延により及ぼされる影響が顕著であった。
本発明は、上記した事情に鑑みてなされたものであり、その目的は、バリア同期が完了するタイミングの遅延を極力抑えることができる演算装置、電子制御装置及び演算方法を提供することにある。
請求項1に記載した発明によれば、複数のプロセッサ(31〜3n)を有し、複数のプロセッサによりバリア同期を用いた並列処理を実行する演算装置(2)において、複数のプロセッサのうち同期待ち状態のプロセッサを割込み要求先として設定し、バリア同期が完了して全てのプロセッサが次の並列処理を実行可能になると、複数のプロセッサのうち予め設定されている所定のプロセッサを割込み要求先として設定する。割込みが発生した時点で同期待ち状態のプロセッサが存在していれば、複数のプロセッサのうち並列処理の処理時間が最も長くなるプロセッサに割込み要求が入力されるのではなく、その同期待ち状態のプロセッサに割込み要求が入力され、その同期待ち状態のプロセッサが割込み処理を実行する。
バリア同期を用いた並列処理を実行する構成では、複数のプロセッサは、それぞれ並列処理を完了してバリアポイントに到達すると、バリア同期を開始し、並列処理に対して処理能力を余している同期待ち状態に移行する。即ち、他のプロセッサに先行してバリアポイントに到達したプロセッサは、他のプロセッサがバリアポイントに到達するのを待機しており、バリアポイントに到達した以降では主として同期フラグのチェック処理を実行するに過ぎず、処理能力を余している状態にある。この点に着眼し、同期待ち状態、即ち処理能力を余している状態のプロセッサを割込み要求先として設定し、その余っている処理能力を有効に活用することで、バリア同期が完了するタイミングの遅延を極力抑えることができる。
本発明の第1の実施形態を示す機能ブロック図 フローチャート タイミングチャート タイミングチャート タイミングチャート 本発明の第2の実施形態を示す機能ブロック図 フローチャート タイミングチャート タイミングチャート
(第1の実施形態)
以下、本発明の第1の実施形態について図1から図5を参照して説明する。電子制御装置1は、例えばエンジン制御を行う電子制御装置であり、マイクロコントローラ2(演算装置に相当する)を有する。マイクロコントローラ2は、第1のプロセッサ(図1ではPE#1で示す)31から第n(nは自然数)のプロセッサ(図1ではPE#nで示す)3nのn個のプロセッサ31〜3nと、ROM4と、RAM5と、タイマ6と、A/D変換器7と、割込みコントローラ8とがシステムバス9を介して相互接続されている。
マイクロコントローラ2は、複数のプロセッサ31〜3nの全てがバリア同期に参加する構成であり、複数のプロセッサ31〜3nによりバリア同期を用いた並列処理を実行する。複数のプロセッサ31〜3nは、それぞれ並列処理を同じ開始タイミングで一斉に開始し、並列処理を完了してバリアポイントに到達すると、バリア同期を開始し、同期フラグを更新すると、同期フラグのチェック処理を開始し、他のプロセッサ31〜3nがバリアポイントに到達するのを待機している。即ち、複数のプロセッサ31〜3nは、それぞれ並列処理を完了してバリアポイントに到達すると、並列処理に対して処理能力を余している同期待ち状態に移行する。そして、複数のプロセッサ31〜3nは、全てがバリアポイントに到達してバリア同期を完了すると、それぞれ次の並列処理(即ち先に実行した並列処理とは別の並列処理)を同じ開始タイミングで一斉に開始する。尚、複数のプロセッサ31〜3nの全てがバリア同期に参加する構成でなく、複数のプロセッサ31〜3nの一部がバリア同期に参加する構成でも良い。
複数のプロセッサ31〜3nは、バリア同期部10と通信可能に構成されている。バリア同期部10は、複数のプロセッサ31〜3nの個々に対応して複数の同期フラグを保持している。複数のプロセッサ31〜3nは、それぞれ並列処理を実行中では自己の同期フラグを「0」に設定しており、並列処理を完了してバリアポイントに到達すると、バリア同期部10と通信し、自己の同期フラグを「0」から「1」に書換えて同期フラグを更新する。そして、複数のプロセッサ31〜3nは、それぞれバリア同期を完了したタイミング、又は別の並列処理を一斉に開始するタイミングで、バリア同期部10と通信し、自己の同期フラグを「1」から「0」に書換えて同期フラグを更新する。
ROM4は、複数のプロセッサ31〜3nがそれぞれ起動するプログラムを格納している。複数のプロセッサ31〜3nは、それぞれROM4に格納されているプログラムを起動し、並列処理や割込み処理を実行する。RAM5は、複数のプロセッサ31〜3nがそれぞれ並列処理や割込み処理を実行する際の作業用メモリとして機能する。
タイマ6は、カウント値が予め設定されている設定値に到達する等のタイマ信号の出力条件が成立すると、タイマ信号を割込みコントローラ8に出力する。A/D変換器7は、電子制御装置1の外部に設けられている各種センサからセンサ信号を入力すると、その入力したセンサ信号をアナログ信号からデジタル信号に変換して割込みコントローラ8に出力する。
割込みコントローラ8は、複数のプロセッサ31〜3nのうち割込みの発生により割込み処理を実行するプロセッサを特定可能な割込み要求先情報を保持する。割込みコントローラ8は、複数のプロセッサ31〜3nの何れかから割込み要求先設定信号を入力すると、その割込み要求先設定信号の出力元のプロセッサ31〜3nを特定可能な情報(即ちプロセッサID等)を割込み要求先情報として保持する。割込みコントローラ8は、タイマ6からタイマ信号を入力したりA/D変換器7からセンサ信号を入力したりして割込みが発生したと判定すると、その時点で保持している割込み要求先情報により特定されるプロセッサ31〜3nに割込み要求を出力する。複数のプロセッサ31〜3nのうち何れかは、このようにして割込みコントローラ8から割込み要求を入力すると、割込み処理を実行する。
次に、上記した構成の作用について図2から図5を参照して説明する。ここでは、複数のプロセッサ31〜3nの全てがバリア同期に参加することを前提とする。複数のプロセッサ31〜3nは、それぞれ並列処理を完了してバリアポイントに到達すると、図2に示すバリア同期処理を実行する。以下、複数のプロセッサ31〜3nのうち第1のプロセッサ31を代表し、第1のプロセッサ31が実行するバリア同期処理について説明する。
第1のプロセッサ31は、バリア同期処理を開始すると、バリア同期部10と通信し、自己の同期フラグを「0」から「1」に書換えて更新する(S1)。第1のプロセッサ31は、バリア同期部10に保持されている自己以外の他の同期フラグを読出し(S2)、その読出した自己以外の他の同期フラグを判定し、複数のプロセッサ31〜3nのうち自己以外にバリアポイントに到達済みのプロセッサが存在するか否かを判定する(S3)。
第1のプロセッサ31は、複数のプロセッサ31〜3nのうち自己以外の他の全ての同期フラグが「0」であり、自己以外にバリアポイントに到達済みのプロセッサが存在していないと判定すると(S3:NO)、自己がバリアポイントに最初に到達したプロセッサであると判定する。第1のプロセッサ31は、割込み要求先設定信号を割込みコントローラ8に出力し、割込み処理の割込み要求先として自己を設定する(S4)。
一方、第1のプロセッサ31は、自己以外の何れかの同期フラグが「1」であり、自己以外にバリアポイントに到達済みのプロセッサが存在していると判定すると(S3:YES)、自己がバリアポイントに2番目以降に到達したプロセッサであると判定する。第1のプロセッサ31は、割込み要求先設定信号を割込みコントローラ8に出力せず、割込み処理の割込み要求先として自己を設定しない。
そして、第1のプロセッサ31は、全てのプロセッサ31〜3nがバリアポイントに到達したか否かを判定する(S5)。第1のプロセッサ31は、複数のプロセッサ31〜3nのうち何れかが未だバリアポイントに到達しておらず、全てのプロセッサ31〜3nがバリアポイントに到達していないと判定すると(S5:NO)、ステップS2に戻る。一方、第1のプロセッサ31は、全てのプロセッサ31〜3nがバリアポイントに到達したと判定すると(S5:YES)、バリア同期が完了したと判定し、バリア同期処理を終了する。
これ以降、第1のプロセッサ31は、先に実行した並列処理とは別の並列処理を他のプロセッサ32〜3nと同じ開始タイミングで一斉に開始する。第1のプロセッサ31以外のプロセッサも、上記したバリア同期処理を同様にして実行する。即ち、複数のプロセッサ31〜3nは、最初にバリアポイントに到達したプロセッサが割込み処理の割込み要求先となる。尚、複数のプロセッサ31〜3nのうち予め初期割込み要求先として設定されているプロセッサは、別の並列処理を開始するタイミングで割込み処理の割込み要求先として自己を設定していれば、その設定を維持する。一方、複数のプロセッサ31〜3nのうち予め初期割込み要求先として設定されているプロセッサは、別の並列処理を開始するタイミングで割込み処理の割込み要求先として自己を設定していなければ、割込み要求先設定信号を割込みコントローラ8に出力し、割込み処理の割込み要求先として自己を設定する。又、以上は、複数のプロセッサ31〜3nが、それぞれソフトウェアにより割込みコントローラ8の割込み要求先情報を設定しているが、ハードウェアにより割込みコントローラ8の割込み要求先情報を設定しても良い。
以下、nを「3」とし、第1のプロセッサ31〜第3のプロセッサ33がバリア同期に参加する構成を例示して説明する。図3に示すように、マイクロコントローラ2において、第1のプロセッサ31〜第3のプロセッサ33が並列処理Aを一斉に開始した後に(t1)、最初に第2のプロセッサ32がバリアポイントに到達して同期フラグを更新し(t2)、続いて第3のプロセッサ33がバリアポイントに到達して同期フラグを更新し(t3)、最後に第1のプロセッサ31がバリアポイントに到達して同期フラグを更新し(t4)、バリア同期を完了し(t5)、第1のプロセッサ31〜第3のプロセッサ33が並列処理Bを一斉に開始する場合を想定する。
この場合、割込み処理の割込み要求先が第1のプロセッサ31に固定されている構成では、図4に示すように、マイクロコントローラ2において、第2のプロセッサ32がバリアポイントに到達した以降に割込みが発生すると、第2のプロセッサ32がバリアポイントに到達しているにも拘らず、割込み要求が第1のプロセッサ31に入力される。第1のプロセッサ31は、割込み要求が入力されると、実行中の並列処理Aを中断して割込み処理を開始する(t11)。そして、第1のプロセッサ31は、割込み処理を完了すると、中断した並列処理Aを再開する(t12)。即ち、マイクロコントローラ2において、第1のプロセッサ31が並列処理Aを中断して割込み処理を実行することで、全てのプロセッサ31〜33が並列処理Aを完了するタイミング、即ちバリア同期が完了するタイミングが遅延することになる。
これに対し、第1のプロセッサ31〜第3のプロセッサ33のうちバリアポイントに最初に到達したプロセッサが割込み処理の割込み要求先となる構成では、マイクロコントローラ2は以下のように動作する。即ち、図5に示すように、マイクロコントローラ2において、第1のプロセッサ31〜第3のプロセッサ33が並列処理Aを一斉に開始した直後で第1のプロセッサ31を割込み要求先として設定していても、第2のプロセッサ32が最初にバリアポイントに到達すると、第2のプロセッサ32を割込み処理の割込み要求先として更新する。
マイクロコントローラ2において、この状態で、即ち第2のプロセッサ32がバリアポイントに到達した以降に割込みが発生すると、割込み要求が第1のプロセッサ31に入力されるのではなく、バリアポイントに到達済みの第2のプロセッサ32に入力される。第2のプロセッサ32は、割込み要求が入力されると、同期フラグチェック処理を中断して割込み処理を開始する(t21)。そして、第2のプロセッサ32は、割込み処理を完了すると、中断した同期フラグチェック処理を再開する(t22)。即ち、マイクロコントローラ2において、第1のプロセッサ31が割込み処理を実行せず、第2のプロセッサ32が割込み処理を実行することで、第1のプロセッサ31が並列処理Aを中断することがなく、全てのプロセッサ31〜33が並列処理Aを完了するタイミング、即ちバリア同期が完了するタイミングが遅延することがなくなる。
以上に説明したように第1の実施形態によれば、次に示す効果を得ることができる。
マイクロコントローラ2において、複数のプロセッサ31〜3nのうち同期待ち状態のプロセッサを割込み処理の割込み要求先として設定するようにした。割込みが発生した時点で同期待ち状態のプロセッサが存在していれば、その同期待ち状態のプロセッサに割込み要求が入力され、その同期待ち状態のプロセッサが割込み処理を実行することで、余っている処理能力を有効に活用することができ、バリア同期が完了するタイミングの遅延を極力抑えることができる。
又、マイクロコントローラ2において、バリア同期が完了すると、先に実行した並列処理とは別の並列処理を一斉に開始し、複数のプロセッサ31〜3nのうち予め初期割込み要求先として設定されているプロセッサを別の割込み処理の割込み要求先として設定するようにした。バリア同期が完了して別の並列処理を一斉に開始するタイミングで、予め初期割込み要求先として設定されているプロセッサを割込み要求先として設定することができる。
(第2の実施形態)
次に、本発明の第2の実施形態について図6から図9を参照して説明する。尚、前述した第1の実施形態と同一部分については説明を省略し、異なる部分について説明する。第1の実施形態は、一の並列処理を実行中に一の割込みが発生する場合に対応する構成であるが、第2の実施形態では、一の並列処理を実行中に複数の割込みが発生する場合に対応する構成である。
電子制御装置11において、マイクロコントローラ12(演算装置に相当する)は、第1の実施形態で説明したバリア同期部10に代えてバリア同期部13を有する。バリア同期部13は、複数のプロセッサ31〜3nの個々に対応して複数の同期フラグを保持していることに加え、複数のプロセッサ31〜3nの個々に対応して複数の割込み設定フラグを保持している。複数のプロセッサ31〜3nは、それぞれバリア同期処理を開始すると、バリア同期部13と通信し、割込み設定フラグを「0」にクリアして割込み設定フラグを初期化する。又、複数のプロセッサ31〜3nは、それぞれ割込み要求先設定信号を割込みコントローラ8に出力すると、バリア同期部13と通信し、割込み設定フラグを「0」から「1」に書換えて割込み設定フラグを更新する。
次に、上記した構成の作用について図6から図9を参照して説明する。ここでも、複数のプロセッサ31〜3nのうち第1のプロセッサ31を代表し、第1のプロセッサ31が実行するバリア同期処理について説明する。又、一の並列処理を実行中に二の割込み(即ち第1の割込みと第2の割込み)が発生する場合を説明する。
第1のプロセッサ31は、バリア同期処理を開始すると、バリア同期部13と通信し、自己の同期フラグを「0」から「1」に書換えて更新し、自己の割込み設定フラグを「0」にクリアして初期化する(S11)。第1のプロセッサ31は、バリア同期部13に保持されている自己以外の他の同期フラグを読出し(S12)、バリア同期部10に保持されている自己の割込み設定フラグを読出す(S13)。第1のプロセッサ31は、その読出した自己の割込み設定フラグが「0」であるか否かを判定し、割込み処理の割込み要求先として自己を設定済みであるか否かを判定する(S14)。
第1のプロセッサ31は、自己の割込み設定フラグが「0」である、即ち割込み処理の割込み要求先として自己を設定済みでないと判定すると(S14:YES)、自己以外の他の同期フラグを判定する。第1のプロセッサ31は、複数のプロセッサ31〜3nのうち自己以外にバリアポイントに到達済みのプロセッサが存在するか否かを判定する(S15)。
第1のプロセッサ31は、複数のプロセッサ31〜3nのうち自己以外の他の全ての同期フラグが「0」であり、自己以外にバリアポイントに到達済みのプロセッサが存在していないと判定すると(S15:NO)、自己がバリアポイントに最初に到達したプロセッサであると判定する。第1のプロセッサ31は、割込み要求先設定信号を割込みコントローラ8に出力し、第1の割込み処理の割込み要求先として自己を設定し、自己の割込み設定フラグを「0」から「1」に更新する(S16)。
一方、第1のプロセッサ31は、複数のプロセッサ31〜3nのうち自己以外の何れかの同期フラグが「1」であり、自己以外にバリアポイントに到達済みのプロセッサが存在していると判定すると(S15:YES)、自己以外にバリアポイントに到達済みのプロセッサが1つであるか否かを判定する(S17)。第1のプロセッサ31は、自己以外にバリアポイントに到達済みのプロセッサが1つであると判定すると(S17:YES)、自己がバリアポイントに2番目に到達したプロセッサであると判定する。第1のプロセッサ31は、割込み要求先設定信号を割込みコントローラ8に出力し、第2の割込み処理の割込み要求先として自己を設定し、自己の割込み設定フラグを「0」から「1」に更新する(S18)。
そして、第1のプロセッサ31は、全てのプロセッサ31〜3nがバリアポイントに到達したか否かを判定する(S19)。第1のプロセッサ31は、複数のプロセッサ31〜3nのうち何れかが未だバリアポイントに到達しておらず、全てのプロセッサ31〜3nがバリアポイントに到達していないと判定すると(S19:NO)、ステップS12に戻る。一方、第1のプロセッサ31は、全てのプロセッサ31〜3nがバリアポイントに到達したと判定すると(S19:YES)、バリア同期が完了したと判定し、バリア同期処理を終了する。
これ以降、第1のプロセッサ31は、先に実行した並列処理とは別の並列処理を他のプロセッサ32〜3nと同じ開始タイミングで一斉に開始する。第1のプロセッサ31以外のプロセッサも、上記したバリア同期処理を同様にして実行する。即ち、複数のプロセッサ31〜3nは、最初にバリアポイントに到達したプロセッサが第1の割込み処理の割込み要求先となり、2番目にバリアポイントに到達したプロセッサが第2の割込み処理の割込み処理の割込み要求先となる。尚、この場合も、複数のプロセッサ31〜3nのうち予め初期割込み要求先として設定されているプロセッサは、別の並列処理を開始するタイミングで第1の割込み処理や第2の割込み処理の割込み要求先として自己を設定していれば、その設定を維持する。一方、複数のプロセッサ31〜3nのうち予め初期割込み要求先として設定されているプロセッサは、別の並列処理を開始するタイミングで第1の割込み処理や第2の割込み処理の割込み要求先として自己を設定していなければ、割込み要求先設定信号を割込みコントローラ8に出力し、第1の割込み処理や第2の割込み処理の割込み要求先として自己を設定する。
以下、ここでも、nを「3」とし、第1のプロセッサ31〜第3のプロセッサ33がバリア同期に参加し、第1の割込み処理として割込み処理Xを実行し、第2の割込み処理として割込み処理Yを実行する構成を例示して説明する。この場合、割込み処理X,Yの割込み要求先が第1のプロセッサ31に固定されている構成では、図8に示すように、マイクロコントローラ2において、第2のプロセッサ32がバリアポイントに到達した以降に割込みが発生すると、第2のプロセッサ32がバリアポイントに到達しているにも拘らず、割込み要求が第1のプロセッサ31に入力される。第1のプロセッサ31は、割込みXの割込み要求が入力されると、実行中の並列処理Aを中断して割込み処理Xを開始する(t31)。そして、第1のプロセッサ31は、割込み処理Xを完了すると、中断した並列処理Aを再開する(t32)。その後、第1のプロセッサ31は、割込みYの割込み要求が入力されると、実行中の並列処理Aを中断して割込み処理Yを開始する(t33)。そして、第1のプロセッサ31は、割込み処理Yを完了すると、中断した並列処理Aを再開する(t34)。即ち、マイクロコントローラ2において、第1のプロセッサ31が並列処理Aを中断して割込み処理X,Yを実行することで、全てのプロセッサ31〜33が並列処理Aを完了するタイミング、即ちバリア同期が完了するタイミングが遅延することになる。
これに対し、第1のプロセッサ31〜第3のプロセッサ33のうちバリアポイントに最初に到達したプロセッサが割込み処理Xの割込み要求先となり、バリアポイントに2番目に到達したプロセッサが割込み処理Yの割込み要求先となる構成では、マイクロコントローラ2は以下のように動作する。即ち、図9に示すように、マイクロコントローラ2において、第1のプロセッサ31〜第3のプロセッサ33が並列処理Aを一斉に開始した直後で第1のプロセッサ31を割込み処理X,Yの割込み要求先として設定していても、第2のプロセッサ32が最初にバリアポイントに到達すると、第2のプロセッサ32を割込み処理Xの割込み要求先として更新し、第3のプロセッサ33が2番目にバリアポイントに到達すると、第3のプロセッサ33を割込み処理Yの割込み要求先として更新する。
マイクロコントローラ2において、少なくとも第2のプロセッサ32がバリアポイントに到達した以降に割込みXが発生すると、割込みXの割込み要求が第1のプロセッサ31に入力されるのではなく、バリアポイントに到達済みの第2のプロセッサ32に入力される。第2のプロセッサ32は、割込みXの割込み要求が入力されると、同期フラグチェック処理を中断して割込み処理Xを開始する(t41)。そして、第2のプロセッサ32は、割込み処理Xを完了すると、中断した同期フラグチェック処理を再開する(t42)。又、マイクロコントローラ2において、少なくとも第3のプロセッサ33がバリアポイントに到達した以降に割込みYが発生すると、割込みYの割込み要求が第1のプロセッサ31に入力されるのではなく、バリアポイントに到達済みの第3のプロセッサ32に入力される。第3のプロセッサ33は、割込みYの割込み要求が入力されると、同期フラグチェック処理を中断して割込み処理Yを開始する(t43)。そして、第3のプロセッサ33は、割込み処理Yを完了すると、中断した同期フラグチェック処理を再開する(t44)。即ち、マイクロコントローラ2において、第1のプロセッサ31が割込み処理X,Yを実行せず、第2のプロセッサ32が割込み処理Xを実行し、第3のプロセッサ32が割込み処理Yを実行することで、第1の実施形態と同様に、第1のプロセッサ31が並列処理Aを中断することがなく、全てのプロセッサ31〜33が並列処理Aを完了するタイミング、即ちバリア同期が完了するタイミングが遅延することがなくなる。
尚、以上は、一の並列処理を実行中に二の割込みが発生する場合を例示したが、一の並列処理を実行中に三以上の割込みが発生する場合についても同様である。即ち、自己がバリアポイントにm(mは自然数)番目に到達したプロセッサであるか否かを判定し、第mの割込み処理の割込み要求先として自己を設定することで、三以上の割込みが発生する場合にも対応することができる。
以上に説明したように第2の実施形態によれば、第1の実施形態と同様の作用効果を得ることができる。即ち、一の並列処理を実行中に複数の割込みが発生する場合でも、割込みが発生した時点で同期待ち状態のプロセッサが存在していれば、その同期待ち状態のプロセッサに割込み要求が入力され、その同期待ち状態のプロセッサが割込み処理を実行することで、余っている処理能力を有効に活用することができ、バリア同期が完了するタイミングの遅延を極力抑えることができる。
(その他の実施形態)
本発明は、上記した実施形態で例示したものに限定されることなく、その範囲を逸脱しない範囲で任意に変形又は拡張することができる。
バリア同期部が同期フラグや割込み設定フラグを保持する構成を例示したが、バリア同期部以外が同期フラグや割込み設定フラグを保持する構成でも良く、例えばRAMが同期フラグや割込み設定フラグを保持する構成でも良い。
図5において、初期割込み要求先が第1のプロセッサ31である場合を例示したが、初期割込み要求先が第1のプロセッサ31以外でも良い。図8において、割込み処理X,Yの初期割込み要求先が第1のプロセッサ31である場合を例示したが、割込み処理X,Yの初期割込み要求先が第1のプロセッサ31以外でも良い。又、割込み処理Xの初期割込み要求先と割込み処理Yの初期割込み要求先とが異なっても良い。
本開示は、実施例に準拠して記述されたが、当該実施例や構造に限定されるものではないと理解される。本開示は、様々な変形例や均等範囲内の変形をも包含する。加えて、様々な組み合わせや形態、更には、それらに一要素のみ、それ以上、或いはそれ以下を含む他の組み合わせや形態をも、本開示の範疇や思想範囲に入るものである。
図面中、1,11は電子制御装置、2,12はマイクロコントローラ、31〜3nはプロセッサである。

Claims (7)

  1. 複数のプロセッサ(31〜3n)を有し、前記複数のプロセッサによりバリア同期を用いた並列処理を実行する演算装置(2、12)において、
    前記複数のプロセッサのうち同期待ち状態のプロセッサを割込み要求先として設定し、バリア同期が完了して全てのプロセッサが次の並列処理を実行可能になると、前記複数のプロセッサのうち予め設定されている所定のプロセッサを割込み要求先として設定する演算装置。
  2. 請求項1に記載した演算装置において、
    前記複数のプロセッサのうち最初に同期待ち状態に移行したプロセッサを割込み要求先として設定する演算装置。
  3. 請求項1又は2に記載した演算装置において、
    前記複数のプロセッサのうち最初に同期待ち状態に移行した第1のプロセッサを第1の割込み要求先として設定し、前記第1のプロセッサとは別の次に同期待ち状態に移行した第2のプロセッサを前記第1の割込み要求先とは別の第2の割込み要求先として設定する演算装置。
  4. 請求項1から3の何れか一項に記載した演算装置を有する電子制御装置(1,11)
  5. 複数のプロセッサ(31〜3n)によりバリア同期を用いた並列処理を実行する演算方法において、
    前記複数のプロセッサのうち同期待ち状態のプロセッサを割込み要求先として設定し、バリア同期が完了して全てのプロセッサが次の並列処理を実行可能になると、前記複数のプロセッサのうち予め設定されている所定のプロセッサを割込み要求先として設定する演算方法
  6. 請求項5に記載した演算方法において、
    前記複数のプロセッサのうち最初に同期待ち状態に移行したプロセッサを割込み要求先として設定する演算方法。
  7. 請求項5又は6に記載した演算方法において、
    前記複数のプロセッサのうち最初に同期待ち状態に移行した第1のプロセッサを第1の割込み要求先として設定し、前記第1のプロセッサとは別の次に同期待ち状態に移行した第2のプロセッサを前記第1の割込み要求先とは別の第2の割込み要求先として設定する演算方法。
JP2016188164A 2016-09-27 2016-09-27 演算装置、電子制御装置及び演算方法 Active JP6648663B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016188164A JP6648663B2 (ja) 2016-09-27 2016-09-27 演算装置、電子制御装置及び演算方法
DE102017216823.4A DE102017216823A1 (de) 2016-09-27 2017-09-22 Verarbeitungseinheit, elektronische steuereinheit und verarbeitungsverfahren

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016188164A JP6648663B2 (ja) 2016-09-27 2016-09-27 演算装置、電子制御装置及び演算方法

Publications (2)

Publication Number Publication Date
JP2018055244A JP2018055244A (ja) 2018-04-05
JP6648663B2 true JP6648663B2 (ja) 2020-02-14

Family

ID=61564110

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016188164A Active JP6648663B2 (ja) 2016-09-27 2016-09-27 演算装置、電子制御装置及び演算方法

Country Status (2)

Country Link
JP (1) JP6648663B2 (ja)
DE (1) DE102017216823A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7476638B2 (ja) 2020-04-15 2024-05-01 株式会社デンソー マルチプロセッサシステム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000305919A (ja) 1999-04-23 2000-11-02 Hitachi Ltd マルチプロセッサシステムとその同期方法、振動試験装置

Also Published As

Publication number Publication date
JP2018055244A (ja) 2018-04-05
DE102017216823A1 (de) 2018-03-29

Similar Documents

Publication Publication Date Title
KR970016979A (ko) 다중 처리 시스템에서 타스크의 큐잉 시스템 및 방법
JP5994679B2 (ja) 処理装置、及び処理装置の制御方法
JP2017528844A5 (ja)
JP6648663B2 (ja) 演算装置、電子制御装置及び演算方法
JP2018120575A5 (ja)
JP2013539143A (ja) 論理時刻ベクトルに基づくタスクの実行をスケジュールするためのシステム
JP2011095918A5 (ja)
JP6435826B2 (ja) データ処理装置およびデータ処理方法
CN110609706A (zh) 配置寄存器的方法及应用
JP2003058381A (ja) プログラムによる例外処理設定を可能にしたプロセッサ
JP2002163117A (ja) タスクスケジューリング装置
JP4006648B2 (ja) 入力モジュール
JPH0560629B2 (ja)
JP2001092676A (ja) 組み込みプログラムにおけるタスク管理システム
JPH06259115A (ja) プログラマブルコントローラ
JP2006293741A (ja) プロセッサ
JP6642358B2 (ja) マイクロコンピュータ及び電子制御装置
JP6163842B2 (ja) プログラマブルコントローラの支援装置、そのプログラム、プログラマブルコントローラシステム
JP2013125288A (ja) データ処理装置及びデータ処理方法
JP2016024614A (ja) データ処理装置
JP2012059131A (ja) Simd型マイクロプロセッサ及びその処理方法
JP2013539144A (ja) 論理時刻ベクトルに基づくタスクの実行をスケジュールするためのシステム
JPH03288906A (ja) Pcの命令実行方式
JP5684518B2 (ja) ソフト部品実行制御装置
CN113849334A (zh) 任务执行方法及装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181214

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191030

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191112

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191209

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191230

R151 Written notification of patent or utility model registration

Ref document number: 6648663

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