JP2018124876A - 並列化方法、並列化ツール、車載制御装置 - Google Patents
並列化方法、並列化ツール、車載制御装置 Download PDFInfo
- Publication number
- JP2018124876A JP2018124876A JP2017017776A JP2017017776A JP2018124876A JP 2018124876 A JP2018124876 A JP 2018124876A JP 2017017776 A JP2017017776 A JP 2017017776A JP 2017017776 A JP2017017776 A JP 2017017776A JP 2018124876 A JP2018124876 A JP 2018124876A
- Authority
- JP
- Japan
- Prior art keywords
- core
- program
- executed
- parallel
- execution
- 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
- 238000000034 method Methods 0.000 title claims abstract description 382
- 238000012545 processing Methods 0.000 claims abstract description 133
- 238000012544 monitoring process Methods 0.000 claims abstract description 51
- 238000003780 insertion Methods 0.000 claims description 57
- 230000037431 insertion Effects 0.000 claims description 57
- 230000001360 synchronised effect Effects 0.000 abstract description 45
- 230000007704 transition Effects 0.000 abstract description 2
- 238000012986 modification Methods 0.000 description 13
- 230000004048 modification Effects 0.000 description 13
- 238000004891 communication Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000002618 waking effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
- G06F8/456—Parallelism detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3696—Methods or tools to render software testable
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
- G06F8/451—Code distribution
-
- 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
Abstract
Description
コアが一つであるシングルコアマイコンが実行する制御用のシングルプログラムにおける並列可能な複数の処理(T1〜T5、T7〜T11)から、複数の処理を並列化した、マルチコアマイコンにおける複数のコアが実行可能な並列プログラムを生成する並列化方法であって、
複数の処理は、異なるコアに割り振られた、実行順序が先である先行処理と、先行処理の実行が完了した後に実行させる後行処理とを含み、
異なるコア間で実行順序を維持するために、先行処理の実行が完了した際に完了状態を記憶する記憶処理を、並列プログラムに挿入する記憶処理挿入手順(S11)と、
異なるコア間で実行順序を維持するために、完了状態が記憶されるのを待って、完了状態が記憶されたことを条件に後行処理の実行に移行させる待ち処理を、並列プログラムに挿入する待ち処理挿入手順(S12)と、
並列プログラムが実行される前に完了状態が記憶されているか否かを監視する監視処理を、複数のコアが実行可能な並列プログラムとは異なる制御外プログラムに挿入する監視処理挿入手順(S13)と、
完了状態が記憶されていないことが検出された場合に実行されるフェイルセーフ処理を、制御外プログラムに挿入するフェイルセーフ処理挿入手順(S14)と、を備えていることを特徴とする。
コアが一つであるシングルコアマイコンが実行する制御用のシングルプログラムにおける並列可能な複数の処理(T1〜T5、T7〜T11)から、複数の処理を並列化した、マルチコアマイコンにおける複数のコアが実行可能な並列プログラムを生成する、コンピュータを含む並列化ツールであって、
複数の処理は、異なるコアに割り振られた、実行順序が先である先行処理と、先行処理の実行が完了した後に実行させる後行処理とを含み、
異なるコア間で実行順序を維持するために、先行処理の実行が完了した際に完了状態を記憶する記憶処理を、並列プログラムに挿入する記憶処理挿入部(S11)と、
異なるコア間で実行順序を維持するために、完了状態が記憶されるのを待って、完了状態が記憶されたことを条件に後行処理の実行に移行させる待ち処理を、並列プログラムに挿入する待ち処理挿入部(S12)と、
並列プログラムが実行される前に完了状態が記憶されているか否かを監視する監視処理を、複数のコアが実行可能な並列プログラムとは異なる制御外プログラムに挿入する監視処理挿入部(S13)と、
完了状態が記憶されていないことが検出された場合に実行されるフェイルセーフ処理を、制御外プログラムに挿入するフェイルセーフ処理挿入部(S14)と、を備えた並列化ツール。
複数のコア(21c,21d)を有するマルチコアマイコン(21)と、コアが一つであるシングルコアマイコンが実行する制御用のシングルプログラムにおける並列可能な複数の処理(T1〜T5、T7〜T11)が並列化され複数のコアが実行可能な並列プログラム(21a1)と、を備えた車載制御装置であって、
複数の処理は、異なるコアに割り振られた、実行順序が先である先行処理と、先行処理の実行が完了した後に実行させる後行処理とを含み、
並列プログラムは、
異なるコア間で実行順序を維持するために、先行処理の実行が完了した際に完了状態を記憶する記憶処理と、
異なるコア間で実行順序を維持するために、完了状態が記憶されるのを待って、完了状態が記憶されたことを条件に後行処理の実行に移行させる待ち処理と、を含み、
さらに、複数のコアが実行可能な並列プログラムとは異なる制御外プログラムを備えており、
制御外プログラムは、
並列プログラムが実行される前に完了状態が記憶されているか否かを監視する監視処理と、
完了状態が記憶されていないことが検出された場合に実行されるフェイルセーフ処理と、を含み、
マルチコアマイコンは、各コアが並列プログラムと制御外プログラムを実行することを特徴とする。
ここで、図7、図8を用いて、変形例に関して説明する。本変形例では、主に、上記実施形態と異なる部分に関して説明する。また、本変形例は、自動並列化コンパイラ1が制御外プログラム21a2に対して特定処理を挿入する手順を含んでいる点が上記実施形態と異なる。同様に、本変形例は、コンピュータ10が特定処理の挿入部を含んでいる点が上記実施形態と異なる。そして、本変形例は、各コア21c、21dが状態フラグ毎に同期監視処理と同期フェイルセーフ処理を実行する点が上記実施形態と異なる。なお、本変形例では、上記実施形態と同様の処理に同じステップ番号を付与しているため、上記実施形態を参照して適用できる。
Claims (9)
- コアが一つであるシングルコアマイコンが実行する制御用のシングルプログラムにおける並列可能な複数の処理(T1〜T5、T7〜T11)から、複数の前記処理を並列化した、マルチコアマイコンにおける複数の前記コアが実行可能な並列プログラムを生成する並列化方法であって、
複数の前記処理は、異なる前記コアに割り振られた、実行順序が先である先行処理と、前記先行処理の実行が完了した後に実行させる後行処理とを含み、
異なる前記コア間で前記実行順序を維持するために、前記先行処理の実行が完了した際に完了状態を記憶する記憶処理を、前記並列プログラムに挿入する記憶処理挿入手順(S11)と、
異なる前記コア間で前記実行順序を維持するために、前記完了状態が記憶されるのを待って、前記完了状態が記憶されたことを条件に前記後行処理の実行に移行させる待ち処理を、前記並列プログラムに挿入する待ち処理挿入手順(S12)と、
前記並列プログラムが実行される前に前記完了状態が記憶されているか否かを監視する監視処理を、複数の前記コアが実行可能な前記並列プログラムとは異なる制御外プログラムに挿入する監視処理挿入手順(S13)と、
前記完了状態が記憶されていないことが検出された場合に実行されるフェイルセーフ処理を、前記制御外プログラムに挿入するフェイルセーフ処理挿入手順(S14)と、を備えた並列化方法。 - 前記記憶処理挿入手順は、複数の前記記憶処理を前記並列プログラムに挿入し、
前記待ち処理挿入手順は、複数の前記待ち処理を前記並列プログラムに挿入し、
前記完了状態が記憶されていないことが検出された場合に、前記完了状態が記憶されていない前記記憶処理を特定する特定処理を、前記制御外プログラムに挿入する特定処理挿入手順(S131)を備えた請求項1に記載の並列化方法。 - 前記フェイルセーフ処理挿入手順では、前記特定処理にて特定された前記記憶処理毎に実行される前記フェイルセーフ処理を、前記制御外プログラムに挿入する請求項2に記載の並列化方法。
- コアが一つであるシングルコアマイコンが実行する制御用のシングルプログラムにおける並列可能な複数の処理(T1〜T5、T7〜T11)から、複数の前記処理を並列化した、マルチコアマイコンにおける複数の前記コアが実行可能な並列プログラムを生成する、コンピュータを含む並列化ツールであって、
複数の前記処理は、異なる前記コアに割り振られた、実行順序が先である先行処理と、前記先行処理の実行が完了した後に実行させる後行処理とを含み、
異なる前記コア間で前記実行順序を維持するために、前記先行処理の実行が完了した際に完了状態を記憶する記憶処理を、前記並列プログラムに挿入する記憶処理挿入部(S11)と、
異なる前記コア間で前記実行順序を維持するために、前記完了状態が記憶されるのを待って、前記完了状態が記憶されたことを条件に前記後行処理の実行に移行させる待ち処理を、前記並列プログラムに挿入する待ち処理挿入部(S12)と、
前記並列プログラムが実行される前に前記完了状態が記憶されているか否かを監視する監視処理を、複数の前記コアが実行可能な前記並列プログラムとは異なる制御外プログラムに挿入する監視処理挿入部(S13)と、
前記完了状態が記憶されていないことが検出された場合に実行されるフェイルセーフ処理を、前記制御外プログラムに挿入するフェイルセーフ処理挿入部(S14)と、を備えた並列化ツール。 - 前記記憶処理挿入部は、複数の前記記憶処理を前記並列プログラムに挿入し、
前記待ち処理挿入部は、複数の前記待ち処理を前記並列プログラムに挿入し、
前記完了状態が記憶されていないことが検出された場合に、前記完了状態が記憶されていない前記記憶処理を特定する特定処理を、前記制御外プログラムに挿入する特定処理挿入部(S131)を備えた請求項4に記載の並列化ツール。 - 前記フェイルセーフ処理挿入部では、前記特定処理にて特定された前記記憶処理毎に実行される前記フェイルセーフ処理を、前記制御外プログラムに挿入する請求項5に記載の並列化ツール。
- 複数のコア(21c,21d)を有するマルチコアマイコン(21)と、コアが一つであるシングルコアマイコンが実行する制御用のシングルプログラムにおける並列可能な複数の処理(T1〜T5、T7〜T11)が並列化され複数の前記コアが実行可能な並列プログラム(21a1)と、を備えた車載制御装置であって、
複数の前記処理は、異なる前記コアに割り振られた、実行順序が先である先行処理と、前記先行処理の実行が完了した後に実行させる後行処理とを含み、
前記並列プログラムは、
異なる前記コア間で前記実行順序を維持するために、前記先行処理の実行が完了した際に完了状態を記憶する記憶処理と、
異なる前記コア間で前記実行順序を維持するために、前記完了状態が記憶されるのを待って、前記完了状態が記憶されたことを条件に前記後行処理の実行に移行させる待ち処理と、を含み、
さらに、複数の前記コアが実行可能な前記並列プログラムとは異なる制御外プログラムを備えており、
前記制御外プログラムは、
前記並列プログラムが実行される前に前記完了状態が記憶されているか否かを監視する監視処理と、
前記完了状態が記憶されていないことが検出された場合に実行されるフェイルセーフ処理と、を含み、
前記マルチコアマイコンは、各コアが前記並列プログラムと前記制御外プログラムを実行する車載制御装置。 - 前記並列プログラムは、複数の前記記憶処理と、複数の前記待ち処理とを含んでおり、
前記制御外プログラムは、前記完了状態が記憶されていないことが検出された場合に、前記完了状態が記憶されていない前記記憶処理を特定する特定処理を含んでいる請求項7に記載の車載制御装置。 - 前記制御外プログラムは、前記特定処理にて特定された前記記憶処理毎に実行される前記フェイルセーフ処理を含んでいる請求項8に記載の車載制御装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017017776A JP6690570B2 (ja) | 2017-02-02 | 2017-02-02 | 並列化方法、並列化ツール、車載制御装置 |
DE102017222292.1A DE102017222292A1 (de) | 2017-02-02 | 2017-12-08 | Parallelisierungsverfahren, parallelisierungs-tool und fahrzeuginterne steuervorrichtung |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017017776A JP6690570B2 (ja) | 2017-02-02 | 2017-02-02 | 並列化方法、並列化ツール、車載制御装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018124876A true JP2018124876A (ja) | 2018-08-09 |
JP6690570B2 JP6690570B2 (ja) | 2020-04-28 |
Family
ID=62843516
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017017776A Active JP6690570B2 (ja) | 2017-02-02 | 2017-02-02 | 並列化方法、並列化ツール、車載制御装置 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP6690570B2 (ja) |
DE (1) | DE102017222292A1 (ja) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007264997A (ja) * | 2006-03-28 | 2007-10-11 | Toyota Motor Corp | 分散制御装置 |
JP2013097719A (ja) * | 2011-11-04 | 2013-05-20 | Toyota Motor Corp | 制御装置および制御方法 |
JP2015001807A (ja) * | 2013-06-14 | 2015-01-05 | 株式会社デンソー | 並列化コンパイル方法、並列化コンパイラ、並列化コンパイル装置、及び、車載装置 |
-
2017
- 2017-02-02 JP JP2017017776A patent/JP6690570B2/ja active Active
- 2017-12-08 DE DE102017222292.1A patent/DE102017222292A1/de active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007264997A (ja) * | 2006-03-28 | 2007-10-11 | Toyota Motor Corp | 分散制御装置 |
JP2013097719A (ja) * | 2011-11-04 | 2013-05-20 | Toyota Motor Corp | 制御装置および制御方法 |
JP2015001807A (ja) * | 2013-06-14 | 2015-01-05 | 株式会社デンソー | 並列化コンパイル方法、並列化コンパイラ、並列化コンパイル装置、及び、車載装置 |
Also Published As
Publication number | Publication date |
---|---|
DE102017222292A1 (de) | 2018-08-02 |
JP6690570B2 (ja) | 2020-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10296316B2 (en) | Parallelization method, parallelization tool, and in-vehicle apparatus | |
JP6464982B2 (ja) | 並列化方法、並列化ツール、車載装置 | |
JP2010009495A (ja) | 情報処理装置、プログラム処理方法及びコンピュータプログラム | |
WO2020121840A1 (ja) | 演算制御装置 | |
US20170039091A1 (en) | Vehicle Control Apparatus | |
JP2008158759A (ja) | プログラミング方法、プログラム処理方法、処理プログラム及び情報処理装置 | |
CA2433379A1 (en) | Modulo scheduling of multiple instruction chains | |
JP2017228029A (ja) | 並列化方法、並列化ツール、車載装置 | |
JP6427055B2 (ja) | 並列化コンパイル方法、及び並列化コンパイラ | |
JP4840605B2 (ja) | Osの起動方法 | |
US10255119B2 (en) | Parallelization method, parallelization tool and vehicle-mounted device | |
JP6690570B2 (ja) | 並列化方法、並列化ツール、車載制御装置 | |
JP5614699B2 (ja) | マルチコアシステムのためのタスク割り当て関連方法、その装置、そのシステム、及びそのプログラム | |
JP6428557B2 (ja) | 並列化方法、並列化ツール | |
JP6617511B2 (ja) | 並列化方法、並列化ツール、車載装置 | |
WO2019188175A1 (ja) | デッドロック回避方法、デッドロック回避装置 | |
Jahr et al. | Model-based parallelization and optimization of an industrial control code | |
JP6933001B2 (ja) | 並列化方法、並列化ツール | |
JP6488953B2 (ja) | 並列化方法、並列化ツール、車載装置 | |
JP6558310B2 (ja) | 並列化方法、並列化ツール | |
JP2021039666A (ja) | コア割当装置及びコア割当方法 | |
JPWO2018198745A1 (ja) | 計算資源管理装置、計算資源管理方法、及びプログラム | |
JP7441861B2 (ja) | 演算装置及び検査方法 | |
US10379828B2 (en) | Parallelization method, parallelization tool, and in-vehicle device | |
JP2009169862A (ja) | プログラム変換装置、方法、プログラムおよび記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190404 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20200227 |
|
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: 20200310 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200323 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 6690570 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 |